pax_global_header00006660000000000000000000000064146531113510014512gustar00rootroot0000000000000052 comment=1bf3e5c1bfb28a5f56aa1efd930ee5735078125f golang-github-lestrrat-go-jwx-1.2.30/000077500000000000000000000000001465311135100173735ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/.github/000077500000000000000000000000001465311135100207335ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/.github/CONTRIBUTING.md000066400000000000000000000127251465311135100231730ustar00rootroot00000000000000# CONTRIBUTING ❤❤❤🎉 Thank you for considering to contribute to this project! 🎉❤❤❤ The following is a set of guidelines that we ask you to follow when you contribute to this project. # Index * [tl;dr](#tldr) * [Please Be Nice](#please-be-nice) * [Please Use Correct Medium (GitHub Issues / Discussions)](#please-use-correct-medium-github-issues--discussions) * [Please Include (Pseudo)code for Any Technical Issues](#please-include-pseudocode-for-any-technical-issues) * [Brown M&M Clause](#brown-mm-clause) * [Pull Requests](#pull-requests) * [Branches](#branches) * [Generated Files](#generated-files) * [Test Cases](#test-cases) # tl;dr * 📕 Please read this Guideline in its entirety once, if at least to check the headings. * 🙋 Please be nice, and please be aware that we are not providing this software as a hobby. * 💬 Open-ended questions and inquiries go to [Discussions](https://github.com/lestrrat-go/jwx/discussions). * 🖥️ Actionable, specific technical questions go to [Issues](https://github.com/lestrrat-go/jwx/issues). * 📝 Please always include (pseudo)code for any technical questions/issues. * 🔒 Issues, PR, and other posts may be closed or not addressed if you do not follow these guidelines # Please Be Nice Please be nice when you contact us. We are very glad that you find this project useful, and we intend to provide software that help you. You do not have to thank us, but please bare in mind that this is an opensource project that is provided **as-is**. This means that we are **NOT** obligated to support you, work for you, do your homework/research for you, or otherwise heed to you needs. We do not owe you one bit of code, or a fix, even if it's a critical one. We write software because we're curious, we fix bugs because we have integrity. But we do not owe you anything. Please do not order us to work for you. We are not your support staff, and we are not here to do your research. We are willing to help, but only as long as you are being nice to us. # Please Use Correct Medium (GitHub Issues / Discussions) This project uses [GitHub Issues](https://github.com/lestrrat-go/jwx/issues) to deal with technical issues including bug reports, proposing new API, and otherwise issues that are directly actionable. Inquiries, questions about the usage, maintenance policies, and other open-ended questions/discussions should be posted to [GitHub Discussions](https://github.com/lestrrat-go/jwx/discussions). # Please Include (Pseudo)code for Any Technical Issues Your report should contain clear, concise description of the issue that you are facing. However, at the same time please always include (pseudo)code in report. English may not be your forte, but we all should speak the common language of code. Rather than trying to write an entire essay or beat around the bush, which will more than likely cost both you and the maintainers extra roundtrips to communicate, please use code to describe _exactly_ what you are trying to achieve. Good reports should contain (in order of preference): 1. Complete Go-style test code. 1. Code snippet that clearly shows the intent of your code. 1. Pseudocode that shows how you would want the API to work. As we are dealing with code, ultimately there is no better way to convey what you are trying to do than to provide your code. Please help us help you by providing us with a reproducible code. # Brown M&M Clause If you came here from an issue/PR template, please make sure to delete the section on "Contribution Guidelines" from the template. Failure to do so may result in the maintainers assuming that you have not fully read the guidelines. [(Reference)](https://www.insider.com/van-halen-brown-m-ms-contract-2016-9) # Pull Requests ## Branches ### `vXXX` branches Stable releases, such as `v1`, `v2`, etc. Please do not work against these branches. Use the `develop/vXXX` branches instead. ### `develop/vXXX` branches Development occurs on these branches. If you are wishing to make changes against `v2`, work on `develop/v2` branch. When you make a PR, fork this branch, make your changes and create a PR against these development branches. ```mermaid sequenceDiagram autonumber participant v1/v2/.. participant develop/v1/v2/.. participant feature_branch develop/v1/v2/..->>feature_branch: Fork development branch to your feature branch Note over feature_branch: Work on your feature feature_branch->>develop/v1/v2/..: File a PR against the development branch develop/v1/v2/..->>v1/v2/..: Merge changes ``` ## Generated Files All files with file names ending in `_gen.go` are generated by a tool. These files should not be modified directly. Instead, find out the tool that is generating the file by inspecting the file. Usually the tool that generated the file is listed in the commect section at the top of the file. Usually these files are generated basede on a rule file (such as a YAML file). When you craft a pull request, you should include both changes to the rule file(s) and the generated file(s). The CI will run `go generate` and make sure that there are no extra `diff`s that have not been commited. ## Test Cases In general any code change must be accompanied with test case. It is obviously very important to test the functionality. But adding test cases also gives you the opportunity to check for yourself how the new code should/can be used in practice. Test cases also act as a great way to communicate any assumptions or requirements that your code needs in order to function properly. golang-github-lestrrat-go-jwx-1.2.30/.github/FUNDING.yml000066400000000000000000000012061465311135100225470ustar00rootroot00000000000000# These are supported funding model platforms github: - lestrrat patreon: # Replace with a single Patreon username open_collective: # Replace with a single Open Collective username ko_fi: # Replace with a single Ko-fi username tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry liberapay: # Replace with a single Liberapay username issuehunt: # Replace with a single IssueHunt username otechie: # Replace with a single Otechie username custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] golang-github-lestrrat-go-jwx-1.2.30/.github/ISSUE_TEMPLATE/000077500000000000000000000000001465311135100231165ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/.github/ISSUE_TEMPLATE/bug_report.md000066400000000000000000000016651465311135100256200ustar00rootroot00000000000000--- name: Bug report about: Create a report to help us improve title: '' labels: '' assignees: '' --- **Contribution Guidelines** Before filing an issue, please read the contents of [CONTRIBUTING.md](https://github.com/lestrrat-go/jwx/blob/v1/.gthub/CONTRIBUTING.md), and follow its instructions. **Describe the bug** A clear and concise description of what the bug is. Please attach the output of `go version` **To Reproduce / Expected behavior** Please attach a standalone Go test code that shows the problem, and what you expected to happen. If you are asking for an API change or some such which inhibits you from providing a working code, please do your best to come up with a near-valid code. **Additional context** Add any other context or screenshots about the feature request here. Please delete this section if unnecessary. **Sponsors** Are you sponsoring the authors? If so, let us know. Otherwise, please delete this section. golang-github-lestrrat-go-jwx-1.2.30/.github/ISSUE_TEMPLATE/config.yml000066400000000000000000000000341465311135100251030ustar00rootroot00000000000000blank_issues_enabled: false golang-github-lestrrat-go-jwx-1.2.30/.github/ISSUE_TEMPLATE/feature_request.md000066400000000000000000000022201465311135100266370ustar00rootroot00000000000000--- name: Feature request about: Suggest an idea for this project title: '' labels: '' assignees: '' --- **Contribution Guidelines** Before filing an issue, please read the contents of [CONTRIBUTING.md](https://github.com/lestrrat-go/jwx/blob/v1/.gthub/CONTRIBUTING.md), and follow its instructions. **Abstract** Please describe concisely what you want to accomplish, including prerequisite information. Please remember that if _you_ cannot articulate the problem, we cannot guess what you are thinking. **Describe the proposed solution/change** Please attach a standalone Go test code that shows the problem, and what you expected to happen. If it's a behavior change, please include a failing (or would-be failing) test case. If it's a structural or an API change, we understand that you cannot create a complete compiling code, but please do your best to produce a a near-valid code that shows exactly what you want **Analysis** Please describe alternative solutions that you have considered, and pros/cons between them. **Additional context** Add any other context or screenshots about the feature request here. Please delete this section if unnecessary. golang-github-lestrrat-go-jwx-1.2.30/.github/ISSUE_TEMPLATE/others.md000066400000000000000000000004451465311135100247470ustar00rootroot00000000000000--- name: 'Other Issues' about: 'Other types of issues' title: '' labels: '' assignees: '' --- **Contribution Guidelines** Before filing an issue, please read the contents of [CONTRIBUTING.md](https://github.com/lestrrat-go/jwx/blob/v1/.gthub/CONTRIBUTING.md), and follow its instructions. golang-github-lestrrat-go-jwx-1.2.30/.github/auto-assign-pr.yml000066400000000000000000000000771465311135100243330ustar00rootroot00000000000000addReviewers: true addAssignees: false reviewers: - lestrrat golang-github-lestrrat-go-jwx-1.2.30/.github/dependabot.yml000066400000000000000000000007671465311135100235750ustar00rootroot00000000000000# 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: "gomod" # See documentation for possible values directory: "/" # Location of package manifests schedule: interval: "daily" golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/000077500000000000000000000000001465311135100227705ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/assign-issue.yml000066400000000000000000000003501465311135100261230ustar00rootroot00000000000000name: Assign Issue on: issues: types: [opened] jobs: auto-assign: runs-on: ubuntu-latest steps: - name: 'Auto-assign issue' uses: pozil/auto-assign-issue@v2 with: assignees: lestrrat golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/assign-pr.yml000066400000000000000000000004031465311135100254130ustar00rootroot00000000000000name: 'Auto Assign' on: pull_request: types: [opened, ready_for_review] jobs: add-reviews: runs-on: ubuntu-latest steps: - uses: kentaro-m/auto-assign-action@v2.0.0 with: configuration-path: .github/auto-assign-pr.yml golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/benchmark.yml000066400000000000000000000021131465311135100254420ustar00rootroot00000000000000name: Benchmark on: schedule: - cron: '0 5 * * 1' workflow_dispatch: {} jobs: build: runs-on: ubuntu-latest strategy: matrix: go: [ '1.17.x', '1.16.x' ] name: "Test [ Go ${{ matrix.go }} / JSON Backend ${{ matrix.json_backend }} ]" steps: - name: Checkout repository uses: actions/checkout@v4 - name: Cache Go modules uses: actions/cache@v4 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Install Go stable version uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} - name: Install benchstat run: | go install golang.org/x/perf/cmd/benchstat@latest - name: Benchmark (comparison) run: | cd bench/comparison && make stdlib && make goccy - name: Benchmark (performance) run: | cd bench/performance && make stdlib && make goccy && make benchstat golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/ci.yml000066400000000000000000000036001465311135100241050ustar00rootroot00000000000000name: CI on: pull_request: branches: - v* - develop/* jobs: build: runs-on: ubuntu-latest strategy: matrix: go_tags: [ 'stdlib', 'goccy', 'es256k', 'all'] go: [ '1.22', '1.21', '1.20' ] name: "Test [ Go ${{ matrix.go }} / Tags ${{ matrix.go_tags }} ]" steps: - name: Checkout repository uses: actions/checkout@v4 - name: Cache Go modules uses: actions/cache@v4 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Munge APT Repositories run: curl --connect-timeout 1 https://azure.archive.ubuntu.com || (sudo sed -i 's/azure\.//' /etc/apt/sources.list && sudo apt-get update) - name: Install Go stable version if: matrix.go != 'tip' uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} - name: Install Go tip if: matrix.go == 'tip' run: | git clone --depth=1 https://go.googlesource.com/go $HOME/gotip cd $HOME/gotip/src ./make.bash echo "::set-env name=GOROOT::$HOME/gotip" echo "::add-path::$HOME/gotip/bin" echo "::add-path::$(go env GOPATH)/bin" - name: Install stringer run: go install golang.org/x/tools/cmd/stringer@latest - name: Install jose run: | sudo apt-get install -y --no-install-recommends jose - run: make generate - name: Test with coverage run: make cover-${{ matrix.go_tags }} - name: Upload code coverage to codecov if: matrix.go == '1.17.x' uses: codecov/codecov-action@v4 with: file: ./coverage.out - name: Check difference between generation code and commit code run: make check_diffs golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/lint.yml000066400000000000000000000005761465311135100244710ustar00rootroot00000000000000name: lint on: [push] jobs: golangci: name: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: go-version: "1.20" check-latest: true - uses: golangci/golangci-lint-action@v6 with: version: v1.59 - name: Run go vet run: | go vet ./... golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/smoke.yml000066400000000000000000000031361465311135100246340ustar00rootroot00000000000000# Smoke tests only run on non-master branches. Smoke tests cut # some corners by running selected tests in parallel (to shave off # some execution time) # Once a pull request is merged to master, workflows/ci.yml is run name: Smoke Tests on: push: branches-ignore: - main jobs: build: runs-on: ubuntu-latest strategy: matrix: go_tags: [ 'stdlib', 'goccy', 'es256k', 'all' ] go: [ '1.22', '1.21', '1.20' ] name: "Smoke [ Go ${{ matrix.go }} / Tags ${{ matrix.go_tags }} ]" steps: - name: Checkout repository uses: actions/checkout@v4 - name: Cache Go modules uses: actions/cache@v4 with: path: | ~/go/pkg/mod ~/.cache/go-build key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - name: Munge APT Repositories run: curl --connect-timeout 1 https://azure.archive.ubuntu.com || (sudo sed -i 's/azure\.//' /etc/apt/sources.list && sudo apt-get update) - name: Install Go stable version uses: actions/setup-go@v5 with: go-version: ${{ matrix.go }} - name: Install stringer run: go install golang.org/x/tools/cmd/stringer@latest - name: Install jose run: sudo apt-get install -y --no-install-recommends jose - run: make generate - name: Run smoke tests run: make smoke-${{ matrix.go_tags }} - name: Check difference between generation code and commit code run: make check_diffs - name: Run go mod tidy run: go mod tidy golang-github-lestrrat-go-jwx-1.2.30/.github/workflows/stale.yml000066400000000000000000000024671465311135100246340ustar00rootroot00000000000000name: 'Close stale issues and PRs' on: schedule: - cron: '30 1 * * *' jobs: stale: runs-on: ubuntu-latest steps: - uses: actions/stale@v9 with: stale-issue-message: 'This issue is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 7 days.' stale-pr-message: 'This PR is stale because it has been open 14 days with no activity. Remove stale label or comment or this will be closed in 14 days.' close-issue-message: 'This issue was closed because it has been stalled for 7 days with no activity. This does not mean your issue is rejected, but rather it is done to hide it from the view of the maintains for the time being. Feel free to reopen if you have new comments' close-pr-message: 'This PR was closed because it has been stalled for 14 days with no activity. This does not mean your PR is rejected, but rather it is done to hide it from the view of the maintainers for the time being. Feel free to reopen if you have new comments or chnages that you would like to include. ' days-before-issue-stale: 14 days-before-pr-stale: 14 days-before-issue-close: 7 days-before-pr-close: 7 exempt-issue-labels: long-term exempt-pr-labels: long-term golang-github-lestrrat-go-jwx-1.2.30/.gitignore000066400000000000000000000005761465311135100213730ustar00rootroot00000000000000# Compiled Object files, Static and Dynamic libs (Shared Objects) *.o *.a *.so # Folders _obj _test # Architecture specific extensions/prefixes *.[568vq] [568vq].out *.cgo1.go *.cgo2.c _cgo_defun.c _cgo_gotypes.go _cgo_export.* _testmain.go *.exe *.test *.prof # IDE .idea .vscode .DS_Store *~ coverage.out # I redirect my test output to files named "out" way too often out golang-github-lestrrat-go-jwx-1.2.30/.golangci.yml000066400000000000000000000040301465311135100217540ustar00rootroot00000000000000run: linters-settings: govet: enable-all: true disable: - shadow - fieldalignment linters: enable-all: true disable: - contextcheck - cyclop - depguard - dupl - exhaustive - exhaustruct - err113 - errorlint - funlen - gci - gochecknoglobals - gochecknoinits - gocognit - gocritic - gocyclo - godot - godox - gofumpt - gomnd - gomoddirectives # I think it's broken - gosec - gosmopolitan - govet - inamedparam # oh, sod off - interfacebloat - ireturn # No, I _LIKE_ returning interfaces - lll - maintidx # Do this in code review - makezero - mnd # TODO: re-enable when we can check again - nonamedreturns - nakedret - nestif - nlreturn - paralleltest - perfsprint - testifylint # TODO: re-enable when we can check again - tagliatelle - testpackage - thelper # Tests are fine - varnamelen # Short names are ok - wrapcheck - wsl issues: exclude-rules: # not needed - path: /*.go text: "ST1003: should not use underscores in package names" linters: - stylecheck - path: /*.go text: "don't use an underscore in package name" linters: - revive - path: /main.go linters: - errcheck - path: internal/codegen/codegen.go linters: - errcheck - path: internal/jwxtest/jwxtest.go linters: - errcheck - errchkjson - forcetypeassert - path: /*_test.go linters: - errcheck - errchkjson - forcetypeassert - path: /*_example_test.go linters: - forbidigo - path: cmd/jwx/jwx.go linters: - forbidigo - path: /*_test.go text: "var-naming: " linters: - revive # Maximum issues count per one linter. Set to 0 to disable. Default is 50. max-issues-per-linter: 0 # Maximum count of issues with the same text. Set to 0 to disable. Default is 3. max-same-issues: 0 golang-github-lestrrat-go-jwx-1.2.30/Changes000066400000000000000000000773401465311135100207010ustar00rootroot00000000000000Changes ======= v1.2.30 28 Jul 2024 * Update minimum required go version to 1.20 * Update tests so that they work on 32-bit systems v1.2.29 07 Mar 2024 * [jwe] Added `jwe.Settings(jwe.WithMaxDecompressBufferSize(int64))` to specify the maximum size of a decompressed JWE payload. The default value is 10MB. If you are compressing payloads greater than this, you need to explicitly set it. Unlike in v2, there is no way to set this globally. Please use v2 if this is required. v1.2.28 09 Jan 2024 [Security Fixes] * [jws] JWS messages formated in full JSON format (i.e. not the compact format, which consists of three base64 strings concatenated with a '.') with missing "protected" headers could cause a panic, thereby introducing a possiblity of a DoS. This has been fixed so that the `jws.Parse` function succeeds in parsing a JWS message lacking a protected header. Calling `jws.Verify` on this same JWS message will result in a failed verification attempt. Note that this behavior will differ slightly when parsing JWS messages in compact form, which result in an error. v1.2.27 - 03 Dec 2023 [Security] * [jwe] A large number in p2c parameter for PBKDF2 based encryptions could cause a DoS attack, similar to https://nvd.nist.gov/vuln/detail/CVE-2022-36083. All users should upgrade, as unlike v2, v1 attempts to decrypt JWEs on JWTs by default. [GHSA-7f9x-gw85-8grf] [Bug Fixes] * [jwk] jwk.Set(jwk.KeyOpsKey, ) now works (previously, either Set(.., ) or Set(..., []jwk.KeyOperation{...}) worked, but not a single jwk.KeyOperation v1.2.26 - 14 Jun 2023 [Security] * Potential Padding Oracle Attack Vulnerability and Timing Attack Vulnerability for JWE AES-CBC encrypted payloads affecting all v2 releases up to v2.0.10, all v1 releases up to v1.2.25, and all v0 releases up to v0.9.2 have been reported by @shogo82148. Please note that v0 versions will NOT receive fixes. This release fixes these vulnerabilities for the v1 series. [Miscellaneous] * JWE tests now only run algorithms that are supported by the underlying `jose` tool v1.2.25 23 May 2022 [Bug Fixes][Security] * [jwe] An old bug from at least 7 years ago existed in handling AES-CBC unpadding, where the unpad operation might remove more bytes than necessary (#744) This affects all jwx code that is available before v2.0.2 and v1.2.25. v1.2.24 05 May 2022 [Security] * Upgrade golang.org/x/crypto (#724) v1.2.23 13 Apr 2022 [Bug fixes] * [jwk] jwk.AutoRefresh had a race condition when `Configure()` was called concurrently (#686) (It has been patched correctly, but we may come back to revisit the design choices in the near future) v1.2.22 08 Apr 2022 [Bug fixes] * [jws] jws.Verify was ignoring the `b64` header when it was present in the protected headers (#681). Now the following should work: jws.Sign(..., jws.WithDetachedPayload(payload)) // previously payload had to be base64 encoded jws.Verify(..., jws.WithDetachedPayload(payload)) (note: v2 branch was not affected) v1.2.21 30 Mar 2022 [Bug fixes] * [jwk] RSA keys without p and q can now be parsed. v1.2.20 03 Mar 2022 [Miscellaneous] * Dependency on golang.org/x/crypto has been upgraded to v0.0.0-20220214200702-86341886e292 to address https://nvd.nist.gov/vuln/detail/CVE-2020-14040 (#598) v1.2.19 22 Feb 2022 [New Feature] * [jwk] jwk.Parse (and (jwk.AutoRefresh).Configure) can accept a new option `jwk.WithIgnoreParseError(bool)`, which allows users to ignore errors during parsing of each key contained in the JWKS, allowing you to "skip" invalid keys. This option should not be used lightly, as it hides the presence of possibly faulty keys. However, this can be an escape hatch if you are faced with a faulty JWKS that you do not control. v1.2.18 23 Jan 2022 [Bug fixes] * [jwe] When presented with jwk.Key with a key ID, the jwe encryption code path did not assign this key ID to the resulting data structure. This has been fixed, and now the key ID is properly applied to the `kid` field. * [jws] Use for `crypto.Signer`s were implemented for signing, but verification was never properly implemented. This has been fixed. [Miscellaneous] * [jws] Because of fixes to code path that deals with `crypto.Signer`s, we are now able to fully integrate with Cloud services, such as Google's Cloud KMS and AWS KMS, that provide key management and signing payloads An implementation for these are available at https://github.com/jwx-go/crypto-signer. Suppot `crypto.Signer` in JWE encryption has not been implemented. v1.2.17 12 Jan 2022 [Miscellaneous] * Re-release v1.2.16 as v1.2.17 because of an error in the release process. The code is exactly the same as what v1.2.16 intended to release. v1.2.16 has been retracted in go.mod. v1.2.16 12 Jan 2022 THIS VERSION HAS BEEN RETRACTED. PLEASE USE v1.2.17 [Bug Fixes] * Peviously, `jws.Sign()` could not create a signed payload with detached and unencoded payload, even when the documentation said it could. Now you may use the `jws.Sign()` in the following way to create a JWS message with detached, unencoded state: hdrs := jws.NewHeaders() hdrs.Set("b64", false) hdrs.Set("crit", "b64") jws.Sign(nil, alg, key, jws.WithDetachedPayload(payload), jws.WithHeaders(hdrs)) Notice the use of `nil` for the first parameter, and the use of `jws.WithDetachedPayload()`. We realize this is not exactly a clean API, but this is currently the only way to implement this in a backward-compatible fashion. Most likely this will change in a future major version. [Miscellaneous] * `jws.WithDetachedPayload()` is now of type `jws.SignVerifyOption`, which satisfies both `jws.SignOption` and `jws.VerifyOption` v1.2.15 07 Jan 2022 [New Features] * `(jwk.AutoRefresh).Remove()` has been implemented. [Bug Fixes] * ES256K is now included in the list of JWS inferred algorithms, if it's enabled via -tags jwx_es256k [Miscellaneous] * `jwt.Parse` has been improved for efficiency and has more tests to cover corner cases. * Documentation fixes v1.2.14 22 Dec 2021 [New Features] * `jwk.Fetch()` and `(*jwk.AutoRefresh).Configure()` can now take `jwk.Whitelist` object to check for the validity of a url to be fetched * `jws.VerifyAuto()` has been added to verify payloads that can be verified using the JWK set provided in the "jku" field. This function is purposely separated from the `jws.Verify()` function because 1) the required parameters are different, and 2) Users MUST be aware that they are doing a totally different operation than a regular `jws.Verify()` * `(jwk.AutoRefresh).IsRegistered()` has been added. [Bug fixes] * `jws.SignMulti()` has been fixed to assign the "kid" field of the key used for signing the payload * `jws.SignMulti()` has been fixed to respect the "kid" field of the protected header, not the public header v1.2.13 07 Dec 2021 [New Features] * `jwt` package now has a `Builder` that may make it easier to programmatically create a JWT for some users. * `jwt` errors now can be distinguished between validation errors and others. Use `jwt.IsValidationError()` to check if it's a validation error, and then use `errors.Is()` to check if it's one of the known (oft-used) errors v1.2.12 01 Dec 2021 [New Features] * `jwk.Set` can now parse private parameters. For example, after parsing a JWKS serialized as `{"foo": "bar", "keys": [...]}`, users can get to the value of `"foo"` by calling `set.Field("foo")` * `jwk.Set` now has `Set()` method to set field values. v1.2.11 14 Nov 2021 [Security Fix] * It was reported that since v1.2.6, it was possible to craft a special JSON object to bypass JWT verification via `jwt.Parse`. If you relied on this module to perform all the verification, upgrade is strongly recommended. v1.2.10 09 Nov 2021 [Bug fixes] * Parsing OpenID claims were not working for some fields. This was caused by the same problem as the problem fixed in v1.2.9. Proper tests have been added. v1.2.9 26 Oct 2021 [Bug fixes] * Parsing `key_ops` for JWKs which was broken in v1.2.8 has been fixed. v1.2.8 21 Oct 2021 [Miscellaneous] * `jws.Message`, `jws.Signature`, `jws.Headers` have been reworked to allow JSON messages to be verified correctly. The problem can be caused when protected headers are serialized one way (perhaps `{"c":3","a":1,"b":2}` was used before being base64-encoded) but the Go serialization differed from it (Go serializes in alphabetical order: `{"a":1,"b":2,"c":3}`) Messages serialized in compact form do NOT suffer from the same problem. This is close to fixes that went in v1.2.2. It boils down to the fact that once deserialized, the JWS messages lose part of its information (namely, the raw, original protected header value), and neither users nor the developers of this library should rely on it. * Code generation has be refactored. The main go.mod should now have slightly less dependencies. v1.2.7 26 Sep 2021 [New features] * `jwt.InferAlgorithmFromKey()` option is now available to "guess" the algorithm used to verify the JWS signature on a JWT using a JWKS (key set). This allows you to match JWKs that do not have the `alg` field populated. We understand that some providers do not provide the `alg` field, which is a nuisance to users. But from a purely security minded PoV, we don't think that this "try until something works" approach is a good one, even if there are no known exploits. This is why the default `jwt.Parse` mechanism is unchanged, and an explicit option has been added. * Types `jwt.KeySetProvider` and `jwk.KeySetProviderFunc` have been added. Along with `jwt.WithKeySetProvider()` option, `jwt.Parse` can now choose the `jwk.Set` to use for signature verification dynamically using the UNVERFIEID token as a clue. You should NOT trust the token information too much. For example, DO NOT directly use values from the token as verificatin parameters (such as the signature algorithm) * `jwt.WithValidator()` has been added to allow users pass in aribtrary validation code to the `jwt.Validate()` method. It is also now possible to pass in a `context.Context` object to `jwt.Validate()` using `jwt.WithContext()` option. [Miscellaneous] * Make the error messages when `jwt.ParseRequest` fails a bit better. * Moved around documentation within the repository * Validation logic for `jwt.Validate()` has been refactored to use the new `jwt.Validator` mechanism v1.2.6 24 Aug 2021 [New features] * Support `crypto.Signer` keys for RSA, ECDSA, and EdDSA family of signatures in `jws.Sign` [Miscellaneous] * `jwx.GuessFormat()` now requires the presence of both `payload` and `signatures` keys for it to guess that a JSON object is a JWS message. * Slightly enhance `jwt.Parse()` performance. v1.2.5 04 Aug 2021 [New features] * Implement RFC7797. The value of the header field `b64` changes how the payload is treated in JWS * Implement detached payloads for JWS * Implement (jwk.AutoRefresh).ErrorSink() to register a channel where you can receive errors from fetches and parses that occur during JWK(s) retrieval. v1.2.4 15 Jul 2021 [Bug fixes] * We had the same off-by-one in another place and jumped the gun on releasing a new version. At least we were making mistakes uniformally :/ `(jwk.Set).Remove` should finally be fixed. [New features] * `(jwk.Set).Clone()` has been added. v1.2.3 15 Jul 2021 [Bug fixes] * jwk.Set incorrectly removed 2 elements instead of one. [Miscellaneous] * github.com/goccy/go-json has been upgraded to v0.7.4 v1.2.2 13 Jul 2021 [Deprecation notice] * `(jwe.Message).Decrypt()` will be removed from the API upon the next major release. [Bug Fixes] * `jwe.Decrypt` and `(jwe.Message).Decrypt()` failed to decrypt even with the correct message contents when used along with `jwe.RegisterCustomField` [New features] JWX * Add GuessFormat() function to guess what the payload is. JWT * Options `jwt.WithMinDelta()`, `jwt.WithMaxDelta()` have been added. These can be used to compare time-based fields in the JWT object. * Option `jwt.WithRequiredClaim()` has been added. This can be used to check that JWT contains the given claim. * `jwt.Parse` now understands payloads that have been encrypted _and_ signed. This is more in line with the RFC than the previous implementation, but due to the fact that it requires a couple of extra unmarshaling, it may add some amount of overhead. * `jwt.Serializer` has been added as an easy wrapper to perform multiple levels of serializations (e.g. apply JWS, then JWE) JWE * Option `jwe.WithMessage()` has been added. This allows the user to obtain both the decrypted payload _and_ the raw `*jwe.Message` in one go when `jwe.Decrypt()` is called * Option `jwe.WithPostParser()`, along with `jwe.PostParser` and `jwe.PostParseFunc` has been added. This allows advanced users to hook into the `jwe.Decrypt()` process. The hook is called right after the JWE message has been parsed, but before the actual decryption has taken place. * `(jwe.Message).Decrypt()` has been marked for deprecation in a next major release. JWS * Option `jwe.WithMessage()` has been added. This allows the user to obtain both the verified payload _and_ the raw `*jws.Message` in one go when `jws.Verify()` is called * Options to `jws.Sign()` are not of type `jws.SignOption`. There should be no user-visible effects unless you were storing these somewhere. v1.2.1 02 Jun 2021 [New features] * Option `jwt.WithTypedClaim()` and `jwk.WithTypedField()` have been added. They allow a per-object custom conversion from their JSON representation to a Go object, much like `RegisterCustomField`. The difference is that whereas `RegisterCustomField` has global effect, these typed fields only take effect in the call where the option was explicitly passed. `jws` and `jwe` does not have these options because (1) JWS and JWE messages don't generally carry much in terms of custom data (2) This requires changes in function signatures. Only use these options when you absolutely need to. While it is a powerful tool, they do have many caveats, and abusing these features will have negative effects. See the documentation for details v1.2.0 30 Apr 2021 This is a security fix release with minor incompatibilities from earlier version with regards to the behavior of `jwt.Verify()` function [Security Fix] * `jwt.Verify()` had improperly used the `"alg"` header from the JWS message when `jwt.WithKeySet()` option was used (potentially allowing exploits described in https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/. This has been fixed by ONLY trusting the keys that you provide and using the `"alg"` header from the keys themselves. (#375, #381) As a side effect, `jwt.WithKeySet()` requires that all applicable keys to contain a valid `"alg"` header. Without this we cannot safely choose a key to use, and hence verification will fail. The requirement for the `"alg"` header on keys is an INCOMPATIBLE behavior. This may break existing code, if the key does not already have an `"alg"` header. [New features] * `jwt.Settings()` and `jwt.WithFlattenAudience(bool)` has been added to control how the "aud" claim is serialized into JSON. When this is enabled, all JWTs with a single "aud" claim will serialize the field as a single string, instead of an array of strings with a single element, i.e.: // jwt.WithFlattenAudience(true) {"aud": "foo"} // jwt.WithFlattenAudience(false) {"aud": ["foo"]} This setting has a global effect. [Buf fixes] * jwt.Validate now returns true if the value in `nbf` field is exactly the same as what the clock returns (e.g. token.nbf == time.Now()) v1.1.7 02 Apr 2021 [New features] * `jwk.New` `jwk.Parse`, `jwk.ParseKey` can now take a Certificate in ASN.1 DER format in PEM encoding to create a JWK. [Bug fixes] * Protect `jwk.New()` from invalid RSA/ECDSA keys (#360, #361) [Miscellaneous] * Removed "internal/blackmagic" and separated it to its own repository. * Removed unused "marshal proxy" objects in jwt * Added FAQ in `jwt` package v1.1.6 28 Mar 2021 [Bug fixes] * When an object (e.g. JWT) has a null value and `AsMap()` is called, `github.com/lestrrat-go/iter` would panic. This should be fixed in `github.com/lestrrat-go/iter@v1.0.1` and the dependency has been updated accordingly [Miscellaneous] * Added How-to style docs under `docs/` * github.com/goccy/go-json dependency has been updated to v0.4.8 v1.1.5 12 Mar 2021 This is a security fix release. The JWT validation could be skipped for empty values. Upgrade recommended [Security Fix] * JWT validation could be skipped for empty fields (#352). [Bug fixes] * Allow setting JWT "typ" fields to any value (#351). * Remove stray replace directive in cmd/jwx/go.mod (#349) v1.1.4 02 Mar 2021 [New features] * jwt.ParseRequest, jwt.ParseHeader, jwt.ParseForm have been added. They are convenience functions to parse JWTs out of a HTTP request. [Miscellaneous] * Fix jwt.Equals() so that comparison between values containing time.Time actually work * ES256K has been made non-default. You must enable it using a build tag go build -tags jwx_es256k ... Your program will still compile without this tag, but it will return an error during runtime, when ES256K is encountered. This feature is still experimental. v1.1.3 22 Feb 2021 [New features] * Implemented ES256K signing (#337) This feature should be considered experimental [Miscellaneous] * Bump minimum required version to go1.15 * Fix examples, bench, and cmd/jwx accidentally requiring go1.16 * Dependencies for "github.com/goccy/go-json" has been upgraded to v0.4.7 v1.1.2 16 Feb 2021 [New features] * `RegisterCustomField()` has been added, which allows users to specify a private claim/field/header to decode into a particular object of choice, instead of map[string]interface{} or []interface{} (#332, #333) [Bug fixes] * Failures for `jwk.Key.MarshalJSON()` were not properly reported (#330, #331) [Miscellaneous] * `jwe.Encrypt()` now takes options. This should not matter unless you were somehow depending on its method signature. * Dependencies for "github.com/goccy/go-json" has been upgraded to v0.4.2 v1.1.1 05 Feb 2021 [New features] * Command line tool `jwx` has ben completely reworked, and it is now actually useful. * JWKs can now be serialized into PEM files with ASN.1 DER format data, which is useful when you need to work between JSON and PEM data formats. * Constants in jwa package now have can be listed via functions in each category. * jwe.Encrypt and jwe.Decrypt can now handle jwk.Key objects v1.1.0 31 Jan 2021 v1.1.0 is a release that attempts to fix as many of the quirky APIs that survived the API breaking change of v0.9.x -> v1.0.0. This is hopefully the last releases that change backwards compatibility in a major way, at least for some time to come. It is unfortunate that we need to introduce API changes, but we keep learning how the library is being used and the pain points of using this library. Most of the times these pain points are things that we initially did not think about, which in turn requires us to rethink of the API. If you do not wish to spend the time fixing your usage, make sure you have your go.mod set up to not automatically track the latest changes. However, if you do decide to use the latest version, we believe the API is more uniform across packages, and generally is easier to understand. We hope this library helps some of you out there. [BREAKING CHANGES] * `jwk.Parse(io.Reader)`, `jws.Parse(io.Reader)`, `jwt.Parse(io.Reader)`, have all been changed to `Parse([]byte)`. To use an `io.Reader`, use `ParseReader(io.Reader)`. `jwe.Parse` already took `[]byte`, so has not been changed. With this change, all four package `jwe`, `jwk`, `jws`, and `jwt` follow the same API design, which should make things easier to navigate: Parse([]byte) ParseString(string) ParseReader(io.Reader) * `jwk.Set` is now an interface, not a struct. `jwk.Set` now has a well-defined API to access and modify the `jwk.Key` objects that it holds. Add(jwk.Key) bool Clear() Get(int) (jwk.Key, bool) Index(jwk.Key) int Len() int LookupKeyID() (jwk.Key, bool) // Read the section about it below Remove(jwk.Key) bool Iterate(context.Context) KeyIterator * `(jwk.Set).LookupKeyID()` no longer returns an array of `jwk.Key`. Instead, only the first key matching the given key ID will be returned. If you need to work with multiple keys, use `(jwk.Set).Iterate()` or `(jwk.Set).Get()` to look for matching keys. * `jwk.PublicKeyOf()` has been renamed to `jwk.PublicRawKeyOf()`, which converts raw keys (e.g. `rsa.PrivateKey`) to their public counter part (e.g. `rsa.PublicKey`) `jwk.PublicKeyOf()` is now used to get the public counter part of `jwk.Key` objects (e.g. `jwk.RSAPrivateKey` to `jwk.RSAPublicKey`) `jwk.PublicSetOf()` has been added to get a new `jwk.Set` but with all keys transformed to public keys via `jwk.PublicKeyOf()` * `jwk.FetchXXXX` functions have been removed. `jwk.Fetch()` remains, but it now takes `context.Context`, and doesn't support retrieving files from the local file system. See `ReadFile()` for that. * `jws.VerifyWithJKU()`, `jws.VerifyWithJWK()`, `jwk.VerifyWithJWKSet()` have all been removed, but `jwk.VerifySet(jwk.Set)` has been added. * `jws.SplitCompact(io.Reader)` has been changd to `jws.SplitCompact([]byte)` Similar to `Parse()`, `SplitCompactReader(io.Reader)` and `SplitCompactString(string)` have been added * `jws.SignLiteral` has been removed. * `jws.PayloadSigner` has been removed (but should not matter, because this as internal-use only anyways) * `jwe.WithPrettyJSONFormat` has been renamed to `jwe.WithPrettyFormat` * `jwt.Verify` has been removed. Use `jwt.Parse()` aloing with the `jwt.WithVerify()` option to perform signature verification. Validation of verified data can be performed via `(jwt.Token).Validate()` method, which has been available since v1.0.6 * Package `buffer` has been removed. This package should have been an internal package to start with, but it was left because it had been incorporated in the public API in our initial versions. * `(jwk.Key).Get(jwk.X509CertChainKey)` no longer returns a `jwk.CertificateChain`. Instead it returns a raw []*x509.Certificate. * `(jwt.Token).Size() has been removed. * `jwt.WithOpenIDClaims()` has been removed. Use `jwt.WithToken(openid.New())` instead. [New Features] * `jwe.ReadFile(string)`, `jwk.ReadFile(string)`, `jws.ReadFile(string)`, and `jwt.ReadFile(string)` have been added. In the future, we plan to introduce a `WithFS` option so you can read from an arbitrary file system, but this cannot be added while we keep go < 1.16 compatibility. If you want something like that, you will need to put an adapter over the jwx for the time being. * `(jwk.Key).PublicKey()` has been added. This method creates a corresponding public key, with all fields (except those that shouldn't be) copied over. This allows you to easily create a public key of a private key with the same "kid" attribute. * Both `jws.Verify` and `jws.Sign` methods can now handle `jwk.Key` objects, on top of raw keys (e.g. rsa.PrivateKey). You no longer need to conver the `jwk.Key` objects that you have in to raw keys before using these functions. * `(jws.Header).Remove(string)`, `(jwk.Key).Remove(string)`, and `(jwt.Token).Remove(string)` have been added. `jwe.Header` already had a `Remove()` method, so it has not been changed. * `(jwk.Key).Clone() has been added. [Miscellaneous] * Default branch for the repository is now `main`. * Options have been reworked. In most instances, option types should now reflect better the contexts in which they can be used. For example, `jwk` now has `AutoRefreshOption` and `FetchOption` instead of a single `Option`. * JSON marshaling should be 10~30% faster by default (though they may take more allocations to achieve this). However, if performance is really bogging you down, you can try to enable the optional module github.com/goccy/go-json by enabling the "jwx_goccy" tag go build -tags jwx_goccy ... In some cases you get an extra 40~50% performance improvement in serailization https://github.com/lestrrat-go/jwx/pull/314#issue-560594020 https://github.com/lestrrat-go/jwx/pull/314#issuecomment-766343888 * Location for examples and benchmarks have changed: Now examples/ and bench/ are their respective locations, and they are each a standalone module, so that in case we need extra imports (such as the case in examples) they do not interfere with users who just want to include jwx in their projects. v1.0.8 15 Jan 2021 [New features] * Fixed `jws.Message` and `jws.Signature` to be properly formatted when marshaled into JSON. In the same manner, `json.Unmarshal` should also work as expected. * Added API to programatically manipulate `jws.Message` and `jws.Signature` [Miscellaneous] * The order of keys are now consistent as when used with `json.Marshal`. Previously some objects used their own ordering, but now the code goes through one extra roundtrip of `json.Unmarshal`/`json.Marshal` to preserve compatible behavior. This *may* lead to slightly slower performance if you are performing `json.Marshal` over and over in very quick succession. Please file an issue if you have real world cases where the change causes problems for you. * Added more examples in various places. * Tests runs have been sped up for the most oft used cases v1.0.7 11 Jan 2021 [New features] * Added jwk.AutoRefresh, which is a tool to periodically refresh JWKS. (#265) * Added experimental ed25519 support (#252) [Bug fixes] * Fix `Set()` method for jwk Keys to properly accept either `jwk.KeyUsageType` or a simple string. [Miscellaneous] * Updated dependencies * Changed options to use github.com/lestrrat-go/option * Various typos, unused annotations, etc, have been fixed by contributors * Nobody except for the author really should care, but the underlying `pdebug` utility, which is used for print debugging, has been upgraded to v3, which should stop parallel test execution from throwing an error when run with -race v1.0.6 17 Dec 2020 * Fix ECDHES ciphers where padding in AAD et al was creating incomptabile values with jose tool * Also fix ECDH-ES cek handling (#248) * Implement direct key encoding (#213, #249) * Allow JWT tokens to use default JWK if only one key is given and the JWT does not necessarily specifies a key (#214) * Deprecate jwt.Verify and introduce jwt.Validate. JWS verification used the term Verify, which was confusing when users wanted to validate the JWT token itself. (#220) * JWT library optins have been explicitly typed as ValidationOption and ParseOption (#220, #223) * Add jwx.DecoderSettings and jwx.WithUseNumber option to globally change how jwx parses JSON objects (#222) * Encode x5c field as base64 with padding (#244) * Add more interoperability tests against jose tool. * Special thanks to anatol and imirkin! v1.0.5 - 28 Sep 2020 * Reinstate PrivateParams() method in jws and jwe packages. These used to be available until v1.0.0, but somehow got lost during the big change. As a workaround for users of versions 1.0.0 to 1.0.4, you could have achieved the same thing using AsMap() methods, albeit with a slight performance penality (#205, #206) v1.0.4 - 15 Aug 2020 * Fix jwt.WithOpenIDClaims(). Looks like something got lost along the way, and it never really worked. (#201 #202) v1.0.3 - 08 Jul 2020 * `jws.Sign`, and therefore `jwt.Sign` now accept `jwk.Key` as the key to use for signature. (#199) * `jwt.Sign` could sometimes return a nil error when setting bad values to the protected header failed (#195) * More golangci-lint cleanup (#193) v1.0.2 - 07 May 2020 * Since 1.0.0, we took some time to play the test coverage game. The coverage is around 30% better, and we _did_ uncover some inconsistencies in the API, which got promptly fixed. But I'm tired of the coverage game for the time being. PR's welcome! * Add jwk.AssignKeyID to automatically assign a `kid` field to a JWK * Fix jwe.Encrypt / jwe.Decrypt to properly look at the `zip` field * Change jwe.Message accessors to return []byte, not buffer.Buffer v1.0.1 - 04 May 2020 * Normalize all JWK serialization to use padding-less base64 encoding (#185) * Fix edge case unmarshaling openid.AddressClaim within a openid.Token * Fix edge case unmarshaling jwe.Message * Export JWK key-specific constants, such as jwk.RSANKey, jwk.SymmetricOctetsKey, etc * Remove some unused code v1.0.0 - 03 May 2020 * All packages (`jws`, `jwe`, `jwk`, `jwt`) have all been reworked from the ground-up. * These packages now hide the actual implementation of the main structs behind an interface. * Header/Token structs must now be instantiated using proper constructors (most notably, json.Unmarshal will miserably fail if you just pass and empty interface via `xxx.Token` or similar) * Token/Header interfaces are now more or less standardized. The following API should be consistent between all relevant packages: * New() * Get() * Set() * Remove() * Iterate() * Walk() * AsMap() * Oft-used fields are no longer directly accessible: e.g. `token.KeyID = v` is no longer valid. You must set using `Set` (and `Remove`, if you are removing it), and use either `Get` or one of the utility methods such as `token.KeyID()` * Many helper functions and structs have been unexported. They were never meant to be anything useful for end-users, and hopefully it does not cause any problems. * Most errors type/instances have been removed from the public API * `jwt` package can now work with different token types, such as OpenID tokens. * `token.Sign` and `token.Verify` have been changed from methods to package functions `jwt.Sign` and `jwt.Verify`, to allow different types of tokens to be passed to the same logic. * Added a custom token type in `openid` sub-package to make it easier to work with OpenID claims * `jwt.Parse` (and its siblings) now accept `jwt.WithOpenIDClaims()` * `jwe` API has been reworked: * `MultiEncrypt` has been removed. * Serializer structs have been removed. Now you just need to call `jwe.Compact` or `jwe.JSON` * `jwk` API has been reworked: * `jwk.ParseKey` has been added * `jwk.Materialize` has been renamed to `Raw()`. A new corresponding method to initialize the key from a raw key (RSA/ECDSA/byte keys) called `FromRaw()` has also been added, which makes a nice pair. * `jws` API has been reworked * CI has been changed from Travis CI to Github Actions, and tests now include linting via `golangci-lint` v0.9.2 - 15 Apr 2020 * Maintenance release to protect users from upcoming breaking changes v0.9.1 - 27 Feb 2020 * Fix error wrapping in certain cases * Add Claims(), Walk(), and AsMap() to iterate claims, as well as getting the entire data out as a single map * Work with alternate base64 encodings when decoding v0.9.0 - 22 May 2019 * Start tagging versions for good measure. golang-github-lestrrat-go-jwx-1.2.30/LICENSE000066400000000000000000000020641465311135100204020ustar00rootroot00000000000000The MIT License (MIT) Copyright (c) 2015 lestrrat Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. golang-github-lestrrat-go-jwx-1.2.30/Makefile000066400000000000000000000041501465311135100210330ustar00rootroot00000000000000.PHONY: generate realclean cover viewcover test lint check_diffs imports tidy generate: @go generate @$(MAKE) generate-jwa generate-jwe generate-jwk generate-jws generate-jwt generate-%: @echo "> Generating for $(patsubst generate-%,%,$@)" @go generate $(shell pwd -P)/$(patsubst generate-%,%,$@) realclean: rm coverage.out test-cmd: go test -v -race $(TESTOPTS) test: $(MAKE) TESTOPTS=./... test-cmd $(MAKE) -f $(PWD)/Makefile -C examples test-cmd $(MAKE) -f $(PWD)/Makefile -C bench/performance test-cmd cover-cmd: $(MAKE) test-cmd $(MAKE) -f $(PWD)/Makefile -C examples TESTOPTS= test-cmd $(MAKE) -f $(PWD)/Makefile -C bench/performance TESTOPTS= test-cmd $(MAKE) -f $(PWD)/Makefile -C cmd/jwx TESTOPTS= test-cmd @# This is NOT cheating. tools to generate code, and tools to @# run tests don't need to be included in the final result. @cat coverage.out.tmp | grep -v "internal/jose" | grep -v "internal/jwxtest" | grep -v "internal/cmd" > coverage.out @rm coverage.out.tmp cover: $(MAKE) cover-stdlib cover-stdlib: $(MAKE) cover-cmd TESTOPTS="-coverpkg=./... -coverprofile=coverage.out.tmp ./..." cover-goccy: $(MAKE) cover-cmd TESTOPTS="-tags jwx_goccy -coverpkg=./... -coverprofile=coverage.out.tmp ./..." cover-es256k: $(MAKE) cover-cmd TESTOPTS="-tags jwx_es256k -coverpkg=./... -coverprofile=coverage.out.tmp ./..." cover-all: $(MAKE) cover-cmd TESTOPTS="-tags jwx_goccy,jwx_es256k -coverpkg=./... -coverprofile=coverage.out.tmp ./..." smoke-cmd: $(MAKE) test-cmd $(MAKE) -f $(PWD)/Makefile -C examples test-cmd $(MAKE) -f $(PWD)/Makefile -C bench/performance test-cmd $(MAKE) -f $(PWD)/Makefile -C cmd/jwx test-cmd smoke: $(MAKE) smoke-stdlib smoke-stdlib: $(MAKE) smoke-cmd TESTOPTS="-short ./..." smoke-goccy: $(MAKE) smoke-cmd TESTOPTS="-short -tags jwx_goccy ./..." smoke-es256k: $(MAKE) smoke-cmd TESTOPTS="-short -tags jwx_es256k ./..." smoke-all: $(MAKE) smoke-cmd TESTOPTS="-short -tags jwx_goccy,jwx_es256k ./..." viewcover: go tool cover -html=coverage.out lint: golangci-lint run ./... check_diffs: ./scripts/check-diff.sh imports: goimports -w ./ tidy: ./scripts/tidy.sh golang-github-lestrrat-go-jwx-1.2.30/README.md000066400000000000000000000165451465311135100206650ustar00rootroot00000000000000# github.com/lestrrat-go/jwx ![](https://github.com/lestrrat-go/jwx/workflows/CI/badge.svg) [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx) [![codecov.io](http://codecov.io/github/lestrrat-go/jwx/coverage.svg?branch=main)](http://codecov.io/github/lestrrat-go/jwx?branch=main) Various libraries implementing various JWx technologies. Please click on the package names in the table below to find the synopsis/description for each package. If you are using this module in your product or your company, please add your product and/or company name in the [Wiki](https://github.com/lestrrat-go/jwx/wiki/Users)! It really helps keeping up our motivation. | Package name | Notes | |-----------------------------------------------------------|-------------------------------------------------| | [jwt](https://github.com/lestrrat-go/jwx/tree/main/jwt) | [RFC 7519](https://tools.ietf.org/html/rfc7519) | | [jwk](https://github.com/lestrrat-go/jwx/tree/main/jwk) | [RFC 7517](https://tools.ietf.org/html/rfc7517) + [RFC 7638](https://tools.ietf.org/html/rfc7638) | | [jwa](https://github.com/lestrrat-go/jwx/tree/main/jwa) | [RFC 7518](https://tools.ietf.org/html/rfc7518) | | [jws](https://github.com/lestrrat-go/jwx/tree/main/jws) | [RFC 7515](https://tools.ietf.org/html/rfc7515) + [RFC 7797](https://tools.ietf.org/html/rfc7797) | | [jwe](https://github.com/lestrrat-go/jwx/tree/main/jwe) | [RFC 7516](https://tools.ietf.org/html/rfc7516) | # How to Use * [API documentation](https://pkg.go.dev/github.com/lestrrat-go/jwx) * [How-to style documentation](./docs) * [Runnable Examples](./examples) # Description ## History My goal was to write a server that heavily uses JWK and JWT. At first glance the libraries that already exist seemed sufficient, but soon I realized that 1. To completely implement the protocols, I needed the entire JWT, JWK, JWS, JWE (and JWA, by necessity). 2. Most of the libraries that existed only deal with a subset of the various JWx specifications that were necessary to implement their specific needs For example, a certain library looks like it had most of JWS, JWE, JWK covered, but then it lacked the ability to include private claims in its JWT responses. Another library had support of all the private claims, but completely lacked in its flexibility to generate various different response formats. Because I was writing the server side (and the client side for testing), I needed the *entire* JOSE toolset to properly implement my server, **and** they needed to be *flexible* enough to fulfill the entire spec that I was writing. So here's `github.com/lestrrat-go/jwx`. This library is extensible, customizable, and hopefully well organized to the point that it is easy for you to slice and dice it. ## Why would I use this library? There are several other major Go modules that handle JWT and related data formats, so why should you use this library? From a purely functional perspective, the only major difference is this: Whereas most other projects only deal with what they seem necessary to handle JWTs, this module handles the **_entire_** spectrum of JWS, JWE, JWK, and JWT. That is, if you need to not only parse JWTs, but also to control JWKs, or if you need to handle payloads that are NOT JWTs, you should probably consider using this module. You should also note that JWT is built _on top_ of those other technologies. You simply cannot have a complete JWT package without implementing the entirety of JWS/JWS/JWK, which this library does. Next, from an implementation perspective, this module differs significantly from others in that it tries very hard to expose only the APIs, and not the internal data. For example, individual JWT claims are not accessible through struct field lookups. You need to use one of the getter methods. This is because this library takes the stance that the end user is fully capable and even willing to shoot themselves on the foot when presented with a lax API. By making sure that users do not have access to open structs, we can protect users from doing silly things like creating _incomplete_ structs, or access the structs concurrently without any protection. This structure also allows us to put extra smarts in the structs, such as doing the right thing when you want to parse / write custom fields (this module does not require the user to specify alternate structs to parse objects with custom fields) In the end I think it comes down to your usage pattern, and priorities. Some general guidelines that come to mind are: * If you want a single library to handle everything JWx, such as using JWE, JWK, JWS, handling [auto-refreshing JWKs](https://github.com/lestrrat-go/jwx/blob/main/docs/04-jwk.md#auto-refreshing-remote-keys), use this module. * If you want to honor all possible custom fields transparently, use this module. * If you want a standardized clean API, use this module. Otherwise, feel free to choose something else. # Command Line Tool Since v1.1.1 we have a command line tool `jwx` (*). With `jwx` you can create JWKs (from PEM files, even), sign and verify JWS message, encrypt and decrypt JWE messages, etc. (*) Okay, it existed since a long time ago, but it was never useful. ## Installation ``` go install github.com/lestrrat-go/jwx/cmd/jwx ``` # Caveats ## Backwards Compatibility Notice ### Users of github.com/lestrrat/go-jwx Uh, why are you using such an ancient version? You know that repository is archived for a reason, yeah? Please use the new version. ### Pre-1.0.0 users The API has been reworked quite substantially between pre- and post 1.0.0 releases. Please check out the [Changes](./Changes) file (or the [diff](https://github.com/lestrrat-go/jwx/compare/v0.9.2...v1.0.0), if you are into that sort of thing) ### v1.0.x users The API has gone under some changes for v1.1.0. If you are upgrading, you might want to read the relevant parts in the [Changes](./Changes) file. # Contributions ## Issues For bug reports and feature requests, please try to follow the issue templates as much as possible. For either bug reports or feature requests, failing tests are even better. ## Pull Requests Please make sure to include tests that excercise the changes you made. If you are editing auto-generated files (those files with the `_gen.go` suffix, please make sure that you do the following: 1. Edit the generator, not the generated files (e.g. internal/cmd/genreadfile/main.go) 2. Run `make generate` (or `go generate`) to generate the new code 3. Commit _both_ the generator _and_ the generated files ## Discussions / Usage Please try [discussions](https://github.com/lestrrat-go/jwx/discussions) first. # Related Modules * [github.com/jwx-go/crypto-signer/gcp](https://github.com/jwx-go/crypto-signer/tree/main/gcp) - GCP KMS wrapper that implements [`crypto.Signer`](https://pkg.go.dev/crypto#Signer) * [github.com/jwx-go/crypto-signer/aws](https://github.com/jwx-go/crypto-signer/tree/main/aws) - AWS KMS wrapper that implements [`crypto.Signer`](https://pkg.go.dev/crypto#Signer) # Credits * Initial work on this library was generously sponsored by HDE Inc (https://www.hde.co.jp) * Lots of code, especially JWE was taken from go-jose library (https://github.com/square/go-jose) * Lots of individual contributors have helped this project over the years. Thank each and everyone of you very much. golang-github-lestrrat-go-jwx-1.2.30/bench/000077500000000000000000000000001465311135100204525ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/bench/README.md000066400000000000000000000003231465311135100217270ustar00rootroot00000000000000# Benchmarks # Performance Benchmarks [Measures the performance of github.com/lestrrat-go/jwx](./performance) # Comparison Benchmarks [Compares github.com/lestrrat-go/jwx with other libraries](./comparison) golang-github-lestrrat-go-jwx-1.2.30/bench/comparison/000077500000000000000000000000001465311135100226245ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/bench/comparison/Makefile000066400000000000000000000001721465311135100242640ustar00rootroot00000000000000stdlib: go test -bench . -benchmem | tee stdlib.txt goccy: go test -bench . -benchmem -tags jwx_goccy | tee goccy.txt golang-github-lestrrat-go-jwx-1.2.30/bench/comparison/README.md000066400000000000000000000010471465311135100241050ustar00rootroot00000000000000# Comparison Benchmarks ## Parsing signed JWT * github.com/lestrrat-go/jwx * github.com/golang-jwt/jwt ``` go test -bench . -benchmem -tags jwx_goccy | tee goccy.txt goos: linux goarch: amd64 pkg: github.com/lestrrat-go/jwx/bench/comparison cpu: AMD Ryzen 9 3900X 12-Core Processor BenchmarkJWT/github.com/lestrrat-go/jwx-24 100 10606620 ns/op 6094200 B/op 39411 allocs/op BenchmarkJWT/github.com/golang-jwt/jwt-24 100 10577532 ns/op 6080878 B/op 39366 allocs/op ``` golang-github-lestrrat-go-jwx-1.2.30/bench/comparison/go.mod000066400000000000000000000001511465311135100237270ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/bench/comparison go 1.20 replace github.com/lestrrat-go/jwx => ../.. golang-github-lestrrat-go-jwx-1.2.30/bench/comparison/go.sum000066400000000000000000000000001465311135100237450ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/bench/performance/000077500000000000000000000000001465311135100227535ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/bench/performance/Makefile000066400000000000000000000003361465311135100244150ustar00rootroot00000000000000stdlib: go test -bench . -benchmem -count 5 -timeout 60m | tee stdlib.txt goccy: go test -bench . -benchmem -count 5 -timeout 60m -tags jwx_goccy | tee goccy.txt benchstat: benchstat -sort -delta stdlib.txt goccy.txt golang-github-lestrrat-go-jwx-1.2.30/bench/performance/README.md000066400000000000000000000357051465311135100242440ustar00rootroot00000000000000# Benchmarks ## Quick benchmark ``` go test -bench . -benchmem ``` ## Full benchmark ``` go test -timeout 60m -bench . -benchmem | tee stdlib.txt ``` ## Switch JSON backends ``` go test -timeout 60m -tags jwx_goccy -bench . -benchmem | tee goccy.txt ``` ## Comparison Go 1.6.2, github.com/goccy/go-json v0.7.4 ``` benchstat -sort -delta stdlib.txt goccy.txt name old time/op new time/op delta JWK/Serialization/RSA/PrivateKey/jwk.ParseString-24 75.1µs ± 3% 29.3µs ± 2% -60.98% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.Parse-24 73.3µs ± 1% 28.8µs ± 1% -60.65% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.ParseReader-24 75.2µs ± 0% 30.0µs ± 1% -60.09% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseReader-24 29.6µs ± 2% 14.4µs ± 0% -51.38% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseReader-24 39.1µs ± 2% 19.1µs ± 1% -51.13% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.Parse-24 28.7µs ± 1% 14.3µs ± 1% -50.09% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.Parse-24 38.6µs ± 5% 19.3µs ± 2% -49.90% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseString-24 38.5µs ± 0% 19.3µs ± 2% -49.87% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseString-24 28.8µs ± 1% 14.6µs ± 2% -49.35% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.Parse-24 26.5µs ± 0% 13.5µs ± 0% -49.00% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseString-24 26.8µs ± 1% 13.7µs ± 1% -48.76% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseReader-24 26.9µs ± 0% 14.0µs ± 1% -48.00% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.Parse-24 24.2µs ± 0% 12.7µs ± 2% -47.72% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseString-24 24.4µs ± 0% 12.8µs ± 2% -47.64% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseReader-24 24.5µs ± 0% 13.1µs ± 2% -46.70% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.Parse-24 19.0µs ± 1% 10.9µs ± 1% -42.51% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseString-24 19.3µs ± 1% 11.3µs ± 3% -41.22% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseString-24 19.2µs ± 1% 11.4µs ± 1% -40.63% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseReader-24 19.4µs ± 1% 11.6µs ± 2% -40.34% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.Parse-24 18.9µs ± 2% 11.4µs ± 1% -39.91% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseReader-24 19.3µs ± 1% 11.7µs ± 1% -39.59% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.Parse-24 21.6µs ± 2% 15.2µs ± 0% -29.84% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.Parse-24 11.1µs ± 1% 7.8µs ± 2% -29.51% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseReader-24 11.7µs ± 2% 8.3µs ± 3% -29.22% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseReader-24 21.8µs ± 1% 15.6µs ± 1% -28.58% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseString-24 11.7µs ± 1% 8.3µs ± 2% -28.57% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseString-24 21.8µs ± 1% 15.6µs ± 1% -28.25% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.Parse-24 14.6µs ± 1% 10.7µs ± 1% -26.92% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseReader-24 14.9µs ± 1% 11.0µs ± 1% -26.36% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseString-24 14.6µs ± 0% 10.8µs ± 2% -26.04% (p=0.016 n=4+5) JWS/Serialization/JSON/json.Marshal-24 29.8µs ± 4% 28.3µs ± 2% -4.98% (p=0.016 n=5+5) JWE/Serialization/JSON/json.Marshal-24 33.5µs ± 3% 34.4µs ± 1% ~ (p=0.056 n=5+5) JWK/Serialization/EC/PublicKey/json.Marshal-24 14.7µs ± 5% 15.3µs ± 1% ~ (p=0.095 n=5+5) JWK/Serialization/EC/PrivateKey/json.Marshal-24 16.0µs ± 5% 15.9µs ± 2% ~ (p=1.000 n=5+5) JWT/Serialization/Sign/jwt.Sign-24 1.22ms ± 0% 1.22ms ± 1% ~ (p=0.690 n=5+5) JWK/Serialization/RSA/PublicKey/json.Marshal-24 14.7µs ± 1% 15.0µs ± 1% +2.10% (p=0.016 n=5+5) JWK/Serialization/RSA/PrivateKey/json.Marshal-24 27.9µs ± 1% 28.8µs ± 1% +3.13% (p=0.008 n=5+5) JWT/Serialization/JSON/json.Unmarshal-24 4.80µs ± 0% 4.97µs ± 3% +3.62% (p=0.008 n=5+5) JWT/Serialization/JSON/json.Marshal-24 11.0µs ± 1% 11.5µs ± 3% +4.19% (p=0.016 n=5+5) JWK/Serialization/Symmetric/PublicKey/json.Marshal-24 12.1µs ± 2% 12.7µs ± 2% +4.68% (p=0.008 n=5+5) JWE/Serialization/JSON/json.Unmarshal-24 8.86µs ± 0% 9.29µs ± 1% +4.84% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/json.Marshal-24 12.0µs ± 0% 12.9µs ± 4% +7.46% (p=0.008 n=5+5) name old alloc/op new alloc/op delta JWT/Serialization/JSON/jwt.Parse-24 7.80kB ± 0% 3.48kB ± 0% -55.38% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseString-24 7.85kB ± 0% 3.53kB ± 0% -55.05% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseReader-24 8.31kB ± 0% 3.99kB ± 0% -51.97% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.Parse-24 10.8kB ± 0% 5.7kB ± 0% -47.68% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseString-24 11.3kB ± 0% 6.1kB ± 0% -45.78% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseReader-24 11.4kB ± 0% 6.2kB ± 0% -45.53% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.Parse-24 36.5kB ± 0% 26.0kB ± 0% -28.82% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.Parse-24 2.83kB ± 0% 2.02kB ± 0% -28.81% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.ParseString-24 38.3kB ± 0% 27.8kB ± 0% -27.47% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseString-24 3.02kB ± 0% 2.21kB ± 0% -26.98% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.Parse-24 7.04kB ± 0% 5.15kB ± 0% -26.82% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.Parse-24 6.27kB ± 0% 4.64kB ± 0% -26.02% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.Parse-24 6.27kB ± 0% 4.64kB ± 0% -26.02% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseString-24 7.28kB ± 0% 5.39kB ± 0% -25.93% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.ParseReader-24 41.1kB ± 0% 30.6kB ± 0% -25.58% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseString-24 6.40kB ± 0% 4.77kB ± 0% -25.50% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseString-24 6.40kB ± 0% 4.77kB ± 0% -25.50% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseReader-24 7.55kB ± 0% 5.66kB ± 0% -25.00% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.Parse-24 16.3kB ± 0% 12.3kB ± 0% -24.65% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseReader-24 3.34kB ± 0% 2.53kB ± 0% -24.40% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.Parse-24 7.65kB ± 0% 5.79kB ± 0% -24.27% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseReader-24 6.78kB ± 0% 5.15kB ± 0% -24.06% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseReader-24 6.78kB ± 0% 5.15kB ± 0% -24.06% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseString-24 17.2kB ± 0% 13.2kB ± 0% -23.36% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseString-24 8.00kB ± 0% 6.14kB ± 0% -23.20% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseReader-24 8.16kB ± 0% 6.30kB ± 0% -22.75% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseReader-24 17.9kB ± 0% 13.9kB ± 0% -22.52% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.Parse-24 7.22kB ± 0% 5.71kB ± 0% -20.84% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseString-24 7.63kB ± 0% 6.13kB ± 0% -19.71% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseReader-24 7.73kB ± 0% 6.22kB ± 0% -19.46% (p=0.008 n=5+5) JWE/Serialization/JSON/json.Unmarshal-24 1.58kB ± 0% 1.58kB ± 0% ~ (all equal) JWT/Serialization/Sign/jwt.Sign-24 36.6kB ± 0% 36.6kB ± 0% ~ (p=0.548 n=5+5) JWT/Serialization/JSON/json.Unmarshal-24 592B ± 0% 592B ± 0% ~ (all equal) JWE/Serialization/JSON/json.Marshal-24 3.98kB ± 0% 3.99kB ± 0% +0.24% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/json.Marshal-24 1.80kB ± 0% 1.80kB ± 0% +0.26% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/json.Marshal-24 1.16kB ± 0% 1.16kB ± 0% +0.26% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/json.Marshal-24 1.16kB ± 0% 1.16kB ± 0% +0.26% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/json.Marshal-24 8.85kB ± 0% 8.87kB ± 0% +0.27% (p=0.008 n=5+5) JWT/Serialization/JSON/json.Marshal-24 722B ± 0% 724B ± 0% +0.28% (p=0.008 n=5+5) JWS/Serialization/JSON/json.Marshal-24 5.18kB ± 0% 5.20kB ± 0% +0.28% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/json.Marshal-24 2.34kB ± 0% 2.35kB ± 0% +0.28% (p=0.016 n=5+4) JWK/Serialization/EC/PrivateKey/json.Marshal-24 2.29kB ± 0% 2.29kB ± 0% +0.29% (p=0.016 n=4+5) name old allocs/op new allocs/op delta JWK/Serialization/RSA/PrivateKey/jwk.Parse-24 205 ± 0% 89 ± 0% -56.59% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.ParseString-24 206 ± 0% 90 ± 0% -56.31% (p=0.008 n=5+5) JWK/Serialization/RSA/PrivateKey/jwk.ParseReader-24 209 ± 0% 93 ± 0% -55.50% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.Parse-24 129 ± 0% 60 ± 0% -53.49% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseString-24 130 ± 0% 61 ± 0% -53.08% (p=0.008 n=5+5) JWK/Serialization/EC/PrivateKey/jwk.ParseReader-24 130 ± 0% 61 ± 0% -53.08% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.Parse-24 112 ± 0% 54 ± 0% -51.79% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseString-24 113 ± 0% 55 ± 0% -51.33% (p=0.008 n=5+5) JWK/Serialization/EC/PublicKey/jwk.ParseReader-24 113 ± 0% 55 ± 0% -51.33% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.Parse-24 96.0 ± 0% 50.0 ± 0% -47.92% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseString-24 97.0 ± 0% 51.0 ± 0% -47.42% (p=0.008 n=5+5) JWK/Serialization/RSA/PublicKey/jwk.ParseReader-24 97.0 ± 0% 51.0 ± 0% -47.42% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.Parse-24 49.0 ± 0% 27.0 ± 0% -44.90% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseString-24 50.0 ± 0% 28.0 ± 0% -44.00% (p=0.008 n=5+5) JWS/Serialization/Compact/jws.ParseReader-24 50.0 ± 0% 28.0 ± 0% -44.00% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.Parse-24 81.0 ± 0% 47.0 ± 0% -41.98% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.Parse-24 81.0 ± 0% 47.0 ± 0% -41.98% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseString-24 82.0 ± 0% 48.0 ± 0% -41.46% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PublicKey/jwk.ParseReader-24 82.0 ± 0% 48.0 ± 0% -41.46% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseString-24 82.0 ± 0% 48.0 ± 0% -41.46% (p=0.008 n=5+5) JWK/Serialization/Symmetric/PrivateKey/jwk.ParseReader-24 82.0 ± 0% 48.0 ± 0% -41.46% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.Parse-24 106 ± 0% 66 ± 0% -37.74% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseString-24 107 ± 0% 67 ± 0% -37.38% (p=0.008 n=5+5) JWT/Serialization/Sign/jwt.ParseReader-24 107 ± 0% 67 ± 0% -37.38% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.Parse-24 153 ± 0% 100 ± 0% -34.64% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseString-24 154 ± 0% 101 ± 0% -34.42% (p=0.008 n=5+5) JWS/Serialization/JSON/jws.ParseReader-24 155 ± 0% 102 ± 0% -34.19% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.Parse-24 57.0 ± 0% 39.0 ± 0% -31.58% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseString-24 58.0 ± 0% 40.0 ± 0% -31.03% (p=0.008 n=5+5) JWT/Serialization/JSON/jwt.ParseReader-24 58.0 ± 0% 40.0 ± 0% -31.03% (p=0.008 n=5+5) JWE/Serialization/JSON/json.Marshal-24 45.0 ± 0% 45.0 ± 0% ~ (all equal) JWE/Serialization/JSON/json.Unmarshal-24 26.0 ± 0% 26.0 ± 0% ~ (all equal) JWK/Serialization/RSA/PublicKey/json.Marshal-24 24.0 ± 0% 24.0 ± 0% ~ (all equal) JWK/Serialization/RSA/PrivateKey/json.Marshal-24 51.0 ± 0% 51.0 ± 0% ~ (all equal) JWK/Serialization/EC/PublicKey/json.Marshal-24 27.0 ± 0% 27.0 ± 0% ~ (all equal) JWK/Serialization/EC/PrivateKey/json.Marshal-24 31.0 ± 0% 31.0 ± 0% ~ (all equal) JWK/Serialization/Symmetric/PublicKey/json.Marshal-24 20.0 ± 0% 20.0 ± 0% ~ (all equal) JWK/Serialization/Symmetric/PrivateKey/json.Marshal-24 20.0 ± 0% 20.0 ± 0% ~ (all equal) JWS/Serialization/JSON/json.Marshal-24 60.0 ± 0% 60.0 ± 0% ~ (all equal) JWT/Serialization/Sign/jwt.Sign-24 199 ± 0% 199 ± 0% ~ (all equal) JWT/Serialization/JSON/json.Unmarshal-24 10.0 ± 0% 10.0 ± 0% ~ (all equal) JWT/Serialization/JSON/json.Marshal-24 18.0 ± 0% 18.0 ± 0% ~ (all equal) ``` golang-github-lestrrat-go-jwx-1.2.30/bench/performance/go.mod000066400000000000000000000014631465311135100240650ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/bench/performance go 1.20 replace github.com/lestrrat-go/jwx => ../.. require github.com/lestrrat-go/jwx v0.0.0-00010101000000-000000000000 require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.2 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect github.com/lestrrat-go/iter v1.0.2 // indirect github.com/lestrrat-go/option v1.0.1 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/testify v1.9.0 // indirect golang.org/x/crypto v0.25.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/bench/performance/go.sum000066400000000000000000000057171465311135100241200ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.2 h1:Cg2gVSc9h7sz9NOByczrbUvLopQmXrfFx//N+AkAr5k= github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU= github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/bench/performance/jwe_benchmark_test.go000066400000000000000000000022211465311135100271350ustar00rootroot00000000000000package bench_test import ( "encoding/json" "testing" "github.com/lestrrat-go/jwx/jwe" ) func BenchmarkJWE(b *testing.B) { const s = `eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ` m, _ := jwe.Parse([]byte(s)) js, _ := json.Marshal(m) var v interface{} b.Run("Serialization", func(b *testing.B) { b.Run("JSON", func(b *testing.B) { testcases := []Case{ { Name: "json.Marshal", Test: func(b *testing.B) error { _, err := json.Marshal(m) return err }, }, { Name: "json.Unmarshal", Test: func(b *testing.B) error { return json.Unmarshal(js, &v) }, }, } for _, tc := range testcases { tc.Run(b) } }) }) } golang-github-lestrrat-go-jwx-1.2.30/bench/performance/jwk_benchmark_test.go000066400000000000000000000035111465311135100271460ustar00rootroot00000000000000package bench_test import ( "bytes" "encoding/json" "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwk" ) func runJSONBench(b *testing.B, privkey jwk.Key) { b.Helper() privkey.Set("mykey", "1234567890") pubkey, err := jwk.PublicKeyOf(privkey) if err != nil { b.Fatal(err) } keytypes := []struct { Name string Key jwk.Key }{ {Name: "PublicKey", Key: pubkey}, {Name: "PrivateKey", Key: privkey}, } for _, keytype := range keytypes { key := keytype.Key b.Run(keytype.Name, func(b *testing.B) { buf, _ := json.Marshal(key) s := string(buf) rdr := bytes.NewReader(buf) testcases := []Case{ { Name: "jwk.Parse", Test: func(b *testing.B) error { _, err := jwk.Parse(buf) return err }, }, { Name: "jwk.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jwk.ParseString(s) return err }, }, { Name: "jwk.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := rdr.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jwk.ParseReader(rdr) return err }, }, { Name: "json.Marshal", Test: func(b *testing.B) error { _, err := json.Marshal(key) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) } } func BenchmarkJWK(b *testing.B) { b.Run("Serialization", func(b *testing.B) { b.Run("RSA", func(b *testing.B) { rsakey, _ := jwxtest.GenerateRsaJwk() runJSONBench(b, rsakey) }) b.Run("EC", func(b *testing.B) { eckey, _ := jwxtest.GenerateEcdsaJwk() runJSONBench(b, eckey) }) b.Run("Symmetric", func(b *testing.B) { symkey, _ := jwxtest.GenerateSymmetricJwk() runJSONBench(b, symkey) }) }) } golang-github-lestrrat-go-jwx-1.2.30/bench/performance/jws_benchmark_test.go000066400000000000000000000056771465311135100271750ustar00rootroot00000000000000package bench_test import ( "bytes" "encoding/json" "testing" "github.com/lestrrat-go/jwx/jws" ) func BenchmarkJWS(b *testing.B) { const compactStr = `eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk` compactBuf := []byte(compactStr) compactRdr := bytes.NewReader(compactBuf) b.Run("Serialization", func(b *testing.B) { const jsonStr = `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "signatures":[ { "header": {"kid":"2010-12-29"}, "protected":"eyJhbGciOiJSUzI1NiJ9", "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw" }, { "header": {"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"}, "protected":"eyJhbGciOiJFUzI1NiJ9", "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" } ] }` jsonBuf := []byte(jsonStr) jsonRdr := bytes.NewReader(jsonBuf) b.Run("Compact", func(b *testing.B) { testcases := []Case{ { Name: "jws.Parse", Test: func(b *testing.B) error { _, err := jws.Parse(compactBuf) return err }, }, { Name: "jws.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jws.ParseString(compactStr) return err }, }, { Name: "jws.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := compactRdr.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jws.ParseReader(compactRdr) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) b.Run("JSON", func(b *testing.B) { m, _ := jws.Parse([]byte(jsonStr)) testcases := []Case{ { Name: "jws.Parse", Test: func(b *testing.B) error { _, err := jws.Parse(jsonBuf) return err }, }, { Name: "jws.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jws.ParseString(jsonStr) return err }, }, { Name: "jws.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := jsonRdr.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jws.ParseReader(jsonRdr) return err }, }, { Name: "json.Marshal", Test: func(b *testing.B) error { _, err := json.Marshal(m) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) }) } golang-github-lestrrat-go-jwx-1.2.30/bench/performance/jwt_benchmark_test.go000066400000000000000000000074511465311135100271660ustar00rootroot00000000000000package bench_test import ( "bytes" "encoding/json" "testing" "time" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jwt" ) func BenchmarkJWT(b *testing.B) { alg := jwa.RS256 key, err := jwxtest.GenerateRsaJwk() if err != nil { b.Fatal(err) } pubkey, err := jwk.PublicKeyOf(key) if err != nil { b.Fatal(err) } t1 := jwt.New() t1.Set(jwt.IssuedAtKey, time.Now().Unix()) t1.Set(jwt.ExpirationKey, time.Now().Add(time.Hour).Unix()) b.Run("Serialization", func(b *testing.B) { b.Run("Compact", func(b *testing.B) { testcases := []Case{ { Name: "jwt.Sign", Test: func(b *testing.B) error { _, err := jwt.Sign(t1, alg, key) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) b.Run("JSON", func(b *testing.B) { testcases := []Case{ { Name: "json.Marshal", Test: func(b *testing.B) error { _, err := json.Marshal(t1) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) }) b.Run("Serialization", func(b *testing.B) { signedBuf, err := jwt.Sign(t1, alg, key) if err != nil { b.Fatal(err) } signedString := string(signedBuf) signedReader := bytes.NewReader(signedBuf) jsonBuf, _ := json.Marshal(t1) jsonString := string(jsonBuf) jsonReader := bytes.NewReader(jsonBuf) b.Run("Compact (With Verify)", func(b *testing.B) { testcases := []Case{ { Name: "jwt.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jwt.ParseString(signedString, jwt.WithVerify(alg, pubkey)) return err }, }, { Name: "jwt.Parse", Test: func(b *testing.B) error { _, err := jwt.Parse(signedBuf, jwt.WithVerify(alg, pubkey)) return err }, }, { Name: "jwt.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := signedReader.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jwt.ParseReader(signedReader, jwt.WithVerify(alg, pubkey)) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) b.Run("Compact (No Verify)", func(b *testing.B) { testcases := []Case{ { Name: "jwt.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jwt.ParseString(signedString) return err }, }, { Name: "jwt.Parse", Test: func(b *testing.B) error { _, err := jwt.Parse(signedBuf) return err }, }, { Name: "jwt.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := signedReader.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jwt.ParseReader(signedReader) return err }, }, } for _, tc := range testcases { tc.Run(b) } }) b.Run("JSON", func(b *testing.B) { var v interface{} testcases := []Case{ { Name: "jwt.ParseString", SkipShort: true, Test: func(b *testing.B) error { _, err := jwt.ParseString(jsonString) return err }, }, { Name: "jwt.Parse", Test: func(b *testing.B) error { _, err := jwt.Parse(jsonBuf) return err }, }, { Name: "jwt.ParseReader", SkipShort: true, Pretest: func(b *testing.B) error { _, err := jsonReader.Seek(0, 0) return err }, Test: func(b *testing.B) error { _, err := jwt.ParseReader(jsonReader) return err }, }, { Name: "json.Unmarshal", Test: func(b *testing.B) error { return json.Unmarshal(jsonBuf, &v) }, }, } for _, tc := range testcases { tc.Run(b) } }) }) } golang-github-lestrrat-go-jwx-1.2.30/bench/performance/jwx_benchmark_test.go000066400000000000000000000013501465311135100271620ustar00rootroot00000000000000package bench_test import ( "testing" "github.com/lestrrat-go/jwx/internal/json" ) func TestBackend(t *testing.T) { t.Logf("%s", json.Engine()) } // Case is a single benchmark case type Case struct { Name string Pretest func(*testing.B) error SkipShort bool // Skip benchmark on short mode Test func(*testing.B) error } func (c *Case) Run(b *testing.B) { b.Helper() b.Run(c.Name, func(b *testing.B) { if testing.Short() && c.SkipShort { b.SkipNow() } b.Helper() for i := 0; i < b.N; i++ { b.StopTimer() if pretest := c.Pretest; pretest != nil { if err := pretest(b); err != nil { b.Fatal(err) } } b.StartTimer() if err := c.Test(b); err != nil { b.Fatal(err) } } }) } golang-github-lestrrat-go-jwx-1.2.30/cmd/000077500000000000000000000000001465311135100201365ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/000077500000000000000000000000001465311135100207465ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/README.md000066400000000000000000000322161465311135100222310ustar00rootroot00000000000000# The `jwx` command line tool `jwx` command line tool performs set of common operations involving JSON Object Signing and Encryption (JOSE). I highly recommend [github.com/latchset/jose](https://github.com/latchset/jose) for the same purpose, but you might prefer to use `jwx` for its pure-Go implementation. All examples use the "full" name for command names and option names, but you can use the short forms interchangeably. # jwx jwk Work with JWKs ## jwx jwk generate Full form: ``` jwx jwk generate [options] ``` Short form: ``` jwx jwk gen [options] ``` ### Options | Name | Aliases | Description | |:--------------|:---------|:-------------| | --type | -t | Type of JWK | | --keysize | -s | Number of bits for RSA keys. Number of bytes for oct keys | | --curve | -c | Elliptic curve type for EC or OKP keys | | --template | (none) | Template to use to generate JWK. Must be a JSON object | | --set | (none) | Always output as JWK set | | --publick-key | -p | Generate a public key | | --output | -o | Write output to file ("-" for STDOUT) | ### Usage You can generate random JWKs for RSA/EC/oct/OKP key types: ```shell # output truncated for brevity % jwx jwk generate --type RSA --keysize 4096 { "d": "TGGiBzGzFEWQQPE32m...", "dp": "LjsdUBxJhshSa7FEBP...", "dq": "G4SPP5e5sp-k8iCEAa...", "e": "AQAB", "kty": "RSA", "n": "lgy17ssrTVUFKxFq5gO...", "p": "wEXZYzjrSbAn1bDpQpN...", "q": "x8hEaDhNND9mOqHD_xH...", "qi": "BVDWmgMEZ7QBC8ZSL9..." } % jwx jwk generate --type EC --curve P-521 % jwx jwk generate --type oct --keysize 128 % jwx jwk generate --type OKP --curve Ed25519 ``` To include extra information in the key such as a key ID, use the `--template` option ```shell # output truncated for brevity % jwx jwk generate --type EC --curve P-384 --template '{"kid":"myawesomekey"}' { "crv": "P-384", "d": "Q4JFCjI81uYC2T...", "kid": "myawesomekey", "kty": "EC", "x": "cm6GYmhtjYLr_B...", "y": "4_dIgUa68wytgg..." } ``` ## jwx jwk format Full form ``` jwx jwk format [options] [FILE] ``` Short form ``` jwx jwk fmt [options] [FILE] ``` You may specify "-" as `FILE` to tell the command to read from STDIN. ### Options | Name | Aliases | Description | |-----------------|---------|-------------| | --input-format | -I | JWK input format (json/pem) | | --output-format | -O | JWK output format (json/pem) | | --set | (none) | Always output as JWK set | | --publick-key | -p | Display the public key version of the input | | --output | -o | Write output to file ("-" for STDOUT) | ### Usage (Produce public key of a private key) Given a private key in file `ec.jwk` ```json {"kty":"EC","crv":"P-256","x":"SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74","y":"lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI","d":"0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"} ``` You can issue the following command to produce the public key of the above key: ``` % jwx jwk fmt --public-key ec.jwk { "crv": "P-256", "kty": "EC", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI" } ``` ### Usage (Parse JSON) You can parse and make sure that the a given JWK is well-formatted. Given an unformatted key in file `ec.jwk` ```json {"kty":"EC","crv":"P-256","x":"SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74","y":"lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI","d":"0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"} ``` You can produce a pretty formatted key: ```shell % jwx jwk format --input-format pem ec.jwk { "crv": "P-256", "d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk", "kty": "EC", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI" } ``` ### Usage (Parse PEM) You can parse a ASN.1 DER format key, encoded in PEM. Given a PEM encoded ASN.1 DER format key in a file `ec.pem`: ``` -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMYfnvWtC8Id5bPKae5yXSxQTt +Zpul6AnnZWfI2TtIarvjHBFUtXRo96y7hoL4VWOPKGCsRqMFDkrbeUjRrx8iL91 4/srnyf6sh9c8Zk04xEOpK1ypvBz+Ks4uZObtjnnitf0NBGdjMKxveTq+VE7BWUI yQjtQ8mbDOsiLLvh7wIDAQAB -----END PUBLIC KEY----- ``` You can get the JSON representation by: ```shell % jwx jwk parse --input-format pem ec.pem { "crv": "P-256", "d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk", "kty": "EC", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI" } ``` ## Usage (Format JSON to PEM) Formatting a JWK is equivalent to parsing, if the output format is `json`. However, if you specify the output format as `pem`, you can create PEM encoded ASN.1 DER format keys. Given the following key in file `rsa.jwk` ```json { "e": "AQAB", "kty": "RSA", "n": "zGH571rQvCHeWzymnucl0sUE7fmabpegJ52VnyNk7SGq74xwRVLV0aPesu4aC-FVjjyhgrEajBQ5K23lI0a8fIi_deP7K58n-rIfXPGZNOMRDqStcqbwc_irOLmTm7Y554rX9DQRnYzCsb3k6vlROwVlCMkI7UPJmwzrIiy74e8" } ``` You can produce a PEM encoded key: ```shell % jwx jwk format --format pem rsa.jwk -----BEGIN PUBLIC KEY----- MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDMYfnvWtC8Id5bPKae5yXSxQTt +Zpul6AnnZWfI2TtIarvjHBFUtXRo96y7hoL4VWOPKGCsRqMFDkrbeUjRrx8iL91 4/srnyf6sh9c8Zk04xEOpK1ypvBz+Ks4uZObtjnnitf0NBGdjMKxveTq+VE7BWUI yQjtQ8mbDOsiLLvh7wIDAQAB -----END PUBLIC KEY----- ``` # jwx jws ## jwx jws parse ``` jwx jws parse FILE ``` Parses the given JWS message, and prints out the content in a human-redable format. ### Usage (Parse and inspect a JWS message) Given a JWS message stored in `foo.jws` as follows: ``` eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk ``` You can inspect the contents of the JWS message by issuing the following command ``` % jwx jws parse foo.jws Signature: "dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk" Protected Headers: "eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9" Decoded Protected Headers: { "alg": "HS256", "typ": "JWT" } Payload: {"iss":"joe", "exp":1300819380, "http://example.com/is_root":true} ``` ## jwx jws verify ``` jwx jws verify [options] FILE ``` You may specify "-" as `FILE` to tell the command to read from STDIN. ### Options | Name | Aliases | Description | |:-------------|:---------|:-------------| | --alg | -a | Algorithm to use in single key mode | | --key | -k | File name that contains the key to use. May be a single JWK or JWK set | | --key-format | (none) | Format of the store key (json/pem) | | --match-kid | (none) | If specified, attempts to verify using a key with a matching key ID ("kid") as the JWS | | --output | -o | Write output to file ("-" for STDOUT) | ### Usage (Verify using specific algorithm) ``` jwx jws verify --alg [algorithm] --key [keyfile] FILE ``` Suppose we have `symmetric.jwk` containing the following: ```json { "kty":"oct", "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" } ``` And suppose we would like to verify the contents of the file `signed.jws`, whith this message which has been signed using `HS256`. ``` eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk ``` Then the following command will verify the JWS message and display the decoded payload. ```shell % jwx jws verify --key symmetric.jwk --alg HS256 signed.jws {"iss":"joe", "exp":1300819380, "http://example.com/is_root":true} ``` ### Usage (Verify with matching key IDs) ``` jwx jws verify --key [keyfile] --match-kid FILE ``` Suupose we have `set.jwk` containing the following JWK set: ```json { "keys": [ { "kty": "EC", "kid": "otherkey", "crv": "P-256", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "d": "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk" }, { "kty": "oct", "kid": "mykey", "alg": "HS256", "k": "AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" } ] } ``` Notice that the second key contains *both* "kid" and "alg" fields set to a proper values. Then the following command will verify the JWS message and display the decoded payload. ```shell % jwx jws verify --key set.jwk --match-kid signed.jws ``` ## jwx jws sign Creates a signed JWS message in compact format from a key and payload. ``` jwx jws sign [command options] FILE ``` You may specify "-" as `FILE` to tell the command to read from STDIN. ### Options | Name | Aliases | Description | |:-------------|:---------|:-------------| | --alg | -a | Algorithm to use in single key mode | | --key | -k | File name that contains the key to use. May be a single JWK or JWK set | | --key-format | (none) | Format of the store key (json/pem) | | --header | (none) | A string containing a template for additional header values. This must be a valid JSON object | | --output | -o | Write output to file ("-" for STDOUT) | ### Usage (Signing a payload) Given a file `payload.txt` containing the following payload: ``` Hello, World! ``` And JWK stored in `ec.jwk` as follows: ``` {"kty":"EC","crv":"P-256","x":"SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74","y":"lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI","d":"0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"} ``` You can create a signed JWS in compact format by issuing the following command: ``` % jwx jws sign --key ec.jwk --alg ES256 payload.txt eyJhbGciOiJFUzI1NiJ9.SGVsbG8sIFdvcmxkIQo.SuzTiJ0yJmDkte-SyHQidvhKyHxXdQTM5iCOmURzB0pi4ySM8A303tcAZTa2TLnf9LUZ3yzPpQIyRMF2d8_5Lg ``` # jwx jwe Work with JWE messages. ## jwx jwe encrypt Full form: ``` jwx jwe encrypt [options] FILE ``` Short form: ``` jwx jwe enc [options] FILE ``` ### Options | Name | Aliases | Description | |:---------------------|:---------|:-------------| | --key | -k | JWK to encrypt with | | --key-format | (none) | JWK format: json or pem | | --key-encryption | -K | Key encryption algorithm name | | --content-encryption | -C | Content encryption algorithm name | | --compress | (none) | Enable compression | | --output | -o | Write output to file ("-" for STDOUT) | ### Usage (Encrypt a payload) Given a file `payload.txt` containing the following payload: ``` Hello, World! ``` And JWK stored in `ec.jwk` as follows (Note: a private key may be used as well): ``` {"kty":"EC","crv":"P-256","x":"SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74","y":"lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI"} ``` You can generate an encrypted JWE message with ECDH-ES key encryption and A256CBC-HS512 content encryption by issuing the following command: ``` % jwx jwe encrypt --key ec.jwk --key-encryption ECDH-ES --content-encryption A256CBC-HS512 payload.txt eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTI1NkNCQy1IUzUxMiIsImVwayI6eyJjcnYiOiJQLTI1NiIsImt0eSI6IkVDIiwieCI6IllGeFZmTUZXQl9kcjhvUGgzWTdRMF9pYzllMjR5XzlleklPbG9WcjdHWVkiLCJ5Ijoiei1QZFB2cXdGU3A0ODYzbzRTWmQwSDdiVXhYUUJqckJ4bkxpaHduRVNKYyJ9fQ..MJFgvx7zMBzM47Is-brKXw.9UL2iAFuL4rjegaLhf3wPA.KGWzX-cmmGG1CQMMpQzyEncu64pkb6217HCFZfIynlE ``` ## jwx jwe decrypt Full form: ``` jwx jwe decrypt [options] FILE ``` Short form: ``` jwx jwe dec [options] FILE ``` ### Options | Name | Aliases | Description | |:---------------------|:---------|:-------------| | --key | -k | JWK to encrypt with | | --key-format | (none) | JWK format: json or pem | | --key-encryption | -K | Key encryption algorithm name. If unspecified, we will try the algorithms in the message| | --output | -o | Write output to file ("-" for STDOUT) | ### Usage (Decrypt a JWE message) Given a file `message.jwe` containing the following JWE message: ``` eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTI1NkNCQy1IUzUxMiIsImVwayI6eyJjcnYiOiJQLTI1NiIsImt0eSI6IkVDIiwieCI6IllGeFZmTUZXQl9kcjhvUGgzWTdRMF9pYzllMjR5XzlleklPbG9WcjdHWVkiLCJ5Ijoiei1QZFB2cXdGU3A0ODYzbzRTWmQwSDdiVXhYUUJqckJ4bkxpaHduRVNKYyJ9fQ..MJFgvx7zMBzM47Is-brKXw.9UL2iAFuL4rjegaLhf3wPA.KGWzX-cmmGG1CQMMpQzyEncu64pkb6217HCFZfIynl ``` And a private key in `ec.jwk`: ``` {"kty":"EC","crv":"P-256","x":"SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74","y":"lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI","d":"0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk"} ``` You can get the decrypted contents by issuing the following command: ``` % jwx jwe decrypt -k ec.jwk message.jwk Hello, World! ``` # jwx jwa List supported algorithms. ### Options | Name | Aliases | Description | |:---------------------|:---------|:-------------| | --key-type | -k | JWK key types | | --elliptic-curve | -E | Elliptic curve types | | --key-encryption | -K | Key encryption algorithms | | --content-encryption | -C | Content encryption algorithms | | --signature | -S | Signature algorithms | golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/go.mod000066400000000000000000000013231465311135100220530ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/cmd/jwx go 1.20 require ( github.com/lestrrat-go/jwx v1.2.15 github.com/pkg/errors v0.9.1 github.com/urfave/cli/v2 v2.3.0 golang.org/x/crypto v0.6.0 ) require ( github.com/cpuguy83/go-md2man/v2 v2.0.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 // indirect github.com/goccy/go-json v0.9.1 // indirect github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.0 // indirect github.com/lestrrat-go/httpcc v1.0.0 // indirect github.com/lestrrat-go/iter v1.0.1 // indirect github.com/lestrrat-go/option v1.0.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/stretchr/testify v1.8.2 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/go.sum000066400000000000000000000127401465311135100221050ustar00rootroot00000000000000github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU= github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1 h1:YLtO71vCjJRCBcrPMtQ9nqBsqpA1m5sE92cU+pd5Mcc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1/go.mod h1:hyedUtir6IdtD/7lIxGeCxkaw7y45JueMRL4DIyJDKs= github.com/goccy/go-json v0.9.0/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-json v0.9.1 h1:xurvfvj3gq6SWUkkZ0opoUDTms7jif41uZ9z9s+hVlY= github.com/goccy/go-json v0.9.1/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.0 h1:XzdxDbuQTz0RZZEmdU7cnQxUtFUzgCSPq8RCz4BxIi4= github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= github.com/lestrrat-go/httpcc v1.0.0 h1:FszVC6cKfDvBKcJv646+lkh4GydQg2Z29scgUfkOpYc= github.com/lestrrat-go/httpcc v1.0.0/go.mod h1:tGS/u00Vh5N6FHNkExqGGNId8e0Big+++0Gf8MBnAvE= github.com/lestrrat-go/iter v1.0.1 h1:q8faalr2dY6o8bV45uwrxq12bRa1ezKrB6oM9FUgN4A= github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= github.com/lestrrat-go/jwx v1.2.15 h1:58CEGJpf1TS3NJASMfMkTp6stlvPTsqs1xxAu/Yf/uM= github.com/lestrrat-go/jwx v1.2.15/go.mod h1:DJKaoM8f1OvYVwWoW45gBrUxMlpD4FHjT0UnrW3iX28= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= github.com/urfave/cli/v2 v2.3.0/go.mod h1:LJmUH05zAU44vOAcrfzZQKsZbVcdbOG8rtL3/XcUArI= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20201217014255-9d1352758620/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jwa.go000066400000000000000000000030721465311135100220600ustar00rootroot00000000000000package main import ( "fmt" "os" "github.com/lestrrat-go/jwx/jwa" "github.com/urfave/cli/v2" ) func init() { topLevelCommands = append(topLevelCommands, makeJwaCmd()) } func makeJwaCmd() *cli.Command { var cmd cli.Command cmd.Name = "jwa" cmd.Usage = "List available algorithms and types" cmd.Flags = []cli.Flag{ &cli.BoolFlag{ Name: "key-type", Aliases: []string{"k"}, }, &cli.BoolFlag{ Name: "elliptic-curve", Aliases: []string{"E"}, }, &cli.BoolFlag{ Name: "key-encryption", Aliases: []string{"K"}, }, &cli.BoolFlag{ Name: "content-encryption", Aliases: []string{"C"}, }, &cli.BoolFlag{ Name: "signature", Aliases: []string{"S"}, }, } cmd.Action = func(c *cli.Context) error { output := os.Stdout if c.Bool("key-type") { for _, alg := range jwa.KeyTypes() { fmt.Fprintf(output, "%s\n", alg) } return nil } if c.Bool("elliptic-curve") { for _, alg := range jwa.EllipticCurveAlgorithms() { fmt.Fprintf(output, "%s\n", alg) } return nil } if c.Bool("key-encryption") { for _, alg := range jwa.KeyEncryptionAlgorithms() { fmt.Fprintf(output, "%s\n", alg) } return nil } if c.Bool("content-encryption") { for _, alg := range jwa.ContentEncryptionAlgorithms() { fmt.Fprintf(output, "%s\n", alg) } return nil } if c.Bool("signature") { for _, alg := range jwa.SignatureAlgorithms() { fmt.Fprintf(output, "%s\n", alg) } return nil } cli.ShowCommandHelpAndExit(c, "jwa", 1) return nil // should not reach here } return &cmd } golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jwe.go000066400000000000000000000120041465311135100220570ustar00rootroot00000000000000package main import ( "fmt" "io" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" "github.com/urfave/cli/v2" ) func init() { topLevelCommands = append(topLevelCommands, makeJweCmd()) } func makeJweCmd() *cli.Command { var cmd cli.Command cmd.Name = "jwe" cmd.Usage = "Work with JWE messages" cmd.Subcommands = []*cli.Command{ makeJweEncryptCmd(), makeJweDecryptCmd(), } return &cmd } func keyEncryptionFlag(required bool) cli.Flag { return &cli.StringFlag{ Name: "key-encryption", Aliases: []string{"K"}, Usage: "Key encryption algorithm name `NAME` (e.g. RSA-OAEP, ECDH-ES, A128GCMKW, etc)", Required: required, } } func makeJweEncryptCmd() *cli.Command { var cmd cli.Command cmd.Name = "encrypt" cmd.Usage = "Encrypt payload to generage JWE message" cmd.UsageText = `jwx jwe encrypt [command options] FILE Encrypt contents of FILE and generate a JWE message using the specified algorithms and key. Use "-" as FILE to read from STDIN. ` cmd.Aliases = []string{"enc"} cmd.Flags = []cli.Flag{ keyFlag("encrypt"), keyFormatFlag(), keyEncryptionFlag(true), &cli.StringFlag{ Name: "content-encryption", Aliases: []string{"C"}, Usage: "Content encryption algorithm name `NAME` (e.g. A128CBC-HS256, A192GCM, A256GCM, etc)", Required: true, }, &cli.BoolFlag{ Name: "compress", Aliases: []string{"z"}, Usage: "Enable compression", }, outputFlag(), } cmd.Action = func(c *cli.Context) error { src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) } var keyenc jwa.KeyEncryptionAlgorithm if err := keyenc.Accept(c.String("key-encryption")); err != nil { return errors.Wrap(err, `invalid key encryption algorithm`) } var cntenc jwa.ContentEncryptionAlgorithm if err := cntenc.Accept(c.String("content-encryption")); err != nil { return errors.Wrap(err, `invalid content encryption algorithm`) } compress := jwa.NoCompress if c.Bool("compress") { compress = jwa.Deflate } keyset, err := getKeyFile(c.String("key"), c.String("key-format")) if err != nil { return err } if keyset.Len() != 1 { return errors.New(`jwk file must contain exactly one key`) } key, _ := keyset.Get(0) pubkey, err := jwk.PublicKeyOf(key) if err != nil { return errors.Wrapf(err, `failed to retrieve public key of %T`, key) } encrypted, err := jwe.Encrypt(buf, keyenc, pubkey, cntenc, compress) if err != nil { return errors.Wrap(err, `failed to encrypt message`) } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() fmt.Fprintf(output, "%s", encrypted) return nil } return &cmd } func makeJweDecryptCmd() *cli.Command { var cmd cli.Command cmd.Name = "decrypt" cmd.Aliases = []string{"dec"} cmd.Flags = []cli.Flag{ keyFlag("decrypt"), keyFormatFlag(), keyEncryptionFlag(false), outputFlag(), } cmd.Action = func(c *cli.Context) error { src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) } keyset, err := getKeyFile(c.String("key"), c.String("key-format")) if err != nil { return err } if keyset.Len() != 1 { return errors.New(`jwk file must contain exactly one key`) } key, _ := keyset.Get(0) var decrypted []byte if keyencalg := c.String("key-encryption"); keyencalg != "" { var keyenc jwa.KeyEncryptionAlgorithm if err := keyenc.Accept(c.String("key-encryption")); err != nil { return errors.Wrap(err, `invalid key encryption algorithm`) } // if we have an explicit key encryption algorithm, we don't have to // guess it. v, err := jwe.Decrypt(buf, keyenc, key) if err != nil { return errors.Wrap(err, `failed to decrypt message`) } decrypted = v } else { // This is silly, but we go through each recipient, and try the key // with each algorithm msg, err := jwe.Parse(buf) if err != nil { return errors.Wrap(err, `failed to parse JWE message`) } // if we have no recipients, pretend like we only have one recipients := msg.Recipients() if len(recipients) == 0 { r := jwe.NewRecipient() if err := r.SetHeaders(msg.ProtectedHeaders()); err != nil { return errors.Wrap(err, `failed to set headers to recipient`) } recipients = append(recipients, r) } for _, recipient := range recipients { v, err := msg.Decrypt(recipient.Headers().Algorithm(), key) if err != nil { continue } decrypted = v break } if decrypted == nil { return errors.Errorf(`could not decrypt message`) } } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() fmt.Fprintf(output, "%s", decrypted) return nil } return &cmd } golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jwk.go000066400000000000000000000155341465311135100221000ustar00rootroot00000000000000package main import ( "bytes" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/rsa" "encoding/json" "io" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" "github.com/urfave/cli/v2" "golang.org/x/crypto/ed25519" ) func init() { topLevelCommands = append(topLevelCommands, makeJwkCmd()) } func jwkSetFlag() cli.Flag { return &cli.BoolFlag{ Name: "set", Usage: "generate as a JWK set", } } func jwkOutputFormatFlag() cli.Flag { return &cli.StringFlag{ Name: "output-format", Aliases: []string{"O"}, Value: "json", Usage: "Output format `OUTPUT` (json/pem)", } } func publicKeyFlag() cli.Flag { return &cli.BoolFlag{ Name: "public-key", Aliases: []string{"p"}, Usage: "Display public key version of the key", } } func makeJwkCmd() *cli.Command { var cmd cli.Command cmd.Name = "jwk" cmd.Usage = "Work with JWK and JWK sets" cmd.Subcommands = []*cli.Command{ makeJwkGenerateCmd(), makeJwkFormatCmd(), } return &cmd } func dumpJWKSet(dst io.Writer, keyset jwk.Set, format string, preserve bool) error { if format == "pem" { buf, err := jwk.Pem(keyset) if err != nil { return errors.Wrap(err, `failed to format key in PEM format`) } if _, err := dst.Write(buf); err != nil { return errors.Wrap(err, `failed to write to destination`) } return nil } if format == "json" { if preserve || keyset.Len() != 1 { if err := dumpJSON(dst, keyset); err != nil { return errors.Wrap(err, `failed to marshal keyset into JSON format`) } } else { key, _ := keyset.Get(0) if err := dumpJSON(dst, key); err != nil { return errors.Wrap(err, `failed to marshal key into JSON format`) } } return nil } return errors.Errorf(`invalid JWK format "%s"`, format) } func makeJwkGenerateCmd() *cli.Command { var crvnames bytes.Buffer for i, crv := range ecutil.AvailableCurves() { if i > 0 { crvnames.WriteByte('/') } crvnames.WriteString(crv.Params().Name) } var cmd cli.Command cmd.Name = "generate" cmd.Aliases = []string{"gen"} cmd.Usage = "Generate a new JWK private key" cmd.Flags = []cli.Flag{ &cli.StringFlag{ Name: "type", Aliases: []string{"t"}, Usage: "JWK type `TYPE` (RSA/EC/OKP/oct)", Required: true, }, &cli.StringFlag{ Name: "curve", Aliases: []string{"c"}, Usage: "Elliptic curve name `CURVE` (" + crvnames.String() + ") for ECDSA and OKP keys", }, &cli.StringFlag{ Name: "template", Usage: `Extra values in the JWK as JSON object`, }, &cli.IntFlag{ Name: "keysize", Aliases: []string{"s"}, Usage: "Integer `SIZE` for RSA and oct key sizes", Value: 2048, }, publicKeyFlag(), outputFlag(), jwkOutputFormatFlag(), jwkSetFlag(), } cmd.Action = func(c *cli.Context) error { var rawkey interface{} switch typ := jwa.KeyType(c.String("type")); typ { case jwa.RSA: v, err := rsa.GenerateKey(rand.Reader, c.Int("keysize")) if err != nil { return errors.Wrap(err, `failed to generate rsa private key`) } rawkey = v case jwa.EC: var crv elliptic.Curve var crvalg jwa.EllipticCurveAlgorithm if err := crvalg.Accept(c.String("curve")); err != nil { return errors.Wrapf(err, `invalid elliptic curve name %s`, c.String("curve")) } crv, ok := ecutil.CurveForAlgorithm(crvalg) if !ok { return errors.Errorf(`invalid elliptic curve for ECDSA: %s (expected %s)`, crvalg, crvnames.String()) } v, err := ecdsa.GenerateKey(crv, rand.Reader) if err != nil { return errors.Wrap(err, `failed to generate ECDSA private key`) } rawkey = v case jwa.OctetSeq: octets := make([]byte, c.Int("keysize")) rand.Reader.Read(octets) rawkey = octets case jwa.OKP: var crvalg jwa.EllipticCurveAlgorithm if err := crvalg.Accept(c.String("curve")); err != nil { return errors.Wrap(err, `invalid elliptic curve name`) } switch crvalg { case jwa.Ed25519: _, priv, err := ed25519.GenerateKey(rand.Reader) if err != nil { return errors.Wrap(err, `failed to generate ed25519 private key`) } rawkey = priv case jwa.X25519: _, priv, err := x25519.GenerateKey(rand.Reader) if err != nil { return errors.Wrap(err, `failed to generate x25519 private key`) } rawkey = priv default: return errors.Errorf(`invalid elliptic curve for OKP: %s (expected %s/%s)`, crvalg, jwa.Ed25519, jwa.X25519) } default: return errors.Errorf(`invalid key type %s`, typ) } var attrs map[string]interface{} if tmpl := c.String("template"); tmpl != "" { if err := json.Unmarshal([]byte(tmpl), &attrs); err != nil { return errors.Wrap(err, `failed to unmarshal template`) } } key, err := jwk.New(rawkey) if err != nil { return errors.Wrap(err, `failed to create new JWK from raw key`) } for k, v := range attrs { if err := key.Set(k, v); err != nil { return errors.Wrapf(err, `failed to set field %s`, k) } } keyset := jwk.NewSet() keyset.Add(key) if c.Bool("public-key") { pubks, err := jwk.PublicSetOf(keyset) if err != nil { return errors.Wrap(err, `failed to generate public keys`) } keyset = pubks } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() return dumpJWKSet(output, keyset, c.String("output-format"), c.Bool("set")) } return &cmd } func makeJwkFormatCmd() *cli.Command { var cmd cli.Command cmd.Name = "format" cmd.Aliases = []string{"fmt"} cmd.Usage = "Format JWK" cmd.Flags = []cli.Flag{ publicKeyFlag(), &cli.StringFlag{ Name: "input-format", Aliases: []string{"I"}, Value: "json", Usage: "Input format `INPUT` (json/pem)", }, jwkOutputFormatFlag(), jwkSetFlag(), outputFlag(), } // jwx jwk format cmd.Action = func(c *cli.Context) error { if c.Args().Get(0) == "" { cli.ShowCommandHelpAndExit(c, "format", 1) } src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) } var options []jwk.ParseOption switch format := c.String("input-format"); format { case "json": case "pem": options = append(options, jwk.WithPEM(true)) default: return errors.Errorf(`invalid input format %s`, format) } keyset, err := jwk.Parse(buf, options...) if err != nil { return errors.Wrap(err, `failed to parse keyset`) } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() if c.Bool("public-key") { pubks, err := jwk.PublicSetOf(keyset) if err != nil { return errors.Wrap(err, `failed to generate public keys`) } keyset = pubks } return dumpJWKSet(output, keyset, c.String("output-format"), c.Bool("set")) } return &cmd } golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jws.go000066400000000000000000000203561465311135100221060ustar00rootroot00000000000000package main import ( "bufio" "bytes" "context" "encoding/json" "fmt" "io" "os" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/pkg/errors" "github.com/urfave/cli/v2" ) func init() { topLevelCommands = append(topLevelCommands, makeJwsCmd()) } func jwsAlgorithmFlag(use string) cli.Flag { return &cli.StringFlag{ Name: "alg", Aliases: []string{"a"}, Usage: "algorithm `ALG` to use to " + use + " the message with", } } func makeJwsCmd() *cli.Command { var cmd cli.Command cmd.Name = "jws" cmd.Usage = "Work with JWS messages" cmd.Subcommands = []*cli.Command{ makeJwsParseCmd(), makeJwsSignCmd(), makeJwsVerifyCmd(), } return &cmd } func makeJwsParseCmd() *cli.Command { var cmd cli.Command cmd.Name = "parse" cmd.Usage = "Parse JWS mesage" cmd.UsageText = `jwx jws parse [command options] FILE Parse FILE and display information about a JWS message. Use "-" as FILE to read from STDIN. ` // jwx jws parse cmd.Action = func(c *cli.Context) error { src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) if err != nil { return errors.Wrap(err, `failed to read message`) } } buf = bytes.TrimSpace(buf) if len(buf) == 0 { return errors.New(`empty buffer`) } if buf[0] == '{' { var m map[string]json.RawMessage if err := json.Unmarshal(buf, &m); err != nil { return errors.Wrap(err, `failed to unmarshal message`) } } else { protected, payload, signature, err := jws.SplitCompact(buf) if err != nil { return errors.Wrap(err, `failed to split compact JWS message`) } decodedProtected, err := base64.Decode(protected) if err != nil { return errors.Wrap(err, `failed to base64 decode protected headers`) } var protectedMap map[string]interface{} if err := json.Unmarshal(decodedProtected, &protectedMap); err != nil { return errors.Wrap(err, `failed to decode protected headers`) } serializedProtected, err := json.MarshalIndent(protectedMap, "", " ") if err != nil { return errors.Wrap(err, `failed to encode protected headers`) } decodedPayload, err := base64.Decode(payload) if err != nil { return errors.Wrap(err, `failed to base64 decode payload`) } fmt.Fprintf(os.Stdout, "Signature: %#v", string(signature)) fmt.Fprintf(os.Stdout, "\nProtected Headers: %#v", string(protected)) fmt.Fprintf(os.Stdout, "\nDecoded Protected Headers:") prefix := " " scanner := bufio.NewScanner(bytes.NewReader(serializedProtected)) if scanner.Scan() { txt := scanner.Text() fmt.Fprintf(os.Stdout, " %s", txt) } for scanner.Scan() { txt := scanner.Text() fmt.Fprintf(os.Stdout, "\n%s%s", prefix, txt) } fmt.Fprintf(os.Stdout, "\nPayload: ") scanner = bufio.NewScanner(bytes.NewReader(decodedPayload)) if scanner.Scan() { txt := scanner.Text() fmt.Fprintf(os.Stdout, " %s", txt) } for scanner.Scan() { txt := scanner.Text() fmt.Fprintf(os.Stdout, "\n%s%s", prefix, txt) } } return nil } return &cmd } func makeJwsVerifyCmd() *cli.Command { var cmd cli.Command cmd.Name = "verify" cmd.Aliases = []string{"ver"} cmd.Usage = "Verify JWS messages." cmd.UsageText = `jwx jws verify [command options] FILE Parses a JWS message in FILE, and verifies using the specified method. Use "-" as FILE to read from STDIN. By default the user is responsible for providing the algorithm to use to verify the signature. This is because we can not safely rely on the "alg" field of the JWS message to deduce which key to use. See https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/ The alternative is to match a key based on explicitly specified key ID ("kid"). In this case the following conditions must be met for a successful verification: (1) JWS message must list the key ID that it expects (2) At least one of the provided JWK must contain the same key ID (3) The same key must also contain the "alg" field Therefore, the following key may be able to successfully verify a JWS message using "--match-kid": { "typ": "oct", "alg": "H256", "kid": "mykey", .... } But the following two will never succeed because they lack either "alg" or "kid" { "typ": "oct", "kid": "mykey", .... } { "typ": "oct", "alg": "H256", .... } ` cmd.Flags = []cli.Flag{ jwsAlgorithmFlag("verify"), keyFlag("verify"), keyFormatFlag(), &cli.BoolFlag{ Name: "match-kid", Value: false, Usage: "instead of using alg, attempt to verify only if the key ID (kid) matches", }, outputFlag(), } // jwx jws verify cmd.Action = func(c *cli.Context) error { keyset, err := getKeyFile(c.String("key"), c.String("key-format")) if err != nil { return err } keyset, err = jwk.PublicSetOf(keyset) if err != nil { return errors.Wrap(err, `failed to retrieve public key`) } src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) if err != nil { return errors.Wrap(err, `failed to verify message`) } } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() if c.Bool("match-kid") { payload, err := jws.VerifySet(buf, keyset) if err == nil { fmt.Fprintf(output, "%s", payload) return nil } } else { var alg jwa.SignatureAlgorithm givenalg := c.String("alg") if givenalg == "" { return errors.New(`option --alg must be given`) } if err := alg.Accept(givenalg); err != nil { return errors.Errorf(`invalid alg %s`, givenalg) } ctx := context.Background() for iter := keyset.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() key := pair.Value.(jwk.Key) payload, err := jws.Verify(buf, alg, key) if err == nil { fmt.Fprintf(output, "%s", payload) return nil } } } return errors.New(`could not verify with any of the keys`) } return &cmd } func makeJwsSignCmd() *cli.Command { var cmd cli.Command cmd.Name = "sign" cmd.Aliases = []string{"sig"} cmd.Usage = "Verify JWS mesage" cmd.UsageText = `jwx jws sign [command options] FILE Signs the payload in FILE and generates a JWS message in compact format. Use "-" as FILE to read from STDIN. Currently only single key signature mode is supported. ` cmd.Flags = []cli.Flag{ jwsAlgorithmFlag("sign"), keyFlag("sign"), keyFormatFlag(), &cli.StringFlag{ Name: "header", Usage: "header object to inject into JWS message protected header", }, outputFlag(), } // jwx jws verify cmd.Action = func(c *cli.Context) error { keyset, err := getKeyFile(c.String("key"), c.String("key-format")) if err != nil { return err } if keyset.Len() != 1 { return errors.New(`jwk file must contain exactly one key`) } key, _ := keyset.Get(0) src, err := getSource(c.Args().Get(0)) if err != nil { return err } defer src.Close() buf, err := io.ReadAll(src) if err != nil { return errors.Wrap(err, `failed to read data from source`) if err != nil { return errors.Wrap(err, `failed to sign message`) } } var alg jwa.SignatureAlgorithm givenalg := c.String("alg") if givenalg == "" { return errors.New(`option --alg must be given`) } if err := alg.Accept(givenalg); err != nil { return errors.Errorf(`invalid alg %s`, givenalg) } var options []jws.SignOption if hdrbuf := c.String("header"); hdrbuf != "" { h := jws.NewHeaders() if err := json.Unmarshal([]byte(hdrbuf), h); err != nil { return errors.Wrap(err, `failed to parse header`) } options = append(options, jws.WithHeaders(h)) } signed, err := jws.Sign(buf, alg, key, options...) if err != nil { return errors.Wrap(err, `failed to sign payload`) } output, err := getOutput(c.String("output")) if err != nil { return err } defer output.Close() fmt.Fprintf(output, "%s", signed) return nil } return &cmd } golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jwx000077500000000000000000477106621465311135100215330ustar00rootroot00000000000000 8  H__PAGEZERO8__TEXT==__text__TEXTp4__symbol_stub1__TEXT4d4__rodata__TEXT4z4__DATA_CONST=s+=s+__rodata__DATA_CONST=U =__typelink__DATA_CONSTJ#J__itablink__DATA_CONST`9J `9J__gosymtab__DATA_CONSTGJGJ__gopclntab__DATA_CONST GJp GJ(__DATA@ip @i`s__go_buildinfo__DATA@i @i__nl_symbol_ptr__DATA @i @is__noptrdata__DATACi Ci__data__DATAm`m__bss__DATA`nh__noptrbss__DATAqx__DWARFsn:I!__zdebug_abbrev__DWARFsn__zdebug_line__DWARFsOn__zdebug_frame__DWARFPzv__debug_gdb_scri__DWARF$|*w__zdebug_info__DWARF$| V w__zdebug_loc__DWARFzo:__zdebug_ranges__DWARF^H__LINKEDITsQ@Q2  ("0@h9hy(J'hZ P&&&u /usr/lib/dyld 8/usr/lib/libSystem.B.dylib h/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation `/System/Library/Frameworks/Security.framework/Versions/A/SecurityT2= Go build ID: "0QWrGR7zRHSPCMHlvOpL/UiTRQIVXEWXz0wQwZKef/vRw42ynlyNE826Gab_ii/qFbMOGdy6sQEfz7nKHOQ" WO{=+ `@bA<+ 7+ @h!{BOAWè_@1+ WO{`@++ h{BOAWè_WO{`@bA+ yh!{BOAWè_O{4!@@SC`R+ c+ c+ @i@(B#c{C`R* s5^4)!@)@?T{GOF_3* O{C@@* 8IB{AO¨_O{4!@@8I##* #* @@h#* ^4)!@)@?T{FOE_ָ* O{4=@@* !&* * _WO{CHRrRHRr#* q!TcCҦ* AT 55@* {EODWC_B_g_WO{CHRrRHRr* q!Tk{* Z9ATw5`@w* {EODWC_BgA_WO{4j* 8B[9h74s4c* B[9qaT8mC4^* #`?@{COBWA_O{C4sE* (R8(A94H* {AO¨A* O{C43* 8m{AO¨3* O{C4s&* 8mC(* {AO¨_O{4=@@* !"* * @"R* @* O{CR* `=h @={AO¨{4=@@'aR"R* ) {S[cks?`?sAkBcC[DSE{ƨ_ @_T#ѕ@@ _B_S @_/T#c@_@c -TC,Tf˥KT@{ RΥrkT?/ ?)T?)T#~) 'T7 K ) 3_ Thix͍R?k`T_Thix͌R?k!T @9?qT?Thgx;Rk!T @9qTC7c$d@+B7B$D@'Ҧ| L3@@ G1{ A7@@ <@ 6 ?@/@#;! );@#@ $@ ?@/@l@7$@@?T/_K_`#@;TB9+CB9#O@@9dG@?K@'0! ?@'@ L3 C@/@+@ B9O@9G@?K@'A ?@'@ } C@/@+@B?,T*Th`8qaT!?jTha8qaT JTG@A@T {hk)@?T @9`@B7B$@'@?@/@7@+@C7c$a@d@@T@`9a@d@T+@ d9?@/@*& t7@@ o@ i<?@/@)'e9Ta@g@T@`9_ aT@a@g@Th@9a@i@T ~ ͎| @_ T#@ / @p$+`$`/@;T8@58!0@a8!0a8!0a(8!0a88!0aH8!0aX8!0ah8!0ax8!0a'@"@8c0b"8c0^"@8c0Z"8c0V"@8c0R"8c0N"@8c0J"8c0F"@8c0B!D7$D7$@5@7$B7B$1_C_W @_ T#x(@@@C(@g3 ~ 8'#a6kן8!0 9P#@@@CC}  '#a6kן8!0 9@8!0 98!0 98!0 98!0 9_G_ @_IT##@@@C@@E@T @9` @@#@@ `@9#9_C_ލ @_T#@ $T@"#@C c@9`#9_C_@#9_C_ @_@ @_@ @8{0d@9___@ @@8{0d@99__aTȃ9_@8{0d@9B__" _ @_T#?@;@%ha8g2 ,Tb2 @f@|cAB|,T/@3@Hihb8j2 G%?TTe+/kAT7@? T3 @9`/@?@/@;@+@3@3@7@G_E_  Tiha8j2 G%) iTkhi8g+kAT_ CT)? T,M˭ -m  `T7# @97@/@;@+@3@7@?@#@j2 @/@aG_E_G_E_     Ҍe @_T#7@;@%fha8g2 ,Tb2 @@|AB|,T/@3@hf8j2 G%?T_T[+/k!T? T3 I@9@/@;@3@7@/@+@3@?_E_ _MTha8i2 '!(_iThh8G*kAT T+k `T7# @93@7@/@+@;@7@#@i2 @/@!?_E_?_E_ z_f[ @o{8! _`T?&|JD e$AT?T_ !T @f TD@e@T DhfehfT ڥ ڿ@_f6D@e@T @TB c &6D@e@kATTBc6D@ye@yk!TBc6D@9e@9kT$_ % ڿ@ @@@@ @@@ _#T @ T{c@8?kBaTI{#@ NB N'.(.L# nD nc%N%Nf$N80n^T=Nk@8B?k _@ @@9@ @c@9?T?@CT#zc,LD,Lnnʌnn((NH(Nh(N=N=NAT!@#|G$G) !T! @!a6@E@& hfEhfEa6@E@ʅ&hfEhf 6$@xE$@x!T6@9E@9T@9_9_@@ @@9_#'@+@TE@E @9c9_D_@c9_D_$˄ T6E@T@T?666E@F0@hT@T @!T1E@F@yT@T0@x!T&6E@G@9T@T @9!TE@HT@T6F@yG@9(T@xT@9!TE@yT@xT _ _k$@TE@g@FhgT@Thk!T`TEj`GhjT @_T p@_!T hk_TEG@lJhlT @T p@!T @T hk aT@ @@@w@ @@@o% N{ N @J@TaL$B# nD nc%N%Nf$NƼ&N<N$$Ě Ě)TaLB# nD nTfNƼN<Nc%N%Nf$NƼ&N<NTD @ Ě$Ěc`F __@ @@9@ @c@9 @_IT#Y@T v@9OqL`\ @ iDfA@ ^9[_B_ @_IT#@[9%  #@[9  @_ T#@#@ @@'_C_ @_ T#@#@ ב@'_C_Љ @_ T#@#@ |@'_C_#@#@@#@ @'_C_ց @_)T#@@@#@ .@'_C_ @_)T#@@ `T T@ A$A !D#!|G!C|Pa$@*#@;ĔJ;wqaA |'_C_#@ ~]@'_C_#@;ĔJ;wqaA |'_C_G @_)T#@@ ``T `T@ A$A !D#!|G!C|Pa$@*#@;ĔJ;wqaA |'_C_#@ }@'_C_#@;ĔJ;wqaA |'_C_ @_T#@9#@ d@@ ^@'_C_ @_T#@9#@ @ @ @'_C_Lj @_ T#/@@!@" @B"\@9(6 3@;ĔJ;@wqaA |7_E_@ 3@;ĔJ;@wqaA |7_E_3@7_E_=l @@B0" };@@ }@ !. K l @_i T#/@@" @B"\@9(6 3@;ĔJ;D@wqaA |7_E_@ 3@;ĔJ;/@wqaA |7_E_3@7_E_k @@B0" };;@@ "@ !.   @C_IT#O@P@9 7\@9!@?@q T?PqT?DqTW@?PqaT @`S@W@ @[_I_S@W@ !@[_I_?`qT?dq! T @@?T3W@W@wS@W@ ُ@[_I_?8q(T?4qT?8q TS@W@ y@[_I_S@W@ '@[_I_?<qaTS@W@ @[_I_S@W@ @[_I_@T aTS@W@ v@[_I_S@W@ @[_I_S@W@ I@[_I_*k @@B0" }:@@ j@ !. 8[_I_7@`/7+@@@;?CnC@9`+@ ?@C@S@A +@0@/@3@?T'@d@S@  '@@O@ @?#T[_I_@c9_@9 @!9!@@kc9_@y @!y!<@<@kc9_@ @!?kc9_@@ @!@?c9_@@ @C@T@A@?c9_@@ @@ !c9_@@ @@ ac9_@@@ @@@ " #c9_@@@ @@@ b cc9_ @_T#@@@#@C@B@?`T P@9#9_C_ @_T#@@@#@C@B@`T p@9#9_C_u @_T#@@@#@C@B@`T  @9#9_C_U @_iT#/@ @z\@9 (67@3@9_E_@@3@7@ ?c@99_E_@9_E_i @@B( ~;9@@ "@ !.   @_T#/@ @ @z\@9 (67@3@9_E_@@3@7@ ?c@99_E_@9_E_i @@B( ~8@@ @ !.  ̅ @_T#80@9 @8! 98&y *_C_8{  8@!@8 @!@8@@!@8`@!@_C_#р@h@9`K@C@@#$`K!@` dKT ױ_B_#8@9@@ @@ _B_ @_iT#:` ( M#р4@9 '@ @@!8!8@?]|@@ `9'@+@ e/@?`9"8B"8Y|/[_D_ր0` h(`  #7@`@T ? j= @ tB!t@ @w7@@;;9" 0@ @;T8@3<@|7@@?`9G@K@ O@%7@@@"`9@;@?aT3@@ 7@@9@ c@;T_H_<3   @C_iT#?T9G#B=c@9@BD98BB߈4G@@?9#!9Ew@G@C@dE@F@"T? 6 )@@#@w@G@?@x# T@@8!!@9C37O O@G@3@7@C@ED#3_[@9G@@A@!8!5{9 7@ {A9@w9#!=WwS~{99K;o@;KK@A@s@ ?w9{A96}{99S@{A96~{99[@Kq{A969_M_4 ~_M_`@@9@ !@@"@B@9B@"8?kT`98!8 "?qTB9` _ @_i T#8%@ 4/@7@a\@9"@_Xq`T_hqT3@A(7B@#C@97@\@9!@?q!T@\@9!@?hqT@c @#@ @c9g9H 5_E_?DqT ?\qT@_E_@cB@\@9 `{kc9g9H _E__E_ր~ `  @_/T#G@@K@\@9B@_Tq T_\qIT_`qT_dqTcB9 @@_mT'G@ @'T@@\@9 @{kc9gB9g9S@W@_H__hqT @C@9gB9_H__XqT"@B;C@9gB9`G@@!@;@_H__H_cB9 @_H_;C@9`gB9;@S@ W@e_H__HqT_Dq!TcB9bҙ @_aT@\@9 @{kc9gB9g9S@W@r_H__Lq T_PqA T @_H_3 @K@@;C@9`gB9 3@\@9;@ {kc9g9S@W@I_H_cB9` @nC@9_H__H_S@W@ @ !. _H_S@W@ @ !. yS@W@ @ !. nS@W@ @ !. c~ Y/@ @c9gB9g9S@W@G@@@B!@/@a @_#T_HqT~ 8S@W@ c@ !. 1+@ @c9g9S@W@G@@@B!@+@aK@d@?TS@W@ <@ !. S@W@ 1@ !. ~ `@@@f#7 E @c9gB9g9S@W@7@K@'@#@c_TX @_iT#?@ @ 7Ȁ@@?@m?@>@@A8B`%B@[9 #ZP" TBxc$dED%CS@B'4@#KO_G_ T Շ@9*@$ȚG 6+G6/?;3@]C@9`#@'@/@?@3@;@+@ qbTT>@+@/@@#@'@+@KO_G_C@G@ @ !. Zjc T$xch@l@_cT_Tp@t@_#T_TKO_G_C@G@ f@ !. 4 UX#@:C@9 7Ȁ@@@ @9_B_9_B_cT$xch@l@_cT_Tp@t@_#T_T@9_B_9_B_ @_T#'@7 @'@@ @ !*  #+@C@9'@C@9@@T(@T5'@8B@B_D__D__D__D_B@"TCABT_D_+@l_D_ց @_T#@ @A@" @(@ @J g l#@@'@0C@9#@+C@9_C_@'@ +@/@A_C__C__C_#'@@/@C@9+@C@9/@_D__D__D_'@@ @'@"@@b3@_T_D_#O@C@W@Tc[@cE\@906%7Хȅ@@S@@@S@ _I__I_ MTx` i@ m@ cT T q@ u@ #T T @  _I_ @  _I_օ8`%@9 ZPBTx`HM0}'ig99@qT@[9 ZP TAx`eE"CS@!'C,37;?CU_I_ h"T#H@9*@%ɚhTH6/+?;hg;C@9`?@+@/@'@W@S@;@#@ qbT?TB;@+@/@@'@W@S@#@_I_ 9j{jy  @_ T#@ @A@B@C@ E_C_$#7@F  ;@C3@@/@ bT@T@9|AbB 6# hdC@9`#@@@@@@_E_  @_T#G@@O@_"T!S@!\@9#06c@DqTK@PdqT @@T+K@@K@ _H__H__H__H_`@@_bT';#37 ;@#@@+@3@'@7@@_ǀ B˄?T!T_H_ր~ x @"T@@_T#/ G@#@@/@@@@_릀Bc?T_H_{u @_T#/@@@?@@TT@9_ q T3@#;CT!|c_㗟!|# ? T A@c  @c9@98!"@b52@/"g @#@@ @c9@8@5#@##@"@8!#@{ @c9@9@8!"@b5@d@0y!@a5݆3@7_E_ 2# ؽ ο3 ȿ }t#'@+@ @c9@_D_ @C_I6T#O@@B9A@5@@_B@@9_I_֢8B B@b  Ր?@O@#`+ O@@/5B99_I_~c9|g9]`:` k@$@8@5?@UR" O 8@e5FD8$@9D$@98@9@|@k @_kaT $@8@d8@@_TB9A  +@-9_I_/s@#@`a8!$@5S@d  /@eb`S@/@/@9b@&@5O@f(O@O@9  )@5D օ҅   )@i5 i  Ņ  ';73@(@+@5jC( k@  b    *@5$( j@ ҝ    @#@3+@ @c9g9x/@@'@?!T8!$@d57@y9D@9%@e5D3@n9@@mT#@ 8!'@@9 @`5_(;@W@9@9_I_@@@0@y  S@6O@@!@_AT@!  +@O@9_I_B ?C S@@@@9_I_O@@585   2# 5`   +@ 2#  "|I @_T#@@9` _B_{ @_T##@ @@!@ '@48@5#@? #@"`ń@+@B@@?@98!!@5#@D #@@"9"@ մ=@#@ @/@ _C_{ @_IT#+@ @/@'@@ :'@@@/@ k_D_{ @_IT#+@ @/@'@@ :'@@/@@ K_D_{ @_i$T#'@"` '@@A 5@9 @P <88 @%@ w68@5@ @"`('@@88҅@ #=@@`'@@88҅@9@i5D @@8@5@  8@f58@9@98@9}@k һ_kaT %@89 @P $$ @e5 `Ҳ@ յ<@@`'@@88҅@9@i5D $@ @e@5$@   ҂ @e5{@y@9@9@9}@k_kaT %@e  @xP@ @  P@_D_  @b 2#` G 2# @ az#@#@ @c9_C_#@#@ @c9@9#9_C_ @C_i9T#O@` B9a @ B_B@"pB߈"4@ B_B@BS@@ '5@99_I_99_I_֢8B B@b  ;@O@`+ >O@@4@a  +@S@O@!@ 4@99_I_B999_I_@c9|g9`:` $@ $@8Х@5$?@" ҁ 8Є@e5x@v8Х$@9D$@98@9@|@k @_kaT $@8@d8Х!@!@@0@yaS@"#@ 3O@#@@ ~4O@@!@_AT@!  +@F@99_I_B9a  +@999_I_/~@@`a8!$@5S@d  b`S@/@9 %@5d9e@ '@5O@g(D O@߁  (@h5 h с  ';73 @*@5i# g@ b   )@5 i@ ҩ  @#@3+@ c9g9/@@'@?T8!$@d5;@9D@mT@ /@8!'@D@99!@5D_( 3@k7@h@9@99_I_B?C S@@(@99_I_֠5` H mx0 @_T#@@9` L_B_7x @_ T#'@@A/@@+@  @@0@ya/@"@ 2'@@@+@d @ 2'@@!@_AT@+@98!$@d5 `@3@B@@?@98!!@5+@D +@ۀ@"9"@ 9@+@ @7@ _D_w @_T#@@ 9!"  @@9_B_w @_)T#'@+@ c9@@9c9_D_w @_)T##@@ c9t@9@9#9'9_C_w80@980@9@8! 9_ @_I T#  *98@9A@8c;|@bk @8c{_kaTb847@9O_TObOb~+@+:9@7"@@;@@ C@?@C@#G@'Oҡ8! _F_>w#  88BC@9C@8Х{|@k @8Х_kaTB7B@@'@ߠjTBTF7"x |!˟뇰}#@?T }B7B'@8Х@@@@7 @!_C_}  @_ T#/@/w@+Ka@c@|B}B#'+@K@!x` w@{9dOTb Td`x`? T_ TV`O3`O3g#!`1kk@!@O#B 1SS@B@!CAGa@@#'w@`O7`O7W#!1[[@!@_#1cc@@!;?`@@#'fw@_N_}u}k Pvk @_T# @78   A7!'@?mT?T#_C_`X?@ V@8!` i@#_C_v @_i T#"7B0C@B@T;@_F_B@A@E@ Thd8q`T#+'7@ @9@+@@;@'@#@ҦT?cT!!?C_F_  u_ @_T~#@@!BB8gY @@@;O@^Y @@@C@WCUY @@@C@#S?#~TB_cO@g;@k"BTo~sw{"B $W@C@ '@@C@?@_TK7S@W@ @97@K@2@@sY@G @[@B@kY@G@T[@@9K@ 7@,{Z(@@K@ 7@$L(@@_@_#~Tc_cgk@o}sW@wC@{< @@A @ s'@@_@_B O@;@bBP$#'Q(+@/@_@_t_ @_T#`P @/@3@'@@7;_E_t_ @_T#`P @/@3@'@@;?_E_t@__@ @__ @C_*TC~#E9$B)TB|6cdhbCc@E9a@E 'T6hb@@@;S~TSa!P @~@@E9@;@@ S mTi"T?)he8 _qT T7_95 @@#@ @@E9@;@7@?@_A9 i&8TS)he8?qT` T5 @@#@ @@E9@;@S@?@ i&8_kҁ?qaTc T5 @@#@ @@E9@;@S@?@ i&8 k '@@_@C_i+8k (TҌ|̛CӮ QT5QTi+8& P?Ү kBTG3O5 B@#@G@O@3@K  P}@@E9@;@S@K@?@@ ҟ| Ҝ|i+8k (TҌ}ƛCӮ QT5QTi+8& P?Ү kBT/OC5 @#@C@O@/@K  }@@E9@;@S@K@?@@g V| S|P|M|}K|!I| .s @C_.T#O@,@{rRr+TQR$rkh T{R[ԥrkT؀RrkTO@!:!)TS@@9w9"w@9#9ϻBN{R[ԥrk'TO@!'&TS@@;;@ٻ0<KRǬrkTO@!5$TS@@99@9*QR$rk#TO@!a"TS@@+@''@"+@" S;R8r+T[ZR9r+TO@!4TS@@?к?@a;R8r+ATO@!TS@@//@޺%Rr+TO@!&aTS@@//@"t˺{rRr+TO@!TS@@'@@'@ {Rr+ T RVr+TߗR[r+TO@!ATS@7{7D RVr+TO@!6TS@@+i+@;R;r+TO@!TS@9{9W{9 w{Rr+!TO@!3 TS@@3E3@ֻeqiRr+(TRHr+TO@!1 TS@@3/3@O[iRr+! TO@!*TS@@#@CC@#@ f9E[R[er+TO@!TS@yCyCyл'3,Rr+TO@!2TS@@yGyG@y!Rr+TO@!ATS@@77@O@S@  ׹@ !_I_q @_?T#W@_UW@\@9 @C@# q(Tq(Tq(TqTq1T[@@?C@#@  @ ?@i @ [@@99C@#@ ܻ @ ֻ@9#93 @ ͻ qaT[@99uC@#@  @ ી93 @ [@y_y[C@#@  @ _y @ jzqTqaT[@?=C@#@  @ ? @ yL\[@@;#C@#@ n @ h;@ @ _2BqaT[@@7C@#@ R @ L7@ @ C&[@@99C@#@ 8 @ 2@9s @ ) 0q T(qT$qaT[@@y[y͸C@#@  @ [@yS @ ܸ[@@;C@#@  @ ;@9 @ ¸,qaT[@@3C@#@  @ ܺ3@ @ Ӻ[@@/}C@#@ Ⱥ @ º/@ @ 8qT4qT[@@7_C@#@  @ 7@" @ m}[@@+DC@#@  @ +@ @ Sc<q T@q@T`q@T[@K% @ oC@#@ j`  dK@A4D[@@G@? C@#@ TX  NG@?@ I C&[@@+@'C@#@ 6+@'@ Q[@@7@3ٷC@#@ $7@"3@" =_J_o @C_ TC~#@+ @@ L-@W@+ c9C@+@_#T_ T8 W@"@@ STTW@haxRk!T@9qT/'A!3c[ %c9@ 3@? T& [@m"@@ $ TT[@dh`x;ŅRkAT~TbB_cW@g'@kB o@sw{/@B+@B!a!a@} !@@ @ !2 4x#x3 `[@3@"@@ ʰx x x#d3 `W@+@!@@  n+ @_ T~#6@ @;@! @?N@kT! @@@@8@5;@A;@{w_AC@`5C @`ow##~Tc%#Cc@;T#C@;T?@O@S@W@C9_@_C9_@_ln8@ @һ@A?TT? TT?@iT?T@@U@"B   c@ B@(  @@"@#c Ղ@ c@  @@ @"Bх@9&Aӄhf8 B@9@_{қ;{c@|Û|Iһ۱ ʁ"|#|`_d@{қ;{e@ʦ|ě|!@   c@?@T$@ф  գ@ Մ@F@{қ;{G@|Ǜ|F@{ܘ^G @|Ǜ|F@{;G@|Ǜ|!      d   ե B?Tʀ@@{қ;{ @ʂ8BB@@һ"|#|@aIҡ"|#|  @_@@{қ;{ @ʂ8BB@@һ"|#|@Hҡ"|#|  @_ց @_IT#/@@ @3@CP@97A9#;_E_ց6!># @  Հ86>@/@ 3@@@  Հ84@-/@ @!!}! 8! ?@[98@5/@A3@C /@uA 3@u#_#@  Հ8#@ @A9!;_E_;_E_ @@""B', @8!"@53@/@@!@5@ ! Ȭ`@u 3@u@/@u!5Q@S @@""B' @8!"@53@/@@!@5@ ! `@u 3@u@/@u@  l1@@! @C@@@c*c@g@ &@_T@aT__ @_ T#р@`56>@"@#@dBӄ_T`} @c9 @@"@BB#@@@B@_T Ձ8!!@96!> @6B>@A@/@ _E_\ `@  4l @@@@d@!@B@!*!@E&e@xa T`@`__ @_)T#g@@G@;O @G@" @@y@@@hT_@@T7/g@`[ G@@#@7@/@g@[@@j T*@+ @ "TW#O@ P@}W@Ah@3G@#P@SoR @K@+S@R @@G@@aR @@C';@/@@#@%?@;@zQ@@[@8[@ 8@f5x ntO@  _L_#@;@/@@C@'@* T" T#|`hO/@#@?C@S;@P@3@`TS@R @@+@_`TK@ @9+@3@S@}R @@7@;@O@Q @@S@B@96'@@ '@_`TC@ @9'@3@g@ K@k+@o_L_Ft Ctpatp^t #k @_ T# Հ8a7Ȁ@@B-T#xbd@#c@  Հ8_E_xeh@@@@@#@Tj @_T# "' @8@5'@@@@#@@_  '@s@ @s"@#@sj @_iT#@@!"!' @8@5'@@@@#@@_  q'@gs@ @bs"@#@_sj @_IT#'@@ @c9 @'@ +@$'@/@3_D_bj @_T#s@y?qT<}5! 7@ c9@s@yy#_C_@j @_iT#;@qT|}5! 7@~ c9@;@#_C_j @_IT#@T4! 7@} c9@@#_C_i @_IT##@8B7`@| @c9@#@@8@5@@@r'_C_i @_iT#@8B7@@} @c9\@@#@'@@A8@`5Cr+_C_i @_IT#'@@ c98@'@"@+@ Ks'@/@3_D_i @_T#'@@"@ @c9@@ +@#'@/@3_D_di @_ T##@@@_T+'@/_C_@ c9@+'@/_C__C_@!@?T@BxaB@@@?@@_C_lh @_iT#> 4 Yh @_ T#+@@! #H@`@Sc}_T'@#C8Є@9 ;_aT ț_D_?t2 +@ft< @ } w@ *  n@K=@(~ ө g @_T#@pH@S}?T_C_@(5 ~ A@ֱ`>@  g @_iT#@ _B_g @_T#р@7!'@98!"@9@ @_aTț@@ՙ8 q~@'@_D_@@'@DȤ7@8Х@9C[_aTCț8Х+TT@ (@ mo@_D_&@<&@@@9F[_aTFțDd7D6@@'@8Х   #gn @_IT#@?_B_g @_ T#@?T8!"@9@ @_aTț$"CC@c@ǘ  @T_D_֠ "@@T9_D_В6>@!@ qn@'@6B>#`1`  )f#@'@9@8BC@9 _aTț+@@@@"T96!>#@c@Ck'@+@@T@9_D_րx; @@C@@dT96c>e@@В?mTВC66>@!@ n@@?T9'@@ lT'@@ @@T9@9_D_#@_T8cd@9 _aTț%9_D__T@T9 7@@T9@9_D_@ Z(;  T@@T9@9_D_ր6>@!@ mВٗ7 @_T#р@@T'@+@ .@9c9_D_`  De @_ T#р@@@T|S'@+@  @99^\@9c9_D_`   e @_)T#@@T6BC@A@BT|aha`@_B_$(~_B_ 4! @_B_n d @_IT#@+_B_d @_IT#@_B_d @_T#`4@y@qT@ ˢ8B A b4BCx`x#T8@?B(T?@ T"_! T8@"_AT?PIT@A7j)@8!  @8Q5 @@"\XBZB8B&C@@ _C_B"8!`"@@d š_0@T  ή8@ `, î 4  ,k`@ @ 8@`, }`L R`@ @ 8@ۭH5 t p  [`L 0`@ @ z8@ omp  f9`L ϥ(1 ɥ`  å c @_2T#_@9  !@@c@g@!!f# 8c@@_@#@#@SCZ_@ ?@Ex$O@ȥS@C@"BhBT?@@b@B@} @_@d`@@C@?@_@S@[9PT@ Bxc O@@  }8B@ } 8B@ _@{@@d@{@@e@aT+|Ӂ8BA@'} 8Bp@ _@{@@d@{@@e@{@@`'@C{@@f{@@f@{@@f@T } m_@+@{@@d@{@@b@_T{@@a{@@b@Tgk_K_Ol^l@ T. 2  j=lh @[@@e [@@et[@@ft[@@e4[@@et[@@d4[@@d@d;@ @9kfiTZPcT3C  A#'#@@A_@#@;@3@C@TgS \/_@#@;@S@ @9kc @@SC_@&!X@K3 @S@@ 9A8!&#@ K@t3 @S@C@bB8B&D@@_@eT ~4ZPT&Ҩ5 ZP{ 7!&d@!Tgk_K_֠H+  O/CG7 4  Ԭ/@i  ˬC@`@ ¬G@7@ # % Jbeiii @_T#7@?@;@+ C#'4#@@?`?@C T' !a## .#@;@'@c?@c .#@;@CG_F_C+@G_F_CG_F_a @_T#/@[9A9 "T@#a}ha( @@"@_T!@ya T/@A9C9'@#@ h` @@@@$@T$4@%@y& @%y<@&@(T7;_9_E_?y@X#  ?@yG ` @>E̩`L  b`T \?y`  ?@y% ` ۫@#;  @~j cav @C_)KT#т8BC@q@ITO@D8c%d@98 &4S@@aT} @aT~@?@!| 8 <@[_I_ք8@98@O@T8@8@4@`@d??@@˅CCO@8B8c%C@҅@ զ@9=5(@<T@@h@f @8 @:S@'@@7/9? @T'@ T @@T} @T ~7  ( ?AT@ @! ա"Ѣ?qTB9a! [_I_(@ !@*J_JT @k @ Tm@T `T J)%ʚ_)1 !  @y) y 5@ @i)  i C9@@@9S@8B8c%?@7@/@@9O@?} @ cT@   B9|  r(TC)Ti4)9(ih8GB(Ti4)(ih8 @?"'T j4JIiix 9@9H @_!b%Tʠ }JikK!@lڌڟJTM@ N@ T@T`T k%̚k1K!OK@ykKyK5@L @1  kyC9?@@@9S@8B8c%?@7@/@@9@yO@B9,MA943;9# aiO@S@8B8c%?@7@/@@9@93@#@;@B9@!B9h@  c9g9&@@9@A@AyK @ I5@S@8B8c%?@7@/@@9B9@O@;399#g6B`B@ ? @+S@@+@_T@A!!@/@d@$d+'i8@4;@#@ 3@'@L88! !@?T? T/@"@3@TB" 3@7@;@ 83@3@7@? "D$_qTB9a! @9AB9;@ y83@8!%!@98!&!A4;@ S@t83@8!!@98!!@O@_T8!"@b"?@"@+@BB"@9!8! !@98!p !@5@@587@8!`7!@?Ҁ1;@[_I_ր8 [_I_ ?h @ @ A$A BDDB|GBd|Pӂ$` _C_[ @_ T#/@ @!@3@C;CT!|cš?㗟!|;?IT7@A"> @@/@@d Ae$Ae Dʆʄ|Gӄʦ|Pd$# c_ -Td@@ ĚAӦ҄|_T#$9b@b4#C9/@@a8!"@5#@C#@@/d!) @`8@5#@@a#@db@@d;_E_<[ @_T#CA9D@@ ĚqT'@f @BB@ š@F| @TTC" Tg49h`8B Ta4! x`xG Tg4h`8" Ta4! x`x @iT  sTŚ'@/@a @%@E|!@  5d/@` @ #@@@?`T'@@y!ѡ!" [9 աd8@d5@c37_D_9c!cc!c Z} @_T#+@@a @97'@:$@B@ @/@ @?@+@"$@9#@B@@ šBD'@@y $ @! @9A7BAA"@9BB@_ qCTx@?q@09'@T@ 6$@@@/@ ?ր83_D_֡@y!! #@83_D_!? Tbha8@_k`T"5@A9" B T@C6B@@ @@@/@ ?c@9@9@@'@'@@A9!}DA9@a@!! T@@6!@3_D_ր   ,Zw @_ T#+@@a @97'@:$@B@ @/@ @?@+@"$@9#@B@@ šBD'@@y $ @! @9A7BAA"@9BB@_ qCTx@?q@09'@T@ 6$@@@/@ ?`839_D_֡@y!! #@ `839_D_!? Tbha8@_k`T"5@A9" B T@C6B@@ @@@/@ ?c@9@9@@'@'@@A9!}DA9@a@!! T@@6!@3@9_D_ր  w Ys @_iT#3@`@!/@:$@B@ @7@ @?@3@"$@9#@B@@ šBD/@@y $ @! @9A7BAA"@9BB@_ qCTx@?q@09 ;?_E_֡@y!! #@#;?_E_!? "Tbha8@_k`T"5@A9" B T@C6B@@ @@@7@ ?c@9@9@#@/@/@@A9!}DA9@a#@!! T@@6!@@;?_E_!Y @_)'T#K@% @9$7G@:$@B@ @O@ @?@K@" @9B~" 9"@G@ @"@ @c9@`8@5K@#K@"@a@G@  !K@G@@K@G@#$@9c@@ Úc% @e# @K@G@#@@xӦ@ӧq09&@G@y ) @))@)*$@9?!-TK@ ˚kAӬҋ}  CT ?=q@*+@yJ @@!ʚJ=@ kTW7 I@y#c c@)?!T{9jhi8k @_ k T_qTF@A9}MDA9,1  h   *53+/J@A9C c JT@J6c@'@@ @@@O@ ?c@9@K@G@7@@@9@/@+@3@G@T@!6@'@ O@G@@A9!}DA9@a7@A! Q @9 G@@A9 K@@93/@T@ 6;@@@ @c9;@[9@`8@a5CaK@G@@9/@3@@T@6+@@@ @c93@[9@`8@`5C`G@+@@@ O@@9/@ 9K@@!G@3@K@C @9C6c}C 9T@@6!@S_H_@P2 Ǚ@P2 2@#  W @_ !T#;@ @ @977@:$@B@ @?@ @?@;@" @9B~" 9"$@9B@@b šB# @c7@ @;@@x@q09#@7@@y '7@T@ 6$@@@?@ ?_F_օ@yE Ѣ@+ @96} 9_F_@P2 [ "TFhe8@k`T&5@A9B #T@f6F@@ @@@?@ ?c@9@9;@+@'@7@@7@T@6#@[9e8Х@f5_'` @@@#@ ~7@e8Х@A9}ӇDA9@+@ T@&6[9@e5_ `@@@ a@ x`7@@+@@"i(8AT@y "B B@B@94"ib85 '@;@@"?T@" A#$A# BDDB|GBd|Pӂ"$a n{9!Th(8T {9_ Tehb8qT}`@yB B@!T @}_@P2  V @_T##@@'@;9d8Є@5@% "@@_"`_$@9&(9@@f5#"|_ @@ @!) @`8@5#@##@"g_'@d8Є@@e`#@@[9 @a8!$@d5CQ_'@d8Є@@@e5#"F_@@@d5#">_@C AD$AD cDʅc|Gcʅ|PӣC$*$@9pqT@d Ae$Ae Dʦʄ|Gӄʦ|Pӄd$c|ab$@9c@@ ÚcC# $@9B$ÚB0B@" 9" @"( @9B@_ qT b8BB@9@08c@_c _C__C_!VT @_)T#G@@ @ @9'77A@/D(@E@F,A9G,@(@y!;9@@@5E @aTE$A9 @F(A9$@9k!TF @$@9 @9F7@@ ƚц(@y @9@ qTF@F@'@y@F(A9@ ƚT@F$9@#;`8@`5_|ґ^B ^_H_ @?!qbT9I A9  * @hj8qTqT) @+@A9m !.T@N6@93k}/DA9)-% + T @9i 7'n6@ @ @@@ ?c@9/@G@@#@+@@@@9'@;@3@7@I(A9))@k$ɚ?i1ij8k@? T :$@B@ @ @?@G@A(A9!@@a !@?@T7@/@@#@;@@@@97@/@@#@+@@@@9'@;@3@ij8? qT? q`T@)T@i6@ @ @@@ ?c@9/@G@@#@+@@@@9;@3@7@)@I @@c7@/@G@@#@;@@@@9ea8!$@5G@ G@]D ]`8@#@@9;@`8@f5M ]!T@A6@@a5E A ]D(A@T@`5L @ ]@,9C,_H_֠  T @_T#3@@!$@9? mTB@@b šBAӣb|_bT@ @9!} 99@$@9/@#C9l@@3@" @9$$@9@9$$9D~B@_k" 9b8BD@5@$  $`@]]"@Z]b8B??y @@@eE@e5  F]b8B @9D@d59]b8B @#!) @`8@53@#3@"#]b8B#@ @9A@a5@]_E_@<  8To @_iT##@$@9 @9@ $B}_k!!@@A !'@A #@ @@@  _C_ T @_)'T#k@$@9ч @9}k @g@@y  o@&@@!Ś@9 @ qT @@y(! ??@!G@A9 K @97@ @yh! OO@!W@A9 ['@?T _L_@y!@; @A9 H  @9 7 @@ @@y   k@'@g@o@@A9DA9J   jTh`8 qT~h 8k8kq#TT@l6L@ 3+/ @9m6:9$@@@ @ ?@k@" @96g@T@e6@ @@@+@ ?c@9@k@g@@g@"xӦ@ӧq0@9@'@@9@;@g@3@o@/@+@'@-h 8-@ӿ bT-{ 7@"!T#9im @#@@h!7@ `g@@A9 ` @k@'@;@g@3@o@/@@9+@im9@ @i.8T@6 @[9k8km@m5L [@ @  @k@'@;@g@3@o@/@k8k7@T@L6 @[9@l@l5C[@ @ r @k@'@;@g@3@o@/@k8k7@@ @@A9 @DA9 2 [ H<  R @_T#@@$!@0@@?@T @@y @9@ qcTTa8!$@d5 `s[@!@a5 j[ @9!| 9_A_R @_) T##@@a @9! 7$@95@@.@:$@B@ @# @?@#@"$@9#@B@@ šBD@@y $ @! @9A7BA@@9!!@? qT `8+_C_֠@y` ѻ9@ `  `8+_C_!? T@K@k!Tbha8_qTDA9 +_C_ր   'R @_ T##@@a @9 7$@95@@/@:$@B@ @# @?@#@"$@9#@B@@ šBD@@y $ @$! @9A7BA@@9!!@? qT `8+c9_C_֠@y` ѻ9@ `  `8+c9_C_!? T@K@k!Tbha8_qTDA9 +@c9_C_ր   Q @_ T#+@` @9a7'@:$@B@ @c @?@+@" @9B~" 9"@'@ @"@ @c96@`8@5+@+@@_Z@+@'@  +@'@@+@'@#$@9c@@ Úcc% @e I@+@'@@@%@F@y& @&@($@9 -T @ ɚ)AӪI} ?#T<q@Ȁ)@y @@h!Ț=@?kT" cc  c@#!T{9ihh8?qT5cc c@[@_k`T  E @@+@'@һ9x@q0@h$8  [@ @ @DA9 " @96B}" 93_D_@P2 Ԓ@P2 Β` 2@# ː P3 @_ T#3@@ @97/@:$@B@ @ @?@3@" @9B~" 9"$@9B@@b šB" @"/@ @3@"@/@d@y_E_ Ѡ@   @96} 9_E_@P2 y Tk@@k!Thf8qT#d@eDA9@@ @ Y@@@h"8_aT/@e@y ф@$@94Chc85/@#@3@@"?T@" A#$A# BDDB|GBd|Pӂ"$a 9_ Th"8T B9_ Thb8q T}`Yb@yB B@!T @}QY@P2  ,PC @_iT##@$@9 @9@ $B}_k!!@@A !'@A #@ @@@  _C_P @_IT#c@C$@9dE @9}kcD @_@@y  g@c@@ Ú@9@ qT F@@y77@ ?ƠCF @9f7F@h@y&GG@ OƠS@@T _K_֦@y @3  Ն @ @9 7 @@@ @@y    c@@_@g@DA9  Th`8 _qT~h 8_q T9+'J @9j6$@@@A @ ?@@c@3@_@'@g@+@@9@*h 8*@_ BT!{K/l@!T#@ia @#@@h!/@ d` _@'@+@@9@ia9a@!@ h!8` @@@a @  /@@!@! @_@CDA9! @c@@3@_@'@g@+@~ ?X H<  O! @_) T##@@a @9! 7$@95@@.@:$@B@ @# @?@#@"$@9#@B@@ šBD@@y $ @! @9A7BA@@9!!@? qT `8+_C_֠@y` ѻ9@ `  `8+_C_! ? T@'@!Tbha8_qTDA9 +_C_ր   N @_ T##@@a @9 7$@95@@/@:$@B@ @# @?@#@"$@9#@B@@ šBD@@y $ @$! @9A7BA@@9!!@? qT `8+c9_C_֠@y` ѻ9@ `  `8+c9_C_! ? T@'@!Tbha8_qTDA9 +@c9_C_ր  & KN @_ T#+@` @9a7'@:$@B@ @c @?@+@" @9B~" 9"@'@ @"@ @c9@`8@5+@+@@V@+@'@  L+@'@@+@'@#$@9c@@ Úcc% @e 5@+@'@@@%@F@y& @&@($@9 -T @ ɚ)AӪI} ?#T<q@Ȁ)@y @@h!Ț=@?kT" cc  c@#!T{9ihh8?qT5c c c@/@_`T  E /@@+@'@һ9x@q0@h$8   /@ @ @DA9 " @96B}" 93_D_@P2 d@P2 ^` 2 # [ |M3 @_T#+@ @97'@:$@B@ @c @?@+@" @9B~" 9"@'@ @"@ @c9@@8@5+@#+@"@V@'@  }+@'@@+@'@%$@9@@ Śѥ' @g f@+@'@@@'@@y ' @'@($@9 -T @ ɚ)AӬ҉} ?T<q@耈)@y @@!Ț=@?kBT&   ե@%  T9hg8?qT_Jk5  @/@_T  #J Z@@+@'@ [9x@q0e @@i%8 E [9 /@E8@e5CU"@B"DA9` " @96B}" 93_D_@P2 @P2 ` 2 #  L' @_ T#3@@ @97/@:$@B@ @ @?@3@" @9B~" 9"$@9B@@b šB" @"/@ @3@$@/@@y_E_ р@   @96} 9_E_@P2 -c  T7@@!Thc8qT@@F8@f5U#@DA9` @@ a@ xU@@@h"8_aT/@e@y ф@$@94Chc85/@#@3@@"?T@" A#$A# BDDB|GBd|Pӂ"$a 9_ Th"8T B9_ Thb8q T}Ub@yB B@!T @}T@P2  K3 @_iT##@$@9 @9@ $B}_k!!@@A !'@A #@ @@@  _C_K @_)T#c@$@9ч @9}k @_@@y  g@&@@!Ś@9 @ qT @@y(! 77@ !?!C @9h7@ @yh! GG@ !O!S#@?T _K_@y!@3    @9 7 @@ @@y   yc@#@_@g@DA9!J  Th`8 qT~h 8qT9+' @9l6$@@@ @ ?@#@c@3@_@'@g@+@@9@,h 8,@ӟ " T!{/@!Tia ~@@@h!/@ d ` @c@#@3@_@'@g@+@@9ia;9@ @+h,8@!@A8!!@9 @[9@A8!+@k5CS @@"@ @ Q/@@!@!  @_@CDA9! @c@#@3@'@g@+@~x SH<  J  @_ T#C@@a @97$@95@3K@_T  ҷ # }i`8O_G_?@:$@B@ @# @?@C@"$@9#@B@@ šBD?@@y $ @! @9A7BAA"@9BB@_ qCTx@?q@09@y!! #@/ a  `8O_G_B!@_ T$@K@!Tdhb8@ӟkT$@G@@T+ @9@9+@@/@?@@/@?@DA9  O_G_քc@ Tf@T;9&hd8qT;9&hd8f5f@G@ T@@?kAT@@kAT T?@DA9 O_G_ֿ T!!  !@G@ @9@8O_G_?@DA93@@ O_G_B@_ T@K@T;9#hb8qT;9#hb8C5@G@T#' w@9'@3@#@3@#@?@DA9 O_G_@8O_G_`   I @_!T#C@@a @97$@95@3K@_T   # }m@8O9_G_?@:$@B@ @# @?@C@"$@9#@B@@ šBD?@@y $ @! @9A7BAA"@9BB@_ qCTx@?q@09@y!! #@/ a  @8O9_G_B!@_ T$@K@!Tdhb8@ӟkT$@G@@T+ @9@9+@@/@?@@/@?@DA9  O@9_G_քc@ BTf@T;9&hd8qT;9&hd8f5f@G@ T@@?kAT@@kAT T?@DA9 O@9_G_ֿ T!!  !@G@ @9@8O9_G_?@DA93@@ O@9_G_B@_ "T@K@T;9#hb8qT;9#hb8C5@G@T#' f@9'@3@#@3@#@?@DA9 O@9_G_@8O9_G_`  k H @_T#C@@ @9A7?@:$@B@ @# @?@C@" @9B~" 9"@?@ @"@ @c9 @@8@5C@#C@"@3Q@?@  C@?@@C@?@%$@9@@ Śѥ' @g# @C@?@#@@x@q'19(@@y%! ( @ (@)$@9!-T*@ ʚJAӫj} _cT =q@ *@y) @@!ɚ)=@_ kTL3 @y ѥ@!T9hh8@? kT?qTbi5  ժ@K@ `T @G@ aT +'/ @9@C@/@'@?@+@@@9@3@@j G@@8@`5'P$B D@C@?@@9[9`@Gh 8E  K@G@EE8Х@e5FP"@B"DA9% " @96B}" 9O_G_ P2 q P2 k` 2 # h G @_T#C@ @ @97?@:$@B@ @# @?@C@" @9B~" 9"$@9B@@b šB# @c#'?@ #@C@'@x@q09$@?@@y+_G_֦@y @3 Ն  @96} 9_G_ P2 c@ T@K@!Thc8 @ kT@G@?aT/ λ@9@C@+@@3@?@/@@9@8@`5O@DA9d @@ ,@ CP@@3@h"8_aT?@e@y ф@$@94Chc85?@+@C@@"?T@" A#$A# BDDB|GBd|Pӂ"$a 9_ Th"8T B9_ Thb8q T}Ob@yB B@!T @}O P2 v F @_iT##@$@9 @9@ $B}_k!!@@A !'@A #@ @@@  _C_qF @_T#c@$@9ч @9}k @_@@y  g@&@@!Ś@9 @ qT @@y(! 77@ !?!C @9h7@ @yh! GG@ !O!S@?T f_K_@y!@3    @9 7 @@ @@y   Ec@@_@g@DA9AJ  Th`8 qT~h 8qT9+' @9l6$@@@ @ ?@@c@3@_@'@g@+@@9@,h 8,@ӟ T!{/@!T#ia J@#@@h!/@ d ` @c@@3@_@'@g@+@@9ia;9@ @+h,8 @@@AA8!+@k5C}N@ @ '/@@!@!@ @_@CDA9! @c@@3@'@g@+@~ NH< \ E#/@+@TB8BB@9'@C@C {/@+@'@'@C@ O@8@9`'@@+@ /@_D__D_#@8@9@@+@ T#@'@ I+@+@+@+@#@'@ N_C_#7@/@@A8!!@9A'@+@ 3@@3@+@?T'@d@|F8@9`@  3@+@@ N@;_D_;_D_;_D_#@8@9`@@!#@ @@@#@ "N_C_#@ #@@#@ N_C_@$@ @!hb! _ @_i T#'@@@_TcT @cc+_D_"C '@ @!#@@@AT!!z_T+_D_!_IT @c$Ú0 #@T_@TaC '@@@+_D_+_D_  # 4 YD @_T#ed "  3@C~/@@ !9"@_q TP L? m/@8@# @CT% @"x>~ #@>~ {@9K&H7@@@97 م` b7@ @ Y;@p  P#  7@;@/@0.  =C|# '@Z?PcT 8B`%B@[9Axa!HMB0}!hbҁ"BB@_qT# @T$8@T_qTB8B%BB4 +@/@I@37;_D_37;_D_ "4@$\@|`B 37;_D_37;_D_#8B`%B@7@c*PT`|}@h`@#KOS@+_B_#_B_#_B_juL #3@#@B@cBE@@TbB7@cTBc8Є`%@*PbT`|}Ӏh`AP@S@'SW/_B_րB'S7@W/_B_j;L  @_T#7@/@c@g@~;@_ #@3@7@@?G#@K_E_B#C@?@DG@@A TD8@9  `ZPcT 8Є`%@9x`HfM0}ӄhfD@qAT @T8@T@h@98`%@9PTx`fdE&gCS@!3bҌI_G_֠6ȁ$@!@_G_?mTxfh@CTl@ T@ a_G_Ȁ@@mT&xdp@CTt@T@ a_G__G_!T# @9 *@)%ʚ6  `K)@J@ij`K)A` dK_ T;/+?n?@+@C@?@3@G@/@;@#@ qbT?T@+@/@@C@?@3@G@#@_G_B iT' @9*@%ɚH6H`K@(?`KA` dK?T/+?;gn?@+@'@?@3@G@/@;@ qbT?Tu@+@/@@'@?@3@G@jK`'  #C@?@DG@@! TD8@9d@h@98`%@9 `ZP Tx`fdE&cCS@!3_G_  T' @9*i@%ɚH6`K@?(`KA` dK?TC/+GmG@+@C@C@3@G@/@'@ qbTc?T@+@/@@C@3@G@'@_G_jJ`' E #р@h@9 3@"C@b š7@aA/@+@'@ TG@5'@9!g5@'@9@49`K@`K@` dKTm@@@9/@+@'@@ `K@@'(`K@` dKATm@@@9/@+@'@@B_D_#7@@C@_a T\@9A07A8!!@9a@!h@+;9@?@;@_F_֥ @BT@TF@9B|A6)`K@@'('`K@'` (dK!T'#8m7@+@#@?@;@@'@_F_$ @'@ވ ('@@ #)@ `t) d$ @'@7@B@ '@@ ` @<'@ C@3:`t) W  Q  @C_ T#[@@!v?@!T@"54@7O@@W@ /@3@7@?@S@W@;@/C4#@3@?3@W7@S@;7@ TC@C@B I_I_9 @CT $} @"@   @ @_iOT#k@_ T8c`%d@9 g@ZP"MTx`dE$CS@!s@ @_@T_`TJJ*iJ`TG ]@9,07@o@?T @CӿT Cӭ C  , L? 13C@@o@ #$C@3@hA"@9@ @bC@B|BC|czcABC|qT5@9|9E@9;9??9qT@9{B{eB9_ qT`T @?A9@9;aB;! 9 qT@9B;eB 9T Հ@?A9@9{!bA{BA9_L_@ T*a!  0@9 9_L_@C|!  0*bB ?B0#@9c@ |` 0@9!" 9_L__L_@T8`%@9G@xag@CdEDCS@g@k@CqA Tg@9{H@9g9 qbTTc?[@+@/@@?@[@g@B)_L_O7~#@/@W3@W7@S@SO@K@ BH7@/@ K@BAg@W@W@S@S@K"TT`@9{G@9`9 ՟ qbTTc 8@+@/@@K@g@ qCTT)K@g@B@ G1@9 )}T@C!!@L C5!@! |hT~b9 !DӦф~qAT!~&z!z!@9{!9 ՁTG(BӦ 9 աDӄ- @ |T9 -D?T T1@91"ƚ12-A)  i)@9)!ƚ)1!A T@9!ƚ1!     T!ƚ12-A   @! |!T IT@ 0! BT9 @CT@9{ 9iJiJ?9 ! BiT@#  ! @W@; 8  NW@;@ I Pu   40@9"Κ2! ) LT C, @hT ?   !ɚ1) ?iT (Cө4. @Ӊ}@!ɚ?1?ujF = @_iT#W@_@TS@O@T3cĚCK@ Fˇ@9T 9@97[@ ?@@K@? T  ?@W@"B @@ F_G_q` @  K@ ` Ti 8y i'8GT#T4Ti'8cgyi%8cGӥT#T"Ti%8BTi#8[@ ?@~K@O@@@CӠFFFFFFy(i 8GTT Ti 8EEZt`D ~ <@ @_T#;@C'C#"@ C8c@9@?HT'@? BT+#@ h!87@ @@#@+@Aha8?qT{C_F_@ ` r~#@EҺE < @_I1T#@@@@j&@9 !@87C6g'~|TT h h˿!Tc H@j@9}lJ%̚J1J!J1  }C{ cH@'j@9J @~lJ%̚J1J!J1  ~BT@c@9@ ƚc c0@   TTd9 ՄHc @ |f9D |f9 ՄHc!T@b ˥@@b˥@)@9*@J!ȚJ1  !?7zh@9 @!1  @J |*9 Dc)'h@9!1 (9 Hc)@c@9@ ƚc c0@~ @9k @d #TTˋ$Țd1TT   hT:(T ɚ?0G T@ ƚ0ф ɚ?0J)@   @) |i9 DcTg9 H!c!BT ǚ1iT`( g}@ ǚk1kф r @9d!  CT(@9 @)!ƚ)1  !?7!T)@9)!)1  տTd9 ՄHc @) |i9D) |i9 ՄHc@&'@9 0 ! @c |#9 ՄD! _A_$9  ՄH!`;q @_IT# Հ7'@FM c9D@ @+@B @Q@/_D_: @_IT#7|:@;9!"8B-"x   T 8 @aTh@ @'_D_: @_)T#@@  Ձ7! 8@^ @@ @8!#!@  Հ7x_C_c: @_ T#;@c%:_C_l: @_)T#@@  @#  Հ7  8@"8B@B@! 8@ @A  Հ70_B_: @_T#7@[9A9 "TAd}%hd@y@T+'&8- TX@7#@ k!T#7B (A #@7! ( ] @@@y@?T7!#!@! XA8!#e @9A9"AB@_ T b @d@e@y%8Х@9FF_FȻ?qT7@"@@9_ȄȻ?@8#e@@y4@@csA"8BC@9#8c7d#8c7d_ȄdȻ7@$@B@9"8B7E"8B7E_ȥEȻ?6!!@9 `@ #9 @ @!8!!@4 87(@'@+@@h!_F_ҜB $ V{ P{ 4 J{`@= D{҂B g9. @_)T#;@@hTM0@_!#"s' : A99@99a7!#@ c9A9g9B@9@A9@8#d @9"8BC@9'@$'@$_Ȅ$ȻA@9@@_ȄȻ@8#e 8@9'@#8c7d'@#8c7d_ȄdȻ6BB@9 +`@+ #9 C@n"8BB@4 87f'@9 bT7! ( 7!#!@`!|A!@! @ zb@ @;@A87!`%!@;9 @ CZPBT!xcDdE$BCS@!F@C@9#9_F_jAA z zz 8: @_T#/@@"8BC@9#8c7d#8c7d_ȄdȻ7!#!@c  Txc&8-T#@@y7yB8B#d @9@"AB@_B T7@y  @d%8Х@9_Ȼ@8#Jd@X@@C?kT@@!4@!|#8cd@9$8Є7$8Є7_ȥȻ@"7c (b @!8!-#@Ax @"8B&8-/@|A8!#c @9/@"@#8cc@9c_cȻ?@8#d 8@4 87u&_E_A 7W @_T#7#@@CDk@T$kATB@@7!#!@_C__C_#'< .'@o@$ %#@fm8~ y 7 @C_iLT#O@C@9cA`@JT4! h`8s 86@9A 7#@393@O@" C|A'@c;D a @'@B@'C@ *'6BB@9a '@@@y_`T@_TAz!C '@ @@B@!$š S_I_ p*} .y@C@'@@@*@T` _a @`C߈3@kT3 @9#8c@@#8cd@9@7#@7#_@93@h@9|@Fk[_kaTF @#a'@C9V4 @9` 9 8@97!#"B 7!##_c#57#߈k  8@%k-T 87@77!$!@37B$B@/7c$`@+~@@ .7@Tn  $7@3@Tb 0 /@Y@%@ +@=~ ~'@!@'@O@@O@'@`@*'T``? ` @`C߈3@kT3 @9#8c@@#8cd@9@7#@7#_@93@h@9|@Fk[_kaTF @!'@C93@@ @@_T?@;@!  _ @9` 9 8@97!#"B 7!##_c#57#߈k  8@%k-T 87@77!$!@37B$B@/7c$`@+~@@ \7@T  R7@3@T0 F/@@%@ =+@~=~ 4~'@OO@ @9 9 8@97!#"B 7!#$_$57#߈k   8@%kMT 87@77!$!@37B$B@/7c$`@+}@@ 7@T3  7@3@T'0 /@@%@ +@M~=~ }O@6@99aO@` @`@9S_I_e>b>`> E5 @_T##@@yA47!#!@`X@$kT#CAT@@yB_T@[9B !|A!@!A  ^@[9B`!|A!@!A  ^C9]2_C_@40 v 4 @_ T#/@B@9CA`@T4!!h`84c`x`xoyc7c# c9@g9l>@`o@y#@cs\@c|c` @b87B`%B@[9 @ dZӟPTAxdbdE"cCS@!A@3_E_3_E_j=ҿ= 4 @_ T#7B&B@#c7c{@@c@@@#@T7Є`%@9Ex`P"Txe9@HeFel A8!z@@[@H`@!8! 9_E_`9@ 7vh!8!?DTjs= T4 ! @_iT# 8Ƞ 8@!8!!@?kiT@@ 89_B_<` v %4 @_T#+@B@9cA9bB@47B`%B@[9 @`ZPbT@x`9@H`F9a]bpZ@b š!!@5!8!!@908!_!9_C_@9_C_j={{   G~@}||{ )} ;~#@} @ 2~'@}p  )~{4-~ #@'@@ @@9@l@ {u 3 !#/@ @A#'@@7_E_#3@/@ ^#@7_E_#@@ ^@@ _B_ @_T#/@+@ ^'@+@ @A#']@@0T'@_T_D_ր %| u" u 73 @_T# 8@5   8 p 8@@$@qaT$8@%t @8@!8! @"8B@ C@ @@ 8$@9 5V@@@@@T`" @%8@9@@_$8@5#@%x #@;'@@@5+@@ /@@@@ @`+@;"/@;" @;@!8! 9   8 _C_֡ ; 8@$83Phe8'8$h 8jT҄|@B˿TҴ; p'} nt 2^ @_T#  8  8@9a!8!"@99?96@   !8! _ @_B_h2 @_T# 8@a5!8!!@9@;|@k @_kaT "; _B_;2 @_)$T#G'  "8B r 8@@A!8!$@56B\6B:@!8! 9 "B:#8c  |c9g9@~'@G@+ 8@/ "8B /@G@'@+@O7`@3  !8! 3 8@+@A  !8! /@O@7@3@+d@[e@ G@[@+@/@S@;@4*ߔbTg` mT @ @IAWGK'?_ cT @c9L@/@+@[@G@?@W@K@'@ @*mT?|S; @l]@9@Qq!T[9 @9-8@n5L  Y:@@o5NO!N:;@+@n!@C @ 8@5C@#C@<:/@S@;@+@[@G@?@W@K@'@-8YqT[9 @,8@m5K  : @"8B@9xf #'+@1 89!8!"@5K@|aK@:D 99UT&` rd r .: 1 @_)3T# 8 &5@ 1\@9!@?Xq-T@,O@-@@!8! T!4!,4_O_@_@TO@D@D$@$@@cTO@@D \@9@LqTGd@yx7`@yqTP@9f6  }?Th`K`T\@9@XqTPqT @f@ @O@G@K@ @`@O@ @@ K@C@O@@! TG@K@P@9c6  }d@yc8@`@ya<@T!lc} @-W[.0_O__O_xccT@9@T? +_c#g?@}kK@oO@s0_O_~9 @S@CG@ @@BB BS@C@B #'+@/@ rO@O@<9 @S@CG@ @@BB BS@C@B #'o+@/@ q @S@CG@ @@BB BS@C@B #' (+@/x3@7@ q @@bB "| #@'@ q  q!A"`@T"d@cT"h@T"l@T"p@T"t@T"x@T"|@T_O_ր4 qq"  kqI @@bB x.#@'@ Tq`` Nq s/b @_T#@@A @B@C@D@@!@ @@9_D_`` *q // @_iT#@@@ A_B_/ @_ T#'@@ @bA@ @@!A9@ p8@+_D_(@_T@r @'@ r (@@:B@@ @?'@@@@b(@@B(@@B+_D_wd5 Ry%w p . @_)T#@7!# !8!7{@!8! !8! _B_. @_T#@ 8@ 8@56!#6Bx7 "2 w "2 r6@ 86@ 2 8@566BV7@A8! 9_C_y. @_)T# H 88@@ T@9_B_ւ@Bh@[9C@KBHK$8`9@!a!bb!b{6B@@@8@e5 *6B8@a5_Ҫ*  Հ6` Հ6T6!$x`8@e5?x " ҍ*  Հ6_B_@8@g5w*! @_T##@ВT6҂B|ÛBS@#@bcAӄ䩱Dbc|ěcHc@@? T|@`9@_T'@+/_B_@*Ҁ*҂d|›CT@"$˄@(bT_ T҆g|ƛCc?)Tch"8@T?)Tңh 8@?T`h"8@C'!+/_B_B*A*?*_(bT T҅|›CB?ITBh#8b_T?)T҇h"8b?T@h#8@b'!+/_B_** *  T @_T#8 8!@ ?d6Єȅ@@BTxbl@h@@ G@IGTRȄ@@BTxbt@p@'@ G@HFTR&D7@@d@7&@7'7'8@57B`'C7B`'h)|8c` b8B` B8 8B_@%@e@@B88 @8 !@8B Aa@8B A@ 8! _A_\ o @_T#8@8!!@?kT@ 4p_D_Rh@i`t~ j@i> jch a   @_ T#@@@8B B@_-T@CB9#!_C__C_ @@߈AL@CB9o9h`<@ ]j@:j$= Tj@i } Kj@i<~ Bjo@9#9hhh| @ a  @_T#8B C@@kcT8c c@kT`6Ȁ@@+ұ8B C@kcT8c c@kT`6Ȁ@@/Ҁ58@ @bqT8B B@kT8c c@kTG@* `38B B@kCT8c c@kT*c6c/a@c@T@|}`h`9 @!߈?q`T? qTT@8!!@T;!337G@;"7_H_](` U * @_ T# G@Z?PcT 7B`%B@[9Axa!HMB0}!hb[?@C@ 0^`, @ *^G@][@ 8@+A994@' @[%@ ^@]-  ^+@] % ^@9D]>~ ]'@;]4-  ][@3"C@6@@ T@|ӡh`/@#[/@#@ ]$\[{9[l)} ]{@9]`p  ][@4@3@!!@?qTK@ K@ c[` @ ][_G_B  T_#T$_T$_cT@CI[`; ]f[@G@A!@+<[`@ ]?@C@ ] @ {]@\`$#~ r]+@]B[K@@!T[`~ c]6[[[3[@K@@Ҳ#[`; R]%[_G_#7BB@9b    @C @@D\@c|D(@e`@ Ś ՃC7@9g08g_g7c`%c@{9  B @ @ZPT`x`9@HAdPha8Ae@ eT{;e@ dT ceTB@@@Ab@`"AbaLgL7B`%B_kT!@gLA6!/"@!@Dxc9[ `;c+T]7@%k T/@ !#7B7B@7c c@@@@L@Y /\#@Z` @ &\@Tf[` @ \@T\[@  \@TR[" \@[ @ [@xZGZY_E_Xx@Bc ?kԐ&`c{;@[@C@  ?@7@9 #C9b9W@@@a@ 7@@9#C9 M@TW@"Bxc[90yb#@ +@/@@@'W@7@ q@'@!sk[@os_J_[@kos_J_s s   K & @_ T#B @C@+@фV'@џXETa4@f0@BTxdfkƤUcTM@Tf Ȇ0y c@9@@@'@@/@9_D_/9_D_s   @_ T#'@[9+@`M@" TA x`9a0y/@ 3@(+@j/@4'@;@@b@_iT;@@`;@@acD9a3@s @3@s7BC@97cd7cd_ȄdȻ7#5 @93@77BC@9c_cȻ A@9@B@_BȻ7#A5@7_D_7_D_sV 7  @_ T#@TT!T@"BA!!:aT@CcbB"0@_B_@T !T@CcbB"@T@CcbB"!T@Cx{cbBx" T @C@cbB@""$@0  _B_ր/` J  @_ T##@AT T @@A#@a@[9CcxaDxac @T@#9_C_#9_C_ֺP @ S#@ERLQP( iJP @ R#@3R:QP*  WJ | @_IT#?@CT_hTC@` c˃';@cF7@@?@7@'@C9 T!xcxcA @T?@'@@7@9 " T+"xcxc @ !zB@B ?0`$# y a GK_F_@c#@a+@xa7@dxa?@ @@A`#@'@?!0C7Є@@IT7Х@T e4D7D˅_T @˄T @!GK_F_}}O @ :R?@{QP P( IO @ (R?@iQpPO*  I 9 @_T#@C@#@TC@bTC`#A9@Ce@%@TE@e_ @@#@b@ e @|@#@@"T$x @_C_~88` JI o @_T#/@[9C`C#Tx`@F@GG@x @/@@@@F @@@T x`39_E_@@\ /@39_E_~? $ @_ T#@C@ @ @d@TE@#@ˀTg {hi@kTTs @ @ @#@#@`@Taa{D@$h# '@# @@@_C_@  H@  @_T#?@7@;@ @+"A@9@@?T#c'$?aT @ ?@+@@@@#@'@ CGK_F_C7@G;@K_F_@  @_T#@[9[@@c+A#D6p8߈'@@#@D6p8@qT զ|A@  T'F @@7g|A@@*" T` n0 @g|A@@*" T  `0 @@  A6!p8"߈'@$  Հ߈ Ճ߈1T7!"@9|@k _kaT##_C_ %߈_kBT7@9[|@#k;_kaT#e#_C_ w( @_T#@6`8@!@T7B#B@7 ( ! _0@`@ Y0@@ JTD|Aӄ@@*CTl_D_  @_iT#7@5@6 8B6B 8v  @68@A6!@8 9"6BB@B  Հ":A6!8 ~c9g9@FR3  @68ǝ7#߈47#߈5@A6!@8 9 Ղ"B:C6c8 ~c9g9@%R  @68J @6P8@! Հ"6@aT Հ"6@#9J C@9= @_(T#р@!7#߈5;7!#!@;9 @!G_H_7 @ !"@_q TX@;@_k@TC kT`"߈;@c_kT2 @97B@@7BC@9@7Є#㸥@7Є#_@9;@ѥG@9|@%k;_kaT%g@#A@'C9c@9`7@9'@7B@%Cc '@7B@%C_cCȻ77@9A@7c#;|@bk @7c#{_kaTb'@9 9@97B#Cc 7B#E_E57#߈k@  7@%kT977@77!$!@37B$B@/7c$`@+vL@ N7@TN  N7@3@TM0 N/@M`@%@ N+@M=~ NkL'@@9d"= @A6! '@;@@BG_H_973-L-@ wN@9MH>~ nN7@M`&@ eN3@ML4Lp@ E  @_ 'T#р@55@$T7#@#97@9`"߈#@c_kT1 @97B7BC@9@7Є#㸥@7Є#_@9#@dcE@9|@#k;_kaT#@7@ + @997@97B#Cc 7B#D_D57#߈k@ 7@%kT77@'7!$!@#7B$B@7c$`@}K@ M'@TM  M'@#@TL0 M@L`@%@ M@!L=~ MrK+@rC9 @9` 97@97!#"B 7!##_c#57#߈k 7@%k-T77@'7!$!@#7B$B@7c$`@K@ \M'@TL  RM'@#@TL0 FM@L`@%@ =M@K=~ 4MK_F_@ e+@ ߈#@kTB kT_F_|@ D  @_IdT#т@C5C5B@bT@C@D9@_{97B#B@Gd9@qA[TfX@GkZT7SO6Х@9`@sD9G@7@S@6ХO@f@7 @97)$*J7)$*_J*ȻfA99i4@3j@@+kW[[@l@yT ɚ} n @ o(@Cӌ @@,"̚ip8@T4l)@9 qT Wk@[ `@[W@ @`E9 fD9G@7@S@6Х@9O@73@+@@ D k i08@G9Aj@@j7Ja%J@[9   k @lZӟPDTJyl[9lePӟCTA !@H! j=M@j!ʚ* @9*,8 ,_ ,@7!&*57J%Jj4j(@_9gj$@kc9s Ҥa@j@_Tj(@,CJil8m$@il8J-J@!@A%!@!4OQD9G@7@S@6@9O@73@@O@c a@* !o(@ilgX 80.f JTKj@yL y=@ k##TKmy@9!@!h@;9%$K=@o4@E%$ `(@`$`@/ @7@ ( ݼS@9@?q!T7@CX@O@kTG@kT k TC`d@9eAӦ@& 4@yg49@@97#- @9@9!@?T @y7BB@9B_BȻ7#W-7@@9G@D9K@4K@<@F@!T Tˁ7! ( `|A!@!  *p bTˁ7! (  |A!@!  *`7 @#9_O_D9 @ye47 %k T_8 @ @ 3@ A#'7 7#, @9 7BC@9@$@$_Ȅ$Ȼ A@93@B3@_BȻ7#,@#9_O_ "Tˁ7! ( `|A!@!  p*#9_O_    $  B@X@OHl0` K@9]J`&@ KO@TJ| KG@KJRIH oB7@;yH9| J;@5J`,} JK@<@+J# J@y"J`l} J@yJ IH { =B!j@J? JbTj(@Jia8l$@ia8J,J@Ӫ4CD9C@G@7@S@6@9O@73@@s@sJl@_ bT_@C9@9 @l5s@m@ Tk@cC9@9 @,4l4@m @5 -4?/ %D97!&G@7@S@6@9O@73@?@@/@7%m4 ! C9 qT_@_99g@g cC9 qTk@kc9c9"ջi- cT v  j k@n@y Tn)@9q!T[@l@y 낯Tn @ n)@9qT Wk@[ `@[W@  D9@9G@7@S@6@9O@73@+@G@@-7`X@OGl0` J@9UI`&@ JO@LI| JG@CIJHG ` gA. ~ aA  @C_IT#ѕGO@4@+@'G* IO@I`"` I+@I`` I'@Ix IGO@(@/@97$@;9CC@cC@bO@@@_"T4@+ @QG@@+@@#2ImGO@@@_bT@;@A9!@9a!@?k9A8G@< IUG /G@ = yILG/@A9@9 @@4!G`8,! kI>G G`-! bI5G/@A9@9 @Ӏ4@9@9 G@  @ NI!GFGG@9O@4@#@?va! I A9?qT/@/@99@7@!7 A9_qT;@!;9r!9oh% ~ @ ) @_ T#р7$@ ``T6!"@97$6!_C_ր7$6!7B$C77ȅ7$@@@cax#@ 7$6!7B$@@@#@7$ T2@T7$@?T7$g6@9@_C_R @_IT#@@ @`@@ _B_: @_T#@C@cd@TD@DC@Tg@@ 9@@@ @@Ҁ@T`#@#x @B7@qT77_C_֡  @_i T#?@7@C@7@@?@7@C@;@ _F_ք (}T'+#?T j`}F T9 }t#@@97@@'@+@@f@ f T!A7@qT770_F_@7@ 97@C@@C@#@'@+@@f@T Ҵ  @_IT#@C@!@@d@C@D@CDd@$@ @@@#_C_b@@`Ta` x`#_C_֡a F @_i T#@@"@c@@v@@ 9?"@C@U@i@@ 9? @@7BC@97cd7cd_ȄdȻ?7B @B@97B 8Cc7B 8C_cCȻ? _B_ @_ T#@@@C@"@_-To @@ @ 9 _B_@@ 9H@@ 7@qT77T_B__B_ @_)T#@@_B_ր;| ~>  @_)T#@@_B_֠" f>  @_IT#7@Aj7!"@  77@7! @7!  3   7I@@#'c+#@@  7@7!     7)@7_F_@" _ @(T@ @B#9_/@`#@#@H@ ="SB} CȤ7@9_aTțEҢ#W#@yi @_T#@@7!~ @c9@@ _D_ @_)T#@+@97! p_B_ @_)T#@@97! X_B_ @_T#7"SB} CȤ7@9_aTț"  @_B__B_t @_T#@@"@CBB"bA#@BT`$`  B}@@#_C_b G @_T# 77@ 77 @  7_B_7B"!@7!"@b7c@d@"@c@C@" 7BB8@@#7!"7@( <  @_T# 797@57@a  7ϓ9_C_96@99c  7@  7! @9_C_ @_T#р@A#@99`@#7  7@ @c9@@9#@@9_ TaB97cc@c_E_h @_ T#/@{9{@@d@{@@e@KT@A@s}7! @/@{@@d@@#{@@e@{@@f@T뤰@T } /@{@@d@{@@e@@#@@{@@i@{@@h{@@f{@@g)} 7 /@{@@`@{@@b@_T{@@a{@@b@T3@Ax _E_:I"@ ; H@8 @Z?PcT b7B`%B@[9Axa!HMB0}!hbA" @T "BBB@_qT!8@'C9_C9_C9_ @Z?PcT b7B`%B@[9Axa!HMB0}!hb"BB@_q@" @T"8@cT _ _ @_ T#@9 @@a'47!$@5"`;@@d+4@@`/4 @!BX@"c`;x`!BX@t`;P@s(@@?4$@57Є @@dC4"BX@7c a@X@d#"9 @@eK4%@5`; `"BX@P"BX@L`;P@(@@c4%@57Х`@@eg4 #BX@7c`9X@dC#9|@@eo4%@5`; #BX@*#BX@&`;P@)@@4%@57c @@c4@$BX@7c X@dc$9 }@@e4&@5`; $BX@$BX@7c {`;P@K)@@4&@5@@c4`%BX@X@d%9 @@e4&@5{`; %BX@%BX@7c `;P@)@@4&@5@@c4&BX@X@d&9 @@e4%@5 `; 'BX@һ 'BX@ҷ7c ; `;P@)@@4!@5@@c4'BX@X@d'9X@#"9 B@@#BA9!? +T  7 _C_HhPhXh`hphxhhhhhhhhhhhhhiiii i(i8iHiPiXi`ihipiiiiiiiiiiiii @C_T#O@9 !@@"_TC@ CcC@7c6cd@9O@C@7@c6c@@dA+@@eA;@@f A/S@_I_ @)A@* _뀊L ˭7Э@9 , ;_ aT,ț k'7JK@9w, w-_ȭ -Ȼ џ4LIT'?h3  pO@+@;@/@3@ wG@'@?T ˡ7!ˡ7!"@9?@Cc?@C_cCȻC@7@c6c+@;@/@7Э@O@$ ݐ7@c6c`@9`_7@ @AqTB9` _I_N @C_*T#o@[9c7c#c@39w@s@@@ ˥M4Fi'T[@@h@9xgPB&Tyg90CH%T@HvK   AH EITCW7_[+S0@O ҃' @9 97cc@9d7#㸥 d7#_5c7c#c߈kC  գ7c@%ckT77@Ka7!$!@Gb7B$B@Cc7c$`@?v?@ AK@TA`  AK@G@T@0 AC@@`@%@ A?@@`=~ Ak?@'@o@c6cc@9#  @'@sr  o@e'@_M_֭ T ITim80@43c"T@3"Кs2s@4  @"THzs{9tb߈3@ ѿkT2 @97е@@7е@9@w7#@w7#_@93@ Ѻ@9;@k_kaTz@/;`@#  C9c@99  o@c@;@#@C@9kb3@[@hc8/%@w@s@W@S@7@[@_@v+@O@3@c@/@@o@s  vj v @_iT##>/@3@A99c# @A9A9B!4 @@s @?k@?9@;9_E_;9_E_9 @_T#@ @Ac@99B@#C@d7#߈4d7#߈$4 @@9@ c9g9@#@ _E_@_IT##A94@#@ c9g9@+_C_ '~ 7  @_T#@[9[@@c@{9 @ZPTcx`@#@{9hH0}i'T4D0@[@@c@{94ZPTcxh_B_jj  @_ T#@@@%ˣ4Ed[9[@@e@9 fZPTxf9 0@Hgd@藟4?IT 7J9_B_? T7JK@9_aTț k hT)T'` <7j} ^@_T#@[9@ch@dI%@ !X@ @#_C_bI@"TFa!x`` #_C_yI@ !X@@F` @@x"@@KTzb @_9T#р@h@ K@?@T(@";G@9 PG@ T @@@;@`$a(b,  G@;@K@  ^@@!@Bh@bCI#c3TFDxcC d K@#/'G@;9 '@#@#G@ 7K@ @@!G@K@ wc@9@  G@S_H_7@K@ @@a*#'/@G@E @/  G@/@'@#@'#| K@y949 Ճ3eG@ @9@@b9@@K@s+cB97f4`@a @ 4`83@ 7gB9g9A@5e4@`\@" T3!!x`xa4aa3! x``\` `@ @@ ( @ @@ $G@9"`@@c+AC @3@b@K@+@7@#@'@ }g#@ˢ7BC@97cd7cd_ȄdȻ@@K@+@7@&57!'@97` 7`_Ȼ7!47@7 _7# @97!"@9#@c#@_cȻ $@9dd_ȄdȻ7@_qT5@#@9+@1+@_ȄȻ+`#@9+@$+@_ȄȻ_qT#@9+@+@_ȄȻ_ qT#@9+@+@_ȄȻ7#@ @G@ K@7@5b7B`%B@[9  @d @ ՀZP"T@x`9@HdPO@@c@@TE3 x`@ ƚ1& ƚ0I3)!*y` k l @k@HTHT{@@m?@N3΁"y`%Ϛ1 }k ˬ T ь  OkCgSGK ґ M@bTgb@x`9"0y@ @@T_ sg@X@#cj` c@?@@ D@_@!sg@!X_@_@A4@B0@g@" TAx`"A_"P@kb k7A k/50`"  2~1 v2g@1 m2@1  d27@1  [2/@1p  R2%00` @ J2@100`*| )!jӷ#UӱsJT"1Tpylp Wo?cy`# š_b0@@D ʚ_0s c`?@AP@?k"?@d@)T`kUӿTC@@ Ě0T`kjW@f Ě0O@S@K@E3 g@@k@I3)!C@@N3΁"G@@bO@S@@K@E3 g@@k@I3)!C@@W@N3΁"o@G@W@C@ š_0o@O@S@G@@E3 g@k@@N3΁"K@@ iT AP@?k*dkU+#dkj;W/`"! 1O@1 1G@14,~ 1#@0  1+@0  |1;@0/K/&/`"  p1O@0@"` g1@0   @ ^1S@0/-/@@@`?@{/*} N1{@0# E1g@0//O@A3!"!x`wB3B Bx`s. 01w@q0`|' '1s@h0o/.Y@3@_@_o@y`w @g@w@! š_!0o@!4_@_3.`"! 0O@s0 0[@g@h0 0'@'0  0@0  03@0p  0.[@k@T@Cx`dAdP@kckfU['ckcjӱ`*| ( Yo e :}x @_ T#@@@'@_CT@+@ET +@Cc?T@_T_D_+.@8| u0'@ 0   l0+@/.;.@@@.@H8| [0@/ @9@ R0@/.!.'} ' @_iT#/@[9[@@c?@[@@dG@XC) TdTMw3@TA4@E0@`V?XCiTx`ekU(Tcc@T#A!xc;90y! 6@@@Ts#@X!s!X @@3@T@3@/@;@@`?7;_E_#/@ 3@@/@;@@b?@@iT;@@c?#@7;_E_7;_E_ք-@ @ /@/@"` /3@/ .-/@@@`?@#k-`< /#@TM.`  /#@@/-z-@*| 'sQP Xx@_T#7@[9[@@c?@;@bT[@@d??@4[@@f@bT[@@e@T    ՆVӧVӈTMөTMXD Tc@T'#A+ x`90y wE'@@+@Hc@TA x`90y 2'  Հc@TEx`9  ՆV0yӥ ՀTS BTTMӦx`!@@ !x  @99_F_}s7@?@;@sAxc;9 0y!M@@+@XAT M@T c@T@x`9@!0y #@sss !\x @_T#@?iT@@kkkCP@DUBj#@@ ŚJ1k c@K!Śk1l H1?$?mTxfkkkP@UjHaT`P@Pk APV '_B_W < @C_I T#P3"@3#@;TT"x`7cd@|@ š_0#  D#'@@?@/'+#@/O@;9@" '@_@7@e5C_I_  %  @_iT#c@T@!Tg@?T@T!6C_@G SB3KB"B1OS;9#@c@@ @7A?T3c@g@  Z"Z1@@@@3@ ?@@3@C_@ e@f@TcTa  Յ7@g@c@ )T'7@T@@fK@@@aO@?i T'#K@|hac@ C?@@'@#@  @@7@3@_@7@@fK@@@aO@?TT+/K@|hc@ C ?@@/@+@  @@7@3@_@7T a!?T a;@@b@ ů;@?@T ! }d7@3@_@7a_K_.,)7&+@H8| p-c@- h9@ g-g@,+6+0 $  @_T#@ @Z@A@'@+@ /@ ?@@@B@'@ @?@@37_D_ @_ T#B@[97cc@ @ @c cc@BTB D@A@?IT a #'_B_ұү t @_T#@@#@_T"B@c š_c0@!#@!#@4'$š0s+_C_ @@'+_C_'+_C_]@@ @C@c˥ӃT@&$ƚ!zc@#$Ú!!!?T_@c š_b0BB ?B0@"@"@4`gX 80.fs_@_) T#3@[9/@d@Dd@ ՅV#TM_E_T@ 1i@ `Tc? @TJIyi;90y)  KF!T,ykJ@ ʚ**y+i@?`Tc @BTA!xh;90y!! @@3@/@@#@@@`@[@@a?@bT[@@`?`@ zCy/@|_E_s } s Kx@_T#7@[9[@@c?@[@@dG@XC)TA4@D0@`V?XCiTx`$@ @  c_@bT7@dxb[9 Vӄ0yB TSӟ TAxd!BmBxd. 3@7@;@@`?C_F_ dcӟ@ T'A!xd;90y+@ aTM@T F_ T'@cjz`4+@dxb$cbxb7@# z7@#@ z9@9S#@A7@[@@a?;@?@C_F_C_F_}B@*| "s9}6s32 fx @_I T#@[9@`F T@TѦFC`T "TAx`c@ ÚaAx @! Ě!0Dx`!c@! Ú!Ax _B_ Ax`c@@ ÚaAx _B_Dx ET@@!  0Axf @x&_B_}} @9x!!? kT_ @_I T#@[9@`F T@TѦFC`T "TAx`c@ Ú!#Ax @! Ě!0Dx`!c@! Ú!Ax _B_ Ax`c@@ Ú!#Ax _B__x ET@@!  0Axf@x&_B_}} b@9x!!? T_ @_ T#@_T@{9@F  TEѦFDT Tax`@!$š gX 80.f)`x`@! š_!0@$š! gX 80.#_B_@[9@`F "T@x`a@$@#_B_}1dx`gX 80.f!ET`xf@B@c š_b0B@gX 80.f #_B_}} @!? T9xaec_0 գ_@Ta?bT?HaT@P@!Pk aPV _@ _ք jT9xd@$ƚT@.?HaT@P@!Pk aPV _!@$!%?aT!ڥڥ@!$Ś%ڥڨ@!$Ț(?T!T@$ȚT @_ T#+@T'@9/@!FT'@ /@*@@37_D_'@ /@]@@37_D_!? Txa"b@37_D_8@F@ @ T;9%x`%fT_TD@z@$ĚڄڟTz__քBT@$Ț_@F@ @ T;9&x`aTT& z_iTT zc__T__ @_T#@9#@ '@@#@ '@_C_ @_T#@9@*_B_ @_T#+@}'@_aT!CT! 7p@7! "@@B"'@+@/_D_ր` +  P @_T#@@?T@ _B_`  2 @_ T#@@?`T? T@ _B_`   @_IT#5@Ҡ7 c@`7@555B5@G@K@x`'(GLT@9C@))) )I) )-IJR*cJMJ}ɛJQK` ["T'3x`?@!@A*@ T* @_ !T*@ T "@_h T/  G@O@g@9`3@/@5G@K@?@C@'@/@W_G_B9 @ @_hTK@?!G@T+ }C+@'@ C@5!"@[93@Bxc!@;9 x#?@?Ta7!"@ ? Ta7!"@ a7! "@ W_G_W_G_{{Ak"@ % J9@ @T@@9_c?TDxcxc@T9_@9_ @_IT# `7qu`7@"*cUCUb|BzB!d!`79  `7u_B_  @_iT# `7Iu`7@9@a7! 9  `7u_B_ @_T#`7@a7!!@& @@dUDU|cacCc|{ @&hc!@%@@%@c @% @ ?|?|@@a_C_ @_IT# `7t`7@a7!!@(F @@C*dUDU|cacCcc|{ @&hc!@%@c@%@ @% @ ?|?|@@!  `7Wu_C_b @_) T~#C~T~ {ϻ@+  a7!t+@?(T@@ {@9$@/a7!!@O @9O@"*cUCUb|BaB!!!|{haBh!@@A  `7u"@/@_@_{  @_T#@ @A@ _B_ @_T# `7%t`7@'@ @9'@"*cUCUb|BaB!!!|{@! @#@A   `7t_C_ @_ T#`7 @?@AЁlT@mT@C AD$AD cDec|Gcʅ|PӣC$*[ b?⧟" #@ _C_x @_T~#~T@`@` T @{+/@ @ {κ@7  a7!s7@?HT@ {@9$@;@?!T@@?T @@@!b@Bb!b (`;@ @@@A @@n (`;@ @@@A  `7s_@_{  @_T# `75s@9G@ @#@" :` >%?@%  5%C@$  ,%#@@ '%p  !%"" :` %?@$  %C@$p  %"@@!`@TA@@!`@ ;4;'@+/@3#.",#"@@9  `7^s_G_it @_)T#@ @A@B@  _D_/ @_T# `7r@9T" p@ $/@{$  $3@*$p  $_"@̺@@C@#)""K"@@9  `7r_E_ @_)T#@ @A@B@  _D_ @_T# `7%r@9! @ 6$ "@! X~ +$!!t"!@@9  `7r_C_ @_ T#@ᇟ@_㇟!#_B_#~ k  @_ T#@@cT#@@_bT_B_#@@bT_cT_T_iTT?BT'+_B_   3 X @_T#@'@bT#@_T+/_C_ @@+/_C__C_2 @_ T#@|x} #@'{@@ `7@5#@ "#@? _C_  @_T#@A@B@@%˿ TET|FhfG@TTT_B_քjTT|EheT_B__B_  @_IT#@#@ @@A@B@? T@@'@C9_C_@A@B@?)Td|DhdCc@#@#TT'@C9_C_?MTT|@h`'@C9_C_'C9_C_֝ҙ ~ @_%T#3@7@T "B /@ a@T/@a@d@?iT@3@/@3@a@f@b@?-TiT|hg7@?7@G$T@?Ta@d@f@?T|)?T*? I| T |/@3@7@b@`@_Ta?TT|h y$_TcTdb@f@HT) |GT$?$Չ |&B_` T |@/@3@7@I#d@`@{a@} y@/@ @"@@_ T@_ T#@@T `|}/@@@#@%@&@'@`T˥@|Bg|B_T |[/@@3@7@b@a@?)T|Eh!@T a @ ` _E_֜@h @ !3@b!  !7@Y! !   $ I@@@BC|#hc!$@T Յ @BT Ղ" @! _ @! __ց @_T#?@C@ @?@d@a@e@? T&˥|TT?@ _G_Ѧ|Ӈhf@C@cT"T#3/+'  +@'@@ @@_T Cң?@/@T C?@@@/@T3@h&#@b@T`` @` _G_@@@T (GLT | @_)T#@@#@@ T@!|ӂ@} x@#@ @@@_cT @ @_A@@_T |&_C_֎ c @_ T#?@9} @?@"@3C7|I'   ?@6o7@?@3@'@#@T  n3@#'@?hT?@d @?!Tx !3!!@} 7!*x@?@" @B+#@ B}+@?@" @@ `7@ @/?@"@'@B @#@B3@b n7@/@! ! ! !;9!` } C@_G_ @_) T#@9"  C`_kT@ȟBT#_C_#_C_ '  `k!T**f7@9%;_aT%țg a|I!|};9"`c }BCDD"@@9@F@G_GqT @`7@ .m@#_C_{ @_ T#'@9" C`_kHTb|I*@T@B|}dbhbbC@4qTҀ@@ `7@ l'@@ "@_D_D4  46 Nd1 @ @  @*] -`   @_iT#@9"SB} Cd7@9_aTțEҢ#_C_ 3@ 7v@#_C_ @_ T#`7@9@@"B@@#_c#Ȼ4#_C_ 8| @`]  @*SZ@\ w _#@`a7!!@9#@B#@_cȻ?mT?lT@?T_C__C_֊  @4@ #@D@p8` 0  @_) T#т@Bh@bڄBc7cc@9@D㸄@E_E7@97 l@[9C7c߈*eUEU|aӄc* T #_C_@5'3  }'@L@8'`   @_T#р@h@`ڄa7!!@9@B@_c6 @97 l_C_'  @'@@8'`   @_T#@@b7BB@9!@@@  @T_B_րt@  #р@ ?kT`7@9@@@ R`7@9@@h@9ڂ` _B_ ">3_B_h@9ڂ` _B_@_iT#?@9ڂ`KaC?T/` ڂ3e7@9+ 'xan'@?@/@3@? CT؂{_G_B_ C Txb@cT'#i@@@?@+@'@/@3@#@ (@$C%@@ Ś g Achd8cc@4?@+@'@/@3@#@ c7cd@908_$7Є`%@9   @ էZP Txg9@HdPӈhg8[@@a/@! @ ? @@ Y@*/@ B7BD@d5#$@B7B9ٲ_G_-_G_ @_IT#@ @@ @!@9A @  @@9 > @  @@@ lP@@9  <~ ? _B__B_ @_T#/@'@+@/@'@@" @#@, C_D_] @_T#@@A @B@C@;.37; {@#_H_ @_ T#@ @A@a!@/@C@T@9_E_/@A@#@9qhT#$ @cc6A6#& @  p #@M ? @/@@ ca@@ @9_E_e@e@F@#TT`@9 @9_E_E@@e 4 !(@9 qcT x!ǚ1pmTO !ǚ0 @@`9@7@a5bҊ/@$@@@d$@d@5@db@x$@d !@a@5@ab@j@@`5# "a @5@@X9_E_* " T  0` I  C H3 @_?T#K@@$@9 !qT=DpT<$@9 !qcT:x Ú0Dep-TC8 Ú0 D%@9 !qcT#6x Ú0Efp-T3@*#˥ Ú0@9E*@#@ l#0 Ú0 Gt-!Ú1 H|+@K!Śk1)!Ú)1 I @l5 @*@`H7 @l5  l5   7/93;'9 ҂/@!+9"9@+ #b+@`@9@@7@5K@? ;@҈'@7@ K@@a!@9/@@9@c9_H_'@9 !q#T##x Ú0Ghq-T  (@9 !q#Tx!Ú1Hi?q-T  )@9 !?q#T)x)!Ú)1I j_q-T37a"њ?!0*@*B *3@ /@7@K@;@3@#@@@97@H7/@@@9'@ kT/ "Ϛ2 !1"К02 '4@@9?k0@9 !qCTOx"Ϛ2qmT21@9 !?qTP1x1"К12rmT3@9 !qTQsxs"њ?s21?rmT]* " UT* " LK* " CB_ kbT #$'@9 !q#TgpT*'@9 !q#T#gpT'@9 !q#TgpT* " * " * " y* " p* " g* " ^* " U* " L* " C c @_T#'@@@7@5'@#'@!@$@d5#"+@ /@c@#'+;'@`A7!!@a5_D_& @_i;T#р@`@7T457@.+5   kw@W{@[@_@7@5OC7cd@9@E7 @E7 _7@@ e7@@$@9d$@@9@D7@f5?&&@9F@f5? &`#@@f57@E7D7@%9&@5#{K?G'@9 :c@9?@$@@9$97@A9?@?@M@S?@a5   @ #'+~?@@S7@@TE7@f5?G@>&@''@/@h5? "`29#@@h5K@*A97@E7'@/@CC9_@@5O@O@a@9aa@9A7!!@9H7 )H7 _) @` @@7@@_N_a(@9((@9h(@3#@@h5 #@@5K@O@K@ @;MO@7@E7'@/@;@3@_@@`5@@9 @@`5";h @ `@`@";X p} } > @  w@{@ K] 3` z> @  w@{@ iKG  7@@|@C@+C@+@ /  L> @ w@{@ ;K~ 2` 6u> @ w@{@ %Kh 49  E  _ր@@9@9@@_T@9@@ __# @ @#@Cν@a5@x_C_ @_)T#@@A @> c@@ ^0_C_Ͻ @_T#'@@@"@T@T 0@,b_D_@D  .@,  %@  @ ~ | # @cA_D_ @_iT#@ @A@B@#{#@@ @@9@e^ _E_E#_9/@@C_#c_@9  ]"4_E_ @_iT#@ @'A@B@C@+D@#+#@9#@!7!!@9"7B Cc"7B C_cCP'@@ @@9+@ 9_F_ @_ T# 7@@ x, R%@@"B"@"6@"@@ 5  7@9 7p ! 7p _! 7 T 7%kT 7%kT@#9U<x@9_C_?qT?qT@  *} ~ . +9_C_ 2` 9_C_ @_IT#?@@ 4?qTB˃5c+b C@B@"#3} 3@#@  ?x} ?@W?@@/@+@'f< /@E|< +@<~ '@3 h?@2!0!߈@CkmT@#k;BD9%|BӟkB_kT@`@@9aT_qT@B_kT(| i<C@G@ ?@h?@;@@9 -?@C@G@ ?@V?@;@@9"7BD@9@A9;@   7 T 7@9!7!p "B !7!p #_c#4   7` T   7` T;@@kC9_G_! @_T##@@!@!`D9w @@C9_C_'@w @C9_C_@C9_C_C9_C_#@w @@9q9_C_9_C_@_'T#р@`@@߈q%TG@+@G@'@3@3@@9#'339+9@߈q( Tq@T qA TB9B9'@T@_T[9G@ ߈kBc@9@@G@ 9 9""#@;{9d@ ߈73@`T@3@k9@ 7%@5@9 |@'@?lT;@W@q'@G@+@#@;@7@@96G@+@#@@93@3@'@. qTq@ T!qT%q`T`7S!~Cc@9 G@+@#@@93@3@'@G@~@9tc@9G@+@#@@93@3@'@'339|@#|@#@?T@ #@I @ 7|r|@q@G@ x@!Kc9@9g9_H_K@c9g9_H_ 7߈+L@/8| G@ @ /@J` +@ 7@9@!߈/L@/k7| 7@ @ /@%` /@r/| `   @_T#CA9'@9 @"߈;R_kT{CqTAs GA9'@ @c9/ _D__D_ !߈'L@8| X'@5 @ O@` F'@@9@!߈#L@7| 3@ @ *@` !#@bi:`  # @9B9":1"6, @9_B_ @_T#@"! 2@!@u @@ x'A!"!2##@!@wu @@ x' |@2!   T_E_t ` 2 @0 ! F @_ T#G@@"`@T"h@#5#C5!@A@?qT@O@?T 2! !@?T9[_H_K@$u@ @a;7 K@x+1aT7@@93?qT3@ @A!6 6# ! \7@9+#@7@3@! @!``T;@ v@/@7@C@9 qTC @3@c6B6+   ,7@ t/@@+@7@cb @';@ K@x37D" T'@  7@;@ v@@@/@/? jT !l% }@-@9@? /@b@?DT?  !! !,-@9@? /@ jT $ }-@99[_H_@9K@[_H_9[_H_9[_H_9[_H_9[_H_9[_H_lV ; @_) T#I 7p ߈5/@'@+@ c_D_օ@I)I$ ˅?mT$7Є@Tw˥?T((7 I i ?T @+@/@'@$7Єw@(7 !w  @_iT#р@!\9"\9!@!5    7 P @!_B_ɷ @_T#р@\9"\9 @qT   7 P_B_ @_IT#+@'@ /@b@@|@@ kT+@ưc'@ T <@@@@a_T_D_  '@ +@$y_D__D_֍ b @_T#@ _B_O @_T#@ _B_; @_T#@9d:~ T& _B_ @_T#'@ `T(` a!T `T aT `eTd#~ l_D_֠D#~ c_D_#oy`9 `aTn!`( `T9)T9@a @ A_D_Bad `TBan bTbcBaT@(` `hTBa xeh%8cb8ad bT@999 99b9``Gz@|@F9Ҁ|BCC$@E3Ҥ||Lӄc9 @9  _D_|_ @_iT#щ @ @L@I _B_Y @C_)T#~TCO@` T҃D|ÛCӅE˥h 8_(TT ! _I_ց R  @_iT#@  @ v@_B_ @C_IT#~TCO@` BDTC @hc8h 8_@"T #%7`@T %7` _T}h"8_T|h"8 A _I_׾վ  @_IT#@_B_ @_IT#@_B_ @_ T#/@3@@@@#@ _E_| @_ T##@'@p8@ @H@ @?8@ @Q_C_L @_)T#Y9{9|"7B`A#@a {"7B`?@$C@I T#+? @T@b=+@"8 W{#@"7B`?@+@C@G@@?C@99@95{9{@ X+@@@41@p@ @3 r@/@'3@B@+( @ E/@'@ @ @ :@+@` /_v_G_r @_T#'+9#@@@@s2! Ҡ2! @!7! 9@5BA!!@7I@ tB!t@ @w#@@5!'T@5! , 9[v@!7!   7& 4O@!7! @!7! 93 :@9!`7+'@9@ 5@ 7@555B#52!!@9!5!`8!@ !5!`>!@a !5!>!@! !5!@8"@  5@8@ . 3V: 795@89) 7@9 7@9`!Z7@@? 7 ߈A4#9'@R_F_ 7p ߈ 4}c9|g9@  !6@ 7 ?T߈b5@8 \/ $` 2  x    )_F_ @_iT#@@9@)_A_ @_T# !4 u%_B_ @_T# 7@55 1 5B 1V\u@@  ՠ51K5@1@5@ !:5B1 "c9g9@% 7p%kTs0?A \ % J#!6ֲ_B_ @_IT#р@ !@9`@;9 $@߈qT[RkT$7@5@D@@ @ @@9"9@9@ 9#@L "?qTB9` !`:_B_L   @_iT#4 @#@C_C_ݲ @_T#@ @A@ @c9_C_#ф@ Յ@h@9 G/; ՠ5`J;@@87-G G ?Tx` (7@h5x rG_T  @ ՀсqTB9` G_H_`)@ \ GGEjT5BC@d@%7@5DB ? GGG"T3 / V@@#@;@A!7!$@5C7@;@7@%7;@3@  @f5x$  ՠ5`%K;@ G`!ZS;@ GGG$ @T3 / V@@#@;@A!7!$@d5C7@3@$ D &7@g5Ex!Һ/@O#G@d @dd@9dd@dd@dd @dd(@dG@d@ Յ@/h@;9 GGT; GGGTB/ hV@@#@;@A!7!$@d5CD@8/@G@  !7!!@a5x ~ ՀсqTB9` _H_GG GGMTTxg )7)*@j5x']G_T 9&@f5 N73  ՠ5`I3@95!#@"7BD@57@  27@/ ՠ5`FJG@/@;@}xe``  p @$+ @{ @{ @d7 @{   @_iT#@*   @_iT#@{   @_T# 2"`  # 5'@!5!'!@ r_C_# 5(@!5! (!@ {r_C_#L    @_)T#7@9@!߈A 4   7 H5/@"@@T  /U@@#@5B@/A!7!"@55/5B/R5/5/$5 /b $7@57@bx!7@?@@?IT5!#@_T #7cc@9C+ *5/5!+@"@!7!`    7 9I_F_\|2   ; @_T#  7 yH5/@@  xb@C@`? @@@_T   7 I_C_ @_T# 7` 5!!   @@@#xb? @@@T_C_ @_T#@!7! 95!"@#7c`d|@Bxd+/+5!#7c`_kjT/ @dD|@xd:f @@#@ jT L }]$@9@@H@ @? T! BB} 1 7(3@9!7! 9 783@9!7! 9 73@9!7!  9 7+@9!7! 9 70@9!7! 9_E_} o @_IT#'ҡ5!` 3,#i#@A`UJ  7 } '@@ _~)Uh#D'@@;9@ !Rq'@@@!7! 8 19;S  ՠ5uGq@5! 7 /!X?A 9@@ Me@|@?@9!akLT/ ' @   ՠ5G 7%q T@!7! 9!7! 95/@+@3"5B(@@  @!5!( 7@5!P AcP  7"5B)A@?AT!5!)?@`5_Ҝ_F_ xb9؂@@+@_T` `  A @_T#Ѡ5`5!@!@5BB@!kT_C_' \  'p  $  W | @_)T#Ѡ5@@"?,T@_C_ ` 6 [ @_T#р@@`T/@9@ {ȍ  ՠ5F3@/@ t@/@ t 7 @#t@# @/@  p 7 @@ @/@ $" A@`5@ $?/@(@$@$ 5!#@7@e5`ֶ 7BB@9 n(/@5!   ա5!F2@9 O @7@5/@/@_E_ح @_iT#5@9/@3@ 1/@9 @"߈@ ddBs@_q!T#~@#@@h@/@ A9c9N19 @"?qTB9` _E_ !߈'L@8| /@ @ @b` '@!(@9@!߈#L@7| @ @ @=` #@  Ep @_T#@7! } n @@?T {@5BA5B@c,#@9} n],} n_B_ @_ !T#c@;? qT;RkTsg@_kT/@;9#@7@9|@bk{_kaTb_E_@ H/@%p  ?c@L  6g@~/@9 @!߈/L@8| !/@ @ @` /@PW@9@!߈'L@7| @ @ @l` '@+2D- O`l` /@p  c@dL  g@[/@9 #@!߈+L@g8| /@ @ @!` +@n#@9@!߈#L@B7| #@i @ @` z#@Ih"   @_T#3@? qTt7@_kT@;9!@7cc@9|@"k;_kaT"9_B_ 2  <3@L} 37@{+|  #c@``6g@g@a`7?kTB3CGYc@g@/@@/@c@g@[9E@7@9|@k_kaTqTE@q T@qVm@@?T/@c@z @ mIm@'q!TCB9raT@C9CB9cC9CB9  8m@c@?q!T/@Cd@D`@˃Cd_`/@g@qaT@`Cq!T_9Cd@c7@9@5! "#c3@5! "#_c#Ȼ+@Tdz˅Ѧ|@ T@ џ@0c(ĚddDDc`@ T5!  7!!@9@c@_cȻ_d_E_Z@ @/@c@@c@(T@_kATT`/    @_T#@@'A @# 5 ~ ?#@L} 6'@~ @   @_T#3@qT7@;RkT@9@7BC@9${|@$k $;_kaT$E_B_)| f  @_T#3@$qT7@qT@9@7!!@9!~;|@k !~_kaT9_B_)| 3 X @_T#2@C9h>@3@7!!@5/@|/@?@#_E_, @_T#@@~by@~Z_C_ @_T#!<@ !@97!!@a5|2@@C9> @"?qTB9` _C_թ @_IT#2C9=@#@ k_C_ @_T#ѩ 2C9>_C_ @_iT#р@kT/  ՠ5A7 5! @5B@(/@@h@@5B5B/C@3D@#Tfxe@qaT 7)*@9|@k _kaT  7) Ҋ5@9g'1~'@J|5@5B/3@#@@'@ 7)@@5Bp,@5/  բ5BB/k T_(5Ԑ Cc@9 ՠ55 55/@@( A!7BB߈"4+  7` CA  7` =A@+@_G_ %xb@ qңfX/B_T|`  Ѩ0 @_IT#р@ !@#7!0 !߈4 @  ՠ5@7 7!` "b4? B! @'5!?5!"@4?5A  ՠ5~A'@+@@+@b Cl@ @l@@A c Pj@A9! @#9 w #@"?qTB9` @;_F_@ ) N#@@`sc@ @ @ @  @#9u_C_ @_T#р@@!T'@#u@@5B'?T&@5B'@:\@@@?@5B'@?T l@"@@l_C_&`   @_T#2@97@9@9o#9B_B_ԧ# @@;9!@?A @@?#@9_B_ @_T#р@5!' T@#9I J@(@! @!@ {P7@5@?(@"@l ՠ5?@5!`$@ T@7Є@e5#U@9!p@5`@@5T FC  ՠ5Y@@@7BC@97cd7cd_ȄdȻ"  ՠ5?5@!*#  ՠ54@@P ߈@47@97! "B7! "_B"@9_C__C_.` |"  ՠ5e?5@!"  ՠ5?<(   F@_I%T#+@ !@h@ +@!@3 բ5B4?5@A!57! !!7!$@5?@5c b5B ?@5c 5/@5/@3@Txh T;9ڄ)@*@%5@@ڄ7BC@9@{|@$k @;_kaT$'?@A@ ?֠5@!'@7B@5@'  բ5Bp??@@@3@?ր5/@/@c T$xc@qTfqT7@9һ|@k_kaT 7 7 )5@9#'{#@@y#@@5//@@@7ҿ'?kMTl%5`Ԑ @c@9 ՠ5`5/5!@!!5@@B_T#xb{9cfC4'  Հ5S>7@55 5B Ϯ  Հ5> @"?qTB9` _G_H!@ @ @  j @_)T#р@h@9ڄ7BB@9@[|@#k @;_kaT#$5! :@A@ ?  Հ5=5@"?qT5`>  Հ5>_B__B_ @_T##@ !@h@7@n 5`@  Հ5=5B`@@B!.F @7!"@5;@\;@+?@  @7@5@#@{9@`5ab#@@Bh@7@T #@@@C_qTB9` C_F_@$A$4$TA7@f5 T! 5B`@'+#@TA5B`7@7!$@d5@ʭ  Հ5=d @_T#@@@@@@ M_B_#2BB@9b7BB@9"5BA@B@? T sf@ D/ @ f#9F#9L @@?97!"@B"@7B A/@@T @сˀ @`@@7@95!"B5!"_B"_D_҈  @_T#7@97!"7!#_ 4@#9  @@7B A@_C_ @@kCT9 @_iT#@t  @A!.! @!0@$@ @@<A8@@@@W7@5@@a@"@׬@;9@`5#`"ά tB t # t7!#@9@5 @5_ȻL-7@9@5!"B@5!"_B"@#9i @ @ 7@B ##@7! _E_ @_T#р@`@@@`@?97!!@9@5BCc@5BC_cC@##9E [F@#9$ @7!"@B" @ 5 @@7! #@'@ e_D_e#@9@9_97B C`T#A7!#@9@7㸥@7_@ d@7@9@E @[_aTEț @ d_@9 @ d_@9_B_ @_ T#+@'@ /@@+@? 9 l7! !@a!@!"pBb5!`D9  7!9;7!@47 !@@A 7@!@997`!!<  7!;_D__D_@`8@  ¢ @_iT#2@95`8@/@@  !@9@@#7#605`8@ Ϫ7#0_E_7#$0/@-7#}0_E_2  T y @_T#р@ !@7!!@9A@7c!;|@bk @7c!{_kaTb "?qTB9` _C_!@= & @"?qTB9` _C_*#р@9 ߈4' @ 0d#9*D@@;9!  [:@@:`A7!!@5@@#9?@@?`@;9! "@9  :'@#@ d@#9_D_#9_D_` `  #ѭ @ qc_B_ @_i T# Հ5 :5p!  Հ5:@7!@! 9 7!`!?  7!!:7`!;y 7!9  7!97 !@   7!y: @@  @@} @_iT#р@5h@PD9  Հ59@@#  Հ5J:@@!l@L@@l_C_p$   @ 7`  9@@P9_ց @_iT#р@ ! Հ@ Ձ5!i9/@Z$@` Ձ5!"@C@#5! #c#b@  Ձ5!9A9k! 9@ @ @"?qTB9` _E_#  Հ59#@PD9 l@ A9a@F0  Հ59A97@95!"B 5!#_c#7 @"?qTB9` _E_` P9@l@9 @"?qTB9` _E_[9Cc߈D߈F7Ȅ߈kTkAT   X @ R? L q@ @_IT#@9!߈C߈7B߈_kTkTd5!@"57BB@B4LKB@PKB@b@7BBȢ7BB@7cc@kiT@@C9_C_ւ5BC߈5Є߈+T7ce@9@|@Fk @[_kaTF@C9_C_  Հ5Q85@4@@ 5"?qT5;9  Հ58_C_@f4ڄ7BB@9@[|@#k @;_kaT#d5! :@A@ ?ր5@"?qT5`9@5!@!55!!@7B BB?kAT5!!  Հ58@C9q_C_͂!΂Bȡb_KTp"  Հ5z8@`>_C_  Հ5m8@C9I_C_C9C_C_n @_T#р5߈45߈57!!@9@;|@k @_kaT_B_@C9_B__B_: @_iT#р@@!t@?aTh@`@ S@@!@;9!@!߈"s_qaT@!l@@@l_E_'&@p` p'@ D g:@@@#9@!߈L@ 8| T#@1 @ K@` B@@9@!߈#L@7| /@  @ &@` #@^eP   7  | h @_ T#@t@@ Tl@! G@ @ l @7 _C_> Q.@ K p @_ T#р5@4@PD9P97@95!"B 5!#_c#B7@  Ձ5!6@@ 5"?qT5|7  Հ57_C_H& ~ `   @_ T#@96!$@5@`@٦9@@!@a5Ϧ@=@T9@!A9a@@"@Bh@C@cC!@5BB!?kT@ "5!!@9A8@B9h@rq@[_C_Ɲ @_`T#kk@@!h@5BC@c4Is;9#fc4s@ @3@76BC@9c6cd@9$k@ @c93@7@6B6c6c4>@@ s@X"c@9 @>5@4  Հ55s@  @_5![6_@ ;5@6!0 "߈46B@ C߈45cc6B@ ң @??@35@6!0 6B@ k@d@6 PD9d@ 5߈5߈˟k'3@7@)d@PD9@P96@9@5 )@5 _) 7@@c@9@@9 @+3@T3@6!#@4s@dLK@dPK@d@7Ȥ7@7@kiT@@s@37d `5/@c@K@Od5Є1@W@C@Gh52 @S @+ @/  Ռ555@5s@f4  Հ555!@!25 @s@?a6T  Հ55k@@"PD9?9 ?P96!#@95㸥 5_17c@K@ O@W@C@G@@ rk@@@"P96!#@9@5㸥@5_ @@Ac@K@ O@S@+@/@3@A#@?A9k@3@6c0 d߈D46@ ߈e4@?6@ ҅6@9҇5҇5_ 65@ i@"QD9!7@H3 ]@k@3@6c0 6@ 6҇5?A9!?!6 @_!^ @;ҁ5! ]@5! 6 @;@ap+  Հ5-4   @g5!4g@;@?A9k@@@"P96!#@9@5㸥@5_k@6!@@9_O_  s`P@?s@~@5@9s@ ps@9_O_9_O_9_O_go|k@@@P96@9@5!"B@5!"_B"@g@ D o@~@5@9o@ oo@9_O_  s`P@;Vs@~@5@9s@ os@9_O_>b߈_k5BBb_MT;k@6c0 6@ 6Ҧa^@[  Ձ5!4[@9_O_ <` $ ~ "  H4 6`S} 6 @9_aTț 6ƾ@`D @s~@5@9s@ 0os@9_O_ @_T#р5@5@h@@9_C_9!߈C߈7B߈_kTkTd60 ߈46@ ߈k`5@ @@ @9_C_9_C_@9_C_p @C_I T#т@Bh@CO@JT@ A$A D|G|Pʦ$f5ƀ7@h57@i5)7)@4J 4e*T#|~iekosw 9 S9[_9_I_  sk@o@kT5@5s@i5)/*@+@ Thyh_Tg51j5J2@o aTj5J2K@L@|E * "T}~k k߈@@!ǚgkj5J2@?39 @@9@3@T3@a@9 /C@c@9 @ @/@@@9f5ƀ7?@i5)/j5J2@#@C@g51@@s@}E* " T}~k k߈@!͚ j!T+9' c9@ #@+@C@'@@9@9f5ƀ7g51i5)/j5J2@k@ks@w@ho@5 S9'@[+@_@99_I_S9@[/@_@99_I_S9[_@9_I_     f @_ T##@/@+@@_MTx`|E*)T|~Ӈ߈@@(!Țj`T _kT@7_C_9߈ ߈7k߈ kT  Հ5s1f  @5!2@ 7_C_-  @_ T#@@'@#@/@MTGx`|E* )T}~Ө߈ @@I!ɚ?j`T9͂΂ȨgKTF T3_B_  Ԙ @_IT#6߈46!!ȡ6!!@6BB@_kiT@@  Հ50@@6!!@A4"  Հ51#_C_  Հ51#_C_#_C_#_C_6!`"CSc} d6Х@9$;_aT$ț#  Հ5Q1@@@#_C_7  Հ5A1#_C_Jy @_T#р5@5Ȁ@TJ_A_/ @_T#р@PD9P96@95!"B 5!#_c#7_B_"  P"@   @_T#G@@5BB@9_H_@;3~@"3@aP@@G@;@A # '@h@5!"߈*8  Հ50 #@'@?P5! #@c`P5c`"5@@A  Հ50 @C9h@Ѡ5!!@5_H_ /cT#@e  եP@#F' տP/@P+MT;  Հ5/ +@/@?P5! #@c`P5c`"5@@A  Հ5>0 @#@ _H_C9 @@5BC@5@D;@7 k7@P@G@!A%, @_#T#р@"5#@#@@!@C9#@@!`D9j#@@!h@;9;@#95BB@5"f4+(#@+@@BPD9"F"E#EkAT 5@95@9@e@~@!@ Ak@`6BC@49#@@!h@6B7 @@9!9`#@)#@C@ch@c@D!|{R[rkT5c@ck-T  Հ5.#@@!h@@@'  Ձ5!/@9#@'@` @@h@] @c@9#@@9@C@9@9#@9'D@PD9L'@@9#@@95`@9e@C9xc@9@@9#@@95`'@  Հ5.5`@9`@'@@C9xc@9 '@P5!"@@P 5c` #5!  Հ5 /#@*  Հ5/'@@9#@@9'@#@@9t@C9_F_֪#@"@ H9|    ' @_ T#/@9͂!΂Bȡb_KT3@ ջW@@/@?T@ch@T߄c߈߄߈*|B*T7;9_E_ۄ#  ./@tS?T$@ B_ 3@7;9_E_@/@"tS_T9@ k`@/@@99@ch@AT߄c߈*tSDmTa  #@o.@7@;@99_E_t{ @_T# @V.@9_B__ @_I T#5@9@@J9LA#9 i@~@`@  @ `@@:@Az@@!DA@ ?@@;9c@96cd@d5?@ ! 6c@9a@a5D 5@9@ ti@~@I@@C9_C_ @_T#'@9 @"߈Bs_q!T@(@`@  @ `  `5-  '@Pa5! "@@P c5c` #`5@!  `5-_D_ !߈'L@8| '@ @ @y` '@8?@9@!߈#L@7| @ @ @T` #@h~ 7 \g @_T#Ѡ5@9@h@V_B_E @_)T#'@@""5"5"@!h@!@?qT'@5!!@9@ h@s #9@ c'@$_D_ @_)T#Ѡ5@9@ h@s@#9@ sc'@_D_@_IT#Ѡ5@9#9 .h7@9 @"߈Bs_q T!9B9A @O@ @"@977@! @`@  @ `7@  _F_ _Q@+@# t +@#@ h(@ $ @ j9 d '!߈7L@8| 7@ @ @W` 7@'@9@!߈3L@x7| '@ @ @2` 3@h~  ҏI @_)T#Ѡ5@9@ h@s@#9@ b'@@!h@@a@`@  @ `@'@ c9_D_ @_T#Ѡ5@9  @#9 fb!`6~_D_ @_ T#'@'@C9&uc@9`6@9d5ḥ d5_6'@;96@e5?"ҁ%t@?t@@?9?9@g5?|"s"p?|@g5?|"h?9@5?D? " _"]"Z6BB@B4"@_T6B 9B#@`bAg `x@96@8c6@8_cȻ?@`@  @ `@tBb5h@ [@@@@9ޑ-_D_'`> '@y`  4S#р@@T(@T@#@+@@c_B_X7 ~  #@! @9'@+@ +@@ 8'@"<@A@8@@_T@_BT!@5!!@9a!='@+@ @a5!!߈a4!3'@+@ @@!h@;9!fa4!;w'@+@ @@"h@B@"@9@!h@?@Ap@?ha"a5!!@a4!3X'@+@ o@@!_D_ @_T#@@8@@@@ @}@  @t-@ @k@ ~ 6 ; @_T# `5)`5߈4`5*  `5-*_B_8 @_ T#р@p@   a5!q)`5?k-T @;9"6cc@9@{|@Dk @[_kaTD @%5BB@9"e @c`5 @"@B""?qT`55*  `5)_B_#@!@9! @"h@B@"9@h@@!@ @@8 @<@_T@_"T@3c#'+/3`@@@8@@_T@_T!F!4B@ Y@@!_G_ց @_)T#@ @A@@8@@@#d@ @e@a@]@  @T-@ #@K@ `    @_)T#@@A @B@C@@@#>d@ @@@@  w@ -@ n#@@ e8`   ӏ @_)T#Ѡ5@9  ~#9@ V_@h@d5 l_D_ӏ#`5k@T/@@@?qT6BB@9[|@#k ;_kaT#$ Y@9_E_a5!!@!9!*@#F@99_E_@9_E_9_E_ @_ T#@ @ A@B@W#@9@ 95@9 @_C_d @ P @@"@@BB_kT4#р@h@B!@?kT 5@9 /c @@h@@!_C_ @_T#@@@h@ dc_B_ @_IT# `5]'P@ `a5!"߈4 `5K(  `5' @ @9_B_9_B_ @_ T#'@@@'@`@  @ `  `5'`5`@9'@@C9qc@9@a5!"߈4 `5'@  '@?Pb5B C@aP d5Є Db5B@CcC"t@_9 `5'@ '@C9o@9L'@C9h^_D_y @_T#Ѡ!-/ @[a73_E_B@d š_0?kLT;#!>;#@@! @?C @_)T#@ @A 56 @@@@A_C_ #[3@#cȍ_E_ց @_ T#@ @AB@C@D@@ @@h@ @c96@9@_D_̍@_i'T#G@%@ "B"9ᛀ"B}_`qj#T/7@h@;R @u U @+ +@+@@@!߈?qAT+7"B @A@A"#_⛀_kT K@ ^6@9/@@!`@!B9G@@I @@9a5 @!!667'  7@/'@ ! @?kmT @ !} L/@/@+@3 } #@+@  @ . $3@G@ <W@+@ S@ @6@5+@#+@"G@@$/@@`@@@`5#"C9oc@9`6@9@b5BCc @b5BC_cC6@" A#$A# BDDB|GBd|Pӂ"$a+@A9?raT@A9@H;@BB_T6!!@9|b5BCc |b5BD_ȄDȻa<aB+@ALB!5@9@@ `+@/@@#?qTB9` [_H_0 ~ 81 ~ @, @  A @ _IT~#6%kTA"L@_@_"@C@B@7 ! Dk|@; 0@;@?T B "cc A7@>G#~T  A +a/@3!6 03@ !@_ T }3@AAL@@6@!5AC@;T  A F/A- @;@@@6@5A@Aܔ_@_@1 Y @_)T#C@9@!߈?q! T@@# T 4C@|?@"GP    qT_G_"_qT "GbCP@##c#C@c /@CP /3@b3 @CP @"'  `5#3@/@'+a5! "@P'@ @@#a5!"@P@ `5@'A  `5y$  Z  @_) T#@  `5^$@Gb5BC@c5c c@ `5#@.  a"P@B @ 0c @@!#_C_#_C_b5B@DDGbP B?q*T a5!"@bCP@#b b5B C@cdP@D @_)T#@@u 3 @@@@A_C_ߊ @_ T#7@!G  bCP@cC@c '@CP '+@+ @CP @B  `5#+@'@a5! "@P@ @@#a5!"@P@ `5@A  `5#_F_# @tB5!@2J @@tB!t@ tB5pBa5w_B_ @_iT#@: P u @_ T#_A_d @_ T#_A_T @_ T#_A_D @_ T#_A_4 @_ T#_A_$ @_)T ~#6cd$4gA5_@ _ք@c ~T8kMT`@<@8@߈5@@eҬҌWA[A _AcAz+_/@_@ _ TgAA|AdA% z+o_/@gAҡACA cAz+W_/@gAA2c`/c@WAiTc7! 1;;A@c7@@?!@1CCA@; G!1KKA@;64?T`5"cA z@!_@ _z`@D<@E8@?T3  zC+^/@3@ sz_!?jTxaHTT3 }gA3@6c@{N + #64! 1##@@/@`5" _E_ց @_T#3@ @$? y$#86Є@e5#"@8őB_JT%F˥ ˿{' @g5؂ @ @a3356B B@ M@@ 3B5B2C@B@$|_|[$|E%˥7*@ Ś0|@bTB6cd@9D0帄D_DB5B1A@B@T@%b@9!B_B_B_֩@ ` | @_T#?@a5!@"B"EE_kTA!}Aha  b5BC@#P Aa5! "@ #F   b5BC@#P Aa5! "@b #a5!@"B"tS?MT@h@+9ۄ  ?@ۄ# z ?@pStSxS+@ P?@`;6!"@b5p܄|͂"  #@   @ ?@6!!@!4?@ӂ?@8v )C?@ y86!"@b5@8B6!_T! 'x C?@@C! ?{#6Є@5'@%'@{!(/3co?@ @7M?@ ?@V?@< ~_G_&& @_IT#B@FCcx`6Є@6 @˅6Є@e[9CITCT_   6@ 6  P  6Z _C_y} B @_)JT#6 aH7ˀ_k HT[5cd@9 GG~#9@ #V I@a5!"@Bc5cd@[Bb[ ˀC|c|_c|[cc|c|E_D5/@_kT  6 h@5/@ˀ?k T?TD5/3%? S+@[A5!/"@C5c/d@% ?@A?@A5!/ A5!/ 6@5[@D5/B5B/[@D5/@5/ˀC5c1b@d@e@__k Th7TE51E52@(6TB5B2D?3; *@;@A5!1 A5!1 6!"@5B5B1CB5B1~A5!2"@C5c2d@Х3 *@;@A5!2 A5!2 6@5A5!2#B5B2^A5!2  6 rˀ_D5/[ O@Fkˀ[_D5/_k-T|@@@*TkCxf!3' @kOU@5/@@C@"'TB 6cc@9WO@ @5/W@S@h@_k T5@9 Նs #9@ US@@!h@-Y[ˀ_D5/5S@@h@ @@h@ @*N5ХS@@h@@?)T@5@9@Y6B _[ˀ cxd{c[ˀ[k*Td|@E5/@@TB5B/C@kT  6 -ˀB5B/C@?TC5c/a_C5c1c@?hTC5c1aC5c2c@?(T@52  6 ˀB5B/S@cK7e|@F@G@T@xeh@aTrkTigˀB5B/gS@K@ F5@@F5  է ա B5B7@B5B7_@kCTBqAT@57@fG57@ @?To3 *@@#@B5B7A6!"@5B5B7CB5B7&K@B5B7o@ˀ@57fFy#@576B @k_L_fƌ5߈߈7)߈kT@NLJ8642@><l    @_iT#@@ @ M5@9@W_B_#р@h@'@"@#@c5 h@@@@_D_"Bt@ @'!~ 3@t@ @ *@8~ !'@bi' L" ~ Ձ @_ T#р@h@a # "@_T"@_qAT5@9W@@@h??/_E_ @'X~ #@@l= @@= @b` '@   ); # H @_iT# @5@50+!_kMT  @5_B_% @_T#6@96@9_F_6p @ 52@96@9`@#9 @6!!@ ##@6B @?kA5! "C5cc@DE50F5pG5@@kT_F_֤ 7.'+#@ 6 @aQ@ @6B @@5&@5/@@_F_B_*T#xb{9ctS-T_F_ր@  @5T9 s[9@ @_aT"@ @5@C@@5 c" Al@@_F_5  P  @5b  D/+'` /B@  +9`} @|@/@ @ '&|,  7 @_IT#@@'@C9ec@9'@9 @!߈"sCqT_q`T_$qT@@!_D__D_'L@#l` m@8` d'@31  ΂ @_I-T# @5-@5p!  @5A5!  +  @5/@/@+@+/a?`Rk / UD ՎD6%@?k TA5!!@a4@ A5!!߈6c d?kҁ/@/@^  @5@5߈`4@ @5߈6! "k/@/@<RP@@?T/@/@3@A5!   B5B[2@@B5B!A"A@@ca c@991  @5A5!  A5!?@9/@/@// @5-/@/@// @5 D4>@@3!@ `4>3@A5!#60 ߈4ce$f_T6@9";_aT"țl @''@@ #@ @5߈@4t3@v@/@!k 6! !@9a6!p "@"56BC@56c7c63@e2@6c`#c#3@e2@@㧟3@e2@ 6!p 6B3@e2@/#5c@1f߈F4   51 5@1# 5 1@P #   51/@6!p 6B3@e2@6c%ck T+@H T6%kן#9"3@+@H~ @_T# 6 /@!#5c/d@e@?Txa#@'q`TqT@@T@$fT/@@@@#5c/#@'@淟ҿqT@(@T(   6 @c_E_ֆ߈߈7)߈kTkTiF5߈G5߈k@$fT  6  #@6BC@9'@{|@$k '@;_kaT$e5!!@9U#@S#@@!m@@@  6 /@@#5c/@ZĀG @_iT# 5/@@B_ T$xb@qAT9C@9@9@@@#9_D_ @_ T#@@@?`T"`@#@@T@C9$D6B%B5@c#9@9_B_9_B_9_B_h' @_i@T# 8B@+6!`"@B   @56`@OA5!!@OB5BB@KC5c cGD5Є@CE5Х@@KF5ƀ@GJ@ - +@O@aAac!|@!R @ 6 ` ` wO@`|-  nK@G@|@<  bK@# YG`%@ PC #C9 @5@OA5!0!GB5BBCC5cc@K`` 3O@t@  *G`&@ !C`>~ K@Y`#C9!5!/"@[#@CD#C9!5!/[@C@T;Exd@߈3߈+@ ft@7@O@K@?GtS? @ ;@[`! O@`@a K@% ?@ (@ 7@7`h%A +@3@*`%A G"`a ?@o 5/;@Fh;@ A`p8@ ^9+@3@*V 5/@!;@_AT*  tG 5/;@f 5@@5_L_S/t@OGC|@W@C; 7 PD99 TD99 @ HO@ $~ ?/@< 63@`da -G`&A $C`=~ W@C@ @ @ ;@, @ 7`%A @9#9[``+! @9#9R`+! /@e4S@@`h@`@@a!bBL@3/ccL@rp!;.@5B_L_]~ @_) T# @5@5`@9@9C@!!@!9@5 @5@C5cd@PD5Є @fPF5'B5B@DD @5'  @5   @5_C__C_'C9'4A5!!@5} @_T#@5`@9`@@C9A`c@99_C_@9_C_} @_T#@5@@A @5 !_A_} @_I T#@5@A46B B4" C?k"SkTkJT_qyb! @5@#P@C5c B/_D_'@ c90/@5@_kT/ @#dP@D5 /_D_ n} @_T#@9߄"߈5ۄ @߈5"5B2A@B@@c_|[d|Ecc7*@ Ú0|@BT@#6BB@9!B_B  @_C__C_? #} @_ T#@9!߈C߈7B߈_kTkT 51@@@C_|[d|Ec7*@ Ú0|@T6!$@90㸄_@5@C  @9@A5!"B@A5!"_B"_B_*`  | @_) T#B5BC@# $5Є2@@e_|[Ӧ|E˅ 7*@ Ś1|@bT6@90_$5Є1@@e_}[Ө}EE7* Ś0}@BT%@9!_`@@@9A5!"BA5!"_B"_B_yw [| @_iT#cA9'@+@!+@@'@;9"B߈#Ed˟qcT 0@9 _D_"d}@h$ a_D_F76@9a{_aTațb_D_| @_T~#~T_D[DBB|A_q T'B 9|}ӆ}hgh%kT9E6@9{|@k_kaTC|}+Bh# 9_@_|}ӧhgPk"T|}Ӥhd9*T1@hc  @5 @@?PA5! #@c`PC5c`"@5@@!!  @5@9_@_!ң8? ] {u @_ T#@9!߈E@G}h'Be@Fq"T  ՅP@f&*@ a@   @5 @@@_PB5B D@dPD5CA5!@" @B"|  @5$_B_/{@F!76cd@9D [_aTDțe @c9_"߈E_k TD}chdD6@9[|@$k;_kaT$ c9_ c9_@F76cd@9D [_aTDț6c%  ?P@AP   @D߈E˥4qHTg@9|@Fk[_kaTFG#_ B!_kTF}chf P@P #_ @_ T#@;@@@9[9D߈F߈|A˦5C DF E@qAT @ <@;@@@9 @E76@9 һ_aTț qT6,6 @9|@k_kaT 6ҵ9!}h!@C_B_C_B_9H)}ii)}h)kTC_B_z @_T#'@E/+@ cA9s9v#@`4/@BC}@hcqT'@߈! qT3_D_3_D_3_D_֠P)}  y @_+T~#@@?)T?T@ _@_3" xb3@@@?T@6!"@9  Շ;6@ @@@6!;?+@ O _@_7 @@@?7@@6!+@;@?@O@@@T!@9 V;@96@K6!!@G@'O@@xcq5 @@ <7@@/ [u ) @/@   6 @} +@`W@@c -@@CK@C@ < c} '@+@BW@@ ,@@C)@C@ t`` nAG@;@ _@_քh!8!(T҂C|cCd?`Tf?`" T@h!8c}!! ,@@C@C@ 7@ } 1K@?@h!8!(T҂C|cCd?`T)?`T@h!8}!! n,@@C@C@ @ @ C@}}}}@ R wx @_T#@ B(@$bӄB˄t@|@cKT@@c!!t@!|@@4D*djTBA`?ෟ9_A_9_A_ּ Ax @_T#@ B(@$bӄB˄t@|@cT@@d!!t@!|@@@4E*TE҂!@cdTA  aෟ9_A_9_A_w w @_'T#W@@g@%T@Kee5?@ s@@9K@g@?@W@e`e4@ s@ Yc@9@K@g@W@ ղ_J_  e$@(@4b[@*T|}H@h'@@4*@s@( ?*TT|}h%@@@ @HT!} @* ? TJ h'? T_@@_ Tc T넰BBB|Bc@TC7G3; }&W@7@C@;@3@G@s@y"@T?(T4o@y'? TFxd@?T$ a"@BB$bӄ"*B6Є@9b{_aTbțs_J_B@QK@53I/,a4?1T"6Є@9b{_aTbțe `_@D!`!!|`!aB_J_h 4`}`ө6)*@9h{_aThț 6)%4/*/ c@#'W@g@6)  v @_)T#@9 "C_6Є@9#;_aT#ț_B_v @_T#+6!` 6!!@5@"5BA"5B@E %_B_hv @_ T#Ѡ6`B* @6`"5B 0A"5B@0A6!"@5"5B0C"5B0 $6`6!"5B0kT/ 5@b|@!xb, @@#/#5c0d@e@@_bT6@5B|ӆh"~#5c0_E_ v @_ T#5!"@6c`d|@Bxd+!*|@ /@@!5!0 !5!0 6@5!5!0#"5B0~!5!0b6!5!0+_kT/5@6c`dD|@!xd[r 50@@/ @@BT"F6@5|%h"u~_D_~ u @_T#@ҡ6! 6B_6cd@9@% @;_aT%ț&D@$@d@9%;_aT%țd @@A T @ T  T ;  T`@9 "B $_Ȅ$Ȼ[@_T [@T`@9``"``#_ [@_T {`T_B_` ` `l `l `$  ڶ` Զ`~ ζ`~ ȶ`~ ¶`~  tL @_)(T#/'+g'"ƙjBg!!@Csd ?0_ T@ ?0B@@[s_T/{@/;Rk!T/;RkA!T#@#6!"@9|@bk {_kaTb#@qaT~# @9|@bk {_kaTb#@qT#"@9"|@bk "{_kaTb#@1T'@9999$@908_@9q!T@9qT@9qaT@9qT'9999!@9#8!_!@9?q T@9?q T@9?q! T@9?q T g `` TT! g@ ` T@T+' T@'+@ T|@" B0_ qKTT|#@9_D_ր ҵ8 ~ ̵`2` Ƶ`` @ `3` `2` `2` ` @ `@ @  4.~ $.~ .~ .~ -~ ~ -~ x`/` r s @C_T#@6!% 6!% @ @ i@@@C@A 7 c9$@7@@ @_T _TBB7@`C' c9 @6! '@_#T _TBB7@`?8Td@һ [,Td@R[.rkATd@yRkT k)@@96! 6! 4 @@T#3/)6! 6&6!&! 6! &! k6!% 9`'` @@ k`20@6! _I_`@@@AT+?; @9`3@#@@7@4 /@?@+@3@@ )@@9|@_Ta;@ 3@#@@7@4 /@?@+@T{{{{ r% @_T#3@+@? T4@@|"@+@iT'@ z@+@'@@_D_@h#8cHӟ T?mTT{{ r#@9?lqT< `_|4!"h` @ _ @_T#р@ !@996BB@9@#c@$_$#6!>cq_C_=r @_T#@@9y @@4!   @@"    @@  @_C_q @_I T#@96BC@9$㸄%_%$61T;Rr+TB@9"B$_$5 ' @@ @ @   @"?qTB9` _B_֠`  q @_)T#+@/@@#@TFx`xT|ӆhf?T9` @+@/@@#@@_C_z q @_T#/@B#@+@@BBxbxT|Ӧhf_-TGрxgx)T|ӧhgT9`V @#@+@@_C_tzrz Wq @_T#@@ 9"C!@# @"(@#(@_@T" @`) @ @@` ! @9_B_*q @_ɝT~#@9@@_@@T@9oH냚T+W6) )@i ?  2@+@@@@?@W@! ?T)|ӊhiI@*!A+%A+!JE L J}GJ l}Pӊ *%ij  * *J} K`_J TxkxBTx#xx+x6)+@k5_ J! Ҡy  hT y!xA?Txax?T)|ӉhiSxjx?cTci y!x) yix Tk|Ӌhkhgx y)x?CT#' @+@'@@@Txex{T/g|hhhclT9 @b5 Շ6k6 @ I^ @ @_ ITCE9D@N[#oW@* W@mT9/#@@ /@@99_@_?@J'@+@W@ @ o@ Txgx"GT?/S|`h`co@[9@/@6@5[@E[@x[@@F9c@@g5C G`x_#@G@5c@H(S@" H@c@xS@ x  @?-T9@j5_ J  x A )@@5Kb)H@ xb x x @5_%)K@ ҝx!x x w9@j5_ J  Ҋx  !@@5Kb!aH@ yxb vx tx S@5_!MK@ exbx `x ?[@9 k6 @i5DPx@`!< c9}g9@2[@9@+@ W@'@[@xD@6BC@c5Dk@)x6B@ @d9E@5 (`x@x6BD@d5o@x6Bg@W@+@'@@ +?@@W@+@g@'@@3@@9/@_@K@6B@W@'@@  /@@93@Tx`x T Td@k@9 K|Ӯhn? T9m o@p@0Cq@oN@5 "wb@C@w үwo@w6BM@5) " ҞwAC@wo@Ҙw6BP@5 %|A҉w!w ҃w6BK@n%@ a TM@m5g! swAqw6B\9m o@p@0Gq@oN@5 M"Ywb@G@Vw Swo@Qw6B<M@5!6 " BwG@?wo@6p?kMT?@"@B`@G@@TB@B߈Bs_q?@G@b5AO֨6p @`@?A?@@`@ 9>c?@66p!6@5BB@@5B@B@@k T } Ӫ@ "hҀ "   ]_K_3hb89m@9Q3@/@C@/@?T9_@T[}e|Yi@Ri 7` @_)T#р@`@?T @ qT @T `T̗@@qT` 4!+ @@ @!. ߟx(qT @T @@T B9 @    T@#h& @Ɨ@@,qT @@ @@T B9 @   /@ĩwh& @@@TTH>@ b45b5@" 5  @߈sq`To 8@@k_Z#+@ +@?T|~ӂ6B(A" _  @ ! @ ! @ !+@ ۓ+@ L  @ ! @ ! @  \_B_{kh  @_)T#K@lqTqcT|}ӂ6B:A! kK@ @ 6@96@9@@+@@_D_K@  } `!@! <@@K@ _D__D_ _# w_B_ @_T# h @ W+@  N!{  ^ @_T# h @ 3+@tX%@ *   ^ @_T#Ŧ h @ +@P` ٦`` o ^# 2@96@9@4'@4!'!@ 3  \`@ yC@9@ #@ _C_#[@q T|}ӂ6B:A!B4c+b B|~ӄ6(c߈46cc@9#4q@T3@7@#eE79_E_ @`@ `@`D99_E_@ T[@3@7@i@9_E_9_E_@9_E_?`TA@6@9_E_a u[@ v9_E_3@7@i@9_E_9_E_#@9`@ 2 _C_@ 2  _C_#';@*@!  0 ' _C_ @_T# 37 2@9@@@B(@C@B@#,"0@B(@B@"4@B(@B @"8@B(@B@@"<@!(@@"@!(@@C#@!(@B"@!(@" @X9 @@!(@;9l@@@X9_D_o] @_ T#т@B@' T*_TB4c+b Bb87d6@9%e6@9_r`T*@ š_0'@"'d6@ Q_C_{Kf 0]#р@XD9(@ 0@,@#"4@"8@" <@ @ ~3 6_D_#'@@@!@ !_D_ @_IT#K@_qTc6cd@9@e6p"@e6p"_F|E*T|~a6!0"!߈B@@ š_jT`@9!_!C9_D_C9_D_a6! "'@jaTi@9|@(k;_kaT( i`@9!_!@C9_D_`6`"߈?q(T5a@9;|@k _kaT0a@9|@k _kaT"?q`T? q!Tc6c@e6p"@ 9`6   c6ce6p"`@9!_!@C9_D_ր` @Me 2\9 @_T#р.@!   \ @_ T#7@3@T/@C@d;ҟCT$|Ú?嗟$|;ҟT|/@C@ |A@ c9@@@?T#B 5e#@@ @c9}@@b6BB@9"#;@ #@@#;@ e#@?_E_ Հ.@!  [ @_ T#@@'@#;CT#|_嗟#|;HT#@_kT @c91@+_C_ ;T |! Հ.@! Y;T Հ.@!  M!B◟ |#@#@c[ @_.T#C@G@_ -T7@@%FT_j*TN `6 K?@OS_F_ֿT @TTbBC_&Te29hb8_%Ta2!!xbxbBG_b$Te2Хhb8_b#Te2xbx a@iT bAs;◟?@ Tb}_ @T_TBBC_Te29hb8_Ta2!"xbxBBG_Te2Хhb8_Ta2!"xbxA@? T A"s㗟?@}}ACq_TBB@?@ š šh š!@TTCTh29i`8Ta2!(x`xGTh2i`8Ta2!(x`x @T s))%š 㗟%š:?@F||;Tc| Ś藟c| @TTc`CBTc2c9`h`8b Ta2!#x`xc`G" Tc2c`h`8B Ta2!#x`x`@T `saŚC;_T#@c' c9@+@'@A c#@+@ @c9@#@Ab6BB@9+;@7@@@ d+@#@+;@ c+@K?@O@S_F_ր.@!` >c!@c:c!"_KT|b6B _h!A? T_ @_ T#cA9 T@za6!>  @5~ @c9vc@@y5@cA9uB ?A04"@"B@@yBy@# h#@3_E_`t  / @B@D4@A? @T@ i@@@0?@      ~Ib .Y @_ T#"6B`%B@[9  @`ZP TBx`DHeMӥ0}ӄhe9[9BB@_qaT@A9BT@za6!>  h@@@e@yCуyc6cc@5_qTA9T@za6!>  Vh@5! @c9f_C_~a~a#  ja X@_T#CA9BT@za6!> CA9#9 @@"CA9ud š_0@@T  @'@9CA9!|@h!@_D_~a  U@_T#/@[9A9"T@#a|haE@fzg6>@@!@A9C91A9uC ?a0@a@@T  @:@@#@Ah @@ _E_~Va T@_IT# |  @@9@?qbT9zb6B>A h'@9@9C|$!hc _D_ @C9'@@9@@T@_IT#т@C@T@djATd6Є %D5 @qTi`|M!`6@! *36! :$@K3@O_H_`8*@ ABT3#  `6#@T|b6B Ahaa/@ g/@  a6!@`@53@ @c9a@@4 @ KO_H_  ]aқ`!c|A qTCh@cB@""@_T9 zb6B>@+ @9#9 @ +@V@@!b @[9#@TC$|efhd;7'C9'@;@&h`7@@@bh$@Bˢ~T`~Q``` $7   S)@_IT#W@[@˦!TTd6Є %d5 @TCk$6`%@9  `ZP Tx`HcMc0}!hc;99 @qT`6@4 @5 @c9d  @#'_J__J_ABT+/  `6/@Ta6!  +@ f  `6a_? @'Ϟ'@S?@c    j_!Aӿ TC@B@Dh@dB@ @T9 zb6B>@; W@A9C9_  ;@v @[9$@ӟbTD%|ӆ@ @T73KGC97@W@K@3@G@hebh%@~{_~y_ X  3`% - R) @_IT#7@@@@3@/@@;@ )!?T@+CJik8_E_K@ӫ4KZkZLJ k x+o6o6xk?Tn6΁%n5cT"TBT o6@9  _ aTț@9?@ @#@ ( T#@@ O$~ I@&8 @@՟`8  Uy @_T#w@ @ @@#@9TqTOK{@;9"` @c9(#3@@#@C'@;W_ࣀk Tw@"@@  {@O@K@DC@;@ೀkTw@ @ {@6C@;@w@@T@9_N_@9_N_@9_N_ք`@k@ÀF7 @c@iT{@+ˀ6|@?Gf773 K@ @?@7@G@;@3@w@{@  ՠ5 c9Bcw@?@G@;@{@!,T)!?T*FJhj8+CJ%˚*6*K@ @ T @ )T @ KUN @_ T#@@#@C@TC@TC@a@!@ # @D@TD@TD@c#  #@D@TD@TD@c# #@D@TD@TD@c# #@D@TD@TD@# #@D@TD@TD@c# #@D@hTD@ TD@c# !1 )_C_T @_ T#'@@a3_D_# @"(@#(@_@T{9``'@@ @/@! @ # @D@HTD@TD@c# A@a@@+@B@ ! (^'@@@ @(@(@_@T{9``J@@3_D_QT @_T~#@8@@@C?@;@ 7 @7@3#c~T?@GC@K$O;@e@B9Ǥ@|g@T@ӧ 5 Ǥ@ @  @G@?HTK@?TO@(  b ]  @(@G@_TK@_TO@!( 4@G@_TK@_TO@!4#   @@G@_TK@_TO@A@O@!7@3@!;@!C@!@@O@!@ {@ !1##'+a)?@C@ _@_ ~ @(@ @)1@y) _ (T T T  #@;@ C@e3@ \ ]t W |S/ @_ ]T~#р@ @#@HZTc`@k?!PTaB97 @;T@@@@ `@CT@""5"5"@!h@!@?q T`@``RC@k@a@1b@#_T?`@;@7@_@[e @Wf0@Sg(@>@|< #@} ?@  v;@ @ m7@~ d_@d~ [[@  RW@~ I#@ޜd~ @S@՜< 7@ .C@#@k@a@?T!Tc@@@?Th@a4`B99K#@k@`B9k@k@`@?a@;b @?@;@@ @O/ k@"@#@O@k@C@L!2!#@(T$2@T3}k@3@ %k@}k@Q_@_ր@ITv3  2@ h~ k@@?@;^ ~ #@=} ?@4  ;@+ ` 8$  53  2@ h~ tG2Ӆ˿T/@uT!@ ѓ@6` ˓`@߈?aL@K ~ Ok@, @ FK@ D. =?@қ 4k@@?ߙ`H#@ )#@@ ?@h` `   @;T@`8@`<` @ @ @ !(+g'k@d@?e@;f@7@_@[@Wj @Sk0@Ol(@@(< ݛg@+@ ؛ @ қ'@g~ ɛ?@^} ;@U  7@L @ _@C~ [@:d~ W@1  S@(~ ?@d~ O@< x@U oBc@@9@@@ k@.{ ʒ{ k@ @{@B@"@@TwG@s(@o{ @G@՚,~ 7w@,  .k@  @ %s@<~ o@dc@@9 @;T@@@@ K.D, m@  g P9_ @_ T#+@`@ B"!B:@A@'@ _D_hP @_i T#@@ @!߈!`7@B`@! T T?q T8@aB9a!!@?k!@!`@T@!Aa6!P%!?kT@; @@9qT_C_@@@"CA T@!! ?BT_C_ _C__C__C_`H.@ @`  ܑ@3  ֑`(. ~ Б O @_ T#  @Ta6!>"3 $3@ #@0 `6*T'|b6B C/Aha  `6_G_ @+ "_5@ @c9]'@/@+@C@D@y5+ _@5! @c9]3@#@+@O @C_:T#o@ @a@c@_D@aT @ +s@3c@_@+@o@+1G@@@IT?;/H@9qT#HI @ i66C``! c@yo@+@_@G?@;@/@C@c@@B)Hk(TEkTS 7kJ T B |C||@B[O$@(@Ck @ ?&@95 "&'!@G6 6G`! ]c@:,o@+@[@_@GOG@c@ @kmTOd 7k* Tk T c|C|c|@! @9qhT @cc66KWKԖ`  c@fKW@[@K@O cc@d@ c _M__M_ A @[@7O@BO@6` Gd`< O[` ~ ٘[@7@ Ԙ0` Θ+@cp  Ř H*| .  @[@7o@C @?B$@;a  @ [@7@    ?@5 @ ;@,ߖf 2|  @[@7S@BO1 6` {G`< rO`p% i[@7@ d0` ^+@p  U( H*|  @[@7o@B@3  @ =[@7@ 8 | 23@;@?@× @ %/@m 2|  M& @_iT#4@\@907_B_t, p M @_T#_@? T[@}`ATW@[@@?) TD|[@hd@GKG@@@T'҄@W@[@$ Z@@@@@_@T+;[@?T@|Ӡh`!@gk_J_ _J_TVgk_J_@ @? @ aT??7C/3' V/@'@?3@;@+@_@C@7@?@CTB) T;V!VB@G@LT?Tu`@ Î LW @_T#;@?@#C@'G@+7@ <@@KO_F_L @_IT#C@G@#K@'O@+S@/W@3?@ @@@[__G_L @_T#K@O@#S@'W@+[@/_@3c@7g@;G@ ~@@ko_H_mL @C_T#~TS@W@#[@'_@+c@/g@3k@7o@;s@?w@CO@ @@{_I_8L @_T#'@`T@a T c9@'@+/#@ U_C_#@@92! +@/_C__C_L @_ T#'@`+@?,TT? T{ +@O @@@@@/37;?_D_T{T K @_iT#/@ 7@?T||{ 7@= @@@7@_B3@`T# hU#@@@;?C_E_K @_I T#;@?@! Teh`8qjT 7@@;@?@7@?LT~T?(T{G @@@;@?@+'#x&Tghe8qjT 7#@+@#@'@;@?@@#TCGK_F_[T{aT >K @C_ T#G;S@"x~ #7;@@+@!+W@_TO@ @3@7@C@/@?W@S@+@ ;' $D$ #7;@@'@ W@S@+@C@3@7@/@?@W@S@+@Tx?T?iT ?T_c_I_ S T J @_iT#/@~~~ ~$@@@ @@# 3@|@ #k7@@_T#@7;_E_S J @_T#+@ c9.@#@'+/3_C_J @_ T#+'@_ @T_TC`CTC2c9`h`8TA2! x`xC`GTC2c`h`8TA2! x`x @@_iT A s c9@'@@?@TC S@'@@+/3_D_ցMS!OSIS!KS ,J @_) T#+'@_( TC~ @TTc`CT#2c9`h`8TA2!#x`xc`GTC2c`h`8TA2!#x`x`@T `s c9@@'@?@T# 6S@@'@+/ B3_D_ցR!RR!R  I @@"@9_qTcc@!9_cMT%hc8@$qHT;3;3;3;3(TѿT9_9_9__qTT_q!TҟhT_q9_ր@9_9_#7@,@t@ ;_F_#@@a@bt#'+'@ c9@T@;_F_#@4@(@A4!`(!@  _C_@ A$A !D#!|G!C|Pa$@ _ @_ 5T~#~T@ @@`cj%T@@@h!@сс!!}A6!%@e5Q3 @ @ 4 @@6@3@t@@"@CC @%@& @bT?_;@  @#@?@@;@C@_@_)T?[A !Bcb C@@@?@@@6@5[@D [@c@Q"@B"@/WS [3@/@_ 03@O@7W@@9 qT  @66K@! W@ϒ:3@O@/@7@K@W@ @d$GS@ 9;6W@7@O@DbTG@  W@S@ d@@/@W@3@##~TgkosS@@D@F @G@BT@  @@#@@AA6!$@d5C c@PED6Є@5#C@;T @  #@D6Є@6aT"@;T@6@`5 QPO9_@_ցT"@;T @@? T@@6@5`@;T @  W@6c@@@@`5 P"@;T@ @@?CT рр @6@`5 }P@@C@@ 9;@@C@ן9_@_@P@PlPP GS @C_)TC~#  [@C*G@`O@ _@C_*/@3@;@/3;O@C @?@7G@C @@~T@_?@g7@kosK@wS@{/@3@cT;@B B;@ @@#@@/@;/3@6@5@;T@  @6/@@3@;@W@eC[*;@/@3@_@C_Fr @_ T#@  @/a2!,!A $ H9E6Х3@@@"T@ k@@#@/@AA6!$@d5CO3@ E6Х@g5x$O$5$@ @"l@#h@@ @3@ @6@b5#"mO @"t@#p@@ @3@ @6@b5#"ZO/@E6Х@@!?*TCxae`G9e4D6Є@e5CEO@@?T @5b2B,x!c2c,7O A6!!@94! /@4! _G_gO LF[ @C_0T#o@C@d@71!(Te@9'5e@9'5e@9qA'Te@9 q&TC@@AD@$*T|fghe?$Ti |khjbTA8@C4@@b#T'@"T#;73T@c O @@o@O@'? @@o@CD@D@@#@"T3@hf;@)TK;/7@h`+0 K/@K@;@ C0 @ =+@ҏ?@'@ 5o@@@;Kݍ  'K@;@ "Ѝk#@o@҃EP@?i T`@A T@T@|aha? T@@A@T; _M_G@o@;@$@;Tc@_@[@@@T7G 7@97@;@? To@@K@;S@CW@7@+ ӏK@;@ Ώ`< ȏC@7@ Ïx~ +  %cN;K|Ӏh`/]@ /@<ۍK@;@ p@#@o@_,T#8@$4@%D@&@@_T@)T @@o@CD@D@@@T,N-N&N@+ ~ NNNNN`@99a@99b@99c@99 6 U7@@9@9@9@9ގo@@@@@7 ;K  /K@;@ *Du @C_iT#O@@ @aC?"@9_ qT"# @BB6!6/@  C@ݎHό?@/@C@BA @A 3 O@9;7D T3@  C@?@ { @7@'C@?@ O@@9@;@+;G c8 @C@!@'@ A6!"@57@@7@M+@!@5;@;@MGS_I_C@S_I_S_I_lHM -Dp @_IT#@@B2B, @ @#'_C__C_BACP@TCT@)T @@#'_C_C#@@2,AP@_TT@_"T`P@CdLL@c,HӅ@@ Thc8cD@@@?kHT#*BTe||Ӆhe_T_B_e*T||ӆhf_T*_Tb||ӂB@_`T8@4@?iTa_B__B_LLLc*Te||Ӆhe_bT5C5`p<` kLL|L  @_)&T#@4o@ k@CC{_K__@bc@d,@e(@f0@ TKH@7 _˄ &C9@6p @4{_K_@@Gh@6 ~ G@G@"  _@37@A@ s?9@#@'@CA97@k@To@@  " A#$A# BDEB|GBe|PӢ"$C!ybB|ӣ@ hah"CF _h!@ _3@{_K_C6cp c@ 5C9 ?;O_@c@ @S@C7@G`( IS@C@ D~ >G@ӌ&@ 5k@ʌ= ,O@;@ ?@Epc@,@(@0@K@ T_@@7_!cB%{_K_?;O7@G# @ _x&A G@>Ŋ_@?@;@O@7@@ s9h@#@'@CA9#@+ ~ EKK jTey%@kT|ӥhg_T {_K_SB @_)T#'@`"4+@a@c@BT` @@@/3_D_FK +B @_T#@#@ @@@T#h`8qaTTT#h`8qATT'+_C_"KK A @_ T#'@@+@A@B@[BT@c @@@37_D_J A @_IT#'@@+@A@C@$@[*BT|~chd1TA @B@T@2 @@@37_D_֠4 3@7_D_֠4 3@7_D_֮JJ A @_i T#7@@;@ ?@B99;S7@"@;@ ?@B99;S?1T1T;@d @_KT4 G@K_F_W7@ @@GKW_F_֠4 G@K_F_AA @_T#/@3@ 7@@9@;@;?_E_"A @_T#?@@C@ G@K@@9;rTK?@C@ @3@/?@C@+B@O0| \3@/@ W+@G@O@KŠK_G_@ @_T#C@A,@C(@B0@?@@(T@3[B!`[_k?@_3@@ c9@#@'@CA9#__G_I @ @_iT#/@ @k@_kT_E_B|~!!!@3@ ;@?@@9;_E_m@ @_iT#/@ @k@_kT_E_B|~!!!@3@ ;@?@B99;_E_A@ @_T#/@ @k@_kT{C_E_B|~!!!@3@ ;@@9;#@{C_E_@ @_T#@?i T@C@9#5CA979_B_֣86M@'@f@c|Aʣ*?T#@FiTBhe886@*T#@g@Bt~bˣ/ 37@9_B_H*TB@hh8 @I!ɚ ?7HHH*?IT@Ehe8@!ǚc?7HҳH ? @_T#@@A@@A6!!@5@ `@QH_B_@(&@ L q?#C, @C_C_#K, @K_C_#K@- @K_C_#S. @S_C_#р/ _C_#4 _C_#р4 _C_ց @_)T#7@;@{;?C@G' |'@+@GK_F_>#р h@_C_#р X@_C_#р H@_C_#S 7S_C_ @_T# ##';?C_C_t>#C C_C_#р@# _C_#р@# xF_B_#S S_C_#K K@_C_#' @3@|?q@7@?q`T '_D_ւu #'S@ @'@S_D_#р@" _C_#р@! _C_#@6@aq@( p@_C_#р `_C_#k# S@k_C_#c$ ?@c_C_#K@' +K_C_#;% ;_C_#k& k_C_#K/ @K_C_#C@0 @C_C_#C0 @C_C_#K@1 @K_C_#K2 @K_C_#S2 @S_C_#C3 @C_C_#; @<; ~~4_C_#[@! ;@@# D'@[_D_#[@!@;@@# D[_D_# @4JE@*Ҁ @4?E#@!?jT9xa*қ_T }@ @ _C_&E_C_#`@A"A  @ | @#@ |D@A?K_C_ @_ T#/@@?T@@@5@@@@ #c#@!h@#;9ۄ#@@ _#@#@/@ /  @@ @"?qTB9` _E_` }@49  }@T` } ; @_T# 60 @@5]i;@`@@  7@`;9 tS$pS%xScT+!!3 X@@#@7@Ax!6!$@d5Cp܄D|D+@;@%t &6@f5x kD pS#tS$xS  7@tSpS?iTA@;@_T͂B@"߄!6!!@9@B@_B_F_҅D` @ ?} d; @_iT#@9"߈_qT_qhT5j_q@ Tk_qT_qT@ dd@$6@9[|@%k ;_kaT%F  a"b?qATB9! @ @$6_ qT@ dd@$6@9[|@%k ;_kaT%F  a"b?qTB9A! _$q!T@ @$6 @$69_C_9_C_@@9@|@"k @;_kaT"  @ @$6 a"b?qTB9a! 9߄@9@B@_B@9_C_@@9@|@"k @;_kaT"p @@$6 a"b?qTB9a! 9߄@9@B@_B@9_C_q: @_T#'@9tSpS+@bTx`@! TtSpS&T? Txfb T '6@h5x C'6pStS?I T @g5x&CxS_TtaTpSxS ;@'@"pS#tS$xS +@+@'@@ ՁpStS͂ҁ"!@͂҂!@A߄ҁ"6BB@9#c#_c#/_D_ CC C C|*` {C 9| @_ T#@9tSpS? T@@ TpStSMTCx`%6Х@f5CB%6ХpStS? T @e5x ҌBxS_Tt-TpSxS  @ ՀpStS͂Ҁ@͂ҁ@ ߄Ҁ!6!!@9B_B_C_BB| Y{җB |9 @_ /T#3@m-T7@a,/@9߈ qhTqhT4SqT@ @(6 @9|@k _kaT J qTB9% qTq T@ @(6 @9|@k _kaT  qTB9% q`T qT@ @(6 @9|@k _kaT  qTB9% $qaT@ 3@7@/@(6v3@7@/@(6n@ v3@7@/@(6d@9߄ @9 k  _k @@!6!&@5;@ `;@~A  ?@!@5C@ C@oA 9G@@ @}!@?qT h#@!h@;9ۄ" @/@   @c 6@9 @#@|@Ak @#@[_kaTAC7 @"?qTB9` 3@@9C9_E_@9;}@ k_ kaT'3@'@@9@D_qTB9?q! ?qATܟ@9[9΂DfT @9_aTț j@49  y T` y 7 @_ T#'@@9pStS#B9B@C@!TCd߈ q!T"6BE@9~|@ek ~{_kaTe 6@9!~@;|@bk ~@{_kaTb 6~'@߄d@9K_Eѿq T%6Х@9&қ|@fk &{_kaTf"6B~A@A'@@ 6@9!!@@;|@bk !@@{_kaTb@ 6!@~'@@"6B~h_D__D__D_P@ y D7K @_)T#/@+@B- T#xbX'@ N 6@9!!@@;|@bk !@@{_kaTb 6!@/@+@@&6`@`'@ " 6@9!!@@;|@bk !@@{_kaTb 6!@/@+@@&6Ҧ_D_{9d߈ qTqTE 4&6@9'һ|@k 'қ_kaT q@T&6@9һ|@k қ_kaT 'q)Tq`T qT&6@9'һ|@k 'қ_kaT $q Tc @ #qaT[Y/@+@@@&6'Ҟs62 @_IT#W@[9΂Cdd[@ Td_J_EtSFpSTbTx`@_!T73/G߈ q TqhT5qT%6Х@9~|@k ~_kaT K @!6!"@9"~K@[|@k ~K@_kaT??@!6!~W@߄҅&@9_/@3@G@%6~q T q T(6 @9)|@k )_kaT C@ i@/@"3@cTG@; 3G@ c@@#@;@/@ &6@5C@x!C@>(6)W@Q$qT qT}W@7@3@/@G@EqTtW@7@3@/@G@< @ .7@W@3@/@G@1?T _J_$` Ow> r5 @_T#@'@?T#@"x`@ @9!6!"@9"@[|@k "@_kaT!6!"@_C_85@_) T#+@'@{9atSdpS?T@@AT߈ qh Tq(T4@_T'6@9|@k _kaT Iq`T$6@9~|@k ~_kaT '6 6@9!~@[|@k ~@_kaT 6~'@߄҅@9_tS ~q) Tq T q(T'6@9(|@k (һ_kaT iv@'@@ 6@9!"@@[|@k "@@_kaT[ 6"@~'@&$qTO 6~'@@ 6~'@q!T; 6~'@3 6~'@+@'6  /_D_/_D_/_D_@ @ vJ= 0@_ T#;@ @'@@+@@T@?@ Śe7@9pStSxS f;@!6!!@9@;|@k @_kaTC 7@pStS͂"#!@͂!@A7@;@!6!!@9;|@k _kaTC7@9ۄ# '@@@@+@ @?  #@_F_@0{ @_-T#G@9΂҅ҦȃpS3tS'xS+JT/?#9ix`7b)Tj +6kl@l5ix'  H<   }/@'@+@3@G@@9#@??@9һ}@E k [_ kaTE +/@'@+@3@G@#@?,6~@%@% T;e +6kn@n5ix' < 8 6@9!$@;@|@k $@;@_kaT 6$@#@/@'@+@3@G@@?u*TTe )6)*@j5x';  ߄҅(6 @9)_)߄҅@9_HTtx!6!!@a5p܄҂; ՠ͂Ҁ`@͂ҁ@ _H_;;;9*K߈ qhTqhT 4) q T,6@9~{}@M k ~[_ kaTMn4qTq T!qT,6@9-{}@M k -[_ kaTM~%q`TS/@'@+@3@G@@9#@?7@,6~@ /@'@+@3@G@@9#@?7@,6~qT1/@'@+@3@G@@9#@?7@,6~"/@'@+@3@G@@9#@?7@,6~N;L; 12 @_T#  6 m4/@@B_T%xb͂ҦȦjT΂ҦT   6 @@#_C_1 @_I T##@+@?T#@+@?T@x`@T+@#@@@x`TB?Txg@T?T (6 @i5x :? Tx` ?T!6!!@a5x :/_C_:::: 1 @_T##@+@?Tq#@+@? T@x`@Tf+@#@@@x` ~? T) Txg@? T) TxiJ@_jT  ? mTTxiJ@? TTxfk@ jT  T_JT? ITxi?T '6@h5x :?Tx` ?T!6!!@a5x :_C_O:N: L:J: H: F:D:C: (1 @_iT#? r 1#@_B_ @_ T#4 @!4!"@"4BB@9_B_  444 @!4BB@4BB@9b  4_B_     4 @_B_0 @_T#@9K A   4 @ 4@b4@4  4_B__B_0 @_T#e@@4cc@9cJ9;@T`@cW A99?@C@#G@'W t_F_ o_F_V0 @_)T#K@@?@B'$@}Ҥ˟JTr@ K@@+ @D+@"@ S@[@@ q@ŀ"@cB9}_T'`h"8&@&@ӿ qaTҘ &@yh&8GT}T}Th&8&W@h)8((-Tx` )@a}?Tc#@AMT#3/C@ ` y}@+@"@3@ @'@TeѠ9_G_  qydh"8GBT}_T }_T`h"8@ #@/@}8}8yh#8GcT}T }Th#8` }Ҷ8}ҳ8 yh)8G)T}?T }Ҧ8 }ң8}Ҡ8}ҝ8yh&8GT}T }Th&8(]}҈8}҅8}҂8 g/ @_IT#/@`@#@T`?@ 3@7@;@$@#@ ?@3@ 7@;@@#@#?cTL@ATc;@_T4@3@ +@C_E_I8 / @_T#р@ !@9h@A"3Ƃ _B_   `5I @3`5_B_. @_IT#+1T  `5@"?qTB9` _B_. @_T#4@@!`@?@9  4@9'@! ?4!#@c"4!!@"4!"4!"@D@$ p@6 @ a e@D@  "@}_T#`$dh"8"@B"Syeh"8GBT}_T/}_"Tdh"8B" ydh"8GBT}_T}_"T`h"8@ @9  4>@/_D_}^7}[7}X7}U7}R7l  p 1.d @_iT#?@ ;@ }6@'7@;@ ?@C@b3@57@9 W7@;@ ?@C@'@P3@57@@!?@ z@'@7@C@?@  (T;@G  7@G@_F__F__F_֧xfx&T+C!0}dhaa V  7@+@@_F_y6 - @_T#@9'@d0}hd@@@@T @!T?TS_B_B_Txbxb@T@S_B_y6 ~- @_IT#@9@#@} @'_C_f- @_ T##@BB}@d@d@ҟT_Tp 6 @ @C@ @_@d@9`@"Ta '_C_K6l  o$& n  - @_T#@t@#9 @_D_- @_ T#р@ !@#9h@ /@h#9 ^@#@ h  "qTB9` _E_, @_IT#р@h@9@aX9A@@a9[`;_B_P} n ,8@ @_T#р@h@9@aX9 KA`#9@ @ K'@! _D_,8 @_)T#р@h@9@aX9! KA# K$K~#9 #@@9_E_T  6n [,8 @_iT#/@l@!h@pa!q @3@!4!@ @ +@/@!L@##9 _E_%, @_ T#т@B`@C@ch@Dl@Dl{9eDK%3DL@+Bl@/`DKTa5!  x`3 #9 C@p"@p@T@L@#9 @_Dp@L@#@l@' #9 N_G_~4 + @_)T#р@h@s #9@ 4_D_+ @_ T##A9 86#9 #A9@#9+@ _D_+ @_T#р@h@/@"l@B"l"p@_T L@#93@ @ p L@ l@##93@ _E_b+ @_T# ~#9@ _D_N+ @_)T#/@4!!@JTҁ@!`@"l@B"l"@Bh@"p#"L@!l@D##9 @_E_+ @_ T#р@ !@#9h@ /@h#9 z@#@ h  "qTB9` _E_* @_T#67T@#9 @M @#9 @@_D_* @_ T#~T[g@@/@ @/ @; [(+ @;@ @!37/@Cc5 C S# W[RkT @9+@x@@W[/@;@?k@@@o@ ?c@9_L__L_;@'r X t'@btsr@ 2l W* @ _멫T ~#ATAaKA7AT@c`@뀧T1c0c߈7A@D9c|BӿkATATD8@E<@ E @D@F0@G(@AAA ~T{F@H@Ai ?J@9[_[S@{{A@ @sw#~TAAA@@A_A[@[A ,A`A9!{Aq @t@srrA@@  A_@ _@ k _JTsAwA@NJ4@9@9~q{AaTATp<@Tp8@AT~K?9[9Ap A06q@3@T1b@q5q`TQqT/@o@a@@@~ "@{ @@swA@!`@@9!@@!`@&@(@K@A9AA@@[A@A9?@AA[_SW9{A #@@ jT @!l% }3@9@? @T@@[ۍ;?T @9qThq@9_D_9_D_@9_D_X @_)T#/@9 @!߈"s_(qbT#d|E4"hdc@@d_qaTB94lqT_qc< d|E4hdc@_q'#`T_ q!TT@/@T@@AB)B|ABbAL@"g @ li@h`  ci#@@ ^i1g'@ `6 g @ Ti'g@KTf`  Ii@h } @ig/@t@ f 1@ 5igf`P@ -ig_E_j @_)T##10߈@#@B@BD9|Bk@!`@?@_T7fUgf@I @E7@?@?@/cc@:'+/c#xn_G_ @_) T#@ @AB@'@aT@ aT@{9`@߈q@7C9c@97qT_D_of gf'@'@@@_@T@!߈!s?qT_f`H  h|f'@   _D_ @_ T#?@@@_T_IT+fd$  uh@ h`d lh@hT$  ch7@g-@ Zh;@g`p  Qh$f+#?@'C@+@@" _@7@_@@! ? 0;@? 0 h_F_@@A @@@T@TT C9_C9_~C9_C9_ @_T#@@@ @"@9_Hq`T_(qT#9_C__DqTA9#9_C_5@9@#9_C_ /@@ jT l% }&@9#9_C_#9_C_g @_)T#`4 @;G@'G@ee g@Dge~e@G@?T9xab_H_{@ @G@?T9xaB#_H_ @_)T#?@G@ ?@C@ TeG@ @# @#@'+'@e@@ ]ge/e  eH4| Sg&ee@ KgeG@@#\ @#@/3G@"@/@d@@ 3g` @ -g@nfaedd`@ !g?@fied@G@"@K_G_ @_T#5p @5@`@T 1 3@b4B B@@  ?_C_ @_T#b4B@C@C5cp c@5@c`@T 1 37@?T/@3@#@B@  ?_E__E_h% M @_T#@(@ @@@BP@96?T!BB@#'_C_#'_C_@R% @P@96\@9!@?PqT?HqhT?DqT?HqT _  _?LqT _@ _?Xq(T?TqT` _ _?\q T?dqT _@ _ _ _ց @_T#@ @@\@9!@?Pq T?dqaT@{ @@#'_C__C_@m @@#'_C_@@^ @@#'_C_ @_IT#4?@2B,G_G_BAC@?TD@?"TaC TG_G_#   `47̳`4@7@!/ R@@/   @99b4B7Z@9cD"  e^e`< e#@Ue| ec2,"/@G_G_3@+@'Xcd# @ e+@7el} e'@.echc3@A@+ \+'8cD"  ee  ye+@e`@ pe'@ec?c4  \ Q @_T#s41T7@2B,?_F_BAC@?TC@?"T҂+AAc G@@+@@s#@c T?_F_?_F_   `47`4@7@!/ s"@   @#a4!7#@bT#  esd`< d@d| db2,!?_F_'@@bd# @ d@rdl} d@idcb'@A@- 6\sbT#  dsRd  d@Id`@ d@@dbzb5  \ 5< @_T#1T?@2B,/ =33@@G_G_BAC@?TC@?"TbA@C@?mTҖAX@!c   `47F`4@7@!/ d@   @'a4!7ֲ'@a#  Edc`< @ 5! @qaT@q5! 9`@5@95! 95` @_C_ @_IT#@#9h_B_ @_iT#@ @_B_ @_iT#Ѡ 5j_B_ @_iT#@ @a "C#_qTB9a! 5!` $@9_B_q@9_ց @_ T#щ_A_\ @_T#  5 5    53_B_> @_iT#   @T1!"!x`1B @x`  @B$?B0@c `0b#@BB$?A0 '_B_֡(   @_iT#р@h@=_B_ @_T# R @_C_{ R  @_IT# [_B_ @_T#Ѡ = m_C_ @_)T##9g_B_ @_ T#/@t@ @bBt@a!t@@c߈B9lqTd<|&4he@#L@X@@ Z@UZ  Z@Z@ @ Z#@@ Z@4#~ Z@8Z+  Z@/ZXX_E_D @_ T#5{c>`@3@+@5@5A4!#B4B3!+#@@5A4!#B4B3!+#@@5A4!#B4B3!+#@@5A4!`#B4B`3!*#@@5A4!@#B4B@3!8!@9?km!5 3!@*#@@5A4!#B4B3!@'#@@5A4!#B4BA4!d@}E4.$@@E4.$@@E4.!@#@@5@4.B4B.? 3 @@5!@ > `3@@5! _C_[#5@9@#@ #@@ {#_C_#5@9@#@ #@@ S#@'_C_#5@9'@/@ щ+@/@@'@ ;#@99_D_ @_iT#'@+@ cA9@c9@d@99_D_5 @_iT#@'@ A9@c9@9@9C9G9_C_@@ _ _@@ _ _@@ _ _ @_IT#@k_B_ @_iT#@#@ +@[9@5@5C'@@B '@_C_ @_ T#@@ @c9[@#_C_ @_ T#@@ @c9C@#_C_ @_T#@#@ ѯ@'_C_ @_T#@@" @"@_ TT@c 6@A9 q T_TT@ 7@A9D@k T@d@ TT@ 6DA9 q! TTT@ 7DA9@ӿk! T!T@9 qTcT@9 qTa[bBšc}{a{šaa#@ @'_C_` P/ ~ Pl! OE$ OE@ O  O @ O   O d:  O  w @_iT#'@+@ /@ó@@9?k3_D_  @_T#@#@ '@@@!@ +@K_C_  @_T#@#@ '@׵_C_  @_T# %ή @@#@ ζ@'_C_  @_IT#@k_B_ @@ _@@ _@@ _ _@@ _ _ @_T#@#@ '@_C_V  @_T#@#@ '@_C_B  @_T#'@@!@+@/@ 7@;@L@C_D_+@ /@7@;@@C_D_  @_T#@@ !_B_  @_)T#5@9@@@#@ +@#@+@ 8_C_  @_T#5@5@A4!  B4B @_A_  @_T#5@?!-T@C AD$AD cDec|Gcʅ|PӣC$*[ b" #@@*1_C_  @_ T#:_A_  @_ T#5< @9  @ "b_ATCcT'@0y@D<@@B@$lp  @C'@@ *=4'5@ 9+'/_D_@+/_D_46 N< N *  @_T#@`@9 !a?T!a?!T5! 9_B_ `  M <@ M` M  @`@9 @@ @?qaT<@?qTl@?q?qTd@9b@?T?T __ @_I T#@`@9#@@#@?qaT<@?qTl@?q?qTd@9b@Ң'_C_S99c@9@`@9#@@#@?qaT<@?qTl@?q?qTd@9b@"'_C_'_C_z  @C_)5T#o@9 ? o@`@9!<@l@?T/[9s@T35@s@  Ѐ3@/@[A9o@w@`TAT<`TATl<@Tl@_9k a9 )9 $@aTʡ @!<@?-TA4!"@GKK@G@<@@ 5o@C5@5o@?$C@o@/@[A9_A9+MT5!&@f5$ F4@OSS@O@()@i5,`@0<@ @$@ \o@/@[A9_A9T@l@?aT C@@!@l@?MT' A4!!@W[[@W@@l@@@  c92o@>@E5@5o@T4C@oo@/l@?Tg5!$@5 9T c9^ D4@_cc@_@X!@a5\N@@`@l@P@T@ o@7<@al@AA<@aoD   ?@F_M_;  ?@=;@ 5!"@95c@ d⸄5c@ d_d~ AW7@ 5!!@95B@ Cc5B@ C_cC~ )W_M_l@b _T5cd@9 _aTțE_@5c5c7"_T5cd@9$ ;_aT$țE_A5cҹ5cҴ R @_T#'@9  '@`@9!@`9@!@@!@A"_T5cd@9$ ;_aT$țE_A 5c5c "_Tbe@9$;_aT$ț_A$@b5@5'@?$'@" 0@5cT@@5@5'@T'@  @3@ 5!"@95c@ d⸄5c@ d_d~ 7V@ 5!!@95B@ Cc5B@ C_cC~ V_D_+ J  > @_IT#@#@ '@;#'SW_C_ @_IT#@@ J _#@ v_B_#р@!;@?TW@p@pxC@9 @h4!!@9@U4@9 @@"h@@_T!BB@_kT `=R@@@!h@"@B"@\@8@"B"B9!@!9a4!`!@9C@9@0U_C_@"B" ! 4@8@!h@"@B"9_C_ @ @@@#@BB_kT 0@@ h = !J @!h@_ր@ !_@!h@_ր@ !_@T5 q-T5 a4!!@b4BB@!!kT@h@C9_9!߈C߈7B߈_kTkT@C9_C9_# _B_ @_IT#@40@/5B *5B  t@#@@40/@+3@@Х* 3@?/@C+@G_G_ @_IT#@40@/5B *5B  <@#@@40/@+3@@Х* a3@?/@C+@G_G_~#@ _B_ @_ T##@ T aT@"@y;R_kT"@9_qT@@1!T@"@Rۭr_k!T4T@"@{LR;lr_kT"@9_qT`'T@"@{.Rr_kT#@yRkaT~{.R{r_kT"@yR_kT@@ ^@@9*?T~5!!@95!!@9A@5! !@ 1!0 _C_ @_T#@4Ƞ@@@W/+#c @+@?ITsW@@@/@˄}o5Х@f5C W@@ @@@@A@5@a5C+@!So@s@@@@@c  T;Oxc L@? T?_ck37 ?@@#@ 5S@_@O@o@;@?@3@c@k@ @n5x(  ZL@M@J@TKGg[C7 @@#@5S@O@o@[@;@7@K@C@g@G@F  @j5 '  _O_] B= @_T#@C@'_C_. @_T#@C)@'_C_ @_T#@C@'_C_ @_T#@CQ@'_C_ @_T#@C@'_C_ @_ T#  @47@4@7@@5@5A4!@7#B4B@7@5@5A4!`7#B4B`7B4B 7A@4`7@'@Є  @@9!@4 77"@4@7@B/ ٳ@[95@5'@@'@ZA4!`7!@B  @77   A4!7`7S_D_i @_T#@C9@w_C_R @_T#@C9@c_C_> @_T#@A9C9'@;_C_* @_ T#@A9C9@'@9_C_ @_T#@C9_C_@95!!@9@B@_c@_ @_i T#/@9 #(/@@c@Aˡ 7R@{95@a5| c@a05! !@a   ՙ@@a5/@ @@f5  @e5@z @`5 `s  Հ :#@ c9@g9@VQ@@"@@ (@R_E_  #@n_E_y @_T#'@߈C߈kT '@@5BC@c5|@* `( ߈@  @=@ _D_~ H@@5@e5  _D_1 @_ T#'@߈C߈k T g'@@߈_kT$@@  @_D__D_օ@0@kAT@5!%@e5CE   5!%@e5@ #%@e5 `   @Ɯ5@5@@ ҟ ~ ˗_D_  @_D_ @_T#@T_B_K' N@NM`,  N{EMLLK&` iE  @_IT#a@_B_~ @_iT#р `<&_B_m#  @ 8E  @_ T#7@ӹ @ '@@ @@?T+#7@ '@ +@;#@?_F__F_K  0 @_T#@#@ '@ _C_@ A$A !D#!|G!C|Pa$@ _@ A$A !D#!|G!C|Pa$@ _#/37 7 _C_#/37 8 | _C_#;?C @< h_C_#;?C @> T_C_#/37 : @_C_#/37 7 -_C_#; @ _C_# @ _C_ց @_IT#@'_B_Z @_T#@C@99_B_H @_ T#/@@ @@@@3@ A99_E_( @_iT#@@@C'_C_ @@@@ @ @# _D_>n~N>N5&pLK(Nh(N?@#T`T?iT?T? T!B"nA6 A6MA6PMA6@MH(NBh(NH(NBh(NH(NB| _@| _p@Lp@LK(N!h(N*@pLp@LH(NBh(N#H(Nch(NH(NBh(N#H(Nch(NH(N#H(NB#nB| _ց`@LK(N!h(NK(NBh(NK(Nch(N*L@LH(Nh(N%H(Nh(NFH(Nh(NgH(Nh(NH(Nh(N%H(Nh(NFH(Nh(NgH(Nh(NH(N%H(NFH(NgH(N&n'n%nD| _ց L`@LK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(N* L @LH(Ni(N)H(N)i(NJH(NJi(NkH(Nki(NH(Ni(NH(Ni(NH(Ni(NH(Ni(NH(Ni(N)H(N)i(NJH(NJi(NkH(Nki(NH(Ni(NH(Ni(NH(Ni(NH(Ni(NH(N)H(NJH(NkH(NH(NH(NH(NH(N,n)-nJ.nk/n*n)+n)nH| _ L`@LK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(N*JH!LL!@L!!GI(Nh(N!I(N!h(NBI(NBh(NcI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(N LI(Nh(N!I(N!h(NBI(NBh(NcI(Nch(N LI(Nh(NI(Nh(NI(Nh(NI(Nh(N!ѡI(Nh(N!I(N!h(NBI(NBh(NcI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(Nh(N!I(N!h(NBI(NBh(NcI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(N!I(NBI(NcI(NI(NI(NI(NI(N  nb"n$n&n@ n$n$n@| _ #73/+@@ _#@_B_# `;} 5B"\4 @@р 3{#8l@ !@Cр?C@ @4'  @r3!Q \r _#)X_A_@@@e7#3@@dATAO@D@@7@Cр?KO#?_A_#@@(@T@`T`@Tcc `?]7@7@C@`?փ@|`@/@7@7_A_C@A#`@@aT8O)@aTGO7#3+  @ @7@*+@|T{,`{T{0`zT{C3`yT{6`xT{9`wT{C=`vT{`uT{C`tT{`sT{ `rT{C`qT{`pT{`oT{`nT{C!`mT{&`lT{*`kT{/`jT{C4`iT{9` T{=`@T{`T{C`T{ `T{`T{`T{C`֠ @_T#с@@C@#|g T @g@88T@@@?@@C@G@#c7_B_*"@AT#$ @_T#с@'@S@#|g T @g@88T#@@@?@'@S@W@#c_C_"@AT#$ @_T#с@7@s@#|g T @g@88T3@@@?/@7@s@w@#c_E_"@cAT#$ @C_T#с@W@@#|g T @g@88TS@@@?O@W@@@#c˛_I_"@cAT#$ @C_)TC~#с@@3A#|g T @g@88T@@@?@@3A7A#ce_@C_W"@c!T#$ @C_)TC~#с@A3B#|g T @g@88TA@@?AA3B7B#c-_@C_"@c!T#$ @C_)TC~#с@B3D#|g T @g@88TB@@?BB3D7D#c_@C_"@c!T#$ @C_)TC ~#с@D3H#|g T @g@88TD@@?DD3H7H#c˽_@C _"@c !T#$ @C>T_iTc;~#с@H3P#|g T @g@88TH@@?HH3P7P#c˃_@c;_t"@c;T#$ @c;T_iTc;~#с@P3`#|g T @g@88TP@@?PP3`7`#cF_@c;_7"@c;T#$ @c;T_Tc;~#с@!`@d3@#|g T @g@88T`@@?``@d3@@f7@#c_@c;_"@c;T#$0@4@ @c;T_ITc;~#с@#@c@#@d3@#|g T @g@88T#@z@@@?#@g@#@c@#@d3@#@f7@#c˿_@c;_"@c;T#$(0 4 @c;T_ITC{C@~#с@C@c@C@d3@#|g T @g@88TC@z@@@?C@g@C@c@C@d3@C@f7@#cw_@CC@_h"@cc@@T#$(0 4 @;c;T_ITC{@~#с@@c@@d3@#|g T @g@88T@z@@@?@g@@c@@d3@@f7@#c._@C@_"@cc@T#$(0 4 @{c;T_ITC{A~#с@Ac@Ad3@#|g T @g@88TAz@@@?Ag@Ac@Ad3@Af7@#c_@CA_"@ccAT#$(0 4 @c;T_ITC{B~#с@Bc@Bd3@#|g T @g@88TBz@@@?Bg@Bc@Bd3@Bf7@#c˖_@CB_"@ccBT#$(0 4 @c;T_ITC{D~#с@Dc@Dd3@#|g T @g@88TDz@@@?Dg@Dc@Dd3@Df7@#cJ_@CD_;"@ccDT#$(0 4 @c;T_ITC{H~#с@Hc@Hd3@#|g T @g@88THz@@@?Hg@Hc@Hd3@Hf7@#c_@CH_"@ccHT#$( 0  4 @c;T_ITC{P~#с@Pc@Pd3@#|g T @g@88TPz@@@?Pg@Pc@Pd3@Pf7@#c˲_@CP_"@ccPT#$(@0@ @@4@ @c;T_ITC{`~#с@`c@`d3@#|g T @g@88T`z@@@?`g@`c@`d3@`f7@#cf_@C`_W"@cc`T#$(0 4 @c;T_T c;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#c_@ c;_ "@ c;T#$(0 4 @?c;T_T@c;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#c_@@c;_"@@c;T#$(0 4 @c;T_Tc;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#cˁ_@c;_q"@c;T#$(0 4 @c;T_Tc;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#c5_@c;_%"@c;T#$(0 4 @c;T_Tc;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#c_@c;_"@c;T#$(0 4 @c;T_Tc;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#c˝_@c;_"@c;T#$( 0  4 @c;T_Tc;~#с@k{k{#|g T @g@88Tk{@@?{k{k{k{k{#cQ_@c;_A"@c;T#$(@0@ @@4@5{`9 @ @c5c& nbp@L@ N@H(Nh(N@H(Nh(N@H(N@| _d5{`9 @ @c5c& nbp@L@M N@H(Nh(N@H(Nh(N@H(N@| _l5{`9@@ @ 5{`9@@@ @cGn @? Q_@@ @#C@`#@@C ?C_A_#@@@)@T@T@7@ Aѿ@ ?@@@ +_A_Aѿ ?@__A_#х@ ?ֈ@@`}4@d@ `a@y@#@7@@#@'@ [r@#@@c@ @@'?_C_# G@`@@ @@_C_#@@_A_@*_3d2#9_#_c@h@`K!@` dK#@@ T_@c@C_N_ #'+/37;?CGKOSW[`#@ @@@@@@#@'@+@/@3@7@;@?@C@G@K@O@S@W@[@ :, ^, , , , , - 6- Z- ~- - - ->_@ @?@T(T6_ց6_ց9A6x_|_˄ @T|!?T#|Tq`TkT|||! @a|?_@!||||!jT?@@!T_?T?+T5{ e7; 65{ e2e %!5{ e@T?cT˄T#jEkT||||JT! t !T!T_@ @@_@T_T_T&@D4E4?_DE_ T&@__6&@__6&@y_xyx_&@99_DE&@($A,~4_T$,>4?_.4?_DE_KT5{f@9nT,4@ @!B&A 4($B*,C,4ĩB@iTf&Ah$($Bj,*,Cl4,4ĩBT<|f}h$$~j,,l4<<=$>,?_֌4 @Bˆ4?$~,}4BiT?$>$~,=,}44BT" C?&B$>($A,=*,@4< $ ,_Xk; #'+/37;?CGKOSW[_cgkB;o D;sw{;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@{@w@s@ Do@Bk@g@c@_@[@W@S@O@K@G@C@?@;@7@3@/@+@'@#@@@@@@ @@@@`B@?@#C @ C_A_# _A_#@ ?T _A_#@v ?To _A_#l `Tc _A_e @A} #@] ^ _A_#`@a@bcdeQ _T: `a_A_#@@A @T_A_#@@7 _A_#@@/ _A_#*& _A_# `5{#t52߈TC C5{#t52t u_D_##@@@`?_A_##'+/37;?CGKOSW[ #+k)`?@@@@#@'@+@/@3@7@;@?@C@G@K@O@S@W@[@_M_#@@ @T_A_#@@ @T_A_# _A_#@ @@@@ _A_#@@ @@@ _A_#ь _A_#@ @ @ _TD _A_#Cq C_A_#@@g @_A_# #'+/37;?CGKO@y@ @@@@@@#@'@+@/@3@7@;@?@C@G@K@O@_K_#@/ _A_#@@) _A_#@@ _A_#C@@@ C_A_# _A_#@@ _A_#@ _A_#@ _A_#@@ _A_#@@ _A_#@@@ߌ _A_#@، _A_#ӌ `_A_#@@Ɍ _A_#@@ _A_#@@ _A_#C @@ @@?@C@A1TC. @C@_A_#C @@ @@?@C@ATC @C@_A_#C @@ @@?@C@ATC @C@_A_#C @@ @@@@@?@C@A 1TC׋ @C@$_A_#C @@ @@@@@?@C@A TC @C@$_A_#C @@ @@@@@?@C@_A_`;}5{{@h{_`;}5{{@h;_ @_T#с@@@@ _B_"@AT#$ @_T#с@A/@`@@bBP @@@37_E_ "@cT#$ @_T#с@a@_A_ "@caT#$ @_T##@@9@C@9?k`T @5f@9#9_C_z @_T##@ @@C @`T f@9#9_C_^ @_IT##@@@C@@E@ATA @ @TA@@AT e@9#@@@"@! @ e@9#9_C_. @@C?kTA@@c9_c9_ @_)T##@@@C@?aTA@@TA @@D@ @?!TE@@T e@9#@@@C@D@ e@9@#@ {e@9#9_C_ @_T#@  T@C#@a c@9@#9_C_@#9_C_ @_)T#@@#@C@T }[e@9` #@ @@" @!@ Ne@9#9_C_ @_T##@@@C@?TA@@@E@?AT *j@9@`#@` `#e@9#9_C_f @_T#@#@ @ e@9` @ #@ zd@9#9_C_C @_ T#@#@ @d@9#9_C_, @_IT#с@'@ @@@@9D@9 c9g9{@@+/_D_a  "@#T#$ @_T#с@a@_A_F "@caT#$ @@@C@?kTA@@aTA@@kTA @ @c9_c9_ @_ T#@#@ `sd@9#9_C_ @_T#@#@ [d@9` @#@ {Nd@9#9_C_ @_ T#@#@ 7d@9#9_C_| @@@C@?TAkc9_c9_ @_T#@#@ Bd@9` @p#@p d@9#9_C_G @_T#@#@ c@9` @#@ {c@9#9_C_# @_ T#@#@ c@9#9_C_  @_)T##@@9@C@9a!@a A  }c@9#9_C_ @_T#с@@@@ @!!4!T~!$( 3BC@A@?IT|aha`@_B_ "@AT#$ @_T#с@a@@9?lqT`ҁ!<|3BAha@@_A_~ "@caT#$ @_iT##@@@C@@E@aTA@@T &c@9#9_C_i @_T#с@@@_A_֨~ Q"@c!T#$ @_T#с@A/@`@@bBP @O@@37_E_~ ("@cT#$ @_T#с@a@_A_b~  "@caT#$ @_IT##@@@C@?TA@@TA @@D@ @?ATE@@TE@@AT b@9#@@@"@!@ b@9#9_C_ @_IT##@(@@C(@?TA,@,@T gb@9#9_C_ @_)T#с@@@@_A_} "@cT#$ @_T#с@a@_A_} w"@caT#$ @_IT#+@@'@C@TA @ @aT c9_D_@a+@'@?T#|DhchcE@ a@9@>@!?T __ @_IT##@@ȡ?T @ @9@#@_T '@ q_C_@ '@ h#@@ c_C_*` ` ,*`  ,  @_ T##@@@ȡ?T @ e@9`@#@_T '@ @#@@+/_C_@ '@ #@@ _C_*`  ~,*`  w,  @_ T#;@` 3@;@? T/@ȡ?T3@aI/@ @9 H/@;@_T #@3@7@_!T f@99_E_?@@@ @99_E_/@ ?@ ;@/@ @9_E_9_E_*`  ,*` ` ,*`  +  ^`^^`^X^ @C_ 3TC~#@ 4!%!@9@4Є %5!$@5@4c@%b 4B@%@5!@@@\@9C@dyB{_k @ 5! D@\!)T[W  @ $#T@%W@e@ @!B`6?a#T @@b ? T\@9B@_`aT[@@g@#@'#cɌ @!#@'@ 5!!@5g@ g@__@C_[@@k@+@/#c @! +@/@ 5!!@5k@ k@=_@C_?( T?T?! T[@@w@7@K#c  @!7@K@ 5!!@5w@ w@_@C_[@@o@;@O#c] @!?;@O@ 5!!@5o@ o@_@C_? T? T_c @c!!-9 @!;5!"@5[@ [@@!@5_@ c@`_@c@_@C_[@@{@3@C#c @!3@C@ 5!!@5{@ {@_@C_[@@s@?@G#c @!?@G@ 5!!@5s@ s@_@C_` _@C_` _@C_ ` @! a! ]*S` @ @!!tS@a! K* lc @_IT#@@A@B @C@@7@T;@T#'@+    #@@ +@@;@a#@@ '@_F_*` : *   @_T#B@A @@TCh8@TAh8Ah 8Ch$8_B_)(  @_T#B@A @@TCxx@TAxxAx xCx$x_B_   @_T#B@A @@TCx@TAxAx Cx$_B_  @_T#B@A @@TCx`@TAxdAx Cx$_B_  @_T#D@A @@BT|ӃheF@@BT|Ӈha@H5 @i5h%\@e5h!T_B_֔ X @_IT#D@A @@Tx` @"Txf 5@5x x&.+_B_ji . @_T#@_A_!@9 ե @ Ś0$?7 _A_ց  " @_T#@@96_A_!@9 ե E@ Ś0$?7AB$@9  @ ƚ0E?7 Հ _A_@ ?   @_) T#@@96_C_B@9  @ ƚ0%?7bC6' Հ?`Thc''@Z @@#'_C_!E@9  f@ ƚ0E?7`   @_IT#Ѣ3B7C@A@@jTT|aha`@_B_? T`@a@_B_z} ^@P@96\@9!@?PT?HhT?DT?HT _  _?LT _@ _?X(T?TT` _ _?\ T?dT _@ _ _ _ց @_T#@(@ @@@BP@96?T!BB@#'_C_#'_C_@2 @@ _@\@9@ _@ _ @_IT#@ @@ @y5@_@@T#_B_#_B_p  @_T#@\@9!@?PT @#_C_@#_C_ @_IT#@P@96A @@@G @@#'_C__C__C_ @_T#@P@96M@  @_C_рCh`8qT?cT aA#'_C_ V @_I T#@\@9!@?HhT?DT?HT@!!`6!_B_@!!`6!_B_?T`T?XT?\AT@!!`6!_B_@!!`6!_B_@!!`6!_B_*` `* &  @_IT#@\@9@LATP@9e6  }`@y5_D(T@Tx`!!`6!#_B_l*` * &  @_T#@\@9!@?TT@!!`6!_B_*` * &  @_T#@\@9!@?DT @_B_*` + e&  @_T#@\@9!@?dT @_B_*` `+ I& j @_T#@\@9!@?LT`@y_B_*` + -& N @_iT#@C\@9c@LaTCd@y8raT c8@B`@yca<@T _B_w*` + & % @_IT#@C\@9c@LATCP@9c6  }Cd@y8rTc8@D`@ycBa<@T#}ӤB@T@x` !`6!#_B_4*` ) %  @_iT##@@'@? @PT#@ !`6aT'@@ _c@9C9_C_ {*` `; %*` ; %  @_T##@ #@ !`6T'@@ c@9`@'@@ !c@9C9_C_ z*` ; Q% r@ @C9_ @_).T#w@C\@9c@PATC @c{@d\@9@PT @`@y5@_@@(TG?w@9_N_@9_N_9_N_/@G@?@@@y?JTf@g @T/k3}hk@3@ @/@@BTSg`|?@ h"B7 {@@c@; @_g@@;@`T_@Y@9`{@7S@@[w@@[@g@C@9#7 @@w@@ @@#Kc@ @@G@{@@p @@#@?TK@ fY@93@Bw@d @lTw@3@ww@3@t@9_N_9_N_p {@w@d @jTD@E @?T+k7 }Ӏhzk@7@ {@C@D @@+@"TWgk}`hh@c@; @_g@k@+@ @;@_`TC_@Y@9+@C@{@XW@@[w@P@[@+@`g@C@97Y @@w@@ @@O'c@K @@{@@ @@'@_TO@ X@9 +@7@Bw@d @T+@w@7@ww@7@t@9_N_9_N_  @_T##@@ T"P@9b6P@97"\@9B@\@9c@T#9_C_ @c9s@9#9_C_@#9_C_ @_i T#A9@7@/@`T3@ ;@]@99_E_/@ @3@ ?@ @#7@C @;@`?@@`T@#@GX@9@ /@@3@ ? @7@"@;@@? @@T9_E_/@0@3@? @7@!0@;@ ?@c9 @99_E_e @_)JT#[@W@#T զ\@9@\@9@!"T<)!T` Th TLhTD@ TH TLTd@yd@ykT`@y`@ykaTҎ9_J_ր@ !T @K@G[@ @@K@G@ B99W@9@[@W@\@9@H,T@\@9!@?H*T@?`T @K@G[@ @@K@G@ B991@99_J_@9_J_֠ @ @?`T @K@G[@ @@K@G@ B99 @99_J_TTPT @ @@9_J_9_J_֠@ !`6"@  `B99@9`W@O @K@G[@H @@K@G@ B99@99_J_\TdT @ @?T@5@3 @K[@C@-@3@TK@%W@9W@C @3[@:9_J_9_J_9_J_ @K@G[@ @@K@G@ B99@99_J_@9_J_9_J_@9_J_#@3@[@W@ TE@A @ T @ @ TC?#/;xf@+ @K/@C@dxbC@/@ @+@T7K@V@9;@@7@C@ Є`6 B994@9B9/@?@!x`@+ @K/@C@bxb@+@`T@K@V@9@ҀB9;@B@7@c@T9_J_9_J_9_J_9_J_@9_J_*@ * !*@ * !'@W@[@\@9@L!T`@yTP@9g6  }5&_DT_iTx`\@9@M TP@9h6  }`@y5(_D T_ T' !`6"y` "bB99@99_J_@@W@[@\@9B@_L!Td@y_8raT B8@`@yBA<@_hT!?mT (@K@G[@@ K@G@ B99t@99_J_@9_J_s*@ + !:lX*@ * /lM*@ +    @_ T#G@@@3c7d@a@?T)T|Ӂha@? T@@C@B@D $B~#'d<+/p3@7@KO_H_@@A@BB "@x #@'@KO_H_  @_) T#'@@?HT?DT?HT@"@_ ! T!@ 86#@@#@ @+_C_@ @+_C_?TaT@"@_ T!@86#@@#@ @+_C_?\ T?`T#@@+_C_#@@+_C_@ @!A!h @A! 0 *@ 5 ) *@ 5 "  C @_IT#@ 3!%!@9@3 %5!!@5@3B@%A3B@%@@ @@\@9"@Cy!{?ka  @#'_B_'_B_ @_T#*@ :   @_iT#@@_B_*@ :   @_iT#с@!@B@@3B7C@A@?T)T|aha`@? Ta@`@_B_p "@T#$ @_ T#@#@ ~GT@9#9_C_ @_iT##@@@C@@E@aTA@@T &T@9#9_C_i@@@ _ @_T#G@ G@a"@/K@3/@ Є`6Ҁ@?C@99G@C@?@G@?@`TC@ K@$Y@9c9_G_A9G@'+ ?`T  K@ Y@9G@+@'@A9`5 v@@A! @G@ K@ ?@9`;'@ +@u@@! @ ? @@@@c9_G_c9_G_@c9_G_~ @_T#@@ !`6!@ ?@ @3!. 5@53.3B._D_ @_ T#@ @iT š_0! š!0Cy@$Ú0 š_0 !`|@&Úg;T|ē?T@;T|@!ē$Úc;ҟT|?Tc@;T__#$š0'_B_3*@@@@ 23)@@@@ ) J@ `T;{C>a@ `T;{?a@ adT `T _`;{8b@ bT;{=a@a` f"AB K !t_ _@ `T;{C>a@ `T;{?a@ adT ``T_`;{8b@ bT;{=a@ `` @ f"t@_ T_T `T ;{?`@_ ;{c>`@__T(;{9`@n AAga_ A__ @_ T#@ `T;{C>a@ `T#_C_ ` TT p @@;{;a@ aeT(`n8ab;{ci@ %G;{9j@)G;{>k@-G;{c:l@1GG;{c ՠ>u @A!!+@ @@# š_b0c5cd@5'@ @'@c5c3`@3@@e@e5@@a !8/@@@&!Ś0@B ǚB0 @c BbB ŚB0 ǚc0ѥCA9kb#1c!T@'"?CG_D_?CG_D_E @ _i'T~#AA @@@9$AA N@?@@@9@9@9@9fA#TA %199@#@'@@b?@_@_%1@937o9k9d c9#@@93@7@oA9 c9 #@@9kA9 _3@7@ oA9c9 #@@9_@ aT?@_@_?@_@_?@ ?@_@_~TA_TA @9 1 @@9*; ՠ>zt @A!!A a5!"@5A@A3`@3@@!@a5a !8;@?@_@_֠>Jt @A!!A a5!"@5A@A3@3@!@a5'?@a !8_@_֠>t @A!!A a5!"@5A@A3@3@!@a5'?@a !8_@_@b_@_  @ _)'T~#AA @@@9#AA @?@@@9@9@9@9FeA"TA %199@#@'@?@_@_%1@9/7_9[9d c9@@9/@7@_A9 c9@@9[A9 3/@7@ _A9c9@@93@ `aT?@_@_?@_@_?@ ?@_@_~TA_TA @9 1 @@9*; Հ>7s @A!A a5!"@5A@A3`@3@@!@a5A !8;@?@_@_ր>s @A!A a5!"@5A@A3@3@!@a5g?@A !8_@_ր>r @A!A a5!"@5A@An3@3@!@a5ag?@A !8_@__@_֘ s @_T#7@;@ ?@s@@@@@@;@ TA@ 8 TA@B@3ƀ@@`T@#'+ 8K@9@+@'@;@3ƀ#@@ 8@ 83ƀ@>Zr @A!;@ a5!"@57@@7@3@3@!@a5gCA !8GK_F_CGK_F_1 Df  @_ T#/@AT'@+@ @@@@"37;?_D_'@+@ !@@@@37;?_D_ @_ T~#@ @/@K գc5 #cCcA3t@ 3@K@/@@9x@#@ `@@@G@+@! @ ? @@c~TB&O}S@C@B@W[B:_BcG@g+@kB8osw{c ҂@@_@_X@@@ _ @_ T#G@@ I@@"B? R@'@#BZq @+#@@`5@5'@A'@>Iq @;@@`5@57@A7@C@A @5?@AA@?@A !A@5+@@@+@K_F_ @_ T#G@@ @@"B\ "@'@#Bp @+#@@`5@5'@A'@>p @;@@`5@57@A7@C@A @5?@AA@?@yA !A@5+@@@+@kK_F_ @_6T#3@7@"_T/@+a /@C@9qaT KTC@9c{c@qTC TqTC} TqTC| ˥@C}E;@fzHT(TG3'3'3'3 @aT-Ś@!ƚ1# S!0 ! =@?A !8CG_E_B0 " /@@?A !8CG_E_ր>5p @!!0 3@ a5!"@5/@@/@3@3@!@a5?A !8CG_E_ Tkhh8 }qT@ lэ@ӿ%q Tk{l@ӟqTqHTl]ы@ӭ@ӿ kI T_TJ}@k _ hT T>o @!!0 3@ a5!"@5/@@/@|3`@3@@!@a5o#@?A !8CG_E_ր>o @!!0 3@ a5!"@5/@@/@P3`@3@@!@a5C#@?A !8CG_E_ր>o @!!0 3@ a5!"@5/@@/@$3@3@!@a5?A !8CG_E_ր>co @!!0 3@ a5!"@5/@@/@3@3@!@a5?A !8CG_E_  c@9@?_E_ր>+o @!!0 3@ A5!"@5/@@/@3Є@3Є@!@a5?A !8CG_E_O G @_i$T#K@@G@"@9_qTcc@# _qTcc@#?9 O@S@@@@@@dD Є8?TE@F@3@@@`T@;7+3 G@9@7@;@3@D Є83@+@D Є83@҅?T}@@5@5, Dc, @K@D @5G@@B@G@4W[__H_S@?zA!@B ?A0/?A9? T?T>pn @}!, K@ A5!"@5G@@G@3Є`@3Є@@!@a5/@WA !8[__H__kW _H_ր>n @}!, K@ A5!"@5G@@G@3Є@3Є@!@a5WA !8[__H_1 b1 a  @_T#3@?HT/@C@9q`TqAT˄@D?T>m @~!%3@ A5!"@5/@@/@L3Є@3Є@!@a5?7A !8;?_E_)/@ @@@@@D Є8?T~DD5@5Є%Dc%7;?_E_֥@?-The8@%qT>Wm @~!%3@ A5!"@5/@@/@3Є@3Є@!@a57A !8;?_E_q7_E_V @_) T#@_T@d@9q`TqTB˄@c@_KTd@9qTd@9{@ӟqTq`TqTq| jTTeh`8qcTq T${@ӿqTqhT||qT?qT ?|qT!9_B_9_B_?|q9_B_  @_) T#+@Eh 8҃d|›CӅB`#T-'@_Dh 8DADc#`T@Ahc8 TCAC @CAT` "TDh`8qTC__D_dmdk}h}f K @_T#@@$Eha8$Ú0DA?T? CTa` __B_DA˄D@ Ú0Fh%8! FA?jT? bT$Ú0Gha8 T0Ӏ$Ú0 T "TFh%8@F 9@E @CAT` "TDh`8qTC__B_dddd!$Ú0dd ~ @_IT#c3ca@c@@Tc d@@A? Tb@c@*TThf8Hhf8kTBTт#chc8 0&҇|ƛC  B_ TBTh"8@ 9@҃f|C'@ TTh 8@ 9@AB_ TdҡdҢAB A_T@ "Th`8qTB_B_ad_d\db] >y @_iT#@A#@?T_C_~ @@?T ~ T@@?T L  @_I T#@`@CAT TDh`8qATTCL9 TChc8cc@kq7c @ _B_@CAT` "TDh`8qTC__B_d@Ah`8qbT!Ah 8@ @9@@@A@d @A?PT  _Dehb8@_ TA_TBd_TaA_ Tha8qAT%_TL9? T!ha8@kq7@c _@c@9{>`@g@9_ @"p_ h T Ú02 @|| EMe|za@ @TTB|ӂhbC|D|bÔe @T_ATTg9_`$e$Ě0@ B @T@?Tg9_ց@!"v_k#A!B_!_Tg9_!@ Ac@9_k @9_g9_@c@9{S8`@'#@9_ @"p_ T Ú02 @|| EMe|za@Ô@@TTB|ӂhbC|D|bÔe@@T_ATT'#9_`e$Ě0@ B@T@?T'#9_ց@!"Y_k#A!B_!_T'#9_!X@ \ac@9_k #@9_'#9_ @_iT#р5 G@?`}!3l@ 3@?@B99G@K@#@'@ 6|@@OS_G_a @_I3T~#@T@@b&1BA0T @1BC@D@&$Ś0&$Ú0@ Ě1@!Ú1h!!T@! ~!d#~!D#@[@cT@G{5@ l@#@@G@{@W @[@W@_@_ֿ#!C@cE9߈q!Tq`T`q!T@@ @@99#'@+@/@_@_1@99@ߘq` TqhTqaT qaT ߔqT ߜqT@OK[ gAT$ T}D@#d%@K@@O@B9E9[@@H TS}D@# dS@HK@@O@B9E9@[@ǟ` @@ @99#'@+@/@_@_ C{@@# ` @qhTq`TqT@@qT@@?q!T@@!? @? qT@@@B9E9@@ @য়99#@;T/97@;@?@_@_@@ @@99#+'@+@/@_@_@@ @9#@'@+@_@_ր*  a @_iT~#C~TCB #B@CBa e#cBP9_q(T_q T_qaT)_qATC }BP9_q@T_qTC@!G mBP9G@  AC `B?P9B#cCdAA@CB B#B##cCdAAP9qTqTB? qTB?BqTB?qT? B?qTB?BB B B⧟9P99#@;T/97@;@?@'+/_@_8 @C_ T#C9?qT?qT?qTv?qTO@S@ W@B99@;Tw@/97@;@?@_I_?q T?q Tk@w@_To@TB9ko@ѿkT_ TO@S@ W@B99@;T!!/97@;@?@_I_O@S@ W@B99@;T /3@7@;@_I_S@"W@cTO@5O@ i@@#@!C9S@҅h!8 9_I_O@S@ W@B99@;Tw@/3@7@;@_I_,; @_"T~#cC kC"@BgC-T_CAAˆ)ҥ|&@fˇ |T_@_ C~TS C bkC@ gCA! kC@@B ?A0cC_iTgCgC@?aTC@!c ~TbB 8kC@@  _C_C_@_!OC#AdA TA#AT Thc8| Thd8|KC?T? bT )ia8|@@ kTcC@ cC7cAK@ӫ5,@@ kbT5_ k`T@ qT_qT'@q@TG@G4f6qiT@'ןcgc'b-T 3 Q_@_ւlT_@__@_քф BThd8q"TAh$8!9@A!dH_@_A_TC Thc8qTBd4d1d.d+  @_+T#C9@[@d_@cTW@5W@ h@@#@$[@h#8[@_@W@s@k@g@?&Tc@9|BTG{9!5 qh@@#@'{A9G@h$8@m T"TC!5 Zh@@#@$@C@h'8s@hᴃ?lT@o@g@?T3(GBBB@BT?K!5 0h@#@3@K@?@CK "?@3@C@G@K@TGB5 h@@#@!G@D9h'8w@Bs@B_C7$cT_GCB5 g@@#@$C@?G@7@Gb°h!8( TTB5 g@@#@!7@G@|h$8cC9YT҂b|BbBCFc˿BTC?B5 g@@#@!C@?@G@Bh$8cC94 bbGzb|Bb҆f|FfC@H3}|Lc˿TC9?B5 g@@#@! C@?@G@A9BFBh$8D9cC9_J_|h$8!TT3;!5 Zg@@#@"3@@;@4  @_iT#CC9@c@dg@cT_@5_@ ,g@@#@$c@h#8g@c@_@O@TT!5 g@@#@"O@|h$8D{@w@o@?HT3"KTS!5 f@#@3@S@O@SO S@K@O@3@|h!8c@T$_T7Gc5 f@@#@$G@7@@TDTC!5 f@@#@$C@@h"8 _K_h$8!T@BB{@Ts@o@Thb8|T?;9!5 f@@#@&;@A9@?@ 0 @_T#B9@K@O@_cTG@c5G@ Xf@@#@!K@dh 8K@O@G@ W@@9@9#@'@@?T;5 2f@@#@;@ |dh 8_@@[@D?"T7;5 f@@#@;@7@eeh"8 Aয়9@9@#@'@cgk_H_X @_<T#s@@~ k@C `0_o@BB@c@<Td~ Ě0!$?0@@ҟT?? 0`AB#C9`qTХХ_GKC'C9&[@_@cTW@5W@ e@@#@'#C9c@_@K@[@C@G@*i&8[@_@W@ T?5 e@@#@ C@#C9G@c@_@K@?@?|+i'8'9 |k9|Cc@T5 be@@#@C@#C9G@_@K@?@'i&8(TT5 Ge@@#@C@#C9G@c@_@K@?@+i&8bT?!5 +e@@#@#C9G@_@?@!{!@?k | !!i&8_A?cT_;!5  e@@#@G@;@?@GbB"i 8?T`҂"|B"BCBD!BT?;!5 d@@#@;@?@G@B"i#8"!A9y?T` bbGzB|A"҄%|D%C|F C˄!T?;7!5 d@@#@ 7@;@G@?@BFB"i#8"C9!A9C`bbGzB|A"BFD@E3Ҥ||LӄBˤ҄%|D%C|F C˄%T;o97!5 wd@@#@?@oA9G@;@7@Ըf&1|A!H!!i#8!B"9"9" 9w{_J_,i'8| MT |ӌ @hl8 T3k9;C5 Ad@@#@ C@#C9G@c@_@K@3@;@kA9'i#8|f| @hg8T;Ck95 d@@#@C@#C9G@;@_@K@kA9j @_T#C@$Ts@57@_F_"Z{cd*TB! š_!0?@bBd?@##c|c`c8G+H'ѿlT淟#9? s#@@9@ '@c$(T?@##@B@9@ š_0$š0ѠcBу š_b0_k#TATT@_k @ *Dc$Ěc0q@47@* !@c9g9C@7@@+@!HC@!!_F_@@JT҆g|ƛBT* * ` *  W @_)T#K@HlTC@?@_G_"zc*TB$! š_!0G@bBG@##c|cc@P3H/ѿT淟'9+ @@9@ /@cTXT+@'@?A9@ š_0$š0ѠcBу š_b0_#TATT@_ @ C$Ú0@?@ !@c9g9K@0?@@3@!HK@!!_G_@@JT҆g|ƛBT* *  b @_T##@PbT"1BBx`@9@9@!T҃f|śC˿iT@bTd@ CCT҂B|śEC!@@ i 8T`c|AGz|ceӆ g|* AffGz|ƛEӄ eGz ҥӧ  TH@I@ k]5gig8 ) T'i*8 bTG@H@eie8T:c BTD@F@\5hc8 Th 8(T TD@E@\5hc8Th 8@ !C@D@E @)Th`8qT @_B_ҕҐҋ ҅ dG @_&T#[@_@?TB_ TW@$Ú0 @99 _J_c@C@@ Ú0TE@c?Tef!~ef!с 7G/;'''KR+ 30J_ aT V#@K@99G@ ;@ 3@K#@O@99/@ ;@ 3@@#@@@9K@O@A9A9" p@?@99G@;@ 3@e@C@99/@;@ 3@Z@@@9?@C@A9A93@T+@eaT7@( cW@ @99_J_W@_J_@ ?1i$)1$J1 $k1ф@[@@_[@bџkb! ?0?bT@TA@? 'ы$ǚg1AT@6)W@ 99LW@@K@!H!_J_) ?jTҊ }ʛkBl  T@ G@( ) ?jTҊ }ʛkBl  T@/@h @) ?jTҊ }ʛkBl  T{`*  & @_ T#  #@A֦҆&.|ś\@Gs'@ A|ɛ)\(+@KA|˛\Ǩ4kT@_ jkcA9kRrkiT@gA9B@s9w9}@@@$@ @cA9s9gA9w9}x@@ D @-TA@E@?Th`8qTD @MTA@E@?iT@9qaTD D@DA@D@E@?T&FE˥@$5@e5Cw_C_@ҳ+Ki 84 *҆|cӪ) A@J@?(T&A@E@F@T!AA#!5!%@e5CJ! @ @ @cA9s9gA9w9  @ `; @_iT#;@4@97@@93@ #@@ _B_! * 4$*҇|c*|c i *| Jc_kTkT_kT ҄?T,TATTb@_k@kbTBc#@B@#i*8B @_Te|AGz|eӇ ңh*!T@@k]5hih8_ THi"8cx T@@Jcic8 TT@@_bTch"8 _B_   źh @_T#@p? T2B A!@!+@C|D|aēC&!|@ <'yC9_B_+@zC@'@C9_B_`* ` f  @_T#'@p? T"|2c bhba!@@!@@#|›$|@%|›&|&#|#@`<#wӃA+ /9_C_@x+#@ /@9_C_`*  ; @_T#?@TC@(aT(*TTa! @ a? T?T!\5 GK_G_C@cy,+@/@GK_G_3!0  @_IT#?@TC@(aT(*THTa! @ a? T?cT!\5 GK_G_C@য়99+@/@GK_G_  @C_ T#[@BT_@(T(*T Ta! @ a? h T?T!\5 S@C;W@cTO@?3`5O@ %^@#@S@?@3@7CB 3C@c;@g7@k_I__@O@S@ W@য়9@9@#@'@cgk_I_r N @C_ T#[@BT_@(T(*T Ta! @ a? ( T?T!\5 S@C;W@cTO@3?`5O@ ]@#@S@?@3@7C C@c;@g7@k_I__@O@S@ W@9@9@#@'@cgk_I_  @_#T#w@C!T?WC9s@s@_(aT!ҭDџTDڄڄ@E!҃!h%8_TdšCT%fhc8#Tf"dhc8_ Th"8@ Th 8C9H Tk@"B3#co@cTg@/+`5g@ ]@#@/@+@k@/[! &[@3@/@_L_T!!  l@@_L_!y!w!]!Z!WXi'8c$Ě_hTfߐT'hif8CT "dhc8_Th"8!8!56#i&8TbAddGz|›BEӅ ңcf T']5if8T&i'8 T&ic8#T&bD T%\5hd8Th%8(#T_ T#hb8Th#8B!!!!`*   @_T#g@c@Do@lT_@`5 !7[@_@?TS c@WS@c@o@7@d_Ta!5 ,\@@#@$c@o@C9h#8k@(cGmTOCg@9qjT@?K @?@O@G@C@C9K@3? TRk T;_"Ta!5 [@#@3@O@G@C@C9;@@yh$x h@9D@ )(ih8_T9a!5 [@@#@$3@O@C@C9;@A9 )h'8h@9 @(ih8_TG9a!5 [@@#@'3@O@G@C@C9A9h$8 #9C99C99~@@@3@O@C@C9? T_Tcc5 [@@#@!G@C9h$8w{_K_  ڶ @_ T#;@?@_cT7@cc57@ b[@@#@!;@B9dh 8 RkT8@RrkIT #9B99B99!@@@?T+dЄ5 6[@@#@+@B9dh 8GKO_F_ @_RT#cC9ÀkTpqTC9qkT C@9À`[@_@_cTW@cc5W@ Z@@#@!À[@h 8gko_J_ C@9@C9ÀR_kLTC3ca@c@5Ài[@_@_cTW@cc5W@ Z@@#@!À[@ ҅h 8 _TGcc5 Z@@#@G@Àh!8gko_J_~ À#@?HT[@G_@cTW@?a!5W@ Z@#@[@?@KC K@gG@kC@o_J_~$ql TqT qT$qa T[@_@_cTW@Gcc5W@ YZ@#@[@G@@ydh xB[@_@_cTW@Gcc5W@ =Z@#@[@G@x@ydh x&[@_@_cTW@Gcc5W@ !Z@#@[@G@p@ydh x ,qT0q T4q`TqkTkmT@@qTg[@D_@cTW@G`5W@ Y@#@[@gG@ư@yh"x~[@D_@cTW@G`5W@ Y@#@[@ÀG@P@yh"x ~[@G_@_cTW@cc5W@ Y@#@À[@G@@yh x eDӥ@he8_bT9cc5 Y@@#@G@ÀA9h!8c @hc8_"TG9cc5 Y@@#@G@A9h 8x[@_@_cTW@Gcc5W@ mY@#@[@G@@ydh xV[@_@_cTW@Gcc5W@ QY@#@[@G@@ydh x:(qT[@_@_cTW@Gcc5W@ 3Y@#@[@G@@ydh x[@_@_cTW@Gcc5W@ Y@#@[@G@@ydh xgko_J_h$8!?@"0(šB @B|@_@Thb8TC;9a!5 X@@#@&;@A9ÀC@|Oh$8!?@"0f|@(šB @B|@_@Thb8TC79a!5 X@@#@&7@A9gC@|!?T%˅TfxexG<@kbTTTcxdxD<@kAT e @_IT#+@'@T @@_CTB#@?TߟRk!TRk`TqT$q T qTqTc9_D_c9_D_c9_D_@c9_D_ռ  @_ .T##@@C@9#A9k!Tq`TqT3@@SS97;_C_ֿqBTpqATTC@9˥BqTqHTqTqTqT?T!3@@SS97;_C_ֿkTҪ3@@SS97;_C_ֿpqTTqTpq T ҕqT @ҐqT}ҋq Tq(TqTq T8 q Tq!TTqaT} qaT~qaTTs3@@SS97;_C_`ZqT~UqT@PqTK3@@SS97;_C_֠3@@SS97;_C_SS9!!@!/3_C_ x@#@_cTS@S9A@@/3_C_֠3@@SS97;_C_ۻSS9/3_C_քJTGhd8%qhT@qT\@ qT@3@@SS97;_C_(TaAqTkT@3@@SS97;_C_c *TDhc8џq)T3@@SS97;_C_ccB?qT3@@SS97;_C_, @_iT#7@;@ @c9@@#@@'@mT3@@GK_F_?CGK_F_ @_iGT#@T@"@9k9#c; c9'@7KkA9qTqTqT#D9@_BT@ c9'@@T`5 7@"[V@@7@@[@@7@a@_C8T?7T˄@@@_c6T@3@@@@_O_@_C1Tg@ c9?'@Tg@q @K@ Bc90'@g@?q` T7@@_,T?C,T@@  c@9K@$qT7@@_)T?C)T@@  @K@_!TR?k`T@K@D#D97@?$T?c$T@@@7@@@aA_O_g@#D9`5 7@!"!B!!AWYU@g@W@#D9kA9;@c@$3@@@@_O_ց3!"@!@@_O_kA9#D9T@9kTsWkS c93@#@9s@c@9@@(q T #D9 g??qKTS@W@cTk@_`5k@ QU@@#@g@#D9S@?@_Ah$86c~ #}@?HTS@_W@cTk@Ca!5k@ (U@#@S@C@Wo 6g@#D9?@_@W@o@S@k@W@g@qT3@@@@_O_MT@9kT@@Ca_CT@_O__s d@@s@_@_O_ր3@@@@_O_9~7@E3@A0@>-,K@_T@_O_)@&GjTiT'he85q`TTGo9Oa!5 |T@@#@(@7@@G@O@oA9h&8 c@@7@@@ٸ  @_IT#+_qmT_@@qT#3ca@$3@@c@ w#3ca@$3@c@@ @xqT_qT_q9_B_9_B_@9_B_?T' Thxg_kiT*TTgxg_kcT@Tcxf_kT_@qTB@@  @9_B_9_B_ֿT#ITxcxG<@kbTa?kT@"TxaxA<@k9_B_OLIFC?T'ThxgxI<@ kbTJTTB<@gxgxkhT@TcxfxkT 9_B_ֿT# TxcxkbTa?kT@Txaxk9_B_ ڮ! @_iT#ѠO @@`` 3!@ !5!"@53B`C3B`O @ `` 3! 5@533Br_C_ @_T##@@@C@@E@T @F @AT 2#@9#@@@C@D @ '#@9 @@#@C@@B@`T W(@9#9_C_Z @_T#'@@?T@"5BB@9a {_aTaț@ҁ@aT@1'@@@'@!@ ?@'@8'@@@! @ ?_D_@*     @_iT#@@?T@5BB@9a {_aTaț@ҁ@T@_C_@*   ѭ @_iT#@@?T@5BB@9a {_aTaț@ҁ@T@._C_@*  t __ @C_IT#O@9 ""_T@B/3+3@/@:TC@B @99S@?W@CЄ5 3S@@@9A@9 5@9!@O@;|@bk @O@{_kaTb5O@+@!!?Ta@!7;;@7@:_T"@! @99S@?W@CЄ5 R@@@9A@9S@?W@CO@ @B5 R@@#@99O@@9#@ 5BB@9O@d⸄O@e_e4'9`'@@9@3! !@T@@@[_9_I_ 9_I_¬9 @_)T#6M @/5!"@5k@o@ !6 C(g/@5!_@[9C d$TD@7;+O9;@7@:T@ @9O9O@c@Gg@Kc5 #NR@@@9/@ c@9  5@9!@_@;|@bk @_@{_kaTb5_@+@!!?Ta@!?CO9C@?@:_T"@! @99O9O@'c@Gg@KЄ5 #Q@@@9#93! !@ @9`#@c@Gg@K_@ @B5 #R@[95@5#@@#@д/@ _kc@Gg@K_@C @Є5 #Q@@@9 @9_@O9'@O@9:c TA_@ @@ c@Gg@K6L @3/@#@!@5!"@b5  L @5@53@A3@{_@ @B5 #R@[95@5@@@g9 /@  5@9_@"B_@#_c#4_K__K_o @_iT#@Ȃ3B C@?T #@@9`@#9_C_#9_C_M @_,T#g@9 ""_T@B?C7W9C@?@:TC@B @9W9W@k@Oo@Sc5 cP@@@9 s@ w@4@9@@@9OS#$ 5@9!@g@;|@bk @g@{_kaTb{5g@7@!!?Ta@!GKW9K@G@:_T"@! @99W9W@3k@Oo@SЄ5 cP@@@9+93! !@ I@9`+@k@Oo@Sg@ @B5 cQ@[95@5+@@+@i s@ w@@9@@@OSk@Oo@Sg@C @Є5 cQP@@@9 @9g@4W93@W@9: ?g@ @@ 0k@Oo@S6K @;s@5!"@5w@ w@ nK @'5@5;@A;@ g@ @B5 cQ@[95@5'@@'@s@w@ s@ w@@@99@/@@#OSg@#@@9/@ 5BB@9g@⸥g@_E4/#9n@9/@#@{9_L_{9_L_ݩ @_I T#'@Ȃ3B C@?T6J @+@5!!@5/@ /@ @!@37@99_D_99_D_@'@ 8@9 '@Ȃ3B C@?T! @!@37@99_D_99_D_+@3/@79@9_D_z @_iT#'@@! @bB@_LT9 @!: >'@ @@ )5@5'@ '@`_D__D_A @C_ T#o@ @a !!?T@!'+'@+@c:?aTA@a"@5 bM@5@5o@# o@"`۱~T5@ .R_M_R7@;@!@#@@$C@9 @/@3o@ @B5 cO@[95@5#@A#@_M_Ȩ @_IT#@@3! "@ H@9@9_C_ր3 @?9_C_ @_iT#@95!!@9@;|@k @_kaT_B_ _B_u @_T#/@99#+&7q`T 2C@9+#@@9@9@7/@G '~(@k kcA6~D7/ p M/@+#@@9@9@7/~5 @9;|@k_kaT i4e@/@@?C9@@9@@ z@@Hן/@C75@@/@7&|C4&5@9;|@k_kaT H@9#@/@5@9@9@m93rT!CA5 p מ@9/@3Cq`T@5!!@9A!A_!A_E_7 @_iT#@95!!@9B_c4 _B_ @_IT#C7  C`7@@9@C9@(_C_ |C4rT;9 B5cd@9|@"k;_kaT" C9@_C__C_: @_T#@߈5@ _B_& @_ T#{{?Tk9/@95!!@9@;|@Ck @[_kaTC/@@B>@k9@a4@ !?#@@k93@A@ ?@@6~o9k9@@Ⱥo@96k9@-_E_1_E_Ȧ @_IT##@@@ @@#@'@#@5!!@5'@ '@{@ b_C__C_ @_T#/@ @@@@5Є@d5  N"@S@ @/@@ @@#(@/@:@#@@@?@ @37_E_Q @_I T#7@9 !#@'@7@#@'@?T;@Cc{ cc@0 @@ @?C_F_`$;@T@ @y hh h(5@`5 ?C_F_+#' _F_@b'@+@#@;@MTA; Ěa!@ @@ @?C_F_ _F_ޥ @_T#ё@9@ B@_T`#'_C_ @@#'_C_ @C_ T#?C9SWp 5@9@@5B`|@Ak @5B`[_kaTA5`>C5`?@9A@O@a@b@? T7B3!3$@&@'@T  J@@#@3B@3A5!"@5333B307@O@3 3 5!!@a5x$ . @3!5I@3@?iT;O@ O@ 3@7@?T;@!SW9?@_I_ASW9?@}_I_53 }_I_[ @_ T#т3B3@@A@ cJTxc95@f5@ǭ3B333@@cT%xc@5@h5 @3B3 @ @f5ҟ3B3@@@333!3$5!$@d5C3 33@3!@a5~_A_ @_iT#@?_B_ @_IT#@ Ձ@@`kT&ŀE*T||%e@ƀ!h @5@`5#" 85@9 ҁ! ҁ_!Ȼ@9_B_9_B_9_B_a F @_I T#@ զ`ӿk@T **5 @9_aTț @%*@BT||ӂh`A@!Ta5@d5_|ܬB ڬ@9_B_9_B_  @_ T#@ զ`ӿkT*5@9_aTț @&ѥ*@T||Ӂh`$@!Td5@e5?" ҋ @#@'@C9_C_C9_C_ֽ  @_IT#/@@@ D @#!-} G@}#@  5@5#/@A" O/@L@  ܓ#@#;93@ 7@@9`#@@BB D@ @5BC@5#@#$#@#!- G@@@  5@5#/@" /@ #@ @3@ 7@_E__E_" @_T#'@@@!! @@@9+/9_D_9_D_ @_T#/@9 a9_E_#@;9 # @@@9#@@@ n@9`#@ 79_E_379_E_ @_IT#{_B_ @_T#@9@5BB@9@#c@$_$60C9g_C_ @_T#@9@5BB@9#c$_$6 _B_h @_T#C1T;Rr+T 8  e@9P5BB@9#c$_$5 C9@_C_4 @_T#@95!"@9@[|@k @_kaT@5!@#@9bD㸄bE_ER+T҂P!@9a!d_d4 C9Ü_C_ @_T#'@9@5BC@9$㸄%_%/RkkT  { ט'@5B/@ 0C9{@'@5B/@|@?KTA@9B_c4_D_ `+ @_ @_T#@9@5BB@9@#c@$_$60C9G_C_j @_T#@9@5BB@9#c$_$6_B_H @_) T#'@9@aT "'@+@C|`5@9$%_ȥ%Ȼ`Ӄ74_mT_kTk T4"@aT? _D_/C9қ/@@5_D_@* @* @*`   @_T#@ _B_ܠ @_T#@9@aT "@"C`Ӄ4C5@9#;_aT#țL@@_C__C_@* |  @_T#Ѡ6A @5@5`3 b3B V_C_} @_)T#@@@#@d@e@!T Z@9`@@#@"@ {@9@@#@!@?#9_C_K @_T#@@#@C@D@@T @9@@#@C@T @A @?#9_C_  @_IT#@@#@C@@E@AT @9@@#@C@T @C @AT@ {@9#9_C_ @_T#@ '@?T#@"x`;c@9`@c9_C_c9_C_˟ @_T#;qTqT$?q TqT q`TqT@9_C_9_C_3!!@ c@99_C_ @_I T#@?HlT@y@yqT@4@?T&FTˇ@y?kT@y_kT?khT@yqaT@ A4!<@;`<@k#9_B_#9_B_lc? Td@ykT@ykT@yqaT@ A`4!<@;`<@k#9_B_#9_B_#9_B_֥ * @_ T#@?HTC@@2@C@?mT%˥EiTF@@@kTkTkcTqaT@`˧4 k#9_B_#9_B_fc?TdD˅@kcT@kT@?qaT@!4@k#9_B_#9_B_#9_B_@ Ş @_iT#'@@@@?mT$ӄD@ySkT Cy@9c9_D_S @@@_T#@kkT #l@9c9_D_c9_D_ @_T#'@A@C@D@@@T%?T%ӥѥ@ySkT(T˥ Cy@9c9_D_S@ @A@B@?T@kkT ##@9c9_D_c9_D_qW < @_ T#'@_ TS/@3@s9_D_?-T&F)T@@C@7'@k T+@kTkkTxkT`A@s@9_D_s@9_D_s9_D_  @_T#Kq,T?dq@S_D_3!!"@#@!@3S_D_ @_ T#Kq,T?dq@S_D_3!!"@#@!@@g3S_D_ @_) T#+_kHT T3c"a@c@ 0'xcx3_B_3_B_?T%˥EIT~fhfx_kmTTT~`h`xa_kT @y3_B_ +?kT3_B_ i3_B_]Z ? @_멭T#eA@+!! bB< @T@[93@4@a5C!+@ bBT@[93@@4@a5Cڥ!+@ bBoT@[93`@4@a5Cå!+@ bBXT@[93@4@a5C!+@ bBAT@[93`@4@a5C!+@ bBP @*T@[93 @4@a5C~!+@ bBT@[93 @4@a5Cg!+@ bBS@[93@ @4@a5CP!+@ bBS@[93` @4@a5C9!+@ bBS@[93 @4@a5C"!+@ bBS@[93 @4@a5C !+@ bBT @S@[93 @4@a5C!+@ bBS@[93 @4@a5Cݤ!+@ bBrS@[93@ @4@a5CƤ!+@ bB[S@[93 @4@a5C!+@ B @DS@[93@4@a5C!+@ bB-S@[93@@4@a5C!+@ bBS@[93@4@a5Cj!+@ bB R@[93@4@a5CS!+@ bB\ @R@[93 @4@a5C<!+@ bB@R@[93@4@a5C%!+@ bBHR@[93@4@a5C!+@ bBPR@[93 @4@a5C!+@ bBXR@[93@@4@a5C!+@ bB`uR@[93@4@a5Cɣ!+@ bBh^R@[93@4@a5C!+@ bBpGR@[93@4@a5C!+@ bB` @0R@[93@4@a5C!+@ bBR@[93@@4@a5Cm!+@ bBR@[93 @4@a5CV!+@ bBQ@[93@@4@a5C?!+@ bBQ@[93`@4@a5C(!+@ bBh @Q@[93`@4@a5C!+@ bBQ@[93@4@a5C!+@ bBQ@[92@4@a5C!+@ bBxQ@[92@4@5C+@b3BAȢb3B+@Ģ>@'!! bBWQ@[92?@4@a5C!'@ bB$~@Q@[92?@4@a5C!'@ B()Q@[92?@4@a5C}!'@ bB&Q@[92?@4@a5Cf!'@ B }P@[92@4@a5CO!'@ B @P@[92 @4@a5C8!'@ B,}P@[92@@4@a5C!!'@ bB0P@[92`@4@a5C !'@ B"P@[92@4@a5C!'@ bBXP@[92@4@a5Cܡ!'@ B0 @qP@[92@4@a5Cš!'@ B"ZP@[92@4@a5C!'@ Bl}CP@[92 @4@a5C!'@ bB&,P@[92@@4@a5C!'@ BL @P@[92`@4@a5Ci!'@ B}O@[92@4@a5CR!'@ bBO@[92@4@a5C;!'@ BtbO@[92@4@a5C$!'@ bB&O@[92@4@a5C !'@ B2BO@[92 @4@a5C!'@ bB$'O@[92@4@a5Cߠ!'@ bB%~tO@[92@4@a5CȠ!'@ B }]O@[92@4@a5C!'@ B`<BFO@[92@4@a5C!'@ bBT'/O@[92 @4@a5C!'@ bB'O@[92@@4@a5Cl!'@ B"O@[92@4@a5CU!'@ B @N@[92@4@a5C>!'@ B}N@[92@4@a5C'!'@ B @N@[92 @4@a5C!'@ B=BN@[92@@4@a5C!'@ B&bN@[92@4@a5C!'@ bBwN@[92@4@a5C˟!'@ B}`N@[92@4@a5C!'@ B,IN@[92@4@a5C!'@ B @2N@[92 @4@a5C!'@ B @N@[92@@4@a5Co!'@ B}N@[92`@4@a5CX!'@ Bl }M@[92@4@a5CA!'@ B?BM@[92@4@a5C*!'@ bB4)M@[92@4@a5C!'@ B @M@[92@4@a5C!'@ bBPM@[92 @4@a5C!'@ B }zM@[92@@4@a5CΞ!'@ B$3cM@[92`@4@a5C!'@ B }LM@[92@4@a5C!'@ bB@5M@[92@4@a5C!'@ bBd)M@[92@4@a5Cr!'@ B7@M@[92@4@a5C[!'@ BX @L@[92@4@a5CD!'@ bB|)L@[92 @4@a5C-!'@ bB)L@[92@@4@a5C!'@ BL }L@[92@4@a5C!'@ BH |L@[92 @4@a5C!'@ B#}L@[92@@4@a5Cѝ!'@ Bp*fL@[92`@4@a5C!'@ B OL@[92@4@a5C!'@ B }8L@[92@4@a5C!'@ bB*!L@[92@4@a5Cu!'@ B @ L@[92 @4@a5C^!'@ B }K@[92 @4@a5CG!'@ B }K@[92@ @4@a5C0!'@ BpBK@[92` @4@a5C!'@ BlbK@[92 @4@a5C!'@ bBK@[92 @4@a5C!'@ bB*K@[92 @4@a5CԜ!'@ B"iK@[92 @4@a5C!'@ bB@RK@[92 @4@a5C!'@ bB;K@[92@ @4@a5C!'@ bB,+$K@[92` @4@a5Cx!'@ bB K@[92 @4@a5Ca!'@ BL }J@[92 @4@a5CJ!'@ Bl }J@[92 @4@a5C3!'@ bBt(~J@[92 @4@a5C!'@ bB\+J@[92 @4@a5C!'@ bBt+J@[92 @4@a5C!'@ B }J@[92@ @4@a5Cכ!'@ B @lJ@[92` @4@a5C!'@ B"UJ@[92 @4@a5C!'@ B @>J@[92 @4@a5C!'@ B8B'J@[92 @4@a5C{!'@ B @J@[92 @4@a5Cd!'@ B`5I@[92 @4@a5CM!'@ B)bI@[92` @4@a5C6!'@ B ~I@[92 @4@a5C!'@ B5I@[92 @4@a5C!'@ B"|I@[92 @4@a5C!'@ B I@[92 @4@a5Cښ!'@ BB(~oI@[92@4@a5CÚ!'@ BB(~XI@[92@@4@a5C!'@ B"AI@[92`@4@a5C!'@ BB|@*I@[92@4@a5C~!'@ bB @I@[92@4@a5Cg!'@ bB0 @H@[92@4@a5CP!'@ B"H@[92@4@a5C9!'@ B *bH@[92 @4@a5C"!'@ BL*bH@[92`@4@a5C !'@ BB)~H@[92@4@a5C!'@ BB@H@[92@4@a5Cݙ!'@ bB\rH@[92@@4@a5Cƙ!'@ Bl[H@[92`@4@a5C!'@ bBDH@[92@4@a5C!'@ B }-H@[92@4@a5C!'@ B6H@[92@4@a5Cj!'@ BxBG@[92@4@a5CS!'@ B"G@[92@4@a5C<!'@ BBG@[92 @4@a5C%!'@ B*bG@[92@@4@a5C!'@ B*bG@[92`@4@a5C!'@ B"G@[92@4@a5C!'@ BBuG@[92@4@a5Cɘ!'@ bB^G@[92@4@a5C!'@ bBGG@[92@4@a5C!'@ bBH @0G@[92@4@a5C!'@ B(~G@[92@@4@a5Cm!'@ B"G@[92`@4@a5CV!'@ BT+bF@[92@4@a5C?!'@ BL }F@[92`@4@a5C(!'@ BBF@[92@4@a5C!'@ B=@F@[92 @4@a5C!'@ bB,F@[92@4@a5C!'@ bBxF@[92@4@a5C̗!'@ B "aF@[92@4@a5C!'@ BBJF@[92 @4@a5C!'@ bB@ @3F@[92@4@a5C!'@ bB\ @F@[92@4@a5Cp!'@ bBx @F@[92@4@a5CY!'@ B,bE@[92@4@a5CB!'@ bB @E@[92@4@a5C+!'@ bB @E@[92@4@a5C!'@ B~E@[92@4@a5C!'@ bB @E@[92@4@a5C!'@ B "{E@[92@4@a5Cϖ!'@ B~dE@[92 @4@a5C!'@ bB-ME@[92@@4@a5C!'@ bB @6E@[92`@4@a5C!'@ B}E@[92@4@a5Cs!'@ bB\.E@[92@4@a5C\!'@ B }D@[92@4@a5CE!'@ B,}D@[92@4@a5C.!'@ BBD@[92@4@a5C!'@ BBD@[92 @4@a5C!'@ bBt.D@[92@@4@a5C!'@ bB.~D@[92`@4@a5Cҕ!'@ bB.gD@[92@4@a5C!'@ BB*~PD@[92@4@a5C!'@ bB @9D@[92@4@a5C!'@ Bl}"D@[92@4@a5Cv!'@ bB  @ D@[92 @4@a5C_!'@ B}C@[92@@4@a5CH!'@ BB@C@[92@4@a5C1!'@ bB$0C@[92@4@a5C!'@ B@.bC@[92@4@a5C!'@ bB0C@[92 @4@a5C!'@ BBC@[92@@4@a5CՔ!'@ B(|jC@[92@4@5C'@B3BAB3B'@0@#!! Bt5@IC@[92`?@4@a5C!#@ B ~2C@[92@4@a5C!#@ BB%~C@[92@4@a5Co!#@ B=BC@[92@4@a5CX!#@ B"B@[92`@4@a5CA!#@ B }B@[92@4@a5C*!#@ B"B@[92`@4@a5C!#@ bB)B@[92@4@a5C!#@ BbB@[92@4@a5C!#@ BzB@[92@4@a5CΓ!#@ B<(bcB@[92@4@a5C!#@ B( ~LB@[92@4@a5C!#@ Bl05B@[92 @4@a5C!#@ B$1B@[92@4@a5Cr!#@ BH$|B@[92 @4@a5C[!#@ B BA@[92@@4@a5CD!#@ B-A@[92`@4@a5C-!#@ B4"A@[92@4@a5C!#@ B A@[92@4@a5C!#@ B@<@A@[92@4@a5C!#@ BB}A@[92@4@a5Cђ!#@ B|<@fA@[92@4@a5C!#@ Bp OA@[92@4@a5C!#@ B4b8A@[92@4@a5C!#@ B ~!A@[92@4@a5Cu!#@ BP  A@[92@@4@a5C^!#@ bB @@@[92`@4@a5CG!#@ B;B@@[92@4@a5C0!#@ BT"@@[92`@4!$@d5C!#@ BB@@[92`@4@a5C!#@ B,b@@[92@4@a5C!#@ B @@[92@4@a5Cԑ!#@ B"i@@[92`@4@a5C!#@ B=BR@@[92@4@a5C!#@ Bl.b;@@[92@4@5C#@B3B`AB3B`#@,@!! BBP @@@[92`@4@a5Cn!@ BB@@[92@4@a5CW!@ BB?@[92@4@a5C@!@ BB?@[92@4@a5C)!@ BBT @?@[92@4@a5C!@ BB?@[92@4@5C@B3B AB3B @N,@!! BBT'?@[92@4@a5Cڐ!@ BBPo?@[92 @4@a5CÐ!@ !!X?@[92@@4@5C@A3!@ B3B@@_F_ˇ @C_ T#O@`ˢ`Q@A! 8S3a@A! SW_I_քSh!8!(T҂C|cCd?PT?PTS@h!8!! T;@@ҚҗBB @:@@SW_I_Eh 8_(T҃d|›CӅBPTP"TAAh 8! ;@@a_ D{ @_IT#w@@@"@@BT/ +@@#@w@4!"@b5bw@/@"`x!{@@aC@;Tw@ @9@ 4BC@#5w@CC@;T 1w@ CvA4B{@d@cT@9w@@@3;@?@f@@BT+ o+@@#@w@A4!!@a5C+@bb#@;T@@@ ? T |@_N__N_@T@9!! _N_֭ Q @_ T#W@@@# @@_T3 +@@#@W@A4!$@d5C D`>3@"x![@"\@9b(6!@ }@@9`@9@  }@9U@9  W@C@cc}C@7}?C@CC@D@E@f"T9 *@@#@W@A4!!@a5CA9eEcˑC@;TC@c CC@B@`T`|@_9_J__9_J_ c @_>T~#@C\@9c@+@ T,T8T0T@@@" @B4c c@KT4B B@_T/@Ҡҋ<aT@ @!4B B@_+T4! !@?T@G2@ @!4B B@_+T4! !@? T@T`TT((T@@@@ @9@99_@_,T@@ }@9@99_@_XIT`TdTC @C@@҅h Ti\AT@@ }@@9f@99_@_@@ }@9U@99_@_LTDT@ @T@@@ @D@99_@_9_@_@9_@_P@T@@@@ @@9"@99_@_@@ }9@99_@_@ `+@/* = 7@C@@@@TA @F@T7 "@!@ A@9 9_@_@9_@_9_@_֦#@;T @ B_T ~G$ K}O @[@@@T? 9)@@#@@A4!$@d5Ca@?@}@~@9_@_֦@;T @ B_T ~_$c~g @s@@@T; (@@#@@A4!$@d5C@;@~@~@9_@_֦&C@;T% @% cT~w{% @%@'@(@"T3 (@@#@@A4!$@d5C،@~/@3@@ @C_T#[@ TB94W@_ `T`W@O@d@4 @TS@9_I_*j) q c@; Ti@)imT@ Ś0'@k@/I37i@?i@*k@l@ T+ B(@@#@O@A4!$@d5CjB9W@S@+@@@[@O@@9_I_* Z*4 S t @_i6T~## ~T?!$ @@ay @9@ @@@rT@@ @T5 '@@#@@A 4!!@a5CD h%8@@@|C*,Th`8@@!ƚh 8@2 @@rT@@ @T5 '@@#@@A 4!!@a5CD ċh%8@@|C*$T@}@P@9e6  }`@y5FD!T/G@b@/@@@?TGxb w@@@dT@9c@?@˄c@@G@Tx`&aT@?iTxf@@TTB˥BB TҲ @@ @u!?@ @ Cc}P@9e6  }d@y8rT8@`@y<@ӿT˥}ӥ;73{ C@@?@;@7@{@3@JTCxec @ @@C@ Tdx`%aT@? Tcxe@@ T# TcB˄BB T, @@ @!@# ~T?#@;TCcc@;T/3!!}7;_@_BDC@;TK@ T$LT  'BE@;Tc@ T%LT ڊيlՊԊ H @_T~#@U@T@@  @@{@w@@ @?@@{@Tw@ @99_@_֚Z0@@@@ @@@@?@9  @@!T ?T@"@_ zT"@z86@C@@@@ @@T տT@@ !wT@v86@@@@S_OK ?@W@sK@O@__@S@D0_b0[c@ s&@@9C_@[@s@W@@ '@@9 @@?PT?DaT1?LT@H786@@@@  @@G?PT"H_ T?PT?XiT?\T@@@ ?h!_TH786@@@ @@9_@_9_@_?PT@"@_B@҂@@$ @d@GPTHѿ TPTXiT\T@@@ hVTcH786@@@@%;9 `@GPTH?TPTXIT\T@@ hOTcH6c86@ @@9_@_@ ,@o@w@G@@ @,o@w@ G@@A99_@_?X T?\@T?daT@@ 5@+@@ 9/@{@w@@ @9/@@{@`Tw@ @99_@_@"@ @d@GPTHѿ TPTXiT\T@@@hA6TH6@ 86@@@@_B@Ңʂ@ 1@C@@ @1@C@T@@ @6@O@@ @y6@O@`T9@9_@_9_@_9_@_?T!TH6@ 86@"@@_B@ @d@GPTHѿ TPTXiT\T@@@hTH6@ 86@@@@B@ 81@C@@ @/1@C@!T@@ @6@O@@ @ 6@O@T@@ @1@@M TCi@9_@_9_@_9_@_@@ 5@O@@ @5@O@T@9_@_@@ @I+@o@w@G@@ @<+o@w@ G@@[A99_@_@9_@_@? @9_@_@9_@_k@c`?k @w#@G$@o@@ @0@g#@c'@;@@ @o@w@G@0'@@#@;@g@c@ @A9?@C@? T9_@_֠ @a!x5G@!* u3@ 3@@ @C0@3@?T@@ @,@o@w@G@@ @3@,@@@o@w@ G@@A9`9_@_@9_@_֠ @a!x5G@!* #7@A+@?T7@@ @*@o@w@G@@ @7@*@@@o@w@ G@@gA9`9_@_@9_@_ր6 @a!x5G@!* ٽ% @a!x5G@!* Ƚ @a!x5G@!* /@A@/@@ /@/@?T@@ @=,@o@w@G@@ @/@.,@@@o@w@ G@@A9`9_@_@9_@_* 5 o* 5 h } @_T~#AAA $3Є-@9A&3Ơ-4@5 A'3- "3B- A64 AKOK@@\@9@y{k O@ Մ@9DA(3-@5A#3c-b"3B-AASWS@A"\@9C@dyB{_k W@+/;3?7 ;@G@C7@?@ +@{;@@G@TC@ @99_@_   ~Tc3 @3@;@ /@7@?@+@1A99_@_AA`T A A@99_@_|F @C_ TC ~#_A H6WA"\@99[A ;_A {C9B@A@@D & T{0@@C ~TC Cc@;TcC @;T? @@@4!"@b5 P@_AJ{@!@5WA[A WA>[A:OASA $@9c@g_A{{k_@C _@0 *`8  <|s @_T#@_A_!@9 ե @ Ś0$?7 _A_m | @_T#@@96_A_!@9 ե E@ Ś0$?7AB$@9  @ ƚ0E?7 Հ _A_,+ { @_) T#@@96_C_B@9  @ ƚ0%?7bC6' Հ?`Thc''iu@Z @@#'_C_!E@9  f@ ƚ0E?7` ӲҲ s{ @_ !T#k@_Ts@T OyC ;y Ey{h!8!DG?(T?(TB@{h!8 gySi%8fG(T(bT;?c@Sh%8Gg7_TH C9)C9C_95 l@C@?IT[_A99"?@dDBB@B{T ń[@C@?@b? T#ck@넰BBg@Ts@_  s@[@C@s@T7@?CTG@%˥;@먤ccS?aT/3W /@3@s@W@G@;@[@C@T!! _Bao@T s[@{_L_߃݃ۃAҾAһAҸAҵ {o@v @-#@'@ @!* ^. g@v @-#@'@ u@!* C dz@c9_ @_T#2BC@A@/@jTT|aha`@37_E_@ E@@"B2 ~N-@@37_E_F 'z@P@96\@9!@?PT?HhT?DT?HT _  _?LT _@ _?X(T?TT` _ _?\ T?dT _@ _ _ _ց @_T#@(s@ @@@BP@96?T!BB@#'_C_#'_C_@ y@@ _ց @_IT#/@ \@9!@!?8T@}3_E_ @@B ,@@ @!* p*`: i y@T@9 _@X@9 _@\@9@ _@ _ @_IT#@G @@ @y5@_@@T#_B_#_B_p Ny @_T#@\@9!@?PT @#_C_@#_C_3y @_I0T~#~T@\@9!@?PT@ R#c@;T#C@;T_@_@ @@)_)T@| h!#o! k @r@ @@ @or@`@yb5_D%T AS!@S@a@B @g@@#@!$ &4Х@5@ @@P@9h6  }`@y5 iDT?_c OT*ycK? bT[wc )@@#@+[@$ &4Х@@?@_@w@O@L|h, @m5! B Wsd@y8raTc8@`@yc<@TcC @@"P@9b6  }$d@y8rT 8@%`@yF<@ӿT˥}ӥ;cC@BG_TxbT[g! @@#@(@[@;@c@G@g@|* J& h)4)+@k5 ހ  KkC@9s@O@ W@k@G@K@9#@{'@'@o!7 @@kq@4@5@@{@" B&?To@`@_@_ 0  ll*:  wy @_IT~#~T@"\@9B@_PTp @  @y5@_@@(T_TC?~T9_@_~T@ @A9@;Tc@;Tc@;T9_@_~T9_@_K@c@GK@p@ @@@_T@ @9@G@C@?LT@G@ c@;T@;T@9_@_pE  wa @_IT#@P@96 @@p@ @@#'_C__C__C_v @_T#@P@96@  @_C_рCh`8qT?cT aA#'_C_ v @_T#/@\@9!@?HT@3_E_ @@B B)@@ @!* h v @_IT#/@\@9!@?L!Td@yqk9_E_ @@B )@@ g @!* 5 Vv @_i T#/@\@9!@?HhT?DT?HT@! !&!37_E_@! !&!37_E_?T`T?XT?\AT@! !&!37_E_@! !&!37_E_@! !&!37_E_ @@B= )@@ @!* ̵ u @_T##c~T@\@9!@?dT@ gc@;T#@;T_O_ @@B$ B(@@ @!*  u @_T~#~T@\@9!@?daT@ @@}C#@;TC@;T_@_ @@B "(@@ m @!* ; \u @_) T~#C~T@\@9!@?dTC~T@ @}#B9@;Tc@;TCc@;T9_@_, @@B` -(@@  @!*  u @_ T~##~T@\@9!@?dT~T@ /B9c@;T#C@;T#@;T9_@_ @@Bd0 '@@ @!*  t @_iT#/@\@9@LATP@9e6  }`@y5_D(T3@Tx`! !&!7;_E_}l} @@B\ '@@ r @!* @ at @_T#/@\@9!@?TT@! !&!37_E_T @@B U'@@ < @!*  +t @_T#/@\@9!@?DT @3_E_& @@BX! @''@@  @!* ܳ s @_T#/@\@9!@?dT @3_E_ @@B$ &@@ @!*  s @_T#/@\@9!@?LT`@y3_E_ @@B {&@@ @!* | s @_T#/@C\@9c@LaTCd@y8raT c8@B`@yca<@T 3_E_| @@B/ "&@@ q @!* ? `s @_i T#/@C\@9c@LATCP@9c6  }Cd@y8rTc8@D`@ycBa<@T#}ӤB3@T@x`! !&!7;_E_A|p|6 @@B> 7&@@  @!*   s @_)T#/@`T T !T d.3~7_E_@ @@BB @&@@37_E_ 837_E_ $37_E_r @_I T#cc~T+@'@"@# @T_D_}Chml@q @@/3@+@ @C@9C7 @@7;!'@@[ @@7;@'@]l@! !&!?C+@S_D_zr @C_ T#~To@ @; 9_M_7@a;@o@?jT @@?bT7"}ӂhl@ @@w@_Ts@ @9`w@o@7@ uc@;T@;T@9_M_9_M_;{  r@9_ @_T#/@3@ 7@;@ @@?C_E_q @_T#7@;@CTcAbE? T_ Tfhb8qaT?) Tfhe8߈qTF˥e@8T T˄C@T'#+?@ i@9 #@+@C@c9_F_Teh`8q`TB_Tehb8qTq@TqTqTTbTh`8qTpqT'@@ ^@@@GK@c9_F_zzzzz nqu @_ T##c~TW#@@"@# @TA "@_# c&c7B;"@ @@'+@@!@?9@!@9A7@@ @@/3@@& @@a?C@@AGQ @#@K@OS_C_*`:  q @_I T#c~T_@9! !&@@(@ ?cc@;TK@g@?TKc@Cx`MTG@O@SL@@? @XTO@$@S@ ? @@L@? @dTO@S@O@$@S@? @@G@_K_p @_I>T~## ~TOA~T V' @@@# @g@ mTgc  9_@_@J  OK?9 @{"@%@kC 8!@@9@?B9@O@K@@C @"@@9@ @w@O@K@@?B9@c@_Tw@@  @ T @ @ B+T[so;9 @ @ @@@C@c6B@C\@9c@XT_ @@@? @@_@AC@ `?c@9 ;B9@a"\@9B@_dTB@  @@T@ @! @Y"@@@c@  @@T@ @B"@{@ !K@#@{@k@ }[y{@k@_cT@c@ /@@#@{@[@dx o@s@cT@SW @ @@#@{@S@W@o@@[@ ! " 4JK@5{@i"# @*xB 'x;B9@"@ @!@{@[@4J;B9@s@o@@ {@[@4J;B9@s@o@@@B@  @@ T;B9` @[@ c@;TC# {@ !@#@{@k@ }x@C{@Gk@K#_cT @@#@KC{@(G[@x!4J@@s@o@@# ~TO 9_@_N w n  @_T~#C~T@@C @S9_@_W@@@O@ _B9@S@?jTE @F@? TO_9  W@M @@@_T@ 0@9`@@O@ c@;TC@;T@9_@_$~T[ !?[@_c B9c@;T#C@;T#@;T9_@_Fw +nn @_T#@@A @#@_`T@ @9#9_C_m @_T#_@,!53!"B0 s@@@9_@ @@BB- @!@C@/ @@_@"B%T;9c_K_g@c_K_ @6cTxc@_AT3 0  %j@@"B%! T;9c_K_ր+OSO@Ga!G@9 @K4@5@;T`  (C@/@ 9@gK@ (?,_9@_9_@@ _ @7+@K@ 4@5_@ "_@6v3B"B0  % @@"B%T;9c_K_ @6d @6^ ;m. @@ @hc8ce2 F|?,T+_ @_iT##@L@'@? @PT#@! !&aT'@@ c@9C9_C_ 0 N*``; ׬*` ; Ь l @_T##@ #@! !&T'@@ c@9`@'@@ Qc@9C9_C_ 0 *`;  l @_T##@@#@! !&T'@@ /@C9_C_ 0 *`; l l@ @C9_ @_).T#w@C\@9c@PATC @c{@d\@9@PTE @`@y5@_@@(TG?w@9_N_@9_N_9_N_/@G@?@@@y?JTf@g @T/k3}hek@3@ @/@@BTSg`|?@ h"B7 {@e@c@; @_g@@;@`T_@@9`{@7eS@@[w@e@[@g@C@9#7& @@w@@ @@#Kc@ @@G@{@e@ @@#@?TK@ ~@93@Bw@d @lTw@3@ww@3@t@9_N_9_N_ttpt {@w@d @jTD@E @?T+k7 }ӀhVek@7@ {@C@D @@+@"TWgk}`hDe@cH@; @_g@Ak@+@ @;@_`TC_@@9+@C@{@4eW@@[w@,e@[@+@`g@C@97 @@w@@ @@O'c@w @@{@@ @@'@_TO@ @9 +@7@Bw@d @T+@w@7@ww@7@t@9_N_9_N_)t&t  k @_T#3@K @ `T'/@@`@3@@`/@ @#@3@ @@#@@ @9E@99_E_j @_iT##@@T"P@9b6P@97"\@9B@\@9c@T#9_C__HT c@9#@@ @c9@9#9_C_@#9_C_@#9_C_j @_ T#A9@7@/@`T3@ ;@p@99_E_/@\@3@ ?@ @#7@C\@;@`?@@`T@#@@9`@/@L@3@ ? @7@"L@;@@? @@/@t@3@ ?@ @#7@Ct@;@`?@@`T@#@@9@Ҡ9_E_/@@3@? @7@!@;@ ?@c9 @99_E_j @_;T#c@_@ T "\@9B@\@9c@TC<T_`@T_hT_Lh T_D@T_H T_LaT"d@yd@ykT"`@y`@y_kaTjC9_K_, @;_@' @;@`T_@~ @S@Oc@w @@S@O@ #C990@9C9_K_ @7c@ @7@`T_@W @S@Oc@P @@S@O@ #C99 @9C9_K__THT_PT! @ @@C9_K_C9_K_% @S@Oc@ @@S@O@ #C99@9`_@ @S@Oc@ @@S@O@ #C99@9C9_K__\T_dT" @ @_T @@7 @Sc@C@@7@TS@@9_@C @7c@:C9_K_C9_K_C9_K_ @S@Oc@ @@S@O@ #C99~@9C9_K_@C9_K_C9_K_@C9_K_+@7@c@_@ TE@A @ T @ @ T+CKG3xf@/ @S3@K@dxbK@3@ @/@T?S@@9C@@?@C@ & #C99-@9#C93@G@!x`@/ @S3@K@bxb@/@`T@S@U@9@Ҁ#C9C@B@?@c@TC9_K_C9_K_C9_K_C9_K_@C9_K_֙qq#@_@# @#@?jT_@ @S@Oc@#@ S@O@ #C99@9 C9_K_'@ '_@ @'@?jT_@ @S@Oc@'@ S@O@ #C99@9 C9_K_@C9_K_/h @_T#!a@@@ @?-T7[+ _O_`@ @BT;sc?g/3Jxd_ @s@7@[@+@;@S@O@o@?To?@_@g@7@[@+@;@/@3@c@s@ -T  ˍ TKCW y   @@ @@@W@K@W@LC@G@?@_@g@s@7@[@+@;@ TBTGSoO y  k @@@_T@ X@9S@O@cTo@0o@ 2 @@#@S@ 4 @5k@x$k@Wpk  p  pp rgE @_iQT~#{9E9@a@ |@bhb`@BL@@? @\@E9b^@B@g@$mT -T@TTmTLHT` ` @y(`X @z `P @{`H @|`@ @}`8 @~sg@94Є@5@;TCw!9 w!s@w@C@4Є@T@ҖC?wE999  @+@99  @+@@?T@?@C@w@?@_ Ts@_P9@@C`yAdyE9c!qAdyck3!B3  @@@9bBT @!@G Հ4@9@@3B|@Ak @3B[_kaTA3 `>3@{9c@g3!!3 @@@9bBT @!@G\O@Oc@s@ @c@; @{@GK@b{@G@_TKxbWs@ @c9%@9O@W@c? @@{9@_@_c@;@ 9@<`s@ (?,O@c? @@{9@d_@_K@b@G@_TKxb_s@ @c9@9 &_@{9@F_@_ 6K@@G@BTKxc[s@ @c9@9 &[@_@_ 6*`< @@?@C@w@@G@H@ )& TGT?kc0 9 @@#@c@@@G@?@k@ )&w?C 4kl@l5x$ Tno@!|X9@!|P9@!|H9@9  ~5+@G@!@_,T?@0 @#A4?@C@w@s@i@j@ k&_ TG_ bTo?c0  @@#@ s@@4@G@?@c@o@ k&w?C, @m5)x'  mo @|X9 @|P9 @|H9 @9  ~+@G@!@_T4?@C@w@s@0 C*``< ̤*` < Ť K_@_dp @C_i T#@ @[_3!B3 sB@@@9"Є? T@@@ЄҦBT3B0 M @@#@Є3@C;7" 4@5O@"x%O@lm[@ Y @?C@;@ 7@@3!!3 ?@! &SO@W_I_ 6 Md @_5T~# '@@99@P@9e6  }`@y5_D1T/{z ;@@{@/@3*T;x`mTh?bTS5 @#@;@/@3@@{@@S@ ) )@yh#x73C@9 @`@y!;@_a T3@# O7@cT@5@ @#@3@7@y@9h!x@9@@@3@! @! 37@cT@K5@ O@m@#@K@@7O@ |m7@3@@~@@3@"O @7@cT@K5@ D@#@K@@3@7 Sm7@O@@Ub?T5 (@@#@3@@%h#8P@9c6  }d@y8rTc8@`@ycc<@(Tc}3w+TD?"T5 @@#@w@3@+@%{h"8-TD?"TG5 @#@w@3@+@G@% @yh"x7! l?@w@+@%S@7@@3_JT?xb_T?TC5 @#@w@?@+@3@%@C@ ) )@yh$x37 @3@S @7@cT@O5@ @#@O@@3@mT?TB5 q@@3@%h$8 @@_@_llk bM @C _0TC~#c~TWA\@9!@?La+TA"\@9B@_P'T3Bcc C@@@9 ~TB<#T  @;T @;T@@@;T_@C_AA c#@;TKBw;BsB { @}T9w@s@!!!}SB!@!}SB"@4#@!@?T4!$@d5k4!A; @@oA4 @@C"BL5 b@o@Bh #' +@/3@7@A @@"B " @3#@'@ 9|@ \@ (@. @!!/ @!4!!@5@@@  @j@"jAA ~TC @;Ta! ,@@B< "@@3B@ @N@@ ~TB<T  @;T @;TA#A# @;T_@C_ 6}j 6m @@B1 n@@ U@!* #U @@B V@@ =@!*  ,aw @_T#@@WR @!7_B_` @_)-T#G@C@C\@9c@PTD TbH_TPaT?@C@ҫ`TdThT?@C@+C @3?@C@_G_/ "@!@A /@3@?@C@G@?@C@TA @F@T_G_iDD@eCӟkT ՟rTD@F@G @T5 O@@#@?@A 4!$@d5CD tiC@Eh$8A@D@|C*T8rTC@dE@F @bT5 "@@#@?@A 4!!@a5CD GidDh#8C@A@D@|C*bTah`8@@ Ě!ah 8@@@siri+A@#@?@C@c @+@G@A @+TDD@eCӟkT ՟rTD@F@G @T5 @@#@?@A 4!$@d5CD hC@Eh$8A@D@|C*To ՟rTC@dE@F @bT5 @@#@?@A 4!$@d5CD hdDh#8C@A@D@|C*"Teh`8@@ Ědh 8C@cCrTC@dE@G @T5 o@@#@?@A 4!!@a5CD h@dDh#8C@A@D@|C*BTah`8@ Ě!ah 8@@@hhh _ @_IT#'@\@9a(7/@!86a@7+@ P @'@+@ R'@@ /@86+@!@+@@@37_D_*@`= I j_ @_ T#W@@@2cd@a@?T T|Ӂha@@ W@@B2 ~_@@W@C@B@D $B~#'d<+/3@7@[__J_@@A@BB "@x R#@'@[__J_&h _ @_T#' @< @@ @@'+_D_@&' +_D_^ @_T#@ @ @@ @@'+_D_@&' +_D_^ @_IT#?@@{T_G_@ @"Bh "$#@'@ @!* o@3 @/bB @/@@4@ 53@@_@* W3@Mgv^ @_ T#?@{!T@6_G_օ@ @"Bh "@#@'@ X@!* &i@ @"Bh "$y#@'@ <@!* M@3 @/bBQ @/@@4@ 53@@_@* 3@f^ @_T#@@6@ @#@'@{+_B_֠*@= ʝ ] @_iT#/@@T+@@99_D_@ @BB @@@`4@@5@@@@@* @f] @_)T#/@@\T'@S @@L@? @ aT+@@@@37;_D_֠*@= j@ @BB @@@`4@@5@@@@@* P@Ffo] @_)T#/@@\T'@ @@L@? @aT+@@@@37;_D_֠*@ > "@@ @BBh @@@`4@@5@@@@@* @e']@x9_@,9_ @_T#O@@?LAT `{THO@G@K@ d%~S@W@[@#v'@+@/@_cg_H_7@; @3BB @3@@`4@@5;@@7@@@* ;@e\ @_T#O@@?LAT `{TO@G@K@   S@W@[@#*'@+@/@_cg_H_7@; @3BB @3@@`4@@5;@@7@@@* _;@Ue~\ @_멙T~#BH786{B@{BwBBB wB{BJ@#@'@{BwBB_;7SB$TB@{(қ{;mT @9qB9K;9n @KAC@9C9@B@_TT^@B@BT@̈TB_TB9B@@BBC9C9T_ Tˀ @@@ c@{@3KA@ J{@@@C@@3A  ?@9KA 5@@ B@F@@@KA@ @@$@?@c @{ @@BB@wKA @@?!VTKA @~TkKASA @W@[c@;T C@;T@@B @@B7T|L @B7WA[A@SA#AA MT@;T@IT 7A\@9@PT[9;A@e4@f5C(d@86(6[9;A@e4@f5C d [9e4@5;AC;Ad@e4O@TwAc B}d4@9,WAOA@@B_A #'+[`4@9@,@OA!BWA N@A! H@OAWA M[A7 OA&_@_!@?*TKA {@x@@?@{ ? @  AA@Tdx`%aTA?TcxeAAT#TBˆBBa?T+@;T@a T@L@?A ? @@!@?A ?@y@"Ab  @@@OAf4@5DEVcB Sc{A?A @AA @@@%e4@5#$:c" 7cf4OA|Arso@@?A ? @\@9(6@oA"h`_ T@|@?A? @{@@oAbhbS* @X @ {A@ ڢa*@ @@?A ?@L@?A?)c@@?A? @AK+AsA@;TATTT*@ Й#A c*@  ƙ TT'Abbb ccbbwA'aWA@@e4Х@[Aw@@ @k{T@KA @@B&aTGAA @@ B?@@'@+@AA TxbaTAH TxhAA T TH ˿-TC@;T@T@OA$87d4Є@g5h%AbGA K@@d4ЄOAd4ЄOA!@_TWA[A@e4Х'_HT$86 T@bb@_b T@Zb@WbT87*@` @Jb*@ XbNb;b8b0 d_TTA(b*@ Abb 6*@? ҘAA @@e@@@ kAgA@P@@BB@cA{A@@BB@TT ˀ @k@g@ )@w@/@{A cA@?@94  @@@?Tg"B BBs@@TgA @@`4@5ACACA[aB AXaaaw@|@/A? @{@@B|@cA@? @@# c ~TBB{A@B<+"D~BB#  @@ N@!* Ua{@|@3A? @{@@B|@CA@? @@# c ~T"Bh"BBc @{A@c<+# y @@ @!* ڗa`@@T_LT h BB`h@# #@'@ @!* *@? *@`? *@ ? *@> *@> *@`>  W. @_T#O@\@9!@?PT@ @[@T7b}"hRQ@7@[@! @9 6S@c@cd@Ԑ;_B T3/ O@QQ3@`[@ @/@4@ @[@_ T@| h!"W!SO@$Q@@967 @;O@S>Q@`4@5;@;@ ` O@WQ@O@;@_cg_H_ h G@K@@#m #@'@ 0@!* *@` Ԑ!/` h G@K@ G #@'@ @!* ؖ h G@K@@#, #@'@ @!* *@`  V. @_ CT~#с@BB@g@c@@-~ #@K@O'@_~T{ c@;TC @;T~T{KAOA @S@Wc@;T#@;T@ @!76TAA5TC@;T@aT cA\@9@PT[9gA@d4Є@d5C/-_-@86(6[9gA@d4Є@d5C!_[9d4Є@5gADgA_ cA\@9@PTgA@w @86(6gA@wgAwKAP@9e6  }`@y5D*TCw[ Tx` {AwA(Tx` aToA  i'TxisAkAh&T%T   0AA #T yj aTA"Ty`AA!T T  )   fgG @; T@T)T@;T@A T@@T{@@@ B!MH!7[ACAw@{@SA@ BB_A #'!!}!+USA@B!ˁA B[A aRSA@BA9[A qHWA7 [A_@_֠*@ N@;TA_@T_ T_T'Az^*@  7#Ap^#Am^j^I T@;T@TGA@; T@_T_ T_TB[9@L^*@` B[9@^B[9@;^TGA@; TC @;T+A@TT TTB[9^*@` ۔B[9^B[9 ^*@ ʔ*@ Ô]*@   ^]] ]]] ]]l]] 6 T"@#AT#$ @_T#'@@?DT?HaT@"@_ !T!@86#@@#@E @+_C_?\T#@@+_C_@[ @+_C_@ @!A!@A!* H*@ 5 A bT @_iT#/@@?HT `{T/@'@"@_ T!@a86+@@+@FE_D_֠*@ 5 2@ @BBZ @@@`4@@5@@@@@* @\T @_T#'@@<`T@aT#@@@+/_C_#@@@"+ "/_C_@ @A!:@A!*  S @_i T#/@@?P`T?XT86+@!@+@'@B@C\@937{a@ y;_D_;_D_'@i @+@@@+@@@@@@@\@9"@Cy!{?ka @/@c{{c!37;_D_@ @AA!( @A!* T uS @_T#'@@?daT@"@! @+@TaA "@#@4D\@9@c@97z{%@@`   !@/#@AA37_C_֠*@ @c @aA!4@A!*  'S @C_IT#_@`T W@"@_dAT[@O@S@"[@@O@S@ W@@@@gko_I_ /@@@@[@_@[@ T/FxeT' '@7X`T;+? @@L@? @d+@[@;@?@/@'@7@_@PTHTPT.XIT\T@@ haT!H7a86@@g @@@_@[@/@'@gko_I_֠*@  r@ @aA!x57@A!* a7@C @3BB @3@@`4@@5C@@7@@@* GC@=[fRA @_) T~#@@?daTC~T@@ @#B9C@;TC@;T{@@@@@ @ @#@'@_@__@_O@S @KBB@ @K@@`4@@5S@@O@@ * S@ZQ @_T~#~T@@ B9c@;T#C@;Tk@o@s@@@ @@#@'@_@__@_Q @_IT#'@@4 T8T#@@+_C_#@@"+_C_@ @aA!4@!!* i Q @_T#'@@?DAT@" @+@" T!@"@ $\@9/#@A3{?{!y@ 7_C_?\AT#@"@+@T@B@!@D@ E\@9/3{{@ y7_C_?`T#@"@+@bT!@2B B@ /!3{{7_C_֠*@ @Q @aA!,5@!!* *  : *@`  Q~ @_T# '@@ (T T T#@9+_C_#@@+_C_ T TaT#@@+_C_#@+_C_#@y+_C_@ @!!!$ @!!*  P @_T#'@{C9_C_@ @Aa!+!!* u P @_T#'@+@ /@@9 @@37_D_|P @_ T#?@B9a{aTH7;@7@!\! 7@;@@@#@C@PAT+ M@`+@@@@@GK_F_+@@@GK_F_ @@GK_F_֠*@ @S @A!!!*  P @_T# /@@P!T+@@@37_D_@ @BB" @@@`4@@5@@@@ * @XO @_)T#'@@?PT"H_iT?PT!?XT?\AT#@@@C9_C_?hATH786#@@#@@C9_C_C9_C_@ @aA!x5@!!* v O@9_ @_i&T#?@@+?@T?\T?DaT?`@T?daT?haT?PT"H_ T?PT?XiT?\T;@@@?hT`H6 86;@@;@ @9_F_7@;@ @9_F_?T?T?T? (T?T;@@;@ 9 ?T;@ y?T;@ ;@ @9_F_7@;@ 3@9@9_F_?0HT?$T?T;@@? T;@ @9;@ @y ?(T;@ @?,T;@ @;@ @9_F_ 4T?4T;@@";@@f9_F_?<TT;@@"@!";@@@f f9_F_@ @A! +@!!* @ @aA!x5+@!!* #@A?@#7@;@ !@#@?T7@;@ ?@!@@@ @9@9_F_@9_F_'@A?@'7@;@ )@'@?T7@;@ ?@@@@ @9@9_F_@9_F_UN@@_ց @_) T#'@@?HT?DT?HT@"@_ ! T!@ 86#@@#@? @+_C_@ @+_C_?TaT@"@_ T!@86#@@#@@ @+_C_?\ T?`T#@@+_C_#@@+_C_ ) @!!!h @!!* ̍*  5 ō*  5  M @_T#O@@?TA TS@W@[@G@d@ @^#@'@+@SW[@y G@"@_ T"@bO@86K@c@K@ ?@@G@!@[@#\@9O@!!{?{!b@A @@@_cg_H_ g_H_ր*  5 ]7{@; @3"B @3@@@4@@5;@@7@@ * C;@9VbM @C_IT#W@@?T TO@"@{{cD\@9@c$@ a T$@$ 86S@@S@7'`3? @O@3@ ?@;!!@ v@C;@?#@C@@?T#;@? @#@@?7@'@ ^#@C@A @@@%E4@5#$U" UC@T[_c_I_V*  5 Ō/@? @+"B @+@@@4@@5?@@/@@ * ?@ULi @_T#7@ @=? @`7@@!@+@' @#\@990? @+@'@!{?{!A9B@! @@@;?C_F_ր* ` n*   g L @_T#7@ @> @`7@@!@+@' @#\@99> @+@'@!{?{!A9B@! @@@;?C_F_ր*  **  # DL @_IT#@ @A@@@$@ T$@C86B@ ~>@@4@5@ @`T > @@ @>@ @> @9_C_ր*   *  5 ً K @_)T#/@@?TT  @/@@@4@5'@@+@@ '@T@ +@T3_D_@ @"B @@@@4@@5@@@@ * @TK @_iT#@\@9(7< @@'@6>@+@/#@y3_C_'@!@+/#@3_C_K @_T#@ '@ H7, @+@?B T@\@9B@_PT '@C@PTdHџ TPT0XiT\T#@d@@ hT86#@d@#@@҄'@#@/3@{{By({B7_C_ր* `  \ @a!!x5@!!* * : D @A!\!!*   K @_T#@'@H6+_C_ @+_C_  @A!$!!*  J @_ T~#@@H7##~T@ @A9#@;T#C@;Tc@@@ @$@@@_@__@__@_  @AA!@,!!* ^ J @_iT#/@@dT'@ @3_D_f@ @"B @@@@4@@5@@@@ * .@$SMJ @_IT#'@@<AT+@ `ET@a{#>a@ `T{C>b@ bT@{C>b@/@ `ET@a `T b9_C_@T9_C_ > @a!t@!!*  J @_T#'@@4T+@ `ET@a{#>a@ `T{C>a@ ac9_C_8Tc9_C_  @aA! @!!*  I @_T#'@@?HT@@z +@" B0@0@(?c9_C_  @!A!@!!* r I @_T#'@@?(T@@z +@" B0@$0?c9_C_  @AA!,@!!* ? `I @_IT#/@@?TT?HaT'@2?LT@H7'@"@_ T!@ 86+@@+@@@3_D_ 0@@3_D_?TT'@?XAT'@"@+@@3_D_?\@T?hT'@"@_ AT!@86+@@+@3_D_+@@3_D_ր*  5 ݈ ) @!!:@!!* ̈*  5 ň H @_T#G@@?HAT `{TG@?@C@ 9,@A9@@KOS9_G_/@3 @+"B @+@@@4@@53@@/@@ * 3@yQH @_IT# @'@@ 6@a\@9!@AA4!$@d5C[Q_D e\@9e(69 @@4@5@#@GQ@"@By"'@A4!@@@ T@@/@86+@@+@A9C9)9@9@9a@@_A4!!@a5_|Q@QA@C@B@7;?9_D_ր*  5 *   *H @_T#G@@?HT `{T\G@?@C@ K@O@S@9&_G_/@3 @+"B) @+@@@4@@53@@/@@ * ɇ3@PG @_ T#7@@6K@a?{T7@C@G@K@@ !!p Aa #@'@+@CGK@y# 7@"@_ aT!@!?@86;@!@;@ cB9c9^8@99_F_ր*  5 z* `5 s G @_T#?@{AT@7?@ K@a?{T?@K@C@G@ !07a7@@P;@ '@+@@86@4T7@;@ H:7@;@ 9 ;@[9@4@`5CP_F_FG @_IT#/@{AT@7/@ @TA9+@ 9_D_'@ @"BO @@@@4@@5@@@@ * @OG @_ T#/@{AT@7/@ @\T'@ @@L@? @ AT7@+@@;@@@4@53@@3@O_D_ր* 5 @ @"B @@@@4@@5@@@@ * @OF @_ T#/@{AT@74/@ @\T'@L @@L@? @AT7@+@@;@@@4@53@@3@^O_D_ր* 5 \z@ @"B @@@@4@@5@@@@ * B@8OaF @_T#'@{AT@7'@ @<!T+@@b#@/@@b@!T#@+@/@_C_ ` @}A!0(@!!*  $F @_T#'@{AT@7'@ @4T+@@b#@8T#@+@_C_ ) @!!L @!!* ̅ E @_)T#'@{AT@7h'@@ TT+@#@  !T+@#@ 9T+@#@ y T+@#@ T+@#@ _C_  @!!@!!*  E @_T#/@{AT@7 /@ @\!T+@@3@_T_D_ր*  6 [y@ @"B @@@@4@@5@@@@ * A@7N`E @_T#/@{AT@7/@ @\T+@@3@_ T@_T_D_ր* `6 2@ @"BZ @@@@4@@5@@@@ * @ME @_T#O@@?T!T `{THO@[@a?{`TAS@W@[@G@d@ @!#@'@+@SW[@y _@G@"@_ T"@b O@86K@B@K@ 7_H_7g@a?{`T _@c@g@G@d@ @ S#@'@+@_cg@y G@"@_ AT"@O@86K@B@K@ 7@6_H_ր*  5 m*  5 f3@; @/"B @/@@@4@@5;@@3@@ * L;@BMkDV @_T#'@{AT@7'@@$hTT+@#@  T+@#@ 9$!T+@#@ y(T+@#@ ,T+@#@ 0T+@#@ _C_ Y @!!,;@!!*  D @_IT#/@{AT@7/@ @hT+@[9@4@53@@3@L_D_@ @"B @@@@4@@5@@@@ * @LC @_iT#/@{AT@7X/@ @`T7@+@@@4@53@@3@L_D_@ @"B @@@@4@@5@@@@ * z@pLC @_T#7@@?DT@6/@" @!@3@?\T3@d@b@/@;@#?@TT#`  @_?@;@@@@T@@@ #@A4!!@a5C ,L @4@5#@@#@"L@9CG7@{{K_E_?`T;@?@_T3@d@_ T \ @3@@;@T@?@! A@4@`5CK/@CG7@K_E_ր* 6  5 @a!!5@!!* ؂*  7 т* 6 ʂ BV @_T#/@@?DT @6'@" @!@+@?\ T+@d@b@'@3@7@T;@KT T`  @_7@3@@;@@T@@@ @A4!!@a5C ~K @4@5@@@tK@9?C/@{{G_D_ր* 7 f  @!!@!!* T* `7 M nB @_iT#?@@?`!T;@@@CG_F_7@;@ @@|@? @@B( @ @~#@'@CG_F_85C@G_F_-B @_T#G@@?HaT `{T\G@?@C@ @9o@A9@@KOS9_G_/@3 @+"B& @+@@@4@@53@@/@@* Ɓ3@JA @_T#G@@?HaT `{TG@?@C@ K@O@S@@9A99_G_/@3 @+"B @+@@@4@@53@@/@@* ~3@tJA @_ T#/@H6J'@C\@9c@PATC@D @(T` T;@!&37_D_@ @/@( T@ '@=;@!&37_D_&3'@7_D_ր* ` .* ` ' s @A!! !*  8A @_ T# '@@$(T T T$aT#@@y+_C_#@@9+_C_#@@+_C_( T, T0aT#@@+_C_#@@+_C_#@@+_C_  @A!! @!* À @ @_T#@'@@6#@+_C_ր*<  @}!!(!*  @ @C_T#_@W@T[@ c@@9_I_W@|@[@? @C@?_@B|@c@@? @@O@ S@B8C@?@B#~'+/3@7@ |@!* J k@ @_T#g@@C?DT?\!T?D!T {AT@7g@C@ `{Tg@C@ s@C@?D T\T``T_@ @@L@? @ C@s@?@g@dx?9 b_{`Tg_@@O @ @;C@D?A9Sk@ @@B(~ S@O@QC@DO@;@Tc@#@$@!@?@D_@c@ g@@?@D;@c@O@73KT\To@@@@o@@@ k@o@ s@@O@;@o@/+GA@ ? @K@ 3@7@G@+@/@y2#@w_K_  @~!(?@!*   @~!(C@!* n ?& @_ T#@L@#@ ? @\a T'@@ +@! ? T`1 @@!$@#@ ? @@B&T+@ 0@'@@@+@@@4@`5C*H@!&!T#@/37_C_0 `0 `*8 *8 * 8 *7 ~ ? @_T#@L@#@? @TT@!&T#@'@ |0@#@+/3_C_0 `;* 9 ~ > @_IT#@@!&T #@\@9"@(7@?TA4!/ @@#@'+@y/_C_'+/_C_0 `*`9 ~ > @_T#@@!&aT#@ @\@9(6#@/ @@'+/_C_ր*9 U~0 `*9 F~ g> @_)T#g@H7_@c@k@o@ _@c@@@#@;KGs@ xc@9@ s@G@ c@9 w@s@n/ @S ;@"@_PTK@C@c@Cs@{_K_K@G@ 9@C@Os@ @O@S@ 4@5C@ " C@F s@O@ C@S@/S@s@{_K_s@\@9{K@;@{_{By@!@ _K_G@ @O@?s@ @@k@ o@BH|O@?@"B3#b'+/U3@7@ @a!* } =J @C_ T#W@H7O@W@S@!H @ O@S@@@#@7C?[@d@_@? @?@ @@@?@C@ 7@[@_@?@@#@cgk_I_?@{ @;@3[@B|@_@@? @@bBh ;@3@BB;#'+@/@ Q@a!* } @= @_ T#/@3@ 7@@@# @;@ ?@@?@9`@L@#@? @\`T;@L@?@ ? @X`T;@$@?@ ? @@L@? @D;@$@?@? @@P@? @3@!@?T@9_E_9_E_9_E_< @_2T#3@\@9!@?8 T"_T /@"\@9B@C(ITC4)T_`"T`/7_E_@/7_E_/7_E_"_T /@"\@9B@C(ITC4)T_`T`07_E_@07_E_07_E_?4T /@"\@9B@CiTCITB4_T/7_E_.7_E_.7_E_?HT?@T /@"\@9B@B<_T.7_E_?HT/@"\@9B@_HAT Oc@93@/@.7_E_?\ T/@"\@9B@_``T @@t@?@/@3@ @@L@? @@T @T3@/@"\@9B@_X`T @@L@? @D/@3@b  @#@/@ @@$@? @#@`T@ @93@/@F/7_E_`.7_E_/7_E_?`!T/@"\@9B@_\`T @@t@?@/@3@w @@L@? @T T3@/@/7_E_07_E_/@ c9@9 /@\@9!@?X`T@/@!3@"\@9B@_X`T @3@/@3@B3 @@@? @3@) @@@?@c9d@9/@3@ c@9@3@\@9@PT /7_E_ 07_E_7_E_.7_E_.7_E_H;g @_ T#'@@+@? @m, @@"@_hT_T#@9_T#@y _T#@_ aT#@"\@9/3@@@y7_C_; @_T#'@@+@? @5, @@"@_T#@@b_ aT#@"\@9/3@@@y7_C_: @_T#'@@+@? @ , @C@@"\@9/3@@@y7_C_: @_IT#+@@/@? @+ @@"@_ T#@@b'@@b_@T#@'@"\@937@@@y;_C_: @_IT#C@G@ @@@ @'@+@# ;@?@'@K+@O#@w7@S_F_^: @_T#G@K@ @@@ n@'@+@# ;@?@C@.'@O+@S#@w7@W_F_,: @_T#G@K@ }@@@ :@'@+@# ;@?@C@R'@O+@S#@w7@W_F_9 @_ T# 7@@#? hT?T3@!@? T3@A9?T3@Ay ?T3@A?T3@A@{{ ;@?@@@@CGK_E_ @!!$ #@!* y 9 @_ T# 7@@#?$T?T3@!@? T3@A@9?$T3@A@y?(T3@A@ ?,T3@A@?0T3@A@{{ ;@?@,@@@CGK_E_ @A! #@!* 2y S9 @_)T# 7@@?4T3@ @"?8T3@ @{{x ;@?@@@@CGK_E_#O @a!4#@!* x 9 @_)T# 7@@?4T3@ @"?8T3@ @{{y ;@?@@@@CGK_E_# @a!4#@!* x 8 @_) T# 7@@#? hT?T3@!@? T3@A9?T3@Ay ?T3@A?T3@A@{{ b ;@?@@@@CGK_E_ @!!$ #@!* bx 8 @_ T# 7@@#?$T?T3@!@? T3@A@9?$T3@A@y?(T3@A@ ?,T3@A@?0T3@A@{{ c ;@?@?@@@CGK_E_j @A! #@!* x .8 @_) T#/@3@ 7@@@L@? @4`T ;@L@?@ ? @4@ 7@@?4T3@ @"?8T3@ @{{ ;@?@@@@CGK_E_7@{{3@ @;@?@@@@CGK_E_# @a!4#@!* w 7 @_T# ?@@?<T;@ @"!@!"?@!T;@ @!@{{ C@G@@@#@KOS_F_+ @!:+@!* [w |7 @_ T# ?@@+? hT?T;@!@? T;@A9?T;@Ay ?T;@A?T;@A@"|@?T@B z@@?@{{ C@G@@@#@KOS_F_Y @!!$ +@!* v 7 @_ T# ?@@+?$T?T;@!@? T;@A@9?$T;@A@y?(T;@A@ ?,T;@A@?0T;@A@"|@?T@B  |@ @@?@{{ C@G@H@@#@KOS_F_ @A! +@!* v 6 @_)T#/@3@ 7@@@ m7@{{@@ ;@?@@@#@CGK_E_6 @_iT#7@;@ ?@ @@ ?@{{@@@ C@G@@#@'@KOS_F_U6 @_iT#/@3@ 7@@@@ 7@{{@@ ;@?@@@#@CGK_E_!6 @_iT#7@;@ ?@@@ m?@{{@@@ C@G@@#@'@KOS_F_5 @_ T#S@$@W@ ? @@P@? @K@"@_TS@@W@? @K@!@[_O@3c_H_3 @;@73@ @@bBP< B;@7@BB"#' +@/@ @a!* su 5 @_)T#3@@7@? @/@@7+@& @@+@ (/@w@@;?@{{C_D_c5 @_I T#C@@G@ ? @& @'7@;@ ?@9C@h@@#@+G@ ? @+@'@ 4@5#@ " #@>C@!&TG@+@ #@'@5&C@@G@? @K'@O?@{{S_F_0 @Q 5 @_ T# ?@@+?PT"H_ T?PTG?XiT?\T;@"@_B@?haT`H6;@ 86;@"@;@_b@B7@ @@@ C@G@e@@#@KOS_F_C@G@ @@@KO?@!{?{!S_F_ @a!x5+@!* st 4 @_T#'@@"P _T?XT@B@9_C_?\A T?PT"H_ T?PTV?XiT?\T#@@@ ?hA TH786#@@#@ @`% 3@@?PT"H_ T?PT!?XiT?\T/@@@?hT`H6 86/@@/@ @@9_C_9_C_T @a!x5@!* sC @a!x5@!* s 4v @_T#@9a!50! @!&$ ՟T 4@52 2B <_D_0 @! 3#с@# 9_D_"@#AT#$ @_T#с@A@`@ @@#'_C_ 3"@T#$ @_T#с@/@@@B2BC@A@?TT|aha`@@ y@@B2 ~@@37_E_ւ< b3"@cAT#$ @_IT#с@/@ @@ 3@7@M@@;?_E_֑ :3"@cT#$ @_T#с@A/@`@@ 3@7@%@@9@;?9_E_g 3"@cT#$ @_T#с@G@C@;T@C9_H_@ 2"@#!T#$ @_T##@@@C@@E@T @F @aT ~@9#@@@C@D @ s@9@@@#@C@D@@?AT @9@@#@C@T@C@AT @C @T$@A$@?#9_C_2 @_T#с@7@"#@;T@9_F_ u2"@!T#$ @_ T#@#@ ~@9#9_C_X2 @_IT#с@'@ @@@ 7@@@+/3_D_֍ 62"@#T#$ @_T#с@@@@@ 3@99_C_i 2"@AT#$ @_IT#с@'@ @@@ C@@@+/3_D_A 1"@#T#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_ 1"@T#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_ 1"@T#$ @_IT#с@@ @x9_A_ j1"@cT#$ @_IT#с@'@ @@@ +@/@@99_D_֙ B1"@#T#$ @_iT#с@!@@@{9_C_M @A!!+!* ph 1"@T#$ @_iT#с@!@@@,9_A_H 0"@cT#$ @_T#с@@@@@ +@#_C_% 0"@AT#$ @_T#с@A@`@@@ S_C_ 0"@T#$ @_ T#с@@@@ @<T @"!@!"@T @!@#'_C_ @!:@!* Lp l0"@T#$ @_T#с@/@@@@ 3@7@@@#@;?C_E_֕ >0"@cAT#$ @_IT#с@'@ @@@ G@@@+/3_D_m 0"@#T#$ @_T#с@A/@`@@@ 3@@@@7;?_E_C /"@cT#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_ /"@T#$ @_T#с@/@@@@ 3@7@7@@#@;?C_E_ /"@cAT#$ @_T#с@A/@`@@@ 3@u@@@7;?_E_ֻ d/"@cT#$ @_T#с@A@`@@ @4T @"8T @#_C_e @a!4@!* o (/"@T#$ @_T#с@A/@`@@@ 3@@@@7;?_E_S ."@cT#$ @_)T#с@@@@ @ (TaT @ AT 9 aT yaT T @#_C_ @!!$ @!* n  ."@T#$ @_IT#с@'@ @@@ @9@@+/_D_ ."@#T#$ @_T#с@a/@`@@@ Z@@#@#@37_E_ֶ _."@caT#$ @_T#с@@@@ @_PTCHT_PT_XIT_\T @@ _hT`H6@86!@? @9_C_N @a!x5@!* mh ."@!T#$ @_)T#с@@@9_A_J -"@cT#$ @_T#с@@@@@ K@99_C_% -"@AT#$ @_)T#с@@@ @_A_ -"@cT#$ @_T#с@@@@@ G@#_C_ -"@AT#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_ֳ \-"@T#$ @_IT#с@'@ @@@ @@@+/3_D_։ 2-"@#T#$ @_T#с@@@@@ @#_C_e -"@AT#$ @_T#с@A/@`@@@ 3@m@@@7;?_E_; ,"@cT#$ @_T#с@/@@@@ 3@7@@@#@;?C_E_  ,"@cAT#$ @_T#с@@@@@ @#_C_ ,"@AT#$ @_T#с@@@@@ s@#_C_ż n,"@AT#$ @_T#с@@@ @<T#@ `ET@a{#>a@ `T{C>b@ bT@{C>b@'@ `ET@a `T b@TC9_C_W @!!t@!* kq ,"@AT#$ @_IT#с@@ @ @4aT #@ `ET@a{#>a@ `T{C>a@ a8T#9_C_ @a!! @!* k) +"@T#$ @_iT#с@!@@@@ @_(T @z #@" B0@0@(?#9_C_ @!!@!* qk +"@T#$ @_IT#с@@ @@ @_T @z #@" B0@$0?#9_C_ @A!,@!* 2k R+"@T#$ @_T#с@@@@@ @#_C_օ .+"@AT#$ @_T#с@A/@`@@@ /@@9@@37;9_E_[ +"@cT#$ @_IT#с@'@ @@@ +@/@3@_D_1 *"@#T#$ @_IT#с@'@ @@@ +@/@3@)_D_  *"@#T#$ @_T#с@@@@@ A99Q_C_ *"@AT#$ @_IT#с@'@ @@@ +@/@3@a_D_ֽ f*"@#T#$ @_T#с@@@@@ #@_C_֙ B*"@AT#$ @_ T#с@'@@@@ +@/@_D_s *"@#T#$ @_T#с@@@@@ #@_C_M )"@AT#$ @_T#с@@@@@ #@_C_) )"@AT#$ @_T#с@@@@@ #@_C_ )"@AT#$ @_ T#с@7@@@@ ;@?@C@G@K@#O@'s_F_׹ )"@T#$ @_T#с@@@@@ #@I_C_ֱ Z)"@AT#$ @_ T#с@'@@@@ +@/@c_D_֋ 4)"@#T#$ @_T#с@@@@@ #@_C_e )"@AT#$ @_T#с@/@@@@ 3@7@[@@#@;?C_E_9 ("@cAT#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_  ("@T#$ @_ T#с@'@@@@ +@@+/_D_ ("@#T#$ @_T#с@A/@`@@@ G@@9@@37;9_E_ַ `("@cT#$ @_T#с@A/@`@@@ 3@7@;@]@99_E_֋ 4("@cT#$ @_ T#с@'@@@@ @@+/_D_c  ("@#T#$ @_T#с@a@@@ @$TaT @ aT @9$AT @y (aT @,aT @0T @#_C_ @A! @!* g '"@aT#$ @_IT#с@@ @@@@6#_C_@*< vg @}!(!* fgݷ '"@T#$ @_iT##@@@C@@E@aTA@@T @9#9_C_]'@9 ̭@99`@9 @9 @9C9@99t@9аc~T?@9/@9 ~TG@9_~TC@9#9c~T?@99@99@94@9C9P@9p@9 D@9 cc~T@9~T@99@9@9 @9 IJ@9 8@9 @9@9d@9 @9l@9 ܬ @_ T#@#@ }@9#9_C_<& @@@C@?TA@@!TA@@TA@@!TA@@ATA@@TA@@c9_c9_@9 @99@9 @@9 D@9C9h@990@9c~T?@9@9 H~TG@9~TC@9#9Zc~T?@99@99x@9@9C9 @9,@9 @9 Pcc~T@9<~T@99@9x@9 X@9 @9 @9 @9Ա@9 @9 \@9(@9  @_)T##@@@C@?aTA@@TA@@B @ @`T @9#9_C_$ @_T#@#@ |,@@!@ @'_C_$ @_T#'@BA+@C@`?C@9k@@@@?T/_D_$ @_T#7@;@?@#C@'G@+ @K_F_$ @_T#B@A @C@D@'@"T|Aha@@ @ෟC9_D_z- ?$ @_T#'@+@ /@3@7@@;_D_D$ @_T#2?@@@7@;@ ?2>@@@@+@'@7@;@ ?@#+@'@ @iC@A!T?@#@  z_F_$ @_)T#7@3@/@;@T_E_`@ !#?3@7@/@#@3@/@;@@#@kT`@ $?@9@3@/@;@@7@# @_iT#7@ /@@3@#@ @ ?@";@T!T#/@"@3@?@ @?@9@#@@@;@/@#@3@?@# F`?@9@_E__E_y# @_ T#C@?@'+BccA#7@;@ #@'@?@+@C7@@;@ E`?7@;@ @?@@?@B_F_8# @_iT#@@#@'@ +@ ?@9@@@#@'@ +@ ?@@#@/@ '@ ?@9@@#@/@ '@ ?@@#@'@ +@ ?@9@@@#@'@ +@?_C_" @_)T#S@O@CA;7T3G@K@ # C%G@K@ ;@7@D @3@EG@K@ S@C7@D ˄@D˄zS@O@;@G@K@ 'mO@'@!/?kT G@C@K@ `?@9/@'@O@G@@K@ B3`?+@O@'@/@3@3T2!+_lTG@C@K@ `?@9@+@3@'@/@O@eB3_lTG@#@K@ E`?@93@+@?3@'@/@O@S@˿T7@GT㧟LG@"@K@ @?@99`3@ G@@K@3@ '@ ?3@'G@@K@+@7 O@ ?@99G@"@K@;@ O@@?@9@@9?k+@7@!@9#G@@K@;@ !7@?#@7@ןO@/@'@'G@B@K@ 7@?7@W'@[_H_G@@K@ !+@?/@O@'@+@/ T!+kTG@C@K@% `?@9@+@'@/@O@c/kTG@"@K@ @?@9/@+@?'@/@O@C! @_)T#C@?@O@G@K@C@?@+@3/˿0mTB+ +@+@@/@$3@T#?@C@ #@3@?@C@ /@@ _G_ֿmTb _G_'@C@?@/@3@_T'#@ D+`?@9?@@C@'@ +@ ? "! @_T#'@ @+@ ? @ABT'@+@ @l_D_  @_IT#@@#@+@ '@?@9c9_C_  @_ @_iT#+@3@?IT|'@bhbd@7@?)T|aha`@ @য়9_D_))   @_T#@#@?iT|@hdF@'@?IT|ӧha@H4 @i5h$d)@d5h!\)_B_֜))   @_T#@#@ '@@!! M_C_d  @_iT#@ @#@ ? @@#@  _C_I  @_ T#р /@3@ 3@ P7@_T/@3@ '/@3@7@_Td#!_T  /@3@7@#@_E_ @@/@3@7@#@_ T @_T#c@_@_aTg@g@CaTrCKdAGCC'#W@@[@C˄ cAC ?@9kC@#@@'c@_@g@K@G@'@T?-TTW@[@ {_@g@K@G@?@@?TCTW@[@ g@K@G@?@CmT_-TW@[@ _J_3W@d@[@ &AG?@9kG@3@;@@c@; T W@@[@ B+ ?;@+@_T_J_/W@d@[@AG ?@9k7@G@/@B_@7_lT W@@[@ !K@?7@K@?kT_J_.= @_ T#K@G@O@B?@C@_TT3F+',B/#a@  ?#@K@@/@?@C@ T_G_`@ ?@K@@@?@C@+@'@Ta@  ?@K@@@?@C@3@T!˯ @_iT#/@+@3@T_D_@@! ?/@+@@3@@kT'@@@" ?c@9@+@3@@/@% @_T#7@ 3@@@#@@ ?@";@ T!T#/@A@?@Cdc ?c@9@#@@@;@/@A@?@#D ?c@9_E__E_K @_T#C@?@'+BccA#7@;@ #@'@?@+@C;@@@C ?7@;@ @?@@?@_F_ @_T#@@@'@+@ ?c@9#@@@'@+@ ?@@@/@'@ ?c@9#@@@/@'@ ?@@@'@+@ ?c@9#@@@'@+@ ?_C_ @_i&T#S@O@CA;7T3G@K@ # C%G@K@ ;@7@D @3@EG@K@ S@C7@D ˄@D˄S@O@;@G@K@ 'yO@'@!/?kT G@B@ @?c@9/@'@O@K@@@B3 ?+@O@'@/@3@3,T.!+_lTG@B@ @?c@9@+@3@'@/@O@B3_lTG@A@C ?c@93@+@?3@'@/@O@ES@˿T7@GT㧟BG@A@ ?c@99`3@ K@@@3@'@ ?3@'G@@@+@#7O@ ?c@99G@A@;@O@ ?@9@@9?k+@7@!c@9#K@@@;@!7 ?#@7@ןO@/@'@'cK@B@ 7 @?7@W'@[_H_K@@@!+ ?/@O@'@+@/KT!+kTG@B@# @?c@9@+@'@/@O@/kTG@A@ ?c@9/@+@?'@/@O@ @_ T#C@?@O@G@K@C@?@+@3/˿0mTB+ +@+@@/@$3@T#?@C@ #@3@?@C@ /@@ _G_ֿmTb _G_'@C@?@/@3@_jT' @C+ ?c@9C@@@'@+@ ? X @_)T#с@@@@! @ ? @_B_"@T#$ @_ T#с@@@@!@'@ #@ ?@9C9_C_3 "@T#$ @_iT#с@!@@@!@#@ '@ ?_C_"@T#$ @_T#с@@@_A_ "@c!T#$ @_ T#с@'@C@A@+@"T|bhbd@/@"T|aha`@ @য়9_D_օ$$ h"@#T#$ @_IT#с@'@ @@@ +@/@@3_D_֕ >"@#T#$ @_IT#с@@ @@@ S@!! _C_m "@T#$ @_)T#с@@@@@BT|ӣhdF@@BT|ӧha@H3 @i5h$#@d5h!#_B_##. "@T#$ @_ T#с@@@ @? @_B_"@T#$ @_IT#с@@#@@'@ +@?_C_"@T#$@@ _ց @_ T#/@A@B@3@TC d@e@c@7@T@ @@@ `@য়9_E_x#w# \ @_) T#@@@@ Txf G@H@@? T* xj @ @N3@5x&M #B  # @5x* "B " @@Txf D@G@?Txj (@)@I@5x&H"B "'@5x*$"" "_B_ ## ##  @_IT#g@k@ o@K@@L@? @TaTg@k@ o@@3! @[! 3@@Wg@k@ o@@O3@W@[@ s_L_O@7@;@K@+C;7/K^C@9 O@ @@@7@D;@cTK@?S[K@ #@@#@[@?@7@S@K7;G A3!'@5C@A"B >"O@ @@@+@D/@cTC@?S[C@ @@#@[@?@+@S@G A3!'@5C@"B  "<` @7@@;@@3@5K@AK@!+@A/@A@5C@@ @`C@!G  G@s_L_  @C_)xTC~#@@ @a@s@_@C@c@@ @R@@s@WT_@ Ԓ@9V @@?D(T?0T?T ( T? (T?T@@@ 9 ?T@ y?T@ @ @ @!@O? hT?T@!@? !kT@A9?T@Ay ?T@A?AiT@A@TT@_@C__@C__@C_?LT?$T?T@@? T@ @9@ @y ?(T@ @?,T@ @@ @ @!@O?$T?T@!@? T@A@9?$^T@A@y?(T@A@ ?,T@A@?0\T@A@TT@_@C__@C__@C_@@ H@9_9@@ @?@9_A9 @@_@C__@C__@C_?8T?4T@@"@@ @@4T@@!"8APT@@ ``T a`T@  aeT `eT@_@C_"<_( T?<T@@"@!"@@@ @@<T@@B"@c"@GT@@@ ``T@ b`T@  beT@ `eT@ a`T` c`T@  ceT` aeT@_@C__@C_?D.T?XH T?HT?PT?X Ti@@ @@@?@A9@@ @@@@ @@@@ a2!-!@9a2!- 3!$@5b2B-Cb2B-* 3!@@\@9C@dyB{_k @WS/@@ @Y@@@ @@@@ a2!-!@9a2!- 3!!@5a2!-#b2B-w{w@@\@9"@Cy!{?ka {@S@W@ /@@_@C_@@ @@o@k@O@@ @o@k@ O@@_@C__@C_@@ @@@@A9@@ @Y@?@@ @P@?@TT@_@C__@C__@C__@C_?`T?daT҇?h T@@ '@K@@ @@K@TT@_@C__@C__@C_@@ @g@G@@ @@[@;g@G@ l@g@G@ [@;@a@T@_@C__@C__@C__@C_C@|@c@? @@B0 /@@ @!!* U3@A@3@@ @3@?T@@ @@o@k@O@@ @3@s@@@o@k@ O@@_@C__@C_7@A@7@@ t@7@?T@@ @,@o@k@O@@ @7@@@@o@k@ O@@_@C__@C_O @!:O@!* VUO @a!4O@!* DU @A! O@!* 3U @!!$ O@!* "U C: @_T# '@@?PT"H_ T?PT?XiT?\T#@@@ ?hAT H786#@@#@ @ 3@@?PT"H_ T?PTc?XiT?\T/@@@ ?h T@H786/@@/@ @7@9_C_7@9_C_ 3@@?PT"H_ T?PT#?XiT?\T/@@@ ?hT@H786/@@/@ @79_C_@7@9_C_ @a!x5@!* Tҵ @a!x5@!* uT @a!x5@!* dT D @_)T# */@ 3@n@@!! @7@ ;@ ?@@@?CG_E_7@ ;@/@ @@@@3@ ?@@@?CG_E_C @_I T#C@K@?+TG@7@;@?@&@2@4@@OSW_F_ւ @g (@?@'@ @@G@K@7@;@?@C@G@7@;@?@_MT'?T%TTA2!3"@!@`T +# @9#@+@'@A2!4'@(@OSW_F_   @_)T# @?@3!!@5C@ C@G@7@;@ B('@+@#@G@TTC2c3`@a@KOS_F_K _F_ @_iT# ._@ c@@@! &W@ [@{@@g@o@k@_@!(aTc@T@ @T@ q#!!5 @#@;K7%! @_@ c@ ?@@@sw{_J_! @W@ [@ ?@@@sw{_J_K@;@7@3_@ @c@ ?@@@@+@??lT3@)7@ TGC'W@ @[@K@ @?@@@b'@'@_TB2B5@@A@3@_TG@C@+@?@E23@@T/ ߌ@9/@/@+@?@B2B4@@A@sw{_J_ 0 @_T#/@@?T7@_LT@@B @3@ ;@@?@/@"@B@@"?CG_E_@23@@?CG_E_ @_T#/@ @@MT7@T;@_T$;@@@ @3@ ?@/@" @B@#@" ?CG_E_@23@@?CG_E_ց V@@@ @AT@ @ @AT@@ @A@?*T@2@5@@_ @ _@25@@_ @_ T#?@/@d@e@kT@23@@CGK_E_7@T;@_Td@c@ @3@ ?@#@@C2c3b@a@CGK_E_a@b@! @3@ ;@ ?@@#@CGK_E_ @@@ _ @_ @_ց @_I T#12"k@ @B?T++@'G@C @@@@K@ `?@'@ @@@@@E;7#3/12 +@j@23@@/@_T3@ p@9@#@O7@S;@W_H_#@O _H_ 6 b_ @C_i T# 5 w@O@S@wO@S@C@3TeT!!5 յ@#@O@S@3@h#8cT7C% @g ?@3@!@@@@7@cTF2ƀ3@@aT;?/ @9;@7@;@7@/@?@C@W[_cg_I_ @23@@_ց @_T#?@@@TT$@%@ƀ(@TT@@@3!$@d5 @!@ @C@ G@K@?@'@3B2B3C@D@@/@#@+?!T @9?@D@A@?T3@53   3c Z3 A@D@H@?C T @@|@`5CE'@3@B2B3/@#@+@'@3@B2B3/@#@+@mT@D@H@`T@ H@9@3@B2B3/@#@+@'@?@3!ƀ(kC@B@`T  -@9#@+@'@?@!@?mTOSW_G_@23@@OSW_G_@K1 5 @_T# 6 @!!5s M@s@@@3@`5C'+_D_ @_)T#` @``8`A2!4 3!"@5B2B4CB2B4` @`!\a!B2B5A3BD@5D2Є 5B2B 5`ְ @~`x`A2!@4 3!"@5B2B`4CB2B`4h` @@`@h`A2!3 3!"@5B2B3CB2B3N` @ `0&`A2!4 3!"@5B2B4CB2B44` @`` `A2!4 3!"@5B2B 4CB2B 4`n @`!, a!B2B5A3BD@5D2Є5B2B5`T @` `A2!@5 3!"@5B2B`5CB2B`5`: @``A2!3 3@5@23B2B3_C_  @_ T#с@'@+@/@ !@@@37;_D_+ "@#T#$ @_ T#с@@@_A_  "@cT#$ @_ T#с@@@_A_ "@cT#$ @_T#@@#@C@D@@?T j@9@@#@!@?#9_C_f @_IT#@@#@C@D@@?T F@9` @@#@@ }@9#9_C_> @_T#с@A@`@23@@#'_A_{ $"@cT#$ @_T#с@@_A_] "@cAT#$ @_iT#с@!/@@@! @3@ 7@;@ ?@@@?CG_E_ "@cT#$ @_IT#с@/@3@ @7@ ;@?@?@@@CGK_E_ "@cT#$ @_)T#@ή @|`/`A2!1 3!"@5B2B1CB2B1`@ @ ``A2!@2 3!"@5B2B`2CB2B`2F@ @``!+a!B2B1A3BD@5D21B2B1,@ @``!D,a!B2B2A3BD@5D2 2B2B 2@f @``+`A2!@1 3@5@2`1B2B`1_C_ r @_)T#E@3@5A2!@#B2B@A2!@B2B 4B@C2c4d@_T+_G_ք@@@D'3#/ @B0 H@9D2Є4@@'@T_3!&@5|ӿh"Ҩ@2@@B0 /@#@;@'@3!D2Є4A2!@+@C2c43@3_lTJThh8?qaT   @_)T#'+9#9 3߈53 ie;@  3!!@9@3BCc @3BD_D63C9I;@!>+3!'@9A2!@!@B0 7@@@@9B2B4C@A@?T|aha`@#99'@i_F_#9_F_B_T#hb8qaTBB!?C@#99'@i_F_#99'@i_F_6 ՀG_F_ r @_T#'@@ | @@@@/3_D_'@~ ~}CA9_k g @@/3_D_  @_IT#c@_@g@I@) )~ 0 _+T_#TGˈ j  Tihi?1qT IT & ҌЌa 1~ )1 ?3 SG@LM KOS'T+  4@@#@3@+@c@_@g@?@( 3 @ 5@; T;7/  3@c@_@g@/@;@7@3?@ sw{_K_kos_K_o R i@@@ _@@@@Bs@ _ց @_I T~#~Tv @@@b #/3_@_Tdh`8d5v+ThT ھ@@'+c_@_#&/`3_@_v  @@?T|0949@!H89@<9 &`_@ cha8Ch!8!?KT0@90 _@@?T ~p9t9@!Hx9@|9@4 &`_0cha8Ch!8!?@KTp@9p _@@@? T# @9@D9 &`_HEhc8h#8ckT@@9@ _@@y!4@9P9AT9@y,y@9`9@9d9@9h9@9l9 &`_p ch8Ch!8!?0KTP _ @_T#'@@9?qHT?qAT@9!!@?qhTg @'@"@9By&3`7_D_?qTQ @'@"@9# @9b V?Hq`T?xqT`9A @'@"@9# @9b "@5&37_D_) @'@"@99"@99"@yy"@99"@99"@99"@99 $ h8dh"8B_0KT!:+/_D_0$ hb8dh"8B_@KT!;+/_D_ $hb8dh"8B_KT!:+/_D_c TT$h8@5HT  w@@@@3@`5Ct;+/_D_ ҵ Ҫ  > @_ T#3s~T ?w@3 @@@@?@!4#3 @@@@@d#@ kgc_#@} k@c@g@_@{_N_n {&_N_{_N_:  @_iT#3~T ;_@ @@@ ko_K_ @@@@cgko_K_  @C_ TC~# s~T so @?T@g k9@_mTg @k@ #w@@c @@@@@CAwA95+OKsl @@@@K+@O@_@C__@C_ @C_ T#k@  @o@? @@@@@/cW@TS@' +9c@?mT' @+_@? #7@sO@c s@@@@@c@CTW@Aw_I_w{_I_w{_I_? @C_T#O@S@ @@@@@@E 3?7/ c #@'@#@/@!5 ^/@@? TC;?@3@ 7@c #@'@#@/@C`;@?)TC@dh`85/;@C@/@T @@W[ _I_ _c_I_ _I_ _c_I_ _c_I_  @_T#?@C@ =@@@@@@E~3_ s~ #@'@#@3@`T&KO_G__@ _G_KO_G_KO_G_} @_I T#( @;|3K@G@c?MTDhc85c&҅`5 / 5@K@/@;@#7@o_T  #@'@#@3@B?8T;@OS W _H_ W[__H_ W[__H_ <-  @_T#3@5A2!` B2B`c_A_ @_T# $/@ ?@@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @#@B&37;_E_ @_T~#k?9cwB @ @@@@+wBA! @+ @@#@@3 @@@@7!`kG@?9+@B{BB3@_@__@__@_7@[C?;+CC~TSWC  @@ WB@+@MT;@C@?@[BCAy?@_KTgC_cg#_B[B@T/ +@/@?@[BBC@&B;@wB;@  @@@"?9G@b_@_c?9G@X_@_TT1,@@XT1B@,A@@@ T1B,A@@@̛ @!&?9G@3_@_:A_@_ @@ _ց @_T#/@T|2B+AhaBB@37_E_} @@BB= ¸@@37_E_ @_ T# 2@2@@#@_T'@ z@9@4aT@C9_C_#@ 21@@_T'@ a@9@DaT@C9_C_#@ 22@@_T'@ H@9C9_C_@C9_C_E@T``T\aT@aT@C9_@aT@C9_ @_T#+@ @/@?@@@37_D_'@q@@37_D_ @_T#+@ @/@?@@@37_D_'@@@37_D_ @_iT#3~T ;_@ g@@@ ko_K_f @@@@cgko_K_ @_iT#G~C/@3@ 7@@@G;?C_E_ @_T#~T _w@{@ @@@s#@'@+@'@#A95 3 @@@@3@_N__N_= @_ T#K@ @O@? @@@@@SW_F_7@;@ ?@C@G@;#@'@SW_F_  @_T#'@xT3!!@93&7;_D_+@ /@@@@37;_D_ @_iT#$;@+?@'+@'@7@ @@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @#@B&CGK_F_ @_T#%3@#/@ k@@TT1,@@XT1B@,A@@@T1B,A@@@ U @!&;?_E_` @_T#@%3@#/@ k@S@TT1,@@XT1B@,A@@@T1B,A@@@  @!&;?_E_$ @_T#%/@ 3@7@|@@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ ܘ @#@B&;?C_E_ @_T#%K@3O@/3@/@?@ C@G@+@TT1,@@XT1B@,A@@@T1B,A@@@  @!&SW_G_ @_)T#&K@3?@ C@G@O@+@TT1,@@XT1B@,A@@@T1B,A@@@ T @!&SW_G__ @_T#@&;@+?@'+@'@7@ @TT1,@@XT1B@,A@@@T1B,A@@@  @!&CG_F_! @_T#&;@+?@'+@'@7@ t@TT1,@@XT1B@,A@@@T1B,A@@@ ֗ @!&CG_F_ @_IT#&/@ 3@@TT1,@@XT1B@,A@@@T1B,A@@@  @!&7;_E_ @_ T#O@mTK@3!B';[@7_@3;@7@3@G@ W@#@+@/?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ O @/@B&cgk_H_X @_)T#G@mTC@3!B@'3S@/3@?@ O@@f+@TT1,@@XT1B@,A@@@T1B,A@@@  @!&[__G_ @_)T#';@++@7@ ?@@@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ Ɩ @'@B&CGK_F_ @_)T#';@++@7@ ?@@@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @'@B&CGK_F_ @_T#(/@ 3@7@@@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ H @#@B&;?C_E_Q @_ T#C@?@_MTdh`85!&cc`5@+ @+@aITA/'@(33@ @@TT1,@@XT1B@,A@@@T1B,A@@@  @!&'@/@KO_G_KO_G_  @_ T#(/@ @TT1,@@XT1B@,A@@@T1B,A@@@  @!&37_E_ @_ T#(/@ @TT1,@@XT1B@,A@@@T1B,A@@@ i @!&37_E_t @_T#)/@ k@@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ / @#@B&37;_E_8 @_ T#@)/@ /@TT1,@@XT1B@,A@@@T1B,A@@@  @!&37_E_ @_IT#)/@ c@@TT1,@@XT1B@,A@@@T1B,A@@@  @!&7;_E_ @_iT#)/@ 3@7@@TT1,@@XT1B@,A@@@T1B,A@@@  @!&;?_E_ @_IT#*/@ 3@@TT1,@@XT1B@,A@@@T1B,A@@@ G @!&7;_E_R @_T#@*3@##@/@ @TT1,@@XT1B@,A@@@T1B,A@@@  @!&7;_E_ @_IT#*/@ 3@ @TT1,@@XT1B@,A@@@T1B,A@@@ ӓ @!&7;_E_ @_I T#C@?@_MTdh`85ҡ!&cc`5@' @'@a T/#*33@ G@@@@+?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ o @+@B&#@/@OSW_G_OSW_G_҉ n @_ T#G@mTC@3!B+3?@ O@#@+@/?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @/@B&SW[_G_( @_ T#G@mTC@3!B@+3?@ O@;#@+@/?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ ג @/@B&SW[_G_ @_T#?@mT;@3!B++7@ @@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @'@B&GKO_F_ @_T#+;@+?@'+@'@7@ @C_F_} @_I T#C@?@_MTdh`85ҡ!&cc`5@+ =@+@a T/',33@ J@TT1,@@XT1B@,A@@@T1B,A@@@  @!&'@/@GK_G_GK_G_-  @_T#@,/@ 3@7@@@#?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ ̑ @#@B&;?C_E_ @_I T#C@?@_MTdh`85ҡ!&cc`5@+ @+@a T/',33@ @TT1,@@XT1B@,A@@@T1B,A@@@ h @!&'@/@GK_G_GK_G_҅ j @_T#?@mT;@3!B,+7@ Z@@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @'@B&GKO_F_' @_T#?@mT;@3!B-+7@ *@@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ ڐ @'@B&GKO_F_ @_T#@-?@ C@G@K@O@S@#@+@3?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @3@B&W[__G_ @_IT#-/@ 3@@TT1,@@XT1B@,A@@@T1B,A@@@ [ @!&7;_E_f @_)T#-7@';@#?@+'@#@+@ @TT1,@@XT1B@,A@@@T1B,A@@@  @!&CG_F_' @_T#K@mTG@3!B.;S@7W@3[@/;@7@3@/@ _@1+@TT1,@@XT1B@,A@@@T1B,A@@@ Ϗ @!&cg_H_ @C_ T#W@S@_MTdh`85ҡ!&cc`5@7 @7@aiTA?3@.CC@O@ [@@#@+@;?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@ h @;@B&3@?@cgk_I_cgk_I_҂ g @_T#;@mT7@3!B.+ W@@'?TT1!,"@!@?XT1c@,b@a@?T1c,b@a@  @'@B&CGK_F_$ @_T#.3@##@/@ @TT1,@@XT1B@,A@@@T1B,A@@@ ݎ @!&7;_E_ @_ T#C@?@_MTdh`85ҡ!&cc`5@' @'@aTҁ+#/3G@/3@/@ @TT1,@@XT1B@,A@@@T1B,A@@@ x @!&#@+@KO_G_KO_G_ҕ z @_ T#C@?@_MTdh`85ҡ!&cc`5@' =@'@aTҁ+#@/3G@/3@/@ F@TT1,@@XT1B@,A@@@T1B,A@@@  @!&#@+@KO_G_KO_G_)  @_T#@ @@"2B 4@ 2@43@5!2!4#"2B4~3! @3@51 (1B (_C_ۑ ڑ ّ ؑ ב ֑ Ց ԑ ӑ ґ ё Б ϑ Α m ɑ # đ Ñ ‘                          @_T#с@A@`@S @@#'_C_g "@T#$ @_) T#с@ '@ @!2!@2"@!@+@AT/@ p@9 @4aT@/,@+@!2!1"@!@AT/@ p@9 @DaT@@+@!2!2"@!@T/@ p@9@?9_D_ "@#T#$ @_T#с@a@@T``T\aT@aT@9_A_چ "@caT#$ @_T#с@a@@aT@9_A_ֶ _"@caT#$ @_ T#@#@ ~j@9#9_C_@ @_iT#@@#@C@AT@A@ A j@9` #@@@"@!@ j@9#9_C_ @_|T#@@ gTeh`8LT T@ T T TcyTyTeh`RrkT@yRkT@9q*T$TvThvTeh`F[T @9q)TTctTtTeh`RrkT@9q)TTCrTqTeh`RFrkT@yRk)T KTpToTeh`xRkaT@9qTMTMTmTghf8q gTqfT3TTKT eTfhf8qcTq'T  TibTghg8qATiaTehe8qTGATT4L T=T(T  T]T(]Teh`x[)Rk!T@9qT Tc[TZTgh`[)RۭrkT@y;LRkT@9q2T˦ 'h 2Tehg8ѥ@ӿdq T4T KTVThVTeh`xRkT@9qTTTT(TThh`RۍrkT@y;,Rk/T )j `0Tghi8@dq/TiRkAT@9PqTh T@aTT OTfhf84q!ThT T#MTLTeh`[ RrkT@yRkT@9q3T$TJT(JTeh`[ F[T @9q@3TT#HTGTeh`[ RrkT@9q@3TTFTETeh`[ RFrkT@yRk 3T TCThCTeh`x[ RkT@9qAT|!TT ATghf8q3T kT>Tghg8|qT=Tehe8qTTKTi;Tfhf8ߴqT#'!a+/_B_#"'$!a+/_B_#'!a+/_B_#{'!a+/_B_#@' !a+/_B_֟;TF@ӄ˄˥eb:TA}b/B?Aha#'+/_B_֟7T#a!' a+/_B_T4Tehe8q!T3T#A'Aa+/_B_#a '!`+/_B_ֿ!TT/T.Tbh`[RƦr_kT#b"'!a+/_B_# '!`+/_B_#A'!`+/_B_#! 'ˡa+/_B_#@ '+/_B_# 'a+/_B_# '+/_B_#' !a+/_B_ֿT#A'!`+/_B_#!B'!`+/_B_֟T#B'ˡa+/_B_#"'!a+/_B_# ~'$!a+/_B_#}'!a+/_B_#b'!a+/_B_#B' !a+/_B_KTc T? Tbhf[RƦr_k`T#b"'!a+/_B_֟T#!'ˡa+/_B_֟T#A!' a+/_B_֟T#B'ˡa+/_B_#'_B_Thhf8k`TTThhf8@%q)TqbGBѿT,pB,pEdT#'!+/_B_nSPgUdRaO^L[I & @_I T#@_T#@'@@2@@+#@/'@37;_B_֥@@@kT_TjThhg8Thg8  kT{){)@ @_ kT@eqT+!a/3_B_  @_T#c@[@C_@cTW@5W@ \@@#@#c@[@%h"8_@[@W@GGi 8_(Tѥ҅|›CBPTXѿPB T/;Bh%8B+g@|*h#8B 7-Ti T35 @@#@ ;@3@7@/@g@+@`T;ˢT3B5 @#@3@7@+@K7 @ K@k;@o7@s_J_VT 9d @_ T#@@C@9qTqATq˥@B@!?TEha8@$qTқlT2!!@ 2BA@?TAb2@@@#'_B_k_B_  @C_T#s9[@ Ѥ҄e|ěCӦfh 8LT_@dP,@$MT$e<@ T/S@W@cTO@!5O@ D@@#@%_@/@S@c\҇c#h 8$hT7T3B5 &@#@/@3@C3  6C@c7@g3@k_I_"Ҏ T$Th`8qTO@cS@gW@k_I_!p U| @C_iT#O@S@ W@BR@@O@bC/5@Д@!("@y!@9#@y9S@?"DA֦҅%.|ś\@Gsˆ3]ӄ|ś\Ӆ7T?~?!5 @~@@#@!S@_3@?@7@gư 9d  @@#@7@$ @#@@?T;5 u@@#@;@dh 8 3@ @@ C@ /@֢@@[__I_` @_)WT~#@ @# @@@y7y@@ @9('@KA  @3@#@7@@ @@9'@?,hT3@G7@_cT@c5@ @#@3@7!!<$@%@y!@9dh y9@@ @@9&@?,iTsW`A|9`1BC@B@_iBT |`h`a!@@3@ 7@X@@#@#3_TG5 @#@G@7c d@yh!x@@ @@9&@@3@ 7@,@3#@@_TG5 @#@G@7! $@ydh x@@ @ @@3@ 7@V!QE|!P0" a^Ao@c@"s@b@@@9%)6e Ě7@"T|g@MTbb_@!b `xdk@d <@@bB Ʌ@@?Bs @?@@`3@5@@@m`_@_֟k _@_jThg8 )@?%qTқ_ TI T @@bB @w@KBs @K@@`3@5w@@w@&`_@_ @@bB W@@WB_s @W@@`3@5@@@`_@_֥mThe8?qT@$qT@@ @@BB @@;B&s @;@@`3@5@@@@_@_@@ d@@BB @@SBr @S@@`3@5@@@@_@_@@ 7@@BB Ą@@[Br @[@@`3@5@@@h@_@_ @@o@@ @@BB9 b@o@"B##'ӄ+@/@CBr @C@@`3@5@@@+@_@_ @@bB% @\@{@GBdr @G@@`3@5{@@{@@_@_֚?J_JThj8ѭ@ӿ%qT қ?mT@-  l@da _T  k M     #  ` @_ T#@TΟ@_B_ȟ@@ _B_ @_T#@@! dC@99_B_֠*    @_)T#р@ $R@'@ @A!q @`3@5@C@[@A!!A!A@`5C@K@  @+_D_k @_iT#@@#@t@ c@9#9_C_֠*@` ( I @_IT#'@!aT@ @@+@ YXc@9@_D_ 6Ae  @_)T#'@+ @A!9q @@!!@!a3!!@5+@+@ @/_D_ @_T#@!T #@ A_C_ 6d  @_IT#@_C_ @_ T#7@G@ ?!@@@?@C@;@KO_F_'@ c+@T'+# 7@ @@@@T#@?TKO_F_p @A!A!KO_F_ _F_ b@@" @b|B@_T!^ ;!@!t@!t@!x!A_ @@b?᧟ן!!@aTA_@@^;B @#^;c@jT@Tt@!t@?kয়9_ @@?য়9_@@^;B @#^;c@mT@Tt@!t@?kן9_ @@?ן9_@@b^;B @#^;c@_Tt@!t@?k9_ @@?9_ց @_ T#?@@,TS3 b8|9`b1BC@A@?IT|aha`@CG_G_ֳPT!, }!S@ @Ł#@'@CG_G_ցҬESh 8ѣ҃D|ÛCӅBP#T҂ g @_ T#?@iTS3`9|9`b1BC@A@BT|aha`@CG_G_YPT!H' A!S@ @k#@'@CG_G_ցRSh"8"ѣ҃|ÛCӅ_PT# @^;! @t@k9_ @_T#?@1!T @ 7@!^;!;@;"˃1cT+0@(@lT,@ T`@;  8 @+@; ;[C_F_ @_I T#?@1!T @ 7@!^;!;@;"˃1c`T+0@c(@ T,@T`@b@c@ @@@+@a;!@CGK ;[ O_F_V @_T#/@3@ 7@@9@@@;?C_E_: @_)T#/@3@ 7@9@;_E_# @_IT#/@3@ 7@@9@;_E_  @_IT#/@3@ 7@@9@;_E_ @_ T#@#@ '@@!T@!Aӂ"bA|!RP"@!T@V"Q EB|AT@P+_C_ @_T#'@+@ /@@!T@!Aӂ"bA|!RP"A"BT@CcV$QĠE|B!!!T@a@?BA0"@C9H@@3$A!I$|A!A 7_D_ @_T#@#@ '@@V!QE!|!P0"@a^A@;_E_ @_IT#G@K@O@ @91G@K@O@@3@7@; G@O@B1B@?A@3@S@B7@W@B ;@[@Bt@|@#-'@+@/@_cg_H_n @_iT#'@+@ /@o@A9C9@@@@7;?C_D_M @_T#V"Q E@B|ÛBPӃv#|c^c|›cQ2҄|%VEbCA%YE?c|śeNӣ@C˅ dՑb#2҃Pcc|›EcEcJӄb#΢l#c|›EcEeHӣ(C˄-b׍;@9 @TeeGze|E׍;˅Fˆ |TH2Ҥ|!T_mTD`T #'+_B_%!҅E%|DD4T&/ƀ xkT4bTx#'+_B_#'+_B_֡ g @_)T#с@@C3cc@BdaB1B ?B@;#'_C_@1 ?@!x!A#'_C_ @@^; @t@@ @_@1 ?@1! @A!^;! @!t@@ @_ @_ T##@`1!  @A!^;!@!t@@@'+/_B_ր*    @@1@?@_ @_T#/@^;3@7@; y@@@;?C_E_@^; @;_@^;! @t@|@bBbcB|@BR@} қE{_@^;! @t@|@Ըb"1B|@BH@H {_@^;! @t@|@@Bs \қ_ց @_T#?@`A1!@?"@B1B@?B@aT.7@;@ d@!!|@!E!~"| T? @T?T?Tg @A!H)KA!OS_F_y7@+^;B;@' Հ+lg @@9'@"x9"p9"h 9"`9"X9"P9"H9 9+@!t@"|X$9"|P(9"|H,909Ꮐy"g@@SBFU @S@@ 3@5@@@ 9o@8_@__@_!? 4T_jT@j;@2T_(8TD(џjT˄[҄hdx_`6TE`ѿjT˥}he_p4TFpjT~hfx_x#3TGxjT hgx_c1TH jT{hhx_/TI?jT  )[) hiʸ_ -T_#-TJ JJ _c+TG@TgKO;Ck@ 6(@9g@{@k@@@K@ 9 ~@@D~@#@'f+@/@[BT @[@@ 3@5@@@$ 9o@z_@_`5;@"xk W@G@ k@C@r@k@@;@@Fk@?T@@C@j{T;@@7? #T;@dXjT˄}DhdxK@`T@&?hTdjT˄[҄Dhdx`T@?xT˄ @`T@ @ '@9@k@@;@ ?pT`jT~@h`x?a!5O@ W@G@ O@C@;@B?@bBx@  @@e@@_BS @_@@ 3@5@@@q 9o@_@_@O@9o@_@_  @@e@@cBS @c@@ 3@5@@@6 9o@_@_ &9o@|_@_ ~rp@n}li f \@a{^[ ~X}U@R Մ_@_a @_ T#C@T?@CAhaNR,r?kTa@y.R?kAT1!:@A@ 7@;@ ?@#@@@'@GKOSW_F_?@ 7@;@@#@@@'@GKOSW_F_Ա @_T#s@To@s҂1BZ@z;[@@g@k@ ?@@@@ e@@@g@k@ [@#@@;@@ca@?TA@?aT[@8 @g@k@d@O@/BR @/@@ 3@5O@@O@>{_L_{_L_{_L_W@@7WS3 @%@g@k@ +@@@'@#@g@k@ @#@@3@@@B?aTa@?TBS@B7@s@?LTV{_L_= @c;T_Tc;~#S?9gc;c;_HcH #@@?@B!A+! SC@?9#@a~Tgc;sw_@c;_+@G3/  # t@@@@T/@3@GH-@ T7OK;/@?3@cTGH`5GH  "@cT#$ @_T#с@@@Ըa!1!|@!H _A_> "@cAT#$ @_T#с@@@aAac!|@!R _A_= "@cAT#$ @_)T#с@@@A)|A!b!@ bb{=b@!b(a_A_= k"@cT#$ @_T#с@@@_A_֤= M"@c!T#$ @_T#с@A@`@#@ =@'_C_փ= ,"@T#$ @_ T#с@@@YAk|A!\!@Bs@ bb{c=b@!b(a_A_S= "@cT#$ @_T#с@A@`@+ @@#'_C_/= ج"@T#$ @_T#с@a@@@?T a_A_ = "@caT#$ @_ T##@@@C@@E@TA@@TA`@9`@9 @ A!@9#9_C_ @_ T#@#@ `'!@9#9_C_l @_ T#с@ ?@ B@@,TS3 b4|9`"1BC@A@?IT|aha`@CG_G_WPT!, }!S@ @i_#@'@TESh 8"ѣ҃D|ÛCӅBP#T*e< "@AT#$ @_i T##@@@C@@E@aT @F @T@F@aTA@@T$@F$@aT  @9#@@@C@D @  @9@#@@@C@D@  @9#@@@C@D@ u @9#@ @@" @!$@ j @9#9_C_ @_T#с@A/@`@@@ 3@@@@7;?_E_; "@cT#$ @_ T#с@7@@@@ ;@?@C@@#@'@GKO_F_֯; X"@T#$ @_T#с@A/@`@@@ 3@7@;@@99_E_փ; ,"@cT#$ @_T#с@A?@`@@@ C@G@K@O@S@#U'@+@/@W[__G_O; "@T#$ @_T#с@A/@`@@@ 3@7@;@@99_E_#; ̪"@cT#$ @_IT#с@'@ @@@ 3@@@+/3_D_: "@#T#$ @_T#с@A/@`@@@ @9@@@37;_E_: x"@cT#$ @_ T#с@/@@@@ @9@3_E_֧: P"@cT#$ @_T#с@A/@`@@@ 3@7@;@I@99_E_{: $"@cT#$ @_T#с@A/@`@@@ 3@7@@@;?_E_O: "@cT#$ @_ T#с@'@@@@ /@@+/_D_': Щ"@#T#$ @_T#с@/@@@@ @@@@#@37;?C_E_9 "@cAT#$ @_T#с@@@@@ @V!QE!|!P0"@a^A3@_93@99_9@_C_֔_C_+ @_)T#`1@3@T`1`3@@B?!T@@!@'@ +@ ?_D_ 66  @_)T#`1@3@T`1`3@@B?!T@@!@'@ +@ ?_D_ 65  @_)T#`1@3@T`1`3@@B?!T@@!@'@ +@ ?_D_ 65   { _#9_#9_3 `_@C9_@C9_ @_ T#'+97@9ȡ7" _L} T3cd@9_aTțd6@9a1!2"@!@B3! !+'@9;?_F_7@ @a @@@@#c@TB@_T;?9'@_F_@*`)  __F_ @_iT#@7"@B _L} TB\A3cd@9_aTț$ 9_C_ @`@?LiT 0@@?LUT@9_C_@*`)   @_) T#CA9'@9 iOi'@90~OU7_T L}T2fT3@9_ _aTț_ H`T'@@@@@3@c9_D_c9_D_@*`) 1@*`) * K @_T#A9@9 Oii@90~OU_@TL}T" h 3@9_aTț T@;#9_C_@*)   @_T#@9?L}T" 3cd@9_aTț;A?AT0 @@#'_C__C_@*)   @_IT#@9@C9hc@9@_C_ @_)T#@9C9Qc@9@_C_ @_iT#7@ @@@@@@e# ;?CGK_F_#@{ @@@@@@%@ƀT!@?Tb+'#@z;h? C+@G'@K_F_;_F_E @_T#3`߈53` #@@ @@!?TT1#@@?XT1B"A@@@ ?T1B"A@@@3 @!&'+_C_@ _C_ @_I T#@@#@ @LTaT#A9`12@@!2 T1B@"A@@@ Tb1B3A@@@+/_C__C_'  %@m * )   @_ T#@@#@ ב@LTT#A9`12@@!2 T1B@"A@@@ aTb1B3A@@@+/_C_`> @!!=!+/_C_~'  @A * ) 0 Q @_T#/@3@ 7@;@ C@@?C_E_2 @_T#/@3@ 7@;@@'@@?C_E_ @_T#/@3@ 7@;@ @@?C_E_ @_)T#'+9 ;@?@C@#@@c^;c@@traT  @ 7@;9"Ȣ7C L} T2@9#;_aT#țe6"@9b1B2C@B@c2B cB+'@9! @`12@@KO9'@_F_ G@ 9'@_F_KO_F_ *`) V _F_sz @_ T##9/@9ȡ7" _L}T2cd@9_aTțd6@9a1!2"@!@B2! 7;_E_!#@9@3@ R@@7;9@._E_ *`)  ~_E_ @_ T##9/@9ȡ7" _L} T2cd@9_aTțd6@9a1!2"@!@B2! !#@9;?_E_/@ @3@ 7@@@@@#c@TB@_`T;?9@_E_ *`)  _E_ @_ T##9/@9ȡ7" _L}` T2cd@9_aTțd6@9a1!2"@!@B2! !#@97;_E_/@ @3@ Ӝ@@@@#c@TB@_T7;9@P_E_ *`)  ՠ_E_7 @_ T#9'@9ȡ7" _L}@T2cd@9_aTțd6@9a1!2"@!@B2! /3_D_!@9+@A@@ ?9@_D_ *`)  E_D_ܚ @_iT#'@aT#@@,RrkT@@ 9@CA9@;9 ` }@@@@@b,/3_C_@ ,_C_ @_iT#'@ @q'@ 0!::@A@@ ? @@'@bbv@+@/_D_} @_T#'@9zC@9` '@ @'@k @@'@C,@5@ @@+/_D_'@@9`12@@!2 +/_D_? @_) T##9/@9ȡ7" _L}T2cd@9_aTțd6@9a1!2"@!@B2! 37_E_!#@9@"@C9@@379@_E_ *`)  H_E_ߙ @_T#7;?9W G@9@C9#c@9G@ G@@9a1!2"@!@B2! ! ;7@?9O@a`3@9C c9@@@G@@9O@?TO@/W[_?97@_H_W ?97@_H_W[__H_G@/@@+ƀ`@ATB@_TG@C @@@93@C c9@@/@+@ K@ S@|@@@@@$@ƀTE@ TG@G@G@G@G@B@9b1B3@@A@W[_?97@q_H_֍_H_$G @_iT#?@9ȡ7" _L} T2cd@9_aTțd6@9a1!2"@!@B2! ҂@9G@?TG@/ SW[_G_?@/@@C@ K@O@i@'#@@+#@3@$@T!@?T?@+@'@!A ?@B@9`13@@3@SW[_G_ *`)   @C_T#?C9_  O@9@C9c@9O@ O@@9a1!2"@!@B2! ! C?@9`7@9C c9m@@@b_ ko9?@_I__ ko_I_O@@S@ W@[@ȓ@'@+@+@@#@'@& @TH@T!T@@!TO@ @3;@97@C c9y@@;@3@O@O@O@O@O@O@@9`13@@_cgko9?@A_I_]_I_W @C_)T#_c9o@9@C94c@9o@ o@@9a1!2"@!@B2! ! c_@9`W@9C c9@@@9_@_M__M_o@@s@ w@{@@@@@#'@+@/@;@?@?@3@7@;@ci@J? T@T? T@To@d @OKGS[`@9W@B c9@@JG@o@[@S@O@K@ o@o@o@o@o@c@9c1c3h@e@9_@_M_֜_M_3B @_T#GK9g W@9C9xc@9W@ W@@9a1!2"@!@B2! b!@KG@9`?@9 c9@@@W@_@[@c@gko9G@J_J_gko_J_[@c@f@9FT_cTT/f@7G+'C;/@_@ T%@Tc@TW@e @%3;`@9?@ c9@@AW@3@;@_@ W@;@_@W@W@W@b'@7@+@C@  @@@@@@E@Tf@T`14@@gko9G@_J_gko9G@_J_gko9G@_J_w ձ_J_H @_ T#/3?9S ?@{9dȤ7 L}T2@9e{_aTețg6d@9D12@@2 ҥ3/@?9K@G@O@C@SW[_G_K@O@C@?@ g@9GT_C T T+a@A @#@@@#@@@ƀ!T%@TG@+@ƀ+@G@`T@14@@SW[?9/@_G_SW[?9/@_G_SW[?9/@_G_Ȟ *`) k _G_C @_T#7;9_ G@9C9c@9G@ G@@9A1!2"@!@B2! !@;7@9`3@9 c9W@@@"_cg97@_H__cg_H_G@@K@ O@S@W@[@'@#@'@#@d@ХT@TT@ATG@ @@93@ c9g@@Хa_cg97@`_H_O@_ 97@V_H_Z_H_l @_T#GK9{W@9C93c@9W@ W@@9A1!2"@!@B2! !@KG@9`C@9 c9@@@b{9G@ _J_{_J_W@@[@ _@c@g@k@o@s@#w@'+/@7@3@7@3@d@ƀT'@T$T!@?TW@$ @D? @9C@ c9@@ƀ?@{9G@_J_{k@9G@_J_ֲ_J_I\ @_T#7;?9K G@9@C9c@9G@ G@@9A1!2"@!@B2! ! ;7@?9`/@9C c9@@@K _c?97@F_H_K _c_H_G@@b @@@#@@@#@@@@Ie@!T@_ T%T@_`TG@ @+3@9/@C c9@@AE!T@T3@+@K W[_c?97@_H_KOS _c?97@_H__H_V @_ T#'+9C7@9ȡ7" _L}@T2cd@9_aTțd6@9A1!2"@!@B2! CGK_F_֡!+'@9@;@ ?@B@@@CGK9'@P_F_ *`)  ՠ_F_7 @_T#7;_9W G@9ȡ7" _L}`T2cd@9_aTțd6@9A1!2"@!@B2! !;7@_9W[__H_G@@/ƀD@T@TG@ @#`@9A c90@@/@ 3K@ O@S@#@@#@@@@ƀaT@TW[__97@_H_ *`)   _H_m @_ T##9/@9ȡ7" _L}` T2cd@9_aTțd6@9A1!2"@!@B2! !#@97;_E_/@ @c@_@@@@#c@ЄTB@_T7;9@P_E_ *`)  ՠ_E_7 @_ T#9'@9ȡ7" _L}`T2cd@9_aTțd6@9A1!2"@!@B2! +/_D_֡!@9@ @@+/9@_D_ *`)  D_D_ۑ @_ T##9/@9ȡ7" _L}` T2cd@9_aTțd6@9A1!2"@!@B2! !#@97;_E_/@ @3@ s@@@@#c@TB@_T7;9@_E_ *`) R _E_o @_ T#р.߈?qAT'@a ϐ@@@@@D&_T @X`T8Tҁ.! '@- @@@@@+/37;_D_+`|&/37;_D_+_D_ j&  @_i T#'+9; 2@9@2!@"B @2!@#_c#620C9ʋ>+2'@97@w @@@@#;@p?@CGK9'@M_F_#  @>#@;9'@:_F_"_F_ @_ T#'+9;7@9ȡ7" _L}T2cd@9_aTțd6@9A1!2"@!@B2! ";GK_F_֡!+'@9@ @@@@@;?CGK9'@i_F_ *`) 3 չ_F_P @_iT#'@`@9 c9@@+/_D_5 @_ T#/3?9O ?@9C9xc@9?@ ?@@9A1!2"@!@B2! B!@3/@?9@+OSW_G_+@ C@ G@K@@@@@@$@TB@_ TOSW?9/@;_G_?_G_֏ @_I T#'+97@9@C9c@97@ 7@@9A1!2"@!@B2! ! +'@9`#@9C c9@@@?C9'@_F_?C_F_;@@@7@"@?C@97@@9#@C c9@@@?C9'@_F_9'@_F__F_f @_) T#'+97@9C9c@97@ 7@@9A1!2"@!@B2! !@+'@9`#@9 c98@@@?C9'@_F_?C_F_;@@@7@"@?C@97@@9#@ c9f@@@?C9'@d_F_9'@\_F_`_F_ @_ T#'+97@9ȡ7" _L}T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@GC@G;@ ?@~ @@GK9'@_F_ *`) s _F_ @_ T#'+97@9ȡ7" _L}T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@@G;@ ?@~@@GK9'@B_F_ *`)  Ւ_F_) @_ T#'+97@9ȡ7" _L}`T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@;@ ?@C@}@@@GK9'@_F_*`)  ,_F_Í @_ T#'+97@9ȡ7" _L}T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@B99;@ ?@@ڊ@@GK9'@v_F_*`) @ _F_] @_ T#'+97@9ȡ7" _L}`T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@;@ ?@C@}t@@GK9'@_F_*`)  `_F_ @_ T#'+97@9ȡ7" _L}`T2cd@9_aTțd6@9A1!2"@!@B2! GK_F_֡!+'@9@;@ ?@C@@@GK9'@_F_*`) v _F_ @_ T#0:@@@?@? @@@@3@'@%#/+  @@/@+@3@'@#@@C9P@@@"3+0:@@@@?C8O`S3@W+@[_G_@C3@G'@K _G_C`1OSW[_G_. @C_)2TC~#9@9C9rc@9@ @@9A1!2"@!@B2! !@@9`[@9 c9@@@@@@@҇{@9@;_@C__@C_@@G@_@;@{@ @ @?MTWg?3 ҡ #T *  ;W_@A=, @2@5@#{@w@3@;@_@{@@ W@2@NE@a5Fc@ e@O0!::@B@@s@c@K@o@?3@O@G @T˅˅!#2!%@e53_@W@!| FK@`s@!$@ATc@@To@uc@AT@?T@@9[@ c9@@AG@o@\9@_@C_Ja L@M@2 >SnTCkw7 /@@#@3@?@g@S@@{@@W@w@7@k@C@ 2@5k|h+   S@2@9ҿT T mTk? T D@E@F@T@@@?TEE&˥}2@e5Co@ o@o@o@G@C1c4d@b@zՓ   _@C_j_ @_ T#@+ @@``A1!2 2!"@5B1B2CB1B2D@+ @``;`A1!2 2!"@5B1B2CB1B2*@~+ @~``A1!3 2@5@1 3B1B 3_C_7 @_ T#@#@ `@9#9_C_  @_IT#с@@  {_A_] "@cT#$ @_T#с@@9_A_A "@cAT#$ @_T#с@@9_A_% Ή"@cAT#$ @_T#B 3@?)T/@##@ @` @!&;?_E__E_ҷ  @_T#'@@ @@@@C9/3_D_~C9_D_w#  @_iT#G@`K@ +@7@+@/@3@;@2 @O`SW[__H_@1@@ W[__H_A @_IT#G@@K@ W@7@@@@;@2 @O`SW[__H_@1@@ W[__H_ @_iT#G@`K@ @&@7@@#@'@;@2 @O`SW[__H_@1@@ W[__H_݈ @C_iUTC~#@@9"$@= @@@@@@EC@5) @C@`@@;92BD@d5#$! 2B@!$@B) @!)@ !Ѐ3@Ѐg @@@ MGo4) @G@@2@5@A@I@!@#@! @A @a5CA@<@A@5o@@@o@/)_@C_@3@g@@@c_[WSO K?lT7T`@ @!,T2Х_@c@@O@S@@[@W@@@@2@"@2Х_@c@@O@S@@[@W@@"TҰvT$T@9qT!T$PAxŅRkT2Х_@c@@O@S@@[@W@@@T%P@9qTqaT@qaTqTa q(TqaT qaT (qaT0qaT _@@$@! @K ;@@@K@ _@+#@;@{@C1c@d@e@#@'@s @92Х_@c@@O@S@@[@W@@C;@'O@S@cT@bB=@ ,@@#@O@ |@Fi%@2Х@5{@ {@<[@W@@e@@$@! @ !@:0 >@A@#@'@ ?@?@@w@k@E1@@@ @92Х_@c@@O@S@@[@W@@?@W@[@cT@B @ +@@#@W@ |@i%2Х@5k@ k@ُ@O@S@c@_@@8 :@@c@"_@cT@_*@ +@@#@_@c@@2@5!|h!2ХS@O@@W@[@@y74' @ @a!X@!@#@! @ 2!"@b5@7@ @&@ 2@`5#"o@c@_@@O@S@@W@[@)_@C_g@c@_@@O@S@@W@[@@K@MT.@13@@_@C__@C_c TDhc85N@O@S@@s@_@C_@W@[@@w@_@C_)P @_T#'@+@ '@+@ py@@/3_D_  @_)T#7@@ @! @ ?7@@@ @@ @8,9#@'@;?_F_@@ @ _ @_IT#'@@ @B @@a! @ ?C@9C9_D_ @_iT#/@ @{R;rkAT/@!)T3@@@R{r+AT/@!6AT3@A@@@RIr+AT/@!7T3@A@@ @/@3@7@_T# ;@p@9` #@@7@c&?aT@aT!1!@2#@!@_AT;@ W@9 @4aT@1.@7@!1!1#@!@_AT;@ @@9 @DaT@@7@!1!2#@!@_T;@ )@9@?9_E_@9_E_!h@@9 @! @ _ց @_)T#G@A1!"@!@ @;99 K@ O@S@@#@@@7@'%13@@?`T3; @9;@3@7@'@#@@e%12@@?T @9@1@@7@'@+/4% @~A!7G@!@#@! @ 2!"@b5@+@!@5/@/@u)#@W[__H_W[__H_z @_T#_@A1!"@!@o@g@k@c@H@% @S@!D!4% @A!4_@!@#@! @ 2!"@b5@'!@5S@S@s!)w{_K_sw{_K_7@&K@'@_@_ TK73;'@99 @@#@#@@;@B3@?BT[+? 13@@?`T GO @9O@G@?@+@`9 12@@?T @9@1@@?@+@/C4 % @~A!7_@!@#@! @ 2!"@b5@/@!@5C@C@);@sw{_K_ ' @_iT#'@A1!"@!@37;_D_+@ /@@@@37;_D_ @_T#6/?@3$c @@ C@G@o'@+@#@KOS_G_\ @C_T#O@A1!"@!@@;99 S@ W@[@ @@@@@@W@T&1ƀ4@@;/7'C ա(@i) TB@_!TO@H@EA9H?+/@C@O@;@'@7@?@+@O@O@O@$ &1ƀ3@@`T  @9C@O@;@'@7@/@&1ƀ2@@T @9@1@@7@'@#34$ @A!|:O@!@#@! @ 2!"@b5@#@!@53@3@)/@_cg_I__cg_I_L @_)T#_@A1!"@!@b @9!HA9o@g@k@c@R@# @S@!D!4# @ @a! _@!@#@! @ 2!"@b5@7!@5S@S@,s!)w{_K_@1@@@sw{_K_sw{_K_7@&K@'@_@_ T37K;'@9 @@#@#@@;@B3@?bT[+? 13@@?`T GO @9O@G@?@+@`9 12@@?T @9 1@@?@+@C/4# @A!|:_@!@#@! @ 2!"@b5@/@!@5C@C@);@sw{_K_  @_IT#7@!1!"@!@ ;@ ?@@@@b7@ 7@d@$@B&a! #+ 13@@_`T  x@9+@#@7@`9 12@@_T g@9 1@@+@#@'4" @~!!T87@!@#@! @ 2!"@b5@%@!@5'@'@B)CGK_F_C_F_CGK_F_2y @_T##;@#?@+?@'#@7@ @@@CGK_F_ @_T#'@+@ - @@@@@/3_D_@@?@'@+@ l@@/3_D_ @_ T#/@3@ /@3@ 7@s@#@@@@?CG_E_@7@B}_"H9?_E_ @_ T#@C@@@'+_C_ @_T#'@+@ /@3@U@@7;_D_ @_T#'@+@ /@3@i@@7;_D_d @_T#'@+@ /@3@}@@7;_D_H @_IT#@!1!"@!@@7\! @2@5@@@@ #'_C_+/_C_ @_iT#W[9o g@k@ # @@@@S-[W@9 @@@b@? @!5 _w@3)$@S@3@ o{_L_S@O@;TD_cT?!5 [$@#@S@;@?@h$8_TOGDe @;@!@@@@G@T&1ƀ3@@aTCK7 @9C@G@C@G@7@K@O@osw{9W@_L_ ֺ_L_mX @_)T#@`@9 @@#'_C_ 1@@#'_C_K @_ T#S37@#;@'{@S@?@ @@ @@$@eTc@T@4J @A!";@ 2!"@57@@7@@!@5@@և!)CG_F__F_~ @_ T#@@A@B @  i @Cu?kaj#v_kal"wk@~@@'+_D_~ @_T#7@!1!"@!@@;99 s@"i# @du_k#jDvk!lCw?ka@@@@ '$1Є3@@`T #+ @9#@'@@+@d9$1Є2@@T o@9 1@@'@@4 @A!"7@!@#@! @ 2!"@b5@-@!@5@@#c)?C_F__F_?C_F_=~t @_iT#?@!1!"@!@" @;99C@ G@@@@@ /#$13@@`T +3 @9+@/@#@3@d9$12@@T @9 1@@/@#@'4 @!!"?@!@#@! @ 2!"@b5@@!@5'@'@c)KO_G_ _G_KO_G_} @_)T#7@!1!"@!@ @;99;@ @@@@ '$13@@`T #+ |@9#@'@@+@d9$12@@T i@9 1@@'@@4 @}a!,)7@!@#@! @ 2!"@b5@'@!@5@@c)?C_F__F_?C_F_7} @_T#7@!1!"@!@ @;99 @@@ @ '$13@@`T #+ @9#@'@@+@d9$12@@T @9 1@@'@@4 @~!!97@!@#@! @ 2!"@b5@@!@5@@c);?_F__F_;?_F_| @_T#7@!1!"@!@ @;99k @@@ @ '$13@@`T #+ ~@9#@'@@+@d9$12@@T k@9 1@@'@@4 @!!"7@!@#@! @ 2!"@b5@)@!@5@@c);?_F__F_;?_F_9| @_T#/@!1!"@!@?C_E_@;993@ 7@;@ @@?C_E_ | @_T#/@!1!"@!@?C_E_@;993@ 7@;@@@@?C_E_{ @_T#/@!1!"@!@?C_E_@;993@ 7@;@@@?C_E_{ @_T#@@"@A9[@@@#_C_#_C_{ @_iT#'@C@9@`@'@+@ /@ @3_D_e{ @_iT#w@aT@9`y @k!s @w@`@a9a9@b 2BD@5{@d d{@2B@9dD9D@5k@Ck@@TT@ T9~T 7_N_9@@9 D0 ~9,@`k@@9`k@w@@C9n@`k@k@@@"@9@B! !!$!-Ik@_N_w@  @@@"B@cc_T!@?T@y t @q`T@qaT@9! t?@qATk@zX @_IT#G@H6@6?@C@  1@@@@@ @9@G@@?9G@@ ?@C@ h$i% @uk%jvk%lwk#|@@@@@@3/! @a!T@@T4 @~!!D6C@ 2!"@5?@@?@%3@!@5/@/@O!)SW_G_?A9+?@C@ ++@?@ C@@@O _G_&zq @_)T#7@` $@a $@+lz+@7@2!$@d5$ ܂ @@@ @$12@@T' @9 1@@'@@'4 @!!H#7@#@" @ 2BD@d5@2B@D@5'@'@B)7@#c! H@;#@?_F_֠&;``?_F_y @_T#/@@9!$@ $@#y#@/@@;92Є@d5?$" Y@;93@ 7@@@@;?C_E_ry @_ T# /@3@ }@@@@Cc@DTB@_TD _E_ /@3@ |@@@@Cd@ETD@TE`#c@TB@_PaT@@#B4Q @A!|3@ 2!"@5/@@/@@!@5#@#@݁!)7;_E__E_x@@ @ _@ @akC9_@ @_ց @_)T#7@@@;?_F_@@@ @ a!@,0 >@@@#@'@ ?@@@@;?CG_F_x @_iT#@ @C@@2!#@5?@D?@jK@E &@5G@CF@G@]+@F 1T2@9&=SW _G_ `@+0 >@@@#@'@ ?@@@@@@/3`@?@+@ 3@ 2@5/@ "/@=SW _G_ [__G_5x @_iT#  @ @@@@@d;/ @ @@?T@9_qAT7' @@@";@c@ _aT/@aT__ATT Հ8"8_kaT @! @?T7@G'@K _H_OS_H_֝l@@ @@@@@&@GT@T ;+#3? @!!';@2!!@53@ `3@+@#@7GKOS_H_wp @_T#o@ @@"1B -@ 1@-2@5 1-"1B-U_C_|w @_ T#@#@9n@o_B_*4 ; \w @_T#'@@"1BC@B@/3_D_ @9;9+@ '@@@@/3_D_/w @_T#'@@"1BC@B@/3_D_ @9;9+@ ;'@@@@/3_D_w @_T#'@@"1BC@B@/3_D_ @9;9+@ '@@@@/3_D_v @_)T#'@+@ '@+@ <@@@@/37;_D_v @_)T#'@+@ '@+@ @@@@/37;_D_v @_IT#@@TThe8qTѥThe8qATˡ @D2!$@d5@9@L@@@8@D4@ @[scTYEk|@\˦@Gsѿ䰆@[s|@0Х ?@@;@ @`5C@ @x@y @@Ax@y! t?@qT?@qT?@qTg@!?@qT@?@qTa@?@q@T?(@qT? @qT?(@qTe@ ?0@qTh@?8@qaTf@@x@yP6@@j@@x@yX6@@i@@x@yH6@@l@_B_   uY @_ T#/@ `. /@@;9 @#A @@@4 @~!!t9/@!@#@! @ 2!"@b5@~@!@5@@~!);?_E_/@@@ @#@  @ 3#@7_E_ 1@@;?_E_u @_ T#`. @# #@ /@3@ |@@@@@$@EХTc@@T`4 @~!!t93@ 2!"@5/@@/@~@!@5@@~!)?C_E_#@/@ 3@@ 7#@;_E_&u @_ T#`.F @# #@ /@3@ )|@@@@@$@EХTc@@T`4$ @!!,3@ 2!"@5/@@/@}@!@5@@}!)?C_E_#@/@ 3@9@ 7#@;_E_t @_ T#@@ @@#'+_C_t @_T#`$ `l@@@@@$#? @!#@2!!@5@ `@R}!77;_E_/3_E_nt @_T#]q @#a@!! /3_E_քh!8!(T҂C|cCd?PT?PT@h!8!A (@@H}E} *t @_T~#@@  . @@~ D$K@@ #@@@@@@@oCK@ T@ha8?qT  '@@@c a!@'#@'@sG-{4 @Aa!H @ 2!"@5@@@|@!@5{@{@|!)_@_?>@ @s@ G@o@C@&#@'@ @@y#@w@@#1cd@e@ @9@ ?@+T4 @Aa!H @ K@a!@s@G@BB-#'o@+C@/&3@7@@ 2@b5#"@#|$1@$1@$@`5#"|)_@_w@@@_@_-s @_ T#@@Th`8qaT 1@@/3_B_eѥhe8ߨqTTTCTa!#'+_B_|| r@@@ _@@akC9_@@ _@@_@@@@ _@9! _ց @_)'T#1`6@1@6@!1! 2@5!1!#"1Br{1!6#@1!6!@$1@5!1!#"1B`{1! 6#@1!6!@$1@5!1!#"1BN{1!6#@1!6!@$1@@5!1!`#"1B`<{1!5#@1!5!@$1@5!1! #"1B *{1!2#@1!2!@$1@5!1! #"1B {0!`"#@0!@"!@$1@@5!1!`#"1B`{ Z @ ~`2`!1! 2!"@51BC1Bz2@@9 @@2@51!#1Bz@. @@# `t@2@51!#1Bz@.` @@l# `^@2@51!#1Bz  @`-`1!@ 2!"@51B`C1B`z@@ @@12!$@511B|z1$@51B @1B nz  @@`h`1! 2@51 1B Tz_C_{q @_)T#@#@ 9c@9@@ @#@C@@E @?AT @9@ #@  `@9#9_C_Kq @_T##@@@C@@E@T @F @!TA@@T @9#@@@C@D @ @9#@@@C@D@ @9 @@#@C@@B@`T @9#9_C_p @_T##@@@C@@E@T @9 @@#@C@ @B @?`T @9#9_C_p @_T##@@@C@!TA@@TA@@k!TA@@TA@@!TA@@TA Y@9@@#@B@@ N@9#9_C_p @_iT#с@!/@@@! @3@ 7@;@ ?@@@?CG_E_mp"@cT#$ @_IT#с@/@3@ @7@ ;@?@?@@@CGK_E_Fp"@cT#$ @_IT##@@@C@@E@AT @F @TA @ @kAT @9#@@@C@D @ @9 @@#@C@@B@`T @9#9_C_o @_I T#ѥ @/@9?@ C@G@K@O@"/@@@ #@+@#/@C\@#` @#@@2@5+@A+@x/@#`@$\@D@`5C @`x   @#@@2@5+@@+@zx/@3' '@S3@W_G_o@@@ _@@ @ _ @_I T#3@mT/@@9@@@jT5 /@@"@@_B@!@? T# y/@@#@@@3@8@9cTTk|{ _E_h"8BT@AG2@`5Fx_E_[xQx &o @C_T#O@ @9 @S@W@ [@ZO@ @@!(@9+@?C@W@e3F@G@T/5 @#@/@W@/CS@ x3@?@@/@@2@5C@@C@wO@+@ U2 QO@@7@W@#3@@T/5 a@#@/@W@/CS@ qx3@7@@/@@2@5C@@C@{w_I_@;@W@#3@@T/5 1@#@/@W@C/S@ Ax3@;@@/@@2@5C@@C@Kw_I_rnM @C_T#O@ @9 @S@W@ O@ @@!(@9+@;C@W@e3F@G@T/5 @#@/@W@/CS@ w3@;@@/@@2@5C@@C@wO@+@ 2 O@@?@W@#3@@T/5 @#@/@W@/CS@ w3@?@@/@@2@5C@@C@v_I_@7@W@#3@@T/5 @#@/@W@C/S@ w3@7@@/@@2@5C@@C@v_I_mO @_IT#A9@@d: ~< @T& 3_C_m @_T#?@CD$@9D@mT$lT/#5 @?@/@#@~+3'E0@9EC@iT  C@9?@3@'@C@+@C@aHTgh&8e6qlT@qlTҦqhT RklT@klT~ T/!!!b #/@+@_ T3@h!8 _ T{h 8?@'@C@fh 8ѥDӿ@#TѦ @ghf8?T6fhe8?Teh 8|eh 8џT?(T"?Teeh$8?T eh$8E8@99_89 ˁ! @9?@ 89_G_uuuuuuuvu l. @_i(T#A93@_㧟3@C/@ @9f$@9 @@ lT9#5 @#@@9/@@҆$@9&@b8@9989 @ @9/@ 89_E_ֆ8@9f @9& @,@9g4@97@ ,TaT T(aT@TC@?@h 8BD_@#TJ @? T ij8?T?Tib8?Th 8|h 8T",T0@9T?ITF Ҧh"8?iT|h 8" T B Th`8_qT?I T|h 8|@T?@ TA@9? Th"8?I T|h 8||w<qAT?iT ҧh&8?Th 8?TҢh 8,@9?iTbҢh 84@9?)T{h 88@989 (T9! @9/@ 89_E_ u t t t t t t t|t t t t t tt t t*` Jh 8 _(TѨ҈ }›)C* B ?(T?@C@JtH@h 8BC_ T?T?@C@;tH@h 8BA_T?T?@C@,t k @_IT#/@$@9@7@3@ 3@;7@?_E__Tdha8qT$_ # W@7@#@_@3@@T;?_E_it Fk @_ T#/@d$@9c@7@3@ 3@?7@C;@G_E_@?TcCTh`8qbT@#;@C% 6@7@@3@#@;@_T?CG_E_,tt k @_T#'@+@ /@s@@'@ x_D_j @_)T#/@3@ 7@;@@@@/@ _E_j @C_#T#[@_@W@&O@$@9@MTm T4@9 0@9~?kH0@9 ?kH3/ @9  @ T(@9j  _@[@W@3@O@/@@*@+ @)@0@9k@A TM g@A@9 "T_9;5 @@#@ _@[@W@3@O@/@;@k@g@_A9|0i*8Q /9k@g@| S@ @9 @ _I_3i-83 o9JT74@9o - TBTC5 @@#@7@_@[@W@3@O@/@S@k@C@g@|{1i-80@9AT A@9 T?_95 @@#@ 7@_@[@W@3@O@/@S@k@g@?@|{_A90i/849{?I Th`8 TOi`8Ds@ӟTis8 @T io8T_9[9;5 |@@#@7@_@[@W@3@O@/@S@k@;@g@[A9|{_A9y@MK2@`5I r @9@ @T(@9 ._I_ r rrr| r| r i @C_) T#O@S@ W@@@O@C0@9cC/ c@9`C@/@O@CD,@9 @9@99@#@'@O@ @ @9x@#@'@O@ ,_I_t @C@/@#@'@O@ _I_3i @_T#'@9~ +@҃#@?T'@@ _D_ւ1r i @_ T#3@ /@"#,@9 #9@99@@@/@  #9Sx@@@/@ _E_h @_=T~#@$@9a@@C@ @#9@K#@'@+@?9T@9q`TqTB!c9@d4@9D?I7T@9qTd,@9d{9?5T@9$qT8q@Td0@9$#qTqTqTqT q`TqTC@Kky@ d8@9989@98qTe4@9e,@9B! -A9@ 89_@_d,@9?IT@9qTd8@9dd @9$d @? Td@?iTkKG@9@@@ To95  @@#@o@A2!$@d5CpG@A9@h&8` @ @@sK@!!!@k@A@G@D_@@T[g5  @#@g@[@G@{[ `q_@s@@[@@2@5{@@{@p_@_ _@_Bcc@ _@_pp;? TOS99 hf8qTqaT@qT7AqTq!Tq T`qT!,_M _ T[{5 & @#@[@;@{@?c`  6qk@K@@#O@A9A9S@?@_@c@qTqk!,_M _ T[{5  @#@[@;@{@?c`  qk@K@@#O@A9A9S@?@_@c@wh$?T@9qAT$_TGWc5  @@#@$G@@W@;@w@h!8|h$8GT_TSc5  @@#@!@G@S@;@w@!__Tc5  @#@G@;@w@kK p@_@k@K@@oo@o f  @_IT#㓀q TG@@/@@(G@@@@%"T5 Q @@#@G@A2!!@a5Cyo㓀$Ch!8_H_ֿh 8'T"T7!5 * @@#@7@/@㓀G@#T?T3;"~ #R@/@!3@_#TG@2!!@5;@;@3o_H_փoo}o Rf @_T#Ѡ0-@ @!aTdy9 Հ2@`5c b o $@9_C_ @6H %f @_T#@@?@@LT 2!$@d5n$@d5nn\!@a5`n0!-! ,_C__C_e@,@ A9 c9_@0@$A9 c9_ @,T`TaT@0A9a@@A9c9_@4A9c9_!T@,A9a@qT`q`T'qLTqTq+T'@;9!+@ /@#&qTqTqT'@;9!+@ /@#'@<'@9+@ /@ #_D_M` @_ T#q,T?qT`q`Tq Tk?qTq`Tq T?@",A9_9 #@d%@&@"T5 @@#@?@A2!$@d5Chb"Ңh#8C@ K@BBBA3#T@?@ ,9G@ 3@#I ?@@@C@D@T3/B5 @#@/@3@?@@yh xAC2@`5Dh_A9@,9?@_G__{ @_) T#sq T`qTqT/@93@ 7@J/@93@ 7@@ #9qTqT/@@A9!3@ 7@*3@ 7@"qT/@W/@93@ 7@@, # /@93@ 7@d_E_[_ @_>T#뀹qlT`qTq`TqTg@9k@ o@ g@@@ g@9k@o@s@@ #fq`TqTg@"@A9  @@?$@%@T;!5 @#@;@@;S{@ h?@g@@;@A2cd@5S@DS@g2cS@k@e ?"TB5 @@#@g@A2!$@d5Cgk@2cAaҁh 8 ?bT;B5 ^@#@?@g@2c;@P@@9h 9EA`@`5Dzg_L_ "@C$@%@"T5 4@@#@g@A2!$@d5C\g뀹C#c ҃h"8mq@Tk@o@ s@@ 0-@9@ 0!- 2!!@50!-#0B-3g W[W@ \@9"@Dy!{?k g@ 뀹+8g@9k@o@s@@, #r g@9k@ o@s@F_L_" B9'Cc,$N3@뀹g@o@T3k@hb8_ T&@(@)@?T95 @@#@g@Aa2!$@d5Cf3@k@A9뀹o@'{i&8  @#@$@T!5 s@@#@g@Aa2!!@a5Cf" ah 8 @c907@g@c2ck@o@?-T7h`8T F@H@I@T?{9;5 =@#@7@o@g@c2c{A9k@?@;@J J@y*i&xGHf@f5I Zfc2c @@D@E@TB5 @@#@g@Aa2!!@a5C|iRr+TB*T_@@@ #k[R[er+TBaT_@y @c9Z,Rr+TB2AT_@@y c9 JRr+TBAT_@@ @c99c@9 0-@9[@0!- `2@5_@0!- 0B-_@`_@[@GKG@@\@9"@Cy!{?ka K@W@ À+_J_ÀPq`TqAT h _J_W @_ T~# ATA?{aT@@ @9}@@@ `2@b5#"_ -c@9 AA_@_A@_ d2Є@e5_E_A@5@E@F E@_@_ '@@IqTT/TLTD/TgPTG@A9G G@I@J@?T5 :@#@ AA@d2Є@@@@k%4k@Ki'HI@g5Jp W_m @@|@?@@"@C @%@&@"TO5 @#@O@@@ `@@@@Ac2cd@5@D@_c2c@AeH6@ 86@@@@' ?BTB5 @@#@@Aa2!$@d5C^A@c2cAaҁh 8@ "<@@@?뭿TD ?bTB5 @#@@@c2c@P@@9h 9EA`@`5D^_@_ @@@@@@A9  @@D@E@TB5 d@#@@@@h@@9h 9AD`2@`5EY^V@@ A@@|@?@@"@C @%@&@"TK5 ,@#@K@@@ <_@@@@Ac2cd@5@D@F^c2c@ ?bTB5 @#@@@c2c@P@@9h 9EA`@`5D^@  + A2\0TX $T qT`qTqT^q`TqA T @C@$@@? @@L@? @ T@\TA`@7@@ @s!5 R@ҵ@@ @@@ A^@@#@ 7@@@z@@ A,@@@o AA@ d2@@@H@A9HG@I@J@_T5 c@@#@@Aa2!$@d5C]Ad2@@ A Hh (i'8  @@|@?@@"@ @%@&@"TS5 *@#@S@@@ :^@@@@Ac2cd@5@D@D]c2c@@\T@@@f ?bTB5 @#@@@c2c@P@@9h 9EA`@`5D]_@_@?"TB5 @@#@@Aa2!$@d5C\@c2cAaҁh 8`  @A@d2@@ A &@@@C@TTDTTT<\`TdT @d@f@g@To5 @@#@@Aa2!!@a5C\@@o@eh$8  + A_@_A@@@o``Td! TC@A9 @@|@?@@"@ @%@&@"TG5 3@#@G@@@ C]@@@@@`2@5@A@M\ AAd2@@C@gH@I@?T5 @@#@@Aa2!$@d5C-\Ad2@@ AgGgi#8h!T  + ` @@@  #n0Th T  @@\C@E@TB5 @#@@@. \@@@@@`2@5@@@[ q!T @@E@F@BTB5 @#@@@@d2h@@9h 9AE@`5F{[xt @9@C9 hHT TaT@ 9 aTyaT@ @c9 =M$hTaT@ aT@9 @y (aT@,aT@@ c9 !18T4aT@" { ##@ z #<T@@" "z + @@ y +_@_@@ AD@@@@  + A"2k@A@@k @k@?T? T@@@A9 @@E@F@"T!5 @#@@k@@@ @yh xDE`2@d5F*Z'@@D@E@T!5 @@#@@Aa2!$@d5CZk@C{h 8`2`2@CT@f9.;lTBCyTxT3Bh@Wj@k@_ "T+_S5 @#@_@+@S@Sk` VW@@@S@@@2@@3@5k@Ek@U?;@@@@4T$@9)@?eqT@?Tq!Th0A9h@909h,A9h<9,9??ImT3 |@@h`D@ #<;@3@!@@@@@ _#@@#A9@ T hT@h`8q`TRO@@ @a@@@9@`,b 9K `@0Wd@e@TS!5 @#@S@Skh? ~VW@@@S@@@2@5k@Ck@ UK@d,@d,@d(989@O@@@@@Tu@, 9bE9mTYTh`8߸q TB9 @#@@#A9@ T)WT@h`8q`TOG@@ @@@9@@`0a$9`0@`0$9d$A9C `@,Wd@e@TSB5 n@#@S@kS `}UW@@@S@@@2@5k@Ck@TC@@G@@@@ @TVA @r@#@@@@W>TDTh`8qjT@3a ,o@W@@@@3@F3qT@@@_T5 @@#@@AA2!$@d5C.TW@@3@@(i%8DB9@_Tq!T0A9@909,A9<9,9__:T |@@h`Cc@ #W@@@3@@!@@3@@W@>@@3@@W@ `B9 @T; $@9 b@D$We@f@TS5 @#@S@kS0. TW@@@S@@@2@@;@5k@Ek@S?c Ta@˄|ӄ@?TW(_O_ A@#D@E@T5 \@@#@@AA2!!@a5CS @ Ҁh!8@7g@?@cT G@I@J@?TSO5 .@#@@2W@@7@g@?@c@S@O@k k@yKi'xHI@g5J IS E@G@H@TSO5 @#@@2W@@7@g@S@O@)i*@)@9 i%9FG@e5HoSjoso@&}@?@@"@S @%@&@"TO[/5 @#@/@O@[@Ok SS@@@O@AC2cd@5k@Dk@RC2ck@ ?TB5 @@#@@AA2!$@d5CRAҁh 8?@ c@#@2W@@7@g@e?LTSMTTh`8qATB-TiThb8q(TqaTf49qATf09qaTf,9qTf(989qTg(A9@g89@@ͱT Th`8q#TqT CT} @(S@@TO!5 (@#@O@kO ' @7SS@@@O@@@2@5k@Ak@ARW@TR}R@@-T Th`8qTqHT CT@0$9e0@$9[RYRWRURSR PRMRbRORER *I @C_ T#W@TS@ _I_;@@_A9W@/;$@7%@3%_9?C?@&L@? @`;@/@_A97@3@W@_9_TfCO@g@i@j@_T5 ~@@#@O@AA2!$@d5CQ;@/@7@3@_A9W@O@h{(i'8O@ #a/@W@?,TH @_ T#O@TK@*G@@"@@T5 5@@#@G@AA2!!@a5C]Q"@`h!8_H_;@c@O@/;#@$@_mTG@@@@?T375 @@#@G@AA2!$@d5C,Q;@/@7@G@O@3@{i&8G@ #/@O@? TN E @_T#@$A77 @!A!#'_C_!$_C_D @_ T#`0.T@ @B:?! T#2/@ 3@@@@#@ @2@`5#$" M! @/@`@2@53@ab 3@Ma$a!#@@`5 MA9 9A9 9?9 $ (@ 9?;_E_ 6 D @_T#A9@@?T A2!!@a5 IMa0!.!: _C__C_@9c@;T_C_YD @_ T#/@1T4q`T 7/@! @@97a/@(qT/@@9a C@9`/@/@@ @!@ ?/@9@!_E__E_ > @A!!A!#! @@ ؃ C @_T#A9@@9@'@1T''@A@ ?C@9@@ @!@ ?@9@!@@ @@+/3_C_C @_T#+@['@TDhc8qjTe  /#@+@['@@?kT3_D_3_D_C @_T#'@G1@T7+@/@ @A9'@9@7@9_D_A9'@@ @!@ ?'@9@!9_D_9_D_MC @_T#'@1T7'@@ @!@ ?'@9@!7+@/@ p@ෟ9_D_C @_iT#@1T@@ @!@ ?@9@!_C_֠03@@@@ Ԃ B @C_i T#ࣀW@[@_T$hc8qjTc   /#@ࣀW@[@kT@#9_I_ @@B$0 b#_@#c@'+@;/@7B @7@@@2@`5;@@@?C! @@ r;@hKB @_)T#7@/7@d7@s!XB<& @@97@4q,Tq`TqTqTu@9_F_9_F_PqTqAT7@! @9@9@7@! @9@9`@7@!P @9@9`@ 7@@ @9@9@Ҡ 9_F_qT7@!@ @9@97@!` @9|@9`@ 7@@ @9n@9@@9_F_9_F_9_F_֠0/@@'+!# Y@@ 0/@@'+!# G@@  A2 @_)T#/@c!x% @Bx3c`qTTqT`q@TqTB qT}}B qT|"B<@AB:7;?_E_A @_) T#A9/@U/@3@ 7@@9@9@/@3@ 7@@9@9/@@ @  @@?C_E_ t @|!H-!!#! @@  /A @_ T#?@?@zC@! ?B0@!0A(TG_G_ <@@BB2 ~@+@'B% @'@@@2@`5+@@ /3!c e@@ +@I@ @_iT#'@! @@9 '@! @@95'@!  m@9@ '@! c@9`'@!x Y@9'@x @9 + -/3@9_D_+/ 3@9_D_'@ @9+/ 3@9_D_'@  @9+$/@3@9_D_+#/`39_D_I@p @C_IT#ࣀqaTO@W@ @[_I_O@O@O@ᣀj@/@;@+㣀TqTO@!d @9@9O@!  @9@9+@;@/@ O@! @9oࣀqT+@;@/@O@ @@9@@/O@ 9e@3@# /@zr@@@@zW@! ?B0@!0A(T[_I_@P# @3@#@@7@'B @'@@@2@`57@@ ?C! @@ r7@hH ?C! @@ `  @a!!'!!?C! @@ E f?! @C_T#ࣀqaTO@W@ *@[_I_O@O@/O@ᣀ@@@㣀Tq Tq`T*O@a @@9@@/;+O@!d @9@9`O@!  @9@9 +@;@/@/O@ 9@3@# /@zuo@@@@zW@! ?B0A$!0?T[_I_` `3@#@@7@'B @'@@@2@`57@@ ?C! G@@ ~7@G ?C! 5@@ ~  @a!!'!!?C! @@ q~ >- @_T#7@ ! @9@9` 7@! @9@97@! @9@9@  7@! @97@! @9@9` 7@! @9@97@!P @9@9`7@! @@9@97@!x @9@9!!-c(`!#~cT/'#+7@@ @ @@;?_F_7@@ @ @@;?_F_#@+@7@ @9[@97@! @@9O@9@7@'@ @@9D@97@! @987@@ @ @@;?_F_7@!# b@9@97@+@ #@@9@9= @_T#_@! @@9@99_@ @K@/_@_ c @9@9 _@@ @ 2@C@'_@ @G@+_@c @@9@9A9_@ @@9@9C@ '@G@+@S@@K@c/@gko_K_֠00@@ OS!c @@ |00@@ OS!c @@ |00@@ OS!c {@@ | <^ @_T#;@?@ |+@?@;@!;@?@ C@fk@@@@G_F_ '+!# C@@ |c_Thc8qT`q!T_CT C@=k@@@@@@@?@?T#"B;@` o@@@@@D#@ r^@G_F_ 8_!T?@ 2@@5;@  '+!# @@ J| @;@@@b@@f|R[rkTzRtrkaT@!#!+T@#y@@@|R[rk!T@!a(T@#z@@ @6Rפrk!T@! %T@#z@@ ]RBrkT@!!:!#T@#@@@@ 2@`5CvAtR[rk!T@! T@#}u@@ 9`@;BR;Xrk( TRkrk(TԑR:rkT@!!T@#@@ @@@@@A 2@`5C6^A4Rkrk!T@! T@#{5@@ @;RrkT@!!!T@#c@9@ 9 ;BR;XrkT@!$T@#z@@@b@ @b@+Rۤr+hT[TR.r+!T@!!'!T@#z@@ +Rۤr+!T@!!& T@#}@@ 9@X{=R;r+!T@!  T@#|@@ y]R;r+!T@! aT@#!}!- @@92@@@R@z@@[zR-r+!T@!!#T@#|e@@ yp@@@ դ0-@9d0- 2@5@0c-b 0B-@@ 2@w{w@A"\@9C@dyB{_k {@  2 D@X!6TOK+ @s@o@3 C@0TTdџiT+T @@@? @@#o@s@ 3@ @@@? @@#o@s@ 3@]@#c@9o@s@ 3@9@T8T@@@ @k@Go@s@ 3@@@@? @@k@ G@@o@s@ 3@ i@@@? @@#o@s@ 3@\T`aT@#@@o@s@ 3@ <@@S$@@k? @@L@? @ aT@#@'@Wk@S@ )@@@o@s@ 3@N! @ @## ?@@@@_@C_֤03@@T! @@ [vgC m@904@@C@g@/o@s@ 3@@@@/@W@hc8 /@'@ T_@C_K@O@ +@@@|@? @@B "W@c@7B_ @7@@ 2@`5c@@ ! @@ uc@>K@O@ +@x@@|@? @@B "@[@;B$ @;@@ 2@`5[@@ ! d@@ u[@> @@@|@? @@B @_@?B @?@@ 2@`5_@@ ! ,@@ u_@y>5 @_ T# Zw@ @@ @!?T@@ҡT7@$$2@d5 -" P>)+#`@@@@@03@@`T ' U@9'@@7@!2!!@a5 '>_F_+@#@ 'u H5 @_i T#/39O `3/@9G@TC@6?@@9!9/@_G_?@(qT1@T C@9 ՠ= @|!-!!'+!# @@ t#@c@# @#@?@4O@O@G@?LTFp_G_4 @_ T#@ @!#_C_4 @_ T# @!:#_C_4 @_iT#Ѡ @`@.` 0!0 !2!"@50B 0C0B 0\= @` ` 0!/ 2@50/0B/B=_C_i4 @_iT##@@@C@?ATA  !@9` @`#@` @9#9_C_=4 @_T#@@#@C@D@@?T @9@@#@C@kT`@` )c@9#9_C_4 @_T#@#@ @@9` @ #@ }@9#9_C_3 @_T##@@@C@@E@T @9 @@#@C@ @B @?`T @9#9_C_3 @_ T#C@!(TG@"@!@aT:C@ @Ga! C@ G@@@G@iRr+ATC@a!*TG@@@C@/G@3h c@{@@KO_G_! @ ? @@+'0B@B@#c @9 '@?@@ 2@5+@@+@%< _G_`t1 I@@KO_G_<3@ @_ @_IT# 2߈5 2 0!@@@_B_3 @_ T#C@!*TG@"@!@aT:C@ @Ga! C@ G@@@@G@iRr+ATC@a!*TG@@@C@/G@3&` c@@@KO_G_! @ ? @@+'0B`B@#c @9 '@?@@ 2@5+@@+@}; _G_`4* @@KO_G_2@ @_ @_IT# 2߈5 2@ S0"@@@_B_j2 @_ T#C@!+TG@"@!@aT:C@ @Ga! C@ G@@@G@iRr+ATC@a!*TG@@@C@/G@30 c@+@@KO_G_! @ ? @@+'0BB@c o@9 '@?@@ 2@5+@@+@: _G_`7 @@KO_G_1@ @_@ @_ @_iT#р9 @@?C_E_1 @C_)T#O@@[ Rr+TO@!.TS@@@ @!!W[_I_֛iRr+ TO@a!* TS@@'@+ c`* `@ +@'@ `* @+@'@ w@!!W[_I_7@;@ j@!!W[_I_/@3@ ]@!!W[_I_;R9r+TO@!!TS@@@ F@!!W[_I_O@?S@C@  @.@@ )@!!W[_I_1Z @_IT# 2 ߈5 2  ߉0"@@@_B_0 @_ T#C@!!TG@"@!@aT:C@ @Ga! C@ G@$@@G@iRr+ATC@a!*TG@@@C@/G@3 c@@@KO_G_! @ ? @@+'0BB@c @9 '@?@@ 2@5+@@+@a9 _G_`@8 @@KO_G_x0@ @_ @_T##@,T AT@@y,R?k T@9q Tb T@@;(R[r?kT@y{R_k T;(R;Gr?kT@y{R_k T;HRƦr?kA T@y{Rk TE$T@@;([hi?T @9_\q`T;(;Ghi?T @9_\q@T;HһƦhi?!T @9\q T%HaT@B9 Ƥ@9@! : #@@9`@h: #@@9@#9_C_#9_C_/ @_IT# 2`߈5 2` 0#@@@_B_/ @_ T#C@!-TG@"@!@aT:C@ @Ga! C@ G@@@G@iRr+ATC@a!*TG@@@C@/G@3 >{ c@@@KO_G_! @ ? @@+'0BB@c @9 '@?@@ 2@5+@@+@98 _G_=  ]@@KO_G_P/@ @_ @_IT# 2߈5 2 0#@@@_B_&/ @_ T#C@!.TG@"@!@aT:C@ @Ga! C@ G@T@@G@iRr+ATC@a!*TG@@@C@/G@3`X ` c@@@KO_G_! @ ? @@+'0BB@c. +@9 '@?@@ 2@5+@@+@7 _G_@" @@KO_G_.@ @_ @_T#т0B!C@A@'@"T|bhbd@+@"T|aha`@ @য়c9_D_֏77 s. @C_T#р0`@a!@/* @0!/@0B!A!2!$@50!0B!70`@~T! n7@@@0!!$@&@'@T3+* @@#@0B!A2!$@50Є!0B!60B!0Є!0!!+@3@0!@2@5|h"60!@@@ @!!+  _M_-n @_T#т0B"C@A@'@"T|bhbd@+@"T|aha`@ @য়c9_D_66 - @C_T#р0@a!@/+ @0 "/@0B@"A2!$@50Є"0B"]60@~T! Z7@@@0!"$@&@'@T3++ @@#@0B@"A2!$@50Є"0B"#60B@"0Є"0!"+@3@0 "@2@5|h" 60"@@@ ]@!!,  _M_-n @_T#т0B"C@A@'@"T|bhbd@+@"T|aha`@ #@য়c9_D_66 , @C_T#р0@a!@/  (@0"/@0B"A2!$@50Є"0B"50@~T! 7@@@0!"$@&@'@T3+  @@@#@0B"A2!$@50Є"0B"c50B"0Є"0!"+@3@0"@2@5|h"K50"@@@ @!!- `$_M__,n @_T#т0B#C@A@'@"T|bhbd@+@"T|aha`@ c@য়c9_D_O5N5 3, @C_T#р0@a!@/- h@0 #/@0B@#A2!$@50Є#0B#40@~T! .7@@@0!#$@&@'@T3+- @@#@0B@#A2!$@50Є#0B#40B@#0Є#0!#+@3@0 #@2@5|h"40#@@@ @!!. d_M_+n @_T#т0B#C@A@'@"T|bhbd@+@"T|aha`@ @য়c9_D_֏44 s+ @C_T#р0@a!@/. @0#/@0B#A2!$@50Є#0B#40@~T!. n7@@@0!#$@&@'@T3+. @@#@0B#A2!$@50Є#0B#30B#0Є#0!#+@3@0#@2@5|h"30#@@@ @!!/ _M_*n @_ `T#@3! B8@=@93@ 4@92@53@0B@A0B@3@3@/! B/@9/@ B @ @9/@ B/@9/@ B4 @@9/@ B0@9/@ !P @@92@5/@0B`A0B`/@(3@+! B @@9+@ B$@9+@ B@9+@ B$@9+@ B8@9+@ Bl0z@9+@ !t+~m@92@5+@0BA0B+@2! 3@'! B "K@9'@ B$>@9'@ BD"1@9'@ B%$@9'@ Bh"@9'@ B,% @9'@ BL@@9'@ BD @@9'@ B @9'@ B @9'@ BH @9'@ B9B@9'@ B :B@9'@ Bh:B@9'@ B,@9'@ B }@9'@ !~{@92@5'@0BA0B'@1'@#! B_@9#@ B@R@9#@ B@E@9#@ !$@8@92@5#@0BA0B#@1.@ @!. B@9.@ B' @9.@ B@9.@ B@9.@ B8@9.@ Bx@9.@ B@9.@ B@9.@ B5~@9.@ BL@9.@ B`@9.@ Bt@9.@ Bz@9.@ Bm@9.@ !(`@92@5@0! 0B@0_G_' @_)T#с@@@@_A_ '"@cT#$ @_)T#с@@@@_A_ '"@cT#$ @_)T#с@@@@_A_ַ '"@cT#$ @_)T#с@/@9 f@@;?_E_֮ W'"@cT#$ @_)T#с@@@@_A_֎ 7'"@cT#$ @_IT#с@'@ @@T !T @y,RkA T @9q T^ T @;(R[rkT"@y{R_k T;(R;GrkT"@y{R_k T;HRƦrkT @y{Rk TB$T @;([hiT" @9_\qT;(;GhiT" @9_\q`T;HһƦhiT @9\q@T#H!TB9 @9@! : @y@9`@h: @o@9`@C9_D_ &"@#T#$ @_)T#с@@@@_A_ &"@cT#$ @_)T#с@@@@_A_ƶ o&"@cT#$ @_)T#с@@@@_A_֦ O&"@cT#$6  _@#9_@#9_9_ ___0 @@?@T`0 @?T ~_h _( @_ @_I T#'@$ @2!"@5|||| ! @2!'@%@5+@ +@. !!,?1 @!@2!!@5@ @.BB`#/37_D_@* e % @_IT#@@a0!%"@!@@C9+_C_v% @_T#?@@C@ ? @@ɭc@9?@C@ @@9A 9@2BC@9@{|@$k @;_kaT$#+@'|#@+@2B'@@@@@2@5#@#@.G@/K@3@!  c @9 G@@K@C9? 2@9+@"B+@#_c#4'@} 2@9@2!0"B@2!0"_B"{ @ ?@C@G@K@Ӗ_G_?@@C@?G@@ @@K@C9?_G__G_$L @_T#G@@K@ ? @+O@" @S@@? @+@7/c# @9@@aTG@@K@?O@@ @@S@C9?_H_ $ @_ T#/@@3@ ? @a0!!@?@T79_E_/@@3@! 2! ?@@B ?T9`!!?T!#@#@#c ?@T@_T79_E_7@9_E_79_E_I$ @_ T#7@;@ @@9! 9@2BC@9@{|@$k @;_kaT$#@%{@#@2B@@$?@'C@+@!  #*#@2B@ @@9"B$_$4q|_F__F_# @_T#`0@Q_B_# @_T#+@!T/@2! !T 3'@7_D_'@@@!@+@ /@ ?@@37_D_# @_iT#7;9KG@9`""_TB/33@/@#  a TK_H_@2cc@9@{|@Dk @[_kaTD@#zG@#@@c>;7@9!!?T!'++@'@B   ̤G@`@  6"B @  _!TK97@{_H_ 6F 6@ Ղ^_H_#x @_IT#'@9@2BC@9@{|@$k @;_kaT$@Ez'@@2B@@@ B@9%⸥&_&4W{@@+/_D_" @_ T#@ /@ 3@@@/@@@3@#@a!`6!,@ ? @@7;_E_! @ ? @@7;_E_" @_T#/@@@ @@ @#`@@37_E_t" @_IT#g@_@;9$@2@9@|@k @_kaT &@(yg@_@@2@'@g@'2@5k@""k@ +#`c#T#c#@#@))  @T҈  `b0BB@ 4_@@#c~TB  #<" ՠ@9!_B4vz_K_@@!@C9g@k@ ?#'@@2@5_@_@ҭ* 2!!@9@Cc@D_D4@Cz_@C9A@@ !!,s_K_@*` a !9 @_)!T#W[?9g@` @k@ ? @@@@9 o@s@w@|R@9 g@7k@;"B @32@5@;T  2o@3@$s@(@5w@,`w@+*g@k@ -o@s@ w@oX@ T3@"@2cc@9@{|@Dk @[_kaTD+"@/x+@3@/@c>[W@?9"@B3E @!2!"@53@ 3@)+@ P@2@53@# 3@")3$ @!2!!@53@ 3@)BB %{?9W@!#'_C_ @_)T#@ '@`#@ T @#@T"@#@@`` @!!8+!/3_C_ +_C_` @a!!`+!/3_C_W @_T#/@b `@a@b@?T;_E_CT3@7@ !#@@@@#@,T/@d@dTc0c4a@b@;?C_E_ * WF!  @_T#@@@_@ 1@5@@@ _A_ @C_)T#o@A@C@B@?Td@e@T`@Ca @/ ] @_!! @1@5_@A_@ /@A@5C@@@ C@  *sw_M_@jTb!Te@AT?I Te@@T A@!)sw_M_3G @Ҹ @c!!* 3@CA?̻c@[@1BC@C5~Tc@ a W [@W@9 1Bc@?@d 3@$G@ ;@G@3@c@[@1Bd T|Ӧhf@ T@9? T;|Өhh@) i S*@JK7_9_9_ @c@L@LL@&T?O * @@#@c@A 1!$@5C [@c@[@?@O@$ D1Х@5!|Ch!7@K@ &@@@S@@A1@a5C(sw_M_h!8!?T3@"G@@9h$8Bт_"TD|dhde@ T@9E?IT|fhfe@hT!@(sw_M_  @_IT#/@9!!.#߈5 io/@@ @! @3@ 7@ ?@@;?_E_z @_i2T#O@@ G@ @`@K@Ҁ@@E_@[9C@K@@9chg8BTxcE+G@@@ @+@" T" 1Х@e5#x$_@K@O@@@@" Txc S@W@[@91@5K@ K@J @1@5G@G@S@W@[@_@G@@@W@@1@5S@@S@[@@_H__H_JTThf8hhf8kTTT@a S@W@[@_@R;+7?aT@ @+@!;@#1!"@b5 `G@@%@e5{/Ͷ @3_@"$@c @_@$@G@AA 1@e5CE[E@F@G @ T@@9hg8"T @5/@x'/@FE@A@K@@9hh8T O@))@ @53@x&3@._@5_ _7@" S@W@[@L T'e @+@'@` ;@1BD@d5` d`1BG@@F@f5e f1B@?TE@e5O@_cT@!K@A S@W@[@_@~" h @_T#G@[9B9K@O@   B K@? *TcTJ@G@@H@L@,@@9Bhm8 $@_ `T_bTyb@(H @L@  jT7/;3+9'# B@9+@7@B93@@'@/@@9;@#@G@ҨH@,T B@ W[_9_H_} b @_ T~#  @@@c_ TITd|$hd%@q @#@;T#%jd8$@$+T#@@;T@cJT#hc85$@j#8j#8$@B a@@$@ 1!!@a5@@#|GhgF@ $~#@@@@@?MT Td|DhdE@f?(T_@_@hf8@h(8KT k @_T#?@@G@#/@@T+ 5 P@#@+@G@+3C@ `/@?@@+@@1@53@@3@jG@O _G_ @_T#?@@G@#/@@T+ 5 @#@+@G@+3C@ $/@?@@+@@1@53@@3@.G@K _G_R @_T#7@ ;@t/@ @@@@3@ ?@@@?CG_E_. @_T#р N @+!!5 ?@e@+@_?@@1!!@a5C7@!9 ;@+@@@ @@CG_F_ @_T# *k@ o@ީ@@ k@Wo@[% P@@O3g@w@s@ GT`TK@+TK@he8kil8L$@ TL@M@ "TykkT?SC7`ˡ 9@@@A9?@EO@3@g@w@7@G@C@S@s@7@?@ T;_9/K3@ @O@cs@  ?@G@ @@@G3@ @O@K@ /@ ?@G@ @@@;@?@ 3@s@_A9O@g@w@{_L_{_L_TT! @`B  ?@G@(@@{_L_\YV  ;8 , @_)T#[@W@_@7G W@@@+@ /@[@_@G@7@3@@7@G@T@ j @ @ G3 TThT+/? i TK 5 i@#@3@+@K@7G yW@@?@#3@7@cTG@K; 5G@ G@#@;@?@K@  *T ? B TAyp D D"T-zmT  ?T'C!!5 @3@'@C@G /G@ ?@9@@cg_J_cg_J_֐~ѭ- TOil8qim8?kTo f  c  `v C* @_ T# *K@ O@.@@K@7O@;% @@#3W@S@G@ G@@@'@+@W@S@#@3@_cT@H˩i @@k 0/@ T_C T T'+" @ˤd @?@/@ @@@/#@ @G@C@D@3@  ?@/@ @@@   T 2,T@yo DDT zlT [_c_H_[_c_H_! @  ?@@@/@`[_c_H_kь,T.ik8Pil8kTg    C @_iT#7@3@/@_MT9fh`8hg8kT# @@@7@3@/@#@hg8T&h 8 @@;?_E_;?_E_\ A @_ T# 5W@ @q+ w@;G@+@S@W@;@G@+@7@/@ T3놰T/7' ;@G@+@7@/@3@'@TcT/7K@# @O@ `?@3@ @@@C[ _H_;9hg8(hh8h'8KT[_c_H_  @C_T#O@9LLW@ TS@Қ?T7["' 5 @CS@'@W@O@S@[__I_֥ T'he8 ˈ  @@TG?)T/7+ ;C@S@'@W@O@/@+@7@&Th&8 8@@[__I_z?@@W@3?'9@@#A@;S@  @#@? T;@!@9!O@A !@!'@@O@@9'@3@!7@TW@O@E&hd8 @@_lTlM @_ T# *K@ O@@@K@7O@;B% x@@/#S@W@G@+T9Hhe8 ˈ  @'TH T3# @F `?@+@ @@@3@+K@ @@@ @O@  ?@+@ @@@#'@F#@W@G@/@S@[_c_H_[_c_H_ TT! @`B  ?@+@'@@[_c_H_ k @_T# ;@ @+!!  @;@A1@57@D7@5A A@5+@CE@ +@(C@ax T#E@h`8'ѧx&+T'x#cf?T'?T# ۂ@9@;@'@@7@#@@;@'@@7@@F DGDTM Te?CTT@f?Thf8(?Thh8 kTF DIDITc#y(?_F_?TT(?Thh8i) Thi8?kT @  < @_ T#7@;@ a3@?@?LT!* @+7@;@ @?jT#' 71@#@_T@@T+@|I !'@a1JK@k5h(ERkT@K@5Gh(Cc6@T#1@5|h!%CGK_F_`g D  @_T#;@T3@/@"7@@9/@3@ c9@?_E_/@3@ 2@?_E_@!#@# 7@\ @T;@@@?T@?_E_)   @_IT#;@T7@@93@!/@3@?`TT7@"?_E_7@/@ @9?_E_?_E_3@?_E_Efhb8g2 Be2 @@|A|,T %/@he8k2 h) T?T_+/k!T? T% _`T3 <@93@;@7@/@+@/@3@@?_E_e?IThe8j2 H%?ITh`8(kAT(T#7ˠ @93@;@7@/@#@+@/@7@j2 #@?_E_?_E_sZXoU!Cha8kAT?_E_. 9 @_i T#kqTRkT/@3@) RkT8@Rr?kT ?/@3@ ^ @;_E_;_E_/@3@ c9@;_E_?Thb8qjTD # #@/@3@#@RkT;_E_;_E_  @C_T#[@` TS@? mTW@GW@@9O@S@ q @__I___I_[@S@#@?TO@dhb8qjTE #@[@#W@ b@@__I___I_օEӥ~he@@!Ěh%cTDhc8q#T#@;T,TO@B?Thb8dEӄ~#hdc@@ ÚjT__I___I_N } @_IT#S@K@`?@C@ G@@#!* |@3#@"+C@?@?@C@ i@@@W[__G_ __G_H k +@ *T/' G@K@Q @O@'@_T@#@T3@K@ 1JK@5|/@h(/@_bT3@#@@'@/@TD1@5b|h"W`[__G_  i @_)T#3@/@@ F'hb8c-#ig8'%Tb@_qT#* ݮ@3@/@ z@@@7;?_E_c?TDhc8-Х#hd8$5-Х##@ ? T THhc8hh85h1ThFT (1 @5|h)   f#?MTCT%"TE1!!@5|h!7;?_E_>T?TTIhf8hi8I52/D*  Z @C_TC ~# ~T{;@3/SAmTC?7OAh`8qjT #@;WA@@ ?C@9/@3@"7@cTCA#CA k@@#@/@3@%|Ӏh%?@ 3@7@CA/@?@7@3@CA@T!# E@@/@3@SAC|Ӂh#%3C!* ݭ@3@?TOASACA [_c_@C _ք@@@_T(T1@5h|h(;  f?LT| Y L @_I#T#{@ T@C|w@w@@@_N__N_֦@LT  _Gg@k@MT3 5 a7gg@3@@c@T[ 3@[@g7@kcG@@w@@@ _@`T_g@gCk@c@"T?+K5 @#@+@K@?@?W  C@g?@kW@c@|w@ G@?T@@c@g@_N_S@@@@@@  _@Te_/OCSg@I?k@c@_ T;5 ;@#@@@;@;W` K?@g;@kW@c  _@T-_g@/@C?k@c@T;!5  @#@;@/@;WO@ ?@g;@kW@cC@G@T*' *H*' #H*' H* H 6 @C_*T# G@w@?T7s@Ch`8qjT K#@_Go@@@ ?[_?kTR?kATw@7@?R?kTw@7@?$T Cs@ +@T[?kT![a6?qlT@?qlT#qhT R?klT@?klT~ W@TWw@D3_@c@T7@_-; 5 A!?_@;@@[@Tw@7@ S Zw@7@_;@S@7@_?@c[3@w@[T W@`TW_@&Gc@[@TC5 @#@7@C@COs@ &G@_C@cO@[[7Z3@7@@w@?# T!s@@s@c@GK {_M_K@G@C@_Thb8qjTB h#@Co@@@ ?@7qT  W@?T'W_@"[@c@TW5 @@#@c[W"_`h!8[@_@{_M_*' F'*' F* F*' F  @C_ T#w@ s@|@ ?aT  WC_@c@_-T/ 5 A3_@/@@[@TS c/@S@_3@c[s@C@  W@`TW_@$?c@[@T;5 &@#@s@;@;Oo@ 6?@_;@cO@[C@_M_;O #?@_;@cO@[C@_@_J T@_T  [@ W@T\W_@E?c@[@"T;G75 ۪@#@G@7@;@[@_T W@_T.W_@#Cc@[@"TK?+5 @#@K@+@?@?OB C@_?@cO@[[@_@{_M_*' E*' E*' E* E*` E* E  @_T#[@W@BmT$hb8qbTc@qThq㇟B w@@_c_J_֣ ?G@K@-T3 !5 7۩G@3@@C@T; >3@;@G7@KC[@W@ _c_J_֦Gh%8c-T$hc8ѥ@ӆdqĐ ?@`T$?G@C@K@T/_95 @@#@KC[@W@/@_A9C@G@_c_J_*' E 3f @_IT#'@+@ /@9@+@? T'@dh`8q#T"d (@@+@'@+@'@?T37_D_  @_ T#'@+@ /@9"@T +@?CT!'@@ /@@@37_D_   @_iT##@3@?T/@Ch`8qjT #@#7@@@ ?C@9A9@@?_E_?_E_ @_T#+@'@+@'@MT?T )@/@B@ @?@@C@9A9!!@7_D_7_D_  b @_T#3@T/@"@9_q"T`3{ @!&3@1!!@5/@ /@ 7_E_c @3@/@ dEӄ~hdc@@ Úh$BT#hb8q#T#@;T-T`3? @!#3@1!!@5/@ /@ 7_E_`1' @!@%1!!@5#@ #@ 7_E_ @_IT#@@A @ ;@ෟ9_C_@@ ?qT9"EB~hb!@@A kC9_ @_iT#A @B@?)T@@9+?k9_B_Ҽ   @_T#+@`3@'@7;_D_/@ ('@+@ @@7;_D_z @_T#+@`3@'@7;_D_/@ '@+@ 9@T +@?cT!'@@7;_D_z  G @_T#+@`3@'@7;_D_/@ '@+@ @@7;_D_" @_ T#'@+@mTeh`8qT-ƀ#he85 @@/3_D_-ƀ#T?Tghe8qThg85T` @@/3_D_?TCT`/3_D_      @_i.T#@@`T @@ Zw@9@@b@w@{@_N_w@{@ @P@@?LT  _@@{@&Kg@k@  mT; 5 ?g@;@@c@T[  ;@[@g?@kcK@{@@@@w@%w@{@_N_CW@  G@gC@kW@c7@@3@{@@K@w@{@@@w@_JT7'e_T?T  %@'@K@7@@@@w@{@?T  W@'@K@7@@@@w@{@?T?T   )  _@`T_3g@l Gk@c@ "T/SC5 u@#@S@/@C@CW   G@gC@kW@c  _@TY_g@@CGk@c@TC!5 G@#@C@@Y?T  _@_`T+_g@CKk@c@"TG+O5 #@#@+@O@G@GW 3 K@gG@kW@c_N_*' AA *' 8A*' 1A  o } { * A A @_)T#G@K@?@C@#  '3D@9qTc˥@B#/ $@#@_ TC/@3@'@#/@9qT!@7 $@'@_ TB3@#@7/@kTq TѿdqTkT3+7 Lc73k!T+@@/@#@c9_G_?`T }u@9c9_G_ .c73k@Tk Tc9_G_   r @_i-T#S@ TK@?@TT1c c@lT?@TO@d@99e@99&#G@G@ O@u@W_H_O@d@99e@99&G@+W_H_O@G@ u@9W_H_W_H_O@@9G@K@ c9v@W_H_W_H_  _ T?T3hb8? kT?TI? T+#% c9u@ +@bS@K@O@@9@9@G@3@I? i T;hi8 kAT? T_hT7A! t@9@S@K@;@O@@9@G@3@7@@9(DlT?*T!!$ "s@W_H_;@ W_H_;@W_H_W_H_W_H_     _ T?T/hb8? kT?cTI? T'#% c9Zu@ '@bS@K@O@@9@9#@G@/@I? ) T;hi8_kAT?T_(T7A P @!a! /@ 1!"@5+@@+@$0Є@$0Є@!@a58#0c@/`@b@'@a937_D_n@@9!: !.! _@@9k d:!!T& ~_@C9_ @_I T#C@G@ z/@@@@@DХ8_@TҁT'+3b@e@&0ƀ@@AT/ w@9 0@/@@'@'@3@/@+@b@c@%0Х@@@T w@9 0/@@'@'@3@+@?@@KO_G_z @_ T#@@V @!_B_d @_)T#@@@ \C@@#'_C_K @_I T#C@G@ zj/@@@@@DХ8_@TҁT'+3b@e@&0ƀ@@AT/ w@9 0@/@@'@'@3@/@+@b@c@%0Х@@@T v@9 0/@@'@'@3@+@?@@KO_G_ @_ T#@@Β @!_B_ @_)T#@@@ B@@#'_C_ @_I T#C@G@ z&-@@@@@DХ8_@TҁT'+3b@e@&0ƀ@@AT/ v@9 0@/@@'@'@3@/@+@b@c@%0Х@@@T rv@9 0/@@'@'@3@+@?@@KO_G_j @_ T#@@F @!1_B_T @_)T#@@@ B@@#'_C_; @_I T#C@G@ z,@@@@@DХ8_@TҁT'+3b@e@&0ƀ@@AT/ v@9 0@/@@'@'@3@/@+@b@c@%0Х@@@T u@9 0/@@'@'@3@+@?@@KO_G_ @_ T#@@ @!4_B_ @_)T#@@@ A@@#'_C_ @_T#@@@1@5@@@r_A_ @_IT#@@@ @!*#'_C_~@@@ _ @_) T#;@?@ z)@@@@@CЄ8?@TҁT#+A@D@%0Х@@AT' ?u@9!0!@/#@ @@+@'@#@@A@B@$0Є@@@T 'u@9!0!/#@ @@+@#@@7@ CG_F_ @_ T#@@ @!'_B_ @_T#'@@ C9zd2@@+/_D_ @_ T#+@/@ Q'@@@#0c@/b@a@'@`37_D_ @_ T#@@ @a! _B_ @_T#@@. @@#'_C_ @_IT#@@@#@'@ ?@@+/_C__ @C_ T#o@`@ @#~T!o@ @#@8@@#@7@;@@_BT$ 1@f5#x" k@!'#@+@/3c ##@s@w{_M_6  @_)T#A @B@'@TCx`d@c@+@T@x`@@ #n@য়c9_D_ @,@(@ _ 0@!6 _@@@ _@$@ _ց @_T#@@ (1@5@ ,"`@_A_ @_T#/@@2 @#@ xb3@C@`?@#@@_T_E_ @_T#/@@ @#@ xb3@C@`?@#@@_T_E_s @_T#'@@! +@/@@@3_D_W @_ T#7@@B ;@?@@@@9#@@! @C@ G@ ?@@@B7@@]@1@57@#7@"@! ;@?@@[91@5#@@#@ _F_KO_F_;@?@ @!*'+4| #@@@KO_F_ @_I T#?@@@@@/3/@!!&#'"L@@? @XT#@$@'@? @@ @@@ #@'@ ѹ@@@ @90@@+B. ď@@+@?@G@?`TC@Em@9C9_G_ @_T#G@C@A @Tdh`8qaT@@B@"B973;A@_#c ^@3@;@n_@ÛRDr+(TɑRrkT7@! =a T3@;@"B&Z;RrkT7@!=TKÛRDr+T7@!?AT3@;@BB,A;5R[r+T&Rr+T7@!`>T3@;@@"B.;5R[r+T7@!<T3@;@}BBRr+T7@!?`TRdr+T7@!@T3@;@~"B:3@;@"B9KOSW_H_ք*T"Tfhd8߀qAT#T 3ˢb;!!˄c #@'@;@K3@OSW_H_ - @_)T#@(@c _C_ @_IBT~#@@W! @c @"@#@ @!*gk8c@ #c;#@?@c@b _@ @@O@7T  f@T1@g5c%;Sf@h @i@TC?5 ޛ@#@;@S@_@c@O@7@?@C@jJJ@9*i&8gh 1@g5i   g@@T@g5cg@Ci @j@?T?5 @#@;@S@?@?[B C@c@`?@` 1@5[@a_@_@[@O@7@`@lT  `@T=1@a5c`@f @g@bTC?B5 `@#@?@C@_@c@O@7@h@9h 8af 1@a5gB}=  `@T1@a5ck`@f @g@bTC?B5 &@#@?@C@_@c@O@7@(-1 @ @yh  yaf 1@a5g@  `@!!,1  '@#@c@b@_@T1Є@e5cb@Ce @f@"T?/G5 ך@#@/@G@?@?[ C@c@ ?@ 1@5[@ _@[@@@@ 5@9@@B??T @@ @!*gk8c@ bB|"#@ @@ @!*gk8c@ bB"#@W@,@(@0BA@6K3c@C@B@  ˋ@!*osw{3@K@ c_@_*' 5*' z5*' s5*' l5*' e5 f @_T#G@@,@(@0ca@B6 @! @9%,@(@0ca@B63/@@ `@!*7;/@3@ ` :@G@_H_<@@`@ _ @@"@!@kT_|Aha@@_@@ _@@@ @ _ց @_)T#A93@ 9/@; 7@;@C@G@X_E_ @_)T#: @# A99/@!; 3@7@?@C@2#@G_E_ @_)T#?@3@ /@`> 7@;@C@G@_E_ @_)T#Ε @# ;@/@!`> 3@7@?@C@#@G_E_ @_)T#?@3@ /@= 7@;@C@G@_E_g @_)T# @# ;@/@!= 3@7@?@C@#@G_E_? @_)T#?@3@ /@@ 7@;@C@G@_E_ @_)T#1> @# ;@/@!@ 3@7@?@C@Z#@G_E_ @_)T#?@3@ /@? 7@;@C@G@8_E_ @_)T#4 @# ;@/@!? 3@7@?@C@#@G_E_ @_IT#C@3@@1@5?@@?@n/@? 7@;@G@K@_E_ @_IT#* @ ?@@1@5;@@;@A#/@? 3@7@C@G@#@K_E_V @_)T#3@?@/@! = 7@;@C@G@_E_7 @_)T#'V @# ;@/@! = 3@7@?@C@r#@G_E_ @_)T#?@3@ /@< 7@;@C@G@P_E_ @_)T#@  @# ;@/@!< 3@7@?@C@*#@G_E_ @_T#/@1 C@3@7@;@?@ _E_ @_#T#g@Tc@"9B@_qc@Ң "B, @@[@@_@? @3@+"B @g@@1!#@5c@Dc@Co@E %@5k@EE@k@6[@E%@5_@EE_@)/+@E%@53@CE3@W@"@c @9 W@@i@1@5W@#W@"@! c@g@@[91@5/@@/@_J_W@@c@g@ @!*7;W@h @@z@#@ @!* 1@@ @!*?Cc@g@ @!*GKW@4$ L@#@c@g@ ˇ@!*7;W@  @@1@#@ @!* 1 @!*7;W@4 @@#@ @!* a1  @_ T#K@O@ S@W@[@w@@G@C,@B(@0Є@B6/'3+ d@!*7;'@/@ @3@_+@c_H_D @_T#7@;@ ?@C@G@K@@+#@'7@ N @'@@1@5+@@+@OS_F_  @_T#@@@@?v_B_ @_ET~#@@ @@ @@?K T @9?q T @9?qAT?`Tрр |1@`59_@_@(?T) Ki ij8qTqTчц |1@f5wc+;C@-  @!*gk@& `#@G@#@9_@_9_@_9_@_c/ Tfic8qAT fa G7'?@ @@@9!7@!T;@C@ChaR rk T;@C@ATAha8?qT@30/@@9_@_ G@ 3@!*gk@t @#@@#@9_@_O@@#c @@/@+@_a3K" @@?C@9/@+@?K@3@*T!@?@ '@ ?@@@W_?@'@ @!*G@7@ ؅@!*_@@@W@@$" @x@#@9_@_!@d: ~ ?@@@ [_ G@7@ @!*os_@@@w[@{@ `cB@#@9_@_jT@@@@ @T&@'@ ˄|#1!$@d5c@2@_᧟'@?@1!'?O@@@! @  ?@@@@@r@1@5@#@" @! G@7@@[91@5O@@O@@9_@_S_?@'@ @!*G@7@ @!*_@@@S@@) @@#@9_@_ G@7@ @!*gk@ `#@@#@9_@_  @_ T#@@ `9'@ +@ 1@5#@ "#@y@@@@@C@9e@ @$@%TT0!/"@%@!T yh@9` ww@/3_C__C_D@ J. k@`@9C9_ց @_T#0@[91@5`@cc#_A_J @_T#Ѡ/ 9@@@?_A_8 @_T#@@ 1@5@ " @@ $_A_ @_T#0BC@d,@c(@0@c60Х-@@?T3/@@ @!*7;/@3@ @ :@ 0@+_H_  @_T# @``0!/ 1!"@50B /C0B /܎ @``@6`0!@/ 1!"@50B`/C0B`/nŽ @@```0!/ 1@50B/C0B/T0B -A@0B-B@?)T@@A@B4 @@1!"@5@ @7@$!!  @!1!!@5@ 0  @0B_D_V ;f @_T#с@A@@_B_"@T#$ @_IT##@@@C@@E@AT @F @T a@9#@@@C@D @ a@9@@#@C@@E@T f@9@@@#@C@B@?T a@9#9_C_ @_ T#с@@@@@#@'@ ?@@+/_C_} "@T#$ @_T#с@@_A_| "@cAT#$ @_T#'@+@"'@+@_TC|hc#hc%@@aT #f@9@?@_ෟc9_D_f @_T#@`@  @#_B_TDhc8q@TcDhc8qTCdT ˁA @@#_B_#_B_V # @_iT#B @`, `0! 1@50!#0B0! 7#@0!7!@0Є@500B_C_ @_ T#@A@C@D@@ @?Tc #_B_  @_T#'@@@@ @?#TcB y@@+/_D_h+/_D_ @@ @ _@@ _ց @_T#@ @9b@d@e @,T_Ta_B_ @ 9_B_֓*`  @+ a@ 9_ @_T#/@d@e @  9 a@b@g@H3@?,T _CT`7_E_g? TB?T` @?#T$?E` /@@3@3  _l T q @@/@A@D@E@F @@T(T# @/@#@@@G1@`5C@3@ b@!_Ta7_E_5 z"@3@/@@z@1@`5C7_E_0@$@@@@ * ^ @_T##@@ P@@@_T_C_*` o*  @_T#@9d@b@E'@T_Ta "@@'@a@b@c@T aˁA#@_T @/_C_~ S @_T#@9d@b@E'@T_Ta @@'@a@b@c@T aˁA#@_T @+_C_KB  @_i T#G@93w @G@@_ T@@_ T'K@ @O@B&c ?@@@@@@%G@@'@T3@03@@AT7;/+ c@9+@;@7@/@G@03bSW[_H_/@S _H_0$@@@@ )  @_IT#9+`@95'@ ֍@+'@/39_D_$_D_z @_ T#/@_9A@C@D@@ @%˿lT?T#3@! @7@`  ?@@@@#@,T/@ @ aT __ _9;_E_0!4"@!@;?C_E_;?C_E_*`` )Y & @_T#@9d@b@E˿T_Ta@ @@a@b@TA9@h$8_C_'  @_I T#SqcT'@9@@FT_T~ @S'@@@_#TT@ˡ~ # @'@"@@c_#T#/_D_'@C9@/_D_  @_IT#@_9A@C@D@@ @?T __ _9'@/_C_03@@/37_C_T!'@!`#@T 0@@@ @@ ?mT@9/_C_֕ b @_T#@9d@` @@ Ձb@e@_cTTa AmTb9#'_B_ja 6 @_T#@A@C@@ @?T)Tah`8@ @99_B_ __ _903@@9#_B_&   @_iT#'@A@C@D@@ @? TTeh`8qT@ @@9S@/_D_ւc  @#'@C @C @9S/_D_ __ _903@@S/37_D_  @_T#@9_kmT @?lTA 9_C_ψ @A ! !#'_C_@9!@!49 @?mT! _0$@@ _ @_T#G@CB9C91@@;@7@'/5@#@'@/@3+ 3@O'@S+@W;@[7@__H_C @_)T#'@A@C@D@@ @?Tc CA99\'@ @@Cc@03@@@@T#T 9@"B/a37;?_D_1'.  @_T#7@A9C9@+@'@@ @@?C+@G'@K_F_ @_IT#Ѡ K@C@ Ѐ @3@G@?@C@ h˄I +@T?mT+'#/  @'@T@@BT3@ ˂1@5/@ /@_#@BTBT ˤ1Є@d5ITOSW_G_~z ^ @_) T#O@TC@G@?@(K@@9?@C@ G@9Z@W_G_?@C@ G@ @W_G_'@/@!3@+3/' K@S@@TO@@+@?"T'@W_G_:  @_i T#⃀_qcTR_kT7@;@?@? R_kT@8@RrkTO3~ # @?T7@;@ ?@3~S@G_F_G_F_7@;@ ?@9i[@G_F_~+@7@;@?@?TCT+dE% #@RkAT+@G_F_G_F_  @_i#T#g@[@?!TW@!@9_qTc@c@ c9([@k_J_k_J_T? Tc@үc@@9W@ _@q #T@k_J_k_J__@W@+@_@W@[@?- TT+ehd8qKT@˅e% R@'#R?kTg@_T1c d@T Oc@g@ ~Z@ g@'@ @@@g@_!Tc@ Y@9@g@'@g@1c ?c@c@ c9Z@g@@+@k_J_+@k_J_+@k_J_k_J__-The8qjT  #@'@?g@1c c@kT+@k_J_Eӥ~che@@!Ěh%cTDhc8q#Tc@;TLTW@B?Thb8dEӄ~hdc@@ ÚjTk_J_k_J_T#hb8qjTB  #@g@c@RkTk_J_k_J_q @_ T#c@W@!G@K@ O@S@[@@'!  @;'@"3G@O@K@!G@K@ O@f@@@gko_H_ o_H_k J 3@   T#/+7 S@W@[@@@_@/@T#@'@BT;@ W@1)*@57@7@+@T ;@'@#@7@/@+@Tg FE1@e5Dg`ko_H_  [ @_)T#[@Tg@C|W@.W@@@;K!5C@#@;@K@K7 SK@o;@s7@w_J_ր1 o_J_ք`@lT;+5 ŇW@@+@?!@G@@T/ &W@/@+@G@_@˄};@Tg@c@ osw_J_ք` @@?T7CJ ˰ *J T?'/3 7@/@+@G@C@;@g@c@?@'@3@j_TK ? ) Kk T/3 7@+@G@C@;@g@c@3@/@I T =: B @_)T#5O@ C@G@K@O@ #@/@G@K@O@TT/37'Ghe8qjT@S@ˣC #@G@# @ ?6'@3@7@qlT@qlTqhT RklT@klT~?@d'@3@kT7@#?5!+ @3@'@_CT+@?$7@ T; @;@'@+@@+@?HTT37ˣ# #M@'@3@7@yTW[__H_~}j OJ @_) T#;@7@BT$hb8qbTc@qThq㇟bB ?@%@@@CGK_F_փ!5 e@;@7@,1B !51!  @#@;@7@'+ +@C;@G'@K_F_Dhc8ѥ@ӆdqĐh#8c?TCGK_F_ @_T#/@3@ 7@;@9@3@?IT/@dh`8qCT#7@De! @#@/@/@7@_T?CG_E_  @_ T#/@3@ 7@;@9(@T 3@?T7@B!/@` ;@@@@?CG_E_֟ l @_T#;@/@3@#@@;@/@3@T)T#ah`8?qjT@7@"e d#@;@@@ ?C@9A9@@#@C_E_C_E_B ' @_T#3@;@/@3@;@/@_TET#he8?qjT@  7@<#@;@`@ ?#@@C@9A9!!@aC_E_C_E_  @_T#3@T/@"@9_q"T/ @!3@1!!@5/@ /@7_E_`5 @3@/@ dEӄ~hdc@@ Úh$BT#hb8q#T#@;T-T/ @!3@1!!@5/@ /@W7_E_- @!1!!@5#@ #@A7_E_g @_T#@@#A @[Thc8qjTc  }#@#@@[_kT@9_E_9_E_@@ ?qT9"EB~hb!@@A kC9_ @_iT#A @B@?)T@@9+?k9_B_(  @_iT#;@?@ @/@3@ 7@T@@@CGK_E_ @_iT#;@?@ @/@3@ 7@@@@CGK_E_ @_iT#/@3@ Teh`8qTf-ƀhe857@!b @@@@;?C_E_f-ƀT?Tghe8qThg85#T7@!b @@@@;?C_E_ T7@_T#TAb;?C_E_C_E_x~d I @_)$T#{@`W@[@ _@c@g@k@@{@LTC5s@g@[@c/ d@KW@g@/@s@o@_@C@ %[@ !5@#@[@GCW@ G@[@C@_J_) J+T;3lT ;[@ T B"b @3@ K@g@/@s@o@_@C@;@+@W@ [@ T C#c c@k@1@3@ K@g@/@s@o@_@C@;@+@W@?Tl  - T ( T7N  ̱ k+  @T? FK@W@g@/@s@o@_@C@;@+@7@?@)   Tk ˟ 댰 +k @T+? )K@W@g@/@s@o@_@C@;@+@7@?@w?Td %[@ T 䰄 F&@TC K@/@C@+@!T_J_b g d a  ^ S X  U  R  @C_T#c@[@_@W@O@S@E"C73@9qTc@/?+ @#/@_ T+@E?@D7@3@C@/?+'@9qT@!B? @#3@_ T7@cBC@+@?/@?@k@Tq Tdq(TƀkT';;#? @?;kT#@;@'@/@?@+@#9_I__#9_I_ @?;kTk T#9_I_ f @C_0T#_@ ` TS@?T Tc1c c@T?@T[@d@99e@99&+O@O@ W@[@c@R@g_I_[@d@99e@99&'O@.g_I_!T[@O@ Q@9g_I_g_I_[@@9O@S@ W@9R@g_I_g_I_  _T?T7hb8? k TW@?cTJ_T/#cE% 9R@ /@b_@S@[@A9A9'@O@7@I? TChi8_kTEW@_C T_T?AA! Q@9_@S@C@[@A9'@O@7@?@A9(DT?jTW@˄%!! c@GO@g_I_C@ g_I_C@g_I_g_I_      _ T?)T;hb8? k TW@?TJ_T3#cE% 9R@ 3@b_@S@[@A9A9+@O@;@I? ) TChi8 kTEW@_ T_ T?AA! P@9_@S@C@[@A9+@O@;@?@A9(DTW@˄%!! c@Q@C@ g_I_g_I_C@g_I_g_I_g_I_7 ,  / $ v@ @@?kT _ _@@ _ց @_T#@C @D@mTCA@C@D@@ @?T!'@!`#@T }@@@ @@ /_C_/3@@/37_C_  @_) T#/@@@"@#@!@JTB'@B!`#@?T B@'@T/3@@37;_C_/3@@37;_C_| @!43a!7;_C_W @_)T#@b` @a@b@?MTiTAh`8` 9_B_/3@@9#_B_J / @_IT#@ @?LTJ| @!a!#'_C_ @! _C_ @_IT#'@C @D@mTCA@C@D@@ @"Teh`8qbT@ S@/_D_ւc @#'@C @C S/_D_@/3@@S/37_D_  @_iT#@ @?mT@A{ @~!$a!#'_C_ _C_{ @!Xa!#'_C_ @_)T#@ '@`#@ T @#@T"@#@@`{ @!+a!/3_C_ +_C_w{ @!!<+a!/3_C_; @_ T#/@b` @a@b@d@?T;_E_փT3@c @7@B #`?@@@#@,T/@d @d T/c4a@b@;?C_E_֠*@ '  @_IT#@9a1!!@5||@ ! @@@#@_B_ @_T#  @_C_/@$@@@@   @_ T#z @```4``/!@$ a1!"@5/B`$C/B`$\z @```/!$ a1!"@5/B$C/B$Bz @`H3``/!$ `1@5/$/B$(_C_O @_iT#7@ T XTC@(T?@C@ ?o@!*'+L} #@/t@@KO_F_?@C@ "o@!*'+8  #@t@@KO_F_?@C@ o@!*'+$~ #@s@@KO_F_?@C@KO_F_hK@O_F_ @_iT#@@$@A @C@?MTT!` h@@A,A$@C,@!A$(qTA8@!A8C_C__,C_C_  @_iT#@ @"$@#,@B"$#,@aT# @$@iThb8_(qT"8@B"83_B_ u @_T#@#@'@ 4@ @C$@D,@`@$C,@aTA @C@? T`h`8(qT@8@@8C9_C_@C9_C_Y > @_ T#@c#@'@ @ @C$@D,@`@$C,@aTA @C@?IT`h`8(qT@8@@8_C_+  @_ T#7@0@++@ ]c@9_F_ @_ T#р  iY@!=y @+@@;@!7@# C@?@!d1Є@5'@F'@3@F @5/@F F@/@@@`5C@zA@`5E@o#B9@9@5@@0@@b@@8@<} @  ZI@K_D_{ @_T#@@@ ? @@@0@[_B__ @_'T#G@_,A @C@@$@?&T!`C@D@ @G@d@e$@a$b @e@ _"TDkThf8qT@9qT$qT4q`T(qaT`(@_# TT'#" B~@#@'@ G@d$@a$e(@Tb @f@_#TTˢ !!@G@8@@!8  @@(@$@_#TT;+(@/c!37<@;0@C XG@$@(8@<@G@d$@a$ b @d@`(@_TT! @mG@8@@!8$@(<@K_H_G@d @d$a$@`(@JTb @d@_ Th T! @FG@8@@!8 @@(@$@H TT;+(@/ca37<@;0@C }XG@$@(8@<  @@(@$@?HT?T;}+(@/!˂B37<@;0@C YXG@$@(8@<K_H_fUbP_N]LYGUDSBPO  @_I T#@A @C@@$@? T$f Tdhe8qT$qT4q`T(qT@9qT?T%˥˄cD@F@mT J@9@@99_C_A @C@@$@?CT!`C@B@T J@999_C_@99_C_  @_T#?@d$@e@`$a @d@?T%Thf8qT@9qT$qT4q`T(qaT@?T%jT  5J@9@?@d$@Aa$ b @d@`(@_ T T! @&?@8@@!8$@(<@`C_G_ d @e@`(@a$@?( T?T3b#b(@'!+/`<@3`0@ SW?@$@(8@<$@@B$  @@#T?T@! @?@8@@!8$@(<4@C_G_=*9'6%43 G @C_IT#O@C$@`@$A @D@?T!!  5@ O@"$@@ $G@9C@9AO@dA9 b @d@e(@a$@_#T?T?9C~3`(@7 ˡ;?`<@C`0@ VO@$@(8@<?A9O@d$@d$d$@e@d$a @b@?CT/+ ˃b ~O@$@@/@B+@bA$  @@(@$@?( T? T ˁ! @2O@8@@!8$@(<@S_I_ր< do@@CO@C(@7;?@<@C@0@ cVS_I_ :| Go@@CO@C(@7;?@<@C@0@ FVS_I_XGUSBQ ! @_IT#G@a @d@`$@?T%Thf8qT$qT4q`T(qT@9q9Da$ b @e@f(@_TT @G@8@@!8$@(<@9e$@f@a$ b @e@`(@_C T T;|+b(@/!37`<@;`0@C UG@$@(8@<@9! @@$@?T'# dB ~'G@$@@'@B#@bA$  @@(@_ThT ˁ! @BG@8@@!8$@(<@K_H_ fI @_ NT#W@CC@9W@4@@`[_J_@9` Pn@@KW@C(@?CG@<@K@0@ OU[_J_W@`1ATqT$qT4q`T(qAT W@C$@D,@`@$C,@aTA @C@?DT`h`8(qT@8@@8@[_J_qTW@b @d@`(@a$@?AT?ATK;b(@?!CG`<@K`0@ UW@$@(8@<q@/TqTW@b @d@`(@a$@?<T?c<TK ;b(@?!CG`<@K`0@ TW@$@(8@<~q)Tq(Tq'Tq&TqaTW@@$@A @C@T6Tch`8cc@$qT@[_J_qTqT_$qHTW@ C$@D,@`@$C,@aTA @C@?2T`h`8(qT@8@@8@[_J_O C@9@ W@C$@D,@`@$C,@aTA @C@? /T`h`8(qT@8@@8@[_J_OqT W@b @d@`(@a$@?,T?+TK~;b(@?!CG`<@K`0@ ]TW@$@(8@<4@!4q! T W@ @@(@$@?&T?C&TK";(@?!CG<@K0@ 4TW@$@(8@<4@!4!O g @!37` 1@ @m@@KW@C(@?CG@<@K@0@ T[_J_q Tq(Td@E-+hd8yk`/!@@@ 1@9O҄W@b @d@`(@a$@?(T?TK;b(@?!CG`<@K`0@ SW@$@(8@<j ng @!+/ C@l@@KW@C(@?CG@<@K@0@ S[_J_ @[_J_ [_J_ @[_J_  [_J_W@qAT W@b @d@`(@a$@_ T?C TK @;b(@?!CG`<@K`0@ `SW@$@(8@< [_J_2` =l@@KW@C(@?CG@<@K@0@ e @A1!"@5@@@.@@@ !@5#@#@ !`37_E_C @_T# be @@ @@@#'_C_% @C_T#O@@ @?T3S@ _I_C@@+C@@_T f@TF1@g5cf@h@i @?bT7/5 h@@#@S@A A1!$@d5CD 3@+@/@7@C@S@g{i&8{aTAT  d@T~D1@h5cd@i@j @k ?_T;5 :h@@#@S@A A1!$@5C?@S@?@^;@S@` i$8   S@`@@T9@1@a5cC`@d@e @BTB5 h@@#@S@A A1!$@d5C?@'a!ҁh 8 @ ?!S@+@3@lT/* ' * ' * '  '@@ _ց @_IT#W@ @?@/cF1@h5c9f@;i @j@?T75 e@#@/@C@7@G7@ ;@[@`7@` @1@5G@ab G@ 3@!?@Tq*' *'   O@@ _ց @_ T#?@ @@/C1c 3*A1!  e@#@/@3@3+* {b @?@#@B1BD@d5@B1BD!@/@+@A@53@ `3@!!CG_G_ _ @_ @_IT# ;@`@@T0@1@a5cs`@d @e@T+'B5 /e@#@+@'@;@ @9h 8ad @1@`5eb O_F_ր*' M n@@ _ց @_iT#'@@@B0a @A1!!@5@@@"@!+/_D_A~ _ @_ @_T# ;@`@@T3@1@a5c`@ d @e@T+'B5 d@#@+@'@;@ư@y@9h x9ad @1@`5eb _F_ր*'  @@ _ց @_iT#'@@@B3` @A1!!@5@@@~@!+/_D_ @_IT#'@c @@+/_D_ @_T#W@@ @?T;[@ _J_K@@@@  f@TF1@g5cG7K+?f@h@i @j G?BT5 c@@#@[@A A1!$@5CG@[@G@";@7@+@?@G@K@[@gi&8  f@T>F1@h5cf@3i @k@?T/5 c@#@+@?@/@/C` 3@[@`/@` @1@5C@aG@C@7@!;@Tq*' *'  O@@ _ց @_ T#?@ @@/C1c 3*A1!  kc@#@/@3@3+* y _ @?@#@B1BD@d5@B1B}!@/@+@A@53@ `3@m! CG_G_ @_ T#G@ C@$@9qT˥@#T?@@@@'T/3* c@@#@?@AA1!$@d5CD-/@3@&D@1@5 |ӣh _G_ր* ` *    3 @_T# R_ @@ @@@#'_C_ @_&T#W@ @@Х?AT  [@a@@T!1!$@d5ca@"d@e @f KT`5 b@@#@[@A !1!$@5CK@[@K@W@[@"b҂h!8 @@! @ ? [@`@@T 1@a5c`@d@e @BTbB5 Hb@@#@[@A !1!$@d5CK@na!ҁh 8 @[@ ?[@W@@@?T; _J_G@@@@  f@T&1@g5c>7G+?f@h@i @j K?BT`5 a@@#@[@A !1!$@5CK@[@K@;@7@+@?@K@G@[@gi&8  f@T>&1@h5cf@3i @k@?T/`5 a@#@+@?@/@/C` 3@[@`/@` 1@5C@aK@C@7@!;@Tq`*' `*' `*' `*'  ռ@@ _ց @_ T#?@@@/#1c 3`*!1!  Sa@#@/@3@+3`* {w ] @?@#@"1BD@d5@g"1B@$@#@! @ A@a5W"1B/@+@A@53@3@I!CG_G_l@`@9d: ~_֠T& _ @_) T#G@`@9 K@a@@TE!1!$@d5ck~!b@D7e @f@cTk_9/3`5 `@#@_A9k/@3@3;d:BT& 7@K@ 3@ 1@5;@ " ;@_H_`*'  @@ _ց @_T#'@@@`@99c>] @!1!!@5@@@@@9`9!+/_D_ɻ @C_4T#р\ @!1!"@5O@@O@S@[@(%@5W@$ W@u3_@ T#/T!!@AC@9 c9#@#@@@@Ta@9?qTW@[@ Q@a!*?C@?{ @rK@@cgk_I_3@A@A`9CAd9b@Ah9c _I_cgk_I_TTCha8q!T z@@W@[@&@3@ l9g!   ` h9T @ xb a `9T @x  @yc ` d9T @y c _I_ z@+@@3@Ad9@W@[@ z2@@@3@ @3@A`9@Ad9+@@@`@9Ah9@@b@7@d@9Ah9@@c@0W@[@ zo@@`3@#/W@[@ B@@3@ h9/@ "`@9xAb aaT `9""d@9yAc `aT d9"@`@9@d@9`@h@9c _I_W@[@ P@a!*?C @<  @J@@cgk_I_W@[@ P@a!*?C  @|J@@cgk_I_`*[ @[@@ 1@5W@@W@4#73@;!! @Sr@#@@@3@ l9  @ ` h9T @ xb a `9T @x  @yc ` d9T @y c _I_cgk_I_@O W@$@(@ _ @_ T#G@(@$@ K@d@@T9$1Є@e5cb@D3e @f@"T7+/`5 ^@#@7@+@/@/; 3@K@ /@ 1@5;@ " ;@_H_`*'  @@ _ց @_T#`Z@9 @ 1@5B@;T` t#@'_C_@ @@ _ @_ T#G@@ @ K@d@@T9$1Є@e5c@b@D3e @f@"T7+/`5 ]@#@7@+@/@/;  3@K@ /@ 1@5;@ " ;@_H_`*'  2@@ _ց @_T#7@@'@ @+@@#@ƀAZ @!1!"@5'@@'@|@@$@5+@ `+@@!@5#@#@! ;?_F_ @_ @_T# ;@`@@T5 1@a5c`@d @e@T+'bB5 W]@#@+@'@;@@@y@9h y9ad 1@`5eb r_F_`*' p @@ _ց @_iT#'@@@B8Y @!1!!@5@@@B @@!$+/_D_a _* }_ @_IT# ;@`@@T0 1@a5c`@ d @e@T+'bB5 \@#@+@'@;@ƌ*@h ad 1@`5eb _F_`*'   @@ _ց @_T#'@@@ @cY @!1!!@5@@@@@ !#+/_D_ٷ @_T#X @@ @@@#'_C_ @C_6T#O@@?(TB ?<TҢB3?LA3T~B4;  S@d@T$1Є@e5c^/;d@f @g@bT73`5 \@#@O@/@;@S@3@7@@yh$xef d %1Х@f5g1 f@@TC@f5c"Cf@7h @i@T3`5 [@#@/@;@3@3?  7@S@`3@` 1@5?@aC@C@?@  $@?`T@d5!#@d%@& @T`5 [@@#@S@A !1!$@5CC@S@C@Ŀ` {h#8O@@   S@`@@T 1@a5c`@d @e@T73bB5 d[@#@7@3@S@Ƙ@yh xad 1@5eC@O@@ YO@@  S@a@@Tw!1!$@d5cja@$ e @f@"T73`5 &[@#@O@7@S@3@*@h!de !1!$@5fC@C@   S@`@@T5 1@a5c/`@d @e@T73bB5 Z@#@7@3@S@@@y@9h y9ad 1@`5eC@_I_`*' `*' `*' `*' `*' `*' `*  F@@ _ց @_IT#g@@?( T?<T?LT@/@ @#@C@G@S& W @!1!"@5/@@/@d@#@ !@5C@G@S@ C@G@S@!"ko_L_@7@ @+@;@O@W&ƀV @!1!"@57@@7@e@@+@ !@5;@O@W@ ;@SO@PW@M!ko_L_@3@ @'@?@K@[&V @!1!"@53@@3@+D@'@ !@5?@K@[@ ?@K@[@!`ko_L_`*  .9 @_i T#7@@ @#7@"@ @'7@"@7@@@ @ @+$Є5V @!1!"@5@@@ҽD@@ !@5#@'@+@ #@'@+@!`;?_F_ݴ @_i T#7@@ @#7@"@ @'7@"@7@@@ @ @+$ЄU @!1!"@5@@@~@@@ !@5#@'@+@ #@l'@i+@f!;?_F_ @_i T#7@@. @#7@"@L @'7@"@F7@@@ @ @+$Є U @!1!"@5@@@*d@@ !@5#@'@+@ #@'@+@!";?_F_5 @_T#RU @@ @@@#'_C_ @_I'T# k@`@@T( 1@a5cϼ`@,;b @d@_T7cc5 X@#@7@7[|; `;@k@ 7@ " W 1@5[@#[@g@@3@S cc5 $DA; X@ ;@S@3@@9x@#@ vg @@k@b@@T$1@e5cmb@D;e @f@"T7/O`5 'X@#@/@O@7@7[ 7;@k@`7@` 1@5[@aW@W@[@=g@@  %@?`Tv@e5!+#@e&@' @T`5 W@@#@k@A !1!$@5CW@k@W@ g@` {h#8@ 1k@W@  $@?`T1@d5!$@& @'@bT;7`5 W@#@ 1k@W@;@7@@yh$x%& @`5'Ȼ_L_`*' `*' `*' `*'  Ҳ@@ _ց @_ T#7@@v7@@#@ @@+@ @'ƀ>S @!1!"@5#@@#@z$@@ @!@5+@'@+@h'@e!@;?_F_ @_ T#@@Q @a! S @@@@A!1!$@d5C;@ @D $@5C@D D@.@+@@@ @`5C@#_C_#_C_@ @C_T#eV@C a! ZS @S@@ 1@5O@AO@__ [@A@5W@@@W@ _@c@g@k@C@#o@'s@+w@/7@;@C@{_I_ @_T#c@@g@ ? @/c@"@g@@? @@_@@@/@_ T37 @ؤ@T/@/@"@#7@ !@y@+c@!@g@ ? @;@' 3@C@B @ G@a!*?C+@G @a!GK#@|G @a!OSl} @L@@ko;@s'@w_K_֘ u @_ T#G@9!1!!@5@ @ cG@a!*'+G@@@:G @a!/3K@O@ PG@a!*7;8` #@@L@@ S@W@[@1A@@A!@   @_T~#  c@Cl@TcCl)@,@0@ 6CC@;T@!1!"@5C@;T  Cgk@!1!@l@ TCp @;Tc@;TS@HT#@;Tg@@?TC#@;T@@###@;T_@_@  @_)T~#  c@Cl@TcCl)@,@0@ &6CC@;T@!1!"@5C@;T  Cj@!1!@l@ "TCp @;Tc@;TS@HT#@;Tg@@? T@?TC#@;T@@#C#@;T_@_@> # @_T#[@W@@k@_`T@ @ F@a!*+/W@@E @a!37 (3` CJ@@g@c@_jT#'@` @$@9#@'@"?( T!(B[B@#'C@;T =E@@+/'@#@ E@a!*37W@B ~C2C@;T E@@+/o@s@ E@a!*37W@9 `C_J_@ң pO @_ T# & @@@ @C'+# F@7@,@C  1@57@?,7@"`?@d5?p"?@5? ?|""`+@ MF@;@ 1@5#@ " #@_F_+@'@   @_iT#CGK9KW@G#C@9@@ !1!$@d5@@@@ [@_@c@g@k@o@#!@?#9+@W@"`?#1cd@5? , $Қ`O @@`! aW@ t x" 1@d5#p{@$$@$($%@5w@& s@&| w@qs@n;73_@&@5[@#&[@_]W@6  1@5W@?,?@OW@?@d5?p;@F?@5? ?|7@=3@:9G@C@ _J_־_J_UH @_ T#/@|@@@$ c@@ @a! Fc@9@/@|@@@$ e@[9 1@5/@@/@_E_/@@bB $c@9@/@@@ D@A!*#/@`$3 @_E_ @_iT#7@@@{dRrkT-R;Yr+T[4RԨr+@TR;r+ T7@a!! T;@@ @?T'҅7@a!@T[RrkT7@a!``TQ-R;Yr+ T7@a!" TGҐR۲rkTR*rkT7@a!``T9ҐR۲rkT7@a!T9_F_XR;rkaT7@a!aT@9_F_{dRrkAT7@a!` T;@ @@@ @9_F_@9_F_7@@;@? @@BH' v`@@ ]C@A!* +@9_F_+@c@#+@@ Oc@9#@'@?T9_F_1@ @C _RTC ~#oACl@ T` bPT@a!}!0C@;T3@@lA,@  c!0@ 2  @;ToA1!"@5C@;T  jgoA1!CC@;T@/!N @1@5oAdb@oAoAee/@e@e51l@_ TC CTBB}BP@;T6@l,@  c!0@ =2  @;ToA1!"@5c@;T  goA1!c@;T1oAw@_ @Tl@_ TC 9TBB}BP@;T6@l,@  c!0@ 1c  @;ToA1!"@5c@;T  cfoA1!c@;T1oA@_, Tl@_TBтl-,@  c0@ 1#  @;ToA1!"@5#@;T  #yfoA1!1oAl@_ )TWBp @;T # @;TC  ;e; @@C@ @S @O? @ToA@@ @@ TG TP@@#@G@A1!$@d5C D`yoA|O@h%1@5C@ C@d S@`@[C@_oA!4 @ oA1_@C _ւl@_TBтl.,@  c0@ 1  @;ToA1!"@5@;T  eoA1!1W@oAl@_ TBp @;TC @;T+A_H T_dT @5 c @;T  e1oAl< ` 7L @AB  oAC@D@1@e5ɳE@C@E @ @e5@;E @KF$@3G(@7C,@H|@?@i5, ` `K @@`! a;@ t x1BD@d5#p$1B3@$$7@$(D@5K@# ?@#|$K@"?@~oA1@@@@@ f @C_T#o@a @!=C@;T[@_@ J@@@@@o@1@f56 BB@;?@ @o@| =(o@a @@@@71@5o@o@3@? @T 7@`@C3@G@*KOo@!9 ao@ 1@5o@?,o@"`Ҳ?@d5?p"ʲ?@5? ?|""Ҿ_M_T @_I(T ~#'ACl@TcCl+@,@C0@C g/CC@;T'A1!"@5C@;T  C,d'A1!@l@ b TCp @;Tc@;T@H`T?@;T @l@@l##@;T@/!J @1!"@5'A@'A?3c/@1!'A?@W@;T Dl@DlC@;TC@ T @@7@ @;? @T 3@@ @@T M@@#@3@A1!$@d5C D`|;@h'1@57@ 7@ڱDl@TDl-@,@C0@C .C@;T'A1!"@5#@;T  ]c'A1!3@'A?@Dl@ Tp @;Tc@;T@H@Tc3@+;@/7@3_@ _0& :3@+c _@ _@@  @_T~#_9@Cl@TcCl)@,@0@ .CC@;T@1!"@5C@;T  Cb@1!@l@ "TCp @;Tc@;Ts@HT#@;T@@ T,@ TPT@3@@ _\@G@?@;cQI @1!"@5@@@3@?@;@!@5G@ `G@߰a!` _@_C#@;T)#_@_@@@_9J @@_9@>_@_@7@C@/cH @1!"@5@@@7@/@!@5C@ `C@a!_@_@Ű _@_ @_ @_)+T~#@Cl@TcCl)@,@0@C %-C@;T@1!"@5c@;T  a@1!@l@ #TCp #@;Tc#@;T@HT#@;T@l T\ThTl T| @C#@;T@3!8SH @1!!@5@@@ @3@a!$_@_ @@_@_ @@_@_֟x,TpTx!Tl @@_@_ @@_@_֟| TT Dl@Dl  cDl@T T}p@;T2@@l@,@0@C _,C@;T@1!"@5C@;T  $a@1!C@;T@;Tl( @|I@/@7@;c>G @1!"@5@@@D@/@7@ !@5;@;@6a!`_@_ @@_@_ @@_@_@\@Z ? @_뉴T~##cWCCl@TcCl+@,@K0@ + C@;TWC1!"@5 C @;T  `WC1!@l@ bTCp c@;T#c@;TBH`Tsc@;T @l@@l@;T'BC3BKc)F @1!"@5WC@WC[ C@K@ |o1!o@Gs@c @;T El@El#c@;TAT9T El@TEl.@,@K0@ (+#C@;TWC1!"@5#@;T  #_WC1![@WCo@s@El@ "TEl@T T}ӥѐ@;T7@@lA,@K!0@ *C@;TWC1!"@5@;T  _WC1!@;T[@WCo@s@c@;T#o @;T El@El#C@;T'CRT`RTGT/C3CAGT@9qFT#yA?AA ! @@W#@/'@7cE @1@5WCdb@WCWCEe?@f/@f7@f@5W@f b`W@[@@@@_BT_ - :I@@#@[@A1!$@5Co@[@o@^WCE[@1_@" @h5#y'Nt@p@x@AA_TOk@* I@@#@WCAx1!$@d5CpD-E[@O@1k@t"K@5|#i"_C_!dT[Cg@[.RrkcTg@9q!cT@bTs@,@;T Ոl@l@;T@ A?TU`TaEl@TEl.@,@K0@ )CC@;TWC1!"@5C@;T  Co^WC1![@WCo@s@El@ hT  @;T  @;T7BH T%1!WCs@cqC @;TBcCT4 T T T TMTf$)T0TELT<@TLT>TT``TtT @l@@l& @[@$@ @(@%Tg  %H@@#@[@A(1!$@d5C DJ[@g@$$D 1@f5Cx!:CC@;T[C_C#8[@1Cl@TcCl-@,@K0@ (C C@;TWC1!"@5C @;T  C ]WC1![@WCs@Cl@ "Tc  @;Tc c@;TBH@TI [C_Cu[@g_@_@El@TEl.@,@K0@ (C@;TWC1!"@5#@;T  T]WC1![@WCo@s@El@ BDT @;T@;T_BH TAHT#@;TQ #@5C@;T  ][@1!WCs@Q#@5@;T  ][@1!WCs@@ClQ #@5#@;T  #\[@1!WCs@Cl@9C[El@TEl.@,@K0@ ' C@;TWC1!"@5 @;T   \WC1![@WCo@s@El@ T # @;TC# @;TKBH TAGAA a! @@S#@3'@;c#C @1@5WCdb@WCWCEeG@e3@e;@e@5S@e b`S@[@@@@?Tc- gF@@#@[@A1!$@d5Co@WC1c@ @g5y&}t@p@x@AA?bTkO@* 7F@@#@WCAx1!$@d5CpD\[@O@1k@tJ@5|i"I1!@s@@El@TEl.@,@K0@ &c C@;TWC1!"@5c @;T  c [WC1![@WCo@s@El@ T  @;T # @;TBH T@[C %7@A!*w{WC!, a@[@1!WC@s@;l@Tшl2,@K0@ &C@;TWC1!"@5c @;T  \[WC1!1_C[CWCE[@s@l@ T  @;T@;TB?IT  `>_C[C@@@@@@@ W @_ T#C@C$@CG@K@ 6@A!*/3?@!< c@C@A$@C @B(@?TBBB}b+#'#@'@+@*TDx` @@?T#@@@? @T T!T0_iT@aT#@$6 @A!/3?@BB  cc@_G_<@R  @_I(T~#_9@t@B7@_9@ @|@@ @@3@; @? @ATE9@ g@Cl@ T` TDcc}cѐ@;T2@@lA,@!0@ k%C@;T@1!"@5C@;T  C0Z@1!C@;TW@p!T Cl@TcCl)@,@0@ 2%@;T@1!"@5c@;T  Y@1!@l@ bT3@@;@? @/!@ @1!"@5@@@*a/@z@@@ @@ @&"TCK? C@@#@C@A1!$@d5C D`K@?@$ |Eh @1!!@a5* '@4 @@@;@G @? @T G@`@O;@S@ c@@@ @_97@@ _@_@@ @_@_֞ @_T#G@@C9a!@3#@7'@;@+@/? @1!"@5G@@G@D+@/@ !@53@7@;@ 3@m7@j;@gA!`KO_H_ @_T#G@C9!3]@3#@7'@;@+@/? @1!"@5G@@G@4@+@/@ !@53@7@;@ 3@"7@;@A!KO_H_? @_T#G@C9a!4;~@3#@7'@;@+@/ K? @0!"@5G@@G@d+@/@ !@53@7@;@ 3@֦7@Ӧ;@ЦA!"KO_H_ @C_TC~#@Cl@TcCl)@,@0@ y#@;T@0!"@5C@;T  >X@0!@l@ BTCp c@;Tc@;Tw@HTCc@;T @l@@lC@;T@pAT@/@3B> @0!!@5@@@M/@3@ A!#_@C_| `/~F#@;Tg@+s@7B> @0!!@5@@@+@7@ A!#_@C_@P 5D @C_i-TC~#@Cl@TcCl)@,@0@ "@;T@0!"@5@;T  ~W@0!@l@ %TCp @;TC#@;T@HT@;TCc@;T~#'@S+@7@c ~|@O A! = @7@@0!#@5S@DS@__ @@@F&@f5CFp@F@ @F &@f5CF@bG @W$@?(@C,@|@K_J`o+@k5C, N@= @@`a! aG@ t x"0@d5#p9k?@$$C@$($g%c@5W@# K@#|W@&K@#m @@@@_0@5G@G@[@? @T_@`@s[@w *{ @!9 aG@ 0@5G@?,o@ߤG@?@d5?pk@֤?@5? ?|g@ͤc@ʤ@3@;B>= @0!"@5@@@$3@;@ 7@!@5S@O@S@O@A!@_@C_@ܤ  @C_TC~#@Cl@TcCl)@,@0@ E!c@;T@0!"@5c@;T  c V@0!@l@ TCp #@;T#@;T@HTCC#@;TCC@;Tl @#'@?+@3@C@Dl@TDl,@,@0@ @;T@0!"@5@;T  U@0!?@3@@C@Dl@ Tp @;TC@;T@H`T@aT @l@@ll @|@;@/@7B>< @0!"@5@@@$/@7@ 3@!@5?@;@?@;@A!@_@C_@٣@ף  @_ T#C@<`TLaTK@O@ @@@@@+'BB@/3?@`@ c@+@'@?@C@;TW@[@#]_c_G_t @C_i2TC ~#OACl@TcCl+@,@  C0@   @;TOA0!"@5#@;T  TOA0!@l@ *TCp @;Tcc@;T@H`T?@;T @l@@l##@;T@/!2; @0!"@5OA@OAϢ3~/@0! # /?@@;T @l@@l @ @ @ 3@@ @@T7; g>@@#@3@A0!$@d5C D`;@7@|h'0@g5 y3@0OACl@TcCl.@,@  C0@ 3C  @;TOA0!"@5C@;T  CSOA0!3@0@l@ T?@ @;TCC@;T A8 Tg@ THTIDl@TDl-@,@  C0@   @;TOA0!"@5@;T  SOA0!3@OA?@Dl@ Tp @;T@;TAH@T!CC@;T> @#OA3@ @l@@l@`= y3@S_@C _@@@ ٘h @_PT ~#7A@ @ @_gK7Adl@ Tѿ "MTe}ӄѐ@;T7@`la,@ +!0@ CC @;T7A0!"@5#@;T  S7A0!#@;T_@g@K@7A@$!Tdl@ Tѿ CTe}ӄѐC@;T3@`la,@ +!0@ C @;T7A0!"@5@;T  R7A0!C@;T@?!R9 @0!"@57A@7A@?@g@ %@5_@_@[  _@ _;?_@ _l@ T 3T}Ơ@;T6@l,@ +!0@ #C @;T7A0!"@5#@;T  #DR7A0!#@;T[@7A_@@$Tl@Tцl-,@ +0@ CcC @;T7A0!"@5c@;T  cR7A0![@7A_@l@ b$T @;T@@"@9q!T))@ T@@ @? BTOc * ;@@#@[@A0!$@d5CD7A_@O@c@ H(@5|h&97K@@ ? @ l T T T T[@@GBK8 @k[@  k@@@?CT!BB@@ ` @@W#@/'@;c $8 @0!"@57A@7A}G@/@;@!@5W@ `W@A! p0?iT@!TK@@_@ ? @@ ,@!!*sw7A0 @@HK@_@KHTA![@E[@@CB7 @o[@  o@@@ ` @F@S#@3'@7c7 @0!"@57A@7AQDC@3@7@!@5S@ `S@AA!!g@ *` < *  5@n@k@h@e Ju @_iCT~#@Cl@TcCl)@,@0@ @;T@0!"@5@;T  P@0!@l@ ;TCp #@;T#@;T@HTc#@;T@0TlTT@;@@T!@NRr?k_9>7 @0!!@5@@@;@_A9`9A!_@_ @TT9$T@@@?0TG !!@ ` @W@W#@/'@3c 6 @0!"@5@@@b}G@/@3@!@5W@ `W@RA! _@_( T@@`6 @@ F@9@@  @@ h+@!!*ko@!9 C@@g@SB r6 @!S@0!"@5g@ `g@ !@5@@@@A!@_@_0!T  @A!_@_LT4T@@@ @@@#@@c  A!@ko@`@ C@{c@A!_@_<`TL T@@ @@@[@7@  @@ko@a!@ C@N@K@_@Oc5 @0!"@5@@@}|K@O@$@5_@ `_@o7@!@5[@[@eA! _@_T T` Tt@T @l@@l_@_@Ca!35 @0!!@5@@@=~C@A!_@_@?a!05 @0!!@5@@@ ?@A!_@_@@@ \@@_@_@^@D ) @_IT#/@ @#$@B_*T#xb4 3@7@`I@@@#@@@9_E_9_E_ @_T#@x@@?Tt_B_   @_IT#_@c@ ` @}@;#@+'@/c4 @0!"@5W@@W@E[@+@/@%@5;@ `;@wt@p@_T?7% @@?T@@A@ )@!!*GKW@ #@ _J_ґc@e@f@ @@T@@T3C @9@?@3@7@C@W@%_T@!g?@k_J_i Nq @_ T#A 7@! bB @J@}@ bB|!J@@ bB;J@!@ bB/~}J@A@ bB@oJ@a@ bBaJ@ ~@ bB3SJ@@ bB@EJ@@ BL(}7J@@@ a!4;~)J@{0@5@A/! B/B@y_D_S @_T#с@@@ @_B_"@!T#$ @_T#с@@@ @_B_m"@!T#$ @_T#с@@@ @_B_Q"@!T#$ @_T#с@@@ @_B_5"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@l @_B_"@!T#$ @_T#с@@@T @_B_ő"@!T#$ @_T#с@@@4 @_B_"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@ @_B_q"@!T#$ @_T#с@@@ @_B_U"@!T#$ @_T#с@@@ @_B_9"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@t @_B_"@!T#$ @_T#с@@@T @_B_ɐ"@!T#$ @_T#с@@@8 @_B_"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@ @_B_u"@!T#$ @_T#с@@@ @_B_Y"@!T#$ @_T#с@@@ @_B_="@!T#$ @_T#с@@@ @_B_!"@!T#$ @_T#с@@@ @_B_"@!T#$ @_T#с@@@t @_B_"@!T#$ @_T#с@@@\ @_B_͏"@!T#$ @_T#с@@@< @_B_"@!T#$ @_T#с@@@$ @_B_"@!T#$ @_T#с@@@ @_B_y"@!T#$ @_T#с@@@ @_B_]"@!T#$ @_T#с@@@ @_B_A"@!T#$ @_T#с@@@ @_B_%"@!T#$@9D @_T#с@@@ @_B_"@!T#$@9 @99 @_T#с@@@d @_B_َ"@!T#$@9 @_T#с@@@D @_B_"@!T#$@9 @9 @_T#с@@@ @_B_"@!T#$@9 @_T#с@@@ @_B_i"@!T#$@9 d@9 @_T#с@@@ @_B_A"@!T#$ @_T#с@@@ @_B_%"@!T#$ @_T#с@@@_A_`  "@c!T#$ @_T#с@@@_A_D "@c!T#$ @_T#с@@] @/_B_ҍ"@AT#$ @_T#с@@E @/_B_"@AT#$ @_iT##@@@C@?TA@@!TA @@D@ @?aTB@@T B@9#9_C_ @_T#с@?@@;T#@;T@@CG_G_ִ ]"@!T#$ @_ T##@@@C@@E@T @F @T@F@T@F@TAA9A9!!@a @9#@@@C@D @ @9@#@@@C@D@ @9#@@@C@D@ @9@ #@  }@9#9_C_ @_T#/@3@@b/@3@_ TCxc%xc # AT@e@T @e@@h @T# @9#@@@!@?`T9_E_@9_E_ @_T#с@@1 @/_B_"@AT#$ @_T#с@@ @/_B_"@AT#$ @_T#с@@ @/_B_n"@AT#$ @_T#с@@ @/_B_R"@AT#$ @_T#с@@ @C_B_6"@AT#$ @_T#с@@ @C_B_"@AT#$ @_ T#@#@ @9#9_C_ @_T#с@@q @'_B_"@AT#$ @_T#с@@Y @'_B_ʋ"@AT#$ @_T#с@@9 @7_B_"@AT#$ @_T#с@@! @7_B_"@AT#$ @_)T#@@#@C@T }+@9` #@ @@" @!@ @9#9_C_c @_T#с@@ @+_B_N"@AT#$ @_T#с@@ @+_B_2"@AT#$ @_T#с@@ @#_B_"@AT#$ @_T#с@@ @'_B_"@AT#$ @_T#с@@i @#_B_ފ"@AT#$ @_T#с@@Q @#_B_Š"@AT#$ @_T#с@@1 @/_B_"@AT#$ @_T#с@@ @/_B_"@AT#$ @_T#с@@@ @_B_m"@!T#$ @_T#с@@@ @_B_Q"@!T#$ @_T#с@@ @3_B_6"@AT#$ @_T#с@@ @3_B_"@AT#$ @_T#с@@ @3_B_"@AT#$ @_T#с@@q @3_B_"@AT#$ @_T#с@@Q @#_B_Ɖ"@AT#$ @_T##@@@C@?!TA@@T@@@ a!T@@@ a@ @ @ a!(@C(@aT ~I@9#@$@@"$@!(@ >@9#9_C_ @_T#с@@ @C_B_j"@AT#$ @_T#с@@ݾ @C_B_N"@AT#$ @_T#с@@ @3_B_2"@AT#$ @_T#с@@ @3_B_"@AT#$ @_ T##@@@C@AT@C@T }@9#@ @@C @D@ @9#@@@"@!@ @9#9_C_؈ @_T#с@@M @3_B_ˆ"@AT#$ @_T#с@@5 @3_B_"@AT#$ @_T#@@#@C@T@C@aT {;@9#@@@"@!@ 0@9#9_C_s @_T#с@@ @3_B_^"@AT#$ @_T#с@@ѽ @3_B_B"@AT#$ @_T#с@@ @/_B_&"@AT#$ @_T#с@@ @/_B_ "@AT#$ @_T#с@@y @3_B_"@AT#$ @_T#с@@a @3_B_҇"@AT#$ @_T#с@@A @+_B_"@AT#$ @_T#с@@) @+_B_"@AT#$ @_)T#@@#@C@T }3@9` #@ @@" @!@ &@9#9_C_k @_T#с@@ @+_B_V"@AT#$ @_T#с@@ɼ @+_B_:"@AT#$@@@ _ @_T#G@@@ !@!*'+G@@ @ @!*/3G@@@@@7;`T.  #@!@@KO_H_ @_IT#'@@@B9 @@a! @ ?C@9C9_D_Ά @_IT#'@@@B8 @@a! @ ?C@9C9_D_ @_IT# 5 K@!A!A+*@ +@G@K@@9x@#@c R:t- `9@@OS_H_v @_T# 5 K@!A!A+*@ +@G@K@@9x@#@c :8 @$9#@'@OS_H_9#@9!@?dq)T!@?dqT!@?$qhTc9_ @? `T?T_qHTc@qT_qT_qBT c@qT_lq`T_tqaTc9__qhT_qT_qT_q@TLc@qTc@qIT_qTA_qTc@q T_qT8c@qT?T?T?T_qT_q`T_qaT@_qc9__qc9_?T_qT_q`T_qaT@_qc9_?T?Tc9_@c9__|q`T_qaTc9_?!T_qT@qhTc9_@c9_ց @_iKT#g@k@o@m TIIT3W9/fh`8gKqTmT GThhh8 *@_%qhT  k@qhT k@qTIDTfhf8l@ӟ%q)T̈́ѭ@ӿqTѭ@ӿqT !T_%qhT  ѭ@ӿqT ]    ѭ@ӿqT    )@?!qT C>T =Tih`xDR?kT@9?q`Tl T_%qhT%q )@?qT ]џ%q  )@?qT џ%q %q TȄ@qhT\@qhT f  7T6Thh`xDRkT@9qT@qaT#9@ c@9/@WA9g@k@o@K@3@! XqTR `TATqcT#9 c@9/@WA9g@k@o@K@3@9@ @!#{_L_@ @!#{_L_ց`? MT@ @!#{_L_(T@ @!${_L_sw_L_  cOF$W@[@  MT; 5 ?(W@;@@S@TG ';@G@W?@[Scg@k@o@TTfh`8qA TITfhf8@%qTDŽ@qhT\@qhTiTfh`8 @?%qTȄ@qhT\@qhT O@`TOW@S@[@_TC[95 (@@#@[SC@cg@k@o@[A9W&i'87q TT  O@`TOW@S@[@?bT5 (@@#@[S7@cg@k@o@W{i&8~  O@`TTOW@S@[@?bT5 f(@@#@[S7@cg@k@o@Wgi&8{X O@`T(OW@S@[@_T_95 @(@@#@[S7@cg@k@o@_A9W&i'83S@W@sw_L_*' ^*' W*' P*' I~* ;y  tifd I @_T#/@7k@T/#g@"h`89#9o@ c@9@9qTo@T#@7@o@7@#@o@#@7@g@sw_L_  a'?TT 5 I'@'@7@k@[bg@ T [@'@k@g@ao@g@T3+he8q!T_T Tgh&89#9 c@9+@'@T[@bh 8@9D@Ӈhf8?Tfh$8 @he8?Teh$8 o@k@g@3@g3@g@dhb8+@'@T[@h 8k@g@go@ d6@@sw_L_֨BmThb8qT_"Teh"8e D6@@sw_L_z j%@@@ __@@ @@9 9_9_ց @_T#?@@@ @@?@C@9c3/@@A @ @@3@ /@BB @d5#@'@CG_G__G_ @_ T#@#@B?Thb8dф@ӟdq)Tdф@ӟdqTdф@ӟ$qTqTq`Tq!TB/3_C_qaT@# @!!7;_C_'+!!BB/3_C_/3_C_/3_C_ @_T#@#@ #A9c9W@'A9#@_cT _T@+/A!`37_C_#@_T@+/B! 37_C_@+#@/_C_֘ r @_)T#G@K@ bc9@g9@/@#@'@3 c9u@@@@C'@a+3@ <@@@b;73j" @A!1K@ 0!"@5G@@G@;@!@57@7@O!5SW_H_+@O _H_O _H_;735" @A!1#@ 0!"@5/@@/@ˉ;@!@57@7@O!5SW_H_r @_)6T#?@C@B? Thb8qcTq!T@! @!!,K!OS_G_֡#B9b@! @!a!K!OS_G_+! @/C@?T?@C@9qT@ a!-K _G_?@ x@@@@#@@@/@0 @i5N (3' z@@/@@0@a5C<'@jT%3@ 4 @ @90/@'@3@'@ "B4 @s@/@'@0A@E`9џC!T3@3@ @c9@g9y@@@@/@40@e50_T%9@ӿq'3e@ @`5@ۈK _G_#B9  @L@+3@'@ cc@@@+@`mT@! @!@ K!OS_G_03@'@/@@c@#B9c_ jT  @p@93@'@/@0c@҃_jT  \@93@'@/@0_C T@BBA c9g9@@@3@' `@@@@@@0@5/@/@J @a5?'@3@KOS_G_ [@@@KOS_G_/@K _G_@s @!=K!OS_G_KOS_G_`N +J @C_ T#O@S@ "B8 @$r@/`S@?#T#cBO@ @@@@ O@S@ @@@@/@S@#T3CO@ c@9O@/@ "B @6~@@ O@/@ @c9@g9#@@@?@+ $@@@@@$#7?@+@ @@@@@d+?6 @#@@0@57@A7@y+@A @5?@@@@?@m@@91W cg_I_W cg_I_O@/@ @@@@@'; 6 @'@@0@5;@@;@;_|_9WC@[3@_ _I_W cg_I_@} @!!W !cg_I_W[_ _I_W cg_I_Q_ ,~ @_#T#k@Tg@"9B@_lqg@" bB8@q@k@?T/#Cd?Bg@O c@9 g@/@ "BX@C}@k@_T+g@ @;@@@@@D +@/@T7K"g@ ~%@@@@@3GC@/@Ag@! @@@@@@ w{_L_K@ 7@G@3@0#@'@os_L_ w{_L_ w{_L_ O@?@ @!*W[X%@ @| @@ w{_L_  @a!/ !w{_L_ "B @bp@Tk@?T";g@S c@9 S@;@ F@!*W[X%@ @2 @@ w{_L_g@k@ @w@@@@@ w{_L_os_L_<;*8 } @_) T#3@7@ @K@@@@@/@ 0!$@d5 @@@7@_T3@ @9/@(0!!@a5$ Ҙ7@/@(0!!@53@$ 3@_E_;?_E_| @_) T#/@$@(@b  @G@9/@$@(@ @@@@b/@/@C@D @`T /@9/@@ @T"@9_q!T`-3@7_E_ @@@37_E_@$@A(@37_E_S| @_T##@@BT#hb8qhTqTqTq`TqTqTeѥ@ӿq)TqTqTlq@TtqT#9'@ c@9#@@@C9_C_@C9_C_| @_) T#3@7@ @W@@@@@/@<0!$@d58 @@@7@_T3@ @9/@D0!!@a5@Ҥ7@/@D0!!@53@@3@_E_;?_E_{ @_T#/@@@D@b  @S@9/@@@D@ @@@@b/@/@C8@D<@`T ;@9/@8@<@ @8@@37_E_@@@AD@37_E_l{ @_T#3@@/@"@9_qATBB@!# 9_E_@9_E__T#hb8qjTB  og#@@#@c$qT9_E_@9_E_-{ @_^T# @@@b   #go@EGs@k@"TC?c5 @#@c@?@C@C_ G@oC@s_@k  g@#T#go@k@s@T5 |@@#@skoAAh 8@@ @ g@#T#go@DGs@k@"TC?c5 T@#@c@?@C@C_ dG@oC@s_@kd@@a@a@ @a@  g@#?TI#go@"s@k@TGC5 @#@@C@G@%Х @yh!xosk@  @ @g@#_T#g#o@Gs@k@"TC3W5 @#@3@W@C@C_ G@oC@s_@k  g@#T#go@k@s@T5 @@#@skozAh 8@@@ @ @@g@#_T#go@Gs@k@"TC/K5 @#@/@K@C@_C G@oC@s_@k@7 @[@;@9_q T@C@#  g@#Tl#go@dk@s@"T5 \@@#@sk[@;@@doҤh#8@@o@ Bc9T@?T;@?'T[@ c9H@  g@#T"#go@s@k@_TGCЄ5 @#@G@C@$ @ydh xosk[@;@@  g@#T#go@$Gs@k@TC5 @#@[@;@C@C_ G@oC@s_@k@`A9a4@A  g@#?T#g#o@#k@s@T5 @@#@sk@##o@h!84@0@ g@`Tgo@DGs@k@"TC+O5 @#@+@C@O@C_ G@oC@s_@k@<@  g@#?T[#g#o@#k@s@T5 n@@#@sk@"ob҂h!8 @ @g@#_T.#go@CGs@k@"T7SC5 E@#@7@S@C@C_ UG@oC@s_@kk@o@_O_*' a*' Z*' S*' L*' E*' >*' 6*' /*' (*' !*' *' *'  -x @C_iT#o@@ @;T/@@9@@B69 @@@0@5@@@Հ@ 0;@@@9/ @@sw_M__M_w @_IT#'@ A!* +@/@+-@@@_D_ @!@37_D__D_w @_T# @7@@0@53@A3@y@*'@ +@/@/@@@@0@5@@@b_D_w @_ T#@*7@ ;@?@.@@@@$"T+* @@#@+@A0!$@d5C,$@G@0Є@5 |C@Ah C@_F_@w @_)T#@*@ #@'@/_C_'w @_iT#@*'@ +@/@t-@99_D_ w @_T#_@[@3@G@7/?K BB-@k@/@_T _#TBB?@`?@/@/3G $$ @$v@/@7@K@?@ "B, @v@/@_T _TBB?@?@/@+; @@@@7@?"K@#?/;@+@ @@@@7@?"K@#+;@*W@ ?@/@-@@@@$"TC*  @@#@C@A0!$@d5C3$@+@0Є@5 |;@Ah ;@ 7@K@M# E@@Bcg_J_gVdS 0v' @C_0TC~#@@?B* d@~TA!*@ =?@@ _@C_;@?@k@;@@@?BTCsc* @@#@;@s@C@k;?F0@5|Ch ~  @! T;@T@ @@_@C_@c@W @o#@GD*@ *@@3@c o@G@ V@@3@_T/[c@W@;@?lT{@@[@/@3@S{e@gf@7@T  @#T##@@@ T5 @@#@/@[@3@{@S@g@7@#Ii'8# @`T@ O@@ TK5 @#@/@[@K@Kw ~O@K@w@  @#T`##@@@T!5 @@#@ah 8 g@7@   @@@#_T-#@O@@"TK_+5 {@#@+@_@K@Kw ~O@K@w@S@3@?lT4*' *' *' *'  tw @_9T~#@@@#@"@9_qT@@ bB@g@@_5T@ @@'@@ #@d@@bTCw5 @@#@C@w@#dҤh#8@_@_#C?sW9 c9@!@W@W@_c*T _)TCc@?@s@?T@9qaTW;oS?T@yŅRkT@@?%T'@(ѳGA9#+  @#T##@@@ T5 }@@#@W@G@S@;@o@@@#Ii'8  @`Tm@O@@ TK5 T@#@G@@K@K{ d}O@K@{@S@;@o@@W@VT@9qTT@yŅRkT  @`T)@@@T5 @@#@Dh 8 @@?T@9_qaT!_@_*' 5*' .*' 'Ѩhh8?qTk3   #@K@@ T75 @@#@W@S@;@o@k@@7@3@#Kҋi*8aT@4hT @? `T.@O@@_TK5 @#@K@k@3@K{ |O@K@{@W@S@;@o@@#A9A*' {@||{{ r-@@C9_ @_T#+@/@ I@@@@37;_D_'@ @3_D_r @_IT#+;@9 @+0@5"@;T + -0;@$@7@@@+@E@e5CG{+@7@%@%@e%@ @@ @@+@ [+@?_F_% @@a5_A{_@a5_A{_ @`5_@ {?_F_% @%%4@0@4@E4@e5C0Ez%<@%8@<@E<@e5C8Ez@@D@ED@e5C@Ez@@E@e5CEz@@`5C@zH @'@#;@A @@'@#@ @@@+@ +@?_F_q1 @_T#/@0@4@@#@ @#@3_E_q @_) T#?@@ @_ T3/ S@9?@/@3@!?@@@ ! @3@/@$#@'@?@ @@" @Cc`?@`A9c4@0@4@ !4 @$#@'@CG_G__q @_)T#'@@@ $@@+/_D_Gq @_)T#'@@@ @@+/_D_/q @_ T#3@C/@cѣhc8qTT_C T@a c@93@@/@Ҁ_T`_CTE˥T9@lqjT#`р@8 @@9@/@@#@ҀacT?Tc@7;?C_E_@yyyyy p @_iT#'@$@@@+/3_D_p @_ T#+@ /@X$@@ @@@@'@;990@5"@;T+ *_D_7;_D_dp @_T#'@+@? Thb8qjTB  |\#@'@+@dџdqTdџdqTdџ$q)Tq,TqTdџ(qITq T qTq`Tq T|qTqTc9_D_@c9_D_p @_T##@@@C@@E@T @F @AT @9#@@@C@D @ @9 @@#@C@@B@`T @9#9_C_o @_T#с@@@@ %@@#'_C_ o"@AT#$ @_T#с@@@@ 9@@#'_C_ o"@AT#$ @_iT##@@@C@@E@aTA @ @TA@9@9!!@A 1@9#@@@"@! @ &@9#9_C_io @_)T##@@@C@@E@!T @F @TA@@!T@F@ T @F @! T(@F(@ TA`A9`A9!!@ A4@4@ T<@F<@ TD@FD@ T @9 #@@@C@D @ @9`#@@@C@D@ @9#@@@C@D @ @9#@$@@C$@D(@ @9@#@0@@C0@D4@ @9#@8@@C8@D<@ @9#@@@@"@@!D@ @9#9_C_nr @_T#с@7@@A!* ;@?@4&@@@@$"T+* P@@#@+@A0!$@d5Cxw$@G@0@5 |C@Ah C@ew_F_ n"@AT#$ @_T#с@@@A!* #@'@&_C_ּ en"@!T#$ @_T#с@A@`@# @@#'_C_֛ Dn"@T#$ @_T#с@'@@A!* +@/@x#@@@ @!@37_D_e n"@#AT#$ @_)T#с@'@@!!* +@/@P$@99_D_> m"@#T#$ @_T#с@/@@! @#?@@0@5;@A;@v *@ 3@7@)%@@@@0@5#@@#@|v_E_ m"@c!T#$ @_T#@@@?T_B_ְv m @_ T#7@C@c?@cуE@A@b Tf xf@T#;@ @97@@?@7@@@@"T#@ K@0!!@5C@G@ @C@v`G@v_F_;@ C@!*'+7@|& #@_F_=v;v  m @_) T#7@C@c?@c#E@A@ Tf xf@T#;@ @97@@?@7@A@B@@T#@@ @ @@CGK_F_;@ @!*'+7@|& #@4/5@@@CGK_F_uu l @_ T#'@ @+@? @@/3_C_l@@_ @_)T~#@@"@!@  ! @c i@@#@'@ @?3@B@ @K@; @@ B @B i#@C'@/ K@;@ W@!*os?@3@ M@!*w{C@/@ C@!*@@ 9@!*,9 c~)@@@B@C@GB@7 @@@@@ G@O7@SW[;c @@ ׫  @!*_c@@ @!*gk`9| @@k: @C_ T#C  @ @@@@ @E 3'+/@G! @G@RrkAT3@!;T+@@@ @@7;?C& @@O@ 0@`5#" et;Rr+aT3@!!!T/@@@O@ 0@`5#" Nt_I_'@ N3@3@'@ G hk @_T#?@K@ O@3@@C@ G@S@W@7@@[__G_K@O@ E@!*'+?@@@ :@!*/37 #&@@[__G_k @_T#gk9` kCg@9@a!T@$@%@!@ҡT4 @ /Є-@9d/Є-0@5@/c-b /B-@s0@373@A"\@9C@dyB{_k 7@ 0+'/   cw@C{@G@K @@B '@0cc@5+@/@ @+@js`/@fs/@[_Ww@@e@@@ @!*;?!4 @w@'@+@/@@@ !9g@_N_ֻ_N_Rj= @C_ "T#_@O@ 0@5c@""c@s_@d@{dRrk T-R;Yr+T[4RԨr+ TR;r+TЄATc@@ @_ T/@TS@ W@[@c@RrkT`aTc@@@@A S@W@[@#-R;Yr+T"!Tc@@@@a S@W@[@#rҐR۲rk(TR*rkAT`a Tc@@S@ W@[@c@@@@#@!@ O@!` IҐR۲rkATTS@ W@[@c@6XR;rkTT{dRrkT` AT @!@ @c@C @D@B@ ?@@@c`@7;`; |@_I_ ?C  @@ 33@B@O@+3@@S@ W@[@+@/@?,T@!*S@ @!?@ @!@BD: c@wC@W@=7@d@[@ ? @W@?`T7@d@[@ ? @S@@ @!*S@ @!W@ @!@B bc@:W@?@Cw@[@ b c@9 7@l@[@ ? @S@@ @!*S@ @!@!t; @W@ @s[@7@C@?@ E[@7@C@?@GTT@@@ ?@@G@C|{@hc@@@ @@#+'@+@/@G@W@_+TEs@ ˡa0!'@5.cB +c@D@?C@97@d@[@ ?7@@@ @[@B ?@@$@? @w@g@{@@@@?@G@G@G.!5!@@_T.! 5!@@T.!@5!@@` T7@d@[@ ?7@@@ @[@B ?7@D@@;@_[@ ?C@9W@C@_MT7@@@[@ ?@@ ;@$@_@? @@;@_@@@ @@@#@'@G@W@_TEs@ Aa0!%@5C@bB bW@s@@@ @d+@/@'@O#@s@o+@kc @@ e0Х@5@ŀ@yb@@ @!*k@@@c@@@ O@s@o@ @.!"@!@@T g@9O@o@s@o@s@ O@@9@@"B?aT@@@_@C_ 6ncbH@{@g@w@@@@?@   JTTK|ghgi)@ #'@+@/@K@W@_TEs@ ˡg0@5aB a'b$b!b@7b Yk @_6T#@ @3 L@@? @H?T.@@dT.@@@`T@ @9@..@, ca@K@Ow@bB& BC@@.!"@!@@`T @ @9@@a{@@ @@@_`T@  @@9@@@@a{@@ @@@@ @?@9@@@@b @_PT@D@@d{@ @'@?@; @@@@ @?@9@@'@?@;@ ?@;@'@_N_@{@/+ @X`T @@$@? @@@@ @?@9@/@@+@@ 8@@@ #73 @Cc@K@Ow@ C@]3@7@#@K Y@@B&!T @@ @@9@@6+@/@ @@@*@+@/@ 5@@ @BB@_@c@@gkw@$ @+@/@{@@_N_{@S@W[  @@@ .!-!@9.!- a0!!@5.!-#.B-W`CGC@@\@9"@Cy!{?ka G@_N_@@ @@@SW[_N__N_0  HWG @_]T~#@@ "d0Є@5@%@`@3f@aR{rkhTRrkTB@A2T.5@@@@ @@@+/37m;@?@C@@ @@#@@'@sw{_@_̅RʦrkaTBA+T.5@@@@ @@@#'+/3@7@;@@ @@@#@'@sw{_@_aR{rk%TB$T@ @@@@@#@@ @@@#@'@sw{_@_ֻ؅R{2r+ TzRDrkaTB!T.5@@@@ @@@#'+/3@7@;@@ @@`@#@'@sw{_@_ֻ؅R{2r+ATBT@ @@@@?@#@'@_@_֛R{r+ T T @cg.@5@.5@. 5@ & @5@"@^C @D@H@@ @@#'+/37@;?CGKO@S@W@@ @@@#@'@_@_R;rr+a TB T@L@@ ? @H?T.@@dT.@@@`T@ @9@..@ ca@k@o@BB4 C@@@ @@@_@_@L@@ ? @8h THT`Tc!T@@ @@@@@#@sw{_@_@@ @@@@@#@_@_0(T@@ @@@@@#@sw{_@_@@ @@@V@@#@_@_PhT@)TP!T@h@@? @@@@ @@@@@#@'@_@_@@ @@@}@@#@sw{_@_` Td T.@@@_ T@ @9 @@ @@@@@#@'@sw{  =@@@ .!-!@9.!- a0!!@5.!-#.B-z][_[@@\@9"@Cy!{?ka _@_@_@@ @@@@@#@_@_@@@@@@@@@L @*@` 0 QT  @_I T#K@?@ d0@5O@""O@ ]caTC@G@ @@@ L@+@#O@B`@9@' 9 +@S'@W#@[_G_K@@@/3@6 c@d*@` Փ S @_ T#K@?@ d0@5O@""O@\c TC@G@ 7@@@ @+@'@#O@d@c@ +@S'@W#@[_G_K@@@/3`d6 c@ *@` { S @_) T#K@?@ d0@5O@""O@Y\caTO@T`@9#C@G@ @@@ @+#@!@@'@ x '@S+@W@[_G_K@@@/3` @c@*@`  ;S @_) T#K@?@ d0@5O@""O@[caTO@Td@9#C@G@ t@@@ 1@+#@!@@'@ '@S+@W@[_G_K@@@/31 `c@I*@`  R @_) T#K@?@ d0@5O@""O@[caTO@Th@9#C@G@ @@@ @+#@ @@'@  '@S+@W@[_G_K@@@/3` }c@*@` Z {R @_ T#K@!aTO@Tl@9#C@G@ @@@ ~@#@ @! @@+@'  +@S'@W@[_G_K@@@/O@3?@` @c@*@`  $R @_I1T#@@ "d0@5@%@Z@)f@؅R{2r+TaR{rkhTRrkTB@&T.5@@@@ @@@+/37G;@?@C@_O_aR{rk"TB"T@ @@@@@#@_O_zRDrkATB!T.5@@@@ @@@#'+/3@7@;@_O_ֻ؅R{2r+TBT@@@_O_ֻXR{r+H T[)R|r+ATBaT@ @@@_O_ֻXR{r+ATB T@@@ j@ .-@9@*.!- a0!!@5.!-#.B- Z*_c_@ \@9"@Dy!{?k _O_֛R{r+T A T.5@@@ & @5@"@YC @D@H@@ @@#'+/3?CGKO@S@W@_O_6R#!@9 @$@A!< /@3@@@@@`@;?C@#99@թ_E_9@A!< /@3@@@@@;?C@#9@969@_E_;#9@969@_E_֏_E_&L} @_IT#_@W@[@Gc@L@g@ ? @H?Tc@@dAT.@@c@_`T g@ @9c@c@Ҡb@@7g@;&@ @@@ sw{_J_c@g@ @@@+/3 3 @@@c@ g@?@9  +@@"_T!?Tc@L@g@ ? @?hT@hT@+@a/@3@  @@ @c@ g@?@9@+@/@3@  @@A!@?Cc@@@Gg@K`)@ t@@ sw{_J_/@3@ +@c@g@ @@#@kos_J_/@k3@o+@s_J_FK! @_T# ?@@"_T? (T?T;@@/;@ 9,?T;@ y'?T;@ ";@ @"_T?$T?T;@@? T;@ @9;@ @y ?(T;@ @?,T;@ @;@ @C@?T @!'+@l #@@@GKO_F_G _F_7@;@ @ @@A!@'+; #@@@GKO_F_`  @@GKO_F_Jg @_i T#g@k@ o@g@@@w@Ts@@| @@_L__L_S@`?SOK;@@@ 5@G@C@7K@O@ ;@@@@@9KO3 @DTTlTTc\ T G@C@ 7@@@@@ K@O@ 3@@@@> @@H@? @@G@C@ 7@'@+@@@#@'@ K@O@ 3@+@#@'@K@O@ 3@d@@$@? @@  @@@?@cw@LTj_L_ F@@ A!@W[@9` @@@_L__L_ , @@_L_ր*  )  I @C_I'T#o@s@ w@[@@@b@ TKG3  D@D`T\T @ `aT T $@/K@G@ 3@@?;@- T{@` Y@@_M_ @@ A!@OS@T:` c@:@@_M_  @!OS@/@ c@@@_M_ |  @@_M_7@;@_k T T?@T ;@ @!W[?@ @!_c@+ ~ @@_M_K@G@ 3@@#@'@_M_K@G@ 3@ @@#@_M_ 7@ @!W[;@ @!_c@+ ~ @@_M_C@c`+C @#@$@ /@1@@@@C+@@x! @?Th_M_^H @_i T#7@;@ ?@@@@@9 @dD ՟TTTc\hT @C_F_ @@A!@'+   #@#@@CGK_F_ @ @@CGK_F_H @_i3T~#@@ @@@@{wO N@7L@@s@S@o ? @LATo@S@ gc@97@d@S@ ? @;7@"D@S@@?C@9;@@_KT7@@@S@ @?@@$@? @@@.K @!K@ @! #@@_@_@;@aTC[! @@?Tk@T @!;@L @!1 #X@@_@_7@l@S@? @) @!  @5@@_@_s@`@S@@ @@@_@_|0` @@_@_w@{@ O@@+@#@'@/@_@_g@`?g`@a@d@ 7@D@@c@_@GS@ ?C@9 ;@?@_TC@[@ ?@7@@@S@ ?@@c@_@ G@?@k@A @@#@'@'@+@%E0Х@5#$jO" gO @?TWsm @!s@`@W@h@ #q@@_@_aF` @C_T#?C9g  C?@9O@S@ W@[@_@c@(#@@?T@@ d@3PTHѿTPTIXIT\TD@@ hT#H7c86D@@d7 @ @9@@;B +7@@@@@gkos;@w9?@0_I_?T@@@gko9?@ _I_N  @a!!x53@!!*  4_I_En @_ T#  @@ @B+'@@@?@ @0@`5# " zN+@/'@3H  c@@@?@ @0@`5#" ]N_G_E @_T#'@+@ /@?@@@ @99_D_eE @_T#/@3@ 7@@97@/@3@/@G3@K7@O_E_@@#@@?@T;@A #@#$@!@ @9 @#@@GKO_E_ E @_T#/@3@ 7@@97@/@3@/@G3@K7@O_E_@@#@@?@T;@A #@#$@!@ i@9 @#@@GKO_E_D @_)T#@#@ '@K@9@C9_C_D @C_iTC~#@@ @}@/@g@Okos.c5d@k@aT.5@_T.5@`T @@G@@c?C@9/@g@O@.c5/g@kO@o/@sc@`@wG@{C @@@P,} c@@#9_@C_@ @0TaT@hT@T8hT~ <hT`aT?'@.@@@#9_@C__@B`;_@@@ @@@ #@0TaT@dџhT@T8hT~ d<џhT`aT7'@T A T T?@ TTO@$@  oTO@$9TO@$y TO@$ mTO@$@ $(TaT$@ AjT$9 aT$yaT$hT$@$TaTB@ aTB@9$eTB@y (aTB@,aTB@0cTB@g@/@.5  T T (TaT@@ ^T@9 aT@yaT@]T@@?@$hTTO@$@  TO@$@9 $XTO@$@y (TO@$@ ,TO@$@ 0AVTO@$@ (TaTB@ RTB9 aTByaTBaQTB@?@O@g@/@.5g@kO@o/@s.5@k@ aT.)5)@ T.)5)@?T3T.5@_a2T.5@?1T҅[K+ ,T` TT?@<TO@ @"!@!"@FTO@ @!@<TB@B"C@c"@CTB@C@ b cB.c5g@/@Q AT?@ hTTO@$@ =TO@$9TO@$y TO@$;TO@$@ (TaTB@ a8TB9 aTByaTB6TB@.c5g@/@g@O@ /@@99[@K@ +@@9A9 @.c5g@'@O@/@T?@4TO@ @"8.TO@ @4TA@!"8a+TA@ a.c5g@/@TaT?@$TTO@$@ TO@$@9$%TO@$@y(TO@$@ ,TO@$@0#TO@$@$TaTB@ aTB@9$TB@y (aTB@,aTB@0aTB@.c5g@/@.c5d@T.5@_aT.5@?Tg@O@/@@g@kO@o/@sk@i@?T.5@T.5@kosk@TT?`^ V@@C@@c?C@9 g@O@ /@@9c@S@c[@K@ +@@9V@@c@`TS@ r@9.c5g@'@O@/@&g@O@ /@G@3@W[@K@ +@<@@3@?`TW@ P@9.c5g@'@O@/@.5;@@?묬T:.@@#9_@C_[@kK@o+@sc@`@wC@{C @@ P,} \@@#9_@C_#9_@C_@#9_@C_ j @A!! 7@!* Y @A!! ?@!* H @a!!47@!* 7 @a!!4?@!* ڀ & @!!$ 7@!* ɀ  @!!$ ?@!*  @!!:7@!*  @!!:?@!*  @!!$ 7@!*  @A!! ?@!* t  @!!$ 7@!* c  @A!! 7@!* R  @!!$ ?@!* A  @!!$ ?@!* 0 Q@ @_IT#3K@+O@/S@3?@C@ G@C@r@9#@'@@9[__G_&@ @_I^T#W@[@ _@@@@ #@0HTT.@0dџT.@'T.8T.~d<џT.`T..@@97#;K'c@g@ k@@@@ #@0HTT.@0dџT.@'T.8T.~d<џT.`T..@@/3#@@T Ta T7@? T?T;@D@? ? !GT;@D9?T;@Dy? ?T;@D? ?ET;@D@? d@O(T?aTA@? AATA9 ?aTAy?aTA??TA@$TaT@ aT@9$<T@y (aT@,aT@0:T@?' T T (TaT@ a6T9 aTyaT4T@7@?$hT?T;@!@ ? T;@A@9 ?$a0T;@A@y ?(T;@A@ ?,T;@A@ ?0!.T;@A@ (TaT@ *T9 aTyaTA)T@?'.@@c9sw_J_ֿ ,T?T T7@? hT?T;@!@? #T;@A9?T;@Ay ?T;@A?!!T;@A@ (TaT@ T9 aTyaTAT@?য়@@c9sw_J_ֿT7@?4T;@ @"?8AT;@ @4T@!"8T@ aWbT!T7@?$T?T;@!@? T;@A@9?$!T;@A@y?(T;@A@ ?,T;@A@?0A T;@A@$TaT@ aT@9$aT@y (aT@,aT@0T@?'"G?+K@;@ '@@C@/G@?@ +@@@C@/@ <@য়c9_J_c9sw_J_c9sw_J_, @A! 3@!* } @A! 7@!* }`* } @a!43@!* } @a!47@!* } @!!$ 3@!* } @!!$ 7@!* s} @!!$ 3@!* b} @A! 7@!* Q} @!!$ 3@!* @} @A! 3@!* /}{ @!!$ 7@!* }j @!!$ 7@!* } .=  @_IT#?@C@ G@K@O@S@#@#@'@@9C9[__G_3K@+O@/S@3?@C@ G@C@9@9#@'@9[__G_< @_IT#7@;@ ?@C@G@K@@9#@'@#@c9SW_F_@c9 _F_< @_IT#7@;@ ?@C@G@K@@9#@'@#@c9SW_F_@c9 _F_< @_T#G@K@ TDh`8qTd4q TqTD.Є@@@.D.Є@@@D.Є&D.Є@@@D.ЄqTq`TqATD.Є@@@D.ЄD.Є@@@D.ЄD.Є@@@D.Є?(T'/+3?@d @C@O@(H ??@ @C@3@ +@/@ ?'@G@K@CT?@ @C@O@%B a?_G_IEEE @9?@i?@G@   @6 @#@ 0@5#@##@BA@ 0@5#@# #@"6A@ 0@5#@#$?@A #@" (A+@%A?@x @G@@ 0@5C@AC@A?@# @@d5C D` A#@$@D@d5CD@#@$@D@d5CD@ K@@9`@@@9!0!!@5K@@K@@O 9/@_G__s_G_7 @_ T##97 /@ @!6 @@ 0@5@#@@@ 0@5@# @"@@ 0@5@$/@ @ @/@"`@ @;9!/@ @;9B?#!@9 @!$@3@ /@ @! @3@ /@79@_E_r_E_7 @_) T##9;/@ @ @;9"`#0cc@9@D㸄@E_E6 PC9<2/@ @;9B>#! @9 @@!! 3@7@@@;9@_E_;_E_֤r_E_;7 @C_\TC~#@ @A6U @KV@ 0@5K@#K@?K@ 0@5K@# K@"??@ 0@5K@#$@A K@" ?@`? @;9"#0cd@9@E严@F_F6 C91@S!  B@L@!7"0BC@5c c? S@ B-~0@!! "0BC@5c c? S@ B1~@!-"0BC@5c@ c@c? S@ B)@!! "0BC@5c cG? S@ B5@!! !0!"@5B c,? S@ B@!-"0BC@5c` c`? S@ B @@!5!0!"@5B c>` S@ B@@!!0!"@5B@ c@>` S@ B o@!7!0!"@5B` c`>` S@ B2T@!-"0BC@5c@ c@>` S@ Bl8@! !0!"@5B c>` S@ B  @@!-"0BC@5c  c l>` S@ B)}@!-!0!"@5B cQ>` S@ BH@!!0!"@5B c6>` S@ BX@! "0BC@5c@ c@>` S@ B`@! "0BC@5c` c`=` S@ B@! "0BC@5c c=` S@ Bw@! "0BC@5c c=` S@ ![@! !0!"@5B  c =@ @ @# @!0!!@5CS@A=A S@=@@@@@@ @@#'+/o@ @;93@7@7@;@&'0@9_) 6GCO? (@C@?@O@G@~T   _@C_SW@[@@!@@@ @@@_@C_@_@C_O4 @_ T#+@ @'@C @Ta@@@$ @@` /@@! 9c@9@@9_D_'@ @@+@"@#@$ @[9 0@5+@@+@<@9_D_`* s 3 @_FT~#~T' @G`  B@H@!7"0BC@5c c<`  B-~,@! "0BC@5c c{<`  B1~@!-"0BC@5c@ c@_<`  B)@! "0BC@5c cC<`  B5@! !0!"@5B c(<`  B@!-"0BC@5c` c` <`  B @@!5!0!"@5B c;`  B@@!!0!"@5B@ c@;`  B k@!7!0!"@5B` c`;`  B2P@!-"0BC@5c@ c@;`  Bl4@! !0!"@5B c;`  B  @@!-"0BC@5c  c h;`  B)}@!-!0!"@5B cM;`  BH@!!0!"@5B c2;`  BX@! "0BC@5c@ c@;`  B`@! "0BC@5c` c`:`  B@! "0BC@5c c:`  Bs@! "0BC@5c c:`  !W@! !0!"@5B  c :@ ! 0@5@.!4 .B4@:_@_1 @_IT#Ԑ !0!  Հ.-@9 7.!- !0!$@5$0 .-.B-#0c h:$0  7!0!$0 /3/@@\@9@y{k 3@҆.@5$@5.B5@. 5 .B5?:.B 5;:@B&A$@ ?@ @.! 0@5.!#.B:!'+'@B&@$@?@ @.! 0@5.!#.B9!#@B&@$@?@ @.! 0@5.! #.B 95 @`` `.! !0!"@5.B C.B 9 @ `@&`.! !0!"@5.BC.B9 @@` x`.!@ 0@5.`.B`9_G_0 @_T##@@@C@@E@T Z@9 @@#@C@ @B @?`T @9#9_C_0 @_T#с@@@ @! @ ? @@#'_C_ n0"@AT#$ @_)T#с@@@ @_A_֦ O0"@cT#$ @_T##@@@C@@E@TA@@!TA @ @T@F@!TA@@T ֤@9#@@@C@D@ ˤ@9#@@@"@!@ @9#9_C_0 @_iT##@@@C@@E@aTA@@TA @ @aTA@@T @9#9_C_/ @_iT#@@#@C@@E@`T  t@9#@@@C@AT @C @T@A@?#9_C_/ @_ T# 1A @+#!$"x7|ӥ hd@'1 @7#@+@h!T 0@5.!@#.B@>8 "a @'#!`6"x`|ӤЄ`;hb@&ƀ" @@#@'@lT 0@5.`.B`8_F_5/ @_ 6T#[@g@?4T_@CW@&MT@9qT T@9q`T`qT@@%?)$Th`8c@?i#Th#8ako_J_@?Th`8c@?)Th#8ako_J_88*Thg8 )@?eq)T )@?eqT )@?%q)TqTcTT#G+.@@"B1 K/@4[@c@?T_@cDW@! #S@c@k+@g@o_J_ր.`@!!" K@/@@@CC@;4[@c@?T_@dEW@% #aS@c@[@?T7_@BW@c?! #MS@7@ k+@g@o_J_+@dџ#@3K@'@K@3@+@T T'.@@"B1 @@4[@c@?cT_@cDW@! #S@c@k'@g@o_J_g@_@G@W@c@_TTHc_TT T?; 7?@;@ko_J_07&7,7#7)77&7$7"7@7777cTb Thc8*J@_%qT(*J@_qT)(]*J@_qT)(*J@_%qT ) ( qc T?Th`8c@?Th#8ako_J_џ|qT|@,ƀ3x 4˟qTkMTc@?T+@˂! #sR@c@k+@g@o_J_66666 |-K @_)T#0 ߈50  C _@c@ c9@#_@ c@@3@7@O #@@@7@O@c@_@3@_@gc@k_K_   @@7@O@c@_@3@T( T T'/ha8?qaT ;S  c9@'@7@O@c@_@3@;@S@/@?mT THh* #T? T?' * _T+ 6/@'@7@O@c@_@3@+@hT˟Ee@T; 6/@7@O@;@T @@gk_K_55 5 5555 ,2 @_ T~#c~T-/@3!7;B ?CB>GKB( OSB!W~[c0 _cc4!gkBl os>w{@*A@#@_(cT'+A!* Ac0@ @A'@0!!@5+@.! +@5.B5_@_A`5 5, @C_T#7 @P @77@9   c97@@@@$"T;$ @@#@;@A0!$@d5C4# Q 0@5@;T$ go@ j7@@_@3@[O~97@d@e@f@T;$ b@@#@;@A0!$@d5C4_@3@[@f 0cc@5c@;T $ 3@_@[@7@4d@e@F|A*BT 7@@7@ 7@s_M_4 x+G @_T ~#KAd@9$qATqhTq)T q Td@$SGAҗGA@ !@S'9@@@@EBT_$ @@#@_@A0!$@d5C4S@D@q 0@5# @;T $ S@ @ 9_@ _`@a@b@c@yGA Sy|3@7@;@@9 9_@ _֟q TqATGA@ !@SC  ;C 9@@@@EBT_$ t@@#@_@A0!$@d5C3S@D@q 0@5C @;T $ C 2S@ @ 9_@ _O 9_@ _֟qhTq!T .@@@GA Sy3@7@;@@9 9_@ _ .@@@GA Sy3@7@;@@9 9_@ _֟qA TGAC@ c@SC@9D@@@@bT_$ @@#@_@A0!$@d5C3GAS@ 0@5@;T $ GAS@B@A@B@*T@ @`@ 9_@ _֟ q TGAC@ c@S@c9D@@@@bT_$ @@#@_@A0!$@d5C2GAS@ 0Є@5c@;T $ cNGAS@B@A@B@*~T@ `@ 9_@ _GAC@ c@S@9D@@@@bT_$ :@@#@_@A0!$@d5Cb2GAS@ 0Є@5C@;T $ GAS@B@A@B@*sT@ ~`@ 9_@ _֟4qH<T,q &T0qTGAD@e,@S Մ@OC9G@@@@ _ T_$ @@#@_@A0!$@d5C2O@S@GAKA  1 0@5C@;T$ CGAKAO@S@0H@@@*fT  H@ @xӥ?JTa@e@?dT@ }GA@KAB,@S@ !@K@{@9O99@@@@? T_$ n@@#@_@A0!$@d5C1K@{@OA9GAS@@ 0@5#@;T$ 'GAK@S@@{@OA9@@@*XTBB@  @@*BJTO@B45҉F@vGAC@ c@S@9D@@@@bT_$ @@#@_@A0!$@d5C/1GAS@ 0Є@5c@;T $ GAS@B@A@B@*ET@ {`@ 9_@ _֟(q TGAC@ c@S@#9D@@@@bT_$ @@#@_@A0!$@d5C0GAS@ 0Є@5#@;T $ #kGAS@B@A@B@*B:T@ }`@ 9_@ _GAC@ c@S@9D@@@@bT_$ W@@#@_@A0!$@d5C0GAS@ 0Є@5@;T $ GAS@B@A@B@*B/T@ |`@ 9_@ _֟<qT@q THq T`@a@!S[GA@ !@S  s9@@@@EBT_$ @@#@_@A0!$@d5C0S@D@q 0@5@;T $ S@ @ 9_@ _֟LqT`@Wa@SҢa@b@?T@@GA @@#@@9KA@yGAs9{k90+@/@3@@9 9_@ _֟8qTa@b@? T@@GA m@@#@@9KA@yGAs9{k9+@/@3@@9 9_@ _a@b@?T@@GA GKA@y@[@9S9@#@GAs9{k9`/@3@[@SA9 9_@ _Ҳ/Ұ/Ү/_kW9wOxbGA @@#@@9GAw@k@_@WA9s9#'+9O@3@7@;@@9W@S@_KT 9_@ _@* (=(;(  @_T#/@@9?DqT(@A$@3@_T?mTA  9_E_@9_E_3@@#@@@@#@T@xc c@9`9_E_@9_E_ @_ T#/@+y8/@@@ @?T%Fxe@9q#T?hTe'}FA@#@0!!@5~T p'!!0#@ /@#@ 0 @/@9 @3_E_ A9@/@ @3_E_' l @_ T#7@@@ @?T'Ѩxg@9q#T? T!}!T#'"xbJ@'@7@#@@@+@0@5~T ' 0+@ ?7@+@ 0L @7@@9 }@;_F_ `9@7@ l@;_F_/'  @_T#G@@9?qAT;2 @@@G@@A/@5C;@G@;@&aTf&5fkT|@`5Ҟ&9_H_!Tf5f$qTf,q!Tf kT|@`5҄&Ҡ9_H_!?T/hT7"B 8@#@7@/@+3 ~H'/@G@ +@ /@53@ ;@3@Q&_H_x @_$T#g@T _@S@pC@/@5~T ,&0C@ jS@g@_@/C@ 0s @S@g@_@/CcC99 @"@i5&C@Oc@c@@s_K_MT;#y`?j@9_ k T @K @ @ T @@#@C@A /!$@5CO@C@O@%S@g@_@/cC9O@c@C@;@?@K @m5y* %C@ @k@A 7 @ @n@T3K/ p@#@;@7@S@?@g@_@/cC9O@c@/@3@K@C@_T3G B}A 7@C@ 3@ /@5G@$O@O@G@r%_@@@5?@S@O@ ?@c%S@`%;@g@_@/cC9O@c@]LqT@ @@ 3@@@C@@A /!$@d5CO@<%AT`@ _@@!@5C A,%S@)%s_K_ |% I @_iT~#@?T@@ @@_@_  ?;?/TT xc@9IqT@ @MT@@9 qT  @@@@y@=@<@kTS T/J T73/{yT?TgxfT z@@#@@@@7@@3@;@/@{@@y /JO@o5x+($  oyg @@p@/@5~Tx$0@ @@@7@?@@g@@yo@3@@;@/@{@@y@@/@0 @@@@7@?@@g@@yo@3@@;@/@{@@y@@/@9y@@T  @#@o@@S ~%o@@ S@"/BC@5@#$@$/B@@@7@g@qpT@}Ӣb a9@w @0@p@/@5#~T @#0@ +w@@/@ 05 @w@@/E9@@cT @@#@@/E@w@@5@ @#I  #@ @f5"#@;@?@cT@@ ]@@#@@;@@/E @i5x&~#@@7@3@/J/@{@@y@yBo_ l$T7kgJ Txb @9? qaT ?IqAT @ @_T(@ @9? qATf  c@9?@7@g@k@@@o@@;@@@9? qT@_T?q@T?qT?qT?EqT$@(@_ T@@?NTI@*@9_ qT)@?T_q`T_q T_qTT/Ji_ T JTxcT Ⱦ@@#@@?@7@@o@@;@ /JL@l5x' "@_ET# E}Ӥ D c9@s @0@p@/Є@5#~T ""0@ s@@/Є@ 0 @s@@/ЄE9@@cT d@@#@@/ЄE@s@@5@ @"I  "@ @f5"t"@o@k@cT@@ /@@#@@o@@/ЄE @i5x&P"?@7@/J;@@@!;?lTTxa@9 qT@Tq@TqTqTO_T?/)F?!T_'TfxbcT? ڽ@@#@O@o@@O@;@o@@ /)*@j5x#Y!?U?b!Txi _ T xb /Э@5 x)x"   ! ! [kxi ;@k@@bxb[@TO@o@@B@ @@#@O@o@;@@@O@o@ /)*@j5x ! O@*TxaTW `@@#@@O@@W@o@/) *@j5x&!"B?T&Txa@9qaTTxf@9qT/JGxaTc_ "@@#@@c@;@_@@ /JK@k5x" B!_@_z!J T_ T xbK@9T xf@9 kT kTJ@@_ jT o@k@O@;@[@@/ЭTxiTCxh C@@"x`[9@d@/Х@5DbF  /!,! )!&!#! !#g@@;@7@?@k@@@o@@ʽT TGxc  c9 @@G@ /Є@e5x!  !   &o@@@7@ @/B@ g@TTKaxf ;@@K@ /Є@e5x!     TTQyykT-T?cT  /Jp  H @_)T#3@d@9Hq Te@f@M T@/@ 7@@3@@@?T/Є@e5C: e@9qT /@@@5fb* ' @@ @?T9|@a5+  '?T@@5  ?#T } 3@ @@!_T;_E_֟ qTa@d@e@7@T&?~ # ~ #@3@b@?(Taa`9;_E_ #  @   b @_iT#3@@9HqA T@@ TA9@@9/@@/@5 €/@/@@ @?CT `}@ 3@ @@_ T@9|/!!@a5 q?AT@ /@@/Х@5a^;_E_A9  /@@/!%@5 KH/@/!@#@!@5~T 60#@ t#@0 @9;_E_v@| I` @_ T#0f @@9@yy/!$@d5#3@/@ y'The8qjT  E#@@/!#@3@/@@@ @?T h@@@@@A/@`5C#@;_E_ @_)yT#Ay7& @Ayy{@/BC@5w@w@/Bk'w@{@ U@@@_N_w@{@ Ay3yh@_N_k@{@w@/B!cCS9@9?qT?q T?qT@yG 6AC9@@y!xy}C9C@˥@S@k@A9?qaAT@y06?T@9qAT @@@@@$MA9k@@!C9@k@"@,C@BB@S@bA9Ҡ?qT?qI2T?q:T@y6C9C9C@˥@S@A9k@( @@ @EC@˥@S@A9k@m?qq(1T?q+T?mq)T?qqA4T@y06?T@9 qTqTqT qT~C9|C@S@@A9k@E!C9jC@S@@A9k@3Dq TqTq! TAC9RC@S@@A9k@aC9@C@S@@A9k@  `@@C@!!S@C@_NT?cNT$˥S@ _MTGCSH g@[@I@5~TD0[@ k@C@/B{@S@w@A9g@[@0 @k@C@/B{@S@w@A9g@W~9 @y y?T@9?q`T?AqAT  +@/@3@7@@@'@#@3@h,DCSW@/@g5k@ k@C@S@A9sk@C@S@W@ g+@/@@'@#@@%CSW@/@f5k@ Wk@C@S@A9G k@@/!$@5W@CW@g@S@ C@i@@#@#@@ CSk@k@C@S@A9 % @@@@@A9k@ ?qaT ?qaT@?qAT|9C9"cc@#'+Q/@3@7@;@7@DA9C@S@k@?yqAT@y 6!C9 @C9C@˥@S@A9k@?qT?qT F@@@@@CSk@]k@C@S@A9ҭ @@ @bC@˥@S@A9k@cK  @@@@A9k@a1C@@S@@#k@z?TT`kTk@%C9S@C@#c@'K@+/@3@7@;@7@ #C@S@k@U_N__N_, @!= /!!@5S@@S@!7_N__N__N__N__N__N__N__N_C@ TO,ɳ @! O@ /!!@5S@@S@_!7_N_k@C@9 k@ @@a_Tk@ k@@@T, @!!8{@ /!!@5w@@w@*!7_N_ @_N_oeG_k@CS@C@G@_@$ @@@@@_N_k@A9~QO> 2 @_T#7@3@"@9_qT;?C9_E_/@cc@! @@@@9 #@9qT C˄@_@T!hd8?qaT#/@ @@@@9C#@@9_qT;?C9_E_;?`!!@CG@C9_E_#@;?C9_E_;?C9_E_;?C9_E_;?C9_E_~ @C_I+T#W@? TS@d@9@qTd @9qAT S@ #W@_'T?c'T37 /BB~S@bC @@@ C@/@ -c@9`O@@!C9@O@!@,/@4W@3@!!7@bS@b/cc@5C@0C@[_ _I_,] @!67@ /!!@5S@@S@ !7cg_I_ cg_I_S@W@ @@@,0 @!6W@ /!!@5S@@S@ !7cg_I_ cg_I_S@?cT ˄dO@@y@ O@W@S@` y9+ @@@@@ qTqTqAT+@@y qTTqT@y{+@@qT@y@+@@qT@y{+@@qT@y}+@@W@S@/q`T"q+@@A9@y W@S@ @yT'?yO@C9?@'@@yO@y[_ _I_W@S@ cg_I_ ?T;, @A!;@ /!!@5S@@S@ !7cg_I__m~kY 6 @_ T#+@'@c9_D_T#hb8qjTB  J#@+@'@|qTdџ$qTdџdqITcdqTc9_D_@c9_D_ @_ T#@ @d@9qTqhTTqTd@9q#TqT#c9_B_ #c9_B_˄@cd@9qcTqT$?#T&Hha8?T һT#'+@c9_B_  @_T#@@C@9@C9_C_ @_T#7@C@9qITqT;@d@9q(T qTqTҷ`@a@?T(qqTҠq@Tq T q T;@a@d@?TA@E@?TkTd@yE@ykT~D9D@A@E@?TA@y #Ky@@@7@@AD/@f5C;@@@ T+@y #Ky@@@7@@A/@`5CC+@@qT;@d@9 qTD@E@F@a@g@?Ta@y #Ky@@@7@@A/@`5CB@@A@D@e@f@c@  @#@'@7@@A/@`5CB_F_@9a@d@jTTx(q T?Tx(qKT  @_T#/@@@? T ?Tx`@9q T&ѣxfg@9 qTh@TqTq`TqT ?)Tx` @9? qT @_T?qT?q`T?qT?k"T/!'@g5x A# #@9 /@#@/BB@5 +"(" @@_C T @9_E_?T ѣx`&?iTxf@9qT? T" ? Txb;@@/@@@@@?T / @i5x&@@?)T @a5x @9_E_9_E_%#!- W @_IT#@#@HC@9 @ @@a_T@{@@@? T$Cxd$? TAxd$@9qT$@yy$,@$9@$$ $/@f5$" "@@d5C  _C_֠,֮ @~!(!@#@!@ /!!@a5@l!7#'_C_֠, @~!(!@#@!@ /!!@a5@O!7#'_C_ n q @_-T#?@?,T BB@;@bT 9 @@@@@qTqTq Tq TC@9qcTq(T@3qTqaT~GKOS_F_ @GKOS_F_qTqTqa TGKOS_F_@GKOS_F_q@Tq Tqa T! @@@@@%qTҫ?$qT?qhT\?qhTC @@@@@ѿ$qTѿqhT\ѿqhTC@7e6VGK _F_OS_F_OS_F_qT$qiTdq TdqTGK _F_`GKOS_F_ GKOS_F_OS_F_֠, @!|!7OS_F_?@A_#T+, @!=+@ /!!@5;@@;@5!7OS_F_w'@DG' - @@@@@q Tѿ$qTѿqhT\ѿqhT7GkMT'@`GGK _F_OS_F_c !˄@B TD@9qcTq TGK _F_@-   @_i T#7@3@"@9_pqaT/@ {#@@@#@GKOS_E_ @@@@GKOS_E_֠, @!!|?@ /!!@5;@@;@!7OS_E_  @_I T#?@@y06G@?TC@C@9pqT _ _G_@.@@!= @@@ @@ _ _G_?@K@ O@S@#'@+@/@W[_G@!!C@Acg_G_V  @C_IT#W@ TS@"@9_lqT"@9_qT o_I_cc# BB@ @ W@_# T;7@.`@B= S@uW@;@7@AS@a@@@ @@$,6 @!7@ /!!@5S@@S@ o!7{_I_?CO@[@ _@c@#'@+@/@gkoC@s?@w_I_ o_I_  q @_ T#7@@y7G@@;@?@ C@K@O@S@@#@'@O;@?@ C@K@O@S@g@#@'@> @(@ K@O@S@@#@'@7@@$A(@/!!@a5C P @@@G@;@?@ C@@#@'@;@?@ C@)@#@'@W[__F_R  @_5T#W@@y86_@?kT[@C@9pqTC@9Wq@T@qT w_J_ ccc @@@@@.qT_@A_/T?C/T BB[@B-[@_@ @%#_@_,TBBd[@? C+T7/C ;!!@!G @@@![@;@G@7@/@C@W@@q@@G@9xqT@7C/3 TG@y;ȍRk!TG@9qT-@>@T;GA.!!@c! @@?@. @!! G@;@@@7@/@C@[@3@?@.@.@!! G@;@@@ 7@/@C@[@3@?@.@@!! G@;@־@@7@/@C@[@3@?@ W@%@yE6bTc@g@ k@@@@Pc@g@ k@z@@@DK" @#(@ @@@ K@@@@W@@$A(@/!!@a5C  |@ @@3@Tc@g@ k@@#@'@c@g@ k@R@#@'@oswC@{/@_J_֠,0 @!7@ /!!@5[@@[@ w!7_J_ w_J_[@_@ s@@@", @!_@ /!!@5[@@[@ w!7_J_ w_J_ w_J_@ L @C_:T#w@?9T ?˄@Ss@W o@@P[@/ @ 5 ~ T?G0[@ w@?@w@S@s@W@o@/[@0 @w@?@w@S@s@W@o@/[~ 9@y y  @j5?[@@Thd8xqT ˄@@y7@ I@cC@ @ @@o@c@C@/[@  w@s@_?WOK@9uqAT"@q!T@y07T@9uqaTTmqT@9q!T +@/@3@7@@@#@'@3@?@W@_@o@K@O@ +@/@3@7@@@#@'@3@o@W@ ?@_@K@O@ +@/@@#@'@@o@W@ ?@s@w@@#@3'@+@'@e?T@9qaT@9tqTwo@ s@w@#@@3'@+@'@Ew_kT[?Wo@@y7_@K@ O@#'F@@@ _@K@ O@#'@@@?@W@;BB@ +@?@_#TS,z @!S@ /!!@5W@@W@!7_M__M_?@A_ TG,Q @!G@ /!!@5W@@W@!7_M__M__M__M_  ?!!@W@d50 @@@C@ @@@[@/!!@a5c@o@ 0W@{?@_M_@ $ @_ T#@ @@@@?T#_B_cjTTExf?TFx?)THx  kTkTFx'TEx$?TFx%T#_B_ h @_T#@y6/@3@ 7@s#'z@@@?CG_E_/@3@ 7@s#'@@@?CG_E_4 @_) T#;@7@䃀净T_TF_Tgx_Tix* k,T kTkJTdx& kMTex(7@GK?@O_F_@?@?bT @@#@!䃀净;@dx"bEGKO_F_  @_T#q Tᗀ{(R;r?kT?@C@ G@#'@@@OSW_G_ᗀ?q T{(R;rkTqTC@G@?@?@C@ G@#z'p@@@#䗀{(R;rk TK ( #'^@@@Kd($O?@C@ G@#'M@@@OSW_G_օOkTK #'4@3@/@+K g+@/@3@OSW_G_G #'@3@/@+G g+@/@3@KkAT6] @_ T#?@;@/@7@3@#`x #'#@@@@?@;@;@_TTgx_(TGKO_E_  @_ T#?@;@/@7@3@#`x #'#@@@@?@;@;@_TTgx_(TGKO_E_    @_iT#G@C@7@?@;@_MT Tgx_)Thx?kT+O #'q@@@+@G@C@O?kT #'^@@@OSW_F_   } @_T#S@@@?T3G@K@O@NK@O@G@@ @T3 W[__H_;@0/;@@@qTWS" #'@@@/@c3@TK #'KS@@@@;@3@/@W@kT7@S@3@/7G@yH@yI@yqTGC$ #'@@@/@c3@ TS@O #'OC @@@S@3@7@/@G?kTl @_IT#S@@@? T3G@K@O@[K@O@G@@ @T3?kT #'@@@W[__H_0/;@W@ @qaT(?kT #'m@@@;@3@/@W@S,T  ! ?k T*? k,TO #'O@@@;@3@/@W@S@OB/7H@yI@yJ@yG?qTI kT #'3@@@S@3@7@/@GC? T+ G _k TK k,TK #'@@@S@3@7@/@GCKk2Q @_ T#?@C@mTTexTfx_kTTbx!'Tex'!G@T_kT$bT_3B @@#@$3@_bx!bEKOS_G_       @_T#@A@B@@`?IT@c}Ch?IT}DhkmT@T?TCx?IT@xkয়9_B_   @@A _ @_IT#@C@A@@@?T@gx?T}hh?Tix?IT@}ahah%gx&hh ix$_B_֋     j @_)T#+@'@"@ %@R?kaTT@?bT",p @!?@ /!!@5@@@ !7/3_D__D_V  # @_)T#@#@ %@R?kATT,6 @!?#@ /!!@5@@@ K!737_C_#@_TKA@@+/_C_  #@9-B C@B@?cT_|ah``@ _ @_IT#c'@ {@@+/_D_ @_ T#7@C @A@D@* T  e@9q`TqT`@TP @q @!@?qTa @?T q9_F_ @a@9$ ф@ӟq@ӟqTd@e @aTe@%7`@@7@"@#@bTd #@'@;?q9_F_d @9q`TqT@T[ Y X W  < @_ T#@C @A@B@*TC dC d@9 qTq@T qTd@q`TqTc@T 9_B_9_B_    @_ T#@C @#9_C_ @_T#@A @C@?T?T?`T? TCc"AC<?AT`C?k@TB@"6' 0c'C$'_C_`C?k T`?kT'_C_'_C_'_C_'_C_ c'CkT_kT'_C__-TE˥E?)T}ghk+T?)TfxkT'_C_'_C_֍  TTdx_kT?Tdx_kT@A'_C_'_C_'_C_l k  Pg @_T#@@@qTqT3(qaT@19_B_qT7(qaT@19_B_q T319_B_ q T@qAT3?dqT?dqT?$qhT@|q7"_dqT"_dqT"_$qhT@?|q 9_B_qAT3?dqT?dqT?$qhT@|q7"_dqT"_dqT"_$qhT@?|q @9_B_719_B_*  ? w @_IT#c'@ /@@+/_D_ @C_ T#W@TO@S@ _I_C@@$@%@  f@TB/@g5cU7Cf@3h @i@"T/+;5  @#@+@;@/@/?   3@O@`/@` /@5?@ab ?@$7@!W@lT*' ? ? @_IT#{@C@C) _cg@kw@ xw@K@ W@[w@ f3@C@{@TA@D@BT3S A E3@S@A K@@_ T@F w@@TX/ @i5  G+@ ) ? @@_ "T/;75 f@#@/@;@7@;O   s?@w@ ;@ /@5O@"" O@|3@K@+@G@{@ @T `-@@@d_N_*' f> I @_)BT~#@@9?qT?q T5@A 8D@@;@B@B .D@@BB $ @@;@"B @ ~@A D@@3@B@B D@@B~@3@"B @ ~r?qT? qT@A C@@/@B@B C@@BB<@/@"B~@ At 4-@# @2e@A C@@+@B@B C@@"B-~@+@#c@ 9?qHT?q T?qT@`@@# @@@ @@ Q @C@B5 BBBAGʡ@ G@@C@@9@99E@#@C 4@@"B4@c @@6  @# @@@@ C@@"B~@c @@ B@@BBt; @@c j 0~@# @[? qT?$qT?(qT@@ B@@bB~@c T$( @@_@@(@,/@a5C$D d$(@ _@C_x T%(@&$@T@ @ /@5@ "@@?9? B`%@` @$@$/Є@d5 *B` @ /@5@ "`@ `B`[3A@@ ?_@;1T3@@[@@ @?@_;@7W@*|` 3@@[@ ?@_;@W7@@@ @ @@@?)*T?C#@;Td@C9c@9;@W7@@C@@?@_(@lT3@ @[@ ?C@9;@W7@@C@@?@_҇3@@[@ ?c@9@(@3@C@[@@W `?@;_3@C@[@W@ `?W@73@C@[@W@ `?@@t@;@W_W@7@_@>`_@(@@CW$@@cT@Sc@ +@#@@c@S@Sc  }8_@qc@W@S@_@C__@d_@C_ @*@)@ T;WS[S0#@;T@?#C9?qTO? qT?q T@$@(@? *TDy)#@@_@O@S@S[W@;@? q T@C9c@9 @_@?@O@S@S[W@;@?qhT?q`T#4@ T[S@S;@W@@_@?@?!q!Ts@o@) T%kT8?%qT?)qAT(qTa|@*%_1TKG3@@[@ ?@S;@G@K@@_@?@~@?qT$@(@T_(@$@? TD@20.,*(*` $@    @C_T#@@/!@!@Bs@@@o@@@o@H@T @SOc@Ts @9s@ s@h/!!@5w@l`w@F9t@B`%{@a @X@\/@d5T0B` @d/!!@5@`@B`G[W@ [@G@ W@@ @9[@L@O@#KH@S@cTc@_Sc@ @#@O@_@S@cS  }o@[@ c@K@S@_M_o@[@ _M_{@ @@@@#'+/X3@7@;@_M_ w@{@@@#@'@+/37;@?@C@_M__M_ @_ T#7@A@C@@ @?Td @9 qAT@6@Te  q9_F_֦e @9qT@TX c@q @f@qT @Tq9_F_ֆe  @@9 @qg@qT@ @AT@7X@@7@"@#@T qT@6A@B@@BT@ @9qaT@#@'@;?9_F_OLJHG ,s @_T#@9C4@`@A@B@?iT@x`K_C_@@9?qT@K_C_K_C_  @_ ET#{?T_9{@@w@C@@7@7C?73&@S 3@G @[9@0k[gc#_@_9;?@w@C@{@7@T3@ 3T3@ T;@ T&@'@9TxW@S@8TykT@L%@&@6Tx 6TW@S@[@x? T_[ (@@#@[S?@w@C@{@[_Wy% 7@7;@;K@G@O@BT3 @@#@OG?@w@C@{@K@x$@[9+ T;@ Tf@g@+TxW@S@*TykT@Ld@f@I)Txi(TW@S@[@x? T_[ dž@@#@[S?@w@C@{@[_Wy$ 3@3;@;K@G@O@BT3 @@#@OG?@w@C@{@K@x$@[9@f@g@Tx)@*@?TKyk T;@mTW@S@ "TDykT@GTW@S@[@x? T_[ e@@#@[S?@w@C@{@[_Wx%3@3;@;K@G@O@BT3 A@@#@OG?@w@C@{@K@x$@[9@U;@mTW@S@Tx kT@G?)TW@S@[@DyT_[ @@#@[S?@w@C@{@[_Wx%7@7;@;K@G@O@BT3 @@#@OG?@w@C@{@K@x$@[9[A9-@-BC@D@@B@@_9c@_@g@ V_N_S@G@K@W@O@[@_9c@_@g@ ?_N_    *`  9_N_ @_T#@@9`@_/@a5_ҍ@_@`5_҅_A_ @_T#c@@@T_@_K_ք@;TA9qhTqiT@@ T|/ @i5FMBqT/=(q(T@@T|/ @i56 @;T@@"T@5@;T`" Ě@@@_@//TJIH - @_)T~#@@bB" c@'!= @@ @A @A@AA/!#@5'@C'@@@TuC@ TA@D@ Tzӆhf8qT@ T@;T B94qTA@G@@B T@;TB9e4qTA@E@@T@;TA94q@TA@E@@bT @k`T@kTT@@@kaT@_@_C@;TC@;TE@F@T%@5@;T#`" ޙ@/!@@#@TZf K" @_ @_T#@#@?T@Cx'@? T@xkןC9_B_ED ) @_T#@#@?T@Cx'@?TAxAx Cx$_B_%$   @_iT~#@@*T' !3 <@3!3'@ 3@   k3@S'@W[_cg@@'!3 @3!3'@ @O3@7'@;?CGK+@@! @ !oswC{@c+ k@B @ W@S@kT*Tk3 T*b TC|~ӟh#c@_@@" Tx%@B@@#!: @/#@_@_#@/@@@kT O c@_@@"Tbxe+@C@ `?@9@@3@@@_@_ T"T@@@˨ @ @ @T /@h5@=<9630  @_멪T~#D@@E@A@F @G@H@@@KA TD}z+@@_ kT ¦TN}~Ӯin0@kT@ @BTzn_k`T_ k@9_@__ k BT TN}~Ӯin0@kBT@ @낡Tzn_kT_ k_ k T0@ TL}~Ӯi,@ @0@ 뢞Ty.0@J0[kKgW&id8q(TqHTq(T@@@a@ @ @@?@9`@@@@k@"@ @ @@?@9k@C@@?ɗT@hd8F@?ɖThg8:FCd[@?T@h#8W@@@h$8[@D@K@Tg@ G@To9  _@@#@@@'@[@K@BTg@ d/@g5k@@d5 ?T`@1aToA9 qa T@@@a@ @ @@?@9k@"@@IT@hb8[@ITh%8"@K@_BTo9Bg@ F@B@Wg/ `/  @#@W@@S @~[@K@BTg@" W@@S@Aa/!$@5@C@!3A[ @[@k@  b/BB@b5#"@?yTq@Ah 8@uqH!Tqa T@@@a@ @ @@?@9k@"@@)vT@hb8[@)uTh%8"@K@_"tTo9Bg@ F@B@Wg/ `/  %@#@W@@S @~4[@K@"oTg@" W@@S@Aa/!$@5@C@8!3A[ @[@k@  b/BB@b5#""D@gT@h 8f@Tf@@@kITeTLyl0@ kBT@ @ BdTylkTkk T0@bbTMy,@ @0@BaTFy,0@0ef @a@k@" @#@_T$@6akB @_@S#@Ck d>S@C@_@?b! @#@?@@C_ A~?@_@C@KIT _`/@5a/! Ac/c | @k@@a@a/!!@a5@@l@j q T@_CT@_h 8b@_L Tb@@@kITATxh0@ kBT@ @ "@TyhkTkk T0@B>Tx(@ @0@"=Tx(0@B0b @B6b @c @_;T`g!b/B   @c@S#@Gg =S@G@c@b @c @_0T`o!a/!  @@#@o!1@$q@T(qT@_$T@_h 8b@_Tb@@@kIT"Txf0@kBT@ @b!T&yfkTkk T0@Tx&@ @0@bTx&0@B0-BC@Wd/ `/  @#@-BS{@@A@ ~[@K@"Tg@" W@@S@Aa/!$@5{@C{@!3A[ @[@k@  b/BB@b5#"Ҕ@|@z@_)T@_h 8b@_mT@pb@@@kITTxf0@kBT@ @ T&yfkTkk T0@ Tx&@ @0@ Tx&0@B0-BC@Wd/ `/  @#@-BSw@@A@ ~*[@K@BTg@" W@@S@@`/@5w@Aw@.{ @k@@a@a/!!@a5@9_@_XUROLJx"B_T#@$@%@_T@;:741.,[@K@BTg@ ˁe/Х@f53 A[ E~@[@k@  b/BB@b5#"x"B_T#@$@%@_TW@ @@bh!8@c;Gax ` 5<;@G@c@;g?kT_T_! U~@@#@;@_Os o@!@ ;@s@O@ [@K@BTg@ ˀe/Х@f5N!3A[ }@[@k@  b/BB@b5#@8x"B_T#@$@%@_TW@ @@bh!8@ gd_?Cax ` ;?@C@_@?k?kT_Tc! }@@#@?@cOo So@!@ ?@o@O@ . +  ( %#x"B_T#@$@%@_ToA9  x"B_T#@$@%@_ToA9      @_ T#/@@ @@A@C@?i Td @9 qT@d6 3_E_3_E_cd@;TD@E@'@"T @9@9qTq T+@bT @9qT qTqT+@7 qT?T 3_E_3_E_6 @W @/@ @3_E_3_E_`]\ A@@@ _ @_)T#?Vy@9 @`/@5b@;T? @#_C_@@ `9_ց @_)T#W@[@ sAy3y@@@@#?{ @'?@ @G@3@/?@ @? @@@@#C@+# @KC@C@99?@ @7!?x @[@@+@ a/!#@5W@DC@DK@E W@D@C@`K@~'@E/@E3@E %@5G@CEG@m;A9C$9B9C`9@@7@@H@ @  @@@9'@;@(`/@e5$ P 9tC@ @@@9;@@(`/@d5C$D 9A 9C@d@T n ĚDD$@E(@ @@@;@@0A4`/@`5C,@`@$@A(@ ;@ pC@c@cgk_J_cgk_J_T$+x`e T@<c _J_֡/   @C_IT#o@@<@T-! l0 @@B=T`"x @;9d/Є@5o@%o@@@f5#" +"P@@@_T #{@o@@@+@ALAPa/!$@d5CHD@C8@3D<@#z<@T"+B@x``@@@" @m T!3 z@/A!  @z@ /@O@SW[_c+@@b/BC@5c@;T @' c@3 z@/A!  @z@/@7@;?CGK+@a/!!@5C@;T @' ؐ+@s_M_֡d@+@3@#@JTaxe'@@Є z@o@@@'@AA a/!$@d5CB d/Єh= " @_ T##@[9d/@e5_| E  ET@_| @d5_T!DEh@_h@d5_lD` _d@d5_`D@`<@T-! `= /_C_֡  @_ T#/@C@94qT qT@@A@҅cc@qT4qTJ@3_E_֟DqTHqT@@#A@fLqTA@C@?I T`@ @/@"@#@! @_T!!!}aB5<qTA@B@? T@@ @3_E_֟DqTA@C@? T`@/@$@ @|3_E_3_E_xv xc @@?@#@@KT3_E_@x^xby@ @@#@@_kT3_E_B_Txd6qlT@qlT҅˿qhTRklT@klT~3_E_ C @C_T#O@S@ 3yk9@@@W_I_7?O@S@ /@C@;7@B @?@@? @@"B6 |C@;@B@#'6+@/@ j@!*   @_T#7@;@ c@9t @7@;@#@'@?C_F_ ՠ5 ;@!A!A+x@ +@7@;@@9x@#@ H@@?C_F_s@@ _@@@ @ _ց @_T#7@ /@"@!@_T;_E_!@$@%@T#3@ H@9 7@#@@@c_T@;_E_2 @_T#@A@B@#@jTTCh`8qTK@+_C_!@ @K+_C_K+_C_ @C9_ @_T#@@@#@C(@B$@mT H@9#9_C_ @_T#'@A@B@/@HT!@+@C$@B(@ @3_D_  @_ T#+@'@C@D@iTaha8?q+T -+@'@C@B@Tdh`8qT7A` 97 |@* /_D_ @_T#'@A@C@B@+@TBTdh`8qT[@3_D_Bc z#@[3_D_[3_D_d I@C9_ @_T#@@@#@C0@B,@mT G@9#9_C_% @_IT#/@A@C@B@7@TBc3@,@0@4@ @;_E_-  @_T#+@'@C@D@E@Taha8?qKT #+@'@C@D@B@"Teh`8qT7Ab #7 |@* /_D_ @_T#'@@@9 @+@_T@@! @ ?@@B@'@ @9[3_D_'@C @cC [3_D_[3_D_C9_c9___@$@(@ B9 9_ց @C_T#O@S@ W@;@9_I_U @C_ T#O@S@W@#7;@9_I_4 @C_)T#O@S@W@[@7p;@9_I_ @_T#c@g@ B @T@W@@!!W@B@7;c@?g@C[@G_@K#++@'@ @@ko_J_ @_T#@ @A@B@C@D@W@ [@_@'+/c@3g@7k@;?@C@G@osw_J_ @_T#3 3S@7W@;G@K@O@#'@+@ J@@[__H_u @_ T#@ @A@K@C3O@cTG@+75G@ u@#@K@+@7@;/ ;@_3@c/@g_H_ @C_T#7[@;S@?W@CO@#h+@'@ @@_c_I_  @_ T#B@C @Z@O@?ITK@@?T@?T?TB@!` @?@C@"+@G@cT?@'35?@ vu@#@3@'@C@'/ /@W+@['@__G_@  @C_i-TC~#@@!@oB;q@@@#S@o@o @ @@S@o@@k@W@@O@@W TsK[O@@@#'+/37;@C@?@_cw@C@@"TO@("TW@k i [@_cTs@g5s@ t@#@g@ W@@g` g@k@@1@@TO@HTW@k@I [@cTs@g{5s@ t@#@g@ W@{@g g@k@@_@iTw@@O@kT@@E@ c@?@#@'@w@kW@O@%@K@T@ @@K@T@A u@K@w@@jT0BT+@@@[@W@s@O@? c T! o@c CTk5 =t@#@@k@W@[s" Mo@[@s@%_ CT@ oB@BTk{5 t@#@k@{@W@s[! (o@[@s@_@C_  @ln{p E @_ T#w@{@ @9D@g@@!!g@  [B2;?w@C{@G@KOk@So@Ws@[ #S'@+@/@_L_ @_T#@@A @B@C@D@E#@F@@@TO[WKS @@[@@`/@`5CS@K@O@W@@@g@ k@o@#'s@3w@7{@;?@C@G@_L_ @C_T#:7_@;c@?g@CO@S@ W@[@#'@+@/@kos_I_ @_ T#@ @A@K@C3O@cTG@+75G@ s@#@K@+@7@;/ ;@_3@c/@g_H_, @C_T#C@3_@7S@;W@?[@CO@ #u'@+@/@cgk_I_ @_ T#B@C @Z@O@?TK@@?T@?HT?TD@Bc ?@C@"/@G@cT?@+35?@ r@#@3@+@C@+3 3@W/@[+@__G_@ !!"h`8CDc@@ Ú0B @E/hb8h"88T_ @_T#@@@#[@@@@ @@@@@[@@@    T? TWGK@c@#'+7;@;@C@?@ T$@K@`T@7OsoS$@k@F@[@#T Tˡ q@@[@C T Tˡ@A @K@[@$ĀG@k@?s@S@O@o@&@gc@@kW@_O_@C@ `?W@c@g@}(x#Tg_"T_ q@@#@@_@c@k@g@"@ 6 @_T#W@[@_@c@'+#/37;@?@;@? T@?iT@c@T_#T@ˁ[@Agko_J_ o_J_@Ҹ  @C_)T#O@S@W@[@'+7C@;@;@A_T_cg_I_ g_I_ k @_iT#W@[@_@#'+#/37;@?@;@?T@? T@_@_cT?T a[@Acg_J_ _J_aP@FD ) @C_ T#O@S@W@#'+7cC@;@;@A_T[_c_I_ c_I_#  @C_T#O@S@ W@+74C@;@;@A_T[_c_I_ c_I_  @C_T#  o@@!@s@w@{@'+/3~7?@;@;@Oco@@a! K o@K@{@s@O@c@_M_*TTӉT|ӨhhiTxg_TT '' gH/ @j5' :  H/_M_if K @_T#cw@ {@@@g@k@ o@s@@@#@'@3@7@;9?@C@G@_L_ @_T#W@[@ _@c@g@k@'o@+s@/w@3{@7@; ?@C@G@_J_ @_DT#@@@@{@kGC#T?g B @@!C@_c@T7G@#;?@cTg@!5g@ To@#@G@7@Gck@ bC@7@C!k@!_mT"@9_qT;@CG@cTc@5c@ (o@@#@C@_@;@Ҧh"8BBA @@@@@A9K+Cd@mT3TC|@hc @B2Txd@1T1T;@ C cCG@_ cTc@G[5c@ n@#@[@;@G@Gc` G@C@c@1I+Txd@c*T)T;@ Cc@CG@ cTc@GW5c@ n@#@W@;@G@Gc G@C@c@@@+@K@f@G@;@c@aw@@@ T/CO@@];@G@c@L;@CG@TC@?c@5c@ nn@@#@C@?;@Ҧh"8T BB@_@AC@k@?@G@g@e;_T5 Ln@#@C@k@G@Gg \g@;@G@_N_@@@K@@ @@ `T 3S 0>@9+@3@O@/@w@C@S@@@K@jJK? T?TJ| ij? J ,Tm@B Tyk@#T Tc ;@C  JJ G@cTc@G[5c@ m@#@G@;@[@cG C@G@c@1Tyk@T CTc ;@CJ@j G@cTc@GW5c@ m@#@G@;@W@cG C@G@c@w@@@K@+@G@;@c@Z          @_IT#;@T7@@9q!T@9qTcc7'+G 9_F_#@ +@'@7@TT#a 33@qHT@D++hc8c{kq A-! "@)c@93q@D++c TqTqǟ A-!"@)c@93@D++c@ң|q`T'@#@_+@7@ TqTTh`8_qaT ?CG 9_F_ G 9_F_!?Tha8qTqT һ+TIT@9qTMT_T?CG`A!KO@9_F_1) 9 @_T#W@@!@[@_@c@'+71;@?@C@;@W@c@cK gko_J_x!?T$_"TGc Yl@@#@$G@K@ @C_)T#  o@@!@s@w@#'+/3~7?@;@;@cOo@@!*K k@K@w@O@s@c@_M_TMT)T|өhh Txg_cT T  G'I/)+@k5h( ! I/){_M_ n\QN 3 @_iT#W@@!@[@_@#'+7n;@?@C@;@W@c@cK cgk_J_x!?T$_"TGc k@@#@$G@K@ @_IT#W@@!@[@ _@+7#;@?@C@;@W@c@cK cgk_J_x!?T$_"TGc Kk@@#@$G@K@ @C_IT#'C@;3#7S@;W@?[@CO@_@#'@+@/@cgk_I_n @_i T#C@D @E@;@&+3`  Aj@;@_@@@/@a5C+@3@K@?TG@@?T@_HT_T@@@(I T/7`  j@@#@;@AA/!$@d5C/@7@   II@/@`5C_H_MD@  @_T#3@+/G@K@O@S@W@? C#.3@7@;@[_c_H_ @_ T#@@+@@? Aj@+@_@@@/@a5C?@_cT@@@&"T@? =j@@#@+@AA/!$@d5Ce?@% ˀ A/!!@57@7@P_F_ T @C_T#+7C;S@?W@CO@ [@#+@/@3@_cg_I_E @_) T#B@D @E@;@&3+* Awi@;@_@@@/@a5C+@3@;@K@?ITG@@?T@?T?T@@@! T/7* i@@#@;@AA/!$@d5C/@7@A@/@5|h _H_ @  @_T#3+/G@K@ O@S@? C#3@7@;@W[__H_ @_ T#@@+@@? Ah@+@_@@@/@a5C[?@_cT@@@&"T@? i@@#@+@AA/!$@d5C=?@% ˀ A/!!@57@7@(_F_w , @C_IT#'C 3#7S@;W@?[@CO@_@#y'@+@/@cgk_I_ @_T#@@+A @3B@;C@@ AOh@;@_@@@/@a5C` K@A/ :h@+@3@K@G@B T_ T|Ӈhg_ Txf Tc Th  &G/@i5  G/;@@$@@BT7@ Mh@@#@;@AA/!$@d5Cu7@$ ˢ /@@@@/@`5Cc_H_ ]d @_T#3@-+/G@K@O@S@W@? C#3@7@;@[_c_H_O @_ T#@@+@@? Ag@+@_@@@/@a5C@$@@T@? g@@#@+@AA/!$@d5C$ ˢ ;@@?@@@/@57@@7@_F_ @C_T#+57C;S@?W@CO@ [@#,+@/@3@_cg_I_ @_iT#@@+A @3B@;C@`9 Af@;@_@@@/@a5C{*K@A/ f@+@K@3@G@AT? T|ӈhg? Txf T# Ti&FH/ @j5fh' I H/;@@$@@BT7`9 f@@#@;@AA/!$@d5C'7@$ ˢ /@@@@/@`5C_H_kXNL h @_T#3+/G@K@ O@S@? C#c3@7@;@W[__H_ @_ T#@@+@@? A;f@+@_@@@/@a5C@$@@T@? tf@@#@+@AA/!$@d5C$ ˢ ;@@?@@@/@57@@7@_F_ @_T#k@_@"@_ Tg@b @o@sw_K_g@c@ @3@GB* e@3@?mTc@g@k@G@ C w_K_g@@TTf˄c@?T/CSB* e@@#@&/@S@C@EE/@5b|h"osw_K_c`  @@T? T T@ T@_C T_T+   J ? TCO7?;SKB* e@@#@+3@c@k@O@C@7@?@S@K@;@g@ M/@5)| h)   M/ @T    r @   @9c9x@9c9@9̿@9 @@@C@?kTA@@c9_c9_ @_iT#@@#@C@@E@aT z:@9@@@9#@C@@9!!@ @A @?#9_C_q @@@C@?kTA@9@9!!@A@@c9_c9_ @_T#с@@@_A_֜P E"@c!T#$ @_T#с@A@bA@B@@TCx@T@xkן9_B_98sP "@T#$ @_T#с@A@bC@A@@Tbx@Taxax bx$_B_ GP "@T#$ @_AT#7@CDDDTcCC@;@?@_F_7@T'+# Ն@9ߌqaTGDg86 2@#@?T'@B#+@@D@_F_TTh`8q TT8Th`8q`TqAT @9@@T#@?#6T'@#+@7@'@+@#@FDh6@9ߔqAT @9b@T#@?C2T'@#+@7@'@+@#@*Th`8(qTqT$qTTB.T(qATMT(-Tfˣq@9$qaT@TqT@9q!T@9qT @9qaT~LT@D@6 @9T@T#@?c'T'@#+@C7@'@+@#@ @9#@+@27@ ,#@+@ G@#@?#T'@#+@B_T#hb8(qaT_(T'@F TjTCh`8q TTTCh`8qAT? TTDhc8qTT7@dD6 '@ @T#@?T'@#+@#@+@7@7@ '@ @#@?#T'@#+@T TDh`8q T$kTTDh`8qTq`Tq!T?ITDhd8qT$q`TT '@@#@?T'@#+@ '@@T7@D6#@?T+@C@9qTC@9q`T$qaTK1+@.7@+@ #@'@@@#@?#T'@#+@NL+@ #@'@4@#@?#T'@#+@97MT '@@#@?#T'@#+@" cTDhc8q`Tc   Խ @_T#@a9a Հ:^ @#@@9@ ;@+@/@!/!!@5'@'@}3_C_4D8DT#@ ?9!/!$@504!i!g@!9 @_"T#_@[@TTh`8q T TiTh`8q@T TTh`8(qAT73W@Df`6 T  Thi8_qT f6 T  I Thi8_qT_T#Dp6c@c T_T/aA p@@ @@/@7@3@[@W@#@c@T_hTK+ aC;@+@,!/!!@5K@(@K@7@$#@g_J_$ J k + Thk8qqT  B_T) Thb8qTG Thg8qATGTiThg8q!TTMTc@T@#T/'! tp@@_@[@/@3@GT_Tfhe8߀qT'@(W@3@7@[@ p @_ T#@? T@C@9qaT@)qaT@'_B_?TCh`8q`T ?TiTCh`8q@T?-TT(qT'_B_'_B_ON?TCh`8q`T ?TiTCh`8q@T?-TT(qT@'_B_'_B_0/-  @C_T#w@?Ts@@9_qTBC@9 9 {@ @#'@+@/@?TG[Km_M_?h Tcd@99 @#@W'@B B@y@3x?jT_O r0@9W@?_@O@"TBBc"! $@y!@9Sx9!!@99 @@#'+P/@3@7@o@ @@$@9W@_M_`@@ @99jTSc @0@9G@K@[@S@c@?lTzp UD @C_ "T#W@? TS@@9qAT[@b˄@%c_I_Thf8@%q)T@eqT@dq)THT n@C@'-BB@Cc qq@9C@'@@_ AT#@y;͍Rk`T_ $@9qT_ TRkT#@9qT'CW@S@@2O@S@ W@[@B99@TO@S@ W@[@B997@Tc_I_c_I_c_I_c_I_W@S@+@C@'@TZFm Tc T+O@ [@`@TLB9ac_I_TIThe8(qT[@_CT/O@ @@@@ !/!"@b5F!@a5>/@{T)Th`8qT)The8߼qaT+@W@S@@x][iW < @_IT#7@?T3@%3@d@9qATd@9qTd@9qTd @9q`T? Tdhd8qATdhd8qTdh`8qaT?mT? T;@E˅e&f*Th`8)qTqT%qTTbT(qATTA9 C_E_C_E_T?)Tfhe8(qT_CT#/@ @@@@ !/!"@b5!@a5҃#@ i @_)T#7@? T3@d@9qTd@9q`T qaTd@9q`THqTd @9q TqTqTC_E_@ C_E_C_E_?Tdh`8qT(qT??mT TqT%;@F˄daTC_E_*Thf8)qTqT%qTTT(qAT TA9`C_E_T?)Tfhe8(qT_CT#/@ N@@@@ !/!"@b5!@a5#@, Z @_T#_@aT[@"@yMR_kTo_J_[@cBP 0 @l#@'@ l@@g@_T+c@ w-@9k@+@Ddc@g@&fo_J_*Th`8)qTqT%qTTT(qAT@?mTW@cD07TB!a o_J_o_J_o_J_֡o_J_ o_J_c*TDhc8(qTqT$qTTT(qATcur W^ @_IT#@@ T_iTdh`8q T_Tah`8?q T?qT?|qT#9_B__Teh`8(q`T?kaTqT#9_B_֟ ෟ#9_B_31  @_'T#3@/@T Th`8q TT %Th`8qTqTG _E_G _E_!Th`8k@T? T7@_!Tc TCcˣ !k@#@C@_`T@ ?@ v,@9@@#@G _E_;@ 3@/@@'@G _E_3@`TTT/@chb8(qTG _E_BGKO_E_GKO_E_ The8߀q`TmTTqTHTGKO_E_G _E_MThe8)qT5qT1q`T-qT7@?cTT  k@@ ,@@;@@ /@`5C#@@@j _TI The8?qT?)qTTTqTG _E_MTThf8qT%qT)qT5q@T1qT-qTMTThh8qT%qT)q`T5q T1qT-qT mTThe8q@T Ѷ @_ T# @@ @#@'@@@T_O_3/S  s[@_@ j@@@ AC9q3@@? T?@C;@W& S@/@h@@?@@B?TcD9@T_HT7W@ ;@@@7@cD9?@BcD9g@c@k@o@T?@  c s@@`93@!`?@_O_e?Tdh`8(qaT_O_WLS  S @_iT#;@?IT7@@9_pqaT`7W @;@?T7@!@99C@GK_F_ i@@ {@@ j@@@CGK_F_@ ݵ @C_T#р-@@ O@S@W@7;@-`@O@ S@W@i@@#@[_c_I_O@[S@_W@c_I_ @_)T#G@`B9@@@ !/!$@d5XVU@@@ A9 +G@@@@@H T? T+;73/ @X@@#@ @@@G@@TAX/@+@7@;@3@%/@f5CPF!A@ @`5D@!/!!@a5_H_PF  @_iT#G@a ;@7G@K@ O@S@@@#@@+3/;G@  O@K@+@ZG@97@#@$/@e50!  @ #@@e5   @#@@e5@ @ #@@e5   @#@@e5 `@5??|" ҅""W_H_+G@f& C;@/@3@9O@K@+@MTdT)T$hb8(qATBS@T_"TW_H_ֿqBmT T%hb8(qT| aH @_0T#O@K@@ Th`8(qTq!Tf? T-T+Th`8(qTS@*Ti)T7+@9'q_TG'Thg8q!T*W c_H_3`? dX@7@"O@ TI"TK@hb8qaTW[3@_c_H_ BTThb8q@T3@ TIThb8(qTq!T"Txe@x%B@[Y T Tq TBTxex%BT T T Thb8qaTn?l T(q TT;/G@ G@K@ +@S@;@3@@9O@/@? TTK@!h`8?(qaTW;@[3@_c_H_W[_c_H_֨BTiThb8q TBTi Thb8q@TW[_c_H_W[_c_H_W[_c_H_W[_c_H_qHThh8qqTq6!T!BBTThb8߀q@T?,TTiThb8(q`TW[_c_H_PMHThh8qqT7`?<9641.,)&&Thf8pq Te7"!GThg8pqT7 B˥The8pqT"7! Ѳt @_IT#/@ 7@?IT3@d@9qaT҇C@#/@ ˦f@CB9@9@?@dxbB#@C@3@7@T?lT0;;@TT??@xc`-T/@ @CB9@9C@@_HT_E_?TITeh`8q@T? T)Tfh`8qT'6(qTT?MTiThhg8qTtiW?Thhh8qqTKJI?Tehe8pqT@7@q;9 Q @_ T#@'@?T#@C@c%e*Tfh`8(qTqT$qTT" T(qAT-T+@?-T T!BB @c9_B_c9_B_ TjTCh`8q TTbTCh`8qAT? TITDhc8qTa c9_B_jTCh`8(qTqT$qTTT(qTκ˺ { @C_T#O@@ @/CS@O@W@ˢB S@O@W@+@/@S@O@W@+@ T'p#@d/@S@O@W@'@mTT&hd8(qTCTf[@˨ r?TT ii8_qAT* TITij8߀qT*  +_mTE @9 /@S@O@W@+@[@'@C T)TT7@3@;@?@T#c !' /@@9O@9!/!!@a50!ѹ#@__I_& TT&hd8(qTFD6#[@ˆ f9@LT/@S@O@W@#@'@)? T?jT ii8_q T/@O@+@ ع չϹ̹  @_T#;O@K@O@K@'@ TTiT(qATS@_cTTE%g ҟTbT?)qATThe8$qaT@TqT@9q!T@9qT @9qaT~TT'T?TCC% C@C9" /@+@3@7@? T&˄ˤcTehd8(q@T#`T /79 93@/@7@c,T_T/C@C9/@+@3@7@TG@  Bd 3@`9g#@W_H_(`*  MTITh`8(qATO*Thh8 _)qT_qT_%qTX߸ į @_IT#@@ TTDh`8q TTITDh`8qcTq TTdT'_B_ TDh`8qTTAhd8?q`T?$qT'_B_'_B_ z @_ T#G@|G7@ @'G@4@97@C@;@?@ {G7@C@;@?@TCT#@˦f #@G@6'@_9'@#@c`G@d/6#@+7@9!/!!@5+@0!+@#@K_F_K  @_)T#/@T+@"@9_qT"@9_q`T_$qaTY+@_-T7@C@7@9_D_'@ 3@+@-T7@C@7@9_D_7@/@+@?T Tdh`8q T$kT?iTdh`8qTq`Tq!T?Tahd8?qT?$q`T-T@@@76@9_D_9_D_·BT#hb8q`TB@9@ @  @ _ @@_T_ @T@@  @@@T @T @_ihT~#@? gT@d@9$qaT~  T?IeTdh`8q TB?T_ Tdhb8q T$_kT?bTehb8qTq`Tq!TE? aTehe8qT$q`TEc?? _Tfhf8@ @k@?@@@c@F%?jTe@9qTe@9q`T$qaT@@6~ _@_@?TIVThhe8q@TT?Thhh8)qT@cSTRTG_9D S@@G@;7?-TG$@#NTMT  I)j    TBKT)qATkmT@ hb8?%qT@~  I CHT_C[9 O  S )[-o@D6Kk |#@'@K@_#K@k@Ws#@@;@[A97@_@@[@C@O@S@o@@o@ O@S@@@_@@W@s@[A97@ @@{@@Tc_w[@@ @@"@49_A999c@[@Dw@g_@/!@!677@?T?T@ I7@/@(T@[@c@Bg@` _@5^@ .W37@?T `:4N @~@9@ 2+@7@3@? T/@5g@g@/@?T@[@ c@c!A _@  `:N @~@9@ *@/@3@/!!@5g@g@;@_@_ٵֵݵ?T?)Thh8)qTk *T,ik8 )qTqT%qT)?*T* T? %T hj8_qT T Tio8q TpkT b"Tio8qTq`Tq!T Tip8qT&q`T WsT  @9`@ O@S@o@@ @ן@O@?T[@@o@\[@@dhb8q`To@ o@@9q`T$qaTKC@?@-T[A9@C@c}C@7@@@f @o@ O@S@@@9@C@c{C [A9@C@c}C@;@7@7AC9o@ O@S@j@@_@@W@s@7@T?iTbhb8_q`T@(@EDe86[A9`C@ T@d@{d;@7@s@@}?@7@TTh`8q TT" Th`8qT[A9C@T`AC9@@@}@[A9?@7@@@6_@c@T@ {?@@7@;@7@6?Thhf8)qaTT?)Thhf8)q Tgh`8qT?Tchf8qT{ҍTh`8q`T    z  woyg_T@@}@2B?Tehb8q`TBSQONL 1 @_iT#/@+@_D_! Tdha8q`Tehd8(qTTTfhe8߀qT3@_T#T'@~ @"b'_D_!  @C_QT#o@dDw}~'{@s@w@ '@{@s@o@w@ 3@3mTMT/GKc C',@TC@c@ c@ү?TBIT(qAT!?T3@To@ G@$@TC@c@3@o@D%06s@hc8q`T G@9*@ןc@3@o@s@C@as@BTK@hf8qTD'?86 G@ @9 )o@CD6c@ C@G@9@%To@CDC6C@?TK@s@c@ҵK@s@hd8q`Tc@ c@@9q`T$qaTҿҤX6c@C@( c@C@ G@A9@3@QC@3@dL+o@s@ 3@{@+@3@_M_ֿcT 3@_M_!?*TCha8(qTqT$qTH {@3@_M_{@/@_CT7o@s@ 3@s@/@<#o@CD6w@d3@TTs@h`8qAT/@T{@! `7@_M_s@s@3@ {@t#@3@_M_DzcTDhc8q`Tw@?T%џI TFhe8߀qTo@DFp6{@ T?c T/?c`@ <]@@ #@@s@/@w@o@3@?@{@T?T;_ dD!{@7@$;@,/!!@5_@(@_@w@s@3@?TCh`8(qaT_M_\RXN;Jo@s@ 3@{@3@_M_o@s@ 3@{@3@_M_T Tdh`8q T$kT" Tdh`8qTq`Tq!T? Tdhd8qT$q`Td@  G@@C@o@c@`s@ 3@{@3@_M_ TjTdh`8q TTBTdh`8qAT? T)Tehd8qTdK@s@h`8$qaT@?TqT`@9q!T`@9qT` @9qaT~@w@/@?cT{@B @_M_֦Th`8q`T@!?T?TGha8q T?TTGha8q Tqnj Ml @C_iT#O@S@@?-TC;7{9hb8qjTB  Z#@O@S@{A97@;@C@c?qHT@ +)+(ih8{kq- @ c@9cqO@S@?@{A97@;@C@c +)+h@T@(ih8~k- @n c@9O@S@?@{A97@;@C@c +)+9mTT@ wL@@#@O@S@?@7@cA9 +)+x$;7C  7@;@cTC@gBBC@ PL@@#@7@gx O@?@A9 +)+S@f ^\@@W[_I_H @_)T#O@S@m TDh`8e-Х- ˆ@@@3/+;' W@n@@9B9W@_ T'@ T7G@# @K@FˇO@ `?3@7@"B9'@3@TG@# @K@W@O@ @`?G@ @K@;@ +@/@ ?3@O@e-Х-S@mT+T?HTG@c @K@W@% `?_H_974* r @_ T#+@3@? T'@dh`8qAT9;_D_B?TITdhb8qTDHT-!$@Х- /@fF"\@@93@+@@'@dhb8ѥ@ӿ$q)Tѥ@ӿdqTѥ@ӿdq)TqTqT@@ٯ  @_T#?@ C@_Z@@ y@@ Z@@@7@;@ 9_F_w @_ T#s@C@A!?CJ@s@/5 @#!6G @/@5c@;T   c`/@!v?@@!@L!0 #@5H@P#@\ @@#@w_E_  @_ T#+@? T'@@9_qT?kT_q!T@9qT@9_D_?AT_q`T?@9_D_?B B@y3xkT @9'@+@BC@yB@9Sx9? +T @@99_D_@9_D_@9_D_@9_D_ۮ  @_T#W@P@B0 [@_@ \@@@9_@[@;3W@CP@0 [@@@93@;@3; + ;@A!*?C+@/j; @A!GK= z@@7@'W@CP@0 [@9;@ 3@ tX@@W@P@B0 ;@3@\@/@'@7@W@P@0 [@9W@P@!0 ;@3@\@;@c3@g_J_#f @_i T#G@C@c K@O@ S@@9G@O@?iTK@@9qTD@B@qT @X@@K@O@';C X;@ '@X@@ Y@@@W[__H_K@O@W[S@__H_ ɤ @_#T#o@s@ w@@9!k@(7c @*c @FI@@#@}C/@5ХEcj}k@06$_T/@* #I@@#@k@/@eFҦ/@5!|eh! c?/86_BT?@* H@@#@k@?@/e}@5|ӥХeh$ c`@6c@g@cT_@3/CA!*_@ H@@#@$/@C@/c@3@@ @5|1 h c0  c@g@_@A ?K; @@@  9@A!*OSd c@>@@;@"?@cTK@7G@*K@ oH@@#@7@;@G@/@5 |h {_K_{_K__@{c@g@_K_ @_T#'@@7` 7 +@/@ 3@@9@8@@y@9Sx9/@jT +@ @+@9@9_D_@9_D_h @_I T#W@@ S@ [@c@W@![@_# TS@ t9@!! 7;(` @<>@@K@"O@cTG@/3@*G@ G@@#@!3@/@K@/@5 |ӣh ޫ_cg_H_G@_K@cO@g_H_!  @_ T#3@ @7@;@ ?@C@ ?K@mT-,@@@3@d @7@ ?G@K@ O@@s@@ V3@ @@@@7@  ?-@@@3@c @7@ `?@/@ T_E_ @_ T#g@h@l@p@ z'@@c SV_@ c@U@?@'  8@A!*GKg@@W8 @A!OS. #g=@C@+ ?@'@ \8@A!*GKC@+@ R8@A!*OS`| #B=@@ dV@@@kos_K_) @_iT#7@X@?mT`- @C@ G@K@c;@ @#@'@+@?@ ? ;@ @?@C@ G@K@?G@7@ T_F_ @_T#'@D@P7-!&"@#@!@+@ /@-!&"@#@!@+@ /@_D_ @_)PT ~#3A`@,LT T)TH! TI9 'AT@? T-!("@#@!@+A /Al'A-!"@#@!@+A /A] -@@@'A+A /AM 'AT@?AT-!("@#@!@+A /A: @T-5@@@-5@@@i4@i6 -J)D@E@@ @ -J)G@H@F @i6 -)$@%@ @ -)'@(@& @I9k_f@B9-@@@'A+A /A'A+A /A5 'AT@? T-!("@#@$@+A /A'Ak@3A@_@ 'AT@T-(@@@+A /Ak@3A@_@'Ac@g@ ATc@cA9 T@mT-(@@@+A /Ak@@_@'A2T+A /A 'AT@?+T-!("@#@!@+A /AM 'A+A /A3A@!@? !T@ 'A"T@_mT-(@@@+A /Ae3A'A'A@B@b_T "T@_-T-(@@@+A /AJ3A'A@B9@!-@@@+A /A8 $T-'@@@-Є'@@@g4@g6-@@ @-@@ @g6-@@@-@@@I9d@dd@9@c@;TG9d@Ҥ 'AT@-TcW-(@@@+A /Ac@@W@3A'A'Ae@@fD@c<@c $'A@ @@@G@O 5@A!*@G@ O@6@!!   :@@ S@@@'A+A /A]+A /AS`@@aD@b<@  $@@@'AdD@ X6CK`@a @b@d@S#c 5@A!* @C@ K@5@!! @S@ 5@A!*`< #@r:@@ S@@@'A+A /A3'A@@@'A+A /A% 'AT@?T-!("@#@!@+A /A!T`@@"@_AT!A9a@4@~I9 `@`@?T?T4T 'AT@?T-!("@#@$@+A /A'A3A'A'Aa@!@?Ta@ T@? T-!("@#@!@+A /A'A-!*"@#@!@+A /Au-*@@@'A+A /A3A@!@? aT@ 'AT@?MT-!("@#@!@+A /AK'A(@b$@!?T-! "@-Є @&@@!@@?? ,T?T-!@ -)!"@@&@! @ @0-"@ -)""@@&@! @ @%?T-#@ -)#"@@&@ @! @?T-$@ -)$%@@'@$ @ @ -%@ -)%"@@&@ @! @I9?3dA9%@* @B@@#@C/cd@5@@CG_E_CG_E_ ֑ @_T#7@"?@T`?)T3@@h`8lqT/@ ;@@@CG_E_CG_E_Ś  @C_ITC~#Ad`9AMTA? TAhd8lqT AA$ T?)Thd8xqAT#'_@C_AAAdDP6&*T?iThf8xqaT$@?ITh`8߄qT@P6@?ɧTh`8xqT@$*T?Thd8xqaT?냤T!A_aT@@ TT¡Thg8_)qaT@ k7_mqaT_uqTLT TocC#'_@C_T"Thh8 qT%qT)qT5q@T1qT-qT*T뢘TqaT___T+ JTzThh8mqaT ? yThk8yq`T !___@TH[TZT!!! (YTXT@_[ "B:1 @@@9C@_ TAd$DG[@T@JT 5 4@[@  5| 4@|g@[@ _@y@g@?@@T =g@@@@1 @!!@!!@9 9G@B r@@ D@@$g_$T@${ 5@ 4@#@{@@kb$ @k@g@kgB>c1 @G@`9g@ak@a.!"@5@d@[@d_@d$@5@d @d b`@@@A$D D(D?T 4@@#@AA(.!$@d5C D!Ř@G@@$ '@g5y&b@f@g@h @i@c@C@.@G@`@ [@C@@A k @@9C@?` ATA$Dd.@5@e b@@$D D (D?BT A4@@#@AA(.!$@d5C D!fC@.@@$ @g5y&UA.@b@f@g@h @i@j@k@ @#'_@C_swOK?;Ga?TT)C $ @@@@?'TB!cs@.@K@O@@;@?@G@@w@@AC@@Ac@T#'_@C_c@c@73?`T HT  ::0 @A@9K@lO@pC@? @!.BC@5@h@@ʗ.B;@x?@|D@5@t@.BG@D@5@ @#'_@C_  :/ @a@93@l7@p.BC@5@h@@.B;@x?@|D@5@t@.Bc@o@TT  :/ @~@9c@!o@! !!@@C.!!@a5Z@ @@h  :/ @A@93@l7@p.BC@5@h@@8.B;@x?@|D@5@t@).Bs@TAd`9a 9c@o@?hT?T{9 B˄@@!{A9A 9  :[/ @~@9s@w@ .!!@5@@@ T@@#'_@C_@>5@:/5@2',!jTWh`8)qATѤhd8qT{C9ĤW@C@A@o@c@@C9W@C@A@o@c@@@@@@?#T)  k*Thk8uqaTT aTw9@e TC T@Q T Taˀ@!#'_@C_9 [A@@A , @@9A@@@ @@@A9$@(@,@@ AC@.#'_@C_   $@@xTSh`8)qaTѤhd8qT{C9S@C@A@o@c@wA9@C9S@C@A@o@c@wA9@@@@@?T!L 20T"Thh8?q@T?%qT?)qT?5qT?1q@T?-qT*TThh8_qqaT _q`T_qT_q`TTT_q`T_qT  l #'_@C_  mT ? I Thm8߁qT%qT)qT5q@T1qT-qT??Thi8q) ? Thm8q?T?T?HT - ))  T(T T a DҎ    AC@. $       _T"Thj8qqaTJ q`TJ_jTL#'_@C_֌џ TThl8q T%qT)qT5q`T1q T-qTThl8qTqT     j \ Z XVTRPNk ˌl`? Thl8qqT B@W=<;975 q @C_/TC~#@@?.T@BCO@g ? @@?@_TO@@hc8qTg@d@9qATd@9qTd @9qT<g@g@_DM$T; C@_%TG@!!@! w@s@{@@$˟mT ?!TO7Ko  :, @A@97@lK@O@cp@˄o@.@g5hn/[cG@!Tk , @a!8"@#@y!@9y97@"O_hT @!5 @0@#@7@Ko[@ $O@c@ lK@ p.@5o@"hk@o@-@7@/@[@.@s @99_$jT @97@?$@7@/@[@.c@E#Tc$˥;ҥB$&eХ8@@y@9x?9_jT' @@97@?@7@/@[@.c@ Tc˥@B3+_  :*, @~@9+@3@ .!!@5_@_@c@ #;@c@_@C_;@!  :, @A@9;@C@?(T .@5g@g@_@C__@C_ޓ @ ޓՓ Tehe8qATehe8qTehd8qaTjTҸȓ | @_) T#7@?@? T;@B3@ - T/@D`x6`@9(qT :+ @|@9CG_E_#,@@@d@9 9@  :+ @~@9@@! #@#.!!@a5CG_E_CG_E_CG_E_^ + @_) T#3@7@ `hb8/@C9#@3@7@T #T;@_TCT/@E&f p#@3@7@mTT _E_ TTeh`8pqAT ۉ @_)T#?@G@?T!C@B;@?Td@9qaT@ Tb Tdh`8ѥ@ӿ$q Tѥ@ӿdqTѥ@ӿdq TTB TqaTA!$@!@939'`T #+ I@9'@#@+@@ * @`9@@#+ :* @~@9@#@ .!!@5+@+@@'@KO_F_KO_F_xw [ @_IT#7@;@_#T@-@/@ K@@@""?T"B}B`hbA@?iT`@;@?9_E_@@>M "@ @T@@9_cTDhc8%hc8k T@ӟkT9_@9_ @_I T#7@d`9G@?@TKO_F_,,@@T'C@;@KO_F_+@aG@C@?@;@7@ 먰@@@_T(T#+A @9#@c'@ T7@;@ ?@C@G@@@KO_F_ӑɑ  @C_ 1T#w@s@@!T_.Tehd8qT_-T'@-@{@˅e D@@@s@@w@,/3K :) @A@9'@/@?TD3@ !K@.!!@a5_M_sd˟TT? $TEhe8@dqiTѥ@ӿdqTT?#"TC{@?ˆFO ; @9;@O@ _M__M_ Tdh`8qT$q`T(q T4qT0qT,q`TqT?ITehd8q`TqT? Tehe8pq@T?Tehd8qT?Tehe8pq@T+7 ?@@9+@;@O@;@O@7@?Tehd8q(TqaTAqTqaT tqaTa qaTa&@4C@s@w@@y  c?@h T+ vW@_@m T :( @A@9W@S@[@_@ TFlpˤ.Є@e5h@NW@S@[@_@TC?OG; :( @~@9?@;@!C@! AO@#.!!@a5&G@ +@G@_M_+@_M_nka kJK?kb? T ig8?)q@T_?=;975K1F+ s @_iT#,B6C@B@T+?@C@U,B6C@B@T+C@?@C9_G_B`E@F@?lT"'3/ G@@@@TC@? /@ @9C@@?+@?@'@3@The8@$qT@dq)Tѥ@ӿdqTT@C9_G_B`E@F@?jT'3# N@9C@#@?+@?@'@3@TThe8@$qT@dq)Tѥ@ӿdqTT@C9_G_@C9_G_ m` @_T#3@? T/@C@9qaTC@9qaT@?iTCh`8dф@ӟ$q)Tdф@ӟdqTcc@dq)T;?_E_;?_E_;?_E_?TCh`8dф@ӟ$q)Tdф@ӟdqTdф@ӟdq)TqTqTq`TT?TCh`8qAT7@d% @@3@/@ ;@?_E_-T?TCh`8qT@?T%?T#7@c! 9@@#@;?_E_#@;?_E_?T)TEh`8pqaTq`TߜqT߈q`T߀qT$q`T(qT4q`T0qT,q`T??? ? ?????TmT? TqT;?_E_ҡ;?_E_֢ @ @B? Thb8ѥ@ӿ$q)Tѥ@ӿdqTѥ@ӿdq)TqTф@ӟqITqaTc|q`T qTT@____ @_T#A9@@ҟTT`џTghg8pqTiTkTqTnlqaT'_B_TTeh`8k`TqTlqT'_B_'_B_֥MT Tghe8tqT kT TTghe8q@T(qT TTlq`Tq TlT'_B_֥'_B_֥ TiThhe8kT kT'_B_֟mT'_B_ۍ؍ՍҍT)Tghe8qT kTmTi'_B_ L @_T#?@?T;@C@9#B9kTC@9kT@;@#B9C@C@?TTeF& 9@ @@?@?T?T?T;@dhb8#B9kT7@??;@#B9Tdh`8k!T? Tdhd8q`T$q T(qT4qT0q`T,q T'#7@D?6aT@& Tfhb8qaT@$qaT@(qaT@4qaT@0qaT@,qaT@ #9C@9?@#@;@7@#B9'@&7@ :/% @+ @@97@ ;@'@C@#@K+@O_F_KO_F_KO_F_KO_F_ ҃= @_ T#7@;@3@A9;@3@_ T TaF 9e@@ @@7@?T? T3@dh`8A9kT?Tdhb8k!TTdhd8q`T$q T(qT4qT0q`T,q T3@A97:$7@q } @# @ 9/@ 3@@;@@C#@G_E_CG_E_CG_E_rq T @_T#O@W@?cT"/S@d+K@;B9 W@O@S@ /@+@;@K@B9 TT#d" 9@ #@/@?)T;@Ch`8B9kAT?TChc8qT$q@T(qT4qT0qT,q@T?MT?)TFhf8kT?ITChc8kT' :$ @3}@9 B:$ @7 @@93@  G@7@ ;@'@+@n'@ _3@c_H_?T TBh`8_kATW@@O@_C TG@+@BK@ 9@@_c_H_!_c_H_W@@O@_TG@+@BK@ 9@@_c_H_!_c_H__c_H__c_H_ ` @C_)T#O@@ @@S@W@ ?@@9 7@@ r6@C@3@/7@d@e @ e6@?@+@'7@d@c@ X6@;@#@c>J# @/@@3@@.@5C@AC@'@A+@A@5?@A A`?@֊__9@A(#@A,@5;@@$@ ;@Ŋ[@9_I_[9_I_S@W@ |O@ @! 98@@@9[9_I_ρr @_i T#@#@0D!%@@T `T T LTTaT@X T`TXT\\TP Ճ@9.@e50h .@5#@@ 0@#@X+_C_} @_T#3" @ '@ZxaC@`?@@+@_T%@.@5@# @"`&| ? 9 :v" @@`9.!"@5@,048 @`!! ! !!9 @ 5c cc` D(6 @`5@ @@5`8 |`! c`̉cȉ c ĉc c@cc`@ cD@ 6 @@5@0D( c@ @ @ D`P6%@@ !.!!@a5 !3_D_. @C_)TC~##p(`*@;TO@[a!! @k!&!.!!@5[@@[@N`! @!%!k@sw@S?T`3 $@#@S@_@S@ TWca!3A!!|a @;c@S@ W@@_@ @@@g!?U!_@@ @o@!@c g@ ?#{_@o@g@ _@@@! @ o@g@ ?o@@@@ @TcB _@C_ B @_ T#@@@B @@!@ '@CA99 ?@/_D_@@@ _ց @_iT#C @@@@ .@`5#" _A_ @_T#'@+@ /@3@'@0D #@?9.!$@d50![!@+,D ,'@9'@,D7_D_q @_T#@@'@"@_T_`T_PT"@#@$@ '@.!!@a5/_D_# @_iT#G@DP6$DA!3,D.!$@d50 U@+@@9@4|_H_@aB{+@G@d De$D?*T#xa' @ ;'@ @#@C@#4@@@$@%D.@e5#<%LJ@9 @@@G@ #@} @@@G@ z#@@/8.@5/@G@ 03@/@G@67;+@ n_H_~x @_iT#@@'@"@_`T_T"@#@$@ >'@.!!@a5g/_D_m~ @_,T#@?T{@_N_ TCh`8q`T?)TCh`8lqaTw@DP6? Ti(TFhc8xqT@_N_c?T%TGhc8)q T5qTuqT??? T#TtqTT_N_g?T!TGhg8qaTg _N__N_?-TiTHhg8q@T%qT?-T)T)q`T5qT? TTJhi8_)qT5qT)? T TGhi8q@T$qT? Tc_O%P6 @@#@@A9'@+@/@ @@@#@'@+@҄KGk[C?WS9> @O@@A9A9T_@c@?cT$D@E{@.@g5CG@GK@G@5k@C 6G`k@s/@W@ TS@( T%EE{@.@g5C[C@ T?@( T'GG@g5C G`Fc@_@?Tg @@ )1w@ @@@c 4@[9.@5g@@g@[@_N__N__N_ih^e[b H FDB@><:9 } @_iT#@'@?IT@Ch`8qaTc?mTiTDhc8qT$qT(q`T4qT?TDh`8qTd?TEhd8qT?TTEhd8q@T$qT?TT(q T4qTq TqTqaT?+/37;_B_???? TT4qT(q`T?T?TGhd84qT? TFhf8(qATmT]?T? TDhd8qTq`TqaT +/37;_B_?TTGhf8(q`T4qT?T? THhf8)qAT?)THhg85qTMT? THhg8q T%qT-T?TqTqTq`Tnljhfd?mTTFhd8߀q@T$qTXVTRPNLKIH -| @_ T#g@_@a[@ os9_J_?T)Tdh`8q@T?T?Tdhd8(qTKc@TcT73Ff a_@[@3@ן3 TE{c@TcTG(i  v _ T"T)qATJ_,T'hg8$qTk@ lT rk@@k@/'+AC9_@[@3@/@c@k@+@'@C TD$  '@_@[@/@c@@CiT#hc8(q T9@C9_3@A9 ?@;@C@G@T7@oscw {9_J_֚TT&hf8(qT~J_ JT ij8 )qTqT%qT~) T ii8q`TҐ  YncPeZHG ,{#@9!?JTB,Cha8kT@C9_C9_ @_iT#C@!5 R@C@?@ ?@KOG@S_G_քT3/Ghd8@%q)T@eqT@eqHT?T_9B5 u@@#@%C@3@/@_A9?@h&8/@?BTB5 Y@@#@%C@3@/@?@h&8@D_Thb8q TcThc8q`Td?CT_T!DK`OS_G_ }zh @_T#,B(C@A@@BT|aha`@_B_y ^z @_I T#W@@@/ @'?@T@|%Х3+#@% @a!17;/@#@ '@a@! ?C3@+@ /@!*GK`'@ @@@[__J_z @_)T#@@a@.Є@e5#"΂@a@.Є@e5#"@‚.Є@!@@e5# " @@@e5# "`@5| Ҥ_A_y @_)T#@`@a@.Є@e5`@a@.Є@e5 @u.Є`@a@@e5f `@`a@@e5 `Yb@5|@``KI @E` @@f57 @@5e -* @5 @" _A_Gy @_iT#@`@a@.Є@e5`@a@.Є@e5 @.Є`@a@@e5 `@`a@@e5 `فb`a @5| ˁɁǁ@@@g5f@g5 @5eb@@e5`a@9@a5@_A_xx@@ T ,TTT& T TT T TLlT(T$T,TL`T TTPTX`T\T@C9_C9_@@ T ,TTT% T TT T TLlT(T$T,TL`T TTPTX`T\aT@@C9_ @_)T#9'@@9@@+@A@@9C9 ?@`TaT 9 _D__D_#x @_IT#@@@@? T? T?Ta? :aT? 7?aT? 3? 1?T?aT? +? )?aT? %? `T$?L,T?(T?$aT? ? ?,aT? ?LT? ?TT?PaT? ? ?XaT? ?\T? D@@9D@T.@`5_Ҝ_A_? D@@9T? ,T?TT%? T ?T?T? T? T?LlT?(T?$T?,T?L`T ?TT?PT?X`T?\aT@@c.@`5C]@@@9_@9@c.@`5CO@@@9 @.@`5CD_@9_A_jwI @_ T#@9a5@?qaT@?$qaT@?(qaT@?4qaT@ ?0qaT@?,qaT@#9C@99_B_A9#9VC@9`A9#9OC@97@@9!@9-A9#9EC@9G@?q7@9#5@7@ 9`T?$q T?(qT?4qT?0q`T?,qT@7@ 9 A9#9%C@9@7@ 97@9A9a@9"/@!!T /@C97@@9/@ C9/@AC9/@A9C9/@!!d7 ~ȋA97@@9 /@ T @9_E_v @_T#?@+T;@"@9Cc@DdqB@G_qT kT#@9/@93@A9C9G9 K99@9?@;@G@@G_E__qT_qT_q`T_qAT jT@  @9#9XC@9;@G@?@3@@H @bG_E_ T#@9dф@edq_qTd@ӟq`T_qTd@ӟqT_qTb@_qATjT@ @9#9(C@9;@?@3@@H @3G_E_;@mT"@9/@93@A9C9G9bK995@9?@?T;@@93@C9>G_E_G_E_p~ UuT @_ T#7@? K T3@C@9dф@edqD@9ѥ@ӆdqĐc@q!T@ӿqT+@  ܊?_D_q!T@ӿqT+@  ʊ?_D_?TqT@qATC @9qT+@@ @@?_D_3@?IT@@9+@C9ҋ?_D_~ t @_ T#7@?kT3@@9_q@TcA9#9pC@93@@9#9jC@9`7@+@ 8= @v?_D_+@ < @j@?_D_?iT3@@9+@C9?_D_ҿ} t @_T#7@? T3@C@9qATC@9qT+@ < @8?_D_3@?+TC@9qT+@ 8= @%@?_D_?IT@@9+@C9E?_D_{} `t @_ T# @@y#y?@jT ;@  @9?@T;@"@9/@93@A9C9G9#B9K9'B99@9`?@K_E_!!!@KT;@ ~@9@3@C9K_E_@K_E_t @_IT#&" @!$.!!@5@ @|A9?k! ҂ !@9A9D9'_C_s @_IT#@C@9AG@9B@/@ A9c97@;@?@99e#@C_E_s @_T#7@? T3@C@9q!TD@9qT+@@' }P?_D_?KTqTC@9qTC @9qATC@9qT+@@' }6~?_D_3@?IT@@9+@C9U?_D_ҋ| ps @_T#7@?+T3@C@9qT? kT@@9'@;9+@cA9C9G9 K9 9@97@3@@?_D_3@?IT@@9+@C9?_D_M| 2s @_)T#A9#9C@9A9_qTG@? TC@G@G@?iTC@@9;@C9O_F_#|?TCh`8cc@$q)T@ ?mT?TEh`8qT?TEhc8q!T?TEhe8qaT ? T?TDh`8qaT@@9;@C9O_F_@@9;@C9O_F_c?T TEhc8ѥ@ӿ$q T@ T#+'?aT@ T@hc8#9RC@9'@C@dhb8q'@C@#@G@'@+@;@!!| PK@#@_T;@C@  ;@!@2 A=K@'@_T+@?T;@BC@ ;@ $ "'@O_F_@@9;@C9CO_F_֒{{{v{t{s{q{o{n{ Sr" @_T#cA9#9C@9cA9_q T7@? +T3@C@9q!TC@9qTC@9qaT?KT@ @9#9C@9@3@C @9qT+@@L$ }҇?_D_3@7@C@9qATC@9qTC@9qT?jT@@ @9#9C@93@C @9q3@7@? TC @9dф@edqc@qTC@9dф@edqc@qT+@@$ }?_D_C@9qTC@9qTC@9q!T?jT@@ @9#9gC@93@C @9q3@7@?TC @9dф@edqc@qTC@9dф@edqc@qaTC@9dф@edqc@qAT+@@L% }O?_D_7@7@3@?IT@@9+@C9k?_D_ҡz q5 @_T#7@T3@@9'@;9+@cA9C9G9A9K9 92@9 +@  C_D_Zq @_)T#?@;@!Tdha8qaT C@_T#3@ #@G_E_^z 3q @_0T#"R @+@C9G9@'+@@C9G9@#+@#y@+@C9@G9 @7@7  - @!>.!"@5+@ +@yb`y7@@6%@5@8@y4%@5@/@y+   @!@.!"@5+@ +@yb`y7@@6%@5#@ #@y %@5'@'@y   @!.!"@5+@@ +@qybny   @!@.!"@5+@@  +@[yb Wy7@`p6@x7   @!.!"@5+@@" +@@yb.!!@5/@@/@s  @+!!;O @!2+@3@7;G@K@ O@i@#@'@SW[_H_k@@@ _ց @_iT#C @@@@ .@`5#" s_A_j@@ _ց @_)T#3@7@ #~LV_E_j_ @_I7T#K@@@,T, T T`Ң.TcB9 C@G@ @ !V  C@G@ `V҆@T T?@@TcB9 C@G@ LU  C@G@ `@UcS_G_?@C@ G@cB99S?@C@ G@cB99G T@TTcB9 C@G@ @U  C@G@ @U&C@G@ `X>@U?@C@ G@cB99 TcB9 C@G@ @U  C@G@ @U(TcB9@@h@Al@BD1 $*#@'@C@G@ aU,T@DT8T0T8AT C@G@ BB HUK@@@ @C@G@ C@G@ @< 2Uң@@A@B @C@G@ Җ<@T@TC@G@ U҆ C@G@ B0UK@@@ @C@G@ C@G@ @TcC@G@ @@TWPTHaTQLT?@C@ G@cB99C?@C@ G@cB997TaT3XaT/\ T,B(C@A@?T|aha`@BX9 B@@ )@!*/3-@!6 c@S_G_S_G_r iA @_IT#A9@;@$@T/@@93@7@ \1gT( 3@7@ #~[T@/@ 9T3@7@ KT  3@7@ ?T_E_h @_ T#K@4@dҥcB9?@"@B"4@6 @#@& @cT 3/! 2 @@#@?@A .!!@3@a5CA Uq/@"@ax C@G@ tS#6?@ @@a_TC@G@ `S?@@!_G_{q Ph @_T##B9 C@B4@67@C@A@D@`? Tx` @!'+@. #@.@@;@?@ S7@@@"?)Txb!x":7B67@@9a93 ;@?@ @@S' ;@?@ @#`uS ;@?@ iS@7@ 9  ;@?@ @@ZS_F_pp g @_ T#A9  3@7@ BBD;9S;@ @#! `@@ @@@@3@7@ S #@`@@  @@3@7@ R  3@7@ t#~R_E_lg @_T#A9;@@!@?PT@BB@D9@N 0b@@6;@@D9@&@B@`?T@@[ROrkT @@D@@3@7@ R_E_#@$@B_xT~B,3@7@ R@@cxT @@@f @_T#5'@ @+_D_f@@@!@?PTC@9@!?\TC@9__ց @_T#?@C@?@"hc897@D @;@ ?+@?@C@mTT'e@9q`TqT 7@;@ B( R'@?@C@/+MTG@_T#T7@ @;@G(h ?C@+@?@C@T @ 9C@+@_T _F_-TTeh`8pqATfozopo^o Cf @_iT#р,`#@,@#@-!@7 .@5-`7-B`7n_A_!f @_)T#@? T@@yZy_B_@"o f @_)T#@? T@yZ@ y_B_@ o e @_)T#@? T@@ZC_B_@n e @_)T#@? TC@Z@ _B_@n e @_)T#@? T@@ #_B_ @n e @_)T#@? T#@ @ _B_ @n e   _@*| _ @_IT~#@@ O @dS!5 @@b"@BRir_k.TRפr_kTR[r_k T[R{r_k(T{R[ԥr_kT[R{r_k!_T@c_^T@C@B@S@@B'?!]T@ @@!@@ S@ ?S@@ۏRr_kaT@B ?ZT@ @"@!@R[r_kXT@cc _AXT@B9S@?ɛT9@lRkr_kT;Rr_kTBRir_kUT@c_TT@C@/B@@S@@ұ@Cc!_ST@B@9S@?IT@9S@?IT9@;KRǬr_kT@c5_OT@B@9S@?멍T9@(Rkr_kNT@bB ?aMT@!@@B@ S@+ ?S@@:Rr_k T؀Rr_kTRţr_kT:Rr_kaIT@c_HT@C@?B@@S@@#@B%?FT@!@@B@@ S@ ?S@@{Rr_kT@B$?CT@!@@B@@ S@+ ?S@@؀Rr_kAAT@c:_@T@B@9S@?IyT@9S@?IxT9@R; r_kT;ʜRr_kTR; r_k=T@c_a<T@C@GB@@S@@ҕ@bB ?:T@!@@@@@ S@+ ?S@@xܑR{r_kT@c_a7T@C@CB@@S@@FRפr_k5T@bB ?5T@!@@B@@ S@ ?S@@L{=R;r_+T;R;r_+ TIRr_+(T{Rr_+TIRr_+0T@c_/T@C@B@S@@B3?.T@!@@B@@ S@+@?S@@[R[er_+T@B?a+T@!y@B @@ S@Sy@?S@@[zR-r_+T@B#?A(T@! @@B@y@ S@Sy ?S@@,Rr_+%T@B2?!%T@!@y@B @@ S@Sy@?S@@]R;r_+hT%Rr_+T@B&?!T@ @@!@@ S@+ ?S@@]R;r_+T@bB ?aT@!@@@@@ S@ ?S@@ߗR[r_+T@B?AT@!@B@@ S@+@?S@@~;R;r_+T@c_!T@B9S@?CT9@k[-R;r_+ TRr_+TR{Zr_kT@c#_T@C@;B@@S@@Rr_+T@c_aT@C@3B@@S@@ҷ[ZR9r_+T[-R;r_+!T@c_T@C@+B@@S@@y@B4? T@!@@B@@ S@@?S@@+Rۤr_+TRyr_+T@c$_ T@C@7B@@S@@&{=R;r_+AT@bB ?T@! @@By@ S@Sy ?S@@;R8r_+T@B?T@!@@B@@ S@@?S@@+Rۤr_+T@c&_aT@B@9S@?IT9@S@@S@@ -!-!@9@--.!$@5@-c-b -B-@k.!@@Cd\@9@y{k @ .!@ Ն@XT 2@@@{'w @@@@!&!|@ ? @@B|9 b@@KB  @K@@.@5@@@j`_@_O!5 @@@O@w@ {@'@@ @@@ O@?@@_@_@c @@ `?@@_@_Ҥjk@#  @?k@7@@S@@@@7@@@T@xf}? "T@j_@#  @?_@+@@S@@@@+@@@TGxf}? "T@njg @# Sy@?g@3@@S@@@@3@@@TGxx?"T@|GjW@# +@?W@;@@S@@@@;@@@T@xf~?"T@U jjTEhd8T@h$8Th$8@@>ii[ @# Sy@?[@C@@S@@@@C@@@TGxfx?"T@is@#  @?s@G@@S@@@@G@@@TGxf}? "T@iҟiҝic@# +@?c@?@@S@@@@?@@@TGxf~?"T@itiripio@# +@?o@/@@S@@@@/@@@TGx~?"T@aiGih$8TEh8CT@9i ` @_T# G@@?\ T?dT?@C@ q@@3@/bC@+,!8 q@@@9BB T @K_G_3@+@ _@/@a"@#3 @,!83@ +@!#@K_G_?@C@ -@@ 8@K_G_?@C@ @@$@? @@ #@'?@C@ G@U@'@ |K_G_K_G_ 6 _o @C_ITC~#@L@@ ? @,(T@T ? T T)4? T@x@@? @_@C_DTdT@`@@ ? @K&@$@@ ? @@ @_@C_G@P@@? @G@ |_@C_O@aC@bK@?TOC@(@@ @?c@;Tc@g@ @_@C__@C_ _ @_uT~# @@k?8T?DHT?@T?D!`T@@ @WҎ@@ L@@L@? @<Tk@<T@`@"a@!"@`@a@@b@d@`@_jTjTKa@e@!@B ~@b+ ?@@!@@@d_gThfT@@@Bc! ~K@@b+?@@!@!TTk@<T@`@"a@!"@`@a@ @b@d@`@ _`T`TGa@e@!@B } ?@@! @@@d _#]T\T@@@Bc! }G@?@@! \?\T?dKT@@ @O@o@@ @@Sv@@ @[f?T?T?cFT@@ @@L@? @ T Tk@_ (T_T@B@@b9 _T@by_T@b@b@ @a @d@`@?CTh 8`@`?Tk@ (TT@c@@9 T@yT@@@ @@@@_>TH>T@@! @B Sy ?@@!Tk@ (TT@c@@9 T@yT@@@ @@@@_7TH7T@@!@B ~+ ?@@!A2Tk@ (TT@c@@9 T@yT@@@ @@@@ _0TH0T@@!@B } ?@@! ^@@ c@9@@A @C@@@? ,T@ah 8@A @C@@@?*Th 8@@@B?0T@@ @@L@? @$ T Tk@_$T_T@B@_ T@b@9@b@y _(T@b@_,T@b@@b@@a @d@`@?#Th 8`@` $ Tk@$TT@c@ T@@9@@y (T@@,T@@@@@@@@_#TT@@! @B Sy ?@@!(!Tk@$TT@c@ T@@9@@y (T@@,T@@@@@@@@_THT@@!@B ~+ ?@@!,aTk@$TT@c@ T@@9@@y (T@@,T@@@@@@@@ _#TT@@!@B } ?@@! [@@ @@L@? @4Tk@4T@`@"@`@@b@d@`@_T(Ta@e@!@B ~@b+ ?@@!'8Tk@4T@`@"@`@@b@d@`@ _CTTa@e@!@B } ?@@! _@_eeeeeeeeeeddde eeeeed_@@ @K @@@@ _@[@?KTg@AS@?Tg@@ @F@@@,CTwskO@(@o@g@ ?c@;T{@@?`T@@9|q`s@w@k@@ @s@ w@k@-ddddddddc@@ @ @@@@ Xc@W@?KTgX[O @_T#+@/@ 3@+@'@"@#@$@_THTB˂b d@'@"@@ _D_YdOd $[@7@BRirkhTRפrk( T:Rrk(T؀RrkT{RrkT@a!$`.T؀Rrk3T@!: +TRţrkT@a!%T:RrkA1T@!0T @@~_R; rk(T;ʜRrkT@A!  "TrR; rk-T@!!-T @@}_ܑR{rkaT@!a+T @@_RפrkA*T@a! TLR[rkhT[R{rkT{R[ԥrkT@!'T:[R{rk&T@!!&T @@_ۏRrkAT@! $T @@_R[rk#T@a! TRkrkTKRǬrkT@!5 TRkrk T@a! T;RrkT@A!!TBRirkT@!aT @@~_{=R;r+ T[-R;r+(TRr+TR{ZrkaT@!#!T @@~_֛Rr+T@!aT @@_[ZR9r+T@!4T[-R;r+T@!aT @@}_+Rۤr+T;R8r+!T@!!T}_+Rۤr+AT@a!& TRyr+aT@!$aT @@}_{=R;r+AT@A! @Tt;R;r+hT]R;r+(T%Rr+!T@!&a T~_ֻ]R;r+ T@A!  T}_ߗR[r+T@!`TJ;R;r+T@!!T@_IRr+HT{Rr+!T@!3!T~_IRr+AT@!T @@_[R[er+T@!T[zR-r+T@a!#`T ,Rr+!T@!2T__ց @_)T# @ ` ``,!@- `.@5,`-,B`-b_C_;Y @_IT#с@@ @*|_A_y "Y"@cT#$ @_T#с@@@? T@yZ@ y_B_@bU X"@AT#$ @_T#с@@@? TK@Z@ _B_@a1 X"@AT#$ @_T#с@@@? T'@ @ _B_ @a  X"@AT#$ @_IT#с@@   _A_ X"@cT#$ @_T#с@@@? T@@yZy_B_@a rX"@AT#$ @_T#с@@@? T@@ZK_B_@ja NX"@AT#$ @_T#с@@@? T@@ '_B_ @Fa *X"@AT#$ @_) T##@aT@BT#hb8(q`T4q!T( &3 @@@? T za@@dh"8B_kT#@%hc8h%8c_lT'_C_֠*@ *@  W @_T# & @@;T4q`T(q TqT@B_T#hb8kaT @_C_֠*@` }*@  v W @_T# & @@;T@@ 9_C_yW @_T#+@ @[9cUCUCUCUc|@ccAc'@@@_B_֨h)8 TThf8 Thi8)x(A Thi8 ]RIhi8? Th'8 ELJhj8? Th)8 -FJhj8? Th)8 @Hhh8? TK#Thf8 pTIThf8xӉ@$]RDhd8?)Th'8$ELDhd8?ITh 8TC@1@T? Th 8 B@?ITh 8T#-FChc8? Th 8B@_1T ? Th 8_B__B_ ```````_ _ _ __ _ __ V\ @_T#7@@?1T?@"}BcUCUCUCUc|Bc ccBb ?@#dUDUDUDUd|DAb~'5 @+7@ '@;@?@C@+@ '@Y @@GK_F_V @_iT#G@d@e@d@TK@O@ҍS@O@K@W[__H_3@˥g;@? T? TeUEUEUEU|AAeUEUEUEUx( T3/;+#a@a7 v#@aUAUAUAU|ABAB~_HTG@ @@! @7@ v ?@@G@ `.@b5#" ^$@#@+@d/@T+@W[__H_eFh`8h 8kTaW _H__v __fh$8d@d?-Td@ TEh`8 cTL?# TS@!Be@ kT'3/;`@`7 vb@IG@ @@! @7@ ~v ?@@G@ `.@b5#" y^$@?/@3@;@'@C'@W[__H_W _H_ֿ^@^ U @_ T#/@@c @? T? ( T@# v@/@@@!@?1TC}cdUDUDUDU|C B DeUEUEUEU|DA˃~(T @@! @#@ v ?@@/@ `.@`5#" ^? @!@37_E_vF^@D^ !U@@1T @}!bUBUBUBUB|A@ B_ @bUBUBUBU"|BA~_ց @_iT#/@@ @@B, B@@37_E_T @_I$T#'@[97@;@C@* T T!Tfhe8Hii8?qT Tsh 8)q`T5qaTH@kaTTT @@GKa!OS_D_ @@GKa!OS_D_TC@1Tj @@GKa!OS_D_ GK _D_~s@9nw@90{@9@9{9Hw9Ps9T/@+@% T/@+@ T/@)T+@9{9w@9 T9DE9${@94( @@GKa!OS_D_w9s@9T9BE9bw@9b5{@94 @@GKa!OS_D_GKOS_D_)]@&]#]T Tehg8(q@T4qTT @'@@a!@] TTehg8(q@T4qTT)Tehg8kaT @@GKa!OS_D_ @@GKa!OS_D_\\~\\ S @C_IT#O@@?1TW@"C~c}bBCW@#Bb/5 @CS@ W@@@@O@C@ /@#@'@+@/@CTC@[_cgk_I_\ jS @_%T#[@G@{9S@_@W@K@O@ c _H_ ! T+!k T _ C!T TM ohm8im8@9ip8 @9iq8 @9is8@9it8@9iu8@9iv8@9in8 /o@qaT FqYA@T?#T h'?T; #!'@+@;@!/@3@/@_@W@K@[@O@G@S@cgk_H_  T+ T_ #T TM ohm8im8@9ip8 @9iq8 @9in8 /@qaT fQ9!@T? T Zh' ?# T7 #'@+@7@!/@3@/@_@W@K@[@O@G@S@cgk_H_G@S@_@[@W@K@O@    T?T; J *#'@+@;@!/@3@/@cgk_H_cgk_H_{[y[w[ t[ j[p[n[ k[ a[ 6R@@1!T @~!} C_ @AB_ @_T#z @`.@5,!`#,B`Z z @`.@5,!#,BZ &,`@ @@;T@!?Tha81aT?@d.@5,B @,B Z &,@ @@;T@!?Tha81aT@a.!!@5,!@ ,B@~Z_D_֠* ` |* ` u Qu @_)T#с@/@@@ @@B, B@@37_E_ oQ"@cT#$ @_ T#@#@ ( @9#9_C_PQ @_T#с@a@ &j@ @@;T@@ 9#_C_ւ +Q"@aT#$ @_IT#с@@  &>@ @@;TC4q`T(q TqT@B_T#hb8kaT @'_C_֠* ` ɐ*   9 P"@T#$ @_ T#@@#@C@D@@?T @9@@@#@C@T @C @@E@T @9#@P@y@CP@y?kATA@9@9kTA@@ATA vQ@9#9_C_P @_i T#Ѡ#@ @@#@c_TIT%xcxRkcT8@qT_Tx$Rk"Tf_TIT'xfxRkT9@qTcҥˣ(_Te@@x$_Tx$_T+/3_C_kYXYUYRYOYLY 1P @_i T#@0N @#/@3@ 7@=@@@ 3@#@@7@@`.@5/@A/@X_ _8@a5_<AXA4@?@`5? X@4@ ;@ ?@@@CG_E_CG_E_O @_ T#@@a @@ @!|@ ? @@c~TBB?7;@C@D@?CCcdGKC@D@OSc W@[C@B @_cB,g"kos }@@_O_@ @!|@ ?@@@ @@DЄ? @)#'+@/@_O_fO @_ T#7@@@"@L@? @XT7@@@!|@ ? @@bB, ~ @~#@'@;?_F_7@@@!|@ ? @@BB  @a#@'@;?_F_@;?_F_O @_T#K@ ,!-!@9K@,-a.!$@5O@,- ,B-O@Wa.!O@/3/@E\@9@y{k 3@ a.!O@ @YATH7f86@@҈7;7@+ !+@!&! @A`.@`5C@ ~W@SW_H_G@9$@5$Є`#c`jW'# (!@a5,`^W9! G@#@ '@@@@@G@ S@@SW_H_G@8@<@SW_H_bNU@ @_ @_T#'@+@ z|@@@/37_D_@N @_T#/@3@ @z]@@@7;?_E_"N @_) T#/@4@"@#@! @?T3@!@{Rr?+T3@DЄ?AT`\@? @@7@ @.@b5#"V/@4@@ @@  @D@@7@ @.@`5#"V3@;7@?_E_M @_T#/@CA@D@#E @F @@#@@@TZ@@@he8C9?@@!/@C @@jTA @_E_V M @_T#@@ @A@C@? TiTZ@A@D`h`8C9 ?@@  @ @; @@  @ _C_֌V qM @_T#/@CA@D@#E @/@@#@@TTZ@@@he8C9?@@!3@_@T/@@A _E_ @ `; @/@ _E_LV 1M @_) T#@A@C@D @? Teh`8qTq@TqTqT qaTqaT qAT TT@ahd8C99>@@ @@@@ _C_ VTbTehd8߸qT߬qTߴqTѥ@ӿ$q TqTߔqTUTBTehd8qTpqTUU L @_T#?@@?T?!TK@!C@ G@s@@@OS_G_?@G? TK@!C@ G@@@@OS_G_?@-  @3UK@?@b@d@e @_T3@?TA! C@G@9 '@+@'@OS_G_ _G_U{U*  ( IL @_T#@@?`T?`T?Td@F @@ @bB@iRr_+TB*@T`8#@. '_C_#'_C_ր*    L @_+T# O@@?XaTG@K@ Y @@\@?@O@A @6G@K@ @@@@O@G@K@B9O@/#39 @PTg@@G+ @@@ C@XATH7b86@c@҃B9B9c@';7 @@X7@'@B9;@B9dҽ#@O@/@3@@9B9+@XT,@T @@PT3@#@/@/@3@ #@@@@ @@@/@T3@T#@?3@#@H7a86@_B@  @@$@? @@ @@@/@3@ #@3@#@/@  @@h@? @MT#@ {T/@3@ @9@@B Z@@@B9@/@3@ #@@9@@B4 C@@@B9#@B9@9O@G@K@/@3@ #@@@@@9B9B9 _c o_H_W[ o_H_ @@@ gko_H_  @AA!+!!*  J @_IKT#@@ @9@@/@'@+@@kg?  @@DTPT\TO o@?@k@g@ @c@_B @! _@A.!"@5c@ `c@$S@C @C8@A! %@@@ 8@.@`5#<" Sf_O_@# @@@ X@ ,-@9@`,!- A.!!@5,!-#,B-R`oso@ \@9"@Dy!{?k k@g@ ?@f_O_@@ @S@c@_B @! _@A.!"@5c@ `c@R@C @C8@A! @@@ 8@.@`5#<"R_O_7S @ @K@@@ @_TK@dT7@ @S@BB˄! ?@@_O_RR;@" @@? TO@?\!Tk@g@ ?@@;@?+ Tk@g@ ?@@Kk@g@ ?@@Gk@g@ ?@@c@_k@g@ ?@@c@_@ G@@K@ ~  @[@C@W k@g@?@k@g@ ?@[@W@C@k@g@ ?@@;@?kTk@g@ ?@$j;@k@g@ ?@@;@?Tk@g@ ?@n@@@@ )@@@b@@@@@@?$T! k@;@!@_ T_@T_O__O_;@;k@g@ ?@o@;@?TO@DATk@g@ ?@@@$@? @@ @[@W@C;@Fk@g@ ?@;@#O@\aTk@g@ ?@@@ @@@k@g@ ?@_O_k@g@ ?@@@@ [@W@C@;@;k@g@ ?@@;@?T*   >H @_IT ~#CAGA KA9(@@/@+@'@@/ACAGA KA@@BA @! @A.!"@5@ `@P?AC @C8@A! @@?A 8@.@`5#<"Pc _@ _ D@; @"@@@_P`T@@ @@@@@;@E_TT_dT G1@@@@@} @! @A.!"@5@ `@lP?AC @C8@A! m@@?A 8@.@`5#<"UPc _@ _H@ ? @@L@? @?(iT` T;@H@@ ? @@B&TQ,.@@ @ ,@9@`H6@86@#@@B@@@ &@@ @@@ C 3?A4@ @;Ts ҥC @! @A.!"@5@ `@O?AC @C8@A! @@?A 8@.@`5#<"Oc _@ _?AN @ ,-@9@@4,!- A.!!@5,!-#,B-O@4  A@\@9"@Cy!{?ka A@@ @c _@ _7 ?A @?A@@ @_T@dT7@ @@BB˄! ?@@OS_@ _OOS@@@S  ?A@?vT?aT  @9?A@@ @d_룧T@џæT@g!bc 9@@@@9@Tc_[T;@$@@ ? @@S@ V@@@@@ S@S@@@ @@@ ?@@@ gA!0@ k@@@9s@? T @Os@@@B99,@0@@@@ ?AB9b@[@ _@ @a!  , @@@?AC8@C @@?A 8@.@b5#<"Ns@@S@@@S?9?A@?$T! 2?AA9?@@@S@@@@? AjT! #A9@?AF @@ @ B@iRr_+TB*!T @!@ @@@?A @@?@@9'@+@'@@TbY?Ac@@ ?@@@A!@-a @G@@?AC8@@TC @@?A 8@.@@Tb5#<"MT-@,@@@?A @@?@9}'@+@'@@TP?A?A@ @?@?@@@@TBO?AaCT;@H@@ ? @ @@@Є&?TTW,.@@ @ @97W@L@@ ? @`aT@[@ _@@ ,-@9@` ,!- A.!$@5,B-C ,B-M` A.!A"D\@9@y{k  @@@@#@?A@.W@L@@? @?TFT@ [@M@@C Bzt@@a@K@@ @@@?h@T@@z K@C c0`$0 @!< @@C@b@@@@@.@a5CM@D@5@D D`@M@D?A8@@ @@?A 8@.@b5#<"L @ ,-@9@4,!- A.!$@5,B-C ,B-L4A.!@"D\@9@y{k  @@2@@#@?A@.@ [@@@G Bzu@@a@O@@ @@@?'T@@z O@C c0@0`(_ @!< @@G@@@@@@.@a5C\L@D@5@D D`@PL@D?A8@@ P@@?A 8@.@b5#<"8LjE @ ,-@9@,!- A.!$@5,B-C ,B-LA.!A"D\@9@y{k  @@@@#@?A@.-@@ }@@@?A@ c@g@@9q'@+@'@@@ @"@@@?A@.@@ @@@#?@'@.?A@@@$T  m?A@@4@@/A?h T @4@'A#AA.!%@e5  KA.!@@TT;c _@ _k@ s@jTk @A:@C@$@% @&@ @[@_@`?@9OS_@ _OS_@ _OS_@ _OS_@ _ր*  SK  @!A!@!!* ?  @AA!,@!!* -* ` &0 `*   {@ @@@@@@s@@A9@@@@@jT{xl N@YToH7b86n@@,NaTw q@@$@? @@ _@@@@@ w@bw@@@ @@@o@ J@@$@?@ @A!@A @@@?AC8@C @@?A 8@.@b5#<"J@s@@@@@?9?A4@g8 @@.@5?A#4@iJ?A@s@?@@@A9?A@@@@4@ @@@@@bT* @@#@@AA.!$@d5CD@:Js@@A9?A@@@@@@?@@  @. @5|i'J  4@@ @5@  @ J @?@@~DJ* RJHJ* 0 `] A @_ T#?@B9 C@G@ zo@@``'/3/@+ ! @'!< @C@G@@@'@@+@D.@e5CI&@@`5A @`I?@ @@ SW_G_ @a!'KO _G_C@G@ @!,KO _G_@ @_T~#@@@ @@@@@ @@a! @`@@p f@@@C8@# 9@@@ 8@.@`5#<"!I_@_@@9@@ @?q98@@#@+@'@/@@fa@@9qTG9 q TqT5~ qT-~< ;o@@ @{@@@C @[Є4 @;@@@.@5o@Ao@H@A@5@A A`@H[@!A@#8@c  @@@ 8@.@`5#<"H_@_@@ @3@@@@ @@a! @`@@p @@@C8@# }@@@ 8@.@`5#<"eH_@_s?@ @p @@@@9G9@@ @@@@@ @@a! @`@@p U@@_@_?@c @s@ `?@@_@_S@@9_q(AT_qT_qMT@ @ @@@@9c8Ow  S@d@P'T\T` T@@ w@,!."@!@@`T @9`w@ O@@@ )c@9@w@ O@@@ S@ b@@ @@a!  z @@@_@_@@ "@@@C @[Є @!,@A.!"@5@ `@qG[@B@C8@#!! q@@@ 8@.@`5#< "YGG@@ @@$@? @@L@? @ A T,`@!@?1TO@"C~c}bBCO@#Bb75 @,!`!@ 7@w@O@G@#@'@+@'@ @#8@# @@@ 8@.@`5#<"G7@_#T@@ S@@@@ S@@@@C @[9 @!,@!.!"@5@ `@F[@B@C8@!! @@@ 8 .@`5#<g"Fd@@ @w@ O@@@ @ ՠ,-@9@`*,!- !.!!@5,!-#,B-F`*@ \@9"@Dy!{?k @@ S@ @@ S@@@@C @[ @!,@!.!"@5@ `@LF[@B@C8@!! L@@@ 8 .@`5#<"4FG9@@ S@@@@@ @y@A! @`@@p 5@@_@__q TG9 @?T@ۭRr_kT @@@@ @<@A! @`@@p @@@C8@# @@@ 8 .@`5#<c"E` ՠ@P  HT <@@ @@@@@ S@2C_q!+TG9A @T@NRrk` T!T@,RmrkT@9q T @@@@ @@A! @`@@p @@@C8@ Y@@@ 8 .@`5#<"AE@_q  է@TP`T @@@@ @@A! @`@@p <@@@C8@v @@@ 8 .@`5#<"D @@@C @[? @~!-@!.!"@5@ `@D[@B@C8@o!! @@@ 8 .@`5#<m"Dj9 @A9*! #  ՠ,-@9@@:,!- !.!!@5,!-#,B-D@:@@\@9"@Cy!{?ka @@@ S@,@@ S@ @@@C @[ @~!-@!.!"@5@ `@ZD[@B@C8@C`!! Z@@@ 8 .@`5#<"BD 9$_qT!!@?$qTG9^ @@@@ @~@A! @`@@p :@@_@_ @@{@C S@C@0hTdџ)TCT Bzk@@a@ @"@zb  š_c0b$šB0_ T@ S@f@@@C @[ @!< @{@C@@@@@ .@a5CC@A@5@A A`@C[@!A@#8@CI  @@@ 8 .@`5#<:"C7@ S@F/ Bzl@@a@ @"@zb  š_c0@B0b(š T@ S@@@@C @[ @!< @{@C@@@@@ .@a5C@C@A@5@A A`@4C[@!A@#8@c;  3@@@ 8 .@`5#<"C@ S@W8 (TP T``T@@ @,!."@!@@_`T @9C@S@{@CG9@@ |@@@@ @7@A! @`@@p @@_@_@@ I@@@C @[ @!< @!.!"@5@ `@B[@B@C8@(!! @@@ 8 .@`5#<0"B-@@ $@ @@@@@@ @C8@" n@@@ 8 .@`5#<"VBK@@ S@s@K@ ՠ,-@9@,!- !.!!@5@,B-A ,B-@1B@@@@\@9"@Cy!{?ka @@@ S@@@ S@@@@C @[T @!< @!.!"@5@ `@A[@B@C8@C!! @@@ 8 .@`5#<"AW@@ ^@@@? @{@C@ zg@@@W@4 T  `ET@a{#>a@ ` T{C>a@ a( T@@ S@7@@@C @[ @!< @{@C@@@@@ .@a5CA@A@5@A A`@tA[@!A@#8@c  s@@@ 8 .@`5#< "[A@@ S@__@_ @@ @@ ?@@_@_`* >x`* 7xA`* /x P8 @_IT#'@@?@T?T?T0 @@@ e@'@@@ @'@ 4@7 @@+/_D_`* w 8 @_IT#6M@/?3W@$ W@@? T@ @/@"3@cT?@KG6?@ x@@#@!G@K@/@&|Ӡh&!.!&@f5 @W@@$TC;7! IW@!.!;@7@C@@ TT /@3@?@[_c_J_`* uw 7 @_iT#ѽ@3G@! G@@? T?AT  @+OG@@@ @d_T+@џT@! a Q@@@99 )@@A9 '/G@C@$T  /@'@G@C@ T  G@@; @7"B43@ /@'@@7@!.!"@5;@ ;@?G@@_$T! G@!.!@_T_T3@K_H_`* v`* v`* v)@@`* v 6X @_ T#?@ @+?@@@ @d_T+@џTcBB%T!hd8qHTqTq@T-  @@@9?9 @@?A9b  @a!*CG_G_֟q`TqT@:Cq*! G_G_֟qT!!@?$qhT W@@?@ x@@@@@$ ?@8@/3 T@@?@ 8 .@`5#<"= #4 @_ T#@7G@ K@9@9G@@@"7@A@C@D@@ @?#Tc +3a!5@#@3@+@;/ =,9; 7@;@O+@S/@W _H_ W[__H_< 3 @C_T#O@S@ @@@@@@C W@[@_@c@# '@+@'@b7@3@;@?@hTcBg ko_I_ osw_I_ osw_I_֬< y3 @_ T#;@?@MT'Dh`8qTq`TqT9G?THT7@C@&F H7@!+ ~HA9D!@",B@C@D@?BTha87@C9J ,@@@A9c @?i T@hc87@C9J'@ ;@?@G@'@qTT TEhe8qT TEhd8q!T+?TT7@C@&F uH7@!8 H+@;@ h`8 @",B@C@D@ Th`87@C9I'@ ;@?@}TT7@C@$B aJH_F_<;;;;;;; 2C @_T#/@@@!|@ ? @@"BP& }@@37_E_2 @_T#/@ @@"B "@@37_E_u2 @_ T#g@@@@'@!|@ ?g@@ @+@# @! @ ? @@c~TBL/3@_c)'@c7cb;B$?BC+@G#@KB8OSW[c @@ko_L_ 2@@ @ _ @_iT#р,9v@ @ @B;?T 98@a!@?T4_C_"@! @!.!!@5@8@:_C_`* q 6 1 @_ T#'+9+#'@9;@` Ձ,!-!@9;@,-!.!!@5?@,B-A,B-?@s:?@#@@\@9"@Cy!{?ka #@7@ B99B999'@ _F_l_F_p1 @_T# &s@ @@ @#?T@@@ .@`5#" !:_C_ #q D1 @_T# /@@?8 T?T?T?T? (T?T+@@+@ 9 ?T+@ y?T+@ +@ @9_D_'@+@ %@9@9_D_?0HT?$T?T+@@? T+@ @9+@ @y ?(T+@ @?,T+@ @+@ @9_D_?4T+@@"+@@ `9_D_?PT?DT?PT8?T T?XT?PT"H_ T?PT/?XiT?\T+@@@?haT`H6 86+@@+@ @9_D_?`T'@+@ S@9_D_9_D_ @a!x5@!* _p 0? @_T#+@/@ 3@@@@'@+@ /@3@A99A99?_D_[0 @_T#/@ '@+@ @@ @3_D_`3_D_80 @_T#7@`@,: ;@@@@9""B6T?_F_+> @'!!68 @+'@@ - @!)!.!"@5'@+@  '@8@+@87@d@,!: ;@#c6@@A9""B6AT?_F_7@;@ @c9]@ .@5+@+@8 '@ u+@@7@BB@,: ;@ 6+@@?_F_ 6 6 /_ @_T#@ @A@@@@@'@+@ /@3@A99A99?_D_P/ @_)(T#'@L@+@ ? @XTcA9'@B&?$T+@H,-@@ @ #@9`'@+@ c9@!!i @a!! !.!!@5@@@83_D_cA9,-@@'@C<@+@ `?@9`'@L@+@ ? @XTcA9'@!&AT+@,@.@@ @ @9@'@+@ c9@!! @a!!@!.!!@5@@@73_D_ր,@.@@'@C<@+@ `?@9@'@L@+@ ? @DHT0HT@T?)T# T3_D_ 3_D_3_D_4T8TD!T'@+@ e @3_D_ր,@3_D_ր,@3_D_X(TP TTTX!T'@+@ @3_D_'@+@  @3_D_@3_D_\`T``TdT3_D_'@+@ @3_D_3_D_'@+@ [ @3_D_3_D_3_D_0 @~0 @v '. @_ T#'@95 ~C_D_. @_ T# S@@?XAT`H6O@86O@"@O@_B@G@95 ~C_H_O@K@ @9h@@BB (@@a! @ ?@@!G@9B99@@_H_G@95 ~jC_H_+'K@O@ S@@3@/"B2 @/@.!"@B53@'@!@5+@ a!)!7; @@ ^m`+@S6 3@O6x-k @C_IT#S@W@ [@[ @@+@@?PT$HџT?PT?XIT?\TA@?!@ ?hT H7`86A@?@a @9@@/BB [@ @/@?@@!O@9B99%@@_I_O@95 ~B_I_3'S@W@ [@v@;@7"B22 @7@.!"@B5;@'@!@53@ a!)!?C g@@ l`3@5 ;@5 @a!x5+@!* l ,Q @_T# K@@?XATH786G@"@G@_B@?@95 ~UB_G_G@G@C@ @9 @@BB2 @@?@95 ~4B_G_! @ ?@@@"?@gB99i_G_+C@G@ K@@'@#"B2 @#@.!"@B5'@+@!@5@ a!)!/3c @@ l`@5 '@ 53,n @_T#K@O@ S@ @@@@?PT$HџT?PT}?XIT?\TA@?!@ ?hATH7`86A@?@ҡG@95 ~A_H_ @9w@@#BB2 @ @#@?@@@"G@B99_H_3'K@O@ S@5@/@+"B2 @+@.!"@B5/@3@!@5'@ a!)!7; &@@ }k`'@r4 /@n4 @a!x5@!* dk +T @_iT#A9'@9AC9NB+@/@ 3@@9`'@9!d: ~A '@9!T& AA9'@9@C9*B_D_I+ @_ T#?@9 K@!@/? hT?TG@!@? aTG@A9?TG@Ay ?TG@A?TG@A@ zA]q@@#@cB93'+?@AC9A3@'@+@?@ s@cB9?@@C9A_G_ @!!$ /@!* j * @_ T#?@9 K@!@/?$T?TG@!@? TG@A@9?$aTG@A@y?(TG@A@ ?,TG@A@?0TG@A@ zA\q@@#@cB93'+?@AC9wA3@'@+@?@ @cB9?@@C9gA_G_ @A! /@!* Sj t* @_T# o@@?4Tk@ @"?8Tk@ @{C>a@ `T{?a@ a$T ` Tc@9`( `T_@?aT{9b@ bdT{>b@@ aT?T!@b{#8b@ "T{C8b@@ !hT  _@ 9 z9aA9'@#@+@qT?T ?ITDh`8qT ?iTDh`8qAT ?TDh`8qT!Dha8Dh 8C9;G7c@AC9@7@G@;@c@ d?C9c@@C9@_K_222 C9_@Ka@K@CB3 @o@@.@A5g@Ak@AC@A@`5K@@ OSc 7@@ i@`K@2g@}2A k@x2? @a!4?@!* li ) @_T#K@O@ S@@,!."@!@@_T c@9B9 V@+K@O@ S@@@+@ B99 +@@@@ @?TG@`˃B !99 ,9`; +@xK@O@ S@@@G@ B99 _H_K@O@ S@@@B A'@@# Lc@9`B9G@9AC9?G@9'@ #@>B9G@@C9?_H_'@#@ @A!*7; @ @@@/3c W@@ h2 (D @_iT#@@@C@9qT˄@BT9_B_ TD@9qTc˄@Bq#TqTc˄@B9_B_9_B_c˄@BTD@9qcTqTTD@9qTD@9q#TqTc˄B9TD@9q`TqTa? T@B@9_qaT_qTaBB@T9_B_9_B_!BB@?T@9_qcT_qT\1c˄@BTD@9qTqTL1 1(h @_ T# ;@@#?PT"H_ T?PT;?XiT?\T7@"@_B@?hT`H67@ 867@"@7@_b@3@  @@@/@ A99A99s_E_/@95 ~=_E_ @a!x5#@!* g ' @_ T#;@?@ C@#@#@B @@.!!@a5#@!'+# @@ vg #@k0' @_ T#[@o@W@k@s@f    T+?9 GG,@K0@; v3C?B9h #@9C@W@?@3@+@?A9G@s@o@k@[@g@9C9,>C9@G@ @$@g@ < G@@@g@ @@ d@`[@-@-A @- @a!x5C@!* td __@_$ @_)T#A @B@'@TCd@c@+@T@@@ @য়c9_D_փ-- G$ @_ T#'@H@+@ ? @@L@? @?(T``T'@H@+@ ? @a,!@."@!@@<@ ?@9`'@$@+@? @@ @!%X @A!=.!!@5@ @,/_D_/_D_$ @C_ T# [@@/?PT"H_ T?PT?XiT?\TW@"@_B@?haT`H6W@ 86W@"@W@_b@S@ ,O@9@3@+@'DC9:`,`@"@_1T+@d}ӄeUEUEUEU|D B +@efUFUFUFU|EfAˤ~#LTTO@C z3@'@/O@C@ #@z9K,T@5 @?a,!`!@ #@3@+@'@ O@?@ #@8)7 . @.!"@57@@7@:, !@5O@O@/,;3@ +@'@;@O@@C9&:_I_O@95 ~8_I_zX,` @a!x5/@!* c $# @_$T~#{?T?9 @@7?PT"H_ T?PT?XiT?\T@"@_B@?hAT`H6@ 86@"@@_b@@C4@cC4hTV@ @+@@ @@/+@KOCGB=gk@d8@7 #@9 +@K/@OB=C @@gk@8@B7 #@9+@K/@O;?@8@B@so!=w{@?9@@@@;9@D@@ D99D99?@4@!4;A9@6?9w@o@{@ '_@_@95 ~8_@_@@ @@@ A!@_c`@ @O@S@3B3k @@@.@A5@A@A3@A@`5S@@ W[ @@ a@`S@*@*A @*6 @a!x57@!* a _]_@_! @_) T#'@$@+@ ? @@L@? @ T'@$@+@ ? @@B&Tij`,-@@ @ @9`,@.@@@ @9'@+@ x@!) @A!?.!!@5@ @t*/_D_/_D_0 ڶ ! @_iT#;@9a C9X8?@C@ G@)@'?@C@ G@7@@@@@@;@ CB99GB99?+@'@?jT+?MT;@C9)8+@;@ C9"8_F_A! @_T#@$@#@? @@ @!R @A!.!!@5@ @)'_C_! @_!T#{?T9 w@@+?PT"H_ T?PT?XiT?\Ts@"@_B@?hT`H6s@ 86s@"@s@_b@" k@C4@cC4hT: o@ @9T@3@/GKGKk@C8@7 #@9@ 3@G/@Kk@C8@7 #@9k@8@B`SO3@W/@[@9w@s@@9o@ g@@@@@@k@ C99C99?k@4@!4A9@69W@O@[@ %_L_k@9`5 ~6_L_o@s@ w@@@A!@?C`@ @W@3@'B3s @w@@.@A5o@As@A'@A@`53@@ 7; @@ `@`3@(o@(A s@(> @a!x5+@!* _ g[_L_ @_T#@$@#@? @@ @!' @A!.!!@5@ @('_C_ @_T#;@@6'@A@/@3@ 7@A99A99 ?+@A@/@3@ 7@A99A99 ?_D_ @_I T#3@`9_E_3@#@T/@Cha8qjT!  #@?#( ~ Q@?qHT@)B+Aha8!{?kq ,! "@c@9?q)B+ TqTqǟ  ,!"@рc@9)B+9_E_@9_E_F @C_ITC~#@@ (@C@ ?c@;Tc@g@G@@ TGOK@dx`C%L@? @XTK@O@K@$@O@? @@_@C_ @_iT#/@@ "@_`T@@ @@/@ .@`5#"'_E_@@ @9b@@"B2 "@@/@C@ d@XTD@cH7C86@c@ң_E_! @ ?@#@@@/@ .@`5#"|'#@3@7_E_/@@!@" _T@? T?aTA@ A9 ?aTAy?aTAA@@ d@@/@ .@`5#"L'_E_"_hT@?$hT?aTA@? aTA@9 A@y ?(aTA@?,aTA@A@@ d@@/@ .@`5#"'_E_@*  ^ =8 @_i$T#?@9AC95G@C@CB9-T!T3%hc8qbT)/ ig8))1'ig8c))19OjThT?@b˄$ 3?@ C94O@(q(T$q T(q!T?@ C94<?@C9464qTq`TpqT?@A9C94*?@a! @3A9D!@,B@C@D@?BTha8?@C94A9 @,!@"@#@_iT`h`8?@C94?@AC943@DG@C@CB9)/+d$ QA@/RkT?AT+@3@TT?@CC@ >3?@!1 63/@3@G@C@CB9)/VRkT;Rk@T3@#G@C@CB9)/+@GK+@3@_TT?@aBC@  3?@a!8 3K @|@,!@"@#@T`h`8?@C9#4/@3@G@C@CB9)/mTCT?@˃a 2?@@C94_G_V&<&Q&O&5&2&G&,&  @_I&T#?@9AC93G@C@cB9T#T3%hc8qT)/ ig8))1'ig8c))19OTH T?@K@Eˆ& dH2?@ C93O@(q(T$q T(q!T?@ C93<?@C9364qTq`TpqT?@A9C93*?@a! @X2A9D!@,B@C@D@?Tha8?@C9v3A9 @,!@"@#@_T`h`8?@C9i3?@AC9c33@DG@C@cB9)/+K@De% ?#@/RkT?T+@3@T(T?@K@dC@ @1?@!1 2/@3@G@C@cB9)/MRkT;Rk@T3@#G@C@cB9)/+@>K+@3@_TH T?@K@$EC@ b1?@a!8 1K @|@,!@"@#@BT`h`8?@C92/@3@G@C@cB9)/ TT?@K@c˅! j1?@@C92_G_%%%%$$ %$  @_ @C_T#s@{@?iT o@p"@;T@?T p-@5"@@;T  3@ (-@ 5@@;T  3@ _M_֤$$  @_T#@#@?T @bD0@B,@'@TFxe?T g,@0@*Tye@TןC9_B_C9_B_?IT `0@ןC9_B_f$e$d$ I @%_ T'~##%~TDE# c  C%C'~TC%/ @WC#@#@@@@ T3@@@@A AA $@!4#!  AA AA_ Tb+TsKOD "@;TBB_@!@O@s@K@@@@!Td?T"B3 S@@#@$K@@c -ce@5@;T 3 @@-c@@AA T_ T~ T˥T2@z@TBA9C9ʄ@d T"@;T@C@;T"d?T"B3 @@#@$K@@c -ce@5Cc@;Ta 3 C@@-c@@P-cK@L  U@!!   AEDo@@EDT AAb To` ,@0@4@ @@ @-@5@CD@ " A!0 6@ AA?TA AA _@'_@@@kA @;TBBХ0 0@k@ @?T@"@s@_@@@O@K@@ AA?MTT P "@; T'B#B?T C@9""" ""@@[W @;T # @@9[@W@@ # 7@@9W@[@@[@W@@@c@T0w@w[W{CC!`@ ? @w@?T{CC(@ ? c@;TcK9 c @;TA`-[@W@@OAGSAL@@? @XTG@@G@$@@? @@# c @;TAbL@? @d-[@W@@WA[A `2~@@?AT@9_qT-[@W@@ @@@S@c c@99sC"B#g sCg@@B9_kc@Bc@c@oC@T }Z"g@c@@@sC7Tw@x OA{SA\@`?@ {@L@@ ? @XT{@@{@$@@? @@{@S@ ,b@9`{@L@@ ? @?4iT`aT@9c@a@cK9b@ {@L@@ ? @dc@B9"?ACA@@S@ !)@9CC~T@k@oc@?9@g@{@@C9B9G9kBoB E@@@sw{ @  9a!l @-sBwB{B ` -AAAA(!TBb @@kBoBbBl @` #@'@ AAAT3 W@@#@  Q-@5Cc@;T3 C @ @@T AA ?T |@" @;T AAA_T3 @@#@  1-@5 "@;T 3 --[@W@@{@@B@ '@@!{@@B@ @@T-W@[@@{@\@@ ? @@ ~T@g@{@ @W@[@_cT@c3@ @@#@W@ -@5 @;T3 i-@@@   @_ T#B@A@C@B@?@ T d@@C@T h @ @ !T3/'#+ e@93@0@/@C0@?!T@A9A@A9ʡ#9_G_+@#@ '@?@C@@9#9_G_য়#9_G_3@/@@@@@ @য়#9_G_ T @_ T#G@`@`,; K@h@@@9B;? T@@@ @/37;OSW[_H_G@K@ @@@@/37;G@@@+!;c @@b,B;+@ K@j@@B;T @"@#@! @/37;OSW[_H_ 6% 6  @@B T%hb8qTz@dqiT@ҥ,q`TLqT@_C`_֠_֠_ @_)T#7@;@K@C@G@? The8$ g@9qT kTz@eqTkaTB@'9#+ 8@#@9_LqT_,qT_Lq@T)_qT[%R?kT_q!T?qaT@?T#@$+@7@;@'@c9_F_c9_F_c9_F_c9_F_c9_F_c9_F_֟Tc9_F_@c9_F_~ K@ @T@@9_c?-TDhc8hc8kT@dqT@dq(Tҥ҄k@T9_9_@9_@ @T@@9_c?mTDhc8hc8ҥ҄kT9_@9_ @C_&T#?C9  O@@7 @3@;!C?@97@3@!'O@S@W@[@B9 ';@O@S@W@[@B9'@ T/ihg89f _qT_q`T_qTTTa 1*O@`+ ~e*A9D!@+B@C@D@?Tha8O@C9++@@@A9d @? T@hd8O@C9v+/@(;@'@O@S@W@[@B9/@A9 _q!T T iTkhk8qT iTkhj8kqAT7TTa )O@`8 *7@S@ h`8 @+B@C@D@ITh`8O@C93+/@ ;@A9+@A@C9 ?@$ T, T+@/@ T TO@[@dS@ )/@(U/@+@R;@+@+O @,AT'@ O@ 9O@9`b@d@e @˟T_#Ta;@@@cg9?@ _I_W@+@?TTO@[@BS@c i) 9?@_I_ *  S   2O_I_ @_IT#/@AC9*/@3@ 7@b) #/@;@ ?@X)#@C@?T_E_ @C_T#?C9  O@@7 @3O@;!C?@97@3@!'7@;@'@W@MT7/9S@#hb89@@D@C9?@$TA9/@,`TA9!T T+O@_@ c@g@k@/@/+@/@/@/9 A9lqTq@TqTlqTKO@C9 *O@{C9*A9/@O@C9)O@_@ c@g@k@/@RA9/@tqTqTO@C9)@/@qTaO@_@ c@g@k@B/1A9A9/@/9O@C9)A9/@oO@C9)A9/@hO@A9C9)A9/@`;@ @,AT'@ O@ 9O@9b@d@e @˟KT_Ta;@@@os9?@_I_ 9?@_I_ *  R N_I_ @_ T#+@[9 -@5!`Ac`X_ _@`5_@M_ 9@ +@#@?T@#h`8D@DZ@D@C9?@,T+@@@/3_C_{ @,!T+@@@/3_C__C_F@@@ _ @_iT#,,k@ @!8T_ -@5!`Ac`_ _@`5_@_ 9_C_ 6(  @_T#@ @?mT-!!@a5@+!,!8  k_C_ @_ T#@@ @9@A@{C9 ?@ @9@!1 @ ~`7`@@a!-!!@a5`#_C_@#_C_@#_C_`#_C_ @_iT#G@@ @A@D@BT"B @@#@G@A-!$@d5CD@DD O@$x @ @m T-@5!@Ac@/CB9#9 @;@3B1| @7!8 A;@3@B@B#'+@/@7@@-@a5CG@$@D$@`5" `W_H_S@W_H_ @_T#@@ @D@џTA T-@5@c@@ 9 -@5 @c _B_   @_ T#A9?qTT?$qT?4q`T?(qT '_C_?tqAT@C9@'_C_@C9 @'_C_ @_)%T#CB9?qTT?$qT?4q`T?(qT O_H_?lqH T?q(T?qaTG@[9-@5@cW@O_H_?qATG@[9-@5@cC@O_H_?qaTG@[9-@5@c/@O_H_?lqATG@[9-!!@5!@Ac@C9@O_H_?q(T?qaTG@[9-@5@c@O_H_?q!TG@[9-@5 @c @O_H_?qaTG@[9-@5@c@O_H_?q!TG@[9-!!@5!AcC9T@O_H_!@? qhTG@[9-@5@c@O_H_G@[9-!$@5c@Cc@#9z @;@3B1 @7!8 A;@3@!@!9#'+@/@7@@-@a5ChG@$@D$@`5" Z`O_H_ @_)T#A9qTT$qT4q`T(qT '_C_q!T@a @d@ ?T@x C9@'_C_@C9 @'_C_b G @_T#CB9?qTT?$qT?4q`T?(qT O_H_?qaTG@[9-@5@c@O_H_G@[9-!$@5c@Cc@#9 @;@3B1/ @7!8 A;@3@!@!!5#A'T+@/@7@@-@a5CG@$@D$@`5" `O_H_ @_5T#G@@@A @-@5@c@@ 9CB9C9@O_H_CB9qTT$qT4q`T(q!T-@5 @c f O_H_!xa qaT@x!-@5`@c`O@O_H_-@5!@Ac@?#9% @;@3B1 @7!8 A;@3@!@!(#|'+@/@7@@-@a5CG@$@D$@`5" `O_H_ TqATx!-@5 @c ~O_H_ֿq` T-@5!@Ac@#9 @;@3B1, @7!8 A;@3@!@!8#a'Q+@/@7@@-@a5CG@$@DЄ$@`5" `O_H_O_H_ Tq!T-@5`@c` @O_H_ֿtq` T-@5!@Ac@w#9] @;@3B1Ů @7!8 A;@3@!@!$%#a'+@/@7@@-@a5CKG@$@DЄ$@`5" =`O_H_R}O_H_-@5!@Ac@&#9 @;@3B1t @7!8 A;@3@!@+@/@7@@-@a5CG@$@DЄ$@`5" `O_H_ L @_ T#CB9?qT T?$q T?4q` T?(q TG@[9 -!$@5c@Cc@#9 @;@3B1 @7!8 A;@3@!@!/#'8+@/@7@@-@a5CG@$@DЄ$@`5" @O_H_  @_T#CB9?qATG@[9-@5 @c iO_H_?pqATG@[9-@5@cVO_H_?q TG@[9-!$@5c@Cc@C#9) @;@3B1 @7!8 A;@3@!@!#!'+@/@7@@-@a5CG@$@DЄ$@`5"  `O_H_O_H_* } @_T#CB9?qT?qT?qT?q@T5?pqT?qT0?qT?qT?qT)?q`T?qATG@[9-@5@cO_H_?qATG@[9-@5`@c`O_H_G@[9-!$@5c@Cc@#9 @;@3B1 @7!8 A;@3@!@!@6#'+@/@7@@-@a5C~G@$@DЄ$@`5" p`O_H_ l @_ T#CB9!@?$q)T!@?qT!@?qHTG@[9-@5@@c@DO_H_G@[9-!$@5c@Cc@3#9 @;@3B1 @7!8 A;@3@!@!#A'+@/@7@@-@a5CG@$@DЄ$@`5" `O_H_  @_ T#CB9!@?$q)T!@?qT!@?qHTG@[9-@5 @c O_H_G@[9-!$@5c@Cc@#9 @;@3B1 @7!8 A;@3@!@!#A'2+@/@7@@-@a5CG@$@DЄ$@`5" `O_H_  @_ T#CB9!@?$q)T!@?qT!@?qHTG@[9-@5@c\O_H_G@[9-!$@5c@Cc@K#91 @;@3B1 @7!8 A;@3@!@!#A'+@/@7@@-@a5CG@$@DЄ$@`5" `O_H_6  @_ T#CB9!@?$q)T!@?qT!@?qHTG@[9-@5@cO_H_G@[9-!$@5c@Cc@#9 @;@3B1% @7!8 A;@3@!@!#A'J+@/@7@@-@a5CG@$@D$@`5" `O_H_  @_)T#CB9?qATG@[9-@5@c}O_H_!@? qHTG@[9-@5@chO_H_G@[9-!$@5c@Cc@W#9= @;@3B1 @7!8 A;@3@B@B#'˼+@/@7@@-@a5C,G@$@D$@`5" `O_H_C  @_iT#A9!@?$qHT@[9-@5@c'_C_@C9 @'_C_  @_T#A9?qAT@[9-@5@c'_C_?q`T?qAT@[9-@5`@c`'_C_@C9@'_C_ @_ T#CB9!@?$qHTG@[9-@5@cO_H_G@[9-!$@5c@Cc@#9e @;@3B1ͩ @7!8 A;@3@!@!#'+@/@7@@-@a5CSG@$@D$@`5" E`O_H_j @_T#A9!@?$q T?q`T?qAT@[9-@5`@c`'_C_@C9{@'_C_'_C_8 @_T#A9?q`T?qAT@[9-@5@c'_C_@C9 @'_C_  @_ T#CB9!@?$qHTG@[9-@5@cO_H_G@[9-!$@5c@Cc@#9 @;@3B1 @7!8 A;@3@!@!5#'&+@/@7@@-@a5CG@$@D$@`5" y`O_H_ @_T#A9!@?$qT'_C_@C9@'_C_ @_ T#CB9?qATG@[9-@5`@c`=O_H_G@[9-!$@5c@Cc@,#9 @;@3B1z @7!8 A;@3@!@!#@'+@/@7@@-@a5CG@$@D$@`5" `O_H_ @_ T#CB9?qATG@[9-@5@@c@O_H_G@[9-!$@5c@Cc@#9 @;@3B1 @7!8 A;@3@!@!#@'3+@/@7@@-@a5CG@$@D$@`5" `O_H_ @_ T#CB9?qATG@[9-@5 @c eO_H_G@[9-!$@5c@Cc@T#9: @;@3B1 @7!8 A;@3@!@!$#@'ǹ+@/@7@@-@a5C(G@$@D$@`5" `O_H_? @_ T#CB9?qATG@[9-@5@cO_H_G@[9-!$@5c@Cc@#9 @;@3B16 @7!8 A;@3@!@!:#{'[+@/@7@@-@a5CG@$@D$@`5" `O_H_ @_ T#CB9?qATG@[9-@5@cO_H_G@[9-!$@5c@Cc@|#9b @;@3B1ʦ @7!8 A;@3@!@!;#{'+@/@7@@-@a5CPG@$@D$@`5" B`O_H_g @_ T#CB9?qATG@[9-@5@c!O_H_G@[9-!$@5c@Cc@#9 @;@3B1^ @7!8 A;@3@!@!<#{'+@/@7@@-@a5C G@$@D$@`5"  `O_H_ @_ T#CB9?qATG@[9-@5 @c  O_H_G@[9-!$@5c@Cc@ #9 @;@3B1 @7!8 A;@3@!@!;#{'+@/@7@@-@a5Cx G@$@D$@`5" j `O_H_ @_ T#CB9?qATG@[9-@5@cI O_H_G@[9-!$@5c@Cc@8 #9 @;@3B1 @7!8 A;@3@!@!#@'+@/@7@@-@a5C G@$@D$@`5"  `O_H_# @_ T#CB9?qATG@[9-@5@c O_H_G@[9-!$@5c@Cc@ #9 @;@3B1 @7!8 A;@3@!@!,#@'?+@/@7@@-@a5C G@$@D$@`5"  `O_H_ @_ T#CB9?qATG@[9-@5 @c q O_H_G@[9-!$@5c@Cc@` #9F @;@3B1 @7!8 A;@3@!@!,#@'Ӷ+@/@7@@-@a5C4 G@$@D$@`5" & `O_H_K`_ @_i T#B9?q T?qTs d @3@KB5 BBBA7q@ 7@K@3@@9x\K@#@ ݶ@@A_T?TA! @B˄@:#@'@[__J_@[@__J_@#[~__J_@  @@ 9_@@ 9_ց @_IT#/@@@BL @@ @ /@@?iT? T @@@@c /@@@X@_ TH TAˁ-!%@e5o L%@e5Pf H@e!@a5 \ H@? X@ X3@ 7@p @@/@C@dџT@CaT}C;?_E_;?_E_\@#X@B1 @!!t#@@!!;?_E_;?_E_;?_E_n e  :i @_IT#/@A @C@D@@X@?T#O@@ @@@@ #@#-@`5C _ @37_E_5   @_T#7@9-!$@5Є``c` lt$@d5xҷ  9'X@X@# @@@#@7@$X@'@-!'@+bQX@;_F_@7@-!@+@'@@ @jThe8|@B|`@B@C9@?@ T`T T'@{C9@(T(T,T@%7@7@x@t@-!!@a5 W t@x@;?C_F_7@|@!|@&,ƀ3@@_T _{@97@-!+@@#7@`@A@'@{C9 ?@(T7@@7@@ @@ @9 ,4@@@+@7@-!!@a5  ;?C_F_/. @_T#?@dX@Te\@d\a @d@e@`X@H T&?/  /@?@b@? Ta X` @a@"_ T'B5 !!+B?@ @'@?!@@ T3  ?@'@3@ +@-!!@a5@ `@a@ @b@d@e @ˤB ?@?@"@# @`@@_T CG_G_   @@BT#hb8qT@T$qT4qT(qT@9_9_ @C_)T#O@ @@"y@?O@"@9S@ W@99@@@?@9AC9T ?@@@@ @?#Tc!˄BO@@e$@@/37? @-@5O@#O@"& /@7@3@O@@ 9@@@ @$@ #'@+@'@"O@C@a@d@e@` @T![__I_ր@@ @ ?@C@;@aO@ -@d5# "` ,9 ; ?@>YC@[;@__I_[__I_[__I_   R @_ T#@@+#@/'@3_C_& @!!5!@+~/3_C_ @_ T#7@@@@?@T5 K@#@?@+';@ ] ?@7@@'@@-@5+@@+@g_F_@ @!!GK_F_| @_i T#'@@? @T?TC@9@@@qT'@X@!X @/'@\@X@B1 @@!@@!!+/_D_+/_D_C@9@@@qaT'@X@!X_D_'@\@X@B1M @A! @@!!+/_D_+/_D_  @_T#; *@@#'_C_ @_ :T#G@_C@9@@@C7qTqTqTG@@? TX@!X? TX@!Xq!-TG@@?TX@!X @@@@@KOSW_H_@@@@KOSW_H_G@@?`T?'T* @7G@"@/?c: @@@/@G@ SW_H_7@@@ y@!*KO _H_tqTlqa T G@@?iT?TX@!X@@@$@T3 @@#@G@A-!!@a5CA`3@#Ex!@@:K`p8O _H_@@@@KOSW_H_tqTG@d@T T@@@@KOSW_H_dX@dXa@d@ ?ITx``b@d@_CTa ?T@`aT}`@:K`8O _H_qa T G@@?iT?TX@!X@@@$@T3 d@@#@G@A-!!@a5CA`3@#Ex!~@:K`8O _H_@@@@KOSW_H_q!TG@d@T Tv@@@@KOSW_H_dX@dXa@d@ ?I Tx``b@d@_C Ta ?T@`aT}`@:K`8O _H_G@ @?iT?AT`6{ @;|G@! u@@@ SW_H_;@@@KO _H_@@@@KOSW_H_ SW_H_F5D3 + @C_ T#O@@? T@B0&"_T? T҂B>?T?TaB@?!T!҂BH<?T@B0 ? T ~BH;+B9#9 @C@7O@C\@3BX@/1 @?!8 AC@7@;@+@#@'@?@@3@/@-!!@a5C@ _c_I_ @_T#@C@9@tqTq9_C_ @_)T#M @@@CX@ cD @E@JTThc8qTT$qT4q@T(qTCX9_C_9'+_C_j O@\@X@ _ @_ T#'@+@ bB-@@?T+@_cT _T'@/3A!`7;_D_'@/+@3_D_D3  @_) T#;@`7@#9_F_`' bB-@E@@_CT _TBB'@'@@C@T#+?@ p@9C@#@+@@#9_F_#9_F_  @_ T#`ޜ @!8#_C_ @_T#р0@A!&!$@ ?@ @!,!. -@5!,!.#",B.T!,a!@!#@?D& %,.#@5!,! .#",B .;!9'+'@BB&@$@?@ @!,!- -@5!,!-#",B-!//3/@BB&@$@?@ @!,!@. -@5!,!`.#",B`.@#S @7`{a-!"@5",BC",B@#> @7`z`-@5 ,",B_G_W @_iT#+@/@7'@  _D_ @_iT#+@/@7'@ _D_ @_iT#+@/@7'@ Ң_D_ @_ T#с@@@'@ +@/@3@A99A99_D_h"@#T#$ @_T#с@@@A @B@C@ 7@;@?@C@##B9#9'B9'9_F_:"@AT#$ @_ T#с@@@'@ +@/@3@A99A99_D_"@#T#$ @_ T#с@@@'@ +@/@3@A99A99_D_"@#T#$ @_ T#с@@@'@ +@/@3@A99A99a_D_"@#T#$ @_ T#с@@@'@ +@/@3@A99A99_D_"@#T#$ @_IT#с@@@A @ /@3@7@;@A99A99_E_r"@cT#$ @_ T#с@@@@@& @!!5!@~~#'+_C_ֻ d"@T#$@9o @9 @9@9 @9@9@9C9@9@9@9@9@9 @98 @9i @9`@9,@9S@9@9@9w@9G @_T#с@a@ ޭ@@#'_C_ "@aT#$ @_iT#@@#@C@@E@aT zr@9@@#@C@D @ @?T lr@9@@@#@C@B@_T m@9#9_C_a @_IT#с@'@ @@ z&@@@+/3_D_֕ >"@#T#$ @_T#с@A/@`@@ @zQ*@@@37;_E_k "@cT#$ @_)T#с@@@@_A_J "@cT#$ @_iT##@@@C@@E@aTA@@T l@9#9_C_ @_T##@@@C@@E@T fl@9@@#@C@ @E @T q@9@@@#@C@T@C@@E@?TE @ @AT Bl@9#@@@"@! @ 7l@9#9_C_z @_iT##@@@C@?TA@@!TA@@TA@ @B @@?T l@9#9_C_Q @_T#с@@@_A_֐ 9"@c!T#$ @_IT#с@'@ @@@ +@/@@99_D_i "@#T#$ @C_) T#с@o@A@B@s@BT P"@;Tw@T P-@5"@@;T 3@ \-@ 5@@;T 3@ H_M_ "@cT#$ @_iT#с@!@@@! @ ? @@#'_C_"@T#$ @_IT#с@@#@ @? @@'+_C_z"@T#$ @_T##@@@C@?!TA@@TA@@!TA @ @TA@@!TA@@TA@@B@@?T j@9#9_C_= @_T#?@@@D@<@_KT T@<@b TB _)bTc? @@#@?@AD-!$@d5C<D@ˢ _-@f5_B9@@<@?T ?T }cc@`B@T/+3 *+@?@"<@!@@@?)T3@?/@$-@d5Ch _G_  @_iT#@ |099@L@C9r_B_ @_)T##@'@A+@@@-@5@ @Y cA9@h!8!? T3@"}$q@@7_B_* B5 c @_T#7@@@! @;@ ?@C@ ?@@@?@T,4@@_F_'+ # @@ 5 . @_T#7@ '@+@ 3@@/@/@KT3@_cT'@+@ _D_.  @_T#'@@9?$q`TA9 @A/@"BB B|+@Bb+cd@e@c@   _D__D_ }/@+@_D_*  4  @_T#K@?@C@G@K@+@T@@<@"T @@@ T#)|?3/+@@T$@@,@_TT@ˡ! #?@,@/@E+@@@ ?@/@O_G_` 3/9@+@'T@(6+@@@ @K@?@/@#@3@@@9+@'@H@L@ J Tay` 9=@K@?@/@#@3@@@9S@i7$@@ _ T( T/@ˡ! ?@H@L@@JT!xc+@ 9?@@/@'H@L@ T!y` 9@K@?@/@#@3@@'@$@@ _THT/@ˡ! ?@@/@K@?@#@3@@   TE    @C_iT#O@CL@7D@C[@S@W@ TA@@H<@T @T3 @O@"@7@3@[@@P'@G6?'L@)H@*P@_BT;/ /@@#@O@AP-!$@5CHC@O@C@S/@?@3@;@#L"y' @O@"P@#L@c_T#L7@C@[@?@ @__I_ք T(@@)<@T(  @@Th(  @*@* _ BA@9?LTaNL 1` @_T#@CA9qT@0@@0!qTqT A @C@D$@@(@?Tc R@0@@A0 @(@b7!0@ @@(_9_C_'  @_ T# 4@ @ @bC@T?@@ۈRnrkT@9ߠqT'+7@'@+@C@?@?@&ƀ?aT@@;@ -@`5#" _F__F_+ }ȥ@@ @!* }2  @_T#@ @@#'_C_ @_ T#?T9#7@!!'+@99@+@'@@ m_F_ֽ-_F_T @_ T#G@C,@mTCA94G@ _9A@@C<@ ?IT }`a$@fh`'@H,@I0@BT73/+; @@#@7@A-!!@5+@;@h!G@/@3@   @9__9@@@/G@@_H_  @C_ RTC~#?TO9cc{@ws$@O9@@-@TCh`8gA955WqHT$@ qTqT@IT7@Bh @)Oj$@k@_ T[K5 =@#@7@[@K@Ko` MO@@ K@$-cd@5o@ o@T-c,@7@, (@AT@ˢ! @0@@!0 @(C@"W@_$q9@@<@џ=T}ӄ`Ѧ@hd@ ,@ 0@_TK9gkOKG ޕ@@#@g@A-!$@5G@k@h$C@K@O@@W@KA9$ ˋ@99@O_(q`T_0qT_0qC9W@0qTO@`T@@W@0qT@d@(6+@@@ @@C@@@@%qATf@&6@#/T;@Bh @)Oj$@k@_ TWK5 o@#@;@W@K@Ko` O@@ K@$-cd@5o@ o@-c,@;@, (@&T@ˢ! @0@@!0 @(C@ W@_qTc9_qT9c_qT9cc@@@qT@c T3@Bg @(Oi$@j@?T_K5 @#@3@_@K@Ko@ O@@ K@$-cd@5o@ o@-c,@3@, (@T@ˢ! t@0@@!0 @(C@@b6#9@@@OkTqTf@6@@_CTTO/Hh @Kj$@k@_ TGc5 @#@c@/@G@Go` K@@ G@ $-@5o@""o@ ,@/@ ,O@C@@@@@ T?@Bb @%Of$@g@TKS5 L@#@S@?@K@Ko \O@@ K@ $-@5o@ "o@e ,@?@ ,@O9@s@@w@ _@C_ *_@C_\k @_ T#@#@ c@9#9_C_D @_T#,B-C@A@? T`@a@ [x@@@b~'@ @@'+/_D_@? @@@'+/_D_+  @_iOT#@F9@9@&,B-C@A@? MT`@a@ @@@@-@a5C@ @F,B-C@A@?IT`@a@ v@@@ -@b5#"@@@Ҁ-@5!x(cx(-,@A9\@a@5a!@\cc@~h@+!@: +!@:%@H@@e5h@ot@x@|@T@@ @@@tAx-@a5C|AXA@,!#@!5A@a5CAEA@!6,!#@!6A@d5CD1D@,Є@A@a5CA@"A8@cD<@C_O_c j T/?(xcS q@)G3 @@A @ 6@!*gkS@@@ +@!*os= #@@S@ p-@b5#l"`c@@?@C@/@3@G@S@ T`6 @@#@ -c@@?@C@/@S@  @k5x%  E<F@A_@d5G8+@:@#@!@ }@`@@B9aB9+!@:!@O8@<@@@ T@9@-.@<@$8@@@bT`6 ;@@#@@A@-!$@d5C8_@a$< -@5O@x!O@Q+! "@!@[; D@H@L@ .@9@-3@H@$D@L@T 9 @@#@@AL-!$@d5CDD $H$|;@h$-@5[@"" [@B9 +!!"@K!@7D@H@L@ s.@9@-3@H@$D@L@T 9 @@#@@AL-!$@d5CDD $H$|7@h$-@5K@"" K@  @- `@ T-BD@d5#X$-B#8@W$<@C? T@bxe$X@ @F4@G8@ ??@@-BW@C@KT#T@$X@T@ @@ڐ@-@5@@s_O_ ҪҨ  @_)T#/@@@D@H@L@ %@@#@37;_E_k@F9C9_ց @_iT#, @/@!@$ 3@7@;@@#@?C_E_E @_)HT~#x{?T{9@@B9@"? DTC|@hc@h!T7 `@9@7@@@@@@w93@@D@H@L@ $@#@@@c=3@?=TW @@c˄|@!wA99AH#@'@@D@H@L@ W@@;@_@[@C @?@-!"@5@ @݌ @-!"@5@W@?@ @@vW@r?@oO%@@&@f5 c@99@4 @-@5?@#?@"PO@-!@4 @-@5O@# O@"`=$@, @@$$@d5#" /;@ _@@@cC@g@"@!@ @߆O@?[@C@_@_wA9 9GC@9$@@A @Zp@zB@O@ 9@?@G@[@O@ [@G@_@_! @ ? @@B*wcc ({ @!*@@@ ( @O@?_@_@B9O@FC@9`@B9O@EC@9@D@H@L@ O@@@@b@d@bBO@@{9O@?9`@:@@? @@ @ O@@@ @@ @kosC5C@9 C@U@@h@+!@:!@#H@-!!@a5h@`h@A@O@ ? @@@O@ @A9@6{9@@@ y_@_O@ @@A9@6{9@@@ b_@_[S@O@ [@S@A9@6{9@@@ F_@_[KO@>[@ K@̀@@_@_ Հ+ :@@@O@?_@_O@>_@__@__@_@5 e%_@_ @_ T#7@d@@@;@?@ @ @ ?@$@%@e -@`5#I" F+'9 @@-!"@5+@ +@#'@$@5@ `@ @@@-@5#@A#@}` A@@?@ -@`5#" i_F_ @_T#,-@@@,c c@7@Х@$ 4@#@@@@'+7@@@ #@+:@@@@?_F_T @_)QT~#.{?T9@/@8@s<@Gcj TC7'xcWp@(;K@ @ &@!*W@@@ @!*= c @@W@ p-@b5#l"`@s@G@C@7@;@K@W@bT@6 @@#@@s@G@C@7@W@ -JK@k5x$  <@-!$@d58@@D@H@L@ Q!@#@@@#<c@@"@#@! @ @@@@d@9c@ƀ @9D#@'@@D@H@L@ c@[ @?@o@k@OЄ @-!"@5@c@@ @@;c@7@4@@ &@f5*[g@99@4x @-@5@#@"4i @-@5[@# [@"`$@, @Є@$$@`5#g@?@ o@@@wO@{@"@#@ @@@@ @<@T[@@[@@@@ @I@>@k@O@_@_CC@9"@@@Zp@B@[@ @9@?@@@[@ _@_! @ ? @@B*cc ( }@!*@@@ ( @ct[@@_@_@<@?mT[@6CC@9_@_[@@"@#@! @@B@9@D@H@L@ [@M@@@@d@bB[@@9[@?9`@:@@? @@ @ [@@@ @@ @CC@9 C@@ @h@A@[@ ? @@@[@ A9@69@@@ d_@_[@ @@A9@69@@@ M_@_k_@[@ k@_@A9@69@@@ 1_@_kS[@?k@ S@}@@_@__@__@__@_-"_@_r @_)T#7@d@A@;@ ?@ @ @" +?@@@7@;@ h?@@@+@-!!@5@H @hD'9 @@-!"@5'@ '@T#+@$@5@ `@I @@@-@5#@A#@8` |@@?@ -@`5#" $_F_K @_T#/@8@#<@@b@#@_*T xb3@ 7@X@9@;_E_;_E_ @_IT#_@T@X@!@ ?@ @ TC҅- ҂-B cgk_K_S@@7?SK3 @;&@O @?@O@;@3@$7@cTK@G/ K@ n@@#@3@G@/@&|@h&@-!&@f5  -!3@7@K@?@C@,T @_iT#G@8@;<@3B_T&xbLC9-)gT/7+@6 @@#@3@;@/@+@7@ -)*@j5x#;KOS_H_] @_T#'@D@H@L@ R@@@+/3_D_? @_ T#@@Z@@#@'@ +@?'@+@ ]_C_  @C_T#O@@ @ !0 @A#@'@O@/3@@ z@!*7;3@/@ z@!*?C~ @@SW_I_ @_IT#@C@A@@jTT|aha`@#_B__B_ @@@T @!@ _ @_IT#'@@@?kTB*! @k@+@/3_D_ր- +_D_v@@ _@@C9_ @_iT#/@@B* @#/@"@!@c* @##@3@7;_E_A @_ T#'@A@B@+@TCx`d@c@/@T@x`@@ B@99_D_43 @@ _ց @_iT#@@@@Tx` @"Txf -@5x x&_B_  @_T#G@@;@/O@T%xd@@!T+3K@ {X@9G@;@/@O@+@3@ @$@@T@6 P@@#@3@A-!$@d5CD@u$ -@5S@x!S@e_H_@7 @7O@@-@5K@AK@Q? @-@5S@aS@B@7@ @a5@7G@A@%F@G@bT/ @@#@-/@G@7@  @i5x!EF@`5G _H_3N @_ T#'@@B  m@'@"@!@@ TExdbT|ӧh&- @i5   +/3_D_ @@@ _ @_i T#G@@-!-!$@5- @-c @; @3B_JTxbLC9hhT+/7@6 O@@#@3@-!/@+@;@7@ *@j5x# oKOS_H_ @_ T#/@x@|@t@# @@$@@37_E_@@37_E_h @_=T#{?T_9w@T@?9TDC9A +! "@!@K/ \@`@d@ #@9w@-3w@`@$\@d@T9 Ȇ@@#@w@Ad-!$@d5C\D$`$|/@h$-@5K@"" K@{@"@BF9b@P9 '{@@ @#@$@! @DA-!$@d5C@9w@ 9@3@@{@"@?c @-!"@5?@3@{@ @?@3@{@@@ %@e5;G@99@`4ق @-@5{@#{@"v4ʂ;@` @-!$@d5 h@+Є @@$$@d5G@Y$@5w@ w@Qd@e@@9@@ zL@A@ 9 ?@@;@C@ '_N_ @? @@ B*OCc'S Xw@!*W[;@@"@!@ c|;@@"@!@ |w@@@;@ z9_N_C <@9w@\@`@d@ ;@ @@@ w@`D@A! kg;@c_@_9;@[9z@@@@? @@ @[A9;@w@dH@-+`:@H@-@f5dHb@@d5# C@zH@@@? @@ @;@C@ [A9@6_9g@c@_@ P_N_;@C@ z[A9@6_9g@c@_@ ;_N_7Kw@@@;@ 8K@ 7@6w@@_N__N_ 9_N_{@ @@_N__N_r  @_)T#7@D@@@;@?@ @ @" +;@@?@C@D@ ?@@@+@-!!@5@H @D'9i @@-!"@5'@ '@#+@$@5@ `@M @@@-@5#@A#@` v@@?@ -@`5#" _F_ @_)T#/@@@\@`@d@ @@#@37;_E_@PC9C9_ց @_ T#G@@@\@`@d@ ^@#@@@C;G@@C9 K@ @O@?@/ @7B؀ @! /@"+_hT@!* @6@#@+@_/@C T3/B*bBB| 7@W;@3@ +@/@@@;@W[__H_K@ @O@? @@@;@ G@B99;#@'@#@bG@\@`@d@ ;@"@@@W[__H_;@W _H_W[__H_W[__H_@[ (S @_) T#F @?@@@A-!!@a5C @a+@?hT@3/* @@#@+@?/@3@#T/3!*!!|A 3@C+@G/@K_G_@   @_ T#G@C@D@7;C @a'B@?T@3+* @S@#@'@_3@+@'@CT/!*!!| tO@'@/@B@D@E@T+3K@ ?S@9O@'@3@+@c?T9_H_@9_H_@ t @_I>T# c@@"@!@ it@!*GK_@@@ ^t@!*OS= #Ny@C@/"Bjc@@ @#@-!$@d5CD/@D$@5C@DC@_@l@p@E %@e5CE@ C@E@E %@e5CE@@@E%@e5CE$@(@E4%@e5C0E,@0@E$%@e5C E@l@%@e5ClE`@@E%@e5CEP@T@X@E<F@%@e5C8E\@`@d@EHFL%@e5CDE DC9E9HC9E9@(@,@E,%@e5C(E@x@E9@|@t@x@FtEx%@e5C|Eg@@@E%@e5CEZ@@@E%@e5CE@M@@%@e5CE`B7@!F9A9!~ @`- `7@ Tb-BD@d5#X$(b-B_@dP@?eT@/+ T@xf#X@ @E4@G8@ ?+@7@b-B_@?@/@+T$T@%X@aT@ c@@!B97@A9_@#<@d-@e5C\ Ed-#@@@e5C`E#D@@e5CdE #H@c@e5ChE@e+`:@H@@e5ChE@#L@@e5CpEC8@;E<@/ c@_@;@d-/@T'`xf3!} @_@@@bb-BD@d5ab-B3@@@d D@d5e d@|b-B7@<@8@'@"Txf%x%|G@g5#t!hb-B >@@gk_K_` q z  @_T#'@\@`@d@ r@@@+/3_D__ @@@cTDxc?aT@9_9_@@@`@ _ @_T#/@@3@ 7@;@?@@@CG_E_% @_ T#;@?@ 7@O@;@?@ 7@F@9+!%;@#?@'+ c@9;@?@ 7@b@@!!@ ?C@99_F_9_F_@9_F_9_F_ @_)T#@@A @B@'@d@c@aT qP@9@@ 9_D_ @_iT#р9| @@@ @@@@#'+_C_ @C_ T#р9| @CO@!@/!E"T;  @@#@C@;@/@ g-@h5x",73xa?.?@@3@C@/@7@_,T@@@SW[_I_8 @_T#?@@`$_"T3/ @@#@3@/@e f-@g5`x!CGK_G_ @_T#'@@@a! +@/@>@@@@B q@ @@? @@37_D_ @_T# {@@ @@@ @A@`-@`5C#'_C_ @_T#'@@@@ @# @+_D_ @C_T#w@@+ E"TW @@#@W@w@+@ g-@h5x"2K_Tx`c @ce`@c\@TGCI @H@D@?TG _M_c@c@Cc@3@O$@?@ @T?s@C@G@?T!@$@%@_T;_o@ N@9 ?@_@s@;@cT3@{O@_M_[@C@?[`@/a@S@@?@ @T;s@ ?@C@? TG@w@+@K@!@$@%@_T7_o@ N@9 ;@_@s@7@cT/@{S@_M_< @_I T#O@@+@$_T7 I~@@#@7@+@e f-@g5`x!k3/@@+@3@? T/ax`;"@B@dЄ G@K@Վ@@@;@@S_H_S_H_n @_T#7@@@B Xp@`7@@@!@ ? @@;@/@ 3@7@@@#B p@ @#@? @@;@/@ 3@_E_* @_T~#CC~TC{ԏ @ @ko@C s@T@ _@_g@c@Kg @#@@?@ @@T;lTS?S@T_sK@@?Tc@@Gc_ @$@ @)@?@[bB- @@9`_@_@ @@bB [@?@@@G@;@?LT@@B [@?@"B@#'+@O/@7By @7@@`-@5O@@O@J`_@_c@c@Gc @#@ @@W@CbB- @@9@W@C@ _@@G@;@?Te> @_T#@@'@"@!@cc- @@9_D_ @_IT# By @!"a-!!@5@ @#_C_ @_T#@@?W@"@!@ !-@@#@?i T+;@@ @@;@K@@7KC/D@E@ @/@?@C@#7@!+@_T?@$@%@&@TG3* L|@@#@?@Aa-!$@d5Ct3@G@&@`-@5|ӣh c_J_Ң g @_ T#7@C@D@E@ATC@A@?iT`@a@ vm@!*'+`} #@fr@@;?_F_  @@ Pm@!*'+`P1  #@@r@@;?_F_G , @C_T#s@To@,ҠO3/?:x @/@@3@@`-@5O@@O@ _M__M_c@@Kc/O3 @?&@W'* m@@a!@ ?C@9`-3@/@O@F?@@W@?@ @TG>/@3@cTO@;S*O@ H{@@#@S@;@/@G`-@5|Ah# e`-3@/@O@K@!s@,T)_@@C_;_9S @7&@[ S@@{@ L7@;@[@S@!C@B@9_A9cG@LTCV- @_IT#р?vw @'@a! q@@@@`@@@ @?TcB @@h+/_D_37_D_I  @_iT#р?6w @#/@a! 1@@@#@A@C@D@@ @?Tc j@@ @@37_E_;?_E_  @_ T# v @@B  @ck@6v @oy@`-@5o@#o@y@`-@5o@# o@"sy@`-@5o@#$k@A o@" ek@`aa+!!"@!@ K@@@@#g@8@<@@@ @s@[@W@dD@eH@fL@ n@@@  !x #'!+/@9 7@c?@O;@G@dD@eH@fL@ H@@@  @!p8!8#'#+ @/97@_?@S;@KcHv @`-@5@A@W@A[@A @5s@AA s@G@AO@A@5c@AAc@K@A S@A$@5_@@@_@g@@ @@@qi#@'@_O__O_ @_.T~#@@BM+T&xbLC9goW[@k@"B @ @@@g@C@D@k@cO@wE @GG@T@k* @y@#@G@_@O@w@k@G@@@g@C#TsK*!!|! 1s@G@ K@ @@k@g@ Ij@!*@k@ ?j@!*w@O@ 5j@!*p'B #@%o@{@S@C\@D`@Ed@ c x #'+/@9;@7@?@T{@S@,  @@@ i@!*,@ @n@@{@ S@@@W@[@cT@S{*@ [x@@#@S@W@{@Ga-!(@5|@h#x@T@P@X@Tc_ @@@c@Ck_@cT@g*@ x@#@g@@k@c@_hTgc*B|BB =a-!g@k@@@@o@_@_@| I @_i*T~#@ T@e- !b-B /?c Wi@! c@?@/@_@_s@@SsC?c @&@g0 j@@@`-C@?@c@_;oA@ ?@ @TO@@@@ @@;@$@@[@7_@?C@97@[@#@@ h@!*w{@ @m@@[@ 7@Ѕ@@E9Kko@_@ @@k@ K@@@  @@@?@"C@cTc@Oo*c@  w@@#@O@?@o@`-@5!|ӣh!AS@!@,T6g@@Gg[7 @%@ 5@@@7@_kT[@3W[@ @@^@@3@W@@7[MT =h@!*w{T#~ @-m@@[@ 7@7@@! h@!*w{@ @ m@@[@ 7@@@G@BO@,T @_T#G@@K@ ?G@@ @;@7K@? @@7@;@;@ 7@Bb #@'$+@/@8 ̈́@@OS_H_ @_) T#?@@'B* u@?@"@!@_T3+'@  @-@@CG_G_/@@#/ @"@ @? @@#@'@?T3@`-@5%|Ӄh%0!+@Tj O @C_ T#O@@/B u@O@"@!@_T;/@ /@SW[_I_!@&@'@T7C/3?! u@@#@(C@;@7@/@?@3@|h)g-@i5    d_T @_T#7@@@'+H  #@k@@;?_F_@@ _ց @C_T#O@!" S@g@@@ 37;O@ @S@?@;@ 7@g@@O@@@?S@C`+@ @@ ~@YkO@@@?S@C`+@ @@ @ l3@@7@?`+:@@@ @?_I_&O@ S@Zg@@@ @a+!::@A@ ?_I__I__I_E| @C_ T#O@@S@?@ @T3@ @W_I_;@@/;+ @'$@7& g@@@b'@`+@+`@?7@Ca+!@ "@#@ @k"'@ 7@f@@a+@ !@ ? @ @/@3@?,T @_IT#`?p @'@A! -@@@@`@@@ @?TcB |@@h+/_D_37_D_  @_ 3T# p @@B  @cO 6p @Ws@`-@5W@#W@Gs@`-@5W@# W@";s@`-@5W@#$O@A W@" -O@`)a+! "@!@ @@@@C'K`- k @D@H@L@ Ak@o@s@@@@@ '@+@#@@dB9D S73 `+ @@cgo@s@k@ @'@3@G#@7@cTS@C_*S@ s@#@C@_@3@G@?T7SB*!|! @G@7@S@dB9D [?; `+!@@cgo@s@k@ @N'@#@;@3?@cT[@G_*[@ Ms@#@G@3@_@;@_T7Sc*B|B l@3@7@S@3S7 @@@@ C+@'@3@G7@cTS@C_*S@ s@#@C@G@_@3@_ T7Sc*B|B '(wo @`-@5@A@G@A7@A @5S@AA S@k@o@s@AD@`5C@K@@ @@@b#@'@_O__O_52/ c @_oT~#'A#AE- BgT&xbLC9ggkA3A 7A;A@@{@C@D@C @dCE@T@cw*c @Sr@#@C@_@w@C@@@{@CeTS*!!| o@C@ S@@7@@w#cAC@D@ c@!*@{@ zc@!* @w@ pc@!*`D" @`h@@ @c_Tcc@{@@"Twc5 q@#@c@@w@w {@w@@@@@   @B0]#@'@ c@!*} @h@@ @c_Tlc@{@@"Tw_5 q@#@_@@w@w {@w@@@DC9g@k@@z@@ @A;@?T@#{*# @Oq@#@;@_{@@@;@CT[*!!| m`+ @@A @@;@[@ '@#@g@{k@cT@w*@  q@#@w@@g@{@_:Twc*B|B ,@{@w@@{w@@ @s7@T@* @p@#@7@_{@@s@7@@@w@c2T*!!| /A@s@"Bs@@To* p@#@/Ao@s@?-To*b!|! 7@@Ćs@/A@o@@@-@5@D@w@@@{@cT@G*@ jp@@#@@-w@G@/A@(@5|#h${w@d@f@d @Kh@T@#s*# @5p@#@K@_/A@s@{@K@w@@@-@TW*!!!|A M@\@`@d@A @K@W@'@#@{@sw@cT@w*@ o@#@w@{@s@@_hT{c*B|B @T@?T{@s@@Wl @@@@AA-!$@d5C @d?@hT@w* @o@#@?@?A-!w@?@@@C TO*!!|A Ʌ@P@T@X@A /A@?@O@#+@'@s@w{@cT@{*@ jo@#@{@@s@w@#T{c*B|B {@w@@'A#A@?CG_@_@@@@* ' ` * ' Y @ w~ @_IWT~#@ T@E- B-B _@_@@cSO @&@KG0 =a@@D-O@S@@{G@@ @@u@@_@C@D@ %`@!*@_@ `@!*@< c e@@ @_T;@_@@"T[3k5 n@#@3@k@[@[ _@[@@ K@ @R[r?k(TsR3r?kT!5T@A9@ =!@95R[r?kaT!@9T@A9` !5,!@9$/Rۗr?+T!;T@A9@ !5! :{hRJr?+aT! :!T@A9 !5 ! :!@9!5!5  @T@ @@BT_[!5 n@#@[@!5_@@y@9h x9G@@{@ ?@ @T_G@$@{@ ?C@9`  @T@ @@T_[!5 m@#@_@[@@y@9h x9G@@{@ ?@ G@@{@? @@  @B0E#@'@ ^@!*} @c@@ @_TY@_@@"T[7s5 jm@#@7@s@[@[ z_@[@@O@@@S@cT@/gB*@ Dm@@#@O@g@/@FD-Є@5|Ch cc@@lT)* ' [* ' T@c@_@C#@$@b  K@@ m^@!*4< @]c@@ @_T@[@@"TW?o5 l@#@?@o@W@W [@W@@J @@ #^@!*L< @c@@ @_T.@[@@"TW;w5 l@#@;@w@W@W [@W@@C@_@?T* ' * ' * ' * '  A @_ T#7@@@ ]@!*'+@3 #@b@@?@_T;@ C@@3@@ ]@!*'+`* #@yb@@GK_F_h @_ T# @4h @3@A-!"@5/@ /@ $! rh @!A-!"@5@ @ ;@T7@+`7@+@7@( @`5,`C_E_#@@@#@@A@ @ ?@@@B@;@?TA-!@CGK_E_ @C_IT#S@TO@[_c_I_C@@7C;/+ @?&@3 @@@ )_t@@#@b@ h@9@Ҡ+@/@cT;@B9;@ Fk@@#@+@|3@h&F-@5?@  ?@gF-+@/@;@7@S@_,T @_i T#C@T?@ SW_G_!@%@&@/3  ! @Dy#@'@O@ @K@y#@'@O@C@d/@T  Oy@@O@C@/@C@3@BT! @C_ T#O@S@?T W@@@+@'B @ \@!*/3+@'@ [@!*7;[@!*?C+  c@`@@[@ _@x@@cg_I_ @_T# _@Oc@Sk@A??Tc@*c @Cj@#@?@_k@?@ TK!*ccc| g@dK@K@@C/3;K@@+@ b@@/@"3@cTC@7G*C@ i@@#@7@/@G@@-@5!|ӣh!;@!?@?Tsw{_K_@k 8w @_iT#/@3@ 9@@@ 7@;@r@@#@ @9t@@bB9?!T@@@?CG_E_@- ?_E_ 6Z  @_T#/@@@@ +!-!@9a+!- A-!!@53@+B-A+B-3@3@#@@\@9"@Cy!{?ka #@  p@@@ #@XT7;?_E_ @_IUT~#@@ @@@@c@;ƗR;r+ T{R,rkaT@`8T@ ! @G@@_@[@~ @@@_@ [@K@@_@_;ƗR;r+T@6AT@ ! @@@_@[@ @@@_@ [@@@_@_/Rۗr+aT@; T@ ! @@@_@[@ @@@_@ [@@@_@_;JR;r+aT@4T@ ! @@@_@[@ @@@_@ [@@@_@_W cDeq@@#@ V@@B_Thb8qaTC/;@@ W@?q@@#@S҄  aBH c @v#@'@?@@ S@@9s@@@?@ @q^@@S@C@O``TK@@ @K@S@O@@ aB8 c @}v#@'@3@@ S@ƀ@@ 4Y@!*@3@ @%^@@S@O@K_9@@ W@B&bp@@#@Wb  @@W@@K@@_A9:  aB@ c @v#@'@7@@ W@e@@ X@!*@7@ @]@@S@B@_K_9B bB @u'@#@K@_`T@ @ M7@9K@@_A9;@c9;@@G@ /@u@@ Y@@C@@  @7@@_@[@c@@`? @@@ @G@@@ VX@!*@C@ LX@!*= <]@@@_@ [@ @@_@_cJTbThc8qATcT bB;˄!!cc`Cu#@'@;@@L+ Q @_T#W@4@"@!@_ T3C2;7K@@@ @@ @@#@W@d@c@ K@7@;@#'@+@[__J_?@W@C@3@T;?7K xc@ @@7@";@cTK@/G*K@ 0f@@#@/@7@G@@-@5!|h!Pt @_T#W@4@"@!@_ T/C273G@@@ @@ @@#@W@d@c@ G@3@7@#'@+@[__J_?@W@C@/@T7?3G xc@ (@@3@"7@cTG@;K*G@ e@@#@;@3@K@@-@5!|h! @_T#_@4@"@!@_ T/C273G@@@ @@ @@#@_@d@c@ G@3@7@#'@+@cg_K_?@_@C@/@ T?73G xc V @a!'OS0  c@[@@  @?@@  @5@@3@"7@cTG@;K*G@ e@@#@;@3@K@@-@5!|h!%wI\ @_iT#g@4@a"@!@_T3,W?C@@@ @@ `@@#@g@d@c@ W@?@C@#n'@+@ko_L_!@'@(@ TK[C?W;S Հ5 !A!AG@@@/@+@?T q@@SW@9_G_@B9C9_ց @_T# +9@@@a!4@ ?@@#'_C_ @_)T#/@@@@ @@ "@@#@37;_E_׽@A9C9_C9_@@@ __ @_I#T#g@@ @$@(@,@ .@@A9!?3?@T?T@JRr_k TJRr_k TNRr_kTG?T@(Rir_kT@9q@T(Rmr_kT@9q`T,Rmr_kAT@9_qT. BD @1@T?@@9?qaT3@?qaT3@?qT3@ ?@@9?PqaT3@ ?qT3@6?qT3@@/ `>v^ @!! 3@ "-BC@5?@@?@ "-B+Х@+Х@E@e5"B8g@9@96;+  S@a!*GKg@@@ S@a!*OS+@`@W;@[ | #@L@@os_L_g@g@@@@ @@ @@?T/  _L_C@c@7C@@g@<@&A9@@9k@G;  A9@@k@ 97@/@?T @_T##@'@ @@#@'@ @9C9_C_C9_C_ @_T#/@@!! '@+@q@@@ @@!@ ? @@?@T?T@JRrk`TJRrkTNRrk`T=?aT@(Rir?kT@9_q`T(Rmr?kT@9_qT,Rmr?kT@9qT$ !D @Q0@LT@@9qTqTqT@@9PqTqT qT@ 8Ҡ9_D_9_D_9_D_ @_T##@'@ @+@#@'@ @+_C_+_C_ܻ @_iT#/@@!! '@+@q@@@@!@ ? @@ .@@3_D_3_D_3_D_ @_T##@'@ @@#@'@ @+_C_g+_C_ @_T#/@@!! '@+@p@@ @@!@ ? @@ z@@g3_D_3_D_g3_D_M @_T#7@@`@9 -@_ -@5!-! A#-c @A`9+c1d@e@?@+T;@ /@9?@;@ z@@@@7@@"@@"T+`' _@@#@7@A!-!!@a5C+@"`x!_F_CG_F_֠+1@@;@?@ @"#@'@ o@@@ 7@j@7@ `9_F_v @_T#7@@@@ P@A!$'+L@ #@U@@;?_F_ @_T#G@@@@ P@A!$ \@+@'+B1C@B@ wP@a!*/3+@ '@0n@@ gP@a!*7;~ cWU@@KO_H_F@@@@ _ց @_IT#@9!- O@@#'_C_&@B9C9_ց @_T# +9@@@a!4@ ?@@#'_C_ @_)T#/@@@@ @@ 2@@#@37;_E_@A9C9_@C9_@@@ _ @_IT#7@4@@@@ O@A!$'+L@ #@T@@;?_F__F_ @_T#w@@ @$@(@,@ @@A9B`w@'7C-Z @ -@5w@#4w@"MC@7@ -@ @#@?m T3Pw@@@@ @@ @@?T/ _N_S@c@?S@@w@4@G;-iZ @ -@5w@#4w@"G@;@4@@@{@G |?@/@?TS@c@?S@@ w@4@@@ @@@B?@3@?T@w@ 9KO w@4@"BW[@@ N@a!*_cO@@@gK@k   @H@@_N_˸& @_T#+@/@ '@@ @!! +@/@n@@@@BB ?@TT @@@37;_D_;_D_ @_iT#+@/@ '@@` @!! +@/@m@@@@@37_D__D_]@ B9C9_ց @_T# +9@@@a!7@ ?@@#'_C_; @_)T#/@@@@ @@ f@@#@37;_E_@A9C9_@C9_@@@ _ @_ T#7@4@M @a!'+(  #@R@@;?_F_ @_ T#g@@ @$@(@,@ N@@A9B `g@H/7 z@@@@g@ 4@ 96;C 7@/@ M@a!*GKg@@@ M@a!*OSC@`@W;@[> #@G@@os_L_g@ @"@#@$ @%@ @@?T+  _L_?@c@3?@@g@@@&4@@@k@G`>  4@@@k@ 3@+@?T<[ @_T##@'@ @g@#@'@ @+_C_+_C_ @_T#7@@!! /@3@[l@@ @@!@ ? @@ z#@@;_E_;_E_;_E_ @_T##@'@ @@#@'@ @+_C_+_C_ @_T#7@@!! /@3@l@@ @@!@ ? @@ z@@;_E_;_E_;_E_ @_T#7@@`@9 -@_ -@5!-! A#-c C@A`9+c1d@e@?@+T;@ +@9@?@;@ z@@@@7@"@C$@%@BT+` Z@@#@7@A!-!!@a5C +@C#x"_F_CG_F_֠+1@@;@?@ @`#@'@ Bj@@@ 7@e@7@ `9_F_t @_T#7@@@@ L@A!'+L@ #@P@@;?_F_е @_T#G@@@@ K@A! @+@'+B1C@B@ K@a!*/3+@ '@li@@ K@a!*7;~ cP@@KO_H_@@@@ _ց @_IT#@9!/ J@@#'_C_b@B9C9_ց @_T# +9@@@a!6@ ?@@#'_C_C @_)T#/@@@@ @@ n@@#@37;_E_#@A9C9_@C9_@@KO_ @_IT#7@4@@@@ /K@A!'+L@ #@O@@;?_F__F_ @_T#w@@ @$@(@,@ N@@A9bw@F7C/U @ -@5w@#4w@"C@7@ B-@]@#@? T3S@c@?S@@ ww@4@@@ @@@b?@3@?T@w@ 9 @"@#@$ @%@ @@?T/;KO C@7@ oJ@a!*W[w@@@ dJ@a!*_cO@@@gK@k$ @JD@@_N__N_S@c@?S@@w@4@;G/VU @ -@5w@#4w@"G@;@4@@@{@G` i?@/@?T$ @_IT#'@@ @!! +@/@Ei@@@@BB` ?@TT @@@37;_D_ҳ @_iT#7@@`@9 -_ -@5!-! A#-c @A`9A@#D@E@T` HX@@#@7@A!-!!@a5Cp @;@x!_F_ @_T#7@@`@9 -@_ -@5!-! A#-c G@A`9+c1d@e@?@+T;@ (@9@?@;@ z@@@@7@"@C$@%@BT+` W@@#@7@A!-!!@a5C+@C#x"_F_CG_F_ր+1@@;@?@ @d#@'@ Fg@@@ 7@b@7@ `9_F_t @_T#7@@@@ I@!!?'+L@ #@M@@;?_F_Բ @_T#G@@@@ H@!!? ~@+@'+B1C@B@ H@a!*/3+@ '@pf@@ H@a!*7;~ cM@@KO_H_@@@@ _ց @_IT#@9!2 G@@#'_C_f@B9C9_ց @_T# +9@@@a!`8@ ?@@#'_C_G @_)T#/@@@@ @@ r@@#@37;_E_'@A9C9_@C9_@@KO_ @_IT#7@4@@@@ 3H@!!?'+L@ #@L@@;?_F__F_ @_T#w@@ @$@(@,@ R@@A9bw@F7C2R @ -@5w@#4w@"C@7@ B-@a@#@? T3S@c@?S@@ {w@4@@@ @@@b?@3@?T@w@ 9 @"@#@$ @%@ @@?T/;KO C@7@ sG@a!*W[w@@@ hG@a!*_cO@@@gK@k @NA@@_N__N_S@c@?S@@w@4@;G2ZR @ -@5w@#4w@"G@;@4@@@{@G m?@/@?T $ @_ T#+@/@ '@3@'@@ @!! +@/@@f@@@@BB?@TT @@@37;_D_;_D_Ȱ @_T#+@/@ '@@+@/@ @@37_D__D_ @_IT#/@@!! '@+@e@@@@!@ ? @@37_D__D_z@@B9C9_ց @_T# +9@@@a! :@ ?@@#'_C_[ @_)T#/@@@@ @@ @@#@37;_E_;@A9C9_@C9_@@@ _@4@8@ _ @_ T#?@@ @$@(@,@ @@A9?@ 8 -@d5#4"Ը@"@9?@ @"@#@$ @%@ 1@@?T+ _G_3@@/3@@?@D@G4@8@@@(- @k5C@A!? 4@8@@@C@ 1/@+@?lT @_T#+@/@ '@@+@/@ @@37_D__D_ @_IT#/@@!! '@+@d@@@@!@ ? @@37_D__D_^ @_)T#7@@`@9 -@_ -@5!-! A#-c @A`9+Є1@@?@T;@ #@9 -7@?@A@$E@F@BT`* S@@#@7@A!-!$@d5C?@ -$DG@5 |;@h ;@ط_F_ր+1@@;@?@ @:#@'@ c@@@ 7@^@7@ `9_F_׮z @_T#7@@@@ D@!!9'+@  #@I@@;?_F_ @_T#G@@@@ D@!!9 tz@+@'+B1C@B@ D@a!*/3+@ '@Hb@@ D@a!*7;~ coI@@KO_H_^@@@@ _ց @_IT#@9!4 C@@#'_C_>@B9C9_ց @_T# +9@@@a!;@ ?@@#'_C_ @_)T#/@@@@ @@ J@@#@37;_E_@A9C9_@C9_@@@ _ @_IT#7@4@@@@  D@!!9'+@  #@H@@;?_F__F_ @_ $T#@D@4@ @?A!* Q@D@@?@AA-!$@d5CpD@4@#@!@D@B@E* fh@@ @$@(@,@ @@A9b@T7C@C4@4N @-@5@#4@";C@7@@C4@ODD@[ -@ [@O@@#@_-T/OW@B@?W @"@ @@O@ @@@?@/@?TO@`9@@ 9 @"@#@$ @%@ ^@@?T3;KS C@7@ C@A!*_c@@@ C@A!*gkS@@@oK@sx@ @<@@_O__O_W@c@?W@@@4@&;G4M @-@5@#4@"W@3@?@G@;@@D@@@@G  4@@@@G ?@3@?lT @_T#+@/@ '@@ @! +@/@a@@@@BB?@TT @@@37;_D_;_D_Z @_T#+@/@ '@@ @! +@/@a@@ @@BB@?T@3_D_3_D_  `.nA  @_T##@'@ @K@#@'@ @+_C_+_C_ @_T#7@@! /@3@?a@@ @@!@ ? @@ zK@@;_E_;_E_;_E_ƫ @_T##@'@ @@#@'@ @+_C_+_C_ @_T#7@@! /@3@`@@ @@!@ ? @@ z@@;_E_;_E_;_E_n @_ T#?@@"@#@$+@@$@d'/O?@@@+!@3c4 c#b@A!:-!!@53@ 3@?@@+!9:@A@@@ /@'@bB+@ ?_G_+9@@@$@%@ bB?_G_  @_T# @@@@?_B_ @_T#@@BMT#xbdLC9d;GHA $@@?AT@9_qT G@C@D@W[C @a/D@?T@K7@* @ZO@#@/@_G@7@K@/@T?A!*BB| ze?@i G@C@D@OSC @a3B@?Tc@7K@*c @$O@#@3@_K@7@3@TCA!*˄| EeC@ @@;@}_O_K@B@7K@@  _@@A!*_c@@ c|@@E7@3@?T@kK@B@7K@@  6@@A!*gkG@@@ +@@A!*os@@ c=#D7@/@? T@7  @C_IT#o@s@ -@@#@?T/ 9_M_S@c@CS@@ @G@3 @! @ `@@  ?@A!*W[G@3@ ?@A!*_c~ D@@+B-C@D@T?K7C@/@?,T@@@?T;O :@9K@7@+B-?@O@;@LT@9_M_rq @C_I"T#s@? To@C9c@q?o@T#˄@DT9@ӿqTc@{@T+Cw@_M_֥@@@I)4 aT;KaTA9@?@ @Ts@+@7{@o@C@K@;@I)4 TG@@3G @#@ @?@' @ /s@_jT o@B @9s@/@aT+@{+@'@mT?@C@ @9+@'@?s@+@'@/@E`T@C@?@ v@9@s@+@'@/@e?@ c@9@s@+@'@/@%! @ ɡ@@  >@A!*W[?@'@ >@A!*_c~ C@@  >@A!*OS@@ c@Ds@+@3@7@TH@@ Z @_IT#Ѡ zI @!-!!@5@ @#_C_: @_ T#B@+c-a@c@?-T ? T|aha`@T#9c@q#+#'7@C@dD@eH@fL@g@c@ +@@7@!@\@`@d@$@!@'@#@ _F_7@@AP@CT@BX@@@ 7@@8@<@@@@@ _F_  @_)T#'@+@ /@ 3@D0_D_ @_IT#O@ G@"@C8@3B<@' G@@+!9:@A@+B@!C@B@@@ BB ? _H_#@O@G@'@3@ T#axd+K@ @9+@@@+c a@b@G@c@+Є9@D@e@c@ !6? _H_"@Zl@K@ \=@A!*7;  @LB@@ G=@/!9eH @A!*-!!@5/@@/@@A!!! =@@SW_H_B@K@ @? _H_Y @_iT#'@@ @"@!@ H@@+/_D_>@@+/_D__D_ @_IT#G@@"@!@ <@A!*/3G@@C(@B,@ <@A!*7;G@@@@ X cA_H_ @_T#@@#@ '@R@<@@@@?7 @@@@?_C_ @C_)+TC ~# ~T_-] @`  B2~]@!#-!"@5B > c >$`  B<]@! -BC@5c c`  B<; @]@! -!"@5B c@  BT:~]@!!-!"@5B@> c@>Үc~T4GA c%OcOo@s@"@?!@3@@D  P]@3@-!"@5?@ ?@ @7F @/A 3A@}{9#'@;!F @~!t1  @AC6F @GI@-@5G@#G@lI@-@5G@# G@"`I@-@5G@$C@ G@ RC@"`N m@7A ;A6n@@@@ < ;@?ACAI:@@@7K} -@  K@@@O7@S+@ @@ }c@@_@C _ ;@_@C _A!@  # @_)T#+9@@@/@3@ 7@;@?@C@?_E_ @_)T#+!@@!@ ?@ @T 9_E_#@@#9 @$@/@ 7@@9@9!@_LTˤ @_)T#+ @@!@ ?@ @T 9_E_#@@#9 @$@/@ @@9@9!@_LT @_ T#'@! @@9`'@!t1 ~@9'@+@ /@@9_D_9_D_d @_T#@! @@9`@!t1 ~@9 @7@9_C_9_C_8 @_IT#/@@9@"@#@! @#C@9@p/@@н@ /@@:\@A@ ?@9_E_9_E_9_E_ @C_)T#@ O@@C@/B @V@@S@W@ B@#@'@C@ /@V@@[__I_ @_)T#/@3@ 7@ @V@@;?_E_ @_))T#@@@K@O@k@OKkw@ ʴ{@@@;@g@[@ ?C@9;@@ @[@?@ @?jT7W!!9 {@97@?W@C!T"cc{+S_!T @9+@S@K@Tk@O@k@ww@_@ ?@@@@`T3@dK@TKGO@ ) ˄|ӄk@$?TcC/Cc* G@#@/@3@c@C@K@G@O@k@TcCc*!|@ ]3@K@!KO@_cTk@Cc*k@ G@#@3@K@TOkA!*D|` G@c@]O@K@k@@OKk{@ @@ ? @@@@ w@;99-@5b@;T4 ,]-g@[@_N_cD9_N_g@[@_N_g@[@_N_c@d@3c@_@? c @@@+@_!TS@ #@9+@3@K@?T$_N_g@[@_N_։{ O @_T# O_@Sg@Tc@"9B@_qc@jT @9g@?c@g@bןb@ O@ c@?c@9@c@g@A!* 7SF@g@?T7@!!@c@aK@ C @g@@-@5c@@c@k@os_K_K@7@;@ TC?3&hd8qjT #@;s|@ V@@bB @T@@3@"?@cTC@?G@*C@ FF@@#@!G@?@3@-@5!|ӣh!dkos_K_@ 6 @_ T#B@;@?T' #!!@7@a+#@+@'@@ T$hc8qjTc #@|@ V'@@B V@@9_F_@9_F_@o  @_ T~#@ @U@'@@ @U@+'@?"3@@/@3@+@@@'@TTx"T/G`xC C?C >?kaTCG_kTן9_@_ן9_@_@@ @@@য়9_@_ ͠ @_T#/@@ "@#@! @#FC@9/@@@37_E_/@8_E_ @_)T#/@@ "@#@! @#C@9ٻ/@@@37_E_/@l @@37_E_o @_!T#+!@+!!!@ d6@A!*CG  @T;@@a+!0 -@5b+B0Cb+B0+ "@+!"!@ :6@A!*CG`3 } @*;@7@/b+B0B@c+c0c@ 6@A!*;?T- @ ;@@BD5 b7@/@5S#@'@ 5@3 !9A @@*`-@53@ab@3@a!!d+Є0@5a+!0#b+B0a+!#@@5+!` #+B` @ @@KOS  K@@^;OK@t@KSO@ K@"^;@!t@!|@@Bs\қ{5 @A!CGh@ @:@@a+! 1 -@5a+!1#b+B1G" @ e@-@5`+b+B5_K_\ @_T#с@W@C@;T@#@[__J_֔/ ="@!T#$ @_T#с@W@C@;T@#@[__J_p/ "@!T#$ @_T##@@@C@@E@TA @ @AT @9#@@@"@! @ @9#9_C_ @_IT#@@#@C@@E@AT @9@@#@C@T@C@AT@@@ s@9#9_C_ @_T#с@'@@@! @ ? @@9@@+/39_D_"@#!T#$ @_T#с@'@+@ @?@9 @@@CGKc9_D_v"@#AT#$ @_)T#с@@@@!@ ? @_B_W"@T#$ @_ T#с@@@@? @3_B_8"@T#$ @_iT#с@!@@@!@ ? @@#'_C_"@T#$ @_IT#с@@#@@? @@;?_C_"@T#$ @_ T##@@@C@?ATA @9 @9!!@ҡA @@B@ @?T @9#9_C_ȝ @_T##@@@C@?TA@@B@@`T \@9#9_C_ @_T#'@+@"'@+@_TC|hc#hc%@@aT w@9@?@_ෟc9_D_v@@ _ց @_T#G@ @!@" @~T;K@O@#7;,@5@;T) W_H_? @_ T#/@@mT@@@@_#T? T'G ڦ/@@@˅@@* T #@ T@@@@hT# @@ @c˦ !?@@@@/@@E_T_E_ց,@`5 _E_`+4@@,@`5 _E_`+#@@@@  *  { @_)T#@@$(`+@#@@'+/_B_^@@@@@&T@mT@'@@@T_cTT`+"@@B˃#'+/_B_T դ@ @,@h5 8$c+c"d@g@@@@_TTA`#'+/_B_vmsj ? @_i T#@@@_B_`+@#@@#'_B_ $@%@˄  @@@$ @@@%@%& @'@?,@d5? "Τ#'_B__B_ @_T#7@/@@@!?lT@ @,@e5 Ң?CG_E_?_E_/@@@!T @@%,@`5 ҅?CG_E_ց@T @@! @3@ ;@ ?@@@/@AA,@e5C c`MT7@IT3@he8E$E(E@F @_@d5_ L?CG_E_֟ @@ @@@@ ?@@@/@AA,@e5C +@@@_@d5_ ?CG_E_C@C7@@@@@?(T?T&BˢbLT3@T# /@#@@@@@?IT`h`8$(?_E_*@7`+#@@@@ `+#@@@@   @_iT#@(@@@T @@,@d5 ҩ9#_B_֡@@?iTAh`8$9_B_أ  @_T#@C$@C@D@MT`+"@@_B_TcC@CA@C@@@D$@"Tdh 8@$@(_B_֣  @_)T#'@>'@@@?T@@@_T?#TG)˩hg8(/he8@_ MTDӥӪ(J3Kie8E@9?T @9 kT kT? T @9qTqT@e lT(@@?T@ @,@e5 S/37_D_ւ@@@iTeh`8qKT_T?CTBc 8#@'@@@@@B?ITahb8$(S/_D_/&+" r@(@@_ T`+"@@ _A$(_@@@ _ @_iT#/@A9 /@A9@b@e@f@a@_C T? T#@! 9Y@@/@@@@@",T@@@c+c"e@c@5@@@@?T?T Ն@ @H!,Х@e5 V#@c/@@@@f_cTTH@a&Ѧhf8$(7;?CG_E_֊| Qx @_)T#G@AC9i@a+!""@!@@@@@@@@_T;/+73' @9`/@T;@Cha84qTG@@c;@KO+@S@9 _H_'@3@7@/@;@+@ic8(qT-TiTi`84qaT@?bTKOS9 _H_֟KO S9[__H_  *  Ϙ @_iT#SC?;_@C9C9@@@@@@@f g+"@@ T37/GK @9/@ c967@OG@ /@J?@C@_cTS@c S@ =@@#@?@` /@;@,Х@5O@O@7G@/@3@K@7@S@g?@kC@osw{;@_K_Ex @_) T#g@CC9C9i'@3@;@K@O@?+@[/@S'5 m<@WK@;@3@ThTfˇ' @˦@T7GC W@K@;@3@7@C@G@hTa?@_BˡO@T W@3@osw[@{S@_L_  ӗ @C_ TC~#@D9C9@@+@/@@@'@ w&37W_s@@* TS?  5  C;@?@@{@To P?@o@C@{S@3@s@_@7@W@?mTD w@`T.w@O@{@TK"B5  <@#@K@7@W@Kk O@K@k@{s@_@_@C_ *' %g@as@_@7@W@@ @  w@_`T3wOg@  K@{@ "T[G; 5 ;@#@;@[@G@Gc@  ҠK@G@c@{O@3@?lTs@_@7@W@ *' *  # @_T#/@3@ 7@@@@@C #/@ @@#c. -@@a &3@ 7@-@@/@@@!@T/@#@2! @/@C @B@  ?@@@#@;?C_E_! @3@ 7@ ?@@@#@;?C_E_;?C_E_#/@O/@#@#@@T3@ 7@B@#@ @@@#;?C_E_@ @f+ƀ3@@T Y@9/@,!$@d5 ,#@/@#@@ @,@f5 ;?C_E_@O @_T#/@b@d@`@a@_T?T3@c @7@B `?@@@b/@d@d;?C_E_@+$@@@@ 8/ @ @ _ց @_T#@,!$@d5 ҿ@!@5@@_A_ە @_ T#7@@@ @ @@_# T@@ @ ?@7@"@@@_TE+4@@MT_ T%@&@G˿TcT#+' X#@7@'@+@%@ #,@`5$" ^;?_F_?_F__F_;?_F_ l@ @@ _@@ _ց @_iT#G@S@K@O@ 3@˅;@7A @F@G@H@)˿ TJ@3/;H T'T G@'@@@ @M,!G@'@@@A@ @ ?@@@G@A,!$@d5CD ݝ7@/@T'C@J@T 롰 T+ 7@+@G@C@#C W _H_W[__H_   Քx @_T#@C@D@$C @D@cT @@A @C@@@TA9ah 8@@@_C_@@@'+_C_'+_C_ָ  @_ T#c_q T/@d@e@E  d @e@˟T/@@@  @@B_Tca @d@e@`@H T #G@/@"@B"7_E_c I@@/@ 1@@@7;?_E_7;?_E_7;?_E_/@C9h@@@7;?_E_@7_E_W $ @_iT#7@?@;@:#@@'@@ +@$7@@A @E@F@G@(TI@h T'#+T @@?@'@7@@+@#@@E@ET'I@J@Ta T @@7@C@#C C_F_CGK_F_ޜܜ  @C_T#O@C@D@C@@@A@#c& *@@!O@S@W@"! @S@ W@ ?@@@O@A,@d5CB E[_c_I_[_c_I_;G @H@!TC7+ @@ @;@+@O@S@W@7@C@S@W@;@O@` TG@'G-;@[_c_I_gO@S@W@;@ TA @E@F@H@?T'` @ !?@@@'@"@+3@@T3?/  @9 O@ @@?T" @@3@3@/@?@[_c_I_A+!4"@!@[_c_I_ ܒ7 @_QT~#@A9@9C9_@_@,@(@kT0@$@@_MTMT@E@Bc0@ 9?@'@+@@/#@3@W+@'@'@8SF+#@@@*5@+1@L+3@@ `TkC x @9/@3@W@F+#k@C@@L+3S@L+3(1, @j5'5"<F@,@(@ TG+!@@4@0@L+3@@ `TgG > @9/@3@W@@G+!g@G@L+3S@L+30,)*@j54 F+#@ (F+#@L+3@(#$,@g5%"$ @0@#(@ T,@ @$@@`TF T_6T?C6T(H @@,@(@ˆ,(,@ @T @mT T!!5_tb_7 "6@@$@@(@,@/T#/T7@G˄$ T{ y@{@7@ $,@e5,@(@B,(,&E+Х4@@4@0@(I+)3*@+@ `TK[  @9[@@E+Х4K@I+)3I+)30,@g54O8E+Х4I+)3 Յ4@0@G+3@@`T ws V @9w@s@@G+3 G+30,@f54#E+Х4I+)3@E+Х!@@4@0@(I+)3*@+@ `T_? ( @9_@@E+Х!?@I+)3 I+)30,@g54E+Х4X@+#@@4@0@F+ƀ3@@`T cO  @9c@@O@A0,@`54̙C9_@_֟|C9_@_!1@!T 9@ 9mTY?9@C9_@_C9_@_ow@+@"@@?T  @9/@@ 3@ ,@5W@ "W@@ 9C9_@_o@w@ @4@0@dE+Х3@@`T   @9o@w@@a0,!!@a54dC9_@_ * `, @@$@,@T;@@! @ B ?@@@@@ @,@_,TE,`_lT;@Tw~u|s Ho @_ T#A9@+@!7C_D_+@'@ /@C9@A/@_T?MT '@dh`84qT'@7;?C_D_A9+@MT'@Cha84qT'@7;?/@C_D_7C_D_  @_$T#` 1 @{`!2a!B+B"A,BD@5D+Є"B+B"`0 @{`3`A+!" ,!"@5B+B"CB+B"`0 @@``A+!" ,!"@5B+B "CB+B "h`0 @`T1`A+!@# ,!"@5B+B`#CB+B`#N`0 @` ;`A+!# ,!"@5B+B#CB+B#4`0 @|`@`A+!$ ,!"@5B+B $CB+B $`n0 @``A+!# ,!"@5B+B#CB+B#`T0 @`@!`A+!# ,!"@5B+B #CB+B #`:0 @``@`A+!! ,!"@5B+B!CB+B!̗` 0 @` :`A+!! ,!"@5B+B!CB+B!`0 @```2`A+!@" ,@5@+`"B+B`"_C_ @_T#@{9{Bd;@[ߟҟT{B`?@{BdC@{BbG@_@@CT @ @q[@Ba;@! @Ba;BaK@! @BaKBaO@? @T" @BbO{@BbOBb7@C @Bc7 T@Bc70@cc0CB*{BaC@{Bb?@{BdG@{B`K@T!'@롰@#@_T @@{B`K@ {B`K/_C_}!? @jTxaTҥ˅x!x!!?@TxaTҥ˅x!x!pT )lp x h @_T#?@? T/@{9{B`O@?T{BbG@{Bd?@?(T?TB%{BaOa@3@ 7@;@9#/@@@@CG_E__E_ ۍ x @_iT#g@{9w@E ҄{Be?@{BbG@k@_Tf@g@Bs@?g @(BThh8TC/3W?J7 [ @Go@ T  Thp8@kT T;_9SOK[9@ ˣ# #@O@?TTk@K@k@K@D˟@TD?@T/@BTW@hf8@ k@K@/@?@W@[A9S@O@_A93@?@7@[@G@k@g@C@;@ TpB9~ jm{Bp7@˿ T@{9_L_P fLcIX -Xx h @_T#@@'@ c9@@"@#@/3_C_#@ '@+@ @@@@/3_C_ @_IT#@? T@C@'@iTcZҥƣf||O#@& @_B_h|}Ox *T ?iTHhh8!T_B_ݕ Œ @_)T#@/@_T+@_T#@@c?-TDhc8hc8k@T3_B_3_B_Ǖƕ  @_T#7@9BaK@?j T@A9 ? T ?@TBbG@Bc?@_T U@@7@;B`s,@5;Bcw#"BB>BbG@Bc?@_CT@C9|7@@#@!@Bas,!!@5BcwBB ;BK ,@9@@a! @@a;Rr?kkTz _F__F__F_BcW@Bd_@BbG@Be?@_ T,@ #@'@+@7@[B`[[Ba_,@5[BcWEBޔ[BeK@T[B`G@[Bc?@#TA@C9[BfG@[Bg?@TD@ 9#7@@#@!@Bas,!!@5BcwBBBK_F_ ŋ, x  @_iUT#G@{9{BdK@{Be;@˿Te@A9_H_ք {Bdo{B`;@T{BbG@{Bd?@_CQTPTEheZҥƣ||O{Bdҥƣ{B`;@{BdK@MT˟Tf@A9F?2{Bfo@T{BbG@{Bf?@_#KTJTGhgZ||O{Bfg@~hfi0i)B{Bj;@J9~(i*{Bh;@{Bi7@(h&{Bfc@7{Bgg@@{Bhc{Bg{Bi;@*!@_Jk0@{Bl7@k _ T3j@{@_T ,T{@_TJTj@_T U@@A9G@{B`c{BagG@ҥƣ7@3@@d@{@`T{Bic@?T{@ {@TT{Bic@?T{@T{Bd[@{BiW@{Bj_@{Bkc@k {Blg@ыY _T_  /@@#@G@[Ba_,!$@5[BcWDBҥƣ7@@_@{Bg[g'y$7{Bd[@{BiW@{Bj_@ X _ T_  R/@@#@G@[Ba_,!$@5[BcWDBtҥƣ7@_@@{Bj['y${Bdc@g@ T{@T{Bf;@{Bg;@{Bf;@4{Bf;@{B`;{Bdo@mT{BbG@{Bd?@_C$T?#TFhfZ||O{Bd{@{@T{BdB9 {Bd;@AT{BaC@{Bf?@BT{Bg[@{BjW@{Bk_@hd8 T;o9  .@@#@G@[Ba_,!$@5[BcWDB;@ҥƣoA9@{Bi[Fy'{Bf[@{BgW@{Bi_@@T @@G@;B`s,@5;Bcw"BBВ;Bcs@c;B[ҥƣ@{Bd;@{Bd;d@{@T@{Bd9a@_{BbB9{BaC@{Bb?@?T{Ba[@${BeW@{Bf_@@h`8"To9  g.@@#@G@[Ba_,!$@5[BcWDBoA9"{Bb[x!{B9{B`[@{BaW@{Bb_@-T{Bd;@ ~@@G@;B`s,@5;Bcw"BB_;B`s@;B[_H__H__H_{Bd[@{BfW@{Bg_@@!T{B`;@ N@@G@;B`s,@5;Bcw"BB/;Bcs@#;B[ҥƣ@@_H_|smT{Bgo@JT{BbG@{Bg?@_T(TI hiZ||O{Bgi@~jJB8~,igLi+{Bj7@ *i'{Bf;d@{@T{B9{BhcI@G>-* =4  P p x h @_T#@[9[BaC@[Bc?@[BdG@[B`K@T!'@롰`#@T @@[B`K@[B`K/_C_ È x @_ T#'@9BaK@?MT?`T@A9BbG@Bc?@_CT |@@'@;B`s,@5;Bcw"BBe;BK_D_ֳ  x @_T#'@9BaK@BbG@Bc?@BdC@mT@A9D_D__T@C9 '@@#@!@Bas,!!@5BcwBB#BK_D_q F x @_I T#/@9Baw@Bbs@7@;@3@ ?CG_E_/@?MT#$@A@ ?/@ @A@#@ @@ ?@@?CT@B!#@`/@{Bdw@{Bes@E?CG_E_7@?_E_!  @C_iCT## ',@;! ,@7!5' ,@3!#  ,@/a!)( @##@@,!#@5/@C/@a +@/a!)( @+`@@,@5/@A/@e +@/a!)( @'@@,!#@5/@C/@J( @S@`,@5W@db W@8#dd@5;@db;@+dd@57@db 7@'dd@D53@d#@d+@d'@db3@ "#@" +@"'@O@;9@d5#"O@[@$?T?T*B/C@B@?B)T P@;T5 V+@O@;B`C;B`G,BD@D5;Bc?c@# c#$ $BƏ"c@" c!5 0+@;! ( @@a@@a ,BC@5;@@cO@`, @;@O@`   +@O@;B`[;B`_,@5;BcW"BB?aT"_ T*B/C@B@?T P@;T 5p *@pO@;B`C;B`G,@5;Bc?"BBR@;B`7  *@O@B[!Ba_,!"@5BcWBB7@BdcBgB9B;B0!@a5! !  !$uc c  ch" @!?C@ z @.@@_c_I_5 h*@O@;B`C;B`G,@@5;Bc?@ ` $3"BBَ"c@Վ" c`ю'5 A*@O@;B`C;B`G,@@5;Bc?@  $ "BB"c@" c _I_ Ʌ x  h p @_T#@9Baw@Bbs@@@9$@B@@?@Baw@Bbs@@ @c9@@"@#@#'_C_i@@@@#'_C_#'_C_#'_C_t @_IT#р& @#/@ 3@7@p@@@;?C_E_#@;_E_F @C_)3T#O@{9{@d;RrkTtO@c@_D+TD<;  _@@ҧƣ|}RW@[@S@/{@`{@`{@S@W@ [@_@g@l@#@'@kos_I_,P `n} }R ҧƣc@;@_@ { |@g@%T,|@(%T_S  ˁ! ;@#@'@S_r|}R}@k,T5}mhh 1~@_#T}@H"T1Ts?)!T? T? T?IT{@qhsfh( {@h!@qlT k!T |@_TT g@!c@@#@'@c@O@_@{@`@{@`{@` @_T{@b{@`@`TC;7 3;@7@C@kos_I_73?[SO@@f_g_@c@g@33@"_S[˃X7@cT?@W_?@ (@@#@!_SW3@w@cx!e;@kTh,}@c@C Ti }@ T!  ? T?) T?T? )T?T?)T?T?)T _@Iiiҫƣl} }Rӌ5}O@@ni, n ,H Վ} }R5} in@si.n@n!@qT? kTO@c@_@1 @~@@ތ܌  @Ќ͌@ʌnj b @_T#O@K@?@C@G@Fx#MT&he8gT3_9/ (@@#@O@K@/@3@_A9W[__G_m @_T#3#@?jT77_T'@Dc@_T?CT!F?(Ta@9@f@@g@@e @d7'@_C T? TH) @j |@T˥ LT?TS_B_ *TDi`8h`8k@TS_B_#`|@?`TT!C _TS_B_B_JThb8dib8k@T S_B_ S_B_   B_*Thb8ehb8k@TS_B_S_B_ Ȃ_@9@a@a  C@dc;ckcC!?@T!@a_x!!?@T!@a_ @_)T#/@` @7@a@?$b@e@3@F&H T TH? T)?'I @T# &@/@@#@Tb@g@TTI ˩)T_HJ G T# @/@@@@#@e ;_E_a^TZXN # @_T#/@d@dd@ _E_քe @%e@"Tfh$8e@Hee @ T e  T`@`@a@ @a }?@@/@ ,@`5#"`_E_}} Ձ @_ T#/@d@$ce @ Ś0e@de @7@e Tpfe `@?TTb}Dh @`y?KT `@`@d@ @ ?@@/@ ,@`5#"`aa_E__E_ֳ} ~ @_ T#/@@@ @@T,@5 `c 4_E__E_ֆh%8@cHӃ @c у  @@cT>T@@@ @ }?@@/@ ,@b5#"` Հ@@@ @3@ 7@;@?@@/@ ,@`5#"`_E_}.}#  @_T#@9` G@@@@@T#@ @yGh&8T@@T@ThTc˃C'@( @yhh'8T@@T?ITCh&8D@9@@@qTbTIhe8 _kaT4TDh'8@M"T`~ ik i*V TT(Hh'8? T Kh*8 \J \(' @TCh'8_B_M-Mh,8 ` ` ,+T(HʰTKKh'8? T `~LiLi+FTDh'8@_McT azx vt rpM Mh,8 X X TʰbT|Kh'8? T(ү XVaSQOMJ_TAN # @_ T#7@`+T[9*c-a@d@?) TxeLbTF`x4@@@` `@'7@"X?#\;$`7%@&@'@;@ @#7@"@#@!@?@ @+@"'@B?B;cB7˃ b#@BC@@DGK_F_aۈو  @_ T# + @'@"@#@$@ ~@!+! !@'@C@D@B@ p@@ +@ /_D_ @_ T#/@d@$@ye @ Ś0e@de @@ye Tpfe `@?TTb}Dh @`y?KT `@`@d@ @ ?@@/@ ,@`5#"`a_E__E_o}] : @_iT#'@@A9?k~!@U'@+@!M'@/@!E'@3@"~=3@'@_D_`@y@.@3@'@T#@d@c@*-@@_" TxbTb'@"@#@ Tbh`8T$@@@*B T@|~Ӣh`x@y#y'yB@@_@ T_D T_HT'@C@D@Tha8 @@'@C@D@Tha8@@'@C@D@Tha8@_D_ ~H @_T#@@_C_#A9@@G@#@|@#@ <@|_C_R~ @_!T#g@@!o@"s@cTk@k@ "@@#@!g@o@[OKxx! @@{@@Td}@@C?79g@'!Җ_L_G + @W"+B B@Sg@ ;@;g@"@#@C@ ?@g@@` a @+_g@@@ G@@@;@Tg@d@b@g@W@S@A97@mT@ C9c9Bg@{@ @@9_L_SW + @AT `@`C9k@@S@g@W@ C@ ?@C99YS@g@W@@@@E@F@B@[@ O@K@#'+_L_i8(! Tɼ@ʸ@ "TIy*J.K@L@ T~i8(!  T@@ TIy*J0K@L@ TL d a  ^ [ @} @C_)T#O@@W@"[@cTS@S@ !@@#@!O@W@C?;xx! t@7@3O@C@D@ O@@` a @+xO@@@ @@c@g@Td}@g@jTO@ B9c9XO@c@ g@k@O_I_O@7@ 3@B99O@@@#@$@!@E@F@B@C@ ?@;@#'+_I__I_|b @_)T#/@C@D@~ ޅ/@C@D@~ օ/@7@3@- Tx`Rk"TF@A@bTxx%  Ҧ|V*TG@A@|~(:if*?T|~h)h&T@qTT~(ƀ he( |GӿqT|~( hf8 |N*B T|~( hfpF@A@*?T|~h)h%A@C@$Texe4C@D@Teцxf4#iT@@@@A@D@E@ @+/@@@@@ @+#@?@C_E_ x  x {J @_iT#/@C@7@C@?@3@ _E_#@7@/@C@?@3@T#x`RkT?)T~Ӏh`x!@y#y'y.  |V*T|~():(ih  *? iT+'/@}~Ӂh`x@y#y'y'@*!."@#@ Tbh8*c.d@e@ Tx`/@/@` +@CT@qTBT~(Є hb(Х b|G_qTD|~(Х hd8 b|N*BTD|~(Х hdp*O@? T#@|~K@"h`x#c@y/@#y'y*0@@@BTBh8*/@@T@h`/@#@`p*0l_E_PNMxKIG ExB@ %{@ @_)T#c~TW@;` W@[a!)1 @@@,!!@5[@A!+! "[@Ƀ"+B Ń @+h_L_z @_T#7@@@@@~ 7@@@@?@C@ G@7@@@?T@C@@?TC@@@@ @++ + @7@C@$ @7@@` a @+ + @7@"@ i@@?@C@Td}@C@jT7@ A9c97@?@ C@G@_F_7@" @A997@@"@!@?c T+@?@C@_F_! Tha8~Ghgx @ Ț0F@y@ @ bT}p fHTT}* ci#`gyjT @'@@! @  ?@@7@ ,@b5#"`؂'@+@?@C@}@cҳ_F_AHyBHy#y'yd_F_}! x y @_)T#+@_T@#@@Dhc8%x%x$cLT_B_x y @_ T#`# @A!) @#AA,@5@C@lC@<~ӄڄpdh'xdy<@ӟxqT@qT} qT%`qT @`}|@ӄ ǚ0<@xT'_D_ gy @_ T#` @A!)} @@@,@5@@@@@ #~$uӄڄph#xdy!?xT'_D_0y @_T#@@@mTEx4@@"T@y'_B_%  y @_"T~#˅@q TB|@B_ T|@T}Bh"x {@EkLTC~TC~T@_kT?T ?)T|@)@TCl }`y* Ch y'qT @|@@BT'#3ChH|@ABT  K kTL kAT_BH|@AT  LM  kTCnyMy(}@T H *KKk}@A"TC T/7 ~3#@'@73B{@BC@B/Cx}@A T  CH MqaTxkT}@I) A"T  BbExk!TB9e|@@H }@?AT)  )?kT |Mx kTe|@@BTExcf|@FxcT  _@_5|2* |(|% |" ||||@* ̷ w @_) T#7@3@C@Tx(@'4 # TOy!/@AAG@gFE'}?@#B,@l5C=@9 V@@/@#@O@y3@@7@_E_ ~p'i*x' yT|@ӈ ǚ1}hhhxI@J@ cT   w @_T#?@ @`# @#?@  ,@b5# "`7 @@G@_#TC@ Tx(4 T}fh)xi (B T}h(xh @@ T( y" T}h%xe ( TlT7+3/LP@,!!@a5H!8 V?@3@ /@+@䛀+ @@#@?@ 3@/@+@_G_֦@yB~Ӡh"x T}bhbx@@_cT_G_  v_ @_ @_)T#@#@? T}@bhbx'@?)T}`h`x_k'C9_B_ v @_T#@#@?T}@dhbxe '@?T}ghax` gh"xdh!x_B_ֲ v @_ @_T#@#@?T@C c'@?TA !?kaT}Ӂ}@h`xAhaxk'C9_B_ןC9_B_ gv @_T#@#@?T}@dhbxe '@?T}ghax` gh"xdh!x_B_^] Bv @_iT#/@@ =@@B= bF)@@37_E_!v @_T#h9 /@3@')@@7;_E_v @_$T~#@@,BC@5B ~T@  ? 0,B@,Bc#~T@@ Tx`cfmT?Ȱ@BTc*yfJ*y&!c#~T@#9_@_c(y&cKyfgT@T@ ?1@TaT?T#9_@_`?$ T $  0a W@+BwD' @'@@  ,@b5#" >~+@CA@#@+@,@"Teڥpӥ<@ӥGf˿T# |[Bx%3 @DD@@?) TB @DD,@f5C ~@@@Tx`|c_@"Tcxb x"|)?@)1Jp=@)ɚ_$mTi !~)ik)}DkDlD *? "T) ˉ +@)@I @#9_@_*y(L$ ̚1  JTT ~  ~i *y( š_)1 jTTw}|}}w}|}|} t @_T#@@? T,@ @@ l,@b5#p"}$lH_C_@!@?k@aC9@$|C@ !|A!@ 4?qT,!!@5!+!9  #+c9g}!c}9?qaT@ @@ l,@b5#p"O}$lH#$@!@5#$ "C}!"?}a@M @@ l,@`5#p"+}_C_Ot~ @_T#'@9xHtH҂TpHlHa`H@@?'@lHxHLHDHTHPH_ T? TTF˧$PHHHT `;@@e9@x|,@f5t@|,@7;?_D_/@+@ T }@@'@xHtH|HT!ˁxˆ|,@e5t|!lHpH7;?_D_7_D_||| s} @_ T#@9lHpH+c3d@c@?T @9 @lHpH#'_C__C_s @_0T#W@C@8T @@ @[__J_C@d@x,Tf|EF@x TG#C'h|NHH@9Hc|Jc @c+ @@N @![__J_@@C @![__J_) @ y+H@}CHH@ H T;$H@H9I@L&T(JKy`MCT'y cLJTH@H9!T() ycLT@@H9AK `$@9C@G@3W@@ @![__J_G@?* T7W@K@ @@@@# @TW@dc;~#I I@@ IЄaTIҁT@@T) @+!5t @~Tc;t?CIGIK_c,@!5+@@;T )+@ &,+@!+#@cc~TgkH{9dc;_tqt k( @C_iT# @7!o@ s@{@@ o@!aTs@ҁT@?@T) @+!5t @~Tc;t?Co@Gs@K_c,@!5+@@;T )+@ %,+@!+7@,!%@e5 t T @,@57@#<7@"s7D @,@57@@cc` 7@҂s҂ccsDHLHHH҇3@5; `; `; `;D'/#<Ҁ %3@/@s,7@'@#@HL @T5q @q7@HL,BB@b5D3@sLH_ @#TqHDHwt7@PHHP@@`9PHT@,w{_M_qs j @#_ T%~#$~T}Ax @kT!Ax kTx @Ax `kT#}Ax kT+9 $f_@%_`j @_)T#ѝ@,@5+! #+B s@,@5+ +B s_B_7j @_T#с@@@_A_x !j"@c!T#$ @_T#с@@A@B@@T}Chcx@"T}@h`xk9_B_ssM i"@AT#$ @_iT#с@!@BC@A@@T}dhbxe @T}ghax` gh"xdh!x_B_rr i"@T#$ @_T#с@@@_A_ i"@c!T#$ @_T#с@@C@A@@Tb B@"Ta !?kT}Ӂ}`h`xahaxk'ן9_B_rr ui"@!T#$ @_iT#с@!@BC@A@@T}dhbxe @T}ghax` gh"xdh!x_B_brar Ei"@T#$ @_)T#с@/@@@ 5@@B= b>@@37_E_n i"@cT#$ @_T#с@A/@`@@Bh9 @@37_E_C h"@cT#$ @@y@C@y?kTAkc9_c9_ @_T#/@@ @! @ ? @_* b~(B:Aha!""`(c*dhakT@ 4#:@#@aj@(! h`@* @_T@B@b|~#h`c8 `!@b !ET03_E_/@@@! @ ? @b[{8a@ `n@ `@T @[{_@__@_c@_@_B_bTxbEXXXX!H$ #@@@ @!*  OO @_T#9#`*;@?@ @ 7@;@ @?@27@C_F_O @_IT~#c9sc@ @r@39c @"@#@$ @@#@'@+@cgk@@99c9S c 3@@@;9C @7 @7@ 7@ @`*;@7@ C7@ @7@ @7@ ;@@7@ @@_@_O @_,T~#9{`*;@@  {@@aD# #9# `*;@# K#@ j@!T9[ #99#9k `*;@ . @@ @L#@ @C# @:#@B# \@# 7@C@!!@`@ #@# 5@ @6 #(@ @)# @# @C@7s@k@@@?kT!O?T @ @7@O@?@@@  a@7@O@?@@_T3G+ }W7@3@G@+@osk#E9#9C@# @# @C@C@*;@# @ @T @@_@[@lT!;ST @ 4@@;@S@@@  %@@;@S@@GT/'K }W@/@K@'@ A,!!@a5 VB99_@_B_Txba! V M @_ T#3@7@ )@` T 3@@97@ n@3@9 7@>@3@7@A@C@?iTa@#@ T!@?aT/@ @;_E_/@ T@;_E_/@ @;_E_/@ @;_E_;_E_ZV ?M @_T#7@@@ @;@@@ @ ?@#@'@+@7@@A @,@`5C@ U;@@9@9C_F_ M @_T#C@@9 ?@"@#@$ @e*7@@@ @ @ @ #' +@/@3@ G@i`*7@a*!7!@b*B7B@#@'@+@ #' +@/@3@?@@A @,@`5C@ U@@9K_G_?@"@#@$ @@@ @ G@,#@'@+@?@@A @,@`5C@ dU_9K_G_L @_I T#C@?@@@T @@G_G_G_G_֠?@"@9"@!@?@hTFAxa@ $@G_G_`*7@@@$@%@! @#' /@+@C@BhT@F x`A@$@@G_G_ր* ,  .L @_iT#G@C@"@9 ?@@@ @e*7@@@)@*@! @ #' +@/@3@ G@K@@#P`*7@a*!7!@b*B7B@'@+@/@ #' +@/@3@?@@A A,!!@a5CA Tן@9O_G_?@C@D@E @&@'@! @ K@#'@+@/@?@@A @,@`5C@ T_9O_G_ր* , | Kp @C_ T#S@@9W@C@9#c@aa*!7"@#@$@@@ @#'9 `*7@b*B7C@d*7@W@@@ @+@?/@73@;#' O@@@ @+@/@3@ ?@7@;@#'O@@@ @d*7@e*7@f*ƀ7@+@/@3@ #' +@/@3@O@@A @,@`5C@ S@@9[_I_O@#@$@% @@@ @H@I@B @ #'d+@/@3@O@@A @,@`5C@ S_9[_I_aS@Ca*!7#@$@!@@@ @#' O@@@ @+@/@3@C@@@ @ #'+@/@3@O@@A @,@`5C@ S_9[_I_J @C_)$T#S@@9W@C@9#c@c a*!7"@#@$@@@ @#'I `*7@a*!7!@b*B7B@W@d@e@c @+@C/@;3@?#'- O@@@ @+@/@3@ C@;@#?@'!+@/@3@O@@A @,@`5C@ S_9[_I_O@#@$@% @@@ @H@I@B @ #'+@/@3@O@@A @,@`5C@ R_9[_I_ a*!7"@#@$@@@ @#' O@@@ @+@/@3@W@@@ @ #'>O@@@ @d*7@e*7@f*ƀ7@+@/@3@ #'+@/@3@O@@A @,@`5C@ R@@9[_I_`*7@@@D@E@B @#'p O@@@ @+@/@3@S@@@ @ #'+@/@3@O@@A @,@`5C@ _R_9[_I_I @C_i T#S@@9W@C@9#c@aa*!7"@#@$@@@ @#'! `*7@b*B7C@d*7@W@@@ @+@?/@73@;#' O@@@ @+@/@3@ ?@7@;@#'O@@@ @d*7@e*7@f*ƀ7@+@/@3@ #'+@/@3@O@@A @,@`5C@ Q@@9[_I_O@#@$@% @@@ @H@I@B @ #'8+@/@3@O@@A @,@`5C@ Q_9[_I_aS@Ca*!7#@$@%@@@ @#'O@@@ @+@/@3@C@@@ @ #'tO@@@ @d*7@e*7@f*ƀ7@+@/@3@ #'~+@/@3@O@@A @,@`5C@ VQ@@9[_I_yH @C_ T#S@@9W@C@9#c@c a*!7"@#@$@@@ @#'`*7@a*!7!@b*B7B@W@d@e@c @+@?/@73@;#'O@@@ @+@/@3@ ?@7@;@#'+@/@3@O@@A @,@`5C@ P_9[_I_O@#@$@% @@@ @H@I@B @ #'+@/@3@O@@A @,@`5C@ P_9[_I_aS@Ca*!7#@$@%@@@ @#'O@@@ @+@/@3@C@@@ @ #'O@@@ @d*7@e*7@f*ƀ7@+@/@3@ #'+@/@3@O@@A @,@`5C@ eP@@9[_I_G @_ T#C@@9?@"@#@$ @e*7@@@@ @ @ #'%+@/@3@?@@A @,@`5C@ )P_9G_G_?@"@#@$ @e*7@@@@ @ @ #'%+@/@3@?@@A @,@`5C@ O@@9G_G_ G @_iT#;@@97@?9"@#@$ @@@ @ 4 @#@'@7@@A @,@`5C@ O?_F_ր* , Ć F @_T#/@ @@ @@9 93@"@@ @@7;_E_ h7;_E_F @_) T#?@G@K@_cTC@/c5C@ ;@#@G@/@ Єh@@9eh 9SW[_G_@@ @@9 9O@"@G@"/@K@cTC@+35C@ @#@3@+@G@3+! P3@S/@W+@[_G_OF @_IT#/@ h@@ @@9 9@e"@@ @@37_E_&F @_BT~#ӁqT`qT<qT`qTqaTqTq TqaT} qTqaTAq!T|@"oC@9@  @ @@c ?c@9@ @ @@{ ?c@9@K@ @@e ?c@9ӁqT`qT B q!T BqT@ B qT BO@@@ @ 9o@!Ӂ<qO@!O B@B@7@#@?`qa Tu*  -,@ @@@ @_@_@ Bh @"@# @!@9 9@!@@ !@@Ӂ;  @!@;@ I@!*,@ @@@ X= #_@_@@@ ? @c@997@_T@_AT@d@9qT_@_@C@"@@@?K@O@C@b7@B @c@9f-TSG@ @@ ?G@S@c@9C@W@ @@| ?c@9A9W@W@C@Wgc @@@@W@[@d@@ ?[@@@@,T K@T@ @@w@@k@d@@ ?k@@w@@,T O@T@ @@s@@_@d@@ ?_@@s@@,T  @@@{@c@c@d@@ ?c@@{@@,T@@@@ 7@?@ ? @b@@@g@g@d@@ ?g@@@@,T_@_jTh`8DŽ@dq(Tƀцh 8 D @C_I T#S@W@ Ec@9@@@9O@@@ @ S@W@[@9<#@'@/@+@7@7@;@O@ B,BB@b5 L_cgk_I_ןB99_c _I__cgk_I_C @_T#'@ @+@ ?C@9@@@#qaTqaT@ '@@+@?@@c937_D_c937_D_C @_T#7@@;@?@@@? TG . @!'+/| #@^@@G9CG_F_OC @_ T#@@#@? @@'+_C_8C @_i T#C@@G@ ?qlT`qTqaTqT@q TqaT} qT$qaTqT|+C@/G@3a!3c |@@?@ +@@#@OS_G_ @!! A!OS_G_B @_IT#7@`@B5!}'"# @+7@"@#@$ @ #@,@7@B@9#@?BT_k@B+@bh!8'@@!a;?C_F_C_F_K B @_ T#G@ ?@9|A,!!@a5 PK _G_C@"@9CAd@ӟq!TB@_k?@b9b@d@e @ K@B˄@!@#@'@?@@A @,@`5CB "K _G_5/`}ӡ(! 3| c@:@@OS_G_-B @_T#/@@@ @@9 9@E@@#@37;_E_ր53 @ !h"@!@9937;_E_A @_T#` @?@@C@AC,cc@5;@C;@J_ @7@`+ q@9_F_;@?@ C@@a! '+ #@@@GK_F_A @_)T#/@@@ @@9 9@@@#@5 @ !h"@!@99ҡ37;_E_{A @_ T#/@aT+@"@ۭRr_kT_D_+@'@ 3@i@@7;_D_TA @_T#@@} J_B_>A @_IT#+@'@@'@?kT@  @ p@@+@@@/37_C_A @_iT#o@{@ T Kg@_T#T_@!  ;D@{@K@;@o@?T;O k@s@w@#@'1+@o@{@?mT;@?TdE}˦O@& s@ˤk@/1#@o@K@? TO@x!\g@T_@T @ @o@@@!  ?@o@?@_Bk@TGCS @}HJC@G@S@_K__@g@_K__@c@ g@w@@k@#s@'V+@/@3@_K_T`хx`e;@T_K_xIeIsIrIpI E@0 @_IT#g@s@kT _@TW@T @ q@s@g@@@!  7b@s@g@7@?(T7CG c@k@o@#w@'E0+@g@s@?TC@_T7@F}G@g k@c@!0#@ G@C@B_@?TW@T @ @g@@@!  3@g@3@_Bc@T?;K @}fI;@?@K@{_J_W@{_@_J_Texde7@T{_J_H*`- ]HH*`- Q r?1 @_IT#'@@_T"#@@ mTjT@/_B_B_Txbfxb@T?Txbaxb?iTbT@/_B_UH :? @_ T#W@ _@7O@_T TG@!  /j@_@7@/@W@H T;3 S@[@c@#0'@W@7@?T;@x! c@O@G@O@?kTG@  @ :@@c@@@gko_H__T@уx`c3@_Tgko_H_GGGG > @_) T#G@S@?@_T7@ cS@O@BT#xbG@?@T_hT'+@}7@ C@K@]0#@;@+@?IT7@`x"S@O@'@_F_GGGG w> @_T#o@@T{@T@ATag@_TT_@?T @ @@@K  7@7@K@37O s@w@@o@O@k@7@ ;@'s@w@@o@k@7@  _T)xg #T T;KC}G!S /#@;@3@?BT?O@xaS@@ G@@@@@B|/#@C@?@!#3@K@i TO@x%_hTiT@Ұ_hT3@_T E}ӣ!@@#@'.@O@7@_HT3@_T _E}ӣ# }lG@O@7@_T_K_FFFFFFF F FF`*- `} =  @_T#?@O@_T7@ 7@;@C@G@#K@'-+@`O@a?@_T(TBe}Ӥ7@;@?TeA !-_F_qFoFfFeF := @_T#?@O@_T7@ 7@;@C@G@#K@'f-+@`O@a?@_T(TBe}Ӥ7@;@?TeA !-_F_-F+F"F!F < @_ 1T~#@7'BB@kTT@@ @@@@@#@' _@_A@?+T@dE}˦@(*T_CGo@@ @@#@'@@o@@&@%T7;w@%}k˨@  @C@G@#'_@@@c!T$_ Tgcb?%|Ӥ@{ @C@G@@#@',+@`@{@_@ ?@@@@C@#G@',@a@_Tc@?CTcK@3˅}ӣ@cs$/ @_@@w@7@#;@'q,+@`K@s@/@ 3@w@7@;@@_@#@'Z,K@@c@?TK@[E}Ӥ@"W {@_@?@s@/@#3@'@@? T"O_g@c@{@S `}E@@O@@S@@@go@&'o D@O@T@o@ g@@k@@@+K@-T@o@ g@@W@[@@@o@ g@@W@[@@M_@_ְD~ӮDDDDDDDDD h;s @_iT#O@TW@aG@_ThTD}?@C@T3 K@#S@'a++@C@3@?-TG@cE}Ӥ?@! +_G_RDQDHD ; @_DT~#@@kT  T@T@ @G@ T@@@@@T @@I ?T@@'Х@T  ҌkTbT?T` @ @@@@@@@_`  ? @@@@@?@_@?kw @@#'w@k@@@!@@@ @@@#]'@+@/@_@_@@_@_@@ @@@@#@'Y+@/@3@_@_?T#xcd?@?T_@_~C|CcA)Tc ɚ?c0_C+T*Tges O) kTTF?!T` @ @@g@@@@@@C`  ;n@@g@@@@;@C@;{ #';@O@_C"Tg@?!T@e|Ӥ{@$ @g@T@Ts@J @@@@ g@@TѨxgh@cT@T @K}b@bG#'+@/@W3@[{@O@ ;@g@Q g@@T$xcd@Ts@@@@W@[@\cSo #'x/@W+@3@[{@O@ ;@c@@W@ [@@o@S@@G@#K@'S+@3@[/@W{@O@ ;@g@c@cg@@@@@W@[@c@s@@@@@g@[@W@@MTCT M}Ӭ _ jT  g@$_ T' ՠ*< @b{@O@Tcxcd;@T_@_ 9B_TNяyno  /B4B)B.B#B`)B B BBB 8 @_IT#g@C5 @G@3@K@/ g@? Tc@d@|ě|[@TW@K@3@k@@ ?@K@h(@g@[@W@3@k@c@? Thx` }ț } l Tx,) T |h)_c T T?7;}D!a ]*#@/@7@?T>C@a_#T?TC@!!}c @)#@/@C@?TK@`x"W@[@ _@#3@'( ՠ*< G@_J_iA@AvA;@dA zA pA ]A ZA@WAUA :8Q @_i!T#@7'cc@kTJT@_#Tw@ @@3_N_ATKw@{@ @@@@@K@d}˅@'{@#T37_W@$}Sˆw@& K@@@T$_TOb/%|Ӥw@[ _@3@7@@#@'(+@`[@K@ /@@@_@3@#7@''@@{@?T@CG}Ӥw@g C [@K@/@`{@@?# T";_O@c@{w@c? `}>k@>k@>>>T%xdeT_@C_z> O5* @C_T#[@_@?cT T?T@C@7@?_@@@@O@S@ W@C@7@?@#'+@/@3@cgk_I_ A;@C@7#@?;@c_@@@#@O@S@ W@C@7@?@#'+@/@3@cgk_I_O@S@ W@@@@cgk_I_O@S@ W@@@@@cgk_I_O@S@ W@y@@@cgk_I_4] @_I T#Ѡ*< @@ @`T; @"@ @'@lTT+T` @ @@@@ `  @@'@@$"$,@d5 5=+_D_= 6u R4 @_T#o@` g@[@ATTW@c@TW@sw_@{_J_W@c@W@c@_@_MTk@TGѧ  TlTT` @ d@c@@@g@`  `/U@c@g@/@T73K }=7@3@K@sw{_J__@g@k@W@C a@;&_kTTf!` @ &@;@g@k@@@o@?`  +@;@g@k@+@?@o@_#TF?@T+'GCA@} c@@$#@'@;@?ITG@ x"C@ +@KG@'@sw{_J_?T#xcd+@?Tsw{_J_֪<<<<< x3' @C_)T#g@` _@S@?AT_TO@[@TO@koW@s_I_O@[@O@[@W@_MTc@TFf ч T?lT?T` @ @[@@@_@`  'y@[@_@'@T3/C }@@3@_T/@@O_E_&#Dxa @@#@/@@x!!?@@K@C@?@(TO_E_& r @C_ T#@@C ?TK@@x`7  @_@c@;@? @@@7@SS@ @_TT{@  @ @@@@C"B  #/t@@/@C@?T/+W @@S@#@@+@?"TW@`x!w@To@ /@g T/@o@K@kTT  @ :@+@W@/@@@G   3*@+@W@/@3@G@[3O@T c@;@#?@'] c@;@#?@' `*< _@u [@O@?T#xcd3@?TOW@+@ /@S@  W@+@?T#xcd/@?T[@O@3@_M_֡%%%%%%% l @C_i%T#@ @@@#@@@G_"TG[?;_@xg/ @3G@{@@@@@?@_@/@ 3@@@?@_@/@  ?@G@  T)TLxk KW Tm TAxm @@@C_T@xc|Û|W@@?)T{@Hyh/@ hTC # '@@;@?"T_@`x!K@E@TEE@TTˉ}({@( T7Sc O#?@' +@@@{@C@*@W@_# TK@Tc@@ S@O@@#@' +@@7@?JT@W@)T{@xdx$@{@C@K@G@Ts@To@Ts@)To@x N `*< [@t_M_$$$$$$$$$ |Û |  ?TTTe?iTK@  @@@?@_@ G@W@3@F `$]$ Z$ W$T$ 9 @_ T#s@ @G!s@CzCd? g@KW@[@ _@W@[@ _@c@g@k@o@s@#w@'+G@/K@3?@7;'C@K@B_ T#xb?`*<! !tC@K@?@ `*< G@t_J_ @_I}T~# AATчxfgA_zT A#ATxhi'AxTT 7A+A?iwTA3Al my` @@NkTT  @ پ@+A7AAA@A@'A@@3A@@   AO@+A7AAA@A@'A@@3AO@@oy` +@l5b .# \ @+@5+A3Ax"@#+A3A7AAA@A@'A@@3A@_@_A A A#'_@_A A A_@_A A A@@w@@3A@@+A@7AAA@A@'A@3A@?GT#G˿aTay`"@w#@!@ A@A@D@}A@ A*+A\T@ \TkAN }? ZT_W@@ w@$'AA˥A(A#'+A*+/A/3A37A7;A; @@ w@?ST/Ad@e@@kTbTT  @ н@@@    Ký@K@@KC @C@ K@@@w@A_@#'A'B+@3@o/@g@@+W@GT @DTg@W@?HDT@ @#o@'x +@`g@@_AT@A@cB}B@B@  ay`"@s#@!@ @@?c.TA@eDˢ}˦A(D T xjk+T+T[S@@ s@'AD˩AI Dk#'+A+/A/3A37A7;A; @@?T#xcds@?($T/Ad@c@@kTbTT  @ @@@ {   G@G@{@G? ?@?@ G@@@s@A[@#'A'd3@k+@/@cA@@A@k@@c@ TAT @ T@@ s@@ k@[@_CT@ A#'A'+@c@[@?Tk@@DC˄@@(C @@ S@@@@TgxfgA# T @ TAc@_c TA @#k@'7+@@c@?TAcE}ӤA! #@@@?T#xcds@?TA A A\_@_ * / W * / W Thxgh:     ?T#xcd@@@#c @@@@@@@@o@g@@@*T_W@ T @ T@@ w@@o@_@_ T@ A#'A'+@g@_@?To@@DC˄@@(C g@_@@bT"뭺TfчxfgL C * / V9 -Tgшxgh@o@g@@@1 ( % " !  '   $           @_)T#+@'@"@9"@# @$@c9_D_E@!TT@ Ś0[Dc9_D_%6 É / D@ȣL!|!B!_5!"-"bB|BCB_c~Cj@BUB|2_k) TBfB|2_ki TIb۶B|$R[r_k TEB|.Rr_k TB'B|{bR;vr_kTၒB|2_k TbCb B|kR;r_k)T 7B|R;dr_kITB)A|ȇR{ݠr?kiTFA!|R{r?kTί!|R[r?kT|1!|{ RǠr?kTaЗ!|Rr?kTوҡ!|R[r?k TAa |RrkTc9_D_'@@@ @ +@!@9"@9` '@@@ @  @9c9_D_c9_D_ *`/ U " @_=T~#)7@@@@@@#'+@3@/@bSa)8@@@#@'@s+@w@@@#'~+@/@3@@2T{@@!:ڶ @@ ` @ @@@B@@{@@Cxacza@W @@{@W@@ @@@mTko_[a TG9. )8@@kT;T  @ @{@W@@@)8_@[@@k@o@@@G9@@@@   Oz@{@W@@@)8_@[@@k@o@@@G9@@O@1Tgc }{@W@@@g@@)8_@[@@k@o@@@G9c@$ #@#)8@@@'@+@/@ #'+@/@3@_@[@@ @s@#w@'@+@/@3)7@@@7@;@[?@_ B@`@@[@ _@@@@1@_@[@@k@o@@@_@[@@o@k@@_@[@@k@o@@ @9_@_@_@[@@o@k@@S@ Tok G@#@'@@k@ o@#'@+@/@37@;@k?@oC@G@[K@_ @@@@)7@@@@[@ _@@9_@_9_@_7cTxcڄڃ7/  @_|T~# A )!7"@#@$@A A@A@A6@c9c9@! @ AA +cc@5A A@%)8@@@A A AG@9_@_9_@_@ AAAҟiT{|!c (@ T`@T@{@@@{@ @A AA@#@'@ N@#@{'@ A AA@@@{@@9_@_ ATA@@!9_@_)7@@@A AA#'!+@3@/@bW )8@@@'@#@A AA#'+@/@3@@   @ I@@@S    @ 9@@   @ (@@@@@d@xdz@@@{@@@ @@@  gc_[so(DhTFӯxo@%К@ #'v+@/@3@ A A#A'j+@/@3@ @S@#'/+@/@{3@@o@ s@@c@g@#'A+ A/A37@;@o?@sC@G@cK@g@{@ @@[@_@@#@'@ @@#@'3@+@/@{@o@ s@@[@_@#'A+ A/A3C@G@K@7@;@?@c@g@@@{@@B #'+@/@3@ A A#A'+@/@3@ @S@#'+@/@{3@@o@ s@@[@_@#'A+ A/A3T7@;@o?@sC@G@[K@_@{@ @@c@g@@#@'@ @@#@'+@/@{3@@o@ s@@c@g@#'A+ A/A3C@G@K@7@;@?@@{@@_@[@@{)!8"@#@$@ @`@@c@ g@@@@@ @{@ @@c@g@@S@#'+@/@3@@o@ s@@[@_@@#@'@+@@@ @@@@@@e @@Ȱ k#Ⰶw'+@/@3@@k@ w@@[@_@#'A+ A/A3mG@W@@o@s@@@{@g@@c@N@9_@_gc )8@@@@#@'@ #'e+@/@{3@@o@ s@@c@g@#'A+ A/A3!@C@G@K@7@;@?@W@@@{@#_TsoT@T9_@_@9_@_9_@_cTxcڄڃ'ma !hBB `@@ G@!!* P@@ @@9 9@^@@c @@" @_iT#`B @` ,`A*!7 +!"@5B*B7CB*B7`( @``)`A*!7 +@5@*7B*B7_C_ @@@@6 @/@kK6 1/AkK1Ѡ 1¨ 9/A¨1MkK1M9?7+_ @@@@6 @/@kK6 1/AkK1Ѡ 1¨ 9/A¨1MkK1M9?'+_@ @@@ T$@d6$@d6$h$`$¨&h$j,?7#_ @~$@dJ$@dJJ$@dJѪ$@dуT$¨&h$j,?#T`$¨&df?@ @@@ T$@d6$@d6$h$`$¨&h$j,?'#_ @~$@dJ$@dJJ$@dJѪ$@dтT$¨&h$j,?#T`$¨&df?@@@ B zF_$Ě Ú!6F_$Ě Ú!A6F$ĚJ Ú$Ě) Ú! (aJ,L4A%Ě!Ú%Ě !Úu%Ě k!ÚT%Ě H!ÚT\!#__T6D_!с6D!DFA!#_@ @@@zT@&Ú"Ě#!6F@ Ě$Ú!A6F Ě$Ú Ě$ÚT!aJ,¨L4T!ĚJ%Úu!Ěk%Ú !Ě%Ú !Ě%Ú T\?!__T6C@!с6D!D¨F?!#_@ @@@#@6E@||Û'`6E||ÛJ||Ûk *,рE¨G ||ÛJ||Û ||Û }}Û$*0.@?'_@ @@@ 6E@&@g|h|ś&6E(&,@m| l|ʛg|h|śk k&,`EG )(@)n|Jo|+0Akp|t|țm|) q|śJu|ƛ)(ks|Ǜ+0#_ @_iT#с@!/@@@! @3@ 7@;@ ?@@@?CG_E_ "@cT#$ @_ T#с@'@@@ Ac@9@@C9/3_D_   "@#T#$ @_T#с@'@@@!@ ?@@@S/37_D_ "@#!T#$ @_T#с@@@@!@ ?_B_q "@!T#$ @_T#с@a/@@@!@A9C97@ ?@@@@#@;?CGK_E_G "@caT#$ @_T#с@@@@!@ ? @@#'_C_y " "@AT#$ @_iT#с@!@@@!@ ? @@#'_C_ "@T#$ @_iT#с@!@@@! @ ? @c@9##9_C_ "@T#$ @_IT#с@/@3@ @7@ ;@?@?@@@CGK_E_ "@cT#$ @_T#с@'@+@@?@@@[37;_D_ "@#AT#$ @_T#с@@@@?_B_z "@AT#$ @_T#с@A/@3@@A9C9;@?@@@@#@?CGKO_E_P "@cT#$ @_IT#с@@#@@? @@'+_C_. "@T#$ @_IT#с@@#@ @? @c@9'C9_C_ "@T#$ @_ T#?& @!!<#_C_  @_iT#@ 9)!1!!< e_C_  @_)T#Ѡ @!#_C_  @_IT#@ r)0 d_C_  @_i T#/@ @3@ ? @;@ c9.@#7@ ;@B/@ @3@? @!5Ư@A! @/@+!"@53@ 3@;@;@$@5#@ `#@.@ !@5@@#C_E_I  @_iT#'@ @+@ ? @3@?T('@ +@)@@!! @/@ 3@7@ ?@@;?_D_'@+@ /@3@7@o@!.;?_D_*  J  @@ _ց @C_)T#O@@#c@ ÚcW@TS@_@S@_@T ?T T_@ @@ @[@g@J -?@   MT@_ TC T;7C/3? #'O@@/@_T@@c@?@ `?O@@/@_CT7@T;@c%C@3@BT@ @T 3_I_  * =J* 6J* /JA O Z @_T#@ @@'@_aT#@_T _C_*  J ,  @_iT#'@ @+@ ? @3@?T&'@ +@ @@!! @/@ 3@7@ ?@@;?_D_'@+@ /@3@7@S@! .;?_D_*` I  @@ _ց @C_T#O@d@c@; ĚeEW@ TS@_@S@_@T (?TT_@a ˇ'?Th@)) (i@g@D?T/3 U/@c@g@O@S@_@3@[@&_I_C@?@ ;@g@C_@$#'O@`@/@'_@[@g@S@7@[@7@TT?CT(ˉ _C T7?;C/a@d@!@ D ?/@7@ITP T?# T'˄_#T?;Ca@h@!@ B ?O@ @@@C@?@ ;@#'O@@@ @ @@@+!"@b5 ` !@a5_I_!(%# * H* H* HR@  @_T#@ @@'@_aT#@_T }_C_*  H  @_T#*7@ ;@@@!! @?@ C@G@ ?@@KO_F_7@ @;@ ? @C@? T7@ @;@ ? @lTw7@ @;@? @#C@ c9@+?@ C@$5 #@@'A! @7@+!"@5;@ ;@"C@ $@5+@@+@#@!@5'@'@  !KO_F_*` H &u @_ T#7@@ @A@#D@E@?c T'?a 7@@@@@@A@ @? @+7@'@+@#@$@%@f_T_T' @&@@'@( @)@F c?'@+@7@C @c _T"? _F_cD@E @Thc8h#8D @E@Thc8D4  @_IT#_@k@kT[@g@[@g@_T %fTb Tg@o@c@W@ @ ;@!G@(?mTC?KG;7W@@@3@! @ ?W@ @ @3@b?T=W@@@@ @HTK@?@ C@G@7@;@cˊB !#'M+@?@?TC@B#K@7@?T_J_ba_* G* F q @_ T#C@0?T?@?M T,7@ ;@@@ 7@ @;@ ? @@aT3$ @+7@!@;@| ?@ @7@+!!@5;@ ;@?@C@ +@C@B@c #B 'PTN@ @!!4!OS_F_! @?@ C@ ?@@@@GKOS_F_@Χ @ a!!OS_F_@ @!!OS_F_ֆ|eh&cb!?@ T"ACA$~%B@[ҥA҄c~BCB@BC[cBABB_@TeB|ӥ@@bhbGA Bœ@bT|fh%d$~ӄB@[ҥA҄#@'@ʟ@T !'GK _F_|I|F|C ( @@ _@ @ _ց @_T#g@@{@_T@@! @ ? @{ |@?Tg@d @C%;o@3s@_TTk@!5 k@ԩ@@g@C@;@3@o@T?SH7 Oe@a@@_ `T  ,ь  Tl  T3 @[!3 @Wg@[@ w@{@@g@@@!@W@ |[@ ?[@Qg@O@ ;@7@@@@[@#H@7@?Tg@# |O@@#@'@+W@/@;@TC@?@|Ao@B?@bO@@#_T ?@S@3@_L_ֆ}* *E|r* E*` E 9 @_I#T#g@@{@_A!T @?0 T@KT@@! @ ? @g@" @{@HT`cTC;39 @[!33 @Wg@[@ w@{@@:g@@@!@W@ |[@ ?[@g@# |@;@@@#@'@+W@/I@C@B@a ;@ @ o@3s@TCTk@7O5 k@@;@7@@@o@3@O@T ˥!T +ь TK  T  g@K @A TT G *&@@_L_ *&@@_L_T *&@@_L_?S [@# S@3@?@_L_M#ib8hb8ʌ _ T Ղ@BB|_* |V * D\ Q W *  C*` C  @_T#@@TE@ATE@AD_B_{9'Dӊ jijx j |L JikAʇ@ʥDjT @(ē))1*@+@_(T   @_T#+@'@7@/@3@ @@|@&@+@'@TiTG@@ G ?)T@@ !!}ha! @ @?@"T_D_| @ @   @_T#C@Da|G@_cT#7@;@ ?@C@#@?TT!?@|!G@`@`?@`#T ! |#7@;@ _F_@ }  R@ @!Z!!Z _ @_ T#3j @Kk@o@g@_@c@[@7@@|C@$@?@@|G@;@@K@;GC?37?@KTW@"@s@{9$@B@ |@?s@ C@3@ 7@G@;@?@K@|#'3@?@T*?TW@"@s@{9!@B@ |@?s@C@3@ 7@G@;@?@K@|#'_J_|  { @_IT#;@0T3@;97@_T j 3@@ <9/@ 7@?@ #@;@ #/@ @ 3@ #@ _E_ @_ T#?@c [@_@c@?@c O@S@W@/@_@ /3@S@ 3?@c J/@G@?IT C@b" 3@_ TK@ BB} dh"g@[9 |#'G_G_ @Q @O  4 @_ T#?@ @C@G@ K@O@?@@@O@#T+'#7@ @;@G@ ?#@S'@W+@[_F_'   @_iT#C@7@?#`+@T_T?iT'@3@ ?@@@K_D_K_D_     @_)T#@ @` 8<`!*!& +@5 * &"*B &x _C_@ @@@kT LD L n!n"n#n LcT#(6 LBLB nc!nL 6+0M8  86+@L@ 6-D@ND@ JD6/$@xP$@xJ$x61@9S@9sJ9_ @_T#@@#@C@@E@?T J{@9 @@#@C@ @B @?`T :{@9#9_C_= @_IT#с@7@ @@@ @ ;@?@C@#@'@+@GKO_F_i "@T#$ @_IT#@@#@C@D@@?T z@9` @@#@@ "u@9#9_C_ @_iT#@ @'@@@@@A+@`5C +@@/@@@`D@ 8 &3@7_D_@@ _@@ _ց @_IT#w@C@@AT@{{T  0T@T E w@@@9@`k@ @M k@ @w@@A@D@?)T B  w@`k@ @@C& w@@G@C?@;@TCT{@5 {@@G@@?@@;@w@H Tˉ _( Tb@@_ T  Lэ  T l  B T   Ccg_T@@@k@ @#C'+/3y @k@ C@B@?@TG@?@|A@BC@bc@@C_T  C@g@;@_N_ * ?* ?*` ?   @_&T#w@C@@$TC@0K#T@?T{{e?T ?!T? %;@c@c0AT@ `T 8 ?@w@c@;@@@@9@`k@ @<k@# @?@w@c@;@@@A@D@?T B # w@`k@ @@c @?@7@TCT{@!5 {@@?@7@@Tea@@T (?TbT_Cg?Tw@C@D@G@k@ @#c'+/3 ?@k@# c@5w@@?@ T;@?Tc@= *%@@_N_ *%@@_N_@T?@_@  *%@@_N_g@7@C@_N_Dchb8hb8c_ T a@!!|_*|* i>Ҟ*  Z>*` S> t @_I!T#3@?<) T    /@C@D@E@B @@?iT@@cZc?iT@Z?T@Z? T @BZB'B ~xpQ|X1~Qiq0q|P1~qiq0ʑ|H1~ӱiq0ʱ~iq"ʌ T? Txli|X)~'JIii(ʉ|P)~'k*iii(ʩ|H)~':ii(I~(΁ ii(ʉ? Txi|X~Oio ʯ|P~oio O|H~ӯio o~io ʏ ?ITxo|X~PipP|P~pipp|H~Ӱipʐ~ipʐ ?Tl}X*'cbhb8Bh$}Pӄ@dhd8B@D}Hӄ@dhd8B d@dhd8$}X*dhd8hE}Pӥ@ehe8@e}Hӥ@ehe8 @ehe8E}X*ehe8hg}P@ghg8@}H@ghg8 '@ghg8g}X*ghg8h}P@hhh8@(}H@hhh8 H@chh8c? ITxlBʀ?Tx`ʀ ?Tx`ʀ ? Tx`c'@?<)T @Z#@  ՀZ  ՠZ  `Z _B_@   @@@} b @_i!T#3@?<I T    /@C@D@E@B @@?T@@cZc?T@Z?T@Z? T @BZB'B ~xpQ|X1~Qiq0ʱ|P1~qiq0ʑ|H1~ӱiq0q~iq"ʌ T? Txli|X)~'JIii(I|P)~'k*iii(ʩ|H)~'Э:ii(ʉ~'΁ ii(ʉ? Txi|X~Oio o|P~oio O|H~ӯio ʯ~io ʏ ?ITxo|X~Pipʐ|P~pipp|H~ӰipP~ipʐ ?Tl}X*'cbhb8Bh$}Pӄ@dhd8B@D}Hӄ@dhd8B d@dhd8d}X*dhd8h}Pӥ@ehe8@%}Hӥ@ehe8 E@ehe8E}X*ehe8hg}P@ghg8@}H@ghg8 '@ghg8'}X*ghg8hI}P)@ihi8@ i}H)@ihi8 @chh8c? ITxlBʀ?Tx`ʀ ?Tx`ʀ ? Tx`c'@?<)T @Z#@  ՀZ  ՠZ  `Z _B_@ ~|z x v@tr@pn@l Q @_ T##@'@@@@ZGx FT~CT˨? IThgTBEx T TExe Ěg Ěѥ`|X*')(ih8|PJ@*ij8JpHa|HJ@*ij8! @%ie8@"Th'A4ig8`TaT է|X*'ig8|P)@ ii8)p'a|H)@ ii8 @ ii8%h'A4')F TGxg(TE/@/@3@_B_Te_B_ևx(T TGxg TT|X*')(ih8'JHyh|Pk@+ik8'Ќ*ykh|Hk@+ik8'Э:ykh@+ik8'΁ ykg?T| 3@ ; @_iT#/@@ A@@ B @@37_E_e @_T#3@@T``TAT/@ 7@@@@@;?CG_E_( @!CG_E_5 @_) T#`+R @3!3[@Cp+ g@/!3+@ ^@/@7+@;?CGK+@ 53@C@;T `+3@ v3@@@@ @@@W@[@ _@#':c3@g _J_| _ @_T#K@@T?@?@T;@G@_T e<T<T7@@@@ C@#O@'/_F_* q:* j:*` c:  @_T#K@@T?@?@T;@G@_T e<T<T7@ @@@ C@#O@'_F_* %:* :*` : 8 @_T#Ѡ+@9 9R @3!3[@Cp' g@/!3'@ ^@/@7'@;?CGK+@!53@C@;T  93@ v+[@?@aTB ?`aT~?aT ? T3@a@d@?) Ta@e @?i TW@ }+@9+@9@ ; @++@53@@;T 9 3@5;c+@g _J_:c3@g _J_W@[@ _@h@@@@cgko_J_ңҡҟ O| _ @_IT#3@_@T'@_@KT/@#@_T E<T<T@@@?iT B _C_f* #9* 9*` 9 6 @_IT#3@_@T'@_@KT/@#@_T E<T<T@@ @?iT B _C_* 8* 8*` 8  @_)T#  @` 8<`!*!% +@5 *%"*B%+3@9`@+0@9+! 9+$3@9`@+0@9+! 9_C_@ @@@q@L?1TTAL H(Nh(N@H(Nh(NCL`H(Nh(NH(Nh(NE!LI!LMaLH(Nh(NH(Nh(NH(Nh(NI(Nh(N I(Nh(N@I(Nh(N`I(Nh(NI(Nh(NI(Nh(NI(N n`qL_@ @@@q@L?1TTAL X(Nx(N@X(Nx(NCL`X(Nx(NX(Nx(NE!LI!LMaLX(Nx(NX(Nx(NX(Nx(NY(Nx(N Y(Nx(N@Y(Nx(N`Y(Nx(NY(Nx(NY(Nx(NY(N n`qL_@ @@@{{!`@N#N n2h6 7$@)&A)D(F(nRNBNH(N JySr@<JJJJD(F(!TJ@!LN&x(NEx(Ndx(N@!L x(N*x(NIx(Nhx(N@a@Lx(N-x(NLNlaLh!Ld!Ll" @)$A)&B)B (D(F(NBNH(NB JyS@<BJcJJJJJB (D(T JA@!LN&x(NEx(Ndx(N@!L x(N*x(NIx(Nhx(N@!Lx(N.x(NMx(Nlx(N@q@L`qLl!Lh!Ld!L>{{!`@N$N @)" A)$B)&C)@(B (D(F(NBNH(N JySI< J!JBJcJbNBNH(NI< JJJJ@(B (!T+J@!LN&x(NEx(Ndx(N@!L x(N*x(NIx(Nhx(N@!Lx(N.x(NMx(Nlx(N@a@Lx(N1x(NPNpaLl!Lh!Ld!L_A!H@/NN0n@ @@@@Hp@L!p@Lc}ӄ}ӀN`N L(n @nk nNJ(nJ)nKAn B n*n)+n An+n )+n)A n)n N!nHpL_@ @@CcHoN@oN0n+ L n`I(Nh(NI(Nh(NI(Nh(NI(Nh(N+ L`I(Nh(NI(Nh(NI(Nh(NI(Nh(N 6+L`I(Nh(NI(Nh(N6+L`I(Nh(NI(Nh(N+`@L`I(Nh(NI(N-n N<NclNlN/N AoAnTAO,n-n@n! nLN#N @cLKNm+n,nAn B nk-n.nmkA nk-nmkA nk-nb,nCNB@nc"nLAT_@ @@@(nD҄HӏN@N0n4T+T  L n$@N$N$09Nkk Tc L L N(n @nk nN L! N+@nk!n).nN.nJ.n"L LB NK@nk"n).nN.nJ.n Lc Nk@nk#n).nN.nJ.n$L L N@nk$n).nN.nJ.n L N@nk%n).nN.nJ.n&L L N@nk&n).nN.nJ.n L N@nk'n).nN.nJ.nJ(nJ)nKAn B n*n)+n An+n )+n)A n)n L@ Tc@ pL N(n @nk nNJ(nJ)nKAn B n*n)+n An+n )+n)A n)n# n!$8znNcTHpL_@ @@@#@'@+@/@LҌH@NoN0np@L))nJ*nRp@L11n@qNR n2Ns!Lw!L{aLN+.T 6}NNN|qLqL6N|qLqL @N!N n"N! n#NB n$Nc n%N n&N n'N n2N n`J(Nh(NaJ(N!h(NbJ(NBh(NcJ(Nch(NdJ(Nh(NeJ(Nh(NfJ(Nh(NgJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(N K(Nh(N!K(N!h(N"K(NBh(N#K(Nch(N$K(Nh(N%K(Nh(N&K(Nh(N'K(Nh(N@K(Nh(NAK(N!h(NBK(NBh(NCK(Nch(NDK(Nh(NEK(Nh(NFK(Nh(NGK(Nh(N 6K(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(NK(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(Nj6LI(Nh(NI(N!h(NI(NBh(NI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(N!h(NI(NBh(NI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(N `K(Nh(NaK(N!h(NbK(NBh(NcK(Nch(NdK(Nh(NeK(Nh(NfK(Nh(NgK(Nh(NK(NK(NK(NK(NK(NK(NK(NK(N?n!?nB?nc?n?n?n?n?nlL n!n LlL"n#n"LlL$n%n$LlL&n'n&L L N(n @nk nN L! N+@nk!n).nN.nJ.n LB NK@nk"n).nN.nJ.n Lc Nk@nk#n).nN.nJ.n L N@nk$n).nN.nJ.n L N@nk%n).nN.nJ.n L N@nk&n).nN.nJ.n L N@nk'n).nN.nJ.nJ(nJ)nKAn B n*n)+n An+n )+n)A n)nT L`LN 6L_Nj6LN@KT@kpLk?n@ n2N`J(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(N K(Nh(N@K(Nh(N`K(Nh(NK(NJ 6h(NK(Nh(N H(N6h(N@H(Nh(N`H(N+n pL N(n @nk nNJ(nJ)nKAn B n*n)+n An+n )+n)A n)nk+n.n Ҍc6k_kNN6k̟ b nbnkNN6kx r nrnkNN6k8 z nznkNNk?n@ n`J(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(N K(Nh(N@K(Nh(N`K(Nh(NK(NJ 6h(NK(Nh(N H(N6h(N@H(Nh(N`H(N+n.NpL_@ @@@#@'@+@/@LҌH@NoN0np@L))nJ*nRp@L11n@qNR n2Ns!Lw!L{aLN+.T 6}NNN|qLqL6N|qLqL @N!N n"N! n#NB n$Nc n%N n&N n'N n2N n`J(Nh(NaJ(N!h(NbJ(NBh(NcJ(Nch(NdJ(Nh(NeJ(Nh(NfJ(Nh(NgJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(N!h(NJ(NBh(NJ(Nch(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(N K(Nh(N!K(N!h(N"K(NBh(N#K(Nch(N$K(Nh(N%K(Nh(N&K(Nh(N'K(Nh(N@K(Nh(NAK(N!h(NBK(NBh(NCK(Nch(NDK(Nh(NEK(Nh(NFK(Nh(NGK(Nh(N 6K(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(NK(Nh(NK(N!h(NK(NBh(NK(Nch(NK(Nh(NK(Nh(NK(Nh(NK(Nh(Nj6LI(Nh(NI(N!h(NI(NBh(NI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(Nh(NI(N!h(NI(NBh(NI(Nch(NI(Nh(NI(Nh(NI(Nh(NI(Nh(N `K(Nh(NaK(N!h(NbK(NBh(NcK(Nch(NdK(Nh(NeK(Nh(NfK(Nh(NgK(Nh(NK(NK(NK(NK(NK(NK(NK(NK(N ?n-?nB?nc?n?n?n?n?n`L n!n,L L N(n @nk nN L! N+@nk!n).nN.nJ.n`L "n-#n,L L N @nk n).nN.nJ.n L! N+@nk!n).nN.nJ.n`L $n-%n,L L N @nk n).nN.nJ.n L! N+@nk!n).nN.nJ.n`L &n-'n,L L N @nk n).nN.nJ.n L! N+@nk!n).nN.nJ.nJ(nJ)nKAn B n*n)+n An+n )+n)A n)nT L`LN 6L_Nj6LN@KT@kpLe Nk?n@ n2N`J(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(N K(Nh(N@K(Nh(N`K(Nh(NK(NJ 6h(NK(Nh(N H(N6h(N@H(Nh(N`H(N+n pL(n@nk%nNJ(nJ)nKAn B n*n)+n An+n )+n)A n)n& @ n2N`J(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NJ(Nh(NK(Nh(N K(Nh(N@K(Nh(N`K(Nh(NK(NJ 6h(NK(Nh(N H(N6h(N@H(Nh(N`H(N?nep@L%n.n ҌѦ6 <N+N@n6 <+DbnN n6 <+$xrnNn6 <+8znN.N N(n@nk%nNJ(nJ)nKAn B n*n)+n An+n )+n)A n)npL_@9 @9@9 @_)T#с@/@@@ )8@@ B 2@@37_E_b  "@cT#$@ _ @_iT#/@$h T(TT`TT L3@7_E_ @3@7_E_ !T 37_E_ D3 @7_E_hT!T `3 @7_E_ |3 @7_E_`T !T@ 3}7_E_@ 03@7_E_ 3 @7_E_8(T,hT(!T@ ,3}7_E_@ L3}7_E_0`T4!T@ 3}7_E_@ \,3`7_E_@ l3}7_E_@hT<!T@ ,3`7_E_@ |%3`7_E_D`TH TLT@ Q7@@ B< bZ@@37_E_@ P%3`7_E_@ $%3`7_E_@ $3`7_E_  @_T#@_LT)B0A@B@T@h`8_B_*`  0  @_IT#7@_LBT*BA@B@bTZx`Z@@?@ @;?_F_@ 6@@ B "` D)@#@'@ Ȇ@!* 0  @_ T#@PbT*BA@B@BT@x`9_B_ַ  @_)T#/ Ӕ@*!  *!@ +@5**BH_C_o @_T#с@a@@@PbT*BA@B@?IT@x`9_B_k K"@aT#$ @_T#с@@@_A_ք -"@c!T#$ @_T#с@A@`@# @@#'_C_c  "@T#$ @_)T#с@@@@_LT)B0A@B@?T@h`8_B_*`  /2 "@T#$ @_T#с@A@`@ @@#'_C_ "@T#$ @_)T#[S_@9  Sc@9  dh`8h`8!T  @|_*g_K_o @_ T#[3?@9 [ *@@T C_G_h`8&h`8B T A@!!|_*8 @_IT#G@TC@A9?qiT O @ ~ !(O!SW_G_[3T @?@9  ?@O _G_ @_T#@9#@;9'@[9 @ T@+_C_ @_T#@9#@;9'@[9 @ 4@+_C_ @_I T#    sO@9   @  c t c o  cc c + c [+@ T  cc K ' c C'@T  cc 3 # c +#@<T  cc   c @|T  cx c c @l  c @T  cY c c @M  c @T  c: c c @.  c @ T  c    @9 @ @_O_ @_)T~#?B @";Bd @|›|C+@Ӊ|ț| @lӍ|̛| @ӑ|Л|Ss@Ӗ|՛|'+ @Ӛ|ٛ|@Vӗ|֛|@3~ě-~q@N|ћI|KO}ћ }?G}ћ}7;~ћ ~/3~ћ~'+.ћ)#~ћ~v@J|֛E| }֛} }֛} ~֛~~֛~*֛%y@F|ٛJ|}ٛ }}ٛ}~ٛ ~~ٛ~u@F|՛J|}՛ }}՛}~՛ ~p @F|ЛJ|}Л }}Л}l@F|̛J| {}̛ } owh@F|țJ|k@||g~ћ~_c|ћ|W[Q֛DO~֛~GK|֛|?Cٛ;QٛV37~ٛ~'/|ٛ|#~՛~՛V՛Y ~՛~#|՛|~ϛ~~ԛ~Л YЛU~Л~|Л|}˛} }ϛ}}ԛ}}؛}ƯP ~̛~ |̛|  }Ǜ}}˛ } }ϛ }}ԛ }}؛ }}ڛ }~ț~w{|ț |osc@(|Û0|a|Ǜl|kg|˛a| gk|ϛg|co|ԛk|_t|؛o|[x|ڛt|Wz|כx|S|Û|  c@c@@@@@@@@@@@w@@o@ @k@@c@@_@g@ @O@@;@B@@B@BB@AB@AB@[@+B@W@CAK@@G@7@@3@@@@B@BA@AA@A @kAOAA )@)KA@) C@ J@J?@I /@ J@J'@I @ J@J @I B J@JBI A J@JAI A J@JAI @gA GA@) J@J?A@J A) @A #@) @@ @) @#B B) @A A) @A A) @A ')@)cA) ;As@J @7AS@ AJ @ A @J @@ BJ @B AJ @A AJ @A AJ @A J k@k_Ak 3A+@ @/A'BA@A @@@ @@@ A@A A@A A@A @ +AA@'AA@@@@@@@@@@@@A@A{A@wA@WA#AA1@1AA1@s@s@q@s@s@q@s@s@q@s@s@q@s@s{@qsAs@soAqs@sSAqss@sczcqГ.1@1czcoΓ @czӣm̓ @czckʓgk@kcz#iǓ!)@)czh@czfœ@czӃ@d“                                                                                                                                                                 @7B@@ӃC`@@`@@ @@@ @@@@ #_r @_)QT~#A @"C|D|@!~&|ś'| }ś } @l}m}~n}śo}p~˛~ @~~~ś~k~ә~˛~ :ԛ1@QWQśWQ˛W ~ӑ~ڛ~TڛS @ś˛ ٛZV؛I ؛ { @}}sw}ś}}Л}}ٛ}koJ͛C cg ͛ [_}͛} SW @#|ʛ6| A}țD}OI}ЛA}GKI}ٛA}?CIʛA 7; ʛ /3ө}ʛ} '+I}ʛA} #@ |›||ț ||Л||ٛ|YP  }}JM}X} | |@ @@c @CJ@Jj@ @O@@@@@@@@o@@k@K@@G@ @@@@ )@){@@) g@ J@Jc@I C@ J@J?@I @@ @@) J@J@@J _@) k@k[@j ;@) k@k7@j ()@)@) @@J k@k@@k W@J @S@ 3@J @/@ J@ @ @@ @@@@@@ +@@'@ @ A @@@@@@@@#@@@@A@@1@1@@1@s@s@qw@s@ss@qs@sAqss@sczcqГ.1@1czcoΓ @czӣm̓ @czckʓhk@kcz#iȓ")@)czg“@czfœ@czӃ@d                                                                                         @A@@ӃC`@@`@@ @@@@@@ @ #_r @@@BA@cB @C@D@E@F@G @H!@!@)@@IB@AA"@Bb@AAA @A @A@A@A@A@@!_ @@@C@a@D@@F@ @H @ @J@ @L@ @N@@P@ @B @@!!! !! !a !!!@ "_ @@@C@!!@D@@F@ @H @ @J@ @L@ @N@@P@ @B @@!a!!!! !!! !!a !!!!!! "_ @_!T#[k9k@@!"@[Ak9/G9k@9@a!#@/AG9C9G@9@a!#@AC9?9C@9 @a!#@A?99?@9@a!#@A9W{9@9@a!#@WA{9Sw9{@9@a!#@SAw9Os9w@9@a!#@OAs9Ko9s@9 @@K@o9Go@9GCg9[@G@!@@Czg9?c9/@g@9G@B@@?zc9;_9@c@9G@B@@;z_97[9@_@9G@B@@7z[93W9@[@9G@B@@3zW9+S9W@W@9G@B@@+zS9'O9S@S@9G@B@@'zO9#K9O@O@9G@B@@#zK9K@K@9G@B@@#@'@+@7@;@?@C@3@@g@&`* yp*9x%q`&xp&59xӤ$`%%yp%Q9xӃ#Q'`#xp#9xb"%C`#QyCp#9BxA!"`"x"p"9!x  !(#_#+@A99A99@99@99@99@99@99@9C9 @99 @99 @99 @99 @99@99@99@99@99@99@99@99@99@99@99@99@99@99@9{9@9w9@9s9@9o9@9k9@9g9@9c9@9_9|@9[9 x@9W9 t@9G9 p@9 l@9 h@9d@9`@9S9\@9O9X@9K9T@9P@9L@9H@9D@9@@9<@98@94@90@9 ,@9 (@9$@9 @9@9@9@9@9 @9@9@9@9 @`@'@A8X x @Az0Pp@AS@9O@9K@9z(Hh @ o@9k@9g@9c@9_@9[@9W@9G@9!@`a @A@9@9@9@9{@9w@9s@98Xx@A@9@9@9@9@9@9@9z0Pp@A@9@9@9@9@9@9@9z(Hh@@9@9@9@9@9@9@9C@9!@`a @ #_#+?@@C@C@A9˃!$!+'@C@!$!'#@C@!$!# @C @!$!@C@!$!@C@!$!@C@!$!@C@!$! @A @$ +@7@ '@ #@ @ @ @ @ @  @ #_ց @_IT#7; @; @*! *! +@5;@*! *B;@K_H_r @_T#/@T+@ 9_D_@c@ @#@@? @'@?T@/@_lT@7@;@9_D_=@ _ @C_i T#`V @S@ ܄@3 S@Մ9;S@@@ @@#@'@+@;?CS@@99 p3@ O@@3@ cO@@3@ 3@W_I_ @C_ T#&* My@@7;)@@!@(?CO@ N@@@9" S@@a@9a@a@ O@"@ @ෟS@aW@"@b"@9b@O@@ v@9_I_#9+#W@ ;@#O@"@ ;O@S@ B@#@ U@9_I_@S@ W@?@99_I_\{ @_)T#`z @@"@b!@9a@#@"@b!@9a@@ @'_C_+ @C_) T#[@@a@9a@A@? @#A!9 @#@_c_I_9;O@"@ @#9+# @A! @S@ @@#O@"@ @ @@ @W@ @@O@!@ #@_@c_I_ @C_) T#&* %x@@7;)@@!@(?CO@ &@@@9b @S@ W@[@_@?@@cg_I_S@W@ #@3[@_@ @O@S@ W@3@[@_@#@'@+@O@ 4@@cg_I_S @ _멓T~#@p @A!j @A!d @A"@b$@9d@! A@? T @@'@(@lT%!T @ _@@A@@@@@  GN@@A@@@G@ITos }@A@s@@o@ +@g5 !@99+ A@?` T @@)@*@ kT +?T @  @@A@@+@@@@  !3@@A@@+@@3@?K @T{c `}Q@A@+@{@@c@ @g5 W!@99 A?` T @@)@*@ kT +?T @ @@A@@+@@@@  ?@@A@@+@@?@?K @Tk `}@A@+@@@k@  @e5 !@99_@_A@e@9e@! A@ T @@@@kT'AT @ M@@A@A@@@@  /;@@A@A@@/@J TS @}@AA@@@S@ +@h5 @99+ A@ T @@@@ kT -_T @ @@A@A@+@@@@  AC@@A@A@+@@C@_L? `Tg }:@AA@+@@@g@ @h5  ?@99 ?` T @@)@*@ kT +?T @ @@A@@+@@@@  ;@@A@@+@@;@?K @T[ `}@A@@+@@[@  @d5 !@99_@_#9c# @A"@  9  A @A"@ # 9c # A @@A"@  9  A @@A"@ # 9c # A A@@a@9b@a@9a@O?TA"@  A 9{ @@ @@=#@'@+@{A@9 9  7# 9kc # A ,@# 9[  A A@ @A@A # 9Kc # A A@ @A@A  9;  A AI@@a@9a@?TA"@ ~A@ @@c@9d@O@AA AA@@@_@_  @#@'@+@A@A `+@a5CA # 9C 3# A @  A@? TD @E@&@'@kT%!T @ @ AA@@@@@  7@ AA@@@7@hTWw }Y AA@w@@W@FD d+@f5EF ^#@9C9 ;@ #A~@ A~@ A~A@@ * A@ T$ @%@@@kT#T @ @A@@A@@  K@A@@AK@HT_ }A@@@_@&$ d+@f5%" @9 9 A @+~@ A~A #A~ A@@ @ @#@'@+@A@A `+@`5C@ @ }A@@ @A AI}@ ~@ @}@ @}@ Az~A@@ {@@@_@_^ @_ T#&) s@@'+)@@!@(/3?@# @@@9@C@ G@?@@KO_G_C@G@ @?@C@ G@@@@?@ 9@@KO_G_X @C_i>TC~#9@ }@W@"@ #9#@ }@S@"@ @R} @@ W@3}@@a@9a@c?T@"@ ||9{@ W@r|@_c@ } _@c@ T @@&@'@kT#;KT @ /@_@c@;@K@@@  /@_@c@;@K@/@HTC37 }|_@c@7@C@3@ d+@f5 "@99  @"@# @ @Q#@'@+@c@@A `+@a5CA e _@{_@@ S@<}@[A!| @c@ 0}@G#9 s[@"@#@$ @@#@'@+@kos[@@9#9@"@# G@ #e|G@@a@9a@?T@"@ {G@@"@ ~@`| @@ @{@? |?@ S@5|?@@a@9a@?T@"@ {?@ W@|?@@a@9a@?T@"@ g{?@@"@ ~ [@@@ @ #@'@+@[@@A `+@a5CA  G@{[@@a@9a@?T@"@ *{[@c@ l|@OS@ e| S@@@ @ @O#@'@+@S@@A `+@`5C@ c@@ H~O@ S@{O@@a@9a@?T@"@ zO@@!@ )~G@O@?@_@C_] @_T~#&) p@@)@! ')@@!@(@ @@@@9c9sc@ x@;9c c9S 9C@@@c @@ @@@@?@#@_@_ք?T7hhd8  @@_@_3@Ih@7@;@@@?! T39 |@@@A9?6@@ @;@o#@'@+@A9_ @_ T#&) p@@'+)@! '/3)@@!@(7;G@# @@@@9"@K@ O@S@?@@W[_H_G@ @@ K@O@S@@#@W[_H_` @_T#g@@k@ ? @@?@@B!xb!za!/5  @C7 }@KK@3@;@A GC o@s@ 7@#@'@#@b7@ TK@@9f)ƀ1@@/@**JJC Ti`89T;3@9[ʀ9c9S @#@'@SW[c9c?@ }@G@C@g@@k@K@ 7@ ?@@K@w7@{G@C@_L_w7@{_L_@ W @_ T#G@@K@? @@!5!A7C+"3C' |@'@?IT~9+@d(TT;/O@!!@! 3@~S@3@7@ /@A;@! ~;@W'@[__H_@s X @C_T#O@@S@ ? @@!AC"B[@TiTW@D@9qT/7O@@S@ ? @@CA!Uy @/@"_@T_cT?3@@ @ b˄@W@ð@#@'@?@@A `+@a5CA _9@%y @[@3@? T;@@ @ _@7@c cBW@! !@#@'@;@@A `+@`5C@ _9?@C@ |@;@C@ |@cg_I_O@@S@?@ ;@?@9?@c;@g_I_cg_I_cg_I_cg_I_@ 6 @_iT#ѽ ^_A_y @_ T#@2x @` $``+@5)! #)B -@x @ A|) @[9@a+!$@d5C@gx @l @|) @;9@b+BD@d5#! @Kx @ {||) @;9@b+BD@d5#!@@/x @L {|i|) @;9@b+BD@d5# !`@x @ {|M|) @;9@b+BB@b5#"@y_D_S @_)T#@2w @` ``+@5)!#)B}@w @ (" A |)@[9@a+!$@d5Cc@w @ ! @{)@;9@b+BD@d5#! G@w @ |4 }|{)@;9@b+BD@d5#!@+@w @ \5 }|{)@;9@b+BD@d5# !`@cw @ <6 }|{)@;9@b+BB@b5#"@ {"@! @)B  )@!@)B )@@)!  _D_:@;_ @C_iTC~#@@a@9a@a@ @!@ z@ෟ@A@"@b"@9b@@@ z@@ Y @ T C~TC C!C C C9_@C_Cx`cCx  KTx`x`cCx  JTCCx`d)Є2@@T3CC"x`dx`"x  TC  C  T"x`Cdx`kTC9_@C_@C9_@C_d IP @_T~#   c@ @ @@a@9`@@@a@9`@`@A cA A@a@9`@A@a@9`@`@{c cccc#'c c@@ _@_} @_IT~#   c@ Cc@ >@[ ccc @@_@_ @_ T~#   @ @ @{cc c@@#@'cc cr@@_@_< @_T# @{c cC@@#@'c c:@@_N_ @_T#c7@ Gc@;T dx`&'"x`˂ T |P |H|D|B|AA|PA"|H!"|D!"|B!"|A! @s_F_ @_T##@[9_x <T@@ jT@ Y_B_֛9{9Fxex`hxaFx%!? jT[9%<cT@  @_IT#@[9_x <T@ jT @ &_B_!?LT{9dx`exa|!T[9%<TFxeDx%[9%<TFxeDx%@h@e J @ 9xa#'c;dxax!!? T 9" xbxacx""xbxaCC C!C"x`B}"x  KTC@ CC @xaCxaBx!!? JT9xac)c2d@e@?T_@C_ e @C_T#  w@s@o@[9_x#;9?x#9x#c T@@T3he8_9 _M_g@@3@_A9 T/ u# {@@@o@s@#w@'&_A9 @/@D$Ě0 a|@o@ s@ w@"9xexe}ʆx% T9xf# yf))} ʧx& T9xg*ygJJ} x' Tu @_I T~# #~T@@qaT m @!!m @@_@_#@ # @  #@ #@ @ # @ @@_@_f @_T#;@@'B5"}# p@+;@"@#@! @ #@@'@ hT#@!+@@ @F}ӥ ƚ0Bc_T?T$hd8_ !Tbl@7@b @F}ӥ ƚ0B|Dӄ_T?T!ha8l@b @G} ǚ0B_T?T%he8_ !Tl@b @F}ӥ ƚ0B|Dӄ_T?T!ha8l@b  @G} ǚ0B_T?T%he8_ !Tl@b @F}ӥ ƚ0B|Dӄ_T?T!ha8l@b @G} ǚ0B_T?T%he8_ !Tl@b @F}ӥ ƚ0B|Dӄ_T?T!ha8l@`_F_#@ s @_ T#SG@@9@!|H9@!|P9@!|X! @@B |A9@!|D9@!|L9@!|T9@9@!|H9@!|P9@!|X! @ @B |A9 @!|D9 @!|L9 @!|T9@9@!|H9@!|P9@!|X! @@B |A{9@!|Dw9@!|Ls9@!|To9@k9@!|Hg9@!|Pc9@!|X! @@B |A_9@!|D[9@!|LW9@|TS9 .l @;@@ @ S ~@#@'@;@@A @+@`5C@ _9K_H_k @_ T#@2k @` `@+@5)!#)B k @  Ap)@[9@A+!$@d5Cw k @ L @p)@;9@B+BD@d5#! [ k @  z|o)@;9@B+BD@d5#!@? k @  z|o)@;9@B+BD@d5# !`# wk @  z|o)@;9@B+BB@b5#"@x_D_,S@ _ @_ZT~#B@a@9a@! c 93  c T@@?T#7?T @ Bn@A7@@@B  +2n@A7@+@B?cT3/ `}B/@A3@7;3@9c 97ATcI9@c 9c )!"@B@ n@`A9## )@@A gm@#~Tc~ }U @ԝ ϷdoҠ73 s `m GwĊ { {~ c}c#'c~ }@c~ {c}#'h~ ~c}c#{'Wc~ }c}# ~'Fc~ } ~@~  ~c#}''~ c}@c~ |#' c~ }c|@d~ ~ ~c#}'c~ }c|#'~ c}7~ c#{'c~ }c~ }#'~ c}|~ c#}'c~ }zc~ }#'qc~ }{c~ }#'W99~99 99@999$9#9'9+9/93979;9?9C9BG9K9O9S9W9 @[9_9 c~T?~C~GcKO}ScW[{_cgkcos|w{ ~ #'+/37;?CGKOSW[_cgkos&;Ch`8c });@ A #@$@!@c~ }#';@~{hKT @_c }#' c{ c~} h @@@ @ c{@#@'@A@A @+@`5C@ &_9_@_I$ @_IT#@@} @#@C@B@@x!!?TexaHT_B_9  @_T#c93S@W@[@@#@'@37;c9)@!@c k@@)@@c jG@K@ O@c_H_ @_T#)@!@@ k@@#_C_ g)@ @@@ }j@#_C_ @C_ITC ~# #c~T~T~ ;A?ACAx W@S[@O_@Kc@G# ~~ GAKAOA[ W@C[@?_@;c@73A @~ ~7A @#~ }@)2@@@~ ~#' @)2@@@#~ }#'@`{ ~Z#c~T~T#~ ##'N+@3~ ## 3@## ?@C@!;@A7@A!B`A!!@A! A!A!A!A!@# O@S@!K@AG@A!B`A!!@A! A!A!A!A!@# @@SW_@C _  @_)T#~ k@o@s@c~Tc ~c @@w{_L_ @_ T#c~ @@@\#~T{@ @~ ~#@ @c~ }@)2@@@~ ~#'%@)2@@@c~ }#'@_`cg{kc ~_ @@_N_ @_T# @9~ c~ @ ~ c#' c~ @~#' ~ @B}#' c~  ~  { c~ c{ ~ e @s@@ @ {B@#@'@s@@A @+@a5CA R_9 e @o@@ @ c{@#@'@o@@A @+@`5C@ ._9s@_O_P7#?@b#@;TG@?@C@ {9#xd&gxdFx$0T#_ @_2T~#c#~T@@ @@@@@ c~ }@@@@@#@' @@ @c~} ~ @@@c#}' @@ @~ c~ |@@@#' @@ @c~|}m ~ ~@@@c#|'w @@ @~~|L c~ }@@@#~'V @@ @c~}{+ @@ @@@#@'7 @@ @y @@ @c~#}' @@ @{ @@ @c~#}' @@ @| @@ @~#~' @@ @} @@ @c~#|' @@ @~ @@ @~#' @@ @ @@ @c~#}' @@ @g @@ @@@#@'s _@_d @C_iTC~#@? T@9A)!9"@[9@d@ } ~xӈӄEC@($@@GO @~ }C@B@ @@ `"$#({$,~Tw{@@O@@>K@)9@;9 } ~!,xF?@ )' @&FSw @~ }#'?@c@+S@/;@3 K@G@;@S@@@@@T;GbTFEITGxf@$Ț)TFxfz( Ț0@FEITGxf@$Ț@_@C_ @ @C_ TTC ~##~T~T#c~T~T#c~TD9 #T {XD~  #~  ~ # #~     {(  # {   { # {~ D#' #~ D#'~ ~ D#'q  #  { ## { # {~  #~    { # {~ D#') #~ D#'  # { ## {~ G ~ >   {j  {b~ D#' ~ D#'  # {@ # {8D? )*TD @ D~ #z!~&@'E@!'!@&@AC C@S ~ #zB7@B%BG@BCk #~ }7@B@#~ D#'o #~ D#'C@+D~ ##'3@+3@C@?@3I T?D~  D~ z D~ q D~ h D~ _ ?@?TFD?@TDdxb@$ŚB?iTbxbzB ŚB0B@eFD?@TDdxb@$Ś@[D~ 3 D~ * D~ ! D~  D~  D@ ~ #zD;@˄c c@d@CC#~ };@@#~ D#' #~ D#'C@+D~ ##'3@+_@C _IGE@C $[ @_ T# 2B` @` 8`@+@5)!@#)B@-` @ - Agd)@@[9@A+!$@d5C` @ $0 @Md)@@;9@B+BD@d5#! _ @ D# `|1d)@@;9@B+BD@d5#!@_ @ @aT_H_`oPG@ @K@@?_H_ 5 @_IT#@  0@ +@5)`)B`3_C_ @_) T#ф)@@?T&+@5 c ̷ Յ) @@? T@5 c  ա@@?8T@5A 8c@  ա@@?<T@5` <c` _B_@ ޷ @ܷڷ @h@?ATۓҡ aw᠚ҁϦA%ASᢛA+!+!' !fa! P!aA߷?8ATAҁ*ҁ;,!|A_A ҁz!mA(ҁaaنҡC!T:A"T?<ATa2!FAҁ a!*aa arW(! aAA2pAҡ?!`Aҡ8)!ҁw!AaAlaҁҿAn!ކҡA !ZO!Ⴭg`a!ha5a!/o!|| _ @_T#@5 GR@G@"h@_T_T B8B@_T B8B@_8T B8B@_<T B8B@"@~ @@@G@d@ @@@G@d@ @@@G@d @ @@@G@d@ {@@@G@d@ q@@@G@d@ g@@@G@d@ ]@@@G@d`@( T+?T73Cc5 R@#@3@G@7@/;@` 'G@`@+@A!/@_Td@;@ ,@@@KOS _H_րzN @A !$ S!W[_H_fy[ 8/ @_T#/@_T'@dh@T+@@{R;rkT+@8T@{R;rkT<T@{R;̠rkT!T@{R;rkT_0!T3@~A?Thf e0˥}A0?IThe eP˥}AP?The ep˥}Ap? The e ˥}A?iThe e˥}A?The e˥}A?)The e˥}A? The e˥}A?jTyfT U@@/@'@3@@?TB˄$A?Thd `d@``_D_րM @A ! !7;_D_րM @a !D!!7;_D_րM @a !D!!7;_D_ @cw @] @[ @Y @W @U @S @Q @O 4 @_ T#' C@ ';@ ?@_cT7@+Cc57@ P@#@;@+@'@dh GKO_F_ @_T#"M @ @h8``;@#_C_ @_T#M @ h``;@#_C_ʫ @_T#L @@h``;@#_C_ @_T#L @h``;@#_C_@h@T8 T<T{ _z _ ~ _| _y _ @_T#7@dd@?@dd``@T Ty?&g;@T+ ?@7@y@+@;@e`@e`T  7@`?@y@;@?CTC@%yC@;@TyT#' #@@?#T%@@ y'@&?@7@yT񠰄b T# Ŵ#@?@7@``G _F_/$*y( | @C_ TC~#~T@B@;TC#@;T@AT@3@_cT@Cc5@ ]O@#@@/ |k@3@/@_@C_8AT@p3@_cT@Cc5@ 2O@#@@/ ~@@3@/@_@C_<AT@3@_cT@Cc5@ O@#@@/ {@3@/@_@C_@3@_cT@Cc5@ N@#@@/ z@3@/@_@C_$3 @C_TC~#@d@##~T#9d@T |? T# y |?( T# yx G #@uC9mG9eK9]O9US9MW9E[9}_9@# |y[@`@a@! '@! +@! / @! 3@! 7@! ;h@?T@! ?@ C#@;T_@C_@*` {yy w @_iT~#CC~T @CC@ @@CQCC#@;TCC#@;T_@_] @_T ~#c# ~TWAC@D@E@F @G@H@I@J@cA[A_Ac)Jk yѿT|Q  iCDEF GHIJ_@ _֎y` cy @JT}ӿ TIT T  T TI T THTUcynp-К-њ0N<yp@.њ}.Ӛq0Pyq@ypy @T{uXc:{uX ~z,ښ^~,ޚ~,ޚ~yʞY B*T ,֚W,ך7,ך 7'J)5@@T         , @_T# 4 /@3@[@@7;_E_f @_T# /@3@o[@@7;_E_J @_I T#;@`T7@,7@"@9b5#@986_qaT"@9"86 #@ 0>@7@B ;@ >'+'@ >@7@B ;@ T  @ >@C! GK_F_CGK_F_ֆ'hd8 lTz @ӡ !0@0 (CGK_F_ڧ @_ T#C@`T?@,?@"@9b5#@986_qaT"@9"86 '+'@ =@?@B C@ >/3/@ =@?@B C@b G@Q@@@@c|@?`T  #@ =@! OS_G_ _G_OS_G_OS_G_l @_iT#K@`TG@,G@"@9b5#@986_qaT"@9"86 /3/@ P=@G@B K@ >7;7@ ==@G@B K@VH @+K@?TG@C@986@5 hK@K@G@/G@ @@ @ O@@#@'@+@@A +@`5C@ ί_9S _H_SW[_H_Dhc8$h#8c?lT +@C@D@E @ @#@'@+@@A +@`5C@ _9)@ 2G +@@?T@9!@9S _H_H @_)T#'@#@_T+_B_CC}cc@? iT@hb8$Ú0@+_B_  @_T#3@A!C!}! "_ T+@@5 J'@@9@!$š_!0@a9+@3@@@+@'@7;/@?_D_hg8  Ț0gh&8hf8%š_1gh&8? T7;?_D_<@ @T@@9_c?TDxcxc@T9_@9_ @_T#+3@ @@3@ +@"Y/@@@C@T/?@x`T'   @ Y@@'@KO_G_ @_iT#K@A!/ J@3G@K@ O@@@@#@@D@T҅|@E/@_ T3@ _ T /@_ T3@_ T@!3@S/@W[_c_H_ $7;7@ ;@ [! _c_H_3@x%K@T+G@ O@8@@@#@@+@/@#T3@S/@W[_c_H_(TSW[_c_H_{h@eb@_\ A` @_iT#G@K@S@ TT TEhd8qT@?7 BB BBY'@@@@A9+@/@+@9';_%TBT 8 A |5@_@! #_@_..BTTB _H,T_ T_ T_ a Ti`8_T?aT_lT@c `0!#ia8`@`4 \@A @5@ #}b˃˄@$ (A $5@ A!.c 4@@@@@_T *5@@  @A @@@ 4 @@@@ A_ T_0T_HT _@@@@  4@@@*@ Ac @9@ c@R@@ Հ? @A !B 4@@@*@@ @#@ @@@ 4@@ 6@ A_XT_L T_PT_XT @@@@  u4@@@*@ Ax .R@@ e4@@@*h @@@@  Q4@@@*@ AT_\T_`@T_xTK y@@ @@ 44@@@*@ A7 )@#@ @@@B 3@@@@ A O@#@ @@@B w3@@@@ A҇ d)Є-@9d)Є-*@5b)B-Ab)B- A@\@9"@Cy!{?ka ABB B-V@ A@#_@_#_@_#_@_BB BBd'@@@+@@/@A9+@9X9h X9B?@Tk@ _AT CJ@_ TDj)J,K@J@A aT_9@ ]@9 @@@@@_B9A@@@A@BATa)!,"@!@_ T@ ?@9@ A H3@@! #_@_BB B@9U@@A#_@_B B'@@@@A9/@+@+@9#_@_BB B@;TYCA9B@A w{wA 2@@! #_@_ 6 A 2@@! #_@_S[9OW[ A@ @c@9@9@9ÒLTW@O@P T0TH@TPT XTl`TxaT O@ CO@W@O@\T`aTC}X9k%ҤX9e C&@  X9 C$@@X9 C@@{ayT!yTg[B9[B9gx[@S@LuTBtTB_룵T(TBB B@>@@@ @9KB[@!B$@@@@@@@@@l/@;R;rkHT{ RrkAT1-TS@ G#@@@c@`@#_@_ֻ%R[٤rk! T/!*T@\!TS@ G@@@@#@@*@`5@@#_@_S@ @@@@#@@*@`5@@#_@_;R;rk!!T= TS@ @@@@#@@*@`5y@#_@_֛֞Rrk(T;ߞRrk!T2!T@@9@@A#_@_֛֞Rrk!TTS@ @@@@B@[9*@d5C<@#_@_шR r+!T4!TB@ȔT#cW@O@[B99S@ ˢb";9*@5@;T   U@@A#_@_HR;r+! Tƀ; TS@aha8TaTlT@ ?0цh`8!!@Ӂ4 \O@SOA 0@@B }!E@ (W[WA 0@@B  *@`5@#_@_k B@))T\ T`Td9TҸ@LT0 THTL TS@ [@@@@S@ @@@@xS@ @9@ S@KN@@f `; @A !BUX,TPTX!TS@ n@@@@E S@ N@@;lTx`Tc /0 @!! 0 c @?5@@/3/A 70@B S@ h@@@@   S@M@@ BB B1V@ A@#_@_w@$@@ ? @@L@? @ ! T A@ S@^Z@@@BB BMR@S@ k@0@ `)-@9@ a)!- *!!@5a)!-#b)B- A \@9"@Dy!{?k BB BC .@@#'? -@@+/ A@ V.@!!*37[@.. @!!;?  >3@@gkgA 6.@[@! #_@_c A`@@ :` c @3@@osoA .@[@! #_@_#_@_s@sw@`@@@? @s@?jTw@(@@ @?Cc@;TC@;TB ,87 ;7A -@@! #_@_w@`@@ ? @lTw@(@@ ?Cc@;TBBb)B,C@D@`T @9b)B,@ B@HTBB BDBB"Bb@@@@A -@ `)-@9@@a)!- *!!@5a)!-#b)B-4@#A \@9"@Dy!{?k @@ @O@Ao@ ogw@`@@? @o@?jTw@(@@ @?c@;To@SBWBc)c,d@e@?`T @9c)c,o@c)c,ҡg@@ ABB BC@@@[B_B c c-~$@@ |c@;T@@ @@S@k@g@@;T;@C@?@?@@#_@_@@ A#_@_ߟݟ۟ҟ؟͟  @_T#CA9/@   '@"@B_(T@@#@ P@9_C_@9_C_9_C_v @_T#/@@@@L@? @X T/@@@!|@ ? @@B B: oI@@37_E_/@@@!|@ ? @@" B WI@@37_E_ 37_E_* @_)T~#@ a)!-!@9@d)-*!$@5@c)c-b b)B-@ܞ*!@W[W@Cd\@9@y{k [@ *!@ Ն@XATH7d86@@_c_@S a!7S@a!&! @A*@`5C@ _@_ A@S@O@K@@ B#c@;TS@O@ K@@@@#@;T;@?@C@?@c@?T@B@ _@__@_֞ kB @_I/T# G@K@?M,T'7  c9 @7@'@ '@_#+T _*TBB7@;3? !T@ қ.;T@c9? T ;m;T@g9W@ K6 @W@3@;@?,aT@ۭ[.-T@y[RkT(@9qT}_@? AT@yRkAT@9ߌqT_@? ? aT;-RkT@9qT[@?$T@N;ͭ.[T @9qT`[@?!T@ۭRrkT@y[.RkT@9qT@[@m?T@R rkT~[@b? ? 'T?  }b @9'@?3@;@7@`T? ` 9 ~P @9'@? 3@;@7@ T@y{Rk!T@9qT@9/?,?,?,aT@; ;m;AT@y;RkT(@9qT@k9W@ 5 @W@3@;@ ????!T@NR;ͮrkAT@y;RkT@9qT@o9W@ x5 @W@3@;@?$?$?$?$T@;T @9qT@9@?T !!~! @@A+ I5 @W+@@3@;@? T !!}! @z7@@A/ +5 @S/@@3@;@_H_}"~    @_ T#@),@@@_!T#@  @9@@)@,@@_!T#@  @9@@)+@@_!T#@  @9@@)-@@_!T#@  @9@@)+@@_!T#@  @9 @@)@+@@_T#@  @9@@L@#@ ? @TT#T#9+c9@g9_C_#9@+c9@g9_C_\T``TdT#9+c9g9_C_#9|+@c9g9_C_#9`+c9@g9_C_@$@#@ ? @@L@? @ T@\@#@?@ @ T ` < @@9@#9|+@c9g9_C_#9 +@c9g9_C_#9~+c9@g9_C_#9+c9@g9_C_#9@+c9@g9_C_#9+c9@g9_C_#9@+c9@g9_C_#9+c9@g9_C_@#9+c9g9_C_ݒ@ _ @_ T#@?T@9@ 9_B_ۛ  @_ @_ T##@/@+@@_T a#@@T_C_ *  s  @_ @_ T##@+@'@@_T 5#@@T_C_ *  G h @_T#+@T'@ 3_D_@@ @$@@?@ @@!+@_T9 @_T#;@_T7@ _F_+@@@@G@#T#+' @K@"gC@ ?@@'@?#@ @@!;@_ T'  @_T#+@T'@ 3_D_@@ @$@@?@ @@!+@_Tő @_T# [@ 5@;[@?TW@L '@!@?;@C[@GKc Um[@ Tc@g@k@;@_J_ք`@@?T) 鰉j J  T'+7 .[@g@c@k@7@+@@'@T3@@3`@#a@/@? @+!!55@;@A @+@$$*@f5##@ @!@/@ ?@[@? T;@.m @_T#A @B@/@TC d@e@c@3@T@ @@@ )@য়9_E_  @_)T#@@@!@ ?@ @ @@!@ ? @@ #_C_ߐ @_T#@@@! @#@ '@+@ ?@@@!@ ? @'@?T@C @B@c @+@B#@ `?_C_ܙ @@!HT!HT _ @_IT#@@!BH_T!BH_T@@Eh$8jT%˥ѥ}ӿ@0(ŚT_B_ f @_-T#@` @a@9b@#9k  #`T@@_T%7O_!T  @ 4@#O@7@@@@   @+s4@#O@7@+@@_T3/K }ϙ@#/@K@3@osk@9#9o@T#C9@#9@)@ 1 o@?!!5}; ;4@[k@o@s@ ;@Wh@?@ T;@![@Җa@9b@b ?  5 }; 4@[@"@#@! @ ;@+h@?@  T;@![@?mT@h`8 86'G 80 @W(!#@(!!@*!"@b5 fG@'@ %@-W@ *@`5# "`S %@! /_O_ %@!-_O_(@@_O_֠ >_c_@ Y%@! _O_;@vehd8%eh$8kT#Ca@h`887 8c0 @S(! #@(!!@*!"@b5 C@#@ P%@-S@ *@`5# "` >%@! /_O_ 1%@!-_O_;@&  @C_T#[@z{#C9_k _@?|+TS@CW@cTO@_9 5O@ p3@@#@#_@_A9S@@h"8 ҄S@"W@cTO@_9 5O@ O3@@#@!_A9S@h!8Cc@T@AT 5 33@@#@c@C@h"8kos_I_֥HT@"T/!!5 3@@#@c@C@/@yh"8 @!H?Th 8T%}ӿ@0E(ŚbT7?C!!5 2@@#@7@?@c@C@!GB?TAh#8!AB _@B0(šF@By?BfT3;[9 5 2@@#@_@3@[A9;@m @_ց @_T#+@CCCcCd}ӄ E ˄cēbB BC 3@?T}/@@9 #@? 7@ccc@B@T @#@?T_C_*   ȍ @_)T#@? T@C@c?)T@@ `@GcT?TDx`d@#_B_քGT@Ҫ  @_T#[@?iTW@C@c?T@@ `@ GTKc@k@h&8c @0(ǚ@yT7C95 1@@#@K@[@W@7@C@A9?TCx`c@ ;G _J_cGTh&8  @1h(Ț @y T3{9?5 1@@#@ ;@[@W@G@?@3@{A9@ o @_ T#+@'@BMT#hb8dф@ӟdq)Tdф@ӟdqTdф@ӟ$q)Tdф@ӟqTdф@ӟq)TqTqTq`Tq TqT (@@ "@! 7;_D_ "@!1/3_D_ @_)T#OC@G3i$8 T@d˥҅F|EFCB˟T ;@?@_cT7@+c57@ 1@#@;@+@O@dh GKO_F_~~ c @_T#/@3@ 7@9@xjT@ ෟ9_E_E @_)T#5 @0@ @?@C@G@W+@/@@#@'@+@ SW_G_ F"@!-KO _G_  @_)T#5 G0@ ?@C@G@+@/@@#@'@+@ SW_G_ "@!-KO _G_Ӌ @_T#S@W@ [@9V@x?bTK@C҄|A!!%C|D C!ˤO@cTG@3/5G@ ;0@@#@#3@/@K@!h"8A 95@?T K@C҄|A!!@%C|E C!ˤO@cTG@3/5G@ 0@@#@#3@/@K@!h"8A 9 S@W@[@j@#@'@_cg _H_ 47{;7@ C!@ g! ko_H_/^ @_IT#K@O@ S@9@T (/3/@ !@ _! cg_G_?@C@ G@W@@@ K@O@S@@#@'@W[_ _G_ @_ =T#@@ @@9i @@@C҄|@Cˆ|EC˥@cT@cgk5@ O/@@#@#c@҄g@k@@h"8@9 `|ABBCBF|DFCFB!˿bT;gk!5 !/@@#@k@;@g@o/Gh#8!A9@@ @@@@S /@d҅|@C˧|FCG@cTo@Kgk5o@ .@@#@k@K@S@/@҅g@i#8`9 Հ|A#cCc˧|CgCgc!T?gk!5 .@@#@k@S@?@҅g@i$8!a9 |BccCcd|EdC˄dcBbT3gkB5 .@@#@3@k@g@s+Ci 8B9@@ @@!"|@BT+@C@_cTs@c5s@ X.@@#@+@C i 8_O_[gk T+@C@cTs@5s@ 5.@@#@[@!g@k@+@gi$8$+@C@cTs@5s@ .@@#@[@!g@k@+@i$8+@C@s@DEb@!|@!E!ˢ҃d|A$Cˇ|CC˄$bTWOgk_5 -@@#@W@O@҃k@_@g@i%89~ Ad|@C˃|CcCcc˄bT7gk5 -@@#@k@7@g@ci"8@9_O_ @C _멕TC ~#oAsA wAMG@A)!,"@!@@_!T @9E@@A)!-"@!@_!T @9@;@@A)!+"@!@_!T @94@@A)!@,"@!@_!T @9`+@@A)!@+"@!@_T @9& wA@? T?\ T?`! TA?HT?L`T?XaToAsA F@@oAsA F@@ @!1 _@C _oAsA E@@ j@@@@_@C _oAsA E@@ҹ?d!ToAsA F@C@{oAsA F@@$@? @@L@? @ @ ToAsA wA9@TS!!* b,@ґoAsA wA6@@@ c@;T+@3@/@7@_@C _@!- _@C _oAsA wA'*@@@ @!- _@C _?@T?T? (T?TsA@sA 9 ?TsA y?TsA sA @ @!. _@C _֠ \ @@ @ ! _@C _oAsA )@9(@@ _@C _(@@ _@C _oAsA wA@96@@B?T @@@@_@C _oAsA wA@96@@B6?aT@@@_ T#@TjT#@ T > @ 5@!   S@B/_@C _oAsA wA@96@@B.?!T@@@ @, t@@ _@C _oAsA wA@9m6@@bB?T@@@A`Tws r@9@s@w@ @@@@_@C _s@w@ @v@@@@_@C _@!- _@C _ 6 6 6 6S@?TWoAsA wA4@@@ c@;T(W@|/@+@3@3@7@@h!*BH@h5#! )*B _@C _cL9 t@!`0 _@C _ e@! / _@C __@bC@{@_`@`? @_@?jTC@(@{@ @? c@;T  @;T A ,8 @ @ ! _@C _C@`@{@ ? @OC@(@{@ ? c@;TCAGA#)c,d@c@T @9oAsA wAV2@@@o p7@ T@O@Bb G_TK* )@ҞoAsA wA.2@@@oC@c(@{@G@ `? c@;TKAOA @ -~@@ #c@;T@@ o@#@;T&+@3@/@7@_@C _@!- _@C _@@ o@'@c@@g '@+@g@c@@ c@Tg@b#@ U@!- _@C _G@!- _@C _;K@?j T[oAsA wAG@%k1@@@oC@d(@{@k@ ? c@;TKAOA A !-~@@ o#c@;T@@ o@#@;T[@|/@+@3@3@7@@h!*BH@h5#! *BD _@C _ @! / _@C _B_Thb8dф@ӟ$q)TqT &@ @!   @B1_@C _B_jThb8qiT @ d@!   [@B1_@C _CN @C_rTC~#@C @S?PT@@ B@@h@? @`=@S@?\`T @@ 5@S@@"gH9<@!-_@C_G9 @ !?( T@@ \B@@ OE@@@  0@@s@o@S@ =@@ @@9Z3@k@gs@o@ S@@9M3@@k@g@ 8@9`@@!-_@C_G9@@@ @9&3@k@c@@ @A@@ D@@@ @9 3@@k@c@ @9`@@!-_@C_@@ A@!)!,"@!@@_T L@9`@@ @A@@ b@@9c@9@9 A\T Hw`{w@ ?@! _@C_C9ALT @ %@! _@C_LTA@@ @@@k@O\ T_`@T@@ @@9}2@@bB?=T@@@ @9A9}A9C@@@ @AA@@A!@ :` #@@@@ @! _@C_@@ @@932@@a! AT@;T@;T@@@/# @[@@@#E9 }9#@'@+@ @-[@ *BD@d5#$@;@@@ @-[@ *@`5#"'@;_@C_ u@!-_@C_@@ @W.@@@ c@;T+@3@/@7@_@C_ + @@_@C_ `6!cH9"@aT  )@@ @! _@C_CDTb@c9/ # @_@@ @c@;T/@+@3@3@7@_@ *@f5a @@? @A!G9b@G9_k@BG9c!@nKG_@ }C@A99#@'@+@ @-_@ *BD@d5#$@W/" @W!@; *BC@5_@_@C`@a@@?A@ @W@ }G@K@@9i#@'@+@ @-W@ *@`5#"@@;_@C_C@_@ }A99>#@'@+@ W@-_@ *@`5#"@@;_@C__@C_ `6"_* Thb8qjTB  %m#@k@O@qTdф@ӟdqTdф@ӟdq Tdф@ӟ$qTdф@ӟq Tdф@ӟqTc@q TqTqTq`T@@ @_>@@ fc@9`~@! @ ~ !H!_@C_C@A9g @_T#@` !)!-!@9@$)-*!!@5@")B-A")B-@Z@W[W@@\@9"@Cy!{?ka [@KG;@@ c@;TG@K@ ;@@;T3@7@+@/@3@_O_?O@@? @C!5$@S?@! @O@ C@ ?S@C@_O_#~ @_)"T~#р@! @@ @*@5!)!#")B׈  . {@@OSO@A!&" #)c+b*@5")B+C")B+*  @!6/3/@A!&" #)c@,b*@5$)Є`,")B`,d#@% &)+@5$)Є+")B+d@9?%' C?@% &),@5")B ,C")B ,e _` @@@A!&" #)c-b*@5")B -C")B -D`  @@'+'@A!&" #)c,b*@5")B,C")B, y@!!7;7@A!&" #)c,b*@5")B,C")B,W @a!GKG@A!&! ")B@+A*@5 )`+")B`+_@_  @_T#с@a@B@9@?T@9_B_ F ~"@aT#$ @_T#с@@@_A_( ~"@c!T#$ @_T#с@A@bA@C@B @@`kT CD}ӄ? IT`hb8$Ě0@_B_ ~"@T#$ @_T#с@A/@`@@@ @ @@@37;_E_ t~"@cT#$ @_IT#с@@ @@@_T@9_A_cTxcExc@T@ B~"@cT#$ @_ T#с@'@@@@ @@+/_D_s ~"@#T#$ @_T#с@A/@`@@ B4 1@@37_E_G }"@cT#$ @_T#с@A/@`@@ B 0@@37_E_ }"@cT#$ @_IT#с@'@"C @D@B@eeEC} g Ɠc cC /@?T}+@`9 џ뀰3@!!!@a_ T B@@T_D_*  TҎ  r}"@#T#$ @_ T#с@@@_A_֫  T}"@cT#$ @_T#с@'@@/@_"@+@ T @@_T_D_*  u  }"@#AT#$ @_T#с@@@_A_X  }"@c!T#$ @_iT#@#@ c@9` @ #@ @@9#9_C_| @_ T#с@@B@ @!BH_T!BH_T@@Eh$8jT%˥ѥ}ӿ@0(ŚT_B_  |"@T#$ @_IT#с@@ @@!HT!HT_A_  v|"@cT#$ @_IT#с@'@ @@@ +@/@3@!_D_֥  N|"@#T#$ @_T#с@@@@@ @#_C_ց  *|"@AT#$ @_IT#с@'@ @@@ +@/@3@}_D_Y  |"@#T#$ @_T#с@@@@@ #@#_C_5  {"@AT#$ @_IT#с@'@ @@@ +@/@3@_D_  {"@#T#$ @_T#с@@@@@ @#_C_  {"@AT#$ @_T#с@'@@/@_"@+@ T ,@@_T_D_*  >  ^{"@#AT#$ @_T#с@@@_A_֘  A{"@c!T#$ @_ T#@#@ @9#9_C_${ @_iT#@@#@C@T@C@D@@T @9 @ @#@C @B@@?`T @9#9_C_z @_T#'@+@"'@+@_TC|hc#hc%@@aT @9@?@_ෟc9_D_z#@9{C9_#@9yC9_ց @_ T#с@@@9{9_A_  z"@cT#$ @_ T#с@@@9y9_A_  z"@cT#$ @_)T#'@@_D_!<+@C98_D_[z @_dT#@@@a@9d@[#9k  #`T@@_T%W?_!T @ x@#W@?@@@[@  @3g@#W@?@3@[@_T;7S }Ã[@#7@S@;@osk@9#9o@T#C9@#9 )@  o@G!5}C /@ck@o@s@ C@KR@G@ HTTC@!c@ҝa@9d@ 7979@@-@A0 @!?jT  @`` <`@ *BD@d5#$ t*B@9 @@! T  @` X`@ *@`5#4" T1 @$@@TGC5 @#@@G@C@7A9h!8 *!!@a5@1G 5"}C @c[@"@#@! @ C@Q@G@  TC@c@?T/Ohd886?9?9@@*Єo@ @T O @`` !@+@ T_@"@#@B@'@cG@ @?@/ C@ /@@a@9a@]/@{K@O@_K_{S@_K_'@co 0f @_) T#?@@+@/#@`? @@O@"@b"@9b@_TS@C@cC@9c@T9_G_3 @S@3@ @9_G_?@+@ /@C@G@K@O@S@# #A99_G_e @C_I+TC~#@@ @@@1@g@"@@@? @@k!0@ @@@! @@ ?@ 9{@ k@K@Wg@ L@_ k@M W@@ ?@[ k@@ .@ @t@@ 7c_@@GB5#}C  @s_@"@#@! @ C@=@G@ TG[@@?B5"};  @o[@"@#@! @ ;@=C@G@!s@A@?@_ T7@c @@@ @c@ ;@Ao@A#'`?+@/@m_@@GB5#}C [ @s_@"@#@! @ C@v=@G@ T@"@@C@s@ @?@O@K[@C@G5d}C - @s[@"@#@! @ C@H=@G@  T@" @@d@c @@ C@cs@@?@#@@B @@O@ K@@?@@@b@9b@"@b!@9a@c9_@C_S k@OS@@ n @c9_@C_C@mC@m;@mC@m vd @C_ T#` @+a! @';_@/c@3g@7c |c9@93@`@A! +@@9`@ @ '@@9@@`?@C9_I_O@S@ W@[@+@'@@9C9_I_d @_ T#@@ Xm@'_B_d @_T#` @@ @*@5(!@#(B@l  @ `@ (`(!& *@5(&(B&l_C_c @_IT#@@#@C@@E@AT @9@@#@C@T @A @?#9_C_c @_iT#с@!/@@@! @3@ 7@;@?@ ?@@CG_E_yc"@cT#$ @_T#с@'@@@!@+@ /@ ?@@37_D_Uc"@#!T#$ @_T#с@a@@@!@#@ '@ ?@9C9_C_3c"@aT#$ @_)T#с@@@@!@ ? @_B_c"@T#$ @_)T#с@'@@@!@+@ /@3@ ?@@7;_D_b"@#T#$ @_T#с@a/@@@! @3@ 7@;@?@C@ ?@#@GK_E_b"@caT#$ @_IT#с@/@3@ @?@ C@G@K@?@@OS_E_b"@cT#$ @_T#с@'@+@@7@ ;@?@@?C_D_rb"@#AT#$ @_T#с@A@#@@/@ 3@?@99_C_Pb"@T#$ @_ T#с@@@@? @'_B_0b"@T#$ @_ T#с@'@+@@7@ ;@?@?@@CG_D_b"@#T#$ @_T#с@A/@3@ @?@ C@G@K@O@?@#@SW_E_a"@cT#$ @_T#@@#@C@@E@?T @9@@#@C@AT @C @T@A@?#9_C_a @_iT#с@!/@@@! @3@ 7@;@?@ ?@@CG_E_a"@cT#$ @_T#с@'@@@!@+@ /@ ?@@37_D_aa"@#!T#$ @_T#с@a@@@!@#@ '@ ?@9C9_C_?a"@aT#$ @_)T#с@@@@!@ ? @_B_a"@T#$ @_)T#с@'@@@!@+@ /@3@ ?@@7;_D_`"@#T#$ @_T#с@a/@@@! @3@ 7@;@?@C@ ?@#@GK_E_`"@caT#$ @_IT#с@/@3@ @C@ G@K@O@?@@SW_E_`"@cT#$ @_T#с@'@+@@;@ ?@?@@CG_D_~`"@#AT#$ @_T#с@A@#@@3@ 7@?@99_C_\`"@T#$ @_ T#с@@@@? @+_B_<`"@T#$ @_ T#с@'@+@@;@ ?@C@?@@GK_D_`"@#T#$ @_T#с@A/@3@ @C@ G@K@O@S@?@#@W[_E__"@cT#$ @_T#р*@5@ (! (BCc h_A__@a!)aT @T@@B&?aT@TT@c9_c9_ @_iT#('@@ 7@;@?@PK#@'@@CGK_F__ @_T#р*@5@` (! (BCc` ?h_A_f_ @_T#'@/@+@'@/@+@@ T롰#TTe ~@9_D_@9_D_fh\h 1_ @_)T#N @~`@ ``(!' *@5( '(B 'g_C__ @_T# h# _2_B_^ @_)(T~#{?T?9@9*!"@9@[|@dk @{_kaTd;9@ @A!{w@?9@*!@;A9(cz@@@0ATf@һ̮[.!Tc@ۍRrk`T@@@@ @?@9*!@;A9@@6?9w@_@_!@9[|@dk{_kaTd3@3@;A9A!>so79?9@@@ #j@@@7A96~79?9o@7A96?9w@l_@_`5;? @@@ cc?@T/7T@@*T`)> @+!5t U@~TkCtGK7@O/@Sgk`*@!5+@C@;T `)+@ g`*cc+@@#d*@d5 "`f@ @! @@ @@ ?@@@7A96~79?9o@7A96?9w@_@__@_] @_T#7@ @;@?@ C@G@?@@@@(@:#'+@@ ?c@9#@#@+@'@KOS_F_r] @_IT#g@ T!5!A!!C/ @CA! @7#9K g@"C" _}b3 o @ !ka!os_K_ _@c@ C@/@H#@'@#@/@_iT?;@3@e Ě0C@@99#T@ !ǚ'19@9_T@9y9@h`8!@h 8 7@@@ @ 5@#@'@7@@A `*@a5CA e_9(@#  K@S@O@b@g@"7@ Ec@9 7@@@B!xb!za!g@_T7@g@kos_K_֥DT(3@@ k?@o;@s_K_J_ jT ij8+˚ ,TT%  N@@@OSK#97@ #g@(3e r\ @_T#_@@a@9a@?T@ @;@@ @ @@@@;@@A @ Ka*!$@d5Ce_9_@ K;@@@B!xb!za!A/5  @C3 i/@A!C } 7@Gc _J_G@ W@[@ 3@G#@'@#@3@_TC?@7@ ?c0G@@9cѣ9 ;@e@f@g @ 4@#@'@;@@A `*@5CK@d?9_@ @;@cC@g?@k_J_cgk_J_d*@`  [= @_T#@ @#@@ @ É!/!DX@@@#@@A `*@a5CA Xd_9@5((BLd_E_s[ @_T##@@@C@@E@T @9@@#@C@ @E @?T D@9@ #@C kAT$@C$@kT(A(?k#9_C_8[ @_T#с@/@@@ 3@7@;@{@@#@?CG_E_i ["@cAT#$ @_T#g@k@ o@@@_T(B@(C@B@{@_T((@@((@@ "@!@!BxaBzbA"B!B!"CC,w@T+75 @+@?T9w@$˅7@ HTT" T;3/ g@k@ w@7@ A 3@b;@B@@@F/@h$8s@?T Hd;@c9S +@53@#@'@SW[c99Co@ c<@;@ +@@@@_L__L_('@@_L__L_scpcec@Sc 8Z/ @_ T#O@@@?T(!@("@!@{@?T(c(b@a@(c(b@a@G@K@ S@W@[@/@@3@7@'@+@#@3@gT_cg _H_(@'@@ gko_H_ gko_H_ gko_H_c Y @_T#O@@@_T(B@(C@B@{@_T((@@((@@  "@!@!BxaBzbA"B!B!"Cc@B_,T;G@K@ S@W@[@]@/@3@7@'@#@+@3@;@ Tc@B*BB˟T!TA_@$(@'@@ko_H_ko_H_(@'@@ko_H_ko_H_ֆhe8he8h%8 T _H_֠*@ db 1Yd @C_)T#W@@"@!@!BxaBzbA"B!B!!C?,+ T/9;[@_@c@1@#@'@;?C9O@S@ W@@@@@35/@ 4@3@ /@$@@@? T@9?i T@9@&g sw{_I_(@'@@g sw{_I_֨ he8))}_ *   kJ f )  T cc|_*҄@ӄф|_*cc'$҄˄|_@|@c@gkos w_I_@aҢa XZ @_ T#C@G@ 7@;@?@2D#@'@#@;@7@?@G@C@KO_F_mT+KO_F_+@7@h`8[ʈh 8?@G@C@;@h`8h5T @C#@'@#@BKO_F_ca 0X @_I"T#s@{@F PTb(B0A@B@TAh`8{@_`T 8 @ !+bB';(! !@bB  A @@@@9;@  @ !DbBo@D@@@xdzҦ,G T;/3GC5C7 @7@? T@9C@/@('@@_L__L_h"8B%˦_T_ Tl;@' T TKB 3@ ˤG@`T? 3aK@7@C@;@?@ B {@cBw@T aK@7@c9S  0@#@'@SW[c9g@k@ o@c@@@@_L_K@ 7@y@@@_L_X`M`;`@9`<`*@   W @C_i)T#s@{@F P&Tb(B0A@B@%TAh`8{@_`T  @ !+bB'7(! !@bB  )@@@@97@  @ !DbBBo@C@ f@c@cxczҦ,gcGc l T@ T73/;?9[ @@K/@#@'@[_c9#9K #o@ R @C!5;@"C+ @C@ +@@@@?T@9? T@9cc|_*@҄@ӄф|_*c+@7@;@_ T (T  E {@?`T)w@ ('@@_M_('@@_M__M_Lhj8.ij8 k  _+T e@ӥѥ|_*3@˟T BB ˂B/@`T?@Jhg8hg8j   +T @BB|_*B?IThc8!!|_*A Dhb8%@ӥѥ|_*!_T?@T('@@_M__M_^ __^@^^^*@   U @_ T#{@@@ ? @k@"B"Bc@TBs@ lTKG5@C3 @3@K@Cs@G@ hTH T#TSC7?;{@@@} ?{@@@_@ c@g@ ?{@@@o@ s@w@ ?{@@@3@;@d˄7@S@  ?{@@@O@+@/@ ?C@7@_ T@S@h!8 TK@G@! ! !o@?T s@^7@S@ 3@{@@O@+@/@#wS@@93@C}k@cˣ@$Ú0#9?@G@ Tah#8_K_- @| !a!_K_ @| !a!_K_]7 ^]^]] T  @_&T#w@@{@ ? @s@?aTs@o@ddDg@ T[@T TCѿ "Tc@hh8?q T*k@_ T_ TH K , }ӣ˃@%Ú1@9#@m5G/C3K_9?7; w@{@#3@?iTc@d@9_A9d9;@@  k@@9@@G@/@ˀ3@c@G@/@ˠk@_#T@('@@_J_('@@_J_('@@_J_('@@_J_('@@_J_F @ !a!_J_Tghf84('@@_J_ Tfh`8qa T( TG;w@@{@} ?w@@{@W@ [@_@ ?w@@{@k@;@c?@c cG@c@ C@  ?w@@{@?@@7@TK@ k@9@('@@_J__J_('@@_J_\\\ұ\ \ \\ S @_ T#o@@"@!@!BxaBzbAGs@}b @@w@{@ @G@B@@@#'7@;@+@/@3@7@E c9S ,@#@'@SW[c9g@k@ o@c @@@@Ko@!@"@!@!BxaBzbAҠ5  @CC j@K@ C@Z@@@_L__L__L_Rs@@ _ց @_T#s@`@Bc@`@GTCLTc(c0a@c@_ Tchb8"_@d@@@xdzˤEѿLB Te(Х0@@_B T@Chb8C!5 @KW@[@ C@b>#@'@#@_J_W@[@ _@G@g@k@o@K@#C@'+/@;@3@7@?@w{_J_[*@  I[*@  @ aRl @_iT#@@"@!@!BxaBzbA"B!B!@_ aT#9k @@*@#@'@kos#99[ @ #@@@@@Bx`Bzb@BB#@$@cxdczcBBC TO;C5 I@O@ C@9@S@G@K@cc@?@` @@@@ @S@G@K@;@B?@#'+/@3@_O_('@@_O_('@@_O_QX@@@@!x`!zA !AC _ց @_IT##@a! T@@'@C@ n@@@'@!@?C9_C_C9_C_vQ@9a! _ @_ T#+@! T'@9/@;9bB @9@'@@/@C@ 2@9_D_'@C@/@@T9_D_9_D_@@/@'@TA@E @Tx`@ @"Tx` @@9_D_@9_D_.Z-Z Q @_ T#_@A!Tc@@K@O@ G@S@W@[@#'@3@+@/@7@gkosw_H__@ @c@? @K@O@ G@S@W@[@#@/@'@+@3@gkosw_H_P @_iT#o@o@@;Rar+To@!!Ts@@_ @@s@C@D@B @ [@_@W@c@g@k@#'+/p 3@?@7@;@C@w{_J_[R["r+ To@!!a Ts@@TG!5 @K[@_@ G@#<#@'@#@[@_@ W@c@g@k@K@G@#'+@/@+@_J_K@wG@{_J__J_[@_@ W@c@g@k@@+@#@'@/@w{_J_@ @ !A!_J_[@_@ W@c@g@k@@+@#@'@/@w{_J_O( @_i#T~#@@@?T(!@("@!@{@?T(c(b@a@(c(b@a@ 9(!"@_ T;D@E@T+7'T @ @(!;@7@'@@@@  @(!;@7@'@@@ T3# }5Y@(!;@@3@#@B@99 @K@/_@_ ?@+@@(!K@/@T+@xe?#@ -@Tn @@a !A!_@_@ @c9s9c @@ @C@"@ @ @G@/; @aa !;A!_@_+@b/@G@_ T+ xbc9S (cd@c @cC@ (@c @ @a !TA!_@__@_N @_IBT~#@@ C  @!!@?Tw@_ T@ @c `0c?p @n8a?@ `j `l `@b aT @@@@@- @! !A!_@_ @ !%A!_@_@@@kTeѦ҆|Eх҆/ g @c(!"@_ To @@F@G@lT'gCAT @ l@c@(!o@C@g@@@  #Z@c@(!o@C@g@#@hT7+_ }Wc@(!o@7@_@+@ D*@f5 VB@99D*#9"@#_` TsE@F@T /kGT @ @(!s@#D*k@G@@@c@  '@(!s@#D*k@G@'@c@`T/3[ }QWc@(!s@#D*/@[@3@B@9#99җ@@BxfBzB@AT  @@*@5w@#w@"@8V @#9# w@@@ #@ (!D*@@(;@%@@@@҆ThS; Ț@S@ @@@@G*@h5x!Ub@c@cBxcBzB_@_֥-TOxe{MW@#xb (@@  # W@c@(!#D*@Tg@w@  @*@5@ c@ "`@Uc@U"w@_@_K@(@@@@@O@҆{@jTKxh @`(!D*@@U% L @_ T#Ѡ& @3+@/@C@- T#/+K@@O@S@ W@[@ ?K@@O@3@ ~ ?K@@O@/@ +@ ?@/@'@+K@d@O@?'@?@/@C@#@3@ @9 9q!T@99qT@99qT@99_G_&hd8Ghe8&h$8JT TTQU 6L @_IT#;@@9# ;@@7@?@ 7@C_F_L @C_+TC~#@@@?T(!@("@!@{@?T(c(b@a@(c(b@a@%@@@ ?@@ "@!@!BxaBzbA/@@@@? @/@"B!B!"C@@T3O@@@@ @@ ?@@@ ?@@@W@?@ ?ր53@ @c@"@@@? @O@? T?#T7@@@ ?3@ BB@c@B @O@ T;SKG@@@ ?3@K@CG@c@ @TC[?@氆W@TG "U3@K@G@C@[@c@@ ?"T@h)8O@! °@T U @@ S@7@;@6#@'@#@"_@C_[@C@ @@S@7@;@#wS@7@ ;@@@[@C@#g9{ c@3@#@#@'@{9#9k #@ @_!53@ 5@_@ 3@%@@@_@C_('@@_@C__@C_ SSS@S3@S J @_i+T#g@@  @g@"@# @_(T(!"@c@ @@*@5g@#g@"^S @ E  @g@"@# @_I$T(!"@c@ @@*@5g@#g@" @'|999 99$9{9&9  9@$9 (9@ ,9~ 09 49 89 <9@9 D9 ~H9N΁ 3@ ~@`@@A*!#@5'@C'@M: @#|9"99 99%9{9'9  9@ $9 (9@ ,9~ 09 49 89<9@9 D9{H9P 3@ a@`@@A*!#@5#@C#@pM: @|9"99 99$9{9&9  9@$9 (9@ ,9~ 09 49 89 <9@9 D9H9N΁ 3@ %@`@@A*!#@5@C@4M: @|9" 99 99#9{9#9  9@$9 (9@,9~094989<9@9D9zH9E 3@ @@`@@@*@5@A@L@ 3@ }@_@*@5A*! AC*c L*6 @|9{99} 99999 9@$9(9!,9~0949A! 3@ "@ @@@*@5@A3@(B A@L(B 3@L  @ @@*@5(!#(BL  @@ z@@*@5(!#(B~L @@`` | `@(!( A*!"@5(B(C(B(dL @`a !?aA!(B@(AB*BD@5(`((B`(JL @`` ?`@(!( A*!"@5(B (C(B (0L @` .`@(!' A*!"@5(B'C(B'Lj @ ~`@ `@(!@' A*!"@5(B`'C(B`'KP @`@ -`@(!' @*@5('(B'K_G_ Cx@9 P @_T#(@@?iTF*@5 c K ( @@?T@5 c K_B_֠K~K B @C_ T#р5 @O@"A9 c8c@ c8c@#@k cZkk@#@_ cZ__@#@c cZc @cT !5 ~|(@#@O@c@ # @S cZS_PT!5 |@#@O@S@#@W cZW_`T!5 }@#@O@W@#@[ cZ[_pT!5 } ~@#@O@[@#@g cZg_T!5 ~{@#@O@g@#@o cZo_T!5 {@#@O@o@ #0@T?d_T!5 @#@O@?@C;$ KO@0@?@A!;@_CT4@C@ @@@SW[ _I_KzJ A @_iT#/@_KT'@dA9$+@@{R;Lrk!T$+@@{R;lrk@T @ ! !!7;_D__!T3@~A? ThfZe ˥~A ? TheZe0˥~A0? iTheZe@˥~A@? TheZe P˥~AP? )TheZe`˥~A`? TheZep˥~Ap? TheZe˥~A? I TheZe˥~A?jTzfT J@@/@'@3@@?TB˄$A?iThd `4@`0_D_G @a !< !!7;_D_ @$J8J@J@J@J@J@J@J@J@J @  @_ T#' C@ ';@ ?@_cT7@+c57@ t@#@;@+@'@dh GKO_F_@@A9A$ ᠚ҁϦᢛؔ ! !a A߷̜!AA/lAnXᩴ O!a`a5a!||_ @_T#> @`:@#_C_p@ @_T#> @@9`:@#_C_R@@A9 ~ _{ _z _ @_T#7@d4@?@d4`0@T Tz?&g;@T+ I?@7@z@+@;@e0@e0T ?7@0?@z@;@?CTC@%zC@;@TzT#' @@?#T%#@@ z'@&?@7@zT񠰄b T# I#@?@7@`0G _F_HHHzH ?} @_i T~#@@;TbcC@;TC9@@p+@_cT@c5@ 0@#@@{'`c ~>I{@+@'@_@_@+@_cT@c5@ @#@@{'`c {I{@+@'@_@_M? @_)T#  _@4@# 9d@T }?( T z }?h T z #@u9m9e9]9U9M9E9}9_@ }z_@0@@!ZK@!ZO@!ZS @!ZW@!Z[@!Z_@!ZcA9@Zg#@;T_K_ր*` ~zGzG > @_T#3~Tk@C9w@ {@@k`C@;T ~VH_N_> @_)T~#c#~T@C@D@E@F @G@H@I@J@@@@c)Jk zѿT|G  _CDEF GHIJ_@_֎y` Zcy @JT~ӿ I T T  T TWcyn0-q-0}J<yp @.S.q~Cyq@ypy kT{uXc:{uXz,~,~,~yʞY jT,w,7, 7'JV(4@@TF F F F F =B @_IT# *0@97@9A(!4"@#@!@} ;@?@C@#' 7@;@ ?@C@_F_=@@@@@LP(LT(LX(L\(@L$pL%pL&pL'pLN#NHN n n n nN((^b@ ^Q ^HNN((^`^b@ ^Q ^HNɄN((^`^b@ ^Q ^HN鄳N((^`^b@ ^Q ^HNN((^`^b@ ^Q ^HNN((^`^b@ ^Q ^HNɄN((^`^b@ ^Q ^HN鄷N((^`^b@ ^Q ^HNN((^`^b@ ^Q ^HNN((^`^b@ ^Q ^HNɄN((^`^b@ ^Q ^HN鄻N((^`^b@ ^Q ^HNNb@ ^Q ^HN`^Nb@ ^Q ^HNɄNb@ ^Q ^HN鄿Nb@ ^Q ^HNcN!NCL_ @_ T#@#@ ӱ@9#9_C_= @_iT#?@ @$@!@C@ G@K@ ?@+@'@3?@d@A9d`@a@@??@@@!@@@@  ?`@a@/B  @@?@"@#@$@/@ ?@@@bG@+@T?@C@D@c@'@3@ !`??@@@!@3@ G@'@ ?@@@OSW_G_E@@ || < @_)T#/@ @$@!@3@ 7@;@ ?@@@?CG_E_{< @_T#@@@!@ ? @_B_e< @_T#@ @$@! @ ? @_B_M< @C_IT#O@@A9a @$@!@ ?O@ @$@!@ @@@  ?O@ @$@c  !@@a +;O@@@c  @@A '7+@ @;@? @@@@c/3?O@@@!@ ?O@@@!@@@@  ?'@ @7@? @@@@"/@O@D3@D$*@5?@E E`?@D@A@`5CD@@@9_I__I__I__I__I_ @$@Cc  }@@O@"@#@! @C@ ?@@@_I_@@ y{ ;Q @_T#: @/?@A@ ? @@/@  *@b5#"QD?@@@? @@/@ *@b5#$" BD@9 A9/@ @$@! @ ? @'a!5@'@/@  "*BD@d5# $`Da!5 @'@/@@@!*!!@a5C DG@lTC@@@A@@C@ K@?/@@@!@ ?@@/@D@dE @@T+3 D3@/@+@D@cD@T D/@C@h`8ҥʅh 8TD @A@T$C@h`8 ҥʅh 8TD@A@T@ @A$@@C @D@E@ ?ր`7O/@S_G_CC`*  z :. @_iT#9 @9'@@@ @$@?!T @9`+@99_D_v_D_: @_iT# R|_C_: @_IT#@@ @@@'@[@@? @@ 3W& @sa!5 W@B3@B Ú+D|;@oa!53@ @@;@o@3@ ?@7@ +@? T?GCc_;7'@@[@ ?'@@[@@ @@ ??@Xs@A9PA9HA9@ 9'@#@[@ ~`?'@@[@_@ 7@;@ ?@@@3@$?c T;7_eKC@h˄gc@T C_@7@;@3@g@K@C@c@G@@?T_O_B/@G3@g@K@_@7@;@@_KT/SOk'@@[@ ?'@@[@k@ O@S@ ?'@@[@k@ S@ ?@@@g@K@fhe8he8fh%8TTBB q 9  @_&T~#@ ա(!-!@9@(-!*!$@5@(- (B-@@B!*!@_c_@E\@9@y{k c@ !*!@  @Y`T]T @  դ(-@9D@()-$!@5@(B-A(B-@B@W[W@BC\@9d@yc{k# [@ @ i@?YT7'?; 2 @S@/@O #@PT'@;@?@7@XT'@;@?@;@?@ '@@@@S@/@O@C+G L@3@KO@S@ /@A3@@@@K@ ?@9/@,?ATO@S@ C@G@+@-_@_ր $.  @@_@_;@?@ '@@9'@@ os@w@{ 8# c@@_@_ gk  #@x@@_@_ gk   #@b@@_@_T8 @_T#@?@@"L@bB@bB @bB@bBBscA@BA!@@!BB@ @BA !@@C@ !B!@_B_8 @_IT#@@@C@a@a@D@!a@D@!a @D @!a @A@ ` @#_B_7 @_T#@@@C@!˻!@a@D@!!a@D@!!a @D @!!a @A@`@#_B_7 @C_I(TC~#C W   k  C@   C       @   C     #  #  /   /@T   #   +   +@$T  c  c y '   p'@LT   c  _ #   V#@$T     C    :@T   u  '    @T   Z      @T   @                @ @_@C_v6 @_ T#@AT@@!@@A `@!CA @!FA 0A!AA   @L@'_B_`*( 'v H6 @_i T#G@@;T;@+@/@3#@7'@;K@!?*TCBxac$|EC B ĚB0@ 9O{SW_H_hf8h&8B_ Thb8F ߀jT9T{? 5 @C_IT#S@ @@CO@ @@@TC@ W_I_ehc8'hc8ʄ+T Ձ@!!|_*5 @@@C@!@!cC@a@C@!!cC@aA@@ccaA@!A @ @ccaA  @! A@@ccaA@!_ @C_) T#? (8@c S@@CS@ %@@?IT@9@ C@"@S@d@ O@"@e@ "@e@ " @e @  !@b@@ W_I_R> 75 @_i"T#  k WC  {@ r  # k  # e  #{@    #   O  #  # A@ /  # 8/@T  # t # &@ +  # +@(T  # Y # @ '   '@PT  # > # @ #  # #@(T  # $ # @   # @T  #   # @    @T  #  # @   # @T  #        w@ {@w@_N_4 @_T#G3  _@ Y   _@  [@    B   W@  W@ w  W@ (  _@ h  (8@ [@@K[@ @K@ @!(!8"@ K@ EK@ @!(!8!@ W@ 4@@ #@BW@d@ Bb'@Bd@ Bb+@Bd@ Bb/@Bd @ Bb 3@Bd@ @` W@c@@g_J_f3M @_IT#+@@/@C@$|Û%|@G@h }*}Ǜ+}eD @J @ } l}ʛm}  @M@} }͛} e@B@}}›}dS|T|u|ƛv|u}Ǜv}}ʛ}  }͛}  }}|›|v|ɛw| }Ǜ}}ʛ} U}V}}ƛ}W|ɛX| w|̛x| }Ǜ}||A}ƛG}!'}͛*} FG|̛I| "f|g|                              @!! a@œ!@b˓!@Γ!@ϓ'@C@;T '@_D_2I @_T#+@@"|#|@@||ś|#@ @| } }C"!)|ě*| }ś } i jK} |˛ |  +|Ǜ,||ě|  ||ś|  ,|-|ӎ|Ǜ|  N}|Λ|m  .|ś/|||!|Ǜ|                    d@!! @BÓA@"ȓA@bƓA@͓ '@C@;T '@'_D_*2}@@@@ @@s&@g@@A@!@!B @!@!C @!@!D _@@A@ @+@L@m@@k@ABCsvҪ*.6_ց @C_T#@ S@?TO@"x`C?[9c @9+C@ @9_I_`*` q 1 @_i T~#{@{@ O w  c@9@   #@ * @! !@9 c 7@{@@T +;# $@@?T@"|@9@9y@ |9{_@_l: Q1 @_T~#@!T@ @@ { C g(@C 0@ S(!`!@ C (@ @?c@ @@$ @A !!_@_+!(!8!@ @@!|@9!G!@ @"@@c!b@"@c!b@" @c!b  @"@c!b@ @A! @@;T@@@;T!(!80@@@;T @ @4@_@_֠ @aa !!_@_|0/ @_ T#'@9+@;9  "'@ +@" !@'@@ @ @'@/_D_L0 @_IT#'@9+@;9  "'@ +@" #@'@@ @ @'@ +@ @'@/_D_0 @_T#'@9+@;9  "@'@ +@" @'@@ @ A'@ +@ @'@/_D_/ @_T#'@9+@;9" '@@ +@'@@+@0@"@;T(cc@ ! I'@/_D_/ @_I T#?@9C@;9"3 |?@/3@ C@?@@+(BB@ C@d 'C@!@   ?@    /@   +@ ?@G_G_V/ @_IT~#@@ M#c~T#@ _@~T@ @@ @_@_/ @_)T~#? S { g+@9c @ @@9 Cc   @"| @" @Cr @!@ @!@h @9C @C @@ @ @_@_. @_IT~#? S { g+@9c a@ @@9 Cc    @ @" @C @!@ @!@ .@9C N@C @@ >@ @_@_. @_)T~#? S { g+@9c @ @@9 Cc   @"| @" @B@r@!@ @9C @C @@ @ @_@_- @_IT~#? S { g+@9c i@ @@9 Cc     @ @" @B@@!@ >@9C ^@C .@@ N@ @_@_.- @_ T# g?+ S@9  g c@"k _ @"@ X @ k@   F@9sc @@oc @ s@@ o@@_O_, @_T#+@@ '@9+@;9(B8C@ '@+@0" @;T@0@"@;T(c8c@ !'@/_D_, @@@A@d@"@@Ae@"@Ae@" @Ae @" @Ae@" @Ae@"@Ae@"@Ae@" @Ae @" $@Ae$@"$ (@Ae(@"(,@Ae,@",0@Ae0@"04@Ae4@"48@@a8@!" 8_ @_ T#7@9 ;@^+(8@ 7@@@ @;@!7@d(@"a(@!d,@"a,@!d0@"a0 @!d4@"a4@a8@!" `8?_F_+ @_T#G@!TC@T z5?@9 ?@O_G_@* k + @_) T#7@T3@T {T5@ @ !<7?!CG_E_Ѡj`8%B Bh`8_kT?kT @ !(??!CG_E_/@@;T/@?_E_W+ @_T#G@TC@?T 4@9}9A9@9z9?@9 ?@O_G_@* k "+ @_^T#k@@y@9!@!P@ @BEBP@P@x@9c@cBcP@p@GP@@DP@@x<@9@AP@@FP@$@y P@9A CQ@S PAx \@9)A )Q@O pAJEJQ@K 4@y p@9kA kBkQ@[@GWo@@y @9AQ@!@EQ@Q@x@9ABQ@q@GR@@1D1R@@x=@9sBsAsR@@FR@%@yQ@9BCR@QAx]@9BR@?qAER@;5@yq@9CBS@G@GCs@:@y @9@CP@:#@ZEZS@,S@x+@9A kBkQ@,s@GQ@8@DS@*@x7?@9JAJAJQ@7@FR@)'@y6S@9)A)C)Q@6SAx(_@9BQ@76sAER@367@y(s@9BBQ@6@G 9hYd +,K,k, # 2L0l00 8bX`x``` j*J( *((( ^W\w\^\\\ &I$i&$ &$$S@I' 7@?@)$I$&$)&$$I'O@I% 3@;@)$I$i$$$$$I'I%K@% G@( H h   h" "H!![@h! 'C@!XA aA aW@ m| B4 B " b  -}c4   Cc  -}4 d| 4E e -}4FF -}4Gg-} M75m56.} J9j)*.} 92k}. ~ DnU+WT/#@DU@/VU@D3U@VV@tDU@VsV @DU@WV'@DU!TVXDUcTBT˘DUTTDUTT˸DUJUU˘DU)UUDUUyD:UU#kU+D:UVU9D:UsV1V˙D:UVVD:UVV9D:UBT!TyD:UTcT˹D:UTTD:UUTYD:UUJU9D:UU)UyY l 5 .NO]  (Y6]!" # $U!Y LQI%H!T ABM1% QMDUUJU-DUU)UmDU!TmVSDtUcTBT˓DtUTTDtUTT˓DtU)UUDtUUU3DtUBT!TsDtUTcT˳DtUTT1GJ+ 0i!@D(̰ $Ơ@(#M7@j1#@)'H# 4p)+@,3I' mA/@*+L3 $h5PDUUJU0DUU)U˰DUBTUpDUTcT˰DUTTDU!TTːDU)UUDUUUPDUcTBTːDUTTDUTT0DU!T * 2 & 6PUUJU)UUUBTcTTTTT!T0U *QUQUg@q94Ht9UU 2ULULU 1P1 q 9Cq9Kq91U)U&T U T ˊSJ j9*Fj9 UU  UUT)N)i9 Ai"9 Ii&9UU & U U T Q h*9(Dh.9(Lh29HUBT@TUT(Th69HGh:9hUcT`TUTBOBb>9bBbB9bJbF9UT@TUTcRc cJ9CEcN9BMbR9UT@TUTbV9CHcZ9UT`TUTBPBb^9bCbb9bKbf9UT@TUTcSccj9CFcn9!T TAN!ar9Aav9Iaz9Q`~9#_((##@@y@9!@!P@ @BEBP@P@x@9c@cBcP@ p@GP@@DP@@x<@9@AP@@FP@$@y P@9A CQ@ PAx \@9)A )Q@ pAJEJQ@ 4@y p@9kA kBkQ@ @GQ@ ADQ@D@y@9AAQ@$@FQ@pBx@9BCR@T@y@91B1R@,@sEsR@Bx@9BBR@CGR@4@DR@pCx@9BAR@CFS@<@CyY 0 4l!85#C@D / 3 7?*.2:&*.̲6κ"&*2"&.D4UUT1D4UJU)UqD4UUkU˱D4UUUD4UVUD4UqVTDtU)UUSDtUkUJU˓DtUUUDtUUUDtUTV&G( Ij(%F'Hi$@*+E&Gh  @0CJ+%Fg@=A)ŕǝ@.; O? 0@ J e DUUUDUJUV˰DUTTDUUT0DUT)UpDUUkU˰DUUUPDUTJUDUTTDU)UUDUkUTːDUU: 6> UUUUJUTTTU)UTkUUU:UU@q94Ht9UU 6UUU1P1q 9Cq9Kq9UU>!T-U-T S n9Fn9NUJUAT"U"T˪NJj9JAj"9JIj&9UT aT#U#TBQBb*9bDb.9bLb29UTAT"U"TcTcc69CGc:9UTaT#U#TBOBb>9bBbB9bJbF9UUAT"U"TcRc cJ9CEcN9BMbR9"U"UAT"U"TbV9CHcZ9UTTUTBPBb^9"Cbb9"Kbf9bUbU@TUT!S!aj9AFan9U TAN!ar9Aav9Iaz9Q`~9#_ @C_TC~#c ~T@C|@9qT@T T#~T#Dhdx jT}ӟ T{% ˄HTL@B ÚB0DTF@zTTye$ƚT ye)%ƚTye!ƚ1 %7#BT#j 8#j 8@#@;T_@C_/// @ /{/@* e@*` e@*  e %f @_i T#  7@C|@9qTDӄ @h#8TDh`8T @ch#8cDh`8T c"h8C dDB"h 8b@#h8b"h 8TcC@;T_F_z.z.@*  de % @_T#р*߈5* K~@*5_B_g% @ _T ~#@sAC#@;T~Tc~T#~T# ~To`(@@;TAc @;TsA@3h8 c9cA Ac 3@sA?jT9"ABA_TzB?Tn  A@;TA C@;T@@;Tc c hc c ^c c Tc Ac zsA/zBh8 c9YcA Ac a/@sA?T9"ABA_#TA_@ _{-z-{- $' @_T# *߈5 * S}*_B_o$ @'_I&T)~#3GE3)@ g@/c#)~TcGE ZCE ccC@;TKE} c cC@;T@рc"h8B@5c Ch8c@4c cc # ~T~T c ~T#~T(8@ @;T(8@ C@;T@ @;T@ c t@cc c @c"h8_kTb6?Ec @c"h8cGbBAB@_ "T@c0b @;Tc?E  @c!?Ec l@c"h8CGBBAB@_ T@c0b @;Tc?E @cc Ch8kT6?Ec G/E9@c Ch8˄GӃcAc@BT}p@;Tc?E @cc ?Ec #/E9@c Ch8dGccAc@T}p@;Tc?E 5`?E ;?EO_@)_zZ,zW,}T,}Q, 6# @C_ITC~#@9@ ~TC~T@ }d|@@ @@@ \@T_@C_" @_T~#A9#A C~T#A c~T#~T A@c u@{A @ @T_@_" @_T~#A9#A C~T#A :c~T#~T }d|AY@c (@A@ @T_@_^" @_T#(8@3@@;T@3@@;T(!80@@@;Tᣁ9#b9@#/@;9 }|% Eʥ@ӥѥ|_*#@3@ᣁ99 T G@@ _E_" @_IT#C~Ts`(@@;T@ T!*!5zA _O_ @ T! @C_T#~Tc`(@@;T* _M_! @_ T#Ѡ7(8@ @3@;T*@53@b(BAb(B3@c*7 @ 9}9! 9a99 999 #9'9"+9/939A79 |;9?9 C9G9!K9O9S9zW9[9a_9ac9!g9 k9ao9!s9 w9@{9A 9 {@*@5a(!`#b(B` *3a @@9 {@*@5a(!#b(B)3E @ 9 9 999999#9'9+9/93979;9?9C9G9K9O9S9W9[9_9c9g9k9o9s9w9{99 {@*@5a(!#b(B)7 @a(!`!@ @*@5`(b(B)_G_  @_T#+@!7aT/@@@#@_`T@ \@99_C_9_C_  @_IT#@5{ @+@?#T!?{!/@ccc{'@T 1*@{ @!737_D_{) b  @_T#+@!aT/@@@#@_`T@ @99_C_9_C_=  @_iT#@5{ w@/@_CT'@?T {)@3{7;_D_{<)   @_)T#W@ @[@? @' @a! !/ g!ko_F_@5z 1@+z 7@;@?@K@O@#S@'+@_zcg _F_ @_i T#G@K@`('@@/3BB5{ @;/@3@ {` #@'@#@ @5z @7z ;@{0@5{ @7@" T; {2);@7@O{SW[z_c _H_ W cgk_H_] @_IT~#@ T@ @uc@;T # {z@~T @  j@@?@@@@`T3 (@@3@@?T `@!!!{_T (_@_{'(@ d@@ B B@@ @A!* ^  @_ #T~#WBTSB{ [B2u#c@;T# {z`@7 ##~T/ @/#o# {&s#_B cBgBs## zs@@@# @3#c ~TW# @;  ~T @ o ;B# @@@  r SB! WB![B!r _B cBgBr # zCs@@@ L@  97B;93B[9 # OB_cT;B V@{@GBT '{GBKB_T # 'KB{ OB!!!{GBA_T '_@_ '{'@ c@@ B\ "@@ ͳ@!!* ]  @C _)TC~#AT B?TBC@9rT9_@C_ ~TkA AG@@ c c~T @c nc B {Brc A AAqc A ABq    c  zlr@@@  u@B" BBBB@@#c~T#A n@~TA A@ d@@`TB {đ@99_@C_9_@C_9_@C_@ c@@ B7 { @@ @!!* \ * @_ T#с@@@@#@c_T'@C@B@ҁT _`T s@9C9_C_  "@T#$ @_T#с@a/@@@@#c5{ @@?#T!?{!@ccc{@T# 7&#@{ @!737_E_{% g"@caT#$ @_T#с@A/@`@@"B5{ @@_CT@T# {%#@3{7;_E_{X% ,"@cT#$ @C_T#с@AO@`@@@ S@W@[@_@c@#g@'k@+/@;@3@7@?@osw{_I_G "@cT#$ @_ T#с@@@@#@c7_T'@C@B@ҁT _`T w@9C9_C_ "@T#$ @_ T# C@?i T?@@ % @`!||CB9'@+@C+@'@bxe  P@#@'@+@'@ JT_T|fhf_HT!** , @7@?T 3@ _D_ @|$y$v$Cxh  @#@'@'@+@ *T@)TFxf (T[$X$ @V$ ;@ @AC~* hcE|Hӥ~*hecE|Pӥ~*:heB|XB~*2hbb @b!#~*ic)|H)~ *J>Iii#)|P)~ *k6iii#!|X!~ *).!iaaA@#Bl~ӄhll|Hӌ~hll|Pӌ~hlc|Xc~ӣhc%BE~ieH|H~HihJ|PJ~jijB|XB~"ib#!A!'_ @@@ hc8&$Ś0@Fѥ ƚ0c_lT_ @_iT# T_E_!?T# *.@ G~h'b_@*T&c dhb8 @~ӄ ƚ0% {@#@"#@b@B_ӀD@ӟTz# }@p"A<@A`!Ca !` Ca0A!0 ````қCaA! ʻһ[U[U"AA _@һ[U[U"AA ````қCaA! Ca0A!0 `!Ca !` p"A<@A _ց @_T#)BB߈5) r o@?Tk@@ % }@ \%c4dhb8@& Ś0{˄@'l|$Ě0|Dӡx"B_@kTl@%B4Cha8d@ Ě0{c@l|$Ú0|D``x!!?@kT*"x`dx`p%B0 |g@9@"4F#RcxB#^cpb#jchb#`b#LcXb#XcPb!dA@x"A@T_L_ @" o @_iT#/@@ y_@@ Bl @@37_E_]} _ @_T#K@ T?@? TG@;@_T ETT7@9| C@#O@'C9{_F_ *  X * X * X   @_T#K@ T?@? TG@;@_T ET"T7@9| C@#O@'@C9._F_ *  X * X * X  @_IT#+@`T @!;?_D_ й @'@ }/@@'@" }/@C ~@'@!@ +@!@/@!@q@<3@7_D_v} _ @_)T#C@ kT7@ +T?@3@`T TCT @  @`!||/@ #Cxd   #@#@'@/@ jT[9dӟ@b Te|Ehe@CTR xh  @#@'@/@ T[9@˿@BTFxe AT0 xd  @#@'@/@ T[9dӟ@"TEf|Ӧhf@#T!**  @ 3@ _E_|!| | | | | *  W * W * W R @_IT#C@ T7@ KT?@3@`T TCT @ ) @`!||/@ #xh  [#@#@'@/@ T[9@˿@b TFxe ATQ xd  ?@#@'@/@ T[9dӟ@BTEf|Ӧhf@#T0 Cxg  $@#@'@/@ T[9@˿@TExe @#T!**  @ 3@ _E_|Q |N |K |H |E |B *  V * V * V Q @_)T#с@/@@@ ]@@ Bl @@37_E_B "@cT#$ @_iT#/@@ \@@ B @@37_E_ @_iT##@?Tڷ @ @+!/3_C_x!!?T@#@ Fhf8~hfx#h&cTxc{ f?HT+_C_ } @_T#@9v @y_B_e @_) T#+@#@_T'@@_T FT"T@P9P9@?T_B_Gha8~Ӊhh ~Ӌhjh(h*( ~ӈhhgh!8! T99_B_7 * U>  @_ T#@#@ @@9#9_C_ @_)T#с@/@@@ [@@ B @@37_E_* "@cT#$ @_T#d(@@? T)@5 `c _B_@  @_T# 5 {@a !8!@G@"@[ BZ[[@"@_ BZ__@#@W cZW{@cT{!!5 ~|@#@G@W@ # @O cZO_PT!!5 |@#@G@O@#@S cZS_`T!!5 }@#@G@S@#,@T7d`_T!!5 }͹@#@G@7@3;`$P G@,@7@A!`3@_CT0@;@ @@@KOS _H_/z$ \ @_T#/@_T+@d@{R;,rk@T` @A! !*!7;_D__ TA? )Td@Z'@c3@ ~gA ? )TchfcZ0cc~A0? ThccZ@cc~A@? ThccZ Pcc~AP? I ThccZ`cc~cA`?jTzPT K@@/@@3@'@?TB˄`$A`?iT`hd ڠ0@,_D_` @ !!7;_D_ @{@u@s@q@o@m RU @_ T#' C@ ';@ ?@_cT7@+#c57@ Ը@#@;@+@'@dh GKO_F_$ `Ҡ@  `@ @ @z ?_ @_)T#`#. @ !`ҡ!`AA Az!!`9#_C_ _z _ @_T#7@d0@?@d0`,@T Tz?&gP;@T+ w?@7@z@+@;@e,@e,T C7@,?@z@;@?CTC@%zC@;@TzT#' !@@?#T%#@@ z'@&?@7@zT񠰄bP T# *#@?@7@`,G _F_֔z Z} @_T#@@;T4 @@C#@w@P/@_cT@#c5@ ѷ@#@@+s` s@/@+@_O_ @_ T# _@0@' 9d@T }? T z }? T z  '@u9m9e9]9U9M9E9}9_@ }z_@,@S3@!ZW@!Z[@!Z_ @!Zc@ZgCEEcgg@_K_ *` Rzz  @_T#@@;T4 @@C#@w@P/@_cT@#c5@ @#@@+s` 's@/@+@_O_` @_ T# G@C0@c}  } f$Ś0h 8 TC,@dф@@ӿqT@'HP @ ii8JGi)8&qTѥ@ӿ TEie8i)8#9@P; zCG@@@C@o#@h$8B_jTscxbD~e|XӥPBT#h$8g|PPTh%8g|HP Th%8 cPTf;@@9@ӿqTqT@Ch%8ѥ@ӿ " T@he8Eh&8 zjG@@@C@o#@hc8BBh#8!? TsBxa#~PT#hc8F|Xh#8eP"The8G|Ph%8ePThe8G|Hh%8c PT '@+@KO[@_H_ҮҫҨҥ}ҟҜҙҖ} x @_ T#7@C@D@E@F @G@C@;@?@ c kkz) J_KT4CDEF G_F_+y`k Zcy @jT ~_ )Tl_ iTl _ Tk _ T$q,0 ~cqjq;3[P,A T% ~cjo!1~jq91~jq ~jqo}j1$q,0;3[P,QkT$ ~cjo!1~jq91~jq ~jqo}j1ʑq,0;t;ۭ,ߡT& ~cjo!1~jq91~jq ~jqo}j10q,0dқ˰,KT$ ~cjo!1~jq91~jq ~jqo}j1ʑq,0[Ňһ˰,AT         j @_IT#)0@97@9'!3"@#@!@ ;@?@C@#' 7@;@ ?@C@_F_:@@@@xL@@$pL%pL&pL'pLSx@LN^CNqN n n n nr NN0^"^a(^CN(^N0^"^a(^CN(^ЄN0^"^a(^CN(^N0^"^a(^CN(^N0^"^a(^CN(^qNN0^"^a(^CN(^ЄN0^"^a(^CN(^N0^"^a(^CN(^N0^"^a(^CN(^N0^"^a(^CN(^rNЄN0^" ^a(^CN(^N0^" ^a(^CN(^N0^" ^a(^CN(^N0^" ^a(^CN(^ЄN0^" ^a(^CN(^N0^"^a(^CN(^N"^a(^CNN"^a(^CNЄN"^a(^CNN"^a(^CNcNNxL_ @_IT#@#@ O@9@@P#@"P zD@9@,@#@C,@!T0@A0@?#9_C_#9_C_z @C_)T#w@AT@`@T0Ts@{@@@4` @A !X!_M_  { s@{@@|#@'_+@3@@C@`TC@C~? T0cT        @@@ @@@@@ o@#@;T   @@A@B@o@`$a(b,_M_`& @} !!_M_~{ j @_ 'T#{@o@ %Tw@k@T gTb"Tg@@x' TjT_T@s@_L_D9f @F;TaT@9[@ T_T?cTC7?G/;K #'?@/@;@G@K@g@[@C@7@cT)BBTCW$c @;ҟ)TS~T$$DFx  T3z??&S@OT O@?@g@ C@3@?@ O@W@_TC C@?@ g@ _L_?mTS~T?x!S@ T xS@g@[@  #'C@x S@W@_TC C@x g@ _L__L_* Mhf8ihf8(ʈh&8KT@˦s@G@ c *` M*  M   @_6T#?@K@5T@4T7@C@D@E@F @G@H@I@J@K$@L(@M,@ND9ۍd -s1.4ۍdT<-1.Q@PDNH[[, - 1.6[[,VL-1.QPPTNXd - .d1Q\.-.P`OdNh@N9#73/+'O@C@G@;@v @ .^3 @ۍd3  @[[,63  @d3 @v 3 @3 @3 @3 "@#@ 3" &@@3& *@7@3* .@3@U3.7@S @2@s 32 6@/@us36 :@+@s3: >@'@3>S @sS #@nssz@a+@ossz1'@`?+ T T+'#S @T@AUTAVhAWT@ @@B@c !?@@@" @@@ A !<$@@ @ @@@@@  ?@@@"@@a"@_Ta!@G* @@"@c~Tc? cG@@_@__@_;s @@$)!"@5@(@@  (`@!.] @)!"@5@@@Є !@5@@@" @#@$@ @@@ @@'@@@?T@d @@@B !?@@@_@_@@@c @ <$@@ @ @@@@@ ?@@_@__@_@GC9cA9C@G@@C@$@@$T@Jm;T @9ߔqT@&_T;9* -@@#@A9C@;@@g)@5!|eh!KK@@B? a ! #@@@cb B "" B8 #@'+@/@ x@ @@@@@  ?@@@C@K@@ b@! C@MT@"_@_'@@@@d @@ ?@@@_@_@c@K @#@?@@? N@@@@ ?@" B8` #@'H+@/@  @ @@@@@  ?@@@K@C@?T_@_@  @_iT#?ښ @!'@@`@A@C@D@@ @?#Tc+ /3_D_3_D_ּ  @_T#@#@ z+n@9@ @#@C @T$@C$@(@B(@`T Ws@9#9_C_Z @_)T# z @` h-`!(!@& )@5 (`&"(B`& _C_3 @_iT#'@#@@@h'8!_ Tfh`8D@ӈ ig8 Th!8' @if8T@/_B_  @_)T#  @`` h0`!(!- )@5 (-"(B-_C_ @_ -T~#@@_-TE˦_I*TW}ӥ`fhee@CMT @-@ǫ@@W@@@C@@T@@W@_@_@@C@W@@SȀ@;TT ` @@@?@@@ NR (@@G@Є? @@@@9@@ w@@@#@#G@@;@@@ @_@B @_@@=kK!5g q@g@ @K@k@@ g@ݫ@@@ ?@@G@" BX#'f+@/@S@BC@lTW* T[Fhd8qjTOc #@@c@@_@O@[@ogߌqLT߀qTd@ hџ߈q`TߌqaT'qTĬџq TqTq`TpqaT?bTB Q@@#@$_@[@og@@ x%?bTB 7@@#@$_@[@og@@x% ҕc H@@@ ?@@;@" B, @#'٪+@/@s h @_KT#k@@@?T;g@_L_`@@7G/E?T3CC@;Th@d@l@? BT`. ˛@@#@g@Al)!$@d5CdD ;@7@g@C@/@G@3@h )@5C@;T`. CG@;@7@3@g@C@/@)[@W@J*? T @@ <TK@O@;Tl@ !;Tl@:Tl @a:T?+k @,T,T T`@h5\   A7TX@h5T   !T@l@@ BT E@@#@g@A)!$@d5Cm;@7@g@C@/@)+@?@J*G@3@l @5h|өi(z  P r(@l$@,@ T  @@#@g@A,)!$@d5C$D 2;@7@g@C@/@)+@?@J*G@3@l( @5h|өi(>   6%lT!T4@l0@8@ T ͚@@#@g@A8)!$@d5C0D;@7@g@C@/@)+@?@J*G@3@l4 @5h|өi(   @@l<@D@ T @@#@g@AD)!$@d5C<D;@7@g@C@/@)+@?@J*G@3@l@ @5h|өi(   )T@l @@ T S@@#@g@A)!$@d5C D`x;@7@g@C@/@)+@?@J*G@3@l @5h|өi(  Z |-T@l@ @ T @@#@g@A )!$@d5CD:;@7@g@C@/@)+@?@J*G@3@l @5h|өi(F   >ETL@lH@P@ T י@@#@g@AP)!$@d5CHD@;@7@g@C@/@)+@?@J*G@3@lL @5h|өi(   hLT @_)T#@@@@@@ @@9`.@ .@;@@@@_H_7@@;@/7D@E@& 3@@)JK@5@x&@ @*3@ )BD@d5#!~)B/@!@ T@@cT@B@ 3@@#@!@@)B` D@5;@;@P_H_sr @_ /T~#Ѡ' @@@@@@#c @;TP@@@'cd@e@c@'A+A/A#c @; T4@@@'c d@e@c@AA#A#c @; T@@@'cd@e@c@3A7A;A#c @; T@@@'cd@e@c@?ACAGA#c @; T@@@'c d@e@c@AA A#c @; T@@@'c d@e@c@AAA#c @; TWA@@@-TSAWA' @@@#c @;T@@@@OA-TKAOA'@@@#c @;T@b@@@kAgATsw{_@_@@;T f @)@5C@;T `. )@$@cT@@ @@#@)@!b @AA@5@F@@B@,T @C_iTC~#?A7A3ATYP#c# @;TZ@@"@@cT@@ U@#@@@@@?TB!BA  s@@ @@@KO_@C_!&@;T@@AT@T@T@!T @ T TD@ T  @)@5@;T `. Ϭ)@$@cT@@ ٖ@@#@@)!A @&&@5@#@@@@BlT #7@T+@'@3@9#_ceC@;T@ @?aT TTxgIxg?@T@9#_ @_ T#/@X@\@`@3@7@ ;@"@9@9_E_ @_ T#Ѡ?! @!? " B @@@@)!#@5 c< C c< i?@ B B }@@@)!#@5 cX C cX P?@ B B,}@@)!#@5 c0C c07?@ " B @̨@@)!#@5 cC c?@ " B @@~@)@5a !xAc cx?@ " B @@@@)@5 !P A cP ?@ " B @@@)@5 !xA cx?@ " B @h@@)@5! !$-A# c$-?@ A !L}O@@@)@ 5@ @@@(! C c@(B@_D_ @_ T#с@'@@@@ @@+/_D_ "@#T#$ @C_ITC~#с@AC@;T#C@;T@@_@C_ŀ n"@cT#$ @_T~#с@A0@;T#C@;T@@@#_@_֓ <"@T#$ @_)T#7@@ @! @ ?7@@@ @@  8T#@'@;?_F_  @C_IT#O@@yW@C[@cTS@y5S@ @@#@#@yO@W@!Zh"x@ybBT3y5 v@@#@O@@y3@!Zh#x@yCBT?y5 _@@#@O@@y?@!Zh"x @ybBTCy5 H@@#@O@@yC@!Zh#x@yCBT7y5 1@@#@O@@y7@!Zh"x@ya"T;y5 @@#@@y;@Zh#x_cg_I_ja @_I-T#7@/@?*T(cd@e@+@ ?*T?)*T+@fh`xZ'@y"D? T(@@ ?i'TE?&ThhbxZy? T(BE@F@ ?I$T?#ThhdxZyD? T(@@ ?)!TE? ThhbxZ yE? T(BE@F@ ? T?iThhdxZyD? T(!#@!@ ?TE?ITehbxZyC @aA !.@)!!@5@ `@7@;!=?C_D_;_D_ߏ @aA !H/@)!!@5@ `@u7@;!=?C_D_ @ @! !|$@)!!@5@ `@T7@;!=?C_D_ @!A !@)!!@5@ `@37@;!=?C_D_| @~ !t-@)!!@5@ `@7@;!=?C_D_[ @ !@)!!@5@ `@7@;!=?C_D_*(&$"   @_T#O?@@@)@5A~T_ ( )?@)G@AK@D@5C@CC@@` ]@#@@@?@C3/ @|a !H;3@)!!@5/@ `/@zO!=W[_G_9W0@yy4@yqk;94@y<;9  @_ T#7@;@ ?@C@=@@@@#;@?T(BC@D@(B#?TC@D@?TC@D@c ? TC@B@ ?T? T7@h`xZҠ<@?T(@@C@GKO_F_G _F_'# @ !+#@)!!@5'@ `'@xC@G!=KO_F_'# @@ !x#@)!!@5'@ `'@WC@G!=KO_F_#' @ !#@)!!@5'@ `'@6C@G!=KO_F_'# @~ !*#@)!!@5'@ `'@C@G!=KO_F_+'^ @~ !(+@)!!@5'@ `'@C@G!=KO_F_-,  @_'T#_@CC94c`@%TCh`8qTC@9q!TqTg@k@_cTc@c5c@ @@#@!g@h 8w{_K_c@g@k@o@ (@@c@wg@{k@_K_KJC9 TT7;Jhh8_q!T  _j T? T TG5 B@@#@ g@k@_@K@o@c@7@;@G@jh$8 Jhj8_qTCS0 @#GOݛ@@@9K@_Ts@O@ G@8@@B0o@ ֜@K@s@#g@k@_@S@K@C@o@c@7@;@(BC@B@w{_K_(BC@B@w{_K_K@"C@cTS@/5S@ ɉ@@#@/@K@Hzh!8 9w{_K_րT!5 @@#@K@h$8w{_K_jh+8)? T?"TdJhi8T3?_95 @@#@g@k@_@o@c@7@3@_A9?@   @@@  @_)T#W@{9g@_@CC9[@@  T Thd8mz-TF TiT?hl8)?) TkzK! 3/+  +Tc@ cT T;O C˄˄T?K5 @#@3@K@?@7G` +C@7@_cTG@c5G@ @@#@C@dh 8g@_@CC9[@;@+@/@W@(!"@!@osw_J_(!@"@!@osw_J_(!"@!@osw_J_(!@"@!@osw_J_(!"@!@osw_J_"EbT;5 @@g@W@3@;@+@/@fh"8mT(!"@!@osw_J_%9?@o_J_(!"@!@osw_J_       @_T##@@@ T)Tehb8zFBBT(!"@!@'+/_B_@T@'_B_(!@"@!@'+/_B_(!"@!@'+/_B_  @_T#W@9[@ _@c@g@k@h@#@;'@/@+@+@W@dBy %_"Tyc5 @@#@%;@W@@yZh!xaBy գ_"T7y!5 @@#@#@y7@!Zh%xosw_J_C?KG`Z @~ !(K@)!!@5G@ `G@C@o;@s?@w!={_J_  @_IT#р@ K@+@oy! ԉ@@)@5 !A coy+@ @@)!#@5 c/C c/oy+@ @ @)!#@5# c C# c oy+@ @ @@)!#@5# c C# c n~oy+@ t@ @@)!#@5# c C# c V@oy+@ \@@)!#@5 c.C c.>|oy+@ D@ @@)!#@5# c C# c & ~oy+@ ,@}@)!#@5# cC# c oy+@ @ @@)!#@5# c C# c oy+@ @ @@)!#@5 c C c `oy+@ @ @@)!#@5 c!C c!oy+@ ̈@ @)!#@5# c C# c oy+@ @ @)!#@5# c C# c ~oy+@ @}@)!#@5# cC# c~@oy+@ @ @@)@!5 !p A+@'B A cp b'B +@^@'@ky!  b@ @)!#@5# c@C# c@Dky '@ J@@@)!#@5# c``'! )!"@5'BC'B%y @}`` (``'! )!"@5'B C'B  _ @`` ``'!@ )!"@5'B`C'B`E @ ` D;``'! )!"@5'BC'B+ @` !aa!'BA)BD@5''B @` ``'!@ )!"@5'B`C'B` @` @``'! )!"@5'BC'B @` (<``'! )!"@5'B C'B o @` ``'! )@5'! #'B U@@9! Y@@)!#@5 cC c;9@ A@}@)@5! ! A# c #@9@ )@@)@5 !%A c% ~9@ @ @)@5! !A# c9@ @@@`)@ 5 ;@@'! # c;'B @_F_ @_ T#@#@ @!R@9#9_C_ @_T##@@@C@@E@T R@9 @@#@C@ @B @?`T W@9#9_C_@ _ @_ T#7@a@`@$ Te)@@f)@@?@kT?lTmT'@@GKO_F_T ;@9T'#D9d@ TC@_T'@@@! @ @Sy ?'@#@7@@?@;@ TC@ } ?MT9?H Tj@? Jk@T+ '@#@7@C@@?@;@+@@? T˂ $ T9_CTb@Bc @ T '@@@?TG _F_'@@GKO_F_ <2 7.}3~)@ K @_i T#C@ KTA?@" G@H#@'@@@@#@E3+/'@@@!@?@ G@ ?S@y3@bB?AT/@@K+@O _G_ SW_G_'@@ SW_G_1 q  @C_T#W@?TS@d@9? Te@9? iTe @9?k T'[@~c'џ-T( T+?/ 4@@@+@_ T[@W@˄F?@'@/@#;T_TT973C!(i} @#@a)!"@5;@ ;@3@7@!@5C@ `C@'@_a!cg _I_'@@_ ko_I_=38.@@ d _ _ @_ T#  c)c@c@dlc/@?T?iT ~+@9?T93@_`T'@9 @T |'@3@@+@@MT_pT'!@#@!@c@` ~A`+`?@7_D_'@@7;?_D_ ~}@ұ  @_ T#/@!T7@@T!| @3@"`T!@a!??C_E_'@@GK_E_x T7@p+T'@@@!@3@` ~;@B` ?+@?a!}| @?@3@! T# |#@@9?qT@9Bz_q T?qT@9! @?q`T?qT@y!Z!<@aya!??C_E_'@@GK_E_'@@GK_E_{ @_iT#7@?IT3@@9Cd)@@f?Tc)c@c@d)@@eˣ?KT?pq T/@_x T?@q!T!| @;@_ T3@"`T"@!@9?a!?CG _E_!{ @@"_T;@T?CTa!!@3@a@T h@3@;@_T#?#TA!a3@#`TAhaa@9?a!?CG _E_`{ @@"_ T;@ T?C Ta!!@3@a@T /@3@;@_T# ?#TA! a3@C`TAhaa@9?a!?CG _E_`}{ @;@_`CT3@"  T# |#@3@!@9?a!?CG _E_'@@?KO_E_}RXO@UKQH@ND}B0 @@ _ @T@_!@$@%@@{RSrkT;R{7rkATd?aT e)Х@@<c id?]{RSrkTd? T e)Х@@lcd?Sd?GmR;Cr+Tfƀ>T Մ@d)Є@@ g)@@˅d)Є@d?e)Х@2f$ߋRªr+TfT Յ@@ Td)Є@@ g)@@˅d)Є@d?e)Х@fd?d?e)Х@d?e)Х@BlTw @_,T#W@ TO@G@K@S@ _ _H_@ @@ "';+7/3*@{RSr_k(T;R{7r_kTjJ?? T  i))A+@l= ˋ jT' @ @   | $T|9)#T9 C"T9`T@" T@!1 ke!jJ?{RSr_kaTjJ?? T @@@@+@?T@'@h ǚ1/@$& 7@% 3@!W@;@@i))AjJ?|jJ?mR;Cr_+ TjJ>?  T @k)kAl@k)kAm@   T' @ @ '?T' @ @ IT9 T @? @@T# i'@3@W@/@7@+@;@jJ>k)kA#@ T@ !)1 ˌ! i))AjJ?|EjJ1ߋRªr_+aTjJ? !T @@@@+@?c T@'@h ǚ1/@$& 7@E 3@!W@;@@i))AjJ?|jJjJ?@i))AjJ?|@i))AjJ?|  lT_cg_H__cg_H__cg_H__cg_H_X U J@7N K}@@-*  @C_$T#.y @CO@_@W@[@ " Tg)@@T@ !Ś)1? `Ti T+3/?i@9 _ qT7_Iq T_yqT ; A@#@@@@D+@|C@h%g)@h5 ?@C@9c)c@e@ h)A @c c e c)c@/@?TT3@)˥B;@{S@@@ ?@#@'@@@#@E+@|C@h&f)@h5 _b)B@C@b)B@D@/@?jT?#T3@c$?@( T3@)$ j?@h  g)7@c)c@3 f@@@@@ +@|C@h%g)@h5 ?@C@9c)c@e@ h)A @c c e c)c@/@?TT3@H)˥B7@O@g)@ C@@)'@@ kos_I_ kos_I_ kos_I_'@@ kos_I_ kos_I_c}gk _I_@  @_ T#@?T@@yy_B_@  @_ T#@?T@y@ y_B_@  @_ T#@? T@@C_B_@  @_ T#@? TC@@ _B_@  @_ T#@?T@@#_B_ @ h @_)T#@? T@@yZy_B_@j O @_)T#@? T@yZ@ y_B_@R 7 @_)T#@? T@@ZC_B_@:  @_)T#@? TC@Z@ _B_@"  @_)T#@? T@@ #_B_ @  __ @_ T#?@@K@TO@_CT'@@@!@G@  ?S@yK@? TO@_ T+'@@@!@G@d ~E ?+@ 6} y@O@_0T3'@@@!@G@d ~E  ?+@O@_8CTO'@@@!@G@0 D0 ?S@yya!8v @K@?TG@d@9? Td @9} d)@53@3@:O@@y ?@@$+@,O@0@g5(@(@?# T/Dc! S@@@@@@/@@@?) T `)@a5$ a!_!T@@@`5`SW _G_ [__G_  _G_'@@ [__G_'@@ [__G_1 ?j~ @ ~}    @_T#G@@S@TW@_T'@@@!@O@  ?S@yS@?TW@_0#T7'@@@!@O@d ~E  ?+@gA!u @S@?TO@d@9? Td @9g@7@ W@$d)@e5__8T;'@@@!@d0 D0 ?S@y;@ '@@@B@O@ ~W@d@?+@G@!@S@_T@ W@#O@AG@@#@'@'@+@;@`)@`5 cg_H_`[_ _H_'@@ cg_H_'@@ cg_H_I ?@-+~97  / @_T#G@@S@TW@_T'@@@!@O@  ?S@yS@?TW@_0#T7'@@@!@O@d ~E  ?+@W@_8Tg'@@@!@O@d0 E0 ?S@yyA! t @S@?)TO@d@9? IT;d @9g@@y 7@ W@$e)@f5w'@@'!`!@@a ~?+@G@!@S@_T@ W@#O@As@@#@'@'@+@;@`)@`5@ cg_H_`[_ _H_'@@ cg_H_'@@ cg_H_u@[Y g~ec 8/ @_)T#_@?ITc@g@k@'@@ w{_K_/@)_@ _T7C3?SG+/'@@@B@ @?S@y?@? TS@C@9d)@9kTC@cB d)+@7@3@G@;' @C @9d2 @@@9!+@d)7@3@G@C@@@_@S@ ?@C@?@#@@@@@e3@7@cTG@OKBG@ Bw@@#@3@K@O@|h&d)@f5 c+@ +@7@3@G@d)C@;@ (S@B?@ f w{_K_'@@ w{_K_'@@ w{_K_րT'@@@ w{_K_osw_K_G @_T#'@ @@@@@+/37;_D_, @_T#+!Hs @S!""@#@$@37;_@oc@sg@w3@7@;@6.s @OS@ '@#@#@ O@@ 5 6vO@@@?TK/S@ #@'@'@#@#@GC@T @0T+@ T ?r @ !G@a)!!@5C@ `C@ sA!7w{_K_O@@/@?TK@kos_K_ s_K_G? ?r @ !G@a)!!@5?@ `?@P sA!7w{_K_֞҈ mD @_T#' @G@"@Cc2 @@@97G@ @$@(@ >7@@@c5!/"3 u@3@_T;'!@#@$@c @ Sy`?G@@3@_c)cc@9T;@9 T;@a9@_ T 9_0CT'!@"@#@B@@ ~/@+@?'@@@! @G@d @;@E /@Sy ?3@_PcT'@@@!@G@d@;@E@ ~/@+ ?3@_` T'@@@!@G@d@;@EP ~/@ǰ+ ?7@@3@T/@"B;@`G@ @$@(@ ;@#@'@#@c '!@"@!@B@;@#0 ~/@c+@?;@K3@OS _H_ SW[_H_'@@ SW[_H_ֱ}ҥ~@ m @_#T#G@@S@KTW@_"T'@@@!@O@  ?S@yS@?TW@_0cT7'@@@!@O@d ~E  ?'@@+@g@!@O@d W@ ?S@yW@_PTy'@@@!@O@d@ ~E@ ?+@W@_`Tc'@@@!@O@dP ~EP ?+@_!;'q @S@?TO@d@9? Td @9g@@y c@_@G@@,7@4W@8e)@f50_T;'@@@!@dp ~Ep ?+@e @`&;@ `)@b5#"'@@@!@O@0 ~W@C0 ?+@G@!@S@_T  W@#O@A@@#@'@'@+@;@$(`)@`5 R cg_H_`[_ _H_'@@ cg_H_'@@ cg_H_{}@ki}wu~sq F @_I T#@'@9qT`'!@ `)@5a)! 'B`A'B`c)c `'!@ `)@5a)! 'B`A'B`c)c a)! 9 @@a)!@ `)@5' 'B _C_ _ @_T#/@b8@d0@c,@a _T`?T'!@%@!@@A! ~?+@?!#o @#?@!!o @a!a)!!@5#@ #@3@7;_E_  _ @_ T#/@b0@d(@e$@0_cT ?T'!@#@!@c@A!  ~`?+@?A!o @/@",@#(@!$@_T#aha8?@!!o @a!a)!!@5#@ #@03@7;_E_jx M @_ FT#Ѡ+jo @ c`o @!+b)BC@5@` @b@+Io @ !?o @!+A)!"@5@@ @b@+)o @+| |Bo @!.B)BC@5+@` +@b@+o @'{!n @!.A)!"@5'@@ '@b@+n @/Bn @!@1A)!"@5/@@ /@xb@u+n @#|!n @!4B)BC@5#@` #@Xb@U+n @!n @!4A)!"@5@@ @9b@6q@3A!2 @@[9@)@5@A@!@23@ ~@[9@)@5@A@@23@ @~@[9@)@5@A@@23@ ~~@[9@)@5@A@@23@ ~@[9@)@5@A@@23@ ~@[9@)@5@A@@23@ @~@[9@)@5@A@@23@ }~@[9@)@5@A@@23@ bx~@[9@)@5@A@@23@ ~e~@[9@)@5/@A/@v@23@ R~@[9@)@5/@A/@c@23@ ?~@[9@)@5+@A+@P@23@ @,~@[9@)@5#@A#@=@23@ |~@[9@)@5#@A#@*@23@ B~@[9@)@5'@A'@@23@ b}@[9@)@5@A@@23@ }@[9@)@5@@@~?3@C_G_ @_iT#2m @`` 0=`@'! A)!"@5'B C'B m @|` 2`@'!@ A)!"@5'B`C'B`l @ ` `@'! A)!"@5'BC'Bl @@`! !8aA!'BAB)BD@5'Є 'B vl @@` `@'! A)!"@5'BC'B\l @~` x`@'! @)@5''BB_C_iX @_T#с@A@@7@ ;@?@C@@#@@'@GKOS_F_$"@T#$ @_T#с@A@@7@ ;@?@C@A@#@@'@GKOS_F_"@T#$ @_T#с@A@@7@ ;@?@C@@#@@'@GKOS_F_"@T#$ @_T#с@A@@7@ ;@?@C@@#@@'@GKOS_F_"@T#$ @_T#с@@@? T@yZ@ y_B_@Z "@AT#$ @_T#с@@@? TK@Z@ _B_@Z v"@AT#$ @_T#с@@@? T@@yZy_B_@nZ R"@AT#$ @_T#с@@@? T@@ZK_B_@JZ ."@AT#$ @_T#с@@@? T@@ '_B_ @&aZ  "@AT#$ @_T#с@a@@?T@y@ y_B_@>Z "@aT#$ @_T#с@a@@? TK@@ _B_@Z "@aT#$ @_T#с@a@@?T@@yy_B_@Y "@aT#$ @_T#с@a@@? T@@K_B_@Y {"@aT#$ @_T#с@a@@?T@@'_B_ @sY W"@aT#$ @_T#'@+@"'@+@_ TC|hc#hc%@@aT #C@9@? @_ ෟc9_D_" @_IT#`@ J?@9@B)BC@9@{|@k @_kaT+ ?@+@B)B@"m@@)@5?@#?@" @BB C@G@<@@@9 @! @$@$@T3` fm@@#@3@A$A)!$@d5CD$ @)@5+@x!+@{ A)!!@9?@Cc?@D_D4!+@O9_G_i @/!i @@)@5+@a+@J@/@ $@f5> #'?@@BB C@G@@[9@)@5/@@/@% A)!!@9?@Cc?@D_D4 /@?@ !! C@G@K@:+@O@9_G_" @_T#O@@@? @@@@C@A)!%@e5 `!@a5  &?@9A)!"@9@[|@k @_kaTp?@@BB G@K@QC@@ @"xc3@ @#'@@+/@ן9 I@C@@@T @)@9?@"B?@#_c#4 _G_w @_) T#'+997@9A)!!@9@;|@k @_kaT7@!!>+'@9@BB ;@?@}@@@9@7@@A! ;@?@@99'@_F_99'@_F_@99'@_F_֘_F_/ @_T#@@#@C@D@@?T @@9@@#@C@D @ @T A@9@@9#@!@9@#9_C_ @_iT#@@E_B_ #'+/37;?CGKOSW[_;@@@@#@'@+@/@3@7@;@?@C@G@K@O@S@W@[@_@_ց @_IT#+@T_D_'@ /@'@+@ /@_D_ @_)T#W@K@AT  j@'! W@ j@#K@?TG@G+g @K@@O@AA)!#@5G@DG@5@@ @5'@@ @`'@)W@@[@D $@5S@DDS@@(@, @5#@@$@ #@  ӥ_H_@`C@;T+@/@3@ @@9@9@9'@h!8"C9D9S@b D@F@B@ @9@9@9@#@h#8`99@K@?lT*    Z @_)T#`);@ +j@'a!g @+'`(@;T#@ ;@?- T7@ xd@@+@DGD)@g5C# @@F@f5CF @ s@@@$0@!4@eХ @T!T#@'@ #@&@!@FAA)!&@f5CW_'@CGK_F_w @_T#7@`A'!="@#@!@ ;@?@A9_9A9[97@;@ ?@@99_A99[A9 9_F_y 9_F_C@@ _ց @_ T#?@@@C@T @;T@@G@?T*  T F)@5@;T  C@@?@@F)G@@? T @5@;T   tC@?@F)G@@@ Tˢ C@G@H@?b T* ˥ ˪@@@KL@k5J @f5 @@TEhc8F@9@9?T* Khj8L @9 @9Kh#899Eh*89 9$@(@TDhc8E@9@9?T@hj8A (@9)@9@h#899Dh*8&9'9_G_      K @_ T#G@C@A@K@BTe dxd@@O@Ti cxh(@) @A@J@T K l@m@k @TJ N@O@J @P @A@bTTV$@A(@T""TL N jq8jq8?kTjt8jt8?kTkT @9_H_jt8jt8?kTB@9g @9kT@9 @9?kT_kT @9_H_@9 @9kT`@9@9kTTjt8?kTk#TaT-@ATu9_H_@9_H_9_H_@9_H_9_H_9_H_9_H_@9_H_9_H_ TAT69_H_փ+'73/; @#7@'@ +@;@/@3@@#@TmT9_H_@9_H_(Tah`84`(@9qT`,@9qATa0(Th`84(@9qT,@9q!T0 { @_T#@'@=@A'! =!@B'B=B@ Y@!;d @a! A)!!@5@ @%a!  0_D_G @_ @_ T#@#@?T|@hdF @9G$@9'@?T|Өha @9 $@9I 9J$9I))*@j5h$ 9$9$@d5h!_B_('   @_IT#+@3@?)T|'@ h` @@@ >@+@7@?T@|'@ h` @@@ >@@ן9_D_  @_IT#/@3@ B@#@@@_@T7_E_ր* 0 ` @? @@ X@!*   @_T#;@T7@ OCy_F_+@c@#+ @99#$@99$@'C@ G@K@>@9#@;@?T'@O@99@99_F_h @_ T#'@+@ /@5@9`'@+@ /@B7@9@+@?@T '@>9_D_` 9'@ /@|6@9+@@9B?iT'@@9 @9_D_@?T'@C@9qT?T@@9zqT9_D_ 9_D_@%#@!(TCh`84 C(@9qTC,@9qaTC0`@ҹ @_IT#@_T@@ _@T @jҀ@@'@_T#@+@ _@T #@D҄+@#@T mT}}/_B_B !@c@mT@9iT@9 _k@T}/_B_A#Ad@%@ӿkT/_B_(The84(@9qT,@9qaT0+@1~(Tdh`84d(@9qTd,@9qT`0@0~bq @_) T#9[@';@@@ @" A)!!@9a@ Ta@yR?k@A9A)!!@9a@  !Ta@y{R?kTa@9?q@A9@! @?T!$@9@@9ן69_D_|_D_ @C_WTC~#@ @? T|k`"C[_[a-T@@9@!@9a@@9@B$A9B/@@TC@;̍RLrkTC@y-RkaTB@9_qT 6_@C_@@ c9w6@aT@@ c9m6@ T/@ _@C_@@@Td@ R̭rkTd@y[lRkTc@9q!T@"4@!8@'c@d@c@ :@9`@@(@,@  T"@#@_ Tb@[,Rۍr_kTAT @!@T @,Rrk!T _@C_/@ _@C_~ _@C_,Rr_kTAT @!@T @[,Rۍrk!T@ ձ_@C_/@ թ_@C_@ ա_@C_/@ ՙ_@C_/@ Ց_@C_ Չ_@C_@ Ձ_@C_@@jT `р  @4@9@@A_#6T@@ T$b@9` @@g"@Cc* B(?u@@'@cg@C@D@'@@@ :@9 g@@`'@'@A ?-Tc@ҋ8/@ _@C_@@@T @{R-rkT @y[.RkT @9q!T/@ _@C_@ _@C_/@ _@C_ _@C_ր@ @9 /@ _@C_֢a!T`@,RrkT`@9q!T@ _@C_ _@C_"@ ռ_@C_!~ ճ_@C_/@ ի_@C_o@'@ +k3o999@;Ts@w@?)AT @-{-_aT @yR_kT@@ c@9@@ Tҧ?!T @,Rr_kT @9_q@T? T @y̍R_kT @9_qT#@;T^@9 w@s@T"@,Rr_kT"@9_qTA9@ AT"@y̍R_kT"@9_qaT@A9A9+@dk@A9?T d4 ~y3@9@A9A9+@k@3@'@T/@ _@C_/@ _@C_/@ _@C_@';@A@ ? @@@@@T /@ _@C_T$h`8ѥ@ӆdqĐeh`8@ӧdq吅@ӥ@ӿkTA9A9A9+@k@B_T c0chb8dф@edq$hb8ѥ@ӆdqĐc@ӄ@ӟkTq N= @C_I T#S@@/'!`!@"B8 o@@@@9/@j6 @@ B. | paq#@'@C+4@ :{ ~O@@@ x $#~ rC@+@ m?_I_ @_ T#?  `@@+B#'+ bc93@?T@_T#@@ ?@@_#T#@@!@A `?_F_#@@@ ?_F_  @_T#B @@@@a@d@9qTqTA )@`5Ca_A__A_ք? Tehd8qTqHTBѥ@Ӣ_@_+T_@DN @_I T#+@$`T'@'@BT cchb8dф@edq$hb8ѥ@ӆdqĐc@ӄ@ӟkTTT@c9_D_ B9B_@9`@'@+@ _@9BT# c7chb8dф@edq$hb8ѥ@ӆdqĐ@c@kT@ @_ T#G@3K@7O@;3@d^;trATS@_W@c[@g_H_S@'W@+[@/'@^;gtrT @9@G@K@O@_cg_H_S@_W@c[@g_H_ @_I T#?@@K@O@ S@@@@3/+C@ @G@? @@@@9/@+@3@+@/@ 3@w@#@'@?@@ @@ i@#@'@W[__G_j @_ T#C@#G@'K@+#@d^;DtrTSW[ _F_ 7@;@?@@ TO@!7@;@ ?@һҢ һ@[@@@SW[ _F_@'#@@ [_c_F_։  @_)$T#;@C7@cѣhc8qT#_!TT@y; Rk T !T@y; RkT@9qT; RkT@9qT`_TA!ҳ Q@K!!OS_E__ T_T@y; Rk@T_ T @/@lT7@@y; R?k!T@9_qT;@ ; R?kaT@9?qT;@A9  Q@K!!OS_E_7@@ynR?kT@9_q TR?kT@9?qT;@O_ T_ !T@΍; L;`TC_(!T@΍; .{lAT@yRkT5 :~/@T7@@nRr?kTnRΦr?kT;@7@@Rr?kTRΦr?kT;@΍R; r?kAT;@CGK _E_;@ :Q@K!!OS_E_֥*The8qTqhTB@_@_+T_@@#fT/@3@ R@@@@c#@7@CGK _E_KOS_E_   @_xT~#@@ @@@9'@+@@@'@6@T@$@,R;rkT@$';@@_@_@@@TE@΍R; rkaT ATE@΍; L;T(TE@΍; .{lTE@yRk!TwGTE@΍R; rk T? !TE@΍; L;T5(aTE@΍; .{lTE@yRkT&[ @@@ )@@5@A@/?G@A @5w@A A@w@   LP@@?!! ) cT@!@,R;r?k!T@ @C @;D@_@?@;@?`T@_@.@9@@@@@? @@[B:[ @A ![@ !)!!@5@@@!!+_@_ր[ @A!!)!!@5c@ c@@_@__@_@@ @@E#@/@'@+@3@/@@E!T@@,R;rkaT@%K@{O!@R[r?k!T@D?!T@a&@'@(@ -@9@K@O@D@{@@^DNBRr?+T@D ?T@a&@'@(@ ,@9@K@O@D @{@@D@7D'vR[r?+!T@D?T@a&@'@(@ ,@9@K@O@D@{@@D@DDD_-Tsgk9 ^_@__@_ց'@<@@! @ ? @@[@B@@@? @@WB#Z @[@@ )@5@A@W@A @5@@@@@ +_@__@_@@[C?o@S@$ @?@W @@C @@`?@W@,T@]-@9 ,S@)@R[r?k TA! TA9@+@D@E@F@ +@9A!@A9@c@@A@C@k@@@@ $3@9@A!@A9')C@?@o@?@C@cTo@:o@ \@@#@A9A!@?@|ai'd')@h5 A!BRr?+A TA! a TA9@+@D@E@F@ +@9A! @A9@c@@A@C@g@@@@ 2@9@A! @A9#A!')C@?@o@?@C@cTo@:o@ \@@#@A9A! @?@|ai'd')@h5 A!A!mvR[r?+ TA! TA9@+@D@E@F@ #+@9A!@A9@c@@A@C@s@@@@ N2@9@A!@A9#A!')C@?@o@>?@C@cTo@:o@ \@@#@A9A!@?@|ai'd')@h5 ;A!A!A9A!')?@C@o@ A9A!')?@C@o@[@BK@,T @8@@@? @@[BfX @A ![@ !)!!@5@@@!!+_@_7 @C_@TC~#?9@=\@ @@@@ @C#@'@@@d^;gctrT@@,@ @@ ? @@@@9g@c@ @@9`@@ g@c@@#@@@@?9@@@d(@;9 @@s@@K;B9;9?9{ ! @q(K@s@;B9{O;9#@D% %)Х `?@@B@TҁO@{@6kW @k@@@!)!$@5C@BD = @`5_| @@3`0O@{@ Cc%#)c c@#@@$@$'Є ;@@@  !/~@@@#@'+/KC@?@7@;@3@?@NW @~ !/@ !)!"@5@@@||@ !@5@$ @ؾ!!,;B96~;9?9@A@ ?;B96?9@@@?_@C__[@W @w )@5@b@;T  * @Up )@w@4@5@0@@<@5@8@@@b? !T@ynR?kT@9?qAT@[@ _@`%;>#@'@+@@@@_@[@@?mTw@O@ {@#'3@7@+@/@w@O@ {@@'@+@@#@;B96~;9?9@A@ ?;B96?9@@@?_@C_ր_aTAT@$ @Wo`@@C9c@ @o@!@!¯a S @k '<@@@S@?@W@;B96~;9?9@A@ ?;B96?9@@@?_@C_`*1  x_@C_ @_T#O@@S@? @G@7/cC @9C@TK@@@?_H_  @_(T ~#  SA@  U6@}!3k&T@ C6@!7U @!)GAKA !)!"@5CA CAwSAWA!@A5OA7A@ @$ OAd7Aa@^ @[#c;A?A v@@@kCT} @ @@@9;&7A@`!< @| !#AT. կ_@ _ թ_@ _ գ_@ _7A;A ?ACAGAKA@'@#@+@[_cg Ո_@ _@@ +@c @9B@C @;T@ cG9 c@;T#c@;TH9`H9cG9@@ C@9@ r!T;A?A ΍@@@ T} @ @@9%@@ cg _@ _@@[_   _@ _ _@ _`* t  @C_ T#@#@;A'@7B@C @D@E@F@G@H@o@ s@C9kBb9@#@?'@+@@/  cSW[_C99@9 ;@CG7@K @9%B@@ AT/@ @?@?_M_  @_)4T~#@T@: KT @~ !/@#0@!4@ !)!"@b5@||' ;@';@ !@a5$ һ , Z_@_@@?Ck @g%@;@@@?";c@9@@ @@ ? @@@@9@@@[W[@W@@@?@eX3@/@'@#@+@/@ SO [@W@@@9@@@@ S@O@@#@@K@w aTK@w@@ ;@g@@@'@#@CC@k@!?@B@T@$)~\ _@_ _@_C@~@$)C@k@DoS @~ B/@C0@D4@ $)@e5@C@E@@e5;@@5g@g@@ @5o@$ o@c,@@@? @G@s @'c%d@c@@AT{_ +@9'B9@@A@G@s@{@_@#'cd@c@T +@9"'B#@@A@G@s@c7BS @~ !/@#0@"4@ ")BD@d5@")B#@!@A@a5")B;@A@5g@g@")B7@ A@5c@$ c@t!, _@_Z @_)4T#y|?T_9k@@o@#c% #)c  ?@@B@Tҁg@,7s@@w@? @@7@Z@/;B@g@d0@e4@ @?;@/@7@C @Є$SOg@KW[G@_9g@[9A@?C@3s@d@R[rk(T;aR;|rkTs@ET@Tk@ o@w@w@@#@c@{_R[rkTs@ET@Tk@ o@w@e@@#@c{@s@BRr+Ts@E T@Tk@ o@w@ao@@#@c{vR[r+ATs@ET@Tk@ o@w@8@@#@c {@[A96_9W@O@K@G@[@ _L_Q @~ !/g@#0@!4@ !)!"@b5@^3@$@5?@?@Ts@$@5w@w@J@@ !@a5$ A!,[A96_9W@O@K@G@[@ q_L_s@}Q @C ! g@#8@"<@ ")BD@d5@eQ @~ !/g@#0@!4@ !)!"@b5@3@$@5?@?@s@$@5w@w@+ !@5C@$ C@ܸ!,[A96_9W@O@K@G@[@  _L_T_L_Z @_)T#'@ @7@@B@@+@d0@c4@ /@3@@?_D_˯ @_)T#ѩ @ @@|@|A_B_ @TT@Aha8?q`T@c9_!MTFha8DŽ@dq T@dqT|qT@@%qhTqTc@qT@q!Tc@qTq@TTc9_c9_c9_c9_`@q`TmTc9_c9_ @_ T#;@7@_Tdh`8qaT@_T`h`8qT@?@?Td5 S@@!;@ah"8 b@@CG_F_;   @_T~#K@a!5 B@US@k;?@ky@9 B@[k{?A+~@;T S@cE95'@@ qT'B@A@@@ҡc9C# @;TB@@@B: @@@@@_CTEѦH99@#yfOSW[_cgk_@_#yc W cgk_@_#yc W cgk_@_ g4 @_I T~#L9_FySDy_kTWFywHykT[Fy{HykTc @;Tc @;T_H9_D9kT9_@_9_@_9_@_TBTcch`8dф@edqch`8ѥ@ӆdqĐc@ӄ@ӟk T@9_@_@= " @_)T~#c# ~T+B"(@BcC gCkC@?@@@b@5w FR@'c# ~T+_@_'BB"@B w@?@@@@ C~T?h TC'B wҿ@@3@ k;?{ k{?B3C@ C#@;TAG  @;TGDCsKyy+@;Tk{k;A3B[k;;k;k @;TCCk; H9cCC@;TA3B+ _@_c# ~T+_@_w cB4  @_&T~# ~T#KB"(@BsC wC{C@?@@@ @5 ~Q@7a!"B BC@@ 7Bܘ#@'@#@7B@yaZ?lT @5 VQ@A_cT3`"B BC@@ 3BAA#@'@@#@c~TAT3B @@3@[k;Wk{WB#K @s C#@;TA_c s S@;T_D[Kyy+kK@;T[k{;k;#AKBk;k;kc C @;T[Ck;H9@@;T#AKB#KC!_@_ ~T#K'9@@+/_@_ ~T#K'9@@+/_@_ ~T#K'9@@+/_@_ ~T#K+/_@_ ~T#K+/_@_ ~T#K+/_@_KJ L  @_@T~##~T C$@Gy#c@;TG #By@@@@@@@^9gC @@C# @ TOyg[_Wc 0#~T '@9@@ _@_'@;@@#~TAC  _@_AH@{@@kC@@@CCGC ډ#@@@@s ,T?CA AAkAKCOCC+@/@#@'@#@+@E'wsA @A? @@@@9Ad^;dtr TwAd@A ?c#~T%k;5A A'B@@C~T3AA OEy3ykc@;TG!k;AWA[AKAOA @;TCAB[k;Oc@;Tk{OC{k;9C~T3AA OEy3ykc@;TGk;A_AcA{KAOA @;TCAB;k;Oc@;Tk{OC[k;owAB @A@?oA c @'!@"@#@@!T $@9`L9{AgA?Tk{Ck;cc@;T{k{C C$ _@_+'9@@#~TA+C  _@_ց'!%"@!@TA M$@9'B9@@A@oA!'!"@!@TA :$@9"'B#@@A@oAAk;7#~Tk{7C  Տ_@_C#~TACC  {_@_ u_@_ D, @ _T ~#Gy q@T 3 ~T# A@C9@@@cc@;T#AK3  @;TKBW"'B@C@D@`T@ #@9@A'B@A'9@@_@ _ւ'B@Gyc5N9#'N9C@B@`T #@9`':@@_@ _Gy 4 qTqaT'<@@_@ _ր'<@@_@ _C_@ _ր';@@_@ _hg @_)T~#C  ~T3 ?B@C9@@@s cc@;T#AgC s s@;TgD[C C @;T[CO'c@d@e@aT #@9`@'c@DyIyk@T?B@C9S@@'9@@GK_@_#_@_ր'9@@GK_@_ր';@@GK_@_ @&_NT(~#)C.~T#E" A9B"@)cc@9@D㸄@E_E @k ~TS 'E +E\@MT ~T'BB@"~T+E9 'E \@@@?T Q @;T @;T~T@;TTyky@oykAEEE#EB )C.~T'@9@@._@(_ @ Tc )C.~T._@(_BjkAEEE#EBcA   !+Ty_k"T@@K64l  *5T`}|!i` @_C#(~T @TB9 @;T7G39SAWASAC### @;TKABw#C#C(@;TwAB/k;B @ @? @@gB I @gA@)@5CAC+EA @5'EDD@'E_AE@5CCEC C C>@@A!@ ?C@9@Cb9@CC,ATb9)+E'E'<';Q##k{B @@@@a @ ? @@gBH @gA@)@5CDCA+ED @5'EEE@'E5_AF@5CCGC''<@')<)@C_TC 7!@9@Cb9)C+E'E_A'@@@@'<@@@@(@d5@ @@@@A(@a5C A`q@A4@5@@8@@d_@_!"@9@' @@@@@D@?@ @@@@<A@(@a5CDA <@!>@9 @@B'<@@@@(@d5"@ @@@@A(@a5C A`@A4@5@@8@@9@f=_@_@=@9 @@@6_T @9qTq`T  ` ~>@@@To$@%@!TT@ R.rkA1T@y͍Rk0T@9qa0TBBB|"->T_(.T@-һ{[_-T@yLR_ka-TMT@@_ T @" @ \@ o@@w @S Bc9x@p8 @w@S@b Bd Є(#'P+@/@w@ S@` @b B(O#@'@@@@@T?c * ,A@@#@@A(!$@d5CT?@c@A(!'@5|h"KBHo@@ @ @(!@<o@@{ @W Bc9@p8 @{@W@b Bd Є(#'O+@/@{@ W@` @b B(nO#@'@@@@@TGg * @@@#@@A(!$@d5CG@g@A(!'@5|h"Ѥ@(!@R-rkT@y;͍RkTmT @!@T"hb8_qT `  @N@@;kBB< @;@`(@5k@ak@@@@e5 `(@@(!Rmrk!T@yRkT@,@р0|#(@a5(@n(!r{R;LrkT@y{ R_kaTC!!*_ ?@_@@  (@b5# "`MC@o@:@@ $9(!@I@@@'<@@@A@(@a5C1(A@a@ @@@@A(@`5C @`9@};_@_&@_*TFTO_|ӧhg@T hi8?q`T `  @=N@@(@O@C@o@_@) @*@_ T*H@5H|'i( ޣ(!@ (!@B@[D@sA@K?jT $ @9K@?@_@s@[@E!T%? jT ( }@9K@? @_@s@[@E#T% }Ҥ?$T? 4 a@9K@?@_@s@[@?$#T%$;fT@[R.rk!T@yRkT@@ 9R?8T@{.ET@,RrkT@y{RkT?@?TT? > @9K@?@_@s@[@@@P9%AT@nRrkT@ynRkT?!T@nR̮rkT@9q@T? T@ynRkT@9qT@@T9@@$9T8 Thf8qTqHT(@_@ T_@F?@ǰ@ @ H Thf8qTqHT(@_@ T_@F?@ǰ@Hs|@@}' Thf8qTqHT(@_@ T_@Fa?<@@@ 7_@_͙ @_ T#&;@@@? @@@+3c9d@+@"T?cT B3@b?T@h`8qT `  @L@@'/@: @'@@(@5/@@/@V?@CG_G_G_G_G_G_ l @_T#@@ Kh@9 @@#'_C_N @_)T#'@9+@ @@@c&_!T ?[: @} ! &@(!!@5@ `@7/3_D_ @_)T#7@9;@ ?@C@ @@@@Є&aT"#+'?: @~a !7+@(!!@5'@ `'@!7#@GKO_F_ǘ @_) T#G@9K@ O@S@@@@'@#@#@&T&+;73/?9 @} !$;@(!!@5/@ `/@_3@7@c7+@W[_cg_H_w @_) T#g@9k@ o@s@w@{@@@#l'@+@/@3@7@?@;@;@&aT*[WKGCSO?m9 @ @ !tS@(!!@5O@ `O@G@C@W@[@7K@_L_ @_)T#7@9;@ ?@C@@@@@Є&aT"#+'?9 @a !|:+@(!!@5'@ `'@!7#@GKO_F_ϗ @_T#?@9C@ G@K@O@S@4@'@#@#@Є&aT"+3/?8 @ !3@(!!@5/@ `/@g!7+@W[__G_ @_ T#W@9[@ _@c@g@k@o@s@#w@'z+@/@7@3@3@Х&T$C?KG?}8 @ @ !K@(!!@5G@ `G@?@B7C@{_J_- @_T#/@93@ 7@;@ @@?C_E_  @_T#/@93@ 7@;@@@@?C_E_ @_T#/@93@ 7@;@@@?C_E_͖ @C_T#O@4@0@@@? @@O@<@8@ C?@? @@C@O@?@(@,@ ` @` #'+/&J3@7@SW_I_ @_DT~#&;@@@@"@@ @?@@@@@d@ƀT@TdT@TT@!T@(@,@ @9o@@@"@ @@ ?@9 @>|o@a'! *!@b'B@*B@c'c*c@T@' @@"B@$?T@ @9  @! @{[!";@SW[@_cVAT " @@@@@ A_@_ ;_@_ 2_@_ֆƀa@?T@@T?6 @ @ !(@(!!@5@ `@|!7 _@_@@@ ?c@9@@@? @'@ @C'c%d@c@@_AT q@9B'B9@@A@'@@@@&cd@c@T \@9&B#@@A@'@@ վ_@_@(@,@ @9u@@@B ը_@_ ՠ_@_@`@9 c9@@@&<@A@@C@  ?@@@@ T`T@@: @@@?iT  h_@_T* @!?"6 @ @ !(!&(!!@5@ `@!7 @_@_ 8_@_?5 @A ! @(!!@5@ `@!7 _@_@@@ ?c@9@@@? @+@ @C'c%d@c@@AT @9B'B9@@A@+@@@@&cd@c@T j@9&B#@@A@+@@ _@_@@ _@_W @C_ T#O@@S@ ? @?_@7C @9#@ TW@9a'!("@#@!@ /@@/3&`<@@@?O@@S@? @@/3[@c ([@@! !_I_  @_ T#/@o3@ #@@7@@EE'%@@T  @9D'9@@7@@@7@&Х@@T  @9&Є#@@7@@@7@(!!@a5 ;@J_E_ @_T#?@9 @@@@@@+/3' ?4 @'@@(@5/@A/@U3@A@5+@@ @`+@I7CGK_G_#?@#@@C_G_] @_T#?@C@ @@@ ?@C@ ]@@@@@" & @@GK_G_3/  @@ `  @3@/@ZF#@'@GK_G__G_  @_i@T~#S&$@@Cb'BC @D@E@@c @_@@9`'@b'BB@C@?`T@ @9C@`'`'C@a'! !@a!@?T_@_@ 04@3@@[@W@C@.d'@f'@C@`T@ S@9@[@W@d'C@3@e @$@(@ @9@[@W@C@3@$d'`@Tc@_@ @@Ҡ@ @@@b'B`@`'(@5`'b'B1_@_ֈ6@6@@C@ z3@3@9 @@ _@_@2@9 @@@; `c9@;@_bT);@@ ` ~3@@T/ @"@ @@O@ec@_@ @@Ҡ@ :@@@b'B`@`'(@5a'!#b'BƚC@d'@5@d'@d' @d'@ b'B@b'B @b'B@@[@d'W@d' @5@a'!@ b'B@@3@a'!`  @@@_@_?@b@O@/@_JT?@|S@#h`$@ E@@@ :S@@ h`@B@@@7# E@@G@K 4@G@ K@@@B+@ H@@@@$"T * 5@@#@@A(!$@d5C%$@O@(@5 |@Ah @+@ H@@@@$"T * 5@@#@@A(!$@d5C$@7@(@5 |@Ah Y@ڙU$  @_IT#GK9_  (@9@@b'B|@Ak @b'B[_kaTA`'c>K`'G@9`' @a!@AW@ [@D@'@C@+ M3C@'@ +@N@@b'B B@c+ F@@@@9B_ 9G@_J_/"B* l4@_/@cg9G@_J__J_vy @_iT#gk9C9w@96?kw@g@9@@ @#D9b7C3@w@ @@@@@@  @97@C@3@B w@ (@a5@a{@b @@@/?0 m4@(@5w@#w@"4/@ [4@(@5w@#w@"Ԙ/@_T?@C99g@_N_C99g@ _N_@C99g@_N_?@Cw@+?`#@;T @O@S@G@'0 @ '@<@@! @ ? @G@7B @7@@(@5G@AG@]@A @5{@@@@{@Q+_L__L_!7C;/3&C@;Tz@@@#C@;T?@9C@7@/@3@;@g@o@&w@@@#C@;T?@@/@"3@cT;@G?:;@ @@#@G@/@?@&|Ӡh&(!&@f5 ~o@C@g@7@BlTfvO@ @?T?@T9_!?(Tha84(@9?qT,@9?qaT0@ @?@aT9_!?(Tha84 (@9?qT,@9?qaT0 @ @_)0T#3@#/@c#)hc8qT(?-T@9lq T?,T @c9_@ 3@@/@9 @A !/3@ (!!@5/@@/@c~!+GK_E_ c91@! 3@_T@T_$T?c$T$˥@/@@_"T#@!! ` c9@3@@? T"/@ c9@@@3@?CT#@7@;!!/@?C_E_ր` @! !D 3@ (!!@5/@@/@}!+GK_E_րA @! ! 3@ (!!@5/@@/@}!+GK_E__ T/@ h`8qT @A !/3@ (!!@5/@@/@}!+GK_E_ր @ !3@ (!!@5/@@/@}!+GK_E_ր @ !3@ (!!@5/@@/@t}!+GK_E_ր @ !43@ (!!@5/@@/@U}!+GK_E_ր @ !3@ (!!@5/@@/@6}!+GK_E_o}}}}@}o}l}b} Gtz @_ LT~#@T@"@y; R_k` T+ TDT@ " B:~J@,T@@nRr?kT@?TnRΦr?kT@?M@@Rr?kT@?DRΦr?kT@?=@@ " B@@T@@y; R?k!T@9_qT@@ ; R?k;T@9?qA;T@@@_B@cG@@ynR?kT@9_qT@? R?kA8T@9?q7T@?@(@ @#@@@@@@f4K_@@ @@@ #@'@+@'@@0K@_@@@g s@gkosT"@y; R_k T? T2T " B:~@T@@nRr?k@ TnRΦr?k Tl@@Rr?k TRΦr?k` Ta " B@w@T@@y; R?kT@9_qT; R?ka)T@9?q)Tj @w@{@@@A(@a5C|@@A@a5C A`{!R@@ynR?kT@9_qaTB @w@{@@@A(@a5C{?@A @@A@a5CA{!(R?kaT@9?qT @w@{@@@A(@a5C{?@A @@A@a5CA{! W; @;@(!!@5W@ W@{@_@_K_@@ @/@3@#@'@+@/@C`TG[@@A@C@&;@@@ @9[@C@G@ ''@@@`T! @@#@C@aQ (!!@5C@;TcSO C,S@c@O@@!#@hc8qTcc %@!ѡha8?qaTcc@% #_@K@y#@/@'@+@3@_@__@__@__@_@@ @!_@_ !\! @ %@@ @!* ±q @_iT#@@A @'B@?T@y; R_k@T#+? T?!T  B:~@T+@@nRr?k TnRΦr?k@ T+@@Rr?kTRΦr?k`T  B@@lT+@@y; R?kT@9_qT; R?kAT@9?qT` @7@;@?@@A(@a5CNzC@G@A@`5C @`CzKO_F_+@@ynR?kAT@9_qT @7@;@?@@A(@a5C"z#@A C@G@A@`5C@zKO_F_ֻR?kAT@9?qT[ @7@;@?@@A(@a5Cy#@A C@G@A@`5C@y KO_F_ !\! '@$@@ @!* ԰ p @_T~#@ @@@@d@ET&@߼ TT!@?`TB&!::@B@@?@@ 09 @ >@@@&c=d@@|c@T3/C ezC@/@3@|@9Sx@9#~TGKO@_cgk@? T+ @@+@@@'&!:"@} T+@ #A ?#@GG'@$ e~m?@ $@@@+@@@'@ -k@+@@@+@@@A49@@A89 ՟_@_ ՙ_@_/p> @_ T#@ ?T@ h`8q Tq T3@T/@@-R{r?kT@y̍RkT@`@@#@ ?C@9@ @@@ҁ`@@#@? @`'@`@@+@? @79_B_79_B_#@9#@9`@`@#@? @79_B_79_B_79_B_7@9_B_79_B_x o{ @C_)T#W@[@ _@c@g@k@w@{@#a'@CA9O@S@ W@[@o@s@9_@'c@+g@/k@3@7;@?@C@_I_go @_(T#g@To@''@@@k@s@_T_@#TxATo@ '!'"@#@!@k@ s@q@9&<@@@k@o@s@_AT#@9$@9%@9& @9&=@A|@ T7W3?9;97939 x7@W@3@?A9;A97A93A9|9999| _@T||҃/G ' {@ @K@;!!9 @w@;@/@?@|!0G@TO xO@!;_L_ @[@;bB @|a !4;@ (!!@5[@@[@w!+_L_k@o@ s@@[@;bB @ !|;@ (!!@5[@@[@Ww!+_L_+K @w@+@?~! K@TS  xS@!:_L_ G@[@;bB{ @|a !4;@ (!!@5[@@[@w!+_L_Ҷc(T$hc84#(@9qaT#,@9qT%0~n @_ T#?C@d"#?@?@T wC@#@"?@??dT '@!0 ?#@K$@@@9AC@#@?TG _G_` @ !T!C@ (!!@5?@@?@vG!+KO_G_v m @_T#[@ATW@  B:~@TW@@nRr?kTnRΦr?kaT@ !W@@Rr?kTRΦr?kT@ ![@W@/K'BB@c6 #@@@9Cc@d"a+_@`T  wC@+@"c@_@?dh T 0C@ +@#@@@9Ac@+@?Tg _J_c@`h @G~A !X!K@ /@A!@_@c@f #@'@G@ (@`5#"@ug+ko_J_1v mU @_iT#'@@ @!@ ?Bc@9_D_'@@ @!@+@ /@ ?@@37_D_l @C_FTC~#@';@@! @ ? @@KbB @K@@(@5@A@u@A @5@@@@@u@@9+_@C_@ R@@@@@o;?3W @;@@?@@(@5o@Ao@Uu3@A@5W@@ @`W@Iu@_@C_@@@c% (c  ?@@B@T[!:@@@@@ ? w @!+(!"@5@ @u@@@c# (c  ?@@B @T_' @"B.M @!@$_@?@!(BC@5@ @t(B_@D@5@ `@t!; E@k@g@@ @EХ@@@&'@7#@c(B @ @`@&B ;C@{9a@S 1 @!9@(!"@5g@_@ @g@t`_@t@$@5@@t@!@5@@ytS@c@ 7@}@{@9 Հ(  N@@@ ? @{@c# @9P@ AT@`@&! ;!@;9 @c@ 7@ѣ@9k@@@? | `@" {@k@-@@@? @C@w @'c%d@c@@_ATs 2@9'B9@@A@C@w@@s@&cd@c@T @9&B#@@A@C@w@[@Z@O/B@9@?/@O@_@C_@;Tk@@@?[@@A@@c_T"@$@!@ [@@@@@@@cE9@@ 9?@@@cE9@B?aT@@@+` @+@_@C_ @6 j @_T#@ >@@@?_B_j @_iT#GK9@@A @B@C@D@E@F@ g ?K( G@9&<@G@ ?/@C#@'@+@3@? @!W[C@_?@c9G@f_J_ֲ_J_)j @_I T#@6[@ @[@?T#W@ cgk_J_@`#@;T#@;T` @|@@#@h!(BE@e5#! r(B[@?LTi @_T#K@O@ U @@9G@ !? TC@"@ynR_kT#@9qTR_ka T"@9_qTGTC@  B:~@,TC@@nRr?kTG@C@nRΦr?kaTG@C@C@@Rr?kTG@C@RΦr?kaTG@C@7@;@ ?@K@O@A#@'@+@'@SW[_F_G@` @@a ! G@ (!!@5C@@C@GrS!+W[_F_T` @~A !O@ (!!@5K@@K@&rS!+W[_F_S _F_CiN @_T#W[9@   ] @@Ka!"[W@9 @9 @@ _L_K@ @9 @@@3G `c9@3@_bT3@G@ ~ @@@T#@$ @ 9W@. _L_*Tghf8qTqhT@_@+T_@@#'C/+'@#@$@Х0 &@9`/@'@C@C@D@Х0 ) @/@+@{C@@'@B_MT?S@@;S@O@7'@0 @9`/@'@B0 O@7@@/@;@?@TZq أ_L_oh. @_T#р(`߈5(``% 7/@3@ >@@@7;?_D_Kh @_ T#w@@@@{@@ @@@@?'@+@@#@#~T{@ @@@@@+@/@#@'@7;'B%C@B@T @9'B9@@A@7@;@&BC@B@T @9&B#@@A@7@;@_N__N_g @_iT~#@@9@ @@@@@z#@/@'@+@3@_@_ Ձ(!!߈!5(`% @&!;!@ @@@@@ @@@@4@+@#@'@/@A9@@@ @@@@@#r'@@+@/@@_@__@_Yg @_ T#G@@9` Հ(߈5(`% &;@%@@K@O@ S@W@[@_@H/@#@#@'@CA9a3;7S@W@ [@_@ @@A3@;@7@cgk_H_c _H_S@W@ [@_@ @@@cgk_H_f @_T#} h@@mT>xx '_D_ր>'_D_f @_)T#?@@@C@ G@K@@@@@@@e '/3'ƀ3@@?`T@ + @9@3@/@+@'@a@ @~ !7?@"@C(@B,@ (BD@d5@Oo(B$@4@0@D@d5Bo(B!@#<@!8@A@a55o(B3@ A@5/@$ /@)o,'@OSW_G_O&S@`W_G_?fz @_I T#7@` @! ;@ ?@C@@@@@'#+@J @ !|:7@"@C(@B,@ (BD@d5@n(B$@4@0@D@d5n(B!@#<@!8@A@a5n(B+@ A@5'@$ '@nc,#@GKO_F_G&K@`O_F_e @_ T#'@ @ X @@ @@ @ !H#'@"@C(@B,@ (BD@d5@vn(B$@4@0@D@d5in(B!@#<@!8@A@a5\n(B@ A@5@$ @PnB,+/_D_ր&+@`/_D_ie@@0@4@ __@@8@<@ __ @_ T#7@ @  ;@ ?@C@ ?@@@+'@Y @@ !7@"@C(@B,@ (BD@d5@m(B|!@#4@!0@A@a5m(B+@ A@5'@$ '@m!,GK_F__F_ր&G@`K_F_d @_ T#7@ @  ;@ ?@C@@@@@+'@ @@ !7@"@C(@B,@ (BD@d5@m(B|!@#4@!0@A@a5wm(B+@ A@5'@$ '@km!,GK_F__F_ր&G@`K_F_d @_ T#7@ @  ;@ ?@C@o@@@+'@ @@ !7@"@C(@B,@ (BD@d5@m(B|!@#4@!0@A@a5m(B+@ A@5'@$ '@m!,GK_F__F_ր&G@`K_F_d @_ T#'@@ @ +@ @@@@( @@ !'@"@C(@B,@ (BD@d5@l(B|!@#4@!0@A@a5l(B@ A@5@$ @l!,/3_D__D_ր&/@`3_D_c @_ T#'@@ @ +@ @@@@ @@ !'@"@C(@B,@ (BD@d5@\l(B|!@#4@!0@A@a5Nl(B@ A@5@$ @Bl!,/3_D__D_ր&/@`3_D_Xc @_ T#/@@ @@@@#@j @~ !D0/@"@C(@B,@ (BD@d5@k(B$@4@0@D@d5k(B!@#<@!8@A@a5k(B#@ A@5@$ @kc,@37;_E_b @_T#р(߈5(@% (@@_B_b@ @$@ _ @_ T#?@`@@@ @ @@#@'@?@@@3/@? @@3@ /@BB@#@'@?@@@  @@  @@@@/3?@C@D@c@`? @@3@ /@@@?@/3 @$@c @`? @@3@ /@ B8#@'@CG_G_ hCG_G_Dbs @_ T#'@ @$@B7?aTT@ @B6 "@@a! @ ?C@9C9_D_6 @@a! @ ?C@9C9_D_b @_ T#'@@@_T"@;lR{r_kT!@yR?kT @$@c&?aTA@AT?`T?T@C9_D_ @$@bB7?aTT@ @B4 @@a! @ ?C@9C9_D_4 @@a! @ ?C@9C9_D_a @_ T#?@@@@ @$ l } !8#'+@/@CG_G_|aC9_C9_ @_IT#?@@@@ @`$  } 8#'+@/@CG_G_ hCG_G_BaC9_C9_ @_T#@ : |/@3@C@@7;_E_ac9_c9_ 3 `_@C9_@C9_ @_)T#7@@ @ cL7 @ 7@@@@@  ~ #@'@7@@@  B8#@'@;?_F_ h;?_F_`@@9C9_@@9a@@9C9_ց @_iT#?@/C@3c @@ G@K@L'@+@#@OSW_G_` @_)T#р(߈5(@ $ O&@c _B_g` @_T#&@ _B_S` @_T#c@_@T@C9_J_!##@;Tc@#@;TA9dX?@C@T@{R{lrkT@ylRkT@9qT Х΍R;̮rkT@y;,RkaT@9q T7 T@қάۍTN;/,;T}% c_TG@K@Tf@[RrkTc@y[΍RkaT@K@G@`T# @9#@@@ңBLTC9_J__w @_T#@@@_C__ @_ T#?@@@ @T%hd8(qaT#'/ b#@@B@#'@!@@a/@g+3 :i@/@'@3@+@cT?@ (!!@a5 @hCG@C9_G_@9_T )@@?@_@CGC9_G_rh G_ @_ T#?@ @@@9 ?@@ @@?jT+@e5 B$cJ#@'@@"?@d @+@cTe?@&B3D@B@`T 3/ @9/@?@3@&B4D@B@`T @9?@`@`9=@9 @@CGC9_G_CGC9_G_h ^ @_IT#7@;@ #@@@@'5 p@+!  @(@5'@A'@~g_pA @5+@@@ +@qg_9?_F_?CG_F_^ @_iT#?@C@ @@@@@$OSW[_G_#/@@? @+@'@3#@c@/@`? @+@G'@K3@OS _G_U^ @_T#'@"h`8/@3@ c9@@@+@_T7_D_.^ @_T#7@;@ ?@C@@!*' `@+!;@T#7@ha8?@C@ c9@@#@jT T$7@@'@ T+@d(@5|ӣh'f'@d(+@7@@'#@'@d(+@7@@@-TTE7@'@TDd(@5d|h$fc'@TGKO_F_fffff ]n@ @B?mThb8qTqTф@ӃqTqTф@Ӄc( qTqTф@ӄ(_@ T9_֢9_@9_ @@B-T#hb8dф@ӟdq(Tc#h"8_ց @_T##@@_,T ?CT#a@`_T@ #9_B_cjTDhc8ѥ@ӆdqĐhc8@ӧdq吅@ӥ@ӿkT@Mf ] @_T#  @ @#@7K@c$˄TTd? Thd8qTd? T%ˆ Thf8q`T@T+/;a!G@ @9@#@K@+@/@;@7@@3 _H_?*Tha8qjT$ ' H#@3@'@@qT?hTOS_H_OS_H_eeeee \ @_I T#3@@/@"@9_qTBB@! _qTBB@!#979_E_*T%hc8qjTc 7 H#@@#@@97@$qTRkbTӤkhT1)T 7@9_E_RkcTw@RkiT*_k79_E_.\ @_iT#OS9 / I@@KA!"SO@9@9 @@ _K_K@@9 @@ 3G `c9@3@_bT3@G@ ~@@T" @#@ 9O@_K_֥*Tfhe8qTqhT@_@+T_@@&TT Tfhe8߼q!T'/;&@d6 A!+˥b?@@@9@C&!"@cc6 ?@+@@[9`(@5C@AC@[dC'@B_T_T7A|;@ahad@e0 @/@C@'@7@}dd Ɩ_K_][0 @_)T#`(߈5`(@% #/@3@ 7@;@@@@?CG_E_3[ @_ T#/@@ @ 3@ /@@#@@@ A @a! !7/@"@C(@B,@ b(BD@d5@cb(B|!@#4@!0@A@a5cb(B@ A@5@$ @cdЄ,7;_E_`&7 `;_E_Z @_ T#/@ @ 3@ /@@#@@@  @}! ! $/@"@C(@B,@ b(BD@d5@ucb(B$@4@0@D@d5hcb(B!@#<@!8@A@a5[cb(B@ A@5@$ @OcdЄ,7;_E_`&7 `;_E_hZ @_ T#/@ @ 3@ /@@#@@@ u @!! !/@"@C(@B,@ b(BD@d5@ cb(B$@4@0@D@d5bb(B!@#<@!8@A@a5bb(B@ A@5@$ @bd,7;_E_`&7 `;_E_Y @_T#@ @ ,R@@A4y'_D_R?k*'_D_Y @_iT#g@k@ o@@@@@3g@ k@C99@@@ k@T 9` @3@k@?9A99g@ c@,b(BB@5_@(@_@db?7w@" @ T?T?aT@7@w@ {@@E@@@;K7@K@;@_J_7@_J_ {@@@@@KC7@K@C@_J_7@_J_@W@ [@{@@@#5'@+@'@K?7@ĿK@?@_J_7@_J_KG`&:@@@3@?K@G@_J__J_Y0 @_XT#@  @`(@5w@Cw@aC@@@@? @@C@w@@`(@  @@? @@`(@C@w@@g,@h(@T @΍R; r?k`T !T @΍; L;? T(T @΍; .{l?T @yR?k`T LT ii8?qT?q`T;_i@? T -@ @@C@;@_@  @ @@C@;@_@@@@ !?@#@@bE@@w@"@@ ?@@@@@@eBK7w@@ 0S@@@<7@K@@ K7@w@C@@ ?@@@@@w@{@ @7@K@+@/@#@'@+@@w@ 9_N__N_w@(@,@ @97@@@"4w@?c @N @@?@w@d@!Td @TD&!TD`&TD&`Tx!Td @TD & TD@& TD&D#@ @?w@@@O@k?!T @?TA!&!?TA!`&?TA!&?`T?x!T @?TA! & ?TA!@&? TA!&A! # @?@c@ ?@@k@w@A0a(!$@5O@D4 DO@]`@8 @`5C<@R` @"b&kKw@@R @@ @bGgw@C@!TC @TCc&!TCc`&TCc&`Tx!TC @TCc & TCc@& TCc&Cc@#`@k@K@ ?w@@@W@k?!T @?TA!&!?TA!`&?TA!&?`T?x!T @?TA! & ?TA!@&? TA!&A!`# @g@G@ ?@@k@w@A0a(!$@5W@D4 DW@_@8 @`5C<@_ @"%gw@@?!T @?TA!&!?TA!`&?TA!&?`T?x!T @?TA! & ?TA!@&? TA!&A!# @k@K@ ?@S@kB:@ @8@@k@w@A0a(!$@5S@D4 DS@Z_@8 @`5C<@O_ @"_%_N__N_[k@? @~ !d-k@a(!!@5[@ `[@"_a!7_N__N__N_ R_ 7V6 @_ ,T#G@@j @@ @)K@@G@C@O@ ?@@@@@D'W@`;3 ; @`(@5G@CG@^/a,@d(@?T@΍R; rk`T? !T@΍; L; T?(T@΍; .{lT@yRk`T%?!The8qTq`Te@T -@@@   @@@+'K@@O@?W@@@ @@+@'@ !/@?@#@@b;@3@G@@ ~P@@@7;@? @~ !d-;@a(!!@57@ `7@V^a!7[__H_`& <@@@G@"@S@ ?@@@7;@? @ ! ;@a(!!@57@ `7@)^a!7[__H_G@(@,@ @9m@@@" G@@L @@G@C@!TC @T#c&!T#c`&T#c&`Tx!TC @T#c & T#c@& T#c&#c#b@ @?@@G@ 0`(@b5#4"]?8@`5?<"]  "# _H_[__H_[__H_[__H_[__H_] T @_I3T#[@ @BRr+ T[@! a T_@@@@c @9_@`(W@[@_@UW@@! @@ @" @K`(@5_@@;T  _@ `(W@$@T&'@@@K@ED@d5CF]xTd&;@@@K@ED@d5C6]K@c gk_J_W@[@_@W@[@_@G/`@$@ ?@@@@@!c@`C; g @`(@5W@CW@]7a,@d(@?T@΍R; rk`T? !T@΍; L; T?(T@΍; .{lT@yRk`T%?IThe8qTq`Te@T -@@@   @ @@+3/@@G@?c@@@ @@3@+@ !7@?@#@@C@;@W@@ N@@@?G@? @~ !d-G@a(!!@5?@ `?@\a!7gk_J_W@(@,@ @9Ƹ@@@" W@@^J @@W@C@!TC @T#c&!T#c`&T#c&`Tx!TC @T#c & T#c@& T#c&#c#b@ @?@@W@ 0`(@b5#4"-\?8@`5?<"%\  "6" _J_gk_J_gk_J_gk_J_I\ .Sa @_ T#;@xT?@? aT #@9?@;@?@B CB9C7@! a~jP;@?@?`T? TTG@G7@ {~TP@@@+'@? @A! !+@a(!!@5'@ `'@[`7GK_F__F_R @_)T#G@G7@ ~~P@@@+'@? @A! !+@a(!!@5'@ `'@a[`7;?_F_R @_I T#K@K?@ ~#~O@@@3+@? @A! !3@a(!!@5+@ `+@$[a!7CG_G_O@O?@ w3~O@@@3/@?Z @A! !3@a(!!@5/@ `/@Z@7CG_G_R @_T#/@9 A3@ @@@cc&_!T # ? @A !#@a(!!@5@ `@Z@77;_E_Q @_T#/@9 !3@@@@cc&_!T # ? @A !#@a(!!@5@ `@mZ@77;_E_Q @_T#/@9 }A9@@@cc&_!T # ? @A !#@a(!!@5@ `@)Z@77;_E_GQ @_T##;@@CG#7@9 y@@@cc&_!T +' ?G @A !+@a(!!@5'@ `'@Y@7?C_F_P @_T#`(@9@b(B@Cc @b(B@D_D6`(0C9K`&@<@@@7@;@ ?@?@@'@+@#  @2P@'@+@#@ d(@9e(@ e(@_F6`(=@'@+@#@ ? @ !<+@a(!!@5'@ `'@ZYCA!7GK_F_@C9eD@@@"+'`&:@@@@? ? @a !8+@a(!!@5'@ `'@*YCA!7GK_F_@C_F_EPL  @_ @C_T#o@ @@@  @@o@W7@#  @Ro@@@ @[@;#W@ 7@  @E#@c'@C Bc9@p8 @c@C@ [@#;@'N+@/@c@ C@ @[@;@#@'@sw_M_ @ @_@?W@7@ Dc9o@p8 @W@7@ _@#?@'+@/@W@ 7@ @_@?@#@'@sw_M_ hsw_M_OM @_ T#@@@@@ @99_C_@9_C_hO @_ T#@@ @`(@5@@@ X#'_C_`&+`/_C_8O @_T#7@@ ;@ ?@@@@@@@e '+&ƀ3@@?`T@ # @9@+@'@#@@a. @} !$7@"@C(@B,@ b(BD@d5@Wb(B$@4@0@D@d5Wb(B!@#<@!8@A@a5Wb(B+@ A@5'@$ '@WE,@CGK_F_C`&G`K_F_N} @_I T#'@@a  X@@@  @ !H#'@"@C(@B,@ b(BD@d5@ZWb(B$@4@0@D@d5MWb(B!@#<@!8@A@a5@Wb(B@ A@5@$ @4WA!,+/_D__D_`&+`/_D_JN @_i T#'@@ @ @@@ ] @ !H#'@"@C(@B,@ b(BD@d5@VB(B$@4@0@D@d5VB(B!@#<@!8@A@a5VB(B@ A@5@$ @VA!,+/_D__D_@&+`/_D_M @_i T#'@@ +@ @@@  @@ !'@"@C(@B,@ B(BD@d5@VB(B$@4@0@D@d5xVB(B!@#<@!8@A@a5kVB(B@ A@5@$ @_VA!,/3_D__D_@&/`3_D_uM @_i T#'@@ CA9C9@@@  @@ !'@"@C(@B,@ B(BD@d5@VB(B$@4@0@D@d5 VB(B!@#<@!8@A@a5UB(B@ A@5@$ @UA!,/3_D__D_@&/`3_D_ M @_i T#'@@ +@ @@@  @@ !'@"@C(@B,@ B(BD@d5@UB(B$@4@0@D@d5UB(B!@#<@!8@A@a5UB(B@ A@5@$ @UA!,/3_D__D_@&/`3_D_L @_i T#'@@ CA9C9@@@  @@ !'@"@C(@B,@ B(BD@d5@AUB(B$@4@0@D@d54UB(B!@#<@!8@A@a5'UB(B@ A@5@$ @UA!,/3_D__D_@&/`3_D_1L @_i T#'@@ @GR;4rkAT'@A!: T+@9!@ @~@@+@ A(!!@a5CT@@ /3_D_ȊRr+T'@A!;aT+@@&B  ^@@B @|@@+@0A(!$@d5CT@@ @@ @5@@@@T/3_D__D_K@ @@T@T  _Ҁ _ _(T"h`84 (@9qT ,@9qT 0 @_T#?@`@@@ @@@C@ #@+@'@/@GKOS_G_ _G_kK @_ T#/@9A!- 3@7@@@@;?C_E_LK @_T#&@:@@7@"0@!4@;@?@ C@G@?@#@'@KOS_F_7@;@ ?@C@G@@@#@KOS_F_K @_T#g@0@4@,@k@o@ ! s@w@#@'+ //~37F;@?@C@k@w@s@g@o@"0@4@,@  #@'+ //~37%?@C@K@;@k@w@s@g@o@KW JT @i >[O h@9`O@A!,[@EХ7ƀ@ O@A!,T[@d @b$@[@EХ7aTD@B @D@ƀTB@_ƀw@s@g@o@K@W@k@ I k@w@s@g@o@a @S@(@5W@@W@3S@C9S@{_L_{_L_LJ? @_T#3@`/@4@0@B<@8@_TAT @b @_`T @"@!@d@e@c@ \@99_E_@9_E_9_E_ :V :N I @_IT#7@9  " ;@?[sBYCkc|Bc\b@@@Cc&?T'+  ? @A !+@A(!!@5'@ `'@RBB7?C_F_7@ |@@@@Cc&_!T #+ ? @A !+@A(!!@5#@ `#@`R@7?C_F_~I @_T#/@9 @A9x@@@Cc&_!T # ? @A !#@A(!!@5@ `@R@77;_E_;I  @_ @C_T#o@ @@@   @@o@W7@#  @Jo@@@ @[@;#W@ 7@  @=#@c'@C Bc9@p8 @c@C@ [@#;@'F+@/@c@ C@ @[@;@ #@'@sw_M_ @ @_@?W@7@ Dc9g@p8 @W@7@ _@#?@' +@/@W@ 7@ @_@?@#@'@sw_M_ hsw_M_~HM @_ T#@@@@@ ػ@99_C_@9_C_`H @_ T#@@z @@(@5@@@Q#'_C_@&+`/_C_0H @_T#рN @7@;@ ?@C@@@#@'@GKOS_F_ H @_ T#G@@ K@ O@S@W@@@#@'@#@ /;37 @~ !7G@"@C(@B,@ B(BD@d5@PB(B$@4@0@D@d5PB(B!@#<@!8@A@a5PB(B7@ A@53@$ 3@P;@D,/@[_cg_H_[_@&c`g_H_G @_)T#р @7@;@ ?@C@s@#@'@@cG` KOSW_F_G SW_F_cG @_T#_@@a c@ g@k@o@s@w@#@'@+@/@3@7@3@ GC?SOKc @~ !7_@"@C(@B,@ B(BD@d5@OB(B$@4@0@D@d5OB(B!@#<@!8@A@a5OB(BK@ A@5O@$ O@OC@?@S@F,G@{_K_{@&`_K_F} @_ T#?@@ C@ G@K@O@@@#@@ +/3 @ !|:?@"@C(@B,@ O@_DE(Х@f5@yO!@#4@!0@@a5kOa! !@a5_O3@ @5/@$ /@UOCc,+@SW[_G_S@&W`[_G_kF @_)T#?@@!O@bB ? TC@ G@K@S@0@@#@@ /+3p @ !|:?@"@C(@B,@ S@_DE(Х@f5@O!@#4@!0@@a5Na! !@a5N3@ @5/@$ /@NCc,+@W[__G_& @ !|:?@"@C(@B,@ B(BD@d5@NB(B!@#4@!0@A@a5NB(BO@A@5S@S@NA!& !`$WA!,[__G_W@&[`__G_EJ @C_ T#O@@ S@ W@[@_@c@g@k@#'@+@/@3@/@D ;7C? @ !|:O@"@C(@B,@ k@_DE(@f5@EN!@#4@!0@@a57Na! !@a5+N?@ @5C@$ C@!N7@D,;@osw{_I_os@&w`{_I_4E @_$T#@ AT@"@yR_k!T"@9_qTAT@"@Rr_kTRΦr_k!T@ @@c~T@g@kos& @!@$ @@w@#@@@ +3 @~ !/@ @?#B(BD@5@ @@M?B(Ba! $D@d5MB(BA@5@@MB(B3@ A@5+@$ +@~MA!,_O__O_ @~ !/@ @?#B(BD@5@ @@VM?B(Ba! !A@a5GMB(B|&! ;#@&!;!@ A@a5$ 7MA!,_O_@ @~ !/@ @_C@F(@_5@ @@M h!  @i5M/@d5L &@@/@ @(@`5#$" L@,_O_D @_i T#'@@ @GR;4rkAT'@A!: T+@9a! @~@@+@ A(!!@a5CL@@ ` /3_D_ȊRr+T'@A!;aT+@@&B  6@@bB @|@@+@0A(!$@d5CL@@ @@ @5@@@@wL` /3_D__D_C@ @@T@T  _Ҁ _ _(T"h`84 (@9qT ,@9qT 0 @_T#?@`@@@ @@@C@ #@+@'@/@GKOS_G_ _G_CC @_)T#g@@k@ o@s@l@@@@#@'@@ /;C@GR;4rkTCc:_ Tw@[9# !@F(@5_|_|_|C?3` w@?@K/@3@C@;@~CCA 9ȊRr+TA!;_T7`@&!  ]@@ 7@C0G|KOB@SW[w@;9@(@5#@;T` #N/@C@;@w@{_L_Bz @C_T#o@@s@ w@{@@@@#-'@+@/@7@3@7@;@?@3@ OKGc_@GR;4rk!TE: TS{9` @~@@S@ A(!!@a5CJK@@ O@K@_@c@G@>ȊRr+TCc;aTW@&!  β@[@CbB @|@@W@0A(!$@d5CK@@ C@@ @5[@@@[@KO@K@_@c@G@_M_%Bl @_iT#7@@" A9BG@ @ @@@@@KOS_F_7@@;@ ?@C@,@#@'@KOS_F_֠&;@@KOS_F_֠&8@@KOS_F_A @_I T#G@@" A9c@c &8@@gkos_H_c@ @ I@@@@@gkos_H_G@@K@ O@S@W@[@_@#'+@/@3@7@gkos_H_֠&;@@gkos_H_~A @_T#W@0@4@,@[@_@ ! c@g@#'+ !//~37;@?@C@?@K| @@(@5K@@K@Jk _J_kos_J_9A@@ @ _@@@ _ h _@@@C9_ @_ T#@@. @@(@5@@@I`#'_C_@&+ `/_C_@ @_I T#'@@a  @@@  @ !H#'@"@C(@B,@ B(BD@d5@IB(B$@4@0@D@d5}IB(B!@#<@!8@A@a5pIB(B@ A@5@$ @dI!!,+/_D__D_@&+ `/_D_z@ @_i T#'@@ @ @@@  @ !H#'@"@C(@B,@ B(BD@d5@!IB(B$@4@0@D@d5IB(B!@#<@!8@A@a5IB(B@ A@5@$ @H!!,+/_D__D_@&+ `/_D_@ @_ T#?@@ C@ G@K@@@@#@@ '/+3 @~ !7?@"@C(@B,@ B(BD@d5@HB(B$@4@0@D@d5HB(B!@#<@!8@A@a5HB(B3@ A@5+@$ +@H/@$,'@OSW[_G_OS@&W `[_G_? @_)T#?@@ C@ G@K@;@@@#@@ '/+3 @~ !7?@"@C(@B,@ B(BD@d5@9HB(B$@4@0@D@d5,HB(B!@#<@!8@A@a5HB(B3@ A@5+@$ +@H/@$,'@aO`SW[__G_O [__G_O @&[ `__G_? @_T#_@@a c@ g@k@o@s@w@-#@'@+@/@3@7@3@ GC?SOK @~ !7_@"@C(@B,@ B(BD@d5@GB(B$@4@0@D@d5GB(B!@#<@!8@A@a5GB(BK@ A@5O@$ O@GC@?@S@&,G@{_K_{@& `_K_>} @_ T#?@@ C@ G@K@O@M@@#@@ +/3 @ !|:?@"@C(@B,@ O@_DE(@f5@1G!@#4@!0@@a5#Ga!!@a5G3@ @5/@$ /@ G#c,+@SW[_G_S@&W `[_G_#> @_)T#?@@!O@bB? TC@ G@K@S@@@#@@ /+3( @ !|:?@"@C(@B,@ S@_D%(@f5@F!@#4@!0@@a5Fa!!@a5F3@ @5/@$ /@F#c,+@W[__G_ @ !|:?@"@C(@B,@ "(BD@d5@rF"(B!@#4@!0@A@a5eF"(BO@A@5S@S@YF!!& !`$W!!,[__G_W &[ `__G_k=J @C_ T#O@@ S@ W@[@_@c@g@k@#'@+@/@3@/@D ;7C?m @ !|:O@"@C(@B,@ k@_D%(@f5@E!@#4@!0@@a5Ea!!@a5E?@ @5C@$ C@E7@$Є,;@osw{_I_os &w `{_I_< @_iT#s@!To@"@΍R; r_kaT@ aTo@"@΍; L;_T(ATo@"@΍; .{l_aT"@yR_kT@AT@@,R;rk TOw@#`@{@?C@9s@o@O@s@o@O@w@{@@[S@@?C@9 s@o@O@S@[@s@o@O@S@[@@@_ATc&;@@_L_!T@@-R{rkT@y̍RkT@w@@{@g@k@ @9'+/3@7;@?@C@?@_L__L_@ ' X@W@KB` @K@@ (@5W@@W@D _L_o@ $@!!_L_<( @_)T#@!!;T&) @#@@@@ (@`5CD~@ :@`'+_C__C_; @_)T#@!!;T& @#@@@@ (@`5CD}@ L)@`'+_C__C_; @_)T#@!!;T& @#@@@@ (@`5CeD@@ @`'+_C__C_;@ _ @_iT#@   @@@@@ (@`5C4D ;'+_C__C_Q; @C_ T#O@@S@ W@[@x@@@#@'@@e @;JR[3rkT%Х;?TA@;3?CO@!@! @?T !:~ ?T !L)}?aT !E7/&8 @;@@@@ (@a5CC/@A @57@@@@7@C3@C@?@_cgk_I_`*0 z : @_T#w@@{@ @@@@@#I+@S'@O/@K3@3@7@[;@k?@g;@?mT@c Tc_@ O@S@K@c@_@[@k@g@C c@;JR[3rkaT#c;T@cw@c@c @T c:~ T cL)}T cDWG& @[@@@@ (@a5C;CG@A @5W@@@@W@/CO@S@k@g@K@_N_`*0 zdC 9:d @_iT#7@@" A9B G@ ! @?T~ c: ?T} cL)?a TA cD @E@?T ®@9`K &O S_F_ * @G@@@@ (@`5CB7@@;@ ?@C@ ;@#@'@KOS_F_֠&;@@KOS_F_֠&8@@KOS_F_`*0 y 9 @_ T#G@@" @_T! A9&8@@gkos_H_c@a_T~ c: _T} cL)_a TB c$ @%@_T 9@9gk &o s_H_  @c@@@@ (@`5C[@ _@ @c@g@S#@'@;@ (@`5#"@>[A9 9k +os_J_@?qT?xqAT@@yZk _9K@@@?_J_@@yZk _9K@@@?_J_ @;~ !X![@ _@ !@c@g@#@'@;@ (@`5#"@>k +os_9K@@@?_J_>  q_J_5 @_T#@@! @!@ !(!!@5@ @Y>#_C_5 @_IT#@@!: @'_D_F5 @_IT#3@?)T:;@ h @9!?@ BB:$B @ X/@ ;@?@+@@GK_E_I> .5 @_T#C@G@ K@O@S@@@#@++/3?@C &_G_ 5 @_1T~#9p%@9!!  @@@b B@bhb8qTq@T[B@_qaT_qaT`5@3 @@S!: @WS@3@ [@~@#@35W@9 @@9W@@a @C1 @@@@@@MT"hb8_qT   @@@W@@b_ qAT&;@@@_,qT@ & @?J @!!?@ {9w9@@B @@? @O@;Bt @;@@ (@5O@AO@=@A @5@@@@@={A9@9wA9@9 +9_@_@?qTC?q` T?xqT@K;9" | @G@;@7K@c@&  m@@ oG@_;@c7@gko@@@T @@#@Q (@5c@;T  K (C@@;9!~ @@@sw{@@@T D@@#@Q (@5@;T   (C@h@9@@@?9_@_n_@_r3m @_T#@@! @!@-!(!!@5@ @)<#_C_O3 @_IT#@@!: R@_D_3 @_iT#3@?IT @9!:;@ BB:$c ` / @9!?@ BB:$B @ /@ ;@?@+@@GK_E_< 2 @_T#[@_@ c@g@@@@#@'@+@/@K37;?CGKW@ _J_2 @_)T~#@@@ ? @`@@ 3@? !@$ @@@@s@@@ ? @ ?@W[Oc @9X@@ T@;T_@c@g@s@w@@C9_@_@@@? @7@C @&c%d@c@@_ATKG B@9&B9@@A@7@C@K@G@#&cd@c@T -@9"&B#@@A@7@C@C9_@_@@ @@@+@@@/@@C9_@_  2J @_T#3@@TT!/@@99@99@99 @99$&Є=@@f5| @@909@949@989@9<9|;?C_E_ c9p@#/@ 3@;#@;3@?C_E_1 @_ T#G@@@?@C@ K@O@S@W@?@+@#@'@/@[_cgk_G_1__ @_T# &;@@9 (@9@y x' {yy P/ {y@9@y`  {y wy @ {y_B_S1_ @_T#M@!(!@ _B_<1 @_IT#I@A!  @ (@5&&B9_C_1 @_ɩT#Ѡ: @` !a!&B:A"(BD@5&Є:&B:9 @ ~` `&!9 !(!"@5&B9C&B99 @@` `&!@9 !(!"@5&B`9C&B`99 @@` ! aB&Є<$(@5&Х<&B<~9 @` `&!9 !(!"@5&B9C&B9d9 @ `! !a!&B@;A"(BD@5&Є`;&B`;J9 @@` `&!< !(!"@5&Ba!&B:A"(BD@5&Є :&B :8 @@` `&!@: !(!"@5&B`:C&B`:8 @` 08`&!: !(!"@5&B:C&B:k8 @ `! !a!&B;A"(BD@5&Є;&B;Q8 @``@ `&!< !(!"@5&B @`9`9y~&B )A&B@)A(BD@5&Є)&B)6@5 !@`9`9`9 9~&!) &!) (!"@5&B)C&B)6@'!0 B1~$@@0'@ B$2~@0'@ B@@0'@ c@@!0'@ B"@A(@5'@&BA&B'@<6@#@!0 B;@6#@ B@@[9(@5@A@60 @!0 B@@0@ Bt0~@{0@ B?@0@ B1~v@ 0@ B(h@a70@ BL)Z@0@ B`)L@0@ Bt)>@!|0@ B7~0@ 0@ B 2"@a|0@ BD9~@!0@ c@@0@ Bd@6#@ !@@[9(@5@A#@&BA@;5&B#@75 @ ` `&!@< (!"@5&B`""@cT#$ @_T#ф&@@? T(@5@ @c@ *_B_3+ " `Ҡ@  `@ @ ?|_ @_)T#@5 ?@a !T4!@G@"@W BZWW@"@[ BZ[[@#@_ cZ_ @cT A!5 ~|k@#@G@_@ # @S cZS_PTA!5 |T@#@G@S@#(@T7dP_TA!5 ?@#@G@7@3;P$@ O+G@(@7@A!P3@_CT,@;@ @@@KOS _H_֡*z* s!r @_)T#/@_T+@d@R&rk@T @!A !!7;_D__pA TA?Td@Z'@c3@ ~gA ? TchfcZ0cc~A0? ThccZ@cc~A@?C ThccZ Pcc~cAP?jTz@T *@@/@@3@'@?TB˄P$AP? cT`hd ڠ,@(_D_ր @a! !8.!7;_D_}**~ *~ *~*~*  b @_ T#' C@ ';@ ?@_cT7@+Cc57@ T@#@;@+@'@dh GKO_F_  @_T#р @ !`ҡ!`AA |A!`8#_C_~ | _z _ @_T#7@d,@?@d,`(@T Tz?&g@;@T+ *?@7@z@+@;@e(@e(T 7@(?@z@;@?CTC@%zC@;@TzT#' @@?#T%#@@ z'@&?@7@zT񠰄b@ T# )#@?@7@`(G _F_,)!)')z%) } @_IT#w@b@;T0 @@37@@/@_cT{@Cc5{@ k@#@@+k` |y)k@/@+@_N_ @_ T# KC9W@d,@ҥ˥@ T A? T}Ch&8ExU0xePxu9$? T  W@(@!@C@G@K @O#@'@[__J_@*` B_( @{( ҕ( ^@ @@Bz"aU@)A)|@|@|@|@(|@R[r  ()J) )J d|@ Rr  ()J) )J P|@ {Rr  ( )J) )J <|@ ݙR7r  ()J) )J (|@ Rr  ()J) )J d|@ [ŘRr  ()J) )J P|@ {ˆRr  ()J) )J <|@ ;Rۨr  ( )J) )J (|@ R0r  ($)J) )J d|@ Rhr  (()J) )J P|@ ۉ  (,)J) )J <|@ R+r  (0)J) )J (|@ [$Rrr  (4)J) )J d|@ {2Rr  (8)J) )J P|@ qR;ϴr  (<)J) )J <|@ ;R6r  ()J) )J (|@ (|@|@[Rþr  (J ) J *|@ |@l hRr  (,J ) J *|@ |@\ ;JRˤr  (J ) J *|@ |@H [R6r  (J ) J *|@ |@0 Rźr  ((J ) J *|@ |@l {RHr  (!_@_` @! ! !_@_` @ ~ !:!_@_$Tد @'#! _@9ɯ @K!ï @G! @C!0 @3'!!@A5'@ K@G@C@`'@MK@J G@F@C@C@0@4@8@[_c |c9Ɯ@9`@3@@c @9`@ 3@@c @9@ 3@@B @9 3@ @"@b!@9a@?T@"@b!@9a@?-T@"@b!@9a@?T@"@b!@9a@?T@1 @ !$4!_@_֡!?_@_@ @ ~ !9!_@_@ @ ~ !h:!_@_ @TAT@c4@?T@ @a !!_@_ ף@!7_@_@Ů @!A !H!_@__@_@0@4@8@OSWsc c@9 s@w@{@ 6@@@ ;?g@k@o@  5@@/+- @?@'!!@5;@/@+@  ;@@/@`+@A!_@_@] @! !5!_@_@J @{ !!_@_@7 @ !@!_@_ M @_ T#c c@9@ @ !\;!?C_E_@d 0$_$T@@#@kTC}ӥ_ Tbhd8B$ŚB0B@;_E_   @_iT#9# |c9@9 '@+@a@9qT# c@9 @'@+@!@9?qT#! 3@9@@@@997_D_@ @! !l97!;?_D_@ @! !?97!;?_D_@n @! !d?97!;?_D_1  @_ T# |c9@9@@F @ !(!!GK_F_;@#9 @9Ü@9C@@@#@'@+@@9y҄@ ?@@@GK_F_@ @ !|!GK_F__F_  @_IT#K W c o3@(#'C+c/3?@C@ G@{@@{_G_  @_7T~#@ @A@D@E@@T` Ta*Tc@ @N@G@3 9@c@@$@@T*  @@#@c@A'!$@d5C2$3@@'@5 |G@h G@ @s @ !!_@__@ @@O@7 /9@_@@$@@T* @@#@_@A'!$@d5C$7@@'@5 |O@h O@@# @! !\>!_@_` TT@`T@!T@%@@BT[) q@@#@[@A'!$@d5C@%! @@@'@5@@}@z@ P@@" B @C@/BBū @/@@'@5C@@C@a_@_W@ @J@;@+ {8@ ;@+@ @@@@ ?`@a@T o @9?@W@@$@@"T8 @@#@W@A'!$@d5C?@$ '@`5x! _@_ ;@+@ 4@!*gk $  #@ @@_@_KS ;@+@ @!*osS@@@wK@{ <" c@@_@_@ @|! !)!_@_ < @_ T# |c9,@9@ @! ! s!_K_c@3C/G7;K C c@9@ K@O@S@ S4@@97@";@cTG@?G@ @@#@?@7@x!3@/@C@/@3@cTC@B6C@ @@#@/@ˢ K@O@S@@F'@f5C7@;@G@@i @! ! s!_K_kosw{_K_ K @_T# |c9t@9@2 @A !' k!os_J_[@ /+3C |c9K@97 c@9@+@/@cT3@B63@ l@@#@+@@ 7@;@?@'Х@f5@۩ @A !' k!os_J_@ȩ @A !' k!os_J_cgk _J_g @@BT$hb8cd4qhTqTd4@TqTqTqTqTqT q`TqaT@qT9_9_@9_ @_I#T~#9@@@w{_ k {99 |c9@9{@`@C { 9ϖ@9`@  9–@9@@`c@ {B9`B9@o@`@ /W[W@k@o@s@ ?@@+@7@@@#@'@/@3@;@?@C@C@G@@%)'Є@e5!SS@=A@e59UY@`5Qmq@`5iA W@@@@ ?@@+@7@@@#@'@/@3@;@?@C@C@G@@15'Є@e5-SagS@IM@e5E![ae@`5]Oy}@`5uD 9_@_#E99_@_9_@_@ @ !?9!_@_@o @ ! 9!_@_2 @_wT~#@@    @@Mqsokgc_[W_9 |c9X@9j _@9@9i_A9q@)Tq Tq Tq`T@@9'Х[@W@@o@s@@g@k@@_@c@@@@ @@O 4@@8@O@ 7@3O@T@"@9_qATcc@#@ @9+c@_@cT@B*@ 0@@#@c@ O@E'Х@5|@i @Q[@W@@o@s@@g@k@@[@@ 9@@S j4@@=@S@ B B8 @@S@T@"@9_qATcc@#@ P@9 ~@S@ @93k@g@cT@B*@ ʪ@@#@k@"S@E'@5|@"i @[@W@@o@s@@ c@@_@@@@G TC$~ a<TC@˥|@|?;C m@9 5! @C@`G@`'@5@a@;@a?@a@5@a b`@s@$o@cT@ @ X@@#@'s@@ @g5x!~[@W@@g@k@@_@c@@'@@ a@@K 3@@7K@T@"@9_qATcc@#@ @9 0W@[@cT@B*@ @@#@W@bK@E'@5|@bh @&o@s@@g@k@@_@c@@-@O@ G@!*  c@3@@#_@_@O@ @!*@ 5 c@ @@#_@_! @ ? @@ B {@{@/BB @/@@'@5{@@{@ #_@_@S@ ƚ@!* `4 c@@@#_@_@S@ @!* `4 c@@@#_@_! @ ? @@ B {@w@3BB @3@@'@5w@@w@( #_@_@;@ ?@k@!  c@/@@#_@_ @! (| c@ @@#_@_@K@ @!* x` c@@@#_@_! @ ? @@ B {ݶ@@7BB @7@@'@5@@@ #_@_  @@#_@_ _@_O> @_)T~#AxAtA?T[ _@_քWk@;T@@/T@!/T@.T@ta.T @LT<T8T<TAA A 6@@@@Ap8[@W@k@>AA AoswcC ~c9v@96@@@A'@a5 [@W@k@DTLaTAA A I@9@@@@A 93@ 9A? 9[@W@k@AA A  @@+@7@;@@@#@'@/@3@?@C@C@G@A'@f5ga g@@f5   @`5!u @`5j ,*AA Bd@[@W@k@| Tx@T|ATAA A{ |c9א@9 R2CC@;T#A9+@/@+@&[@W@k@Ay TT`T@qAA A y@@@@#@'@+@+@/@A!"'!"@b5#" $%$@d5 "!  &! [@W@k@FAA A# |c9~@9@!@@'A@9qT'A c9h@9@@@@A'@a5@ [@W@k@ AA A @@@@@#@A'@a5Ì` [@W@k@%@@?aT@AA A |c9@9A[@W@k@%G9E#AA A@@@?TScO6 5@@#@AA'!$@d5CD` Z [@W@k@%O@S@Ac@ ˪'@h5? 'E?T_@_@ @ !3!_@__@__@_@g @ !!_@__@__@_@I @ !!_@_@7 @ !!_@__@_cjTxc yc_ @T,@ @a ! !_@_@ # |c96@9# ٍc@9@@@@9qTA'# c9@9 @@%?@@aT{%?@@aT{@@ iAA@A@%A_TS_* *@@#@AA'!$@d5CDO S@_@%D'@5!|h!= @ @a ! !_@_@~ @a ! !_@_@l @a ! !_@_B_T&xbxb@TB_*T'xbxb@TA'C@@ AA@A@%A_TS_* @@#@AA'!$@d5CDS@_@%D'@5!|h! %6@@ c |c9:@9_9c _ 9t@9_B9 c9"@9@ @ !t2!_@_@Ҡ @ !t2!_@_@ @ !t2!_@_A[@W@k@ҝ@@@9qAT !c9Ս@9@@ 5AB@BB@&TS_* @@#@AA'!$@d5CDS@A_@$D'@5!|Ch!@[ @ !t2!_@_ @_T~#`!< @SBBB |c9@9u@@@S@@A'@a5C |c9Q@9pc  |c9j@9lc@g@k@S@'@a5 ` |c90@9g! S@" 9Bb B@9bS@X@!`!X? L]T؟ @ObB _@9Y'@5O@S@A\S@"O@i# |c9@9S |c9@9P@@@@T )s@9@ @!A !#!'+_@_ ~T@@@ LC@G@C@ @;T @;TG# @;T&7@S@ HC |c9@9`B@@@S@48'@a50@@@ @@@@C>S@" W  |c9h@99W@[@_@ k@'@@@@#@+@+@/@S@!Y"]'!"@b5#a" $e%i$@d5 m"a f4oc |c9\@90o@s@w@S@(,'@a5$ o@s@w@ U@@@@,S@" O{ |c92@9 ({@@@S@ '@a5n |c9@9# |c9@9@ ~T@@@ sC@G@C@ @;T @;TcAgAkA n&@S@ L hc@9~T c c @;T@@@@ S@L@ @@@@@S@P'@f5TAX@?MT C9c@9  C9c@9`S@X@? KT_9 _ 9@9_B9I |c9a@9@7 # @A !X2#!'+_@_  @A !X2#!'+_@_  @@ !+#!'+_@_  @ !#!'+_@_#'+_@_ Н @{ !#!'+_@_#'+_@_  @ !h#!'+_@_  @ !<##!'+_@_  @ !<##!'+_@_#'+_@_ v @ !(#!'+_@_#'+_@_ \ @} !-#!'+_@_#'+_@_ B @ !(#!'+_@_#'+_@_ ( @ !3#!'+_@_  @ !6#!'+_@_  @ !$##!'+_@_  @ !#!'+_@_ ܜ @ !#!'+_@_ ɜ @ !#!'+_@_  @@ !+#!'+_@_  @@ !+#!'+_@_  @a !#!'+_@_ } @a !#!'+_@_@@c |c9@9 # /@@@ /@3@/@C@;Tc @;TS@xAtA|A$T) @@#@S@A|'!$@d5CtD S@#x! Q ˡ'!"@5@;T) aS@'!#'+_@_  @! !8#!'+_@_S@P @@ @S@C c@9@@@@@ !T@@@S@@@AD'@`5C<@i##_@_  @! !#!'+_@_#'+_@_qT @_IT#'@+@ /@C@@@@@+@`T ~ @a !=3!7;_D_37;_D_37;_D_6 @_/T#9V @K _@c@ g@c'@/@/@3@, TK@@?T@"@b!@9a@? T @"@b!@9a@? T@"@b!@9a@? T@"@b!@9a@? T   @K@@@A'!$@d5C? @$@d5CD@(@bB!;  @;@?@'BD@d5 `'B @K@@?iTF@f5w'B @@@?TF@f5 i'B(@$@TҢ  @! !k!os_K_  @ !k!os_K_CG 8 @_@c@ g@.c/@ | @_@c@ g@!!c/@ kG@oC@s_K_ a @ ! !>k!os_K_ O @ ! !d5k!os_K_` dOSO@ @k! os_K_ @@ @kos_K_?@D?@k _K_֥`@f@ff@9f@mT @@( T I@i5x('B&LT  @! !k!os_K_@ } @_ T~#@@@c~T?ן/@3@7@;@ @?)TB@?@ @?)TA@C@G@K @O(@+B ǜ@S+@W[@(@$@?mT c@;T9 @@ w@@@_@_B`D@E@@ @hTS@W@xh Th 'JK@k5x(   W@S@T G@g5   W@S@BT F@f5 @d?T$! @ K @_iT#`$ @C W@[@ _@ a/@3@'@/@# _ TC@@"@b!@9a@?T@?lT  @| !,c!gk_J_{@?T`:ۘ @C@@A@'@`5Cwc _J_ Ƙ @ !$c!gk_J_` dGKG@ @c! gk_J_;?# @W@[@ _@!$?a/@ c?@g;@k_J_  @ ! !6c!gk_J_IP @_ >T~# d @o@@ @!a/@3@/@o@@@%cd@c@! TY[k 8A @@@ @`/@9. @@@ @!`/@@k@[@_@_  @ ! !t=!_@_  @ ! !d5!_@_cTExcxc@T%cd@c@! TA4@8@<@ z@@@@ @? @@" B@ B@S@;"B @;@@'@5S@@S@\_@_!! _@_cTExcxc@T%cd@c@ TҀ(@_,@?0@C6 @W_@?@ C@!='`/@W@o@"4@#8@!<@ @@@@ @? @@" B "L@O@7"BT @7@@'@5O@@O@_@_A! _@_@@ @ 2@!6w{ < @@@_@_cTExcxc@T,@a  @so@"4@#8@!<@ a!_/@3@/@B@@w{ d @@@_@_s@@@@?T @!w{ 6 @@@_@_KgG5z Ι@cz g@G@K@c@z @a!_@_  @ !D7!_@_P  @_2T ~#c#~T7A-@+R;rkT7A! a,T#~T%@@@C%% @;TC@;T;Ac @@@Rr+T7AA! a&T;A@@ @@@@9# $@!6 It'@@@@#@ @ ? @@ Bd b@7@+"B @+@@'@57@@7@ GKO_@ _c~T%@@@OSWsw{c@;T;A@@@'@#@ @? @@" B> @;@/"B @/@@'@5;@@;@G GKO_@ _  @ !@7 G!KO_@ _ֻRPr+T7Aa!AT;A@3@?%BC@D@B@~TB5{ }@3@_T?@TC {C@{ N@!  ss#@'@@@@#@@@GK T #@@@ GKO_@ _ccC@;T c e@@ ;s@#@@@'@?CGKO_@ _7AG;AK X@ #@Ń@@ GKO_@ _{ d @_IT#1@@ @'BD@5&&Bk'B&&*A@5&!* &B*Z'B@@@`5O_C_v @_ LT~#~T  @/C @O@7_ J TO;"xc ] @G@&B+C@D@@@@@TCwc !m@9;@7@_@G@&B+C@w@c@&} bB )+AT7@;@_@`;@7@_@ p._@_ g._@_ -@s*@! @'@5s@@@@ s@@@[O@ [@7@ TO_@"x`kC@D@- #@@9@[@k@ ' !._@_?@7_?;G@8 @?@?TG@ H@K @@@@b'BC@9{gc S @!?@o @!{@@@g@&@B6 !!C@:'Bc';@7@_@ocqaT@sK@@@@'@9g{o@9!* Ç@@{@`@g@&@B6 !'c';@7@_@d'!$@9_o@9!* @@_ ʇ @!&@c6 B,_'!o@c?qT?qTa(@d$@e0@f4@`T  f@9o@c7@$;@cT_@<_@ d@@#@c7@o@F '@h5Cx!'7@;@_@?qTa(@d$@e0@f4@?`T  Of@9o@c'7@;@_@7@$;@cT_@<_@  @@#@c7@o@F '@h5Cx!A? qT?qT'7@;@_@'BD@9g{9*a ӆ@@g  @!&@c6 Bc'B'7@;@_@t`@a@ @@B- @@9c'7@;@_@Z @_T#+9;7@[ @@@@;?C_F_a!+'@9 @@@ y@@@;?C9'@_F_;,_F_ @_)!T#[9 g@V@@@@@D'@9$&Є+@@_`T@KO j@9@O@K@&Є+'&Є+ BB@SW&@B6 ! !4! @Tg@@@@@D'@9&+@@`T@ KC \j@9@K@C@ D@SW&@!6 @ @~ _L_7a![G@9 @` @ 9G@ _L_?@ ?7@ @?@?* T7@ @;'! "@ @@9zZA@ ?C@9 ' @;@ @9' @;@ @@9 @@@?qT 9G@_L_os9G@_L_@ 9G@_L_~ 9G@_L_,+_L_ @C_ T#o@@@!@ ? @@@@!x`!zA !5!AC+ @o@"@ +@֕@7@3@/o@d@e@f@c @ @@@~Tc@;7@?3@C/@Gs@Kw@O{@SW[_ 8 @@ n@#@@@'@_M_M @_i7T# 8j @k@@ @dЄY3@/@ak@@?aT@a @"@!@ |@@ @@@ r@@`Gc`9 @Ok@"@#@$ @@@ @ @#@'@O@@A '@a5CA _9G@@c@ ? @@_O@ Ó@`` @G@'BC@5c@O@  c@O@'BW_@@@xdzˤ5@KC? k@ @K@ ˏ @ !5!_O_  @ ~ !H;!_O_ @c @!os ! c@o~@@_O_C[  @@@ @dЄ!(X/@@ 9v @@@ @a!X/@C@ @[@? @@ BL G@S@;"BO @;@@'@5S@@S@_O_7 @ ! !t=!_O_% @ ! !>!_O_@@ @ T@95 ˄@'@f5 @{ !!_O_?@@ T ˟넰Tg ig@?@G@@c@ ?@@'!!@5W@# W@"@j"`g_O_ @ @_T#3@ lTT! T x, `7@;@@@?C_E_ ?`C_E_ d9 7@;@0@@?C_E_ . ` 7@;@@@?C_E_ ?C_E_l @_IT#Ѡ%@@@_@dtAexAf|A @9_@8A @_I T#O@S@  B8 @t@ O@S@ @@@@@9C@`T+'?@ ]@9` G@K@ +@'@@99 _G_O@S@ ~@!*/3 +| c@x@@9[__G_G@K@ O@S@@9@@9[__G_ @_T#?@@@'+ @@`'@+@!A !8 @Q]@9@Ҁ'@+@ ?@@@ r@#@@@@ T@9@lq'+ jT`@@ 8 @']@9+@'@ g@@?@=m @@ g~@!*/3 p  c@Sx@@C9OS_G_+@'@ C@G@n@9@@C9OS_G_C9OS_G_m @@ /~@!*/3 6 c@x@@C9OS_G_ L @_T##@C@D@@T@#9_B_mTA@F @Th`8h`8@hh`8@k T#9_B_@#9_B_  @_ T#c@W@[@ @@@9" ;/_@C@9OqTc@˥@Bc@C7 @@@9b/@lTO@qaTTm T3R#9 _J_C@7@ }@!*GK 5 #@w@@#9ko_J_W@[@ y}@!*GK 5 #@ew@@#9ko_J_@#9 _J_@#9 _J_?@c@+? @#@D|;@hd@ @9+@3@? T#9 _J_,[ @_i9T~#@ &!-!@9@&-'!$@5@&c-b &B-@'!@OSO@@\@9C@dyB{_k S@;+? @@@!@_kT @o}s c M}@@_@_3@3;@?@ +@s@3@?T;@?@ +@+@@@ @92@@@@K@G@@ ?@9@@@@ |@!*@@ |@!*K@G@ t@ @z@@ @osw{ c |@@_@_@ @? @@ @osw{ c |@@_@_@` &!-!@9@&-'!!@5@&B-A&B-@@W[W@@\@9"@Cy!{?ka [@'C7 @@@!@T@ @o}s c m|@@_@_/@B/97@C@ '@@/@?T7@C@ '@H@@@ @9O@@@@@@@ ?@9@@b@ @? @@ @osw{ c |@@_@_A9_@_ @@ {@!*_c@@ {@!*gk `" {@@ @osw{ c {@@_@_Y0 @_I<T~#@A?9T@? T"@bxbD4@B0@$@(@aT Y@9@@@ os c {@@_@_@C@D@E@^;trTb@ @@@+'?\A`AXA @9%@hAlAdA'@+@ ?@@9@(@3a @?T?!T?@@c@ @ } !\!_@_?@/C`T?AT%@@@@dtAexAf|A @9@?/@@C@%@@@C@dtAexAf|A j@9@?@C@/@?I @@@ c@+O@SW/@[ cI@@@@@!T@M9aM9 os c z@@_@_@M9AAB?T o@s c z@@_@__@__@_'@+@ ?@ .!6@K@;@CdADhAElA  c.#%@G@7 K@;@ z@!*_cG@7@ z@!*gk p<` ~@@ @o@sw{ c Xz@@_@_'@+@ ?@ .!@K@;@CXAD\AE`A  c.#@G@7 K@;@ y@!*_cG@7@ y@!*gk ! ~ ~@@ @o@sw{ c y@@_@_ր ' _@_n @_=T~#@ @{A@SB@k@T`T!6T@ @@c@O V@9c@O@ Ky@wk@" B#$B$(B iy@sk@",B#0B$4B _y@k@{@ S@! !}c@O@!*#w@'A!@+!9/s@37;?@C@?@,_@_c@O@ y@!* " @r@@_@_@ @@g@K \@@@@@9 k@PBTBXB x@wk@"\B#`B$dB x@sA!)# 0x@@k@{@ S@B B=g@K@#'@ +9/w@37s@;i?@C@?@_@_@)# w@@ { @qr@@_@_TaT@@T@T@ @x@!   @Ir@@_@_@ @'Y@o@W@@ @\x@wk@"8B#@@?T @@9_@@@ _aT?T_Thxfxf?@T@9_ @_T#7@j @a!/'+ ; #@o@@;?_F_ (' _ @_ T#@#@a@@#@!@?`T ~I@9#9_C_#@?#9_C_ @_) T#C@X@? aTM9M9M9A` G`' K_G_pAaA(7` G`' K_G_L@A%*@@GK_G_?@"H@# @$@%@&<@'@@!D@P@T@ #'+@/@GK_G_k @_T#?@P@T@C@G@ K@O@S@W@[@#'+@/@_c_G_E#/@xAtA?mT;C#_C@;T@ @e%@@aTB?TTxgxg?@T@@#@37;C#_ @_T#?@?T|Ӣ%B Aha@@ @ @@ i@!*'+C@/G@3 2 #c@@KO_G_ @_)T#b%B C@B@Tw@-;7?T@@{@/%*@@_N_!TPT%BC@B@b!TBx` @?@K@{@ @@@??@@K@?@@@@#c@R[rkT@D7T@e@f@c@7@T @@#@'CA9_N_t @A !,'a!_N_ wi@7@A!7 7@@_N_ЁRrkT@T7@ T@ @@@nA9_N_Bt @{ !a!_N_ @@@_N_[R[wr+A T@ T7@T w@c4TGC@;@ @@@#'|+@/@_N_@;@ @@@#{'@+@_N_ @@@_N_%*@@_N_%*@@_N_w@h @a! _N_BFc@;TO@aTk@g@ T{ @_T#{@9@@;T#C@;T-7@;{@"@#@$@%@ +{@@@@@@@w@P@T@;@ #'t+@/@_N_7 <(@ _#?@T3@/@;@#9C#_ceC@;T@ @?aT TTxgIxg?@T@#9C#_ @_T#;@7@mT#hb8qjTB  #@;@7@q T g@!*'+ >@ #@a@@?C_F__F_ @C_5TC~##~T@@@R[rkaT@A!7T`% @@@~ЁRrkT[R[wr+aT@a! T`% @@@C%% @;T@@!aT@@'@/ b'BC߈5`'!! 9*/@'@b'B%%c@;Tc&?T ;K@9/@'@b'B C߈5`'!! */@'@b'B%cc@ '?T K@9`%@@@Ңd/@'@b'B C߈5`'!! )/@'@b'B%c c@`?T J@9`%@@@9/@'@b'B B߈B5`'  )/@'@%B@B@c@(?aT J@9`% @@@ @ q @ ~a !H;@@ q @|  + @@@$e%Х @@-T&_@C__@C_# q @{   #@BB_@C_֥@;T3@TlTBK@_aT?@C@G@O@#_T q @ !3#@A!_@C_ւ4_iT+%@A!  @C@;T@@@+@#@!T# Gq @A !#@A!_@C_ L @_?T~#ѠC CDg@@" @@? @@ # ~T %@G@K@G@ @;Tc C @;T#,C t@C?MTC} _@_p @ !=A! _@_C9 C@;T#C@;T@@@CCC  @Cc^;c@ct@@@CCC  @E^;@t@@@c  * .@;T c @;T@CCA? T +a%!"@#@!@AAA@ Te@! yN@@@#@'@#@#'+BABT) s@@#@ Q `'@5C @;T) n#c #@;TA!+# ]d@@ 3N#@'@@@@#@@ @@@@ @@@?@@@?@@@@d @@!@@C C@@@bB# ?3@7@'@+@/@3@E _@_~Tc #@;Tc @;T`}& c@@ M@#@@@'@ _@_ _@_ _@_BD@;T@A@  &^;t@@@d  d'@5c@;T`, @C@@D'c?lTe @_T##99/@̳ @!!#@9A'! !@ @@9A'!` !@ c@999@_E_99@_E_0 _E_ @_iT#7@!!)T;@@@@ @?@*TC@@@ u@9#@'@#9KO_F_ 6b 6b  @_T#/@!*T3@@@7@AT;@#@!@ @9@@9CG_E_ 6b 6zb W @_T#/@!*T3@@@'@cc8_T+@ |@9@@9;?_D_ 6Mb 6Gb $ @_T#/@a!)T3@@@@7@T ;@@9@@9CG_E_ 6b 6b  @C_;T#n @`` `@%!@* A'!"@5%B`*C%B`* @ F@@ P;`@ෟA'! 9m @@` `@%!* A'!"@5%B*C%B*pp@C!,m @|99 9@ 9999'9{ 9) $9 (9@ ,9 09@ 49~89<9 @9D9H9 L9 ~P9T9TX9\9`9Ud9 h9 l9 p9t9x9 |9 9}999999 9 9 9 9 999 999 9 99 9{9;?CY9 @ }@;9@'@5@;T  C,Dm @|99 9@ 9999'9{ 9) $9 (9@ ,9 09@ 49~89<9@9D9H9 L9 ~P9T9TX9\9`9Ud9 h9 l9 p9t9x9 |9 9}999999 9 9 9 9 999999 9 99 99;?CY9 @ v}@;9@'@5@;T  .C,l @|99 9@ 9999$9{ 9&$9 (9@,9 09@ 49~ 89 <9 @9 D9H9 L9 ~P9T9NX9\9`9Nd9h9l9p9t9x9|99}999999999 9 9 9 9 9 99 9 9 99z9;?CA! @ @|@;9@'@5@;T@%BA   %B@Rl @` `@%!* @'@5% *%B *_I_  @_T#с@A@`@k @@#'_C_G[ "@T#$ @_)T#с@@@?T|ӂ%B Aha@@ @ @@#'_C_[ "@T#$ @_T##@@@C@?!TA@@TA @@B@ @?T N?@9#9_C_ @_i T#с@! /@@ @@ @? T?lT  !* A v}@@2?lT?T *! &?T  ?`T?$Ta > !d9 P}@@  !. a D}@@37_E_tZ "@cT#$ @_IT#с@@  (' _A_UZ "@cT#$ @_iT##@@@C@?TA@@B@@?T >@9#9_C_ @_ T#с@'@@@@ @@+/_D_ Z "@#T#$ @_T#с@a7@@_ @A!/'+ ; #@d@@;?_F_Y "@aT#$ @_iT#с@!7@@@@ 1 @? @@ B1 BH|#@'@;?_F_֜Y E"@T#$ @_)T#с@@@@_A_~Y '"@cT#$ @_IT#с@@ ` <(@_A_]Y "@cT#$ @_IT##@@@C@?TA@@@E@?T B@9@ @#@! @?#9_C_ @_IT#с@'@ @@@ @ @@+/_D_ Y "@#T#$ @_T##@@@C@@E@TA @ @AT J=@9#@@@"@! @ ?=@9#9_C_ @@@C@?kTAkaTA@@kTA@@c9_c9_ @_T#{%! 6 %!@6 @'@5#3%!6 %B6#c3 _A_G @_T#%6@@"c9?TT_D_ր* `( Dhb8chb8c_ T a@!!|_* @C_T#w@_ T@_!Ts@_T {%B6A@B@?T@`T #T {  o@ #Wo@9`  o@ #!3GC ] @!W[_ c`   W@@_M_ ] @!W[_ c` <@ W@@_M_o@9{_M_#ha8#ha8B? T A@!!|_*?T` 2{ jW@@_M_s XG@9x!!?(T_ @@@ ;99[9xEx$x#c(T_ @@@ ;99[9xEx$x#c(T_ @@;99x#x"B_(KT_@ @ ;9[9$xEx$x#DxDx#c(kT_      @Ax|@9!@!X~ "BY@d҃ @dZch @y@9p@x$@9 @y 0@9 @x <@9  @(@yX@9pAxd@94@yp@9@@cz eYcdch@@dZch˃ #A c} eYcdchcA @dZch˃ ңcYeˤhAc@dZch˃Bc{ eYcdch`B@dZhˀ" dh&_ @$bC| cc|@dc|@hc|@dc|@ hc|@dc|@hc|@dc|@hc|@ dc|@!h!|Y!"|@bh#|Z!hA|@adC|YBd"|@ bh #|Z!hA|@adC|YBd "|@bh#|Z!hA|@adC|YBd"|@bh#|Z!hA|@ ad C|YBd"|Z$"h !|@ah"|Y!d$@A9!HA9!PA9!X!A 9!FA9!NA9!V! A9!EA9!MA 9!U !A$9 !CA(9 !KA,9 !S!A09!BA49!JA89!RA<9A@9!HAD9!PAH9!X!AL9!GAP9!OAT9!W! AX9!EA\9!MA`9!U !Ad9 !DAh9 !LAl9 !T$!Ap9$!BAt9$!JAx9$R@|9_ @C_)'TC~#@  $@KLM N OPQST!J%uҶ~ ~ ~~~~~~~ Jx{ws} }7 ~ 3o,~/kl~ +g~'~@J}cx|@_[x9@W~@SyZ@OK@G~@C(z?;j)* ()J+*+ +j* ).89{@8n9::89 N;#7@3Ls@sLMN[@sMNK@NL M3@o@,0l0010l122 0/@k@ `@` +@g@ \`` '@@(\h H  !#!" h!@LZJi@@j {@f@s@j od@ki Yg`)@ HZh@w@| 0@BS@P@_@pB;@AO@AW@0CG@PC C@B@Bh LYBdBh@~" b   b   " ?@B Bd@DZBh | c@`[@`K@ h "Yd @Z#@@hd@"Zh{@Y@@dhs@Z@ ho@Y@ dk@Z@ h!@g@d%C#_#3@  $K}lҍ}N}} J}}!xPxx3~~x~yB"}cxJ}@x}@k}@}@x}@> o< />< k=/LO<> =/To<O=O? 3\sL3NSO M 5duT5VUU @)\ i$)&&I%@ \` @cfZfi@i osf@wj ҹ)e@:#h  Yi @ Zh/@Z}:h:j ij Ck zUYcdch~   d@eZh@| @ h "Yd Zhd@"ZhY`ehZ`j Y@ d#@Z@ h @@d$C#_ @Bh"A|   $| kYla @,Z!h @a| #cY!d!hA @#dZ!hˡ | $Y!d!h A@#dZ!hˡ| $Y!d!hA@#dZ!hˡ!} $Y!d!hA @"CZ!hˡ!d h%_ @C_T#  cO;'s@  @ @ Ts@  C  CvC @C @ TC `C @C @( TC JC @ ~@P TC 4C p@C i@( TC C Z@C S@ TC  C D@ =@ TC C /@C (@ TC  @ @ To@ _M_ @_T~#@9T {,@9}9?A9@?9z?9 wO  c;@ J #@ C@S҇bhb8# @B$ƚB@'!#C #  Cc# #  CC #? c9c tc# oC C #c c  QCc  H C~C c @'C_T"## C # &# @# _@_{  @_T#G@O@K@7@@@?@ @@? @'!5e@'@7@ Ʌ@#@+@;@ ?@C@@?#@@+@?@@@SW[_F_B @_)T#G@,@(@@9@ӈ@O@?LT?K@@T' '@O@G@K@?T@;S@'=b @aA !W!![__H_3@'ˉ O@ G@T3/7@@@?G@@@!@@ @$@  ?G@@@!@ @@@  ?րa @G@"@99"@#@B@ @@?G@@@!@@$@  ?@@@G@@ A$@'@a5CD~D@9D9C@D @E$@D,E0/@?@5C(;@G@;@i7@T+ I@'/@;@+@G@7@?BT,@(@0@T˅,˅0@'@`5(DW _H_ c" @_iT#7@;@ ?@C@@@+@'@? @#!:oa @+@A'!"@5'@ '@ #@K@O@!@5G@ `G@@9|(!!=SW_F_ @_)T#A9_9%!`!@"B _e@@@@9"BL8 s@@;?_F_A9@ @@B9 b @s#@'@;?_F_Ͽ @_T#@9#9 @@#'_C_ @C_$T#cB9qTqATS@A! aTW@AT[@ _@c@g@k@o@s@#h'@+@'@bw{_I_S@?W@C` @ @O@@w{_I_q!TS@A! aTW@T;7[@ _@c@g@k@o@s@#'l+@/@+@Bw{_I_S@?W@C` @ @>O@@w{_I_qATS@!aTW@AT_@ c@g@k@o@s@ZA9` @` @AA !!!w{_I_S@?W@C`  @N@@w{_I_q TS@!!7TW@@@@T _@c@g@k@o@#s@'CA9_I__ @ ~A !!!w{_I_S@?W@C` 4# @N@@w{_I__ @a !D0!!w{_I_ @_T#@' @?@?T@?_ @/A%!="@#@!@  /@ C@G@K@@O@?@@@/@ /@@@@ @H TcBS W[_G_N @'A%!="@#@!@@@+ @3 ?ր,3@ +@T@@ C@G@K@@O@?'@@@@@+@  ?'@@+@?@@@SW[_G_- m @_T#@y?qT? qT?q T? q`Tj?qT? qT?qTc?qT? qT?q T? qaT  B<@_qhT? q Tb? qhT?qHT?q`T? qaT@"?q T%? qT?qT? qT? q(T?qT? q`T? qT? qaT ? qaT @? qAT ' @9?_F_y7S @!4'+` L ` #@M@@9?CG_F_yS @!4'+` L ` #@oM@@9?CG_F_`g @_ T#7@@R[rkT7@!7T @   FM@@9CGK_F_ЁRrkT7@!AT9@C_F_[R[wr+T7@A! !T9}C_F_7@';@+@ ('@ #@ M@@9CGK_F_ @C_/T#s@ @@c 9T@@! @ ?@@ @ @#c@R[rkT7_T] @y@@ЁRrkT!_TAy? qT@S@c "'BC߈5 '! c@S@"'B%cc@Є '?aT 6@9@ c@S@"'B C߈5 '! mc@S@"'B%c c@Є`?aT v6@9`c@S@"'B B߈B5 ' Nc@S@%B@B@c@(?T Y6@9 ] @ay_M_ր~] @ayv] @ay@@Q l] @ayayaya@ y~~A[R[wr+aT@ _T @ @@!x`!zA 3A%!<"@;c4 ``@A%!<"@!@3@dcD_-TOcKAy;@];@ _M__M_s@d@W7w{_M_O@W@s@7@_TO?C[xaxyd@e@f@y ,@9@?@C@_cT[@c4[@ Z`@@#@?@@yx xC@?@[@w{_M_!`(@) @y*@y T?kTTG_7y!4 .`@@#@(_@O@K@AyG@7@@y x'x_Tx @_ T#@yyC@ q@@@K@@y q!T7#@kyc@oyG@#/+3C@9 @@CyW[_G_'@/@#@@+@3@*T'xexgyy @9g@yCy _G_֠T\ @ !Cy!!W[_G_ @C_,T#O@ @"@R[Fr_kTB ? T<R r_kTB?T  J@@SW_I_R;r_+!TB?T @@7;@ @?C 4 J@@SW_I_@c R@@! @ ?@ @@ @Cc@R[rkT7? TЁRrkTc?T'@#@+ #'cd߈5 '! m'@#@+@#'c%@Х '?T u4@9 '@#@+@#'c d߈5 '! L'@#@+@#'c% @Х`?T T4@9'@#@+@#'c c߈c5 ' +'@#@+@%c@c@Є@(?!T 54@9@O@@ 0 8J@@SW_I_ @@/3 !  c@!J@@SW_I_'@@@!@ ? @@@ P@a!*/3`  c@I@@SW_I_[R[wr+T@ ?T D@ I@@SW_I_/3` X c@I@@SW_I_O@ @@/3 @ c@I@@SW_I_ @_T#@@+@?T'@"x`xOyy% @`@ ?@A@ ?C@9@@7@3@7@O@y3@C_D_ք?-TexdxkATC_D_n @_iT#'@+@ /@@A! CG_D_U @_iT#/@3@ 7@@@#B9b ;@?@C@@@A!@KO_E_ ;@?@C@@@A!@KO_E_ @_iT#/@3@ 7@@@#B9b ;@?@C@Ү@@A!@KO_E_ ;@?@C@@@A!@KO_E_ݸ @_ T# V @'@ +@/@-}@@37_D_ @_T# '@ +@/@}@@37_D_} _ @_T#@@ @!@ ? @_B_} _ @C_T#O@9c@? }!_@T $O@@ @!@S@ W@[@~k@#o@'s@+w@/{@3@7 ?;@?@C@_I_A @_iT#W@9k@? }!g@T W@@ @!@[@ _@c@~s@#w@'{@+@/@3@7 ?;@G@?@C@K@_J_} _ @_T#@@ @!@ ? @_B_ _ @C_ T#O@_@c@Ghf8Eh&8T[9eh`80T8@@A @@S@ W@[@~k@#o@'s@+w@/{@3@7?;@?@C@c@O@_@hh8'ʇh(8Thf81T_I_~~  @_ T#W@g@k@Ghf8Eh&8T[9eh`80T<@@A @@[@ _@c@~s@#w@'{@+@/@3@7?;@G@?@C@K@k@W@g@hj8i h*8Thh8 _1T _J_ ~F~C ( @_) T#O@a T?@C@ G@@@@@@d 9  ~|@#@@@@3/$X @3@!'!!@5/@ `/@K@?T+ O@+@!`=W[_G_@@ @ `*  Ƕ @_) T#O@0a T?@C@ G@T@@@@@d 9  ~|@#@@@@3/W @3@!'!!@5/@ `/@_K@?T+ ~>+@!`>W[_G_@@ Q@ M`* F g @_ T#?@0A T3@@T ՠW @{A !5!!oW @/@?T {@bB>ҡ#YW @@!'!!@5#@ `#@;@?T ~ӿ@a!`>GK_E_A!@ `*   @_T#@@@!@ ? @_B_ @_T#@@@! @ ? @_B_ѵ @_T#@@@!@ ?_B_ @_)T#/@@@! @3@ 7@;@ ?@@@?CG_E_ @_)T#/@@@!@3@ 7@;@ ?@@@?CG_E_{ @_IT#5V @! !'!!@5@ @4#_C_Z @_)T#Z@@@? @@B L@! mV @@!'!!@5@ @a!`<'+_D_  @_ T#7@@;@ ?7@@;@K@ O@S@ ?7@@;@W@ [@_@ ?7@@;@c@ g@k@ ?7@@;@?@ C@G@ ?@@@o@#+#'7@@;@ s@w@?+@#@'@{_F_Դ``? ' _ @_IT#U @s@yya!(#'_C_ @_T#U @@9s@yya!(#'_C_ @_T#@y@@c?TDxcxk!Ty @'_B_'_B_t %6@@@yc T$xc@yk!T _ _ @_T#@y@@c?TDxcxk!Ty @'_B_'_B_< %7@@@yc T$xc@yk!T _ _ @_)T#?@T@@@C@G@ K@O@S@W@?@+@#@'@/@[_cgk_G_@\@`@ _@@ @ _ @_T#{ G c@;T | |# |{_@@`@ ?@ @@_K_ @_)&T#9+'@$ "'BB@9@#c@$_$6C9_'@!>@9!8T @'@#@"@"'BD@d5 A"'B#@D@d5@7"'B# @$@%@D@d5 `)"'B#@D@d5"'B#@D@d5"'B# @D@d5  "'B#$@D@d5$ "'B#(@D@d5(@"'B#,@D@d5,`"'B#0@D@d50"'B#4@$8@%<@8<D@d54ջ"'B#@@$D@DD@d5@ɻ"'B$H@H#L@D@d5L`"'B$B99#T@$X@%\@X\D@d5T"'B$C99$C99$h0@;T#x@$t@tD@d5x"'B$Ayy$Ayy#@$@%@D@d5"'B$`D9`9$@#@$@D@d5t"'B#@$@%@D@d5@f"'B#@$@!@A@a5Y+9@_D_+_D__D_s @C_ITC~#@` !5 V@_@[@C[@`#@;T@C#@;TX@;TC@ _@Q !'!#@5@;T 5 lC@!'!_@@T@9W@@ '@5_@ "@_@ߺW@$_@C_`*    @C_ T# %>@7bB2 4V@!%!>"@C!@?O@7@TGxexhAy4?kbThAy4?kiTT;y3a!2 YV@@#@(?@C@O@;@3@@yx&xSW[_I_@@@"%B9A@@@#@yc T$xcxkAT@c9_c9_ց @_T#@ @@#@'@TExdxyk9_C_ JTxfxkTy@k9_C_] @C_IETC ~#/AX@#~T#?D@H@L@ S@y@9A2y/A"@3Ah @@@@# A!@KO @ C@#A@@7;_@C _/A" @#@ X@@@b)@y/A  cB1SSy3A[_?@c$0@%,@&4@Ty @#@@"$@y/A3A?@ q"TO @"@$@% @&$@'(@ ١A9@3A @@cc H@@! @ ?@ @ @bB@R[r_kTЁRr_k!TB?T@3@G "'BC߈5 '! G@3@"'B%cc@d '?T *@9`@G@3@"'B C߈5 '! b G@3@"'B%c c@d`?T k*@9`}G@3@"'B B߈B5 ' A G@3@%B@B@cc@(?T L*@9@ y/A"@C#@/3A6S@ @@ ?@@7;_@C _[R[wr_+T  ?AT/Aҙ7?aTO@ qT/A0@aNQ @AA !\!7;_@C _@{3AS@ @@ ?@@7;_@C _3AS@ @@ ?@@7;_@C _֠Q @A !S@B  ?@@7;_@C _ _@C _S@ @?@@7;_@C _ @@KO  C@?@@7;_@C _֠P @a !!7;_@C _?@CX@D\@BT@% @@@79y/79@yy@@@ #@ _@C _֠P @  !S@B  ?@@7;_@C _ք TExdx<@k`T +?@#yc@9/AC@/@+@@yE@fP @a !)!7;_@C _*@@yA#@9@B@66C9_! qTb6C9_@C9_C9_C9_ @_) T#@@A@B @C@y q Ty;7@ @A@bB HF@@a!@ ? @!! T7@X@\@T@%c `@a@b@/yc7/@yy;@d@e@c@ c'#@ _H_G@OK@S_H_G@OK@S_H_G@OK@S_H_G@OK@S_H_@@y@!@!7 qTa6C9_@C9_C9_ @_iT#g@`@y @@@yk@ @#@@g@@!k@"@#@_T7 _L_os_L_֠O @a !X!os_L_c`+Ke@f@g@(8@D @@@@ck@7@K@+@g@@@T3;,_T?G +@D @a!OSG@`@W?@[ | c>@@os_L_`@@ 5@ 1@ AT/C "@9g@k@7@K@+@3@C@/@;@T _L_X @_T#R?@9@'!"@b5@'@'@?@'!T@ @ T}/ @@'+8AT@ @@ AA@?Aw@(<T@! @@@B@b@ @@@ ?c@@@} @ @<@@a@}@A@0@y qaTso@AH@?cT@@5@ J@#@@A@A @?0T"@d@9@BT9@5 I@@#@@B9  dh!8_ -T`9@@@ ? @A @? *TCH@ 9?)T9@@@ @@o@s@e#!'+/37?;@?@C@ @$@_$T@@@9PP9!@ @A#A'A+ /37 ?;@?@C@@ @%<@@@_TA@@  }#@'+/A3A7A;G@ @O@K@@ ?@A @Cg[ ÚdckD{@_@T#T@@5 @nH@@Ag@{@@_@k@T?) ˫  A aT? 'A{@g@k@{@@_@@@@@@hT %e@@T  g@k@{@_@@@@@ C 37;_@_eei"8B_jTcTH@T@"@@@ @@?{@@@@@@ ?_@@@? T#dH 9?T9 A @$ehd8h$8qT+/3 _@_@*` ~@ X@* ~@   @_T#/@3@BL8 V@@CG_E_ @ _)T ~#A@@$ !߈\ATAd"g K 'cd@5  `  ^A`@@DЄ"  :@@A  @@@@d%4@@`T 7 A@9@7@`A@AHA?Ta%!3#@"@A7  2:@@a@!@ ?C@9@Ҁ7@@> Հ 7@ @:@@@7@A '@5@"'"@" 2D @A`'@5@ab @̫!A@`57@@_@ _Ad C @;T 8@@B  g9@@@AA '@5@ %"@.! C @A`'@5@ab @!A@`5 @!@_@ _և_Tq`T_XqT<@_@qTb@d@ # Oe ?CKOa@Ab @A`&@5@ab @k!A@`5` @!@_@ _@C9@_@B  q4@@@AA &@5_@ %"_@8!` > @A`&@5@ab @#!A@`5 @!@_@ _Xqa TdL9 @C9@k@B  $4@@@AA &@5k@ %"k@!` <> @A`&@5@ab @֥!A@`5˥ @!@_@ _  \)\qTg@qTL9` &@5; ; ?`#PC?K@ WA @?@C@$T%X ` _@ _C9n@@_@ _@C9@[@B  3@@@AA &@5[@ %"[@c!` = @A`&@5@ab @N!A@`5C @!@_@ _@C9@s@B  T3@@@AA &@5s@ %"s@!` l= @A`&@5@ab @!A@`5 @!@_@ _@C9~@S@B   3@@@AA &@5S@ %"S@Ӥ!` $= @A`&@5@ab @!A@`5 @!@_@ _AC95@@B  2@@@AA &@5@ %"@!` < @A`&@5@ab @u!A@`5j @!@_@ _gB  2@@a@!@ ?C@9@ҀAg@> Հ A g@j2@@@AA &@5g@"'"g@1"` < @A`&@5@ab @!A@`5Ag@_@ _C9  c 0SWA@A#@9A9C9F@@7;9#@_E__E_Y @_T#?@$@!`D9B9?\qTrG_G_A?@ T` @a"?@dAeA /#3+ $ z/@?@ AA!@ ? @/@a 2'+@ 3@d/@@A!@ ? @/@a `+@ 3@P/@@! @ ??@ A @'A!@ ?'@#@ @?@`@yaA$dC q`?TrG_G_|@r G_G_rG_G_ *  ėo @_) T#?@K9aAG@#/A|AT+ 5 F<@#@+@G@3+C@ V/@?@ +@ &@53@ |" 3@_G@O _G_@@!(@C@ G@K@ ?@?@"AB@@"OSW_G_k @_)T#/@|AAA@@(@ ?@/@"AB@@"; &BB@b5?|" ? 937;_E_3_E_3 @_I#T#cgk9%+@ @ B?T@@@W[_! kgc@9@@@ K@%S@CMTOSKw@C9C9@O@?GW@_@T 5 :@G@O@W[_C9C9w@@yg5&` qg`[@W@ T3/@?9B9C9G@K@O@@@#@SW[?9/@_G_ _G_ @_JT#w@ahAddAelA`pA&TC9@@@B_N_ ?GT@9pӆ@9  @9+@@ T C9I +@P+ @!!_cg ?k` . X%@;@[bB  F,@@@[@w@ &@5;@ %";@ ![O` ^6 @[@`&@5O@ab O@!w@@`5 @!@_N_w@+@fhAgpATC9i@@@B_N_  9dhA`pA˟끰 $blAedA_4TH4TdpB?mTf 92T'Shb8,q TqT56&B qaT`5 @'@3 @5 @'@:qTqT`@y q!T&5 @!85 @! 8'@q!T5&B  q T,qT`@y q!T`)5 @!0?5 @!0'@ 5 @'@5<qT4q(T0qT`@y qaT"5 @!1w@ 5w@@y? q7 @A`9!@1'@5 @'@:8qT`9&B `,o5w@@y? q7 @A`9'@ 3zPq(T@qTPq!T [5 @'@@6jQ5 @'@`4`Xq T`q T@C9{@?@[bB   +@@@[@w@ &@5?@ %"?@М![G` !5 @[@`&@5G@ab G@!w@@`5 @!@_N_֠4 @'@7 4 @'@27/#c5W8@W#@3S@ '@i/@@7@W@ '@3@ ?@9`/@@@{7@_N_w@AC9@C@[bB  *@@@[@w@ &@5C@ %"C@J!K[` 4 @[@`&@5K@ab K@5!w@@`5* @!@_N_cyov C @_3T#{?T/9wg@9 "߈/7C&@9[|@#k;_kaT#eB`?[W!O@/9  B%B B@#c@$ Y@@@")g@&BB@9@[|@#k @;_kaT#7vg@7@B>SO@/9@@B"!߈?qTD9o@?MT@y_ qTAA#c *@s@o@k@lg@C9k@@s@@#@@@#s@k@!o@B@T?K/`  )@@@K@g@ &@5?@ %"?@b!KG` 3 @K@`&@5G@ab G@M!g@@`5B @!@/@w{@/9O@/9OW@H_L_s@k@3g@C9@+#@;@Kcc  <)@@@K@g@ &@5;@ %";@!KC` T3 @K@`&@5C@ab C@!g@@`5 @!@3@+@Bw{@/9O@]/9OW@_L_@%)@@w{@/9O@H/9OW@ҥ_L_@\ @9w!{A#! @/9O@//9OW@_L_w{@/9O@/9OW@_L_w{/9OW@_L_w$#@@{_L__L_\ @_T#GK9 W@@y? qT@@@ @@@%)@TTW@@@9$@!@A?T(@?T C9@@[__J_?a T&BB@9@[|@#k @;_kaT#+W@+@B>KG@9"A%! !@"B@$ 5 @@W@ &@`5#" @ (@ ( @!@[_9G@x_J_ C9y`=2 @{ ! ![__J_ C9d@@[__J_ C9Y@@[__J_/'3W@@C9J3@7'@;)?/@C`   @@[__J_[__J_`1 @! !$![__J__J_ @_iT#G@@y? qaT@@ @@@ @@@gG@A!?@T3'A@RUr?kT!+T @@KO_H_{,Rr?+T!/aT +@@KO_H_@C93@7'@;@  @U @@KO_H_AC9`n1 @/a ! a! ! /'@@@G@ &@5/@ %"/@!3+` F1 @3@`&@5+@ab +@!G@@`5՘ @!@KO_H_KO_H_Z @@KO_H_@ @_I"T#W[?9 g@@yy @ ?g@"@#@$@ g@`@@@?@ k@`@9g@&BB@9@[|@#k @;_kaT#+0+@>[W@?9G 9G 9#b @@@g@C9U#@@@bC3 bB  t&@@@C@g@ &@53@ $"3@; C;` 0 @C@`&@5;@ab ;@&!g@@`5 ?9W@_L_g@0A4A8A?@ g@@@@?@ @ 6?9W@{_L_g@ C9{@/@CbB   &@@@C@g@ &@5/@ %"/@З!C7` !0 @C@`&@57@ab 7@!g@@`5 @!@os_L_7_L_Ύ @_T#'+9G  @% @ 7@"B@$  @@@?@7@[9C`&@9@|@ek @{_kaTeC`##?@7@#@Є>+'@9 G _F_GKO_F_?@C\ADTA˟CC9@@@" GKO9'@_F_lTC`ATACPADXAE\AH T&ˤc;@T 7@@C\AcC\fC\ADTA룰A@AC3/@?9D9a{@Ҡ@ V?@@@!$@@@@  ??@C9@@?@ &@`5#"ڕ@ 9W?@@@!$@@ @@  ??@@@CG?9/@J_G_N_G_ @_T#@% @'@!@$ $@@+/_D_nj @_IT#'@+@ /@ @@37_D_ @C_I(T#} ?T9s@w@ f@@/@?c@9s@@w@? @`@(  @3!@ @! _3@[WS@9 c ?@/@o@8@o@;9"&cd@9@|@Ek @[_kaTE9"f'A9o@'@&c@Ơ>OK~9'@(@{6@}99K@A96@~99S@[@W@ A96@9c@@@?_M_'߈qT6@}99K@cA96@~99S@[@W@ A96@9c@@@?_M_"`c@9|@Ek[_kaTE;"`#+lA9o@+@Ơ>GC~99: @B@?@/@ @?@@o@ "&@d5#7#@#(@c#(N&o@7@#@c;@c߈qT@, @`@ (0`o@ &@`5#7@j @!@{A96|99C@A96}99K@A96~99S@[@W@ VA969c@@@?_M__M_f @C_T#O@@S@ ? @?_@7C @9!@TW@@@! @ ?O@@S@? @@/3[@c I [@ @! B _I_ $ @_T#@#@c @@`'@ &@`5#" ؓ_C_ @_ T~#?9C ~T@9&!!@9@;|@Ck @[_kaTCk`@k@B>@?9"cC@;Tc@;T?9@_@__@_ @_I T#C~T#~Tg@9!߈?q+9@yy@@ `A9/9@9`@d@@yyH@L@P@#'T@X@\@+/3<@@@D@7;?0@4@8@CGK`A9!@y? qT@D9O~SWO~SW$@!@ [l@[C#@;T#_> @_T#9+'@9&!!@9@;|@Ck @[_kaTC'@@B>@90@4@8@+/39@__D_c_D_ @_ T#'+97@[9&cc@9D@{|@k @_kaTC#b7@#@>+'@9C@@9Cc߈qTCX@AL@BH@?I T@@;@ ?@@@CG9'@ _F_@* @! !D !CG9'@_F_@* @! ! !CG9'@_F_@* @a! !*!CG9'@_F_҃ _F_dk @_ kT~#@$@"D@"B9@z* @ A !%!_@_"8@#4@_T_,$T8 @@@ KOs@. @@a@yy!5{ d-@!5{ [-@@"@@#D@ @y? qa` y@@_@d@e@f@$9@@@7g;`* @@y0y!!* @@@ 8 <&BD@d5#4$&B{$$E@5@%%@&B$ $$D@5@$$@&B@$@9$@9_@%DE@5@%@%@&B7@%P;@%TE@5g@#L%`g@p ) @@@ \ `&BD@d5#X$^&B@$`9@4@8@<@%&E@e5#%M&BK@%O@%E@5s@%%`s@>&B@(@T~&&E@e5#%-&B$c6e@c@&ƈ@9$7@@SwX@\@T@J%J I@G@H @c?32 ,@@,3@0@&Є@e5(/@O) @~A !+!_@_@;) @{! !_@__@3@&ЄS@T_w@xcxyc@ ?@CyW@@"0@y_ qT@6&!@@ ,@#(@$0@T&!@@!2 k,@@#@@A0&!$@5C(@@@,@yex x&!@@@#@%@F%'@@@@@ _s'@#@(@@@C%c'b@a@@ @@$@ Is'@#@ @0@y q#T$=@@@x|&Х@f5tG&Х@@?(T@@y qT&@9$8@,@!_0@(@T[2 +@#@$8[@[$!8!@@ _@@ ,[@ 0&@5@"(8@@4$9@,@!_0@(@T[2 +@#@$9[@[$! 9!@@ ɐ_@@ ,[@ 0&@5@"(@@ҏ@C@D@$9@@IT`@yyy @9@y_tqT@( @|! ! (!_@_@@@C%c'`@b@ 3y&@@@@@W{@@? @@_@[#c' @@y`y_@`[@` &@5@ab @w@@@`5 lW@{@ _@__@_! @ ? @@B b9@o@GBB' @G@@&@5o@@o@5_@_! @ ? @@B be9@k@CBBm' @C@@&@5k@@k@ _@_@>c@f@F T_T@B' @!(!_@_ @_i=T ~#O?T9C _A$@&!$@5B%B$ C%c`9{ @@@@@@ko6_o@@D@_Ad&@e5`[ @O@g@c@;#@?'@k+@G/@K@C) KC G_ACOS@9 9[@# @@@_AC9@#@@koA969OACAGASA p_@ __A@@@ @@@koEA969OACAGASA S_@ _3@TS T_A @@@koA969OACAGASA 1_@ __A$@= @@a@yS@a@d@e@?`!T`}?ATh`ʩH(?!Th`ʩHA<@? qT_AD@y qTE _A? qTA@y? qTC9^@"& @ A !p1!koA969OACAGASA _@ _@@y q!T ~T?cAgA[@o@_@O@c@;@?@k@ G@K@ @@koA969OACAGASA _@ _~TcAgA[@O@ @@ @koA969OACAGASA n_@ _C@ @O@?T_AB$@Ct@Bx@c@g@ `?C A969OACAGASA I_@ _Wo_A@C9o@sW@w3{S@@  8@@koA969OACAGASA _@ __@ _}I {_@ _ @_T#@@#@$@t@x@!@'@ +@ ?_C_ @_ VT~#@C$@dC9 ct@C @@ 9@@?iST`@y q!T% @@`9@@ &BD@d5#$&B@@(@@@A@@?@$@"D@!@@ @@_T`@? @@@?o$@dt@cx@ @ ?@@9@C@D@#o@?@_@__@__@_!?*Texax0@ykAT@d$@B9,@% @@?iDT@w@d@?w@dAhAlA @9 @$@"@@!D@w@ @ @@@0@y? qTa$@!@a! @?@h@l@d@@9@4@yy @ @"(@#,@Wҡo@?@_@_@$@t@x@!@o@ ?@ ?o@?@_@_A(@C,@D0@4@y Cy^@@@@@@lp&!!@a5h@o@?@_@_o@?@_@_o@?@_@_@$@t@x@!@o@ ?@ ?o@?@_@_o@?@_@_o@?@_@_S@@@W@#TS@xdxyC @ @@" @_T@@$@@`@ ?@8@<@4@@k@"@{#@K$@O%@wƀ }# @K@`O@``@`ck@|ARw@`&@5{@d{@ @@@f5@C @fLT$ƀ0@@?Thc8!5C e&@!?# @C@``&@5@d@ي@@@f5`Ί@C @fLbT$ƀ0@@?iT@@@@X@\@ `@hc8 a!A#'+w/@3@7@@ ^z#@'@W+@S@ dDz@ @'@+@g/@c @G@s @@)7G@@s@?@@ g@c@@s@z@#@_'@[c" @_@@[@@&@5@@@S@ @(7o@?@@@W@S@@g@c@_@_o@?@_@_o*  (f*  YW @@@ @@@-@T7AT@@A@C@c@@3 !5('  @'@?T~d9?)T3@Pf9?)THf9? iTe 9? THe 9?$ Td$97@@@˄[҄dE @ TK O'@7@K@AA&@d5C[g@D v?@$@!@a! @?@G@/ @+c @7@ @@@A@&@a5C2?@$@yD0yg@@@yE4yL@P@T@EF@e5CE#H@%L@&P@E F$@e5CE#T@%X@&\@E,F0@e5C(E@/@E4+@E8@5G@E<EG@~#0@%4@&8@EDFH@e5C@E~#<@%@@!D@EPAT@5CLX@`~~ _L_;C?@@C9X C@O;@S-W7@[  c@@ko_L_ko_L_ _L_ ~}~@~~@~~ u @C_ITC~#@@S B @@9S@C9@@#@@    @W@@;TL@P@T@#@;T;?COvG@K@O@gko`W@u` @@@S@C9}@#@@Bk@@?g@@_T _@C__@C__@C_Fu @_3T ~#Ѡ<OA @OA?TKA@``k@@@ z@@@! @k@ &@g5x%}OA?lT?GA$@B9@`@ ?@ @{@+@(@! @&@5@C@C @}D@}~TGAd$@0@@{@@d$@@@D@OA?#$T"w˄}@oGA@C9o@ @@? @@ B0 '@@g"B @g@@&@5@@@f}W[_@ _։T`@P@`@R[rkT7`TqЁRrkT@Th[R[wr+ T  TLP&@`5H@5}$@(@z@@T@X@\@KA SA?@#@@bGA$@,@@#C@;TGA$@:,@A@## @;T ?_@c@_@ _@ _GA@C9@W@[_@ _GA@C9x@W@[_@ _`C9l@@P@T@ @ @@@W[_@ _}sxf@ J\s@&OAw@GA@@ T@C@;TY7@;@?@C@C@G@GAX\&@OAa5TȠ|@,@C9@W@[_@ _@| s] @C_)&T# & @[@(@0@,@DA&!$@d5C\|SAyD`yO@D$@5S@C DS@N|@@JThhe8qaT@qT@;`@9w9s9 @7BB4 @;@7@`&!$@d5 !|C[@d@?c @7dg j @ `y `y `y @` y~;@  &@`5# >"`{;P @``y``y``y ` y `y `y @`y @;@  &@`5# "`{f- @``y``y``y@;@  &@`5# "`{__I_3@&!C@7@?@ T3xexyyC@9@sA9;@|!@?qTsA9 ;@"@C$ @%@T@4 `@@#@;@A&!$@5C C@;@C@{sA9C#@yx"x;@t@qTwA9 ;@"@C$ @%@T@4 0@@#@;@A&!$@5C C@;@C@T{wA9C#@yx"x;@sA9sA9;@__I_kr @_) T#/@$@: @`/@$@ @@ @?MT#@@3@? @@@7;?_E_`j @7_E_@c#@&cd@5@;Ta! ,3@#@ @@@?T#@7_E_ r @_) T#3@_-T/@d@9lqTAdha8tqAT?T@!!@a/@# B @d@?T@_bT@#@ V@/@3@_E_?T"hb8q@T7;_E_z@z q @_i T#/@@"(@_T@"@B@_T# @@ @"/@@@! @@ @/@ D&@`5#H"@cz @/@D@H@!@ ?/@ @$B:B@$c:c@$@!@_`T (@9/@ @@ @/@ @@ @B/@ @./@D@H@!@ ?@#@ 9/@g @@ @" /@ @@ @ /@ @@ @" /@ @@ @/@+ @@ @"/@$ @@ @/@a @@ @"/@ @@ @#@@@@37_E_#@@_E_37_E_37_E_37_E_37_E_37_E_37_E_37_E_37_E_37_E_37_E_37_E_ C93@@37_E_C9(  @ !x!37_E_p @_ T#'@ @@#0Ayc4 qT#0@y qT#LA9c#PA9##TA9#0@#<@c#D@ C9  @ ! 3!+/_D_@d @c@%@! @ T #@9 '@ @"HA9 5@C(@D,@B0@!@y Cy@'@@@!?T@C9 | @A !X!+/_D_&!!@a5@y`@y@ y_D_@C9 V @!82!+/_D_@C9| @ @a !*!+/_D_@C9f * @!2!+/_D_C9Q  @!3!+/_D_C9<  @!! !!+/_D_ C9'  @a !L !+/_D_o @_T#/@A9_E_@9 ! @@9/@!@C9@@#@37_E_o @_QT#@D@@[H@!@ ?@D@H@!@@7@W@; ? & @!9x7@ 9@dD@eH@@ ~?@D@H@!@W@ 7@;@ ?@ @l,@D@H@!@ ?@ @"Ay"5$p@[@C9 W @! !!_O_$t@%x@#p@@$%&@e5#"w& @%@Ay%5!Ay4@CL@BP@Z[@@C9` $ @a!!_O_@_@a5_ҷw@!@?MT@!4@yy @@$@$@@ @ @!T[@$@B@bbB@@?@@"4@#8@!<@I@@@@dDdc|CR$@!@B@b T"@@! @} @3@G @c c& @!9x7@ 93@C@G@ ~`?3@@G@W@ 7@;@ ?@ @+3@@G@ ?@@#3@@G@?@@@,@0@4@ c@G@g@_#@C'@? c @C@@?@@&@5_@A_@#w@@ @#@& @&@e5 w @|@e5`w@ @D@H@!@ ?@@ @@@[@C9*@#@@ [@s@@@ @@@3@TҁT&@5@ @`vH @@ @_O__O_KcO[@@C9C c@gO@k3oK@s  #@@_O__O__O_[@ C9@@_O_vTgxfxkaTy_@@! @ ?#@y_@k`T@yyh@9_@?tqT[@ C9 @|! (!_O_[@$@"@!@%c'a@b@ @y3yg@@@@@@E@&!%@e5/v@? @_@C@? cz @@y`yC@`?@` &@5_@ab _@v@$@@@f5 v&BcS[@ C9c@S@_O_[@C9}A @a !8!!_O_[@C9g+ @!T=!_O_lo @_%T#'@ @@$c:d@c@%@!@!T @9@ '@@ @#t@#Ay#5!@AyA4@@! @ ?'@ @"@Ay#@yk!T"C9b@!AyB@? T_aT@@ C9@@+/_D_ 4@yyn @ '@$@@ @ @aT@ 9@`9 @@ @$@LP&@e5H@`u%@(@,@0@X\@e5TTu%@@@D@H@48@e50Hu!@#L@%P@!T@@D@`5<W,C @$3E@F@T/ 5 @#@7@+@/@/;  X3@G@ /@ `&@5;@ "@;@W_H_֠ * `  Nx @_T#@@!'@ c9_D_M @_ T#@@L@;P@7G@B_T%xbx yZy@E&@3 @T @``A!N;N@ 3 c c@9`@@@T ˥~~ITT T iT@Z3@@A7A@$@@T ~@@#@7AAA&!$@d5CDM$AAA3BDFGD&@5!{ӣh!M# 9_@ _# @9`@# 9_@ _@ # @ @9A7A@@@T`  !@@#@7AAA&!$@d5CD`FM AA AEFE&@f5C2M# 9_@ _7A@kMhM@eMbMeExZx#xS@# O@W@T cSWccO$)TTCx@eFt@G|@@yTy 4 @@#@7AA|A&!$@d5CtDL@y# 9_@ _y@MM@ @ C@9@@a 7A@@@@@&T;7 * u@@#@7AAA&!$@d5CDL7@7A;@$DE&@5$|Ch$L# 9_@ _7A"eEPZx#x@# @@T ccc$)TTCP@eFL@GT@@yTy 3 @@#@7AATA&!$@d5CLD`CL@y# 9_@ _@xLuL@ 9g @@@T ccc@C@b@ T@@99 #$@9@`g@k@A947AB&B7AD@A @@7A DB&BD@d5#@$KB&B T @@97AB&B# 9_@ _# 9_@ _# 9_@ _7Ak LL@LL@KK@KK B @C_IT#o@@@@sw{_M_~Tc ?9?9;@S@G@!? T @aA!<A!;?o@cB9G@K@!_*T @!XA!;?o@G@"K@C@T/+ 5 @#@o@/@+@?A9h!8GKC!>37@ c9?@;@G@C@K@W@?T!o@AE@&@`5C Ksw{_M_uKA!@  * `  6Ba @_5T#@@30@yy!Zy@$@ $@3$ @TG @``A!@#@?@C@@G&7@;@@yli(x @h5@ ^H@G&PA9 yh9@ @ @  T @``A!A_G_` *` _H_` *` u 5x @_T#@@0AyyZy?@@! @A  @!?jT, @`` <` ?@ "&BD@d5#$ >"&B@9 @@! T @`X` ?@ &@`5#&" ># @$@@T3/` 5 \@#@?@3@/@@yh!x !&!!@a5@~>_G_` *` |u }5 @_T#@@!@ '@ c9_D__5 @_T#@@D@@@?T_G_@c`@@@+/3! #C'?@ c9@@?LT)5 @_iT#@@@@ G@C@ C@ +7C @#?TW @`` <` G@ "&BD@d5#$ ="&B7@+@G@C@9C @D@# T4 @`X` G@ &@`5#/" =,C @$3E@F@T/` 5 @#@7@+@/@/; >3@G@ /@  &@5;@ "@;@=_H_` *` t 4x @_T#@@!@'@ c9_D_4 @_T#@@!'@@ c9_D_c4 @_IT#@@8@<@  @@W@C@ C@ +GC @cT @`` <` W@ "&BD@d5#$ !="&B+@G@W@C@9C @D@ Ti @`X` W@ &@`5#/" <,C @3E@F@T/` 5 @#@+@G@/@/K =3@W@ /@  &@5K@ "@K@<_J_` *` s 3q @_T#@@!$'@@ c9H_D_3 @_iT#@@0@,@ G@C@ C@ +7C @#?T @`` <` G@ "&BD@d5#$ |<"&B7@+@G@C@9C @D@# T @`X` G@ &@`5#/" Z<,C @$3E@F@T/` 5 @#@7@+@/@/; %=3@G@ /@  &@5;@ "@;@.<_H_` *` ,s -3x @_iT#@@ @@ G@C@ C@ +7C @#?T[ @`` <` G@ "&BD@d5#$ ;"&B7@+@G@C@9C @D@# T8 @`X` G@ &@`5#/" ;,C @$3E@F@T/` 5 @#@7@+@/@/; <3@G@ /@  &@5;@ "@;@;_H_` *` r 2x @C_XTC~#@9$&@%5~T@@  @@r;$&@@KOSjT OS~KK@O@S@T O SKIOTNT@yZ0y@@e@.K@O@S@T OS{K{E@g5€;e@ C@ '@9@$&@`@K@O@S@T cOSccCKIDTCTC@ycZày_B@bK@O@S@T cOScc@cK@?T@@9H9bO@`oC c@9`O@"9_@C_@9_@C_9_@C_s@-y{o@s@w@T cswccCo7TI7T@@yZyB)c @9 (@y_qh T_,q(T_qT@@bL9_,qT @ @" @9@Ch@_@qT_HqT_q!T@@bP93 p@9 7@%W  b@9[@`c @ U@9`c@g@[@ *@@@ < &@b5#8"&:_q(T_qT@@b9{@@@T ˥{TIT@yZdy_qA T{@@@T cccC{biTTB@yBZ@b0ye_q T_qT{@@@AT  cccC{"B@yBZ@by&T cccC{BITT@@yZ@ @y@   "@9 @$;R_k`T@ @ @"`@9@@bT9  @"@9@Ct@#@c>9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_9_@C_@9_@C_9_@C_@z9w9@t9q9@n9k97@?  3@9C@@D@@@H@T@  @@#@@AH!&!$@d5C@D8D ?@C@G@EF%&@f5C89_@C_@`@999@99@9 9 /4 @C_IT#o@@@@sw{_M_~Tc ?9}?9;@S@G@!? T @a!!<!;?o@cB9G@K@!_*T @!X!;?o@G@"K@C@T/+` 5 3@#@o@/@+@?A9h!8GKC!@-37@ c9?@;@G@C@K@W@?T!o@AE &@`5C88sw{_M_֍8A!@ 4o` *` -o N/a @_T#@@!/'@ c9_D_/ @_)T#@@@?T y|?9G@$@ $@$3$ @jT@ @`` <`G@ "&BD@d5#$ 7"&B3@$@9$ @%@*T @`X`G@ &@`5#" 73@$$ @&@'@"T/+` 5 o@#@3@G@/@+@@yh$x% &$&@d5'"@7B87; c9_H_` *` n .r @_T#@@!9'@ c9_D_g. @_T#@@!;'@@ c9_D_K. @_IT#@@ @@  @@W@C@ C@ +GC @cTt @`` <`W@ "&BD@d5#$  7"&B+@G@W@C@9C @D@ TQ @`X`W@ &@`5#/" 6,C @3E@F@T/@ 5 @#@+@G@/@/K 73@W@ /@ &@5K@ "@K@6_J_@ *` m -q @_ T#g@[9&cd@5_|_|_k@D   g@k@6&co@Es@F#'+O#@'@+@jT '+˥~#d@  #@9@g@&c`'@9_L_&cK@ yS G@K@O@T KO˥G T) T@yZy # N@9`@y_@qT&g@/ c<@93@`;c@ /@9;@?@!3@ @@g@ &@b5# "`6W@9_L_9_L_9_L_9_L_@9_L_@*6'6  -3@9_ @C_IT#o@@@@sw{_M_~Tc ?9}?9;@S@G@!? T @a!<!;?o@cB9G@K@!_*T @!X!;?o@G@"K@C@T/+@ 5 G@#@o@/@+@?A9h!8GKC!37@ c9?@;@G@C@K@W@?T!o@AE&@`5CL5sw{_M_֡5A!@ Hl@ *` Al b,a @_T#@@`@9  _9@_9?@@@ @!?jTr @``<`?@ &BD@d5#$ 5&B@9 @!@ TQ @`X`?@ &@`5#" 4 @$@@T3/@ 5 @#@?@/@3@_A9h!8 &!!@a5k@4g [9[9?@@! @A  @!?jT @``<`?@ &BD@d5#$ 4&B@9 @!@ T @`X`?@ &@`5#&" 4# @$@@T3/@ 5 ;@#@?@3@/@[A9h!8 &!!@a5@]4_G_@ *` [k@ *` Tk U+ @_ T#/@'@D3@E&@5+@C+@049@@@jT ˄~@@@T ˄@@ T`@99@@@@@95_`9@qT@@`99_D_9_D_9_D_(4  + @_ )T#G@9&BB@B5~TG@_(K@C & G@K@3O@DS@E#/@@#@jT #˄~d#@@#@T #˄~d~CiTd@9Te@9pӤ`Te@9  Te @9Dc@@c@3@@#@T #˄~d~CiTd@9Te@9pӤ`Te@9  Te @9Dc@  @ Ab@9@G@`@  CT@9G@@  #H@9@G@`@9_H_+@C _y3'@+@/@T +/˄' T) T`@yZ_y# @9_@y_qAT 3@7@;@T c7;cc~C3~ TC@9ITD@9pӃ`ITD@9c  iTB @9BG@bP7@G@9_H_9_H_9_H_@9_H_@22@22@22@22@22@22@22 ) @C_IT#o@@@@sw{_M_~Tc ?9?9;@S@G@!? T @a!<!;?o@cB9G@K@!_*T @!X!;?o@G@"K@C@T/+@ 5 @#@o@/@+@?A9h!8GKC!37@ c9?@;@G@C@K@W@?T!o@AE&@`5C2sw{_M_Y2A!@ i@ *` h )a @_T#@@ ?9?9G@$@ $@$3$ @jT, @``<`G@ &BD@d5#$ 1&B3@$@9$ @%@*T @`X`G@ &@`5#" 13@$$ @&@'@"T/+@ 5 [@#@3@G@/@+@?A9h$8% &&Є@d5'"@|1B@7; c9_H_@ *` nh o(v @_ nT#@@;`@9 yW9_@$@&Єh$@j$ @T @``!% @TQ @``! @`a!Xa!G@A&@e5CE +7@;@3@G@& @@@bT/+@ 5 @#@7@;@3@G@+@/@@y i%x &@f5@+_H_@ *` b "c @_<T~#@9&BC@C5B~T@0@d " @@q+&B@@e@fGKO s [G@K@O@jT KO˥~Gd@ #@ C`@9@&B@`@o@d@ # M@9@&B@`K@#9_@_&BW@y_ S@W@[@T W[˥S),T+T@yZyD  @9 @y_4qT_qT@@b`9>_4qAT; @9?@B@_HqT@@bd9'_qT_qT@@/ c@93@b@ ֶ@9`@"@@c@c#9_@_#9_@_#9_@_#9_@_@#9_@_@w  @9{@@,@(@0@T  G@@#@@A0&!$@d5C(D@l*, w@{@@EF&@f5CX*#9_@_#9_@_eE Zx#x3@# /@7@T c37cc/$ITTC @eF@G$@@yTy 4 @@#@@A$&!$@d5CD*@y#9_@_@@N@E*B*eEZx#x?@# ;@C@T c?Ccc;$ITTC@eF@G@@yTy 4 @@#@@A&!$@d5CD)@y#9_@_@@@))@))   @_T#?@@@@C@ @?TҟCGK_G_@ 5 @'# @#@?Tdd9?T'@ Pf9?THf9? )Te 9? TPe9? THe9? Td9˥@?@F@G @T3AA&@`5CK)CGK_G_` @@IT P9iT H9T9   JJ@ ? `T'/+  *'@#@?@3@@+@@/@@ CT ˄ ( T h)M)@J)G)E)C)~A)@?)=)@;)9)B`E@c?lTd F @_iT#7@T/@D;@E&@53@C3@(g@9h@9xAh@9kT @ 9_E_9_E_֥ ˄ kc G )4KTj@9k@9kxjA k@9j K kT * BTx9_E_9_E_#  @@/@  &BD@d5# $`~(&B@#@@˄cTTg@9Th@9xATh@9 *T T(@) @  kk@kT(   I@i5  G(&B T@9_E_(z(@((q(@n(k( ( M8 @C_IT#o@@@@sw{_M_~Tc ?9a?9;@S@G@!? TM @a!<!;?o@cB9G@K@!_*T7 @a!X!;?o@G@"K@C@T/+@ 5 @#@o@/@+@?A9h!8GKC!737@ c9D?@;@G@C@K@W@?T!o@AE&@`5C'sw{_M_'A!@ ^@ *` ^ a @_T~#@@ _9_9@$@ $@W$ @jT @``<`@ &BD@d5#$ O'&BW@$@9$ @%@*T @``X`@ &@`5#" /'W@$$ @&@'@"TSO@ 5 @#@W@@S@O@_B9h$8% &&@d5'"@ '9 `@;T@B9b{DB9`C@;T_@_ *` ] f @_T#c~T@;T_@@ c9[_K_ @C_ TC~#@ @A@T'B#+ _@C_#@B`# @"@$@7;?=/3@@ c9c#~T CG'@"C+@@;T@ c9@@?Tt @_i&T~#@@@"T7@C;A+@A y_9@$@d $@"$ @T` @``!a @_T#@@ ?9@?9G@$@ $@$3$ @jT`O @``<`G@ %BD@d5#$ %B3@$@9$ @%@*T`. @``X`G@ %@`5#" 3@$$ @&@'@"T/+ 5 ~@#@3@G@/@+@?A9h$8% &%Є@d5'"@B77;@ c9+_H_ *` V u @_iT#@@@ @ G@C@ C@ +7C @#?T`÷ @``<`G@ %BD@d5#$ X%B7@+@G@C@9C @D@# T` @``X`G@ %@`5#/" 6,C @$3E@F@T/ 5 @#@7@+@/@/;  3@G@ /@ %@5;@ "@;@ _H_ *` V  x @_ T#7@/@D;@E%@53@C3@#9@@#@jT #˄~@@#@T #˄@@)T`@99@@`@@9q`T@  @ @`@9@/@@@`@9_E_@9_E_ @9_ @_ T#@@@@A%@5@E@l T@9Ƽpӧ@9  @9aT@ @~@`5C B`S@9_A_9_A_9_A_p @C_IT#o@@@@sw{_M_~Tc ?9?9;@S@G@!? T`q @a!<!;?o@cB9G@K@!_*T`[ @A!X!;?o@G@"K@C@T/+ 5 @#@o@/@+@?A9h!8GKC!@37@ c9h?@;@G@C@K@W@?T!o@AE%@`5Csw{_M_ A!@ T *` T a @_iT#@@@ @ G@C@ C@ +7C @#?T`ߵ @``<`G@ %BD@d5#$ t%B7@+@G@C@9C @D@# T` @`@X`G@ %@`5#/" R,C @$3E@F@T/ 5  @#@7@+@/@/; 3@G@ /@ %@5;@ "@;@&_H_ *` $T %x @_ T#7@/@@;@A%@53@C3@#jT  #@`c @ @`@9@9_E_ @C_ "T#O@@@@c@,@(@_TSW[_I_'A# `@9 @!## 5`7  @7@? Td9?IT#@Pe9?iTHe9? Td 9O@E@?TCe9F@ư˥ҥG@ T h7@O@C@#@E@hT˅gH`@9hH @T Gih&8T9 ˥F@G @q T'@H9 T9˥F,@G(@T3AA%@`5CBSW[_I_` @@ T H9)T9  ˌ ?aT +/?; +@@O@C@@;@3@?@/@7@HT ˄ lT ^@C@@=:9*Tx`xT =Hө9(T@# @1~@@c`f@_LT  @_,T#_@W@@c@A%@5[@C[@Te@9pf@9 f @9ѿkTe@9&eѿ T+?K 5 @+@W@  ?@B%@e5#%w#@K@T? U+@W@?@%K@_Tc@B_@cFh)`@9  Th`xB˥Z@7c<@LT?;K !4T@x @9k<T_cBT?AT@~cH  *Klџ 8T{SKWCGowkOgZyy@9@y_tqT`@z @!<!_@_@@@C$c'`@b@ 3y@@@@@@0@%!%@e5@[@@ S@W@?@@@@@A%@a5CA*[@@@?@_ @B% @%@5@# @"` 5_@c 1@ @@c@""%BD@d5# $`%B @a@c @?,T_@d9 @a@e @c@?+T!џ끰ccc@c@T t@%B@y? q To@{@ahaxg@˥w@k@TCGw Zy@"t@#x@$|@y ^@9@yyMC@9@@@@C@w@G@2_@_@ @A!P!_@_@$)@@_@_@P@T@ Nc@9@@@@DC@w@G@@ӿqaT@q@@9E_iT_Te@yZ_TGCw9?@C@D@B@@C@D@B@{@K@O@@y#9 3yC@@#@'@@dP@cT@A9#9 ?@G@!!w@A#C@!'+FK3@/@a! @ ? @@BBp B @s@;BB @;@@%@5s@@s@_@__@_@$)@@_@_@$)@@_@__@_@$)@@_@__@_@$)@@_@_@$)@@_@_@ @!<!_@_@$)@@_@_@@Ҁ~ b  @_T#@ @@@@/37;_C_@t @!$<7;!?C_C_6  @_T~#~T y@Zyc@{@o@!? T@A @a!<!cg@C9o@s@!_ T@+ @A!X!cgo@"s@k@T73 5 @#@@3@7@@yh!xoskG @G@K@O@ c9#5  S@W@[@_@ c9" 5@ @g@c@"o@k@s@@(TC ';@ @?@ @@`˃B!,I#@ @'@C@ @?@@@?!TC@_@_ *  IIBB@ BI *` ;I \ ' @_iT#@ @A@  G@C@ C@ +7C @T@k @``<`G@ %BD@d5#$ %B+@7@G@C@9C @D@ T@H @`@X`G@ %@`5#/" ,C @3E@F@T/ 5 @#@+@7@/@/; 3@G@ /@ %@5;@ "@;@_H_ *` H x @_ T#@@A @d @@yy_@@ @O/ @T@۩ @``! F @_T#@f @ A!?!CG_C_) @_ T#`4F @!@C@G@ %!"@5?@ ?@7@;@$@53@3@s@ypy$@5#@ #@+@(/@,!@5'@$ '@K_C_ @_*T~#@#@_A+@KB/@OC@D @E@cF@oGs@yyH'@k@?5T@K@{; .!TL @mR;rkTL1@9qT-{Ld! TK @lR[rk TK1@9q@TH?=T@K@{;ۍTL @;͍R;mrkTL@yRkTL9@9q`T{[ήLTK @;͍R;mrkTK@yRkaTK9@9qT ~@ !*w{ P!` @j@@_@_@S; 5 ?@E@W@W@S@?T c5 ݡ@#@S@gGo@ G@?@cTg@ B5g@ S@¡@#@gGS@Ac@ ;@@ @?@@jT?@CG@cTg@ 5g@ @@#@@@?@&Hh"8A9"CTW 5 @#@@@W@Ggb G@C@g@1  ь@@_@_G@?@g@GCg c5@ @s@yy_@ w@[@ @װ[@@@@@@s@@ k@K@O@#'g@+C@/G@3?s@@_@_a @C_ !T#_c9w@@o@s@C@o@s@ @@@c@9w@C@@@^;?9ftrT @ #@@@_A99w@;O9 {@@@@E+@/@#@'@#@+@A96~99_@A@ ?A969c@@@?_M_7[K@@ "B @@@A_T@` $D@"?KH @?@D%!"@5@@@Sa!  @[@%!"@5K@S@$ K@ S@W@@9A! @!)%!!@5W@  W@b`;@ O@o@@@W@A96~99_@A@ ?A969c@@@?_M_[G7@ @K@?[@G@A96~99_@A@ ?A969c@@@?_M_֗ 6_M_p @C_ T#o@@~T@s@w@ {@@@@#'@+@/@+@_M_!!_M_8 @_ T# V @ !#_C_  @_)-T#O9@O9?@@ҡ!?@%j@) @!?jT + @``!%cE҅h 8 {7@d(i$8ф?(jTT҆|AC(˟PcTP_T  h$8@@SPOH@I@K ˄BTKGC !5 Ǘ@#@K@C@G@K  O@@@K@A%cd@5@D@%c@S@T?T B5 @@#@@A%!$@d5C%cE҅h 8 Vk;?@ai!8!(jTT҅|DC?PcT?POTh!8@@SPOG@H@* !BTKGC !5 M@#@K@C@G@K  [O@@@K@A%cd@5@D@e%c@S@T?T B5 "@@#@@A%!$@d5CJ%cA{h 8@+@/@@ @T@%c %@@@ 3d3i$8cф(jTT҅|@C˟PcTP=T;33`h$8@@SPO@ @K ˄BTKGC 5 @#@3C@K@G@K  O@@@K@A%cd@5@D@%c@S@T?T B5 @@#@@A%!$@d5C%cEE҅h 8 ;@d(i$8ф?(jTT҆|AC(˟PcTnP"-T  h$8@@SPOH@I@K ˄BTKGC !5 D@#@C@G@K@K  RO@@@K@A%cd@5@D@\%c@S@T?T B5 @@#@@A%!$@d5CA%cEE҅h 8  C 3@a(i!8!(jTT҆|DC?PcT?PBTh!8@@SPOH@I@K !BTKGC !5 ˕@#@K@C@G@K   O@@@K@A%cd@5@D@%c@@ @6S@T?"T B5 @@#@@A%!$@d5C@%cF҆h 8 +@t@|@Ըf&1|DHa+@@D@F@"T B5 l@@#@@A%!$@d5C@%cA{h 8C(i!8!(jTT҆|DC?PcT@?PbTCh!8@@PSG@H@* !BTOKG !5 #@#@O@G@CK@O  1S@@@O@@%@5@A@;%c@xurolifc`]ZWTQ 6, @_ T#W[_9y(g@9@ @@%@9@|@k @_kaTC?SgGg@?@C@S@%@g>[W@_9 @} T Շ@9 _)  4dHk@ @9@k@ @B!@B%cc@9#@g@{|@k @g@_kaTFG3/JG3@G@/@g@S@g@?@C@O #3g@@s@#; @@T7 5 -@#@7@s@7Ko@ =;@g@ 7@" %cd@5K@$O@O@K@Bs@o@he8(qT"T !5 @@#@g@A %!!@a5CO@""Bbh 8 @"@ @#@$@! @ ?@@w{_9W@G_L_֕*_L_, @_T#/@3@ 7@;@?@$@@@ _E_ @_ T#/@3@ 7@;@?@$@@@ @mw_E_ @_iT#$@A! @6`%@5@ab@@a @5$$B_C_ @_)T##@@BmT#hb8qcTq)Tc9_C_ @@'+@c9_C_ @_)T#;@?@ m-7@ @@@@$"T+ * @@#@+@A%!$@d5C'$@G@%@5 |C@Ah C@_F_; @_ T#3@7@ %@#@ BQ @?@@%@5;@A;@-/@ #@@@@@@%@5@@@_E_ @_T#'@`+@/@ -'@ =@@@_D_ @!@37_D__D_ @_ T#'@+@/@ -'@ @@@@37;_D_;_D_ @_IT##@'@ -@ _C_ @C_ TC~#@@~T^@3@;@@3/@!T@9@@ @@@@@A_9/@E;3@BT7 5 @#@/@7@@3  _A9`@;@3@_@C__@C__@C_ y@@ @C_/T#s@ o@}@@@ @@@WC7s@@@ ?@@@bo@d@@@˿T 5P@@T#@9d{ф@ӟdqiT(qTAT4qT#@9(qTW@7@o@d@e@W@7@(_M_w{_M__M_֠: |@@_M_Th`8q`T$q T?-T'_iThg8qT%qTC@?HT?T!3BTS 5 @#@S@3@cK +3@o@ K@ "@%@5c@#c@4_ @-To@@ @@@# o@d @f@g@BT;[? 5 @@#@o@A%!$@5C_@o@_@;@?@[@o@e {h$8GN?( T? Tf @!Kh@i@B˂@"TG/O 5 @#@O@/@G@Gc" K@o@ G@ %@5c@"_@_@c@o@@ @@w{_M_ք*Thd8߀q`T$q T?MT'IThg8qT%qTTdh`8q`T$q T?-T$_)Tehd8qT$qTC@?T?TBw {_M_ | @_T#@ '@"@PC@9@_qT_$q@T'@B@C$@C@D@LTTcC@CA@C@@@D$@BTdh 8@$@(@+_D_m R @_)'T#/@@!@7@7@T@@T@PC@9@@@@/@@T߸q!T@7@@~3@@4q!T@7@@~3@@~7@@?@~T4q!T7@@~3@@(q!TҠ7@@~3@@~7@@?@~7@@?T(q!TҠ7@@~3@@ @$@7@@?G@@mT?T@@@@$@ T i)8$(?~V !T(qAT7@@?~@H @$@7@@?G@@mT?T@@@@$@ )T i)8$(?~$aT4q!T@7@@~3@@6(qT7@@?7@@?~@7@@?~@iT3@i 8$3@@T# Cd@9$4@@$3$3@#@/@@@?T$!3#@%@c@$@T%@`5?  ?CG_E_4 1 .  @_-T~#@ @T O !*E@O@?cc- =@{@"@@ 1M@@@B?'T@9q`T$qaT@K@@@ @@${@_@_% ܜ@@ @{@!#_@_c@?@;c@cc- @@@@@@GgwoCS  @97_@G@?T/g@ @@@%!;@c@/@BC@g@_TKkG@@ `4@_@7B-{@ k@K@@@@@`;@1;@T7@c@@;!!|As%Є@5_@C_@-{@ k@K@@@@@%!#@5c@Cc@;@s@A%_T3 c* @@#@%3@;@s[W7@%@5!|_@h!_@-{@ k@K@j@[@@W@@%@5s@As@@%!;@c@S@.H- ~g@C@@@ ~@{@!#_@_{@_@_B_TThb8q@T$qT>{@w@o@_@_Ҹ  @_ T#7@;@ ?@C91^@7@;@ ?@~@ ! '+ : #@w@@ r~@!#CG_F__F_\ @_) T#?@@@ K?@@@@!! K@@@C_G_/@+@%˄F3@?-T+'3/  C9]@ T'@?"T /@C_G_C_G_>   @_ T#р%`߈5%``- @K@G@@qBT$hb8Tf!ƀ+he8Eѥ@ӿdqTc@dqHTc @@@ *@@OS_H_ @@@ @@OS_H_OS_H_OS_H_ @_ T#+@'@BmT#hb8Td!+hc8 X@@37_D_@$h"8@ӟqB-T$hb8#ѥ@ӿdqTc@dqT$BB@ c? @@@37_D_'@ +@@@37_D_I @C _ TC ~#k@%@5$!#$B$!c0"B!@;Tc+@@$!#+@@'D@%@ ? @@@%@5'@A'@#@!?T_@C _@ @_ @_) T#с@?@@/C@G@ -/@ I@@@@$"T3 * e@@#@3@A%!$@d5C$@O@%Є@5 |K@Ah K@z_G_v "@T#$ @_IT#с@'@ @+@/@ {-@ _D_v v"@#T#$ @_ T#с@'@@+@ /@c@@37_D_֧v P"@#T#$ @_ T#с@7@@#;@?@ +@+@ BW @'G@@%@5C@AC@-#@ +@@@@@@%@5'@@'@_F_Wv "@T#$ @_T#с@'@@+@/@ -@ 0@@@@37;_D_!v "@#AT#$ @_)T#с@@@@_A_v "@cT#$ @_T#'@+@? Thb8qjTB  #@'@+@dџxqT$qT@c9_D_c9_D_x @_)T#;?xqcT  A!3@ 4@য়9_C_W @C_TC~#AA c9Z@?A TA@ A BB!@9l@AA a @@@#_TJ#@C@@"TG 5 @#@G@@@ @@@_@C_A_#T _냢T3BC;Aa @!@9@য়3@@;@A@_aT A!!@9@য়3@;@A@"  @@@#_T##@@@"T[ 5 <@#@[@@@ L@@@  @#T##@@@T !5 @@#@ah 8@;@  @@@#_Th#@@@"T? 5 @#@?@@@ @@@A`@o * t@~T !?A Mo@@ _@C_k@o@@k@@@?BTw c* @@#@k@@w@koF%@5|Ch   z@! k@T@ @@_@C_@c@ @s#@ ?A @@@ @#_T##7@D@@"T 5 9@@#@@7@#DdҤh"8  @_`T@E@@BT 5 @@#@@7@#dE{h"8s@% @ A!!@9@@$@s@  @@@#_TG##@D@@"TW{ 5 ه@#@W@@{@{ @{@@@7@ c@9s9  @#_T ##@D@@T 5 @@#@sA9#DDҤh"8#D @_`T@E@@"T 5 @@#@sA9#DEh"8 @_`T@F@@BT{ 5 _@#@{@#Dҥ@)) *@+ @y)@9 i"KyI97@@Y7@`@ BB!@9@য়#Dҥ7@ @_`T5@F@@BT 5 @@#@7@#DҥFFh"8@?  @?`T0@@@T{ 5 @#@7@{@{@ @{@@@k@?Tl_@C_ *`' "!?J THha8q`Tqq!TT( @?`Tc@  @@ "T{O 5 @#@@O@{@{  @{@@ @#T#@d@@T 5 }@@#@#d Ҥh#87@c@@#DҥF T! @_`TN@@@"T{C 5 K@#@C@@{@{" [@{@@ @#T#@@@T 5 "@@#@AAh 88 *@' M! *@' F! *@' 7?@;@C@TO9 5 @@#@C;S@/@O@OA9?h$8 _c_I_;@?@W[!!A_c_I_ _c_I_֠ *@'  *@' ROK 0' @_ T#g@k@ BB9U@Tk@g@ k@?T"g@`_T9@ӟqAT#A/cc@O Cc90@T /@hT#@!!O@@ @@@+@G @@a?[G@+@ BB9@T +@?T!G@? T9B@_qa T"3cc@K Cc9@T 3@ T@!!K@@C' @@@@'@`T7SW;C@ 7O@9W@7@;@S@D g@k@_L_[@o?@sw{_L_ g@k@_L_ g@k@_L_ _L_~}|{ H @_T#;@7@_m TTdh`8q`T_T_)Tehe8@$qhT_ @qhT_ѥ@ӿqhT_iTdhd8ѥ@ӿ$q)Tѥ@ӿqTф@ӟqT! A`? MT@ p@ !*'+\` #@i@@GK_F_ 5@# '~@7@#@;@?C_F_T T&hd8qATI T&hf8@%qTDŽ@qhT\@qhT҆IT&hf8 @?%qTȄ@qhT\@qhTBTh%8 "Th%8 X@@?C_F_ j% @_I,T#os9@@ @@@@@@KO3@?jT@!7 M@9@O@3@K@"a !? B' @@@@O@3@@#` ?K@ !' @@@`%@5!9Ac9@@ K@@@cG@@ 4@W@?@@ n@_c@G@ n@#!> !* _@$,W@?@ n@_c@G@ n@#!? !* _@ , `%@9@@b%B@ |@Ak @b%B@ [_kaTA`%@ >0@>s`%@ o@9O@g3@k#B= c* #+@@@9" 9?aT@@@ 97T;S?@O_O_֦"T B* }@@#@ 97@[GC"?@Gg%@5|W@#h"W@+O@3@ Zn@_[@G@ C@yn@#!= !* _@ !9{+9o@0_O_!@'@(@ATG[W@ L@9;@[@S@G@ 97@?@gT9o@n0_O_ 6)m k_O_ @_T#`%@5@`!#! #BCc`!_A_ @_T~#9 @@ #V@@@@@-@9 #~T`5GK@OpS_@_#DC@9 W@[@ o @@  @I#@@ kT @"@_T"@#@kT@9qT@@9qT7@;?a3C#B> c* )@9`7@@ @;@3@ w@{@#B3C@B@AT NQ@9w@{@@9@W_@_@@  զ_@_@9?@3@?3@!TW@/@@/@"T/@Ch`8q T$qT4qT(q`TqaT@T`T#3@@_cg_E__ _E__ _E_/@T;@ ]>@93@/@ _W@c[@g_E_3@/@ 7@G@K@O@@3@?T"7@d/@K@TW@b@Thf8_q T_$qT_4qT_(q`T_qTW@@W@`TaT#!3"@!@_cg_E__ _E__ _E_3@W@7@/@K@?TG@ =@93@W@7@/@K@ITG@@9( _W@c[@g_E_ hh8 kATh?T ccjT # =@93@W@#@_ _E__c[@g_E_1*  @_T#@#@#@@ @)7@H_F_ @_)T#'@C9&@@@+/3_D_ @_IT#'@@C9 @@@+/3_D_ @_ %T#_@@ @#@#@@ @)_@0@4@_T!@yR?k!T@/ ~ X@@gko_K__@9@BC9.@K#!3"@#@@@C@?@G@7@;_`T IB@9#!3C@?@G@7@;@K@"_@ @9`K@#!3C@?@G@7@;@F_@ @9_@C@ 7@;@@9` A9_@"@ @"@7@`T C@ <@9_@7@`@ C@ ;@8^@a ! OS: c@W@@gko_K_ C@ 7@{@@ ]@ !*OS- c@W@@gko_K_#3@@gko_K__@@!C9C9@@@@@%@5_@_@ g _K_gko_K_ @@OS@ c@W@@gko_K_#3@@gko_K_| @_T#@(@$@'@T#@ <@9@@(@'@?T+@c!#@  c9_C_c˄@!?T@9qT$qTa@ C @B@?`T ;@9c9_C_c 0 @_T#@4@0@'@T#@ ;@9@4@'@? T+@&#@  c9_C_֥@T@9qT%qT@T@9(q!T@ @@?T)щш@E%Х@h5 `@@ @?T р р @@`5 @@`T u;@9c9_C_@@  @_)T# g @ ~`@x/`@#!8 @%@5#!8##B8dj@@%@5#! ##B Wp /@3!h7;Bl ?C`GK *~k@#@_CT+' !* ~c-}g @~'@A%!!@5+@#!@ +@#B@_J_~^ 3 @_ T#с@/@3@ 7@;@@@@?CG_E_"@cT#$ @_IT#с@/@3@ 7@;@?@ѳ@@#@CGK_E_"@cT#$ @_T#с@'@+@ /@}@@@37;_D_"@#AT#$ @_T#с@@ @_B_"@AT#$ @_T#с@A/@`@3@ 7@;@@@@?CG_E_U "@cT#$ @_T#с@@_A_ֹU b"@cAT#$@@ò@@'@@@@ l @_T#@@#@C@@E@?T ?@9 @@#@C@ @B @?`T  ?@9#9_C_  @_iT#@%0@9D%9 @9@%@5`#!  !#B c` @@%@@5##!  #B#B c_B_ր * (   @_i T#@%@߈ 4#@+@?T#@@@K@ /@ 3@7@?+@s_D_+@#@?T @%߈5@% d# @@@K@ /@ 3@7@?+@s_D_K@ /@3@7@\3@s_D_e @_ T#@%߈5@% +# @@@ '@ +@/@?+@c_D_< @_ T#@%0@9 K@ +@ /@3@+@ k_D_ր * (   @ @ @@ [9ehd8ʥ~Ehe|HӠ?T 3_ց @_iT# 3e @ ;@x#b_T!?Txa@ #_C_D~hdE|Hӂ(x!c T *T6B|A"B|A @_i T#3@@TK@!+@7@/@@7@/@K@s_D_+@9 3@s_D_[9@%ʆ@9FxfG@9xhG @9xhG0@9xhG@|X}~hhG|P~hhG|H~hhG~hec ф  T!i @_T#Ѡ#@K@ +@/@3@3@k_D_J @_iT# 2jd @`x! T@%@5##B_C_B_ *T6|A|A @ @@!T@)Mʚk!!KTk6E@)Ik6%@x)Ek6@9)A+_ @_ T#@'d @'@ +@@@@/37_D_@/_D_ @ _ T~#~TA 6@!:@@C9@%@5C@;T@' 1} A AY@@@A ,@%@d5#0U"kR AA!aTAҁT@?@T )c @? !5t f@CC~TsKtOSAWA[os@%@!5?@C@;T  )?@ C|@%?@a!+A,A%!%@e50~T;@7@C@;TA%!"@"5A@;TGC,A |G@A%!C@A@ @`5D @ADA_@_3C@9@ @ 9_ց @_)T# T[93G@,@0@!@ ?C@9@@@3@TG@h$8qᗟ[A9!5;_9#@x@ w3@G@ x_A9  3@f@3@;@";@ 3@u@@KO _H_ SW_H_֠#@%@@ SW_H_x%jTFhd8?T/7W9 B )f@@#@'3@7@/@WA9;@ =v@@KO _H_w kj @_)3T#CC~Tg@,@0@ c" W@@ g@[Bw#@'@#@.g@B9?|qTB9?,qTB9? q@T#@%@@_L_ B99@_T C#c ?c@;B$B99[@B w#@g@ xA96 ,@"0@ c" W@@ [@w'@#@'@#@c#Є3@@TG; :@9#!4#@ @G@;@_L_֠#@g@Cx@ [@w3@g@ x Ay B5? e@Wg@",@#0@ " YW@@ W@?@n'@#@'@#@c#Є3@@?TC3 :@9#!4#@ @C@3@_L_֠#@g@"x@ W@?@3@g@ xW@s?@w{A96v@@ @@@DA9g@ 6i@@ @@@koA9g@6 0@",@ c" V@@ [@w '@#@'@#@c#Є3@@TK7 -:@9#!4#@ @K@7@_L_ g@Ayx@B<@?kT?x 8@"4@S`  V@Og@",@!0@ c" VO@ @@@S@ ? ,@"0@ c" V@@ aT@@g@ 4@%@`5#8"_L_֠#@%@@_L__L__L__L_˿b @_ T#W@DA@A4@8@!@[@ _@c@ ?@@@W@@@@ D%@e5CDxc@TCK#@Dx@ [@3@W@ x |@C@ | @A#DA#Є3@@!T t9@9`W@C@ @A!DAgko_J_W@,@0@ c"  V@@ W@}w'@#@'@#@C#Є3@@?TG? A9@9#!4#@ @G@?@W@#@D%@d5 DK@ C@gko_J_  W@x@@@kT|@kT#!%#@!@@D%@d5DK@C@gko_J_<@J9a@A%!$@d5DK@;@7@W@ @@%@`5#DK@ @A@C@Tg _J_[@ _@c@@@@gko_J_C@gko_J_֠#3@@C@gko_J_gko_J_  @_)T#@4@8@! @ ? @@#'_C_ @_iT# _ @` ` #!% A%!"@5#B %C#B %X _ @` ` #!@% @%@5#`%#B`%>_C_e @_ T#@@#@C@@E@T B8@9@@@@9#@C@@9a!@aD@9CD@9!!@ @A @?#9_C_4 @_)T# R_ @``` ` #! !%!"@5#B C#B  8_ @`@` #!@ !%!"@5#B`C#B` _ @`` #! !%!"@5#BC#B _ @``` #! !%!"@5#BC#B ^ @{`@ ` #! %@5##B|_C_r @_IT#7~ K#q@?T ~@9@@9C9G9/_D_~ z @_T#@?T@C@9qCTqCTqT?T!Є;hc8B@9Dф@ӟqTB*T!"!5 h`899'_B_y@'_B_y'_B_֟qT? T!Є;hc8E@9@q"T*Th`8B@9Dф@ӟq"T*T!"!5 h`899@'_B_y@'_B_y@'_B_y'_B_֟qT?T!Є;hc8E@9@qT*B Th`8E@9@qT*Th`8B @9Dф@ӟqTB*"T!"!5 h`899~'_B_y@'_B_y@'_B_y@'_B_y'_B_y@'_B_y@'_B_!"!5 h`899@'_B_wwҾwҺҸ $ @_T#@?T@C@9qCTqCTqT?T!Є;hc8B@9Dф@ӟqTB*T!"!5 h`899#_B_sy@#_B_sy#_B_֟qT? T!Є;hc8E@9@q"T*Th`8B@9Dф@ӟq"T*T!"!5 h`899@#_B_sy@#_B_sy@#_B_sy#_B_֟qT?T!Є;hc8E@9@qT*B Th`8E@9@qT*Th`8B @9Dф@ӟqTB*"T!"!5 h`899~#_B_sy@#_B_sy@#_B_sy@#_B_sy#_B_sy@#_B_sy@#_B_!"!5 h`899@#_B_www $ @_T# %@5!%! #B!A#B!#%c w 1! _@! !1 i@| 1@ i@! 1@ Bi@A 1@ bi@a 1@ i@ 1@ i@ 1@ i@ 1@  i@ 1@ ! i@} %@5@#! #B @_D_&m @_ T#+@'@+@'@_TTAd sc@9g@9@@B%!7  @8T$ }%!7hd%!7T4TT@B@/_D_/_D_  @_iT#7'@ +@>@@9!+@?T@9q`TqaT@kc9_D_c9_D_ @_ T# @C@9G@9D%h!8#9KT_C_ @_T#+@'@/@ T TEh`8q"TG%hf8@9@C @c@9g@9 T'@/@G%@+@ @8T }(!7ie(!7@ ƚ&1i@y)iy)?q`Ti@9?bT !J IyiW@y))=@ө4@9f9ҷ_@y&<@Ӧ4@9f9үf9i@y[R?j T39_D_֡a939_D_T@39_D_@3@9_D_3@9_D_ "  t @_)T#Ѡ "[ @@`  ` #! %@5##B_C_۹ @_T#@`F99@AA@ ?C@9 @??99_B_ @_ T#G@+@d@Tb Td }ehe8@9@?(T_T+dA!˅7f AgAhy* BB"T3;/` 5 !^@#@3@;@/@3; 17@G@ 3@  %@5;@#" ;@:@C9_H_y|{r W @_i T#O@ `5S@+WA96S@'@y5WTd"-h`8@<@W?(Tb@<@TWB!7@ @W_F_7@CC@;TO@S@#)W_F_7@W_F_,WW  @_I T#O@ }47@wS@+WA9#6S@'@y5WTd"-h`8@<@W?Tb@<@TWB!7@ 7@CC@;TO@S@#_F_WҿWҵ  @_T#_@!%!$@d5[g@k@!@5c@c@O? /@gx&?@g@ T7@;T@A@#@;T ?@33@+KA953@'7A9c}kc_@d@ TmC@9 _@_@`F9 TdyA97@k@_TT氆Gc@T; 7@k@_@y;@c@3@/f@kA9G5g@ggF9i9c9߀T o_K_o_K_{ix`ix&TBTi ) @9?kT߀cT{{y L @_ T#@`F9 TdyA97@3@+@g_ T TŰB_ T v@'@#@_#TT°T c@;@b@@95d@ddF9e99_T@`x"_C_{ex`ex"_mT@BTe @9kT_cT{{y t @_ T#'@CF9T9Ayc  S#8@'@"F9B"9"@_T?x"C}@9$h#8" @9 @ _D_{Yyo < @_ T#/@[93@TC }Ehd8T#9@y! k#@3@/@_x!@@9Ch!8#@ 9_E_y9{  @_IT#'@{9+@Tdx`@9@9@?T(TbycB #[_D_ y{ Ҷ @_ T#'@+@ /@cd˄|@e%I|d7|@҆a|d3 Ҧ#7! cA+@_ T7/@# ˄@'@D 3;,#t7RkT+@?CT/@Bcc'@c! ;K#^ 7_D_7_D_@ l @_T#@C"B|@c#Ic|cdb'C|@҄a|d# d@'#b;,B' C RkT@;K_C_. @_)T#/@C@;@3@7@TTG @9߀T#kH  @9 TkT TGxfGx$ '/@#@ ' "_LqT;,_TqT/@@ ˀ ~ӄI pJ#@/@d$I@0"˛tR_k"T5lqBTC|@d$I|哃cd c~kT/@@ 4#@/@d$I@d$Id$I@T#@/@exbex @/@@D_E_{{{{ j @_)T##%c`c߈5 %`  _?@d@3@@_G_TTex`'#A9'A9T(Tgy  ˥The8qT T%@9~q Tex`++@@96Eѿ Tf @9KA95?Tk凟҅/# </?@/@ 5/!@`@Kc@TbTxc+_TyF&CA9GA9@T(T T;'? @K@'@;@y?@ 9_(Ty_@_y?L9yF{+@ *   $ @C_ T#O@9 C07!!`8@;T ! !@# %@5O@ XO@ c TA++@'7A9@ 9 @0@;T `A"TA/C@;T/@#O@ @@@SW[_I_ @ _ T ~# W{AOASAW%##@@wA"Tx`;C#@;T#@#9+@cA9 7A !5 AL@A7@_# T?{A_T )@I @ ~Tk;@b @;T #@;TAG?@_7@cg!k%!!@!5C @;T CA! bC@7@ a@@@_@ _{AAA_@ _D3 k @ _ T ~# W{AGAK$##@@wAbTx`;C#@;T#@#9G+@cA9 7A !5 A0L@A7@_c T?{AT @H @ ~Tk;@b @;T #@;TAG?@_7@cg!k%!!@!5C @;T CA! $bC@7@ @@ a[@@_@ _{AA_@ _֤ k @C _TC ~#OsA?wAC$##@@oABTx`3A !H @;3@Cc@;TwA#@#9+@cA9;@@ @rH @7 ~Tc3@b@;TC c@;TwA?%BC@#5 @;TA! aCH @!6%!"@5;@ ;@ݯwA &@5sA@sAү7@@!@5# ǯ€į@ 9_@C _7@"@"@0C@;TwA#@#91+@;@wA7@@T @c9@;@ 9_@C _@ 9_@C _ԯ < @_IT#A@B @C@@@JTTx`e@@9?T@9 9_C_@9_C_g@Ө@kTg@THhg8@?"TIii8 kT9_C_ y{ N @_T#w@@{@_` T@@;T@@CC@;T#@#9+@Gw@A AA@@f{@FT{@HT(I; "TOWK@ 5 J@#@K@W@O@?S@ ׯS@?@;@_N_w@ %!!@a5 ۮG@_N_0&h"8T@@TFhe8TC9K@ 5 J@@#@w@G@K@C@A9 ӥf @_)T#'@@+@ @c9@'@ O@'@@_KTAA A/37_D_ @C_iT#9k@g@_ T_@[@eqT9dO@C;9O@@A@#@;T ?@?A9` 4?@+A9_xqT?@/A9sA9B9B@_xqT9 5+@'7A9B@9@`A9A9_kTk@C@_;@Tk@C@_Tk@C@_;@O@d @9?@7A9 6 ?@3A97A9A9ATcC9k@s@9_I_s9_I_c_TW@S@Thc8qT;@s9_I_;@s9_I_cC9k@s@9_I_;@s@9_I_@ *  c_TThc8q#TW 8 @C_I%TC~#@9@SO@;T@B@#@;T@@?@G'B9 4G@C@F9?xqTG@;F9A9A9!@?xqT9 5C@7A9!@9@?T@?T@9?TO@S@@;TCc@;T@G@#,'@`@1_@C_ C07!!`8@;T ! !@#@@_@C_KC@9K@_@C__@C_K@'B9@"@_TKCO@S@@;T:@C@#C@;T`?@G'B9` 4G@/@F9?xqh TG@?F9A9A9!@?xqT9 5/@+WA9!@9@?@T?TO@S@@;TC#@;TK@G@#'@_@C_ C07!!`8@;T ! !@#K@@K@E9K@@ _@C_E9G@3A9_rTA95h _@C_@ * @ *   @_T#'@?T#@C@9q#Tq#TqbT?Ta!!% h`8A@9"B@_qTy@3_C_@S9x3@yy3_C_y3_C_֟qBT? kTd!%hc8E@9@qT*"Th`8A@9"B@_qTy3_C_@S9K3@yy@3_C_y@3_C_y3_C_֟qBT?kTd!%hc8E@9@qT* Th`8E@9@qT*Th`8A @9"B@_qTy@3_C_@S93@yy~3_C_y3_C_y@3_C_y3_C_y@3_C_y@3_C_!! x`xy@3_C_ 4 @_T#'@?T#@C@9q#Tq#TqbT?Ta!!% h`8A@9"B@_qTy@/_C_@S93@yy/_C_y/_C_֟qBT? kTd!%hc8E@9@qT*"Th`8A@9"B@_qTy/_C_@S9{3@yy@/_C_y@/_C_y/_C_֟qBT?kTd!%hc8E@9@qT* Th`8E@9@qT*Th`8A @9"B@_qTy@/_C_@S9>3@yy~/_C_y/_C_y@/_C_y/_C_y@/_C_y@/_C_!! x`xy@/_C_20., 4 @_T#C@_qTA9b*0T@|ӡ!! h`xy_C_ր# @A9S93@yy_C_v  @_IT#'@?)T#@C@9qTqTqbT?T!! x`xA@9"B@_qTy@3_C_@S9x3@yy3_C_y3_C_֟qbT? T!xcxE@9@qT*T`|Ӏh`xA@9"B@_qTy3_C_@S9J3@yy@3_C_y@3_C_y3_C_֟qT?T!xcxE@9@qT* Tc|ӃhcxE@9@qT*"T`|Ӏh`xA @9"B@_qTy@3_C_@S9 3@yy~3_C_y3_C_y@3_C_y3_C_y@3_C_y@3_C_!!9 x`xy@3_C_31/- 1 @_IT#'@?)T#@C@9qTqTqbT?T!! x`xA@9"B@_qTy@/_C_@S93@yy/_C_y/_C_֟qbT? T!xcxE@9@qT*T`|Ӏh`xA@9"B@_qTy/_C_@S9z3@yy@/_C_y@/_C_y/_C_֟qT?T!xcxE@9@qT* Tc|ӃhcxE@9@qT*"T`|Ӏh`xA @9"B@_qTy@/_C_@S9;3@yy~/_C_y/_C_y@/_C_y/_C_y@/_C_y@/_C_!!9 x`xy@/_C_ca_] B1 @_T#C@_pqTA9b*T@|!!9 h`xy_C_ր# @pA9S9 3@yy_C_2  @_T#@A@C @3@T|chdxD@A@T~ӂhbx@9fc@9<@h<@kTg'+#} #@9@@;?_F_՞ @C_LTC~#@ @@@ A@@ @ ?@9@#@@@@@9FHcC@9?9`>? @C@@%!#@5c@Cc@mD eE?A9C@@!> gk@W7{@k@T?9# @@!7@`@@C@9#C@%!c@7@W@`>? @C@@%!#@5c@Cc@,D eE>?A9|?jT3Sa!T; ~@93@?S@B7@W@@ @@?A9@P6T!BB~@ @@@@7@W@bC@$!c@?A9>+K?A9b@  @K@+@?9# 7@`@@Z@zW@ @@K@ +@?@@@@K@ +@T@@@?A9C@$!c@@s@o@-T _AT)T'@k@{:@{k@g@ _AT'T'ig8qT{+@D9Ys@w@o@g@k@?_ ` @@@@D9?@_@@@@9-Teh`8qTCGkTMT`>> @C@@$!!@5G@AG@=C ccCc> _@C_D9{@k@T[;#  @@hbBT;~ @O@/@7#@W# ;@7@[@W@/@O@[@;@@@9/O`-T`><> @/@@$@5O@CO@إC dЄD@!>@`s@o@-TfATT@k@{@`{k@g@fATTh`8qT{B_Thb8qcT7@W@c@C@@{@k@T#@@A@ @@ ?c@9`@@s@o@?-T#T? T@@`k@{@@{k@g@#T?T@h`8qaT{`>= @C@@$@5c@Ac@[@C -D@!>~@cͷTf@9߸qTg @_T#s@yrT#@'@  c@9 @g@98T! } B7@haT`T4T@C9_C_C9_C_u qC9_C_4 @_iLT~#@@ @@    A9@y9_ 8TGTCwcKGgy?#!`$@D_es wC@y@A*y;@yByA9c@ ys@ _@@9;@@y@y@@}kC@&<@ qTqT@@9kz@! qT@@9k}z@`q`TqT@z@}q!T@@9kz}@@z@9[<@ӟ qT$ 4q`T qT?@:TG@l _ ˄@K@ cTg@Ws 5g@ (@@#@s@W@G@Wo  6@[@_4TC@(4T@yyo@ _@W@;@@@@#@'@@yA9z@[@@?@0TG@_@@K@cTg@Ws 5g@ ?@#@s@W@G@kW _@ W@_cTk@S# c5k@ ?@#@_@S@ ccd@yc@9i x9A9[@@z@@yc q!T?@K@G@g@c@w@qTc@`w@s@_@  0 @@yA9[@@z* @?@K@g@[@G@qTK@G@g@3?@ TG@_@@K@cTg@Ws 5g@ ^?@#@s@W@G@Wk l@yA9[@@z@W@_@k@c@w@?@C@T!G@C_@K@cTg@[s 5g@ '?@#@s@[@G@Kg 7_@ K@_cTg@O# c5g@  ?@#@_@O@ccd@yc@9h x9c@*hw@ 8i@@yA9@wc h6 2@@c@w@A9X_C T@G!!"T_[s 5 >@#@[@s@_@Kg ٣g@G@K@#c#d@c@)T`@CC@;T#@#9X+@G@Tg@ g@ K@F@@ M@@c@w@A9C9_@_ ə @_IT#@A @C@@@T|aha`@#'_C_A@C@@@?T!` c9P@@@!_aT@@@@@_T?CT ˁ!#'_C_ ~ @_T#7@@@@ ` @@#@'@7@@ A$@a5CD@*@ @@"T?@A$!!@5|;@h ;@_F_V ; @_iT#+@ /@@9/@+@!@>N: @/@@$@5+@@+@@ `@>37_D_@/@+@? T T"c`d@$E wC@y@a @@}kBC<@ qTqT'@d@9kz@! qT'@d@9k}Bz@`q`TqT'@z@}q!T'@d@9kz}@'@z@B<@_ qT_ qT@>9 @/@@$@5+@@+@@ `@>37_D_*3 87_D__D_ġ X @_)T#?@7@!@9@>9 @?@@$@5;@@;@E@ `@>CG_F__F_7@"@9B T;@C@9q!TC @9qT@>}9 @?@@$@5;@@;@@ `@>CG_F_;@C@9qTChc8qT@>Y9 @?@@$@5;@@;@@ `@>CG_F_;@# @9 !@+ C@y@{_@qT@>.9 @?@@$@5;@@;@ʠ@ `@>CG_F_y#;@?@ bBD@2@T;@?@ bB8@%@T?@;@#@@y_F__F_'9+@A 4C@y@?@;@9'@9r`T8 @?@@$@5;@@;@-@@ `< @>CG_F__F_`}][p^ ; @_=T#k@ g@ bB @3@k@_TS7  e;@S@? Tk@_9Tg@ғk@+g@o@s_L_@>*8 @k@@$@5g@@g@Ɵ@ `x@ >w{_L_ _L_k@g@7@ yx&  T@~ 5|@Ig*}JiG|_)'}AIg* (4   1'T  f ~  kL!T? !TOc[_ T;_# c =;@@#@*;@k@g@O@_c[Igx!l}@_ TM N ˌ~ӌ|@_cTN ͱN~ TWK?gS ~*W@?@k@g@O@S@c[IgK@g  K@@os_L_kT)The8ѭ@ӿ%qTYь@@Ѯ@eqT@@ э@ӿeqT@@ F 7m˿qjT@iqN kLTҍ ˪} {Rqr_kT@>J7 @k@@$@5g@@g@@ `x@ >w{_L_@>-7 @k@@$@5g@@g@ɞ@ `x@ >w{_L_@>7 @k@@$@5g@@g@@ `x@ >w{_L_@>6 @k@@$@5g@@g@@ `x@ >w{_L_|@mA} ekq,T@>6 @k@@$@5g@@g@i@ `x@ >w{_L_   x&T;ghe8qjTG[ #@[@S@G@g@k@;@_TWC! ! 9@@#@(S@g@k@C@;@Wlj G @_7T# 5@ @#cS9@@?Ts @s@@@@S@ Oc?THhe8qjTgk ?#@k@@@g@O@cqT Tgc! !5 9@@#@)@@O@c@cgh$8k TBT! !5 y9@@#@%@@O@ch$8y  G4ckO{Sksw {@% 7 J {H@@_O_? TMhk8qjTk ˀ#@k@@@S@O@sckw{엀 kT klT @>5 @@@$@5@@@K@ `x@>_O_? MTwKhi8qjT)o_[ #@o@@@[@_@揀瓀wꋀ엀 kT6JTWfiqbT i_)qTY T9! !5 8@@#@*@@O@揀瓀A9W@w엀h%8kTe}@Hg }kieh}_ }AHg1@T  q 1 Tѭ~Ӯ    @>%5 @@@$@5@@@@ `x@>_O_h%8  qjT@iqOOk+Tˏ 4 q.iqbT΅i?*qTYT{9o! !5 S8@@#@1@@O@揀瓀臀W@ꋀw엀o{A9|@nA} ekq,T *  i *  b = @_IT#'@?)T#@C@9qTqTqbT?Ta!!* x`xA@9"B@_qTy@/_C_@S93@yy/_C_y/_C_֟qbT? Td!Є*xcxE@9@qT*%T`|Ӏh`xA@9"B@_qTy/_C_@S9z3@yy@/_C_y@/_C_y/_C_֟qT?Td!Є*xcxE@9@qT*% Tc|ӃhcxE@9@qT*%"T`|Ӏh`xA @9"B@_qTy@/_C_@S9;3@yy~/_C_y/_C_y@/_C_y/_C_y@/_C_y@/_C_!!- x`xy@/_C_(ӛ(ћ(ϛ͛ 1 @_T#C@_qTA9b*@T@|!!- h`xy_C_`# @A9S93@yy_C_s  @_T#Ayd'+#} #@+@@;?_F_! "@aT#$ @_IT#3@T/@ 9_E_#@c@# @#@ ;@?@@9@3@?lT@9_E_ @_T#7@;@ c9'@7@;@!!+@' c9@'@@ T_ T<#+A ?@C@Q@9 #@@@?T@B@!_ T @9qT$qT_T@#h`8q@T$qT ?@C@+@9#9_F_˥@!T%@9qT$qTT&he8߀q@T$qT@#9_F_9'  @_T#+@3@_T/@'@9_D__Th`8qjT  |#@@3@+@/@'@qT@Өdq? Tgh`8@eq'@@k@T9_D_9_D_@9_D_ј  @_IT#+@'@c9_D_MTCha8qjT$  {#@+@'@c|@TT -hc8#c9_D_@c9_D_@ ~ @C_T#O@S@B? Thb8qcT @;@@@?@3"@@O@ S@!@9;@3@?@!@#@@@@&@3?C7 @c9@ p8 @C@7@@?@#3@'B+@/@C@ 7@@ @?@3@UB#@'@W[ _I_W[ _I_ _c_I_W[ _I_| @_I(T# - 73@ !- B0OF@@9 -@ c1AF@@9 -@ c(=C3F@@9 -@ cH|%F@@9 -@ c F@@9 -@ cP1 F@@9 -@ cx ~E@@9 -@ cc(E@@9 -@ Ccd'~E@@9 -@ cHCE@@9 -@ c ~E@@9 -@ cc,E@@9 -@ c:CE@@9 -@ c cE@@9 -@ cH%|E@@9 -@ CcP}E@@9 -@ CcxoE@@9 -@ CcaE@@9 -@ cc  @SE@@9 -@ c #EE@@9 -@ B'|7E@@9$@5@A#!@ B#B@ @_D_ @_T#Ѡ. @@tD 9@($BC@5#@,`#@b ռ1@$@5@#@"U1@$@5@@I t4p@'_C_i @_AT~#@4 A9 9@@4@k'T4@S8@0@C|TT !5 1@@#@S@@C@h 8T !5 1@@#@S@@C@@h 8|ыCC@;T@?A9A@4@W8@0@TT 5 1@@#@?@@W@@h%8 ѵT 5 1@@#@?@@W@h%8C@;TCD9@#@;T@C4@k@s@k79C@;T8?@C@A9 @0@D4@E8@ @;T#9+@/@3@@@4A8$@`5C0'@q!D0@E4@F8@ @;T'C9/@3@7@@@4A8$@`5C0@P@(@A,@ @C0@D4@E8@ ?@@@"@c4@T@#4@@_@_)The8yh%848$@`50"a+@kyh(8)G OK?T  T 5 0@@#@ @W@O@K@  "T 5 0@@#@ @W@O@K@h(8 @4@c8@0@4@G|TT !5 0@@#@c@@G@@h 8|,T !5 0@@#@c@@G@h 8 Th`8!{h 848$@a50@Jyh(8G G_T  T 5 \0@@#@ c@@G@_@  "T 5 H0@@#@ c@@G@_@h(8 @kyh(8G C[T  T 5 )0@@#@ S@@C@[@@  BT 5 0@@#@ S@@C@[@@h(8  Th`8{h 848$@f50G-Cn S @_IT#@# @CC@;T @A9A+7@9CC@;T @A9+@`B#B B@B@O9_F_O9_F_O@9_F_ @_T#@D@3@_k!@@?kBT@@ 9 4_B_ @_iT#3@@ D"4@kT@" 9  4_B_݊ @_T#B9`|B9`z;@"?@cT7@_9 57@ X/@@#@!_A9;@h!8C@G@ @@#@K@O@ @@#@[_c_F_ @_)T#CC9_k~cc@@ Ú0dg@CTK@O@cTG@;/ !5G@ /@@#@&;@/@g@K@CC9$h 8c@K@O@cTG@ !5G@ .@@#@#g@K@CC9%h 8C9e|bzT%h`8"h 8[@_@ D@@#@osw_H_5e@y%h&8cG37TT 5 .@@#@K@CC93@7@"T 5 .@@#@K@CC93@7@#h&8Z @_i%T#c@g@Dhb8 ƀ3he8c? Tb? BTBCG_T[@d_@cTW@ 5W@ Y.@@#@$g@[@c@G@@h#8B[@d_@cTW@ 5W@ ;.@@#@$g@[@c@G@h#8?T[@C_@cTW@ 5W@ .@@#@#g@c@[@@h"8"B[@C_@cTW@ 5W@ .@@#@#g@c@[@h"8bCT+ 5 -@#@c@g@+@K? ?@C@K@kos_J_G@yh#8BG7/_TfT 5 -@@#@c@g@/@7@f"T 5 -@@#@c@g@/@7@h#8  @@#@[@Thc8yh#8H@yh$8BG;3_TT 5 x-@@#@c@g@3@[@;@BT 5 c-@@#@c@g@3@[@;@h$8 @_T#7@@@';@+p@ #@#@@?C_F_ @_T#7@j @ !'+ #@z#@@;?_F_i@ @@9q9_ @_T#B99G@K@ P@ !*'+O@S@ F@ !*/3A9k;~ 7@ !*7; #@'#@@[__H_ @@3_ @_iT#,.) @$!"@5#@ #@ː@ 9`9 !,@$@5@#@",@$@5@@;@8 4@'_C_͇ @@ (_ց @_iT#@9$!!@5@ @_A_C@9@ 9_@ A9C9_ց @_T#3@@ 4_B_@@ 8_ց @_T#w@9C@;T @3@[@_@@/  >@3@/@!!+[@_@7;g@c@?Cw@@ c 5.@+@w@@"@@T +@@#@w@A$!$@d5C"!q $!!@5C@;T  Aw@#C@;T0@K@S@BB!0 _N_| @_)T#/@p @;TC0@@@cC0C0@D4@kTA@C@jTT Z_E_ ӆ @_ T#G3@@B#B C@d@c@T/@@cTc@;TB@@@B@"@?Tp @;T@C9_E_C9_E_p @;T@C9_E_C9_E_֟  @_T#37;9 _ ' @'G@" @c;73@9b B5' @!$!!@5'@G@@  '@#G@"K@ O@S@@@@G@<@D@!?T@`9 <D@9@ W' @!!%!+/)C @@W cg93@7@ m_H_'@@@@W[_ 93@7@ \_H_W cg93@7@ O_H_O_H_e @_T#@@@@@$"T+ n*@@#@+@A$!$@d5C# Q $@5#@;T -@_F_ @_iT#@9$!!@5@ @b_A_ @_ T#'@<@D@!?-T <D@9@ & @!!%!) @@+/_D_@`9_D_P @_T#?@7@$'%<@&D@T 0C@%4$@5;@",)"`;@%;@ C@7@<@8@@@D@ T!0a4ˁC$!!@a5,` <D@9?@7@'@ G _F_?@7@'@%0@ TM @A#!@"@#@@ @@_T+# @9A#!@#@+@7@`9?@!7@(@0@! _mT@#@@GKO_F_,@0@4@'@ 6?@G _F_GKO_F_ d @_ T#/@A0@C,@?I T`@9 87z?q T r T |?@q T{qAT @@37_E_@ % @|!H/!#) @@37_E_~C9@@37_E_~C9@@@37_E_C9@@37_E_ @@37_E_V ; @C_iTC~#@,@0@4@ @#9 @'@+@@#@@'@ 37;?@ CA9c@;TC@;T7@@ 0;@ 4$@5?@ ,"`?@Ȍ oK@O@_cS@W@gkCc@;T@#@_@C_3@ @!*CG) E@@_@C__@C_ @_IT~#@,@0@4@D9#9 ^@'@+@#@@@'@ w@" A9@@@_9@;G?C A9c@;TC@;T S@W@gk?@C@G@) ;@N @!*KO)C @@_@_ 9@@/@3@#@'@+@/@gk@ A99@@/@3@#@+@'@/@os@04$!!@a5,`@C#@;T@@?9C#@;T@#@_@__@__@__@_9 @_T#'@(@/@_T7@_MT@#@@?C_D_ A9a @@@#C@;T?_D_‚ @C_T#O@`B9a0@! 5,@0@4@#9 h@'@+@@@#@'@fO@"8@_cT37;  43@O@ 07@ 4$@5;@ ,"`;@^ _I_@ # @a!P/!?C) @@SW_I_SW_I_@ # @A!8>!?C) @@SW_I_G @_IT#@9!@?qHT'@#@C@9 q"T@ Ě0c@ 0CT+@˥@E&/+@cc@B3!7;_C_ #@@@/#@37+@;?C_C_T@9 @)!ǚ)1JJ@ #(86T) # _@@/#@3'@7+@;?C_C_/37;_C_##c@d@c@/37;?C_C_ *  q @_T#y{?T9{g@ c@"@9{9 @#9 k@Q@'@+@@@#@'@_@"(@_T{ #@@_K_֟T3;C7{A986cC9bG"5@ @BK"!5GOS@9_@!(@ C@3@7@@@@?@A@C@D@@ @?Tb 5@@sw ?@ 93@C@;@7@@c{A6 9O@G@S@ Q_K_ ?@__ _9{9S@O@G@ <_K_cC9 4@@sw3@C@;@7@b{_K_{ #@@@_K_{_K_c@{k@ #@@@_K_ ` 6 _K_ @_T# $ ߈5$ @ z # @'?@C@_ T#(hd8! c7@;@+$@9C9[+@ @9@9&@7@;@'@@D4@9} )@ ɚ?I1)}hi @ @9?kHT9$@& @_T #@@KO_F_ #@@KO_F_@qT@@!  0?@T #@@KO_F_ _F_ #@@KO_F_@!qCT@9 @$ɚ?I1)}hi @)9;@7@ @ @) aT7@+$@9C9+@ @9@9&?@C@'@#@@ #@@KO_F_ #@@KO_F_6 @_T~# '! @A! @$@5B@ # B"#B ! !`@;T "x` c3dh`8#9C9 @kT_@_ @_T# # @o@A9@{9`hd'C@ qiT@{9B D@$Ě0}chd9# ' @+A! @$@5+@a+@?'@$@9#@@f5h%4o@@99}cc@! Ú!0@ Úc0!@@@e?T@j @A9`$9@9a 9'@D@9@T $@h5x%_F_x9 } @_T#W@S@O@G@K@}_T3'@ q!TT;k9 5 #@@#@3@kA9W@S@;@h&8fh`8! yf_ J3Fif8*}&@)!˚)1 Thk8) h+8"@_ qTBB@w@c$š_b0ITh`8!h 8[_c_H_Շh'8} +@@ӟ kT@ %˚1 Thl8k h,8@4 "To97 5 ;#@@#@ 3@W@S@oA97@! _@ J3   ~f @_)T~#@C@@T/@a@@m TC@D@?T/  C@;T@ @?C@k@o@ ƀ 3/@?@!7@B@_T@@k@o@  6k@Go@+s@Cw@'KOSW@@ ƀ Cu#@@7@@TG@K+@OC@S'@W@@ B C6&A@C@D@h TbB BB b!8@@@!!@@@? TT# $@5||3` 8@3@@$a˟CT @B?T _@_ * چֆ;   @ ![_;@ @ !cg- @@ @ !* r } @_T#CB9;@?@#G@C@'+7@@ B "@@7@@;@?@  2@@`7@ @O9_F_O9_F_7@ @O@9_F_H} @_T#?@ @C@_iTC$# @ T@G_G_G_G_  @ !4'+?@ @ @ !4/3"@ #@@ @ !* ۼ | @_ T~#@ @? !@$@5?@#?@" !@$@5?@#?@"#BC@;C@C@;TC@;T @7$@W@[@'@3  4@7@3@!!/ W@[@GKc@_@OS?@@ c #t#@/@?@@"@@T` !@@#@?@A$!$@d5CF"!q $!"@5#@;T ` 6?@$!;@B_T_@_L|S @_ T# ?j @!<#_C_4| @_T# R @` `!#! $!"@5"#B C"#B  8 @ `!`!#!@ $!"@5"#B`C"#B`ʄ  @``!#! $!"@5"#BC"#B  @``>`!#! $@5!#!#"#B@$@5 # "#B _C_{ @_iT##@@@C@@E@aTA @ @TA@9@9!!@A E@9#@@@"@! @ :@9#9_C_}{ @_T#с@A'@pC@;T @@@9qC9_D_֯  X{"@#T#$ @_ T#с@'@C@;T@@S_D_և  0{"@#T#$ @_I T#с@ _@0C@;TA9?9 +@/@ @ !*?C3@7@ @ !*GK?A9k`;~ @ !*OS @@@cg_K_-  z"@T#$ @_T##@@@C@@E@TA @ @AT j@9#@@@"@! @ _@9#9_C_z @_T#@#@ @@!@ @'_C_z @_iT#с@!7@@@@@@'+p@ #@p@@;?_F_ִ  ]z"@T#$ @_T#с@a7@@. @ !'+ #@>@@;?_F_ւ  +z"@aT#$ @_ T#/@@&@@ @@@/@`$@g5 ق@C# a@@@/@@A$!$@5C #@#@@` #3@@ @`5 _E__E__E_y @_IT#/@@@@!?T @@@ @9_@ෟ9_E_9_E_y @_T#G@K@S@O@@/+73@9T@@@˿T@B  @w$@5@@;T > @U'$w@9@$!"@b5u@Aw@C@c@co@@@0 ~@Ao@@bb@d@҃e@c @c/g3 w@T> @w$@5@@;T > @'$@@܀ @`@w@;9$@e5 "=uc@ /@ @g@3@#@'@  #`@@@@ {w@@{@@#c|& U @k@7BB0 &@@? BR @7@@$@5k@Ak@t-{@ @?@#@@@@$!#@5@C@t@A AAA@^;ftr`T w@T> @w$@5@@;T > @V&$A AAAw@ A#@@sw@Ac @A `?@@@@@d @$@T(@?-Tw@"@!@?TA@R;r?kTAA!@A(@z @ !  @@@#_@_  @ !92 @@@ $@b5#$" +t AAA@b^;BbtrT o @$@5s@as@ t@$$@% @e@5d@d b@s`@s$ @`5#$" s_@_A@@A $ @@@@#_@_;s@@@?@ (` {@!!T@@;Tc@;T!TAR rk!TF9qT  @`t`;@@;@@@#_@_ $@ @ @?  @!5a! *!#_@_ $@ @ @?  @!La! *!#_@_njQ @_IT#;@ @?@? @@@@9/@3@ 7@F@99_E_@9_E_Fj @_I T#'@`@6Rwr?kT'@B?T0zR;r?kT'@B/?T+@/@ g@@@b /@@99_D_@9_D_nR~r?kaT'@B0?T@9_D_@@+@@!&!|@ ? @@?@T@[қNۅ?T@[.m[T@9_D_9_D_i @_ *T#@c@g@kc@d^;trAT`-` *_N_{@@ w@h@9w@"x@#t@  # @c@$&l@F`W # @Є@$7/@@ @@9`/@7@ @@@G@@#@w@@t$@d5CxD9rC  @G$@5w@#lw@"`&r )z @!"$!"@5G@ G@rS{@$@5@ w@`@rw@r  @?a !(Q @_ !,K @O!@$!"@5_@?@C@  _@q@?@q`C@q@@ @'@T @; !" @[ a! - W@S@;@?@  @!*$!!@5[@ [@qO@_N_+3@@ @V@9+@3@ @@@ G@@#@Kw@@t$@d5CxB{q # @!@%@@$!!@5@ `@eqK@_N_`-` *_N_h @C_I T#W@@O@?7_@/c3 @@9:@  W@@ fTTS@@@? W@@ e @[@ S@@@?_I_ *`  *`  .h @_T#@ @A@B@c@!@߈5 _D_g @_)T#@@A @ y @@ ?_B_g @_ T#@ @#A@'B@+C@] :#@ '@@@! @+@ ?_F_g @_T#@@'A @#B@+'@#@+@@99_F_g @_T## @!@$ @C@G@+@/@'@+@KOS_G_?@ @@@KOS_G_zg#9_ @_) T#/@@"_hT+@ `T'@ '@"@yR_kT"@9_Pq`TT"@R;r_kT@!@0!?T(@  }Gy@+@@'@3@(@! @a!@b B8?T,@`@@'@+@7;99_D_g @_T#3@/@ `x@@@9?T/@ @!BB@@@7;_E_/@73@;_E_7@;_E_@ p f @_IT#'@+@ @@@/37_D_f @_)rT~#9C#`@@a!&#C@9A{9"@  "$@! @ @?A@@ }@@W B @a!5 !3 @W@@$@5@A@Fo!A@5@@@@9o5 {A969@@ _@_@ @S@O@cA@ @o9!/o@@-*T;ks9c@@  }!x@@!T3[AB@ J@@@@cJ_AC@@DD@$B@E@B@`T@  @9@_@ҁ[@3@ z@@AC@@BD@_@@@?TTs?@o @!> @;@@$@5k@Ak@nc@@5Cp_@A@A An@_@n@n?@AD@5s@A@As@xno@#l@@d5ClD`mn#x@$t@Dt@d5CxDansA9:(@Z@@?A @@@@@ $!&@f5$ HnAo@B,@,@@@A?@@"?ETxbA@!@ i@@!7gA@w !!( @ F}@@W Br @7@@$@5g@Ag@ n-w@ @W@@@@@$!#@5@C@m@@@A@@eE@*@ ?@#!@"@#@@@G@@{_T @9&#!@G@@{@c@(@_`T_ T @$@ B" "@#@@@@ uQc@ @$@! @ ?G@ @@@@&T g @@#@@%A $@f5x!mA@ S@O@@@@'@#@c AC@B@@@?,T@ $@@@9@9#A$@ @Kw9 @?@K@wA9Zc@$@ @{ @?@{@@ ?@@ {A969@@ _@_c@C{A969@@ _@_@o9S@O@@@^;cCctr@T@@?#@9@C@+C@ @@? @@Wb B3V @@ W@!`-!9@@@@$@`5Cl@A@9B2@@ ?@@ {A969@@ F_@_@@{@ ?@@@c5T3@$ $@5[@#!@[@lc@ {A969@@ _@_c@C{A969@@ _@_{c@$@ @ @?[@3@ @ !*@`@{@) #@@@ ?@@ {A969@@ _@_c@$@ @ @?c@@R @ !L)` #@^@@@ ?@@ {A969@@ _@_  OlMlKl Օ_@_+cj @_ T#@ @A@/B@C@c@9@d$@c @#3+` @?3@/@+@B@"B@@@@ @@@@ @@/@C@B@T#@@@@ @'@ B3 @@@$@5'@A'@k@A @5#@AA@#@k?@A@5C@@@C@k5GK_G_k b @_T##@@"B`Z@B@@c@@ @?_C_b @_ T#[@@v @`@?W@" @b[@@!l' t@W@?@@;[@"@ @7@/;; @K$@5[@A[@)k 4} @!$!!@A5W@;@?@ K@  W@k@;@k`?@ kK@k__J_3@b7@/@_jT3xbC#@$@ %;@ @@@@$"TG@ 0 @@#@G@A$!$@d5Cj$@ $@5C@@x!C@j;@aS @_I,T~#@@A @B@C@ @so@p@!@ @[@/Yc~T/ c c @@@@C@@k%@_@G&@3!@7c@@@ @9@@B/ k@G@ @3@@7@@$@5_@A_@\j$@5@@ @@Pj_@_W@_A9[@/@_TW_9xb{#@$@ %s@ @9 [9{@@@ B%s@ [A9C  l' Ay -o@ #~T %s@ j   @S@W@@@@d@wc@K\C?g  I@! ?g@?@ C@HW @c@;Bl' x@@W B  @;@@$@5c@Ac@i -o@ @W@Q@@@@$@5@A@io@O@K@w@WS TOxe@@@ @ !, @#@'@S@"W@cT@W *@ <@@#@@W@S@$@5!|ӣh!Zib` @_T#'@(KT  @A!/a!/3_C__C_`` @C_ T#" @!@$ t)~S@W@c@g@#9+@/@'@+@C@@7 A!x ~ *x@?@3 BV @;_@@$@5[@A[@h -7@ ?@3@@@@@$@5;@@;@hO@C@ A@@@kos_I_kos_I__ @_T#K@ @3@/ B @/@@$@53@@3@h_@ ?@C@ G@, `9`#@'@+@OSW_G__ @_T#" @!@$ 4'~C@G@+@/@'@+@KOS_G_?@ @@@KOS_G_z_ @_iT#'@@@"B$@@A@ B< `@@! @ ?_D_Y_ @_ T#G@@@!@K@ O@S@ ?@@@@@@e /+;"ƀ3@@?T7 !@9@G@ @@@?#@9+@;@*+@ @;@? @;@'B B3A @3;@ '@!$"~$@@3@@$@`5Cg@A@9`2/@W[__H_/@W7@[;@__H_W _H_^ @_)T#'@@@! @ ?'@@@@ @@?@+@/_D_^ @_IT#/@3@ v@@TaT @{RmrkT @y;Rk`TxT @{Rmrk!T @y;Rk T @9qTi4!T @;қM;M T @;R;rka T 0@9q@TW@ T @; T @̍қ.{,T7@@ @;@ @#@@_T@ @9@@?`@'#@@ T#?cT$c_`T @ @9@@#@#"B?Thb8q9_E_@9_E_?gUg "^a @C_ T#o@@!@9a @c@7o@C@o@@@@/[CB8 @@_@3[@ /@B,@@c@7@ _@3@@"[#@'@sw_M_ @@sw_M_] @_iT#w@@@r @;A ! @`$@5;@A;@}fw@#@3@+w@!@#~Tb B$  {_N_{_N_l?@C@"@@/!@'@D  @7)` $+@ /@@@@@@`$@57@A7@0f`$@5+@3@ 3@ +@#f!@?T#'@xa7@#@  @d$@e5x! f5]p @_T#@  P @`$@5@@;T   @@@pq @`$@5@@@e#_C_#_C_\ @_zT~#р/@ "B C9@@WA !0 #@!/@ !! A"@@@?TkW@@W@@ `$ _@__@_@@k@@@ gcWS  $ @>Q#@@?TD@S@W@@\?kT@@D@7oDe$@f5@De , @[@S@W@@>o@b@d@_gT _gTKBEa?_w[ @,@9|W@য়K@[@o@@?@w@_@'Th`8qAT@h`8qTE @IS@W@@g@ck@TmJJ@ mT@9_qT_%qT_)q`T_5q Tq Thj8q@T%qT)qT5qTk˥@T@9qT$qT(q`T4q TMThe8߀q@T$qT(qT4qTgTh`8G@|qT_q T_qT_pqaTҭTS@W@@_ @K@``$@5@a@d_@a @5@ab@@zdc@aD@5@a@b@nd7@o@@B_TE|ӆhe@n @i5h%Vd  OGc , @Z@G@_CIT _HTBB@`@G@C{ l@@@9{@C@O`$7@O@@o@S@$W@cT@@ 0@ @@#@S@@`$F @g5Cx!c))@ T@9?qT?%qT?)q`T?5q T T hi8_q@T_%qT_)qT_5qTzB_Thb8ǀ@|qT߈q TqTpqaT____*T@`L@aH@dP@c@o@hf@@Tc B* w@@#@@APa$!$@d5CHD@c@o@c@dL"Hd$@5|&h c`$7@O@TT @.Rrk'T@e`$@a5dblc7@O@o@!%T @R-rkT&@y;͍RkAT@e`$@a5dbPc7@O@o@{R{rka!T @y[Rk T@@e9`$7@O@o@!T;s @ R.rkAT&@y[Rk T&@9qa T@0a$!&@f5,`c `" ?@b"B@?C@ƈ= z@#@'@+@ `" ?@b"B@?C@= s@;@z@#@'@+@@|`$@a5(b@b   ^;!t@@@@` a$`$@a5(b@b7@O@o@Y-RrkT @y;RkT @9q!T :@@!;@? Ts@!@9?qT`$@jЀ@f4`$7@O@o@1 A T @қ-AT@@e9`$7@O@o@{.һ{.T k@@@9 T @y-RkT @9qAT@`<@ aT @RۭrkT~@`<@T @{R[.rkAT @y{RkT@@`<@@@`<`$7@O@o@@@e<`$7@O@o@`$@aL@dH@eP@&c@o@ig@)@bTc * @@#@@APa$!$@d5CHD@b@o@c@`$%eLI@5!|Ӈh!b7@O@>bTbCbQb@b6b Y& @_뉉T~#@x@@b @,@99T@য়@av@ @@@ !!!"@@*TK ՠ 5 !!O)@K@@@T bK@@O@@@@ @`T@$W@@"TS7o 5 M@#@7@o@S@S ]bW@S@@=@@ @  @@@_T@W@@"TS;s 5 @#@;@s@S@S "bW@S@@@@?m T  @?Tn@#@@TWS 5 @#@@S@W@BF@G@yB@9h!'y"9@@#c&c Cc@- @@@_T-@W@@"TS3k 5 @#@3@k@S@S aW@S@@@@@?-T c@9 @A@C@?^T`@9qT!@  @TG@$W@@TS !5 _@#@S@S  naW@S@@ @T@G@CW@@TS !5 1@#@S@G@S@ AaW@S@@@@@ @ !*,2 C@?h@  @$@(@ 9@+T  @TL@(W@@TS !5 @#@S@S : @`W@S@@@$@(@ @  #a^;!at@@@ a!=#Xj +@'@@_T@W@@"TSw? 5 @#@?@w@S@S `W@S@@@4@? T  @?T@#(W@@TS 5 Y@#@S@S  ; @h`W@S@@@4@ A @@@_Ty@W@@"TSC{ 5 @#@C@{@S@S -`W@S@@@1  @?T@@#,W@@TS 5 @#@S@S t$ `_W@S@@@A9  @?T@#(W@@TS 5 @#@S@S: @_W@S@@@A9! @?T@# @@"TWS 5 @#@@W@S@ƌ@h!<@ TTT @`T@8W@@_TS 5 _@#@S@S`  n_W@S@@[ T @`Tg@DW@@_TS 5 2@#@S@S`@ A_W@S@@.T  @`T2@<W@@_TS 5 @#@S@S` 4 @_W@S@@@@_@__@_֠ *@'  *@'  *@' *@'  *@' *@' *@' *@' *@' *@' ڔ *@' Ӕ *@' ̔^ *@' Ô *@' *@' *@' *@  T @_1T#`/@ l' @@@;_ @"@ $ @cG@! !0 ;@G@_@G@ `$ _O_!@%@&@ Ss,B;@T@T@9qT$qT(q`T4q TTѨhg8q@T%qT)qT5qTS@s@TCc?Og $ @S@?T?@_!T _C!TBBc@`c@?@yO@C@g@3[Ko , @xS@3@_T _CTBB[@`[@3@7/Wa ,@9;O@য়7@/@[@W@@d`T@@ @9@7@/@[@@W@o@K@O@C@g@_T@9qATEhe8qTB˥@-o@K@O@C@g@i_O_!˄@c?Td@9qT$qT(q`T4q T?MT$ehd8q@T$qT(qT4qTo_The8ǀ@|qT߈q TqTpqaT____To@K@O@C@g@&/W @7@``$@5[@a[@F\/@a @5W@ab@W@:\C@$O@cTg@k 0g@ @@#@$C@`$k@F @g5Cx!\o@K@i\X\f\U\ 2Sm @_T#'@+@ )c@9'@+@ @'@+@  @fR@c9_D_@c9_D_@c9_D_S @`T@"@9_qTBB@!c9_c9_B_T&hb8DŽ@dqT@dqT@@$qhTqTc@qTq!Tc@qTq@TTc9_c9_c9_c9_`@q`TmTc9_c9_ @_T#  ~ `-?@C@U@@3/ {c9;@@3@/@ c92@l @3@/@#@'@GK_G_3@G/@K_G_GK_G_^R#@9!@?|qTqTqTpqC9_#@9!@?|qTqC9_ @_T#3@ o@?T3g@A@k@Ch`8#9 ?C@9`3@k@ h`8 B5G c ` K_@c@ !@ !*OS+ #b 5 o@N@o@ k@sw_K_7@o@T;C7?k@ha89g@C@#9`?C@9`;@?@_cTC@ c5C@ q@@#@!;@A9dh 8;@?@C@ @@sw_K_Qu @_)T##@@BmT#hb8qcTq)Tc9_C_ K@@'+@c9_C_Q @_ T#/@3@ 7@;@@9@@#@?CG_E_pQ @_I&T#[@A9a@@bB/ !(=A@@@@ H#@9[@#C9!_@ c@c[@x@t@ "B A@@$W@B@ _@c@@9/@#@'@#@kos_J_k _J_#C9[@#C9W@[9C d$@9@|@fk @{_kaTfKH 7W@@@a !' _@c@C@@G@3P#C9`[@_@ c@kc[@x@t@ "c a@B@$W@ _@c@@ a$!"@9K@d⸄K@e_eC47@0C@ @ OC@[@ 6c@9C@@@@@;t5C@96/@b3@G@_ T/ xb?f5C@9?@@9![@_@ c@c?@9 a$!!@9K@CcK@D_D47@?@k _J_;@k _J_kos_J_ `$@9K@"BK@#_c#47@¨`"@%@@kos_J_6P @_T#7@ @b B C@G@@@@9  @+!!@ @`$@57@A+@D 7@XA`+@X;@D@5?@CD@?@X'# @@`$@57@# 7@"`X @a ! C@G@N@[9`$@5'@@'@X@@ #c( C@G@'@K_F_K_F_O @_iT#7@@!@;@ ?@C@G@9.@'@#@b$BD@57@7@bXb$BA@a5XX @7@@;9" c$cd@9@|@Ek @[_kaTE 7@@! @b B C@G@7@@a@@C@ G@7@@9 b$BB@9#c$_$4 _F_1O @C_)T#O@9 b$BC@9@{|@$k @;_kaT$C 3O@@b B' S@W@V@@?@/+@b/@?@_JT+ xb3C@9 `$@9C@"BC@#_c#43@U9 _I_O@@b B S@W@%@@@9?9a O@@@`$@5O@#O@"W  4@; !  @7a$!"@5 O@;@ `jWO@gW ;@bW@@a ! S@W@@[9`$@57@@7@LW !! ( [@S@W@_@@?A97@ b$BB@9C@d⸄C@e_e743@Ϧ7@@ 7@ @@9gk_I_?A9@9 _I_7N  @_IT#K@ W@>.G@@;9@@@@& G$@9@}@k @_kaT ';( +*37/#G@'@3@#@/@7@;@G$+@E$@e5 `V @@9O@ S@,'@ @A ! O@S@Q @$@9;@"B;@#_c#4+@?G@@3_H_M @_T#?@@B B' C@G@@@@K@cT$xc_aT_G_?@@@@$@5?@#?@"@YVK@@@@$@5?@#?@"IV@B B' C@G@@@@@$"T3  @@#@3@AA$!$@d5C"V$@ D$@5K@@x!K@V?@!@B B @@@@$"T/ * @@#@/@AA$!$@d5CU$@G@D$@5 |C@Ah C@U_G_ML @_iT#OS?9_@9A$!!@9 @;|@Ck @[_kaTC Cg_@C@"B>SO@?9@c@D Є @@@?T;c@_@!@B B ?9O@_K_K@c@7K@G@3_@@F ' @@@@@9 c@@@@T+/?_@@B B' G@3@@+@@/@@@$@5?@A?@CU_@@B B' G@3@@$7@;@?T_K_ULX @_i T#W[9g@9A$!!@9 @;|@Ck @[_kaTC #g@#@"B>[W@9@#c~TA !' #J#'@+@@@9W@a_L_ xb1@@@_TZ_L_K @_ T#?@K@C@G@!MTxa`THT/+3  i@@#@?@/@+@3@K@C@ J$JK@k5x" TJ$JTiT F$@f5x%uTOSW_G_T K @_T#/@3@ 7@;@9@@#@?CG_E_uK @_ T#'@@+@"x@!t@ "c b@!@$@@?T I@9'@"!%"@!@@@ k@9`"@@'@C@D@ k@9'@@@!@ ? @c9_D_c9_D_c9_D_c9_D_K @_IT#@c"cd@e@Tx`_TT"!0 h@ @b B ?AT@@@#'+_C_ 6S J @_i T#`"@@;@cT$xc_aT#7@ ?@@#@?T!"B0A a ! _F_S @ !'+@,} #@@@ @ !* p J @C_T#O@d@[@S@W@ " @@_cg_I_Tg@MTg@a@?T@@h @a@_T?cT)J h @? T@@@?#T* ' ?(T;7C# S@O@;@C@7@#@c Tg @g i@)i i@a@?) T*@+@) @_!T3/?+  @_T#@@9@A@ @cUCUCUCUd|B?T !#@@@3@y@y? @@ @'+_C__C_ր *`4 *~ K> @_)T#?@H@@@?$cT" 5 !@@#@$?@y9~ 9 9DHA$!%@e5@F3G@C@ DZi&M T/}ӆhfx @W D@ @@ H@ _ BTy` 5 @@#@?@AH!$!$@5C@3@?@3@FC@/@@yW@?@G@ DZ&i(x D@@@ H@? "T` 5 n@@#@?@AH!$!$@5C@3@?@3@FC@/@W@?@G@ @@OS_G_=b @_T#7@H@@@?$cT"` 5  2@@#@$7@y9~ 9@9PDH!$!!@a5@NF @@;?_F_o=@@9@kC9_ @_T#/@ TK@5 = @#@K@0+@_`TA@a!@7;_C_ ? C_C_ ?`C_C_,= @_I T#?@H@@@?$cT"` 5 !@@#@$?@y9 9B99PDH&$@g5@E G ?T3/+` 5 @#@?@/@3@&$+@Hh"DH@a5@E @@KO_G_< @_ T#@@9A @@@#_B_` *`4 | < @_ T#K@5/@ +T+@@'@#c  @#@K@'@!Z!x@ #@!Z/@! 3@! !!}+@C!$!!@a5 `IEa!7;_C_ ?`C_C_ ? C_C_W< @_T#G@H@@@?$cT"` 5 !@@#@$G@y9 @ 9 9DH&$@g5@D;C?T` 5 @@#@G@AH!$!$@5C@;@G@;@D&$G@AD@#x@g|XӇh"8d|PD9c|HC9A 9 D@@@H@$T` 5 @@#@G@AH!$!$@5C@;@G@;@D&$#D@cZCh! D@S@#3H@@@T/` 5 Z@#@/@S@/7O@ jE3@G@ D/@ H $@57@ @;@7@sD @@[__H_;? @_ T#@@9A@ @@#_B_` *`4 S{ t; @_iT#  @#@K@/@ 3@!$!!@5+@@+@'Da!`!7;_C_I; @_ T#?@T;@@Zx@5k@`5 O S_E_3@7  @@OS_E_/ ? @3@k@/@ a!"GK _E_ O`S_E_: @_ T#w@w2?kT7@$`B9d  @A!`5!!?C_F_7@ $H@%@@$cT"` 5 !d@@#@$7@w@y9} 99s@ZP"D$H&'$@h5%@|C CT+` 5 :@@#@7@AH!$!!@a5C@+@`Cw@C#DZh" @@?C_F_x: @_ T#@@9A @@@#_B_` *`4 7z X:@@9~kC9_@@9@kC9_@@9{kC9_ @_ T# ^ @;@{@{@4A9$6G@A"4@@ K@@C@(*)@9ҥ"4 W[_F_֥"4G@C@K@ $(6_ T@@  'kk~kJ@ Zy@ k@9 @@  @ Hj@9 D9 W[_F_ W[_F_ $@T!$!!@a5 `BA!`OS _F_{@+@/  @@ W[_F_C@C@''+  @@ W[_F_B 9C @C_+T#@4`7O@O@$`B9( C9k}C9@kC9~k#C9'C9@g5EF4{%H@&@@$cT"_[9` 5 !@@#@$O@[A9_@y9@ 99ZP"D%H $$Є@g5&@BC C94 G"T_9` 5 @@#@O@AH!$!$@5C@C@O@C@A$$ЄC@_A9E%Dh"8#C9'C9@e5Bc 4e6#`B9a_kb#D@%@@&H@g"T[` 5 @@#@O@AH!$!$@5C@C@O@C@A[@$$ЄC@f&DBZh#'C9#D@e&@@'H@"TW9` 5 \@@#@O@AH!$!$@5C@C@O@C@AWA9$$ЄC@e%Dh#8"D@[@e;&H@'@@W@"T7?3` 5 .@#@3@7@?@7? >B;@O@ D7@"H#$cd@5?@$@C@7@C@?@CA"@+@"+@ C9T3BT?7a !5 @#@;@?@7@;?` B3@O@ D;@ H $@5?@ @C@?@Ai @@ko_I_֠"@@ko_I_֠" @@ko_I_EA 8 @53@97@9kC9_ @_ T#@ 4W@@T @a !+/`'@ C@@@cc7;  \@@ gk_H_ S@@O B? @K@@S@!@9D9O@!Z"x@ ?k@9A!_c _H_c@c@ 7@;  &@@ gk_H_7 @_T#@4`7?@?@$`B9@7 $H@%@@$cT#` 5 !@@#@$?@@@y9 99ZP#D$H@a#B9k"&$@g5%@1@3gT_` 5 @@#@?@AH!$!$@5C@3@?@3@@&$_@d$DZh#  D@$@@%H@BTa !5 @@#@?@AH!$!!@a5C@3@?"D'B9h 8? @@KO_G_֠"@@KO_G_֠" @@KO_G_6W @_T#/@TK@`5 ? C_C_+@@' ! @#@K@'@!Z A! 7;_C_ ?`C_C_6 @_ T#s@4`77@7@$`B9D  $H@%@@$cT"` 5 !6@@#@$7@s@y9@ 99ZP"D$H &$@g5%@O? CT+` 5  @@#@7@AH!$!!@a5C@+@3?@ Dw@Zh" @@?C_F_֠" @@?C_F_B6 @_T#k@4 7` @3@k@?@ C@!$!!@5;@@;@>A!GK _E_3@3@,`#  @@OS_E_6 @_ T#@@9A@ @@#_B_` *`4 u 5@@9~kC9_ @_T#@4`7G@G@$`B9d $H@%@@$cT"` 5 !W@@#@$G@@y9&Ҧ 9SB9k~9ZP"D$HS@F'($ @i5%@j> ;3T/` 5 (@#@S@/@7/O@ 8?3@G@ D/@ H $@57@ @;@7@A> @@[__H_֠" @@[__H_Y5 @_ T#@@9A@ @@#_B_` *`4 u 85@@9~kC9_ @_T# N @#@K@@! 4 A9$6/@A"4@@ 3@@+@)@9҄"4?C_C_ք"4/@+@3@? T@@ &JJ~ )@Z x@ @?T!T !$!!@a5 @ =A!7;_C_ ? C_C_?C_C_ ? C_C_= 4w @C_i$T#@4`7O@O@$`B9d!C9k}C9~k%H@&@@$cT"_[9` 5 !@@#@$O@[A9_@y9 99ZP"D%H $$@g5&@1=CC94 G"T_9` 5 @@#@O@AH!$!$@5C@C@O@C@=$$C@_A9E%Dh"8@B4b6#`B9 #D@%@@&H@g"T[` 5 @@#@O@AH!$!$@5C@C@O@C@<[@$$C@f&DBZh#"D@[@e;&H@'@@W@"T73?` 5 @#@7@3@?@7? =;@O@ D7@"H#$cd@5?@$@C@7@C@?@<"@+@"+@C9T3BT?7a !5 W@#@;@?@7@;?` e=3@O@ D;@ H $@5?@ @C@?@n< @@gk_I_֠" @@gk_I_֠" @@gk_I_< y3 @_ T#G@H@@@?$cT"` 5 !@@#@$G@y9CB9 9GB99@ZPDHS@G($ @i5@< ;3 ?T/` 5 @#@/@S@7/O@ <3@G@ D/@ H $@57@ @;@7@;D @@[__H_ 3 @_) T#W@C@B@T_@ _J_BE@;T#C@;T'@+@@9qT?@;@?T&@T#[@ @9 @#@@_@ TC@G@cg_J_ _J_@; 2 @_T#?@C@D@mTK_G_քc@;Tc@;T#@'@@9qT TA@C@B @TB˥ cC GK_G_֡; n2 @_IT#?@@@mT @@ @CGK_G_քc@;Tc@;T#@'@@9qT% T @@?TCGK_G_Y; .2 @_T#g@ @@? T+`A" @@ko_L_ _L_C@;TK@O@AT@[R;rkT@9qTBT@[RrkT@yR?kT@9?qT[gR{ rkT@yR?kT@9?q`T[gR.rkT@yRk!T@9qT@(AT@['һ[.aT@y.RkT@ T#399c?T  @!!ko_L_BH@;TO@K@7@;@ !T'/ C@93@@/@#@@9@9+@'@ TK@O@ @!!ko_L_q1D @_I5T#cgk?9w@dB9 4 @/ $@5{@A{@":` 3vw@@?k A @GaA !:j @Ca !d @K|w@"P@3 @C 9$@k Ҥ  *D(:O @@&` $@5w@aK@dC@e 3@eG@f/@fb w@9"@K@9"`C@9"3@9"G@9"/@9/@w@@g5 9B kgB(c@?9BB{@  @!!_N_BB7+@ @?3@y@+@@7@?C@9`w@u@@ @@@@_ T?9c@g@ _N_/@@?|$$@e5? "`j9@?93@%<@&D@˿ T ?<?D?@9!!)@%`9K@#@%@w@@d5 K9"$BB@9 "@#@Cc@OSx;  c@9A/@K@W @@@ @!@[_  @@?9g@c@ _N_ @ @@ @"w@%$@e59"$BB@9? @@;OS@$  c@@?@;@W /@@@@[_  @@?9g@c@ 8_N_/@?9c@g@ ,_N_ ?9c@g@ _N_ ?9c@g@ _N_ "  'k_N_/Q @_ T#@ @CA@+D@/E@;F@?G@($@9B9h3#@;T`  @7 ! @@7@ $@b5#" Y83@`@@@"Bp4 @?C@+@/@;@?@@@B_Thb8?qT?q!T?qT?%qT h@ C@ $@b5#" '8+@/@;@?@w@{@T9@q҇@9" @@%$@g5, 8)%$&@9w@{@ ic@9 $C@w@{@ &@ C@ $@b5#" 7+@/@%$?@@ ##@;T@K@S@cc_kTB"@#@$ @FT  @@#@+@A !$!$@d5CD 7%$#D$Aq @5@;T  G_N_ ՟ 9@ 9_N_ ՟ 9_N_. @_ 3T# ? @?w@! @{@ ? @@wFw@?@w@ )@{R[ r_+T;BRQr_k Tw@Cc _!'T {@@9a, @@@?MTx @A ! CG?@ B,}@0 {@@9' @_MT@= @a !CG?@ !a@?@'R;ݡr_kTw@Cc _AT3 SKO?@S{@C 3@mT?@d@e @˟T  99Eb@f@g @T_Ta?@{R[ r_+Tw@Cc _aT{@ @ @ !?CG?@ !\a@?@Rr_+ATw@Cc_T {@ @ @A !3W[{@@ @ !?_c{@@@ @ @! ! gk?@ A!@w?@]Rr_+Tw@Cc@_! T{@90} @! ! CG?@ !}@N?@4ŒR[pr_+Tw@Cc"_T{@@A5?@!h @C{@ @ ' @A !3CG?@ !}@?@?@?@ca@b@d@` @TB @@Ҁh_N_]6T6@ *  m@ *`4 l@ *`4 l -c @C_ T#@ @3A@"@C#!" aB3Ayy @ !7;@ @A !3?C3@ L @ _I_, @_T#7c@;K@ O@S@W@[@_@K1+@/@#@'@+@D_Tg _H_gko_H_+ ; , @_T#Ѡ @ d@#@ B~+@@$! 9#@@ ~+@`@$! 9$! 9$! 9_E_[, @_ T#@yy @ !'+@ @A !3/3   #=@@CG_G_,,@yqT@qT4 _qT@kT _qT@@Rrk T __ց @_T#@yy"!`!@ B  @@@@9;?_F_@yy| @A !2'+<@ #@@@;?_F_+ @_)T#+@'@c9_D_-TCha8qjT$  #@+@'@e|@TT ƀ-he8cdqTc9_D_c9_D_@c9_D_@4 +@@@ _@@@9C9_@C9_ @_) T#_9@9$!!@9@;|@k @_kaTނ@!>@_9,@a4@_9@_C_#@ $!!@5'@$ '@4_9@_C_֌f_C_#+ @_T#9+'@9$!!@9@;|@k @_kaT'@!>@9$@ @@ @? @+9@F_D_(@+9@=_D_Af_D_* @_IT#'+9G 7@{9$@9@|@ak @{_kaTa@7@>+'@9`@$@*`$@a5c b@m3` =|7@$7@a8@d4@$ a$@d @d  @? @ן7@$!a,@z@@@@?$@57@?@7@"A3 @`5$b 73`,@a0@GKO9'@_F_` @a$@@;@ ?@C@?@@@GKO9'@_F_GKO9'@_F_֗e_F_.*Y @_iT#z{?T9O ?@{9$@9@|@ak @{_kaTa?@>3/@9a@!!*a$!!@a5cb@2!>+a '@9a,@!a4@Aa(@G@!a(O 9'@{9/@1_G_` @a$@@C@ G@K@?@@@OSW@9'@{9/@_G_ց"!"@!@OSW9'@{9/@_G_e_G_)p @_IT#'@9` +@/@_D_) @_IT#'@9 +@/@_D_j) @_)T#{{?T97@/@{9$@9@|@ak @{_kaTa΀/@>#@9a@$! !!*a$!$@d5cb@1>d @93@@E%@5?@e@b?@1eaTe$@f @ @?/@(@ @!($!3@@ %@e5$b 17@!@5;@ ;@1(@9@z9@;_E_9@z9@0_E_@ *`1 h ,d_E_(Z @_T#@<@ c@9@<@&_C__C_( @_iT#_9@9$!!@9@;|@k @_kaT@!>@_98@4@B#'_9@̀_C_,@0@#'_9@€_C_c_C_]( @_ T#9+'@9$!!@9@;|@k @_kaT'@!>@9<@  @$@5'@<'@0,@a4@V'@<@+9@k_D_oc_D_( @_ T#K@G@BB@!T"@9_qT_$qT_(q`T_4q TmT#hb8q@T$qT(qT4qT`/7 B-@&'@7@/@ -@w@#@?-T+O@@@7@/@ ?_H__H__H_@@@d3;O@@@ ?;@+@3@B?T˥@cTe@9qT$qT(q`T4q TTfhe8߀q@T$qT(qT4qTx's @_)T#  @;A!% @!!`5$!"@5;@ W@ @ `;@'0W@#007 B9@@@b"W@L@!8g @$@5W@#LW@"`0L@"4@#8@!<@ !pn8@9`W@O` F @BpW@dL@8@34@hT@/KA !* @@#@3@_BpW@K@/@3@#TK/A !*BB| W@L@3@"8/@"<$BC@5K@#4!K@/$BL@"4@#8@!<@ !}8@9W@L@$8@%4@&<@TG@ * P@@#@G@A<$!$@d5C4Du/W@&8}A$!&@5|ӣch"c_/  @!$!"@5;@7@ ;@K/@7@H/W@dp@d@C%@? !. !p@[9$@5C@@?@W@ pC@$/W@?@ / . p@[9$@5C@@C@ /7@[ _J_[_c_J_@W/ $& @_ T#@ @'A@/B( G@K@@@/@ '@O@@9@#@@C }  O@˗0S'@W_H_3+}  O@3@7+@; R@@SW_H_% @_T#9'@@;9$BB@9#@@[|@dk @{_kaTd @3}'@@;9B>!@@9+@ /@9@}_D_`_D_% @_T#/@9#! 3@7@#!߈5 E~/@@@B`E9@ @?@/@ `9@,@`w_E_R% @_T#@@C @A@h$!!@a5l`.d@_B_% @_ T##9/@@;9$BB@9#@@[|@dk @{_kaTd"@|/@@@c>#@9@@`E9d` @?@/@ `9@,@)w9@M}_E_Q`_E_$ @_T#7@@@/@ @3@;@ ?@C@?@@@7@A$@d5CB -GKO_E_GKO_E_$_@T  _ @_iT#'@+@ c9@@@/37_D_$ @C_T#W@[@ @@@@@$S@TO@@RrkT!0@!@![@W@;C7?"Є@@ @9@@@b;@C@?T9B@_lq?;CjT" B8 @@9;@C@  @?@7@b#@'@_c_I_ Bc9ƙ@ p8 @C@;@?@#7@'h+@/@C@ ;@ @?@7@.#@'@_c_I_#\ @_I(T~#@@"@#@!TD@RrkTD@9q`TTD@RrkAT@@9 @!@ 1@3@O@  @!!;!_@_#O@3@+[@9 eХ+gk ߈F5 # f|3@O@[@@,@c @0@ `?@@@@@9$BC@9@{|@$k @;_kaT$K[@ @c96K@[@ @@@@ +@l T?[@ @@@ +@C+@@C ?a0 c@ {:b@Aa @x@Csa|R @@;C@"x@#t@ d" @Cc@$`@? @ ;@woc @9@ TC@+@hC@x@t@ b"B A@@@$@? @@?@cc`@ _c$@9 G/  . @3G@/@_@__@_GWSO@3@ ˸@S@A!@B B*G@$!!@9 `T ~3G@W@_@_ " @_T#/@9a!+# !߈5  _{/@,@0@ B' v@@!@ ?_E_o" @_iT#р"@@@K@`T O@ L@9K@"@a@"!"@!@`T O@ 7@9K@"@a@-K@B?TO@"@$@!@T_qT"@@`TO @9O@K@`"@a@_qG@" @B@ 8_@ T:(@@@!TO@ @9K@c`@7O@;@ @@@SW[_H_G@S _H_@@?@@ @@@/+`> @3$@5G@@;T `> G@8$/@3@ @5+@$ +@{*S _H_SW[_H_S _H_SK@WO@[_H_!  @_) T#K@O@ @#@@@@/+?@C@ G@@3?@/@ +@53@@@@bB@ K@O@?#@'@@@#@W[__G_?@ B99|@@@W[__G_W[__G_3! @_IT#р8R @/?@!@Awm @9$@5/@@;T 8/@ $/@4@8@<@ a!pH2@9$/@G@  @a!p/@"8@C+$4@hT@'3A !* @x@#@+@_'@+@3@/@T'3A !*!!| +@/@ 8'@ <$@53@$4"3@)$D@dG@$D@5C@ @"C@x)K_G_@)  i @_iT#@@!  @!$!"@5@ @Q)#@!@5'@ `'@G)+_C_+_C_i  @_T~#@ @A@B@ @@@@@#{'@+@/@+@ cGC@;T{@@?T@yMR_k`T  7@A !*gko1s@ ` #@@_@_D9``c@_@_ր . @A!&!_@__@_ @_IT#/@ @a!B93@ 7@9 @@@;?C_E_ @ _\T ~#  C@@@! ! @ 5@!. @$@5gAAgAq(kAD@5oAD@E D@oAb(@^(@ErEE EE@5@EPE@I(K9E9@E9@5@C`@C E@8(`@5(# @ccd@kC  @a!/$!"@5@ @(k@ %O@$@5@#$@"  (gA@oA$ce@9ekA@ ?@ @A!@bB @$@9 @! C/@ 65 @!!*@#@$BD@5 ,  '"`'$B `Rkןkן Հ@@#`@ ,kA oA}@@@! L@@@c@T!T$ @@T$Bt,@ 5t @a !9ܿ @t $BC@5@@@u'$B@D@5@@h'$BD@5@`@\'@ "kA oA  @@@c?@TT@@*T ) @A !5t @~Tt@@$@!5@@;T  )@ $c@$!$@5@@d@ '@@!R @!8$!"@5@<@&Є$@5@ @&#!!@99#!!@99!` `d !'( @!@#!"@5@`$  @&b & _@`4 @5@@&t ͕@@;9@#BD@d5#P!&#BgA#$@c51AT@#!  @#@5@#@"&gAC@9c@#@ kA oA@@a@1w #þ @w@! @@ ?#@5@C@;T@@ #C@;T #@ #@`@B&y~yjgA$@`51ATҠ5 = @@@#@ y@!@so$@"?@@@ ؇@@@ o@s@@@/@p"_kן?kן a!@Ap@9@@  ` 4 @Aa!@B @@@w{_@ _} !' Ž@w _@ _ @_T#@@0@(@K@T 5 @@@ , 0#BB@b5#("@%!(@+/3_D_+/3_D_ @_i T#39?@@"@!¯a!@`" @"B@$ @@@3@9?@ [+@  `  @! ?@B R?@@;9bB++/" B߈"5' C 9u?@'@",@B@!0@ @?93@@@?_G_93@@@?_G_֪W_G_A @_T#9'@9#!!@9@@;|@Ck @[_kaTC@s'@@B>@99@gt_D_kW_D_ @_T#W[9g@9#!!@9@@;|@k @_kaT@#ksg@#@>[W@9D@#@5k@D k@$L@#C@9@ @A@ @@g@ L#@`5#H"@$@k@!@a4D@aA @7P@#c~T B ##y'@+@@!@7@kT`"@@ 9W@s_L_ *`4 R[ V_L_on @_iT#9C9'@9#!!@9@@;|@Ck @[_kaTC@r'@@B>@9dC@9C99@s_D_֖V_D_- @_) T#9C9'@9#!!@9@@;|@Ck @[_kaTC@r'@@B>@9 C@9'@T@!T@C99@Hs_D_C99@@s_D_DV_D_ @_)T#@@9@?qT9_B_@!@9a@ P@a!@T@!!A_ᷟD@bB9bB9bAB9a@\@!{@?kT C@9@9_B_ @_T#/@ @ax@t@C^;c_traT|@ X@@@ gQ@/@! @?য়9_E_^ @_T#G@9@#BC@9@{|@$k @;_kaT$@E#qG@#@#B@P@d@ҟTT@T @@9"B$_$4r_H_@9@ B@9%⸥&_&47rG@7@#!"@9@99 @a! 'G@+ B:/@9C c b 3" B37; #@9 `- #@*G@@@! @ ?_H_g @_ T#_@ @@ @ @ 5@3 !:Ӻ @;} !' _@3@r! =@@@?c@@g@ ? @ 3@OSG#C @9U@_@9@#BC@9@{|@$k @;_kaT$7@/p_@@;@A9,@k #@97@"B7@#_c#4/@qc@@g@? @@ko_K_T?@C@ko_K_ko_K_ $c @_ T#'+97@9#!!@9@@;|@Ck @[_kaTC@p7@@B>+'@9?@,@j7@?@P@bB@B9"@9B@9@@! @ ? @@#;@ 9'@)q_F_-T_F_ @_T#7;/9 G@9#!"@9@@[|@dk @{_kaTd@/3)pG@#!3@@/@B9@9@ (@9i)j_Jj O4+9pG@#!@+A9O@e !@9[|@dk{_kaTd+oG@+@O@!>;7@/9@@@@BG@@o @@ @BKO/97@p_H_ /97@p_H_KO/97@p_H_ _H_ֈS_H_^ @_ T#{?T9g@9#!!@9@@;|@Ck @[_kaTC@og@@9P@#~T B  #@@k@ o@S@g@,@B`>[W!>S@O@9@@! @ ? @@sw@9O@p9W@i_L_S_L_ @_T#` ʸ @Aa!'@! u@@+/_D_ @_ T~#@T@a!@3 * @C@!T@c~TB/ c3@C@c@9 T@?mT!T9@m_D_P_D_x @C_)TC~#@x@t@ C"c a@"B@$ @cc@ 8T,@7'+@@ ) # ?@@ B @T;  Ė@_ !  @[ !  @W !  @S!!M @#@5@A@'@D@57@EE@7@@l@@g5C G`@@T@R;rkG9$@ @G@g5CG +@G@5;@@_@@p[@@dW@@|S@@t@;@_@ [@W@S@C| `(   @&cC@g'@k7@oc sw@{@|@Od@K&@? @C@" @O@K@#c ~@9]@@ `TT  Ts@?@ @@_@C_C@|@ c@9s@?@ @@_@C_c@?C@h@l@_@C_'@@7@? @G@?C@{G@?@_@C_`" @@C@ i`" @@_@C_ # @_ T#@@@C @D@Z@%@ T#@@#@@#@e5#@" @@`5$D"  @"$@d"@ @e"` @`T  ڍ@9@@@` @`@ B8T`,@@@?@ @@b@/37_E_/_E_ @_iT#@@7A @'B@3t@;$@? @7@! @ ;@OG?S @@9o@TAT _K_'@@3@? @@_c_K_`" @@_c_K_ U @_iT#@#@ @@@ _C_Y @_I_T~# ;9A@o@3@kA @@ @Go@@AZA @3@C@k@`? @@;@ @@9@?o@@#BC@9@{|@$k @;_kaT$@cjo@@#Bc@$@ Յ@eP o@@#Bc@ T@mTTA @@@ #BB@9@d⸄@e_eg4c@@ko@@ _@g@#_@_o@A AA9@ B/ !(=A@@@@ `H#߁@9A@o@A9A@o@ #cc@9@㸥@_4c@jA@o@C@d@9d&c @cB9c @!5 @e$@A@o@A@a!P U$@@o@AAdB9a9AD@ @dl@d/@ B/ a!(@@@@ ~k@9` @ @#@5AxA/@AA7 @@#o@@ AA@7@@Z8@@@?7@AA @W@ACx@Dd@{3@@k@? @A" @cc~T@@{@c @9@ @" @@#A!TTAh@l@# TAA'TA 3@@k@ ? @@#A W@"@"$ 8#AAAB@Z<@B@ @?_@_AA @@@@@#@"@ @@AT ]@9@AA#AAB@Z<@B@ @?_@_@A d9@d9@AA#A$@$<@@@ ?@Ao@B@B @bBh@҂+@ @! @;9@A"|@@+@_?9)_@_TT@" @@#_@_3@@k@? @@#_@_#_@_A_[ p@w"d@s3@@k@? @A" @~Tw@[@_@s@C @9@ TT TAT!%@@#?A96;9A?_@_aT?A96;9A?_@_Ah@l@#?A96;9A?_@_3@@k@? @@#?A96;9A?_@_@" @@#?A96;9A?_@_ * HP * AP * 2 :P K_@_V @C_)TC~#9@@;9@@#@9%@|@k @_kaT[WC$Og@C@W@O@!>@9d@cD@? @@" @ c@wog#3 @9ܞ@@`TT@h@l@9@Ph_@C_C@@W@? @@9@?h_@C_@" @@9@1h_@C_@J@@@ @@ @ @a!@ 8?T,@;?@B9[@ c9+@/@@#@'@+@;@`?@@@h9(@[@AS9@#@@B@"Z4@S_@@?_@S@9@g_@C_9@g_@C_9@g_@C_ J_@C__  @_ &T#G@@7(@5G@7@;9"@#cd@9@|@Ek @[_kaTE'@+;fG@7@;@#c@+@`E9@`9 h@9I)J_JJ 49gG@7@#c@@9@@f @?G@7@#c@K@dE9p@ :c@9K@O@#c@G@7@O@"hE9BdE9(@G@B"B C@B@  dG3' G@hE9'@B?T3@C@D@E@3@aTF"@@T? @9G@'@3@?@(@7@ (@7@}G@  '@3@G@(@47@ G@7@"#cd@9@|@Ek @[_kaTE$f/;eG@7@;@#c/@%@ c@9FG_G4#fG@7@#@  ` j @AA!7@! G@t@_H_( @_ T#qF@@ @@@hAl#@a5CpAAB90C@9 @#!$@d5|P@bB@A_KT\@!\,@_@\@!\#@"d@ (c@9#@h@l@'+_C__C_@"@@@'+_C_  @_ T#_@g@C9@k@s@o@@_@g@C9@;@3@7@? Tj@ TT T"7_ 3 ˋ ; {CGKc9g9`@C@;T 9`@S9A9`@w_@@@w{_K_  e  @_)XT ~#c 'A@;9@@+AT@@'@# @9  @;}@ k  @_ kaT ;S,@ d'A@S@A+AA;@A# @@+A  @9   _ 4ge'A@S@A+AA;@A# @g@@ KBm@TMT[  @A"!Tf[@@ @@ _@T!Tb@T}k>@"/ETA@@@AA@#@`5C., H_@ _7 !5 @7@A@@#@`5Cu} >@" #DATAA9;@  G_@ _A9 !{9[w9S@@C@D@E@A  ?@G@@;@`T[@ S@@A@ ?@G@ [@E@@;@e.[@[D"3@@!TO 2@9@G@;@D"3[@@ O@G@@;@D"3[@ {A9A@@0T{9'AwA9t@"@ @@/3 {G_@ _/3 sG_@ _ք #@9!@A;|@bk @A{_kaTb$@c#@A+AT@'Ah@l@/3 @9gh_hg4@Pd#@@'A/A@f@9;|@k_kaTaCc@}>k D T@`@?T@ @@@@@@/3mT'A(@@@S9K@@#@/3@@'AB(@@S9w'@+@/3@@u @@ @/Ab/3 F_@ _ ջF_@ _ յF_@ _ կF_@ _c  էF_@ _'AwA9@C@?@;@D"3[@{A9A ?TC? @@@@d#@9@|@k @_kaT icbc@A#@@C@_c T?@ T?HC*@j {A9A9@w9`@'A(@S9#+@'@@@t @@ #BC@9A㸥A_E4 W@:c AW@#Bv/3 F_@ _/3  F_@ _  : @C_)T#_c?9o@@;9@@#@9%@@|@k @_kaT?;+$@'7ao@?@+@;@7@>c_@?9 ?@,@\o@?@;@+@;@$B9`E9d@CD@? @o@" @ C@WOG#s @9@@o@@CkT?kmT$|@s@롰?@A?kB_kTk TB@B?9_@eb_M_`T! To@h@l@{?9_@Sb_M_+@@;@? @@{?9_@Bb_M_@" @@{?9_@4b_M_@"@ @@{?9_@&b_M_@"@@{?9_@b_M_ * 4 I E_M_  @_=T~#@9@"@"#@@$D@dC@D@ z@@@@@D?c@@@T$@{RɩrkT$@yhRkT!@9?PqT@ @[@7? T@9_qT?aT_q`T@@"@!@# A!@c@?@'@#@7@mT3[@ }@93@7@?0TA[@`[@?mT@9qT?TqT@R@@! @ *@ !*@@@ @ @ !*  # @@c_@_  @ !*os%} c@@@c_@_7[@#~T c/ c_@_@" @@c_@_@@@_@;#@/!@W xc@9/@mTW@ң _@;@ @ !*os` c@@@c_@_~T,c@?@@[@7@AA AG99C !+gk@# ?C@@"@_ T @x@t@ C"c b@@$ @ !) #! ?@@ B @T ա 0@9B&w@{9@?@@@@@TcB _@_@" @@c_@_*!@#@$@B,T>JTfhe8߀qTq!T߀qT$qT @ !*_@;@ ޝ@ !*p4@ #ʗ@@c_@_   @_T#@@#AC@99B@+7@;@ @@@9B'+@ ?@C@(@9@ #@0@  @C@@#@5?@@?@Q#@0@@@'@@ @?_F__F_I@@@ @@BB*!_ @C_ITC~#@#@3A@#B@'C@CD#A99E@GF@G @H@K@I@J:J  ?G@@@@C@dp @ ?E@A`?G@@@_T"@{Rɩr_kT"@yhR_kT!@9?PqT@@@A!T K@'@?G@@@B@#@!@d @ @?G@#@@@@bB  @ C@?G@@~T B/ 9@99W@[@#@!@D@B@ aTY 8TjG@"@!@3@TC? !TA@yR?kTA@9?PqT ?TA@R{r?kT?TA@*Rjr?k!TA@9? qT@ L@@@!  ?@9@9@@@!@ A!d1~?@9@@@!8A !5A?_@C_֥TFƔ1he8@Ȁdq'he8@eq'@@kTThe8@eq'(he8 )@ ?eqH@@kT (TT he8@Ȁdq'he8@eq'@@kT @TjT5he8@Ȁdq'he8@eq'@@kT DT*T0%he8@Ȁdq'he8@eq'@@kT`T(Tfl he8@Ȁdq'he8@eq'@@kT( !TTƐ he8@Ȁdq'he8@eq'@@kT( TT8he8@eq'(he8 )@ ?eqH@@kTT0jT@@@`@@@T/O9S@@O@/@;S@@D@@F@ ?;@@?T@9@9TFl9he8@eq'(he8 )@ ?eqH@@kTT7S@b@@9;SC@E@@T@A@BBl9 ?@ ?;@7@?T$E#? `c9z@@_T+@@@A!l9 ?@?+@?@@T @9@_ TT$h`8qT=#*  @C_IT#o@9~T B/s@ !#ˮ#@7@!;@C@B@!@Tdo@"@T~T /s@ @" @@_M_7@;@@C@@+B@ @@@9@_mT/+@o@A@C@D@@@Tcw {_M_ 3@C@@/@'3b@e@o@ '@@?TB@E@%* Tni @_IT##@9@[@_@ c@ !*+/c@g@ Y@ !*37 5 CK[@;_@?c@Cg@GW@@CC@;Tv_J_& @_I T#@A#@?k᧟kן!!@A#!%@e5@ PPqןkן ʥ@E%@e5 @(@!P@(@ B 1@[9#@5#@@#@ (@4_C_ *`2 C  @_)T#GK9W@9#!"@9@@[|@dk @{_kaTd+@'6[W@#!'@+@P@d@#  @W@P@a!@#@B?T;@@ @W@@hAl#@a5CpAM AP@a!@!A$@@ @ 3;@@ @W@@tAx#@`5C|@/ @,@UW@@9B9@B @BB9T@bP@bB@Ң#BC@99@! @A! /W@3 B:7@9# c b ; B3?C #@9 @- c@W@@9@;9!`@KG@9 #!!@9+@Cc+@D_D49'@q[@969K@@@G@?_J_ *2 B @>_J_  @_ T#7;/93G@3!@(;7@/9@ @G@ #@`5#" @BaT`@ҁT"#cd@9@|@Ek @[_kaTE/$+OZO@G@!@1 #@9/@"B/@#_c#4+@Z/97@G_H_=_H_b @_iT#@  @ !3'+@  @a !?/3K@O@ J@ !*7;@@ #@:@@SW_H_) @_)T~# }?T9@@/@;9@!`@9@[9#c+7;C c߈C5@  Z/@@@C,@{9cB0@@9@Є3{ @9$@C d@$ ` /@@@@@@#@9@|@k @_kaT '3@#KY/@@@@'@3@##@D@("3 @ @?T {@9/@@@@3@##@("3'@@'/@@@@'@3@##@("3), aTҡT@@TD@[R;rk ("3D@@aT \{@9 "4@@/@@@3@##@ /@@@3@##@@'@?D@! @{D@!@H@L@CG! @@/@'@9P@C~T B C]C K@@O@@+p@ `c@9`+@@ '@/@,@BS #@93@"B3@#_c#4#@xY@9{@k@9@@@@@ ?9@@@@?_@_ * @ ;<_@_ @_)[T~#9@@_"@B@#b"@ ߡ @!!0#!!@5_@ _@y #@ 0@!@9_@#@@/_99 @F@@W@o@S @k @g@O@7@;@?@C@G@K@'@3/@c#@ /c@W@o@S@k@g@O@7@;@?@C@G@K@'@3@/@ `@@@11 _@ #@9 T1 @ #W@o@S@k@g@O@7@;@?@C@G@K@'@3@/@11 _@#11 _@_T4@5@6@!@AA,T @@9 M@@ @ !*{ #@9" (' ~ @# !*S@k@g@O@7@;@?@C@G@K@'@3@/@11 _@@9! ! 3T@{R[ r_+T'R;ݡr_k)TR[4r_kTBTc c B {R[ r_+ATB T@ @@#! Bk@3@/@11 _@B ;BRQr_kATB !T@ L@@#! Bk@3@/@11 _@'R;ݡr_kTT@  @@#! Bk@3@/@11 _@B Rr_+(TRr_+TBT@ @@#! Bk@3@/@11 _@B@bRr_+ATB@A T@ ]@@#! Bk@3@/@11 _@kB@B[4Rr_+TBT@ @@#! Bk@3@/@11 _@KB" ŒR[pr_+ATB"T@ @@#! Bk@3@/@11 _@+B"B@B B E@ Da @#! Bk@3@/@11 _@'@S@M@o+?;@? @[+@o@_@C@v@a@;@?@C @@@[@b9 #! B/@11 _@@9@9'S @@ d@'@a-@"B _@ B*S@ #BB@9 @( c@S@'@@969@a-_@_E@sw  |(` @` @969@?-_@_@969@2-_@_Y9_@_" @_)T#;@@9!@7@ @|E9lE9a@ @ : @@@?@@l9pE9 p97@ ;@@@@@?T?C_F_#;@@@C@G'+ @@@@b9 _F_#!!@5@# @"^"[ |@;@@@967@@ _F__F_7@ ;@A@@?C_F_  @!<#;@!@!@C@G!'+ Ɠ@@@@b9 y_F__F_7J @C_[TC~#@@9AA! @@?_ v0@@A ;@c@C @g B* V@ !/C@ Q@!"!@!@ B4 ;@٭@@W@+B @}a!,  #!"@5@@c;@_@ ?@b B@W@+@#@'@c@@#@a5CC@?Tg@@ ޝ @A A! !_@C_ ˝ @~!!&!_@C_ " @@_@C_;@# T@@@9 7@xE9Bx9B@_qT""BB@@bB@Ң@@@ ?@@@@;@?!T@:@@@?@x@C ~c@9@@p9_@C__@C_ h @a!T !_@C_ U @!8!_@C_@(A@ c/ ! e@@@`TT@@c@!@@!@96@$B9c@(@c@ @!@ @@a,@@ac@c@ (@@c@%B9 "@ @@ #@`5$ _@C_@@96(@-T4 #@5# $ #c  "@ @@ #@`5$ _@C_` '͜ @c@"(@@Cc %c@(@@a!6  #!$@d5$ZcB9C @!H | @@? T@LR; rkTc@@k ՂBH| ` -k@ ޳c@@{ ՂB  P -{@ γc@ (@ w @c@$@ @b#BD@d5a d #B!@# A@a5$@@9c@_@C_w@ƠOw7[`@;T@@ @S@/?T@JR;,r_kAT@yR_kT@9_qaTc@<@*@#@5c@#<c@"=@@ C@#!7@[@ /@ .@@@@`7@07@T@@[@@7!!|As#@e5C /@ S@/@$@@@@#!#@5[@C[@w7@s@D%@@_TKo3 c* 0@@#@%3@o@7@K@sKG#@5!|h!N /@ S@/@@K@@G@@#@5s@As@6@#!7@[@O@C@T#c@R @_T#@@'@+@ ; /@ @_#@`5__D_ @_T#k@tE9a@t9o@"@B@96@TG@Go@b@ @T75s` w_L_֠s` w_L_֠s` w_L_֠#@5G@k@ k@G@g@ K_L_C@c3C C@;TK@O@ S@?W@/ B/G@ 3@@@#@_"T; * O@@#@;@A#!$@d5Cw%/@@#@5!|?@h!?@e3@!7@LT\ @C_,T#?C9_ O@@@'3;S@ W@[@@@@_cgO@@?` T_@ T_c@  @A !!!cgO@ O@g@c@#!!@a5@__I_!c@$"3@@`T s@9O@@?mT!"!4#@!@cg#!!@a5_I__@a3@;9"@#cd@9@|@Ek @[_kaTE7'@/fPO@3@7@#c@/@&p(<@kT RkT )?k꧟kן @҈&p Kc@f+@kJTG;@G @OTj O@"k䧟_kןBB@Ң#O@3@7@#c@/@KO@ h@9JJK_kK O4 QO@3@#c@OKI54"c@9|@Ek[_kaTE"#+OO@3@+@OKc>C?@94?kT @cO@3@Of4kHT"@(@V3@ @nb@69?@P_I__I__@@cg_I_ * 1 8 * 1 7 Ճ3_I_ @C_ T#o@@?K @ T?@;9"@#cd@9@|@Ek @[_kaTE+'@7GzO+@?@G@#c@7@&pk駟kן &@F(p f@9HI_)I h4FP+@?@#c@"g@9|@Ek[_kaTEG$;:O+@?@"@?@@a ՠ#@9G@"BG@#_c#4;@ P "@@@K@o@d`  "@@@o@ o@@t@C@!@ ? @o@" @ C@_WOcs @@9/@TaT_M_o@@@!@ ? @@sw_M_ " @@sw_M_ 4 @C_RT#o@@Ss@C@@  s@"@9O" @#@$@ 4O|E9%/lE9E*%@(4B9_TS@9   [ s@@@ q@@@O@b9 $_M_S@9@#@9@}@k @_kaT 'W@?*+7XNO@s@'@7@+@S@W@#@?@  @  kT   .@_k+T  _ kT    k?TJ  @LL*@J_J_T/ ^@/@'@Cj@S@W@#@?@O@s@_MTpM _ kkן  ʌ@_Lp M _ kkן Ռʌ@_L  @9 츭  _ K3/9M4N/@O@s@A93@K@S@#@/@ T@9}@k_kaT WGMS@/@@'A9@S@@O@C(@/@S@@4` ՠ#@9W@"BW@#_c#4G@vNO@s@3@K@ @9 "_M_ @9!_B4UNw`{_M_!@96o@ 2_M_S@9 3 [ s@@@ &@@@O@b9 _M_S@9 p' j[ s@@@ @@@O@b9 _M_S@9@#cd@9@|@Ek @[_kaTEW@CfLS@s@W@#c@C@@ h@9I)J_JJ 4GMS@s@W@#c@G@C@)@?kBT&@4 f@9|@Ek[_kaTE LS@s@W@#c@C@&@ p* k槟?kן @F p f@9FI_)I f4|MS@s@#c@f@9|@Ek[_kaTEW;pLS@s@@!@S@@^ ՠ#@9W@"BW@#_c#4;@>M_M_   ) w` {_M_ * 4 |4 *`4 u4 e @_T#3@|E9@|9"!3!@"B3B@#C c @!2#!!@53@ 3@C""  @#@3@p@x_E_[ @_ T##97/@@;9#BB@9#@@[|@dk @{_kaTd @K/@@;9bB>#!@@9@P@ ! c@@@`E9!79@qL_E_79@iL_E_m/_E_ @C_) T#o@@~T B/  ̝7@;@o@C@$@+@&@@!@#g@g'/3@#@5/@#/@'@3@a@ B/ 3@@@#@@#@5+@A+@_M_ @_T#?@@#@;9B+/3" B߈"5 c kL#@@",@B@!0@ @?C@@a4 F @A !?'+ ՠ#@9 $"  #@CC@#@ f_G_` @_ T#'+97@@;9#BB@9#@[|@dk @{_kaTd#"J7@@a!>+'@9;@ (@@@;@@9 7#@@u#@@A]9'@pK_F_?C9'@gK_F_k._F_ @_ T#/39?@@9#!!@9@@;|@Ck @[_kaTC@hJ@@bB>3/@9C@"@9"6B9A99/@!K_G_֠G` K9/@K_G_9+B:#'+ $@@@B@ B9@9a}@ 99/@J_G_GK9/@J_G_-_G_ @_T#@ @A@#AyqhT qTq!T@kT A7"P@c~T c c@7@3Bk`o_L_@"@9+qT@ &qT@ !sy@? = @@'+#@9#@9 Հ. #@ _L_c@3/@3@B@Cd?k姟kןc@D#@,@7D@#@ | @_i T#'+97@@#;@C@@;@"@4_F_#@[9C@#@9@|@ek @{_kaTeC@&PI@;@#@@dЄ>+'@9C@  @a$kয়?kן@@d@,@C9'@I_F_֠?`C9'@I_F_,_F_ @_ T#C@@?@ @'(@3C@B @7"cd@c@#_q!T?@@(3@7@#@@SW/3C ҇@@'@ 3@S7@W@/#@3C @@'@CB  _G__G_, @_iT#  r@; !C @CC@} i@@@GKw@9@#BC@9@{|@$k @;_kaT$?@3zHw@'C@"@''@`@  )@9` ՠ#@9?@Cc?@D_D43@EI#'C@@'w@"`@'@  l@[9#@5;@@;@} ա#!!@9?@Cc?@D_D43@I @ r@7} a!' w@C@Wb{@@@ ? @w@"@ ;@g7@_#cWOcC ~@98@TT T_N_G@K@_N_{@@@? @@_N_w@@@_N__N_ 1 @_ T#/39?@9#!!@9@;|@Ck @[_kaTC#G?@#@bB>3/@9@C9C@!@в@@@?@@Z @@ @'+G@# q9/@=H_G_9/@6H_G_'+G@# q9/@(H_G_,+_G_ @C_T#{{?T9 S@@9 6O@!@;9"@#cc@9@{|@Dk @[_kaTD/"@'GS@/@'@cc>C?@9#@##@#`@  Ǡ@@@9s#S@@##@/@!`@ B ̢ 9?@G_I_O@!@;9"#cc@9@{|@Dk @[_kaTD3"+FS@3@+@cc>;79"@@@C9@@@@BW[97@G_I_3@@GY @@W[97@sG_I_w*_I_M @_T#'@9#BC@9@{|@$k @;_kaT$yF'@@S@W@-'@@Y ՠ#@9@"B@#_c#4@GG_D__"4@@_ց @_IT#+@T7@'@9_D_B@D@E@?T3@ Kc@9 +@7@@@cT@9_D_@ @_@ @_ @_I T#/@@ @@!@@ c" @@ _+@@@@#@5/@/@@  @`5?CG_E_@3@ 7@;@g.@@@?CG_E_?CG_E_ @_)T#@@@! @ ? @@#'_C_ @_ T##9`,#@9/@( 3@nD9@ _E_A)_E_ @_)T# / @@ @b'+H  #@}@@7@ #@`5#" _F_ @_iT#7@;@ c9@+@#@' c6 @`"@@?CG_F_'@?+@C#@G_F_u @_T#'@x@t@ "B A@@$@ !) #! ?@@ B @Tҁ:@Z@@+@/@ ?_D__D_? @_iT#G@x@t@ "B A@@$@ !) #! ?@@ B @TA @K@@@@#@9@|@k @_kaT /7;+@3hDK@/@+@7@;@#3@P@g@cB99 l@ h@K^;ii_urT-%K@h@l@p@Y#@/@+@7@;@#3@A9cB9 ե@9)_J i4'3E'@/@+@7@A9cB9:@A@ c9g9 ?_H__H_` @_)T#;@?@  -7@ @@@@$"T+ * @@#@+@A#!$@d5C?$@G@#@5 |C@Ah C@,_F_S @_ T#3@7@ =@#@ Bi @?@@#@5;@A;@ -/@ #@@@@@@#@5@@@_E_ @_IT#'@+@ /@ @@37_D_ @_T#'@+@/@  -'@ 9@@@@37;_D_ @_IT##@'@  -@ ;_C_ @_iT#/@3@ 7@J@@;?_E_ @_T#@#c~T B/ #_O_K@@##`+@#@+G@ !* @C@"@ c/ @?#c~T !/@ #+@C@ #5'@/@!|!7@AG@b7'K@D@;e@B@3c@ * @'@T/ /?@ ;@3@@/@@@#!#@'@57@C7@bT?@_O_>M  m @_T#7@ ;@,/@ @@@@3@ ?@@@?CG_E_@@ _ց @_ T#?@A@C@C@" Tp @;TE@B@G@"TP bTQ #BD@5@;T` 5 3@#B@G@@Tq @@5@;T` 5 _G_  @_T#'@C@A@+@"Td bxb@/@"Ta `x`!@ ^@য়9_D_xw \ @C_TC~#Ѡ!3C@ @ B3?T@@bC@_MTbA@C` 5 ~@_@_C@@#@a5C@@[@C~T / HC@[@ C?OC@?@O@C?Ww@ {@@K@3@G@+@/ Х-@ G@@9?@C@W@  sK@c3@gG@k+@o/@s?@C@_cTW@c c5W@ k@@#@?@q #@5@;TS;7` 5 0#;@7@S@_@#Х@e5n@ yW@?@C@_@_@C_ @ 6~ ' @_T#/@3@ 7@;@ @@?C_E_c @_ #T~# *@ @L@@@s@w! @@+O@@ @@@_-TW3@!!3 !3 `B_@_!Ko(@;T@@MTG #W@o@3@@K@z0@Z@@{@@ ?W@o@3@@K@҄_lTk@i@Ck[7; @!@"B@C@ > @@Q/S{@@B8cV@0@7@$;@cT[@ *[@ N@@#@@7@/@F#@5!|S@h! S@o#7@;@[@C@!G@_,T!BB@?T@9_qT_$qT_(q`T_4q T?MT"hb8q@T$qT(qT4qTg@%@?g@@+@C @O@ `?@@@?@kT_c!3 3 W@Ac@_@_@_D @_ T##@+@?TaT@'@ \@9#@+@@'@ @c9_C_c9_C_&T? Th`8@9kT{@kAT-Tцhf8߀qT߰q`T$qT?TThf8qaT?qaT?$q!T?ThTc9_C_BMThb8@eq'hb8 )@ ?eqH@@kT@c9_C_  @_IT#'@+@ B @@'@+@ A !8@@@য়c9_D_ @_)T#@#@ c@9#@_jT @@  @0\@9#@A_bT@'+_C_@'#@+_C_ֆ c @_T#+TbTa!- h`8@9_B_@a F"3@@___@@@ _@x@t@ _" @!@$ _ @_)T#+@><'@9 @#@5@;T > #+@@t@5/@x/@'@!@aG + @#@5@"@;T  + @U#@$@d@& 6 @#@5@1@"@@9@5@;T  6 ,#@@@`5@q3_D_ *`1 n& r @_T#;@ >7@9 @+#@5@;T > #;@+@t@5?@x?@37@%@eI' + @##@5'@"@;T  + '@Š#'@$@d#@& 6b @#@5#@1#@"'@@9@5@;T  6 ##@7@+@#@@e5@%@j @#@5+@#+@"7@+@%T@Y @#@5+@#T+@"7@+@%4@&0@ * @@+@ 4 8#@b5#0"7@+@%H@e , @7@+@#@e5H@%L@e  @7@+@#@e5L`z P@߇ @#@5+@P+@lC_F_ *`1 i% @@ @_jT@T@@?ǟ9_ց @_T#'@@@ @q@@+/_D_` @_IT#'@@@@@+/3_D_F @_ T#'@@+@ /@r@@T @3_D_!@?@@37;_D_  @_T#{@@@!cc@ l@?@/{@C@B @ Z@[@; ?@/@ z@ !*_c[@;@ z@ !*gk= @G@7w@C@cl' @@! w@B@K HG@7@ #@C'@3Bl' @[@; Bօ @W3@@#@5C@AC@q -K@ [@;@@@@@#@5W@@:W@Z7w@@S !l' s@[@; B @O7@@#@5G@AG@: -S@ [@;@Л@@@@#@5O@@O@#_N_J- @_T#'@@ ( @A@@+/_D_0 @_T#'@P@!@=@ T#!!@a5P@C92@@@+/3_D_ 1 @!+!/3_D_  @A! +!/3_D_ @_T#?@@A!x ~@@A o@@@@ ?L`T+#/`0 mX@9#@/@+@B9C ?< TA@қ; ;L?!TA@R-r?kTA@yR?kTA8@9?qT !? }@@@@9b'3?@ @$@ B" "z@@ 3@'@@G _G_ր!<@G!.KO_G_ր!=@G!.KO_G_ր!=@G!.KO_G_Po @_T#/@3@ 7@9)@#@;?_E_4 @_T#/@3@ 7@@9 @#@;?_E_ @C_bTC~## @x@t@ !c a@B@$ @@ !) #! ?@@ B @T <@|@&Wo#sCCAT >_@C_9}@'@#+ T@@@D@ C@@@@! @!@ 8@@ "@@   _@C_ @@@@Gp @@G9b@C@d@e@c @ B@@G@#'+@/@@@C@D@Td@{RɩrkTd@yhRkTc@9Pq!TC@d @`@a @aG@@ _@C_cJThc8qcTq!T { @!!  է_@C_C @ @1y@@@9@!aT@TC @@T#!& 5t d@ !9> @t #!"@5@@@@$@5@@bB;@$@%@Ƙ@ w@ !*@C@ w@ !*;@@ CcH||'@+@ A@8@G@ w@ !*;@@ #c?Cc@x|'@+@ A3@0@ Ƃ @G@@#@5@A@b@0@A@cd'~ @ ?@@ B/ !!B՗@9A@5 @@!! Bn@@a? ew@ !*;@@ BB'|c@|'@+@ A&@ 0@ g @?@@#@5@@@@0@A@#cC @ ?@ @ @@@@ C ;@ @@ @@@ @@!BB@;@ @@@@@ b@;@ @@@@@ ;@@ BV@@@ @4@@@?@AA;@cc_aT@TJ @@ @ b@A;@cc8@@@?A @?#@9 @9 @$@ @ @?# _@C_ _@C_;@a!aT@ҡT@C B9cJ @@ @;@@   _@C_@@9 @!@@@@@ $@<@@@_T LZ@9A A!# v@@  թ_@C_@eJ @@  ՛_@C_# Փ_@C_ Ս_@C_ Շ_@C_ Ձ_@C_ {_@C_ u_@C_ o_@C_ i_@C_ c_@C_ @_T#@@9#@$@ @ @? @@'@@e#@`5 _C__C_ @_ T#@<@@@@"@!@ ?_B_ @_ T#3@/@B T#hb8qiT!B B@ @9@@@@#@7;?C_E_7;_E_ @C_T#O@S@ B @?TS@_bThS@;O@ i@@@@@O@;@ @@@O@W;@[_I_W[_I_?3 @@@C7 Bc9T@ p8 @C@7@?@#3@'+@/@C@ 7@ @?@3@L#@'@W[_I_O@W;@[_I_ } @_I T#3@kT/@"9B@_lqT " B8@@3@_T#/@ B @@3@_T/@ #@B!ޑ@@7;_E_/@73@;_E_/@73@;_E_/@7;_E_  @_ T#3@ T/@"@қ %_Tқ %%_AT@7;@9_E_@7;@9_E_/@KT #S@97;9_E_/@3@ B @@A3@_# T?T BB/@B @@HT7;9_E_@C3@?T# a/@! @@HT7;9_E_#@7;@9_E_7;9_E_B@/  k @C_9TC~#@@ +!@!KlT BB,@9"@K@+@1@/@@ l\@@@@,? .@ @t@@a@@  c@g2 8t@@G'?@C@D@ @@?@ `#@b5#"zՁ@_ !>~ @@@t`#@5@DxD@d+@D@5K@D?@D K@XD@?@S}E% E @EE@5_@EE_@?'@E E @5G@F$G@2@@DD@d5C@D&@!@C[$@R%rkT@dЄ9?!T@@@d?끰A, @;@W@7@3 -Z~ @!7@3@ ;@a#!"@5W@C@( W@C@@`#[@R;]r+T@dЄ?T@@@#?`@,@;T +!~ @!" a#!"@B5@;TC@(S  _C@@S@a#!`#[@?[Rr+aT@fT@d@f @D, a@d@f@c @(TO;7/ } @!@&;@7@!/@! AO@Ca#!"@5C@( mC@@i`#[@A(@!A,@!6A @5`# @$@)@( c#c P@Cc)L_@C__@C_ } @a!8a!_@C_  [r@ !*ko ` C@Gl@@_@C_h 5, @_iT#@@#A @B@C@ J} @@@@@@@ `#@5#@@#@`9'+2# r@@7;_F_ @_)T# }@ @a#!!@5@;T  Y`@#2 Er@@/3_E_ @_iT#@@#A @B@ Ճ c| @@@@@`#@5#@@#@q_ @`'+2# r@@7;_F_e @_T#/@@ 0 y@@9_E_ @@@9@@37;?9_E_V @_i T#;@T7@c9_F_B_Tc|&chb8dф@edq$hb8ѥ@ӆdqĐ@c@kT!B`B@BB! p@@@  @'@+ Bc9P@'@?(T _T+@?CA!GK@c9_F_c9_F_c9_F_  @C_ T##s@ w@ @{@@ #@'@ !`@@@@ o@@[@@c|& ƍ @W@/"B0 @c@3 B{ @_/@@`#@5W@AW@^ -[@ c@3@@@@@`#@5_@@_@G_M_n @_ T##~T *{@ 9?@@ C@"@'@!@3@ *w@ @;@@@'@%/_T+ * ~@#@;@+@'@/@?hT7+ *E!|!a 3@/@;@@+@@`#@57@A7@_N_4  @_ T#W@ @@!!x ~@@bBPA} @@@3@KT/?B, N@9/@?@3@K@LTA!0 vN@93@K@g3@K@cW@ @$@ c" OpW@ @$@@@#?aT# B" >p@7@GB Bz @G@a#!!@57@ 7@]!bB(+ "@@@@#3@K@#+@_T 6@;@'}@C;@ '@Vb@3@?"@K@#C@[_c_J_  wz @A![a!_c_J_  dz @!A![a!_c_J_(+ @_IT#G@L@J`;@@T@R{rkT T@yRkT@9Pq`TT@*RjrkAT@9 qT @@@b#BD@5G@L;@b#BG@;@L@D+ }@`#@5G@#L;@G@@+@H@! L@a!@7#@3?T|@`#@5G@#H3@G@ H@"L@ EG@#@7@3@@a 0@'!4@|@/'@ @a@#@?"@7@#G@3@/@+|@G@@+@3@H@e#Х@e5HQ @+@KO_H_nI @C_)$TC~#@P@b!B@=B@_` TH@2 @@@P@?+C9j@@@@ @ $@@@@G@L@f|@`#@5@#L@"`G@@@~Ta !+ Q'_@C__@C__@C_ 3y @A!x2a!_@C_ځW@ [@"@'@C!@;@/@H@ * V@S@@@'@%7_T3 * o|@#@S@3@'@7@?hT3O *E!|!a ;@7@S@@3@@`#@5O@AO@}@L@ B* C@/@@K@@@'@%7_T3 * +|@#@K@3@'@7@?T3O *E!|!a ;@K7@K@@3@@`#@5O@AoO@9l`#@5G@@ P@G@,+@?@_@C_}z G @_T#'@H@@ '@H@ !* +@/@@@@ T @!@37_D__D_ @_T#'@L@@ '@L@ !* +@/@X@@@ T @!@37_D__D_ @_ T#'@P@b!B@=B@_ TA@ n@@@"'@P@`@ a !$ +@/@ @@@mT @ @@@@@@37;?C_D_!?@@;?C_D_;?C_D_ w @A!x2;a!?C_D_ @_T#'@@ !/ (΋@@@T @!@ ~$@9C9_D_] @_T#'@A9a@ !/ (=@@@@T @!@ H#@9C9_D_@C9_D_& @_ T#'@@!(= A@@ l  @@9`'@@! @@@$aTC9_D_B_Tc0$chb8dф@edq$hb8ѥ@ӆdqĐ@c@kT@ @_)T#@@x @@@#'+_C_ @_ T#'@@! }@@'@B@@B@ b@@@+/3_D_ %T@@@+/3_D_!?@@+/3_D_ @_@T~# `#`߈5`#` - D.@{ !v @Ka#!"@5@@@' @g@[@W@3@@3@!3@@g@TW@[@ &O@9!4@@3@W@_@_?' {c9J@?.T'@_#4TK@e#@5?@ `?@ _1TA!` @~@@K@@a#!$@d5C;c {c9J@?TK@@@?TdK@;@c@/G? T -@@K@@A ``'@ j@ !*koG@/@ j@ !*sw= Cd@@_@_@ @A@ @@@9K@`a @@@@@!c3e@c@TS7 sN@9!4@@7@S@_@_`#@5K@#K@"9 @Ob B/ c,@@@@9T @!@? T@һe;l!T` /O@ "B1@9 bu @_}!la !/O@ !!1@@@@`#@5_@@_@ K@ @@@@_@_K@_@_` @Ca@+ BB i@ !*koC@+@ i@ !*sw= Cc@@_@_ ``'@ i@ !*koG@/@ i@ !*sw= Cc@@_@_ `P i@ !*ko?@'@ i@ !*sw= Cc@@_@_֗ q@@ @_jT@T@@?ǟ9_ց @_iBT~#@@@!!@!@@c c4 @@@@9@@A C@@"B ~L@@2/S@A .@@  @6@@/@mT3S@ G@93@/@?h7TBS@aS@/S@C@h @ !@@h @ !@@h @ !S@/@ h@ !*@@ BB|#~m'@+@'@-##~T@"#@;T@@ s@ @c@@@?@@@@@@!3@@?`T@7W_ ~L@9@_@W@7@_@_6`# e s @@@@`#@5c@Ac@6K_ @@ @$@ Є" h@@ bBgK@kos " #%v@[ !gs @@@a#!!@5[@A[@`(w{@ @$@ c  h@@@7 h@@@ATF9@TT@+T@@?-T@@T @{ RέrkT @y{RkT @9qTF9`@9 # @@@@O@ @@@@b@@!BB@@ @i@@@ O@VC@9@a@@_-T"@!@?TA@{ Rέr?kTA@y{R?kTA@9?qT@@?)T0TT@@ BBXb@@@_@_@@ B@@@O@@ @@@@_@__@__@__@__@__@__@_x E @_T#'@!! @:@`` /'@ (=@{@@@@ ! @b@@9C9_D_ @_IT#'@+@ "@@@/37_D_ @_ T#K@G@BB@!T"@9_qT_$qT_(q`T_4q TmT#hb8q@T$qT(qT4qT`/7  B-@@7@/@ -@g@#@?-T+O@@@7@/@ ?_H__H__H_@@@d3;O@@@ ?;@+@3@B?T˥@cTe@9qT$qT(q`T4q TTfhe8߀q@T$qT(qT4qThs @C_iTC ~#C  CAGA @@@@@@ KS3A @7A ?@ @@@9#Ad^;ct@kc@#;Ad@?A ?|[;A"?A!c ,c@!@,@!,@coT! @3AB@$?T7A I@9  @ |Q@ !  uQ@ }!!`) ABT| ) 3A7A;A?AA A#A 5 S@"[ t@[@a@ B5 @St@@#@!W9/A@@$@glTsG?bT c5 4t@@#@'/AAs@W@h"8Y p @@a!'C A!SW  _@C _E?"T c5 t@@#@%/AW@@h"8_9 ջ _@C _ յ _@C _C SW ի _@C _[W;AC(@?A `?@@@SW&[@_T ";A ?Ae@@ A[@ۺ#@'@#@SWB"W@?{TAC@9qAT?zT@@9T/A#$@c 0;A ?Ae/A$@A@@@3A7A c@ ?@@@SW"/AA @[@? cT@o 5 @vs@@#@! o@W[D9@9_9AS@ BN@@T@aTkcS@ TW@"[@cTA 5A As@@#@W@S@@h!8ATW 5 *s@@#@S@W@h"8WTs 5 s@#@S@s@[!A &W@[@Ao o @!!T2C A!SW ո _@C _ ղ _@C _ ro @!&C A!SW ՜ _@C _@ 7@@bB88 ~@@@; BHo @;@@@#@5@@@C @SW l _@C _ f _@C _ ` _@C _?TW 5 r@@#@W@W[K@HEh 89;A(@?A ?@@@SW5[@_7T ";A ?Afd@@ A~[@z#@'@#@SWB1W@?3TAC@9qA*T?2TC@9#$?1T@@9 5 'n @W@? I0TA" @9qT q TqT 5| q@|A @#@b5#"@RCo@ @@BB @@G Bn @G@@@#@5@@@,C @SW մ_@C _֠ ";A ?Ac@@ A@[@#@'@#@A@9c@#A C SW Ջ_@C _ր 5~ hq@~A @#@b5#"@O[@TTA  5 Mq@O@[ ";A ?Ac@@ AO@[@#@'@#@SWAd @e@O@?"A T O@AAO@[@_TA @@A@@#@`5CO@A ?Th`8!сha8 ` %KO   _@C _ _@C _ m @A!C A!SW _@C _Z @@"B& @@C Bm @C@@@#@5@@@;C @SW _@C _@ ^@@bB88 ~g@@? Bom @?@@@#@5@@@ C @SW Փ_@C _ Ս_@C _ Շ_@C _6EC@1/@-+~9a7W@C[@cTA 5A p@@#@7@@W@@h"8WTs 5 p@#@7@@s@[ [@W@AhT`@9a@9b@9c @9d!=@@|@T9{9w9s9 zA9{A9wA9sA9|9999|_@aT||3W@[@cTA B5A 8p@@#@@|3@W@~h 8@WTs B5 p@#@s@3@@[  .[@W@At l @A!!C A!SW ս_@C _@B_(T#hb8c4"(@9_qT",@9_qT$0~,@NLZh'8B _Txb? Tk_g B5 o@@#@)/AAs@g@_@k@  @C_iT#O@@S@ ? @?c@7C @9Y@T!+@@@W@c@[@ `?O@@S@? @@/3_@c L_@ @! L_I_  @_T#@+O#@@a'@c NP@@#@ @#@`5#" r_C_ @_ T#G@K@ T@#@@@@@@& ;/7+ @@@@?)T@< 7@+@}@3@' Bk @'@@@#@53@@3@& W@[__H_;@O/@SW _H_ W[__H_ W[__H_0 @_T#/@ TlT@T@&3 ~7_E_!3 7_E_!T`L3 7_E_ 13`7_E_lT!T H.3|7_E_ 3@7_E_`T T T@ @@Bh& |@@37_E_@3@7_E_ 137_E_ -3`7_E_6 _ @_ T#W@`@A W@ @@@C@7@ ~@@K@? Bc95?@ p8 @K@?@C@#7@'|+@/@K@ ?@ @C@7@|#@'@[__J_@G@; Bc9>@ p8 @G@;@C@#7@'|+@/@G@ ;@ @C@7@e|#@'@[__J_h[__J_k @_=T~#@ AT@"@ynR_kT"@9_qT(T@"@nRr_kTnRΦr_kT@C@cT%  j @A!5@@Cc@@  i @A!0@@Cc@$@c @@@@@P/@+@#@'@+@$_w@@ @@@@[@s@c@oTTE@ @@BT {@@C3 !i @3@@@#@5C@AC@?@A @5@AA@@3s@A@5[@AA[@&o@A@5c@AAc@w@A @5_@@$@ _@ @,_@__@_@ @ @@@S@w@k@sTTE@ @@BT {@@;G !i @{a!5 !i @;@@@#@5G@AG@@A @5@AA@@w@A@5S@AAS@s@A@5k@AAk@A!A @5{@@$@ {@|@,_@_O?@ @~@@@W@w@g@sTTE@ @@BT z@@7K !h @7@@@#@5K@AK@0@A @5@AA@@$w@A@5W@AAW@s@A@5g@AAg@ ?@A @5O@@$@ O@@,_@_  @_ T# g@ @@OSk@Wo@[cG@@7K+GC3@@ Z@@@@@@e/'; ' h @?'@;@/@ WF@@@?@@ A@#@a5CA@C/@A@5;@A;@+@?cc %3@d7@C@K@B!?Tsw{_L__L_ @_I&T#k@@$TW@@?T @a?MT g @!A!?A!os_J_֠ g @@9W@"@? c5 @k@#@@?@9CW@@?F/@?"T;K7 B5 j@#@7@;@K@3G ?@W@" @3@cTG@? !5G@ /@j@@#@!?@W@/@h%8" @E/!@"T?;K !5 j@#@?@K@;@G3 c@@g@G@ /@3@ ?@@@B 3@_T "c@ g@\@@ G@3@#@'@#@B/@?) TG@C@9qAT?) T@@9@4 f @!A!os_J_ _J_ f @!a!8)A!os_J_os_J_os_J_@ @@bB& Bx@C@+ Bf @+@@@#@5C@@C@J@os_J_ _J_@ b@ @#_@@9@_@9@9 @ 9!3@@@_֠!3@@_ @_I8T#р 7Zf @?@)+@R{9rkT?@ !'T@@9C@@@a#@!@AA#!$@d5C @$@ c" [@@+@ @#@b5# "`C@ @$@ c  [@@+@ @#@b5#"C@(@%A9%9,@0@4@%(&,@e5#$" @@e5#0"<@@e5#4" Յ@mT@T@䷟%@&@T@R;rk%9[|R[rkaT?@ !TC@,@ @,@Z @ !/3$( c@T@@GKO_G_@?@!@A!A#!$@d5CKA9D90@4@8@D(E,D %@e5C$<@%@e5C0E2'T@%@e5C4E( @$@ c" Z@@+@ @#@b5# "`C@ @$@ c  Z@@+@ @#@b5#"C@ @e@& 8T,@$$(@d C@9+@@# 5e @ @`'`@+@ ( ,@#@b5#$'@$@$ @" @ c@9@#+@@+@ 9@#@ @#@#%@9?@d5? "`Ҥ$$@%(@-T@@T@{ RέrkT@y{RkT@9q!T$&d$@$?|@d5?$" ҂$$@%(@T@@T@{ RέrkaT@y{RkT@9qT$$@D?$$@%(@-T@@T@{ RέrkT@y{RkT@9qT@`5?4"MG _G_r9 @_)T#@@ @ @@_!T#@{RɩrkT#@yhRkT#@9PqT9_B_ _lT_ !T"@yR_kaT!@9?PqT?_T!@R;r?kT7_aT"@Rr_kT#@yRk@T{R;Hr_kT!@y{R?k@T#_T"@ R*r_kT"@yɉR_kT!@9?Lq`T_ AT!@J (ۉ?aT@@9_B_@9_B_9_B_ @_*T~#` @ rD@9@A#!"@b5H@@ @} c) 4@`}( @7@"H@9@c @9Q@A"T@@@D9 7@@e ?9C/+ M+@!!3$@!@/@`T C@ <@9/@+@/@@A#!!@a5 `VT .c @??A99/@GC@KA!# X@@ BB0_?@cgk " :f@; !|c @``@#@5;@a;@A!(@@`5 `  .^c @?A99@" @#@ D0OSW[ " ce@; !Ac @``@#@5;@a;@!!(@@`5 Q`N GC@K@# lX@@@ @#@`5# "`6@@ @ Ccosw{ !" ce@; !b @``@#@5;@a;@!!(@@`5 `@ 9_@_ր *   @_ T#р b @#C@! @G@@ ?@@@T#@c@9'+/9?@H@# C_G_p@$@(@_mT#@$@Td@{ RέrkATd@y{RkTc@9qaTC9_@l T @@Td@R{rkT Td@yRkTd@9Pq`TTd@*RjrkTd@9 qT@C9__T"@!@? !TA@;һ̭..?AT Ta@yR?kTa@9?PqTT`@R;rkaTC9_@C9_C9_C9_@C9_ @_BT~#@A9a"0@B B/ !(=CDv@@@T @!@ H#@9@@@@ "BbK@@@@`0@! a @BH#@Z0@C@Є(=D @`?@@Ts@@;@?@K@O @9@99s@@@"@!@GCo@W@o@ cs@[|R[r?k9To@ c_!9Ts@@;@@GC@K@O?A99K@O@@KO @@ @W@R{9rkb4?@C@G@;@B9#9 9@#@'@#@W@R{9rk1/TC@G@_AT!@R;r?kT;@A !/  p@@@T @!@ @@@@c[{_M_[;@B9C9v@@@@c)o@@R{9r?kTo@ ?T/@ATB9?@ǐT0@TT@9o@ /@B9 C@G@T@R;rk T?@ߌT0`TTe6S%# W *O\ @7 #@5w@Aw@@ %@\ @!!4!#!"@57@ 7@o@%@5s@ w@`s@w@B99e`SWo@ be6S%# WZTB9e6S%# WO@ %\ @!!!#!"@5w@ w@B99d`SWo@o@ 2 [ @!!!#!"@5w@ w@~3/@A !%[ @!!(!#!"@53@ 3@iB99d`SWo@o@ @R{9rkaT? TW@S@s@ #@d5#$" L[@$(B9 [ @ @`'`@s@ 0 4 #@b5#,"`2B9$9c@@`5#<;")8[|R[rkT ?TW@S@s@ #@d5#$" [@$,B9 d[ @ @`'`@s@ 4 8 #@b5#0"B9$9c@@`5#T"_M_{_M_{_M_{_M_` *2  @@@ _ @_)T#G@@B B/ ! #Bp@@@@@9 '#/G@@B B/ ! !IrG@@?TT@?KT#@?T/@"@#@@/@ '@O@A !97;@ (@ @T@3@+ B-Z @+@@ #@53@@3@g 3KO_H_ _H_ _H_c˄@BTD@9qT$qT(q`T4q TmTdEhd8q@T$qT(qT4qTaT3 @!@ dO@a !*7;@T=  @TT@3@+ B-pZ @+@@ #@53@@3@ 3KO_H_քT'hd8@ӧdq吅Fhd8@Ȁdq@@kT@B B/ ! q@G@ 9 _H_ @_i5T#@ /o@ B Kn@@@@_T#@$@k@Tg@c@R;rkTB9#_T_T#@$@Tc@9qT  N@A !9OS$2 c@H@@w{_K_w_K_``Gzc@|CF@T0`T TC9 _T @!@Iw_K_w_K_w_K_֠ @@@@w{_K_w_K_    d -o@ pB9w_K_w_K_!BB@?T@9_qT_$qT_(q`T_4q T?mT"hb8q@T$qT(qT4qT˥@cTe@9qT$qT(q`T4q TmTfhe8߀q@T$qT(qT4qT+?Eѿ T;/C3&@e    -o@ {p    -o@ eo@@@@$"TK` * \@@#@K@A!#!$@d5C$@+@$#Є@5 |?@Ah ?@@ /o@ ! m@@@@G@AC@/@?@+@;@3@@@?!T7G R,@97@;@T) JJ@ ?T @9_qT_%qT_)q`T_5q T ?T* ij8q@T%qT)qT5qT3@C@/@  M@A !9OS* c@cG@@w{_K_UP @_) T#7@ T@ /?@ !(=Bl@@+@#@' cH#x&@97@?T;@`@+@#@ '@ @c&@9@#9_F_`B9!9  (=@ -?@ {o@9#9_F_@#9_F_ @C_ T#@ /O@ !  @?m@@@@9BB9b'    @ -O@ DoZ@@?T/'@'W _I_W _I_7@3@`@W _I_W _I_W[__I_+@@/@#+A@D@C@:;?C #@@?T/@~ @C_iT#@ @/A@3 O@S@ d@+@'?T@JR;,r_k T@yR_kA T@9_q TV?8AT@{ۍ_ T@Rr_k T@yR_kTC?D!TB  *@9+@'@3@C@@ 7L@a !*7;+@'@ -L@a !*?C= F@@3@ #@`5#" ݾ_I_+@'@" B//@ pm@_ #@`5_ƾ_I_͵p @_ T#/3?9O ?@9!#!!@9@;|@Ck @[_kaTC+Q ?@+@ B>3/@?9@9!=@@OSW?9/@_G_C@ G@K@@@@OSW?9/@ _G__G_ @_T#7@@9@@! @;@ ?@C@ ?@'@!B3C@D@@@@ T#+ Z/@9`@7@ 9"@"@#@$(_@T!Tb@_T!B4F@G@"#@+@@ @7@9@97@@#@+@&#@f5 `$(@7@'@!B3'@!B3#@+@f-T7@#@$@%(@T!T@F@G@@"97@"@9B:@+#@@?'@#@+@GKO_F_ր!3@@GKO_F_g @_ T#~'@!'7@ , !?@@@@@@KT˟CT(?`T + w)@9+@ !?a@9_F_9_F_߽  @_IT#W@@ @!@@@@@@@T+73' =)@9@'@7@3@+@kTW@@C@9 W@@ "#B`B߈B5/ #` - G /@K;S@@@@@!3@@aT37 E.@97@3@[__J_֠!@@[__J_W@ @@`@R{9r_kAT BAT;9 > [|R[r_k!T BT;9 1 _J_֠ EU @A!H!![__J_[__J_֠!@@[__J_W@@  _J_I @_I T#_@@@#c~T /c@ #] #@5c@@c@_K_#]'@@+@"@#@$@@!@_@@' / *k@@@@@ #@5#@A#@|_K_ @_IT#GK9 W@9!#!!@9@;|@Ck @[_kaTC? W@?@ B>KG@9@9!@9@`@@9@W@9@@#c(?@TaTA@?A T@9@C!!!@#"@!@ !!ng@@!B3C@B@#@@#@!T7C; !-@97@7@;@C@AT@W@ 9@W@!!!@#"@!@ !!v'@+@@W@ 9[_9G@_ _J_ 9G@W _J_[_J_Q @_IT#/@@9a!=@@?CG_E_3@ 7@;@I@@@?CG_E_ʲ @_ T#K@G@BB@!T"@9_qT_$qT_(q`T_4q TmT#hb8q@T$qT(qT4qT'+ B@ @@a>@ H@a !*/3+@'@ H@a !*7;= cvB@@OSW_H_O _H_O _H_] @_IT#/@9'@H@c 7@@@@9aT+@97;?_D_7_D_2 @_IT#?@@R%r?kT?@"B9?TR;]r?+T?@B?`T[Rr?+aT?@B?!T@#9_G_?@?@`@/C@3/@&c! @@ ՟ T +@9 ?@@@@ Ձ!!-!@9a!!- !#!!@5C@!B-A!B-C@C@'+'@@\@9"@Cy!{?ka +@ C^@@@ @92a@@#b B" H@#@ mc@9#9_G_?@3?TC@@@b B" *H@@ Uc@9#9_G_#9_G_zI @_T#7@ @;@?@ C@G@?@@@7@aT;@mT!T'+#{@ @#@b#@+@'@KOS_F_@ @C_iT#o@9!@4/3@!߈5@c  o@t@ @+ !>IR @o@#8@"#BD@d58"#B#<@D@d5<۹"#B#@@D@d5@ѹ"#B#H@D@d5H@ǹ"#B#D@D@d5D "#B$P@P$B99$B99$X@X$\@\$`@`$d@d$h@h$l@lD@5+@t+@"#B#x@D@d5x"#B##|@|#D99#@#@#L@C @ #@5#@#L#@"`|o@"#B#D9cT@'o@!p@~T" B. Ys_M_mZ7@@;@!@@@# c.'@ g@[9 #@5@A@C #@5'@#@ p#@'@6]  @C_I%T#O@p@?!@9! @ "*@@  ?@`O@ !!?T@!/3/@3@# c9?@T (ue@@@@@ Ձ!!-!@9!!- !#!$@5!B-C!B-ظ!#!7;7@@\@9C@dyB{_k ;@ !#!b,+#' In@@L@? @dT'@!#!#@+@'@+@ #@3n@@`@? @!#!#@+@'@ G\@@@_{T @93_@@b B F@@@O@ #@`5#"i_I_!#!O@p@b D9L@"@@<@H@bD@_I_"#BB@9 @@@@@@?C`` @;_I_1O@ #@`5#"( |@@a$@5@T`$`$_I__I__I__I_ eP @A!!+ !*  * @_T#щ@@@@!@? @@@#'+_C_ @_ T#@9$#@9@|@&k @;_kaT&Gy@@$#@@#@&#@5'@'@ Հ@9"B#_c#4E_C_ @_) T#3@@ "@!@?aTA@Rr?kTA@9?q`T C@93@/@;9" B"_T!@!#@#@# c9?@T@@@ c@@@7;_E__E_o @C_)iTC ~#/A9!@4@!߈5@ 1/A3A"x@#t@ Մ!Є @cc@$7O `@! !) !#! ?@@B B @T3A@@CD@B@_T@RrkaT@ _AT@RrkT@9qc9gCE~T / >W] $@ @ @?ր *O @}!"7!;?_@C _ $@ @ @?ր O @!57!;?_@C _ @c@ 8 T >N @S#@53A@;T > 3A9h@ !N @ y3A$@ @b#BD@d5a d r#BA!$S@ A@a5$ d#BS/A @@aS@,! @S@ ?@@!BC@B@@@@Tk `'@9`k@@@7;?_@C _S@ @@@@A9A s@@b ,@9@@s@ $@ @@ @?s@@@ ;C@A !*  ` C@'=@@7;?_@C _@!@a  $@ @ @?ր 8N @ ~!!(7!;?_@C _$@ @ @? ` B@A !*g@C@ B@A !*= <@@7;?_@C _7;?_@C _o7@"@O@@?5c@9 M @#@5o@Ac@C3AD o@}A@c@x`3Au_/A '@+@'@c@;TC@;T/A_@ cC@;TJ'@+@/@+@w@a/A3A < w@@@! @o@ ?@@@_@ \(@@@ K 6 LC@`/Aw@ c@9w@ `@;T/AC@;T w@o@ K@@@9!=@A@ ?o@E @@@@7;?_@C _K@!"T@@@@7;?_@C _9#!!@53A@3A̴7 _@C _/A3A   o@$@ @ @?7@;@?_@C _ o@C$@B @@ @?@@7;?_@C _o@$@ @ @?7@@O@? @@7;?_@C _U@@@{@G#@;!@W c@9;@mTW@/ 3A$@ @ @?{@G@ A@A !*@5 C@};@@7;?_@C _3Ac@C@g@A9!@#@$@B,TJTfhe8߀qTq!T߀qT$qT 3A$@ @?[ @?[@?@ LA@A !*{@G@ BA@A !*P@ .;@@7;?_@C _ @_iT#@/@ @9 @!@@3@ 7@;@?@@@?CG_E_ @_iT#@@ D9 @!@ @? @@#'_C_ @_T#/@$@ @ C@ Є8 TCc$_A T$@@9d$D@9$ $D@9 @ @?/@Cc$(@ @@?@@ @@@ >K @##@5/@@;T > /@e@ !K @ y@`#@5@ab @XA!$#@ @`5$ M3_E_37;_E_ր!@@37;_E_3_E_@  ` .? Tw @_IT# 6/@ 3@>A@!@@/@_T3@ ($@9'@C@9/@! !T+@ @a!@ B8?T,@a@(@9_D_+@" @"B@ c8_`T"(@ "@#@B@lT !TC@yRkTB@9_Pq`T$ATB@R;r_k`TATC@JR;hrkTB@9_qTTC@ R*rkATC@yɉRkTB@9_LqaT@# @" B/ 8@%`@9`@+@@! !/ t `@9/@@/@!!"T@9_D_ր!@@/@_T3@ #@99_D_@9_D_9_D_9_D_9_D_@9_D_z) @C_TC~#9@9#!!@9@;|@Ck @[_kaTCC@C@ B>@9 !!?T@!GKG@K@ c9?@T; @@_@9 ZM@?c~T !9;@ cORcRO@S@"@7!@3@@ Є9?@ z`@3@#!"@57@ 7@ͱ 9?@ @@b`@@#!!@5@ @@  9 ?@9@0_@C_ @@\`\#@'@ >@A !*  _@C_4 @_T#g@9a!@4'+@!߈5@# og@ #!$@9@|@k @_kaT g@#!@#Х@f5@A@ 9@e5|85 !@9B_c4@c~T = cvQc"R/@3@@#@g@@@ @?_L_ xb!cd@e@ '@@#@_+To @_IT#р!@@'@+@ _D_ @_ T#'+9#97@9#!!@9@;|@Ck @[_kaTCf7@@ B>+'@9#;@#@#@ ; X@@#;@##@7@B@ c; [@ @?@C@  ?@#99'@_F__F_ @_T## ߈5#  `* c! @_B_~ @_T#+@@9!@"@!@37@!@' @@;?'@8@ @@+@"@? @@@/+@@*C@99@G@K_D_C @_T#W@@@  @@@ @ ! @cZ#@'@c L[!`@@@@ EP@@B|& "Z@@[__J_ _J_ _J_@ @_ @_T#7@@@';@+`@ #@A@@?C_F_Ǧ @_T#@#@ @@@#@ X&_C_ @_ UT~#_9@B9a\@a!@@@_@_@C@9@% #@9 @@|@Ak @@[_kaTA@ >@_9@@aA@  k_9@y_@_ր!@@_@_@ @9@9J@#@5@#@"@ҮCC@;T@ c= C:K@@@@@d\@T73C@!@@_9@/_@_ր!@@@_9@!_@_֥TFxeaT? @ OS! c@7@3@C@@@?@CC@;T%"TC c 1J@@#@@@3@K?;F #@h5Dx!O`@ != CVL@?@@;@@#@5K@AK@8@@ N(@X@A @d@ҟm T@ $@d$@@ @G !T Ն@aT@[9 Ճ@#@g5C @9@@5|  G @"@B"G@ c }X!@@@G@ $@G@ @d@? T@C@Ch@ #@% #F @a!6#!"@5@ @@!d@ @#@5@#h@"@@*@@ @@@\A`#@`5CdB _9@_@_ 69@[@W@_@c@k@+ o@g@_ $TT/lTj[_WckogW@[@c@?i Tx` #@g5x dc@c @9@/@ן[9[@c@!k@_TCC@;T@" @ c CL#'CC@;T@" @ c C=K@;9#@5c@;T  * ^#9a_9@_@_O w@[@W@_@c@k@o@g@_ $TTkTj[_WckogW@[@c@?)Tx` #@g5x ߬c@c҃ f_@_S @_4T#os_9#9@B9!  #!!@9@;|@k @_kaTc@ !>so@_9 9@d@_T@d@@@@@@G3/@ = %OI@@@@@9;K3@/@}#9_9o@_O_#9_O_@ @G@#@5@# @"`T @ B O@H@@;T g@c@k@T  G@@#@kcgA #@5@Ax @ @ @ ! O@'J@;9#@5C@;T * ]#9_9o@_O_3@K@/@;@W9S9_-T7G(xg^;)?CtraT !]@a@e@ T@@@ /@3@G@@9K@7@3@/@SA9WA9?@C@;@O9)} !( C@C@9`OA9?@SA9WA9@C@ @9C@"@b7@B[9 @@   T@@@9@$@@aT@[9 @#@f5C}@9@@5|  ro l@i@рC@"@ c U[A9?@7@@^-T@@ B= O@^I@7@@;@@#@5K@AK@@ @@ B= O@J#SA9WA9#9_9o@_O_ָ_O_OV @_)T#9c9'@9#!!@9@;|@k @_kaT'@ !>@9+@ c@9c99@t_D_x_D_ @_T#{@h@ "@ {@w@"@  @S@@@9w@$@@aT@[9 @#@f5C@9@@5|  Ҧ @Ҡ@р{@#@  %U{@ `@;Tc@;Tw@C@ = F@@@@T{@! @{@?T3c@;Tw@@ != I{@3@9_N_ք T%xdaT'#/+C c}Ecc ˆ}c9\c@;Tw@@ != 5H@#@A'@A#!!@+@5/@@/@?য়@ *  2% @_) T#'+97@9#!!@9@;|@Ck @[_kaTC7@@ B>+'@9@0E@#@57@#7@"ɩ?@#;@#@#@ B; oS@[9#@5?@@?@ #;@##@@ B; 4T9'@(_F_,_F_à @_T#'+997@9#!!@9@;|@Ck @[_kaTC*7@@ B>+'@9#;@#@#@ ; Q@9?@ #;@#7@@#@ B; R@[9#@5?@@?@@ #;@##@7@!@ B; S@99'@_F_99'@_F_ֱ_F_H @_ T#G@<@@@Z@@S@W@ [@_@?@@@#@@dA;7 Հ MA @ ``T7`;@7@ !cgko_H_ր!K@ O@S@W@[@_@#@+@'@/@cgko_H_@@K@O@ S@W@[@_@?@'@#@+@cgko_H_ڟ @_T#@<@ (c@99_C_@9_C_ @_ T#99'@9#!!@9@@;|@k @_kaT@&'@@ Є>@9L@aP@!99@_D_#!$@5+@L`+@L/@P!@53@T3@AdP@<@#@99@_D_@ * 3 3 չ_D_P @_) T#'@9@#@9@|@&k @;_kaT&@'@@#@L@fP@&<@#'@@#@L@#@h5L`/@P@53@T3@ا Հ@9"B#_c#4r@+@ (_D_ @_I T#@@C @A@D@?TI TxcA@C@mT!@a9C@9@D @C@E@F@+TD@E@G@#GE#@g5D_ _F@d5C Dt#D@A@@ @T @g5x bC @cC @99_C_֛ ~ @_iT#?@D@@@C@G@ K@O@S@W@?@#@'@+@H@@@K@O@ S@W@?@@@#@`B/3 Հ t? @ ``/@3@ B[_cg_G_5 @C_HTC~#4{?T?9@@@#t@#t@$x@ e! @#c@$SOG+BE@@AAL @@O@Z@@@ ? C@;T @ p@o !9? @K"@5C@;T   RX"K@1@5@;T  ; >X"K@+@$4@5G@$8o@$<"G@"o@| =@@d5#@"s =@@d5#D" j `'@@?9 c@9 K@L@W@aO@!"@`@d@\@ FO@@@@@@@9@9#@ c9g9?@ @@ '/W@?9@@@ _@C_ @ @c !!o> @!$"!!@5c@ c@ @! @@ @K@ yK@<@kS@Cl@gDx@Et@ f! @%@$@? @k@g@c@ ~@9+@{@@b!BC@B@T_/ @9b!B@@@A@/@_@?9@@@ _@C_TS@x@t@ b!B A@ @$@? @@?9@@@ _@C_T TK@L@"@O@C@C3K@L@O@Z@B@#(@!,@C@9 c9g9@?K@P@S@"l@g#x@$t@ e! @$@$@? @g@c@ @9J+@`K@]s@w@b!BC@B@T[3 S@9b!B@@@A@3@[@?9@@@ _@C_TS@x@t@ b!B A@ @$@? @@?9@@@ c_@C_!T`!@@@?9@@@ N_@C_L@P@T@?9@@@ <_@C_`!@@@?9@@@ )_@C_ O_@C_ @_ T#@@@#@c _C_ @_IT#@@@#@'@ k_C_ @_iT#W[_9k@@@A@ ?g@`@?T`"BB@9@[|@#k @;_kaT#`3g@3@ B>[W@_90@ B> k@#7@@@g@"`@_T/"0@?@"@5g@0g@2 0@ B> 7@9B@/@!| @' g@k@ _9W@_L_ 4@m?@"@5g@#4g@" 4@ B 7@v@@@;T< O@K@S@Td Є ?@@#@SKOA "@5k@Ax k@ӣg@4@ ! 7@A@;9"@5@;T * fU_9W@:_L_| !@' k@ _L_2_L_ɚ @_i T~#{9@F@{@96@:@#@;T@ #@;T+@C/@3@/@?@ @9?@C@@bC@@ ?@a@@;T@C@;T9{@@@?_@__@_e @_$T#gk9w@`@?T_N_`"BB@9@[|@#k @;_kaT#`+w@+@ B>kg@9C@;T0@ c> Ck?@@ C@;Tw@"4@ c CW?@c@;T3@;@C@?@TT@ATC@;Tw@0@ !> CBC@;Tw@0@ !> C@@@!9g@-_N_3@/@7@;@#C@G@?@?$TTlTi37/;CG?/@3@;@? Tx` "Х@f5x z;@;'C@9 | @' w@'@l #@@3@;@C@?TC@;Tw@"4@ c CA@#@+C@;Tw@"4@ c CL@@;9"@`5c#@;T@#@  * cS@#@$TT9g@_N_\ * `3  ՟_N_6 @_"T~#@@!L@~ @ 8L: @D@AD"!$@5A@A"!w@ A9%|%@e54֡(@k,@{ բ B %: @k@"BC@5{@w@$ {@ w@@@9 ! : @A!)"!"@5@@  @b`  O@@@!P@as %9 @!@$"!"@5@ @s@ @@| ( A@@@#m @c 3@@ok@ @{@? A,@@@#~To@_@c?o@@_@_ #9 @@i "@!5@C@;TC@;T #@ R" A:,@@@@#@;T ?"@5@@0@"@A!(@5@,`@c_@_ @_T#7@(@z@@? ;@?@ C@X @@'+G@b C@C#@ @#@'+K@# _F_ *   @_IT#@@ !""! c _C_ @C_)TC~#_93 C@;T @ /@ ! @ '@ !  @ !@ @ !  @  !8 @"!"@5B@BL`#@C5 @;TA@ADAHAT AX ; QAA+ A(@A%A" A3 B@B c) "c  ?@@" B @TB@@B#B!TC@RrkATB@9_qTBCH@cCD@'B+Bf @@BB Be@3B'@#@+@/@+@("!&@f5,`͟BB  8 @~!@ a!A "!!@5@$ @ B,37;_@C_3B(@,@Cc_@T!T@Z(@@@?@B B @@@3B(@;9,@} !` @,@@@#~TA_@c?3A7@;_@C_ #7 @'@ "@!5'AC@;TC C@;T #'A C P"@:,@@@'A#@;T ?"@3B9@5'A0'A""@BBB'B+B @@BB Be@/@'@#@+@+@$B L7 @~!@ a!A "!!@5@$ @ݞ ,37;_@C_3B("!$@d5,`ʞB@@B#B!TC@RrkTB@9_q!T'B+B+ @@  #@@@@@$B 6 @~!@ a!A "!!@5@$ @ ,37;_@C_3BB B@m#@@@"B 6 @~!@ a!A "!!@5@$ @R B,37;_@C_"@B"QC@D@Td@{R{lrkATc@y{RkT3B(@,@"@@? @@@? @@ ~TbB[@_cg@WB@ @@s c:f6 @@@"!#@c5_s@D$@5@D@@@ @D $@d5C@ A6 @swo 66 @A!7"!"@5@ @Н{bB@'B+B B B@@#'3@7@3@"@@ @@?3A7@;_@C_B#BTe@RrkT3B@`9 @@! )5 @@`@`"@5@ab @y3B;9@d5#"@p"@ұ5Td@Rrk4Tc@9q4T3Bd(@c,@Bx@zt@@@'B+BBB ?@@#@@C/@@@B"b8@% @@a@=@ @  ! a I@@" Bu5 @@@"@5@A@` -@ A@K@@@@"!#@5@C@@a !>K5 @ @! !+@5 @+B'B "!"@5@@ڜ@@֜'B+BD @5@@˜@ȜB@B ? @BBBB ht@@@@_9  [@A !4 @! !4 @#|| ! ' @@@@A#@@@ ? @C  3@+C  @9t"@@?!@[9#A@b A@@_ T"@[C9@@ @/@ @#@o@@?o@jT` 4 @a!<3 !7;[C96_9B@@?_@C_@@ @wb Bx4 @w@@"@5@@@3 7;[C96_9B@@?_@C_@ @@?#A@@37;[C96_9B@@?_@C_A2T@ @@?@ @@@? @@37;[C96_9B@@?_@C_@ @@?3A7@;_@C_W9BCB#BTd@Rrk!Tc@9qT3B @@B B@@#@@37;WC96_9B@@?_@C_"WC93B!0@#`@9#@!@!Bp@ . I@@@9 3B(@,@BB?!!TA@'B+B  ?@@" B> )@@! @ ? @@37;WC96_9B@@?_@C_` 3 @"!"@5B@B53B9``%@5 @;T  ; LA"!A!@5@ @3WC96_9B@@?_@C_3BB"@ c)V3 @! !5@_tB_@|{ f6@ ~T{@ 2A"@!5@ # @;T  )@ wL"3B;9@5@"4"@3BB!@" B5?t!?AЁ #6@A !92 @@` `"@5@ab@@ ! a@5AabA3B;9@`5#8"3B} B) |3B} !@) tWC96_9B@@?_@C_ + ;& _@C_ @_ T#gk?9 3kw@g@?9 ,@ @(@@{@ 9G#@@@ " "@d5###@#7 "@ @' @@@ c@T/3T#@@T )]2 @+! !5t t5@~Tc;t?C3@G/@K_c"@!5+@@;T  )+@ K"+@{@ @@@"BD@5@@Ù"B@A@a57@?9g@X_N_?9g@Q_N_9_N_АS @_T#@@#A @  B b @+@" B1 @'@@"@5#@A#@y@ -7@ +@@H@@@@"@5'@@'@b_F_i @_T#/@(@,@!(@3@ 7@;@ ?@/@"<@B@@"<?CG_E_c @_T#7@(@,@# c, &@@ ;@?@|7@<@#@!'@+@<CGK_F_7 @_ T#C'@ @@@-'@@"@!@ @@?TE@Rrk`T?TA@Rr?kTA@9?qT@@_!T!@Rr?kT@@C+/@@37;?@99_D_ @_T#/@@ @# c@9`@#@@ BB @Ђ@@?T#@37_E_٘  @C_) T##C99O@S@ %@! !*'+W@[@ %@! !*/3A9k@@ %@! !*7;_@c@ %@! !*?C'@ #~x*@@ko_I_g @_ T#?@P@?TG@_LT(@,@B@C@ K@@?@@B!B3C@B@@@@?T+'# . @9@?@ d9#@'@+@#@'@+@?@"P@B"POSW_G_@|@% @! !/3{ c@@@OSW_G_ @_ T#'@9`"BC@9@{|@$k @;_kaT$`Em'@@"B@t@ B@9$⸄%_%4E@C9_D_ @_iT#9'@9"!!@9`@;|@Ck @[_kaTC`"'@@ B>@9|@@+/9@_D__D_y @_T#'@9`"BC@9@{|@$k @;_kaT$`E'@@"B@$D9 B@9$⸄%_%49@9C9_D_2 @_) T#/39 Sy[?@9"!!@9`@;|@Ck @[_kaTC`?@@ B>3/@9$D99(@,@OS@9C@#G@'K@+#@d^;dtrT @[9/@8_G_<_G_Ӎ @_ T##9/@9"!!@9`@;|@k @_kaT`;/@@ >#@93@|"!!@57@7@kA!!!@B!B B@ y 9@_E__E_ @_i T#'+97@@;9"BB@9@[|@#k @;_kaT##7@#@ B>'+@9"@ Є >@9#@7@ 6@!@@7@  9+@_F_9+@_F_֎_F_% @C_ T#[@O@X@ O@X @@ @S@9"BC@9@{|@$k @;_kaT$E/3S@3@"B/@@@ B@9%⸥&_&4+'U+@'@ @!@@[@_!T_@ @9@ [@[@ !"T[@c_@g_I_O@C@9 O@<@W@?@T[@@@7_@;@@ @@@cg_I_[@?_@C  #@@cg_I_[@c_@g_I_[@c_@g_I_cg_I_cg_I_ _I_dC @_iT ~#M?T9@!@@ (KWAGCC@9c@" !  @s !3?;@9 !%"@#@B @@? %@ B=B@[@!@ ?@M9WA@!|@?!P4@@ W@@@WAd`"@9@|@k @_kaT o7i`cy@o@7@WA@"@c@hp@@ ը@9J_k 4LWAC`@@ dC@;T@x@t@ B!B A@@$@ !) "B ?@@ B @TW7@`@o@ " "@@@WACC@;T#'@+@/@b)WAAP "cd@9$@@|@k @@_kaT_c@_@WA"c@@Gp@Gp g@9_) 4c@_@ @$@# c, 2"@@@@_T!@R;r?kT_@"(@__@$A9A9 @MTcA99;  @S !5, @w_@#$@" @"BD@d5 Γ ", @! "BC@5S@s@w@  S@@s@w@@ /, @!@"BC@C5S@s@WA w@` S@@s@`WAw@"B_@ I@i5${"BG9*@H |@@aTWA@@ @9A99WA"dB9B@9WAA9b9 C@9WAA9` @W@?C@9WA9;@B!BC@D@@_@@cC @@9!@[@@@?A9*T@9;A9GACA _@ _WAP@lT@|@ @ !@(~ @@@@@c# @@9@@ T@9;Ak9GACA E_@ _@9;A\9GACA 6_@ _ J "@9@"B@#_c#4c@@@9;A39GACA _@ _@9;A$9GACA _@ _ր !@"BS@s@WA_@J@ 4* @"@5 w@a b W"`Tw@Q !@_@ @e5$@F@k ա!H| a@ -k@ A_@@g ՂB  Q@ -g@ A_@ (@"9@@c @@9@@l@{x@t@ C!c b@@$@? @WA"H@ C  S@37{@+#C ~@9@`gAT@x@t@ B!B A@@$@?WA@ @@@ LT TA99WA"@@ @9A9A9WACdB9c9`C@9A9WAA9WAA9WAң` @W@?C@9A9WA9s@ A9WAWA@@C!cd@e@ 9[@A@ ?A9T@9;A 9GACA _@ _B_T#hb8q79Thq䇟9A9dcDd1hb8ѥ@ӆdqĐc@ӄ@ӟkT@_@ _a @_T#@ @#A@B@C!c3d@c@/@`T 3@ 6@9@99 Q @9 /@@z @@ @b/@ 7;_E_#@ /@73@;_E_ @_T#@ @A@! " @ _C_ @_i T#@@A @#@ G@@@@@#@"Х@e5 /@@EE!@@@`T@  @9@@@/@@@@ ?9_E_/@@@@?@9_E_ @_T##@@@@ B@@ I_C_ @_iT#G@t@A4@"@#@B_-T @@@?0KT@R rkT@y%Rk!T@9qT@Rrk T @ ! /3K@`@7O@;A!a cG@A!!3"@!@K@ATO@ -@9G@K@ca@'O@+p+@ #@&@@G@  @!@@G@ _H_@!@@G@ _H__H_p @_iT#s@` @!W@4@@ 4@@Ts@ @A@ ?s@k@'7W@4@[@ U@@@@3KG@7@#`T +T7 3@G@K@#@s@@@@?7@ 3@G@K@#@҅ѿhT T'@!?lTW@E@|@ҥEPs@@z+CA@@ ?@@@+@W@C@s@Ҫw{_J_@ ' @!!H%w !{_J_@@`T$C@9G@K@3@c W@4@;(@,@D  @/@?b B&w' @"@a5_?@A@5/@AA@/@ ;@a@d@T@a5C . @@3@ "@b5#$" G@K@W@0@"@d5D ܎w{_J_w{_J_ @_T##@ ' @!"!!@5@#@ @@#@'_C_'_C_˅ @_ T#OS/9@ @3A@/9"@Bl@ @ !SO@/9@/@!H@3@G?73 @@9sA9@?`T?AT9/9O@Ǵ_K_@9/9O@_K_9/9O@_K_ _K_T @_ T#/@@d@e@7@T;@_T6;@3@ m/@@@@@@@@aT"@`5_?CG_E_@@!@3@ 7@;@ ?@@@?CG_E_O $ @_IT~#w{?9@X@ B3{w@?9@D@ cH@ osg# @9@AT[@G_@Cc@@d<@+ G@@@C8@D`B9@@ ! 9ġ@#@@#@ !T @3!@?G@  !3@?@"@8@ @@ !@<@+@?!T SW  '@@@ !@;/KOT@C /@K;@OC@C /@@ ;@2?9w@_@_?9w@_@_ ܿ_@_rQ @_ T#OS?99_@T@ c@9@_ @ !SO@?9_@!T@@GcK?C @9@T/@@9?9O@i_K_9?9O@a_K_7@@9_K_ Հ_K_@@@ _@@@9C9_@C9__ @_hT ~#gC  `=@@@?` % @!!@:"!"@5_A _AA@cAd @ @97_A`"BC@9@{|@$k @;_kaT$`EH_A@"B@p@p@ B@9$⸄%_%4_A@cA"@'@"@5cA#cA" _@@@"@?_A@!B9acA@!@!5 @~@_AcA@!@A!P o@_A cA"@C@B@_Tb@R;r_kT "@'@"@5cA#cA"   @B5@ 6@@7 Bb$ @~A!d1A !-@ @7@:@@@@"!#@5@C@_AcA@cA[9#@d@TATd@Td @}C@9_AcA[A9  @ @cA[A9_A@B9d @C@9_AcA[A9@ cA@!@C@9@cA[A9@_A $@'@"@5cA#cA"   @ bB(=B @@7 B# @A!H#A !-@ @7@:@@@@"!!@5@A@i  @} !3Sk# T} ){C _AcAcٺ T_A<@/ B@ @ cA@ _AdD@ r  @ccA"@" @[A99@@#_AC@@c ScA@"l@#x@!t@ $! @!@$ @? @_A"H@@# Ն_@ _ Հ_@ __A@ Og !@@ko n_@ __9 !>:@F@?# c ~T@OcS@G@?@7;@/@'#  @9@ @TT T@T"T@@ _A@!h@?lT@ @| B Ź T@@_A@_A9@@_A9@_A@cAC @ @9_A9@@@_A@"!BC@D@cA @ @9@@@cA@"x@!t@ #!c b@!@$ @?_A@ @@cA @ q@9@@b ɼ_@ _3a"@!L@ #@Q@@_A _AcA /@3@@@@gko ՘_@ __At@x@cA /@@@gko Ղ_@ _ %@@_A  %@@gko l_@ _@@@?c@҄@dʄ@_AcA /@@@gko K_@ _gC  B_@ _ :!! @@ #@@@ @ !*   @_IT#@@ #@@'@! @ s_C_ @_T#@9`"BC@9@{|@$k @;_kaT$`E @@"B@@$9 @@9"B$_$4_C_\ @_T##9/@9"!!@9`@;|@Ck @[_kaTC`/@@ B>#@93@ 7@9@}_E_ց_E_ @C_I T#S@ @O@ 9 t@`:S@ t"@5W@"x"W@͈ @" 0`C@;TCC@;TO@@A!!!"@!@S@!TW@ @9O@(@,@! @ ?O@H@EO@"!!@a5@җ_I_ * 3   @_iT#W@@@ |@G@7 @; @K@?W@d@e@ h;@7@?@?G@K@!K@@c !@W@"@!@ c? 4@@@?@K@3C Dc9@`p8 @K@?@ C@#3@'2+@/@K@ ?@  @C@3@2#@'@[__J_= @_T#7;9W G@9"!"@9@@[|@dk @{_kaTd3@/EG@"!3@@/@`@9@@ )@9 jJ  k_k k *49+'rG@"!3@@A9/@'@+@e @@!@K@ O@S@ ?@@@@W[_  "@9 @3@|@k @3@_kaT/@H >;/@7@9G@@"! _@[@"!$@d5t[@_@@@@ ?@@"BB@5G@_G@_[_@697@_H_W[__H_W !@@[__H_ι_H_e~, @_)T##9/@9"!!@9@@;|@Ck @[_kaTC@/@@ B>#@9`@9 @`9@@@#!c3d@c@?`T@  @9@/@!@@! @ ?@ @ @/@z@A@ ?@@"BB@5/@_/@φ379@N_E_@@@?@ @379@@_E_9@8_E_<_E_}r @_)T#7@@@@ B/ ú@@@"BD@57@7@ "BA@a5 `{ @@" @;9"@"cd@9@|@Ek @[_kaTE @7@"c@"`@9"!BD@B@%@c@9_F4+' @7@+@'@GKO_F_@;@ ?@C@@@@GKO_F_GKO_F_C}r @_T#@@ @@#'_C_-}@#9_@#9_@ ___ @_T#/@@` #/ @"@5ccͅA ʅ@5/@#/@…!@"@5/@#/@" @ a@ ա"!$@5ccD    @ ` "@53@ab3@3@@5@db @@@5ewt#e@9@5d jb@g@/@@ Є -@9/@@ ! 3@/@[9"@5#@@#@F_E_ * 3 D e|T @_)T# 5v  @v }@ ! #_C_C| @_)T# 5u  @u ]@ ! #_C_#| @_)T# 5t _ @t =@ ! #_C_| @_)T# 5s ? @s @ ! #_C_{ @_)T# 5r  @r @ ! #_C_{_ @_ T#@ # @! !3#_C_{_ 6"  _ց @_T#1@a !@9 @"@5@;T@ ? 5@\@  @!)"!!@5@!!!   @3"!B /_D_V{_ @C_ TC ~# p @``!\ a !"!B@A"BD@5$!Є`"!B`@"B ccx- B*~@#@_T7 !* ~5 + @~7@"BC@5@#!c` @"!B  @ `!#a !"!BA"BD@5$!Є"!B  @{`=` !!!@ "!"@5$!Є`"!B` դ ?@%!Х,%&!Ơ,%@5"!B,C"!B,r  @``!ha !"!BA"BD@5$!Є "!B X  @`8` !!! "!"@5"!BC"!B>  @@`!+a !"!B A"BD@5$!Є "!B $   @ ! (@}@"!#@5cc Ccc  @ @s(@ @"!#@5c8Ccc8 @ ](@ @"!#@5cc(Ccc(ۂ @ @G(@@@"!#@5c5Cc5ł @ ~1(@|@"!#@5c&Cc& @ (@@"!#@5cc9Ccc9 @ (@|@"@5!Ac @ @'@ @"!#@5ccCccm @ }'@@"!#@5#c&C#c&W @ "'@ @"!#@5c Cc A @ B'@@"!#@5cc0Ccc0+ @ b'@ @"!#@5c Cc  @ ~'@`@"!#@5cCc @ k'@ @"!#@#5c| C@#!cbc| "!B@ 5 @@`! a !"!BA"BD@5$!"!Bǁ  @@`7` !!! "!"@5"!B C"!B  @ `!`.a !"!B A"BD@5$! "!B 5@ @@!!! + !!!@+ "@5!!!+#"!B+y A @{w9 ! wx@~@"!#@5#c%C#c%Z@w9 {@ w`@ @@"!#@5Cc<CCc<Bw9 {@ wH@}@"!#@5Cc CCc *@w9 {@ w0@@@"!#@5ccXCccX~w9 {@ w@}@"!#@5Cc CCc w9 {@ w@~@"!#@5ccCccw9 {@ w@~@"!#@5#cd)C#cd)ʀ @w9 {@ w@@"!#@5#c(C#c(}w9 {@ w@@"@5a!t:Acct: w9 {@ w@~@"@!5a! A{@"!BAcc ~"!B{@z@w@s@s9 B s{@@@"!#@5cc>Ccc>]}s9 !s@ sc@@"!#@5#c|,C#c|,E w@ bBL@[9"@5s@As@1@o@o9 B o5@@@"!#@5cc>Ccc>~o9 !o@ o@`@"!#@5cc4'Ccc4'}o9 !o@ o@@"!#@5#c|,C#c|,{o9 o@ o@}@"!#@5Cc CCc  w@ bB@[9"@5o@Ao@@k@k9 B k@@@"!#@5#cC#c w@ bB@[9"@5k@Ak@@g@g9 ! g@@@"!#@5#cC#cs w@ bB`z@[9"@5g@Ag@_@c~c9 B cc@`@"!#@5cc4'Ccc4'E w@ bBL@[9"@5c@Ac@1@_~_9 ! _5@`@"!#@5cc4'Ccc4'}_9 _@ _@@"!#@5#c|,C#c|,~ w@ a!@[9"@5_@Aw@!BA_@~!Bw@~>@[ ! bB@[9"@5a !+Ac c+~ [@ bB@[9"@5a !+Ac c+~ [@ bB@[9"@5a !,Ac c,~ [@ bB@[9"@5a !@,Ac c@,~ [@ bB@[9"@5a !`,Ac c`,s~ [@ bBz@[9"@5a ! ,Ac c ,]~ [@ bB`d@[9"@5a !+Ac c+G~ [@ bBN@[9"@5a !+Ac c+1~ [@ bB8@[9"@5a !,Ac c,~ [@ a!"@[9"@!5a !`+A[@!BAc c`+~!B[@} Q @`!da !"!BA"BD@5$! "!B } 7 @ `!a !"!B A"BD@5$! "!B }  @``!La !"!BA"BD@5$!"!B}  @`!la !"!B@ A"BD@5$!` "!B` }  @` +` !!! "!"@5"!B C"!B {}  }@@?T@9qҡ"! 9@W@y !  {m@ @"!#@5c8 Cc8 O}y W@ {U@`@"@5a!'Acc'7}@y W@ {=@@"!#@5c\ Cc\ }~y W@ {%@`@"!#@5c Cc }y W@ { @ @"!#@5ccCcc|y W@ {@@"!#@#5cCW@!c`bc|!B`W@| # @`!4(a !"!BA"BD@5$! "!B |   @``!)a !"!BA"BD@5$!"!B|  @`` !!! "!"@5"!BC"!B|  @ `!5a !"!B A"BD@5$! "!B g|  @`<` !!! "!"@5"!B C"!B M|  @"@5!!#!B=|  @"@5!!@#!B@-|  @"@5!!#!B| q @"@5!! #!B  | a @@`! %a !"!B A"BD@5$! "!B { G @`!:a !"!B@ A"BD@5$!` "!B` { - @ `!$a !"!BA"BD@5$!"!B{  @@` ` !!!@ "!"@5"!B`C"!B`{  @ ~`'` !!! "!"@5"!BC"!B{  @`!| a !"!B@A"BD@5$!`"!B`q{  @`` ` !!! "!"@5"!B C"!B W{  @@`0(` !!! "BD@5$! "!B ={  @@`!a !"!B@ A"BD@5$!` "!B` #{ w @}`"` !!! "!"@5"!B C"!B { ] @ }`!9a !"!B@ A"BD@5$!` !B` z C @ `;` !! "!"@5!B C!B z ) @``` !!@ "!"@5!B`C!B`z  @ }`:` !! "!"@5!B C!B z  @`!8a !!B A"BD@5! !B z  @   ! 2c @@!!@ "@5!!` #!B` bz`@A!BBx- !*~@#@_T7 !* ~;,  @~7@"BC@5@!Є@ @ z!B@z"B ՠ ?@!*$$!*E@5!*!B*z X @@`@` !!? "!"@5!B ?C!B ?yE@S !- Bd'~}(@@9 -S@ CcCo(@@9 -S@ cc a(@@9 -S@ cc $S(@@9 -S@ #c  @E(@@9"@5S@!cb!BS@y  @`4` !!@? "!"@5!B`?C!B`?{y@"@5!!=#!B=ny@"@5!! =#!B =ay  @`!a !!BA"BD@5!!BGy@O !- bB '@@9 -O@ cc #'@@9 -O@ "B  @'@@9"@5O@!BA!BO@y b @`!t a !!B?A"BD@5!Є?!B?x H @z`  ` !!= "!"@5!B=C!B=x . @@`!a !!B>A"BD@5!Є>!B>x  @ `5` !!> "!"@5!B >C!B >x  @`!!a !!BA"BD@5!!Bx  @`!4;a !!BA"BD@5! !B rx  @`` !!@= "!"@5!B`=C!B`=Xx~T@-@!!B( B!~c0 c4!cl  c>c ># *C@#@_(rT7 !* A* d @A7@"!"@5@!B`@@w!B`wQ@K !:  @@@"!#@5cCcw :K@ @ @@"!#@5#c1C#c1w :K@  @~@"!#@5c1Cc1w :K@ @ @}@"@5A!ACcw :K@ ~y @@"!#@#5#c 9CK@!c b#c 9w!B K@w  @``,` !!? "!"@5!B?C!B?ew  @`D5` !!@> "!"@5!B`>C!B`>Kw@"@5!!#!B>w ա ! ?#@!!+?!!!+@5!!+#!B+(w 4 @G7@!G@ T7|"B+AhaCD.x`F@3 4 @3@@"@5C@AC@v"@5!!@#!B@v!! #@!! !@!>@5!!>#!B>v / @ `!%a !!B=A"BD@5!=!B=v  @`!` !! "!"@5!BC!Bv 2c G@@A!@@!!&! !Є "@5!! #!B v  @@`!a !!BA"BD@5!Є !B jv  @ `!P,a !!BA"BD@5!Є !B Pv  @?!' !* @``` "@5?@# B>A?@" 0v B>,v  @`` !!@ "!"@5!B`C!B`v f @`` !! "!"@5!BC!Bu L @@`` !!@ "!"@5!B`C!B`u 2 @`(` !!@ "!"@5!B`C!B`u  @`(` !! "!"@5!BC!Bu  @ `%` !! "!"@5!BC!Bu  @@`!a !!BA"BD@5!Є!Bvu  @`d ` !! "!"@5!B C!B \u  @``,?` !! "!"@5!BC!BBu  @`` !! "!"@5!Є!B(u!Є @!Є @!Х$@5!B C!B u j @`+` !!@ "!"@5!B`C!B`tW@; !? B1~#@@"@5!0Ac0t ?;@ B(v#@@@"@5!Act ?;@ !!l]#@~@"@!5!d$A;@!BAcd$t!B;@t  @@`` !! "@5!!Bt_@C _At~t~t k[ @_ T#с@@@?@ C@G@K@O@S@y#@+@'@/@W[_c_G_dk"@T#$@@߈k#9_ @_IT#с@@@ @@a,"!!@a50/t`  @"@5@a@t "$,@`5#0"t_C_k"@T#$ @_T#с@A@@P_B_k"@T#$ @_T#с@A@@aN_B_j"@T#$ @_T#с@A@@v_B_j"@T#$ @_T#с@A@@y_B_j"@T#$ @_T#с@A@@9_B_j"@T#$ @_IT#с@@@/@ 3@7@;@?@@#@CG_E_fj"@cT#$ @_ T#с@@@@ #@_C_Hj"@T#$ @_T#с@@@ S_B_Jj"@AT#$ @_T#с@A@_B_0j"@T#$ @_IT#с@'@ @+@ /@@@@37;_D_] j"@#T#$ @_T#с@A/@`@#(@,@!(@3@ 7@;@ ?@@@#@d<@d<?CG_E_+ i"@cT#$@@C9/ @_T#с@3k/@@@@;@;@k"@#@GCG@3k_E_i"@cAT#$@@/@@C94/@@C94/ @_ T#с@'@@@@7B7@1"@@+/_D_`i"@#T#$@@90# @_T#с@a3k/@@@;@;@!@#@GCG@3k_E_+i"@caT#$ @_T#с@'@@@7B7@!@@+/_D_i"@#!T#$@9" @_T#с@a3k/@@@;@;@!@#@GCG@3k_E_h"@caT#$ @_T#с@'@@@7B7@!@@+/_D_h"@#!T#$@9" @_T#с@a3k/@@@;@;@P!@#@GCG@3k_E_h"@caT#$ @_T#с@'@@@7B7@.!@@+/_D_]h"@#!T#$@91" @_T#с@a3k/@@@;@;@ @#@GCG@3k_E_/h"@caT#$ @_T#с@'@@@7B7@ @@+/_D_ h"@#!T#$@9! @_T#с@a3k/@@@;@;@ @#@GCG@3k_E_g"@caT#$ @_T#с@'@@@7B7@ @@+/_D_g"@#!T#$@9! @_T#с@a3k/@@@;@;@T @#@GCG@3k_E_g"@caT#$ @_T#с@'@@@7B7@2 @@+/_D_ag"@#!T#$@95! @_T#с@a3k/@@@;@;@ @#@GCG@3k_E_3g"@caT#$ @_T#с@'@@@7B7@@@+/_D_ g"@#!T#$@9  @_T#с@a3k/@@@;@;@@#@GCG@3k_E_f"@caT#$ @_iT#с@!@ @@@9D@9 3979.C@99_B_f"@T#$ @_T#с@'@@@7B7@j@@+/_D_f"@#!T#$@9m  @_T#с@a3k/@@@;@;@8@#@GCG@3k_E_kf"@caT#$ @_T#с@'@@@7B7@@@+/_D_Ef"@#!T#$@9  @_T#с@a3k/@@@;@;@@#@GCG@3k_E_f"@caT#$ @_T#с@'@@@7B7@@@+/_D_e"@#!T#$@9 @_T#с@a3k/@@@;@;@@#@GCG@3k_E_e"@caT#$ @_T#с@'@@@7B7@n@@+/_D_e"@#!T#$@9q @_T#с@A@B_B_e"@T#$ @_T#с@'@+@ /@}E@@@37;_D_Ze"@#AT#$ @_T#с@'@+@ cA9c9aA@@@37;_D_6e"@#AT#$ @_iT#с@!@@@! @ ? @@#'_C_e"@T#$ @_iT#с@!/@@@!@3@ 7@;@ ?@@@?CG_E_d"@cT#$ @_IT#с@@ T _A_% d"@cT#$ @_T#с@a@_A_  d"@caT#$ @_T#с@a@_A_ d"@caT#$ @_T#с@a@_A_ {d"@caT#$ @_I T#с@ ?@ @/ C@G@ V| -/@ @@@@$"T3 * @@#@3@A"!$@d5Cm$@O@"@5 |K@Ah K@l_G_y "d"@T#$ @_IT#с@@ @ox @_B_Y d"@T#$ @_iT#с@!'@@@ +@/@ { -@ \_D_0 c"@#T#$ @_ T#с@'@@+@ /@u@@37_D_  c"@#T#$ @_)T#с@7@@# ;@?@ {@+@ B @'G@@"@5C@AC@Ul -#@ +@@@@@@"@5'@@'@>l_F_ֺ cc"@T#$ @_T#с@'@@+@/@ :{ -@ @@@@37;_D_օ .c"@#AT#$ @_IT#с@/@ @ 3@ 7@y@@;?_E_] c"@cT#$ @_iT#с@!/@@@3@ 7@;@y@@?C_E_4 b"@cT#$ @_IT##@@@C@@E@AT @F @TA@@ATA@9@9!!@ҡ i@9#@@@C@D @ ^@9#@@@"@!@ S@9#9_C_b @C_T#с@O@C@;T#C@;T#@'@SW_I_ qb"@c!T#$@@I} @_T#с@@3@ ;}_B_Rb"@AT#$@@9† @_T#с@'@ @@@9@@CGKO9_D_&b"@#AT#$@@{ @_IT#с@@;@ ?@y{@C_C_a"@T#$@@z @_ T#с@@z @@;?_C_a"@T#$@@| @_T#с@'@C@ G@q|@@@KOS_D_a"@#AT#$@@?| @_IT#с@@1| @@@;?C_C_a"@T#$@@ @_IT#с@/@K@ O@u@@@@#@SW[_c_E_Ra"@cT#$@@ @_T#с@A'@C@ G@@@KO_D_(a"@#T#$@@ | @_IT#с@@| @@@;?C_C_`"@T#$@@̇ @_ T#с@@ @@;?_C_`"@T#$@@\ @_IT#с@@;@ K@@?C_C_`"@T#$@@ @_T#с@A'@C@ G@u@@KO_D_`"@#T#$@@9z @_IT#с@@;@ ?@z@99_C_Z`"@T#$@@| @_ T#с@@{ @@;?_C_4`"@T#$@@E @_T#с@A'@C@ G@K@O@1_D_ `"@#T#$@@z @_ T#с@@uz @@;?_C__"@T#$@@x @_IT#с@@;@ ?@x@C_C__"@T#$@@`| @_T#с@A'@C@ G@M|@@KO_D__"@#T#$@@P| @_T#с@A'@C@ G@=|@@KO_D_d_"@#T#$ @_IT#@#@ Yg@@"@ Sg@@" Mg@@! @9g@'_C_2_ @_T#с@A/@`@@9 =@@ 3@ 7@;@@@@?CG_E__ _"@cT#$ @_T#с@/@@@ 3@7@;@o@@#@?CG_E_1 ^"@cAT#$ @_IT#с@@ @@#'_A_ ^"@cT#$ @_T#с@'@@/@9H@c ;@@@@9aT+@97;?_D_ ^"@#!T#$ @_T#с@7@@999 !!@ B =@@@@9 5'A9! +``. #@T@@;?_F_֘ A^"@!T#$ @_T#с@A@`@9@9@?k9_A_w  ^"@cT#$ @_IT##@@@C@?kTA@@kT @@9#9_C_] @_T#с@;@@@@@;_B_0 ]"@!T#$ @_IT#с@'@ @@7B7@@@+/_D_  ]"@#T#$ @_T#с@a7@@G !!@b B o @@@@9G@ N @ !3'+`| #@@@;?_F_ o]"@aT#$ @_ T#с@?'@S@@#@7B7@?_D_H]"@#T#$ @_IT#с@@C@@@7;_C_&]"@T#$ @_ T#с@;{'@S@@#@7B7@;{_D_]"@#T#$ @_IT#с@@C@@@37_C_\"@T#$ @_ T#@#@ {@9#9_C_\ @_T#с@@@9@9@5_k9_A_ \"@c!T#$ @_T#с@7@@yyy !`!@b B  Y@@@@9@yy @ !2'+@<@ #@p@@;?_F_ִ ]\"@!T#$ @@y@C@y?kTA@@kc9_c9_ @_ T#с@?@@y@Gy @! !'+G@ @ !3/3    ##@@CG_G_g \"@T#$ @_iT#с@!@@@@yq!T?qT4` !!q!T?kIT` A!qaT @RrkT` !!_A_$ ["@cT#$ @_ T#с@?'@S@u@#@7B7@?_D_["@#T#$ @_IT#с@@C@W@@7;_C_["@T#$ @_T#с@@-!C@9C9_B_j["@AT#$ @_T#с@aC/@@@;@;@ @#@GCG@C_E_?["@caT#$ @_IT#с@@ @@@37;_C_["@T#$ @_T#с@@ C@9C9_B_["@AT#$ @_T#с@@ C@9C9_B_Z"@AT#$ @_T#с@'@@@7B7@@@;?_D_Z"@#!T#$ @_T#с@a@9_B_Z"@aT#$ @_T#с@a7@@ R @! !?'+`, #@@@;?_F_ sZ"@aT#$ @_ T#с@;{'@S@@#@7B7@;{_D_LZ"@#T#$ @_IT#с@@C@@@37_C_*Z"@T#$ @_)T#@#@ c@9`@@#@!@?#9_C_#9_C_Z @_ T#с@3k'@S@@#@7B7@3k_D_Y"@#T#$ @_IT#с@@C@@@+/_C_Y"@T#$ @_T#@#@ c@9@ @#@C @kaT@@9C@@9!!@D@9AD@9k#9_C_#9_C_Y @_ T#с@3k'@S@=@#@7B7@3k_D_pY"@#T#$ @_IT#с@7@@9@9 3979=!C@99_B_NY"@T#$ @_IT#с@@C@@@+/_C_.Y"@T#$ @_)T#@#@ c@9`@ @#@! @?k#9_C_#9_C_Y @_ T#с@/c'@S@@#@7B7@/c_D_X"@#T#$ @_IT#с@@C@@@'+_C_X"@T#$ @_ T#с@;{'@S@m@#@7B7@;{_D_X"@#T#$ @_IT#с@@C@O@@37_C_~X"@T#$ @_)T#@#@ Uc@9`@ @#@! @?k#9_C_#9_C_WX @_ T#с@/c'@S@@#@7B7@/c_D_8X"@#T#$ @_IT#с@@C@@@'+_C_X"@T#$ @_)T##@@@C@?kaTA@@kTA@@B@@`T @9#9_C_W @_IT#с@'@ @@@@  !@@+/_D_ W"@#T#$ @_T##@@@C@?k!TA@@kTA@@B@@?T V@9#9_C_W @C_T#с@O@@@G@+@' B @ !3/3G@ : @! !?7;+@'@ t@ !*?C@ c@d@@SW_I_֨ QW"@c!T#$ @_ T#с@;{'@S@@#@7B7@;{_D_,W"@#T#$ @_IT#с@@C@@@37_C_ W"@T#$ @_ T#с@;{'@S@@#@7B7@;{_D_V"@#T#$ @_IT#с@@C@@@37_C_V"@T#$ @_iT##@@@C@?kTA@@B@@?T V@9#9_C_V @_T#с@AG@`@@+@' E @! !?/3+@'@ @ !*7;@ co@@KO_H_ֳ \V"@#T#$ @_T#с@7@@@ H@ !*'+`@ #@8@@;?_F_| %V"@!T#$ @_IT#с@@ @@_A_] V"@cT#$ @_)T#с@@@@_A_> U"@cT#$ @_T#с@7@@@ @ !*'+`) ~ #@@@;?_F_ U"@!T#$ @_T#с@7@@@ @ !*'+`4 #@@@;?_F_ }U"@!T#$ @_T#с@@_A_ֹ bU"@cAT#$ @_T#с@A@` 4@@#'_A_֗ @U"@cT#$ @_T#с@a/@@3@ 7@;@9@#@@?CG_E_j U"@caT#$@@ @@@@e2@@5 @_ T#с@'@@+@ Ag@@@/37_D_/ T"@#T#$@@0 @_T#с@7@@@ @ !*'+`%} #@@@;?_F_ T"@!T#$ @_T#@@#@C@D@@?T r@9@@#@!@?#9_C_nT @_ T#с@7@@@@ ;@?@C@q/@#@'@GKO_F_֟ HT"@T#$ @_T#с@A@`@\ @@#'_C_{ $T"@T#$ @_T#с@A/@`@3@ 7@;@Z@@@?CG_E_O S"@cT#$ @_T##@@@C@@E@TA@@9@@9 @ @9#9_C_S @_)T#@@#@C@D@@?!T @9`@@#@C@ @E @aT @9@@#@C@T@C@@B@`T @9#9_C_S @_T#с@@_A_ vS"@cAT#$ @_T#с@A@` 3@@#'_A_֫ TS"@cT#$ @_T#с@@_A_֌ 5S"@c!T#$ @_iT#с@!@@@! @ ? @@#'_C_S"@T#$ @_IT#с@@#@ @? @@'+_C_R"@T#$ @_iT#@@#@C@@E@aT @9@@@9#@C@@9a!@D@9AD@9@#9_C_R @_IT#с@#@'@ @? @@+/_C_R"@T#$ @_IT#с@3@7@@;@ ?@C@?@@@GKO_E_R"@cT#$ @_iT#с@!@@@! @ ? @@#'_C_aR"@T#$ @_IT#с@@#@ @? @@'+_C_BR"@T#$ @_T##@@@C@@E@TA @ @AT @9#@@@"@! @ @9#9_C_R @_ T#с@7@@'@+;@ ?@('@ @@@@+@ ?@@@CGK_F_7 Q"@T#$ @_IT#с@@ `@_A_ Q"@cT#$ @_T#с@@@9_A_ Q"@c!T#$ @_T#с@@@9_A_ Q"@c!T#$ @_iT#с@!7@@@@@@'+@ #@h@@;?_F_֬ UQ"@T#$ @_)T#с@@@@_A_֎ 7Q"@cT#$ @_T#@@#@C@@E@?T @9 @@#@C@ @B @?`T @9#9_C_Q @_iT#с@!@@! @ @ ? @@#'_C_P"@T#$ @_iT#с@!/@@@! @3@ 7@;@ ?@@@?CG_E_P"@cT#$ @_IT#с@'@ @+@? @@/3_C_P"@T#$ @_IT#с@/@3@ @?@ C@G@?@@@KOS_E_vP"@cT#$@@@ _@@ @ _ @_T#@@#@C@@E@?T @9 @@#@C@ @B @?`T @9#9_C_1P @_T#K@@O@ ? @G@+7S@/C3c# @@9@TK@@O@? @@W[_H_S@q _H_ O @_T#c@T_@E;'/ c< ^/@@ /@C3 " B W@[@'@;@3@/@C@_kT ) @`"@5C@@C@}X ko_J_K@@7K';/ @+&@? @? @ !T BT/@'@;@+@@?@?@G !(@/@G@+@@?@? @@ BT#@'@;@7@!c@_,T 6x UOd @_iT#@ T@I?'7/ Є$` @Kcc~T/@[?@_@k@o'@c7@g`"@5c@;T $ c @@ @K@Z@@@_O_G@@3G'7?/ @+'@; @? @ !@T BT/@?@'@7@ +@@;@?@C !(@/@?@C@+@@;@?@C !&@C@'@7@3@B@TxN` @_IT#р =@ (@9@7j`"@57@@ $@ 7@bW{@@@ ? @w@!@@K g_Ccc @@9H@T{@@@? @@_N_{@@@ ? @G W7@O#ScC @9@G@9@b"BC@9@$㸄@%_%6;C0C9I;@C@b"B @@@ B@9&'_'F63?'3@'@?@_N_T{@@@? @@_N_ MI @_)T~#@@@ ? @@C @9@ @9@D"@9@&@'_'6_0C9H_@@D"@$@@ @I )<'@H . @ @ @ @ Ս@9 .  /_ /ck;3S.67[+D"@c@k@;@S@3@7@[@ @@c >?T?҂ @ ?@W@g@wc c> @A"!"@5W@ `W@+Vw@$@5g@g@!V@ @c@@T_@_B@ O@P@pqBT+G{/O ( @@#@@@{@G@D"@c@k@;@S@3@+@ O@/@s|i3 P"@s5oCk! UP"C@P" k kTs@n@S@3@Gs@@ @ ?@9`G@?@?Tk@;@S@3@kS@3@ @ !*4 #@@w@ob B> @w@A"!"@5o@o@U@ @c@|@`fL@t _ @_iT#с@!@@@! @ ? @@#'_C_L"@T#$ @_iT#с@!@@@!@ ? @@#'_C_aL"@T#$ @_T#@#@ }@9@ @#@C @T@C@@B@`T +@9#9_C_.L @_ T#@#@ }@9@ @#@C @@E@T @9 @@#@C@D@@?!T @9`@ @#@C@@E @?aT$@B$@_T @9#9_C_K @_IT#с@@#@ @? @@'+_C_K"@T#$ @_IT#с@@#@@? @@'+_C_K"@T#$ @_IT#с@@ @t_A_ K"@cT#$ @_IT# @@'@?1T;@"}BcUCUCUCUc|Bc ccBb ;@#dUDUDUDUd|D$Ab~# 5 @+'@ #@7@;@?@+@C#@GK_F_>K @_IT##/@B # TCh`8c4T !@!@}!@ N@@37_E_}AT K @C_T#99S@jTW@"BbO@b @@9S@{9 O@ W@Є Pe@{A9@ @ !@ @  !` @ !  @7@?1TS@"C~c}bBCS@#Bb3 5 @;7@ 3@O@S@W@?#@'@+@'@C@@?C@ >` @@@ cgk_I_3@_#T;@[_c _I_֥S zJm @_T#` /ڣ@ @" B?T@@@?@?T?T"ˢT/' !5 @#@'@/@3+ S?@+@3@?TCGK_G_bS  6S 0J @_ T#` N @A"!!@5'@+@/@ a !  #@@@?IT_9@!@@@?JTTB?"$eD S@@a !/ ! !_D_SR I @_T#;@@?@? @@TTT TAC $aT@A!C@_ : @+@#@'7@+@C#@G'@K_F_I @_T#`  @ !5 A@@_@@@"@`5CQR '+_D_tI @_)T#љ@@"@5 ! # B 1R@@"@5  B$R_B_KI @C_IT#W@  !-!@9W@ -A"!$@5[@ c-b  B-[@QA"![@7;7@@\@9C@dyB{_k ;@ A"! D@TT o@@A!@?C@9` @@@ gk_I_'/+` ? m@3| ! ! O@S@+@/@'@#`  @@"@53@@3@Q` _c _I_Hq @_T#'@@@+@/@ 3@7@?@@;?_D_H @_T#OS_9C9_@9A"!"@9`@d⸄@e_ed67PC9RC_@A"!7@ @ !@9dḄe_e363@. ?S3@O@_9c@@g@? @_@"@;G?Cc @9A9@;@@"@5_@_@Q@C9_9O@E_K_@"@5_@_@PC9_9O@3_K_?T@"@5_@_@PC9_9O@_K_  @9a!d_d6C9_K_ M_K_GG @_T#9+'@9A"!!@9`@Cc@D_D6PC9B'@! !> @9@+9@)_D__D_G @_ T#O@ @S@G@ K@?@#@+#@+@ @G@ K@@?@9#@@+@ ? @'W@" @@@@ @[@ @?@@@'@C@B@/3@@7;@x @ c[@@_c_H_ _H_JG @C_)NTC~#@@  !-!@9@ -A"!$@5@ c-b  B-@OA"!@@#c\@9d@yc{k A"!@ c@TT@@ @#@@@@d@@`6` c@@@_@C_ց !* 2@@! @@ @ ?@@ @   !-!@9@ -A"!$@5@ - B-@OA"!@oso@@\@9@y{k s@ A"! Ն@XT @@A!@`.` c@@@_@C_W3 @@@ C@T T7kOH7b86@c@ң @@ Ak@O@ 7@O@k@7@,CaT @@H@?@S @g @ck@O@ 7@@@$@?@K @_ @[W  %@@_@C_ }@@A!@`.` c@@@_@C_@@.  c@@@_@C_k@O@ 7@;@?@+@#'3@ @W@@ @ ?@93@@W@ ? @@@  -@9 -D"@5 - B-ND"@A%\@9@y{k @ D" @@`  -@9 -@5 B-C B-SNw{w@@\@9C@gyB{_k {@+?;/GC @@@g@ S@?@9` /@@!T_@K@ @@@ k@@@aC@G@ @@@_@ K@?@9/@C@G@LC@G@ /@@@A!@[@`@K@ @@_@C_;@?@ +@e@@A!@c@`@S@@ @@_@C__@C_D @C_ITC~#_9 3@@_9@@ @W@@T; _9@$_@C_g@c`7g @c#@3$@_@@ @@[#@W'@/_@c@ 3@@9 @G@S[@W@ /@@9@K@O B @S@A"!"@5G@ G@5MCO@$@5K@ `K@*M@@@ ? @C@k w@oCsc @@9@7@;@?T!T_9@_@C_ Ռ_@C_"DQ @_T#@@#@C@@E@?T @9 @@#@C@ @B @?`T @9#9_C_C @_T#с@A'@`@@@+@/@ 3@7@?@@;?_D_' C"@#T#$ @_ T#Ka C9Z[@TW@ C9Z?@;@C@G@?TBdc gk _J_L7@c`[@'7#@3$@+%@/_TC9_ZAC9ZZ3@ +@/@XAC9LZ'@[@?ThC @C_T#` 9 @;S@W@ [@ ! @@@;@@+b B  @;@@@?T/7+@@?C   @)@@_c_I_+@O@@@@"@`5CK _I_3@c@'3@@ 3@@@'@+@_TE7@ ˠ@"@a5KA/@lTK B| @_)T#@@A@B@T'C9_B_T@ @@@#'@C9_B_K B@@ _ց @_IT#+@ /@@@@'@  @@37_D_B @_iT#C c`@c@_@?jT;[@ /@9_@;@?BTc@c$[@c@[@F ƀ@@T˟ T) `T3/G7 @93@/@G@7@ҠbT? zbW@@@@@@@'TKC?`  @@#@W@AA"!$@d5CJK@?@C@' B EF@"@`5DJ _J_'K-K,K Ah @_T#с@/@@@@ @@@@#@37;?C_E_) A"@cAT#$ @_T# ? @!?@A"!!@5C@@C@J/@3@ 7@;@A !@#@GK_E_A @_T#@@A @/@ c*_T @3@C@B@ 7@;@?@@?C_E_ 6 KA @_T#@ 4 @G@A!@+?@C@ K@! !.@#@@"@@/3 &} c@=@@OSW_G_+@@O _G_(A @_T#` F @+@@/@@@"@5'@@'@I_ @  T@3@ 7@->@@;?_D_@ @C_ T#р * @;S@! !:  >@@@@@?C@! ~ @@@W[_I_;@@@C @@@ @@@@O@@A@"@`5CwI _I_;@@@ @ !*?C`0` @@@W[_I_@ @_T#р * @#7@! !: =@@@"@@'+@! ~ #@X@@CG_F_#@@@;?_F_A@@@ _ց @_i T# {?T9S@'W@+G@@'@# G@@ B?3/9@A !: K@O@@#@? B&B#A"!!@a5 H9/@_H_G@@G@@ B?;7@9@A !: K@O@Z97@_H_:{_H_? @C_"T#_c?9o@@;9B"BB@9#@@d⸄@e_e6 0C9:o@@ B>c_@?9@A !: w@{@@@@@9 @@@ @9@+@?@/s@ <@@@B +@ ՠ -@9?@ !- A"!!@5/@ B-A  B-/@3H?@/@GKG@@\@9"@Cy!{?ka K@ g@@@ @9@@?9_@_M_7; w@{@ -@ !*OS;@@@W7@[@ c@@?9_@~_M_ 6+ @C|s@! ! %<@@@3; w@{@ @ !*OS;@@@W3@[@ c@@?9_@A_M_C@@@?9_@4_M_z_M_> @_ T#@  @@A"!!@5#@ #@mG A"!"@9@C"cd⸄ @C"ce_e6@"C9V9@A"!C"cB"BB@9 @9 !@9bBd_d6@"@'_C_X> @_T#OS_9C9_@9A"!"@9`@d⸄@e_ed67PC9 9_@A"!7@ @ !@9dḄe_e363@ ?S3@O@_9c@@g@? @_@"@;G?Cc @9A9@;@ "@5_@_@F@C9_9O@_K_ "@5_@_@ҨFC9_9O@_K_?T "@5_@_@ҔFC9_9O@כ_K_  @9a!d_d6CC9_K_ y_K_=G @_T#9+'@9!"!!@9`@Cc@D_D6PC9O8'@ !> @9@+9@_D_x_D_`= @_T##@@@C@?TA@@B@@`T @9#9_C_;= @_T#@@@"L@bB@bB @bB@bBBscA@BA!@@!BB@ @BA !@@C@ !B!@_B_= @_IT#@@@C@a@a@D@!a@D@!a @D @!a @A@ ` @#_B_< @_T#@@@C@!˻!@a@D@!!a@D@!!a @D @!!a @A@`@#_B_< @C_I(TC~#C W   k  C@   C       @   C     #  #  /   |/@T   #  i +   `+@$T  c  c M '   D'@LT   c  3 #   *#@$T   e      @T   I      @T   .      @T                   @ @_@C_^; @_ T#@AT@@!@@A `@!CA @!FA 0A!AA   @L@'_B_` * ( { 0; @_i T#G@@;T;@+@/@3#@7'@;K@!?*TCBxac$|EC B ĚB0@ 9O{SW_H_hf8h&8B_ Thb8F ߀jT9T{C : @@@C@!@!cC@a@C@!!cC@aA@@ccaA@!A @ @ccaA  @! A@@ccaA@!_ @@@#|›$|@%|›&|@'|›(| @)|›*|@|› |@!˓b @ `ē@ Ɠ@ ȓB@ ʓb@ _ @_IT#+@@/@C@$|Û%|@G@h }*}Ǜ+}eD @J @ } l}ʛm}  @M@} }͛} e@B@}}›}dS|T|u|ƛv|u}Ǜv}}ʛ}  }͛}  }}|›|v|ɛw| }Ǜ}}ʛ} U}V}}ƛ}W|ɛX| w|̛x| }Ǜ}||A}ƛG}!'}͛*} FG|̛I| "f|g|                              @!! a@œ!@b˓!@Γ!@ϓ'@C@;T '@_D_9I @_T#+@@"|#|@@||ś|#@ @| } }C"!)|ě*| }ś } i jK} |˛ |  +|Ǜ,||ě|  ||ś|  ,|-|ӎ|Ǜ|  N}|Λ|m  .|ś/|||!|Ǜ|                    d@!! @BÓA@"ȓA@bƓA@͓ '@C@;T '@'_D_>9}@@@@ @@s&@g@@A@!@!B @!@!C @!@!D _@@A@ @+@L@m@@k@ABCsvҪ*.6_ց @_i%T~#@9T {BA9}9?B9@?9z?9 o  [@9 {r :@ #@;T C@;T@C@;TҜ#bhb8# @B$ƚB@'!C @ Cc# #  C  C #   c  c   c# C [C }  #c c n   Cc Bh"   r C,  C   c #@'@C_CT4# 3C @, \  # @9#C @{@@_T A_@_{@ 7 @_T#{ ! $ !@$ "@5* !$  B$c*@_A_7 @_T#Ѡ $@@"c9?TT_D_` * `( lwDhb8chb8c_ T a@!!|_*7 @C_ T#w@_! T@_Ts@_T {!A B$A@B@?iT@ T #T { Ao@ #Ao@9^o@ !*3C  @a !W[_c@  &@@_M_  @a !W[_c@<@ @@_M_o@9{_M_#ha8#ha8B? T A@!!|_*?T@2{ @@_M_? 6K @_T#+@! !)aT/@@@#@_`T@ `@99_C_9_C_6 @_IT#` 5{ @+@?#T!?{!/@ccc{'@T 5@@{ @! !)37_D_{? f6 @_T#+@ !;aT/@@@#@_`T@ @99_C_9_C_A6 @_iT#` 5{ {@/@_CT'@?T {?@3{7;_D_{@? 6 @_)T#` 5z O@c@? TK_@_T ?c@_@ $@@@ g@h/@3@#@'@/@D @@OS@8{ c@@@ sw{_K_{`K@#_T v?K@kzos_K_  @a !OS -} c@@@ sw{_K_5 @C_T#O@S@ '@@;/b B5{ @C/@;@ {,!#@'@#@C@{ R@#@@@@@?37` 5{ @3@?T"_{B7@˥{?@`TC >C@3@{7@?@W[_cgk _I_ _ kos_I_ _ kos_I_{H> 5 @_ T#с@@@@#@ c;_T'@C@B@ҁT _`T @9C9_C_; 4"@T#$ @_T#с@a/@@@@c c5{  @@?#T!?{!@ccc{@T# g>#@{ @ !)37_E_{= 4"@caT#$ @_T#с@A/@`@@b B5{ @@_CT@T# {&>#@3{7;_E_{= \4"@cT#$ @_ T#с@@@@#@ c)_T'@C@B@ҁT _`T @9C9_C_{ $4"@T#$ @_PT#  "߈5 " ! @+ ! '/3 B C@$  c@@!"!#@5cCc< !"@$  P@ ! '""BC@5+@ +@<""B @ @  @bT + W@@#@ B A!"!$@5  B z< B ! '""B   +@%ҧJ@5|ӥ%i$ cX<""B !@ JA!K@ !@ BT 2  @@#@ B@!A!"!$@5 ! B!0< B@! ! ! '""B ! Ҩ  JA! ! +@|ӡi)E@e5#!  <""B  !"!#߈5 " !  Հ @+ !`/3 B C@$  c@@!"!#@5c$Cc$; !"@$  r@ !`""BC@5+@ +@;""B @ @  @bT + y@@#@ B A!"!$@5  B ; B !`""B   +@%ҧJ@5|ӥ$%i$ c$z;""B !@ JA!K@ !@ BT 2 /@@#@ B@!A!"!$@5 ! B!R; B@! ! !`""B ! Ҩ  JA! ! +@|ӡi)E@e5#! .;""B  !"!!߈5 " ' Հ @@+ !@(/3 B B@# c c@@!"!#@5c8Cc8: !!@" B @a !@(""BC@5+@ +@:""B @ @  @bT + @@#@ B A!"!"@5  B :a !@(""B +@ E@5|Ӥ8$i c8:""B !@ @!@ ! @bT 2 Y@@#@ B@!A!"!"@5 ! B!|:a !@(""B !+@|!i A@a5 h:_G_1v @_i$T# ?T9@@@H@@@ B?[W@9@C@D @d@@A@ @ @@@@7@+@/ @3@'@ c S7@k+@o/@sO_cg @9b B5 @+@@  ""BD@d5#$:""B#@7@T :` 5'@ j@'@@ 4 8""BD@d5#0$9""B#0@3@T : +. @;@"@#@GK B B@ c #@@@@9a;@@ "@5C@9@ 9@9c@g@_@ @9k@o@s@ 9W@_O_@@@@@?Cl=  @@@@9_@c@g@ u@9k@o@s@ l9W@_O_\= @@9W@_O_\= z@@9W@_O_k_O_e0 @_.T~## AL@"AL@}{ B?Kch*T#A@!( @%@"#@@ `#A @@@@/@@3 R#A@@@@'@@+ D@7@@;} Є @/@3@#lhaT}+ ! @'@+@\hT} s@7@;@#LhT` 5/@ +@/@A $ (""BD@d5# $8""B# @@T 9` 5'@  @'@A @ D""BD@d5#<$8""B#<@@T d9` 57@ @7@A ""BD@d5#$@g8""B#@@T E9 + @#A"@#@ B B@ c cK@@@@9!A@ "@5CA78A 28#  վj_@_##A@@@@ l=  #@F@@'+ ՠj_@_ ՚j_@_ Քj_@_ Վj_@_$} "@@'+ |j_@_$} @@'+ jj_@_$} @@'+ Xj_@_ Rj_@_. @C_T#р @ ! O@S@2@@@@9b/;  @3 ! @7 3@"@#@$ @ W@[@_@b@#@'@3@@A "@a5CA r7_9 7@@@ @ c@g@k@A@#@'@7@@A "@a5CA Q7_9 - @/@!"!!@5;@3@7@  ;@:7@3@77`7@47o_I_O@S@ ]@ !+?C $@ @I@@osw_I_;.V @C_T#?C9 O@@@;9""BB@9#@@d⸄@e_e6 0C9(O@@@ B>C?@9@"@!@!B@@@0@4@8@ #'@+@/@+@A!@7; H/ @@@[_9?@R_I_S@W@ !B@@[_9?@>_I_&i_I_- @_IT#OS9 _@L@;9"BB@9#@@d⸄@e_e6 0C9n(_@L@ B>SO@9@"@!@!B @$@(@<@@@D@ #'@+@/@+@A!@GK H/ #@f@@ko9O@Ҋ_K_? ~ @C !x @;_@"@# @!@@ @ @#@'@;@@A "@a5CA 6_9@5C@"C@$5?@@@ @@$@5#%& " 5"@5"`5c@g@ w@@ko9O@s_K_[h_K_,9 @_T# @;a !) @/ ! @"@5/@@;@</@5;@5W@ @[@? @7@+B_Txbd@e@F * T@@T@9qTT'3`@a @/@ ) @@@7@+@'@F *3@C@B@?C@@GK@ @@ gk_J_ր @ _/@c _J_ 6 g,v @_T# '@ h@@@@+/37_D_K, @_T# '@ L@@@@+/37_D_/, @_T#G@/;@/ @3 @+C c*7 Є ;d , @@ @>K@O@ @A !*7;` ,3@ /@@@ @!@ *7 !`$;a !,3@ /@z@@ @S@W@ @A !*7;` ,3@ /@]@@ @@ *7 !%;a !,3@ /@D@@ @[@_@ @A !*7;` ,3@ /@'@@ @@ *7 %;` ,3@ /@@@ @+@@/@?@@@cgk_H_R+% @_T~#z ?T9@9"!!@9@@Cc@D_D60C9% >s@o@9 !-F @[|| ! @@@ @@_c` @@@9o@i_@_[@@@@  [@ @@@@S@C@G @O@;@? c kS@C@G@gw{ @9[@g@c@@? @W Ձ !@"@S@ C@G@@K@7 Ղ B@B@O@ ;@?@@@W@C@B@@ K@7@b#@'@+@@9w@{@@ R@9@@@ I9o@_@_e_@_f* @_T~#z ?T9@9"!!@9@@Cc@D_D60C9% >s@o@9 !Z @[ ! m@@@ @@_ch& @@@9o@_@_[@@@@ #[@ @@@@S@C@G @O@;@? c kS@C@G@gw{ @9[@g@c@@? @W Ձ !@"@S@ C@G@@K@7 Ղ B@B@O@ ;@?@@@W@C@B@@ K@7@x#@'@+@@9w@{@@ h@9@@@ _9o@_@_d_@_|)SW_@@@@ _  @!_@@@@ _ _@@@@ __@ @@@@ __@@@@ __@@@@ _@ @ _@$@@@ __@(@@@ __@,@@@ __@0@4@8@ _ց @C_ɌTC~#9A@@;9"BB@9#@@d⸄@e_e6 0C9#A@@ B>@9 ! @A !* B`& B- B& B@H@#@@"cd@5@D@p1"c$A@ ;7  @@ *` ! aA"@D@B@BB@b"Х@f5d b`J1@;@cT@@ 7@@@#@@ *@"ХA7@H @i5Cx'#1"c@ m @A !* B`'AC@d@c@ :@ +@ "@b5# "`0@@cT@@ @@#@"@@G @h5Ax$0"cA@  @A !* BAC@d@c@ @@ *@ "BD@d5# $`0"B@@cT@@ e@@#@@ *@@"Bg H@h5ax$0"B"cA @ {  @A !* B !AC @d@e@c@ @ @ "@b5# "`T0{@@cT@@ @@#@"{@@G @h5Ax$20"cA@ ws { @A !* B`!AC@d@c@ H@@ *@ "BD@d5# $`0"Bs@w@cT@@ @@#@@ *s@@"Bg H@h5ax$/"B"cA@ ok % @A !* B!AC@D@E@ @ @ "BD@d5# $`/"Bk@o@cT@@ i@@#@ k@@"Bg H@h5ax$/"B"cA @ gc  @@ *` ! aA" @$ d"Є@e5b e`^/c@g@cT@@ @@#@@ *@"Єc@AH @i5Cx%8/"c$@ _[  @A !* B`AC$@d@c@ N@@ *@ "BD@d5# $` /"B[@_@cT@@ @@#@@ *[@@"Bg H@h5ax$."B"cA(@ WS + @A !* BAC(@d@c@ @@ *@ "BD@d5# $`."BS@W@cT@@ p@@#@@ *S@@"Bg H@h5ax$."B"cA,@ OK  @A !* B"AC,@d@c@ @@ *@ "BD@d5# $``."BK@O@cT@@ @@#@@ *K@@"Bg H@h5ax$9."B"cA0@a GC  @A !* B"AC0@D4@E8@ s@ @ "@b5# "` .C@G@cT@@ @@#@"C@@G @h5Ax$-A7;<@c~T c4 c47@;@@c7@;@@@ ;7@@@3b@c@?  @@?@ @@ *@ "BD@d5#$ -"B3@$D@5@$ $`@-"B7@;@cT@@ P@@#@@ *7@@"B7;g H@h5ax$m-9@ _@C___@C_$@<@ _ց @C_I@T# 9O@@@;9"@"cc@9@D㸄@E_E6 0C98O@@@}; B>+C\a:TW@ ,-TTS@"@9_qTO@@@@  q@! ! [_@9 ՜__I_ 9 Օ__I__q2TO@4@8@0@  S@! ! [_@9 ~__I_ 9 w__I_ $TS@ B@)@,TS@W@ B@@,TS@@y;R?kaT@9_qTO@@@@@@[_@9 D__I_ 9 =__I_{LR?k!T@9?qTO@@@@@ й@ !+[_@9 #__I_ 9 __I_S@@y{-R?kT@9_qTO@@@@@ @A !*[_@9 __I_ 9 ^_I_{R?kT@9?qAT @ !-[_@9 ^_I_S@W@ B<@@TS@@ynR?kT@9_qTO@@@@@ e@A !*[_@9 ո^_I_ 9 ձ^_I_R?k T@9?qA TO@,@@@@ D@A !*[_@9 ՗^_I_ 9 Ր^_I_S@@yR?kaT@9_qTO@ @ ![_@9 z^_I_ 9 s^_I_R?kT@9?qTO@$@@@@ @A !*[_@9 Y^_I_ 9 R^_I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@ @@@@ @ ! [_@9 *^_I_ 9 #^_I_ TS@"@қn{J_TO@(@@@@ @A !*[_@9 ^_I_ 9 ]_I_S@O@B<@ c4 @@@@9[_9 ]_I_ ]_I_z" @_T#'+9 7@@@:7@@@ B?+'@9;@ ?@C@G@@@KO9'@l_F_ְ]_F_G" @_)T#g@ LjTaTc@$@9qTk@! ! To@@@@_@"@`5*_K_ @ *G !Kk@Oo@S+ ~ # @@sw_K_֟qAvTk@! ! To@@@@_@48"@`50*_K_ @ *G "Kk@Oo@S+ ~ #ұ@@sw_K_ A[Tc@ bB@@*Tc@g@ bB@ӕ@lTc@@y;R?k!T@9_qTk@@cR[rkTk@ !*T8[ Rr+!Tk@ !.TA !*,iRr+Tk@A !*aT@ 2 @3k@o@ @@3@ "@b5#" ?*_@[9@`5A=7*:A !*@ k@ o@@@!! @ ? @/@'B B2v @7/@'@ K@A !* @@7@ "@b5#" *_@[9@`5A)_K_ @ *G Kk@Oo@S$` #@@sw_K_{LR?kCT@9?qBT +) @k@ !+To@@@d"@f5e)T_@9@a5 )_K_ @ *G `'Kk@Oo@S+ ~ #Ű@@sw_K_c@@y{-R?k! T@9_qT@ * @k@A !*To@@@d"@f5el)T_@9@a5@a)_K_ G Kk@Oo@S+ ~ #x@@sw_K_{R?k/T@9?qa/T_K_c@g@ bB<@}@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@ !0 To@@@_ aT#+@y̍RkT@9qT{.RkT@9qT@ *V @#@`"@5+@a+@(_@;9@`5#"( @ !0?C4>  @@@sw_K_֛iRr+Tk@A !*aT @o@@@`"@b5a(_@;9@`5#"(k@?o@C4>  @ɯ@@sw_K_R?kT@9?qT@ * @k@A !*To@@@d"@f5er(T_@9@a5,`g(_K_ G "Kk@Oo@S+ ~ #~@@sw_K_c@@yR?k!T@9qTk@ !!T_@9"!!@5o@ o@.(_K_ @ *G Kk@Oo@S+ ~ #C@@sw_K_R?k! T@9?qT@ *Z @k@A !*To@@@d"@f5e'T_@9@a5$ '_K_ G `Kk@Oo@S+ ~ #@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT  @;k@ o@2@@@ B B*G B !K@@OSh, ~ #@@sw_K__@9"!!@5;@ `;@t'_K_ Tc@"@қn{J_T@ * @k@A !*To@@@d"@f5eL'T_@9@a5(@A'_K_ G Kk@Oo@S+ ~ #X@@sw_K_c@_@C<@x@"@5_@#<_@"'g@c@B<@ c4 @k@"!!@5o@ o@&_K_ @_)#T##9/@@@{/@@@ B?#@97@? ,T?T3@@9qT|!!!@a5&qT!!!@a50Һ&? T3@ bB@@ T3@@y;R?kT@9qT!@5/@/@ҙ&{LR?kT@9qT!@5/@/@ ҇&{-R?k! T@9?q T!@5/@/@@u&3@7@ bB<@@T3@@ynR?kT@9qT!@5/@x/@T&sR?kT@9?qaT!@5/@,f/@`B&a3@@yR?kAT@9qT!@5/@ R/@.&MR?kT@9?qT!@5/@$@/@ &;/@7@3@/?T3@@{R;rkT@y RkaT@9qT!!!@a5 "`%? aT3@@қn{JT!!!@a5(@% 3@<@ B4 9@${_E_hX_E_ @_T#` @ '@ ,@@@@+/37_D_ @_T#9'@@@;9!BB@9#@@d⸄@e_e6 0C9'@@@ B>@9D@H@+/9@&z_D_X_D_ @_ T#_9@@@cz@@@ B?#@D!!!@5'@H@'@U%_9@z_C_W_C_t @_IT~#@[9@ A@D`E!@5_|_|_,%(%%%"%%_|GHI J@K`@5__|_|% % % % % kgc_[WSOK_LG@m5_0 $ D @@@@@!@5@A@$_ @  R@??@@@ @@@ @@@"@@R\r+T :Ta?qTT?qQT@!BiRr+aT *T@/@7? T?T? AFTC@қn{JaET @?@C@@ @@@!BE@e5$!B@@@5@(O@v$@!BC@{R;rkA?TC@y Rk>TC@9qa>T  @?@" B @@@R!@5@@A c@@F$@!Bo?TC@9qTqA9TG@?@ q@@@R@!B[[@?@ d@@@U@!BN? 5T `@f@T7@/@ bB<@Y@L T7@@ynR?kAT@9_qT *R @w?@@@ @@w@!BE@e5#!B@@@5@_@#@!BsR?k!+T@9?q*T * @o?@p@ @@@o@!!%@e5#@  @5@,K@#@BL!B7@@yR?k!T@9_qTR?k# " @?@ B @@@"L!@5@@A W@@u#@!BaT@9?qT * @s?@@ @@@s@!!%@e5S#@  @5@$S@F#@BH!Bm7@/@ bB@@ T7@@y{-R?kAT@9_qT *~ @{?@@@ @@{@!BE@e5#!B@@@5@g@#@!Ba{R?kT@9?qAT?@@@ @@@$IaET+3` Ď@9D@!B 7@@y;R?kT@9_qAT ** @?@B: $@@@G 2 @@"@!@ @! !* "@@@ !@5#@A" "@"!B{LR?kT@9?qaT + @?@ B) @@@C!@5@@Ak@@z"@!B */@7@@dH@eD@% @? @@?@ 7@/@@@@@7@ /@;@!B}/@7@` @?@ @@@#@@>@7@ /@@!B_  @ !:0@ @N@@_@_@@A@0@_@_(` 2@@_@_ ` "@@_@_ @@_@_ * A!@  @@_@_" B* B !@@  Ԩ@@_@_" B* B"@@  @@_@_" B* B!@@  @@_@_ * `!A!@  w@@_@_ * "BB@  X@@_@_" B* B @@  9@@_@_ * `BB@  @@_@_ * A!@  @@_@_3@+@ @! !*  @ݧ@@_@_@@,6 @ŧ@@_@_" B* B @@  @@_@_" B* B`'@@  @@_@_C;7@/@ z@! !*C@`@;@ ^@@_@_H0| @H@@_@_@@,6 @0@@_@_" @C _:TC ~#_c_9 # ~T @7 * aH@c  @@W@e S@@W@c@C@?@? Txc@@) )* A1TS @@T_O{ m@@#@@W@S@?@_@O@) )*{@Kh! @5|Jh$   @@ *Tc?C@@A@ @{@K Є4 @K@!!"@5{@ {@bw  @! ! e  1o@ @B BC9/-o@@ @# c5!/ @o@"@#@$@! @_TB/@_B!aT @/@#_9_A: _@C _Ow@@?@;wD@gE@GT-o@A-o@g@ G@+o@a! + 4 g@G@H@@@@ۏRr_k!T B T @["@3!@7o@D,@ @@[@ 3@7@@@o@ v+o@A,o@% B c  @@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ @! !*s@@@k@ 8  #z@@ _9_A _@C _֎ *  ;U 6y 6s 6m կP_@C _E$ @_IT#?@G@' @/@+ c? @3| ! C@G@/@'@+@# A @!@53@@3@ KO_G_ @_)T#3@7@ /@;@?@$@#@CG_E_ @_T#3@7@ /@h@@@;?C_E_`_c_@@@@ _  @!_@@@@ _ր _@@ @@ _@@@@ __@@@@@ __@@@@ __@ @$@(@ _@,@ _@0@@@ __@4@@@ __@8@@@ __@<@@@D@ _ց @_멗T~# _9AL@;9!BB@9#@@d⸄@e_e6 0C9AL@ B> @_9 !* @! !* B`& B- B& B@@#@@!cd@5@D@!c$A@ 73  @ *` ! aA"@D@B@BB@b!@f5d b`@7@cT@@ 3@C@@#@ *@!A3@H @i5Cx'c!c@ {  @! !* B`'AC@d@c@ z@ +@ !@b5# "`9@{@cT@@ @@#@!@@G @h5Ax$!cA@ ws ` @! !* B &AC@D @E@ T@ @ !BD@d5# $`!Bw@s@cT@@ @@#@ w@@!Bg H@h5ax$!B!cA@ ok  @! !* BAC@d@c@ ֨@ *@ !BD@d5# $`!Bk@o@cT@@ N@@#@ *k@@!Bg H@h5ax$m!B!cA@ gc  @! !* B !AC@d@e@c@ @` @ !@b5# "`=c@g@cT@@ @@#@!c@@G @h5Ax$!cA@ _[ d @! !* B`!AC@d@c@ 1@ *@ !BD@d5# $`!B[@_@cT@@ @@#@ *[@@!Bg H@h5ax$!B!cA @ WS  @! !* B!AC @D$@E(@ @ @ !BD@d5# $`!BS@W@cT@@ R@@#@ S@@!Bg H@h5ax$q!B!cA,@ OK  @ *` ! aA",@ Єd!@e5b e`GK@O@cT@@ @@#@ *@!K@AH @i5Cx%!!c0@ GC j @! !* B`AC0@d@c@ 7@ *@ !BD@d5# $`!BC@G@cT@@ @@#@ *C@@!Bg H@h5ax$!B!cA4@ ?  @! !* BAC4@d@c@ @ *@ !BD@d5# $`!B@?@cT@@ Y@@#@ *@@!Bg H@h5ax$x!B!cA8@  @! !* B"AC8@d@c@ @ *@ !BD@d5# $`I!B@@cT@@ @@#@ *@@!Bg H@h5ax$"!B!cA<@a h @! !* B"AC<@D@@ED@ \@ @ !@b5# "`@@cT@@ @@#@!@@G @h5Ax$A37H@~T c4 3@7@@ƹ3@7@@@ 73@@@/b@c@; Є @@;@ Υ@ *@ !BD@d5#$ !B/@$D@5@$ $`@!B3@7@cT@@ 9@@#@ *3@@!B37g H@h5ax$V#_9Al_@_J_@_o>@H@ _ց @C_ DT# 9O@L@;9"@!cc@9@D㸄@E_E6 0C9 O@L@}; B>+CG!>TW@ 0T TS@"@9_qTO@ @@@  Y@ ! [_@9 ՄJ_I_ 9 }J_I__qTO@$@(@ @  ;@ ! [_@9 fJ_I_ 9 _J_I__q2TO@@@D@<@  @ ! [_@9 HJ_I_ 9 AJ_I_ $TS@ BB@@,TS@W@ BB@@,TS@@y;R?kaT@9_qTO@@@@@@[_@9 J_I_ 9 J_I_{LR?k!T@9?qTO@@@@@ @ !+[_@9 I_I_ 9 I_I_S@@y{-R?kT@9_qTO@@@@@ w@! !*[_@9 I_I_ 9 I_I_{R?kT@9?qAT@ X@ !-[_@9 իI_I_S@W@ BB<@^@TS@@ynR?kT@9_qTO@@@@@ /@! !*[_@9 ՂI_I_ 9 {I_I_R?k T@9?qA TO@8@@@@ @ !*[_@9 aI_I_ 9 ZI_I_S@@yR?kaT@9_qTO@,@ ![_@9 DI_I_ 9 =I_I_R?kT@9?qTO@0@@@@ У@ !*[_@9 #I_I_ 9 I_I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@@@@@ ɣ@a ! [_@9 H_I_ 9 H_I_ TS@"@қn{J_TO@4@@@@ |@ !*[_@9 H_I_ 9 H_I_S@O@BH@ c4 @@@@9[_9 ղH_I_ խH_I_D  @_T#'+9 7@L@k7@L@ B?+'@9;@ ?@C@G@@@KO9'@4k_F_xH_F_  @_)T#g@ LqTaTc@$@9qTk@! To@@@@_@ !@`5@_K_ *G &Kk@Oo@S+ ~ #Ҝ@@sw_K_֟qTk@! To@@@@_@$(!@`5 _K_ *G !Kk@Oo@S+ ~ #@@sw_K_֟qAvTk@! To@@@@_@@D!@`5<M_K_ *G "Kk@Oo@S+ ~ #b@@sw_K_ A[Tc@ BB@p@*Tc@g@ BB@c@lTc@@y;R?k!T@9_qTk@@cR[rkTk@ !*T8[ Rr+!Tk@ !.T !*,iRr+Tk@ !*aT 2: @3k@o@ K@@3@ !@b5#" _@[9@`5A=: !* k@ o@8@@!! @ ? @/@' B2 @7/@'@ ۡ@ !* @@7@ !@b5#" _@[9@`5A_K_ *G Kk@Oo@S$` #@@sw_K_{LR?kCT@9?qBT + @k@ !+To@@@d!@f5eKT_@9@a5 @_K_ *G `'Kk@Oo@S+ ~ #U@@sw_K_c@@y{-R?k! T@9_qT *j @k@ !*To@@@d!@f5eT_@9@a5_K_ G Kk@Oo@S+ ~ #@@sw_K_{R?k/T@9?qa/T_K_c@g@ BB<@ @Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@ !0 To@@@_ aT+#@y̍RkT@9qT{.RkT@9qT * @#@`!@5+@a+@_@;9@`5#"x @ !0?C4>  @@@sw_K_֛iRr+Tk@ !*aT @o@@@`!@b5aC_@;9@`5#":k@?o@C4>  @Y@@sw_K_R?kT@9?qT *p @k@ !*To@@@d!@f5eT_@9@a58_K_ G "Kk@Oo@S+ ~ #@@sw_K_c@@yR?k!T@9qTk@ !!T_@9!!!@5o@,`o@_K_ *G Kk@Oo@S+ ~ #ә@@sw_K_R?k! T@9?qT * @k@ !*To@@@d!Є@f5e|T_@9@a50q_K_ G `Kk@Oo@S+ ~ #@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT@  @;k@ o@6@@@  B*G B !K@@OSh, ~ #G@@sw_K__@9!!!@5;@;@_K_ Tc@"@қn{J_T *J @k@ !*To@@@d!Є@f5eT_@9@a54_K_ G Kk@Oo@S+ ~ #@@sw_K_c@_@CH@@!@5_@#H_@"@g@c@BH@ c4 6@k@!!!@5o@ o@_K_ @_$T##9/@L@nf/@L@ B?#@97@? T?AT3@@9qT!!!@a5@WqT!!!@a5 JqT|!!!@a5<=? T3@ BB@|@ T3@@y;R?kT@9qT!@5/@/@{LR?kT@9qT!@5/@/@  {-R?k! T@9?q T!@5/@/@3@7@ BB<@=|@T3@@ynR?kT@9qT!@5/@x/@sR?kT@9?qaT!@5/@8f/@a3@@yR?kAT@9qT!@5/@,R/@`ұMR?kT@9?qT!@5/@0@/@ҟ;/@7@3@/?T3@@{R;rkT@y RkaT@9qT!!!@a5"҂? aT3@@қn{JT!!!@a54n 3@H@ B4  9@e_E_B_E_ @_T#@ @'@ `@@@@+/37_D_g @_T#9'@L@;9!BB@9#@@d⸄@e_e6 0C9'@L@ B>@9P@T@+/9@d_D_֒B_D_) @_ T#_9@L@d@L@ B?#@P!!!@5'@T'@_9@e_C_aB_C_ @_ɲT~#@[9@ !!$@d5_|ҵ_D@EFG(@5___Ҟқ_HI`JKL-@5_ __ ҄   } kgc_[WSOKG_|MC.@n5_< h  @@@@@!@5@A@V_ @  @;;@@@ @@@ @@@"@@R\r+T` :Ta?qVT?qRT@!BiRr+aT *T@+@3? T?T? !HTC@қn{JAGTi @;@@@ @@@!BE@e5!B@@@5@4K@@!BC@{R;rk!ATC@y Rk@TC@9qA@T@ / @;@ B )@@@W!@5@@A_@@@!Bo?TC@9qTqTq:TC@;@ @@@V@!BYW@;@ @@@X@!BLg@;@ @@@"[@!B?? 5T @@y@T3@+@ BB<@y@L T3@@ynR?kAT@9_qT * @s;@ @@ @@s@!BE@e5O!B@@@5@[@@@!BR?k!+T@9?q*T * @w;@@ @@@w@!!%@e5@  @5@8G@ @bR!B3@@yR?k!T@9_qTR?k# "O @;@ B I@@@BR!@5@@A,S@@ @!BaT@9?qT *) @{;@{@ @@@{@!!%@e5 @  @5@0O@ @bN!B^3@+@ BB@x@ T3@@y{-R?kAT@9_qT * @o;@9@@ @@o@!BE@e5{ !B@@@5@c@l @!BҁL{R?kT@9?qAT;@ @@ @@@DOKT'/@ -y@9 J@!B3@@y;R?kT@9_qAT * @;@B: @@@"M 2 @@"@!@ U@ !* @@@ !@5#@A" @ !B{LR?kT@9?qaT` +T @;@ B) N@@@"I!@5@@Ak@@ @!B *+@3@@dT@eP@% @? @@;@ 3@+@)@@@@3@ +@@!Bn+@3@ @;@  @@@#@@$D@3@ +@@!BP @a !:0@ @@@_@_@@@A @<@_@_(` @@_@_ ` @@_@_ ` y@@_@_ i@@_@_ * A!@ J@@_@_ B* B !@@ +@@_@_ B* B"@@  @@_@_ B* B!@@ @@_@_ B* B &@@ Β@@_@_ * `!A!@ @@_@_ * "BB@ @@_@_ B* B @@ q@@_@_ * `BB@ R@@_@_ * A!@ 3@@_@_/@'@ )@ !* @@@_@_@@,6 @@@_@_ B* B @@ ޑ@@_@_ B* B`'@@ @@_@_?73@+@ @ !*?@`@7@ @@_@_H0| @@@_@_@@,6 @h@@_@_Ze @C _:TC ~#_c_9C ~T @7 * ~@c  @@W@~ S@@W@c@C@?@? Txc@@ )* A1TS @@T_O{ @@#@@W@S@?@_@O@ )*{@Kh! @5|Jh$   @@ *Tc?C@@A@ @{@K 4 G@K@!!"@5{@ {@ w  @ !  1 Z@ @ BC9go@@ @ c5!/ ̤@o@"@#@$@! @_TB/@_B!aT % @/@_9_Ar_@C _ w@@?@;wD@gE@GTNo@AIo@g@ G@o@!!  4 g@G@@@@@ۏRr_k!TB T @["@3!@7o@D @@[@ 3@7@9@@o@ o@Ao@%B c X@@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ ̕@ !*s@@@k@8  #@@C_9_A_@C _ *  s? ` 6 ` 6 ` 6 :_@C _}$ @_IT#?@?@' @/@+c? @3| ! C@G@/@'@+@#)q y @!@53@@3@ KO_G_: @_)T#3@7@ /@;@?@\@#@CG_E_ @_T#3@7@ /@@@@;?C_E_ @_ T#Ѡp} x@@ @z1@@?@ ! ! !@+ @' !# @# !!!  !!!"@5'@ `'@  @ ! !!"@5#@ #@} !@?/3 @$+@ c@@@! !@0 !@5 `0" B`0]_G_ @_T#/@3@ #}@@@ c 7;?C_E_e @_"T~#w{_9@MT@҆;[? T@ ! G !  @@ @?@@@@@@_@_[9@`{w@_9 " @@ [@;@?@ @#@@'@_9{@@@w@?_@_s@d@KsO/@G@_ @@? @ !2T/@O@G@@_@?@o !0@o@K@!@_ Tk@)A Kk?73S[; @c)@Cj J% @@@A;@$?@cT[@gW` %[@ :@@#@g@;@W@&|i&!!&@f5 [7@3@S@,3@7@cTS@" B3S@ @@#@3@|C@h&!@5c@ c@4?@;@[@!!K@@,T 8_@_F @_IT#7@ @'B5"}# ~@+7@"@#@! @ #@@'@ T#@!+@@;?C_F_֠ @@CGK_F_#@1  @_뉕T~#@@!@;3R[˩r?k TR[Fr?kaT@" B ?T @!@5@b@;T   @P!@@ m;3R[˩r?k T@ B-?A T @@#@"@$ @!@!!%@5  {@x`u@ DR;r?+aT@ B?!T @!@5@@;T   @!@@` ߙRr?+T@b B:?aT @@@@@!@a5C3@ @@|@ۏRrk5TR[rk(T+R;rka T# c zT t@! !j @_a !d @!@5_@@_@ @@ A@@@" B_@" B @@@l6` @@@ _@_ @)_@#_@_R[rknT c7AnT@@wA@3B@G @ ! @oa ! @!@5o@4@0o@@w@3@ G@@o@ B7 @@@" o@w@3@ G@Б@ !7@@@@l6` @@@ _@_ @&o@#_@_ЁRrka T# c_T ՜@ !) @Oa ! @!@5O@@@<O@'@$@ @@@" BO@" B@@@l6` @0@@ _@_ @ O@#_@_ۏRrkSTc AST@@{A@'B@; 8@ !. @Sa !( @!@5S@0@,S@`@{@ '@;@0~@@@" /S@{@'@ ;@@! @@@@l6` @@@ _@_ @/S@#_@_Rr+(T{/RyrkT c)aDT@@A@7B@K @ ! @ga ! @!@5g@4@0g@L@I@7@ K@@g@ B) @@@" g@@7@ K@@ !)@@@@l6` @?@@ _@_ @&g@#_@_Rr+5Tc c !5T M@ !'C @ka != @!@5k@L@Hk@`@@@ @@@" B1k@B B @@@l6` @@@ _@_ @k@#_@_[R[wr+a T c a)T @ ! @ca !ߚ @!@5c@<@8c@z@w@ C@@@@ Bc@ B @@@l6` @@@ _@_ @,c@#_@_ֻRPr+Tc cT@@sA@+B@? Ջ@ !0 @[a !{ @!@5[@@@<[@@s@+@ ?@h@[@b B @@@" [@s@+@ ?@K@a !@@@@l6` @ @@ _@_ @#[@#_@_[Rۑr+T# c;aT@@A@/B@C @ !0 @Wa ! @!@5W@@@<W@@@/@ C@@W@" B; @@@" W@@/@ C@ю@! !;@@@@l6` @@@ _@_ @#W@#_@_@0(  c@l@@ _@_ 9 [@@ _@_LO @_T# p@;! ! f @7!!!@5;@ ;@W@(@[@ ? @' 7@ hs+@'@?J T+W@@[@ @?@@@93`@/ C@@@@@3@BB@?/@C@@GK@ @@ gk_J_`X އ@@ gk_J_ 4_7@c _J_~ @_ T# 7@ ;@@@A7@;@ @@@@@$@@'+ @ #@@@GK_F_@4@? @@@@?CGK_F_! @ ? @@@@?CGK_F_r @_ <T#?@C@ G@@@@@7'+#d@e@,T(T@d1T@y(Rka1T` @a@b@ @@@@@d@@/38` c@1@@  [_c_G_KO+@S#@W'@[ _G_ֿ,*T@{[;;iT@y;RkT(@9qT` @a@b@ @@@@cA!@/3@ c@@@  [_c_G_P@T@KO+@S#@W'@[ _G_J;ɪ;!T@y{RkA!T(@9dq T` @a@b@ {@@@@@d@@/3x c@@@  [_c_G_KO+@S#@W'@[ _G_ֿ8!T@h[**T@RdrkAT@y(RkT` @a@b@ 1@@@@c@@/3@ c@h@@  [_c_G_@ KO+@S#@W'@[ _G_[j;[T@;iRdrkAT@y(RkT` @a@b@ >@@@@cA!@/3T c@%@@  [_c_G_ ! KO+@S#@W'@[ _G_ֿ< T@[j;J;!T@;RrkT@y{RkT8@9dqT` @a@b@ @@@@cA!@/3 c@܅@@  [_c_G_ ! KO+@S#@W'@[ _G_`@a@ ‹@!*/3=  c@@@  [_c_G_֠,7  @@  [_c_G_@@@9C9_ց @_I_T~#9@T@3@@ @'@+@@@'@D@@7` C@R@@_@_ F@@@@_@_o@ 9] @@@ @=@@@B@@0@ C@@@_@_@@@_ T!@yhR?k3T @-T*@ !' @Sa ! @!@5S@#L@"HS@"`"@@" B@ @ !) @Oa ! @!@5O@#@@"<O@""@" B@ _ A+T"@yiR_kT#@9@qT @-Tޘ@ !0ԕ @ca !Ε @!@5c@#@@"<c@"i"@f" B@#@ ! @_a ! @!@5_@#4@"0_@"I"@F" B@&p[jR_kT#@9qT @-T@! ! @Wa ! @!@5W@#@"W@"  "@" B@)Gu@ !k @[a !e @!@5[@#<@"8[@""@" B@,'mR_kT!@9?q!T N@ !D @ga !> @!@5g@#0@",g@""`@" B@/;so@cN  @@@;@`@s@ : C@@@_@_w?  + @!@5o@@o@?@@w@ c ?` @w@@9s@;@9bC@@@ @{@@@B;@BB@s@@@/@ @@A969@@ _@_;@s@A969@@ _@_@@ b@!*@ C@N@@_@_@@Ko9 @7%@k @? @ !8 T B6 T c@T 4 T B#A9o@c7@@k@?@ @b B?T@@@ @o@EGC 4@{a !* @oa !$ @!@5o@#{@" o@A {@@@G@C@o@o  B#A9o@7@@k@? @@ B#!TA97@@k@? @@B:T#@9 B#o@K@@T> } @@_@_5 @ 6 @ 6 @ 6 -_@_ @_T#@@#@?_C_s @C_?TC~#9@T@F9_9@! ! x @!!"@5@ @{A9_@bA9c  !0 !4 .@@@Cwc +S @s!@5_@A_@ 4D @ !!!!@5s@ s@A9@9C@!@c@ c  ?` w@c@@9{@@ 4@{@ l@ @@@_@C_9 B4B@@@ @@@@b@@@ @@@A969@@ <_@C_ 4{@A969@@ )_@C_@@ @@@@{@ lS@7@ ;@@@@?m T '@+@@@@@#@'@S7Ww; d@@@@@w@W@@@ CI@@_@C_@@7` @0@@_@C_ 4{@_@C_o@@Oo9_9 @?&@[ @? @ !8 T B4@ T cTB:A9_@A9e?@@[@?@ @b B? T@@@ @_@EwKGk @ga ! @_a ! @!@5_@#g@" _@A g@w@k@G@K@_@_ |B:A9_@A9?@@[@? @@B:AT%@9A9_@?@@[@? @@B:T#@9_@A9O@!@T3 @ 6 @ 6 @ 6 +_@C_n @_T#@@#@?_C_[ @_T#?@C@ @@@@@@%@@/3   c@:@@ [__G_ G@K@O@@'@#@+@SW[__G_ @_)8T~#@! @ @@@ .@{ !$ @Ca ! @!@5C@{@C@ {@! !@) =@ @ӆ@@ @w ! @Ga ! @!@5G@<w@8G@w@! !@, .@ @@@ ؓ@s !'ΐ @3a !Ȑ @!@53@Ls@H3@`c@s@`! !@ @ @}@@ խ@o !) @Ka ! @!@5K@@o@<K@8o@5! !@  @ @R@@ Ղ@k !0x @;a !r @!@5;@@k@<;@ k@ ! !@#q 9@ @'@@ W@g !M @7a !G @!@57@4g@07@g@! !@&F @ @@@@@@L<` @~@@_@_ @c ! @?a ! @!@5?@0c@,?@`c@! !@/'W@B\@@@? @_@/W@'@+@/@W@'@_@ Txd@@* T+O`@@@@@ @ ?@@@"O@C@B@*TS[@@A@ @!*[@@@S@l #r~@@_@__@_ @ 6x @ 6r O: @_)T~#@@ ;@ @@@@Cc b@_! ! X @!!!@5_@ _@[ !4;9c@ C@_i !4[@  @ @[@@+G) @g@k\> #@}@@_@_K3 7@G@+@3@?@K@73/K&(@? @7@?j T+@@G@ @?@@ g#@'@@@@@@#@@/@"? @3@cTK@;W5K@ :@#@;@/@W@OS 7@t @!osS@@@wO@{ 0 cz}@@_@_K@/@3@_@__ @_ $T#?@ ?@ C@H@ .?@ C@>@` ?@ C@4@@ @ 6^ @+|?@!8@C@B  ?@@@b@@/3' c@}@@ W[__G_+@@@ @@@@@@e@@/3d?` c@|@@ W[__G_@(+G`KOSW _G_ր =?@ C@Ƀ@ ?@ C@@` 9?@ C@@@ @ 6ߍ @'|?@!8@C@B  ?@@@b@@/3' c@|@@ W[__G_'@@@ @@@@@@e@@/3@ c@p|@@ W[__G_@hG@KOSW _G_?@@@/C@3H c@H|@@ W[__G_8@@@@ __ց @_ IT#[@@=R; rkT{R{^rkT[@!9T_@@/@7B> S@/@0T7@Ҕ=R; rkT[@! ! aT_@@@@W@AD!@`5C _J_nR[rkT[@! T_@@'@;B* @'@? T;@1Rr+T[@!4T_@@+@CB> @+@ TC@ZiRr+T[@!*AT_@@3@?BɌ @3@@!@5?@@?@e@ @W@!9 \@@cg_J_[@G_@K`0| #@q{@@cg_J_W@@@!@`5C0 _J_!@$@%@TT@{.R̭rk Ti T@ۮR[.rkA T@y,Rk@ T]T@R{LrkT@y;RkT@9q`T̍R{LrkT@y;RkT@9qTNR; rkT@y{RkT@9qT8$T@[.ۮ{T @9qT΍N; {T @9qT"(T@[.ۮ[(!T@ynRkTf!@5F|dh&DT} @!>GKp> #@z@@cg_J_ @W@!9 @@cg_J_ք@@@*T@@aT!@5H|h(mF?LT[@G_@K@ #@z@@cg_J_W@@@!@`5CG _J_!@$@%@TT@{.R̭rk Ti T@ۮR[.rkA T@y,Rk@ T]T@R{LrkT@y;RkT@9q`T̍R{LrkT@y;RkT@9qTNR; rkT@y{RkT@9qT8$T@[.ۮ{T @9qT΍N; {T @9qT"(T@[.ۮ[(!T@ynRkTf!Х@5F|dh&DT} @!>GKp> #@y@@cg_J_ @_iT#/39 ?@4@G?@4@b B?3/@9A !+ @_C@ @R[rk!TC@a !7 TG@@@@?@!!$@d5s @D!@5!!A4#cf b,{/RyrkTC@ !)aTG@@@@?@!!$@d5GD!@5!l0Acl0: 6 9/@yG_G_C@'G@+`L<` #@Ny@@KO9/@^G_G_֢$_G_9` @_i&T#gk9w@@@Fw@@@b B?kg@9A !+F @{@C!@RPr?+T{@B B?T@@+@/@;c5{ I@/@_T;@@T? {;@/@?@{w@ !Х@f5@5 &@+@?T!?{!/@˥{;@T? ?@{[_c[@w@$(!!$@d5  @C@D!@5!!A{#cz vs[Rۑr?+T{@ B;?AT@@'@3@7c5{ ֌@3@_T7@@T? {97@3@?@{w@ !Х@f5@A5 @'@? T!?{!3@˥{7@T?  ?@{OSWO@w@$(!!$@d5 C@D!@5!l0Acl0 9g@FF_N_{@G@K`L<` #@x@@9g@+F_N_{:{0{6{, f#_N_ @_T#/39 ?@4@;9!BB@9#@@d⸄@e_e6 0C9?@4@b B>3/@9@"@!@BB!@@@?TE@KRrk!TE@y;&RkT }@ B)2?TE@R[rkaTE@y&RkTE@9qT }@b B7 }@A !+'+$@ #@w@@Ҁ@@'+H/ #@ow@@KO9/@D_G_C@G@ ͭ@@KO9/@D_G_ֱ"_G_HO @_I T#@aT@"@KRr_kT"@y;&R_kAT@@ @@#@@@@@% @@W[t9 @w@@_O__TO+'@{e˥{c@T {'@+@O@c_cg_@@?T@ [@9  v@@_O_O@'@ +@|@ !;_O_ T@"@R[r_kA T"@y&R_k T"@9_qa T 5z @Sz @@@ES@_T {MS@k{osk@@_T@ 6[@9  |v@@_O_S@z |@A !_O_@  d|@A !+W[$@ @Pv@@_O_{q > @_T#GK9 W@@@;9!BB@9#@@d⸄@e_e6 0C9W@@@B B>KG@9@"@!@!"B @$@(@@ @@ #/@3@'@+@/@@@?CH/ @u@@cg9G@UC_J_[@_@ G@@cg9G@CC_J_+!_J_ @_T# @; !ކ @/A !؆ @!@5/@4;@0/@s;@pW@ @[@? @7@+B_Txbd@e@* T@@T@9qTT'3`@a @/@ e@@@7@+@'@*3@C@B@?C@@GK@ Uu@@ gk_J_ @&_/@c _J_ 6Zz 7v @_T#р '@ h@@@@+/37_D_ @_T#р '@ L@@@@+/37_D_ @_ T#G@@/ @3 @+c*7d ; Є, {@@ @K@O@ z@!*7; ,3@ /@c{@@ @*7a !&; !,3@ /@J{@@ @S@W@ z@!*7; ,3@ /@-{@@ @*7` %; ,3@ /@{@@ @+@@/@?@@@[_c_H_X[ @_I T#7;_9{@9!!!@9@@Cc@D_D60C9 @ >;{@7@_9K@@@ !!/3[@_@c@@@ I@@@3@ /@@@#@_97@wA_H___H_ @_I T#7;_9@9!!!@9@@Cc@D_D60C9@ >;@7@_9K@@@ !!/3g@k@o@@@ @@@3@ /@@@#@_97@A_H__H_G@K_@@@@ _ր  @@!_@@@@ _  _@@@@ __@ @@@@ __@@@@ __@@@@ _@ @ _@$@@@ __@(@@@ __@,@@@ __ @_T~#_9#@4@;9!BB@9#@@d⸄@e_e6 0C9@4@B B>@_9A ! @!*b B`&" B-b B ' bB@l@#@@!cd@5@D@!c$@@ 73@ ރ @*`a ! a@"@D@B@BB@b!@f5d b`n@7@cT@`@ 3@'@@#@*@!@3@H @i5Cx'G!c@ @  @!*b B`'@C@d@c@ ^x@ +@ !@b5# "`@@cT@`@ ن@@#@!@@G @h5Ax$!c@@ {w@ D @!*B B@C@d@c@ x@*@ !BD@d5# $`!Bw@{@cT@@@ @@#@*w@@!Bg H@h5ax$!B!c@ @ so@  @!*B B !@C @d@e@c@ w@ @ !@b5# "`xo@s@cT@@@ 4@@#@!o@@G @h5Ax$V!c@@ kg@  @!*B B`!@C@d@c@ lw@*@ !BD@d5# $`*!Bg@k@cT@@@ @@#@*g@@!Bg H@h5ax$!B!c@@ c_@ I @!*B B!@C@D@E@ =w@ @ !@b5# "`c@_@cT@@@ @@#@!c@@G @h5Ax$!c@ @ [W@  @*`A ! a@" @ Єd!@e5b e`W@[@cT@@@ E@@#@*@!W@@H @i5Cx%e!c$@ SO@  @!*B B`@C$@d@c@ {v@*@ !BD@d5# $`9!BO@S@cT@@@ @@#@*O@@!Bg H@h5ax$!B!c@(@ KG@ X @!*B B@C(@d@c@ %v@*@ !BD@d5# $`!BG@K@cT@@@ @@#@*G@@!Bg H@h5ax$!B!c@,@a C?@  @!*B B"@C,@d@c@ u@*@ !BD@d5# $`!B?@C@cT@@@ G@@#@*?@@!Bg H@h5ax$f!B@370@#~T c4 3@7@@X3@7@@@ 73@@@/b@c@;D Є @@;@ `u@*@ !BD@d5#$ !B/@$D@5@$ $`@!B3@7@cT@@@ ˃@@#@*3@@!B37g H@h5ax$ _9@<_@_k_@_@0@ _ց @C_<T# 9O@4@;9"@!cc@9@D㸄@E_E6 0C9O@4@};B B>+C16TW@ l)T!TS@"@9_q2TO@@@@  t@! [_@9 _I_ 9  _I_ $TS@ B@R@,TS@W@ B@R@,TS@@y;R?kaT@9_qTO@@@@@@[_@9 _I_ 9 _I_{LR?k!T@9?qTO@@@@@ ft@! !+[_@9 չ_I_ 9 ղ_I_S@@y{-R?kT@9_qTO@@@@@ Ct@!*[_@9 Ֆ_I_ 9 Տ_I_{R?kT@9?qAT@ $t@! !-[_@9 w_I_S@W@ B<@*R@TS@@ynR?kT@9_qTO@@@@@ s@!*[_@9 N_I_ 9 G_I_R?k T@9?qA TO@,@@@@ s@!*[_@9 -_I_ 9 &_I_S@@yR?kaT@9_qTO@ @ ![_@9 _I_ 9  _I_R?kT@9?qTO@$@@@@ s@!*[_@9 _I_ 9 _I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@ @@@@ s@ ! [_@9 _I_ 9 չ_I_ TS@"@қn{J_TO@(@@@@ Hs@!*[_@9 ՛_I_ 9 Ք_I_S@O@B0@c c4 @@@@9[_9 ~_I_ y_I_ @_T#'+9 7@4@:7@4@B B?+'@9;@ ?@C@G@@@KO9'@;_F_D_F_ @_)}T#g@ LcTaTc@$@9qAvTk@! To@@@@_@`!@`5_K_ *G@ !Kk@Oo@S+ ~ #l@@sw_K_ A[Tc@ B@P@*Tc@g@ B@P@lTc@@y;R?k!T@9_qTk@@cR[rkTk@! !*T8[ Rr+!Tk@! !.T!*,iRr+Tk@!*aT 2v} @3k@o@ @@3@ `!@b5#" _@[9@`5A=:!* k@ o@ts@@!! @ ? @/@' B2B} @7/@'@ r@!* M@@7@ `!@b5#" _@[9@`5A_K_ *G@ Kk@Oo@S$` #k@@sw_K_{LR?kCT@9?qBT +| @k@! !+To@@@dd!@f5eT_@9@a5 |_K_ *G@ `'Kk@Oo@S+ ~ #k@@sw_K_c@@y{-R?k! T@9_qT*| @k@!*To@@@dd!@f5e8T_@9@a5@-_K_ G@ Kk@Oo@S+ ~ #Dk@@sw_K_{R?k/T@9?qa/T_K_c@g@ B<@IO@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@! !0 To@@@_ aT#+@y̍RkT@9qT{.RkT@9qT*"| @#@``!@5+@a+@_@;9@`5#" p@! !0?C`4>  @j@@sw_K_֛iRr+Tk@!*aT{ @o@@@``!@b5a_@;9@`5#"vk@?o@C`4>  @j@@sw_K_R?kT@9?qT*{ @k@!*To@@@dd!@f5e>T_@9@a5,`3_K_ G@ "Kk@Oo@S+ ~ #Jj@@sw_K_c@@yR?k!T@9qTk@ !!T_@9a!!!@5o@ o@_K_ *G@ Kk@Oo@S`+ ~ #j@@sw_K_R?k! T@9?qT*&{ @k@!*To@@@dd!Є@f5eT_@9@a5$ _K_ G@ `Kk@Oo@S`+ ~ #i@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT z @;k@ o@r@@@ B*GB B !K@@OS`h, ~ #i@@sw_K__@9a!!!@5;@ `;@@_K_ Tc@"@қn{J_T*z @k@!*To@@@dd!Є@f5eT_@9@a5(@ _K_ G@ Kk@Oo@S`+ ~ #$i@@sw_K_c@_@C0@D}@`!@5_@#0_@"g@c@B0@c c4 r@k@a!!!@5o@ o@_K_ @_!T##9/@4@6/@4@B B?#@97@? T?T3@@9qT|a!!!@a5ғ? T3@ B@L@ T3@@y;R?kT@9qT`!@5/@/@r{LR?kT@9qT`!@5/@/@ `{-R?k! T@9?q T`!@5/@/@@N3@7@ B<@L@T3@@ynR?kT@9qT`!@5/@x/@-sR?kT@9?qaT`!@5/@,f/@`a3@@yR?kAT@9qT`!@5/@ R/@MR?kT@9?qT`!@5/@$@/@ ;/@7@3@/?T3@@{R;rkT@y RkaT@9qTa!!!@a5 "`? aT3@@қn{JTa!!!@a5(@ 3@0@b B4 b9@5_E_A_E_ @_T# @&'@ @@@@+/37_D_ @_T#9'@4@;9b!BB@9#@@d⸄@e_e6 0C9n'@4@B B>@98@<@+/9@4_D__D_} @_ T#_9@4@;5@4@B B?#@8a!!!@5'@<'@-_9@q5_C_ֵ_C_L @C_ɟTC~#@[9@ A@D`Ef!@5_|_|_c_[W_|GSHOI KJ@GK`C@5__|_|   (x @@@@@`!@5@A@_ @`  6@;;@@@ @@@ @@@"@@R\r+T :Ta?qRT?q!OT@b!BiRr+aT*T@+@3? T?T? aDTC@қn{JCTw @w;@'@@ @@w@b!BE@e5ib!B@@@5@(G@Z@b!BuC@{R;rka=TC@y Rk<TC@9q<T w @;@ B @@@N`!@5@@A [@@*@b!Bo?!TC@9q7TS@;@ W@@@N@b!B]? 5T @YJ@T3@+@ B<@LJ@L T3@@ynR?kAT@9_qT*Ew @g;@@@ @@g@b!BE@e5b!B@@@5@W@@b!BBR?k!+T@9?q*T*w @o;@c@ @@@o@a!!%@e5@  @5@,C@@"Fb!B3@@yR?k!T@9_qTR?k# "v @;@b B @@@F`!@5@@A O@@h@b!BaT@9?qT*v @k;@@ @@@k@a!!%@e5F@  @5@$K@9@"Bb!B|3@+@ B@xI@ T3@@y{-R?kAT@9_qT*qv @s;@Ô@@ @@s@b!BE@e5b!B@@@5@_@@b!BA{R?kT@9?qAT;@@@ @@@C A?T'/ I@9=@b!B3@@y;R?kT@9_qAT*v @{;@bB: @@@@ 2 v @{@"@!@ j@!* @@@ `!@5#@A" @b!B{LR?kT@9?qaT +u @;@ B) @@@<`!@5@@Ac@@m@b!B*+@3@@d<@e8@% @? @@;@ 3@+@@@@@3@ +@@b!B+@3@ @;@ @@@#@@7@3@ +@|@b!Bn j @ !:`0@ c@Ad@@_@C_@@@_@C_` ` 'd@@_@C_` d@@_@C_*@ A!@ c@@_@C_B*B B !@@ c@@_@C_B*B B!@@ c@@_@C_*@ `!A!@ c@@_@C_*@ "BB@ |c@@_@C_B*B B @@ ]c@@_@C_*@ `BB@ >c@@_@C_*@ A!@ c@@_@C_/@'@ i@!* c@c@@_@C_@@@,6 c@b@@_@C_B*B B @@ b@@_@C_B*B B`'@@ b@@_@C_?73@+@ h@!*?@`@7@` b@@_@C_ H0| c@lb@@_@C_@@@,6 c@Tb@@_@C_F @C _:TC ~#_c_9   ~T @7* Alv@c  @@W@E S@@W@c@C@?@? Txc@@)* A1TS @@T_O{ v@@#@@W@S@?@_@O@)*{@Khh! @5|Jh$   @@ *Tc?C@@A@ @{@Kd 4 3@K@a!!"@5{@ {@w  g@ !  `1 +@ @ BC9So@@ @c5!/ u@o@"@#@$@! @_TB/@_B!aT @/@ _9_A^_@C _sw@@?@;wD@gE@GT:o@A5o@g@ G@o@! ` 4 g@G@l@@@@ۏRr_k!TB T @["@3!@7o@D@@[@ 3@7@%z@@o@ o@Ao@%B c D@@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ f@!*s@@@k@8  #`@@ _9_A_@C _ֲ*  _ 6e 6e 6e  _@C _i$ @_IT#?@G@' @/@+c? Q@3| ! ! C@G@/@'@+@#B eq @`!@53@@3@ KO_G_& @_)T#3@7@ @ /@;@?@H@#@CG_E_ @_T#3@7@ @ /@@@@;?C_E_S@W_@@@@ _`  @!_@@@@ _ _@@ @@ _@@@@ __@@@@@ __@@@@ __@ @$@(@ _@,@ _@0@@@ __@4@@@ __@8@@@ __ @C_ɌTC~#9A@@;9b!BB@9#@@d⸄@e_e6 0C9A@@" B>@9! !Vp @!*" B`& B-" B ' "B@s@#@@c!cd@5@D@c!c$A@ ;7 &p @*`! ! aA"@D@B@BB@be!@f5d b`@;@cT@ @ 7@os@@#@*@e!A7@H @i5Cx'c!c@ o @!*" B`'AC@d@c@ d@ +@ `!@b5# "`e@@cT@ @ !s@@#@`!@@G @h5Ax$Cc!cA@ o @!*" B &AC@D @E@ d@ @ b!BD@d5# $`b!B@@cT@ @ r@@#@ @@b!Bg H@h5ax$B!BC!cA@ { 5o @!*" BAC@d@c@ d@*@ B!BD@d5# $`B!B{@@cT@ @ zr@@#@*{@@B!Bg H@h5ax$B!BC!cA@ ws n @!*" B !AC@d@e@c@ c@ @ @!@b5# "`is@w@cT@ @ %r@@#@@!s@@G @h5Ax$GC!cA@ ok n @!*" B`!AC@d@c@ ]c@*@ B!BD@d5# $`B!Bk@o@cT@ @ q@@#@*k@@B!Bg H@h5ax$B!BC!cA @ gc :n @!*" B!AC @D$@E(@ .c@` @ @!@b5# "`c@g@cT@ @ q@@#@@!c@@G @h5Ax$C!cA,@ _[ m @*`! ! aA",@d dD!@e5b e`|[@_@cT@ @ 6q@@#@*@D![@AH @i5Cx%VC!c0@ WS m @!*" B`AC0@d@c@ lb@*@ B!BD@d5# $`*B!BS@W@cT@ @ p@@#@*S@@B!Bg H@h5ax$B!BC!cA4@ OK Im @!*" BAC4@d@c@ b@*@ B!BD@d5# $`B!BK@O@cT@ @ p@@#@*K@@B!Bg H@h5ax$B!BC!cA8@a GC l @!*" B"AC8@d@c@ a@*@ B!BD@d5# $`~B!BC@G@cT@ @ 8p@@#@*C@@B!Bg H@h5ax$WB!BA;7<@c~TC c4 ct7@;@@cIu7@;@@@ ;7@@@3b@c@?$ |l @@?@ Qa@*@ B!BD@d5#$ B!B3@$D@5@$ $`@B!B7@;@cT@ @ o@@#@*7@@B!B7;g H@h5ax$9@u(_@C_\_@C_@<@ _ց @C_I@T# 9O@@@;9"@C!cc@9@D㸄@E_E6 0C9O@@@};" B>+C%a:TW@ ,-TTS@"@9_qTO@ @@@  `@a! [_@9 _I_ 9 _I__q2TO@$@(@ @  `@a! [_@9 _I_ 9 _I_ $TS@ B@>@,TS@W@ B@>@,TS@@y;R?kaT@9_qTO@@@@@@[_@9 հ_I_ 9 թ_I_{LR?k!T@9?qTO@@@@@ <`@ !+[_@9 Տ_I_ 9 Ո_I_S@@y{-R?kT@9_qTO@@@@@ `@!*[_@9 l_I_ 9 e_I_{R?kT@9?qAT@ _@ !-[_@9 M_I_S@W@ B<@>@TS@@ynR?kT@9_qTO@@@@@ _@!*[_@9 $_I_ 9 _I_R?k T@9?qA TO@8@@@@ _@!*[_@9 _I_ 9 _I_S@@yR?kaT@9_qTO@,@a ![_@9 _I_ 9 _I_R?kT@9?qTO@0@@@@ r_@!*[_@9 _I_ 9 վ_I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@@@@@ k_@! [_@9 Ֆ_I_ 9 Տ_I_ TS@"@қn{J_TO@4@@@@ _@!*[_@9 q_I_ 9 j_I_S@O@B<@C c4 Y@@@@9[_9 T_I_ O_I_ @_T#'+9 7@@@&7@@@" B?+'@9;@ ?@C@G@@@KO9'@&_F__F_ @_)T#g@ LjTaTc@$@9qTk@a! To@@@@_@ @!@`5@a_K_ *G &Kk@Oo@S@+ ~ #vX@@sw_K_֟qAvTk@a! To@@@@_@$(@!@`5 )_K_ *G !Kk@Oo@S@+ ~ #>X@@sw_K_ A[Tc@ B@L<@*Tc@g@ B@?<@lTc@@y;R?k!T@9_qTk@@cR[rkTk@ !*T8[ Rr+!Tk@ !.T!*,iRr+Tk@!*aT 2i @3k@o@ '@@3@ @!@b5#" _@[9@`5A=:!* k@ o@_@@!! @ ? @/@' B2h @7/@'@ ]@!* @@7@ @!@b5#" q_@[9@`5Ai_K_ *G Kk@Oo@S@$` #~W@@sw_K_{LR?kCT@9?qBT +h @k@ !+To@@@dD!Є@f5e'T_@9@a5 _K_ *G `'Kk@Oo@S@+ ~ #1W@@sw_K_c@@y{-R?k! T@9_qT*Fh @k@!*To@@@dD!Є@f5eT_@9@a5_K_ G Kk@Oo@S@+ ~ #V@@sw_K_{R?k/T@9?qa/T_K_c@g@ B<@:@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@ !0 To@@@_ aT#+@y̍RkT@9qT{.RkT@9qT*g @#@`@!@5+@a+@]_@;9@`5#"T \@ !0?C@4>  @oV@@sw_K_֛iRr+Tk@!*aTg @o@@@`@!@b5a_@;9@`5#"k@?o@C@4>  @5V@@sw_K_R?kT@9?qT*Lg @k@!*To@@@dD!@f5eT_@9@a58_K_ G "Kk@Oo@S@+ ~ #U@@sw_K_c@@yR?k!T@9qTk@A !!T_@9A!!!@5o@,`o@_K_ *G Kk@Oo@S@+ ~ #U@@sw_K_R?k! T@9?qT*f @k@!*To@@@dD!@f5eXT_@9@a50M_K_ G `Kk@Oo@S@+ ~ #dU@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT of @;k@ o@@@@ B*G" B !K@@OS@h, ~ ##U@@sw_K__@9A!!!@5;@;@_K_ Tc@"@қn{J_T*&f @k@!*To@@@dD!@f5eT_@9@a54_K_ G Kk@Oo@S@+ ~ #T@@sw_K_c@_@C<@h@@!@5_@#<_@"}g@c@B<@C c4 |@k@A!!!@5o@ o@e_K_ @_)#T##9/@@@J"/@@@ B?#@97@? ,T?T3@@9qTA!!!@a5@3qTA!!!@a5 &? T3@ B@j8@ T3@@y;R?kT@9qT@!@5/@/@{LR?kT@9qT@!@5/@/@ {-R?k! T@9?q T@!@5/@/@3@7@ B<@&8@T3@@ynR?kT@9qT@!@5/@x/@sR?kT@9?qaT@!@5/@8f/@Үa3@@yR?kAT@9qT@!@5/@,R/@`ҚMR?kT@9?qT@!@5/@0@/@҈;/@7@3@/?T3@@{R;rkT@y RkaT@9qTA!!!@a5"k? aT3@@қn{JTA!!!@a54W 3@<@B B4 {9@!_E__E_k @_T# @#'@ H@@@@+/37_D_O @_T#9'@@@;9B!BB@9#@@d⸄@e_e6 0C9'@@@ B>@9D@H@+/9@ _D_z_D_ @_ T#_9@@@ @@@ B?#@DA!!!@5'@H@'@_9@!_C_I_C_ @_IT~#@[9@ A!!$@d5_|ҝ_D@EFG(@5___҆҃kgc_[_HWI`SJOKKLG-@5_ __f c ` ^ \` c @@@@@@!@5@A@J_ @@  @??@|@@ @@@ @@@"@@R\r+T:Ta?qTT?qQT@B!BiRr+aT*T@/@7? T?T? AFTC@қn{JaET]c @?@@@ @@@B!BE@e5B!B@@@5@4K@@B!BC@{R;rkA?TC@y Rk>TC@9qa>T #c @?@b B @@@R@!@5@@A_@@@B!Bo?TC@9qTqA9TW@?@ ݀@@@R@B!B[g@?@ Ѐ@@@U@B!BN? 5T @5@T7@/@ B<@5@L T7@@ynR?kAT@9_qT*b @o?@@@ @@o@B!BE@e5RB!B@@@5@[@C@B!BsR?k!+T@9?q*T*b @w?@܀@ @@@w@A!!%@e5@  @5@8G@@BLB!B7@@yR?k!T@9_qTR?k# "Rb @?@B B L@@@"L@!@5@@A,S@@@B!BaT@9?qT*,b @s?@~@ @@@s@A!!%@e5@  @5@0O@@BHB!Bm7@/@ B@4@ T7@@y{-R?kAT@9_qT*a @{?@<@@ @@{@B!BE@e5~B!B@@@5@c@o@B!Ba{R?kT@9?qAT?@@@ @@@$I aET+3 05@9D@B!B 7@@y;R?kT@9_qAT*a @?@"B: @@@G 2a @@"@!@ XV@!* @@@ @!@5#@A" @ B!B{LR?kT@9?qaT+Wa @?@b B) Q@@@C@!@5@@Ak@@@B!B*/@7@@dH@eD@% @? @@?@ 7@/@,@@@@7@ /@;@B!B}/@7@ @?@ @@@#@@>@7@ /@@B!B_ U @!:@0@ @O@@_@_@@A@ @_@_@ ` O@@_@_@ ` O@@_@_@ ~O@@_@_* A!@` _O@@_@_B* B !@@` @O@@_@_B* B!@@` !O@@_@_B* B &@@` O@@_@_* `!A!@` N@@_@_* "BB@` N@@_@_B* B @@` N@@_@_* `BB@` N@@_@_* A!@` gN@@_@_3@+@ ]T@!* @IN@@_@_@@ ,6 @1N@@_@_B* B @@` N@@_@_bB* B`'@@` M@@_@_C;7@/@ S@a!*C@`@;@@ M@@_@_H0| @M@@_@_@@ ,6 @M@@_@_ @C _:TC ~#_c_9 # ~T1t @7`* aa@c  @@W@e S@@W@c@C@?@? Txc@@i)* A1TS @@T_O{ a@@#@@W@S@?@_@O@i)*{@Kh(! @5|Jh$   @@ *Tc?C@@A@ @{@K$ 4 {t@K@!!!"@5{@ {@w  #S@a ! ћ @1T@ @ BC9o@@ @cc5!/ a@o@"@#@$@! @_TB/@_B!aT Y@/@#_9_A_@C _w@@?@;wD@gE@GTo@A}o@g@ G@o@!  4 g@G@q@@@@ۏRr_k!TBB T @["@3!@7o@DL@@[@ 3@7@me@@o@ o@A5o@%BB c @@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ R@a!*s@@@k@`8  #K@@ _9_A_@C _`*   6P 6P 6P _@C _$ @_IT#?@G@' @/@+Cc? =@3|  ! C@G@/@'@+@#]-` \ @ !@53@@3@K` KO_G_n @_)T#3@7@ /@;@?@y@#@CG_E_O @_T#3@7@ /@y@@@;?C_E_1'  _" @ _ @C_I+T#?C9 O@@O@@ B?C?@9S@"@@@ @@@@@@7; %@ @J@@W[9?@_I_O@ $!@f5 S@C@F @TT3@@@ @@@@@@7; %@ @J@@W[9?@_I_O@PT$!@f5L`qS@3@TA@C @?T`@N@@ @@@@@@7; %@ @J@@W[9?@_I_O@\`!!!$@d5X9S@@@ @@@@O@ !@a5%S@@ @@@@O@ $ !@a5S@ @ @@@@O@hl !@a5d S@j#@'@ @@@@@@#@@@7; %@ @J@@W[9?@ _I_O@DH!!!$@d5@,0!@a5(@ 9?@_I_O @a!7;@ @I@@W[9?@_I_@ '_I_ @_ T#?@@n@@ @@@@E#+'`5} ]@?@!@! @@/3 `?  c@I@@K W[__G_!? jTha84hT+@C#@G'@K}B!OSW _G_} a @_ T#7;_9 G@<@G@<@ B?;7@_9K@#@'@ @@@@@@#@@@/3 %@ c@-I@@OS_97@=_H_G@ $!!!$@d5 !@a5  _97@!_H_e_H_ @_ =T~#9@@;9"!BB@9#@@d⸄@e_e6 0C9@@ B>@9 !Y @S !Y @G !Y @K@"@#@$ @S@@@ @ \@#@'@S@@A !@a5CA l_9@X@\@`@G@@@ @ ;@#@'@G@@A !@a5CA K_9@L@P@T@K@@@ @ @#@'@K@@A !@a5CA *_9@#@lT* vY @?@"@#@$@@ @ @#@'@?@@A !@a5CA _9@K@?@?$ @lT+ GY @;@"@# @$$@@ @ @#@'@;@@A !@a5CA _9@K@?@;@;%h@lT( Y @3@"d@#h@$l@@ @ @#@'@3@@A !@a5CA _97 X @O [@C~T !X @C@@@@D@H@{(@,@0@gkc@ O@@@@ @@W[`2 @G@@9@_@_ !@5S@O@AO@"@S@C6X @ !@5K@aG@a K@2A G@-O@@a5 `"?@@e5;@@e57@@e5 |@5 ! $ #!c @@ }@@9@_@_v_@_  @_T# |{?T9 W@<@;9"!BB@9#@@d⸄@e_e6 0C9W@<@ B>KG@9 B:X @; A!09@ @ B?aT7 @0-@ @ B?!T3 !`C?@9W@"@# @$$@7@@@ @ Y@#@'@7@@A !@a5CA i_9W@@@ @3@@@ @ 8@#@'@3@@A !@a5CA H_9@57@;@ 7@;@<@@C@c@B@9_k [@_@ @ |@@cg@9?@9G@_J_ 6]K 6WK ՙ_J_0' @_T# TZ@; !JW @/ !DW @ !@5/@<;@8/@߾;@ܾW@ @[@? @7@+B_Txbd@e@f*T@@T@9qT TT@y RkTa TT@y,RkT! TT@9q`T TT@9q@TTT@y;.RkTT'3`@a @/@ @@@7@+@'@f*3@C@B@?C@@GK @ E@@ gk_J_֠ @,_/@c _J_ 6J sF @_T# !'@ 8@@@@+/37_D_W @_T# "'@ @@@@+/37_D_; @_ T#7;?9@9!!!!@9@@Cc@D_D60C9 >;@7@?9 6V @+# !  @@@@@/3`|  c@D@@?97@[_H_@+@ @@@@@?97@E_H_-_H_Ĵ @_ T#7;?9@9!!!!@9@@Cc@D_D60C9u >;@7@?9 :U @+#A ! @@@@@/3`2 c@yD@@?97@_H_@+@ @@@@@?97@_H_ֵ_H_L @_IT#OS?9g  @1 @ @b B@_9 !T @a!* B`&B- B! B@`W@#@@#!cd@5@D@#!c$@@ 73 S @`*` ! a@"@D@B@BB@b%!@f5d b`b@7@cT@@ 3@W@@#@`*@%!@3@H @i5Cx';#!c@  S @a!* B "@C@D@E @ yH@@ @ "!BD@d5# $`"!B@@cT@@ V@@#@@ @@"!Bg H@h5ax$"!B#!c@@ {w .S @a!* B@C@d@c@ G@`*@ "!BD@d5# $`"!Bw@{@cT@@ sV@@#@`*w@@"!Bg H@h5ax$"!B#!c@@ so R @a!* B !@C@d@e@c@ G@ @  !@b5# "`bo@s@cT@@ V@@#@ !o@@G @h5Ax$@#!c@@ kg R @a!* B`!@C@d@c@ VG@`*@ "!BD@d5# $`"!Bg@k@cT@@ U@@#@`*g@@"!Bg H@h5ax$"!B#!c@@ c_ 3R @a!* B`"@C@D @E$@ 'G@@ @  !@b5# "`_@c@cT@@ zU@@#@ !_@@G @h5Ax$#!c@(@ [W Q @`*` ! a@"(@$ Єd$!@e5b e`uW@[@cT@@ /U@@#@`*@$!W@@H @i5Cx%O#!c,@ SO Q @a!* B`@C,@d@c@ eF@`*@ "!BD@d5# $`#"!BO@S@cT@@ T@@#@`*O@@"!Bg H@h5ax$"!B#!c@0@ KG BQ @a!* B@C0@d@c@ F@`*@ "!BD@d5# $`͸"!BG@K@cT@@ T@@#@`*G@@"!Bg H@h5ax$"!B#!c@4@a C? P @a!* B"@C4@d@c@ E@`*@ "!BD@d5# $`w"!B?@C@cT@@ 1T@@#@`*?@@"!Bg H@h5ax$P"!B@738@#~T# c4 X3@7@@BY3@7@@@ 73@@@/b@c@; ЄuP @@;@ JE@`*@ "!BD@d5#$ "!B/@$D@5@$ $`@"!B3@7@cT@@ S@@#@`*3@@"!B37g H@h5ax$ҷ _9@n _@_U_@_@8@ _ց @C_I:T# 9O@<@;9"@#!cc@9@D㸄@E_E6 0C9O@<@}; B>+Ca4TW@ ,'TTS@"@9_qTO@@ @@  D@A! [_@9 _I_ 9 _I__q,TO@ @$@@  D@A! [_@9 _I_ 9 _I_ TS@ B@"@, TS@@y;R?kaT@9_qTO@@@@@@[_@9 յ_I_ 9 ծ_I_{-R?kT@9_qTO@@@@@ AD@a!*[_@9 Ք_I_ 9 Ս_I_{R?kT@9?qAT$@ "D@!-[_@9 u_I_S@W@ B<@("@TS@@ynR?kT@9_qTO@@@@@ C@A!*[_@9 L_I_ 9 E_I_R?k T@9?qA TO@4@@@@ C@A!*[_@9 +_I_ 9 $_I_S@@yR?kaT@9_qTO@(@! ![_@9 _I_ 9 _I_R?kT@9?qTO@,@@@@ C@A!*[_@9 _I_ 9 _I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@@@@@ C@! [_@9 վ_I_ 9 շ_I_ TS@"@қn{J_TO@0@@@@ FC@A!*[_@9 ՙ_I_ 9 Ւ_I_S@O@B8@ c4 c@@@@9[_9 |_I_ w_I_) @_T#'+9 7@<@ 7@<@ B?+'@9;@ ?@C@G@@@KO9'@ _F_D_F_۬ @_xT#g@ ^TaTc@$@9qTk@!! To@@@@_@ !@`5 _K_ @*G "Kk@Oo@S + ~ #<@@sw_K_֟qjTk@!! To@@@@_@ $!@`5Q_K_ @*G `"Kk@Oo@S + ~ #f<@@sw_K_ OTc@ B@t @lTc@@y;R?k!T@9_qTk@@cR[rkTk@!*T8[ Rr+!Tk@!.TA!*,iRr+Tk@A!*aT@ 2KM @3k@o@ \z@@3@ !@b5#" _@[9@`5A=ش:A!*@ k@ o@IC@@!! @ ? @/@'B B2M @7/@'@ A@A!* "z@@7@ !@b5#" _@[9@`5A_K_ @*G Kk@Oo@S $` #;@@sw_K_{-R?k! T@9_qT@*L @k@A!*To@@@d!@f5e\T_@9@a5Q_K_ G Kk@Oo@S + ~ #h;@@sw_K_{R?k/T@9?qa/T_K_c@g@ B<@m@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@!0 To@@@_ aT+#@y̍RkT@9qT{.RkT@9qT@*FL @#@`!@5+@a+@_@;9@`5#"س A@!0?C4>  @:@@sw_K_֛iRr+Tk@A!*aT L @o@@@`!@b5a_@;9@`5#"k@?o@C4>  @:@@sw_K_R?kT@9?qT@*K @k@A!*To@@@d!@f5ebT_@9@a54W_K_ G "Kk@Oo@S + ~ #n:@@sw_K_c@@yR?k!T@9qTk@! !!T_@9!!!@5o@(@o@_K_ @*G Kk@Oo@S + ~ #3:@@sw_K_R?k! T@9?qT@*JK @k@A!*To@@@d!Є@f5eܲT_@9@a5,`Ѳ_K_ G `Kk@Oo@S+ ~ #9@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT J @;k@ o@@@@ BB*G B !K@@OSh, ~ #9@@sw_K__@9!!!@5;@;@d_K_ Tc@"@қn{J_T@*J @k@A!*To@@@d!Є@f5e<T_@9@a501_K_ G Kk@Oo@S+ ~ #H9@@sw_K_c@_@C8@hM@!@5_@#8_@"g@c@B8@ c4 `@k@!!!@5o@ o@_K_6 @_ T##9/@<@/@<@ B?#@97@? T?T3@@9qT|!!!@a5 ҷqaT|!!!@a5Ҫ? T3@ B@@ T3@@y;R?kT@9qT!@5/@/@҉{-R?kT@9qT!@5/@/@wnR?k T@9?qT!@5/@x/@es3@@yR?kAT@9qT!@5/@4d/@Q_R?kAT@9qT!@5/@(R/@@?MR?kT@9?qT!@5/@,@/@`-;/@7@3@/?T3@@{R;rkT@y RkaT@9qT!!!@a5"? aT3@@қn{JT!!!@a50 3@8@ B4 `9@5_E_y_E_ @_T#р @,'@ @@@@+/37_D_ @_T#9'@<@;9!BB@9#@@d⸄@e_e6 0C9'@<@ B>@9@@D@+/9@6_D__D_ @_ T#_9@<@s@<@ B?#@@!!!@5'@D '@e_9@_C__C_ @C_ɛTC~#@[9!@a5_B_|A DEF@5__|_30-*gc_[_|GWH@SI`OJKKG @5__|_|    [H @@@@@!@5@A@_ @  ih@??@'@@ @@@ @@@g@@R\r+T:aTa?q NT?qJT!@iRr+T@*AT@/@7? 3T?/T? ?T @@T7@@y;R?kAT@9_qT@*G @?@B: @@@K@ 2G @@"@!@ <@A!* t@@@ !@5#@A" t@q{-R?kT@9_qAT@*G @{?@f@@ @@{@!BE@e5R!B@@@5@c@C@!BD!@P{R?kAT@9?qT?@e@@ @@@J AFT+3$ @9D!@27@/@ B<@a@ T7@@ynR?kT@9_qAT@*ZG @k?@e@@ @@k@!BE@e5!B@@@5@[@߮@!BB!@R?kT@9?qaT@*#G @o?@ue@ @@@o@!!%@e5@  @5@4G@@B@!@7@@yR?kT@9_qTR?k  "F @?@ B @@@@!@5@@A(S@@y@AT@9?qT@*F @w?@e@ @@@w@!!%@e5Z@  @5@,O@M@҂<!@\@*/@7@C@9qTqTW@?@ rd@@@=!@Eg@?@ ed@@@?!@8? T? A TC@қn{Ja TlF @s?@d@@ @@s@!BE@e5!B@@@5@0K@@!Ba<!@C@{R;rkTC@y RkaTC@9qT /F @?@" B )@@@<!@5@@A_@@@@dD@e@@% @? @@?@ 7@/@ e@@@@7@ /@!@/@7@` @?@ d@@@#@@7@7@ /@!@ i: @!:0@ c@4@@_@C_@@@_@C_P ` 4@@_@C_x ` o4@@_@C_BB* B @@@ P4@@_@C_@* A!@@ 14@@_@C_3@+@ ':@A!*@ c@4@@_@C_@@,6 c@3@@_@C_@* `!A!@@ 3@@_@C_@* "BB@@ 3@@_@C_BB* B @@@ 3@@_@C_@* `BB@@ 3@@_@C_BB* B`"@@@ `3@@_@C_BB* B "@@@ A3@@_@C_@* A!@@ "3@@_@C_BB* B !@@@ 3@@_@C_;C7@/@ 8@A!*C@`@;@ 2@@_@C_H0| c@2@@_@C_@@,6 c@2@@_@C_ @C _:TC ~#_c_9  ~TAY @7@* AF@c k @@W@E S@@W@c@C@?@? Txc@@I)* A1TS @@T_O{ F@@#@@W@S@?@_@O@I)*{@Kh! @5|Jh$   @@ *Tc?C@@A@ @{@K 4 Y@K@!!"@5{@ {@ުw  38@! !  1d@ @B BC9o@@ @Cc5!/ F@o@"@#@$@! @_TB/@_B!aT i@/@_9_A_@C _˪w@@?@;wD@gE@GTo@Ao@g@ G@.o@a! & 4 g@G@V@@@@ۏRr_k!T"B T @["@3!@7o@D\`@@[@ 3@7@}J@@o@ o@AEo@%"B c @@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ 7@A!*s@@@k@@8  #0@@ _9_A_@C _ @*   65 65 65 +_@C _$ @_IT#?@@' @/@+#c? 0"@3| !@ C@G@/@'@+@#m A @!@53@@3@[ KO_G_~ @_)T#3@7@ "/@;@?@^@#@CG_E__ @_T#3@7@ "/@^@@@;?C_E_A`$@_@@@@ _  @!_@@@ @ _@@@@ _@@ @$@ _@(@,@0@ _@4@@@ __@8@@@@ __@<@@@ __@@@D@H@ _@L@P@T@ _@X@\@`@ _@d@h@l@ _@p@ _@t@@@ __@x@@@ __@|@@@ __ @_iT ~#7;_9Kc GA@;9!BB@9#@@d⸄@e_e6 0C9FGA@ B>;7@_9 !@ @A!* B`&B- B! B@C@#@@!cd@5@D@!c$GA@ W73 ^@ @@*` ! aGA"@D@B@BB@b!@f5d b`W@7@cT@@ 3@C@@#@@*@!GA3@H @i5Cx'ǧ!c@ SO @ @A!* B &GAC@D@E @ 5@  @ !BD@d5# $`!BS@O@cT@@ UC@@#@  S@@!Bg H@h5ax$t!B!cGA@ KG ? @A!* B #GAC@D@E@ 4@  @ !BD@d5# $`D!BK@G@cT@@ B@@#@  K@@!Bg H@h5ax$!B!cGA@ C? c? @A!* B`#GAC@D @E$@ W4@  @ !BD@d5# $` B?@C@cT@@ B@@#@ ?@@ Bg H@h5ax$Ʀ B cGA(@   ? @!!* B "GAC(@D,@E0@ 4@ @  BD@d5# $` B@@cTAA PB@@#@ @@ Bg H@h5ax$o B cGA4@ > @!!* BGAC4@d@c@ 3@ *@  BD@d5# $`@ B@@cT@@ A@@#@ *@@ Bg H@h5ax$ B cGA8@ _> @!!* B !GAC8@d@e@c@ R3@ @  @b5# "`@@cT@@ A@@#@ @@G @h5Ax$ǥ cGA<@ > @!!* B`!GAC<@d@c@ 2@ *@  BD@d5# $` B@@cT@@ UA@@#@ *@@ Bg H@h5ax$t B cGA@@ = @!!* B`"GAC@@DD@EH@ 2@ @  BD@d5# $`D B@@cT@@ @@@#@ @@ Bg H@h5ax$ B cGAL@ c= @!!* B#GACL@DP@ET@ W2@ @  BD@d5# $` B@@cT@@ @@@#@ @@ Bg H@h5ax$Ƥ B cGAX@  = @!!* B#GACX@D\@E`@ 2@ @  BD@d5# $` B@@cT@@ P@@@#@ @@ Bg H@h5ax$o B cGAd@ { < @!!* B $GACd@Dh@El@ 1@ @  @b5# "`@{@@cT@@ ?@@#@ {@@G @h5Ax$ cGAp@ ws g< @ *` ! aGA"p@ d @e5b e`s@w@cT@@ ?@@#@ *@ s@GAH @i5Cx%ѣ ct@ ok < @!!* B`GACt@d@c@ 0@ *@  BD@d5# $` Bk@o@cT@@ _?@@#@ *k@@ Bg H@h5ax$~ B cGAx@ gc ; @!!* BGACx@d@c@ 0@ *@  BD@d5# $`O Bc@g@cT@@  ?@@#@ *c@@ Bg H@h5ax$( B cGA|@a _[ n; @!!* B"GAC|@d@c@ ;0@ *@  BD@d5# $` B[@_@cT@@ >@@#@ *[@@ Bg H@h5ax$Ң BGA37@#c ~Tc4 #C3@7@@#C3@7@@A 73 A@@/b@c@; : @@;@ /@ *@ BD@d5#$  B/@$D@5@$ $`@} B3@7@cT@@ 7>@@#@ *3@@ B37g H@h5ax$TKOS_97A_@ __@ _m@@ _ց @C_ TT# 9O@@;9"@ cc@9@D㸄@E_E6 0C9O@@}; B>+C!NTW@!T T TS@"@y R_kTO@@@@  R/@! [_@9 }_I_ 9 v_I_֛,R_kTO@ @$@@  3/@! [_@9 ^_I_ 9 W_I_;.R_kABTO@h@l@d@  /@! [_@9 ?_I_ 9 8_I_S@S@ bB @ @TS@@9?qTO@@ @@  .@! [_@9 _I_ 9  _I_?q!TO@,@0@(@  .@! [_@9 _I_ 9 _I_S@@9?qTO@D@H@@@  .@! [_@9 _I_ 9 _I_?qTO@P@T@L@  .@! [_@9 յ_I_ 9 ծ_I_?qTO@\@`@X@  l.@! [_@9 ՗_I_ 9 Ր_I_W@K TaTS@"@{R;r_k!(T"@y R_k'T"@9_qA'TO@8@@@@ ;.@a! [_@9 f_I_ 9 __I_ TS@"@қn{J_a"TO@x@@@@ -@!!*[_@9 A_I_ 9 :_I_S@S@ bB@ @, TS@@y;R?kaT@9_qTO@@@@@@[_@9 _I_ 9  _I_{-R?kT@9_qTO@4@@@@ -@!!*[_@9 _I_ 9 _I_{R?kT@9?qAT`$@ -@!-[_@9 _I_S@W@ bB<@ @TS@@ynR?kT@9_qTO@<@@@@ X-@!!*[_@9 ի_I_ 9 դ_I_R?k T@9?qA TO@|@@@@ 7-@!!*[_@9 Պ_I_ 9 Ճ_I_S@@yR?kaT@9_qTO@p@ ![_@9 m_I_ 9 f_I_R?kT@9?qTO@t@@@@ ,@!!*[_@9 L_I_ 9 E_I_W@O@B@c4 3M@@@@9[_9 ._I_ )_I_[ @_T#'+9 7@@~7@@ B?+'@9;@ ?@C@G@@@KO9'@_F__F_ @_T#g@;T@TTc@$@y RkTk@! To@@@@_@ @`56_K_ *G #Kk@Oo@S+ ~ #K&@@sw_K_֛,RkTk@! To@@@@_@ $ @`5_K_ *G `#Kk@Oo@S+ ~ #&@@sw_K_;.RkaTk@! To@@@@_@hl @`5d Ğ_K_ *G $Kk@Oo@S+ ~ #%@@sw_K_c@Kc@ bB @ @lTc@@9?qTk@! To@@@@_@ @`5 |_K_ *G &Kk@Oo@S+ ~ #%@@sw_K_?q!Tk@! To@@@@_@,0 @`5(@D_K_ *G "Kk@Oo@S+ ~ #Y%@@sw_K_c@@9?qTk@! To@@@@_@DH @`5@ _K_ *G `"Kk@Oo@S+ ~ #%@@sw_K_?qTk@! To@@@@_@PT @`5L`ҝ_K_ *G #Kk@Oo@S+ ~ #$@@sw_K_?qTk@! To@@@@_@\` @`5X_K_ *G #Kk@Oo@S+ ~ #$@@sw_K_g@c@  T Tc@"@{R;r_kbT"@y R_kAbT"@9_qaT` 5 @;k@ o@[@@@ "B*G B !K@@OSh, ~ #l$@@sw_K__@9 !!@5;@8;@)_K_ Tc@"@қn{J_XT *o5 @k@!!*To@@@d @f5eT_@9@a5x_K_ G Kk@Oo@S+ ~ # $@@sw_K_c@c@ bB@@lTc@@y;R?k!T@9_qTk@@cR[rkTk@!*T8[ Rr+!Tk@!.T!!*,iRr+Tk@!!*aT 24 @7k@o@ b@@7@ @b5#" _@[9@`5A=:!!* k@ o@*@@!! @ ? @/@'" B24 @3/@'@ )@!!* a@@3@ @b5#" M_@[9@`5AE_K_ *G Kk@Oo@S$` #Z#@@sw_K_{-R?k! T@9_qT *q4 @k@!!*To@@@d @f5eT_@9@a54_K_ G Kk@Oo@S+ ~ ##@@sw_K_{R?k/T@9?qa/T_K_c@g@ bB<@@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@!0 To@@@_ aT#+@y̍RkT@9qT{.RkT@9qT *3 @#@` @5+@a+@_@;9@`5#<S"P (@!0?C4>  @"@@sw_K_֛iRr+Tk@!!*aT3 @o@@@` @b5aJ_@;9@`5#<"Ak@?o@C4>  @`"@@sw_K_R?kT@9?qT *w3 @k@!!*To@@@d @f5e T_@9@a5|_K_ G "Kk@Oo@S+ ~ #"@@sw_K_c@@yR?k!T@9qTk@ !!T_@9 !!@5o@po@Ś_K_ *G Kk@Oo@S+ ~ #!@@sw_K_R?k! T@9?qT *2 @k@!!*To@@@d @f5eT_@9@a5tx_K_ G `Kk@Oo@S+ ~ #!@@sw_K_g@c@_@C@5@ @5_@#_@"Gg@c@B@c4 H@k@ !!@5o@ o@/_K_U @_,T##9/@@/@@ B?#@97@?T? T?T3@@y RkT !!@a540,RkT| !!@a5&";.Rk"T| !!@a5d ܙ3@ 3@ BB @ @T3@@9?qT/@| !!@a5 Ҿ?q!T/@ !!@a5(@Ұ3@@9?qT/@ !!@a5@Ҡ?qT/@| !!@a5L`Ғ?qT/@ !!@a5X҄7@/@? T?T3@@{R;rkT@y RkAT@9qT !!@a58e? aT3@@қn{JaT !!@a5xQ3@3@ BB@@ T3@@y;R?kT@9qT @5/@l/@0h{-R?kT@9qT @5/@4[/@VnR?k T@9?qT @5/@<I/@ D3@@yR?kAT@9qT @5/@|5/@0R?kAT@9qT @5/@p#/@R?kT@9?qT @5/@t/@Ԙ 7@/@@B4 pH9@ _E_O_E_ @_T#` @)'@ ğ@@@@+/37_D_ˏ @_T#9'@@;9 BB@9#@@d⸄@e_e6 0C9~'@@ B>@9@@+/9@_D__D_ @_ T#_9@@K@@ B?#@ !!@5'@`'@=_9@_C__C_\ @_IT~#@[9 @a5__|A @d5__D@e5__|E@f5__F@GHI @5_(__<  _J @k5_@ ֗ _| K` @l5_L ˗ _ L @m5_X  {wsokgc_[_| M WNSOOPKQG@5_d_|_| K@G@ / @@@@@ @5@A@_ @  O@??@@@ @@@ @@@@@R\r+T`:Ta?q \T?qXT@ BiRr+AT *T@/@7?;T? T?T? HTC@қn{JGT/ @?@M@@ @@@ BE@e5* B@@@5@xK@@ BҁC@{R;rkATC@y Rk!ATC@9q@T` \/ @?@ B V@@@"Z @5@@A8k@@@ Bm @@.@T7@@y;R?kT@9_qAT*'/ @?@B: !@@@bW 2/ @@"@!@ #@!* \@@@ @5#@A" @ B!{-R?kAT@9_qT*. @?@:M@@ @@@ BE@e5| B@@@5@4o@m@ B{R?kT@9?qT?@ M@@ @@@U QT+3@$ .@9P@ B7@/@ BB<@@L T7@@ynR?kAT@9_qT*. @?@L@@ @@@ BE@e5 B@@@5@<g@ @ BҡsR?kT@9?qT*S. @?@L@ @@@@ !%@e5@  @5@|G@ٕ@BL BY7@@yR?k!T@9_qTR?k# ". @?@ B @@@"L @5@@ApS@@@ B,!T@9?qT*- @?@GL@ @@@@ !%@e5@  @5@tO@{@BH B*/@7@m?T?! TC@y Rk T,Rk T;.Rk TW@?@ K@@@BH@ Bw@?@ K@@@J@ B{@?@ ~K@@@L@ B @ @@,T7@@9?qT?qaTs@?@ `K@@@L@ B@?@ SK@@@"O@ B7@@9?q` T?q T?qT*/@7@@d@e@% @? @@?@ 7@/@RL@@@@7@ /@@ Bh/@7@@ @?@ 6L@@@#@@J@7@ /@k@ BJ[@?@ J@@@M@ B=_@?@ J@@@BO@ B0c@?@ J@@@Q@ B# ! @a!:0@ #@@@_@_@@A(@@@_@_P ` @@_@_x ` @@_@_ ` }@@_@_* A!@ c^@@_@_B* B !@@ c?@@_@_B* B @@ c @@_@_* A!@ c@@_@_3@+@ @!* #@@@_@_@@,6 #@@@_@_* `!A!@ c@@_@_* "BB@ c@@_@_B* B @@ cn@@_@_* `BB@ cO@@_@_B* B $@@ c0@@_@_B* B`#@@ c@@_@_B* B #@@ c@@_@_B* B "@@ c@@_@_B* B &@@ c@@_@_;C7@/@ @!*C@`@;@ c@@_@_B* B#@@ cl@@_@_B* B#@@ cM@@_@_B* B`"@@ c.@@_@_H0| #@@@_@_@@,6 #@@@_@_ @C _:TC ~#_c_9C ~T? @7* |-@c 3 @@W@| S@@W@c@C@?@? Txc@@ )* A1TS @@T_O{ =-@@#@@W@S@?@_@O@ )*{@Kh  @5|Jh$  V @@ *Tc?C@@A@ @{@KЄ4 ?@K@ !"@5{@ {@2w  @ ! 5g 1@ @" BC9o@@ @c5!/ d,@o@"@#@$@! @_TB/@_B!aT @/@C_9_A |_@C _w@@?@;wD@gE@GTo@Ao@g@ G@o@A! z4 g@G@=@@@@ۏRr_k!TB T @["@3!@7o@D@@@[@ 3@7@0@@o@ Fo@Ao@%B c @@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ d@!*s@@@k@8  #J@@ _9_AO{_@C _^*   6I 6C 6= _@C _$ @_IT#?@s@' @/@+c? @3| !  C@G@/@'@+@# ( @ @53@@3@ KO_G_҆ @_)T#3@7@ !/@;@?@D@#@CG_E_ @_T#3@7@ !/@8E@@@;?C_E_ @_T#'+9 7@[9 @9A@$ค@%_%6@C9G7@ >+@`'@9?@AT;@$@{R;orkTC@!3TG@@@@aTD@ @`5A 9'@_F_ :@@KO9'@_F_;@B @c4 =@C@ !!@5G@ G@ 9'@_F_p_F_v @_T#'+9C97@9 !!@9@Cc@D_D6C97@ !>+`'@9 @!4 ;@?@0<@@@@9CGC99'@=_F_%_F_ @_I T#99'@9 !!@9@Cc@D_D6C9n'@ !>`@9+@@@? T |@h`A!@/3@99@_D_99@_D__D_j @_T#9+'@9 !!@9@Cc@D_D6C9'@ !>`@9@+9@_D_֙_D_0 @_T#/@@@?T3@;_E_@@@_T# 7@@9 #@@3@@c?T@;_E_ @_IT##9;/@9 !!@9@Cc@D_D6C9/@ !>#`@93@ 7@@;9@;_E_#_E_ @_I T#7;99G@9`3x ?;3@7@9G@K@ O@n@ TG@@$@@T ; ()@@#@G@A !$@d5CP$ |K@h  !!@5O@ O@=@997@_H_997@w_H_ֻ_H_R @_)T#GK?99W@9`C ?KC@G@?9W@@@?T3[@ 9?9G@G_J_B@E@F@T+? _@@9@W@3@?@[@+@?lT+@W@A@D@E@? T @@| @`5CPΌNW@b@a@d@%Th T`C T? T&3G˥|ӥ_BT;/ c; s(@#@+@3@W@;@/@T/7 !;A| >3@W@@/@@ @57@@7@@9?9G@_J_ҌЌƌČ@ʌ _J_B @_T#9'@9`Q ?@'@_ @`5_F9@_D_ξ_D_e @_T#7@>@+7@"@#@!@|  ;@?@# g$ @ @5+@@+@ CG_F_( @_ T#W[?9 3[{@W@?9s@?To@ ?9W@_L_C@@/C@@;A@+ &$ @/@+@bD@7 @5;@@;@g@@k@ ? @7@? O{@GK# @@9@/@s@?TT?9W@6_L_ _L_ @C_=TC~#{{?T9A9 !!@9@Cc@D_D6C9[}A !>`@9 B1@ @ B @A!:0@ c@n@@9@~_@_wA9 @@ @O@7@;@ˉ#@@'@!@$@&@'@Tw[ ; #@@#@@A !$@d5Cw@[@%|h! !!@a5 9@3_@_8` @@9@_@_@@=` c@@@9@_@_scK@3@ @!*s@@@c@( @@9@_@_@@,6 c@@@9@_@_@:o@c`?o@@@ O@7@;@'@+@#@@'@{A9B7@@$@@TWw ;  #@@#@@A !$@d5C3w@@W@$$|Ӣh$ @e5#" !{A9?@G@? T*s_?@' @!s@@@_@d$ -@@9@=_@_֡ !@~|_@_~U @_IT#/39 9?@9 !!@9@Cc@D_D6C9x?@ !>3`/@9| @#@a@?jT#?@ @@@@9'+ @? @@G@_TC@ w@9`G@+@K'@O@99/@-_G_ 99/@$_G_ 99/@_G__G_} @_T#9'@9 !!@9@Cc@D_D6C9Ox'@ !>`@9@@+/9@_D_Ǹ_D_^} @_IT#9'@9` ?@+@'@  @5/@ "/@9@S_D_֗_D_.} @_IT#'+9@ I7@9 @ BB@9@d⸄@e_e#6C9w7@ !>+`'@9@ B; @!@@#@@@ @a5C7@!@@?TF@G@(|өhh@?"Th(@f5  4;?9'@;_F_Յ _F_| @_IT#'+97@0@v7@0@ B?+'@9?@C@ !!@5;@;@c9'@_F_H  @@GK9'@_F_׷_F_n| @_T#'+97@0@;9 BB@9#@@d⸄@e_e6 0C9"w7@0@ B>+'@9@@@ k;@?@  B@@CG9'@_F_֋_F_"| @_T#GK_9_  W@0@;9 BB@9#@@d⸄@e_e6 0C9vW@0@ B>KG@_9!  @;W@! z@@@@@?C  @ @@_ ko_9G@@_J_[@Ί @7@3 @/c*? Є$C , O@@ @;@@@@#c@c@ $@@ @!*?C ,7@ 3@&@@ @*? $C ,7@ 3@ @@ @/@@3@?@@@_cg _9G@_J_ֱ_J_H{' @_T# l@; !b @/a !\ @ @5/@0;@,/@`;@W@ @7@+/@'@+@/@7@Txc@@*T'3@@@ @ 0@@@b3@C@B@?C@@GK@  @@ cg_J_ @/[_ _J_ `6 z C@G_@@@@ _֠  `@!_@@@@ __@@@@@ __@ @@@ __@@@@ _@@ _@ @@@ __@$@@@ __@(@@@ __ @_)xT~#9@0@;9 BB@9#@@d⸄@e_e6 0C9u@0@ B>@9 !O @!* B`&bB- B % B@@#@@ cd@5@D@Ղ c$@@ ;7  @*` ! a@"@D@B@BB@b Х@f5d b`@;@cT@@ 7@h@@#@*@ Х@7@H @i5Cx' c@ {  @!* B@C@d@c@ @*@  BD@d5# $`] B@{@cT@@ @@#@*@@ Bg H@h5ax$6 B c@@ ws | @!* B !@C@d@e@c@ o@  @  @b5# "`s@w@cT@@ @@#@ s@@G @h5Ax$ c@ @ ok - @!* B`!@C @d@c@ @*@  BD@d5# $` Bk@o@cT@@ r@@#@*k@@ Bg H@h5ax$ B c@@ gc  @!* B`%@C@D@E@ @ @  @b5# "`bc@g@cT@@ @@#@ c@@G @h5Ax$@ c@@ _[  @*` ! a@"@ d Є@e5b e`[@_@cT@@ @@#@*@ Є[@@H @i5Cx% c @ WS < @!* B`@C @d@c@ @*@  BD@d5# $`ǀ BS@W@cT@@ @@#@*S@@ Bg H@h5ax$ B c@$@ OK  @!* B@C$@d@c@ @*@  BD@d5# $`q BK@O@cT@@ +@@#@*K@@ Bg H@h5ax$J B c@(@a GC  @!* B"@C(@d@c@ ] @*@  BD@d5# $` BC@G@cT@@ @@#@*C@@ Bg H@h5ax$ B@7;,@~Tc4 = 7@;@@ 7@;@@@ ;7@@@3b@c@?  @@?@ @*@ BD@d5#$  B3@$D@5@$ $`@ B7@;@cT@@ Y@@#@*7@@ B7;g H@h5ax$v9@_@__@_v:@,@ _ց @C_6T# 9O@0@;9"@ cc@9@D㸄@E_E6 0C9@qO@0@}; B>+C0TW@ l#T!TS@"@9_q,TO@@@@  y @! [_@9 դ_I_ 9 ՝_I_ TS@ "B@O@, TS@@y;R?kaT@9_qTO@@@@@@[_@9 w_I_ 9 p_I_{-R?kT@9_qTO@@@@@  @!*[_@9 V_I_ 9 O_I_{R?kT@9?qAT @ @A!-[_@9 7_I_S@W@ "B<@@TS@@ynR?kT@9_qTO@ @@@@ @!*[_@9 _I_ 9 _I_R?k T@9?qA TO@(@@@@ @!*[_@9 _I_ 9 _I_S@@yR?kaT@9_qTO@@ ![_@9 а_I_ 9 ɰ_I_R?kT@9?qTO@ @@@@ \ @!*[_@9 կ_I_ 9 ը_I_W@S@SaTS@"@{R;r_ka T"@y R_kT"@9_qTO@@@@@ U @!! [_@9 Հ_I_ 9 y_I_ TS@"@қn{J_TO@$@@@@  @!*[_@9 [_I_ 9 T_I_S@O@B,@c4 C+@@@@9[_9 >_I_ 9_I_tG @_T#'+9 7@0@7@0@b B?+'@9;@ ?@C@G@@@KO9'@_F__F_t @_qT#g@ WTaTc@$@9qjTk@! To@@@@_@ @`5I}_K_ *G `%Kk@Oo@S+ ~ #^@@sw_K_ OTc@ "B@l@lTc@@y;R?k!T@9_qTk@@cR[rkTk@A!*T8[ Rr+!Tk@A!.T!*,iRr+Tk@!*aT2C @3k@o@ TB@@3@ @b5#" |_@[9@`5A=|:!* k@ o@A @@!! @ ? @/@'B2 @7/@'@ @!* B@@7@ @b5#" |_@[9@`5A|_K_ *G Kk@Oo@S$` #@@sw_K_{-R?k! T@9_qT* @k@!*To@@@d @f5eT|T_@9@a5 I|_K_ G Kk@Oo@S+ ~ #`@@sw_K_{R?k/T@9?qa/T_K_c@g@ "B<@e@Tc@@ynR?kT@9_q!Tk@@=Rݩr+ Tk@A!0 To@@@_ aT#+@y̍RkT@9qT{.RkT@9qT*> @#@` @5+@a+@{_@;9@`5# "`{ @A!0?C4>  @@@sw_K_֛iRr+Tk@!*aT @o@@@` @b5a{_@;9@`5# "`{k@?o@C4>  @@@sw_K_R?kT@9?qT* @k@!*To@@@d @f5eZ{T_@9@a5(@O{_K_ G "Kk@Oo@S+ ~ #f@@sw_K_c@@yR?k!T@9qTk@ !!T_@9 !!@5o@o@{_K_ *G Kk@Oo@S+ ~ #+@@sw_K_R?k! T@9?qT*B @k@!*To@@@d @f5ezT_@9@a5 z_K_ G` `Kk@Oo@S+ ~ #@@sw_K_g@c@ Tc@"@{R;r_kT"@y R_kaT"@9_qT   @;k@ o@@@@ B*Gb B !K@@OSh, ~ #@@sw_K__@9 !!@5;@@;@\z_K_ Tc@"@қn{J_T* @k@!*To@@@d @f5e4zT_@9@a5$ )z_K_ G` Kk@Oo@S+ ~ #@@@sw_K_c@_@C,@`@ @5_@#,_@"`yg@c@B,@c4 (@k@ !!@5o@ o@y_K_qn @_iT##9/@0@/@0@b B?#@97@? lT?T3@@9qaT !!@a5үy? T3@ B@@ T3@@y;R?kT@9qT @5/@/@Ҏy{-R?kT@9qT @5/@/@ |ynR?k T@9?qT @5/@ x/@`jys3@@yR?kAT@9qT @5/@(d/@@Vy_R?kAT@9qT @5/@R/@DyMR?kT@9?qT @5/@ @/@2y;/@7@3@/?T3@@{R;rkT@y RkaT@9qT !!@a5"@y? aT3@@қn{JT !!@a5$ y 3@,@B4 (9@:_E_~_E_p @_T# @/'@ @@@@+/37_D_o @_T#9'@0@;9 BB@9#@@d⸄@e_e6 0C9j'@0@b B>@94@8@+/9@:_D_"_D_o @_ T#_9@0@w@0@b B?#@4 !!@5'@8'@ix_9@_C__C_o @_iT~#@[9@ A@D` @5_|_|Bx>x;x8x_[W_FSGOHKI GJ@C@5___ xxx x x j @@@@@ @5@A@x_ @  x0@;;@6p@@ @@@ @@@g@@R\r+T :a~Ta?q@LT?qHT @iRr+|T*A|T@+@3? 1T?/T? =T @@T3@@y;R?kAT@9_qT*  @w;@B: l@@@G2 @w@"@!@ @!* =@@@ @5#@A" w@w{-R?kT@9_qAT* @s;@.@@ @@s@ BE@e5aw B@@@5@_@Rw@ Bҡ@ @P{R?kAT@9?qT;@-@@ @@@E !BT'/ @9@ @23@+@ B<@p@ T3@@ynR?kT@9_qAT*i @g;@-@@ @@g@ BE@e5v B@@@5@ W@v@ B> @R?kT@9?qaT*2 @c;@-@ @@@c@ !%@e5v@  @5@(C@v@"< @3@@yR?kT@9_qTR?k @ " @{;@ B j@@@; @5{@@AO@{@v@AT@9?qT* @k;@(-@ @@@k@ !%@e5iv@  @5@ K@\v@b8 @\*+@3@vC@9qaTS@;@ ,@@@9 @G? T? A TC@қn{Ja T @o;@,@@ @@o@ BE@e5v B@@@5@$G@v@ BA6 @ C@{R;rkTC@y RkaTC@9qT  M @;@B Gj@@@5 @5@@A[@@u@@d8@e4@% @? @@;@ 3@+@)-@@@@3@ +@P @+@3@ @;@  -@@@#@@1@3@ +@2 @  @!!:0@ #@@@_@_@@_@_֠ ` @@_@_B*b B @@ c@@_@_*` A!@ ca@@_@_/@'@ W@!* #@C@@_@_@@,6 #@+@@_@_*` `!A!@ c @@_@_*` "BB@ c@@_@_B*b B @@ c@@_@_*` `BB@ c@@_@_B*b B`%@@ c@@_@_*` A!@ cq@@_@_B*b B !@@ cR@@_@_?73@+@ E@!*?@`@7@ c)@@_@_`H0| #@@@_@_@@,6 #@@@_@_jh @C _:TC ~#_c_9c   ~T! @7* !@c k @@W@% S@@W@c@C@?@? Txc@@)* A1TS @@T_O{ 5@@#@@W@S@?@_@O@)*{@Kh  @5|Jh$  Ns @@ *Tc?C@@A@ @{@K4 !@K@ !"@5{@ {@*sw  @ ! -I ՠ1@ @ BC9o@@ @c5!/ \@o@"@#@$@! @_TB/@_B!aT s@/@ _9_A^_@C _sw@@?@;wD@gE@GTހo@Aـo@g@ G@zo@! r4 g@G@@@@@ۏRr_k!TB T @["@3!@7o@D@@[@ 3@7@@@o@ >o@Ao@%B c h@@@o@@ @cT  99d$@@ @˿kTca_T;@!?@_ T?skg@G@ \@!*s@@@k@8  #B@@c _9_AG]_@C _Vr*`   @6A @6; @65 w_@C _ i$ @_IT#?@@' @/@+c? |@3| a !` C@G@/@'@+@#  @ @53@@3@q KO_G_h @_)T#3@7@ #/@;@?@&@#@CG_E_h @_T#3@7@ #/@0'@@@;?C_E_h@ @_ @_T#C@ @=Rݩr+TC@A!0TG@@@ aT`@y̍RkTe@9qT{.Rk!T`@9qT?@D @`5C'q _G_ S@A!0/34>  c@?@@KO_G_֛iRr+! TC@!* TG@@'@+_ T! @9'@? +@!*'@aT! @9 '@?@A @5+@@+@p _G_+@'@ @!*/34>  c@@@KO_G_C@/G@3?` c@@@KO_G_gF @_i T#OS_9` 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9f@`T_9O@_K__9O@_K_ ޢ_K_ug @_i T#OS_9` 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9@`T_9O@_K__9O@_K_ Պ_K_!g @_i T#OS_9` 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9@`T_9O@V_K__9O@O_K_ 6_K_f @_i T#OS_9` 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9j@`T_9O@_K__9O@_K_ _K_yf @_i T#OS_9` 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9@`T_9O@_K__9O@_K_ Վ_K_%f @_i T#OS_9@ 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9@`T_9O@Z_K__9O@S_K_ :_K_e @_i T#OS_9@ 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9n@`T_9O@_K__9O@_K_ _K_}e @_T#ѡ @A ! @A ! @ @ 5@@!  @*n@ @%nB !n_D_He @_IT#с@@ _A_օ .e"@cT#$ @_ T~#с@@BC@;T#C@;TMS@_@W@[@c@_@_O d"@AT#$ @_IT~#с@@BC@;T#C@;T@S9W@c@[@_@g@_@_ d"@T#$ @_IT#с@@ _A_ d"@cT#$ @_ T~#с@@@;T#C@;T"c_@k@c@g@o@_@_ֿ hd"@AT#$ @_IT~#с@@@;T#C@;T@_9c@o@g@k@s@_@_օ .d"@T#$ @_IT#с@@ @_A_e d"@cT#$ @_ T~#с@@@;T#@;TG@S@K@O@W@_@_/ c"@#AT#$ @_IT~#с@@@;T#@;T@G\K@W@O@S@[@_@_ c"@#T#$ @_IT#с@@ @_A_ ~c"@cT#$ @_ T~#с@@BC@;T#C@;TΥS@_@W@[@c@_@_֟ Hc"@AT#$ @_IT~#с@@BC@;T#C@;T@S,W@c@[@_@g@_@_e c"@T#$ @_IT#с@@ $@_A_E b"@cT#$ @_ T~#с@@"#@;T##C@;T.O@[@S@W@_@_@_ b"@AT#$ @_IT~#с@@"#@;T##C@;T@OЭS@_@W@[@c@_@_ ~b"@T#$ @_IT#с@@ $@_A_ֵ ^b"@cT#$ @_ T ~#с@GAbc@;T#c @;TJ@@@@@KOSW[_@ _ (b"@# AT#$ @_IT ~#с@GAbc@;T#c @;TKAȬ@@@@@OSW[__@ _E a"@# T#$ @_IT#с@@ @_A_% a"@cT#$ @_ T~#с@@@;T#@;TC@O@G@K@S@_@_ a"@AT#$ @_)T#с@@@@! @ ? @_B_wa"@T#$ @_iT#с@!@@@! @ ? @@#'_C_Ua"@T#$ @_iT#с@!@@@!@ ? @@#'_C_5a"@T#$ @_)T#с@@@@_A_n a"@cT#$ @_IT#с@@ @' _A_M `"@cT#$ @_IT#с@@ " @_A_- `"@cT#$ @_IT#с@@#@ @? @@'+_C_`"@T#$ @_IT#с@@#@@? @@'+_C_`"@T#$ @_T#@@#@C@D@@?T n@9@@@9#@!@@9@#9_C_j` @_ T#с@@@ @? @#_B_T`"@T#$ @_IT#с@'@ +@/@ a@@@@37;?_D_ց *`"@#T#$ @_T##@@@C@@E@T @9 @@#@C@ @B @?`T @9#9_C__ @_T#` ;_@ c@2@@_@c@5#/  @3#@!8@/@ B  ?@@@_@?c@C@@GKd% @@gk_J_ 3@`@+R;r_kT B T1R[Fr_kT B !T' @+ @5'@b@;T  '@ B +@W@[@ %@@gk_J_7; @ @c@@gk_J_V_e @_T#` ;_@ c@@@_@c@5'/@ :f @3'@!8@/@B  ?@@@_@?c@C@@GKL` @@gk_J_ր 3@`@ߙRr_+TB B:AT++ @+@@@@ @`5C g [R[wr_+TB ATW@[@  T%@@gk_J_7;`| @@@gk_J_^m @_T#` ;_@ c@@@_@c@5#/@  @3#@!8@/@" B  ?@@@_@?c@C@@GK` @@gk_J_ 3@`@R;r_+TB BAT' @+ @5'@@;T@  '@" B +@ Rr_+aT" B TW@[@ $@@gk_J_7;0 @3@@gk_J_&^e @_T#` ;_@ c@f@@c@_@7'/` -6 @3||'@!8@/@ B  ?@@@_@?c@C@@GK @@gk_J_3@ !"@ЁRr_kT B?T5;3R[˩r_k!Tb B-?T+ @+@#@"@$ @!@a !!@5  f@f`f BW@[@ $@@gk_J_7;. @@@gk_J_]_ @C_T#` ;W@ [@@@W@[@>#'  @+#@!8@'@BB  ?@@@W@7[@;@@?C E@@_c_I_+@@@@ b@! B ?TO@S@ #@@_c_I_/3`6 c@@@_c_I_] @_)T#` ;_@ c@F@@_@c@6'/  @3'@!8@/@" B  ?@@@_@?c@C@@GK| @@gk_J_ 3@@R r_kT" BT+RPr_+T" BaT+ @+@@@@A@` @`5Cke" BW@[@ #@@gk_J_7;@ @|@@gk_J_o\j @_) T#` ;_@ c@@@c@_@6'/@7~ @3'@!8@/@"B  ?@@@_@?c@C@@GK@ 1@@gk_J_3@!!+"@R[r_k!TBB7?ATB @+@@@@A@` @`5Cmdk"BH)Rr_+TBB1?!T@7$ @+@@@Cc7T$@%@!@EAa !!@a5DdA!7T\. @@gk_J_"B {R#r_+T"B?T#"B#@7 @#@A!7T+@@@@FDd @d5Esd!TW@[@ "@@gk_J_%~ @@gk_J_7;7 } @t@@gk_J_g[ @_ T#C@ ;@; c ? T7@dh`86 @!'+h" #@B@@OSW_F_Beh`8k@T_T!?@_#TGKO _F_@t@ @@OSW_F_6d%d  [ @_ T#K@ AO@_AT?ACT'CAG@S@F@!A ?@@@@@$@@7;` @@@W[__H_3/'@@TA ! `TA ! TA ! +  @3@a !"@5/@+@ /@{c@+@xc'@O@!@5G@G@lc W _H_v @!7;` @@@W[__H_֥cc pZk|'_ @_ T#@@ @? @'@7_B_TZ @_)T#Ѡ5{@@@b;D / {@/@7@Cw@ T c{@/@7@C@_(T;@˥ @ưE@T3 c{@/@7@C@;@3@B?T˥ @ưE@T'7 c{@/@'@C@;@7@B?# T˄ BE Tuah"8mӡ9eӡ9]ӡ 9Uӡ9Mӡ9Eӡ9}Ӡ9_@k@o@s@ <@+@?@C@ /@@?@@@B@@GK0 #@@@_J_+@@?@?@@g@_T_J_ֿb @bbbb Y: @C_i TC~##cC@;T@@! @ ? @@B5 A @ A@?TAT c@@ @? @ A; b oB5#c @(@c@o@ A@@@@ @@AM@@@@ @@?#cC@;TA'A+A/@3@7A;@?@C@GW@[@O@K@W@ @@ET@@w!5 @@@@@@w@?hTkg˟넰(@? Ts{ bg@@@@{@k@@s@@(T_BˁT pbg@k@@#'_@C_aa@@`@@ @@@A!@ hh#8cTJa X @_+T~#@@?T@@s@ @?@s@" @(_[ Úc ?'T##@;T@'@+@/@3@7@;@?C@Gs@@@`B_@ @W@[@O@K@W@ T[E@/ #@ @@_@_@@ @? @s_@ @!s@ @!@ c@@_@_ր@7 @@_@_aT@@ @@@M@o@B5_@ @o@!@@ _@@@ ?@@ @? @@_@ 9#@'@@@#@d@@ #@@@_@_@D˟T@@{k!5 @O@@k@{@?T_B!`Tcwg ac@g@w@_@_ր'  B@@_@_``F ib8 hb8) ʥ _+T բ@BB|_*QP` W @_IT~#с@@@;T#@;T@'@+@/@3@7@;@?@C@GK@W@O@S@[@_@_1 V"@#T#$ @_T#с@@|_A_ V"@c!T#$ @_ T~#с@@c@;T#cC@;T@'@+@/@3@7@;@?@C@G@K@O@SW@c@[@_@g@_@_ pV"@AT#$ @_T#с@A7@pc@;T@@ @? @@;_F_֛ DV"@T#$ @C_TC~#с@@0#@;T##@;T@'@+@/@3@7@;@?@C@G@K@O@S~W@[@_@_@C_O U"@cT#$ @C_!T# ՠ5W@"' (@ '@? TCW@CZcc~S@T _ ՠ5o@"+  @ +@? T?o@CZcc~k@T f_ ՠ5{@" @ @? T;{@CZcc~w@T H_{@5o@W@@@ @@30# '@#@@7C@T (_@#@7@HT3@d˄0+@륰?@`T/ _@#@7@3@/@? Td˄0@륰;@T/ ^@#@7@3@/@? Td˄0@륰@T/ ^@#@7@3@/@?Tcc0@넰@T ^ 5 @O@$#@a !"@57@ `7@]c@g@ !@5_@_@]_I_^^^^@]@]@] T @_ T#_@$@c @+@; @K@O@+@;@K@_@@@g@TO@@?O@ x @G!,K@ ;@J@@ #a ! B3G@@#@@+@@_@C@D@E @;@  ?@@@ +@@_@C @D@E@;@  ?@@@+@@;@ ?@_@"@C7@%@&@"T3/C5 @#@/@3@C@3?  ^7@_@@3@@` @5?@D}?@]z @@OS4 c@3@@osw_K_ @@OS<@ c@@@osw_K_ @@OSX;` c@@@osw_K_c@T ]_@g@@@@T ˀˀ` @`5\o_K_] S@ @@_@ _ @_T#Ѡ5?@ @+!'"@!@ ?@e?#@'@#@"@@/39` c@@@KO_G_+@?@ @a !CG _G_xS @_ @C_)%TC~#,{?T9@@@B'C@B@ I@@@@CA!@& @@@@_@C_@@_T#@hRrkAT#@yRkT#@9LqaT@@g@dpU9dpM9dpE9c}9@d@o5}k T@@"@#@! @ k@o+@o@ hT@"@@$@B @e@c @ k@c@@?@@"@#@  @@[@_# c @9@ g@@@@ @[@_@#/;~?CG S@@B5 @@c@ @@@B@@@ @@@9@@@ I_@C_ @@c@`  @@9@@@ %_@C_k@{[ խ_@C_CR@'_ @_I"T~#'@@ '@+@@@@@#@'@G@@P @@@_@_@@T@hRrkAT@yRkT@9MqaT@@@ qU9 qM9 qE9}9߀T_[oCT {[@@c@gc @C {@c@g@J/@3@#@'@+@/@E@@@@7 @@@_@_sw@ o@@@@ @s@w@#/;~?CG S@@B5 @@k@ @@@B@@@ @\@@_@_@[@ _@u@A!)@k@`  @@_@_{QZ &Q @_i T#C@G@ T@@@@@@@'+@p} #@@@SW_F_BB@K@ @O@! @?@@@@@'+` @ #@@@SW_F_ _F_P @_I T#C@G@K@ [@ @@_@   ?@@@@@'+` @ #@@@cg_F_O@S@W@ [@ @@_@B @B ?@@@@@'+` @ #@k@@cg_F_ _F_ZP @_ T#O@7S@ @ @W@ @ ?@@@@@'+` @ #@0@@[__F_C@G@K@ NS@ @@W@B @B ?@@@@@'+` @ #@@@[__F_ _F_O @_iT#с@!@@@@@_A_, O"@cT#$ @_T#с@'@@@@ @@@+/3_D_O"@#!T#$ @_iT#с@!G@PC@;T#C@;TK@O@h#@'@SW_H_ O"@#T#$ @_T#с@'@+@/@ @@@;?C_D_^O"@#AT#$ @_T#с@'@@@@ x@@@+/3_D_9O"@#!T#$ @_iT#с@!g@P@;T#@;Tk@+o@/L3@7@sw_L_`  O"@#T#$ @_T#с@'@+@/@ %@@@KOS_D_N"@#AT#$ @_T#с@'@@@@ @@@+/3_D_N"@#!T#$ @_iT#с@!W@P@;T#C@;T[@#_@'D+@/@cg_J_ N"@T#$ @_T#с@'@+@/@ @@@CGK_D_nN"@#AT#$ @_T##@@@C@?TA@@TA @@D@ @?TE@@AT @9#@@@"@!@ @9#9_C_2N @C_iT#с@!O@Pc@;T#c@;T@'@#@+@SW[__I_`  N"@cT#$ @_T#с@a'@#@;T @+_D_> M"@#aT#$ @_ T#с@'@@ @@@@+/37_D_ M"@#T#$ @_T#с@@@_A_ M"@c!T#$ @_iT#с@!_@P@;T#@;TD'@/@+@3@cgko_K_ qM"@T#$ @_T#с@a/@#@;T@3_E_֦ OM"@caT#$ @_ T#7@;@ ?@Q@@@@@$@@'+= #@%@@KO_F_  ~|E@#@@@@$@@'+<4` #@@@KO_F_CG _F_L @_iT#7@;@ ?@ ` @@@@#A!@'+= #@@@KO_F_ց ! ,CG _F_L@_@_ @_IT#K@TG@"@;(R[r_kT#@yhRkT#@94q!T@`9@||C cl;(R;Gr_kT#@yhRkT#@94q!TA!`9 @}|C cY;HRƦr_kT"@yhR_kT"@9_4q TA!`9 @{|C cF4A TG@"@;([{H{_!T#@iR[rkT#0@9q!TA!@9 @{|C c,;(;G{H{_!T#@iR{rkT#0@9q!TA!@9 @|}C c;HһƦ{H{_T"@iR&r_kAT"0@9_qTA!@9 @z{C c3/+'D ? @+@'@/@A !!@53@ `3@TO _H_G@ @!*7;` @@@OSW_H_K9 @_#T~#?9 c@@ @@ @@?@#@@@@d AAA!@_c@0} @@@ c_@_S[ `@?9@@a! @ ?@@ @@ @ @? @@@ @@A AAA!@_c`8# ~ @`@@ c?9@_@_@ @? @@@S@c@[@@#@'@+@/@3@7`??@C@;@cC@;T@%e?TOWˣC a5 T@O@W@T T?9@@_@_"T@;T@K  @!gkK@ @!ost` #@@ @!*  %_@_J @_iT# r @@ @@ @d@ 3+/@O!@@@G@ @ @d5#O" dSLO@iRr+AT3@!*T/@@@ @!*7;@  @r@@G@ @ @b5#" 6S3@+@7;P  @T@@G@ @ @b5#" S"@#@Cc@7;@3 @6@@G@ @ @`5#" R_H_!Jh @_IT#os9@@ @@ @@?@#@@@@ @@A!@gk`h #@@@_O_[_ @so@95@@W @@@W@?( T@!@Tc xSc@W@[@!@_@@@@#'+@/@3@7 ?G@K@;@?@C@G@ @@gk   #@@@9o@_O_9o@_O_R ׄ_O_nIQ @_T# & @@ @@ @@ 3+/@O!@@@G@ @ @d5#O" RLO@iRr+AT3@!*T/@@@ :@!*7;@  @&@@G@ @ @b5#" Q3@+@7;P  @@@G@ @ @b5#" Q"@#@Cc@7; 3 @@@G@ @ @`5#" Q_H__H_He @_T#с@A/@`3@7@ ;@{@@@@?CGK_E_ H"@cT#$ @_T#с@A/@`3@7@ ;@@@@@?CGK_E_ H"@cT#$ @_ T#@@#@C@@E@?T Z@9@@@#@C@ @E @?AT L@9@@#@C@T@A@?#9_C_DH @C_TC~#с@A@pc@;T#c@;T@@#@'@+@/@3@7@;@?@C@G@K@O@S@W[@g@_@c@k@_@C_M G"@cT#$ @C_TC~#с@A@pc@;T#c@;T@@#@'@+@/@3@7@;@?C@O@[@g@G@K@S@W@_@c@k@_@C_ G"@cT#$ @_T#с@a'@#@;T@+_D_ G"@#aT#$ @_T#с@a'@#@;T@+_D_ֲ [G"@#aT#$ @C_I T#@@@@ @@@@@@#@'@+?S@W@/@;@G@3@7@?@C@K@O@S@ @@_c@H=` @@@_M__M_F @_ T#W@[@ I@@@@"@@/3 c@@@_cg_J_+9@;TG@'! ! @[@@@ @5W@AW@O !A@5+@@@+@}O'@@|@ _ _J_F @_T##@@@C@@E@TA@@aTA @ @T 2@9 @@#@C@@B@?`T b@9#9_C_eF@@@ _ @_T#@@ @ @5@ "@@O_A_@F@@ @ _ @_T#@@@@ V@A !/3_C_F@@@ _ @_T#@@ @ @5@ "@@N_A_E@@ @ _ @_i T#?@@@@ ~J@@@@@D@@/3` c@@@ W[__G_ C@G@K@F '@+@@@#@'@E@@/3@L:  c@@@ W[__G_OSW _G_E @_ T#?@@@@ J@@@@@$@@/3` c@h@@ W[_G_ C@G@K@ '@+@@@#@'@%@@/3`@ c@@@@ W[_G_ `@A !OS _G_%E@ @#'_ @_T#@@ @ @5@ "@@M_A_E@@#'_ @_)T~#@@@ I@@@@@D @@ko` C@@@_@_  ~|=@#@@@@D @@ko` C@@@_@_[g@ @? @G!5@c!'"@!@ G@E0#@'@#@B @@ko@>` C@u@@_@_[@@g@c@G@@#@'@+7 ?C@O;@_?@K[@d@g@? @K@"?#TWS[@@g@?O@W@AK@!`S@_@ @c_Tsw{c@G@@  @@_@_4M:M D @_IT#C@H T?@"B9 @9 |?@!! : C@@9 }?@!!h: C@@9  {+'" B6 @C@@@ @5?@A?@LK@AO@A @5G@@+@@ @G@L"@+@L'@@ S _G_C@?@ @A!/3= c@@@SW[_G_C@ @+/_ @_T#@@ @ @5@ "@=L_A_dC@@+/_ @_T#@!5 @O@;B'C@B@ .#@'@#@" @@SW@ @,@@_O_@@ J@@@?T?5 @@#@?@h 8;@D??TG5 @#@;@G@KCbO@ L@@@@@ K@?@C@#'T+@/@3@ qG@@@@@$ @@SW` @@@_O_ @@@'@+@@@#@'@% @@SW`@ @@@_O_   s[_cO@g;@kos@  @@_O_mB @_T#[@@ЁRrkT[@ !T  -} @K@@ A !#@5G@DD@G@KS@E%@5O@EEO@KW@E%@5_@C_@Jc cC{/Ryrka T[@!!) T_@@#@'@/  c0> @K@@A !#@5G@DG@JS@E %@5O@EE@O@JW@E#@E'@E%@5/@CE/@Jc c +3 + @K@@@ @5G@AG@J+@A@53@@@3@Jc _H_[@7_@; & @@@cgk_H_A>@ @#_ @_T#@@ @ @5@ "@@]J_A_A@@#_ @_T#@@ @?@@@ @@#@@37`$ @ @[@@_O_  s@ _Tc@;T _c@;Tc@;T_!T@@_T"@hRr_kaT"@yR_kT!@9?LqTC@;T @@_O_;@?@C@ E@@@@@$@@37| @@@_O_ @@@F'@+@@@#@'@%@@37 8 @@@_O_;?CC@;T@  +@@_O_` @@_O_@@ @?C_ @_)T~#|{?T9@ @[Rۑr+ T@c; T@@@@$Є)T@d@e@c@T _"TC?gcT {Jp @c {g@?@C@#@/@'@+@3@_@_@w@{/ @@@_@_@@ ! aT@T@ B?aT@ҡTok@@B@$@% @ @?@9 o@@c"@Kc5C}G ,@sc@"@#@! @ G@G@K@ To@"@#@B @k@@ @ G@cs@@?@o@"@!@ @_@;@ c @9 c9B@s_@ ;@VIs@;@9@@@ `_@_֠H)` @@_@_@w@{/ @j@@_@_@w@{& @P@@_@_G@pH{fH ՠz_@_6? @_ T#SApU9pM9pE9}9@@ @@#@'@@@@#@E @@gk@|   #@@@_N_֠w@ {@@@#@'@+@/@3@7;~?CG S@_!5SA[ @c_@ [@@@@B @@gk  #@@@_N_c@[@_N_>k @_*T~#@@# @@@@@? T@hRr?k#T@yR?ka#T@9Lq#T@@ @@@@B{w@@ o@!*{@@@w@@+@ #U@@ _@_9@;T@@@S g@@@S@B?8T@hқ{j?T@;(R[rkT@y{RkaT|.hқ{j?hқ{j?T@;(R;GrkT@y{RkaT}hқ{j?hқ{j?!T@;HRƦr?kT@y{RkT{@@@@@@@@@@ #'+/37sK@O@?@G@C@K@e@@-@ @@@ _@_@@?T@hRr?k!T@yR?kT@9LqAT#_@_ :B@@@@@d@@| @@@ _@_ @@@@'@@#@+@ _@_@@ e@A!`| @Q@@ _@_A=@ @_ @_T#@@  @5@ "`@E_A_=@@_@ @_ @_T#@@  @5@ "`@E_A_<@@_ @_I T#G@K@?AT@[jR;(r?kT@yRkTG@K@ @A!7;`P @@@ os_H_֠'@@O@ [@_@c@+@/@@#@'@+@%@@7;`4 @@@ os_H_ @! !gk _H_v< @_iT#_@c@? !T@[j;)T # @ !`ҡ!`AA Az !`9?0A T@[j;)?a T@ERƦrk T  >c @Ks !`:K@B'C@B@g@ s@w@{@# '?@C@3@7@;@?@% @@OS h@ c@@@_K_ (@! !_K_ @@_K_;h@ @_ @_T#[9 [@9o@@@@!x`!zA A@? a Ts@w@ @? @@@ @?֠'@@o@ @?@7@; {@@@#'+@/@+@@@CG`@ @z@@9:_L_?@7@;@9._L_ L [@@9_L_  C/ @a!KO@' @a!SWD0 C3@@9_L_ևv_L_;M@ @_ @_T#[@ ATW@@[j;) T #+ @ !`ҡ!`AA Az !`90TW@@[j;)?T@ERƦrkT  > @K !`:K@B'C@B@ _@c@g@k@# '3@?@7@;@C@osw{_J_ @@ w{_J_: @_#T#c@@TA! C3 @K`D` @@ sw{_J_c@? B T'`5} '@K@A @}$$% @f5#(C}c@ T 簄!@g@  c_@#?@T C'@K@}% c@g@_@`5| {@G7A!"@_@|B!@?T CG@|W@[@K@c@3@ W@[@K@c@3@ |G@(T h FT# ˨ C @?!}) ? @ T CG@W@|[@A@  ?#@ 7G@_C@C@ }B@?@_ T/ C/@G@}`5 3}/ /@? }@;G@_T rC/@;@c@3@K@ CT} T(  ˩ *@_J(@T+ SC/@;@c@3@K@+@kos_J_B#hb8hb8c#h"8B_ +TBpB u9 @_&T#k@@TA! C7"' @K `OS`2 c@K@@{_K_'@?JT/`5} }/@K@A @}$$% Х@f5#A`}k@ T  簄!@o@  g@ ? T3 BK@3@}% Хk@o@g@`5| E@;o@_ Tg@_`TB@G7@Ccc#@G@7@cd ;Ҝ_T'@{ dT#K@ C@ }ư ?@?T BG@_@"@c@ |@?C@@? }A@?@T hB}A!"@!@? TP `5'@}7 @G7@K@'@@>{ @@{_K_քjT}ӿ T& ˇG @˥@T+ #BG@7@K@'@+@sw{_K_A$ha8Fha8c? +T a@!!|_*ha8ha8h!8!? +TcWAo}dAjA 78 @_iT# y_C_%8 @_T#с@/@C@;T @@37_E_\ 8"@c!T#$ @_)T#с@g@@;T#@;Tk@#o@'s@+/@7@3@;@w{_L_& 7"@#T#$ @_T#с@/@C@;T@@37_E_ 7"@c!T#$ @_T#с@G@#@;T@ @KO_H_ 7"@#!T#$ @_T~#с@A@p@;T#@;T@?@C@GK@W@O@S@[@_@_֡ J7"@T#$ @_T##@@@C@@E@T @F @AT ޫ@9#@@@C@D @ ӫ@9 @@#@C@@B@`T @9#9_C_7 @_T#с@'@#@;T@ @+/_D_@ 6"@#!T#$ @_)T#с@_@@;T#@;Tc@g@#k@'J+@3@/@7@osw{_K_  6"@T#$ @_T#с@'@#@;T@@+/_D_ 6"@#!T#$ @_T#с@7@C@;T @@;?_F_ i6"@!T#$ @_)T#с@w@C@;T#CC@;T{@+@/@37@?@;@C@_N_֊ 36"@T#$ @_T#с@7@C@;T@@;?_F_d  6"@!T#$ @_iT##@@@C@@E@aTA@@T @9#9_C_5 @_)T#с@@@@_A_" 5"@cT#$ @_T#с@A?@`@@@ C@G@K@@+@#@'@/@OSW[__G_ 5"@T#$ @_IT##@@@C@@E@ATA@@TA@@AT &@9#@ @@" @!@ @9#9_C_^5 @_T#с@'@C@;T @@+/_D_֘ A5"@#!T#$ @_)T#с@W@@;T#C@;T[@_@c@#'@/@+@3@gkos_J_b  5"@T#$ @_T#с@'@C@;T@@+/_D_< 4"@#!T#$ @_iT##@@@C@@E@aTA@@T z@9 @ @#@C @@B@?`T @9#9_C_4 @_T#с@'@C@;T @@+/_D_ 4"@#!T#$ @_iT#с@!W@P@;T#C@;T[@_@c@#'@3@+@/@7@gkosw_J_֬ U4"@T#$ @_IT##@@@C@@E@ATA@@TA@@AT @9#@ @@" @!@ ۨ@9#9_C_4 @_T#с@'@C@;T @@+/_D_X 4"@#!T#$ @_)T#с@W@@;T#C@;T[@_@c@#'@/@+@3@gkos_J_" 3"@T#$ @_T#с@'@C@;T@@+/_D_ 3"@#!T#$ @_ T#@  @3@@7@@ @5/@@/@X<_ @  @@bB" @@ "@@@@@;?CGK_E_`3 @_T#OS?9k  @1@ @b BT@@?0TX@?@T@@ @5@@@@@d@@@4` #@S@@_@_  ~|!)@#@@@@d@@@  #@+@@_@_c{@X@@[T@@cT@k`5@ @#@@@k@_w 9c@@@"<@#@@!D@{@w@#[@'_@+7?G@K@;@?@C@G@e@@} #@ο@@_@__@_ } @a! .{ #@@@_@_ }~ @a! `& #@@@_@__HTk9 &@9@! : k@@9`@h: k@@9@@@?HTk9 @9@| B "@! : k@@9@} B @h: k@@9@{ B @sW@@ O@@@?TOd5 @@#@O@h 8@L@OH@?"Tkg`5 @#@g@k@@oS` 8@@@@ @o@O@S@W@#s@'T+@/@3@ q3@@@@@d@@@4` #@@@_@_ @@@8'@+@@@#@'@e@@ } #@@@_@__@_@@@ @!!@l #@l@@_@_\. @_!T#_@@@_T_ !T"@y,R_k T!@9?q@ Td_A T"@;(R[r_kT#@y{Rk T;(R;Gr_kT#@y{Rk T;HRƦr_k T!@y{R?kTH_$T"@;([hi_T# @9\q T;(;Ghi_T# @9\qT;HһƦhi_T! @9?\qT)_HT;79 @9`_@;@! : 7@@9`_@ ;@h: 7@@9_@@_@p@l@#c _T"@#@!@c@ g@k@#@/@'@+@3@osw{_K_ @@ @!!GK_@l@p@OS #@@ w{_K_V@@ @@@D@@?C d  @@@ w{_K_@@c@ g@k@?#@'@@@@#@E@@?C7  @[@@ w{_K_osw_K_E- @_uT~#@@@ @@@D@@@`1 @#@@_@_@@@W,"TTkT"@hRr_kkT"@yR_kjT"@9_Lq<TP3 %@T@@;(R[r?kT@y{R_kT;(R;Gr?kAT@y{R?kT@@;HRƦr?k T@y{R_k T@"p@!l@#c ?T@@A@gB@cC c  @W@@ @5@A@5g@Ac@A@5@@@@}5@ _@_W@ @!!  @@@_@_[jR;(r?kT@yR?kT  @@"l@!p@ c z@@@"s@W@ e@!!@@@s@  #K@@_@_3@@@? @g !_ @kW@@g@@ !#@5@C@C@4D@@4A[[@ @@ @2k@ @`5#"4@ _@_W@Q !T"@[j;)_TG0T"@[j;)_GT"@ERƦr_k!GT  @@"l@!p@ c @@@W@ AT@@[j;)? T,0!T@@[j;)?AT@ERƦr?kT@ 4 @W@@ @5@@@@ @{4@@@v4@ @!!@ @@@C c@_@_@ |@!!@@@@  #b@@_@_֟84T"@hқ{j_T#@;(R[rkaT#@y{Rk`Thқ{j_hқ{j_T#@;(R;GrkaT#@y{RkThқ{j_hқ{j_.T"@;HRƦr_k-T"@y{R_ka-Tx@t@e@{/Ryrk!T)T_|@@/ @@G@S@@; @C p@ol@' J5 @W@@ @5@A@3/@A @5@AA@@3G@AS@A@5@AA@3;@A C@A$@5@AA@3'@A(@5o@A,A`o@3_@A0@5@@4@@w3@ _@_ - @||@"t@#x@  c@@@"{@W@ @!!@@@{@, #h@@_@_  @@"l@#p@ @@@"w@W@ G@!!@@@w@1 #-@@_@_@|@@+ @@K@O@@7 @? 57 @W@@ @5@A@2+@A @5@AA@@2K@AO@A@5@AA@27@A ?@A$@5@AA@2 ! A(@5@A,A`@2 !A0@5@@4@@2 _@_ @!!` @@@_@_)O@@ @@a@! @$@(@a4@!<@D@H@aL@!P@T@X@a\@a`@`@C9_ց @_IT#?@@' @/@+#c? Ԫ@3| !  C@G@/@'@+@# a @ @53@@3@1 KO_G_") @_)T#3@7@ /@;@?@D@#@CG_E_) @_T#3@7@ /@@@@;?C_E_( @_ T#` 3 @# ! @ @5#@#d#@" 1@ @5#@`#@17@;@ ?@ !`*@@@"@@'+` | #@@@KO_F_ր `C#@G _F_( @_ T#?@ @+@'O@K@#@'@O@K@+@Txd@@H*T#`d@@@@ @ ?@@@B@@/3P } c@H@@SW_G_ _G_ 6S 0( @_)T#` 3N @# !H @ @5#@#d#@" 0@@ @5#@`#@07@;@ ?@ c`u@@@"@@'+@/ #@@@ SW_F_#@C@A!,@G@;@ ?@ B` ?@@@"@@'+@. #@@@ SW_F_#@ !`KO _F_'z @_ T#р 7@ x@@@@@@E@@'+l( #@@@CGK_F_ @@@;?C_F_h' @_) T#;@?@ C@K@#@@@@@@@'+`| #@D@@GK_F_  7@ @@@@@'+ 3 #@ @@GK_F__F_' @_IT#9+'@d@;9 BB@9#@@d⸄@e_e6 0C9!'@d@ B>@9@@@+/39@O_D_7b_D_& @_IT#9+'@d@;9 BB@9#@@d⸄@e_e6 0C9!'@d@ B>@9 @@@+/39@_D_a_D_& @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9B!'@d@ B>@9@@@+/9@Ѓ_D_9@ȃ_D_ְa_D_G& @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9 '@d@ B>@9@@@+/9@_D_9@_D_ha_D_% @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9 '@d@ B>@9 @@@+/9@@_D_9@8_D_ a_D_% @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9j '@d@ B>@9$@@@+/9@_D_9@_D_`_D_o% @_IT#9+'@d@;9 BB@9#@@d⸄@e_e6 0C9! '@d@ B>@9(@,@0@+/39@_D_֗`_D_.% @_T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@94@8@+/9@r_D_Z`_D_$ @_T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9<@@@+/9@2_D_`_D_$ @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9b'@d@ B>@9D@@@+/9@_D_9@_D___D_g$ @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9H@@@+/9@_D_9@_D_ֈ__D_$ @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9L@@@+/9@`_D_9@X_D_@__D_# @_T#9+'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9P@+9@_D___D_# @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9N'@d@ B>@9T@@@+/9@܀_D_9@Ԁ_D_ּ^_D_S# @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9X@@@+/9@_D_9@_D_t^_D_ # @_)T#9'@d@;9 BB@9#@@d⸄@e_e6 0C9'@d@ B>@9\@@@+/9@L_D_9@D_D_,^_D_" @_IT ~#'+_9; 7Ad@;9 BB@9#@@d⸄@e_e6 0C9r7Ad@ B>+'@_9@> @A!* B 7AC@D@E@ @  @  BD@d5# $`>+@@@#@ cd@5@D@*+ c7A @D 37r @A!* B`7AC @D@E@ f@  @  @b5# "`*3@7@cT@@ @@#@ @3@b @g5ax$*7A@$ [W' @A!* B 7AC@d@c@ @@  @b5# "`*[@W@cT@@ o@@#@ @[@b @g5ax$*7A@$ SO @A!* B`7AC@d@c@ @(@  @b5# "`i*O@S@cT@@ %@@#@ @O@b @g5ax$H*7A @$ KG @A!* B7AC @d@c@ `@*@  @b5# "`*G@K@cT@@ @@#@ @G@b @g5ax$)7A$@$ C?I @A!* B7AC$@d@c@ @@*@  BD@d5# $`) B?@C@cT@@ @@#@@*@?@ Bg H@h5ax$) B7A(@D  @A!* B7AC(@D,@E0@ @9@  @b5# "`)@@cT@@ >@@#@ @@b @g5ax$a)7A4@  @@*` !`a7A"8@$4@D@d @e5b e`;)@@cT@@ @@#@@*7A @@H @i5Cx%)<@ ^ @@*` !` a7A"@@$<@D@d @e5b e`(@@cT@@ @@#@@*7A @@H @i5Cx%(D@$  @A!* B 7ACD@d@c@ ݵ@@*@  BD@d5# $`( B@@cT@@ U@@#@@*@@ Bg H@h5ax$u( B7AH@$  @A!* B7ACH@d@c@ @@*@  BD@d5# $`I( B@@cT@@ @@#@@*@@ Bg H@h5ax$#( B7AL@$ l @A!* B7ACL@d@c@ 9@@*@  BD@d5# $`' B@@cT@@ @@#@@*@@ Bg H@h5ax$' B7AP@ {w @@*` ! a7A"P@ Єd @e5b e`'w@{@cT@@ d@@#@@*7A w@@H @i5Cx%'T@$ soͿ @A!* B`7ACT@d@c@ @@*@  BD@d5# $`X' Bo@s@cT@@ @@#@@*@o@ Bg H@h5ax$2' B7AX@$ kg{ @A!* B7ACX@d@c@ H@@*@  BD@d5# $`' Bk@g@cT@@ @@#@ *@k@Bg H@h5ax$&B7A\@$ c_) @!!* B7AC\@d@c@ @ *@ BD@d5# $`&Bc@_@cT@@ n@@#@ *@c@Bg H@h5ax$&B7A73`@~T4 3@7@@3@7@@@ 37@@@/b@c@; @@;@ @ *@ BD@d5#$ G&B/@$D@5@$ $`@:&B3@7@cT@@ @@#@ *3@@B37g H@h5ax$&;?C_9'Az_@ _֔X_@ _*i @_T#9+'@d@;9BB@9#@@d⸄@e_e6 0C9'@d@ B>@9`@+9@pz_D_XX_D_ @C_)TT# 9O@d@;9"@cc@9@D㸄@E_E6 0C9O@d@}; B>+C%UANTW@ TaTS@"@{LR;r_kAJTO@,@0@(@  ۲@!9[_@9 X_I_ 9 W_I_ TS@"@қn{J_ETO@X@@@@ @!!*[_@9 W_I_ 9 W_I_S@S@ bB@@ TS@W@ bB@@ TS@@y;R?kT@9_qTO@@@@@ P@![_@9 գW_I_ 9 ՜W_I_; R?kAT@9_qTO@@@@  V@! [_@9 ՁW_I_ 9 zW_I_; R?k5T@9?q!5TO@@@ @  4@! [_@9 _W_I_ 9 XW_I_S@W@ bB@ @TS@@y{R?kT@9_qTO@$@@@@ ܱ@!!*[_@9 /W_I_ 9 (W_I_ֻ̍R?kA+T@9?q*TO@ @@@@ @!*[_@9 W_I_ 9 W_I_S@@y R?kAT@9_qTO@8@4@@@[_@9 V_I_ 9 V_I_[mR?ka#T@9?q#TO@D@@@@ |@!!*[_@9 V_I_ 9 V_I_S@W@ bB@{@, TS@@y[R?kAT@9_qTO@@@<@@@[_@9 դV_I_ 9 ՝V_I_{-R?kT@9_qTO@H@@@@ 0@!!*[_@9 ՃV_I_ 9 |V_I_֛.R?kT@9?qaTO@L@@@@ @!!*[_@9 bV_I_ 9 [V_I_S@W@ bBT@@TS@@yR?kaT@9_qTO@P@ ![_@9 8V_I_ 9 1V_I_R?ka T@9?q TO@T@@@@ İ@!!*[_@9 V_I_ 9 V_I_S@@yR?kT@9_qTO@\@@@@ @!!*[_@9 U_I_ 9 U_I_[/R?kT@9?qTO@@@@@ @!([_@9 U_I_ 9 U_I_W@O@B`@c4 @@@@9[_9 յU_I_ հU_I_GZ @_T#'+9 7@d@x7@d@ B?+'@9;@ ?@C@G@@@KO9'@8x_F_|U_F_ @_뉞T#G@ TTC@$@{LR;rkaTK@!9TO@@@@?@,0@`5(@" _G_ *' +K@/O@3+ ~ #ԩ@@SW_G_ TC@"@қn{J_aT * @K@!!*TO@@@dЄ@f5ey"T?@9@a5Xn" _G_' +K@/O@3+ ~ #@@SW_G_C@4C@ bB@@BTC@G@ bB@@TC@@y;R?ka T@9q T @K@!TO@@@dЄ@f5e"T?@9@a5" _G_ *' +K@/O@3+ ~ #@@SW_G_; R?kaT@9qTK@! aTO@@@@?@A@@`5C! _G_ *' +K@/O@3+ ~ #@@SW_G_; R?kqT@9?q!qTK@! TO@@@@?@@`5 `! _G_ *' `+K@/O@3+ ~ #@@SW_G_C@G@ bB@@lTC@@y{R?k! T@9_qT * @K@!!*TO@@@dЄ@f5e>!T?@9@a5$ 3! _G_' +K@/O@3+ ~ #J@@SW_G_ֻ̍R?k^T@9?qa^T*a @K@!*TO@@@d@g5e T?@9@a5   _G_ ,8  @@SW_G_ *' +K@/O@3+ ~ #@@SW_G_C@@y R?kT@9_q!T ;K@ O@"@@@?@ 4@`5#8"  _G_ *' `+K@/O@3+ ~ #@@SW_G_[mR?k!KT@9?qJT *ĸ @K@!!*TO@@@dЄ@f5eV T?@9@a5D K  _G_' +K@/O@3+ ~ #b@@SW_G_C@G@ bB@q@TC@@y[R?kT@9_q!T ;K@ O@@@@?@ <@`5#@"  _G_ *' ` +K@/O@3+ ~ #@@SW_G_{-R?k! T@9_qT *, @K@!!*TO@@@dЄ@f5eT?@9@a5H@ _G_' +K@/O@3+ ~ #ʦ@@SW_G_֛.R?k.T@9?qa.T * @K@!!*TO@@@dЄ@f5esT?@9@a5L`h _G_' +K@/O@3+ ~ #@@SW_G_C@G@ bBT@@TC@@yR?k!T@9qTK@ !!T?@9!!@5O@PO@" _G_ *' +K@/O@3+ ~ #7@@SW_G_R?kaT@9?qT *N @K@!!*TO@@@d@f5eT?@9@a5T _G_' `+K@/O@3+ ~ #@@SW_G_C@@yR?k! T@9_qT * @K@!!*TO@@@d@f5eT?@9@a5\ _G_' +K@/O@3+ ~ #@@SW_G_[/R?ka T@9?q T( @K@!(TO@@@d@f5eHT?@9@a5= _G_ *' `+K@/O@3+ ~ #R@@SW_G_G@C@?@C`@q@@5?@#`?@" G@C@B`@c4 @K@!!@5O@ O@ _G_ @_3T##9/@d@r/@d@ B?#@97@? @T?AT3@@{LR;rk-T!!@a5(m@ҽi? aT3@@қn{J*T!!@a5XYҩU3@K3@ bB@@T3@7@ bB@@ T3@@y;R?kT@9qT@5/@+/@z&; R?k!T@9qT/@_@`5_i; R?k T@9?q T/@|!!@a5 `W3@7@ bB@@T3@@y{R?kT@9qT@5/@$/@ 6̍R?kT@9?q!T@5/@ /@$3@@y R?kT@9qT/@4!!@a58[mR?kT@9?qaT@5/@D/@ 3@7@ bB@C@,T3@@y[R?kT@9qT/@<!!@a5@{-R?kT@9qT@5/@H|/@@w.R?k! T@9?q T@5/@Lj/@`ҹe3@7@ bBT@@T3@@yR?kAT@9qT@5/@PI/@ҘDR?kT@9?qaT@5/@T7/@҆23@@yR?kT@9qT@5/@\#/@r[/R?kT@9?qT@5/@/@` 7@/@`@B4 9@q_E_N_E_r] @C_iTC~#@_@a5_2_|A`DEFG @5_ _|_|"_H@ @i5_(  _4I @j5_8  sokgc_[_<JWK SL@OM`KNGOCP?Q;@5_|_| _| _|     ?@;@  @@@@@@5@A@_ @  .@77@@@ @@@ @@@¸@@R\r+T:롷Ta?q pT?qlT_@@iRr+T *aT@/@3? T?@T? fTC@қn{J!eT̳ @7@@@ @@@BE@e5`B@@@5@X?@Q@Bag_@@C@{LR;rk^T9 @7@B @@@g@@@@@,0@5(_@s_@p `@f@0T3@/@ bB@Y@ T3@@y[R?kT@9_qaT>R @7@B L@@@"g@@@@ '@+@#@@'@Da@<!$@5@W@W@_@@{-R?kT@9_qaT * @{7@l@@ @@{@BE@e5B@@@5@HO@@Bҡ`_@@.R?kAHT@9?qGT * @7@4@ @@@@!%@e5u@  @5@LK@h@]_@@3@/@ BBT@@l T3@@yR?kT@9_qTR?k"" @7@B @@@[@5@@APG@@*@_@@x:T@9?qa:T *v @w7@@@ @@w@BE@e5 B@@@5@TC@@BW_@@B3@@yR?kT@9_qaT *< @7@@@ @@@BE@e5B@@@5@\;@@BaT_@@[/R?k,T@9?q!,T( @7@B%  @@@T@5@@Ak@@@_@@3@/@ BB@Մ@-T3@/@ BB@Ȅ@L T3@@y{R?kT@9_qaT * @7@@@ @@@BE@e5UB@@@5@$c@F@BL_@@̍R?k!T@9?qT* @7@B'  @@@M@5@@A g@@@_@@f3@@y R?kT@9_qaT>` @7@B Z @@@O@@@@ '@+@#@@'@I@4!$@58[@[@_@@,[mR?kT@9?qT *( @7@z@@ @@@BE@e5B@@@5@DS@@B!I_@@3@@y;R?kT@9_qAT @7@BB?  @@@"I@5@@Ao@@}@_@@; R?kT@9_qT; R?k@7@ @@@H_@@AT@9?qTs@7@ @@@J_@@/@@@7@ @#@@@@K@3@ /@R_@@  @a!:0@ c@N@@_@C__@C_ * A!@ *@@_@C_"B* B@@  @@_@C_"B* B` @@d@ @@_@C_"B* B` @@ ͞@@_@C_ * A!@ @@_@C_ * BB@ @@_@C_"B* B @@ p@@_@C_ * `A!@ Q@@_@C_ * A!@ 2@@_@C_"B* B`@@ @@_@C_* A!@ @@_@C_B* B@@ ՝@@_@C_B* B`@@d@ @@_@C_B* B`@@ @@_@C_* A!@ x@@_@C_B* B @@ Y@@_@C_B* B @@ :@@_@C_B* B`@@ @@_@C__@C_H0| c@@@_@C_@@,6 c@@@_@C_ h @_9T ~#OS_9C## ~T#y @* |@{  @w@W{@| S@w@W@c@C@?@? Txc@@ )* /TS @@T_Os !@@#@w@W@S@?@_@O@ )*s@Kh @5|Jh$  : @@ !)Tc?C@@A@ @s@K4# @K@!"@5s@ s@o  k@ !  1e@ @" BC9"k@@ @c5!/ H@k@"@#@$@! @_TB/@_B!aT{ {@/@_9OA_@ _o@@?@;oD@gE@GT"k@A"k@g@ G@f!k@A! ^!4# g@G@@@@@ۏRr_k!TB T @["@3!@7k@D"@@@[@ 3@7@@@k@ *!k@A}"k@#B   @k@@ @cT  99d@@ @˿KTca_T;@!?@_LTAg@G@ M@!*5` @9@@C_9OA>_@ _M*  J 68 62 6, nF_@ _ / @_ T~#A@G @ c; =@@@G@G[" @@? @@WB6 @|[@!8@@B  ?@@@AC@B @@@@3 @@ C 37;_@_@a@b@W@@WGA@@{ (Tl%T ! T@y,RkT@9q!T !T@@A@;B@C c @{@@@5@A@C;@AC@A@5@AA@5 c/$8* ~ Y@@ C 37;_@_T `%b~@T@@;(R[r?kaT@y{R_kTW@@@G@A!;(R;Gr?kT@y{RkATW@@@G@A@@;HRƦr?kaT@y{R_kTW@@@G@A[jR;(r?kT@yRkT:- @! G@@@@@bG@@@@  @@ C 37;_@_A@@_T#@[jR;(rkAT#@yRkTo 2 @o@@@5@A@A @A@@~ @!P c@@@A!@  c@~@@ C 37;_@_ c@21AT@hRrk!T@yRkT@9Lq#T@[j;) T0T$T@;([hiT @9\q GT;(;GhiT @9\qFT;HһƦhi끘T @9\qDT0T@[j;)T@ERƦrkAT:J @! G@@@@@bG@@@@  @@ C 37;_@_A@@k_ !T#@[j;)T*_0T#@[j;)!T#@ERƦrkT / @k@@@5@A@A @A@@ @! c@@@A!@d  c@@@ C 37;_@_ c`1A8'T@hқ{jT@;(R[rkaT@y{Rk`Thқ{jhқ{jT@;(R;GrkaT@y{RkThқ{jhқ{jzT@;HRƦrkAzT@y{RkyTT@hRrk T@yRk T@9Lq TA9#@;T@D8!T@hқ{jT@;(R[rkT@y{RkaT|0hқ{jhқ{jT@;(R;GrkT@y{RkaT}hқ{jhқ{jT@;HRƦrkT@y{RkaT{Sf@{/RyrkaT)T@@ AAd#@'@+@'@A!@ ` c@@@ C 37;_@_֠ -Ҩ @||A ! G@@u@@@bG@@@@  @@ C 37;_@_A@@ AAS@A !@#@'@+@'@A!@ ` c@Q@@ C 37;_@_ c.HYT9 {@9W@@@G@A @! : {@{@9W@@@G@A@h: {@{@9SW@@@G@AХ TE@F@G@aNT?7@@{TH@;(R[rkTI@y{R?k T;(R;GrkTI@y{R?k T;HRƦrka TH@y{Rk T  @{@@@5@A@7@A?@A@5@AA@ c-bH!T9 e{@9@! : {@[{@9`@h: {@Q{@9A@@ @7@?@@@#@ c0.W@@A@7@?@@@s B( @s@@@5@A@?7@A?@A@5@AA@1 c-A!@  c@K@@ C 37;_@_gW@`@@ ?  3W @ !Q @@5@#d@" I@@5@#`@"6 @A !`!!@5@ @A"@#@ @8 @w@AC@B@ w@d@@@BB @c?@@@@@P } c@Ǖ@@ C 37;_@_g@@@ ? @@3@ @w@@3@ @w@!d@@BB @B* ?@@@@@P } c@@@ C 37;_@_g@@@ A AA ?@#@@@@@@@X8  c@R@@ C 37;_@_cg@ @@ ? @@?T@hRr?kAT@yR?kT@9LqaT@g@ @@? @@? !T@y,R?kT@9q@c@ @@? @@@-c@ @@?@+@@@@@D@ c@@@ C 37;_@_OKc:@ @Л@@_@h_@ @@@@ ?@@@@@ c@@@ C 37;_@_ @+#@'@+K@/O@3 _@_(  c@@@ C 37;_@_A@@ s@!\ c@_@@ C 37;_@_LK @C _TC ~#A-T{A @i)Q @? @dP@@ T?`T@+ @@# _@C _9T@@ @@# _@C _ @@@@@@#  @ԓ@@# _@C _9 @;T?A@@ @@@@@#$ @@@# _@C _@ @? @@@Cc1@ ӧ@@@@@ |@@# _@C _@? T@xa @@@T7@;@'@#@+@/@3@7@@|Ah!C9?k@@@)*@j5! # c @ @!'+A@@/@3 d # @@# _@C _@a@&  3. @ !( @@5A#dA"  @@5A`A A !`@@ @@"d@@D @e*@?@@@@@@# <= } @@@# _@C _@wAsAoAgoAsA wAA@#@@@@@@@#@81 @@@# _@C _ @@ z@@"d@@D @e(@?@@@@@@# > } @P@@# _@C _@@ A T@@=A@@!@#c c@ ?@X@ @@@ c@$ A?#@'@@@#@@@# h@ @ @@# _@C _8@?@@ @@@@@@#> @@@# _@C _c @A@;T#c  @;T@@#@' A+@/@37;?eg@k@O@S@W@C@G@K@[@_@c@g@@@# @@@# _@C _{   @@@ @@@bB Bc \@@@# c B*' B`+@@/3l # O@@# _@C _@@ @i@@"B c  @@@# c B*' B+@@/3l # @@# _@C _@`@@a!l !@@@@# c B*' B+@@/3l # ې@@# _@C _A@ @@bB` BB0@@@# c B*' B +@@/3l # @@# _@C _@{@ @@@"B @B q@@@# c B*' B`+@@/3l # d@@# _@C _@TT aT @   ~@+@#@'@/@_@C _@ 0@@# _@C _֠ @ @@@@@_@C _@@#@@@'@_@C _AA 99 @/@ @? @!`TBTcT T T"T@@@C9C9@@@@@@@/@@@? @@B1T.@@@@C9C9@@@@@@@@@?@ ! @C9!@ AX@"B C@@ @$ A ?#@'@@@#@A@@C9C9@@@@@@@@@? @@B:!&T&@9@@@C9@@@@@@@@@@? @@bB(!"T-@,@@@@C9C9@@@@@@@@? @@bB*!T)@(@@@@C9C9@@@@@@@@?@ @B1?!T@@ T#@!@Tw? !Te@y,RkTe@9qT?Te@hRrkATe@yRkTe@9LqaT@C99 @w@`@5@a@@$ @%@e@e5d b`$@!@a@a5db@$@cT@@ A@@#@@@F @g5Cx!bC9C9@@@@@@@@JA T@@#9 @q@@# _@C _    5@@@@#@7 @G@@# _@C _ `6R `6L `6F `6@ `6:  @_)lT~#AMT A$1TGKC@A A@9A @@@@A!@T* @؍@@#'_@_{@ @!@#c c@ B@$  ?@@@@@@@d @@@#'_@_@X@{@"@$ @ c@$ @?#@'@@@#@{@ @$@@ @@@@{@@gcP@L@T@T@@!8@ ?@@ @@@@{@g@@@@c@ @@ H@ D@;W[o7  3n @a !h @@5@#d@" `@@5@#`@"M @A !`!"@5@ @{@"@#@  @@@B 7@;@cTo@BB1o@ @@7@| @+%i$ @5@ @{@@@c@@W@@[@g@#c~ T@G@K@T7҆e@@+ @@@#'_@_@@% @@@#'_@_@@ ` @ @|@@#'_@_@ | i@@#'_@_@@ 6 @N@@#'_@_@I@k @"@# @$ @C@@~#@'@+@3@/@$k@7@?,T@c@%5{@@;TOS  {@@O@S@@| @d5L d`9 _@_@JA  kCKG @?)@w @@? @!TBTcTЄT K@G@@C@@@?@@w@?@ @B1?T@@ T#@!@aT_s @_@`@5@a@[s@$ @!@a@a5d b`NG@$K@cT@4@ @@#@G@@&|ӧ Gh&A@f5#! $C@@@e?@@w@? @@K@G@@@ T?@@w@?@!4SG@@K@cT@B4@ @@#@G@@|Ӣh$@5@ @ C@@@?@@w@? @@ BT K@G@@C@@k@A?T@@@@@ @ӊ@@#'_@_ `6؏ `6ҏ  @_)$T~#@ @@?Tg1kGx @!G@@@k@@L { c~@@_@_@@OkGC@@KA@o  @K@! @@C@o@@ @ ƀ@@# ?'@+@'@@@@?TC@G@k@cC@4O@g@_ TZsO@ @!@@@s@&@ c@@_@_@c@@ @@@  T_C[{@@@@ @@#@'_+@/@3@;@7@_@C@!c@_ T=@SwW@ [@{@9@@@[@{@@@@@@. @@@_@_w@S@W@_@_ 2֎  @C _iTC ~#р ;A AĐ@@AA:K`6 @|K@!8@@B  ?@@@"AA@@* G@@ _@C _@@@?AC@d@c@$@? @@c ~TkoAsAw?@[@_AC@D@E @C@D@E@C@d@e@c@#'C@d4@e8@c<@SWOAd@A? @@@? @@A_TA m@9 h @@ _@C _A(@,@!@A A ?@@@@@@@ ` @@@ _@C _SA@A ?S@X@ @@@A A?#@'@@@#@@@80 @@@ _@C _SA$%TTA$@hRrkeT$@yRkaeT$@9Lq@+T'$dTA@;([hi?T @9\q`T;(;Ghi?T @9\q@T;HһƦhi?aaT @9\qaT@@@!! ?@@@@9c*?T@@ATOS@@@@#c @ ?@@@@9c*?T@@aT7 C@ O@8@@@ @#@@@@@@@< @@@ _@C _cg @ 7@@@@ @#@@@@@@@X. @@@ _@C _ c@/g@3@+GKCd  @@@ _@C _֠9  @@ _@C _8 ~ @j@@ _@C _֠} W@@ _@C _8$TA$@hқ{jT%@;(R[rkaT%@y{Rk`Thқ{jhқ{jT%@;(R;GrkaT%@y{RkThқ{jhқ{j;T$@;HRƦrka:T$@y{Rk9T@@@!! @?@@@@9C@  E@@A[ - @||[@!@@@" B  ?@@@@@# ~ @φ@@ _@C _  c@gh 9@ @@@@@AA @!4 ` @@ _@C _W`6 @|W@!@@@B  ?@@@@@# ~ @f@@ _@C _@@@cgS@ @@ ?@ @@T S@@@ ?@ @@T  8  1@@ _@C _HTAB9 j@9A! : Aj@9`Ah: Aj@9S@@@@#c @ ?@@@@9cc*?T@@T;S@@@@#c @ ?@@@@9 c'?aT@gaT_ C@ ;@@@@ @#@@@@@@@\@ @@@ _@C _ ;?7_@x[ @@@ _@C _֠ 9  z@@ _@C _l  @a@@ _@C _֠9  N@@ _@C _S@@A @A?A@(@,@0@ci/@3@#@'@+@/@@@l@ @@@ _@C _GCS@ @@? @@? !T@yR?kT@9qAT@C@ G@U@#@@@@@@@* @ބ@@ _@C _@G@C@B _@C _  @@ _@C _( @_ T#/@3@ 7@@@@B@9qT A99.@@@?CG_E_ A99o@@@?CG_E_`(~ r@@?CG_E_d @_) T#р  @# !| @@5#@#@B9a97@;@ ?@a!@@@"@@'+} #@(@@GKO_F_#@@G _F_ @_IKT~#99@@ @@#+@'@aDTk @"@#@ ި@#@@@@@E@@ #@׃@@_@_OK{  3 @a ! @@5@#d@" @@5@#`@"y @{@K@ O@u@@@B@@L@ #@@@_@_k@@@ @ h@#@@@@@E@@. #@a@@_@_CwGk@$@(@,@ =@#@@@@@E@@2` #@6@@_@_WSk@0@4@8@ @#@@@@@E@@@ #@ @@_@_?;s ՠ " @o@S@ W@@o@bB BB @@@"B* B`@@l cɂ@@_@_w@C@ G@@o@"B c @@@"B* B@@l c@@_@_ @o@BBl "@j@@@"B* B@@l c_@@_@_k@ @@ @@o@  `@F@@@B@@  #@.@@_@_s@;@ ?@J@o@B @B @@@"B*b B`@@l c@@_@_E9 k@@@@o@PT@`5L`o@_@_ @! #@@@_@_ @_T#7@9!"@9@[|@k @_kaTd!I;@?@ 7@@@ @$@T+`  @@#@7@A !$@d5CD @+@$${Ӧ ƀFh$AC@$@5%G@" " '"`G@$ ա!!@9B_c4I_F_8 @_T#3@ @'@"@#@$@! @7@ ?_D_ @_T#7@@@;@?@ C@G@K@O@S@?#@'@W[_F_ @_T#@@ @5@ " @_A_ @_T#@@ @ @5@ "@@_A_@@@ _@@ @@ _ց @C_T#`ʑ @;  !3 @7a ! @@57@#d7@" X@@57@#`7@"L$ `;@@d5 AS@W@ [@`0>@@@@@?C` @R@@_c_I_;@@@O@!%@e5 @ @# c@@@  @#@@@@@@@?C @@@_c_I_O@ !!@a5@ _I_T @C_T#?C?9S  ՠ1SI@ @ B/@!  6/@@ @c5!+ Ǔ@/@"@#@$@! @_TB+@_B!aT3  3@+@SW[ ?9?@n_I_ @6n հ*_I_GN@@ @$@ _@(@,@0@ _@@@@ _@4@8@<@ _@@@ _@@@D@H@ _@@ @ _ @_DT#G@ TTC@$@y;͎Rk:TK@! TO@@@@T?@@`5K@'O@+*/` 3` #~@@SW_G_ !TC@$@y;,RkT%@9qATK@! TO@@@@T?@ $@`5WsSK@'O@+*/` 3` #~@@SW_G_֛.Rk*T$@9qA*TK@! TO@@@@T?@8<@`544K@'O@+*/` `3` #L~@@SW_G_C@$!TC@"@Nl_!T" @9_qA!T K@ O@z@@@?@ @`5#" K@'O@+*/` 3` #~@@SW_G_(!TC@$@{,LT%@yRkATK@! TO@@@@T?@,0@`5(@K@'O@+*/` `3` #}@@SW_G_[{,.T$@ynRkTK@!0TO@@@@T?@DH@`5@JfFK@'O@+*/` 3` #~}@@SW_G_, TC@"@΍Nl_!T"@yR_kT"(@9_qAT K@ O@@@@?@ @`5# "`  _G_K@'O@+*/` 3` #5}@@SW_G_C@?@C@ 3N @#A !H @@5#@#d#@" @@@5#@#`#@"$ `?@@`5 `G@C@C@B @cd@ K@O@`?@@SW_G_ @_)T~#9## c  ՠ17F@ @ Bh"CcP>B@B*b B@@  y@@## /39A_@_  9 @#B0 @@@1@A@C@D@@ @?cYTb 4@@ C@@k@Co@cT@`@ @@#@@@k@G !'@5B{G`h" Cc` B@@ !AF8@G4@H<@M Tgc  9!@!@ M@@ #* v@@@b@A@C@D@@ @?KTb Ɯ@@ @@c@Cg@cT@`@ @@#@@@c@@ !'@5B{h" cB@@ !AF @B@ _[BB@ @@@@@@_T_@[@@H ~@! 8  @@@[@C_@cT@`@ @@#@@@[@g !!@5A{BBt:h! Cct:8B@5GC ~@!9@C@G@c2 # @ 9 ! BB8@C@ T@C@@0 @#x@@## /39A(_@_B*b B`@@  w@@## /39A_@_B*b B @@  w@@## /39A_@_B*b B@@  w@@## /39A_@_@@% @w@@## /39A_@_B*b B@@  lw@@## /39Aq_@_B*b B`@@  Fw@@## /39AK_@_ր @ A!8@@@ @c5!7 g@@"@#@$@! @_TB7@_B!aT @7@#'+c 9A _@_"@cC@?#@$@%@& @_MT @ "B-@@@ |@!*@@ |@!* @ cx=~?@C@? Tv @6{ !_@_ @_iT#B@A @'@"TC{Dhdc@+@"TA{@h`!@ Z@য়c9_D_օ I @C_ɌTC~#Ѡ  @ !3~ @A !x @@5@#d@" p@@5@#`@"  `@8@f5<@@ @`.@@@"@@3 c@v@@_@C_*+ @@"@#@$ @ B:̤@@@"@@+@ c@u@@_@C_@@@ @@@ @#@@@@@%@@ c@u@@_@C_?;  3ʆ @A !Ć @@5@#d@" a@@5@#`@"U @@;@ ?@Q@@@"@@,@ c@eu@@_@C_@@@P@?%T  3z @A !t @@5@#d@" l@@5@#`@"@Y @ !`BC@5@ @  3D @A !> @@5@#d@" 6@@5@#`@" @@C@@DD@EH@ ʣ@@@"@@4@ c@t@@_@C_@ !` @@@@"@@  c@t@@_@C_@P@L@? T  Ә@@@ @#@@@@@%@@ @ c@t@@_@C_@ @@@"@@D@ c@gt@@_@C_@@$D@%@@&H@T1 @@#@@AH!$@d5C@D@&D| @+h&@5@ @ (@$@?T7v@@@T  A@@@ @#@@@@@%@@@ c@s@@_@C_@ $!$@d5@@ @@T  @@@ @#@@@@@%@@l  c@s@@_@C_@,0!$@d5(@u@@@@T  ×@@@ @#@@@@@%@@7  c@ys@@_@C_@!$@d56@@4@0@T  @@@ A@#@@@@@%@@8@ c@:s@@_@C_@8<!$@d54@@ Є`$@5@"" @"B9B@;@ ?@@@@@@PAT@a5CLA`@8@<@c8 y@ @@?C@9@@@<@8@@!!@a5 `D@L@P@@@ @@@"@@  c@r@@_@C__@C_@c`3@@+@/  Х3ȃ @A !ƒ @@5@#d@" _@@5@#`@"S@ @ !`BC@5@ @@ !`+!@@+@ /@;@@@b@D@@@H@&T1 @@#@@AH!$@d5C@D%D%| @+h%@5@%" @3@!7@T@3@x @!@@@@8-@ r@@_@C_ @C_IT#{@@! !@@ B@$ ?@@@@@@ @@OS<` c@q@@_M_G?``@! @?@@@ B*WB B[@@_c` q@@_M_ cs@ w@ĕ@@@ @#@@@@@ @@OS @ c@zq@@_M_'+K@ @G@!"@5?@ ?@/C'@ +@$@5K@@K@" v @ !@+!!@5C@ C@@ gw@o@!!` A!0@@@ B*WB B [@@_c`l q@@_M__M_  @_;T~#9@CD@4TC@@AD@?8T`@a@C@D@D1k? Հ@! !@ B@$ ?@@@@@d@@3` c@p@@_@_@X@@"@$ @ c@$ @?#@'@@@#@d@@$) c@p@@_@_Sw?@@k@ ?S@X@ @@w@ c@$ @?#@'@@@#@d@@ c@cp@@_@_@8@?@@@ @@@e@@>` c@?p@@_@_GoC?@ @k@? @@@ @@@@@W@{@[ @(@,@0@@K@s@O @4@8@<@@_@@c t @7@g@;c1Y9@ @ B^B/@3@/@b@@ @vh@@_@_?@ @k@? @@B@TҁT @!@@? @@@"@!@  @Fh@@_@__@_@ Xy @ ! @@by@@@@@@@3   h@@_@_@@@!@ ? @@[W@!@@ ?'@@@@@ @o@#@'@+@'@dBB@, @g@@_@_[@[swC@gЄ5e}c {@w@"@#@! @ c@[@A!C  ԁ@g@? T_S!5 {@S@_@#g@e c@B@?T$ İˣ_T 1s@@gB5#}c {@s@"@#@! @ c@ѯ@g@ H T_5S@ {@S@_@#g@e c@B@?C T$ İˣ_T @S@"K?T@5@ {@#@S@@{Ob {@K@O@_@_֠  g@@_@_(c@&$c@!  @_)T#`@a! '@+@2@@a !$/3_D_@ @_ @_i5T#{?T_9@ /@ -w @C||!@ @m@@ ! @ ? @@ @BC@ @`H@ЁRrkaTT#@ @( @!@a!)@5 iPMJ`;3R[˩rkaTH -T#@ @( @!@a!)@5 K2/,B@G@K@ #@Kf@@_N_C@ @@x@@@ @O@S@@W[ | c!f@@_N_ Հ0}/@ @" B?AT7 Հ0q/@ @" B?T# c`k7@gc_@_9@aA@_C#T3;@@ @ @@#@'@7@@A `@a5CD _9@?AT;@@@ @ @BA3@@!Ap@#@'@;@@A `@`5C@ _9w@@ @/@?@{@ @@@?@@@"@@GK  #@e@@@_9_@_9g@_N_/@@?@?@@@C@ 7@;@5o@9@_9_@_9g@_N_֠, Ne@@@_9_@_9g@_N_֠h6@ 6e@@_N_3@YP 6Bj 6@9@@@+/9@/_D_9@/_D_p _D_ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9@@@+/9@H/_D_9@@/_D_( _D_ @_IT#9+'@<@;9bBB@9#@@d⸄@e_e6 0C9q'@<@" B>@9@ @@+/39@._D_ _D_~ @_T#9'@<@;9bBB@9#@@d⸄@e_e6 0C92'@<@" B>@9@@+/9@._D_֪ _D_A @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9@@@+/9@._D_9@x._D_` _D_ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9 @@@+/9@8._D_9@0._D_ _D_ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9b'@<@" B>@9$@@@+/9@-_D_9@-_D_ _D_g @_T#9+'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9(@+9@-_D_֔ _D_+ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9,@@@+/9@l-_D_9@d-_D_L _D_ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@90@@@+/9@$-_D_9@-_D_ _D_ @_)T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9N'@<@" B>@94@@@+/9@,_D_9@,_D_ּ _D_S @_T#9'@<@;9bBB@9#@@d⸄@e_e6 0C9'@<@" B>@9@@D@+/9@,_D_~ _D_ @_ T#_9@<@,@<@" B?#@@a!!@5'@D '@_9@ -_C_M _C_@H@L@P@ _ց @C_iTC~#9A<@;9bBB@9#@@d⸄@e_e6 0C9A<@" B>@9@< o @!*" B AC@d@c@ d@.@ `@b5# "`X @s@@#@ccd@5@D@DccA@$ 7; o @!*" BAC@d@c@ Yd@*@ bBD@d5# $`bB7@;@cT@ @ r@@#@*@7@bBg H@h5ax$BBA@D :o @!*" BAC@D @E@ .d@`9@ @@b5# "`@@cT@ @ r@@#@@@@b @g5ax$A@ { n @*`! !` aA"@$@D@dD@e5b e`~{@@cT@ @ 8r@@#@*AD{@@H @i5Cx%W@$ ws n @!*" B AC@d@c@ nc@*@ BBD@d5# $`,BBs@w@cT@ @ q@@#@*@s@BBg H@h5ax$BBA @$ ok On @!*" BAC @d@c@ c@*@ BBD@d5# $`BBk@o@cT@ @ q@@#@*@k@BBg H@h5ax$BBA$@$ gc m @!*" BAC$@d@c@ b@*@ BBD@d5# $`BBc@g@cT@ @ Bq@@#@*@c@BBg H@h5ax$bBBA(@ _[ m @*`! ! aA"(@ddD@e5b e`;[@_@cT@ @ p@@#@*AD[@@H @i5Cx%,@$ WS ^m @!*" B`AC,@d@c@ +b@*@ BBD@d5# $`BBS@W@cT@ @ p@@#@*@S@BBg H@h5ax$BBA0@$ OK  m @!*" BAC0@d@c@ a@*@ BBD@d5# $`BBK@O@cT@ @ Qp@@#@*@K@BBg H@h5ax$qBBA4@$ GC l @!*" BAC4@d@c@ a@*@ BBD@d5# $`EBBG@C@cT@ @ o@@#@*@G@BBg H@h5ax$BBA;78@c~TD4 cit7@;@@cu7@;@@;7@C @@@3b@c@?$El @@?@ a@*@ BBD@d5#$ BB3@$D@5@$ $`@BB7@;@cT@ @ o@@#@*7@@BB7;g H@h5ax$ `@!@8@7@;@d v@7@;@9@$(_@C_ _@C_ @_T#A @B@'@TCx`d@c@*Td@c@+@BT@x`@@?T@@ >@য়c9_D_ 6_ 6_| A @_T#9+'@<@;9BBB@9#@@d⸄@e_e6 0C9'@<@" B>@98@+9@'_D_֌_D_# @C_)<T# 9O@<@;9"@Ccc@9@D㸄@E_E6 0C9O@<@};" B>+CYA6TW@ TaTS@"@{LR;r_kA2TO@ @@@  `@a!9[_@9 :_I_ 9 3_I_ TS@"@қn{J_-TO@0@@@@ _@!*[_@9 _I_ 9 _I_S@OS@ B@=@,TS@W@ B@=@TS@@y;R?kT@9_qTO@@@@@ _@!.[_@9 _I_ 9 _I_{R?k!T@9?qa!TO@@@@@ c_@!*[_@9 ն_I_ 9 կ_I_S@@y[mR?kT@9_qTO@@@@@ @_@!*[_@9 Փ_I_ 9 Ռ_I_[R?kAT@9?qTO@@@@@[_@9 w_I_ 9 p_I_S@W@ B@#=@TS@@y{-R?kT@9_qTO@ @@@@ ^@!*[_@9 G_I_ 9 @_I_֛.R?kT@9?qaTO@$@@@@ ^@!*[_@9 &_I_ 9 _I_S@@yR?kaT@9_qTO@(@a![_@9  _I_ 9 _I_R?k!T@9_qTO@,@@@@ ^@!*[_@9 _I_ 9 _I_R?kT@9?qTO@4@@@@ t^@!*[_@9 _I_ 9 _I_W@O@B8@Cc4 ~@@@@9[_9 թ_I_ դ_I_; @_T#'+9 7@<@%7@<@" B?+'@9;@ ?@C@G@@@KO9'@,&_F_p_F_ @_mT#G@ TTC@$@{LR;rkfTK@a!9TO@@@@?@ @@`5@ _G_*' +K@/O@3@+ ~ #W@@SW_G_ TC@"@қn{J_^T*h @K@!*TO@@@dDЄ@f5emT?@9@a50b _G_' +K@/O@3@+ ~ #yW@@SW_G_C@C@ B@;@L%TC@G@ B@z;@LTC@@y;R?kAT@9_qT.sh @#K@ O@@@@B*'" B +@@/3@h, ~ #'W@@SW_G_?@[9@@5#@@#@ _G_{R?kaIT@9?qIT*/h @K@!*TO@@@dDЄ@f5eT?@9@a5  _G_' +K@/O@3@+ ~ #V@@SW_G_C@@y[mR?k! T@9_qT*g @K@!*TO@@@dDЄ@f5etT?@9@a5i _G_' +K@/O@3@+ ~ #V@@SW_G_[R?ka6T@9?q6T ;K@ O@]@@@?@ @@`5#"- _G_*' ` +K@/O@3@+ ~ #BV@@SW_G_C@G@ B@Q:@,TC@@y{-R?k! T@9_qT*Jg @K@!*TO@@@dD@f5eT?@9@a5  _G_' +K@/O@3@+ ~ #U@@SW_G_֛.R?ka#T@9?q#T*f @K@!*TO@@@dD@f5eT?@9@a5$  _G_' +K@/O@3@+ ~ #U@@SW_G_C@@yR?k!T@9qTK@A!!T?@9A!!@5O@(@O@M _G_*' +K@/O@3@+ ~ #bU@@SW_G_R?k T@9_qTR?kF*vf @K@!*TO@@@dD@f5eT?@9@a5,` _G_' `+K@/O@3@+ ~ #U@@SW_G_! T@9?qT*-f @K@!*TO@@@dD@f5eT?@9@a54 _G_' +K@/O@3@+ ~ #T@@SW_G_G@C@?@C8@h@@@5?@#8?@"G@C@B8@Cc4 |@K@A!!@5O@ O@k _G_ @_$T##9/@<@N"/@<@ B?#@97@? @T?AT3@@{LR;rkTA!!@a5@5? aT3@@қn{JTA!!@a50!3@3@ B@e8@, T3@7@ B@X8@T3@@y;R?kT@9qT@@5/@/@{R?k!T@9?qT@@5/@/@ 3@@y[mR?kT@9qT@@5/@/@[R?kaT@9?qT/@A!!@a5{һw3@7@ B@8@T3@@y{-R?kT@9qT@@5/@ [/@ҚV.R?k T@9?qT@@5/@$I/@ ҈D3@@yR?kAT@9qT@@5/@(5/@@t0R?kAT@9qT@@5/@,#/@`bR?kT@9?qT@@5/@4/@P 7@/@8@BB4 {9@!_E__E_b @C_뉞TC~#@[9@ A!$@d5_|!_D@%@e5__[_EWFSGOH KI@GJ`CK?L;-@5_|_|_|_|    `7d @@@@ACcd@5@D@_ @@  E@77@@@ @@@ @@@‰@@R\r+T:롈Ta?qVT?qRT@[@@iRr+T*aT@/@3? T?@T? aLTC@қn{JKTc @o7@5@@ @@o@BBE@e5wBB@@@5@0?@h@BBҡO@[@@C@{LR;rkDT`9c @7@B @@@P@@@@@ @@5[@s[@6p @}6@ T3@/@ B@p6@, T3@@y;R?kT@9_q!T.ic @7@bB/ c@@@K@@5@@A@@[@@0{R?k7T@9?q7T*Cc @c7@@@ @@c@BBE@e5BB@@@5@_@@BBAG@[@@3@@y[mR?kT@9_qaT* c @s7@[@@ @@s@BBE@e5BB@@@5@S@@BBC@[@@[R?k)T@9?qA)T >b @7@bB ˾@@@H@@@@  '@+@#@@'@$B@A!$@5W@W@P@[@@3@/@ B@5@lT3@@y{-R?kT@9_qaT*b @k7@܀@@ @@k@BBE@e5BB@@@5@ O@@BBҡ?@[@@?.R?kT@9?qaT*Rb @g7@@@ @@g@BBE@e5BB@@@5@$K@@BBҁ<@[@@3@@yR?kT@9_qTR?k""b @7@BB @@@"<@@5@@A(G@@@[@@!T@9_qTR?k3*a @{7@?@@ @@{@BBE@e5BB@@@5@,C@r@BBҡ7@[@@aT@9?qT*a @w7@ @ @@@w@A!%@e5J@  @5@4;@=@"5@[@@o/@@7@ @#@@@@D6@3@ /@B@[@@P V @!:@0@ c@2P@@_@C_@@ L@ P@@5@ H"@@_@C_* A!@` O@@_@C_B* B@@` O@@_@C_B* B @@` O@@_@C_* A!@` O@@_@C_* A!@` O@@_@C_B* B` @@`d@ dO@@_@C_B* B` @@` EO@@_@C_* A!@` &O@@_@C_* A!@` O@@_@C_B* B @@` N@@_@C_* `A!@` N@@_@C_* BB@` N@@_@C__@C_H0| c@N@@_@C_@@ ,6 c@vN@@_@C_h @_ &T~#9 @1@ @ B TL@@! @ ? @  Հ@@x^@@a@@@BB@ @@@@@@ Հ@@ ]^@@@ @C9@@ 7@@G;c  O@J @a!OS;A@@WA["` c D@@  N_@ _֠$~ D@@  9_@ _7AB@S7@?@U @C?@! @@_@ A$ $@@ ?#@'@#@CA@@?Ts7S@G@?T/;c  S@|J @a!OS;A@@WA[ &@ c D@@  _@ _3Ac@ @@@' ATo3/k@@c R!@@@@@D@@@@ @(TB @@@@ @ k@#/A'@?+@o@s@? TC@@ k@/Az@@@b # c k@_/AcC@g@k@@os`@. @D@@  __@ _ A!!!@!5@@;T! ! @fn@@ @@  ;_@ _;c  Ac@ I@!.OS;A@@WA[ c C@@   _@ _Լ. `2H 6H+AAw+[WKGC_ A@;N@/ @? @! TB`TcT T TA!T;@@@?@'!%zJ@$G@@K@[@W@A'AC@@ A;@@@? @@$G@@K@[@W@A_@A A;@@@?@'a!NJG@@K@cT@/bB@ W@@#@G@/A|h$$@5'A 'A׻[@W@A_@AC@@ A;@@@?@ @B ?a%T@@$ T#@!@ATg T @g@` @5AaA@$ @!@a@a5d b`G@$K@cT@#`@ OW@@#@ G@#A'|( &h'@g5#" p[@W@A_@AC@@ A$2;@@@?@ @BB ?aT @@@$G@@K@_@AC@@ A;@@@? @@" BT$@K@[@W@A_@AC@@G@w@AT;@ @@? @@# GK  # @JM@@?$jT3! !&@93@?$@ T!$B;B@# Bd+ ~7e@@ H@a!*GK@@ # @ B@@  a_@ _# @@@@GK # @A@@  A_@ _     6F 6F 6F  T @_T#'@ @+@! @?@@@9BB:T @9c9_D_c9_D_@c9_D_ @_ T#+@ ;@?T+7@Ch`8qT ?@#O C@9Oq!T7@;@ ?@-@@@OSW_F_7@;@ ?@@@@OSW_F_6 DA@@OSW_F_6 @_T# VR @#7@;@ ?@ !o@@@"@@'+@@:` #@ A@@CGK_F_#@C_F_ @_T#р @99?@C@ G@@#o+@'@ T $@ @@@ S _ kos_G_ @"@#@$ @%@&@'@(@! @KOSW[_cgk _G_ @C_iT#O@S@ W@7@;@@@@@#@'@+@/@3@7@+@@?C``6 @@@@[_c_I_ #'+@/@3@[_c_I_a @C_&T#o@s@ w@Ce@#@@@@@% @@_c@$ @<@@@_M_O?C ` !TQ @W!NQ @ @5W@#<W@" @@O@?@ C@n@@@" @@_c 8{ @?@@_M_֠ W@ 5c@9_9{@@@'{@@ @d@#@@@@@% @@_c " ~ @?@@_M_K;7@@ @d@#@@@@@% @@_c 0 @?@@_M_/3G P @[7@ ;@!!"@5K@@K@P ?P @ ` @5W@abW@=/@a3@a @5G@abG@/[@$@&@'@TS2 S@@#@[@A!!$@d5CD S@% @`5x$_A9 9_M_# @_LT~#EE@A! @  !&"@#c  U@@@!!#@5cCc÷E@!7oso@  !&"@#c  U@@@!!#@5cCc:c ?D@@gkg@  !&"@#c  U@@@!!#@5c$Cc$n  @  !&"@#c  gU@@@!!#@5c$Cc$I - C@@_c_@  !&"@#c  :U@@!!#@5cCcw{w@  !&!@!!  U@@!!#@5cCc Հ@B !@e@@@@$"T[. R@@#@[@A!$@d5CͶ$@@5 |Ӂ!8Ah c8x#W@B@;W@G@3 Մ@ƀ Х@.e@@@@$"TS. JR@@#@S@A!$@d5Cr$@3@@5 |G@Ah G@_;@ T#~T!!(!L!`!t W@a@;W @?#@7 Մ@ƀ Х$@d@@@@$"TO. Q@@#@O@A!$@d5C$@7@@5 |?@Ah ?@;@T!!cW@B@;W@C@/ Մ@ƀ Хed@@@@$"TK. Q@@#@K@A!$@d5C$@/@@5 |C@Ah C@;@ T_@_ @_ !T#?@@G !;?@ C@C@@!G@;3R[˩rkTR[FrkT+R;rkT?@! `TR[rkT?@!7TR[FrkT?@!  TyЁRrkT?@! ToۏRrkAT?@!!  T@;3R[˩rk T?@ !- TXߙRr+T{/RyrkT?@!)TJR;r+T?@! T@ߙRr+T?@!:T6[R[wr+hTRr+AT?@! !TC[R[wr+!T?@!! T@$6RPr+T?@!`T[Rۑr+AT?@!;T@?@/C@3h  c@;@@OSW_G_!(@ ? @@+'BB@c 6b@@@@@9GKO _G_+@'@ A@!-/3-` c@;@@OSW_G_ @_T#7@9!"@9@[|@k @_kaTd;@?@ A7@@@ @$@T+ P@@#@7@A !$@d5CD 4+@$${ Fh$AC@$@5%G@" " "`G@ !!@9B_c4_F_, @_T#3@ @'@"@#@$@! @7@ ?_D_ @_'T~#@,@@ ? @@A? `T@ @9@_@_@ @@ ? @@7 @ @S?@ S@`@ 7@{@@@@@@W@[@@c @@ @`?_@_CS@ @@?@ @ A!@_cS@@@gC@k@@ :@@_@_@H@9 @`@@ @@@@@$+G@9"c@;T@ @@? @@!+@_ T';G@l+@TG@<?S@(@@? @@  X@@!-_cS@@@g?@kh- >:@@_@__@__@_O@c@+@3O#@$@@e@@ @@ @ ?3@+@?T02 :@@_@_c@e@f@T3O/K @9@;@'@+@O@3@_LT@@@@! @@K@ /@@ ?_@_̩ @C_ T#o@@@9aҚ@9"@;TO@0@S@? @@o@D@9A@@!(@ ? @lTo@@@!@ ?@@+h 9@@_M_ր  9@@_M_3+o@@@!,@ ?@@@9o@{@ @@@U#@'@_M_3@+@ \?@A!*7;`$ @H9@@_M_o@@@B@ @?@@o@{@ @@@/@o@/@@B(@@? @/@?T_M_K@@@ _ @_T#@@ @5@ " @ɱ_A_@@/3_ @_T#@@ @5@ "`@_A_˨@@/3_ @_T#@@ @5@ "@_A_@#@'@/37_ @_T#@@ @ @5@ "@[_A_ @_'T# I @K||a !!I @G!I @@5G@#<G@"- K@@f5 "c@g@ k@g@@@ @@OSH) c@38@@os_K_K@@@_@!%@e5 `@@@A@ C\@@@?9c?9?jT/+C? @@9+@/@C@ \@#@@@@@ @@OS`D> c@7@@os_K_C/+ c c!H @G!H @@5G@#<G@"_@@@  @@C@+@ /@G@f@@@ @@OS@  c@7@@os_K_G@y _@ @5G@""G@OK@ @@@ [@@@ _\@#@@@@@ @@OS  2` c@X7@@os_K__@ !!@a5 _K_< @C_iMTC~#{9 @A !@$ @@@@9@d@e @f@g@ '@+@@@#@@'@&@@sw?` @6@@9@@@?_@C_[okK@ @@ ? @@ @3@7@c@ g@k@@?@@@@@?C:` @'@@_K__@`@9A3@@7@?@@@_@c@;@ o@s@w@#'D+@/@_K_3@@7@?@@@_@c@;@ o@s@w@#?'@+@_K_ h6@ &@@_K_ @_IT#@@@?@@ @@#'+/_C_ @_I)T~#ѿ:@@5a!@#bB@Wa!@#~TbBcccc(ccLcc`cctC@@'C`@/a@B7 @?!@cd@5/@ /@ `@@c( M@ !BC@5?@ ?@B'@T `_cccgkccoscc'w{C@@'C`@+a@#B$7 @;!#@cd@5+@ +@ @@@c( LM@ !BC@5;@ ;@B'@T `xGKccOSccW[#C@@'C`@3a@B6 @7! @cd@53@ 3@d @@@c( L@ !BC@57@ 7@HB'@ T @@@!( `8L@ !!!@5 !  c $_@_J @_)T#@@A @ @@#_C_ @_)T#@@A @ Ż@@#_C_ @_)T#@@A @ @@#_C_ @_)T#@@@!( 7@;@NK@@@@9! @ ? @@@@?CGK_F_7@;@ *@!.'+T1 #@$@@GK_F_ @_IT#@@@?@@ @@#'+/_C_ @_I)T~#8@@5A!#BB_A!#~TbBcccc(ccLcc`cctC@@'C`@/a@B5 @?!0@cd@5/@ /@ @@c) K@ !BC@5?@ ?@B'@T `_cccgkccoscc'w{C@@'C`@+a@#B,5 @;!.#@cd@5+@ +@ @@c) TK@ !BC@5;@ ;@B'@T `xGKccOSccW[#C@@'C`@3a@B4 @7!-@cd@53@ 3@l @@c) J@ !BC@57@ 7@PB'@ T @@!) `8J@ !!!@5 !@ c@,_@_R @_)T#@@A @ @@#_C_ @_)T#@@A @ A@@#_C_ @_)T#@@A @ 5@@#_C_ @_)T#@@!) 7@;@VI@@@@9! @ ? @@@@?CGK_F_7@;@ (@!.'+T1 #@"@@GK_F_Ò @_i T#OS_9 3Sg@O@_9/@Ag@o@_MT/k@xa7_@d@c@? @7@;Gg@?C @@9b!@`T_9O@_K__9O@_K_ _K_q   _ %  _ց @_ T#х6@@5A!#BBx6@!n3 @!h3 @@!5@#@"BBA @A @BBS6@@5A!`#BB`F6@@5A!#BBޚ96@@5@BBњ_D_ @_)T#с@@@@_A_6" ߑ"@cT#$ @_)T#с@@@@_A_" "@cT#$ @_IT#с@@ `8_A_! "@cT#$ @_IT#с@7@ ;@?@ C@G@K@w@'@@#@+@OSW[__F_! n"@T#$ @_IT#с@7@ ;@?@ C@G@K@O@S@W@#ɼ'@+@[__F_֕! >"@T#$ @C_ TC~#с@@@;T#@;T[@g@_@c@k@_@C__! "@cAT#$ @_)T#с@@@@_A_>! "@cT#$ @_ T#с@G@@@@ K@O@S@W@[@#'@3@+@/@7@_cgko_H_! "@#T#$ @_T#с@?@@@ C@G@K@O@S@W@#[@'_@+]/@3@cg_G_  z"@AT#$ @_iT#с@!@@@! @ ? @@#'_C_Y"@T#$ @_iT#с@!@@@!@ ? @@#'_C_9"@T#$ @_iT#с@!@@@! @ ? @@#'_C_"@T#$ @_iT#с@!@@@!@ ? @@#'_C_"@T#$ @_iT#с@!@@@! @ ? @@#'_C_ُ"@T#$ @_iT#с@!@@@!@ ? @@#'_C_"@T#$ @_iT#с@!@@@! @ ? @@#'_C_"@T#$ @_iT#с@!@@@!@ ? @@#'_C_y"@T#$ @_T#с@7@"#@;T@@;?_F_֬ U"@!T#$ @_T#с@7@"#@;T@@;?_F_ֈ 1"@!T#$ @_)T#с@7@"#@;T@#@'@;?C_F_b  "@T#$ @C_T#с@ao@@;T#@;Ts@+w@/3@7@;@{_M_. ׎"@caT#$ @C_T#с@ao@@;T#@;TT+@7@/@3@;@sw{_M_ "@caT#$ @_)T#с@7@C@;T@@@;?C_F_ {"@T#$ @_)T#с@7@C@;T@#@'@;?C_F_֪ S"@T#$ @_ T#с@@@@@?@@ @@#'+/_C_փ ,"@T#$ @_ T#с@@@@@?@@ @@#'+/_C_[ "@T#$ @_T#@@#@C@@E@?T @9 @@#@C@ @B @?`T @9#9_C_͍ @_IT#с@@#@ @? @@'+_C_"@T#$ @_IT#с@@#@@? @@'+_C_"@T#$ @_iT##@@@C@@E@aTA@@T &@9#9_C_i @_iT##@@@C@@E@aTA@@T @9#9_C_E @_IT#с@@ ~_A_ց *"@cT#$ @_IT#с@@ `h" @_A_a  "@cT#$ @_IT#с@@ @_A_A "@cT#$ @_IT#@@#@C@D@@?T @9` @@#@@ @u@9#9_C_ @_iT#@@#@C@D@@?aT @9@@#@C@D @ @?T H@9@@#@C@D@@?T ~@9 @@#@C@B@@?`T n@9#9_C_q @_ T##@@@C@@E@TA@@TA`@9`@9 @ @9#9_C_H @_ T##@@@C@@E@TA@@TA`@9`@9 @ @9#9_C_  @_IT#с@@#@ @? @@'+_C_"@T#$ @_IT#с@@#@@? @@'+_C_"@T#$ @_IT#с@@#@ @? @@'+_C_Ƌ"@T#$ @_IT#с@@#@@? @@'+_C_"@T#$ @_IT#@@#@C@@E@AT ~@9@@#@C@T @A @?#9_C_v @_T##@@@C@@E@T @9 @@#@C@ @B @?`T @9#9_C_I @_IT#с@@#@ @? @@'+_C_."@T#$ @_IT#с@@#@@? @@'+_C_"@T#$ @_iT#@@#@C@D@@?aT @9@@#@C@D @ @?T @9@@#@C@D@@?T @9 @@#@C@B@@?`T @9#9_C_ @@@C@?TA @9 @9 @c9_c9_ @_T#=@%@@@$@T+6 //@@#@BB%A!"@5DЄ%BB%R+@ DЄ%@ @d5Ex!A_F_h @_!T#@ 4+ @+@A!a!, !9v+ @'}!!!k+ @@`A! a'@ BD@d5#$@ 9U+ @# B"BJ+ @@`A!@ a#@ BD@d5#$@94+ @ !H !!)+ @@`A!L a@ BD@d5#$@9+ @A!!!+ @@`A!< a@ BD@d5#$@9* @!! !!* @@`A!` a@ @b5#"@~ 2* @ 4`!"@5'@db '@k`$@5#@d b`#@``$@5@db@U`$@5@db@J` @5@`$b @?+@`d @5\ H1@ c -7_F_S @_T#=@%@@@$@T+6 -@@#@BB%A!"@5D%BB%+@ D%@ Є@d5Ex!_F_ @_T#@ 4.* @@A!!1@@!!5* @@5@a@a @A @@TX@`5P'_D_Ɉ @C_7T#@ 4) @C @bB,c # cc2#c) @@`A!a@C@A AЄ@e5CE@f  ) @?@A!!!) @@`A! a?@ BD@d5#$@D `, @@d=;#@'@?@ @b5#"'@ 9  Bx) @;A! !0~8A!24  !b) @7 !H !!W) @@`A!L a7@ BD@d5#$@B $D@5Cc|#$Cc|ސ@ 9 B0) @3AB"B%) @@`A!< a3@ BD@d5#$@B $D@5Cc 0#$Cc 0@ 99( @/}a!!!( @@`A! a/@ BD@d5#$@BD$D@5c4#$c4z  ( @+bB| "B( @@`A! a+@ BD@d5#$@XB$D@5|$$c|IB 8@@5@ 4 Cc ; >( @ :`!"@5?@db ?@(`$@5;@d b`;@`$@57@db7@`$@53@db3@ Є4d $@5/@d$b /@`( @5+@`,b`+@C@`d @5\ H@ c ݏO_I_> @_ 'T#@ 4"( @; @bB*#c( @@`A!(a@;@A AЄ@e5CE@  ' @7@A!!!' @@`A! a7@ BD@d5#$@ `* @@d=9#@'@7@ @b5#"m@ 9  ' @3A! !0~8BB24  B' @/ !H !!' @@`A!L a/@ BD@d5#$@3B $D@5Cc|#$Cc|$?9  v' @+a!| !!k' @@`A! a+@ BD@d5#$@B$D@5|$$c|B 8@@5@ 4 Cc  "8' @ :`!"@57@db 7@ю`$@53@d b`3@Ǝ`$@5/@db/@` @5+@`b+@~;@`d @5\ H@ c G_H_ą @_T#=@%@@@$@T+6 G*@@#@BB%A!"@5D%BB%j+@ D%@ @d5Ex!Y_F_ @_T#@ 4& @@A!A!@R@!5& @@5@a@a @#A @@TX@`5P'_D_9 @_T#K@ TG@"@yR_k! T"@9_q T?@@@C@ Ж@@@@@@@@'+,& #@ @@SW_F_7@ @;@ ?@@@@@'+@ #@@@SW_F_ _F_G@ T"@[mRͭr_kA TcB9`@ ?@(@C@ ? @?@@@7@;@ C@ @@@B@@'+  #@@@SW_F_?@@C@ ?@@@7@;@  @@@@@'+0/@ #@}@@SW_F_ _F_ r@!*'+H< #@^@@SW_F_Q @_iPT~#?l% @wA!!"@!@_T+P@ 4]% @{}bB BR% @@`A!a@{@A A@e5CE@E@5cP'CEcP'، ,% @s~BBt:B!% @@`A! as@ BD@d5#$@B{$D@5c/#$c/B@#9w@d@e@f@g @C;T 7@@Eh/K $ @oA!$$!$ @@`A!| ao@ BD@d5#$@g< K@/@0}6#@'@o@ @b5#"K $ @k}bBL(B|B?$ @g @a!t4!$ @@`A! ag@ BD@d5#$@B$D@5c$#$c$ u 4 9\$ @cA!!Q$ @@`A! ac@ BD@d5#$@B$D@5cp6#$cp6؋  +$ @_A!| ! $ @@`A! a_@ BD@d5#$@B$D@5|$$c|B 8D@5Cc #4$Cc   # @[!!# @@`A!X a[@ @b5#"@x~$8@5D2$4"Cc2l$$@5B""c` 9# @W@A!!4!! # @ :`!"@5s@db s@<`$@5o@d b`o@1`$@5k@dbk@& 7d$@5g@dbg@ 4d %@5c@e$b c@ `(%@5_@e,b`_@`0 @5[@`4b[@d8 @5W@`<bW@}{@`d @`5\`4# @!!!@5w@{@ H w@̊{@"@Ȋ_@_S@@w@3S$@%@-TO7C97@O@@? @@@w@ }3@+@?TŁx @C_tTC~#9@@A"Bt: ~@@?!T@yhR_kNTAA!$$ @@ c* %O@@@kA@$$ @@ @!*@@@k@<@ #f@@_@C_@@ "BB@c 7@@@@9b@`@@@ @?cdTcB 5@@@h3O@@ 0@a!+O@3@ &@!* @ #@@_@C_"B'C@B@ @@@@#A!@2 @@@_@C_a! >? !6T@yiR_kaT@9@qTAA!$$ #@@ * XN@@@"@@@ @@@_@C_@@?T@KRr?k T@y;&Rka T '@@ K'@+@@@#@'@%@@  @}@@_@C_ @A!;?aT@R[r?kT@y&R?kAT@9qT '@@ `'@+@@@#@'@%@@.@ @A@@_@C_ a@a!@@ -@a!+ , `, &` @@@_@C_[jR_kT@9qaTAA!t4 @ '@@ .1@@@@#@@\' @@@_@C_!! .mR_kT@9_qTAA!t4 @@;!5 $ '@@@! @ ;@ ?@;@ @! S7B4 @AbBL( }@@ 3@@@ .@Q/@@@"@@9{ @m@@_@C_7@S@ `@@@@@@%@@4  @I@@_@C__{C@@c~T!4 c`(  /@a!- .` @@@_@C_c(@@@c@G#@!@C@@@_@ ?@@@gc@G@ @!*@@@g@@ #@@_@C_ "@wA!  @!!@5w@ w@s! !4;9" B5B@{@ _@@?Aa! A@9" B4s@% 4s@ S@@@@@$@@D@ @@@_@C_?[AA!| @@ "@@@@@@_@C_{W[9@`@9A! @o@KA"B @@9{9!,{@ W@@@ ?@[@o@K@{A99#@'@9A@@@?_@C_M _@C_}T @_1T# 42 @+BB>B' @@`!!a@+@A A@e5CE@EE@5cc?CFcc? 9 @'Aa!! @@`!! a'@ BD@d5#$@B$D@5cp6#$cp6| @#~a!8! @@`!!H a#@ BD@d5#$@[B~$8E@5%Х2%4 %#c2LB%Х2@&F@5c #&c ;  @!! @@`!!X a@ BD@d5#$@B~$8D@5$Є2$4$#c2 B$$D@5c#$c 9N @@!!!4 != @A!| !2 @@`!! a@ BD@d5#$@ȅB$D@5|$$c|B 8@@5  4 #c 2 @ 4`!"@5'@db '@ :d%@5#@e b`#@d%@5@eb@` @5@`b@ud @5@`$b @j+@`d @5\ H\@ c X7_F_~|m @_T#= %@@@$@T+6 !@@#@"B%A!"@5$Є%"B%&+@ $Є%@ @d5Ex!_F_<| @_T# 4Z @#@"BB$9@@[@!A @@5@a@a@a @ڄA @Մ@@҄@#@TX@`5PDŽ/_E_{ @_T# 4  @!!1|!$ A!p) !!H_C_{ @C_)0T# 4 @CBB<c @@`!! a@C@A A@e5CE@kE@5l EEcl \eE @5Cc>CECc>N  @?@"BB @@`!!x a?@ BD@d5#$@, @@<B=".#@'@?@ @b5#" b @;@!!!W @@`!! a;@ BD@d5#$@ @<!!d=H.#@'@;@ @b5#"Ѓ@ 9 ! @7Aa! !0~8!!24!9  @3!a!9 A!  ! @/A!| ! @@`!! a/@ BD@d5#$@B$D@5|$$c|vB 8@@5  4 #c h2 @ :`!"@5?@db ?@U`$@5;@d b`;@J`$@57@db7@? 4d$@53@db3@2` @5/@`$b /@'C@`d @5\ @!H@ c@!O_I_;zz @C_/T# 4Z @C~"B9cO @@`!!a@C@A AЄ@e5CE@%E@50FFc0ԂfF @5Cc|8CFCc|8Ƃ  @?@"BB @@`!!x a?@ BD@d5#$@ @ 9~B=",#@'@?@ @b5#"  @;@!!! @@`!! a;@ BD@d5#$@e  9~!!d=,#@'@;@ @b5#"H@ 9  @7Aa! !0~8!!24! @3BB""B Bs @/A!| !h @@`!! a/@ BD@d5#$@B$D@5|$$c|B 8@@5  4 #c 25 @ :`!"@5?@db ?@΁`$@5;@d b`;@Á`$@57@db7@`$@53@db3@` @5/@`$b /@C@`d @5\ !H@ c !O_I_x}_ @C_ T#@  @!!%#@!!%!@"B%B@<@BB@b58f3B<@ @!@?3@CB  9T  -@!!@-!@"B-B@#c c@3@ Є@$ #@#@@b@@7; @ !6 |@@@_I_@x @_ T#B@A<@B8@7@TCx`d@c@;@T@x`@@!T'+# @9`@'@+@#@ 4@`@য়9_F_ w @_)T#O@S@  'D+@/@@#@'@+@@@7;@ @@@W[_H_G@ @K@ ? _H_w @C_I T#S@TO@"@9_qT @  !5/3 2c @@O@`  #@@@@# `&W[ _I_+'O@S@ @!*7;'@@@?+@C@ l@@ _c_I_ \@@ _c_I_Nw @_ T#K@` aTG@"@9_qT`/f @!!#@ !6!!@a5  !G@ "@4#@@@@@# !'OS _H_'+G@K@  @!*/3+@`@7'@;X" ~ c@@ W[_H_8  @@ W[_H_v @_ T#S@ TO@"@yR_k!T"@9_qT# @3!8! !:!"@5B  `c |$ @ ! !"@53@ 3@j!!3 B`? . @/@+"B3@"@@#@+@cc@5/@ /@E! TO@"@[mRͭr_k!TG@K@ w#@'@@@#@$@@7;7 @I@@ _c_H_W[ _H_O@ : @!*7;H< @&@@ _c_H_vC @_(T#@7_@BB }b@9 F @@ T3 _@a! P@9 eC @@-T3_@a!H >@9 D @@T3ґ_@! A,@9 B @@ T3T_@A! !@9 sF @@MT3_@  @@ _K_ _K_K@c@/K @#@  @A!.OS 67@ #c|@c@M/@3@?lT _K_G@c@/G @#@  o @A!*OS 67@ #c|@c@"/@3@?lT _K_C@c@/C @#@  D @!OS 67@ #c|@c@/@3@?lT _K_?@c@/? @#@   @A!+OS 67@ #c|@c@/@3@?lT _K_;@c@/; @#@  @A!-OS 67@ #c|@c@/@3@?lTt @_)QT ~# #?A@"@#@! @  ߏ@@ @@@@@@K[9}A`IT"@ @* @@ )c@@@@@@e@@(9` @r@@CG ̯_@ _KG?Aa!H @@ [ C* YC@@@b@@D# @=@@CG ՗_@ _?A! A~@@ ) * A@@@b@@7 @ @@CG e_@ _?AA! }U@99?A"B @C@@O?Acc C7@@@O@ @#@@@@D0;@(@? @-T;@@@ ?@@a"@ {@@@@@c@BB@@@@p  c@@CG _@ _@@ @@a"@ ! @_#@'@@@ v @a!# @!! BB*BC@5@ `@&|z @ ! BC@5@ @|A9k 8@ < @a!#Z @!! A!(!"@5@ `@{A @ ! !!@5@ @{# c  /@ @ @@# '@+/@3@G@ K@@n+@/@@#@'@+@e@@ @@@CG '_@ _?C?A |  @@ c@@@@@@[9}@`_wT@?@ C@@! ,@ @& @@ @ @G   ׭_@ _ ѭ_@ _CG ɭ_@ _ ]@@CG շ_@ _CG կ_@ _ թ_@ _CG ա_@ _7rr @_iCT~#@@"@#@! @C P@@ [@@@@@@E>[9}A`i;T"@ @@@ `@@@@@@e@@(9` @@@ =_@_?C@! @"@@G@Cc C@@@G@ @#@@@@d03@(@? @!-T3@@@ ?@@@@dH @@a!H @@ * @@@@b@@D# @m@@ Ǭ_@_@@ b@@A!@ B @4#@'@"B- @@@?@ C@@s+@/@@#@'@+@@@$ @ @@ z_@_@: @!!@!"@5@@@y @a!#! @!! @!"@5@ `@y  @ ! !!@5@ @y !@?@ C@@r+@/@@#@'@+@e@@$ @@@ _@_;7@ | @@ A@@@@@@[9}@`WoCߨT@7@ ;@@! ,@ @@@ @ @%  յ_@_ կ_@_ է_@_ ;@@ Օ_@_ Ս_@_ Շ_@_ _@_p @_iT#@ @#?@!@B@C@ ? @@@?@`@7@ @;@#@? _E_o @_=T~#|{?T{9g @@"@#@! @gko# @`@!!> @s@@"@#@! @sw{ ފ@@ @@@@@@3[9@`@{9!" 2@@ 1^@@@@@@ @@_c(9` @z@@{9@@@@?_@_K;7@a!8 ~@@? a T@yR_k&T@9_q!&T`#z @[!8! !:!"@5B  `c x$_ @W ! !"@5[@ [@w@%@@@#@ c`?cc@5W@ W@w! ?T@[mRͭr_kTK@7@ ;@|'@+@@#@@'@ @@_c@ @@@{9@@@@?_@_G3S@!!| @@ r@@@@@@EOC[9@`@{9@A! A@93@G@1S@G@ Uv@@@@@ @@_cD@ @@@@{9@@@@?{9@@@@?_@_G3@a! @S@?@B @@99!,O@ C@@@ 3@G@S@?@A99#@'@@{9@@@@?{9@@@@?_@_{9@@@@?_@_  &@!*_c> @@@{9@@@@?_@__@_]_@_m @_,T~#9g @@@@ @gko# @@ @@@@@@e[9@`@9" ^@@ ]\@@@@@@ @@_c(9` @@@9@@@@?_@_ @#@'@#@ A!@W[<` @}@@9@@@@?_@_S! ! 9+@/@@#@'@+@ @@_c8  @L@@9@@@@?_@_  e@! W[@ c6 B~@S@9@;T@K@;6_@_C?OG@ @!swO@?@ C@&@! {@ c6 bB$G@K@;@_jTGxb9"#@;T@@D@  8+@/@@#@'@+@eBsBBw@@{T@ @@9@@@@?_@_9@@@@?_@__@_l @_DT~#CA! @Ƽ@@GACc C@@@G@ @#@@@@d- t@@@@@@e@@|!  C@=@@  ՗_@_3A@"@#@! @ R@@ ]@@@@@@E$[9}A`k!T"@ @@@ Z@@@@@@e@@(9` C@@@  ?_@_?CA!!| $@@ {@@@@@@E[9}@`WoCTAA! ! @9@@ @@@?@ C@@-@#@'@+@$ @! ,@ @@@ @ @;C ˦_@_A @@@!; Z* (<@ 3@$@! !@@ B@$ ?@7@Y@;@ 9@!*`0  C@%@@  _@_ր)@ @@  m_@_ g_@_  __@_ Y_@_  Q_@_  I_@_7@@ @ c@$ @@?@9 7@@@ ? @@@B; @@@ @@a"@ ! @#@'@B9 G@@@?@ C@@3@#@'@+@C @! ,@ @ @@ @ @AC ѥ_@_`= e@@  տ_@_Uj @_PT ~#C 'A! @@@['ACc C@@@[@ U@#@@@@JG@(@? @AGTG@@@ ?@@'AC@d@e@c @ 6@@ A@@@@@@A[9}A`cOA?T"@ @@@ X@@@@@@C@@ (9` C@@@+/ "_@ _WS'A! @@@A5O * |:@/'A!! @@ҘK ! @A! @@5@#<@"Kr@ K@@@@ c@d@ @8@@@C@@ p@ C@S@@+/ խ_@ _ @@a!#i @!! @!"@5@ `@q)Q @ ! !"@5@ @q7@ @@#@ ccd@5@  @qc!C?@@ @@A!@ B @"#@'@B7 z@@?@"C@cT@7@ f @@#@!@@?@&|Ӡh&!!@a5 q@S@ W@+@/@@#@'@+@@@ @ @@@+/ _@ _7;'A | ϸ@@ &@@@@@@%[9}@`kĠTC@7@ ;@@! ,@ @@@ @ C@ C  ՙ_@ _ Փ_@ _+/ Ջ_@ _@O@ $@!*@0  @@@+/ j_@ _ր)@ @@+/ X_@ _ R_@ _+/ J_@ _ @@+/ 8_@ _+/ 0_@ _gu @_iT#с@!/@@@! @3@ 7@;@ ?@@@?CG_E_g"@cT#$ @_IT#с@/@3@ @7@ ;@?@?@@@CGK_E_~g"@cT#$ @_T#'@+@"'@+@_TC|hc#hc%@@aT K@9@?@_ෟc9_D_Jg @_T#'@+@"'@+@_TC|hc#hc%@@aT @9@?@_ෟc9_D_g @_T#'@+@"'@+@_TC|hc#hc%@@aT @9@?@_ෟc9_D_f @_T#'@+@"'@+@_ TC|hc#hc%@@aT @9@? @_ ෟc9_D_fP@ P@ P@ P@ P&@ P*@ P.@ P2@ P6@ P:@ PB@ PF@ PJ@ PN@ PR@ PV@ PZ@ P^@ Pb@ Pf@ Pj@ Pn@ Pr@ Pv@ Pz@ P~@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ P@ PA PA P A PA PA PA PA PA P"A P&A P*A P.A P2A P6A P:A P>A PBA PFA PJA PNA PRA PVA PZA P^A PbA PfA PjA PnA PrA PvA PzA P~A PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA PA $%'()-.0:;<=>?@CEFIKLMOPSUZ"\`acdehikmopqstvxyz| ( + / < @ P [ % %!%%%T%d%f%q%s%v%w(") )() ***.*/+-+/, ---1->./. /*///i00010X0b0o0s0x255380: :]; > ??A3A4AMCNCcCfCoCsECGTLTLlLmLoLtLuMcMeMnNdNlNoOKOUPMPcPdPePfPiPoPsSTScSkSmSoTZTeToV1V2V3V5V6YiZlZpZs")":""" "}\&\'\D\E\S\U\W\"\\\a\b\d\f\n\r\s\t\u\v\w\x ])]:][] ]}aAambBdldpdqeEeqfFgegth1h2h3h4h5h6i)iIidifipivjsl lLleltmsnNnensoOolorpPpmqirRs sStvuUulusxX{{{}} }}µ͏ G M P *( - -f -r /> < m= n= | %#v%25%: %q:%s ><><'"'): , $,h1-%s...../.js///01_0 1252.0200204206304400404443500625: `://::1=%s???ACKAMPAprAugDD;DEFDSADecDelEOFETHFebFriGETGT;GetGg;Gt;HanIm;JanJulJunLT;LaoLl;Lt;MD4MD5MarMayMonMroMu;NaNNkoNovNu;OKPOctOr;PC=PWDPi;Pr;REGRSARe;SETSatSc;SepSunTTLThuTueT{ URIUTCVaiViaWedXi;\fB\fI\fP\fR % %s‌‍]: aadac;aesaf;agealgampandap;apuapvb64cgoclicrvctydd;decdegdeldirdivdnsdupee;eg;el;encendepkethfinfmtftpgE;gc ge;gengg;gl;gp gt;ic;ii;in;insintip6it;jkujwajwejwkjwskeykidktylE;le;lenlg;ll;lt;mapmp;mu;nannavne;newni;nilnotnu;oS;objoctor;p2cp2spc=pi;pm;pr;preptrregrx;sc;setshysigsshtagtcptypu00udpumluseverviawp;wr;x58x5cx5tx5uxi;yenzipµsμs� != -> := <== as at fp= in is lr: of on pc= sp: sp=%+v %s%s%s %v%v%x �&ⅅÐ>⋙≫ℑ<⋘≪ΜΝ⩔Π⪻®ℜ⪼Ξ∾⁡&≈ⅆ°ⅇ⪚⪙ð≧≥≫≷>⁣ⅈ∈⁢≦≤≶≪<∓μ≠∋¬νⓈ∨π±≺®℞≻­¨℘≀ξ¥'\'') = ) m=+Inf--%s-Inf.TE .TH .css.gif.htm.jpg.mjs.nh .pdf.png.svg.xml/etc/tmp0x%x10803125: p=::/0<%s>AMP;Acy;Afr;AhomAnd;AtoiAumlBcy;Bfr;COPYCallCap;Cfr;ChamChi;CodeCup;DATADashDateDcy;Del;Dfr;Dot;ENG;ETH;Ecy;Efr;EmphEta;EtagEumlFcy;Ffr;FromGOGCGcy;Gfr;GoneHEADHat;Hfr;HostIcy;Ifr;Int;ItemIumlJcy;Jfr;JulyJuneKcy;Kfr;LEAFLcy;Lfr;LinkListLisuLsh;Map;Mcy;Mfr;MiaoModiNameNcy;NewaNfr;Not;Ocy;Ofr;OumlPINGPOSTPcy;Pfr;Phi;Psi;QUOTQfr;REG;Rcy;Rfr;Rho;Rsh;Scy;Sfr;Sub;Sum;Sup;Tab;Tau;Tcy;TextTfr;ThaiTypeUcy;Ufr;UumlVcy;Vee;Vfr;Wfr;WithX448Xfr;Ycy;Yfr;Zcy;Zfr;[\&]" />\u00 T} m= --] = ] n=acE;acd;acy;afr;allgallpamp;and;ang;apE;ape;asn1ast;aumlbasebcy;bfr;bindbitsbne;boolbot;callcap cap;cas1cas2cas3cas4cas5cas6centcfr;chanchi;cir;copycritcup;datedcy;deaddeg;dfr;dialdie;div;dot;eEpPecy;efr;egs;ell;els;elseeng;eta;etageth;eumlfailfcy;ffr;fileformfromftpsfuncgEl;gap;gcy;gel;geq;ges;gfr;ggg;glE;gla;glj;gnE;gne;gziphelphfr;hosthourhtmlhttpicmpicy;idleiff;ifr;igmpint8int;itabiumljcy;jfr;joinjsonkcy;keyskfr;kindlEg;lap;lat;lcy;leftleg;leq;les;lfr;lgE;linklnE;lne;loz;lrm;lsh;macrmainmap;map[mathmcy;md5mdnsmfr;mho;mid;nGg;nLl;namenap;nbspncy;nfr;ngE;nge;ngt;nis;niv;nlE;nle;nlt;nonenot;npr;nsc;nullnum;ocy;ofr;ogt;ohm;olt;openord;ordfordmorv;oumlpar;parapcy;pfr;phi;piv;pop3prE;pre;profpsi;qfr;quo;quotrcy;readreg;rfr;rho;rlm;rootrsh;sbrkscE;sce;scy;sectseeksfr;sha1sha2shashashashashashashashy;signsim;smt;smtpsol;squ;statsub;sum;sup1sup2sup3sup;synctag:tau;tcp6tcy;tfr;top;trimtruetypeucy;ufr;uintuml;unixuumlvaryvcy;vee;vfr;wfr;withxfr;xn--ycy;yen;yfr;yumlzcy;zfr;zwj; -%s ... H_T= H_a= H_g= MB, W_a= and cnt= h_a= h_g= h_t= max= ms, ptr siz= tab= top= u_a= u_g= with%q:%s%s %q%s %s%s*%d%s-%d%s=%s%s %s"'&А𝔄⩓ÄБ𝔅©⋒ℭΧ⋓Д∇𝔇¨ŊÐЭ𝔈ΗËФ𝔉Г𝔊^ℌИℑ∬ÏЙ𝔍К𝔎Л𝔏↰⤅М𝔐Н𝔑⫬О𝔒ÖП𝔓ΦΨ"𝔔®РℜΡ↱С𝔖⋐∑⋑ ΤТ𝔗У𝔘ÜВ⋁𝔙𝔚𝔛Ы𝔜Зℨ∾̳∿а𝔞&∧∠⩰≊*äб𝔟=⃥⊥∩¢𝔠χ○©∪д°𝔡¨÷˙э𝔢⪖ℓ⪕ŋηðëф𝔣⪌⪆г⋛≥⩾𝔤⋙⪒⪥⪤≩⪈𝔥и⇔𝔦∫ïй𝔧к𝔨⪋⪅⪫л⋚≤⩽𝔩⪑≨⪇◊‎↰¯↦м𝔪℧∣⋙̸≫⃒⋘̸≪⃒≉ н𝔫≧̸≱≯⋼∋≦̸≰≮¬⊀⊁#о𝔬⧁Ω⧀⩝ªº⩛ö∥¶п𝔭φϖ⪳⪯ψ𝔮"р®𝔯ρ‏↱⪴⪰с§𝔰­∼⪪/□⊂∑¹²³⊃τт𝔱⊤у𝔲¨üв∨𝔳𝔴𝔵ы¥𝔶ÿз𝔷‍(nil), fp:.avif.eEpP.html.jpeg.json.wasm.webp1562578125:***@::/96:pathAEligAcircAdlamAopf;AprilAringAscr;Auml;BamumBarv;BatakBeta;Bopf;Bscr;BuhidCHcy;COPY;Cdot;ClassCopf;Cscr;DJcy;DScy;DZcy;Darr;DograDopf;Dscr;ECDSAES256ES384ES512EcircEd448EdDSAEdot;Eopf;ErrorEscr;Esim;Euml;FlushFopf;FoundFscr;GJcy;Gdot;Gopf;GreekGscr;HS256HS384HS512HTTP/Hopf;Hscr;IEcy;IOcy;IcircIdot;ImageInts:Iopf;Iota;Iscr;Iuml;Jopf;Jscr;KHcy;KJcy;KhmerKopf;Kscr;LJcy;Lang;Larr;LatinLimbuLocalLopf;Lscr;MarchMopf;Mscr;NJcy;Nopf;Nscr;NushuOcircOghamOopf;OriyaOsageOscr;Ouml;P-224P-256P-384P-521PS256PS384PS512Popf;Pscr;Ptrs:QUOT;Qopf;Qscr;RS256RS384RS512Rang;RangeRarr;RealmRopf;Rscr;RunicSHA-1SHcy;STermSopf;Sqrt;Sscr;Star;THORNTScy;TableTakriTamilTopf;Tscr;TypeAUarr;UcircUopf;Upsi;UsageUscr;Uuml;ValueVbar;Vert;Vopf;Vscr;Wopf;WriteWscr;Xopf;Xscr;YAcy;YIcy;YUcy;Yopf;Yscr;Yuml;ZHcy;Zdot;Zeta;Zopf;Zscr;\[ra]\u202 .PP .RE .RS .SH .SS .TP .br ] = (acircacuteaeligallowandd;andv;ange;aopf;apid;apos;aringarrayascr;asideauml;bNot;bad nbbrk;beta;beth;blockbnot;bopf;boxH;boxV;boxh;boxv;bscr;bsim;bsol;bull;bump;caps;cdot;cedilcent;chcy;chdirchmodchowncirE;circ;cire;closecomp;cong;copf;copy;cpuidcrc32cscr;csub;csup;cups;curvedArr;dHar;darr;dash;deferdiam;djcy;dopf;dscr;dscy;dsol;dtri;dzcy;eDot;ecir;ecircedot;emsp;ensp;eopf;epar;epsi;escr;esim;euml;euro;excl;falsefaultfcntlfilesflat;floatfnof;fopf;fork;fscr;func(gFreegcinggdot;geqq;gesl;getwdgjcy;gnap;gneq;gopf;gscangscr;gsim;gtcc;gvnE;hArr;half;harr;hbar;hchanhopf;hostshscr;httpsicirciecy;iexclimap2imap3imapsimof;indexinit inputint16int32int64iocy;iopf;iota;iscr;isin;iuml;jopf;jscr;khcy;kind=kjcy;kopf;kscr;lArr;lHar;lang;laquolarr;late;lcub;ldca;ldsh;leqq;lesg;ljcy;lnap;lneq;lopf;lozf;lpar;lscr;lsim;lsqb;lstatltcc;ltri;lvnE;macr;male;malt;matchmheapmicromlcp;mldr;monthmopf;mscr;nGtv;nLtv;nang;napE;nbsp;ncap;ncup;ngeq;nges;ngtr;nisd;njcy;nldr;nleq;nles;nmid;nopf;npar;npre;nsce;nscr;nsim;nsub;nsup;ntgl;ntlg;nvap;nvge;nvgt;nvle;nvlt;oast;ocir;ocircodiv;odot;ogon;oint;omid;oopf;opar;ordf;ordm;oror;oscr;osol;ouml;panicpara;parsepart;perp;phiv;plus;pmullpop3spopf;poundprap;prec;printprnE;prod;prop;pscr;qint;qopf;qscr;quot;rArr;rHar;race;rang;rangeraquorarr;rcub;rdca;rdsh;real;rect;rhov;rightring;ropf;rpar;rscr;rsqb;rtri;rune scap;scav schedscnE;sdot;sect;semi;sext;shcy;sime;simg;siml;sleepslicesmid;smte;sockssolb;sopf;spar;squf;sscr;star;stylesubE;sube;succ;sudogsung;sup1;sup2;sup3;supE;supe;svqxXsweepszligtabletbrk;tdot;text/thorntimestint;tls: toea;topf;tosa;tracetrie;tscr;tscy;uArr;uHar;uarr;ucircuint8uopf;upsi;uscr;utf-8utri;uuml;vArr;vBar;valuevarr;vert;videovopf;vscr;wopf;writewscr;xcap;xcup;xmap;xnis;xopf;xscr;xvee;xxxxxyacy;yicy;yopf;yscr;yucy;yuml;zdot;zeta;zhcy;zopf;zscr;zwnj; -l %s -s %s Value addr= alloc base code= ctxt: curg= free goid jobs= list= m->p= next= p->m= prev= span=% util%s:%s ÆÂ𝔸Å𝒜Ä⫧Β𝔹ℬЧ©Ċℂ𝒞ЂЅЏ↡𝔻𝒟ÊĖ𝔼ℰ⩳Ë𝔽ℱЃĠ𝔾𝒢ℍℋЕЁÎİ𝕀ΙℐÏ𝕁𝒥ХЌ𝕂𝒦Љ⟪↞𝕃ℒ𝕄ℳЊℕ𝒩Ô𝕆𝒪Öℙ𝒫"ℚ𝒬⟫↠ℝℛШ𝕊√𝒮⋆ÞЦ𝕋𝒯↟Û𝕌ϒ𝒰Ü⫫‖𝕍𝒱𝕎𝒲𝕏𝒳ЯЇЮ𝕐𝒴ŸЖŻΖℤ𝒵â´æ⩜⩚⦤𝕒≋'å𝒶ä⫭⎵βℶ⌐𝕓═║─│𝒷∽\•≎∩︀ċ¸¢ч⧃ˆ≗∁≅𝕔©𝒸⫏⫐∪︀⇓⥥↓‐⋄ђ𝕕𝒹ѕ⧶▿џ≑≖êė  𝕖⋕εℯ≂ë€!♭ƒ𝕗⋔𝒻ġ≧⋛︀ѓ⪊⪈𝕘ℊ≳⪧≩︀⇔½↔ℏ𝕙𝒽îе¡⊷ё𝕚ι𝒾∈ï𝕛𝒿хќ𝕜𝓀⇐⥢⟨«←⪭{⤶↲≦⋚︀љ⪉⪇𝕝⧫(𝓁≲[⪦◃≨︀¯♂✠µ⫛…𝕞𝓂≫̸≪̸∠⃒⩰̸ ⩃⩂≱⩾̸≯⋺њ‥≰⩽̸∤𝕟∦⪯̸⪰̸𝓃≁⊄⊅≹≸≍⃒≥⃒>⃒≤⃒<⃒⊛⊚ô⨸⊙˛∮⦶𝕠⦷ªº⩖ℴ⊘ö¶∂⊥ϕ+𝕡£⪷≺⪵∏∝𝓅⨌𝕢𝓆"⇒⥤∽̱⟩»→}⤷↳ℜ▭ϱ˚𝕣)𝓇]▹⪸⪶⋅§;✶ш≃⪞⪝∣⪬⧄𝕤∥▪𝓈☆⫅⊆≻♪¹²³⫆⊇ß⎴⃛þ×∭⤨𝕥⤩≜𝓉ц⇑⥣↑û𝕦υ𝓊▵ü⇕⫨↕|𝕧𝓋𝕨𝓌⋂⋃⟼⋻𝕩𝓍⋁яї𝕪𝓎юÿżζж𝕫𝓏‌' for '"&<>(...) , i = , not , val ----- .local.onion390625<-chan<\/a>) andslope;angmsdaa;angmsdab;angmsdac;angmsdad;angmsdae;angmsdaf;angmsdag;angmsdah;angrtvbd;approxeq;atomicor8attempts:awconint;backcong;bad indirbad prunebarwedge;bbrktbrk;bigoplus;bigsqcup;biguplus;bigwedge;boxminus;boxtimes;bsolhsub;capbrcup;chan sendcircledR;circledS;cirfnint;clubsuit;complex64copystackctxt != 0cupbrcap;curlyvee;cwconint;d.nx != 0debugLockdns,filesdoteqdot;dotminus;drbkarow;dzigrarr;elinters;empty urlemptyset;eqvparsl;fdopendirfec0::/10files,dnsfootnote-fpartint;funcargs(geqslant;gesdotol;gnapprox;hchanLeafhksearow;hkswarow;image/gifimage/pngimagline;imagpart;infintie;inittraceintegers;intercal;interfaceintlarhk;invalid nipv6-icmpjws.identlaemptyv;ldrushar;leqslant;lesdotor;llcorner;lnapprox;localhostlocaltimelrcorner;lurdshar;mSpanDeadmSpanFreemailto://mapstoup;match-kidmultimap;naturals;ncongdot;nil errornotindot;omitemptyotimesas;panicwaitparallel;plusacir;pointint;precneqq;precnsim;preemptedprofalar;profline;profsurf;protectedprotocol questionsraemptyv;raw-writerealpart;recover: reflect: rppolint;rtriltri;rwxrwxrwxscavtracescpolint;setminus;shortmid;show helpsignaturesmeparsl;sqsubset;sqsupset;stackpoolsubseteq;succeededsuccneqq;succnsim;supseteq;thetasym;thicksim;timesbar;tracebacktriangle;triminus;trpezium;ulcorner;underflowunhandledurcorner;varkappa;varsigma;vartheta;wbufSpanswebsocket} stack=[ MB goal, actualΔ= flushGen for type gfreecnt= pages at runqsize= runqueue= s.base()= spinning= stopwait= stream=%d sweepgen sweepgen= targetpc= throwing= until pc=%!(NOVERB)%!Weekday(%s %s %s %s: '%s%s'%s|%s%s|%s⤑≐∫⪡≠≁∂≺⊢≻∋⊃⥉_⩘⦨⦩⦪⦫⦬⦭⦮⦯⦝≊∳≌⌅⎶⨁⨆⨄⋀⊟⊠⟈⩉®Ⓢ⨐♣⩈⋎∲≑∸⤐⟿⏧∅⧥⨍⩾⪄⪊⤥⤦ℐℑ⧝ℤ⊺⨗⦴⥋⩽⪃⌞⪉⌟⥊↥⊸ℕ⩭̸⋵̸⨶∥⨣⨕⪵⋨⌮⌒⌓⦳ℜ⨒⧎⨓∖∣⧤⊏⊐⊆⪶⋩⊇ϑ∼⨱▵⨺⏢⌜⌝ϰςϑ(BADINDEX), bound = , limit = .localhost/dev/stdin/etc/hosts012345678912207031256103515625: parsing :authority; Expires=; HttpOnly; Max-Age=runtime: gs.state = schedtracesemacquireset-cookiesetsockoptshort readskipping: sl:::%d:::socks bindspadesuit;stackLargesubseteqq;subsetneq;supseteqq;supsetneq;t.Kind == therefore;ticks.locktime.Date(time.Localtracefree(tracegc() triangleq;unixpacketunknown pcuser-agentvalue for varpropto;{"header": of size (default: (targetpc= ErrCode=%v KiB work, freeindex= gcwaiting= idleprocs= in status mallocing= ms clock, nBSSRoots= p->status= s.nelems= schedtick= span.list= timerslen=%!(BADPREC)∖·⊙≡∐¨↓̑⇓≏←⌊⇐≲ℳ∓≭∄⊂⃒⏞±∴ ⃛⊎‵⋍⨂·✓ℂ⊡↓⪆⋛≩︀♥←⋚≨︀⩾̸⩽̸∦∤⊈⊉⋔ℚ♠⫅⊊⫆⊋∴≜∝, elemsize=, npages = , settings:.IP \(bu 2 .WithCancel/dev/stderr/dev/stdout/index.html0123456789_30517578125: frame.sp=; Max-Age=0
  • BLAKE2b-256BLAKE2b-384BLAKE2b-512BLAKE2s-256Bad GatewayBad RequestBernoullis;CirclePlus;ClassHESIODCookie.PathDefaultTextDives_AkuruENABLE_PUSHEND_HEADERSEarly HintsEqualTilde;Fouriertrf;GOTRACEBACKHTTPS_PROXYIdeographicImaginaryI;In-Reply-ToInstCaptureInstRuneAnyLaplacetrf;LeftVector;Lleftarrow;MarshalJSONMarshalTextMedefaidrinNandinagariNew_Tai_LueNotElement;NotGreater;Old_PersianOld_SogdianPRIVATE KEYPau_Cin_HauProportion;Return-PathRightArrow;RightFloor;Rightarrow;SHA-512/224SHA-512/256SignWritingSoft_DottedTTL expiredThickSpace;TildeEqual;TildeTilde;UnderBrace;UpArrowBar;UpTeeArrow;Warang_CitiWhite_Space[:^xdigit:]"payload":"additionalsassistQueueauthoritiesbad addressbad m valuebad messagebad timedivbad verb '%broken pipecall of nilcgocall nilcircledast;clobberfreecomplement;created by curlywedge;empty fieldeqslantgtr;expected :=file existsfinal tokenfloat32nan2float64nan1float64nan2float64nan3gccheckmarkgtreqqless;https_proxyi/o timeoutlessapprox;lesseqqgtr;lmoustache;local errorlongmapsto;mSpanManualmapstodown;mapstoleft;methodargs(nLeftarrow;netpollInitnil contextnleftarrow;not reachednsubseteqq;nsupseteqq;parse errorprecapprox;raw-controlreflect.SetreflectOffsretry-afterrightarrow;rmoustache;runtime: P runtime: p scheddetailsetnonblockshort writesqsubseteq;sqsupseteq;subsetneqq;succapprox;supsetneqq;time: file tls: alert(tracealloc(traffic updunprotectedunreachableupuparrows;varepsilon;varnothing;x509roots=1{{template (sensitive) KiB total, [recovered] allocCount found at *( gcscandone heapMarked= m->gsignal= minTrigger= nDataRoots= nSpanRoots= pages/byte preemptoff= s.elemsize= s.sweepgen= span.limit= span.state= sysmonwait= wbuf1= wbuf2=%!(BADWIDTH)ℬ⊕≂ℱⅈℒ↼⇚∉≯∷→⌋⇒  ≃≈⏟⤒↥⊛∁⋏⪖⪌⪅⪋⎰⟼↧↤⇍↚⫅̸⫆̸⪷→⎱⊑⊒⫋⪸⫌⇈ϵ∅) p->status=-byte limit /dev/urandom100-continue127.0.0.1:53152587890625762939453125Bidi_ControlCIDR addressCONTINUATIONCircleMinus;CircleTimes;Content-TypeCookie.ValueECDSA-SHA256ECDSA-SHA384ECDSA-SHA512Equilibrium;GreaterLess;I'm a teapotInstAltMatchJoin_ControlLeftCeiling;LessGreater;Max-ForwardsMediumSpace;Meetei_MayekMime-VersionMulti-StatusNot ExtendedNot ModifiedNotLessLess;NotPrecedes;NotSucceeds;NotSuperset;OverBracket;PUSH_PROMISEPahawh_HmongRCodeRefusedRCodeSuccessRSA-OAEP-256RightVector;Rrightarrow;RuleDelayed;SERIALNUMBERSecPolicyOidSmallCircle;Sora_SompengSquareUnion;SubsetEqual;Syloti_NagriUnauthorizedUpDownArrow;Updownarrow;VerticalBar;WithCompressWithDetachedX-ImforwardsX-Powered-By^( anynotnl -> backepsilon;bad flushGenbad g statusbad recoveryblacksquare;block clausec ap trafficc hs trafficcaller errorcan't happencas64 failedchan receivecircledcirc;circleddash;close notifycontent-typecontext.TODOcurlyeqprec;curlyeqsucc;device errordiamondsuit;dumping heapempty bufferend tracegc entersyscalleqslantless;expectation;gcBitsArenasgcpacertracehost is downhttp2debug=1http2debug=2illegal seekinput-formatinvalid baseinvalid kindinvalid portisNeoverseN1lfstack.pushmadvdontneedmax-forwardsmheapSpecialmspanSpecialnRightarrow;no such hostnot a STREAMnot pollablenrightarrow;out of rangepreccurlyeq;precnapprox;proxyconnectquaternions;raceFiniLockreflect.Copyreleasep: m=remote errorruntime: gp=runtime: sp=s ap traffics hs trafficshort bufferspanSetSpinestatus code straightphi;succcurlyeq;succnapprox;sweepWaitersthickapprox;traceStringsunexpected )unknown portupdownarrow;wirep: p->m=worker mode {"payload":" != sweepgen (default %q) (default %v) MB) workers= called from failed with flushedWork idlethreads= in duration in host name is nil, not is too large nStackRoots= out of range s.spanclass= span.base()= syscalltick= work.nproc= work.nwait= ⊖⊗⇌≷⌈≶ ≪̸⊀⊁⊃⃒⎴⇀⇛⧴∘⊔⊆↕⇕∣϶▪⊚⊝⋞⋟♦⪕ℰ⇏↛≼⪹ℍϕ≽⪺≈↕, gp->status=, not pointer-byte block (.IP "%3d." 5 /etc/services3814697265625::ffff:0:0/96A128CBC-HS256A192CBC-HS384A256CBC-HS512Accept-RangesAuthorizationCLIENT_RANDOMCONNECT_ERRORCache-ControlContent-RangeDownArrowBar;DownTeeArrow;ECDSAWithSHA1ExponentialE;FQDN too longGC sweep waitGreaterEqual;GreaterTilde;Gunjala_GondiHilbertSpace;HumpDownHump;If-None-MatchIntersection;Last-ModifiedLeftArrowBar;LeftTeeArrow;LeftTriangle;LeftUpVector;Loop DetectedMasaram_GondiMende_KikakuiNotCongruent;NotHumpEqual;NotLessEqual;NotLessTilde;Old_HungarianPKCS1WithSHA1Proportional;Reset ContentRightCeiling;RoundImplies;SHA256-RSAPSSSHA384-RSAPSSSHA512-RSAPSSSIGKILL: killSIGQUIT: quitSIGSTOP: stopSTREAM_CLOSEDSecItemExportShortUpArrow;SquareSubset;UnderBracket;Usage of %s: VerticalLine;WINDOW_UPDATE[FrameHeader "protected":""signature":" .TS allbox; accept-rangesaccess deniedauthorizationbad flushGen bad map stateblacklozenge;cache-controlclass="title"content-rangedalTLDpSugct?define clauseemail addressempty commandempty integerencrypted_keyexponentiale;fatal error: gzip, deflatehttp2client=0if-none-matchimage/svg+xmlinvalid UTF-8invalid base kern.hostnamekey not foundlame referrallast-modifiedload64 failedmin too largenil stackbaseout of memoryoutput-formatparsing time resource busyrisingdotseq;runtime: seq=runtime: val=socks connecttraceStackTabtrailing datatriangledown;triangleleft;triggerRatio=unexpected %sunsupported: user canceledvalue method varsubsetneq;varsupsetneq;xadd64 failedxchg64 failed} sched={pc: but progSize nmidlelocked= on zero Value out of range to finalizer untyped args %v version %v ⤓↧ⅇ≥≳ℋ≎⋂⇤↤⊲↿≢≏̸≰≴∝⌉⥰↑⊏⎵|⧫ⅇ≓▿◃⊊︀⊋︀,"protected":","signature":"-thread limit .WithDeadline(/etc/protocols1907348632812595367431640625: extra text: ; SameSite=LaxAccept-CharsetApplyFunction;Content-LengthDifferentialD;Dkim-SignatureDoubleLeftTee;DoubleUpArrow;ECDH-ES+A128KWECDH-ES+A192KWECDH-ES+A256KWGC assist waitGC worker initHorizontalRuleINTERNAL_ERRORInstEmptyWidthLeftTeeVector;LeftVectorBar;LessFullEqual;LongLeftArrow;Longleftarrow;MAX_FRAME_SIZEMB; allocated Not AcceptableNotEqualTilde;NotTildeEqual;NotTildeTilde;Other_ID_StartPROTOCOL_ERRORPattern_SyntaxPoincareplane;PrecedesEqual;PrecedesTilde;Quotation_MarkRCodeNameErrorREFUSED_STREAMREQUEST_METHODRightArrowBar;RightTeeArrow;RightTriangle;RightUpVector;SIGABRT: abortSucceedsEqual;SucceedsTilde;SupersetEqual;UpEquilibrium;VerticalTilde;VeryThinSpace;","kty":"oct"}\.+*?()|[]{}^$ .PP .RS .nf accept-charsetallocfreetracebad allocCountbad record MACbad span statebad stack sizebigtriangleup;blacktriangle;content-lengthdata truncateddivideontimes;elliptic-curvefallingdotseq;file too largefinalizer waitgcstoptheworldhookleftarrow;internal errorinvalid alg %sinvalid key %Tinvalid syntaxis a directorykey size wrongkey-encryptionleftarrowtail;leftharpoonup;len of type %slongleftarrow;looparrowleft;measuredangle;need more datanil elem type!no module datantriangleleft;pollCache.lockprotocol errorruntime: full=s.allocCount= semaRoot queueshortparallel;smallsetminus;stack overflowstopm spinningstore64 failedsync.Cond.Waittext file busytime.Location(too many linkstoo many userstriangleright;unexpected EOFunknown code: unknown error unknown methodunknown mode: unknown node: unreachable: unsafe.Pointerupharpoonleft;varsubsetneqq;varsupsetneqq;work.full != 0zero parameter with GC prog is unavailable not a function⁡ⅆ⫤⇑⥚⥒≦⟵⟸≂̸≄≉ℌ⪯≾⇥↦⊳↾⪰≿⊇⥮≀ △▴⋇≒↩↢↼⟵↫∡⋪∥∖▹↿⫋︀⫌︀()<>@,;:\"/[]?=,M3.2.0,M11.1.0/etc/mime.types0601021504Z0700476837158203125: cannot parse ; SameSite=NoneASCII_Hex_DigitAccept-EncodingAccept-LanguageClientAuthType(DiacriticalDot;DoubleRightTee;DownLeftVector;Gateway TimeoutGreaterGreater;Hanifi_RohingyaHorizontalLine;Idempotency-KeyInvisibleComma;InvisibleTimes;LeftDownVector;LeftRightArrow;Leftrightarrow;Length RequiredLessSlantEqual;LongRightArrow;Longrightarrow;LowerLeftArrow;NestedLessLess;Not ImplementedNotGreaterLess;NotLessGreater;NotSubsetEqual;NotVerticalBar;OpenCurlyQuote;Other_LowercaseOther_UppercasePKCS1WithSHA256PKCS1WithSHA384PKCS1WithSHA512Partial ContentPsalter_PahlaviRequest TimeoutReverseElement;RightTeeVector;RightVectorBar;ShortDownArrow;ShortLeftArrow;SquareSuperset;TildeFullEqual;UpperLeftArrow;WithKeyProviderX-Forwarded-ForZeroWidthSpace;] morebuf={pc:accept-encodingaccept-languageapplication/pdfasyncpreemptoffbad certificatebad trailer keycurvearrowleft;doublebarwedge;downdownarrows;elem size wrongforce gc (idle)hookrightarrow;invalid addressinvalid booleaninvalid messageinvalid paddinginvalid pointerleftleftarrows;leftrightarrow;leftthreetimes;longrightarrow;looparrowright;malloc deadlockmisaligned maskmissing addressmissing mcache?ms: gomaxprocs=negative offsetnetwork is downno dot in fieldno such processnon-minimal tagnot a directorynshortparallel;ntriangleright;preempt SPWRITErecord overflowrecovery failedrightarrowtail;rightharpoonup;runtime error: runtime: frame runtime: max = runtime: min = runtimer: bad pscan missed a gstartm: m has pstopm holding ptarget="_blank"template clausetrianglelefteq;unclosed actionunexpected typeunknown Go typeunknown networkunknown versionupharpoonright;write error: %v mheap.sweepgen= not in ranges: untyped locals %s %s HTTP/1.1 %s overflows int˙⊨↽⪢─⁣⁢⇃↔⇔⩽⟶⟹↙≪≹≸⊈∤‘∋⥛⥓↓←⊐≅↖​↶⌆⇊↪⇇↔⋋⟶↬∦⋫↣⇀⊴↾, not a function.WithValue(type /etc/resolv.conf0123456789ABCDEF0123456789abcdef2384185791015625: value of type Already ReportedCloseCurlyQuote;Content-EncodingContent-LanguageContent-Length: ContourIntegral;DoubleDownArrow;DoubleLeftArrow;DownRightVector;FRAME_SIZE_ERRORGC scavenge waitGC worker (idle)GODEBUG: value "IV for ECDSA CTRImperial_AramaicIncorrect Usage.Incorrect Usage:InstRuneAnyNotNLLeftRightVector;LeftTriangleBar;LeftUpTeeVector;LeftUpVectorBar;LowerRightArrow;Meroitic_CursiveMultiple ChoicesNotGreaterEqual;NotGreaterTilde;NotHumpDownHump;NotLeftTriangle;NotSquareSubset;Other_AlphabeticOverParenthesis;Parse JWS mesagePayment RequiredProxy-ConnectionRCodeFormatErrorRightDownVector;SETTINGS_TIMEOUTSIGNONE: no trapShortRightArrow;SignatureScheme(Upgrade RequiredUpperRightArrow;User-Agent: %s Www-AuthenticateZanabazar_Square","signatures":[ runtime stack: after object keyapplication/jsonapplication/wasmbad g transitionbad special kindbad summary databad symbol tablebigtriangledown;binary.BigEndiancastogscanstatuscirclearrowleft;content-encodingcontent-languagecontent-locationcontext canceledcurvearrowright;division by zerodownharpoonleft;expected integerexpected newlinegc: unswept spangcshrinkstackoffhost unreachablehostLookupOrder=integer overflowinvalid argumentinvalid encodinginvalid g statusinvalid rune %#Uinvalid spdelta invalid token %Tinvalid value %Tleftharpoondown;leftrightarrows;length too largemSpanList.insertmSpanList.removemessage mismatchmessage too longmissing stackmapnLeftrightarrow;newmHandoff.locknleftrightarrow;no renegotiationno route to hostno such flag -%vnon-Go function non-IPv4 addressnon-IPv6 addressntrianglelefteq;pacer: H_m_prev=policy not foundproxy-connectionquoted-printablereflect mismatchregexp: Compile(result too largerightleftarrows;rightsquigarrow;rightthreetimes;runtime: g: g=runtime: addr = runtime: base = runtime: gp: gp=runtime: head = runtime: nelems=schedule: in cgostraightepsilon;template: %s: %stime: bad [0-9]*trianglerighteq;unclosed commentunknown network unknown node: %sunpacking headervartriangleleft;workbuf is emptywww-authenticate after object key initialHeapLive= spinningthreads= the message with%%!%c(big.Int=%s)’∮⇓⇐⇁⥎⧏⥠⥘↘≱≵≎̸⋪⊏̸⏜⇂→↗▽↺↷⇃↽⇆⇎↮⋬⇄↝⋌ϵ⊵⊲, p.searchAddr = 0123456789ABCDEFX0123456789abcdefx060102150405Z07001192092895507812559604644775390625: missing method ; SameSite=Strict
  • COMPRESSION_ERRORDiacriticalAcute;DiacriticalGrave;DiacriticalTilde;DoubleRightArrow;DownArrowUpArrow;ENHANCE_YOUR_CALMEmptySmallSquare;Failed DependencyGC assist markingGreaterEqualLess;GreaterFullEqual;HEADER_TABLE_SIZEHTTP_1_1_REQUIREDIf-Modified-SinceLeftAngleBracket;LeftUpDownVector;LessEqualGreater;Moved PermanentlyNonBreakingSpace;NotPrecedesEqual;NotRightTriangle;NotSucceedsEqual;NotSucceedsTilde;NotSupersetEqual;Old_North_ArabianOld_South_ArabianOther_ID_ContinueRPC struct is badRPC version wrongRightTriangleBar;RightUpTeeVector;RightUpVectorBar;SIGBUS: bus errorSIGINT: interruptSentence_TerminalSignature %d: %s Too Many RequestsTransfer-EncodingUnderParenthesis;Unified_IdeographUpArrowDownArrow;Verify JWS mesageX-Idempotency-Key bad TinySizeClassbad character %#Ucan't scan type: circlearrowright;corrupt zip file cross-device linkdebugPtrmask.lockdecryption faileddownharpoonright;entersyscallblockexec format errorfractional secondg already scannedglobalAlloc.mutexgp.waiting != nilhandshake failureif-modified-sinceillegal hex digitillegal parameterin string literalindex > windowEndinteger too largeinvalid BMPStringinvalid IA5Stringinvalid bit size invalid stream IDkey align too biglocked m0 woke upmark - bad statusmarkBits overflowmessage too shortmissing closing )missing closing ]missing extensionmissing form bodynil resource bodynotetsleepg on g0ntrianglerighteq;permission deniedprint the versionpthread_cond_initreflect.Value.Capreflect.Value.Intreflect.Value.Lenreflect: New(nil)reflect: call of rightharpoondown;rightrightarrows;runtime/internal/runtime: level = runtime: nameOff runtime: pointer runtime: summary[runtime: textOff runtime: typeOff scanobject n == 0seeker can't seekselect (no cases)stack: frame={sp:swept cached spanthread exhaustiontransfer-encodingtrigger underflowtruncated headerstwoheadleftarrow;unknown caller pcunknown type kindunrecognized namevartriangleright;wait for GC cyclewithLocalRegistry but memory size because dotdotdot in async preempt to non-Go memory ´`˜⇒⇵◻⋛≧⟨⥑⋚ ⪯̸⋫⪰̸≿̸⊉⧐⥜⥔⏝⇅↻⇂⋭⇁⇉↞⊳, locked to thread,"encrypted_key":"298023223876953125: day out of range⁄Caucasian_AlbanianDoubleUpDownArrow;DoubleVerticalBar;DownLeftTeeVector;DownLeftVectorBar;ENOLINK (Reserved)Enable compressionExpectation FailedFLOW_CONTROL_ERRORFilledSmallSquare;Go-http-client/1.1Go-http-client/2.0GreaterSlantEqual;LeftDoubleBracket;LeftDownTeeVector;LeftDownVectorBar;LeftTriangleEqual;Method Not AllowedNegativeThinSpace;NotGreaterGreater;NotLessSlantEqual;NotNestedLessLess;NotReverseElement;NotSquareSuperset;NotTildeFullEqual;PBES2-HS256+A128KWPBES2-HS384+A192KWPBES2-HS512+A256KWPermanent RedirectProxy-AuthenticateRCodeServerFailureRegional_IndicatorRightAngleBracket;RightUpDownVector;SquareSubsetEqual;Temporary RedirectUNKNOWN_SETTING_%dUnknown node type Variation_SelectorVerticalSeparator;","kty":"EC","x":" .ti 0 \l'\n(.lu' bad Content-Lengthbad lfnode addressbad manualFreeListblacktriangledown;blacktriangleleft;bufio: buffer fullcleantimers: bad pconnection refusedcontent-encryptioncontext.Backgrounddecoding error: %velem align too bigexceeded max depthexport restrictionfaketimeState.lockfile name too longflag %q contains =flag redefined: %sforEachP: not donegarbage collectionhttp: no such fileidentifier removedin numeric literalindex out of rangeinput/output errorinstruction bytes:invalid IP addressinvalid character kern.ipc.somaxconnleftrightharpoons;len of nil pointerneed authenticatornegative bit indexno child processesno locks availablenon-minimal lengthoperation canceledproxy-authenticatepthread_mutex_initreceived from peerreflect.Value.Callreflect.Value.Elemreflect.Value.Sendreflect.Value.Typereflect.Value.Uintreflect: Zero(nil)rightleftharpoons;runtime: heapGoal=runtime: npages = runtime: range = {sequence truncatedserver misbehavingsystem page size (too many processestracebackancestorstruncated sequencetwoheadrightarrow;unexpected messageunexpected newlineunknown time zone use of closed filevalue out of range (%d bytes omitted) already registered called using nil *⇕∥⥞⥖◼⩾⟦⥡⥙⊴​≫̸⩽̸⪡̸∌⊐̸≇⟩⥏⊑❘▾◂⇋⇌↠, g->atomicstatus=, gp->atomicstatus=/usr/lib/locale/TZ/149011611938476562520060102150405Z07007450580596923828125Canadian_AboriginalConnection: close Content-DispositionContent-Length: 0 DownRightTeeVector;DownRightVectorBar;GC work not flushedIDS_Binary_OperatorINADEQUATE_SECURITYINITIAL_WINDOW_SIZEKhitan_Small_ScriptLongLeftRightArrow;Longleftrightarrow;Misdirected RequestNegativeThickSpace;NotLeftTriangleBar;Pattern_White_SpacePrecedesSlantEqual;Precondition FailedProxy-AuthorizationRCodeNotImplementedRPC prog. not availReverseEquilibrium;RightDoubleBracket;RightDownTeeVector;RightDownVectorBar;RightTriangleEqual;SIGTRAP: trace trapService UnavailableSquareIntersection;SucceedsSlantEqual;Switching Protocols","kty":"OKP","x":"","kty":"RSA","n":"_cgo_setenv missingadjusttimers: bad pafter array elementattribute not foundbad file descriptorbad flag syntax: %sbad kind in runfinqbad notifyList sizebad runtime·mstartbad sequence numberbad unicode format bad value for fieldblacktriangleright;cgocall unavailableclass="language-%s"client disconnectedcontent-dispositiondevice power is offdirectory not emptydisc quota exceededdodeltimer: wrong Perr must be non-nilevictCount overflowexpired certificatefile already closedfile already existsfile does not existhttp: Server closedif-unmodified-sinceinvalid Trailer keyinvalid URL escape invalid key type %qinvalid key type %slongleftrightarrow;m not found in allmmarking free objectmarkroot: bad indexmime: no media typemissing ']' in hostmissing deferreturnmspan.sweep: state=multipart/form-datanetwork unreachableno STREAM resourcesnotesleep not on g0nwait > work.nprocsoperation timed outpanic during mallocpanic during panic panic holding lockspanicwrap: no ( in panicwrap: no ) in previous owner diedproxy-authorizationreflect.Value.Fieldreflect.Value.Floatreflect.Value.Indexreflect.Value.IsNilreflect.Value.Slicerevoked certificatersa: internal errorruntime: pcdata is runtime: preempt g0semaRoot rotateLeftskip this directorystopm holding lockssync.Cond is copiedsysMemStat overflowtemplate: %s:%d: %stime: unknown unit too many open filesunclosed left parenunexpected %s in %sunexpected InstFailunexpected g statusunknown Go type: %vunknown branch typeunknown certificateunknown cipher typeunknown hash value unknown key type %Tunknown status codeunknown wait reasonunsupported messagex509: malformed OIDx509: trailing datax509: unknown errorzero length segment after array element markroot jobs done to unallocated span⥟⥗⟷⟺​⧏̸≼⇋⟧⥝⥕⊵⊓≽▸⟷/usr/share/zoneinfo/37252902984619140625DoubleLongLeftArrow;DownLeftRightVector;EMULTIHOP (Reserved)Egyptian_HieroglyphsHTTP/%d.%d %03d %s IDS_Trinary_OperatorInsufficient StorageLeftArrowRightArrow;MAX_HEADER_LIST_SIZEMeroitic_HieroglyphsNegativeMediumSpace;NotGreaterFullEqual;NotRightTriangleBar;Request URI Too LongRightArrowLeftArrow;SIGALRM: alarm clockSIGTERM: terminationSTREAM ioctl timeoutSeek: invalid offsetSeek: invalid whenceSquareSupersetEqual;Terminal_PunctuationUnprocessable EntityVerify JWS messages.aead.Open failed: %wasn1: syntax error: assigned stream ID 0authentication errorbad defer size classbad system page sizebad use of bucket.bpbad use of bucket.mpcertificate requiredchan send (nil chan)close of nil channelconnection error: %sdodeltimer0: wrong Pdst is not writeableerror calling %s: %wfailed to set %s: %wflag: help requestedfloating point errorforcegc: phase errorgetCert can't be nilgo of nil func valuegopark: bad g statusgzip: invalid headerheader line too longhttp2: stream closedhttp: POST too largeif/with can't use %vindex of nil pointerindex of untyped nilinteger overflow: %qinvalid DNS responseinvalid UTF-8 stringinvalid integer typeinvalid repeat countinvalid write resultjson: Unmarshal(nil json: Unmarshal(nil)json: error calling leftrightsquigarrow;malloc during signalmissing value for %snil is not a commandnotetsleep not on g0number has no digitsout is not a pointerp mcache not flushedpacer: assist ratio=pad length too largepreempt off reason: reflect.Value.IsZeroreflect.Value.Methodreflect.Value.SetIntreflect.Value.Slice3reflect.makeFuncStubreflect: cannot use runtime: double waitruntime: pipe failedruntime: unknown pc selectgo: bad wakeupsemaRoot rotateRightslice of untyped nilsysctl kern.hostnametime: invalid numbertrace: out of memorytype not a pointer: unexpected IP lengthunexpected network: unknown PSK identityunknown address typewirep: already in goworkbuf is not emptywrite of Go pointer x509: malformed spki of unexported method previous allocCount=%s flag redefined: %s⟸⥐⇆​≧̸⧐̸⇄⊒↭, levelBits[level] = 186264514923095703125931322574615478515625A new cli applicationAnatolian_HieroglyphsCapitalDifferentialD;DoubleLeftRightArrow;DoubleLongRightArrow;EmptyVerySmallSquare;Inscriptional_PahlaviInternal Server ErrorNestedGreaterGreater;NotDoubleVerticalBar;NotGreaterSlantEqual;NotLeftTriangleEqual;NotSquareSubsetEqual;OpenCurlyDoubleQuote;Other_Grapheme_ExtendPrecondition RequiredReverseUpEquilibrium;RoundTrip failure: %vUNKNOWN_FRAME_TYPE_%dUnhandled Setting: %vWithContentEncryption_cgo_unsetenv missingafter top-level valueasync stack too largebad number syntax: %qbad type in compare: block device requiredbufio: negative countcheckdead: runnable gcommand not supportedconcurrent map writesdecompression failuredefer on system stackdevice not configuredfailed to decrypt: %wfailed to encrypt: %wfindrunnable: wrong pflag %q begins with -generate as a JWK sethttp: Handler timeouthttp: nil Request.URLillegal byte sequencein string escape codeinvalid byte sequenceinvalid named captureinvalid scalar lengthkey is not comparablelocalhost.localdomainmalformed Mach-o filenegative shift amountnet/http: nil Contextpanic on system stackpreempt at unknown pcprogram version wrongread-only file systemreflect.Value.Complexreflect.Value.Pointerreflect.Value.SetUintreleasep: invalid argruntime: confused by runtime: newstack at runtime: newstack sp=runtime: searchIdx = runtime: work.nwait= sequence tag mismatchset bit is not 0 or 1single-request-reopenstale NFS file handlestartlockedm: m has pstartm: m is spinningstate not recoverabletimer data corruptionundefined variable %qunexpected value stepunknown ABI part kindunknown address type unknown empty Contextunsupported extensionx509: invalid version into Go struct field received during fork ⅅ⇔⟹▫≫∦⩾̸⋬⋢“⥯.localhost.localdomain/etc/apache/mime.types/lib/time/zoneinfo.zip/usr/share/mime/globs20123456789aAbBcCdDeEfF1.2.840.113635.100.1.34656612873077392578125CloseCurlyDoubleQuote;DEBUG_HTTP2_GOROUTINESDoubleContourIntegral;ECDSAWithP256AndSHA256ECDSAWithP384AndSHA384ECDSAWithP521AndSHA512FilledVerySmallSquare;Inscriptional_ParthianInt.Scan: invalid verbMAX_CONCURRENT_STREAMSNegativeVeryThinSpace;No help topic for '%v'NotPrecedesSlantEqual;NotRightTriangleEqual;NotSucceedsSlantEqual;Nyiakeng_Puachue_HmongSIGTSTP: keyboard stopUnsupported Media TypeWithFetcherWorkerCountWork with JWE messagesWork with JWS messagesWrite output to `FILE`address already in useargument list too longassembly checks failedbad g->status in readybad sweepgen in refillbody closed by handlercannot allocate memorycomplete -c %s -n '%s'duplicated defer entryerror decoding messageerror parsing regexp: expected end; found %sexpected quoted stringfailed to generate keyfailed to populate: %wfailed to read kdf: %wfreeIndex is not validgetenv before env initgzip: invalid checksumheadTailIndex overflowheader field %q = %q%shpack: string too longhttp2: frame too largeidna: invalid label %qinappropriate fallbackindex out of range: %dinteger divide by zerointerface conversion: internal inconsistencyinvalid *big.Int valueinvalid Trailer key %qinvalid address familyinvalid number base %djson: unknown field %qmalformed HTTP versionminpc or maxpc invalidmissing ']' in addressnetwork is unreachablenon-Go function at pc=oldoverflow is not niloperation was canceledparenthesized pipelineprotocol not availableprotocol not supportedreflect.Value.MapIndexreflect.Value.SetFloatreflectlite.Value.Typeruntime.main not on m0runtime: kevent failedruntime: kevent on fd runtime: out of memoryruntime: work.nwait = runtime:scanstack: gp=s.freeindex > s.nelemsscanstack - bad statussend on closed channelskipping Question Nameskipping Question Typespan has no free spacestack not a power of 2timer goroutine (idle)trace reader (blocked)trace: alloc too largeundefined variable: %sunexpected key type %Tunexpected length codeunexpected method stepwirep: invalid p statewrite on closed bufferx509: malformed issuerzero length BIT STRING %dCLIENT_TRAFFIC_SECRET_0DiacriticalDoubleAcute;JWK format: json or pemLogical_Order_ExceptionMB during sweep; swept Noncharacter_Code_PointNotSquareSupersetEqual;SERVER_TRAFFIC_SECRET_0SIGIO: i/o now possibleSIGSYS: bad system callVariant Also Negotiates", missing CPU support __fish_%s_no_subcommandasn1: structure error: bytes.Buffer: too largecannot assign nil to %schan receive (nil chan)close of closed channelcommand not implementederror reading token: %wexpected []byte, got %Texpected bool; found %sfailed to compute Z: %wfailed to parse jws: %wfailed to parse key: %wfailed to set "alg": %wfailed to wrap data: %wfatal: morestack on g0 flate: internal error: function %q not definedgarbage collection scangcDrain phase incorrecthttp2: handler panickedhttp: request too largeindex out of range [%x]interrupted system callinvalid JWK format "%s"invalid PrintableStringinvalid URI for requestinvalid ecdsa.PublicKeyinvalid escape sequenceinvalid input format %sinvalid keyoperation %vinvalid m->lockedInt = invalid scalar encodingjson: cannot unmarshal kSecTrustSettingsPolicykSecTrustSettingsResultleft over markroot jobsmakechan: bad alignmentmalformed HTTP responsemissing port in addressmissing protocol schememissing type in runfinqmisuse of profBuf.writemultipart: NextPart: %vnanotime returning zeronet/http: abort Handlernetwork not implementedno application protocolno space left on deviceno trust settings foundnon-function of type %snon-zero reserved fieldoperation not permittedoperation not supportedpanic during preemptoffprocresize: invalid argreflect.Value.Interfacereflect.Value.NumMethodreflect.methodValueCallruntime: internal errorruntime: invalid type runtime: netpoll failedruntime: s.allocCount= s.allocCount > s.nelemsschedule: holding lockssegment length too longshrinkstack at bad timeskipping Question Classsocket is not connectedspan has no free stacksstack growth after forksyntax error in patternsystem huge page size (template %q not definedtext/css; charset=utf-8text/xml; charset=utf-8time: invalid duration too many pointers (>10)truncated tag or lengthunexpected address typeunexpected map key typeunexpected signal valueunknown empty width argunknown error code 0x%xunpacking Question.Nameunpacking Question.Typeunsupported certificateunsupported key size %dunsupported key type %Tvarint integer overflowwork.nwait > work.nprocx509: invalid key usagex509: malformed UTCTimex509: malformed version˝⋣) for ECDSA and OKP keys/usr/share/lib/zoneinfo/116415321826934814453125582076609134674072265625CLI TEMPLATE ERROR: %#v CLI_TEMPLATE_ERROR_DEBUGJWK_FETCHER_WORKER_COUNTNotNestedGreaterGreater;Request Entity Too LargeRequired flag %q not set", required CPU feature application/octet-streambad defer entry in panicbad defer size class: i=bypassed recovery failedcan't scan our own stackcertificate unobtainablechacha20: wrong key sizeconnection reset by peerdouble traceGCSweepStarterror decrypting messageexpected float; found %sfailed to create JWK: %wfailed to decode key: %wfailed to fetch AEAD: %wfailed to get 'iv' fieldfailed to parse JSON: %wfailed to set header: %wfailed to unwrap key: %wflate: maxBits too largefunction not implementedgcDrainN phase incorrecthash of unhashable type http2: canceling requesthttp: nil Request.Headerhw.optional.armv8_crc32idna: disallowed rune %UinitSpan: unaligned baseinvalid argument to Intninvalid ecdsa.PrivateKeyinvalid protected headerinvalid pseudo-header %qinvalid request :path %qjson: unsupported type: mapiter.AsMap failed: %wpageAlloc: out of memoryqueuefinalizer during GCrange partially overlapsreflect.Value.SetComplexreflect.Value.UnsafeAddrresource length too longrunqsteal: runq overflowruntime: found obj at *(runtime: p.searchAddr = span has no free objectsstack trace unavailable streamSafe was not resettabwriter: panic during text/html; charset=utf-8uncomparable type %s: %vunexpected buffer len=%vunexpected seed size: %dunpacking Question.Classx509: malformed validity to unused region of span⪢̸2006-01-02T15:04:05Z07:002910383045673370361328125ClockwiseContourIntegral;Content-Transfer-EncodingDoubleLongLeftRightArrow;GODEBUG: can not enable "Required flags %q not set"(\stitle="[^"<>]+")?\s?>_cgo_thread_start missingallgadd: bad status Gidlearena already initializedbad procedure for programbad status in shrinkstackbad system huge page sizecan't evaluate command %qcan't print %s of type %schansend: spurious wakeupcheckdead: no m for timercontext deadline exceededexpected string; found %sexplicit tag has no childfailed to decode PEM datafailed to decode "iv": %wfailed to decrypt key: %wfailed to encrypt key: %wfailed to get 'epk' fieldfailed to get 'p2c' fieldfailed to get 'p2s' fieldfailed to get 'tag' fieldfailed to unwrap data: %whttp2: Framer %p: read %vhttp2: Request.URI is nilhttp2: invalid header: %vhttp2: unsupported schemeillegal number syntax: %qinconsistent poll.fdMutexinvalid PEM block type %sinvalid elliptic curve %sinvalid jwa.KeyType valueinvalid key usage type %sinvalid network interfaceinvalid object identifierinvalid rsa.PublicKey: %winvalid username/passwordjson: Unexpected key typejson: unsupported value: missing stack in newstackmissing traceGCSweepStartnet/url: invalid userinfono answer from DNS serverno buffer space availableno hex data for %x stringno such file or directoryno such network interfaceno suitable address foundnot at beginning of valueoperation now in progressport number out of range reflect.Value.OverflowIntreflect.Value.SetMapIndexreflect: Bits of nil Typereleasep: invalid p stateremaining pointer buffersresource deadlock avoidedruntime: misaligned func runtime: program exceeds runtime·lock: lock countslice bounds out of rangesocket type not supportedstartm: p has runnable gsstoplockedm: not runnablestrict-transport-securitytls: protocol is shutdownunable to determine Z: %wunexpected '[' in addressunexpected ']' in addressunexpected fault address unknown Go type for slicex509: invalid RDNSequencex509: invalid RSA modulusx509: malformed extensionx509: malformed signature using unaddressable value using zero Value argument∲⟺--generate-bash-completion/etc/httpd/conf/mime.types1455191522836685180664062572759576141834259033203125: day-of-year out of rangeECDSA verification failureGODEBUG: can not disable "HTTP Version Not SupportedWork with JWK and JWK sets_CLI_ZSH_AUTOCOMPLETE_HACKaddress type not supportedalgorithm `ALG` to use to asn1: invalid UTF-8 stringbad CPU type in executablebad certificate hash valuebase 128 integer too largebidirule: failed Bidi Rulecannot marshal DNS messagechacha20: counter overflowchacha20: wrong nonce sizecorrupted semaphore ticketcryptobyte: internal errorduplicate pseudo-header %qed25519: bad seed length: encountered a cycle via %sentersyscall inconsistent expected '{', but got '%c'expected complex; found %sexpected integer; found %sfailed to OAEP encrypt: %wfailed to decode "aad": %wfailed to decode "tag": %wfailed to marshal PKIX: %wfailed to open file %s: %wfailed to parse header: %wfailed to parse keyset: %wfailed to seal on hmac: %vfailed to set field %s: %wfailed to sign payload: %wfailed to visit key %s: %wfailed to write header: %wforEachP: P did not run fnfreedefer with d.fn != nilhttp2: Framer %p: wrote %vid (%v) <= evictCount (%v)initSpan: unaligned lengthinteger overflow on token invalid argument to Int31ninvalid argument to Int63ninvalid curve algorithm %sinvalid number of segmentsinvalid port %q after hostinvalid rsa.PrivateKey: %winvalid use of gostartcallinvalid value; expected %skey provider %d failed: %wmalformed HTTP status codemalformed chunked encodingnet/http: request canceledno message of desired typenon sequence tagged as setnotewakeup - double wakeupoption --alg must be givenout of memory (stackalloc)persistentalloc: size == 0read from empty dataBufferreadLoopPeekFailLocked: %vreflect.Value.CanInterfacereflect.Value.MethodByNamereflect.Value.OverflowUintruntime: bad span s.state=runtime: pipe failed with segment prefix is reservedshrinking stack in libcallstartlockedm: locked to mestopped after 10 redirectstoo many colons in addresstoo many slice indexes: %dtruncated base 128 integerunexpected . after term %qunexpected right paren %#Uunknown ABI parameter kindunterminated quoted stringx509: malformed extensionsx509: malformed parameters in action started at %s:%d is not assignable to type 363797880709171295166015625CurveP256CurveP384CurveP521DATA frame with stream ID 0ERROR invalid Action type. G waiting list is corruptedNAF digits must fit in int8SIGILL: illegal instructionSIGXCPU: cpu limit exceeded"2006-01-02T15:04:05Z07:00"access-control-allow-originaddress not a stack addressafter object key:value pairargument must be a map (%s)binary.Write: invalid type can't index item of type %scan't slice item of type %scgoUse should not be calledcipher: incorrect length IVcrypto/rsa: invalid moduluscryptobyte: length overflowcurrent time %s is after %sfailed to clone headers: %wfailed to crypt content: %wfailed to decode "keys": %wfailed to decode source: %wfailed to encode header: %wfailed to get random iv: %wfailed to marshal PKCS8: %wfailed to merge headers: %wfailed to parse message: %wflag needs an argument: -%sgcstopm: not waiting for gcgrowslice: cap out of rangehkdf: entropy limit reachedhttp chunk length too largehttp2: response body closedinsufficient security levelinternal lockOSThread errorinvalid HTTP header name %qinvalid argument to Shuffleinvalid boolean flag %s: %vinvalid dependent stream IDinvalid profile bucket typeinvalid type for %s key: %Tinvalid type for comparisoninvalid value %T for %s keyio.File missing Seek methodmakechan: size out of rangemakeslice: cap out of rangemakeslice: len out of rangemap has no entry for key %qmspan.sweep: bad span statenet/http: invalid method %qnet/http: use last responseprogToPointerMask: overflowrange can't iterate over %vreflect.Value.OverflowFloatrequired field d is missingrequired field e is missingrequired field k is missingrequired field n is missingrequired field x is missingrequired field y is missingrunlock of unlocked rwmutexruntime: asyncPreemptStack=runtime: checkdead: find g runtime: checkdead: nmidle=runtime: corrupted polldescruntime: netpollinit failedruntime: thread ID overflowruntime·unlock: lock countset key ID from jwk.Key: %wsignal received during forksigsend: inconsistent statesocket is already connectedstack size not a power of 2startm: negative nmspinningstopTheWorld: holding lockstime: invalid location nametimer when must be positivetls: short read from Rand: too many declarations in %sunsupported protocol schemeunsupported string type: %vwork.nwait was > work.nprocx509: malformed certificate after object key:value pair args stack map entries for !#$%&()*+-./:;<=>?@[]^_{|}~ %q is not a defined function/usr/local/share/mime/globs218189894035458564758300781259094947017729282379150390625CFNumberGetValue call failedEd25519 verification failureFixedStack is not power-of-2Prepended_Concatenation_MarkSIGCONT: continue after stopSIGHUP: terminal line hangupSIGWINCH: window size changeTransfer-Encoding: chunked [originating from goroutine asn1: string not valid UTF-8cannot unmarshal DNS messagecomparing uncomparable type crypto/rsa: decryption errorcurrent time %s is before %sdestination address requirederror reading next value: %wfailed to create file %s: %wfailed to decode payload: %wfailed to generate nonce: %wfailed to get public key: %wfatal: morestack on gsignal findrunnable: netpoll with pforgetting unknown stream idfound pointer to free objectgcBgMarkWorker: mode not setgcstopm: negative nmspinninggeneral SOCKS server failurehttp2: Transport received %shttp2: client conn is closedhttp: no Host in request URLhw.optional.armv8_1_atomicsinvalid P-521 field encodinginvalid byte in chunk lengthinvalid header field name %qinvalid key: []byte requiredinvalid proxy address %q: %vinvalid runtime symbol tableinvalid slice index: %d > %dinvalid value for %s key: %Tinvalid value for %s key: %wjson: Unmarshal(non-pointer malformed MIME header line: mheap.freeSpanLocked - span missing stack in shrinkstackmspan.sweep: m is not lockedmultipart: boundary is emptymultipart: message too largeneed padding in bucket (key)negative n for ProbablyPrimenewproc1: new g is not Gdeadnewproc1: newg missing stacknil pointer evaluating %s.%sos: process already finishedoverflow on character value pending ASN.1 child too longreflect.MakeSlice: len > capreflect: In of non-func typereflect: Key of non-map typeregion exceeds uintptr rangeruntime: bad lfnode address runtime: casgstatus: oldval=runtime: kevent failed with runtime: kqueue failed with runtime: no module data for save on system g not allowedunexpected end of JSON inputunexpected protocol version unexpected type for 'iv': %Tunreserving unaligned regionunsupported compression for x509: invalid DSA parametersx509: invalid DSA public keyx509: invalid RSA public keyx509: unknown elliptic curve cannot be converted to type 45474735088646411895751953125Elliptic curve name `CURVE` (Mon, 02 Jan 2006 15:04:05 GMTMon, 02 Jan 2006 15:04:05 MSTMon, 02-Jan-2006 15:04:05 MSTNon-Authoritative InformationProxy Authentication RequiredSIGPIPE: write to broken pipeTime.UnmarshalBinary: no dataUnavailable For Legal Reasons`FILE` containing the key to addspecial on invalid pointerbufio.Scanner: token too longcannot 3-index slice a stringcould not decode field %s: %wcrypto/aes: invalid key size crypto/des: invalid key size crypto/rc4: invalid key size crypto/rsa: invalid exponentsdup idle pconn %p in freelistfailed to b64-decode 'iv': %wfailed to decode field %s: %wfailed to decrypt message: %wfailed to decrypt payload: %wfailed to encode %s field: %wfailed to encrypt message: %wfailed to encrypt payload: %wfailed to fetch AEAD data: %wfailed to get random salt: %wfailed to marshal headers: %wfailed to marshal key #%d: %wfailed to marshal message: %wfailed to set new headers: %wfailed to setup recipient: %wgc done but gcphase != _GCoffgfput: bad status (not Gdead)http2: client conn not usablehttp2: client connection losthttp: idle connection timeoutinteger not minimally-encodedinternal error: took too muchinvalid character class rangeinvalid header field value %qinvalid length of trace eventinvalid x value given d valueio: read/write on closed pipekSecTrustSettingsPolicyStringmime: invalid media parametermismatched local address typeneed padding in bucket (elem)nil data; no entry for key %qnon-empty []byte key requirednotesleep - waitm out of syncoperation already in progresspadding contained in alphabetpkcs12: odd-length BMP stringpoly1305: unexpected overflowprotocol family not supportedreflect.Value.OverflowComplexreflect: Elem of invalid typereflect: In of non-func type reflect: Key of non-map type reflect: Out of non-func typerequired field crv is missingruntime: impossible type kindruntime: levelShift[level] = runtime: marking free object runtime: p.gcMarkWorkerMode= runtime: split stack overflowruntime: sudog with non-nil cruntime: summary max pages = runtime: unknown pc in defer semacquire not on the G stackstring concatenation too longsyntax error scanning booleantls: invalid NextProtos valuetls: invalid server key sharetls: too many ignored recordstoo many open files in systemunexpected type for 'p2c': %Tunexpected type for 'p2s': %Tunexpected type for 'tag': %Tunknown IP protocol specifiedunknown certificate authorityx509: cannot parse URI %q: %sx509: cannot parse dnsName %qx509: malformed serial numberx509: unsupported time formatzero length OBJECT IDENTIFIER (types from different scopes) in prepareForSweep; sweepgen locals stack map entries for 227373675443232059478759765625GCM requires 96-bit iv, got %dGODEBUG: unknown cpu feature "Generate a new JWK private keyHEADERS frame with stream ID 0MapIter.Key called before NextSIGPROF: profiling alarm clockSIGUSR1: user-defined signal 1SIGUSR2: user-defined signal 2SIGVTALRM: virtual alarm clock__fish_seen_subcommand_from %sabi mismatch detected between asn1: cannot marshal nil valueassignment to entry in nil mapcan't assign requested addresscheckdead: inconsistent countscrypto/dsa: invalid public keycrypto/rsa: verification errorfailed to b64-decode 'tag': %wfailed to base64 decode iv: %wfailed to build public key: %wfailed to compute auth tag: %wfailed to copy headers (2): %wfailed to decode signature: %wfailed to get system page sizefailed to marshal field %q: %wfailed to match hmac signaturefailed to set "alg" header: %wfailed to set "kid" header: %wfailed to unmarshal buffer: %wfreedefer with d._panic != nilhttp2: decoded hpack field %+vhttp: named cookie not presentillegal window increment valuein exponent of numeric literalinappropriate ioctl for deviceinterface output queue is fullinvalid ciphertext (too short)invalid function symbol table invalid network interface nameinvalid pointer found on stackjwk.New requires a non-nil keylooking for beginning of valuemime: duplicate parameter namemissing validateFirstLine funcno message available on STREAMnotetsleep - waitm out of syncpayload must not contain a "."persistConn was already in LRUprotocol version not supportedprotocol wrong type for socketreflect: Elem of invalid type reflect: Len of non-array typereflect: Out of non-func type runqputslow: queue is not fullruntime: bad g in cgocallback runtime: bad pointer in frame runtime: found in object at *(runtime: impossible type kind socket operation on non-socketsquare root of negative numberstream error: stream ID %d; %vstrings: negative Repeat countsync: inconsistent mutex statesync: unlock of unlocked mutextext/javascript; charset=utf-8transform: short source bufferunterminated raw quoted stringx509: SAN dNSName is malformedx509: invalid ECDSA parametersx509: malformed issuerUniqueID looking for beginning of value) not in usable address space: ...additional frames elided... 11368683772161602973937988281255684341886080801486968994140625CLIENT_HANDSHAKE_TRAFFIC_SECRETInput format `INPUT` (json/pem)Network Authentication RequiredPRIORITY frame with stream ID 0Request Header Fields Too LargeRequested Range Not SatisfiableSERVER_HANDSHAKE_TRAFFIC_SECRETSIGSEGV: segmentation violationTLS: sequence number wraparoundbad certificate status responsebad write barrier buffer boundscasgstatus: bad incoming valuescheckmark found unmarked objectcrypto/rsa: invalid prime valueentersyscallblock inconsistent expected colon after object keyfailed to b64-decode 'salt': %wfailed to base64 decode tag: %wfailed to match EdDSA signaturefailed to parse certificate: %wfailed to parse header JSON: %wfailed to serialize to JSON: %wfailed to set encrypted key: %wfailed to unmarshal JWK set: %wfailed to write z using kdf: %wfatal: bad g in signal handler fmt: unknown base; can't happenhttp2: connection error: %v: %vin literal null (expecting 'l')in literal null (expecting 'u')in literal true (expecting 'e')in literal true (expecting 'r')in literal true (expecting 'u')internal error - misuse of itabinvalid elliptic curve name: %winvalid key type from JSON (%s)invalid network interface indexjson: invalid number literal %qkeywrap: failed to wrap key: %wmalformed time zone informationmergeRuneSets odd length []runemissing argument for comparisonnet/http: TLS handshake timeoutnon in-use span in unswept listpacer: sweep done at heap size pattern contains path separatorrange over send-only channel %vreflect.MakeSlice: negative capreflect.MakeSlice: negative lenreflect: Len of non-array type reflect: NumIn of non-func typeresetspinning: not a spinning mruntime: cannot allocate memoryruntime: split stack overflow: shared library version mismatchslice bounds out of range [%x:]slice bounds out of range [:%x]sotypeToNet unknown socket typetime: missing unit in duration tls: failed to sign handshake: tls: no certificates configuredtls: unsupported public key: %Ttoo many authentication methodstoo many transfer encodings: %qunterminated character constantvalue has type %s; should be %swriteBytes with unfinished bitsx509: certificate is valid for x509: malformed GeneralizedTimex509: malformed subjectUniqueIDx509: malformed tbs certificate (types from different packages)!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~28421709430404007434844970703125: day-of-year does not match dayCounterClockwiseContourIntegral;GCM requires 128-bit tag, got %dJWK type `TYPE` (RSA/EC/OKP/oct)MapIter.Value called before NextSIGFPE: floating-point exceptionSIGTTOU: background write to ttySecTrustSettingsCopyCertificates" not supported for cpu option "bad input point: low order pointbufio: invalid use of UnreadBytebufio: invalid use of UnreadRunebufio: tried to fill full buffercan't send after socket shutdowncannot represent time as UTCTimechacha20: invalid buffer overlapchacha20poly1305: bad key lengthcrypto/aes: input not full blockcrypto/des: input not full blocked25519: bad public key length: end outside usable address spacefailed to compute public key: %wfailed to parse JOSE headers: %wfailed to unmarshal template: %wflag provided but not defined: -go package net: hostLookupOrder(in literal false (expecting 'a')in literal false (expecting 'e')in literal false (expecting 'l')in literal false (expecting 's')integer is not minimally encodedinternal error: bigIntToFiatP521invalid range: failed to overlapinvalid type for jwa.KeyType: %Tkey unwrap: failed to unwrap keymalformed character constant: %smime: expected token after slashnon-Go code disabled sigaltstacknumerical argument out of domainpanic while printing panic valueread limit of %d bytes exhaustedreflect.nameFrom: tag too long: reflect: NumIn of non-func type reflect: NumOut of non-func typeremovespecial on invalid pointerresource temporarily unavailableruntime: mcall function returnedruntime: newstack called from g=runtime: root level max pages = runtime: stack split at bad timeruntime: sudog with non-nil elemruntime: sudog with non-nil nextruntime: sudog with non-nil prevscanstack: goroutine not stoppedslice bounds out of range [%x::]slice bounds out of range [:%x:]slice bounds out of range [::%x]software caused connection abortsweep increased allocation countsync: Unlock of unlocked RWMutexsync: negative WaitGroup countertls: NextProtos values too largetls: unknown Renegotiation valuetransform: short internal bufferuse of closed network connectionx509: ECDSA verification failurex509: cannot parse rfc822Name %qx509: invalid constraint value: x509: invalid private key lengthx509: malformed subjectPublicKeyx509: unknown SignatureAlgorithmx509: unsupported elliptic curve of method on nil interface value to pointer to array with length ∳142108547152020037174224853515625710542735760100185871124267578125GODEBUG: no value specified for "Output format `OUTPUT` (json/pem)SIGCHLD: child status has changedSIGTTIN: background read from ttySIGXFSZ: file size limit exceededSecTrustSettingsCopyTrustSettingsapplication/x-www-form-urlencodedbad point length: %d, expected %dbase outside usable address spacebytes.Buffer.Grow: negative countbytes.Reader.Seek: invalid whencecannot index slice/array with nilcomplete -r -c %s -n '%s' -a '%s'concurrent map read and map writeconnection not allowed by rulesetcrypto/aes: output not full blockcrypto/des: output not full blockcrypto: requested hash function #ed25519: bad private key length: expected *ecdsa.PublicKey, got %Tfailed to build key decrypter: %wfailed to create new GCM wrap: %wfailed to decode "ciphertext": %wfailed to find matching recipientfailed to generated signature: %wfailed to read from io.Reader: %wfailed to retrieve public key: %wfailed to write rsaThumbprint: %wfindrunnable: negative nmspinningfreeing stack not in a stack spanheapBitsSetType: unexpected shifthttp2: invalid pseudo headers: %vhttp2: recursive push not allowedhttp: CloseIdleConnections calledhttp: invalid Read on closed Bodyinappropriate file type or formatincompatible types for comparisonindefinite length found (not DER)invalid ciphertext (tag mismatch)invalid key type '%T' for jwk.Newinvalid key: []byte required (%T)invalid username/password versioninvalid value %q for flag -%s: %vleafCounts[maxBits][maxBits] != nmin must be a non-zero power of 2misrounded allocation in sysAllocmissing key while signing payloadnet/http: skip alternate protocoloperation not supported by deviceoperation not supported on socketpad size larger than data payloadpseudo header field after regularreflect.nameFrom: name too long: reflect: Field index out of rangereflect: NumOut of non-func type reflect: array index out of rangereflect: chanDir of non-chan typereflect: slice index out of rangeregexp: unhandled case in compileruntime: castogscanstatus oldval=runtime: failed mSpanList.insert runtime: goroutine stack exceeds runtime: memory allocated by OS [runtime: name offset out of rangeruntime: text offset out of rangeruntime: type offset out of rangescalar has high bit set illegallyslice bounds out of range [%x:%y]stackalloc not on scheduler stackstoplockedm: inconsistent lockingstruct contains unexported fieldssync: RUnlock of unlocked RWMutextimer period must be non-negativetls: failed to write to key log: tls: invalid server finished hashtls: unexpected ServerKeyExchangetoo many Answers to pack (>65535)too many levels of remote in pathtoo many levels of symbolic linkstoo many references: can't spliceunsupported transfer encoding: %qwaiting for unsupported file typex509: SAN rfc822Name is malformedx509: invalid RSA public exponentx509: invalid basic constraints ax509: invalid basic constraints bx509: invalid basic constraints cx509: invalid extended key usages%s %q is excluded by constraint %q3552713678800500929355621337890625: day-of-year does not match monthOther_Default_Ignorable_Code_PointSIGURG: urgent condition on socketTLS 1.3, client CertificateVerifyTLS 1.3, server CertificateVerifyadding nil Certificate to CertPoolbad executable (or shared library)bad scalar length: %d, expected %dcan't evaluate field %s in type %scan't handle %s for arg of type %schacha20: wrong HChaCha20 key sizeconnection doesn't support Ed25519crypto/aes: invalid buffer overlapcrypto/des: invalid buffer overlapcrypto/rc4: invalid buffer overlapcrypto/rsa: missing public modulusdoaddtimer: P already set in timerexpected an RSA public key, got %Texpected comma after array elementfailed to convert key into JWK: %wfailed to create key generator: %wfailed to decode encrypted key: %wfailed to decode headers field: %wfailed to decrypt via PKCS1v15: %wfailed to generate public keys: %wfailed to get public key of %T: %wfailed to marshal signature %d: %wfailed to parse EC private key: %wfailed to parse JWK for key %s: %wfailed to write to destination: %wflag provided but not defined: -%sforEachP: sched.safePointWait != 0http2: aborting request body writehttp: MultipartReader called twicehttp: connection has been hijackedhttp: persistConn.readLoop exitinghttp: read on closed response bodyillegal base64 data at input byte in \u hexadecimal character escapeinvalid elliptic curve name %s: %winvalid jws.VerifyOption %q passedinvalid nested repetition operatorinvalid or unsupported Perl syntaxinvalid padding bits in BIT STRINGinvalid signature algorithm %s: %wjwe.Decrypt: decryption failed: %wjwe.Encrypt: invalid serializationmspan.ensureSwept: m is not lockedout of memory allocating allArenasreflect.FuncOf: too many argumentsreflect: ChanDir of non-chan type reflect: Field index out of boundsreflect: Field of non-struct type reflect: Method index out of rangereflect: recv on send-only channelreflect: send on recv-only channelreflect: string index out of rangeruntime.SetFinalizer: cannot pass runtime: g is running but p is notruntime: netpollBreak write failedruntime: unexpected return pc for schedule: spinning with local workslice bounds out of range [%x:%y:]slice bounds out of range [:%x:%y]stream error: stream ID %d; %v; %vtimeout waiting for client prefacetls: malformed key_share extensionunsupported authentication method value is nil; should be of type %sx509: Ed25519 verification failurex509: invalid certificate policiesx509: unhandled critical extensionx509: unknown public key algorithm%d response missing Location header'_' must separate successive digits177635683940025046467781066894531252006-01-02T15:04:05.999999999Z07:0088817841970012523233890533447265625CONTINUATION frame with stream ID 0List available algorithms and typesattempt to clear non-empty span setchacha20: output smaller than inputcrypto/md5: invalid hash state sizedst must be a pointer to a map (%s)dynamic table size update too largeed25519: cannot sign hashed messageencoding/hex: odd length hex stringexpected base64 encoded []byte (%T)expected unsigned integer; found %sfailed to base decode signature: %wfailed to base64 decode content: %wfailed to base64 decode payload: %wfailed to copy protected header: %wfailed to create GCM for cipher: %wfailed to create new AES cipher: %wfailed to create payload signer: %wfailed to encode value for field %sfailed to initialize %T from %T: %wfailed to iterate over map type: %wfailed to parse PEM encoded key: %wfailed to parse PKIX public key: %wfailed to parse sole key in key setfailed to read data from source: %wfailed to read from rand.Reader: %wfailed to unmarshal jws message: %wfailed to write payload to hash: %wfailed to write round using kdf: %wfile type does not support deadlinefindfunc: bad findfunctab entry idxfindrunnable: netpoll with spinningflate: corrupt input before offset greyobject: obj not pointer-alignedhpack: invalid Huffman-encoded datahttp: server closed idle connectioninvalid value for key usage type %skeywrap input must be 8 byte blocksmheap.freeSpanLocked - invalid freemime: bogus characters after %%: %qmime: invalid RFC 2047 encoded-wordnetwork dropped connection on resetno such multicast network interfacepersistentalloc: align is too largepidleput: P has non-empty run queuerange can only initialize variablesreflect.MakeSlice of non-slice typeruntime: close polldesc w/o unblockruntime: inconsistent read deadlineryuFtoaFixed32 called with prec > 9strings.Reader.Seek: invalid whencesuperfluous leading zeros in lengthtls: server selected an invalid PSKtls: too many non-advancing recordstoo many Questions to pack (>65535)traceback did not unwind completelytransform: short destination bufferunexpected 'epk' type %T for alg %sunsigned integer overflow on token unsupported signature algorithm: %vx509: decryption password incorrectx509: failed to marshal curve OID: x509: invalid authority info accessx509: malformed extention OID fieldx509: wrong Ed25519 public key size LastStreamID=%v ErrCode=%v Debug=%q%s is not a method but has arguments) is larger than maximum page size () is not Grunnable or Gscanrunnable 0123456789abcdefghijklmnopqrstuvwxyz444089209850062616169452667236328125Go pointer stored into non-Go memoryIA5String contains invalid characterSIGEMT: emulate instruction executedTime.UnmarshalBinary: invalid lengthbytes.Reader.ReadAt: negative offsetbytes.Reader.Seek: negative positionchacha20: wrong HChaCha20 nonce sizecompressed name in SRV resource datacrypto/cipher: input not full blockscrypto/rand: argument to Int is <= 0crypto/sha1: invalid hash state sizecrypto/sha512: invalid hash functionedwards25519: invalid point encodingexceeded maximum template depth (%v)expected an ECDSA public key, got %Tfailed to copy protected headers: %wfailed to create gcm from cipher: %wfailed to create jwk.Key from %T: %wfailed to decode "encrypted_key": %wfailed to decode value for key %s:%wfailed to encrypt using PKCS1v15: %wfailed to merge recipient header: %wfailed to parse PKCS1 public key: %wfailed to produce []byte from %T: %whttp: no Location header in responsehttp: unexpected EOF reading trailerinternal error: associate not commoninvalid boolean value %q for -%s: %vinvalid jwa.SignatureAlgorithm valueinvalid key encryption algorithm: %winvalid semicolon separator in queryjson: encoding error for type %q: %qkey size not a multiple of key alignmalformed MIME header initial line: method ABI and value ABI don't alignno acceptable authentication methodsreflect: NumField of non-struct typeruntime: bad notifyList size - sync=runtime: inconsistent write deadlineruntime: invalid pc-encoded table f=runtime: invalid typeBitsBulkBarrierruntime: marked free object in span runtime: mcall called on m->g0 stackruntime: sudog with non-nil waitlinkruntime: unblock on closing polldescruntime: wrong goroutine in newstackryuFtoaFixed64 called with prec > 18signal arrived during cgo execution strings.Builder.Grow: negative countsyntax error scanning complex numbertls: keys must have at least one keytls: server did not send a key shareuncaching span but s.allocCount == 0unsupported SSLv2 handshake receivedunsupported signature algorithm "%s"wrong number of args: got %d want %dx509: invalid CRL distribution pointx509: invalid subject key identifierx509: malformed algorithm identifierx509: zero or negative DSA parameter%q is an incomplete or empty template) is smaller than minimum page size (2220446049250313080847263336181640625Display public key version of the keyRoundTrip on uninitialized ClientConnSIGINFO: status request from keyboard"enc" field cannot be an empty string_cgo_notify_runtime_init_done missingall goroutines are asleep - deadlock!bytes.Buffer: truncation out of rangecannot create context from nil parentcannot index slice/array with type %schacha20poly1305: plaintext too largecipher: message authentication failedcomment ends before closing delimitercould not verify with any of the keyscrypto/cipher: incorrect GCM tag sizecrypto/cipher: invalid buffer overlapcrypto/rsa: public exponent too largecrypto/rsa: public exponent too smallcrypto/rsa: unsupported hash functioncrypto: Size of unknown hash functiondecrypt key: unsupported algorithm %sdereference of nil pointer of type %sexplicitly tagged member didn't matchfailed to decode value for key %q: %wfailed to decode value for key %s: %wfailed to generate key for X25519: %wfailed to parse PKCS1 private key: %wfailed to parse PKCS8 private key: %wfailed to reserve page summary memoryfailed to unmarshal signature #%d: %wfetching url %q rejected by whitelistinvalid content cipher algorithm (%s)invalid key encryption algorithm (%s)jwk file must contain exactly one keyjws.Sign: failed to create signer: %wmethod ABI and value ABI do not alignout does not point to an integer typereflect.Value.Bytes of non-byte slicereflect.Value.Bytes of non-rune slicereflect.Value.Convert: value of type reflect: Bits of non-arithmetic Type reflect: IsVariadic of non-func type reflect: NumField of non-struct type reflect: funcLayout of non-func type runtime: allocation size out of rangeruntime: netpoll: break fd ready for runtime: unexpected SPWRITE function setprofilebucket: profile already setstartTheWorld: inconsistent mp->nextpstrings: Repeat count causes overflowsubtle: slices have different lengthstls: unsupported certificate key (%T)too many Additionals to pack (>65535)too many Authorities to pack (>65535)unexpected CONTINUATION for stream %dunrecognized character in action: %#Ux509: RSA key missing NULL parametersx509: invalid CRL distribution pointsx509: invalid Ed25519 private key: %vx509: malformed extention value fieldx509: unsupported private key versionx509: unsupported public key type: %T%s#deprecated-cli-app-action-signature1110223024625156540423631668090820312555511151231257827021181583404541015625Extra values in the JWK as JSON objectaddtimer called with initialized timerafter decimal point in numeric literalarg size to reflect.call more than 1GBasn1: Unmarshal recipient value is nilcan't give argument to non-function %schacha20poly1305: ciphertext too largeconcurrent map iteration and map writecrypto/sha256: invalid hash state sizecrypto/sha512: invalid hash state sizeelem size not a multiple of elem alignencoding alphabet is not 64-bytes longevalEmptyInterface: nil (can't happen)expected an Ed25519 public key, got %Tfailed to close compression writer: %wfailed to decode key #%d in "keys": %wfailed to decode protected headers: %wfailed to encode protected headers: %wfailed to format key in PEM format: %wfailed to generate key for ECDH-ES: %wfailed to generate rsa private key: %wfailed to get raw key from jwk.Key: %wfailed to marshal recipient header: %wfailed to merge unprotected header: %wfailed to parse Location header %q: %vfailed to parse buffer for Decrypt: %wfailed to retrieve raw key from %T: %wfailed to set headers to recipient: %wfailed to sign payload using ecdsa: %wfailed to verify signature using ecdsafailed to write payload using hmac: %wgcBgMarkWorker: blackening not enabledindex out of range [%x] with length %yindirection through explicit nil in %sinsufficient data for base length typeinternal error: unknown signature typeinternal error: unknown string type %dinvalid jwa.CompressionAlgorithm valuejws.Sign: invalid serialization formatkeyunwrap input must be %d byte blocksm changed unexpectedly in cgocallbackgmakechan: invalid channel element typemime: expected slash after first tokennet/http: invalid header field name %qreflect: Method on nil interface valueruntime: blocked read on free polldescruntime: function symbol table header:runtime: sudog with non-false isSelectstrings.Reader.ReadAt: negative offsetstrings.Reader.Seek: negative positiontemplate: %s: executing %q at <%s>: %stime: missing Location in call to Datetls: internal error: unsupported curvetls: invalid ClientKeyExchange messagetls: invalid ServerKeyExchange messagetls: missing ServerKeyExchange messagetls: server selected unsupported curvetls: server selected unsupported groupunexpected key encryption algorithm %sunreachable method called. linker bug?x509: cannot validate certificate for x509: empty name constraints extensionx509: failed to parse EC private key: x509: invalid authority key identifierx509: invalid subject alternative name because it doesn't contain any IP SANs2006-01-02 15:04:05.999999999 -0700 MST277555756156289135105907917022705078125↩︎Cannot use two forms of the same flag: Encrypt payload to generage JWE messageasn1: Unmarshal recipient value is nil chain is not signed by an acceptable CAcipher: incorrect tag size given to GCMcrypto/rsa: invalid options for Decryptcrypto/x509: trust settings for %v: %d crypto/x509: trust settings for %v: %v failed to create RSA OAEP encrypter: %wfailed to create RSA PKCS encrypter: %wfailed to create key wrap encrypter: %wfailed to encode value for field %s: %wfailed to materialize symmetric key: %wfailed to retrieve public key of %T: %wfailed to write payload using ecdsa: %wgo package net: using cgo DNS resolver heapBitsSetTypeGCProg: small allocationhttp: putIdleConn: keep alives disabledinvalid ECDH-ES key wrap algorithm (%s)invalid RSA OAEP decrypt algorithm (%s)invalid RSA OAEP encrypt algorithm (%s)invalid RSA PKCS encrypt algorithm (%s)invalid indexed representation index %dinvalid kty value for RSAPublicKey (%s)jwe.Encrypt: failed to generate key: %wmath/big: buffer too small to fit valuemismatched count during itab table copymissing argument to repetition operatormspan.sweep: bad span state after sweepnegative minwidth, tabwidth, or paddingno mutually supported protocol versionsout of memory allocating heap arena mapreflect.MakeMapWithSize of non-map typerequired field "signatures" not presentruntime: blocked write on free polldescruntime: casfrom_Gscanstatus failed gp=stack growth not allowed in system callsuspendG from non-preemptible goroutinetags don't match (%d vs %+v) %+v %s @%dtls: internal error: wrong nonce lengthtls: unsupported certificate curve (%s)traceback: unexpected SPWRITE function trailing backslash at end of expressionusername/password authentication failedx509: failed to marshal private key: %vx509: failed to parse URI constraint %qx509: invalid NameConstraints extensionx509: invalid subject alternative namesx509: unknown EC private key version %d%s %q is not permitted by any constraint13877787807814456755295395851135253906256938893903907228377647697925567626953125Frame accessor called on non-owned FrameInteger `SIZE` for RSA and oct key sizesMapIter.Key called on exhausted iteratorNumericString contains invalid characterattempted to copy pointer to FP registerbulkBarrierPreWrite: unaligned argumentscannot free workbufs when work.full != 0cannot represent time as GeneralizedTimechacha20poly1305: invalid buffer overlapclient doesn't support certificate curvecrypto/cipher: message too large for GCMcrypto/cipher: output smaller than inputcrypto/rsa: input must be hashed messagedeferproc: d.panic != nil after newdeferedwards25519: use of uninitialized PointevictOldest(%v) on table with %v entriesfailed to assign used key (%T) to %T: %wfailed to copy headers from argument: %wfailed to copy headers from receiver: %wfailed to encode content for key #%d: %wfailed to encode unprotected headers: %wfailed to fetch content crypt cipher: %wfailed to generate ECDSA private key: %wfailed to materialize RSA public key: %wfailed to retrieve raw key out of %T: %wfailed to unmashal JSON into message: %wfailed to write other info using kdf: %whttp2: Transport encoding header %q = %qhttp2: timeout awaiting response headersinvalid compact serialization format: %winvalid content encryption algorithm: %winvalid jwa.EllipticCurveAlgorithm valueinvalid jwa.KeyEncryptionAlgorithm valueio.File directory missing ReadDir methodjwe.Encrypt: failed to merge headers: %wmalformed MIME header: missing colon: %qmultipart: unexpected line in Next(): %qoversized record received with length %dprotocol error: headers after END_STREAMquotedprintable: invalid hex byte 0x%02xrefill of span with free space remainingreflect.Value.Call: call of nil functionreflect.Value.Call: wrong argument countreflect.Value.SetBytes of non-byte slicereflect.Value.setRunes of non-rune slicereflect: FieldByName of non-struct type rsa: internal error: inconsistent lengthruntime.SetFinalizer: first argument is runtime: netpollBreak write failed with runtime: out of memory: cannot allocate runtime: typeBitsBulkBarrier with type ryuFtoaFixed32 called with negative prectime: Stop called on uninitialized Timertls: received empty certificates messagevalue for field "keys" must be []jwk.Keyx509: cannot parse IP address of length x509: malformed extention critical field received on thread with no signal stack 34694469519536141888238489627838134765625MapIter.Next called on exhausted iteratorTime.UnmarshalBinary: unsupported versionasn1: internal error in parseTagAndLengthattempted to add zero-sized address rangebinary: varint overflows a 64-bit integerbytes.Buffer.WriteTo: invalid Write countbytes.Reader.WriteTo: invalid Write countcan't call pointer on a non-pointer Valuecgo argument has Go pointer to Go pointercrypto/md5: invalid hash state identifierfailed to build content cipher for %s: %wfailed to create new JWK from raw key: %wfailed to generate x25519 private key: %wfailed to materialize RSA private key: %wfailed to unmarshal certificate chain: %wfailed to unmarshal protected headers: %wfailed to write to compression writer: %wgcSweep being done but phase is not GCoffhttp2: invalid Upgrade request header: %qhttp2: no cached connection was availableidna: internal error in punycode encodinginvalid value length: expected %d, got %dmheap.freeSpanLocked - invalid span statemheap.freeSpanLocked - invalid stack freemissing private key while signing payloadnet/url: invalid control character in URLobjects added out of order or overlappingreflect.Value.Addr of unaddressable valuereflect: FieldByIndex of non-struct type runtime.SetFinalizer: second argument is runtime: blocked read on closing polldescruntime: typeBitsBulkBarrier without typestopTheWorld: not stopped (stopwait != 0)strconv: illegal AppendInt/FormatInt basesync/atomic: swap of nil value into Valuetime: Reset called on uninitialized Timertime: missing Location in call to Time.Intls: handshake has not yet been performedtls: internal error: unsupported key (%T)transport got GOAWAY with error code = %vunexpected call to os.Exit(0) during testvalue too large to be stored in data typewrong type for value; expected %s; got %sx509: cannot parse URI %q: invalid domain received but handler not on signal stack 173472347597680709441192448139190673828125867361737988403547205962240695953369140625MapIter.Value called on exhausted iteratorPRIORITY frame payload size was %d; want 5PrintableString contains invalid characterTime.MarshalBinary: unexpected zone offsetacquireSudog: found s.elem != nil in cachecrypto/sha1: invalid hash state identifierfailed to create content cipher for %s: %wfailed to decode protected headers (1): %wfailed to decode protected headers (2): %wfailed to decode recipient at index %d: %wfailed to derive ECDHES encryption key: %wfailed to generate ed25519 private key: %wfailed to marshal key into JSON format: %wfailed to unmarshal JSON into key (%T): %wfailed to unmarshal JSON into key hint: %wfunction name %q is not a valid identifierhttp: ContentLength=%d with Body length %dhttp: multipart handled by MultipartReaderinsufficient data for resource body lengthinternal error: no fields in evalChainNodeinvalid HTTP header value %q for header %qlooking for beginning of object key stringmismatch between ABI description and typesmissing public key while verifying payloadmix of request and response pseudo headersnon-empty mark queue after concurrent markon a locked thread with no template threadout of memory allocating checkmarks bitmappersistentalloc: align is not a power of 2poly1305: write to MAC after Sum or Verifyquotedprintable: invalid bytes after =: %qreflect: Call with too few input argumentsreflect: cannot convert slice with length runtime: blocked write on closing polldescsync/atomic: store of nil value into Valueunexpected signal during runtime executionx509: %q cannot be encoded as an IA5Stringx509: RSA modulus is not a positive number looking for beginning of object key string%s is an unexported field of struct type %sError enabling Transport HTTP/2 support: %vTransport: unhandled response frame type %Tbufio: tried to rewind past start of bufferedwards25519: invalid point encoding lengthexplicit time type given to non-time memberfailed to create cipher from shared key: %wfailed to execute block cipher function: %wfailed to produce rsa.PublicKey from %T: %wfailed to remove %#v from public header: %wfailed to unmarshal json into recipient: %wgcBgMarkWorker: unexpected gcMarkWorkerModegrew heap, but no adequate free space foundheapBitsSetTypeGCProg: unexpected bit counthttp2: too many 1xx informational responseshttp2: unexpected ALPN protocol %q; want %qinvalid key type %T. []byte is required: %winvalid type for jwa.SignatureAlgorithm: %Tjwe.Decrypt: failed to copy headers (1): %wjws.Compress: failed to marshal headers: %wmult64bitPow10: power of 10 is out of rangemultiple Read calls return no data or errornet/http: timeout awaiting response headersno multipart boundary param in Content-Typenon executable command in pipeline stage %dnon in-use span found with specials bit setreflect: Call with too many input argumentsreflect: CallSlice of non-variadic functionreflect: nil type passed to Type.Implementsroot level max pages doesn't fit in summaryruntime.SetFinalizer: finalizer already setruntime.SetFinalizer: first argument is nilruntime: casfrom_Gscanstatus bad oldval gp=runtime: heapBitsSetTypeGCProg: total bits runtime: releaseSudog with non-nil gp.paramruntime:stoplockedm: lockedg (atomicstatus=tls: received malformed key_share extensiontransform: inconsistent byte count returnedunfinished open-coded defers in deferreturnunknown runnable goroutine during bootstrapwrong number of args for %s: want %d got %dx509: failed to parse dnsName constraint %q using value obtained using unexported field Tools for various JWE/JWK/JWS/JWT operationscipher: NewGCM requires 128-bit block ciphercompact JWE format must have five parts (%d)crypto/sha256: invalid hash state identifiercrypto/sha512: invalid hash state identifiercrypto/x509: domain %d, certificate #%d: %v crypto/x509: error fetching intermediate: %wencoding alphabet contains newline characterfailed to copy headers from first Header: %wfailed to find key with key ID %q in key setfailed to produce rsa.PrivateKey from %T: %wgcmarknewobject called while doing checkmarkhttp2: could not negotiate protocol mutuallyhttp2: invalid Connection request header: %qhttp: Request.ContentLength=%d with nil Bodyhttp: putIdleConn: too many idle connectionsinsufficient data for calculated length typeinvalid jwa.ContentEncryptionAlgorithm valuejwe.Derypt: failed to uncompress payload: %wjws.Compress: payload must not contain a "."mime: unexpected content after media subtypemult128bitPow10: power of 10 is out of rangemultipart: expecting a new Part; got line %qout of memory allocating heap arena metadatapublic key must be *ecdsa.PublicKey, was: %Tpublic key must be x25519.PublicKey, was: %Treflect: FieldByNameFunc of non-struct type reflect: funcLayout with interface receiver reflect: slice length out of range in SetLenruntime: lfstack.push invalid packing: node=template: multiple definition of template %qtls: server sent an incorrect legacy versiontls: server's Finished message was incorrectuse of WriteTo with pre-connected connectionx509: internal error: cannot parse domain %qx509: invalid Ed25519 private key length: %dx509: invalid Ed25519 private key parametersx509: invalid RDNSequence: invalid attribute %sInt.GobDecode: encoding version %d not supportedShows a list of commands or help for one commandTime.MarshalJSON: year outside of range [0,9999]Time.MarshalText: year outside of range [0,9999]bufio: writer returned negative count from Writecan't install method/function %q with %d resultscould not parse %q as bool value for flag %s: %scrypto/rsa: input must be hashed with given hashcrypto/rsa: key size too small for PSS signatureexpected rsa.PublicKey or *rsa.PublicKey, got %Tfailed to copy header contents to new object: %wfailed to create cipher for ECDH-ES key wrap: %wfailed to generate cipher from generated key: %wfailed to marshal "header" for signature #%d: %wfailed to parse certificate #%d in the chain: %wfailed to produce ed25519.PrivateKey from %T: %wfailed to retrieve ecdsa.PublicKey out of %T: %wfailed to unmarshal into temporary structure: %wnot enough significant bits after mult64bitPow10out points to big.Int, but defaultValue does notparsing/packing of this type isn't available yetreflect: CallSlice with too many input argumentsruntime: cannot map pages in arena address spaceslice bounds out of range [:%x] with capacity %ystrconv: illegal AppendFloat/FormatFloat bitSizetls: CloseWrite called before handshake completetls: CurvePreferences includes unsupported curvex509: IP constraint contained value of length %dx509: SAN uniformResourceIdentifier is malformedx509: internal error: URI SAN %q failed to parsex509: internal error: cannot parse constraint %qx509: only RSA, ECDSA and Ed25519 keys supportedx509: public key contains zero or negative value (Client.Timeout exceeded while awaiting headers)argument to AssignIfCompatible() must be settablecannot iterate over %T: not a mapiter.Source typecasgstatus: waiting for Gwaiting but is Grunnablechacha20poly1305: bad nonce length passed to Openchacha20poly1305: bad nonce length passed to Sealcrypto/tls: ExportKeyingMaterial context too longfailed to marshal "header" (flattened format): %wfailed to retrieve ecdsa.PrivateKey out of %T: %wfully empty unfreed span set block found in resethttp2: request body closed due to handler exitinghttp: wrote more than the declared Content-Lengthinvalid memory address or nil pointer dereferencenet/http: Transport.Dial hook returned (nil, nil)not enough significant bits after mult128bitPow10panicwrap: unexpected string after package name: reflect.Value.Slice: slice of unaddressable arrayruntime.reflect_makemap: unsupported map key typeruntime: unexpected waitm - semaphore out of syncs.allocCount != s.nelems && freeIndex == s.nelemsslice bounds out of range [::%x] with capacity %ystrings.Reader.UnreadByte: at beginning of stringstrings.Reader.UnreadRune: at beginning of stringstrings.Reader.WriteTo: invalid WriteString counttls: server advertised unrequested ALPN extensiontls: server sent a cookie in a normal ServerHellox509: Ed25519 key encoded with illegal parametersx509: invalid RDNSequence: invalid attribute typex509: private key contains zero or negative primex509: private key contains zero or negative value%s has arguments but cannot be invoked as functionattempt to execute system stack code on user stackcannot assign key of type %s to map key of type %schacha20: SetCounter attempted to rollback countercould not parse %q as string value for flag %s: %scrypto/cipher: incorrect nonce length given to GCMcryptobyte: attempted write while child is pendingedwards25519: invalid SetUniformBytes input lengthexpected rsa.PrivateKey or *rsa.PrivateKey, got %Tfailed to merge headers for message decryption: %wfailed to retrieve ed25519.PublicKey out of %T: %wgo package net: dynamic selection of DNS resolver got CONTINUATION for stream %d; expected stream %dhttp: putIdleConn: CloseIdleConnections was calledhttp: suspiciously long trailer after chunked bodyinvalid ciphertext (invalid length: %d %% %d != 0)invalid elliptic curve for ECDSA: %s (expected %s)invalid list element type: expected string, got %Tjwe.Encrypt: failed to merge protected headers: %wmallocgc called with gcphase == _GCmarkterminationnet/http: HTTP/1.x transport connection broken: %vnet/http: Transport failed to read from server: %vnet/http: cannot rewind body after connection lossnet/http: invalid header field value %q for key %vrecursive call during initialization - linker skewreflect.Value.Slice3: slice of unaddressable arrayruntime: unable to acquire - semaphore out of synctls: invalid signature by the server certificate: tls: received unexpected CertificateStatus messagex509: RSA public exponent is not a positive numberx509: invalid RDNSequence: invalid attribute valuex509: missing ASN.1 contents; use ParseCertificatex509: unknown key type while marshaling PKCS#8: %TGC must be disabled to protect validity of fn valueJSON decoder out of sync - data changing underfoot?ScanState's Read should not be called. Use ReadRunecan't specify detached payload for JWS with payloadcrypto/tls: reserved ExportKeyingMaterial label: %sfailed to marshal "protected" for signature #%d: %wfailed to retrieve ed25519.PrivateKey out of %T: %wfailed to unmarshal flattened protected headers: %wfatal: systemstack called from unexpected goroutinehttp2: invalid Transfer-Encoding request header: %qinvalid elliptic curve for OKP: %s (expected %s/%s)invalid type for jwa.ContentEncryptionAlgorithm: %Tpotentially overlapping in-use allocations detectedprotocol error: received %T before a SETTINGS framepublic key must be on the same curve as private keytls: VerifyHostname called on TLS server connectiontls: server selected unsupported compression formattls: server's identity changed during renegotiationx509: certificate has expired or is not yet valid: casfrom_Gscanstatus: gp->status is not in scan statecrypto/rsa: message too long for RSA public key sizeexpected ecdsa.PublicKey or *ecdsa.PublicKey, got %Tfailed to marshal "protected" (flattened format): %wfunction symbol table not sorted by program counter:http2: Transport readFrame error on conn %p: (%T) %vhttp: method cannot contain a Content-Length; got %qmallocgc called without a P or outside bootstrappingprotocol error: received DATA before a HEADERS frameruntime.SetFinalizer: pointer not in allocated blockruntime: use of FixAlloc_Alloc before FixAlloc_Init span set block with unpopped elements found in resettemplate: no template %q associated with template %qtls: received a session ticket with invalid lifetimetls: server selected unsupported protocol version %xunable to construct x25519 private key from seed: %wwrong number of args for %s: want at least %d got %dwrong number of recipients for compact serializationx509: cannot verify signature: insecure algorithm %v %sTime.MarshalBinary: zone offset has fractional minuteargument to Pem must be either jwk.Key or jwk.Set: %Tbufio.Scan: too many empty tokens without progressingchacha20: internal error: wrong dst and/or src lengthcould not parse %q as int slice value for flag %s: %sfailed to base64 decoded protected headers buffer: %whttp2: Framer %p: failed to decode just-written framehttp2: Transport failed to get client conn for %s: %vhttp: putIdleConn: too many idle connections for hostillegal use of AllowIllegalReads with ReadMetaHeadersmath/big: internal error: cannot find (D/n) = -1 for pem: cannot encode a header key that contains a colonreflect.Value.Slice: string slice index out of boundsreflect: non-interface type passed to Type.Implementssync/atomic: compare and swap of nil value into Valuetls: HKDF-Expand-Label invocation failed unexpectedlytls: received unexpected handshake message of type %Tx509: certificate specifies an incompatible key usageURI with IP (%q) cannot be matched against constraints goroutine running on other thread; stack unavailable arch-specific crc32 instruction for IEEE not availableargument to AssignIfCompatible() must be a pointer: %Tbytes.Buffer: reader returned negative count from Readcannot assign value of type %s to map value of type %scertificate is not valid for requested server name: %wcryptobyte: Builder is exceeding its fixed-size bufferexpected ecdsa.PrivateKey or *ecdsa.PrivateKey, got %Tfailed to generate plaintext from decrypted blocks: %wfmt: scanning called UnreadRune with no rune availablegcControllerState.findRunnable: blackening not enabledhttp: Request.Write on Request with no Host or URL setjwe.Decrypt: key and recipient algorithms do not matchname is not in canonical format (it must end with a .)net/http: can't write control character in Request.URLno goroutines (main called runtime.Goexit) - deadlock!quotedprintable: invalid unescaped byte 0x%02x in bodyread loop ending; caller owns writable underlying connreflect.FuncOf does not support more than 50 argumentstls: certificate used with invalid signature algorithmtls: server resumed a session with a different versionx509: cannot verify signature: algorithm unimplementedx509: invalid RDNSequence: invalid attribute value: %s[]byte is required as the key to build %s key decrypterbufio.Scanner: SplitFunc returns negative advance countcasfrom_Gscanstatus:top gp->status is not in scan statecipher.NewCBCDecrypter: IV length must equal block sizecipher.NewCBCEncrypter: IV length must equal block sizecould not parse %q as int64 slice value for flag %s: %scrypto/rsa: GenerateMultiPrimeKey: nprimes must be >= 2edwards25519: invalid SetBytesWithClamping input lengthfailed to base64 decode flattened protected headers: %wfailed to marshal headers to JSON prior to encoding: %wfailed to unmarshal signature into temporary struct: %wgentraceback callback cannot be used with non-zero skipnet/http: invalid byte %q in %s; dropping invalid bytesnet/http: request canceled while waiting for connectionnewproc: function arguments too large for new goroutineos: invalid use of WriteAt on file opened with O_APPENDreflect.FuncOf: last arg of variadic func must be slicereflect: internal error: invalid use of makeMethodValuetls: internal error: handshake should have had a resultx509: failed to load system roots and no roots providedx509: too many intermediates for path length constraint((https?|ftp):\/\/|\/)[-A-Za-z0-9+&@#\/%?=~_|!:,.;\(\)]+Must be `func(*Context`)` or `func(*Context) error). %sb4050a850c04b3abf54132565044b0b7d7bfd8ba270b39432355ffb4b70e0cbd6bb4bf7f321390b94a03c1d356c21122343280d6115c1d21bd376388b5f723fb4c22dfe6cd4375a05a07476444d5819985007e34expected ed25519.PublicKey or *ed25519.PublicKey, got %Tfailed to generate signature for signer #%d (alg=%s): %wfailed to retrieve rsa.PublicKey out of crypto.Signer %Thttp2: request body larger than specified content lengthhttp2: response header list larger than advertised limithttp: Request.RequestURI can't be set in client requestsin gcMark expecting to see gcphase as _GCmarkterminationjwe.Encrypt: failed to set "enc" in protected header: %wjwe.Encrypt: failed to set "zip" in protected header: %wjwk.WithIgnoreParseError() cannot be used for ParseKey()non-empty pointer map passed for non-pointer-size valuesprofilealloc called without a P or outside bootstrappingptrEncoder.encode should have emptied ptrSeen via defersstrings: illegal use of non-zero Builder copied by valuex509: internal error: empty chain when appending CA certcan't handle assignment of %s to empty interface argumentcould not parse %q as float64 slice value for flag %s: %sgentraceback cannot trace user goroutine on its own stackheader object to inject into JWS message protected headernon-Go code set up signal handler without SA_ONSTACK flagreceived record with version %x when expecting version %xruntime: checkmarks found unexpected unmarked object obj=runtime: netpoll: break fd ready for something unexpectedsync: WaitGroup misuse: Add called concurrently with Waittls: Ed25519 public keys are not supported before TLS 1.2tls: server selected an invalid PSK and cipher suite pairtls: server sent an unnecessary HelloRetryRequest messagex509: failed to parse EC private key embedded in PKCS#8: expected ed25519.PrivateKey or *ed25519.PrivateKey, got %Tfailed to retrieve ecdsa.PublicKey out of crypto.Signer %Thttp2: client connection force closed via ClientConn.Closejson: cannot set embedded pointer to unexported struct: %vsync/atomic: swap of inconsistently typed value into Valuetls: server changed cipher suite after a HelloRetryRequestx509: failed to parse RSA private key embedded in PKCS#8: RoundTripper returned a response & error; ignoring response"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> bufio.Scanner: SplitFunc returns advance count beyond inputfailed to create AES content cipher: invalid algorithm (%s)http2: Transport received Server's graceful shutdown GOAWAYhttps://github.com/urfave/cli/blob/master/docs/CHANGELOG.mdreflect: indirection through nil pointer to embedded structsync/atomic: store of inconsistently typed value into Valuesync: WaitGroup is reused before previous Wait has returnedtag offset is less than 0 (combined len = %d, tagsize = %d)tls: server resumed a session with a different cipher suitetls: server selected TLS 1.3 using the legacy version fieldtls: server sent an unnecessary HelloRetryRequest key_share (Client.Timeout or context cancellation while reading body)addr range base and limit are not in the same memory segmentbytes.Reader.UnreadRune: previous operation was not ReadRunecould not verify message using any of the signatures or keysfailed to retrieve ed25519.PublicKey out of crypto.PublicKeymalformed response from server: missing status pseudo headermanual span allocation called with non-manually-managed typenet/http: server response headers exceeded %d bytes; abortedsync/atomic: compare and swap of inconsistently typed valuestls: initial handshake had non-empty renegotiation extensiontls: no supported versions satisfy MinVersion and MaxVersionabiRegArgsType needs GC Prog, update methodValueCallFrameObjsfailed to get a list of signature methods for key type %s: %wfailed to retrieve ed25519.PublicKey out of *crypto.PublicKeygo package net: GODEBUG setting forcing use of Go's resolver input size for key decrypt is incorrect (expected %d, got %d)jwe.Encrypt: failed to compress payload before encryption: %wnet/http: invalid Cookie.Domain %q; dropping domain attributetls: server sent a ServerHello extension forbidden in TLS 1.3tls: unsupported certificate: private key is %T, expected *%Tx509: failed to parse URI constraint %q: cannot be IP address0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZURI with empty host (%q) cannot be matched against constraintsfound bad pointer in Go heap (incorrect use of unsafe or cgo?)http2: request header list larger than peer's advertised limitjwa.InvalidKeyAlgorithm does not support Accept() method callsruntime: internal error: misuse of lockOSThread/unlockOSThreadstrings.Reader.UnreadRune: previous operation was not ReadRunex509: certificate is not authorized to sign other certificatesx509: certificate private key does not implement crypto.Signerx509: failed to marshal EC private key while building PKCS#8: &([a-zA-Z]{2,31}[0-9]{0,2}|#([0-9]{1,7}|[xX][0-9a-fA-F]{1,6}));?@[\\\]^_`{|}~-]|&(?:#x[a-f0-9]{1,8}|#[0-9]{1,8}|[a-z][a-z0-9]{1,31});3617de4a96262c6f5d9e98bf9292dc29f8f41dbd289a147ce9da3113b5f0b8c00a60b1ce1d7e819d7a431d7c90ea0e5faa87ca22be8b05378eb1c71ef320ad746e1d3b628ba79b9859f741e082542a385502f25dbf55296c3a545e3872760ab7b3312fa7e23ee7e4988e056be3f82d19181d9c6efe8141120314088f5013875ac656398d8a2ed19d2a85c8edd3ec2aefjwe.Decrypt: tried %d keys, but failed to match any of the keys with recipient (last error = %s)http: RoundTripper implementation (%T) returned a *Response with content length %d but a nil BodyNoClientCertRequestClientCertRequireAnyClientCertVerifyClientCertIfGivenRequireAndVerifyClientCertcipher: the nonce can't have zero length, or the security of the key will be immediately compromisedfailed to find matching key: no key ID ("kid") specified in token but multiple keys available in key setasn1: time did not serialize back to the original value and may be invalid: given %q, but serialized as %qThis is an error in the application. Please contact the distributor of this application if this is not you.jws.Sign: cannot have multiple signers (keys) specified for compact serialization. Use only one jws.WithKey()jwe.Decrypt: no key providers have been provided (see jwe.WithKey(), jwe.WithKeySet(), and jwe.WithKeyProvider()http2: Transport: cannot retry err [%v] after Request.Body was written; define Request.GetBody to avoid this error3940200619639447921227904010014361380507973927046544666794829340424572177149687032904726608825893800186160697311231939402006196394479212279040100143613805079739270465446667946905279627659399113263569398956308152294913554433653942643c6858e06b70404e9cd9e3ecb662395b4429c648139053fb521f828af606b4d3dbaa14b5e77efe75928fe1dc127a2ffa8de3348b3c1856a429bf97e7e31c2e5bd66051953eb9618e1c9a1f929a21a0b68540eea2da725b99b315f3b8b489918ef109e156193951ec7e937b1652c0bd3bb1bf073573df883d2c34f1ef451fd46b503f0011839296a789a3bc0045c8a5fb42c7d1bd998f54449579b446817afbd17273e662c97ee72995ef42640c550b9013fad0761353c7086a272c24088be94769fd16650jws.Verify: no key providers have been provided (see jws.WithKey(), jws.WithKeySet(), jws.WithVerifyAuto(), and jws.WithKeyProvider()jwx jws parse [command options] FILE Parse FILE and display information about a JWS message. Use "-" as FILE to read from STDIN. jwe.Encrypt: cannot use compact serialization when multiple recipients exist (check the number of WithKey() argument, or use WithJSON())68647976601306097149819007990813932172694353001433054093944634591855431833976560521225596406614545549772963113914808580371219879997166438125740282911150571516864797660130609714981900799081393217269435300143305409394463459185543183397655394245057746333217197532963996371363321113864768612440380340372808892707005449jwx jwe encrypt [command options] FILE Encrypt contents of FILE and generate a JWE message using the specified algorithms and key. Use "-" as FILE to read from STDIN. 00010203040506070809101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899jwx jws sign [command options] FILE Signs the payload in FILE and generates a JWS message in compact format. Use "-" as FILE to read from STDIN. Currently only single key signature mode is supported. (?i)^(?:<[A-Za-z][A-Za-z0-9-]*(?:\s+[a-zA-Z_:][a-zA-Z0-9:._-]*(?:\s*=\s*(?:[^"'=<>`\x00-\x20]+|'[^']*'|"[^"]*"))?)*\s*/?>|]|||[<][?].*?[?][>]|]*>|)# {{ .App.Name }} fish shell completion function __fish_{{ .App.Name }}_no_subcommand --description 'Test if there has been any subcommand yet' for i in (commandline -opc) if contains -- $i{{ range $v := .AllCommands }} {{ $v }}{{ end }} return 1 end end return 0 end {{ range $v := .Completions }}{{ $v }} {{ end }}NAME: {{.HelpName}} - {{.Usage}} USAGE: {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}}{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Category}} CATEGORY: {{.Category}}{{end}}{{if .Description}} DESCRIPTION: {{.Description | nindent 3 | trim}}{{end}}{{if .VisibleFlags}} OPTIONS: {{range .VisibleFlags}}{{.}} {{end}}{{end}} % {{ .App.Name }} 8 # NAME {{ .App.Name }}{{ if .App.Usage }} - {{ .App.Usage }}{{ end }} # SYNOPSIS {{ .App.Name }} {{ if .SynopsisArgs }} ``` {{ range $v := .SynopsisArgs }}{{ $v }}{{ end }}``` {{ end }}{{ if .App.UsageText }} # DESCRIPTION {{ .App.UsageText }} {{ end }} **Usage**: ``` {{ .App.Name }} [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...] ``` {{ if .GlobalArgs }} # GLOBAL OPTIONS {{ range $v := .GlobalArgs }} {{ $v }}{{ end }} {{ end }}{{ if .Commands }} # COMMANDS {{ range $v := .Commands }} {{ $v }}{{ end }}{{ end }}NAME: {{.HelpName}} - {{.Usage}} USAGE: {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} command{{if .VisibleFlags}} [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Description}} DESCRIPTION: {{.Description | nindent 3 | trim}}{{end}} COMMANDS:{{range .VisibleCategories}}{{if .Name}} {{.Name}}:{{range .VisibleCommands}} {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{range .VisibleCommands}} {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{end}}{{end}}{{if .VisibleFlags}} OPTIONS: {{range .VisibleFlags}}{{.}} {{end}}{{end}} 0w tApath command-line-arguments mod github.com/lestrrat-go/jwx/v2/cmd/jwx (devel) dep github.com/cpuguy83/go-md2man/v2 v2.0.1 h1:r/myEWzV9lfsM1tFLgDyu0atFtJ1fXn261LKYj/3DxU= dep github.com/lestrrat-go/blackmagic v1.0.1 h1:lS5Zts+5HIC/8og6cGHb0uCcNCa3OUt1ygh3Qz2Fe80= dep github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= dep github.com/lestrrat-go/httprc v1.0.1 h1:Cnc4NxIySph38pQPzKbjg5OkKsGR/Cf5xcWt5OlSUDI= dep github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= dep github.com/lestrrat-go/jwx/v2 v2.0.0-00010101000000-000000000000 => ../.. dep github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= dep github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= dep github.com/urfave/cli/v2 v2.3.0 h1:qph92Y649prgesehzOrQjdWyxFOp/QVM+6imKHad91M= dep golang.org/x/crypto v0.0.0-20220214200702-86341886e292 h1:f+lwQ+GtmgoY+A2YaQxlSOnDjXcQ7ZRLWOHbC6HtRqE= 2C1 rBANAME: {{.Name}}{{if .Usage}} - {{.Usage}}{{end}} USAGE: {{if .UsageText}}{{.UsageText}}{{else}}{{.HelpName}} {{if .VisibleFlags}}[global options]{{end}}{{if .Commands}} command [command options]{{end}} {{if .ArgsUsage}}{{.ArgsUsage}}{{else}}[arguments...]{{end}}{{end}}{{if .Version}}{{if not .HideVersion}} VERSION: {{.Version}}{{end}}{{end}}{{if .Description}} DESCRIPTION: {{.Description | nindent 3 | trim}}{{end}}{{if len .Authors}} AUTHOR{{with $length := len .Authors}}{{if ne 1 $length}}S{{end}}{{end}}: {{range $index, $author := .Authors}}{{if $index}} {{end}}{{$author}}{{end}}{{end}}{{if .VisibleCommands}} COMMANDS:{{range .VisibleCategories}}{{if .Name}} {{.Name}}:{{range .VisibleCommands}} {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{else}}{{range .VisibleCommands}} {{join .Names ", "}}{{"\t"}}{{.Usage}}{{end}}{{end}}{{end}}{{end}}{{if .VisibleFlags}} GLOBAL OPTIONS: {{range $index, $option := .VisibleFlags}}{{if $index}} {{end}}{{$option}}{{end}}{{end}}{{if .Copyright}} COPYRIGHT: {{.Copyright}}{{end}} jwx jws verify [command options] FILE Parses a JWS message in FILE, and verifies using the specified method. Use "-" as FILE to read from STDIN. By default the user is responsible for providing the algorithm to use to verify the signature. This is because we can not safely rely on the "alg" field of the JWS message to deduce which key to use. See https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/ The alternative is to match a key based on explicitly specified key ID ("kid"). In this case the following conditions must be met for a successful verification: (1) JWS message must list the key ID that it expects (2) At least one of the provided JWK must contain the same key ID (3) The same key must also contain the "alg" field Therefore, the following key may be able to successfully verify a JWS message using "--match-kid": { "typ": "oct", "alg": "H256", "kid": "mykey", .... } But the following two will never succeed because they lack either "alg" or "kid" { "typ": "oct", "kid": "mykey", .... } { "typ": "oct", "alg": "H256", .... }   37?/* & * ; 9 %#>'  1<   0 ")  7  +19$p$: r.r,r:>,s<s*L$L; )  4 4  ! #ʠʣʢʥʤʧʦʩʨؓߔ0 ,)4< '2869/9 :::%;/;%46 7*000.111022-33>'   #(66' &     5     <+)?45454)/)5+++ +<*&*"&8!!"+.4=    <>5<5!5#5&4447133.<.):)<) )+-+5$$''&"6" "   ?  (0 == =1 =, =  ?? < 9! 9) 97 99 6  6 6 7' 78 73 ' '&   3 /    "      > + / 6     <3 ;* 9" 9) 97 + (( &5 $ $ % #< #0 #  # !: ! ! 5  - ( .     $ "   2 =  & 1 : # <     2 1   / +     5 9 = ?1364<  % .2>13 %$8;422/,?  /><>>>:>+?>"4.<% 09'  # ! & " / , $ ' % ; = ? 9. 7 .:9' 1&90  96#20 2 0(2,3 :8% 5*;.-, 87/ ,--/( 57.97 *%60 ;'2.2=$=' 6,;., 2 5 4 ; > 8 * / , % & # !%$+.*&8>460 -2-2-2-2-2-2-2@ @ (3  )1;* # 0 ! !0 ?5   7 +# # 2   #;='  1  3. /,#>8 " 8> /'" + " /1 74 ","?$5<3=*8  7+7(;?  $$;,$  >>  )    '< .' " )*)<,  . # ' 8 %2+&0 )4   * $ 0 *( 29,4'  : . . +0   "0 ;,/"1 .  7 2 . 1 :/0+- , =  ;/ :  . 4  1#4"'8>57&9+ .  ,> 4#%"  +  +  +   =   &0(75'6.=;;, > < % < %!   0' = >4>&? ?( - :3 8:   72% "< /<>+ '?   <=  "  )= /4 7 : ?3 :/   7"0(  %< +  70 >570 =%, 9# >  < +,:%" $ =+ /  ' #   22< 1  -  ?   1& / $<3 $  ?5 ##02(+   +02  + -? #: # %$ >+ 01 1 9    *) - .1 .2 < >  3  2  %,&!"9(  2    #().1 $ '8 07#7-)2 6  (!5  / , 3 ,1 /5 "1 "  ?% <, ?# > &  : + " )   - ( ) /  . , /* -9 "8 %  : ; ? 3% 6 6 7 , ,    8*/24:"+ 0& ;>$>292:1,1<17#7* '-4*7'!%7  1 .0=  :*1-"32:0$6445  7  +  +- 8 8 8 8% 8! 8- 8/ 8+ 87 85 9  9  9 9 u uuu  9 9 `;`>`9`8`7`*`-`,  & =. =% > > ? ?  ?  ?  ? > > >  >, >  ? ? ? ? ? ? ? ? ? ?  ? ? ?  =2 =6 < <:!:#8 :&8 :$:,88:*:7:5:;::<:4:':-:%:?:=:):/s' = +* 99 9; 9? )  (%($!8745' 2=;: $ ) $ , .  .# (/ % 90 4  # , 2  :3      0> -> <+ 8 3  % "&   %9 &2 &0 ! !7 5 =4 ? >  : 9  % - - ,4 ., )  6! 1 3 + 8  8= ( ( +   3)!  %#>"%*;70 ; /-715+>79+, "0AAAAAA C'EEEEIIIINOOOOOUUUUYaaaaaa c'eeeeiiiinooooouuuuyyAaAaA(a(CcCc C c C  c  D d EeEeEeE(e(E e GgGgG g!G'"g'#H$h%I(i)I*i+I,i-I(.i(/I0J4j5K'6k'7L9l:L';l'<L =l >NCnDN'En'FN Gn HOLoMONoOO Po QRTrUR'Vr'WR Xr YSZs[S\s]S'^s'_S `s aT'bt'cT dt eUhuiUjukUlumU nu oU pu qU(ru(sWtwuYvywYxZyzzZ{z|Z }z ~OoUuA a I i O o U u   &'G g K k O(o(  j GgNnAaAaEeEeIi I i O o OoRrRrUuUuS&s&T&t&H h A&a'E'(e')*+,-O.o/.0/1Y2y3  #895P5Q3SVW:\8]C^tvuw60056788>-M#C#C# C 'G+K'S"'T#HT$'U%JT&TTT ( < ) 0 < 1 3 < 4 G V H G > K G W L F V H F > J G > K F W L %.&55 5  5  55:5;<5=>5@?5AB5CA%a%BbB#b#B1b1 D d D# d# D1d1D'd'D-d-E-e-E0e0()FfG g!H"h#H#$h#%H&h'H'(h')H.*h.+I0,i0-./K0k1K#2k#3K14k15L#6l#76879L1:l1;L-<l-=M>m?M@mAM#Bm#CNDnEN#Fn#GN1Hn1IN-Jn-KLMNOLPMQLRMSPTpUPVpWRXrYR#Zr#[Z\[]R1^r1_S`saS#bs#cZd[e`fagbhciTjtkT#lt#mT1nt1oT-pt-qU$ru$sU0tu0uU-vu-whxiyjzk{V|v}V#~v#WwWwWwWwW#w#XxXxYyZzZ#z#Z1z1h1tw y A#a#A a     E#e#E e Ee  I i I#i#O#o#O o     ##U#u#U u   ##YyY#y#Y y YyBB       B B ! "!# $!% B&!B'()(*)+(,)-(B.)B/01021304150B61B7898:9;8<9=8B>9B?@A@BAC@DAEHIHJIKHLIMPQPRQSPTQUPBVQBWYY[Y]YB_`a`bac`dae`BfaBghihjikhlimhBniBoprtvxz|EEEEEEEEE E E E E EEE E!E"E#E$E%E&E'E(E)E*E+E,E-E.E/E`EaEbEcEdEeEfEgEhEiEjEkElEmEnEoEpEEEBEEBtEEEBEEBBBBBB|EEEBEE!8!!8!!8!!8!!8!!8!"8""8" " 8" "#8"$"%8"&"<8"A"C8"D"E8"G"H8"I=8"`"a8"b"M8"m<8"n>8"o"d8"p"e8"q"r8"t"s8"u"v8"x"w8"y"z8""{8""8""8""8""8""8""8""8""8""|8""}8""8""8""8""8""8""8"0K00L0M00N0O00P0Q00R0S00T0U00V0W00X0Y00Z0[00\0]00^0_00`0a00b0d00e0f00g0h00i0o00p0o00q0r00s0r00t0u00v0u00w0x00y0x00z0{00|0{00}0F000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001'.2'/G>KGWL508  ̈a ̄23 ́ ̧1o1⁄41⁄23⁄4i̇l·ʼnsdžⱥⱦhjrwy ̆ ̇ ̊ ̨ ̃ ̋lẍ́ ι; ̈́եւاٴوٴۇٴيٴक़ख़ग़ज़ड़ढ़फ़य़ড়ঢ়য়ਲ਼ਸ਼ਖ਼ਗ਼ਜ਼ਫ਼ଡ଼ଢ଼ําໍາຫນຫມགྷཌྷདྷབྷཛྷཀྵཱཱིུྲྀ ྲཱྀླྀ ླཱཱྀྀྒྷྜྷྡྷྦྷྫྷྐྵвдостъѣæbdeǝgikmnȣptuɐɑəɛɜŋɔɯvβγδφχρнɒcɕðfɟɡɥɨɩɪʝɭʟɱɰɲɳɴɵɸʂʃƫʉʊʋʌzʐʑʒθssάέήίόύώἀιἁιἂιἃιἄιἅιἆιἇιἠιἡιἢιἣιἤιἥιἦιἧιὠιὡιὢιὣιὤιὥιὦιὧιὰιαιάιᾶιι ̈͂ὴιηιήιῆι ̓̀ ̓́ ̓͂ΐ ̔̀ ̔́ ̔͂ΰ ̈̀`ὼιωιώιῶι′′ ′′′‵‵ ‵‵‵!!???!!? ′′′′0456789+=()rsħnoqsmtmωåאבגדπ1⁄71⁄91⁄101⁄32⁄31⁄52⁄53⁄54⁄51⁄65⁄61⁄83⁄85⁄87⁄81⁄iiivviviiiixxi0⁄3∫∫ ∫∫∫∮∮ ∮∮∮1011121314151617181920(10)(11)(12)(13)(14)(15)(16)(17)(18)(19)(20) ∫∫∫∫==⫝̸ɫɽȿɀ. ゙ ゚よりコト(ᄀ)(ᄂ)(ᄃ)(ᄅ)(ᄆ)(ᄇ)(ᄉ)(ᄋ)(ᄌ)(ᄎ)(ᄏ)(ᄐ)(ᄑ)(ᄒ)(가)(나)(다)(라)(마)(바)(사)(아)(자)(차)(카)(타)(파)(하)(주)(오전)(오후)(一)(二)(三)(四)(五)(六)(七)(八)(九)(十)(月)(火)(水)(木)(金)(土)(日)(株)(有)(社)(名)(特)(財)(祝)(労)(代)(呼)(学)(監)(企)(資)(協)(祭)(休)(自)(至)212223242526272829303132333435참고주의3637383940414243444546474849501月2月3月4月5月6月7月8月9月10月11月12月hgev令和 アパート アルファ アンペア アール イニング インチ ウォンエスクード エーカー オンス オーム カイリ カラット カロリー ガロン ガンマギガ ギニー キュリー ギルダーキロキログラムキロメートルキロワット グラムグラムトンクルゼイロ クローネ ケース コルナ コーポ サイクルサンチーム シリング センチ セント ダースデシドルトンナノ ノット ハイツパーセント パーツ バーレルピアストル ピクルピコビルファラッド フィートブッシェル フランヘクタールペソ ペニヒ ヘルツ ペンス ページ ベータ ポイント ボルトホン ポンド ホール ホーン マイクロ マイル マッハ マルクマンション ミクロンミリミリバールメガ メガトン メートル ヤード ヤール ユアン リットルリラ ルピー ルーブルレムレントゲン ワット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点daauovpcdmiu平成昭和大正明治 株式会社panamakakbmbgbkcalpfnfmgkghzmldlklfmnmmmcmkmm2m3m∕sm∕s2rad∕srad∕s2psnsmspvnvmvkvpwnwmwkwbqcccdc∕kgdbgyhahpinkkktlmlnlxphprsrsvwbv∕ma∕m1日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日ьɦɬʞʇœʍ𤋮𢡊𢡄𣏕𥉉𥳐𧻓fffiflstմնմեմիվնմխיִײַעהכלםרתשׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּוֹבֿכֿפֿאלٱٻپڀٺٿٹڤڦڄڃچڇڍڌڎڈژڑکگڳڱںڻۀہھےۓڭۇۆۈۋۅۉېىئائەئوئۇئۆئۈئېئىیئجئحئمئيبجبحبخبمبىبيتجتحتختمتىتيثجثمثىثيجحجمحجحمخجخحخمسجسحسخسمصحصمضجضحضخضمطحطمظمعجعمغجغمفجفحفخفمفىفيقحقمقىقيكاكجكحكخكلكمكىكيلجلحلخلملىليمجمحمخمممىمينجنحنخنمنىنيهجهمهىهييجيحيخيميىييذٰرٰىٰ ٌّ ٍّ َّ ُّ ِّ ّٰئرئزئنبربزبنترتزتنثرثزثنمانرنزننيريزينئخئهبهتهصخلهنههٰيهثهسهشمشهـَّـُّـِّطىطيعىعيغىغيسىسيشىشيحىحيجىجيخىخيصىصيضىضيشجشحشخشرسرصرضراًتجمتحجتحمتخمتمجتمحتمخجمححميحمىسحجسجحسجىسمحسمجسممصححصممشحمشجيشمخشممضحىضخمطمحطممطميعجمعممعمىغممغميغمىفخمقمحقمملحملحيلحىلججلخملمحمحجمحممحيمجحمجممخجمخممجخهمجهممنحمنحىنجمنجىنمينمىيممبخيتجيتجىتخيتخىتميتمىجميجحىجمىسخىصحيشحيضحيلجيلمييحييجييميمميقمينحيعميكمينجحمخيلجمكممجحيحجيمجيفميبحيسخينجيصلےقلےاللهاكبرمحمدصلعمرسولعليهوسلمصلى!صلى الله عليه وسلمجل جلالهریال,:!?_{}[]#&*-<>\$%@ـًـَـُـِـّـْءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهويلآلألإلا"'/^|~¢£¬¦¥𝅗𝅥𝅘𝅥 𝅘𝅥𝅮 𝅘𝅥𝅯 𝅘𝅥𝅰 𝅘𝅥𝅱 𝅘𝅥𝅲𝆹𝅥𝆺𝅥 𝆹𝅥𝅮 𝆺𝅥𝅮 𝆹𝅥𝅯 𝆺𝅥𝅯ıȷαεζηκλμνξοστυψ∇∂ϝٮڡٯ0,1,2,3,4,5,6,7,8,9,(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)(m)(n)(o)(p)(q)(r)(s)(t)(u)(v)(w)(x)(y)(z)〔s〕wzhvsdppvwcmcmdmrdjほかココサ手字双デ二多解天交映無料前後再新初終生販声吹演投捕一三遊左中右指走打禁空合満有月申割営配 〔本〕 〔三〕 〔二〕 〔安〕 〔点〕 〔打〕 〔盗〕 〔勝〕 〔敗〕得可丽丸乁你侮侻倂偺備僧像㒞免兔兤具㒹內冗冤仌冬况凵刃㓟刻剆剷㔕勇勉勤勺包匆北卉卑博即卽卿灰及叟叫叱吆咞吸呈周咢哶唐啓啣善喙喫喳嗂圖嘆圗噑噴切壮城埴堍型堲報墬売壷夆夢奢姬娛娧姘婦㛮嬈嬾寃寘寧寳寿将尢㞁屠屮峀岍嵃嵮嵫嵼巡巢㠯巽帨帽幩㡢㡼庰庳庶廊廾舁弢㣇形彫㣣徚忍志忹悁㤺㤜悔惇慈慌慎慺憎憲憤憯懞懲懶成戛扝抱拔捐挽拼捨掃揤搢揅掩㨮摩摾撝摷㩬敏敬旣書晉㬙暑㬈㫤冒冕最暜肭䏙朗望朡杞杓㭉柺枅桒梅梎栟椔㮝楂榣槪檨櫛㰘次歔㱎歲殟殺殻汎沿泍汧洖派海流浩浸涅洴港湮㴳滋滇淹潮濆瀹瀞瀛㶖灊災灷炭煅熜爨爵牐犀犕獺王㺬玥㺸瑇瑜瑱璅瓊㼛甤甾異瘐㿼䀈直眞真睊䀹瞋䁆䂖硎碌磌䃣祖福秫䄯穀穊穏䈂篆築䈧糒䊠糨糣紀絣䌁緇縂繅䌴䍙罺羕翺者聠聰䏕育脃䐋脾媵舄辞䑫芑芋芝劳花芳芽苦若茝荣莭茣莽菧著荓菊菌菜䔫蓱蓳蔖蕤䕝䕡䕫虐虜虧虩蚩蚈蜎蛢蝹蜨蝫螆蟡蠁䗹衠衣裗裞䘵裺㒻䚾䛇誠諭變豕貫賁贛起跋趼跰軔輸邔郱鄑鄛鈸鋗鋘鉼鏹鐕開䦕閷䧦雃嶲霣䩮䩶韠䪲頋頩飢䬳餩馧駂駾䯎鬒鱀鳽䳎䳭鵧䳸麻䵖黹黾鼅鼏鼖鼻  QA !!      #  Ii!iQaQ0!AA1QQyQ9YAQ9Q!Q!!Q!)Q!Q!1IQAi!!))YQq))!)AQ!)a!IQqa)a!!11))Y--Y!9)!y1]YEY! )1)!O   * I   A  7 W %,$%+    ~&nTO>3*t        +>$'4K    $  *  `   10  &     ,II"          #     + *     )   S@+  '!   C@      A@  ]@?      )        A@ T       Yq  ~  . 333 O  CC@ AA@ 111    CA@ S  -     @AC      KKA    #" >   %        UT   O    V   $#   n    )   (     e& *(**           ~ j        !          =< c`b        O  j    -c   JBIII 7     I  US@P  n I   $     &CB@yyy O      I  &    O'!    )!YP91I     (                 CC@C    UT  0013&&&&  #  yyxx   '#     ME  III)/lRKKKH #!!   !    GGGG;:0  DDDD         pxp(  :i(       #" %  '9>3        P %#! O{[@BA  CC@A *"""                    (  ( (   !     B -120$,  ,./,.*   ( N@      !     #"   80421       ``bfg --         01012  qq C  +  I   C@CCC    A  - + d       $?7$psqpp  &  + 00" )( EEEED  `d`c` )  Q@    " 89998##"""  IH   `pxsu b+++++   #!!!    9           !   ***     duT  7    ( ( (0 (    ( (    #8IIIIA    `dfe|t  0    &    QP $4&,-q  '!!!UT ONLH@ 3;72?#"08412,     8<:010x|~x;:2220%!";&,%5  Bb5    08<>?200<98!%     CCAAA@    [[[[XP KIKKKK9 9  ( (   (  ( (  Q ! !  (  (  ( (0 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( (  (  ( ( ( (  )  (      (  e@ -   #!!  ###  `qplj &     $ 1"( a  w0842  0894640   ))*(   3     UU@@@IIH@@@@   A     II !5%  !!      H`@ E@ BDAp     M  UU @A`&6.  qq @`px|~     I           IA%$$ $$--   * "($0  %%%%%!  I     3+ IH T$&'  E   #=!B,EEEEEEE   191507             ( (  ( ( ( ( ( ( (0 ! ( ( ( ( ( ( (    (         #        `@       AAAAAA@@  "  A@acQI      H   @` Y\   ? t`~nded`  PD       IIIIA      !#@   %% $I$I     !$46&H   46( @dfet4} CCAA@AAA       0    7     ̄ FFDDDDDDk      ( (    (0 ( ( (    (     (  (   (0 () (0 () ( (0 (0 (0 ( (0 ( (08 (0 (0 (m l         &        % -,(        a    $              /.,          R&R&   &          PPPP    CCCCCCCC@ I     % 6>  SSS  "!      CC@C     @  `d`wgcsqa      < ))((  NF  #### **"HH   J   IAAA Q $ D"E"  EDDDDDDDD     (a( (0 i (.,  (0 (0 (0 (08@ (0 (0 (0 (0 (0 (0 () (0 (0 (0     $&&7'.&& *" AaGEO[K     @`           ( "              1(  (0 ( ( ( (0 (01 (0 (0 (0 ( (0 (0 (08@ (0 (0 (0 (0 ( (0 (0 (0 (0 (08 (08 (0 (0 (0 ( (h$DdPdn840 4A},  1 XcQ Gh1(Hp!!`!@ ("`"&`' (_( D / /K%x/^%t/g>&L0'd0',0Q@0*P0[*1LR.3**66~$P68 6/ T6-$7&/ $9;1>:">:F<:?:%@:e@;Q,;Q4;9>At;xB(;B(?YlDtCFDBF4DZGDwGXEt H";IHdKHdK8HM`HbNL'PLOMG MG MbRM/$M`$Mg$ MUxM+ M VM uY0M+Y,M*TMAZ,M|M~[8M9AM\DMM<0M'DM`G 0M_XM_TR.U LV& X,4\?Vh\rh\G,\i\9j,\ViP\{ki\i(aaQa],b/nTcBG f8f Xiij/ ,l$*T<luHlulyl|l#Hp3xpppp,<qZj q~pq/'q^;I,r3rr /iK%P/ %/ (& ;4CFM0MWM0MWM_VTT T T  XL$ Xh $c0c0l. n 8$$b$ $58= v ~  BTB$ p 3131dݥed 0L Lh L Ũ\ Ũ !1X h  ,X ,X *,X 4,X<|8k5AJo#(@@KDR$ s( o x ůp 64 h4x|l\zp($81   @HHH   @haxqO( # . yٳ (ٳ 5ٳeٳ8 ٳ ٳu |O  ٳ ٳ ٳ ٳ 8 OL  x T  P P P P6 P@B PG$($#$@$$V$,$$V$P8$_$$$u$N`/xTRN>pL\Z\i`w|phhThhC`LL T>LZThXT!\Tlx `fx{xxTp6tD\%$N$x\=vP/8FT]]x"OAdP\4:B{ + $v$$$$$$$K$$$$$$q$($N$$$$$, M l Y$ [ &h8  4Q/Z,Z00YY&Y3 ܱ F o wA,sP@<kD&)<#8h$$2#Y# a# {# 5OT/g%D`%Q&&|) :(<(S|)D'*$X&$++@+@+@+@+<x/$60$t0$0$0$;1$1$/1$9.t-$l4 l4  l4Hl4TA4<y%65  7 666PT9,:0:He#T#@#T#T~B3#T#@FF#@*#T_HJ#KCpLT#T~MYM5M#TN@O(`PPx~MYM5M`Q( jjx%\h$ i$h$i$h$A l Q l  mh l0mtImm=mGm$Rm$]m$hm$sm$JD~iu,8Gl$w$xTx$3zqz qz qzH0qzJqz ||xr}~qzLz#@#@$S$9$l$:'bk \ X5 %==y  y y <"2 %6 'Ѝ Ѝ"Ѝ+Ѝ$$%6` ELS8SSLS3~L    A ڮ 3` l$ p$$N <lټ$$c$$$B$ t| $*$$cjh3X33A4LpP$_HL L Yh4r| (1:CTZL@CL$$$$$L@#!H /H  @./[Po.t/~ S$33qi\ 3 p , `. a. %psUa. `. %pt1(%pV. V. %ppA`. `. ZHvS %tpI.$$H}z~~8~a@[`f]98$$F$a$|$$WE!8bE!8fE!$E!8" `M%L v& & & 4' ' 'x 7)T (S*$ < : F+$ %D -$ %lz'h+% 4$X+$A4 303wC7 )@I<$(<$F`* =H7)`s$ e' %He'C$>K$c ^lS8ulS$,sTPUx|U`PsX$X AU8oq q EW$S$S$S$3S$Y$Y$W$X$W$)`$d`$ed`CeHP"fD}ff~j~' p\$Lp{txp\Cnc 6Wx lWxz {rz 17hD7h2$s$  !QUc {}0>ƗNPA؛8HPT\'%6 ;? S3.&S\!)'@}# $$}$ï$0$$$m$$S$p,24A(DK;<0_(P|cl \ ` d | r 3\i0&%*d1`+$mdmTmhmp6tx!7A7J$$$$$y[ l7TD  8!$!($!4$$\,`d,u%<,V@0cd0T0h0p1i2Nd2W%<2cV@2T2h2p3+3l3| 3433 :&(:p$$$$$c$!Q\c s0M/@ &$&$ $ e` O iQ(X "2  T h bSD 7,   S\ f h S\$$"$3^W3Ldd B u 3n8,02IDI0DI\0^  Jx  J   J  Jp J   J   PJx J   x  J J W [ \J W Yx M C ] 6 8t M a| :(<$ @(<0 H(< V(< 88s9r:\:t:; $$L>9>$6?(4`%6.%6 ~AP>$m?$?$M?$B t P [<J0,NNx.OHw\a]9(\RS(`$+a$hckt-jH-j<l-jNbu$buv{kL2n$xk$kn$m$m$%6 l`P [$$(pY8-P4' %"28\ $((K3tlt!! ]  j!!4!    d !  !  2nt 2np 2n h (,0+HOHt,,M(Sd0CDX& (,A(xD=j` / xk;"Ո8#0#,,$D$(> &? 8M?$Nm? S >h U( j    2Y@ | % %    j ]` o, },(  r 88[ >05Yl,2D,k(|,|,'[o ,(0 (3$E$$$T$t$$t$$M$o${$B$_$j$ͬ$$$!$J$$̎$$'$ hq,{$3$o,6 lz -7h@7hVpg$$9$-} 8T} | <$,BS<$,S  !~'{K. {d xO < $ o, "S < $ , RSLct44<$r,#S<$,S,)010;,L,{@0,%@,2v8$T,StucTTU$3@Y$Z$`$a$$`HK<h`X[ch$h$sl$Ok$k$ti$j$]n$n$o$~m$n$P5SAD}RD}d~j0p0v,,,,0,,,,,,,,,<",($ D}  @HL't$S2Y,b,k0q,w,,,,,,,,<,$?ea D 0 hHd1$~$;$ŧ$/$$$:g  L  ATU0` 2c 2 0  DD     SSC * K Cc  \          IIUUU  X [ H  IIIIAAAAAA@   11 00 . #T %%!! Q 1!     && ***((      IA @ 00 . #    55        IHHH??"""     8   QQ -%%%!! !!       -   0p`    UUU (08 (08 ( (0 (08 (0 (08 (08@ (08 (08 ( (0 (0 (08 () (0 [[[[X@[[[[  7365         333####   %%!!  (0 (0 (0 (0 (08 (0 (08 (0 (0 (08 (08 (08    () ( (08 (08@ (08@H  (08 (08@ ()* !(08 (08 (0      %MM 3 333  IHH  @**  % MM   ff&&&$$$$$   %$$   @  g %$    !   IHH g T           FD    UUUQ@Q p8>; _8P0H8@P0H8@P0H8@ (08@H (0 (08@ (08@ (08 (08 (08 (08 (01 (08 (08  $$$#h@II%%%%% !! "H H H   "#3s{ (08 (08 (0 (0 (08 (08@  (08      (08 (0      ( (08 (08 (08 (08 (08 (08@ (0         H.:0000 : 0 :   LL  $562     UUUU@   ######"""##"##" &( KIA  !@ PPP    ## "   - ----- I    IIAA0 00 0 0 00  z:    \F@ . (0 (08@ (08@ (08 (08@ (08@ (08@ (08@ (08@ (08@ (08@ (08@ (08@  (08 (08 (08@ (08 (08 (08 (08@ (08@ (08@ (08 (0808 (   $(0 (08 (08@ (0 FFF @@EEEEEE     0,0 000000ED ?? &&"&""&"""""0    !   *(  [[[[ &   I)"  `pahfnl %%%%%%  V^R 8 '%$)X  %$    khh ( ()+(,    ( (08@H (08@H ! (08@H (08@H (08@H (08@H (08@H (08@H (08@H  (08@H        (08@ (08@ (08@ (08@ (08@H (08@  ( $(08  $ (08@H (08@H (08@ (08@ (08@H (08@H (08@H (08@H (08@H (089:   -------,  `P   @   $ P  @   0`pEEEEEAAA@EEEED@ &(, ` @D $  * 5    IHHHHHH    - J$ $$ IHHHHHHHH ``xff    (08@H (08@H (08@H (08@H (08@H (08@H ()*,0   (08@H (08@H (08@H (08@H (08@H (08@H (08@H (08@ (08@H (08@H  $( (08@H@@@-A%A*!   ? ?  $$@@AI0 OOOOOO############ !! ## wPscco&IIH@@000000     (08@H (08@H (08@ $(08@ (08@ (08@H  $( (08@H <<<< < < < << <  MMMM  !A@ +++ + !+)!  @pPPTXQR   ! DPBH L           IHHHH@ dd@  HM O O M @ @ 5   554 @  @ :   (08@H (08@H (08@H (08@H    (08@H (08@H      (089: (08 (08@H@H08 ( (08@H (08@H (08@A (08@H (08@H (08@H (08@H (08@H (08@H   $(08@ (08@H (08@H (08@H (08@H (08@HOOOOOOO@"P :::::: III  ????    ,)9(&I&I&A&&&& @Ppp{}y*I I+   @@HSSQ` D@`DSP 6XY@  &&"&""""""""""   @ bBJF    @xx x$x$xxxx}xBx Aa&&@HDCBp   ``aa aat`t`@`   (08@H (08@H (08@H (08@H (08@H (08@H $(08@ (08@H (08@H (08@H (08@H (08@H (08@H (08@H (08@H (08@H @ 0     p@   %$$  (@   BJj*   @ `A G ! ! !   L$ S A A A A A A A A A D@Baq@H IIIII@@@@@@@  9944t(2,2  (08@H (08@H (08@H (08@H ` @@  &I&I&I&     @$&4<% ???? @@ $ @H0  p `  ( )))0 ()*+, (08@H (08@H( d`dudv`ddddddl         `@@ A e a     @$ 33330003@ 4  @B n ~~0|~j v J $$ $ $$$ QAIimOG??9998@     E @`pxqyu}w@ 0008000091153 @ ############"#####""""""""""`b` ````@a````aa@ )I$$$. 0 @  ```4```` `$` ---)))))))@'   $&$  @ << ,  PP99P)p)PAE@@R)Z-R+ PPHA*  @    A &( `l `l`Hllll       S4S  A P XQ@Q b (> F  b ( 4b 8 ^ s e,$gQ@,QD ,4D>  >4   !%U !A,!\!X"D"/[,'a T'g' ' (D (` P)&!) *@|"/>"(*J" *Y/ D/x%l/` /E%0/R%111-X1 x1$`-c1~$1~$2y.82g.H2h/|2,4G!4!5-/446/ 06/ 8MU8L,d:1>x: 2:< 2`:F 2;A0;8<Kv<$<Nv<4?-/44@# p% |@: pb |AETAEBBFXBBF|H$KxHQ|HbN$HbNXJ>J@`LG D% HLP 8b <LbJOv GMNQMPQHMV 0MY MoUM^UM/ DMXM; VME *TPM( WxM) VM  $b M NM LYpM]M]M0*T0M1G <M],M]MW/ 0MI_ND` NWapTIITI TRI TXITa4T[4W' h% W: |b XQ 4F (XS F \jH'`\=il\N\fk\g3k]skxEtGa=la=l,fpfp,fpfQTf~q$f~ $faq(f (fqXfQDfqXfQDfq\fQHf +rXf+rlu|l0q3N qBqW q] M-'LM-bLCF CF"(DH& (4n rG0 \@gԢG<! !$ɣd$L-F$T8- - 1 1 1X&1QD7  )l k tl ,| ;& rx & PT04KHt$~8$4BB ܱ$ܱp:L;>4DNHB Dw4 0  Z@\o,p@\/\=TzhQ R~,^ _~,DHDPHRHRPHZ(ab4ٳ l< =~,] ^~, 8 8 8 ٳ8 ٳ8 ٳ@ 8 8 ٳ@, -84 58 ~, ~,>\=$zp'$yٳ4Ǿ$ٳ4$5ٳ4$ٳ4Ƴ$ٳ0$ٳ4$ٳ4$ٳ4fLf[L0Qh6$N0/>RUD{8|-c0,H(<@`@`"(*dd8oq Tq tH88$/H$A4$]8m$FT4+#P;+#PB+#P'*pESTyd g;4 _ 4  {&$%$ Y$  RY$ U|RO,@(Y$Y$Y$Y$Y$XY$XY$X/0' /4 @-/4# @ = 8 A !; !;Q e  p ,? L<O p po P`h7mo o o o  4 N <](~,_~t<~ h?<C vxԢH Gp8 Ԣ0 GHM# R#ti# q# l\i'r 'I%$Q(RQ(,\g(dD|((8(ui+ ݥp99.H;9./4x/@0460@[04t0@040@040@!10;1d!f141@>14/1@_% a"2pN9.O3* L1 lX4,TA4d48A4+^58-A4<P^5 RA4`a^5 cA4H%666m\j99L99L*;/:w;|::<;D=>r>$t?MIC$OpC$${#$${#$${#;$${#PPIQRPzS SPVF T\F Tl% q m$m'm*n,mm$mhƳ` ٳd0ƳL ٳX~tI 3tDU<$t 3K"v$K~v$x4yhx$yhx$#xh^3zg3zPRqzj3z!$` {#dˁˁ= =vAKFT[74=>`3 y(P Ppf -99XA=AU9E E$~E>ABAt ~(  ( D E /E8  Ÿ,Ƴ$ٳlqD  Q>P p?t( 5ٳ$3 ٳ$3tD$ ٳL  L GL IP^F4TDGC=CPN<zO<t/ ..EI-H z"3 . < B` HK Nz` _, f ~S L a. ci+T~Sz0]c.@~SSZ |SjLn J%O$t/#O$t/$D~8~h<A\{be{Nx{2P.Y<9^E!^E!]! E!P""U]!E!L%$%"$W$<d$ K$, ^%H ' d DW$0<d$X )p ) Tn($ L%@ %8 #M%H .%< 4M% A%H GM% T%H ZM%-|/-L-P<=@ 4 "F4d| 4 "F4dO 4l "F4LEBlFB]]cc= 4d "F4DJ 4d "F4DB 4d "F4DO 4d "F4Dw9$@Y$Z$ j$@j$@e'e'`Ge'Ge'mHPmHXA =Ee'R R(#Y%YtY$X0Rc$Rc$ic$ic$ced ledpe' 3-d5''!Q!Qd uU uU W`Ze(iS$D7d$17d B#c$@A 4$"F4@$@bp6d6Ҙ Ҙ`z Ҙ,70hZ87hZ0H\,La,L8 ٥\J8 ٥\"ɪ 4 4`u33 !`Nd*p<P[ ry@8KiP +%n[2(+$ ,'43\ :'H3p @'H3x F'p3 L'H3p R'X3 X't3} *0 *0 *0 *0 *0 *0*  D*X*0,ܱ4=K$Qn [@8* ***p9#'  $&,&,3'l'D3l'r'D3l'x'D3l''d3-8* -\k-f</'D3l18* 434L:Ot:a:j}:w|:Z8<$X$*H $/P 7LHtMSx P *P(S*d  h %d Hd$ X0p66$!l_&47H$ &dnd44@ ncc\\h`?70UX $ X "] % k]{}8 v@gsX4$ M,w4494?%6TZAB94%tiO9}F/(wpCJs`J8gRKJ0 "<,NINOP8PHPHPX R Q|d W0_A%6lzX>z<S%3ƀ$6Dǁ$l`PDhI> 0 -gg0~(|~(|]bDJP U8lTHf$d$  ! 0(XA!B0}  ~>p $ l  m > "2 "2hd,j+HTXՈqi(U!W!@"0"Ո|#4#P#4#P$p$$$$ $h 8`P|   $ D 4  &D JпȇNm? ȇlNm?pՈ,ֻeD7X,[$#0#$("lD8$~;4ln̈́,&?0T(> 4B px z  , <  L$>4ȇ$Nm?4̈́$&?4`$8M?@w$S0|ů ů8c0$T,l,8>Hdbp66$@7d$-7do,r  j, m7"#4,WPY~'twazajLkH'D'L  Y[ .D} 4  t Y [ ~l | X H=trH??  @  33303 UEEAAA$$I$$$ )  F , @@p`     600 (( W`` (@b   d  @   @    0"&' $$$$        I I I I I I I I IIII I  PPP M )  @DDFTP@@ 20200$0,0l0m00000001 EAAqQYQQQSAA##((3?!B`APDH1L %%%%%%%%%$$ @ ??6?2?6?>?"??        @$ /` @e}A+ 5$%$%$%$%$ #! ))0  //// %%% @ @@B@ D d ddfn A@0@aAaQaP `@@@ &Aaqq "@ @2@*@$$@$&" IAAAAAAAAAA@@@@@ D$  (8yiiiIKKMMEEED &&       M)+(( 0pP@ @@P  +@@@ ! P@` P@ ""  776vv>47`?? @  D*@*$* *FDDDDDDDDDDDD_?? &I&I&A&A&   "" ""  $ ! (" 5@@@@@@   @ BJfJBJJJJJ)zJ D@" ```@``` ```b```@`A@@ @ - -------MMM       @    B B C @@L@,@BBAAAC@@t`777777711117 00 32  `f  @ "X@XrXzXbXpXtXM)- #PPT R (   <@<<<<<<<<<><<<<<> >> > :>6>/@>@<k$q1y13QQL\ <] ]  Q hR@ \fQaa t!'h!(px!,!,P!"8"eQX"f`'<' ''S 'U'W \0 `0 0'2Q/<<*h/0<//42~R0,2e0L20|7K=7K=7d=: 2T:d=:d= <Ch<4v<<4h/E* E5 (E;GEI$EI<E <Ma Mc'@Ml MjI0MoIMr;IMG,M/RhMUM M M M _V|M TM MM8M\M)xMq&|M)M_V M]\M*T\hY6 g [5Jd$\i\it\i_(@ ,_9Q_*khanla anlaHma[*a*,a}'0a)abNf&p,fPfNppf pj h% lpq (b ,ps @p, pyxpyp p*TDp xpr pt*TDpw xq-$KHQq/Ozq'$qbq q'(q 'qBr}$r~TrQ\X 8X b ,Ԣ$GT79xC@H1`1 1$b]ݥ;ݥݥnݥݥ4 >l0 |L ~L iͧs( lP p( q r K`KKLssL1B D='P'7:Qaٳ fXab4ٳ ``i~(qabx {ٳy~88T $5ٳ P$ $ٳ P$ Ǿ$ٳ P$ Ǿ$ٳ P$ $5ٳ P$ $ٳ P$ '$yٳ P$ D5ٳ P Dٳ PG $ٳI P($ٳ0@L\ 2<+,`~.p.F..F$EX<$EXC$EX8$EX>$EX!m$EXs$EX6<DHxxA4H G4H<T44H8Xxx@o4XH838|>c $LL$o0PUSTydRk,:k, |k, -k0 k0 k, k4#'BJKV tY$ woP x,Ox@$!I'63TD  7fF hcF @\F xo `uo 8no  8G $IF $ƳTٳL$T>t ~$ P~ Lg#,km#$P.Ԣ4 Gh/2!@&'r '>'H,v4 yA44|l4D,-e?${#@AhAAvC v$ {#(~D~C~CW_H W$ {#$I $ {#(3J $ {#({5M<yYM$w~M O0qOKOXO0qOKOXd-g@egeg"2EidEipQ( %`PX=n8\=n_klƳ ٳHƳ$ ٳD==(>(DƳ\ ٳTq ٳr,u0u;u(H(oqz(t3z~3zD{({(3z(*$( {#84F:FC# LtPV0(,~(3:r$3[X7xgt{|43(43 0̙D0nDI TK hLƳx ٳpf ٳHt9=>3A4(3 N*uD $O 1/ 7Z` 3D.@KL`N0#60O.$|@.H/AC!1#;1Lm.@.@xfODt/(nt |P, ]%`]%`t_O%6DZ0~~c%6petiu(x9tE!<qE!vE!"###W$$<d$8$4 g$$ K$, ^%H n$$ K$, ^%H n( L%, "M%.(.\M%96\ 4H "F4$ccC7|8t} 4 "F4. =/p6X6E\EtEn$ n$ xI\JJJW4Zeq`Ƴ0ٳ4tV,c(L}%%Lq [L[ _a$x'a<$'D ><:p\''8e'($T($T.k@%6s7L$TK$x^%dy+z!|<|<{tg׃TchlK}0 4d "F4D3 x= 4d "F4D@Cxirz$jrz0krz879cɟ, ~I4PVD`bg5g6E`<0Lpd48\,_+$` \,$` `,$` d,+S:}:}&!`&% &%3 ,!$,#p,%0$$0&p0(:::"fkdpeq@t7' '<8 {3`Pp S ] Y JX&:nn$L,Q1 U1 T4 D(,*3\ ^T M# N U4 Ih9%ed J$ s v8  0O|<E HG( [,y7 o??O9}HeWMuWMXWMXWMWMXWMX305R`uRkZ$m['VXZ$['VXFCi$RqiX[Xm$jTjLp9k@xkk0?qXkx4A44l4$3A4-jAk(OkOki<p9kIdOQd2j JjX"\t> >(R@> >(RՈ `PnqP  SmRd m8 $ < m! X& 1|  (a!^,bht<d A4!3 xkh9$@$8=$]$ޔL_$Xi$$J U,$6 { ɉɉ { L   ̈́&?$\L\ Og0P-g4Q4+ 2j  JjX \U,ZůWůtS,XůUůtp6i6``0 ge'he'${,~ e'T\TT#l#lFH{hD H, Ka! K! 4 a!  4 7" k4~'A HlTU(VLVDp6@LV 6T9||29L2L@~'p+{}\u0+{}\2u~c4p6,688 D}$D}(XW~'~'INp66dNSY@OW8NMDT   3333333333333333333333333 $((( (`Ȅ@  PP PP    @7S`` ```h`l`m`n``w```@  4DdAQBJ,l@@@@@@@@@@@@ 5555555555 5 iP PPGGGDDDDDDDDDDDDl:E= (((( (0*000P     @@@@@@@@@@@@@@@IIIIIIIIIII@@ #@DFBFf% +(((((((  SSSSS !1  >   ;   ( & ZZS   L @@``    @O/ @@ !` `` (!C@@! 0@b0 HKd,##<1/)//.>><!/!/a/$0(    PM dM/ `MG p |Q8QQmG LzQP XF L     %  @b D IlXpJJN_l\jpOO"0@ ">D|"9"/[(W $% ((Z lb p-Y ,% 0-| b - % - pb t/ ,% 0/ hb l2Q/\<*h/P<//T2/6_6|/ 6`L6c \66|/ 6 L6L6 $% 06 Tb X6 (% 06 Xb \6C % 6E Hb L6 % 6  |b 6( Pb T6- % 8t/$8u,08xQx8yQ;@(;QL;@;Q; % ; pb t;) % ;. Tb X;W `% d;^ ,b 0;k % ;q b ; % ; b ; % ; b <CP<4v<l<4h/l<h/<?Q/4<*h/(<//,<ACHC~ ,% 0C hb lC % $C Db HEGLEGEGEGH $KHQH $KHQH ,% @H tb xH % H lb pHG$K\HQlHI$K|HQxJ ',J NM'M'DM8 XM- L% lM2[#MB % MF b M % M b M/ MG M G MUM:TM>G MCUMEYUMe <% @Mg  db hM[ % Ma  b M % M Xb \M % M hb lMK % MP Tb XM M @% DMbRXND`$N_`,Nz`,Nz`dN D`$N _`,N z`,Nz`dVF VK b VN W\ db xWa b \h\h\/hT\_T@ _[@ (_]k__ka ,6/ 0a XanlfepfnLXfQ`fQfvLPfQXfQf~~p(l % l  b qbLXqi~pTfQ`fQq3Nq{zPq;Iq{4D % 4F @b D;8aG,W(WT"",""P"Al"AC 4% @C b M\8MM F GvTHv\`df jX\jGX \X`GXA0A0A0A0P$m|>0I0Tt c| fI f> oX klfg$iͧs,0P5ȫ=0X00Ob ,='0lDu4pNtv 7XN\X ZX)N`XI`KQQ\Ͳ R10R10R0R0NLN87xN|DZ)N < P 'x \q r~,slabH(ƳٳPPٳXPIHKO|Rab Ǿٳ P P$ٳ0tt$)(HPP(HPP((((]]]] 9@H?$T4\H`|$G4DH`|$A4DHHd$T0T$xT0xT$T0T k ;< X\  F X\ # *0 2TX 6 =, k,  k,  k, $k,Bk,~k, Y$  8 Y$ P  ( Y$  l\Y$_OD@P`-/$3/  -+/E $Fo G Bo $OXSP~$#`(@9(((*TX\"3Ta;:D%%9;0@:>;B:$${#${# #ha#$p{#t#ha#l$p{#tBI8tIITBIW"2 dgL[gUxƳ$ ٳPu("v ů8 Iw SxLKxhK#xh3zD3z@3zqzX(},}@|}ˁ<ˁ<ˁˁ=,>ZÄ\݄WZÄ \݄Tylyyyה (SP~8HxET8XE|[7[7[7@2`SP2SS%62S0̙0nSD [$7 [7hl$dDƻ ƻHc\p  s 0}pnpn, ٳ8 , ٳ8<  ٳH#C$ ٳIY l ٳ@,4,5(4 TA4| X4R4,(4@ TA4, X4L:DC|LT;CD\l  S [ \ VF[T($S&o%'(KSLoTxU,!$WE!<,!WE!""4 \& $d K$| ^% *\& +$d K$| ^% s%4 zM% o$$ ^%x %D M% $\ ^% %, M% n( L% %T M% % % % . B M%Dn($ L%0n($ L%x$\ ^%t n( L%!%D#M%$4 ^%L<W9g9g94% =& =X'p66K'h'<P\e'x3$(4$ECG DZ$Z$_$,_$,CGCG2`G2`GQs>Ss>Ts> Us><!Q!Qd!Q!QlS$e'Le's%+`YYL-`YYDb8Oa<$'>c$Ke'Ge'Is%a0$'(Q~'Zk,$D$h~'$5{p65{6x!|@ylz{!||{||^ 4d "F4DbBlwc 4d "F4DBlcd ߒ@\ WJ(7@hZ` WJ(7`hZh?^t|@ **e *@hx*h<Pk<yx<\.TH*dl$l$+4lW$&2&33&90&930fX$ "2X `PX % `P S 3`P S S SL S S =I< \ T Jpn"2  4 46da86$6'  6da(6$6'   6da(6$6'   6da(6$6'   6da(6$6'   6da(6$6'  L6TaP6$6'D  6da<6$6'(  6da(6$6'  L6TaP6$6'D L6TaP6$6'D  6da(6$6'   6da(6$6'  L6TaP6$6'D  6da<6$6'( t 6da(6$6'  pL6TaP6$6'D l 6da(6$6'  Q 6da(6$6'   6da(6$6'   6Ta$6$|6'  6da(6$6'   6Ta$6$|6'  6da(6$6'   6Ta$6$|6'  6da(6$6'   6da<6$6'(  6da(6$6'  s 6da(6$6'  ] 6da<6$6'( h9%ed| % 9+ed Z 6da(6$6'  OL6TaP6$6'D EL6TaP6$6'D b(6Oa,6$6' 9 6da(6$6'  /6da$6$|6' # 6da(6$6'   6da(6$6'   6da(6$6'   6da(6$6'  Td Td ] [ +$6da(6$6' %~;\@ktCTktCT}C}CE 0KCtMCYC[07 H7[07 H7T#LFd FhQQ5R`uR WlW0X=VX5R`uR/YHObTcTFc {cPrddkbdTq44A48pA4H3A4 A42t W4@C4lt,| r#8D  mT>$m| X 1| ! T $ D m qi0%`P$J( U4x6H 8" U+ u'U!!"![P#!$![#J$@$ҠX# ٵXٵX ($@E@E @EX74F[X{(ɉɉlֻ\L(NDL tC؛D?;?O;9}8 0   d*e7(+?7| ` ů +s ,2 09 1 =k4 G` J4 K300e'De'"l*2,9"el*e2e,9e345&(A=|&=ڻ=}~==O| t/TBAW ! @!   Bj  4@    Aaq!  .`0`0h 0P00a0a00`0 00      ??????@??? ??? _? @```hb` %5?????@???????? ( @@@   @ @P @ @ P )UUD@DhDDDPDD E  Z$I$I$IC`@O@_a_`O`@Oo@`@@H/@!@  )I I%`aa  ( $$ ,        S   &DND  -  B B   " ) "( ( #/O@ F- pp``@@ ooooooOOOIIIIIIIIIII% (#`dd  0,       $ @$     /  0$@H3( 8 I$I$I$I$I$I$I$I$I$I$ I$I$I$I$I$I$!I$I$I$I$I$I$ %  H b ":"@"B"D"["\; "VYP"Np"Q[@"_d#m; "VYP"Np"Q[@#pd$o; "VYP"Np"Q[@$rd%; "VYP"Np"Q[@%d' ' ' ''(s 8% <(t<P(u b /n$|/n$/~$/ D/ 0  \0#l(80/|"/>"06 L0C % 0D )L0F \b `0]''0^b+'z+0$6|/ 00 0 D2y.,2g.D2%HLP db h2{0H7X0,20l2h/t2s168,x6>,<6i,6y.2g.64 <% @65<T66 b ;C % ;M>A;P b ;A; % ; b ;k % ;|B; b C" % $C5 xb |C-QHwK0H0>T>>,HLlfQtfQHLPH<QlM+ 'XM. &M. NM'M'Mw `M % M  b M XlM[ XdU5G pM\ X|U/ M M $% ,M b $MX<(M[ % M] b M 8% DM]\M b a % Panlha  b a, \% a.nla3 b aG (b ,a> T% ha@nla/ `a5m|aHmaF <b Ta&(aNa'$aB aBP bh>@>t>,bQb"4>P>>,b%QlNul` b ld % r}(r~XrQ`r~rQ8lb;8l. 8mC|7/L7,PY(M›T=\[›=K Qd]ɡ@S]ɡ  &T &$ &h#ko#DxH}D(T8ͲP (TN\Nٳ dab@ab ab   P P<<pabPٳ $(pabLab8ٳ <<@ NP@} ٳ  @ ~` ٳ ~ Ƴٳ   P%Ƴ ٳ(22ٳ |X@ k,K#k,' KJ.k,2K LX\ P X Y f\` j r s dh    k, K k, Kg k 8 v T ' , r  - w~dL~ !wwdwG:N;dP;D;?;<::9:;iO4qOKO\kRqR~p`Ƴ ٳrr= M ]X  O ) $)#TpE72ST0̙0nSxS N N U U U04dL= MP ]  OƳ$ ٳ$,`Ƴ$ ٳ$,L)`4>@z$<P Ai+]ݥ L! N/#x/4l| %0?d?O\9}c< %X?l?Od9}$c96 4p6 "F4\ 68p6  4x "F4T 6D#$($$-?> .s>L7?>`Y|Y Y Y8Y=( M$ ]|OA,D pK?8?O,89}t*pH-p5''=e'rz4rz<rzLrz\rzl&!|&^|!5{p&|{oa,bDc<lr6BH DůůDܱDůůD@1T1t1t11++3++ů+"3.$.'t3.'83`000P0X0XzP((((FK]?X@Yf@_fa[hWpe$O"2dbJ, kO7$Sx78  4  t " 7 7 A [ T@ 8p B >P 9x : t qp6<e60 h d l !  $,x8|8It0I,I\8H p6 e6XH\p6e64 } 6Ta6$6'p T b 6Oa$6$|6'   6Ta$6$6'  Y,6Ta06$6' Z 0b 6Oa$6$|6' 2 -b6Oa 6$|6' .] b 6Oa$6$6' ] h9%edl q1 B(1 D3 (6Ta,6$6'   $$ 'T Bh ZL 4@@@@|p%PxuqDk$ 4*C-C-S>C<m?0Fl.??Ox9}!|%T6UuReU$!eLepHe!eteU> >(Ÿ́&?ZRpR \ T^ $` c m!h""!d!D#(,#J$$Ҡ4ٵpٵp ( Ld j    x xٵٵ,$)J|6Ո9ֻ>qi,t"Lrz4rz<rzLrz\rzl7+8+9+ :+,;+8 `d `7d VL W2 W7k4yy!48"3|.{` g{8{|{'{ x k$ 4 4 3$OT t/,SH4O\ t/4:N/LOh@`؀!  @B "   $@@D`@PP0@!@ @ @@@@@(  @@     @  0 ]] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] Y     , $ @+F E@  %D555$$4 B @ ((  !"  `   x x x \ \ \ T @ \     \ ^ ^ V \ @  %@!A 7((  @`````````````@` ` `````aaaa`` O'H'H$@$H$@p$H$@p`! @@@@@`H@PPB@@(@,@*@)@-@+P $  '6|/ ' d'd'')D ))) )'?/ -#-#-#4rOQ-,|-,0D L0Ec'p0=0K 0Lc'0=0Y D0f % 0y b 0o0l(L0l(|0(p0n$$0(X0(2 L% P2 [#28 p% t2:[#2Q/<*h/<//2Q/<*h/<//2 1T2 1|2 12121212g,H2| 2 2 282 2t2,2/6 D6" 6  % 6 b d7v< 7B< 7v< 7B<d7h/d7h/d<<v<(<<v<(<>h/\<@h/l<@h/l<Bh/?2D?PD?=lD,?QP? D? DCzFTC}FC PM/ dC pM/ |HndK`HrwKHr>>>,(M M M/ MG M Mn$M%',M) 0% 4M,<M/ b MD'HMH XMR MJNM'M'MN(M'<M'MNM'M'M M MM 4M lMK%M5 $M= \% `Mc PMP Lb PM*TLM % MG M b M/R(M L% \M  b M YUM WpM _VpM % M  b MJl(MPXM[ XU5G M\ XU/ \H\ X\ h\\\p 4% 8p_wTpvwXp b rv}r % r}r b rv}r % r}0r 4b 8Tv}$r % T}r b Q WG@TGl`G]GZG##d  @lP Ͳ8 D: ? 8A B ٳ h]OP(ٳ TPͲN$ٳٳٳ`OO@mnh,ddk@ `d   ;` hl    ; w~|~0Tx#LM#R#Z#a#\#,):0:P.%0;3:5;Va;:DY;\: ^;_;:ha;l:%l9<:9@:::`:d;8$${#${#${#${#${# $ {#$9#ha#x<#a#>#a#gQjO4OKO>?l$l$h\/4l|h\/l= M ] , O4l@'h<X7`d EX 4BxTa-f*85[\7-[`7pPH+P|7P,:h\P$iP<7E47EVƳ$ ٳ\`^`Ǿb @Ǿ$ ٳA>tAItS B8^((G| A4  3 cxjOt/l+ &Xn,N*uD3O 3- 4O4\ J%LJ%% %[ N*uPt  m`%X8p x CdefSlZ,H!<bE!x!bE!!bE! $ K$( ^%D $ K$ ^% -H \& $h ^% % M%  -H \& $h ^% % M% Bn(  L% F% X%  [%x M%0 $, ^% \& ' $< ^%'4/4E.lL$ ^%n$(ps%Pn$`K$p^%e'  gUed!g(edX$h%edC~'tC~'tE~'\F~'J$J$k$ o$q' 'e'mppp5''Nq@kq$''$e'p|5'H'P r8(<x''(<Tp(p5''e'$4y+z,yH+zPyt+z|?y+z@y+zAy+zRy+zSy+zTy+zQtK7c4@LXd:™@<>88DE ߒ "2 ; (-qil/8+0+++8++ ,L\Ԥ68 Ԥd6P+VܭAdx|L9S 9S :}H:}H:}(:}(CEůhMs`\ B0*LDx*F*$4$xH$3|$$$hp}e~yuD4$ 37L 9 S Y Y:#\:l8: $T:RX(<\(<lT gb`6Oad6$6' h] + nb`6Oad6$6' o]  Ub`6Oad6$6' V] e b`6Oad6$6' ]  ,b`6Oad6$6' -] c b`6Oad6$6' ]  b`6Oad6$6' ]  h9%ed| % 9+ed q1L B(18 b`6Oad6$6' ]  b`6Oad6$6' ]  d:( #: 84:G|) H%M|)T|)U%Y|)`W0X(=VX`YWf/YOW0X=VXTW/YO4 ^`EW0X=VXPn[TE^Y+P]J UmJ U `ȇ`Nm?dqi,̈́X&?O8IT8T8d$T "((+Jt$$Ҡ.!(F!=!&@!J4$$Ҡs!txw!~!!!\"D""# # #@ t  ̈́&? ̈́`&?lxh`Jd0tpLJpwS,$#[-h-[h05L f0 ~ ~ ot h f 9l+ I#[p#7,J8#(e4#7D-1) x      (   D   d@ yQ[}uX i`8LXHLXLX 8 = E[m7 M N  V Wk4 m v4 { 4 3H k<  @ D 4 3\\Lq3<}ڻ`~=$ 4Q0 3(h{ O, t/\ RxH0            @      0 ? ? ? ? <,??,,, ,,!?``a````` ``0`````8``1``0```            @ @     0 ? ? ? ? ----! !!!!!!!!!!)@@`T@V@4@$@TTBBB @   @GF!!pxy : @$   @@  @H ( U        C V-V-V-PP;` )(!- @` $(((  ( (("""B"""" %c CCS @#"&"&""" ; t% x= b M pb t+`QHHD!,$!/ x!<4!/ !U!/ <!/ T/ M/ 4/[#@/ x% |/ b / % /&M& Me&/ db h2 % 2.P2 tM/ 2 b 2 % 2 02.8l.L2[#2 4 !L4 4j!4!41!4! 4KW3D5 % 566d6X5 \b `6n66V7$6V76V7X6V76V76V746o77e/$7d,<7oR0\7oR0`7~h/7{070D720@7+R0$75e0T76{07X07Vh/790<Q/$<*h/(<//,< oCT< oC<4Q/<//M M$M <% \M M (b ,M LMdM <M % M xb MuY0MXM XM[ XU5G M\ XU/ MY M^QM`Q(MjMf tMpMqTV* $V. Db HV4G hV5 pb tV7>&aHmaHm\aHmaHmaHmaHm aHm8l  Tl dl p% l b l p t% |p"xp b p) b qTL0fQ8fQqzq}z`qvzqz,r 8rv}r % r}r b X X4X F X[#(X b X1 8X6 tb xXU Hb LX[ b 4Bٳ m<m<@ NsP8\@ N X\  d  F   k0    L Fx`d,.C L/.$Ƴ ٳ( o do \o   www4WD.W~pwK7,I%6T|%67_%6e7k* ::::;p : :%R${O(qOKOL|HR\(pL+pLX6O$qOKOL:OGN>PEPl8Ƴ, ٳ$BdFDǾp>'@HƳ$ ٳppƳ  ٳ,]= M ] @ OH^Ƴx ٳpl3(4 TA4 X4$3tB fx-%60o0̙H0nHr0̙0nwS4Z> <V> >>p 7+&t4OHt/ xp#,x#$M#\R#Y#8#LY#P ,s%h n$< K$L ^%h ?$  K$  ^%< `\& c%` s,!WE! s,!WE! ~M%X|$ ^%d'd$ ^%4Y']$]"$`'e$ ^% p$$K$^%pD$H p\ $K$$^%@$P($6H6>Q$!4 ߒ&™@(+8@0` WJ4f||7hZ | WJ4f||7hZ+|oP,Lsw1+4{cx+1+xc+,+A,*@ENINMNQNzX"$&E+ 7E?0Jd$$x$3$3$$$i@kvf}s}lYZp6U 6pXcc\XcIynXn h9%edl $96ed %  <<%  D3  %<6Ta@6$6' &Jl *J .D8B99#a#4@#a#,#Q a ^ olc Pe om mn  No 0(3lT3T % xk NoQL?n?nQL?nX?nX%J U,%6  %% %\+y zVf]hJJ,JwY{ɉɉٵٵ8=l0+'L C؛7 pC>J(: CCWJC7 ChZ\T^`b XdfOhD00 e'Te'&+v&\k i&$qi43<)AD}UHf ~4|~DOX t/,JlSHPlHSH0Ot t/LO t/  rH8I$I$BI$I$RI$I$BI$I$CI$I$AI$I$HI$I$I$I$7 08<@@BBDEP@`@@@H# @ @@ ÃÀ c.P$$ t(t(`d(l(4(tt$ j  j j j j j j j j j j  j j j        b B B B 's@s@SHSISKSASKSAKSKS@ A s33rssq8qSc(23 ; ;0@ 04 0 0 2 3 2,- * 8P 8@ 8b"8b8b"<b":b 8@8@??@?@??????? ?A?A?"L"Q0"P"Q"w" " "Q`'{ '?/ T'z8'}'` ''v ' X(T6X(` ( (4( ('?/ T/ 4% 8/ b /  % /+ 4b 819|"T/;%,/>"d1B-/41_-,1l 1w&,4j!H4lj!x4!|4q!H4!4n!4!p4y4b4444444"P4"4"0445 % 5605 Pb T565 b ?_ Xb \?Z % ?QX? |b ?UQH]#N8Hf3NHy b H $% (H <% @MpUMvbR|M b MRV8M*TlM b Xzc X X b $XdclX |b Xca{marmaHmam0aHm4aHmdamaHma $b (a H% Xa x% a b p \% `p b p&p/ p b r},r~\rQdr}r~rQr~rQCS % ,C\FC]F`Cf b ChG CkGp,M›\=dsy›=M›=>0I0Tpc&(1 "Q1\Bݥ1xݥ(ݥݥ#T#(#,\Nd&,NNQ WLWL`hhk˶ mt ~,~Hab~ ab \`  Fc   ;/#8a#<1#a#06#\a#`7$d{#hPO$qOKOLXNSOqOKOTHRRƳ0 ٳ(i(t= M ]t  OpW@ZÄ\݄=b=PE\E%60̙0n =' M,' ]''O  Ƴ'ٳF^FFFFF@F!,!$WE!<*]!*w!(]!XE!,(ɣXE! qn( L%8 rn( L% yn(p L% zn( L% 'T $ K$ ^% $\ K$H ^%d  w* Q*@ (S* *T * * *  *dKW$(<d$DO%T\&W%_-aM%eM%x.(/,0014STUV\(],^0_4g DlC(q DtCvCpC CCt$0s%Ln$XK$h^%~'$@~'` [@[$[[[[[!0Ge'N&X &\c' 'Z$r$:(<<<p@ pT5''`e'0&p\'p\pLM,Nd  y+zy+z]5{^|T!5{Dy+z,yH+zPyx+zy+zy+z,yH+zPRyt1y|y+zyh+zy+zy+zy+zy+zy+zy+zy(+z+y+z,y+z-y+z.y,+z dRyL1yTeRyt1yhfRy1yiRy1y;<<=w\wBhH0I0J0K00L0\NJED#d$h%l(p1,)t2P5z;Al>Ax$8ɪhPʻ|8ʻd>"LbX?"lbt@"bA"b  ]* - #,-0 8-77p<  "7,L`@7P3.)L$ i,6Ta06$6'  kJ n0 sJh { nh9%ed o<% v$96edp w<% ~<%( $\ b(6Oa,6$6' b6Oa6$ 6' '$6da`6$6' (6da6$t6'T]{}T]{}xTgsTgs (!e0RHe:keN!eA!e$<!e8!e V!e( ( gg~hh(~hh8jHjX@ k@jB=kxk ;jDjX{(ɉɉl"2S{tɉpɉ< (#4.0 2dh ^`, 9tL j 7$4  8  |4 }3  b{(ɉɉl"2S{tɉpɉ>`= M ]O,@>A=$ M4 ]OA,$=( M$ ]|OƳٳ'S$0(,,= M` ]$  O,,e4je'ke'le're'we'|e'D08\$ ] { SITфLxD d.{h^D D}@($  p #@PP(@ @@ @  'ppppppww%D$p  P.@0@0 0 0000000000000 000@ 00 000 0 00\  !A- 4% 8-[#- b - 0% 4- `b d6 $6,66/ 66869L6V<P6A +'z+ 6+$6 4A "HA+hA,A6/ M T% XMRM F MRM.\M/ b M 0% 4M b M>&,M % M % M M M HWM eWM WM W<M WM WM WM (MXM'ML`fQhfQM \M tM  LMj % M_VM ,b 0M b M % M_ M<)pMX/ MZ/ M\/ M<)HM\/ MX/ \MZ/ pN8`@N<`0NE aNKD`NLD`N^_`N~D`N.a NWa$YX g[1JdYYogYZf0[0Jd(Y]g<[>Jd@Y^gT[<JdXr~ r},r~\rQdr}r~rQr~rQa(d,M›\=deM›=g›=ִ(,\NdNNŽdxt'@KrQNZON ~ r0ٳ XǾc'cc #,|05L$% % % %    !w&wx#PM#R#$${#({#$<{#tO$qOKOL.SKHRgQ jOd~Bg$t`P$%04%D4%D#m,"]oXm~p;=  M0  ]   O {qz0qzh{{{qz { ,3zL2,83,<Y|w}L<Շcn}0̙0n(0̙P0nPx]p0̙0nid0̙D0nDu0̙$0n$[\\` {}\H9pb9.`Yx9&*@(*@<**@X,*@t.*@0*@2*@4*@6*@~' /F/F/Fh/F/F(/F/F/FP?>$?>Ts>gJs>h?>?>@s>?>#p`5''$&e'l(''*'T' .rc0<HT`lx T3d Z d A LH$ 3$ 3  |[ (80f(fLx,q (:#l:x8$:p8U5'4'<7$|}(x|s4D< EN3l3a@Ea[bli9f9  J Uh,Jp UX-#(T` t!f Xt!Dv 3] 4`] (4`JTA4PJX4l [  #[ 8[ 8B`OlT <rlO Nx H Zfh $OTx &i0xi X H4(~  )( - .L 6H D  B B  ~( L k   x 4 3)````h``````````>`>`¾`>`^`#$ @ @ @ @ 9  !!0 0 ;**@  6aac`!@@PP!1!!!!QPeP=@@@@  I        ; I$Z@ I$Z I$Z@ I$Z` I$ZA I$Z@ I$Z@ I$Z I$Z@ I$Z@ I$Z@ I$Z@@ I$ZB I$Z@ I$Z@0 BB@ @@@`@`ppp``   &!@ `PH@@@@@@@ @ @@@@C@+ A H1 '?/ 4B ' ` ;v T' B B "Y[ "a[@"c>p>>,"Q""Q"~QP/$/k$H/|"4/>"/$/=$(/E H/J$/z$|/$0 \'?/ ,0 00` 40v ' 0(00/+x2% ,% 02(y.\2g.P2* tb x2/ 22 24 b 4b2<4c2`4g!4iG!4n34F24s34F24H2(4H26 86X6 `% t6H466/ 6 lb p6 6~ \% `6<t6 b 6x % 6y< 6z Hb L9R8,9UR009V089\{07X09\<:^<9_{07X09dh/8?2D ?PD,?=lD0?2D|?PD?=lD?DT?DT?Q?D|C % ,CFC b C FDC  b CGCG|Jj'J{'J J J tJ8J PJNM'M'LJvN0JLJLfQfQfQhfQ,J;IJ;I@J;ILMR0MR\M/RM?RM % M MR.4M b M 'DM bNM XM[ XU5G M\ XU/ M NM'M'8M~/ M/ HM/ PM X% \M&pM&tMe&M b \Ih JX'\JhY6 gx[5Jd|\JhY8 g\JhY9f\LlK dlX lh l8 lF |l`lOlS ll=lA Drmtrnr#TrEQlr#|rEQr# r#0 rOQ rOQl 30P,mљA!4"0X+|=x M4 ]O=t M ](\OdJDSVX7@c˶Z74N<]Z,^Z)NLo (N Q>TlQo TR L[ 8Yo Uo V =p Mx ]OƳ ٳ8mdZ @Q. wlm~\.$b.|iw0wwlx#4M#R#$l$@{#L#8{#p$0{#4 $x#M#R#$h{#H## a#$#$${#F  T $ {##a#${#m$Ƴ0,t ٳ =t M ] 8 O@nH(`,HH`H0`4H` bt Ƴh ٳl = M ]8 ` Od Ƴ ٳ$,Ƴ ٳƳ ٳP L , ƳH 'ٳ4  Ƴ'ٳ | ! XG  A4 H   @  @h9.hY9Q]cld9 $d K$t ^% $ K$ ^% $ $ &$ ($ \&( \&( $< % ^%P W$<d$ n(D L%  M%B0B8}tuqL5555l5l4c5c=cT>c`?cl@cxAcBcDcEcY=0 M, ]OZƳٳZ[>85L[X6l[t7[8[9<[P4gP3pn48ght53A43n<n +H6TaL6$6'0 , 4t6Tax6$6'X 5d|)h_#\${#${#8$ {## Ze7[e$7`^ed7|a[@7Pa[@7W0X=VXZW0X=VXZ ^,m^4{ɉɉ\{8t ɉ,ɉT | No ٚ   n o X: qT4tTA4|4\ T < p """U"U"""t"T"bl"bx F([$  ( ֻ (h ֻP ` ֻ ֻDXڽct^(^ZTk"24t#|u= M ]`Ow,vU0k<"& (&4&(4JTA4JX4*4+388x=kAA4FlK~Pi344f%?`|`|`|1`|1`p|1` |!` |!` |` |` |` | ` | ` || | | |O` |/` |` |` |` |` |`|((@@ @ @@@@@@@@@@@ @@ @     S @@@@5@@U@@@!z X! % !,P! X!JH! b !,|!  b 0 % 0 Db H0 `0%/ 0) % 0*'(0+  b 0+('z+,6+46 D0b+\0"0+0,06/ 0/+0'0'00+ 'z+@6+D6 P0+$0,06/ 4 L% P4[#4 % 4~$4[#4 Tb X4n$4n$5_-<5l P% T5r b 5| % 5~ (b ,5D/46  % 6  Hb L6 6" 6( % 6)<6*  b 7R087R0<7{07X0|7b;<7{0<7X0L7{07X0p7{0D 7X0lM MTDM d% hM b M M*T,M \MBTtM M8 % MA&hM&lMe&MB b MG b M:  b M/ <Mo)0M)dMo)M % M&M&Me&M  b p!vwp%vwLp&w`p) F tp6wp:wp=wp?wlpBwpDwqY3NqbNq;OzqyLfQ$fQqL$fQH fQ q{zXq{zٳ hNHPh"#@ N#P+@ N(,P@t,l d7=.T*$p$tduLvw4z~4H |=  M  ], h Op |  Ƴ ٳ >   =( M$ ]|  OƳ ٳ> 0 @@AC#t45:#`OWc7phOt/j+8&rOdt/DO(t/O t/ O K$&{# T S$&{# Z ^ b _#d j |TLFGHI}THƳ8ٳ,PtVT,T,],],,c,XU@ $p5'P'$e'p6qq6@6Lqq\X^Wu_Wu`Wu<aWuhbWucWudWueWugsu[pQ@QKK΋`D4OLQW] c d k l| q r [d07$WG[d07HWG[wG07[ 07ca m%Hca aabaGb0aaa p  %X  @E % 0 %J0 4T <Jp <[p3Jp Ut5GxJ\ UDyJ UjJ UkJ UqiTki&04D13&P,4,(4mTA4mX4dqiTekhi&~4D3tPz4z(4mTA4mX4 qiT k i& 4D 3 P 4 (4mTA4mX4 &qiT 'k *i& @4D A3 6P <4 <(4mTA4mX4qiTki&4D3P 4 (4mTA4mX4qiTki&4D3P4(4mTA4mX4qiTki&4D3P4(4mTA4mX4qiTk"&4D3P4(44TA44X4// / /G / /G (/8/ d/ /+|"/>"// (/0G T0P % 0[<)\MX/ pMZ/ xM\/ 0d/ 0f b 0j[#0U < b @6:h6 % 6:6:6:6 b 6 Db H6 t b x7R047R0870<70@7 {0`7X0h7{07X07{0 7X07{04 7X0<M( $M)4M+ <% PMH b Mc>&xMr % Mt  b Mu 0M $b (Mv @Mv @Mw h% |M M&M dM/ $M{ DM} lXidc,XtzcXz F XdcX HF LX X[#Xdc(X  b \.i[R g[5Jd[WLi\hPY6 gD[5JdH\.i[R g[5Jd[WLi(\kih" $ <. 8 @B a R h\ H l m s qh/ 8! # % A'`c$h{#ld${#he#\a#`g$D{#Hj$<{#@m$( {#,YR${O(qO KOL|HRhY>$ZR{OqOL|HR0`?KO~p\ƳL ٳDL Ƴ ٳ$p0=p M ]  O(-pf`*f(-t3`SSCBP ?4L yV4X3`S|b[7d[72 SXSS l/D|0̙\0n\{4|S}3T~3,~2, S(,!$WE!<+!T>]!>w!3]!43ɣ44]!L4ɣLE!E!E! \&p \&p , % M% -D %D M% M% M% - M%'|'n( L% n(\ L%`n( L%) * (S*QQ Q8QdQQQQQ|@Z[$7XceL7hu%6[@7H[7he 7|xp0E?Sh4 S :} :} :} :}  *8 *t  * * @$w$$x$3 $$,$,$,$$$$$JhP_kQ_kR_kS_0k Ux gBMFh]e'f'P ' `ZGJMdKHXl =0[ M,[ ][[O , =d[ M[ ][<[OD ,D {S Sl  @ 7| S Sd 7 S St S S S$ Sh ]* S  h-, S #- 8 -HST$JFFPKTLTMTNTOFFtPT QTLRT:#:$8:Q hc0c@x38 8 gl 843dg4 7 08t:xNO x  b6Oa 6' 6Ta6$6$D6' 6Ta 6$ 6'(<,(<T(<|(<(<(<(< BD> % &|4F/d#L7Lx#L,#L|7L J UJ U|$Ҡ $Ҡ %J, U@ %6X RG S0 _;I  cf\ t~P u  Y ,XB TD C؛" " { P|  ~QQ `6/ d  '?/ ` lv  ' "P"[h"QX"" Q" """Q"Q<""L"Q" A#*D#p"[#Qx# #$Q#%"Q@#+"Q#+Q#,<#-QX#RD#Ep"[#FQx#H#LQ#M"Q@#S"Q#SQ#TD#UQ`$*D$p"[$Qx$ $$Q$%"Q@$+"Q$+Q$,<$-QX$RD$Ep"[$FQx$H$LQ$M"Q@$S"Q$SQ$TD$UQ`/ ,% 0/ b /&/ (% ,/ Pb T/ l % p/  b 0yo)0 <% @0l(,0o)l0)0<)(MX/ DMZ/ LM\/ \0l(p0  b 65!06c!4!p6e b 6h % 6Nj!4!6P p b t6T  % 6 86X6 l% 6 b 6 6 :d6h6/ l6  b 6 8=8t/ 8u,$8xQ8yQ8Q/d<*h/<//8Q/t<//8Q/ <//8<YC<4v<<4h/<ZQ/<//<\Q/<*h/<//<_Q/D<//<<WQ/ <*h/ <//MT@M % M 8b <M % M b M x % |M  b M <ME\dMN/ pMP/ ME\MN/ MP/ M % M'(M'(M @ b Dx|7@NZ 'Pr')N'r ŽxŽXxh7NrrXN\N`#';N<NyO]Ap / 4 /D mF]TmT F!x#M#DR#p${#$1##{##$ {#"#\qi#~i,$x1##a#~i{##( a#,$ {#nmn=x M ]  O=d Mt ]  Om$= M ]`  O]om= M ]  H OP 7%H 9M% <\& P,  F% HM%< A% CM% S- S% [M% b-T eM%M%$M%X %(M%6%EM%WM% XM%,Y%d^M%T gM%d sM% :M%$$hK$|^%7)7)|$ $ $@7)$47)$\Up$Xp5''^e'<{p666qqqm6t614C$C$C$C$D@689:7`R$4Swn[@YW00XD=VX|ZW<['VXYP[ 'VX[Y^<|iḦ́&?|Y + 0 , 6 A4$G I %J  Jh U| 6 ت 3\\ 0 3l 3 YD} fD kD} sH D} tD}  ~ 8 4 0 ,  D}p"#"@"@"&"""" H" H$$$"X"[p"Q`""Q"""""Q"Qp"""Q"A"X"[p"Q`""Q"""""Q"Qx"""Q"A0'40'<0)0'0)80)0 *0,4*06[*0<[*0>[*H0B*t0'L0'M= |"`/>"8MR t% xMa -M]  b MU  b /4HMh   b Md   b YC g,[1Jd4YDog0YEfL[0JdDYIfl[0JddYKg[>JdYOg [?JdYPYPg [<Jdalaa,pa % a6a \b `aaz % <a| \ b tanlanlaLaL fQfQXa \f8 a2LfQfQa% \ f8 fQ fQta5Qp{ L% Pp~_wtpvwxpvwpvwpwp F pw pwLpwp  b >p=| M ]<dOl,=  M  ]X  O$\/$){#){#1# $){#$){#  $ ){#9.@#@^= M0 ]  O>Hh>>8 X@ P$ K$p ^% Q$ K$ ^% w$ i'0 @ v$ K$ ^% K$ ^% ɣ,x>$K$8^%T?$K$^%F', 'Np\t2' 'pRyd1ypy+zl!||{\py +z]xXbF,cF0dF4eF8fF<gF@hFDiFHlFmFnFR#t-S|$'(%4S 0`@SX7<EK@B L]*P L- O#- R88-H V ^$ ~ r u mt p$6Ta(6$6' rJ u<6TaD6$6'0 vb 6Oa 6$d 6' | X(1D ^q1 B(1t _<% f$(96ed g<%L r%9+ed sq1 B(1 y<%X ~% <<%!J $($Ҡ!J($l$Ҡ!c($Ҡ<!!Jx $ $Ҡ, !c0 $Ҡ eT z~  k<   3d H 4t (4t JTA4 JX4 4p 3 $ F  %  @ \b `. tG  zQ  b   b M; % M>  Hb LMO >&tMP  b MA `% ML % MC VME  b MG VM _V M |"d/;%/>"M % M  b M VdM   b M  t b xM   b MX@M[ X8U5G DM\ XPU/ TM `% dM|XM YM{<) MX/  MZ/  M\/ 4M b da |6/ a ala4a T% Xa b aa 4 % Xa x b |anl D@|(xmm@&mm D |N ("x##$@+4HXh4H%4  H$ H4o  o 8 =t M ]O X  o  X= MD ]OƳٳo 4*O ,o  .o /o p0o 4 LLLDnR${O(qO KOL|HRhnIC$pR{OqO\spC`|HR8uO( KO\KOyHRO$qOKOLHxU@SLCDCQ,QJ,HRF<F |$@&{#  $&{# $&{#  $&{#@ # $0 &{# $X &{# _%$ g$4 K$H ^%d _%H g$X K$l ^% $ K$ ^% n( L% n( L%t  C,CVETUE : D; D>C|E D(HC|OC RCWEXEYEZETmA4H<pqq>q>sq>(uq> zq>D |q>4~q>q>$$ A  A"A"A$!A$! A$!A$!A$!A$!*$* F  %  @b D  G  zQ!  b &  b :. #mwl#q"[#r##uQ#T#DT"/[d#T# "Q#~#Q #Q#Q8#!h"[x#"#%Q#("Q#)"Q#)Q#*0#5Q\#? "Q#Od#^8 "Q$mwl$q"[$r$$uQ$T$DT"/[d$T$ "Q$~$Q $Q$Q8$wl$"[$$P$Q$X$DX"/[h$X$ "Q$$Q,$Q$QL$!h"[x$"$%Q$("Q$)"Q$)Q$*0$7Q$A "Q$Q$`x "Q %wl%"[%%@%Q%h%Dh"/[x%h% "Q% %QD%Q@%$Q%>h"[x%?%D%BQ%F"Q%G"Q%GQ%QQ%[x "Q`%k%z "Q)QD )i!p)m&!)sG!)wj!4!)z!4!()!)j! 4!) )! 4!p)!4!9yR0$9{0t7X0|9R0p9>:o>9/9>9{07X090$9>p :o>H90d9/d9>tM M 0% <M RVdM  b M MlVhM  (b ,M _VTM  l b pM M *TM @MJ',MX `M/ lMa MdE\MN/ MP/ MfE\MN/ MP/ (Mj 0 % 4Mk'(HMl'(tMn b W F W`-cW W W:. W<. WmbWob@ WG zQWG  zQWbTWbl dl l l dl l l\ll)vll  % l  b l xl  x{x{{{{|{{X{{ {d\ U{ P U{ @= M ]8tO|ƳٳƳٳw|  ~ <~ (~tn;s:t9w:~:9$9::;HU<:;H|:z; r;x (gQ$jO(>$)gQjO$*gQjOX+OKOH,OH;? qO KO5Qp-Ot1P Pm0Q ltT laƳ8 ٳ0ttg= M ]x  O= Mh ]  O=w@Y|w}tY4|w|}Y |w } Yl |w } Yp |w } Ƴlٳ`6[<[:[|,@,[,,@(\  G< \GUT r$:(<<<p@ p`5'T'de'"6#6$p6 6%p6 64&6L)6xHulttIutJutKutLuXtlMu tNu tOu`tt ah tA4H  u<A4THXx }X l  l( A4@ HD`(d<LB [ p94`kks$s$B   < t`m.D h9%ed %x9Led % 9Led $@ 6$, %T <<%d % <% $\ 96ed <% 9Led lh9%ed m$( n<%t v$(96ed w<%L <% <% <%P % <<% $( 96edD $d96edP`VRT[ ^0a,bct5fpd{`{ȇDNm?Hɉɉɉhɉ|ȇ Nm?L >{\ ɉx ɉ  H   @  ̈́&?   ̈́ &?1 JL U4d J  U %P&6'w()iq7hmr~F L R V0, s>$,H>,>l,>,0>,>d ,xoodoo! h!!,! ,(! ,0! h!!] !,!.!1 6!3 !]!C! X!%M pM % M  b $M1 |XM5 % M6 |X0M; <)P MX/ p MZ/ x M\/ M=   b M9  b M0]\ME\`MN/ tMP/ M3]ME\MN/ MP/ M7M<  % $M= 0 % @MC  b MD b C % ,C C'vC vC".dC7vC0vC2.CBFC x b |CH  b CJGCMGCEF#4a#(,#pQ(x#a#$T{#X$#H a#L(#_#|# a#${#4<@@<@@>@>@B@B@@@@@NRTR@H@lX@$V@TRTT@Tegdkmq@bwy@`pDƳ$ ٳƳ ٳƳ< ٳ@<Ƴ< ٳVƳ ٳ0H,,(p\$>x>8>x>>@ > >T >k|| pT$ҠsԢPttx;I ,y?;?O$ ;9}xzp     0"BP%"$!"pN"V"V I \"LT"O"Hq"z"""ȇ  Nm?"ȇLNm?X3"ՈQ%%\%%`%=H;HHH H 0H  H! ;hH;H;Hqepq%``@@h $% , XM/ dz  F  pM/ |   F   b   $j Hb L"h"[x"""Q""$"Q"Q"""""QL"A" "Q"t""Q'6L6|/ 8'F 'F'Q 'P'9 @'? '^\'` H'al'ev  ' 'T` '` L'Vl'Zv ' M '$M X\M[ XTU5G `M\ XlU/ pM |% M YM{<) MX/ MZ/ M\/ M  b M NM',M'UgQLjOgQjOgQ,jOOtGtKOG *#U SG*#zSS m.optI= M ]$ L OP=x M ]  O=< Md ]T  OspƳL ٳDsƳx ٳp**(Ǿ|(Ǿ|.. =0 M, ]OƳٳ= M ]l  OƳ ٳ"Ƴٳ0V -,fTShX    f S S <    4|f3/@ /E \/B /R%4/X$D/Z%/n$/o$/r$/[$P/ </$h/ %/%p/ /$/ /n$H/$\7;7{07X0|707 ;X7 <X7 e0X7&<7;47e0X7<7;7&<7e07<7B<7;7e07<M^LM M % M db hMMhMLYM  % M p b tM_VM^dMRV MG PM*TXM6^_>>>,_H>d>>,_l_$ >@ >t >,_@ _X>0>d>,_Qo tO o T (!7o ;kO  lo ,y 8 oo  ro  t>P d to P u D 7m Ho 7m flflff0f0x#M#tR#fHfH#H a## a##4a#8 #\a# #hs?$v?Py?||????,?X?*@W@W@W@W@HW@xW@W@W@@4HHTHtHHHpHHHH8HHHLHlHHHHHH   `  0   h   8   p @xPPRY8 WW0X=VX8Y=W0X=VX)WD PR88W, HZ| JRT Z W Zx7x$0|;$;$<$0<$0=9(*t$!h T   "L"QL"j"o;"VY"N"Q["pQ"q"tQ"xQ "|[$""Q"""Q"d""["u`"A/ %$/ / /%/ X/K%/ 4% 8/ pb t/!/!/!!( 4!/,%/K$4/L$@/O \/H%LP b 27Q/<<*h/0<//42fR02ge0d2j{07X02j02u0l2Q/ <*h/2020 <// 2\ b 2042W D% P2{0l7X0t8`BLBB0BL<BlLLLBL4B\LL} }$}(},}0}4}8}<}@}D}H}L}P}T}X}l}\}`}d}hWx $(,048<@DHLPTXl\`dh, sƳ ٳǾsƳ ٳlll''Ǿp p , A{LAS|E{KtNɉXɉɉɉ\X{ ɉ ɉeX   +A4 +H + -IA8          X```p'``      I$,Ns%Ln$XK$h^%P~'X$@Ya\$'4[~']a $_ah '| $ 'HUa$( Wa ' $ ' Ry41y8yP+zTyt+zxRy1yy+zy +zRy 1yy+z!|4y+zy+z|{YDww pg-gẌ́X &?wt +4'+L Y  Y@  $D7gh/$7lh/L7vR0l7vR0p7w0t7w0x7~{07X07~<7{{0 7X07{<7s{04 7X0<7rR007s<P:^<d7s0T7{07=7X07{0T7X007<T 7H0̙\0n\ @0̙0n CT0̙40n4 CT 0̙h 0nh F 0̙ 0n I,0̙ 0n  Oh0̙0n [0̙l0nllx m(nx@oPp`qxtrsxtxuvxwxyxz{x|x$},~x@LXxlx p++$|?J].*h$RNNsP   d p }Dztw(w(`.@d&o8)/2J U26JNL@>o,, ȇ Nm? ȇ Nm? J  U Jx  U J ٵ  ٵ  6!s"6X1} +$2}D+H3d1Fh4 1F7} +9  1F<D1FH>}t+x?}+F}$+(GD'V L''''  '8'  |'F 'O (' '( '* ' ' 'p' t' '' 0'f h'i x'r 'x 'E '< 6|886w 6} @% H6 b 686 $% ,6  b 6  b 68 68X686686D 68666,H6L6/ Xc7xdH   d   d y n4 a Z O4 J D A=d92.HTh$J Ut6YY<:|(`` 9t)Y-YX.%Y&ֻ`ZxHY =YT 4Y YX 0 3lL 3L Y` *UH"6*H,G.6@DGF\ILKGLOZ ]g\ _-g Ḧ́ &? B8OH;9}t<x x"Rwl"V"["W"[@"ZQ"l"Dl"/[|"l"| "Q"d("fQ0"gQ4"nQt"o""v"yQ"QL"QP""x"w"A"w"A#wYD"Np#vQ"Q[4#xH#Q#Q#Q##Q#Q#Q# "Q#Q #Q$#QL#QT#Q4#Q4###Q#Q#Q#Q$yYD"Np$xQ"Q[4$zH$Q$Q$Q$$Q$Q$Q$ "Q$Q $Q$$QL$QT$Q4$Q4$$$Q$Q$Q`$Ql%YD"Np%Q"Q[4%H%Q%Q%Q%%Q%Q%Q% "Q%Q %Q$%QL%QT%Q4%Q4%%%Q%Q%Q8%QDHQL$H<Q4HRL\H<QtHSLH<QHYL\HZLxH[LHi$K( HQ,H<QH<Q\H<QHpLH<QTHnLXHoLH<QH<QHaLHbLHcLH<Q<H<QhH<QP140̙x0nxS3t ,24>SX 7ST :2 S (S S 33,;0̙d0nd{,0̙T0nTo0̙,0n,%&'(|)*L/`0e f g@ h <  ( h8</x\%\"QP%-p"Q`%P"[%QQ%S%WQ%X%\ %]  "Q,%^P "QD%^QP%dQ%-Qp%/%=Qx%=Qx%6Q%GQ%IQ%Q\%@%&Q%|\"QP%p"Q`%"[%Q%%Q% %$% "Q0%T "QH%QT%Q%Qp%,%Q%Q%Q%Q%Q$%|Q\%~d%QZ,[@n8s8PI0s8PIDhʞhʞ rG rG{ |c@j (jG |c@fLj|jG|7\(?>T?>s>s>?>s>s>Xs>s>s>s>gJ?>(gJs>s>?>ts>JJJ JHJpJgJgJgJM M &HM / M / M % M &M&Me&M  P b TM QXhM <) M\/ M o)M ) MX/  MZ/ M M % $M &8M&<Me&LM  b M QXM o)M % M Hb LMW b M M X% \M  b M P % TM>&xM  b M P% M MTM MK%PML % MO M/ MQ b >$D=p M=X M ]HOPƳp ٳ ] 0 O8=X M| ]O >h>><$K$^%'X l'?/ 8'- 'Z ' L'v `'v `' H'v ' 'Av t'Av t ' T'C 'R '\v ' '[ h'\v '` ' l' ' ' H' ' ' $' p'9 P > 2$2$ $D\!%!4@ H$ `4H!! %"4!H!! 4#Hh##;)_,c*x Q0x QD X?n?n?n?n| QL?nl?nl} Q ?n ?n~ Q ?n< ?n< Q?n?n Q?n?n Q\?nx?nx Q?n?n (|=0 M, ]OƳ0ٳ= M ]< | OƳ ٳƳ`ٳXLV= M( ]O= M ](POX0Z       @$  1               @  @DL=Ƴٳ?Dab E=Ƴ`ٳp?ab|`WƳ ٳٳpqٳTpٳq` ٳPٳ $h iF4jF8kF<lF@mFDnFHoFLpFPqFTrFXsF\tF`eb8xhyDzH{P~`dhl(T((((X(((\7Q  @@ @  @@ @D "sYD"Np"rQ"Q[4"tH"{Q"|Q"}Q""Q"Q"Q"  "Q"Q("Q,"QT"Q\"Q<"Q<"""""u(""""QT"QX"A,"Q|"Qacxx|^cxxtxx xDvx xxx8 x x xx x, x$ #x ~x  x zxh x< |x xcxx8xx\#x x$ #xix#xU}V}W}X}Y}\}]}^}_}`}c}d}e}f}g}j}k}l} m}n}q}r}s} t}$u}(}<},}0}4}8Wx 4,6Ta06$6' 56Ta6$@6' =6Ta 6$  6' >h 6Tal 6$ 6'@ A 6Ta$6$x6' B K 6Ta$ 6$x 6' L U 6Ta$ 6$x 6' V UVWXY\]^_`cdefgjkl mnqrs t$u(<,048.$4{#8/#a#2${#h6$P{#T9${#:# a#=$L {#`K(B#Ta#XO$D1#K(L$\{#`{#R#a#S$4{#TV#0 a# W$ {# Y#` y?>L|s>`?>|?>s>?>?>s>?><?>Ds>h?>?>s>?>?>s>(?>Ds>x?>s>?>s>?>s> ?><s>p?>xs>?>?>s>UUV!V<= M ]hONUXV,x^UyƳ ٳV!V!VH=P Mp ]O{>V($ =! M! ]P"O|"x"G#T>ϓ?ϓ@ϓAϓBϓ Cϓ4DϓHEϓ\FϓpGϓHϓIϓJϓKϓLϓMϓ%()*+01 2$3(6,708498#@t!DJ#c$ҠK#R#$S#Ul# V#,T#u  'U(q#Xn#@#ڑ~#t#(z#A#c$ҠB#9#cX$ҠP:#|# #|.#L-#/#1#0 4#t ##c $Ҡ kD "& ، A4  3 A4 p  30 !A4T $  A4 3  A4 3 ` A4, 3 '3 -A4 ,R .  33 HA4l 7 8~ R4 S3<TƳٳVV5ٳ4``ٳptǾtǾ ٳ t D Tv'v'yٳw$zd\l=4 M ]O=4 M ]O$x$K$^%$@$K$^%K$P^%l$$ K$ ^%$$8K$L^%hK$^%$p $ 7) $ $ 7)D $ K$ ^% $K$^%7)bƳ,ٳ$'C<C'ee (|Ⱦ| T TC,,,el|MXX@ C@ ( e( Ǿ< C< Ǿ e nVrzrzu u rzrz u u u u ; z{;(z,{04 P4+ 43043<4L4+X'z+\4"|43434?D 4$4 4H4T 6X 6/ \4b4444r4H44'4X L4Z&!4rP4~ 84 h44 4" 4" 4 44T 44p 4344P 43d 43x M  M % $M  Hb LM TM M |"P/;% />"8M -M  % M  $ b (M'  lb pMm TMx M LM XM x% |M  b M M XM&\M M& M TM  b /4\ M & ><=( Mh=` M ]OƳ( ٳ8$>` =  M4!= MP  ]Oٳ ]O=X M ]O$`ٳX ] 0 O8x4xHT`xtxxxxx ,x@Lx`xtxxxxx(x<Hx`l h9%ed $P96ed gP9ed $ 6$ $96edD % 9+ed <%0 $ 96ed <% 9$l 6$X <% <%  $T 4$<96ed $96edd )$96ed -$96ed0 .% <<% $ 6$ !%(! <<% % # <<% \6i<\i/ \;h|Y6 gp[5Jdt\@i\Ji\K6g\LhY6 g [5Jd\Xi4\XVh4\uh Y6 g[5Jd\ui\hY6 g[5Jd\h<Y6 g@[5JdD\h<Y8 gL\h<Y9fT\3N\hY6 g[5Jd\hY8 g\h!Y9f\'\B\bR\Mh, @ @   @          ,Q B @@(K@D@@ B@(KHB ,QHB[&,QHB[&,Q\HB[&,Q\hB[&,Q\iB[&,QXiB ,QHB D,QH D,QH ,Q(KiB ,QHB ,QR${O,qOKOT|HRp@ARt{O0qOx |HRdO KOgQx jOR{OqO |HROPzS,SR`{O|HRPKOO qO HR A KO KO S4QpO!qOt"KOzSP$SqO(&KO`qO(KOUI4X 8P[8db4fnj3 {934{n 93$n< 93xn<t5P 3A4t 8n 4d n n 4n(nlnnnnnPnhnnnnnn s!%93!sn!Y$Yn$/Q._\j/_\j+_\j)Q(X) X% X#Q$EE>_\j>_\j>?QAQpBQA_p\jB_\j6_\jx6_\j|67_`"\j7_`$\j7`8_d'\j8_d)\j8d9QtgdoƳL ٳ<pLq= Mp ]  Ob X L `\ PpT = M  ]( P OT&  ٳH'*= M ]  H OL ٳ"=( # M# ]% % OƳt( ٳlV\$tdx#pM#R#$<{#L$ {#$$ {#h$h {#${#$ {#8.q${#+A4+H+#Y#D$ {# # Y# $ {# $ "{# $ ${#L $ &{# $h({# $t*{#x#($,`ƳTٳLo o , P$o 0o -o .o x\  No  S  OPo  iƳ ٳ4 k h o p  o o XTǾ(ǾP''o  "o (# d( Vo Z <_ c F'ٳ,  o P   X pLt!`dOh sP |   P pg<3ETG3\3LD"D `8 n" ! d"S#t$ D%$%(l&,&0`'4'8L(<)?)a,v vlƳ ٳ dd|X    = M, ]   O     Ƴ ٳƳ ٳ = M ]P x O Ƴ# ٳ    =P. M. ]0 (0 O0 ||5  (LBt\${#BtBt@ $ {#l!#, a#0"$L {#)qie#-#a#.# a#$/Bt2${#7#a#9#h a#t <$ {# SB t X# !a# T$ #{# ]$ %{# _#('a# b$,){#Dc#p+a#EB-9|G$x/{#J#1a#K#3a#8L#5a#O$x7{#RRy@1yDSRy\1y`TRyx1y|Uy+zVy+zWRy 1yXy +zYRy$1y[Ry,1y0]yT+zX^Ry1yt`Ry1yby+zcRy1yeRy1ygy,+z0hRyd 1yLjRyl"1yply$+zmRy&1yoRy(1yqy*+zrRy<,1y tRyD.1yHvyl0+zpwRy21yyRy41y{y6+z|Ry81y}Ry :1y~yD<+z$ ~<6Ta@6$6'0 6Ta6$d6' 6Ta 6$L 6'  6Ta 6$ 6' 6Ta6$6' 0  6Ta 6$ 6' D  6Ta 6$ 6' X  6Ta 6$, 6' h $6Ta%6$<%6' | )6Ta*6$T*6'  .6Ta/6$h/6'   36Ta$46$x46'   486Ta896$96'    _h9%ed `$T96ed `gT9ed a$ 6$ f<%< m$ 96ed v$ 6$ <%L $96ed <%8 %l9+ed <% <% <%` $ 6$ <% <%< <%t g9ed +<% $ % <<% <%T "$| " 6$h $ $ 6$ <% $ '96ed %( ) <<% $h +96ed $-96ed 0%/ <<% 1%19Led$ 8<% =$4 6$ $D696ed` $ $996ed %D;9+ed <%x `P,Y4d<[Jd0Ybd[JdxYxd[JdYd[JdYd\[JdPYd [JdYd [JdYd4[Jd(Yd|[JdpYe[JdY(e [JdY?eT[JdHYVe[JdYme[JdYe,[ Jd Yet[!JdhY e ["JdY!e"[#JdY"eL$[$Jd@Y#e&[%JdY$f([&JdY%%f$*['JdY&[1JdY0 g< @[5Jd0 Y16g| |Ry1y}Ry1y~Ry1yy+zy+zRy( 1y,yD +zHRy1yhRy1yy+zRy1yRy1yy$+z(Ryd1yHRyl1ypy+zRy 1yRy"1yy$+zRy<&1y RyD(1yHyl*+zpRy,1yRy.1yy0+zRy21yRy41y yD6+zHRyd81yhRy|:1yRy<1yRy>1yRy@1yyB+z|1F}1F~1F}+}+( 1F,}D +H1Fh1F}+1F1F}$+(d1FHl1Fp}+ 1F"1F}$+<&1F D(1FH}l*+p,1F.1F}0+21F41F }D6+Hd81Fh|:1F<1F>1F@1F}B+$hw4 +/t\A8     0h&P    X!!("""`#l#o0$q$2 %"h%$%$8&$&$W&&gM&w ' <()+/,( '( h* 8+ ,),0T-6-;$...rw4/ 2 (338+/3;P55666>6=D6p67X 8Yt8Z8[D9\9]:^|:_:eL;; d< > ~@6TaD6$6'   86Ta<6$6'   , 6Ta0 6$ 6'  06Ta46$6'  06Ta46$6'  4 6Ta8 6$ 6'  8 6Ta< 6$ 6'  8#6Ta<$6$$6'(  D(6TaH)6$)6',  D-6TaH.6$.6'8 16Ta 26$l26' 56Ta66$X66'  :6Ta;6$l;6'  (?6Ta,@6$@6'  8D6Ta<E6$E6'$ H6Ta I6$XI6' L6TaM6$4 M6' p !Q6Ta!R6$H"R6'" " #>X>\>`>d>h>l>p>t >x>|>>>>>>!>#>&>(>+>->0>2>5>7>:><>?>A>D>F>I>K>N>P>S>U>X>Z>]>_>b> d> g> i> l> n> q> s> v> x>$ {>( }>, >0 >4 >8 >< >@ >D >H >L >P >T >X >\ >` >d >h >l >p >t >x >| > > > > > > > > > > > > > > > >8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|>>>>>>>>>>>>>>>>>>>>>>>>>>>> > >>>>>>> >!>$>&>)> +>$.>(0>,3>05>48>8:><=>@?>DB>HD>LG>PI>TL>XN>\Q>`S>dV>hX>l[>p]>t`>xb>|e>g>j>l>o>q>t>v>y>{>~>>>>>>>>>>>>>>>>>>>>>>>>>> >>>>> >$>(>,>0>4>8><>@>D>H>L>P>T>X>\>`>d>h>l>p>t>x>|> >>>>> >">(>*>0>2>8>:>@> !&*,12478ABHJQTX_bfjn~@   $%(((^11I2?AAFIIKM PRUUUUUUWbejjs$( _ХdĪ  ?!   D [ 'H)2?A$I$K+R$TUTUU UUUUU UdeI$ $ *Dd  RjL$۶mIM,$! I$""""'I$ )Ib*ITUTUUIUUUUq}]H!IG$I&E I$TUUUUUvwww~$I (TUxgFp $I$! tbI$I$UUŸI}p@f$ImhC?)@A$H$D"JRT*DDDD@ $I$H" pQ*JRTH A $$ IJI$I$I$ UUUUUUUUU A $H*JRT$IQpQ #$"*JRT"H$DII$IR )I$II$ y@1I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$I$ IUUUUUUUUUUUUfjUUUUUUUUUUUUUUUUZ*UU#"""""(""("EDHDD̈́CC     $bF(PQk?RH 0 # #!B!B!BB!B!B!BtB!B! @@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@i@$I#$     !@!@!@!@!@!BBBBB!!!!!!BBBBB!!!!!BBBBBB     @!@!@!@!@!@BBBBB!!!!!BBBBB!!!!!!BBBBB      !@!@!@!@!@BBBBBB!!!!!BBBBBB!!!!!BBBBB     !@!@!@!@!`%C 1ZUeVVeRSUU""""""""""""""""DDDDDDDDDDDDDDDD""""""""""""""""DDDDDDDDDDDDDDgfp!!!!!!!!!!!!!!!!!BBBBBBBBBBBBBBBB $$$$$$$$$$$$$$$$HHHHHHHHHHHHHHHH!!!!!!!!!!!!!!!!BBBBBBBBBBBBBBBB $$$$$$$$$$$$$$$TP: *$"DUU))BUUTUEUU (Qp UU**UUm۶m۶TUUUUUU$I$I$I$ITUUUUUUUUUUUU(H$I$I$I$I$$I$I$*UUUUUUUUUUUUUUUURJ)RJ)RRJ)RJ)RJ)RJ)RJ)I$II$I$I$I$I$I$I$I$I$I$I$$I$I$I$I$II$I$I$I$I$I$I$I$I$I$I$a$I$I$I$I75K'Xb[]{}<>ư>,%jV?MbP?{Gz??DR>?x ?UUUUUU?˖dF?xq?Y"$I?ua*?333333??333333?UUUUU?B.?;f?ffffff??333333?+eG?333333?@+mG| @~)@Y@9B.@@@cAeA+BŅ1B4&k C0CPKDGkAlf333333ӿ9B.+mG| Q0-I4&k 6+O /5Ngo1.17.7           ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' 'IIIIII           IIII II/usr/local/go      pthread_create failed: %sQ%cʹexpand 32-byte k    (*+,-./0123"3= a" )"*"fj"i"i"*"h"h""8k"8"8j"8 " p*8K"8N"8O"8m*8P"8B"8g"8g"8~*8~*8f"8f"8}*8}*8"8"8* "8*8*83)8!8*8*8" *8*8*8" *8M" e" > d" < " " <" ="1*"""*"*" " *"*"&S*8a T""*#5",!9,!N"'"E!-! 0" -!""""2"  7"t*a"/"."!"3"/*"M"E!)! !*"`"F!; P"/"!!!*'''!"!!%"!)!P)^)!V)_)!W)"!!J-"%%<u*B"!0!s*"G!$ %%="1!1!>"  ">e""g"*w"~*s"k"*^$ ! ! !% !&N"O"20!!*H!!,"+""c b .@!(4 A% 6B <9'!!=;'!!!#'a)!Y) #!N)"!Z)")"Q)`)!X)!R)!!"f"v"*}*r""!?''''''C!!!!Aj")_ 3!"D3! CGE k"j" ` !*b"m"&" "`""o"q"y"u"""n"p"x"t""" """""""""A"D"G"I"$"RPLF  T*7*> ###" !!*z"*|"~"3 "7"""!)T'!)XV ! "!o)!'!!! #'])!U) #"![)")"O)\)!T)!S)!!p)!!!))(,Z*`^\!!!!!"J"%""""""""""{"*}"" """""""! & db"4" <"C"E"H"K f!I)l#pj_###""rL!)!!n)"!!!!!nh"*"*"  #"|X'@" M"t"NO/.v+Pxy}{ (!$!>"?"0a 5!5!?*&'"U*\*X*Z* ") "!"))))))))"")""|#RH"p*o*J"K"'H"J"*H"M"3"**L"5 ="""####L"1 5"5"),!6!l""%"****&%%*"" ))%%%%%#$%%%%#S"""W%T%V%S%P%f%i%d%g%]%Z%\%Y%Q%l%c%`%k%b%_%)U%R%% %%e%h%,%4%"""[%X%%%%j%a%^%<%$%%5 O =""\)'" " N"*O"O")"D*I*K*G*@*A M*  L*P* ) G''%)W"!!$"""W"**)c&c&:T"T",@"""!E"m*."T"!!'****"8)5)""!=)*"H*F*J*"E*!<)""""!!""2"1"-#!e) 8!! ")4F!! !w*))!!!""f&f&"""R# #$UP"Q"8"""#!!!!)# #U)"%%!o))_'w*Q"n*V"U"MG!R""****#!**"""   K V")q*V"U"B"**=_"a"x*)S"q)/!P"B" !"0!G!R"D@&#m&%W""* *S!U!Y![!T!V!W!\!X!Z!]!^!D "#g"**3!e""e"g"~*~******$k""7!Sw"***i"****i""X` !s"**>*z*")|**x)""*w"s"! !J!H)!!%e&e&& "%%)&)!;"!!Y !'C  c 85!&H! *-"))!3+!!!1""!")1+""$!"*<*Q/Z<*""""""b )V59'7[XT7:(8E\\!!))f"*b):)!')'*!!))!!9)s)!*)* )r'{[)))><#{;6)  g)K)!d"!!!!!!!!!""d"f"}*}*******""*v"r"|) #)v"*!!j)%Yj"!#k)%@##h"****h""'!'''''!!)]-*4*"_%%)()!#!m) "9 !r"**[  B<*y*"""v){*)%"%J)f):"B& ' '!!!!!%)*< !"*'!#"**""8"***& ""^">"""!!!"""DI"II"n&n&!C*HFG"B*= `"!$)!!b"()""+q"q"u"o"o"!!* """ "Z!!% p"!!p"n"t"n"""$"_ " """ " """&"&"*"""!!!""""$"&"A"D"D"$"&""""""""""y"x"""""#! ")")))!#)!!')$"">"Q8*")S),))."!))> )M)"`))"("!]*4!4!"V*W*[*4!""6*=#%"%"**"?%.0 "1 -3!&"!!!+#*""*"%*r*&*'**az"**|"*z"*|"***"~"2 !**"".###""~"" . *bW  !*?_""!!))d)U")'))'!u)! )3))!!E)t)!!)6"! )s'}])))YW #}@7)i)  !!!!!%}) #/!!l)!!!!!!!!"S"!! ##*'!')c.*5*))*!: !]  ""%"%)h)![ {"**a}"*_]**"*"A""f*!%)!!;))""6'0"#o&IH#"%"<"j*C"C"****F"$*r)!"3*)#"##**L/)?#d`&`&%"""""""""""%%%%!"##"&&"**"***"*y)""*"****{"*}"***"""j&"***"*'*{)**"*""*"****!&)!!*)##ecB #14"4"H"<" H"<""1*0*-"()"6#*e*))4 "!%%%"\"%"%\":*9*);*#F[gl"!!!c)!^mC!qn)~)2!!%###%ksf!!!!"!###o%"i%%!)!**")""!""2"(""Z""||3"g"")u_*'"Y"!4h!@"@""%"%5'''''"*i**''**%""OwK6WjNz~7|(!76!k &><"&><"  ; W b nx        $'+ 4<AKR ] glp          ', 8 E U dn y          */4 CKQ o        ' H ] l %% #*.0    $ /5:AHOSW^ehmu          . 9 DN [ m   %-  "#%&'()***   - = G Z j y%3456       6 N d{             " ) , . . 1 4  B  N U \ ]  m  }                   ,  C L  _  o u                      " +   %(V  v                            ( 0 3 6 7 > E I  U  ` e f f  o s x |                         %  0 6  ?  J P  f o  x { }                      # 2  !#$%'Z fjns       + 5 ? M Zc nqx}       (-05;=@CGMNPY qz        0 < GPRRU _ h tuv~     &. : DFO Z f t         &*237?AEMQR `ei u{           - 7 B L U z "#$%&    ") 69 C X]di |     $ /5;>FJSZa jpx       " -/29> GINR ]d u           % 5< HK Yb nt}     &-1 <> HMQQ ]ag qx    #   "$%'(  7 V h v         $% 579>>EJ []_de zz~~         % 4< I W hkl y        $ . < V nrvw}ABCDEFGLNPQRSXY_bcdefghijkmnpqrstvwxyzioos.FAtDPDQDoDpDqFdGxGyHiIDIPIVIdInIsLoOSOpOrPCQIa1a2afasatbpbrbwccchcmcrcsdcdodpdqfdfnfrg0gpgxgyh1h2hdhfhihlidinipisitivkaksl0l1l2l3l4lklllolrmhmrmunbnlnxokoporpapcpdpppsq0q1qir1r2rbrcrdrergrorsrtsdspsrsst1t2trtwtxwdwgwlwrwtzrfmtnetAbsAddAndAppArgBitCCCCGICSSCapCmpCrvDayDelDevDivDupErrExpGCDGenGetGidHasInoIntJWKJarKeyLenLshMTUMaxMinModMsgMulNegNetNewNotNumOldOneOutPSSPosPutQuoR16R32RawRemRshRunSecSeqSetStrSubSumSysTLSTTLTagTo4URLUTCUidValVarXorabiabsaddalgaltandapuapvargb64badbbbbitbssbufcapcascccckxcmdcmpcrvctrctxcurdecdirdivdocdupekmencendeoferrextfungcwgethashdrjwkkeykvslenlexlfslnslocloglowmOSmacminmsgmulnegobjoffoutpadpcspfdpinpopposprfpssptrputrawreqresretruns64secseqsetshlshrsigsizsqrsrcstrsubsymsystagtaptiptlstmptypurlvalvecwidwmuxorflaghashmainsortsynctime*intAAAAAddrAlenAlgoArgsBackBaseBitsBodyBoolCallCertCmdsCodeConnCopyDataDateDeclDialDoneDumpElemExprFileFindFlagFormFuncGrowHashHeadHostHourIconInfoInitInstIntnIntsIsCAKindLeafLessLineLinkListLoadLockMaskModeMoreNArgNameNanoNextNlenNodeNsecOnceOpenPairPathPeekPermPingPipePortPostPrevPtrsQinvRandRdevReadRecvRootRuneSaltScanSealSeedSeekSendSignSizeSlenSortSpanSqrtStatStopSub0SwapSyncTailTextTimeTo16TreeTrueTypeURIsUintUnixUserWaitWalkWireYearZeroZoneaddraeadargpargsauthbasebitpbitsbodybptrbytecallcellcertcidrcodecondconncopyctxtcurgdatadatedialdictdivWdonedumpdupsebsselememitentseofcerrcexprfdmufeedfilefillflowfmtCfmtQfmtSformfreefregfreqftabftypfullgoidgoodgopcgrowhandhbufhdecheadheaphenchighhisthosthtabhtmlinfoinitinstipadiregitoaitypjobskeyskindlastlazyleaflinelinklistloadlocklogfmakemhdrmodWmodemoffmonomovenamenbufncgonextnicenobjnodenormnsecnsrcoldponceopadopenpackpad1pad2parkpclnpcsppeekpluspoolportprecpreqprevprogptabpushrandrankrcvrreadrecvrefsrerrrootrseqrunerunqscanscavsctssealseekselfsemasendsignsizeskipsqrtsrcsstepstoptailtaketccctermtexttinytmpltreeuseduserutoavalsvarpvarsverswaitwallwbufwerrwhenwseqzerozerrzonebufiobytesio/fs*bool*int8*uintAddrsAfterAlignApplyAsMapBuildBytesCauseChdirChmodChownClassClearClockCloneCloseCoeffCountCurveEmailEntryEqualErrorExtraFatalFetchFieldFirstFlagsFloatFlushFrontFstatFsyncFuncsHoursIdentIndexInt31Int63Int64IsAbsIsAckIsDSTIsDirIsIntIsNilIsSetKeyIDLabelLevelLocalMatchMergeMonthMutexNFlagNamesNlinkNodesNumInOnoffPanicParsePreadPrimePrintProtoProxyQueryRLockResetRootsRoundRune0ScopeSetIVSetupSliceSplitStartStoreSysfdTightTitleToManTokenUsageValidValueVisitWidthWrite_Func__pad_byte_cgo0_func_typeabortaddrsalignallocaltMuarrayatEOFatEOTblockbuildbytepcachechainchanscheckchildchmodclassclearclosecnamecode_codesconnscountcsemacutabdatapdensedonecdraindyingedataelemsemptyentryequalerroretexteverrevictexpNNexpWWextrafailffetchfinalfirstflagsflushfmtBsfmtBxfmtQcfmtSxfregsfuncsgFreegListgcbssgrouphash0hfuncidentincgoindexinnerinputinteriregsis224isDSTisMaxisRSAisSetisstdisutcitemsivLenkeyIDlabelladdrlevellimitlineslinkslocallocksmagicmatchmaxpcminLCminpcminusmpoolmtimemutexnLeadnamesnbitsnbytendotsnewIfnextpnfuncnoncenotesnruneon100outerparamparsepctabpingsplusVpreadproxyptrToquoteraddrrdPosreadyrecvqrecvxreplyreqMureqchresetreusersemartyperunesscanpschedsendqsendxsharpsigpcslicespacespillssavestackstartstatestepsstoresuitetabletconntflagtimertitletokentotaltracetypesusageuseByvaddrvalidvaluevlogfwbBufwbuf1wbuf2widthwrPoswritewsema0 @ l@Т$4`444P3!UUP R`T@@c|&& &0&-#0#4#5#!dkl  vxpyz~pr  P  '- '-c-H-22@2022261 >1{1p1P11P11P00 4`"4"4%4%4&4p'4*4*4p,4-pP@pp / `;`   @C'!@!!`!!P!!!!!`!!0,0,,,,0,,0,P,,,@--` - --_'@( `   P    @  Ў P U VV0@Г```@Pp0`\]-4-6#`0   p@(`*@:1P46!0#p   ((i(Pm(0( , n(cryptoerrorsregexpunsafe*[]int*error*fs.FS*int16*int32*int64*uint8AcceptActionAndNotAnswerAppendBeforeBitLenBlocksBufferCanSetCancelCloserCmpAbsConfigCookieCreateDecodeDelimsDetailDialerDivModDoChanDomainDoubleEnableEncodeErrorsExpandFamilyFatalfFchdirFchmodFchownFieldsFloatsFormatGetenvHeaderHiddenInt31nInt63nIntVarInvertIsLeafIsUintIsZeroIssuerKeyOpsLayoutLengthLingerLookupLspareMaxAgeMaxCapMethodMinuteMult32NamlenNegateNewCTRNewGCMNoteIDNumCapNumOutOctetsOffsetOpaqueOptionOutputPanicfParamsParentParsedPrefixPrimesPrintfPublicPwriteQspareQuoRemQuotedReadAtReaderReasonReclenRemoveReusedSchemeSearchSecondSecureSelectServerSetBitSetCapSetIntSetLenSetPosSharedSignalSlice3SourceSquareStatusStrictStrideStringStructUint16Uint32Uint64UnlinkUnlockUnwrapValuesVerifyWeightWriterWritevX__sigZoneIDZoneId_defer_panicacceptactionactualaddArgaddSecaddTLSaesKeyageAddallocNandNotappendargLenasciiFbackupbitLenbrokenbucketbufferbyNamecancelchunkscipherclientclosedcommonconcatcondfnconfigcookiecutsetdecrefdeletedialIPdigestdivMuldivmoddoCalldoScandoSlowdomaindynTabencodeendToperrorfetypesexpandexpectextOffextendfactorfamilyfieldsfinderfixLenflushFfmtSbxformalformatframesfromP2funcIDgcdatagetRefgoAwaygoexithangulhasTaghasherheaderhtmlHridleAtidleMuignoreinListincSeqincrefinflowinlineinputsinsertint31nintbufiovecsisFileisFreeisHeadisYesCisYesDisZerokeyLenkeyOpskeyalgkeylenlabelslayoutlengthlocabslookupmFixupmacLenmaxWidmcachemcountmethodmuTmplmustBenbytesnegatenelemsnewDotnewEndnewNilnfilesnoCopynoscannotEOFnoteIDnotifynpagesnum1xxnumCapnwriteobjectoctetsoffsetokVerboldTipoldnewonlyH1opAddropaqueopcodeoptionoutputpallocparamsparentparsedpcachepcfileperiodprefixprocidptrbitpubkeypublicpwriteqcountquotedrandomreadFnreaderreducerefillopremoverepeatresultreusedrotateruneAtrwlocksa_lensawEOFschemesearchserversetBitsetLocsharedsharpVsi_pidsi_uidsignedsignersotypesourcesparsestate1statusstickystkOffstrictstringtickettimerstoReadtokenstryGetunpackunreadupdateuseTCPuseVarvaluesvdsoPCvdsoSPvictimwidthswindowwrite0writeNwriterxcountcontextnet/urlreflectruntimestrconvstringssyscallunicode*[1]int*[2]int*[8]int*[]bool*[]int8*fmt.pp*fmt.ss*func()*net.IP*string*uint16*uint32*uint64AddASN1AddCertAddDateAliasesAuthorsBitSizeBlksizeBoolVarByteKeyCanAddrChanDirCommandCommentComplexContextControlConvertCookiesCountryCurveIDDNSDoneDNSNameDecryptDialTLSDiscardEncryptEnvVarsErrCodeExecuteExpiresFatallnFeatureFindAllFloat32Float64FromRawGenericGetBodyGetConnGotConnHasNameHeadersISOWeekInverseIsFloatIsInt64IsValidIterateKeySizeKeyTypeLeadCCCLineageLiteralLongestMapKeysMarshalMessageMinutesModSqrtModTimeNetworkNoProxyOpenDirPaniclnParseFSPathMTUPayloadPkgPathPointerPresentPrintlnProcessRLockerRUnlockRawPathRawReadReadDirReadMsgReaddirRefLinkRefererReplaceRequestRootCAsSecondsSeekoffSetBitsSetBoolSetTreeSetUintSettingShuffleSubjectSysTypeSyscallTagSizeTimeoutTrailerTryRecvTrySendUintVarUnwriteVersionWasIdleWeekdayWriteAtWriteToX509URLYearDayabortedaddLineaddNBSPaddRcvraddressadvanceai_addrai_nextalllinkamendedanswersbackup2backup3badVerbbalanceblockedbodyOffbucketsbufPipebytesAtcallerscancelccgoCtxtchanDircheckercipher1cipher2cipher3closechclosingcodeLencodegencommandcomposeconnectconsumecontentcopyLencountercreatedcurveIDdecryptdeflatedequeuedestroydialTCPdialTLSdialUDPdialingdidReaddirinfodiscarddisposedoFlushdoMatchdoPrintdoScanfelemEncelseEncencoderencryptendCharenqueueexecuteextractfiletabfirstDDflagSetfmt0x64fmtBoolframepcfuncoffgcSlicegetBasegetCertgetConngetRunegetSlowgrowinggsignalhasNamehasmainhaveSumheadPosheadershexBytehintErrhmacKeyhuffSymidleLRUinCountindexNLinvalidireqhdrisBlankisEmptyisHRuleisInertisProxyisValidkeyNamekeysizelibcallliterallockedglockedmlongestmakeArgmappingmarshalmatchedmaxSizemessagemethodsminSizemodTimemorebufmuFuncsnameOffnameoffndigitsnestingnetworknewBoolnewElsenewListnewTextnewWithnextMacnlIsEndnpcdataonepassoperandoutUsedpadCharpaddingpatternpayloadpendBufpendingpinSlowpkgPathpkgpathpointerpopHeadpopTailpopVarspreemptprepareprimaryprivateprivkeyptrSeenptrSizeptrdatapushAllpushcntputFastracectxreadBufreadErrreadMsgreadPosreadValreaddirreadersrecoverregPtrsreqBodyresolveresultsroffsetrunnextpopP%sa_datasaveBufscanIntscanOnescannedscratchsectionseedPossendBufserverssetAddrsetDonesetMonosetPathsetTruesetWordsi_addrsi_bandsi_codesigmaskskipNopsoffsetsortkeysprintfsrcAttrstartedstartpcstreamssubkeyssuccesstagSizetagsizetakeAlladdtextOfftimeouttlsHosttmpfiletoLocaltopbitstophashtrailertreeSettypeOfftypemapunixSecversionvisitedvisitorwaitingwrapErrwrappedwriteTowritechx509URLencodingmath/bignet/http*[19]int*[8]bool*[8]int8*[][]int*[]error*[]int16*[]int32*[]int64*[]uint8*big.Int*big.nat*cli.App*float32*float64*fmt.fmt*fs.File*jwk.Key*jwk.Set*jwk.set*os.File*os.file*poll.FD*uintptr*url.URLAbsoluteAddBytesAddUint8AddValueBinomialBufferedCapNamesCategoryCommandsCompiledConnPoolContainsCopyListCopyPipeCriticalDNSNamesDNSStartDeadlineDefValueDurationElseListExitCodeFileLineFileNameFilePathFilenameFlowinfoFootnoteFormFileFormNameFragmentFullNameFunctionGenerateGetUsageGetValueGoStringHashFuncHelpNameHideHelpHostnameHttpOnlyIdleTimeInt64VarIntSliceIsAssignIsFencedIsHeaderIsNormalIsPseudoIsStreamIsUint64KeyUsageLinkDataListDataLocalityLocationLookupIPLookupMXLookupNSMapIndexMapRangeMarkDeadMetadataMulRangeMultiplyNextPartNodeTypeNotAfterNumFieldNumFlagsOverheadPasswordPopulatePositionPostFormPow22523PreferGoPriorityProvincePushBackQuestionRawQueryRawWriteReadByteReadFormReadFromReadLineReadRuneRedactedRegisterRegistryRequiredResolverResponseSameSiteScope_idSetBytesSetEDNS0SetErrorSetFlagsSetFloatSetInt64SetKeyIDShutdownSimplifyStreamIDSubjectsSubtractTrailCCCTruncateUnixNanoUnparsedUsernameValidateVisitAllWriteMsgabortErraddBlockaddChildaddEntryaddrAttraddrFuncai_flagsaltProtoargLimitarrayEncassertedassignToattemptsbaseaddrbitCountbreakErrbytedatacacheEndcacheKeycallEmitcanceledcapNamescheckEndcheckSumchildrenclearRawcloseTagcodebitscollapsecommandsconcreteconnPoolconstSumcontainscopyDatacopyDistcriteriacriticalcrvnamescuOffsetdataqsizdeadlinedetacheddialConndialUnixdidClosedidSetupdivBasicdivLargedlogPerMdoAppenddoPrintfdoesParkelemsizeelemtypeembeddedencSpeedgrow endWriteeofErrorerroringexchangeexitCodeexpanderexpectedexplicitfastrandfinalizeflushGenfmtBytesfmtFlagsfmtFloatfootnotefreeWaitfreelinkfuncInfofuncTypefunctiongeneratehasBlockhashFunchashHeadhashPrevhaveVersheadTailhintCerthistSizeicookiesidleConnisBrokenisClientisRSAPSSisReusedisSelectitemListkeyUsagelastBytelastIdlelastReadlazyCertlazyInitlibcallglifetimelinkMasklistItemlockAddrlockSlowlogReadslogWritelookupIPlookupMXlookupNSmatchLenmatchcapminwidthmoreBitsmstartfnmulAddWWmulRangemultiSegnameListncgocallneedzeronewBytesnewChainnewFieldnewRangenextFreenextItemnextMainnextPartnextwhennonblocknoptrbssobjIndexonHitEOFoptionaloutCountoutHRTagoverflowpadbytesparseIntparseOnepasswordpcHeaderpeekRunepipelinepointerspollablepopFrontpreferGoprevRuneprintArgpriorityproxyURLpskModesptrLevelpushBackpushHeadputBatchraceaddrrawInputreadBytereadFormreadFromreadLinereadLockreadLooprealTyperegistryrendererrequestsresolverresourceresponsereturnedrunqheadrunqtailpushP%rwunlockscanBoolscanNextscanRunescanUintscanWorksetBytessetErrorsetFalsesetRunesshutdownsi_errnosi_signosi_valuesigcode0sigcode1smartAmpsnapshotsockaddrspecialsspinningstartAppstatsSeqstktopspsudogbufsweepgentableRowtabwidthnextpeektermthrowingtimeTypetlsStatetmpBytestmpClasstracebuftraceseqtrackingtruncatetryStoreuncommonuseProxyusernamewaitReadwaitlinkwaitlockwaittailwrapErrswriteBufwriteMsgwriteTOCwritebuf math/rand **big.Int *[12]int8 *[1]uint8 *[256]int *[2]error *[2]int32 *[2]int64 *[2]uint8 *[316]int *[3]uint8 *[40]int8 *[4]uint8 *[56]int8 *[5]uint8 *[6]int32 *[7]uint8 *[8][]int *[8]int32 *[8]int64 *[8]uint8 *[9]uint8 *[]func() *[]net.IP *[]string *[]uint16 *[]uint32 *[]uint64 *asn1.Tag *big.Word *chan int *cli.Args *cli.Flag *cli.args *ecdsa.zr *net.Addr *net.Conn *net.conn *net.file *tls.Conn *tls.aead AResource AddCookie AddString AddUint16 AddUint24 AddUint32 Algorithm AllowHTTP Anonymous ArgsUsage Atimespec Authority Available BasicAuth BitLength BitString BlockSize Broadcast CRTValues CallSlice ClientCAs CloseRead Coalesced Copyright CreateCRL Ctimespec DebugData DecodeCtx Delimiter DidResume DualStack EndStream ErrWriter Exclusive ExtraInfo FenceChar FetchKeys FillBytes FindIndex FlagNames FormValue Ftruncate FullBytes GobDecode GobEncode HTTPProxy Handshake HeadingID Increment Interface IsAllowed IsComplex IsOnCurve IsPrivate IsRegular IsTimeout JWKSetURL KeepAlive KeyUsages LastChild ListFlags LocalAddr LookupSRV LookupTXT MatchRune MoveAfter Mtimespec Multiaddr NonceSize NotBefore NumMethod NumSubexp PadLength Pad_cgo_0 ParseForm ParseGlob ParseName Precision PromiseID Protected ProxyFunc PublicKey PushFront PutUint16 PutUint32 PutUint64 QuickSpan RawIssuer ReadBytes ReadFrame ReadMsgIP ReadSlice RemoveAll RoundTrip ScanState Sensitive Serialize SetLayout SetLinger SetOutput SetPrefix SetString SetUint64 SharedKey Signature SkipSpace Specified SqrtRatio StartCond StreamDep StringVar TLSUnique TakesFile Templates Temporary Timestamp Transform Transport Truncated Uint64Var UnixMicro UnixMilli UsageText UseNumber UserAgent ValueElem WaitWrite WriteByte WriteData WriteOnce WritePing WriteRune WriteToIP X__opaque abortOnce acceptRun addedGzip aesCipher afterDial ai_family algorithm allClosed allocBits alternate ancestors argNumber associate availRead available backtrack backwards badArgNum bestSpeed bitCounts bitLength blockSize bufReader buffering buildOnce bytesSent cacheZone callbacks cancelCtx cancelKey caughtsig certBytes chainHead clientMD5 clientSum closeBody closeIdle closeRead composing connError copyCheck copySlice dataBlock dataFrame debugData decodeMap deferpool didResume dliPrefix doDialTCP doExecute doOnePass doPrintln doRequest dualStack earlyDataempty endEscape enoptrbss equalFold errDetail execFuncs fallbacks fillStore findMatch firstByte fixedSize flushCopy fmtString framePool freeindex freqcache fromP1xP1 gcbssmask generator goidcache hasPrefix hashMatch headerBuf hexString httpProxy idToIndex idleState idleTimer ifControl inRegPtrs insertCGJ itablinks jwkSetURL keyShares lastFrame lazyCerts leftDelim lehmerGCD libcallpc libcallsp listDepth localSize lockedExt lockedInt locksHeld logWrites lookupSRV lookupTXT makePairs mallocing marshaled matchHost maxStrLen nameBytes nameIndex nevacuate newAction newNumber newReader newRegexp newString nextBlock nextwaitm nfuncdata nlIsSpace nonceMask nonceSize noptrdata noverflow numSubexp numTimers oliPrefix omitEmpty openDefer otherinfo padString panicking paragraph parseable partition partsRead pclntable peekCount peekFront pkghashes prefixEnd primaries printlock profilehz protected proxyAuth ptrToThis publicKey questions quickSpan rawBuffer readFlush readIndex readLimit readSlice readValue readerErr readerSem recovered regAssign reordered reqCancel resHeader retOffset roundTripemptyP% sa_family saveError scanAlloc scanWhile schedlink schedtick schedwhen selectKey sendAlert serverMD5 serverSum sessionId setBuffer setGoAway setNoLock setOption setString setUint64 sharedkey si_status signature singleUse sizeclass skipASCII smartDash spanclass stackLock stackPtrs startAddr startLine stepState stopParse storeHuff stripMono syncFlush syscallpc syscallsp tableSizeerrornewIfparse timestamp toReplace traceback transform transport typelinks uliPrefix unmarshal useNumber validSave waitWrite waitsince windowEnd writeBits writeBody writeByte writeCode writeCopy writeLock writeLoop writeMark writeRune writerSem crypto/aes crypto/des crypto/dsa crypto/md5 crypto/rc4 crypto/rsa crypto/tls hash/crc32 *[0]uint64 *[104]int8 *[10]uint8 *[12]uint8 *[13]uint8 *[14]uint8 *[15]uint8 *[16]uint8 *[17]int32 *[18]uint8 *[19]int32 *[19]uint8 *[1]string *[1]uint32 *[2]string *[2]uint32 *[32]uint8 *[3]uint32 *[4]uint32 *[54]uint8 *[5]uint32 *[64]uint8 *[66]uint8 *[68]uint8 *[7]uint64 *[8]string *[8]uint16 *[8]uint32 *[8]uint64 *[96]uint8 *[9]uint64 *[][]int32 *[][]uint8 *[]float32 *[]float64 *[]jwk.Key *[]uintptr *asn1.Flag *chan bool *complex64 *flag.Flag *fmt.State *fmt.ssave *func(int) *hash.Hash *hkdf.hkdf *hmac.hmac *http.body *io.Closer *io.Reader *io.Writer *jwk.sysFS *list.List *net.Error *net.Flags *net.IPNet *net.netFD *net.scope *norm.Form *norm.Iter *parse.Pos *pem.Block *pkix.Name *rand.Rand *route.Sys *runtime.g *runtime.m *runtime.p *struct {} *sync.Cond *sync.Once *sync.Pool *syntax.Op *time.Time *time.zone *tls.alert *url.Error AddCommand Additional AllAnswers BodyCloser BranchNode BulletChar ByteReadCh CanConvert Categories CipherText ClientAuth CloseWrite CollectRaw CommonName Comparable Complex128Djson:"d" DecodeFull DecodedLen EncodedLen EndHeaders ExpFloat64 Extensions ExtraNames FieldAlign FieldStack FindString FirstChild Float64Var ForceQuery GlobalArgs HTTPSProxy HasBeenSet HasExpired Implements InitString Int64Slice IsBoolFlag IsCompound IsExported IsLoopback IsNegative IsNotFound IsRequired IsResponse IsVariadic LayoutElem LookupAddr LookupHost LookupPort MXResource MaxPathLen MaxVersion MinVersion ModInverse MoveBefore MoveToBack NSResource Nanosecond NextProtos OCSPServer OCSPStaple Parameters ParseFiles PostalCode Precedence Precompute PrivateKey Properties ProtoMajor ProtoMinor RawControl RawExpires RawSubject ReadCloser ReadDirent ReadFromIP ReadMsgUDP ReadString Recipients RemoteAddr RenderNode ReplaceAll RequestURI RightAlign RunContext SaltLength ScalarMult ServerName SetComplex SetCookies SetHeaders SetNoDelay SetPayload SetPointer Signatures SkipAnswer SpanString StatusCode TakesValue ThisUpdate Thumbprint ToMarkdown UnreadByte UnreadRune UnsafeAddr WriteField WriteMsgIP WriteProxy WriteToUDP _interface actionLine activeCall ai_addrlen allMatches allocCache allocCount allocLarge appendFlag appendMode appendRDNs appendRune assignIntN assignRune availWrite beforeDial beginChunk blockStart bucketsize bulkHasher cacheStart callerGone canAddrEnc canContain catchPanic categories cgoCallers checkValid checkempty cipherText ciphertext cleanFront clearflags closeWrite codePrefix contentalg continueCh countAlloc dialSerial dialSingle doBodyCopy doNotReuse earlyClose endControl enoptrdata escapeHTML evictCount extensions fieldAlign fillWindow firstField floatToken flushChild fmtBoolean fmtComplex fmtInteger fmtPointer fmtUnicode forResolve frameCache frameStore gcdatamask gcmarkBits gcscandone getReadBuf goLookupIP goSigStack goodArgNum handleItem handleList handshakes hasBeenSet hashOffset headingIDs httpsProxy initString insertBack insideLink invalidate ipMatchers isBlocking isCompound isExported isWildcard lastActive lookupAddr lookupHost lookupName lookupPort markReused maxNesting missingArg missingKey modulename montgomery mspancache nameNonEsc needextram newCommand newComment newFlagSet nextCipher nextSample offsetFreq oldbuckets outRegPtrs parenDepth parseClass parseFlags parseFuncs parseState pclnOffset peerClosed pluginpath polynomial preemptGen preemptoff prefixRune printValue privateKey pskBinders raceignore rawSubject readClosed readHeader readLocked readRecord readString readUnlock readVarint readerDone readerWait readvarint receivedAt recipients releaseAll remainSize replaceAll requireKid resTrailer retryCount rightDelim runtimeCtx saltLength savedError sawRegular scaleDenom scanNumber scratchBuf selectDone sendGoAway serverName setFlusher setMaxSize signOption signatures sourceFunc stackBytes stackcache startParse startWrite storedSize stringType sudogcache sysmontick targetAddractiondoSlowerrorfexpectbackupnewDotnewEndnewNiluseVar throwsplit ticketKeys timer0When timersLock tinyAllocs tinyoffset titleBlock tokenError tokenStack tokenState traceSweep traceSwept tracelastp trafficKey tryDeliver tryGetFast tryOneName unexpected unknownOpt unlockSlow unwrapBody useDefault valueStart verifyData victimSize waitreason wantsClose widPresent workbufhdr wrappedErr writeBlock writeBytes writeDebug writeErrCh writeFrame writeLines writeSlice crypto/hmac crypto/rand crypto/sha1 crypto/x509 sync/atomic *[0]uintptr *[1024]int8 *[128]uint8 *[16]uint64 *[1][]int32 *[1][]uint8 *[1]uintptr *[248]uint8 *[255]uint8 *[256]uint8 *[2]uintptr *[512]uint8 *[607]int64 *[6]uintptr *[8][]uint8 *[]*big.Int *[]*url.URL *[][2]int32 *[][8]uint8 *[][]string *[][]uint32 *[]big.Word *[]cli.Flag *[]net.Addr *aes.gcmAsm *bidi.Class *cert.Chain *chan error *cipher.cbc *cipher.ctr *cipher.gcm *cli.Author *complex128 *cpu.option *flag.Value *fmt.buffer *func() int *func(bool) *hpack.node *io.discard *json.Delim *json.Token *json.field *jwe.jsonKV *jws.Signer *keyenc.AES *log.Logger *md5.digest *net.Dialer *net.IPAddr *net.IPConn *net.IPMask *net.ipAttr *net.result *norm.input *os.dirInfo *os.rawConn *os.timeout *parse.Mode *parse.Node *parse.Tree *parse.item *rc4.Cipher *regexp.job *route.Addr *sync.Mutex *sync.eface *sync.entry *time.Month *time.Timer *tls.Config *url.Values *x509.pkcs8 AddASN1Enum AddASN1NULL AllCommands AppendChild Certificate CipherSuite Completions Compression ConnectDone Constructed ContentType CryptBlocks CurrentTime CurveParams DefaultMask DefaultText Description Destination DialContext DurationVar EmitEnabled ErrorDetail ErrorString EscapedPath ExtKeyUsage FenceLength FenceOffset FieldByName HasPriority HeadingData HideVersion IPAddresses InputOffset InsertAfter IsContainer IsMulticast IsSymmetric IsTemporary LatinOffset LookupCNAME LookupKeyID MarshalASN1 MarshalJSON MarshalText MatchReader MatchString MoveToFront Multistream Nanoseconds NextRawPart NormFloat64 NumSettings OPTResource OverflowInt PTRResource PingTimeout Precomputed PseudoValue PutIdleConn RawFragment ReadFromUDP ReadMsgUnix ReturnIsPtr SOAResource SRVResource SetBlocking SetDeadline SetEmitFunc SetMapIndex StreamEnded StringSlice Subcommands SubexpIndex SubexpNames SyscallConn TBSCertList TXTResource WithContext WithPadding WriteGoAway WriteHeader WriteMsgUDP WriteString WriteSubset WriteToUnix abortStream acquiretime addCertFunc addJacobian additionals ai_protocol ai_socktype appendGroup appendSlice application authorities badCharSkip blockCipher bodyRemains buildChains byNameValue bytesMarked bytesRemain cacheOption canceledErr certificate charinfoNFC checkBucket cipherSuite closeIfIdle closeLocked closeNotify codegenFreq compression contentType createstack ctrlNetwork currentPart debugFramer deferreturn dialConnFor disableTags disposition dynamicSize elseControl emitComment emitEnabled ensureSwept errorString evictOldest expandLabel expectOneOf fetchOption fillDeflate findfunctab finishBlock firstHeader flushedWork funcnametab goAwayDebug goLookupPTR h2transport handlePanic handleTable handshakeFn hasFunction hasNetHooks healthCheck htmlComment htmlFindEnd htmlFindTag idleTimeout indexTokens indirectkey initDeflate initialized insertFlush insertValue isConnected isH2Upgrade lenAndSpace literalFreq loadSession lookupCNAME lookupGroup marshalFull maxReadSize maybeConcat minInputLen multistream nameEscHTML newPipeline newSigstack newTemplate newVariable newoverflow noldbuckets offsetEmbed oldoverflow openGeneric packetsSent parseEscape parseRepeat passwordSet pastHeaders pctabOffset pingTimeout poolDequeue precPresent preemptStop prefixBytes prepareRead proxyForURL quotePrefix rUnlockSlow raceprocctx readAborted readFromUDP readHuffman readTrailer readerCount releasetime reqCanceler reqHeaderMu returnSlicepushAllP% runtimehash scanComplex scanPercent sealGeneric searchTable sentHeaders serverShare setConnFlow setDeadline setFragment setoverflow shouldIndex shouldVisit smartNumber smartParens smartPeriod speciallock stackAssign stackguard0 stackguard1 startBucket startEscape stdoutOrErr stopTimerCh storeLocked stringBytes subexpNames syscalltick syscallwhen tableHeadernewBoolnewElsenewListbackup2newTextnewWithbackup3operandpopVarsrecovercommand textsectmap trackingSeq unknownType updateWidth valueQuoted waittraceev waitunlockf wholeRegexp withControl writeHeader writeKeyLog writeRecord writeString writeSubset writeTokens writeUint16 writeUint32 writeUnlock crypto/ecdsa encoding/pem internal/abi internal/cpu *[1024]uint8 *[1]net.Addr *[256]uint32 *[257]uint32 *[2]*big.Int *[32]uintptr *[4]cli.Flag *[512]uint32 *[5]cli.Flag *[6]cli.Flag *[8][2]int32 *[8][8]uint8 *[8][]string *[8]cli.Flag *[][32]uint8 *[][][]uint8 *[]io.Reader *[]route.Sys *[]struct {} *[]time.zone *[]tls.alert *abi.RegArgs *aescbc.Hmac *big.divisor *cipher.AEAD *cli.Command *cli.Context *cli.Generic *cli.IntFlag *crc32.Table *crypto.Hash *flag.Getter *flate.hcode *flate.token *fmt.Scanner *fs.DirEntry *fs.FileInfo *fs.FileMode *func() bool *func() uint *func(error) *func(int64) *gzip.Header *gzip.Reader *http.Client *http.Cookie *http.Header *http.noBody *io.ReaderAt *io.WriterTo *json.Number *jwa.KeyType *jwe.Headers *jwe.KeySink *jwe.Message *jwe.withKey *jwk.identFS *jws.Headers *jws.KeySink *jws.Message *jws.withKey *keyenc.Noop *net.OpError *net.TCPAddr *net.TCPConn *net.UDPAddr *net.UDPConn *net.rawConn *net.timeout *norm.qcInfo *option.pair *os.fileStat *parse.lexer *rand.Source *runtime.mOS *sha1.digest *sync.Locker *sync.noCopy *syntax.Inst *syntax.Prog *tls.CurveID *tls.cbcMode *x509.sum224 AAAAResource AddASN1Int64 AddParseTree AllQuestions AnswerHeader AppendFormat AppendString AssignableTo Authenticate BashComplete BytesOrPanic CanInterface Certificates CipherSuites CombinedMult ConnectStart DecodeString EncryptedKey ErrorContext ExpandString FieldByIndex FindAllIndex FindSubmatch Float64Slice FlushHeaders HardwareAddr HeadersEnded InsertBefore IsTitleblock KeyLogWriter LastBoundary LastStreamID LookupIPAddr MatchRunePos MaxIdleConns MethodByName Microseconds Milliseconds NextBoundary OCSPResponse OnUsageError Organization OverflowUint ProtoAtLeast PseudoFields PublicHeader PushBackList ReadFromUnix Readdirnames RecordHeader RenderFooter RenderHeader RoundTripErr RoundTripOpt RuntimeError SerialNumber SetBasicAuth SetDecodeCtx SetKeepAlive SetSignature SetTimestamp SkipQuestion StrictErrors SubjectKeyId SynopsisArgs TLSNextProto Uncompressed VisibleFlags WriteHeaders WriteMsgUnix WroteHeaders WroteRequest XORKeyStream addAbsPrefix addConnCalls aesCipherAsm ai_canonname alpnProtocol assignFloatN atRightDelim atTerminator atomicstatus blockControl certificates charinfoNFKC checkAdvance checkPseudos cipherSuites clientRandom connPoolOnce connsPerHost convertFloat convertWords copyTrailers counterCrypt dashBoundary decompressor defaultUsage defaultValue deferpoolbuf dequeueSudoG deriveSecret dialParallel divRecursive doEarlyClose earlyCloseFn encryptedKey errorContext extraHeaders finishedHash formatHeader gcAssistTime getDataFrame goLookupHost goidcacheend handshakeErr huffmanBlock idleConnWait indirectelem initConnPool insertSingle insertUnsafe integrityKey isReplayable lastRuneSize linktimehash listCounters listenStream literalStore locksHeldLen lookupIPAddr lookupValues makeFuncCtxt masterSecret maxEarlyData maxFrameSize maxSizeLimit maxWriteSize missingFlags modulehashes multiSegment mustReadRune newTLSConfig nextBoundary nextNonSpace nextOverflow nextStreamID ocspResponse ocspStaplinglockSlow paniconfault parseControl pastTrailers peekNonSpace prepareWrite productTable queueForDial quotedString rangeControl readResponse reflectValue reflexivekey removeOldest replacements resolverFunc runnableTime sameSizeGrow seenSettings serverOffset serverRandom shiftOffsets skipResource strictErrors sysexitticks systemVerify targetSchemeitemListnewChainnewFieldnewRangepipeline textOrAction timerRaceCtx tryBacktrack tryWriteCopy updateBlocks verifyOption waitCanceled writeBuffers writeHeaders writePadding writeRequest wroteRequest A@ compress/gzip crypto/cipher crypto/sha256 crypto/sha512 encoding/asn1 encoding/json internal/poll net/textproto regexp/syntax text/template **jwe.Message *[1]route.Sys *[1]time.zone *[253]uintptr *[256][]uint8 *[512]uintptr *[8]struct {} *[8]tls.alert *[]*flag.Flag *[]*net.IPNet *[]bidi.Class *[]cpu.option *[]json.field *[]jwe.jsonKV *[]jws.Signer *[]net.IPAddr *[]net.ipAttr *[]parse.Node *[]parse.item *[]regexp.job *[]route.Addr *[]sync.eface *asn1.encoder *atomic.Value *bufio.Reader *bufio.Writer *bytes.Buffer *bytes.Reader *bytes.readOp *chan<- error *cipher.Block *cli.BoolFlag *cli.IntSlice *cli.PathFlag *flag.FlagSet *flate.Reader *flate.Writer *flate.byFreq *fmt.Stringer *fmt.fmtFlags *fmt.readRune *fs.PathError *func() []int *func() error *func() int32 *func() int64 *func(func()) *func(string) *func(uint32) *func(uint64) *http.Request *http.connLRU *interface {} *io.eofReader *io.nopCloser *json.Decoder *json.byIndex *json.encOpts *json.scanner *jwe.identKey *jwe.isZeroer *jwk.identPEM *jws.Verifier *jws.identKey *list.Element *mapiter.Pair *mapiter.iter *net.DNSError *net.Resolver *net.UnixAddr *net.UnixConn *net.addrList *net.sockaddr *os.LinkError *parse.IfNode *poll.fdMutex *reflect.Kind *reflect.Type *reflect.flag *reflect.name *regexp.entry *regexp.input *regexp.queue *rsa.CRTValue *runtime.Func *runtime.bmap *runtime.hmap *runtime.itab *runtime.name *runtime.note *sort.reverse *strings.span *sync.RWMutex *sync.rlocker *syntax.Error *syntax.Flags *time.Weekday *tls.halfConn *tls.keyShare *url.Userinfo AcceptableCAs AddASN1BigInt AddASN1Uint64 Birthtimespec BlockFragment BoundaryAfter CNAMEResource CancelRequest CheckRedirect CodeBlockData ContentLength ConvertibleTo DNSSECAllowed Decomposition ErrorHandling ExtendedRCode FallbackDelay FindAllString FirstBoundary GetClientConn GetExtensions HasDuplicates InterfaceData Intermediates IsUnspecified LiteralPrefix MarshalBinary MultipartForm NewClientConn OverflowFloat PostFormValue PrintDefaults PrivateParams ProbablyPrime PublicHeaders PushFrontList RegularFields Renegotiation SectionReader SessionKeyLen SetDoNotReuse SetReadBuffer SetsockoptInt SkipAuthority StreetAddress TableCellData ToRDNSequence UnmarshalJSON UnmarshalText WritePriority WriteRawFrame WriteSettings X509CertChain ZeroReadIsEOF addASN1Signed addBase128Int addConnLocked alpnProtocols appendCommand bodyReadError byteAvailable cancelRequest cgoCallersUse checkPipeline checkRedirect checknonempty closeForError combineHangul compactOption compatibility complexTokens connPoolOrDef convertNumber convertString customDialTLS decodeQuantum decryptOption decryptTicket deletedTimers deriveCounter didEarlyClose encodeHeaders readSlice encryptOption encryptTicket errorHandling expNNWindowed fallbackDelay filetabOffset firstBoundary firstZoneUsed flushNoDefers gcAssistBytes getClientConn getConnCalled makePairse rawBuffer f goLookupCNAME handleHeading handleMethods headerFragBuf inDoubleQuote inSingleQuote incrnoverflow insertOrdered lastOutputLen leadingRegexp leadingString maxTableIndex missingMethod mutualVersion needkeyupdate newClientConn nextFreeIndex nextProtoOnce oldbucketmask onIdleTimeout parentContext parkingOnChan pendingIsASN1 pendingLenLen popParseState preemptShrink prefixHeading privateParams pskIdentities readFromUntil readHandshake readMetaFrame reportZombies reqBodyClosed reqDidTimeout requestedGzip requiresHTTP1 rescanLiteral runnableStamp selectedGroup sentEndStream sessionTicket shellComplete signalPending singleRequest smartBacktick startingtrace stepsForValue supportsCurve terminateCell ifControl newAction newNumber newString stopParse tokenValueEnd tooIdleLocked trafficSecret updateBinders waittraceskip writeLoopDone x509CertChain+ ++++h++j+@+ +++ +++++++++++++++ +++++ ++(+++0++++++6+8++@+B+D++H+L+ + +`1compress/flatecontainer/listcrypto/ed25519mime/multiparttext/tabwriter**http.Request*[1]net.IPAddr*[32768]uint32*[3]parse.item*[8]*flag.Flag*[8]bidi.Class*[8]jws.Signer*[8]route.Addr*[9]cpu.option*[]*cli.Author*[]*hpack.node*[]*parse.Tree*[]*sync.entry*[]crc32.Table*[]crypto.Hash*[]flate.hcode*[]flate.token*[]fs.DirEntry*[]fs.FileInfo*[]func(error)*[]jwa.KeyType*[]syntax.Inst*[]tls.CurveID*[]x509.sum224*aes.aesCipher*asn1.RawValue*cipher.Stream*cli.AfterFunc*cli.ExitCoder*cli.Timestamp*cli.exitError*concatkdf.KDF*crypto.Signer*des.desCipher*dsa.PublicKey*field.Element*flag.boolFlag*flag.intValue*fmt.Formatter*fmt.ScanState*fmt.scanError*fmt.wrapError*func() net.IP*func() string*func() uint32*func() uint64*func([]uint8)*func(float64)*func(int) int*func(uintptr)*hpack.Decoder*hpack.Encoder*http.Response*http.SameSite*http.canceler*http.wantConn*io.ByteWriter*io.ReadCloser*io.ReadWriter*io.ReaderFrom*io.RuneReader*json.Registry*jwe.Recipient*jwe.populater*jwk.DecodeCtx*jws.DecodeCtx*jws.Signature*jws.rsaSigner*keygen.Ecdhes*keygen.Random*keygen.Setter*keygen.X25519*net.AddrError*net.Interface*net.byRFC6724*net.dnsConfig*net.nssSource*net.sysDialer*net.temporary*norm.formInfo*norm.iterFunc*os.onlyWriter*os.unixDirent*parse.DotNode*parse.NilNode*parse.endNode*poll.pollDesc*rand.Source64*reflect.Value*reflect.rtype*reflect.tflag*reflect.visit*regexp.Regexp*regexp.inputs*regexp.thread*route.Message*route.RIBType*route.SysType*rsa.PublicKey*runtime.Error*runtime.Frame*runtime._func*runtime._type*runtime.gList*runtime.gobuf*runtime.hchan*runtime.hiter*runtime.mspan*runtime.mutex*runtime.stack*runtime.sudog*runtime.tflag*runtime.timer*runtime.waitq*runtime.wbBuf*sha256.digest*sha512.digest*sync.readOnly*syntax.InstOp*syntax.Regexp*syntax.parser*syntax.ranges*syscall.Errno*syscall.Iovec*time.Duration*time.Location*tls.ticketKey*x509.CertPool*x509.KeyUsage*x509.lazyCertAbsolutePrefixAddASN1BooleanAddASN1UTCTimeAllAdditionalsAllAuthoritiesAuthorityKeyIdBoundaryBeforeBreakWithErrorCheckSignatureCloseWithErrorCompareAndSwapComputeAuthTagDialTLSContextEmailAddressesEncodeToStringExitErrHandlerForeachSettingForgetUnsharedGetCertificateGot100ContinueGot1xxResponseIsNormalStringKty json:"kty"LocalFlagNamesMaxPathLenZeroMulticastAddrsNonceGeneratorOnlyCachedConnReadBufferSizeReplaceAllFuncResponseToHEADRevocationTimeScalarBaseMultSetEmitEnabledSetReuseFramesSetWriteBufferSetsockoptByteSignatureValueSkipAdditionalSkipAllAnswersVerifiedChainsVerifyHostnameWriteRSTStreamallowedMaxSizearrayInterfaceasyncSafePointbodyIsWritablecanCheckPrefixcarryPropagateclientFinishedclientProtocolcloseNotifyErrcloseWithErrorconnsPerHostMucreateOverflowdebugFramerBufdialClientConndomainMatchersdoubleJacobianencodeTrailersforgetStreamIDfuncnameOffsetgetCertificategetLookupGroupgoodSuffixSkiphandshakeMutexhashMightPanichttp2TransportinContinuationincrefAndCloseinferAlgorithminlineCallbacklistenDatagramlockRankStructlookupGroupCtxmanualFreeListmaxBitStateLenmaxInsertIndexmustBeExportednlDashBoundaryoffsetEncoding unlockSlowoutgoingLengthparseClassCharparsePerlFlagsparseRefsToASTpickTLSVersionprefixCompletepushParseStatereadBufferSizereadFileOptionregisterOptionremoveIdleConnresHeaderValidresourceHeaderrespHeaderRecvrunSafePointFnscanBasePrefixserverFinishedsetErrorLockedsetFromScannersetReqCancelersmartDashLatexsmartLeftAnglesysblocktraced endControl newCommand newComment startParse unexpectedtraceReclaimedtruncateStringtryLoadOrStoretryPutIdleConnvalueInterfaceverifiedChainswriteBlockHuffcrypto/ellipticencoding/base64encoding/binary*[131072]uint32*[8]*parse.Tree*[8]*sync.entry*[8]crypto.Hash*[8]func(error)*[8]jwa.KeyType*[8]x509.sum224*[]*cli.Command*[]*cli.Context*[]*http.Cookie*[]asn1.encoder*[]interface {}*[]reflect.Type*[]regexp.entry*[]rsa.CRTValue*[]tls.keyShare*arrayiter.Pair*arrayiter.iter*asn1.BitString*base64.encoder*big.byteReader*bytes.asciiSet*chan struct {}*chan time.Time*cipher.Fetcher*cipher.ctrAble*cipher.gcmAble*cli.ActionFunc*cli.BeforeFunc*cli.Int64Slice*cli.MultiError*cli.Serializer*cli.StringFlag*cli.multiError*dsa.Parameters*elliptic.Curve*flag.boolValue*flag.funcValue*flag.uintValue*flate.Resetter*fmt.GoStringer*func() []error*func() []int64*func() []uint8*func() float32*func() float64*func() jwk.Key*func() uintptr*func(int) bool*func(int) uint*func(int, int)*http.ConnState*http.CookieJar*http.Transport*http.cancelKey*http.http2flow*http.http2pipe*http.httpError*http.keyValues*http.socksAddr*httprc.Fetcher*httprc.fetcher*idna.runeError*io.ByteScanner*io.RuneScanner*io.WriteCloser*io.multiReader*json.DecodeCtx*json.Marshaler*json.decodeCtx*json.jsonError*jwe.algKeyPair*jwe.algKeySink*jwe.stdHeaders*jws.HMACSigner*jws.SignOption*jws.algKeyPair*jws.algKeySink*jws.signOption*jws.stdHeaders*keygen.ByteKey*macOS.OSStatus*map[int]string*map[string]int*mapiter.Source*multipart.File*multipart.Form*multipart.Part*net.PacketConn*net.ParseError*net._Ctype_int*net.dialResult*net.writerOnly*nettrace.Trace*parse.BoolNode*parse.ListNode*parse.NodeType*parse.PipeNode*parse.TextNode*parse.WithNode*parse.elseNode*parse.itemType*pkix.Extension*rand.devReader*rand.rngSource*reflect.Method*reflect.abiSeq*regexp.machine*route.LinkAddr*rsa.PSSOptions*rsa.PrivateKey*runtime.Frames*runtime._defer*runtime._panic*runtime.funcID*runtime.gcBits*runtime.gcWork*runtime.lfnode*runtime.mcache*runtime.sigset*sort.Interface*strings.Reader*sync.WaitGroup*sync.poolChain*sync.poolLocal*syntax.EmptyOp*syscall.Dirent*syscall.IPMreq*syscall.Linger*syscall.Stat_t*syscall._C_int*tabwriter.cell*time.zoneTrans*tls.cthWrapper*unsafe.Pointer*x509.authKeyIdAppendSignatureAuthorityHeaderClearSignaturesCommandNotFoundConnectionStateConstantTimeSumContextSpecificEscapedFragmentExecuteTemplateExtraExtensionsFieldByNameFuncFindAllSubmatchFindReaderIndexFindStringIndexHeadingIDPrefixHeadingIDSuffixHideHelpCommandIdleConnTimeoutIsFootnotesListIsGlobalUnicastLookupSignatureMatchEmptyWidthMaxConnsPerHostMultipartReaderNewCBCDecrypterNewCBCEncrypterOverflowComplexProtectedHeaderQuickSpanStringReadIdleTimeoutReadMetaHeadersReadWriteCloserRunAsSubcommandSetEncryptedKeySetReadDeadlineSkipFlagParsingSupportedCurvesSupportedPointsSupportedProtosTLSClientConfigUnknownResourceUnmarshalBinaryVisibleCommandsWait100ContinueWriteBufferSizeWriteDataPaddedaddConnIfNeededaddErrorContextaddStreamLockedcheckFrameOrderclearActionLineclientHandshakecloseDoneLockedcloseNotifySentcodegenEncodingcombinesForwardcommandNamePathdecConnsPerHostdecomposeHangulexpMasterSecretexpNNMontgomeryexpectsContinueexportedMethodsfastSkipHashingfencedCodeBlockgenerateCodegengenerateSubkeysget1xxTraceFuncgetLineFromDatagetMissingFlagsgetSANExtensionhandleExitCoderhandleKeyUpdatehandleTableCellhandshakeStatushasSANExtensionidleConnTimeoutidleStateLockedisFinalBoundaryisPrefixHeadinglistTypeChangedliteralEncodinglookupFirstZonemakeClientHellomarkBitsForBasematchAddrFamilymultipartReaderobjectInterfaceparseDefinitionparseNamedClassparseRightParenpendingRequestspopulateHeaderspreMasterSecretprepareForSweepreadClientHelloreadRecordOrCCSrenderParagraphresolveAddrListretryReadRecordsendAlertLockedserverHandshakesetReadDeadlinesimplifyComplexsmartAmpVariantsortedKeyValuesstreamsReservedsupportedCurvessupportedPointsswapVerticalBartableSizeUpdatetemplateControl expectOneOf hasFunction newPipeline newTemplate newVariable withControl elseControlticketSupportedunexpungeLockedupdateRequestedwaitForBodyReadwaitForContinuewantSettingsAckwriteBufferSizecrypto/x509/pkixinternal/fmtsortinternal/testlog*[1]*cli.Command*[1]interface {}*[1]tls.keyShare*[2]*cli.Command*[2]asn1.encoder*[2]interface {}*[3]*cli.Command*[8]interface {}*[8]reflect.Type*[]*http.Request*[]*list.Element*[]*mapiter.Pair*[]*runtime.bmap*[]*runtime.itab*[]asn1.RawValue*[]jwe.Recipient*[]net.nssSource*[]reflect.Value*[]reflect.visit*[]runtime.Frame*[]syscall.Iovec*[]tls.ticketKey*[]x509.lazyCert*asn1.Enumerated*asn1.RawContent*asn1.oidEncoder*asn1.setEncoder*base64.Encoding*chan net.result*chan parse.item*cli.GenericFlag*cli.StringSlice*cli.cliTemplate*context.Context*dnsmessage.Name*dnsmessage.Type*ecdsa.PublicKey*flag.int64Value*flate.byLiteral*func() []string*func() asn1.Tag*func() cli.Args*func() net.Addr*func(bool) bool*func(int) []int*func(int) error*func(int32) int*func(io.Reader)*func(io.Writer)*http.atomicBool*http.bodyLocked*http.byteReader*http.closeIdler*http.fakeLocker*http.gzipReader*http.http2Flags*http.http2Frame*http.readResult*idna.labelError*io.StringWriter*iter.MapVisitor*json.RawMessage*json.mapEncoder*json.ptrEncoder*jwe.KeyProvider*jwk.ParseOption*jwk.PublicKeyer*jwk.parseOption*jws.KeyProvider*jws.ecdsaSigner*jws.eddsaSigner*jws.rsaVerifier*map[string]bool*map[uint16]bool*mapiter.Visitor*net._Ctype_char*net._Ctype_uint*norm.Properties*norm.lookupFunc*norm.streamSafe*os.SyscallError*parse.ChainNode*parse.FieldNode*parse.RangeNode*pem.lineBreaker*reflect.ChanDir*reflect.MapIter*reflect.abiDesc*reflect.abiStep*reflect.nameOff*reflect.ptrType*reflect.typeOff*regexp.bitState*regexp.lazyFlag*route.Inet4Addr*route.Inet6Addr*rsa.OAEPOptions*runtime.funcinl*runtime.functab*runtime.funcval*runtime.imethod*runtime.libcall*runtime.maptype*runtime.nameOff*runtime.siginfo*runtime.special*runtime.typeOff*runtime.workbuf*strings.Builder*sync.dequeueNil*sync.notifyList*syscall.Cmsghdr*syscall.RawConn*template.common*template.option*time.ParseError*tls.Certificate*tls.cipherSuite*tls.finishedMsg*tls.pskIdentity*unicode.Range16*unicode.Range32*url.EscapeErrorAddASN1BitStringAdditionalHeaderCurvePreferencesDefinedTemplatesExcludedIPRangesHandshakeContextIgnoreParseErrorPeerCertificatesPropertiesStringProtectedHeadersRegisterProtocolReplaceAllStringResolveReferenceSessionTicketKeySetPublicHeadersSetWriteDeadlineSetsockoptIPMreqSetsockoptLingerSignatureSchemesSkipAllQuestionsTLSHandshakeDoneToFishCompletionTrailingZeroBitsTransferEncodingVerifyConnectionWritePushPromiseWriteSettingsAckWroteHeaderFieldactiveStackChansaddExistingChildawaitFlowControlcallContinuationcertificateTypeschangeCipherSpeccloseForLostPingcollectFragmentscombinesBackwardcompressionLevelconnsPerHostWaitcurvePreferencesdashBoundaryDashdebugReadLoggerfdivRecursiveStepdivideByElemSizeexplicitNonceLengcMarkWorkerModegotIdleConnTracehandshakeContexthasDecompositionhttp2FrameHeaderignoreParseErrorinsertDecomposedinternetAddrListisProtocolSwitchlastChunkOrAlloclastHeaderStreamliteralInterfacemarkBitsForIndexmarshalFlattenedmustBeAssignablemutateHeaderFuncparseVerticalBarpeerCertificatesprepareFishFlagsprobeRequestBodyprotectedHeadersqueueForIdleConnrefillAllocCacheregisterOnHitEOFresumptionSecretselectedIdentitysetTrafficSecretsetWriteDeadlinesmartDoubleQuotesmartSingleQuotestandardCriteriasupportedVersion nextNonSpace parseControl peekNonSpace rangeControl blockControl textOrActiontrailingZeroBitstryExpungeLockedtryGrowByResliceunpackCompressedwriteDocTemplatewriteFixedHeaderwriteRequestBodywriteStoredBlockwriteStreamResetinternal/nettracenet/http/internal*<-chan struct {}*<-chan time.Time*[1]jwe.Recipient*[256]*hpack.node*[2]runtime.Frame*[8]*list.Element*[8]asn1.RawValue*[8]reflect.Value*[8]reflect.visit*[]*http.wantConn*[]*jws.Signature*[]*jws.rsaSigner*[]*reflect.rtype*[]*regexp.thread*[]*runtime._type*[]*runtime.mspan*[]*runtime.sudog*[]*runtime.timer*[]*syntax.Regexp*[][]*http.Cookie*[]chan struct {}*[]elliptic.Curve*[]http.ConnState*[]http.cancelKey*[]http.keyValues*[]jwe.algKeyPair*[]jws.algKeyPair*[]map[string]int*[]parse.itemType*[]pkix.Extension*[]syscall._C_int*[]tabwriter.cell*[]time.zoneTrans*[]unsafe.Pointer*aes.KeySizeError*aes.aesCipherAsm*aes.aesCipherGCM*asn1.SyntaxError*asn1.byteEncoder*binary.ByteOrder*binary.bigEndian*blackfriday.Node*chan<- struct {}*cipher.BlockMode*cli.Float64Slice*cli.IntSliceFlag*cli.RequiredFlag*context.canceler*context.emptyCtx*context.stringer*context.timerCtx*context.valueCtx*crypto.Decrypter*crypto.PublicKey*des.KeySizeError*dnsmessage.Class*dnsmessage.RCode*ecdsa.PrivateKey*ecdsa.invertible*fiat.P521Element*flag.stringValue*flag.uint64Value*flate.compressor*flate.tableEntry*fmt.stringReader*func() [][]uint8*func() []float64*func() hash.Hash*func() io.Reader*func() io.Writer*func() parse.Pos*func() time.Time*func(*flag.Flag)*func(*list.List)*func(bool) error*func(complex128)*func(error) bool*func(int) string*func(int32) bool*func(int64) bool*func(string) int*hmac.marshalable*http.errorReader*http.h2Transport*http.http2Framer*http.persistConn*httpproxy.Config*httpproxy.config*httprc.Whitelist*io.LimitedReader*io.SectionReader*json.SyntaxError*json.Unmarshaler*json.decodeState*json.encodeState*json.encoderFunc*jwa.KeyAlgorithm*jwe.identKeyUsed*jwe.identMessage*jwe.stdRecipient*jwk.KeyOperation*jwk.KeyUsageType*jwk.OKPPublicKey*jwk.RSAPublicKey*jwk.SymmetricKey*jwk.okpPublicKey*jwk.rsaPublicKey*jwk.setDecodeCtx*jwk.symmetricKey*jws.HMACVerifier*jws.VerifyOption*jws.hmacSignFunc*jws.identContext*jws.identHeaders*jws.identKeyUsed*jws.identMessage*jws.verifyOption*keyenc.Decrypter*keyenc.Encrypter*keygen.Generator*map[string][]int*map[string]int32*map[string]int64*map[uint32]int32*mapiter.Iterator*multipart.Reader*net.HardwareAddr*net._Ctype_uchar*net.byMaskLength*net.nssCriterion*net.timeoutError*option.Interface*parse.ActionNode*parse.BranchNode*parse.NumberNode*parse.StringNode*pkix.RDNSequence*rc4.KeySizeError*reflect.funcType*reflectlite.Kind*reflectlite.Type*regexp.runeSlice*route.wireFormat*runtime.dlogPerM*runtime.funcFlag*runtime.funcInfo*runtime.guintptr*runtime.lockRank*runtime.mapextra*runtime.muintptr*runtime.pcHeader*runtime.pollDesc*runtime.puintptr*runtime.stringer*runtime.textsect*sort.StringSlice*strconv.NumError*strings.Replacer*strings.asciiSet*strings.replacer*strings.trieNode*sync.copyChecker*sync.poolDequeue*syntax.ErrorCode*syntax.charGroup*syscall.IPv6Mreq*syscall.Sockaddr*syscall.Timespec*syscall._Socklen*tabwriter.Writer*template.FuncMap*tls.finishedHash*tls.keyAgreement*tls.keyUpdateMsg*tls.xorNonceAEAD*x25519.PublicKey*x509.Certificate*x509.ExtKeyUsageAllowIllegalReadsAuthenticatedDataCanTakeNewRequestCheckCRLSignatureContentEncryptionDisableKeepAlivesFindSubmatchIndexForceAttemptHTTP2HandshakeCompleteMaxHeaderListSizeNameToCertificatePermittedIPRangesPolicyIdentifiersRawTBSCertificateReplaceAllLiteralReserveNewRequestRunAndExitOnErrorSupportedVersionsTLSHandshakeStartVisibleCategoriesWriteContinuationWriteWindowUpdateabortStreamLockedaddLengthPrefixedallocBitsForIndexauthenticatedDatacompressionMethodcontentEncryptiondebugWriteLoggerfdisableKeepAlivesdispositionParamsgoLookupHostOrderhandshakeCompletehttp2HeadersFrameinitialWindowSizeinlineHTMLCommentmakeHeadersCopiermapRoundTripErrormaxHeaderListSizemodSqrt3Mod4PrimemodSqrt5Mod8PrimenextTrafficSecretparseFieldIndexedparseFieldLiteralparseRouteMessageparseTemplateNameparseUnicodeClasspoolLocalInternalprepareCipherSpecreferenceOverridesessionTicketKeysstackCallArgsSizestaysWithinBuffersupportedVersions checkPipelinetokenValueAllowedwriteBlockDynamicwriteRecordLockedwriteStoredHeader A@net/http/httptrace*[0]unsafe.Pointer*[1]*jws.Signature*[1]*syntax.Regexp*[1]time.zoneTrans*[1]unsafe.Pointer*[4]*reflect.rtype*[8]*jws.rsaSigner*[8]*reflect.rtype*[8]*runtime._type*[8][]*http.Cookie*[8]chan struct {}*[8]elliptic.Curve*[8]http.ConnState*[8]http.cancelKey*[8]map[string]int*[8]parse.itemType*[8]unsafe.Pointer*[]*runtime._defer*[][]net.nssSource*[]dnsmessage.Type*[]http.http2Flags*[]json.RawMessage*[]net._Ctype_char*[]norm.Properties*[]reflect.abiStep*[]runtime.functab*[]runtime.imethod*[]runtime.typeOff*[]tls.Certificate*[]tls.pskIdentity*[]unicode.Range16*[]unicode.Range32*asn1.bytesEncoder*asn1.int64Encoder*asn1.multiEncoder*asn1.tagAndLength*cipher.cbcDecAble*cipher.cbcEncAble*cipher.cbcFetcher*cipher.gcmFetcher*context.cancelCtx*crypto.PrivateKey*crypto.SignerOpts*dnsmessage.Parser*dnsmessage.header*ed25519.PublicKey*flag.float64Value*flate.deflateFast*flate.dictDecoder*flate.literalNode*fmtsort.SortedMap*func() (int, int)*func() *list.List*func() [2]uintptr*func() []big.Word*func() []cli.Flag*func() complex128*func() net.IPMask*func() parse.Node*func() time.Month*func() url.Values*func([][32]uint8)*func(bool, error)*func(error) error*func(http.Header)*func(int) []uint8*func(int32) int32*func(int64) error*func(int64) int64*func(jwk.Key) int*func(net.IP) bool*func(string) bool*func(string) uint*func(uint64) bool*func(uint8) error*hpack.HeaderField*http.RoundTripper*http.headerSorter*http.http2ErrCode*http.http2Setting*http.incomparable*http.stringWriter*http.writeRequest*httpproxy.ipMatch*httpproxy.matcher*httprc.HTTPClient*json.arrayEncoder*json.errorContext*json.floatEncoder*json.sliceEncoder*json.structFields*jwe.DecryptOption*jwe.EncryptOption*jwe.decryptOption*jwe.encryptOption*jwe.identCompress*jwk.OKPPrivateKey*jwk.RSAPrivateKey*jwk.okpPrivateKey*jwk.rsaPrivateKey*jws.CompactOption*jws.SignerFactory*jws.compactOption*jws.ecdsaVerifier*jws.eddsaVerifier*jws.identDetached*jws.payloadSigner*keygen.ByteSource*map[string]string*map[string]uint64*net.addrinfoErrno*net.onlyValuesCtx*nettrace.TraceKey*parse.CommandNode*parse.CommentNode*rand.lockedSource*reflect.StructTag*reflect.bitVector*reflect.fieldScan*reflect.layoutKey*reflectlite.rtype*reflectlite.tflag*regexp.inputBytes*route.DefaultAddr*runtime._typePair*runtime.bitvector*runtime.gclinkptr*runtime.mSpanList*runtime.notInHeap*runtime.pageCache*runtime.ptabEntry*runtime.spanClass*singleflight.call*sync.poolChainElt*tabwriter.osError*template.Template*template.variable*testlog.Interface*time.runtimeTimer*tls.atLeastReader*x25519.PrivateKey*x509.ecPrivateKeyAddASN1OctetStringAllowIllegalWritesAppendCertsFromPEMCheckSignatureFromClientSessionCacheCustomHelpTemplateDisableCompressionDpasn1:"optional"Dqasn1:"optional"EphemeralPublicKeyExcludedDNSDomainsExcludedURIDomainsFindAllStringIndexFindStringSubmatchGetConfigForClientHeadingLevelOffsetInsecureSkipVerifyIsLinkLocalUnicastNegotiatedProtocolOrganizationalUnitParseMultipartFormProxyConnectHeaderPublicKeyAlgorithmSetKeepAlivePeriodSetMaxStringLengthSetsockoptIPv6MreqSignatureAlgorithmSkipAllAdditionalsSkipAllAuthoritiesUnknownExtKeyUsageUnprotectedHeadersX509CertThumbprintaffineFromJacobiancompressionMethodsdialTLSWithContextdisableCompressionephemeralPublicKeygetStartDialLockedhasCustomTLSDialerhasNameConstraintshttp2PriorityParamjacobianFromAffinemakeDummyRecipientmaxHeaderStringLenmustBeExportedSlowprobablyPrimeLucasputOrCloseIdleConnreplaceReqCancelerserverCertificatesshouldRetryRequestsignatureAlgorithmsmartNumberGenericticketKeyFromBytestlsNextProtoWasNilunprotectedHeaderswriteDynamicHeaderx509CertThumbprinttext/template/parse*[14]syscall._C_int*[16]*reflect.rtype*[1]tls.pskIdentity*[32]*reflect.rtype*[64]*reflect.rtype*[8][]net.nssSource*[8]dnsmessage.Type*[8]http.http2Flags*[8]runtime.typeOff*[]*jws.ecdsaSigner*[]*jws.rsaVerifier*[]*tls.Certificate*[][]*runtime._type*[][]tabwriter.cell*[]context.canceler*[]dnsmessage.Class*[]dnsmessage.RCode*[]flate.tableEntry*[]func() hash.Hash*[]jwk.KeyOperation*[]jws.hmacSignFunc*[]net.nssCriterion*[]runtime.guintptr*[]runtime.textsect*[]syntax.charGroup*[]x509.ExtKeyUsage*arrayiter.Iterator*asn1.stringEncoder*asn1.taggedEncoder*blackfriday.Option*chan *mapiter.Pair*cli.ErrorFormatter*cli.Int64SliceFlag*cryptobyte.Builder*dnsmessage.section*ecdsa.combinedMult*ed25519.PrivateKey*edwards25519.Point*elliptic.p224Curve*elliptic.p256Curve*elliptic.p521Curve*elliptic.p521Point*errors.errorString*flag.ErrorHandling*flag.durationValue*flate.decompressor*func() (int, bool)*func() *cert.Chain*func() *parse.Tree*func() *tls.Config*func() []route.Sys*func() crypto.Hash*func() fs.FileMode*func() http.Header*func() jwa.KeyType*func() jwe.Headers*func() jws.Headers*func() sync.Locker*func() tls.CurveID*func(*big.Int) int*func(*http.Cookie)*func([]uint8) bool*func(float64) bool*func(interface {})*func(jwk.Key) bool*func(string) []int*func(string) error*func(string) int64*func(uint32) error*func(uintptr) bool*hpack.dynamicTable*hpack.incomparable*http.ProtocolError*http.bodyEOFSignal*http.connectMethod*http.http2dialCall*http.wantConnQueue*httpproxy.allMatch*httprc.FetchOption*httprc.fetchResult*io.ReadWriteCloser*json.structEncoder*json.unquotedValue*jwk.ECDSAPublicKey*jwk.ReadFileOption*jwk.ecdsaPublicKey*jwk.typedFieldPair*jws.keySetProvider*net.ipLookupResult*norm.reorderBuffer*parse.TemplateNode*parse.VariableNode*poll.errNetClosing*reflect.ValueError*reflect.layoutType*reflect.structType*regexp.inputReader*regexp.inputString*regexp.onePassInst*regexp.onePassProg*route.RouteMessage*route.RouteMetrics*runtime.cgoCallers*runtime.mSpanState*runtime.moduledata*runtime.modulehash*runtime.plainError*runtime.sysmontick*runtime.waitReason*runtime.workbufhdr*singleflight.Group*template.ExecError*time.fileSizeError*tls.ClientAuthType*tls.certificateMsg*tls.clientHelloMsg*tls.nistParameters*tls.permanentError*tls.serverHelloMsg*unicode.RangeTable*unsafeheader.Slice*x509.HostnameError*x509.InvalidReason*x509.VerifyOptions*x509.pkixPublicKey*x509.pssParameters*x509.publicKeyInfoAddASN1Int64WithTagAgreementPartyUInfoAgreementPartyVInfoFillFromRDNSequenceHeaderBlockFragmentMaxIdleConnsPerHostPermittedDNSDomainsPermittedURIDomainsSetMaxReadFrameSizeSetProtectedHeadersSetsockoptInet4AddrSupportsCertificateTLSHandshakeTimeoutagreementPartyUInfoagreementPartyVInfobytesFromFirstChunkcleanupWriteRequesthandleRenegotiationhttp2clientConnPoolisDoNotReuseAndIdleisUnderlinedHeadingmaxIdleConnsPerHostmaxSupportedVersionnLeadingNonStartersobfuscatedTicketAgeprepareFishCommandsrawProtectedHeadersremoveLeadingRegexpremoveLeadingStringsecureRenegotiationterminateBlockquoteparseDefinitiontemplateControlclearActionLinewriteDocumentHeaderinternal/reflectlitemime/quotedprintable*[128]*reflect.rtype*[128]*runtime.mspan*[128]*runtime.sudog*[136]*runtime.mspan*[14]net._Ctype_char*[32]*runtime._defer*[32]norm.Properties*[8]*jws.ecdsaSigner*[8]*jws.rsaVerifier*[8]*tls.Certificate*[8][]*runtime._type*[8]context.canceler*[8]dnsmessage.Class*[8]dnsmessage.RCode*[8]func() hash.Hash*[8]jws.hmacSignFunc*[8]syntax.charGroup*[]*http.persistConn*[]*route.wireFormat*[]*strings.trieNode*[]*x509.Certificate*[][]*runtime._defer*[]flate.literalNode*[]hpack.HeaderField*[]http.RoundTripper*[]http.http2ErrCode*[]http.http2Setting*[]httpproxy.matcher*[]jws.SignerFactory*[]map[string]string*[]runtime._typePair*[]runtime.ptabEntry*[]template.variable*abi.IntArgRegBitmap*chan net.dialResult*cipher.StreamReader*cipher.cbcDecrypter*cipher.cbcEncrypter*cli.CommandCategory*cli.StringSliceFlag*cli.commandCategory*cli.iterativeParser*crc32.slicing8Table*des.tripleDESCipher*flate.InternalError*func() *jws.Message*func() interface {}*func() reflect.Kind*func() reflect.Type*func() time.Weekday*func(*http.Request)*func(*list.Element)*func([]uint8) []int*func([]uint8) error*func(int, int) bool*func(jwk.DecodeCtx)*func(jws.DecodeCtx)*func(reflect.Value)*func(string) string*func(string) uint64*hpack.DecodingError*hpack.pairNameValue*http.ResponseWriter*http.http2DataFrame*http.http2FrameType*http.http2PingFrame*http.http2SettingID*http.http2Transport*http.http2connError*http.http2httpError*http.maxBytesReader*http.requestAndChan*http.transferWriter*httpproxy.cidrMatch*httprc.fetchRequest*json.MarshalerError*jwe.KeyProviderFunc*jwk.ECDSAPrivateKey*jwk.ecdsaPrivateKey*jwk.identTypedField*jws.SignerFactoryFn*jws.VerifierFactory*jws.identRequireKid*jws.identUseDefault*keyenc.PBES2Encrypt*map[string][2]int32*map[string][]string*mapiter.VisitorFunc*md2man.roffRenderer*net.hostLookupOrder*reflect.StructField*reflect.abiStepKind*reflect.methodValue*reflect.structField*reflectlite.nameOff*reflectlite.typeOff*runtime.boundsError*runtime.errorString*runtime.pthreadcond*runtime.traceBufPtr*singleflight.Result*template.writeError*tls.ClientHelloInfo*tls.ConnectionState*tls.SignatureScheme*tls.ecdheParameters*tls.helloRequestMsg*tls.prefixNonceAEAD*tls.rsaKeyAgreement*unsafeheader.String*x509.pkcs1PublicKey*x509.rfc2821MailboxCloseIdleConnectionsEnableBashCompletionExportKeyingMaterialFindAllSubmatchIndexFootnoteAnchorPrefixGetClientCertificateGotFirstResponseByteInitializationVectorIsLinkLocalMulticastNextBoundaryInStringQinvasn1:"optional"ReplaceAllStringFuncSetSessionTicketKeyscheckNameConstraintschunkHeaderAvailablecloseConnIfStillIdlecloseIdleConnectionscloseUnmatchedBlockstryGrowByReslice exportKeyingMaterialfindPotentialParentsfishSubcommandHelpergcFractionalMarkTimegetClientCertificategoLookupIPCNAMEOrderinitializationVectorlastMatchedContainermaxConcurrentStreamsmodSqrtTonelliShanksmustBeAssignableSlownTrailingNonStartersnewRecordHeaderErrornumExpectedResponsesparseHeaderFieldReprparsePerlClassEscapereadChangeCipherSpecremoveIdleConnLockedreqBodyContentLengthstandardStatusActionunreadDataSizeLockedwantsHttp10KeepAliveinternal/singleflightinternal/unsafeheader*[1]*x509.Certificate*[1]httpproxy.matcher*[1]template.variable*[5][]*runtime._defer*[8]*http.persistConn*[8]*route.wireFormat*[8]*x509.Certificate*[8]http.RoundTripper*[8]http.http2ErrCode*[8]jws.SignerFactory*[8]map[string]string*[8]runtime._typePair*[]*jws.ecdsaVerifier*[]*parse.CommandNode*[]*singleflight.call*[]*template.Template*[]dnsmessage.section*[]http.wantConnQueue*[]httprc.FetchOption*[]regexp.onePassInst*[]runtime.modulehash*asn1.StructuralError*asn1.fieldParameters*blackfriday.LinkData*blackfriday.ListData*blackfriday.ListType*blackfriday.Markdown*blackfriday.NodeType*blackfriday.Renderer*chan *arrayiter.Pair*chan http.readResult*cipher.ContentCipher*cli.BashCompleteFunc*cli.Float64SliceFlag*cli.OnUsageErrorFunc*cli.errRequiredFlags*cli.requiredFlagsErr*content_crypt.Cipher*crypto.DecrypterOpts*dnsmessage.AResource*elliptic.CurveParams*flate.huffmanDecoder*flate.huffmanEncoder*func() (string, int)*func() *list.Element*func() *mapiter.Pair*func() jwk.DecodeCtx*func() jws.DecodeCtx*func() reflect.Value*func() route.SysType*func(*os.file) error*func([]string) error*func([]uint8) string*func([]uint8) uint16*func([]uint8) uint32*func([]uint8) uint64*func(int, int) error*func(int64) *big.Int*func(json.DecodeCtx)*func(string) []int64*func(string) float64*func(string, string)*func(time.Time) bool*func(uint32) []uint8*func(unsafe.Pointer)*http.cancelTimerBody*http.http2ClientConn*http.http2dataBuffer*http.http2frameCache*http.http2gzipReader*http.http2pipeBuffer*http.socksAuthMethod*httprc.FetcherOption*httprc.fetcherOption*json.condAddrEncoder*jwe.identKeyProvider*jwe.recipientBuilder*jwk.KeyOperationList*jwk.KeyWithDecodeCtx*jws.SignVerifyOption*jws.identKeyProvider*jws.signVerifyOption*keyenc.AESGCMEncrypt*keyenc.ECDHESDecrypt*keyenc.ECDHESEncrypt*map[int32]bidi.Class*map[reflect.Type]int*map[string]struct {}*map[tls.alert]string*map[x509.sum224]bool*multipart.FileHeader*multipart.partReader*net.policyTableEntry*net.portLookupResult*parse.IdentifierNode*pkix.CertificateList*rand.hideAgainReader*reflect.makeFuncCtxt*reflect.uncommonType*runtime.ancestorInfo*runtime.gsignalStack*runtime.heldLockInfo*runtime.pthreadmutex*strings.byteReplacer*strings.stringFinder*strings.stringWriter*syscall.SockaddrUnix*textproto.MIMEHeader*tls.cipherSuiteTLS13*tls.constantTimeHash*tls.handshakeMessage*tls.x25519Parameters*url.InvalidHostError*x509.pkcs1PrivateKeyBasicConstraintsValidCRLDistributionPointsCustomAppHelpTemplateDisallowUnknownFieldsExpectContinueTimeoutFindAllStringSubmatchFirstBoundaryInStringGetProxyConnectHeaderHeaders json:"header"IssuingCertificateURLResponseHeaderTimeoutVerifyPeerCertificateabortRequestBodyWritealternateRoundTripperassignEncodingAndSizeautoSessionTicketKeyscarryPropagateGenericclientFinishedIsFirstcloseWithErrorAndCodeconnectionStateLockeddisallowUnknownFieldsencodeAndWriteHeadersensureUniqueHeadingIDexpectContinueTimeoutframeScratchBufferLengcMarkWorkerStartTimehasSignatureAlgorithmmarshalWithoutBindersmaxHeaderResponseSizeparseInterfaceMessagepeerMaxHeaderListSizeresponseHeaderTimeoutskipContinuationBytesstoreProtectedHeadersparseTemplateNametimerModifiedEarliesttokenPrepareForDecodeuseRegisteredProtocol*[256]runtime.guintptr*[8]*jws.ecdsaVerifier*[8]*singleflight.call*[8]*template.Template*[8]dnsmessage.section*[8]http.wantConnQueue*[]*http.http2dialCall*[]*parse.VariableNode*[]*reflect.structType*[]*runtime.moduledata*[]*unicode.RangeTable*[][32]*runtime._defer*[][]*http.persistConn*[][]*x509.Certificate*[]cli.CommandCategory*[]hpack.pairNameValue*[]http.http2FrameType*[]http.http2SettingID*[]jws.VerifierFactory*[]net.hostLookupOrder*[]reflect.structField*[]tls.SignatureScheme*asn1.ObjectIdentifier*asn1.bitStringEncoder*blackfriday.HTMLFlags*blackfriday.Reference*blackfriday.reference*cli.CommandCategories*cli.DocGenerationFlag*cli.commandCategories*content_crypt.Generic*cryptobyte.BuildError*func() (int64, error)*func() (int64, int64)*func() (string, bool)*func() (uint8, error)*func() *json.Registry*func() *reflect.rtype*func() *regexp.Regexp*func() *time.Location*func() []*cli.Command*func() []*cli.Context*func() []*http.Cookie*func() json.DecodeCtx*func() parse.NodeType*func() syntax.EmptyOp*func([]uint8) []uint8*func([]uint8, uint16)*func([]uint8, uint32)*func([]uint8, uint64)*func(complex128) bool*func(io.Reader) error*func(io.Writer) error*func(string) []string*func(time.Time) error*func(uint64) *big.Int*http.bufioFlushWriter*http.connectMethodKey*http.http2FrameHeader*http.http2GoAwayError*http.http2GoAwayFrame*http.http2StreamError*http.http2addConnCall*http.http2frameParser*http.http2missingBody*http.readTrackingBody*http.responseAndError*http.transportRequest*httpproxy.domainMatch*httprc.identWhitelist*httptrace.ClientTrace*httptrace.DNSDoneInfo*httptrace.GotConnInfo*jwe.staticKeyProvider*jws.VerifierFactoryFn*jws.staticKeyProvider*keyenc.RSAOAEPDecrypt*keyenc.RSAOAEPEncrypt*keyenc.RSAPKCSEncrypt*main.dummyWriteCloser*map.bucket[int]string*map.bucket[string]int*map[reflect.Type]bool*map[string]*flag.Flag*regexp.onePassMachine*route.binaryBigEndian*route.binaryByteOrder*rsa.PrecomputedValues*runtime.interfacetype*runtime.mSpanStateBox*runtime.stackfreelist*syscall.SockaddrInet4*syscall.SockaddrInet6*tls.RecordHeaderError*tls.ecdheKeyAgreement*tls.endOfEarlyDataMsg*x509.SystemRootsErrorAddASN1GeneralizedTimeAddUint8LengthPrefixedBuildNameToCertificateExcludedEmailAddressesHTMLRendererParametersMaxResponseHeaderBytesPayloadjson:"payload"SessionTicketsDisabledSetMaxDynamicTableSizeUseShortOptionHandlingX509CertThumbprintS256certificateAuthoritiesdecrStreamReservationsdiscardHandshakeBufferhandleNewSessionTicketmaxPayloadSizeForWriteprocessCertsFromClientreadLoopPeekFailLockedsmartAngledDoubleQuoteuseShortOptionHandlingx509CertThumbprintS256*[1]tls.SignatureScheme*[3]tls.SignatureScheme*[4]tls.SignatureScheme*[5][32]*runtime._defer*[7]tls.SignatureScheme*[8]*http.http2dialCall*[8]*reflect.structType*[8]*unicode.RangeTable*[8][]*http.persistConn*[8]hpack.pairNameValue*[8]http.http2FrameType*[8]http.http2SettingID*[8]jws.VerifierFactory*[8]net.hostLookupOrder*[]http.socksAuthMethod*[]runtime.ancestorInfo*[]runtime.heldLockInfo*blackfriday.Extensions*blackfriday.SPRenderer*blackfriday.WalkStatus*chan http.writeRequest*cipher.gcmFieldElement*cli.ExitErrHandlerFunc*dnsmessage.nestedError*encoding.TextMarshaler*flate.compressionLevel*flate.huffmanBitWriter*func() (int, int, int)*func() (string, error)*func() *arrayiter.Pair*func() *http.Transport*func() *parse.ListNode*func() *parse.PipeNode*func() []*mapiter.Pair*func() []jwe.Recipient*func() []reflect.Value*func() context.Context*func() reflect.ChanDir*func(*net.netFD) error*func(*strings.Builder)*func([]uint8) *big.Int*func([]uint8, []uint8)*func(fmt.State, int32)*func(func(*flag.Flag))*func(int) (int, error)*func(int) (int32, int)*func(int) reflect.Type*func(string) []float64*func(string, []string)*hpack.headerFieldTable*http.http2HeadersFrame*http.http2RoundTripOpt*http.http2UnknownFrame*http.http2clientStream*http.http2incomparable*http.persistConnWriter*httprc.identHTTPClient*httptrace.DNSStartInfo*internal.chunkedReader*internal.chunkedWriter*json.reflectWithString*jwa.SignatureAlgorithm*jwe.identSerialization*jwk.identLocalRegistry*jws.identPublicHeaders*jws.identSerialization*map.bucket[string]bool*map.bucket[uint16]bool*map[reflect.visit]bool*map[string]*parse.Tree*quotedprintable.Reader*reflect.funcTypeFixed4*reflect.funcTypeFixed8*reflectlite.ValueError*route.InterfaceMessage*route.InterfaceMetrics*runtime.lockRankStruct*sync.poolLocalInternal*tls.ClientSessionCache*tls.ClientSessionState*tls.serverHelloDoneMsgAddASN1ObjectIdentifierAddUint16LengthPrefixedAddUint24LengthPrefixedAddUint32LengthPrefixedFindReaderSubmatchIndexFindStringSubmatchIndexPermittedEmailAddressesRawSubjectPublicKeyInfoReplaceAllLiteralStringcanTakeNewRequestLockedconnectMethodForRequestisBoundaryDelimiterLineparseContentDispositionselectedIdentityPresentshouldSendContentLengthsmartDoubleQuoteVariantverifyServerCertificategithub.com/urfave/cli/v2*[16384]flate.tableEntry*[2]http.socksAuthMethod*[]*http.http2ClientConn*[]*multipart.FileHeader*[][][]*x509.Certificate*[]asn1.ObjectIdentifier*[]http.connectMethodKey*[]http.http2frameParser*[]runtime.stackfreelist*blackfriday.HeadingData*blackfriday.NodeVisitor*chan net.ipLookupResult*cipher.AesContentCipher*cli.CommandNotFoundFunc*dnsmessage.AAAAResource*flate.CorruptInputError*func() ([]uint8, error)*func() (float64, error)*func() (jwk.Key, error)*func() (jwk.Set, error)*func() *base64.Encoding*func() *reflect.MapIter*func() <-chan struct {}*func() []*jws.Signature*func() crypto.PublicKey*func() jwa.KeyAlgorithm*func() pkix.RDNSequence*func() reflectlite.Kind*func() reflectlite.Type*func(*big.Int) *big.Int*func(*blackfriday.Node)*func(*flate.compressor)*func(*pkix.RDNSequence)*func(*url.URL) *url.URL*func(*x509.Certificate)*func([]uint8) [][]uint8*func([]uint8) hash.Hash*func([]uint8, []uint32)*func(fs.FileMode) error*func(hpack.HeaderField)*func(int) reflect.Value*func(int32, int32) bool*func(jwe.Headers) error*func(net.IPMask) net.IP*func(reflect.Type) bool*func(string) *flag.Flag*func(string) *time.Time*hpack.InvalidIndexError*http.erringRoundTripper*http.http2PriorityFrame*http.http2PriorityParam*http.http2SettingsFrame*http.http2serverMessage*http.unsupportedTEError*json.DecodeCtxContainer*json.UnmarshalTypeError*jwa.InvalidKeyAlgorithm*jwe.messageMarshalProxy*keyenc.RSAPKCS15Decrypt*keygen.ByteWithIVAndTag*map.bucket[string][]int*map.bucket[string]int32*map.bucket[string]int64*map.bucket[uint32]int32*map[crypto.Hash][]uint8*map[string]interface {}*map[string]reflect.Type*net.UnknownNetworkError*pkix.RevokedCertificate*pkix.TBSCertificateList*reflect.funcTypeFixed16*reflect.funcTypeFixed32*reflect.funcTypeFixed64*runtime.boundsErrorCode*runtime.persistentAlloc*strings.genericReplacer*syscall.RawSockaddrUnix*template.missingValType*textproto.ProtocolError*tls.certificateMsgTLS13*tls.newSessionTicketMsg*x509.PublicKeyAlgorithm*x509.SignatureAlgorithmCriticalasn1:"optional"Idasn1:"optional,tag:0"IsHTTP2NoCachedConnErrorPreferServerCipherSuitesTagjson:"tag,omitempty"hashForClientCertificateonceSetNextProtoDefaultsprobablyPrimeMillerRabinprocessClientKeyExchangeprocessServerKeyExchange*[10]runtime.heldLockInfo*[4]runtime.stackfreelist*[8]*http.http2ClientConn*[8][][]*x509.Certificate*[8]http.connectMethodKey*[8]http.http2frameParser*[]*blackfriday.reference*[]*http.http2addConnCall*[]cipher.gcmFieldElement*[]json.reflectWithString*[]jwa.SignatureAlgorithm*base64.CorruptInputError*blackfriday.HTMLRenderer*blackfriday.inlineParser*chan *httprc.fetchResult*chan http.requestAndChan*chan singleflight.Result*encoding.TextUnmarshaler*func() (*os.File, error)*func() (*url.URL, error)*func() (time.Time, bool)*func() map[string]string*func(*cli.Context) error*func(int) reflect.Method*func(int, string) string*func(int32) (int, error)*func(interface {}) error*func(io.RuneReader) bool*func(io.Writer, []uint8)*func(reflect.Value) bool*func(string, bool) error*func(time.Duration) bool*http.finishAsyncByteRead*http.http2ClientConnPool*http.http2RSTStreamFrame*http.http2clientConnPool*http.nothingWrittenError*http.readWriteCloserBody*jwa.CompressionAlgorithm*jwe.EncryptDecryptOption*jwe.encryptDecryptOption*jws.identDetachedPayload*map.bucket[string]string*map.bucket[string]uint64*map[int32]unsafe.Pointer*map[string]reflect.Value*map[unsafe.Pointer]int32*pkix.AlgorithmIdentifier*reflect.funcTypeFixed128*reflectlite.uncommonType*route.binaryLittleEndian*runtime.gcMarkWorkerMode*syscall.RawSockaddrInet4*syscall.RawSockaddrInet6*syscall.SockaddrDatalink*tls.RenegotiationSupport*tls.certificateStatusMsg*tls.certificateVerifyMsg*tls.clientKeyExchangeMsg*tls.serverKeyExchangeMsgIsInterfaceLocalMulticastMGFasn1:"explicit,tag:1"MaxConstraintComparisionsgenerateClientKeyExchangegenerateServerKeyExchangeparseInterfaceAddrMessagecrypto/x509/internal/macos*[8]*blackfriday.reference*[8]*http.http2addConnCall*[8]jwa.SignatureAlgorithm*[]*http.http2clientStream*[][]*http.http2ClientConn*[][]*multipart.FileHeader*[]map[string]interface {}*[]pkix.RevokedCertificate*blackfriday.CodeBlockData*blackfriday.TableCellData*blackfriday.smartCallback*chan *httprc.fetchRequest*chan net.portLookupResult*dnsmessage.ResourceHeader*edwards25519.incomparable*elliptic.p224FieldElement*func() *reflectlite.rtype*func() flag.ErrorHandling*func(*flag.FlagSet) error*func(*flate.decompressor)*func(*regexp.Regexp) bool*func([]big.Word) *big.Int*func([]int) reflect.Value*func(func(uintptr)) error*func(int) ([]uint8, bool)*func(int) (jwk.Key, bool)*func(int) regexp.lazyFlag*func(int, func(int, int))*func(int, int, int) error*func(io.RuneReader) []int*func(keygen.Setter) error*func(string) (int, error)*func(string) *cli.Command*func(string) interface {}*func(string) net.sockaddr*func(string, int) [][]int*func(time.Duration) error*http.http2ConnectionError*http.http2stickyErrWriter*http.requestBodyReadError*json.UnsupportedTypeError*jwe.identProtectedHeaders*jwe.recipientMarshalProxy*jwk.identIgnoreParseError*jws.identProtectedHeaders*jws.messageUnmarshalProbe*map[http.ConnState]string*map[int]*route.wireFormat*map[jwa.KeyType]struct {}*map[string][]*http.Cookie*map[string]map[string]int*map[string]parse.itemType*runtime.sliceInterfacePtr*strings.appendSliceWriter*template.missingKeyAction*tls.certificateRequestMsg Extensionsasn1:"optional"FindAllStringSubmatchIndexFootnoteReturnLinkContentsHashasn1:"explicit,tag:0"NegotiatedProtocolIsMutual NextUpdateasn1:"optional" Parametersasn1:"optional"StrictMaxConcurrentStreamshandlePostHandshakeMessage*[16]cipher.gcmFieldElement*[2]map[string]interface {}*[8]*http.http2clientStream*[8][]*http.http2ClientConn*[8][]*multipart.FileHeader*[][]jwa.SignatureAlgorithm*[]blackfriday.inlineParser*[]jwa.CompressionAlgorithm*asn1.invalidUnmarshalError*blackfriday.CellAlignFlags*chan http.responseAndError*chan<- singleflight.Result*cli.fishCompletionTemplate*func() (int32, int, error)*func() (json.Token, error)*func() (jws.Signer, error)*func() []hpack.HeaderField*func() tls.ConnectionState*func(*rsa.PublicKey) error*func([]uint8) (int, error)*func([]uint8) *jws.Message*func([]uint8, int) [][]int*func([]uint8, int) []uint8*func(bool, [8]uint8) error*func(context.Context) bool*func(http.http2Flags) bool*func(int) ([]uint8, error)*func(int) reflectlite.Type*func(string) reflect.Value*func(string) time.Duration*func(string, *cli.Command)*func(string, int) []string*func(string, interface {})*func(string, string) error*func(uint32, uint32) error*http.http2MetaHeadersFrame*http.http2PushPromiseFrame*http.http2PushPromiseParam*http.http2connectionStater*http.socksUsernamePassword*httptrace.WroteRequestInfo*json.InvalidUnmarshalError*json.UnsupportedValueError*jwa.EllipticCurveAlgorithm*jwa.KeyEncryptionAlgorithm*keygen.ByteWithECPublicKey*map.bucket[string][2]int32*map.bucket[string][]string*map[dnsmessage.Type]string*map[http.http2Flags]string*map[interface {}]struct {}*map[string][]net.nssSource*net._Ctype_struct_addrinfo*net._Ctype_struct_sockaddr*pkix.AttributeTypeAndValue*poll.DeadlineExceededError*route.InterfaceAddrMessage*rsa.PKCS1v15DecryptOptions*runtime.TypeAssertionError*runtime.errorAddressString*runtime.gcBgMarkWorkerNode*runtime.stringInterfacePtr*runtime.uint16InterfacePtr*runtime.uint32InterfacePtr*runtime.uint64InterfacePtr*strings.byteStringReplacer*tls.CertificateRequestInfo*tls.encryptedExtensionsMsg*x509.UnknownAuthorityErrorDynamicRecordSizingDisabledPermittedDNSDomainsCriticalSetMaxDynamicTableSizeLimitSignedCertificateTimestampsUnhandledCriticalExtensionsVarTimeDoubleScalarBaseMultparseDynamicTableSizeUpdatewriteFishCompletionTemplatevendor/golang.org/x/net/idna**net._Ctype_struct_addrinfo*[8][]jwa.SignatureAlgorithm*[8]jwa.CompressionAlgorithm*[]blackfriday.smartCallback*func() (fs.FileInfo, error)*func() (int, string, error)*func() jwk.KeyOperationList*func(*http.http2ClientConn)*func(*rsa.PrivateKey) error*func(*syscall.Stat_t) error*func([]uint8) cipher.Stream*func([]uint8, []uint8) bool*func(context.Context) error*func(crypto.PublicKey) bool*func(httptrace.DNSDoneInfo)*func(httptrace.GotConnInfo)*func(int) ([]string, error)*func(int) http.http2Setting*func(int, int, uint8) error*func(int64, int64) *big.Int*func(interface {}, uintptr)*func(reflectlite.Type) bool*func(string) (string, bool)*func(string, string) string*func(string, string, error)*func(uint8) (string, error)*http.http2ContinuationFrame*http.http2HeadersFrameParam*http.http2WindowUpdateFrame*http.http2noCachedConnError*http.http2pseudoHeaderError*jws.signatureUnmarshalProbe*keygen.ByteWithSaltAndCount*map.bucket[int32]bidi.Class*map.bucket[reflect.Type]int*map.bucket[string]struct {}*map.bucket[tls.alert]string*map.bucket[x509.sum224]bool*map[*reflect.structType]int*map[[8]uint8]chan struct {}*map[dnsmessage.Class]string*map[dnsmessage.RCode]string*map[string]*tls.Certificate*map[string]syntax.charGroup*map[uint32][]*runtime._type*multipart.sectionReadCloser*multipart.stickyErrorReader*syscall.RawSockaddrDatalink*x509.InsecureAlgorithmError CipherTextjson:"ciphertext"SupportedSignatureAlgorithmsawaitOpenSlotForStreamLockeddecrStreamReservationsLockedsecureRenegotiationSupportedshouldSendChunkedRequestBodysupportedSignatureAlgorithmscrypto/elliptic/internal/fiatgithub.com/lestrrat-go/httprcgithub.com/lestrrat-go/optionvendor/golang.org/x/net/route*[]chan<- singleflight.Result*[]jwa.EllipticCurveAlgorithm*[]jwa.KeyEncryptionAlgorithm*[]map[http.http2Flags]string*[]pkix.AttributeTypeAndValue*func() (jws.Verifier, error)*func() (reflect.Value, bool)*func() *elliptic.CurveParams*func() *reflect.uncommonType*func() []cli.CommandCategory*func() http.http2FrameHeader*func(*ecdsa.PublicKey) error*func(*tls.Certificate) error*func(*x509.Certificate) bool*func(...interface {}) string*func([]uint8) *jws.Signature*func([]uint8, int) [][]uint8*func(crypto.PrivateKey) bool*func(httptrace.DNSStartInfo)*func(int, int) reflect.Value*func(int32) *base64.Encoding*func(string) (jwk.Key, bool)*func(string, int) [][]string*func(uint8) ([]uint8, error)*http.http2erringRoundTripper*interface { Is(error) bool }*interface { Timeout() bool }*interface { Unwrap() error }*jwe.identPerRecipientHeaders*macOS.SecTrustSettingsDomain*macOS.SecTrustSettingsResult*map.bucket[reflect.Type]bool*map.bucket[string]*flag.Flag*map[*reflect.structType]bool*map[http.http2ErrCode]string*map[http.http2SettingID]bool*map[interface {}]*sync.entry*map[reflect.Type]jwa.KeyType*map[string]http.RoundTripper*map[string]map[string]string*strings.singleStringReplacer*syscall.SocketControlMessage*tls.newSessionTicketMsgTLS13*x509.CertificateInvalidError*x509.pkcs1AdditionalRSAPrimeSetAllowedMaxDynamicTableSize*[1]chan<- singleflight.Result*[1]pkix.AttributeTypeAndValue*[256]blackfriday.inlineParser*[8]jwa.EllipticCurveAlgorithm*[8]jwa.KeyEncryptionAlgorithm*[8]map[http.http2Flags]string*context.deadlineExceededError*func() (*flag.FlagSet, error)*func() ([]uint8, bool, error)*func() (int, time.Month, int)*func() (io.ReadCloser, error)*func() (string, string, bool)*func() blackfriday.Extensions*func() jwa.SignatureAlgorithm*func(*big.Int, *big.Int) bool*func(*big.Int, uint) *big.Int*func(*ecdsa.PrivateKey) error*func(*regexp.Regexp, int) int*func(*url.URL) []*http.Cookie*func(*x509.Certificate) error*func([]string, string) string*func([]uint8, string) []uint8*func(blackfriday.NodeVisitor)*func(func(hpack.HeaderField))*func(hpack.HeaderField) error*func(http.http2Setting) error*func(int) reflect.StructField*func(int, int, int) time.Time*func(jws.Headers) jws.Headers*func(string) ([]uint8, error)*func(string) (fs.File, error)*func(string) []*jws.Signature*func(string, ...interface {})*func(time.Duration) time.Time*func(time.Time) time.Duration*func(uint16) tls.keyAgreement*http.tlsHandshakeTimeoutError*map.bucket[reflect.visit]bool*map.bucket[string]*parse.Tree*map[crypto.Hash]asn1.RawValue*map[dnsmessage.section]string*map[http.connectMethodKey]int*map[string]*singleflight.call*map[string]*template.Template*x509.ConstraintViolationErrorHeaderjson:"header,omitempty"vendor/golang.org/x/crypto/hkdf*[256]blackfriday.smartCallback*[]x509.pkcs1AdditionalRSAPrime*func() (multipart.File, error)*func() map[string]interface {}*func(*json.scanner, uint8) int*func(*norm.reorderBuffer) bool*func(*time.Location) time.Time*func(*url.URL, []*http.Cookie)*func([]uint8) ([]uint8, error)*func([]uint8) cipher.BlockMode*func([]uint8, []uint8) []uint8*func([]uint8, int) [][][]uint8*func(func(uintptr) bool) error*func(int, int, [4]uint8) error*func(io.Reader) (int64, error)*func(io.Reader, []uint8) error*func(io.Writer) (int64, error)*func(string) (*url.URL, error)*func(string, int, string) *int*http.http2headerFieldNameError*http.http2noDialClientConnPool*http.http2noDialH2RoundTripper*httprc.identFetcherWorkerCount*interface { Temporary() bool }*internal.FlushAfterChunkWriter*jwa.ContentEncryptionAlgorithm*jwe.identMergeProtectedHeaders*jws.identInferAlgorithmFromKey*map.bucket[crypto.Hash][]uint8*map.bucket[string]interface {}*map.bucket[string]reflect.Type*map[context.canceler]struct {}*map[hpack.pairNameValue]uint64*map[http.cancelKey]func(error)*map[http.http2FrameType]string*map[http.http2SettingID]string*map[net.hostLookupOrder]string*map[string]*http.http2dialCall*map[string]*unicode.RangeTable*tls.certificateRequestMsgTLS13Headersjson:"header,omitempty" *func() (*multipart.Part, error) *func() (http.http2Frame, error) *func() (syscall.RawConn, error) *func() (uintptr, string, error) *func() jwa.CompressionAlgorithm *func(*[][]uint8) (int64, error) *func(*int, string, int, string) *func([]int) reflect.StructField *func([]uint8, []uint8) tls.aead *func(int64, int) (int64, error) *func(interface {}) interface {} *func(string, http.RoundTripper) *func(tls.ConnectionState) error *http.http2headerFieldValueError *http.http2headersOrContinuation *http.http2transportResponseBody *httptrace.clientEventContextKey *map.bucket[int32]unsafe.Pointer *map.bucket[string]reflect.Value *map.bucket[unsafe.Pointer]int32 *map[runtime._typePair]struct {} *nettrace.LookupIPAltResolverKey *struct { F uintptr; is []int8 } *struct { F uintptr; pa string } *struct { io.Reader; io.Closer } *struct { ptr uintptr; len int } *x509.UnhandledCriticalExtension SaltLengthasn1:"explicit,tag:2" supportedSignatureAlgorithmsCert!github.com/lestrrat-go/jwx/v2/jwa!github.com/lestrrat-go/jwx/v2/jwe!github.com/lestrrat-go/jwx/v2/jwk!github.com/lestrrat-go/jwx/v2/jws!*[]jwa.ContentEncryptionAlgorithm!*func() *reflectlite.uncommonType!*func(*list.Element) interface {}!*func(...http.http2Setting) error!*func(asn1.ObjectIdentifier) bool!*func(flag.Value, string, string)!*func(fmt.ScanState, int32) error!*func(httptrace.WroteRequestInfo)!*func(int) ([]fs.DirEntry, error)!*func(int) ([]fs.FileInfo, error)!*func(interface {}) *list.Element!*func(jws.Headers) *jws.Signature!*func(reflect.Type) reflect.Value!*func(reflect.Value) (int, error)!*func(string, bool, string) *bool!*func(string, flag.ErrorHandling)!*func(string, interface {}) error!*func(string, uint, string) *uint!*func(tls.ConnectionState, error)!*map.bucket[http.ConnState]string!*map.bucket[int]*route.wireFormat!*map.bucket[jwa.KeyType]struct {}!*map.bucket[string][]*http.Cookie!*map.bucket[string]map[string]int!*map.bucket[string]parse.itemType!*struct { F uintptr; is []int16 }!*struct { F uintptr; is []int32 }!*struct { F uintptr; is []int64 } EncryptedKeyjson:"encrypted_key"ProtectedHeadersjson:"protected"Versionasn1:"optional,default:0"!initLegacySessionTicketKeyRLocked"github.com/lestrrat-go/jwx/v2/cert"github.com/russross/blackfriday/v2"*[8]jwa.ContentEncryptionAlgorithm"*blackfriday.ReferenceOverrideFunc"*chacha20poly1305.chacha20poly1305"*func() (*multipart.Reader, error)"*func() (*x509.Certificate, error)"*func() (keygen.ByteSource, error)"*func() jwa.EllipticCurveAlgorithm"*func() jwa.KeyEncryptionAlgorithm"*func(*big.Int, *big.Int) *big.Int"*func(*bool, string, bool, string)"*func(*jws.Signature) *jws.Message"*func(*pkix.CertificateList) error"*func(*uint, string, uint, string)"*func([]interface {}, bool, error)"*func([]uint8, int64) (int, error)"*func(int, int, int) reflect.Value"*func(parse.Node) (string, string)"*func(reflect.Value) reflect.Value"*func(string) (interface {}, bool)"*func(string, string, net.IP) bool"*func(time.Duration) time.Duration"*func(uint32, bool, []uint8) error"*http.transportReadFromServerError"*map.bucket[dnsmessage.Type]string"*map.bucket[http.http2Flags]string"*map.bucket[interface {}]struct {}"*map.bucket[string][]net.nssSource"*map[string]*blackfriday.reference"*map[string]*http.http2addConnCall"*pkix.RelativeDistinguishedNameSET"*struct { F uintptr; R *tls.Conn }"*struct { F uintptr; buf []uint8 }"*struct { F uintptr; key jwk.Key }"*struct { F uintptr; ss []string }"*struct { R *big.Int; S *big.Int }"*struct { runtime.gList; n int32 }"parseInterfaceMulticastAddrMessage#github.com/lestrrat-go/iter/mapiter#vendor/golang.org/x/net/http2/hpack#*blackfriday.HTMLRendererParameters#*func(*big.Int, int, uint) *big.Int#*func(*list.Element, *list.Element)#*func([]uint8) (*big.Int, *big.Int)#*func([]uint8) (cipher.AEAD, error)#*func(crypto.Hash) ([]uint8, error)#*func(io.Writer, *blackfriday.Node)#*func(reflect.Value, reflect.Value)#*func(string) (*http.Cookie, error)#*func(string, int) (*big.Int, bool)#*func(string, int64, string) *int64#*http.http2clientConnPoolIdleCloser#*map.bucket[*reflect.structType]int#*map.bucket[[8]uint8]chan struct {}#*map.bucket[dnsmessage.Class]string#*map.bucket[dnsmessage.RCode]string#*map.bucket[string]*tls.Certificate#*map.bucket[string]syntax.charGroup#*map.bucket[uint32][]*runtime._type#*map[*http.http2ClientConn][]string#*map[runtime.typeOff]*runtime._type#*map[string][]*http.http2ClientConn#*map[string][]*multipart.FileHeader#*map[uint32]*http.http2clientStreamRevokedCertificatesasn1:"optional"$crypto/ed25519/internal/edwards25519$github.com/lestrrat-go/jwx/v2/x25519$*func(*int64, string, int64, string)$*func(*rand.Rand, *big.Int) *big.Int$*func([]uint8, []uint8) (int, error)$*func(context.Context) *http.Request$*func(int) (syscall.Sockaddr, error)$*func(int, int) (cipher.AEAD, error)$*func(string) (reflect.Method, bool)$*jwe.identContentEncryptionAlgorithm$*map.bucket[*reflect.structType]bool$*map.bucket[http.http2ErrCode]string$*map.bucket[http.http2SettingID]bool$*map.bucket[interface {}]*sync.entry$*map.bucket[reflect.Type]jwa.KeyType$*map.bucket[string]http.RoundTripper$*map.bucket[string]map[string]string$*map[*http.persistConn]*list.Element$*route.InterfaceMulticastAddrMessage$*struct { F uintptr; R *net.Dialer }$*struct { F uintptr; cutset string } Protectedjson:"protected,omitempty" Signaturejson:"signature,omitempty"%github.com/lestrrat-go/iter/arrayiter%vendor/golang.org/x/crypto/cryptobyte%vendor/golang.org/x/text/unicode/bidi%vendor/golang.org/x/text/unicode/norm%*func(*flate.compressor, []uint8) int%*func([]uint8) (int, net.Addr, error)%*func([]uint8, net.Addr) (int, error)%*func(int64) (*multipart.Form, error)%*func(io.Writer, string) (int, error)%*func(string) (*http.Response, error)%*func(string, ...interface {}) string%*func(string, string, string) *string%*func(string, uint64, string) *uint64%*http.http2duplicatePseudoHeaderError%*map.bucket[crypto.Hash]asn1.RawValue%*map.bucket[dnsmessage.section]string%*map.bucket[http.connectMethodKey]int%*map.bucket[string]*singleflight.call%*map.bucket[string]*template.Template%*map[jwa.SignatureAlgorithm]struct {}&vendor/golang.org/x/net/dns/dnsmessage&vendor/golang.org/x/net/http/httpproxy&*func() jwa.ContentEncryptionAlgorithm&*func(*http.Request) (*url.URL, error)&*func(*runtime.g, unsafe.Pointer) bool&*func(*string, string, string, string)&*func(*uint64, string, uint64, string)&*func([]reflect.Value) []reflect.Value&*func(context.Context, []string) error&*func(func(string) bool) reflect.Value&*func(int, int, *syscall.IPMreq) error&*func(int, int, *syscall.Linger) error&*func(int, textproto.MIMEHeader) error&*func(interface {}, interface {}) bool&*func(parse.Pos) *parse.IdentifierNode&*func(string, *tls.ClientSessionState)&*func(uint32, http.http2ErrCode) error&*func(unsafe.Pointer, uintptr) uintptr&*interface { jws.rawBuffer() []uint8 }&*map.bucket[context.canceler]struct {}&*map.bucket[hpack.pairNameValue]uint64&*map.bucket[http.cancelKey]func(error)&*map.bucket[http.http2FrameType]string&*map.bucket[http.http2SettingID]string&*map.bucket[net.hostLookupOrder]string&*map.bucket[string]*http.http2dialCall&*map.bucket[string]*unicode.RangeTable&*map[jwa.SignatureAlgorithm]jws.Signer&*struct { F uintptr; R *flag.FlagSet }&*struct { F uintptr; R *net.Resolver }&*struct { F uintptr; errc chan error }&*struct { F uintptr; names *[]string }&*struct { Hash crypto.Hash; PSS bool }AuthenticatedDatajson:"aad,omitempty" Recipientsjson:"recipients,omitempty" Signaturesjson:"signatures,omitempty"'github.com/cpuguy83/go-md2man/v2/md2man'*func(context.Context) mapiter.Iterator'*func(http.http2PushPromiseParam) error'*func(interface {}, interface {}) error'*func(io.Writer, map[string]bool) error'*func(string, float64, string) *float64'*func(string, string) (net.Conn, error)'*map.bucket[runtime._typePair]struct {}'*map[jwa.CompressionAlgorithm]struct {}'*map[jwa.SignatureAlgorithm]crypto.Hash'*struct { F uintptr; cmd *cli.Command }'*struct { F uintptr; x *reflect.rtype }(*[]struct { Hash crypto.Hash; PSS bool }(*func(*float64, string, float64, string)(*func(*parse.Tree) *parse.IdentifierNode(*func([]uint8) (int, *net.IPAddr, error)(*func([]uint8, *net.IPAddr) (int, error)(*func(http.http2HeadersFrameParam) error(*func(int, int, *syscall.IPv6Mreq) error(*struct { F uintptr; R json.mapEncoder }(*struct { F uintptr; R json.ptrEncoder }(*struct { F uintptr; bp *int; s string }InitializationVectorjson:"iv,omitempty" PublicKeyasn1:"optional,explicit,tag:1")*[8]struct { Hash crypto.Hash; PSS bool })*func([]uint8) (int, *net.UDPAddr, error))*func([]uint8) (keygen.ByteSource, error))*func([]uint8, *net.UDPAddr) (int, error))*func([]uint8, []uint8, []uint8, []uint8))*func(context.Context) arrayiter.Iterator)*func(context.Context, jwe.Headers) error)*func(context.Context, jws.Headers) error)*func(http.http2SettingID) (uint32, bool))*func(string) (reflect.StructField, bool))*func(string, func(string) string) string)*func(string, string, func(string) error))*interface { IsHTTP2NoCachedConnError() })*map.bucket[string]*blackfriday.reference)*map.bucket[string]*http.http2addConnCall)*map[jwa.EllipticCurveAlgorithm]struct {})*map[jwa.KeyEncryptionAlgorithm]struct {})*map[jwa.KeyType][]jwa.SignatureAlgorithm)*struct { F uintptr; R *http.atomicBool })*struct { F uintptr; as *bytes.asciiSet })*struct { F uintptr; cancelc chan error })*struct { F uintptr; deadline time.Time })*struct { F uintptr; h func() hash.Hash } Extensionsasn1:"tag:0,optional,explicit"*crypto/ed25519/internal/edwards25519/field*vendor/golang.org/x/crypto/cryptobyte/asn1**func([]uint8) (int, *net.UnixAddr, error)**func([]uint8, *net.UnixAddr) (int, error)**func([]uint8, []uint8, bool) interface {}**func(func(http.http2Setting) error) error**func(string, *tls.Conn) http.RoundTripper**func(unsafe.Pointer, unsafe.Pointer) bool**map.bucket[*http.http2ClientConn][]string**map.bucket[runtime.typeOff]*runtime._type**map.bucket[string][]*http.http2ClientConn**map.bucket[string][]*multipart.FileHeader**map.bucket[uint32]*http.http2clientStream**map[jwa.SignatureAlgorithm]*jws.rsaSigner**struct { F uintptr; R *http.persistConn }**struct { F uintptr; R *httpproxy.config }**struct { F uintptr; R *route.wireFormat }**struct { F uintptr; R json.arrayEncoder }**struct { F uintptr; R json.floatEncoder }**struct { F uintptr; R json.sliceEncoder }**struct { F uintptr; c *context.timerCtx }**struct { F uintptr; ps []unsafe.Pointer }**struct { sync.Once; v *x509.Certificate }AdditionalPrimesasn1:"optional,omitempty"+github.com/lestrrat-go/jwx/v2/internal/iter+github.com/lestrrat-go/jwx/v2/internal/json+vendor/golang.org/x/crypto/chacha20poly1305+*func(*http.Request, []*http.Request) error+*func([]uint8) ([]hpack.HeaderField, error)+*func([]uint8, []uint8, interface {}) error+*func(context.Context) (jwe.Headers, error)+*func(jwa.SignatureAlgorithm, interface {})+*func(uint32, bool, []uint8, []uint8) error+*map.bucket[*http.persistConn]*list.Element+*struct { F uintptr; R json.structEncoder }+*struct { F uintptr; as *strings.asciiSet }+*struct { F uintptr; c *context.cancelCtx }+*struct { F uintptr; fr *http.http2Framer } EncryptedKeyjson:"encrypted_key,omitempty",*[]func(string, *tls.Conn) http.RoundTripper,*func(*big.Int, *big.Int, *big.Int) *big.Int,*func(*http.Request) (*http.Response, error),*func(string, []uint8, int) ([]uint8, error),*func(string, string, syscall.RawConn) error,*func(uint32, http.http2PriorityParam) error,*map.bucket[jwa.SignatureAlgorithm]struct {},*map[*x509.Certificate][][]*x509.Certificate,*map[jwa.SignatureAlgorithm]*jws.ecdsaSigner,*map[jwa.SignatureAlgorithm]*jws.rsaVerifier,*map[jwa.SignatureAlgorithm]func() hash.Hash,*map[jwa.SignatureAlgorithm]jws.hmacSignFunc,*struct { F uintptr; snapshot bytes.Reader },*struct { len int; buf [128]*runtime.mspan } NamedCurveOIDasn1:"optional,explicit,tag:0"-*[8]func(string, *tls.Conn) http.RoundTripper-*func([][]uint8, [][]*x509.Certificate) error-*func([]uint8) (int, syscall.Sockaddr, error)-*func([]uint8, func([]uint8) []uint8) []uint8-*func([]uint8, interface {}) ([]uint8, error)-*func([]uint8, string, string, []int) []uint8-*func([]uint8, syscall.Sockaddr) (int, error)-*func(context.Context, iter.MapVisitor) error-*func(string) (*tls.ClientSessionState, bool)-*map.bucket[jwa.SignatureAlgorithm]jws.Signer-*map[http.connectMethodKey]http.wantConnQueue-*map[jwa.ContentEncryptionAlgorithm]struct {}-*map[jwa.SignatureAlgorithm]jws.SignerFactory-*struct { F uintptr; R json.condAddrEncoder }-*struct { F uintptr; cert *x509.Certificate }-*struct { F uintptr; crvnames *bytes.Buffer }-*struct { F uintptr; hfunc func() hash.Hash }-*struct { F uintptr; r blackfriday.Renderer }.*func() (int, syscall.Sockaddr, string, error).*func(*big.Int, *big.Int) (*big.Int, *big.Int).*func(bool, func(int32) bool) ([]uint8, error).*func(net.Conn) (*http.http2ClientConn, error).*interface { jwk.makePairs() []*mapiter.Pair }.*map.bucket[jwa.CompressionAlgorithm]struct {}.*map.bucket[jwa.SignatureAlgorithm]crypto.Hash.*map[elliptic.Curve]jwa.EllipticCurveAlgorithm.*map[http.connectMethodKey][]*http.persistConn.*map[http.http2FrameType]http.http2frameParser.*map[jwa.EllipticCurveAlgorithm]elliptic.Curve.*map[jwa.SignatureAlgorithm]*jws.ecdsaVerifier.*struct { F uintptr; R *http.http2ClientConn }.*struct { F uintptr; hf *[]hpack.HeaderField }.*struct { F uintptr; snapshot strings.Reader }.*struct { F uintptr; visitor iter.MapVisitor }/*func([]uint8, []uint8, []uint8, []int) []uint8/*func(jwa.KeyEncryptionAlgorithm, interface {})/*func(uint32, http.http2ErrCode, []uint8) error/*map[jwa.SignatureAlgorithm]jws.VerifierFactory/*struct { F uintptr; e blackfriday.Extensions }UnprotectedHeadersjson:"unprotected,omitempty"0*func(*tls.ClientHelloInfo) (*tls.Config, error)0*func(interface {}, *list.Element) *list.Element0*map.bucket[jwa.EllipticCurveAlgorithm]struct {}0*map.bucket[jwa.KeyEncryptionAlgorithm]struct {}0*map.bucket[jwa.KeyType][]jwa.SignatureAlgorithm0*struct { F uintptr; R *blackfriday.SPRenderer }0*struct { F uintptr; R *http.http2clientStream }0*struct { F uintptr; hashFunc func() hash.Hash }1github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc1github.com/lestrrat-go/jwx/v2/jwe/internal/cipher1github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc1github.com/lestrrat-go/jwx/v2/jwe/internal/keygen1*func() (unsafe.Pointer, syscall._Socklen, error)1*func([]uint8, []uint8, []uint8) ([]uint8, error)1*func([]uint8, []uint8, []uint8, []uint8) []uint81*func(reflect.Value, reflect.Value) (bool, error)1*func(string, url.Values) (*http.Response, error)1*map.bucket[jwa.SignatureAlgorithm]*jws.rsaSigner1*struct { F uintptr; alg jwa.SignatureAlgorithm }2*func(*json.Decoder, string) (interface {}, error)3*func(string, time.Duration, string) *time.Duration3*map.bucket[*x509.Certificate][][]*x509.Certificate3*map.bucket[jwa.SignatureAlgorithm]*jws.ecdsaSigner3*map.bucket[jwa.SignatureAlgorithm]*jws.rsaVerifier3*map.bucket[jwa.SignatureAlgorithm]func() hash.Hash3*map.bucket[jwa.SignatureAlgorithm]jws.hmacSignFunc3*map[http.http2FrameType]map[http.http2Flags]string4github.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf4*func(*time.Duration, string, time.Duration, string)4*func(func(string) bool) (reflect.StructField, bool)4*func(reflect.Value, ...reflect.Value) (bool, error)4*func(reflect.Value, ...reflect.Value) reflect.Value4*func(route.RIBType, []uint8) (route.Message, error)4*func(string, string, *tls.Config) (net.Conn, error)4*map.bucket[http.connectMethodKey]http.wantConnQueue4*map.bucket[jwa.ContentEncryptionAlgorithm]struct {}4*map.bucket[jwa.SignatureAlgorithm]jws.SignerFactory4*struct { F uintptr; R *http.socksUsernamePassword }5*func(*tls.ClientHelloInfo) (*tls.Certificate, error)5*map.bucket[elliptic.Curve]jwa.EllipticCurveAlgorithm5*map.bucket[http.connectMethodKey][]*http.persistConn5*map.bucket[http.http2FrameType]http.http2frameParser5*map.bucket[jwa.EllipticCurveAlgorithm]elliptic.Curve5*map.bucket[jwa.SignatureAlgorithm]*jws.ecdsaVerifier5*map[string]func(string, *tls.Conn) http.RoundTripper TrailerField(asn1:"optional,explicit,tag:3,default:1"JQ ^6~Gp@=Et6~Gp@=@DG6~Gp@=tI?"g6~Gp@=`F2x6~Gp@=2m@u6~Gp@=y@X6~Gp@=A@6~Gp@=ֻ?@6~Gp@=T`?KW6~Gp@=?aO6~Gp@=T ?1R6~Gp@=?\~m#6~Gp@=J2`@,N6~Gp@=T2@p6~Gp@=  @"v6~Gp@=A`@Źt6~Gp@=f`@i6~Gp@=^2`@N s 6~Gp@=&@ n6~Gp@= @.6~Gp@=S@+#6~Gp@=%g$@jz6~Gp@=TT$@Kh6~Gp@=uB(>6~Gp@=GBg%6~Gp@=!uEc6~Gp@=WCeP6~Gp@=@XCF;6~Gp@=4y +E!z6~Gp@=P`B 6~Gp@=vB'6~Gp@=HB׭ʹ6~Gp@=/vB{R)6~Gp@=  A16~Gp@=HAf6~Gp@=BAIo6~Gp@=wB5~6~Gp@=\HB6~Gp@=8xB#6~Gp@=q`Bzn6~Gp@=wBu46~Gp@=@IBB6~Gp@=f D6~Gp@=IBJv6~Gp@=JB'G6~Gp@= JBhg6~Gp@=KB:'6~Gp@=]!`[CEo6~Gp@=D/j6~Gp@=\C56~Gp@=KBuF6~Gp@=LBTI6~Gp@=; ACG6~Gp@=\C|͸6~Gp@=$;An6~Gp@=VxB:Re6~Gp@=D6~Gp@=@]CFZ6~Gp@=G`Bjߎ6~Gp@=h`D &6~Gp@=&xB 6~Gp@='AFaH6~Gp@=;8@%@*6~Gp@=XBCC?)T6~Gp@=V{BE6~Gp@=8E5~6~Gp@=baC j[6~Gp@=2B[6~Gp@=yyB&6~Gp@=`BcD6~Gp@=mcC"U.6~Gp@=\fCf$c6~Gp@=`D$ 6~Gp@=v%@PG6~Gp@=%@%a(6~Gp@=&@8{6~Gp@=zE Y6~Gp@=XB6~Gp@= D6~Gp@=hC#6~Gp@=U`Dq6~Gp@=`F.$6~Gp@= iCR6~Gp@=-i D=6~Gp@=iCw6~Gp@=DI6~Gp@= D!Q6~Gp@=`jC]06~Gp@=d{A 6~Gp@=T@&@6~Gp@=1T&@9_6~Gp@=c7kCR6~Gp@=FkC}o6~Gp@='`DBf6~Gp@=o@!6~Gp@=/ D_:6~Gp@=/EF_l6~Gp@=!LB .܌6~Gp@=94MB[6~Gp@=&@M6~Gp@=`tCY$6~Gp@=y"D}$6~Gp@=` `BQ36~Gp@=_By]6~Gp@= B*M6~Gp@=B(@6~Gp@=BVG6~Gp@=p_BEE46~Gp@=(BfY6~Gp@=`Byu6~Gp@=BKp6~Gp@=E)G6~Gp@=E6~Gp@=2Eb6~Gp@=O@׳(6~Gp@= BIs6~Gp@=E6~Gp@=@E6~Gp@=@IC 6~Gp@=`B@6~Gp@=F6~Gp@=`EXY6~Gp@=B/o6~Gp@=2DHqi6~Gp@= `E{'6~Gp@=`A`6~Gp@=@vCҔ˵6~Gp@=`BCD&6~Gp@=aB'6~Gp@=zE/6~Gp@=ƿaBo6~Gp@=zbB%lq6~Gp@=\BT6~Gp@= `BG96~Gp@=gBE]6~Gp@=bBl}6~Gp@=QcBNCVZ6~Gp@="dB*s6~Gp@=}`Bw&6~Gp@=mvCbf6~Gp@=eBb~6~Gp@=A8?06~Gp@=l>=Em.6~Gp@=M`&D}bd6~Gp@= B\6~Gp@=AO@&V6~Gp@=`:`>Eu ;6~Gp@= P@Av6~Gp@=@P@ph{6~Gp@=p@Fdѐ6~Gp@=) 'DI.6~Gp@=DO6~Gp@=~EVf\6~Gp@=P@?^6~Gp@=* A-g6~Gp@=~6~Gp@=kAa6~Gp@= `BYd36~Gp@=|:`yCY6~Gp@=+!P@s6~Gp@=3B,6~Gp@=:eBOMo6~Gp@=,A66~Gp@=PAX6~Gp@=AzCe6~Gp@=w  =AE6~Gp@==`AG"6~Gp@=B6~Gp@=pBZjE6~Gp@=N*Ay6~Gp@= C֒6~Gp@=@fB 6~Gp@=`BdaU6~Gp@=v! AiZ6~Gp@=B`B-6~Gp@=bxB2o6~Gp@=_BԻ6~Gp@= fB`f6~Gp@=JC6~Gp@=pgB2`6~Gp@=>`D#f6~Gp@=A *D΅6~Gp@=Bzr6~Gp@= B_K6~Gp@=T KCW6~Gp@=~xA>6~Gp@=A"%6~Gp@=Q@f6~Gp@=@Q@&Xk6~Gp@=Q@&6~Gp@=Q@_6~Gp@= R@O6~Gp@==Ap*6~Gp@=2g@?EŦ6~Gp@=4dA7OW6~Gp@=D[6~Gp@=@A/^z6~Gp@=D=6~Gp@=@@R@ 6~Gp@=R@4tD6~Gp@=VR@U16~Gp@=+Dd6~Gp@=dAEh6~Gp@=B;p6~Gp@=`,D)6~Gp@=C36~Gp@=Bm)6~Gp@= gB 6~Gp@=ThB ֈ6~Gp@=0B'46~Gp@=EBq:~6~Gp@=@B's6~Gp@=ThB6~Gp@=yiBr=6~Gp@=PiB 6~Gp@=`jB'6~Gp@=B{S6~Gp@=$jB66~Gp@=Bּ}6~Gp@=TkB%sf6~Gp@=ykBe 6~Gp@=x`BL"6~Gp@=lBB6~Gp@=2B6~Gp@=x`Cec6~Gp@=/ A\6~Gp@=AS@?ඪ6~Gp@=*x-DTT6~Gp@=zBT&K6~Gp@=`BNf6~Gp@=B}Y6~Gp@=!BBA=06~Gp@=,BCNH6~Gp@=TBr6~Gp@=9`Cxؘ6~Gp@=D@S@G6~Gp@=[S@?6~Gp@=FE{y6~Gp@=F1D6~Gp@=S@YkX6~Gp@=VT@4O6~Gp@=)h 3D06~Gp@=3D6~Gp@=4D+A6~Gp@=@CȤ6~Gp@=,U@T@з76~Gp@=CS6~Gp@=mB0JR6~Gp@=zmBo6~Gp@=լBmJ{6~Gp@=B6%6~Gp@=nB z6~Gp@=T@6~Gp@=`B}66~Gp@=nBDv6~Gp@=oB(w 6~Gp@=-oB~86~Gp@=|pB]C6~Gp@=5B 6~Gp@=B1ſ6~Gp@=LE H=6~Gp@=DHEPB6~Gp@=K$`BWJ6~Gp@=rBSX6~Gp@=DpB#}6~Gp@=(B%6~Gp@=FcBU6~Gp@=$`Á6~Gp@= BP6~Gp@=D.U@Cj6~Gp@=TA`6~Gp@=;`C;6~Gp@=`DP+6~Gp@=F`E#6~Gp@=p 9D\ q 6~Gp@= @U@kD 6~Gp@=|`;DVe 6~Gp@= b6~Gp@=C|6~Gp@=Ct6~Gp@=`B} 6~Gp@=NE]6~Gp@=7@TE-V6~Gp@=8EP6~Gp@=0TD6~Gp@=rB'8:6~Gp@=U@C6~Gp@= F5Z6~Gp@=[@6~Gp@=@[@|i6~Gp@=`VD 6~Gp@=B6~Gp@=rB6~Gp@=Ebi6~Gp@=h?[@w6~Gp@=0Az6~Gp@=`BY6~Gp@=C#ɖ6~Gp@=B6~Gp@=wh[@ǃo6~Gp@=h C0MD6~Gp@=\@v6~Gp@=ElY&6~Gp@=U WD6~Gp@=% Dx6~Gp@= @\@.6~Gp@=%\@l6~Gp@=%\@t/6~Gp@=&]@&ٚ6~Gp@=@]@^ŋ6~Gp@=2]@6~Gp@=nWD̍.6~Gp@=XD=7^6~Gp@=x`YDA26~Gp@=G]@y6~Gp@=(B86~Gp@=^@K16~Gp@=sB Ul6~Gp@=@AH6~Gp@=sg EJ6~Gp@=jC#TK6~Gp@=hsB㓢96~Gp@=tBO޴6~Gp@=UtB/^6~Gp@=@^@ΫS6~Gp@=PUCߔ6~Gp@=ANj6~Gp@=zB밆6~Gp@=z^@6*func(*big.Int, *big.Int, *big.Int, *big.Int) *big.Int6*func([]uint8, []uint8, *net.IPAddr) (int, int, error)6*func(x509.SignatureAlgorithm, []uint8, []uint8) error6*map.bucket[jwa.SignatureAlgorithm]jws.VerifierFactory rp@=BIp@=`RAA.p@= EAnp@='@?cp@=Ļ@?8p@=lE\p@=r"B׫p@=`#B("p@=$$B8Tp@=@rAp@=3 tA Tp@=0tApp@=ةmE`8p@=Fp@=?1Cp@=HfDG./Ep@=J) wAop@=6`B) p@=|A?p@=`FZp@=0)`FNp@=+3Ap@=9 Ep@=`AI p@=UF/p@=`B7Mp@=Uf EҲp@=7 FLKSp@=Fpp@=J?W$p@= D/2|p@=h??Op@=]D"p@=ֻ@B+Gpp@=Acp@=@?$LZp@=p`EnXp@=?ݜp@=?"ap@=AEZp@=`D/uap@=`G`sWVp@=`Djp@=P?G|ݻp@=` DMp@=0?Utp@=@?B7!p@=@C<p@=bf @Tp@=H@Sp@=w`@,p@=of@5p@=x?"@ p@= :`?lp@=?O[~p@=9`?I:p@=``?[j @p@= ?p@=`?!z6p@=d)`?֨mp@=w`?p@=-A?>q"p@=,2?gp@=S`@2p@=|`@:p@=|f`@#p@=@Rp@=f@}p@=T`@p@=%@珈p@=#@1>qp@=P$@ Z p@=WC"Dap@=WCp@=@XCp@=uBenp@=vB p@= ZC p@=F3`[Cdѣp@=\Cni)p@=ODBp@=DwET+p@= A+p@=8 APp@=x@A5<p@=`cCp@=XfCp@=x`D-"sp@=%@Bp@=hCDGp@=B\`Dop@=AX\dIp@= QkC p@=z`Dv#p@=D: D?Lp@=~)MBDpAp@=3E˲p@= zB-p@=A'PEp@=c,F[F!p@=a3`Dfp@=62QBzp@= T)@037p@=T)@=%p@=A`@,0a|p@=/;@RTap@=КI@4؏p@=2AZkp@=5`BBpp@=gA :Ap@=Cf:A<p@=P:A}p@=PAd[p@=@;AiKp@=|3;Aoip@= `B[p@=.rCALzp@=rsC3p@=$TEsp@=DO@4{p@=Bp@=bB#zp@=dBep@=AvCZ(Pp@=YeBzp@=JABUp@=IeBA!p@=BF8p@=f`Bļ&^p@=pAfp@=@Q@ 7p@=@2@Q@*Msp@=J2Q@vp@=T2Q@b0p@=%R@p/p@==Ar5p@=T@?E~z|p@=whB}p@=`B{p@=`CErp@=PA.tp@=TA/p@=(: Afp@=A=ҌNp@=fS@.lp@=fB2qp@=A@ Fiz1p@=Ckp@=@S@p@=>A =p@= 3DUi0p@=n`D*np@=C p@=?AIp@=<nB"rp@=`Bh|p@=)E(p@=R?A p@= @AyDp@=@AITp@=h`_D8Xp@=@AI2lp@=)B7sp@=`Cqp@= @U@lp@=:D%.p@=-%Fp@=0fGÀ~p@=EY>p@= @D4p@=B BD]p@=>Cr{p@=̇`DDmp@=LCTp@= DUxp@=C(#~p@=TEU+hp@=`C|pGp@=  HD^p@=CUُp@=FAm$p@= @CX])p@=CObJp@=c KD4%N/p@=C{@p@=)Cp@=`MDc4p@=0Y@Ө p@=A@Z@9+p@=C̥p@=wHA/ p@=`C/p@=f`Cg/\p@=[@jp@=`VD^ p@=C8op@= CI:ϩp@=!E'ip@=g\@Il&p@=w WD:p@= D p@=A\@ԑp@=A\@?i p@=A]@~.8p@=^2@]@3]p@=0T]@? jp@=lWDcp@=XDF<p@=]@p@=Ap@=Ap@=@A`&p@=^@ 4p@=~sB Jp@=&WEUɾp@=CÑwp@=ۇsBi/,p@=wtBɟp@=EKAp@=F3p@=%7*func(*big.Int, *big.Int, []uint8) (*big.Int, *big.Int)7*func([]uint8, []uint8, *net.UDPAddr) (int, int, error)7*func(context.Context) (map[string]interface {}, error)8github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt8*func(*big.Int, *big.Int, *big.Int) (*big.Int, *big.Int)8*func(*runtime.hchan, unsafe.Pointer, bool) (bool, bool)8*func([]uint8, []uint8, *net.UnixAddr) (int, int, error)8*func(context.Context, jwe.Headers) (jwe.Headers, error)8*func(context.Context, jws.Headers) (jws.Headers, error)8*func(context.Context, string, string) (net.Conn, error)8*func(string, string, io.Reader) (*http.Response, error)8*func(x509.VerifyOptions) ([][]*x509.Certificate, error)8*struct { F uintptr; _cgo0 *net._Ctype_struct_addrinfo }9*func(*runtime.hchan, unsafe.Pointer, bool, uintptr) bool:*func([]uint8, []uint8, []uint8, []uint8) ([]uint8, error):*map.bucket[http.http2FrameType]map[http.http2Flags]string;*func(*http.Request, string) (*http.http2ClientConn, error);*func([]uint8, []uint8) (int, int, int, *net.IPAddr, error);*func([]uint8, []uint8, syscall.Sockaddr) (int, int, error);*func(uint32, *runtime.siginfo, unsafe.Pointer, *runtime.g)<*func(*tls.CertificateRequestInfo) (*tls.Certificate, error)<*func([]uint8, []uint8) (int, int, int, *net.UDPAddr, error)<*func(context.Context, string, string) ([]net.IPAddr, error)<*func(string) (multipart.File, *multipart.FileHeader, error)<*map.bucket[string]func(string, *tls.Conn) http.RoundTripper=*func([]uint8, []uint8) (int, int, int, *net.UnixAddr, error)=*func(context.Context, *url.URL, string) (http.Header, error)=*func(io.Reader, []uint8, crypto.SignerOpts) ([]uint8, error)=*func(reflect.Value, ...reflect.Value) (reflect.Value, error)>*func(io.Writer, int, int, int, uint8, uint) *tabwriter.Writer>*struct { F uintptr; wg *sync.WaitGroup; f *json.encoderFunc }U 2~Gp@=SHAQe 2~Gp@=f!G~G`@= @W(>~G`@=S  2~Gp@=:@? v 2~Gp@=3`A 2~Gp@=2 ?禧 2~Gp@=+@?H 2~Gp@=HT@"] 2~Gp@=fQBUq 2~Gp@=AQ@U; 2~Gp@=4+D_eF 2~Gp@=F] 2~Gp@=*3DM 2~Gp@=:@C'rd 2~Gp@= D 2~Gp@=I `D. 2~Gp@=4`E 2~Gp@=A 9D 2~Gp@=D!`;DS^\ 2~Gp@=תHA 2~Gp@=!Er> 2~Gp@=!G‘3 2~Gp@=bQB n 2~Gp@=A+Dr 2~Gp@=qHAmT|G`@=%g%y|G`@=TTZy~G`@= % ~G`@=;8hRC2~G`@=vhed~G`@=he8 ~G`@=@heAu~G`@=Td9Tg~G`@=1Td9\9~G`@=@PQ~G`@=° }G`@=2@.}G`@=2'0Gp@=@H(3p@= B*3p@=$`RF"3p@=hQiE3p@=Fl3p@=+%EG3p@=%"?h 3p@= @?ǣ3p@=C͂)3p@=B{`3p@= EB3p@=@;Fj3p@=ff`(B[K3p@=>"Fкo3p@=+B ۉ3p@= F3p@=Q4B#~3p@= GM23p@=W"ERe3p@=p"Em3p@=?G:b3p@=`DG%3p@=8+@n3p@=8@N3p@="`?3p@=R+?K3p@=`?kU3p@=?Ȕ;3p@=0?3p@=&`?/3p@=?f<3p@=9 ?Wr3p@=" ? Z[3p@=Q ?U3p@=``?S3p@=%?83p@=+@/3p@=L`@5`3p@=" @3p@=`@io%3p@=<`@3p@=lB@b=83p@=@Tx3p@=x@23p@=t$@ՓX3p@="`B3p@= ZCT,3p@=l+A%33p@=BXF/83p@=w A65߰3p@=+@Aֵ3p@=4QB%3p@=\;@'@s3p@=M)@-3p@=^)@UeL3p@=H\B$3p@=a :A3p@=H{:A 3p@=k:A S=3p@=+\B^93p@=kAq_ 3p@=#@;A3p@=W;A=3p@=8FB3p@= B \_3p@=oEv&3p@=(J@g3p@= aB,ֲ3p@=ME3p@=WP@ &J3p@=zC|!3p@=L KC93p@=YgQ@Ź} 3p@=CQ@a|3p@=RQ@#3p@= =AΚr3p@=+=A53p@=+Ds\+3p@=_hBhW3p@=rkB3p@=CD3p@=\ At`3p@=4AWH3p@=BgN3p@=@@ F'a'3p@=lB3p@=E4=>3p@=Q@Eʥ3p@=E3p@="CA w3p@=6@DAW3p@=L%F243p@= fG3p@=xV@m3p@=PZ@3p@=bB(t3p@= CK"C83p@=` IA65$3p@=IA3p@=IA t3p@=!Gl`3p@=b@JA?.53p@= y@\@L3p@=`\@ $3p@=p]@}g3p@=]@ 3p@=ν ANs3p@= @^@<3p@=",`Fji73p@=;E7c|3p@=B3p@=`RF".3p@=p, EZ[3p@=<,`XA"Y&3p@=@?KX=3p@=,`E-3p@=|A$I3p@=x`Fn v3p@=FJ`F_X3p@=#EQ3p@=?{3p@=`@7H3p@=fg@ܯS3p@=$@['g3p@=yQBQ6T3p@=)@3p@=a`@3p@=#F@3p@=Y@O@ 3p@= \BЙM3p@=BVԔ3p@=aBDF3p@=X A3p@=TQ@!x&3p@=&yQ@u3p@==Aȹ3p@=LhBZ[3p@=^kB3p@=E=e3p@=K f~G`@=J ~G`@=2\:~Gp@=G 5A~G`@=@zs\~G`@=@pP9~G`@=z@`x?*struct { lock runtime.mutex; used uint32; fn func(bool) bool }@*func(*big.Int, *big.Int, []uint8, []uint8) (*big.Int, *big.Int)@*func(io.Reader, []uint8, crypto.DecrypterOpts) ([]uint8, error)@*func(io.Writer, *blackfriday.Node, bool) blackfriday.WalkStatusA*map[jwa.SignatureAlgorithm]struct { Hash crypto.Hash; PSS bool }B*func(*big.Int, *big.Int, *big.Int, *big.Int) (*big.Int, *big.Int)B*func([]uint8, jws.Signer, interface {}) ([]uint8, []uint8, error)B*func(http.http2FrameType, http.http2Flags, uint32, []uint8) errorB*struct { F uintptr; t *http.http2Transport; ctx context.Context }C*func([]uint8, []uint8, []uint8) ([]uint8, []uint8, []uint8, error)C*func([]uint8, []uint8, []uint8, []uint8, []uint8) ([]uint8, error)D*func(*http.Request, http.http2RoundTripOpt) (*http.Response, error)D*func(context.Context, *httprc.fetchRequest) (*http.Response, error)E*func([]uint8, []uint8, int) (int, int, int, syscall.Sockaddr, error)E*struct { F uintptr; waitForBodyRead chan bool; eofc chan struct {} }E*struct { Kty string "json:\"kty\""; D json.RawMessage "json:\"d\"" }F*func(context.Context, jwe.KeySink, jwe.Recipient, *jwe.Message) error^ }G`@=R]@ @o }G`@=e]@@+ }G`@=]@`@e` U>`@=eR@@Qj U>`@=v@]@`@h"0  V>`@=RR@@hI" V>`@=n2@C @ vx U>`@=R@]@`@  K= U>/=, F ?', U>`@=B`E`?*1 U>/=X??MK pV>`@=e@]@`@ 3w `V>`@=@R@@ ~x `V>`@=R@]@`@ Ҍd pX>`@=a\@@@vΥ, PV>`@=n`E`? 6 h V>`@=R@]@`@  V>`@=@S@`@8. X>`@=[@@' V>`@=R@]@`@ ( V>`@=R@]@`@R_l~ V>`@=(@XC?@3^g pV>@,= F ?+㰅 W>`@=@`[C?E9 pV>`@=e]@ @}5G }G`@=R@]@`@DLO X>`@=RQ@`@ W>`@=R@]@`@[ V>`@=2Q@?L]k Y>`@=RQ@`@1Y W>`@=S@]@`@W*c 1~Gp@= E?u؏ 1~Gp@=(lE?Z]T 1~Gp@=mE`?0" 1~Gp@=< D? p@=e`@ ?bp@=e`@`?rӯ 1~Gp@=(V$@ ?Vc ~G`@=P A ? ppg7"cC? p|p@=fC?((_:@=HVkC`?8}Gpg7y`B ?T ~G`@=%Q@?P[~Gpg7=A @6}Gpg7vB@( g7C @ĸb 0Gp@=SZ@`@( G N =^+=C @ C3/=p@=͆ WD @~iz=`@=P D`@ R ~G`@=S\@@16 ~G`@=@@]@`@a ~G`@=e]@@{ 1~Gp@=d]@`@i}Gpg7sB@ }Gpg7tB@4 pW>`@=e@]@`@h:9 0W>`@=܆]@@S W>`@=e@]@`@* @W>/=??w0=`@`?,/=hVB?(/=!\eB? @W>`@=@Q@?0"a @W>`@=@FA` @8}a U>`@=w\@@ W>`@=e@]@`@ V>`@=w\@@ \ }Gg74mE`?9w }Gg7 wDG ? 0 =xg7FzB? R (=xg7@QB?u }G`@=%Q@?& ~G`@=@Q@`@k }G`@=@Q@@ ,Y0=xg7X=A @\g7@ A@g" }G`@=)@U@`@$8=V,=E` @ PX@=hg7(SZ@`@c} ~G`@=4S\@@F ~G`@=@@]@`@ }G`@=f]@@ h!%} W>`@=AQ@?<`$ V>`@=\@@' W>T-= F ? Mg W>T-=? ? Y W>`@=@S@]@`@ 7`K W>`@=.w]@@ 79 W>`@=F @ ̟h `W>g7jmE`?hG X>`@=i A ?xh H=+=Й!E@ 7 `V>`@=LS\@@¹R W>`@=A@]@`@(e W>`@=AR@@( A0^ W>_+=x F ? ~G`@= A ?@@w^P=+=`@=2C @}B }G`@=XS\@@B ~G`@=$A@]@`@? @W>`@=Jw\@@) `X>`@=f@]@`@h( X>`@=]@@6\9 X>`@=dS@]@`@689 X>`@=/AR@@8Oۅ V>4/=@?xhȨ+= ??PPzX=,=Xw`B`?yU  W>`@=pS\@@і PX>`@=:A@]@`@R 0X>`@=!fQ@@_$0 `X>@.= F ?@@& X>`@=|S@]@`@@B?t X>`@=S@]@`@BDy| X>`@=S@]@`@D``0_f`= ,=fw`B`? d `W>`@=EAQ@`@0^  X>`@=.f]@@j? V>`@= A ?8 X>`@=S]@ @ X>`@=PA@]@`@@@<& X>+= F ?1Uh=$,=w`B`?Iq ~G`@="2R@@ . W>`@=S\@@@^ X>`@=S]@ @>0 ~G`@=|A@]@`@Gp[Rp=$,=sB`@`A 0Y>`@=S@]@`@` x=x-= @?E`@ Hǿ X>`@=S]@ @ I0  Y>`@=A@]@`@ =p@=okCȺEWp@=@]@P p@=Lgk@]@H3p@=|k EQB=3p@=WFQB/v3p@=ja`CQBs!3p@=Xk DQB3p@=o4 EQBUV3p@=T4@FQBx]3p@=*`@QB3p@=2B@AQB`5!3p@=*)@QBhT3p@=k_BQB13p@=*EQB:3p@=*DQBr3p@=OBBQB@=3p@=*QcBQBs[3p@={Q@@I~3p@=Q@Q@0f3p@=@Q@QB%3p@=XQ@Q@͒3p@=hWBQBW3p@=I`CQB$!S3p@=c\BQB3p@=aBQB܀3p@=IQfG@r3p@=pZ@@u3p@= "Z@QBԺg3p@=t Z@Q@8܊X3p@=a`BQBI7bs3p@=4!G@T3p@=@]@QBKE3p@=fB=A#3p@=pBBP|3p@=(X@#EQB!s3p@=QDQB -3p@=dJDQB;3p@=B`BQB>3p@=R`RAQB蚛3p@="R E@ %3p@=X EQB3p@=xlXAQBQJ3p@=x;FQB3p@=TllEE3p@=4FQBŐ3p@=+DGDG~w3p@=DGQ@i3p@=#FQB~?t3p@=V, E Edxc3p@=hX E?>+F3p@=] E?^P3p@= `AQB)3p@=; G@l-(3p@=J?QBE73p@=?GEe3p@=\`D!G追3p@=\TF@l3p@=AR @Z@s3p@=f`@QBBߠ3p@=Xb?E|b[3p@=;?fGԔ3p@=;`@DG3p@=| @ @{Һ3p@=, `@QB֞|3p@=B`@Eo3p@=`R`@lEeq3p@=8#`@DGg 3p@=,`@`?~3p@=`@?&3p@=`@`@FpbV3p@=`@@03p@=J]`@wB03p@=J`@IB_[:3p@=`@QBB[3p@=,`@ KC23p@=C `@Z@!q3p@=Z `@\@`Z3p@=q `@\@ĞE3p@= `@]@u3p@=,`@@lxy3p@=Q#`@`@ y3p@=`@\@)3p@=`@\@+3p@=`@]@ n3p@=@@53p@=@QB 3p@=@QB0$}3p@=$@@n23p@=t`B`F;3p@=TC`B@]T3p@=J`BQB4_o3p@=[`BB'c3p@=ɀ`BB$s3p@=RA@cɰY3p@=JA@3p@=cXFQB#+3p@=hXFQBl3p@=fMB@ OA3p@=QB@} 6%3p@=QBQBUq3p@=)@@&3p@=j#BQ@33p@=h @QB`3p@=`|`@fG-E3p@=] @QBL3p@=<N@QB13p@=A=A)43p@=!;A=AbxN3p@=@-FQB3p@=<`BQB̛3p@=E@!y3p@=xEQ@a=3p@=gElE3p@=YEE3p@=Q@?z~:3p@=(Q@`@{r`3p@=Q@@&3p@=(Q@QB<23p@=Q@Q@CLo3p@=CQ@DԄ]3p@=rKQ@`_DM3p@=4Q@rE3p@=hYQ@E&>i3p@=#Q@%Fp3p@= -Q@fG=3p@=X<Q@DAĄ݇3p@= Q@Z@D3p@=Q@@\@M3p@=t<Q@`@%DŽ3p@=Q@Q@~[#3p@=RQ@%EF3p@=Q@@K3p@=:Q@Q@1 73p@=<Q@Q@^)3p@= Q@DG98k3p@=0Q@@?Q3p@=PQ@QBD3p@=dQ@Q@h.3p@=g=ABe'3p@=,5=AQB~3p@=b=A=A3p@=K=A]@ ئ3p@=KD@&3p@=hBQBre53p@=<jB?d3p@=G5jB@_93p@= kBQBRm3p@=cqkB`E,v=3p@=b5kB`@<3p@=,CQB 3p@=@ F@W#T3p@=Z-lB@ Fle83p@=qC @A@p3p@=^EQB3p@=HEQB3p@=HY`_DQBU_i3p@=t-%F@p3p@=g%FfGQ<3p@=}5fG@%3p@=PmfGfGhj3p@=qfGfGņQ3p@=-Z@@?~3p@==Z@mE(,3p@=-Z@+Gy}3p@=ZZ@?_93p@=#Z@ ?9|3p@= Z@?k+3p@= Z@@ H3p@=8Z@`@*3p@=Z@@Bh3p@=Z@QBј3p@= Z@)@bU3p@=CZ@Q@3p@=4Z@Q@v 3p@==Z@=AܰE3p@=8=Z@CI3p@=CZ@fGM3p@=(Z@Z@Z@]@*k(3p@=P}Z@r?~E)3p@=DZ@mE@3p@=(ZZ@ @ ߛ3p@=$Z@`@nK3p@=PhZ@@'@3p@=A@@ϻ`@=?A@Ho$,=8nB@@@ESf+=`B @z0 .=2E`@ :`@=O?A@f`@=H @A@^`@=J @A @ `@=c @A@@@vi +=2B@12.=:D@ģ$,=%F@'%,=fG @!L-= BD @V -=C @vPz@,=`C @ D^`@=]Y@ @xUS>+=SZ@`@m'`@=C@>y `@= HA@@ݧ`@=@\@@h{`@=S\@@ .`@=S\@@@^`@=S]@ @@@%@ +=T]@`@с`@=4A@#s`@=JA@ `@=3@A @Qo`@=^@`@T *,-=1 C @@`@=KA@-p@=0?@ @]@P%iosp@=L?|@]@p%֬6~Gp@=HAG*func(context.Context, jws.KeySink, *jws.Signature, *jws.Message) errorG*struct { F uintptr; c *tls.cipherSuiteTLS13; expMasterSecret []uint8 }H*map.bucket[jwa.SignatureAlgorithm]struct { Hash crypto.Hash; PSS bool }H*struct { F uintptr; pc *http.persistConn; continueCh <-chan struct {} }K*struct { F uintptr; r *blackfriday.SPRenderer; quote uint8; addNBSP bool }M*func(context.Context, string, ...httprc.FetchOption) (*http.Response, error)JY~G`@=*PN o=0Gp@=@PN Pp->~G`@=` RN pZt;~G`@=U ,RN @K~G`@=~PRN m=Ġ~G`@=hR0k&@# {O ~G`@=H{hR0 l&И#o1 ~G`@=@hR0k&P#+~G`@=O heN !#@" +~G`@=61he0# "}v~G`@=30N 0|~G`@=g@`0epLI~G`@=@` W3p@=(W`@@QBD׼3p@=!Q@Q@Q@F 3p@= JQ@Z@QB3p@=HWQ@IAQ@q63p@=BQ@Q@QB'[3p@=WZ@Z@@>3p@=a]@Z@QBXef3p@=S]@@[@QBU#3p@=be?Q@QB^3p@=x`F`@Q@ 3p@=0[B`RAQBJU3p@=`B`RAQBy3p@=`BFQB3p@=\ C@]@Q@1gض3p@= lDGDGDG3p@=WDGDG@h9=3p@=XDG@\@DGd3p@=t!FDGDGBЛE3p@=`FDQB9pZ3p@=p{`F EQB`3p@=m`F ?QB>3p@=HX GQ@Q@A3p@={@?]@@O /)3p@=k`?`?QBs(h3p@=l @@QBNEY*3p@=X`@Z@Z@.l3p@=p`@DGDG 3p@=)]`@`@QB\X3p@=`@@QB.3p@=q`@BQBt3p@=ڄ`@_BQBN4P3p@=B`@Q@QB=F3p@=k]`@`@`@w+ 3p@=J`@`@@3p@=zb`@`@CC3p@=ɒ`@@`@`3p@=]`@Q@`?m5D#3p@=B`@Q@?q3p@=R`@Q@`?9k3p@=C`@Q@`@ 1(3p@=X`@Z@`@hx33p@=7C@@QB%3p@=`BFQBoAm3p@= W`B AQBv3p@=8|`B`@QBj3p@=`B[BQB;e3p@=`BFQBUTdK3p@=`BEQBX3p@=>q ZC`@QBWu3p@=YzE`?QB Ҹ3p@=f{BZ@Z@C3p@=g`oCQ@QB43p@=̟`@E@$)3p@=[gQ@@QBR3p@=~gQ@ @QBy3p@=TKQ@`@QB>3p@= <Q@`@@@a~G`@=PU5?~G`@=h0 :~G`@=O@00  W@Z0Gp@=N ж 0a ~G`@=-`pN 0_(P&(Ly~G`@=pPMtݜ~G`@=f xXL~~G`@= `xZtR*struct { F uintptr; connPool *http.http2clientConnPool; t2 *http.http2Transport }T*struct { F uintptr; once *sync.Once; stopTimerCh chan struct {}; cancelCtx func() }U*struct { F uintptr; cancel chan struct {}; rt http.RoundTripper; req *http.Request }( 6~Gp@=ƪ`A 8~5 6~Gp@=* APN s 6~Gp@= APN PPR({ 6~Gp@=xWCPCVڈo 6~Gp@=F DP ppx> 6~Gp@=@ A RN o/- 6~Gp@=.C [CCz 6~Gp@=U A,RN @@4 6~Gp@=B`Bv[00U 6~Gp@=ApG @W 6~Gp@=8DHe[ɗ< 6~Gp@=7`BCHe[rlF 6~Gp@=~ APRN m " 6~Gp@=&wEhRT P#P#k! 6~Gp@=` AhR0k&k&F} 6~Gp@=XFhR 5w#w#~ 6~Gp@=H{ AhR0 l& l&  6~Gp@=DhRN m&m&}7 6~Gp@= AhR0k&k&ٿB 6~Gp@= _ChR[##y 6~Gp@=U`DheN P#P#R 6~Gp@=[yBheN 0 #0 #H 6~Gp@= CheN @!#@!#huo 6~Gp@=O AheN !#!# 6~Gp@=61 Ahe0## 6~Gp@=dzBheN $#$#/ 6~Gp@=PH DheN 0%#0%#&M 6~Gp@=®Cd9N !!D 6~Gp@= DȺW|r 6~Gp@=k@AȺ0U 6~Gp@=zCCPN @P@PHL ` 6~Gp@=@DCPN PPoi 6~Gp@=A`BPN q6N 6~Gp@=3@A0N 00yu 6~Gp@=gA`0eec 6~Gp@=AEB`N   ( 6~Gp@=@lC`N pp  6~Gp@=.3E`N @ @ l݈ 6~Gp@==`B`N }}!,T 6~Gp@=^ElC`N @~@~f 6~Gp@=DC` 7qG 6~Gp@== `C` @ 6~Gp@=A` o2 6~Gp@=EC`N mm 6~Gp@=Be0 6~Gp@={_Be04 6~Gp@=Be0D 6~Gp@=SBe0d 6~Gp@==Be0 6~Gp@=^%Be0_s 6~Gp@=k !De 22 6~Gp@=uCeC 222ݕ 6~Gp@= Bc @Z%1%1H 6~Gp@= Bc @Z@%1@%1 6~Gp@=D`[ 0 0 6~Gp@=A  t110L 6~Gp@=yBe0h- 6~Gp@=4>Be0@|, 6~Gp@=w%Be0P0P0 6~Gp@=BBe000d` 6~Gp@=TBeH q`0`0h 6~Gp@=jIC fx44q 6~Gp@= cB fP`4`4A 6~Gp@=0dB fP44+y 6~Gp@=~wC f 33 6~Gp@=4B fx44 e 6~Gp@=B f0~ 6~Gp@=HB f044e:e 6~Gp@=6B f0o 6~Gp@=_B f0  6~Gp@=`B f044' 6~Gp@= B f044Z}d 6~Gp@=B f0 6~Gp@=B f0ŝV 6~Gp@=P>B f0f 6~Gp@=%B f0FQ 6~Gp@=8B f0h 6~Gp@=%B f0tF 6~Gp@=NB f0.! 6~Gp@=%D fx33i 6~Gp@=H xC fC2332 6~Gp@=0zD fE`33<( 6~Gp@=P@AHtG @@w-@w- 6~Gp@= `AP0\" 6~Gp@=AP0c 6~Gp@=>AP0@% 6~Gp@=`DPj 6~Gp@=`CPtOI 6~Gp@=6h DPN qg@ 6~Gp@=}MCP8[p!p! H 6~Gp@=Ĭ?A20|60 6~Gp@=^yGF20 ( (v 6~Gp@=`B2N **h 6~Gp@=MC2[,,oە 6~Gp@=@NC28[,,G 6~Gp@=C2[ 3+ 3+2S 6~Gp@=E200,0,oT 6~Gp@=iNC2[@,@,g 6~Gp@=5OC2[,,z7 6~Gp@==`?A2N ,,9 6~Gp@=,?A20,,WV 6~Gp@=ܾ @A2,,7 6~Gp@=@A20,, 6~Gp@=D2N 0,0,7 6~Gp@=.D2@t,, 6~Gp@=@A20 , , 6~Gp@= D2/))ˑs 6~Gp@= C2N 0,0,۷ 6~Gp@=E2 ) )@G=! 6~Gp@=y@AA2N @,@,`< 6~Gp@= `B2:ǝ 6~Gp@=^AA2N ,,k, 6~Gp@=$cBA2N ,,a. 6~Gp@=L`BA2N p,p,&k 6~Gp@==C28[,,w# 6~Gp@=:6 PC2N ,,K 6~Gp@==PC2N ,,l 6~Gp@=EC2{ .+ .+:l 6~Gp@=h`QC2dm`pP-P-A9 6~Gp@=^.`B2N `+`+ 6~Gp@=0BAN &&L 6~Gp@= CA0%N  6~Gp@=CA0%N G̋ 6~Gp@=Ph`B|`V{: 6~Gp@=2E|v_ _ T% 6~Gp@=RC|8[P P d 6~Gp@=CA@%0y y I 6~Gp@=#@DA@%00z 0z چ\ 6~Gp@=ZrE@%Wt@~ @~  6~Gp@=E@%Wtp| p| e 6~Gp@=V C@%N ne 6~Gp@=E@%" `Vm 6~Gp@=8C@%p| 6~Gp@=DAB 6~Gp@=1 CN @@Y( 6~Gp@=lEA0@@7 6~Gp@=`EA0pp@( 6~Gp@=PUIA5H 6~Gp@=h!E0Q# 6~Gp@=hIA0 FX=J 6~Gp@= UEN  ?: 6~Gp@=O@JA00 0 Bi 6~Gp@=JAN ж ж  - 6~Gp@=TE\[C#C#~ 6~Gp@=!`CzN t 6~Gp@=D {E;k 6~Gp@=B { ((^Pq 6~Gp@=rTC { p(p(c 6~Gp@=D { (( 6~Gp@=C { ((y 6~Gp@=T UC`pN p^(p^(YF 6~Gp@=-KA`pN 0_(0_(y5 6~Gp@=FEpPt}_ 6~Gp@=&EpPtL 6~Gp@=&CpPS)   6~Gp@=vEpPt^ 6~Gp@=`KApPMtP 6~Gp@=BpPS)  ƃ 6~Gp@=fKA xX?QG 6~Gp@=XE`xN'' 0zW>`@=ƪ\@@ Wp@=@]@pG @Gf`@=;`@`?"t ϔ(W>`@=$;\@@6W>`@=d{@]@`@he+ۍp@=k`@Ⱥ00eDXp@=H`U@]@`\k``bHP[3p@=Q@rBZ@QB83p@=0l@h?Z@@Z@/3p@=`EZ@=AQBjy3p@=?Z@)@Z@ 3p@=6b?Z@Q@Z@3p@=nt?Z@Q@Z@3`1 3p@=DGDGDGDGRa3p@=DGDGDGDGeXf3p@=pDGQ@@\@DG23p@=`F`BDQB 93p@=A'y3p@=`@ DQ@QBL3p@=t`@`@Q@QBRh3p@=0`@`@`@`@g 3p@=<`@`@@=Ax3p@=Ǎ`@`@=AQBC,3p@=l`@Q@Q@QBPY43p@=`@=A`@QB3p@=x`@BQ@QBCJ3p@=V`@rBQ@QB_}3p@=@ @`@QB'3p@=`B@?DQB^~3p@=,X`BFFQBd(3p@=fX`BEEQB?R3p@=A`@`@QB0IK3p@=,uQ@Q@BQBlI7S3p@=|Q@Q@?QB@W|3p@=Q@Q@?QB3p@=|Q@Q@?QBţ3p@=]Q@Q@@QBm=X3p@=<Q@Q@Q@QB=+3p@=mQ@Q@Q@fG~Nt3p@=YQ@Q@Q@!G h3p@=KQ@Q@@]@QB³3p@=bQ@Q@Q@QB 3p@=kB`E@P@N3p@=#ykBZ@Q@QB)O3p@=fG @@QBE:3p@=#]fG @fGQBF*93p@=fGfG@QB#c3p@=[Z@B wAQBdS3p@=-hZ@@Z@@h?Ah3p@=mZ@)@Z@?a 3p@=qZ@Q@DG@X3p@=s^Z@Q@Z@? |3p@=qZ@Q@Z@?v'3p@=Z@EDQB{e3p@=Z@Z@CQB)t3p@=mZ@Z@@ F@ z3p@=yZ@Z@Z@?1!ĵ3p@=BZ@Z@`BQBf13p@=Z@`"EZ@`)Ec:3p@=hZ@@\@Z@?*.{3p@=yZ@]@Z@@?%e3p@=Z\@?]@@?=3p@=m\@@`@QB~3p@=\@?A`@QB}Ce|3p@=n`KA`@tBQBA&p@=@@]@  t1P0{)Sp@=P`@]@HtG @@w-pm-3p@=,( FQBui3p@=P( FQBaNm3p@==( FQB؛ 3p@=N*( FZ@UFM3p@=v!( FQB!}U>`@=~x\@@tR @Y>`@=A?tR?K}Gpg7SAׅ(}Gpg7A1`VѪ}Gpg7_PAIGt", @}Gpg7SAn)tJq}Gpg7SAhvK}Gpg7PpApУ"w}Gpg7}пA+t Z}G`@=g@]@`@v}/5p@=̐ E`? `D8~GH5p@=Ds`F`@`D8~GWۃ5p@=vUFBaD8~Gf5p@=TF@`bD8~GXϽ5p@=MFQ@ cD8~GR5p@=N@#@cD8~GʡZ5p@= `vBHAdD}Gm5p@=|/ ZC`@`eD8~G*R'5p@=[ ZC3E fD8~GHiT5p@=\C:AfD}GRv5p@=@AZ@gD@~G!5p@=A@`hD@Y>1g@5p@= :AHA iD8G >5p@=A:AHAiD8G `5p@=p:A\CjD8G z 5p@= :AHA`kD8G >5p@=4AHA lD8G ͪ'/5p@=_@;A?lD8GP >5p@=>@;AHAmD8G 3e5p@=;A"B`nD8G @5p@=;A`#B oD8G Un5p@=Ȋ;A$BoD8G  ̊5p@=(;A@rApD8G G5p@=;A ZC`qD8G 95p@=V;A;@ rD8G p5p@=0;ABrD8G Y5p@=p;AbBsD8G A75p@=#;AdB`tD8G 5p@=;AeB uD8G b5p@=ȟ;ACuD8G 5p@=z;AHAvD8G .R5p@=7Q@]@`wD0~Gpk6JY5p@=:Q@KA xD0~Gp.d%5p@=>Q@@CxD8~G&\5p@=ӮQ@Z@yD8~G5p@=T=AD`zD~GP5p@=FF=AHA {D~G=#5p@=`>AZ@{D8~Gc.5p@=>?AZ@|D8~GEF5p@=b``BI@`}D8~G,:5p@=E`? ~Dh=8 #&5p@=H[EQ@~Dh=8 `5p@=E:DDh=88 C9 5p@=T?AZ@`D0~G5p@=)F @AZ@ D@~Gyp5p@=*@AAD@~GXt825p@=@@ABD@~GXl5p@=`@AZ@`D@~G5p@=T@A@ D(~G({5p@=`@AZ@D(~G,5p@=%F@D}G)5p@= U%F@;A`D}G5p@=Q%FQ@ D}G`"5p@=% BD@Dp= v5p@=d`CHAD ~G85p@=isY@D`D0~Gph#15p@=`NZ@`RA D8G ʷ5p@=Z@@?D8G ȔO5p@=nZ@ tAD8G 5p@=h[Z@?`D8G hr,5p@=nZ@A D8G 5p@=`Z@`AD8G ;Q5p@=[Z@`GD8G ux5p@= &Z@?G`D8G A5p@=aZ@? D8G a5p@=zZ@ @D8G 5p@=sZ@`?D8GP D5p@=>Z@?`D8GP kd5p@=sZ@`? D8GP (.5p@=;Z@?D8GP $mA5p@=cFZ@`@D8GP '>@5p@=Z@`@`D8GP 5p@=Z@@ D8G 5p@=Z@2AD8G J5p@=Z@Q@D8G 5p@=NZ@Q@`D8G `5p@=aZ@Q@ D8G bq5p@=/Z@=AD8G })5p@=>Z@AD8G Q_ 5p@=HUZ@A`D8G 5p@=)UZ@nB D8G `@=]@@ P% P;W>`@= \@@p%(vW>`@=`}@]@`@p%hr@`@=`@`?`pGBv3p@=`x @E`@X*func(*tls.Config, *tls.Certificate, *tls.clientKeyExchangeMsg, uint16) ([]uint8, error)[*struct { F uintptr; waitForBodyRead chan bool; eofc chan struct {}; pc *http.persistConn }^*struct { F uintptr; lazyCert *struct { sync.Once; v *x509.Certificate }; certBytes *[]uint8 }_~Gpg7 =A^~Gpg7H=A8A~Gpg7B@=@Ap!~G`@=VDhRN pn&PI#0o&0H#+Z}G`@=(`IAhR-}G`@=H`J`AhR>}G`@= '`LAhR&@3~G`@=P1Mhe0`#@";tM~G`@=%`PP@`L0|L ~G`@=`QP@0U0|0V?0Gp@=`SP@`ZP|0[@7%~Gpg7g`F>A`63p@=`@`(FfGmCC}G`@=o@`A`3p@=~WDGDGDGDGDG/3p@=xDGDGDGDGDGa3p@=VDGDG`@DGDGh3p@=W7B]@@@@s3p@=Y7B]@@]@@q3p@=`@`@`@`@QB3p@=`@`@`@?`@!3p@=`@`@`@`@`@+3p@='`@Z@Z@?`@ޔ43p@=\`B EZ@EQB7 3p@=`B]B`BEQBd 3p@=H`BbBlEEQBYC3p@=J`BZ@`?DQB`.3p@=[`BZ@Z@ @QBE3p@=X`BZ@Z@CQB S3p@=DhB`@ A`@QB@`3p@=\hB`@HB`@QB93p@=@A @A\@`@QB]3p@=Z@`@Q@`@QBm3p@=Z@Z@FCQBE3p@=XZ@Z@hBDQB|3p@=N\@@`@`@QBQM3B0Gp@=.Z`e  0P #00Gp@=E`ektЫ І 0 ܤ}G`@=@Ae&><}G`@=@ A fir3p@=*j(`E@P@g)3p@=k@j(Z@?@_"}G`@=4d@A }G`@=@A Y}G`@=FAp`̢}G`@=``APd}G`@=cA\0Gp@=$s@%` { 0p@r{ r!}G`@=AP%_ L0Gp@=`vP%N  uf~`Vu[z}G`@=&@AP%_N}G`@=AP%D0Gp@=gyP%N 0vf~`V` vM ?~G`@=PzP%P"tDP{׳}G`@={`ANЛ}G`@=0 A&~G`@=A`i]]ϲ ^]]| ~G`@=hzf40 Y ~G`@={`zf40|> ~G`@=tzf407y#~G`@=VIN ('I3p@=z`x(CQ@F`*func(io.Reader, interface {}, []pkix.RevokedCertificate, time.Time, time.Time) ([]uint8, error) 6~Gp@=oD`*@j44~@j44p= 6~Gp@=f`D b))#`V''bE 6~Gp@=`DmXX`P`P`XBs 6~Gp@=h DPR`Vb 6~Gp@=]C\Rp4ua|FgE 6~Gp@=^C\RG @| 6~Gp@=HDhR&@ux#x#@ # #a 6~Gp@= FhR&@ux#x#@ # #0J 6~Gp@=V@AhRN pn&pn&0o&o&YU 6~Gp@=_ChR-t@%@%bQ@0%0% 6~Gp@=1`DhR-t`%`%bQ@p%p%~/ 6~Gp@=?@1EhR-t%%bQ@%% y3 6~Gp@=(axEhR-t%%bQ@%%2} 6~Gp@=V8``ChR-t%%bQ@%%.*# 6~Gp@=q8 DhR-t&&bQ@ & &m7C 6~Gp@=8aChR-tbQ@%%p 6~Gp@=3H@bChR-tЈ%Ј%bQ@ % %L* 6~Gp@=(AhR-tbQ@`%`%9[4 6~Gp@=JbChR-t%%bQ@%%P 6~Gp@=HAhR-tbQ@` &` &tZ 6~Gp@=* dChR-t%%bQ@%%o 6~Gp@=1dChR-tbQ@0 &0 &V 6~Gp@=UyEhR-tbQ@`%`%$ 6~Gp@= '`AhR-tbQ@%% 6~Gp@=cFhR-t0=%0=%bQ@}%}%; 6~Gp@=8fChR-tbQ@@%@%l 6~Gp@=P1Ahe0`#`#;t? 6~Gp@=@CheN "#"#hv####%& 6~Gp@=[DP@`M`M Zt0N0NaL 6~Gp@=PMBPG `NN0OOLj 6~Gp@=h`\DP@QQ|RR" 6~Gp@=% AP@`L`L|LL 6~Gp@=NBP@`S`S|0T0T4@ 6~Gp@=AP@0U0U|0V0V6^a 6~Gp@=NBP@VV|pWpW& 6~Gp@=OBP@XX|XX M 6~Gp@=ҼOBP@0Y0Y|YYm 6~Gp@=AP@`Z`Z|0[0[%u 6~Gp@=DP@|Y u 6~Gp@={E0 vpp8[( 6~Gp@=D`N ~~hv]~ 6~Gp@=HA`\k``b`bL`II'? 6~Gp@=Dv vWW8[@U@U~ 6~Gp@=֫Br000ЕЕ( 6~Gp@=0pCHN 0 0 hvP P o 6~Gp@=n`B0Pc 2@ -@ - - -~m 6~Gp@=` Dw*`0O-0O-Nk R- R-NK 6~Gp@= !D p*`&-&-Nk)-)-`u 6~Gp@=pqCXPI-PI-6G-G-S 6~Gp@=p6 :A`e y y 00 0 cC 6~Gp@=Z_:A`e @| @| 0 dnR 6~Gp@={E:A`e ~ ~ 00 0 z 6~Gp@=.A`e  0P P Mp 6~Gp@=y@;A`e P P 0p p 1 6~Gp@=E%;A`e  0 f 6~Gp@= `EByj1j1&Yj1j1Ls` 6~Gp@=` ]DByq1q1&Yq1q1in 6~Gp@=. EByu1u1&Ypv1pv1 6~Gp@=E]D  tP 1P 15 1 1m9 6~Gp@=.E  t0 10 15 1 1"Y 6~Gp@=4ME  t 1 15 1 1(@ 6~Gp@=@[E H411|112 6~Gp@=`C H411|11ٕ 6~Gp@= \E H4 1 1|11 6~Gp@= @e ..z..~} 6~Gp@= 6~Gp@=05FP%=0@RW 6~Gp@=BP%{C96 6~Gp@=b@GAP%CLE 6~Gp@=ULGP%o+`V&& `$`$ 6~Gp@=gAP%N f~`V``"~ 6~Gp@=GAP%C撚 6~Gp@=PAP%P"tDPNQ 6~Gp@=HAP%C;( ~G`@=CP%\`VVZ`VUAV; 6~Gp@=OD`%N hv00= 6~Gp@=L?Ap%8[` ` dm`pP P .% 6~Gp@=Ap%(`dmA; 6~Gp@=GCp%(`P P dm  B?A 6~Gp@=gU@Cp%(`  dmWR 6~Gp@=d D v--[-- 6~Gp@=T Cc9R: 6~Gp@=U C/ 6~Gp@={`A`V@@``VPPs( 6~Gp@="`SE`VPP``V 6~Gp@= TD%@w 6~Gp@=C%$|` ` P@ @ ].K 6~Gp@=DN ``hvuI^ 6~Gp@=iC@  t` ` V 6~Gp@=A Ai]]ϲ ^ ^\ 6~Gp@=hAzf40' 6~Gp@={Azf40 a| 6~Gp@=t@Azf40 6~Gp@=DVIN `(`(]lJX 6~Gp@=AVIN ((f*func(*tls.Config, *tls.clientHelloMsg, *x509.Certificate) ([]uint8, *tls.clientKeyExchangeMsg, error)f*func(string, string, string, map[string]*parse.Tree, ...map[string]interface {}) (*parse.Tree, error)f*struct { F uintptr; s *unsafeheader.Slice; size uintptr; typ *reflectlite.rtype; tmp unsafe.Pointer }[}Gpg7PY>GBPk}Gpg7@ =`HB %0}Gpg7\=HBp4u }Gpg7@ F>`IB b8KX}Gpg7@ F>IB 0dl}Gpg7 F>`JB 0}Gpg7  F>JB }Gpg7 F>`KB !I}Gpg76>KBv6|ht}Gpg7@6>`LBv'!}Gpg7!=LB1ik`U~}Gpg794=`MB1[`9p@=P`OQ@PG `N0Oe0!p@=P@]@P@`S|0T;LTKp@=QzBP@V|pW).p@=`RQ@P@XP|Xp6 Xp@=ҼRzBP@0Y|YBX}Gpg7@`F>`PB`\k`KG}Gpg7'`F>PB`L`^}Gpg7`QBN }Gpg7H=QBHo}Gpg7 H=`RBHf4@}Gpg7xH=RBHbnЇ}Gpg7H=`SBH0 )3p@=F`RA (C B` BQB̄3p@='F`RA`B\@`@QB-XyK3p@=pF (C B E` BQBwk3p@=HF (C E`@`BQB\3p@= DGDGDGDGDGDG}'3p@=DGDG`@`@DGDGM03p@=`@`@DQ@Q@QB 3p@=V`@`@`DQ@Q@QB%NH.3p@=W`@`@ DQ@Q@QB93p@=Y`@`@`@`@`@QB۟~3p@=Z`@`@rBQ@Q@QBMv3p@=P`@B=A`@`@QBDe}Gpg70?YB0Pn }Gpg70?`ZB0PD``uX}Gpg7 0?ZB p'S<}Gpg72 0?`[B p*j`<}Gpg76L?[B*@uv}Gpg7ԭ@M?`\B6@lSN}Gpg7s`%?\B`e0}Gpg7~%?`]BeC 23}Gpg7y@%?]Beݫ}Gpg73%?`^Be!t7}Gpg7%?^Be5F(}Gpg7[?`_Bc @ZPZ}Gpg7p \?_B  tTB}Gpg7@ \?``B r@u:n}Gpg7%?`BeE0}Gpg7 &?`aB fVt?}Gpg7ƿ &?aB fC2rR}Gpg7z &?`bB f c}Gpg7 &?bB fPIC3p@=  f BQBP33Ӕi}Gpg7Q &?cB fx_}Gpg7"@ &?`dB fPB3p@=0@ f cBQBP33 3p@= f0`@`@`@QB23p@=:j0F@]@`@Q@3}Gpg7@>`fB(lD3p@= (0FQB@QBV}Gpg7p>`gB(FM}Gpg7 x=gBxG!R8}Gpg7T@x=`hBx v%(}Gpg7T@x=hBx[Kb}Gpg7yx=`iBxh >}Gpg7Px=iBxZ6 k2}Gpg7`x=`jBxn6P9}Gpg7$x=jBxdm`p!F}Gpg7Tx=`kBx8[!}Gpg7y@x=kBx)k<}Gpg7=`lB H qOnp@=hi@]@P`!8 0!8 „[}Gpg7P=`mBPIGtQT}Gpg7z@P=mBPn)tj}Gpg7=`nB2bF V}Gpg7=nB2@,"}Gpg7=`oB2`V>KB}Gpg7-@=oB2J~v~߅}Gpg7|=`pB2`VsX}Gpg7D@=pB2v-U}Gpg7jh|=`qB|n)tӳy}Gpg7 P=qBP%0SA }Gpg7=`rB%B?R*M 5p@=@Z@=AD8G jF}Gpg7 ;?`sB { Oӂ}Gpg7hp?sBpP|[}Gpg7p?`tBpPt}Gpg7Up?tBpPS)8!}Gpg7@PY>`uBP [F6 ~G`@=xP!-"}Gpg7 =`vB % XoX@,޾}Gpg7/=vB &4@uy}Gpg7=`wB @u`4;A}Gpg7 F>wB C|iSz}Gpg7V@8%>`xB8e `"`Z}Gpg7&h>xBhR  n@}Gpg7yh>`yBhR -tbQ@5}G`@=[`yBheN 0 #"$}G`@=d`zBheN $#"-}Gpg7@PF>zBP @|<+0Gp@=y``@' g  g0`ht}Gpg7?g={B r0e>3p@=yZ`@`@Q@Q@Q@DQB]3p@=n[`@`@Q@Q@Q@`DQB;&P&3p@=f\`@`@Q@Q@Q@ DQB3p@=`@`@`@`@`@`@QB׫3p@=a`@`@`@`@`@`@QBF 3p@=`@hB=A?!G!G`@QB}3p@=h]kBQ@Q@Q@@]@@\@>F073p@=Z@Z@Z@A@?GQB p}Gpg7]@0?`B0P c 22<}G`@=^B0P0---}G`@=$``B0P0;&}G`@=B0P0}Gpg77?`Bw *`Nk1}Gpg7 0?B p *`Nk[f3p@=  p(=A=AQB*j%-%- }Gpg7x.M?B Cw~@i-}G`@=`Be022i}G`@=xuBe022f8}G`@=$``Be022S *}G`@=T Be022I7r}G`@= `Be0}}G`@={_Be0}G`@=`Be08}G`@=S@Be0J:>}G`@==`Be07-}G`@=^%Be0oh}G`@= `Bc @Z%11ȝ}G`@= Bc @Z@%1p1eZ}Gpg7 D@`BDW &'|de}Gpg7@[?B By&YHUd}Gpg7( \?`B  H4|1}Gpg7%?Be t6@lo˹(}Gpg7 %?`Be Cz~XX<}G`@=yBe0}G`@=4>`Be0Ŝ}G`@=w%`Be0P0[/bJ}G`@=B`Be00[/e4H}G`@=T BeH q`0N.vR}Gpg7g &?`B f ByS.}G`@=4B fx42Sg,}G`@=``B f07q1}G`@=HB f043jJM}G`@=6 `B f0v13w}G`@=_B f0HN}G`@=``B f043Ĺ}G`@= @B f0403"}G`@=`B f0U}G`@=B f0}G`@=P>``B f0z}G`@=%B f0b}G`@=8 `B f0C w}G`@=%B f0C_s}G`@=N`B f0X}Gpg7 P?BPP |#|t. 3p@=3@j8F`@Q@Q@`E}Gpg7>B( V@|V@rZ}Gpg7p@>`B( 3pve}Gpg7`@>B( N 3|}Gpg7bx>`B( r0,DW}Gpg7_@>B( N q->|}Gpg7>`B( _ t0;e}Gpg7 >B( N s("}Gpg7x=`Bx F6Zv4}Gpg70x=Bx  v[z}Gpg7@x=`Bx [8[z }Gpg7@x=Bx n6PZv}Gpg7x=`Bx  v8[ΰ,}G`@=ʉ`Bx[  9ѷ$}Gpg7z@>`B@ |TT&x}Gpg7!BP=BP *(0^0Gp@=/`PN ! IGtp! n)t! gl.~G`@=`PN !h!IGtp!h!n)t!i!)t}Gpg7լ=`B2 &`TZrS}Gpg75=B2 j5#-}Gpg7=`B2 ^`Vɰ3p@=(28 A@E`@BQBo}Gpg7Fc=`B2 tt|tjb}Gpg7ПP=BP% N f~`V ƹ:}Gpg7 p=`Bp% (`dmˆ}Gpg7{=B `V``Vyj}G`@= `B { (0(p*func(*tls.Config, *tls.clientHelloMsg, *tls.serverHelloMsg, *x509.Certificate, *tls.serverKeyExchangeMsg) errorq*func(*tls.Config, *tls.Certificate, *tls.clientHelloMsg, *tls.serverHelloMsg) (*tls.serverKeyExchangeMsg, error)s*struct { F uintptr; c *http.Client; icookies map[string][]*http.Cookie; ireqhdr http.Header; preq **http.Request } 6~Gp@=xuBP!-"/2A 6~Gp@=VYC %N ` ` IGt n)tP P  6~Gp@= ZC RC|@]@]&^^&P]P]6 6~Gp@=`B RC|bb&cc&bb-,/ 6~Gp@=DD C|!!i ! !@0%0%*& 6~Gp@=ZD C|i@PPy9 6~Gp@=D,RC|&&s 6~Gp@=9DhR&@v6&6&Et6&6&F`7&`7&nL 6~Gp@=@gChR&@v8&8&Et8&8&F8&8&y 6~Gp@=y{B`@' gg gg0`h`h8Lo 6~Gp@=B`|PkPkfkk``l`lW 6~Gp@=Q'@|`]`]r\\0]]M?/ 6~Gp@=(@|\\rZZ0p\p\ 6~Gp@=@(@|TTr`S`S0 U UH 6~Gp@=(@|RRr@Q@Q0SS!ߍ 6~Gp@=(@|0Z0ZrYY0ZZi 6~Gp@=)@|YYrWW0`Y`Yp p v ( 6~Gp@=APN 0 0 IGt` ` n)tP P kh 6~Gp@=pT@2ht>`V0`VV} 6~Gp@=E2 vO,O,[K,K, Inn 6~Gp@=B2|**fp*p*`** 6~Gp@=HE2N ,,een.p 6~Gp@=7D2N ))IGt))n)t))8 6~Gp@=*C2N 08,08,IGt`8,`8,n)tP8,P8,j 6~Gp@=zyC2 v`,`,[,,)k`,`,;j n 6~Gp@=U6E2 vг,г,[2,2,8[P,P,} 6~Gp@=Z@C2N 0-0-IGt--n)t - -T 6~Gp@=`E2XP+P+ d++1t + +MO 6~Gp@=$JE@[a(a(\`V`(`(t@a(@a(M 6~Gp@=|=D0%5??0@?@?h7>> 6~Gp@=C|N `0 `0 n)t 1 1 hv1 1 hs 6~Gp@=]hB|&` k k k k 8l l W` 6~Gp@= C@%` ` *t  #p p > 6~Gp@=vEV LtVM. 6~Gp@=`B| G GfGG`@H@Hݣ 6~Gp@=0FD|  f`΄ 6~Gp@=`BP%< <2thk 6~Gp@=KGDP%@N ``f~`VҢ# 6~Gp@=)FAP% Cy ^ 6~Gp@= CP%f+,ly 6~Gp@=ND| f `@ @ /|p 6~Gp@=0QDp%(` dm !    6~Gp@=UDC`VPP`V``\`V  >| 6~Gp@=C..=~s 6~Gp@=h*`Bzf4 >a 6~Gp@= Bzf4 > 6~Gp@=WE`p4tZ(Z(P[(P[(0[([(T9 6~Gp@=sE`p@`*(`*(`V,(,(pb@ 6~Gp@=CpP|@@Zq-[9 6~Gp@=`BpP|Zq-[j 6~Gp@=@CpP|Zq-[ 6~Gp@= ZDpP|Zq-[ 6~Gp@=FpP'`ppt  -`ٍp@=ڈ cWCP|0nf@n`Тn Jp@=cWCP|mf  m`Рm0 |g7` >B R(F>ZC0 ^6g7e >@B R(?>`Bq#}Gpg7q@ F>B (C|&&QtpV>`@=f,>@B,R(=`l@W~}Gpg7BBv(p=hBHU0X>`@=?@BP(m=@@tsO~G`@=GB\R(N>Q@| q}Gpg7V{h>@BhR(C|i@k}Gpg76@h>BhR(F=aC}Gpg72@h>@BhR(&@vEtFPT}Gpg7N`ih>BhR(g=Bodp@=X@Bhe(>`@=}Gpg7ABP(>=%F-}Gpg7AE@B`(>=%F'}Gpg7=B`(>=%Fp@=,F`|Pk0fkp``l@@D0Gp@='=B(a=Z@+ C}Gpg7x=@B(|r0}]}Gpg7=B(Wtr03p@=֫`V Z@QBr ^ ^0^^ n}Gpg7 H=BH(g=QBb3p@=2`@`@Q@Q@Q@Q@rBQBg׋ }Gpg70?B0P( |#|o`VM}Gpg7 0?@B0P( |#|un`Vᢜ9~Gp@=n`W0?B0P(>=@?9~Gp@=M?@B(*=B }Gpg70%?Be( |#|`V}Gpg7D%?@Be( |#|h`VL}Gpg7` [?B(&&'|8]"}Gpg7%?@Be( |#|``Vß}Gpg7 &?B f( |#|`VNπ}Gpg7\ &?@B f( |#||b`Vϥ}Gpg7} &?B f( |#|`Vqp@=@]@HtG @t-n-@u u-n-tPv-o-]}Gpg7 *?Bj(.~ <~ Y@p@= `f>@B((B>`@"-~G`@=pF>Bp(!>]@r@}Gpg7Ex=@Bx( v[8[IKp@=íx=Bx(=@{Qz}Gpg72=@B ( v[@^b}Gpg7>B@( |Pv}Gpg7TP=@BP(N IGtn)t]Ru9~Gp@=hP=BP(=`B_9~Gp@=hz@P=@BP(=`B}9~Gp@=zP=BP(=`BP`9~Gp@=ɊP=@BP(=`BJ@p@=؊BP]Mj Tp@=4DP|!p;f0!`<`и!;|9~Gp@=7BP=BP( =FN/z+9~Gp@=zuP=@BP( =F30Gp@=`B2(X*>Z@}Gpg7=@B2(8[Jm@yg9~Gp@==B2( =`F4~6p@==@B2(= @I~G`@=K$B2(pc>@|xw}Gpg7r=@B2(j5,`V(Jg7  =B2( >D댋}Gpg7 @=@B2(|[8[O(0Gp@=^.=B2(g=Z@Q0Gp@=$@B(=Z@bٶ}Gpg7$E@B(=QB;7C}Gpg7%r@B@(h=kB{[~G`@=Ph|=B|(?=]@ 9~Gp@=]h`|=@B|(d=@Fgjp@= =B(f=`@g'0Gp@=@ =@B(f=Z@zp@=Q@| G`fGp`@H.}G`@= P=@BP%(=HA}J~G`@=P=BP%(i=@}~G`@=P=@BP%($=]@k+5~G`@=yP=BP%(=FAS ~G`@=`xP=@BP%(a=@X@!~G`@=@P=BP%(=]@ť}Gpg7Y@=@B(|f`f9~Gp@=h=B(X=]@~Gpg7~x%>@Bxe(g==A}Gpg7@=B%(&`8yRNa}Gpg7Y>@B(g=QB~G`@=@F>B(>[@' }Gpg7@B(=QB dNW>`@=4k`T@M?B@(=`@P9}Gpg7(@Bw(=QBM}G`@=h*Bz(=l@5-~G`@= ` @Bz(=@iv~G`@=` BpP(=@n:~G`@=@@BpP(W=Q@0}Gpg7P =B %03@Xov# ;|}Gpg78x F>@B 0OE|H5|1po}Gpg7h>BhR09.9:2T2 2W}Gpg7lTH=@BH0|E`1`8[gƔ}Gpg76@%?Be0 |#|`Vh`VB3p@=e8`B]B`BEQBC 2 2 2Orao}Gpg7%?Be0`|t'y``Z2s}Gpg7[?@B0By&Z7%mI}Gpg7 @ &?B f0 |#||b`V`VZ}~}G`@=c@B fBy4@204`2W6}Gpg7B>B(0  tCs0DP}Gpg7z>@B0 Hoc}Gpg7x=B 0@ t>~U}Gpg7Y>@C0 v[h ?}G`@=kC2`V, T,``VP,0T,a<.}G`@=@`n@C2 v,*[ ,*uN}G`@=LnC2N ,е)1`Vp,) pg7$o0C=]@%=G1Bpg7XC=]@%=FxApg70C=]@%=E pg7vC=]@%= CS`Vpg70C=]@%=FOȵpg7C=]@%=BVpg7З0C=]@%=`Fpg7C=]@%= E^qApg70C=]@%=UF {pg7|C=]@%=A;:pg7 0C=]@%=?C^pg7LC=]@%=@CͰpg7x0C=]@%=DC64g7C=]@%=`CKpK`@=0 C=]@%=A= rpg7 C=]@%= FChpg7܃0 C=]@%=FCY4pg7Ћ C=]@%=`GC((la+=0 C=]@%=HC{ *pg7= C=]@=MA pg7w=0 C=]@=Z@opg7 = C=]@7=`C$rMpg7 =0 C=]@7= CŽpg76h> C=]@F=;@"apg7h>0C=]@=;@Mhpg7Δh%>C=]@= E 0`@=T@?0C=]@==P@b30g7[@?C=]@^=`B ng7`L?0C=]@=[BiVpg7 &?C=]@=;Aampg7, &?0C=]@=;@ 0`@=T*?C=]@==P@b30g7[*?0C=]@^=`Bqpg7:>C=]@=mESXBpg7>0C=]@=@g? ڼpg7i>C=]@`= @ SEpg7i>0C=]@`=`@ Dpg7i>C=]@`=@ P0C=]@`=@ s; &pg7(>C=]@=`@  ypg7o>0C=]@=`@VN)pg7=C=]@ =F bg7lo=0C=]@=E'pg7NYP=C=]@T=? +Tpg7Ho=0C=]@=`@pg7=C=]@=@ @ Dߕ`g7 =0C=]@*=!GJpg7=C=]@L=@ @upg7/=0C=]@(=FI rpg7xd=C=]@=Z@0^$pg7=0C=]@8=D(]@pg70=C=]@8=`PDFspg7c@=0C=]@m= Fscspg7Վp=C=]@=A pg7wp=0C=]@=Z@ pg7`0?C=]@H=h?\Dp=`@=0C= ZC6=@(B[hg7@C c>Z@>A Q }Gg7o0C%=DG(=DGT' }G`@=d`F>C=]@=Q@Ԛ=`@=o |P=0 C=`BU=Q@0 V>`@=P= C=Q@=f@А=g7T`h%>0!CB= Cg= E d ~G`@=@~%N k `1 pl 2 IGtm 3 n)tn 3 *struct { F uintptr; serverRandom []uint8; clientRandom []uint8; version uint16; suite *tls.cipherSuite; masterSecret []uint8 } 6~Gp@=ˈ`VCP v v@8[UD 6~Gp@=ڈ`BP|f`ТТH5 6~Gp@=BP|f  `РРG 6~Gp@=`DP p3p3;::`V`V==  6~Gp@=] @*EPhhH`d`dIcc:jjT 6~Gp@=B RC|&&EE 6~Gp@=f`D ROE|EEHII5|EE1EE 6~Gp@=B,RC|  &``&00˶@@@WoH 6~Gp@=ACpG @ut`4>Qe 6~Gp@=$FhR-t $ $Bt%%bQ@0$%0$%@%@%F> 6~Gp@= 2EhR9&&.9:2T2@&@&"aMS 6~Gp@=N`BhRN ##IGt##n)tP#P#hv##î 6~Gp@=tChR9p&p&.9:2T2q&q&c+s 6~Gp@=hUZFȺ_@jj000=v[߿) 6~Gp@=ū'@|PPWt0Q0QrpNpN0PP!} 6~Gp@=Lg@H@QQ@ @ avU 6~Gp@=6 Ce |22#|22`Vh`VU) 6~Gp@=4*E&'1'1&(1(1'| *1 *1e)|*1*1 6~Gp@=EDWB@x&&'|0z $DBy/1/1&Z/1/1/1/17 /1 /1) 6~Gp@=dEBypn1pn1&Zo1o1o1o17:1:1+ 6~Gp@=x;EBys1s1&Zs1s1t1t17`T1`T1z@8 6~Gp@=~d d r 6~Gp@=:{ED(AAG@CC0pApA0; 6~Gp@=`BP%WtV V/|Q 6~Gp@=(KDP%~@@  Wt  6~Gp@= NDP%+`VWth/`V``<' 6~Gp@= QDp%(` dm -I`VwOs 6~Gp@=oCGOt/>s_] 6~Gp@=hC`V``V;`V\d5:U 6~Gp@={CZ@ppX`V\`V  R~4 6~Gp@=Bxe``j00|ГГ `s 6~Gp@=@`!C%N k k pl pl IGtm m n)tn n Ͱv 6~Gp@=Ez ``$9M 6~Gp@=VE {E `V |( |(ru(u(2@`@y(@y(s׭ 6~Gp@=ZDpPI9po``aT 6~Gp@= LA`xHZt p@=g@]@pG @u t`4P9}Gpg77H%>BCHe(^=hB[$B}Gpg7XB@h>`CChR8OE|H5|1|'K&0Gp@=zDCP(=Z@N @PC0Gp@= DCP(=Z@N P p9p@=`F>@EC`(=A ``}Gpg7`F>EC`(l=QBN m@n^)D 9p@=Z`F>FC`(=A W]9p@=l``F> GC`(=A @@/09p@= `F>GC`(=A  1K[g7Z`F>`HC`(X=nC @ p@=f5*?ICj(?>`?\k`@-p9-|r'}Gpg7%?ICe8 |#|o`V``Vp`V }Gpg7j &?@JC f(0=Bx4[3!}Gpg7>JC(8  Xt tCs0/}Gpg7T@=KC8C|`V|8[g ͙}Gpg7`i LC(=kB8[p44Y 9~Gp@=Y>LC(X=`C[''V}Gpg7}@`MCP(=kB8[p!!Aҹ9~Gp@==NC2(4=E[|+|+&}Gpg7 =NC2(j=kB8[,+gQf}Gpg7i@=@OC2(g=QB[@,3+rL9~Gp@=5=OC2( =`D[ + + T}Gpg7:6=PC2(l=QBN ,P,5}Gpg7=`= QC2(l=QBN , ,s}Gpg7h =QC2(j=kBdm`pP-`*G9~Gp@=2@! |=`RC|(d=`AvK}Gpg7SC|(=kB8[P WN}Gpg7n@=SC8t %iK)@W e}Kk}Gpg7`p=@TCp%(j=kBdm`pM@ '9~Gp@=r ;?TC {(=`B @(@(+7}Gpg7TUC`p(=QBN p^(%(B}Gpg7Pp? VCpP8E`E@HP@  O|Y>ˈbPY>VCP@:=F=`@ 0~G`@=xPY>`WCP@=\@=\@j=`@=PY>XCP@=\@=Q@wt~G`@=@PY>XCP@=\@=Q@0(Ka=c+=T``Y>@YC`@=D=Q@PlY}G`@=V`YC %N ` p IGt n)tP mu~G`@=xBtІp4u{| 0@0 Pg7  > [C R@X=@:=@0ͷ$}G`@=]!@ F>[C @=]@=]@ (W>_+=`\C8R@>D.=DG0@U}Gpg7i>]C@Z@DUj Y0Z / pbpg7]C\R@= ZC =`@}G`@=B@^C\R@$>Q@= ZC1}Gp@=`C^C\R@=DG=Q@)=pg7_ChR@%=hB=Q@ 0 r g7`Eh> `ChR@=`@?>`?00 ag7V8`Gh>`ChR@=`@\=`@00 P#Eg78`Hh>`aChR@=`@>`@0䁑}Gpg7bh>bChR@C|`V|8[( Dg73HHh>bChR@=`@?>Z@00 φg7JIh>@cChR@=`@$>`@0 ~Ocpg7mh>cChR@= A=`@ @p@=*Jh>dChR@=`@rz>@00 ls g71`Kh> eChR@=`@=`@0 ]=`g7^h>eChR@A=@h@=B op@=\@h>`fChR@=`@>\@00 4sg78`Mh>gChR@=`@=`@00 g7h>gChR@ >`@>`@0 'l=`g7=h>@hChR@X >@h@=B ZOh"g7@h%>hChe@ >`@}= @0LE}Gp@=iChe@=DG=Q@hsF+= jChe@=kC>[D 0Qm =hg7@h%>jChe@=Z@=Z@ `PS1+=c7@`kCȺ@>MBH?3E0((X+@=FlCȺ@>=MB#==A0`=p@=`F>lC`@=Z@=Q@ ( p=\+=^E @mC`@#=fGw=Z@0K~G`@=`F>mC`@`=@`>@(dg7nC`@8=%FH>`@  g7`F> oC`@f= ? >A0f/}Gpg7@H=oCH@[n6PF`VZv1` V=g70VH=`pCH@=Z@g=QB W=g7qqCw@=Q@#==A o(=xg7~@qC p@==A#==A DBg7pXM?@rC@=D=A |ґ=xg7%?rCe@=\B==A Hpg7)@%?sCe@=Cf=`? ߠ=hg7g@ tCe@=Z@#=Z@ %s=g7>tCe@>F*?Z@ _=g7%?`uCe@=A==A (VX'g7`6%?vCe@=F>A>`@ `tH=g7vCe@=Z@#==A BP=xg7m &?@wC f@=\B==A pg7~ &?wC f@=Cf= ? W=g7H &?xC f@=;A==A [=xg7z`eP? yCPP@==A==A V.=`@=|:yCj@=@=O@}Gpg7A@>`zC(@q @|{(tss S2*=hg7g{C(@=Z@9=Z@ 2$dp@=>{C(@(= ?>@0 e1p@=N@>@|C(@(=@>@0 V|p@= 7>|C(@(=?>@0 5Tp@=,>}C(@(=`@>@0(+ˬhg7e> ~C(@=Z@=`? =g7f>~C(@=Q@==A0 @$g7``Cں@= @#= @07$}G`@=A`CpN  IGt n)t! q^=p@=q&C@=Z@==A 6&pg7`s`>@C`@=CR=`Ai}Gp@=C@@=]@=Q@s8=pg7Cx@%=hB=Q@ ?x}G`@=g CxZ6 k  8[` ` dm`p p j}Gpg7x@=C @ t!( ~||] ~G`@=x  t@ ` Dt `~P 0 @ >~` pg7h2 =C1@=@=G& +}Gpg7`>C@@=Ca=Bg7@C@#=Ap=A Oz0=xg7N@Y>C@^=hBg=QB P:8=hg7 `CP@=Z@=Z@ ( ~g7h CP@=@ Fz=Z@00 ͘g7U`CP@=@ F=lB0 AP=hg7J`CP@>=Z@ =Z@ CܼX=hg7 CP@=Z@=Z@ -=g7@P=CP@2=Q@g=QBqqN}Gpg7P=@CP@*(0P |(_tB?@fW1R~G`@==C2@4=@]@=@3g7v=C2@=`RFR=Af%_=p@=*`= C2@g=Z@<=@ (hhg7;=C2@=Z@=`@ }G`@=zy`C2 v`,*[,p*)k`,* Mx=hg7EC2@h=Z@=Z@ 7v}G`@=ZC2N 0-T,IGt-S,n)t -S, WH=g7@C|@\=Z@=QB X{W>\+= @=C@%@R=fGd=]@0ؑp=p@=VC@%@=Z@=@DA hapg78`@= C@%@U=\@=`@ h4$g7L@=C@%@=F)=?88Зu /=~7< @=`C@%@=`>D=`f@p),=0? @=C@%@=`>D=k@p88FAw-=20B @=C@%@=`>D=@pXXQ$1X ,=?&`E @=@C@%@=`>D=@p88Z.=L0@H @=C@%@=`>D= @pxx4,=X& K @=C@%@=`>D=@pM#}Gg7`@= C@%@=Fh= F88}I"v+=R`) @=C@%@=2F4= F`;=pg7_=`C@=\@d=?@0y=4 C@= D*=@P`PY+= =C@0=CD=?0 kg7}@=@C@H=@-= @0 ,g7=C@= C=? n=hg71 C@.=EAj=Z@ Npg7@F> C@=Q@=`@՜D}Gg7P=CP%@=D=Dy=pg7P=`CP%@U=Q@0=?S}G`@=P=CP%@^=]@b=]@}G`@=P=CP%@=]@b=FA)~G`@=P=@CP%@=X@0=Y@I:}G`@=&P=CP%@=]@_=]@w:N}G`@=@P=CP%@=`EH=`EtZl~G`@=`P= CP%@Pf>A=]@A}G`@=0P=CP%@=A=]@~G`@=< P=`CP%@=X@=Y@0K X>`@=@ CP%@=Q@>`@@ 1PX>`@= CP%@=Q@>@B}G`@=p P=@CP%@=]@L=]@&|r}G`@= P=CP%@f= FA=]@}Gg7`P=CP%@=?H=?D6@W>`@={P= CP%@$>`C= y@0p`W>`@=P=CP%@=C=Q@ )/g7p=`Cp%@=E=`@j`1=G}p=Cp%@\D>@z@ >`@09Bh=g7gU`~p=Cp%@`=A=Z@xS}G`@=p=@Cp%@K=Q@]=Q@3H~G`@=h|=C@R=Q@=\@ i6`V>`@=U=C@=\@R=C _@l`V>`@={`}= C@H=`AP=@B`}Gg7h=C@=]@=]@ϳ}Gg7`=`C@=C=C 6ޅpg7Y=C@=]@:= @ =g7=C@>C=@@ $6~=g7&=@C@)==A=C E"p@==C@R=`A4=@~G`@=бC%@D>@~>@0 W>`@= C%@D>l@~>\@ !3}Gp@=PC%@=?=]@V~G`@=`C%@_=Q@h=Q@U=p@==C%@=Z@=TD ( g7UC%@= TD@=`@ z }G`@=@C%@h=Q@<=Q@( =^+=F>C@=Z@=fG U,}Gpg7h@>C@:50>@" o1P8+AZt+=i= C@ =@@^=E 漭v8=g7!`:?Cz@a=Z@g=QB NX=hg7j@`0?`C`p@=Z@=Z@ Ppg7 p?CpP@=Q@T=`@x\F`W>`@= CpP@=l@=Q@ J}G`@=& @CpP@>=Q@=Q@(ROvhg7Ch`8?C`x@f=Z@=`@ *struct { F uintptr; primaries net.addrList; fallbacks net.addrList; sd *net.sysDialer; results chan net.dialResult; returned chan struct {} }8= 6~Gp@=%@ %3@ Xo vЯ Я 0 #  ]r 6~Gp@=,E %3@ Xo` ` v 0 #  }L% 6~Gp@=x ZCBtІІp4u{|0@@$ 6~Gp@=T.E8eC|WW`V`W`W|VV0T0T8[ V Vj(i 6~Gp@=6`BhRC|p#p#`VPq#Pq#|p#p# r# r#8[q#q#u 6~Gp@=^`eChROE|f#f#Hg#g#5| f# f#1f#f#|f#f#Oֵv 6~Gp@==gChROE|h#h#Hj#j#5|h#h#1 i# i#|i#i#xW 6~Gp@=4E`b|l`V@@@00`V>o 6~Gp@=x`E`p@0 0 0OE|@0@0H005|00100| 6~Gp@=g`#DBy 01 01&Y0101&Z`21`2101017@01@01(6 6~Gp@=Ce |00#|P0P0o`V``Vp`Vގ 6~Gp@=@{C(|__F@^@^r`[`[0]]#qp_p_s 6~Gp@=N{C(|rrFPqPqr`n`n0pp#srr? 6~Gp@=, }C(|00Fr000#sH 6~Gp@=@(V@|V@r|00f`@@95C 6~Gp@=*Dpt!tt # >` ` [h>k 6~Gp@=xC  t@ @ Dt `~P P 0 >~` `  6~Gp@=@C@ |``Pn @0pp 6~Gp@=NE v2'2'[ 3' 3'h @3'@3'`3'`3'|3'3'ٵ 6~Gp@=`EE2,,kN++#E1 , ,x 6~Gp@=@E2,,0@,@,\`V^`V0)0)d 6~Gp@=6 D2P,P,0,,\`V^`V,,di} 6~Gp@=L`D2,,0,,\`V^`V , ,dF 6~Gp@= IE2|`!)`!)[P)P)8[p!)p!)[tp")")ľ 6~Gp@=:D2\t++|Nb==I" 6~Gp@=4`DZЬ&Ь&0&0&`Ю&Ю&rp&p&p&&d[ 6~Gp@=`Btpp %iK)@W et> 6~Gp@=BDt`` %iKpp)@W eC 6~Gp@=Bt %iK)@W   e=S> 6~Gp@=pCD`V ^< M!M  6~Gp@=Cγh`E`E#E EE@}EE0EE#vs 6~Gp@=,{ DγhPGPG#E DD@}DD0II;] 6~Gp@=BP%@ @377~:!w! 6~Gp@=*FP%ttpt t@t ~G`@=7`EP%[b<`Vh#_a`Vf{ 6~Gp@=C| f0 0   `V `P P %v 6~Gp@=UE|00@pp,PP.Zc 6~Gp@=x`SD ..=$R K 6~Gp@=YC .pp.=PP$]CPHE`E F 0@HP@7q}Gpg7& `@C0P(=B | --#|-p-<8I}Gpg7X`Ce(=B |22#|22}Gpg76lCe(=B |22#|22v.}Gpg7l Ce(=B |22#|22.S~G`@=_ \?C (p=Q@H410|1p0S9}Gpg7`Ce(=B |0P0#|P00+#}Gpg7 `C f(=B | 4`4#|@ 44'}Gpg7C f(=B |44#|@44N<}Gpg7 r@C f(=B |44#|@447S;}Gpg7`C f(=B |4p4#|@ 441V }Gpg7>C(H R4\4 tCs0Zt0F}Gpg7ىh Cx(p=hB v   [ 0 x}Gpg79P=CPH vE~Z6l   )31}Gpg7wS`m=`C2(g=QBbF V,*J~v,p*D&39~Gp@=hc`o=C2( = E v h* h*[pb*pb* 9~Gp@=$`p=C2(=UFZ6 k,,8[p,p,vݵ}Gpg7nq=@C2(g=QBN -+hvP-+(rVg7Hh>C=]@7=`DTv>`@ g7(h%>pC=]@n=`?Bz >g? >g7]`F>C=]@,=`=C@=@? "qg7p=C=]@=D=;F Wg7I=PC=]@=UF>@ xg7ؠ=C=]@d=;F0=`B K]4g7y=C=]@z> @F=#@ W]g7`8?0C=]@=?a=Z@ Z֝p@=Z@| f0    `V `P fLIg7P=pCr=C(=\@$=@ 88asWX>*4F C(L> E5 @ >@0  88X>*4`HC(L> E5 p#>@` #88꯰'X>*4 L`C(L> E5(>@(*struct { F uintptr; fr *http.http2Framer; invalid *error; sawRegular *bool; hdec *hpack.Decoder; remainSize *uint32; mh *http.http2MetaHeadersFrame }*struct { F uintptr; lookupGroupCtx context.Context; resolverFunc func(context.Context, string, string) ([]net.IPAddr, error); network string; host string } ܖ=xg7.@C @(=IB%=hB [C?}}G`@=tjChR9p& &.9:2T2q&@ &t=g7Che@n)> E=Z@N @!#Д"l(=p@=®d> Cd9@=Z@X=Q@ N !P! \fg7= `F>C`@L>A=A @_R@=pg7Da%?`Ce@>\B(>@ 6@lP00NjX=p@=ؿb &?C f@=;A= ZC By42w}`=p@= `c &?C f@=;A= ZC By04P22}Gpg7,B@P=@CPP vE~[Y~l   8[(Chg7`P=CP@@=Z@= @ t@ Zw=pg7C2@.=?Ax=Z@N 0,0')^=g7== C2@j=kBg=? 8[,)"ӉW>`@=b Cz@@=y@`=@]@0( g7@ ;?`C {@\=@ F2=Z@0 ((_x2_ 6~Gp@=ByE vM'M'kp@'p@'[`I'`I' 0='0='aB'B'8a @'@'j 6~Gp@=4pE %3@ Xo v0 0 00 0 # @ @ X@ t 6~Gp@= D %3@@ @ Xop p v 0p p #  X@ 2]g 6~Gp@=FhRt8[H&H&I`V1OT 6~Gp@=fHCjZ`@>-@>-yB=-=-`d=-=-|=-=-\k`@-@-L`:-:-.^ 6~Gp@=uCe`|t22'y22\k`22` 2 2`Z22L`22W 6~Gp@=|C(|~~F@}@}rPzPz@@y@y0||#rp~p~_ 6~Gp@=p`)D(|rF~0#W3 6~Gp@= B@@(q ее@PP|{(tssKZ 6~Gp@=(`E v$'$'3'' 4''[''e(`V''v0'0'A0 6~Gp@=gEPR$j3 l l*9UUwJtH>aZ 6~Gp@=E2Ct`U)`U)@,@,0,,\`V^`V,,dk3 6~Gp@=`D2,, tR)R)0,,\`V^`V0,0,d5 6~Gp@=-E2,,@t0,0,0,,\`V^`V@,@,d#p 6~Gp@=d$D2,,`(t@Z)@Z)0@,@,\`V^`VЩ,Щ,d*~ 6~Gp@= iE0%Z00``pprB/k 6~Gp@=zKE| t } } !(`} `} ~P} P} } } |@} @} |} } q 6~Gp@=| EЧЧ~ @@@   ˲ 6~Gp@= F:3sP[P[G VV|ZZ7\\0b8[[lNK ~G`@= CP% `V8!Ї^:-t#@!1L4 6~Gp@=QE`V`Vнн(00(`V````Vs U 6~Gp@=E:665033>@" o661P4P4JN 6~Gp@=_E:XX50VV>@  " oXX1 W W 6~Gp@=2 E:pp500i0i>@" opp1ii:q8 6~Gp@=`aE:))50&&>@@@" o))1`&`&;l 6~Gp@=О D:FF50EE>@EE" oFF1EEz 6~Gp@=@bE:LL50II>@``" oLL1JJ 8p 6~Gp@=C:ss5  0  >@0 0 " o  1   n 6~Gp@=D:II50GG>@GG" oHH1GG 6~Gp@=`C: u u5  0@ @ >@` ` " o  1  ; 6~Gp@=XE:cc5p p 0PbPb>@  " occ1pbpb^fX 6~Gp@=E:P}P}5000ww>@" o@}@}1@x@x#U< 6~Gp@=dE:$$500"0">@``" o$$1""k z 6~Gp@=,eE: D D5000@@>@" oDD1@A@Av6 6~Gp@=C:pvpv50pp>@" o1  0 6~Gp@= E:phph50 0 0 g g>@gg" o`h`h1@g@grQ 6~Gp@=E:`f`f5P P 0dd>@  " oPfPf1eeA 6~Gp@=pE0F F ёtpJ pJ {@opE pE !pF pF ۷|pI pI X__ _ A 6~Gp@=$`E`p7@o@N(N(KpS(pS( `V|#@R(@R((:dp@=5=@D X=`@=Q@0d=@@(p@=D=D Xa=`@I=Q@0v=Q@@ 3Y>`dPY>DPXn=@k@D=`@5=Q@0``v&,= 4 =D %XY >pE=BB*=!G mW>`@=,>@D,RX=B=B=By`W>g7D8RX=DG"=DG=DG )`W>g7Ai>DXm=Ep=Es=E OX'/=`@=h`BP>DPRXa= |@I=@]@L=@]@%A`W>g7@D\RX=DG$=DG%=DG ((:`zb+= dh%>DheXP= A >?=`A@_N`W>g7UDheX{=DG=DG$=DG p:Js+=-i@DheX=Q@=kC@>`@r+= @DheXT=`@>kC0>[Dx`p-= DȺX ->E4>kCd>[D8(Vm@='DȺX=MBj>@0#=`@@8(z+x@=/@DȺXt>>DGc>!G>?@((g @=@=SPF>@DPX.=@z=zB=zB00(MX=d+=T`F>D`X>=%F=QB ">Z@@@8Q px=>=,%`F>D`XO=fGg=fG0p=Z@`0 '^+=\UDvX>=Z@=A =`@0XXk=+=U6>@DvXZ=@(=Q@=kB00$R=400? D0PX=QE%=D0g=QB@((cW>@=W7? DwX=@=QE=?@((PQ3W>@=`X 0?!D pX=@=QE=@?@00 =4k `%?@"DeX=A==A =F@00`4=i+=y@%?#DeX=\B==A =F@8(>@=g`[?#DX=A=Z@ >`@@8(@=>zo[?$DX=A=Z@ >`@@ U x=p@=Нd &?@%D fX=;A= ZC =@0 ʿ=p@=@ &?&D fX=;A= ZC =@0 ]%=g7M&D fX?E@7?? f7??0 Z@<>@00([=@=@(DjX=Z@=Z@ =Z@@ @0=!,*?)DjXR>@vR>@N >{@ x\=hg7p7>)D(X>+G>@=Z@ 8( Ôb+=A*D(Xd=gF)>`@T)>`@@Z}G`@= pF>@+DpXR=]@=\@=\@( HY=xg7,D`X==A=QB =@@{Ie`W>p@=@,DX@=]@=Q@=Q@ 00> =4`-D X=Z@T=Z@ =QB@(Mp@=*x=@.D1X=G=Q@0=Q@@_)z@X>`@=I>/D@X=Q@^=Q@=@ 0 ӣx^+=&&>/DX=PF=QBZ=`@00(_O@=Zz0DPX=@ Fr=Q@0z=Z@@0( -@=vz`@1DPX=@ Fr=Q@0z=Z@@X}G`@=FP=2DPX=S@R>S@=i@(2g7BBP=2DPXd=@F=`@=@@:W>`@=)h3DPX=@T@(>@]@ =@]@886j4P=@4DPXp= @=Z@0g=QBPb=p@=5DPX(=`B(>@]@ =@]@xQ+=p!P=5DPXp=E-=Z@=Z@ ^+=n `k=6D2X=`@=B8T>4@0&pg7 w=@7D2X1=`AU=Q@= 7Cp p@==8D2X1=`A=Z@<=@ I=pg7Xp=8D2X>B=@ R=@"hg7p=9D2X1=A%=Dg=QB0]Chg7L`q@:D2X=Z@=@ F r=Q@P8(aa@==;D2X=?=Q@0=?@$х`W>g7|@=;D2X =F=#@>@ 0(@=@P00}4(=4Vw@=D0%X=Z@=Z@ =QB@(po8=hg7|`0=>D0%X<>Z@&=Z@ 2>@@8(O~@=9 @=>D@%X=2F =\@`=\@dVQYZ,=k@@=?D@%Xd= F >@C=E @8Uc;=x+=@=@@D@%XB>`D=Q@@h=fGPQ7P`W>g7*`t@=AD@%X=sE= F72>]@ P@¦b+=. @=AD@%X=2F=sE`X= @p C=\+=P@=BD@%X=]@=]@=%F v==pg7 =@CDX^=jB=@ =Q@0H84v54p =DDX=`Bx=B0x=BDPcS=`@=h=DDX=\@=@=Q@(H.p@=EDX= @=Q@0=Q@@(p@=:{y@FDX= @=Q@0=Q@@9~Gp@=0`F>GD(X=f?|>>f0=0=` > >d4-=P=GDP%X=@=` @0>@`(6Rɘp@=|P=HDP%X=@=Q@0=]@@ wIW>`@=hGP=@IDP%X=C0=FA R=@GA0P@@Ć+=@P=JDP%X=@4F=tE`= @p`W>g7OP=JDP%X=@e?D2>@e?`C>B ((M0=@=RP=KDP%X>Z@HB>Z@ 3>?@A`W>`@=(@zP=@LDP%X=]@=]@=]@ Y=@=`@=` P=MDP%X=?=\@B=@]@t}F`W>`@=@ P=MDP%X=]@=]@=]@ ̖X>`@=zP=NDP%X=]@]=]@=@  }Gpg7@OD(~>B| P f `@ 00Ϊ̯X=4`|PD`%X=Z@"=Z@ =QB@ `=p@=jp=PDp%Xa=Z@I=Q@ v=Q@08(h@={p=QDp%X= C^=B =`@@P8QR#40`p=@RDp%X=PE>Q@=|@(!\)0=p=SDp%X=Z@.>`{@ e>? 00qRl+=x=SDX2>C=C@D=CP `V>`@=`TD%X=\@=Q@>=Q@jJ@V>`@=0@@UD%X=@]@=@]@T=@e@ UH=`@=@=VD%Xr=Q@=@=@TEMཌ=`@=Y>VDX=Q@=Q@=@ 92 =p@=U=WDX=Z@=Q@ S=@02X>`@=n@XD%X=\@=\@(=\@ `V>`@=@YD%X=\@=\@(=\@8 r3Og7xYD%XJ=@O= @0(+>Q@`0 l}xg7` ZDpPX=Q@=Z@=`@0bg7p?@[DpPX8=Q@s=Q@k=A Zp@=N\DP@=`@>Q@0@`MЭ Zt0Np <$^p@=hO\DP@=`@>Q@0@Q`|RPp=hg7`\[?]D@=A2=D Byq1\1&Yq10\1((`@=E]@^D @V=A>=A0 tP 1 15 11 hg7K`b &?_D f@=;A=eB By4X34Y3Q}=`@=@l_D2@=@A=\@0p, )vp,) -=!=p`D`=@<= @P=@@=]@QU-==0aD`=@<= @P=@=]@,={=aD`=@<=@P=`@=]@XX)68,=u=bD`=@<=@P=@=]@^,=Ar=pcD`=@<=@P=`@=]@^idF,=fr=0dD`=@<=@P=@=]@Q7v,=}=dD`=@<=@@P= A=]@憅X-=_=eD`=@<=@P= @=]@ 3%.= z=pfD`=@<=@P= @=]@B3p-==0gD`=@<=@P=`@=]@zz,=M=gD`=@<=`@P=`A =]@ `@=M=hD`=@<=@P=@=]@j,==piD`=@<=@P= A=]@h,==0jD`=@<=@P= A=]@+IY-==jD`=@<=`@P=@=]@rY,==kD`=@<=`@P= A=]@U(e,=L=plD`=@<=@P= A=]@PPC-=~=0mD`=@<= @P=@=]@7 ,="i=mD`=@<= @P= A=]@I AH-=V=nD`=@<=@P=@=]@5H-=Ţ=poD`=@<=@P=@@=]@H-=R=0pD`=@<=@P=@=]@%H-==pD`=@<=@P=@=]@wD-==qD`=@<=@P=@=]@FH-==prD`=@<=@P=@=]@hĬ-=_=0D`=@<=`AP= A=]@PP[k.=c=D`=@<=`AP=A=]@G(.=r=D`=@<=`AP=@A=]@>-=6=pD`=@<=`AP=`A=]@@,=M=0D`=@<=`AP= A=]@rD-=i=D`=@<=`AP=A=]@yeD-=6=D`=@<=`AP=A=]@(T1b`@=%=pD`=@<=AP=@0=]@@pp/0,==0D`=@<=@AP=@P=]@=-=s=D`=@<=@AP=@P=]@PE"^`@=b/=D`=@<=@AP=@P=]@ppI:,=c=pD`=@<=AP=@=]@,=r=0D`=@<=`AP=`A0=]@0A,=r=D`=@<=AP=`A0=]@02#O,=(n=D`=@<= AP=`A0=]@0<z,=4z=pD`=@<=AP=`A =]@ PP.=~=0D`=@<=AP=A=]@hpg7I*?D=]@^=E=@]@ =@"((Ȼd+==D=]@X=#@=nB =`F@ -g7Č=pD=]@=?B4>#@ Y >`@0 Oړg7R(=0D=]@z> @F=#@ =UF0$O ~G`@=A @%B "`VJ`V`V`V$ }Gg7vP=DP%@[=@?&=@??t dx=xg7d~D@p=hB0=hB! v--[-0- =g7`@D@=Z@=QB N `hv \ `=hg7`V ?DVI@=Z@=Z@ N `('/}G`@=8`DpPE`PE@@H`P@pʷ}G`@=7DpPE` pE!0@!H0"P@"/ 6~Gp@=`EvZ  @G @DUPPj Y``0Z /_ 6~Gp@= D\R&4G 4Y`V@u`4@@|p<p<r7vJs7 6~Gp@=KDhR)&)&o&&n/&/&#,`[*&*&h-&-&+&+&d,&,&q= 6~Gp@=E5 %' %'k%'%'P6@i''L(@+'+'@*'*'<%'%'=@i''L,- 6~Gp@=hCP*(L L 0L L P |0] 0] (_tM M "~B?@f] ] W1w: 6~Gp@=Zz 0DP*(!!0!!P |!!(_tp !p !"~B?@f0!0!W1] 6~Gp@=vz0DP*(#!#!0#!#!P |@:!@:!(_t&!&!"~B?@f:!:!W1  6~Gp@=CP*(C!C!0C!C!P |Z!Z!(_tD!D!"~B?@fZ!Z!W1LG) 6~Gp@=@pF2&q0*0*.5**}f**8 **tI`V^tam 6~Gp@=LD2,,ttp)p)|tq)q)0P,P,\`V^`V,,dZ 6~Gp@=D2@tA)A)P,P,lt`A)`A)0,,\`V^`V,,dȢi 6~Gp@=D GE2,,tt0s)0s)|ts)s)0,,\`V^`V0,0,dBZ^ 6~Gp@=6E2P)P)j5))w ) )ӏ)),`V@)@))))) 6~Gp@=^qE2,,j5`,`,wӏ,`Vp,p,s 6~Gp@=\]F2$]T+T+$`V<+<+Ot:+:+(tB+B+hd}U+U+Q L+L+:vpD+pD+.? 6~Gp@=AD@%B "`VJ`V`V`VF1 6~Gp@=PsE@% t_t .Paz(h 6~Gp@=@4FP%  ..x$``311(@i 6~Gp@=EP% `V,t`Vrpp*r@H@tg5 6~Gp@=׋tEP%1-t_t .taz3 6~Gp@=h`Bl ttpp  @ККatg.W6 6~Gp@=EZPNPN:PUPU50OO>@@@" o@U@U1@P@P! 6~Gp@=`E:<<5pp077>@" o;;188 6~Gp@=EeF:aa50 ` `>@  @`V" oaa1@`@`:9. 6~Gp@=:VEz?tlf46h $@@((r=@=DhRX=Z@ >>`@ 4=C0N m&# M=hg7UDheX"= Ex=%@h=Z@ N P#p" y=^+=PH@h%>DheX"= E=QB= E0N 0%#"}Gpg72%?@D ehZ@ `V @j p e ' |Bkp@r@uV}Gpg7>D h{@ Vtd@}W@ }i(@0l(@m( ,x=xg7 P=DPX=@X=Z@=Z@0hh9"-=6hP=DPXX=E=Z@l=QBN 5f=pg7@D2X$=>\@=?A>Z@N 0,?*(e=`@=.D2X>\@>@=@]@ @t, h)t:5p@=4` Z@`@`D8GP Z&&&&`&&r&&pP&P&:$c`W>g7О`E>DX= IA;=IA=?G 56`W>g7G>@DX= IA;=IA=?G 5 !((CTH=hg7 ;?D {X=Z@2=Z@ >@@ (p(@@xŲ}+=&=D pg=QB=`@ U=Q@P4=kB`0rWp@=PY>DPp=`@=Q@0=Q@@=@P(9/=F PY>@DPp=Q@`=@= ?=\@@((P$=c+=o@`Y>D`p=BD=Bf=`RF #==A0(Äp@=f@f >D Rpp=@C>|@0c >Q@0=Q@@H8ȩs+=f F>D p4=`B >Q@ h=`@0=`@`H8=4s+=D F>@D p4=`B >Q@ h=`@0=`@`H8Ps+=Z` F>D p4=`B >Q@ h=`@0=`@`H0) h+=f`A F>D p4=`B+=`@ =`@P=Q@ $=pg7 g F>D ph=`Bc >Q@ =Q@0C>l@@`M`0Y>`@=gBD>@DDRpa=@@m=@ =Q@=]@0 QT=g78@H%>DHep=Z@@=hB =C@(=Q@P0 hy_+=h@D\Rp=DG=DG=DG )>`?0`P2"(,=D\Rp>^C =DG 0= ?0,>`D`hIT=`@={X%>@DXepF=@m=@(=Q@=]@HHfN+=HCh>DhRpL>`?> ?0=\@`0=`Bp@,,=1Eh>DhRp=`@.>wE0C>@ =@"8(Zz4@=q8Gh>DhRp=`@+>@0> A4.>`@@ g7K`h>@DhRpT=\@=Q@= A = ZC00(vh=x@=9`h>DhRp >`@m=DG0p=DG@K= APHH^4X>+=h>DhRpg=l@=l@ =l@@B=!G`X@++=Dhep=Q@@>`@R?MB@ZD?[Dpf,=@Dhep>kC>kC%?Q@3c?Q@ 8=`@=PF>DPp=Q@z=Q@=Q@ >@0xxG?+=M`F>D`p=D.=@P=@\@;=A@8;=!4`T@Dp=Z@=Z@ #={B@=Z@`P8O4`_?@D`p=`@ >`@0s=`@`= ZCHHv91+=2 F%?Dep<=?=QE0=B`S> A%h=pg7`d &?D fpC=D!>@ t$>@" f>@$@@ l8p=+=\ r &?D fp0=B==A `>E@H=E`@@=+=0z &?@D fp=\B==A `>E@H=E`@@U1+=Djp*>`@=`@0=Q@` =`EpP@]L+=>@D(pd=gFN=`@>`@@>>`@p}G`@=xDvp=c@=`c@= d@`,>A `_+=@D p=N@=`AD<>@ )>`6A0(MS=pg7tx=Dxp^=iB=Q@ =Q@0=Q@@0 (=xg7tUa>D@pa=B4=`B =Q@@=R@P 2vxg7 P=DPp=@>>@R=A1>C `P O3+=@`P=@DPpp= @=@0=@`=@ Z!O=xg7@uP=DP@=`BB>`B 3@!P!Xo!!v!`!0(N3l@=PyD2pj>nBM>A =B0n=`"EP *\+=ʾ`l=D2p1=A=`B<=C|=QB (&tg7L=@D2@>@EgR>`@ ,,0P,,d(^[g7`=D2@>@E=`@ P,,0,,dsX=`@=;=D2@>@E@=@,,0, ,d7%=`@=6=D2@>@E=?AP,p,0,,d(ŭRg7*.=@D2@>@EX=`@ ,,0P,0,d(>vg7d$ ==D2@>@EX=`@ ,,0@, ,dV=`@=L=D2@>@Es>\@,0,0,,d  \+==D2p1=`AX=D=#@g=QB ((_x@= m=@D2p1=`A=B<=C |=QB088 EDR=s+=0o=D2pj=B^=B U=Q@@g=QBP >mg7@=D2p1=AU=Q@g=QB4=@]@0 K@z=pg7Dp4=C=@ =@"=`"E0@@F03@=+=`s@D|p=Z@'=Z@ =Z@@=QB`88`=4`x|=D|p=Z@=Z@ =C@ =`CP :x=pg7N@=D@%p$=]@D=`A=]@ =A0(ZCg7,{ Dp=`EA1=\@i=\@=`@ ( =_+=.G`uP=@DP%pD>D=D=D R>Z@08'=p@=KG`P=DP%@=Z@=]@ @vN `uf~`Vu(<~W>`@=@P=DP%pD=C4>]@ 4>]@0t=]@@J =`@=zP=DP%p1>@=@C=C=Q@ " (P=`@=| P=@DP%p>\@>Q@5>\@ 5>Q@0803X=l+=U=DpH=`A=Bh=RE =Z@`8 X>`@==D%pr=Q@=\@=l@=E83@(=`@=%@=Dpj=Q@)=@]@o=@v=@8(ڛ@=@=@E {pR>Z@>Z@ 3=Z@@x=@`@04Kk+=s` `0?E`ppn=`E=\@`=\@hpd>\@p00J(k+=$ O`0?E`pp@=@l>]@0P=A@N.>APM[+p@=sg`0?E`pp1=@A=d?=@]@p=@]@ӛj 6~Gp@=gDDRC|!!`!!`V@!@!|!!!!"`!!8[!!v8!!W 6~Gp@=Р/E0C|pGpG`p=p=`VEE|@G@GII"`0A0A8[GGv8`K`K*( 6~Gp@=`0E@C|````V|@@"`8[v89lT 6~Gp@=K`ZEPf4E`  E F @@0@PPHP@ppb5 6~Gp@=^nFjaipapa|pcpcjtee0tpfpf0__X`VP`P`b@g@gX\dl! 6~Gp@=@.F( QQR4PQPQ\4pQpQ Xt0Q0Q t0P0PCsPP0@P@PZt@Q@QM 6~Gp@= F( aaR4aa\40a0a Xt`` t__Csp`p`0``Ztaa 6~Gp@=@@F( R4\4 Xt tCs0ZtA΂ 6~Gp@=U(F( uuR4\4@t@t Xttt tssCsss0ssZttt,O 6~Gp@=px/F( iiR4@h@h\4`h`h Xt h h t g gCsgg00g0gZt0h0hpda 6~Gp@=)F( R4  \400 Xt t~~Cspp0Zt?ER' 6~Gp@=@CF( R4\4 Xt tCs0Ztt 6~Gp@=DF( R4\4 Xt tCs  0ZtA 6~Gp@=@FF( R4\4АА Xt tCs0Zt` 6~Gp@=E1[F6@@n6PF`VppZvZv  1`q  6~Gp@=T`F2 vz+z+[p+p+4nt;t a[Pr+Pr+Usvu+u+l&|- 6~Gp@=k`LE@%++)@.@.[88" `VO00tX 6~Gp@=  cE:@@5PP>>&)@ > >0>>>@" o@@1>> 6~Gp@=dE:!!v3n50>@" o1@@O 6~Gp@=ү`E:p3p33nP/P/50p*p*>@  " o@/@/1**3w 6~Gp@=4k`B@OE|((H0)0)5|((1 ( ( Qr00 1s1,,2 6~Gp@=DU@E`xXtW*t;|sd0`V((Y(=@=.`][?EX=A2=D S >B0Byu1 Y1&Ypv1@Y1H84.`^`E XV=A=`@0=`@` t0 1 15 1`18 8=&g74M^@E XV=A=`@0+=Q@` t 1`15 1 199~Gp@=N E(N>4C v''[/'/'h `0'`0'1'1'|1'1'hg7U6`=E2X1=A=PFxt>B vг,,8[P,,~>5p@= i=Z@`@`D8GP 0%Zpjpjkkoo`hh`kkrii((|t d+=>E=]@a=@?=]@ =F0=]@@@8n,41)P=E=]@`f>`BjD>@A0-=Z@@=Z@`((f/'f+=U=pE=]@7=E=`A (=E0>=@d?@]`W>g7M>`EX= IA;=IA=?G 5P >@ 08(=@==@E2p=Z@=Z@ =Z@@=@`00, ,NA,=`@=-`<= E2@>@EL>D,P,@t0,,0,p,d W>g7L>!Ep= IA;=IA=?G =Q@050 P((|5=g7h >!Ep=\@=IA=Z@ Z=Q@@0Pj~G`@=``i  w`  j}|  x}| 0 (w@  k|  p )w ` 0  J7P p у 6~Gp@=vEv Z@G ППDU  j@u Y000Z /`4AC 6~Gp@=Dhe &!!T@!!,7@q!!m8!!|2 6~Gp@=YE0 XR|oV@ PPW@ @kPP0m  pAJ& 6~Gp@=@8E @{.~ pp<~ Y@It^PP^}pPPB/\ 6~Gp@=lFP  vN E~[Y~l   8[j|p 6~Gp@=2$@FE2 jtp_)p_)0,0,tt^)^)|t0_)0_)ltP_)P_)0,,\`V^`Vp,p,d M 6~Gp@=OEP% a*`VTT+`VpSpSWt `V@O@OOO=PPh/ "$@RR,d@0W 6~Gp@=``"E  w` ` j}| x}| (w@ @ k| p p )w 0 J7P P ޥjR,=] ePY>*EP=`?2 >?0= m@`=B=`B XH$+=4y+Ez=Z@U=`@ !=!GP=Z@=@]@00ոS=i+=` =`,E %X=`B==A ==A@3@ @ Xo` v P F^`@="4?@-E"tm=-Ep=-EPs=-Ed=-E1= A@(W>`@=ЛH? .Et=]@x=]@|=]@ =]@0=]@@XP+=T8%>/E8e=`@=`@0]= KC`0= KC >@x|/=`@=РC0F>/E0F=@m=@@=Q@=]@L=@PW>`@=D@F>0E@F=`@m=g@=Q@=]@= ZChX'+=?`Fh>1EhR=`@+>@0>`@@? ?p`>`?8( e+=hh>2EhR=\@a=@=B=`B0x>`@@H8,Tr+=0`3EP=Q@=Q@>@ =`@01>`@`H@N}h=+=.`@4E`#=Z@>=%F =Q@@8=Z@Pj=Z@p@8O 4 `F> 5E`=@A=@l >? g=QBP=Q@ppXC=p@=2@zH=6EH=+CL=`E=Q@08=Q@@H=@@P(Q<=pg7H=6EHx=hB=@ =Q@0=@@:=Q@HX`g7% H=7EH=B=@ =Q@P=@`==|Eq0zXRpg7e@?8Ex>P@VB>?"0>@@5=@BE >Q@PPPP0=,,=@0?9E0P=QEp=YB00=ZBP=Z@p=@@8(ao@= `n[?`:EXg>A=Z@ >`@@Byh141&Zh141pi14100-=4#o[?@;EXg>A=Z@ S >B@Bypl1A1&Zm1B1m1B1(  F =^+=xp[? =E f>?p@???E@@7??`f7??p84`Cpg7`:>Ej=@=`@>@]@@*>Q@P*>Q@` v=hg72g?Ev=Z@%=@h? >@0=@2=@4z=`@=7`h>@E=@R@=\@=\@ =\@1=\@P@a#+=d`>`AE`,=C==A g=QB@(=Q@`= ?pH81G7x+=g@`=@BE=C(=Z@=Q@0=kB@=`@`H@[<+= Y> CE=Z@=`D =Q@0'=`@@N=Z@p@(n@=0`jDEP=Q@=Q@=Z@ <>A@x=@>ApPP.k H=,=LztDEP=Z@=Z@ =B@=B`=QB0 tJ\+==EE21=A= EE>Z@#>Z@0=@P0 #{`g72$g=FE2X>@E =DgR>`@00,p,0,,d(8Gg7D =GE2X>@E>\@gR>`@ ,`,0,,d(oQpg7D`HE2"=\@>\@L>`@ >@@{>@]@Bʀt=g7`@IE2X"=\@.=?A=QBN ,%)ee8p@=  = JE2`=`?^=Q@0j=Q@@=Q@P=Q@`( 6 =g7$@>KE@^=PFU=]@g=QB = @@l=@D8TgTX=p+=z>|=KE|=Z@=Q@ =C0=!G@u= FpH WYg7kP@=LE@%Y=` @$>?0">]@`E=Q@p=Q@i=`@=et@=ME@%=U@=\@=\@ =\@1=\@8(]=@=P=NEP%v=]@^=]@=Z@ d=Z@@Z=Q@`(9=`@=hP=`OEP%=;B=;B[.>]@ =Q@0/0>@@ |=g7ȋP=@PEP%>=@?b=D=\@ 1=@(q=@w@0H85#43p= QEp%=Z@=Q@ (=Z@0=APn= ?`'`W>`@=A=REj=C>\@>\@b3>Q@ h!>Q@( p/W>]+=@=RER=\@h=\@r=]@=]@ =]@0cf{`W>`@="=SEj=C>\@>\@b3>Q@ h!>Q@(`L}G`@=7TE%=@]@=@]@r=\@=@t=@PH=+=UEX=Z@#=Z@ D>Z@@>Z@`=Z@ KGqd0=`@=:`VEz=`C>=@A=A=\@`=\@xhxz#,= ;?@WE {@=D> Ep > E>@Pe>@(:GJP=hg7  XE`pX=Z@#=Z@ x>@@4tZ(&(P[(0((0[( '( bt]+=`8?YE`x= }F >@P>@ =B =A0HQYH=`@=e0i>YE0p=@ >|@=Q@p=@ @kP00m@`}G`@=KEZEPf4pE` pE0 F @0P@PHаP@p0(|l 8=@=`_ \?[E p@=Dp=Q@g>A X=:A@H410|10@0#4`` \?\E pg>AX=:A p=Q@@@=@APH4 10|10`PY+=ah>P]E=]@D>`@B@>`@@=\@pg=s?B>`@PP[,=P=0^E=]@?>`B >`B@=Ep=!@f=#@=`@=luP= _EP%pm=Q@p=Q@(=@ =W@"N `vf~`VPv +=g7 C>`Ep= IA;=IA=?G 8=@05>@ 0 a)]+=`>`Ep= IA;=IA=?G =`@05p>@( \Q=]+=D>aEp= IA;=IA=?G =Z@05>@@p0 m]+= F>bEp= IA;=IA=?G =`@05>@`( Nx=]+= Q>cEp= IA;=IA=?G =Z@05P*>@P+0 =b]+=R>`dEp= IA;=IA=?G Q=`@05>@`0 #Ʌ]+=J>@eEp= IA;=IA=?G =`@05'>@`(0 o\]+=,`K> fEp= IA;=IA=?G =`@050>@< 6~Gp@=&`D B|03| v  Z6 k@|8[G!@@Hh  dm`p% 6~Gp@= DP H|[|:| NtQQ > >Q@(et.& 6~Gp@= g D OE|//H335|00100`>`>`;`;,==0808$0:0: 9 9Y 6~Gp@=/ E Z@DUj Y0Z /  m@@`.`00` 6~Gp@= 'F Z~~@DU``j00 Y0Z /m`.``)! 6~Gp@={DXe C|``V|  "`8[v8008DQ 6~Gp@=E f Cz@3@3F{ 4 4{P 4P 4~`3`33333~`3333Ft 4 4L`33jz 6~Gp@=FxF( 44PPv'`00Cscr[_T`00`? t  ) 6~Gp@=9_E@ B|k(k(03|l(l( v0l(0l(Z6 kPl(Pl(@pl(pl(|l(l(8[l(l(G!l(l(Hhl(l(dm`pm(m(& 6~Gp@=ChC`x Mmnx'x' y'y'I z'z'>@POP@@@*+=4`3 =qE %=`B=C =B0=APg=QB`3@ * $9~Gp@=^=rE2(>D@)@)j5,,wӏ,`V,,P@* h=+=ZsE@%=Z@i=Z@ >=%F@=fG`=Q@Wt@~ _239~Gp@=P@=tE@%(=? t_t WW.`Y`YPazPXPXb9~Gp@=׋ P=uEP%(=?1-t``_t   .taz0Fv- X>`@=!PY>vEP=Q@=Q@N=Q@ =Q@0=Q@@v>Q@P((A;!=f+=@cwEv@>`E =DG@Z@ DU j@ Y00Z /`xxKG:+=&`xEhRn)>`?@>A0P? ?P>`@?`?= EhXofqT+=(aFh>yEhR=`@C>@0=@2? ?@"%? ?p`>`?X@0q+=UKh>zEhR=`@=\@0=\@8A=`@@=`@pB>\@X@+={Ehe=Z@M> $E = $E0)>!G@>`?p>Q@8(P=@=`T0i>|E0g=QBX=%E j=kB0=@P=Q@`=d@p =`@=xTH=}EHx>@l=@M >@=Q@=Q@ =Q@0y,=3*?~Ej>@F=Z@ >A@R>Q@P_/>Q@` =Ep0EKkg7Ej>P@=@X>@]@>@]@=`@ s>@P`P"c+= *?Ej`=`@=`@0`=Q@`=@p`=`E=`@8(bS@=@=EP=Z@=Z@ =Z@@>@`+>@b>@d@@W+=`=E2=B=C x=@0=QB@$= @`0A>6@p0 XG`g7:=E2p>@E$=>\@=?A >`@0@,,0,,d02pg7L@E2"=\@L>`@>@@ >@B{>@]@D =DH00= | 46=E2d=;F=C =A = A0<=A@~?>AP88! >=`=E21=`AX=D0=`B=#@0%=`F@g=QBPXP*{aP=+=2`|=E|= E=Z@p=A=@4>@>@0Ə X>`@=.@@=E@%B=U@=]@=]@ h=]@0$=Q@@=Q@P',=v`=E]=Q@=?=?@6=` @p=@0=CDXH+= F>E=V@D=?= D@=Q@P 6>Z@`=`@07CL X>`@=P=EP%$=]@U=]@=]@ =]@0=]@@g=]@P((e@=U@=EH=`A=]@P >]@=]@ $>]@0=<@@o-W>`@=8E%=@]@=@]@r=\@=\@=l@=\@0PPb+=F>E=A=QE=`B@=QEP` >rB >AhX`@=@:?EzT=\@=\@>\@==\@ .>\@->\@xhl(+=М`0?E`p=E=\@B>\@y>@j=kB=`@P@++=F`p?EpP=Q@>=Q@x=Q@ =Q@0=`@@=`@pP@PG+=vp?EpP=Q@>=Q@x=Q@ =Q@0=`@@=`@pTH 6~Gp@=DD |[h F600n6Ppp@|ZvZv)kd 6~Gp@=fFP  vyy[`w`wk8`VI`V00p`V,00ʁ`V``<v  ,M`V@u@uHsv z zZ 6~Gp@= E Z@DU``j Y``0Z /m``` 6~Gp@=yEe tp2p2Vt22ft22\k`22Fy22Yr22r@uP2P2tЋ2Ћ2L`22y0202t22^ 6~Gp@=3}Ej .~ @@<~ Y@p@` <@z@@ ppPxf 6~Gp@=`Bp `V`V X=t/ rރR @F@Q?A 6~Gp@=*.D2 @pN)pN)ƍt`L)`L),, tPJ)PJ)k|0L)0L)8)`K)`K)0P,P,#mpJ)pJ)\`V^`V,,d 26 6~Gp@=E2 0))P ) )Xo ) )v))|))[0)0)8[П)П)ݵ`V))))sO))} 6~Gp@=Cp% | @ | `V  0 8[ G!@ @ Hhp p dm`p I`V @}(A 6~Gp@=j`PDp% |P P [ h  F6 n6P @ @   | Zv` ` Zv )k0 0 '}Gpg7 OE1(m>`oC[ F6@:n6PF`VpPZvP;Zv p1`88|+=(=E=]@(=F=? ">@h?0=`$F@!>?P=@E`((ޫW>@=`B>E= IA;=IA=?G =Q@0l=E@5`)>@)@0m+=>E= IA;=IA=?G 6= C0j=`@P5>@@80=j+=X I>E= IA;=IA=?G `=Z@0 =Z@P5p 0%>@ %0 \is-=xg74* m[?Ep`c>B=_B p=Q@@=Q@P&'1 1&(11'| *11e)|*1100Fnˈ=g+=mD@EDWp=:Ap=Q@ =Q@0h=`B@B@x&&@+1'| 6~Gp@=E Z6|@'DU00jPP Y0Z /``m`.``hq 6~Gp@=BP Z tG ЉЉ(@|ЊЊ ,r6|005P 6~Gp@=^ FhR `Vl&l&``Vl&l&v##T+p#p#+p#p#|##!`V`V ##Ц{ 6~Gp@=Py`D2 `V(( V ( (nЩ(Щ(n((x5((5`((KV*9(( V((5 ( ( ((AQcPL 6~Gp@=}$@(G2 `V))m`)`)+p)p) * *p * *`Vx*x*lJ@))0*0*@ܶ0)0)**XH.+==E =`@=hB0^=Q@Pj=Q@`g=QBpP=Q@:B>Q@ ZN=g7EvX2=\C+=DG .=DG0Z @PDUPjp Y`0Z /@8On"=w+=/ E=DG=DG=DG =DG0=DG@;=Q@P=Z@`H8`ȯ4d@p[?Eg>A=;@ =Q@0=Z@@&=`@`Bypn1p:1&Zo1 ;1o1;1_F$}Gpg72@%? EeBx _ p'Pz'@y5k@~ET r@uZ`ab@`lH)LpP8l;z+= &?@E f=aB=E `>E@.>`@`4=@F{ 4`3{P 4Ф3Ft 43xhYtȃ+= Y>`E >PF+/>`C >Q@ =`@0f>`@`t>`@@>`@ <p=+= UP=EP= EP=Q@p8=Q@@1>@P=Z@=B=B .o@n=`@=@=E2=@>=@Ax= @A`=\@"=\@,+)0@,+)d,)00En+=F=E21=A =`Fd >`B="@ ;>@0>@$@@@>@PPP=+=P=EP%=]@=C>=Z@ p=Z@@=Q@`@=]@p~=`D8 ȒX>`g7 P=EP%=]@=]@C=FA =]@0*=]@@=]@P=]@`x6}0V>`@=@ E%=]@ =]@=\@ =\@$>=@]@(=d@*>@*hh.(+=p`N=@E=Z@= @ $=`@P@=Z@4>Q@:=Q@C >?Hp@=p :?`Ez=`@=E07=^@H=Q@P)=Q@`g>@p&>VExx +=`d`0?E`p=E:=@O@/>@ >Q@=`@ =D>@0O.=DU@U`8?E`x=@7F=g@P =FP=A` =ApX=Q@6=`@pp* x,= `\[?E=A>:A =`@@=`@p2==A@==AByj1@F1&Yj1N1PR}Gpg7z@ &?E fBy _i:a3sp'@zD\k`'k@~r@u>L`b@`lH)883bO=u+=I>E= IA;=IA=?G =Q@0=Z@@l=E`50&>@0'' 6~Gp@=,E"t Z00 tG pp0Zr6PP67Hжж =K`` @@<* 6~Gp@="zE f i 33l33Cz33 4 4\k`P 4P 4`(t 4 4~@3@3xZ33Z@p44L`338`Vp3p3`q`u 6~Gp@=7B`BP  vP P p0 0 E~ [p p Y~ l P P 0 0    8[ tjX5 6~Gp@=lyE2 Z,,  , ,,,`@,@,r,,p , ,8 ,,qm@l,,{``bnv^V 6~Gp@=D E2 jt`,`,,,tt0,0,|tP,P,}@t~)~)l``|)`|)@t})})ltp,p,0,,&v))\`V^`V0,0,d=u}Gpg7 %?EeBx _ I'`p'Pz'@y5tk@~ET r@uZ`ab@`lH)Lp)59~Gp@=9_E@ (=fEB| m( m(03|m(m( vn(n(Z6 kn(n(@o(o(|o(o(8[p(p(G!p(p(Hh q( q(dm`pq(q(hP@G+=@E@%=Z@i=Z@ >=%F@=A`=]@=?>@Wtp| n.=By2F> E= +E^=uB@>B=\@=\@=`@g=QB1>@ Ͼ-=/@EȺT=`@]*?Q@0>kC@H=@A>!G0,?!G`3??aH??],=:x`F>`E`=`@=Q@0=Q@@=4EPLA>?">QBm>@>@``6Bd+=# =E=`@=Z@=@0=A@=AP=`@`Q>@'@=kB}Gpg7@%?EeBx _ xI' p'Pz'@y5k@~ET r@uZ`ab@`+tlH)LpM}Gpg7@%?EeBx _ tI'p'Pz'@y5tk@~ET r@uZ`ab@`lH)LpH0,Jh+="z &?E fp=aB=`@ ">?P=@ 43\k`P 43`(t 4ж3Z@p4p3`3q`3883%zA={+=Tx>E(=`Bd=gF q=mE0T>@@>=FPfS>F`3@@XoPvP00R`=o+=FP= EP=S@\>S@->S@->S@h>T@ ?>?0=?@"=?Pm,==@E2=C7=D4=B=Q@g=QB&=QB4=#@p=`@EJ,=@=`E@%=`LE*=`LER>]@ 1>]@06=]@@{>`AP >A`0 >A`k .-=|`?=E= GX=9C=C =C,=?=@=? 0=CDP808j*=4P=EP%=]@==A`=?0=]@@=]@P>@`=@b=@d(=`@=7P=EP% >]@h>]@=]@ #>]@0#>]@@~=i@P">@8=\@P H0 y4 P=EP%=GAj=Q@ =Q@ @=@0==A@>=]@`=Q@pX=\@ !8/ W>`@=NE%=@]@=@]@=\@>=@]@0=@]@ =@]@ =@]@@=g@H0c8s4= E=]@j=Q@ =Q@ @=@0==A@>=]@`=Q@pX=\@XX\.+=j 7?@Ewg=QB=`@ >@P=F`=Q@pS>Q@S>@f>@h?hX?+=&p?`EpP=Q@>=Q@x=Q@ =Q@0=Z@@=`@`8=Q@=`@ 6~Gp@=c`HGhe`""@ ""h""kCp#p#G ""xa""P""An""""t""8tdt^-0"0"5~ 6~Gp@= E`03}??X @=@=`V0=0=j|PWPWtVVLLG`V = = pVpVN@@#vCCc0T0TvJJts`Vy0 6~Gp@=p`5DPR$j3*9e e uu ]{{]@@x+`!`!+B!B!H9c!c!@JP!P!wJtH>Q> 6~Gp@=z@OF`0H  t@@(`V;`VPP:  !`V @|@@< @|/`V(bt:)9~Gp@=E ()>iEZWW@__DUNNjNN Y`f`f0Z /ccmpRpR``UU`@0h+=x`[?E`'.>`B=;@ p=Q@0=Q@@B>`@Pp@0 0@0OE|@00H005|0010`0u}Gpg7%?EeBx _ xI' p'Pz'@y5k@~ET r@uZ`ab@`+tlH).tLp@(3}Gpg7%?@EeBx _ x tI' p'Pz'@y5k@~ET r@uZ`ab@`+tlH)Lp88X>*42C>E= IA;=IA=?G =Q@0l=E@=EP=E`5`>@XHd+=үS>E= IA;=IA=?G =Q@0=@@L=`?P(=?5`>@ gD}Gpg7%?EeBx _ x tI'p'Pz'@y5k@~ET r@uZ`ab@`+tlH).tLpp+ 6~Gp@=!(Dj( .?xxQwwݔzzZPtt vv(pp0  Yt@@({{ft@s@sstyypp < 6~Gp@=2F0% YYejUU4 tP}P}`m@op}p}rpp@@x6ggZ|~~0[["`  %tPXPXv0TTtq ~G`@=P FP%Q@]|o`V8!t `! "!*@5<Z5`VpJ]9~Gp@=E ()>iEZ`|`|6|--@}}'DU}}j Y110Z /P2P2m`.``HH*,=8h>@E hRT=\@=Q@=Q@ =Q@0l=@@=Q@Ph=`A`=@p= A0 `-=` `F>E `^=hB=`@ :=EP=Q@`%=Q@p=4Eg=QB#>Q@ #>?0 Ť Y>`@=@H=E H$>@2>@=@&=@=@/=@ v=@ =@=@43,=y%?E e6>Fd>F >`@@d>`@p>`@z=`@!> ?B>`@0>@` @̇,=.@E e @?Z@2?Z@ 0D?Z@@:*?A`H@??>Z@Y?FI!?A\O?Z@08(f=`+=2 Q pF>E pX=*D=Q@ =`B0P=g?@=\@P>\@X=@`O>@bX=@dhh+=(`9Y>E =`D= Dl/>Z@ Ù>A@^=hBPU=Q@p=Q@g=QB=QB``:F+=g :E Pn=`"E=!G>B@>@`{M>`"Ep>`"E=F(=@=A[By5p@=ly Z@`@`D8GP 2 Z * * **@*@*`@*@*r@*@*p**8 **qm@l**{``b * *nv**(jg7D@=E2 X>'E=@u>@@jt`,,,,tt0,,|tP,0,ltp,,0,,\`V^`V0,,dLVn,=`=E 2=`EE=E`0=`B=#@>`@Q>`@=C =UF0g=QB@00wך X>j+=`P=F P%=Q@=@]@=@]@y >\@ =\@|=]@ $ >]@0 >]@@=?PXPc .,=*`P=@F P%=@4F=D`4=Dp@=D=`9Ap=@]@=@]@>\@=\@()W>`@= 8=F %=@]@=@]@=\@>=@]@0=@]@ =@]@ =@]@@=g@=E(Je 6~Gp@=FPv11]+`V9`V  o  J$$]@J00 (( q`V@``V%%P`V&&Pv[''d`vwy 6~Gp@=iGhR`VА#А# ky#y#~#~#4bSj`V`#`#\ }x## ##<x#x#cGv##V 6~Gp@=2DeZ@5050 `V@:0@:0 @S0S0Cz R0 R0j pp00p00 e1010 4040' ;0;0|2020Bkp@P0@P0\k`=0=0@@70@70r@u@.0@.0~S0S0L`E0E0-3030 6~Gp@=hF`x֌t tsNt'|@7,tttL-tp!tx!tt`hh",=4h>@ FhRp= KC= KC > KC@> KC`H=`@=\@=AtJ&IK&1M&OL&*p@=%c@]@Pi@`! G @!p1 t! 8t@! |t! tp!P Wt! kt! Dt !0 t!0 ik`@!. !@" 0!@$ ,P! p! @@3 -=`Dh> F hR(<>@<>Z@0t>?Pt>`@> ?t>`@̘>@4=C@=F`0=`BpBh,=^h>` F hR5=Cg=QB=\@0h==A@= KC`>=@4">`i@ >=Ac= KCU>`@`Pޅs4,=F he=Q@=DG=Q@ =DG0=DG@"=DGP>DG`̧>DGp>DGL??0Ti0=g7PF> F P=@=@.>@)=@@>?z=? ">Q@0=Q@@C=@P >@RV.0-=%H=F H=@==A0=fGPH=5E>@`h>@b >@d=@fn>@h$>QBp[=s}Gpg7y%?Fe5tJtBy _ _ix@xi:`3sX``@zp'@zD\k`'`k@~r@u>L`b@`lH)mߔH}Gpg7%?@FeBx _  ttttI'p'Pz'@y5ttk@~E"ttT r@uZ`ab@`lH)Lpg=+=p@F ja>Z@$>Z@ >Z@@Ws>Z@`hs>Z@X>Q@=Z@}=Z@=Z@x=@P@xa5F,=  HF (=Z@)=`@ =Z@P=`@p=Z@=@=@#=C)>Z@>@( yh=xg7lfP=`FP p4=Cl=QB! =@@=@B vN E~[Y~l   8[@@h+=TP=F 2a=hB==A ^=PF@=@P"A>@R=CX=@hx=@j<>@l=`@p\~0=,=2 . F 0%=Z@=Z@ V=`B@=Z@PT=Z@p=Z@x>@2=Z@*=Z@9,>Z@phm += @F =EAx=V@|=?= p@@=`@P= @=Q@=Q@=Q@=Z@h g V>`g7N P=F P%=Q@=Q@=Q@=Q@ =\@ #>Q@(=?0=@@=Q@PF= @`xh!B+= p?@F pP=Q@>=Q@x=Q@ =Q@0=]@@m=Q@P=QB`=`@8=Q@=`@{$ 6~Gp@=gAE\ 'x |&&fE((8(6@F@F}vr&r&{ 6~Gp@=tU`D@Ww@@7'@w  @'w|00 @|ЫЫ |``` @kw00`[ЩЩA)HP  @!4 6~Gp@=%@ FPi@`!`!G @!!t!!8t@!@!|t!!tp!p!Wt!!kt!!Dt ! !t!!ik`@!@!!!0!!,P!P!p!p![`0 0 @a 6~Gp@= E`p  vp2(p2(VY.(.(>jt)()(V@P*(P*(У)()(lp)(p)(@*(*( @`)(`)(8[P3(P3(@-(@-(N8"<(<(ߒ|Iv=(=(v7(7(9(9(v5(5(8aA(A(T}Gpg72@= &F@% |{ |h&@Vt0dj p@=i>'F p)>iE4=A8=AP4=AZ~p@DU`j0 Y0Z /m`.``x?:,=UI(F (=Z@)=`@ =Z@P=`@p=Z@=@=@#=@C)>Z@>@R4 txaN,=K@*F (=Z@)=`@ =Z@P=`@p=Z@=@=@#= C)>Z@>@R4 8dn 6~Gp@=!@WFPyoHHJ@II`V@@pDpDpVV@b@Q@A@Ad@O@OSS]]d@BBQPJPJxKKNN{vXX:,=g`F> -F `=Z@ >`@ >AP>Z@`1>Z@z=@)=?=%F >@`=@=AUec,=@G.F (=Z@)=`@ =Z@P=`@p=Z@=@=@#=@)>Z@*>@h?>@l}h,=pxJ 0F (=Z@)=`@ =Z@P=`@p=Z@=@=@#=Q@)>Z@*>?>@0(P#]M@=t>1F =]@M=]@=\@ |=R@(w=@]@*>@]@,B=@]@.e=9A0=?@f=@R@Pv>R@X0( l@=0 , @= 3F @%=]@M=]@=\@ |=V@(w=@]@*>@]@,B=@]@.e=9A0=?@f=U@Pv>@V@X0(BN@=P=4F P%=]@M=]@=\@ |=@Y@(w=@]@*>@]@,B=@]@.e=9A0=?@f=X@Pv>Y@X`XgAV=,=0wP= 6F P%X=@\@ =@\@=]@ =\@0x=\@8=D@=@\@P=@\@`= Cp = Cr=C((P:sH.=`8?7F `x= @=g@=@]@= LAO=Q@@=XE a=C`=Q@=C=`@p=@@P 6~Gp@=:E` PhPhÐPDPD |llr F F"''0@~0j0jN|e`V]O>`VsO@ `V@@bQ P P pp|PgPgu|pp[o 6~Gp@=25EH\`V] @ v  V:p p ]` ` |  p p  x ]   @ M @p p ` օ@p p wC 6~Gp@=@IF2`V ) )/l))bF V))X~`))8@`)`)+ ) )@)@)ttu`Vx [`)`)6))r3 6~Gp@=^kF2`V,,/l,,bF V,,X~`P,P,8@+ttu`Vx [6rP 6~Gp@=MF v~~rr8[)oo@" `VJ`V{{v`~`~`V@@ @y@ypp||`Vqqtu`V%@sseuu%ssօtt C1,=I@F (=Z@)=`@ =Z@P=`@p=Z@=@=@3>@#=B)>Z@>@ kT@-='h> BF hR0T>`@L=\@0.>\@4B>`@@>?ph>`?!>!G|C>`@=`?0A=`@`=!G=\@[}V,=LCF (0=Z@)=`@ =Z@P=`@p=Z@=@=@3>@#=Z@)>Z@*>?>@ ,=`M EF (0=Z@)=`@ =Z@P=`@p=Z@=@=@3>@#=Z@)>Z@*>?>@ J\,=@NFF (0=Z@)=`@ =Z@P=`@p=Z@=@=@3>@#=C)>Z@>@*>C͖/~,=^y HF 20=Z@#=Z@ T=Z@@=Z@`=!G|>Z@=Q@=@=@=T@T=Z@^=`@ hh9+={=IF 20=Au>Fb=B >@@>@B4>\@Hd?@PVt>`"E`,>`"Ep=FP@> CP>BH8R,/=,4ѰP= KF P%0W=Q@=@=@ >@ =]@=]@ $=?0=?@`=?P =]@`@=]@pY=]@@q~~X>`@=uP=LF P%0=\@=@]@=@]@ =@]@ D=@]@:=Q@@=@\@ e>]@0=]@@Q>]@P2>]@`x >]@p(,=~Y> NF 0=kB=Q@ =Q@0=Q@@=@P=@\@`=`@p=Q@=`VD=@]@=?=? h|2=+=z">OF 0=Z@7=Z@  >Z@@!>Z@`/>@=IAK=IA=IA}=@#@< >Q@Z=Q@>Q@ܯ 6~Gp@=@E 03|&eZd[F6+Fxd6`OPPn6PppLFx  Yy@@|ZvZv)kPPj `V/vx@k_d 6~Gp@=TXC`@j55 @j55j55jj;;|j99|55.E`@@X`>>X==k`<`<6  8 8}@A@AE 660C0C558!3qjx;`V #}懤 6~Gp@=@7F`x[j'j'[k'k'* xo'o' +`V0r'0r'Cn'n'+t a' a'K ^K`V: f' f'&q0c'0c'i'i'd'd'`V#l'l'dby 6~Gp@=`F2[ , ,++@,@,X8v , , G, G,`V,,n0H,0H,,, ;t , ,(;t,,H,,p_`VF,F,Y|>`V,,P*,P*,$,,,,WF PH=kB=]@ =@\@0=x@@.>@n@0=Q@g1>`@ >`@=`@@w>%Cpf>%Cu>%Cg=QBXj\r,= h>@YF hRH=\@!>@>@{)>\@>Z@?@0<>Z@@">?`@d>`??`?=>`@(>`@ S= AP`-=hUjZF Ⱥ=`@=>`@0>`@`$=`@=`@O>`@>`@ t>>Z@P>Z@pC=`?0>`?00|=vv[t<+N,=PjP=\F PHR=`@=`@0%=Q@`<=`"Ep=Q@=@P$>@=`@g=QB=!G=\@ T>@(=@*v^,=\`= ^F 2H=Z@=hB @>hB@c>@`!M>Q@p=@B>`@=Ew=E,>@P>QB<>@d>"@ 0C=`@=@P=_F P%H^=]@=Q@=Q@E/>\@ =\@(=\@0=\@8u=\@@=\@H=W@P=@W@R1=v@TB >@]@VXX" H=+= P=`aF P%HC=@?=?D=? 4=]@0->Q@@o3>Q@P=\@`2=@h=@j=?pP>?d>?7=7B'(-=h >cF H=Z@>Z@ =E@ =[@P=Z@`=@=E=@@>Q@F=`@{=AP>Q@=[@xx*,=W%?dF e0g>?=?= B F=?0=`@@U>Cp>?8>?=?S> A=D=\B'@y0p]0\k`p00XP9k=+=E >@fF 0= IA;=IA=?G =@08=@2=@4>@6=Q@@P=]@P@=)@`>$@p =Z@5">@ #O- 6~Gp@=|2$G( q&``c`VPP@@Z_`VPP    00Z 00@r3pr  [)) _``- t @@8I   RT 6~Gp@=hzBP v!!JCv ! !Vv`!`!p0!0!E~P!P![p!p!Z6 k ! !Y~!!l !!~!!p!p!F!!lZ ! !Н!Н! !!!! 0!0!l ! !8[P!P!t= k!! 9~Gp@=^@}=`kF2(e>;F`V@,@,/l,,bF V**X~`@,@,8@+ttu`Vx [6rx]b0=& *? mFj`4=`B,>A z=A00f>z@@x>P@@$=Q@P|>Q@`>@pH=?I=`E=`E=`E>`Er>@@(o1-=^`F*?nFj`>=``E >`E0~=`E@*=`EP=`@`*> 'D=~EM>`>E1=D.O>`yC!'=`@@=@pճ,=pF2`=Z@>Q@ =Z@0X>Q@Pd>Q@`=Ep=B!M>Q@B>`@=@?>@w=E=`F= SA:[ 6~Gp@=Л-E2prprZ h h tG pp(iiX|5,5ssr6nnF x x67hhqqt popoE#@g@gh=x 6~Gp@=h`BP vП!П!p!!E~!![0!0!Z6P P YN N AFR R Y~P!P!l p!p!!! !!Р!Р! !!l N N 8[!! [pY pY )V V HT T t=p^ p^ /a a @d d 1Pc Pc /+= %?vF eHg>?&=`B=? = B0F=?@m=`@PU>C>?8>?=?S> A=D=\B'@y00.\k`p0p.Z`aP00.Ko|,=1@%?wF eHg>?==`@=?@= BPF=?`U=`@pU>C>?8>?=?S> A=D=\B'@yp0z/\k`0/Z`aн0u/`@ě`J=+=@P=yFP%x=]@4=]@d=`C F=`D0|=]@@=BP=@e?`D2>@e?p4>]@=@]@=@=@]@I=@]@@=]@.>]@/B,=P={FP%x`=Ar=C =]@ =@0z=@2.=\@8=]@@=]@P=E`=Q@p=]@,=]@8=E (=Q@=A}~G`@=8U`x{`^ Х'_4@`'}}LY4FEp`VZ0`0'_G9‘D6Qvc 6~Gp@=5D  t|@@@|  * [F6+FxZ6 k00n6P``Yy`V0ppJ7@PPZv@@Zv8[PPG!Hhdm`p@@)kWt @00NxA3 6~Gp@=t@1F{@ Vtd@}00W@ @}pp}|5|ppX|eE|pp|PP1i(@0*lШШ,t .N=t1(@m}~ 6~Gp@=z`BP vp!p!p!!E~!![О!О!Z6@*!@*!Fl'!'!Y+!+!Y~!!l !!0!0! P!P!p!p! !!l'!'!8[!!Wm1!1!).!.!8[-!-!t=;!;!;s`(!`(!/=!=!@0A!0A!1@!@!q 6~Gp@= U EP v[PPl  `` 8[007Iv\v+o N v@P P d ``= pp/[0>PP@1@PPWv 6~Gp@=8U }F`x{`^ _4@`}}LY4FEp`VZ0`_G9‘D6QjD|,= &?F fxg>B/>?=`@ =EP >?p=?=?U>C>?8>?=?S> A=D=aB=`@ \k`4N3Ib,= %?Fe`g>?&=`B=? = B0F=?@m=`@PU>C>?8>?=?p=`@S> A=D=\B'@yp0-\k`0-Z`aд0@-o,=`%?Fe`g>?&=`B:=`@ =?P= B`F=?pm=`@U>C>?8>?=?S> A=D=\B'@y00/\k`0PR/Z`a0.+@,=`r`Fd=N@m=@M@,,>I@ P>`@0b>`@@c>'AP=M@`=L@pD<>@)>`6Aߘ>`@ >@>@F?>`@Du>`@T?>M@`K+=` ^ =@FR=Z@J=9C ~=?0 >Q@@f>Q@P5>`@`(=Z@2>`@ >Q@4>\@=Q@=Q@0g>@=V@1>Q@ =@0 6~Gp@=% FH|0 0 E`  1` 8[ dm`pв в H  H  X* d\ +# # 9   aJ% % G,P P P, B: ]` ` V: ] ]  K `V X  _  =  `P P u  "e 6~Gp@=ɊBP v0!0!JCvE!E!VvF!F!pP!P!E~p!p![!!Z6 J! J!~`PH!PH!Sl L! L!Y~!!l С!С!!! !!0!0! P!P!l@D!@D!8[p!p!8R!R!)P!P!~m@0N!0N!t=`P[!P[!/0]!0]!@a!a!1@_!_!r~ 6~Gp@=`F fByP2P2 _22ip3p3:a`2`23s33Cz@ 3@ 3p 3 3'`2`2@z33D3333\k`44'22k@~33P63P63r@u'3'3~@ 3@ 3>33L`;3;3b@``2`2l3333H 3 3) 3 3Lp 3 3Nt 3 3O@up(3p(3QrL 6~Gp@=TxE({PP`VV3@Xo3XXvDsPP@' YY|`e`eR'@PfPfkk mmWxx4@pp `'p0s|5|PPT`ppru0`l00TG   J Ppp#@?&=`B:=`@ =?P= B`F=?pm=`@U>C>?8>?=?p=`@S> A =D0=\B@'@y0-\k`00 C.Z`a0-S= 6~Gp@=W@dFeBx]0]0 _00 @0@0Cw00I'`U0U0p`n0`n0'`0`0]0]0Pz^0^0'@y005@^0@^0\k`p0p0tp^0p^0k@~Pn0Pn0Ep[0p[0T V0V0p0p0r@uPu0Pu0~@00Z`aX0X0L`p0p0b@``0`0l^0^0^0^0H^0^0)_0_0Lp0_00_0O@u v0 v0R 6~Gp@= EHmpp8@@H ppВ-qPPMH` & &kr=R0000xr  cv@@v  V Wl``#ppt  TsZ~G`@=hG`8?`F`x=@]@=@]@=@]@=@]@ =@]@=^@ )=\@ ֌t tsNt'|@7,tttL-tp!tx!tt`x 6~Gp@=uFeBxP.P. _p/p/ 0.0.x..Cw..I'  . .p..'//к.к.Pz..'@y005@.@.\k`p0p0k@~..E . .T ....r@uP.P.~@..Z`aP0P0L``.`.b@`//+tp.p.l....Hл.л.)..Lp0.0.O@u . .4$ 6~Gp@=1wFeBxz/z/ _// P/P/Cw//tz/z/I'c/c/p//'//{/{/Pz0{/0{/'@yp0p05p{/p{/\k`00t{/{/k@~//E0s/0s/T `l/`l/P/P/r@uP/P/~@//Z`aн0н0L`//b@`//l{/{/{/{/H|/|/)0|/0|/Lp`|/`|/O@u / /cz 6~Gp@=@F2nB**B@Q** P*P*&@uЫ*Ы*Hnp*p*&q**4 **D`p*p*@з*з*Ev** **M` * *}f`*`*(`*`*~**G**#m**8 P*P*,[ **Ivvt`*`*Mqt,t**|Vt**dt * *<t0*0*9 6~Gp@=/G2@0+0+ @m++`V++X ++bF VP+P+++++3(++3++2++ 3p+p+>9p+p+Rop+p+,++$t|2`V + +p+p+++H++P|P+P+P+P+++`@F>`@0g>B`.>`Bp>B/>?=`@>E=E >?=? =?0U>C@>?P8>?`=?pS> A=D\k`0202 6~Gp@=M`D` t c c|@c@c@`c`c|pcpc* cc[ccF6cc+FxccZ6 kddn6P0d0dYyPdPd`Vpdpd0ddJ7@ddZvddZvdd8[ddG!eeHh0e0edm`pPePe)kpepeJtl9@-``Yx2x$tPPX 6~Gp@=@FeBx-- _-- --x--Cw--I' P-P-p--'--@-@-Pzp-p-'@yp0p05--\k`00k@~p-p-E`-`-T ----r@u--~@--Z`aд0д0L`--b@`--+t--l----H@-@-)p-p-.t--Lp--O@up-p-6 6~Gp@= FeBx / / _P[/P[/ :/:/xP /P / t / /CwP;/P;/I' ..p//'Y/Y/ / /Pz / /'@y00005 / /\k`00k@~//E..T ..`6/`6/r@u$/$/~@PFP^=uB=Q@ 4=\@0=@\@@<=DP@=D=e? =d?!= D!=@p!=@E@!>Q@!=@!g=QB!=`@!P=OA"D=OA"0=Q@ "=Q@0"*w<-=cLh>@FhR=`@L=\@0h=`@@>`@p.>\@w>@]@C>@Pz>@?@>`@?>Z@=`?>\@03>cC@~>@>\@y>`@=`@T> A_%V>`@=F%=Q@ =\@J=\@ =]@=\@ =\@(=Q@0>@8>C@9>C`v>CL>C=Q@=Q@D=Q@x=\@=\@x=Q@P=@9 6~Gp@=FeBx-- _ L. L. *.*.x-- t - -Cw*.*.I'--p . .'J.J.@-@-Pzp-p-'@y005--\k`0000k@~ . .E--T --%.%.r@u..~@+.+.Z`a00L`,.,.b@`K.K.+t--l----H@-@-)p-p-.t--Lp--O@uP.P.' 6~Gp@= F2 nB,,B@Q`,`, ,,&@u,,HnP,P,&q,,4 ,,D``,`,@,,Ev,, P,P,M`,,}f,,(@,@,~,,G,,#m , ,8 ,,,[ p,p,IvvtZMqt,tx |Vt>P+P+dt<tI 6~Gp@=:Fe!5tP1P1JtP1P1ByP1P1 _11 _11ixp1p1@x11i11:`p1p13sв1в1X`11`11@zг1г1p11'11@zд1д1Dе1е111\k`0202'`Ч1Ч1k@~110101r@up1p1>11L`11b@`11l0101 1 1H@1@1)`1`1!tP1P1Lp11O@u@1@1s 6~Gp@= ;G2!t)) v))f**t))bF V))`V))7))7*7*nO**(ti ))vn`V))x`V))O`VJ!*!*pp4*p4*@P9*P9*p`V))K ) )tx W`V>`V0=*0=*Lbv))O))t@)@):v6*6*ȅ`*`* P*P*  '-= %? Feg>?:=`@=`@@=`@p==`@=?= BF=?U=`@X=`@0[=`@`=`@U>C>?8>?=?S> A=D=\B '@y0/\k`00$0Z`a0s/^h?}8=`@=P`/P=FP%=`ED=`Ef=D >]@0p=]@@pf> FAP' >]@` =]@p>]@}>`7B,>`7B=\@=\@>\@e>AR=BT=@]@=]@=]@4>CL=?J! 6~Gp@=jEw"&kk^^@С:iX{ Gi`V9',@3@BR'B@k'B@'3p3 `{tOk6)@ď>00]`Vwt-=Fx>`F( =Z@)=`@ =Z@P>Z@p *>Z@>Z@D=Z@;> =A=`A=A=A =>fB0,>`?@x=`?pt>@=@ys>@=@0>@z=Z@!v>`@>Z@b8-=`=F2 =Z@= E =Z@0X>Q@Pd>Q@`=Ep=B[=@!M>Q@B>`@=@=Z@=E =E0 N>wA@w=EP>Z@`>Z@= SA(=@=D0=`B|^-==`F2 ^=hB >B >QB@>\@`1>\@h >@pD>@@z=`@B>\@j=kB^=`@@>@0>@2gt>`$F@4>\@P=@X| >@Z8/>F`0e>Fp>@>@> A 2 6~Gp@=Fe#!Bx// _-0-0 00 t//t//t0/0/Cw` 0` 0tP/P/I'\/\/p//'@,0@,0p/p/Pz//'@y005//\k`0000t//t0/0/k@~//Er/r/"tP/P/tp/p/T d/d/@0@0r@u//~@` 0` 0Z`a00L` 0 0b@`@-0@-0l////H//)//Lp0/0/O@u`/`/!r 6~Gp@= DP# PX5k\X852}B5L5hX EE 3` ` 900:P^@3ppVpLpw pw !@_qL_;@3 @3 ;;d_0 0 LLl=t\\ڄt8dФФ5n 6~Gp@=pEz#r{cB(V4V{{BztXXkk(6@@mlzl vHv0v\vvZvv~vmR>̄pp nYF>`CPY>`FP8>>uEj=@+F`(>@pj=A=E@=@>`$C >Q@=h@=@@>Q@)=Q@=`@>Q@ >Q@0P>@@= ?P=Q@=Q@=\@f>Q@g=QBt >|@ 6~Gp@=%`7EH%[) ) n6P* * F`V07 07 - - Zv, , 1`p+ p+ `*0R 0R +`: `: lT T ҐX X ps ps +lo]@N @N P6 P6 t,A A ,@|+ + ,] ] K` ` (@|X"`V< < "< < ``; `; Y Y Ч E E > P> P> sW W 0pG pG (bB B 0a a s`V>C C >J J 8 8 D3 6~Gp@=2RC|% vU U E E gO O  vJ J @Y Y 4 4 [04 04 h P6 P6 (@cP$ P$ Z6 k9 9 (c" " ~d# # A A l  F F F F G G @p p vS S lpG pG J7 Q Q 8[ ; ; ) > > dm`pC C \ `M `M v P# n [=/ % % a a t W W / pX pX 0Y 0Y 1[,Z 6~Gp@= E'"i@sssttttM&`0t0t3@||1jP|P|]w a a@'{{lW 0{0{vp}p}`uu vv4pvpv PuPup`bb|tt<|ssaa}``m t\`Viiru0c0cF@0a0a0pzpzG yyJxxP0y0yG@xx)ww b}}*0b0b|7aa`Vprpr=0s`V``R 6~Gp@=lFj'mII7@Q@Q7PAPA@HHB`VЅЅ\5JPmPm.: ?? @[@[p__pddp bb(!":-C-@0g0g@VVf ;00MM`VKK`R`R00sڸ@ЛЛn t t)uww?P}P}c@X@XWQ"9 6~Gp@=R`C@%' |0 0 {P P |p p h&@ Vt 0а а d j   FhRh=`@L=\@0h=`@@>`@p4@>@>`@X">Z@C>@ y>?0y>`@`Pz>@T>`@? ?"%? ??@0>`@@O>`@p=@x>@=`@ >? >@@=`@PS>? >`?@@-==F2h=nBd=F D=E0=C= SA=PF=fE=Q@=@"@="@=#@ U=@0=@2>Q@@%>@ @PU>#@`=!Gp >BB=C>Q@x=QB.>QB8=@=@܇>L@ 88N4=F2=`F=E=`2B d >`B0=C@g=QBPnB,,B@Q`,, ,0,&@u,,HnP,p,&q, ,4 ,,D``,,@,0,Ev,, P,p,M`,,}f,,(@,`,~,,G,,#m ,@,8 ,,,[ p,,IvvtMqt,t|Vtdt<tM 6~Gp@=`>D@%) | {@ @ |` ` h&@ Vt 0 d j  `GhR=hB&=C@ <>?0G>@A`b>Ap:> AD>A>AT>@= $E>`@<>Z@>` A ?> $E0l>@@(<>@P>@>@>`@|>xB>\@>\@ȃ>?m?@0N>@%@@=>kBP=QEp?> ?.> ?/ 6~Gp@=2 Ep.&p p  v  P  v   g@ @    v &D  `s <(QP P t  H p p pY` (0 0 <6 [  Y[ Z6   (  lv l P P  0 0      @  P P `   7 GvP P 8[ 7 G[  )@p p `R  v o+v 9!v >vDa`V Qvv`V T5x 6~Gp@=r2G1.0| `V!zDf9p9 e* ~ _"<,< t 2h# C#> P0HM\ `$kz4 J.Ep@=r2`T S@1.0D0| P`V@C!JzDf9p9@ pe@p* @~ _N \"<K,<Ps tP 2h#Њ C#}>P PC0H@wMz\k @`$kGz4 @R 6~Gp@=MB`3GhR/ v$$Vv$$v$$]Dv$$p$p$E~@#@#}t$$[P $P $Y~##l ## ## ##P $ $8[##̵0$0$nv $ $v$$wY## S~$~$1$$$$@v$$v $ $t$$tq8$8$#$#$0#0#v C$C$v####,avɸ##`#`#O## ##(ps$ps$[##Tv####]d 6~Gp@=`F0%:@n0``||`100v.']..|@]00t22 t@5@5Ht<<? t??$\`7`7@]::D  5 ' ,,TW`F@0))'@++| pp(('`VPP @vk` k`@@pE|Y`[  \```[  (vjv@@stAA0llst[H@@KJее+VJ``( {@@at@@D`W>g7Uk =!G*'XX=]@l=Q@=`D Z` P! &  % P {`^ М P  O  FP 0 |О ` G p ` Д f4Р Љ GD`p 5 | ` '   P+ t : @t p Х * .5@o , `0 0. \k` 6 ik` 8 |@  .  X|  `0 A |  0 @ |0 " J7` @  * P|` , G| p- G| - T7| - )@p  n|`  )| @ z 0,   & ! xr-=|2>@%G (=Z@z=Z@ =Z@@>Z@`>Z@=Z@ *>Z@N=`?x=`?>@@=@Bys>@D*>@Fp>BP;> =Ap=`A=A=Ar>A=>fBX=!G2= ?`>Z@0p=hBP=kBp>kBb> At= A>>@>Z@0>@\=@xx<8-=}$ =(G!!2(=`F0=`B>@0=`2B@=\@P=E`GT>@ph=@r%> Cxi=#@=QB >#@4=#@V=#@g>#@%=Dp=6D =6D0h.>Q@P=QB`=B>Q@)T>@T>@3>@ >@2>@C>@x=@]@!>@.3>@r=E!> E-9& 6~Gp@=U!G6+Z` &  P P {`^ М М  O FP |О О G p p ` f4Р Р @=@A A>A0= C@=C`|3>Ap=C=Be>C^@>AP>A=A$*>AR=Ab>A=A u>F0>`"E@>@P>@RN=>Q@`>Q@ps>Q@s>`"E>`"E1>`"E?>AШ>Ev>A>Q@Uu>Q@c>Q@9S> C c0>pB@P>@`>@b@I.=MBZ h>3G''hR=C=@ 0>@0Sw>\@@e>CHA>QB`L=\@=@=F>Q@* >@.>\@|C>`@=`?>? h>`?PX">Z@>@S= A~>`@#> ?\>@ d>QB0u>@Pd>@h@Rg>@h@jd>Z@X= F= F=D7=D@=D" >@I=`@8 >Q@ ^2>Q@0!>Q@@\>Q@P=l@Xx.==@P=7G''P%0=?<0>`@=@@,=`@pr=`@>`@= @0>]@0=]@@=]@P=]@`s=]@pn >]@T>]@=]@I=]@=]@.=]@=]@ >]@]=]@=]@=]@ =]@0 =]@@5> @PL>`@ >?P=` @ >Z@)> @0>Z@` C> @=@]@ >CH >C=A=@=@? xx#w' .= ` =@H R>@J\!>#@P>QB`0>`"E >BB=C=Bp=6D =6D0>@=@x=@D>@z>@=CI0>Z@ =A@sy>Q@PnC>\@`tx>Q@py= A=PF4>!GZ=!GB>\@>\@>]@>\@ 3>#@0=C@=fEP(=F`d=QBp=D=Ca 6~Gp@=hbF>:op~p~n| wmPP`V@@(`VF*O*<@@`V+oH]l 0 op`K00<;L6.h<__("?.0"r<,H.8"MpYpYq|<!MrQ.rZ. R.00k`VГГA`V@@ ЃD=/@``/ЊЊbP`Vȹ ``X  Dd$-vx,ă 6~Gp@=h2C1A:U@@ZT@@_T  T^--&3i``npp|00 @spp t@8@Tx`.C//.pp@>GD` = = |PP't4t`U\k`AAik`??TXT@@(T T``~5ip*p*T""zET00X`.@@UYT@@^`U``b;;r)66@F@@@F!PP|PP,,0P/P/|T @--0ppPL`BB[`@@T&&$L.nT  TP P 4TP P b p8p80 Ri`lP/=c HG,,he0T=`@>`@0>`@`>`@ >`@>`@4>A > A0>=A@=Q@`t>>DGpH=ZFJ=ZFpZ>!G`=!G=&@$>?s>?? ?0r*>`?`p> ?>@=@>Q@@c>@>>`@b>`@ >`@P>`@=`@b>`@*>@D=?@?@p>`@>`@Z>?>? >`@@ >`@p >`@ >`@ >`@ m> ?0 '&%81=U`yP=@MG,,P%0T=Q@X=\@`=GA>\@ 5>\@(">D0R=@GAp=C=KD!3>]@ >@@@>@^ >]@ A>]@ p=\@ z=\@ ={@ =FA=C">? ~= g@P>` CP$=HA`,#>@p,#>]@,h>]@,=`C,1=\@,#>]@,>]@,A>Q@,>Q@-Ά>X@->Q@ -v=OE0-= ND-g>\@Mj=\@M#>CM=?M >\@MQ>\@MfE>]@N=@N@8&= >= F>QG==Z@2=?G!=?1 >Z@@!>Z@`:on| w c*1`V0 0 t  t` ` @ 4C@ _&t pV |t t` ` |  `Vp p &u & d j P P | j p p  w   | ~D| Սo t0 0 't` ` @t p p | V5 's@ @ `5m p p \} 5|Е Е eE|` ` # >@ @ k` ` }`!` ` r(@` ` `  r@ @ ) 6@p p @  HZ 6@@ @ Р Р @` ` l Z F@ @ /) `gp p  0 )` )@0 0 > J [@ 7B "`VJ`V`V`V.t  >xه-=U@P=[G33P%D=C4>]@ 4>]@0=?@=?PR=@?`=Ep>]@>]@t=]@d=]@?>\@ p>\@(=Q@0~>FA@>Q@P$>`HA`=@b2>@dS>@fd>@hC>@j8>@lx#>@n>@puS>@]@r >R@t@h>@v >@x5>@]@ztT>Q@xD>Q@D>Q@>]@$>GA=@GAR=\@>`@=]@ $=]@0!=]@@=]@P>g?`=]@pq=]@=?=@=]@=?@">\@Q>Q@I 6~Gp@=`QGR{dd :o`n| w ' hhp`j`jmkkN(YE>G c*1`VHPwPwg7 @=`fG@%L>X= F=]@=D!0 Pt  t` @ 04C@ `_&t pV S |t  t` |  `Vp &u 0& Q d j P | j p  w   ` | p ~D| 0 Սo 0 t0  't` 0 @t P p @ | P V5  's@  `5m  p p \}  5|Е  eE|` p # ` >@ k` p! }`!` @" r(@` # ` $  ' r@ @* ) p+ 6@p P, @ 3 HZ / 6@@ 0 Р 0 @` 2 l 04 Z 8 F@ 9 /) 6 `gp 0:  < 0 > )` ? )@0 A > B J C [@ E 7N B "`VJ`V`V`V.t &  ( >- x.=U@P=kG@@P%,=@?=E=\@0=]@=@?\>`D=X@=`@=`@p=@?o >FAX=GA3=GA=GAT=Q@ >Q@=Q@ >Z@=Q@B=Q@U>Q@ V=@(j=@*1>@,J>R@."=@0j=\@8$=@@>@P+>@]@RJ=]@`=Q@p-P>\@x|>?=@=`B+=@?~>@GA=FA/>@[ >\@f >\@7 >@GA6>AZ>]@6>@]@ U>Q@0T>@@5>\@Ht=@?P= C`y=E/ >]@: >]@=FA=E =]@=]@ >\@T>\@z= A= DB>Q@q >e@p`) &465`@$ kp0P` n!pPV`VЩ` $PH$,$*$@$l&p}#{#~#@s#0t#r#`##k& u#u#p_&L&@#p!#`"#0##$#Љ" #!В`@`ipзP043p605:`8@$``K7DB@A?/-,@*'%1IHPF=0<:`p`lmm`  =   0    @?  -@E-/-2-)(@)p(          221-1w10p0`0000P0Ж.p.K0p3 444   1@. (p40``EG'J'`D'0    0. 0&`80 &044p444@44P& &'0 'P@! P_p  0 !!!!Щ!!p!P!!Ѓ!!0!@!P!Sp  y P!   pk '!pH!i!i!Ph!(p**,p+`+0k,З*)0M*i,)O* *) +",9,',U,D,-+`,+R+0d+j,+(( j,i,i,g,g,h,h,i,)R)e)o)b)Px)Ѓ)|)X)j)pk)0**pH,(P))p& &Z o z  } } y @ @s @t w  @u z p @  p~   v  | q @ @ P//@//.``yqp."A=@= `Cxo a`j = = 0@pp 0@`00  @  @>p5`u4<<P<<< <P10w x0V`0`>6`pn`@0=x LP.@H`03LP`p`@0@P2 Y D E 0` `H Y $ n m n  iq0rC8E0ped-Pq7cWPW ED`A2КP"p@ $*@,` 9 P  P p ``B(p9(X(`g(''Pm'q''P''p'0'0''''' ' 6 p6+̯65c6)@c6)D56!˹55e 6>6%76-0a6(5562Z6(?6%}?6% 6 6!9"6"67D6.56$Z6(5Ѹ67 6 6!["6"@[6(t62676!P6-5@6 V6D66$}"6"D6%6@6%755 6/6-}65us56\W6';6$_65K!6"5B62H6&x6,q5)563g685 5xg762454444R4U4*5X4&4a4h4D4z>6%jB5 p475 D5 .444N5 n4/4_5 .6!44*5 5@4,44!4{+=O4-4L4N4'4(445 4f54$454 44454A42x568"x5ԏ6/Ά6.66N5 6G)55=6!555596$u66 5456485 Ȉ6.s5T6'V5 52{5PC5 55555C5N 6BW5 5tM5 \4=6%W5>5Hs5$6.a6-75 55Y6(h6)`65 ic6)'6"_6(_6(q|6,f6.h61ޱ65 6.62f6/L16#76ӻ6765V6'Ғ5+56V^6!5'6"g'6"t6+656-86.67#'6"666/5h45 f6)B6%B6%x_6(t6+Ē6/60n6*t6+_6(b5Y6(05pm6*6/6-B6%685596$6!6;6!(6"6U5`Y6( 6 i6*Jb6)gM6&'6"k$5585 ?66!H5QG6&h5+55`5555]5C6%5m6*M5 >5 60a6(16#605;6$61s6+={6,g6)6D6%};6$61 56 69b6;ho6*'6;g6)6:H65i6<v6FU6'g5>5 V5 e86$q5lL5 Ǟ5`_5 >U5 g6)h6)qN6&k+6#@ 6 565M61>6%61G6&n6*PZ6(625B6%560J5i6?c5K4Ś5~e6)bU5 5p4 g7pg7`X+=pg7pg7pg7 _+=pg7pg7 xg7 pg7 pg7g7p@=p@=p@= xg7 xg700i+= pg7 pg7 pg7hp@=hp@= pg7 _+=xpg7 pg7 pg7 pg7 pg7 pg7 pg7 pg7 pg7 xg7(HH+=00i+=pg7 p@=pg7 xg7pg7pg7pg7 xg7pg7p@=``+=pg7pg7pg7pg7pg7p@=pg7p@=x xg7 xg7h0 g7 xg70 xg7 xg7 xg70 g7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7H84pg7pg7pg7pg7p@=p@=pg7pg7pg7pg7pg7pg7pg7 xg7(pg7pg7pg7+=+=+=pg7pg7g7g7pg7pg7`P4,=h+=p@=p@=pg7 xg7pg7X@+=pg7pg7pg7hp@=pg7p@=pg7 xg7hp@=pg7p@=p@=p@=pg7pg7p@=p@=p@= xg7p@=p@=p@=p@= xg7 pg7`X+=x+=pg7pg7(p@=pg7pg7 g7pg7pg7pg7pg7pg7pg7pg7`@+=pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg70pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7g7pg7 xg7pg7(p@=pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7`@+=`@+=`@+=`@+=`@+= xg7pg7pg7pg7pg7pg7pg7pg7`@+= xg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7`@+=pg7`@+=pg7`@+=pg7pg7`@+=pg7`@+=pg7`@+= xg7pg7`@+=pg7pg7pg7 xg7pg7pg7pg7pg7pg7 xg7 xg7 xg7,=+=pg7pg7pg7pg7pg7pg7pg7 xg7pg7pg7 xg7pg7pg7 xg7pg7pg7 xg7pg7pg7pg7pg7pg7pg7pg7 xg7pg700 4pg7(p@=(p@=pg7(p@=00i+=g7pg7pg7(p@= xg7(p@=(p@=pg7 xg7pg7 xg700i+=p@= xg7 xg7p@= xg7pg700i+=pg7 xg7pg700i+=pg700i+=pg7 xg7pg700i+=pg7 xg7pg700i+=pg7pg7pg7pg7pg7p@= xg7p@=pg7p@=p@=pg7pg7 xg7pg7pg700i+=hBPFܯkBfE<hBFvckBFvcPhBETHiBETHIB`Bp=9hBPA40hB@QAWHBB hBTAٿB#QB`)C"aMS#QBYAoiQBZAcQBB(QB[A(pQB`[A @QB[Al݈QB \A!,T@kBFtkBB'?@eQB_AЇhB@`As7 QBB(0 \BbAtW-]B@cAx2]BgA2ZBFI1_B hAݕ51_BhAH@51ZB`F9Z. A`F9.ZB F. A F-ZB`F6i/ A`F6/ZB Fx/ A Fx0.ZBF 2@<0 AF 20/ZB@F4$/ A@F4$`/ZBFS=`0cBkAh4bBlA+y3cB`#Bap2cBmA4aB`$BjL[a`3cB@rA.!3aBrAi3ZBFr~` 3QBB0Z hBvA:p hBvA k QB`B) hB`CKZ-'hB@xA.('hBxA p 'QB`B櫼 QBBp QB4C Q@ QBBf~ kB@iFRTP!QB`Bv (0 YBE{й(QB`|Av*nBF9P+hB`BV}[,hB}AG C+nB;FwC)pB;FwC )QBBn.p)QB`B80H,hBUFy,hB0BM+QBAA9p+kBnE)|(hBBMOq(QB7C;hB@FD30D kB@FD3 K QB`3BkQBB `@ QB AB@QB`FPQBAFX=J hBA -S#QB`A~QB`EB`(sBB@sB`B9sBBjtB`Ay5tBA}_tB ALtBAsB`BtBBtB@APQB AJYQB A=PQBYClY` HB ZCmuQB@ A->hBCܖSQB At;@hB`BC9QB AKQBDr}&QB@Ap!p~&QB`DMP.#QByB500#QB Ct@1#QB A+1#QBCMr2#QBzB$4#QB Dy05#QBCl!QBCC'K&@`QB@DCC`QB@A}v0[BB[f5-\BAQM3BP \BA#0 \B;AG: ]BBB 2_BAA&1_B]D`P1_BE01_BE8=&1lBBe4H`0bBcBIC3dBdBB4QBC7$0 kBC?x` hBBΰ, hB`LCY -'QBB^!QBBgl.!kBMCVp!hBMCAҹ+kB@NC&,hBNCgQf@,hBOCrL +QB`?A ri,QBD5f0,QBHEʀt,QB CZw0,QB@AA{=n@,nBC31-QBAA-QBBA̾-QB`CuN,nBkF *QB`BA^cp-kBC^-QB PC T -kB@C p,QBPC5-jB`QCsP-QB@C7v0-QBCvݵ-QBBAGkr&QB CAFQBCA~tkBRCKP QBA_ LjBSC}Kk]QB`!Cd{ QBD`QBJAW@Z sBByj(sBTC'@(sBD(CT(sBC(QB UC+7pn(QBKA0o(QBA7y#( xg7`,=p@=g7pg7pg7p@=p@=( xg7p@=pg7pg7pg7g7pg7pg7pg7 xg7pg7 pg7 pg7 pg7pg7 pg7pg7pg7 pg7pg7p-= pg70 xg7pg7 g7pp ,=pg7p@=`@+=(g7pg7@84pg7pg7 _+=g7``+=hh-=hh-= pg7pHp@=p@=p`+=pg7Hpg7pg78pg7x+=p@=884g7Hp@=Hp@=pg7( g788p+=g7(g7pg7pg7 xg7`@+=pg7p@=pg78(@=8(@=8(@=p@=p@=(g7 g7pg700 4pg7`@+=00i+=`@+=`@+=00i+=pg7p@=`@+= xg7pg7pg7pg7(hg700i+= xg7pg700j+=pg70 xg7g7`@+=pg7g7g7g7g7 ]+=00 4`@+=00 4 xg7pg7pg7pg7pg7pg7pg7pg7@pg7g700 4pg7 hg7pg7 g7pg7`@+=`@+=pg7pg7pg7`@+=@@+=`@+= g7pg7 xg7pg7pg7pg7pg700i+= xg7pg7pg7pg7 xg7pg7pg7pg7pg7pg7g7pg7pg7pg7pg7pg7 xg700 4pg7`@+=pg7 xg7g7XX+= xg7g700 4g7pg7pg7ph.=pg700i+=p,= g7pg7 g7 g7 pg7pg7pg7pg7pg7pg7g7p@=g7 \+=pg7p@=p@=p@=pg7(g7 pg7pg70(@= g7@04(g7 g7 g7 g7 g7p@=`X+=pg7((`+=pg7pg7pg7pg7pg7g7p@=g7((e+=pg7g7HH+=(g7g7 g7p@=pg7pg7 hg70(@=@84PH+=p@=p@=p@=p@=p@=pg7p@=@@+=@@+=@@+=@@+= g7pg7x8 xg700h+= pg7p@=pg7p@=p@=p@=pg7pg7g7pg7pg7pg7XX+=8p@=pg7pg7p@=804pg7pg7pg7pg7pg7pg7p@=g7p@=p@=p@=p@=p@=g7p@=p@=0(@=p@=p@=p@=h/=p@= `g7@@~+=p@=p@=p@=p@=p@=p@=p,=((@=p@=pg78 xg7pg7p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=pg7p@=p@=p@=pg78(a+=pg7p@=g7g7p@=pg7g7p@=pg7p@=p@=p@=pg7 `g78 xg7pg7XX+= g7 `g7g7g7p@=0(a+=`X+=0p@=pg7pg7pg7pg7 g7 g7 g7 g7 g7p@=p@=p@=p@=pg7pg7p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=(pg7pg7pg7 xg7`@+=pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7pg7`@+= g7pg7pg7pg7g7pg7g7pg7Hpg7 g7 g7pg7pg700i+=`pg7(g7pg7pg7(g7(g700i+=(g7(g7(g7pg7(g7(g7pg7 g7(g7pg7(g7(g7(g7(g7(g7(g7(g7(g7(g7x+=g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7g7p@=g7pg7 pg7pg7 xg7p@=p@=p@=p@=p@=p@=p@=p@=pg7 xg7 xg7pg7pg700k+=pg7xpg7xpg7pg7pg700i+=pg7 hg7 xg7 hg7pg700i+=pg7 hg7@hg7pg7pg7pg7pg7(hg7(hg7(hg7(hg7(hg7(hg7uBPFܯBETH0BEd`vB`Cj  vB Ctp  wBB-,/1 1wB`B*&,,wBD_ @yB`BYU@%0%yBB`%p%yB`B~/& &yBB y3%%yB`B2}%%yBB.*#&&yB (C>Qe $04%yB`Bm7C&yBBpИ% %yB` BL*`%yB B9[4&&yB` BP`&yB BtZ%%yB` Bo0&yB BV`%yB` B$&yB B0M%%yB` B; @%zBB%u{B@+C߿)p^`{B`BWlm{BBM?/jpl{B`B`c e{BBH@ac{B`B!ߍij{BBig`i{B`BBB?A B/&@&&BF0    `B,CU22`B`C.^22 22BC>o@0000B`C| @1`B1@1@@1B`.C0`p @SC@CC  UC`D/-@..`//UC Dʷ011022\CiEY `oCF9 : 0G = < p; zCCW3PCDL,-\ \ 0m ] m CDw:!!)!p!0*!C`D]3!3!@J!6!J!C D S!S!j!T!j!`CCB/k ` P  @   C`D UFCFPD C DJNhf h g CDg.W6Pe_@@e@` C`D!LpGKH CD:q896@9`6 C`D;lVUUVU C Dz\Y`\Z CEXPPNPN CD 8pЃ0 CE1..@/ CD nYWWXW C Dq pq@p CEOpCp: @?: C`D @` C D; spPrspr C D^fXP0@@ C D#U<402`42 C` Dk z T0PT@Q C Dv6pp  C D0px0 ww`x@w C DrQ`vPtPvu\C 'F9hL`0\CE]`/APB\C E:)go^^`vsP pg7p pg7p`.= pg7 pg7 pg7Hpg7X((e+=p.=pg7pg7pg7ppg7 pg7XX+=0pg7@ xg7`8(@=p@=p@=p@=Ppg7`p@=x,= g7 xg7 hg7p@=`P+=p@=p@=p@=p@=p@=8(@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=pg7pg70g7pg7pg7pg7pg7pg7pg7pg7 xg700i+=pg7pg7pg7p@=p@=pg7pg7 xg70(h-=`pg7p xg7pg7pg7p@=p@=pg7 xg70 ^+=pg7p@=p@=pg7 xg700i+=00j+=`@+=0D-=00j+=`@+=0H-=`00j+=`@+=-=00(@=`@84`X+=00(@=`@84`X+= xg7PH+=,=ppg7 xg700i+=(p@=(p@=(p@=pg7 g7 xg7pg7pg7g7(pg7800j+=h,=p@=pg700i+=@C`ZE` @Pppg7p@=p@=` g7 xg7`@+=pg7g7 g7H _+=PP+=0 \+=pg7pg7pg7pg78(@=8(@=x xg7((f+=@@+=pg7 xg7@@+=@pg7Ppg7h`@+=00 4@PP<,=``>,=pg7pg7 _+=pg7 xg7pg7pg7g700i+=X g7x00j+=XX8,=g7g78Z,=p@= hg7@84p@=p@=p@=pg7pg7g7p@=g7pg7pg7pg7pg7pg7pg7pg7pg7pg7`@+=pg7pg7pg7p@=p@=p@=p@=p@=p@= g7 xg7@@+=pg7pg7pg7pg7pg7pg7pg7pg7 xg7pg7pg7 xg7pg7pg7(g7pg7pg7(g7 p@= p@= p@= hg7 hg7 hg7CGR $@#P$#### $CsFh=xЯ!!0!P!p!!!!C@iFRT!P!p!!!!0!P!CF}~p!!Ю!!!P!!!CF"e0!p!!!б!!P!p! pg7 pg7 pg7 pg7 pg7 pg7 pg7 pg78 xg7X,=,=pg7`pg7ppg7pg7g7 xg700j+=800i+=h,=pg7p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=pg7pg7pg7pg7pg7pg7pg7 xg7p@=p@= _+= _+=p@=pg7 xg7 _+=Ppg7` pg7 xg7PH+=pg7 xg70PH+=`@+=0pg7@00i+=pH0h+=H0h+=pg7p@= xg70pg7p@=p@=pg7 xg7Ppg7`00j+=`@+=-=p@=pg7pg7p@=pg7pg7 p@=8 xg7p@=pg7pg7p@= pg7 pg7 pg7 pg7 pg7 pg7 pg7 pg7pg7 pg7 pg7 pg7(p@=8g7P hg7pHp@=pg7@((d+=h004hh-=pg7pg7 xg70pg7 xg7 xg70@@+=p,=pg7pg7 xg7`@+=pg7pg7 _+= xg7pg7pg7g7 _+=pg7pg700j+=-=pg7pg7pg7pg7pg700@=pg7pg7 00j+=P00j+=,=-=pg7pg7pg7p@=pg7pg7pg7p@=p@=p@=p@=p@=pg7pg7H0A=(pg7pg7pg7pg7pg7pg7pg7g7 xg7`pg7ppg7 xg7`@+=pg7pg7pg7pg7D FVE0@J0c0p@0A0D0K0B0@`0@G0@>0DFA30P pg7p pg7 pg7 pg700i+=` pg7 pg7 pg7 pg7 pg7p@=p@=p@=p@=p@=p@=pg7pg7 hg7X@+=ppg7pg7 xg7 hg700i+=pg7p@=p@=p@=p@=((f+=p@=0p@=Hp@=`p@= p@=0p@=@pg7Pp@=`p@=pg7pg7pg7pg7 xg7pg7pg7pg7pg7pg70pg7@pg7Ppg7` pg7 xg7Ppg7`00j+=PH+=-=P-=@ xg7`00j+=PH+=-=,=@ xg7`00j+=PH+=-=b,=@ xg7`00j+=PH+=-=,=@ xg7`00j+=PH+=-=+=@ xg7`00j+=PH+=-=  -=@ xg7`00j+=PH+=-=,=@ xg7`00j+=PH+=-=xx,=p@=pg7pg7pg7pg7p@=pg7pg7pg7p@=pg7pg7@84 @84`,=8p@=P8 g78 g7@@+=p@=pg7pg7pg7g7 xg7pg7pg7pg7g7 g7pp@=p@=p@=p@=p@=p@=g7(g7@g7Xp@=-=x`-=pg7p@=p@=p@=((@=p@=`p@=pp@=p@=p@=p@= p@=pg7pg7pg7pg7pg7 xg7hp@=xp@=pg7p@= xg700i+=p@= p@=0pg7@ xg7`00i+=`@+=@ pg7` pg7 pg7 pg7 pg7 pg7pg7(pg7800 4@@+=0 \+=Hpg7pg7pg7 xg70 xg7PP84`@+=Hpg7Xpg7hpg7xg700i+=00i+=Ppg7` xg7 xg7 xg7 _+= g7pg7 xg78((@=`((@=((@=((@=((@=Xp@=pp@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=p@=Ppg7`p@=xp@=p@=p@= xg7pg7 pg70pg7@hg7Xg7p00n+=``>,=pg7p@=@pg7Ppg7`g7xg7 xg7((@=pg7pg7pg7pg7pg7pg7pg7E`F9. \.:..Z.@.p.0..--5.#.0[...@.p..E F-.--.@-p-p0-p-`----0.--@-p--E`F6/Pk/J/,/i///00 /,/..`F/4/0j/p/////E FxP.p/0../..0@.. ...P.P0/....0.EF 2/=00/@<0p//0///t/@0/0@=0////0/E@F4$//P////0/p0p//0/`|/P/P/0//Ћ//0/`/EFS=m00@0`~0`0m0n00@n0P~0pk0f0p0P0h0`0n0n0n0o00o0@p@=Xp@=pp@=p@=p@=p@=p@=p@=`p@=ppg7 ^+=``2,=p@=(p@=8p@=Ppg7pg7pg7 p@=8(p@=`00j+=,=,=hz,=Pp@=`p@=pp@=pg7pg7p@= g700i+=EFr~P3 3p3` 3303` 333343/3PF3733K3` 3333 3 pg7 pg7@ pg7` pg7 pg7 pg7 pg7 pg7xpg7pg7pg7pg7pg7pg7pg7p@= ppg7pg7pg7pg7pg7pg7pg7pg7pg7 p@=`pg7pg7p@= xg7((f+=p@=p@=pg7 xpg7pg7pg7g7hg7 _+= _+= _+=h00n+=@@+=FFIP1P1P111p111p111111111102з1102p11 2101 1@1`1 pg7 pg7 pg7 pg7 pg7@ pg7` pg7 pg7 pg7 pg7 pg7 p@=p@=p@=p@= p@=8p@=Pp@=hp@=p@=p@=p@= pg7pg7 pg70pg7@pg7Ppg7`pg7ppg7g7 p@=H8r+=%F F3`rФq}`0pr p~rsy}`Ps `|pqpro444!44I 54V5 4 pg7pg7pg7pg7pg7pg7p@=pg7 g7@0(@=p0(@=`X+= 0pg7@pg7Ppg7`pg7ppg7pg7pg7pg7pg7pg7pg7pg7pg7p@=p@=p@=p@=p@=p@= p@=8p@=Pp@=hp@=p@= p@= p@=h+=(p@=@p@=Xp@=pp@=p@=p@=p@=p@=p@=p@=p@=0p@=Hp@=`p@=xp@=p@=p@= p@= pg7U5 5f55Xr55>5xp555ؚ5ڞ5q5r5^5 5l55855g5E5'a5 |5p5o5 55~65k5ϣ5#5LB5 P4V4J4%54Z4\4^4`4b4d4Y44 4&544'444445; 5<44B5 44/45444_4'5"54]4d5lm5{m5\5 G\5 4J?5 T?5 bw50d5 5R5 4}4Ld5454405\5 %J5 ]5 "5b@5 RS5 %4s#5J5 [4HA5 54zA5 4p5T5 T5 `pg7ppg7pg7p@=p@=p@=p@=p@=p@=p@=p@=p@= p@=0p@=@p@=Pp@=`p@=pp@=p@=p@=pg7g7g7 p@=0g7xPP,=!55A5 I5 4Y5{!55v@5 ]5 [o5^S5 2w5+5x5t5{425 vS5 35 *55uI5 rT5 By515 25 5He55yo5!54\n55L5S5dz5625R5 554ʂ525 y5Y55655n5jI5 5m555ǡ5K]5 jS5 6Ve5+5 55x5]5 5S5 545.55?5y5R5@5 5Ƀ5S5 NK5 4a4$54444C5 444C5 94)4u4-4z44444575 4!4E4-4C5 4Y4W4C5 45&75 5{44;'55544S'5M5 ['54c'5M5 4444 4s'5{'544 455Aa5 j5Na5 j544/565=5D5Q41455c454945o4u4A444"d544554>5 45M4!5I5 4Q4444544(5]4H5!5/5654!54!5?5 a4i4"?5 R5 I5 R5 5Q5Bw54D5@?5 K5w54^?5 6 44q4`5K4k15 444n544u54444S5m55d5u5 "5>d5&445}15 }5?5 w5w5]5Zd5O5"5r55m5hd5ƌ5،5?5 a\5 5?5 c55m555w55"5n\5 ?5 +45445544S445+"54554X43"54I5 R5 b4g44l45\5 44V5ղ5v45I5 44i4A4555G4444o44\5 55m5R5 5\5 4r45S44e44\5 4m54$5\5 ?5 4}44954444@5x44J5 "5415 \5 n5 n54444U54444444c54444q5444 444x554FJ5 455 4A5&@5 ]5 ۡ5S5 55/n550@5 >n5Rx5"5$]5 d51]5 bx5ԍ5R5rx5>]5 x5QJ5 d5:@5 Mn5c5e5"S5 15 kn5D@5 44\J5 5e5n5zn5e55n5/4n5x544!454%4)4:S5 X@5 -4l@5 >4C44H4555=4555-5ƪ5n5 #5E4#55M4I4r]5 @5 ۪5J5 25 @5 J5 x5n5x5x55#5]5 n5]5 S5 Y5@55o55`5n5S5 5ڃ525 de5d5re5n5R454454M45Q454 43#5f4/5o54u4 55 5z4;#5@5 S5 "y5U25 a4e4i44@5 e544^25 e55e5+4[#5J5 ]5 4m44u44414y4'54455<5C5}44o5?5n5445J5 f5g5]5 R5e5ry5x5K5 p25 f5o5(f5@555Q56f5b5S5 o5 K5 4]5 T5 44T5 m54t5{5455O444o5o5y5\^5 a46T5 445Ę5i^5 5o5ߢ5NT5 4445ZT5 25 Rf5ט5`f525 4425 nf554444445544RA5 4\A5 4YK5 o5dK5 .4fA5 345T5=4 35 4[544b54i5435 oK5 v^5 ل54pA5 4G4#5zK5 5~T5 |f54K5 $5T5 o5y5L4 $54V4~5[44e444545j4T5 ^5 r5f5f54o4t45444y4444444445'44444445544p544445544i4u44{4 4!45C$54444-414 5435 45444 535 35 35 45 45 45 45 )45 4K$5245  54S$544/494- 5=4#4(44 5;45 474E44[$5B 5A4V45 4F4_45 U5 .B5 c$58B5 P 5W 5z45 P445 4Q44e 5{$5$54l 5U4Z4$5U4s 5$5z 5$545 BB5 45 $5z5$g545 545 5_5 2U5 2g5ޏ55544444d4i4i4 5 544 44n444#4)4/454;4A4s4G4M4S4Y4_4e4 5k4q4w4}4x4444445 $545 4444}4444444 54 544444445 4 5444 5 5u4 545 5 5 54 44 5 54%4$54+4$54VB5 44=4`B5 4444 5z5r545 45 5L5 U5 U5 445 5$5I445 O4 5$5U4" 54) 5KL5 ~B5 4$57 54E 54L 5a4g444m44s4y4%5 %544Z 5%5455 a 5h 5o 54v 5%5U5 U5 %55 aL5 } 5p5"{544.55 4 544 5 5444#%54 54G4+%543%544K%5 5444'4S%5U5 44[%544 5\g5 5,4 5 5 51444R55 [55 c%5B5 p5B5 p5B{5Dž5d55 5 564;4@4 54E444 4s%5J4m55 4O4 5 5 5T44 54^4_4!44b4 54 5e4v55 44 534?455  5c4% 5, 54h4E4m4r4: 5K4w4{%5Q4A 5%5W4wL5 .V5 H 5O 5]4%555 c4i4|4u4444444{4:V5 _5 xg5 4] 5d 54k 5 4444444 54455 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5444}4%4 54 5)4 54-4441454455 944 5%555 ! 5=44A4444E4I4M4Q4455 U44444444 444 444( 5%5C5 / 56 5 C5 L5 %5= 54D 54K 5R 5!4%5#4&4)4` 5C5 g 5n 5a455 55 ;4u 5g5p504| 5:4 5 5 5 5 54M4y4I4S444 54 5e4 5k4q4w4}465 !65 4b444 54*65 54 5<65 E65 W65 &544444 5444#&54 544 544444444 544 5 544$ 5444444+ 544442 5{65 9 5@ 544G 544443&5N 5U 5\ 5c 5;&5j 54q 54 44x 5 54C&5K&5 5 54444%4 5S&565 44xC5 h52|5.h5;q5Jq5B|55'5Yq544465 4+4 5[&565 5L5 c&5C5 M5 k&5s&5 5 54441474 5=444I465 5O4 5 5M5 4465 44U4[4a4g4m4Jh55'M5 hq5Xh5wq5s4 4 5&5 5 54&544 5y465 4 544 544 444%445 54/44455 5&5'5444465 &54>4C4H4&5455=M5 HM5 65 <5C544fh54!44%4J5Q5X54_5f5&5\4a4m5t5k44p4{5475 4^M5 |5W5 5545544&54&5 75 445544=444454&5555&5A4I4434M4494?4E44Q44U44K4Q44]4M5 |54]4c4a4i4544i4o4'5 '5'5u4'5#'5+'54C5 3'5m454446W5 45q454C5 +r544544C'5K'544C5 444C5 454h5B}5:r554y4*541585?5k'5F5M54T54'5[54b5444}44i54$4p54 44)4w5444.44#4'5)44/454'534~584=4;4A44G44M4'5B4G45L4'54Q45V455875 [4e44e4J75 5k4o44555t4'544y45q4 4C5 45'55~4S75 w4'555}45'5'5 4\75 44444444M5 NW5 5ZW5 e75 n75 '54544 5475 75 75 4545445444&54rW5 '54'5444-54445475 444;544B54(54I5P5W5^5(5e54l54D5 44s5z54 )5)5554444)54544+)575 444554+41454 4M5 vr5M5r5}55^5}5}54`5 74=445M5 C4I4O4U4[445C)54575 a45#44(4g4555-4m4s475 K)5454447454 4 54F44585 4 4K444454{)5P4U47585 4Z44>54E5_485 h5A44L5S5I4a5d44i44n444)5)54i5h5485 }44M44o5U44v54}5D5 4!4'4-45=85 :N5 345F85 EN5 Y45549445554?4b~5X5 Q4a4454)5)5]4c4)5)55X85 D5 D5 PN5 5554[N5 X5 5X5 j85 s85 )5e44u444445)54)5)5)5)5)5i4o4*55|85 D5 D5 fN5 55 5u45{4 *554%544,53544:54A5D5 485 H52X5 85 O54V5444]585 d5444r5y54+*5"45485 `5 `5 *s50E5 ~i5~55,485 ;*54C*585 146445455;4@45E44544454545 444585 5/4544A4T4c*5bX5 i5s5G4Y4M4k*5N5 585 5S4Y4^4_45h4e4k4m4{*5r4w4q4w45N5 85 N5 5}4bE5 4 585 85 ~5É5444545!54444444*54R54Y5`544I4L4g544444444[4444444u5|5444554455444444444455445444*544444B4W44i444I4U44]44D4 4444444444\4444U4q4444B444!4]44444)4-44I4444444M444Y4-4q44444X4G4D4N4_4444z44W44944444444S4Y444444444%4i4m4q444 44J44=444^4444444c5k544444s544444oj5444{545445s5\5P5b5+5 ~j5445:5 5sF5 55۰5j5"555t5t5j5=5P5~F5 a55F5 75c5t5v5555+5 a5F5 45444455444 4445+5 45544+5 $4O5 Y5 4444!45b5445º5'4 5 P5 -43444+455#52449444?4b555"t5Y5 5b5E44+594 4@44*b5K42t5Q4358b5F5 W4G4]4N4;5c4U44i44\4C54c4P5 +5 !4:5 Fb5Bt5Rt5j4o4u4{4K5q4&44x4+40444S54444[554:444444c5k54"P5 4s5{5?4Ί5F5 Tb5L5Y5 5”5bt5Ք5F5 rt55+5 bb5j5pb55555~b55.P5 j5F5 t55j5Y5 :5 t5F5 D44:P5 5j55t5j5#5t54t554I454N4S4Y5 F5 X4F5 4444555]4a5755ٺ55t5,5 b4 ,5 54g4b5F5 35FP5 ":5 j5F5 RP5 5v55t5I5"535b5D5K5_5,5 b5t5Y5 !5b5545Y5 55G5(555U5u5Z5t5G5 u5Y5 :55L5 Z5 ^5,:5 k5m5k5u5445444544l45q44544,5 45"u54445455v44%,5 G5 Z5 f56:5 {4444G5 #k544@:5 2k5_5Ak54.,5 ^P5 b5444 444444454#45554 42u5s55445jP5 Pk55b555w55vP5 J:5 _k5Bu5nk5p5à555}k55%Z5 Ru5P5 )4b52Z5 /44?Z5 554 55 45#5444bu5ru55b54LZ5 ;4A4+5נ5b55u55YZ5 G4M4435fZ5 T:5 k55k5^:5 44h:5 k5;5S4444Y444C5K544#G5 4P5 .G5 4P5 u5P5 _49G5 e4S5 4[5k4r:5 4c5q444k54 4s5'4|:5 P5 c55.4DG5 54w47,5 P5 5sZ5 k5<4P5 @,5 Z5 u55}4I,5 C44{544J444Q45454Z5 c55k5k54445X4_44444444444f45m44 444445544u54444t45544 44{444%4 444*445R,5 44444/44454:5 494445:5 :5 :5 :5 :5 :5 :5 :5 4[,5 :5 54d,5 4%4!4>45C4+4145:5 744=4H44m,5 45M4C4:5 4I4:5 Z5 OG5 v,5 ZG5 55;5 O4;5 4R44 5,5 ,5 45U4[4,5 W45,5 #5,5 ;5 eG5 &;5 ,5 5k50;5 +5:;5 35&c5Z5 k5̕5ߕ5544444\4,5 a4g4a4;5C5#4*41484m4?4F4M4T4[4b4i4p4s4w4~44444K54444y44444D;5 ,5 N;5 44444444 444S54&4[54-44444;4X;5 4c54B4I4k5s5f4{5b;5 5554P4W4^45e45l4s4,5 44z4,5 k44pG5 p444{G5 u4z44455ʋ5l;5 v;5 P5 Z5 Z5 4;5 5,5 4;5 45,5 4545P5 G5 4,5 54544544444444,5 ,5 445-5 4;5 55544 5-5 Z5 Z5 ;5 P5 45u5̀544;5 454 4#5+5444-5 4354%4!-5 4*-5 )4443-5 ;54 444<-5 Z5 44E-5 "44)4C5l5K5!4S5[5c5'4404;5 ;5 N-5 G5 u5G5 u5݀5܋5;5 k5s5-43494{574?4>4E4L4W-5 E4;5 S4K4Z4555Q4W4a454]4-4h4414o454554;5 445v4}4;5 555c44i44o4u454{4`-5 45i-5 4P5 Z5 554r-5 ;5 44444494444444[5 4c5l54554544444444 544;5 4554#5+535;5C5K54S5[5c5k5s5{554 44=4454545444A4444<5 445{-5 <5 454E44%44I44 4444<5 44,4344:444A4H44M44O4V45-5 G5 55G5 Q5 -5 5G5 445455 4-5 ]44d45G5 554 <5 *<5 k45"l5u54 5455#5+5r435Q4#4y4$4)4/44)4.44;5U4C54K544444<5 ><5 4544Y4S54H<5 [534c5R<5 \<5 f<5 -5 ;44A4G444k5M4S44-5 4s54]4{5484Y44=4B44_4e454 455G4L45k4q4w4}44454a4Q445p<5 554!45V44(44/4-5 5555-5 5[45464=4D455K4-5 -5 55R44`44Y45-5 z<5 4e4G5 1l55@l5v5v555ʩ5"v5e4j44<5 o4`4#5-5 <5 4+5Q5 -5 G5 Q5 -5 -5 35;5t4i4y4g4n4C5u44m4|4<5 K54S5[5*Q5 ~44<5 4444444Ol556Q5 2v5^l5Bv544c5.5 k5s54 .5 44{54<5 454454444444554q4444555.5 5444<5 .5 G5 444 444&.5 45BQ5 NQ5 <5 5544ml5444445545455/.5 %4+45 514u4745y4<5 444=4ZQ5 544C4[5 5#5$4+5I44O4+4248.5 94A.5 <5 4U4@435[4;5C5G4<5 a44N4}4U4K5\4J.5 c4S5[5j4c5S.5 444g4q4G5 m4x44s444444y44444444fQ5 !544G5 44444k544444s5<5 \.5 e.5 n.5 4w.5 .5 .5 4 H5 {54.5 4544.5 4455[5 454544H5 Rv544544.5 .5 45 5.5 H5 rQ5 5.5 45 5.5 +H5 ~Q5 4'554|l525bv55445.5554544.5 544.5 5.5 55<55C5.5 54J55444Q54X55 44 5_5f544m55#4t5(44{55.5 5-455.5 !45'4-45545245/5 7434<494#5?4/5 A4E45+5K4535;5<5 F4Q45K4P4W4<5 C55]4U4K5S5[5c4/5 Z4_4i4c5546H5 d4k5"/5 s5o4=5 5+/5 {555554/5 =/5 4=5 u4{454i445n44Q5 )[5 56[5 =5 $=5 F/5 554554.=5 8=5 B=5 45554s45x44454C[5 O/5 5X/5 }44545#5445*5L=5 4158554?545F5a/5 M55555j/5 5T55[5AH5 b5i55#5p5s/5 |/5 +535w5444/5 ~5;544/5 V=5 5444C5K5455S544Q5 rv55v5C555T5e54Bc5554[5Q5 55555 4c5/5 4k5`=5 5s54445{555#455j=5 /5 45544)455455/455t=5 5454 55555/5 4;4A45~=5 &5G445-55M4=5 l544455545S4;5Y4B5_4I5P5/5 /5 W5l55=5 e4^54k4e554q45w45LH5 }4l5 5s55z55=5 Q5 5#5=5 Q5 4+535454;5C5K545v5P[5 544S54/5 /5 55/5 /5 [5=5 WH5 bH5 Q5 c5k5s54Q5 ][5 {5j[5 =5 =5 /5 44444444445/5 4/5 05 05 05 05 55'05 5=5 mH5 xH5 Q5 555555005 5455445544545H5 5=5 5w[5 =5 555455455=5  5444 5 54905 4 55=5 Pc5^c5v5H5 l55# 54>5 B05 5K05 >5 4 45+ 55$5544 53 545; 5%454"5C 5)5K 5 405S 575>5E5[ 5>5 c 5L5S544Z5+4T05 [5 l5v5a514h5]05 Q5 k 5>5 s 5o5v574}5{ 5=4554C4f05 I4O455 5Q5 (>5 R5 55H5 U4 52>5 lc5l5zc5l5<>5 565454 55 5 5[4"4555a455g4 5 5 5 5o05 5 55 5 5'4m444 5s4y4545,45545 54454 5 5554!5 !5%54!5,5!543514464;44444@44#!5+!5E443!54J44x05 44O44@@@@g``e@fWN@`O `O`PP@`QQ`RR`SS~e`T  O`T E@@@& `F@,@ @5`T m@@` `A@@@G@@ HI@IJ 7K@L`M@N78@e`ff`gm`3`@ 4`@ f`   `@`@@c@gA@# @k``V```@@b cc`C`d@ke@@@k@z@ @V`@`2@@`d `  O@ ``@P` `kv@@k`l` ``@ :g@@;`< l@`{ = @ ``m w m`nn@}@@`o`o`p@p```q `q`@ @@@`W```r@`@@r@@@t@`h@` @@T``UX` x@@`  @`YY`ZZ`[[@@@`l` @@` `6@@``a@@` `@`  @ Fa `b@@@@`b`cc` @@` `d rd@r```n@`\oo@p\p`]q@]`^^`__@``@`@``i@ `XeB `9 @`@ :`ci``jt @` `@@``fj @u@u!@`@@@UG@ `e@! `s`>``x`B CC`D`E FQFRG@` S`H IIJ `K LLM "U@j`@ Q ` a@@``B @s P@` 9 < ? B `E @H K @`) , `t. @t@@`h ^ `@  @  `? @ `  ` `  @@`B@`C `u@u@``v@v@y`wh`@w`@ @@`x`@`/x @`y@zy @  `z  @ z   @    @   `{ @   @`z{CD`s@`|{|`}}``~`@~ |`|@A`} `@`  @y @@``@~@@@@~`@ @` `i`Nk @@`C`DDZ @@D`EE`FF`GG` h`H@h@H`I4I`JJ`KK``i@j`LL`M@@@w@ .`=` d ` @M`N@@@@^@^` @` @` @` @` @ @`` `@ @` @` @` @ `@` @` @` @` @ `@ #! "`"" *# $`$$$ %`%%   !`!!`` `##) *`* &`&& + '`''' (`(((" )`)&)*%`+++ ,, -`-,--`, .`.. /.`/// 0`0 7`77U`C>>00 12 ?`?`2`A?2SS T`T 38`111 28 9A B`999 :T UEE F`FFF G`GGG H`HHT`:? @`@@@ AA7 8`8:: ;`;;; <`<<< =`=== >`>`BBB CCC D`DDD E`E V`PPP`666H I`III J`JJ`UU`3`KKK L`LLL M`MMM N`NNN OJ K`OOO P Q`Q33 4`444 5QQ R`RRR S`S`555 6__@__`@`b@bbb`a@aaa@c`cccd@d`V@ `O` @`O PPP @` @Q@QRk@klj@m@ll@jjknnommnlm@n@okooppq@pp@q@s@rrqq@trsrstst@{t{u@uuuvw@ww~{|@|||}}wx@xxxy@yyyz@zzz{@~~~@@v@}@}@@v@v@`R@@TU`.. /`U` R@ @ VVV`@T ` @`@U@WW// @ SSS@``X `X@X@ YYY@Z`[ Z` @` @@`[[ \@001`\\@]]^ `^`1@` `^@ __ `1_@``` 2a22@33`a@  b@b @b`@"4` m@@@ccd`ddee e@f @` @`fg`g@`  hgh h@i@ ` i   j`jj  k k4`4 ` @k  @ @l@ @`l@ w`m@`m@ nn n@oo q`ppp qq@r` @` @` @rs 5`s`s @ ttt@uuv5`vv5 @`@` @@  `@6w w@x!`!xy! "`yy a`@ @ ###@$$@` @@    `   @` @   `     `  `@@` @@`   ` @!!"`""`]`^^ `` &`__`]HG^H G]H`G)H$H)H(HYH,H"HHHG00H0HGH0H`G`ZH@G8 HH GHG@GG2H2HGh_HPHG GGP1H"H#H $H#HH$HG$Hp$H^H]H8]H^H0#Hp]HX#H#HP^H#H#HG3HH HHHHpHH HH8HXH`HHYHYH GHG Hx!HP!H!H(!HGXH\HX\H@[H \Hx[H[H[HGGZHZH,H HHPHHHHPHH`GGG@G!HG GGG`GGG@GGȉHXHH/HGG H`G~HGHGGGG GG@GGGG`G03HG G@G`G@"H Gh"H@GG"HGGG\H`G0H0H"HHGGG@G+HG@G3H*H`*H*H8*H`G`G1H*H@GGGGGG G GG Gh,H HH@HЇHHpHHHH(H`HHGH؅HHHHHhHH/HHHXH3HP.H .HHHGGYH.H.H.H`GHH@GYH~H[H GG`0H!H!H@GGG`GX~HG`GGG(&H@GHh'H&H0(H'H&HX(H(H'H'H(Hx&H'H@'H&H*H@2HGX-H G(HG-H(HG2H(HH)HGG`GG%HGG@G )HG G&HP&Hp2HGG-HGGGGGG`G`G@G GGG0-H`G@G-H-H@Gp)H GG GGGG` HG)HH,H%H~H`G@GGGGG`GGGGGHP+H@Gx+H+H+H@,H(+H+H,H}HGG8HH 1HG3HHXHHH(ZHGGHHH0HH(HHxHPHHHXHHHH@HhHHp/H@/H_H_H G`G G`H0_HGGGG^H`G1HG%H`%H%H8%HHHHHPHG G1H0HHxH@GH`3HG GG@GGGG`GGG$HGGGGG@G G/HG GG@G`GGGGH؀H@m}go.buildid_cgo_e70cc1a36770_C2func_getaddrinfoltmp0_cgo_e70cc1a36770_Cfunc_freeaddrinfo_cgo_e70cc1a36770_Cfunc_gai_strerror_cgo_e70cc1a36770_Cfunc_getaddrinfo_cgo_sys_thread_startltmp0threadentryx_cgo_init_cgo_sys_thread_start.cold.1x_cgo_sys_thread_createltmp0_cgo_try_pthread_create_cgo_wait_runtime_init_donex_cgo_notify_runtime_init_donex_cgo_set_context_function_cgo_get_context_functionx_cgo_sys_thread_create.cold.1x_cgo_setenvltmp0x_cgo_unsetenvx_cgo_thread_startltmp0x_cgo_thread_start.cold.1crosscall1ltmp0internal/cpu.Initializeinternal/cpu.processOptionsinternal/cpu.indexByteinternal/cpu.doinitinternal/cpu.osInitinternal/cpu.sysctlEnabledtype..eq.internal/cpu.optiontype..eq.[9]internal/cpu.optionruntime/internal/atomic.Casuintptrruntime/internal/atomic.Storeuintptrruntime/internal/atomic.Storeruntime/internal/atomic.Store64runtime/internal/atomic.Xchg64runtime/internal/atomic.Cas64runtime/internal/atomic.Xaddruntime/internal/atomic.Xchguintptrinternal/bytealg.IndexRabinKarpBytesinternal/bytealg.HashStrBytesinternal/bytealg.Equalinternal/bytealg.IndexRabinKarpinternal/bytealg.HashStrinternal/bytealg.init.0cmpbodyinternal/bytealg.Compareruntime.cmpstringcountbytebodyinternal/bytealg.Countinternal/bytealg.CountStringmemeqbodyruntime.memequalruntime.memequal_varlenindexbodyinternal/bytealg.Indexinternal/bytealg.IndexStringindexbytebodyinternal/bytealg.IndexByteinternal/bytealg.IndexByteStringinternal/abi.(*RegArgs).Dumpinternal/abi.(*IntArgRegBitmap).Setinternal/abi.(*IntArgRegBitmap).Getruntime.memhash8runtime.memhash16runtime.memhash128runtime.memhash_varlenruntime.strhashFallbackruntime.f32hashruntime.fastrandruntime.f64hashruntime.c64hashruntime.c128hashruntime.interhashruntime.isDirectIfaceruntime.nilinterhashruntime.typehashruntime.(*structfield).offsetruntime.addruntime.memequal0runtime.memequal8runtime.memequal16runtime.memequal32runtime.memequal64runtime.memequal128runtime.f32equalruntime.f64equalruntime.c64equalruntime.c128equalruntime.strequalruntime.interequalruntime.nilinterequalruntime.efaceeqruntime.ifaceeqruntime.alginitruntime.initAlgAESruntime.atomicwbruntime.(*wbBuf).putFastruntime.atomicstorepruntime.cgoUseruntime.cgocallruntime.cgocallbackgruntime.lockOSThreadruntime.dolockOSThreadruntime.(*guintptr).setruntime.(*muintptr).setruntime.cgocallbackg1runtime.unwindmruntime.acquiremruntime.releasemruntime.cgoCheckPointerruntime.cgoCheckArgruntime.inheapruntime.cgoCheckUnknownPointerruntime.activeModulesruntime.heapBitsForAddrruntime.arenaIndexruntime.heapBits.morePointersruntime.heapBits.bitsruntime.heapBits.nextruntime.add1runtime.cgoInRangeruntime.cgoIsGoPointerruntime._cgo_panic_internalruntime.gostringnocopyruntime.cgoCheckWriteBarrierruntime.inPersistentAllocruntime.cgoCheckWriteBarrier.func1runtime.cgoCheckMemmoveruntime.cgoCheckSliceCopyruntime.cgoCheckTypedBlockruntime.spanOfUncheckedruntime.(*mSpanStateBox).getruntime.cgoCheckTypedBlock.func1runtime.cgoCheckBitsruntime.addbruntime.cgoCheckUsingTyperuntime.makechanruntime/internal/math.MulUintptrruntime.(*hchan).raceaddrruntime.chansend1runtime.chansendruntime.fullruntime.cputicksruntime.nanotimeruntime.lockruntime.lockWithRankruntime.(*waitq).dequeueruntime.unlockruntime.unlockWithRankruntime.(*waitq).enqueueruntime.chanbufruntime.chansend.func1runtime.sendruntime.sendDirectruntime.recvDirectruntime.closechanruntime.(*gList).pushruntime.(*gList).emptyruntime.(*gList).popruntime.chanrecv1runtime.chanrecv2runtime.chanrecvruntime.emptyruntime.chanrecv.func1runtime.recvruntime.chanparkcommitruntime.selectnbsendruntime.selectnbrecvruntime.init.0runtime.(*cpuProfile).addruntime.osyieldruntime.(*cpuProfile).addNonGoruntime.(*cpuProfile).addExtraruntime.funcPCruntime.GOMAXPROCSruntime.gogetenvruntime.envKeyEqualruntime.(*TypeAssertionError).RuntimeErrorruntime.(*TypeAssertionError).Errorruntime.errorString.RuntimeErrorruntime.errorString.Errorruntime.errorAddressString.RuntimeErrorruntime.errorAddressString.Errorruntime.errorAddressString.Addrruntime.plainError.RuntimeErrorruntime.plainError.Errorruntime.boundsError.RuntimeErrorruntime.boundsError.Errorruntime.appendIntStrruntime.itoaruntime.printanyruntime.printanycustomtyperuntime.panicwrapruntime.Callerruntime.CallersFramesruntime.memhashFallbackruntime.r8runtime.readUnaligned64runtime.r4runtime.readUnaligned32runtime.mixruntime.memhash32Fallbackruntime.memhash64Fallbackruntime.getitabruntime.(*_type).nameOffruntime.(*itabTableType).findruntime.itabHashFuncruntime.itabAddruntime.(*itabTableType).addruntime.(*itab).initruntime.(*_type).typeOffruntime.name.isExportedruntime.itabsinitruntime.panicdottypeEruntime.panicdottypeIruntime.convT2Eruntime.convT16runtime.convT32runtime.convT64runtime.convTstringruntime.convTsliceruntime.convT2Enoptrruntime.convT2Iruntime.convI2Iruntime.assertI2Iruntime.assertI2I2runtime.assertE2Iruntime.assertE2I2runtime.iterate_itabsruntime.unreachableMethodruntime.(*lfstack).pushruntime.lfstackPackruntime.lfstackUnpackruntime.lfnodeValidateruntime.lock2runtime.unlock2runtime.notewakeupruntime.notesleepruntime.notetsleep_internalruntime.notetsleepruntime.notetsleepgruntime.lockRank.Stringruntime.mallocinitruntime.(*mheap).sysAllocruntime.alignUpruntime.(*fixalloc).freeruntime.sysReserveruntime.sysReserveAlignedruntime.(*mcache).nextFreeruntime.(*mspan).baseruntime.mallocgcruntime.getMCacheruntime.nextFreeFastruntime.divRoundUpruntime.makeSpanClassruntime.bool2intruntime.gcTrigger.testruntime.memclrNoHeapPointersChunkedruntime.goschedguardedruntime.newobjectruntime.newarrayruntime.profileallocruntime.nextSampleruntime.fastexprandruntime.fastlog2runtime.float64bitsruntime.persistentallocruntime.persistentalloc.func1runtime.persistentalloc1runtime.(*notInHeap).addruntime.(*linearAlloc).allocruntime.sysUsedruntime.(*hmap).incrnoverflowruntime.(*hmap).newoverflowruntime.(*bmap).overflowruntime.(*bmap).setoverflowruntime.(*hmap).createOverflowruntime.makemap_smallruntime.makemapruntime.overLoadFactorruntime.bucketShiftruntime.makeBucketArrayruntime.roundupsizeruntime.mapaccess1runtime.bucketMaskruntime.(*hmap).sameSizeGrowruntime.evacuatedruntime.tophashruntime.(*maptype).hashMightPanicruntime.(*maptype).indirectkeyruntime.(*maptype).indirectelemruntime.mapaccess2runtime.mapaccessKruntime.mapassignruntime.(*hmap).growingruntime.tooManyOverflowBucketsruntime.isEmptyruntime.(*maptype).needkeyupdateruntime.mapdeleteruntime.mapiterinitruntime.mapiternextruntime.(*hmap).oldbucketmaskruntime.(*hmap).noldbucketsruntime.(*maptype).reflexivekeyruntime.hashGrowruntime.growWorkruntime.evacuateruntime.advanceEvacuationMarkruntime.bucketEvacuatedruntime.mapaccess1_fast32runtime.(*bmap).keysruntime.mapaccess2_fast32runtime.mapassign_fast32runtime.mapdelete_fast32runtime.growWork_fast32runtime.evacuate_fast32runtime.mapaccess1_fast64runtime.mapaccess2_fast64runtime.mapassign_fast64runtime.mapassign_fast64ptrruntime.mapdelete_fast64runtime.growWork_fast64runtime.evacuate_fast64runtime.mapaccess1_faststrruntime.mapaccess2_faststrruntime.mapassign_faststrruntime.mapdelete_faststrruntime.growWork_faststrruntime.evacuate_faststrruntime.typedmemmoveruntime.reflectcallmoveruntime.typedslicecopyruntime.typedmemclrruntime.memclrHasPointersruntime.(*mspan).refillAllocCacheruntime.(*mspan).nextFreeIndexruntime.badPointerruntime.findObjectruntime.spanOfruntime.(*mspan).objIndexruntime.(*mspan).divideByElemSizeruntime.heapBits.nextArenaruntime.heapBits.forwardruntime.heapBits.forwardOrBoundaryruntime.bulkBarrierPreWriteruntime.puintptr.ptrruntime.heapBits.isPointerruntime.bulkBarrierPreWriteSrcOnlyruntime.bulkBarrierBitmapruntime.typeBitsBulkBarrierruntime.heapBits.initSpanruntime.heapBitsSetTyperuntime.heapBitsSetTypeGCProgruntime.progToPointerMaskruntime.runGCProgruntime.subtract1runtime.subtractbruntime.materializeGCProgruntime.allocmcacheruntime.allocmcache.func1runtime.freemcacheruntime.freemcache.func1runtime.(*mcache).refillruntime.spanClass.sizeclassruntime.traceHeapAllocruntime.(*mcache).allocLargeruntime.(*mcentral).fullSweptruntime.(*mcache).releaseAllruntime.(*mcache).prepareForSweepruntime.(*mcentral).cacheSpanruntime.newSweepLockerruntime.(*mcentral).partialSweptruntime.(*mcentral).partialUnsweptruntime.(*sweepLocker).tryAcquireruntime.(*sweepLocker).blockCompletionruntime.(*sweepLocker).disposeruntime.(*sweepLocker).sweepIsDoneruntime.(*mcentral).fullUnsweptruntime.(*mcentral).uncacheSpanruntime.(*mcentral).growruntime.startCheckmarksruntime.endCheckmarksruntime.gcMarkWorkAvailableruntime.(*lfstack).emptyruntime.setCheckmarkruntime.markBits.isMarkedruntime.sysAllocruntime.sysFreeruntime.sysMapruntime.queuefinalizerruntime.wakefingruntime.createfingruntime.runfinqruntime.goparkunlockruntime.SetFinalizerruntime.(*functype).dotdotdotruntime.(*functype).inruntime.(*functype).outruntime.SetFinalizer.func2runtime.SetFinalizer.func1runtime.(*fixalloc).allocruntime.gcinitruntime.gcenableruntime.pollFractionalWorkerExitruntime.GCruntime.Goschedruntime.isSweepDoneruntime.gcWaitOnMarkruntime.gcStartruntime.semacquireruntime.traceGCStartruntime.semreleaseruntime.traceGCSTWStartruntime.setGCPhaseruntime.gcBgMarkPrepareruntime.gcStart.func2runtime.(*timeHistogram).recordruntime.gcMarkDoneruntime.gcMarkDone.func2runtime.(*gcWork).emptyruntime.gcMarkTerminationruntime.traceGCDoneruntime.itoaDivruntime.printunlockruntime.gcMarkTermination.func1runtime.gcBgMarkStartWorkersruntime.noteclearruntime.gcBgMarkWorkerruntime.gcBgMarkWorker.func2runtime.globrunqputbatchruntime.(*gQueue).pushBackAllruntime.guintptr.ptrruntime.gcMarkruntime.gcSweepruntime.(*sweepClass).clearruntime.gcResetMarkStateruntime.clearpoolsruntime.fmtNSAsMSruntime.gcMarkRootPrepareruntime.gcMarkRootPrepare.func1runtime.gcMarkRootCheckruntime.gcMarkRootCheck.func1runtime.readgstatusruntime.markrootruntime.markroot.func1runtime.markrootBlockruntime.markrootFreeGStacksruntime.(*gList).pushAllruntime.markrootSpansruntime.gcAssistAllocruntime.float64frombitsruntime.traceGCMarkAssistStartruntime.traceGCMarkAssistDoneruntime.gcAssistAlloc.func1runtime.gcAssistAlloc1runtime.gcWakeAllAssistsruntime.(*gQueue).popListruntime.gcParkAssistruntime.(*gQueue).pushBackruntime.gcFlushBgCreditruntime.(*gQueue).emptyruntime.(*gQueue).popruntime.scanstackruntime.isShrinkStackSaferuntime.(*stackScanState).buildIndexruntime.(*stackScanState).findObjectruntime.(*stackObject).setRecordruntime.(*stackObjectRecord).useGCProgruntime.(*stackObjectRecord).ptrdataruntime.dematerializeGCProgruntime.scanstack.func1runtime.scanframeworkerruntime.gcDrainruntime.(*gcWork).tryGetFastruntime.gcDrainNruntime.scanblockruntime.scanobjectruntime.(*gcWork).putFastruntime.scanConservativeruntime.(*mspan).isFreeruntime.(*gcBits).bitpruntime.shaderuntime.greyobjectruntime.(*mspan).markBitsForIndexruntime.(*gcBits).bytepruntime.markBits.setMarkedruntime.pageIndexOfruntime.gcDumpObjectruntime.gcmarknewobjectruntime.gcMarkTinyAllocsruntime.init.1runtime.(*gcControllerState).initruntime.(*gcControllerState).startCycleruntime.(*gcControllerState).reviseruntime.(*gcControllerState).endCycleruntime.(*gcControllerState).effectiveGrowthRatioruntime.(*gcControllerState).enlistWorkerruntime.fastrandnruntime.(*gcControllerState).findRunnableGCWorkerruntime.(*lfstack).popruntime.(*gcControllerState).findRunnableGCWorker.func1runtime.(*gcControllerState).commitruntime.(*gcControllerState).setGCPercentruntime.readGOGCruntime.atoi32runtime.gcPaceScavengerruntime.heapRetainedruntime.(*sysMemStat).loadruntime.wakeScavengertime.stopTimerruntime.scavengeSleeptime.resetTimerruntime.resettimerruntime.bgscavengeruntime.bgscavenge.func2runtime.(*pageAlloc).scavengeruntime.addrRange.sizeruntime.offAddr.lessThanruntime.offAddr.diffruntime.printScavTraceruntime.(*pageAlloc).scavengeStartGenruntime.(*pageAlloc).scavengeReserveruntime.alignDownruntime.(*pageAlloc).scavengeUnreserveruntime.(*pageAlloc).scavengeOneruntime.chunkIndexruntime.pallocSum.maxruntime.(*pageAlloc).chunkOfruntime.chunkIdx.l1runtime.chunkPageIndexruntime.chunkBaseruntime.(*pageAlloc).scavengeOne.func2runtime.(*pageAlloc).scavengeOne.func1runtime.(*pageAlloc).scavengeOne.func3runtime.(*pageAlloc).scavengeRangeLockedruntime.sysUnusedruntime.fillAlignedruntime.fillAligned.func1runtime.(*pallocData).hasScavengeCandidateruntime.(*pallocData).findScavengeCandidateruntime/internal/sys.LeadingZeros64runtime.(*stackScanState).putPtrruntime.(*stackScanState).getPtrruntime.(*stackScanState).addObjectruntime.binarySearchTreeruntime.(*mheap).nextSpanForSweepruntime.(*sweepClass).loadruntime.sweepClass.splitruntime.(*sweepClass).updateruntime.finishsweep_mruntime.bgsweepruntime.sweeponeruntime.readyForScavengerruntime.(*mspan).ensureSweptruntime.(*sweepLocked).sweepruntime.newSpecialsIterruntime.(*specialsIter).validruntime.(*specialsIter).nextruntime.(*specialsIter).unlinkAndNextruntime.markBits.setMarkedNonAtomicruntime.spanHasNoSpecialsruntime.(*mspan).markBitsForBaseruntime.(*mspan).allocBitsForIndexruntime.sysFaultruntime.(*mspan).countAllocruntime.(*markBits).advanceruntime.clobberfreeruntime.(*mspan).reportZombiesruntime.deductSweepCreditruntime.(*gcWork).initruntime.(*gcWork).putruntime.(*gcWork).putBatchruntime.(*gcWork).tryGetruntime.(*gcWork).disposeruntime.(*gcWork).balanceruntime.(*workbuf).checknonemptyruntime.(*workbuf).checkemptyruntime.getemptyruntime.getempty.func1runtime.putemptyruntime.putfullruntime.trygetfullruntime.handoffruntime.prepareFreeWorkbufsruntime.(*mSpanList).takeAllruntime.(*mSpanList).isEmptyruntime.freeSomeWbufsruntime.freeSomeWbufs.func1runtime.recordspanruntime.inHeapOrStackruntime.spanOfHeapruntime.(*mheap).initruntime.(*fixalloc).initruntime.(*mcentral).initruntime.(*mheap).reclaimruntime.(*mheap).reclaimChunkruntime.(*mheap).allocruntime.(*mheap).alloc.func1runtime.(*mheap).allocManualruntime.spanAllocType.manualruntime.(*mheap).setSpansruntime.(*mheap).allocNeedsZeroruntime.(*mheap).allocMSpanLockedruntime.(*mheap).allocSpanruntime.(*pageCache).emptyruntime.(*mheap).tryAllocMSpanruntime.(*mspan).initruntime.(*mSpanStateBox).setruntime.(*mheap).growruntime.(*mheap).freeSpanruntime.(*mheap).freeSpan.func1runtime.(*mheap).freeManualruntime.(*mheap).freeSpanLockedruntime.(*mheap).freeMSpanLockedruntime.(*mSpanList).removeruntime.(*mSpanList).insertruntime.addspecialruntime.spanHasSpecialsruntime.removespecialruntime.addfinalizerruntime.removefinalizerruntime.setprofilebucketruntime.freeSpecialruntime.newMarkBitsruntime.(*gcBitsArena).tryAllocruntime.newAllocBitsruntime.nextMarkBitArenaEpochruntime.newArenaMayUnlockruntime.(*pageAlloc).initruntime.(*pageAlloc).growruntime.(*pageAlloc).updateruntime.addrsToSummaryRangeruntime.(*pageAlloc).allocRangeruntime.(*pageAlloc).findMappedAddrruntime.(*pageAlloc).findruntime.offAddrToLevelIndexruntime.pallocSum.startruntime.pallocSum.endruntime.levelIndexToOffAddrruntime.offAddr.addruntime.(*pageAlloc).find.func1runtime.offAddr.lessEqualruntime.(*pageAlloc).allocruntime.(*pageAlloc).freeruntime.(*pallocBits).freeruntime.(*pallocBits).free1runtime.(*pageBits).clearruntime.(*pallocBits).freeAllruntime.mergeSummariesruntime.pallocSum.unpackruntime.packPallocSumruntime.(*pageAlloc).sysInitruntime.(*pageAlloc).sysGrowruntime.(*pageAlloc).sysGrow.func2runtime.(*pageAlloc).sysGrow.func3runtime.(*pageCache).allocruntime.(*pageCache).allocNruntime.findBitRange64runtime.(*pageCache).flushruntime.(*pageAlloc).allocToCacheruntime.(*pallocBits).pages64runtime.(*pageBits).block64runtime.(*pageBits).setRangeruntime.(*pageBits).setruntime.(*pageBits).setAllruntime.(*pageBits).clearRangeruntime.(*pageBits).clearAllruntime.(*pageBits).popcntRangeruntime.(*pallocBits).summarizeruntime.(*pallocBits).findruntime.(*pallocBits).find1runtime.(*pallocBits).findSmallNruntime.(*pallocBits).findLargeNruntime.(*pallocData).allocRangeruntime.(*pallocBits).allocRangeruntime.(*pallocData).allocAllruntime.(*pallocBits).allocAllruntime.newBucketruntime.(*bucket).mpruntime.(*bucket).bpruntime.stkbucketruntime.(*bucket).stkruntime.eqsliceruntime.mProf_NextCycleruntime.mProf_Flushruntime.mProf_FlushLockedruntime.(*memRecordCycle).addruntime.mProf_PostSweepruntime.mProf_Mallocruntime.mProf_Malloc.func1runtime.mProf_Freeruntime.blockeventruntime.blocksampledruntime.saveblockeventruntime.gcallersruntime.traceallocruntime.tracebackruntime.tracealloc.func1runtime.tracefreeruntime.tracefree.func1runtime.tracegcruntime.makeAddrRangeruntime.addrRange.subtractruntime.addrRange.removeGreaterEqualruntime.(*addrRanges).initruntime.(*addrRanges).findSuccruntime.addrRange.containsruntime.(*addrRanges).findAddrGreaterEqualruntime.(*addrRanges).addruntime.offAddr.equalruntime.(*addrRanges).removeLastruntime.offAddr.subruntime.(*addrRanges).removeGreaterEqualruntime.(*addrRanges).cloneIntoruntime.(*spanSet).pushruntime.(*spanSet).popruntime.(*headTailIndex).loadruntime.headTailIndex.splitruntime.headTailIndex.headruntime.makeHeadTailIndexruntime.(*headTailIndex).casruntime.(*spanSetBlockAlloc).freeruntime.(*spanSet).resetruntime.(*headTailIndex).resetruntime.(*spanSetBlockAlloc).allocruntime.(*headTailIndex).incTailruntime.init.4runtime.(*sysMemStat).addruntime.(*consistentHeapStats).acquireruntime.(*consistentHeapStats).releaseruntime.(*wbBuf).resetruntime.wbBufFlushruntime.(*wbBuf).discardruntime.wbBufFlush1runtime.nonblockingPiperuntime.closeonexecruntime.netpollGenericInitruntime.(*pollCache).freeruntime.netpollreadyruntime.netpollunblockruntime.netpollblockcommitruntime.netpollblockruntime.netpollcheckerrruntime.netpolldeadlineimplruntime.netpollgoreadyruntime.netpollDeadlineruntime.netpollReadDeadlineruntime.netpollWriteDeadlineruntime.(*pollCache).allocruntime.netpollinitruntime.netpollopenruntime.netpollBreakruntime.writeruntime.netpollruntime.(*timespec).setNsecruntime.semacreateruntime.semasleepruntime.semawakeupruntime.osinitruntime.sysctlbynameInt32runtime.getncpuruntime.getPageSizeruntime.getRandomDataruntime.newosprocruntime.mpreinitruntime.minitruntime.setsigruntime.setsigstackruntime.sysargsruntime.argv_indexruntime.panicCheck1runtime.hasPrefixruntime.panicCheck2runtime.goPanicIndexruntime.goPanicIndexUruntime.goPanicSliceAlenruntime.goPanicSliceAlenUruntime.goPanicSliceAcapruntime.goPanicSliceAcapUruntime.goPanicSliceBruntime.goPanicSliceBUruntime.goPanicSlice3Alenruntime.goPanicSlice3AlenUruntime.goPanicSlice3Acapruntime.goPanicSlice3Bruntime.goPanicSlice3Cruntime.panicshiftruntime.panicdivideruntime.panicoverflowruntime.panicfloatruntime.panicmemruntime.panicmemAddrruntime.deferprocruntime.deferArgsruntime.deferprocStackruntime.testdefersizesruntime.deferclassruntime.totaldefersizeruntime.init.5runtime.newdeferruntime.newdefer.func2runtime.newdefer.func1runtime.freedeferruntime.freedefer.func1runtime.freedeferpanicruntime.freedeferfnruntime.deferreturnruntime.preprintpanicsruntime.printpanicsruntime.addOneOpenDeferFrameruntime.addOneOpenDeferFrame.func1runtime.addOneOpenDeferFrame.func1.1runtime.funcdataruntime.readvarintUnsaferuntime.runOpenDeferFrameruntime.reflectcallSaveruntime.gopanicruntime.getargpruntime.gorecoverruntime.throwruntime.throw.func1runtime.recoveryruntime.fatalthrowruntime.fatalthrow.func1runtime.fatalpanicruntime.crashruntime.fatalpanic.func1runtime.startpanic_mruntime.dopanic_mruntime.signameruntime.gotracebackruntime.shouldPushSigpanicruntime.funcInfo.validruntime.isAbortPCruntime.suspendGruntime.dumpgstatusruntime.resumeGruntime.asyncPreempt2runtime.init.6runtime.isAsyncSafePointruntime.canPreemptMruntime.recordForPanicruntime.printlockruntime.gwriteruntime.writeErrruntime.printspruntime.printnlruntime.printboolruntime.printfloatruntime.printcomplexruntime.printuintruntime.printintruntime.printhexruntime.printpointerruntime.printuintptrruntime.printstringruntime.bytesruntime.printsliceruntime.hexdumpWordsruntime.mainruntime.main.func2runtime.init.7runtime.forcegchelperruntime.goparkruntime.goreadyruntime.goready.func1runtime.acquireSudogruntime.releaseSudogruntime.badmcallruntime.badmcall2runtime.badreflectcallruntime.badmorestackg0runtime.badmorestackgsignalruntime.badctxtruntime.allgaddruntime.forEachGruntime.forEachGRaceruntime.atomicAllGruntime.atomicAllGIndexruntime.cpuinitruntime.schedinitruntime.moduledataverifyruntime.fastrandinitruntime.sigsaveruntime.goenvsruntime.checkmcountruntime.mcountruntime.mReserveIDruntime.mcommoninitruntime.int64Hashruntime.readyruntime.freezetheworldruntime.casfrom_Gscanstatusruntime.castogscanstatusruntime.casgstatusruntime.casgstatus.func1runtime.casGToPreemptScanruntime.casGFromPreemptedruntime.stopTheWorldruntime.stopTheWorld.func1runtime.startTheWorldruntime.stopTheWorldGCruntime.startTheWorldGCruntime.stopTheWorldWithSemaruntime.startTheWorldWithSemaruntime.netpollinitedruntime.(*puintptr).setruntime.traceGCSTWDoneruntime.mstart0runtime.mstart1runtime.mstartm0runtime.mParkruntime.mexitruntime.unminitruntime.forEachPruntime.runSafePointFnruntime.allocmruntime.allocm.func1runtime.needmruntime.unlockextraruntime.newextramruntime.oneNewExtraMruntime.dropmruntime.msigrestoreruntime.lockextraruntime.osyield_no_gruntime.newmruntime.newm1runtime.startTemplateThreadruntime.mDoFixupruntime.mDoFixupAndOSYieldruntime.templateThreadruntime.muintptr.ptrruntime.stopmruntime.mspinningruntime.startmruntime.mgetruntime.runqemptyruntime.handoffpruntime.nobarrierWakeTimeruntime.wakepruntime.stoplockedmruntime.startlockedmruntime.gcstopmruntime.executeruntime.setThreadCPUProfilerruntime.findrunnableruntime.pollWorkruntime.stealWorkruntime.(*randomOrder).startruntime.(*randomEnum).nextruntime.(*randomEnum).doneruntime.(*randomEnum).positionruntime.pMask.readruntime.checkRunqsNoPruntime.checkTimersNoPruntime.checkIdleGCNoPruntime.wakeNetPollerruntime.resetspinningruntime.injectglistruntime.injectglist.func1runtime.scheduleruntime.schedEnabledruntime.checkTimersruntime.parkunlock_cruntime.park_mruntime.dropgruntime.setMNoWBruntime.setGNoWBruntime.goschedImplruntime.globrunqputruntime.gosched_mruntime.goschedguarded_mruntime.traceGoSchedruntime.gopreempt_mruntime.traceGoPreemptruntime.preemptParkruntime.goyield_mruntime.goexit1runtime.traceGoEndruntime.goexit0runtime.saveruntime.reentersyscallruntime.reentersyscall.func1runtime.entersyscall_sysmonruntime.entersyscall_gcwaitruntime.entersyscallblockruntime.entersyscallblock.func2runtime.entersyscallblock.func1runtime.entersyscallblock_handoffruntime.traceGoSysCallruntime.exitsyscallfastruntime.exitsyscallfast.func1runtime.exitsyscallfast_reacquiredruntime.exitsyscallfast_reacquired.func1runtime.exitsyscallfast_pidleruntime.exitsyscall0runtime.malgruntime.round2runtime.malg.func1runtime.newprocruntime.newproc.func1runtime.newproc1runtime.stackmapdataruntime.saveAncestorsruntime.gfputruntime.(*gQueue).pushruntime.gfgetruntime.gfget.func1runtime.gfpurgeruntime.unlockOSThreadruntime.dounlockOSThreadruntime.badunlockosthreadruntime._Systemruntime._ExternalCoderuntime._LostExternalCoderuntime._GCruntime._LostSIGPROFDuringAtomic64runtime.sigprofruntime.sigprofNonGoPCruntime.(*p).initruntime.pMask.setruntime.pMask.clearruntime.(*p).destroyruntime.globrunqputheadruntime.(*p).destroy.func1runtime.procresizeruntime.traceGomaxprocsruntime.(*randomOrder).resetruntime.gcdruntime.acquirepruntime.wirepruntime.releasepruntime.incidlelockedruntime.checkdeadruntime.checkdead.func1runtime.sysmonruntime.retakeruntime.preemptallruntime.preemptoneruntime.schedtraceruntime.schedEnableUserruntime.mputruntime.globrunqgetruntime.updateTimerPMaskruntime.pidleputruntime.pidlegetruntime.runqputruntime.(*guintptr).casruntime.runqputslowruntime.runqputbatchruntime.runqgetruntime.runqdrainruntime.runqgrabruntime.runqstealruntime.doInitruntime.(*profBuf).canWriteRecordruntime.(*profAtomic).loadruntime.profIndex.tagCountruntime.countSubruntime.(*profBuf).canWriteTwoRecordsruntime.(*profBuf).writeruntime.(*profBuf).hasOverflowruntime.(*profBuf).takeOverflowruntime.(*profBuf).incrementOverflowruntime.profIndex.addCountsAndClearFlagsruntime.(*profAtomic).casruntime.(*profBuf).wakeupExtraruntime.argsruntime.goargsruntime.goenvs_unixruntime.testAtomic64runtime.checkruntime.timedivruntime.parsedebugvarsruntime.extendRandomruntime.waitReason.Stringruntime.(*rwmutex).rlockruntime.(*rwmutex).rlock.func1runtime.(*rwmutex).runlockruntime.sellockruntime.selunlockruntime.selparkcommitruntime.selectgoruntime.(*waitq).dequeueSudoGruntime.(*hchan).sortkeyruntime.selectgo.func3runtime.selectgo.func2runtime.readyWithTimeruntime.semacquire1runtime.cansemacquireruntime.semrootruntime.semrelease1runtime.goyieldruntime.(*semaRoot).queueruntime.(*semaRoot).dequeueruntime.(*semaRoot).rotateLeftruntime.(*semaRoot).rotateRightruntime.dumpregsruntime.(*sigctxt).r0runtime.(*sigctxt).regsruntime.(*sigctxt).r1runtime.(*sigctxt).r2runtime.(*sigctxt).r3runtime.(*sigctxt).r4runtime.(*sigctxt).r5runtime.(*sigctxt).r6runtime.(*sigctxt).r7runtime.(*sigctxt).r8runtime.(*sigctxt).r9runtime.(*sigctxt).r10runtime.(*sigctxt).r11runtime.(*sigctxt).r12runtime.(*sigctxt).r13runtime.(*sigctxt).r14runtime.(*sigctxt).r15runtime.(*sigctxt).r16runtime.(*sigctxt).r17runtime.(*sigctxt).r18runtime.(*sigctxt).r19runtime.(*sigctxt).r20runtime.(*sigctxt).r21runtime.(*sigctxt).r22runtime.(*sigctxt).r23runtime.(*sigctxt).r24runtime.(*sigctxt).r25runtime.(*sigctxt).r26runtime.(*sigctxt).r27runtime.(*sigctxt).r28runtime.(*sigctxt).r29runtime.(*sigctxt).lrruntime.(*sigctxt).spruntime.(*sigctxt).pcruntime.(*sigctxt).faultruntime.(*sigctxt).preparePanicruntime.(*sigctxt).set_spruntime.(*sigctxt).set_lrruntime.(*sigctxt).set_r28runtime.(*sigctxt).set_pcruntime.(*sigctxt).pushCallruntime.initsigruntime.getsigruntime.sigInstallGoHandlerruntime.sigInitIgnoredruntime.sigpipeos/signal.signal_ignoredruntime.doSigPreemptruntime.wantAsyncPreemptruntime.(*sigctxt).sigpcruntime.(*sigctxt).sigspruntime.(*sigctxt).siglrruntime.preemptMruntime.signalMruntime.sigFetchGruntime.sigtrampgoruntime.(*sigctxt).fixsigcoderuntime.(*sigctxt).set_sigcoderuntime.restoreGsignalStackruntime.adjustSignalStackruntime.setGsignalStackruntime.setSignalstackSPruntime.sighandlerruntime.(*sigctxt).sigcoderuntime.sigpanicruntime.canpanicruntime.dieFromSignalruntime.raisebadsignalruntime.noSignalStackruntime.sigNotOnStackruntime.signalDuringForkruntime.badsignalruntime.sigfwdgoruntime.sigblockruntime.unblocksigruntime.sigaddsetruntime.minitSignalStackruntime.minitSignalMaskruntime.blockableSigruntime.sigdelsetruntime.unminitSignalsruntime.signalstackruntime.sigsendruntime.sigNoteWakeupruntime.panicmakeslicelenruntime.makeslicecopyruntime.makesliceruntime.panicmakeslicecapruntime.growsliceruntime.isPowerOfTworuntime.slicecopyruntime.stackinitruntime.(*mSpanList).initruntime.stackpoolallocruntime.gclinkptr.ptrruntime.stackpoolfreeruntime.stackcacherefillruntime.stackcachereleaseruntime.stackcache_clearruntime.stackallocruntime.stacklog2runtime.stackfreeruntime.adjustpointersruntime.adjustframeruntime.adjustpointerruntime.adjustdefersruntime.syncadjustsudogsruntime.adjustsudogsruntime.copystackruntime.findsghiruntime.adjustctxtruntime.adjustpanicsruntime.newstackruntime.nilfuncruntime.gostartcallfnruntime.shrinkstackruntime.freeStackSpansruntime.getStackMapruntime.init.9runtime.concatstringsruntime.stringDataOnStackruntime.concatstring2runtime.concatstring3runtime.concatstring4runtime.concatstring5runtime.slicebytetostringruntime.rawstringtmpruntime.stringtoslicebyteruntime.stringtosliceruneruntime.slicerunetostringruntime.intstringruntime.rawstringruntime.rawbytesliceruntime.rawrunesliceruntime.atoiruntime.findnullruntime.badsystemstackruntime.(*Frames).Nextruntime.(*Func).Entryruntime.expandCgoFramesruntime.modulesinitruntime.moduledataverify1runtime.FuncForPCruntime.funclineruntime.(*Func).Nameruntime.(*Func).funcInforuntime.findmoduledatapruntime.findfuncruntime.pcvalueruntime.pcvalueCacheKeyruntime.funcnameruntime.cfuncnameruntime.funcpkgpathruntime.funcnameFromNameoffruntime.cfuncnameFromNameoffruntime.funcfileruntime.funcline1runtime.funcspdeltaruntime.funcMaxSPDeltaruntime.pcdatavalueruntime.pcdatastartruntime.pcdatavalue1runtime.pcdatavalue2runtime.stepruntime.readvarintruntime.gostartcallruntime.pthread_attr_initruntime.pthread_attr_getstacksizeruntime.pthread_attr_setdetachstateruntime.pthread_createruntime.raiseruntime.pthread_selfruntime.pthread_killruntime.mmapruntime.munmapruntime.madviseruntime.mlockruntime.readruntime.piperuntime.closefdruntime.usleepruntime.usleep_no_gruntime.write1runtime.openruntime.nanotime1runtime.walltimeruntime.sigactionruntime.sigprocmaskruntime.sigaltstackruntime.raiseprocruntime.sysctlruntime.sysctlbynameruntime.fcntlruntime.kqueueruntime.keventruntime.pthread_mutex_initruntime.pthread_mutex_lockruntime.pthread_mutex_unlockruntime.pthread_cond_initruntime.pthread_cond_waitruntime.pthread_cond_timedwait_relative_npruntime.pthread_cond_signalruntime.setNonblockruntime.g0_pthread_key_createruntime.g0_pthread_setspecificruntime.tlsinitruntime.libcCallruntime.addtimerruntime.doaddtimerruntime.deltimerruntime.dodeltimerruntime.updateTimer0Whenruntime.dodeltimer0runtime.modtimerruntime.updateTimerModifiedEarliestruntime.cleantimersruntime.moveTimersruntime.adjusttimersruntime.addAdjustedTimersruntime.runtimerruntime.runOneTimerruntime.clearDeletedTimersruntime.timeSleepUntilruntime.siftupTimerruntime.siftdownTimerruntime.badTimerruntime.traceReaderruntime.traceProcFreeruntime.traceFullQueueruntime.traceBufPtr.ptrruntime.traceEventruntime.traceEventLockedruntime.(*traceBufPtr).setruntime.(*traceBuf).byteruntime.(*traceBuf).varintruntime.traceStackIDruntime.traceAcquireBufferruntime.traceReleaseBufferruntime.traceFlushruntime.(*traceStackTable).putruntime.(*traceStack).stackruntime.(*traceStackTable).findruntime.(*traceStackTable).newStackruntime.(*traceAlloc).allocruntime.(*traceAllocBlockPtr).setruntime.traceProcStartruntime.traceProcStopruntime.traceGCSweepStartruntime.traceGCSweepSpanruntime.traceGCSweepDoneruntime.traceGoCreateruntime.traceGoStartruntime.traceGoParkruntime.traceGoUnparkruntime.traceGoSysExitruntime.traceGoSysBlockruntime.traceHeapGoalruntime.tracebackdefersruntime.getArgInfoFastruntime.gentracebackruntime.elideWrapperCallingruntime.printArgsruntime.printArgs.func2runtime.printArgs.func1runtime.getArgInforuntime.tracebackCgoContextruntime.printcreatedbyruntime.printcreatedby1runtime.tracebacktrapruntime.traceback1runtime.printAncestorTracebackruntime.printAncestorTracebackFuncInforuntime.callersruntime.callers.func1runtime.showframeruntime.showfuncinforuntime.isExportedRuntimeruntime.goroutineheaderruntime.tracebackothersruntime.tracebackothers.func1runtime.tracebackHexdumpruntime.tracebackHexdump.func1runtime.isSystemGoroutineruntime.printCgoTracebackruntime.printOneCgoTracebackruntime.callCgoSymbolizerruntime.cgoContextPCsruntime.(*_type).stringruntime.(*_type).uncommonruntime.(*_type).pkgpathruntime.resolveNameOffruntime.reflectOffsLockruntime.reflectOffsUnlockruntime.resolveTypeOffruntime.(*_type).textOffruntime.name.nameruntime.name.readvarintruntime.name.dataruntime.name.tagruntime.name.pkgPathruntime.name.isBlankruntime.typelinksinitruntime.typesEqualruntime.decoderuneruntime.encoderuneruntime.cgocallbackg1.func1runtime.gcStart.func1runtime.gcMarkDone.func1.1runtime.gcMarkDone.func1runtime.gcMarkDone.func3runtime.gcMarkTermination.func2runtime.gcMarkTermination.func3runtime.gcMarkTermination.func4.1runtime.gcMarkTermination.func4runtime.gcBgMarkWorker.func1runtime.gcResetMarkState.func1runtime.bgscavenge.func1runtime.sweepone.func1runtime.(*pageAlloc).sysGrow.func1runtime.offAddr.addrruntime.blockAlignSummaryRangeruntime.wbBufFlush.func1runtime.preprintpanics.func1runtime.fatalpanic.func2runtime.main.func1runtime.startTheWorld.func1runtime.schedtrace.func1runtime.initruntime.defaultMemProfileRatesync/atomic.StorePointersync/atomic.SwapPointersync/atomic.CompareAndSwapPointerreflect.chansendreflect.chanrecvreflect.chanleninternal/reflectlite.chanlenreflect.chancapreflect.chanclosereflect.ifaceE2Ireflect.unsafe_Newinternal/reflectlite.unsafe_Newreflect.unsafe_NewArrayreflect.makemapreflect.mapaccessreflect.mapassignreflect.mapdeletereflect.mapiterinitreflect.mapiternextreflect.mapiterkeyreflect.mapiterelemreflect.mapleninternal/reflectlite.maplenreflect.typedmemmoveinternal/reflectlite.typedmemmovereflect.typedslicecopyreflect.typedmemclrreflect.typedmemclrpartialsync.runtime_registerPoolCleanupsync.eventinternal/poll.runtime_pollServerInitinternal/poll.runtime_pollOpeninternal/poll.runtime_pollCloseinternal/poll.runtime_pollResetinternal/poll.runtime_pollWaitinternal/poll.runtime_pollSetDeadlineruntime.(*pollDesc).makeArginternal/poll.runtime_pollUnblockinternal/cpu.getsysctlbynamesync.throwos.runtime_beforeExitruntime.entersyscallruntime.exitsyscallsync.runtime_procPinruntime.procPinsync.runtime_procUnpinruntime.procUnpinsync/atomic.runtime_procPinsync/atomic.runtime_procUnpinsync.runtime_canSpinsync.runtime_doSpinsyscall.runtime_envsos.runtime_argssyscall.Exitruntime/debug.SetTracebackreflect.typelinksreflect.resolveNameOffreflect.resolveTypeOffreflect.resolveTextOffinternal/reflectlite.resolveNameOffinternal/reflectlite.resolveTypeOffreflect.addReflectOffsync.runtime_Semacquireinternal/poll.runtime_Semacquiresync.runtime_Semreleasesync.runtime_SemacquireMutexinternal/poll.runtime_Semreleasesync.runtime_notifyListAddsync.runtime_notifyListWaitruntime.lesssync.runtime_notifyListNotifyAllsync.runtime_notifyListNotifyOnesync.runtime_notifyListChecksync.runtime_nanotimeos.sigpiperuntime.morestackcruntime.gostringreflect.memmovenet.fastrandos.fastrandsyscall.syscallsyscall.syscallXsyscall.syscall6syscall.syscall6Xsyscall.syscallPtrsyscall.rawSyscallcrypto/x509/internal/macos.syscallruntime.exittime.startTimertime.nowgogocallRetaeshashbodygosave_systemstack_switchsetg_gccruntime.rt0_goruntime.asminitruntime.mstartruntime.gogoruntime.mcallruntime.systemstack_switchruntime.systemstackruntime.morestackruntime.morestack_noctxtruntime.reflectcallruntime.call16runtime.call32runtime.call64runtime.call128runtime.call256runtime.call512runtime.call1024runtime.call2048runtime.call4096runtime.call8192runtime.call16384runtime.call32768runtime.call65536runtime.call131072runtime.call262144runtime.call524288runtime.call1048576runtime.call2097152runtime.call4194304runtime.call8388608runtime.call16777216runtime.call33554432runtime.call67108864runtime.call134217728runtime.call268435456runtime.call536870912runtime.call1073741824runtime.memhash32runtime.memhash64runtime.memhashruntime.strhashruntime.procyieldruntime.jmpdeferruntime.asmcgocall_no_gruntime.asmcgocallruntime.cgocallback_cgo_topofstackruntime.setgruntime.abortruntime.return0runtime.goexitruntime.checkASMruntime.gcWriteBarrierruntime.panicIndexruntime.panicIndexUruntime.panicSliceAlenruntime.panicSliceAlenUruntime.panicSliceAcapruntime.panicSliceAcapUruntime.panicSliceBruntime.panicSliceBUruntime.panicSlice3Alenruntime.panicSlice3AlenUruntime.panicSlice3Acapruntime.panicSlice3Bruntime.panicSlice3Cruntime.publicationBarrierruntime.memclrNoHeapPointersruntime.memmoveruntime.asyncPreempt_rt0_arm64_darwinnotokruntime.open_trampolineruntime.close_trampolineruntime.write_trampolineruntime.read_trampolineruntime.pipe_trampolineruntime.exit_trampolineruntime.raiseproc_trampolineruntime.mmap_trampolineruntime.munmap_trampolineruntime.madvise_trampolineruntime.mlock_trampolineruntime.walltime_trampolineruntime.nanotime_trampolineruntime.sigfwdruntime.sigtrampruntime.cgoSigtrampruntime.sigprocmask_trampolineruntime.sigaction_trampolineruntime.usleep_trampolineruntime.sysctl_trampolineruntime.sysctlbyname_trampolineruntime.kqueue_trampolineruntime.kevent_trampolineruntime.fcntl_trampolineruntime.sigaltstack_trampolineruntime.mstart_stubruntime.pthread_attr_init_trampolineruntime.pthread_attr_getstacksize_trampolineruntime.pthread_attr_setdetachstate_trampolineruntime.pthread_create_trampolineruntime.raise_trampolineruntime.pthread_mutex_init_trampolineruntime.pthread_mutex_lock_trampolineruntime.pthread_mutex_unlock_trampolineruntime.pthread_cond_init_trampolineruntime.pthread_cond_wait_trampolineruntime.pthread_cond_timedwait_relative_np_trampolineruntime.pthread_cond_signal_trampolineruntime.pthread_self_trampolineruntime.pthread_kill_trampolineruntime.pthread_key_create_trampolineruntime.pthread_setspecific_trampolineruntime.syscallruntime.syscallXruntime.syscallPtrruntime.syscall6runtime.syscall6Xruntime.syscallNoErrruntime.load_gruntime.save_gruntime.(*itabTableType).add-fmruntime.(*errorString).Errorruntime.(*errorString).RuntimeErrortype..eq.runtime._functype..eq.runtime.itabtype..eq.runtime.modulehashtype..eq.runtime.bitvectortype..eq.runtime.Frametype..eq.[2]runtime.Frametype..eq.runtime.TypeAssertionErrortype..eq.runtime._panictype..eq.runtime._defertype..eq.runtime.boundsErrorruntime.(*boundsError).Errorruntime.(*boundsError).RuntimeErrortype..eq.runtime.sysmonticktype..eq.runtime.specialtype..eq.runtime.mspantype..eq.runtime.mcachetype..eq.struct { runtime.gList; runtime.n int32 }type..eq.runtime.hchantype..eq.runtime.sudogtype..eq.runtime.gcWorktype..eq.runtime.mOSruntime.(*lockRank).Stringruntime.(*waitReason).Stringtype..eq.runtime.errorAddressStringruntime.(*errorAddressString).Addrruntime.(*errorAddressString).Errorruntime.(*errorAddressString).RuntimeErrortype..eq.runtime.funcinltype..eq.runtime.hiterruntime.(*plainError).Errorruntime.(*plainError).RuntimeErrortype..eq.[2]stringsync/atomic.(*Value).Loadsync/atomic.(*Value).Storesync/atomic.(*Value).Swapsync/atomic.(*Value).CompareAndSwapsync/atomic.SwapUintptrsync/atomic.CompareAndSwapUintptrsync/atomic.AddInt32sync/atomic.StoreUint32sync/atomic.StoreUintptrinternal/reflectlite.Swapperinternal/reflectlite.ValueOfinternal/reflectlite.escapesinternal/reflectlite.unpackEfaceinternal/reflectlite.(*rtype).Kindinternal/reflectlite.ifaceIndirinternal/reflectlite.Value.Kindinternal/reflectlite.flag.kindinternal/reflectlite.Value.Typeinternal/reflectlite.(*rtype).Sizeinternal/reflectlite.Swapper.func9internal/reflectlite.arrayAtinternal/reflectlite.addinternal/reflectlite.Swapper.func8internal/reflectlite.Swapper.func7internal/reflectlite.Swapper.func6internal/reflectlite.Swapper.func5internal/reflectlite.Swapper.func4internal/reflectlite.Swapper.func3internal/reflectlite.name.nameinternal/reflectlite.name.readVarintinternal/reflectlite.name.datainternal/reflectlite.name.taginternal/reflectlite.name.hasTaginternal/reflectlite.name.pkgPathinternal/reflectlite.Kind.Stringinternal/reflectlite.(*rtype).uncommoninternal/reflectlite.(*rtype).Stringinternal/reflectlite.(*rtype).nameOffinternal/reflectlite.(*rtype).commoninternal/reflectlite.(*rtype).exportedMethodsinternal/reflectlite.(*uncommonType).exportedMethodsinternal/reflectlite.(*rtype).NumMethodinternal/reflectlite.(*interfaceType).NumMethodinternal/reflectlite.(*rtype).PkgPathinternal/reflectlite.(*rtype).Nameinternal/reflectlite.(*rtype).hasNameinternal/reflectlite.(*rtype).Eleminternal/reflectlite.toTypeinternal/reflectlite.(*rtype).Ininternal/reflectlite.(*funcType).ininternal/reflectlite.(*rtype).Keyinternal/reflectlite.(*rtype).Leninternal/reflectlite.(*rtype).NumFieldinternal/reflectlite.(*rtype).NumIninternal/reflectlite.(*rtype).NumOutinternal/reflectlite.(*funcType).outinternal/reflectlite.(*rtype).Outinternal/reflectlite.(*rtype).Implementsinternal/reflectlite.(*rtype).AssignableTointernal/reflectlite.(*rtype).Comparableinternal/reflectlite.implementsinternal/reflectlite.(*uncommonType).methodsinternal/reflectlite.(*rtype).typeOffinternal/reflectlite.name.isExportedinternal/reflectlite.directlyAssignableinternal/reflectlite.haveIdenticalTypeinternal/reflectlite.haveIdenticalUnderlyingTypeinternal/reflectlite.(*rtype).chanDirinternal/reflectlite.(*ValueError).Errorinternal/reflectlite.Value.Leninternal/reflectlite.Value.pointerinternal/reflectlite.(*rtype).pointersinternal/reflectlite.Swapper.func1internal/reflectlite.Swapper.func2internal/reflectlite.(*Kind).Stringtype..eq.internal/reflectlite.uncommonTypetype..eq.internal/reflectlite.ValueErrorerrors.(*errorString).Errorerrors.Isinternal/reflectlite.TypeOferrors.Unwraperrors.initmath/bits.Div64math/bits.LeadingZeros64math.frexpmath.IsInfmath.IsNaNmath.normalizemath.Float64bitsmath.ldexpmath.Infmath.Float64frombitsmath.Copysignmath.logmath.Frexpmath.log2math.Logmath.archExpunicode/utf8.DecodeRuneunicode/utf8.DecodeRuneInStringunicode/utf8.DecodeLastRuneunicode/utf8.RuneStartunicode/utf8.DecodeLastRuneInStringunicode/utf8.EncodeRuneunicode/utf8.RuneCountunicode/utf8.RuneCountInStringunicode/utf8.Validunicode/utf8.ValidStringstrconv.specialstrconv.commonPrefixLenIgnoreCasestrconv.(*decimal).setstrconv.lowerstrconv.readFloatstrconv.(*decimal).floatBitsstrconv.atof64exactstrconv.atof32exactstrconv.atofHexstrconv.rangeErrormath.Float32frombitsstrconv.atof32strconv.syntaxErrorstrconv.atof64strconv.ParseFloatstrconv.parseFloatPrefixstrconv.(*NumError).Errorstrconv.Quotestrconv.quoteWithstrconv.(*NumError).Unwrapstrconv.baseErrorstrconv.Itoaerrors.Newstrconv.bitSizeErrorstrconv.ParseUintstrconv.ParseIntstrconv.Atoistrconv.underscoreOKstrconv.(*decimal).Assignstrconv.trimstrconv.rightShiftstrconv.leftShiftstrconv.prefixIsLessThanstrconv.(*decimal).Shiftstrconv.(*decimal).Roundstrconv.shouldRoundUpstrconv.(*decimal).RoundUpstrconv.(*decimal).RoundDownstrconv.(*decimal).RoundedIntegerstrconv.eiselLemire64strconv.eiselLemire32strconv.FormatFloatstrconv.maxstrconv.genericFtoamath.Float32bitsstrconv.bigFtoastrconv.formatDigitsstrconv.roundShorteststrconv.fmtEstrconv.minstrconv.fmtFstrconv.fmtBstrconv.fmtXstrconv.ryuFtoaFixed32strconv.mulByLog2Log10strconv.divisibleByPower5strconv.ryuFtoaFixed64strconv.formatDecimalstrconv.ryuFtoaShorteststrconv.computeBoundsstrconv.ryuDigitsstrconv.divmod1e9strconv.ryuDigits32strconv.mult64bitPow10strconv.mulByLog10Log2strconv.mult128bitPow10strconv.FormatUintstrconv.smallstrconv.FormatIntstrconv.AppendIntstrconv.AppendUintstrconv.formatBitsstrconv.isPowerOfTwomath/bits.TrailingZerosstrconv.appendQuotedWithstrconv.appendQuotedRuneWithunicode/utf8.ValidRunestrconv.appendEscapedRunestrconv.isInGraphicListstrconv.bsearch16strconv.CanBackquotestrconv.UnquoteCharstrconv.unhexstrconv.Unquotestrconv.unquotestrconv.indexstrconv.containsstrconv.IsPrintstrconv.bsearch32strconv.inittype..eq.strconv.NumErrorsync.(*Cond).Waitsync.(*copyChecker).checksync.(*Cond).Signalsync.(*Cond).Broadcastsync.(*noCopy).Locksync.(*noCopy).Unlocksync.(*Map).Loadsync.(*Mutex).Locksync.(*Mutex).Unlocksync.(*entry).loadsync.(*Map).Storesync.(*entry).unexpungeLockedsync.(*entry).storeLockedsync.newEntrysync.(*entry).tryStoresync.(*Map).LoadOrStoresync.(*entry).tryLoadOrStoresync.(*Map).missLockedsync.(*Map).dirtyLockedsync.(*entry).tryExpungeLockedsync.(*Mutex).lockSlowsync.(*Mutex).unlockSlowsync.(*Once).Dosync.(*Once).doSlowsync.(*Pool).Putsync.(*Pool).Getsync.(*Pool).getSlowsync.indexLocalsync.(*Pool).pinsync.(*Pool).pinSlowsync.poolCleanupsync.init.0sync.(*poolDequeue).pushHeadsync.(*poolDequeue).unpacksync.(*poolDequeue).popHeadsync.(*poolDequeue).packsync.(*poolDequeue).popTailsync.(*poolChain).pushHeadsync.storePoolChainEltsync.(*poolChain).popHeadsync.loadPoolChainEltsync.(*poolChain).popTailsync.init.1sync.(*RWMutex).RLocksync.(*RWMutex).RUnlocksync.(*RWMutex).rUnlockSlowsync.(*RWMutex).Locksync.(*RWMutex).Unlocksync.(*RWMutex).RLockersync.(*rlocker).Locksync.(*rlocker).Unlocksync.(*WaitGroup).Addsync.(*WaitGroup).statesync.(*WaitGroup).Donesync.(*WaitGroup).Waitsync.inittype..eq.sync.Condtype..eq.sync.poolLocalInternaltype..eq.sync.poolLocalunicode.Inunicode.IsSpaceunicode.is16unicode.is32unicode.Isunicode.isExcludingLatinunicode.tounicode.ToUpperunicode.Tounicode.ToLowerunicode.SimpleFoldunicode.initinternal/itoa.Itoainternal/itoa.Uitoareflect.(*abiSeq).addArgreflect.(*abiSeq).stackAssignreflect.alignreflect.(*abiSeq).addRcvrreflect.ifaceIndirreflect.(*rtype).pointersreflect.(*abiSeq).regAssignreflect.(*rtype).Kindreflect.(*abiSeq).assignFloatNreflect.(*structField).offsetreflect.(*abiSeq).assignIntNreflect.newAbiDescreflect.(*bitVector).appendreflect.(*funcType).inreflect.addreflect.(*funcType).outreflect.(*abiSeq).stepsForValuereflect.deepValueEqualreflect.deepValueEqual.func2reflect.Value.Kindreflect.flag.kindreflect.Value.pointerreflect.Value.IsNilreflect.Value.IsValidreflect.DeepEqualreflect.ValueOfreflect.escapesreflect.unpackEfacereflect.makeMethodValuereflect.name.namereflect.name.readVarintreflect.name.datareflect.name.tagreflect.name.hasTagreflect.name.pkgPathreflect.newNamereflect.writeVarintreflect.Method.IsExportedreflect.Kind.Stringreflect.(*rtype).uncommonreflect.(*rtype).Stringreflect.(*rtype).nameOffreflect.(*rtype).Sizereflect.(*rtype).Bitsreflect.(*rtype).Alignreflect.(*rtype).FieldAlignreflect.(*rtype).commonreflect.(*rtype).exportedMethodsreflect.(*uncommonType).exportedMethodsreflect.(*rtype).NumMethodreflect.(*interfaceType).NumMethodreflect.(*rtype).Methodreflect.(*rtype).typeOffreflect.(*rtype).textOffreflect.(*rtype).MethodByNamereflect.(*rtype).PkgPathreflect.(*rtype).Namereflect.(*rtype).hasNamereflect.(*rtype).ChanDirreflect.(*rtype).IsVariadicreflect.(*rtype).Elemreflect.toTypereflect.(*rtype).Fieldreflect.(*rtype).FieldByIndexreflect.(*rtype).FieldByNamereflect.(*rtype).FieldByNameFuncreflect.(*rtype).Inreflect.(*rtype).Keyreflect.(*rtype).Lenreflect.(*rtype).NumFieldreflect.(*rtype).NumInreflect.(*rtype).NumOutreflect.(*rtype).Outreflect.ChanDir.Stringreflect.(*interfaceType).Methodreflect.name.isExportedreflect.(*interfaceType).MethodByNamereflect.StructField.IsExportedreflect.StructTag.Getreflect.StructTag.Lookupreflect.(*structType).Fieldreflect.(*structField).embeddedreflect.(*structType).FieldByIndexreflect.(*structType).FieldByNameFuncreflect.(*structType).FieldByNamereflect.(*structType).FieldByName.func1reflect.(*rtype).ptrToreflect.resolveReflectNamereflect.fnv1reflect.(*rtype).Implementsreflect.(*rtype).AssignableToreflect.(*rtype).ConvertibleToreflect.(*rtype).Comparablereflect.implementsreflect.(*uncommonType).methodsreflect.specialChannelAssignabilityreflect.directlyAssignablereflect.haveIdenticalTypereflect.haveIdenticalUnderlyingTypereflect.typesByStringreflect.rtypeOffreflect.FuncOfreflect.FuncOf.func1reflect.funcStrreflect.funcLayoutreflect.funcLayout.func1reflect.addTypeBitsreflect.packEfacereflect.(*ValueError).Errorreflect.methodNamereflect.methodNameSkipreflect.flag.mustBeExportedSlowreflect.flag.mustBeAssignableSlowreflect.Value.Addrreflect.Value.Boolreflect.flag.mustBereflect.Value.Bytesreflect.Value.runesreflect.Value.CanAddrreflect.Value.CanSetreflect.Value.Callreflect.flag.mustBeExportedreflect.Value.CallSlicereflect.Value.callreflect.storeRcvrreflect.methodReceiverreflect.callMethodreflect.Value.Capreflect.Value.Closereflect.Value.Complexreflect.Value.Elemreflect.flag.roreflect.Value.Fieldreflect.Value.FieldByIndexreflect.Value.FieldByNamereflect.Value.FieldByNameFuncreflect.Value.Floatreflect.Value.Indexreflect.arrayAtreflect.Value.Intreflect.Value.CanInterfacereflect.Value.Interfacereflect.valueInterfacereflect.Value.InterfaceDatareflect.Value.IsZeroreflect.Value.Uintreflect.Value.Lenreflect.Value.MapIndexreflect.Value.MapKeysreflect.(*MapIter).Keyreflect.(*MapIter).Valuereflect.(*MapIter).Nextreflect.Value.MapRangereflect.copyValreflect.Value.Methodreflect.Value.NumMethodreflect.Value.MethodByNamereflect.Value.NumFieldreflect.Value.OverflowComplexreflect.overflowFloat32reflect.Value.OverflowFloatreflect.Value.OverflowIntreflect.Value.OverflowUintreflect.Value.Pointerreflect.Value.Recvreflect.Value.recvreflect.Value.Sendreflect.Value.sendreflect.Value.Setreflect.flag.mustBeAssignablereflect.Value.SetBoolreflect.Value.SetBytesreflect.Value.setRunesreflect.Value.SetComplexreflect.Value.SetFloatreflect.Value.SetIntreflect.Value.SetLenreflect.Value.SetCapreflect.Value.SetMapIndexreflect.Value.SetUintreflect.Value.SetPointerreflect.Value.SetStringreflect.Value.Slicereflect.Value.Slice3reflect.Value.Stringreflect.Value.TryRecvreflect.Value.TrySendreflect.Value.Typereflect.Value.UnsafeAddrreflect.typesMustMatchreflect.Copyreflect.MakeSlicereflect.MakeMapWithSizereflect.Zeroreflect.Newreflect.Value.assignToreflect.Value.Convertreflect.Value.CanConvertreflect.convertOpreflect.makeIntreflect.makeFloatreflect.makeFloat32reflect.makeComplexreflect.makeStringreflect.makeBytesreflect.makeRunesreflect.cvtIntreflect.cvtUintreflect.cvtFloatIntreflect.cvtFloatUintreflect.cvtIntFloatreflect.cvtUintFloatreflect.cvtFloatreflect.cvtComplexreflect.cvtIntStringreflect.cvtUintStringreflect.cvtBytesStringreflect.cvtStringBytesreflect.cvtRunesStringreflect.cvtStringRunesreflect.cvtSliceArrayPtrreflect.cvtDirectreflect.cvtT2Ireflect.cvtI2Ireflect.deepValueEqual.func1reflect.initreflect.TypeOfreflect.methodValueCallreflect.(*ChanDir).Stringreflect.(*Kind).Stringreflect.(*StructTag).Getreflect.(*StructTag).Lookupreflect.(*StructField).IsExportedtype..eq.reflect.Methodreflect.(*Method).IsExportedtype..eq.reflect.uncommonTypereflect.(*Value).Addrreflect.(*Value).Boolreflect.(*Value).Bytesreflect.(*Value).Callreflect.(*Value).CallSlicereflect.(*Value).CanAddrreflect.(*Value).CanConvertreflect.(*Value).CanInterfacereflect.(*Value).CanSetreflect.(*Value).Capreflect.(*Value).Closereflect.(*Value).Complexreflect.(*Value).Convertreflect.(*Value).Elemreflect.(*Value).Fieldreflect.(*Value).FieldByIndexreflect.(*Value).FieldByNamereflect.(*Value).FieldByNameFuncreflect.(*Value).Floatreflect.(*Value).Indexreflect.(*Value).Intreflect.(*Value).Interfacereflect.(*Value).InterfaceDatareflect.(*Value).IsNilreflect.(*Value).IsValidreflect.(*Value).IsZeroreflect.(*Value).Kindreflect.(*Value).Lenreflect.(*Value).MapIndexreflect.(*Value).MapKeysreflect.(*Value).MapRangereflect.(*Value).Methodreflect.(*Value).MethodByNamereflect.(*Value).NumFieldreflect.(*Value).NumMethodreflect.(*Value).OverflowComplexreflect.(*Value).OverflowFloatreflect.(*Value).OverflowIntreflect.(*Value).OverflowUintreflect.(*Value).Pointerreflect.(*Value).Recvreflect.(*Value).Sendreflect.(*Value).Setreflect.(*Value).SetBoolreflect.(*Value).SetBytesreflect.(*Value).SetCapreflect.(*Value).SetComplexreflect.(*Value).SetFloatreflect.(*Value).SetIntreflect.(*Value).SetLenreflect.(*Value).SetMapIndexreflect.(*Value).SetPointerreflect.(*Value).SetStringreflect.(*Value).SetUintreflect.(*Value).Slicereflect.(*Value).Slice3reflect.(*Value).Stringreflect.(*Value).TryRecvreflect.(*Value).TrySendreflect.(*Value).Typereflect.(*Value).Uintreflect.(*Value).UnsafeAddrtype..eq.reflect.ValueErrorreflect.(*funcType).Alignreflect.(*funcType).AssignableToreflect.(*funcType).Bitsreflect.(*funcType).ChanDirreflect.(*funcType).Comparablereflect.(*funcType).ConvertibleToreflect.(*funcType).Elemreflect.(*funcType).Fieldreflect.(*funcType).FieldAlignreflect.(*funcType).FieldByIndexreflect.(*funcType).FieldByNamereflect.(*funcType).FieldByNameFuncreflect.(*funcType).Implementsreflect.(*funcType).Inreflect.(*funcType).IsVariadicreflect.(*funcType).Keyreflect.(*funcType).Kindreflect.(*funcType).Lenreflect.(*funcType).Methodreflect.(*funcType).MethodByNamereflect.(*funcType).Namereflect.(*funcType).NumFieldreflect.(*funcType).NumInreflect.(*funcType).NumMethodreflect.(*funcType).NumOutreflect.(*funcType).Outreflect.(*funcType).PkgPathreflect.(*funcType).Sizereflect.(*funcType).Stringreflect.(*funcType).commontype..eq.reflect.makeFuncCtxttype..eq.reflect.methodValuereflect.(*ptrType).Alignreflect.(*ptrType).AssignableToreflect.(*ptrType).Bitsreflect.(*ptrType).ChanDirreflect.(*ptrType).Comparablereflect.(*ptrType).ConvertibleToreflect.(*ptrType).Elemreflect.(*ptrType).Fieldreflect.(*ptrType).FieldAlignreflect.(*ptrType).FieldByIndexreflect.(*ptrType).FieldByNamereflect.(*ptrType).FieldByNameFuncreflect.(*ptrType).Implementsreflect.(*ptrType).Inreflect.(*ptrType).IsVariadicreflect.(*ptrType).Keyreflect.(*ptrType).Kindreflect.(*ptrType).Lenreflect.(*ptrType).Methodreflect.(*ptrType).MethodByNamereflect.(*ptrType).Namereflect.(*ptrType).NumFieldreflect.(*ptrType).NumInreflect.(*ptrType).NumMethodreflect.(*ptrType).NumOutreflect.(*ptrType).Outreflect.(*ptrType).PkgPathreflect.(*ptrType).Sizereflect.(*ptrType).Stringreflect.(*ptrType).commontype..eq.reflect.visittype..hash.reflect.visitsort.Searchsort.SearchStringssort.SearchStrings.func1sort.StringSlice.Searchsort.Slicesort.maxDepthsort.insertionSortsort.siftDownsort.heapSortsort.medianOfThreesort.doPivotsort.quickSortsort.Sortsort.reverse.Lesssort.StringSlice.Lensort.StringSlice.Lesssort.StringSlice.Swapsort.StringSlice.Sortsort.Stablesort.stablesort.symMergesort.rotatesort.swapRangesort.insertionSort_funcsort.siftDown_funcsort.heapSort_funcsort.medianOfThree_funcsort.doPivot_funcsort.quickSort_funcsort.(*reverse).Lensort.(*reverse).Lesssort.(*reverse).Swapsort.(*StringSlice).Lensort.(*StringSlice).Lesssort.(*StringSlice).Searchsort.(*StringSlice).Sortsort.(*StringSlice).Swapsort.reverse.Lensort.reverse.Swapinternal/fmtsort.(*SortedMap).Leninternal/fmtsort.(*SortedMap).Lessinternal/fmtsort.(*SortedMap).Swapinternal/fmtsort.Sortinternal/fmtsort.compareinternal/fmtsort.floatCompareinternal/fmtsort.isNaNinternal/fmtsort.nilCompareio.WriteStringio.ReadAtLeastio.CopyNio.LimitReaderio.Copyio.copyBufferio.(*LimitedReader).Readio.(*SectionReader).Readio.(*SectionReader).Seekio.(*SectionReader).ReadAtio.(*SectionReader).Sizeio.discard.Writeio.discard.WriteStringio.discard.ReadFromio.nopCloser.Closeio.ReadAllio.eofReader.Readio.(*multiReader).Readio.glob..func1io.initio.(*discard).ReadFromio.(*discard).Writeio.(*discard).WriteStringtype..eq.io.LimitedReadertype..eq.io.SectionReaderio.(*eofReader).Readio.(*nopCloser).Closeio.(*nopCloser).Readio.nopCloser.Readinternal/oserror.initsyscall.copyenvsyscall.Getenvsyscall.SetNonblocksyscall.ParseSocketControlMessagesyscall.cmsgAlignOfsyscall.CmsgLensyscall.socketControlMessageHeaderAndDatasyscall.(*Timespec).Unixsyscall.(*Timespec).Nanosyscall.Getwdsyscall.clensyscall.(*SockaddrInet4).sockaddrsyscall.(*SockaddrInet6).sockaddrsyscall.(*SockaddrUnix).sockaddrsyscall.(*SockaddrDatalink).sockaddrsyscall.anyToSockaddrsyscall.Acceptsyscall.Getsocknamesyscall.Recvmsgsyscall.(*Iovec).SetLensyscall.(*Msghdr).SetControllensyscall.SendmsgNsyscall.Sysctlsyscall.SysctlUint32syscall.nametomibsyscall.ByteSliceFromStringsyscall.init.0syscall.fdopendirsyscall.errnoErrsyscall.Getdirentriessyscall.Errno.Errorsyscall.Errno.Issyscall.Errno.Temporarysyscall.Errno.Timeoutsyscall.Bindsyscall.Connectsyscall.Getpeernamesyscall.GetsockoptIntsyscall.Recvfromsyscall.Sendtosyscall.Socketsyscall.acceptsyscall.bindsyscall.connectsyscall.socketsyscall.getsockoptsyscall.setsockoptsyscall.getpeernamesyscall.getsocknamesyscall.Shutdownsyscall.recvfromsyscall.sendtosyscall.recvmsgsyscall.sendmsgsyscall.fcntlsyscall.Chmodsyscall.BytePtrFromStringsyscall.Closesyscall.closedirsyscall.Dupsyscall.Fchdirsyscall.Fchmodsyscall.Fchownsyscall.Ftruncatesyscall.Getrlimitsyscall.Listensyscall.Opensyscall.Preadsyscall.Pwritesyscall.readsyscall.readdir_rsyscall.Rmdirsyscall.Seeksyscall.Unlinksyscall.writesyscall.writevsyscall.mmapsyscall.munmapsyscall.execvesyscall.sysctlsyscall.openatsyscall.getcwdsyscall.Fstatsyscall.Lstatsyscall.Statsyscall.initsyscall.libc_fdopendir_trampolinesyscall.libc_accept_trampolinesyscall.libc_bind_trampolinesyscall.libc_connect_trampolinesyscall.libc_socket_trampolinesyscall.libc_getsockopt_trampolinesyscall.libc_setsockopt_trampolinesyscall.libc_getpeername_trampolinesyscall.libc_getsockname_trampolinesyscall.libc_shutdown_trampolinesyscall.libc_recvfrom_trampolinesyscall.libc_sendto_trampolinesyscall.libc_recvmsg_trampolinesyscall.libc_sendmsg_trampolinesyscall.libc_fcntl_trampolinesyscall.libc_chmod_trampolinesyscall.libc_close_trampolinesyscall.libc_closedir_trampolinesyscall.libc_dup_trampolinesyscall.libc_fchdir_trampolinesyscall.libc_fchmod_trampolinesyscall.libc_fchown_trampolinesyscall.libc_ftruncate_trampolinesyscall.libc_getrlimit_trampolinesyscall.libc_listen_trampolinesyscall.libc_open_trampolinesyscall.libc_pread_trampolinesyscall.libc_pwrite_trampolinesyscall.libc_read_trampolinesyscall.libc_readdir_r_trampolinesyscall.libc_rmdir_trampolinesyscall.libc_lseek_trampolinesyscall.libc_unlink_trampolinesyscall.libc_write_trampolinesyscall.libc_writev_trampolinesyscall.libc_mmap_trampolinesyscall.libc_munmap_trampolinesyscall.libc_execve_trampolinesyscall.libc_sysctl_trampolinesyscall.libc_openat_trampolinesyscall.libc_getcwd_trampolinesyscall.libc_fstat_trampolinesyscall.libc_lstat_trampolinesyscall.libc_stat_trampolinesyscall.(*Errno).Errorsyscall.(*Errno).Issyscall.(*Errno).Temporarysyscall.(*Errno).Timeouttype..eq.syscall.SockaddrInet4type..eq.syscall.SockaddrUnixtime.nextStdChunktime.startsWithLowerCasetime.isDigittime.stdFracSecondtime.lookuptime.matchtime.appendInttime.atoitime.leadingInttime.formatNanotime.separatortime.digitsLentime.Time.Stringtime.Time.GoStringtime.Time.Yeartime.Time.Monthtime.Month.Stringtime.fmtInttime.Time.Daytime.Time.Hourtime.Time.Minutetime.Time.Secondtime.Time.Nanosecondtime.(*Time).nsectime.Time.Locationtime.Time.Formattime.Time.AppendFormattime.absClocktime.absWeekdaytime.Weekday.Stringtime.quotetime.(*ParseError).Errortime.getnumtime.skiptime.cutspacetime.parsetime.commaOrPeriodtime.isLeaptime.daysIntime.(*Time).unixSectime.(*Time).sectime.FixedZonetime.(*Time).setLoctime.(*Time).stripMonotime.getnum3time.parseTimeZonetime.parseGMTtime.parseSignedOffsettime.parseNanosecondstime.ParseDurationtime.leadingFractiontime.whentime.(*Timer).Stoptime.NewTimertime.(*Timer).Resettime.sendTimetime.AfterFunctime.goFunctime.closefdtime.preadnsyscall.Readtime.(*Time).addSectime.Time.Aftertime.Time.Beforetime.Time.Equaltime.Time.IsZerotime.Time.abstime.Time.locabstime.Time.Datetime.Time.Weekdaytime.Time.ISOWeektime.Time.Clocktime.Time.YearDaytime.Duration.Stringtime.fmtFractime.Duration.Nanosecondstime.Duration.Microsecondstime.Duration.Millisecondstime.Duration.Secondstime.Duration.Minutestime.Duration.Hourstime.Duration.Truncatetime.Duration.Roundtime.lessThanHalftime.Time.Addtime.Time.Subtime.Sincetime.Untiltime.Time.AddDatetime.Time.datetime.absDatetime.Nowtime.Time.UTCtime.Time.Localtime.Time.Intime.Time.Zonetime.Time.Unixtime.Time.UnixMillitime.Time.UnixMicrotime.Time.UnixNanotime.Time.MarshalBinarytime.(*Time).UnmarshalBinarytime.Time.GobEncodetime.(*Time).GobDecodetime.Time.MarshalJSONtime.(*Time).UnmarshalJSONtime.Parsetime.Time.MarshalTexttime.(*Time).UnmarshalTexttime.Time.IsDSTtime.Datetime.normtime.daysSinceEpochtime.unixTimetime.Time.Truncatetime.Time.Roundtime.divtime.(*Location).gettime.(*Location).Stringtime.(*Location).lookuptime.(*Location).lookupFirstZonetime.(*Location).firstZoneUsedtime.tzsettime.tzsetNametime.tzsetOffsettime.tzsetRuletime.tzsetNumtime.tzruleTimetime.(*Location).lookupNametime.fileSizeError.Errortime.(*dataIO).big4time.(*dataIO).readtime.(*dataIO).big8time.LoadLocationFromTZDatatime.(*dataIO).resttime.(*dataIO).bytetime.byteStringtime.findZonetime.loadTzinfoFromDirOrZiptime.loadTzinfoFromZiptime.opentime.get4time.get2time.loadTzinfotime.loadLocationtime.readFiletime.readtime.initLocaltime.initruntime.GOROOTtime.(*Duration).Hourstime.(*Duration).Microsecondstime.(*Duration).Millisecondstime.(*Duration).Minutestime.(*Duration).Nanosecondstime.(*Duration).Roundtime.(*Duration).Secondstime.(*Duration).Stringtime.(*Duration).Truncatetype..eq.time.zonetype..eq.time.zoneTranstime.(*Month).Stringtype..eq.time.ParseErrortime.(*Time).Addtime.(*Time).AddDatetime.(*Time).Aftertime.(*Time).AppendFormattime.(*Time).Beforetime.(*Time).Clocktime.(*Time).Datetime.(*Time).Daytime.(*Time).Equaltime.(*Time).Formattime.(*Time).GoStringtime.(*Time).GobEncodetime.(*Time).Hourtime.(*Time).ISOWeektime.(*Time).Intime.(*Time).IsDSTtime.(*Time).IsZerotime.(*Time).Localtime.(*Time).Locationtime.(*Time).MarshalBinarytime.(*Time).MarshalJSONtime.(*Time).MarshalTexttime.(*Time).Minutetime.(*Time).Monthtime.(*Time).Nanosecondtime.(*Time).Roundtime.(*Time).Secondtime.(*Time).Stringtime.(*Time).Subtime.(*Time).Truncatetime.(*Time).UTCtime.(*Time).Unixtime.(*Time).UnixMicrotime.(*Time).UnixMillitime.(*Time).UnixNanotime.(*Time).Weekdaytime.(*Time).Yeartime.(*Time).YearDaytime.(*Time).Zonetime.(*Weekday).Stringtime.(*fileSizeError).Errortype..eq.[1]time.zonetype..eq.[1]time.zoneTranspath.initio/fs.FileMode.Stringio/fs.FileMode.IsDirio/fs.FileMode.IsRegulario/fs.FileMode.Permio/fs.FileMode.Typeio/fs.(*PathError).Errorio/fs.(*PathError).Unwrapio/fs.(*PathError).Timeoutio/fs.initio/fs.(*FileMode).IsDirio/fs.(*FileMode).IsRegulario/fs.(*FileMode).Permio/fs.(*FileMode).Stringio/fs.(*FileMode).Typetype..eq.io/fs.PathErrorinternal/testlog.PanicOnExit0internal/testlog.Getenvinternal/testlog.Loggerinternal/testlog.Openinternal/testlog.Statinternal/poll.errNetClosing.Errorinternal/poll.errNetClosing.Timeoutinternal/poll.errNetClosing.Temporaryinternal/poll.(*DeadlineExceededError).Errorinternal/poll.(*DeadlineExceededError).Timeoutinternal/poll.(*DeadlineExceededError).Temporaryinternal/poll.(*FD).Fsyncinternal/poll.(*FD).increfinternal/poll.(*fdMutex).increfinternal/poll.errClosinginternal/poll.ignoringEINTRinternal/poll.(*FD).Fsync.func1internal/poll.(*fdMutex).increfAndCloseinternal/poll.(*fdMutex).rwlockinternal/poll.(*fdMutex).rwunlockinternal/poll.(*FD).decrefinternal/poll.(*fdMutex).decrefinternal/poll.(*FD).readUnlockinternal/poll.(*FD).writeUnlockinternal/poll.(*FD).OpenDirinternal/poll.(*pollDesc).initinternal/poll.errnoErrinternal/poll.(*pollDesc).prepareinternal/poll.convertErrinternal/poll.(*pollDesc).waitinternal/poll.(*FD).SetDeadlineinternal/poll.(*FD).SetReadDeadlineinternal/poll.(*FD).SetWriteDeadlineinternal/poll.setDeadlineImplinternal/poll.(*FD).Shutdowninternal/poll.(*FD).Fchowninternal/poll.(*FD).Fchown.func1internal/poll.(*FD).Ftruncateinternal/poll.(*FD).Ftruncate.func1internal/poll.(*FD).RawControlinternal/poll.(*FD).Initinternal/poll.(*FD).destroyinternal/poll.(*pollDesc).closeinternal/poll.(*FD).Closeinternal/poll.(*pollDesc).evictinternal/poll.(*FD).SetBlockinginternal/poll.(*FD).Readinternal/poll.(*FD).readLockinternal/poll.(*pollDesc).prepareReadinternal/poll.ignoringEINTRIOinternal/poll.(*pollDesc).pollableinternal/poll.(*pollDesc).waitReadinternal/poll.(*FD).eofErrorinternal/poll.(*FD).Preadinternal/poll.(*FD).ReadFrominternal/poll.(*FD).ReadMsginternal/poll.(*FD).Writeinternal/poll.(*FD).writeLockinternal/poll.(*pollDesc).prepareWritesyscall.Writeinternal/poll.(*pollDesc).waitWriteinternal/poll.(*FD).Pwriteinternal/poll.(*FD).WriteTointernal/poll.(*FD).WriteMsginternal/poll.(*FD).Acceptinternal/poll.(*FD).Seekinternal/poll.(*FD).ReadDirentsyscall.ReadDirentinternal/poll.(*FD).Fchmodinternal/poll.(*FD).Fchmod.func1internal/poll.(*FD).Fchdirinternal/poll.(*FD).Fstatinternal/poll.(*FD).Fstat.func1internal/poll.DupCloseOnExecinternal/poll.dupCloseOnExecOldsyscall.CloseOnExecinternal/poll.(*FD).Dupinternal/poll.(*FD).WaitWriteinternal/poll.(*FD).WriteOnceinternal/poll.(*FD).RawReadinternal/poll.(*FD).RawWriteinternal/poll.(*FD).SetsockoptIntsyscall.SetsockoptIntinternal/poll.(*FD).SetsockoptInet4Addrsyscall.SetsockoptInet4Addrinternal/poll.(*FD).SetsockoptLingersyscall.SetsockoptLingerinternal/poll.(*FD).SetsockoptBytesyscall.SetsockoptByteinternal/poll.(*FD).SetsockoptIPMreqsyscall.SetsockoptIPMreqinternal/poll.(*FD).SetsockoptIPv6Mreqsyscall.SetsockoptIPv6Mreqinternal/poll.acceptinternal/poll.(*FD).Writevinternal/poll.consumeinternal/poll.glob..func1internal/poll.inittype..eq.internal/poll.FDinternal/poll.(*errNetClosing).Errorinternal/poll.(*errNetClosing).Temporaryinternal/poll.(*errNetClosing).Timeoutinternal/syscall/unix.GetEntropyinternal/syscall/unix.IsNonblockinternal/syscall/unix.libc_getentropy_trampolineos.(*File).Readdiros.(*File).Readdirnamesos.(*File).ReadDiros.(*File).readdiros.dtToTypeos.IsNotExistos.Getenvos.(*SyscallError).Erroros.(*SyscallError).Unwrapos.(*SyscallError).Timeoutos.underlyingErrorIsos.underlyingErroros.(*File).Nameos.(*File).Reados.(*File).checkValidos.(*File).reados.(*File).wrapErros.(*File).ReadAtos.(*File).preados.(*File).ReadFromos.genericReadFromos.(*File).Writeos.(*File).writeos.epipecheckos.(*File).WriteAtos.(*File).pwriteos.(*File).Seekos.(*File).WriteStringos.setStickyBitos.Chmodos.OpenFileos.(*File).Chmodos.(*File).SetDeadlineos.(*File).SetReadDeadlineos.(*File).SetWriteDeadlineos.(*File).SyscallConnos.newRawConnos.ReadFileos.Openos.(*File).Closeos.chmodos.ignoringEINTRos.chmod.func1os.syscallModeos.(*File).chmodos.(*File).Chownos.(*File).Truncateos.(*File).Syncos.(*File).Chdiros.(*File).setDeadlineos.(*File).setReadDeadlineos.(*File).setWriteDeadlineos.(*File).Fdos.NewFileos.newFileos.newFile.func1os.openFileNologos.(*file).closeos.(*dirInfo).closeos.(*File).seekos.Removeos.Remove.func1os.Remove.func2os.(*unixDirent).Nameos.(*unixDirent).IsDiros.(*unixDirent).Typeos.(*unixDirent).Infoos.newUnixDirentos.Getwdos.SameFileos.sameFileos.NewSyscallErroros.init.0os.Exitos.(*rawConn).Controlos.(*rawConn).Reados.(*rawConn).Writeos.Statos.Lstatos.fillFileStatFromSysos.basenameos.timespecToTimetime.Unixos.(*File).Statos.statNologos.statNolog.func1os.lstatNologos.lstatNolog.func1os.Hostnameos.hostnameos.nextRandomos.CreateTempos.TempDiros.tempDiros.joinPathos.IsPathSeparatoros.IsExistos.prefixAndSuffixos.lastIndexos.(*fileStat).Nameos.(*fileStat).IsDiros.(*fileStat).Modeos.(*fileStat).Sizeos.(*fileStat).ModTimeos.(*fileStat).Sysos.inittype..eq.os.filetype..eq.os.LinkErrortype..eq.os.SyscallErrortype..eq.os.fileStatos.(*onlyWriter).Writeos.onlyWriter.Writetype..eq.os.unixDirentfmt.Errorffmt.(*wrapError).Errorfmt.(*wrapError).Unwrapfmt.(*fmt).writePaddingfmt.(*fmt).padfmt.(*buffer).writefmt.(*fmt).padStringfmt.(*buffer).writeStringfmt.(*fmt).fmtBooleanfmt.(*fmt).fmtUnicodeunicode/utf8.RuneLenfmt.(*fmt).fmtIntegerfmt.(*fmt).truncateStringfmt.(*fmt).truncatefmt.(*fmt).fmtSfmt.(*fmt).fmtBsfmt.(*fmt).fmtSbxfmt.(*fmt).fmtQstrconv.AppendQuotestrconv.AppendQuoteToASCIIfmt.(*fmt).fmtCfmt.(*fmt).fmtQcstrconv.AppendQuoteRuneToASCIIstrconv.AppendQuoteRunefmt.(*fmt).fmtFloatstrconv.AppendFloatfmt.(*buffer).writeBytefmt.(*buffer).writeRunefmt.newPrinterfmt.(*fmt).initfmt.(*fmt).clearflagsfmt.(*pp).freefmt.(*pp).Widthfmt.(*pp).Precisionfmt.(*pp).Flagfmt.(*pp).Writefmt.(*pp).WriteStringfmt.Fprintffmt.Sprintffmt.Fprintfmt.Sprintfmt.Fprintlnfmt.Sprintlnfmt.getFieldfmt.(*pp).unknownTypefmt.(*pp).badVerbfmt.(*pp).fmtBoolfmt.(*pp).fmt0x64fmt.(*pp).fmtIntegerfmt.(*pp).fmtFloatfmt.(*pp).fmtComplexfmt.(*pp).fmtStringfmt.(*fmt).fmtSxfmt.(*pp).fmtBytesfmt.(*fmt).fmtBxfmt.(*pp).fmtPointerfmt.(*pp).catchPanicfmt.(*pp).handleMethodsfmt.(*pp).printArgfmt.(*pp).printValuefmt.intFromArgfmt.tooLargefmt.parseArgNumberfmt.parsenumfmt.(*pp).argNumberfmt.(*pp).badArgNumfmt.(*pp).missingArgfmt.(*pp).doPrintffmt.(*pp).doPrintfmt.(*pp).doPrintlnfmt.(*stringReader).Readfmt.Fscanfmt.(*ss).Readfmt.(*ss).ReadRunefmt.(*ss).Widthfmt.(*ss).getRunefmt.(*ss).errorfmt.(*ss).UnreadRunefmt.(*ss).Tokenfmt.(*ss).Token.func1fmt.isSpacefmt.notSpacefmt.(*readRune).readByteio.ReadFullfmt.(*readRune).ReadRuneunicode/utf8.FullRunefmt.(*readRune).UnreadRunefmt.newScanStatefmt.(*ss).freefmt.(*ss).SkipSpacefmt.(*ss).errorStringfmt.(*ss).tokenfmt.indexRunefmt.(*ss).consumefmt.(*ss).peekfmt.(*ss).notEOFfmt.(*ss).okVerbfmt.(*ss).scanBoolfmt.(*ss).acceptfmt.(*ss).getBasefmt.(*ss).scanNumberfmt.(*ss).scanRunefmt.(*ss).scanBasePrefixfmt.(*ss).scanIntfmt.(*ss).scanUintfmt.(*ss).floatTokenfmt.(*ss).complexTokensfmt.(*ss).convertFloatfmt.hasXmath.Ldexpfmt.(*ss).scanComplexfmt.(*ss).convertStringfmt.(*ss).quotedStringfmt.(*ss).mustReadRunefmt.(*ss).hexBytefmt.hexDigitfmt.(*ss).hexStringfmt.(*ss).scanOnefmt.errorHandlerfmt.(*ss).doScanfmt.glob..func1fmt.glob..func2fmt.inittype..eq.fmt.fmttype..eq.fmt.readRunetype..eq.fmt.ssavetype..eq.fmt.wrapErrorgithub.com/lestrrat-go/jwx/v2/jwa.(*CompressionAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.CompressionAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithmsgithub.com/lestrrat-go/jwx/v2/jwa.(*ContentEncryptionAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithmsgithub.com/lestrrat-go/jwx/v2/jwa.(*EllipticCurveAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.InvalidKeyAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.InvalidKeyAlgorithm.Acceptgithub.com/lestrrat-go/jwx/v2/jwa.KeyAlgorithmFromgithub.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithmsgithub.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithm.IsSymmetricgithub.com/lestrrat-go/jwx/v2/jwa.KeyTypesgithub.com/lestrrat-go/jwx/v2/jwa.(*KeyType).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.KeyType.Stringgithub.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithmsgithub.com/lestrrat-go/jwx/v2/jwa.(*SignatureAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithms.func1.1github.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithms.func1github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithms.func1.1github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithms.func1github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithms.func1.1github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithms.func1github.com/lestrrat-go/jwx/v2/jwa.KeyTypes.func1.1github.com/lestrrat-go/jwx/v2/jwa.KeyTypes.func1github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithms.func1.1github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithms.func1github.com/lestrrat-go/jwx/v2/jwa.initgithub.com/lestrrat-go/jwx/v2/jwa.(*CompressionAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*ContentEncryptionAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*EllipticCurveAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*InvalidKeyAlgorithm).Acceptgithub.com/lestrrat-go/jwx/v2/jwa.(*InvalidKeyAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).IsSymmetricgithub.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*KeyType).Stringgithub.com/lestrrat-go/jwx/v2/jwa.(*SignatureAlgorithm).Stringcontext.deadlineExceededError.Errorcontext.deadlineExceededError.Timeoutcontext.deadlineExceededError.Temporarycontext.(*emptyCtx).Deadlinecontext.(*emptyCtx).Donecontext.(*emptyCtx).Errcontext.(*emptyCtx).Valuecontext.(*emptyCtx).Stringcontext.WithCancelcontext.WithCancel.func1context.propagateCancelcontext.propagateCancel.func1context.parentCancelCtxcontext.removeChildcontext.init.0context.(*cancelCtx).Valuecontext.(*cancelCtx).Donecontext.(*cancelCtx).Errcontext.contextNamecontext.(*cancelCtx).Stringcontext.(*cancelCtx).cancelcontext.WithDeadlinecontext.newCancelCtxcontext.WithDeadline.func3context.WithDeadline.func2context.WithDeadline.func1context.(*timerCtx).Deadlinecontext.(*timerCtx).Stringcontext.(*timerCtx).cancelcontext.WithTimeoutcontext.WithValuecontext.(*valueCtx).Stringcontext.stringifycontext.(*valueCtx).Valuecontext.initcontext.(*cancelCtx).Deadlinecontext.(*timerCtx).Donecontext.(*timerCtx).Errcontext.(*timerCtx).Valuecontext.(*valueCtx).Deadlinecontext.(*valueCtx).Donecontext.(*valueCtx).Errcontext.(*deadlineExceededError).Errorcontext.(*deadlineExceededError).Temporarycontext.(*deadlineExceededError).Timeoutcontext.cancelCtx.Deadlinetype..eq.context.valueCtxcontext.valueCtx.Deadlinecontext.valueCtx.Donecontext.valueCtx.Errstrings.(*Builder).Stringstrings.(*Builder).Lenstrings.(*Builder).Capstrings.(*Builder).Resetstrings.(*Builder).Growstrings.(*Builder).copyCheckstrings.(*Builder).growstrings.(*Builder).Writestrings.(*Builder).WriteBytestrings.(*Builder).WriteRunestrings.(*Builder).WriteStringstrings.(*Reader).Lenstrings.(*Reader).Sizestrings.(*Reader).Readstrings.(*Reader).ReadAtstrings.(*Reader).ReadBytestrings.(*Reader).UnreadBytestrings.(*Reader).ReadRunestrings.(*Reader).UnreadRunestrings.(*Reader).Seekstrings.(*Reader).WriteTostrings.(*Reader).Resetstrings.(*Replacer).buildstrings.makeSingleStringReplacerstrings.(*Replacer).Replacestrings.(*trieNode).addstrings.(*genericReplacer).lookupstrings.HasPrefixstrings.makeGenericReplacerstrings.(*appendSliceWriter).Writestrings.(*appendSliceWriter).WriteStringstrings.stringWriter.WriteStringstrings.(*genericReplacer).Replacestrings.(*genericReplacer).WriteStringstrings.getStringWriterstrings.(*singleStringReplacer).Replacestrings.(*stringFinder).nextstrings.maxstrings.(*singleStringReplacer).WriteStringstrings.(*byteReplacer).Replacestrings.(*byteReplacer).WriteStringstrings.(*byteStringReplacer).Replacestrings.(*byteStringReplacer).WriteStringstrings.makeStringFinderstrings.longestCommonSuffixstrings.explodestrings.Countstrings.LastIndexstrings.LastIndexByteinternal/bytealg.HashStrRevstrings.IndexRunestrings.IndexBytestrings.IndexAnystrings.makeASCIISetstrings.(*asciiSet).containsstrings.genSplitstrings.Fieldsstrings.FieldsFuncstrings.Joinstrings.Mapstrings.Repeatstrings.ToLowerstrings.TrimRightFuncstrings.TrimFuncstrings.TrimLeftFuncstrings.indexFuncstrings.lastIndexFuncstrings.makeCutsetFuncstrings.makeCutsetFunc.func3strings.makeCutsetFunc.func2strings.makeCutsetFunc.func1strings.Trimstrings.TrimLeftstrings.TrimRightstrings.TrimSpacestrings.Replacestrings.EqualFoldstrings.Indexinternal/bytealg.Cutoverstrings.(*Replacer).buildOnce-fmstrings.(*Replacer).buildOncetype..eq.strings.Readertype..eq.strings.singleStringReplacerstrings.(*stringWriter).WriteStringflag.(*boolValue).Setstrconv.ParseBoolflag.(*boolValue).Getflag.(*boolValue).Stringstrconv.FormatBoolflag.(*boolValue).IsBoolFlagflag.(*intValue).Setflag.numErrorflag.(*intValue).Getflag.(*intValue).Stringflag.(*int64Value).Setflag.(*int64Value).Getflag.(*int64Value).Stringflag.(*uintValue).Setflag.(*uintValue).Getflag.(*uintValue).Stringflag.(*uint64Value).Setflag.(*uint64Value).Getflag.(*uint64Value).Stringflag.(*stringValue).Setflag.(*stringValue).Getflag.(*stringValue).Stringflag.(*float64Value).Setflag.(*float64Value).Getflag.(*float64Value).Stringflag.(*durationValue).Setflag.(*durationValue).Getflag.(*durationValue).Stringflag.funcValue.Setflag.funcValue.Stringflag.sortFlagsflag.sortFlags.func1flag.(*FlagSet).Outputflag.(*FlagSet).Nameflag.(*FlagSet).ErrorHandlingflag.(*FlagSet).SetOutputflag.(*FlagSet).VisitAllflag.(*FlagSet).Visitflag.(*FlagSet).Lookupflag.(*FlagSet).Setflag.isZeroValueflag.UnquoteUsageflag.(*FlagSet).PrintDefaultsflag.(*FlagSet).PrintDefaults.func1strings.ReplaceAllflag.(*FlagSet).defaultUsageflag.(*FlagSet).NFlagflag.(*FlagSet).Argflag.(*FlagSet).NArgflag.(*FlagSet).Argsflag.(*FlagSet).BoolVarflag.newBoolValueflag.(*FlagSet).Boolflag.(*FlagSet).IntVarflag.newIntValueflag.(*FlagSet).Intflag.(*FlagSet).Int64Varflag.newInt64Valueflag.(*FlagSet).Int64flag.(*FlagSet).UintVarflag.newUintValueflag.(*FlagSet).Uintflag.(*FlagSet).Uint64Varflag.newUint64Valueflag.(*FlagSet).Uint64flag.(*FlagSet).StringVarflag.newStringValueflag.(*FlagSet).Stringflag.(*FlagSet).Float64Varflag.newFloat64Valueflag.(*FlagSet).Float64flag.(*FlagSet).DurationVarflag.newDurationValueflag.(*FlagSet).Durationflag.(*FlagSet).Funcflag.(*FlagSet).Varstrings.Containsflag.(*FlagSet).sprintfflag.(*FlagSet).failfflag.(*FlagSet).usageflag.(*FlagSet).parseOneflag.(*FlagSet).Parseflag.(*FlagSet).Parsedflag.init.0flag.commandLineUsageflag.(*FlagSet).Initflag.glob..func1flag.PrintDefaultsflag.initflag.NewFlagSetflag.(*FlagSet).defaultUsage-fmtype..eq.flag.Flagflag.(*funcValue).Setflag.(*funcValue).Stringtype..eq.[2]interface {}path/filepath.Basepath/filepath.initbytes.(*Buffer).Bytesbytes.(*Buffer).Stringbytes.(*Buffer).Lenbytes.(*Buffer).Capbytes.(*Buffer).Truncatebytes.(*Buffer).Resetbytes.(*Buffer).growbytes.(*Buffer).tryGrowByReslicebytes.(*Buffer).Growbytes.(*Buffer).Writebytes.(*Buffer).WriteStringbytes.(*Buffer).ReadFrombytes.makeSlicebytes.(*Buffer).WriteTobytes.(*Buffer).WriteBytebytes.(*Buffer).WriteRunebytes.(*Buffer).Readbytes.(*Buffer).emptybytes.(*Buffer).Nextbytes.(*Buffer).ReadBytebytes.(*Buffer).ReadRunebytes.(*Buffer).UnreadRunebytes.(*Buffer).UnreadBytebytes.(*Buffer).ReadBytesbytes.(*Buffer).readSlicebytes.IndexBytebytes.(*Buffer).ReadStringbytes.explodebytes.Countbytes.IndexRunebytes.IndexAnybytes.makeASCIISetbytes.(*asciiSet).containsbytes.genSplitbytes.Joinbytes.Mapbytes.ToLowerbytes.TrimRightFuncbytes.TrimFuncbytes.TrimLeftFuncbytes.indexFuncbytes.lastIndexFuncbytes.makeCutsetFuncbytes.makeCutsetFunc.func3bytes.makeCutsetFunc.func2bytes.makeCutsetFunc.func1bytes.Trimbytes.TrimRightbytes.TrimSpacebytes.Replacebytes.EqualFoldbytes.Indexbytes.Equalbytes.(*Reader).Lenbytes.(*Reader).Sizebytes.(*Reader).Readbytes.(*Reader).ReadAtbytes.(*Reader).ReadBytebytes.(*Reader).UnreadBytebytes.(*Reader).ReadRunebytes.(*Reader).UnreadRunebytes.(*Reader).Seekbytes.(*Reader).WriteTobytes.(*Reader).Resetbytes.makeSlice.func1bytes.inittext/template/parse.item.Stringtext/template/parse.(*lexer).nexttext/template/parse.(*lexer).peektext/template/parse.(*lexer).backuptext/template/parse.(*lexer).acceptstrings.ContainsRunetext/template/parse.(*lexer).acceptRuntext/template/parse.(*lexer).draintext/template/parse.lextext/template/parse.(*lexer).runtext/template/parse.lexTexttext/template/parse.hasLeftTrimMarkertext/template/parse.isSpacetext/template/parse.rightTrimLengthtext/template/parse.(*lexer).emittext/template/parse.(*lexer).ignoretext/template/parse.(*lexer).atRightDelimtext/template/parse.hasRightTrimMarkertext/template/parse.lexLeftDelimtext/template/parse.lexCommenttext/template/parse.leftTrimLengthtext/template/parse.(*lexer).errorftext/template/parse.lexRightDelimtext/template/parse.lexInsideActionunicode.IsPrinttext/template/parse.lexSpacetext/template/parse.lexIdentifiertext/template/parse.lexFieldtext/template/parse.lexVariabletext/template/parse.lexFieldOrVariabletext/template/parse.(*lexer).atTerminatortext/template/parse.lexChartext/template/parse.lexNumbertext/template/parse.(*lexer).scanNumbertext/template/parse.lexQuotetext/template/parse.lexRawQuotetext/template/parse.isAlphaNumericunicode.IsLetterunicode.IsDigittext/template/parse.Pos.Positiontext/template/parse.NodeType.Typetext/template/parse.(*ListNode).treetext/template/parse.(*ListNode).Stringtext/template/parse.(*ListNode).writeTotext/template/parse.(*ListNode).CopyListtext/template/parse.(*Tree).newListtext/template/parse.(*ListNode).appendtext/template/parse.(*ListNode).Copytext/template/parse.(*TextNode).Stringtext/template/parse.(*TextNode).writeTotext/template/parse.(*TextNode).treetext/template/parse.(*TextNode).Copytext/template/parse.(*CommentNode).Stringtext/template/parse.(*CommentNode).writeTotext/template/parse.(*CommentNode).treetext/template/parse.(*CommentNode).Copytext/template/parse.(*PipeNode).Stringtext/template/parse.(*PipeNode).writeTotext/template/parse.(*PipeNode).treetext/template/parse.(*PipeNode).CopyPipetext/template/parse.(*Tree).newPipelinetext/template/parse.(*VariableNode).Copytext/template/parse.(*PipeNode).appendtext/template/parse.(*PipeNode).Copytext/template/parse.(*ActionNode).Stringtext/template/parse.(*ActionNode).writeTotext/template/parse.(*ActionNode).treetext/template/parse.(*ActionNode).Copytext/template/parse.(*Tree).newActiontext/template/parse.(*CommandNode).Stringtext/template/parse.(*CommandNode).writeTotext/template/parse.(*CommandNode).treetext/template/parse.(*CommandNode).Copytext/template/parse.(*Tree).newCommandtext/template/parse.(*CommandNode).appendtext/template/parse.(*IdentifierNode).SetPostext/template/parse.(*IdentifierNode).SetTreetext/template/parse.(*IdentifierNode).Stringtext/template/parse.(*IdentifierNode).writeTotext/template/parse.(*IdentifierNode).treetext/template/parse.(*IdentifierNode).Copytext/template/parse.NewIdentifiertext/template/parse.(*VariableNode).Stringtext/template/parse.(*VariableNode).writeTotext/template/parse.(*VariableNode).treetext/template/parse.(*DotNode).Typetext/template/parse.(*DotNode).Stringtext/template/parse.(*DotNode).writeTotext/template/parse.(*DotNode).treetext/template/parse.(*DotNode).Copytext/template/parse.(*Tree).newDottext/template/parse.(*NilNode).Typetext/template/parse.(*NilNode).Stringtext/template/parse.(*NilNode).writeTotext/template/parse.(*NilNode).treetext/template/parse.(*NilNode).Copytext/template/parse.(*Tree).newNiltext/template/parse.(*FieldNode).Stringtext/template/parse.(*FieldNode).writeTotext/template/parse.(*FieldNode).treetext/template/parse.(*FieldNode).Copytext/template/parse.(*ChainNode).Addtext/template/parse.(*ChainNode).Stringtext/template/parse.(*ChainNode).writeTotext/template/parse.(*ChainNode).treetext/template/parse.(*ChainNode).Copytext/template/parse.(*BoolNode).Stringtext/template/parse.(*BoolNode).writeTotext/template/parse.(*BoolNode).treetext/template/parse.(*BoolNode).Copytext/template/parse.(*Tree).newBooltext/template/parse.(*Tree).newNumbertext/template/parse.(*NumberNode).simplifyComplexstrings.ContainsAnyfmt.Sscantext/template/parse.(*NumberNode).Stringtext/template/parse.(*NumberNode).writeTotext/template/parse.(*NumberNode).treetext/template/parse.(*NumberNode).Copytext/template/parse.(*StringNode).Stringtext/template/parse.(*StringNode).writeTotext/template/parse.(*StringNode).treetext/template/parse.(*StringNode).Copytext/template/parse.(*Tree).newStringtext/template/parse.(*endNode).Stringtext/template/parse.(*endNode).writeTotext/template/parse.(*endNode).treetext/template/parse.(*endNode).Copytext/template/parse.(*Tree).newEndtext/template/parse.(*elseNode).Typetext/template/parse.(*elseNode).Stringtext/template/parse.(*elseNode).writeTotext/template/parse.(*elseNode).treetext/template/parse.(*elseNode).Copytext/template/parse.(*Tree).newElsetext/template/parse.(*BranchNode).Stringtext/template/parse.(*BranchNode).writeTotext/template/parse.(*BranchNode).treetext/template/parse.(*BranchNode).Copytext/template/parse.(*Tree).newWithtext/template/parse.(*Tree).newRangetext/template/parse.(*Tree).newIftext/template/parse.(*IfNode).Copytext/template/parse.(*RangeNode).Copytext/template/parse.(*WithNode).Copytext/template/parse.(*TemplateNode).Stringtext/template/parse.(*TemplateNode).writeTotext/template/parse.(*TemplateNode).treetext/template/parse.(*TemplateNode).Copytext/template/parse.(*Tree).newTemplatetext/template/parse.(*Tree).Copytext/template/parse.Parsetext/template/parse.Newtext/template/parse.(*Tree).ErrorContexttext/template/parse.(*Tree).errorftext/template/parse.(*Tree).expecttext/template/parse.(*Tree).nextNonSpacetext/template/parse.(*Tree).nexttext/template/parse.(*lexer).nextItemtext/template/parse.(*Tree).expectOneOftext/template/parse.(*Tree).unexpectedstrings.HasSuffixtext/template/parse.(*Tree).recovertext/template/parse.(*Tree).stopParsetext/template/parse.(*Tree).Parsetext/template/parse.(*Tree).startParsetext/template/parse.(*Tree).addtext/template/parse.IsEmptyTreetext/template/parse.(*Tree).parsetext/template/parse.(*Tree).peektext/template/parse.(*Tree).backup2text/template/parse.(*Tree).parseDefinitiontext/template/parse.(*Tree).errortext/template/parse.(*Tree).itemListtext/template/parse.(*Tree).peekNonSpacetext/template/parse.(*Tree).backuptext/template/parse.(*Tree).textOrActiontext/template/parse.(*Tree).newTexttext/template/parse.(*Tree).newCommenttext/template/parse.(*Tree).clearActionLinetext/template/parse.(*Tree).actiontext/template/parse.(*Tree).endControltext/template/parse.(*Tree).pipelinetext/template/parse.(*Tree).newVariablestrings.Splittext/template/parse.(*Tree).backup3text/template/parse.(*Tree).checkPipelinetext/template/parse.(*Tree).parseControltext/template/parse.(*Tree).ifControltext/template/parse.(*Tree).rangeControltext/template/parse.(*Tree).withControltext/template/parse.(*Tree).elseControltext/template/parse.(*Tree).blockControltext/template/parse.(*Tree).templateControltext/template/parse.(*Tree).parseTemplateNametext/template/parse.(*Tree).commandtext/template/parse.(*Tree).operandtext/template/parse.(*Tree).newChaintext/template/parse.(*Tree).newFieldtext/template/parse.(*Tree).termtext/template/parse.(*Tree).hasFunctiontext/template/parse.(*Tree).popVarstext/template/parse.(*Tree).useVartext/template/parse.inittext/template/parse.(*ListNode).Positiontext/template/parse.(*ListNode).Typetext/template/parse.(*TextNode).Positiontext/template/parse.(*TextNode).Typetext/template/parse.(*CommentNode).Positiontext/template/parse.(*CommentNode).Typetext/template/parse.(*PipeNode).Positiontext/template/parse.(*PipeNode).Typetext/template/parse.(*ActionNode).Positiontext/template/parse.(*ActionNode).Typetext/template/parse.(*CommandNode).Positiontext/template/parse.(*CommandNode).Typetext/template/parse.(*IdentifierNode).Positiontext/template/parse.(*IdentifierNode).Typetext/template/parse.(*VariableNode).Positiontext/template/parse.(*VariableNode).Typetext/template/parse.(*DotNode).Positiontext/template/parse.(*NilNode).Positiontext/template/parse.(*FieldNode).Positiontext/template/parse.(*FieldNode).Typetext/template/parse.(*ChainNode).Positiontext/template/parse.(*ChainNode).Typetext/template/parse.(*BoolNode).Positiontext/template/parse.(*BoolNode).Typetext/template/parse.(*NumberNode).Positiontext/template/parse.(*NumberNode).Typetext/template/parse.(*StringNode).Positiontext/template/parse.(*StringNode).Typetext/template/parse.(*endNode).Positiontext/template/parse.(*endNode).Typetext/template/parse.(*elseNode).Positiontext/template/parse.(*IfNode).Positiontext/template/parse.(*IfNode).Stringtext/template/parse.(*IfNode).Typetext/template/parse.(*IfNode).treetext/template/parse.(*IfNode).writeTotext/template/parse.(*RangeNode).Positiontext/template/parse.(*RangeNode).Stringtext/template/parse.(*RangeNode).Typetext/template/parse.(*RangeNode).treetext/template/parse.(*RangeNode).writeTotext/template/parse.(*WithNode).Positiontext/template/parse.(*WithNode).Stringtext/template/parse.(*WithNode).Typetext/template/parse.(*WithNode).treetext/template/parse.(*WithNode).writeTotext/template/parse.(*TemplateNode).Positiontext/template/parse.(*TemplateNode).Typetext/template/parse.(*NodeType).Typetext/template/parse.(*Pos).Positiontext/template/parse.ListNode.Positiontext/template/parse.ListNode.Typetype..eq.text/template/parse.itemtext/template/parse.(*item).Stringtype..eq.text/template/parse.lexertype..eq.[3]text/template/parse.itemtext/template/parse.VariableNode.Positiontext/template/parse.VariableNode.Typetext/template/parse.CommandNode.Positiontext/template/parse.CommandNode.Typetext/template/parse.PipeNode.Positiontext/template/parse.PipeNode.Typetype..eq.text/template/parse.BoolNodetext/template/parse.BoolNode.Positiontext/template/parse.BoolNode.Typetext/template/parse.ChainNode.Positiontext/template/parse.ChainNode.Typetype..eq.text/template/parse.CommentNodetext/template/parse.CommentNode.Positiontext/template/parse.CommentNode.Typetext/template/parse.DotNode.Positiontext/template/parse.elseNode.Positiontext/template/parse.endNode.Positiontext/template/parse.endNode.Typetext/template/parse.FieldNode.Positiontext/template/parse.FieldNode.Typetext/template/parse.(*BranchNode).Positiontext/template/parse.(*BranchNode).Typetext/template/parse.BranchNode.Positiontext/template/parse.BranchNode.Typetext/template/parse.IfNode.Positiontext/template/parse.IfNode.Typetext/template/parse.NilNode.Positiontype..eq.text/template/parse.NumberNodetext/template/parse.NumberNode.Positiontext/template/parse.NumberNode.Typetext/template/parse.RangeNode.Positiontext/template/parse.RangeNode.Typetype..eq.text/template/parse.StringNodetext/template/parse.StringNode.Positiontext/template/parse.StringNode.Typetype..eq.text/template/parse.TemplateNodetext/template/parse.TemplateNode.Positiontext/template/parse.TemplateNode.Typetext/template/parse.TextNode.Positiontext/template/parse.TextNode.Typetext/template/parse.WithNode.Positiontext/template/parse.WithNode.Typetext/template/parse.ActionNode.Positiontext/template/parse.ActionNode.Typetype..eq.text/template/parse.IdentifierNodetext/template/parse.IdentifierNode.Positiontext/template/parse.IdentifierNode.Typenet/url.(*Error).Unwrapnet/url.(*Error).Errornet/url.(*Error).Timeoutnet/url.(*Error).Temporarynet/url.EscapeError.Errornet/url.InvalidHostError.Errornet/url.shouldEscapenet/url.unescapenet/url.ishexnet/url.unhexnet/url.escapenet/url.(*Userinfo).Usernamenet/url.(*Userinfo).Passwordnet/url.(*Userinfo).Stringnet/url.getSchemenet/url.splitnet/url.Parsenet/url.parsenet/url.stringContainsCTLBytenet/url.parseAuthoritynet/url.UserPasswordnet/url.Usernet/url.parseHostnet/url.(*URL).setPathnet/url.(*URL).EscapedPathnet/url.validEncodednet/url.(*URL).setFragmentnet/url.(*URL).EscapedFragmentnet/url.validOptionalPortnet/url.(*URL).Stringnet/url.(*URL).Redactednet/url.Values.Getnet/url.Values.Setnet/url.Values.Addnet/url.Values.Delnet/url.Values.Hasnet/url.parseQuerynet/url.QueryUnescapenet/url.Values.Encodesort.Stringsnet/url.QueryEscapenet/url.resolvePathnet/url.(*URL).IsAbsnet/url.(*URL).Parsenet/url.(*URL).ResolveReferencenet/url.(*URL).Querynet/url.ParseQuerynet/url.(*URL).RequestURInet/url.(*URL).Hostnamenet/url.(*URL).Portnet/url.splitHostPortnet/url.(*URL).MarshalBinarynet/url.(*URL).UnmarshalBinarynet/url.validUserinfotype..eq.net/url.Errornet/url.(*EscapeError).Errornet/url.(*InvalidHostError).Errortype..eq.net/url.Userinfotype..eq.net/url.URLnet/url.(*Values).Addnet/url.(*Values).Delnet/url.(*Values).Encodenet/url.(*Values).Getnet/url.(*Values).Hasnet/url.(*Values).Settext/template.(*state).poptext/template.(*state).setVartext/template.(*state).marktext/template.(*state).varValuetext/template.ExecError.Errortext/template.ExecError.Unwraptext/template.(*state).errorftext/template.(*Template).Nametext/template.doublePercenttext/template.errRecovertext/template.(*Template).ExecuteTemplatetext/template.(*Template).Executetext/template.(*Template).executetext/template.(*state).walktext/template.(*state).attext/template.(*state).writeErrortext/template.(*state).walkIfOrWithtext/template.isTruetext/template.(*state).walkRangetext/template.(*state).walkRange.func1text/template.(*state).setTopVartext/template.(*state).walkTemplatetext/template.(*state).evalPipelinetext/template.(*state).pushtext/template.(*state).evalCommandtext/template.(*state).notAFunctiontext/template.(*state).idealConstanttext/template.isRuneInttext/template.isHexInttext/template.(*state).evalFieldNodetext/template.(*state).evalChainNodetext/template.(*state).evalVariableNodetext/template.(*state).evalFieldChaintext/template.(*state).evalFunctiontext/template.(*state).evalFieldtext/template.(*state).evalCalltext/template.(*state).validateTypetext/template.canBeNilreflect.PtrTotext/template.(*state).evalArgtext/template.(*state).evalBooltext/template.(*state).evalStringtext/template.(*state).evalIntegertext/template.(*state).evalUnsignedIntegertext/template.(*state).evalFloattext/template.(*state).evalComplextext/template.(*state).evalEmptyInterfacetext/template.indirecttext/template.indirectInterfacetext/template.(*state).printValuetext/template.printableValuetext/template.builtinFuncstext/template.addValueFuncstext/template.addFuncstext/template.goodFunctext/template.goodNametext/template.findFunctiontext/template.prepareArgtext/template.intLiketext/template.indexArgtext/template.indextext/template.slicetext/template.lengthtext/template.calltext/template.safeCalltext/template.safeCall.func1text/template.truthtext/template.andtext/template.ortext/template.nottext/template.eqtext/template.basicKindtext/template.netext/template.lttext/template.letext/template.gttext/template.getext/template.HTMLEscapetext/template.HTMLEscapeStringtext/template.HTMLEscapertext/template.JSEscapetext/template.jsIsSpecialtext/template.JSEscapeStringstrings.IndexFunctext/template.JSEscapertext/template.URLQueryEscapertext/template.evalArgstext/template.(*Template).AddParseTreetext/template.(*Template).inittext/template.(*Template).Newtext/template.(*Template).Funcstext/template.(*Template).Lookuptext/template.(*Template).Parsetext/template.builtinstext/template.(*Template).associatetext/template.builtinFuncs.func1text/template.createValueFuncstext/template.inittype..eq.text/template.ExecErrortext/template.(*ExecError).Errortext/template.(*ExecError).Unwraptype..eq.text/template.Templatetype..eq.text/template.variabletype..eq.[1]text/template.variablehtml.populateMapshtml.unescapeEntityhtml.UnescapeStringhtml.initstrings.NewReplacerregexp/syntax.Compileregexp/syntax.(*compiler).initregexp/syntax.(*compiler).instregexp/syntax.patchList.patchregexp/syntax.(*compiler).compileregexp/syntax.(*compiler).nopregexp/syntax.(*compiler).emptyregexp/syntax.(*compiler).capregexp/syntax.(*compiler).catregexp/syntax.(*compiler).plusregexp/syntax.(*compiler).altregexp/syntax.patchList.appendregexp/syntax.(*compiler).questregexp/syntax.(*compiler).loopregexp/syntax.(*compiler).starregexp/syntax.(*compiler).runeregexp/syntax.(*Error).Errorregexp/syntax.ErrorCode.Stringregexp/syntax.(*parser).pushregexp/syntax.(*parser).maybeConcatregexp/syntax.(*parser).reuseregexp/syntax.(*parser).literalregexp/syntax.(*parser).newRegexpregexp/syntax.minFoldRuneregexp/syntax.(*parser).opregexp/syntax.(*parser).repeatregexp/syntax.repeatIsValidregexp/syntax.(*parser).concatregexp/syntax.(*parser).alternateregexp/syntax.cleanAltregexp/syntax.(*parser).collapseregexp/syntax.(*parser).factorregexp/syntax.(*parser).leadingStringregexp/syntax.(*parser).leadingRegexpregexp/syntax.isCharClassregexp/syntax.(*parser).removeLeadingStringregexp/syntax.(*parser).removeLeadingRegexpregexp/syntax.literalRegexpregexp/syntax.Parseregexp/syntax.(*parser).parseRepeatregexp/syntax.(*parser).parsePerlFlagsregexp/syntax.isValidCaptureNameregexp/syntax.isalnumregexp/syntax.(*parser).parseIntregexp/syntax.(*parser).parseVerticalBarregexp/syntax.mergeCharClassregexp/syntax.matchRuneregexp/syntax.(*parser).swapVerticalBarregexp/syntax.(*parser).parseRightParenregexp/syntax.(*parser).parseEscaperegexp/syntax.unhexregexp/syntax.(*parser).parseClassCharregexp/syntax.(*parser).parsePerlClassEscaperegexp/syntax.(*parser).parseNamedClassregexp/syntax.(*parser).appendGroupregexp/syntax.(*parser).parseUnicodeClassregexp/syntax.unicodeTableregexp/syntax.(*parser).parseClassregexp/syntax.cleanClassregexp/syntax.appendLiteralregexp/syntax.appendRangeregexp/syntax.appendFoldedRangeregexp/syntax.appendClassregexp/syntax.appendFoldedClassregexp/syntax.appendNegatedClassregexp/syntax.appendTableregexp/syntax.appendNegatedTableregexp/syntax.negateClassregexp/syntax.ranges.Lessregexp/syntax.ranges.Lenregexp/syntax.ranges.Swapregexp/syntax.checkUTF8regexp/syntax.nextRuneregexp/syntax.InstOp.Stringregexp/syntax.(*Prog).Stringregexp/syntax.(*Prog).Prefixregexp/syntax.(*Prog).skipNopregexp/syntax.(*Inst).opregexp/syntax.(*Prog).StartCondregexp/syntax.(*Inst).MatchRuneregexp/syntax.(*Inst).MatchRunePosregexp/syntax.(*Inst).MatchEmptyWidthregexp/syntax.IsWordCharregexp/syntax.(*Inst).Stringregexp/syntax.bwregexp/syntax.dumpProgregexp/syntax.dumpInstregexp/syntax.u32strconv.QuoteToASCIIregexp/syntax.(*Regexp).Equalregexp/syntax.(*Regexp).MaxCapregexp/syntax.(*Regexp).CapNamesregexp/syntax.(*Regexp).capNamesregexp/syntax.(*Regexp).Simplifyregexp/syntax.simplify1regexp/syntax.initregexp/syntax.(*ErrorCode).Stringtype..eq.regexp/syntax.Errorregexp/syntax.(*InstOp).Stringregexp/syntax.(*ranges).Lenregexp/syntax.(*ranges).Lessregexp/syntax.(*ranges).Swapregexp.freeBitStateregexp.(*inputs).clearregexp.(*bitState).resetregexp.(*Regexp).tryBacktrackregexp.(*bitState).pushregexp.(*bitState).shouldVisitregexp.(*Regexp).backtrackregexp.newBitStateregexp.(*inputs).initregexp.(*inputs).newBytesregexp.(*inputs).newStringregexp.(*machine).initregexp.lazyFlag.matchregexp.(*machine).matchregexp.newLazyFlagregexp.(*machine).clearregexp.(*machine).stepregexp.(*machine).addregexp.(*machine).allocregexp.freeOnePassMachineregexp.(*Regexp).doOnePassregexp.newOnePassMachineregexp.(*inputs).newReaderregexp.(*Regexp).doExecuteregexp.onePassPrefixregexp.iopregexp.onePassNextregexp.mergeRuneSetsregexp.mergeRuneSets.func2regexp.mergeRuneSets.func1regexp.cleanupOnePassregexp.onePassCopyregexp.runeSlice.Lenregexp.runeSlice.Lessregexp.runeSlice.Swapregexp.makeOnePassregexp.newQueueregexp.(*queueOnePass).clearregexp.(*queueOnePass).insertregexp.(*queueOnePass).containsregexp.(*queueOnePass).insertNewregexp.(*queueOnePass).emptyregexp.(*queueOnePass).nextregexp.makeOnePass.func1regexp.compileOnePassregexp.(*Regexp).Stringregexp.(*Regexp).Copyregexp.(*Regexp).Longestregexp.compileregexp.maxBitStateLenregexp.shouldBacktrackregexp.(*Regexp).getregexp.(*Regexp).putregexp.minInputLenregexp.MustCompileregexp.Compileregexp.quoteregexp.(*Regexp).NumSubexpregexp.(*Regexp).SubexpNamesregexp.(*Regexp).SubexpIndexregexp.(*inputString).stepregexp.(*inputString).canCheckPrefixregexp.(*inputString).hasPrefixregexp.(*inputString).indexregexp.(*inputString).contextregexp.(*inputBytes).stepregexp.(*inputBytes).canCheckPrefixregexp.(*inputBytes).hasPrefixbytes.HasPrefixregexp.(*inputBytes).indexregexp.(*inputBytes).contextregexp.(*inputReader).stepregexp.(*inputReader).canCheckPrefixregexp.(*inputReader).hasPrefixregexp.(*inputReader).indexregexp.(*inputReader).contextregexp.(*Regexp).LiteralPrefixregexp.(*Regexp).MatchReaderregexp.(*Regexp).doMatchregexp.(*Regexp).MatchStringregexp.(*Regexp).Matchregexp.(*Regexp).ReplaceAllStringregexp.(*Regexp).ReplaceAllString.func1regexp.(*Regexp).ReplaceAllLiteralStringregexp.(*Regexp).ReplaceAllLiteralString.func1regexp.(*Regexp).ReplaceAllStringFuncregexp.(*Regexp).ReplaceAllStringFunc.func1regexp.(*Regexp).replaceAllregexp.(*Regexp).ReplaceAllregexp.(*Regexp).ReplaceAll.func1regexp.(*Regexp).ReplaceAllLiteralregexp.(*Regexp).ReplaceAllLiteral.func1regexp.(*Regexp).ReplaceAllFuncregexp.(*Regexp).ReplaceAllFunc.func1regexp.init.0regexp.(*Regexp).allMatchesregexp.(*Regexp).padregexp.(*Regexp).Findregexp.(*Regexp).FindIndexregexp.(*Regexp).FindStringregexp.(*Regexp).FindStringIndexregexp.(*Regexp).FindReaderIndexregexp.(*Regexp).FindSubmatchregexp.(*Regexp).Expandregexp.(*Regexp).ExpandStringregexp.(*Regexp).expandregexp.extractregexp.(*Regexp).FindSubmatchIndexregexp.(*Regexp).FindStringSubmatchregexp.(*Regexp).FindStringSubmatchIndexregexp.(*Regexp).FindReaderSubmatchIndexregexp.(*Regexp).FindAllregexp.(*Regexp).FindAll.func1regexp.(*Regexp).FindAllIndexregexp.(*Regexp).FindAllIndex.func1regexp.(*Regexp).FindAllStringregexp.(*Regexp).FindAllString.func1regexp.(*Regexp).FindAllStringIndexregexp.(*Regexp).FindAllStringIndex.func1regexp.(*Regexp).FindAllSubmatchregexp.(*Regexp).FindAllSubmatch.func1regexp.(*Regexp).FindAllSubmatchIndexregexp.(*Regexp).FindAllSubmatchIndex.func1regexp.(*Regexp).FindAllStringSubmatchregexp.(*Regexp).FindAllStringSubmatch.func1regexp.(*Regexp).FindAllStringSubmatchIndexregexp.(*Regexp).FindAllStringSubmatchIndex.func1regexp.(*Regexp).Splitregexp.(*onePassInst).MatchEmptyWidthregexp.(*onePassInst).MatchRuneregexp.(*onePassInst).MatchRunePosregexp.(*onePassInst).Stringtype..eq.regexp.entrytype..eq.regexp.inputReadertype..eq.regexp.jobregexp.(*runeSlice).Lenregexp.(*runeSlice).Lessregexp.(*runeSlice).Swapgithub.com/russross/blackfriday/v2.(*Markdown).blockgithub.com/russross/blackfriday/v2.(*Markdown).isPrefixHeadinggithub.com/russross/blackfriday/v2.(*Markdown).isEmptygithub.com/russross/blackfriday/v2.(*Markdown).codePrefixgithub.com/russross/blackfriday/v2.(*Markdown).quotePrefixgithub.com/russross/blackfriday/v2.(*Markdown).uliPrefixgithub.com/russross/blackfriday/v2.(*Markdown).dliPrefixgithub.com/russross/blackfriday/v2.(*Markdown).addBlockgithub.com/russross/blackfriday/v2.(*Markdown).closeUnmatchedBlocksgithub.com/russross/blackfriday/v2.(*Markdown).addChildgithub.com/russross/blackfriday/v2.NewNodegithub.com/russross/blackfriday/v2.(*Markdown).finalizegithub.com/russross/blackfriday/v2.(*Markdown).prefixHeadinggithub.com/russross/blackfriday/v2.skipChargithub.com/russross/blackfriday/v2.skipUntilChargithub.com/russross/blackfriday/v2.isBackslashEscapedgithub.com/russross/blackfriday/v2.(*Markdown).isUnderlinedHeadinggithub.com/russross/blackfriday/v2.(*Markdown).titleBlockbytes.Splitbytes.TrimPrefixgithub.com/russross/blackfriday/v2.(*Markdown).htmlgithub.com/russross/blackfriday/v2.(*Markdown).htmlFindTaggithub.com/russross/blackfriday/v2.isalnumgithub.com/russross/blackfriday/v2.islettergithub.com/russross/blackfriday/v2.finalizeHTMLBlockgithub.com/russross/blackfriday/v2.(*Markdown).htmlCommentgithub.com/russross/blackfriday/v2.(*Markdown).inlineHTMLCommentgithub.com/russross/blackfriday/v2.(*Markdown).htmlHrgithub.com/russross/blackfriday/v2.(*Markdown).htmlFindEndgithub.com/russross/blackfriday/v2.(*Markdown).isHRulegithub.com/russross/blackfriday/v2.isFenceLinegithub.com/russross/blackfriday/v2.isverticalspacegithub.com/russross/blackfriday/v2.isspacegithub.com/russross/blackfriday/v2.ishorizontalspacegithub.com/russross/blackfriday/v2.(*Markdown).fencedCodeBlockgithub.com/russross/blackfriday/v2.unescapeChargithub.com/russross/blackfriday/v2.unescapeStringgithub.com/russross/blackfriday/v2.finalizeCodeBlockgithub.com/russross/blackfriday/v2.(*Markdown).tablegithub.com/russross/blackfriday/v2.(*Node).Unlinkgithub.com/russross/blackfriday/v2.(*Markdown).tableHeadergithub.com/russross/blackfriday/v2.(*Markdown).tableRowgithub.com/russross/blackfriday/v2.(*Markdown).terminateBlockquotegithub.com/russross/blackfriday/v2.(*Markdown).quotegithub.com/russross/blackfriday/v2.(*Markdown).codegithub.com/russross/blackfriday/v2.(*Markdown).oliPrefixgithub.com/russross/blackfriday/v2.(*Markdown).listgithub.com/russross/blackfriday/v2.(*Markdown).listTypeChangedgithub.com/russross/blackfriday/v2.finalizeListgithub.com/russross/blackfriday/v2.endsWithBlankLinegithub.com/russross/blackfriday/v2.(*Markdown).listItemgithub.com/russross/blackfriday/v2.(*Markdown).renderParagraphgithub.com/russross/blackfriday/v2.(*Markdown).paragraphgithub.com/russross/blackfriday/v2.SanitizedAnchorNameunicode.IsNumbergithub.com/russross/blackfriday/v2.escapeEntitiesgithub.com/russross/blackfriday/v2.nodeIsEntitygithub.com/russross/blackfriday/v2.escLinkgithub.com/russross/blackfriday/v2.escapeHTMLgithub.com/russross/blackfriday/v2.NewHTMLRenderergithub.com/russross/blackfriday/v2.isRelativeLinkgithub.com/russross/blackfriday/v2.(*HTMLRenderer).ensureUniqueHeadingIDgithub.com/russross/blackfriday/v2.(*HTMLRenderer).addAbsPrefixgithub.com/russross/blackfriday/v2.appendLinkAttrsgithub.com/russross/blackfriday/v2.needSkipLinkgithub.com/russross/blackfriday/v2.isMailtogithub.com/russross/blackfriday/v2.appendLanguageAttrgithub.com/russross/blackfriday/v2.(*HTMLRenderer).taggithub.com/russross/blackfriday/v2.footnoteRefgithub.com/russross/blackfriday/v2.(*HTMLRenderer).outgithub.com/russross/blackfriday/v2.(*HTMLRenderer).outHRTaggithub.com/russross/blackfriday/v2.(*HTMLRenderer).RenderNodegithub.com/russross/blackfriday/v2.(*HTMLRenderer).crgithub.com/russross/blackfriday/v2.itemOpenCRgithub.com/russross/blackfriday/v2.footnoteItemgithub.com/russross/blackfriday/v2.footnoteReturnLinkgithub.com/russross/blackfriday/v2.skipParagraphTagsgithub.com/russross/blackfriday/v2.headingTagsFromLevelgithub.com/russross/blackfriday/v2.escapeAllHTMLgithub.com/russross/blackfriday/v2.cellAlignmentgithub.com/russross/blackfriday/v2.NodeType.Stringgithub.com/russross/blackfriday/v2.(*HTMLRenderer).RenderHeadergithub.com/russross/blackfriday/v2.(*HTMLRenderer).RenderFootergithub.com/russross/blackfriday/v2.(*HTMLRenderer).writeDocumentHeadergithub.com/russross/blackfriday/v2.(*HTMLRenderer).writeTOCgithub.com/russross/blackfriday/v2.(*HTMLRenderer).writeTOC.func1github.com/russross/blackfriday/v2.(*Markdown).inlinegithub.com/russross/blackfriday/v2.textgithub.com/russross/blackfriday/v2.emphasisgithub.com/russross/blackfriday/v2.codeSpangithub.com/russross/blackfriday/v2.maybeLineBreakgithub.com/russross/blackfriday/v2.lineBreakgithub.com/russross/blackfriday/v2.maybeImagegithub.com/russross/blackfriday/v2.maybeInlineFootnotegithub.com/russross/blackfriday/v2.linkgithub.com/russross/blackfriday/v2.isReferenceStyleLinkgithub.com/russross/blackfriday/v2.leftAnglegithub.com/russross/blackfriday/v2.stripMailtogithub.com/russross/blackfriday/v2.escapegithub.com/russross/blackfriday/v2.unescapeTextgithub.com/russross/blackfriday/v2.entitygithub.com/russross/blackfriday/v2.linkEndsWithEntitygithub.com/russross/blackfriday/v2.hasPrefixCaseInsensitivegithub.com/russross/blackfriday/v2.maybeAutoLinkgithub.com/russross/blackfriday/v2.autoLinkgithub.com/russross/blackfriday/v2.isEndOfLinkgithub.com/russross/blackfriday/v2.isSafeLinkgithub.com/russross/blackfriday/v2.tagLengthgithub.com/russross/blackfriday/v2.isMailtoAutoLinkgithub.com/russross/blackfriday/v2.helperFindEmphChargithub.com/russross/blackfriday/v2.helperEmphasisgithub.com/russross/blackfriday/v2.helperDoubleEmphasisgithub.com/russross/blackfriday/v2.helperTripleEmphasisgithub.com/russross/blackfriday/v2.(*Markdown).getRefgithub.com/russross/blackfriday/v2.(*Markdown).addExistingChildgithub.com/russross/blackfriday/v2.(*Node).canContaingithub.com/russross/blackfriday/v2.Newgithub.com/russross/blackfriday/v2.Rungithub.com/russross/blackfriday/v2.Run.func1github.com/russross/blackfriday/v2.Run.func3github.com/russross/blackfriday/v2.Run.func2github.com/russross/blackfriday/v2.(*Markdown).Parsegithub.com/russross/blackfriday/v2.(*Markdown).Parse.func1github.com/russross/blackfriday/v2.(*Markdown).parseRefsToASTgithub.com/russross/blackfriday/v2.(*Markdown).parseRefsToAST.func1github.com/russross/blackfriday/v2.isReferencegithub.com/russross/blackfriday/v2.scanLinkRefgithub.com/russross/blackfriday/v2.scanFootnotegithub.com/russross/blackfriday/v2.isIndentedgithub.com/russross/blackfriday/v2.ispunctgithub.com/russross/blackfriday/v2.slugifygithub.com/russross/blackfriday/v2.(*Node).Stringgithub.com/russross/blackfriday/v2.(*Node).AppendChildgithub.com/russross/blackfriday/v2.(*Node).InsertBeforegithub.com/russross/blackfriday/v2.(*Node).IsContainergithub.com/russross/blackfriday/v2.(*Node).IsLeafgithub.com/russross/blackfriday/v2.(*Node).Walkgithub.com/russross/blackfriday/v2.newNodeWalkergithub.com/russross/blackfriday/v2.(*nodeWalker).nextgithub.com/russross/blackfriday/v2.wordBoundarygithub.com/russross/blackfriday/v2.smartQuoteHelpergithub.com/russross/blackfriday/v2.(*SPRenderer).smartSingleQuotegithub.com/russross/blackfriday/v2.tolowergithub.com/russross/blackfriday/v2.(*SPRenderer).smartParensgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDashgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDashLatexgithub.com/russross/blackfriday/v2.(*SPRenderer).smartAmpVariantgithub.com/russross/blackfriday/v2.(*SPRenderer).smartAmpgithub.com/russross/blackfriday/v2.(*SPRenderer).smartAmp.func1github.com/russross/blackfriday/v2.(*SPRenderer).smartPeriodgithub.com/russross/blackfriday/v2.(*SPRenderer).smartBacktickgithub.com/russross/blackfriday/v2.(*SPRenderer).smartNumberGenericgithub.com/russross/blackfriday/v2.isdigitgithub.com/russross/blackfriday/v2.(*SPRenderer).smartNumbergithub.com/russross/blackfriday/v2.(*SPRenderer).smartDoubleQuoteVariantgithub.com/russross/blackfriday/v2.(*SPRenderer).smartLeftAnglegithub.com/russross/blackfriday/v2.NewSmartypantsRenderergithub.com/russross/blackfriday/v2.(*SPRenderer).Processgithub.com/russross/blackfriday/v2.initgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDoubleQuote-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDoubleQuotegithub.com/russross/blackfriday/v2.(*SPRenderer).smartAngledDoubleQuote-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartAngledDoubleQuotegithub.com/russross/blackfriday/v2.(*SPRenderer).smartSingleQuote-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartParens-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDash-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartDashLatex-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartPeriod-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartNumber-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartNumberGeneric-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartLeftAngle-fmgithub.com/russross/blackfriday/v2.(*SPRenderer).smartBacktick-fmtype..eq.github.com/russross/blackfriday/v2.HTMLRendererParametersgithub.com/russross/blackfriday/v2.(*NodeType).Stringtype..eq.github.com/russross/blackfriday/v2.HeadingDatatype..eq.github.com/russross/blackfriday/v2.TableCellDatatype..eq.github.com/russross/blackfriday/v2.Referencegithub.com/cpuguy83/go-md2man/v2/md2man.Rendergithub.com/cpuguy83/go-md2man/v2/md2man.NewRoffRenderergithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).GetExtensionsgithub.com/cpuguy83/go-md2man/v2/md2man.Render.func2github.com/cpuguy83/go-md2man/v2/md2man.Render.func1github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderHeadergithub.com/cpuguy83/go-md2man/v2/md2man.outgithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderFootergithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderNodegithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleHeadinggithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleListgithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleItemgithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleTablegithub.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleTableCellgithub.com/cpuguy83/go-md2man/v2/md2man.nodeLiteralSizegithub.com/cpuguy83/go-md2man/v2/md2man.countColumnsgithub.com/cpuguy83/go-md2man/v2/md2man.countColumns.func1github.com/cpuguy83/go-md2man/v2/md2man.escapeSpecialCharsio/ioutil.initencoding/binary.bigEndian.Uint16encoding/binary.bigEndian.PutUint16encoding/binary.bigEndian.Uint32encoding/binary.bigEndian.PutUint32encoding/binary.bigEndian.Uint64encoding/binary.bigEndian.PutUint64encoding/binary.bigEndian.Stringencoding/binary.bigEndian.GoStringencoding/binary.Writereflect.Indirectencoding/binary.dataSizeencoding/binary.sizeofencoding/binary.(*encoder).valueencoding/binary.(*encoder).uint32encoding/binary.(*encoder).uint64encoding/binary.(*encoder).int8encoding/binary.(*encoder).uint8encoding/binary.(*encoder).int16encoding/binary.(*encoder).uint16encoding/binary.(*encoder).int32encoding/binary.(*encoder).int64encoding/binary.(*encoder).boolencoding/binary.(*encoder).skipencoding/binary.intDataSizeencoding/binary.initencoding/binary.(*bigEndian).GoStringencoding/binary.(*bigEndian).PutUint16encoding/binary.(*bigEndian).PutUint32encoding/binary.(*bigEndian).PutUint64encoding/binary.(*bigEndian).Stringencoding/binary.(*bigEndian).Uint16encoding/binary.(*bigEndian).Uint32encoding/binary.(*bigEndian).Uint64encoding/base64.NewEncodingencoding/base64.Encoding.WithPaddingencoding/base64.Encoding.Strictencoding/base64.(*Encoding).Encodeencoding/base64.(*Encoding).EncodeToStringencoding/base64.(*Encoding).EncodedLenencoding/base64.(*encoder).Writeencoding/base64.(*encoder).Closeencoding/base64.CorruptInputError.Errorencoding/base64.(*Encoding).decodeQuantumencoding/base64.(*Encoding).DecodeStringencoding/base64.(*Encoding).DecodedLenencoding/base64.(*Encoding).Decodeencoding/base64.assemble64encoding/base64.assemble32encoding/base64.initencoding/base64.(*CorruptInputError).Errortype..eq.encoding/base64.Encodingencoding/base64.(*Encoding).Strictencoding/base64.(*Encoding).WithPaddingtype..eq.encoding/base64.encoderunicode/utf16.Decodeunicode/utf16.DecodeRuneencoding/json.Unmarshalencoding/json.(*decodeState).initencoding/json.(*UnmarshalTypeError).Errorencoding/json.(*InvalidUnmarshalError).Errorencoding/json.(*decodeState).unmarshalencoding/json.(*scanner).resetencoding/json.Number.Stringencoding/json.Number.Float64encoding/json.Number.Int64encoding/json.(*decodeState).addErrorContextencoding/json.(*decodeState).skipencoding/json.(*decodeState).scanNextencoding/json.(*decodeState).scanWhileencoding/json.(*decodeState).rescanLiteralencoding/json.(*decodeState).valueencoding/json.(*decodeState).readIndexencoding/json.(*decodeState).valueQuotedencoding/json.indirectencoding/json.(*decodeState).arrayencoding/json.(*decodeState).saveErrorencoding/json.(*decodeState).objectreflect.MakeMapencoding/json.(*decodeState).convertNumberencoding/json.(*decodeState).literalStoreencoding/json.(*decodeState).valueInterfaceencoding/json.(*decodeState).arrayInterfaceencoding/json.(*decodeState).objectInterfaceencoding/json.unquoteencoding/json.(*decodeState).literalInterfaceencoding/json.getu4encoding/json.unquoteBytesunicode/utf16.IsSurrogateencoding/json.Marshalencoding/json.MarshalIndentencoding/json.HTMLEscapeencoding/json.(*UnsupportedTypeError).Errorencoding/json.(*UnsupportedValueError).Errorencoding/json.(*MarshalerError).Errorencoding/json.(*MarshalerError).Unwrapencoding/json.newEncodeStateencoding/json.(*encodeState).marshalencoding/json.(*encodeState).marshal.func1encoding/json.isEmptyValueencoding/json.(*encodeState).reflectValueencoding/json.valueEncoderencoding/json.typeEncoderencoding/json.typeEncoder.func1encoding/json.newTypeEncoderencoding/json.newCondAddrEncoderencoding/json.invalidValueEncoderencoding/json.marshalerEncoderencoding/json.(*encodeState).errorencoding/json.addrMarshalerEncoderencoding/json.textMarshalerEncoderencoding/json.addrTextMarshalerEncoderencoding/json.boolEncoderencoding/json.intEncoderencoding/json.uintEncoderencoding/json.floatEncoder.encodeencoding/json.stringEncoderencoding/json.isValidNumberencoding/json.interfaceEncoderencoding/json.unsupportedTypeEncoderencoding/json.structEncoder.encodeencoding/json.newStructEncoderencoding/json.mapEncoder.encodeencoding/json.mapEncoder.encode.func1encoding/json.newMapEncoderencoding/json.encodeByteSliceencoding/base64.NewEncoderencoding/json.sliceEncoder.encodeencoding/json.newSliceEncoderencoding/json.arrayEncoder.encodeencoding/json.newArrayEncoderencoding/json.ptrEncoder.encodeencoding/json.newPtrEncoderencoding/json.condAddrEncoder.encodeencoding/json.isValidTagencoding/json.typeByIndexencoding/json.(*reflectWithString).resolveencoding/json.(*encodeState).stringencoding/json.(*encodeState).stringBytesencoding/json.byIndex.Lenencoding/json.byIndex.Swapencoding/json.byIndex.Lessencoding/json.typeFieldsencoding/json.dominantFieldencoding/json.typeFields.func1encoding/json.cachedTypeFieldsencoding/json.foldFuncencoding/json.equalFoldRightencoding/json.asciiEqualFoldencoding/json.simpleLetterEqualFoldencoding/json.compactencoding/json.newlineencoding/json.Indentencoding/json.checkValidencoding/json.(*SyntaxError).Errorencoding/json.newScannerencoding/json.freeScannerencoding/json.(*scanner).eofencoding/json.(*scanner).pushParseStateencoding/json.(*scanner).errorencoding/json.(*scanner).popParseStateencoding/json.stateBeginValueOrEmptyencoding/json.isSpaceencoding/json.stateBeginValueencoding/json.stateBeginStringOrEmptyencoding/json.stateBeginStringencoding/json.stateEndValueencoding/json.stateEndTopencoding/json.stateInStringencoding/json.stateInStringEscencoding/json.stateInStringEscUencoding/json.stateInStringEscU1encoding/json.stateInStringEscU12encoding/json.stateInStringEscU123encoding/json.stateNegencoding/json.state1encoding/json.state0encoding/json.stateDotencoding/json.stateDot0encoding/json.stateEencoding/json.stateESignencoding/json.stateE0encoding/json.stateTencoding/json.stateTrencoding/json.stateTruencoding/json.stateFencoding/json.stateFaencoding/json.stateFalencoding/json.stateFalsencoding/json.stateNencoding/json.stateNuencoding/json.stateNulencoding/json.stateErrorencoding/json.quoteCharencoding/json.(*Decoder).UseNumberencoding/json.(*Decoder).DisallowUnknownFieldsencoding/json.(*Decoder).Decodeencoding/json.(*Decoder).tokenValueAllowedencoding/json.(*Decoder).tokenValueEndencoding/json.(*Decoder).InputOffsetencoding/json.(*Decoder).Bufferedbytes.NewReaderencoding/json.(*Decoder).readValueencoding/json.(*Decoder).refillencoding/json.nonSpaceencoding/json.(*Encoder).Encodeencoding/json.RawMessage.MarshalJSONencoding/json.(*RawMessage).UnmarshalJSONencoding/json.(*Decoder).tokenPrepareForDecodeencoding/json.Delim.Stringencoding/json.(*Decoder).Tokenencoding/json.(*Decoder).tokenErrorencoding/json.(*Decoder).Moreencoding/json.(*Decoder).peekencoding/json.parseTagencoding/json.tagOptions.Containsencoding/json.glob..func1encoding/json.initencoding/json.wrap·1encoding/json.wrap·2encoding/json.wrap·3encoding/json.floatEncoder.encode-fmencoding/json.structEncoder.encode-fmencoding/json.mapEncoder.encode-fmencoding/json.sliceEncoder.encode-fmencoding/json.arrayEncoder.encode-fmencoding/json.ptrEncoder.encode-fmencoding/json.condAddrEncoder.encode-fmencoding/json.(*RawMessage).MarshalJSONencoding/json.(*encodeState).Bytesencoding/json.(*encodeState).Capencoding/json.(*encodeState).Growencoding/json.(*encodeState).Lenencoding/json.(*encodeState).Nextencoding/json.(*encodeState).Readencoding/json.(*encodeState).ReadByteencoding/json.(*encodeState).ReadBytesencoding/json.(*encodeState).ReadFromencoding/json.(*encodeState).ReadRuneencoding/json.(*encodeState).ReadStringencoding/json.(*encodeState).Resetencoding/json.(*encodeState).Stringencoding/json.(*encodeState).Truncateencoding/json.(*encodeState).UnreadByteencoding/json.(*encodeState).UnreadRuneencoding/json.(*encodeState).Writeencoding/json.(*encodeState).WriteByteencoding/json.(*encodeState).WriteRuneencoding/json.(*encodeState).WriteStringencoding/json.(*encodeState).WriteToencoding/json.(*Delim).Stringtype..eq.encoding/json.MarshalerErrorencoding/json.(*Number).Float64encoding/json.(*Number).Int64encoding/json.(*Number).Stringtype..eq.encoding/json.SyntaxErrortype..eq.encoding/json.UnmarshalTypeErrortype..eq.encoding/json.UnsupportedValueErrorencoding/json.(*byIndex).Lenencoding/json.(*byIndex).Lessencoding/json.(*byIndex).Swapencoding/json.(*jsonError).Errorencoding/json.jsonError.Errortype..eq.encoding/json.reflectWithStringtext/tabwriter.(*Writer).addLinetext/tabwriter.(*Writer).resettext/tabwriter.(*Writer).Inittext/tabwriter.(*Writer).write0text/tabwriter.(*Writer).writeNtext/tabwriter.(*Writer).writePaddingtext/tabwriter.(*Writer).writeLinestext/tabwriter.(*Writer).formattext/tabwriter.(*Writer).endEscapetext/tabwriter.(*Writer).updateWidthtext/tabwriter.(*Writer).handlePanictext/tabwriter.(*Writer).Flushtext/tabwriter.(*Writer).flushtext/tabwriter.(*Writer).flushNoDeferstext/tabwriter.(*Writer).terminateCelltext/tabwriter.(*Writer).Writetext/tabwriter.(*Writer).appendtext/tabwriter.(*Writer).startEscapetype..eq.text/tabwriter.cellgithub.com/urfave/cli/v2.compileTimegithub.com/urfave/cli/v2.(*App).Setupgithub.com/urfave/cli/v2.(*App).appendCommandgithub.com/urfave/cli/v2.(*App).appendFlaggithub.com/urfave/cli/v2.newCommandCategoriesgithub.com/urfave/cli/v2.(*App).newFlagSetgithub.com/urfave/cli/v2.(*App).useShortOptionHandlinggithub.com/urfave/cli/v2.(*App).Runcontext.Backgroundgithub.com/urfave/cli/v2.(*App).RunContextgithub.com/urfave/cli/v2.checkShellCompleteFlaggithub.com/urfave/cli/v2.NewContextgithub.com/urfave/cli/v2.(*Context).Argsgithub.com/urfave/cli/v2.ShowVersiongithub.com/urfave/cli/v2.(*App).RunContext.func1github.com/urfave/cli/v2.newMultiErrorgithub.com/urfave/cli/v2.(*App).RunAndExitOnErrorgithub.com/urfave/cli/v2.(*App).RunAsSubcommandgithub.com/urfave/cli/v2.(*App).RunAsSubcommand.func1github.com/urfave/cli/v2.(*App).Commandgithub.com/urfave/cli/v2.(*App).VisibleCategoriesgithub.com/urfave/cli/v2.(*App).VisibleCategories.func1github.com/urfave/cli/v2.(*App).VisibleCommandsgithub.com/urfave/cli/v2.(*App).VisibleFlagsgithub.com/urfave/cli/v2.(*App).handleExitCodergithub.com/urfave/cli/v2.(*Author).Stringgithub.com/urfave/cli/v2.(*args).Getgithub.com/urfave/cli/v2.(*args).Firstgithub.com/urfave/cli/v2.(*args).Tailgithub.com/urfave/cli/v2.(*args).Lengithub.com/urfave/cli/v2.(*args).Presentgithub.com/urfave/cli/v2.(*args).Slicegithub.com/urfave/cli/v2.(*commandCategories).Lessgithub.com/urfave/cli/v2.(*commandCategory).Namegithub.com/urfave/cli/v2.(*commandCategories).Lengithub.com/urfave/cli/v2.(*commandCategories).Swapgithub.com/urfave/cli/v2.(*commandCategories).AddCommandgithub.com/urfave/cli/v2.(*commandCategories).Categoriesgithub.com/urfave/cli/v2.(*commandCategory).VisibleCommandsgithub.com/urfave/cli/v2.(*Command).FullNamegithub.com/urfave/cli/v2.(*Command).Rungithub.com/urfave/cli/v2.(*Command).appendFlaggithub.com/urfave/cli/v2.checkCommandCompletionsgithub.com/urfave/cli/v2.(*Command).Run.func1github.com/urfave/cli/v2.(*Command).newFlagSetgithub.com/urfave/cli/v2.(*Command).useShortOptionHandlinggithub.com/urfave/cli/v2.(*Command).parseFlagsgithub.com/urfave/cli/v2.(*Command).Namesgithub.com/urfave/cli/v2.(*Command).HasNamegithub.com/urfave/cli/v2.(*Command).startAppgithub.com/urfave/cli/v2.(*Command).VisibleFlagsgithub.com/urfave/cli/v2.hasCommandgithub.com/urfave/cli/v2.(*Context).NumFlagsgithub.com/urfave/cli/v2.(*Context).Setgithub.com/urfave/cli/v2.(*Context).IsSetgithub.com/urfave/cli/v2.(*Context).IsSet.func1github.com/urfave/cli/v2.(*Context).LocalFlagNamesgithub.com/urfave/cli/v2.(*Context).FlagNamesgithub.com/urfave/cli/v2.(*Context).Lineagegithub.com/urfave/cli/v2.(*Context).Valuegithub.com/urfave/cli/v2.(*Context).NArggithub.com/urfave/cli/v2.lookupFlaggithub.com/urfave/cli/v2.lookupFlagSetgithub.com/urfave/cli/v2.copyFlaggithub.com/urfave/cli/v2.normalizeFlagsgithub.com/urfave/cli/v2.normalizeFlags.func1github.com/urfave/cli/v2.makeFlagNameVisitorgithub.com/urfave/cli/v2.makeFlagNameVisitor.func1github.com/urfave/cli/v2.(*errRequiredFlags).Errorgithub.com/urfave/cli/v2.checkRequiredFlagsgithub.com/urfave/cli/v2.(*App).ToMarkdowngithub.com/urfave/cli/v2.(*App).ToMangithub.com/urfave/cli/v2.(*App).writeDocTemplatetext/template.Newgithub.com/urfave/cli/v2.prepareArgsWithValuesgithub.com/urfave/cli/v2.prepareArgsSynopsisgithub.com/urfave/cli/v2.prepareCommandsgithub.com/urfave/cli/v2.prepareFlagsgithub.com/urfave/cli/v2.flagDetailsgithub.com/urfave/cli/v2.(*multiError).Errorgithub.com/urfave/cli/v2.(*multiError).Errorsgithub.com/urfave/cli/v2.(*exitError).Errorgithub.com/urfave/cli/v2.(*exitError).ExitCodegithub.com/urfave/cli/v2.HandleExitCodergithub.com/urfave/cli/v2.handleMultiErrorgithub.com/urfave/cli/v2.(*App).ToFishCompletiongithub.com/urfave/cli/v2.(*App).writeFishCompletionTemplategithub.com/urfave/cli/v2.(*App).prepareFishCommandsgithub.com/urfave/cli/v2.escapeSingleQuotesgithub.com/urfave/cli/v2.(*App).prepareFishFlagsgithub.com/urfave/cli/v2.fishAddFileFlaggithub.com/urfave/cli/v2.(*App).fishSubcommandHelpergithub.com/urfave/cli/v2.flagSetgithub.com/urfave/cli/v2.visibleFlagsgithub.com/urfave/cli/v2.prefixedNamesgithub.com/urfave/cli/v2.prefixForgithub.com/urfave/cli/v2.withEnvHintgithub.com/urfave/cli/v2.flagNamesgithub.com/urfave/cli/v2.flagStringSliceFieldgithub.com/urfave/cli/v2.flagValuegithub.com/urfave/cli/v2.stringifyFlaggithub.com/urfave/cli/v2.unquoteUsagegithub.com/urfave/cli/v2.formatDefaultgithub.com/urfave/cli/v2.stringifyIntSliceFlaggithub.com/urfave/cli/v2.(*IntSlice).Valuegithub.com/urfave/cli/v2.(*IntSliceFlag).Namesgithub.com/urfave/cli/v2.stringifyInt64SliceFlaggithub.com/urfave/cli/v2.(*Int64Slice).Valuegithub.com/urfave/cli/v2.(*Int64SliceFlag).Namesgithub.com/urfave/cli/v2.stringifyFloat64SliceFlaggithub.com/urfave/cli/v2.(*Float64Slice).Valuegithub.com/urfave/cli/v2.(*Float64SliceFlag).Namesgithub.com/urfave/cli/v2.stringifyStringSliceFlaggithub.com/urfave/cli/v2.(*StringSlice).Valuegithub.com/urfave/cli/v2.(*StringSliceFlag).Namesgithub.com/urfave/cli/v2.stringifySliceFlaggithub.com/urfave/cli/v2.hasFlaggithub.com/urfave/cli/v2.flagFromEnvOrFileio/ioutil.ReadFilegithub.com/urfave/cli/v2.(*BoolFlag).IsSetgithub.com/urfave/cli/v2.(*BoolFlag).Stringgithub.com/urfave/cli/v2.(*BoolFlag).Namesgithub.com/urfave/cli/v2.(*BoolFlag).IsRequiredgithub.com/urfave/cli/v2.(*BoolFlag).TakesValuegithub.com/urfave/cli/v2.(*BoolFlag).GetUsagegithub.com/urfave/cli/v2.(*BoolFlag).GetValuegithub.com/urfave/cli/v2.(*BoolFlag).Applygithub.com/urfave/cli/v2.(*Context).Boolgithub.com/urfave/cli/v2.lookupBoolgithub.com/urfave/cli/v2.(*Context).Durationgithub.com/urfave/cli/v2.lookupDurationgithub.com/urfave/cli/v2.(*Context).Float64github.com/urfave/cli/v2.lookupFloat64github.com/urfave/cli/v2.(*Float64Slice).Setgithub.com/urfave/cli/v2.(*Float64Slice).Stringgithub.com/urfave/cli/v2.(*Float64Slice).Serializegithub.com/urfave/cli/v2.(*Float64Slice).Getgithub.com/urfave/cli/v2.(*Float64SliceFlag).IsSetgithub.com/urfave/cli/v2.(*Float64SliceFlag).Stringgithub.com/urfave/cli/v2.(*Float64SliceFlag).IsRequiredgithub.com/urfave/cli/v2.(*Float64SliceFlag).TakesValuegithub.com/urfave/cli/v2.(*Float64SliceFlag).GetUsagegithub.com/urfave/cli/v2.(*Float64SliceFlag).GetValuegithub.com/urfave/cli/v2.(*Float64SliceFlag).Applygithub.com/urfave/cli/v2.(*Context).Float64Slicegithub.com/urfave/cli/v2.lookupFloat64Slicegithub.com/urfave/cli/v2.(*Context).Genericgithub.com/urfave/cli/v2.lookupGenericgithub.com/urfave/cli/v2.(*IntFlag).IsSetgithub.com/urfave/cli/v2.(*IntFlag).Stringgithub.com/urfave/cli/v2.(*IntFlag).Namesgithub.com/urfave/cli/v2.(*IntFlag).IsRequiredgithub.com/urfave/cli/v2.(*IntFlag).TakesValuegithub.com/urfave/cli/v2.(*IntFlag).GetUsagegithub.com/urfave/cli/v2.(*IntFlag).GetValuegithub.com/urfave/cli/v2.(*IntFlag).Applygithub.com/urfave/cli/v2.(*Context).Intgithub.com/urfave/cli/v2.lookupIntgithub.com/urfave/cli/v2.(*Context).Int64github.com/urfave/cli/v2.lookupInt64github.com/urfave/cli/v2.(*Int64Slice).Setgithub.com/urfave/cli/v2.(*Int64Slice).Stringgithub.com/urfave/cli/v2.(*Int64Slice).Serializegithub.com/urfave/cli/v2.(*Int64Slice).Getgithub.com/urfave/cli/v2.(*Int64SliceFlag).IsSetgithub.com/urfave/cli/v2.(*Int64SliceFlag).Stringgithub.com/urfave/cli/v2.(*Int64SliceFlag).IsRequiredgithub.com/urfave/cli/v2.(*Int64SliceFlag).TakesValuegithub.com/urfave/cli/v2.Int64SliceFlag.GetUsagegithub.com/urfave/cli/v2.(*Int64SliceFlag).GetValuegithub.com/urfave/cli/v2.(*Int64SliceFlag).Applygithub.com/urfave/cli/v2.(*Context).Int64Slicegithub.com/urfave/cli/v2.lookupInt64Slicegithub.com/urfave/cli/v2.(*IntSlice).SetIntgithub.com/urfave/cli/v2.(*IntSlice).Setgithub.com/urfave/cli/v2.(*IntSlice).Stringgithub.com/urfave/cli/v2.(*IntSlice).Serializegithub.com/urfave/cli/v2.(*IntSlice).Getgithub.com/urfave/cli/v2.(*IntSliceFlag).IsSetgithub.com/urfave/cli/v2.(*IntSliceFlag).Stringgithub.com/urfave/cli/v2.(*IntSliceFlag).IsRequiredgithub.com/urfave/cli/v2.(*IntSliceFlag).TakesValuegithub.com/urfave/cli/v2.IntSliceFlag.GetUsagegithub.com/urfave/cli/v2.(*IntSliceFlag).GetValuegithub.com/urfave/cli/v2.(*IntSliceFlag).Applygithub.com/urfave/cli/v2.(*Context).IntSlicegithub.com/urfave/cli/v2.lookupIntSlicegithub.com/urfave/cli/v2.(*Context).Pathgithub.com/urfave/cli/v2.lookupPathgithub.com/urfave/cli/v2.(*StringFlag).IsSetgithub.com/urfave/cli/v2.(*StringFlag).Stringgithub.com/urfave/cli/v2.(*StringFlag).Namesgithub.com/urfave/cli/v2.(*StringFlag).IsRequiredgithub.com/urfave/cli/v2.(*StringFlag).TakesValuegithub.com/urfave/cli/v2.(*StringFlag).GetUsagegithub.com/urfave/cli/v2.(*StringFlag).GetValuegithub.com/urfave/cli/v2.(*StringFlag).Applygithub.com/urfave/cli/v2.(*Context).Stringgithub.com/urfave/cli/v2.lookupStringgithub.com/urfave/cli/v2.(*StringSlice).Setgithub.com/urfave/cli/v2.(*StringSlice).Stringgithub.com/urfave/cli/v2.(*StringSlice).Serializegithub.com/urfave/cli/v2.(*StringSlice).Getgithub.com/urfave/cli/v2.(*StringSliceFlag).IsSetgithub.com/urfave/cli/v2.(*StringSliceFlag).Stringgithub.com/urfave/cli/v2.(*StringSliceFlag).IsRequiredgithub.com/urfave/cli/v2.(*StringSliceFlag).TakesValuegithub.com/urfave/cli/v2.(*StringSliceFlag).GetUsagegithub.com/urfave/cli/v2.(*StringSliceFlag).GetValuegithub.com/urfave/cli/v2.(*StringSliceFlag).Applygithub.com/urfave/cli/v2.(*Context).StringSlicegithub.com/urfave/cli/v2.lookupStringSlicegithub.com/urfave/cli/v2.(*Context).Timestampgithub.com/urfave/cli/v2.lookupTimestampgithub.com/urfave/cli/v2.(*Timestamp).Valuegithub.com/urfave/cli/v2.(*Context).Uintgithub.com/urfave/cli/v2.lookupUintgithub.com/urfave/cli/v2.(*Context).Uint64github.com/urfave/cli/v2.lookupUint64github.com/urfave/cli/v2.ShowAppHelpgithub.com/urfave/cli/v2.ShowAppHelp.func1github.com/urfave/cli/v2.DefaultAppCompletegithub.com/urfave/cli/v2.printCommandSuggestionsgithub.com/urfave/cli/v2.cliArgContainsgithub.com/urfave/cli/v2.printFlagSuggestionsstrings.TrimPrefixgithub.com/urfave/cli/v2.DefaultCompleteWithFlagsgithub.com/urfave/cli/v2.DefaultCompleteWithFlags.func1github.com/urfave/cli/v2.ShowCommandHelpAndExitgithub.com/urfave/cli/v2.ShowCommandHelpgithub.com/urfave/cli/v2.Exitgithub.com/urfave/cli/v2.ShowSubcommandHelpgithub.com/urfave/cli/v2.printVersiongithub.com/urfave/cli/v2.ShowCommandCompletionsgithub.com/urfave/cli/v2.printHelpCustomtext/tabwriter.NewWritertext/template.Mustgithub.com/urfave/cli/v2.printHelpgithub.com/urfave/cli/v2.checkVersiongithub.com/urfave/cli/v2.checkHelpgithub.com/urfave/cli/v2.checkCommandHelpgithub.com/urfave/cli/v2.checkSubcommandHelpgithub.com/urfave/cli/v2.checkCompletionsgithub.com/urfave/cli/v2.ShowCompletionsgithub.com/urfave/cli/v2.indentgithub.com/urfave/cli/v2.nindentgithub.com/urfave/cli/v2.parseItergithub.com/urfave/cli/v2.splitShortOptionsgithub.com/urfave/cli/v2.isSplittablegithub.com/urfave/cli/v2.splitShortOptions.func1github.com/urfave/cli/v2.lexicographicLessgithub.com/urfave/cli/v2.glob..func1github.com/urfave/cli/v2.glob..func2github.com/urfave/cli/v2.initgithub.com/urfave/cli/v2.NewExitErrorgithub.com/urfave/cli/v2.(*IntSliceFlag).GetUsagegithub.com/urfave/cli/v2.(*Int64SliceFlag).GetUsagetype..eq.github.com/urfave/cli/v2.Authortype..eq.github.com/urfave/cli/v2.Contextgithub.com/urfave/cli/v2.(*Context).Deadlinegithub.com/urfave/cli/v2.Context.Deadlinegithub.com/urfave/cli/v2.(*Context).Donegithub.com/urfave/cli/v2.Context.Donegithub.com/urfave/cli/v2.(*Context).Errgithub.com/urfave/cli/v2.Context.Errtype..eq.github.com/urfave/cli/v2.Timestamptype..eq.github.com/urfave/cli/v2.exitErrortype..eq.[2]errorbufio.(*Reader).Sizebufio.(*Reader).Resetbufio.(*Reader).resetbufio.(*Reader).fillbufio.(*Reader).Peekbufio.(*Reader).readErrbufio.(*Reader).Discardbufio.(*Reader).Bufferedbufio.(*Reader).Readbufio.(*Reader).ReadBytebufio.(*Reader).UnreadBytebufio.(*Reader).ReadRunebufio.(*Reader).UnreadRunebufio.(*Reader).ReadSlicebufio.(*Reader).ReadLinebufio.(*Reader).collectFragmentsbufio.(*Reader).ReadBytesbufio.(*Reader).ReadStringbufio.(*Reader).WriteTobufio.(*Reader).writeBufbufio.(*Writer).Sizebufio.(*Writer).Resetbufio.(*Writer).Flushbufio.(*Writer).Availablebufio.(*Writer).Bufferedbufio.(*Writer).Writebufio.(*Writer).WriteBytebufio.(*Writer).WriteRunebufio.(*Writer).WriteStringbufio.(*Writer).ReadFrombufio.(*Scanner).Scanbufio.(*Scanner).setErrbufio.(*Scanner).advancebufio.ScanLinesbufio.dropCRbufio.initcompress/flate.(*compressor).fillDeflatecompress/flate.(*compressor).writeBlockcompress/flate.(*compressor).findMatchcompress/flate.(*compressor).writeStoredBlockcompress/flate.bulkHash4compress/flate.matchLencompress/flate.(*compressor).encSpeedcompress/flate.(*deflateFast).resetcompress/flate.(*compressor).deflatecompress/flate.hash4compress/flate.matchTokencompress/flate.(*compressor).fillStorecompress/flate.(*compressor).storecompress/flate.(*compressor).storeHuffcompress/flate.(*compressor).writecompress/flate.(*compressor).initcompress/flate.newHuffmanBitWritercompress/flate.newHuffmanEncodercompress/flate.newDeflateFastcompress/flate.(*compressor).initDeflatecompress/flate.(*compressor).closecompress/flate.NewWritercompress/flate.(*deflateFast).encodecompress/flate.load32compress/flate.hashcompress/flate.load64compress/flate.emitLiteralcompress/flate.(*deflateFast).matchLencompress/flate.(*deflateFast).shiftOffsetscompress/flate.(*dictDecoder).writeCopycompress/flate.(*huffmanBitWriter).flushcompress/flate.(*huffmanBitWriter).writecompress/flate.(*huffmanBitWriter).writeBitscompress/flate.(*huffmanBitWriter).writeBytescompress/flate.(*huffmanBitWriter).generateCodegencompress/flate.(*huffmanBitWriter).dynamicSizecompress/flate.(*huffmanBitWriter).fixedSizecompress/flate.(*huffmanBitWriter).writeCodecompress/flate.(*huffmanBitWriter).writeDynamicHeadercompress/flate.(*huffmanBitWriter).writeStoredHeadercompress/flate.(*huffmanBitWriter).writeBlockcompress/flate.(*huffmanBitWriter).storedSizecompress/flate.(*huffmanBitWriter).writeFixedHeadercompress/flate.(*huffmanBitWriter).writeBlockDynamiccompress/flate.(*huffmanBitWriter).indexTokenscompress/flate.token.lengthcompress/flate.lengthCodecompress/flate.token.offsetcompress/flate.offsetCodecompress/flate.(*huffmanBitWriter).writeTokenscompress/flate.init.0compress/flate.(*huffmanBitWriter).writeBlockHuffcompress/flate.histogramcompress/flate.generateFixedLiteralEncodingcompress/flate.reverseBitscompress/flate.generateFixedOffsetEncodingcompress/flate.(*huffmanEncoder).bitLengthcompress/flate.(*huffmanEncoder).bitCountscompress/flate.(*huffmanEncoder).assignEncodingAndSizecompress/flate.(*byLiteral).sortcompress/flate.(*huffmanEncoder).generatecompress/flate.(*byFreq).sortcompress/flate.(*hcode).setcompress/flate.byLiteral.Lencompress/flate.byLiteral.Lesscompress/flate.byLiteral.Swapcompress/flate.byFreq.Lencompress/flate.byFreq.Lesscompress/flate.byFreq.Swapcompress/flate.CorruptInputError.Errorcompress/flate.InternalError.Errorcompress/flate.(*huffmanDecoder).initcompress/flate.(*decompressor).nextBlockcompress/flate.(*decompressor).Readcompress/flate.(*dictDecoder).readFlushcompress/flate.(*decompressor).Closecompress/flate.(*decompressor).readHuffmancompress/flate.(*decompressor).huffmanBlockcompress/flate.(*dictDecoder).writeBytecompress/flate.(*dictDecoder).availWritecompress/flate.(*decompressor).finishBlockcompress/flate.(*dictDecoder).availReadcompress/flate.(*dictDecoder).histSizecompress/flate.(*dictDecoder).tryWriteCopycompress/flate.(*decompressor).dataBlockcompress/flate.noEOFcompress/flate.(*decompressor).copyDatacompress/flate.(*dictDecoder).writeSlicecompress/flate.(*dictDecoder).writeMarkcompress/flate.(*decompressor).moreBitscompress/flate.(*decompressor).huffSymcompress/flate.fixedHuffmanDecoderInitcompress/flate.(*decompressor).Resetcompress/flate.makeReaderbufio.NewReaderbufio.NewReaderSizecompress/flate.(*dictDecoder).initcompress/flate.NewReadercompress/flate.fixedHuffmanDecoderInit.func1compress/flate.initcompress/flate.(*byLiteral).Lencompress/flate.(*byLiteral).Lesscompress/flate.(*byLiteral).Swapcompress/flate.(*byFreq).Lencompress/flate.(*byFreq).Lesscompress/flate.(*byFreq).Swapcompress/flate.(*CorruptInputError).Errorcompress/flate.(*InternalError).Errortype..eq.compress/flate.literalNodemath/rand.(*Rand).ExpFloat64math/rand.(*Rand).Uint32math/rand.(*Rand).Int63math/rand.(*Rand).Float64math.Expmath/rand.(*Rand).NormFloat64math/rand.absInt32math/rand.(*Rand).Seedmath/rand.(*Rand).Uint64math/rand.(*Rand).Int31math/rand.(*Rand).Intmath/rand.(*Rand).Int63nmath/rand.(*Rand).Int31nmath/rand.(*Rand).int31nmath/rand.(*Rand).Intnmath/rand.(*Rand).Float32math/rand.(*Rand).Permmath/rand.(*Rand).Shufflemath/rand.(*Rand).Readmath/rand.readmath/rand.(*rngSource).Int63math/rand.(*rngSource).Uint64math/rand.Float64math/rand.(*lockedSource).Int63math/rand.(*lockedSource).Uint64math/rand.(*lockedSource).Seedmath/rand.(*lockedSource).seedPosmath/rand.(*lockedSource).readmath/rand.(*rngSource).Seedmath/rand.seedrandmath/rand.initmath/rand.NewSourcemath/rand.Newtype..eq.math/rand.Randmath/big.divWWmath/big.nlzmath/bits.LeadingZerosmath/big.reciprocalWordmath/bits.Divmath/big.(*Int).Signmath/big.(*Int).SetInt64math/big.(*Int).SetUint64math/big.(*Int).Setmath/big.nat.setmath/big.nat.makemath/big.(*Int).Bitsmath/big.(*Int).SetBitsmath/big.nat.normmath/big.(*Int).Absmath/big.(*Int).Negmath/big.(*Int).Addmath/big.(*Int).Submath/big.(*Int).Mulmath/big.(*Int).MulRangemath/big.(*Int).Binomialmath/big.(*Int).Quomath/big.(*Int).Remmath/big.(*Int).QuoRemmath/big.(*Int).Divmath/big.(*Int).Modmath/big.aliasmath/big.(*Int).DivModmath/big.(*Int).Cmpmath/big.(*Int).CmpAbsmath/big.(*Int).Int64math/big.low64math/big.(*Int).Uint64math/big.(*Int).IsInt64math/big.(*Int).IsUint64math/big.(*Int).SetStringstrings.NewReadermath/big.(*Int).setFromScannermath/big.(*Int).SetBytesmath/big.(*Int).Bytesmath/big.(*Int).FillBytesmath/big.(*Int).BitLenmath/big.nat.bitLenmath/big.(*Int).TrailingZeroBitsmath/big.nat.trailingZeroBitsmath/big.(*Int).Expmath/big.(*Int).GCDmath/big.lehmerSimulatemath/big.lehmerUpdatemath/big.nat.setWordmath/big.euclidUpdatemath/big.(*Int).lehmerGCDmath/big.(*Int).Randmath/big.(*Int).ModInversemath/big.Jacobimath/big.(*Int).modSqrt3Mod4Primemath/big.(*Int).modSqrt5Mod8Primemath/big.(*Int).Lshmath/big.(*Int).modSqrtTonelliShanksmath/big.(*Int).ModSqrtmath/big.(*Int).Rshmath/big.(*Int).Bitmath/big.nat.bitmath/big.(*Int).SetBitmath/big.(*Int).Andmath/big.(*Int).AndNotmath/big.(*Int).Ormath/big.(*Int).Xormath/big.(*Int).Notmath/big.(*Int).Sqrtmath/big.(*Int).Textmath/big.(*Int).Appendmath/big.(*Int).Stringmath/big.(*Int).Formatmath/big.nat.utoamath/big.writeMultiplemath/big.(*Int).scanmath/big.scanSignmath/big.byteReader.ReadBytemath/big.byteReader.UnreadBytemath/big.(*Int).Scanmath/big.(*Int).GobEncodemath/big.(*Int).GobDecodemath/big.(*Int).MarshalTextmath/big.(*Int).UnmarshalTextmath/big.(*Int).MarshalJSONmath/big.(*Int).UnmarshalJSONmath/big.nat.clearmath/big.nat.setUint64math/big.nat.addmath/big.nat.submath/big.nat.cmpmath/big.nat.mulAddWWmath/big.basicMulmath/big.nat.montgomerymath/big.karatsubaAddmath/big.karatsubaSubmath/big.karatsubamath/big.addAtmath/big.nat.mulmath/big.karatsubaLenmath/big.maxmath/big.putNatmath/big.basicSqrmath/big.karatsubaSqrmath/big.nat.sqrmath/big.nat.mulRangemath/big.getNatmath/big.nat.shlmath/big.samemath/big.nat.shrmath/big.nat.setBitmath/big.nat.andmath/big.nat.andNotmath/big.nat.ormath/big.nat.xormath/big.nat.randommath/big.nat.expNNmath/big.nat.expNNWindowedmath/big.nat.expNNMontgomerymath/big.nat.bytesmath/big.nat.setBytesmath/big.bigEndianWordmath/big.nat.sqrtmath/big.nat.scanmath/big.maxPowmath/big.powmath/big.nat.itoamath.Log2math/big.nat.convertWordsmath/big.nat.expWWmath/big.divisorsmath/big.nat.divmath/big.nat.divWmath/big.nat.modWmath/big.divWVWmath/big.nat.divLargemath/big.nat.divBasicmath/big.greaterThanmath/big.nat.divRecursivemath/big.nat.divRecursiveStepmath/big.(*Int).ProbablyPrimemath/big.nat.probablyPrimeMillerRabinmath/big.nat.probablyPrimeLucasmath/big.initmath/big.addVVmath/big.subVVmath/big.addVWmath/big.subVWmath/big.shlVUmath/big.shrVUmath/big.mulAddVWWmath/big.addMulVVWmath/big.(*byteReader).Readmath/big.(*byteReader).ReadBytemath/big.(*byteReader).ReadRunemath/big.(*byteReader).SkipSpacemath/big.(*byteReader).Tokenmath/big.(*byteReader).UnreadBytemath/big.(*byteReader).UnreadRunemath/big.(*byteReader).Widthmath/big.byteReader.Readmath/big.byteReader.ReadRunemath/big.byteReader.SkipSpacemath/big.byteReader.Tokenmath/big.byteReader.UnreadRunemath/big.byteReader.Widthgithub.com/lestrrat-go/jwx/v2/internal/pool.allocBytesBuffergithub.com/lestrrat-go/jwx/v2/internal/pool.ReleaseBytesBuffergithub.com/lestrrat-go/jwx/v2/internal/pool.allocBigIntgithub.com/lestrrat-go/jwx/v2/internal/pool.ReleaseBigIntcrypto/cipher.newCBCcrypto/cipher.dupcrypto/cipher.NewCBCEncryptercrypto/cipher.(*cbcEncrypter).BlockSizecrypto/cipher.(*cbcEncrypter).CryptBlockscrypto/internal/subtle.InexactOverlapcrypto/internal/subtle.AnyOverlapcrypto/cipher.(*cbcEncrypter).SetIVcrypto/cipher.NewCBCDecryptercrypto/cipher.(*cbcDecrypter).BlockSizecrypto/cipher.(*cbcDecrypter).CryptBlockscrypto/cipher.(*cbcDecrypter).SetIVcrypto/cipher.NewCTRcrypto/cipher.(*ctr).refillcrypto/cipher.(*ctr).XORKeyStreamcrypto/cipher.newGCMWithNonceAndTagSizecrypto/cipher.reverseBitscrypto/cipher.gcmDoublecrypto/cipher.gcmAddcrypto/cipher.(*gcm).NonceSizecrypto/cipher.(*gcm).Overheadcrypto/cipher.(*gcm).Sealcrypto/cipher.sliceForAppendcrypto/cipher.(*gcm).Opencrypto/subtle.ConstantTimeComparecrypto/subtle.ConstantTimeByteEqcrypto/cipher.(*gcm).mulcrypto/cipher.(*gcm).updateBlockscrypto/cipher.(*gcm).updatecrypto/cipher.gcmInc32crypto/cipher.(*gcm).counterCryptcrypto/cipher.xorWordscrypto/cipher.(*gcm).deriveCountercrypto/cipher.(*gcm).authcrypto/cipher.StreamReader.Readcrypto/cipher.xorBytescrypto/cipher.initcrypto/cipher.xorBytesARM64type..eq.crypto/cipher.StreamReadercrypto/cipher.(*StreamReader).Readtype..eq.crypto/cipher.gcmcrypto/aes.(*aesCipherGCM).NewGCMcrypto/aes.(*gcmAsm).NonceSizecrypto/aes.(*gcmAsm).Overheadcrypto/aes.(*gcmAsm).Sealcrypto/aes.sliceForAppendcrypto/aes.(*gcmAsm).Opencrypto/aes.encryptBlockGocrypto/aes.decryptBlockGocrypto/aes.expandKeyGocrypto/aes.rotwcrypto/aes.subwcrypto/aes.KeySizeError.Errorcrypto/aes.NewCiphercrypto/aes.newCipherGenericcrypto/aes.(*aesCipher).BlockSizecrypto/aes.(*aesCipher).Encryptcrypto/aes.(*aesCipher).Decryptcrypto/aes.newCiphercrypto/aes.(*aesCipherAsm).BlockSizecrypto/aes.(*aesCipherAsm).Encryptcrypto/aes.(*aesCipherAsm).Decryptcrypto/aes.initcrypto/aes.encryptBlockAsmcrypto/aes.decryptBlockAsmcrypto/aes.expandKeyAsmcrypto/aes.gcmAesFinishcrypto/aes.gcmAesInitcrypto/aes.gcmAesDatacrypto/aes.gcmAesEnccrypto/aes.gcmAesDeccrypto/aes.(*aesCipherGCM).BlockSizecrypto/aes.(*aesCipherGCM).Decryptcrypto/aes.(*aesCipherGCM).Encryptcrypto/aes.(*KeySizeError).Errorcrypto.Hash.HashFunccrypto.Hash.Stringcrypto.Hash.Sizecrypto.Hash.Newcrypto.Hash.Availablecrypto.initcrypto.(*Hash).Availablecrypto.(*Hash).HashFunccrypto.(*Hash).Newcrypto.(*Hash).Sizecrypto.(*Hash).Stringcrypto/elliptic/internal/fiat.(*P521Element).Equalcrypto/elliptic/internal/fiat.(*P521Element).Bytescrypto/elliptic/internal/fiat.(*P521Element).IsZerocrypto/elliptic/internal/fiat.(*P521Element).SetBytescrypto/elliptic/internal/fiat.(*P521Element).Addcrypto/elliptic/internal/fiat.(*P521Element).Subcrypto/elliptic/internal/fiat.(*P521Element).Invertcrypto/elliptic/internal/fiat.(*P521Element).Squarecrypto/elliptic/internal/fiat.(*P521Element).Mulcrypto/elliptic/internal/fiat.p521CarryMulcrypto/elliptic/internal/fiat.p521AddcarryxU64crypto/elliptic/internal/fiat.p521CarrySquarecrypto/elliptic/internal/fiat.p521Carrycrypto/elliptic/internal/fiat.p521Addcrypto/elliptic/internal/fiat.p521Subcrypto/elliptic/internal/fiat.p521ToBytescrypto/elliptic/internal/fiat.p521SubborrowxU58crypto/elliptic/internal/fiat.p521SubborrowxU57crypto/elliptic/internal/fiat.p521CmovznzU64crypto/elliptic/internal/fiat.p521AddcarryxU58crypto/elliptic/internal/fiat.p521AddcarryxU57crypto/elliptic/internal/fiat.p521FromBytescrypto/elliptic/internal/fiat.p521Selectznzcrypto/elliptic/internal/fiat.initcrypto/elliptic.matchesSpecificCurvecrypto/elliptic.(*CurveParams).Paramscrypto/elliptic.(*CurveParams).polynomialcrypto/elliptic.(*CurveParams).IsOnCurvecrypto/elliptic.zForAffinecrypto/elliptic.(*CurveParams).affineFromJacobiancrypto/elliptic.(*CurveParams).Addcrypto/elliptic.(*CurveParams).addJacobiancrypto/elliptic.(*CurveParams).Doublecrypto/elliptic.(*CurveParams).doubleJacobiancrypto/elliptic.(*CurveParams).ScalarMultcrypto/elliptic.(*CurveParams).ScalarBaseMultcrypto/elliptic.GenerateKeycrypto/elliptic.Marshalcrypto/elliptic.Unmarshalcrypto/elliptic.initAllcrypto/elliptic.initP384crypto/elliptic.initP224crypto/elliptic.p224Curve.Paramscrypto/elliptic.p224Curve.IsOnCurvecrypto/elliptic.p224Subcrypto/elliptic.p224Addcrypto/elliptic.p224Curve.Addcrypto/elliptic.p224Curve.Doublecrypto/elliptic.p224Curve.ScalarMultcrypto/elliptic.p224Curve.ScalarBaseMultcrypto/elliptic.p224IsZerocrypto/elliptic.p224Mulcrypto/elliptic.p224Squarecrypto/elliptic.p224ReduceLargecrypto/elliptic.p224Reducecrypto/elliptic.p224Invertcrypto/elliptic.p224Contractcrypto/elliptic.p224AddJacobiancrypto/elliptic.p224CopyConditionalcrypto/elliptic.p224DoubleJacobiancrypto/elliptic.p224ScalarMultcrypto/elliptic.p224ToAffinecrypto/elliptic.p224FromBigcrypto/elliptic.get28BitsFromEndcrypto/elliptic.p224ToBigcrypto/elliptic.initP256crypto/elliptic.p256Curve.Paramscrypto/elliptic.p256Curve.Inversecrypto/elliptic.fromBigcrypto/elliptic.p256GetScalarcrypto/elliptic.maybeReduceModPcrypto/elliptic.p256Curve.CombinedMultcrypto/elliptic.scalarIsZerocrypto/elliptic.uint64IsZerocrypto/elliptic.p256Curve.ScalarBaseMultcrypto/elliptic.p256Curve.ScalarMultcrypto/elliptic.(*p256Point).p256PointToAffinecrypto/elliptic.(*p256Point).CopyConditionalcrypto/elliptic.p256Inversecrypto/elliptic.(*p256Point).p256BaseMultcrypto/elliptic.boothW6crypto/elliptic.(*p256Point).p256ScalarMultcrypto/elliptic.(*p256Point).p256StorePointcrypto/elliptic.boothW5crypto/elliptic.initP521crypto/elliptic.p521Curve.Paramscrypto/elliptic.p521Curve.IsOnCurvecrypto/elliptic.fiatP521ToBigIntcrypto/elliptic.p521Curve.affineFromJacobiancrypto/elliptic.bigIntToFiatP521crypto/elliptic.p521Curve.jacobianFromAffinecrypto/elliptic/internal/fiat.(*P521Element).Onecrypto/elliptic.p521Curve.Addcrypto/elliptic.(*p521Point).addJacobiancrypto/elliptic/internal/fiat.(*P521Element).Setcrypto/elliptic/internal/fiat.(*P521Element).Selectcrypto/elliptic.p521Curve.Doublecrypto/elliptic.(*p521Point).doubleJacobiancrypto/elliptic.p521Curve.ScalarMultcrypto/elliptic.p521Curve.ScalarBaseMultp256SubInternalp256SqrInternalp256MulInternalcrypto/elliptic.p256LittleToBigcrypto/elliptic.p256BigToLittlecrypto/elliptic.p256MovCondcrypto/elliptic.p256NegCondcrypto/elliptic.p256Sqrcrypto/elliptic.p256Mulcrypto/elliptic.p256FromMontcrypto/elliptic.p256Selectcrypto/elliptic.p256SelectBasecrypto/elliptic.p256OrdSqrcrypto/elliptic.p256OrdMulcrypto/elliptic.p256PointAddAffineAsmcrypto/elliptic.p256PointDoubleAsmcrypto/elliptic.p256PointAddAsmcrypto/elliptic.p256Curve.Addcrypto/elliptic.p256Curve.Doublecrypto/elliptic.p256Curve.IsOnCurvetype..eq.crypto/elliptic.CurveParamscrypto/elliptic.(*p224Curve).Addcrypto/elliptic.(*p224Curve).Doublecrypto/elliptic.(*p224Curve).IsOnCurvecrypto/elliptic.(*p224Curve).Paramscrypto/elliptic.(*p224Curve).ScalarBaseMultcrypto/elliptic.(*p224Curve).ScalarMultcrypto/elliptic.(*p256Curve).Addcrypto/elliptic.(*p256Curve).CombinedMultcrypto/elliptic.(*p256Curve).Doublecrypto/elliptic.(*p256Curve).Inversecrypto/elliptic.(*p256Curve).IsOnCurvecrypto/elliptic.(*p256Curve).Paramscrypto/elliptic.(*p256Curve).ScalarBaseMultcrypto/elliptic.(*p256Curve).ScalarMultcrypto/elliptic.(*p521Curve).Addcrypto/elliptic.(*p521Curve).Doublecrypto/elliptic.(*p521Curve).IsOnCurvecrypto/elliptic.(*p521Curve).Paramscrypto/elliptic.(*p521Curve).ScalarBaseMultcrypto/elliptic.(*p521Curve).ScalarMultcrypto/internal/randutil.MaybeReadBytecrypto/internal/randutil.MaybeReadByte.func1crypto/sha512.init.0crypto.RegisterHashcrypto/sha512.(*digest).Resetcrypto/sha512.(*digest).MarshalBinarycrypto/sha512.(*digest).UnmarshalBinarycrypto/sha512.consumeUint64crypto/sha512.appendUint64crypto/sha512.Newcrypto/sha512.New512_224crypto/sha512.New512_256crypto/sha512.New384crypto/sha512.(*digest).Sizecrypto/sha512.(*digest).BlockSizecrypto/sha512.(*digest).Writecrypto/sha512.blockcrypto/sha512.(*digest).Sumcrypto/sha512.(*digest).checkSumcrypto/sha512.Sum512crypto/sha512.blockGenericencoding/asn1.StructuralError.Errorencoding/asn1.SyntaxError.Errorencoding/asn1.parseInt64encoding/asn1.checkIntegerencoding/asn1.parseInt32encoding/asn1.parseBigIntencoding/asn1.BitString.Atencoding/asn1.BitString.RightAlignencoding/asn1.ObjectIdentifier.Equalencoding/asn1.ObjectIdentifier.Stringencoding/asn1.parseObjectIdentifierencoding/asn1.parseBase128Intencoding/asn1.parseUTCTimeencoding/asn1.parseGeneralizedTimeencoding/asn1.parseNumericStringencoding/asn1.isNumericencoding/asn1.parsePrintableStringencoding/asn1.isPrintableencoding/asn1.parseIA5Stringencoding/asn1.parseBMPStringencoding/asn1.parseTagAndLengthencoding/asn1.parseSequenceOfencoding/asn1.invalidLengthencoding/asn1.parseFieldencoding/asn1.parseBitStringencoding/asn1.parseUTF8Stringencoding/asn1.parseT61Stringencoding/asn1.parseBoolencoding/asn1.setDefaultValueencoding/asn1.canHaveDefaultValueencoding/asn1.(*invalidUnmarshalError).Errorencoding/asn1.UnmarshalWithParamsencoding/asn1.parseFieldParametersencoding/asn1.getUniversalTypeencoding/asn1.byteEncoder.Lenencoding/asn1.byteEncoder.Encodeencoding/asn1.bytesEncoder.Lenencoding/asn1.bytesEncoder.Encodeencoding/asn1.stringEncoder.Lenencoding/asn1.stringEncoder.Encodeencoding/asn1.multiEncoder.Lenencoding/asn1.multiEncoder.Encodeencoding/asn1.setEncoder.Lenencoding/asn1.setEncoder.Encodeencoding/asn1.setEncoder.Encode.func1bytes.Compareencoding/asn1.(*taggedEncoder).Lenencoding/asn1.(*taggedEncoder).Encodeencoding/asn1.int64Encoder.Lenencoding/asn1.int64Encoder.Encodeencoding/asn1.makeBigIntencoding/asn1.appendTagAndLengthencoding/asn1.appendBase128Intencoding/asn1.base128IntLengthencoding/asn1.lengthLengthencoding/asn1.appendLengthencoding/asn1.bitStringEncoder.Lenencoding/asn1.bitStringEncoder.Encodeencoding/asn1.oidEncoder.Lenencoding/asn1.oidEncoder.Encodeencoding/asn1.makePrintableStringencoding/asn1.appendFourDigitsencoding/asn1.outsideUTCRangeencoding/asn1.makeUTCTimeencoding/asn1.makeGeneralizedTimeencoding/asn1.appendUTCTimeencoding/asn1.appendTwoDigitsencoding/asn1.appendGeneralizedTimeencoding/asn1.appendTimeCommonencoding/asn1.makeBodyencoding/asn1.makeIA5Stringencoding/asn1.makeUTF8Stringencoding/asn1.makeNumericStringencoding/asn1.makeObjectIdentifierencoding/asn1.stripTagAndLengthencoding/asn1.makeFieldencoding/asn1.MarshalWithParamsencoding/asn1.initmath/big.NewIntencoding/asn1.(*byteEncoder).Encodeencoding/asn1.(*byteEncoder).Lenencoding/asn1.(*BitString).Atencoding/asn1.(*BitString).RightAlignencoding/asn1.(*ObjectIdentifier).Equalencoding/asn1.(*ObjectIdentifier).Stringencoding/asn1.(*StructuralError).Errorencoding/asn1.(*SyntaxError).Errorencoding/asn1.(*bitStringEncoder).Encodeencoding/asn1.(*bitStringEncoder).Lenencoding/asn1.(*bytesEncoder).Encodeencoding/asn1.(*bytesEncoder).Lentype..eq.encoding/asn1.fieldParametersencoding/asn1.(*int64Encoder).Encodeencoding/asn1.(*int64Encoder).Lenencoding/asn1.(*multiEncoder).Encodeencoding/asn1.(*multiEncoder).Lenencoding/asn1.(*oidEncoder).Encodeencoding/asn1.(*oidEncoder).Lenencoding/asn1.(*setEncoder).Encodeencoding/asn1.(*setEncoder).Lenencoding/asn1.(*stringEncoder).Encodeencoding/asn1.(*stringEncoder).Lentype..eq.encoding/asn1.tagAndLengthtype..eq.encoding/asn1.taggedEncodertype..eq.[2]encoding/asn1.encodervendor/golang.org/x/crypto/cryptobyte/asn1.Tag.Constructedvendor/golang.org/x/crypto/cryptobyte/asn1.Tag.ContextSpecificvendor/golang.org/x/crypto/cryptobyte/asn1.(*Tag).Constructedvendor/golang.org/x/crypto/cryptobyte/asn1.(*Tag).ContextSpecificvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1BigIntvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1BigInt.func1vendor/golang.org/x/crypto/cryptobyte.(*Builder).addvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint8vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Booleanvendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Integervendor/golang.org/x/crypto/cryptobyte.(*String).readASN1BigIntvendor/golang.org/x/crypto/cryptobyte.checkASN1Integervendor/golang.org/x/crypto/cryptobyte.(*String).readASN1Int64vendor/golang.org/x/crypto/cryptobyte.asn1Signedvendor/golang.org/x/crypto/cryptobyte.(*String).readASN1Uint64vendor/golang.org/x/crypto/cryptobyte.asn1Unsignedvendor/golang.org/x/crypto/cryptobyte.(*String).readBase128Intvendor/golang.org/x/crypto/cryptobyte.(*String).readvendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1ObjectIdentifiervendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1GeneralizedTimevendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1BitStringvendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1vendor/golang.org/x/crypto/cryptobyte.(*String).ReadAnyASN1vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Elementvendor/golang.org/x/crypto/cryptobyte.(*String).ReadAnyASN1Elementvendor/golang.org/x/crypto/cryptobyte.(*String).ReadOptionalASN1vendor/golang.org/x/crypto/cryptobyte.String.PeekASN1Tagvendor/golang.org/x/crypto/cryptobyte.(*String).SkipOptionalASN1vendor/golang.org/x/crypto/cryptobyte.(*String).ReadOptionalASN1Integervendor/golang.org/x/crypto/cryptobyte.(*String).readASN1vendor/golang.org/x/crypto/cryptobyte.(*String).readUnsignedvendor/golang.org/x/crypto/cryptobyte.(*String).ReadBytesvendor/golang.org/x/crypto/cryptobyte.(*String).Skipvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint32vendor/golang.org/x/crypto/cryptobyte.(*Builder).callContinuationvendor/golang.org/x/crypto/cryptobyte.(*Builder).callContinuation.func1vendor/golang.org/x/crypto/cryptobyte.(*Builder).addLengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*Builder).flushChildvendor/golang.org/x/crypto/cryptobyte.(*String).readLengthPrefixedvendor/golang.org/x/crypto/cryptobyte.initcrypto/ecdsa.(*PublicKey).Equalcrypto/ecdsa.(*PrivateKey).Publiccrypto/ecdsa.(*PrivateKey).Equalcrypto/ecdsa.(*PrivateKey).Signvendor/golang.org/x/crypto/cryptobyte.(*Builder).Bytescrypto/ecdsa.(*PrivateKey).Sign.func1crypto/ecdsa.randFieldElementcrypto/ecdsa.GenerateKeycrypto/ecdsa.hashToIntcrypto/ecdsa.fermatInversecrypto/ecdsa.Signcrypto/ecdsa.signcrypto/ecdsa.signGenericcrypto/ecdsa.Verifycrypto/ecdsa.verifycrypto/ecdsa.verifyGenericcrypto/ecdsa.VerifyASN1crypto/ecdsa.(*zr).Readcrypto/ecdsa.inittype..eq.crypto/ecdsa.PublicKeycrypto/ecdsa.(*PublicKey).Addcrypto/ecdsa.(*PublicKey).Doublecrypto/ecdsa.(*PublicKey).IsOnCurvecrypto/ecdsa.(*PublicKey).Paramscrypto/ecdsa.(*PublicKey).ScalarBaseMultcrypto/ecdsa.(*PublicKey).ScalarMultcrypto/ecdsa.PublicKey.Addcrypto/ecdsa.PublicKey.Doublecrypto/ecdsa.PublicKey.IsOnCurvecrypto/ecdsa.PublicKey.Paramscrypto/ecdsa.PublicKey.ScalarBaseMultcrypto/ecdsa.PublicKey.ScalarMulttype..eq.crypto/ecdsa.PrivateKeycrypto/ecdsa.(*PrivateKey).Addcrypto/ecdsa.(*PrivateKey).Doublecrypto/ecdsa.(*PrivateKey).IsOnCurvecrypto/ecdsa.(*PrivateKey).Paramscrypto/ecdsa.(*PrivateKey).ScalarBaseMultcrypto/ecdsa.(*PrivateKey).ScalarMultcrypto/ecdsa.PrivateKey.Addcrypto/ecdsa.PrivateKey.Doublecrypto/ecdsa.PrivateKey.IsOnCurvecrypto/ecdsa.PrivateKey.Paramscrypto/ecdsa.PrivateKey.ScalarBaseMultcrypto/ecdsa.PrivateKey.ScalarMultcrypto/rand.init.0crypto/rand.unixIsEAGAINcrypto/rand.Readcrypto/rand.init.1crypto/rand.getEntropycrypto/rand.init.2crypto/rand.warnBlockedcrypto/rand.(*devReader).Readcrypto/rand.hideAgainReader.Readcrypto/rand.Primecrypto/rand.Intcrypto/rand.inittype..eq.crypto/rand.devReadercrypto/rand.(*hideAgainReader).Readcrypto/rsa.EncryptPKCS1v15crypto/rsa.checkPubcrypto/rsa.(*PublicKey).Sizecrypto/rsa.DecryptPKCS1v15crypto/rsa.DecryptPKCS1v15SessionKeycrypto/subtle.ConstantTimeEqcrypto/subtle.ConstantTimeCopycrypto/rsa.decryptPKCS1v15crypto/subtle.ConstantTimeSelectcrypto/subtle.ConstantTimeLessOrEqcrypto/rsa.nonZeroRandomBytescrypto/rsa.SignPKCS1v15crypto/rsa.pkcs1v15HashInfocrypto/rsa.VerifyPKCS1v15crypto/rsa.emsaPSSEncodecrypto/rsa.emsaPSSVerifycrypto/rsa.signPSSWithSaltcrypto/rsa.(*PSSOptions).HashFunccrypto/rsa.SignPSScrypto/rsa.(*PSSOptions).saltLengthcrypto/rsa.VerifyPSScrypto/rsa.(*PublicKey).Equalcrypto/rsa.(*PrivateKey).Publiccrypto/rsa.(*PrivateKey).Equalcrypto/rsa.(*PrivateKey).Signcrypto/rsa.(*PrivateKey).Decryptcrypto/rsa.(*PrivateKey).Validatecrypto/rsa.GenerateMultiPrimeKeycrypto/rsa.mgf1XORcrypto/rsa.incCountercrypto/rsa.encryptcrypto/rsa.EncryptOAEPcrypto/rsa.(*PrivateKey).Precomputecrypto/rsa.decryptcrypto/rsa.decryptAndCheckcrypto/rsa.DecryptOAEPcrypto/rsa.initcrypto/rsa.(*PrivateKey).Sizecrypto/sha256.init.0crypto/sha256.(*digest).MarshalBinarycrypto/sha256.appendUint32crypto/sha256.(*digest).UnmarshalBinarycrypto/sha256.consumeUint32crypto/sha256.consumeUint64crypto/sha256.appendUint64crypto/sha256.(*digest).Resetcrypto/sha256.Newcrypto/sha256.New224crypto/sha256.(*digest).Sizecrypto/sha256.(*digest).BlockSizecrypto/sha256.(*digest).Writecrypto/sha256.(*digest).Sumcrypto/sha256.(*digest).checkSumcrypto/sha256.Sum224crypto/sha256.blockGenericcrypto/sha256.blockcrypto/sha256.sha256blocktype..eq.crypto/sha256.digestcrypto/hmac.(*hmac).Sumcrypto/hmac.(*hmac).Writecrypto/hmac.(*hmac).Sizecrypto/hmac.(*hmac).BlockSizecrypto/hmac.(*hmac).Resetcrypto/hmac.Newcrypto/hmac.New.func1crypto/hmac.New.func1.1golang.org/x/crypto/pbkdf2.Keygithub.com/lestrrat-go/blackmagic.AssignIfCompatiblecrypto/ed25519/internal/edwards25519/field.(*Element).reducecrypto/ed25519/internal/edwards25519/field.(*Element).carryPropagatecrypto/ed25519/internal/edwards25519/field.(*Element).Addcrypto/ed25519/internal/edwards25519/field.(*Element).Subtractcrypto/ed25519/internal/edwards25519/field.(*Element).Invertcrypto/ed25519/internal/edwards25519/field.(*Element).Squarecrypto/ed25519/internal/edwards25519/field.feSquarecrypto/ed25519/internal/edwards25519/field.(*Element).Multiplycrypto/ed25519/internal/edwards25519/field.feMulcrypto/ed25519/internal/edwards25519/field.(*Element).SetBytesencoding/binary.littleEndian.Uint64crypto/ed25519/internal/edwards25519/field.(*Element).bytesencoding/binary.littleEndian.PutUint64crypto/ed25519/internal/edwards25519/field.(*Element).Equalcrypto/ed25519/internal/edwards25519/field.(*Element).Bytescrypto/ed25519/internal/edwards25519/field.(*Element).Swapcrypto/ed25519/internal/edwards25519/field.mask64Bitscrypto/ed25519/internal/edwards25519/field.(*Element).Absolutecrypto/ed25519/internal/edwards25519/field.(*Element).Negatecrypto/ed25519/internal/edwards25519/field.(*Element).IsNegativecrypto/ed25519/internal/edwards25519/field.(*Element).Selectcrypto/ed25519/internal/edwards25519/field.(*Element).Pow22523crypto/ed25519/internal/edwards25519/field.(*Element).SqrtRatiocrypto/ed25519/internal/edwards25519/field.feMulGenericcrypto/ed25519/internal/edwards25519/field.mul64crypto/ed25519/internal/edwards25519/field.addMul64crypto/ed25519/internal/edwards25519/field.shiftRightBy51crypto/ed25519/internal/edwards25519/field.feSquareGenericcrypto/ed25519/internal/edwards25519/field.(*Element).carryPropagateGenericcrypto/ed25519/internal/edwards25519/field.carryPropagatecrypto/ed25519/internal/edwards25519.checkInitializedcrypto/ed25519/internal/edwards25519.(*Point).bytescrypto/ed25519/internal/edwards25519.copyFieldElementcrypto/ed25519/internal/edwards25519.(*Point).SetBytescrypto/ed25519/internal/edwards25519/field.(*Element).Setcrypto/ed25519/internal/edwards25519/field.(*Element).Onecrypto/ed25519/internal/edwards25519.(*projP2).FromP1xP1crypto/ed25519/internal/edwards25519.(*Point).fromP1xP1crypto/ed25519/internal/edwards25519.(*Point).fromP2crypto/ed25519/internal/edwards25519.(*projCached).FromP3crypto/ed25519/internal/edwards25519.(*affineCached).FromP3crypto/ed25519/internal/edwards25519.(*Point).Addcrypto/ed25519/internal/edwards25519.(*projP1xP1).Addcrypto/ed25519/internal/edwards25519.(*projP1xP1).Subcrypto/ed25519/internal/edwards25519.(*projP1xP1).AddAffinecrypto/ed25519/internal/edwards25519.(*projP1xP1).SubAffinecrypto/ed25519/internal/edwards25519.(*projP1xP1).Doublecrypto/ed25519/internal/edwards25519.(*Point).Negatecrypto/ed25519/internal/edwards25519.(*affineCached).Selectcrypto/ed25519/internal/edwards25519.(*affineCached).CondNegcrypto/ed25519/internal/edwards25519.(*Scalar).SetUniformBytescrypto/ed25519/internal/edwards25519.(*Scalar).SetCanonicalBytescrypto/ed25519/internal/edwards25519.isReducedcrypto/ed25519/internal/edwards25519.(*Scalar).SetBytesWithClampingcrypto/ed25519/internal/edwards25519.scMulAddcrypto/ed25519/internal/edwards25519.load3crypto/ed25519/internal/edwards25519.load4crypto/ed25519/internal/edwards25519.scReducecrypto/ed25519/internal/edwards25519.(*Scalar).nonAdjacentFormcrypto/ed25519/internal/edwards25519.(*Scalar).signedRadix16crypto/ed25519/internal/edwards25519.basepointTablecrypto/ed25519/internal/edwards25519.(*Point).ScalarBaseMultcrypto/ed25519/internal/edwards25519.NewIdentityPointcrypto/ed25519/internal/edwards25519.(*Point).Setcrypto/ed25519/internal/edwards25519.(*projP2).FromP3crypto/ed25519/internal/edwards25519.basepointNafTablecrypto/ed25519/internal/edwards25519.(*Point).VarTimeDoubleScalarBaseMultcrypto/ed25519/internal/edwards25519.(*projP2).Zerocrypto/ed25519/internal/edwards25519/field.(*Element).Zerocrypto/ed25519/internal/edwards25519.(*nafLookupTable5).SelectIntocrypto/ed25519/internal/edwards25519.(*nafLookupTable8).SelectIntocrypto/ed25519/internal/edwards25519.(*affineLookupTable).FromP3crypto/ed25519/internal/edwards25519.(*nafLookupTable5).FromP3crypto/ed25519/internal/edwards25519.(*nafLookupTable8).FromP3crypto/ed25519/internal/edwards25519.(*affineLookupTable).SelectIntocrypto/ed25519/internal/edwards25519.(*affineCached).Zerocrypto/ed25519/internal/edwards25519.basepointTable.func1crypto/ed25519/internal/edwards25519.NewGeneratorPointcrypto/ed25519/internal/edwards25519.basepointNafTable.func1crypto/ed25519/internal/edwards25519.initcrypto/ed25519.PublicKey.Equalcrypto/ed25519.PrivateKey.Publiccrypto/ed25519.PrivateKey.Equalcrypto/ed25519.PrivateKey.Seedcrypto/ed25519.PrivateKey.Signcrypto/ed25519.Signcrypto/ed25519.GenerateKeycrypto/ed25519.NewKeyFromSeedcrypto/ed25519.newKeyFromSeedcrypto/ed25519/internal/edwards25519.NewScalarcrypto/ed25519/internal/edwards25519.(*Point).Bytescrypto/ed25519.signcrypto/ed25519/internal/edwards25519.(*Scalar).MultiplyAddcrypto/ed25519/internal/edwards25519.(*Scalar).Bytescrypto/ed25519.Verifycrypto/ed25519.(*PrivateKey).Equalcrypto/ed25519.(*PrivateKey).Publiccrypto/ed25519.(*PrivateKey).Seedcrypto/ed25519.(*PrivateKey).Signcrypto/ed25519.(*PublicKey).Equalcrypto/des.cryptBlockcrypto/des.feistelcrypto/des.permuteBlockcrypto/des.initFeistelBoxcrypto/des.permuteInitialBlockcrypto/des.permuteFinalBlockcrypto/des.(*desCipher).generateSubkeyscrypto/des.ksRotatecrypto/des.unpackcrypto/des.KeySizeError.Errorcrypto/des.(*desCipher).BlockSizecrypto/des.(*desCipher).Encryptcrypto/des.encryptBlockcrypto/des.(*desCipher).Decryptcrypto/des.decryptBlockcrypto/des.NewTripleDESCiphercrypto/des.(*tripleDESCipher).BlockSizecrypto/des.(*tripleDESCipher).Encryptcrypto/des.(*tripleDESCipher).Decryptcrypto/des.(*KeySizeError).Errorcrypto/rc4.KeySizeError.Errorcrypto/rc4.NewCiphercrypto/rc4.(*Cipher).Resetcrypto/rc4.(*Cipher).XORKeyStreamtype..eq.crypto/rc4.Ciphercrypto/rc4.(*KeySizeError).Errorcrypto/sha1.init.0crypto/sha1.(*digest).MarshalBinarycrypto/sha1.appendUint32crypto/sha1.(*digest).UnmarshalBinarycrypto/sha1.consumeUint32crypto/sha1.consumeUint64crypto/sha1.appendUint64crypto/sha1.(*digest).Resetcrypto/sha1.Newcrypto/sha1.(*digest).Sizecrypto/sha1.(*digest).BlockSizecrypto/sha1.(*digest).Writecrypto/sha1.(*digest).Sumcrypto/sha1.(*digest).checkSumcrypto/sha1.(*digest).ConstantTimeSumcrypto/sha1.(*digest).constSumcrypto/sha1.blockGenericcrypto/sha1.blockcrypto/sha1.sha1blocktype..eq.crypto/sha1.digestvendor/golang.org/x/crypto/chacha20.newUnauthenticatedCiphervendor/golang.org/x/crypto/chacha20.HChaCha20encoding/binary.littleEndian.Uint32vendor/golang.org/x/crypto/chacha20.(*Cipher).XORKeyStreamvendor/golang.org/x/crypto/internal/subtle.InexactOverlapvendor/golang.org/x/crypto/internal/subtle.AnyOverlapvendor/golang.org/x/crypto/chacha20.(*Cipher).xorKeyStreamBlocksvendor/golang.org/x/crypto/chacha20.(*Cipher).xorKeyStreamBlocksGenericvendor/golang.org/x/crypto/chacha20.quarterRoundvendor/golang.org/x/crypto/chacha20.addXorvendor/golang.org/x/crypto/chacha20.hChaCha20encoding/binary.littleEndian.PutUint32vendor/golang.org/x/crypto/chacha20.xorKeyStreamVXvendor/golang.org/x/crypto/poly1305.(*MAC).Verifyvendor/golang.org/x/crypto/poly1305.(*macGeneric).Writevendor/golang.org/x/crypto/poly1305.(*macGeneric).Sumvendor/golang.org/x/crypto/poly1305.initializevendor/golang.org/x/crypto/poly1305.updateGenericvendor/golang.org/x/crypto/poly1305.bitsAdd64vendor/golang.org/x/crypto/poly1305.shiftRightBy2vendor/golang.org/x/crypto/poly1305.mul64vendor/golang.org/x/crypto/poly1305.bitsMul64vendor/golang.org/x/crypto/poly1305.add128vendor/golang.org/x/crypto/poly1305.finalizevendor/golang.org/x/crypto/poly1305.bitsSub64vendor/golang.org/x/crypto/poly1305.select64vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).NonceSizevendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Overheadvendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Sealvendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).sealvendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Openvendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).openvendor/golang.org/x/crypto/chacha20poly1305.writeWithPaddingvendor/golang.org/x/crypto/poly1305.(*MAC).Writevendor/golang.org/x/crypto/chacha20poly1305.writeUint64vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).sealGenericvendor/golang.org/x/crypto/chacha20poly1305.sliceForAppendvendor/golang.org/x/crypto/chacha20.NewUnauthenticatedCiphervendor/golang.org/x/crypto/chacha20.(*Cipher).SetCountervendor/golang.org/x/crypto/poly1305.Newvendor/golang.org/x/crypto/poly1305.(*MAC).Sumvendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).openGenericvendor/golang.org/x/crypto/chacha20poly1305.initcontainer/list.(*Element).Nextcontainer/list.(*Element).Prevcontainer/list.(*List).Initcontainer/list.(*List).Lencontainer/list.(*List).Frontcontainer/list.(*List).Backcontainer/list.(*List).Removecontainer/list.(*List).removecontainer/list.(*List).PushFrontcontainer/list.(*List).lazyInitcontainer/list.(*List).insertValuecontainer/list.(*List).insertcontainer/list.(*List).PushBackcontainer/list.(*List).InsertBeforecontainer/list.(*List).InsertAftercontainer/list.(*List).MoveToFrontcontainer/list.(*List).movecontainer/list.(*List).MoveToBackcontainer/list.(*List).MoveBeforecontainer/list.(*List).MoveAftercontainer/list.(*List).PushBackListcontainer/list.(*List).PushFrontListtype..eq.container/list.Listtype..eq.container/list.Elementencoding/pem.getLineencoding/pem.removeSpacesAndTabsbytes.ContainsAnyencoding/pem.Decodebytes.HasSuffixencoding/pem.decodeErrorencoding/pem.(*lineBreaker).Writeencoding/pem.(*lineBreaker).Closeencoding/pem.Encodeencoding/pem.writeHeaderencoding/pem.EncodeToMemorytype..eq.encoding/pem.lineBreakercrypto/dsa.initencoding/hex.Encodeencoding/hex.initcrypto/x509/pkix.RDNSequence.Stringencoding/asn1.Marshalencoding/hex.EncodeToStringencoding/hex.EncodedLencrypto/x509/pkix.(*Name).FillFromRDNSequencecrypto/x509/pkix.Name.appendRDNscrypto/x509/pkix.Name.ToRDNSequencecrypto/x509/pkix.Name.Stringcrypto/x509/pkix.oidInAttributeTypeAndValuecrypto/x509/pkix.(*CertificateList).HasExpiredcrypto/x509/pkix.initcrypto/x509/pkix.(*RDNSequence).Stringcrypto/x509/pkix.(*Name).Stringcrypto/x509/pkix.(*Name).ToRDNSequencevendor/golang.org/x/net/dns/dnsmessage.(*nestedError).Errorvendor/golang.org/x/net/dns/dnsmessage.(*header).packvendor/golang.org/x/net/dns/dnsmessage.packUint16vendor/golang.org/x/net/dns/dnsmessage.(*header).unpackvendor/golang.org/x/net/dns/dnsmessage.unpackUint16vendor/golang.org/x/net/dns/dnsmessage.(*Parser).Startvendor/golang.org/x/net/dns/dnsmessage.(*header).headervendor/golang.org/x/net/dns/dnsmessage.(*Parser).resourceHeadervendor/golang.org/x/net/dns/dnsmessage.(*Parser).checkAdvancevendor/golang.org/x/net/dns/dnsmessage.(*header).countvendor/golang.org/x/net/dns/dnsmessage.(*Parser).skipResourcevendor/golang.org/x/net/dns/dnsmessage.(*Parser).Questionvendor/golang.org/x/net/dns/dnsmessage.(*Name).unpackvendor/golang.org/x/net/dns/dnsmessage.unpackTypevendor/golang.org/x/net/dns/dnsmessage.unpackClassvendor/golang.org/x/net/dns/dnsmessage.(*Parser).SkipQuestionvendor/golang.org/x/net/dns/dnsmessage.skipTypevendor/golang.org/x/net/dns/dnsmessage.skipUint16vendor/golang.org/x/net/dns/dnsmessage.skipClassvendor/golang.org/x/net/dns/dnsmessage.(*Parser).AResourcevendor/golang.org/x/net/dns/dnsmessage.unpackAResourcevendor/golang.org/x/net/dns/dnsmessage.unpackBytesvendor/golang.org/x/net/dns/dnsmessage.(*Parser).AAAAResourcevendor/golang.org/x/net/dns/dnsmessage.unpackAAAAResourcevendor/golang.org/x/net/dns/dnsmessage.NewBuildervendor/golang.org/x/net/dns/dnsmessage.(*Header).packvendor/golang.org/x/net/dns/dnsmessage.(*Builder).Questionvendor/golang.org/x/net/dns/dnsmessage.(*Builder).incrementSectionCountvendor/golang.org/x/net/dns/dnsmessage.(*Builder).Finishvendor/golang.org/x/net/dns/dnsmessage.(*ResourceHeader).unpackvendor/golang.org/x/net/dns/dnsmessage.unpackUint32vendor/golang.org/x/net/dns/dnsmessage.skipResourcevendor/golang.org/x/net/dns/dnsmessage.skipUint32vendor/golang.org/x/net/dns/dnsmessage.(*Name).packvendor/golang.org/x/net/dns/dnsmessage.(*Name).unpackCompressedvendor/golang.org/x/net/dns/dnsmessage.skipNamevendor/golang.org/x/net/dns/dnsmessage.(*Question).packvendor/golang.org/x/net/dns/dnsmessage.packTypevendor/golang.org/x/net/dns/dnsmessage.packClassvendor/golang.org/x/net/dns/dnsmessage.inittype..eq.vendor/golang.org/x/net/dns/dnsmessage.ResourceHeadertype..eq.vendor/golang.org/x/net/dns/dnsmessage.nestedErrorvendor/golang.org/x/net/route.(*LinkAddr).Familyvendor/golang.org/x/net/route.(*LinkAddr).marshalvendor/golang.org/x/net/route.(*LinkAddr).lenAndSpacevendor/golang.org/x/net/route.roundupvendor/golang.org/x/net/route.parseLinkAddrvendor/golang.org/x/net/route.parseKernelLinkAddrvendor/golang.org/x/net/route.(*Inet4Addr).Familyvendor/golang.org/x/net/route.(*Inet6Addr).Familyvendor/golang.org/x/net/route.(*Inet6Addr).marshalvendor/golang.org/x/net/route.(*Inet6Addr).lenAndSpacevendor/golang.org/x/net/route.parseInetAddrvendor/golang.org/x/net/route.binaryBigEndian.Uint16vendor/golang.org/x/net/route.parseKernelInetAddrvendor/golang.org/x/net/route.(*DefaultAddr).Familyvendor/golang.org/x/net/route.addrsSpacevendor/golang.org/x/net/route.(*Inet4Addr).lenAndSpacevendor/golang.org/x/net/route.(*DefaultAddr).lenAndSpacevendor/golang.org/x/net/route.marshalAddrsvendor/golang.org/x/net/route.(*Inet4Addr).marshalvendor/golang.org/x/net/route.(*DefaultAddr).marshalvendor/golang.org/x/net/route.parseAddrsvendor/golang.org/x/net/route.binaryLittleEndian.Uint16vendor/golang.org/x/net/route.binaryLittleEndian.PutUint16vendor/golang.org/x/net/route.binaryLittleEndian.Uint32vendor/golang.org/x/net/route.binaryLittleEndian.PutUint32vendor/golang.org/x/net/route.binaryLittleEndian.Uint64vendor/golang.org/x/net/route.binaryBigEndian.PutUint16vendor/golang.org/x/net/route.binaryBigEndian.Uint32vendor/golang.org/x/net/route.binaryBigEndian.PutUint32vendor/golang.org/x/net/route.binaryBigEndian.Uint64vendor/golang.org/x/net/route.(*InterfaceAddrMessage).Sysvendor/golang.org/x/net/route.(*InterfaceMulticastAddrMessage).Sysvendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMessagevendor/golang.org/x/net/route.(*wireFormat).parseInterfaceAddrMessagevendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMulticastAddrMessagevendor/golang.org/x/net/route.ParseRIBvendor/golang.org/x/net/route.RIBType.parseablevendor/golang.org/x/net/route.(*RouteMessage).Marshalvendor/golang.org/x/net/route.FetchRIBvendor/golang.org/x/net/route.(*RouteMessage).marshalvendor/golang.org/x/net/route.(*wireFormat).parseRouteMessagevendor/golang.org/x/net/route.init.0vendor/golang.org/x/net/route.(*RouteMetrics).SysTypevendor/golang.org/x/net/route.(*RouteMessage).Sysvendor/golang.org/x/net/route.(*InterfaceMetrics).SysTypevendor/golang.org/x/net/route.(*InterfaceMessage).Sysvendor/golang.org/x/net/route.probeRoutingStackvendor/golang.org/x/net/route.initvendor/golang.org/x/net/route.(*wireFormat).parseRouteMessage-fmvendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMessage-fmvendor/golang.org/x/net/route.(*wireFormat).parseInterfaceAddrMessage-fmvendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMulticastAddrMessage-fmvendor/golang.org/x/net/route.(*binaryBigEndian).PutUint16vendor/golang.org/x/net/route.(*binaryBigEndian).PutUint32vendor/golang.org/x/net/route.(*binaryBigEndian).Uint16vendor/golang.org/x/net/route.(*binaryBigEndian).Uint32vendor/golang.org/x/net/route.(*binaryBigEndian).Uint64vendor/golang.org/x/net/route.(*binaryLittleEndian).PutUint16vendor/golang.org/x/net/route.(*binaryLittleEndian).PutUint32vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint16vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint32vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint64type..eq.[8]vendor/golang.org/x/net/route.Addrinternal/singleflight.(*Group).DoChaninternal/singleflight.(*Group).doCallinternal/singleflight.(*Group).ForgetUnsharedtype..eq.internal/singleflight.Result_cgo_paniccrosscall2net.sortByRFC6724net.sortByRFC6724withSrcsnet.srcAddrsnet.(*conn).LocalAddrnet.ipAttrOfnet.(*byRFC6724).Lennet.(*byRFC6724).Swapnet.(*byRFC6724).Lessnet.IP.To4net.isZerosnet.init.0sort.Reversenet.byMaskLength.Lennet.byMaskLength.Swapnet.byMaskLength.Lessnet.IPMask.Sizenet.mustCIDRnet.policyTable.Classifynet.classifyScopenet.commonPrefixLennet.initConfValnet.(*conf).hostLookupOrdernet.(*Resolver).preferGonet.stringsHasSuffixnet.isGatewaynet.stringsEqualFoldnet.stringsHasPrefixnet.lowerASCIInet.(*conf).hostLookupOrder.func1net.hostLookupOrder.Stringnet.goDebugNetDNSnet.goDebugNetDNS.func1net.dtoinet.isLocalhostnet.minNonzeroTimenet.(*Dialer).deadlinenet.partialDeadlinenet.parseNetworknet.lastnet.(*Resolver).resolveAddrListnet.ResolveUnixAddrnet.(*UnixAddr).Networknet.(*TCPAddr).isWildcardnet.(*UDPAddr).isWildcardnet.(*IPAddr).isWildcardnet.(*Dialer).DialContextnet.(*Dialer).resolvernet.(*Dialer).dualStacknet.(*Dialer).DialContext.func1net.(*sysDialer).dialParallelnet.(*Dialer).fallbackDelaynet.(*sysDialer).dialParallel.func1net.(*sysDialer).dialSerialnet.mapErrnet.(*sysDialer).dialSinglenet.(*sysDialer).dialSingle.func1net.randIntnet.isDomainNamenet.absDomainNamenet.newRequestvendor/golang.org/x/net/dns/dnsmessage.(*Builder).EnableCompressionvendor/golang.org/x/net/dns/dnsmessage.(*Builder).StartQuestionsvendor/golang.org/x/net/dns/dnsmessage.(*Builder).startChecknet.checkResponsenet.equalASCIINamenet.dnsPacketRoundTripnet.dnsStreamRoundTripnet.(*Resolver).exchangenet.checkHeadervendor/golang.org/x/net/dns/dnsmessage.(*Parser).AnswerHeadernet.skipToAnswervendor/golang.org/x/net/dns/dnsmessage.(*Parser).SkipAnswernet.(*Resolver).tryOneNamenet.(*dnsConfig).serverOffsetvendor/golang.org/x/net/dns/dnsmessage.NewNamenet.(*resolverConfig).initnet.systemConfnet.(*resolverConfig).tryUpdatenet.(*resolverConfig).tryAcquireSemanet.(*resolverConfig).releaseSemanet.avoidDNSnet.(*dnsConfig).nameListnet.countnet.goLookupIPFilesnet.splitHostZonenet.(*Resolver).goLookupIPnet.(*Resolver).goLookupIPCNAMEOrdernet.ipVersionnet.(*Resolver).strictErrorsnet.(*Resolver).goLookupIPCNAMEOrder.func4net.(*Resolver).goLookupIPCNAMEOrder.func3net.(*Resolver).goLookupIPCNAMEOrder.func3.1net.(*Resolver).goLookupIPCNAMEOrder.func2net.dnsReadConfignet.getFieldsnet.JoinHostPortnet.ensureRootednet.hasPrefixnet.dnsDefaultSearchnet.(*netFD).Closenet.(*netFD).shutdownnet.wrapSyscallErrornet.(*netFD).Readnet.(*netFD).readFromnet.(*netFD).readMsgnet.(*netFD).Writenet.(*netFD).writeTonet.(*netFD).writeMsgnet.(*netFD).SetDeadlinenet.(*netFD).SetReadDeadlinenet.(*netFD).SetWriteDeadlinenet.(*netFD).namenet.(*netFD).connectnet.(*netFD).connect.func2net.(*netFD).connect.func1net.(*netFD).dupnet.parseLiteralIPnet.readHostsnet.(*file).closenet.lookupStaticHostnet.(*ipv6ZoneCache).updatenet.(*ipv6ZoneCache).namenet.(*ipv6ZoneCache).indexnet.interfaceTablenet.linkFlagsnet.interfaceMessagesnet.IP.IsUnspecifiednet.IP.IsLoopbacknet.IP.IsPrivatenet.IP.IsMulticastnet.IP.IsInterfaceLocalMulticastnet.IP.IsLinkLocalMulticastnet.IP.IsLinkLocalUnicastnet.IP.IsGlobalUnicastnet.IP.To16net.IPv4net.IP.DefaultMasknet.allFFnet.IP.Masknet.IP.Stringnet.ubtoanet.appendHexnet.hexStringnet.IP.MarshalTextnet.(*IP).UnmarshalTextnet.IP.Equalnet.IP.matchAddrFamilynet.simpleMaskLengthnet.IPMask.Stringnet.networkNumberAndMasknet.(*IPNet).Containsnet.(*IPNet).Networknet.(*IPNet).Stringnet.parseIPv4net.parseIPv6Zonenet.parseIPv6net.ParseIPnet.parseIPZonenet.ParseCIDRnet.CIDRMasknet.(*IPAddr).Networknet.(*IPAddr).Stringnet.ipEmptyStringnet.(*IPConn).SyscallConnnet.newRawConnnet.(*IPConn).ReadFromIPnet.(*IPConn).ReadFromnet.(*IPConn).ReadMsgIPnet.(*IPConn).WriteToIPnet.(*IPAddr).opAddrnet.(*IPConn).WriteTonet.(*IPConn).WriteMsgIPnet.sockaddrToIPnet.(*IPAddr).familynet.(*IPAddr).sockaddrnet.(*IPConn).readFromnet.stripIPv4Headernet.(*IPConn).readMsgnet.(*IPConn).writeTonet.(*IPConn).writeMsgnet.(*sysDialer).dialIPnet.newIPConnnet.supportsIPv4net.supportsIPv4mapnet.isIPv4net.addrList.partitionnet.filterAddrListnet.ipv4onlynet.ipv6onlynet.SplitHostPortnet.SplitHostPort.func1net.(*Resolver).internetAddrListnet.(*Resolver).internetAddrList.func1net.(*ipStackCapabilities).probenet.favoriteAddrFamilynet.internetSocketnet.ipToSockaddrnet.lookupProtocolMapnet.lookupPortMapnet.(*onlyValuesCtx).Valuenet.(*Resolver).lookupIPAddrnet.withUnexpiredValuesPreservednet.(*Resolver).getLookupGroupnet.lookupIPReturnnet.(*Resolver).lookupIPAddr.func2net.(*Resolver).lookupIPAddr.func1net.ipAddrsEfacenet.(*Resolver).LookupPortnet.readProtocolsnet.lookupProtocolnet.(*Resolver).dialnet.(*Resolver).lookupIPnet.(*Resolver).lookupPortnet.(*conf).canUseCgonet.concurrentThreadsLimitnet.(*conn).Readnet.(*conn).oknet.(*conn).Writenet.(*conn).Closenet.(*conn).RemoteAddrnet.(*conn).SetDeadlinenet.(*conn).SetReadDeadlinenet.(*conn).SetWriteDeadlinenet.(*conn).SetReadBuffernet.(*conn).SetWriteBuffernet.(*conn).Filenet.listenerBacklognet.(*OpError).Unwrapnet.(*OpError).Errornet.(*OpError).Timeoutnet.(*OpError).Temporarynet.isConnErrornet.(*ParseError).Errornet.(*ParseError).Timeoutnet.(*ParseError).Temporarynet.(*AddrError).Errornet.(*AddrError).Timeoutnet.(*AddrError).Temporarynet.UnknownNetworkError.Errornet.UnknownNetworkError.Timeoutnet.UnknownNetworkError.Temporarynet.(*timeoutError).Errornet.(*timeoutError).Timeoutnet.(*timeoutError).Temporarynet.(*DNSError).Errornet.(*DNSError).Timeoutnet.(*DNSError).Temporarynet.genericReadFromnet.acquireThreadnet.releaseThreadnet.nssSource.standardCriterianet.nssCriterion.standardStatusActionnet.(*file).getLineFromDatanet.(*file).readLinenet.opennet.statnet.countAnyBytenet.splitAtBytesnet.xtoinet.lowerASCIIBytesnet.stringsHasSuffixFoldnet.goDebugStringnet.parsePortnet.readServicesnet.goLookupPortnet.(*rawConn).Controlnet.(*rawConn).oknet.(*rawConn).Readnet.(*rawConn).Writenet.maxListenerBacklognet.socketnet.newFDnet.(*netFD).dialnet.(*netFD).ctrlNetworknet.(*netFD).initnet.(*netFD).addrFuncnet.(*netFD).setAddrnet.(*netFD).listenStreamnet.(*netFD).listenDatagramnet.setDefaultSockoptsnet.setDefaultListenerSockoptsnet.setDefaultMulticastSockoptsnet.setReadBuffernet.setWriteBuffernet.setKeepAlivenet.setLingernet.sysSocketnet.(*TCPAddr).Networknet.(*TCPAddr).Stringnet.(*TCPConn).SyscallConnnet.(*TCPConn).ReadFromnet.(*TCPConn).CloseReadnet.(*netFD).closeReadnet.(*TCPConn).CloseWritenet.(*netFD).closeWritenet.(*TCPConn).SetLingernet.(*TCPConn).SetKeepAlivenet.(*TCPConn).SetKeepAlivePeriodnet.(*TCPConn).SetNoDelaynet.sockaddrToTCPnet.(*TCPAddr).familynet.(*TCPAddr).sockaddrnet.(*TCPConn).readFromnet.(*sysDialer).dialTCPnet.(*sysDialer).doDialTCPnet.spuriousENOTAVAILnet.newTCPConnnet.selfConnectnet.setKeepAlivePeriodnet.roundDurationUpnet.setNoDelaynet.(*UDPAddr).Networknet.(*UDPAddr).Stringnet.(*UDPConn).SyscallConnnet.(*UDPConn).ReadFromUDPnet.(*UDPConn).readFromUDPnet.(*UDPConn).ReadFromnet.(*UDPConn).ReadMsgUDPnet.(*UDPConn).WriteToUDPnet.(*UDPAddr).opAddrnet.(*UDPConn).WriteTonet.(*UDPConn).WriteMsgUDPnet.DialUDPnet.sockaddrToUDPnet.(*UDPAddr).familynet.(*UDPAddr).sockaddrnet.(*UDPConn).readFromnet.(*UDPConn).readMsgnet.(*UDPConn).writeTonet.(*UDPConn).writeMsgnet.(*sysDialer).dialUDPnet.newUDPConnnet.(*UnixAddr).Stringnet.(*UnixAddr).isWildcardnet.(*UnixConn).SyscallConnnet.(*UnixConn).CloseReadnet.(*UnixConn).CloseWritenet.(*UnixConn).ReadFromUnixnet.(*UnixConn).ReadFromnet.(*UnixConn).ReadMsgUnixnet.(*UnixConn).WriteToUnixnet.(*UnixAddr).opAddrnet.(*UnixConn).WriteTonet.(*UnixConn).WriteMsgUnixnet.unixSocketnet.sockaddrToUnixnet.sockaddrToUnixgramnet.sockaddrToUnixpacketnet.(*UnixAddr).familynet.(*UnixAddr).sockaddrnet.(*UnixConn).readFromnet.sotypeToNetnet.(*UnixConn).readMsgnet.(*UnixConn).writeTonet.(*UnixConn).writeMsgnet.(*sysDialer).dialUnixnet.newUnixConnnet.setReadMsgCloseOnExecsyscall.ParseUnixRightsnet._C2func_getaddrinfonet._Cfunc_freeaddrinfonet._Cfunc_gai_strerrornet.addrinfoErrno.Errornet._Cfunc_GoStringnet.addrinfoErrno.Temporarynet.addrinfoErrno.Timeoutnet.cgoLookupPortnet.cgoLookupServicePortnet.cgoLookupServicePort.func2net.cgoLookupServicePort.func2.1net.cgoLookupServicePort.func1net.cgoPortLookupnet.cgoLookupIPCNAMEnet.cgoLookupIPCNAME.func2net.cgoLookupIPCNAME.func2.1net.cgoLookupIPCNAME.func1net.cgoIPLookupnet.cgoLookupIPnet.copyIPnet.glob..func1net.glob..func2net.glob..func4net.initConfVal.func1net.(*Resolver).goLookupIPCNAMEOrder.func1net.listenerBacklog.func1net.acquireThread.func1net.initnet.IPv4Masknet.(*netFD).listenStream.func1net.(*netFD).listenDatagram.func1net.(*netFD).dial.func1net.(*netFD).dial.func2net.(*netFD).dial.func3net.(*netFD).dial.func4net.(*netFD).dial.func5net.(*resolverConfig).init-fmnet.(*ipStackCapabilities).probe-fmnet.(*Resolver).lookupIP-fmnet.(*onlyValuesCtx).Deadlinenet.(*onlyValuesCtx).Donenet.(*onlyValuesCtx).Errnet.(*TCPConn).Closenet.(*TCPConn).Filenet.(*TCPConn).LocalAddrnet.(*TCPConn).Readnet.(*TCPConn).RemoteAddrnet.(*TCPConn).SetDeadlinenet.(*TCPConn).SetReadBuffernet.(*TCPConn).SetReadDeadlinenet.(*TCPConn).SetWriteBuffernet.(*TCPConn).SetWriteDeadlinenet.(*TCPConn).Writenet.(*UDPConn).Closenet.(*UDPConn).Filenet.(*UDPConn).LocalAddrnet.(*UDPConn).Readnet.(*UDPConn).RemoteAddrnet.(*UDPConn).SetDeadlinenet.(*UDPConn).SetReadBuffernet.(*UDPConn).SetReadDeadlinenet.(*UDPConn).SetWriteBuffernet.(*UDPConn).SetWriteDeadlinenet.(*UDPConn).Writenet.(*IPConn).Closenet.(*IPConn).Filenet.(*IPConn).LocalAddrnet.(*IPConn).Readnet.(*IPConn).RemoteAddrnet.(*IPConn).SetDeadlinenet.(*IPConn).SetReadBuffernet.(*IPConn).SetReadDeadlinenet.(*IPConn).SetWriteBuffernet.(*IPConn).SetWriteDeadlinenet.(*IPConn).Writenet.(*UnixConn).Closenet.(*UnixConn).Filenet.(*UnixConn).LocalAddrnet.(*UnixConn).Readnet.(*UnixConn).RemoteAddrnet.(*UnixConn).SetDeadlinenet.(*UnixConn).SetReadBuffernet.(*UnixConn).SetReadDeadlinenet.(*UnixConn).SetWriteBuffernet.(*UnixConn).SetWriteDeadlinenet.(*UnixConn).Writetype..eq.net.AddrErrortype..eq.net.DNSErrornet.(*IP).DefaultMasknet.(*IP).Equalnet.(*IP).IsGlobalUnicastnet.(*IP).IsInterfaceLocalMulticastnet.(*IP).IsLinkLocalMulticastnet.(*IP).IsLinkLocalUnicastnet.(*IP).IsLoopbacknet.(*IP).IsMulticastnet.(*IP).IsPrivatenet.(*IP).IsUnspecifiednet.(*IP).MarshalTextnet.(*IP).Masknet.(*IP).Stringnet.(*IP).To16net.(*IP).To4net.(*IPMask).Sizenet.(*IPMask).Stringtype..eq.net.netFDtype..eq.net.OpErrortype..eq.net.ParseErrortype..eq.net.UnixAddrnet.(*UnknownNetworkError).Errornet.(*UnknownNetworkError).Temporarynet.(*UnknownNetworkError).Timeouttype..eq.net._Ctype_struct_addrinfonet.(*addrinfoErrno).Errornet.(*addrinfoErrno).Temporarynet.(*addrinfoErrno).Timeouttype..eq.net.policyTableEntrynet.(*byMaskLength).Lennet.(*byMaskLength).Lessnet.(*byMaskLength).Swaptype..eq.net.nssCriteriontype..eq.net.dialResult·1type..eq.net.onlyValuesCtxnet.onlyValuesCtx.Deadlinenet.onlyValuesCtx.Donenet.onlyValuesCtx.Errtype..eq.net.portLookupResultnet.(*writerOnly).Writenet.writerOnly.Writecrypto/md5.init.0crypto/md5.(*digest).Resetcrypto/md5.(*digest).MarshalBinarycrypto/md5.appendUint32crypto/md5.(*digest).UnmarshalBinarycrypto/md5.consumeUint32crypto/md5.consumeUint64crypto/md5.appendUint64crypto/md5.Newcrypto/md5.(*digest).Sizecrypto/md5.(*digest).BlockSizecrypto/md5.(*digest).Writecrypto/md5.(*digest).Sumcrypto/md5.(*digest).checkSumcrypto/md5.blockcrypto/x509/internal/macos.CFDataToSlicecrypto/x509/internal/macos.StringToCFStringcrypto/x509/internal/macos.CFDictionaryGetValueIfPresentcrypto/x509/internal/macos.CFNumberGetValuecrypto/x509/internal/macos.CFDataGetLengthcrypto/x509/internal/macos.CFDataGetBytePtrcrypto/x509/internal/macos.CFArrayGetCountcrypto/x509/internal/macos.CFArrayGetValueAtIndexcrypto/x509/internal/macos.CFEqualcrypto/x509/internal/macos.CFReleasecrypto/x509/internal/macos.OSStatus.Errorcrypto/x509/internal/macos.SecTrustSettingsCopyCertificatescrypto/x509/internal/macos.SecItemExportcrypto/x509/internal/macos.SecTrustSettingsCopyTrustSettingscrypto/x509/internal/macos.SecPolicyCopyPropertiescrypto/x509/internal/macos.initcrypto/x509/internal/macos.x509_CFArrayGetCount_trampolinecrypto/x509/internal/macos.x509_CFArrayGetValueAtIndex_trampolinecrypto/x509/internal/macos.x509_CFDataGetBytePtr_trampolinecrypto/x509/internal/macos.x509_CFDataGetLength_trampolinecrypto/x509/internal/macos.x509_CFStringCreateWithBytes_trampolinecrypto/x509/internal/macos.x509_CFRelease_trampolinecrypto/x509/internal/macos.x509_CFDictionaryGetValueIfPresent_trampolinecrypto/x509/internal/macos.x509_CFNumberGetValue_trampolinecrypto/x509/internal/macos.x509_CFEqual_trampolinecrypto/x509/internal/macos.x509_SecTrustSettingsCopyCertificates_trampolinecrypto/x509/internal/macos.x509_SecItemExport_trampolinecrypto/x509/internal/macos.x509_SecTrustSettingsCopyTrustSettings_trampolinecrypto/x509/internal/macos.x509_SecPolicyCopyProperties_trampolinetype..eq.crypto/x509/internal/macos.OSStatuscrypto/x509/internal/macos.(*OSStatus).Errorcrypto/x509.(*CertPool).findPotentialParentscrypto/x509.(*CertPool).certcrypto/x509.(*CertPool).AddCertcrypto/x509.(*CertPool).addCertFunccrypto/x509.(*CertPool).AddCert.func1crypto/x509.(*CertPool).AppendCertsFromPEMcrypto/x509.(*CertPool).AppendCertsFromPEM.func1crypto/x509.(*CertPool).AppendCertsFromPEM.func1.1crypto/x509.(*CertPool).Subjectscrypto/x509.(*CertPool).lencrypto/x509.parseASN1Stringcrypto/x509.isPrintablecrypto/x509.parseNamecrypto/x509.parseAIcrypto/x509.parseValiditycrypto/x509.parseValidity.func1crypto/x509.parseExtensioncrypto/x509.parsePublicKeycrypto/x509.parseKeyUsageExtensioncrypto/x509.parseBasicConstraintsExtensioncrypto/x509.forEachSANcrypto/x509.parseSANExtensioncrypto/x509.parseSANExtension.func1crypto/x509.parseExtKeyUsageExtensioncrypto/x509.parseCertificatePoliciesExtensioncrypto/x509.isValidIPMaskcrypto/x509.parseNameConstraintsExtensioncrypto/x509.parseNameConstraintsExtension.func1crypto/x509.processExtensionscrypto/x509.parseCertificatecrypto/x509.ParseCertificatecrypto/x509.ParsePKCS1PrivateKeyencoding/asn1.Unmarshalcrypto/x509.MarshalPKCS1PrivateKeycrypto/x509.ParsePKCS1PublicKeycrypto/x509.ParsePKCS8PrivateKeycrypto/x509.MarshalPKCS8PrivateKeycrypto/x509.initSystemRootscrypto/x509.loadSystemRootscrypto/x509.NewCertPoolcrypto/x509.isRootCertificatecrypto/x509.exportCertificatecrypto/x509.sslTrustSettingsResultcrypto/x509.marshalECPrivateKeyWithOIDcrypto/x509.parseECPrivateKeycrypto/x509.CertificateInvalidError.Errorcrypto/x509.HostnameError.Errorcrypto/x509.(*Certificate).hasSANExtensioncrypto/x509.UnknownAuthorityError.Errorcrypto/x509.SystemRootsError.Errorcrypto/x509.SystemRootsError.Unwrapcrypto/x509.parseRFC2821Mailboxbytes.Containscrypto/x509.domainToReverseLabelscrypto/x509.matchEmailConstraintcrypto/x509.matchURIConstraintcrypto/x509.matchIPConstraintcrypto/x509.matchDomainConstraintcrypto/x509.(*Certificate).checkNameConstraintscrypto/x509.(*Certificate).isValidcrypto/x509.(*Certificate).hasNameConstraintscrypto/x509.(*Certificate).isValid.func1crypto/x509.(*Certificate).Verifycrypto/x509.systemRootsPoolcrypto/x509.(*CertPool).containscrypto/x509.(*Certificate).buildChainscrypto/x509.(*Certificate).buildChains.func1crypto/x509.(*Certificate).Equalcrypto/x509.appendToFreshChaincrypto/x509.validHostnamestrings.TrimSuffixcrypto/x509.matchExactlycrypto/x509.matchHostnamescrypto/x509.toLowerCaseASCIIcrypto/x509.(*Certificate).VerifyHostnamecrypto/x509.validHostnameInputcrypto/x509.validHostnamePatterncrypto/x509.checkChainForKeyUsagecrypto/x509.ParsePKIXPublicKeycrypto/x509.marshalPublicKeycrypto/x509.MarshalPKIXPublicKeycrypto/x509.SignatureAlgorithm.Stringcrypto/x509.PublicKeyAlgorithm.Stringcrypto/x509.getSignatureAlgorithmFromAIcrypto/x509.getPublicKeyAlgorithmFromOIDcrypto/x509.namedCurveFromOIDcrypto/elliptic.P224crypto/elliptic.P256crypto/elliptic.P384crypto/elliptic.P521crypto/x509.oidFromNamedCurvecrypto/x509.extKeyUsageFromOIDcrypto/x509.InsecureAlgorithmError.Errorcrypto/x509.ConstraintViolationError.Errorcrypto/x509.(*Certificate).CheckSignatureFromcrypto/x509.(*Certificate).CheckSignaturecrypto/x509.(*Certificate).getSANExtensioncrypto/x509.signaturePublicKeyAlgoMismatchErrorcrypto/x509.checkSignaturecrypto/x509.SignatureAlgorithm.isRSAPSScrypto/x509.(*Certificate).CheckCRLSignaturecrypto/x509.UnhandledCriticalExtension.Errorcrypto/x509.oidInExtensionscrypto/x509.isIA5Stringcrypto/x509.signingParamsForPublicKeycrypto/x509.(*Certificate).CreateCRLcrypto/x509.sslTrustSettingsResult.func1crypto/x509.(*Certificate).isValid.func1.1crypto/x509.(*Certificate).isValid.func1.2crypto/x509.(*Certificate).isValid.func1.3crypto/x509.(*Certificate).isValid.func1.4crypto/x509.initcrypto/x509.(*SignatureAlgorithm).Stringcrypto/x509.(*PublicKeyAlgorithm).Stringtype..eq.crypto/x509.CertificateInvalidErrorcrypto/x509.(*CertificateInvalidError).Errorcrypto/x509.(*ConstraintViolationError).Errortype..eq.crypto/x509.HostnameErrorcrypto/x509.(*HostnameError).Errorcrypto/x509.(*InsecureAlgorithmError).Errorcrypto/x509.(*SystemRootsError).Errorcrypto/x509.(*SystemRootsError).Unwrapcrypto/x509.(*UnhandledCriticalExtension).Errortype..eq.crypto/x509.UnknownAuthorityErrorcrypto/x509.(*UnknownAuthorityError).Errortype..eq.crypto/x509.rfc2821Mailboxtype..eq.struct { sync.Once; crypto/x509.v *crypto/x509.Certificate }vendor/golang.org/x/crypto/curve25519.init.0vendor/golang.org/x/crypto/curve25519.checkBasepointvendor/golang.org/x/crypto/curve25519.x25519vendor/golang.org/x/crypto/curve25519.ScalarMultvendor/golang.org/x/crypto/curve25519.scalarMultvendor/golang.org/x/crypto/curve25519.ScalarBaseMultvendor/golang.org/x/crypto/curve25519.feZerovendor/golang.org/x/crypto/curve25519.feAddvendor/golang.org/x/crypto/curve25519.feSubvendor/golang.org/x/crypto/curve25519.feCopyvendor/golang.org/x/crypto/curve25519.feCSwapvendor/golang.org/x/crypto/curve25519.feFromBytesvendor/golang.org/x/crypto/curve25519.load3vendor/golang.org/x/crypto/curve25519.load4vendor/golang.org/x/crypto/curve25519.feToBytesvendor/golang.org/x/crypto/curve25519.feMulvendor/golang.org/x/crypto/curve25519.feSquarevendor/golang.org/x/crypto/curve25519.feMul121666vendor/golang.org/x/crypto/curve25519.feInvertvendor/golang.org/x/crypto/curve25519.scalarMultGenericvendor/golang.org/x/crypto/curve25519.feOnevendor/golang.org/x/crypto/hkdf.Extractvendor/golang.org/x/crypto/hkdf.(*hkdf).Readvendor/golang.org/x/crypto/hkdf.Expandcrypto/tls.alert.Stringcrypto/tls.alert.Errorcrypto/tls.verifyHandshakeSignaturecrypto/tls.signedMessagecrypto/tls.typeAndHashFromSignatureSchemecrypto/tls.legacyTypeAndHashFromPublicKeycrypto/tls.signatureSchemesForCertificatecrypto/tls.selectSignatureSchemecrypto/tls.unsupportedCertificateErrorcrypto/tls.selectCipherSuitecrypto/tls.cipherRC4crypto/tls.cipher3DEScrypto/tls.cipherAEScrypto/tls.macSHA1crypto/tls.macSHA256crypto/tls.(*prefixNonceAEAD).NonceSizecrypto/tls.(*prefixNonceAEAD).Overheadcrypto/tls.(*prefixNonceAEAD).explicitNonceLencrypto/tls.(*prefixNonceAEAD).Sealcrypto/tls.(*prefixNonceAEAD).Opencrypto/tls.(*xorNonceAEAD).NonceSizecrypto/tls.(*xorNonceAEAD).Overheadcrypto/tls.(*xorNonceAEAD).explicitNonceLencrypto/tls.(*xorNonceAEAD).Sealcrypto/tls.(*xorNonceAEAD).Opencrypto/tls.aeadAESGCMcrypto/cipher.NewGCMcrypto/tls.aeadAESGCMTLS13crypto/tls.aeadChaCha20Poly1305vendor/golang.org/x/crypto/chacha20poly1305.Newcrypto/tls.(*cthWrapper).Sizecrypto/tls.(*cthWrapper).BlockSizecrypto/tls.(*cthWrapper).Resetcrypto/tls.(*cthWrapper).Writecrypto/tls.(*cthWrapper).Sumcrypto/tls.newConstantTimeHashcrypto/tls.newConstantTimeHash.func1crypto/tls.tls10MACcrypto/tls.rsaKAcrypto/tls.ecdheECDSAKAcrypto/tls.ecdheRSAKAcrypto/tls.mutualCipherSuitecrypto/tls.cipherSuiteByIDcrypto/tls.mutualCipherSuiteTLS13crypto/tls.cipherSuiteTLS13ByIDcrypto/tls.(*ConnectionState).ExportKeyingMaterialcrypto/tls.(*ClientHelloInfo).Contextcrypto/tls.(*CertificateRequestInfo).Contextcrypto/tls.(*Config).ticketKeyFromBytescrypto/tls.(*Config).timecrypto/tls.(*Config).Clonecrypto/tls.(*Config).SetSessionTicketKeyscrypto/tls.(*Config).supportedVersionscrypto/tls.(*Config).supportsCurvecrypto/tls.(*Config).curvePreferencescrypto/tls.(*Config).mutualVersioncrypto/tls.(*ClientHelloInfo).SupportsCertificatecrypto/tls.(*Config).cipherSuitescrypto/tls.(*ClientHelloInfo).SupportsCertificate.func2crypto/tls.(*ClientHelloInfo).SupportsCertificate.func1crypto/tls.(*ClientHelloInfo).SupportsCertificate.func1.1crypto/tls.(*CertificateRequestInfo).SupportsCertificatecrypto/tls.(*Config).BuildNameToCertificatecrypto/tls.(*Config).writeKeyLogcrypto/tls.(*Certificate).leafcrypto/tls.isSupportedSignatureAlgorithmcrypto/tls.SignatureScheme.Stringcrypto/tls.CurveID.Stringcrypto/tls.ClientAuthType.Stringcrypto/tls.(*Conn).LocalAddrcrypto/tls.(*Conn).RemoteAddrcrypto/tls.(*Conn).SetDeadlinecrypto/tls.(*Conn).SetReadDeadlinecrypto/tls.(*Conn).SetWriteDeadlinecrypto/tls.(*permanentError).Errorcrypto/tls.(*permanentError).Unwrapcrypto/tls.(*permanentError).Timeoutcrypto/tls.(*permanentError).Temporarycrypto/tls.(*halfConn).changeCipherSpeccrypto/tls.(*halfConn).setTrafficSecretcrypto/tls.(*halfConn).explicitNonceLencrypto/tls.extractPaddingcrypto/tls.(*halfConn).decryptcrypto/tls.roundUpcrypto/tls.(*halfConn).incSeqcrypto/tls.(*halfConn).encryptcrypto/tls.sliceForAppendcrypto/tls.RecordHeaderError.Errorcrypto/tls.(*Conn).readRecordOrCCScrypto/tls.(*Conn).handshakeCompletecrypto/tls.(*halfConn).setErrorLockedcrypto/tls.(*Conn).newRecordHeaderErrorcrypto/tls.(*Conn).retryReadRecordcrypto/tls.(*atLeastReader).Readcrypto/tls.(*Conn).readFromUntilcrypto/tls.(*Conn).sendAlertLockedcrypto/tls.(*Conn).sendAlertcrypto/tls.(*Conn).maxPayloadSizeForWritecrypto/tls.(*Conn).writecrypto/tls.(*Conn).flushcrypto/tls.(*Conn).writeRecordLockedcrypto/tls.(*Config).randcrypto/tls.(*Conn).writeRecordLocked.func1crypto/tls.(*Conn).writeRecordcrypto/tls.(*Conn).readHandshakecrypto/tls.(*Conn).readRecordcrypto/tls.(*Conn).Writecrypto/tls.(*Conn).Handshakecrypto/tls.(*Conn).HandshakeContextcrypto/tls.(*Conn).handleRenegotiationcrypto/tls.unexpectedMessageErrorcrypto/tls.(*Conn).handlePostHandshakeMessagecrypto/tls.(*Conn).handleKeyUpdatecrypto/tls.(*Conn).Readcrypto/tls.(*Conn).Closecrypto/tls.(*Conn).CloseWritecrypto/tls.(*Conn).closeNotifycrypto/tls.(*Conn).handshakeContextcrypto/tls.(*Conn).handshakeContext.func2crypto/tls.(*Conn).handshakeContext.func1crypto/tls.(*Conn).ConnectionStatecrypto/tls.(*Conn).connectionStateLockedcrypto/tls.(*Conn).OCSPResponsecrypto/tls.(*Conn).VerifyHostnamecrypto/tls.(*Conn).makeClientHellocrypto/tls.(*Config).maxSupportedVersioncrypto/tls.(*Conn).clientHandshakecrypto/tls.(*Conn).clientHandshake.func1crypto/tls.(*Conn).loadSessioncrypto/tls.clientSessionCacheKeycrypto/tls.(*Conn).pickTLSVersioncrypto/tls.(*clientHandshakeState).handshakecrypto/tls.(*finishedHash).discardHandshakeBuffercrypto/tls.(*clientHandshakeState).pickCipherSuitecrypto/tls.(*clientHandshakeState).doFullHandshakecrypto/tls.(*serverKeyExchangeMsg).marshalcrypto/tls.(*serverHelloDoneMsg).marshalcrypto/tls.(*clientKeyExchangeMsg).marshalcrypto/tls.(*clientHandshakeState).establishKeyscrypto/tls.(*halfConn).prepareCipherSpeccrypto/tls.(*clientHandshakeState).processServerHellocrypto/tls.(*clientHandshakeState).serverResumedSessioncrypto/tls.checkALPNcrypto/tls.(*clientHandshakeState).readFinishedcrypto/tls.(*Conn).readChangeCipherSpeccrypto/tls.(*clientHandshakeState).readSessionTicketcrypto/tls.(*newSessionTicketMsg).marshalcrypto/tls.(*clientHandshakeState).sendFinishedcrypto/tls.(*Conn).verifyServerCertificatecrypto/tls.certificateRequestInfoFromMsgcrypto/tls.(*Conn).getClientCertificatecrypto/tls.hostnameInSNIcrypto/tls.(*clientHandshakeStateTLS13).handshakecrypto/tls.(*clientHandshakeStateTLS13).checkServerHelloOrHRRcrypto/tls.(*clientHandshakeStateTLS13).sendDummyChangeCipherSpeccrypto/tls.(*clientHandshakeStateTLS13).processHelloRetryRequestcrypto/tls.(*clientHandshakeStateTLS13).processServerHellocrypto/tls.(*clientHandshakeStateTLS13).establishHandshakeKeyscrypto/tls.(*clientHandshakeStateTLS13).readServerParameterscrypto/tls.(*clientHandshakeStateTLS13).readServerCertificatecrypto/tls.(*clientHandshakeStateTLS13).readServerFinishedcrypto/hmac.Equalcrypto/tls.(*clientHandshakeStateTLS13).sendClientCertificatecrypto/tls.(*clientHandshakeStateTLS13).sendClientFinishedcrypto/tls.(*Conn).handleNewSessionTicketcrypto/tls.marshalingFunction.Marshalcrypto/tls.addBytesWithLengthvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddValuecrypto/tls.addBytesWithLength.func1vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddBytescrypto/tls.(*clientHelloMsg).marshalvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint24LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*Builder).BytesOrPaniccrypto/tls.(*clientHelloMsg).marshal.func1vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint16vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint8LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint16LengthPrefixedcrypto/tls.(*clientHelloMsg).marshal.func1.4crypto/tls.(*clientHelloMsg).marshal.func1.4.14crypto/tls.(*clientHelloMsg).marshal.func1.4.14.2crypto/tls.(*clientHelloMsg).marshal.func1.4.14.2.1crypto/tls.(*clientHelloMsg).marshal.func1.4.14.1crypto/tls.(*clientHelloMsg).marshal.func1.4.14.1.1crypto/tls.(*clientHelloMsg).marshal.func1.4.13crypto/tls.(*clientHelloMsg).marshal.func1.4.13.1crypto/tls.(*clientHelloMsg).marshal.func1.4.12crypto/tls.(*clientHelloMsg).marshal.func1.4.12.1crypto/tls.(*clientHelloMsg).marshal.func1.4.12.1.1crypto/tls.(*clientHelloMsg).marshal.func1.4.11crypto/tls.(*clientHelloMsg).marshal.func1.4.11.1crypto/tls.(*clientHelloMsg).marshal.func1.4.10crypto/tls.(*clientHelloMsg).marshal.func1.4.10.1crypto/tls.(*clientHelloMsg).marshal.func1.4.9crypto/tls.(*clientHelloMsg).marshal.func1.4.9.1crypto/tls.(*clientHelloMsg).marshal.func1.4.9.1.1crypto/tls.(*clientHelloMsg).marshal.func1.4.8crypto/tls.(*clientHelloMsg).marshal.func1.4.8.1crypto/tls.(*clientHelloMsg).marshal.func1.4.7crypto/tls.(*clientHelloMsg).marshal.func1.4.7.1crypto/tls.(*clientHelloMsg).marshal.func1.4.6crypto/tls.(*clientHelloMsg).marshal.func1.4.6.1crypto/tls.(*clientHelloMsg).marshal.func1.4.5crypto/tls.(*clientHelloMsg).marshal.func1.4.4crypto/tls.(*clientHelloMsg).marshal.func1.4.4.1crypto/tls.(*clientHelloMsg).marshal.func1.4.3crypto/tls.(*clientHelloMsg).marshal.func1.4.3.1crypto/tls.(*clientHelloMsg).marshal.func1.4.1crypto/tls.(*clientHelloMsg).marshal.func1.4.1.1crypto/tls.(*clientHelloMsg).marshal.func1.4.1.1.1crypto/tls.(*clientHelloMsg).marshal.func1.3crypto/tls.(*clientHelloMsg).marshal.func1.2crypto/tls.(*clientHelloMsg).marshal.func1.1crypto/tls.(*clientHelloMsg).marshalWithoutBinderscrypto/tls.(*clientHelloMsg).updateBindersvendor/golang.org/x/crypto/cryptobyte.NewBuildercrypto/tls.(*clientHelloMsg).updateBinders.func1crypto/tls.(*clientHelloMsg).updateBinders.func1.1crypto/tls.(*clientHelloMsg).unmarshalvendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint16crypto/tls.readUint8LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint8LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint16LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint8crypto/tls.readUint16LengthPrefixedvendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint32crypto/tls.(*serverHelloMsg).marshalcrypto/tls.(*serverHelloMsg).marshal.func1crypto/tls.(*serverHelloMsg).marshal.func1.2crypto/tls.(*serverHelloMsg).marshal.func1.2.9crypto/tls.(*serverHelloMsg).marshal.func1.2.9.1crypto/tls.(*serverHelloMsg).marshal.func1.2.8crypto/tls.(*serverHelloMsg).marshal.func1.2.7crypto/tls.(*serverHelloMsg).marshal.func1.2.7.1crypto/tls.(*serverHelloMsg).marshal.func1.2.6crypto/tls.(*serverHelloMsg).marshal.func1.2.5crypto/tls.(*serverHelloMsg).marshal.func1.2.5.1crypto/tls.(*serverHelloMsg).marshal.func1.2.4crypto/tls.(*serverHelloMsg).marshal.func1.2.3crypto/tls.(*serverHelloMsg).marshal.func1.2.3.1crypto/tls.(*serverHelloMsg).marshal.func1.2.3.1.1crypto/tls.(*serverHelloMsg).marshal.func1.2.2crypto/tls.(*serverHelloMsg).marshal.func1.2.2.1crypto/tls.(*serverHelloMsg).marshal.func1.2.2.1.1crypto/tls.(*serverHelloMsg).marshal.func1.2.1crypto/tls.(*serverHelloMsg).marshal.func1.2.1.1crypto/tls.(*serverHelloMsg).marshal.func1.1crypto/tls.(*serverHelloMsg).unmarshalcrypto/tls.(*encryptedExtensionsMsg).marshalcrypto/tls.(*encryptedExtensionsMsg).marshal.func1crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1.1crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1.1.1crypto/tls.(*encryptedExtensionsMsg).unmarshalcrypto/tls.(*endOfEarlyDataMsg).unmarshalcrypto/tls.(*keyUpdateMsg).marshalcrypto/tls.(*keyUpdateMsg).marshal.func1crypto/tls.(*keyUpdateMsg).unmarshalcrypto/tls.(*newSessionTicketMsgTLS13).unmarshalcrypto/tls.(*certificateRequestMsgTLS13).marshalcrypto/tls.(*certificateRequestMsgTLS13).marshal.func1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3.1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3.1.1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.2crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.2.1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.1crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.1.1crypto/tls.(*certificateRequestMsgTLS13).unmarshalcrypto/tls.(*certificateMsg).marshalcrypto/tls.(*certificateMsg).unmarshalcrypto/tls.(*certificateMsgTLS13).marshalcrypto/tls.(*certificateMsgTLS13).marshal.func1crypto/tls.marshalCertificatecrypto/tls.marshalCertificate.func1crypto/tls.marshalCertificate.func1.2crypto/tls.marshalCertificate.func1.2.2crypto/tls.marshalCertificate.func1.2.2.1crypto/tls.marshalCertificate.func1.2.2.1.1crypto/tls.marshalCertificate.func1.2.1crypto/tls.marshalCertificate.func1.2.1.1crypto/tls.marshalCertificate.func1.1crypto/tls.(*certificateMsgTLS13).unmarshalcrypto/tls.unmarshalCertificatevendor/golang.org/x/crypto/cryptobyte.(*String).ReadUint24LengthPrefixedcrypto/tls.readUint24LengthPrefixedcrypto/tls.(*serverKeyExchangeMsg).unmarshalcrypto/tls.(*certificateStatusMsg).marshalcrypto/tls.(*certificateStatusMsg).marshal.func1crypto/tls.(*certificateStatusMsg).marshal.func1.1crypto/tls.(*certificateStatusMsg).unmarshalcrypto/tls.(*serverHelloDoneMsg).unmarshalcrypto/tls.(*clientKeyExchangeMsg).unmarshalcrypto/tls.(*finishedMsg).marshalcrypto/tls.(*finishedMsg).marshal.func1crypto/tls.(*finishedMsg).unmarshalvendor/golang.org/x/crypto/cryptobyte.String.Emptycrypto/tls.(*certificateRequestMsg).marshalcrypto/tls.(*certificateRequestMsg).unmarshalcrypto/tls.(*certificateVerifyMsg).marshalcrypto/tls.(*certificateVerifyMsg).marshal.func1crypto/tls.(*certificateVerifyMsg).marshal.func1.1crypto/tls.(*certificateVerifyMsg).unmarshalcrypto/tls.(*newSessionTicketMsg).unmarshalcrypto/tls.(*helloRequestMsg).unmarshalcrypto/tls.supportsECDHEcrypto/tls.rsaKeyAgreement.processServerKeyExchangecrypto/tls.rsaKeyAgreement.generateClientKeyExchangecrypto/tls.sha1Hashcrypto/tls.md5SHA1Hashcrypto/tls.hashForServerKeyExchangecrypto/tls.(*ecdheKeyAgreement).processServerKeyExchangecrypto/tls.(*ecdheKeyAgreement).generateClientKeyExchangecrypto/tls.(*cipherSuiteTLS13).expandLabelcrypto/tls.(*cipherSuiteTLS13).expandLabel.func2crypto/tls.(*cipherSuiteTLS13).expandLabel.func1crypto/tls.(*cipherSuiteTLS13).deriveSecretcrypto/tls.(*cipherSuiteTLS13).extractcrypto/tls.(*cipherSuiteTLS13).nextTrafficSecretcrypto/tls.(*cipherSuiteTLS13).trafficKeycrypto/tls.(*cipherSuiteTLS13).finishedHashcrypto/tls.(*cipherSuiteTLS13).exportKeyingMaterialcrypto/tls.(*cipherSuiteTLS13).exportKeyingMaterial.func1crypto/tls.generateECDHEParametersvendor/golang.org/x/crypto/curve25519.X25519crypto/tls.curveForCurveIDcrypto/tls.(*nistParameters).CurveIDcrypto/tls.(*nistParameters).PublicKeycrypto/tls.(*nistParameters).SharedKeycrypto/tls.(*x25519Parameters).CurveIDcrypto/tls.(*x25519Parameters).PublicKeycrypto/tls.(*x25519Parameters).SharedKeycrypto/tls.pHashcrypto/tls.prf10crypto/tls.splitPreMasterSecretcrypto/tls.prf12crypto/tls.prf12.func1crypto/tls.prfAndHashForVersioncrypto/tls.masterFromPreMasterSecretcrypto/tls.prfForVersioncrypto/tls.keysFromMasterSecretcrypto/tls.newFinishedHashcrypto/tls.(*finishedHash).Writecrypto/tls.finishedHash.Sumcrypto/tls.finishedHash.clientSumcrypto/tls.finishedHash.serverSumcrypto/tls.finishedHash.hashForClientCertificatecrypto/tls.noExportedKeyingMaterialcrypto/tls.ekmFromMasterSecretcrypto/tls.ekmFromMasterSecret.func1crypto/tls.dialcrypto/tls.Clientcrypto/tls.(*Dialer).DialContextcrypto/tls.(*Dialer).netDialercrypto/tls.glob..func1crypto/tls.(*clientHelloMsg).marshal.func1.4.2crypto/tls.initcrypto.Hash.New-fmcrypto/tls.(*Conn).clientHandshake-fmcrypto/tls.(*SignatureScheme).Stringcrypto/tls.(*ClientAuthType).Stringcrypto/tls.(*CurveID).Stringcrypto/tls.(*halfConn).Lockcrypto/tls.(*halfConn).Unlocktype..eq.crypto/tls.RecordHeaderErrorcrypto/tls.(*RecordHeaderError).Errorcrypto/tls.(*alert).Errorcrypto/tls.(*alert).Stringtype..eq.crypto/tls.atLeastReadertype..eq.crypto/tls.prefixNonceAEADcrypto/tls.(*rsaKeyAgreement).generateClientKeyExchangecrypto/tls.(*rsaKeyAgreement).processServerKeyExchangetype..eq.crypto/tls.xorNonceAEADlog.(*Logger).formatHeaderlog.itoalog.(*Logger).Outputlog.Printflog.Fatalflog.initlog.Newnet/http/internal/ascii.ToLowernet/http/internal/ascii.IsPrintnet/textproto.MIMEHeader.Addnet/textproto.MIMEHeader.Setnet/textproto.MIMEHeader.Getnet/textproto.MIMEHeader.Valuesnet/textproto.MIMEHeader.Delnet/textproto.(*Reader).readLineSlicenet/textproto.(*Reader).closeDotnet/textproto.(*Reader).readContinuedLineSlicenet/textproto.isASCIILetternet/textproto.trimnet/textproto.(*Reader).skipSpacenet/textproto.(*dotReader).Readnet/textproto.(*Reader).ReadMIMEHeadernet/textproto.mustHaveFieldNameColonnet/textproto.(*Reader).upcomingHeaderNewlinesnet/textproto.CanonicalMIMEHeaderKeynet/textproto.validHeaderFieldBytenet/textproto.canonicalMIMEHeaderKeynet/textproto.initCommonHeadernet/textproto.ProtocolError.Errornet/textproto.(*MIMEHeader).Addnet/textproto.(*MIMEHeader).Delnet/textproto.(*MIMEHeader).Getnet/textproto.(*MIMEHeader).Setnet/textproto.(*MIMEHeader).Valuesnet/textproto.(*ProtocolError).Errormime.needsEncodingmime.isTokenCharmime.isTSpecialmime.FormatMediaTypemime.isTokenmime.checkMediaTypeDispositionmime.ParseMediaTypemime.decode2231Encstrings.SplitNmime.isNotTokenCharmime.consumeTokenmime.consumeValuemime.consumeMediaParammime.percentHexUnescapemime.ishexmime.unhexmime.setExtensionTypemime.init.0mime.loadMimeGlobsFilebufio.NewScannerbufio.(*Scanner).Textbufio.(*Scanner).Errmime.loadMimeFilemime.initMimeUnixmime.initmime/quotedprintable.fromHexmime/quotedprintable.readHexBytemime/quotedprintable.isQPDiscardWhitespacemime/quotedprintable.(*Reader).Readmime/multipart.(*Reader).ReadFormmime/multipart.(*Reader).readFormmime/multipart.(*Reader).NextPartmime/multipart.(*Part).FormNameio.MultiReadermime/multipart.(*Reader).readForm.func1mime/multipart.(*Form).RemoveAllmime/multipart.(*FileHeader).Openio.NewSectionReadermime/multipart.sectionReadCloser.Closemime/multipart.(*Part).FileNamemime/multipart.(*Part).parseContentDispositionmime/multipart.NewReadermime/multipart.(*stickyErrorReader).Readmime/multipart.newPartmime/quotedprintable.NewReadermime/multipart.(*Part).populateHeadersnet/textproto.NewReadermime/multipart.(*Part).Readmime/multipart.partReader.Readmime/multipart.scanUntilBoundarymime/multipart.matchAfterPrefixbytes.LastIndexBytemime/multipart.(*Part).Closemime/multipart.(*Reader).NextRawPartmime/multipart.(*Reader).nextPartmime/multipart.(*Reader).isFinalBoundarymime/multipart.skipLWSPCharmime/multipart.(*Reader).isBoundaryDelimiterLinemime/multipart.initmime/multipart.sectionReadCloser.Readmime/multipart.sectionReadCloser.ReadAtmime/multipart.sectionReadCloser.Seekmime/multipart.sectionReadCloser.Sizemime/multipart.(*partReader).Readmime/multipart.(*sectionReadCloser).Closemime/multipart.(*sectionReadCloser).Readmime/multipart.(*sectionReadCloser).ReadAtmime/multipart.(*sectionReadCloser).Seekmime/multipart.(*sectionReadCloser).Sizetype..eq.mime/multipart.stickyErrorReaderhash/crc32.ieeeInithash/crc32.archAvailableIEEEhash/crc32.archInitIEEEhash/crc32.Updatehash/crc32.ChecksumIEEEhash/crc32.archUpdateIEEEhash/crc32.simpleUpdatehash/crc32.slicingMakeTablehash/crc32.simplePopulateTablehash/crc32.slicingUpdatehash/crc32.ieeeInit.func1hash/crc32.inithash/crc32.simpleMakeTablehash/crc32.ieeeUpdatecompress/gzip.NewReadercompress/gzip.(*Reader).Resetcompress/gzip.(*Reader).Multistreamcompress/gzip.(*Reader).readStringcompress/gzip.(*Reader).readHeadercompress/gzip.noEOFencoding/binary.littleEndian.Uint16compress/gzip.(*Reader).Readcompress/gzip.(*Reader).Closecompress/gzip.inittype..eq.net/http/httptrace.GotConnInfovendor/golang.org/x/text/transform.initvendor/golang.org/x/text/unicode/bidi.LookupRunevendor/golang.org/x/text/unicode/bidi.Lookupvendor/golang.org/x/text/unicode/bidi.(*bidiTrie).lookupValuevendor/golang.org/x/text/unicode/bidi.LookupStringvendor/golang.org/x/text/unicode/bidi.initvendor/golang.org/x/text/secure/bidirule.DirectionStringvendor/golang.org/x/text/unicode/bidi.Properties.Classvendor/golang.org/x/text/secure/bidirule.ValidStringvendor/golang.org/x/text/secure/bidirule.(*Transformer).isFinalvendor/golang.org/x/text/secure/bidirule.init.0vendor/golang.org/x/text/secure/bidirule.(*Transformer).advanceStringvendor/golang.org/x/text/secure/bidirule.(*Transformer).isRTLvendor/golang.org/x/text/secure/bidirule.initvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).doFlushvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).resetvendor/golang.org/x/text/unicode/norm.appendFlushvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertFlushvendor/golang.org/x/text/unicode/norm.Properties.hasDecompositionvendor/golang.org/x/text/unicode/norm.Properties.Decompositionvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertUnsafevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertDecomposedvendor/golang.org/x/text/unicode/norm.(*input).setBytesvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertOrderedvendor/golang.org/x/text/unicode/norm.Properties.BoundaryBeforevendor/golang.org/x/text/unicode/norm.Properties.combinesBackwardvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertSinglevendor/golang.org/x/text/unicode/norm.(*input).copySlicevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).appendRunevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).assignRunevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).runeAtvendor/golang.org/x/text/unicode/norm.decomposeHangulvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).decomposeHangulvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).combineHangulvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).composevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).bytesAtvendor/golang.org/x/text/unicode/norm.isJamoVTvendor/golang.org/x/text/unicode/norm.combinevendor/golang.org/x/text/unicode/norm.buildRecompMapvendor/golang.org/x/text/unicode/norm.lookupInfoNFCvendor/golang.org/x/text/unicode/norm.lookupInfoNFKCvendor/golang.org/x/text/unicode/norm.compInfovendor/golang.org/x/text/unicode/norm.(*input).charinfoNFCvendor/golang.org/x/text/unicode/norm.(*input).charinfoNFKCvendor/golang.org/x/text/unicode/norm.(*input).hangulvendor/golang.org/x/text/unicode/norm.isHangulvendor/golang.org/x/text/unicode/norm.isHangulStringvendor/golang.org/x/text/unicode/norm.nextHangulvendor/golang.org/x/text/unicode/norm.(*Iter).setDonevendor/golang.org/x/text/unicode/norm.(*streamSafe).nextvendor/golang.org/x/text/unicode/norm.Properties.nLeadingNonStartersvendor/golang.org/x/text/unicode/norm.Properties.nTrailingNonStartersvendor/golang.org/x/text/unicode/norm.nextDonevendor/golang.org/x/text/unicode/norm.nextMultivendor/golang.org/x/text/unicode/norm.nextMultiNormvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).flushCopyvendor/golang.org/x/text/unicode/norm.nextDecomposedvendor/golang.org/x/text/unicode/norm.Properties.multiSegmentvendor/golang.org/x/text/unicode/norm.(*input)._bytevendor/golang.org/x/text/unicode/norm.(*Iter).returnSlicevendor/golang.org/x/text/unicode/norm.doNormDecomposedvendor/golang.org/x/text/unicode/norm.nextCGJDecomposevendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertCGJvendor/golang.org/x/text/unicode/norm.(*streamSafe).firstvendor/golang.org/x/text/unicode/norm.nextComposedvendor/golang.org/x/text/unicode/norm.Properties.isYesCvendor/golang.org/x/text/unicode/norm.doNormComposedvendor/golang.org/x/text/unicode/norm.nextCGJComposevendor/golang.org/x/text/unicode/norm.Form.Bytesvendor/golang.org/x/text/unicode/norm.Form.Stringvendor/golang.org/x/text/unicode/norm.Form.IsNormalStringvendor/golang.org/x/text/unicode/norm.(*reorderBuffer).setFlushervendor/golang.org/x/text/unicode/norm.Form.IsNormalString.func1vendor/golang.org/x/text/unicode/norm.appendQuickvendor/golang.org/x/text/unicode/norm.(*input).appendSlicevendor/golang.org/x/text/unicode/norm.doAppendInnervendor/golang.org/x/text/unicode/norm.(*formInfo).quickSpanvendor/golang.org/x/text/unicode/norm.(*input).skipASCIIvendor/golang.org/x/text/unicode/norm.Properties.isYesDvendor/golang.org/x/text/unicode/norm.decomposeSegmentvendor/golang.org/x/text/unicode/norm.Properties.BoundaryAftervendor/golang.org/x/text/unicode/norm.Properties.isInertvendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookupvendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookupStringvendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookupValuevendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookupvendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookupStringvendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookupValuevendor/golang.org/x/text/unicode/norm.(*sparseBlocks).lookupvendor/golang.org/x/text/unicode/norm.initvendor/golang.org/x/net/idna.labelError.Errorvendor/golang.org/x/net/idna.runeError.Errorvendor/golang.org/x/net/idna.(*Profile).processvendor/golang.org/x/net/idna.(*labelIter).donevendor/golang.org/x/net/idna.(*labelIter).nextvendor/golang.org/x/net/idna.(*labelIter).resetvendor/golang.org/x/net/idna.(*labelIter).resultvendor/golang.org/x/net/idna.asciivendor/golang.org/x/net/idna.info.isBidivendor/golang.org/x/net/idna.info.isMappedvendor/golang.org/x/net/idna.validateAndMapvendor/golang.org/x/net/idna.info.categoryvendor/golang.org/x/net/idna.(*Profile).simplifyvendor/golang.org/x/text/unicode/norm.Form.QuickSpanvendor/golang.org/x/text/unicode/norm.inputBytesvendor/golang.org/x/net/idna.(*labelIter).labelvendor/golang.org/x/net/idna.(*labelIter).setvendor/golang.org/x/net/idna.validateFromPunycodevendor/golang.org/x/net/idna.(*Profile).validateLabelvendor/golang.org/x/net/idna.info.isModifiervendor/golang.org/x/net/idna.info.joinTypevendor/golang.org/x/net/idna.info.isViramaModifiervendor/golang.org/x/net/idna.decodevendor/golang.org/x/net/idna.punyErrorvendor/golang.org/x/net/idna.adaptvendor/golang.org/x/net/idna.decodeDigitvendor/golang.org/x/net/idna.encodevendor/golang.org/x/net/idna.encodeDigitvendor/golang.org/x/net/idna.(*idnaTrie).lookupStringvendor/golang.org/x/net/idna.(*idnaTrie).lookupValuevendor/golang.org/x/net/idna.info.appendMappingvendor/golang.org/x/net/idna.(*sparseBlocks).lookupvendor/golang.org/x/net/idna.initvendor/golang.org/x/net/idna.(*labelError).Errortype..eq.vendor/golang.org/x/net/idna.labelErrorvendor/golang.org/x/net/idna.(*runeError).Errorvendor/golang.org/x/net/http/httpguts.HeaderValuesContainsTokenvendor/golang.org/x/net/http/httpguts.headerValueContainsTokenvendor/golang.org/x/net/http/httpguts.trimOWSvendor/golang.org/x/net/http/httpguts.isOWSvendor/golang.org/x/net/http/httpguts.tokenEqualvendor/golang.org/x/net/http/httpguts.lowerASCIIvendor/golang.org/x/net/http/httpguts.ValidHeaderFieldNamevendor/golang.org/x/net/http/httpguts.IsTokenRunevendor/golang.org/x/net/http/httpguts.PunycodeHostPortvendor/golang.org/x/net/http/httpguts.isASCIIvendor/golang.org/x/net/idna.ToASCIIvendor/golang.org/x/net/http/httpguts.initvendor/golang.org/x/net/http2/hpack.NewEncodervendor/golang.org/x/net/http2/hpack.(*headerFieldTable).initvendor/golang.org/x/net/http2/hpack.(*dynamicTable).setMaxSizevendor/golang.org/x/net/http2/hpack.(*Encoder).WriteFieldvendor/golang.org/x/net/http2/hpack.appendTableSizevendor/golang.org/x/net/http2/hpack.appendVarIntvendor/golang.org/x/net/http2/hpack.appendIndexedvendor/golang.org/x/net/http2/hpack.(*Encoder).shouldIndexvendor/golang.org/x/net/http2/hpack.HeaderField.Sizevendor/golang.org/x/net/http2/hpack.(*Encoder).searchTablevendor/golang.org/x/net/http2/hpack.(*headerFieldTable).lenvendor/golang.org/x/net/http2/hpack.(*Encoder).SetMaxDynamicTableSizevendor/golang.org/x/net/http2/hpack.(*Encoder).SetMaxDynamicTableSizeLimitvendor/golang.org/x/net/http2/hpack.appendNewNamevendor/golang.org/x/net/http2/hpack.encodeTypeBytevendor/golang.org/x/net/http2/hpack.appendIndexedNamevendor/golang.org/x/net/http2/hpack.appendHpackStringvendor/golang.org/x/net/http2/hpack.HuffmanEncodeLengthvendor/golang.org/x/net/http2/hpack.DecodingError.Errorvendor/golang.org/x/net/http2/hpack.InvalidIndexError.Errorvendor/golang.org/x/net/http2/hpack.HeaderField.IsPseudovendor/golang.org/x/net/http2/hpack.HeaderField.Stringvendor/golang.org/x/net/http2/hpack.NewDecodervendor/golang.org/x/net/http2/hpack.(*Decoder).SetMaxStringLengthvendor/golang.org/x/net/http2/hpack.(*Decoder).SetEmitFuncvendor/golang.org/x/net/http2/hpack.(*Decoder).SetEmitEnabledvendor/golang.org/x/net/http2/hpack.(*Decoder).EmitEnabledvendor/golang.org/x/net/http2/hpack.(*Decoder).SetMaxDynamicTableSizevendor/golang.org/x/net/http2/hpack.(*Decoder).SetAllowedMaxDynamicTableSizevendor/golang.org/x/net/http2/hpack.(*dynamicTable).addvendor/golang.org/x/net/http2/hpack.(*headerFieldTable).addEntryvendor/golang.org/x/net/http2/hpack.(*dynamicTable).evictvendor/golang.org/x/net/http2/hpack.(*Decoder).atvendor/golang.org/x/net/http2/hpack.(*Decoder).maxTableIndexvendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFullvendor/golang.org/x/net/http2/hpack.(*Decoder).Closevendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFull.func2vendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFull.func1vendor/golang.org/x/net/http2/hpack.(*Decoder).Writevendor/golang.org/x/net/http2/hpack.(*Decoder).parseHeaderFieldReprvendor/golang.org/x/net/http2/hpack.(*Decoder).parseFieldIndexedvendor/golang.org/x/net/http2/hpack.(*Decoder).parseFieldLiteralvendor/golang.org/x/net/http2/hpack.indexType.indexedvendor/golang.org/x/net/http2/hpack.indexType.sensitivevendor/golang.org/x/net/http2/hpack.(*Decoder).callEmitvendor/golang.org/x/net/http2/hpack.(*Decoder).parseDynamicTableSizeUpdatevendor/golang.org/x/net/http2/hpack.readVarIntvendor/golang.org/x/net/http2/hpack.(*Decoder).readStringvendor/golang.org/x/net/http2/hpack.huffmanDecodevendor/golang.org/x/net/http2/hpack.getRootHuffmanNodevendor/golang.org/x/net/http2/hpack.buildRootHuffmanNodevendor/golang.org/x/net/http2/hpack.newInternalNodevendor/golang.org/x/net/http2/hpack.addDecoderNodevendor/golang.org/x/net/http2/hpack.AppendHuffmanStringvendor/golang.org/x/net/http2/hpack.appendByteToHuffmanCodevendor/golang.org/x/net/http2/hpack.(*headerFieldTable).evictOldestvendor/golang.org/x/net/http2/hpack.(*headerFieldTable).searchvendor/golang.org/x/net/http2/hpack.(*headerFieldTable).idToIndexvendor/golang.org/x/net/http2/hpack.newStaticTablevendor/golang.org/x/net/http2/hpack.glob..func1vendor/golang.org/x/net/http2/hpack.inittype..eq.vendor/golang.org/x/net/http2/hpack.HeaderFieldvendor/golang.org/x/net/http2/hpack.(*HeaderField).IsPseudovendor/golang.org/x/net/http2/hpack.(*HeaderField).Sizevendor/golang.org/x/net/http2/hpack.(*HeaderField).Stringtype..eq.vendor/golang.org/x/net/http2/hpack.pairNameValuetype..hash.vendor/golang.org/x/net/http2/hpack.pairNameValuevendor/golang.org/x/net/http2/hpack.(*DecodingError).Errorvendor/golang.org/x/net/http2/hpack.(*InvalidIndexError).Errornet/http/internal.(*chunkedReader).beginChunknet/http/internal.(*chunkedReader).chunkHeaderAvailablenet/http/internal.(*chunkedReader).Readnet/http/internal.readChunkLinenet/http/internal.trimTrailingWhitespacenet/http/internal.isASCIISpacenet/http/internal.removeChunkExtensionnet/http/internal.(*chunkedWriter).Writenet/http/internal.(*chunkedWriter).Closenet/http/internal.parseHexUintnet/http/internal.initnet/http/internal.(*FlushAfterChunkWriter).Availablenet/http/internal.(*FlushAfterChunkWriter).Bufferednet/http/internal.(*FlushAfterChunkWriter).Flushnet/http/internal.(*FlushAfterChunkWriter).ReadFromnet/http/internal.(*FlushAfterChunkWriter).Resetnet/http/internal.(*FlushAfterChunkWriter).Sizenet/http/internal.(*FlushAfterChunkWriter).Writenet/http/internal.(*FlushAfterChunkWriter).WriteBytenet/http/internal.(*FlushAfterChunkWriter).WriteRunenet/http/internal.(*FlushAfterChunkWriter).WriteStringnet/http/internal.FlushAfterChunkWriter.Availablenet/http/internal.FlushAfterChunkWriter.Bufferednet/http/internal.FlushAfterChunkWriter.Flushnet/http/internal.FlushAfterChunkWriter.ReadFromnet/http/internal.FlushAfterChunkWriter.Resetnet/http/internal.FlushAfterChunkWriter.Sizenet/http/internal.FlushAfterChunkWriter.Writenet/http/internal.FlushAfterChunkWriter.WriteBytenet/http/internal.FlushAfterChunkWriter.WriteRunenet/http/internal.FlushAfterChunkWriter.WriteStringtype..eq.net/http/internal.chunkedReadervendor/golang.org/x/net/http/httpproxy.FromEnvironmentvendor/golang.org/x/net/http/httpproxy.getEnvAnyvendor/golang.org/x/net/http/httpproxy.(*config).proxyForURLvendor/golang.org/x/net/http/httpproxy.parseProxyvendor/golang.org/x/net/http/httpproxy.(*config).useProxyvendor/golang.org/x/net/http/httpproxy.(*config).initvendor/golang.org/x/net/http/httpproxy.canonicalAddrvendor/golang.org/x/net/http/httpproxy.idnaASCIIvendor/golang.org/x/net/http/httpproxy.isASCIIvendor/golang.org/x/net/idna.(*Profile).ToASCIIvendor/golang.org/x/net/http/httpproxy.allMatch.matchvendor/golang.org/x/net/http/httpproxy.cidrMatch.matchvendor/golang.org/x/net/http/httpproxy.ipMatch.matchvendor/golang.org/x/net/http/httpproxy.domainMatch.matchvendor/golang.org/x/net/http/httpproxy.initvendor/golang.org/x/net/http/httpproxy.(*config).proxyForURL-fmtype..eq.vendor/golang.org/x/net/http/httpproxy.Configvendor/golang.org/x/net/http/httpproxy.(*allMatch).matchvendor/golang.org/x/net/http/httpproxy.(*cidrMatch).matchtype..eq.vendor/golang.org/x/net/http/httpproxy.domainMatchvendor/golang.org/x/net/http/httpproxy.(*domainMatch).matchvendor/golang.org/x/net/http/httpproxy.(*ipMatch).matchnet/http.refererForURLnet/http.(*Client).sendnet/http.(*Client).transportnet/http.(*Response).Cookiesnet/http.(*Client).deadlinenet/http.sendnet/http.(*Request).closeBodynet/http.send.func1net/http.Header.Getnet/http.cloneOrMakeHeadernet/http.basicAuthnet/http.Header.Setio.NopClosernet/http.timeBeforeContextDeadlinenet/http.knownRoundTripperImplnet/http.setRequestCancelnet/http.(*Request).Contextnet/http.setRequestCancel.func4net/http.(*atomicBool).setTruenet/http.setRequestCancel.func3net/http.setRequestCancel.func3.1net/http.setRequestCancel.func2net/http.setRequestCancel.func1net/http.(*Client).Getnet/http.NewRequestnet/http.(*Client).Donet/http.alwaysFalsenet/http.redirectBehaviornet/http.(*Request).outgoingLengthnet/http.urlErrorOpnet/http.(*Client).donet/http.(*Client).checkRedirectnet/http.(*Response).closeBodynet/http.(*Client).do.func2net/http.(*Client).do.func1net/http.(*Client).makeHeadersCopiernet/http.(*Request).Cookiesnet/http.(*Client).makeHeadersCopier.func1net/http.Header.Delnet/http.defaultCheckRedirectnet/http.(*Client).Postnet/http.(*Client).PostFormnet/http.(*Client).Headnet/http.(*Client).CloseIdleConnectionsnet/http.(*cancelTimerBody).Readnet/http.(*cancelTimerBody).Closenet/http.shouldCopyHeaderOnRedirectnet/http.CanonicalHeaderKeynet/http.isDomainOrSubdomainnet/http.stripPasswordnet/http.cloneMultipartFormnet/http.cloneMultipartFileHeadernet/http.readSetCookiesnet/textproto.TrimStringnet/http.isCookieNameValidnet/http.parseCookieValuenet/textproto.isASCIISpacenet/http.validCookieValueBytenet/http.(*Cookie).Stringnet/http.sanitizeCookiePathnet/http.validCookieExpiresnet/http.readCookiesnet/http.validCookieDomainnet/http.isCookieDomainNamenet/http.sanitizeCookieValuenet/http.validCookiePathBytenet/http.sanitizeOrWarnnet/http.http2asciiToLowernet/http.http2isASCIIPrintnet/http.(*http2clientConnPool).GetClientConnnet/http.(*http2clientConnPool).getClientConnnet/http.http2isConnectionCloseRequestnet/http.(*http2clientConnPool).getStartDialLockednet/http.(*http2dialCall).dialnet/http.(*http2clientConnPool).addConnIfNeedednet/http.(*http2addConnCall).runnet/http.(*http2clientConnPool).addConnLockednet/http.(*http2clientConnPool).MarkDeadnet/http.(*http2clientConnPool).closeIdleConnectionsnet/http.http2filterOutClientConnnet/http.http2noDialClientConnPool.GetClientConnnet/http.http2shouldRetryDialnet/http.http2getDataBufferChunknet/http.http2putDataBufferChunknet/http.(*http2dataBuffer).Readnet/http.(*http2dataBuffer).bytesFromFirstChunknet/http.(*http2dataBuffer).Lennet/http.(*http2dataBuffer).Writenet/http.(*http2dataBuffer).lastChunkOrAllocnet/http.http2ErrCode.Stringnet/http.http2ConnectionError.Errornet/http.http2StreamError.Errornet/http.http2connError.Errornet/http.http2pseudoHeaderError.Errornet/http.http2duplicatePseudoHeaderError.Errornet/http.http2headerFieldNameError.Errornet/http.http2headerFieldValueError.Errornet/http.http2FrameType.Stringnet/http.http2Flags.Hasnet/http.http2FrameHeader.Headernet/http.http2FrameHeader.Stringnet/http.http2FrameHeader.writeDebugnet/http.(*http2FrameHeader).invalidatenet/http.http2readFrameHeadernet/http.(*http2Framer).endWritenet/http.(*http2Framer).logWritenet/http.http2NewFramernet/http.(*http2Framer).SetMaxReadFrameSizenet/http.(*http2Framer).logWrite.func1net/http.(*http2Framer).SetReuseFramesnet/http.(*http2Framer).ErrorDetailnet/http.(*http2Framer).ReadFramenet/http.http2typeFrameParsernet/http.(*http2Framer).connErrornet/http.(*http2Framer).checkFrameOrdernet/http.(*http2DataFrame).StreamEndednet/http.(*http2DataFrame).Datanet/http.(*http2FrameHeader).checkValidnet/http.http2parseDataFramenet/http.(*http2frameCache).getDataFramenet/http.http2readBytenet/http.(*http2Framer).WriteDatanet/http.(*http2Framer).WriteDataPaddednet/http.http2validStreamIDnet/http.(*http2Framer).startWritenet/http.http2parseSettingsFramenet/http.(*http2SettingsFrame).IsAcknet/http.(*http2SettingsFrame).Valuenet/http.(*http2SettingsFrame).NumSettingsnet/http.(*http2SettingsFrame).Settingnet/http.(*http2SettingsFrame).HasDuplicatesnet/http.(*http2SettingsFrame).ForeachSettingnet/http.(*http2Framer).WriteSettingsnet/http.(*http2Framer).writeUint32net/http.(*http2Framer).writeUint16net/http.(*http2Framer).WriteSettingsAcknet/http.(*http2PingFrame).IsAcknet/http.http2parsePingFramenet/http.(*http2Framer).WritePingnet/http.(*http2Framer).writeBytesnet/http.(*http2GoAwayFrame).DebugDatanet/http.http2parseGoAwayFramenet/http.(*http2Framer).WriteGoAwaynet/http.(*http2UnknownFrame).Payloadnet/http.http2parseUnknownFramenet/http.http2parseWindowUpdateFramenet/http.(*http2Framer).WriteWindowUpdatenet/http.(*http2HeadersFrame).HeaderBlockFragmentnet/http.(*http2HeadersFrame).HeadersEndednet/http.(*http2HeadersFrame).StreamEndednet/http.(*http2HeadersFrame).HasPrioritynet/http.http2parseHeadersFramenet/http.http2readUint32net/http.(*http2Framer).WriteHeadersnet/http.http2PriorityParam.IsZeronet/http.(*http2Framer).writeBytenet/http.http2parsePriorityFramenet/http.(*http2Framer).WritePrioritynet/http.http2parseRSTStreamFramenet/http.(*http2Framer).WriteRSTStreamnet/http.http2parseContinuationFramenet/http.(*http2ContinuationFrame).HeaderBlockFragmentnet/http.(*http2ContinuationFrame).HeadersEndednet/http.(*http2Framer).WriteContinuationnet/http.(*http2PushPromiseFrame).HeaderBlockFragmentnet/http.(*http2PushPromiseFrame).HeadersEndednet/http.http2parsePushPromisenet/http.(*http2Framer).WritePushPromisenet/http.(*http2Framer).WriteRawFramenet/http.(*http2MetaHeadersFrame).PseudoValuenet/http.(*http2MetaHeadersFrame).RegularFieldsnet/http.(*http2MetaHeadersFrame).PseudoFieldsnet/http.(*http2MetaHeadersFrame).checkPseudosnet/http.(*http2Framer).readMetaFramenet/http.(*http2Framer).maxHeaderListSizenet/http.(*http2Framer).maxHeaderStringLennet/http.(*http2Framer).readMetaFrame.func1vendor/golang.org/x/net/http/httpguts.ValidHeaderFieldValuevendor/golang.org/x/net/http/httpguts.isCTLvendor/golang.org/x/net/http/httpguts.isLWSnet/http.http2summarizeFramenet/http.http2summarizeFrame.func1net/http.(*http2Transport).dialTLSWithContextnet/http.init.0net/http.http2Setting.Stringnet/http.http2Setting.Validnet/http.http2SettingID.Stringnet/http.http2validWireHeaderFieldNamenet/http.(*http2httpError).Errornet/http.(*http2httpError).Timeoutnet/http.(*http2httpError).Temporarynet/http.(*http2pipe).setBuffernet/http.(*http2pipe).Lennet/http.(*http2pipe).Readnet/http.(*http2pipe).Writenet/http.(*http2pipe).CloseWithErrornet/http.(*http2pipe).BreakWithErrornet/http.(*http2pipe).closeWithErrornet/http.(*http2pipe).closeDoneLockednet/http.(*http2pipe).Errnet/http.(*http2pipe).Donenet/http.http2foreachHeaderElementnet/http.http2configureTransportsnet/http.http2configureTransports.func1net/http.(*http2clientStream).abortStreamnet/http.(*http2clientStream).abortStreamLockednet/http.(*http2clientStream).abortStreamLocked.func1net/http.(*http2clientStream).abortRequestBodyWritenet/http.http2stickyErrWriter.Writenet/http.http2noCachedConnError.IsHTTP2NoCachedConnErrornet/http.http2noCachedConnError.Errornet/http.(*http2Transport).RoundTripnet/http.http2authorityAddrnet/http.(*http2Transport).RoundTripOptnet/http.(*http2Transport).connPooltime.Afternet/http.(*http2Transport).vlogfnet/http.(*http2Transport).logfnet/http.(*http2Transport).CloseIdleConnectionsnet/http.http2shouldRetryRequestnet/http.http2canRetryErrornet/http.(*http2Transport).dialClientConnnet/http.(*http2Transport).newTLSConfignet/http.(*http2Transport).dialTLSnet/http.(*http2Transport).dialTLS.func1net/http.(*http2Transport).NewClientConnnet/http.(*http2Transport).disableKeepAlivesnet/http.(*http2Transport).newClientConnnet/http.(*http2Transport).idleConnTimeoutnet/http.(*http2Transport).maxHeaderListSizesync.NewCondnet/http.(*http2flow).addbufio.NewWriterbufio.NewWriterSizenet/http.(*http2ClientConn).Closenet/http.(*http2Transport).newClientConn.func1net/http.(*http2ClientConn).healthChecknet/http.(*http2Transport).pingTimeoutnet/http.(*http2ClientConn).closeForLostPingnet/http.(*http2ClientConn).SetDoNotReusenet/http.(*http2ClientConn).setGoAwaynet/http.(*http2ClientConn).CanTakeNewRequestnet/http.(*http2ClientConn).canTakeNewRequestLockednet/http.(*http2ClientConn).ReserveNewRequestnet/http.(*http2ClientConn).idleStateLockednet/http.(*http2ClientConn).tooIdleLockednet/http.(*http2ClientConn).closeIfIdlenet/http.(*http2ClientConn).vlogfnet/http.(*http2ClientConn).Shutdownnet/http.(*http2ClientConn).Shutdown.func1net/http.(*http2ClientConn).sendGoAwaynet/http.(*http2ClientConn).closeForErrornet/http.http2commaSeparatedTrailersnet/http.http2checkConnHeadersnet/http.http2asciiEqualFoldnet/http.http2lowernet/http.(*http2ClientConn).decrStreamReservationsnet/http.(*http2ClientConn).decrStreamReservationsLockednet/http.(*http2ClientConn).RoundTripnet/http.http2actualContentLengthnet/http/httptrace.ContextClientTracenet/http.(*http2ClientConn).RoundTrip.func2net/http.(*http2ClientConn).RoundTrip.func1net/http.(*http2clientStream).doRequestnet/http.(*http2clientStream).writeRequestnet/http.(*http2Transport).disableCompressionnet/http.(*http2Transport).expectContinueTimeoutnet/http.http2traceWait100Continuenet/http.http2traceWroteRequestnet/http.(*http2ClientConn).responseHeaderTimeoutnet/http.(*http2clientStream).encodeAndWriteHeadersnet/http.http2traceWroteHeadersnet/http.(*http2clientStream).cleanupWriteRequestnet/http.(*http2ClientConn).awaitOpenSlotForStreamLockednet/http.(*http2ClientConn).writeHeadersnet/http.(*http2clientStream).writeRequestBodynet/http.(*http2clientStream).frameScratchBufferLennet/http.(*http2clientStream).awaitFlowControlnet/http.(*http2flow).availablenet/http.(*http2flow).takenet/http.(*http2ClientConn).encodeHeadersnet/http.http2validPseudoPathnet/http.http2traceHasWroteHeaderFieldnet/http.(*http2ClientConn).encodeHeaders.func3net/http.http2traceWroteHeaderFieldnet/http.(*http2ClientConn).encodeHeaders.func2net/http.(*http2ClientConn).encodeHeaders.func1net/http.http2shouldSendReqContentLengthnet/http.(*http2ClientConn).encodeTrailersnet/http.(*http2ClientConn).writeHeadernet/http.(*http2ClientConn).addStreamLockednet/http.(*http2flow).setConnFlownet/http.(*http2ClientConn).forgetStreamIDnet/http.(*http2ClientConn).readLoopnet/http.http2GoAwayError.Errornet/http.(*http2clientConnReadLoop).cleanupnet/http.http2isEOFOrNetReadErrornet/http.(*http2clientConnReadLoop).runnet/http.(*http2ClientConn).logfnet/http.(*http2clientConnReadLoop).endStreamErrornet/http.(*http2clientConnReadLoop).processHeadersnet/http.http2traceFirstResponseBytenet/http.(*http2clientConnReadLoop).handleResponsenet/http.StatusTextnet/http.(*http2clientStream).get1xxTraceFuncnet/http.http2traceGot1xxResponseFuncnet/http.http2traceGot100Continuenet/http.(*http2clientConnReadLoop).handleResponse.func1net/http.(*http2clientConnReadLoop).processTrailersnet/http.http2transportResponseBody.Readnet/http.http2mustUint31net/http.http2transportResponseBody.Closenet/http.(*http2clientConnReadLoop).processDatanet/http.(*http2clientConnReadLoop).endStreamnet/http.(*http2pipe).closeWithErrorAndCodenet/http.(*http2clientConnReadLoop).streamByIDnet/http.(*http2clientStream).copyTrailersnet/http.(*http2clientConnReadLoop).processGoAwaynet/http.(*http2clientConnReadLoop).processSettingsnet/http.(*http2clientConnReadLoop).processSettingsNoWritenet/http.(*http2clientConnReadLoop).processSettingsNoWrite.func1net/http.(*http2clientConnReadLoop).processWindowUpdatenet/http.(*http2clientConnReadLoop).processResetStreamnet/http.(*http2ClientConn).Pingnet/http.(*http2ClientConn).Ping.func1net/http.(*http2clientConnReadLoop).processPingnet/http.(*http2ClientConn).writeStreamResetnet/http.http2missingBody.Closenet/http.http2missingBody.Readnet/http.http2strSliceContainsnet/http.http2erringRoundTripper.RoundTripErrnet/http.http2erringRoundTripper.RoundTripnet/http.(*http2gzipReader).Readnet/http.(*http2gzipReader).Closenet/http.http2registerHTTPSProtocolnet/http.http2registerHTTPSProtocol.func1net/http.http2noDialH2RoundTripper.RoundTripnet/http.http2isNoCachedConnErrornet/http.http2traceGetConnnet/http.http2traceGotConnnet/http.Header.Addnet/http.Header.Valuesnet/http.Header.Writenet/http.Header.writenet/http.Header.Clonenet/http.stringWriter.WriteStringnet/http.(*headerSorter).Lennet/http.(*headerSorter).Swapnet/http.(*headerSorter).Lessnet/http.Header.sortedKeyValuesnet/http.Header.WriteSubsetnet/http.Header.writeSubsetnet/http.hasTokennet/http.isTokenBoundarynet/http/internal/ascii.EqualFoldnet/http/internal/ascii.lowernet/http.hasPortnet/http.removeEmptyPortnet/http.isNotTokennet/http.noBody.Readnet/http.noBody.Closenet/http.noBody.WriteTonet/http.(*ProtocolError).Errornet/http.(*Request).WithContextnet/http.cloneURLnet/http.(*Request).Clonenet/http.cloneURLValuesnet/http.(*Request).ProtoAtLeastnet/http.(*Request).UserAgentnet/http.(*Request).Cookienet/http.(*Request).AddCookienet/http.sanitizeCookieNamenet/http.(*Request).Referernet/http.(*Request).MultipartReadernet/http.(*Request).multipartReadernet/http.(*Request).Writenet/http.(*Request).WriteProxynet/http.(*Request).writenet/http.stringContainsCTLBytenet/http.valueOrDefaultnet/http.Header.hasnet/http.(*Request).write.func2net/http.(*Request).write.func1net/http.idnaASCIInet/http/internal/ascii.Isnet/http.cleanHostnet/http.removeZonenet/http.ParseHTTPVersionnet/http.NewRequestWithContextnet/http.validMethodnet/http.NewRequestWithContext.func3net/http.NewRequestWithContext.func2net/http.NewRequestWithContext.func1net/http.(*Request).BasicAuthnet/http.parseBasicAuthnet/http.(*Request).SetBasicAuthnet/http.copyValuesnet/http.parsePostFormnet/http.(*Request).ParseFormnet/http.(*Request).ParseMultipartFormnet/http.(*Request).FormValuenet/http.(*Request).PostFormValuenet/http.(*Request).FormFilenet/http.(*Request).expectsContinuenet/http.Header.getnet/http.(*Request).wantsClosenet/http.(*Request).requiresHTTP1net/http.(*Response).Locationnet/http.ReadResponsenet/textproto.(*Reader).ReadLinenet/http.badStringErrornet/http.fixPragmaCacheControlnet/http.(*Response).ProtoAtLeastnet/http.(*Response).Writenet/http.chunkednet/http.bodyAllowedForStatusnet/http.isProtocolSwitchHeadernet/http.(*Transport).RoundTripnet/http.foreachHeaderElementnet/http.(*socksDialer).connectnet/http.(*socksDialer).connect.func2net/http.(*socksDialer).connect.func1net/http.sockssplitHostPortnet/http.socksReply.Stringnet/http.(*socksAddr).Networknet/http.(*socksAddr).Stringnet/http.(*socksDialer).DialWithConnnet/http.(*socksDialer).validateTargetnet/http.socksCommand.Stringnet/http.(*socksDialer).pathAddrsnet/http.(*socksUsernamePassword).Authenticatenet/http.errorReader.Readnet/http.(*byteReader).Readnet/http.newTransferWriternet/http.noResponseBodyExpectednet/http.(*transferWriter).shouldSendChunkedRequestBodynet/http.requestMethodUsuallyLacksBodynet/http.(*transferWriter).probeRequestBodynet/http.(*transferWriter).probeRequestBody.func1net/http.(*transferWriter).shouldSendContentLengthnet/http.isIdentitynet/http.(*transferWriter).writeHeadernet/http.(*transferWriter).writeBodynet/http/internal.NewChunkedWriternet/http.(*transferWriter).writeBody.func1net/http.(*transferWriter).doBodyCopynet/http.(*transferWriter).unwrapBodynet/http.readTransfernet/http/internal.NewChunkedReadernet/http.(*unsupportedTEError).Errornet/http.(*transferReader).parseTransferEncodingnet/http.(*transferReader).protoAtLeastnet/http.fixLengthnet/http.shouldClosenet/http.fixTrailernet/http.fixTrailer.func1net/http.(*body).Readnet/http.(*body).readLockednet/http.seeUpcomingDoubleCRLFnet/http.(*body).readTrailernet/http.mergeSetHeadernet/http.(*body).Closenet/http.bodyLocked.Readnet/http.parseContentLengthnet/http.finishAsyncByteRead.Readnet/http.isKnownInMemoryReadernet/http.bufioFlushWriter.Writenet/http.(*Transport).Clonenet/http.(*Transport).onceSetNextProtoDefaultsnet/http.(*Transport).hasCustomTLSDialernet/http.ProxyFromEnvironmentnet/http.(*transportRequest).setErrornet/http.(*Transport).alternateRoundTrippernet/http.(*Transport).useRegisteredProtocolnet/http.(*Transport).roundTripnet/http.setupRewindBodynet/http.(*readTrackingBody).Readnet/http.(*readTrackingBody).Closenet/http.rewindBodynet/http.(*persistConn).shouldRetryRequestnet/http.(*Request).isReplayablenet/http.(*Transport).RegisterProtocolnet/http.(*Transport).CloseIdleConnectionsnet/http.(*Transport).CancelRequestnet/http.(*Transport).cancelRequestnet/http.envProxyFuncnet/http.(*Transport).connectMethodForRequestnet/http.(*connectMethod).proxyAuthnet/http.transportReadFromServerError.Unwrapnet/http.transportReadFromServerError.Errornet/http.(*Transport).putOrCloseIdleConnnet/http.(*Transport).tryPutIdleConnnet/http.(*Transport).maxIdleConnsPerHostnet/http.(*connLRU).lennet/http.(*connLRU).removeOldestnet/http.(*wantConnQueue).lennet/http.(*wantConnQueue).popFrontnet/http.(*Transport).queueForIdleConnnet/http.(*wantConnQueue).pushBacknet/http.(*connLRU).removenet/http.(*Transport).removeIdleConnnet/http.(*Transport).removeIdleConnLockednet/http.(*Transport).setReqCancelernet/http.(*Transport).replaceReqCancelernet/http.(*Transport).dialnet/http.(*wantConn).waitingnet/http.(*wantConn).tryDelivernet/http.(*wantConn).cancelnet/http.(*wantConnQueue).cleanFrontnet/http.(*wantConnQueue).peekFrontnet/http.(*Transport).customDialTLSnet/http.(*Transport).getConnnet/http.(*connectMethod).addrnet/http.(*Transport).getConn.func3net/http.(*Transport).getConn.func1net/http.(*Transport).queueForDialnet/http.(*Transport).dialConnFornet/http.(*Transport).decConnsPerHostnet/http.(*persistConn).addTLSnet/http.cloneTLSConfignet/http.(*persistConn).addTLS.func2net/http.(*persistConn).addTLS.func1net/http.(*Transport).dialConnnet/http.(*connectMethod).schemenet/http.(*Transport).dialConn.func1net/http.socksNewDialernet/http.(*Transport).readBufferSizenet/http.(*Transport).writeBufferSizenet/http.(*Transport).dialConn.func3net/http.(*Transport).dialConn.func2net/http.persistConnWriter.Writenet/http.persistConnWriter.ReadFromnet/http.(*connectMethod).keynet/http.(*connectMethod).tlsHostnet/http.connectMethodKey.Stringnet/http.(*persistConn).Readnet/http.(*persistConn).maxHeaderResponseSizenet/http.(*persistConn).isBrokennet/http.(*persistConn).cancelednet/http.(*persistConn).isReusednet/http.(*persistConn).gotIdleConnTracenet/http.(*persistConn).cancelRequestnet/http.(*persistConn).closeConnIfStillIdlenet/http.(*persistConn).mapRoundTripErrornet/http.(*persistConn).readLoopnet/http.(*Response).bodyIsWritablenet/http.(*persistConn).readLoop.func4net/http.(*persistConn).readLoop.func3net/http.(*persistConn).readLoop.func2net/http.(*persistConn).readLoop.func1net/http.(*persistConn).readLoopPeekFailLockednet/http.is408Messagenet/http.(*persistConn).readResponsenet/http.(*Response).isProtocolSwitchnet/http.isProtocolSwitchResponsenet/http.newReadWriteCloserBodynet/http.(*persistConn).waitForContinuenet/http.(*persistConn).waitForContinue.func1net/http.(*readWriteCloserBody).Readnet/http.(*persistConn).writeLoopnet/http.(*persistConn).wroteRequestnet/http.(*httpError).Errornet/http.(*httpError).Timeoutnet/http.(*httpError).Temporarynet/http.nopnet/http.(*persistConn).roundTripnet/http.(*transportRequest).extraHeadersnet/http.(*persistConn).roundTrip.func1net/http.(*persistConn).markReusednet/http.(*persistConn).closenet/http.(*persistConn).closeLockednet/http.canonicalAddrnet/http.(*bodyEOFSignal).Readnet/http.(*bodyEOFSignal).condfnnet/http.(*bodyEOFSignal).Closenet/http.(*gzipReader).Readnet/http.(*gzipReader).Closenet/http.tlsHandshakeTimeoutError.Timeoutnet/http.tlsHandshakeTimeoutError.Temporarynet/http.tlsHandshakeTimeoutError.Errornet/http.fakeLocker.Locknet/http.fakeLocker.Unlocknet/http.(*connLRU).addcontainer/list.Newnet/http.glob..func1net/http.glob..func2net/http.glob..func3net/http.glob..func4net/http.glob..func5net/http.glob..func13net/http.glob..func14net/http.(*http2Framer).readMetaFrame.func2net/http.NewRequestWithContext.func4net/http.envProxyFunc.func1vendor/golang.org/x/net/http/httpproxy.(*Config).ProxyFuncnet/http.(*Transport).getConn.func2net/http.initio/ioutil.NopClosernet.(*Dialer).DialContext-fmnet/http.(*atomicBool).isSet-fmnet/http.(*atomicBool).isSetnet/http.(*http2Transport).initConnPool-fmnet/http.(*http2Transport).initConnPoolnet/http.(*http2ClientConn).onIdleTimeout-fmnet/http.(*http2ClientConn).onIdleTimeoutnet/http.(*http2ClientConn).healthCheck-fmnet/http.(*http2clientStream).copyTrailers-fmnet/http.(*Transport).onceSetNextProtoDefaults-fmnet/http.(*persistConn).closeConnIfStillIdle-fmnet/http.(*socksUsernamePassword).Authenticate-fmnet/http.(*persistConn).cancelRequest-fmnet/http.http2noDialClientConnPool.MarkDeadnet/http.http2noDialClientConnPool.closeIdleConnectionsnet/http.(*persistConnWriter).ReadFromnet/http.(*persistConnWriter).Writenet/http.(*http2MetaHeadersFrame).HasPrioritynet/http.(*http2MetaHeadersFrame).Headernet/http.(*http2MetaHeadersFrame).HeaderBlockFragmentnet/http.(*http2MetaHeadersFrame).HeadersEndednet/http.(*http2MetaHeadersFrame).StreamEndednet/http.(*http2MetaHeadersFrame).Stringnet/http.(*http2MetaHeadersFrame).invalidatenet/http.(*http2DataFrame).Headernet/http.(*http2DataFrame).Stringnet/http.(*http2DataFrame).invalidatenet/http.(*http2SettingsFrame).Headernet/http.(*http2SettingsFrame).Stringnet/http.(*http2SettingsFrame).invalidatenet/http.(*http2PingFrame).Headernet/http.(*http2PingFrame).Stringnet/http.(*http2PingFrame).invalidatenet/http.(*http2GoAwayFrame).Headernet/http.(*http2GoAwayFrame).Stringnet/http.(*http2GoAwayFrame).invalidatenet/http.(*http2UnknownFrame).Headernet/http.(*http2UnknownFrame).Stringnet/http.(*http2UnknownFrame).invalidatenet/http.(*http2WindowUpdateFrame).Headernet/http.(*http2WindowUpdateFrame).Stringnet/http.(*http2WindowUpdateFrame).invalidatenet/http.(*http2HeadersFrame).Headernet/http.(*http2HeadersFrame).Stringnet/http.(*http2HeadersFrame).invalidatenet/http.(*http2PriorityFrame).Headernet/http.(*http2PriorityFrame).IsZeronet/http.(*http2PriorityFrame).Stringnet/http.(*http2PriorityFrame).invalidatenet/http.(*http2RSTStreamFrame).Headernet/http.(*http2RSTStreamFrame).Stringnet/http.(*http2RSTStreamFrame).invalidatenet/http.(*http2ContinuationFrame).Headernet/http.(*http2ContinuationFrame).Stringnet/http.(*http2ContinuationFrame).invalidatenet/http.(*http2PushPromiseFrame).Headernet/http.(*http2PushPromiseFrame).Stringnet/http.(*http2PushPromiseFrame).invalidatenet/http.http2noDialH2RoundTripper.CloseIdleConnectionsnet/http.http2noDialH2RoundTripper.NewClientConnnet/http.http2noDialH2RoundTripper.RoundTripOptnet/http.(*readWriteCloserBody).Closenet/http.(*readWriteCloserBody).Writenet/http.(*http2noCachedConnError).Errornet/http.(*http2noCachedConnError).IsHTTP2NoCachedConnErrornet/http.(*fakeLocker).Locknet/http.(*fakeLocker).Unlocknet/http.(*Header).Addnet/http.(*Header).Clonenet/http.(*Header).Delnet/http.(*Header).Getnet/http.(*Header).Setnet/http.(*Header).Valuesnet/http.(*Header).Writenet/http.(*Header).WriteSubsettype..eq.net/http.connectMethodKeynet/http.(*connectMethodKey).Stringnet/http.(*transportRequest).AddCookienet/http.transportRequest.AddCookienet/http.(*transportRequest).BasicAuthnet/http.transportRequest.BasicAuthnet/http.(*transportRequest).Clonenet/http.transportRequest.Clonenet/http.(*transportRequest).Contextnet/http.transportRequest.Contextnet/http.(*transportRequest).Cookienet/http.transportRequest.Cookienet/http.(*transportRequest).Cookiesnet/http.transportRequest.Cookiesnet/http.(*transportRequest).FormFilenet/http.transportRequest.FormFilenet/http.(*transportRequest).FormValuenet/http.transportRequest.FormValuenet/http.(*transportRequest).MultipartReadernet/http.transportRequest.MultipartReadernet/http.(*transportRequest).ParseFormnet/http.transportRequest.ParseFormnet/http.(*transportRequest).ParseMultipartFormnet/http.transportRequest.ParseMultipartFormnet/http.(*transportRequest).PostFormValuenet/http.transportRequest.PostFormValuenet/http.(*transportRequest).ProtoAtLeastnet/http.transportRequest.ProtoAtLeastnet/http.(*transportRequest).Referernet/http.transportRequest.Referernet/http.(*transportRequest).SetBasicAuthnet/http.transportRequest.SetBasicAuthnet/http.(*transportRequest).UserAgentnet/http.transportRequest.UserAgentnet/http.(*transportRequest).WithContextnet/http.transportRequest.WithContextnet/http.(*transportRequest).Writenet/http.transportRequest.Writenet/http.(*transportRequest).WriteProxynet/http.transportRequest.WriteProxytype..hash.net/http.connectMethodKeynet/http.(*bodyLocked).Readnet/http.(*bufioFlushWriter).Writenet/http.(*errorReader).Readnet/http.(*finishAsyncByteRead).Readnet/http.(*http2FrameType).Stringnet/http.(*http2Flags).Hastype..eq.net/http.http2FrameHeadernet/http.(*http2FrameHeader).Headernet/http.(*http2FrameHeader).Stringnet/http.(*http2ErrCode).Stringnet/http.http2GoAwayFrame.Headernet/http.http2GoAwayFrame.Stringnet/http.http2DataFrame.Headernet/http.http2DataFrame.Stringtype..eq.net/http.http2PriorityParamnet/http.(*http2PriorityParam).IsZeronet/http.(*http2SettingID).Stringtype..eq.net/http.http2Settingnet/http.(*http2Setting).Stringnet/http.(*http2Setting).Validnet/http.http2HeadersFrame.Headernet/http.http2HeadersFrame.Stringnet/http.http2MetaHeadersFrame.HasPrioritynet/http.http2MetaHeadersFrame.Headernet/http.http2MetaHeadersFrame.HeaderBlockFragmentnet/http.http2MetaHeadersFrame.HeadersEndednet/http.http2MetaHeadersFrame.StreamEndednet/http.http2MetaHeadersFrame.Stringnet/http.http2MetaHeadersFrame.invalidatenet/http.(*http2ConnectionError).Errornet/http.http2ContinuationFrame.Headernet/http.http2ContinuationFrame.Stringtype..eq.net/http.http2PingFramenet/http.http2PingFrame.Headernet/http.http2PingFrame.Stringtype..eq.net/http.http2PriorityFramenet/http.http2PriorityFrame.Headernet/http.http2PriorityFrame.IsZeronet/http.http2PriorityFrame.Stringtype..eq.net/http.http2RSTStreamFramenet/http.http2RSTStreamFrame.Headernet/http.http2RSTStreamFrame.Stringnet/http.http2SettingsFrame.Headernet/http.http2SettingsFrame.Stringtype..eq.net/http.http2WindowUpdateFramenet/http.http2WindowUpdateFrame.Headernet/http.http2WindowUpdateFrame.Stringtype..eq.net/http.http2StreamErrornet/http.(*http2StreamError).Errortype..eq.net/http.http2GoAwayErrornet/http.(*http2GoAwayError).Errornet/http.http2PushPromiseFrame.Headernet/http.http2PushPromiseFrame.Stringnet/http.http2UnknownFrame.Headernet/http.http2UnknownFrame.Stringtype..eq.net/http.http2connErrornet/http.(*http2connError).Errornet/http.(*http2duplicatePseudoHeaderError).Errornet/http.(*http2erringRoundTripper).RoundTripnet/http.(*http2erringRoundTripper).RoundTripErrnet/http.(*http2headerFieldNameError).Errornet/http.(*http2headerFieldValueError).Errornet/http.(*http2missingBody).Closenet/http.(*http2missingBody).Readnet/http.(*http2noDialClientConnPool).GetClientConnnet/http.(*http2noDialClientConnPool).MarkDeadnet/http.(*http2noDialClientConnPool).closeIdleConnectionsnet/http.(*http2noDialH2RoundTripper).CloseIdleConnectionsnet/http.(*http2noDialH2RoundTripper).NewClientConnnet/http.(*http2noDialH2RoundTripper).RoundTripnet/http.(*http2noDialH2RoundTripper).RoundTripOptnet/http.(*http2pseudoHeaderError).Errortype..eq.net/http.http2stickyErrWriternet/http.(*http2stickyErrWriter).Writenet/http.(*http2transportResponseBody).Closenet/http.(*http2transportResponseBody).Readtype..eq.net/http.httpErrortype..eq.net/http.maxBytesReadernet/http.(*noBody).Closenet/http.(*noBody).Readnet/http.(*noBody).WriteTonet/http.(*nothingWrittenError).Errornet/http.nothingWrittenError.Errortype..eq.net/http.readTrackingBodynet/http.readWriteCloserBody.Closenet/http.readWriteCloserBody.Writenet/http.(*requestBodyReadError).Errornet/http.requestBodyReadError.Errortype..eq.net/http.socksUsernamePasswordnet/http.(*stringWriter).WriteStringnet/http.(*tlsHandshakeTimeoutError).Errornet/http.(*tlsHandshakeTimeoutError).Temporarynet/http.(*tlsHandshakeTimeoutError).Timeoutnet/http.(*transportReadFromServerError).Errornet/http.(*transportReadFromServerError).Unwraptype..eq.struct { io.Reader; io.Closer }go.(*struct { io.Reader; io.Closer }).Closego.(*struct { io.Reader; io.Closer }).Readgo.struct { io.Reader; io.Closer }.Closego.struct { io.Reader; io.Closer }.Readgithub.com/lestrrat-go/option.(*pair).Identgithub.com/lestrrat-go/option.(*pair).Valuetype..eq.github.com/lestrrat-go/option.pairgithub.com/lestrrat-go/httprc.(*fetchResult).replygithub.com/lestrrat-go/httprc.NewFetchergithub.com/lestrrat-go/httprc.(*fetcher).Fetchgithub.com/lestrrat-go/httprc.(*fetcher).fetchgithub.com/lestrrat-go/httprc.runFetchWorkergithub.com/lestrrat-go/httprc.identFetcherWorkerCount.Stringgithub.com/lestrrat-go/httprc.(*fetcherOption).Identgithub.com/lestrrat-go/httprc.(*fetcherOption).Valuetype..eq.github.com/lestrrat-go/httprc.fetchResulttype..eq.github.com/lestrrat-go/httprc.fetchRequestgithub.com/lestrrat-go/httprc.fetcherOption.Identgithub.com/lestrrat-go/httprc.fetcherOption.Valuegithub.com/lestrrat-go/httprc.(*identFetcherWorkerCount).Stringgithub.com/lestrrat-go/jwx/v2/internal/base64.Encodegithub.com/lestrrat-go/jwx/v2/internal/base64.EncodeUint64ToStringgithub.com/lestrrat-go/jwx/v2/internal/base64.EncodeToStringgithub.com/lestrrat-go/jwx/v2/internal/base64.Decodegithub.com/lestrrat-go/jwx/v2/internal/ecutil.getCrvFixedBuffergithub.com/lestrrat-go/jwx/v2/internal/ecutil.ReleaseECPointBuffergithub.com/lestrrat-go/jwx/v2/internal/ecutil.AllocECPointBuffergithub.com/lestrrat-go/jwx/v2/internal/ecutil.glob..func1github.com/lestrrat-go/jwx/v2/internal/ecutil.initgithub.com/lestrrat-go/iter/mapiter.Iterategithub.com/lestrrat-go/iter/mapiter.Newgithub.com/lestrrat-go/iter/mapiter.VisitorFunc.Visitgithub.com/lestrrat-go/iter/mapiter.(*iter).Nextgithub.com/lestrrat-go/iter/mapiter.(*iter).Pairgithub.com/lestrrat-go/iter/mapiter.Walkgithub.com/lestrrat-go/iter/mapiter.AsMapgithub.com/lestrrat-go/iter/mapiter.Iterate.func1type..eq.github.com/lestrrat-go/iter/mapiter.Pairgithub.com/lestrrat-go/iter/mapiter.(*VisitorFunc).Visitgithub.com/lestrrat-go/jwx/v2/cert.Chain.MarshalJSONgithub.com/lestrrat-go/jwx/v2/cert.(*Chain).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/cert.(*Chain).Getgithub.com/lestrrat-go/jwx/v2/cert.(*Chain).Lengithub.com/lestrrat-go/jwx/v2/cert.(*Chain).AddStringgithub.com/lestrrat-go/jwx/v2/cert.(*Chain).Addbytes.TrimSuffixgithub.com/lestrrat-go/jwx/v2/cert.(*Chain).MarshalJSONgithub.com/lestrrat-go/jwx/v2/internal/iter.WalkMapgithub.com/lestrrat-go/jwx/v2/internal/iter.WalkMap.func1github.com/lestrrat-go/jwx/v2/internal/iter.AsMapgithub.com/lestrrat-go/jwx/v2/internal/json.Unmarshalgithub.com/lestrrat-go/jwx/v2/internal/json.AssignNextBytesTokengithub.com/lestrrat-go/jwx/v2/internal/base64.DecodeStringgithub.com/lestrrat-go/jwx/v2/internal/json.ReadNextStringTokengithub.com/lestrrat-go/jwx/v2/internal/json.(*decodeCtx).Registrygithub.com/lestrrat-go/jwx/v2/internal/json.(*Registry).Registergithub.com/lestrrat-go/jwx/v2/internal/json.(*Registry).Decodegithub.com/lestrrat-go/jwx/v2/internal/json.NewDecoderencoding/json.NewDecodergithub.com/lestrrat-go/iter/arrayiter.(*iter).Nextgithub.com/lestrrat-go/iter/arrayiter.(*iter).Pairtype..eq.github.com/lestrrat-go/iter/arrayiter.Pairgolang.org/x/crypto/curve25519/internal/field.(*Element).reducegolang.org/x/crypto/curve25519/internal/field.(*Element).carryPropagategolang.org/x/crypto/curve25519/internal/field.(*Element).Addgolang.org/x/crypto/curve25519/internal/field.(*Element).Subtractgolang.org/x/crypto/curve25519/internal/field.(*Element).Invertgolang.org/x/crypto/curve25519/internal/field.(*Element).Squaregolang.org/x/crypto/curve25519/internal/field.feSquaregolang.org/x/crypto/curve25519/internal/field.(*Element).Multiplygolang.org/x/crypto/curve25519/internal/field.feMulgolang.org/x/crypto/curve25519/internal/field.(*Element).SetBytesgolang.org/x/crypto/curve25519/internal/field.(*Element).bytesgolang.org/x/crypto/curve25519/internal/field.(*Element).Swapgolang.org/x/crypto/curve25519/internal/field.mask64Bitsgolang.org/x/crypto/curve25519/internal/field.(*Element).Mult32golang.org/x/crypto/curve25519/internal/field.mul51golang.org/x/crypto/curve25519/internal/field.feMulGenericgolang.org/x/crypto/curve25519/internal/field.mul64golang.org/x/crypto/curve25519/internal/field.addMul64golang.org/x/crypto/curve25519/internal/field.shiftRightBy51golang.org/x/crypto/curve25519/internal/field.feSquareGenericgolang.org/x/crypto/curve25519/internal/field.(*Element).carryPropagateGenericgolang.org/x/crypto/curve25519/internal/field.carryPropagategolang.org/x/crypto/curve25519.ScalarMultgolang.org/x/crypto/curve25519/internal/field.(*Element).Onegolang.org/x/crypto/curve25519/internal/field.(*Element).Setgolang.org/x/crypto/curve25519/internal/field.(*Element).Bytesgolang.org/x/crypto/curve25519.init.0golang.org/x/crypto/curve25519.checkBasepointgolang.org/x/crypto/curve25519.x25519golang.org/x/crypto/curve25519.ScalarBaseMultgithub.com/lestrrat-go/jwx/v2/x25519.PublicKey.Equalgithub.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Publicgithub.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Equalgithub.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Seedgithub.com/lestrrat-go/jwx/v2/x25519.NewKeyFromSeedgolang.org/x/crypto/curve25519.X25519github.com/lestrrat-go/jwx/v2/x25519.GenerateKeygithub.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Equalgithub.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Publicgithub.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Seedgithub.com/lestrrat-go/jwx/v2/x25519.(*PublicKey).Equalgithub.com/lestrrat-go/jwx/v2/jwk.init.0github.com/lestrrat-go/jwx/v2/internal/ecutil.RegisterCurvegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).FromRawgithub.com/lestrrat-go/jwx/v2/internal/ecutil.AlgorithmForCurvegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.buildECDSAPublicKeygithub.com/lestrrat-go/jwx/v2/internal/ecutil.CurveForAlgorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Crvgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Crvgithub.com/lestrrat-go/jwx/v2/jwk.makeECDSAPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.newECDSAPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.ecdsaThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Xgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Ygithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/internal/json.AssignNextStringTokengithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/internal/pool.GetBytesBuffergithub.com/lestrrat-go/jwx/v2/internal/json.NewEncoderencoding/json.NewEncodergithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Dgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Xgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Ygithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.init.1github.com/lestrrat-go/httprc.WithFetcherWorkerCountgithub.com/lestrrat-go/option.Newgithub.com/lestrrat-go/jwx/v2/jwk.sysFS.Opengithub.com/lestrrat-go/jwx/v2/jwk.ReadFilegithub.com/lestrrat-go/jwx/v2/jwk.bigIntToBytesgithub.com/lestrrat-go/jwx/v2/jwk.FromRawgithub.com/lestrrat-go/jwx/v2/jwk.newRSAPrivateKeygithub.com/lestrrat-go/jwx/v2/jwk.newOKPPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.newSymmetricKeygithub.com/lestrrat-go/jwx/v2/jwk.newECDSAPrivateKeygithub.com/lestrrat-go/jwx/v2/jwk.newRSAPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.newOKPPrivateKeygithub.com/lestrrat-go/jwx/v2/jwk.PublicSetOfgithub.com/lestrrat-go/jwx/v2/jwk.NewSetgithub.com/lestrrat-go/jwx/v2/jwk.PublicKeyOfgithub.com/lestrrat-go/jwx/v2/jwk.DecodePEMcrypto/x509.ParseECPrivateKeygithub.com/lestrrat-go/jwx/v2/jwk.(*setDecodeCtx).IgnoreParseErrorgithub.com/lestrrat-go/jwx/v2/jwk.ParseKeygithub.com/lestrrat-go/jwx/v2/internal/json.NewDecodeCtxgithub.com/lestrrat-go/jwx/v2/internal/json.NewRegistrygithub.com/lestrrat-go/jwx/v2/jwk.ParseKey.func1github.com/lestrrat-go/jwx/v2/jwk.Parsegithub.com/lestrrat-go/jwx/v2/jwk.Parse.func1github.com/lestrrat-go/jwx/v2/jwk.ParseReaderio/ioutil.ReadAllgithub.com/lestrrat-go/jwx/v2/jwk.cloneKeygithub.com/lestrrat-go/jwx/v2/jwk.Pemgithub.com/lestrrat-go/jwx/v2/jwk.asnEncodegithub.com/lestrrat-go/jwx/v2/jwk.(*KeyOperationList).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*KeyOperationList).Acceptgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Crvgithub.com/lestrrat-go/jwx/v2/jwk.buildOKPPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.buildOKPPrivateKeygithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Crvgithub.com/lestrrat-go/jwx/v2/jwk.makeOKPPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.okpThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Xgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Dgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Xgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.identLocalRegistry.Stringgithub.com/lestrrat-go/jwx/v2/jwk.identPEM.Stringgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.rsaPublicKeyByteValuesFromRawgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Rawgithub.com/lestrrat-go/jwx/v2/internal/pool.GetBigIntgithub.com/lestrrat-go/jwx/v2/jwk.makeRSAPublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.rsaThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Egithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Ngithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Dgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DPgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DQgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Egithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Ngithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Pgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Qgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).QIgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Fieldgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Lengithub.com/lestrrat-go/jwx/v2/jwk.(*set).indexNLgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Indexgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Addgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*set).Cleargithub.com/lestrrat-go/jwx/v2/jwk.(*set).Iterategithub.com/lestrrat-go/iter/arrayiter.Newgithub.com/lestrrat-go/jwx/v2/jwk.iterategithub.com/lestrrat-go/jwx/v2/jwk.(*set).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*set).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.withLocalRegistrygithub.com/lestrrat-go/jwx/v2/jwk.(*set).LookupKeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*set).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*set).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*set).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).FromRawgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Rawgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).PublicKeygithub.com/lestrrat-go/jwx/v2/jwk.symmetricKey.KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Algorithmgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyIDgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyOpsgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyUsagegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Octetsgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509URLgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).makePairsgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Getgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Setgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).setNoLockgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Removegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Clonegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.symmetricKey.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Iterategithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Walkgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).AsMapgithub.com/lestrrat-go/jwx/v2/jwk.KeyUsageType.Stringgithub.com/lestrrat-go/jwx/v2/jwk.(*KeyUsageType).Acceptgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Iterate.func1github.com/lestrrat-go/jwx/v2/jwk.initgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Thumbprintgithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyTypegithub.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwk.(*setDecodeCtx).Registrygithub.com/lestrrat-go/jwx/v2/jwk.(*parseOption).Identgithub.com/lestrrat-go/jwx/v2/jwk.(*parseOption).Valuegithub.com/lestrrat-go/jwx/v2/jwk.(*KeyUsageType).Stringgithub.com/lestrrat-go/jwx/v2/jwk.(*identLocalRegistry).Stringgithub.com/lestrrat-go/jwx/v2/jwk.(*identPEM).Stringgithub.com/lestrrat-go/jwx/v2/jwk.parseOption.Identgithub.com/lestrrat-go/jwx/v2/jwk.parseOption.Valuetype..eq.github.com/lestrrat-go/jwx/v2/jwk.setDecodeCtxgithub.com/lestrrat-go/jwx/v2/jwk.setDecodeCtx.Registrygithub.com/lestrrat-go/jwx/v2/jwk.(*sysFS).Opentype..eq.github.com/lestrrat-go/jwx/v2/jwk.typedFieldPairgithub.com/lestrrat-go/jwx/v2/internal/keyconv.RSAPrivateKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.RSAPublicKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.ECDSAPrivateKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.ECDSAPublicKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.ByteSliceKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.Ed25519PrivateKeygithub.com/lestrrat-go/jwx/v2/internal/keyconv.Ed25519PublicKeygithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.unpadgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Newgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.NonceSizegithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Overheadgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.ComputeAuthTaggithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Sealgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.padgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.ensureSizegithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Opengithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).ComputeAuthTaggithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).NonceSizegithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Opengithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Overheadgithub.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Sealgithub.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf.Newgithub.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf.ndatagithub.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf.(*KDF).Readgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteKey.Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Random.Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Random.Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes.Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes.Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.X25519.Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.X25519.Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithECPublicKey.Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithIVAndTag.Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithSaltAndCount.Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteKey).Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithECPublicKey).Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithECPublicKey).Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithECPublicKey.Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithIVAndTag).Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithIVAndTag).Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithIVAndTag.Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithSaltAndCount).Bytesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithSaltAndCount).Populategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithSaltAndCount.Bytestype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Ecdhes).Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Ecdhes).Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Random).Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Random).Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*X25519).Generategithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*X25519).Sizegithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.gcmFetcher.Fetchgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.cbcFetcher.Fetchgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.KeySizegithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.TagSizegithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.NewAESgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Encrypt.func1github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Decrypt.func1github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*gcmFetcher).Fetchgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*cbcFetcher).Fetchtype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCiphergithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).KeySizegithub.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).TagSizegithub.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Generic.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.NewGenerictype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Genericgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewPBES2Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewECDHESEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.NewEcdhesgithub.com/lestrrat-go/jwx/v2/jwe/internal/keygen.NewX25519github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESDecrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.DeriveZgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.DeriveECDHESgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESDecrypt.Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).SetKeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt.Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt.Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Wrapgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Unwrapgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Decrypt.func1github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESDecrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESDecrypt).Decrypttype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).KeyIDtype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPDecrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPDecrypt).Decrypttype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).KeyIDtype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCS15Decrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCS15Decrypt).Decrypttype..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).Encryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe.uncompressgithub.com/lestrrat-go/jwx/v2/jwe.compresscompress/flate.(*Writer).Writecompress/flate.(*Writer).Closegithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).ContentCiphergithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).Decryptgithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).decryptSymmetricKeygithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).DecryptKeygithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).BuildKeyDecryptergithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewAESgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewRSAPKCS15Decryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewRSAOAEPDecryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewECDHESDecryptgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).isZerogithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Iterategithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Walkgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AsMapgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Clonegithub.com/lestrrat-go/jwx/v2/jwe.NewHeadersgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Copygithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Mergegithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Encodegithub.com/lestrrat-go/jwx/v2/internal/json.Marshalgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Decodegithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AgreementPartyUInfogithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AgreementPartyVInfogithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Algorithmgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Compressiongithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).ContentEncryptiongithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).ContentTypegithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Criticalgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).EphemeralPublicKeygithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).JWKgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).JWKSetURLgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).KeyIDgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Typegithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertChaingithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509URLgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).makePairsgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Getgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Setgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).setNoLockgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Removegithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.stdHeaders.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*recipientBuilder).Buildgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewNoopgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewRSAPKCSEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewRSAOAEPEncryptgithub.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Generic.KeySizegithub.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewAESGCMEncryptgithub.com/lestrrat-go/jwx/v2/jwe.NewRecipientgithub.com/lestrrat-go/jwx/v2/jwe.Encryptcontext.TODOgithub.com/lestrrat-go/jwx/v2/jwe.NewMessagegithub.com/lestrrat-go/jwx/v2/internal/json.MarshalIndentgithub.com/lestrrat-go/jwx/v2/jwe.Decryptgithub.com/lestrrat-go/jwx/v2/jwe.(*decryptCtx).trygithub.com/lestrrat-go/jwx/v2/jwe.(*decryptCtx).decryptKeygithub.com/lestrrat-go/jwx/v2/jwe.newDecryptergithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).AuthenticatedDatagithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).ComputedAuthenticatedDatagithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).InitializationVectorgithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).Taggithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).KeyInitializationVectorgithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).KeyTaggithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).PublicKeygithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).AgreementPartyUInfogithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).AgreementPartyVInfogithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).KeySaltgithub.com/lestrrat-go/jwx/v2/jwe.(*decrypter).KeyCountgithub.com/lestrrat-go/jwx/v2/jwe.parseJSONOrCompactgithub.com/lestrrat-go/jwx/v2/jwe.parseJSONgithub.com/lestrrat-go/jwx/v2/jwe.parseCompactgithub.com/lestrrat-go/jwx/v2/jwe.(*algKeySink).Keygithub.com/lestrrat-go/jwx/v2/jwe.(*staticKeyProvider).FetchKeysgithub.com/lestrrat-go/jwx/v2/jwe.KeyProviderFunc.FetchKeysgithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).SetHeadersgithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).SetEncryptedKeygithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).Headersgithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).EncryptedKeygithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).AuthenticatedDatagithub.com/lestrrat-go/jwx/v2/jwe.(*Message).CipherTextgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).InitializationVectorgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).Taggithub.com/lestrrat-go/jwx/v2/jwe.(*Message).ProtectedHeadersgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).Recipientsgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).UnprotectedHeadersgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).Setgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).MarshalJSON.func1github.com/lestrrat-go/jwx/v2/jwe.(*Message).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*Message).makeDummyRecipientgithub.com/lestrrat-go/jwx/v2/jwe.Compactgithub.com/lestrrat-go/jwx/v2/jwe.WithKeygithub.com/lestrrat-go/jwx/v2/jwe.identCompress.Stringgithub.com/lestrrat-go/jwx/v2/jwe.identContentEncryptionAlgorithm.Stringgithub.com/lestrrat-go/jwx/v2/jwe.identKey.Stringgithub.com/lestrrat-go/jwx/v2/jwe.identKeyProvider.Stringgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Iterate.func1github.com/lestrrat-go/jwx/v2/jwe.initgithub.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jwe.(*encryptOption).Identgithub.com/lestrrat-go/jwx/v2/jwe.(*encryptOption).Valuegithub.com/lestrrat-go/jwx/v2/jwe.(*encryptDecryptOption).Identgithub.com/lestrrat-go/jwx/v2/jwe.(*encryptDecryptOption).Valuegithub.com/lestrrat-go/jwx/v2/jwe.(*decryptOption).Identgithub.com/lestrrat-go/jwx/v2/jwe.(*decryptOption).Valuegithub.com/lestrrat-go/jwx/v2/jwe.(*KeyProviderFunc).FetchKeystype..eq.github.com/lestrrat-go/jwx/v2/jwe.algKeyPairgithub.com/lestrrat-go/jwx/v2/jwe.decryptOption.Identgithub.com/lestrrat-go/jwx/v2/jwe.decryptOption.Valuegithub.com/lestrrat-go/jwx/v2/jwe.encryptDecryptOption.Identgithub.com/lestrrat-go/jwx/v2/jwe.encryptDecryptOption.Valuegithub.com/lestrrat-go/jwx/v2/jwe.encryptOption.Identgithub.com/lestrrat-go/jwx/v2/jwe.encryptOption.Valuegithub.com/lestrrat-go/jwx/v2/jwe.(*identCompress).Stringgithub.com/lestrrat-go/jwx/v2/jwe.(*identContentEncryptionAlgorithm).Stringgithub.com/lestrrat-go/jwx/v2/jwe.(*identKey).Stringgithub.com/lestrrat-go/jwx/v2/jwe.(*identKeyProvider).Stringtype..eq.github.com/lestrrat-go/jwx/v2/jwe.jsonKVtype..eq.github.com/lestrrat-go/jwx/v2/jwe.recipientBuildertype..eq.github.com/lestrrat-go/jwx/v2/jwe.recipientMarshalProxytype..eq.github.com/lestrrat-go/jwx/v2/jwe.staticKeyProvidertype..eq.github.com/lestrrat-go/jwx/v2/jwe.withKeygithub.com/lestrrat-go/jwx/v2/jws.init.0github.com/lestrrat-go/jwx/v2/jws.newECDSASignergithub.com/lestrrat-go/jwx/v2/jws.ecdsaSigner.Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*ecdsaSigner).Signgithub.com/lestrrat-go/jwx/v2/jws.newECDSAVerifiergithub.com/lestrrat-go/jwx/v2/jws.ecdsaVerifier.Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*ecdsaVerifier).Verifygithub.com/lestrrat-go/jwx/v2/jws.eddsaSigner.Algorithmgithub.com/lestrrat-go/jwx/v2/jws.eddsaSigner.Signgithub.com/lestrrat-go/jwx/v2/jws.eddsaVerifier.Verifygithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Iterategithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Walkgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).AsMapgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Copygithub.com/lestrrat-go/jwx/v2/jws.mergeHeadersgithub.com/lestrrat-go/jwx/v2/jws.NewHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Mergegithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).ContentTypegithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Criticalgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).JWKgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).JWKSetURLgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).KeyIDgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Typegithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertChaingithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertThumbprintgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertThumbprintS256github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509URLgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).rawBuffergithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).makePairsgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).makePairs.func1github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).PrivateParamsgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Getgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Setgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).setNoLockgithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Removegithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.stdHeaders.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.init.1github.com/lestrrat-go/jwx/v2/jws.newHMACSignergithub.com/lestrrat-go/jwx/v2/jws.makeHMACSignFuncgithub.com/lestrrat-go/jwx/v2/jws.makeHMACSignFunc.func1github.com/lestrrat-go/jwx/v2/jws.HMACSigner.Algorithmgithub.com/lestrrat-go/jwx/v2/jws.HMACSigner.Signgithub.com/lestrrat-go/jwx/v2/jws.newHMACVerifiergithub.com/lestrrat-go/jwx/v2/jws.HMACVerifier.Verifygithub.com/lestrrat-go/jwx/v2/jws.makeSignergithub.com/lestrrat-go/jwx/v2/jws.Signgithub.com/lestrrat-go/jwx/v2/jws.(*payloadSigner).ProtectedHeadergithub.com/lestrrat-go/jwx/v2/jws.(*payloadSigner).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*payloadSigner).PublicHeadergithub.com/lestrrat-go/jwx/v2/jws.WithDetachedgithub.com/lestrrat-go/jwx/v2/jws.Verifygithub.com/lestrrat-go/jwx/v2/jws.getB64Valuegithub.com/lestrrat-go/jwx/v2/jws.Parsegithub.com/lestrrat-go/jwx/v2/jws.parseJSONgithub.com/lestrrat-go/jwx/v2/jws.SplitCompactgithub.com/lestrrat-go/jwx/v2/jws.parseCompactgithub.com/lestrrat-go/jwx/v2/jws.parsegithub.com/lestrrat-go/jwx/v2/jws.init.2github.com/lestrrat-go/jwx/v2/jws.addAlgorithmForKeyTypegithub.com/lestrrat-go/jwx/v2/jws.AlgorithmsForKeygithub.com/lestrrat-go/jwx/v2/jws.(*algKeySink).Keygithub.com/lestrrat-go/jwx/v2/jws.(*staticKeyProvider).FetchKeysgithub.com/lestrrat-go/jwx/v2/jws.(*keySetProvider).selectKeygithub.com/lestrrat-go/jwx/v2/jws.Signature.ProtectedHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*keySetProvider).FetchKeysgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.Signature.PublicHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).SetPublicHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).SetProtectedHeadersgithub.com/lestrrat-go/jwx/v2/jws.Signature.Signaturegithub.com/lestrrat-go/jwx/v2/jws.(*Signature).SetSignaturegithub.com/lestrrat-go/jwx/v2/jws.(*Signature).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).Signgithub.com/lestrrat-go/jwx/v2/jws.(*Message).clearRawgithub.com/lestrrat-go/jwx/v2/jws.(*Message).SetDecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.(*Message).DecodeCtxgithub.com/lestrrat-go/jwx/v2/jws.Message.Payloadgithub.com/lestrrat-go/jwx/v2/jws.(*Message).SetPayloadgithub.com/lestrrat-go/jwx/v2/jws.Message.Signaturesgithub.com/lestrrat-go/jwx/v2/jws.(*Message).AppendSignaturegithub.com/lestrrat-go/jwx/v2/jws.(*Message).ClearSignaturesgithub.com/lestrrat-go/jwx/v2/jws.Message.LookupSignaturegithub.com/lestrrat-go/jwx/v2/jws.(*Message).UnmarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.Message.MarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.Message.marshalFlattenedgithub.com/lestrrat-go/jwx/v2/jws.Message.marshalFullgithub.com/lestrrat-go/jwx/v2/jws.Compactgithub.com/lestrrat-go/jwx/v2/jws.(*withKey).Protectedgithub.com/lestrrat-go/jwx/v2/jws.WithKeygithub.com/lestrrat-go/jwx/v2/jws.WithKeySetgithub.com/lestrrat-go/jwx/v2/jws.WithKeyProvidergithub.com/lestrrat-go/jwx/v2/jws.identDetached.Stringgithub.com/lestrrat-go/jwx/v2/jws.identKey.Stringgithub.com/lestrrat-go/jwx/v2/jws.identKeyProvider.Stringgithub.com/lestrrat-go/jwx/v2/jws.init.3github.com/lestrrat-go/jwx/v2/jws.newRSASignergithub.com/lestrrat-go/jwx/v2/jws.(*rsaSigner).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*rsaSigner).Signgithub.com/lestrrat-go/jwx/v2/jws.newRSAVerifiergithub.com/lestrrat-go/jwx/v2/jws.(*rsaVerifier).Verifygithub.com/lestrrat-go/jwx/v2/jws.SignerFactoryFn.Creategithub.com/lestrrat-go/jwx/v2/jws.init.4github.com/lestrrat-go/jwx/v2/jws.RegisterSignergithub.com/lestrrat-go/jwx/v2/jws.init.4.func7github.com/lestrrat-go/jwx/v2/jws.init.4.func6github.com/lestrrat-go/jwx/v2/jws.init.4.func5github.com/lestrrat-go/jwx/v2/jws.NewSignergithub.com/lestrrat-go/jwx/v2/jws.VerifierFactoryFn.Creategithub.com/lestrrat-go/jwx/v2/jws.init.5github.com/lestrrat-go/jwx/v2/jws.RegisterVerifiergithub.com/lestrrat-go/jwx/v2/jws.init.5.func7github.com/lestrrat-go/jwx/v2/jws.init.5.func6github.com/lestrrat-go/jwx/v2/jws.init.5.func5github.com/lestrrat-go/jwx/v2/jws.NewVerifiergithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Iterate.func1github.com/lestrrat-go/jwx/v2/jws.init.4.func4github.com/lestrrat-go/jwx/v2/jws.init.5.func4github.com/lestrrat-go/jwx/v2/jws.initgithub.com/lestrrat-go/jwx/v2/jws.(*ecdsaSigner).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*ecdsaVerifier).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*eddsaSigner).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*eddsaSigner).Signgithub.com/lestrrat-go/jwx/v2/jws.(*eddsaVerifier).Verifygithub.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.(*HMACSigner).Algorithmgithub.com/lestrrat-go/jwx/v2/jws.(*HMACSigner).Signgithub.com/lestrrat-go/jwx/v2/jws.(*HMACVerifier).Verifygithub.com/lestrrat-go/jwx/v2/jws.(*signOption).Identgithub.com/lestrrat-go/jwx/v2/jws.(*signOption).Valuegithub.com/lestrrat-go/jwx/v2/jws.(*signVerifyOption).Identgithub.com/lestrrat-go/jwx/v2/jws.(*signVerifyOption).Valuegithub.com/lestrrat-go/jwx/v2/jws.(*verifyOption).Identgithub.com/lestrrat-go/jwx/v2/jws.(*verifyOption).Valuegithub.com/lestrrat-go/jwx/v2/jws.(*compactOption).Identgithub.com/lestrrat-go/jwx/v2/jws.(*compactOption).Valuegithub.com/lestrrat-go/jwx/v2/jws.(*Signature).ProtectedHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).PublicHeadersgithub.com/lestrrat-go/jwx/v2/jws.(*Signature).Signaturegithub.com/lestrrat-go/jwx/v2/jws.(*Message).LookupSignaturegithub.com/lestrrat-go/jwx/v2/jws.(*Message).MarshalJSONgithub.com/lestrrat-go/jwx/v2/jws.(*Message).Payloadgithub.com/lestrrat-go/jwx/v2/jws.(*Message).Signaturesgithub.com/lestrrat-go/jwx/v2/jws.(*SignerFactoryFn).Creategithub.com/lestrrat-go/jwx/v2/jws.(*VerifierFactoryFn).Createtype..eq.github.com/lestrrat-go/jwx/v2/jws.algKeyPairgithub.com/lestrrat-go/jwx/v2/jws.compactOption.Identgithub.com/lestrrat-go/jwx/v2/jws.compactOption.Valuetype..eq.github.com/lestrrat-go/jwx/v2/jws.ecdsaSignertype..eq.github.com/lestrrat-go/jwx/v2/jws.ecdsaVerifiergithub.com/lestrrat-go/jwx/v2/jws.(*identDetached).Stringgithub.com/lestrrat-go/jwx/v2/jws.(*identKey).Stringgithub.com/lestrrat-go/jwx/v2/jws.(*identKeyProvider).Stringtype..eq.github.com/lestrrat-go/jwx/v2/jws.keySetProvidertype..eq.github.com/lestrrat-go/jwx/v2/jws.payloadSignertype..eq.github.com/lestrrat-go/jwx/v2/jws.rsaSignertype..eq.github.com/lestrrat-go/jwx/v2/jws.rsaVerifiergithub.com/lestrrat-go/jwx/v2/jws.signOption.Identgithub.com/lestrrat-go/jwx/v2/jws.signOption.Valuegithub.com/lestrrat-go/jwx/v2/jws.signVerifyOption.Identgithub.com/lestrrat-go/jwx/v2/jws.signVerifyOption.Valuetype..eq.github.com/lestrrat-go/jwx/v2/jws.signatureUnmarshalProbetype..eq.github.com/lestrrat-go/jwx/v2/jws.staticKeyProvidergithub.com/lestrrat-go/jwx/v2/jws.verifyOption.Identgithub.com/lestrrat-go/jwx/v2/jws.verifyOption.Valuetype..eq.github.com/lestrrat-go/jwx/v2/jws.withKeytype..eq.struct { Hash crypto.Hash; PSS bool }main.init.0main.makeJwaCmdmain.init.1main.makeJweCmdmain.makeJweEncryptCmdmain.keyFlagmain.keyFormatFlagmain.keyEncryptionFlagmain.outputFlagmain.makeJweDecryptCmdmain.init.2main.makeJwkCmdmain.dumpJWKSetmain.makeJwkGenerateCmdgithub.com/lestrrat-go/jwx/v2/jwk.AvailableCurvesmain.publicKeyFlagmain.jwkOutputFormatFlagmain.jwkSetFlagmain.makeJwkGenerateCmd.func1github.com/lestrrat-go/jwx/v2/jwk.CurveForAlgorithmgolang.org/x/crypto/ed25519.GenerateKeycrypto/rsa.GenerateKeymain.makeJwkFormatCmdmain.init.3main.makeJwsCmdmain.makeJwsParseCmdmain.makeJwsVerifyCmdmain.jwsAlgorithmFlagmain.makeJwsSignCmdmain.(*dummyWriteCloser).Closemain.mainmain.main.func1strings.Comparemain.dumpJSONmain.getSourcemain.getOutputmain.getKeyFilegithub.com/lestrrat-go/jwx/v2/jwk.WithPEMmain.makeJwaCmd.func1main.makeJweEncryptCmd.func1github.com/lestrrat-go/jwx/v2/jwe.WithContentEncryptiongithub.com/lestrrat-go/jwx/v2/jwe.WithCompressmain.makeJweDecryptCmd.func1github.com/lestrrat-go/jwx/v2/jwe.WithKeyProvidermain.makeJweDecryptCmd.func1.1main.makeJwkFormatCmd.func1main.makeJwsParseCmd.func1main.makeJwsVerifyCmd.func1main.makeJwsSignCmd.func1github.com/lestrrat-go/jwx/v2/jws.WithHeadersmain.(*dummyWriteCloser).Writemain.dummyWriteCloser.Writetype..eq.[4]github.com/urfave/cli/v2.Flagtype..eq.[5]github.com/urfave/cli/v2.Flagtype..eq.[6]github.com/urfave/cli/v2.Flagtype..eq.[8]github.com/urfave/cli/v2.FlagTOO6PPPPhQRFQQ>U\UQQQROTPbR&QRORxOROS5SARXSzSSSSwPT6TaTPTPTT UUz%NLPb1 e!(!Y =  !I"Mk"< | !R , V M_LNMN>N&R0b(]_; ir <_h F o 6$  , H O u   m 6 ;\ `-y tP 3]P, [ ,   R&]81 7a/0/&10j1011b3332;444x2-25V5355/6a066z%V&O#%! !(!Pb1 eY = !I"F*.)"*)*!& &&,C(''M'o((w6t-u&#zG.. Sj/ 2V +O8n0Su&z(RtO+S:Y} z' .Rz]:Y Sz'[<, H, -St >zGzzj{z&10z%/1O#V&/j110b3332;444x2-25V5355/6h=ij$ph$iDk !(!Pb1 eY = !I"#$$#4%a0t-##ouvhEvv@u.G.u&>99^988999:^:9n#:BA3A{FOnpDqxBxwx yt{!Oo| 3BYBwFi[:1V a9a "<bP 6e1 V = Y | "" !(!j!"!J!!%"I"k"""!!Pb1 eV t, [<R#/#O#n#S:YR !(!Pb1 eY = !I"z###$h$$$4%z% %{%%2& & Sz'0V&!u&zRt !(!Pb1 eY = !I"#%O# &&&"& '+' Sz'0M'''%O#S & z'#n#(o(w6C(''%M'O# &#z'&S'&& n# .| } 'O#% &#((%S &()).)V)) % &S.)*"*F*.))V)):Y %(S & 'z'i*,++O+*+1,&F*.)"*)* ' &( O#,$-*+t--- --.G....q./B/&:Y Sz &#-. ORO#tz' '+'j/$7E7S '%e77S87"887#+$7898;98^999:999:^:+n#O#889:YOn#%- '+'::&:;x;;$<;C;-;J<v<<<<;;C;;-=?=h===;>0>Z>>99^988999:^:9O#n#:=>nnoOoopqoDqqppqFprehe'ffxO \TPObRYX99^988999:^:9O#n#:K?'WWVLf]z%f]$7hhh=ij$h$iDk#$ijj/G.q.3A>BF*.)"*)*#FiDh4%#j+':&  !(!Pb1 eY = !I"FOnWW9WKV 't--e#| YB'X->?}?F?h=-???99^988999:^:9O#n#:#S. &t ')@n@@@)@99^988999:^:9O#n#:?#?3A[A99^988999:^:9O#n#:>h=$<;@n@)@?>?AAAB3B;<99^988999:^:9O#n#:  !(!Pb1 eY = !I"$7-YBBB99^988999:^:9O#n#:h=>; 'BB#Ch=-XCCCDcDDD>E-;EEFYFFcDD>E;- -DFh= 'A?FE G1G;-C;XGC;|GGGh=-GvH.HI;-+HBIJII+;-SJJJ;II-H.HWKK '- &&K99^988999:^:9O#n#:KK?99^988999:^:9O#n#:?KL_LL MHMMMMNNLN | N*Oeffgf'f7gLfegrfggZgg'] \YX99^988999:^:9O#n#:K?OWWVz%>h=ZxO$7fTPbRWK 1G< &  'S?.#FKUK:? !(!Pb1 eY = !I"&Q0>TXXX;#-4YCnYYYYZ6PON&QPLPTPbRPR:Y3A#FBYBBXG1G:<C|GBSJ? 'A &V;U4YTXx; KW9WW v<3B'X| [[ \J\t\$7# & '\\\ ],]% -S & #+'O# !(!Pb1 eY = !I"E7P]$7# ']]]$7 \%&"!(!Pb1 eY =  !I" +'&\ &P]J\ '^-^Y^^^8e77"877-$7^_^___0`__}``aIaaaVbbS^-bcMccb_O# &a`aVbS__dcJ\ &S&QbFdded&:YFe$7 'ue'O #&Q &bhehhe'ffxO \TPObRYX99^988999:^:9O#n#:K?'WWVLf]z%f]$7h-- 'Fiiz%iX99^988999:^:9O#n#:K?O'WWV#-hV&G. 'jijjj/G.q.&.+'#hDkz%k}lll-qmmkll;#n#}lOnh= '#mDrr;#B?-C:;rh=-5s3A>99^988999:^:9O#n#:h=$#OnA#-Firm0t$#B99^988999:^:9O#n#:h=;5s<#;AB?C3A>OnmFi-rsYB|G;s;s##sttu@uuvuEvv#$#h=z%ij$ph$ij.G.hsDk/jq.t-8+':&e77"877#s;B?C<;0tB99^988999:^:9O#n#:DrOn3A>hijoDq !(!Pb1 eY = !I"5sDn#$o 'vwEwwwxxx yBxKyyy4%h=z%ij$ph$ij.G.hDkoDq/jq.#3A>99^988999:^:9O#n#:A?Dr:Ft+'ijo&hB?C !(!Pb1 eY = !I" &D%t-S$7 'BOnr'BYB3B#| .:Y}-;/usr/local/go/src/internal/cpu/cpu.go/usr/local/go/src/internal/cpu/cpu_arm64.go/usr/local/go/src/internal/cpu/cpu_arm64_darwin.go/usr/local/go/src/runtime/internal/atomic/atomic_arm64.s/usr/local/go/src/internal/bytealg/bytealg.go/usr/local/go/src/internal/bytealg/equal_generic.go/usr/local/go/src/internal/bytealg/index_arm64.go/usr/local/go/src/internal/bytealg/compare_arm64.s/usr/local/go/src/internal/bytealg/count_arm64.s/usr/local/go/src/internal/bytealg/equal_arm64.s/usr/local/go/src/internal/bytealg/index_arm64.s/usr/local/go/src/internal/bytealg/indexbyte_arm64.s/usr/local/go/src/internal/abi/abi.go/usr/local/go/src/runtime/alg.go/usr/local/go/src/runtime/stubs.go/usr/local/go/src/runtime/typekind.go/usr/local/go/src/runtime/type.go/usr/local/go/src/runtime/atomic_pointer.go/usr/local/go/src/runtime/mwbbuf.go/usr/local/go/src/runtime/cgo.go/usr/local/go/src/runtime/cgocall.go/usr/local/go/src/runtime/proc.go/usr/local/go/src/runtime/runtime2.go/usr/local/go/src/runtime/runtime1.go/usr/local/go/src/runtime/mheap.go/usr/local/go/src/runtime/mbitmap.go/usr/local/go/src/runtime/symtab.go/usr/local/go/src/runtime/cgocallback.go/usr/local/go/src/runtime/string.go/usr/local/go/src/runtime/cgocheck.go/usr/local/go/src/runtime/malloc.go/usr/local/go/src/runtime/chan.go/usr/local/go/src/runtime/internal/math/math.go/usr/local/go/src/runtime/lock_sema.go/usr/local/go/src/runtime/lockrank_off.go/usr/local/go/src/runtime/os_darwin_arm64.go/usr/local/go/src/runtime/time_nofake.go/usr/local/go/src/runtime/cpuflags_arm64.go/usr/local/go/src/runtime/cpuprof.go/usr/local/go/src/runtime/os_darwin.go/usr/local/go/src/runtime/debug.go/usr/local/go/src/runtime/env_posix.go/usr/local/go/src/runtime/error.go/usr/local/go/src/runtime/extern.go/usr/local/go/src/runtime/hash64.go/usr/local/go/src/runtime/iface.go/usr/local/go/src/runtime/lfstack.go/usr/local/go/src/runtime/lfstack_64bit.go/usr/local/go/src/runtime/lockrank.go/usr/local/go/src/runtime/mem_darwin.go/usr/local/go/src/runtime/mfixalloc.go/usr/local/go/src/runtime/mcache.go/usr/local/go/src/runtime/mgc.go/usr/local/go/src/runtime/fastlog2.go/usr/local/go/src/runtime/float.go/usr/local/go/src/runtime/map.go/usr/local/go/src/runtime/msize.go/usr/local/go/src/runtime/map_fast32.go/usr/local/go/src/runtime/map_fast64.go/usr/local/go/src/runtime/map_faststr.go/usr/local/go/src/runtime/mbarrier.go/usr/local/go/src/runtime/trace.go/usr/local/go/src/runtime/mcentral.go/usr/local/go/src/runtime/mgcsweep.go/usr/local/go/src/runtime/mcheckmark.go/usr/local/go/src/runtime/mfinal.go/usr/local/go/src/runtime/sema.go/usr/local/go/src/runtime/histogram.go/usr/local/go/src/runtime/mgcwork.go/usr/local/go/src/runtime/print.go/usr/local/go/src/runtime/mgcmark.go/usr/local/go/src/runtime/mgcstack.go/usr/local/go/src/runtime/stack.go/usr/local/go/src/runtime/mgcpacer.go/usr/local/go/src/runtime/mgcscavenge.go/usr/local/go/src/runtime/mstats.go/usr/local/go/src/runtime/time.go/usr/local/go/src/runtime/mranges.go/usr/local/go/src/runtime/mpagealloc.go/usr/local/go/src/runtime/internal/sys/intrinsics_common.go/usr/local/go/src/runtime/mpagecache.go/usr/local/go/src/runtime/mpallocbits.go/usr/local/go/src/runtime/mpagealloc_64bit.go/usr/local/go/src/runtime/mprof.go/usr/local/go/src/runtime/traceback.go/usr/local/go/src/runtime/mspanset.go/usr/local/go/src/runtime/nbpipe_pipe.go/usr/local/go/src/runtime/sys_darwin.go/usr/local/go/src/runtime/netpoll.go/usr/local/go/src/runtime/netpoll_kqueue.go/usr/local/go/src/runtime/defs_darwin_arm64.go/usr/local/go/src/runtime/panic.go/usr/local/go/src/runtime/signal_unix.go/usr/local/go/src/runtime/preempt.go/usr/local/go/src/runtime/write_err.go/usr/local/go/src/runtime/profbuf.go/usr/local/go/src/runtime/rwmutex.go/usr/local/go/src/runtime/select.go/usr/local/go/src/runtime/signal_arm64.go/usr/local/go/src/runtime/signal_darwin_arm64.go/usr/local/go/src/runtime/sigqueue.go/usr/local/go/src/runtime/slice.go/usr/local/go/src/runtime/sys_arm64.go/usr/local/go/src/runtime/sys_darwin_arm64.go/usr/local/go/src/runtime/sys_libc.go/usr/local/go/src/runtime/utf8.go/usr/local/go/src/runtime/runtime.go/usr/local/go/src/runtime/timestub.go/usr/local/go/src/runtime/asm_arm64.s/usr/local/go/src/runtime/atomic_arm64.s/usr/local/go/src/runtime/memclr_arm64.s/usr/local/go/src/runtime/memmove_arm64.s/usr/local/go/src/runtime/preempt_arm64.s/usr/local/go/src/runtime/rt0_darwin_arm64.s/usr/local/go/src/runtime/sys_darwin_arm64.s/usr/local/go/src/runtime/tls_arm64.s/usr/local/go/src/sync/atomic/value.go/usr/local/go/src/sync/atomic/asm.s/usr/local/go/src/internal/reflectlite/swapper.go/usr/local/go/src/internal/reflectlite/type.go/usr/local/go/src/internal/reflectlite/value.go/usr/local/go/src/errors/errors.go/usr/local/go/src/errors/wrap.go/usr/local/go/src/math/bits/bits.go/usr/local/go/src/math/bits.go/usr/local/go/src/math/frexp.go/usr/local/go/src/math/unsafe.go/usr/local/go/src/math/copysign.go/usr/local/go/src/math/ldexp.go/usr/local/go/src/math/log.go/usr/local/go/src/math/log10.go/usr/local/go/src/math/exp_arm64.s/usr/local/go/src/unicode/utf8/utf8.go/usr/local/go/src/strconv/atof.go/usr/local/go/src/strconv/atoi.go/usr/local/go/src/strconv/quote.go/usr/local/go/src/strconv/itoa.go/usr/local/go/src/strconv/decimal.go/usr/local/go/src/strconv/eisel_lemire.go/usr/local/go/src/strconv/ftoa.go/usr/local/go/src/strconv/ftoaryu.go/usr/local/go/src/strconv/bytealg.go/usr/local/go/src/sync/cond.go/usr/local/go/src/sync/map.go/usr/local/go/src/sync/mutex.go/usr/local/go/src/sync/once.go/usr/local/go/src/sync/pool.go/usr/local/go/src/sync/poolqueue.go/usr/local/go/src/sync/runtime.go/usr/local/go/src/sync/rwmutex.go/usr/local/go/src/sync/waitgroup.go/usr/local/go/src/unicode/graphic.go/usr/local/go/src/unicode/letter.go/usr/local/go/src/unicode/tables.go/usr/local/go/src/internal/itoa/itoa.go/usr/local/go/src/reflect/abi.go/usr/local/go/src/reflect/value.go/usr/local/go/src/reflect/type.go/usr/local/go/src/reflect/deepequal.go/usr/local/go/src/reflect/makefunc.go/usr/local/go/src/reflect/asm_arm64.s/usr/local/go/src/sort/search.go/usr/local/go/src/sort/slice.go/usr/local/go/src/sort/sort.go/usr/local/go/src/sort/zfuncversion.go/usr/local/go/src/internal/fmtsort/sort.go/usr/local/go/src/io/io.go/usr/local/go/src/io/multi.go/usr/local/go/src/io/pipe.go/usr/local/go/src/internal/oserror/errors.go/usr/local/go/src/syscall/env_unix.go/usr/local/go/src/syscall/exec_unix.go/usr/local/go/src/syscall/sockcmsg_unix.go/usr/local/go/src/syscall/sockcmsg_unix_other.go/usr/local/go/src/syscall/syscall.go/usr/local/go/src/syscall/syscall_bsd.go/usr/local/go/src/syscall/syscall_unix.go/usr/local/go/src/syscall/syscall_darwin_arm64.go/usr/local/go/src/syscall/syscall_darwin.go/usr/local/go/src/syscall/zsyscall_darwin_arm64.go/usr/local/go/src/syscall/route_bsd.go/usr/local/go/src/syscall/zsyscall_darwin_arm64.s/usr/local/go/src/time/format.go/usr/local/go/src/time/time.go/usr/local/go/src/time/zoneinfo.go/usr/local/go/src/time/sleep.go/usr/local/go/src/time/sys_unix.go/usr/local/go/src/time/zoneinfo_read.go/usr/local/go/src/time/zoneinfo_unix.go/usr/local/go/src/path/match.go/usr/local/go/src/io/fs/fs.go/usr/local/go/src/io/fs/walk.go/usr/local/go/src/internal/testlog/exit.go/usr/local/go/src/internal/testlog/log.go/usr/local/go/src/internal/poll/fd.go/usr/local/go/src/internal/poll/fd_fsync_darwin.go/usr/local/go/src/internal/poll/fd_mutex.go/usr/local/go/src/internal/poll/fd_posix.go/usr/local/go/src/internal/poll/fd_opendir_darwin.go/usr/local/go/src/internal/poll/errno_unix.go/usr/local/go/src/internal/poll/fd_poll_runtime.go/usr/local/go/src/internal/poll/fd_unix.go/usr/local/go/src/internal/poll/sockopt.go/usr/local/go/src/internal/poll/sockopt_unix.go/usr/local/go/src/internal/poll/sockoptip.go/usr/local/go/src/internal/poll/sys_cloexec.go/usr/local/go/src/internal/poll/writev.go/usr/local/go/src/internal/syscall/unix/getentropy_darwin.go/usr/local/go/src/internal/syscall/unix/nonblocking_libc.go/usr/local/go/src/internal/syscall/unix/asm_darwin.s/usr/local/go/src/os/dir.go/usr/local/go/src/os/dir_darwin.go/usr/local/go/src/os/error.go/usr/local/go/src/os/env.go/usr/local/go/src/syscall/zerrors_darwin_arm64.go/usr/local/go/src/os/file.go/usr/local/go/src/os/file_posix.go/usr/local/go/src/os/file_unix.go/usr/local/go/src/os/rawconn.go/usr/local/go/src/os/getwd.go/usr/local/go/src/os/types.go/usr/local/go/src/os/types_unix.go/usr/local/go/src/os/proc.go/usr/local/go/src/os/stat.go/usr/local/go/src/os/path_unix.go/usr/local/go/src/os/stat_darwin.go/usr/local/go/src/os/stat_unix.go/usr/local/go/src/os/sys.go/usr/local/go/src/os/sys_bsd.go/usr/local/go/src/os/tempfile.go/usr/local/go/src/os/exec.go/usr/local/go/src/os/executable_darwin.go/usr/local/go/src/fmt/errors.go/usr/local/go/src/fmt/format.go/usr/local/go/src/fmt/print.go/usr/local/go/src/fmt/scan.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/compression_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/content_encryption_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/elliptic_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/jwa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/key_encryption_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/key_type_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwa/signature_gen.go/usr/local/go/src/context/context.go/usr/local/go/src/strings/builder.go/usr/local/go/src/strings/reader.go/usr/local/go/src/strings/replace.go/usr/local/go/src/strings/strings.go/usr/local/go/src/strings/search.go/usr/local/go/src/flag/flag.go/usr/local/go/src/strconv/atob.go/usr/local/go/src/path/filepath/path.go/usr/local/go/src/path/filepath/match.go/usr/local/go/src/bytes/buffer.go/usr/local/go/src/bytes/bytes.go/usr/local/go/src/bytes/reader.go/usr/local/go/src/text/template/parse/lex.go/usr/local/go/src/unicode/digit.go/usr/local/go/src/text/template/parse/node.go/usr/local/go/src/text/template/parse/parse.go/usr/local/go/src/net/url/url.go/usr/local/go/src/text/template/exec.go/usr/local/go/src/text/template/template.go/usr/local/go/src/text/template/funcs.go/usr/local/go/src/html/entity.go/usr/local/go/src/html/escape.go/usr/local/go/src/regexp/syntax/compile.go/usr/local/go/src/regexp/syntax/parse.go/usr/local/go/src/regexp/syntax/prog.go/usr/local/go/src/regexp/syntax/regexp.go/usr/local/go/src/regexp/syntax/simplify.go/usr/local/go/src/regexp/syntax/perl_groups.go/usr/local/go/src/regexp/backtrack.go/usr/local/go/src/regexp/exec.go/usr/local/go/src/regexp/onepass.go/usr/local/go/src/regexp/regexp.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/block.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/markdown.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/node.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/inline.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/esc.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/html.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/smartypants.go/Users/d-maki/go/pkg/mod/github.com/russross/blackfriday/v2@v2.1.0/entities.go/Users/d-maki/go/pkg/mod/github.com/cpuguy83/go-md2man/v2@v2.0.1/md2man/md2man.go/Users/d-maki/go/pkg/mod/github.com/cpuguy83/go-md2man/v2@v2.0.1/md2man/roff.go/usr/local/go/src/io/ioutil/ioutil.go/usr/local/go/src/encoding/binary/binary.go/usr/local/go/src/encoding/binary/varint.go/usr/local/go/src/encoding/base64/base64.go/usr/local/go/src/unicode/utf16/utf16.go/usr/local/go/src/encoding/json/decode.go/usr/local/go/src/encoding/json/scanner.go/usr/local/go/src/encoding/json/encode.go/usr/local/go/src/encoding/json/fold.go/usr/local/go/src/encoding/json/indent.go/usr/local/go/src/encoding/json/stream.go/usr/local/go/src/encoding/json/tags.go/usr/local/go/src/text/tabwriter/tabwriter.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/app.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/category.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/context.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/help.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/errors.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/args.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/command.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/docs.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/fish.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_int_slice.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_int64_slice.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_float64_slice.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_string_slice.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_bool.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_duration.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_float64.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_generic.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_int.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_int64.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_path.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_string.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_timestamp.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_uint.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/flag_uint64.go/usr/local/go/src/text/template/helper.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/parse.go/Users/d-maki/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/sort.go/usr/local/go/src/bufio/bufio.go/usr/local/go/src/bufio/scan.go/usr/local/go/src/compress/flate/deflate.go/usr/local/go/src/compress/flate/deflatefast.go/usr/local/go/src/compress/flate/token.go/usr/local/go/src/compress/flate/huffman_bit_writer.go/usr/local/go/src/compress/flate/huffman_code.go/usr/local/go/src/compress/flate/dict_decoder.go/usr/local/go/src/compress/flate/inflate.go/usr/local/go/src/math/rand/exp.go/usr/local/go/src/math/rand/rand.go/usr/local/go/src/math/exp.go/usr/local/go/src/math/rand/normal.go/usr/local/go/src/math/rand/rng.go/usr/local/go/src/math/big/arith.go/usr/local/go/src/math/big/int.go/usr/local/go/src/math/big/nat.go/usr/local/go/src/math/big/intconv.go/usr/local/go/src/math/big/natconv.go/usr/local/go/src/math/big/intmarsh.go/usr/local/go/src/math/big/natdiv.go/usr/local/go/src/math/big/prime.go/usr/local/go/src/math/big/arith_arm64.s/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/pool/pool.go/usr/local/go/src/crypto/cipher/cbc.go/usr/local/go/src/crypto/cipher/cipher.go/usr/local/go/src/crypto/internal/subtle/aliasing.go/usr/local/go/src/crypto/cipher/ctr.go/usr/local/go/src/crypto/cipher/gcm.go/usr/local/go/src/crypto/subtle/constant_time.go/usr/local/go/src/crypto/cipher/xor_arm64.go/usr/local/go/src/crypto/cipher/io.go/usr/local/go/src/crypto/cipher/xor_arm64.s/usr/local/go/src/crypto/aes/aes_gcm.go/usr/local/go/src/crypto/aes/block.go/usr/local/go/src/crypto/aes/cipher.go/usr/local/go/src/crypto/aes/cipher_asm.go/usr/local/go/src/crypto/aes/asm_arm64.s/usr/local/go/src/crypto/aes/gcm_arm64.s/usr/local/go/src/crypto/crypto.go/usr/local/go/src/crypto/elliptic/internal/fiat/p521.go/usr/local/go/src/crypto/elliptic/internal/fiat/p521_fiat64.go/usr/local/go/src/crypto/elliptic/elliptic.go/usr/local/go/src/crypto/elliptic/p224.go/usr/local/go/src/crypto/elliptic/p256_asm.go/usr/local/go/src/crypto/elliptic/p521.go/usr/local/go/src/crypto/elliptic/p256_asm_arm64.s/usr/local/go/src/crypto/internal/randutil/randutil.go/usr/local/go/src/crypto/sha512/sha512.go/usr/local/go/src/crypto/sha512/sha512block_generic.go/usr/local/go/src/crypto/sha512/sha512block.go/usr/local/go/src/encoding/asn1/asn1.go/usr/local/go/src/encoding/asn1/common.go/usr/local/go/src/encoding/asn1/marshal.go/usr/local/go/src/vendor/golang.org/x/crypto/cryptobyte/asn1/asn1.go/usr/local/go/src/vendor/golang.org/x/crypto/cryptobyte/asn1.go/usr/local/go/src/vendor/golang.org/x/crypto/cryptobyte/builder.go/usr/local/go/src/vendor/golang.org/x/crypto/cryptobyte/string.go/usr/local/go/src/crypto/ecdsa/ecdsa.go/usr/local/go/src/crypto/ecdsa/ecdsa_noasm.go/usr/local/go/src/crypto/rand/eagain.go/usr/local/go/src/crypto/rand/rand.go/usr/local/go/src/crypto/rand/rand_getentropy.go/usr/local/go/src/crypto/rand/rand_unix.go/usr/local/go/src/crypto/rand/util.go/usr/local/go/src/crypto/rsa/pkcs1v15.go/usr/local/go/src/crypto/rsa/rsa.go/usr/local/go/src/crypto/rsa/pss.go/usr/local/go/src/crypto/sha256/sha256.go/usr/local/go/src/crypto/sha256/sha256block.go/usr/local/go/src/crypto/sha256/sha256block_arm64.go/usr/local/go/src/crypto/sha256/sha256block_arm64.s/usr/local/go/src/crypto/hmac/hmac.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/pbkdf2/pbkdf2.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/blackmagic@v1.0.1/blackmagic.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/field/fe.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/field/fe_arm64.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/field/fe_amd64_noasm.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/field/fe_generic.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/field/fe_arm64.s/usr/local/go/src/crypto/ed25519/internal/edwards25519/edwards25519.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/scalar.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/scalarmult.go/usr/local/go/src/crypto/ed25519/internal/edwards25519/tables.go/usr/local/go/src/crypto/ed25519/ed25519.go/usr/local/go/src/crypto/des/block.go/usr/local/go/src/crypto/des/cipher.go/usr/local/go/src/crypto/rc4/rc4.go/usr/local/go/src/crypto/sha1/sha1.go/usr/local/go/src/crypto/sha1/sha1block.go/usr/local/go/src/crypto/sha1/sha1block_arm64.go/usr/local/go/src/crypto/sha1/sha1block_arm64.s/usr/local/go/src/vendor/golang.org/x/crypto/chacha20/chacha_generic.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20/chacha_arm64.go/usr/local/go/src/vendor/golang.org/x/crypto/internal/subtle/aliasing.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20/xor.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20/chacha_arm64.s/usr/local/go/src/vendor/golang.org/x/crypto/poly1305/poly1305.go/usr/local/go/src/vendor/golang.org/x/crypto/poly1305/sum_generic.go/usr/local/go/src/vendor/golang.org/x/crypto/poly1305/bits_go1.13.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_noasm.go/usr/local/go/src/vendor/golang.org/x/crypto/chacha20poly1305/chacha20poly1305_generic.go/usr/local/go/src/container/list/list.go/usr/local/go/src/encoding/pem/pem.go/usr/local/go/src/crypto/dsa/dsa.go/usr/local/go/src/encoding/hex/hex.go/usr/local/go/src/crypto/x509/pkix/pkix.go/usr/local/go/src/vendor/golang.org/x/net/dns/dnsmessage/message.go/usr/local/go/src/vendor/golang.org/x/net/route/address.go/usr/local/go/src/vendor/golang.org/x/net/route/sys.go/usr/local/go/src/vendor/golang.org/x/net/route/binary.go/usr/local/go/src/vendor/golang.org/x/net/route/interface.go/usr/local/go/src/vendor/golang.org/x/net/route/interface_classic.go/usr/local/go/src/vendor/golang.org/x/net/route/interface_multicast.go/usr/local/go/src/vendor/golang.org/x/net/route/message.go/usr/local/go/src/vendor/golang.org/x/net/route/sys_darwin.go/usr/local/go/src/vendor/golang.org/x/net/route/route.go/usr/local/go/src/vendor/golang.org/x/net/route/route_classic.go/usr/local/go/src/internal/singleflight/singleflight.go/usr/local/go/src/runtime/cgo/callbacks.go/usr/local/go/src/runtime/cgo/asm_arm64.s/usr/local/go/src/net/addrselect.go/usr/local/go/src/net/net.go/usr/local/go/src/net/ip.go/usr/local/go/src/net/conf.go/usr/local/go/src/net/lookup.go/usr/local/go/src/net/parse.go/usr/local/go/src/net/dnsclient_unix.go/usr/local/go/src/net/dial.go/usr/local/go/src/net/iprawsock.go/usr/local/go/src/net/tcpsock.go/usr/local/go/src/net/udpsock.go/usr/local/go/src/net/unixsock.go/usr/local/go/src/net/dnsclient.go/usr/local/go/src/net/dnsconfig_unix.go/usr/local/go/src/net/ipsock.go/usr/local/go/src/net/fd_posix.go/usr/local/go/src/net/error_posix.go/usr/local/go/src/net/fd_unix.go/usr/local/go/src/net/hosts.go/usr/local/go/src/net/interface.go/usr/local/go/src/net/interface_bsd.go/usr/local/go/src/net/interface_darwin.go/usr/local/go/src/net/rawconn.go/usr/local/go/src/net/iprawsock_posix.go/usr/local/go/src/net/ipsock_posix.go/usr/local/go/src/net/lookup_unix.go/usr/local/go/src/net/error_unix.go/usr/local/go/src/net/nss.go/usr/local/go/src/net/port.go/usr/local/go/src/net/port_unix.go/usr/local/go/src/net/sock_bsd.go/usr/local/go/src/net/sock_posix.go/usr/local/go/src/net/sockopt_bsd.go/usr/local/go/src/net/sockopt_posix.go/usr/local/go/src/net/sys_cloexec.go/usr/local/go/src/net/tcpsock_posix.go/usr/local/go/src/net/tcpsockopt_darwin.go/usr/local/go/src/net/tcpsockopt_posix.go/usr/local/go/src/net/udpsock_posix.go/usr/local/go/src/net/unixsock_posix.go/usr/local/go/src/net/unixsock_readmsg_cloexec.go_cgo_gotypes.go/usr/local/go/src/net/cgo_unix.go/usr/local/go/src/net/hook.go/usr/local/go/src/net/hook_unix.go/usr/local/go/src/crypto/md5/md5.go/usr/local/go/src/crypto/md5/md5block_arm64.s/usr/local/go/src/crypto/x509/internal/macos/corefoundation.go/usr/local/go/src/crypto/x509/internal/macos/security.go/usr/local/go/src/crypto/x509/internal/macos/corefoundation.s/usr/local/go/src/crypto/x509/internal/macos/security.s/usr/local/go/src/crypto/x509/cert_pool.go/usr/local/go/src/crypto/x509/parser.go/usr/local/go/src/crypto/x509/pkcs1.go/usr/local/go/src/crypto/x509/pkcs8.go/usr/local/go/src/crypto/x509/root.go/usr/local/go/src/crypto/x509/root_darwin.go/usr/local/go/src/crypto/x509/sec1.go/usr/local/go/src/crypto/x509/verify.go/usr/local/go/src/crypto/x509/x509.go/usr/local/go/src/crypto/x509/pem_decrypt.go/usr/local/go/src/vendor/golang.org/x/crypto/curve25519/curve25519.go/usr/local/go/src/vendor/golang.org/x/crypto/curve25519/curve25519_noasm.go/usr/local/go/src/vendor/golang.org/x/crypto/curve25519/curve25519_generic.go/usr/local/go/src/vendor/golang.org/x/crypto/hkdf/hkdf.go/usr/local/go/src/crypto/tls/alert.go/usr/local/go/src/crypto/tls/auth.go/usr/local/go/src/crypto/tls/cipher_suites.go/usr/local/go/src/crypto/tls/common.go/usr/local/go/src/crypto/tls/common_string.go/usr/local/go/src/crypto/tls/conn.go/usr/local/go/src/crypto/tls/handshake_client.go/usr/local/go/src/crypto/tls/prf.go/usr/local/go/src/crypto/tls/handshake_messages.go/usr/local/go/src/crypto/tls/handshake_client_tls13.go/usr/local/go/src/crypto/tls/handshake_server.go/usr/local/go/src/crypto/tls/key_agreement.go/usr/local/go/src/crypto/tls/key_schedule.go/usr/local/go/src/crypto/tls/tls.go/usr/local/go/src/log/log.go/usr/local/go/src/net/http/internal/ascii/print.go/usr/local/go/src/net/textproto/header.go/usr/local/go/src/net/textproto/reader.go/usr/local/go/src/net/textproto/textproto.go/usr/local/go/src/mime/encodedword.go/usr/local/go/src/mime/grammar.go/usr/local/go/src/mime/mediatype.go/usr/local/go/src/mime/type.go/usr/local/go/src/mime/type_unix.go/usr/local/go/src/mime/quotedprintable/reader.go/usr/local/go/src/mime/multipart/formdata.go/usr/local/go/src/mime/multipart/multipart.go/usr/local/go/src/mime/multipart/writer.go/usr/local/go/src/hash/crc32/crc32.go/usr/local/go/src/hash/crc32/crc32_arm64.go/usr/local/go/src/hash/crc32/crc32_generic.go/usr/local/go/src/hash/crc32/crc32_arm64.s/usr/local/go/src/compress/gzip/gunzip.go/usr/local/go/src/vendor/golang.org/x/text/transform/transform.go/usr/local/go/src/vendor/golang.org/x/text/unicode/bidi/prop.go/usr/local/go/src/vendor/golang.org/x/text/unicode/bidi/tables13.0.0.go/usr/local/go/src/vendor/golang.org/x/text/unicode/bidi/trieval.go/usr/local/go/src/vendor/golang.org/x/text/secure/bidirule/bidirule.go/usr/local/go/src/vendor/golang.org/x/text/secure/bidirule/bidirule10.0.0.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/composition.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/forminfo.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/input.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/iter.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/normalize.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/tables13.0.0.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/trie.go/usr/local/go/src/vendor/golang.org/x/text/unicode/norm/transform.go/usr/local/go/src/vendor/golang.org/x/net/idna/idna10.0.0.go/usr/local/go/src/vendor/golang.org/x/net/idna/trieval.go/usr/local/go/src/vendor/golang.org/x/net/idna/punycode.go/usr/local/go/src/vendor/golang.org/x/net/idna/tables13.0.0.go/usr/local/go/src/vendor/golang.org/x/net/idna/trie.go/usr/local/go/src/vendor/golang.org/x/net/http/httpguts/httplex.go/usr/local/go/src/vendor/golang.org/x/net/http/httpguts/guts.go/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/encode.go/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/hpack.go/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/tables.go/usr/local/go/src/vendor/golang.org/x/net/http2/hpack/huffman.go/usr/local/go/src/net/http/internal/chunked.go/usr/local/go/src/vendor/golang.org/x/net/http/httpproxy/proxy.go/usr/local/go/src/net/http/client.go/usr/local/go/src/net/http/response.go/usr/local/go/src/net/http/clone.go/usr/local/go/src/net/http/header.go/usr/local/go/src/net/http/request.go/usr/local/go/src/net/http/server.go/usr/local/go/src/net/http/cookie.go/usr/local/go/src/net/http/h2_bundle.go/usr/local/go/src/net/http/httptrace/trace.go/usr/local/go/src/net/http/status.go/usr/local/go/src/net/http/http.go/usr/local/go/src/net/http/transfer.go/usr/local/go/src/net/http/roundtrip.go/usr/local/go/src/net/http/socks_bundle.go/usr/local/go/src/net/http/transport.go/usr/local/go/src/net/http/fs.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/option@v1.0.0/option.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/httprc@v1.0.1/fetcher.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/httprc@v1.0.1/options_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/base64/base64.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/ecutil/ecutil.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/iter@v1.0.2/mapiter/mapiter.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cert/chain.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/iter/mapiter.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/json/json.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/json/registry.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/json/stdlib.go/Users/d-maki/go/pkg/mod/github.com/lestrrat-go/iter@v1.0.2/arrayiter/arrayiter.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/internal/field/fe.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/internal/field/fe_arm64.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/internal/field/fe_amd64_noasm.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/internal/field/fe_generic.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/internal/field/fe_arm64.s/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/curve25519/curve25519.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/x25519/x25519.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/ecdsa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/ecdsa_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/fetch.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/io.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/jwk.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/okp_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/rsa_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/symmetric_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/set.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/key_ops.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/okp.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/options_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/rsa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/symmetric.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwk/usage.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/internal/keyconv/keyconv.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/aescbc/aescbc.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/concatkdf/concatkdf.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/keygen/keygen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/cipher/cipher.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/content_crypt/content_crypt.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/internal/keyenc/keyenc.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/compress.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/decrypt.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/headers.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/headers_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/jwe.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/message.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/key_provider.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/options.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jwe/options_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/ecdsa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/eddsa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/headers.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/headers_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/hmac.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/jws.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/options_gen.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/key_provider.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/message.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/options.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/rsa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/signer.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/jws/verifier.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cmd/jwx/jwa.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cmd/jwx/jwe.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cmd/jwx/jwx.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cmd/jwx/jwk.go/Users/d-maki/go/pkg/mod/golang.org/x/crypto@v0.0.0-20220214200702-86341886e292/ed25519/ed25519.go/Users/d-maki/dev/src/github.com/lestrrat-go/jwx/cmd/jwx/jws.go/usr/local/go/src/strings/compare.go@ ?   v *14#D "!    ,C IL%& )*ORYZ  f      .. .~`j_tk fEP "#*) !(' F3   `_((  `_`_$$  P G9 9&|     <%  !E3           ;?  NPF$,<"Lb 0F<J   @'?0J( @?x @    ` _.  6 > `_H  `_j `$_` _`_  /~t  ?/  /\ m `_  NyR> N OQ> O      7"%         !   T    C     `_     8  9$ 8  7   :$ 7`_`_<#3"  %@?~}~} , @?@  @ ?\  ' 8 , 5 P >DDDKNCBB    Y%  > AR  Q+ #        AR   $  5  l    8SJMa/     dct),    )(I H  '9> w #     M     1         0   * t),  76%  dc F EFEFEFEFEFE*VU)   S d      PONMNM 5 %          @?@?@?@? - 93        65 654    =& `"_,l " `_` _`_`_(  %  )  1 ) " :6  `_` _`_BAB ABA BABABABRI        J             1  BxBA"q     &  "'()J' TK 3 n!       A   C)J'p`*  '.=D   A  ,!.1   g##~N.1j.1.1/.1 @urklMNM     " `  2  % =>CDKL !}[$ L<G %  /       #  " / M/  .1   `;_3~N" 9< 3    .1 %~NZ ~NL.1.1\^.;<AB  [^ gh  [[[[{  XK              #    7 "#` _ ` _.( @~N.1.1s.1 .1QPKLexst $cdc "v     34?@j- L ; G #    #" ?           g [9~N         O\     9@?.1    !      O po+ 7P  +`Q_`poQ UQC!$ 3!<,C!$`_`_ $# #"* #, &/&T  *%I) %)(:,(>    " $          + ^(((  $ )&%$3"%$!7&% !    &%$   &%$  /  3 . 5     (:;"#>  ? ./67B C 23*+ F G&'  LKLQ"G(HG #&36?FC@ S      (      ;7W*2    ` !&22-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.:  5:5NC<\b170%7%=+"L*+:ZY:86;FJ       !&%*),+$-09>=BADGLKNQVUXW<Y .   V^8  ( 74D  +J J^!  *^)_*     (  7 48@ 811 2   # N   1 8 &#   xa 8E, .12Abc`S85 74 3LM('    + . !   E     ,'8    6   `#_8,!#  `)_84") "8   `_8$ `_ `_  8(   ` _  !  ` _` _`_ ` _` _`_ + `_`_`_   ` _`_   `_`_`_ 8$1: 34&; (9' V-   3` _`_:|  @?>J 0.+>XNM9R    /2)#!' 'X9@?> `F_`_>X   +;  @?@?>0  & 3 >d   !Y   76>+2_ +6  & e)6  +2_>$   >(  @?@?@?@?@0  '*B.@`I_`_D  "J25    % ?1 D *) *) 7*)*)Q T _   0-      y    9:#   9:BEX! :-  =@!  $S<       7   Q9D )       87E6 )@BD7*)T  -.   ^7T,u%DYfefe fe  f e *)+ *ZY)!*)E*)ef e4:      4    <      f'JU/Z     4' c/Yg' cSUV   ' cz$21)/I   TS    434-  "    (y,$_"E*S  #Y      *  De 4"!:DXW  !   D `"_` _`_D '  7" '` _`_D !<3  @A?@?@?D  8/  #L D$ D L/FDfefee"fefe/fe    >#1 (  %  "  /  5D   (   F     F dMV[^      78}mn!mn mFErqt1:20        !    F     mF  D             ?n#   7q F8JI 7I 7878J%8 7     '  9|O         > -F        5 ('b fC!      ?/F        ~(' C! !   2 0F     (' Gq;   F&"     de    X  35  RE #;  7T$i  $    HP             !  $#&% (),+,+.-.-0/0/21214343?F+               Z [\   $    /      {!% E          "!`_`_Fc  1    %%&          O .u )   *_F!,DK0     U>U      27     k|4    v_  $ 8>#_F AD    l2D #_P&% $2 #_r#$#$ lz  #CD2 KL   op ' 0*   " "!/&#"! ('('"!+*)0F P  O    2%& '(-0  5$C / F,'(  7$   >F    E B$Vin  VklY    :    &  0 c?  0   o?  0   y? 1IA@  *1        "# &'*),+.-0/214321434321&%6587.-21&% 21.-:9&#:9.-('&#<;>= 3F" +4`5_`_`_`_H    ' '6  569:/_9     `6_`_`_`_H  j   knw '  65/c=      H! VW J  O}'B CH?$B/<= ;H            !-yH         !vw$  /    ] E      H         <H     0   $   bm F   &0)  Y  1A>"!7      "# &'*) ,+0.-0/2143,+&%('J~}~ }~}~}J~}~ } ~}~}J~}~}~}~}~}~}!J~}~}~} ~}~}~}! VW#   J           O36'F OB CD 5H?$qwv :N             !-J~}~}~}~} ~}~}~} ~ } ~}      !z{ 8$  /    a E        J         <J ~~}~}~}~}~}~} ~} ~} ~} 0~}~}.~}~}~}~}   $   ny R   0) 3  <0)  e  =A>"!N      "# &'*) ,+0.-0/,+.2143,+&%('7'* )L{{|{|{|{|{|{|{|{ |{ |{|{|{|{|{|{|{ :5z    m9: QZKL  _nqrW )),+,'*7 = #        "!"!$#&% () ,+.-0/21432165658), +L{{|{|{ |{|{|{|{|{ |{ |{ |{|{|{|{|{|{ 5z  ) ('8 "m=>   W '+8 A %        "!"!$#&% () ,+ .-0/2143216565L||{ |{|{-|{|{" fgM D  =BBX          39p5P Q 5R ?+78 &  GL        - "6L||{{|{|{ |{|{|{ | { |{        %rs h3=,$  /    ]% E           L         <L ||{|{|{|{|{|{ |{ |{ |{ 0|{|{$|{|{|{|{   $   Xc >   .)  3  @.)   O  'A>"!D      "# &'*) ,+0.-0/,+$2143,+&%('+N0 -`"_N$ ! 3N@&-`_N`_NPP\ !/ <}P_ &# }Y_5 P 3: -0 )M/ "  @?@?@?@P( #@)?@?@P8 5!P,H @EP   \[~}~})4343 43434343 4343      0 )  i             !   "! "!   )< P\[4343 4343    qE                 SP\[!434343434343      *-*-.2       'XP\[434343a              / ) 8   %a8PX     $B <P  " Jh DF Ef"   _ O# #"   "  v  ?B @?, IpE=oOT `# \       C     -  8 " $#& #$# ('*),+.-0/214365877:9%8P    ~B  ++ P +2/ PD;  P<$1$6*     1 + T6-  $.$ % _M?>D       A "!$# &%(' *) ,+ .- 0/ 21P xw   'R       `_R   cv   R @&?R   )&% " RBQ 2       7 (l BQ 2RZuH        %M VH       R5u& =2P5u`_`_`_RD  K T L. d.dd!U \[\| uqrqt   @_    @/   @    0" B; B 45K  -    EEE  `5_`_THQ=%CT   7  6VTJ   F.  @?@?V &  $  `-_`_`G_`Vp      z9Fp X    @?XV X4|   `u_`%_\ b,g    3 )g) b,@!?\ ]  @"?\, $\@ ?  HE  M h 4=$#$ %=>O  , 9:ab9#` ;#b  _lO#12YZ1#r  571?*, 6     t$*\:  lklk  , 6)a|  6 Q s  #'"'7 6* %"%:     \$   )^\   1@?`   `<_`H  6@?@?`|{|{# $#l` <;<; JIJI JIJ I 6    "=>  m ("     `2_` <K< ;! ! Z^       +)`JIJI J IJ IdRQNRQRQ RQ2|{  GJIJI RQJ I<;RQ2  i  VSRK DghI#h_`   fcb[ T    @ 54       zW       {> @  -            2    " !$#&%2`\_`_`!)>*)*       ` R!> ` RQRQ %&RQ RQ|{ "RQRQ         6     mp            :        "&`     `'|1I|1I<"|{)>*a! !     d RQRQJ I:9:[)*        *D;                 @          $ }''!NK2<Kp <"   > a E"!$ #!&%&) ` `!_`!"  `*LKLIJIJKJIJIJK LK|{|{ |{r%&J ILKl       *             +  + { !# ]*    r   lh`=!<;! "! F]]F /p   =   `U  )    *E 0   [   7Z   .7 0iU) `q_`_`_` !,!  !!!!  ) A:  ,     A` ! !0   *  0@P?@ ?`!!"! 7^   @+?@??@1?@?`%(  7  ('()     2 48',&  b lkfefelkfefeUr    s      Ub< 1!`_`_`6_b:97   'J! %7}Oblklk3:9:9r          5~c-   L4 3rCb :9L        1   Lbfe    &b#$ #Z9JI# :9# a]   9.]]1      ;bR  #  #$      $   ha65& "$    !&3  !g 6R      $ b(12121&:9  &,7    RQ ]  fc  (1&    b   ;bzyzy#12'&  zyzy]     qF?/Z 9#     ]@?b#$Z9#  aX   6 b#$ :I JI# : 9#  W]]]]]  + U       *Jb :9# 12:9:9:I12#  WW    WWWW V]]]]]    av@     bkb :9:9 b aD:9cbabababa ba  :9&:9-      i l     1      n    +. -)             Dc        &-b tb  T {    L!  Ib3        O  2  M   ~)qg R "  j!;   )     #28)  *)GH "Qj  ORMR "-(;6   yXg  tw 3H:,  3O2M`_` _b%      Y   TO e    #<*e, ;T  # ,%Y 8bT(   )&4O8b       #                  62    0 5  >O      "%%  T      #  \b5  >!,CF" [^ ghgRSUd* " 5 b   Y#Kb           $     K            O #  jJ      $ KZb       ,      w      , #"  $ U= @ ,  w@M?@ b            (           P  +b4   dtd d  O< 8d/3434 , /, 8=8/dxwxw      =<y 8  `_`_`_`1_`_`_d&dcd cdc( 7H & (`'_`%_`3_` _`_`_d   )& )*)*#xwxw'HG   8  A    *m        'Ld5! |  " "  ,CZ 2P5! |`_d$  `_` _`_dbaba  * f* . ?dG<f'(#$ ts6E'$,^^aA     7f'(#$vuvsts6 @u  8 2     f'$$65P'$65   &$   t],O"!$P    %f '@ '$vuvuvu'$   !G       Df"&          ) "  \f@434[$   $  R: `A_` f&ba$ 3 B    &$fba    )1 `_` _`_`f%  '! %UUf                  '$'.  %    &.CAB d   }   S? ' !         "!")*'%( 3f       ) %&& >*  )cf     >              kB     >@?@4?@?fd *    #> I_     ` _`_`%_fT    %   %T?+fba-baba> LSPO 2A       #$       y#  .  )-    >`1_` _hD /3 hL )   +B  `@_` _hT   L = ?0hH   1``_`_`_`j#  EAD A D[ `O XY ZWPk>. C            6j 3`q_j+( 2 1+( 2 1+(2121          (j% + e| RC5><  xu@7 J9"NG 2% >   @  +j"!   @  @%: ' 50  E    E Ej   xw    6>1^]   99<+< [MF>=> J[FX ;  6, [IF    ;@CN   "  G/ (JIF-.F F(5/A  -!$T*( &  ' .        "!$#& % *)*) ,+.-$ #60/>&%121$#436587:9 <;<;>=4 ! @?BADCFEB=9j0    (   CDe#0        `_`?_j\           ;T-@?l `9_`_lH  -&:lt (     'i  " `!_` _`_l8 +0 (@H?lT      = > @?@?@?  . @?@?Q>l 12-*-*-*-*12 1  "     l  @?  @%?@?l 12 %  `_`_l, !@?@'?l-.)*-*  R[f    !   `_`_l-.)*-*/,  '5  !   )l4  \ nt     f1  n( X@?Ra (  KL9*   `_`.n -L>                      51/1 -&&         >*n<;<;<;C/,%<;/h;<;< ;  "  (    /,9$( `74C%   n 2d+,/,/,# . /,/,+,    TU N   @        M   B9     4%_T% B   r79:, 2E     #  +n< "n     `_`_n il  @&?@?@n8   -. @)?@"?@nX\a$2/ &%KLLA`_` _`_n>=0      0gn >=/, /,&/,/,/,m   A *  0 bab                              c  7Q";O      "!$#&%+(),+*)z*) .-0-.-.- .-  _n ZYZYZYeZYf   @?GN('   !M` ef `_n n /,/,  n /,/,    On]        (     0  g G7 #]     B<nd #0Z(7#nD J: n <;<; /,/,< ;+/,< ;  orurw*    6        j n <;<; /,Q h_ ^UV )@W ;!L9                n @"?@?n/0+,/,   $)n/, /,       `8_`$_`pl )*/  ] # u p XWXW&  S    ]v"# qr  Q  @        "p p<7  :% R %"i : +T     &        =        eHp      .          #  `_` _`_`_`p'  /"'^p  k V ,    #,xw    6  `E .-  \  F1>  % 2    M  8-kp i SDT ?      H     E"!"!$#&%&%7p        @ ."!    @G:p\  N         &%        Y  .W! 1  . h4p                   fe    7     ! "&%&'*/0/, @>?@?pL ('(#$gC E  HrVo #/* 0/< / #$rNVUVUI 7    S YX+,  %>i l v  i x%0]Hk "%% $ H =  (r(   @ ?@?r VU VUVU  '  `_` _`_t8N % t !x   !I t  in - @ @: @ .-gE     8@t TQ XS%  /0 3a.#    c2    % @&?@ ?@?@?vP>    HI-v p    @*?@ ?@?@?vh   ?#xv * #        F5 >    ?"!x * v@  %%   @v&    @  v    v  @ ?v    "x4@ ?@?x PO @?@?xPOm?xXPO'POG  _\  st'i\'8(<S 6 x@?x9:5696  @?x9:56 96      x<    #  `?_x9:56196  @ 0  Yx96.96    ]G.x `,_x9:5696  ' `-_xP O    / oxlk 96;96     s M ; x9:56Wlk96     ,  -    ? W x lk  Dx9:56696         -6         z B@?@?@?z8x|yzyzuvu }rq 1    ` _` _`_z$nkle  `_z(   @"?@ ?@?@?zDss~#$&-;`_`_` _`_`_zH    $ :z   #,G6 "   % 0 /5 :  ,x H  !Cz        $  '  ,  #`,_`_  /mA>=>A>2HG=>ABHG i Kd}  $ 2     `_`_`L_AHG.  ,2  -2gf     .+HGM   +<"4k> (&        "`!_`_ EF0 `_`_@ KL $`_`_`@   "`0_`_C@.       !.`_`_C@      !@?@?(# @?@?@?0 '  + H34 3 >    @-&@+D?@' %D?@  =D?@ED?BMN "  cH     >  LKLK ,@? IF IFA   @? IFIF    \#;\^^\\^  \   @+?0n   yzsDCDCts h!$  /,%_;;(IU IFIFIF ]T*kzwD ]2    *(      `_`_$ !  IFIF@?        4@HGm4   uhm)8p !' '(RQRQ}-(".""""X""6"e f VU!$  /<     Y/zW  /B' 5 `_`_` (4FPOPOg h'P+B [B  0 '`_   $ ,  %  )  v POPOPO$PO      $@%?0    &$  C 913 D2 1`_` _4 3D    @ ?@?h ( `_         E 46565"1%Q #/@?@ C W4"JI 6I J52 +.'*/&   `1    2  V\  0  $( PC JI 6I J5    M;      ` OT _^ @SPSP         hD @G6565K  "!CD E i$ Kap        _@@4?@?@  !    $  |},c<;<5< ;6;!65v       $0G 3  H4U MN ( a-& <D   E 656565S65:656565 65@656565965 65 65] -  (/  *)  ,+,+0@-=87:90ABAB B S H       T  f   ?> d gbadc            @MHOJQB M               ;J  - R        4       "!"#$"    !*),+.-*        3<   !   65   #$'Q|{ ABHB8#$%     ,Qydc ^MC i+  ?G &!  !       `_   ,P%0      #('    0 `D_`_` _   A *: ('('H  SPSPSh *    "U :#) H     `_`_`_`_<; <;"    -  ` _`_<;    V HFEFE  FEFE PEH  !#+l  P:      E$OB  q,$9K3/8  q,$.-  q,$#+l]   1 I(1 %"  H       P H      %   s  %    @?  . ,%! , 787218 12787 878 7212787 0/0/0/0/0 /-   HKF-                 I# n{(      '!        -7PR      * [X Cd [X$d . 5TA   ! 5 @? !WJC@i2      \$+8  -@? :H   <    `%_0 &  *A= H+ @?   DDDKNCBB   *hoI- U#$    7   `D_@?]Z,    * @? @8?@?   :   ` _   9   YZ]^ @]Z# vy   )!% @  #  Z|   !  -]ZYZ ]^16/0/-('  =>GH  0;0! -    1  @?   e  ]Z> ]Z4   o> >   ]^YZ]Z   $ $ 34+,'(  o  * );       !).4 ;21]? *)*)*)]Z(21) .        $.9    ()`_`_4 <<  #`_`_   y]Z N?@? ]Z             O=        8P     Y pij       %     @$?0  %%$   36    *' %' %H  $     @ ?@?H&9@?@?P?@?e=fef          U9   =   , @#?@? .-   %             +     `_     ` _      ]Zf]Z]^]Z]Z$      q :  f    $p ! ]Z]Z @?FE       -?x       `_`-_`_@= @? `_`_`"_Y^!]Z]Z]Z&]Z]Z .       k;+%= !   &   mZc]Z^]^]Z ]Z  $#  *   y 70     c  ^   @;?@?(]Z ]Z  &(  ^6  ]Z: 4]Z (   K  ! ?.   : 4  ]@?C sa#0`$_`_8   x?+      Wy 2'?+ D)    fa97)  @I?<!  #I%<?]Z  ]Z"""!"%    + 8"A" .`-_`_     #:   A  ]Z]Z# ##"$BS*     @ ?$ @I?]^YZ]Z]^]Z]Z]ZYZ]^ $$$$$#$###$$$$$  $$##   !      `%_`_]Z]Z%%$%$%%%C:   kZ]Z   ]Z ]Z  )%%32M%& ""%&55]$%\""55                `8_`#_` _`K_`_` _`_/ <a& <0]Z]Z0>=]Z> =]Z]Z'5555 "& &'&' &'&')&'C :       0  0 @!?@?@?( *#m>](  $   6 %"   `_` _($$$$ `=_` _&]Z]Z)()') K"&`K_;)     %%%%=#%;/,M7]Z]^YZ`/ <a& < ab]Z]Z ]ZY3@?@? ]Z]^YZ+W ]Zab* && **))**((77!DZ!5 8!&* !+++,*+ +, (f e r,+&VS-*DC-- 44--,,--3337^^7%h4^^40 ,,*,]9++''3 M      6*  &"    +7     J   !Y$#3&%('*),-0/2143%65S:9>=@A.-FE` _`*_`_`_ ).----,, 33 1  =  , +/**- b555r4 5552++#V/,%&% 0 cdSP4 *adST 44  G 5 +45} +(      7    `'_`_`_9]Z]^YZ 0 **, ,,,//..//**=        @1?@?> =0**%%**9   `1_` _`_`_`+_` _ a& <]Zab]Z]Zab]Z ]Z00 *0000/0/0/0001 01[" (               1  !@?@ ?2    XM  ]Z]Z]Z]Z-2//.../U....22']]'12.]/.-...]]]]... 22']]'121"!.-?434a    *            &%(), +236567 6565'R]Z ]Z4]Z]Z]Z/3  //  fc bY,+34 24-B;:-B 329$$&9,+4X$$$ ,]]]]]034 34 %           'R  %   !/02@?]Z:]Z5   55   55$!'(,%$    45 i~9 : ]ZYZ 64666  `__F61 011-:  EAP]Z]ZY7))))2 01166"]]]]]U"56+  + %     7     FEF E 72 2 &&&&      FEF E 7&&&&    9v21 7)))) ,,3 011,  , ,   %  2   . FEF E 8''''443 011    FE 8''  gkl/8 88 4 011;D) O{ g.@?@9|b: & 77}pb<;)*@?]^YZ ]Z;;;;;:;    @K? mZ9]Z<7;   :;  9 ^`<   ]F?< 32</=++  +P> 7&*`_`_  > 99      ?@ ??  @#?@?]^YZ]Z?>>??=?  ]Z& ]Z?  : 011 ?X]]]]]U>? I +!   ('('A3333   B   B(B   ;212 1 21S, +8 &B ;; >>55 333  322B B==    W  %   S 8 &EHGSD 66  )*' ES#S]Z]Z E77^A ]]]]]]]]EEDEIw9    `8_`_`"_ ]Z Y^ E"DE!EEBB!^A     F S]Z]ZF]]]]]]]]FFEF)3  @?HGJID H HHHHI  3  q  9 I >  }  BBCCCC  M  #QnmB:    [KCC  @q?@ ?K    1C 5    ]Z]Z]Z]ZfL   ]]]U  ]]]U HHLLLL  KLKLMN(K .       !f`4_`_ = > ]Z]Z M KK LMKL )     .F E@?]Z]Z$ FEL]Z]Z3N> ?MM LGMN (!   MNlkabNNXkNNNNJJ>>$s   OO  NO"!      KKKK7  98  1 ) &96%   L  >   5-     $   L "!$# &&& "P   2 7PLLLL!E- 76 TPLL )    " T]^YZ ]Z QPPPPOP  5# +E{]Z ]Z=Q  //        &QR5 NN%PQ   (K" #  :( 8   6R DDDDDD  !]^YZ]Z ]Z@?@?@?]Z!]Z]Z]^ ]Z]Z@?@? 2;<; <; <;< ]Z ]Z#SRRRRQR SR"SSSS+,/qSSSS3w79RSSSQQ oQRRSSTTTRR  *JLLLL LLLTT ^QSR F aP4     ! "#&%&% ('*),+, +, +,+ ./2367#Pa]^YZ@]Z%]Z2YZ]^UUUUUtstA UVTUEH VUtVU ' >    2 V  @?@?@?@W !@?]ZWWWWW-7 [ %&   {  z82-`G_`_` _]^YZY^]Z]ZXXXXX]]XWWXWX W    `_`_Y     YTT  *)&Z ]V#(% 4   `<_`_`_]Z']Z [[[MPZ[;:C'  @J?@ ?="\PILSWW7    @Y?@?h\  _$  ] "   YYXX -$  := D]Z]Z] YY).YYYY]]]]\]% [ D    @J?]Z]Z^ZZ(^^]]]^7.     &^ZZ &` _[[]]]]][ ][]]]]`    @Y?@?@?#A_,E[[[\ ]A#A%`   &0-@?@? ,+,+ ,+@? @?lstststststs t e     eeee# 0eeee ,^e e^e^$"ddd dddd ddddd    82 -    i           &  8   0  3  D3= +288a a2  MF  -!    e  \ ) '       Q  @?(   $| U9  +6_l /0  ;<E2$@o?@=?z8gr t                br:    ?@   +&/    #0/0/%   % `$_!D$3& ! klololop T %(h2 Z,       @@?@?,klklol  ~ ]`QV.\- ,  `"_`_mnqr D    `%_`_!mnqr Z 3*XK "! @#?mnqrqn~ whI$!N+ [  "=$  &%(k[ TQF QR   ('l&    "!&po $)                )& (' , $5   #N !" /q           " TQ>           $ .'c xu,?O     U %S!- + d q r  =K$ [                      G             " =             $ C)  # #N)z  ?#N)#N) opop /sp0   2)  *  O$   )                a1*opspsp&vst q rghg  >]`)"54G;+           @?@3?@? 3 vuvwNO  !"#$3456          3z<$#N)$% H'1$#%&3`qt--   mns%#`+$@J?@?\  'U  '                                                       "! $# &%" !('$ #*)& %,+( '.-* )0/, +21. -430 /652 1874 3:96 5<;8 7>=: 9@?< ;BA> =JI@  E         $# (' ,+ 0/ 43 87 <; @? DC HG LK PO TS XW \[ `_ dc hg lk po ts xw |{   7zWf%Y@?jin-?rq\[vu~]W)    "OY@?=[CW   w$-.-.)  214/<;H G"+,)!$$  @ ?@? 34   \#$#$3$LIP  !)&  3@9?3-. - 3 L5 N8'  qJ>',+LI(    qJ>',+    ]   8 '  ;>_-.@       l "&&O M   0% *) 9   LIB $LI KRabopq     RIR <;<?@7   I    O! IP      LIP    >>>>Y     G( ,    M       0 !!"!%('$'('.-*5 8787>EHGJI LKLKNM#'(~'('  ('(    *-        ~ @5?@-.-.-.-.-.-.  +7    &%     a%@? $`)_"! (  #T ( MZ1 %'u- #T` _` _ `_-.-.      BL  3`1_`_"- .FQ :I3   uxy  -.   2&X /P   WXh` /+  6T  BABA4J32-.  MR*)K,     '`#_`'_ BABABABABABA !# H!AJI BI BABAJ AJI BI BAJAJI BI BAJ BABJI BI BAJ7A(B/, >  ~)k  xu  >C  J  'Y PQC B!          " #&%7   ` _`_`_0  !&)! UVUVUV 6-*qrUVqr'   " O*'`M_` _UVU VUVUVqrqr.UV   )[+% .6qr     ?rH ) #   qr      .A_ UVUVUV  qrqr 7>4  *) (lg!;    INI ? *         FUVU VUVk l UV UVUVqrqr/2O b }:$    = GH  3 = =    h$,6   87  &- )2  (9Y  $,6KUst!  LK B Q?       %.-* /0*,   l  `]_h #_         I5      @ a      [!     . jW$  Y Q!0 *     2 - .'( W     *  %. b?HGTPI      )(9%gv )4  :ZI)$ &.  c      W  '(    `4_`_`_`_`_`_ '(&  A ( ! 1    A3*   )        )       }t        }t         'tcdsp_        _RU  <E@   8 ,58.K"8+                              @ ?@?IM2  5.  %,'(%+ 6  "% ~$v(~$0#")4('`_` _`_##   (  R`   X[l       +b%&  `_  D  GJI HI HGHGJ  G H   5        GGJI HI HGJ GH    7       HH 21 0/656 H ,67F   MP _  &&I> 6%  .  $#   UVST ur{~   1+.#  #.m } k $    C#,   )  1 i     ;    "     A     "!  | f #         '  +   6`_`_`_0 K VI %    @.?@?@?@!X 5878    #<    mP   XVXMh  !$0.-.-    t  ;D8 S) )8$>  %  Y     `_`_      $    0T       ( DP-  1< ,         -2 @?@5?@,?|$  , %&1rM*  (    ` _  (` _`_   @ ?   `_  78 "  4 `,_`_4X # `_ )*$* >/0/0-./k / 0# %     h -.i      Gi`x_`_`5_`5_/0/0/ N/0/0/ 0MN%/./0/ 0%/./0/ 0ZQbOheOXkl n1J#> %1#    %   %  m           A#O (`U_` _l     9! : #J/0/0/ 0/0/0/ 0/0/0/ 0MNMNQ-./ 0/0/0/.  OB!" G:3438 +[H 4+[T+[P$4\[TYZYTW"  h-*@    oNMJL                  L   &G@=!-)   ccMN   +0.W@;B/:#. I S MN   4)4/ 34!&  3:?4 5< O4K4  _%H3"   `1_<   2 MN8 VQ N;/NCHON mnZ ija   *5K."8}o       g&  @   MN9  lQ   lc\[5lQ #lC Jijij   wxB=  aB)<+6 URc\gR Rc\g@QRc\gNIRc\gF/7'E 5   0 R9`3_!     5 &! `A_`_P    1`c_`_|.--   34    G ( @?@?@? 56         @'?@?      &4 +, ~hSN (   8  c            <H     $ @?@?7878 78      @? 7 8      ~)SN5!   -   +6     K&    36    (   C =    @?@ ?@?  SV_L/ `._`_ 2         %%787856 7 8    @?@?@$ 56  56$    $ H56E    (#E   + &0!(        ",   J%QRQ6@6 :     )0  %9        9 :9:   f[C^ef  D   L=  5IE(E Epo$0o dc ! ME Ki.  jKE {#(BE fe>/  + / $# =R!   >= e   EX ;  4  . E? [= 9&+.12. E[X   ,_%+    BEX G0E  .JN ;E43      #. MU% B#XX + I# W ;&   5""' @#@0  %g( 1O * )  2 X         3G.    /4-.!"'(  &3 60 '] ">        )   Hp      GH;f>   h   x   + $  $!m  0    Z 3        3   (   v0GHGHj    K/K0je   !     ` w       %    `!, !  $ `_`_  "!1 9:9:;'    <;   # %% ' 0GHGH7878GH\    E8&#\69:9:9:9:+  "E &GHGH     al ", ##  J`_`_`_`_`_* "   6* (H   '  n ,  -  # ,`_  &8  !(`_`_`_,f    44x21>  ! <_J ;#j_$34`_`_` _`_@      , AJ$q; +  %('(#   q !>J< s    +{ k  A%& (;    sS):IJ   .S   8  K6&B        /#    )   ?B52127;*<  ` _`+_`_MJIJSZk _PQBO3!      mjij kb+   9  a   $ ol  "*  0M  (! %*  2CD   % "6 1)   $AV%)piI:   &  8u ~ %  S !+ %   #+ (" 7 +   #  ) "-B0# ^ '      ! @&?@ ?@&?@?@?@?z E  @?@?@?@?@ ?h   \  @$?@`0   `$  "1 @Q?@?`)>*)*        K>    % & `` J I   3  `fj+,'(+( r   XUXUl)*ljm,  ` _`_  @?Y>XJJGGGG6*>`_0 >@  < 7G        K! `_` `_x            D  `H_`9_F e       H? eF    F  FFF     N, N  ` xP O  &  @ IFIF*%  (*@?@?4,   , `_`#_`_P      #(%   8M IFTSzR Q^R QIFIF" ! $  KX  1         y   a%)     T 3.   0    "!"!  IFtIF>  vspm/ @     *    ;`V_`_`\ N?=99@? "-88==a #   \bbb0b2/2c c/8 x8 `b_      7J $#\$#-$#)        3/+ \-) <;<;  <lghZ<h      TZ pz ` _` op#N) sp '(  +    1           'opopst  *7@op sp1spsp '8   cl 1 1   @?@?,  *)   6        ",BXn       &    @@? ?D  )    $   @#?@4%   `#_`4#4#4$ 8%  $ 8$ 8 $  8 @%@@ <#   % < #!  (D  " ,H  $ ,H   ,L  % ,  L @,@@L ,L ,L ,L ,L -L  & -  L @-@@L -L -L -L -L       )   `8_ . l  ;> KR"  *> Hd         1D   .0                       ,V@ ?@8     & %            `'_ `6_@`_`_ ,       @ ?@?@ >=>=> =>=    " &                 `/_8"       )': `!_`_`_H\  ; 3 `&_`_`_P   !;8 6 x &# 52= Z  !0BT{!'!.!!+   "   {   @&!7y Q        >F"("-"-$     /      9  @?@?t h @&?@?4\4 ,@?@?T( "   ,!"#'  D58/,+!",1!"#5$#  XGDC!"DMTq ]!"JK<@?@?@?(  !4*)6  ! <WB ;b_$+/ $@?@?@?   ` _`_ `_`_`_  `_`_`_ %  $@?@ ?@?@ ?@ ?@? qtst#QS        @#?@ ?8 rov.-uv{1*   @?@?$  @ ?@?   @?@ ? >76=>C" @,?@ ?@ ('& -.33    `_`_< 2  `_`_ -  * 6 ]n   #)        &%)13    !$# &         *G`_` _`_    .d +Z   )A .&gW2     dkdB]^]^]0;e    o-uov.-u >76CIv{v;3    '    -      =       ". "%*  '&%('0/0/ 45!6 2  5O0#  5`_`_`_` _`_` _A   h 6*@2?@?&   2 @?@?6@?@?@     ""   ,DlP    C  JCD |  E      @G?@?d         365> -  "M Q0  >= 62 -:7   >+ ,+,+ ,0/ +,+,0/%&26 1>;%(K.       ` _`F_`_`_B/0/0?/0_~eh  # B?`_` _D <_   8@&?@?@ ?@ ?@?@?@?@ ?@?@?"     %q"     %%T      #M6%-"      #J3h   !4@U?@ ?l    ! c]     !@T?@?@?@?@?@?@ ? $ !vp @R?@?@?@?@?@?@ ?| $ !tn @6?@?@?@-?@? V  E@EXWTY,6[J K6Q JS d! )  @?@1?@+?@?@?@?@?@!?\[^Y# : N!    )#+ \[?n   ' )$H   6bQTOP^]z   H W `    %     w%N$H4  m$  HA  *'.MQJD@0?@ ?@?@?@?@?@?l    #2 ##:e   #0 !T  '    ]^U`   U {a 4WTT  '43 N..% # #       % & % # # L9c /       ,5% # #33 N..% # #       % &  % # # L9b /       ,4% # #e 1 #     #  G    61 #0   '_ ?> :` ( ?U  4Z /     , 4b /g*O+** * ~< a  <+ % w#:pHGB= # # ##*#Oi  8        !   c0))(( (e## # # # #r=,*   & # # #" 'U #      &81*/ ## #<(5  +  #  +$-     3,/@I?@?@?@? `     %1XZ&< P 9 4;2HC 2  @?@G?@?   -.1*&GHGJ   %kZ @u?@ ?   {  I  ` _`_4  * @(?@?@?X .' 3BE'>   < p  O>       &ei  Ot  S      &e A  S(4` _'W t cd  +$vqGP+,+4O.j>4r=PSP ANk"  TST_ ADN(K) >@`   '('!8'0/8 )%8/       878A7=$ ,(7"  &  #5 3@$B% xOIg   &   '( , *)     )8;$' .3O$   "     #37   #A  ^0           %V=q|    %s( M          %    xk  @ 030'       $4B9   ! ! ! !U!O  , %  m'*     7 75 6# ? j      7 =4 3# <@?@?"!         MN?     b{  8 o n ,%23    G@2. U`   `_`=_   8  1)K%?D/  @?@n?@? D=LK     u@?@ ?@?<   46"`/_` _`_L   #  DF!(  @ZY^ ]X]6,    4DCH G BG/   ElR&%* )* $)e3   BEf *  3   @{!   @e     *       1  \[ cf@              W f J *vZ  (  *1D3{     0/@?DC43<;87 ,+,'      :# 2l!= .H     1`_`(_`_`@_`_` _` _`_` _` _`$_`!_`_`_ d,+&m  i  VQLC$  "@! D-e,   ^x* # =K4-   &%{      B- xB;<AB;.- 6  B!",   A6      %9 %    !A(4: F=    K@)?@?@?@&?@?@?@4?@?@?$oc. 1 ^  c! j ovu r  wpoB*$    `8_  & RQR K     5<Pj:;6A*+   `(_`_"#$)*     7 A[ { '3T#-'     7  &  [T Q`_ZU )*BQR=.3/ ;6 =     @ -        & $     A     `_`_   .  [1 4  -.  WZST 3 C6 D    )1-      . $ j  2    ' `    <& -    A+  c     ( / *   c`_`_  @?@?, " Z   -#HG  5 FC    _2  W0';F   1  . &$  `_`!_`_H0      V%  Q 4"  5+4`$_`_ 0+  < H  3 %  $ p  G  = `_`_ $       } # ^q %-  6 T f d    /     @5?@?@?@?H     C :@@?@?@?Padgj  +!  K >`D_`_`_T   ;  @ Dt$     AD       , *@$ QF   @]`uz   $    \ $r       4  `C_  , I@ # ! ,7  R I+ #! 7 , Xl'(#$AJ )66 I`)_`_`_@ #4%9 ( 1      `&_(#`_`_  `_`_` _ &$@7?@?@!?@?@?@? p ! 0$A,@0?@?@?@?@?@? h ! ^:( <   & L  C&!* T    "-*! //O  (     # .   @?@?@?@ ?@?@? X     J=* *8 R}                                                                                                                                                                                                                                            C 8)  #"   '& m@C   ! V  H  (14       ;   & #! / T% /  P --       % F  1/a!/DD?      !   JK*%0  #&4  -      ''& b/     ??>N         ##/ R$ C&   2        P    ***  **** *    -            r   r  *6 / (%#/9  & 3   &          %   'U 4Yo" FKCmB:   ]<'+A93A2 4 ,)F  K  ,)F  K    t09 !74 @%>#O   ((3(  3      068_   &      9  A    8  "!&#('(',#$#$#].-<21212343434387'<;+43A9$ A {"  _ '/'(  ..((  ..|#  lf    _ s    y        #$ 3+    ,  y ,743  !"# ;, DSVMJI  !"JO  !"# SB Xeba  !"bkr  {  !"hiZL i t o z dP  J 1 /<      , 4 *)6  ! <WB ;b_$+      8  ,     (    !  +. #-        Q;V& +1'% 22" #(-     W  " )% 8  or & 99 $0F-    &    l                    #bN        ! + 4& L,:3' 5F1% 5#rov.-uv{B*  <>76=>C3, T('& -.33   &  8#&6 P   #I    8 \   ;&$4 I.    MNU C# `L_`_ `    '   +V!  O   5; $@CzXA1tst%1 0&g  `a &Eb%    2'"     56ab A& +#D&+#D&! ?@+#j/ Lg[8T$C  2*! 'A-   - F 7 s4#\              +#1+ 3-:ME `_`_        6    ]n                 #)                     &%)13 2   `_`_`_`_         )K Hw      )&& 1&g%%       ''220;U    K  O0       -       87212/ 21  2%  '   '( ?   7*  O  S&>!   `_      2* kV       IJIJ IX    5        UV! !UVU| ! G c] Z>_-  2  %,! - aa t   ;8 )5   .-   ()    " F  0   J? l/""""    !! 3 #%%+,   '#1 Z-G&?$.0  iT[ 0   & 0 #,+29:**E     8 5$-  *),1     ,-c " E # * 5' \0         '...    1.A   8 !\&!   8   72$ ShO@@?@?     4y|{~}x$  0    &L5    .  q  4  J    K{43 87+6           ARh      fe  x v''$  S       k( ! +    @?   #/ "  \ !  2  ," A -F    7,+.-H   " '#& &#]%^  .    q   + fd   p 7<;<    0 s   U      p m'    "   "      r-        5>F     '<       +a   # ( i X!    >      m&         `_`_`_`_:    E0$5  2 `_` _`_8 .#- - %    ..?'   `(_`_#       )14    !`5    - 9 - :3D  ` _`_`_0`_`_`_`(_7!% N,^"       $`_`_` _`_`_`_ 8A` _`_. d    % [  C `_`_`_`_  !@5>7 ! "D"434343a:'Ja`WR +             ,_N%B! M(G      VA       J$)9        e      j%       W % ,   U* !    ;       `0_`_7     " )!`_`_$   `D_`0_l   @4 ?*` _`_`_ 3\ 3(`&_`_`_, /*/ '6   `_`_`_<  !) `_`_ !`_`_+  ,3  ) 0)  *q[ -` <       !"      %  % + :.%   K    C    !:   (5!  ($X5     #5 `_`_ `_`_ `,_`_  '8$5  $5.  A5+83?"            `2_`_  F -@ 5    5   P)(2:; B?B%&         <320$@"*       $R!4D!  .+.' (   !!! ! 4%&8,    !"!!" :%<# # 3#)$  0 3`_`_`_` _`_`_`_#""""   !@I` _`_$2$ 2  #%$$$$"%" ""5$$"" ""0Y&)Z' '(!F ?  )     `>_`-_t)",: ,&`_`_)  `!_`_`_&*  &`_`_)* )>/.t 7+    *  ****.AS R   19    29,p, , g    K, " U  [+Q  C4 .#,  />  C|    !    *)&    >=>=:=4            !      !    &    C4 .#( -!!!!/ (  .!!!!   .!!!!  " .!!!! " '.   ).   / 3/---G/8/ ".-"""           "-  L4#/.../...4/...09/ ".."""           ".  5</.... 4!&/..."B`/.... H0 """"            ..." 40 ....  (0 ....  0////0 ////#*0  ).  0 //////  N 0  //// #      I ?1//  ///0 $`_`J_`_`#_   #J^[ F#h    "   /: `_`_`    ( $     D   -                 `D_4    `_`_`               `_`_`                `_`_`        / #    `_`_`        +  `#_`_`              8 ,      `)_`_`          >2        `/_`_` %    , /*- & 9    `#_`_`         -  `_`_`       2&  `_`_`      1 %            `'_`_`                #""#### #####$$$$< 0 `_`_`    $$$$ )     x$ 4* "   * & @N  =b     / 5   7  `@_      3 A  $4W$4W 4S RQ NG    ,)(  B    O E" x        3p( $     ,,  44,     7    )  i)'  $7D[G ++@  2( d +  !  !  7(    <+ 3N `4_ @j    ) ; $?$?$;>=:3       a@      E   E  x        +n(@?@  `_`_`    `_` !   '      `_`_`   @*?@?@       0  @ ?@   `_` 6"80  @W?@?:-&  ^>j     22  'x &        #lH,E )!/S8G+ <\  G  NK " ""  """"  ""  """" ""  "" ""  ""  ""  "2        Gv6bL'1)(  ..(''(  ..(' ! 7 Of-=  5/&& 4    4 1    $     ? 1 C +                    <  #(#$#$#,).)*)*):010/:9" `L_`_`&_`_`4_    441        E     a'1  -   $   Lh    $ ( 1$'  "       //&      '         *%  J`        Y    bt        j .   $           )Y.U!   `_          < <;< 56 /0      -                                      `_      \[\ YZ WX UV S           PR "!    * *![ 2 143\ %$'*   $`E  \   R /0        ] T= Y" $'0   '$( $ $$  $,   )$%$   %PWb sV'  ;7 $T     $4U $@        -6@F$"+ / T"+U$|        , #u '*$H       > 7K& ?D      ) ! ? &1&   D\ $&      >  + +%* Gp323#%J*0 `_`_`_`_*X   N2* *   *$   *4    5*H %  *,   82v 2       42 ryvurq{ 92 R]ZYVUdc   2 6A>=:9HG   2%"!,+    /2       E2& _X[\_`QV!&>2!  yz ! 62    X2 (      -2      2      02                            ]2(   i  =2 ? :2  2 V2  (         (       :    C2&  # & `2(  l  92    Z2 (      (   `*_  >   &,48<@DHX\lL  (?' P . ? ('      ('    @?@ ?@ ?@ ?@ ?@?@?@?@?@?@?@?@ ?@?@ ?@?@ ?@?@?@?@ ?@ ?@ ?@ ?@ ?@?@?@?@?@?@?@?tsC D  ;DC} !  70)5 y  $   m  N6u  $po#x3kN +   @      ^&% @?@+?@?  !   %      %oH* @F?@?@?\   ", b " '4ADA,   #~4     H .'(         3A5^  #!# "! O R U J K   M P &#$#,)*)2/0/7*)*3).-. U#   \""    K  S    #  # "  ! 1        &f: # "    % % ! ,   +   !      '  ! #$    "   # 0 #    {')   "2Y KNuN!?  *(   *(   *( B? >= >9 8/ ,+( *(.    *( *(  *(   *( *(   *(    *( _`I *( *( *(  *(/@O *(B *(mnW *4 qr[ *, *(KRSX   *( *(I *(u *(q *( i *(e *( \| *(| *({ *( *(  *( OP9 *(QO9 *(Q|{ U *(SV? *(KNQ =>' *(=' *( C *(AD- *(  $P4      [ 2 = ( ] 62 #+0 , #%&f : # "    % % ! ,            !      '  ! #$    "   #     #       u   0/0/0/ 0    /" /0 /030+    %&!&!(/&= ") $ [  \     z   -  D    3L $  -%   >:u!cqRBR^   Y   O   ?         O    L     $  P~&28 $  P42&2 $  Pf&25  $  P~&2 $  Pf&2 $  Pf&2  $  Pf&2  $  Pf&2 $  Pf&2  $  Pf&2}  $  Pf&2q 7> T $  P42&2*   $  Pf&2!   kl%  $  P42&2 $  Pf&243. D  Pf&2 D  Pf&2ID  $  Pf&2  $  Pf&2 + $  P42&2>=N  $  Pf&25 $  Pf&2 $  Pf&2)  $  Pf&2 $  P42&2n $ P2W&2mq, $  Pf&2 $  hf&2 $  Pf&2 $  hf&2 $  Pf&2$#} $  P42&2 & $  P42&2# $ P2W&2c$  P2&2    ;;;(  ;"  EZ  EZ  I EZ   EZ  !SC 3C ] $  Pf&2L #$U70  $  Pf&2w   $  P42&21sD8B         *   (         "&                       DC  M)/i -Lp-M&" !!$ ,%"(&+#$ 1B EB2/ 8#8$( #.        YO ?&%$#('('('*),) (O'2/( 65/87878 787G`_`_`_`_`_`_` _`_`_`_ TcfS\Y& EJ  58 K  N'0Y %iI\[\o\s      b!GQ&0    8A Q$.>*8,,<*4>3%)C   {  ;*J  m   0       %*t"(5=dB   " 0 $ $ 4 " "2M 4 &      #>P    % ) @ ?@ ?:    @ ?@? 6       %      0    ` _`_ `_B#+ J      !  +  %Z?    K%$ / O#% /   A  $)G  % !-        :%&%&  3`+_   $   `_     1     !&Zy(5M`Wb  c pyv  {bifGP m V  Q ^_`gps^  Yncn  oI9 n cG ('# .                             !0 &     Z  ), &B         !!?B#9     7    $    @d?@?@?@?       ?6 u8 IBC`_` _   %  WZ     EZ    @?@? EZ )           >8 1 B  qrqv   *  *CI#     <        WZ  EZ  EZ         A_<=    <    E K         L; .   $ +   +        3  +1  #  +       E   BQ  DSFULor   EZ =#; Z    '  !&!   /  5 WZ   +%  *.WZ   A% 3 e #0-@A0 "od3r y6& $k! /k @?@? EF      * J    (O*  -&('(      U (.0$@?@ ?@?@?@?     )  +5    -~   x}d'C 43    * 9  ('(;  - >Sv  (    3  1 $ -~-& !" !#*14"P?   "q[&    $#   &= JI@  S ! P-#        !+@?@f?^       !   L      +,n#(^     M&       & $L / @      `_`_,   ^     R  :  {~u v  P#'  Z"!  -.    " _B?Hw    & 8/ 08/ 0 #   4 FE     0?@(      &% 1U  % p'  ! 4  Cn$D  BQ 7*<,     `              Y        )D   & #L    9cM ,' ,:'I  ;< 5J -40/Yy|}  E6E0&     78    5 o3 E   6 C 1V 2 F! p  ?  %=  # B% "#"! $#$#&%&%   %(''*)I(H . #iFS]                  $   Z Z3 S] B5BB`BB BB BB     c         R  4!  +  cH[)*<   #87    !N3          l    f    x     #y !         #        #                   "          !       #0          H )     `P_R", #            `!_`_`   %      EZ  1          `%_`_`   EZ  +    `"_`_`  &     `_`_`   `_`_`    WZ  %            #           )  !           '         `)_`_`             !5            L '!      JI      ZY   p     5'0   `z_c   W       fc           `6_`_  vIJIJ IX( ' $h+  0)  v9 G &+$2z|~9        twrqv u X a  HF       `_`_`_ (C 2  +,!# /&; `<_`_   ! 7`&_`_`_  $     $   # $`3_`_ ( '        N$%#    `/_`_`_7baf inm z  '  `/_`_`_& %!BAF INM 3 .Z _ &"   `     (  *R a     E$""  ( 2    4  > G  9B   9   , F  HKFEJ I , 5  IG       9   * \  250/4 3    GE       2    t     6B   `"_`_n      7>  !  Y\/gh/  2       |  ;D   IT   *      $43{| ,!  ; /x   *        :5 7 0 )   JK 7 =X   8         +        8             Ag  E"         +      E                @}     J; +4+ ,    $!    E3 !   9        0@P    |             /ek (  | :=    6&     )     6  &<H    ?+      )      ?  +@G   :1   #  !      :  14   !       >F  ! ;C   *)* )*)           oX                     2         7@        /  T   ?A21"0/ ?&8"7   #       @E  #     -!    V[Z Y  K%    9        `     8        _     2         V _  BK      2     .    D M  AJ     2     @    2 ;  ?H               V _          V _.    D MC  ""!B(     ]  (BJ$  <&! " pm  $(>);f)7   +qrI@ "   ef a Za ? ZYZaD   3 7q ' f $) 6   e   <  &    !          `R_ .-. -. -H 0/0 '( =       ,      L               Y 8    = )& 9&  O& ,@MFE@ I@A@URQZY #]& >$GH  s& T$] 2,1%&b_B^ Q& .  ` Y + p$YB ,  ' !  5OY   v|   ATS TS !     o<  .    >tx i   'N  .  ;Gb a9  l *       '  ."N H * 9   8#  #^ ]^]         fvs         'y(   1    9K b aC  k>; * "       '  %#,N Q * C   8t    '\  1  8$  ,    0      `!_`_  >X  +:      7J   ` _`_ .   HX  )/  ( 4NM !$!"!  {NM 8=>;<56/0; ' T% . 8o8  ' H .8m8 ' F .8k8 ' D . 8JG ' 0 / 41   $!      $    L0# M6       \    O    UQ,(M5 p  NM M 7.  (EV ,   Mm m   , < m          H <cp0r,%{xu|$~+P   (<  LK " 8#09 WLK"        2  6!W"G:""!"!"!"# .JKLEDA@U  $ - (&%&% ?t    (  &    @ ?@?* ~  ,  ( : L   *@?@?4   $#$#J # <   $5J? 6d"+    $   .K6  >> * 1  +  >X * <  ->1212puvs    !*B R QR QRQ&    5:   ts B!"i5 6Z> xu  + @ KD )X 6'   (& -  Q Z@?@ ?@?B8xWX xs   >  #DF('4D268`_ r k Bb a"d ;5*> Q` "` E                  Y9 R 2  `B_&' `7__G$  F=)   GNVA`  !$  #A{/+ ++ /+2 )+6+: . '     + ++y/+ ++ K+N E+R7+:8 . '     + ++    B            x &+  ,% @% "!  &%        +$"v 3IBx;ang(7 -.'!"& WZ!(      % +27 ' #`8  $ &     .    k   Ncd;& 21  $+=8    $  $    K/>>*F   (    `          (      5       0     sz r     XW-< =z    KFE> -   D;& / D;& 9:9>         =    D ) $A   r  0>   "   !<  1`_`_        `._`_    0    3"&   " "-      $ 0   )          #   )  / 9 '    / W#1 ' 1  %"9 2 1 ' [   7    # /      ' /    @?      "!**  "  #  5  8X       ? }  $,: *U$^  "        %  . K "  % @9@ab 1+"(  .. ]^  - % : + 9!=    1      % +         *)*)&)&%! /$  ; G9 !/   "-! /              -q 51!*"(  ..("   .&)!%E1(  !   Na )     ! &) ! z    5      )    ,              3@?    < %+6,z + ^&   a    (  ..  F GJ  |  [ ./ :;&' "#>?67 *+BC23b(  ..    $       24'X  2 +  ^&)~ 6qe            >  c    `  /                 ^ ' /             H(       /               *              > /       5 ,                       !$        "      ! `     ! (     ! ""                          l  ! y 3/ 9. 2 !> *HR U & !* "K A{;2#E6   8  $ /" 9       #            " 5   $ % ! )> 6      /    ' /g / "!"!$% ('$'('('('"*/),+,+,+&.,-0/0/2121212121434343434343 656587 :9:9:9<;6>=>?@?#B AB"ADCDCF!E(HGHGJ!I'LKLKN!M-POPOPOPOPOPOPOT SV UXWXWXWXWXYZYZY\!["`_`_  "  ('(  ..(                   3" Q     P     ?   D     Y     , ( 6 ,     ,  Y" &  34 _'(   +.        +0RA      K   >    )-(%  /  "    +G2+        1D } Ro%6'2 R% %6 #&#"+    ) 6     (   J  %U+    = +   ?%   /   0  $+#     a !P   L*!!+B  *! `/_`_:          :    P!6785 0;      '   `_`_   @ ?@?@?@?      " 434/,1 ! "%P<  1w   "!!       %,F"  1w`_`_       U h      E`_`_` _      5 ?    !   ,    ) !      &    `_` _    < :A :*<-%   ? BA BA BA B5 87 87 8% /      8       6  (* 1             3 ,  3 ' ,I               (K xnZ           +      D "  bZ            +*   e  :                   /                    /      c7        +           CI _RQP  D      j           9   A @  #U^4 5 |               %             "  " #       .". ] )$      .%$)( !  %*    B              % 0    @ MB/C?+-U . /" ###2 3> ##   ## VW ## Z_ #### 6 7& '## J Q* +####$(  ..(  (&      ! ,)""F<              '$ MB/C?+-U  D K           B 0 2      % 0 "       C"Z     !!7  !  L&    j     ! R  p     !>4   R       %L1 W  x      !`p_`_    -Z   F, d     !  p      !X! N! /  "3 ^!T!!z!R!H!|!r!,]jC *                                   !                       7                                              Q d  =     <;   u I    . ]  I GX    %")= IJIJ X  5   & +" !  )=3     ., "   &' /, "Q IJIJ     '       O    9 IJIJ  [  M?      9?   IJIJ  #   #    x>  %IJIJ X    / 7  %*     %%  e    IJIJ  !  -   $  ,  9  ':  O       )b      IJIJ X       @K , 5Kyg 2F (  4  `O_  G V     H G        bj z  ?SVUL  ID %%    " Aknmd,a\ " %  28{~}t ql  "" )<O  Y  RQZ|  0 -%# %  4#&, 6J`&_` _`_<P  !`(_` _`_8 f  8 @?@ ?@?(  "  % (   `_`_` _`_    &`_`_`_    _ bi \    `&_`_`_        " D      6,Z    *O: O@  (     AH    B%. !(   ML  P  q n O   CBCD EFGH ;:QT SZ #   B     '")  WC l >    &5""%6%3%( 3$#'6  +pN>  {    %.  ):  6*,,   2      @? D' 9$=2  7*94  !    !$     0C.             9   0C.   :,!             5#    ,!   0     , Q         S8-4I "   3$#*# )&1#*!f ,+    ),'  (f'     {* Qmb   .         1   5!2Q$hx(   <    "C T     " G- o   "      #2     _ "   B %1  (!,   2       '^5< /Q   $  %\  $>2S        +2!"    ;\# B    &   $$#$# #" /0K & 3 u&   "           "   #    IL"#J9    - " &     "# F!G                          )   $                U "lk"  }tI!#" >      G   "  $  ep,   "    )                  IL"! J$   $    & "    #14, %           $ IR }t  c! 3  ,        *   $# +.-,%& %$   #   "   ;| ) &)*   "   T-3     @ ?@?        "#      #_ CM)2     "                                I                                " %+ " #2          f     && )&%*AV  ? ?(  `p@  BS  f      $ ?   $ 1(($?H=/R+@`_` P    `_#       ,    $ .3 ($  9  ?$,$    O kjifcd]^]^ @ ?                N      V  1 "          G   %   & LKNM   (     3   +    G& :;$5PSP OPOPOPOP OP.OPOP OP OPOP OPOPOTSP>OQPOP$O    (    - $< "  !     ! #  "    #  $  )5    (         -F A    '                  ! '            TST ST S    &   ##")      <      5  #,          *@A`5^4    )* .#$:;   #$#$'(5* AF{v   5!YY   _W3      .  `@_`_`_     '  8       7 "7:  #    W 121 :9 B $ +,+          #@ ?@ H   H'   # @ ?@#?@?@?$   >$`0_ $ TS   ) +@?@?z @?@?@ ?  !   VWZY^-0!"kv   )&  9`7&! x`_` _   `._`_}|x   #Q    5    2         ! !  6 &  6`_` _`_`_  4 5@ ?@?  & @?@ ?@?    &     ')`_`_     2   7,  ',   d B     :  <  %p     *1   Y     E "  ! /b.  ' H   !. !"-  8 365      3^, 8r=*+6Y $ %i  (B13J%  !*0 D          ]*)       H[ , D]'.p  "# -#   /    &+ +.- ,% &%$  2   $0   | ) &)*          ')       #$ #r#4U  !      + " y      &%& )&%*AV  ? #J', l|D  BS f  )*) !() ?  $ 1,  (GGE/C   b          D8L`(_` _`_@R  #`*_` _`_:  h  :      ' *      )    a dk ^     $   # ( ` _` _       Z   '.  ` _`_`_  @?@?   `$_`_`_  "3 0+(   `#_`_  C @A:   j      !     Y  f . )  $ )   !  $ !  !   `4_`_`_`_)       0  [G-    7.    !     UVUV ,     uvuv9q          &g{e.    CF  KN 7     ? .9 .*  " " $     ""   " #"   d'>   R        # 8      !   (       z   %`/""" !     /     "UL(     0 "" "   = * 25(       "<i(  48  ""      CCO       2   "        gj    'F5878 10  8  +)   "!\!>-&&#  #   -HTG)  5-#3_"^]c ba^]de%f   $   %#    "      &    #h!        + ## ! !"  !  !             OV4  U!XSTSX  N     1  *S2 -  4! s.3#$    %5   #$2 '(   !     (   }  }}t       )='"8        *FGJIJ CB  >  1)    C $$ #  *  $*?@!"12        )  }3)"   ! =      )ML-  :7/$   %  $-.     :2'   %  '-.  ) }433)   ! >J   )LC\&  $"  ,(   )}t}t }433)  &   ! #-V .J                )   X-  F N       /  /    $ %&   Y7kG u 6  p &% Y !  B *+ 0D u     $           $    <  '  +' <4    )       %  )         $     '(   2 /* / !8*               )    }343                 )  *  ! "        5=  [     ,   '        ) C99  L'K 6'5 '    ::1 '''H'!   + ' ''8 >*3 -  )    }343       %  $ -#     %  *     -)         =/$0    ($ ^     2BL~     0   %r    %   !  JT+=    n] {OFEH x      L "qa OFEH       O %3 q  0*  H (+   3 qN  "#$#       &  "   + ( #      66+ 8;0$   % ("  V   $#+  $    Qz7     "  ! C 2 C%   %   C<; 21   21H   4        (   %        +&=y= ; : ; (                          % (  ! $ "E     I-3 [ O FEH I\S OfS % FH          (      M  %  J          *F(7 OFEH (    . C 0 # (7       VU<% OFEH          3   Q !E&1"6 #  ;      K ) < _ | q( N  ; W ] b O FEH I\S OS  F3 CPS  JIHGH +, S FH O       FH   FH %&'(-+ FH  BA@?@ #$21 2O   FH O  FH   43                      @                + 'O, 023/k-> r28 00,=E        "!"!#&%* '('('  1,/   2543)87:9:-.96 163 6 "!" @?<  ?<  ?BA>  A F AFEFCL IJIJI  0 25F INMN'%25R MRQR#- R+ et  !   N1)B  C4?     ?!&*'&  8            5' ' +' B' ' +' '~0M OFEH S     JL     j$ OFEH        $      (       IA) $ *      #   *  $ J /$ OFEH IOF  H  $ # "   J < +     $   /     I4  E L O FEH I\S SO FEE  FH          #         (M '  ?  E                 &  % %  +  '/  ' 20 *  .% C            '   '\4        $  <  V  ! *tK,J& (   !              '   '/  '!IP.XP %V'   OFEH  !" %  ./"  12 QL'K%.  -    6  = |   !T! /      2       %   *'  #   @ ?@? \& Q        S .  Q     @ ?@        `Q_S#,/( :3<<"@  N  /XU{| 4LI  $  12  7H  >#9     ZS!3TWF 3< ETWF-  1 < I  }t   }t }t }t   `3  :  F8"          "!" !"!&%$  1|$#*+      +V-.  `#_`_` _`_`_, *   )W/,, *`_`_`_`_    5    /5Q)  * * 7 !    5% -t    G  <  .        T                               #J=5Z  A  = #          G#  .    T *=  "   2521&#  !      w  ( 9     1  $=  ! "u7     e          :    "   (  eI         G;      `4_`_      '/    :       )]    $  /      &+  1*2      }t           $  }t  $    }t4             "  }          }      $  *  2 "  . /         &    W      $ $ # &%('*#$  "#010/0/4343898787<$?>+"4 #      ,(     9"    *   6561                ;  /&#2# **  *  e%F\ %  )  /              } 4      "  }     $ J    "  \           "$ T3          *    )     qt NABEDA26= 5B)  &56}AE#AB3D }t qt DA)'."DABE63- v  ,)       3           #     " "!    E%[  #$'( )* 12 9    .x    N    A       ! Aa    !      %        o'  !  %  (   '5%,  `(_ 7MA 8 8&    8`_`_`      !               2 ( (   (v;   +! \0!36   X  ,+,+?D p  ;  ;           ?  DX            (" )    6'<4    '/'(  ..('   +3;h& %<  4( 3  #./    &      "TALJ        -    "          y           '1s+              "  ZL, *"K LI"*%TOL=<  9 $-$(  ..($ 0  $-$(  ..($m   J (-#  /  A6  $     ,_l   " Z       ! V   /   %H       ,#(  ..(#   "   !  _ M %F [H   1   "8#D##R:72=   !" "->3$   "(  .."(  ..  - %!B!$3 046( R6!M@k(] )> 3g0063, +3     $#  "(  .. "(  .. "(  ..("  e % )    x3   3   , +    8 ) (4   /u   / e Q   k\.   1  / %  :_ !2 -.e ,  U#   [ -  D      )  l J/{M   |*.  2E  (A%     (  ..  G*f  " Z     7,  /     E " 'J/{M NK c  >=>= 2 1(  +$  $      # "# 1}  !%#" k #"(  8 c; H/E N   &      &%  $             " 3 (  ..(   9$  )  1    /  E N N5+9PU%#\# E    0 .!$. qxmrqr     "  (  ..(W 53)32 S; )  - e $\28.     E5        @  D7        B  H<        G$  L              1      A$;78/K8   )$% !  (  ..   (  .. &) ) $" !2=A  87     5    T   "     V   ? F (     $ 1&F         $ # !$   m, (1)(  ..() 4-8q< ( *  4(  `,_`_`_  d'2,+121212,+12 143^)3QPKFKLQVOL  z  '  I  ]    W&  ]Er   9x        )      )  9    c\Y              !  !!  I>Y#DD@;$#$"    #"*;     <DK.%#NKF=     618& &  !2 1 %+(5 "E     5Es;"{   &&#F   (E/  + ^   b',   ,' ,                &          c0-!31I  %Q   .612-.)*%&!"  $<7834/0+,'(                           I   )"                       M           w   )&$ !              ;*  :'                  C*  : 7*  :+      ?*  :#        s         s K*  :   [*  2G*    )dQ ,.""""#  ;+        '  !  3                  1   "!"!"!"!"#$#$#$#$#       %&%  ('('('('('$)*)*)*)*) )  I , +  %    Q*  A}:: 5"<:12                                                                                                         !9 " "3#  ? ?                "!"!"!"!"! #$#$#$#$##5$!         {   #& '(+$']  A*)* )6565      2,+12 1f r y         ! * KN  SV ; 2  f PKL K       :9   !c; &   '''''''(  ..(  ?#  ,2:& u  n  }          $      .,5  3 03)^l        !.  2.>  +     $$+? 3    ?    +,                         E<   *  03?(8    CR                       &( %& %& %, *(  ..s               _M !        `:_"dp80!0"( %   -IA<"N* r    / ~              Y\   /+ %D)LR:x      F  g &         7     Fgg9'9'S@9':!V]\[P]R&  *,   :! b    P        Z  X  V    X  V  [  1  '  '  4  D  4  f      ~  #%  #*`& \$ Z$ ;FLEf!"iH"gF"ghiKijmDA`8C!"wB"eB"exwdefwb"$  T$ R$ C\ (  !/0/<; & &  & X [d_  agh    *L 5 3 ; A ; 5 3 D8<,HBYW_J #D#YWhF,)40 *%#%E (   &  & # ! & !"! (& %&%,& )*)0#/0/.-m2 121k43436 9:: -<;<; >= x  U^]ba`]`    $ J"s ! " sorq"rqr   5< $  n"   /<$'   #  3!   "   '" /  F-#h",!d)7        =>      MI   0 +( G    8 Cs `J_   $&  `_`_       $ 7'' 61"*### AA  $ '   " "(m=! l   )4 H %'   %"O     % ,(&  )#.0 $' ) R I               ' ;    -9>" & +   0*!    <_L_ &Mr#;j+/X   STCD   '_dpqr_X_`Kl *HGH .  "!   *%050/0     H7&   LK 1 L+    1ABAB KB YZAL=BK    5      G M of&O&q<9s &: * *O  *  6 =-&(jU$ )$5D >)$5,) 7 > 0& &%/ID4.    H   q  j#           I>0'  M^5     !     7/, .Q \         +  %0 "4     !&"! &k%&TS8 ?-Q@^] <iTe@&/;@5Ea@@<@?@      OP   OP     ?  ?  ?ili@* @NOI@ Fe   0?u1@ z@`@tD*{"#F ?x5 $ C + 9 0#&    (/ !  i!c@ ,+  '       :Z&u !  $    0\Y04cZ-XY< 5    B1)<;> W`%m#7I  #  9cG    !@?@?@%?@?     <   " O @;4+,  +M>Q   %M$+  Y7  !$      1 +C2&   W`I_`_`_`_   /   = 83I#7          6K     *7    0- KA     %K  !, $Bg    ROPWHE#fk3  I .5@ W Fp m? 7  ! !N       O 0$&+k t       #=(!( no   0yn1 0  rkn0/ ej0/ eh0/ &%"!    /  "#z: ' "%8G   _{ "4  & &   S+/0 bg +0LQ ??@; OP  ]^ on   #L !P'[/  % ;L    Np     @?@$?@?    $ (  9C#' $    1`f  ' :    (#p "       "  !"     68$,{  B!  %!   !5:!  ,!A(:0E    "15$@%?@?!+@?@?8 H     -`,_`_`_    7p ,+S)  1<)&%&? ?(kH   @$?@?@?   0 `'_` _`_`_`_` _`_`_`_`_`_`_& Q ) :  ?$U@?@ ?@?@$?@#?@?@?    3 W !! % <  ! =         Q )   ,   =   %%/       $78#$CD?@ $;< A      -      $    . =$&*$"!% , "J'  =^  5'A     (  1  ,RX. .  $          *  4  !  x ^S  R^ZSh  c    cd JIR   Igf  kl  kl )/9 5   6)  !  ":        !*  1: 4%) E' '$ ;&!$.$C%% a     v   % 8   8       %                " !$ #& %( '* ), +. -0 /2 14 36 58 7("                                  ))))) ))))))))))))))))))))))))))(E       l krq    @)?@?@    /  @#?@ ?@    .)    #t$  +    3 #     !* & ""        > +U   9D  +UaY+U=}+U++UOa glk  >/ l  ~}  >/  x  >/4 L   >/Y/4(w"_Y/;$Y/Y//qY/ H aI zy@W @ + W B ? >Kb7+(%* !"   #              b e% A ;  ^#  % +i   /  0   @?@?#ip #     FCT9:Qn) 5,# 8!$ 3"!  32      % ;<w & D'<?A   *   (- :E$    * 0)(M:E$0QBMXSZM:E$4]^M:E$6YZ YX;*  56%: 0%1X% -.&%1. 8    +  60 (.4 KPM   .9<")69(ABGH  g ghi^=(-  %u c  /'A        8  <m  " ' A;    }fct]zy rEzw Z % udYBA27P ) EPOFG<aPO, EPOh=b](!8+'# (     @%?(  1 ,!+  2      H 21  ' A ;  %  '    )= B , < xR NGHG  &;<;  %& \  .'`_`_`_`_   5              !    + ! " *$*$ $ $)Q J         5      g            vA               '    ;  n@@?@?  (+       8   = -!    5 *         '&%  6 Y6  6      2     *    5       5   !"  +   !   T X }   b  < i n&9& '& . 7 77G" *"   ^%  zJ\O {v B1x      1    LV    E      $'(  ?R E     ,  A. ;E*  /0 %   0 )* ' ( `J_`_     L  2%           ZW\`dhl 2' 0/  ;% "    "   !`_` _`_`_   \ [   - )  )  " " !   2 .  .          "!"9   2  ! 2#   #-   $  D G     XUVWXWXU" -HG-D5  4/0/ 9<=H "  !  -6(1$   = "!"!7      * 7C $$& # "   "F I    :  21 - & (W  4%& !" )>i `9+b?> A0a "! !41`7$0'8 - .   "   ,        40  |         PA +*  "          $#* -%&-)"!   ,! <120 3 !JS  <=>=> -78-;2!   J? F    !  2"   /*_ (  :$#$ #%e     '#&&1   %&5S :  e%  $   3.        M? $  $   #  $  ' # ` A(  /  N 3  @   _ @(  /!   3        &  ) V   /   <          & ' T   / '2h 0)         '4 'b G /+1 @?@?@       @?@?@       'L        OR    =>      *+  9*  1?    *      &0         !  H    `&_`_        FCDA%@)*)$).Q    * >C"             $,     } ] L#d d@?@?@?@?@?@?5  *a( &   1         4#    & 1    e.W   bgh] )       1'G,1$4C 'V5      i       $v s"  $"5 gr     c f "E !5(+ mZ .-.9D98 C  )('(]#c+    @?@?@?@?    ! 94  LM  H ,    t w  _v @ 5         +nC1 1Ha%H  y v      * &  (    AD   '  " S + ' !  'q   T                9  <Tj,:+  P   434%       ,!  !$* J  I  :+P8j'h      % ="$UP      vw|  i .      VWVS>?>) DUS " ! +  k            ]J+ 5    . ^  @6?@?@"?@ ?   )&   $z      E'   8        2 1         $]T  % 2    E  cX J $$'     4i     -   .'( 9@JE5  `.%"       @!?@?@?@?  ?U     G   / xQTS J V>) 4    !29 4 3   i  *  %                  o1'G  zpm S0>      *     zq 2!; 0+e!m5 y( sE'[ !?      ' ME9     .  Q8 88H   P6        *    %          ;E     )      !  5 5j ?N(           [\   A'    $           \            1  '9%?%H ) 5       *            )&%& %&%(%&%d    ) )  dz 0   #  "  A ; \    2; i l  M   8 # *      0 *         D               %     /   &D  (  # + ,   \ G M  ' L   l4             '    \   a             2      -    5    > L %    I *-  {~     .   L   R  0       ]  ~  (      8      ! ! d% }!   / $ "%* ,- 4/ *')2 8 ;>7  A       8 -#5  '"!$# $#$# $#A&%a&%&%&%%('*),+. -0/\2 143a6 5 89:9:9 <;>=@?+B A$DCFE#HGJ I)LK NMPOPOPOGRQRQTSVU XWZY\[^]`_ bad cdc:/         q l 1 :                           W: q l 1 :d 3          F             3  ZI    "      ,y : 8 0d!      (u J 7*$9 9  " ) % - +            O8%  -+,E O 4  * G  ?>   fR, O 4`&_`_`_`_ _^  `_`_  sr    !jGM{5vKx  ! E E"! . 6 &    #  1       1 k     A :     WPOPOw qr:  F= )  + f1 tss Pkra!R( S   W"!@?456!   !        %     >1 &%&% O %& /H  ( (Q  !61!65      jq T       1  =     "7 ! #      %         -  A2  U ;1@" &'& %**4+ &%&%6&)%x!       " E   " 6 &     1  " !" &'1,-k23  ! Q              >   #    QZYN     &      8()()JIHE$%FED! M M6m 5 )9  ,5 (%    "   >                 $,   &      E&   2    $ m   !        _ C   )   ;          E Q3/4 ') `                  .     >=           0"           !  !O   F @&" 1:      4 ') ^    .@32            1  2   "5*<  A! #    ,     *)   =#Y@A    !   #      @*?@?@?@%?@?@ ?@?@?@ ?B B63 _f             O   ,    !       #2/.-"#$!. #4 +: O   ,e9 '      9'!C   :787     ;B     1     K C  m        !@      > `H_ &,-238?DE  . =  +   O  9   +   } t$             8       "]       I .                =B ($   1#NC    ' e @N?@9?@`?   labi       (%          =S      I          1<'('.           =   ;-*=S '   o            ;6(i@?@?GP9     >H         v!$#        )*         ?BA>=:9 43  0/  ,+,          :4 ").->PO ").->,0,/  " V X    "!"!&)*).-.->=>=2569 ").-> %M8  9. >   %             U\   ^]                     8     >.-       (1( B     "#() ./U, .          Km & "   AS$ h )$> N!  H   ! D '4    2  (        L  /$ <  $3cJIJ =  #         *&*9w.=D      -. / %  %T+    ",    +     #$  349:  =>CD  IJ WX %S0    +*-y P     {($  P  +0>. >50b9,"l.   %  !    ;c    (((((((((`_6M@?@?@         G  puv  &    &O *<  ='  I(  i`S    G  w  k'.1p   q  *       !&    '              -       '              +" !*"!           _   (-& ; p      %   +         '        y~ y9      G* 0-    FA VA+ 0@"   !  ^* )  #   ( J   @ ?@? . 2 B A* n m>f `~  0v P   ^ _ @^ LJ |V pZ l   j \.  N O   ,  F  <:$.&(  ..(&(&&$    1 6A vR^ $@ fb> &n FA5j VrE 6=! &%%!%#R  A;  &    %  +        " "  '  ,+    `   <rK *\[ xw t        c  )2          M          ?          1          #                                      ^  F$$$*  S..) [22                : !$#$#$#$#$#$'*),+,+,+,+,+, -0/0/0/0/0/01434343434345878787878789<;<=>=@?@AB)DC0#     *)&'6523*) :9  "#>?*)./*+BC 67:;4                    ab@?@?@                   `7_`_X   `#_`_     ' .  @?@c?@?@?    -      * (b\ &%D   & $ +    &-ddM. "V$ %* )F)  . : 8F     - !    oj .%0)    ) %4 { %<  3o[/\=] ~91   JIDE#:kD9 @GNQ  :9         oCR< )] t G 4 Q >E*        k  9      `_`_`    `'_`_`     ( %   `=_)`F_`_wxwx &  54(K      /  C= 1 (   =e5    ( ''0(  ..(',,5 ,)2  8 &P7       (F  '  `"_`_  '  `3_`+_    + 1 0# 7 @1`'_`_`_ '6  + G L($1        %&92KPSLK(0  ' ( ' 6      + " !Ge?>'T/Q $"(  .. $N          ! " kn  ?  6  9  6   c+  $  + 2  R  j    ;  (    !         cm]9 K- K$    $ ( $= "`'           JK%- (  .. t0/  6]`4# j& g6_`s% z   l t ^       ) (  .. .   +  ) (  ..     + ) (  ..   2   t0x    !'hg2OpQhg    XGO %Op65$Op6565 656563 43434;3Q%  ) E J  $3. f u  j  z 7 $  #     $  '  3   /  2  '( #2  +, #2 %L")A,36 C*I1==         < 0 "!u$#$ #$#$#5&%&%&%()(+921.65898;-BA.FEHIHKD 1&% RSVUXWGZY P  7 !!!! 1$ *IuEBx2 121r d   H  ,  .r      ,  &-  4r2K4  !'                     (  ..       4Q )      )    )        "(  ..       \1H0    )        )    7  3       & & (  ..(          )    E A=H  >  M )   6  >7 %: A    7    B  x  ! ;  %  4 &  % " +!  5!  7     ! %8      $#   $# -   #(/9 %(  $# .7>1s  e   $#$#&%k(',+*)X.-01.43656587 :=DCDCFEHHIL K NM)NMPOR Q TS)TSVUiXWXWZY\]\] ^]hghgjIl m po)porq9/   g .  %> ( # ~"        GH ` 8,  t>3 XQ   '  u" 1  2' _ *4343 4 3  &  *)2        xw     4nmx(x =9h    %895% _ (   H -        -4(     (     !"    (?  I    -`_`_`_6 &   6M   %(  ..(%  +J   ( " .            3 e              E, H65.65(    !4$ )G  H.(  ?K#      ?          * !.    - 3 B  !  0y    $ =  k}        #$  !   N  L Oewz    #C       M =  g        % -    K  6O Vwz   %-=      >0      J)             Y/  )O)""            ^4  )W* 9:9$<;< ;~         )!  dP'   ) $   ^    [/)3w &       7   v9    3g@?@?@?@8?@?@!?    ,     +; "              >0 "".      |1  43$!*)* 123$  34 ) *) $*)    92 8-# - '  :         0/    ;2  />HF=T !     -5  (E    9   "  0/0 /@0/"                      3   .n 0 #    % @" h % ' 2 u8/C]   - O   4    C    4 @L = 6     g    2    b7.D&  ,      H!,+DCD C4E       !   5      &  $,,  #"       )6(% , 0D     # "    9>(#  MRwb5$ ot % $d !k ' #     9>(# MRwb5$ot % 'j $n ' # >L D@!?@?@ ?@? 6'''' "    ."!"  !D ;BA!"!"      ' RA    /  #95 ./, 7 874)       ) 8 Dm  J%!8 $+,E![ !' ^0%* 'W #'!$ ^#!0A$ o"      .  #!&9  #0 %J   U| !J   CD/ ;F E94F  !  @n '$  nkjezy  T_ 5D>]DI DS, / +  +  @n'~         BQ TA BK   2;<)  3B   +B  GBAHGBMB ;B-@mNgb e '_     `:_` _`_>  04 1f`)_`_ l uvo   ,   `._`_`_`_ #2s  :  %  $/E      `_` _`_     K        , ),  !  .  :C          %lG `_`_`_`_ilkl  #'K |  :  %9G IKKE       :  :  : 6U     %   %  %  !>6     ! (EE"E A Y d :  %!E M   :   % ?#1G -K    :   %TFG K   :   %3%G   :    :    : J   9    $?1F      `_`_`_       4K  :    %+G`_`_`_   `_`_       : ` _`_ K  :   %*G   :   :   :  t :q  b :_  P :M  > :;  , :)   :  L  #8  "   :"8Vc(      Md    #*L ,     -DCDCDCD C       =BI v {ZW  :34"U @?  85 FC$ QR  QR ] XE("M+ l    G$ $41p'"      :        5   ?  %!: "  :` _`_ ,2F E % !  2  1       = #@ $> $ N*oN ! (SX   _\ y~=>     J#) {  ." %H%G  i  i     >i    BABA[ 9 >  `$_`_`_    ! !8$   48          @  !             E   (  , ( (((( `_`_`     `_`_`            /B  $ $ H $*m  ! )Q@.?@?    .     "  $  J B SL AB/ 2; @; !B+ < ;0-BA :;BA0'9  au#'(&%2=>_`[TYD ?"% 3'C L# 4 AB U<" 3           ) RY^]  `gN1 "<    DAD= &    )*)6 & QN & F#st #c ^C ra_ 9 3S &-+- &( &/   $C& <&      & ''       Z $ =@ GH OP WX ]^,  g`  ij   mn  z       }       >" 8  +   +     + / DI9%    Z  <; %+|  43_   %*3 21    D9 4343212 1 658?@    %       ' MP {      N *     ?  $  "   <%       ?          ?1 <;-    # + n :9 +   521 $ :9 i :9 $   D9  ,           %    + '% K K    % ,*     7  $&  +! $  i$ nL              L  S       "  X   )'3;@    0 )   D.   @?@?@?, .   B Xf   &ZYZY  6 #QX>   +    6      & 1V   *P\       .94m  f:9 H21  ,+N,+     !    23   ) !>       h'?%) #  N     #  5   N   L         b,   L     CE 5  Q 1   ! 1#  (          !" '( )* 12 56 78 9:;<=> 7: ;J UVKT]^_`cd ghklefgh ghgh % M3    0    &d8  :9^ f8p      + %x    M   '   !  : 9  :9   :9   I7:-0/0/ JI .-.        ! ?  K>: 9ehghgfef   $,  ;    %.f:9: 99   21 #     - 6#  $  f 9   o  e      %V         e(%!  * *1   +      ) d 7/   5 /"XW \a  0 64 -.-27    ;    {V :?B   ?  SY      q     2&$G   /  a,r  (     (#), ./('('>  X'&     (/,D&  >  =6565.-6/*-.!     35<;       }"     +     9   %)XB ;  6\V   A("$]  '  $ Jh    $^] bg  ;8:?B   ] . ..    90     & 2,,;  /)+?: 9:$9):/94A;:9:9#F'RBA 4)     bFb$S R$I4,9]^]^ 3478 6.  ',3Vl $&         8"+"5%( )* %.'3+?$ $ " A;#F'Rr: 9:$9Q: 9:9: 9: 9:9: 93:/9:9:9':9#: 9:$9: 9:$9:9 ROJIJIJC     $ >   $o  - 2XW 3$<IPO  $  $  3   W % %   r$P       $' #$$EP    D 2(1 2121         $ 7 '  \x   $  X )#Hd  AB KF KJ A8  ,2R\8    ~7   2 j # *:9:9#    #C : 9:9:9 &(  ..(&&& ';    >---):9:9: 9:9I:9+:94:9 *9    8  ;>    L YR  1  +++ %       &      '    %  ,%      "+"9@   3         ( k %    3  B         ,   B9c  f       O  %(   f8`  %)   (     $ #   %)*     %,8 9       0  ;!&    d  & @ Jjv,< b0 /~ ghi lkpolkpolip_(4 => 0=65 ND  ? 5&*     <;   `_`_$    l0/0 /H  8> H$   .-. -         #,+, +$  ! $V& x wc0       16' X  c!^ Lh4 ~#0  Qxwxwx w ;< A V    -  > d   6   .* )        $ ( '     """ "(t Z,"& %~ 56 4= N       G  "$#"&%& %   $$#$ #  X&& p og0         27' Y  g&,` &Lj4&x&&& &04&popop o 9:   K R 2          & w& " !       (D2      (( n mgF       (,v (L4(( (0(nmnmn m 9:   K R 2  0( !             *   ,:, DZ,p57,Jx  7 >    * $   ,$  , W&. h g_.       ' +'C  _.,T .L^4.l.t... .0G.Vhgh g GH     k r2.   9+  *6  !? , .    % 0          2$2  4$4  F8d% ,#1]8 +,+,+2,0+,2+, 2 $        202m8^]^ ]|  %     |28^]^]^]#^]^]^]^ ]^]^]^] ^]D^]^]   .-   (  J"        #              D  @8^]O /O8$.A 8x%&  1| %  x   88+"        8-=e xwv u+xw z :?B         % -  U| -   /  +                      ! `_`_  '8 ):9*'    68@-  ( :,\[\[\[( HG      f9HGR[\C@) 6#  T  $.G  ,  fX: \ [\[ \[     <X N  # :'    5:     $ EIJ IJ -v uv u!#  ^ DO'M` /  .,- #(4 ! F/%,H7- %  ' $6 9         $     !" %  $ #  #$ ),   6  `_           0 HGH EF CD AB 21                             `i_`#_`   5  F #3     /   .60- .+ '!  zS=   `_`_    @?@?@?  .@?@?@? !\_  Q   *$12          ?PQ.B                           ( Ul*  )56  + [                    '1 !(!q *    ?`(_`_`" +         ! ,  -")P QHD   MQF      %. 0           $         h!!M HD    1 E     `$_` _`_`_`     &,     <       dY  2! 0 *     K      9 Td"3, ;(1;  N*$  l           , !@K?@ ?@?@ ?@?@?@?@?@ &'          &n  %_>=&#"%#.9  2   2 1&D  34-8 7.H  a\[`gd   ( @ 5@v?@d? 2cr3 &      C- >U    R#  %    --m          d`_`_  GQ:5 NS6   u~    ]  !.9  $9 / L" ]o#      /NH3   O H -  L          b - L  .    /      *..  / 6     zP           OP  /0%/Yv%Z    : Z c+@?@? G  0/7 / ; KN     @?@? /        GH (   342?0 ?[lyb ah  $   /W\YBGAtspo  '26# y%H34/    7BQ R  $@?@?@?%$HVQ* b_bU&3&/ &%    q  @7IL& B9 7#/o_ `_``_`$=          ' G)E   ! $9E`_`_$ C^2  *    (    pe "    ' `(    +!  &fef9P1 LV* &B 9#* * QBK &Jm!%_;U +Q  +ts3    ! Y       VW )    *          /"  n]<" -   [     U  +Q I.4) rstqtq   (    .  ) a0F   %       0/ 2/0/           R    %  }            @M?@?@ -         S - '    !#a   CDADCD 1n @$C>     # GGGGG@5 G 787  & :    D        9(  _0- %0  G   @81 adc  & ^          A    :%0  %3   1   %3$  46  @?@?@        @?@?@       @?@?@        &       FE  R Q>   @jefg  3434 ^WXH  2       >?        N\WX[#&  [\ [\2M)AB?>B0)J    W       `_` _   ` _`_     !$#& `'_`_`_7@?> =B 7:9DCB   `)_`_`_Yba` _H Y\[feH"       `_`_        `_`_`_  @?+  @?   (4    `,_`_#  `O_`_" C P  I$@"    `M_`_  IJIJ IX  |uX')   `L_`_  IJIJ IX  |u')   @8?  IJIJ IX  @:?  IJIJ IX   O  IJIJ IX $   T +*)05256;B    @?@?    &@?@? %U h      2 #('(''zQ ( '('(' P d        ,| Q  &%(1 (% D #  @?@? UR UP % R7:9 &%(1 (%8D #   Y #EHG &%(1 (%FD #  !  #  #!% -   " F!  #  #!$ -   ! F)2h   !   * $     3 + 8D% !  5%!  S/ ) #6  }     1  &%#$1 #&% 1%      '     E  &%#$1 #&%1%      ;   #  -.'(7:36   @?    $<   % 8  (   @ ?@ ?      k   )*129U * '5   $  (&1 (&' "&'1 &'% /" 7] O     ,))$     !               @X?@ ?Q  &    ' =$^ Q     / !  !  !  !  ' )   *  (              /N  (     &% &1  &'     &%(1 (%  PP 5)#E        w       & 9 &%>#$1 4#&%89 &%&  1 &    8 9#:&%: Eg(#&% ,:a<  &%  &1   &'                  ?)    !          !        ) +uGW+  g$#%!!a-&'                    53  '!        0! C (  G &%>#$1 4#&%F    &%(1 ('  %# !     *    +   30  !   &%  1   )   &%  1   %   8=  F/        >  1 4  '     &%  1  '  ( .% %%  '!!#        .          !  u   v  S  /            &% 1         &%(1 ('    & W! !!        6          ** S% " D  `!   ;Y&" I   !k{)?  ;  ! "/03l   5 \ `)W;  !  !<'("569R  L 2 AB{)Z  ;  ! $73 (P!$ J         D3  `U   T5> ([ G$p0j6523     [q9/$      Q!2   5 P  ' #4        ?E, +        ) E  5H&    #-hD  &4&4d$ BA0t   0  00%(! "% &   (  Z(1"     on[ ^ \?>1 4 ioN  "$  ;  +   _?>1 4T  ( "    9   @?@?@?8   %3Q t  *"m '   < P . "       0 %   4D  8   4321 $#    I#&%"%";L  '$ [ h.1gh,h.'58    PQTst  gh              II'W &G% #    >      4  ,  b            \         !!    ,%          N  - "( C!               /  S  51 +,  >F X        ;     "   G[       ?>1 4               8!2&          ,       GM ; >    ?>1 4              #8! 2               U                                          &) &   "      ) R h             *    i            B   1               )I   5               i,  +  +  + +                 1);&   0    =" 2z  J%# $%':/         #    #   ?    # 1    #  !"!!6=0/  ) !  X *)"!*;>5(!"!"  *+! %           ]  +2I 1% % %   5      d     ~          % " 7 4;   &1     G6*)             21.%  .-2   (  %  #$ #-V   \            W#-  #!"-!$!" $   !D &            u   @?@?  #Q 3<; <;<       M  ?>1 4        ?>1 4  1   ;,        _      ?  ?ZQ FCFE  @=<985*"| n}    o`aban' %_p   ql ` QT <n'%_p*U*  #7  #7  #-          1 %3>59   ~ )  "OojB?7'     <1 2   cpoXUEF496;1dk9,  2*   C~  2$#*   7434/ 27   '&% #     $U N1 "#$   #~5  q ('+('V   $    IJIJ IX  2 3   1  H!4I"7F?1  $<(  <*$ +k  +V     $     P=& +%=?>1 4" % !  *   %=G:     +      ?>1 4 #              #  0      0        '              T O      $ ) 4      '     B  K    >,s       [hQnY\[^ _ b  fe /\+  -# )[ H    #    H          'Q ,  /O 3  F             <  '('+ <  '('+  21 <  '(' ; q$  '( #     %     -    (                           -                   f  C8"M   E  HE ! "G9          '  Q ,  /O 3  F     "6   <*/!*/0Y". 1  40- a,       ST MN  1 D         5      ^;.2 .  1             VSX9"           '(XW (43   14 z"H4{*4]*8   fe28a^e   ba^7PE!       - *'# -% G;,;," . % !      &%& %z  <          ,>   N   P A0POP K   ,  * A%\   #p{# t;RMV      O.!`_`_   F! $$   !" $? /" ! ^ < CH   " !      U   " 2< COn     = t   uYnet   B5 u_M  G      e  { ts lBC5 f "!IG       .                  # } 0     >%        #  '  .       ) ;    q   (  @?@?   53      17     z A5  -*& 2+   A5 ,    #) ,G ,         : , *(           !   (p   "{ n      I   T GHG@GF   ? >    ,  "YL  /3/  .4&           u| { A  H     0 !   1  &  1 &4  @?@? Zyzyxwvuts FIDGBE@C        @?@?#$        #@n?@?@F?  MPQP  &-.   QR '  ^ 2 B  V\ , '   4 +  3n5P- 3OjF ,! #+-+  A9 `'_`_  /x?Z ) /Yt  T $#   2 /]= X                                D /  *      00&/:3:E+0@?@ ?  !    ( @?@?@       @?@ ?@      6(J.-, +3    \CD7!    (       (    #*)0;B587>I DGF [ VYXi dgfw rut     +    "!$%('*),-0/214587:9<;>?    }/#Y//                                           xwtil[^MP?B14#&  $ NS& =D w~            xwtil[^MP?B14#&{\vv               "!$#&%?xuhbZL<,Y     V $%    X   H  $    $O! '        A[d]^cf_`    'A            H      a      a3*                                                                   \           P                          @  &%&'(1 &'()I &%&pH(1 &pH()H  &%&po1 &po'  &%*%(1 *%()I &%*%H(1 *%H()H  &%&|{1 &|{'                 &%(1 ( &%(1 (%     d UQ\ XP & L O a ( ; %  + +"'-+$   ',&7: 9 <%1#$  Y                            %& %& \*)*),+,+ .-.-P0/0/ 2121436 96 9676565<  ;BABA@/    7                (                       !      &%&1 &'                 o   8 /# $U+ #7         (  !Y* $       ,09$       " > %  !    WJ   (   " >H   ,   6             D fefefe dcdcdcdc  H % A  0 6 D       0        WF f       &# > $y%* cf_`ef_`mpijopij %*5   6;  <,  9 -@?@?   @?@? #     #  ,    ]`_                           }~{|yH!  '2 ~U r%!                  -#+<D66 3 1        $_  )&%(' N   ;"/X   '= f $ "  %!'))%+--"!")/11&%&-3 "              q Kz nq F^    G &%>#$1 4#&%F &      c   Z .#+           @?@?      "    # "`_`_           bU`S 9    "{  &  j     H        #  6>$          [      ID CD  -Ch-    + G    u|{               PI )JI            5a,7")  (    " !$ #$#& %&%A(0W $  # F      nk`[ ZU -G/    $#  G    +  !  J 4       -    4K  B- H/ C %0  C%        '         /                     GJ IN Y\ [^UXWZ ej ijilknmnmpor }wzq K!1       `R  $ . 2     '       / "!"! $#&%('*),+.-0/214365            ( !  !    G  ! ,$'( 4  ."     ( !! S @ d           )) C7d  N `        '3A  "  3%  # "          \[   !    %  $          $  .4>5     .6   @E?@ ?  *     L           "   +      # ,-0+.),'*%(#&!$"     FI %4           $~ $    s &3        ! "  &3D**(  )))) ) s 2                 l$ 2     .     =     @Q 6Q    %$#"! %  RL.  & 2   # %  ;TILEL?  DI P  ,  ;p9R  mpirc  jm vG Ja $   $ )    @ ?@?@? *   .4 .-".-       " F"  &' #   :    % :!.      %  *  %0H(V%(' ('P$ #(     !              P (o('_   !  y    _!  $; 2 Q 7"  3='6 5S      -' SS  *6 5jkRYZY>=          7"/   &  %#-!W$n 'WP    @'3"#   JA   B      ] %0!1 m9Fo'+'#Ccd0BH(|'5  6 5,+,+, +,+:6 5,+*)^,+]*)H * )./)2  5<=> @+*=0+0+ @+  4+ (+   <+87 D++  @+  @+'(  ./  O` $O FO.5         5  <   $:[ =R('T  5 " -      0 36  A2         nWV      )*"!$  M (.# ./            _y S    (.# ./  # # 1      L u~ \B+> <@&" . 0            1!! "-+!F$- I@[# 0%    ('   '2-0 9  < %4 3 6;E>  EJH#GH$K L2! Q T"S n! R  @  u       "'   !$#6&%D(+G212 143^69]@?H ,+&  #   3hA ,+, +,+,+*)*)k !(  ..(, 8 $R!      P87878 7878 7        #"! 5R %R  10/0/4[\)$#$#$#. ef7212121< Y$ $qJ5(0q>45 9-     /L1+F '/    `j_`_` _`_`_`)_`_`_`_`_`_`_`_`_87X              aX@ ?@?L`_`_` rx  . , 3X    !    u     !<;    `*_`_   @#?@?     B     !_F G &%#$1 #&%F  6  '6  Q ,%  C     !   _  F  eu    )47. -.C@)@A @?J     0 ]%"    '`/_` _- @$?@ ? 0 W2    "    =/&  9 # 5#:1    !         W0X[0f""00+  8   8    }~yz) +)      &=T(q3  |                 e     &         ;  &  0     Q      5     1   g    )  % X('(%&'('('('('A( '( '3( '( '&%&%&%KK  p8    \  " s                             & utm nS !   pq  {p% ~P3   S 0 &   T8C 8@ S $"# 3  +,+ + >X'              A      A 'G    8V?=]j *Y ('( '( '('( '( 'A( '2 1 ,+           zo zm ;, " 7!<d  6)$;B'!    K1 - nm-w3U>8\%     /   "V     ( &   BL+, #        A  Z ('( 'N '(  ..(    0= N *)*)*)*)*)*)*)*)*)*)*)*)*)*)*)*) yz  $   $   $   $   $   $   $   $                  ! @?@?@   JIJI @?@?@  $           N M \ [4       A 2            ^]^]^ ]`_      @(?@?@     0            vuvuv uxw  ,+ 21 4=     ! 4 3 4 304 3  4 3 &4 3 4 384 3  4 3 &4 3 4 3GAD=> @G &%"#$1 "#&%F? Sb[\     h l       p    ( \       `    (    C     ! D     ! ,% @   B " #  - B "#      !       0        8  $!$  #$  #$'$%(  %&%& @ {"4 3 4 3/2 W  y~   q   ru%   $>     /2  }9 .-0  /0/ .-*0  /0 /0 / 0  /0 /0 /0$/&(  ..(& %(  ..(%%(  ..(%  &(  ..(&&(  ..(& +d8>9d50 5252L  (* )   *+.- >=4 3@)L=0   #  = &   & '   " KN  )  +  y|     .        %  L    8 %o^ X*)C  K  # C5    = + 4 1  , )  #,      =8  ) .-0  /0/0 / 0/0/0 /.-.- .- N    (  ..(  (  ..(  ((((  ..(        &%(1 (%  + +.,) L547 > #$      (',+ 0/4  3N@4?@?@?@?@D?@?@"?@?@?@?+    t  x               KZ<,+     k4 34 3=         6     /`#_`_  )  `!_`_`_     %4 34 3     (    /  !     # 9     5O %+.^4 34 3b4 3    49@    (Kr  Biz  )8A3  8  ! 8 %$1 F # - =   ( S    5*  " .     7 .-   ]     `1_`_   `"_`_   D..-. -.-wy zid$.   o  /   A +      /e-    +    -VA  /"    =( > =W        3 $   + (  W  A2    ( / :7:-   3_      A2 '  b@                 !    &'b          C       , +       `_`    `_`  .     0     #&    " @ ht@ g<;<;"hBghg:p # IJIJ78   3::7 &'( *-!* l *4:   Bg"%   :+  6* *j i  )        ) @  4 1   -.'&a>"! 7 8 ;-~ p 4- > *   )   ) _J                  #_`_`        7& b !    )         #    6 HGHI   %   ?EP^_fe        ! /  ?    E@  S"!    N- ) Sj   ,+ ,+, +,+ +& xw    u)C=       ] . C,+,+,+,+,+  ,)  &'' N C     # )   ,!*   )]$ #('$#('C 0$ #9<           # "?           C 0 O$ #( '$#( ',+,+,+, + ,+,+,+,+!$ #XU^9<  gj   $       # )                    ! & % & %@$#$  % &+<  OVW    n71 0'  !     Rd,+?& %S, +-  *  K6 A84      pv  &    -     7 M A) )d? S -w  (         (X " ! !"!  ,"! 79<9<  !F !     ,   Y a\   %)    ;l`_`_t    IA$ ! 8@T K$ #))    +/! (*T K )}+24*   &$ #)$ #+$ #   &% 1          A @+     !      & ) + LF$,+$ # $ #-    4p      N   &%&1 &' r &% q1 qqFNI     qv"  CcF[ v 7C( .'5/  # ' $   -          4p\   1(   $K  X  ,} 0K  t         7 " (-" ,  - i   0  K  ;.   &%&'(1 &'(% *    !3 L    x ##   ;0 `Q   B0   FE $    &%1  r=29     %^ "![ " '!  / % "%Q   B      03'$ #   *  ' GT %"#('o( '/('('( '(''( '           1J            1 <2 \     #  f / '     $ #$ #$ #$ #$ #$ # "" !  " 0 = > ; ( "! $# &%   8 - 4 4 3 4   *          *%,,+  ,  3           @'?@?      "            PVWTURSTSPQRQNOPOLMNMJKLKHIJI  !      ?&  $7 :FEHCFAD?B=@;>9<7:78787*)&'[ @<74S ~%        ,7  r         }!"  =(  )) V( j -                e -           =w  @Q 6O   %$#"! %   ip      $ z       ;N    !a2# &            9 & P 3    `_DV           ! (%  7" N **2(  ..(* } )(  ..()kl(_(#    / cu~     5     7"!"$ #N@,?.lMPO^9 ). @*?)  *&  y*--%  "#&+./27:;>CFGJORSV[^_bgjknorsvwz{~  '   70# )<0#!    3       -C =  >  *    ACESUKYSc]mgwq{]?  "#&+./27:;>CFGJORSV[^_bgjknorsv{  3    )9=  " !$% (),+ F /&DoHq LsPu    x:        1"436587:9<; >={ {<@       r }    "!$#&%(' *)$)R !  [#      wC B0"#      \W   "              $ E           /  *          '       + gjz G    ldb`B        -     .  t-/  (!*$#&,-    /u-.  !+$#',-    .l-1  '"$#'-     1m-0  MO#$#'-     0\ - eo  '%    -    $d %   :5   #    i Pq ZF   #  )*-. "34#&789:),=>-0AB14EF587:KL;>OPQRADUVEHYZIL]^MPORcdSVghijY\mn]`     @B>>>:<6<2 <R:R:R:R8R8R>       "!$#&%('*),+.-0/21436587:9<;>=@?BADCFEHG`_  @B>>>:<6<2 <R:R:R:R8R8R>      "!$#&%('*),+.-0/k%! K    CF 5    d+u#! K:   5B  ZK    ''aD  * F i %('*)   #- H UP' ' a))) ) ^          &%:/'&C> CD)'P  (  /. "   FBD  ^       5d 2+A~ > +    sbadcvu   9     $  !, !$! W,,        K  1     `_`_ Z1 :  ,r  W `   " 05 8 p k      W G           /X+     f5+     -    po  ^b !"!"!"  ut 32a 4 '      -  + *+    "!       % '+ *+   `#_`_`     ~ _ %!    6 $psrq  $%    '  X 9 %A)  0    $     -  0$l     4$#  5     s   #*%,'.  i!,         (   T6' ,  n5P &%((. /        ~(      `  /wB9:7   %1@] & `/(      a  .     + 1@^ & a.   D %4`_`_`_@  - +j   @$?@?@ ?  7|CX   A  7   D 1@?@?    &        QfJ69KH69IF69GHGD69EFEB69CDC  v      @e m  @?D=@;>9<7:78787*)&') 674 MZ                ^i          9 (3% _ -          SFCH ~  F% %-     ( :9 @    -CG<-*bm  Xk  HI 2? $/ ! G O%#%# (  2   T 5     A D  O@YT i .d*3    46@  > k ]  (?.#(       W: (+   <<a> @  > k ]tm" T\WJIW  p        "!$#&%( (   / 2        ?`>_`_`_`_                      (                %G4        +.-0/214587:; `_`_ $    ;C  |        %$     143658          *" +FG#. U+ #&     7  5<=:C@?@9 G   f*l]f 2&2 -u~   A*(-    |yz}rspst}       2dgdk              > n   qx wxwxwLK    LM x qJ!%                     5l $#   $   }~ }dcdcd UV  ,  #                 5   BR n  /9@?41:     y|{?^ hef     1 `W_?e rqr      3 `K_`_{      7 `I_`_      9    6 xwvux        4       6          4       q?       39  " l?s      17      F1Njghc   R[ )?1% 8v.+, +   0 8   9b  X =         N+ 3 6 ?@ *:A&1              ; ~  )   8       '& 9b  X  =     * + !W      Y$*   3hb%I   s     H qt  )        I%LN A    W$Z9   t#/   ,  &(0#  % 9 $ !         ^ @!?@?4)N *)8|()"*)R   V[ Z[ ZYR[  NG>E   W@/ B W>QJ!"!"! !"!"!"YF)2     %- |"  JI                #$# '( ('  '(' -.+,! ,+ " +,!"+ "12/0% 0/ & /0%&/ &5634) 43 * 34)*3 *9:78- 87 . 78-.7 .=>;<1 <; 2 ;<12; 2AB?@5 @? 6 ?@56?  $  %               9DB'^     8  %3%[       # !. &]y : %Q! &5&'    cb[^6                      \                              !           V-  !  73 J^$a  ?F?@94    Q  VI f  sxqrkf ? ^ 8" f&&   & B; %%' q     A1h.      ?X h  " >Y    /F     %D`6_` _`_`_    S  >      +.$f                 a7 " +Y   ;    E ` 00         &  B;   !ji}     c           I@V      F" a@>w&& #   puZ_!<Ak      Q      W@  /x $0 RI@?   )  = @)   2/ )&DCB     %  ghc.1 %FO &@9   " / 6QR   [ +'M F . @?@ ?@ ?@ ?@?       1 @M& % A'Z     4                    \`   Z                                                                                                      w "w                 " !$ #& %#k  D          + (H ")7  |  'y       * #[ %0+0@   =    8(= D  a%  " 7@'a%@88 (    #     C'1/""     M   2    1i @?47 +,{9870 )6?*v #.Wtr-,#S/> / "   M ': Z VK/    m<UV 9  9<3 # \M.-?/<d -"0Z M ': Z@JV` p          0 p    @2QT   V    ' #  $  D @ 1H'%    '     Z- 1Z%    DD@F143>  ( -:9.-.-.5 Q>*Yl  %kr   2 KF<DZDD@|  2  UV  mdcn mt  ]X k *     4 2       + (  S   b     ' )  *    - 55%`G_(   9>L4 /   RFX 7   j                                           ! ! &&`_       0 HGH EF CD AB ?@ =               ,b,,V,         ~~}       HKHG  ^e^]  >?>=  TUTS nqnmfTBIJIJ EX     %   &       3! 2  TB$//IJIJ IX$    >    $/I D KIJIJ IX@    D#" D\.(    _?,       '    5  <+N43'V  !  6 N'% +#   ?J %.r$#$#)$#4$ #$ #  .4  7 #', r)4   @*?@?8 +$#$#$#$#  " $    %!$#;$ #      "; @5?@?@?@&?$#$#$ #$#$ #?$#$#    i$?  B` (), 7  <;Ad 1,+Q }65* 65?6 5165656565  43 o p   'H       u^]\  ]Z M   <; 836 {(]( ]D KE}*-3C   " k 5: $% " 7Q }*   ? 1      G "$    "$;      656565    '0656565654  # r qr q! |     : !    +  r qD>      !) D;7\24343#43434343)HEFE } 3         m zqr   ! &06 =/#));Y^(]^]^]^ ]^]^]^]^]R QZ Y" !R Q\Z Y`" !   !         )    ,?>=@E,987:-,3214 7   %' #x;1&%&%Yt      ct mtYtYt%,-)U -  ) !$i  :X Z Z 5  g&    + !  > =   )  +  <Y(     \ ` ? $r qrqmrq  vs ZYZW )<(MP        x A !+ .  + -    $             n      @  2   9T     +   ' b 3   ;   D#  g@LX     $ ?0/0/T  B% G8787       78 CB;2 >CB)  *)  *)  *)(;         J   (   E>TId   0'  Ji3W>'  6z  C  E    $ <' !42  " q   /Uf "       !+  &=/ U) % '$ #  "%:[%0r       !  S   &d     1 !             {  i ! 1 ! [< n m, +,+C 01  L;        18      #E% ?' 0[+  -   C G           n           3   ]$:  nR    *       +/ '  *(((((((((((((    ] WP   xwv#S       jQ    %& DI /9: /9: i0   ST   i d&U!; 9    (   Z   #2 .& 6% 6M   ] WP  I     ! I        8 - $!   `_`_     3N 0/0/!0/       $   9:  "CD  / #:#7% N,7   0=,) !# 70 !W0/"! &  1 s .3 7 W7  /  8  /    A      :  &%& %&%&%&%&% &%    @-U:        u7    STU   HEFJ@?F  71VO? 7I2) LIJ  6347 dabS@7 2    Vc # !    cX?- )2@(% 4 :          *   I Gzy  ( G` = 1Sc.-B  C  .-.-.-c.-.-.- .-.-.- .-.-.-T    !" #$ ^[0  1  2?2 " !MLnm),p   YZYuYk 0x x"   ~}~}~> /0 O6  #,) /03<9 u(      -Y  W      6j-3#  ; & %  &0 M /     9 J   BCD  .           2     H      :    $-J      T34:k2     >  p OJKPkNMN #   ! F | [VW\YZYZ '   %V  gfchefef 3  )  snotkrqr B  z{k~}~ '   ! L  /   #   R Q   T SV U<H\ ",F7'"H +jiT"!"!.|#"!"!r  2 jg  1 '    n           ! _               +T.   # I' "  & # .   ' "" !"!" !  ?  -   7       % $ P       Af  hj LK L; N K !  99+ `   h          Q (! hg dc^ =IJIJ IX2 a) 3 ^}I"      "    0  (,   (- ("nmnmnmnmnm nmnmnm     %+$5>  "/      "nmnmnmnmnm nmnmnm &)%)? #'       * $(    B 1   , C    %( /, 21& 1 (  !=6 T L9 f&4  "(4' & @)?@ ?@?(\    >9@?@ ?@?zwxa  b+ (@!?@?@?(X\YZC Da94@?@?@?(PJGH12O5-    (('  $  -" @?@ ?@ ?@?@?CFE\   [8A5c (3<    ! 3<V(  . &#A@;8/.IHC @7  4QPK H?  <YXS PG  DER=J5B*             7,^ ' ,                 m      /(@  0)  '!  `_`)_`)_`_(                        o(  #  7        = G'1        @?@ ?@ ?@?(8* #2`_`_    ($ (T 5!    )$H/(X  {n wt }~wx      VP   Y"  8#("C('&%&  !w\4"',(  $ $ #Y/ 8(   z;=z  8 /8 )Az 9M` c|+  $ MC !&//= / CD4!     (<  !UYP(4                 8 C 7 9   " 0! < ) 4   I*L'* ,P  ,`_`_f  `_` _* SZ    ` *t      ' Rd *        ' "@!n *     1 X`       *  Q+  -e> *          /   JF0  lj      2 T3  1'8,p 0    ,&,  6 ,,H,^   $ % '  * ") 8 E,   '  $  #.   ,L    ,T  "],P&   )   P&.` _ B01  `.      N     .    a   >/(@b. 1 3  #   !  B  " . kl. abAM$.   N787.-. CF -   [T SN +14 38 7& %  $(-0 c        B("W      .  " " $9.34-            "#$2 !9=H  Un?*2/ s#.PZ&$p-+.      $ &&  / 06 3r q28   +    W % 6 3 2@J?@?@?@?@?@?@?@?0    f%  "0@"  %(%0    zcj l po & ); *d   < /   !  2     52`~ >  Cr.2    / P -( 2,   76W2NMTSF 4, d,E 6E >"#9*+*+ ,)     IM  $  . # + 8fZ)/& 1%+.-  &;        R    <2L+&  12P    'e 2       #(     T! .}48  l0        [o  6 8  l4 Z Yn   _49  x    ! )9  !K4 - YO cH    w 2  OJ4- Y-.Idab        It 8       = OA  "] 8p!$ -. -. -.  &  O*  !S8h9<EF EF EF     L"  !8 X lO8 # ]Ry|R   '  C  $T   V   H8`     C$ #  U        E8 V U }8      # &  "   !"8% &>   G:! >(   68H    !   8        8 V U       s:>  &%. 3@?FGHGHGHE  v#2` _< 0   F  a7        !&J 63 4A56/5 65 656@56/5 65 6562565 65 656 mxcp 8%8!cpo ZS RM N   zuvqr}zuvqr   ~yzuv }~yzuv   }~yz   ! ]D  (N"  6  $  .5)75)0 ) &  )  06                                      ,dJ"f3 4956        # X # M& @  #   X"5 %           odJf3 4956 21 12        ) ' X M! W@  X5 %             ^NTST4"        AHG-N     NT 4 V 3:9&    24NT 4T4 ` -.+  # *      :P? @@  Ek!     Qk ]kBP? @@  yk !    v/X 87 ~}~}87~}~} ~}~}~},LM b_RWjeRWXU RQROPM 5 &  &        Zf<Z 1212+,+,+, +!,+,<     "   !Z R Z 9@ q Z     : ORZ EF[      O [SZ EF^      O ^Zl            ):\t$2     .(\34 3 4:L\ b   \<v\4 H9> Q  E "0  . i (\L !( ?7^ MNMNMwM NMN " li    nk ! )   "   `O PvP  nk>b 9:9:343434 3!434B  X b ?F b$     b bx      ) Rb0   b     bt      b          b     AQb0             6  "&L@80 ? #        dt 2 d;< ; <d,H~d^    )  C1dz   )  $   %0 dL   dX  6d)*  " )F f T f !" f QR[GP   f QR^W`   ft      f        f           f               k,% h`_$        @< </" h0lzh`_`_h,  dhx   ?@;<78 7&* 00*/ h    _`[\WX WF:&  %5 K4 -&  h|yzuvqr    a^83&*&O'1h    zF*34G3h&H?'   &Nj/   y  ~C  ! / n@      n$  v  N     ;0vCD'CDCD CDCDCDCDZ=>=>[JG >E>C8?8=6-43    13   "/' Z[ 1v9:      @  2?n G    :v$$ ,v88 v(   v CDCDC D7CD=>.      Aj    e./v MNMN    #   $  @2?n   %                 *$     BA +L ,+, )* '( %& #$ !"     KL IJ GH EF C  P        XaZc\e ^K    !0      X                                        H        o    %I                 " !$ #& %( '* ), +. -014 30400 ! & %    5&%&% o9 )    &% &% , .    &%&%&%&%&%  `E_ 87 6 5   ts LK@.?@?@  $ $  4 $`._"*^    OxF(+GD(+EB(+CDC@(+ABA   `      >Z          8 A8 ?4 =2 ;0-.-.-VU&0S7 $4-. E<        P[            7(1# >           0                                                                                                    >  `  v   $  ! $           ^ )  &(   +   & 9 v      D  G 9 >$  D[(   $fj i wv z&{        *'  ^)"<2)$9  21 (!120+/ K  !5 ';L  <70- <!?@%/VKLC!0<i,>K  !   5&;L `_`_         * /?$7  =; *\ [.\ [3\ [\ [t  >!  1 , A DE2  !9    -7C;* . 3 f $U\ [L\ [.D Cp\ [ \ [ \ [ a Z F= ,1 j 6+   /;B   | { t K  xV #%   ;  L . p  4 D C\ [\ [      .      ' R   W '%z$  DCDC\ [\ [:9 :9!\ [65'\ [    5         #     (      ! ' 9DC$\ [\ [\ [      3 $   8[ N%hg\ [> \ [ \ [ \ [ \ [ \ [\ [\ [ \ [\ [\ [^\ [ \ [ \ [                 z             A(    @m        IE 7B,   ) 4#  !% >          " !^$ # & % ( ' !\ [434 343    5  7DCDC\ [ \ [ \ [              %\ [ D C\ [          'RS\OcR&R\ [F\ [Avu \[\ [  .  . ?@) C*' !1 6 /   A\11 &" % R F A  %} \ [t\ [    #   !$  '  t  V\ [M\ [ \ [    )    ![ -    M    \ [ \ [    11     /d  <@ @        &2&&2(#&2?D Cb a\[m\[\[@p0.]0.p0.-.?  &.00B.0.-$!  #.0.W$! #].0.-.-W 7op-.0.]opM  '.0.'''' )$#' \ 5 M *%  '%  )"%  <#/# /=5# (''#'%'%$?  m  @dDCDCG43f\ [\ [\ [\ [4( [ DC4343;\ [\ [\ [43g\ [\ [\ [DCH\ [      X   0 -%< /< % ;3(% l @{{t(  R= >   #  0  &%   %     f  %   C? *)4 C     g      >!\" 8    9  , #' 0  $Gf     ;   g   "!H$ # o1hg\ [\ [ \ [ \ [ \ [\ [\ [ \ [ \ [\ [\ [\ [\ [ \ [ \ [ \ [ \ [ \ [ \ [ \ [ \ [ \ [y\ [;\ [                                     1 G/"%  :      &     !                      !5! %                    " ! $ # & % ( ' * ) , + . -y0 /;2 1#\ [      / 1 0 / WX WX W0 /0 / X WX W2X W` 7812781278127812 7: 9< ;>+       NSVOP E>+ 0 ?Z  82        "4        W       2 WT Ozyc       >(    *eOc= 0 / X W X W!0 / X W         ? X &       ! SDb :!& . - .-. -. - V U V U .-.-VU.-.- . -VU3.- . -BlkV UD       " % & +        ! \  W  A c       ?7 &                  3  B    Q    ]  #      ZxwVU>VU V U&lkxw2xw)lk         _` uv u V < ]b    o  ; )  R . 93  3  NZ>  &    2 )  6   +eEw    ^ ]^]3^ ]^]2     cnqh    -/q  */S (rq#$ h xwF01287a9 ` F8g19:0/} 58'[/I/v!u5Y 9 G   )%    -$w /     ,E               8 lErqn     2 ES+0 ( ')*P OP O+( '( 'POP OP O"P OB    ;^% ] JI >   #$#  De b _N  ; 0  7  )    )*  +    " B  !zF5    & .  :   fD '$!D0   #l!   v Z Y  121  (U21X #  A&   IHOP#<n +v )_ u TSTS         "      ) $ X#.2  7TST S^    ^t T ST ST ST STSe 8 7 ( ( %&'!   (      e@?@?@?@?8   6* 54        F  E & XnUM8  < m @ r ""+(  ..("    >"(  ..("   9a @"   5  %     < k @ r/VqYY ZY( '7N M ,=    6 ?DD 6%    ;    7     `_!'NK    % ".-*' A             & %S,V O#  ,+          F       # &MNk\"  >    &wx       -#   !<& -%,    # u Z -  D>&XYZY ZYZW*N M     *   .    >9*    m  l <_  ^ab;<!Srq L "    2  4    ! !& * iu    .  7' TSTST SRTS + HA    /!  R@   1/" TSTSTSTST ST S7TS  @?:       ]6   )   7-  3. R9 "!  "!      !#       ) 4#d&d 6Ik  B5 $ #L KL K$ # L K n                 o< VnmL K#nmP 4 7     A. G <!  45 * 3 .= e,67 2)DV #P .  / Tnm       # OTfe#  #`_` _fe   !dA  $ #$#$#$ # $ # X W$#$#$#$#$ #X W$#$#$#$#$# $#$#$#         E 9@                 :#$#$ #$#$#$#$#$#$# `6_`$_`$_`_`_$#$#$ #$W X$#$" E$#$" E $" E >*-                   N X  NMF MFE NMF MFE NMF MFEH  YWX ECD 1/0         =           H$#$#     `_`_X W      P      )D9   %$#$#    # fe%  "% J +  (< ;@L K8L K}<;  $!HG   2+$  '     0 C   $1JD8n 3 #?&\( @ 8  Y: +!(  $#$#      0  27TW MNX  N MNEN MNEN MFEL KLKL K)L K.L K0 3            @: >  -  ','  _ &A"_ " "   / T           )  ! H2?PL K%&%&%?nm@nmnnm.& %(        $  WZ   WZ   )         '  WZ  $  <T!   & " ]G  / 8 1P %  ?@n.(&    ,#  /  )  (  * ZYX WR ML K  efX WR W!V!W$   % hde  R    `_`_`   fy C  f        j N          $   &  *   `GPE      b   /M  m%v!!" t3R,   . L   (>JVh h I&),C   lk m4oq:5u@w""yFK6         >;*'zw          "b  6Z JF:2q:6]\IH54#& &'2/85HE        < >^$ :^0 .U" "I"&=<10%$R    U 9U7U 5U"3K6   u      12A"  8;6    8, ^      $   " )*#&   #,  6  /")uv )  ()+% D   ."'25< 9  . )0 G$++4% D   CE7b abaKba  ? BABM6    7 KY     "    a    'E\<-=p| {o {| {o {| poA&   ,=> ?   0M  . KR  # M 9   , =       A    *I    !  I  %##xp| {o {| {o {| po        $ !4A#2.   +Lx       (             4%1 )5F @2J D2 E\[\[? , "    ? P  ! <'**   7      <   $  M                    @?@?        9   ($ . VU       " !$%( ), 14 7: =@ ?B 7    !  e '   + L         `_`_     ! :    &               &    +  l| {k{| {k{| lk: . : / )    D      ./      :O0  3>   W $ Y232O c\IL     4        : . : " )   B ! #$?   I + V  ! &+ + VS&  -    "  DXWXWXWXW6IJIJ I H%  #    D 1 T " ';a    5!!  @3?@ ?    4  2   ! "@?@?@?   -)8$f($! o   6? *)2stst  <#@7  )  51dg3)6     1 J<}o-  IR'% 9 !       (0B;  ,*>g%      PQ LQ>=R;W   RKLKJIJ Zc (%&+ 65,+         U Z    % I PE +l[D?   % " ' */%  "#&%(),5+H   Kg       {      b  P  \  G   G  k  G   \  E  G  L  4   G  G  G  H  X  t  M     \[\[\[(ZYaZ YBZYZYnZYZYZYZYpZY \[cZYZY\[ZYZYX IZYZYZY                        0   AR     O   n #        ]     9wt     [   ,          c   9   '   3      *   )      &         #   $            /       $   ,3  "# #*  2  *  7#  $$'  (#+ ,&- 0& 3 657:&; >& 3:.&E H%K L( 5)6 3 P&Q T&U X'Y \* a b%a d c f#ij*75(      4  > >+ >   $# &>%('*>),>+.-0>/ 2>14>3/6=5 8>7,:=9 <:; >>=@>?$#B>A D>C F>E H>GJIJ ILK P>OR =S NM   X  P   (   % =@             -9  ZYZYZ Y%Z Y         !    % z     1    ''>= 8 TSTSTS!  IJIJ     !&  ! f           E(3 G6, (   )     ! % !~  @?JIJI$  KJ    = /S > G )   ATSTSTS( IJIJ  )'(p<H ZYZYjZYZYZYZYZY      dg`c Z[VQNO8S:FG@C03"#GBAN (+ $  #4   q V      \     % +  &   $  &>        >H>`  3PO TSTSTSIJIJ      /   !T   5   p; (% 'c 1  $    : !> s.K  $ TSTSTS PO&      IJIJ       9z  6   &  ,Pc V!      I     (c ="G*TSTSTS   IJIJ   +  .5   A         "*70> CI POTSTST[\[\[\[\[\[\YZY!ZY   IJIJ G#  #  \      8%"               N     T'#R  h TSTSTSQ IJIJ   *& 9    PO  !PTSTSTSQTSTSTS0 =*2S   &IJIJ  IJIJQX  .wK[ !.                  P/, =8           ETSTSTS+IJIJ  , +^ nk 1KQ7TSTSTS IJIJ  'G TSTSTS&      IJIJ       r&        H ++$ #   X  ] L ( % "2/0    =@ ?B AD GJ KN OR QX Y`   E   T on {GH    43        * 3qr cd ,    $U         &d @ 6 ) P . # / La$;H#    5 "! # X   ]      !  ]  :  )  $  1     95 ' tqrk  hi             =Ti   O%        )       95 ' ^  b&     > $          6(               \!    9<"9<    %+ O   r A3AAD38:   %!: K>   $       g7     #   2   & [ 8  . 7 fQ? 7  +        +   Z    3        F            P  2      %          "    " J  +< V== %. X_ AB23 B)   nijg        VU "!   0G">U  <+6 ruvm          jiBAB1           +T%     w     S;  cmB  l>_  &   & ("& "1" .*  ) (8+.#&/ (11 J  + <    V== %  .            %*+ 8   .E" - <`   !             O    r#    T  !" #$  %&  '(     /   / c ## ]4 " - 3       ^  ! %             c&  )                    1#, 4     )   #  E {                        G"  > +x  E { ax   !A*     _        F   <JI;   6#     .         '('* #$"E   X <8.     <;|  NE  D'   "i` mn   ef  y %  3 %  <7&o! *`  406   &  =   T   U h    4LS=   ,7!                             w z m p g }!            ]2$ 1[R ) !$>  \          F     &~     - G      +[V   Sf '  -  > 5T:   E-  ) (R ) !$>  \   >D v                                     U& Gv            $%       )  \6 #%  ? #B   5;  B(_ $$u8( L)                       t , & $  (  &12u8( L)  S         /0     ! } g D L2     # 1h            '   cY %#  #1hm|   c   5 $ !                   1      5    _ C $ !  & ZY2 {"ZYZ0 / YZ 0 /8Y'ZY4     ( ##  ! /#      8' |Z 0 /YZ0 /YZYZYZYZYZY ZY/  1T~'R          Z 0 /YZ0 / YZYZYZYZYZYZYZY )   +  :3>3* $  8            Z 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZYZ0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZYZ0 / YZYZYZYZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZYZ YZ 0 / YZYZYZ0 / YZYZYZYZYZ YZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZ0 / YZYZYZ YZYZ YZY S    U  k    q }          $ #0    6 5>    D CT    Z Yj    p o|     O     O      O     q v   up  q}p }d   c^  qk^ kH   C>  1> OK> O  C>  1> OK> K  =8  qE8 E,   &  -q3& 3"   +   )   ,   +   ,   ,   -   ,   .  !   %   ".  ".  "-  %  %  ". " M < N M N N M N M @ "G"Q"Q"P"@ "C"Q"E                          !"!"  !"' !"!('*   +,+,  +,1*+,+214   5656  56;4565<;>   ?@?@  ?@E>?@?FEH   IJIJ  IJOHIJIPOR   STST  STYRSTSZY\]\  ]^]^  ]^efe\]^]d  efefef  efmnmdefefml  mnmnmn  mnstmnmn mtsxwv  wxwxwx  wx}~wxwx w~}                                       ZYZY   $ZY   +$ x ZYZ0 /0 /8YZY     (     !   #     8 '&ZY  -&     ( ) ZY -4     ( ?.1 #Z 0 / YZYZ0 / YZYZYZYZYZY    ]^_`  cdqgh ghgVW8   1!L #      MT     ( _NQel     ( wfi ZYZYZ0 / YZYZ0 / YZYZYZYZYZYZYZY u{    uvu x-  #  &!F      "ZY   )" Z0 /0 /8YZY    ( '  !   #     8{     ( [f       EP            ( /6y     (          z ZYZ0 /YZ0 / YZYZYZYZYc   e   C       =    (      (  75    5      (      O0Z YZYZY ZY  L)  0    b[     ( Pa^     Q                                        i    K  O  w    H  S  V  G  d       `_ ` _`_`_`_`_`_`_$`_%`_ `_`_`_`_`_`_`_ `_ `_`_`_ `_`_`_`_`_`_`_`_`_`_`_`_ `_`_`_^`_`_`_D`_`_`_`_`_`_ `_`_(`_`_`!_A`_`_=` _`_`_`_`_`_ `_`_G`_`_`_`_`_ `_`_` _`_`T `_`_  6- 6  "6- 6/0    6- 66  CDKfWzyERrw_()'QtLLR;drCQauTq6- ` 6- 6~ 6- 66;bY b ?8  6- 6#V[g 6- 6   ;   O I  ex=  B F E      E =   9 M ; 8 ,  #    C   r  4 !&!#4$4A!&  1+&! .- !         $ %   "!& '*) ,+./0/21 436587: 783<;>=@ABADCFGHG JKLKNM^R OPUDPOXWZ WXWXWXW XW^ [(\[`af cAhg jk=d cnmp mnmnmnm nmrqGtsv stststs tsz wx{z }xS            Z 0 / YZYZ0 / YZYZYZYZYZ0 /YZ0 /YZYZYZ 0 / YZ0 / YZYZYZYZY                    7      e?P                        bZYZ0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZYZ0 / YZYZYZYZYZYZ 0 / YZYZYZ0 / YZYZYZYZYZ YZ 0 / YZYZYZ0 / YZYZYZYZYZ YZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZ0 / YZYZYZ YZYZ YZbY                         q      q r4   n  qn ZL   V  qV NX    J  qJ <j   8  q8 .x   *  q*      q      q     \&  !   %  %  %  ".  ".  "-  "-  #-  ".  "-  ". "" @ "F"@ "B"Q"Q"P"P#Q"Q"P"Q"E]                                #$# "  #$#$#$  #$)*#$#$ #*).-,  -.-.-.  -.34-.-. -43876  787878  78=>7878 7>=BA@  ABABAB  ABGHABAB AHGLKJ  KLILKL  KLQRKLKL KRQVUT  UVUVUV  UV[\UVUV U\[`_^  _`_`_`  _`ef_`_` _fejih  ijijij  ijopijij ipotsr  stst  szstst szy| {|                  ( l Z 0 /0 //YZY          6     /        (       { ZYZ0 /YZ0 / YZYZYZYZY          C              (                 (         (        (       ( Y`_ ` _`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_`_ `_`_`_`_ `_`_`_`_I`_`_=`_      6- 6           >  6- 6           6- 6   z    k)$      #$'p 6- 6 psD 6- 6 B  - 6  6- 6     cXQ         @ Q  \- [DW    {|70  O  C,  (d MA              "#$#&%('*). +2  / 4 3:  7<=>= @ABADEFEI8+HI=                ~ ZYZ0 / YZ0 / YZYZYZYZY           #  C                     ( Ge`_ `_`_`_`_`_`_`_`_`_-`_       .  ,   6- 6            2  @0  &        -                   Z 0 / YZ0 /0YZ 0 / YZ0 //YZY                  !      76       0      /  P`_`_`_    M`  [+'`_`&_`$_`_`_`_`_`_`_`_`_`_`_`%_`_`+_ bY bbY b    6- 6bY b $ +, .>)'                                 2 ZYZ0 / YZYZ0 / YZYZYZYZ 0 / YZYZ0 / YZYZYZYZYZ 0 / YZYZ0 / YZYZYZYZ YZ 0 / YZYZ0 / YZYZYZYZ YZ 0 / YZYZ0 / YZYZYZYZ YZYZYZ 0 / YZYZ0 / YZYZYZYZ YZYZYZ 0 / YZ0 / YZYZYZ YZYZ2Y                                                                     q       .        q       B  FE         2 %     !  !  !  !-  !-  A< B< ?OO C ,                                #$  "  #$#$  #$)*#$#$ #*).-,  -.-.  -.34-.-. -43876  78  767878 7>=8           (                                                      axGEN `_ `_`_`_`_`_ `_`_`_`_`_`_(`_B`_`_`_`_`_ `_`_`_`_`_`_ ` _  6- 6  6V3=\OIp!yz) 6- 6a`/* 6- 6GF   < D H 00H&  &          'B      DX           O^%[ )Y    &16 9<  )  K / !\S   ZYZ0 /YZ0 / YZYZYZY        P     ZYE <*ZYZY  @? :1"* Z 0 / YZYZYZ0 / YZYZYZYZYZ YZYZ 0 / YZ0 / YZYZYZ YZYZY            -&    (    " XO                         #ZY   *#      ( Z 0 /YZ0 / YZYZ YZYZY       N        w ZYZ0 /0 /8YZY   (   !   #     8     ( X )`_`_,   KB ) ,KyF  `_ `_`_A`_`_ `_`_`_ `_`_>` _/^I#6- 6   @) #(YX@   U !B   A      >  %               ( \`_`_ `_`_`_     VU       -            ( ` _`_`_`_   &/    |z                 G?,(d A0U%    ( EH     R        A SH O  ; > 2 33IGA\    ZYZ0 / YZ0 / YZYZYZYZY     "  E              ( B` _`_`_`_`_ `_ 6- 6  QO        4         !  #$   c       G @ %[U    ,   c - -  ) -QL   !# L3 0    7)  I       ?  K #      =>  ILUV     $ 7    71_    u8   A8 E  X'?  K #`_`_       R 0 /QR0 /QRQ RQ RQR QRQRQ"RQH ^    49878746*          "  RQR0 /0 /8QRQV r   ( RQR0 / QRQR0 / QRQRQRQR0 /0 /8QRQN     x x    ( $  ! !  !  D #             8  8   n v9<wx&  8  " ~l9<klkhs " &    Z9<[\a"   :S   F >9<?:E"    F ;(#  N   '   h;     _ b+   J  8! 2        @?@?@?@? Z| {Y Z| {Y Z| {Y               J      % 8            5  o b  EF IJIJ SB " '  7D   @?@ ?@?@?<  "t    Q) 14 9  W{;sA.'"  #9~/ A  "ht     Z F$  6@ $'    $p   34*    <  9y?&*1     3 f&   0hx"&*)*)B    T87 ..       !+$a  C8    &"'0B%"8  ( Z0/ 0 / YZ 0 / YZ&0/YZ 0 / YZ0/0 / YZ0/YZYZ 0 /0/ 0 //YZYy      q     s     $        ? ? #6      #              "  B      lB JILKNMVUXWZY\ &     ]6    +, ))\ )        R +B           ` _` $   $$           `_`_`    # s   F  /  WZ `/-QTST} XWXW\k ` _ = A 2Q<K 65&%&O *)*S 0  /0W UZ56Y < E             + 7 (  K a L  K N L U *P /  '   ]I  ] ] #O]\ )F    W )  8 #W#W68#W#V& $O  IJIJ X" %IJ I ))* /   E  %%   `_` _r%('(  5#   ,1   >  ^ n  O l      k $ U LE#     ctsR 5PG fef"{pvOPvxwxwxwx  PG ZYZY, % : W  74 9 3 6#  &*               0 1(yl~z{ x{x{"%xU-x{05x{8;x?;.Cx{FrRY|wXrfmx{puvu|wpsjwxuzy x  \ !yl@ q ^WXWHQR?JA0%=`       *g`= ( & %    I 4 '!!q1/% /%       " <  M  2/ #,   A,     ;L C  RQVY   - D  : 5)     :   l k ;  1 *1)     1  \[ba  V  (tc  VF  /     $ /T    $    ) 6:    ?*   $         $}$  js  j} l[ jgf}t[ j  $T} jMjQh}tMjM ?n L }tYjN"  `<dD=>5}tij[`2345}tqpofe* qt%4 hijc.}tij-,}t-. i>,-.+*}t+, ij3%>XYZWKJI:9?+Q(   (     2   !"!"!"! " !"!"  ), !.  D !0 c!2 l)  $       $$T "!$%$#$#('( -010$/ 4543438787<;< ;@?B ?DCDCH"G JILMLKLOPOTSTWZURMFE\]^]`_`_dcdchgh ghghglkl klkpoporqna>  ,         w z} ts le `          =        g   N  ge!-/   83 &%& "3 "     - 4  D5,)  $$  5f *    $    3' #&  *    / 2N  ge!   $ $ 3 HB?@ =     ) ! H  *    *6         t  } } . .'  6                        L            .      L [I@?DCHG@I    49<=49<=   H ?! G  6F#  v         IJIJ IX   !,?       #J MS S (     \ v".e  "!"! XW XW /XWXWH ^a       LGNM  7$0     /    )?5 "! XW XWXWXWD   LI        D&   &  < <;d'   7                  N  > - X    #x            %            li6   (g      {    {)*  ) |  |  !! =>)* AB-.Bml7.GjSeS   d # " Z2       * m )     %       >       B M#PG BIFEFE dFEF F /E    40a(  D0?   Ilklql# _   aRQ` %0/4930I :WZ ? v {=;   E. ) % &Q- '  (# !& % $-. B-B K#        dFJ'  >RQ FEFE      x        @4h a&<        %       ?G @&h'  O 7XW     : &x     Y   .#O  %  ZK LY45     )       36 >.# AA #  \["\[\[Y\[\ [\[\[\[\ [\[\[vUjKt u     HIT +)*' 2ST{; F %   %               +#   r\ [O g D9:9 HY    ^ !$ 78  ! -    *  r ` _`_`_\[\ [%\ [  >CF; "    ` _`J_`_\[\ [Q\ [  %(  CQ   1 s    '     & RQ '#  7 A 3'@8?@? -   $  -#* '    * '  ZX `_`_vAD C2 &    1    7`_` _        n  ?@Q  [ &@)   , / ?4?%QN +    !" ! "  !   , 5PMcE     0 X _              "!     =A           .         E  _OC$ ^    2m         3  a   6 ; -%^m  B 656 1      , LKL CD ;< 34 +| @&?@?@?@%?@?@?@?@.?@?@?@?@?@?@?@ ?@? ( 85     |u   ,e  />H( 85 JC * #     ,e \ -.a { 2           Ck  i6                c2  T>="; 0%?'#T2 $-     S 5E  7#8%    -&%I  1 ! j  al<;"p y  w>F ,   `H_`_*  &*'   * !$! R    !1   <5 !(  -( 3<9 0 ! 1*+_ v  . *       ):  9./&36 >8$        C"!      "!    `_`7_`_`_`_  A<   b"1+       /     e  (Mm n    '  3"-     MR   9  <;   F +&9ml D 0>    <;K\ _HKS G <4N*$3#D.> ,eZD+?r   ga)     ?  }  #"C#"C ,)(sr%wrj{wa`YZW65  2K214)@  _9: 9:9@ \-   CL  #                ' d  D ) V   $ __(B -R  26 "   7//Tr   ).    a) -      " !" ! $ %&%&%& !     G%$    S  (  ["2=G $        ) P$ <G             km0/   : ( ,FI2$C7'$           %P$  D*$    S  (  _2/D $    (    /  ( ~    Z   7  - '<      v  7  - %<   %      :  /"! 0 9   &8$ :`_`_`_`_   T- (&  B 2!$ (& |    TS0/TC T# /L# %()L   &/ e      ^ X! &)9"  NKCV3   &*.11,+;G (@ &)9    " `_` _`_`_` _`_`_`%_` _`_`_`_`_`_` _` _*      ,e Z 3(,      ,e Z 3`_` _`_-   `_` _`_`_` _`_`_`'_` _`_`_`_`_`_` _` _E      ,e Z 3(F      ,e Z 3`_` _`_G   @9?@?@?J   C -uh-A ,             .+,'FE fGH&#<9:9)*{uv *)(PONefGC Tsr)*,  TG+,f)*     63 "%.!  "!"    A   .+   ) ( 8  [ t +    ?( * % O0 k"     F D""`_`_`_   ! P! Tcd 7 25"  )   )") !:?<;"c)cV%5))9H?(NMX   !O4 1<9P')6)   +PTI<!`_`'_`_      $  8  -      %  -)gE_   EBA*)"65 B   _    =&E6"'#*&q [*?      !                ? #    [  q $3F [*?1N%?F DE lI898-   G  J+.9  L-.7H M[^]DC:92n BCDCDC    BC: ;     L&/2/ 2#7 *      ;<\ habIbaba XW N]jWJC  D U FEF;DK$+:212125 N589141|y0FOPUV] $  :;>? +4 -by^ Ce   G 3 + 1- 1            ,e Z 3  H@  9      6! n    2X "          Y d1434;4   ' #" %           *       " ()   j          -  : ) *)     H          f  m {|+,  /0 ~ vvz{ "!%'$!%  ' @;     $ r p #-: d41f    l      ,+ ]^ +ji NK      >h6 (3: HGLK)povu43vA7v=9&*! } '*)&%$#$!('('&',+0/0 )&%"!      ++4 %" ".>d j5  {  |vu     #   (% |^   3 AaW  $  &- .    I .q C @ Q     "b  & C  5D&'  Q    D7  X'@''$#$#    _$'   X   " H       K" HY    # (3&ZP  #$# &     /0   0I   C$w'  $5;       ) A%  `4_`_`&_`_` _`_     7a*5g  SM             -+ !  8 SMY4  >I+d   PW0      K   0/ (   <N8 X >I+9 !"!"  & $w  7:     ) $8!NX:    DK<E T   mD" a$ ."*&9   3656 76!!(qF.)/  z",1   ) )!  9     3    A  >]X `y_      qrq         $    % `_      E3 j1oji  >    3   ,+    <;?\               |6 3    b 212A  "!   +2 CD ?' , B G.7 " ,(  *b 4+    '   @  V     $, `/_`_`_#    #&#   , LK   z   Q    5   /# '     3&# 'K'   '#P 2- #'!"    2   -  E$ B4       po>;)4%+,  )<  -)\   &{|kl)/QR?R/C    S     +    $ )     5  . ,4  p              chgfab     "   $`I_`_`_   5 5Y    I$$      W   . T & .0 ! )   !%   %  +# H32 0'cp   0/  + &bL B ('(''; 6-T Sx  )T S         ': 2!'H 62-'V - &     1 i    33  G   /?   : Y       #  * A "#         "6[  $!& %( ) , -  * %H!     % ! H!A T SLKLa 6+,%&" y   R    ) $  (  #  # "    8      ji           bK      V/  65(" K=5  /  !    g[-@4$  b 1('.-.- 2-2TSTS9F        "B*U,9                   2  '  5LKL          #)]8 .*c5}6     1  eU*, ) ( ( K 9 '0  / 8#1 : + > +  $  b1     2  29Ff]            >     0 ] cB        % 7 7 ,  4   i -&   6-O   *   7       -   6 ;3Q  @      - &  6 O     _ bK 2-   210/6 23      2                   ]    M  %   ]      '"Q D     D H ('('A    3     A0TH       D  & `._`_r    :V / $>TWTSTSP Ov  ~}E{ ty    *)$#*)$#Q ROPOPO    NM  TM  *=Q6~ C*)$#Q ROPOPO")*)*v6 b  e0  cd<Z6N' V           WZ m )  -6nG*6T+    {6He60g" /Q) v  SU       0   $    5 5  $ y / E*1X+ V (                     =W "!$#&'z  $  $   $ ,#PO #P O $ #  $ # #  **, T$    I $ $ (###   WZ o$# o$##OT ## #sTJE    $  <  !                t        $ $##"#!(%*+*#)./676$5:;:#9 >?>$=BCB#AFGF#EJKJIJIJI N#MR#QV#Y X 3=&  @r 87*)$#07870/0-  "      !0  0*)$#Q ROPOPO)06AB /0/0  ,-   e +=&              [       <'!47$   $ D>!   %&   K0 LU"\[\[ LU \[\[1\[\[  "1: IJIJ  X      7   &  9WBC$1     "    1 u          % x#\[\[\[\[\[    IJIJ I           4 # W \[\[\[p\[\[  IJIJ  X         31    ##  pw\[\[\[\[\[!\[  IJIJ                    '     !    78"      6%  HW \[\[\[t\[  IJIJ       e %  tI \[\[\[>  IJIJ     >% >M\     +    #2A LUD     $ D`&_` _  &"T    * ). -    *5 $K%> {D   %&='4 '.#*$ 0&  '6"      rY  '   3' $5    %   >   ?3;l &  9          '  `_`_      d  B7    + ; . ;u 3  U0 : B"pd?LP>      ,     6! > P >  !    LA/     .  #(5< 9H#   [ ),   (34]d"/0( ) M  / ?)8" '`_`8_`_` _` _p       #+ (%.   `#_`_`_ $#$# @!?@?  ) !)    !,  # >"r!  IJ    !&  "'   9E&  !& "  & !  `_` _` _!   (W!(lklkl  #  (  "   `6_` _` _  4"        (<  4"'vuv   kv   kv, "  & .  &j',"   "    C#!!  $' CZ g#" "   vuvuv  8     #   #$$.8Jr$   ("   +0Ay 5  #   [%    r_    %hg           RQ                    +4  + >AA  *   /* 2" Y6 %                     & /6 )&)$$$$   & 6 )&      vuv           3   ! -@    `_`_` _ ' %% %%  bt'   *v  uv   ,   * "'  * ' 'k'        #  1  /  ;( (`._`5_` _`_` _`_I?(  (&  *?U %  q  ?)  %hg  +4  $'6  $ 0* '" /6  %          bl) lk lklkl# '   -   # 8$/*  ))   2;$/ +#*  ** ?##'+ ** ;'`2+ $ )   $# #   !& !* g ,aF  <.  C+  )2-)*!)*** **  * f ++))!     !  /+O @o 0   ,% H # .       CG 5 >,,,*) )'' ,*) #%%$ *)0  ++ ?@=> ****)*     #$ >) G  5  >     - +,+,,,,DE>?:;07J,, ,4L4":c   ) $.       $  <  (  /      - " # .    21 11 1       %3$ 3  4  422 22 666`/_`_`_ \[-7 6IJIJ IX6    " -4 \[(8 6IJIJ IX6  '#  (y \[ \[\[\[R8 7IJIJ IX677 "77 77#$     2$2* RU\[i87IJIJ IX7   O*);i99  \[}98IJIJ IX7   $%&)*    %*4"$}`_`_9   `1_` _`_9 8IJIJ IX8  &# \[09 8IJIJ IX8  #& 0M2  geee*)$#ee fb b eee*)$#e2         j      L $ * ?  S %      G  ) 0j        \[\[m lIJIJ Ilkk  %  ^]^]m llll(m  A \[\[\[(m lIJIJ lllll *'  (#m   nnn  h3.    n   m mg gg jjjjkjj + .    :-/ ^]^][vkLU LUcn m m jjjn   lk !&ik### # 1# # / ,+'$/    / T  $  ^]^]ojjjj 3o@"?F GPO       : "])8p     p C  O  G "`$_`_p   !K _ p  " p p I_ q     )hghgh ghBghg %q   ""21""!  qqqqqq"]\]h!h  ! p:9:7 &Ғђp V  &V!)  ]]]]u u      3C  6     #L4 H :   , 0 9*    3" !"'!,<'              %*\;   UVU ^]^] r fou ujqjq 9(          / \[\[\[r qIJIJ qrrqq %  ~  \[\[\[nr qIJIJ qrrqqPPP [PP [ Z ?%  C 4 \[\[\[s rIJIJ rrrrrghg &  : \[\[\[)s rIJIJ rrrrr  +&   )@ ?@2?s  %1 ;  H Gt qm   AO \[\[\[\[ \[\ [\[@tsIJIJ sssssqq q qq qqq A#&      H\[\[\[ t  tIJIJ ttXtrr -,/C!    H Q \[\[\[:u sIJIJ sttss  ;%     : \[\[\[\[\ [\[\[\[\[\[Bu tIJIJ tttttrrr rrrrttIJIJtuutt   D''   Bg\[\[GutIJIJ tuXtJ, G vuu   !8{  v     rr )q q;+ G<  8{  MF/ vvv%uu,uu(, ZL   \[\[\[w vIJIJ vvvuv  %     LUjiw rrrs4 ww 2/       :%% &      'qN   + f     Vdw  |/6&* * w     x *7  DA\[\[\[vu\[\[\[8\[ vuvux  wIJIJ xxXxvvxvtvvvvv  vvxx>#xx"!<; $   yy ;DUo    yw ;3Ke _[   &.; +"   A      JV$ ] U  \[\[\[{ zIJIJ zzzyz               . &     ^ .*\[\[\[\[\ [\[\[\[\[\[\ [\[ {zIJIJ z{{zz>yyy yyy870/ % CC   C C{IJIJ {||{{ yyy yyyu uw $  "  #     A>               `E_`_`_|      .<>Uh}     :"B   2 m         \[\[\[\[\ [\[\[\[\[\[\ [\ [\[\[\[\[\[\[\[-\[\[\[~  }IJIJ }}}}X|2 .{{{ {{{|}.}}}}7 ./,/0  ). VKlqlo *O( OF&]*&_*,,C>~IJIJ IX|| |||!~IJIJ~~~   aa =_*: }IJIJ ~~~}}|| ` `#(||||||&k "R r*H%2&  '          9               < L      \[\[\[ IJIJ ~8#  lllll l  k k  --   K 4  V  9q ? F LUji  * BCD9 ,JIzs  II0,!(+  >! }߂UU ȂǂȂ' ʀ||||*srx 8s>  (1#     +      *A  UU UU UU  +     (Ɓ     ~}~}f u   6ijE?@>= ̀ЀՀր & u5]"0 +  =&  /      "( . 3.45):9:9(@-! V      #݂ "    V ?! 9`G_`_„oop.ooopp  ;   )  \[\[\[\[\[܄ ǃIJIJ ȃX        ) *  I&4'    P' g+\[\[\[ \[  IJIJ ߄ބ    + 0ȅ  $^]^]vu\[\[\[\[\[\[-\[\[E\[v ujjф؄IJIJ X܄L+ >)$) ܂"!FCD ))    „"Fy+,"  #+  &                 E   !       *)  c"Q#   ;#     53+*"!c: c:c:"! c:"!c:$c:"! c:"  cbS * H  ;  3  )$" 1   %        ( - /  '3 ( '     dd#  І NN *     *    =K(6:   Y     ! !?     $# ԇ Ӈ ̇ bee??       . ee  "  ee   - -  $#$#Ѕ' 1R    (YR#-g/J  -  .       $ *  L& B. &  #6:         "3J   ?"!     %PaDff    &  8#9 &  3 % RDI'+ F\[\[\[B\[\ [\[\[\[\[\[R      IJIJ ׊X&vvvvvvvvv̈ ψ ݈ڈIJIJUUUU A+TT>"A  5/4 ,      + F          !  \[\[\[\[ \[\[\[ \[XߊIJIJ ܊ߊwww IJIJXS S     7# Y !        KC $$K\[\[\[\[\[;\[!\ [\[\[\[\[\[\[_\[\[\[\ [\[\[\[\[\[ \[\[\[ \[)nn:IJIJ ٌxxxxxx x     $yyypoxxxxxxxxxxxx #ڊRpp0֌ьIJIJԌXȌ pp0/,+Q  op?IJIJ X͉‰ˉ ȉwŋIJIJIXwww ЋϋIJIJ΋X‹% wt!$ )$$  ,   $ 1# !        !                  "  $#&% ( '*),+ . -0/0/212 123656563874 389:9:9 <;>? U U (  A\[\[1 IJIJ I    )&1NƎ )  A^]^]2ڎ#j#j#### ;   F\[\[\[3 IJIJ ܍Ӎڍnn  7(  !9 !\[\[\[W IJIJ Ɏʎoo  F  a Y(M-2    ,  zzzz5<0$&  P  @ \[\[\[; IJIJ ׏Ώ {{<! #M WWWW #  D  $\[\[\[\[e ݏIJIJ ޏXԏ (%    A2="  e  # $eI  \[\[\[F IJIJ   H% !  F[<\[\[\[2\[\[\[5ooIJIJ  IJIJ   #891& 25 \[\[ \[ IJIJ X #   ƒʒΒ  6       & ړ%%%%%%    '   LiюԎӎȓ   Li\i\[\[\[ HG\[\ [\[ؓIJIJ aޓɓX  ő  *! #             8:58  /L /"/^  p       +.- 0   q      v     H \   O,      <   %e    $6:I/   &' $% % (*)$# Ar T  0' % I/`_`_`4_`_` _T   #>7 f(  `%_`_`_n    @?@?|FCFEFGLK~0#         " 40#0#K*        #$%&'         " 09 0#K*        5 7 2/72 s          57 2 $         1 $   h        /N! ( 70I/ LK`_ ^ ]^&]{ w      BA "1    G+   @*                 W    a c V g68   ,  '' ( " &  ^    % +C w C`!_`_        T    G  .>   - # 8J    J(( e      81@"( e # {, ~}1~} |{| {|{|{|{9 &|{  I> L         \W  g   "Y          Kcd}   T    # ) @  q90I  ! {,  1       9 & #     # .           ~i           J  ,   4%  ,k! 66J     !6`pBU     M     ,;  ,+, =    +*#  5 f _  M   0              ?     . , 0O)/  612)     2BE?@ 71 y ;   &  )/     6 N      !N   &  , ?%     0     0S0j.** R Jj! "" " " 5 7 8lqrsz "     #'" " " ! @ | (    %   5 "    $    !   " FL" " "  |{+  !     W     ;          M  I + 2?A%!    $ '2      " ! W    %%$   *)$#   *)$#              /        (  ~      ,  /        F $)43$BA V \:9Q    J ?  D J   a:#9:9D  :9:9:9/8 |}w   &#  21'  P    !a Z #5 . UV %& N               }~  wx Z# +  Xe R  $    "#M.%  )M" % P 6  J7    L  " K '  *$,&I )$ V \ Q    J ?  D" !J$ #&% (' *)a, -,+D0 / ,++ /?$L\      P     F$/%       -/%  $J. M+J.$M7$  #$ !     "  ~$*   ; lc ^  gl  ^     R   N   R }     R     B      - V  RJ   /  i      ` Xn$       D * -)$               3*# *             J\ (p 8 Z 8   Q  -Z+/ZYZYZ     0   ,"    %@*C"    ! _p  -Z Q     @?@J?@?@?(! (    b!((J^]^]F/^]            T 6 %  2    JF/    (h   & "~M( U "  F  * ,+25 ':!   !j)   )"" %_bx \+ x &g<   +BU" F<    (ab\ ZY  "&%   *%&    % G.  -6 d&"  ) / K."bv  \` _`_  (  "587 :?: 9@  ,   "e(  0(#(  ..(# + N,   0(W\ `qtD ;<;D EF  L1 '$5 !  s 3%#3!   &      -,)3m /   \   cR'(6:1  2 *)$# 1  IU R /# 4(: 1  H(M'     ; &          " -  *)$#  *)$# -  5 *)$#  k!L $*    E'    ;&:(E       -   E 2 ( K  -  :   ?) Kq( 5 ",      " 7.   5",:(DCDCDC4  IJIJ      '4 (  8787 0/     U L > &5(         [! (IEFJI " 4  5     k0  #  & I "(    ( DCDCDCc  IJIJ    :965 $#   C &$   c   Y( "*)$#" f1   "  &l(6   1  (  ..( 4QF1"6  1     -*DCDCDCDCDCDCDCDCDCDCK  "     ?   / j" K* ` _9n  $-$(  ..($ & => -)F f9"/6%  9&E* * BABABABABAIJIJ     # B*%` _!$#"  (  ! v    t  E    0                ?  N *DCDCL;POPO   @DC DC> $  (g  (! .                 " &   dd          Y  7     */5Z  :5 4 E   ',"  8 ) * ),# ( -0 " 2      7 > $  ""!g$# &%&% ('(*) ,+,+2121.   c  *m     0 #<m;k*   ?  : cc          SZb    .  : *BABAB_` _  IJIJ    e    ! T   2'$*  x*DCDABAB ABA:      IJIJ IX       ;    :*  W* BABABA=  IJIJ       @&   =* D C   *<  +  <*'&   -     s ? 9*%BA^]^]^%]   IJIJ IX  -.#  f    %+++*9@?41+     HK,[\$_d %"! X   "1  0 0 6) A  ! .  ,% Z  F`g*BA.-.-.-7^%]E IJIJ IX  kR IRQ      S >=R+/0 +9@?41+S>=NMH  M    ^  %+ **v  g 5)  =2* BA IJIJ IX#  L* \[^%]\[+ +9@?41+  "      7  K)   b* BABABAJ IJIJ      %    Je* BABABAU IJIJ    * "&    U/*  B   !%  B` _`_   5# * BABABAI IJIJ     & I^* BABABABAB ABA IJIJ X   #&   `[_`_*h94 5  2),'$#.-,   A   @*1     1 xn*L;@L;FL;7L;EL;Z     2;2; < 1      3Y * 9 0Y         "#& L2 F  7EZkd *BABABA IJIJ      - # "      * f :Q*d    "#    *BABABA IJIJ .   6 *5-   22   IQ*80    $   Q     G -%%  + 0)*baba\a\[ \[      >S6$3E< *|POPOqbaLPOPO POPO=POEPO,PO 2PO   POgPON MN.ONMN(M8              $  (3434C>A@?@  OJMPKL QPSRQR       C20# .+,# -M*?  g G+   #&e     9- )&  )(:   * - ,  3 L   G` aq 7  E #* C+ + :!%. > )*   % ,A D EHG JGL G N G R? B GT  GX5G Z4[^-G HGHGM.        L    =E* $#$#"2#& % ( '*)g  ,&) 0/2(18* NBM5    :9:9 &    #9   -  %5*  2  2   2  *     J*T    :!F*P@#;  #  A=* BABABABAB ABA IJIJ   #   * BABABA IJIJ & ;* BABABABAB ABAIJIJ   #  R*BABABA. - IJIJ   ( E* BABABA. IJIJ     %  .E* BABA7 IJIJ X   6$  7d"*BABABABAB ABAt  IJIJ   v $ +6  t   G    (      $ *YBABABABABALO'BABOBABO   vBAP  !L;'L;q  "IJ  X     IJIJ  X    <  FE !?!i   ] 5O1$!- !!- ! &!! "    7" !Z6) "6O,  "    \$&#)   ), -0 '*1J  '  v >TP   !!$%'()+  , + /0 *D"    ! <     - % y * NM"  1   f$   luj*:  /   +NM=# ,   - - , ) # #  <? IJK          )     6`_`_$  7$      !/* NMNM-$  ! $  -*% 8989 :7   9)!    =*\%    )'    ''''         0         *-BABABABAB ABA #,H ,^L;L;' &IJIJ &''&&$$$ $$$     ''0/''.-     ,'''%hA!! !A ! +2+!! ) ! +     ,'   #%\W;a 1834!#<=  Y Z    .W$ "743($&9(=        ?   1 & I ' -&%       ++"  +. D 4-       ,   ,^(`9_* BABABABABA)(IJIJ ())((&&& &# * BABABA* (IJIJ ())(( %  O*`*     , * *   &&&&&& *BABABAB ABABABA BAK+ )IJIJ )*X)((( (((*) *IJIJ IX*** */21   /  $(          *l * BABABAi+ *IJIJ *****  : &&  * *n*0BABA BABA&+ *IJIJ I+**) )))  *40 &, ,,,,,* ^]^&]^(]/,+ + *{?Y+++             (/         /     t,* )        )      '  JI                P                8 'sC e * 9       @'{  83;    4          " e  '         d& l $#*+>        2 77 99 99 99 9 G GG JJ cc cc nn nn nn uu || || ||    я  ': 'd  ; X     F  #$   $  0!'!!!    + -- 2 !n;c<               & &) ** 4                                                                                                        !                                   4 H     ,        Q            &                       1%A ; k # # # C 4W<#I1# -!N"$o%$&+'#())#*I+ #'              " !$ #& %( '* ), +P. -0 /2 14 36 58 7: 9< ;> =@ ?B AD CF EH GJ IL  O#R'QRQPUX WeZ Y*\ [I^ ]` _b ad cf eh gj i@l'klk{n mp ors_v ux wzy|}|{  4          " e ~M 00`/_`k        t  rƎ(    ( '('      @?@   E  :/ 85*     :@ ?@?@  / - k    \[<   1/ J1)     10/nmba               &%&%&%  " &%&%   2 $  6# $   @?@?@0  "  4    "    && 44   +  33   .       33333 3 4    @ ?@      `_`_   @?@ :' ƅ Ņ  '/  3                 " ('  @+J     IKr     #           ; R " NJ      ,\. HVj`_`_`_` _`_    }|{|WX[ XUZ    I ! *      j %`_`_`_` _`_`_  uv v@5}      Q\? 6  !&%&  ; #: >B   *#  ? %  .?  !    -   !$$4  "   ~    DP ,NML G    )&    D7    '  E  1 $      - $ pV0   T **2(  ..( n O/[ A"  ; q       b   /,          .     "*       b-   gd  ! O   Ykb)    <     )       ((0(  ..((dFG6/( 00000''0(  ..((! >H=''  " b' '(  ..('' (  ..('     **  \h %B ?     N ]    : )"!$# &%('&%21!}?  U0       _ 2   ?  U      &/> =>=>=2&2 /0/0A      2A,D   G   '"@?@ ?@?f z   BABABABABA>BAi  jk      5  m  ( &      >0(   2 2<   ) 4     *!3 5>8 / C"  !3 5+Z   ?    ;, ..  2( ;*<    H 23 ))(  ..()  + +  D#3           4 B9:30? b a        +(         c` "    &;3                    .   "  PRPR\^bj64z C& & (; 3    !$%(),-0/$ ^   8V  kn !!" 1P,   8M  R) 2jxO XF   SHED A       S_ [          # [    v W %hkji P 1 % w5fe+fefe,fefx 5fe+fefe,fefx 5fe'fefe(fe"PHE+FE FC,DC DMQHE+FE FC,DC DKOHE'FE FC(DC$   #   #        5+, 5%&   5 '    (   /.    0! Q  %t!k p  %(),-0WX |   %j(A  r RQRQRQRQBefer  9  # !8  B\ ('Q cbGJ  ^"$ Q\^ ('ERQRQ9 {z    g  "49 E9rg      c  g       \('l  9   1 +'l  9Z('j  ;   1 +'j  ;&%.&%>&% &%;&% &%)&%&% &%&%<&% &%)&%&% &%&%(&%&% &%&%;&% &%)&%&% &%&%'&%&% &%&%'&%&% &%&%;&%Q&% &%&%&6 FBAB?4 @;<9! 636 4/0-! *'" $!5"! ! !   5     S ,  !!"  %"  $    "  #  #  $;  "&"+"! '  ! ' '*# ' '" #'&'&*- 7.> ; ) < ) ( ; ) ' ' ;Q F2(' &%  8.m  ..!  &s$ 'Vy t!%!&%7 <$qT  & ".0 j9..@2+d  2   !3 F    4-   .8  C" 0? )" $       "  " '4  &  >J>5 #!/ (!E! %!    +       -  "  9           I 0 &%   " `!_`_       (U@ s   5        d @?1  h^=H,0+\jI@  bdc* 87  Lz HG}~] ,  Nxw+,> |JT   ?->+, /!t)!     A       ,  X - #    !   % g7#U@ s   5                        #  G   4      (     . R a?u**2" 6 '0              G 4 7(  )   (                &%.&%>&% &%;&% &%*&%&% &%&%'&%&% &%&%<&% &%)&%&% &%&%(&%&% &%&%;&% &%)&%&% &%&%'&%&% &%&%'&%&% &%&%;&%Q&% &%&%   &  6   L  HGHE4  F  AB?"       <9!       636  4  /0-!       *'"       $!5  "  !       !       !         5         Y ,  !!#  #  %"  $    "  #  #  $;  "&"+"! '  '! ' '*# '" #'& ''*+&.- ;.> ; * ' < ) ( ; ) ' ' ;Q  F2(' &%   $.w % 8.!  &}. 1` !%!&%7 Z$qT   ".0 j9..@2+ ,  :  2   !? R    4-   .D  O" 00? )" $       "  " '4  &  >>5 #!/ (!E! %!      /        1  &  =            I      (a@    5        l @?1  hfE,$,0+\r#N-H  jdc* 87  L HGe 4  Vxw3,> J\   ?->+#, /)|)#      P       ,  d - # ",  !   % g7#a@    5                     (     .   z (4   0    ( 9(" ,  #       ,#,#,#$+%&$+: 2%! %'' + F!EFE<    ! n R g r R R n n  GW  GZW  A G]|\   o |o oo % > O R0 G&/ 2% /b { ~0 kV g j0 _ % # % 2  0 ;J  0     2H2AH22HH- $   $(# . ) 4 /$29$<C> GWGZ  W  A G]|ai     e"" i/  T;H 5 3 8 4 : > IH 3(  3B  ?B U78:68j  -,).48.`       1b  *LE     #          )!yU)   V{  Va  x")  }8 ^ 3    !$' .),  -$      1b3T T  T ! "     "A     ?FET !#"O   "; "9 >SF/    P   =2 T%8 8}      'v        '   /      /+7t   $       ' v^z        ' 1  F O& K&      -&E&Z >g 6   N  Q  4 7 $R  #   )     #   )  . B  !6  " y            'm# 1!.!@ J  B#  0ST#  /0   $$O( % ( % 0) :   ',1!.!@       Y"$ "  749P 1  =  YNQ/0ZYZ[R  @  { @A8 ]/juv  (     1  =] M YX  ]"" Mg              S     @#    | .> ; ) < ) ; = ) ' ' F "&6 @<;<94 :563! 0-6 .)*'! $!5 "5! !   !     M ,  !!"  %"  $  "  #  #  <  "&"+"! '  ! '!*# ' '" #,&- 3.> ; ) < ) ; = ) ' ' F "F2('   8;  ..!  i$ 'Vo V!%!&%7 $qT   ".0 j9..@2+d  m !3 F    4-   "8  C ? )" $       "  " '4  &  >>5 #!/ (!E! %!          )  "   5          I   0    (I@ d   5     d 871  `^=HTjI@  b\[* 0/  Dz @?}~] ,  Npo+,> tJL   7-, /!l)     2       ,  L - #   !   % g7#I@ d   5                  #  G   4      (     . (              .> ; * ' < ) ; = ) ' ' F    &  6   F  BAB?4  @  ;<9"       63!       0-6  .  )*'!       $!5  "  5    !       !         !            S ,  !!#  #  %"  $  "  #  #  <  "&"+"! '  '! '!*# '" #'& ',*- 7.> ; * ' < ) ; = ) ' ' F      $E % 8.!  s. 1`y  ,  :  y !? R    4-   "D  O             -  &   9      U@ s   5        l 87 1  `fE,$Tr#xN-H  j\[ * 0/  D @?e 4  Vpo 3,> |JT   7-#, /)t)!      A       ,        (     .  777n          K1<00   +-#!!;*8>p}  >9d    >  ,g!:9:9:9:9:9:9:9:9:9:9:9:9  ON(+' # ! c 9   ! $ % O $n/0 L!             :9:9:9   H   4( ! "          >     #H;  ST   V#(T   :vuvW:        0 W     . >  )    '    <  )    ;  =  )    '    '   F   &6 @<;<9" 63! 0-6 .)*'! $!5 "5! !   !     M ,  !"  #  %"  $  "  #  #  <  "&"+" ' '  ! '!*# ' '" #,&- 3.> ) ' < ) ; = ) ' ' F  F%('    $;  ..!  i$ 'Vo g%!&%7 <NT   4 ". j9..@2+    :  m !3 F    4-   "8  C 02 )"       "  " '4  &  >J15 !/ (!E! %!            )  "   5          [      0    ( N  8    3 4      JpoIo'+ <  ^\[][* 0//  DC @?y?O$eS#Aw!` 8771  `_8   8, #@-X)   ,  +      0   Q ,       " "!& v7!N  8    3       4             #  G   4      (     .  (zy                       . >  )    (    (    (    '    <  )    (    (    (    ;  =  )    '    '   F   "   &  6   d  `_`]"       ZW"       TQ"       NK"       HE!       B?6  @  ;<9!       63"       0-"       *'"       $!5  "  5    !       !         !            q ,  !"  $  $  $  #  %"  $  $  $  $  "  #  #  <  "&"+" ' '  ' ' '! '  !'$ %'( )',-!0*/#2 3'6 7': ;,>- K.> ) ( ( ( ' < ) ( ( ( ; = ) ' ' F " I&)%(     L0 $:B E  .9 LL!   %,%!; "\NT 0  %)B2. j9.., ,    j  :     :      F\  g  !6W j    X-   "   " " @0200+4  0 )"       "  " '  A6 %!15 !/(!E!       C      A  : C         M                 ,      ( B   5   5         87I  xrQ >"  b?, T  vtsB 0/  D @?(DTCRJ) ZB:H   K\dl~c7E5,5PD C)Md+      ,   +      / #  "  ! **(.!B   5         5             (     .  M"  j0 JM      '  ! j="  )R (+   +"):"  -b    1"-"  v  "4   3"    "! S"h  .  )  7# "  B CD I "0     ""  [ \#  " K"t     1 0X "   # L    [  , %3      1   o BCQW-+" & % !   L         J*~"Bns/     +twtoB.-P`_JUAVUVUH / = +C\U$    / )KDU  #     ?T  9  + *  #=?, B/Y"  U      Y""U  !#      g"    O    A O(     ?$  )6 DE  -" )Vv$  [TF 45+,  $    [Te$[d  U! [&|& &.> ( < ) ; = ) ' ' F  qp&yz6}~ :6563! 0-6 .)*'! $!5 "5! !   !     G  ,  !!  %"  $  "  #  #  <  "%"+" ' !  '!*# ' ' ,"- /.> ( < ) ; = ) ' ' F  F%('&   .1  $.!  _ Le I%!&%7 NT   ". j9..@2+&X  a !' :    4-   ",  7| 2 )"       "  " '4  &  >15 !/ (!E! %! &         %     1         x[ &     (&C  8    3 %    BpoAo+ 4  V\[U[* 0//  DC @?q?+]S=X z87y71  `_8   { 0, -X)  ,  +      !   F ,       "  & d7!C  8    3       %         &   #  G   4      (     . &(ts  ,6(       ' ' 85 <   !    T       T          8   !  # ! #! #! # !     #    ! @=$  G &    @5V   G +       G (    'BA  I%    "A    A7  H&    AY>     "' 7I  5    ;   ,*D      N 3:"#   !N&(    #     F $!"  ),'       # F ' EFEF       1652- 4  (3  ( %D ^c-T6F      &        ,$)  F :  3% , 9 + 2   5 ' 2   0             %        !V  7+ ]  @ ?   20d   06#U2121   $ >AD?  & !<4    >U *dV"*)/212)*)87*) 0d cS  ")  S06     /#(   20 # .0 #          &%("~y %((<  &N\    ;     " CIS6 >;":1   &      -I*A/11 '! 21      !    + 5_   2/.%  /5      !!?1 8 , JIRQB   8#01  -8    &     $1-T ^d (( :'' h  > '&6Y43431 ONSX !   & 1Y    7 %'-  3l'  ) /%.-.-.-.-.-@                 ?3. @ $B$' %/  a  R1Y 2BABCL   } 8A S`       S@3   U2L }4OHGHG "  3 N#_LK &% )     # -7A_&%:'' _  ,-   ZDs RQ8 7X  ^$= X` '   =>      #'/bRQ8 77 #@% 7!HGq           8 K F " / q-#!HG:TSHT S                D CM   :H $    '  $ $  $ &   ba ^]    "   a#.d chghghghg#hg!fefefefefed c"             VOPO*'(' &5 6,b    #!       v'#+ ( Nb# +%    $/ $ q'\) vtsts  ,   +D $G     0!s s "-   ' C v$ ( I     %  ) Z : I  #vB;&=:pzr90TV,  ,      ! ( BM     ',:          ( (         [0  'M O"            & +1)    !5  'D^     $` zr90T V ,((,+ RF 3rzI 4D E    0 " 4B  #J* `" !      \ # `'  >=3qv  / 3&#  03 87 YX   # ed2 87% qp    (" %           87           . 87    "              87D87?87H87H87H8758787 87>87J87L8778787 87*8787 87*8787 87>8778787 87*8787 87*8787 87E87 87876d_`]5 ^YZYZW4 XSTSTQ4 RMNMNK4 LGHGHE! ABAB?5 @;<;<95 :565635 4/0/0-! )*)*'! #$#$!! 4 ! !      !     m .   #      ! ! !!         !!        ;  "&"2   #+#+# #" ##& '#**)#, -#0 1#4 5*8- ED?HHH5 >JL7 * * >7 * * E   H6(#" 87  >A  4  _ R s z  { !9 /!..!; !C 8 A6W t $2K=/!....).0., P  Y!       D  } h        & = ""1   3" /"   /  " "   )  @!#E2!5)!)!!7 !!#    : C         ' "   / 2   1 4  M                u@  y\[A     C    O  m        hp      hpaG^  hpG   <;   hp;   43    hp3   $op#      hp     hp op'6  X Whp  op  {hp[  DC   hpCa op #hp+hp  hp!](   (&] +      (              (     | .    !  #!   !  ## !  )yA     C                O     m          ^ ] < M `_`_`_`_`_G ` _`_` _+`]        (                    %   R a?j**2" 6 $0              G + T\vc~p62E.^C#vuvuv uvuvuvuv/uvuvuzDCvuvu8vuvuvu)! `      #    XW .      +" ),^ E.- " ?B+^:        "m1}.       U  XWTcdnk   ;{      *  x$J    *  1*1 (3/R  J     ;B+.@   7&=   \   .     &$< ( ' )*2 %& %*),9: -0 /@43  /z    8      )!  9    %  -  )  a  `  /  8  C  )  F  K  ;  7  :  ;           )   DC#6 5!65 Z hp  fa b_56  `_ TYTS *YZ21,-,'kl&    #$$$$$ Ei717"K28`J M28q ]^ lmn28`o 1L8` -28p )2F`!    RK    28`D 8`Hgi"k1 (6   $/ /2 &5 $( !&&) * *"!$*#&*% "A(- /2-#8845U# !   D/WQz!  *t u  JKLA 8/0/ $%  #              2   ts~  <.e   % 8, Z #< :+1I \!,"&(Qz!5hi   :&9:9 :+ ,- '   .9* $  .  E  _  *  4    3  #          7  0  4           3  ;    Y                   f          g           <     A;# &  -r         8     =^)3 `2" C6/32$  1 G     i&       ( '  Q" #&%& Y      fg      6? >      0  >?M'**A7107 0!    "#" $%$      gO   # #     (( (%  0!q 21B21IJIJ IX"   , B,  6 B\8 ! @ 3Z l m       +/  -   !@ 3GT T SCVUVUVUVUV Sz U Xab'*)* +G T1  C DB>CFB*D ! $    6  ]&  +      7J   _  "  $ "  "1  B$$&#$$ ) 0!$%%%%%=_T S2 C VDVU0VU VDVU7VUnVULVUVU7VUVU1VUETSVDVU_VUVU7VU VDVU7VU 21oVUVUVUVUVUVUJV S   %  1!   1    1vjg&1\[\OO 1FE& 12$! 1   1 &&C&-&&   &] l_XB>gR[PD$$$$$>h% $   # )( # +   6  #" #$#% (%:" %      07kH 7 !"! $#1&%E('*',+_.-7010365789<;o87>=>=@?@?@?J6    Z.-L#0!o>>>{ ! d # ! / !  ! S  3 3 3  !               _`Tp  0            s   op %i    :          =777  E   %   , - 7 ,8        5   +27E !d #!/ ! ! S  3 3 3 !r++,f R        1  8  ' RB,4# T SV U@VUVUVUVU9V S         U )  " B   @    9 e,9:9Jn    ] T    3#%  9JX   JIJI P+ ,-, !    ( E     'I  !    a T2/0>  dcdcdc dcdc dcMdcdcp    (  )8          C  ,       / 0  :    M)"  !"!cdcdcd"!c      E6.  y   [ !    K   ?,0   "M)d #+x   @| i<DL A* cd>?     ^  c  76   IH   [Z gf sr                        87B87+8787 87>87J8778787 87*8787 87*8787 87>8778787 87*8787 87*8787 87E87 8787<4FAB?! ;<;<95 :565635 4/0/0-! )*)*'! #$#$!! 4 ! !      !     U -  "  ! !!         !!        ;  "*&!1 # + #  # # #*# # #" #*&- 5B+ >J7 * * >7 * * E <% 1#  H6( 87  \q  # 4   u !9!)!; !C bT  0  $2Q.0=.1,,   %p  1 @         & =4  "  1   "  " 5 '  @!  !!)!!E !!     & /             9           ,  RA t    S     9       @hb $#@h#M h{  0xw/@hw&  XPOW@hO  S@hS3 >  `HG_@hG  h@?g@h?  0gh/    |,+{@h+ @h  @h #I (     !             (          G U .     # !   !&   !RA t    S               9      4   < KL   *       $ J e3  /" "   L       *  " U      * W :      H4J   3d   9A~C B      & %6 g gqbom%  kj 21 2121<21218IJIJ IX       $ 3   !0(5   <8 1 +    f )      t<343A4 3.43  ^]^'e)* +, )    5 #^0    ^=>=.M.V" .!  .V>V( :V*] 3)*! W . 4#   + -"-A +  K#$_p@U  t A . ]  3  A          _  y  #  -       x w>43xwh  gn6'W   ]^96/  % 821-\G  ,     *!.J1('4 )2X( 2X42 2X(      2X(   (  2X( .  - 6 l  9  [f>X  *  K&!&A  7   0$!<8$)0,%/ 27:3L >        h   +*.@    - 2  2-L    9'@2(m1       78 E8         .&1HG&HG)HG"HG*HG"HG  $ $ $ $ $ $><*< < #   !  "  # ? Q D   K[N$ &)  "*"*</<" <               %   `  0/B0/2']-+   (  ,(  3    *   :&"      E   !. > P \bOOJ?  L.  E 2x.-  uv v + 0 ? +U 7 1 !     L. B 2L@F/oY}0/"t s *  @    s 9 8         &% r JEG  *(/ *    )4#"    *    @     *        $         %* ) (($"BHfHH@A10)%'  P #  F       6 IH      u|35&%!"n  }hg   VU NCDCGHDC#|g&+ 5 ? 8 2 * O   ! *  @$!     !   (P 'P #C  \   #Nbut s tsU t s       *  3   U            +7t s!S r s DG    ,,8G (  "  !S r          19@O0/t s  + s<     G.-() - 9#  ) 2G      + <`   uHI65f            O-' If]k.43x           r%6 .x"        Sn  #      =2;3   " 4+    [)+#    ! 7    C    > *  " /.-  ;B; 5 1 +   < ; 5  Y?9h    X  H       H"   ] LEFE. @A@2      '3 ! #  !  FE43 XW               ,5  # %   !"!,+,H{+        !!!!g 5<&!  "4@!  fP   + & xu K  &) "!"n&  1             L 22"  4@!c!  f*@3!  O   <   r  1          L 2z *@!!  O,5d!1":)|    3T}? ! #(h!  +       U` 9< `] ~{ |y         986 *    6 (        -  1E "  3" 0 *of! !   8   +_S%;2;/3o#-?QBi`aji/ 1 /<  (a rm& @     '     ; 92Z6 YG    0     '    *$"  ) ia      !  Z pm nm      )\          *       # 03 1    9! B!  !  Z"5:& !  ' T H[  @!  [ <  ) |     B       2 0 K  H>@!  [ @!  X   )v     A       2 0 K  H>@!  X A  &j  P $A &  tIJIJC D   *   0& w XWXWXWD  '  D4(   ) Q <%      M ') m****'T       Y  4  1  n    O               % b_    ]b@A@9   # &    $/P      Z.<          #? %    XuLtO  % %(    8981   ,()6 5     $?   K.<           ? % u[C !    ;<     ,   #"     % D " @E    L   4 )    %  ; U(0/r   AMh   =B    /:+ UV %C AKw :  A  MJWsKw U  %   0"S0"@    BCB5 2781  !    .-  \ ,! wfQR         J  U%  t  P         @  %P2GH F    454'     SNI     %'! 6R +   @ 2 #Y     " "    E @%P2  8php (pXp4p0H0x|X8h (0X0lH@`0`p ! !!!H!! "h""("@%'X'()(0)X)* *HP+x++-.h0. /@/X`/ 0 `000XP11(1P2p3`450p56P8h< <0P<<<P<= =p@==0=@>>`@?P@0`APBBXC`C(@DE@H`HJ0P@S0ThTU8`VWWP [[p\h^`8 ahPh``ii0`joPohov80wx0y`yy00zp{|@P px@ h 00P`P Ћ  Й 0 @    x  `H  @@x H@pPp PX0`p@@`xH  `Ph80pP@0X  p(!@!!P"" # ##X$P$(%`%%``&` &P0''(h((8))*`p*"*&@+P)+*,-x,2,P6H-p:- >.>.B.PCP/C/D 0PE0E0EP10G1PI 2J20K2LX3L3Q(4R4@T4V`5X5 b060e6@f7lh7 m7m(8n8n8o@9r9v:xx:y:H;;<P`<< ===X>@>?`?@? @Ph@@A`AApBPXB@B(C C0C0DDDp8EE`EPF0FpGhGG (HxH`HHI0IJ`J`J00KxK@K8LPLPL`MPM0NpNO0hOPO8PPQ pQ`Q0 R@`RR`0S@ST@hT T8U`U0 U !PV!V"W&hWP'W((X0*X+Xp,`Y@-Y00Z1Z3[P5h[6[98\:\<]P=p]p>]@@^A^C^HH_M_pZ`]`@_`_Pa`ab bpcbdbeXcfc`f(dhd0idi0eiejepkXflfmgpn`g@pgp0hqh`vi@yhi~i8j`jj`k k 0llm0hmm@(n@nЗn`oPoP0pppq0hqТq8r0rrPss tttXuu (vvpv`ww0xx@y hyy8zPz{h{{00||}h}}8~ ~Pp@@```hЂPPxЅ(P0``ȇp0ph Љ80p ؋ @00pP`     HP0pА 8`pؒ@X!@"(#$p$@%%`&8'0))p@** `+,`-X-p.(//P0`0Ȝ10022p3h4О48P55`6P6@77( 8p8ء:@:<`=H>0@A`CȤpE EhFGIpJئ K@KNW`WȨ_0_p_ЩP`8`bpb8ccd0`fxijHjoq@rȮps wxpyHy{P{P{|~h0в8p ش@`pض0 `x( pظ0Ph@`PxК8Н 00@H`00`H@`PP зhи@@@`h@p x0H `Phx p@X@@(`0X( @` 0  X00( p p@X@hp @  %8(*0,p,. p.x./@/P//0(3`46`:; `DDEXpGHKpLR0U0VVH _` aabPde  gxPhjHkl@n p qPvw x}`~X~0p0h0`X`0( @X@@(`PP0X 0(``P @`8 @p@@hP0h (`p`0@`h08 P   `` p  p ` !0 @"x $ %H  & &'(@)P*+ @-..X/`1(2033H3:<X`?EGH`JP@OO P@Q@RXST(@U0VV`W@X00ZZ [hp[[8\@\\P\P] ]]^X P^ ^!_p!0_!`_@"_"_#``X#`#`$ap$pa$a@%a%@b&bx&b&c('Pc'c'c`(@d(d0)d)0e*eh*e*@f8+g+g,ip,k,n@-p-r.xx.{.~H//0Ї00ЏP112x2@2p3`3`300445МX5P5П(666`778@x8Х8`(9099P@::0:X;P;<Ьp<<0 ===PX>>(??@?`@@@0AAB@hBBpC C0CPDD EEEPFF GG`GXHH III XJJ(K`K KPL@ Lp  M M0 Mp 0N0NN@8O`OO@P@PPPQ QR`xRR S`PSSSHT TUpUPU@V0VPWphWW0X`XY hYpY 8Z!Z![!p[@"["@\"\"]"`]"]0#(^#^0$^$`_%_p%(`0&`p&`'@a(a`)b*xb`1bp4Hc4c5d 5XdP5dp7d7Pe7e7f7Xf8f8g9Pg:g:hp<hh?h?(i @ip@i@`jAjB0k@CkClChl@DlD8mDmFnGhnInPJ8oJoJoK pKp Lp`LHqLqLr@MprMrM@s0NspNtNxtNt OHupOuOv`PpvPvPvUwPU0wU`wVwVwVwV x0WPxPWxXxXxXy0[py\y\@z]zp^{P_x{0`{aH|a|b}c}d}fP~ g~Ph ijkXm@n(popq`sȂ0t0`uvwh xxȄxx(yX0y`y@zH0{p{؆{{8{h{{|(|X}} }0}@}HP}x`}p}؉}}8}h}}p(X0@Hx P،p8h0`ȍ(@Xp@PЈHx0`؏Љ8h@Ȑ P(X0PHxؒ08`hȓ0(X`H0PГ@P XP @Pp `X`(```ȡ0`ТhУȣ00 `0@ P`H``PP pX(Pиp0Pp pXP(`(p``ȵ0@hз`8 h`(@`Ȼ(0``Ƚ0Phп`8@ `p@ xH0PxP@!H%( *`+p-P/`0 12p4X@67(=@C`PHM0@Q0SZh]`8cgkpmpn@opqxPsuHy }p~P  0H `P@PH`Ъx` HpP pX0P(@`PpP X`p@0Ppp@  X`(` `0ph08`9;P@>@ HJQXpb`e(gPh`i`jo0 oop`pqq(`rprrPrrPsxsyH`|}}p~0P  X(` ``0`h00ВPh8PhФ8``hP@8@з p  @   @X  ( p    P X(0P` 0 X 0 (   `  0 ` p h 0 8 0  p0 P 8@ P ! p# `% @p& ' ( x) p* Hp,  - . `/ 0 Pp1 @2  3  4  6 X!7 !8 ("@: "p; "P< `#= #? 0$@ $@ %B h%C %0D 8&F & H ' I p'0J 'L @(N (O )Q x) R )S H*U *U +V +PZ + \ P,] ,^  -^ -a -c X.e .pk (/Pl /m /m `0Pn 0o 01o 1p 2q h2@s 2@t 83@u 3v 4w p4y 4z @5 | 5} 6p~ x6@ 6 H7 7@ 8 8 8@ P9p 9@ : p:0 : @; ;p < x<@ <Ў H=0 =Џ >` > > P? ?  @ @` @ XAp A (B B BP `C C 0Dp D E hE E 8F F0 G` pG Gp @H H I@ xI Ip HJ JХ K` K K@ PL` L`  M` M M XN@ N (Op O O `P@ Pа 0Q` Q R hR@ R 8Sp S T pT T0 @U U V xV V HW@ W` X hX X (Y Y Y0 HZP Z [ h[ [ (\ \@ \` H] ] ^н h^ ^ (_@ _` _ H` ` a ha a (b@ b b0 PcP cp d pd d 0e e e@ Pf` f g pg g 0h0 hP hp Pi i j pj j0 0kP kp k Pl l m pm m0 0nP n n` `o o 0p p q hq q 8r r s0 ps s @t t u pu u @vp v w xw` wP Hx` xP yP y@ y Pz z@  { {0 { X| |P (}P } }P `~` ~ ( `  ` Ȁ 0  p h@ Ђ0 8 @ ` `p      P 0  ` `   `  X  ( 0! ! `$ % 0( h( Ќ@+ 8`+ + , P`- . . p@/ ЏP2 83 p4  6 p7 ؑ9 @: @< < P= PA  `A  B C PC D D  E E PF G  `H I  J XK L (M N O `P țQ 0Q 0S PT hPU НPV 8PW Y Y pZ ؟[ @\ p] `^ x@_ 0` Ha b c e  f Pf @h  @i j k Xm n (n o  q `r Ȩt 0t v Px h y 0y @y pPy Ы`y 0py y y Py y y py Юy 0y z z P z 0z @z pPz б`z 0pz z z Pz z z pz дz 0z { { P { 0{ @{ pP{ з`{ 0p{ { { P{ { { p{ к{ 0p| } ~ h0 м 8@  0 p ؾ @@ Й Ф x  H     P   P  ` X  (p   `P  0  P h  8 p  p! 0# @# $ `$ x$ % H& `' ( (  ) P@) )  . / 0/ H`/ / 0 hp0 0 (P1 2 p4 ` 5 5 06 `7 9 h: : P; < 0< H< = p= = 0> P@ E  E F G XH I (J PK P `Q  S 0pU V pV hpY pZ 8Z 0a c he i 8 k o 0q pq r @ps ` p x  H@ P P ` ` (  @ ` p 0  P h  8 p  p P @ Ь  x Ю Hp  а p  P     е X 0 (  @ `  00   h0  8 `  p  @p `  x 0 H  @  @ 8`   `     0 P@  P x ` H   x  H    p    0      X   ` (      ` P   0  P h 0 8  @ p  @   x  H    p Pp   p   X  (     ` P 0 0  h P 8 !  # p$ @& @' 0.  @. p /  0 0!0 !1 "p1 h" 2 "2 8#2 #3 $P4 h$ 5 $? 8%`@ %A & A h&A &D 8'0D 'PF (I h(pJ ( K 8)N )Q *S p*PT *U @+U + V ,V x,W ,pW H-0X -Z .`[ .\ .`] @/_ /a 0c x0e 0g H1ph 10i 2i 2pj 2k P3m 3o  4q 4r 4t X5t 5t  6t 6u 6w P7z 7z 7 { X8{ 8| (90} 9} 90~ `:Ѐ :` 0; ; < H<І < < `= = (>@ >P >` P? ? @ h@` @ 8AP AP B pB B @C0 CP Dp hD D 8E E F` pF Fp @G G H xH H HIp Ip J@ J@ J @K K L0 hL L 0M M N` hN0 N 8O O` P pP P @QP Q R xR` R HS S T T T PUP UP  V V V! XW" W $ (X3 X5 X7 `Y8 Y9 0Z: Zp; [; `[< [= 0\= \> ]@? `]? ]@ 0^ D ^D _PF h_0G _H 8`I ``J a`K paL aL @bPN bQ cR xcS c U HdpW dZ e@^ e0b ed Pfg fh  gi gm gp Xhq h (ip i i @j j j HkP k l l l Hm@ m@ n` hn n (o o o Pp0 p q xqЖ qИ @rP rP sp `s s  t t t 8u u u Xv v w `w w x0 `x x0 0y yP zл hz zp 8{ {p | h| | (} }п } H~ ~p  p0    p  X@  0 pP ؂0 @   x  @ Pp   0  P    xp  @  ` h Њ` 8 P  pP ،@ @ P  x ؎ 8   `@ Ȑp 0 P  `  ( `  ` Ȕ 00 @  ` Ȗ 0` hP И@ 8   pؚ@P x!H#$'@)P+P-P0 037 =XPAC(D`E0F`GȣH0PIIJhJХpK8LMSpUا[@`\]]hp^Щ`8`0a@a`bȫc0`cd eheЭf8@ggip`iدi@0jjjhlбpl8l`mmp nسn@n pppqе q00qq0rXr0s(u`vy`zȹp0X0PЅPp X0Љ(p0`PЌ0ph`8p`X 0h0Х@Ppx @@P0hP8@0p@x`H@xH0p@Ppp PX(``0ph8`00ph8`HP@p@Px H P@p @!XP"$('*@,`-.0...P@// 1022X44 6`69X9p: :@?P?PpCC PDFFPGH KLNP NNNpPP8P@QTp TU8UUV`VW(WWXPYYZ\\HP^_@`@ePeHf ghxhpi@ p@pqpqPr8prss`tu(Pv`vwX  w @w `x px 0yH y  x Ѓ  H p @@PHpP КP@XУ(@ `(@`0`0h80`p@ P X(`@` 0  !ph!!P8""0#p##@$$`%x%@%H& &''p'P(P( )0))X*0* +++@H,`,-p--p8../ `/0/(0 0 0 `1`!1!02"20#3$h3%3&84&4&5`'p5'5@(@6(6)7)x7)7`*H8+8p+9+9P,9,P:0-:- ;.;.;.X<`/</(=@0=0= 1`>1>20?3?p3@3h@P4@058A5A6B6pB07B7@C8C8D8xD`9D9HE@:E:FP;F;F;HG<GP=H=H>H?PIAIpKJNJOJ@O@K0PKQLRxLUL[HM_MdNeN@gNPhPOiOj PkPwPxXQyQpz(R{R{R`|`SS0TPTpT`U@U0VVpWГhWW 8XXYpYY @ZZ0[x[[H\p\] ]]P^^ __0_P`0`@ aaa`Xbb(c@cc`d0d0eef`hff8g ghpphPh@i i j xjjHk@klpl0l`Pmm!n"xn#n%Ho'op+p-p2p7Pq8q? r`ArBrCXsDs E(tEtPWtW`ucud0vpevfw@hhwiwj8xpxPqyqhy0ryr8ztzx{`zp{{{P@||}X}`}(~p~~0`x8`p`؂P@p@x؄P@xp0H@pP` p X0(P`ȍ 0"()h0+Џp-8@/ 6=p>ؑ?@ ACDxpEFHIK0MN NHNP QpQQHSTTPWYPY[ p^fjXPkk(l{@@p xH@@@P  зX``(`ȦP0``p(p@`Ȫ(P`@X`(`` P    p  P    `pPpе@8@Ppط@`xH` p!P!% &`&Ƚ'0(p)`+h0,п,8589p;<@>>@xPABHC@EE`G HPJPK L`MOXPQ(`UUUPUU VpV W8W@XXp@a`b@f@h@kxorHt0w0xP}P    PX0(Е`00Ыh`P8p@pxHP@ p0X  (`00 (@./h 1 384p46hP<>8BPC0Fp@I@K@OPQRxUXHpYYYpZ[@]`^dxgkH0lnoxPppq@psupvp@wx@z{x@H PЊ @p X(@P@0xТpHPPШp P@Pxp@pPP@м@x@pP 0   P pP   ` ` 0P  p @@PxpH@0PPp  P   0@Px @H@PP  @!"P"# p%p'p(X.7( PT  V Pw`!Px!0z0"|"#0`##p0$$%@h%%8&0&`&ВX''(( ((@`)К)0*P*+ph++8,p,-p-`-`@.з.`/@x/ /H0P01@11P2`2 3@33@X44p(5p55P`606@(7p7p70`8809`9`9X:p:p  ; ; ;pX<<=x=0=@H>>??p?`P@@$@% A'A@*A,XB-B/(C1C3C04`D05D60E7E`8F:hF:F0<8G=G?H@ApHBHD@IPFIHJIxJ`KJpK@K MK0ML@MhLOLP8MSMUN VpNXNY@OZOp\P\xP0dPfHQpfQPgRpgxRPhRiHSiSlSmPTmTm UnU@oUoXVpV q(WqW`rW s`X@sX`s YpsYsYs@ZsZs[t`[0t[Pt \pt\t\t@]t]t^t`^u^0u _Pu_pu_u@` v`wawxa`xaxHbpybzcP{c{c`|Pd}d@~ e~eeXff(gЃgg`h@hЋ0iij`hj@j8k klPPl`l mmmPnPn@ oo`oXpp (qqqP`rr0sss`tt00u@uu`vv(wPww`xx 0y0yy0`zz0{{P{`||@0}}P~h~~P8Ppp؀@xpH00@pp P PPX`    X.9(:<>`@ȋA0CDEhPЍR8TpWZp]؏^@0`@``p0aؑ@a8PapaaXff(h ii`jȕ`k0m@npohoȗo0pppp`qq 0qq`uPPv w 0ww xP0x@x`xpy؞{@0|}}x`~HPx@p Ф@0@hPЦ8@phШ0p`0 ppX( Xxد@p0xH0pس@Р`ȵ00 hpз8Ъ`pع@ PxPHP`@ X(P``0 X@(@`P0Pph8h8pp8 PPh@8p 0X@ (  `p0 0!X#$(% &)`450678hAB8pCJJpM N8P@QRppTX@YPZ[x^@_Hcfhlm@ qqrhs`t(xz}` }}(0~@~~X(@`` 0`0h 80`00x (а`в0P@`0й0` hл08p@ xpHp`p@0xH@ pP8Ppp@8@p`@`0@x@HPP  @ P    0 pX  p(   `0@hPP8"#`$pp&'@ *-2x6p:H<==P??PpHI JPKKX M@N(OPQ`R@S0S0TWhZ[8p]^bpcd@ j  l!tx!w!{H"P"#@##ЍP$$ %%@%КX&p&('@'P'P`(@(0)@)*ph*p*8++,p,,@--@.x..PH//0h000p(111H22 3@!p3!3p"@4"4#5 $x5$5 %H6%6P&7&7p'7'P8p(8(9@)h9)9*:p+:,:,H;P/;/<1< 1<05H=5=7>9><>?P?@?@@Cx@0H@ IHA0JA@KB`KBMB`NPCOCP DpQDRDR@ESE`TFUxFUFU@GUGYH^pHcHPg@IpjIkJkxJ@mJPm@KnKoLrxLrLs@MtMuNv`N0wNy OpzO{Op~@PІPQ`QQ RRR PSS T0TЖT8UUV@pVЙVК@WWX0xXXСHYYPZxZZ8[[\h\\(]]] X^^(_@__0`` `0aab0hb`bcp`ccdppdd@eef xf` f` Hg g` hphh@i#i0%j&xj*j -Hk/k/kp;Xl<l=(m=mAmPB`n DnPG0oGoPNo`Q`p\p^q^pq aqpb@r0dresgxshsoHtPptsu`vuvu wvxHv@zxvPzvz8w{w{w{XxP|x }y}xyp~yЀ8zpzzX{`{ |||X}}`(~0~~`(0XP `X`(``ȅ@h`Ȇ0H`Щ؈@ H0 P`  нpX X(`Ȓ0hД8 0 h Ж 0@P`Ș0hК80hP М` 0p!P"$h%О'8'`(@)p+ؠ,@4GUxX`\8\`]0^p^ؤ_@@``axb`cH0dd0e0ffPpgh h0iiX`j0k(kll`mȭm(m nnX o{(~p`pȱ0hг80ppص@`x0H0pعЯ8`p`ػ@@з0xп0H0ؿ @Px`HPpP@  X0( `@0`hpp`xH`pP@px0H``   H@H%'P0(- P3:<X@BpLLxpM0Q8TU`VhV@WpWXWY `[`]@^X@ab(c0d fXfg(`g jpm` npnPrx@w xHxy~pPp  XЍ(`PP `@ X0(`У0p`hЩ80p0@`h(`P0 x 8Ppp @ xHH p  pP @   0 `H   x  @H     @P  `  x  @H  P h   (  0  `  0   `  0 " ) -h 0 P10 3 P4 4h p7 88 8 8 09` : ;0 < @ Dh D D  E E E@ E E Fh H I8 K `L Mp N P@ @Q 0S Ux U pVH W Y d @e gP h q ! pr! s! sH" t" 0u# zp# # @$ $ P% x% % (& 0& & `' `' 0( ( ) ph) @) 8* * + p+ `+ `@, @, - Px- `- @H. `. `/ p/ / @0 0 1 p1 1 82 2 03 Ph3 @3 P04 4 P5 h5 p5 86 06 7 p7 P7 @8 8 p9 x9 9 8: : `; p; p; @< < = px= =  > > > `P? @(? *? +X@ P,@ -(A -A @.A .`B `/B /0C 0C 1D 1hD 02D 28E P3E 4F 8pF 0:F ;@G <G <H =@H 0>H @I BxI CI C@J pFJ JK pKhK KK `L0L @ML NM NhM PM S8N @TN P_O `hO aO b P PdP eP fXQ PhQ l(R |R PR `S @S 0T @T U `hU U V xV V HW W 0X X X дPY Y 0 Z Z PZ X[ 0[ (\ p\ \ p`] ] 0^ 0^ _ `h_ _ P(` P` p` `a 0a P0b b c `hc c `8d d 0 e  pe e @f ` f  g  hg @ g  8h `! h `% i 0& pi ' i 0( @j ) j * k * pk P, k - @l . l / m 0 xm 2 m @2 @n @4 n = o > xo @ o pA Hp @C p 0G q H q H q I Pr pJ r K  s K s N s P Pt Q t V  u PW u @X u \ Xv \ v ]  w ^ w ^ w ` Xx b x d (y f y pi y pk `z 0m z m 0{ pn { q | Ps h| t | u 8} w } px } y P~ z ~ }   p   P X p   (  З  ` Ȃ 0  P  h Є @ 8 p   h ж Ȇ ` 0  0  h p   P   P P    0  X 0  (  @  H     @   h  Б 0 0  P  ` P p   x ؔ p @  @  p H  p  0  P  @ P    0  H 0   x  @ H   0 ` ȝ 0 P! ! !h !П @!8 P! `! p!p !ء !@ ! p! !p !أ !@ `! !! "!x p$! &!H '! )! 0*! *! `+!P P,! `/! 0! 2! 3!X 3! 6! 7! 7! `8!X @:! ;!( =! >! A!` C!Ȯ pH!0 @J! J! K!h M!а P!8 0Q! R! S!p S!в T!0 @T! U! V!` PX!ȴ Z!0 \! 0^! `!h b!ж d!8 Ph! i! i!p j!ظ j!8 Pk! 0m! o!p q!غ s!@ t! pv! pw!x w! x!H x! y! y!p ~!ؾ !@ ! ! Ѓ!X p! !( P! ! !@ ! `! !x 0! @!@ P! @! P!( !p ! p! !p ! !0 ! ! Щ!P ! P! !@ ! ! !x ! 0!@ P! p! !` ! Э! ! ! 0!@ P! p! !` ! Ю! ! ! 0!@ P! p! !` ! Я! ! ! 0!@ P! p! !` ! а! ! ! 0!@ P! p! !` ! б! ! ! 0!@ P! p! !` @! `!0 ! ! @!h ! p!8 ! ! !p ! @!@ ! ! P!x p! `!H ! ! ! `! !P ! p! ! P! !X p! !( `! ! 0!` ! !0 ! ! P!h ! `!8 ! p! !p ! @!0 ! ! @!` ! ! ! ! !H ! ! P!x ! !H ! ! P! ! !P ! ! P! ! !X ! !( @! ! !H ! ! !h ! !( ! 0! @!H P! `! p!h ! !0 ! ! !h ! @" "h " " " `" @"P `" " "x $" %"H '" P)" *" 01" 4"P 6" @7" ;" J" \"P n" o"  u" x" p{"X P" Љ"( "p P" @"0 " `" p"h Ф" "8 " p" "h " "8 " `" @"p " 0"@ " " "x " "H " " p" " "P p" "  " @" "X " "( " # #` @# #0 # # #` # `#0 P # # #h # #0 # p# #h p!# `"#8 0## $#! $#p! `,#! ,#0" -#" P.## 00#h# 0## @1#8$ 1#$ 2#% 3#p% 4#% 4#@& 05#& 5#' 6#x' 6#' p7#( @8#p( 0;#( `;#8) ;#) ;#) <#X* p<#* ># + pA#+ pF#+ PI#@, J#, pN#- pR#p- S#- W#@. 0X#. PY#/ Y#x/ P^#/ `#H0 c#0 d#1 j#1 0l#1 q#P2 r#2 @s# 3 0t#3 u#3 u#X4 v#4 v# 5 v#5 v#5 w#P6 x#6 x#7 y#7 y#7 z#H8 {#8 p}#9 ~#9 #9 #P: P#: # ; #; #; #X< #< @#= `#h= #= 0#8> #> #? #h? #? #0@ #@ Ј#@ #XA #A #(B #B `#B #`C #C @#(D #D #D Р#XE #E P#(F #F P#F Ш#XG @#G @#(H #H #H #`I #I #0J #J P#K #hK #K #0L #L p#M p#hM p#M #8N #N `#O #pO #O #@P #P 0#Q #xQ #Q #HR @$R $S $S $S $PT $T $ U P$U $U "$XV #$V %$(W p%$W %$W *$`X ,$X ,$0Y -$Y /$Z 0$hZ 3$Z @$8[ PH$[ H$\ S$p\ T$\ Z$@] [$] n$^ r$x^ x$^ z$H_ |$_ $` p$` $` $Pa `$a $ b Е$b Й$b $Xc Ф$c $(d P$d P$d P$`e `$e $0f $f @$g $hg `$g $8h $h @$i $pi 0$i $@j @$j 0$k `%xk %k %Hl p%l @%m p %m %m  %Pn %n % o p%o @%o %Xp %p %(q %q %q %`r %r 0%0s %s %t @ %ht "%t 0#%8u `%%u '%v )%pv P,%v .%@w @/%w 1%x 2%xx 04%x 0M%Hy O%y V%z r%z r%z u%P{ w%{ w% | y%| {%| }%X} %} %(~ %~ p%~ %` % %0 % 0% `%h %Ё И%8 P% % %p p%؃ %@ % `% %p %؅ %@ `% % %x P% 0%H % % % % %P % % @% 0% `%X % P%( % @% 0%` %Ȏ %0 % % @%h p%А 0%8 @% % %h %В %8 & & &` P&Ȕ &0 & & &h &Ж P&8 & 0& `&h &Ș @&0 & & !&h #&К @&&8 /& /& 3&p P5&؜ 9&@ :& ;& <&x =& ?&H @& A& @E& F& F&H `G& H& H&x H&آ I&@ L& N& N&x O& P&H R& U& X& Z& [&P \& ]& p_& _& a&X f& j&( k& l&ت q&@ y& pz& {&H {& |& |& |& |&@ }& p~& &x & &H & & 0& Ђ& &P & p& & & &H & & P& & P&P 0& P& @& @& &X & `&( & p& &H м& 0& о&x p& &H & & & 0& P&P & & & p& `&X & p&( & & &8 & P& p&P ' 0' 0 'x p ' '@ ' ' P'x ' "'H "' "' #'x $' ('H (' 0,' -' -' 0'P 4' 5' 5' 5' :'X ;' ='( ?' `@' A'P A' B' B' C' @C'P `C' C' C'p `D' E'0 G' G' @H'h H' I'0 J' `K' 0L'X L' 0M' pP' P' R'P `Y' ]' ]' _' _'H b' b' f'p i' k' m' m' @n'8 p' q' q'` 0s' t'0 v' y' z'h {' |'8 @}' ~' 'p 0' '@ P' ' 0'h ' '8 ' ' 'p ' '8 ' ' 0'p 0' '@ p' е' 0'x ' 'H о' @' ' ' 'P ' P' ' @' 'X 0' `'( 'h ' @'8 ' ' p'p ' '@ P' ' p(x ( (H p( @( p( `( 0(( ( ( p(` ( (0 ( ( !(H "( @+( @,( ,( -(P P.( 0( 5( P6( 6(X 7( 08( P8( `9( p9(H 9( 9( :(h P:( `:(0 <( @=( >(h @( B(8 pB( PC( E(h G( I(8 L( M( pO(p Q( U(@ X( Z( \(h ^( @b(8 pc( d( `g(` g( i( j(h Pk( k(8 Pm( n( pn(p 0o( p(@ @q( q( t(x v( w(H y( z( P{( {( |(8 0|( P|( p|(X |( |( |(x |( }(8 }( }( ~(h ~( (8 ( ( (p ( (@ @( ( (` Ѕ( (0 @( ( (h p( 0(8 @( ( p(h ( p( ( ( p(P! (! ( " (" (" (X# (# (($ Ю($ p($ 0(`% (% з(0& P(& (& P(' й(`' (' (( 0(p( (( (@) () (* (x* (* (H+ (+ (, (, (, 0(P- (- ( . (. p(. (X/ (/ ((0 p)0 )0 )`1 )1 )(2 P)2 )2 )P3 P)3 ) 4 )4 )4 )X5 )5 !)(6 $)6 @')6 ()`7 @*)7 *)08 ,)8 -)9 P.)h9 `1)9 p1)0: 2): 04); 5)h; 5); 07)8< 7)< 8)= 09)p= 9)= p:)@> `;)> ;)? ;)h? <)? @)8@ @)@ @A)A B)hA E)A F)8B 0G)B PG)C pG)`C L)C `Q)0D Q)D R)E T)hE T)E X)8F PZ)F pZ)G `[)pG 0\)G `\)8H p^)H `_)I a)pI b)I b)@J c)J `e)K e)xK 0g)K @j)HL j)L pk)M l)M n)M 0o)PN Po)N po) O o)O r)O x)XP Px)P z) Q |)Q })Q )XR )R )(S 0)S 0)S )`T Ѓ)T )0U )U `)V )hV Ў)V Џ)8W В)W )X )pX @)X @)@Y 0)Y )Z )hZ )Z )0[ )[ )[ )X\ )\ ) ] 0)] Я)] )X^ )^ )(_ )_ )_ )`` p)` )0a )a `)b p)hb @)b )c )c )c )Hd )d `)e )xe )e )Hf `)f )g )g )g )Ph `)h ) i )i )i )Xj )j )(k )k @)k )`l )l )0m )m )n )hn p)n )8o *o *p *pp *p *q 0 *q 0*q *Pr *r `!* s #*s .*s 1*Xt 9*t :*(u ;*u pD*u F*`v G*v PI*0w 0M*w O*x O*hx PU*x `*8y c*y @o*z o*pz pr*z x*@{ {*{ 0*| *x| *| *H} *} *~ *~ *~ p*P * З* * P* *X * * p* * *@ * p* 0*x * *H * * @* @* *P @* * * `* *X * p* * * *X * *( * * p*` * * * л* *H P* `* *x * p*H * `* * * P*P * 0* * p* *X * *( * `* *` * * *h 0*И *8 * * *p *ؚ p*@ * * `*x * *H 0+ + + +  +H + P+ + + `,+P -+ 0.+ /+ 1+ 1+P @4+ <+ >+ C+ C+P C+ J+ L+ R+ R+P pT+ \+ 0d+ d+ e+X h+ p+( p+ pt+ @{+X |+ ~+( + P+ +` +ȭ +0 + + `+h +Я +8 + + +p +ر P+@ + О+ +x + +H @+ + + 0+ +P + + +x + +@ p+ + +x P+ P+H + + p+ + +P P+ + + + +X `+ +( p+ + +` + +0 p+ , P,P p, , , , ,X , ,( , , ,` @!, ",0 $, ', 7,h 8, 8, 9, P:, <,P @, `A, B, D, F,P 0H, PH, `H,x pH, H, U, V, W,P 0X, Y, [, _, @a,X c, c,( c, d, d,H 0d, @d, g,p g, h, h,H i, i, i, i,` j, j, 0k,X @k, , ,x , ,( 0, , , ,X , , ,p , ,@ , `, ,p 0, P,8 p, , 0,` P, ,( , , P,X , , , 0, @,P , , , @, й,P , , , 0, ,H p, , 0,x , @,H P, , ,x , P,@ , , ,p 0, @,8 , @, ,p P, ,@ p, , P,x , ,H , @, , , ,P , 0, 0, , ,P `, , , 0, ,H , P, p,p , ,8 , , `,h , ,0 0, , ,X P, p, , , ,P , @, `,x , ,@ , , ,p @, ,8 , p, ,` , ,0 , @, ,h , ,8 0, , @,p , ,@ , , ,x 0, ,H , 0, p,x p, p,H , , , , 0,P , ,  , , ,X , ,( , , ,` P, ,0 p, , p,h , ,8 0, , 0,p , P,@ , , 0,x `, ,H , , , 0, @,P - -  - - -X - -( `- p- -P - - P-x p- @-@! -! -" -x" -" ` -H# ` -# -$ ` -$ -$ P -P% -% - & -& -& -X' -' P-(( 0-( -( -`) -) P-0* -* -+ -h+ -+ 0-8, -, -- -`- -- -0. @-. -/ -h/ &-/ &-00 &-0 '-1 '-h1 (-1 p)-82 )-2 p*-3 +-p3 P,-3 .-@4 /-4 1-5 2-x5 2-5 `3-6 5-p6 6-6 9-@7 9-7 `;-8 @E-x8 H-8 H-H9 pI-9 J-: M-: M-: M-H; @N-; P-< `Q-< 0R-< R-P= S-= T- > V-> W-> W-P? PY-? ]- @ 0_-@ b-@ c-XA c-A d-(B e-B e-B k-`C k-C m-0D m-D n-E q-hE s-E t-0F `t-F 0y-F y-8G z-G p}-G ~-`H ~-H -0I @-I @-J @-hJ -J P-8K @-K -L P-`L -L -0M -M -N -hN -N `-8O Ч-O @-P -pP -P -8Q -Q @-Q p-XR -R -S -xS -S @-8T p-T -T -XU p-U - V -V p-V -XW -W -(X -X -X -`Y .Y .0Z .Z .[ .`[ .[ . \ @.\ p.\ .@] .] .^ .`^ @.^ p. _ ._ ._ .H` .` #.a P$.xa 5.a :.Hb :.b ;.c <.c S.c Z.Pd [.d \. e \.e ^.e _.Hf pc.f d.g `w.g py.g z.Ph `.h p.i p.i .i Ж.Pj .j 0. k P.k .k .Xl .l . m .m .m p.Xn .n .(o .o .o .`p 0.p .0q 0.q P.q .Xr .r .s @.xs p.s .8t .t .t .Xu 0.u . v .v P.v .Pw .w 0. x .x .x `.Xy p/y /(z /z p/z /`{ /{ P/ | /| /| /@} /} P/~ p/`~ /~ /  / / ,/H ,/ 4/ 5/x `F/ J/H PK/ PL/ M/ Pb/ i/P j/ Pk/ k/ k/ l/H q/ s/ t/ `|/ /P / 0/ / / `/X / / / / 0/@ p/ / /` Ћ/ / 0/ `/ /H / P/ /x P/ P/H / / / / /P / / / / /H / 0/ P/h p/Ȗ /( / / 0/H P/ p/ /h /ș /( / 0/ /P / / `/ @0 0P `0 `0 0 40 @<0X @=0 =0( @>0 p@0 A0` B0ȡ C00 D0 E0 @G0h @J0У K08 K0 M0 U0p @`0إ b0@ c0 c0 e0x f0 h0H pk0 pm0 m0x m0ة n08 @n0 pn0 n0X n0 n0 o0x 0o0ج P~0@ `~0 P0 0p p0خ @0@ 0 0 p0x 0 `0H `0 0 `0 0 p0H 0 0 `0 0 0P P0 0 p0x 0 0H 0 00 0 0 p0P P0 00 0 0 p0X 0 0( 0 00 0` 0Ƚ p00 P0 0 P0h 0п P08 0 P0 0p P0 0@ `0 0 0x 00 0H 0 0 p0 0 0P p0 0 0 @0 `0P 0 0 @0 0 0X 0 1( 1 P 1 p 1X 1 1 1 1 1H 1 `1 1 1 P1P 1 1 01 1 1X 1 1( `1 1 1` 1 !10 !1 "1 "1h p#1 $18 %1 %1 %1` )1 -10 01 21 @51h 51 618 71 81 :1p :1 @;1@ <1 >1 ?1x ?1 ?18 ?1 @1 @@1` @1 @1 `B1 D1 D1P D1 D1 pH1x pJ1 J1@ K1 K1 N1h Q1 R10 R1 R1 @V1X `V1 [1 ^1 c1 c1P d1 @d1 `d1p d1 d10 f1 i1 @i1` l1 0l1( n1 r1 w1` x1 x1 py1x z1 z1H {1 p|1 }1 }1 p~1P 1 1 p1 1 1X P1 1( 1 1 1` 1 p10 P1 1 1h 1 18 1 P1 p1p 1 1@ 1 P1 1p 1 1@ 1 p1 з1x 1 1H P1 P1 P1 p1 1P 1 1  1 1 1X 1 1( 01 1 @1` `1 10 1 1 p1h @1 028 2 0%2 ,2p `G2 0`2@ m2 pr2 2x 2 @2H 2 2 2 2 2H 2 2 2h 2 p28 2 2 Л2X 2 2 02x P2 2@ @2 2 2x 2 2H 2 2 2p 2 20 `2 02 2X 2 2( 2 2 2` 2 20 2 2 2h 2 28 2 2 2p 2 2@ 2 @2 02x 2 2H! 2! 2" 2h" 2" 20# P2# p2# @3`$ `3$ 3(% ` 3% ` 3% 3`& ` 3& 30' 3' P3( p3h( 3( 38) 3) 3* 3p* 3* 3@+ 3+ 3, @3x, @3, 3H- 3- .3. /3x. 03. 73H/ p83/ PF30 K30 ^30 c3P1 @f31 g32 g3p2 h32 i383 j33 k34 pm3p4 p34 ~3@5 35 `36 3x6 36 3H7 37 38 3p8 38 3@9 P39 `3: @3x: `3: д38; 3; `3; 3X< 3< 3= 3x= 3= p3H> @3> 3? 3h? 3? p3(@ 3@ 3@ 3PA 3A 3 B 3B 3B 3XC 3C 3 D 3D 3D 3PE 03E P3F p3`F 3F 3(G 3G 3G 3`H 3H `4 I 4hI 4I 4I 4`J 4J @ 4 K 4hK 4K ` 4K 4`L 4L 4M 4HM 4M 04N 4pN 04N 4@O 4O 4P 4xP 4P 4HQ @4Q 4R @4R 4R @4PS 4S @4 T 4T P4T 4XU 4U P4(V 4V 4V `4`W 4W 40X `!4X !4Y `"4hY "4Y #48Z $4Z $4[ %4p[ %4[ &4@\ p'4\ (4] (4x] )4] )4H^ *4^ *4_ p+4_ +4_ p,4P` -4` -4a .4`a @34a P44a p548b <4b A4b B40c C4xc PG4c Q48d @`4d f4d g4@e h4e i4e o4(f u4f u4f w48g x4g y4h P{4ph 0}4h 04@i p4i 4j @4xj 4j 4Hk 4k @4l p4l 4l 4Pm `4m 4 n 4n p4p p06[ pp4p|0|0 |*F|Xe|| |0|0l ~"t7pg7f7@7+<@~7В8T8f7`j$+.~_jp@=i70~qz}~p@=p@=|8p ~xz7pg7@=!~xz7pg7@=!  HF=4g7!   XC= f7!2  8C=e7!P   HC=f7!p**-GhF=f7 "NNQy8F=,g7"**GXF=f7"  xF=$f7"8iuu7pg7<97@%H(BNYPu7pg7 847'lorwp@=p@='zz}(8llXG=7)(ll%0)225)(llhG=P7* ll(D=n7 *P+::=+)PN]+A8-K8llxG=7.b(ll%G=$70. /(llG=\7@/ ll 8D=o7`/!6At7pg7e7 0JQT[ft7pg7e7`0 mru{t7pg7e70.t7pg7e70?t7pg7e7P1Qt7pg7e71dQt7pg7e71{t7pg7e7P2 & 1 8 t7pg74 8e7p3? & 1 8 t7pg7H 8e74_ f i q | t7pg7e75_ f q | t7pg7e7p5  t7pg7\ 8e76  # . 5 t7pg7p 8e7P8" <  ' 5 7К7`H8=9f7<] E H L i7p@=e7 <o:rO S xz7pg7e7P<:rV S xz7pg7e7<lZ ] wxz7pg7e7<lZ a wxz7pg7e7<*Qe i xz7pg7e7=lZ l wxz7pg7e7 =lZ p wxz7pg7e7@=*Qt i xz7pg7e7=*Qx i xz7pg7e7=|  xz7pg7e7@>$|  xz7pg7e7>7|  xz7pg7e7@?M    hx7pg7 8f7P@]  * 3 O Z a hx7pg7 8f7`Amh s v  p@=p@= 8PB  xz7pg7 8e7B  xz7pg7e7C    & p@=p@=f7`C- 8 ; ^ c ̃77e7@Dj v  7749f7E_ h brĨ78@G 8l8f7@Hu t7pg78e7H S^787pH47J (oD8897P ( &Od77;i7@S =PYt7pg7t=9e70T  t78u7 G 8e7T  5:Ct7xt7G 8e7U- NUXalp@=p@=`VP (s7g7h~7Wh 7t78h7W 8TZs7l7G;h7 [ p@=p@=[ 6?$787=9h7p\ Ls(9x778h7^/ L[p7؞7=9e7`{ xz7pg7e7 a (1Z$h77G;4s7hW p@=p@=8Phn (\7t78h~7`i{ *577f7i >*577f7`j LZ7T7<e7o "*xz7pg7e7Po/6*xz7pg7e7o >yDP}x7H8`G;f7v8p@=p@=D80wO(  Z e z D77Ԓ9h~7x\  xz7pg7l8e70ys xz7pg7e7y  xz7pg7e7y* i p@=p@=0z( !!C!N![!7g78t7{ j!s!z!!!!t7pg7$8t7|!!!0"<"I"7$7H$9e7P#\"g"x""""p@=p@=t9e7 6 """###78788f7p[ "#%#L p@=p@=e7(#>#B###7(8Ge7 "##L i7p@=f7  #####z7pg7f7 "##L i7p@=,7 (#####v7pg7,7. "##L t7pg7,7 N "##L i7p@=f70n l##wz7pg7f7P "##L p@=p@=7`(#$$$%'%7x7ē97Ћ%%% &,& 7D7f78&B&F&&&77Hf7Й&''='I'g77H0"0^'m'v''''xt77L8e7G ''( ))t7pg7<f7)))))t7pg79e7 )))))t7pg7d9e7 )**t***7D7<:f7 )**)*0z7pg78f7`A**+.+9+H+7T7G`8e7Q)O+X+)+xz7pg78e7@n+++,,, 88Ȏ:e7,,-5-@-M-pg7z7(9`-g-j-r-}-hx7pg7f7------77t8f7 --*-77e7-----i7p@=e7.-..%.i7p@=e7 ",.-3.*C.i7p@=e72J.M.].z7pg7f7@F d.g-k.{..v7pg7@GDi7Y -.*.77e7pn .-.-.77e7~(.J.... 7g7i7.-// /؉7g7e7p(+/J.:/.P/ 7g7i7W/g-b/r-n/؉7g7e7(y/-/-/ 7g7i7P--/-/77e7 // & p@=p@=0///000$77 8e7J-080C0r-Z0c0t7pg748e7` p0w0z0 0t7pg7e7a000001778e7 11 1[*1t7pg7e7@o11<1?1.+a1877e7l1w1z111t7pg7e7`11111ԟ77`Ge7(2"212222Ԝ7<7G\8h7222-2t7pg7e7222.2t7pg7e7 333/3:3i7p@=e7 1A3D3[*1t7pg7e7  1A3M3[*1t7pg7e7`V3b3f333p@=p@= 33455D57$7T:e7h(h5}55555v7pg78f7(556G6S6\6pg7x78e7 c6668897H7<f7<d.q9x9{.99t7pg78e70w99v7pg7e79999: :z7pg78e7:#:*:6L:U:t7pg78f7Pd:s::#::p@=p@=(>9e7 :::.:w7t7 Hf70:; ;;;pg7x71 &;;;w;<!<:<7t7@HK;f7c(s<<<O <<7g7d>9h7<=$=t7pg78e7p /=9=R====7؞7:f7@,. >>*8>?>i7p@=84 J>S>h>>>>7T79f7o(> ?7????,7g7T;f7 ?@@@@@@d7D7;f7a(#A:AeAABBd7D7;f7 t(KB`BB CC C787;f7 SCcCC E,EIE77^<f7EE-F6GBG_G؛77 <f7PGGGIHUH^H7g79f7'wHHH^JjJJ7743<e7`JJJBaKpKd7H78e7d.KK{.KKxz7pg79f7`KKL EHNgN78G0<f7` &O-O6OfOqOxz7pg7>9f7P |OOO7PBPMPy7pg7 ;f7-(PPP@QKQVQy7pg7$;f7G QQQRRRy7pg7;f7`&S;SS^TjT{T7`7<;f7yd.TT{.KKxz7pg7T9f7 UUUVVV7h7 G`<f7 |O?WO7PBPMPy7pg7(;f7(PvWP@QKQVQy7pg7,;f7` QWQRRRy7pg7|;f7" WXQX/Y;YJY0z7pg7G;f7&YYZRZZ7`7;f7P)+d.D[W[{.KKxz7pg79f7*C[[\/];]L]7h7@Gb<f7-[(]]u^s___7d7@Gl<872v0 `F``aaa7d7`Gn<87P6(_bobbccc,77G<;87p: d4ddeee؛77G|;87 >d. ff{.KKxz7pg79f7>Lf\ffggh7h7`Gd<f7Bhhhhhhx7pg7f7PC (hhhhh 7g7h~7C$0hhh5)iH7g7h~7D;2i9i9h7V EpTpWp.+pp\78787X1 pppsss77{<h7 bI@Ztjtnttuuh7g7$8480eg u-u0uLuWu77e7@f(bunurufwrwzwhx7pg7T<h7lwwwxxt7pg7?9e7 mx&x1x6Qx\xp@=i7G8mgxnx}xxxxpg7x79nxxp@=p@=e7n xxx/3y yp@=p@=9o+ y/yQUIH‘$w7pg78~7I'ߑB[p@=p@=A: 'zfOp@=i7@G'ْt7pg78e7`'~|7 7GT?9e7'œ̓# g7780'( -4.V](y7pg78h~7 (ds5pg7x7K;@(%8Y7,7LB:e7`V()Ec=t7xt7GB:e70( #-8p@=p@=(?Ur ߗ779e7@( %IPp@=p@=:')cup@=i7xm;PW)FSp@=p@=4;e7P)I_ݛ77sHԲ;e7* #v7pg7e7P*-BFÜ$77f7*֜7878e7p*3?R̞ݞ778e7 +(ْDy7pg7h~70+K`Yevܚ7ԥ7;e7PI+(Ġ٠HSby7pg7t:h~7+{~*p@=p@=e7+0~t7pg7L;7, آs_v77:7 0, أ!(-p@=p@=M;h7`H,Zcf"g7D70a, L p@=p@=@p,_ q t7pg7e7,t7pg7e7`,&bet7pg7<8e7@,pХܥt7pg7d8e76- 0jut7pg78e7@r-ʦHTaН7`7d:e7 -=ITt7pg78e7.cjmt7pg7e7`A.˨֨p@=p@=80 a. p@=p@=8 !.--H˨{p@=p@=:!.ɩ p@=p@=:e7"/1;RYp@=i7G2@N]p@=p@=t!;e7@ 3Lup@=p@=,8A63 6 Cp@=p@=tN;CF3ֵYezpg7x7:Hq3+Apg7x7:e7M3lX̺غ7p8@Hij<e7pZ5pg7py7oH:e7]"5ʼռؼp@=p@=e7@_<5(/2DOt7pg7e7_S5VadJ}t7pg7e7`i5 h77t7b5#25]ht7pg7e7pc5qx{#t7pg7e7d52žt7pg7e7e5/ p@=p@=e7f5/p@=p@=e7`f6)8gpg7Epg7x7,8`7 LWZ*hop@=p@=@8f7-8 vp@=p@=|8h7G8 %p@=p@=T8f7 g8,;Blupg7x7h8e7 8 |5Abg7đ7V<(s79g7\7:e7'9;p@=p@=e70A9* p@=p@=49a9.'.DKp@=p@=9f7@}9Zmu 3pg7x7:f7@9p}p@=p@=e7З9O p@=p@=e79!477<;e7P!:477<";e7P7:0B{77,P;h~7L:/ t7pg7h:e7pd::&76\k77ԗ9e70}:| t7pg7#;f7Т:+Mi!p@=p@=hn;e7: -p@=p@=e70:˨p@=p@=$9:C>Mpg7x7t9;\il7g7f7,;-9F787:f7F; q}$747Q;7~; H477Xo;f7; 3>Et7pg7|8g7; Llt%@77GH$<e7V< $-pg7x7E:f7 < Dbit7pg7@:e7<%X177I<f7p4=( t7pg7@9~7z=+:KC!mxt7pg78e7==Id77 pH@;f7=(pg7x77=(1p@=p@=Ę9f7@= %(Et7pg7e7 > L[bt7pg78e7H>LWbh7g7#;e7c> 77;e7P>(3:t7pg78f7>:ADS t7pg7e7?M(3:t7pg78f7.?:AwS t7pg7e70K? t7pg7f7k?jmt7pg7D@9e7?(5-t7pg78f7?(t7pg78f7?('6jt7pg78f7@| ux t7pg78f7 F@t7pg78e7@˨p@=p@=e7P@ #$+i7p@=8e7@2=DVahi7p@=8e7@@8oIx7pg79t7`@8N7:Ju7pg77@MTep@=p@=d9`A.p@=p@=9$AV %p@=p@=08\A07Hp@=p@=:tA t7xt7G9e7A $'-8p@=p@=A18Inup@=p@=T9e7Ap@=p@=8e7A +6Ap@=p@=0:h7BT^st747H:f7,B p@=p@=D8PEB5<Iԟ77@H9e7WB Zp@=p@=X8oB18hupg7x79B 2Vap@=p@=e7PB0p@=p@= F:80B(.=@T[p@=p@=D87Bfmp.xz7pg7e7`BLut7pg7D9e7p*C 6At7pg7@9e7UCL\`&77̔:7pC =Wt7pg79e7C5j*=t7pg7D;e7 Cfqxz7pg7e7D>3H$77:e7Dkzt7pg7$;e7D(5=77F:e70ECv7pg7l8e7 ;E 5-#*t7pg7l8e7 \E 15L p@=p@=0kE9FJ5\t7pg7e70EalvNv7pg78e7pEfOt7pg78e7` Et7pg7e7 E%)hINt7pg78e7 FYot;L778:e7 *Fwp@=p@= 8VF.p@=p@=9PqF)q FOt7pg749e7F^ast7pg7F:f70Fhxz7Du7Ge7FP\epg7x78 g7 F|t*)Hg787\%;(s7`2Gu-t7pg7Pi7JGu-t7pg7Pi7fGu-t7pg7Pi7Gt7pg7:e7G!08q|p@=i7G8Gp@=hi7 Ge7Gp@=p@=8G (1g7d<:G8e7!Ht7pg7e7@"(H( clpg7z7@9e7#:H{ԟ77e7$MH[p@=p@=p$\H -t7pg7Di7%vHap@=p@=%H{.+p@=p@=`&H2=SXt7pg7Di7'H_nt7pg79e70)H1%t7pg7e7)H.2@p@=p@=@*HGPXv{p@=i7H8e7*H;p@=p@=e7`+I 7|7 H@9e7,'I&/;Ft7pg78i7`-MIMX\;it7pg7f7-aIpy}xp@=p@=e7p.vIy.p@=p@=e7/Iyp@=p@=e7/Ipyxp@=p@=e7P0Iyp@=p@=e70Ipyxp@=p@=e71Iyp@=p@=e702Jpyxp@=p@=e72Jyp@=p@=e7p39Jpyxp@=p@=e74TJyp@=p@=e74nJyp@=p@=e7P5Jyp@=p@=e75J&X-#7p@=p@=`6JX> Hp@=p@=6JXO Hp@=p@=@7JXY Hp@=p@=7JXc Hp@=p@= 8Jmyvp@=i7Ge78KЅ77GԜ9e7:6K ;:t7pg7e7:MK?Nnُp@=p@=tG:<K p@=i7G`=K  NWȊ77H8e7>Kbopg7x7\:0@K#H`mg77$9AKjn7,7@G 8e7CKitpg7z7t9pEL  & p@=p@=EL  & p@=p@=F1L27Hg7p7ĝ9GEL[jn7d7|f7e7I\Lt7pg7e7JpLy Pu7t7`Gf7 KL ,p@=i7@GKL3TxR(777:e7NLfw&77f<e7WM fǑ7g7i7W1M  # T 7ԙ8 G48f7_AM c g L p@=p@=_QMk n z i7p@=e7_cM2iX}  t7xt7Hf7P`qM   pg7x7`M   5 t7pg7e7bM    p@=i7GpbM: . pg7x7cM ! ) ? H t7$t7G 8e7cMO X Ch g7d7dMs  _ pg7x7`fN   V  77:f7iGN   r-  t7pg7\8f7jyN! , 4  D I p@=p@=48e7jNP f  77$&;e7oN>IZ̏779Xs7qNqx|pg7x7@rNp@=i7qH8psN0"xAMv77&;h7wONt7pg7Di7x)O(.BIpg7x78py% R\ qxp@=p@=8y;O8778Di7{[Op@=p@=P{kOp@=p@={{O#p@=p@=e7|O/4p@=p@=e7~O.p@=p@=f70Op@=p@=e7O ;p@=p@=e7O"15Yp@=p@=e7O1`d[*1t7pg7e7O1`n[*p@=p@=e7 PxVt7t7 sHH8f75P1t7pg7H\8Di7`HP)`77f7]P<L]g77G:Ls7jP#' 3t7pg7e7}P #:-8p@=p@=0PDKY~p@=p@=d9`n${p@=p@=P  xz7pg74A9L7P)-;7t7xt7@Ge7 P>#EOZp@=p@=pPan$57,7X:Pht6<K7,7:e7Q #z & i7p@=e7PQ # & i7p@=e7$Q#-p@=p@=;QSi p@=p@=p8@RQSi p@=p@=8nQm{p@=p@=~Q2=J877dH:e7Q`-ew779e7PQc77$8e7Q>R]pg7Jag77';НNR˨p@=p@=8qR p@=p@= R*~t7pg7:e70R8DWT77H:f7Rp@=p@=@R6G#477TI:Dg7RFQUJ}gt7pg7Dg7Sn{  1 t7pg7I:Dg7SNN R alp@=p@=0S\ g /w t7pg7Dg7`JS~ ˨ t7pg7Dg70dSjk  a  t7xt7H8f7yS|   pg7x7`S1  !!pg7x7L8@S !'!/!D?!H!t7pg78f7SO!V!^!n!u!p@=p@=8S|!!!5"A"V"g77:PSu"""(#3#R#g77Q;e7PYT##;#p@=i7зiT####pg7x7иyT )# #p@=p@=@T$#$ $pg7x7T $0$\$$$$pg7x7H;e7T'%7%g% &&:&D77Hp;e7@Ti&t&&& &&p@=p@=9`T &&&Y'e'z'd77pHDJ:f7T'''p@=p@=@U''''' (pg7x7A9$U(#('(K(V(p@=i7@G86U](f(v((((g7`7GT9KU(((5/)8)pg7lz7G9mUK)R)^))))i7p@=t8e70U)))*+*$7t7J:f7UB*W*_****877`rH8e7U***+ +pg7x7A9U#+3+K+j++g774K: U+++{++p@=p@=8PU++,#z,,pg7x7;#V,,, --pg7x791V (-,-L p@=p@=CV2-M--t7.X.77<;e7qV...///t7pg7;e7V 00"+0p@=p@=V20A0I000g7P7$:V0001008778e7V11#1V1a1p1pg7x7D9 V11111778e7pW122u444x8(8<%Wa5t5|5 55p@=p@=$B96W0555666Ȋ7D7T:e7W877!7g7r7p7D7K:7@W@7775-77u7pg788@W7878888u7z7;`X8)8q 9p@=p@=e7'X 99˨/9p@=p@==X69Q99~::77,u<e7kXD;W;;<<<hg77<X(=*=>====ԟ77:e7X====t7pg78e7X=>>B[>h>77:e7X}>>>#?/?B?̏77<e7 !Y'??t7pg7e73Y_??/3??t7pg7<8e7@aY??@ @#@t7pg7$8e7Y.@=@N@@@@t77|(;e7 Y@AAXAcA77p:e7 YAAA AAp@=p@=88 YAAACBOBZBԟ77$L:e7YsB)|B Bp@=p@=e70YBBBBBCpg7"_)_xz7pg7(8ds7 p` 4_#K_k_77f7 q`t___```7t7G:e7v"` aaaMaTat7pg7ԡ9e7w` eataxaO aat7pg7$9f7x`Haaabbcԓ787$:̉8}qa_cfcjcxcct7pg78e7`~aCcc-ct7pg7e7~acccccpg7dIdp@=p@=T80aTd_dddddp@=p@=adddYeeeuep@=p@=|80aeeeff9fhg77<8 b Qf^fjf fft7pg7P8~7bk ffz i7p@=e79bffffft78u7Gd8e7Rbfg"gSg^gg77:`qbyggg(ggt7pg7t9e7b0ggh/3h)h(7787`b04h?hKh/jhuhu7pg7870bhhhhh877Ģ9e7b@hhinn o7ܾ8H;7 c?pp pp@=p@= #c?p"p pp@=p@=:c&p0pq FCpt7pg78e7Pc Lpbpp5qAqbq$77(r;h7cqqqLrXrsr$7d7:f7@c rrr/ss7g7x8s7@c sssktwtt7ȥ78e7cttt txz7pg7e7dttt txz7pg7e7#d.u8uuvvvt7pg7(<e7POgwx0xux|xPu78u7G;f7Pgxxxxxt7pg7:f7gy1yGyyyypg7{{{{77Hs;pXhsʝg77|8`?RpҝP\88e7Elp8477T9e7Gp]lp6v7pg7 8e7Hpi7p@=48e7`Jp@7H}ΠD7t7|D97@Oq x*387|7G\8f7O1q FlQkv7pg7f7PEq(v.7|7G8\i7@Q~q(ء 7|7`G8\i7@Rq8%)#Ax7pg7X7S~p0#JN#Vy7pg7Pi7Tq(]fj5zp7t77@UqfOxz7pg7f70Vq0ŢԢܢ{.u7pg787Vq8ŢԢ{.u7pg787W r0)1r-ELxz7pg78(7@XrPWfjƣѣأ,{7pg7$8d70Z>rhx7pg7f7ZRrSi  t7Du7He7 [lrSi xz7Du7He7p[rSi% t7Du7 He7[r Si/ Pu7Du7Hf7\r9@D{p@=p@=e7@\rLPXp@=p@=\r9@]{p@=p@=e7\s0enrx~P77@G7P]sLt7Du7`Ge7]sLt7Du7Gf7]-sLt7Du7 Ge7^;s /LXt7pg7$g7P^Hs¤ Τp@=p@=^Us/LդXp@=p@=e7_es9@ۤ{p@=p@=e70_ts@{p@=p@=e7`_s /LXt7pg7f7_sSi t7Du7GDg7_s +p@=p@=``s%0 p@=p@=`s9@:{ z7pg7R/t7pg7M:e7`w("ϲx7pg770wHز,77xT;L8 x0P_c777xxt7x7D9М9x*18p@=p@=D9e7PTxERlY'pg7x7L;e7Пgx(Op Cܶ77,:t7x0"/6xz7pg7X87x !AEDMz7pg7e7xT_oz7pg70E9e7$yɷѷշq ߷p@=p@=;y1-4877lE9e7@QyGTXhsp@=p@=Хkyz-pg7x7l8e7`yø˸pg7x780y}-t7pg7e7y #CNp@=p@=8PLY AUp@=p@=ycgVup@=p@=e70y|"t7pg7e7ZOZp@=p@=Pyù/3չp@=p@=e7 zܹ1-4877E9e7Ь!zr- p@=p@=7z'<J@Q077HE9f70fzX׺.(4 9@=:GTU;8z7^TD7t7`H:Pi7zC--5p@=p@=8e7Pz8<KOl7D77z077H47{1,787e7{9BR~0778Pi7@B x7pg7h77{ .P/x7pg7h7@M{(3?J778h~7`{(UK^7Լ7$7{D]7T79Pi7{(at77Gt7@{xpg7x7A0Pu7pg7t7p{(r-hx7pg7T7 { 2B~$7D7D9D70 | ,777 F9e7%|V_s977 Ht8e7=|N't7pg7\F9e7[| 6?CSsx7xt7H7t|N|Jp@=p@=e7|Lut7pg78e7|& 7ȁ7He7| !*:2nd7T7rH8f7|t7pg7e7| t7Px7 Gt7`}r-v7pg78e7,}$'+Tv7pg7e7F}Wjnv7pg7 8e7_}'877M:e7}MnY77N:e7}8~77 GD:e7 }˨ v7pg7G :e7~5DTO v7pg7G:e7%~3>Ev7pg7D:e7`:~t6t7pg7F9e7 O~p|xg79H 8e~ `z289H+;f7@ x~(Pt7pg7Pi7p ~(7P:t7pg78~7 ~lADwt7pg7e70 ~LL'L2Lp@=p@=p ~V_btt7pg7e70~.{~.pg7x7p@=p@=48@09 pg7x7H8`=1![*p@=p@=]p0%( 0t7pg7e7p0%2 p@=p@=@<C.:Yt7pg7\8e7 `cL t7pg7e7Lkn'L2Lp@=p@=Pi7 x#p@=p@=9 (-p@=p@= :7`bp0#' p@=p@={1X< Hp@=p@= 1SW[*p@=p@=`>#aOZp@=p@=ĀkLrvp@=p@=8778e7Bp@=i7 rH9 $Y`cn$77He7=u`|n877 He7U  787 tHf7Pw :;xz7pg7f7 ;Pu7pg7f70lwt7pg7e7Plwt7pg7e7pƁlwt7pg7e7ց1[*1t7pg7e7 .-.\7g7~7`9v7pg7e7 9v7pg7e7 ,>  Oz7pg7e7pD'B@z7pg749e7 T :;0z7pg7f7!f #7g7h7!x>Ohx7pg7f7!_ q 877e7@"1[*1t7pg7e7"  L v7pg7e7"ł  L v7pg7e7"قlwt7pg7e7"l#wt7pg7e7">Zi+Ohx7pg7f70#>Zi5OChx7pg7p8f7#;@N[^ju7pg7T 80$R Ziq-{xz7pg7e7$f  7g7h7%Y t7pg7e7p%fp@=p@=8e70&L'L2Lp@=p@=p&҃Wbpg7x79e7'q|˨p@=p@=e7(2p@=p@=8e7`)1(4;p@=p@=8e7*PZphg7X8H<f7`1'5Ehg77G:e7p4 !Dt7pg7Di74фJS [ft7pg7f75܄ (-L p@=p@= 5+{!p@=p@=P5&3Eg77Ԧ9p7lwp@=p@=87@lwp@=p@=87ilwp@=p@=87lwp@=p@=872N  +p@=p@=8e786{p@=p@=8̅>G2]KDu7x79>GT]KDu7x7:W[{p@=p@=e7:cdj@Qt7pg7f7p<01@778?+>OSOz7pg7e7?B>[gOyz7pg7$8e7 @Y>OOz7pg7e7p@p>OOz7pg7e7@>[Oyz7pg788e7At7pg7|N:e7BΆ>Ot7pg7e7@C> Ot7pg7e7C>)Ot7pg7f7C37At7pg7f7@D<HO-{at7pg7L8e7D]k lz t7pg7e7Dxp$77К:e7F)9J}sԟ7\7F9e7G‡'2Gԟ77\:e7I`ko}p@=p@=e7PJ1[p@=p@=`8Jp0 p@=p@=J!m{p@=p@=K4177e7KE>Oxz7pg7f7 LU* i p@=p@=t8`Lb* i p@=p@=8Ln8Si2 =p@=p@=h7L~8SiB =p@=p@=h7@MPSiM =p@=p@=T7MPSiX =p@=p@=T7M8Sic =p@=p@=h70Nň8/Lowp@=p@=h7pN؈@/L|p@=p@=T7N9@{p@=p@=e7N1[*1t7pg7e7 O. -t7pg7e7pO.xVt7pg78e7O;+p@=p@=8`P!**P&:P...2U:**LPUT:ftU]Vl   V|lV   V*N/ 0W]ldPWn2wXՉ)) X  X0 G(F=470[0$D=@=7\#0$HE=@=47\20$E=@=7]A0$D=@=7p^Q0!E=@=7P_a0(4!E=@=70`q08D!hD=@=T7a0HT!D=@=7a0Xdh{xE=@=d7b0E=@=7c0D=@=7dNJ0 XE=@=D7fي0'6: E=@=7 g0YhlD=@=7Ph0l(E=@=7i0lE=@=7j$0lxD=@=d7k80lE=@=7mL0lE=@=t7@n`0 lF=@=7pot0"&MD=@=7p0Tf&MhE=@=T7q0j|&ME=@=7s0&MD=@=70tɋ0&M8E=@=$7`uߋ0&ME=@=7v0&MD=@=t7w NN  xNN x0 ::5Gx@::LGxPll^ybj:o 0ys:C=e7`yXD=e7@z(C=@=f70{*p{Œ]l{ό  {݌  {  {  F=d7{ |$  U|7  ]}K  e}b  m }z  u0}  }@}  P}  `}ҍ  p}  }  }  }0  }E  @=d7}`p}ll0  @*"Ҏ]l5>*E>*^ w:~P4llpL:iN:0:`: Ϗ:$)0\@ w:gpw$@'  P;*Z*Јw]l*&0::`ːlLTk [Љ*{w:@7K]l p:P:&̑*2]lF:P-]l\0S]lfP{:p:|Œ:]l":0B:`b::x0xГxLz))k  `ll-8*ll?89JSVZet7pg7e7Yl~v7pg78e7vxf t7pg7e70xf #xz7pg7@=xf #xz7pg7@=ǔ6xz7pg7@=Г**Qi xz7pg7@=9xz7pg7@=Txz7pg7@=/gxxxz7pg7@=@S`-2xz7pg7@=kxz7pg7@=Nxz7pg7@=)4v7pg7e7xf t7pg7e7NNJxz7pg7@=PN;p@=p@=@=Bp@=p@=@=@-N;p@=p@=@=E**Qi xz7pg7@=xxz7pg7@=pxz7pg7@=Nxz7pg7@=` )  Ixz7pg7@=ӖP]pv7pg78e7v7pg78e7` ..Bxz7pg7@=/xf t7pg7e7`Rl~v7pg78e7vxf t7pg7e7 ']*xz7pg7@=`,.) *3xz7pg7@=ї:) GRv7pg7e7`xf t7pg7e7ТYfqxz7pg7@=#*x{z7pg7He7У=Pu7pg7Hi7X(#27g7sHi70r0?`c77H7  F=Df7   F=Lg70И  F=,f7@  (-hC=4f7P  xC=jv7pg7Gd :e75v7pg7G@:e7 ,/y>Ev7pg7:e7pB%i7p@=e7c$v7pg78e7;  v7pg7(8e70 t7pg7e7lt7pg7e7՜ #v7pg7e7и '6Xcv7pg78e7p]vt7pg7<8e7v7pg7<8e7۝;#.v7pg7P8e70$5,Pz7pg7N:e7c -8?v7pg7t9e7pbmpz7pg7d8e7ʞt7pg7d8e7pt7pg7x8e7 t7pg78e7P7;*LW^t7pg78e7 uv7pg7ħ9e7  Pu7pg7i7̟  4?Pu7pg7i7lHt7pg7e7 L4809x;e7U;d xz7pg79e7p04777 swv8y8p<f7`^v7pg78e7   g r } xz7pg7 :Di73(     x78u7`Gd9f7  p@=p@=e7 f % 0 p@=p@=e7@6; H W p {  v7pg78e7ZN xz7pg7@=`. Bxz7pg7@=lZ v7pg7e7ʢ(     $ <77GG947 7 > J Y ` p@=i7G8 (k v y    p@=p@=8f7`32  . A p@=p@=9e7tT w   p@=p@=$:e7@   V   p@=p@=9e7      p@=p@=8e7ң^^HD=e7ߣ('6t7pg7Di70 >'6t7pg7f7`(~t7pg78Di7J  <Gt7pg78f7n(PS:t7pg78~7 t7pg7Di7Pt7pg7f7 >]at7pg7Di7Ϥ!,t7pg7f7(3JVt7pg7LG9f7` .5xz7pg78i7@?8t7pg7G9f7 Q $(xz7pg7e7`n()p@=p@=f7 0)p@=p@=f7H^l!4;l7pg787Υ0V&>`w7pg7G9f7 0N6`w7pg7H9f70F[f7878Pi78v7pg7Pi7, $7h7H,8e70flAz7pg7e7P0-6EVq|7H7T8470-6Vq|7H7|847P8pv7pg7:7@!Ҧ8؃77Et7pg78e7/jT_bt7pg7e7`0 t7pg7T9e71( + Q t7pg7T8e72 (X [ j   p@=p@=8f7p4"   O!^!p@=p@=8f7@680m!v!y!!!ti7p@=h8h77XP!!!""#7 {8HxH97=}X(#2#6####$77|8|8@x#$ $d$$$7g788C $$$%%%7g7H9h7PHx%%%T&`&t&7t788MѨp&&&&''X7t788@QިP#','/'Q'\'7g7070SXg'w''(((778|8Z (((e)q)~)t7pg7D8s7]@ )))**+*t7pg7l8h7`W >*J*N***t7pg7L7cm ***+++7g7, :h7g(+++Z,q,,t7pg7H9T7k ,,,, -t7pg77mө0- -#-C-N-U-p@=p@=82Z2]2{22877f7W@222333v7pg7l8s7y0444L$4`w7pg7f7H+4k44556(8h7:s7/6V6Z6666p@=p@=9e7 ګ0777B7O7b7m7p@=p@=80Ks x77xz7pg7@= 7777777T7H8e7`-7s 7888t7Du7`H8e7PA7s &8888t7Du7@H8e7@X E #p@=p@=e7Pl E :8p@=p@=e7`0>8N8k88887y8H :i7ά(9.9L999!:88Hd:7Ъ&V:ma: q:xz7pg7e7`=@x:::(;W;~;(}8ȵ8@HlO:7 U0;;;;;77i7r< <%<4<t78u7He7;<J<Q<{<<<7d8 H8e7p<<].t7pg7e7<<<<<t7pg7e7< = ===t7pg7e7===>t7pg7e7׭ >>>A>X>t7pg7e7Eg>j>u>>xz7pg7e7\>>>>>>̃7 788e7p? ??.?=?Ԅ7g7i70%H?Q?T???77e7P6 ???,@G@P@7؞7,I9e7[k@v@y@@@@v7pg78e7l|@@@ A(A;Ax7ؤ7 8s7e7@FA?MAAp@=p@=p0AAAp@=p@=P AAAA BBPu7pg78i7p֮ B&B)BSBfBmBz7pg748e7 xBBBBBB77\8e7'BBB*CIC^C778i7Y iCvCyCCC77 8e7 CCCCC D7ȥ7hI9e71D!D*p@=p@=c,D/D:DMDt7pg7e7`ůC,DTD`DsDt7pg7e7ݯ-zD}DDDt7pg7e7DDDDDEt7pg7 8e7(EE9ETE_Et7pg748e70%lfEiEz7pg7e7P=c,DmE:DMDt7pg7H8e7RC,DyE`DsDEt7pg7\8e7piEEEEEE877p8e7 EF {t7pg7e7  FFFFFYFdF8778e7 Ű| oFrFvFFp@=p@=ϰFFFxz7pg7@=`12FFxz7pg7@=fFxz7pg7@=(F=FFt7pg7ԍ7`%FF GGp@=p@=e7 5(G6G9GsGGt7pg7@7B(GGGGGt7pg78~7OGHHHt7pg7e7pZ%H5 RRRSS+SX7g79e7@| FSSSTTT<7g7 :f7H0TUURUeUt7pg7ȍ7JnU~UUVVW8(8lHP;e7Q@WXXZZ[488G<8pb+([[\}\\\d7,.9@H,-;47`eq@\\\"]E]T]$7.9G87g,_]b]jv7pg7 GX :e7PhŴ5]]v7pg7@G:e7`i]]y>Ev7pg7:e7j0!^1^5^^^^7T787o#Xl__y7pg78 o=#_8_?_Q_\_c_i7p@=8e7oQ$j_m_v7pg78e7pk_]_  v7pg78e7pq __t7pg7e7q___-__t7pg78e7`rȵ __t7pg7e7prߵ __t7pg7e7rl__t7pg7e7r __v7pg7e7r '_`Xcv7pg78e7Ps\v#`&`t7pg7$8e7s`<`R`V`'aJagax88-;e7ypaaab2bAb77D9i7`|_\bv7pg7$8e7}_]tb#.v7pg788e7}Jb ?b Gbbt7pg7L8e7p~cb ?bfbbt7pg7`8e70bccucccz7pg7O:e7xc]cccc7<7t8e7c d dd/d6d|7<78t7 ٷ=d]Ld\dsdzd778i7d]dddzd778e7 d ddd eev7pg79e7+4ej_CeQ_cejez7pg7L8e7@b ?}e Gbbt7pg78e7Ub ?e Gbbt7pg78e7`ob ?e Gbbt7pg78e7 eeeeeft7pg7t8e7 f+f.f<dfkfv7pg79e7`ffffffi7p@=8e7`ʸ`fff,g7gFg(x8d749e7p[gvgygggg778i7(pl_gh7pg7H80G0g#`gggpv7pg747]8gghNhZh78747Вvxehphshhhh7ħ79e7Ph]hii087t7չ&i8NŞ 07D7887m P8-%07D7 8~7m d@0;f[dP7D7 87Pn x@o*xf777o H&wf77 7o H&wf77 7p @ß&Bҟ&-0t7pg7HK9D7q @VBeȠ0t7pg7K9D7@s @Cf180t7pg7K9D7@t @CUf180t7pg7K9D7@u @&Bڡ0t7pg78L9D7v  @ Bjq0t7pg7tL9D7w  @g 0t7pg7T9D7y 1@"OV0t7pg7L9D7z D@shԣݣ0t7pg7L9D7 | Y@ !vlu0t7pg7(M9D7} o@*F0t7pg70 8D7p~ @Ȥ&wѤ0t7pg7D 8D7@ @}&w 0t7pg7X 8D7 @Ȥ&w0t7pg7l 8D7 @&(5IZt7̘7D7@ @_*iF7t7 8D7 @77 8D7 @$ٛw<7g7dM9D7@ 8ߦJV]w7pg7x:7p 1̧ӧp@=i7G8@ MN@=@=d7 ev7pg7e70 #5F_jqv7pg78e7 (4y7pg7 8i7 0l2y7pg7i7p Ȩڨt7<7 8e7 z7xz7pg7@=@ ڨ't77 8e7Ў "N xz7pg7@=0 @ 0z7pg7e7Џ V7DOt7pg7e7` l 0v7pg7e7 8Vhsx7pg7t7 8Vhsx7pg7t7 zt7pg7 8e7  Pu7pg7i7 ĩϩp t7pg7 8e7` %t7pg7 !8e7 7DOt7pg7e7p 4,t7pg7e7 K3@Oq|t7pg78e7 d02pv7pg7i7 } 0z7pg7e7P (l2v7pg7e7 8Vhsw7pg7t7 02x7pg7i7p (l2y7pg7e7 ɪت t7pg78e7 (l2v7pg7e7 4!.It7pg7$8e7 I4ūz7pg7 !8e7 d̫2ޫt7pg7e70 CNUt7pg7L8e7` :ls|Rt7pg74!8e7 7DOt7pg7e7p :l|Rt7pg7t8e7 7DOt7pg7e7 8Vhsy7pg7t7@  0v7pg7e7 )7DOv7pg7e7p C(l2v7pg7e7 [02x7pg7i7Х y7DOt7pg7e7` 7DOt7pg7e7  t7pg79i7@ '2Tgnt7pg7M9e7` ĭ˭t7pg78e7`  ܭ$t7pg78e7` )7DOt7pg7e7 B(l25z7pg7e7 X <hx7pg7t7@ n <hx7pg7t7 7DCt7pg7e7p  <xz7pg7t7 7DCt7pg7e7 JZet7pg7i7@ 7DCt7pg7e7а 7DCt7pg7e7` 7DCt7pg7e7 48Vhlu7pg7T 8 Q7DCxz7pg7e7@ mJZexz7pg7i7 7DCt7pg7e7p 02$w7pg7f7 8Vhs`w7pg7h7 JZsv7pg7e7 (l25z7pg7e70 (l2zhx7pg7t7 JZsz7pg7e7 0t7pg78e7 F%2=P[bt7pg7H!8e7 b. Bxz7pg7@= ~llZ mt7pg7e7@  llZ mPu7pg7i7` llZ mt7pg7e7 llZ mt7pg7e7 llZ mt7pg7e7  llZ mPu7pg7i7 /llZ mz7pg7e7 Hx::rt7pg7e70 bllZ mt7pg7e7P ::rt|7pg7t7 ::rt7pg7i7 ::rt7pg7e7  llZ mPu7pg7i7  llZ mv7pg7e7 llZ mt7pg7e7@ ;llZ mz7pg7e7` SllZ mt7pg7e7 lllZ mt7pg7e7 `::r{7pg7e7н p::r{h7pg7i7 llZ mv7pg7e7 llZ mt7pg7e7@ llZ mt7pg7e7` llZ mt7pg7e7 .llZ mt7pg7e7 I llZ mv7pg7e7 allZ mv7pg7e7 }llZ mt7pg7e7 llZ mv7pg7e7 llZ mv7pg7e7@ N xz7pg7@= xz7pg7@=0 llZ mt7pg7e7P  llZ mPu7pg7i7p @llZ mt7pg7e7 XllZ mt7pg7e7 sllZ mt7pg7e7  llZ mPu7pg7i7 llZ mz7pg7e7 x::rt7pg7e7@ llZ mt7pg7e7` ::rt|7pg7t7 !::rt7pg7i7 @::rt7pg7e7 c llZ mPu7pg7i7  llZ mv7pg7e70 llZ mt7pg7e7P llZ mz7pg7e7p llZ mt7pg7e7 llZ mt7pg7e7 `::r{7pg7e7 p::r{h7pg7i7 5llZ mv7pg7e70 MllZ mt7pg7e7P illZ mt7pg7e7p llZ mt7pg7e7 llZ mt7pg7e7  llZ mv7pg7e7 llZ mv7pg7e7 llZ mt7pg7e7 llZ mv7pg7e70 llZ mv7pg7e7P 7gx~xz7pg7@= Nxf t7pg7@=` gFt7pg7e7 s0Fu7$t7HD7 ïЯFԯp@=p@=e7 0?f ѷg u7pg7D7 ۯ-7\7\!8Pi7  *9<fWt7pg77 (^TX 7d7t70 s 8u7x7 $ Qp@=p@=; 0J ZLv7pg7i7` 8)  Ϸu7pg7t7 0)  Ϸw7pg7i7` c Cxz7pg7@=  xz7pg7@= 8 v7pg7t7 xf  z7pg7e7 .8#'/:u7pg7t70! C@A'4w7pg7,7! UMUlp@=p@=:$ kg7D7% {( &GR77<8s7f70(  Ui7p@=e7( @@OX77N9Di7@+ lort7pg7e7`+ 'lovt7pg7e7+ @ zi7p@=!8, [($w7pg7e7`- }($w7pg7e7. (&)$w7pg7e7. (2=@$w7pg7e7@/ (\P77e7P2 0H$t7 t7e73  (Sbeyti7p@=e7p4 x 77tHTN98 6 fh !0|7(7 uHN987 w0 h77f79 (!<?al$w7pg7f7: 8s77!8f7@< p@=p@=<  eEPi7p@="8e7= @c:Qd477`tH$"8d77PA . "#xt7pg7e7`A } Gi7p@=e7 B % x7pg7i7C 6k p@=p@=8"8e7C N:p@=p@=e7D d(y7pg7i7D q(y7pg7i7 E (S-0yti7p@=e7E 0:D Ri7p@=f7F PYhkaP7pg77G H7g7 8`H 0 i7p@=f7I 0L)787uHL"8f7 J (<Oeu 77@ H`"8f7K (<eu 77` Ht"8f7L 0-i7p@="8f7M 82P[787`vH"8h~7N (8VnfЋ77 H"8h~7O ;(ۯ-787uH"8f7P O(ۯ -787 vH"8f7Q c *3F-doi7p@="8e7Q tP77@H#870S Hم*5d787vH#87PT 0HQdfd77 H(#8f7PU 0HQfd77 H<#8f7PV 0-i7p@=P#8f7PW (8P7`7@HN9\i7Y i7p@=d#8e7Y i7p@=x#8e7Z  @SeEPi7p@=#8e7[ }i7p@=#8e7\ $ *3-doi7p@=#8e7p] 3( ti7p@=#8f7`^ B *3)-doi7p@=#8e7@_ T <Oeu77H#8e70` f *3u-doi7p@=$8e7a u8!,;7`7HO97b @dm؀77H$87c @dm؀77H,$87e 8 %U`t77 H@$8t7 f  s| T787vHf7f   7`7 HDO9f7@h 0C-i7p@=T$8f7@i  m 7`7 HO9f7j 8 U`t77@ Hh$8t7k 8 U`t77` H|$8t7m H J`y7p@=$87n  *3U-doi7p@=$8e7n !(Hn{fd77H$8f7o 0Hbt7(7@H$87 q ?@?؀7`7 HO97r N0'|77 H$8Di7t ] <:eu77`H$8e7t k(`uv.77tHO9Pi7v y(`uv.77`uH4P9Pi7Px dktp@=p@= y   pA=e70y   "#A=d7@y   A=d7Py   8A=d7`y   @B=le7py 0  A= e7y S  0B=de7y v  A=e7y   A=e7y   8B=he7y   B=Pe7y   (B=`e7y   B=Te7y ?   B=\e7z _  hA=e7z }   A=d7 z   (A=d70z   0A=d7@z   (-@A=d7Pz   PA=d7`z   XA=d7pz 4  `A=d7z S  #A= e7z u  A=e7z   A=$e7z   A=8e7z   A=@e7z   A=De7z   A=He7z -  B=Le7{ O  B=Xe7{ m  A=(e7 {   XB=xe70{   `B=|e7@{   hB=e7P{   A=0e7`{   A=4e7p{ #   HA=d7{ B  PB=te7{ a  A=t7pg7%8e70 WN xz7pg7@= vd.2Lxz7pg7@=@ 8NR `w7pg79f7 P57D,gfBh 7pg70%8D70 @w|7D77 (  AtP$w7pg7D%8f7 @chQx|7D787@ M(+7`77Di7Й ^(DTSc77Ht;Di7Ф '8s eu7pg7D7 8X,88HX;8  g{77f7 Uij7d8He7 @v7pg78s7 @!$Hxw7pg7847 XU(ȉ9p9 }H~<X7 l st7pg7X%8f7 #.t7pg7l%8f7 @A]v7pg7%8Pi7P (4l|88 W;f7 oFp@=p@=e7`  oF+7t7pg7e7 >FfyȊ7\7e7  k@m t7pg7e7p !t7xt7@HPi7 /_77e7 >oFYt7pg7Pi7P J !D*p@=p@=e7 W8=L t7787 p2_]t7pg7,8e7 8_v7pg7 |HD97P 8_%v7pg7`|H97 8v@Imxv7pg7|H97 vgi7p@=%8e7 mph0?Ji7p@=%8e7p  k AYqxx7pg7@HT8Di7   dx7pg7H|8Di7! 8f2MXw7pg7H8Di70# 0##`iVx7pg7Di7# q s2t|x7pg7Di7$  2tMx7pg7Di7`$  2tMx7pg7Di7$   ?x7pg7%8Di7% (]x7pg7%8Di7& 0j_4&x7pg7%8Di7`'  f_5.I=x7pg7Di7(  gx_DLx7pg7Di7(  SZ]ex7pg7Di7 )  l_lvx7pg7H%8Di7@) ( 2t}x7pg7Di7) :i7p@=p@=p@=e7`/ k ABJp@=p@=e7/ N2tQYp@=p@=e70 N2t`hp@=p@=e7p0 :7owp@=p@=e70 2_]~p@=p@=8e7P1 )8q+f   {7pg7HpP9~72 78 qD    v7pg7|H497p4 E _]   x7pg7Di7 5 P _]   x7pg7Di75 [H 3   T7pg7HP976 m@/ v@7  ? x7pg77`7 |0F Y ]    p@=p@= &8e79   ?   i7p@=: 0k A ! ( dy7pg7HP9Di7: 0x#`7 Q X dy7pg7`H$Q9Di7P; 8i  ?t    {7pg7H`Q9~7<  l_ w7pg7Di70< 0 v@    w7pg7H8Di7<  *k - 8 x7pg7 H8Di7=  x#`E W b x7pg7`HQ9Di7p=  x#`o  b x7pg7@HQ9Di7=  k A   x7pg7HR9Di70> @   4 G V tu7pg7H@:Di7@ .0u   m77;t7E K@xZetu7pg7Di7E _0?#`ggw7pg7t7F v@ /6Xgttu7pg7D8Di7G 07g7 &8t7H @&tu7pg7l8Di7I 05>E]ls7g74&8t7J  zv@x7xt7 HPR9Di7PK X7xt7`HW;7P )8"e1KZc {7pg7H8~7Q <8n+f {7pg7HR9~7 S L0jWx7pg7H8~7pU Uv7pg7H&8e7V j=tv7pg7e7pV @gs77e7pY Cft7pg7e7pZ k t7pg7e7Z P,787\&870a 84ae$w7pg7f7c 0-9v7pg7f7e P@y}v7pg7f7i @v;q`w7pg77 k "@|<Dp@=p@=9 7o 20c~77~70q N  Bz7pg7f7q g ,?t7pg7p&8e7r NY\Lnt7pg7e7ps @u#\ 8h49@H<;7` @.1O(77 8p HVeh~l7pg747 !H` 4 o  h8{8 8<,~747 VH;!J!M!Y!l!l7pg747@ f@s!!!!!"d77&87P x8","I""""77R97f7P "##W##pg7!><>>>>7ľ7:o7e7 0p>>>$?7?>?w7z7T9o7f7 84Q?f????@l77:o7t7  35@P@3 44@77:8o7e7 2P@@@@@@,u7z7T9,o7e7  M 35@A3 4477`:Po7e7 0FA]A`A~Ai7p@=e7  0hAAAAAAz7z7t8pp7e7 0|AA B8BKBRB8{7z7 U9 o7e7P :eBlB0 zBz7pg7(8e7 8TBBBBBC7D79Xp7t70 , (CIC`CCCC7ؤ7T9o7e7 H CC DGDVDkD7ؤ79o7e7 e0|DDDDDDw7z79p7h7P 0x E!E4EcEvE}Ew7z7D9p7l7 0pEEEEEFh{7z79(p7h7! 0x EF/FcEvE}Ew7z79o7s7 # Y0pE^FqFEEFh{7z749o7h7$ 0pE^FFEEFh{7z79p7h7@& @FFFG#G2G07`7(8e7' (<9GVGGHHH7 8:}7e70.  -#Ip@=p@=e7@. 9'I.I=INIeItIp@=p@=\U9/ LN xz7pg7@=0 fz) v7pg7e70 xf t7pg7e71 xf t7pg7e7p1 (I<IFIP77GDi7 2  2PIFIi7p@=e72   Ih@=d72 N8IIIv7pg7e73 a8I Jf!Jv7pg7e7P4 y8I(JIv7pg7e7 5 p>JgJtJ:KrKK8@8U9f7?  ɷòKKz7pg7f7`@ e_Kv7pg7e7A l_Kz7pg7e7 A ZK,,t7pg7e7A (KLLcLzLL7Ĕ7847D 9lLLLv7pg7e70D I8LLLMM,M7$7U9t7PF @EMaMtMMMNH787Ե97I 0(N5N`M`T`o`v`v7pg78f7  l`Kv7pg7e7  l```t7pg78e7@    `t7pg7e7P    t7pg7e7`   l`v7pg7e7 3 l`mz7pg7e7 F ````6aFap@=p@=V9 N FFVaxz7pg7@=` _ _a!-faxz7pg7@= u f Goaxz7pg7@=P  ,-xaxz7pg7@=P  8#/:u7pg7t7  @A4w7pg7,7  aaxz7pg7@=  8aaacaaa77)870  lacv7pg7e7P  lacz7pg7e7p  abbcSbfb77e7 7  sbbbcbbb77V9t7 Z bccc2cIcbc77W9i7  ,.qctcc,ct7pg7e7  ccccddd77)8e7`  0dddcef7g7 7  (f*f-fc-Kf7g7i7p  8Vf>kfcf\7g7t7  ɷffcfh7g7i7   fqcfcRfh7g7t7 / @fffcggz7pg78 A gghcAhLhgh̞7t78i7  ~h<hchh77e7p  hhhchh it7pg7D8e7p  (i:ibicjjjT77k77e7@ 0 MkXk_kcykkki7p@=l8 e kHkckkt7pg7e7 t lAkct7pg7e7  lAkct7pg7e70  2kct7pg7e7  8lH lcl-l6l77*8t7  0lHAlcl-l6l`77*8i7  PUl8 ^lcpl8d78  8}lllc Gl777`  @llcflT7d770  (llcLl77Di7  @llcflT7d77 (lmcLl77Di7` 8m!m,mcKmRmw7pg7xW9~7 " _momsmcmmm7D79t7 8mn ncjnnn7Ե7G.;e7 Jnnnc oot7pg7f7P \ P!ocC1ot7pg7f7 n8oAoEocoot7pg7 i7  oocopt7pg7i7` (p%p)pc[pnpwpt7pg787  pppcpppxz7pg78~7 8pq'qcr]rr77@G;8 (ss#scsssĴ77:7  0 t6tVtcu;uXud77G(;47 uuvc~vv47$7e7 6 vvwcxxx7T8Hd;~7P I0x+yzc}~eX8X9$<7P ^8gcCV^t78u7 G/;~7 z(zct7pg78f7 H c(l7g77! 3<cXkt77 8e7" 3cXkt7748e7 $ 0ƃcM 8 8 G(<H73  c07 7GW9t75  4Ccyԯ747\8t77 8ec͈܈H7g7t78 )@]c7$779 38")c7>i7p@=0*8t7: B(E]Tc؆787e7p; U:7ct7pg7e7; e3c-ԉ87@7GD*8e7< #`c0 z7pg7e7= @j_c4(t7z7G,i7f7= /_]:cPct7pg7e7> n_]cp@=p@=e7@? Acp@=p@=e7?  ƊՊcev7pg7X*8e7@ (6Qc778e7 D /+6=cCOVz7pg7l*8e7D J@]locX777PF [(_ƌcތt7pg7\70G jchUdt78u7`GW9e7H 0Veuc7g7*8f7I   ?ˍc Gߍt7pg7\i7`J (3c /<h7g7*8~7`K  _]Gc clxz7pg7*8i7L w_]cLt7pg7*8e7L 8ʎc7(7@G8p7PN <@cŏt78u7G;e7Q (3cfv7pg7e7R +0)0cQbx78u7G9~7S @scŐ877G8e7 U S(Аjc)z7pg7*8e7pW l 0EUcƑ$77GT:f7Z ~ +c~$77G(:f7@^ ȒcT`|7`7T;e70b (ܓc5AVd77G0:e7d (yc*Gt78u7G:~7g (Q?c77f7h  fЕcz7pg7e7i )cߖ7|7`GL0;e7m E9@ct78u7G:e7p d c>M^v78u7 G,X9e7q x wcgM8l8`CH|;~7 vgěc77e7p 8#*cucSd7<7 CH88i7t7 }mc qi7p@= 2txc qi7p@= 07|cO7b7m7p@=p@=$8 d.2cLxz7pg7@= 12cFxz7pg7@=P cFxz7pg7@= fc Goaxz7pg7@= &(]d7(7Gi7 g lZ z7pg7f7 ,#i7p@=*8@ (*.d7(7Gi7@ * lYz7pg7f7` n]d,#i7p@=*8 (qud7(7Gi7  l-z7pg7f7 + lA`z7pg7f7 h0ò0 i7p@=47  ۝ߝĎ7x7Hf70 (/,#i7p@= +8 (m<d7(7 Gi7 U l_hz7pg7f7Ж lmwĞt7pg7f7И ͞Ԟ,#i7p@= +8P (Bd7(7@Gi7P 9 lo z7pg7f7p j,#i7p@=4+8 ($(d7(7`Gi7  lTz7pg7f7 X;e lp@=p@=e7 as}g77G X< lp@=p@=e7 sßǟg77G 'X_]ޟ lp@=p@=e7 isjg77G XU lp@=p@=e7 sag77G  XY lp@=p@=e7 Ks"&g77G =GX۠g770 :) |Rv7pg7e7 :) |Rv7pg7e70 6:) |Rv7pg7e7 y(ѡ$w7pg7H+8i7P :) |Rv7pg7e7л  %@s|877\+8e7 A:) |Rv7pg7e7p :) |Rv7pg7e7 :) |Rv7pg7e7p lZ i7p@=e7  E p@=p@=e7 A E p@=p@=e7 i( E i7p@=e7  E i7p@=e7п  E i7p@=e7 ( E ti7p@=i7 ) v7pg7e7p (Ӣ 77f7  !p@=p@=0  -t77GL847 0 ֣-p77`G47 N +2Zit7|7@Gp+8f7p f {D7D7Gt847 z . 8p@=p@=@ (8E Gpv7pg7i7 Qf٥7(8 4HhX9g7e70  ;w,7Ȗ78e7P  ǦΦx78u7 G8f70  v7pg7e7   'BݧT7$7`4HT9D~7 # @ 3Cը7<88g77 M  !p@=p@= h  !p@=p@=  p@=p@=@  (:rv7pg7e7p  (77Ge7   5BaΩ 77X9D~7  0 v7pg7Pi70 !@")G^gx78u7G8 8 !r{ʪ٪$7T84HX9e7 D!( fpv7pg7i7 ^!!(/C^ep@=p@=+8 k!(l]*wv7pg7e7p !llZ mv7pg7e7 !llZ mz7pg7e7 !(llZ mpv7pg7i7 !(l]*wv7pg7e7` !) |v7pg7e7  "Ҷ) ۶~z7pg7e7` ""z) v7pg7e7 I"xf t7pg7e7P t"xf t7pg7e7 "`D7pg7H8P "Vs C-xz7pg7@=@ "PD7pg7}8 "8Ʒ) Ϸڷt{7pg7}8P #@) x7pg7}8 #lZ v7pg7e7 1# E t7pg7e7 H# E t7pg7e7 _# t7pg7e7 x#ҫ"/77<8e7 #8FUk~77+8t7@ # !Ԭݬv7pg7+8e7p #(D[l؆77d8e7 $0Fk~`77+8i7P 7$:t7pg7e7 M$ -t7pg7e7 d$8C-ѭH7g7t7 {$@ڭ7g7+87 $ (+?v7pg7e7` $<FM_fz7pg7+8e7 $(m>a$w7pg7e7 $׮z7pg78e7 %0م/:`w7pg78f70 %0EZ]7g7i7@ 5%fxz7pg7i7 M%(On78+8e7 %(pv}ūy78u7 H,8i7 %8a77, 8%@DZֱQ`k77$,8~7% zɲ7T7Di7`  &8lHl-l77t7P /&0lHl-l`77i7@ X&8 PC x7g77 y&(H)877i7 &@Eae7T7`H8,87 &(*@SҴ7$78i7,'@g77HY97X'(ĵ ٵy7pg7i7x'@6G.v7877P'(+;p7 7i7 '@Je˷ڷ7d7@HL,87'4778f7!!(0¸ѸԸ787Pi7#1((%w@bch7D747$?((nLXiPu7pg7,847'( ٺt7pg7T8\i7@)((59Pu7pg7|847P+(Hϻ(`7`7X7-((5JNz7pg7f7P0 )0м*:7$7Pi703)8Kg(4O78H1;D77*)(A7d7H1;i7 =6)(T77H\;Pi7PAE) #>]77 H U:f7CU)(&-B7g7Pi7Dk)(K*XnwXv7pg7`,8Pi7`E)(&wPu7pg7X70F)(&w4Pu7pg7X7G)6?77t,8f7H) !JNp@=p@=e7PI)k U_fp@=p@=,8e7I *mx0 p@=p@=e7J'*0vCC,7g747J4*0&wQ_,7g7,847pKE*0vCC,7g747LW* v 5@z7pg7f7Mi*HGcH77Hx;,8Sy*(59\7(747U*(% (Pu7pg7947[*@lIRelpg7x7,8`\*sHzxz7pg7@=] +. Bxz7pg7@=]/+0"77,8i7p^S+(#NYx7pg78i7`{+:rrz7pg7e7`+*v{v7pg7,8e70a+ E i7p@=e7@a+(Ķ747,8i7b+ z7pg7e7c,  H!v7pg7-8e7`c*,(Ķ747-8i7dA,] z7pg7e7 eX,a v7pg7e7er,(eĶ747(-8i7f, z7pg7e7@g, v7pg7e7g,(Ķ747<-8i7i, z7pg7e7`i, v7pg7e7i-(Yf  x7pg7i70j- !z7pg7e7j2-lZ %v7pg7e7jM-()2rĶ747P-8i7lf- z7pg7e7pl-ɷf v7pg7e7l-( 7g7i7`m- z7pg7e7m-O!=tv7pg7e7 n-( !x7pg7i7n- E i7p@=e7n. v  7v8BHe7 p$.#+p@=p@=e7p9.*Q2z7pg7e7qP.lZ :v7pg7e7 qe. E >t7pg7e70q.Yf BLPu7pg7i7q.[dFrd7t7e70r.[{Frd7t7e7r. ɷf y7pg7i70s.87ĸ7 G7u. 1İ77GXY9i7`v/(@!V77e7y/t78u7Ge7z8/se88`BH|;e7po/a!jYH77@G8e7/lZ t7pg7e7/ *Qz7pg7e7/ E t7pg7e7/ lZ v7pg7e70/8f Rz7pg7d-8p8 08P7787P08f Rz7pg7x-88ЅG08P7787p[08f Rz7pg7-8808"P77D8708f 4Rz7pg7-8808BP77l8708f TRz7pg7-880 18bP7787Љ!1@ptu7pg7-8t8pO1@77880f18f Rz7pg7-8818P7787P18f Rz7pg7-88Ќ18P77 87p101 :Dv7pg7728K\lX77BH48832@ ư%0t77`G.8H7K2@7@K_nw7t7.8H7`a2=tt7pg7e7w2 859 He720*97g7t72 E Ht7pg7e72f LVp@=p@=`2el 8p@=p@=2 f vxz7pg7~7 2pg7u7G\803.Gg7\7923^gjnyp@=p@=R30xz7pg7@=0e3(Zsx7pg7,.8i7Х{3xf v7pg7e7@32'xz7pg7@=3 z7pg78f73$1DKp@=p@=@.83 R W]v7pg7e7p3dvv7pg7e7 4lZ t7pg7e7@4 E (-t7pg7e7P(4 Gt7pg78e7A4lZ t7pg7e70W4J]j77Y9e74t7pg7e7P48s C-u7pg7T.8t7@40s C-w7pg7h.8i7040!V787i74 cmv7x7Lf7e740t7g78i75 /F v7pg7|.8e7/5(7),gOX$w7pg7.8e7I58cvH7g78t7t5(z7pg7.8e75   29v7pg7$8e7`5(H!_d$w7pg7L8e75Fkz7pg7.8e7@5k z7pg7e758s C-X77e7 68 (مZcv7pg7.8e7560r{C|7`7e70P68`P787~7^68,207D77pj6(=dkt7pg7t88~7@z600407g78D76X $(nt7`7}8p6H777p68.>U 7H7.8t7P60!69g _07D7Di768px77g7~768y7pg7.8~770u7pg7d7/70%:`u7pg7d7C7il6?77/8f7X7; pg7x7e7s7k  _fp@=p@=/8e77m0 p@=p@=e7`7@:m 47g7D77@:m7  47g7D770i&1v7pg7Di7p7h<RVx87Ȝ878#,7(7778(u7pg7H:7 8:[t7pg7e78 -bt7pg7e7388etw-H7g7t7H8@7g70/870_8 (?v7pg7e7x8<_fz7pg7D/8e7p8(>2$w7pg7e78;F׮z7pg78e780^iم/:`w7pg78f780>7g7i78 M(xz7pg7t7` 9 p@=p@= 9'I,NIeItIp@=p@=Y9P+98?`&w7D7H7@K9t7pg7e7m9Lt7pg7X/8e79 4#h7g78i792=D^ixz7pg7<8i7P:x 877He76:Ph778N:f t7pg7e7o:'=Av7t7HԠ:e7 7;+6bmt7pg7D9e7;*v7t7HU:e7;;?6v7t7H:e7<Yenv7t7`HU:e7 1<  Lv77H;e7e<!2v7t7HtV:e7@<[qu7H7{HV:e7p<>/u>v7pg7e7<7Lafsv7t7Hl/8e7<~z7Ly7{HT:e7@!=7Np{t7pg7/8e7P"2=v7t7Hd8e7$N= KWnv77H9e7'l=g77e7*=v7t7 H8e7@,= |9Jv7t7@H8e7-= Yr-p@=p@=8e7.> p@=p@=e7.6> p@=p@=e7.X> v7pg7e7.}>| 77/8e7@/>77e7/>i;R]$778e71@?`p=tz7pg7e702e?x; 7D7@He72?77`H Z9e74? v7pg7e74? *77e76?19@P7L7H/8e7`6(@Wgİ77dW:e79S@ v7pg7e79{@goz7pg7e7p:@| 77/8e7:@ 77W:e7@?@ v7pg7e7P?A07T7HZ9e7pCA`O=tz7pg7e7CA| W77/8e7PDBgv779e7F0B  v7pg7e7FWB%8A787/8e7GB| H77/8e7HBXhGj{747TX:e7KB v7pg7e7L!C* $/77,8e7NClBz7pg7e7 NCYHRv7pg7e7NClav7pg7e7N"Detd7H7Z9e7PPD v7pg7e7P{D77Z9e7PD19+P7L7`H 08e7@QD;Kzd7749e7TE ?v7pg7e7 ThAC,LTg77e7UHE ni7p@=e7UlElri7p@=e7UEvt7pg7T8e7VE v7pg7e7VEW; 77 08e7W$F i7p@=e7WHFli7p@=e7WnF'6Tgrt7pg7|8e7XF v7pg7e7YFW; 77408e7YG19P7L7 HH08e7Z(G;8S^d7|79e7\QG v7pg7e7\wGC,Tg77e7P^Gh77i7_G| 77\08e7@`G["377:e7@eH v7pg7e7Pe9H377e7f_H*xv7pg7e7 gH;N[d7t7Z9e7hH v7pg7e7hH77p08e7piI@77yHԺ9d7 pIlHv7pg7e7@pIetd7H78[9e7qI <v7pg7e7q J1;@Pcz7Du7e7Pr3Jljv7pg7e7pr\Jetnd7H7t[9e7sJ v7pg7e7sJ7708e7tJli7p@=e7u K%0t7pg78e7PvGK Cv7pg7e7`vkKW;G 7708e7wK Si7p@=e7 wKlWi7p@=e7@wKv[t7pg78e7`x&L yv7pg7e7pxKL}7708e70yL| 7708e7yL  3 7$7u;e7L  v7pg7e7M    ( 5 78[9e7ЃMD  M Y l y 7708e7 MD   Y l y 7708e7pMD   Y l y 7708e7N|  7718e7@9N   o   h7x72;e7@eN  v7pg7e7PN ) 5 H Q 77$18e7pNV>X {  77e7Op      x77818h82O8 q $$78Hi7[O07@CQ`77`HH7~OHo~78H[987PP >epd78H(\9479P@T78`{HL18|8КrP bLk|7Զ7`18e7PPp#87H8@78@Q2bAUd7D7He7%Qs 7D7f7УEQ)a2Y7D9 zH;e7@Q ^77zH8e7Q Xx7H9Hv;e7 kR9H7H8 H: ~7e7R -t7pg7e7 S8K(478H,;e7US(_pr18G<zH<~7@S 77H87SH &    ,8d8`zHX:7D~70'T/!6!D!W!`!77t18e7`MTg!p!w!!!!7718e7vTg!p!!!!!7718e7T!!!"M"Z"78@H`:e7T"""<###7 <9`yH:e7T##$x$$$749H$:e7UPd>%#%2%=%77H18|8IUH%X%%<&&&79 H;e70mU;'R''(V))8>:yHX<e7`U*`**^+++8h39 {H;e7U 9,H,f^,77i7$Ve,p,s,=t,t7pg7e7 HV0,,,,, -77@HD887P kV"-+-/-M-]-pg7x7Vg-xf p-t7pg7e7Vg-xf p-t7pg7e7Vg-xf p-t7pg7e7`Vg-xf p-t7pg7e7 Wg-xf p-t7pg7e7@LWg-xf p-t7pg7e7tWg-xf p-t7pg7e7 Wg-xf p-t7pg7e7Wg-xf p-t7pg7e7Wg-xf p-t7pg7e7pXg-xf p-t7pg7e7@Xg-xf p-t7pg7e7PhXg-xf p-t7pg7e7Xg-xf p-t7pg7e70Xg-xf p-t7pg7e7Xg-xf p-t7pg7e7Yg-xf p-t7pg7e7@Yg-xf p-t7pg7e7hYg-xf p-t7pg7e7`Yg-xf p-t7pg7e7Yg-xf p-t7pg7e7@Yg-xf p-t7pg7e7Zg-xf p-t7pg7e7 1Zg-xf p-t7pg7e7VZg-xf p-t7pg7e7Zg-xf p-t7pg7e7pZg-xf p-t7pg7e7Zg-xf p-t7pg7e7PZg-xf p-t7pg7e7"[g-xf p-t7pg7e70F[g-xf p-t7pg7e7o[g-xf p-t7pg7e7[llZ mv7pg7e70[g-xf p-t7pg7e7[llZ mv7pg7e7\  E w-xz7pg7e7'\g-xf p-t7pg7e7@Q\llZ mv7pg7e7`y\g-xf p-t7pg7e7\llZ mv7pg7e7\  E w-xz7pg7e7\g-xf p-t7pg7e7p]llZ mv7pg7e7>]g-xf p-t7pg7e7c]llZ mv7pg7e7 ]  E w-xz7pg7e70]g-xf p-t7pg7e7]g-xf p-t7pg7e7 ^xf t7pg7e7 +^xf t7pg7e7 O^8Jxf ~-(y7pg77`!u^8Jxf ~-(y7pg77!^d.2L-xz7pg7@="^-2--v7t7e70#^-^ --xz7pg7@=$^---̃787@=%$_8Jxf ~-(y7pg77&N_8Jxf ~-(y7pg77&t_8Jxf ~-(y7pg77&_8Jxf ~-(y7pg77`'_`Jxf ~-7pg7L8'_`Jxf ~-7pg7L8@( `N xz7pg7@=(0`(Jxf ~-x7pg7p7)V`(Jxf ~-x7pg7p7)x`HJxf ~-z7pg78)`HJxf ~-z7pg78`*`gxxz7pg7@=+`0Jxf ~-(y7pg77p+a0Jxf ~-(y7pg77+9a Jxf ~-x7pg7Di7P,^a(Jxf ~-x7pg7|7,a Jxf ~-x7pg7Di70-a Jxf ~-x7pg7Di7-a8Jxf ~-(y7pg77.a8Jxf ~-(y7pg77.bg-xf p-t7pg7e7.?bg-xf p-t7pg7e7`/fb@Jxf ~-x7pg77/b@Jxf ~-x7pg77@0b@Jxf ~-x7pg7 80b@Jxf ~-x7pg7 8 1b Jxf ~-x7pg7Di71c,-xaxz7pg7@=2Cc`Jxf ~-@7pg783kc`Jxf ~-@7pg78p3c@Jxf ~-x7pg7 83c@Jxf ~-x7pg7 8P4c'-xz7pg7@=05d@Jxf ~-@v7pg785)d@Jxf ~-@v7pg786MdN2 -xz7pg7@=6wd@Jxf ~-,x7pg7 807d@Jxf ~-,x7pg7 87d8Jxf ~-(y7pg778d8Jxf ~-(y7pg778e@Jxf ~-x7pg7 885e@Jxf ~-x7pg7 8`9We0Jxf ~-Tz7pg7t79e0Jxf ~-Tz7pg7t7@:egxxz7pg7@=:e0Jxf ~-(y7pg77P;e0Jxf ~-(y7pg77;#flZ -Cz7pg7e7;;f-s .Cx7 .77Ge7<Rf .C,,t7pg7e7P=kf .C,,t7pg7e7=f -.6.A.C-O.X.z7pg7l8f7>f c.l.w.C-..z7pg78f7?f..Cp@=p@=e7Af8. /`/C&1:1d17d7G8*<Pi7pKg( 2'2+2C2277Pi7Ng:r2Cv7pg7e7O-g :r2Cv7pg7e7@OJg2s 3CC-377e70Peg@"393@3Cb3m3t3v7pg718f7Qwg8{333Cp33`w7pg7187Rg(333C4)4d77f7Ug084~44C555h787;s7[g8E6y66C671777$9f7_g0X777C8%8F847T7@G8f7d h(V8e8C88x7pg7i7e!h88C8v7pg7e7@g=y7pg7i7yh(E='M=CW=j=777pzh( s=C}==7t77{ i=Cxz7pg7i7{i :f =C0 xz7pg7i7`|2i(===C->A>V>t77\9i7[im>>>C}???܅89kH`;e7i0@*@@CAABH78`G <47PilZ BCt7pg7e7pi0BBCCB7g7i7iBBBC&C]C77e7@i#f lCC|CC7H718e7jCCCCCC7728e72j CC v7pg7e7pJj CC v7pg7e7Г^j0C D&DClDwDD؆77\9f7tj0:f DC0 D`w7pg7e7 j0D'DCDD7g7t7jDDCEt7pg7f7jKs Cx77xz7pg7@=j7CDEv7pg7e7j7CDEv7pg7e7 k&E$C-Exz7pg7@=6kM6E3C:Exz7pg7@=0Kk(CEUE\ECeExEE7t7287akEEEC]*EExz7pg7(28i7wkCv7pg7e7k(EEECEEy7pg7<28i7pk FFFC#F*Fxz7pg7P28i7k(1FCFJFCSFfFsF7H7d287 ke,`zF=t,t7pg7e7k0FFFFFH7D7` Hx28H7'l0F;FGG7D7 H28i7Gl0`"G Qy7pg77el0l*GHw7pg77l0.G8GKGGGG}84/9HDY:H70lG6GH0H707 He7lHAHPH`HqH77 H2880Bm8xHHHH II7w8HY:~77@dm0=IMIQIIIJ77`wH8 7m@8J%J)JOJ[JlJ7L7wH2847 8m tJJ!K/L:Lxz7pg7x:Di7`m(LLLLMMN88 H<;77n0ZNiNlNNNN77]97^n(NNN!OT7pg7288opET*NTfTuT~T78u7@ H388opTTTTT7L7@ H 88`oTiN Uv.!U`7g78o*U63UOU^UkUt87 H3808prUUUlVVVt9P;H:ȱ8 :pVW WWWX99`99 wH488ZpH.XWXXbYrYYD7(8Hw; 7ppXYOZ_Z[Q[[7d7H;D8Pp@[,[[[\77 H,387p@\\<\K\V\77 H@387 q@a\;p\\\\77 HT387 'q@a\;\\\\77 Hh387 Rq@a\;\\\\77 H|387sq@\, ] ]77` H7qH+]d]]"^m^{^77`Hh; 7@q8^^^&E_P_x7pg7T]9Di7q0k_}__f__x7pg7]9Di7pq0_6__``77 H\8H70r0)`E`p````$7`7:Di7`6r!a(a6a=ai7p@=38QrDaTalaaaaD78@H:e7!mrbtb$b3b̞77 He7"r/iIi`i7L7 He7Bs Aqckiuixz7pg7Di7CsH|iZiil7877DsH|iZiil7877 Es p,iixz7pg7Di7EsHijTlpp"qH8+9xH =<7PW tH—(rr7xt7 H7WtHrstxxx{87(<7c+tHzt#z7z7xt7` H7d{uiv7pg7Di7jt(F{V{f{{|77 H87pt zz| {+{77$8f7PqtNp,2|p@=p@=e7qu(Aqc<|uiv7pg7Di70r(u(?D|K|RY|`|v7pg738Di7rFu(g|v||}} }077 H:Di7t]u8E}U}Y}}}~d77^9s7~7xu#~2~5~[~z~~47t738s7e7`zu ~~~~~~7738s7i7{v0~~r78 HĻ9i7P9v (/APؘ7Ĕ7f7]v_imۀg7\8 xHL8v"}p@=hi7H;vf Goaxz7pg7@=`v7DEv7pg738e7v:) |Rz7pg7e7pw xz7pg7@=4wd.2L-xz7pg7@=0Tw&E$xz7pg7@=ww"+.L<Og7\7w8\Lau7`77w L/77^9f7wBQ`Lvg7(7G48w U ,=78G9e7Ax pUp)Ԋ8:<e7x8jUӊ7Ȅ7t8H8`9y0]!Uat7Ȅ787`Yy0U 7Ȅ787Pxy0 -Uم;Dt7pg7487py8K[_UҌߌD77048$7@yU Ev7pg7e7y lAUz7pg7f7y!%Uv7pg7e7PzэՍU(377D48f7Qz:HAU77X48e7zŽ͎Up@=p@=e7z8 U3BKz7Du7l48e7pzp^U=N0z8748d80z^ yU877e7@{GUv7Du748e7"{.6GCU7T748e7D{đّݑU47D7e7[{0?UU9dw$77^9T7p|{8ƓݓU?8T19H;t7`| MbfUۘ7g78f7-|  U~y7Du7d9f7pY| Ù̙ϙU7t7s7u|0U^ѝ7d78s7 |@ّU ]7g7i70|8hUi7T7i7|8 Uȟϟt7pg748f7 }8֟HUHlw7pg7i7,}_ òU,z7pg7e7PU}5EIUà̞7Ĕ748e7}ӠUXw7874_9e7 }эUޡz7pg7e7"}@osUxv7pg79i7(~PʣHߣU7g77)9~XU,g.7g7H70+f~h7эXU~7t7H7p-~XUؤ7g7d8@/~h(,U"8x748H7 6~86jnUƧ7748i7= ڧHUv7pg7e7>38+Uf7$w7pg7T7?O8>bISUo$w7pg7d7 Ai8x U٨P7D7d7CH8 U&7g77DH8 1U&7g77pEHKfvy7pg7i7(S0Plef GwXv7pg7i7p)t8~f\77t7`+f4t7g780,pf7pg7Ȯ8,Ȏ f08885@=Rf|77,8f788@>lGffY7`7 mH7>`ofԟ77Di7@@f 7ċ7`mH7PAޏ̙f77Di7B8lf G$77mH~7C!6G'f9Pԟ77Di7@EF8]ffFx$7ċ7mH~7Ej̙f77Di7`G@>lffY7`7nH7 Hbfԟ77Di7Jܐ@f 7ċ7nH7PKz0Hf'>77Di7L.8lEf G$77 nH~7`MUWgkfԟ77Di7O8]fFx$7ċ7`nH~7Pz0Hf'>77Di7Q8Efh{77~7`UllZ fmt7pg7Dg7UllZ fmt7pg7e7U=llZ fmt7pg7e7U`llZ fmv7pg7e7U}**Qfxz7pg7@= Vd.2fLxz7pg7@=Vk k fxz7pg7@= WÒxf ft7pg7e7Wے ft7pg778f7@Xft7pg778f7X  ~O[h77Z:t7@a0~AT]7g7D9t7`b(~~IYh$77_9t7f( ~ t7pg79t7@hɖ0"7V~$7T7$[:T7@k 0.6~̃779T7o0%4~xz7pg7$`9T7r0~dxxz7pg7T8T7t͘8~3CN<7g749H70w(~t7pg7t70x?H~77;7P}0"=P~Ĩ78 WH|8T7@0~L"v7pg7Di7 p0+:C~-W`v7pg78Di7 ix~77(78e7 ך("~07H7<78t7>@ ~'L<77[:t7Py@+-~77g78~88NhQa~t7pg7``9D70(3~ ؏77G`9t7Е)(AQp~*;؏77G:t7](~~t7pg7t70v ~؏7H770ʜ0#?B~67g787 ~t7pg78e7n0 1~<88Gx;7Ы !~dxz7pg7t7('0~!77:t7` ~3?T77D8f7Pf0kэz~7770~| t7pg7l8~7Ȟ(x)~ 7@܋7g7P787!G]P~v}8̕78T ~b3t7pg79Di7(&Y 0~X77 Gi7ϟ8ovg~&ء7t7t7pP~1P77Gl 8B(mz~et7pg7`9t7H?~d77`G7ԠH]~7hg78 0:(~}6(77GPi7:0O eK~[@7g7H7q ?d~ GrPu7pg7i70y~,8$:H<Կ7 Z~Rz7pg7~7@ Z'~DXv7pg7~775ET~47ħ7a9i7p~  ~!GZl7d7`GPa9~70u~D77@Ge7( ~ܝ7Ĕ7Կ9t7 Z8)8~*u7pg7d;7 8~4 C L  77d7878S f m ~  z7pg7x7878   ~ ?  v7pg77878 U ~ u7pg770?8 U ~ u7pg77v8 I  ~$(89 Hh<7 (֦8~A 8(8Gy;7@.28~,;J<7D7$97/\ e&Bt~xz7pg7t7 18~!0?t77H:7 3(Xg~-st7pg7~748xz~u7pg77p4(8v~7776Y8;~6Ns7d7Gz;7P< ~+Pc77\:Di7>(~~t7pg7:Di7B $~t7pg78Di7PCC("I~t7pg770Fy8 ~ͳ<774:T7@I8~m3B<77t9T7@K@U~ .d77:$7O(BW[~7t7i7PQQ ~!H778f7RǪ 8AI~7778Di7UH *~bv7t8`WH787X~t7pg7e7pYB ~t7pg7e7Yo~t7pg7e7Y(E=~7Ȋ7G78t7ZѫY~0?t7pg7e7[ FUY~77Ge7]JWY~t7pg7e7`^0)-~7d77dP  ~  t7pg77g`   !~!!!H77Ga9D7kJk """~p@=p@=e70lu0,"A"E"~,""v7pg78Di7n"""~$i7p@=e7o"""~,g"77 Ge7Pp """~$#t7pg7e7pqҭC#J#N#~##xz7pg778e7ps $ $$$~$$xz7pg778e7uA$$$~t7pg7e7pvx$$%~G%t7pg788e7@wKP%S%~Fw%~%747@G88e7x %%%~F&a&t7pg7 8e7zAx&&~&&p@=p@=a9e7{q(&&&~'''Pu7pg7`K<78E(l(p(~(()07g7487@8)5)8)~Gv)})w7pg7\87O8)))~)w7pg778)))~)w7pg77ʰ@**.*~f*u**D7g79@ 8 **~**z7pg7f7 E0***~,*Pu7pg7t78***~YH +w7pg77Њ±8+&+)+~C+R+H7g778[+++~,,+,7g787@p86,R,V,~,,,w7pg7:7p@--~/->-ą7g77 8G-*V-~l-w7pg776s---~-D.7t7e7p0`.o..~...7H7,88H7@ //"/~4/_/g7\7ѳ0A*l/~<t/Pu7pg7@88t7PX0A*{/~<t/Pu7pg7T88t70/*/~ZePu7pg7t700/*/~ZePu7pg7t70p0/*/~ZePu7pg7t7Т0/*/~ZePu7pg7t7p0/*/~ZePu7pg7t710/*/~ZePu7pg7t7q0/*/~ZePu7pg7t7P0/*/~ZePu7pg7t70/*/~ZePu7pg7t7=/6E3~/xz7pg7@=Ш///~///v7pg7h88e7pf~.I%xz7pg7@=**Q~xz7pg7@=P(Vs ~C-/xz7pg7@=@^000 0=0L0[0h77G8Di7  -t7pg7e7@ft7pg7e7Ÿ c t7pg7e7u s`j0|0w7pg7|88~7p 0i7p@=~7+0000111t77@G <Կ7n(%D:2h2{27g79Կ7(2iN2223Ў7g78Կ7P(&3*53s337T7`Gt:Կ7P:(35337g7d9Կ7~(3i374F4]47g79Կ7мɷx4t78u7Ge7@3k  4t7pg7e7n(4i4!45 z7pg7887 5c5p@=p@= 5*565t7pg7h7pټ 5=565t7pg747 5M565t7pg7h70 5Y565t7pg7D7B 5i565t7pg7h7c 5y565t7pg77PlZ 5i7p@=e7plZ 5i7p@=e7˽@555_839m98l59HX; 8 999::778Di7` #:]D:n:}:t7<7f7`" ::<^?r??78t<t70m AAf1Ǎ7g7t7:A>ABAAt7pg7f7gxBBd+s+z+p@=p@=88z) v7pg7e7 (BBBDBBxz7pg788$7 (BBBDBBxz7pg7887@2(BBCDBBxz7pg7887Yz) v7pg7e7P}(B!C,CDB=Cxz7pg788t7(B!CHCDB=Cxz7pg798t7p(B!CYCDB=Cxz7pg798t7jC7uCC77f7@XCs CCC7i7|80*P| CC$7i7ĝ8J8C DnD~Du7pg7T 8Pm0!DYHDD$77098t78DDDQEdE 77t7pwEPEEEE77D98e7) Et7pg7e7:E Ei7p@=e7 )`EFFFFD7g78 S@FFGGt77X98i7 P*GQGdGVHfHsHL7pg79T 8|k Ht7pg7e7HHHHHp@=i7$80 II%I6+.I5Iv7pg7l98e7<N xz7pg7@=P^`?M`s``747e70z```aa(a7t7b9e7|?a`aaaa7`7T9e7 2 bt7pg7Di70$8%bYbjbccc7t78Di7Y8d%d4d-Zdmdd74798f7poX|ddddd7ė7@G98 8 ddgBexz7pg7t7mUe v7pg7e7@1oF]e v7pg7e7ee nee77Ge7#lez7pg7e70JeeeeeeDu7x798`g0LeffLf[fbft7w7AH:h77В/;}fPct7pg7e7 ffIgu>ǜz7pg7e7`wΜ'ݜ,u78x7 H7e7@+:I787=8e788 Xhl֞\8 8 H|Z;7t7 HN xz7pg7@=etfi7p@=Pݠ8^8<8@Gt9e7`7 f Rv7pg7e7b E t7pg7e70: Bw7pg7,=8t7@2$M8H<9@HL:7H76գܣ(7Ĭ7@=8f7P/8?eW`t78u7 G,8e7@'  i&u8P8:`HX[;x7e7Wæʦ 7D7T=8f7` ! /787i7 6?E{77h=8e7 !ѧ787e7 O ɷf v7pg7e7| S z7pg787 7 77Ge7P -oF<,Iz7pg7e7*xP[v7pg7|=8e7" dqv7pg7=8e7H t7pg7e7mlt7pg7=8e7 l;L77e7 (ɨ.Iبߨt7pg7T8f70! -t7pg7e7@S<t7pg7f7 Qx77~7 tv7pg7e7l-ɩv7pg7e7 ͩ֩٩"787e7P4)_8.IDv7pg7e7a Ko֫|88WH]:7e7 -t7T7=8f7 fZ>Rv7pg7e7 F _Ft7pg7e708JquD7$7=8~7 άfݬ77e70 52Ad7H7G=8i7 L\eUȮޮ$78G=8e73 ɷ#`v7pg7e7d(*ku7pg7~7P: t7pg7>8e781 lt7pg77 &B5Rxz7Px7Gi7@?[Rj877e77 .vCq }77e7Pj (ȯկ77>8e7 577e7(-n$7D70>8i7POc8?O^ez7pg7D>8e7?lsg t7xt7 G|8e7P( (747X>8Pi7p; @OV~778Pi7b pȱ7̘770ٱ\l8X;9@H8~7ɷt7pg7e7,.8>v7pg7e7ȲѲ%477l>8e7p:,A-S7D7Ge7m0`vzƳٳD77~70( $1P77>8e70(<QfLP77>8e7@(:Qx7(7l^:i7p8jz>$8|89H8~7p xbr|?848G>88 G.Pj77f7u7`7e7P* ķӷַ787e7X1Q"*v78u7Ge7P I1t7pg7e7`5PTD77Gf75Ӹ@77Gf7 (޸$1P77>8e7 7((ֹx78WH0c9i7 sXcd߻H9:@H4\;̀8.P\l׽8H9H;T 89-0y7D7`Gt7:b@Ⱦ#7؞787<04CFjyh77Di7>8ȿϿ77>8D7@8|7D7`GD7A@  4C77@G7C;8TitLĈ7g7>847Di( !x78u7`G:f7E Fnr89`XH6;f7P&5ND7D7lc9e7R& D77D8e7T.Aw7D7@Gl8e7pW /7d79e7Z?PHX\Ⱥ8\8XH8L8]k0f 77D7^@'5_jy7$78D70` t7pg7e7@`_ v7pg7e7`! fRv7pg7e70aL At7pg7e7@a| `i7p@=e7Palv7pg7e7pa i7p@=e7a ht7|8G:e7f3 7g7i7f\ <~7D78Pi7h 7g7i7 i  Pu7pg7>8Pi7i :QF'7g7i7j 0BM8ipPu7pg7 ?8Pi7`k(({7g7 ?8i7mU4F7D7`Ge7@nb77@Ge7poK lKv7pg7e7o !0z7pg7e7o "#It7pg7e7p_ %(v7pg7e7ppz fR0Rv7pg7e7pL ":8t7pg7e7q "8i7p@=e7ql#v7pg7e70q<KNf^g7D7G4?8e7q( n~7 v8G 8e7`u[0%,x7HS7g7c9i7Pv(`mt\7g748i7 w  t7pg7e70w5_ v7pg7e7w` fRv7pg7e7 x At7pg7e70x `i7p@=e7@xlov7pg7e7`x.I7D7`Ge7yB &?t7 v8@Gc9e7{l P7g7i70| Shs4Pu7pg7H?8Pi7} &7g7i7} S4Pu7pg7\?8Pi7`~(7g7p?8i71%(F7D7Ge7P_/2b77Ge7 l;>v7pg7e7 !AD0z7pg7e7 Lt7pg7e7_ Ov7pg7e7 fWZRv7pg7e7 Lbt7pg7e7T Lfi7p@=e7 l;jT7pg78@<nqf^g7D7 G?8e7 78G\8e7 0x/6fPWy7pg7 d9i7@ydgvt7pg7e7P(7g7?8i7F7D7Ge7@b77Ge7p/ l#v7pg7e7) !0z7pg7e7R "#t7pg7e7_ #v7pg7e7pZ fRv7pg7e7 "#t7pg7e7 "#i7p@=e7l#T7pg780H<f^g7D7G?8e7z (78G8e7p0hu|ưy7pg7\d9i7p(C7g7i7'(>=Xv7pg7?8Pi7K t7pg7e7x_ v7pg7e7  f  Rv7pg7e7 t7pg7e7 i7p@=e77lv7pg7e7glv7pg7e7 ,3[n}H77d9e7(C7g7i7p(>=Xv7pg7?8Pi7(7g7?8i70AF7D7 Ge7pb77Ge7 lv7pg7e70 ! #0z7pg7e7 *-t7pg7e7_ 14v7pg7e7  f<?Rv7pg7e73 *t7pg7e7j *Gi7p@=e7lKv7pg7e7Р<ORf^g7D7`G?8e7  bxH7`8@G8e70=03:x7HS7g7d9i7  VhoC-7g7e9i7 7g7i7D S4Pu7pg7@8Pi7ph 7g7i7 S4Pu7pg7$@8Pi7Ъ 4778@8e7` E/u>&t7pg7e75(/?V P7X8H8D7f ,?$7$7 GL@8f78JZ'3Z7ؓ8 XH^:8 ,.-8>v7pg7e7787`@8e7P9 ixz7pg7~7i(/6jyԫ7Ĺ7Gt@8i7Pg-Lz7pg7e7-.-77Ge7 sJ.Hh7g7i72 8$wL8:@H\_:,8 0f-Rw7pg7 8 `-(77e7` 1`-(77e7@  S`nxz7pg7i7 ng-yFt7pg7e7J -7|7GLe9e7 (f ș77i7 (f-RY|x7pg7i7 HM]x8p78| 8P 0+m77 Ge9i7R 8787@8f7 (!P[7747` hw7|7G$8e7 F7|7GL8e7  )shg77HT7; < v77@8e7n  v77@8e7@ `-2xz7pg7@= fFxz7pg7@= (l]*wv7pg7e7@" XDP7pg7h 8L ) |v7pg7e7Pu @Ʒ) Ϸڷ x7pg7h 8 Ҷ) ۶~z7pg7e7P H) $7pg7h 8 f.I%xz7pg7@=pFxz7pg7@=@2xz7pg7@=R E t7pg7e7g&<-Pu77@8i7KhQft7pg7e78?v7pg7@8e7(-s$w7pg7e9e78;^oH7g70:t7 s v7pg7@8e74f z7pg7e7pO(bq~$w7pg7t8e7hk z7pg7e7lZ t7pg7e7 8&1v7pg7f9e7P8P]k؃77e7PXt8t7e78#+2g d$77e7@0sYe~7p8Gئ:e7 0[J^k7g7A8i7$0ws e7g7i7= E t7pg7e7RPu7pg7i7 h+0?77e7~lZ t7pg7e7 E Lt7pg7e78Pe 7Ĕ7A8t7@ '8 v7pg7(A8e7 (?FlDx$w7pg78e70&7Ĕ7477v7pg7|B8e7 **Qxz7pg7@=@!E`t7pg7:e70!!Bst7pg7{;e7й!]=hCzt7pg7e7`E!p,=tt7pg7e7,!p, t7pg7B8e7 !< t7pg78e7л!p, t7pg7B8e70![p,it7pg7B8e7" 1DQt7pg7f9e7("lz{t7pg7`:e7A"e5Bt7pg79e7Z"Y<hx؋t7pg7e7]!qct7pg7B8e7 q"=t7pg7,8e7"(Q_ 77e7"+t6TcPu7pg7f7"8n}x7u7pg7t7p"P$77T8X 8#-= -4pg7x7|8/#?Jct7pg79e7O#B]ht7pg7,g9e7`p#t7pg78e7p#"=HPu7pg78f7#HS\k778D7#H#6t7pg7hg9e70"MlX Gv}t7pg7B8e7"t7pg7e7# g778@0$ '-+xz7pg7@= H$02=p@=p@=D8h7{$p@=p@=g9e7P$*t7pg7e7$z7pg7e7P$jk!0z7pg7e7$7@W77l8e7p % l;v7pg7e75%(x7pg7B8t7@_%@Tcl77g9e7s%77h9e7@% ",0^u7g7f7% ,7g7f7`%   7g7f7% $ E9 _ n v7pg7f7`% y v! 4 77 aHf70%     0z7pg7f7@ & F   7g7f7@&0! !!,!dv7pg7h74& lv!3!fI!77 Gf7H& R![!~!!!D7$w8aHT9f7k&0""A",""T7d7@G9h7&"fYh7g7e7&x""xz7pg7e7P&:"##t7pg7C8e7&:"##t7pg7C8e7&N(#+#9#t7pg70C8e7':"D#t7pg7e7@'0H#O#]#l#u#x7pg7DC8~7F'0|####,7g7~7e'(####7g7t7~' Μ##8#77e7'8##$\7g7t70'* $$$t7pg7XC8e7p'&$1$D$,Id$t7pg78e7((w$$$$$7X7`Gh7p,(0$$@%z&&&(7878;h~7@(8]'h'w''''xz7pg78e7X(X''4((((7g7:8(H9)C)v)*/*D*77*!8#08D8S8X7g7e7=S* \8k8n8y8z7pg7e7=h*@888Ah8T777P?*p8888v7pg7C8e7?* 888::V:ȕ8,9`aH:~7pH*@y:::::7g7~7I*(:::f: 787f7J*(4::Q_; 77 Gk7PK+ ;; Qx7pg7k7K9+0&;5;<;&l;{;7Ȋ7GC8~7 MN+0;;;;77e7@Nh+0;;;;<7Ȋ7Gt7O+0 <<<4*<`w7pg7e7P+01<@<G<X<g<t<܎7|7GC8t7Q+0{<~<F<<`w7pg7C8e7R+0<<<<%w7pg7t7@S+E<<u>>t7pg7Di7S ,8<<<<$w7pg7 9~70T ,`=0=4=&==8798W1,`===Z>f>y>D87D98ZB,8>>>->u7pg77[S,X>>>E?P?]?7t79}8p]i,H????t7pg78^{,????@K@^@`|87C8Ȱ8b,8r@@@p@7g78c,8r@@@p@7g78d,H@@@;AGATy8d}88j,8hAwAzAdA7g78 l,`AAACCAC88x|;8t%-0CCC DD7t7C87w7-0#D9D=DDD777{M-HDDDEF*F8d8l;7P^-@FFFFF777t-F G G?GNG_G8u7x7 D8e7@-PrGGG'H3HDH77a:8-PHHH$I0IAI77,b:8Ѝ-XxIIIEfnJJw879}8-`JJJ5K)K7g7498-`DKSKWK KK7t7\98-`KFK+@LML7798@-`KFhL+@LML7798К.XLLLeMqM~M7t7:\8p".xMMMOOOp8С89;H85.xKP\P`PQQAQx89@GXh9H8@P.xZQkQoQRRR29:b:H8Pm.8)S-4Sư^Su7pg77P.HeSrS}SQ'SS7g7497@.H TT#TTTT877c:7.pT UUVVV 847Gh9 8@.@W/WEWXX7Xd77c:T7 /`cXsX{XKY[YzYv8$7 D88p$/@YYYưYY`w7pg797p7/8YZCZ=[a[z[T77|:h7I/[[[[\g\|\4{879H8Z/X\\\K]\]7D7$98l/(Ul]]]]t7pg74D8~7~/H]]^,g*^=^7g7HD8\8/D^T^^_%_@_8X7d:H8/H{___;`G`b`Р7\798/Hn`w``G``d7798@/p``faOcccct,9,9p;480:d\d`dddt7pg7e7%00dd(e ff9fhy88G:d7PK0 offfdhxhhH849`Gh};Di7k007i'iO7b7m7p@=p@=$9y04i-H=80yi-0H=Ė800zzi-G= 8p0zzj-G= 80cj-G= 80j-G= 80k- H=D80k-G= 8 08#/:u7pg7t7@!1 JZv7pg7e7!51(l]*w$w7pg7e7p"U1g-xf Wlt7pg7e7"v1@^l2ޫxw7pg7f7#17jlqlDEz7pg7\D8e7 $1Ҷ) ۶~z7pg7e7$1Ҷ) ۶~t7pg7e7 %1@A4w7pg7,7% 20Dv7pg7k7P&*2Jxf et7pg7k7&H2Hzl25H7pg7D7p'b2 ) x7pg7k7'2 ) t7pg7k7p(2l. qi7p@=(2ll.0 7lt7pg7pD8e7@)3l.li7p@=)O3 !l.lt7pg7e7*30lll1mm'mԖ77D87p+382m!Dm1dWmu7pg77,3 E `m1t7pg7e7,38cmrm~m1mmm787L9T 8P/h4 mn1nxz7pg7t7/482m!n1dWmu7pg7714 E 1t7pg7e7 1482nHnTn1nnn7ħ7t9T 8054 m o1nxz7pg7t75 58o,o3o1Zoqoo7`7D87755oo1lDot7pg7e79Q58ooo1 EVYr{7g7LE8t7= | Vc7g7f70= | Vc7g7f7 >V}X7g7̜<e7С>-7;VUhx7pg7=f7>Vxz7pg7=e7P,?2;Vxz7pg7e7T?Vhx7pg7f7z?)Vahx7pg7f7?Vexz7pg7+<e7@Vxz7pg7e7@ xVz7pg7 ;h7 A+V%4=pg7x7`E80A8D'Q[8b`787t7UA E 1[v7pg7e7{Airy[<77GtE8e7A ™ՙ[d7H{85H9f7 AF+>[Fbm877,9e7A0[g Ț( 8H85HE8h7B8P[Ah47D7Gh~7@>BP&E[ß"49|@<`H<T7iB(@O[at7<7Gf70B8r|[֣ ܞ8h9Ht;h7 B@[ܤx7y8 H47B0[`77Gt7CX5L[¥ą8$8 G9471C8٥ [-7770IC8;Z[Ȧ77T97`cC[Ap@=p@={C"-+-[Kp@=p@=pCS \[wp@=p@=Cp `[7pg7Ȧ8Cѧ[FRg7g7`Gd9H8p"D[7g79H8@D )[;F7g7H8aDOX[ju}8g7H8D[8C7pg7GH8D [ét7pg7e7 D ҩݩ[D{7pg7h7` D [@[hx7pg7f7` Dzb[xz7pg7e7 E[t7pg7e7` 8EĪΪҪ[4@h7g7e7SELT[h7g7e7pEH[6n7pg70;8E0[ȮۮD7g7D:7#EH [c\{7pg7i9\~80%E(6[ϯگķ77f7&F [F h774 ;e7*PFv[۱7D7E8e7 -jF"-[Kp@=p@=/F -[v7pg7e7/F$T[ &:t79`H d:f7p;F t[u7pg7E8~7<F0-[x7ѳڳ7@7GE87=F<[v7pg7e7=GX [s8hg79x8A}G0[Fv7pg7Ħ7PBG@Ĵʹ[7g7X7 DG[Skx7`7|9e7PGGqc[xz7pg7f7G'H0õ[ u7pg77PNCH '[xz7pg79t7`QH Ƕ׶۶[ h7g70-<t7\H"-qe[Kp@=p@=^I _[v7pg7e7^/I z[77$:$h7 aSI8GV[|7D79e7pbtI ¹չ[ 77T9f70dI2A[_t77@Ge7eI [-77i9$h7g J8_]H[T4777h>J ar[o 8 8s<f7oJ(.v@ [ 7g7$h7PpJ *Y[ž77 ;e7sK@6Ed[ο77 6H8j9X7`v>K0xZ%[Aw7pg7Ħ7vgK**-qM wwK^^TqxK q@zK  qC=7PzK::qC=D7zKqF=88{KxxPq|B=t~7{LxqD= 8{'LNqF=8P|?L$$qGC=l7 }\LTqC=8}wLqD= 8p~LqC=8ЀL&qlF=8pL`xqG= 8L0qhC=7MPqpH=̔8`5M8/rZĶz7pg77SM(r(%@y7pg7$h7tM ) rhx7pg7$h7Mgx[xz7pg7@=M8'[z7<7h~7M($[@y7<7f7`N $[ hx7<7f70)N#5<[CRv7<7E8e7MN0Y'[k~w7<7t7yN@s [Xy7<747N8llZ [z7pg7h~7NX0&$[B&7pg7̉8N(llZ [@y7pg7f7O[(%v7pg7e705O llZ [hx7pg7f7P\Oxf [v7pg7e7O0[4w7pg7t7`O@2[Xy7pg747O8l2[z7pg7h~7O(J[Zs@y7pg7f7`P 7[DOhx7pg7f7@Pxf [v7pg7e7`dP0[w7pg7E8t7P@2[Xy7pg747P -"t7Px7GF8f7P,. ) 4Cp@=p@=@ QJUlp@=p@=95Q'+-t7pg7e7`SQ02:x77F8e7yQ0So`77X~;t7Q8# $w7pg7(F8~7Qf 8u7x7Qf '8u7x7`Rf 38u7x7ЩRf ?8u7x7@1Rk Kt7pg7e7NR E ]i7p@=e7pR8ap0779t7R8B.Bء7t7t7RHWf$3t7pg7<;;e70RXbs kyt7pg7Di7 R xz7pg7t7S #f ##z7pg7k73S #f #z7pg7k7`SS0&+;!w`w7$t7@H|م$w7pg7~7'Z 1x7pg7@G8Di7'Z8*f`- {7pg7Di7`(Z8*f`- {7pg7Di7@)ZX5?PP78u7G(k97+/[Xcn7Ȋ7GTG87,S[HLXm$7D7:74r[hyP4P)9:H;8G%\h =L89H];8U=\HKZmP8T8`G:47X]\B p@=7H\<`\\ huxz7pg7hG8t7\\xf t7pg7e7`]\B&t7pg7|G8e70^\ l2v7pg7e7^ ](v$xz7pg7G8t7_1]JZsv7pg7e7@`Z]l#v7pg7G8e7`]l*v7pg7G8e7a] 1APitxz7pg7G8t7b]Ϸ,t7pg7G8e7`c] xz7pg7G8t70d^xf t7pg7e7d:^. xz7pg7@=0ea^ q@Gxz7pg7D9t70f^Xelt7pg7H8e7f^ <xz7pg7t7pg^7DOt7pg7e7h^ <xz7pg7t7h_7DOt7pg7e70i2_ <xz7pg7t7iU_7DOt7pg7e7`ju_ xz7pg7H8t70k_xf t7pg7e7k_N xz7pg7@=l_&E$xz7pg7@=l`2xz7pg7@=m)` E 9p@=p@=e7md` E 9p@=p@=e7m`,9Ϸ,t7pg70H8e7 n`,9Ϸ,t7pg7DH8e7n#a ;Rxz78u7He7 oba;Fp78HHB<e7{a;@[n7Ȋ7`H9f7~Ob;f7|7He7pb K;h77H<<i7b;"5Fd7 7H9e7pEcav;م7|7Hl9e7c;a7|7H9e7&d;H[xz7pg7XH8e7df3;d7Ȣ7@He7d;!0?77 HlH8e7+eF[;}7|7He7me ;Fxz7pg7H8f7e ;xz7pg7H8f70ef(n;F hx7pg7H8s7f$;C8t7xt7`HH8e7p g8?a;78Hy<7hg(;whx7pg7d:s7Mh;)t7pg7dk9e7h<G;Wfhx7z7s7f7`hq;t7pg7e70i ;Be77k94s7Ui;7T7H49e70i b ;Q h Pu7pg79f7i   ;   p@=i7Hk9i  Xư Pu7pg7i7jlZ Xmz7pg7e7ЯAj  X ' Pu7pg7i7bjh0 E T Xq | 7D74HH88jf X0  77e7`j8   X   78G947`j8 0 ? Xm   $77H847@k0   X   7t7l9D7з-k+3 : XfJ U 7$7`5HH8e7HkP\ x  X   d88G9x70lkX? [  X $h8898пk8K`wX$7؞7Tl9D70kHX8839Gd:D~8k@Xb3/7Ԭ7 5HT 80k8@X Jz7pg7t7kKQXXdwp@=p@= I8 lXxz7pg7@= *l8#X/z7pg7h~7Hl(lX]*h*@y7pg7f7Pil Xhx7pg7f7l) X|v7pg7e7`l0X#Fw7pg7t7l@^l2XޫXy7pg747lPAX 7pg7~8Pm@XDOz7pg7075m8X,\x7pg707pVm(Ʒ) XϷڷTw7pg77tmH)XZĶ`7pg7,~8mXzl2Xz7pg7\8@m`-2Xxz7pg7@=m8#X/z7pg7h~7m(lX]*h*@y7pg7f7 n Xhx7pg7f7Cn) X|v7pg7e70en0X#Fw7pg7t7n@^l2XޫXy7pg747nXAX7pg7$8 nHXDOx7pg7}8n@X,w7pg7}8@o0Ʒ) XϷڷz7pg771oP)XZĶ7pg7@8`Xo`zl2Xz7pg78{of yp@=p@=oxf yt7pg7f7o0y `w7pg7 I8Di7of yp@=p@=o *f&y8Ct7pg7Di7ogxHLyd+s+p@=p@=po}Uy=tn!p@=p@= p8^zy1\78GP:7t7+p@y47D7,7Lp0y$77G$:Pi7^p0"y7D7te:Pi7npy  )pg7x74I8p{s ye4xz7pg7@=p82yu7pg7t7`pX;]~$|84v86H:x7qX>Io~ 7pg7HI8x7P)qX@P[7g7e:8qh3?Px7ĝ7G^;x7pq8}y7pg7 9D7r`6m' %<87`G:80;rPf7D86H;~8UrpHdp87498`nr`FU+x}8D7l9T8` rx+L{8$7Gdf:8 r t7pg7e7 rhOJ\g7t7f:t~8rXR! 2 88 7H ;8pk Y d u t7pg7\9e7s ( Pu7pg7i7.sl- mz7pg7e7Ns ֩   Pu7pg7i7@msh z!!7g78sh!L!W!!!!8798s!!!""""78@H:e7s83#U##-%I%|%8<69HĽ;7%s@%&E?4&E&877\I88't L&U&\&,l&u&77GpI8f70(+t|&&&Q'a''h88`6HTg:h8-Bt'''~(((78 Gl9e7P3ft8()b)l*x**P8 9:H :7:yt8+++9+H+W+$77GI87<t^+++z,,,ȭ88@Gx;h8@Bt,,-g---g77d:pLtllZ mt7pg7e7Lt.$.3.J.].p@=p@=9pMt0n.~..3/?/O/77<;e70Q/u0///F0Z0g0 7D7_;t7Tu8#0 $w7pg7I8~7Uu'0t7pg7e7`Vuf 1g18u7x7Vuf 18u7x7@Wu:r'1t7pg7e7pW v E i7p@=e7W.v8/1U>111077t7YLv81111ء7t7t7`[hv(112222t7pg7P ;e7`]v8'223t7pg7Di7@^v 33y33xz7pg7t7@av o3Wxz7pg7t7bv  3(G=<8cvN xz7pg7@=0dw8A4P4&m477t7 fw8f 4Ru7pg7t7f7w4=tt7pg7e7gPw4=tt7pg7e7`gnw4+-45*57t7e7 jw0C5!S555747t7pmw55L577Tf7e7 nw555p@=p@=pnw` 66!666Ȭ8 88Prw0667777D7Ȩ8@H<47@wxL8S8^8888v7pg7I8e7 xx M880z7pg7f7xx 888887g7I8f7yy9 99::;X7g7d=e7~3z(i ;;  <x7pg7 :t7pz(7<F<M<q<<<7g7I8e7z<<<-<<7t7$9e7q{$=.=xz7pg7I8f7p{5=7D=k=x=77| :e7|==>:?F?k?X7g7<e7 }(@"@M@@@@D77D<f7[}7A@AHAdBtB|Bhx7pg7<f7Ѝ2~BBBCCCxz7pg79<e7m~)nDv7pg7e7`~k k 2DB=e7~[DjDwDD77Di7)(DDDEE'E77G:e7P8LEaEEEF(F47T7ܾ;t7>]F~FFFFԩ7t7g:e7`wFF!G_GrGGd7t7:e7@E=GGHH!Hd7T7D:e7 DHLH]H{HHHL7Ĕ7m9e7HHH II0I77:e70Z OIXIfIqIБ7P7 Gf7 ~IIIJJ"Jp7Ĕ7:f7 KJTJJJJJp7Ĕ7$:f7 K%KBKKKKD77Dh:f74 KKK)L@LMLD77h:f7УplLuLLLLLt77:e7pM.MVMqMzMX77@Gt9e7`ނ(MMMM@y7pg79h7 N N4NCNJNz7pg7Dm9e7W([NjN|NN7g7t7Щ8NNNNNNH7g7m9t70(OO,O;O7g7t7J DONORORRD{7pg7<h7΄hSpStS#Vxz7pg7@M<e7VVVVWWt7pg7I8e70;HW@-WUWdWt7pg7e7xkWrWW=ai7p@=J8WWWX-XZ d Z Z/Zh7g7e7}Z d8Z Z/Zh7g7e7PZkZZZZxz7pg7 :f7P;ZZ[[+[6[p@=p@=90?[H[O[_[n[u[p@=p@=9~[[[[[[p@=i78J80\ \\H \'\w7pg7LJ8D7 2(.\';\-N\P77Di7S0\ \Y\H \'\w7pg7`J8D7s0g\L{\77Di7Px\\\م\\x7̘7$98pŊP\\\uc ]]pv8$7L9f7 0(]7]F]t]]]77m97 H]]]]^y^^07(7`;8P^^_U_a_z_774i:8 ___"__Pu7pg7t9i7<____`7H7tJ8e7` ``)`>`I`7H7J8e7hT`s 7pg78 __f`"__Pu7pg79i7ƌPs`````7g798܌ ^ ap@=p@= h7(NMat7pg7t7p]a!ladap@=p@=!$aap@=p@=e7p@$aap@=p@=e7@] bb$bbbbh7g7D!:t7:bb E)|i7p@=J8e7 ɍ i7p@=e708|bbc|,cu7pg7m9T 8`#8AcPccccccu7pg74n9T 8[8ccc77Di7y #i7p@=e78ccdhddd̡7g79T 8ǎ8ddd'e>eIe̡7g7d9T 8@ I^ege6+.Iv7pg79e7:pe{e E)|i7p@=J8e7,0eeee`w7pg7Di7Aeeet7pg7e7\8effLfSfu7pg79T 8@~N xz7pg7@= I\fef6+.Iv7pg7<9e7`nfyfffffp@=p@=J8͏0fffeM:gEg77<;e7 0|ggghhh 7D7:t7@d8#jh $w7pg7J8~7}k zht7pg7e7Pgxhhi7p@=J8 E hi7p@=e7 Đ E i7p@=e7 8/1Uh11077t7 8hhiiء7t7t70  i/iNiiiit7pg7i:e798hiiiء7t7t7_ iYjnjzj77e7~ jjjLkkkxz7pg7t7 oskWxz7pg7t76E6EkG= 8<fOlxz7pg7@=ۑPVlqlllll7g7;T 8j8m9mPmmn'n7D79T 8"V8@nPnnqaqiqu7pg7̡<T 8)pqq$r!ss7pg7p<8-Ott!t(8G=Ď80(uuu)v#v*vxz7pg7d9t7P18;vPvTv)hv077t73vv)vv7g7e7P4"*vv)wwxz7pg7pn9e74Q w&wiw)7xCxNxh7g7<t7p7fxx)&yhx7pg7:f78 E 1i7p@=e788 E Gy1i7p@=e7 8JyYy`y1qyyy7pg7K8809 yyy1yyy7pg7K88: yyz1$z3zxz7pg79t7;JzYzhz1C~zzt7pg79e7<;zzz1P{`{y{p878:8@{{{1j|||(87$j:8Dۚgx||1d+s+z+p@=p@=(K8D :r|>v7pg7e7D+:r|>v7pg7e7EJ| |>}v7pg7e7Ef E }>t7pg7e7ElZ }>v7pg7e7ElZ "}>v7pg7e7E *}'1}>U}p}y7pg7}}}Xv7pg79i7 Hx ~~>I~l~s~77T9i7I(~~>~~~l779~7K( >Hgn u7pg79~7`Lߜ!>xz7pg7PK8e7M!>4[xz7pg7dK8e7N@n7y>Ԁhx7pg7xK8f7Pb7>$Khx7pg7K8f7@Q^g>ہh77ī:e70S? >`h787P:e7U̝>fxz7pg7@=U>xz7pg7@=pV H΂݂@ v7pg7K8Di7W0*5@YHT]v7pg7K8Di7YQ8h@%D8)9H;Di7duP[ޅ@Fx7g77@e8@Vbu7pg7t7gk@-z7pg7e7hҞ(@xx8.9Gj:Pi7q *@FS77K8e7pr`-2@bxz7pg7@= s=gxkrId+s+z+p@=p@=K8sM8y[u7pg77tagxV+[d+s+z+p@=p@=K80us(Ɉ_88@Gn9Di7z͉݉_Q̞77e7X3Ë_8t78/_c87 G8S_8y88Pp8"-_CJu7t7L87(x U_]u7pg7t7ˠdm_pg7x7J_Zsv7pg7e70ō_׍v77e7( $_ v77e7Oe vKv7pg7e7`8v7g7k:t7@"v77k:7_@3vJajt77L8t7΢0qvސ l8pg7,9e7p /[Qv̑77T9e7@ v|’X87ܬ:e7vt7؞7l:e7g Ó ֓v&v7pg7|9e7 (/v Jv!v$w7pg79e7`+v77,L88` ;]\vd8pg7@L88`o0'ҕv`w7pg7e7@@vX7؞7h:78(,vlX7؞7|l:~7PX—=v 847D7`H6ߘvr87$7@8vaԙv7pg7~7`&Xۙ]v/>7$79D7`[ev`hg7t7.<Nv xz7pg7@=*fv Goaxz7pg7@=f E yi7p@=e78-9y7x779t7%8˝ y&77Di7 QH#yoH77t7 E yi7p@=e7 E yi7p@=e78yu7pg79t70Q@07yir؀77TL8t7PHyy$787 9t7@ E Gyt7pg7e7P KOjyנt7pg7D:Di7H&6y7H787l:7PDP֢y|787n9t7m "`ãy 8t7pg7h7p "`Σy 8t7pg747 "`ۣy 8t7pg7h70 "`y 8t7pg7D7S "`y 8t7pg7h7} 5`y65t7pg7h7P 5`y65t7pg747ï 5`y65t7pg7h7 5`*y65t7pg7D7p0 5`:y65t7pg7h7e -yi7p@=e7 -Gyyi7p@=e7HJ?ryפ77t7$H!%yl77t7`jH0kyץ77t7 H!8yȦ(7D7hL8t7p0?ߦyg`w7pg7e7F@yYl77D 9f7m0yd77e7H*LPyѨ77t7pyp@=p@= *yi7p@=e7< +.yAP7D7e7n [yi7p@=e7 ^Emy77e7`޳yԩ?8̌8@(ckyƪp@=p@=lm:*1@ yv7pg7t7+r@yv7pg7t7P,@yv7pg7t7-@_]yv7pg7t7-R(ByDBBxz7pg7|L8$7@.(B2yDBBxz7pg7L87.ȵ(BEPyDB=Cxz7pg7L8t7`/(BE]yDB=Cxz7pg7L8t7/8(BEnyDB=Cxz7pg7L8t70p(hyxz7pg7L8$71(hyxz7pg7L871(hyǫxz7pg7M8t702'(hҫyǫxz7pg7M8t72b(h߫yǫxz7pg70M8t7P32yxz7pg7@=4̷0m7t7$o9~78(Ьڬ@Wı7t7G`o9d70: fŭέ̃77DM8p7i7;F-$fxz7pg7@=<lp0խ|A0t7pg7e7<wޭH=S `,mt7pg7Di70>0vծ7t77@03Bh7؞7XM8Di7BѸ IXQ_lt7pg7Di7C޸ E 0t7pg7e7Cuȯt7$t7f7pF  Я-D87879f7J6"0?Jpg7x7lM8pKN E t7pg7Di7Kc(Q'\`t7pg77`Ly0s-ȱt7pg7l 97@M۱fz7pg7f7N@s e(7877NŹ /KVLt7pg7 9Di7P׹8ò T[u7pg7D97S pg7x7lf7@T(ʳvF78G8;87P_Ƕж׶,g77M8e7`ɺ 277dHaۺ?N]t7pg7M8f7bŷt7pg7m:f7Pd HG\g7$t7dH97eHHz,gϸ87H7f6`ܸ*AJ477G 98PhJPSby7g7 97ldѺ$8L8:H8 |Xܽپ8D8 G9H}78PF 6<EF_X77G87fhTjUxȪ879`cH 98@@77 cHs7ļP8 8M8H7@H '+Ĉ88GX87(?qcR4v7pg7d7`)[}p@=p@=5Ht7pg7f7F(49CưUv7pg7Di7XP^|tw8hu7Go98) )8j}p@=p@=M8H8N 98 G̹8 e-dz(9/9@G4 9̹80|x)Zki:<:Ho9$8(+P7`7M88 6Qcv7pg7\ 9e7д0(;: :G 9 8'I'477 9e70¿?ak4747`GM8p7i7#`t7pg7e7P A {t7pg7e7)iCv@Ct7pg7f70608Hd7D7M8i7Z( 1s77 9f7p`@7pg7 98hZwL:(J;@H\n:8p_v8P}8Gs7j_Q_7(7s7A@Ј7:9`G N8t80n?'9P8*9T}7s7DYv~-8ؿ8\a;x}7f7` (7H7\7 N8OR[jz7pg7e7P >s787$ 9e7P<8#77L 9t7pNH<E^}h747t 9t7dx 747 980y83#77 9t7PHQZq77 9 7h$/77 9801JS_ nHw7pg74N8t7`01Ju_ nHw7pg7HN8t701J_ nHw7pg7\N8t7` a77e7X O_<8D8@G ;80 2(T77bHpN847 M '6C77 GN8h7 h Ra|77N8e7 y 7D7f7` )L]ag78p9 (p|77N8p7f7 0h@c(7ؐ8`}7T7@  z9Xs77!:e7  Qpt7pg7 ":i7`! 0uX77N8e7`% 30i7p@=e70& I }t7pg7Di7' ^ d0t7pg7< 9Di70( p CRU t7pg7d 9Di7)  dt7pg7 9Di7*  *t7pg7Di7*  ELt7pg7 9Di7P,  _nq,gt7pg7 9Di7-  Gt7pg7Di7. 0v7pg7N8Di7/ 0d L>Ev7pg7N8Di70 0Lcv7pg7 9Di72 * *t7pg7Di7@2 4H%677N87@4 @(Ehv7pg7:Di7= f(ly|fv7pg7Di7> t@7D7Di7@ 0 "477t7pA 8-@sE?u7pg7p":7@C 8(37g7(;70G  `-t7pg7Di7H (,$t7pg7Di7H (+8; Bv7pg7Di7 I 8GJ$w7pg7, 9e7pJ (G7g7T 9t7K l#i7p@=e7K .-H77| 9e7N B("~z7pg7 9f7P P8e|77 9f7Q b(NR"77f7V p(3EQ_Yz7pg7f7PW |8`ux`w7pg7f7@X @0Oh77 9f7\ li7p@=e7\ -v7pg7O8e7] 4\t7pg7e7 ^ ( *P77$O8e7^  @1@Cil77t7` &HX77t7b =h  3N77T 8d U@W@fܗ778O87f H&MXX77LO8 7pi `gv77`O88pk  (X77f70m 1<]t7pg79e7m 0l{~F`w7pg7e7pn @77tO8t7q h.8<d87T 8Ps /@d,7g77t E` D7g78u \@18b}d7D7O8$7w --p@=i7GO8px --p@=i7 GO8y :It7pg7n:f7z Ppԧ77~7} `1T̃848 8p 0xepu7pg7D97 0xu7pg7l97P @ 77 ;f7p  `DH88$8GO88 A8 S777 haq 78G9e7З P@D|7hg7p8 f47g7h8 X8(749 8 (&$w7pg7f7 8/DHr7747P (Lpv7pg7i7 `*897:bH:8 wE du>p7g7e7@  yd7ԇ7p7p 077GDi7 P =l87g78 0y4g779p7ж 8GNF[d {7pg7O847` Xkzٛ77@GO88 #`"/@7pg7Pp980 <P<Qc7798 mFIp@=p@=p 8 ;H 77P8t7 8[jm 77P8t7P &787(P8e7 :9<Fz7pg7!O!7 78#:e72! t!!787$9e73!l!i7p@=e73!r!!@7$7q9e76!ʻ{!t7pg7e77!( ""*P77Q8e77!"@r"!"C)"x7pg7t7`8!=H2"A"D"j""777@:!XH"""F"t7pg7t7;!ph""3N77T 8=!@W""ܗ77Q87>!H# #&MXX77Q8 7A!`g`#d#77R88C!8###6$y$$ĭ7 8G#:7pH! $$,OX77f7@J! $<]t7pg7L9e7J! 0$$ `w7pg7e7K!8H$$$,%K%777M!PhT%^%b%%%87T 8P!g@%%d,7g770Q!~`%%%&D7g78R!@&(&/&E&T&]&d7D7R8$7S!l/!v7pg7e7S!*kd&v7pg7e7T!:k&n&t7pg7e7@T!(q&x&*P770R8e7U! && 787DR8e7V!&&&Vqz787XR8e7PX!A@1&&il77t7 Z!^H&'X77t7 \!wh1'5'3N77T 80^!@W&['ܗ77lR87`!H''&MXX77R8 7b!`g&'77R88d!p(((0((((87R88Ph!  ((((x7pg7f7i! ((((x7pg7f7i!4 ((((x7pg7f7j!M ))i7p@=e7j!d0 )))%)4)`w7pg7e7Pk!}@;)J)M))))t747R8t70m!h))) *#*2*87R8T 8o!@E*f*i****t7pg7R87q!`***+++7pg7R88s!@/+>+E+Y+h+q+d7D7 S8$7t!x+++++ ,7T7Gt9Di7pv!K8,, ,-6,77cHh7pw!c,.WG,,U,77cHe7w!{-^,a,o,L77Ge7x! !x,,,,i7p@= S8e7x!lKnip@=p@=e7y! [p@=p@=e7y!P,,,[---88`dH9 8~!@---A.X.s.7x79df77! ...77e7!?1..pg7x7!`@...-.y7pg77Ѓ!0...H.77G7p!X0..//// 8390r9l}747!. 0.77e7P!10.pg7x7!@0$0'0L+0y7pg77!(40=0@0 GL0<7Ђ7G7! `U0p0{0000D88 dH4S8 8`!0000b!1,107D79Di7!$` <91.I7pg7l80!4 @1p@=p@=e7@!D ""p@=p@=P!TC1J1C-_1p@=p@=@!j _f1i7p@=s7P! /j1 n1p@=p@=!,.-u111p@=p@= !11233M4g7D7j<p!  i7p@=f7!  i7p@=f7!  i7p@=f7!7  i7p@=f7!O  i7p@=f7!g  i7p@=f7Щ!  i7p@=f7!^#`4nyp@=p@=P!^4Snyp@=p@=!X444v47pg7 8!(l]*wv7pg7e7!) |v7pg7e7!-Ҷ) ۶~z7pg7e7!FllZ mz7pg7e70![ llZ mv7pg7e7P!ollZ mz7pg7e7p!8llZ mu7pg7t7!llZ mz7pg7e7!0llZ mHw7pg7t7Э! llZ mv7pg7e7!0llZ mHw7pg7t7!  llZ mv7pg7e70!+0llZ mHw7pg7t7P!K8llZ mu7pg7t7p!`llZ mz7pg7e7!u llZ mv7pg7e7!llZ mz7pg7e7Ю!8llZ mu7pg7t7!llZ mz7pg7e7!0llZ mHw7pg7t70! llZ mv7pg7e7P!0llZ mHw7pg7t7p!' llZ mv7pg7e7!E0llZ mHw7pg7t7!e8llZ mu7pg7t7Я!zllZ mz7pg7e7! llZ mv7pg7e7!llZ mz7pg7e70!8llZ mu7pg7t7P!llZ mz7pg7e7p!0llZ mHw7pg7t7! llZ mv7pg7e7!0llZ mHw7pg7t7а!9 llZ mv7pg7e7!V0llZ mHw7pg7t7!u8llZ mu7pg7t70!llZ mz7pg7e7P! llZ mv7pg7e7p!llZ mz7pg7e7!8llZ mu7pg7t7!llZ mz7pg7e7б!0llZ mHw7pg7t7! llZ mv7pg7e7!80llZ mHw7pg7t70!X llZ mv7pg7e7P!w0llZ mHw7pg7t7p!8llZ mu7pg7t7!`-2xz7pg7@=@!I4xz7pg7@=`! 0v7pg7e7!(l2zxz7pg7t7!7DOt7pg7e7@!(44/)4t7pg7HS8e7!?7DOt7pg7e7p!^7DOt7pg7e7!{7DOt7pg7e7!7DOt7pg7e7 !7DOt7pg7e7!7DOt7pg7e7@!02&`w7pg7e7!8Vhsx7pg7t7!JZsv7pg7e7P! 4 5505;5B5v7pg79e7p! O5\5g5555v7pg7<9e7`!%555ޫ5t7pg7\S8e7!8555ޫ6 6v7pg7pS8e7!M6z76xz7pg7@=!`!/&6xz7pg7@=`!u`-2xz7pg7@=!`-2xz7pg7@=!l/666v7pg7S8e7p!xf t7pg7e7!xf t7pg7e7P! Fxz7pg7@=!0v7pg7e7p!K:?6F6|Rt7pg7S8e7!jxf t7pg7e7`!N xz7pg7@=!xf t7pg7e70! t7pg7f7!M6Z6e6t666t7pg7S8f7!&E$-Exz7pg7@=! 6'`-6xz7pg7@=!$f Goaxz7pg7@=P!?@D`t7pg77!Z(Ʒ) Ϸڷ\u7pg77`!q0) t7pg77!Fxz7pg7@=p!8#/:u7pg7t7!@A4w7pg7,7!nfyf6Offfp@=p@=S8@!*Q6Ot7pg7e7!0666O57@777:e7!:0k777O7 88 7D7;t7@!8#g8O $w7pg7S8~7!cw8OC^8i7p@=S8! E 8Oi7p@=e7! E 8Oi7p@=e7!8/1U8O11077t7! 888O89ء7t7t7!%9 9C9O99t7pg7$:e7!C 999X:B=~7P!T ;Y;;i7p@=e7!}L& ;Y;38787@Hf7! ;;YH;pg7x7Ge7 ! ;< <YQ_!<,<Px7x7GS8e7!3<Y=<p@=p@=e7P!9D<Y=<p@=p@=e7!eN<Y=<p@=p@=e7!f X<Y0 b<p@=p@=e7!i<f r<Y|<p@=p@=e7!<<Y p@=p@=e7P! (<<<YH<<v7pg7T8~7!4 <<Y<<Px7Hz7 @He7!p ==Y8'=Px7Hz7?He7!(0=E=Y[=j=t7Hz7`@He7!`u=Y=<p@=p@=e7@! &==Y===p@=p@=$T8!)  "a?=d7!d  a@=d7!  La@=d7!  a@=d7!  *a8@=d7!`  `a0@=d7!  a@=d7 !  %#a(@=d70!  =a @=d7@!M  "bP@=d7P!  b@@=d7`!  LbX@=d7p!  bH@=d7!b.Y Bxz7pg7@=!===Y===77d9e7!(=>>c>>>$8d89e7! ??cE?`?{?7478T8e7!J E ?ci7p@=!p(???c?%@J@L8T8LT8t7@"/ f@q@c B@xt7Hz7 G`T8"@c@@pg7z7" @@c@@@v7pg7tT8e7"<@AAAUAcAABȜ77 Gd$:~7 "p0BFBaBcBBC8d8Ho:Di7`"C7CFCcpCCC88Hlr9Di7@"XCCcCx77?HDi7`"(CD7DcDD7T7`?Hl;"`DEEcGEbEwE\7`8H$9Di7"0EFhFc~GGG8@:9H1<e7$" 0dHyHHcHH|7,7>H9Di7%"-8HHIc&@IWI77@G$:Di7'"X0nIIIcb3II77 >Hr9~7P)"oIIcf7d7 HDi7*"0I$JH9Di74"@KKKcLL(Ld7Ծ7 Hr9Di76" 7Lct7pg7Di7@7"X]LLLcLLM88H9,8;"IMhMMcNN7O<9<9@H%:Di7J"yQOOPcRuRR89H<e7\"08STlTcU\VWl8;`HX<Di7n"0nWWWc-WW`w7pg7T8Di7o"0WWqc^qmqz7pg7f7"U(xqqqcr'r>r7$8@GT9i7"8Qrcrfrcr(777p"8rrrcs;s77 ':Di7"Rsssscsstl87`>Hs9f7"8t$t+tcMtptwtz7<8GU8f7@">~tttcttti7hi7U8e7 "dtttcCtti7p@=(U8e7"ht6uucGvWvgv77؅;8" zvvc$wt7pg79Di7"(Kwbwwcx x3x$w7pg7Ȇ;Di7#M0txxxc2yByWyx7<7G$:f7#k(yycyt7pg7cjpg779`,#cv7pg7e7,#Ɂc6+A+܁v7pg79e7-#scHzxz7pg7@=P.#"ccnuv7pg7U8e700#?z) cv7pg7e70#m.c Bxz7pg7@=@1#JcZsv7pg7e71#cɂ҂7D7`GU8e72#قcv7pg7U8e73#:) c|Rz7pg7e74#,z) cv7pg7e74#\c"xz7pg7@=05#c4v7pg7e75#`-2cxz7pg7@=6#NNcxz7pg7@=6#)p@=p@=p7#I8EPQ_mtp@=p@=9@8#~` &7ĵ7H$:T 80;#B:ADMt7pg7e7`;#o*xT]hx7pg7f7;#*xd]hx7pg7f7;#:Amvxz7pg7e7<#N`}xz7pg7f7p<#"?jxz7pg7;e7>#Wxz7pg7e7pA#_immhx7pg7f7pF#xz7pg7e7PI#7 /xz7pg7e7J#iZtdFЉh7g7e7pN#܉\l|7g79f7pR#Ppd77T 8S#$8NJϊ4L\X7`7U8t7W#QHy!dn77T 80X#xمi7p@=V8e7PY#>Ƌu>΋i7p@=e7Y#`Ջ*w\78u7Gs98P^#@nj֌ #h7l7V87`#(2Gt7v7Ge7c#0Ǎv78u7`Gf7d#8('v`y77 ;e7j#b@ӏb3,7`7,V870l#3g-Ql7ԭ7`=H,q:e7q#@x7őt778r#H:fΑ0 ؕ7pg7D 8@s#Hؑ7g7D 80t#Hؑ7g7D 8 u#(qc$w7pg7Di7u#(ɷf!$w7pg7Di7v#/ -)i7p@=e7 v#Wp,-=tt7pg7e7v#~ -1i7p@=e7v#5t>HWt7g78w# Z`jy7g78x# -i7p@=e7x#p,=tt7pg7e7y#< -i7p@=e7 y#hВT7g78z#ْ֩ 7g78{#@$3>n}Դ77@V87p}#@$3n}Դ77TV87~#@˓ړ.Cd7797#>p,P=tt7pg7e7#\p,T=tt7pg7e7P# X\t7pg7e7#8fqccRu7pg7t7 #8fqcgRx7pg7t7#,.qck8>v7pg7e7 #_s{Ȋ77#8T7h8@#2l-ɔi7p@=e7`#C !p,͔ٔi7p@=e7#[fgi7p@=e70#q(=MQ$w7pg7@7#k  i7p@=e7#(=MQ$w7pg7@7#k  &i7p@=e7#`0H9AД7pg748#lAHz7pg7e7#DlALz7pg7e7Ј#qpP Ys7g7 GhV88#%77|V80h7e7# Ŗ07H7t7# bI(77e7# N}3Ct7pg7V8e7`#h (LlW Gu7g7t7 #  |Η .q7Ȋ9 H;e7# N}t7pg7e7@#  ˙GAhX787V8f7#O *"%t7pg7e7 #  3TiRҚ7,8GD9e7Р# ّ"=77e7# XN^qכh88@Gl98P#  L v7pg7e7#. (k g>t7pg7~7P#W a`*i7p@=e7Ш#y vg&i7p@=e7@# Ȝ3ݜi7p@=e7@#  z7pg7e7#  z7pg7e7# 0A Hw7pg7t7# 0A  Hw7pg7t7#1 0A Hw7pg7t7#U  v7pg7e7#x ?ggz7pg7e7P# "=tt7pg7e7#  &i7p@=e7# *w5Kfz7pg7e7# ( Am}7g7t7#8 (77e7p#` (C-<t7pg7Di7p#z PC487':t7p# pk<7989':8#8#͢#x7pg78#& Ѣq>D9ȋ< HP<e7`# 1@Ijh7879e7#8vAh 77t7#0AP[779~7#! nT}˫h787V8e7#D ҫ-6@77V8h7e70#aEaf77e7#8Ӭ(7Ĕ7t7# !ARv7pg7e7#@dY{(D77G97t7@$vC(4xz7pg7e7$'@CRa77V8h7t7$F(S88@G=;e7 $8x';DZ7<8:H7t7 $B{-H77GL(:xh7e7$(o47T7G 9e7$V D!=Mڴ8 88Gt9lh7e7P$y8LI'?\7t7;Hh7t7 $¶ 7|7`GV8e7"$k@vC-/<z7pg7W8e7 #$CRaH7L7Lt9`h7e7%$ɷַݷz7pg749e7p%$(1pv7pg7i7%$(<ø)88G(:8i7*$ (RaT77`7H47,$5vC7|7Gf7,$_4ŹԹ"7Lw8W8t7e7-$1v:j}$770W8e7/$ ƺݺ77DW8;e70%/( %( p* :( I( %.t7(7GZ8e7%0* * * 4* * 77i7p@=: E: 7pg7PZ8h7/&%6hL: \: : : : ; 8w88Hȱ:p8 3&P6BB; Y; 7H7$9e7P5&6; ; ; L< o< < 77:e79&6X< < < b = = 7g7dZ8D8:&6P= ,= ;= YH\= e= T7g7xZ8T 8;&78t= = = -= = x7pg7Z8t7<&67P= @= = 77t7=&`7H= = = G> > Ļ77Z8 7?&78 > @)> 3> F> З7t7 7@&7XO> GX> j> z8T77A&78y> > > > ? (? t77u9s7@E&J8 8? K? f? b3? ? i7p@=Dw:e7F&e8 @1t7pg7e7F&8 ::Q?  ? v7pg7e7`G&88? G? @ 77t7H&8 @1i7p@=e7H&8 lL@ v7pg7e7H&(98@ $@ -@ 4C@ L@ \77Z8t7I&Q9PS@ c@ g@  @ h8t7Ȝ8L&b9`@ @ @ b@ A 77Z8H8N&9,.RA 8>v7pg7e7N&9`A *A -A pAA (7؞7H8O&9 LA _A bA vA x7pg7e7P&9p}A A A A A z8D7Z8(8R&:A A A B #B (8D7Z88U&9:x*B 9B DB YB B \87$:e7X&T:8B B B B B 77t7Z&u:C *A C (C 7pg7P8[&:3C gx~xz7pg7@=Ђ&V>@J 0J JJ G  L L L 88`G\;8&z>0)M 9M UM G M M N 7H7u9p787&>([%N G F/N Pu7pg77p&>(m6N G .IBN Pu7pg77&>&EIN G QN dN kN pg7x7h[8&>(rN }N L N z7pg7|[8f7&>(N N N N T777&?(hN N N N $777&0?(N N N FO 7g7i7P&M?0O O N .I)O 7g7i7&m? !2O N ;O h7g7i7P&?0DO _O N O O O 7H7[8e70&?8O O O N P P P d77.:e7P&/@IQ VQ aQ N x7Q Q t7pg7[8e7@&Q@8Q Q Q N R R S 7H79t7@&q@ /S WS oS N  T )T LT 7 7[8e7 &@(dT sT ~T N ưT T P7D7G[8Di7 &@T T T N T U 87D79e7`&@ U 1U 8U N 5\U gU z7pg79f7&4A(rU bU N hU U v7pg7[8Di7p&YAU zU N U U pg7\8G&xA lA/N z7pg7f7м&A(U V V N V .V =V t747[870&ADV KV N RV 4$77\8i7о&A(JN Zsy7pg7i7p&A([V mV tV N {V V V 7$7\87&B0EV V N V V 770\8i7&=B:) N |Rv7pg7e7&bBV \ FV t7pg7f7&uB V V \ RV V p@=p@=<9e70&B(W *W AX \ Z Z ][ и8<:aH<Pi7P&B \ \ ] \ !J] e] v7pg7.:f7&B8] ] ] \ ^ ^ H_ 8D:H$?;f7&B(_ _ _ \ _ _ _ 7D7D\8f7 & C ` \ p@=p@=e7p&!C0` )` 4` \ P` [` $w7pg7X\8f7`&3C0f` ` ` \ 'Hea |a 87@7GT:f7&EC@a a b \ njb b 7h7w:f7p&\C0b c c \ 2wc c |7D7G9f7&C0c c c \ Ed `d d T8|8 Gd9<}747&C#`d \ p@=p@=&C d d d \ e +e He 7\v8 bHT/:0}7f7&Cge |e e \ e e e 7y8G9$}7f7P&Df Q?"f \  xz7pg7t7@'`(? ;  Z> xz7pg7i7'W`Z Yi  { i7p@= g70'` *  YHǙ t7pg7 g7`'`Ι ֙ ݙ   p@=p@='`0e  ! ̀7D7H7'+a<*  Hy8u7v7He7@'Xa@2 C P   N 88`Hc;~7'jb  fќ ؜ t7pg7l9s7'b@  K [ ̆88D9i7p'c Ϟ ڞ    v7pg7H]8e7'c  &  B U ` xz7pg7\]8i7' d(g    \7g79i7P' xz7pg7i7 (f <  F8 i7p@= g7p(LfH å   7747@(|f ^  pi 77H|708(xk0lt  Pu7pg7|7P8(n07x    7749e7`9(n ʮ  t7pg7e7p9(oЮ  ڮ xz7pg7e79(No   t7pg7e79(o   t7pg7e7:(o   { t7pg7]8e7P:( p   t7pg7e7`:(Zp0    @ _ h X7d7Hx9 8<(pw   ů t7t7\9e7@=( q@Я  " 9 @ $w7$t7Hx9e7>(|qHTO j w   Ѱ z87`H9L7t7@(q(   p77|7B(+r  ڮ xz7pg7e7pB(q   @ G z78u7@H8y9e7PC(kr8T u    t77ty9t7E(r9 f m   z78u7H^8e7G(r   77He7I(%s( '   7z8H9f7L(s@ų ;ҳ   y7pg7 8M( t   T c t 7|7Hy9e7pO(WtP   Դ P7pg7~7Q(t`ݴ  '   z8749X7T7U(t8͵   7t79t7X()u Z¶  ڶ pg7x7$^8Z(u    R y g7x78^8Tg7\(u@    H7g7L^8D7^(=v$ 94   $78}Hy9e7@b(v@ø <e7 ( i ~ |8D89H<e7p)T0  6 . F g 77|A;i7 )i f t7pg7_8f7 )@ t7pg7f7 ) E Z i b 7D7<9f7)* p@=p@=e7P): p@=p@=e7)ڊ8 z Nh 7D7G7)(rN  N z7pg7_8f7P)(8x x7pg787)V@ 7 ^   D 787<;7)0s )  T7$77)ދ( . U f ̛7g7d97)@}  ? X 877|9$7)-(o x   # 7D79d7!)N > N R x Ľ7T7~7$)|  + > 77_8q7e7@')hQ ` o  4787G_8}7e7()ڌ8  1 77~7@*)81: cx7pg7D7*)-B Y b  h7g79e7 ,)K  - i7p@=e7-)l < 877`GDi7P.)8 X h s 77`8t7`1)ލ  t7pg7e7p1)8  77t72) (  77e704)M ( " . 8u7v7`Ge7 5)j<9 Hy8u7v7@Ge75)(A P |\ d788`jH707)(Ik n fv ș77`G77)̎ e ! 7D7@Gf78) e ! 7D7Gf709)! e ! 7D7Gf79)J e ! 7D7Gf7p:)t (  x7 i7i7Ge7`;)l p@=p@=e7;) l p@=p@=7;)̏ L xt7x7`87<) & * f r t7D7G,`87@)  t7pg7e7@):H b  t7g79D7@A)X $ N ] z7pg7e7B)yd & t  779e7E)ސ :_ " 1 8u7x7e7F)8 C U d t7pg7e70G)lk wt7pg7e7PG),ls z7pg7e7pG)P(w # B _ (77$9e7L)(q  & G 8t8Hz:i7`Q)ڑl\ Zt7pg7@`8e7Q) )\f ]x v7pg7T`8e7R)IP   T77G,948 T)8L& ,3v7pg77T)ȒP  #  z847T98X)/P  ! T7748PZ)Pl* Zt7pg7h`8e7pZ)u4 ( C g p t7pg7|9e7`[)œ f t7pg79e70\): t7pg7e7`\) ) bC L 7\7 G|`8e7p^) /( [ C-{ y7pg79e7`_)G0    `77D|9t7a)( ^ p  z7pg7`8e7b)ޔl Zt7pg7`8e7b)P (  e 7pg748c)(     ؆7798`e)a )\+ ]x v7pg7`8e7e)P= L a  7pg79480g)8   * 77t9$7@j)˕ )\c ]x v7pg7`8e7j)Pd.Yu } 7pg748pk)P  7xt7 G`848l)6 / F W 07D7|9Dg7n)` )\x ]x v7pg7`8e70o)l Zt7pg7a8e7Po)l Zt7pg7a8e7po)l Zt7pg70a8e7o)P / > J 7$t7jH948r)JHg O r (8$7:l8 x)o: p@=p@=r7Px)P   ٛ= L T7 7 kHDa848z)՗(W m q  ؆7797|)P / > eX _ 7pg7Xa848}) j y |  77|9Dg7)DP .   7xt7G48)i )\ ]x v7pg7la8e7)l, Zt7pg7a8e70)И86 $E  77D970) )\ ]x v7pg7a8e7)0l Zt7pg7a8e7Ѓ)_P  A P [ 7pg7|948)~@p " A V 7$71:8)8  77l9h7`)͙( , 5 [ n w 77a8i7) ~  v77a8e7Ў)+   % v77a8e7Џ)Z, G K  77e7В)( C   7 w88fHDB;7e7)(k H s 78Gl:|7)ě w 7x8H;f7@)Y   ư0 7܅7Gf7@)X; ( P C-j 78u7G80)2q  C-  pg7x79 )B k   8u7{7Gf7)_2Y  i7p@=f7){ (  C- 8u7v7Ge7) 5 D ff q t7pg7a8f7)l| v7pg7e7)  t7pg7e7)  i7p@=e7)*       p77 b8hr7i7)J    $ ; D 77 b8Pr7e70)d8K f y    Ȑ7D74b8\r7t7Я)8(  ' . Z u ~ l77Hb87t7 )1  0 Pu7pg7i7)1  0 Pu7pg7i7)(    ( 3 77\b87d7) : E U t7pg7e7)0^  m   D 77pb8Dr7e7 )J4      77b88r7e7p)e " K   77:Pi7)    R } 7$7e7)(   77@GPi7`)Ҟ    ' p77b8 r7i7p)|2 = [ j s l77`Gb8i7@),~   p@=p@=)b     7(7b8r7e7)H# _2 D S 7g7 8) Z p@=p@=e7)l^ i7p@=e7)(:b 0 j x7pg7e7`)>0q   ̀787d947)Z02 T s - U ~ 8+9@HH;q7 )  t78u7@G9e7)"0 $ j ~ l707Gb8i7`)_H   8D77)   . E \7؞7i7 ) V _a m Xv7pg7i7)ԡH  78`Gb847)0* ,  Lv7pg7b8i7`)S8 & W  E  8: gH<~7)A :_ " 1 8u7x7e7)p ( =    77G{:tf7e7)    . 7 77c8q7e7)0F U d    Ī78G4}9}7e7)<  . X o x 779`q7e7)       7L7$c8xq7e7 )̤  J! . = t7pg7e7@)|D K ^ m t t7pg7 9e7)"}     * ? 7@7@G|{:e7)l(f      78fH49i7)\& 5 D v   Ը7Թ7G8c8q7f7)p   w   77p}9q7e7)(    / : 7X }X ~Y Y Y 8H,9iH:p8*u O #Z *Z 8Z GZ RZ Px7k fk k Pl yl Ļ88dE;h8 <+Hl l l m m |88`Gi7 >+@@#m ]m m m m n 87X7}:7C+o@l#6n v7pg7,7 C+8)9n u7pg7t7C+(Hn Yn in  o o o 7d7`G:f7J+o o o p Rp Yp t7pg70f8e7L+?dp tp p q 4q [q 7H8HD9e7R+k vq q l77Gi7R+q q q q t7pg7 9e7pT+0q )r Cr r s 7s t 8*9 iH4:~7\+ (,Ss s s 3t bt t {88`HL~:7i70d+St t t t <7g7f7d+~@ > t t u !u *u 77Df87e+=u Ru uu u u u 77hH$:e7 h+( v 2v Ev .w w w T7x8G~:Pi7p+l#w v7pg7e7p+(w w x Ux hx x 77G:e7pt+Hx x #y y y z 87G;7@{+(^z sz |z z z t77 9s7|+(z z z E?&{ 5{ d7t7 jH 9e7~+>{ M{ X{ { { { $7T7 G!9f7+8T{ { { B | | l77Xf8~ R~ e~ ̞77@Ge7+]r~ ~ ~   , 7ī7T!90q7e7+t8? N Z u7pg7Ħ7`+(a v     77G9f7 +8  >=7(7GĦ7+ 0 S  Ӏ 77`kH:f7+@/u e' T7t7,7+ 0 @ k   ' 78`eHlf8e7 +&R ` { 7@7H,F;e7+~ ˃ ΃ gփ v7pg7e7P+6߃ 0 O Z p787|!9i7+ q  Ʉ y78u7G!9e7О+(܄ : * o 88;HZ<e7+S8:m  u7pg7t7+u˃ w 0 z7pg7e7+ ӈ 7\7f8e7@+( ) D  lj ډ t7g7<:87+(  e 47ȧ8eH!9}77+ ӊ # F ] 78eH9e70+J1v y  xz7pg7e7+n(t ы t77Gf8p77 + 6a=ai7p@=f8+PY 8 G @87e7+R g p  v7pg79e7+ l x7pg7k7+'  Fx78u7`Gk7p+S_ ˃  7g7e7+| Ō  B 8;9 H(;}7e7+E? a y _ 88G(:}7e7P+  - 6 ̃77f8q7e7P+= M ] ȑ T7Hv8 G49e7+, ; J  į77`Gf8$q7q7+  Ғ  . = į77@Gf8 q7q7p+HXL a j v. 7`7f88 +c ˃ g t7pg7e7+( ̓ ۓ  4 A X77 g8r787P+ P X s  7\7!987+   d { t7pg7"9e7+X dݕ 7D7 g88+)X ) W : j 099:Hd;78+fv  At78u7Gf7`+ !v  hx7pg7f7+  % u 748GD"9p7e7p+dȘ ט ژ   07x7f7e7+@ = M ˙   78 fHh4:}78+@D T ^ Ě  |899Gl"97 +P0, ; T e d7T7G"97+u !v p@=i7Gp+`  6    X::Є<`H\<f7ȩ8,b0   . 789}77P,E N ^ q | $7$7"9e7p,8[ F H7g7Ħ7,0x   ʢ 7g74g87,@բ ݢ   77e7," 1 E 77e7,1HN W Z f x7D7G8,R8q ט G t7$7GHg8t7,Σ ֣ / J U 787"9e7, p  X 77\g8r7e7, Ť  7 B 787 #9e7,@`] l   ե 77G@9r7t7@!,),   = X a p77pg8tr7i7",OHp  Ӧ ަ 7L7g8r7e7$,|8  7  ǧ 477gH4#947',  w   8H;`HQ<0 8e77,  , / pU 77f7 8,˃ ` gl 8u7x78,9u ݢ  787e79,`˃ ʬ g֬ h7g7e7P:,߬ * A T 77 hH\#9i7<,X_ z A a L87:ԍ8@,Y  ̮ ۮ v7pg7e7`A,<  # g77 Gr7B,80 E P z H7g7#9t7D,   78H}7e7F,P" = @ |f $77Hr7e70H,lw v7pg7e7PH,7 { t7pg7e7`H,U  i7p@=e7pH,u  p@=p@=H,(x Ȱ Dz  h h8ؼ: H<e7U, !v ϳ  hx7pg7f7V,۳ 1 L W 787#9e7 W,0n }   p77g8r7i70X,7 ̴ ϴ  l7Ђ7i7Y,[U  : & 77|9e7[,r88r 3 ^ { 779Tq7t7_,  ж  1 @ H7L7#9Hq7e7@a,8W l  ɷ 77#9t7c,O!v  =tz7pg7e7c,   p@=p@=e7c,5  p@=p@=e7d,al" i7p@=e7 d, & p@=p@=e70d, * p@=p@=e7@d,. > M  ۸ Ī77:e7g,  R i7p@=g,  R i7p@=h, " R i7p@=h,' & R i7p@=i,< * R i7p@=i,Q . p@=p@=i,gnK 2  qi7p@=i,}( 6 i7p@=|7j, lOO : i7p@= j, > M m g7\7g80k,%  p@=p@=f7@k,I J @=;H =,kP[ g k hs(7pg7 8,lxZo s p@=p@=g8,z   pg7x7g8,^ ny p@=p@=g80,o^ nyp@=p@=,^ nyp@=p@=,^˃ nyp@=p@=,^˃ nyp@=p@=,*8A `t7pg747,\eI 4\ Ϸ) t7pg7f7,Jxf exz7pg7f7,^xf n t7pg7e7,00Lv7pg7i7,8  B& <77g8t7`,4llZ t7pg7e7,b+ 2t7pg7e70, llZ v7pg7e7P,llZ t7pg7e7p,llZ t7pg7e7,)ZĶv7pg7e70,GllZ Lt7pg7e7P,t^l2ޫ7 t7pg7e7,l]*h*v7pg7e7,  E w-t7pg7e7,^l2ޫ7 t7pg7e7P,l]*h*v7pg7e7,*  E w-t7pg7e7,T^l2ޫ7 t7pg7e7,vl]*h*v7pg7e70,  E w-t7pg7e7@,^l2ޫ7 t7pg7e7,l]*h*v7pg7e7,  E w-t7pg7e7,.^l2ޫ7 t7pg7e7@,Sl]*h*v7pg7e7й,x  E w-t7pg7e7,^l2ޫ7 t7pg7e7,l]*h*v7pg7e7 ,  E w-t7pg7e70,#^l2ޫ7 t7pg7e7,Hl]*h*v7pg7e7p,m  E w-t7pg7e7,^l2ޫ7 t7pg7e70,> ) ۶G t7pg7e7,l]*h*v7pg7e7@,  E w-t7pg7e7P,2^l2ޫ7 t7pg7e7,Yl]*h*v7pg7e7,  E w-t7pg7e7,^l2ޫ7 t7pg7e7P,l]*h*v7pg7e7,  E w-t7pg7e7,-^l2ޫ7 t7pg7e7,Vl]*h*v7pg7e70,  E w-t7pg7e7@,^xf n t7pg7e7,0DELv7pg77@,0DEw7pg77,EҶ) ۶~z7pg7e7P,k8#/:u7pg7t7,z) v7pg7e7p,xf N t7pg7e7,xf N t7pg7e7P,xf N t7pg7e7,0(Y k t  t747$$97 ,G ) v7pg7e7,` / $77L$9i7@,w(J Zsy7pg7h8i7,(   1 @ 7$7t$97 ,0EI T V _ 77$9i7,(l s 4~ pv7pg7$9i7,0 /:   E xz7pg7e7,e@Jxf ex7pg7,8`,0llZ v7pg7e7,`D 7pg7P8, llZ Xv7pg7i70,P) 07pg7h8,llZ z7pg7e7,<HeI ) Ϸ" h7pg7P8P,^0llZ w7pg7i7p,`DE07pg7h8, llZ v7pg7e7 ,P)  Dx7pg7P8,@llZ x7pg7i7,pA ,7pg7h8`,3(llZ y7pg7i7,ZX(%7pg7h8,~ llZ v7pg7e70,P)  7pg7P8,llZ z7pg7e7,HeI ) Ϸ" h7pg7P8P,  llZ v7pg7e7p,PP) 7pg7,8,}(llZ y7pg7i7,X(%7pg7h8, llZ t7pg7f7,P) Ht7pg78@,!llZ v7pg7e7`,FHeI ) Ϸ" Dx7pg7P8,h(  E z7pg77,X 7pg7(8,llZ v7pg7e7,HeI ) Ϸ" Dx7pg7P8 , llZ Xv7pg7i7@,-P) 07pg7h8,S(llZ pv7pg7i7,vX(%7pg7h8p,(llZ pv7pg7i7,X(%7pg7h8 , t7pg7@=,8 B&M& u7pg78h8t7,$82u7pg7t7@,G8z) v7pg7t7,d8 # . (A J 7(7GLh8t7,U g n y v78u7G`h8e7, ,t7pg7th8e70,,.) ,3xz7pg7@=, ]*t7pg7e7@, 4v7pg7e7,1  77`Gh8e7,Q@)Zx7pg78,r@) t7pg78,8)Zx7pg78,8) dy7pg780,N xz7pg7@=,  ]*o*t7pg7h8e7 ,U g y  77Gh8e70,>**Qxz7pg7@=p,]# 5 < qE N 77Gh8e7p,}U b q  z7pg7h8e7p,@)Zx7pg78,@) t7pg78,0Jxf ~-xz7pg77, 8^l2ޫ7 xz7pg77,1@)  w7pg770,d0Jxf ~-xz7pg77,0Jxf ~-xz7pg77,8l]*h*w7pg77,( xf  xz7pg77,  ɂ҂7D7@Gh8e7,28)Zx7pg78,Y8) dy7pg78, ) R+xz7pg7@=,()Z p@=p@=8 ,()  i7p@=8,n2Flxz7pg7@=P,()Z p@=p@=8,' )  p@=p@=8p,J()  i7p@=8,m ) R+xz7pg7@=p, )Z p@=p@=7, )  i7p@=7,8)Zx7pg780,8) dy7pg78,! ) R+xz7pg7@=0,J )Z p@=p@=7,q )  i7p@=7P,gx~xz7pg7@=,4v7pg7e7,sHzxz7pg7@=0,  & C5 @ 7P7Gi8e7`,$8)Zx7pg748,J8) dy7pg748,p8)Zx7pg78 ,8) dy7pg78,. Bxz7pg7@=0,G Y ` i t  77Gi8e7@,[ (} 7D7G(i8e7-((z) $w7pg7e7-V:) |Rz7pg7e7-[ (} 7D7 G 7d7CH~7-8I X \ ;  777@-X ; 4 C 88t8-8V q ;   78H$9~7 --(/ @ \ ;  ( K 8@+9@H%97&-ZlA; i7p@=e7 &-Ҷ) r۶~z7pg7e7&-Ҷ) r۶~z7pg7e7 '-`-2; bxz7pg7@='-4I; g xz7pg7@=(-h ) ; x7pg7k7p)- ) ; x7pg7k7)-z) ; v7pg7e7p*- 0p y n  7H7i8Di7+-A n f i7p@=<%9e7P,-@  , n o ~ ؒ77 G$9Di7.- ! s YH 8u7x7e7/-6  s   877Di7 1-y0s  s x72 47t7i72-; s 8u7x72-_cD s Sfp@=p@=`3-'@K Z m u  l7X7DHd:475-{8f u #|v7pg776-  ! 8 u  t7L|8 DH9i7i79- u    77i8i7e79-@& 5 u  I 47$7G 8`;-<@V u 1 R 8t79 H< 8@E-f0 ' 2 u k ~ 7t8`DHd%9{7x7H-fu  Goaxz7pg7@=H-82 u  |v7pg7i87pI-@  b3  77Gi87J-80 5 9  d w P77Gt7M-r0   ?z7pg7e7M-   t7pg7e7M-(oF  , 7g7i7@N-0  . A T 747,:t7P-I02 &`w7pg7e7`Q-@    x7pg7 80R-0\8   >t7pg747R-8    47|7@G47S-!8    Ă7g7j8D7T-W  ( /  L [ l `77Gj8e7V-(s   - P7|7Ge7W- E # v7pg7e7W-U(   7T7`G%977PY-@P 6 R   78DH:i787]-- ,  Q h w 77t9f70_-%  !   t7L|8CH9i7i7 b-X     77,j8i7e7c- Fxz7pg7@=c-L8S8^8 888v7pg7@j8e7d-G M8 80z7pg7f7 e- 888 887g7Tj8f7e-9 99 ::;X7g7=e7k-(i ;;   <x7pg74:t7k-5(7<F<M< q<<<7g7hj8e7 m-t$= .=xz7pg7|j8f7m- 2  ( y7pg705:f7n-_7A@AHA dBtB|Bhx7pg7<f7q-BBBB CCCxz7pg7h;<e7s-)nD v7pg7e7t-k k [ B=e7`t-    7g7R<f70y-  )p@=p@=y-8 (  Q_mtp@=p@=%9z-C`J k v   7ĵ7G09T 8p}-0\  H \'\w7pg7j8D7~-(.\'  -N\P77Di7~-0\   H \'\w7pg7j8D7-90  L{\77Di7@-n@3 H S  w Ԯ7Į7Gj8Di7@-P   pv87j8f7@- _  "__Pu7pg7%9i7 -2 __  _`7H7j8e7P-l  ``,  >`I`7H7j8e7@-  _ A  "__Pu7pg7&9i7 - N X rn pg7'(,   r7  778l7i70.w'(ɷ r$w7pg7e7.'_   r 77l8l7e7.'   r p77Pl7i7`.*(0 > r" U# # 089 OH:t7p/j(Tb $ q$ r p69:H`g;|7t8/((# 7% @% rK Z e Խ7D7l8i7/(8fV% rRj|v7pg77p/)01^% rcLv7pg7i7/N)lf% r7p@=8/)* j% rz7pg7e7P/7"* r% rv7pg7e7/) lz% rv7pg7e7/): ~% rv7pg7e7/1* * % rv7pg7e7 /k*: % rv7pg7e7P/* l% rv7pg7e7p/* % rv7pg7e7/+: % rv7pg7e7/c+: % rv7pg7e7/+: % rv7pg7e7/+  % Q& r' $( u( 8:Gl8|7e7,/%, ) rv7pg7e7,/f,0 Z ) ) r} 7g7l8i74/,8 :) rQ_ p77k775/,8 ) ) rr I d 88NH7`F/-(` * * r K 77k7i7J/K-(ɷ* r$w7pg7e7PK/-_  * r 77l8k7e7PL/-  * r p77k7i7M/.0 * + r- 08 9`NH :t7Pb/B.Tb $ >. r 39: H rg@ @ EA H89PH:t7/ 7Tb A B r 59:Hi;|78/[7(# B B rK Z e Խ7D7m8i7/78f4WB rRj|v7pg77/7014WB rcLv7pg7i7/80lxZB r7p@=(8/<8*5 B rz7pg7e7/y8 lxZB rv7pg7e7/8 lxZC rv7pg7e70/8 lxZC rv7pg7e7P/9 lxZ| rv7pg7e7p/O9:5 C rv7pg7e7/9 *5 C rv7pg7e7/9:5 C rv7pg7e7/9 lxZ#C rv7pg7e70/3: lxZ'C rv7pg7e7P/h: lxZ+C rv7pg7e7p/: lxZ/C rv7pg7e7/: 3C rv7pg7e7/;:5 7C rv7pg7e7/Z;:5 ?C rv7pg7e7/;:5 GC rv7pg7e70/; OC _C RD r:F F PG 19;Gm8(|7e7/< CH rv7pg7e7/]<0,GH I $I rI !J ;J 7g7m8i7/<8 9 CJ rQ_ p77l77`/<8OJ K #K r4L M P 88`PH7@0=(lM |M M rM SN 77l7i70B=(ɷ$= _N r$w7pg7e7`0{=_ /= gN r 77m8\l7e7`0= H= yN r p77l7i7 0=0N 'O O r^R S gS H8l9 PH:t7409>HTb A S r (9: Hi;|7(8@<0u>(# B T rK Z e Խ7D7m8i7@=0>8f4WT rRj|v7pg77=0>014WT rcLv7pg7i7@>0!?8T T T rT U ,U 7D7n8dm77p@0N?0 3U BU IU r`U sU |U 77n8m7i7A0}?($U U U rU U U @77(n8(m7e7B0? U U r   77]` DE7pg781] l ]*Sy v7pg7e71](y  ly pv7Ly7i7`1*^P DEu7pg781w^$ 4y xz7pg7@=1^(y  ly y $w7$t7e7 1^y 5y  CRt7$t7|o8e7!1?_(J Zy $w7pg7e7!1_xf  t7pg7e7 "1_(y  ly y $w70w7e7"1 `y 5 z  CRt70w7o8e7p#1K`8z 'z 2z 4 |Qz \z v78u7Go8h7$1`8gz s vz 4 z v78u7Gh7%1`8 E z 4 w7pg7 8%1a8 E A4 w7pg7 8%1ga(z z z 4 z { 77Gf7)1al'{ B{ F{ 4 { { { 8(8H&9{7<8-1a{ { 4 "| E| 77Ge7011ue1'8 8I xz7pg7@=?1ela v7pg7e7 ?1fY}  Lxz7pg7i7?1Ffl}  v7pg7e7?1f@_ }  v7pg7t7 @1flɩ v7pg7e7@@1 gY~  Lxz7pg7i7@1Mgl v7pg7e7@1gH~ %~  A~ 7Ȋ7Gt7`B1g@J~ _~ b~  G~~ 7Ȋ7Gt7D1hHl~  t7pg7D8 D1XhY~  Lxz7pg7i7D1hHl~  t7pg7D8D1hp~ ~ ~     5 808`JH&98pH12i@E *T    ȓ77 G7pJ1tiXl  7pg78J1iY  Lxz7pg7i7K1jXl  7pg78 K1Mj      6 x8v8 KHo88N1jP> N e   h77G'98Q1Ok@l  v7pg7}8R1kY  Lxz7pg7i7R1k@l$  v7pg7}8R1+lh( O S   (7v8JHh8@V1sll  7pg7h8`V1lH0  i y 8$8G9{747[1l Ȃ Ԃ  -  ܋87Gp8Ȱ8^16m E M    ċ88JHp88c1~m8l   ?  77`r8|j7e71o T ?  77tr8j7e71o j ?  77r8j7e701O ?  “ 77r8j7e7 1o ɓ ?  77r8j7e7@1Ёo ߓ ?  77r8j7e7`1o ?  77r8j7e71O @  ? @ J -9: Gr8{7e71 ՗ ?  “ 77s8j7e71ǂ0( ? j ;J 7g7s8i7p18  ? Q_ p77j77@1/8 Ú ? ě \77@G702i(t   ? z 77j7i7 20 D ? % Y H8 >:HHD:t70%2ރ(  A ?  ( M H9(:Hk;{7Ĥ8,2p  M ? b } p9(:`HH: 8`G2ЅXǪ [ ?   Ћ9:`IH:70`2nX4 u ?  L $198: IH97m2` ?  % 88`GH8pr2̆p< ̲ , ?  k 89@;@H<<h828> J!S ? g v7pg7728n } ?  7̤7G(s87@2C8ö  ! ?  ÷ t88IH972r(  # ? K n } T7t7'972P" ? r X7pg78 2P1Q ? *|7pg782#(8O ?  pv7pg7i7 2`0|* ?  w7pg7t72lfEʸ ? z7pg7e72܋ lfE6n ? v7pg7e720͸ ?  7 L 747G'9t72[0W l ? ʹ ֹ 77`G9j7e7p2 lfE ? v7pg7e72، lfE] ? v7pg7e72 lfE ? v7pg7e7Л2R lfE ? v7pg7e72lfE ? z7pg7e72 lfEK? v7pg7e702lfEj? z7pg7e7P298 S [ ? ͺ ( O 77 GҶ) '۶~z7pg7e72wҶ) '۶~z7pg7e72Ҷ) ? ۶~z7pg7e72Ҷ) ? ۶~z7pg7e720Ҷ) '۶~z7pg7e72iҶ) '۶~z7pg7e72Pv ? vI |7pg7xs882f?  Goaxz7pg7@=2 ) ? x7pg7k72M ) ? x7pg7k72 ) ? x7pg7k72 ) ? x7pg7k72 ) ? x7pg7k723 ) ? x7pg7k72iz) ? v7pg7e72z) ? v7pg7e72z) ? v7pg7e72$z) ? v7pg7e72a`-2? xz7pg7@=@2Vs ? C-xz7pg7@=02ϕN2?   xz7pg7@=2f?  Goaxz7pg7@=2MVs ? C-xz7pg7@=2 '2  % H g7/9H2 ? Y  Rv7pg7f72ږ(lZ  v7pg7,72X`   <099TH9 72H ?   Rv7pg7f7P2{(lZ  v7pg7,7p2X# Q   , Q ȫ88 UHd9h78@3l i7p@=e7`3'P~ 5   h77 G73ZP    " 87d7VHT8` 3(# 5  K Z e Խ7D7s8i7` 3ɘ8fqcH  Rj|v7pg77 301qcO  cLv7pg7i7` 348 V  0 77G7 3iPm   8d7Gs8 83řH=  F p7pg77P3o   77s8$n7e7p35o   77s80n7e73q  %  < O X 77s8v7pg7e7g3ȟX& f5  F 77@G7h3(l_} Xv7pg7,7i38hQ cf  _{ 77`G88j3j d   77t8f7k3`  5. 9 7Ȋ7GX98pm3ҠXR a x     87`G9p8p3X/    \ 09:H;7~3X @   X9 : HG;73>6 H  F؋t7pg7f7`3lH^  s   ؕ7pg7730  - |7|7GDi73p  bm 7pg7t8Di730  d `w78u7GDi73`% F N   h8 8Gu883F  #   `g7H9H|<38- C G    077 Gf73ۣ( " #  K n } T7t7 (973HO  r p7pg7, 8P3PH- ` m   h8+9`UHu8, 8`3ˤH 9 E   77G0u8, 8@3 l;# z7pg7e7`3BY  LPu7pg7i7д3~`l;` ȟ7pg7(83 8   Xv7pg7i7`3`l;6n ȟ7pg7(83 8   Xv7pg7i73;hl; 7pg7(83q(|"   x7pg7t730    877Gd:t73    (8h8G;7D8p3B v!I  i t7pg7e7@3TY x  LPu7pg7i73l; z7pg7e73ŧ`l; 7pg783(|"   x7pg7t7p3/`l; 7pg783d#   v7pg7e73   v7pg7e73ިp  / N [ 784(9ȷ830f    M 8x:9THt;t73Spr #   7pg783p   g ؘ8|8G܄:n783ĩp  B    8ȶ8GT:|783H8 Z  D X  8`/9@G(;|7t73$(   pv7pg7i73[H  J m 88Du8838   & 7 $77\(973lOO B i7p@=e73lOO F i7p@=e703MlOO gd i7p@=e7P3J T X   g759@Hp3 ?  Rv7pg7f73߫lL v7pg7e73X  ( 4 808UH 73L ? Q  Rv7pg7f73}XY   |87UH83( !   $w7pg7e7 3    T  g7X.9H9`4H    i7p@=4w    i7p@= 4    i7p@=4խ0 Z2  م |77Gf74( !   $w7pg7e74<    T  g7X.9H9@ 4    i7p@= 4Ǯ    i7p@= 4    i7p@=` 4%0   م |77Gf7 4S0(ek @  <k h7t7 VHTn7x74 lK i7p@=4 lxZK i7p@=4- 5 B  c g77Xu84:)  |Rv7pg7e704Q:)  |Rv7pg7e74z)  v7pg7e704ɰXv v p7pg7 74Xv vI ,7pg78490 ' kl `w7D7e74u:)  |Rv7pg7e74X ' " p7pg7 74X $  ,7pg784Ҷ) '۶~z7pg7e7@4SҶ) '۶~z7pg7e74Ҷ)  ۶~z7pg7e7@4ŲҶ)  ۶~z7pg7e74Ҷ)  ۶~z7pg7e7@49Ҷ)  ۶~z7pg7e74qҶ)  ۶~z7pg7e7@4Ҷ)  ۶~z7pg7e74  z77lu8e7P4#  z77u8e74`    ) 0 v77u8e7407 $ I \ y77i7P4ִ07 $ I c `w77e7 4 j   ) 0 v77u8e74D s   ) 0 v77u8e7`4|(|  Zy $w7pg7u8e7 4(  Zy $w7pg7u8e7 4f  Goaxz7pg7@=`!4, )  x7pg7k7!4b )  x7pg7k7`"4.  Bxz7pg7@="4϶.  Bxz7pg7@=#4z)  v7pg7e7$4Bz)  v7pg7e7$4wz)  v7pg7e7%4 xz7pg7@=%4ܰ! d xz7pg7@=&4'f .I%xz7pg7@=p'4\f .I%xz7pg7@=(4 )  x7pg7k7(4Ƹ )  x7pg7k7)4 )  x7pg7k7)42 )  x7pg7k7*4k xz7pg7@=*4f  Goaxz7pg7@=p+4 )  x7pg7k7+4  )  x7pg7k7p,4Uܰ! d xz7pg7@=-4**Q xz7pg7@=-4 ' pg7x7.4ú '' ^ 77@34Ӻq ' pg7x7P44ߺz  ' 747p54 'Q 77T9<4M  '_ 7d79A4dZ ' pg7x7B4pz > ' 747C4H   'T g P87G8PG4~ 'o  488̅:Q4F ' r (8p:`HD: }7e7@`4 '+   779f4  ' pg7x7g4ɼ '  77h4ټsH  'H i7p@=i4! + C '   77D9o44 > V '  * 779u4. _'i7p@=e7u4M7E N 'o ~  pg7$z7`H(9w4W4  'ư  pg7z7u8e7x4w0 3 'f p7Ȋ7G47y40  ) '!W f |7T7`HІ9f7P{40{ : '  |77Gf70}4@   ' 2 E 77G(94704ݽO |  '  ܈8T8Ge7p4p N { '# _  h8?:Hp:e74wl ) '  89H$7:e7@4ƾHl;1 'L? 77,84H | '* R 8D29@H:7e74 'D d { 7.9@H7:}7e744 ' ȣ89 H9e7@48H O q ' b  H89H:e7p48#'/:u7pg7t74@A'4w7pg7,742'xz7pg7@=`42'xz7pg7@=42'xz7pg7@=492'xz7pg7@= Go buildinf: mpm / > = |<


        >

      1.  --- <>\u00 '.-----&
  • {"'& 1Hb
    "
    ftp://ftp://\u003C\u003E\u0026\u003D((@S 4ФP@w,+// EE E( ( ) ) 
    http://file://mailto:http://?
    https://https://@#(09!~az ~AZ09 i# mailto:// -----END #'< -----BEGIN
    DFFKP|h8jO;',.,0,^,0JA0000-//Pv@[^^@nn  `l  Pz'`   H `0S__-0>ŨΨ٨P0YP Pmptª۪ߪ:@[ƤG////`!o!$$     master secretkey expansion
    /dev/urandom %)+/5client finishedserver finished @6lثM/yZnܼb    AZaz0123456789ABCDEF1/111p,,,,ͩЩ٩ީߩ7;IMO``lnprs0-g-o-p---09AFafiq!.!002....// 0@$ 0@ 0@\`*_{}[]()#+-.!:|&<>~PRI * HTTP/2.0 SM 09AFaf 09AZaz4 1VY 5 9 ? jjjj0coo46G6@MPY\_ P U c f  0.40484 ' 0 9 @UW_` r x  @ U X _ ddegoՌ> 9 ? ?     DPY[]aopAq#-/     JMO`j  * + . f i   e  ( ) 
    ----- END CERTIFICATE ---------- BEGIN CERTIFICATE -----  +0;@DEO   pr ^`|Is*wyj o )#*#O_`Te d1<_? @ T 34MO?? ^ : .. . ..!.   / _ 000 @8`$plHT @`ŀ    \cX֜iZioi!tae¢z^ Ȩ3ep#    i oi'i`ziii`zi!/:@[`{~09AZ__az09AZ__az`zi [i         / _ 0 oi iKPY^_+0?MRo@`EPR6@U`gp      oJoOoooo x@j^j`jijnjoj            09AFaf!&AF-|  .0c ee@D0IPip m   9 .. . .. .   ( ) / _ 000J'` ^LH2di oi`zi!"#% [i   ( ) / / _ _ 00 i ii oiXiZi i@\idi! `zi @i\i@runtime: failed to create new OS thread  "di`fatal error: cgo callback before cgo call /+xM--@./000011223W3foq    D F H J O T c f  GIlq`!!!!0!0"0)080:000!0)080:04MNmp  e ( ) / _ 000+/,0̨  /5 #'<̨+/,0  /5 #'<? ABzD@FPG$tIK L(knNP*'- 735)2#.!%,40(1$+6    H='H8'H='H8'`i i yi}ii`zisii i iyii iZi0y-`ziidi`zi di[i di[i   68EPl #$n$p$t$$C%-%-'---,0=@INOop p@tAJ $n$4MN !#$'() ii6# XX & X&0X ;Zx0Nm68<>@ACDFGOZi oioi0idi oipQi`zisioi'/7?&.6> %-5=  !)19 "*2: #+3;$,4< oii`zi`ciHH='H='H='HHHH='HHBH H H H i oioi}i ioii`i i i`zi`i i i`zi}i`xii i i@\i`zi diZi`zi`K'}i}i i oii siidiiXidiZi oi}idi oi_'  578<?jp|!#$&*....//00!0)080;04MNmpkEkPkYk[kakckwk}kk > W    > hW x 5V .0"/0oϟ"'  9 : B. 0 0000ADbcij/Ih5AVXb4-q H!I!|,3 }idi oiidi oi[i\isidiioitdi oiici s Xidii`zisiidiZi!siidiZi`siidiZiLsiidiZi@ di iioi@!di oi i`zidi i oiiti i oiiitii`ziyi2- oi ii@\idi i@\ioiioi`zi\iip \ioi@\ii{di oi`zi[i\idii`zii` ii@i@i(di {iip'm'}i i@\iii'-]B   ..:.;.@.0000p12Xc S   * . ` d f o   di [i`zii  HeHeHe 00He`ii iii}i`xidi oi@\ii ~isi iyiii}isi i i oiniidi`zii oi@. `i@i@ii ii}i}idi i oiP{( `eghj@kCkooooo7Tq8=KK                ( * 9 = D F H J M U V X Z ` c f o w  >W 0en or ݦ4@ J'  @n_n!(O  `nn"C0484sz !5Oosidiizi]iD oi}idi i`zig( ii`iiip(idiii@(pi i {i oi`zi`'                  -]B   S { ( "..:.;.@.0000p12Xc $~ |  ?F  8Ui7 77=i`xi i oi`yi}i`isi`i i i`ei@ieisiXiiii iZifii`oidi@\i oi0  i oiii`zii&i`zidi[ifiPx @<  ii\ioi}iiP `i ii iidi              S   * . ` d f o               .0/011122`2~2`|;g,hi{  &(:<=?MP]  6:<=?@GPY      ( * 0 2 3 5 9 < D G H K M U W \ ] _ c f w ]iBkPCkooo<=DF i oi@\i}ioi`zil}isi~i iidi oioidioi`fi oii i`zi }i ii`zi`yi i`i oi`zi}i}i i oioii@idiii@\ii iidi i@iiii@i(               @oU [F C96{010500000 ϩpݪmpp}i`iidiyi oii i]'sidi oiici}iZi i@B `i ii`zii}iixi@i}ini@ii\i oi ioi@`i`zi oi@\ii\i}ioip![iy0 <@r!   578;FPY      ( * 0 2 3 5 6 8 9 < > ? B G H K M Q Y Z \ ^ f g v ooݦ4@ J         5 8 : ? H P X 0484sz !Ez5,jx#q   p!!$$|,},p\c]_ di ii ioiii}i@\iX oi i oiii}ifidi`zi si ~isiticiidi oiii di i oii i@\ioiii02<oKUpQ R T   *0-000 -  (08@P`p  0@`  0@` `xi i ioii\i}i@\i`zidi oii `iyiisi ii i oini`i ni@i   !?AJVoqPP=Pptv   & ! 0 `9 R}    "   "!a: S~x }i`xidi i oii\i@\i`zi}iip&&  )]4};=_F ~ 8 #{ #*#i'u'''!'')))))#.&%.). 000000>6DHZ\^ =4]c }idi oiii}i i`i zi@ii i@\i=' 0@P`p @`@  %&(*058@HJPU`jp  i@\i oiii[ifi@idi`zii`[i[i z oppՌpݦ4@ J!/:@[^`{|~  ' 0 > A S U ^ !_$%u''+..000 000>?EFF^`u800 ![jkGP>@([3{:<_  E } 8 #{ #)#h't'''!'')))))".&$.(.B.0 00000?"57CGY[];3[_bb     "#VW&'Z[*+^_@\i[iii`zii`iihidi oi@ii@[i \i !J d'@Bʚ; TvHrN @zZƤ~o#]xEcd #NJ i`fi oi iii@i}idii`zi\i ii`oi@i ii oi[i}i ~isiiii`ziidii (*02359<DGHKMPW]cflpt r w  x ~ X ^ p x *3i|p t y  P!_!!`$a$$$$v'',111 2)2H2O2Q2_2222205psuwz}&*]afjA EHMPWY_`}&!e?AZaz%,\bekwyq   *!+!2!N!`!!`,,"§ʧ0Z\dfi!:AZ?$@Y@@@@j@.AcAחAeA _BvH7BmB@0BļB4&k C7yAC؅W4vCNgmC=`XC@xDPKDMD ';> 6V   5)14:\6 7 ;>fio$_jZkbkUԝԭԺԼ:?EQՠ"% #(38:HJLPSXZ\^`cksx}y iZiyiisi ~isi`i i`iiii i oini fi`ii niiHJMPVXZ[]`Z]|------------------  &(.     `ii i oii@i@\iiidi}ii ii i@iioii`i\i\i iiyi`i`iii@i}i`iti i i`i oiieii@\ii-4@34A4f4!. ?J,7>9=>d &e JKbghn56 D;EcZ[^_;<~< = G I ..<.0tvwΨϨ/ȩɩ]^_RgRVW aB09`if o  f o  f o  f o  f o  PY )@IFOPY@IPY )Ш٨ Щ٩PYtzY@ $(q F6Clxy},jx#q   |,},o-/.010,2050;00b00^00 spϩpݪm\_ipT !"#$%%&&''((()))*++,,,,,------....//////0001123333333333444444444455666677777888888888889999999999::::::;;;;;;;;;;;;;;;;<<<<<<<<<<<<<<<<=====>>>>>>>>>>>??????????@@@@@@@@@@@@@@@@@@@@@@AAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCc|w{ko0g+׫vʂ}YGԢr&6?4q1#'u ,nZR;ֳ)/S [j˾9JLXCM3EPfHa5WiَU(ߌ BhA-TR j068@|9/4CDT{2#=L BN.f($v[Im%rdhԤ\]elpHP^FWث XE,?k:AOgst"57unGq)ʼnobV>Ky xZݨ31Y'_`QJ -zɜ;M*m1'Y GQcg)) '8!.m,M 8STs e jv.,r迢KfpK£Ql$օ5pjl7LwH'4 9JNOʜ[o.htocxxȄnjlPxq  !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`ABCDEFGHIJ*!LMNOPQRTUVWXYZ{|}~#4D         +<=>|~ D R z |  !@!(A!D!K!!E!!!!!!!! !!!! !" #!#|######%% %%o&'Q'''''')))))))*0+D+G+L+)b9df \^uӺ?c?yڌX?9?-^? h?:D?Kx? !? ?8G?2Sg?hz?:?Е1?z?G?g!?Kx?4&?̈Gj?TNK?sp (??P??2Ut?Uᢜ>?&m??l??sjbƈ?UϋE??0?_  ) 1 4 7 = ]  ) 1 4 ^  ) E I W  E I HIWY mq_XZ\^ +/,_,&---------.@00112Ω'/7=?BESgu  VUU433$Ir]tVUU;J$9.ى%IqgffF]VUU$I@8433.*J$ qaVUzDy 0  C{ ?gfVUJ9o43]g%I0 9 fo6?PYPY09PYPYPY`jijPkYk@IPYV W UYGHAC8Y9;<mKLAB<>DFBCABnjojj7kB8kDk nN"}ii idii`zi`~i`iiti ii`i ii@iioiiii ~isi ti ii oi`ii isi`i\ii$#"}i`i iimi ~isi`i iiiZi fi`iyii`ni ii`i`yii yimi@\i`zii@ii ii oi`eii`2#oi}isi`iiti idi iZi oi ~isi tiXiXi`iiii`i iii@ii`ziii ii rizi iiq&`~!"$')2479;BGIMNOQRTWYabdgjlrtwy|~ (*/:IV^chjry|  "+-02=AORX^imoqsuw}  "$*-/17:BILOQT\`gjpruwz!, .: ;?~ : ,  071>^d e Z[ JKahn}56( DEZ[]_;?~< = G I ..<.A.L. N.O.00 vwΨϨ/ǩȩɩ]_ߪPRTW  ad"`i i oiiiisi`itii`ei`yi`iyi}i@\i`zi yiimiimiioixi ii ii iiii@i0 -\.%`i@i`xidi i oii`gii i@\ii`ziiii@ioi i`ii`oi@i}i}ii iiifiii ii@iii@k,0)%57<GVckpuw"$'*.46?ADFQ\jx  #)/7=CIMOQSU[^`bhksz} /=KY_acfqs}KkSsk*!s+!0011SE&!24>!A"B*J24>ABJbcc!"*bJ`aa`E&!*!K+!JKK$si`i i`i ii`imiyii`i yimi}i@\i`zii`yii@iXiiiZi ii}i i oii ii\i`eiii42c33P3 34^r !2 4 @ a !b d } ~      !! !!!!!!$!(!)!,!-!/!0!1!3!8!>09`if o   f o  f o r w  f o x ~  X ^ f x  PY 3@Ii|FOPY@IPYp t u y  P!!!!`$$$$v'',0 !0)080:011 2)2H2O2Q2_22222 )05Ш٨ Щ٩PY(O  `nn3NTVg7Rk";Vo6NPUp"W#C1W V W   : ?   UYGMAC8Y9<KLMZ[AB<>DFBCACqp$xq$t$njojj7kB8k9kDknSnN'  @n_n4Mh  89;>@DFJKPl!<Up4Vn6!  " <# ' FP34sM56<MflptBF?w+t9:=>C4G?BDERjj0k6koooogimr{06DFHJ     @[`{ t~  @d e ?56   d f p t ~   !%!'!)!,!1!3!M!O!_!!!!&$@$J$`$')s+v++++.R.//0000 0 00070<0?00000[011111 2_2222X3YY33MM!09.ϩ[jk>Q?0RTfhk ;@[ep.A3ux #X_y        @ H } ~     X _ x      `~&QTRe:;Zl[kaknn`xq-/=                                                                                                                            ?xv?9o?:i?ld?ی_?[?V? R?N? K?vG?SC?@?}[=?-:?+7? 4?1?4.?_+?Ԙ(?%?2#?O ??r??}|???P? ?L ?>p?4?6?? X>>>}>>(>> >`>>>>O>B>>5>Ԕ>>l>>g>>>>̼>e>D>AΚ>>2T>!>>Ҋ>T>ޞ>'>: }>[w>q>$k>Fe>u_>߰Y>S>"MN>׭H>C>=>^8>ʪ2>>H->'> ">Uh>5>>d >>>&==;=V==ߋ=k,=_=붱=L=Ĥ==;=H=hy={uh=ƹW=6G=O6=&==*=|~#~=0~;~wF~]Q~Z~c~,"l~t~{~~c\~K~~$I~~ ~z~~*R~e~YB~~ b~ĩ~A~e~x~q~b~~ ~\~~~n~G~^~~s~v~~ ~\~~Gp~Y~~G1~h5~~q~~ ~m~j~i~~g~.~W~/~~~~$~_~\X~_ ~l~{~.~}~5\~u~ ~'ߥ~v~L~D~3@~(x~3k~]~M~zs;~/&~?~]}r}}r}0}|`| {v!rzdw40m /I9/dZ/rt/I/s/k̗/՟/`J/E/۴/ /C/5/O/i////Z//f~/H/GB/,//t0?000 0 0: 00x0S0)00]00b0)00 !0q#00%0&0((0e*0,0-0U/0=H1020;40n60/&80 90[;0HO=0?0@0JB09;D EF?]@FAEpqp$qq$t$njojj7kB8k;kDknSnnoL^_1oW ?  P X   q  9 ?   UVYGM@Ctu8=KLOZ[]iAC`l<>;D EF?]@FAEpqp$qq$t$njojj7kB8k;kDknSnnoL^_ ; 8> @ I L N O       ,> @  ;    6 > ;@ G H K L W      *  A D         > @ F H J L W + L   >?+,18;<VWb cdgm #&)+0138UWacdm nr51;=>ACD=$1%+45.0/0#$'Y3èRS1/034M{.}n  p v   O y *48m@ajt|!!!!! !!!!!!#!%!)!.!:! ;!J!L!M!O!!;!! !!!!!!!!!!!!!!!!!!## ##"#(#+#{#}#####&$@$J$$$%%%%%%&n&p&g'''((+/+E+F+M+s+v++++,,P.Q.....////000 0 6070>0?011111122*2G2P2`2a222223MMƤ(+679w>xy%',3>JN]blx +9CEJMPR^iqw}"%/;GS[`m~ '+037<AGXhnr    &*:DILRY^bhmv{%-9EKT`gp{ %.3@KT^akt  *-1@LPUY^bgp{ !$'+/2BSV[]_"(ט/Be#D7q/;Mۉ۵8H[V9YO?m^BؾopE[N1$} Uo{t]r;ހ5%ܛ&itJi%O8GՌƝew̡ $u+Yo,-ntJAܩ\SڈvfRQ>2-m1?!'Y= % GoQcpn g))/F '&&\8!.*Zm,M߳ 8ScTs ew< jvG.;5,rdL迢0BKfpK0TQlReU$* qW5ѻ2pjҸSAQl7LwH'Hᵼ4cZų 9ˊAJNscwOʜ[o.h]t`/CocxrxȄ9dnj(c#齂lPyƲ+SrxqƜa&>'!Ǹ}xnO}orgȢ}c ?G5 q}#w($@{2 ˾L*~e)Y:o_XGJDl^`NPW]btuz Y8KRWX0J< M Q T q K < oM o 0 < M U xM o ; n< M  G}HLNl59>?7q9:cdim ]^_9\:;u|14Dks67x},j,,/.*0+0/0000osu|}S!Ĩ+.S`%{}ª[e\_ik !/>@p.DAZ.269GJxy}2:;=>ACDFHNEp+rv /`.1V(/8?HMY_ho&!*!+!2!!,} ,.,`,b,c,d,g,m,n,p,r,u,~,,,,,,,@NyBl".2ny}~§ħŧǧɧ,!:AZ69GJxy}2:;=>ACDFHNprv /`.1V(/8?HMY_ho!! ! !!!!!!!$!*!+!-!0!3!>!?!E!!>,.,`,b,c,d,g,m,n,p,r,u,~,,,,,,,@NyBl".2ny}~§ħŧǧɧ,!:az*/37:HKwz~#3<?@BGOPTVWY[\`aefhiloqru} Eqsw{|}0_a/ay}s '07@EQW`gp}N!!60,^,a,e,f,l,s,v,,,,,,- -%-'---Am#/3oz|çȧʧ,SpqAZTV  9;>@DFJKPR46NPnp!"$')2479;BGIMNOQRTWYabdgjlrtwy|~!#%'*./: ;?@\~Z[_7    jKkm, 0>^d e p v y w  pOZ [qJO`eahn}56 DEZ`;?~ C ! ' 0 8 ; > A C G Q S U V ^ ,,,,p-..... .........*. +...0.9.<.?.A.C.D.O.R.000=00 s~ twΨϨ.2/_0ͩީߩ\_ުߪ%R0EFILPRTW_ahjk   <adee.,EF<,^-.235>?ADGHKMWb c567@AEk0r12;<>n j!&,.801578=@B9UWX/>k_Qo[PRooooefmr!#%*,/:;?@[]_{}$~ Z_    jKkm, 0>^d e p v y w  pOZ [:&;=KJO`eahnn56 DEZ`;?~ = ' 0 C E Q S ^ } ~  # #)#*#h'u''''')))))),,,,p-....0.O.R.000000000=0 00[ s~ twΨϨ.2/_0ͩީߩ\_ުߪ>SQ?0RTachjk   ;=?[]_`eaz*78HIwz~349<?@BGOPqsw{|}041_a/`+kwy '07@EPW`gp} !!!!/!9!^`|~ uq     p   O y ?48mn@ajt|D R z |   !!!!! !!!!!!#!%!)!.!:! ;!@!A!D!J!M!O!!;!!!# #(#+#&$@$J$$$%g''''''))))))s+v++++,,P.Q.....////000 0 6070>0?00011111122*2G2P2`2a222223MMƤ !(+69wy[jk)Obdefi >@\^3@x #AJ X_y        @ H } ~     X _ x      0 9 `~&QTRo6?PYPY0;PYPlPY$n$`jijPkYk[kaknn`x@IPYq-/= 7?y0wx ?w  L N O U W b c         > B G H K L Q p q u         > D G H K L V W b c  <    )  > D F H J L U V b c         > D F H J L W b c      145:Mdqr+68;<>VY^`bdgmqt 23RSrs w!+08U^at5C$6$$--t{ #'èŨ:&*GR)D*6CL M{.|}-vz      $ ' 8E.'2EF,47>>DGHKLWb c56ACE0>@k*,80578;<@B 59;>Q[/68>16:<=?@ACGOoQoRoooooob#!#$&*G01IPip37?oo&)fjzV`xTV  9;>@DFJKPRq=+0;@HPQ`es GPY`xzS`mptxz !  PQSeA~ä^':k;EXKU0 mvv̈%LO*ŀD5&bIZg%E]u/LFk_zmYR-!tX)iIDɎjuxyk>Xq'Of ɴ:}Jc1`3QESbwdk+XhHpElޔ{R#sKrW*Uf(µ/{ņ7(0#j\+ϊyiNeվb4ъĝS.4U2u9 `@q^Qn!>=ݖ>FMT]qoP`$C@wgB谈8[yG |B| H+2pNrZlV8ծ='9-6d !\hT[:.6$g WҖO aiKwZ *C"< Nj򹨶-ȩWLuݙ`&r\;fD4~[v)C#hc1cB@" Ƅ}$J=2m)K/0R wl+pH"dGČ?,}V3"NI8ʌ6 Ԙρ(z&ڤ?:, xP_jbF~Tؐ^9.Â]|i-o%;ȧ}nc{; x&Yn쨚Oen~ϼ!ٛ6oJ |)11#?*0f57NtʂАا3JAP/MvMCTMўjL,QeF^]5st.A ZgRے3VGmaךz 7Y<'5ah,4$8_@r %⼋I<(A q9޳ ؐVda{p2t\lHBWЧQPeA~S^':k;EXK0 Umvv̈L%O*D5&bZI%gE]u/LFk_眒zmYRڃ-!tXiI)ɎDujyx>Xkq'Oᾶ f:}Jc13Q`SbEwdk+hHpXElޔ{Rs#KrWUf*(µ/{ņ7ӥ(0#j\ϊ+yiNe;b4ĊS.4U2u 9`@q^nQ!>ݖ=>ݮMFT]qoP`$֗C@̞gwB谽[8y |GB| +2HprZlN8Vծ=9-6' d\h!T[.6$:g WґO aKwZi *"4$8,@_r% I<( A9q ؜Vd{a2p\lHtWBQPA~Seä':^;kEXK0 Uvm̈v%LO*5&DbIZ%gE]/uLFk_mzRY-tX!I)iɎDujxyXk>'qᾶO f}:cJ1Q`3SbEdwk+HpXhEޔl{Rs#KrWUf*(/ņ{7ӥ(0#j\ϊ+yiNeվ4bĊ.4SU2u 9`@q^nQ!>ݖ=>ݮMFTq]oP`$֗@Cgw谽B8[y|G B| +2HpZlNrV8=-6'9 d\h![T6$:. gWҖOa wZiK *"$8,4_@r %<(I A9q ޳؜Vd{a2plHt\BWQP~SeAä:^';kEXK U0mvv%LO*&D5bIZ%gE]u/LFk_zmYR-X!tI)iDujxyk>X'qOf }:cJ1`3QbESwdk+pXhHElR{#srKWf*U(/µ{ӥ70(#j\+ϧyNieվb4Ċ4S.U2ኤu 9@`^qQn>!=ݮ>MF摵Tq]o`P$֗齉C@gwٰB8[yȡG ||B 2H+plNrZV8=ծ6'9- dh!\T[$:.6 g WҖOa ZiKw *h8,4$_@r %(Iq//^SShѹ,` @ȱy[[jjFˍپgK99rJJLLXXJυkл*媪OCCMMU33fEEPPD<KKܽa ppB>>|ĵqffHHaa_55jWWйiX':'8볘+3"iip٩3-"< I·UUx((PzߥY  ڿe1BBhhAA)w--Z˰{TTֻm:,ccƥ||ww{{ kkֽooޱőT00`PggΩ++V}׵bMvvʏEɉ@}}YYGG AԳg_Eꜜ#Srr[u=&&Lj66lZ??~ÃO44h\Q4qqثs11bS*? ǕR##FeÝ^0(7 / $6=&''Niuu ,,Xt4.6-nnܲZZ[RR;;vMַa}))R{>//^qSSѹh, @`y[[jjԾˍFg99rKJJLLXXυJлk*OCCMM33fUEEPP<!KKݽa܋ pp>>|Bqff̪HHaa£55j_WWiІX:''8+"3iiһ٩p3-<" ·IUU((PxߥzY e1BBhhиAAÙ)--Zw{TTm,:cƥc||ww{{ kֽkoޱoőT0`P0gΩg+V}+׵b׫MvvʏEʂɉ@}}YYGG AԳgԢ_Eꯜ#Srr[u·=&Lj&6lZ6?~A?̃O4h\4Q4qqثs1bS1*? ǕR#Fe#Ý^0(7 / $6=&'Ni'Ͳuu  ,Xt,4.6-nܲnZZ[RR;vM;ַaֳ}γ)R{)>/^q/SSѹh, @` yȱ[[jԾjˍF˾gپ9rK9JJLLXXυJлk*OCCMM3fU3EEPP!KKaܽ pp>|B>qĵf̪fHHa£a5j_5WWiйX:''8+"3iһi٩pَ3-<" ·IUU(Px(ߥzߌY  eڿ1BBhиhAA)-Zw-{˰TTmֻ,:ƥcc||ww{{ ֽkkޱooT`P00ΩggV}++bM櫫vvE@}}YYGG A쭭g_E꯯#Srr[u·=Lj&&lZ66~A??Oh\44Q4qqsbS11*? RFe##^0(7 / $6=&Ni''Ͳuu Xt,,4.6-ܲnnZZ[RRvM;;a}γR{))>^q//SSh,@` yȱ[[ԾjjFgپrK99JJLLXXJϻk*O媪CCMMfU33EEPPxD<<%K㨨QQ]@@?!pH88c߼wuBc!! 0mҁL &5/__5DD.9WU~~zG==Ȭdd]]2+ss``OODf""T~**; FF)kӸ(<y޼^^ v;dV22tN:: II Hl$$\\]½nCשּׁĦbb917yy2CnY77ڷmmd՜NNI੩شllVV%ʯeezzG鮮oպxxJo%%\r..8$WsǴQ#|tt>!KKaܽ pp|B>>qĵ̪ffHH£aaj_55WWiйX:''8+"3һiip3-<" IΪUUPx((zY  eڿ1BBиhhAA)Zw--{˰TTmֻ,:?/*p?3f?(_?xY?յS?N?J?F?DB?Qt??u+ ?A?Į?"?ʝ?G??i>l>7>>*J>>>^>>F>>7P>>K{>>>u>;->>>|>eO>4(>8>L>N>ȿ>>>>·>ε>߳>>>0>U>~>|>ަ>Y>IP>w>ҟ>B>e>)>~>_>>C>{>>J>﷍>X(>'>N>Í>x >b>x>>!>^}>;z>Хw>@t>wr>byl>i>g>Sd>3a>^>]\>&Y>z)W>T>P R>O>L>5~J>3H>E>nC>@>VK>>;>9>07>4>2>>0>p->+>s)>7'>%>"> >s>L>*>= >T>T>4>>y >ϣ > >>L>>l>=+==0 =C==8==hp==0== =o==|===;=ں=Z=o,=ް=ߗ=.W===%==r=W= C=4=M,=4*=D.=y8=H=~=x=sFMT[EbhnGu z ^ѕ 67(AqFFp+-T zYEyMR ޷4PH7dЍzvlS! 0 Hvi(|E*k>p֏h B& +!E!xV"_"O#J#I$i$<$$%t4%G%pN%ZH%j5%%$d$f$$4#>#,"k3"8!X 5 m! n2dӎeG 6 s @Ld&);J=3'&vQ[,¶c*@vz!x"pf2G]S+CH<60#4![ ۪^NebWI/*xT4v2;&-0#w e0<]ne' 1Ă-- .7).B.Y.fo.߁.ن..H.(.o.z.oN..l.F./...4.f.&.[/B//g /7!/>/T/d/n/r/Fq!/j$/_'/1P*/r<-/$0/k 3/5/8/q;/|{>/PA/#D/CF/I/L/dYO/"R/+T/®W/rZ/5]/_/b/xe/7h/j/m/pp/-s/u/7x/1b{/~/l/ʁ/(//h/C///`/M/7 //?/nB//L/ i/a̗/T0/픚/5/2`/ƞ/p.///i/ԥ/@/t/>///j/ܯ/'P/IJ/)://&)//c//$/+///K/v/B(//://rT//Gu///4//Ei// /G///:///B/\/j/b////\/}"/Y/H/[/X/6./ /q0a0]S0F0N<030,0+(0{%0$ 0o& 0,* 0'0 0m8 0 C0P0_0q070{0w0>00s0<0d000$0 (0a 0!0l"0$$0l%0&0x (0_)0*0,0{-0 .0EP0010{:3040);60n70S90:0<0<*>0?0A0AC0.E0F0עH0J0fL0RWN0RP0*YR0FkT0V0δX0Z04]0_0a0gd0f0ki0 O Q W b c         < > ? B G H K M Q p q u          < > ? D G H K M U W b c  <    )  > D F H J M U V b c          ; < > D F H J M W b c       145:GN59>?q+e,>VY^`bdgmqt ]_24RSrs .   w!+0;U^`|14Dks$7 ,,--a--*0/000ort} #$',T3Ũ&''-GS)D*6CL M{.|}* /oK_pf01J#%')-Y[ : < A H M Q R W b c  ;     < A B G H K L M Q p q u         < ;? A B D M U V b c   > @ F H J M U V b c  ;     ; < A D M b c    1[4:GN59q~-g.0279:=>XY^`qt]^_24RSrs .   w!"'(29:;V;X^`bels|1467:<Bks,367   ,,--a--*0-000otu} %&,ĨŨ&''-GQ)D*.1256CL |4+ 1O /vz      8 : ?   $ >% ' FP8F'4EFs ,7>;<>DGHKMWb cfglpt5F^R0@+,:0578;>@BC 39;>GQ R[/68?16:<=?@EGCjj0k6kOoQoRoooooo oLefimr{BD6;lu!#$&*06DJvz      8 : ?   $ >% ' FP879F'+-4s 5/`01467>;<@f&glpt8?BDF^3:=?@kf"%'+/79:;<>C! 38;>GQ RVY[068=?S16:<=?@EGI\jKjj0k6kOoo@oooLghi{BD6;lu!#$&*06DJ./012 34 56 789: ;< =>?@ABCD?EFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$tt%&'()*+,-   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWVVVXYZV[\]^VVVVVV_VV`VaVVbcVVVVVdeVfghijklVVVmnopqrstuvwVxyz{|}~V&VVܜݜޜߜVVVVVVVVVVVVVVVVVlVVVVVV < ?AJnoq /M@X`j 9 = P X a r                 ( * 0 2 3 5 6 8 9 Y \ ^ r s t               ( * 0 2 3 5 9 = \ ] _ ` a q            5    ( * 9 = X Y Z ` a        !      : = N T V _ a z       023@E@@AGIl*?PQUZ]aefnopurHJMPVXZ[]`Zlo  1@Q`lnp D!BDxPmpt T3EK#MOZw5!;6!8!0-g-------------------0<06A000000011/111111114MNФ *+n2h  "@s %0F`|(@BDK`oqvz~ª۪ܪ  &(.mp (*68<>@ACDFG=PptvfoqMP]37#-JPz'0coo6@U`g8<<?  9 ? ?        5 8 : ? H P X `       5 9 U X r x       H      ' 0 9 `'0YMRoGPv> DGHKMPPWW]cflptaDPY`l+0?;   8;FPYGPEPlp6:GPY`#$t$$C%0.4DFFh8j@jijnjojjjjjkEkPkwk}kk@nnoJoOoooooooopՌPRdgpjp|&)r{EV`x  FJ*,0=@INOKPY^_q=$';BBGTWdg+0;@HPQ`es GPY`S`mptxzݦ4@ J  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~AZaz ptvwz}/1VY`a Jnoq /M$ (@AX`j 9 = P X a q                 ( * 0 2 3 5 6 8 9 Y \ ^ r s t               ( * 0 2 3 5 9 = \ ] _ ` a q            5    ( * 9 = X Y Z ` a        !      : = N T V _ a z       023@F@@AGIl*?PQUZ]aefnopuHJMPVXZ[]`Zlo  1@Q`lnp xPmpt T^3EK#MOZ} EHMPWY_`}q   !! !!!!!!$!*!+!-!/!9!@ACDFG=Pptv!:AZf  &(:<=?MP]-@BIPuP'0c6@U`g  578<?@U`v   9            5 ` |        5 @ U ` r    H  # '0 1E7&DGPrv + (*02359=P]a4GJ_a/D<H+   /?A  2:P\# .@r2s  0F`aeghjH P #$C%0.4DFFh8j@j^jjjk/kckwk}kkoJoPoppՌPRdgpjp|,Nr!"$')2479;BGIMNOQRTWYabdgjlrtwy|~ݦ4@ J  &(:<=?MP]-@BIPu'0c6@U`g  578<?@U`v   9            5 ` |        5 @ U ` r    H      # '0 1E7&DGPrv + (*02359=P]a4GJ_a/D<H+   /?A  2:P\# .@r2s  0F`aeghjH P #$C%0.4DFFh8j@j^jjjk/k@kCkckwk}kk@nnoJoPooCoooooppՌPRdgpjp|TV  9;>@DFJKPR46NPnp,7=NrCK!"$')2479;BGIMNOQRTWYabdgjlrtwy|~ݦ4@ JF+G WHuH66H7777.877 848:833. 3X8^8j8d8p88v8|833.33.3. 3.3.3.3.3.333....33.3.3333.>>>3.333E,sEE3EEEE,,,EE,,,,?! ,,-g/- ---k?o/-#-#$%&...,J&Q&X&_&f&C&'(J)JEE( (J33t&{&&&&m&.+-.332/.3.3.3.3...s-{--3.3 3.3.3.336 33333.3.3BW;;;;c ;<<<<<<<D33-24/0JJJJ33333.33.333倀Ɓ圜Ɲ常ƹƀ唔ƕ尰Ʊƀ匌ƍ娨Ʃƀ億ƅ堠ơ弼ƽƀ嘘ƙ崴Ƶƀ吐Ƒ嬬ƭƀ刈Ɖ夤ƥƀ刈Ɖ CDD EE_C}CCCCCCCCCDCwCCC3.3JJJJJJJJ..3-.333.33.3.3.OBYBcB3----333Mk------3 EE!F/F=FKFYF,1,. .3.3EFgFFuFF3333333.3\]^_ `a bc defg hijklmnopqlrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[  B{B%qBB#""""F+GC BBBvBBj777.877 848:833. 3X8^8j8d8p88v8|833.33.3. 3.3.3.3.3.333....33.3.3333.>>>3.333E,sEE3EEEE,,,EE,,,,?! ,,-g/- ---k?o/-#-'&#$<&%&.&5&...,J&Q&X&_&f&C&'(J)JE FEF( (J33t&{&&&&m&.+-.332/.3.3.3.3...s-{--3.3 3.3.3.33 CEIO_ae >Bvb& (&(pB 63s)!)j;!j; 33333.3.3!;;;;z;<<<<&&)(<<<W!)f0Dm33 2  .6 -24/00 RJXJ"&*dJ3333> 3.33.333:%F^倀Ɓ圜Ɲ常ƹƀ唔ƕ尰Ʊƀ匌ƍ娨Ʃƀ億ƅ堠ơ弼ƽƀ嘘ƙ崴Ƶƀ吐Ƒ嬬ƭƀ刈Ɖ夤ƥƀ刈Ɖ..3-.333.33.3.3.OBYBcB3----333Mk------3 EE!F/F=FKFYF,1,. .3.3EFgFFuFF3CC[C sCGOU]gCCIUgCIS_gCkCCCCKCb^vb ^vb ^vb ^vb333333.3 cT~B( o(3(=(Q([(G(e(r !~   !" !"#$%&'(()(*+,-./012345(6789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ      [!"\#$%&'()*+,-./012345678]^9:;<=>?@ABCDEF_GHIJKLMNOPQRSTUVWXYZ[M\]^_`abcdefghijklmnopqrstu`abcdefghijklmnovwxyz{|###}p~qrstuvwxyz{|}      3J[_AJ{^C\Jw7]}Cw!cajUB@&n4QIUP"Iwq\-_Ɵ\hCJ9? 4iY3pjNѼ.+ʔב,$42j?+BhO" 9'½[%)<*jRz3jɊ;n!|[Qũi !1䵦S)4S2j.IYbQy8v8LgcUawĖ jbOFڐ!z2(3w Ǿrpi%OLsԴxn'1W/x $/[YI9-La]4ﰽ+VP9` 5Tpv ^7}-y|{"by8q"yD@PXr̔)AQF纱VIoh gRSr$L^ZE+;\xnWS^)NOjcDjP:滜3 5Z $"xE8N>NT/Sﳇ iC{ PLÞQG [~?"ҥa|E^PnhD6 )D.1=(iHfN`oQA'Ga}Bv<xI@wlFDq p[Gem`xqWn3bnGNR q8V$W|TSgTQY"R=:+8HL+P/hǟ ?\&Xk@ rRq65Jn\@0ǯxיXI qN/݅gpb#a "$#&&P{=!鮼 |Fbz?:7yEyRS@{(ڽ ]QGP27~ ?39>dd[מגX!h!1F{:=j+6g<^9*vvos1PY3$m4@qƤsfnKSA Erj0, XkE)j b\^9鸩NtHᮄ\4q:2J(R'o;.NF`g#'s$Aׯ*} }9,TtB%@f4YE" ڷ9BAVU'(d=koǡRlf*dcJ~Xac6 9s;ًiax=Wɝh:35RP-Dm[1ffe7QhTFp7)]((DiuN#CA)Oy}h UA?t'0FEh#9IZV6a=zlpJp@:ޕG5_Vٸb4IAS(S:oF%b(KcfqjQl2@z$Zf;ZdҀL+":XM=c/ˉ a 9] Ĕ&`ӛWfBX2b/8yY'V:ِK/\];5kvʃ&_BSv@+<]4rdtAxN>/wxRB@b+)N*8S|i{$WcI6k2\d|{g ?ƸG9ptyܠ#wnɷB3' 9[h'MlT: yg~ "I~EMe(]XlC]y2E߇yzVǣ(k 'j΍Bi-U’]7OC̳|<٫^b, ^h[8Cpj\˰'cA?ɨRT XT1a~uL DMk/`6%&Ն3rpͩQ$TZe( 夯$#%3|_B^2+@a d_+<~A>k ;YhIVuL6b* :g(`y!W+~$Q)uJ+%2H5'Mv:Dgw}5l<y5[k'[(c%{1%}B#%h~<_3Yq6*,29CҲ~ Gb_BG[Pc?IlAk"|Or$Z= G 5)=eX( U4+\Bx6,n rypr!li6[ylRb7ygݓx koQu4g$L&Ղu<Fu{⴪\?^%C=D(HM 9"l6#)\_*Tz8d 6G_ Z-ȸhǬ#C %dyZ%Z~=sꤏ<"yuх!=afNgy?*mURmG*mhP#] [w6^e}tr+*k%Csbk$<-0K#1 ] aNO3l6e%9m8+u~`q`l|=/iky* +۶+[$[?`~Ey1\3q4U^yuװw'C,f!*EInȱf=B G.aow]>:?qnGxį@xq$!j߶lN@gve RQ^q+zkA6y/+3C{]n^D ;,7)=O2O)ӄ 7V NܧV|$ZxeGD ]];be(jq0/v׭4xpەuCt92o@LmSЗŚSRYu$axmc*K"?7{F=~kvbk]vr!x:g嫂~4l@vs/ޚLЧ~wMmG=K12L =C&ss:y2nacfO4IDܾT^R A}ø@'YlDNGXn{,T\0{*] 0Gy}9Ӷ+p|F 6ڴkBvSy`CܘόdO2I#(7HPm vOsE}SBbYh+@`~ daUH1uyC;wonfh(4rU֑TTew>oGIUy\cb?9>g""m~cf~f78诤Gג߫jO2)RYtu ё|ؕ:S|۱sfFfhp$qKM C,Ue1X#HX 〽w'rPᰜ]HAq dx9dk/ ^BPg\9L(BI6!w_fQĩCQãQ(y$( [8 ưYJ)Xeި.8Ǎz̖ZSt;^sW~%1: 9//F/FFF//F0000F1>1C1FFF111&GL2220G2?GDGNG3 3SG3333gG,4O4T4qGvGG444Gg55/2F5G/2/2/2/2/2/2FXG03 03+0730(3D0P3N0Z3S0_3]0i3b0n303030303003030304031'4/1@4%164F{GH1Y4R1c4p1414z14 GG1414GG1414GG!GG14141425)2?5Q2l5e2t25~2525/203W1h4159u;9n;9|;9g;8V:8O:55X0d303GG96;553?0K31"48]:5555/2/2!0-3&0230303\1m4a1r41414151 51414q0}3F:GFbGv9;S9:FGo9:[2v53333333333333333333334....4,.....**....**...............333II3IJ73...333..333....34..356656653333333333333s7566*6<6Z6l66>N6~6H6?H6>87D727 7t7\77h77J77&77,77>77@8F8P77V77b77n77z77L8R87(8787878787"8.3333.333/.333333......33.33/23 33..33333.33..33333333333333.33.33.333...333.33..333333-;-C-K-S-[-c-k-33.3333333.336+.*3333333333333333333333333333333333333422.35.3./2/2/2/28r:/2/2/3/2/29: 9:00<350A39::0F3I0U3g0s3v03l0x3{030303"9:030303FlG)9:040 41414 14 114*1;491J441E4L9:Z9:a9:h9:f1w4k1|4u14GG9=;1414GG9D;9K;9R;14141414252&5 2!59Y;9`;2+5205255$2:532I5.2D582S5=2X5B2]5`2{5y25252534N555FIG/28:8:8,:8%:8d:8::83:8H:8A:8k:F]G0#3038:8y:8:8:9:0303FGM1^479:09:E9:>9:9/;9;}9 ;9!;9;9(;15149;9; :;:;:;G2b5o25j25V2q5H!H5IMI=IUIEI]IGGHHHHHH-H3H====GG<===EHKHeI}ImIIuIIGGHHHHHH]HcH/>G>7>O>?>W>GG/=G=7=O=?=W=iHoH_>o>g>w>GG_=o=g=w={HH>>>>>>G===HHIIIIIIH HII I%II-IH5C6;C9HAC6GC6MC6SCHYC==AAAAAA<<@A@A@A=>AAAAA B='=#AAA-AKA7AUA>>B1BB;B'BEB==_A}AiAAsAA66=6='H= 665C65=6=QH>6 C$6C06;;;66>D6'>H6B666C;;;76>E667>x6r6f6#C`65B>7>H>T6C6/C6mB<$<+<2<|/@<9 6 z .b>R*^j* v Zf 2v>bz   f>  : Z .V J^^  2 ~B~:  nj2n>& > R &> f B^nf2VR zj v z& 62 > JN*> j 2j F 2 " b JZZN n: *f6. . V  &* ^ "Jfj~rV 6RVZ.Z~NZN j r Z :jR2NVRZ^bvz2:BV~j*^b ": !NJfN : J f   . > & . ^ ~ b n v   * ^Vj"b~ :2N~2Z"*BVF^ZRbnNn".:. 26g *JJZ^fnr~v^OY:4 "&.2JNZfjnvmr   " * . 6 > B B J R V b j n v  w  |" & *  2 : B B ^ b f n v z R        " f: J J Z b v     " 2 F B 6 N V j r f ^ z ~      f   . & B 6 R Z ^ J f j n r ~       "& >BVR 6rvT&+ 05*:>""VZbfr&:?DIN*.XS]b6:>l&.:Bq^v{~FJNR "V.6FZ^^jv~bj6 n B"&:>*BVj6JNRrrv~vz~:Rn~ch&2: >jvzr%* /9>C..6HN^jrzMRW\akAZ az yy/00911279HJwxxy~Oaa88  ~"3::+*;<==]>>(*?@?*?*ABCC=DDEEEGFOPP**QQ**RR**SS..TT22VW33YY66[[55\\OO``33aaKKcc11ee((ffDDhh//ii--jjDDkk))llAAoo--qq))rr++uu**}}))&&CC&&**&&''%%EETTpsvw{}t&%@?  ~P/ 0OP_`/1V0a```  З‰‰@@yy}}88A '(/078?@EHMQQSSUUWWYY[[]]__`ghopqJJruVVvwddxyz{pp|}~~   &!&!*!*!A+!+!2!2!N!N!`!o!p!!!!$$$$,.,00,^,`,a,b,b, c,c,d,d,e,e,f,f,g,l,m,m,n,n,o,o,p,p,r,s,u,v,~,,,,,,,,-%-'-'-----@m"/2oy|}}u~Z00ZZZZZZZZ§çħħŧŧZƧƧuǧʧSS``p0h0h!: AZ'((O(  @   @n_n `nn!""Cဖᘞ5Me      I}YiMᶶy3ᐟဏE@ @@33 333@@@   3@            3@  3@3 3333@@ @      @    @3@330303030@0@0;@@0@@ 303@@@@3 30@@;0 @30@@@@@@;@03@3@0@@0@ @33;@3@ @@3@@a @=333303@@ 03030;03033003 30303003@ @]@]@Ἴ@    @@@@@ @@@@@@@@@@@3@@@E฽@@@@ @3;@3;@ 3@@@3@@30300303;33@@@ @3@@@33@@ @3030@0303@@@@@@(@303@0303@;030303@3 @@@3333@ 30303030 0308@3@ 3003038;3 30303038@0303@@ )AYq}@@@33033303@3@3 E@E@EਯE฿@3@@$@$)%y%% @(~*)A)@@ဏ@@@@@u௯@; @@@@@ @@@@3@@@ 5 5 @ @3) *1*i*@@5*U*u**u****+5++@0*Z0@0@@@@3@@ )}D}@൵ n3;3030;@@@000;3@@333308@@ 30303030 8@@3@30303@330@@03033333@0300;@ @@@@@@ DDq)mn@DD E-E E 030300;@@@@@@ ME MM KO -U -]V] kMmmnp@@ q  smexoy(q|1||8ឆ@@٠񡘜Ѣ٧I) @@@@@@@@@@@@@3@@@3@@@3@@@@EဇሏEᐗ %@@% EဇሏEᐓ@@@@@@@@ @@@@@@@@@@@@@@@3@3@3@@@3@;@@@@@@@@@    3@@@@@3@@@    3  @ @              @@03033;@@; 30030;3@@@@3303;@ 0@3@300308303@@ @0303833@ @@@@@303;@@030;303@3@030303 30;3@@03@030;33@03030;3@@@ 3030383@@ @30303;@030;3@@@003@@@@ 03@30;0@ 33;303;@303 303;@@ @03@30;@@ @3@030303@ @@3@3@3@3 3;3@@@@ 0@3@030;@@@30@@@@@@@@@@@@@@@@@3@3 @@@@@ဟ@@300@3@@3@0@@@@@@@@@@@ @@3@@@ Qiѷ9030@3 333鸼1i@3@@@@@33333@3@3@ 3@3@3@3@3@@3@@@3@@3@ 3 @@@@@@@@@@@@@@@)@@QȀȁȂAɃɄɅ1ʆʇʈ@!ːAˑ@@@@@@@@@@@@@@@@@@@@@@@@@@ @AiyQaq@@@@@@ !߀5aU➢uA㤫 A䭯䱶a庺弿 ՓaڋU!uՔ!A@ @@@@@@33@S`i2Տ\ B噜asRU^RxZGv\cҾ("J382t/)?;)?Z;S$YJeefXI- y]v>ᮺsy,,SoΊߙZiKy+ؑlHFq6N%#MDz 0rxjm5Q^3-O\5x,#Gf+1̯!P;LvU0 =*$Jߓk<ܭ 4mx݅KbSh@drk3o=qԇQhˌɩf%H;WK`0Kmtv-^85A>~;ΥuLR5]JBϓ CszΕ IBNww&Ԧ`fʴ"U 8G5U]_nUc^s 4!b/6#u{+ջCn6%!3G-;eUk niԜ %Cpv,n% DH(W^j8dW*͖7Ƽ>'u.h3DJkq!jz~X1[Dd)غ`YLhr3)$oE=VyԶӥk0bЏlwHijޔ3<)). %I qM^o(TPa,J2q\":1n1'H cmƚp̻, }x=M֥`%NFN *!&8#Xl᮴ fo(,nGMȟPEyۤ̂(}eC2f;^j@>Ծ@J6VcؑDwZhN"uO>6qZS >D[Z U1(\Q† yX葀r9Mnbf-!= -@s]Ι 4f|hNr#j9 bf'NDGCɨbK"=`?woɦq!M8U"|Hj`FS*~+TmBDt.OSU9zc%C1'~U5yX=X4/UKc5u|&o<%y^Fˋ#w" _uv{fg6]I@'᷂YyX7 1 ?gjgν$m\,B`A֋nsXmSx@I̮jPu9Hh[BRm-^zy;Ӧ{xd J2_`U\&;\HH/oJ&$ڔ;W`X=vWζ]y+zCB,Z[lS*xP1r'0(d$5VN1J<왾6w6^F?nY{U(ω/3&t~W!v]?OH8oꖐSkuzcZ (YImM\ٻ-qd`3ϪMy4,9UgAwGDrĆ`I,"u(19b7]k62c}:%˅tח1]dqӨMS{$crf-bgmYGB`=ހtRx Sal'.gVfQp[yͶSۣ2Fqk(󗿗φͲ"a}ȁ_ Wkyl]=;t60c1ÜD۾`wD-HU;մJM-u-]cxZbҶxF\4|q* 4M=5]z Y`tWFK?p8+׬XҘ'Fc{#TwBձL;,)UdJ_ wsj=r{~T>*bC#Oa鍲5*g8Ԕd1Ӎ@~8<vJ)?@'D|Y+(0TX0tx>ݔ<6Rj20:'Dܡ?^:)巧`Htޥ!d4[IV֑f4 ʕ%ΟkB@OQ]=;i‡FQ* k)XrGVieg!Ysۓ,S>ih0PҸ:BAsUrsONdP#9JFE߃b}$lۃ2kr]ΖKde2?/nO|{S ȢUra6__,tuE7#8H,RA,ZQ;"sMH=`>_ Xf&1ѷ?RpIFwϻ3ӛa՟k.dȂS|nǰsƣz={ch iN\ ->!Qab OInHiãۉZ&ޓuZF)v:k\m#X񗳻e 3R,.X}jtYg+WN¨@8H۔labMPF wfנ.t `2$^V$ il`#c?ʏū|0ks]|d|Fk:Bzk ,SҘl.J{qDw`zdrIdGJ|l_bϛ= -]:NJy4yxӺ9QX*r`K6(eNC2)b"=s>'=z_R?Z}5)f&ϰʨ&4*cݓR04`Cx g|A8?, LKK6)e^y 1cJFM}e5CENKP.?q/^9ϛdLZN'sv]pÂz}oj:U&N6U (&.tE+۲Ꝓɋ ;oOFkȒD7@n ˻zj B̽ܝY-#JFTW"GdeT-V+~xY~)p$wZU|Hihaέ["RDù?BrAggɟܥ k`ŗ T`鸶h;#)8>G#g$!e r v6i>[ΛpD0 ’sHo^+Ʊ;Hw 68(J촰c%2R l (8Z~HW_S#YQZ-7yHelE1D"'Xd˞k?/"=~Fr6-j[wŸG꺔R̆$bGט#?9': dҬ$0hS>-_Uj[n*uRDZZE dug.k`MFU=Ķ{s휆&|VsJyݭ'vcR] X`UY~S|n𸪯qޝhp b!q&" ŗ{`=Ui jP|};+*\B`w[zY78U@gf/Flk7._=;K##⼺;1a ^wl}9!J5U"ST.wAP~uu\T Ғsi$$dDKN^wÿ-> ;ZJbڗ<섎ꊭaнK'Jg9EpCK,΁My%1^_B0CXn >;5Snʋ }4Ud^wH~t*J6ڝXv%"݃:QӮB5yrjR;uD<u'm8c$S,^{tPd2l1+a}JϟCb.2:]‡ I62wyh.L[Mľ K7٬:|S\ 5$oe(KB.E.D?ˈPo ̼H9i$ MZDs00 h16A_p=|6+ aw̫Liv2=BzՔI?il7Sr3܀#GGŧN@a+eX&1Zd;Onp= ףp= ףp= ף@P$ (k@C*焑 1_.@v:k #NJbxz&n2xW ?h@aQYȥo: '@ x9?P 6NgM"E@|o p+ŝ(lL672V߄@<\l: K{ΗԆ H½D PvU1P?]%OʡZ7и@=J'ƫ͜mCư#o\{2~,݋] 7 n0b/54"&EE=!A+p֕C)@_v $_E^D+S69uq`D]ȩdL1FUJ:Ack݈-~<MXdQpl԰k2#FۄEk0ScgedF|~`?~On_O83^Iwm,ӿ\U /ssc*Og(~MTၲQ5F&B|Z"e B‹Xixu3_FiYW皮dR7/-#]gk}{x F6@2cPME;P fδzBΨ?]76l3oߌGA]DG #٨tY l*/h7ȇCØE)wyTzm)^Tj fX_4'R⌏.]^EsCupv]dB!ܨSyJIj~IrhcۇiEB<]ҩE֒PֲE# ś[[hwl26h& C2d#DѸIDvja5 bl _ӨŹzÇ67h͉,TIIdZk"!"lk*Ǭ唔o=]S59#wˌ:BnSv*xriJh %i]_fX~ь[eaz?w/8y/UJX8σS*g].a{tZݲ\*q߈=9tau]V7zGѹ: Ub" `M1k{W+ ~Z픝_vIsX}Aȏ%زnYzdұَ_o_FTX H{%;#jVJ ,ڔQ+(B]D"ySJt:5(+EWA\Bu-/ں5ai .|]|i~C%94›^g.²xº}DKa2si*bd2u{}(>DRs\x5˲dj:aEz®kE='WT[rKxT6c? <ݧjW<Ϗ(QDme %JdCYxķ ]=apeFU Yy "WB$ ˇu/Sm ξTSܷmh.$*(弇Di}nVyu܁7UD`ג{S⻅jU'9pxtmbCF'z8TfAX1{jiQ.DA"&v'ZҪ/ iyhx{RMh, XǂVpEa75 . @v`|BǼ5Гj]CMĸR5VJpz3zrS!{Z\L.YOt֨Ysyob dp+EV݊>ԅ6+>m.7J7̶șŇ" @Ա K ж%YJ^MdD.:0ܵ\$~sީqG_,>%t]V w(N/ukPopk/t#[DzT%k$M,4xߎT¶@)s$ Уrt-ČV<ڒez|/~qeݍ~e>"t*U1Vx_':5k\(37h*VFs-Ciu+-,Ws)b);gj{IB_s!6p$wqBv/?ӌ# S@J286c]ɞ>CH|Y{ ځo&|(1ca/r}c%2t.5_(o?0:ͳ[cрyϧz^KDb2üfQ6^U+Gٍ@4õjQOP4c3Vnع^G/ O 5X'a'bbLBx8}Vc G,ݬ@!tlXxP]C 7 RzRT%`ϖi *.G|$ PATW3L~tґR?GQ.G#wX嘡cHv WD^/gQe,s?5;X^~OK ނ'aB.cy9'zխ"xR7t8DZJٵ "Ho·"MPu8벚ƣJy©Qa_A33Ӽ(ׁl"M"sǥ 4k"hk9@fu)/ ZI`So:K[8h#`^ʵמrFB,8,Fj¢l㴒$s ǓbwRŧmO˸8ۢ:g(3tsɥDm@e?S.R_PD;ϕ&wd C4>04x^M Ɩr =A}_Lb%xW[wߺnYb47>'6r  ;~"6汧 O:!UWʏbO∩*r;듧EuϬ3f0rIl|j; hۘs*hیC?C:ԑy!YkO jHI6.iyF㌄ 9NDN @iꅕ!o!]eqKguDid>//F/FFF//F0000F1>1C1FFF111&GL2220G2?GDGNG3 3SG3333gG,4O4T4qGvGG444Gg55/2F5G/2/2/2/2/2/2FXG03 03+0730(3D0P3N0Z3S0_3]0i3b0n3030303030`0303030403:1'4/1@4%164bF{GH1Y4R1c4p1414z14 GG1414GG1414GG!GG14141425)2?5Q2l5e2t25~2525. ..uxD/203W1h4159u;9n;9|;9g;8V:8O:55X0d303GG96;553EH?0K31"48]:5555/2/2!0-3&0230303\1m4a1r41414151 51414q0}3F:GFbGv9;S9:FGo9:[2v53333333333333333333334....4,.....**....**...............333II3IJ73...333..333....34..356656653333333333333sB7qBD66*6<6Z6l66>N6~6H6?H6>WHuH66H#C)C87D727 7t7\77h77J77&77,77>77@8F8P77V77b77n77z77L8R87(8787878787"8g.3333.333/.333333......33.33/23 33..33333.33. U P .33333333333333.33.33.333...333.33..333333-;-C-K-S-[-c-k-iko &+*  ".m(2p1.47:=@LORU"X[adg33.3333333.336+.*3333333333333333333333333333333333333422.35.3./2/2/2/28r:/2/2/3/2/29: 9:00<350A39::0F3I0U3g0s3v03l0x3{030303"9:030303FlG)9:040 41414 14 114*1;491J441E4L9:Z9:a9:h9:f1w4k1|4u14GG9=;1414GG9D;9K;9R;14141414252&5 2!59Y;9`;2+5205255$2:532I5.2D582S5=2X5B2]5`2{5y25252534N55BFIG/28:8:8,:8%:8d:8::83:8H:8A:8k:F]G0#3038:8y:8:8:9:0303FGM1^479:09:E9:>9:9/;9;}9 ;9!;9;9(;15149;9; :;:;:;G2b5o25j25V2q5H!H5IMI=IUIEI]IGGHHHHHH-H3H====GG<===EHKHeI}ImIIuIIGGHHHHHH]HcH/>G>7>O>?>W>GG/=G=7=O=?=W=iHoH_>o>g>w>GG_=o=g=w={HH>>>>>>G===HHIIIIIIH HII I%II-IH5C6;C9HAC6GC6MC6SCHYC==AAAAAA<<@A@A@A=>AAAAA B='=#AAA-AKA7AUA>>B1BB;B'BEB==_A}AiAAsAA66=6='H= 665C6BBBD=6=QH>6 C$6C06DDD66>D6'>H6B666CDDD76>E667>x6r6f6#C`6DD>7>H>T6C6/C6qBBGZ^QQQSSY]aceeeuuWBEGKM[!|fI4"@""""(""""."":""""S]fmNiqYGI[hRbkV<$<+<2<|/@<9BFJNRVZ^CEGIKMOQSU &2:brz~z  F R r ~  6 : B F N V f    .6vz"FJRfrz&.6rv~"BVZb &BFJbfn?'?/?7???G?O?W?_?g?o?w???????????????BB?&??@@@@'@/@7@?@G@O@W@_@g@o@w@@@@@@@@@?@@@@@&j.26~:>BFJNRVZ^IIIIIIIIJ JJJJ"J(J.J4J:J@JFJLJbfn rvz~   2Z ` f l r x ~ 3'<'E'N'W'`'i'r'{'''''''+* ! &!D!>!2!!! !8!,!V!!J!t!\! !!P! z! b! h!n!2  "*.2:BFNRVZ^/.7.?.G.O.W._.g.w........o.~ "   b N  NbF  *F  Z N B   &5D!!!W  &*.26:>BFJNRVZ^bfjrz'+))+(.((?/)((()))).**+&++9+*,,**((.7*I+ /((D*((&&))*,Q*Y+=,^*#))S/k*P,-)i+7)*A)*/x*y+*&./K)U)*_)i)s)+*&c,.+*.}))*&*+&v,) +:I!!!!!!!!""L"X"d"p"|"9M\c''''*P8f l{KXS;jv,Z"z/G~2B*F."#&N#''_J5V>n#YAr&2S<"NQor 6)>J]b""!0?!!!!!!!!! "F"R"^"j"v""""""""z Z.. bF b v FbJv  z& "  *RV z.n&F~N > 6 z .b>R*^j* v Zf 2v>bz   f>  : Z .V J^^  2 ~B~:  nj2n>& > R &> f B^nf2VR zj v z& 62 > JN*> j 2j F 2 " b JZZN n: *f6. . V  &* ^ "Jfj~rV 6RVZ.Z~NZN j r Z :jR2NVRZ^bvz2:BV~j*^b ": !NJfN : J f   . > & . ^ ~ b n v   * ^Vj"b~ :2N~2Z"*BVF^ZRbnNn".:. 26g *ee{lqvCD0!$'*-36D D EE_CeCkCqC}CCCCCCCCCCCCCCCCCCDDCwCCCDD  DDU %% & &%% & &&&&&&&&%%%%%%%% /4CHM\afp .38=BGLQV[`ejoty~     # ( 7 F K 7D=DsDDDDDDD%%%%%%BGV[`ty~ sD- 2 7 < F K %%%%% /4CM\afp .38=LQejoty gD # ( 7 A %% puty7 A E#E+E$)z9>%*RWk$)z9>%*RWku\afDD#,#,#3#:#O#V#]#############$$!$#######($6$6$=$=$D$K$R$Y$Y$`$n$|$u$$$$$$$$$$$$$$%%$%$%+%2%%%%c%j%N%N%U%%x%%%#%##H#A#k#d##r### $#/$$$%%%@%$q%$$g$$G%9%$$$G%y##%$ #$R$!$#\%$$''''''($, +'57?b3333333.......33vFBw{BBBB75?F 9=;y ABCDBBBIDBODBUDB[DBaD9%D%D+D+DmDmD1D1DyDyDyDyD<<????BBEEEEHHHHKKKKNNNNQQQQTTWWZZ]]````ccccffffiiiilllloooorrrruuuuxxxx{{{{~~~~....'.'.z~nv~" &*.26:>BFJNRVZ^bfjrzJJRJXJ^J"&*dJjJpJvJ|JJj.26~:>BFJNRVZ^IIIIIIIIJ JJJJ"J(J.J4J:J@JFJLJ{BJnNRVZrvcegikmoqsuvy|^  !#%')+-/13!#%')+-/13!#%')+-/13!#%')+-/13!#%')+-/13<?KT]Nl~`rxf{ZcEHQWiou?KN~`rxf{cEHQiuKN`rf{cQiu?KNl~`rxf{cEHQiou<?KT]Nl`rxf{ZcEHQWiou?KT]Nl`rxf{ZcEHQWiou|y$*+'Ge?CEGIKMOQSUWY[]_a&& J E 2 *  *n    f J  >  rF .Z FJJZ^fnr~v^OY:4 "&.2JNZfjnvmr   " * . 6 > B B J R V b j n v  w  |" & *  2 : B B ^ b f n v z R        " f: J J Z b v     " 2 F B 6 N V j r f ^ z ~      f   . & B 6 R Z ^ J f j n r ~       "& >BVR 6rvT&+ 05*:>""VZbfr&:?DIN*.XS]b6:>l&.:Bq^v{~FJNR "V.6FZ^^jv~bj6 n B"&:>*BVj6JNRrrv~vz~:Rn~ch&2: >jvzr%* /9>C..6HN^jrzMRW\ak     :*  Z J Z J                                :*:* zj           :*:*  :*:*:*:*:*:*:* :*:*:*:*:* zjzj*:ʚzj :*:* :* :*:*:*:* :*:*:*:*:* :*:*:*:*       zj    :*  Z J Z J :*                        @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ 9JiyI                        y5M  ==}                       e=}  }}= %==  Um   } =  -E]u=}=                                        =):Yi3y 333333333333333333333333333333333333333333  % @@=@@@@UU-=-@@m@            } --                 3333333                           @=}=                                                @@@@@@@33333333333@ @                                         333333333333333333333  3   )Qy                            3333333@333333333333      @@  3                              3333333333333333                         333@@@         @@@@@@@@@@@@@@@@@@@@@0333333330000;0033333339qQ33300@@@@@@@@@@@@30003333@@00@@00;@@@@@@@@0@@@@@33@@3@@330@@@@@@@@@1@i@@@3@00033@@@@33@@33;@@@3@@@@@@@@I@@@@@@@333@@@@@@@@@@330@@@@@@@@300033333@330@00;@@@@@@@@@@@@@@@@@33@@@@@@@@@333333@300@@@@@@@@@@30303333@@00@@00;@@@@@@@330@@@@@33@@@@@@@@@@@@3@@@@@@@@@@@@@@@@@@@@@@@0030000@333@333;@@@@@@@33@@@@@@33@@@@@@@@@300@@@@@@30300000@300@003;@@@@@@@00@@@@@@@@33@@@@@@@@@@@@@@@@03333@000@000;@@@@033@@@@@@@@3) 333333;33@@ @ A y   @@@@33! 3Y  Q 3333303 33;33333333 3333@3333 3333I 3333 3333 333333333333 333@9 1IAYQYaqiy9 )1QaAYqAi)AYi) !9Q}i)AYq)                                           -MA                @@EEEEEE@@@E@E@E@EEEEEEEEEYq@@1a!Q1a!QAqAq1a!Q1a!Q@EEeY~1Jy@q*Z@@EE @2aEE%Mz@@@9=Vv@ @@  @@@@@@@@@@ i)z @@@@@@@@@@@@@@AA@@QaqqAiyQaq@9 iIQYaq@@@&YEf1IIII AAYYq! 9 iiiI a y Q Y  @a A ! !  AY!!Q!!!!"I"y""" #9#i####A!$ 9$Q$= i$$i$] YYaA!$} 9$Q$ i$$i$ YYa@@@@@@@@@@@@@@@@@@@@@iyQaq&&1&I&a&y&&&&&& > ^ ~  '2'Z'''''"(J(r((@@@@@@@@@@@@@@@@@@@@> ^ ~  > ^ ~  > ^ ~ >^9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyiA@ q))}=A Y))                  =333 @@@@@'5'U'u'''''(5(U(u((((()5)U)u)))@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ )333300%))*U+u+++++++,,,,5,5,5,U,u,u,**u,u,,,u,u,**u,u,U,U,,,,,@,-5-5-U-u-----.5.U.U.u.....u../.u.5/U/u///-,//050U0u000001@51U1u11111252U2u1u2226672722353U3a7y777777 8!898Q8i8888u333333454U4u44444555U5u55555656U6u6668966757U7u77777858U8u88888959U9u99999:5:U:u:::::;5;U;u;;;;;<5>5>M>e>}>>>>>>>>> ?%?=?U?U?m?m?m?????????@-@-@-@<=i==9>>>A??@y@@AiAA9BBBCaCC1DiDDEFQFFQGG HYHHIIIIJJJ!KYKKKLiLL9MM!NqNNNaOOIPPQQQQQARRRISSS!TqTT)UyUUVVW9WWWYXXYaYYZQZZ [A[[\9\a\\\\])]Q]y]]]^1^a^^^^!_Q____`A`E@q``e@```@@`a9aqaaaIbab@ybbbbb@bc1c@@IcacycA%AEAeAAcccccA d!d9dAAQdB%BEBideBddIbBBBBd)eqeeCeee%Cefef1fECIfafIfeCC@yffff@fg)gAgYgqg9dgggCgbCCg@Dhh1hIhahhhhi9iaiiiij)jYjjjjkIkykkk l9lillll)mYmmmmn%D                       33333333333333              In33                                      =ED     =            an)yn!nn9eD       e-eMemeeeee f-fMfmfffff g-gMgmggggg h-hMhmhhhhh i-iMimiiiii j-jMjmjjjjj k-kMkmkzz {-{M{m{{{{{ |-|M|m||oAoio|||ooo }-}@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ p!p9pM}m}QpQp@@@@@@@@@@@@ipppp q@@@@@1q3Yqq qqqqqr)rQryrrrs9sasssst)t@Qtytttt@u@Auiu@uu@u v1vYvvvvv!wIwqwqwwwwwwwwwwwwwwwwwwwwwxxxxxxxx1x1x1x1xIxIxIxIxaxaxaxaxyxyxyxyxxxxxxxxxxxxx y y!y!y9y9y9y9yQyQyQyQyiyiyiyiyyyyyyyyyyyyyyyyyyyyyzz)z)z@@@@@@@@@@@@@@@@@AzAzAzAzYzYzqzqzzzyzzzzzzzzzz{{{{A{A{i{i{{{{{{{ | | |1|1|1|Y|Y|Y|Y|Iq9aه)QyɈAi 1Yъ*ZA|i1||}ጱ}} 1y~Y~~эAiᄁх!IyqɈъ 1Yq|||9}9}a}}a~)~Q~y~ 1р!Iq9ق)QyɃAi 1Y!Iqُ9a)Qy) Q|9}ay~y!ɐ񐁅y QQ9aْ)QyɓAi 1ɐYѕ9aْ)QyɓAi 1ɐYѕ 1ɐaр 1a@@@@@@@@@@@@@@@@!YYɖ9qQ1iiٙI))aaћ AAy!YYɝѩ ٙAy@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@!iAѬRb@@3333333333333333*}@:JZ}}@@@@@@@3333333333333333@} ~jjz-~M~m~-~~~~~~ ~-Nnjjj*@@:ZJz~-ʯگ @*:J@@@@Y.N@nѰ΀!Iaayyٱٱ !!!!9999QQQQiiiiɲɲ))))AAAAYYYYqqqqѳѳѳѳ1111IIIIaa{{yyyy @@@J2*:ʯBگ*)RAiyQaq: ZJ9Y 1IAYQYaq9 iyibj9Y 1IAYQYaq9 iyizr -)MMḿ -Mm͂ -Mm̓ -MmM̈́ -Mm ͅͅ M-M-mM͆͆MM @-Mmm͇ -- Mm͈ @@@M---M-@@MMm-mM@@m-m@@͉͉@@@ٵ-@Mmm͊@@@@@@@@@@@@@@@@@                               33@@@@     @@@@@@@@@                  @@@@@@@@@@@@@@@@@@@      @@@@@@@@@@@@@@@@3300@@@@@@@@@330030000@@00@@008@@@@@@@@0@@@@@00@@3333333@@@33333@@@@@@@@@@@@@@@@@000000@00@@338;9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1@AYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9@Y@@1@@YQ@@q9 @yi9Y@@IAYQYaq@9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9@ 1@@YQYaq9 @yi@9Y 1IAYQYaq9 iyi9@ 1@AYQYa@@@@yi@9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyi9Y 1IAYQYaq9 iyiѺ@@1I)1ayٻ !) !9y Q1I)1ayٻ ! !9y q)a !1I)1ayٻ !) !9y Q1I)1ayٻ ! !9y q)a !1I)1ayٻ !) !9y Q1I)1ayٻ ! !9y q)a !1I)1ayٻ !) !9y Q1I)1ayٻ ! !9y q)a !1I)1ayٻ !) !9y Q1I)1ayٻ ! !9y q)a !@@AiyQaqAiyQaqAiyQaqAiyQaqAiyQaq55uu5555uu55==                              ٱQ@aiYy1)ѳɲ!9Aqyټ@Q@I@@i@y1)ѳ@!9@A@@@@@@@Q@@@@i@y@@1@)ѳ@@@@A@@y@ټ@Q@I@@iYy@1)ѳ@!9@Aq@@ٱQIaiYy@1)ѳɲ!9Aq@@@@@Q@aiYy@1)ѳɲ!9Aq@@@@@ ":Rjʽ"Bb¾"Bb¿"Bb!Yifa9Y 1IAYQYaq9 iyiyeAAy±@@@@@@@@@@@@@1QqÑñ1Qqđı1Qqőű1QqƑƱ1QqǑDZ1@@@@aˁˡU!Aá̡u!A͕á͑ĵ!ՋAa΁Ρ!Aaρϡ!AaЁССС!Aaсѡ!Aaҁҡҡ!AaӁӡ!Aaԁԡ5!AqaՁUu!A@ aցց֕׵!A@ aׁסՌ!Aa؁ء!Aaف!5AUuaځځڡڕ!AaہۡՍ!Aa܁aܡ!Aa݁ݡ!Aaށޡ!Aa5!AaUu!Aa赏Տ@ !Aa5!AAa!UAua땐뵐Ր5Uu!!Aa앑!AaՑ!5U@ Aua!AﵒaՒ!A5aUu!AaU!Aua!AaՕ!Mh5AaU!Aau!Am{aՖ!Aa5!AaUu!Aa՗@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A A!A"A#A$A%A&A'A(A)A*A+A,A-A.A/A0A1A2A3A4A5A6A7A8A9A:A;AA?A@AAABACADAEAFAGAHAIAJAKALAMANAOAPAQARASATAUAVAWAXAYAZA[A\A]A^A_A`AaAbAcAdAeAfAgAhAiAjAkAlAmAnAoApAqArAsAtAuAvAwAxAyAzA{A|A}A~B¢B£B¥B¦B¬B·BÆBðBĦBħBıBŋBœBƎBƐBƫBȢBȷBɐBɑBɒBɔBɕBəBɛBɜBɟBɡBɣBɥBɦBɨBɩBɪBɫBɭBɯBɰBɱBɲBɳBɴBɵBɸBɹBɻBʁBʂBʃBʉBʊBʋBʌBʍBʐBʑBʒBʕBʝBʟBʹBΑBΒBΓBΔBΕBΖBΗBΘBΙBΚBΛBΜBΝBΞBΟBΠBΡBΣBΤBΥBΦBΧBΨBΩBαBβBγBδBεBζBηBθBιBκBλBμBνBξBοBπBρBςBσBτBυBφBχBψBωBϜBϝBнBъBьBאBבBגBדBהBכBלBםBעBרBתBءBاBبBةBتBثBجBحBخBدBذBرBزBسBشBصBضBطBظBعBغBفBقBكBلBمBنBهBوBىBيBٮBٯBٱBٹBٺBٻBپBٿBڀBڃBڄBچBڇBڈBڌBڍBڎBڑBژBڡBڤBڦBکBڭBگBڱBڳBںBڻBھBہBۅBۆBۇBۈBۉBۋBیBېBےC་CნCᄀCᄁCᄂCᄃCᄄCᄅCᄆCᄇCᄈCᄉCᄊCᄋCᄌCᄍCᄎCᄏCᄐCᄑCᄒCᄔCᄕCᄚCᄜCᄝCᄞCᄠCᄡCᄢCᄣCᄧCᄩCᄫCᄬCᄭCᄮCᄯCᄲCᄶCᅀCᅇCᅌCᅗCᅘCᅙCᅠCᆄCᆅCᆈCᆑCᆒCᆔCᆞCᆡCᇇCᇈCᇌCᇎCᇓCᇗCᇙCᇝCᇟCᇱCᇲCᴂCᴖCᴗCᴜCᴝCᴥCᵻCᶅC C C‐C–C—C₩C←C↑C→C↓C∂C∇C∑C−C│C■C○C⦅C⦆CⵡC、C。C〈C〉C《C》C「C」C『C』C【C】C〒C〔C〕C〖C〗CァCアCィCイCゥCウCェCエCォCオCカCキCクCケCコCサCシCスCセCソCタCチCッCツCテCトCナCニCヌCネCノCハCヒCフCヘCホCマCミCムCメCモCャCヤCュCユCョCヨCラCリCルCレCロCワCヰCヱCヲCンC・CーC㒞C㒹C㒻C㓟C㔕C㛮C㛼C㞁C㠯C㡢C㡼C㣇C㣣C㤜C㤺C㨮C㩬C㫤C㬈C㬙C㭉C㮝C㰘C㱎C㴳C㶖C㺬C㺸C㼛C㿼C䀈C䀘C䀹C䁆C䂖C䃣C䄯C䈂C䈧C䊠C䌁C䌴C䍙C䏕C䏙C䐋C䑫C䔫C䕝C䕡C䕫C䗗C䗹C䘵C䚾C䛇C䦕C䧦C䩮C䩶C䪲C䬳C䯎C䳎C䳭C䳸C䵖C一C丁C七C三C上C下C不C丙C並C丨C中C串C丶C丸C丹C丽C丿C乁C乙C九C亂C亅C了C二C五C亠C交C亮C人C什C仌C令C企C休C你C侀C來C例C侮C侻C便C倂C倫C偺C備C像C僚C僧C優C儿C兀C充C免C兔C兤C入C內C全C兩C八C六C具C冀C冂C再C冒C冕C冖C冗C写C冤C冫C冬C况C冷C凉C凌C凜C凞C几C凵C刀C刃C切C列C初C利C刺C刻C剆C前C割C剷C劉C力C劣C劳C労C勇C勉C勒C勞C勤C勵C勹C勺C包C匆C匕C北C匚C匸C医C匿C十C卄C卅C卉C卑C協C博C卜C卩C印C即C卵C卽C卿C厂C厶C參C又C及C双C叟C口C句C叫C可C叱C右C吆C合C名C吏C吝C吸C吹C呂C呈C周C咞C咢C咽C哶C唐C問C啓C啕C啣C善C喇C喙C喝C喫C喳C営C嗀C嗂C嗢C嘆C噑C器C噴C囗C四C囹C圖C圗C土C地C型C城C埴C堍C報C堲C塀C塚C塞C墨C墬C墳C壘C壟C士C壮C声C売C壷C夂C夆C夊C夕C多C夜C夢C大C天C奄C奈C契C奔C奢C女C姘C姬C娛C娧C婢C婦C媵C嬈C嬨C嬾C子C字C学C宀C宅C宗C寃C寘C寧C寮C寳C寸C寿C将C小C尢C尸C尿C屠C屢C層C履C屮C山C岍C峀C崙C嵃C嵐C嵫C嵮C嵼C嶲C嶺C巛C巡C巢C工C左C己C巽C巾C帨C帽C幩C干C年C幺C幼C广C度C庰C庳C庶C廉C廊C廒C廓C廙C廬C廴C廾C弄C弋C弓C弢C彐C当C彡C形C彩C彫C彳C律C後C得C徚C復C徭C心C忍C志C念C忹C怒C怜C恵C悁C悔C惇C惘C惡C愈C慄C慈C慌C慎C慠C慨C慺C憎C憐C憤C憯C憲C懞C懲C懶C戀C戈C成C戛C戮C戴C戶C手C打C扝C投C抱C拉C拏C拓C拔C拼C拾C指C挽C捐C捕C捨C捻C掃C掠C掩C揄C揅C揤C搜C搢C摒C摩C摷C摾C撚C撝C擄C支C攴C敏C敖C敬C數C文C斗C料C斤C新C方C旅C无C既C旣C日C易C映C晉C晴C暈C暑C暜C暴C曆C曰C更C書C最C月C有C朗C望C朡C木C李C杓C杖C杞C杻C枅C林C柳C柺C栗C栟C株C桒C梁C梅C梎C梨C椔C楂C榣C槪C樂C樓C檨C櫓C櫛C欄C欠C次C歔C止C正C歲C歷C歹C殟C殮C殳C殺C殻C毋C母C比C毛C氏C气C水C汎C汧C沈C沿C泌C泍C泥C注C洖C洛C洞C洴C派C流C浩C浪C海C浸C涅C淋C淚C淪C淹C渚C港C湮C満C溜C溺C滇C滋C滑C滛C漏C演C漢C漣C潮C濆C濫C濾C瀛C瀞C瀹C灊C火C灰C灷C災C炙C炭C烈C烙C無C煅C煉C煮C熜C燎C燐C爐C爛C爨C爪C爫C爵C父C爻C爿C片C牐C牙C牛C牢C特C犀C犕C犬C犯C狀C狼C猪C獵C獺C玄C率C玉C王C玥C玲C珞C理C琉C琢C瑇C瑜C瑩C瑱C璅C璉C璘C瓊C瓜C瓦C甆C甘C生C甤C用C田C甲C申C男C画C甾C留C略C異C疋C疒C痢C瘐C瘝C瘟C療C癩C癶C白C皮C皿C益C盛C監C盧C目C直C省C眞C真C着C睊C瞋C瞧C矛C矢C石C硎C硫C碌C碑C磊C磌C磻C礪C示C礼C社C祈C祉C祐C祖C祝C神C祥C祿C禁C禍C禎C福C禮C禸C禾C秊C秘C秫C稜C穀C穊C穏C穴C空C突C窱C立C竮C竹C笠C箏C節C篆C築C簾C籠C米C类C粒C精C糒C糖C糣C糧C糨C糸C紀C紐C索C累C終C絛C絣C綠C綾C緇C練C縂C縉C縷C繁C繅C缶C缾C网C署C罹C罺C羅C羊C羕C羚C羽C翺C老C者C而C耒C耳C聆C聠C聯C聰C聾C聿C肉C肋C肭C育C脃C脾C臘C臣C臨C自C臭C至C臼C舁C舄C舌C舘C舛C舟C艮C良C色C艸C艹C芋C芑C芝C花C芳C芽C若C苦C茝C茣C茶C荒C荓C荣C莭C莽C菉C菊C菌C菜C菧C華C菱C落C葉C著C蓮C蓱C蓳C蓼C蔖C蕤C藍C藺C蘆C蘒C蘭C蘿C虍C虐C虜C虧C虩C虫C蚈C蚩C蛢C蜎C蜨C蝫C蝹C螆C螺C蟡C蠁C蠟C血C行C衠C衣C裂C裏C裗C裞C裡C裸C裺C褐C襁C襤C襾C覆C見C視C角C解C言C誠C說C調C請C諒C論C諭C諸C諾C謁C謹C識C讀C變C谷C豆C豈C豕C豸C貝C財C販C貫C賁C賂C資C賈C賓C贈C贛C赤C走C起C足C趼C跋C路C跰C身C車C軔C輦C輪C輸C輻C轢C辛C辞C辰C辵C辶C連C逸C遊C適C遲C遼C邏C邑C邔C郎C郞C郱C都C鄑C鄛C酉C配C酪C醙C醴C釆C里C量C金C鈴C鈸C鉶C鉼C鋗C鋘C錄C鍊C鏹C鐕C長C門C開C閭C閷C阜C阮C陋C降C陵C陸C陼C隆C隣C隶C隷C隸C隹C雃C離C難C雨C零C雷C霣C露C靈C靑C靖C非C面C革C韋C韛C韠C韭C音C響C頁C項C頋C領C頩C頻C類C風C飛C食C飢C飯C飼C館C餩C首C香C馧C馬C駂C駱C駾C驪C骨C高C髟C鬒C鬥C鬯C鬲C鬼C魚C魯C鱀C鱗C鳥C鳽C鵧C鶴C鷺C鸞C鹵C鹿C麗C麟C麥C麻C黃C黍C黎C黑C黹C黽C黾C鼅C鼎C鼏C鼓C鼖C鼠C鼻C齃C齊C齒C龍C龎C龜C龟C龠CꜧCꝯCꬷCꭒD𠄢D𠔜D𠔥D𠕋D𠘺D𠠄D𠣞D𠨬D𠭣D𡓤D𡚨D𡛪D𡧈D𡬘D𡴋D𡷤D𡷦D𢆃D𢆟D𢌱D𢛔D𢡄D𢡊D𢬌D𢯱D𣀊D𣊸D𣍟D𣎓D𣎜D𣏃D𣏕D𣑭D𣚣D𣢧D𣪍D𣫺D𣲼D𣴞D𣻑D𣽞D𣾎D𤉣D𤋮D𤎫D𤘈D𤜵D𤠔D𤰶D𤲒D𤾡D𤾸D𥁄D𥃲D𥃳D𥄙D𥄳D𥉉D𥐝D𥘦D𥚚D𥛅D𥥼D𥪧D𥮫D𥲀D𥳐D𥾆D𦇚D𦈨D𦉇D𦋙D𦌾D𦓚D𦔣D𦖨D𦞧D𦞵D𦬼D𦰶D𦳕D𦵫D𦼬D𦾱D𧃒D𧏊D𧙧D𧢮D𧥦D𧲨D𧻓D𧼯D𨗒D𨗭D𨜮D𨯺D𨵷D𩅅D𩇟D𩈚D𩐊D𩒖D𩖶D𩬰D𪃎D𪄅D𪈎D𪊑D𪎒D𪘀B!!B!?B..B0,B0.B1,B1.B10B11B12B13B14B15B16B17B18B19B2,B2.B20B21B22B23B24B25B26B27B28B29B3,B3.B30B31B32B33B34B35B36B37B38B39B4,B4.B40B41B42B43B44B45B46B47B48B49B5,B5.B50B6,B6.B7,B7.B8,B8.B9,B9.B==B?!B??BAUBBqBCDBDJBDZBDzBGBBGyBHPBHVBHgBHzBIIBIJBIUBIVBIXBKBBKKBKMBLJBLjBMBBMCBMDBMRBMVBMWBNJBNjBNoBPHBPRBPaBRsBSDBSMBSSBSvBTMBVIBWCBWZBWbBXIBccBcdBcmBdBBdaBdlBdmBdzBeVBffBfiBflBfmBhaBiiBijBinBivBixBkABkVBkWBkgBklBkmBktBljBlmBlnBlxBm2Bm3BmABmVBmWBmbBmgBmlBmmBmsBnABnFBnVBnWBnjBnmBnsBoVBpABpFBpVBpWBpcBpsBsrBstBviBxiC(1)C(2)C(3)C(4)C(5)C(6)C(7)C(8)C(9)C(A)C(B)C(C)C(D)C(E)C(F)C(G)C(H)C(I)C(J)C(K)C(L)C(M)C(N)C(O)C(P)C(Q)C(R)C(S)C(T)C(U)C(V)C(W)C(X)C(Y)C(Z)C(a)C(b)C(c)C(d)C(e)C(f)C(g)C(h)C(i)C(j)C(k)C(l)C(m)C(n)C(o)C(p)C(q)C(r)C(s)C(t)C(u)C(v)C(w)C(x)C(y)C(z)C...C10.C11.C12.C13.C14.C15.C16.C17.C18.C19.C20.C::=C===CCo.CFAXCGHzCGPaCIIICLTDCL·CMHzCMPaCMΩCPPMCPPVCPTECTELCTHzCVIICXIICa/cCa/sCaʾCbarCc/oCc/uCcalCcm2Ccm3Cdm2Cdm3CergCffiCfflCgalChPaCiiiCkHzCkPaCkm2Ckm3CkΩClogCl·CmilCmm2Cmm3CmolCradCviiCxiiC°CC°FCʼnCμACμFCμVCμWCμgCμlCμmCμsD(10)D(11)D(12)D(13)D(14)D(15)D(16)D(17)D(18)D(19)D(20)D0点D1⁄D1日D1月D1点D2日D2月D2点D3日D3月D3点D4日D4月D4点D5日D5月D5点D6日D6月D6点D7日D7月D7点D8日D8月D8点D9日D9月D9点DVIIIDa.m.DkcalDp.m.DviiiDեւDմեDմիDմխDմնDվնDאלDاٴDبجDبحDبخDبرDبزDبمDبنDبهDبىDبيDتجDتحDتخDترDتزDتمDتنDتهDتىDتيDثجDثرDثزDثمDثنDثهDثىDثيDجحDجمDجىDجيDحجDحمDحىDحيDخجDخحDخمDخىDخيDسجDسحDسخDسرDسمDسهDسىDسيDشجDشحDشخDشرDشمDشهDشىDشيDصحDصخDصرDصمDصىDصيDضجDضحDضخDضرDضمDضىDضيDطحDطمDطىDطيDظمDعجDعمDعىDعيDغجDغمDغىDغيDفجDفحDفخDفمDفىDفيDقحDقمDقىDقيDكاDكجDكحDكخDكلDكمDكىDكيDلاDلجDلحDلخDلمDلهDلىDليDماDمجDمحDمخDممDمىDميDنجDنحDنخDنرDنزDنمDننDنهDنىDنيDهجDهمDهىDهيDوٴDيجDيحDيخDيرDيزDيمDينDيهDيىDييDيٴDۇٴE(ᄀ)E(ᄂ)E(ᄃ)E(ᄅ)E(ᄆ)E(ᄇ)E(ᄉ)E(ᄋ)E(ᄌ)E(ᄎ)E(ᄏ)E(ᄐ)E(ᄑ)E(ᄒ)E(一)E(七)E(三)E(九)E(二)E(五)E(代)E(企)E(休)E(八)E(六)E(労)E(十)E(協)E(名)E(呼)E(四)E(土)E(学)E(日)E(月)E(有)E(木)E(株)E(水)E(火)E(特)E(監)E(社)E(祝)E(祭)E(自)E(至)E(財)E(資)E(金)E0⁄3E10日E10月E10点E11日E11月E11点E12日E12月E12点E13日E13点E14日E14点E15日E15点E16日E16点E17日E17点E18日E18点E19日E19点E1⁄2E1⁄3E1⁄4E1⁄5E1⁄6E1⁄7E1⁄8E1⁄9E20日E20点E21日E21点E22日E22点E23日E23点E24日E24点E25日E26日E27日E28日E29日E2⁄3E2⁄5E30日E31日E3⁄4E3⁄5E3⁄8E4⁄5E5⁄6E5⁄8E7⁄8EA∕mEV∕mEm∕sF1⁄10FC∕kgFm∕s2FبحيFبخيFتجمFتجىFتجيFتحجFتحمFتخمFتخىFتخيFتمجFتمحFتمخFتمىFتميFجحىFجحيFجمحFجمىFجميFحجيFحمىFحميFسجحFسجىFسحجFسخىFسخيFسمجFسمحFسممFشجيFشحمFشحيFشمخFشممFصححFصحيFصلىFصلےFصممFضحىFضحيFضخمFطمحFطممFطميFعجمFعممFعمىFعميFغممFغمىFغميFفخمFفميFقلےFقمحFقممFقميFكممFكميFلججFلجمFلجيFلحمFلحىFلحيFلخمFلمحFلميFمجحFمجخFمجمFمجيFمحجFمحمFمحيFمخجFمخمFمخيFمميFنجحFنجمFنجىFنجيFنحمFنحىFنحيFنمىFنميFهمجFهممFيجيFيحيFيممFيميFئاFئجFئحFئخFئرFئزFئمFئنFئهFئوFئىFئيFئۆFئۇFئۈFئېFئەFําFຫນFຫມFໍາFཀྵFགྷFཌྷFདྷFབྷFཛྷFྐྵFྒྷFྜྷFྡྷFྦྷFྫྷF′′F‵‵F∫∫F∮∮FほかFよりFキロFココFコトFトンFナノFホンFミリFリラFレムF令和F大正F平成F明治F昭和Grad∕sG〔S〕H(가)H(나)H(다)H(라)H(마)H(바)H(사)H(아)H(자)H(주)H(차)H(카)H(타)H(파)H(하)Hrad∕s2HاكبرHاللهHرسولHریالHصلعمHعليهHمحمدHوسلمI′′′I‵‵‵I∫∫∫I∮∮∮I〔三〕I〔二〕I〔勝〕I〔安〕I〔打〕I〔敗〕I〔本〕I〔点〕I〔盗〕IアールIインチIウォンIオンスIオームIカイリIケースIコルナIセンチIセントIデシIドルIノットIハイツIビルIピコIフランIペソIヘルツIホールIホーンIマイルIマッハIマルクIヤールIユアンIワットL′′′′L∫∫∫∫LアルファLエーカーLガロンLガンマLカラットLカロリーLギニーLキュリーLグラムLクローネLサイクルLダースLパーツLピクルLフィートLベータLペニヒLペンスLボルトLマイクロLミクロンLメートルLリットルLルピーL株式会社N(오후)Oجل جلالهOアパートOアンペアOキロワットOサンチームOバーレルOヘクタールOポイントOマンションOメガトンOルーブルQ(오전)RギルダーRキログラムRキロメートルRグラムトンRクルゼイロRパーセントRピアストルRブッシェルRミリバールRレントゲンaصلى الله عليه وسلمোৌୋୈୌஔொௌோೀೇೈൊൌോෞဦᬆᬈᬊᬌᬎᬒᬻᬽᭀᭁᭃ𑄮𑄯𑍋𑍌𑒼𑒻𑒾𑖺𑖻𑤸 ೋ ෝDDŽDDžDdžFلآFلأFلإF가F나F다F라F마F바F사F아F우F자F차F카F타F파F하IメガL주의LギガLコーポLヤードO참고OイニングOシリングOページOポンドRエスクードRファラッドೊො≮≠≯ÀÁÃĀẢǍȀȂḀĄḂḄḆĆĈĊČḊĎḌḐḒḎÈÉẼĔĖËẺĚȄȆĘḘḚḞǴĜḠĞĠǦĢĤḢḦȞḤḨḪÌÍÎĨĪĬİỈǏȈȊỊĮḬĴḰǨḲĶḴĹĽĻḼḺḾṀṂǸŃÑṄŇṆŅṊṈÒÓŎỎŐǑȌȎṔṖŔṘŘȐȒŖṞŜṠȘŞṪŤṬȚŢṰṮÙÚÛŬỦŮŰǓȔȖỤṲŲṶṴṼṾẀẂŴẆẄẈẊẌỲÝŶỸȲẎŸỶỴŹẐŻŽẒẔàáãāảǎȁȃḁąḃḅḇćĉċčḋďḍḑḓḏèéẽĕėëẻěȅȇęḙḛḟǵĝḡğġǧģĥḣḧȟḥḩḫẖìíîĩīĭỉǐȉȋịįḭĵǰḱǩḳķḵĺľļḽḻḿṁṃǹńñṅňṇņṋṉòóŏỏőǒȍȏṕṗŕṙřȑȓŗṟŝṡșşṫẗťṭțţṱṯùúûŭủůűǔȕȗụṳųṷṵṽṿẁẃŵẇẅẘẉẋẍỳýŷỹȳẏÿỷẙỵźẑżžẓẕ῭΅῁ǼǢǾǽǣǿẛǮǯᾺΆᾹᾸᾼῈΈῊΉῌῚΊῙῘΪῸΌῬῪΎῩῨΫῺΏῼᾱᾰᾳὲέῃὶίῑῐῖὸόῤῥὺύῡῠῦῳϓϔЇӐӒЃЀӖЁӁӜӞЍӢЙӤЌӦӮЎӰӲӴӸӬӑӓѓѐӗёӂӝӟѝӣйӥќӧӯўӱӳӵӹӭїѶѷӚӛӪӫآأإؤئۂۓۀẦẤẪẨẰẮẴẲǠǞǺẬẶḈỀẾỄỂḔḖỆḜḮḸỒỐỖỔṌȬṎṐṒȰȪỜỚỠỞỢỘǬṜṤṦṨṸṺǛǗǕǙỪỨỮỬỰầấẫẩằắẵẳǡǟǻậặḉềếễểḕḗệḝḯḹồốỗổṍȭṏṑṓȱȫờớỡởợộǭṝṥṧṩṹṻǜǘǖǚừứữửự῍῎῏῝῞῟↚↛↮⇍⇏⇎∄∉∌∤∦≁≄≇≉≭≢≰≱≴≵≸≹⊀⊁⋠⋡⊄⊅⊈⊉⋢⋣⊬⊭⊮⊯⋪⋫⋬⋭ᾈᾉἚἜἛἝᾘᾙἺἼἾἻἽἿὊὌὋὍὛὝὟᾨᾩᾲᾴᾀᾁᾷἒἔἓἕῂῄᾐᾑῇῒΐῗἲἴἶἳἵἷὂὄὃὅῢΰῧὒὔὖὓὕὗῲῴᾠᾡῷऩ ऱ ऴ ైේゔがぎぐげござじずぜぞだぢづでどばぱびぴぶぷべぺぼぽゞヴガギグゲゴザジズゼゾダヂヅデドバパビピブプベペボポヷヸヹヺヾᾊᾌᾎᾋᾍᾏᾚᾜᾞᾛᾝᾟᾪᾬᾮᾫᾭᾯᾂᾄᾆᾃᾅᾇᾒᾔᾖᾓᾕᾗᾢᾤᾦᾣᾥᾧ𑂚 𑂜 𑂫 B´C ́C ̃C ̄C ̅C ̆C ̇C ̈C ̊C ̋C ̓C ̔C ̧C ̨C ̳C ͂C ͅC ً]C ٌaC ٍeC َiC ُmC ِqC ّuC ْyCÅCṡD ゙D ゚D΅DΆDΈDΉDΊDΌDΎDΫDΏDάDέDήDίDόDύDώDאַ5Dאָ9DאּEDבּEDבֿMDגּEDדּEDהּEDוֹ=DוּEDזּEDטּEDיִ)DיּEDךּEDכּEDכֿMDלּEDמּEDנּEDסּEDףּEDפּEDפֿMDצּEDקּEDרּEDשּEDשׁQDשׂUDתּEDײַ5Dاً]DآDأDإDذٰ}Dرٰ}Dـً]DـَiDـُmDـِqDـّuDـْyDهٰ}DؤDىٰ}DئDۓDۀE ̈̀E ̈́E ̈͂E ̓̀E ̓́E ̓͂E ̔̀E ̔́E ̔͂E ٌّvE ٍّvE َّvE ُّvE ِّvE ّٰ~E⫝̸FΐFΰFשּׁRFשּׂVFـَّvFـُّvFـِّvFक़ Fख़ Fग़ Fज़ Fड़ Fढ़ Fफ़ Fय़ Fড় Fঢ় Fয় Fਖ਼ Fਗ਼ Fਜ਼ Fਫ਼ Fਲ਼ Fਸ਼ Fଡ଼ Fଢ଼ FྲྀFླྀFデH𝅗𝅥H𝅘𝅥H𝆹𝅥H𝆺𝅥IྲཱྀIླཱྀL𝅘𝅥𝅮L𝅘𝅥𝅯L𝅘𝅥𝅰L𝅘𝅥𝅱L𝅘𝅥𝅲L𝆹𝅥𝅮L𝆹𝅥𝅯L𝆺𝅥𝅮L𝆺𝅥𝅯Â̓Ă̓Ȧ̓Ä̓Å̓ẠÇÊ̓Ē̓ẸȨÏ̓ḶÔ̓Õ̓Ō̓Ȯ̓Ö̓ƠỌǪṚŚ̓Š̓ṢŨ̓Ū̓Ü̓Ưâ̓ă̓ȧ̓ä̓å̓ạçê̓ē̓ẹȩï̓ḷô̓õ̓ō̓ȯ̓ö̓ơọǫṛś̓š̓ṣũ̓ū̓ü̓ưἈ̈́Ἁ̈́Ἐ̈́Ἑ̈́Ἠ̈́Ἡ̈́Ἰ̈́Ἱ̈́Ὀ̈́Ὁ̈́Ὑ̈́Ὠ̈́Ὡ̈́ὰ̈́ά̈́ἀ̈́ἁ̈́ᾶ̈́ἐ̈́ἑ̈́ὴ̈́ή̈́ἠ̈́ἡ̈́ῆ̈́ϊ̈́ἰ̈́ἱ̈́ὀ̈́ὁ̈́ϋ̈́ὐ̈́ὑ̈́ὼ̈́ώ̈́ὠ̈́ὡ̈́ῶ͆ἊΆἌΆἎΆἋΆἍΆἏΆἪΆἬΆἮΆἫΆἭΆἯΆὪΆὬΆὮΆὫΆὭΆὯΆἂΆἄΆἆΆἃΆἅΆἇΆἢΆἤΆἦΆἣΆἥΆἧΆὢΆὤΆὦΆὣΆὥΆὧB̀3B́3B̓3CᅡCᅢCᅣCᅤCᅥCᅦCᅧCᅨCᅩCᅪCᅫCᅬCᅭCᅮCᅯCᅰCᅱCᅲCᅳCᅴCᅵCᆪCᆬCᆭCᆰCᆱCᆲCᆳCᆴCᆵD̈́3C゙C゚Fཱི'Fཱུ'Fཱྀ'<0y_u%bw+syU7v_ VWS\J%!݈҅]%qMF}3jِ"s;:=2aH6/o#,-;[ Qwx'N?}J'ˇwf~t?j&맃\LaG>X.1ẋ)j̍F ts#PF 謬 kAbsWL-Gqb.6lkcZL9La\Į}Sd vЪ#OJ0+hshz~@5-vsJfw>7G9@>l4OtU[ s6!TYKKw bӓS+)cL$_JmɤO;N5F<+# >>QM[?0G({]BgAw;g$nꏧL'U4oŵ*Fk,* #ecwI-S}2!`{<vwV N&nuAYD,k0[3_zwE]{V/n+_Yf,9I %H,}sB$Gav݀x@+ ?8:we-}_J;TqxEb &}n䝵sdp>N+ava垓%=d %#hhwiҧ3Z4ޫ^87 $VwNC[ 7Vfmފ"(ʊ#S| .Kc% oig5U?ԼYSws+u5.tth["d|iJfϰ[BHn`&T.2skX]-'7"V)e*>.'[`ؼrK~V#p$t3 C]ăcOR@%BT5fחGwަdyp B e k.?uXI,|/#_>@MJy).AGoZgZH^rf< O\*K{&&M9olen%:6hA,uw"×((\TkiL6-wJ$X^f{Ym% 1z3)+Y]ٙN[]xAԢf^?a^5L.V}Get0;?ZlP*mbgԝa<)>uzGՆv0o/5*#=҅ jX3w_A5#Mj- d5:t\]>yhP-Svn.7i@X_B'|,G`J)'q/qHofw{hЃ(8m5@Pu mF+a1./#{KPQV㡈IIu˓1iv{s^]Y7جgkힴo23.*CeBg(bɍKP9Cc̖1YhVÍ{2a8uz&UK$τŊb9ZD_{Z.0*,sBjOIj.Kp^ Xo;Lxї-1KhC-,>RK0(#sS.۪jk=>9=h*K -HhJxRX@_̴2fj]^X :'pJH=`HYf♈ \sfۘG$Ga|w9i;**7C2$eOINz:  HdD~@.{‘1bm۹s 8ƒ }8V/eB=~,=|]Bp#.m9rK,cG |b}Gp@,Bhy̫cstfMPæ W8TS@pm;ʙ̕,i}[0CAw1NI2e -ZRA<~JW}j) Xl/Zh9]Iʼn'oPLP Mէ㬼MjAjoo[UˆBwD{G<7L>5=@:TM 3Es?;*1?@s4Y!,-/2ba3 r+^ -2Ը]uF#Κ?-.je=iU-8 lɱO? hR=a ll8Q'Cb*]r\)mR/uҺ !"2y@ *'^foQ3Tod lq ^B#y˲-J^:DpOς֡rdl cx>nxc 1qwutA] Fv@κI'Ii2/d""ԃ\n<[;ig>␚6\83Ő)Ea.bmxz: 30-Z1eB' U,ۭc$Oow:*gfQOx@xtlA{*NNͷ Z.H@߄K383 7&˓V\V.AtxLahLT^3eKTu qeȧ/Ĉȱ~o$YO0'XM\!@cai..H[׋kF^(A{i:tɹ)sb.97M!k5GI:U+ Z7 zKf&>jiT()'.4 ń81aؙǥ>Zxf8i'O:4Gh68tbeY*؅ zBU=rL >rO3\ZԳLݽ;g}AkM8Tj[e!vG#QԀ<8q) atXJ ]LLm$`jމ(@.fWG7tb(tk"@QN v3zB"QƗ)W{q1ʊ)U!uTH-\77EXH O t_-Wq@#U׺Ov{aY`Jo&It-KYZpYZW-rrZy%|qiwE Pnz!P9A;Ӛ+qO$ٰN%p&y$+= Uͳ d䯙Ev/0_<=d7b5o-Q1Z{ f k5KrgϪ`[y|rځA* JO\hP>- dF&$:!b[W3 ͢z;'0N犵km.*[l=Q`(ĖAKN .1phoɰVx*n!3~]Ms֠/CZ;Q)10*a!3!.udnRw$>Mm/JhAHQU!}aql*̓cdP.?sf1cK%8议:)7F`eb^SϐY^͗8/菷g0^])S92W: $|k(M&cGN,BpCL9"Ηվˮah#lSzS(B/̴Q31H¶KOɲb| r*TO5x0i& 뉩"6;by#;T&dn%X q7#. Z3ƪ^蠆*=y_2wbsG/d~u`I[0z/jC<qKWr7W*Ff0c\I\۴}ke~K+czVpWfLuzeDiaaH"']T)jYƜ*2]Czδb\I =6=TW,#H1uX fJP=a.ϟK'd_AP+Vj4.:5@ N[FIɄehBӕbu\NV Fs򮤔x7ƔuީٌvZQ*2nxVɑ?TmCg1H7M2XK!rzEa"_'dkܨ>mQsq[{7KCDžyEax̀=MUM qv@B+Q™z=ͻ[̤(M-M-VVD"yahX(\hblAјt@){YĔVRO,$.|P0Tl1pF̫k `7ӬOQ Q1*btS*svIO֬Qᦁe"s31ڄeiQml*Оv`[?&"hӆ5L*dܱ7󄡈ԟ߲%#l6;)R<,F-!U 7쪉u?1Z޷1t߱ Qզ+ a`hYEr+(j¤Jacv\GWt=*,~ b "4⠵eۜpMR?Vu0/7S+jlB &܀9/:7;sSj8]4.aᾨY/h-Q!M0.|^1j*r㠫 V'uk:3Pk%i=53 uo4^t$IP޴5O3d(wd1!M(ؠ@G҅j_xN'%f!Vl9 ϻ^ܢT\NL rѨwpgpjm>P# NN`EEkwZ ٺ4u>F1)dО' QZAI2k +Aa6Ba `6l13"")D=i~]OOhX!< `! s@0 oZw wgaȎ-O?>50$]^vKn>" Ss.\8vj@=0e.)a>3ߒ*bz ۮl.tZ5gF@[owZ<,{5`q@roz?q7YJ DP҇@SRD2Lb!|"ΦUA7(BZ ^LXjt5pܹN~&T:YK5!n^nj1AµM^4o cbaNoF#\=Tm(R۞VoY]nl&`ӳ/x"m׈JA)G2p6e?P-$^{ҟMB4l&62J9h0{l̀\ж왂I59^HkG׆a>`RH594v4%3&r% 6`;5@)7DžNLu[@oN?5Sq.R ?ALݫ3?Cwu:ۤ}(Cѥr<}mmlxoT+3Ce ~& 3ưm^%1\%W xS!k:H| Gݴ^HA=q nV=sV'^Dk椡4GUܛ 9\ъ*D=d}j ܋-ߩe o[afHRYi3sJ}fʗG-eN7z0o>Lr#JRoI(멒J{/x6\|* V 5iD%}@`HSIO位ZR~k2^D4R6 @; c[ JbX\>NV$Fwaٸ\µ(/p&\- ?^Vb=s:|Y3EO!<0m@|M0mb:g\~j݂NHg8Wj]c$Cnp\Av?ӎz STbt䭾fUyZP+DP 1b Oz @HX^ِ~X^RB.|dڇw}pZ4-R.× }->ʻ%Fvt$NeP$+ҁg$YÿUB83#[>oGPÖ7ak i4] @Tqr+>j(UZv9l <:ۢP;/(C,X$`BrT2e_:0rsAc紨{R)H<~e gTF&K}S BHN.%œ&>jDZg؎dq-S~EAџ~- I(k%ws2"I!KɔS{M$sJߋj VFU\9;-XFڊ/NGzjv6y T%usDWٝEPY(Հ!x^~qf_!K*J3v+w举-e4O\#8zo:5}ӌeު_S:cqj7_Ҋ u˟?0D/ e->τP N~[;7Tq]E\2װ̖G$aU]wAE18 rąPK5S-ȦJ7,4TtLf-]hB1gh`6Զh,mB) Ohwub~_K Yci;e*i/XpJ 9'6y*DF(dIabfG47 aα\D9ֿa<[̮g!AԤN"SZ #VI:K{wtP`q [b3aɸC G]Tut2jOJwRy R)mA |*b07y2tG}N k-z_s [ƪA[{2%9CUCrl['S2ţ] ~ZQ6\Û_Bdzշm]؛}HEH@>&=)ͣţ"0E?,?fxc)z?2̈́utz-=a4Kwtx,RB><<_=>"_ 9INcrk2Y9C|lGe0D0kulmTֽZ.˜~}uu`'C;<ѯ̱W)wQּaRZ1n΅ rz%5 &`jaֹM#T~Nz:<[vyJ$*Ţ^P:ܯp⫏L +" wm]slVݔ6&I.p]HXj'gpXMqSc,ɱxpkNa9E&,=KIR͡*2mrc+ޢ6w>M|r8x6y<{ԖT+c0ľzI gcGak㉆vQhGΏe?./= 82ٮ!ڧ\j]ĞʺlqBSza/^Úh$GҼ\|?Bz@LRXGdJN,×pBsI͘fQ.{a?Ӻ!7}/ne!e珥fɸGZ: %sK\XD~ eF =&H}؈9( n\GE wfykl'څ:Ӑ=Xbh.b|C {jCNN%m=5ΔC8~`ae@" ug·B,ְZ`Fn*;j{K2B]՛M|EjN~[lf1g|{ 9ՖWBsrQu؋D]d}߮Kk*/V/9 i=d蹰NwAOc$(Zho:^_'쯛W?"%BS4JmUa%e93!8{RTf 2 }f!v3P(5 wuݱiQ|Ϝ1< @_Q1H툇<+g͕'8 礉[D?2a"l[;c%{N1T_ OIu lx"pe5zG8H|8nǛksF^;B&!fJEk6^ O8cv1(UPHx' )٪͋50?G h:CO/h *TMՓeƊEaЌ3mXt)]çVXe."3diYgPybd4)m1ӮeN^T$(G qnP4uWE@V}&<2y}b1R [^5\a0a*p VkjԿ akj[uK4w~VLW1iΎex&{@>tt (aؕj꺫f4+}*] TIHC13 _1ӳJ抨J5EP/&O(9%Rf(Zz2Gɴؗa4GjC6=0K>c Iҍ՘Dl.wweOtVӥ;S%t78)n9dK&&qYc9kEq$^rRŸ*Ƒ9AVxF~1ٔJ/o/O|U# |tݻ'|U*R?-)P|ƲF,͑m6꾢@A$YzG$uFnDHxr0%c(P \ c9 8ymH>ͼER\*>x8xoUTS?3  d 5H7DO{ЩEz <)qgt)WZq@ErjBqyԪoki9FU)8̊$":fd2n(ZYV C@:zy *Y$veJJ^K?FReӞT0mzW]ܷM}8vhJ-v Gx][M6ynV 8%@7-`f &a Oe;OQch,u4kFJPQvu*V֛&ہP%y4SQ8_d`\H㯖oVDwj1ihBMm ੡廍Bg&1_&XH:6acfe-BmkcOiILV]Gw0I:/{ذ4 F\.Aw&r7<'Ơh|"n{`AU? @}(>ؓK ̸mP<ȩL8Ϯz\EK C&ؙTA)ҵ7T'ВR3˧j7 %Z"T-47 8f-c pZaq Q=\-H3ZSا}XqhRo;չSP-L3 $[fo@es%K],O05"F #>}qss3Y!fWd ߮]%' >4[=\u_~oTiI4H>XwA0˯!g/ouE!$k*"J'dX*e׏9;@L'qGFڋnG~@#j<W~90_dxJ_[}wPp&I׿!4: 4_RE4 0eӡ}ys_5q`gu޴$N%a^ލ?T %HHޕ"enq7B_󭢗Oy< D|[%1u+@A!!#U-h5[Ϟ^qo'HN ~< h>Sem.XqgA+ g%L u}W6*^PR$"=|..X/+L)g4[ְT F]xȗaɤafBB yndop%ŸVQq2KCRj" m2' N<&gNη<ȯQZ?}U_znX 7 r|õD8gݷxq#n9EMj2Khp^Kf}Ji͋p*\[i\3(pxǫt#K-SG]Zȟ eʦǐs6FgdPI7cH:ث)@ ( J3/WyPV?⾜%X_'45bHo'++S*Qq $v E:6kL|S@:`2q =ո8*hy]tڪUˌ~y^q aa㿁GyQwb֕XmTK(+k\\MVTRa`) L랪0yS钏߃t )̲D*ZE, VhKzV@YsaJ!(k=4ܚa8)9n^:ܲ!Mtr.;n\-4uԲбs` c(^aJ_R=I)OϚN+Í >lp]>e Kqy EYgnhZJfYF%s8O.;xt:z$ ^An1Z uJ~,0o|\KlҽS [+=9hUpsZl &v7YQShA0(pKޑ\b1lfzwը]b$95yzA=I,'#BĸG=JG*pB 볶D)s^PaG>&|_3r[ֶu&eJm.fd!ac@0Pp3(oh|K'f:/%;twT`J+lPRF4*>9UYau"!KEPxJuEԟ; 0>>t#Q+MH2i q̀bIcVwD{C'z,;P|#H%3/3gsi%YR4A& X)6} Gb %"55A10K"*[=clhŧRSr,8d+XCn }3Gt2mX47q|Q@_ee/?PDnRv~gcɝAi3LQ, ڵ^O{<C(Ŧ<~ fwg#ד@{xMsw{[pF$= C'8:D3DZZbC궣va2F: /jq[?tJx+jg^MLA"k'ܛ{[bߴwY[K,BоuqN"sJ7} u dz̃TNϺ9 vA=LM>i_3''1GF"4$[|keODjnZFzFZrhlgGF:3&͜ǁ+)"SӦiv-F$C߮ mlt`2#>K/- KE2>~+_f)|a#O&g~O\W2Q=JxW*Fc7PX0;Oܾ p ~VOq $6afD|\2/|f;N!v=@;1&IW#٩rF!(йf+9"daDP{2}JLNpq[/44Dzc힐(Ť,ш~3خ-6%l*C\B P`ZB]jhr-塙)Oͭ͂?/c_Yhov1,W0\ (HO]/uX,91fXnʐZLdh Iґg?jLvocJ x(0I$_yLW|a=_Rr~H-_ ;&L c@QFXj^d{MZt?u"Tg9yK,mB?rUU%DmnaݨhG8T^r /0֝CckȃQn敔1ygL-y‰$ ey$2REJ$ً,+1Q5N/?<3AC|[sqbQ<`-up\,i{yar]rrSʮV[ S5|+c4 F_[TrUb{\!3y A:(ZG* 4Tv97樲,]֎ ?VO3eJ~/Jゝ?тo4D:Ϝ1TyErI کݸtTC{1?\TZ˔Ǣ pg> lc!['v4Y^V$ I_pΘ$J0 w~k?~ratڶ ;Goޡ^Ķ9[Խ@DM~4nxTYr!c~t4rt6OW-L [|טQ M:fA,'qKynt>WK6n@PKF?u{ؘ m\-G;Q#ê~Rg9e` Ɨr.a# J/ wcrhDL\brkw&ydՑxh*s!#rhg+f;XѦ:m'Q∑ʰㆎd㪳8E$4C dX4$ufr 믫g'o-U&ɖc+,8X==hX^:@W<9?Dm{$>dž9y^cǕTO ck_~indкws,_t(zXyaeGe d 830tĮ`ŕmޡV3pf:LQy a S#ԓ ̺ %ٱ x~a1ΩnDK <DÖmw@M+[._ޖ^OIKY O lEoC`ϴ>ͮE v2NP, GrPf,$/2x1'Ô3=)1qՁ'B .6@6-zeZtĿ;i|J-x&2 6LBOP _Ԯ)7\ \C}aZ%?u4BjBzA=~Y kr'XLC jWϝe|ip"+nmNƚz'|5{i7U7i)DWt Ym3+EM}w-]gel{7:7%:C:5w|Ϯ9݅0^i3iYEY|Cfj~.db("0l6gFEʞ P=k>|U2![g0#vv:am:&1LBkz(lK׵(Hͥ8R`}DBxu\)H)m;- xQM 9Q4hIנN@v#Yۀ%̖:C?F; v!zRX zS0!@? ' Kna[~ ksf:)(j)a]1UV$4̪.Ɛd+ԃMjyyQueφk6XkgFѮSPp[eϲI-o@G7+ݒ Kt }܂݄`nErǠ)1.m/] ϣ44pQJBq+`ׂORknȞ%[8 {0jfe\#Xc~FӾ-FΦ bB{G7BW4፻\jTh2htaD ,_44]8zJV*UvDehRB^v T+\5ˏ/Oa#~[ IAB<,utgƸGz=Ӛ/7|*M µ-g*f e(Wv+1G ׭pK7KVst=0>ni.47JHK= 4qta-M40!C:N>xaWOr?Ñ? ¨g".w1i3>m&+1+sk΀_'O_֡oHkE]{)d[zPU*,`#\RD [}-TڮCQKeS8&6?@Pfk¢|4DѴEqiLa-=Z sMkOQ.E:PA $~M"EzjOң|幽cEF_Ϙm*s^ BBv{@dsT~H~J0zkҠ/O4bl\ ,W:Afai^/ \a`M =R7{oHr%9vS2ΰ1e6rV°BNAWAre>ţ7Luy<8Yg HdNa]by MÈBG}TxAI-w!,M$,KF|ev'u :H" .ռdPf^[uH,0@0 O{b. XzIҟ'̖Z;H4Y<~bb^Ѽbr[iR"k~D ",IzdK/.hA%ʐa4b'; [ -rnPw51}Q5_'x&m퀔T}$w| `9^pH\3īnSKc y_iZ('FO.޴鏢X LM | 毬miةP %Ċ oVHa[_U^Cktl',4$^Ք |p5 L,yU85i3\`pl~G/Dh= TTʫ>15p(ŕ:]^<ʛSe`jQ\\' ֞ fV?T6;*++TPrm!}P߻Il=*cB `|^oyF8J)xt=0ͧ#<ރ?,I+Ezjn4!20'P4GAy r5, ¦7A `Cmn[v~3J*FvG0A0ɳ3c{NMק=CU6)}{G(E W;#wtmt!̫czp=3eɿƸ[3<@K,'e? 7ܶJt]Ju%^*i |b%}2ol'v/#U&p-WxQ ˋrsQ,^Pش+F՚pW h*AxAfpE$m$LTh{[}b;R.P  [ uJ5**_b*1)?8*ߗǰf_?ТoLB|+&"rt nS.+S.ơ4,̛F,B8\O(UC XB @.K_޿4бǕ.=C8G6fBwa*߆OzB{`b_#$kzc uP_g<圑E3ݪ/PC*h*܋Yv(A*eMQ 3q9`b3{%ȑl?]x@8gJ> ZzUA2"Gp I(iz1m4+Pxq{HthX@eN}!(0;Q5[i6fJ; ]M=#5Ku3cNsDVxbWsIC$!]n{];[+*eU_7Z4z wp>TO7186MJ8]Td:8L.ѩ[PZ$N bS9ԛ)rpKTܛgT Hk01` <&XZ|G;i^1c:(mJGLxjbǏҀMf,r fzӄh7(XO)0vЏeͬU>U+pJ ʸ'4Rwa4kIķ{7DH=chc B^suJ'dzO4D"(+heH%56 J& f"(dY-tx}Y5*̕M gA|c/ye7ey_ G5@pnS _սp3\,zCptNLj (_nҋ"թ&/QچQvsvSZ[[ MR($^'Gm}Cބ;sv7Sd"u`4Z v!j;TЁ7ԅkث5FϙuQa]QYֆU1=f s\ yKA!d~'R X5GZ]DSi ̿@wt'{` ==R`)`U_>x _Ǟ+(`+0G'sYeIќ}!(9foIy=%V>?74K)p5(e. .:1 [諞m:}-Һ?j_;؇R "ntAO U%6s'f4 Y9?`V+L9^t^%o = \1lbF+mDQ]qSϋ@\s!8/hi‹.-',Ms=i xl *%~Wg`g?f:sܻ#暵5< 040ozPۙw'^ cysۈr6HW5oA]6ڻVrsB5Sv)ªT%\wU\(M舦TϺm z ȏ,u ;8E\ބ|̕uRP_Y]c6$q$֨Se2emZE˸B-S8#w|wc7Y|J`upekۥb?8sx ȼk4p W%F!`jLTr`6܌ي,} fGd#f\ l@$5_c٩-2e0Cυr 9X"$;YއP{YFe%pèM=yb7M\nh'~v^WLGRs#m:7]uIGeQ l$ӱhP`tb,ݱڧ9a݃vrf/vKu׉@]C[Sn%3bOw!yRE!rʗFJǛeGSu/5oyk5Q@y]e:ãi&JQ.UTl I[YJY>cI8T-sTx ..) j <Ų'u2sJw2~-Kd dKi=GsF`kCʡ:yN"UV K">@^&N2^pVY"BY_Lq)1haRAe"hcFP$ W0"!{<ܜ~r2# 8˻nic}2",@]Ù.T+}߱V{ݦɂJx1A9OpڳUlf4;kꠡ yCZG0SMYf. rh_rc2KC%hn o}+v zlTQ4p4blI)Z%z.xFSW5x` ߩLzR9}TƊRHHG?DXJ=6-<%UU^;G&3(\O][9:2i%ȢBjq+TE W x+хCh)d3(X? g;L4NڞҦ/O6N+awEy4 g[ׄホQ;-nCO4BS§@ݹVxpr/SSEf/lkKBPbgQ J6.P$t&?-J{&߀f5a˯/Hsu–_I׷Fѕ8nE Q9=qی.0,&]1ߐQP=/[2ȅe!QgBC!;YdϢ5zYbb 9ƌ&2{vB+40D4mEe F:Yj:fSN/{㺏̳m@:zldQZt%'ǨGw13\^d!`'"/lʝF&[<VL.o3Ѯ3d0VPnV9.WP4$![ ϔԉ.X R1 aS&v&*ooifkr 5tPEe쥹#}"J#ʕݘauȩ`tQ^2PF^WO%/v*\3o䝈΃`dis'5*A45ѭ huug}ɛZț2s2B)}~W4)诔 BCeAw.ͧQol3qVj_oب{e xq޳55 |U:Ba iqd̯!j6: m]jO-E'ʜO?䗩u,}P=2RzK1ۆe|0hF\9ӴEp>.MFH"lv LslH1TBRmqRrJMLf~?xJko8r gV5u f1xK yYX;iSKVRzQU׭=dX* g&NR1@}pcل0c~fUܜoD.+s+N9.qn@}u0%f?}Pi&_{u ޥ @mY33s>)xּpCh,=pFUa/(JɤV GS=_ _$7*xq?":n *UcjSj:$-| <uqHgoOs{r6yUT <(^_k M W;5jNfO&3\W_NA ^!`@ehgRFd.˼d; j z_ Gt5yZeL 2'| Xd*qC=;uL:@{_`]d46|u%WX۶lXl)z @zr|o Ƌ\5~Jv}RʫMɡ# ̑ "?j,4J2 ¼B/nt AKKsFV{@WW?6h'yx$3Ej%Tb~ z[m\dwzQi4_ +w}/\2w3^\  ,p-ȅ<Σ#3sVaA0k~Нsk8xAX)&ςOpi^/ øP%pZWj{Y/$(Yq=Fjǻ&6ݎ-WA;L̲:]F5gž4wd|klƼMd{b(&@ZK1De", =0{zaNs AYW|WM2KlϮ_æF̥媧y&N =vp)P-fnsH"u;f]WS ~;E!bfK2 YRoUCXYV07;mۉG/ɵrl}F9%HD0w|{VP1/+ԌnX~%ؕ>Qݿ s\wI ooQVt+RWG lƽk!W̢h-75'|a4Bra%VFqHe1j3/PAɪMq DXXwQ iOTm1 `DDd?;40G3($-, <5[*[rC9oWgaxI꫷}ұzޯ#aXӆfYtok]J{6 O1L 2'ʊ֥C@l0s||0) ӳ7[\%LRRQWa68yއ*i TȀ{(vfv41PI9e=ƟGS Bfا\X4;:g)XGDj{|f`욼ݟ{ig4FA /gJ!z2t<ĠeUOwKej `B;*es=;\]Zn'_R]Di] v F-l)1b2X 9cFͥB,q;uC#h/ל_Z)E#W? 2lR.N\xP㋫s 'c~e=^o7[IȒۻiAC.$oQZD%iI P*c+Hf F>WEp0uλbq۽ ]9^PzyWMCh,j5`63K;l-AWt[ȇ-:qt<ޔ["`ku+]|T5<3<>tɃA\}~4p 9JӷІ5p6`+'vJ SE)Mi#XIZ>{Lz~/Ƴ4Gh|ggO?'~^ى.%A}ɹaǯSYga& ]*g%@+91Yё$t<;#A}?n#p(`IbcI+KeU6r-m_vV"^l^ XD{p7;G*,*=*w{Z0 WNd.JJnRSJ 0#&âjt(@L)d1Q ZQHV{YBTH:|q}Xee+$$z˖Yۊ3ZQ`uVȱи(qf 7A*#:p$a hWiRCTM Ojѭ o5UOHN.8U} n/෵I&vkN`m'F6Ѻ`(K|!Ȓ-cTЦLG.HKrQ`eF!d{iuН2.lY[Ndhsev!#^^UrƮ`ªB@3f)-=uP#3HЍL\cQA\{*<|Bfl{$=O 2.`Ch. (,R/l%x=^DC&QC24U gi(b'WJzuӖ?P #8$J6"t堍؂NƗ.uPp5P2Akv;Sg ղمJ-4:/RIv;I[ iBT8ǝhD}*x@?,ߞ.𲳷^ 6#0 bH0/[vS! e=Խ{9tӟ Y}ܦ6H]<5t#=:xu1ojìخPQl mli, ~~|bӡxhw-z3bQa:_&o'(.<R/Qs߬}MFD~wtd!j(YU^JhuYNdS;Vp NLkt܂z˾l}&ka-}8SAOup7YWQa:B A͡E"Y6Lq6~ğe<4WatS O+oX#Qs\>ə0BW-:q1e߀GrJPf[TSA:jdyA yκy)6"B8]v)kmm:nZ]u  [l߈ʍp8ˌί5"c j=Z5,%-yebbs'(D38,Vs1hs~] ]AH|>98Q6GUr"!agn>e_Juǵ |+?~: Pr)n~@wpAL(# jʋq (%ւjg45\si3~t&Wab}{qkxӿcstd5)6'{V71:e6Ȥ)+ϾBiY]O<T}J$Fo\%, 8ƼE\DkmY:~ڼj^(?;꟤wE2C*a4=1OOr`43I1H:UepIVJ yRFEOTmiޢ>u"Ks@@΃z?މk5R7pyGvgNR< %{tGL1gL;zo&ҝ)nWlHCfg#)4/ϓ`E^[׋C[M?>5]|Mh|~68#'FSa␩ov3yWACb}0j}߽OcaӢq^e1[1W+n,w'H3Uˁ%"p4 Z. d@BI8 U6kV\fDŽm4K2yzr't#lmV~8vP~Nlܰ .F'ݺ9H$eyj5yRE#`B@MB>hc[N忰[2MY9Gaa*K*g% =ە8"jvs5CFؙ$* Tb)H5&q]h+g>ј Aa%N`cY]I\2Kg;4*j>g)^Ds's( |}5~.*waY|zJC{J!n"ZXȄzx$4T{Aܐߘ3$☨J4v—gvey=ѠYh}/pd]sQdUvQkN `NMKq@e {D|2q Oϵ3 kNhH-Ni}G'$B?)m)0]JxM~R^i^+rM*Gڐg-1Bac\a/]îN/t*$ a]:#gmNtwr\҉΃ f zקJM0L (-(wBRxV‰b![8R'_kg+I$N/cya60%u^&[.7IVH3WUD[s.s3* h71˿RQMBӴDJ$B,pr0?蜅Q<1Cx=פRndz[x-L*Dcv.{-;r' |8ǏF/o4\PFaf75^Vd>:ʈ[I`S״&/>Y^f7 .L|nx>roH#coYp.XDv"trc04Oo r\%Y|?]ƣzh=jRH2'G? C)6DLaq, ! ?΃3hn2wY ZK]#.=u 㶻_<~H8*$g#8lu#-X":^PuBe(Hۓ^p;c!.ى$0j-q ;c ov;]̥}QŏJh3?y51#k_tX3[wbo}za/J+æmޞwc!_@RV8V<g z"U}Kf N@UIρY2x#IٴSCր4؄H05 eG0e 8E;O ?q;5J$pFܾ|y?t(#򸭅dgcTW 36"y>W}_(U֬ hؤyy#_Dg^HE(垸aH՟ʼn7p% )o0Gw.V2k{39%&*yMBt=D @kN5iK! srBt+cltFsĕbޣ; ҾߊxDD\|݂&X|c5=(sG!&)tIPwIah5~"%,?~ΑۋkV+S:xNAlِ%eyu~%W  g @<:nqk1p澦l2AV5`4J䉪j5 Fuov=dыbҲnqa]JQPb}ς P#6?v Hp:k~RzXRnr}}bnxkncCT;ho/LU!'Ɇ*`IUߗ/1'|,1*<9͂aĶ(ue^hd-'Ά:`|)\CcB*ZH""be G;21dR6N@;=C#dm>=#.dKOy1 X=}gilI_;`y:6[Jc Ep)Ы;ZV pz?=o2s~J2U"i/)parlmRnTEOIt9<+1/梹#Hg Xmc,I~pF,r@N4fjzE7*@>a<v'\|gFht!(mQO$|O7ÔI !g<%  MAbªPI4(mZ]KGj* xh5:udSzqlG(J?`єͳ'kRRs[d+d BTp'\)(9RCj.gںs+PfL'/Ct;@'h'WGvih }my[l^4# IC҉>z1s[=ZHk$GTߌybz$=v)ӟ-DE c'hz(5zeT= OCcEaO;ФwD\}|ҫ%Wcc׭c~[s.7Νqj<[#H2uΫ l dEĪleY-!)gגpsNlN!, nl~R,LÌ1J{_f \&Z.ex[c^X9S8~/-E7AP hiG+gCGNEkIj,4`6*bl @>cmr #QrN@Hl;Zf$'|"*fG"gdL!umFNzw9' 6>X.Z_9 ߢ9e])~/&nMᝍS-~BB,ec3ݫ uv%=|lZ uR.0Þ-{58Q=_ td(_QޫQtDȸX MR(cu Dgl2,B.6FP]v_G Bime#@N;xnN#a `:Jʼn*^N^,9Qf)1m@]y 8> zNȖaum;iS¯/c$opjnB775wRYc$M~g t]Wv%tQZCɡ3AU9aY DsiGqFKhSMl7h]W·ra%G+^ qv4 <+e,@8V}шS9}4mE+oTcg??z"%ȃ]dW8-nw SFt qlщ)=-\^3`E<+)Ը* GŒCGg1VN( uLGXy{lbPl" NbH<`2'P\)T%FEƲf֭wbW?Xo9 J%R=Wx-zM~XOy^ qeDTd5K9k;1=i`mVqKW/d[HIC'W,J HϊZ)h3>}Fh_UgIݽC!(fT 4\^y죣!>lGӥ촪6_}4`${/ R*kP`/Wb8<\M! EgTz,F]߿coPv"*3^A@KA *kTU4'E{Q)e֟!5 N!e)C2;*M!{T^-_6M)-J"Y\9Z!DXt%?9g$>D#ucS`۸!!fPU7L{~%O.{|h5Р2Ï^tLp/_8› Zq);䉰Tқy M`p9N^WI8^|\? r|lv&yTZ`ÿxZQB2HVǝz2TD( pQ5"+K9h'={iKql:.o<wLB˜ gZ3$q3Lc19 6?:|J^y.͡~Ӆ=hA5- 1*HXk1T'`B55av&.)%>OzY,*z-K˦ h(Q⢰m{Rʺ<1A@j<K+_)*^_yZ.Pj/Z%هʐ6yΓ9֚<|Ӷeid 4 a] ?߰q@+[7Ӵs/Y=NBT47m).h^5+ s?-9ims1\UxBV,Ъ5j(p%)\?*c4=}ϲ0(6*k ˿?dNCO.@&ΊlĶl)=XrR%= aRF]0> ˖\$zߋDYq#\" G5Ԭ ՂVE+rEg 7-t$F&{vDEf|/a?`I ޓTsF;g|w)}V'k E+a WTi>13| Hʛ|rB^)F|!9+tsV,S-< w}~\YzZGni))t^8zy?7aiYxrz`r4 |YgK~̟nz;r)x:L4磉^V..Q{I]>.#]Oy3 ̩$p` HM{Y׻rcU pL1M+F2l͞b>3:ݰ9×+TϰIUHgoxu'ḀNV?iiGZ/q,T xے c&ɊG$ jH$`?;&Vj"VNR70C+%xm峻`@HG.I 6uMcy mSl|ЂuòJo#"\hY twZJHɾ3+f2rsYNmh1\$zN( $Wd G8zk` ͷ?Ƕ $# awO8:f畆~.b=JFKZCw$i3=+IX:bL=5>?}NEa?d86LeN__Pe@\IebP-Gu țΑ5ށXIpO:g(_ꄓtP 0Uv1tUil`rгH|\Tezi@Y xP&h&_ez(|6e >fP M8.MVEjwfrfqwBh9Vwڑ&g0?$ {ȊULtQfS}IhdFs!thjTb:> RC귴#e5%`aZWg u}DEP!bxo/wk09 1ljy-~gr\{ "rj3O)5cEG 8n/GI.›)n2''˶~~IU3~i/j4su$L3|x_qn> NfftWEv*3Wn޵Uʛ3֧#`BNRR^pU?z " ?cUSku0o(kAXS;|/wMuoO@;\0N.l܍)͢Π@44K6m|t )R¨ vN.fx4h^%G^D| dq^hl>^R=,s>znnF[&+c|DݺJlsvl2,9 Icю,i3/ J+@9ǐ<-W MƘ($ũ <ʞK{5 g8}%lmdӚ(#X&˔i[(V"^Ogk/#>IHpXQ D=pp"bw{,+(m7Szpi5otucSqʃԿش\Ex8AG<2K_Ɍw w^r.HR5PT釱JB瓊mPrZ-܀ hZ1<)lBd3c0>d/d{Z&KfRZF Z4~+/VĥtEDY}I5I#6@VIQx7bj\0C7ZVMiܸ4Q ptBmmC'fp[Xo I+ѝ\>`ķ?üQ*9/p-2} Q"ȺTxNiP:@ )49QTOY j8ʿ4ESl]ƸR4TE@[=-ZAJ`HU*g0\f7Ys5}lTe)vF'l k/.fG"A;ՅzQѧv}'܂_\]Qacg0SڨKĐIY>aӸ0hהC.Ȃݯ[_߭7CtLsq;.E~CBgXJS,½CQSk|Ωme$d\6)枚[PSpao?S~jJ绔< 9vrz'ɿN] PF#Gw  |K=iSF뉒p9+MD*qi?BjL"BDxPTr]T%ajx%ǝT M&=BB NYW z!Osy6.)z~lt3ʐeo!_UEaxAXoB4Do46UZ 󚣙VYVoЏhry `^i'a͂ݩcl=5}gLt7V1&YTN)USno.s|DbگeRϛWGu8} c\rS, ԏ߷|ht#\@v6,9(}ZA0xoaC^Wu#(gKORbve@V{8u',*\8n3Å~/;0q!F_8[[f%g}0x|ɇw<γWTM=U*=!Ͳh䉒ӓ":!ˊx?(k"5i)tB5- :gaOu Vq,h@]""#pD/NX%cTQYW5m/Xkh8]r~s-v7b__d3 r7w +fR̰ѿD!F{]h.w{v4}#H_v!C ;rc&v7M)WkR;XHӭ2H &=8PkCG4j\Ӯ;NFҡӃBzAhRKռ#N0$?$6nCam ;j&|w-E}R%aBFK{(KĖK/VTRǓe JI#?,SHi]xbkV4$j.$dg]i/HB'g] !Q7e٨% ED9jGe} dYVIw6˅pR05=kuƘ=2bNjKޜ?AT0}dV+O#-%+ wv4s>}Bn+|j:司Nk*wH31Cqf2NerF?AH..q-,l@P6&Bap:X`7$|1T&^U0 e-BWGl}_O-dAs\c:#?dCZxӜ5u|h S.u=vJ\7ϊUL2=D\ÎK/bd'MI{[pQ},v\ y}2~}0bYkg"fn9&z}ElP$ZuW`12ȏ}3M-d}j˥{ۑeWA%=@՝Y0vRkZhi#s!BGQj|<+UzI=nZ W9{ucIy#8Ћ01Su3\۪wOUigi<3Ng/Йp/QQ먪͎݉g"tԕ0}El Yz1_|'BNu! n{S$ ,2y{0x0<6vm oi=Z>O zpOXV6޺qs +G_O@8y3R(J<юdFv.>6c6 Sďsp4U^89"I;6%ɹl \ېIߨ.|%\ai':$r4˧ f$^LakIvbMs 6S, 4eLMFJ<m?ĥ[ͣDIQ`+k/NxvRsXIl.~Tbik-ejB#W{HˋCyؑ ',can<\EH e\|y3K ^lR61/Kb9{Ag{'y6ȎO6nn#l |R3m& u  6*l$$R^uʯf}ְ˦PN[iC4yIɞ 5,fR$Ui1P`"y\#wQ'y0iY įJ,O?VBH;jUVכс,*J4DyD&Q_@sif_l EUg)~oq/ݑ;-3v/n?CwDF t/x~刨,< F x[ǫqRQ(N< OI-x`@PٷTy?2,h/P$Phq'5+yf !g>\Lgp-դ ]i\s\ބ'%cRr/ “5/ 8cB@NɈ,{%Q~l!Zd}WsmQ9:izT>:{v L³)ܦ-kBDq v3K Ǟ;X _ixЉCr d(1tA@{|V͠dTˢ Ys mwof 8H, N$EK3*bE˶J3Ag{;RY` pVڄ>VXW;w}TKR]0$}?v:X&q5}nS1 ͔>$A, A R̙WmD_h#KIC~ZxfB`i|78%J,&!{A_tʸWQ-/Go1&p\6Zf]V]tWZ_6Rn~=Uv1qcĭG8%N"1K'yߪX坤QsHXw$a6&Jj;%δtD^]L:oCk]"M׾\Z'aݪhe[OH/m V_a|I5{pXQVmE⾹\7fa. L=K XEL&ސi? 0/]f!r$+RaC Tb]mq!wQ{pH6Knf\/)Ŧ͔/W4ul!\  c̮ ):WܜHϞ6D2'O?#7nRx!]148XrEWٿ dtnw!Sn@^S[L`"f/ α{3wU:r; wJbd3GB z9ծ] Y9e5(S*xE.݇.Ƙ1V[r'HAN%O?rPU * ܾ_DTo 1R P7C̚4 }BOT%s*4"2MR'Oo2.%V"YRX EDZK7!Ji!gV#. !:\snP3JA&uDiEU㦂~mC*"hƗ@r-_27D ^gOvJ:ӫ-*`yN":#( 8oxxis1-i+QDnNV O:e"(G@KCsJ,*qgLBOBl\[ړY1"}UVܓն+B@LZ/2e(^#:IFEqm5}s0z妭ߠNw$kCE2A'̗wf\b+bꩮ]HXR}¬W\Q jTFK~5MM+/jَӧvz뻠k*5D>I$؍K$1JL23 n9>m>E5AYe=@80^ޛNJAohRBJZ7&_5Q2m?RϚƟ %/ L\ԫ0)"{PNwڜ-kz:y1M]Kr*p847Qo(`O:y7@X0|% t+uK 8D*,򽅲"<(@F2np1`rwm05! Y11 "s6揹 PXJ?kaW'oXH8;vqK^Z[F=]F1w wQ{'bm(.HmPcX \;N͗;8c VP=yy5x!^5/ѕ7B/ù!=4ksOBɿlY-N;<0TBuGk7}3^bY ]07Y=@W'성笒`LSmFcIr VG}qXԐ6㣍m@@v6õ7ryK:՞g;ؼ^Nijvm'v`tbI<S%TPk+LOߦ:iN`IJи c_$D,!ƪ ܮRRVN pVs#l]ڣn ͨɰOt  o1yd jY7W"kz߂ܐ/CQ6p],ť٠{ ڝ|;>GL[D55՟SN8+F^}wsG>VW-F7 i.='<8% 5l)Է {Kgı؃3q,A+>^Ck Lڣ`$,Y*“ Z-D:p1붇2e*0 u8|DP*L\lm(2(:ܝ>ieA̧k "\$i kj.Hc->G`?pFǢ׊d:n Ul~4MX}mfi#_@) GFij>e$ hΧt2P#&lKLaΉC&[tT1/$v{?a#+J5TZWT.d6!)VHUN?W?%X2ʕ\/~t|d W-8 ?:g°-'4ㆦDFĝS.ԙ*HX7%,gd&+>9\t["lc-dU&c^C7C.cXIIjI1XIU<ޑ 7pQM9GX8A%(}~C[ϑ' w5'^Etu>p(2937rU#2ܰ" ǹ[==bRJD6tF4 /f`ۺyV!N>2Zq8+ @ }_bu#dCn3AAEsVʈ&ԵâӞkOH'.Tcg [FuQQ"E>j'i]$BM?{)$=Z/qɑcuKR!i}фkn;W]Ȭ5TXVtaX~6&oŐʥw"vNX"n>]To$Wt%uG>ogj_"iśD|^{3M^m+Lry^j0inIȌ{QŠf& X+b?Wj5k+&8 :Ή$:0nȜO|B-&?bN V |c7Q9&GGJ\UbP0=Klv~ɂd1KVT||٫XmÅDߖ}z9:GGԯUm٤BvDݤ&lٌIX>Ps.r&„Ἴ,,hԻ_%VԄ+gd-L-cE -h2Ixb>7,o>󖯥?7g:1k#7)3S*٧$j;y%ϰĵf$?yWhe79^Rrz&N׸; 䦚YPMZ,)N=7U3 8ESiiDdbK^GK(=ts8JS5?)fE158 (4ƨF$=~_ڍPήwN=:&Ok!iGOJfhTL#5z{ִ7CʦKRTX3/OK%z]zWz(;R׸,ݢF.:9.M -Z5FƁKҦB`gՒ.piMTL(*_dĿ#ty 7_"rD4Ͱ,uYa^ com쌛a r) ^>o_n`JL"$mLB Q .[Y6)E6f⪂6A9e3Rq&Iu 1 ˗2cb:RODaU3{^=^> kgae`p5bdOB6&ڟAHv1 1ebLu}ѱI4TU:,bn"W^+z0 6}ϝL$th\d:4y'_WS̊H怅~P&)W}q/ g2^HC!zuWu ) }BzJ880j+sêX ^Χ˕xs7TAFANJs )+9dCK@赂9LcdqOh}~s*3۠YݽYRW2Mۜp"8%;yV7KVνv/' az7rCOBD fQ+qIߵiW&]3ٓ\g#{ghz6Y!yV^ʪ;qV!Qa W3i+,BxHhhehc3we\d(s${p m/s;DAmA>ΖZA:.h:/ԽFۺ~PRMLs|.T>Rzʭ7~ɑ2;ItUF q~jL.ij8ކ]?B2]쏼lxքXWh tǶs!5LW#g)[atXq[QH7(Juv!o32 &80M,,Ezifc| 9)*i(@t?VѾ9 T\ W-<*8MKЭk )`%=cә4ZMF\S¶1K"DAX1sI&e6ުg]S0r&u#. iE+ (nL h]jsA.FUn@cx=dXC_$BIb 2^FHԅGFuf_lq(y*|VEe\p(`J9lKW( 4X= {z62RP,9.KoDxpؘCLwLs*M')j|&\vӟ!{q $vZr6h[UO*9qv^ Nq'6/!?um>4nN?%YU. $zU0~WXwP},cܥՅnrA4?8IaGqi}Xd#Lfh(]f!)uN/*zj\HUH m!j- eFqߊs~c \ HԿzmdj5Z.=cds1Old-+m{ʇؠ_i7Fn`YN*z~0JG?'P |֤c~B@4ڋrTno?¶#ԍD*qv~Jn OK2 \H9.{b.3DA>|윊Fi.m:dk:xv/B0V|Sikkj8ǟӫ3 iS/[23,6@Z>nB99a`%I 9e4M|z=OzBr.h8hM$rݯLN\}@h·LyቮUȴeٰ|5[J.[c,,(|(:F&v@kMWr-/sz YUi2ʅHއ}$a`90_qu `bPՂP^9dúu)!MV>?>J4&F=MojLXl/UӫrxԒN ٔ;b|AҒ'$qBg\mX* {pw,!sT5w![ͨ*YYiXwdK0)vjX&WF/4M@ 8DJi(D4DX oELu?qաjF ps !yIgjIG φ"6s0FiH[q֭}!s8pɊ Ǟ)E]Z~(t}ֈ XF6d`C`-'=:q>*Cu'G^V2bs oc ҨdUz'>*NDb 넿8dS2ܺIquOAP}ƺ1's=%(nh0г;Zj09 :xA NS88&d"^66\ 쏍MH4҇C9|si5~EWZaH?IeÔ.MZK2 |Ft j,c_o3MۅT~zièN˧enqPOC/zt11S=>ڨ?\*/5dJ MTڻUno=jo $J߈j7$LHU>mA$_E*C=2jřg+C P(UH [UITkߗ)opٵ(Z72  1>hYT~+ ;GHoL"wWEȥ)(oE+vV\ي".t<|r[f pv]S_"smI5m3^foi3oά[i`|R,YqEe{5urt~+EszqvvmH=Z8Χ hMP&E!%]2l\³'Ng;zli.φ \jMfoa"u6H-65|<*8:DՀߴG[$jr<"F~~1FN\klt>} +̞h{/XT*wKg|N{JC+r"J,ς,6Yn8uͣxY$2mӽ-tC'wen4Ϫ>@b,I͜c+=3!m|\v*΅ e5n*9y;+ M)#`l.? țN~* )=}:7^)?'7@TXAbF0 8Syio$WORcHB+Rbɭΰcl}hGQ߭u7[%fK7gvL`Fˀc`ln&'zj(s# _d(+V0_Cv6Ag1Pn)"n 2"E!a3^WIl9Qvkm ;c|Ch)Lv8)? W9 Kݽ;d4E[B!贕`NRpP9hѭiyL2(db[/{a!d3q~7 }ՋzA ]M¥l)XqLnۙL6檪iNjdKoJQvcc92J%P|H*}㘏E\SQs5SDAâ] m/ie'.=7 26Ɉ;}YtllR=xeIEsdGS~]SVe.xjY VaN2;`%EИXE>2yq^ 6Bl-AMBD_QN]#hQrg#E q`'VZy䑔[(^pL*]O?#zJ4njJF`28)fkqTm_fC=ȌM6W'SdzXl%ނΜǷnyYn'1p)0 D7u? \֎Ç|$㞻bFwKޮ7vy GakL 5?й?c{,A4Wn>W0K~ o£ΓtV?K]Џ`j*v%SxYC# RoE$`>]sSsuI;K F'pYkuS2-4+{ܽi5BHɡX[`F)ղ~p)O Ej,YQ7WI6' 9*<ث 0;+섫YjƤh 2<Tm8ōķNIFɵz |B8Z"h$/cD"D8}x_3Xܔ I&ckRAdX%wFxHp)X?;!|pkΠ81k&T h.$@b:Qu%rۦ 7K-6IqJul\/J 4%E_W3|\$1Y5sE~6 z~g0 (KD35;0 oRE $( +215wN!sm2gxv>ɕtTxl˅дz NCE 9CVܙ 1w%ҴWJ׬%P>h؟r;ݍH.aRdTᴫĬFl 6GwC@)a?4%T%yUߖL\Zż,A붂Y,ݪ•eW.'ӮJwvh"76l)!wĂr~6xp V1U4s~^ԒaR#4u%3RkUYiu{t^؉XFlepn0\ C0OødV1&]w7jfn׋s mS}k#y"jl$dْsqx(qV2HUOh%u'*" 6gAЙJD UX;7S*6eXu,xA~ #P0_?G0hRX P;w ٖ*'ӿ ƜٵJtzm8k@ }甎c,*80|3oxq}9/\U ?J# | %EvۄGTȓ;"|@xSdPugl1nG˲ u3~WMq?{N1O4ݵ cRl,ȋ  (E-"ay*W6$V>1RHԡ*1Sbqso=H*m $ˤA\ߌ3@ N60ozVgWI |5z=j ~2 ^f$/&&`/By,:&K -:}r%DB:~9nf+ t0x*݋[ z5Vgdn!ٟ-j;ML@8S^ۡI+ҭQ 6y뺭[Xz K ~uQbK!iݟ{Vʢ .s 3=ĵCH^yXMbJsj{Efh(H|89k(&sqf`ny2ƐFNffbN's Jtl'g{ k#9 -A6?S.>BMԳK:|k;CvrݭRT' ^@}uoP59<5kDD~'@/Md}HH+`E4F»lG?Cȷ!@g.Q_nVI2{-E=݁Kx,L9b㮫d1|xcgQA*zU:wQK/s@'0qo' ɟ)@E5>[Y*SILWQF{EԱ-؟#߇[D$uYb<ġp@3rEj$!E1w.U䋘UQ+sWN:@<jonЮ/4$HypYkf[ݶjR=硋ve*0IWW}lͬGk7w *?Q|d9>{|\YtP%)V5ĕ|TLc 2G$kw!pӪ㓥Osehr#M; u3Ps orn-[ͯHqw q}=pD^6ari{#w|+P'$b7㋋J-zK7.s ʮ8.% ;kCc-+1zA\3qB.GЀ \%˘sJ+cKEJ1\Z/۰U])ft8k$X!kSr܁[.jЇEq\E@o}x`c,rɹ[)$m|ɦ$jA ) Ӄ O [#mn`3i,@.)M^R>.wcMŘ[]t*f*foGԴ*-|\Ew ïߦWPUb.|= ,*#Lꐏ4Z]U5=ӏ'Pڮj# ,L2y18k]Mh9 uF+ez&]u֤ >@;>4>se=g 2b3ozkPxjY ")JVldn3@" bRjg+"X74hA,Ѡ'vzR۴ESçiQ)iAƴ$Yu)C᥎u|ع@ڋƏ-^eVt_Q=yOJS_!0:;hnu.t\|Xr15giP=k}}TGݙӔn)e: ȴl mB@mRodR'b}F€"rI{C)XjfRѰénKd&AW<dUUϣ۔RP} t ׹b,N C}?e/ -j8{{M ȊV5DθQh%9>xL D!\RZ&i)Ke۹4튝Y2.5c5@Oګ8,`bEZi6xM:NJgYR"{l@m!U=xuM4<* :b$y ?fN5iBl$5RUOo&HkPn>w1N$^j:6(fH"*uj2=ϱ?BM'G2t}8Δ5̆l:F~e:CF%d^0m]5;{44eM)RsOƨIΡ YMKJP!f"L\!ZD A\f$x$ܖi>fM-Ͼ,wT7瘙؁B_[9EA(yP1м4YK"XCuqM0"A1 _4OˆXu [ R#joyE4P62'M`ȅƕ_/*it%2Khx4<.Ə|k+.[ғGQ=v;6Uݎn Jav~rTNDAI8V=j_;`QqB.WAc1Oȵv7#f;hlZVqo`KHgg]e!фt= 3av:MåY5)> L|uVܖ2coLܝИQD@ueKdpus3i"VF+cĬB֯zBFu\ɷe01ޣ#n; &=hMR7 t u#ܾH%>"vc;]kmM2^pdR3 p:GX86jj L&l\HКzQj Ԓ'alj|L x&O\mP&ӄGJ^*r^zo,pq<*s-'(mq\{,Bx L?2z,z2 " v08Xuubs1<'3tD4ʉy62XDU?o[!&:+k+r[zEbdr 's\xY¶bj QVW߫+_r4@b"j! .F =W6jք*1u)>iB@ә::#jJbЩyy /RVZLNQ}lyJdpi>DDj)}לqH0+G+Ro*c̉b|--L+*y9Ct8[{*Xp7H_8UUb͌"Q ZOb/=!sL{7d|NZeA6c0%oT[m\c-_h.Qm4-osyP7Ӝ.5N G3z.F|COi8 {[Rd1ͣ>K!]!i uGwWOCR$m EuKosLNE=4Y 9V._{6E~ i7w1SbU[u/Ax5}|1YUYmQrLTspZ {Wt#!tyʬ$f|gnQ\WE;4 Iclǹi8 l@|GD)!`.}P+yZ~Qէ Zָ:ܰc(ݳi{ub=AN_2ڝ`*ZEti6&{B2 i\ [^9+rio5BByY=cT kQ`ohfFcf6<o }J=i%a+M7L96jsuvg9\p|ZSO>σMN n6*˶e ƓA/ӢMzotK`= |\ c+ݴhhf2[ Nyb*_[Xw?liwqL:K'=7Y<,&c%p?\31YjY4V)a %$Z`*jl8!QCL4Eud˅f$S  ]^Q芬ogc J#}QU^u ~Na]KY4ֽtGTSSQ:MqBclW=8}XI;b_bDb[>xqnKZ1᧠Ǖ٪#&m*pM C{u׷Gl*%rdT~ѧgӉ}`yw/Jw=ObQ^vmuU~<(̖@㮲aH 1-gU{*K?,$ċ2?Jc }dةRe cCPtHHaژ0鑯. j~Dk(Wd:vBₙd+xFN2Pᯪ=t* `V PYHEOZv?g93ȣaxm2T8{(Ͼ/ᱤ}hlcX|!=^7;an0SР֗hU ;حz[[HNg+šzmЕbB GRH읆mNw. :{~g?)aE˰c;0 9 ߎItJ*mP5#?`.ZԦXe[j,h\:8vgP( д2O{jӸGfKÒd^mPImP˴9uսq>"`dKml&@SN,pcpr55"/yw#nj%N~ c`t5Ƨ>?B R/ybU;G[=ݹ8-=-=i %/^]_8ZkP(ڰ5"#7e;C8D^hBkw K({3lIOKG;|5~[_&(tf&DB,>OT`7}{1 ZwIh/M@veGijmuMt̾@!6VvRΩ2'`o:@dZx  f.eGO^x]1q5 H'@/@rc`r&q uܯ@q4kZ)oȏ9d8cg wqO||/*oe N$qV(D|~$h=s֮0">(q|{Hٔ߯h#3x̆9a$ "D(W&XCN~8(ڝկ Ó=6_2 F1ȑ>Kߓ[5(1bHdO8ĨR;2\ٿ.3+"gQEЫ蟔Do:Jctk _+ϢFDa"ߌG.' :PƘ *psHm쇋Mݞ'`kozY^0ќ(b b&@Ԫ}]H~dW4)o@|%!0-( 5Q|[`!,sj#e{SNodMsh0]7$! Dʢ*xF[sjAVj&{$mk@ B>?i _к;;sr gPDt?erQXK>`zȡgqr=~ (7Dc&6\SȨà;fAÅ*b}mM虈J|+06/ǟG13gḮ+AӓIkG%S(u3/տ~9Nt}Dk6,2K#Rju81lě JJol('LLdQ{'עXVR 0Ce>Y.a "7 `=.t1|nsdQ|%vu6'f\Qe?{y]Y2zr3\=33c鍾=s~Ģüa5!\LfIX{ڴLI轅i{x *{@,R\\h.QնRԧ~1 ܌ ^u^wd]&BDZҺdy^&.G,e->嘁D~t48gAGT~7F"X7@Mi@p"CZ}%o9˿dmED|T͇DKaB*iO`ӑ{"yc>De!f;t<e8q `{6OdcDmu3[G_&dAL]`OE׏` juy^ ϽёYʆ%YW!jQ9緢$W..r?jQh<߂G{WNcֽliEZ6h9|Qu&cvzTg[v.7@i,$x*?@`y+@9ȼ)m|G"73j0qzYU|﨑FtԍR%Sւ+iچ{m_dGV=@LסZHڗmyy S 깭ȲJ s33%z+E3#46sއVupG(Xˑ/>(nV x.E^SQ)TV=g B b'6rqWq>)Z'v}L0  XǸ5,Y(P$)H}ɯP:$nc'E'{m;4eB*gbS~O=1B*28akWEKx _m<j'6B3h܁F:A$V3A4e yooWZiFϠeD+.=gA{ѯgķ)ij<y_6%oiʛmҚ{~;isjebM+`8C¾s_gof["J7.ѧJm m>g&XWgbQb$lݳ-nWyZ-(a"͉tܰ9)wq1 GaaT=4ʂgKP:ꑥ5$'qz ]WJ$^JwQϹ?+d'E6zxڝS H3 Z!0v= {wx {+Iv%:_K+M,4bP\] 330Q8B$Z<?Uҝbn92諆 -JR 2]%Sv*XWY]@Oeȓ( G7R> i^)}԰YedcCH}xI<'T4l@o&PGtyd!.#B{Y.wESöUQGS `(4yv1GZ 5c">/sg8(KĄ@s1KDX?jUnܜF,Hq.Mϗ5؟ݙC= in2mesDq!e4W57r=e!+|2 嗛CAPs C#΋btsT2Y @ 1:sfW.Q}iМP@7=5Wi_/+R,!I{Z/[>li9 C4[ĥ9k:~G *()et;T5oH::ClIpJQT Gѽ|*:qƵV m(X׀@2fqAͭ(l_ 3xj+Fa_ b1W{FoeGlʍ4A>x8qک3]z .wZ)-M13ׇ>NJIHeF&=x d-45P6f_2u4z̨/t$jӫ49qmai>pi._^;TrlPaЗ:p^ C2y/ 6K MFj5c(p!kJQ-x7gJqʢ7RjA8w~n2 L?[yQ|?NIhuuo>4(kcR,7a#-)B?RTj6P?; ">ZzdP5[1k==ǿ:])k9D ; 7=^d=^R}r M/\uoXe&hƕ8 v{ Ã֩9f ^ȳS u壁~$D9C}sHe)7Jڦ5ŦbdJ1Vod |H[ &si#݅&1F oTطmW$eyBH_6jM=YKL1Ψ<0& Gq}|hOMRzr6B*hr< ND+wު B^FzLˁRrmҪ#HxD(n%6*4nvmFMbjğ INZpwz-(ݖr]wOq>y6Q³΋a hM|Ek+'(M@<&Ď_= @p 0)Ŵ:@i-&̮"Jp2{l%rPGmF7l 1G9چncB8&q6}A,Yqm=byMȏ֍I0(":|χ] D:Xg ÖW)"D#MssF29>4:hY6a'S({z~a&>ٜwȹI3@y<鳉z,:]u![%hTg~3.WsZхCU^Dt6N' ħr)+AqӚךS??E[7H<ŖN]o2T@ʯ:硬 gLy.^ԭ'6J~U mKVr &C_ /)pkkc&LV*5=@jX-F޴y,^=O#]A=gȩUUSoO΄\A`HӺқ_fS۳acԙ/t8N[6[ʼ nh u> 4_ʟE!zҤf 1#L:% @ P 7LCSl>Рa!#QRFt%쑥L?ɝ@´xUCܯ a;*^k87/Qa W-$kp-Fq;# ӝ1'pSN.F~yhZNk ?BB~Lh%][^ShI C3ۘ3f Ks̯޸_ _7zp` dATbI~~z$9)~$ tUo+.ecIÐyBA~pO)]TMCQދ6c&0|vvX%sqQ)Uȴ'-,O'-U NDue(vQF8{@k9I0^%65\F][ :'&lʋBgS.= yWWZ ޅzM޵6ٸ$vT&~tAcMxهuצ:`fXf>1~q3ZjFb2L9|Sȡăߌ91b^[F<k䦤]NOC`*+I)/I$f-g,7؊/`:~YsDް VAmq9.ј:`d6H@f?O7.?IN?8)gnMp>tv ۏ3 .jTufDZ*Cy-ޏU?uWS-9:kJoAϝJ eMH{fh<ْߘni<'iaP#k`'^jB:mӎj[jA(U#E+!{i4HǓR ˖J:yqT:5x3[KsF8uBQPs‡tܡK- V,s>=;7uϼkZtlO2sjcE?ّY@-]^JY; KSV<Ӟhb:Vlqxaw'h@ = uF!5{e! u%=_)SMuk'ܥ./P0&gɾn\GT* y px^ެ0i״RhЖT FKaЮ }?A4bdHd^\iB&;/nmGR`p݂$yQ:}A,$+.X_+HOp]Ⱦ[22ĈMEQРSmOD:V?4X"\tmE }aM@G9,)&+,b2><^ԌCު@Ih'0ګ*2"˷MMv{  ^@9})f^ZN^ſDb7۱S_ h-B0DYE8aܣ$v}kM0pVvC6dK:K hʀV|SNtuJ&*ؕZtlz%=mT=:iW3.5=? 0'U6U4!܆!\,Qeh?r5 #Z~9obx;+Eûqw,Yz=;"Й9aVeÚ֋pe߭X72~r*11}/۳ΏoOx>5оo-F,[uEF|'|,V2|raݮ]ʢ|bdoF9+tDbM)* 1K'Ch@q )]hR'3^YT;8M#}JrU[0NJ-ȊYsBi)JPDg7ݎ(Pف=]prٸqb"CPBQrB00ݝ}S*C|2,irޘ(_(챃~F1#wWmWq$R&X ,<~?|&TR::i4ȿ;rB#&E*=0L2^ԇTe% [/5l2H'iLUEK4oj]E3u!]95*&pfxc7|i r0PwR'=j_񄭧,YEF$gy k^rp37}̀P!.}>$%D߬|1Z#u "xf^6ܨ_%Lk4)х~>EX#y#$- eUΰ # MS[;6z'A,6y-ΰl g$#"cd(.}WUw6Qv`21Kq,{>d*.9õd#-j̜r#48Cib2""pA=ցm.̮_;}%lc\#JEX놲7}Ŏ-132]Q&: Աу Bs\$;2R&Rˏ,9LQZPD|CฤbYbҐ>(Tpܮ-˾Gew}_vTd| y> cQJ m 2~+6UP]>OJ/0q]iix +c.9A/|0 f ɪ#X{-&:4 OY ÷Di4av\Q*k/> p {"RaN £Zb膛CNXܥq=X @l(&_=m*qG3ahi-OڤiTY/P83nx:S(4%uKO Z*(cw/T^SL ?HĶcZ% Oҕ 皔twrm}S;xb몤 49'ʂ uƽ~X1x-1. v"JtހXj. f0\nCZkRå0O"|lޔ34- *63Eפf}SQp熗Ղֺ _=y%VF'/Ҟp~Ba@>y>0Mir YѹyX_jP'T9$,+ލ}]7,t8Bm_OAOݑ$' TdjdZu =72,N ssqTD7SN v;$B<g4Kx컁H8y8-9 3C3S`+9aFѬȿ*dMƬXr'9 Lˏz¹ m( +hV#IJz}bD眹cLH^sƞtV켇k8FxΗDifb%e^d}i&1YzPU+<ʹ@?jpSuNNHn.'JQ**gZSB'~ǙQڌT"/PrߩrXaq_݂+Y:.#5'0v2ZP!@>n{7Vcƴ] blYzdmlu¹ɥ m-ɆBjބlLj/?J5{A'k8 Db-&CLA,Υ+bCg7Ɇ&BzG F1_]s.IV@a+58!l_+mcGH+h^{ͨ~Ms}XQjT.9 F|5o{iofid=S>™L7z,N':$WgPr$#ayArVz6y\73@R!GuܽNjMne*)ǒw\ld:=phJ}ENό9=椯AQ{BZͰj7LSܭ o:G1 $Hv!'^Ů"'%TX RHYjNJlqN?@&a ѓeF]@Zw̅cr5%8OhM"ZKpl1_Y&O8O6lI'9aZo֖$ f-jp5oô뜹`SXO<v◰ހc"~ll;D3[:+ 桏'NBx1%$8͐|x^iM\:YP*6DXv"ȱn rK4s;b*AA0 g>ym:h?̯1WU0וcr{J(ّHki1G93哀Y,,]#FwiCռuBSFq/=g RzqdĖJДVs,wJ7Ո[=c^+UkQ&LbWfIˊ0`K"]MLڹЕn7A&)f#cKk3!._ِ; "3))ĩϒ6RRQb(pH218}%[y6?G~4O1J3X93Ո,uvEaw~!%;9fxAb XʕI"Тm:KEZzg @eJ`R*~n2%n z8??`N  l\b]S)4u/iL[lH xLgZ-a HٸŤ/PA |/VwB5W쯮FjX!~a>ee*Vz'pp/FQ`q: quaCF )DEӎ}?xywBt֫fVGG@Ʒ=IX1 YXcsZRrˬ#D=ͧ>k:uGi.5Zvjd6m;jE2+ٹڜpG dl^5#QnхFH xa3(ɇ1sr&8c5> kvɂ~xUH8>S&NB,v:w^L.8|^t=\zmm_*^FPvzչ 2TRqX>7^0g>ȷFY-Vbxk"nJQ~8 ʃSTt1/vh8e) ZQrau2^8I\Zu~nFp}Dtdhr=Ezi '6?k6F@Ĕ~^gRk(1 Y0]ѩ/(Op[6~xl8QK2{GW8%(9;̰C\W6x'j%-p"\/mmΞOlY{:B.,~@O|@&T=Dz?^`&֦A#$fk!6،^|3[=҆kLC~L4z1bSOz= `?>g̡TI35AU8h44dGbL/ )+J$GC5EF#M܁¾-*=2G+R& 4m/?SvX7 WQ6O-u܌Q"dz惴މXE`1XtR/kp|JtQ^[0&wLe)0m 2O'';sY!`?׋C޴]͕E5H2 Vn}- JN^TZ!B>ߢ;cD|[ޖ Ns+eGu%s&迄}`MZcCIP2ZaK; x D߬ #B I+%],̵yd2"i!xB9O\~ie-+[سw0ˣҕZ)&IT[7%҈J]! #o+*deT$!Y5#~X,ׁ8U ![ 2 $`Q ٴ9Ov{V]\ƚі_&ϨqR67JpETط=2CS񒰯6y#oM.BM83 -bm}خffNv1@{ MKXvu_93sVY%6+L8CNeFxђ7ނ3-M&vbdfṢN.Nzqp,[ ILfUGlG˃+L3XiްCrB?w%=LcQg5D*/;I sTU c֩F]>}U=O,L_`Rz{SdMSo#v'Y 3lLWov2 i!m2Ufr+pa(VLݳ6O1$a ~:Xz@|m8(BCʘ PX#ெ(V1g *Y㤞UCQ'+q #$ZUQPMZL}٧UstY/L-}ﵲTZԀ$ Ya1xo.U:0@%ZާZ=j1da|^+Xz14UhصUށ[چ^M *% S衠5cر(*n}A`hLӄۥ2spkVҸ6_wEX t_Yx 3"s~AWt. p\E|rUtLk/G~Cp+\ a/xƶ3ۮ%T 6}qM݄o1ρR:>jÍF sx5k&dsG ~ɎMV͌ƒ\z><2s5x|ub>>'=/.$N=͜WS>Mwb{őw#֍zʄ@sm\T,q$l;57Jd],|c qFYwjnĿ1+J6w)~W5+rS#m(_)759dž:ӿPRnnS 0y28 L9#;82C򏢓l7eQ%tHn(6} xI(($n=zl+PL@W_v9q<4}->~K%,18 'rpj+Ē[[h#zй',Y fCȭ{RvR@_N$J6ֿ+:@l[~Ixr)1 L5a3^yn夈.ʄ ]gޗ{oSN]uB~CW1#%1uIMݱ?}Vs  R AL5:Sѧ!|al%ޘ4^ T B+Z{bHtj-k,%VFsL=1bm?Ty".8J-Hxs@f5 ڄf!$?A{#r{.SLw_ SdN6OVgq|eڭR ?]N}P/*ג*jm~AAqLʅ'ٲDW -mOW@k<;Y1E Zt˂O+~pHte|afYkdv nakx /cxa'h,cw700@2kű>oN蟘tdȱ 缡;ӯfH&AW"[H{A JV(2お|w}MiJ|8`#eL\pK*<̳6=x7Lq~RlŴA.pAƝ;5n#[[BSps.OHя?Zη1TDڋ.4(DҳFBp<)2?>kYG3ޯ4S)ܙ`A z}m-߄Hqi(^ U?(TѨc-BOa ͎t6T.\{Z81R%z3z?L V[gqQ>uVմbOb>4*gic׿}H:S;/G=\ɉWMY1V 3w( =RkPX:0 _}J|ݭ/UBÒl )><>H -c}9]Jn+LhyKUl-b3+ Q4R:d![XUh̓Z竄/`P*d#͆hᦐh!Y"[A1n 5(Vzm<%VZom[߄] e ~7K9dYeiJ%Vؼ#O3\aB=R :NAyPma 01!mޫg ŪP5ײF|.:33]6քeu?D0z5nLBCﯝ_S:@ -5Bke`ө dGl1 %IW;"!*rY jwB !+P~G2|JOt{?/0mbve9wGO_=ni!s/~ bؾ׵$h(}pꙩ FwM{-fKXtc @@=N*o2W .8*P-j΄Jz~oe{ENQa\/#Ҁ gH~#`o~ښQH6=g D&&p@NDW)JvJ_~]L ȦAJ1p ݼV'\Ԑ㔄fVهO=7n>=e?%Į]. I~e ֥$wqlp"<} {px`q)a0Hu?ҏHjdRΗkMB>ˌ^ mGwQVC\@&k{G y- `#q|EXս?.'¢eo&n5 HTZF@ʑučfɅbR^_hw۳-8B3x++ogGɆ© A 3BT7 A9Pv)Ó_;(I$>Z:{24 V qز17V҄b C`%1Vo؛ήFKLH,>.=8<~lUp cHiA pfLI`7k 0>Ft)|gh>.s YIآA CVM#O*\tw)˯YW/0r0'Y("C&Ͻkk icI]-j+v,ձ<Σ2ۚ+uj#@Л =1l ; sћ SN2Lzx=P$-ǽf}C\lVQ˅nF5JٔI T}G!2+ '/ψtRFg}._>*ٶ;:mM~<_2T qӣ|-ǔ?@1XB(փYI˟ڄs;h`ٶ=iac\6`t4YT}s8Ñ{WH Z o;iޅ67-sp8q7l,GNv!v<ȣn*#:[[GQ c&Co)4‘ * 'QVH0R=E{X ԄfDH\B鐾C>Sz;YӒ6\D >ztqYqs90.\)q{ XaV ̭-LTY/:]S^cLN3cf5r xa}T[9]'.cl$!3mmXs,&8W `UCp8ߡ@gu &#\>pK&ԕbw({?jO &TDPm2lGf3STu (OR5N))6gFE!-i^HrO-35-w Sl?)u {+1SpZ#Peض;1XGú @^[^"p J-VgM6.P wܠ?PjKD?ۥQm}Acnj(`G.%6 1FV\[W>p00<|t897TUä$b99vK~) =7;ZJ=F;W{(uT,+rcr H?zV-? 1-'=i_g.ZۥJQA=e6<5?Z΄E;(Ff,nۅC5D*$]-L._Q{_{ MM.2~YA}6Uu?S{)Xq9ݎxR^1k3{uG?g~ :Ș%/~'AuL47~f%>>^J4#;@:4cT(ck(d|I5{'~7'j$Wbcf5hSd:z1)9 K'xf7$I *7}Ph:pf2dVԬ nr :@{i0ZZKpj8a\QXBw+Ceg!A`:7u| sY&1F}W]([! >1EiS0ׅI'tˇ;=&w**ay~+zXބ~0ӃLH:XDxSzv }ȓGl7]7=Y*u:kŠ HmRzh) %-.hB0!u+e*30. a(hq酮!>4fI[BAG>;G*!Y`%92Mf3ʼ%6\If,Vɋ4F0M2~@p bF:sԨ$ð2Ֆ![7{_ } G>;O_Rˢj2 "n@Ԇ`e4?FQvN~ڃءHֈrX&O0ơ'<l%S5\Y݅ z2U r"iA UY6[ErʵAv $1Xuw-ukFu2l;otaz@t%)_  &KUls(//΢7pܔA@<y6E4?D{QL_`悩TL&͑4^k|_1<$GIRuZeee&)07ޠd!Q^f:R5NljϬb&}>s#HD/;HkN"@e;Sԑ쿪&]]ܭO.??dI 6@['8LM40Qi"FxPAΨ.yAu[7[Qԗ\YO}':O2O4e}Q9чƏ\0X4䂟<\dD:%z8+A*Zn@>n>n>n5 t6+Š6.G@_nGmGq`Gm-Hq#5q5{5561 Dqn6C55 63C=@H= @Gm@Gm@Gm7@GmAq@GmAnY@nY@qZ@q@Z@qGHiGHiGHiP4D7.7`i`i`Vi@i iViOiWiFi@Xi`XiLi0Mii@@i@@jPP@ n` n n Yn`kiki`mLitEi|EiFi`HiXi Li Li iMi i@@Oi Fiini i @i Yi`Yi@Yiuicivi di`dili miYi`vii i i ui`uiuiYi xi`wipnYiYi ZiYiYiZi@ZiZi`ZiCi0DiCiPHi DipHi ei @ViViFi8DiCiLi Hi hDiEiFiEiDi\DiEiDiDiTDiDi`DiLEilDiOiGi ViCiEi Di$EiDi,EiDi4EiDiR5 $50G8G@ n` n n nG0GG8GG0GG8GXsGtGuGuGuGuGuGxGzGn@$n/nX5 V5 4FV5 4'4`5 iM5 k)5c)5W5 4O85 D5 "4495 R4V5 5455 `4|555D5 ~W5 h5@55 5ti5 vi#5vi#5li A5 `wi*A5 wi4A5 wi ]5 xi^5 xi^5 xi!5`mih?5 `i  ?5 `li R5 ui R5 `ui R5 ui5YiA=44-4444!4]55[!505 >5 >5 I5 JR5 VR5 [5 c5c5!m5w555l5d5 5 ;5 5 5 ;5 5 5 5 5 \5 v5 5 5 5 5 z5 )6H6@ 6 6!6! 6"*6#*6#46$w=6%F6&F6&P6'X6(X6(!b6)i6*i6*55q55X5Ӭ5K55o5555Ň5K5 @5`5 L5 556!r5g5{55U55Fi5g5:5V5 5bi5L5 6 }56 65 5d6^5|5V5ѷ55b5556/555q5c506#6 <5555 6 46!5&56!5^V5 |5y5b5pi5556!5/5,5w55 5\56!k5֑5f5U5 h6)m!6"z56505"5&5{5\5K5 w555T5W5 h55V6!b}5ܯ555>5 5f45]44@=4H5 5q45?4545454545!45$45*4f5B+N,h.=yJ`j-e7';x_cp5F;Iutҍ|=t] !0EBy^SJ7]eRAlQ1`}W%0 wlL?*1[($M{jee@սy;_.0Z:'+1ZLIB|x{xUյ?`%  ].;XV[O/kiYRkӖ׭4+kkKL&D ,XP8ǂōuL\_ۢ[Ф܊M Zj󛳺zϡfqQr -j4f%Oo:?әy"Td"iYijBW--XeUcmA+! uZj#qk@rь:>[!]i[.ŋGQ28QGǁtя-v0rJIF2H%YѤq 5H8z'~ῤh)vK'@N[r}ՕՕ<4gQ>n iNp@^7":S9āqglIrw]4g8=^gx'RciJS\J yA* VnrnzT%7'pg :MÅ9Jimp&Jq%S[ęL !4 4w<`JFS쭤xbJw^j'f+ăGN 93mCO;c9p+2L4flINAkQL^;iUx98A:bYx:D -I-I[$A_Ule栚5.l#g ?־Pm00V59BxH d8j̨5O-S6ZT38TH1=~hd7+iRt)@>]tr*d(,G$Ud>١+@ S- 4әCbq@u4@idR꣯~Z;X36VW7B*v&\qg K`O>>݌>`|Sܢw|] r{r[wRlКC$tgkMI ![EM_w%b!i~"mԾ9EmD#e[hlW^ J:Hq PIyMtLQ>(UqA/d;۬Xr[8Ha0Ҳ8Sϫ@0xՕ0~jchԪr Am91F*uIK#`dAL0`X"I$S;(dVV6M ǖPQ711N5@#ٯQ;ү8 |XhڌW8 p.wRm̔ŷiiZo7,u)'"ʘ7R7w0?/?/wzD/k-\K~Db=#Ii"[Ns)Բ0LJVm怎RD 4Np0CD6tK|3Ti@L 7JtaOwc]Yf݋mu1)ϛ&6a7c`[Fos|K'`v=MQǬ: T j0JcQԏתX@Qo/s | S4BI!0+`\`ζhUn3TOqÄaoY ΡTּͯ2L]qF)AǤg]"W}MFMj} )>(W?ak*lB4XdB]cfw>5_u1mzkoWLʫ&eIio(ͲOZA^(z6NlIyΤcRv*L߆R7Y){.ߏ"o`=n?hR3) ̶^(,WJ {~HPxA^:[\1ܩ{hRR 4 2i~`b쿤"L7] ::DTcB~FTEd$- jdٝD~[9M4f D/c4("j+cݜI%7ė3Pvs:Ķ4^O_=&&ߤt7Rm8CY H۰Z?eRVk|{tJ3_?DW Q\(+ #>qLoNskЄuX2ɶ[hI@Ds{&s3){L &e_m8 Fb0iw-&7&& !]h)ɫϾ?Z'WϾ>}gF>ɖ?5}IϤ@/8J'٘*SCѲkPKk'g^Y\79[\|,ֵ,Z6O)r†WX9·TȷiUcKCEE>  4ԷԮl)"9LY0qK񥮥iL9g䥙F~pJpkj Y<_s>:resC}.4d_0yA -u Sx`;mr) ho],-trmMyx!\dI]cK]!/㥙ErL}02SxA:xqƆ%Ó_VQ15Y@sCAoi|4Vټ(3S hiP'7 úv-~a>=/,^YXW&5,k+wY}]MCvUuv@=\oZhpS_2yYӒ<=4w463> 4xme[ocA!wZ("fͳb >1Ǽ֚5+WW< 2;8u :UƦu&9,x6[]%nanA}E^eYS: %Rp=" ;Qt#xguC}m];wT9j,y+q78^T`UQXs 4`QNGЏ~T~4dGdGvl- rF;YRDZ8΂ږ/j3KQt4.kniZm8qvaxbǙl%'8|s㨉 /eR1ULt=q-:Yu*^8{־Mrٴ̡^1u)`8!C] ǧPݱBX[kЬ M ᚋ2!* I(l0N$ghk$"O>17Ѐ%!Q'\԰4ܲL> `qpE© @bEiY;¦L:rHng:t>1J,Qs!*8ˌfY$Y8k.Zg:s,Ʀ溆ӗoF過j%30 0eRW-UZdTbibL͹3*:, L}K;3P@z ݍoMÌ Lw߉Qecw><$L00v {pmA.'wF͢;ٜg-S sω\k&OW`w@{~NAhE\)Xlĵ}Eie}xs>/_F8D0" 8+pϣ"0lRG$J R}:&pPS`wڗcD?<wQ^9ӏ wz.= (W$9HlIPnz2}KKxNG\Dl"2=ں׵lcNZ;`psgq٧on |CnVЀnA޵"r9"#s޳l5_D5Lg:+D$x ]U~/i½ ݳ߁LI_M9.훊wY }s+f1kâ^]-*݃Y6e o{qWjF^A}JܧϺ)ϥq\gWDUޏ{†()v[}4.c6ŕz =&:Lƅ2ia*J1sYw. {-zv-tXױE{#dQ oݩ*1\W v4Hrr՚>5#1 c%.4x|SzZ@Rr^s#mGY@-Zt4 AOis%z<#`% ,vc!|>Cx8,/ vʎ |~wP3u}>=QP9ނ d},+ g-@t, Ӏp@+#}N.jUؽ#Fm^e>),TO uŲDwvͧ}m^҂8K1- n<, ! bYEuq( C٣SLWݱ}Dz-(| -n6-@Dw.E~^y/9+M15F!Q yBSݩ S7MBͧ7-eq*I1-<,4ߑ&&MY9kU/t#^FX/ h} ΐlv/UXh~D#@ tA!\p _9Z 2(*zu p`R&X~?ϕ?:-Ih0#sm'C~9`4vhI)HB=HK nw'k6"?<9ͩ{X)^gߥM"ivu.A{vsTZdRqAI?X~/@{6}Mxd8ARkJ,YĪ $)@b=:kޅL[ቂX/ R葵qȧs0.^4 ,EsRo;rַVyEecq)NW` P=Z EjAPb䀊'8 B U#)2}$~Xh|"4:]>&pG#y!Drj7e $/ɷ(K[̍KKfdMY3 i3]w'qB/ݧ{.n:1T ^8}wR.UqQBG|FLbr7es@qeiEth(apT$pF)!KB.Pሠi JvӘ,S=!>e㖪8f2ZۡC?I@qJ+S#CxD[)K[{&Ify^X-Nc`ң'šGMbi)Ai1/×$*$$0(K"Hy\&] rX5H/C=&ٚ&̳r ],ZNt;wm;/}z"pAE6;%;lBѣ bӛMkp ֋*Bp8 yELwVEpKNPq*臔.J>%[KPr:Zz*S`w?uz7!+]w}X^Ѱx7B>EtZ=7/!Իȧnn!Jy5<4m5L%z>T Sh=+Vm,[SgżiA#J)_lv>bs BJxI@`2F4>+IK ջ[Nu*\`X1͎s;tK,1}U&oLVn,^YIQͧq u{xƥbp; 7T˃O*SS^1zҝWONqu@ 7bq'Nbz-@ʗڕjN3̖*܋!iW++v[E ̄jCxѿU^h{W0wK7}LWSPI-qM4_C}]Kр"@ T!ZbjbAл`ްdě'o%HWju*e){v&DTI5zUPyA LW7K6pNagj`:^@Ӧg>9wOuL4+f:@-Æ\K٧mmjPqU+O+q垑r(v/iKǝ T[Eǥ6.i&{ 3[`=tD7Q =2bvSU 4Rtc穢3܋~pӝ@#n}wYiC+0ʽ Q"d8\/zK2-A%YݥOV$86sZlq'1xlc]Dat&^1.ʄfAKNfzK! }My*-. o6=k)`J؁Qt:r?Ek1tSzJ snF:A'O헲ݜ>Q$yI/bz>;^1sY(`ѓn݋q棻Ra$OC0wp^1zÛSxC{c4"K/;)=N#9,dĢJq9t;2@RO29{SXA!QG_m ftxVjǥ ?rBIٗ<W$7A+hD=[8h.HK [+ cam;nWLm-,8bXtu f{1O3)8MM}<^ LցMUu#âQ_ _`<¢.5l4aC%P,@+"o*N&mi!zV3"{wW,'2evRx,즰o@VL}X1&B2!nO7٪/ت58bsWD{lQALLzYNC$kjw;8IUOOcF ^Z`j gZL004W&;g+hɲysml鍢TKjOcwL2#;2VgriMQ`s$&r{Ja:g{S+7N7LMb9k0JL1p@Mv{e0ZQkz+*0@ZP. - thyS2Vjb i_r3!2Īϝ'MWٝО&|D:I K*T4;$I jtX`at/.BIjhs-{ƪAg^yXh`<=A&?Od5&#mUHq[ozfd*%+Ymi\JsIwspZ4[vd,ן'C-WZ1b,ȠdՔu es@<3^hT : bO4`>k %#R؊`_Z )n)QRb0<4?.Q>MH:,[KT->*RkO|lXKTݽEwB0yb{F*~;T zsҰ1,Q!%Ұz&*87ii$ .oiO?Gr,d8bچHz`m^/<܃}Up9 uZ K H{^z vi+tG?1/sڛTⅣL 'VPLo:8 ,4!4_3!8~ZY ܋Oc b!~ƆP|iW7۽>םno8zէK L_I}e̝F `UqLŀo6}o A9&Hl ~ 1>I/;X生mfX-E}PAfgv^L8h o"@Qr$#x"9n$˳Ҕkb"l eܬ3M\D7 o:}gEL}FIXz2qoUW7~ ;Jw;U̝>wzyS%טg>ak ;.T_aQma7>{G@U3?(TWuH ШE]S[] T̠:ڞ(X~؟7U cH8ve{2)a*d'O0 jӄ*X|x9!WYgޟY% \R!JĔ fRH \'-BwIJHQvNUA+(],њtm,U`]+;!5c 1IY9NCςA@hKA*[Y7ЅqJfT]i/R\H*\y; CXv`a6Ӻ(>K=@}u$<<4k3M0"F+41513|ZމIOyI1} ]4qOq7Etb&dN1U#s3‚(-STo?" rr7a-ÂPtVڑLO}ƛEBI? Af>> Ƽ}~ r̄wݭdp5@^ɛMnl]dLd zv)JIS@U\3mZoqr8$OԄnLH9Vqwe{f)zhpI#rE >oX|4i.]A8וn8]W".ٻulL;!A Kɫ; R^*M." A o~~k_1vLkgR5!"cjSPI7VX+Kk{;k;`OzAXD~i?dMLZd+4¬HS[YVu>=,0: R=`eV-w[F;Hx#4Hk`#kYdjPp ꣒-7ue"_aޯ-$݌cy<X0C߹bzTXZ2νP4z8Ӵz;gDB}8L!/[ʹ*'%S+aa*{O1ocױw%2E32aFK60z1+Ac,/ pNT:XY~K$4lb U5v% &1[0B |pyVYힷtƆsJt|^ۙ-Z~Iя> d|bWp3 gH^V!徺9Xiv+p1L^bfwݺє!ι'cV}=X @[' 7qTC_q8Ƚ\%( ! TCMŨ6zɷKV ŮeЧlOqꗊc^ tvvM̑ym""ۂ [-8ͅ w %%II%a 7;bJN.-D&L"oŗt04Gb=KM 8s/`!D'"nu5m ˜2\2™0\ua% M:MEhi!;ls3GZ̰wFY8r:,80 R%)1Sw`^R1-pD${j $,aϨcKsKץYz{  e.X3EY,_H\Yͤ2sJgczgjH92`Cr%SZĠs#e ؽ|ձ7}7KV{ e_nIzLnm=Mil6ga 3aB^ 0ݳsρ!%%)@Su˱4|]7>Ȣ{͞3e'd E% Ĵ@MsV pTFL-5NYnaKn)6a@@پ{؜ꓢuz׉^wr66gr49%ZpMe@Ƕ@ekS]zZ4;͍攞>lasJψawRO{U6rϰ9gEp>6m1vՏs9<|?#&em^,1JĤ!ɮ\Q;3KT0D`-]Uop Ʒl5nd P Г3ӫ=+ k !G|_C'BZM]xŇ3uLӇ y85:K2-:G,}1kpKBpjHCSHR K2 ihZ8y8ss3iSM2mj)S)NT˧&Ӓ&7_]pf 8$S2iN;އY蠥+({}yФ4O:L8,hQI)9 eFF&{)3 4ab$bCſ b1^ʔYߒQ`Fef-*%Z!Al-(:Й#|Gka2KguC&$&A88hkT6J  a2T&)&0lj86Zh3a2w"a2KT<1a300ArvfY !>~03K/ ybGGgbN ͆<tʌJ9NCqPGvF,Z`L}z~]KZ :60XiiX¿k,Ȩ ~2w57XYX#B;E^u?^ 'xJ$Gr_x`qC% hf3hNWόա8N8/ٺ#gޚ$q7HPqN=ql('Sۜ,7Ddx>#T EIL**s㤖57/ǑaCAO198NSj6T#sO T(vK7LH/E\vϢGS٧bl#QY JuՊI9\?ǰ\ ^Ow<~!~ Jq8^Vo*΢,">/E Jv/sU >w3OnI+w"l`T7c8,"N?׭σWWVr'HF#@e7Z6WJ@n1Yj8{)xaI\li8Y睫o@xuw 5Aq|N}9fw8[sUuX"/k7[nvynfP8?G9BD4Ii,\ɉt(e\ot9"e<y-2=i{{w;_I9a"'FxijrW33C[t+a wrí8"Ә>w<-*Jv0W>Z{>t(!0LwҰ3NS"wgS3qP(-eST݁ع/KzDŽXVdm(l,5p.=[[MG?w(O׺)Ne8u 9]hۭq RoUxrv%##4:O,,w&P#gD Ng];(up@Z@ކ t`w]< ~N5;o(;Wfxcam[_i Cx@>Kh:  \%,v|o{bDHL"-N(9"y`C2°*#@ݚ!u.AdIb5  :LĄ=cSp<8wCfiv% J Ţ\- .aP{l F<}Сb^6HpTDF|HrΥf)]nUtcO!b% O8(KhqLؐͽgc_bo m%4 Lִ|pbSdk:#<_BOAwC4  k'!-`Ýx6p-w?SDoA|#T!tcŀЏ7)$# ?{ A8@!~ ,<uRپK58-5FIݡ)d;Ji yH{_9Q}Jۧ+!ake-8&DMr$ZUZ;@8j%>T8Jh\vϦ#\ f`&R*v,Z30]x3}A"].]Nw t({]b ^]Nbto ֕qOEZT$@sFt|h07qx_5YJ1=i0Ie‡A,!؂8_tϽA}oM$^ܰJ`yp(rq/`21e げN,͎KG6ű׿5tw<weT*ߞtGo-qF٧[`n!WnXpi-q4;,m Ѭ#9!Zc/2J]!uvӌ, n!'qu_ M'\KLRz'Hǭ WGRnaKqBWC4^=L[Ptl~2d3F s ;UPY eɩ9wA0A8Z ogHqm" zftUKqX (P?FR#)Ϭa c5"iB"4ϥ@ ~km&@;O9NBpq[WA`Śb?Еt'H\Ir/?3* u6nw+߭F+-EcWǽ"LImB##ҝWA!,,18{`Iu5P__dcTg5:f%0&/^ V))m Ρ|w\ߐxRjI4#@w5U@)C+^ʫ zSo^S(.v(ID-җ ȅqn)<@eYO}2w=N^=I;jeWۆsP5#~|MŧrZn3,qө8C}4-A@"z="t]>ߺϸ"BaO8g=%'w8p軭԰gsw/S'hYw:@LsiQuJ^;}(]ϧ'wCg+Y\R`bc&A=еXA\ߠK/VNv/Ʃwؾٴj.BT]eg:N T""!i>=|D-1D@8}BD+)}\!MA~@Zę2MK% gIk'Ipgx9H3`g}/{EqEAtg'2ωU`Ztn30RP!~م gsoɦXJx1#pk9s9DE.[ƘNM2MeDiaK_r[ң{֏ \/a۷c%YY3F,B B>Kq&#(u۝:'nK:]$]3", P#4 e"_ I/\( #DFP_ $>[DV|6B~hliq$ \d_CϢ1#P-NS-wbBpW>'랾/$7$5Y[̉bWn Q O;zK<0L_ et0h0GDxr%uQW*B (!DsiE,>r#)m0Q&NN7=N:$KO;EUj[JB#ΰ4"iW~7BL):&K3L{fE_j@\w8!P3Rt;]iY]FpLRKi?U΁O\:>Pҁ|*0.ӹ R ׶ǩ\ƯyX܇&MJ1ӛ?!I->t2` qL "TH`42E(zRێ&|⻻%a]3ASʺ.l*Ed,Ӆ TFj=GQHRNI;nS4\&yӪI]%UtdjF\})"_t7Ti'j)Ö"P@SD3a>D ѫdU5ź{EBoUCAe;|Q T) 'ȳAi+,EHw/TSd0UVT)Q2ǟS9L/W$Wo6WSNgnwHsbR.TwEסϦTu'R?˂1^EYJuo@c *RAϕ$w2McChEݥ}2NQCY޶ /c0ż-Ax hM 9jӱYrP n*ziLJՕuY +Y*ѥUZڪ+?H3"l*>ZXS.\Yy!"\~:Ұ&۰Ufմ?ByxhBp*EO7,WW)A{B<6b}-L R:HaR5e~nR3)HZ_6ϛS؊}"Vwc+,zg(vz'AwHt6w胄x3c^Á]d2zlF,uߧoy)5U,mY{fhGKk?FG7)ME0L^V9Gċb&T]4\ GMUh[ DS>Y0`i $-!Ĺ4W=kWtj-Xޡ_uu=7vۙlـH^>)3wr%.GЗ?~c6Г%b b_Xu=tlP;9>Sѐo bvO[Nb١X?;-G8Zn^o7a#?"`Ɓ:KAa)s xXHchM>[D bf0< @l4ϙ]OϕLb3>=xF9 w7 A m4ڀ MW8ٛ*N\hT>UD$~eX6/|";AV酹6. P4V-)v?&o0aLs gob'?4P Ұ(@- /7eco^5%t8܀`pٍ@ 5%&p),q\$p09~w̗S!`!փCB ` q$0+1cۅE>8}EmͶiűg,aWl/噟`b b˘Y^JRRp6"&-tPA U^ FrFH:e}ot?1LM wDӷDFKox_O M30ԧ' t1 se7q"Kwl}+.N夻~FƝ!sr \2wdZ; h@o &lQӚpa¹C`v9~DkpչKwnQ "en !>^dU[xdIV*x"]CgR8K\ox% &bz 1B{V 0- wx!OP͢r~J6hpFG'2%)E:飾${{, ̸WAjJy2J,A>rc5 Zb,3`Q Kp*\D}I/Vjp NlcьU˥߁*V5W.nV@k3 ^!zSf!ȭV\u)Tbh{ \Gv܇J軱A3|jG\h-q -=k̯{rϡN6r(V GiRy|l M2u=#[ǧ J| L|L$IlihWZFOMXH9N~aG.AdEr"A׹YUDnx®$zÌ ܍ X1z"U$gs:3EN1(F56.2p "#S Q(]/ Wmf")Z#]Oz/\mqEvE)ejH 3qH蓛~4l}JnJ}=u^ _w>rawzzofV6pK`c)?9_6Пh I+=}V߻FxJ]5WbO5c""?/~xT}e0cjaM;̮g5AkJ$|4gqN:ЭPc8.%5/@v~2QMr" E9<'8ԤfI_r~(7P탄;[DtCkJocb.E?8KeRC>z}H*=k=$mOᩂn]Y>iVAèWӶ3SaW4Č֛ʲ] h=-=J0 6@PDrp iLbRР $>np &d`ivn| Vm11z}HVǍg4߉DD Dӷ"饯jĎ~\[CrTAG0 gXKu*2ukvʯ5.؜]n# 8lN9uKXz1v'U0Dg;5U3.^ V1~_Aڏˁ{A*M*lopVkfm ˃ccK`*K O¸|hèr spl Znm)(H0NQr.z{QTrMb_|6/=w=,ud GD@/bPe/1Mp#z X_`= x|=_ڵ} $< đř;N}UZ`J>C`( p;>Wv ,*Q}\ 0ǿ5UFCmN)&:̉v0/zu-yAGrSqBw (%1 j@Ÿ cie7"a`u+9qM&m>Go]禼IL_;w pW]2`w ߇۲#);a 20o&u" hی<> N5;%|Z w ggb}9MDWr,{ N%('AD~Kyҽm9:(Ϯ.^JU"0LOXJY3,w$9)&(#7f"̹-?tԍ=#!8+/$5]ݛB]I[bQN09ԆXceeo 6]dtemoE 7Gӫ{ E ӿ;ڽFOt#wǀWbB&ೌ3 ݬ9;^-[Us#K.8݊?ePVgIu37@2kq#Vkq&Yt>F Ub:ʗA>Y`6 ԾW qMS aXCVᄕ8Ou0ysV 6|.]bu/"QSo?ub{zhٯ`@_cmNYco\& ۴YkƵ|D \_ol_r@Io;s:9eP=Զ\P뢠|2l4[aG u#94.f+27c;(/dܲ-^wPP}rAawvd+~m@}%T5QPffmW4[a\LriCA}ˀz)q\gO>0ߝڇH 5!57؂uPQ^ [`^b02Fڦe~gya2=E6ɡU5 ؝9C +ŝ3FXuH(kM)[(eYzIa]M{x#9vE2`;H,z)Bvi1PbsoZVfxiiXZW8H3:,4ёG/Fc &N[םD„ffHt%$SXvEcP20 ˽r["׹?2v?] @" fsә)+|:LmsxqP @GZ<ՂaU tv׉(̗y XRFƨ2LMF 14ωy,d=]*Qyt|:Ey4)5@Jfdo*1N9[C z;LmN&:>]JcWʝ0>aPOp '";JMGH0`)YV#m-tK{OdZPŕ؅q4.b'Q.+} ^/ni5ڐ[b{e}ON* weuVB& 3<&? ~e-76m[-⠋OGt?D{Xjn9+ BKW!4"  67#WE I)`A}7ȴ$cLWߝUhv L9{:,1h=ȢIK6"/ikqHK 2A/w]9xhvsXeBZDETƧ%QlzSYʋQ˃-PlUԢ8>·}̒t4"5 jk]*QwK3MLKrs$_Ӱ%7e%bWmSۘrjgkWR)C e*eͬ \\*aXG8)S>SFe+f/P=GdJƗ4 jp@WD_m{.I'*] ط2.[F!\N6<Xr:Nt>"g _ Sp {W8=xjۇoA7'x3blP 9}CZEn>®gOS3j,*B Uձsju&Dpnf'ט;$&7潹G8pId0ڈC*&'bCPTP0b4QPj0?-gZjժUU&^TI W_ ,?ab>?{o0Krw>vG}̗6ٍ޻?Z>a{An՚%[82ec =6Yj)G=53@I+WiͬG&*Sm@jk&6zo}Z5ՠHapxsTOI::٨h/= Ȧ˽{GcL(k^UIA eB>v?7;ϰ48[sYx{['{]AՌ8ٹ/Ǒ%arUJÚ}Ɠ5=Wk&XFaFE֐loCwp5͜rHDDb+o ŧ 8[@yI蔆xhaS}X c .$8^8kxKHGkf^Zo67,x4Ajی^/ױ/Klfl6˼?b|w|$iA@![;$Wiۉ}:c.USke6ODE#.E΁8Py*غs@ ,~P8t[Ojho㧳F.KPm} r| Lgg{ _4?ii݁IK,`-ĥc~-|+%|׫v1>q櫵Ђ#C֫EC6zGl^B[ilС}0 ,|={x6 9lVGk ^Ys6kvtO|zG%x7qn }÷*0\0cB{`epDCȼ[H#ZKf !dIFB֛dU{.ŌV 8C$څ5 jF/^ݶ}zveRVa[m}Ωq3'O8mOjn4[ܭ&=|aǨi&N8iWҌ*kh-ׄ)v4i5'2xJr.3fgMN:c򔉽L2cS&ǧc)M6 3̘9|.W8~N:=e'WkmN64c) &Ο=q\YLdz=n?TʦL5|vF' 2iFyTۉn'lk 4YMJuO6]:M>GYd}Ɗ`a}ũѬ* O4mͬi#Z&/̀5iڬO5)>Z?'igL1fM=czvҏN3qNZez,O>dҴӦϘ8m,ZsM9̙ox9q)ϛ<<}^:3]}()M'gfӄ)fڲO9qJҬsƧ1d-\2ΙYLk͚xIbƒtէlOLͬɓzO>aJӬYQ̚2yB:YOm<&[y왓)w_8fo:e9)盵`ył]ȤZзJS&ǡ+՚6}ڌF`J0Ҵ'7w Х={!L3&hrlc89L-Ϛ^< fN=4qffNɅ$[8iz.(*XU?>Y֩60U9qRM3'J5MWQ & &ML*fEQC$4 J5y¬҄SNO!=V)'O hY&O(4t/!9 8|Lt4K1eMڠڣ++Qf8:R(fYc`IHLww[\9:kq-.@ #jOga*ĵ-MPqJ= uuYGoV[Ҁn6'\ߦifΫSZ4`0khyb }֌8:9ծqס_iw0nR4dh[oWf]J֪ lءU-ukm%#&dD+X"Yl#)d ra>PNL!HgAQgjEʏM'T]Z'&U._[-r$羒/ƆT7.?ZʣE?._[-ߒR@sW3^L`,iӚk5oc1ki -lcqMjW9oy:He\EUVr롑<>Χp $=Hl5Q!.[4]2N#F7Rdٙ/5dͶp4x 99 :5R,!W%uN,{beP+>3.~#.\Vsrb}{vr=Ejok&_?ri>:8-}pZ }qv[/̪%.C4N%[鴇w[}ެ06n ʶV_ZǏeswAI;"BYK*6R0ÀLHʼрjx[@4qIEކ@C7]?s.zDG:&xQ\*#$%8)שvXm4vp~,3=! (&ӥ2bٯCk%]?y!c%P}+ܸ~z>ͷ rGuɄ xn2Rol:a Ҏ丶~ݽ.KWYiH[Udxr[w5pU.x2P|5ryZ_y\prj?<| >ŰQm6hF?2~^厚H['\711b}%I^Lt,3&+1!MK9?X<.RAG]r7m) z7wmfy4xX Vy\uXWA-yEp Ya,bk Zb—KPrWaѼC]q=e clݡr}+h4z:݅0("_-KpӰBy["avj]]HMD%ޯlM)(L~LjQ,hyd{/[kOtfI/Z*K@nl']{NеOTӈ#VI&բph iqY\YqE^ Tg/_ S8nbN1>vӦ2 $Wa@Q6m@I;̭2' %]-/?wJF@==>_N7'T^NEe.é\"AxS{h*OVʕHhL5N z^^$pBBYUR$WXF짡fx{ZGmF@c3rW} Z:(Ǝ-_('*mրga\# +Z2W9x3xN_n˂Sh;=BÍ⛲|%E9Wr*A 62%Z'Yٺ Z^ĩq!zQr_'&eNnQsaH7fcYcS?hz:G`Az%yIǒr +u  ]^ȡe[kUdw7{mvwez&coL^Hs{!_~]&EoaI&f7X^j郃?juG;Oj i8}a H͆CcČ5ZuJf,xa Ld)1d1}FdBn]Meċ0T*cL7@~V[܃xlj|$⢆P%sD˝q-_b;Rqڢޢ6_nGr/Sil:X˩aQL.iY,'10DDecIHh47]J҉y!.MT*9/ up솰{SK-`Z]Y.yRhIȅ-Rq&^{h/'URv~Y]Me7Xmޣm |ȼ,;w5}xf @f¤}U|(Ȓ6g!oؤrs{u8Zrv?~qPiSѯlN.}>rj~3iaG+8塒vskKڠgkl{~vLe@ļ5Uz k4p1K.;GV?E6K[W>~{e]VtgP8=x_ˠ.ݡMnq`ٔbRҀ }# WR[wN1dQ(ic h@>V֡6uv wPa|8)V3NK>@>g>/,~tI[Æ!bg5`1Oa*s9CKڋmȅ`:ر%^e xDT8x'ƙNrZiӓ,%e#R-M,qЕ׿~Z>4)`3 XmldeO܁'T/g6VKoZ;&ޑv^8҇joeCt( iरޓ;dHNex5 BlM@9tTbF8pH*TTS|7XzVW3K?hwQB=igr>n+J\$+qwvr~g[4ZLCDv"]ukeVdm AOW5rYnile{)ieK8I5ΓOa;b5&}\+LSL;8->B4Vh Z8G4<B[A..-Nӧle}Jںm2Gzrh$̹l$``MH5%}#@ \[Wu1P`RouX(i;@=Tπ Һ-6:OK_(sd(me#[wA6k;>77.<%ħ=iߑdUFdZ8cCiaq AZ25O x##dcܠƅ*eMn$i "Ml|51i }PG/+s0%A*#"W$pkT՗Y,)k\A-4<)9BlDi` /!0i^k3Bݐ\_lF&((Zwl݋ ijA2ͯ#i)2$#x{/cӓ\A.}~ˁ4SP$vS/vnn3aB4'ܱ;HX56 RO4x'',:]("_,YsNǺnUM l,__9hP͛KI7XV9+k}B:&rF!wǬH7sI nqRҮ[LrA.ʽ9ç3+,`\\dmaiKWe-e1x -M/lr"+;+c+7r -I̤Re^v!Fmi1;st>13}\o)D9]8Y:\BRB@~q6!akfBX}GJ3&Y'z@,t(=Z47D_k8B&;0%!!]!9WtmHqhۆ@}Yָ5yTl>DP?(ʾ۹dL$rsT|1re g_"\Y!>w]7A,k*`y4_VtN)CKV9D%ʀY˫G= 6ӠBH'w}B9T_/FNܰf$Nf YcRWz@>@W:e^-:[C@3,YXI+<~<<;!=Y~PbOYUsjש;ؒiޘچ[Ccl٤i$a(R\d27emAUXwݜURcd\H3UOz/{K2G}TH̦3d=WԤ#Ŕ{#q7ޖ418K6ӹ$0 giM \]Z̍ڍ 3d=Ό UVb*\+"c]ݗȽp_倨柟ߠlWK<Jݑ T5.Ixj6#Ct䷳j _{; 6Q"Uwf=-2%Nz "mJ?}xW*>p¿!D4@H:X :&PKϢ>A zw3xG t ;-.$x/| VypL ZQ(1IXT8z\d@RglUmxR7Y;?9g {[5:Q p6߈w2l[OB zo:TY PS|~R6ݗUZ~k?2ZJӐO5da.xP+z?Ғw'$%tFrfG3Kh8)W7*`ROv¨PÉx{mm2d[ui`VGr(6<"*0aQX=_Fdnl~1t4#s~ XLbSeo4ao =o&IP>@=iI" ݗf^=_bQ.0af~K̥21Kđ&[]$L@\sDL#iٴ"=)D*,g*ch:*7pCc9!vT2Tֶ&2 6&#m $~ڊjw˨|d,?,Q`x\XD. .XXkrBlJ4Hk5;JYh|Je_k0 ;hx1 9ܝu2(^X_^W#ἽN FmꌶXS}5 WP1xdDW2 ~ J(l.}c# U [(\!EO|/-qhY-Ew!5DX.<:L)1Td|9&ԹD5bN5cZ_r[&&/ 1rnM||-i᪚ϥW0zoCwk'$g6zB+s}ar M~F9l>;a2s&$ɢxnmd`<تLČ|!$yl6UJQ)U1 #~n`b kʀȕy;QE0_(mgXXl{PW沨1f}݉.MkIq!>2S8p@`@hm 6@ef40Z#K܉Wdqgպ|.fLy, A{)5,\K*M@y&+˹׼LQl$#C+*79fg-J@L ۻw]7TKwHFmLŌͶTBeMݞd[>HaV.'gUPs[ 27T~=Gue5"&To9-DNocH׶wdtJ-qQ%]tǾ ӢI;$VtCcSCgy.N5N0?B5_ǂA+xljU9;5d!*:k6M&{r}>*k 9t(y 7n<,٢ov.-kEUɃ{KjM PНi0lA,i0NpT5w*:WZlqMoo"g E!_fe8rU~yuaPH~k[ds TncіkUmA)6;ʣb.#3 /6Yٲ "(*5r8Q/A*'[Wc|{rJqu?z)[#tv?R=L|]M!wmF<> J YQYg8+ ?U+C8ZU:{q/]䆲kkمH\YՊ~RhwܔXƍc; icn X(?Yf#&kQ>sl3Ì<& 763^e2©eb{@Hԩ8[-4AqC>,&vD|R/1#f"If%Bj|i%vFWͦ(+̘ѣ&KT>Ӓ{+]y lE2ηp@Ffz`Թ'\$U|΄j C9'ZfdcMFaP&dObkY*/PR{3<*v_!mRJyOpօfc9ɵ}yK@/c~~>ߗ}cPwj$r.]. \86lȟhx/sOwEўzT_+-Y*-vCWn@OC;_6/wrexߖ4Ф|W*_5WGMak\IM|r{{7 8vcVrHKsZ*p`ĚY:IUR $npc!^ʍ.3;>oGZv+f&on[N\yytKsmEROJnܖ_dwҫ*`;-"CA ,h^._#"SeO+3#9C}q}ƽMfM w"Tg~{x^gg7aK>jd^5mw2U vZE[#__6 p=wSG?GʧdG V ?_5L=*ȟ)Ô^>0xV/ʲqqR '*aP R I1&U` M1a+*t0*@{P Oa)z+ blB;4a*vW0谺1w4rL0%o_ڊ4kS7_FūUD/Ss-v7Lw b` Lɻa*/VswgOSyTR|@p4 f@_N?.r UȣDۓCx9߳4(f>o仴 V>I&7hx677lO*0N&TagoMf*)[Cϩ*0T>6ĕ+araێT߶R~v"@L)|CP^xnz01zF^'p&͹\)$ܑYo_>[/t?3]miZRǹarugdzzޝ?5VI@5p{2pEMʻɇߋ?'Mz9^uWpfК^F0L>B/dvroU*g*ez iw 76Q/c4 g7k-O/\4nd}l2NhUe$Hy+"Ly\bZ"ή}<sa]] g7-5Xe!(Vbȕml/ٿ8e^Lؙ}ذۙx 5n90[])Vn(b?w!g~5Gv8|7\)*UM#=z(i6 e!7e7\Db1Z3^NOۛP8) mRk_By*} j;e ji6%4I>],_NHÔ>h-Წ`vO8f`<1A*[[u4n$Mqgh*&?w26;L}]dUb ud`ʪKa+Fre^$ȦrWMHG1࿡0? q#wrc_O SYj*DTCo"1=:ʉ3>U4$]`]uRL{mƁ@1;+KvP*O՟I[w= ۓ]5Q8|5#E5{k|Bf5rϞ+SeџoB:mj+/џo?WE3Q.N[K\Y>;?IbD-bígړC۬ˍbǶ*[wӟzDslUo{wT/tXy{p1\]uڣ?OE2$:P'Uo̺2_7KRŹrX{|&[RWr;2Rk+*/ȸ{0~D6*S 0rKh R&llq 9/θ\Kŭ-eCxɦ[&+/˒W[?a4%"YX^_s AG1M(nҸ7 !s,tjzeǖq]N-m|hO!~jP'S4J+3ntxoZ'%G.m]Ȣzhܜux gvRjluc=8:s42+;KɭL5B~gy=ᎇEk6MFXr5j0r t0dd+Gc'^O״p |I_IQ ] ?c R*V@ sEղ!vU!1SJ Q yoᨦl-(kN{V l?bZk`IH5z ~JA 9$n#$؉t3[i3Z²W awݒܵYr]sF^qؗMQ30{tr/|vJYE7BJ *5z+u?RYvߗG[ifӮMؑ6͵wv*\^&ɥ해R|d5|"!r]a莳#a_A3>9.\Pz !MUn|Tq#0\p#Lq8+vU^D (kLK'cFu.Q6˙TyPV;2l c=ɥ;X6ڒ6g~D8Pa x& "H*wVLEOƖV.:1N hy7FiB\~hd^m.Ǽg. q*o74bE2՗~Q, npɛęJ7rz_iFA>58oHT˘$(cg1xkB_:k^fBLj9$,(,u8X28f:J<_Ka\$~;/8Z . Cya/xqC䯩6ygk9z޾5[ca e^1#-g#0IA\_e Z|z&խݲV_~d塹U ʜs&F"W#y([s|ˡ|cTC qL1Ѥx w{M|4NWbKKGڈdFcM^Ʌ4g-q1Cg,(McC[P Rj/2$cLtҀmS9ށ]QkD z&h]}-#<&٥PZ,,\dqeqFIdZ<#'f]W|fqi2)\=qֲTE=9kFEHG- ޑ#{G{x^ksT֎VBM$S#ّ!{n1h3}f30)f›הZ' n֦[ P2 A`LMپi-i[9ۗ7FGqAFy'hX {1B2i1 )DŽh]VVY1_垸qXii#]r EfX{Sp@ϝ|0X6k;SyhsnQi 7gneI\p*dIEcVKKј{gr[ beeqqٗb,_:;/o̽"~\W !30EEl6rL_@6乕P>hJWAXh찅(N ,'`>uSfRu tbU(PnwtǏ\2?knKu46仾;qGKdI~g![mP=˽hZۋ4I]3RHL/[u^"Nn\,㊓NwCS0\$30VM0MO,Q$TGo; b^1|_l±g&!Z' h6r!D5RN֑;“@J%i-S** Tzrvv^sl41 s p` +&6Zڙ ;)hE lq%/WOvIj,lhV=Dĩ}ʽ2oT@7r>Fy8-}Dĸ>hn@.ӝTВԧiaam~;m\NnpwloMj_e9*󻥥҉,jHۈqm'R2bS _;?f|>aEc#K†,IݼlȺIKGC,C#o0q)#U.Y2GU8\._uiƵ_9C2 oJ d:V62rwsbyl4Z;R #eU ֛l  PK&9%/kw4suNu?|d`C Ț>5r NB*niiI{`NcE,pj_߾2x$E)IIGU_1W5v% v=BZcbۺ}xjI3|\E=ٝ{gt]Wֳ\Pٴ4Ѩc0/#{sL4wcm0[Sm)7a]KWni-C2*K8CU5& N2\Lj֚oc|uBhA-D2M Q%ГzC= )z! K4ӵ?f&|z'bΘe9¬] T&Ui/K⇣f0M RY(, &0O7rDRGk=xg5#`FYЎOϾ.QXƪX4MBkb^^*=d.u9a.mHpӸ/*yY6xf1y֞ݦ!Af6j9'~/KlweIc?0Ůɜ װ!1^ewlGXV9ȩ%7R=y2u' 7ț^;QC7\}ɝtO4Y8*| %XTSՔ%*vY:B_86l' hneZ>nCtHsV7^ay܉ra{ōr?Pyew}Fǃݩ*vLZ1[Lv?2 oH,$  b~<S! ׵k4$% U²r AP W1(AbBrzİ-oİ-!牖f Aw8䞆!ɞ wdHD۳OSn3b=yseڌPƅj]#Dn1ƀIOXnY0Z%v_ܺ˂\ȦED)Dϙ }cszҽp=dɮA=yF).KNA.xF %ty1HĵOKbuG\O DFȷwfCpf^FpfHh^;5@}Us0kh3+vIm#Wgy j2;5h@:M̈́T/)a[,wOna]iҹw'%ΪXW51:jPaX Į  X37RN%y\WBY71K n܇$T*8J dn7ug;]:LL'Tuƴ{r3I7Xn@ P_>g!B)0c4EcWJ |`lFjᅼ\csN1t3s@ m92aS>ݲQ`VMlXX49K*;#yGPH ; |\h[;hc7Zk0QWyFb `I; K-QrJzq^4V [QW-~=TH?3r_%<0g7[@| ,!АIs%]k56Jܨv@C/&#%;#Œ^:@Q,`'A]- e~Q;GkMKƅ21(UZpeʟcca+(;jL,AeGM;Ql-}_ "7Mn,W#UZr䖹1NIOZ=+o%;B5?d]dI!c+JDqрΜ+UQ0nle-$1@ϏAʴE ,}~am)`8eyu{ l"DIVa&.ҸnŦW;t>,#w1)Dø;>즣q0L^3%Ǎ7O`yŚJWdC6=ؓe 8iPvˠGZ(.w||:v19b q#+dMgԓ[ VR>hO^Pӗ$/mCzvi9'Ś.7 qCM~i>4Nl !R.PH'CexzY#ʱ,k c!IUvs6vB<>~ʥJ*4@R_+cP]0ÆzNڈLeݏC[t\A[vrK o{nE/-m]ӱrn[ō򨖜%-\~Xo򧑑%g#O;G|zTYj,67R`壻svTv0Qv|G5hKn  %Eb0yQinj5]HЭX -m aq-<2͚K!ҍmewh;`)k8ٻ4ۊn,*D5b'-9#bGI\snq"Z|ڨvǾ!a228Npp,_̰BՁ7ʚgeVͅry+#xi;8JP<b`GYz@6AX|w/B f莗FkôY02s/sU~(iYk*kfVW%EUrwL$<|4zMq^Sw4mvkbP`Y{ ]#4o%oǔ6 3ֿt< Wo3Nwe7JndͽvD8lQ;gOͅ`[ƹ6;qʽ߃#4¡n{#^ĕ qE q?Zf01A"#!r#50TE8 =XG͝q⎗;lGzr}?߲= EץAG,GWPouNVcőxMxȺIţhD {3T垸ʹX83N'VBVi5]$YέYT5ĞRurF 'W\oHi-w*jDT*ғ9DzTG5sJ3`m^%h`A9s_r=N恟;=CVcS;Qf6$Hs}^̇*Bk̮#,`/(8y>GdnĜ`mHrޑ!] 7eOE>7R|<2?a,goNٿ*Gq/(C~ilt/3:&Ҹ4^V^Iuߥ2s,eRF0R %*t!㐀i.g|W|5JeQr!lê{ti7k.{eS>"Ams5]\./}n nl*/*3z!Gc8&a? 8Pw28k=";E@h$KTFhձ/I ԇJ2\ ]U UF͚P 2)fAt*B$/i'^c0PDfmIr4SZ+Hz-&#)M[-F-@X R(2uZ Tn [jB iL¸cf|tcH&A淥 㼦5)lGKvzHDcd?؃dɦϚ {g#֎ )7I(ɓ(ߵ[.k6:R RLH|b "#P`iBl%,mXqrVsqϫhIN1Atu&F1qɏ8GKlkc B/tRJZ9mg9SG;|;c41 @LPtӸh#ir]s>پ ST [rSȠ2xdU3E]b*v [|>bg 16MÀ뒟q<9 zW+bdjeUk쏅r<u ,AjA3I#0?+_6p 9zJ(lk"-&bY#}O{ oǴCnz}!C*6+P\(-~g'7A![~)LJ~ۂpA rXS\?rHҚ/pcCٯrH*5§Nܭ%&هnȪLyCo|Yiڊη+KE妢9A @xx5_B|:xz;&4-H&dqk?$<`nX/Cm-5Am>ċq)7-lV+UVT~n̓},.@8 RLJ~3WlBڪ*ta۷wc{䮛^ ]m4ޭr!!wS5hx6Kڡ]lΗQ5RrIKfb|tk[ei!Zɫy M[p}9P(+dU.0o$@:ee!Y?2%NiX`{P#R+*n~EΗKF-ͭ~?wI_qf;:)VȠʠh`Qi}M實% BTʯ[}{iu4j2wz&m޷"  !Vbo jpX^ڳ#@@3pXx~I7p"~%=q -T /x XسYgo5h;Ok-FlŬ ăH i3|S)g}Z;iUSJ6֮2p1 iB]RuDWTI*M1IıKQ>fE"WnoG.TH"Q7TYV V_l[*!g+.g|yb^4q!K[;_(Tߴ #IƤj*~̞m}reaMg܆fdJ.FY>MN,̔-2X֢NAs@ze Ov6` .'c`EaYK\$~<&6 `(`ҒNl!^gb#d7[j,mw4Llnd*'Ѫx;W˄U5p00vLk=r ) B{\KQPMp3RH RGocM ;IȾiVAC& ʼneb]QL!Lz0n]CkI73D"oE.Eę ?!k0H T[$ӲEP4 (c3c!yjD7ק5*oU~l$qPΗ7gu}K5:,JIO6FJdz 1!m~&U4U+(d# 1 XHת'`:Z_`c{&Շ vZ(5_|-bPlS4\+Kl&-GpԪ$R7kQ>F;vA\RƫqAx}ZKawnvSVRJXlPMH0F@m3[5Is72ѡʕz\ 3~WA%3\ rv-J>]Heuc6Ag)'r-TsUX[|| rrMߨ&2);_2lb4KZy0.yˮ7ִ5+|lEPl .5mR)ҡo};s,؁Q6'f;92ۺogcXމI:DpwԂ(< ɁK/D*g򮍩0tWD`hgСځg[F,>|"e#m4km#QX-W˱L+z"IYI[&Pvivbk.a("9k{6db+8 8aT `M䑹Hڹ_a FżwmfNbw[7SiRXJ$y? Wp_L, TyyG<G-*oޠԢe $bb`kY(}JVqRJӅz(֦ <ߌPy<y4&Ih3պ:7TV:ۈ E YL%V| tK@+&pNAeb%U5זGa:Aбa1h(UzQ ev%`ĬV*~Bj,ޭRv5lwbN:yv;f7X޵*ǡ5܏vƓb1n\oղ^=F7j_Xfkf=Y\h36Sw߃/N _k -dB)]=%Cݼc1|,J&`8>V9lVĪCdykZ؎Q~CH[HZ _PJc`at[A9qƏOoS7X^k:%.B8&޳Ճ5N<%6))4?:%#Ќt[al3ѪUS2Ll]i=b0e%"+-UڒVP.=Cm{r^Fh΃eFWMz vaYI70ؚЃoD~dD3%  `%dqwcCls=Nɘ]ZBPeiUsincgdmsX)L2I\E rCK)n SDr4*(&<_ԉeO58E9,Xp3GM&wm KNz\tj6_SV_1&#h80}aLkZ;]}{i.M](@Nm AVYjv,,VH꽅> DMžyMWMYKvܦ[oMÆP&W 87C3/G=y~Z܉j$<7 {AҲm%sҿ nA$JNmouYitn\0: r[Mټ m9 L!IֵW&qRwZ/VQw~Lqv,EJW3事XEu)#H DZ {8<0יe/ =Ԇ1㑐 y-OseW+g4mdzm:98Ro %D~T#ɶ_eDzV]eP%WhץqGɍM $7)}˜"YOJyyU{wgd"Dy=?SGNSXxAsb5wi05=qT`,uv]洁~շ#S$33ЮK[o}l݈v}^:,֮:҉% ˾UKꃥ{y‹Bmz$#ReL'vg@& Fl+PEC,*UTy$gİodh@Q?Rw[|e9X4B#h`Y--9FxPmʻ wk /pMX8*Ǟi"5p D~9~'В:h]Gv/#ӛ`9 K,rO, "=F 侽@a5Sۈ,݇1H5y3\J@F3{vL }{ӷ.NU>/ iPx*h>)/إrjNLKJ y=veiSwh/^:CȦ}01¸u g__'Z̚SPue߽Vcq@rYʠ5CB5ؘ ,|?Ԓh_tq#=DB3e$i۵i̠O>TRJ F٠eO]T39lpb܇n3wq4Q'U?Ylℚ:@[Zi7Ij^p8sG3 =BDEZ[Q[k qSUTTzk%Jg$V{>ca]z0Ύeyv᳇j8r-m9=WuWݵi פx ^ 7Scӯ FVV@̈́$gE3!ɏv$ +b/ҋ0d3o+5ڛnReצ]Ag @RiN4cshXVwd?=i\(:ONC쐶6&}ѝ<|B*1g`v8''+i)MVɉEE s8ۢ/˗\*gqGPK b,0VsNMR^~l*E U>A94ln-ʂL"0'z,-[C~2b6 N\Qqg5lnL:0Oui;7_dKdDZٰ4ad7hwwWBO$qd q=c kΝj1$OhSaL(*cgr2KPVv>y}}.#w,kmtmEqmqO=$'*:,h5.jɈЄ,ol%Y?vTmX(?]-׶g婲.`W/ heTYL[e8J5ZeLaTkVnD0*, c+OLHG{Q;4mt6aכ7(LRd_<1ʄq'WEC]cK_<^ e|ׁBD0x5*侶ղ8vRnSv8*7䝴'Wn6 \3/Wl/o@srmbTϡE6^`^.a=ILߘym}`pE1ߕVL VGăF]7g5'8}*, )ڠNv UݖC!rJ?Ig[G5/~<;'+ט 3.y7G;:yI07sȵemў"'N(! rSsSڊ2;+%s%c,R:͞m_T"&p)>FeIFx(/;a}N0q7 S[:GXdsy(J0r-vppiLe_)0:GF1;A`?hl\bHf+')X]mSy͓XkP,E`Xw0{xC'Ӌ)'F޻ҥQ 9Wŀhw*8/0k$o[pf>pSf vǸZp:_bde|%ab) vJ79rr:q'أl*3S,xdN(ɗuR:zB2ۑ]9+m8@aa^/Gm~xM7/w" g 'ܙtzEt/auAk>,N 圬;I0/6bÑbsb~+9 z4+D1[2wNCr/Hw/4{t%=QXiQ6)\^| k>rq :Y-Wa{KF^QrHB162Ƕx֝zf>. j(r}41| }cvFcMLH<j2hTƴqwtzf.i% >^V <Bm WR1\}RC 9gZ̀i8i;s쏛Ct}6Kk$WIN;Lc"$'y-Qbѡchej *QStɺ!|+`2O$b09B^栏՗V)dqRpϊbԀv/t:X&lx¥;ckPeZq2!+U]* ,.ִ †BdHYBZsK\m٩ڊvߵZ5RvjoОq@4:xZ:_D>$QOTW-e:٫^LA43S؛T8LY/wQ]ŵ=]Gs'C([vmס䧶6Q 9aYB򛸷xc*Sl˲7e=u q%|ۭUq첪@hڋ0;:h)Ré#`9~lLN3e]S@9u2Prp9N qN<`O6٥7øM rsE_{y8rAt-̬CAΏvS/WwS2x*nC杙.N#w28?^v̍;":<,{k"L`^/ûkb p;UZUs5m>5I7([,R I1,hՕponJQJ[%d] bmbTgSd< ":Dqe+I+ye8 `.ŴWmJ͞Ȝ&-a-?[iY ^(mlL&Ȭb9U%n\x(F9/ZaNC I }>maSiA䥼h.ힼT~NB+0IS(BHrY?qR+!)44.zo ΂zybW!a4)<1'x՛) 0"f%gzv9蒜i8opmIF؜FZ^!fpQBj*8U2;loQ#2'K,: $4̈N k)@lhnzgwXDE8$Kf2?h]e9;Rm;U?Nz ezl|/A sNҴ p^0?-*ƀ΀$G=lɭgڭ1oL2JRs1= OaԄ MN@zx(H`Od ^]FeY'% 𿥥ns^]Y!+'> ~/]*?Jʏ==ԓ3Z~6~}@qxa}H*K4oSU鱆y ^Y$lY3 ދ6_>IvMEK?_s(?VSڠSèKD7}o\^đEvW: [J(Wjj9#Fh\)moAs X-,4&G.]9+ikY!s]&2װ,V$ u2ܝ_Z9x"jmRmȠëmYtJ{*:rUyy|μy9c$¦ яR=X֕ʴ1y:&5gkVb9YqȦd{tc`{R^K~ -~t7^_h VHC -[Y^ϗ[}ʆ\BCyųpcK]U#ܬ۫ (|IcWud[4.<`C5"8yشf\A{75~CS#Iq?"Y ~G6*T{,H6Y{,CbbBaf*#}sȩ¥d{#H,mV۞ 9V8 vSPkl/|4T>. IȀd8c ha&q|ܴ6cwLZ!q6Fo.Y6([Tpߜf?!ՑictR ]&/Wzʾʁ]˩YEqyCXg[Dq({L F_RsK1Y?(]w K\}Ki)q*yߴHV"܃szIO.sCaij4kN^A\PnCc%3wi8SA í7m|wi?5kKlׁ72Y/3wK2I00+\#?xT~:U D#O3ɥN8q>q|vN6&,;~z8f9X4+0&箫'ײJ }nn0~|T3,]o.6t-|rj*׭+mdU̾2ofʬ"yge5q6Gpf<^m. j0E /m:I 5jjZYdELVQu+xĂbS7 Q!nAв ;xQr O}y$ bg*:Tdh N}9ru`F;!mLq/ 8Z:7Q;;tzj[t̰9D9%&#ZD(6.h]N%"a'W@4@0~y˟WaK~=e6@i֊>?HHJTb)%QF"ʘj3oR4x[,'mDK\~4e}od}+.GnA9aSϙd?ͤMW@M'蟡XxpF־.WKG@Zඨ]@eJ AjrOq}iQrA0s-lJ+\+cǤcSVqQSl7JDEt)-5[I{\Ge3` *-# ːY~B!20c`AnՓV;V̰ f,jɇΙ y.u!r9SR!Z;wYL ZgRΡՑQ99$>e&%D? QN `yT=Jb@Nf][6;ik )ry`Z.uG R C|χM[|mhϵT?7M[LEƱK ퟶT?L/m.#R|/Tp?-xxuER[̙КN&0_2*F LZ*UR3?dsI~_VoԚ//5*HzT/UOXWmOj!cGiQxϏZ93Untg9vV9T>2)mMkGeW%JY_''D;#AT.ȸrM!E"#imy٩)Vh%3v|L)|_zaY$qkB)`gwzG:pO`S3GWT(@i-LCL kC E.X"2'V PRBH9KFB ڤG\p٘gemG(bAnH\ZvCĻD ./ * EAnnpKzO9qǎ2a:d8 oH.d}PyЉ" T{V,*O*Λ7i3N]v:Е:n\TvƖW&2T#mCn< ZnqZѵ73{۲p Zxt' S{?yuH8\ S|]./"a^{+.7 KdbpQVa&T2`^AMgBiCN[,NaBv㚐7s flI62 -Pn5ƕerGQUޠvjmUWjR1"x^e™LL#VeVt)f..p٬s2,;s+m띂\8ʾ1齄9Tz,Z+jF? v"ApfCChD?ңܾTHy0(Vqj->Q^H|Oqc/#RTn}i̪|.CKqJx/.ViLOU 2>Wf}5SIrB5G(Úsll0=ZGr 4k/<-bӔݺ,\z͗E٫E2%Ԏl+W WI' eHx܂RDZΖ{%}usiqԣcU^*hdSkm>w @:beXɜ=+xGXq za>SH}YؾG =+əts##= mYG<{XoZxrt6%;B|iRv=P@^ 'ͥԽ:Nuq#*m &h٠i ݈JpnsOZ |x>=f11yJEnT5nAAlcmNsiIB#>* pDA"L zz ȰT"kcljFT.dtd-&N>iB"r4ۆNgoHJ&=l a*klcgePpYnHѹ4(:?b_((s0tVˤs*} YǠBg,o4'V; rް9Lxu2œ 2cK lW@\(iYl*KWܵAVHZ.Urv.E8yj)Y%ԙa l$\3_ŕ^1Guʀ[^L^Nkv?>1$ȅ''8q̏[ڸ0rjw`Ɠbr9L>ŌhU}fO o;!/.mβXO-yʻ4(?vȜlȆ@*q i7dJRCn@r )q`StiOF瀽= ?ԴFD\g!{ɲxN*Uaec:e9lKnayS -gwûh* KUi*3QpY|nN-sTTM}&4xFȜQ=G 04y0Wn4Xh:ɅtnLK!wuu q(Ǔ uYf˶8S-0Ea-k(`i(A(3{`4)2Uejlai*t(#s!i3i| ʰ0<09hέ 2{m Uγ,)JiJ\^ IqɳHFv;b&fNxlHNՐ"zcÆRUV/K}hauVt$vҙaFP]NΪ [z.˚Sb_TN{S7]RNǎu&[ȖSň-M mX\=x5;՗Q]*MYBM`v¡: _ɬ:*YRdt^>#B5ڃ*ѣVE=ٞZٖJLymO.$_ :ҀN%3|3197m౤; 5Y4Tr-%AujLQEu#Z v:Qs2+%%gݾIcKnC;uiݍWc_z}׎`^BKJN%'  QH/wKw se#VFJ{ =,W!h``? |`ɼKŐ4" c*F/eJhHn! S\D%=AnM&̉*A'H9D8.' 2\E+6Ct!agtFpԽ[RI@f\9myW8Q ԗ3Z/"^ӨqrGlgs&ț&$ *[dmVjl moW|D6Mﱱ%03-Q!g* v!=Xv-<ă}9g<2Nd\ f rCeIkibZ=0$$_ρęܼ#q3Rmw li/ceE#7[CGAKڋ/ 7δ%$?75~2m: GϬ?cV^Tɒ]\H18ipgPt8R23]5:ZF) j4ǂyڮlPFI23bshC2Gax$z$Ѯ)h2[9U9TY'k{e:U| o8S޿ wir# e4c [˰LVDYQ3nw3 b_+d7c :أaOTy Ui3]];!崉cͨ)Y&vAD|Ӝ3Mj3 =& Q*Al:?JUM.ȣUt~pj"U:wi-IMbC]ý;ꊴdN *h0k$Xj(uχj6ܜm6ye68!:: Y\h`?8`.rD6͆M Nao608mrgeR*ێ2h)kG\/7fr&$3a3]n9\?@2(bL(E%?7*iY[iY5})E+d$ @ވɜ͛ -4%,7ݏmk/j&/ǛڿKl'9(xܠ6h&]+a;[m[Ջb%|)GQ6i|PNKOI 30TiA6D{vMqr2ˇSh܇iHJ,wՙTnB?[FbXeA T8{;, &3FdKlr`GX-knsT7=gu4$|- \jGoߋOtp5Q,;ll¿ Eif<2Lۓ:GI,&!2TS~;s}tn(U^Je"lrFB޴;)۩]hVǖYvr1ÊgRWN(3/K[Zwb2 ̦#8'ʗd(uM I.[<Tg+$6J) jxњL ԯ iS!B_,Od=rʜrk)Xn>hD[Lv3MRYf42INNA9c[dIF֖.oLq93#6 *y-1\08{pDoe/lC TV'<9Zk*2M}t4DA0E܋;pNSu e*s +T:8+rc.:cc4&7qY  WX֖#bAI2Ӎʂd^1Oq tW ̘!r 6T'g^j_Ҫ/[UDE(DzP8>K] PÌ3r%w9X5TtQj ru0-d*㻐 e8z4'H[) ߪv2, ةs40R\?l)!LL47Ii6"a6Wp8'#Y82Ĕ2ìg8{jX}rf(Z!oV kնoP$砧C~-]Nߙ 1V|J.<rJ!t;: zJ|B#],I>ÜWn fޱ+LNޞke$mr,_}w/jV $J1:F2F*J,V ))4Qy95+mYNZ3BQ>+jo؞t1lcߟsv0 N{rbp{`i̴i0<ˬc%qkPtY(j.W=#ћ&AL,_Zn_9B@Jz7ViK/R*9Z-$9h0}ޙx1zz1s }`pLTCTvJ'MtJG+Nzq(D!|!\7vu'tn_h;/?_>30*P=t\!O\~^ÚDJX |怏CX}BC䳓hvKҫ\Mpeb +-]2ϩivdE9QO3HXaR~p<Wp}c)8+"pe LfbWX1+qʋۅƞ}ޙ73@9n3gOA)no{ tlJ` g[uN=CMb\$o5YBቤ yoN n`IM2 ygD=J{FAs wFc7KN` X 2O `Aԥr4\XlĬyԓ%ЮީƙTg+}t0)xxZPvz:`'̇czX6835R<:Y,WΈݕ;"jhѥ;Ac>N#.pN\ST a-sE#-/MgerN!Z2LmkoD=2 BNS=YTyP\BNNJC:{w YQ%&\3kx*N;}s'N+K_63A ohܼ枇A )nH@C7dEX#-Cǰxgv9zd 3=v f2Yds=K)d0*r1Y9Uzh lNdę FGgBqd95*/ȪU9u@|" 4+ `{]w␕$mQ 5lL .&Մ*vlzqAe9nW76M_.p˛'yz#Aj4kV+"'*y1p Ƙ}z.J۷r(;/)%V 6ZG:%|߰99^U!6zR˲=SymaۛM1Zx=o6N7K#u,%w>?K1m*-w"x>^5S%0lVV yCپ1S0dؐ Wz#'9Ab _omQVF]SuW4{m?@Sl(Fr9@`C aG8;jqOZRbhc=eSY[Jw{v "Q@GAޥ.>{M㕡3Z`"gOFÛ UN= rgگ LfѲ95vzWI}>T_v]2Љ1WONm*is\ts(B-ϦW!NZrTcje9U4 7%D:J^u~ FTD1%7Uc /ѱ2\ Hʙq!|8XepVb,oȥ1 Yrf"WfwcBv7&8gm~!P.W&'c:8nB 3JfKK(-C@|{A=&֖OZU|es5xс!ۉ؋?ri5sȒ(è"}=-|YsW6:1>q.L=0v0Sd9D N<02>i8ym:8ϗgoYtg%bq#bIq xO=_ Yj /nH|iWC8)K8?r9T2'/}{ l6-EFby\;mnXjꫧ]z"eZYiv䂡ENV_-OS_m1O9S%[ AUJ(i!9[,2lRq2kVf)WɌ$QL8ޕR/8J-)ʮEˏa]%DdWIiDYgyhP(O2a@xrͮƵkhD9Qo;d&=Ǎ3ʣt2};ωMVZtfH3 EsP38pY*'jCZ0*%szW;AұkOb:s&J_wdhs&STkh뇎j4lT U ǭTOv eq;jU EFKbN*_SP=ap^3}c_fd}Y۩)`L?y>蜔yH j )rEg'`D*G-m̰s}69U%fw; r)i, SbP{bh/Z:ĶA٭@"xg1p ۝X}KRByq:~oHE= W1 (&05/ȞzUL=ƛ? \j*~'<2r~%\D fvK *y'>tiT dKʜ(xGeEBbbG|D㕽]i0I׾}}^s 4ț{ v-!;&tˎ]G*ۅ(mw1ςKH٣xUA>64l"gzUVV\nё0X|1վ>#%¤`4 X+meE<",Z^n NmybP2Sr @ +V"%w;*N ѭ@$w`{*C;NTÄ9 Y*W C{鞡ܰc(Ϙ/,O@`m2M9dufťxz+fHt 6R=up-zRSyXԕ-U%qsNVyD$ʉQ2ε:9E2Px7'jdWE-`TC|#F A&^99[U>d^׿Z>4ep WⰉYˡʥ|ޭiT j`dq4ŦIZSmR]InCњEו,π"g=֘\[=ѵkWљ(oHvɀsMY 3ɲD; Y/}[鞹]ZJn͂F.ٺ^Eo0Єkxi@$]w9I2ZC2 ٸWe֪I4`=lDfR&n^#*B4@0ӛx#pff=#~Ik$2E/Xa| ; {DxQdSܽ7qU,(74&D2j܇s ƪ"l57"{4\d~T&b<7'<{K~Jm.!υw̄-#[V,_#k_Tɚw(DWT2Mvņ ;igl=[~fo,`,;jC{:3wjVɎ y\kZq9k8sr4,"}Lfk v=X!TUv6L|l8$]nGҎ\W Aq Dhs?Le^O+ICL{,")frʾ_lBv+H+L&Wg36Zx#JZ5Ž6WAwͻ hh! PsygㄎJfUq{r0rNdTncjDd:$ N#EtZgA_~b6V todL$WK9WSl]EMX 9c_qIc5Ё}16.EU~B\9]aސFWP3cdؖƏJ[> hqw 9_o(U*=%v &*jM-E1[lAѭ99#5+./^`)&$j 2R#ӧ/]z[d#yyȒ#1_jBv}w FwD~'N >>!쉯Da.ʳ~Ы,0[< ש[NY5}rdjBS=R6 IiB O M?:=4FTotFuįxz65X 7^hNzm~=bg XbK.B󞓳vMCݿ0O. '_gv%B€Zr !,2로neIQ!|,w˨P!&̴\ UWH(;0Mn~|̓-e~_66m.!G,F٣$7zFR2AH w'3on4ѩ~fw2ͩ<0{jN̟cr]&DYW* K}&kpKWrNݺz9}Jjc')9o!W}X m]u lɦTM=x`i|&-9r?QrveûT^2rp$\z$C%/"Ǒ>fgg\3KZ*Y"B[dUnedΆ/{"Oj(X8Ăsћ²[Jq- u*T."zք~CU*-^/|JһxntJsQN1TGS3z7\/\q m(8@k`'QũLH Gohey{11եsyU 'q8O}ORs=~cH8LT"lrY}t(2N̷WtH!OV / 4r==r6!Y_m=_>6U׺757.m1ϱj 2 좴'O Y9!KҝӲCVNʚݖji+cߡy<5JVUR31Gٸ {`%Ic2Ǚ J}ζ^mg(v_Vi75-ym2>oG̹i%2 36{:UX+ª# {/B0t?nŻCٿ Al'sKxk¬0PF w3 'w7{rӥL;w*wY`&㣭s?B3,@/nLXdkbeh# l1*z. 򽩥h<[M~`ڙSzжV&JM29Rmcq|ژ#B&&EQ*.XT9ϴP cV?nɿ>9t sn"s|fƂ @R^ekYh'F1al) U6޼'v#m ^?jp̐ɓd0/S0ϙ*OaϽ:_)%5K8/ӊ"׷{V='.,3X7lش8o~`K?=gqpTzƄ?1c>#Oƙ!*D8#?RgQ9Ahfo̩dYV!qLN@&T8Y[$ W:c兣#i?[.8g(Q .R_<\ } XOn&\0ZHѶ||)d&὆>d %ɜge-]5*u'g)oVDNW~ ^6 ~[%T*zlkR\jf_0N'iEej-.km5qrrN++.f )H'4+os3ĝTSC+[TVuf}_ |Ͱor']NYX]+L|s'۶g"KM^XÌ :`iY蹭;QSҢ$EpKRcHhfq/ګ>>GTKd׍_CFv~1i]߱N@]Ld]UFܨ9F#e[%&nrF6F}y,ߨii72m O%V&Y ʓ\h)[2$e Aף)狥'R_ݾHHcK|׮a}YRL~4o?f.8#}?UM:\=}? iȑ/;,7KLU{'9,u]~L?3rXp@P0`:e]yd3EW%zC›3=^*9۠ICy/ *{T Lɗ4sqfA?0_^d*X `54g@#<`  낋}jz+Dݛ4V+w% =(6op0齶\+}i@`Z${gk"ot3کc `d?5c(SpE&]=09;Y26C_leʄmBvؘC$ i4Yb~4[WYa+IЎ@} ~&Sә!wU{p,;1Fw.4ѾSP'YNy{*}|њz{*"֬XsM-F2D͛}U˩r`9? LN:x=Zg@MH717Tʓ?گu*Un4h[3kWh4*B*a+éU?STwmRڡu9'^qhKTHݓB.ŲJ9+W~c⭼j.,xBT 1=ퟕ^|f٤V <<>#L:bR@dyū=~3v/{]/)oY\JRB˥+yq'yrﶙ%0˰\\A 7[[y!m sSP,c L҄H3[dڤh,oX;!cF! cN~j cu͌&k xpš_/BqD Dc6R@ )bIU Zy=㴮h m|tyݕ0"3}gbU9Mܓ5Tp&ϙ*H4Ǜ W#L@RB`KϒsNȸة~8X;ltlu&ʼ᤺H;/"g`7r,T.QF #wg]{kJ >Bv@ g;K=,4}rqQj魘%QՎvONK{/N{bgkLg2 w}Ed=Z2%U ]N '`M-ӎI]y!J_;k]9G /tb#9_Ԏq /LٗՖeu-(]0jxkgd!@?fsLz˴5!p 1xr'j-q$sRY8U%ol(u!VkkP!qHsrr7駝;3LwC Ce4x)]diƃ|/}B͂<Qh]md{t= _'=oi=B7Zfz8L.72!|4Ţɮ\]Αr}u+op9R5gU:׳YH8<{SmA_Q:Yn6]r7N6a,OpJG 0[莫j:&9Ws1 Kj]/͵qφ@KroGqфsՒu\Yij8͝-6`¦xGy ~j3 br{Z<*wKv3V^5~?V݊=nUn0hi2b F4+܆kϡE?kB>r<VҤJkD_kD$}d'Hid]y&(P^ _}`h,r'x j@^պ1A-Z证u ` k9 FMr\^d/atєh_-њJ媖C9͓g5q\_ccaa`& ƒd$#(F0$BS~] RDO+@]5Zor+fq)i-&NAL&K9Rղ;1_OXOΑP+[8rUYNMoϴ' 6>P_ dPxjP Uu;-0i9*l-xPS_̬)x '=60S#\#QZ$wmчV1̎6c%JKf0I䝲͆O `-iRf[850wXYÙ?il mljT$Pn+aV4}r;HC fVcةȤIarJݨ AFKkj}J:9iDKA8P|8>ZP}J7niaCkyic/= *؇ݒÞ}=p}ث2>|$e2@ }|ȬW)ꮓ)i.MN9* Ir>{{& Idt&L&!/p`aSPh0x{( Z::3A(TAj9UyX( #p1I**f-3'}!m(o="D >\FM}=RVHvIOVYe'\v[^3w8Ѩ>+quK*'ƥ݈4k`KЙ,]弄!v79oIpQct ۀZg9]^u4rmٔ8>Kݯ0n|Kmd)[a](۽!~fr a*bäIb ]p&$u&sT6  2ƹ$]>e5zZLONEMvDZ4,{5| VLkӈ~3OdBH[?k-T?PN#bUڗVn?Uh=~v.9_*93Y4¹ʻ3]r͉|#$.@::ᩬj5c!~9dYf،cqez lL(7d?fy F[\b{/rY3*eY CI՜uyr+ȍmԢ3IV6FY` \ޒ6p4HIcq*oJn uEKC;p8K={~ˎ$JSZ./F^:$|>z5|ԭ#ɱ 1i&NclQ'0teAæF എ05V6gˍL9߇\g 5(A \W8QB&0`)W&ʰ>5KVK]Hh}D7h~]e;~e}9y%"!*!8;Ȭ k+֚T*'U6VNw:v4٤r;B\lC$8ag(Z>L+;1k jh7ƌ`n^G۬v'SHF(jX(-XL}Hs5fՇ)ҥ9`[ݒu|P~ ʫeӤ<n)`˻I*)mSpƸBj<灝pmNe\$vp DO-r:蠳ĦBjIc1/&9Օ۸軂$MZqu6ym'X iO0JvfnJXPtMd L|G6UR6X0\ 'R`!;PX·.$Lds юz'$mڀ3U*ov[tIeD@u\]=1r.s"jM7?JtI d|%mED:d'][(A\GD<ԠΩߴSϑ5ɇ㈘X#X&< <ԬS%B0mRFyrB5g|f0N] XP96 hEc{ZW; H4r-IJKČyV2&yrSNp׺$G*;dum uC:=8tրEڵJedosҤX+YyӅx-e5 v60fvsL8ʝ}S]E]r_k4: r8U2xUR,-C5zrpй.ȷc\,c=0M?l]iΞjIvh&1!R4ZwZ\[<#?i/olدs4~ @dyCo?+)9,5cNh.g9]Ϧ':L W7;M-ɱ/VVN& @HATuez!NOPE|{rl0,S+/S_ խ%O?i\5,:0'/؄'bd1FuD-YDOeO:,+P^MόDCA`f"_9:) ^4;G"YZ ԂT^=\^{=R^{=Z^=V^ M9JW]-rJzhհKJ._1FSlǚmyg fP r} ?4y5Y<VգّڨPJ~3)21><f|0 -"_2:L4tXwUMU5fEW !<Vh|bG`^ơsrV7:U׀-IS`FJ#$Li`Ȱ"E YN He?C؈9L`0s 6/R|Ji6\Za&֨y'#~ZN}gU1rCu $HϏei\j25V26 /Jk7Itch3(9 @w13883!-C.=b: E;l-OX[zAw6 xbJ!n#s`@8:EV]4I˜v셵Qe$ofn-sVz&e;zK_! 3K_fנ2;6acT" ʹqڵPԕ3s&d);.-tD/F(SrF1 ia?PNw+wKx=15QGd{!"Dh&X&h.oЂ 3 yw譄;TqÐ$׏-,ϏQ3Mj.0WMr3 I_!)^A5?%=ߘ :48 -OvǕ[ [ h򺊐h&Wʬw Ӕ|sU)sxnt:M\Ya/+ Sc٭K˘lo.kRRvB;aژ_L.FqeNn(/>$`nmZ W"٩Y@\Ct2PC~r5 -+'geǮjjZv("LU ,X+3i9)tlf}k"'$_'mM Mי[l(}]i5sNdfZBx I/Ё~. \_4?5 2S&k:`eD֥SPXuMW'V7rq쭫aճq UYl2Y|KO3׹A~/dK]Kc}wBܐ,HkQ}>PwJ{ѭ\ )@-}jɌێ? ]:ÒohװLm rx/&v 0W &I]Qy saT=U]jP4(i9VTx'(X0=U{SQ'bnB7OO[k3U>+OCLdkl(h/ەs3]|xsp(Eo[=!5O% V] ?껭L:MVn P (ZHntk8KrbQePmע0dY^yoU~6J )v5~"-L|X/^dh(WS MHa(]PrLM،A85R`q,lDg_rZ?EM&_HKtSX /ߴO>UDGmveյAS@sIQX8Qi,;xgڂN >_;Qt,?Đe0rtّygV-ߡe3 ~+hfoPn2/֭Q9ݖwFV;䴔̭'w>]K@vMvwJ}ށ?agTOiLc_G F)u@ S8v׉yd'Ci2n(sd~ٱ]AET0!mf-iFg9CCNHё~ Ā2{˰-U4ZS?[6M=zSefwfd)Vyݪ&CMdfg~D@3rO%df%G%m _|p:Էj'"`VGP.i--aӺ)ȥͬûH@Kjc F eEܸ<.GZ3o^>CUf:]mq: LGzrd2]"!u.MT}ĒW~ɿ'-U*U+FF,mka#8?4|[RΊrڝhQHaר@ZYNx&HC,ݑLX?h"J`NX8Mt` l>}ǚƿv3٩ _w2";&f)`kaeXXf,/)caT.nH謕(+ۭ7x`ؙY=Z3f#")=c77sYn\[AIyOSDmQ,r2wg5k3Mp%l(5O#,ZED@ϳ?גS.e)Ĥ[[`=޵XƨvN(,DiT#p?Am]BZ5\8TLd)͹xnAP]NqpG%x%6ȴgT_ĭ1#lk a ]Ք7vLK؆5L=:Ζy*[N(}ܸ. +Ma>jJ*W!-2F>#0*7}\77,ƥf*RZ9YCzI[bzMA.ZM`;eכ~#K-J^_eN27aKpxۿA#'K4c%d5vF{N>tW*d}P\wc09?-?ۖ-TIg:Hz8LW z GÞ&We*1c2^3{E&A%3F˓lsFN)||e%qZA`DvK}{4dJ(8ԛ_Zj|S R i"J#)#/Z,^*uRZ2U_ZjRCK q|׍_ZjRw -U)6 *R{LMv1wdB:sWHK/7xb +*f?Ɲ_!صTZbY7ljP'*6&sahFNP!T.0~|).!'ԑfےxNH{ZJO<s9'p$t˧mIXjg9 ÷8bG?0CT;xr`WK7ͧ9@\Z;?*КsM|7<,w"" 3DkNȌ-DyP@島3A|WN3 54*jQCo[C}!6tJtՌy/da@^b 34;|ʺ9UNHDzY׼t*gͰ M/>@⫯+<${x[[^mCNyW=@F֪_ Ѷj񭭖hPQc}*?5g~gϚYff̚5kZrC9q#[;5AJķAzzXQ3ۭ8XLX5zOVd:ADfUyX31 U"hdiV"?AWD)?RF |~|.e>fpLH AWԃl*Üpru3p =ܘa{Օ#I1\G9 v4Z+<`ceQ@ĪȌ+C;9h&~nPoUPog S7;#LeNܰGв1%GPk&}TBw :*g#6+ z@0OGW)WN߰^ҵP#6ẂKvt9y7<P Ev D%Z-O.TٰlZЄ`7!fb^t 6HcPc~]5HGDuMFiT3 0MLSw"^TNG T"g z,ݫL6ZuMVdM #_D&ڌv™y{7*MT&,fWW(tQ͇ØY7[*2B{U3#qs9q4сWQQ$H09\9=: cڧYgѵo಄nA\<2l_^ƭeJb_(Q[tt?hcH<{o; s*RCanI.BJp8*t0N葎9{x7S%E¡_/(/MP+r3i_@F^Z]ڿU7*+(Fy3`c6H)0)"kcXj#+LvMUV/UA ܄5]%`~"J38XI$A".UrᰈAM%X*a.CEA1IZ.U1• p`D,H$osIDmůBey&Gzp\z~6{_9: ]Z Z4˦I &D$ R=xXP̧=À(&S Y0dɎti 0ݳBhlPQ&q=XU<uK*+k]*hhX.T_bU+~ iuDB؝>]x$b5^#} ,=mr}aۡRY{6Qȧ (_Ob}~62Bѹ2DBs#ipǸLҍZ9!0#EHj8(Up`IҋY-p[~rVNH%shY b[?4 q-?`=QҢ2Ӥw[cRꋱƚ$3XZsEt7A0{{0Zޮ@wTk߇$,X~z7犰EEb@DIˮA;$xaq:+ZKQjNA.G8R6mqiY*NSޑ=J]jOEmˎ\AkْvQ;\ñ%V+.p;+hf=TBʧ*mHK+*h!F .߉9©H8tS(^c\"FO(oI EOq+* ?b'؟s4 {j B+Y3^EEׇ`w\!(lL+qS GO'j= ǀP}Z˜Z6Q((,δ"uM8E %ZUfM)k8|ʂA'Rv4 Rvz`Eq1Ц&m .ji[o\[`ͤyL8Z-$ *E4K\ ۅFaAqB@栧)J5+@tHP"سBD5]A(+8oi+Li֋5B|/o!M|ݨMlα&EY v׍Ұy s$"W r.]){ 3H:**.[/^QчX4;pA ӯwi2Oѩpi.}4-^$o@ bͤ:UzʹEn2-t#%q#XdrCC!=JR'Qqy/=3ʜ@,ܜh(ml$ DdK1n 9tTacFQˊ <\tn8Q2ZDdcӇF*hWSCPbx؈{Ma5 IMqv=+lc8,7^Ц&6q4bl¥# Bpx6ŨJMal5U;A7j9{'JnӃ%N(" )L]fi:cM(J5+%4',1tdzt(`zňҍ<AqD6"3nS^b=PO=dxշBAh~žO OBjq<{-RNЩApZȶW`bQ*9uː*SCWz,mӵ+e(h6usD OvȲ0c$`Հ% k@w4`q,_-!m478c:&dfcTxt7E?_НMoGk݌҇c(5u(fC|{+^V =NQ[l%WYNaxuxBQ iZ(}3tjQ 1'<<_+d)Lzaٴ LIAt=Eizm㪠F |pD@pp"(E/I(}4U.96{Jqv+?5cp0Woyt$ QV =c6mi5]^ z0= _BGc s+¬aaŇy60>C+@7kah +0 P/v bnM%y^;C1|g0e$iSsIaC[zbE(ƪJqȴN` [84JaXFEqsoPJ(m]я_*0-.bhJ1果 kVl؁eJ%>pS.ްsZi5- MGv,OɀZ <4u27!uE!gNysVQ5چX44&Tc)>d6Ua? g` n韢 ve)ƿR,jJ:F3vq݇Cʺ'քuoCxHTD3eo 8'Bp^ 9HP-)G G,.8`IP&;IO5?1B܄A~ JJ'hNM@B \gp {G<ɍ&s;vQ0h !BuA n'}Ѓ A mn!uu~JE@y.XRz.ȚO=g?Ų]Qbԕ( (;m /h 혋3"{fJųq2&ZOfk((""^-eM=!5/|g)x{'g4e2ЩF+݄>vusxiiNo׸_T!^)4fK;Uc_$jY5n͢KX a N j GZRQIn 𲇚!m,r7w-cL201j'-FDE ZU?} zGU)j5LI#9 'ƈ|wSMck#?s1T`+VQ{AXZ3e|jqIop2>̾+z1Vy6b݁i3NKw_=sf<P#i#j#($Hrh#^AX%iSȪZ-X0'z<[%B܎i| = " q)u/6m)zfGGC}_} Z8> ]8y"lϰl|ǟ<'fzʄ_l n yBuN5֜74'Li6PCbƠҍCуz{КQٮp0z Mˎ75-KZb†Ր#8"!*6hyKDLr^ B;/67;jSt3)B= ?* ;QyG(r;\ĚZhT on[-]̛J#A2 qs%B^[]0B`"| ]G )ǰsKaxVܥ6~Ŭ ,-tw UemPmL±ѪX&"k&ݣ_Ϙ#ҁ-G+NKs%(&yEdX\"YUZ+҈UpCge {sns XlDy-=Nv*fu5ݥn#M; ل *5W)r٥HүmyCSvl97J/i/#^g ' \b+8,,h6"n[?豼aYíe)i`f?n"^IYIzpɉ-ضvU( N~h+[IzVյ'HC$)zyr4Et?EX#fF'A0LR+ÛܦsH?SNz+U|3ZlDa`BIvNJ8tۥѷ "& W<= Z>88#آf49XɱٮwyiAyFu,hʊ4Nahklϕࢼo؁hQ&փB4 >ⅸ &`^lfTjp& Z=eIhEQQ b4q8pF<A.8#ETIGgS?Æ_*Ӆk,Mᡷ_ eb͍xnd;J&~z1LwIm,1j3ܟ>FHsń֪|&-@V|-Xgy {Cbp'Tu P)Gƺm"F1Ӑ_LXJfV,Eq( ԏ{|uH*DQ탮IDKX w[]TMt 2̏.8h8bK R^^Wx3ֱ>YFQD8``'I/cÜQ{cyJĬ|zpIg>`GJU& /Elt3ߦYmzi6Z4 pj]"5Ӈ0 j[Aw%4&Θ~+D ok(7Dtm#xgl.t_ـ (-GɚDo5ڄen7&"ܷ,̨SYl[61\,/a2"ri*NIA%_ir)Q#tV\E!nWwu1o8WEoS/+ ߣKU:?&ih}ÉѳîNkZ7IҼe"(l$Za?VTHX[n {"LwLWz}t0 vjގOTԝ@}X-xlC;N}KCW{L_AO݀UJiZN@8.K4I-C}:4kO~!>aG:6p \4Q(0,ѝyY' \FL|Q{-xvY鵿ϣVѳH1LlrqtE\uŇ>+?`z{z@x:R/Wi3,h-׋xoEDT*iJBZ`?Led\ lת4/o2Z|o%4M U. ԉ8Y!ɧfcc/s1̚\9'\Qz!sq`ˑaI )$\+J=aGHU1iY.FO"Y9I{96'$I:5IHL l0nE)^_J`2&vHP 77I\5 (WPS_SX=LMO">dOøf2WnDe5}s~z ]+1 %t%ԃUۥ_@iOo58]JP%_Zj4w~CS)j7C:D 8Y)ٸ)Y3}2JI SmxtcRrxcVE n~{8쥯&PSAusQ͟ ༎ k|$QqB':Ӧ+RN-\44W VxgxߍiWU>& ]W`H uM)bBa]Ӆ(}Ҕ-;P#[e&v[Oإ ᘲ%q陴Ԯ0-^hm(J{໲55WRQDaEc3Hme_:C ħjzJ.kV-!ٛq.c# Z ێQ̄8\$;[`&h6a]0XqP!ՏnWP"67}VYJ]=M,Dͦ;@*U+v.M[y&MnSD8 ˖Ez=L 0+ {0vwsXR "QT4PֺtQELڎڬ3؇w`5wԂewHNlh5ߦ{4:)Hq B7^δD/,D "" !ZI{ICkV{C?y;UKMrG8hV{kCt>tph gT1Z.0Qg}/IWsMS$Io %LX> ﵷaS 'f)Xt}#v!ܵ +)pAeǷ?,MVy3Pho|h-^v q-AO?S~`AOzʠǁgN<RÄ;R֏UiHGYrn:n;teFd%,L-)9,o`,E]'` WǥOًX?FjtǬ_F b!lv(Bx!_6`V^シQTF-}bDG)Vu& A Pq/9(GUX;YQZhxx4 6n(EZ^w&ѥ7YثPnyI1w5.Lk+J -|-$,f2Zi ~,#^ٔS"s87b%QWGο:J%BQ,S{՗M+DPH6g7 =ΚX:Yt8b1u0L*Ϣ3edϔa 8Ss*38}Po3r&{wVKm`PnH!?yo:TUʻ8o2̣?6!+ DI=Lpnak3U bJ&R %\>۱Bp@8^܂/iUeATE^t4Gq A s.Rv]HVct8lgzu9lT!~E:"sG̓CCJre:{7iuA3_qU#H>&՟3~,{(2\:ӯpsfZ!k`^q,C h2[H1h t VH@ c|z ziGݰB–$8 &8t_h{'v_-ŤQ`.uW[Ҁ]lWsEp`.QS]`a@=&0 84Ph_X# Sf֖NINH,(,[2t=b²ںDUS_Z?eS+j* $jKSLYXUX8e~Քښ)5˪몦WWVcLY\[?/Q{1<*C⼊ 5\Cy /zZxYeiUr啉erΫH-,3hbq]ʲD]Y_ 0eSWV|'Fy~XQVSSUSQ![SOhÐ6 c t.2 .QY+(40ViK5u 4Q@s{ հL:67 [1')vR3S'VR b '[ZZoE;WRV:8&DYeX&K >N46@#˅op@p R܆dfos%*qc~jIgԼf.MtyYo¦KQtWG kME-W±ƘS){eR]Н5n+PA_DCFkTFqטpmW|UMBjD%9sh[!p05J :ljH "-ĤTKȘTa]J2as1D0 !^3P?A\^C ~_F` 9xla6{\ 糕@ ոi'c}ô |ձS&nT bdBW !ja9(GﱲmݥL ; Fj}h;S6}G~/_6]LK=<%xoRu"u?ƍ8H## D}GPFD O'[G).gED:C=crz]몾nTb*j#3}^Es#Z?E2 o:~w:5liz5>5r]\`X/*˫213CnP(VL$A[t_Tt/d]]%c" Nt%ITрkЧӀq > Ѐ;|@'fm5:;=hnSR r 0Ԁf.ke;Ȍ4鐖r -}K ,А!9tJ YҐ j #ҷHC6CZ JiHw:$XC6C:hȝޥravn9"ɫ6 [͍xs~2 8Xͼe^Z; ;n#lqǫ~Ч"O ЧѾ(}*̙oĐꔮOwQCؖ^0 fC\u~Cװ+PLc!5$Z_b{Kma[QZ@V13 bx' ^Ia$kYce=T~Nz%h Q?OC((]X3T!F"E,[T 20VU3zM@YAPB<,]u@SzwA&[[WbLoIEftCn1Mƕ"Lo*LSSn_f{#Y_EwjW87-@/?}LsUd.H0s'Mb؟ƅ~b-׮!頖> = @~](ݧA^4ȌEht-@:;zKjj1Qa\x?u@W._ O^v.臄;y_?HޜK|mPFҡV@@~Z慲աy~Ɔ9ܢH[ok.>*ot685e-,+pRW&敝WHdW]f0d]+!'I.~l 5>0jU%U0P\ ϗnK c*y%yڌSbQa8Z5(]gaGʇޣFX.\cktt KxyAMLU G }<\( ¤A(- urzgO9ӯiCd? uvv^8t}3ވzňzȪ-I73 .ū#-; A µEt "E  VyUܫJ8Q aV[iVtߧKwR ?[?|5\3+9H4. v@o5s:S*R:9H5OH)otk#|mFǙ_O 9%3x}_iQx }Bڈ"W"YGc9_)*L :$m5mFڈ5# ,l6NI1`FDKyhnEFrx6% e6 ^_pP5?GATpT~#Y(kt t^  izyKS&FFy \3%hhY:\&4DI6Udzv5Yl0K8>¯-T&|@Vrk\Ko_PH`B>m൱ $hzf[! fD<H=C+SG 47\#fr6@)PB'#UUוWUNg; Xek3 Vn+m@k55ehcCXڪ # G()ͅ)03֔/ϴH֮D觲u 8I:ڲidL=V[`ꪪLIUƪj`28iUZ 2MjF.DWՔ*9XPJc/`c Po([Q'2)G#l{>=#ڍj3&J{P c^Y])4Hq?!8_#L:CQZZP((w6D./jpeb@zm[YT]&{/=layW^wi5K+וFeMbtX+hZbaAT43- Re=D(I,r6 -6\J<ŕ2)0*6Xg~ @H&k0VUTTuXè/gl6{E1i>~/4…rZ9?>0jT_mKj-Se5u1껦l2;x'ul{dt.h/) x4 F:G7'<)O[d Е MJ3>:9M^mbs _O0 -cDf9XV2qQS68yRzaՔ%8FBa$J_yH'/T 2N0yvN⺕ɆQ]S5_1ʲD-?0&J`-d\1N n:ԊkЯFmD`gH]Y+) tXm]ra\.7 ;60<;foFY%O6D]U92jrN}΍,b1OlѱiSIeq1׍y< T2Y^3,]P>^BKTUs_AZUR9/{S ciMy]wHk2'dfL$j*buy0&3~ӌ C8\>xgy-{oT=XkY6ū<^(DQ(zZDU+bѻ9`mG~9"{0W䈭L_ljPІ T'0~_9PRHv 6ڏyh~{'~D9j`zMR7HMjZ6U ҄n[ b/aR݃z Z),bC.k>=L}^e:%DKب |"*@`;jqYϣAE b$d"0א@ !U`MM>ظKBUv §M<}sY~tM>'= G+FCP3}LN>GO~UcPW==U#'kYM={-`$1砏x;Dw2i#)!KaH҄ Icayo Q36 B;$ CGG̢ \HZ/64, zˢy!r蟢tvF^08~%^Pl尊_RDv%eðT듿!DU#()[6 ,͢ԟT/V{r5cySa |t0,o+,VT- #fѕ%eӕðۧeC.g4I=+`9a{%FMV h%Kt)3*~˒ $|V?sw(`#ڢ 5m᷄Y,/B$Si :92 )sn. H =.bEDyCd)nCn3s"gGL4X%]S-X#sNqy.[8̉tZPŲO\8 Z%l0۴OvCAP/àHݹ8~po(3=2 N,lXx0&MJ&&8;{"xʌnkΜg qÁ+T Um6eЎh2z @zs"YU4ߛo؇@5qxS['t(69GH4Ս14(V(FqWjX~vd&xEw6R9DDsHxcEXaSkXœL11V"!-HOD=%وp`M7aF=±a XK[–e 0Q2lK/@! ˢG( ֹt}ce-0]P.ȊzX*nMAAH * )#VΡ#' q0IxZ~]'=ֹ¦F]$ֹAZqZ1ts :@h)qQEG[Υ@$ 08 "a}t>Lj1Ӈ GO6"[`6ctT&>FvkVaM rr0یQG6QQlzcXשʇ~^c,+,/^Sayܨlzeẟ-]K܆mڶ߲9ы»<9բ0S~|&4ؠqhGa@i8hdwQ;@wE"LylB*4Sb8@U)3nzaobH3GjC*fߋ3k7lJ1t7 0Ȉ*ۛGUF78$Fɽk`Ij@JuaA ` Er|GT͂o-kmR:Ɯyэ֨@Kh f/qЗح{-`2i \t'VQHO'*f5ʦC"- ՟( -/mE*E"3ghvZOꇬkGoH;u Omk: -ԴRhXiXAX grP5J25J"FOjn.|ph4JSKEJ{ R5JFCF@ ^]b':z>RgSaL ~)RXXiIsbE I2 ڦؐRzKzmMih` ZS6ڦi耶}8j\ڱb_G'X;Tmw_6]Z=X5I Jk>6]~JJB?Rt{N\wWڦ c4Ǡ`3mzC6=lpn:Y뇦nbV?3h$Na&L=!т%ȿGU]]iMA}TQ4㜇8zAbcc=VH#ph UԦAUf;MtUͣy![n6c e_e*龥X{db A^!Pe):~*Rii&U>q UEt*j0#BC=YwATQ%EcrUT, T}UTEG´eņ0 ±%vX1Y+hM3&1DnMApQxfn5jܻR(l!Z$ݲ7E$26\F̈i<g#Hy2˴l78, \1/Kf;5L*68q VD8Kp8y%"Lک&\BT88fz)l*f#Q %ZɎ X8iTe ě5FjBt|&)6D"f퉷|t$56)V~vi/=j$aWdBlӽT)u1(^#` \DʡVq|SqPCӣmV6͂TsHOHՏ5/cg08dn`[-ҼʦOpy(/scܤA8znZoPۡ6SedHXGWQ_cW8׊UT"1O) |u.] Eae;.bvQ)EGCib6' R-|0qX Z(ۉo1:b=revML}^wgCh%1FUǜH/i6dD,RUεlje}z6<]bafpMVZzm̂p`"ضRNۊe($+ œ JD8Vz!nYR.4g,1[ j4g B)ID" 6j^VH")`E$^yvo(btp)YE\V@C"F=!b$z(; bfs.cF`fA7}yzܷS6 cs?q3 )a㑯'޾+_[]af]Ɋb+j]ygİAPrWEvT65hK4gDWޗ%]k(P &J vicBPF^9~a`{%1AOܖC:'.9'u$ےk'd_ gK{d4ٷ_ RyqZmdvḆLH+0ʱqG°*Ȍb1q^ :4G؄KJNS4**W8{AR.JprIbb1DM&b ʰ.Osn.I'0M?=Jt)Qɓ=H /;%[I{=ɦ6EmYL8+:ĖpQ-t\;еixsa0:txOg^E&χ|CSO2}3vEeق\X&s[M7ﵲqI!{/5ذXv^RYHhgںcN?}/aڠU,[2qN#;Ҽ42zȃx̲a48 #gG-} feDc6Mgk2$YbYg?Ytwb-vEpX1['zEP6!> bݭ?"7(';)/VN8'~-}[Z=D,;gYQ zxLDC;  G7xgb| 2oc[d<,Ξ,@P@Pg!ΜL#>/EmX'шʇFCz.1f 5l1:>);Oق"2iͦQŹ^ #ƢHֹ =F|>։hiЧoڧ5[P޵_hIk2^ݦ2F;v '}-8H'~NѧʰqhFȪ ?4#[!s5xՁ,Ɯn\H1÷"7V %zsu*`.1Il>V>ae;|N;0=jhkx:s5[:\sv|*=W\n_Jz026dXeXt{-ip^?Gk 2sH3̦[u3Aa`k2z>?s5^4sP`.x/}~)|Y01^#U}"`.=Ws6gL÷dw ~kHg&h!|;Tc Hg wU\th#}(A>|ۆ|x{&xαpih賅m(2nYIq^Xqq~:`\؀ZFW,Nr-|t Z5Ha&ͤcyKa |aXQXWxM F.guOHꐟqTŁ/~6?C:G!~#C."EY@ꐵ\oMkѻK;LXv+,/Za٣ Sd,{M+=,ISƴl CÜ|uON{Bb橥!puYRJ8a D[E?D*u%_ĉԕE1Mj؃>9X@oG~lbyHYQ- ʁ0C0STQ6B@{HW<xb(y46yҒ+V`T4Bbs)Vb{nC+3M;Wpb Hϱ6bw=@q@J: JJвeײ45˚@@X1 z8f zPy=\ʋ=B:j=i}hDp‘e8}gS;Bi[nļKst᎞[b.ՊVT0/D#<Lvt|w̦Q[zA\;z>Qق~')xhoFT08%=#8z;VՉxY+cs'\Na+@ jd9?g`sBx |Q,Qsdƥv4i9ySdIR=sXZ'vLVaoN_9?]mu78ż9DkkؖqUGmM{RhmRmh"X>jR>B}ξ7}m9{{^kGº\jȂs:,\CxݚܪkrrTE&c\tȢ7hm&jl2Ҟ3Kf[\# ߬wIGZu+깄(#Q%];Iz| sgeЛue@&<lvldHNp.on?c^FeQFPSb7dCwCQr0'q}>2 ĆVAy,O:.Ir][Ah-a,M?Un#A$+3b"(/.t *ȟR{n ֙e_|=ȣ<;Աpt(\@[M-c$o)'Jr6]٤ݔ\hj|> ҼHV;Y OB_$864tΕ!T#t0u76 l?_]= ݝfCEf"~p/w(LɎ9%;{eM1εrfB /rr'ܝ|8ӥW!t*l)?BzR)D(7Vr Wnz!jө5rct*#e^=ʭ"j3H7y3v/vgZ `X#@#knt&ޑ#VTZ# [ WuF@١\c,K<&k D O5*YsV\QW<ڨp.cYF#ktF[hkXY;;2~ޑûQF!kyGo;r8Gc( xFs3*\;cyqN־x3Ie,rW|r_VΨuI{?& N/ܽ?lJ/O<܅%=~@/AIBPZxZƼp7o7O$G 2ĎCl 8YkJ\I 0Nۯs5<vzSdG.2̱l6kBjT)Q`?R'cw; eʸޘф)MTĄ!덏A*h%OWp}kF^}.Xk) hgM^pwTmMί}^Q߇2^-Gjoh)EXmXOڄ S.?QF*A(+ Ipސ!(<]*/p5"f)Of u>c+'ɰ8 Yȟ*t~vCW1Ōj뢸2g-DGlH36f?1jd:|<2>أinz,z(Os2D@atPD_h䬌6΄FrmK!?r ɰ:#|IrYNQor xlm!+67apRrlOڻ $rnԕlU>|!L@U?>K᪌Ӳ?aAb7UsauWFKUߍ3+l5gTfj6r7ᠨ=-oiY+Tʻ*r>3ӲWwe<*<-7us8!JOZ#U7nVkwo*s9I(ѥ+?BzHmOU~Q%N{{%jK9|GI&do9^RZ_ }!Aݷ& mo>ӕ/ =El)#QNXޗ>~eTyvy~,ULDGiT6hֳ44*d9oB}hb?+HIK7-*[MޕhTE^X% e(RQP:gϓ#CI˫+i'ЛQȫ+G.⭑ٕT(c(o'T2S(J[ FACbފx򂂹Q>^;$[7;S+x Qo+*ȳ 1@s1~yZ\Cx QPCq O*/P*yrc(G R]i]yXףZҪZk>V(|;JGw -=|+2JBv -(~rʝ~}fZN}i W2S}*Wp#TZbw*/hkF%ȉ}5$؇4jl$Du`j,)G;\G_&KBLqs-TH=$ê{?L|wDݹZ,z8_bSQ,.ۥ yzmnhq8ƧҷJ"_uD3G \l%92#TJQeu+ŌGgGHUة*]c7KNof~JB,o;*3JFKG󏺦m#!2n(Gȋw|ScjU F85ց@n,\kge|zHMTK %.〫UdG)B2{,=*{t:&*$ZVJ܀' 8[e:Xuѡ^T>愢Ulծ/+vo(4I}G_KAa2ml厍ؿVn*<%4P%w s`U :}s2&N*ow$߸?-c Ux7'^)cYUCPHEx=`$VuV OuS܀o)zw(ACuR|Pe>G kɈ͕嗊^~ToChBKq`;S)ח-?6Zނʔ۵6Y rb56Jnk`c_Kw'k7yȠ2q5$Wݴ>YĪ~\4b½Ze+TK zH[eRqt_yΣF\;EїzWh<ϗt²FiEvGnXobX݃a"ţ  3_+unw{d@$e@މG0Y\oȪ+S3Eg"By7YӫJ鮦ښph=Q#jj QPYv[c u`@yi%݀M`YX,'B4N>W6&(P6Bm4<-J,UY- _bBVg]#{[YahK:x 4&Nj^l(M9fTiu/{H v읆db7Qm geLaڴF0In1lClq3Fw0sMxRiVEܸ0tss0~Г3xg[O`SN}m6p@Z 1j>hXۑiY!*oBrA#g45 "țMmIKNyC2{ rvs%Kɏbݔvs!@v7Өɝ5R@vKT2ev3NC{#骥N=.s/S|LqSs( y" a1_^w<>.,yxPDSd 4wWpہmC)XU֤\Iد$43c)u1ˆc *v"a4Z!J֒Ƀ!XR\Z.גR^vЁ?TT[#fgK&?h׾(md* l.'٘Y aQN~O9YJRϜ}9|z9Ø' z 1o. n)UXq`G9]336ScZN{ ʱF7D)k _-F x?)Mz$8 ؗugվ ùRa"gZz?xe[zP0q@؞Jm^Ëz-q3ތʷ@Y=Þ鈉r+O Rr35"R-r:2|3Ʒ-kF{rO -QP~CeϼB*RՎٟgBH|{?Ѿx3I1NIYZ(D7g܂XVIV+4XFh,%#mr^9;3,H s 4 Б8[SFg=-fś"ai0C`E rbl>H.yTL8cͺվSc'l٦lp ?,t7;͔t ?׸sa8i46x'MCnYkBd$jɞNdLk/c!WrFdxXxNHc<}!P*OaL"7WBsVJ=+7{eN m3)f` LdC7P/sl70b[^ɵOj@9rYCm%a\.v5R.KZȴ u Ãj֫LEu_Dܹaru3ömg8 $3ZO,6}Ot5};FlX+d|.Wr(He,ٹ&O̍PF:#m?qfb15ضN47e\O\^]^QΎ Vy@l~O@^I,/9tJj$g"^r/w⚒=(Ax| %o︡[+^jќ#-#[r s%AT,;wM;W$%}PnS3K3ȿQ5(ixY.eZf_G(upWWW &;>t*H'UBC6H)yG۟h^j^ouYGWD#=4j3I^ j]^|tؾ꭯:jhcXr# C.PGO4C敃#]'2̼R a+'ÂFG0 {ɇ\rټRA\z"~>}.fUV Ys P..9xlnEɨ?/#IB3(ۯjh0y9m S^PHwI@ż7Y{} oe'M7 ks#,Sȟrƍ1ȉ 7-7 1jr7%j`p_zy\^jͽ{SbjrzSma7 !/kwRY:I/ %~V/_}ꭕI2J/C7,}$*]>cOEeHRGIzz#.Izݕ#O25)]^c2}GBoXg2} 9<6:Kk3ZIK;^3u}S-Mqe~ENjm{%'A Ɩ22x|ԝN7RT:JT:Bt%;N_6yN_1c$,hlhm^xzG˼-s;.lI%m[Z[:;[IR) ]i]?vhoK6/\mѻ"uT>W䛷9I(߼}?gE{[>[X;5.~nR۹IVB\6?.m<'M[6?sɜrqQ[1tmjmY<%is{۲L{2W_GˢE! iiy/hۖ nFNJ<)P& X0?R\2W[:ZҺy^򒐐9q2i &M`?NVhqknal~(2qblɨ7$נEo1rޠ?N,K3g[̃C>*2㿅{nE M=P(Fh=1`g؞(&|$czx?UOwGYRhM5=j1A/88$[TdzT!{4r,q\t ?N oҝ>-2yB!mV&wyz4▎ŧO[|ނӋ-Ku%s5m [wvt4w6s-?}n X6F‚>Y2>oQgj8NNo?oڊo[:]mO_7}wM}ΘzSxwSS8-ې{w6rF]ұ>8:gOoF^Tj>H*m_)uTRs]ŤTZxN,7ϲ?Zҹ`a}\Tٹپ4/2['ՠwLw{&I3֛ЬS +5Ϋr%5lL~(k=yN|.9uĿ:5ݮWɡ,uyA^ hfT-' fnr"As3'6ޙLVhC΢6lu}kV@Fg6}O>)Ooe ]\Λ:[ <*݇@Pl1}]zҚ$`ɯѹivɎs9CD i#1?uϙvbH@rcjOgD}OnK ;QV1| I*seFcQCݻ+y^Zf{?_Sf{yh'Nר4fVi|rK^m90][в:}ɲ/ӹetX[*JY!mn̍?ڙ\H d~ʱ5ZTl+yS'j0NxGcfzu=#\# "KYUyҜiι ]Hǯave}ӑ?N[m/~I|{ofI2G_}ON_䏤*PBr?)Ҕ oDʩh'5Tz!c'Յ&h0qC<=Yd1q)4ien#stLn 7dmGvm/Ƽs02r_ ۦ&pB*K94=tf_C1yq?5nl0Yǀ`<`ejgp}wT ͐I7c읃c3 4O~:w\]2yYQZe|`|Ϙ@j^2C+MSZԘbVxT:w<{Kun[qA,hmX1{=[r֔G.JVu4שHRc2d{aXЪ[mtzȬlm̌٩b%&Tޕ|7K;i-K赶*\I eԝ2pȋ`;;}OPO8.+o>r@0'(HEϷ2|&ɕOz6ws(xsHͷ2{>V>UT@o2W,JɝRYP|p"kEf`/ikb3csf-1-6jǮl6bzE fLY0tk%o.|ZU٠i 1^ZsafQ_|R| ZґJ!j:Wf)2#+?mIG\RHUz: ^eѦȿT{i oq@}ٌHt41gƘFp}N9 h FC]RkyߎJ,]Rц!W&2ȋ] Ę! 2 Nި/?eQ2#$NKRW2i((aFvgّ:r7ɄzC#K2RC/ҌpȲ :Մ3 U|TqL-qȲ NC7DGā|(zۋ-zgF(#qQ-@YSY*F썚G$z&SrAw. ^;rC3?`~@*85G&(S 2ds:Rw)^ZBG huwޔH~|N:e2ú].OGIHK>#;yVԎ\tbS/BUrت+g]Eۺ2rG:Lpܙ:#WweU+#wF]ŻJKGrM6/vbz$eWVIniq騝sۊ-/霗ME$]jm]䳌haLt0X z8:TfX0nFV }~ݛ 8cY7د@Vm5crS㼩O8n O9&4 ( tm2aaFT'#hժ2$U֔LtXcVj7{WxEmh+SuyUŪ\U;1d`ΐw<8H3z= zYr:7іg\lVFU-φ4*<`tO}DIfw֭x<%nVU%Kz9WO9Y='@>@, &L{`_hm7=oQ懡٧0s ?9.#YDVۏ-}b(>cn[1v֎=F[1>; 珑><e͝msb٦t6ٶ lKLŖ 5!J[,ZСZ;vR4rh2&r&bC=p:^>7˙%SpfZ*81& &R t08Ƕh 9. l6kBY/>AeM{̖e5Q_W!|Z_>GhV*@&  Qx!w-#%Jc;nzRM?d7+Sf ;v>" &SL Kn$t ;; ] Ȱ#ZU%DZ|+nΰ[%M[$fPJ.`4V̌a>#2ьA7(vȲTq j̟w5u w<*eJ&t94b`ʐm .;H!A3kL?K,4ǬC Mp|%$JDž\K`ϫGECu@r` Fp(K*4yKD@j6&0 vL]7E4l GD̚5j8b[,&oi ;ճ9}ͦ.LI^48R, b^YYWoFF;r{Qz&TXY\FL3zNѿFېJܹ4@J#bwD&#gom4ȯ;:׽@UZ#3ѯ/JZ}yAV$MƄsE {Ms d`agV1Au3"t:+qF)~t, MO;<+7 4 2h8d}u\{2XXKD[$?^ kgb?'ܹjMz-YbdҟX4 Ұ>U 7w= rC#PFTG^Nx  X5$QgBCfGUJOUi=/dr=}AAل _m xvRh\{L\JPujutU;ӇRSu&W QX`dUYToP  QZUƛ,Kw`޺4Іǹꈙe wp¹CBS*r9+wƛW!DF3uޜyl;7& N&IZYDX[d`.b&hJ0rxk@2몑CmFZ^$2<:6UvQ@.!~t =ȗyK-{_p3CL&D< Pϑ!@.vFbiz7pA"ot Yʹ8ycfZ]P| +Y@n6@ܡFbI"Q]Uп"m3Nn{q/+?^@&s)=Z0- bj봋UXLMh`2r5:>Ihc'ʣ mbe9,3eQɋyʖ;dz tڑMzB+X'?\fY9c'??yN?2q3 V¬ e,'>Q !k`Y ,2$H yY*U$UYHL@lVy-jB-˙Ƭ\l$e}t0c!2FFPm4Y9C(u!Sf.d-Q( (֌\ޝ)7aBú.ޒ 4qÒk?5JO:vXKEڰ_tTedbvbHƄd\+|WE E]%M:e9YRm†Dt!:Jڐ .7 r:GpoVaDR`G3=;Jy'/z<%^d5%#^QRT4܌L<5P(iw;t6 ZpeWs&D̓.wT9-"_2gk8b;ޯѢ&'akmҵKktebv/=k lf6!I/.btP֕jeʖ9J̍ !^~,0Cx㽭Ԇ#0g~dn+eqizCx9E6y#y~UxSAynsc ]̤~8<68b@:2VCCi\o x[(h33F&2j⚜Zji&wlY8@&F86~rlzm묑H qZp}cuޗz:xZ 6VeYcwtqZ\Lʠ3>mֽ ,Cif[vKYoBte |îCs4>h@9MAuO P^MyM8`fV֎o7gۯ)z5cZȆ&ћ]=Iw&KGqh1 us0_3 t_rT@wr~.= 8dOv adrVf 36(L5 }V%@{\ePӮl LdAD6sNW*B?B[o*z'$/6*5Udyvՠ?^K7_xvU/Fք*RZlo8fB] (% L?P4 :_yZUwM80 ˆTmXe1_{[?=4~k{Sx0,<.30"5rJ~eͳ\Ce U 'by>\+3<ɳÛ1kf019 kW-ڊY^[p :K VܵY_L]rM)L3a#qR$k_ IK=^٨ >&Wp m@3sv=ُ LV){7L7!Xv=aVSIWNkB('FFfe+C1T+?pXΒz(fN&655l%șZA;~ &*(}t =`"@XlUFB)_auHV6&LV r Fn`U 1dbƲQli+xvh3 _Gs&K5ǀԡ+L(u My TpA9Q!|)>i h@Jƛdh"x9h3;h&xڪA]Y1Z@#9NL-qv& qc+) h-5fKs ҄?20{dt~MXg"٭'PdhkHͶsjG{{8ޑRE0K-r+&hco͑[MO]2Rfa. D(Mpb0rZ$*TelXP4U0km7"!%/x5V=VUvXO&4RCU&@ d^b] gcdN& וyHVh"ce wT"ԅ:ꅸ]UP}&/'8'#gYdMSY@bp'2X ۬{?Ed/()m2:J(bu.'+t;(y_2rk)"yǠM ,:MAґ yi!S /Ie$BF{C%X_M8Pʁ2r7ӫ3~ol=Z+'m?D>hfBsL %ƟT16%wɢA3\@=2Oex|ܢ(`$k_`]Ql+P4"*jd_]e?K'nStC47FK=hbC9ofAҒ!9?#sҵu}I5?Il4}%&G6dWf׉+kvFJ_yŎ6#tBiл4ȇrF,a9k`* ff^7`ۦ,k/g(ќcEߨ@u%Hp=9OK |,|tOYaCdCG&;kڔK^#䔸7ypQFfW&p]2~5&b񾢊]ncs΢,^:ζE yŧR6w(IROc6+_E3r"La:g;a,f}T,ʗ}t0=ѽY Sޑo;kYXvsPVvKZeV7!C:@1u/e{XBi&|7Jy_<͋UR,nJZ&Lb߉)or?}^x[}Q#όq6ࣕ*tiAgK~wqzsGG >?ey) rspyJZ22p;Zr*crJ-aJwgpomPN4TǒGl㼩hGpd_kJb "=vg_LяYS]j7ekӓڦhމB+ $ A£zt.T)1UFah .z<n[J;)t*:W"J%'^x<I˒$)I;I-Vo:Zּs~Gے$r#`/@^%*YpvΊ$mɯŋѺzM 7]U6^d^{=/ss[`5Ռ9H`u@aVLuWf <8 \Âܕ Wۦy3_"+؎C$H`38@SID8S>N@)ЛEҫ24Q^ܫ.w뫩=(ե"5! -s`M})xd"LFESr}{YBLVB3 tͭ A @YjD@wPSꗳk& u fq%OJejk,*t /݃EMU> 1/+6}%Y^J:ON3Zp(BHҢe| V z}ySAV: ^s7y}YTcH6 "N%)5&dyAWصZ3MpFd;&D &lD *%Ô#3&rxyud "Y~ȄgOj@Vuw/ц&̭ qi=q]s]w{lC,sG.dBDj1c*ER2d[~C&K d9(\ʹ'"jW'+}_82CziIAI ~ ԚpNoeYl,?C3^IY=i&ICk3fi6d Xq;3uVJe3wf^=r|ak2f90!݅ a3苞Km3}-Ĉ޴Bd &_mWL(HUb9[ǒ d 9 8JYe-mJR~'̑ X;y f Dg1k$V7ʁR:BUumas rίjΫ*rrg*t_θBBi/ჩ~Y;aH(A27'r'4yhdMI7?=iqsXϔ\$EOgزIũKŽA,C:"fn绍c"R$[DerRpmaW\8I>&T{DB=R3Ej.dlH;7 w4cS- A'#՗B ?ð*Qx+<З.YnڵFN)`\JvRׄsDj*)XӨ ,d܀N(Y]7B-@!0fbw=L! 1 > G\=C"=}$lgJNzLI<©bqQ 3yȧ#KW my؁Pׄ.n(`a2â-0D/`AEH }. \@ٷU?S,/P)B+&m~ĕD*r%~^ָG];rz+vCb)҅RwRpcq-Fr0K[妣\Ky\l 9 )S 3&[ !Vt2 u8P Q _o/j2fdƠWGOێ T(GNwiFyCoa yJZ]FO1J|x9 ;+eH92Aֲcֱ2TsxY 7q)1Fʢ YiQ̵ ˘4<' 9Uliio9-yKZxYs{{KbKJJy/]x-^F(z~wQ^*ղ=2y΂m4V%HJ*p4xWթrr UŽKqTҡդRW,l5-5eXM*`^5dԤR _w6=/.hsM*hނV;5~k-Vr#b:թ\ƙ7LyJa\Y݉Mc4bTKj5#G#M"`_pJ׈ xU Xi$?\I^QDy'1<*a_=@{8'ZД<Iф^m 7n&gd}z"T}9`] di6 4dU#{rk'B#/l+8x'=NUޞ#Ɔ {%&G  ?{PVrMac™+A4h"rdA#SX+hF , 1`uq=42$==FZ;E*I)#oCWG5d7V,FnHk3oA({eGx_.? TI(f5+&_E=L!MQ\әf5qH;$Hb4Yx=r:2i7f a&rR$˾ɚ6Ev?!n\ͯ")!#h\27n޸>jd~D7V@rڝDY@6*r3nZKMW˕闫3 De\~Ό_m(\SWLbdvpg&EXe &_Ѻ.(bG{i,ҜH߀UN%qO.gEœ^t|uIίErŌ\WC}(aԆGP)ƓUd_-l8Q6/_-#V:!]Va_*W(r)@m9qynMA"-ڵy$'>}S|CKXNÚ, &\ B-0#of-ZFFwh=}+]&WX%3ӯ/_+<uI ~j =p ly2DOہx1>YlܙtV_/yU=w/cF8 TLfE]-֠0{ H aةtS2Ś> ;\֣y{Cd1Vݻ K0Iz 8?t-qEMvZ7Z+InMfChd!AcAc}u;b`Ig6r>TnGȪXs?SQ)42x^\~%+c9Wcv>0򈲔&CԈ@OZVk5sӇ ajf7k}ȍ}s+deL l`U+AދQaB} ɲ`A92BCMs1 '-c܌={xpDrnOȍw;@}oVeXL('sO]3WQ) ɿV6\An@ v cb{K&?w,F8,. dBD agC#ZH%c*Gʿe.3Wv0K&ZxAQBumMׇ.ÞE-K\4u/N>4vu)`nщ1;k qƛR%e2gRUl&RW{JneC+uĒ\L;?pY'ݹM69MmO_AvkBT>[utli?߁kyk߿n/Rx>w9 w+o >9_c߯I?ӎ|!-yȹDF s ٮ&/NbU`>ohdsH褹3"7k!#ʄfDa18S 2Z٠ VUңz:&n7َJO`&HSXm 單FKF\, !,sru]Bpvi'15ߜk d;]uP}d&/yr]W &&L8כr({euVHcš_98N9F~2T5Ysy|ȵ]eEw&!:Wj:L-*:%5R}Nwɰ"mгyp-<-+t <laD6ɽaaB(o?]Nq7TOרϡib`V.YkjiZw#}ɺ\syEmr_b~OQ  8Q6S]oزs4eyb(3Q.-ckCh[I.ˣ|F.i8gI}/m%/O!y$_˓|JkrM޻!y"o`>;6ީ$}3}pEE*25$ej (n2',_9HdIo$nu87P>]=`R:jiS6CWQ'SVyW#-xVy 1^|@wF^3iP.ZVdYT2r-Cx;=~=Cx{{5JU&n<>WUԉLYel@ P^>6)~gZde2}^mT%aޤ O壟ɾ 3 xC$K iWUDMjgak_¯Ct3nv_ bej{ϸX"SWaRq!94w,&\``"tJgN(yk1ȜdCk0(UCYlaPVduC^VbDžY?9ӯPԃ /ԑV@ rٖ Wf<>12i jB*<ٳ[v# cL}3.r?YY{K3 ݬxi& k > )!#UhL/ٛ"K7ȑ}AmA @t?2R*I}`g|>` } (2vsp1yg$mFepY8rdA5ʡUڃd/"r0ĿdfKឮ7d0!& 8ze1S#0sw/m[{ 7GAC\~*nda 0qߌrR7O#P\cNOwzWD35xL} t2:LV"=QM&FDq0_s*ƹ2|j| >@nP` +&a;='bKK8OL! 64 'QA(Pr6w3a3AM>m0& 2k9 q8Bc#:LX5Z`6Z" Q_MRedw\#崌{9vXL*"L*lML ،硺NIW)<UCsMXWh<2#۪"E7af5OJlg!$"kyIY^">._|\n82@&TA89+6>aGX֛,#m ,1Cҕ"s)mjpCքWYV ճJVwsIq; j @[r¼frQ Ps(B#5Ph+53G2H JrPWϫ\{k; dbx|peL2|Pod^Q_^eM~6f}Sw)= )L699;'_lUn1D՘m!B!Sxz˖sVi,ʊL4Ml_Kz?pJڟ9b-rx/M3T𾽷rcb{|V$䋃mF3 AreD"YyV+e>@ML1M7P+Y1@'/;I[6(_!jc8S>#]]0,o?euė3r7rneU]~RL6c_&ܷy>&8l.dysS<:c!erwkFwCY6$v.+dw6pAeMa$%vj!遜;g?dƬoLH)x.5T%:(ك^)h%{OmAtf#֦:c#|~]20Od.\)W&.ר^@AOHl9'1և KW1%#ʹQ/'0qNg_bc:%?֞f[z0 q-v,݃a[8 谪++`Jzdf#WgZ\;Z~7r97*@Q)!N{ŦgXc$T$1/W+/ 6k$`Vje ^?l[3UX }xZjWB0!=vDe#uYdMA,ۛjb>f6Uf[=(o{fu6aVؠ> xi7|[.yJגƈFVPxLjx[vzQ5~ܨQjuFM z= X cCZ·Sx*V~Z …,(|*aD>Dwr ʖ!u0o]},:ྒ*jq0'Ջڵ2Ϳsppe5a1RA!NߧWKrf?s)[-/zc7Rܾ*#HYabp-vj-9DPaT!.XŃ;7\KcVOdotg[uǘOLDԉ<6F~QG/_#Oߠՙ^ /t惊WЬ^%o;rXn^1`'쬕|iw"G9l(@rտT76{Q/&(4Z.NGE ._McBG`l3*g%) ȄaNL&]7sFgS04#7v~m"(3#*Ŵ_Y:eJwf 1o9Vd^t C1_-wJF uVjVՊ*l "X?YDܕddO.fT`gz"٠m*iI RˀTу+:貪(-A~!IOXk מE> Y_Y?YE]a<ѓt"X_bQȥںV?FUQ{:1 o]CxJ*wuVX80B\n.p+r3@RhU$wHKc䁪wk\ML#^ܕoPEEpFj4SKW`6ڍwh\Ũ]Un[d׶m *ſ>̤ZO+rl^ddH\4|s<6Iѯ|wֽ]%7F%+J6j%ߪDxVs<7V%kU/{l)ee}\Y]CDVN>7BAFe]l{v&sa)֋KA)A%+>w!.>2"8cԕ8l6YԻ`(=9-j+WG˅nqNߧBpтS];>_5|u'&uqg }BnX?֛ +Õފ7w(o2q7Aɷ: wBtz 6>}ʻXh4=?4RKKDž`xeM(G-j/ŵO-Fo|$Hq}dHEcʣeg;ؚ93[8Opl 'j3N/wyGM૪s:Y9 $V_TbOs-}^܄܀QHb˜@S[g&D ޳^{^{nb\E5q3b(,a AF„Ccd^@2xX1 caz~l6|`zz,P;6]ݘΆ[džRzvBؖ,<9WyB!Xl<.1,$q̴L6Ę^Zt"յ V70nCXdj좱ҁmZ+ r`fwt5UPe%246AUSeq I'ਝQ %a !)7YaOȯM㉅ S5|jX]Z 7+FK1+=zu;[ctmiCtU\ZýZ<^kW "JjLt[^5N;1Ii&ԕ30ݔ5/QiiTP?<WP{P {7sʮ ͅ0RG'OҞu+V^D+WsCƬdZn>+5;}O@D czt,bqRiKChӳؐ\3NDFzkgFkrg3iz2@%22꿕 a>7P7}j)4ݍ{tЂ*{6.q$ v(` >_5)<# $/Op&{pv*"dagri08% P"וI؜b[k{l ;˴Tt!uӡOFQP I@/GL[Ō8*@4kK:LTm:kz7-G?DPź$DQm*&x 4h)Vf ›@9asC!rrcS>.-5^kх I8ՄŐJBE1-]oƥѵdO͆P{\sWCp4YE5`}|,;-(!ǧ:t!X\*nԔڃNuj 8+S% kF 6Vi_R# Ƕj+q]Æz5uz4zy\!0!"QyrPxuP( Ê+=k@d y]Lc~G0)gI .8ZL[GR XMЫ@A鮶OӌK!-ga*)_Q"Y|p^Oܠt#kpBdf  }=+>qkϗ&| ‘Pۅ ]'kֆ`֏Oq|ch*/@gjn`aJ&DqNߜV,'fJߎ2V*FzI9߅'WcƱ8] bcGv(}~hWy:W<>8+?;O=.]$OC@oЃD"uVp^3-_Q?ή_(办K ':LruǴ]3ɕy">ϣ<^ ?}&Y,ӘAA\$g@/#х@,օeyHR+Y]LrViL2mY}b›? C).ӕGI* j TS[ऄ;y4s.FΎ^kk vj%:]~G0 k=L{# E+Z"⦅'%5dpQLsf<1wy`%y0u/yୌ]z`Շz юfsq iD -$MhbMU8whq cVG{3٣}rhy>/W2ޠ~!!Wb"Eܷ pm:4y)Ct󡝁o5:HFC;Lo5 jtTUAwU *Ul[j܋Q|P_Xc05RNo0mHvtRtu^/=>yX".u%iscՎ-gAA:DrSg;}3W&ʭD\_;]98]&B M_> w ^ʡEt J3mZ!,/Rb~4p*Ub_hr.L;RU(9%[LPL'JPfUs e .I(6ߗs;Ew6/HC|2ݜq9Px g%="߷vqhᮐ#tIf4tQo0YR F|XEe֚1)k$֐ӎ&pd'PI41rbw1.bz Ϟ0 ? j҃E/u]1 Sc{Z톐vii$7_!;1S*0 e2w4`\%tiȠ NE \ؖTs*xf&7a:_  -pkO3@j_ ә@Xx(u '$:STMAJ*2.rS8bMaY@|70{pDo<`G*mzρn9`nsD.aSVԞM<}4GS7,%Cvf.Ԋ?gʅ0{0Sv [jc.7SY {LT4+Bkx=|wvUGLpC _zn_r+B;qk'`&'$R0 ޞ Po.CgKrҾgNȜ[9Voɰsg5DYåpyrVTƦ9)d.܃@Njҭ\n jv85]t-H$H56%.WFw|\܁vW@CCHQx=ıT <[I<~Zʚ<<[%80=*W\#߿w8x}w:\M\_!>?&{]{6qbҜ' }`H%{1%G%-yz4lZlǸǐpwW[EOkȳb/F%qB)f밄vm0>tN.GI CΖ$ŁR:a[pXAjS{35JSc6 !ZT>_D9yĨ2 L1bEn s;\~_6 blՙB&޶2[fl>g{L^C`{07H؍51\zPɳJiQ,a}4WҤnxa](tJi.CguM\5"~\U+)w8:7e2|ㇹT]˘~`٭XR,LH\bb=^5R*1jHnyAo7* q7Ř.]`g\CYQ4Ǵ_^KGo.sP^_0@ܱI S}3y.wk!׆Ōt&h8/GiB~~>Lh7X32lV.'.IZ@/1a2j4/ 8k- ČWts9+ .|Į!KG4'=p@jBb0rt%hd\!Rs]:S9湼Gp;(-M:xLnQctT,"ug\R'bud4E+y|"T0:ӗcthX LBgX.e'G)S 4 DL%µBV,*|G?Q(" ˤMgh}9P#I߈[E55r̢ӪLՄC-0f!ɊC8 tW46Â/7tWzFbDqxfFkfCb=@+A )V|Ќ [F(,ރkjj+M3 sMW3BcSCU]ms +Nɬ䇚{sn%055s/^TW 2Fd!#ǜOr&MBYm d`5t/˼(jeZ۩RNuzn˸.5kB0XekV̞Yٿ ~6|.q e}g G]j\.ltm]im΄R_ÜYH!sE.t,{lϲ}/^1;hF y|wIJkud=d7w3Ńid*. 7.X! kG8 FT `ŸbY^o:;;Q0YߟYoI֟`$Fy$_)kUl(xą%to %%ÜΧc%k\ÔAkmlJq1'օ6pÐOǰefeYNF0 ˤ[Z$a- [D&*d.|2!d}}3iƤd}*Y+@\  \LG_+?olV'?)A Gؠx>Geb5hkaƉÈD1":Aͫːظ*CruCC]Cc ZT7&S56TVeA)j5+MՋlF]*A:F}]<4EL?zj.lG|4D],ègo:8n7;ͣpŒw.gw.*N=^:]3ˋvl+٥н0G|YҀ8B v;dp #&}SjXgFuJ$}Uv6Xa&T[q=h#q.RK߸~lӸip&NT+:iY w,P/.+9@o-qau0N`=%$E< І՜`.Gib#Ǭ]}]L^#1 fZa?9|]uGP 3TڴOx8 bM4bѰ#JR5&YVVwKݪKM_?0c5-nq5<#:~Ҡ1cF wucԚ=6dY1eU6b07x3 7-ljdy,N$&&^,1AbD?O3TUL4.YD *Ăp+ȮyԮ@e14%.,Ǥ3C;+89f#fA9fdR2̜`dfnJ⑙UU \݄,݇akg3*Am1BH-oOD߰\T1etvkuO1) 󛑙Gdvd7R272S2ɮDjh}W Sͯ7TϭiljX66% ՕaKKiFcUemmu_&ZFh: c9sT,hX8?v ao+ 6 5jcsjI\Q!sUr|AmN11'بOgaA- m1%Vcw>*DS0 Xc{lܩ0zro-V.]'.10dXMLd<9ezwR6n+Kct剙 R\ ^o LVOajO0uFlZn Sa+a00u}#L S S-a~Y7GoF9:CfJΐјNa+oۣ7LǤ2PFjQY{qh#TSu$T>.S>e;" B2EZA+^X4Q4uZa"ZeU6BYؠMƌl^/07Vݵ͡na1/ɖ+v?$~ A3te8Aͣ)x826$kS~ˠ?e24Įlꚓ¸7PgUԐ\ vXb\E|$uR[rUrէ1:K^i +b34VV.uuчwpQ|Y#h.MRmmq;9;֜SNe< N .%OMI1胿Qk#bl z/@8៸j +ݙ k4‚8nY<-xI:n'ZN-NbԔS @2s5"p^D_ڝ ?8r9py MO֌=¤2Yfm1yxәv' ?X)<_ WQil'z&dBQF`8ZQMMJȂOE^vvٞ 85j S]"@gx)JqV ~eWnҲ!Vg`؛\jw<a]N-iLbB003 Y8^DhW "lL,TBSF *-2 ol4P0%0\FO Qvq<1b2x'X6 KO))% T^rRJypë)< KكqZct%VFTM/ ++vˤ;[Wɖ5/<^/:=S};*P.,]jf}Ϡ>hlZe7Jí1lYED+hRcjJr3I(7;T瀿ϴ˥=Ak(ڥQ{{/S~wP+f(LX1F  nmK$.0~m1\4)nC"QQ ̴͡Y]Ik"QC'95O$ +:?ƮYH ѫFB"6ǣ,y, I XL/&Ĭpq,¶!zHZҕm~\#@^P@ L1]-6 esyP T 7 dhktxs%tx/\ {h/:OyC;[gࠨTdvb?6<h,ݰTf8lR=Kop`a)/qaߣ֡.9 ie2vIp2(y?(TCQAd6}a:Cb <ʸfsǟ$ҧ%27.#2g$k(Vtԫ!iӳfA~X<~N9R7;1WcG,GyԮ_z{Tpt-%mzX .sWV(VG,_IPkPGSt"I=چHeP䏜D0' ~;Vfq/S3^@3'5>qбAPz_g0SƥIzQd9&͡2aZ{.-T;=o@,N,rr7ӽ662'h3fd$Xtu$aK3͡炰 }kutgK:s%Q6}BgWF-KbydwU}Nud][}1ߡ={o +tΊ~'M2lPSALahy,U+r&z'apybؒ40, )rm9\ץCU1Zv vc/[k7RdQaGbsVAW>cƴVmb4n'5@m9sYW6epčDϜLhbNuh'ڂtC1zbjA`Wao[UZF;ɾٮғ1F^T:4Ϋb(ߣeIfmT *@_l;h^ {\(hY`}HegI02-vN]t&oh"]L0bӃm~+3ӝzb862MG7ۃr!0Nm*55KFCO+ܭ >Ag~f01Z{[?;TmݟYUxE9N|fKe^»YǨ`KáʅY@;q+K@\u _!^*3( fT>~ƻgoNS1/#T~a bh 0=!AiS+w}-GYGYD<P giQbf۔S-*jnf/X| a𡩲 xbǙ>QU${l9"0#"p ?c$#a:cĩeɄ+KXc `wOO*]I%~侳/e.!Ã1Lu=MMJ.lC 3jPRE~ضTRqRB9Sˉ42uKoz̊e]7kKEU K'$~%KS~` ^q[!?Svۼ+9>Kq)F՛鬶$t;W*u/]_FKk"4_:Hؐ+(& WCg:3=F4=-1gWkRpX%RYhs[Ed✔ ŴKeZS!-&MzϦ,tOkF='y(uAqǕTtiCo#G=rc"(*A A2=jIry癖%">8MVnK&Q9+Z'#&\H+Gpn`?cGLgɉkb2BwKtD6MGPZA8a,Mf-iL7l/L{ eU6y|dKs2;2/b{d޻Ý)98[^H^1m5is|Oΰt-u*!^jAK([n~a8n_+`k,3,_~*z %>] qU\@YTt`P6!\lz/L~A16ʦW!oVժrW`672 All-ƥ"+N0B6Xa9Kvݭ $X:"1؂ę;Saٍ˦.٬?>yj1QNx1ibinuY~ǙQ-;^ IQ&SizEɴi?_3٥$-N-ov5naAŴtO]c`O`JK?b:~Fe }Q+a lO)3ߐrp)S,AbB*wsϕ2!*`iNa[]:"~B__p*xl8"?bW%˩r4UYN*?sN]٥c{I9[lOri\DB0$φERe = (~PR*h .cgǎ,*v nG1\è&H(a]c@-_F&ivlbcC~QI+ 1 acےf`YVEiia'5Lbς`',a|@@SHrix4J+hGkbx,*m$dV-iXuiE^TEWe '#^UW""g9s< (ip2gMXv|O]kҀ"pt`M9o8‹-:?*餱82Inkp?HҁFYq.0gu}Y KnQ%lO.nT&?Hv|o+n{Sj9P]4#gp?T@q="y#X#.x a( ac ZQ]pqߊEW PXf~`>) #V@PV/l[5۲hWSή5VE$L ]eۖD^oY#'Zqj E}L6F&`t?m0{BۖTLSbKHx)^?p]MO}[^lmF/+2S! !L_7z6DyP `Ih]>Ex56k02BӂMf#,UG%ekW4;PR=X=I{VF9+Oq;c 5hPZ\)iҾ cj,`uoI=$ r=ZmrvĘ uo<Iʴ+@nD40KWea`O7=ıp} Lwz2E_׭ HkP٠īʀ$Ƒƛ `T%D_XC];G؅sSQWTZ~n3iM&ьlR6-=46&95umy&I(1-RtW}CC1`RI3::B0Wg7 ѵ&1g8 %2Dׇ%vN@R98v8WRatc8ce/I4i^C'C$툊TuI\&EeeR",6N!G9:6?I:^ k't͟:,mbsHsDC3$Q '?OJf ρ_J:y:P<4a:;KcvwCD{sWhٴx=g06&qw/(LLM8=,P',aPVP[RV:E}X ɲu]_ Pd*rsqC*6O )41SV33NШm9lw3> ! cڹ|b&4p":=ո&,CZ .Z6;뿩{L5rG/{KԊ1AY&7_, VK¹#*Aּ5^ͮ2( iY Kt–lj ˠw5XyC0x^葈П[X/^H"7=[J52%ٗ {5wV:apmey#?H,CD-D9j(FQ E͎ܢ.t`ˉЈb< qN'鹹LeT-6.3)!֖E&ѻSvb#nz`X^{8k;ƥ3.@3xr4 Hl}? < Y{\ZPsEa=ztREzڌeCٽ2Y쒀;ºoٓNӘnǍ!D(|KJa\Ay SXՇP ̙t¯Ja?Zѷ4g9)~KT#Δ+v'QR v(W-UWa̝ӐX!_ٽEٲȎV%ϏJlP[#V/Zf|Y/zƫmX_Z&Jv@\nqO-lp EpOF0Ai Fb[){{0d^+njMaM, eFxanS A=?Ԑ:`[ezH_"}tT`2`UXa(|6o Ζ4sЛL]3zFGmѠͭ"D@2}Y9%zelI8ݬ­+(`7U;8=K #J=2WnUjW<]ZY)#<:لQG}50Pv(&YeͲ<@1F{养:PA$]l}e q SΞ@ׂئ _`G5`iC!`- )z<äyWJ'aף: 얟i@7h@A z ӵw<׎(<3X~ !jz}]K;pm7ʣ%P%4}0=M2XBqQK]d{ȒL8'u5Wb 拠TVZR0Ao]jRW~VC{/ 5g\ 궲A1rŪ׺벽1+]A.=OXX%F(G0^Fچcܦarvi\wy*QXzڃ8W1hﴢY;ݳ"rE8~d ll|ӂ$P`wڤV{ qE1 /,[(+͘EM1.#S|'H/dGnCM|5AWL$ lB])Jl ⦷y\~:R? Lja{x9e9p)ﵲin-fcR8CeMUK8e~cv͟ 1'iB# U$\8^KQgSg9=`Iceqr.)}&G.($Xߨ+!Cl%;$1v u?@5tb7!IЃJ_O(' _\56GwMiX=? Y --~Ah1u~Kf[nH' H'|v9 " zWPǦK]$T%H^I/wIސ$my4x; $\4n$?b@ wdk -ЕmbzQaxM[7,L)p"Km]^OC&ZVFt|6.2Mm~i .穴bbw7%C3g͢تVN?]V@1qٳ0 `F`9 8X !A'|-TjڜQ܍ }^;i,QWiAhI \$x[30p3LcL+g&2->N3dMfzmڱ\2oBˢK1 uʮ!ŵeٔ$eȲ赥5_B,,'LG)ĄjJnq,:%VbV g\\lӘ *r!nY_qߡRN^Z(A\qy#! Ͳ]Ee<Ĕ)" x1<1HamD~܁qy. eXkҟr Bsa5 銖l2=^aA'F["aa;:ݽ2˻K/sFlMFR6<<9nЦVʣA@[C?7gz<llr)˅a:s }VMB̓dŗ=<.D֔="e4*plsVM$B\qIU;0]3Ͽ;GWZkԊ]>S4)Ul0&VTep/w.w f:Bjo+BrnC۲v" ںڇS06eLqSJwogȨmR/ys3YP[SUiN4c`MU ,y0оS=U^6ⵕM5#.!Yha,lK{Z`RFEЯLWSWT/>, [( 22$754eHH9Ba̝W7b'jk7 rȘa,YFJ3Q2RQ:+8e[38 F*Q2;R?Q.t'Όq}7;-İaWrl-+dg9RTQ#HLZWZJ_u#_#]>L0-Il nal8qGzݨ ⦢+EOgoe{lO/L~m}GOahtj߸5GҵkF/G܎b_ԗ3w,jhmI/S6xO@5MgL+%B0!?91gSucӼLbqq`Lk5LT74Ԧ2i^|^*-/b@f\9E>6ȣ3xcQ}-w'Z||N;-XM]suUj_PF4UU}VF+5iq}*͑/ӄh~sh-'AL%!XCR aRzgMI6dõC:F~#~QG^T8œ!rVV^+~谻_ŞE?Ǝ93N?:8cӠoG¥NQRv\ar'̚L ƴqraUR ' 2G"WR#$ qf;A乍 jc4ޣF\܉Cġii7Bw<}}%PRqѢQtx{wDlwS V.T;j*^v.l~7H 5eɀ%we>e2F<%N6=J3?4i 0(} hNWt[ѦBY'S6rliɕZY#/qHf 5#- WG|;&$muD8 lkuh cLe_JC6pZ :(ltb[} 8}f'fb5f&deaoG[xo0D8rb(`o&C(66 髽4 R:ߊV<^Ixok_iU3LmR|Q1G`t"dZf>B`X0hGG豙Nq { 0f=F,[cX1 , 204Tf8V.MEkrbo+}O=&~';rvu5,#KWtWq-= MV2QX6* ESl+mNaYPfqi*O!cd. XOҥezmYLI I %*4$\ (~"O JXiH,[0]D=p+Ǧ'vY٤CbPΎxVAܴKۭ1p~ s2j|yȉDJT/.2XFץ6!l2-|bvq Sj 93-d]pZv`&X> ,t6-QCP`֑# 8 u{D 5XOQ6.ngJ`XIYjT؆lڧ@X, 0w7K<)bV.n[9uoV/ibZh:WsE*u@VD(uP-x:VZR)Շ _B1+d \o:;!M\x "jBѧTj=@*Ix"n mb@,c60 38bS&[2O#`U4znz_l` {/:bWnuSsk^U579ȋ.[h%Y^RŌh*GO2صQPW]MP(W ly72n`ʥACqՙbg|1:XM% !q e{NDpps$L:ocXr؅?%1h߅? uapEf& ɸ6= {Z|Bg1/ҋ uG=pdJ7u7> "-UC1R_YڔH7o…({l3A e3j@%E2nde*<1S,h<i0WwM`Udp$OGoinj-gnZ-Iكi\ZM/- ; ^dJ״@̷ɳLpL*] ǦOdbWeʖ$ǥݼ#!Mh$[c}Y2X@5螨Aв `F3?/r1rdڹ,P+{2lyĘ-1E=!ƇPHzNPd4W!j\1vhb)DnK@b2]#Sa`WZP^Eةgi?َ_ 'i\2>ʥ;,Gt<,%ԘY6ӍIaYsmh:6f%C&>^[<\cbxI:]ih3G0V%N]XR7 q+^c#m/cW4ϋ\$NR>LsJtL ?YϾ_ۿ=}k"H/O GNy@|Tu/~AzD6|mם/@#_i#oM |7>SBa~N_k5enk7k(WSfrMXWH2j3ḪijSUaTRY#4 <0jjeO2ʆ& pXTk_)~%ʨlRP5G}C|񹰤b ~p ,R41l<@ la53'w5'w50{Na,hFC]]SFsuC͜ŀF0^_W') C?JMȃkCca^0g7D5|QgawaWϏ'ev0j*sa`so=:H^Ia h,BJ;kFGrԲ +kzʷ:@4|'DDiOv}I JKh'q3 tJ G?bbr૮괺&|J4NciB,hX=ok! /74O}@``໐vE ʽ̬lèAS.f95J5$cd6V!wa, Sա9^T OTϩ\0OGd~p,E!@tcSÂ*(ZF+ ю(3F4@QxØ3Nt-ym$&NHOgh@rP0 dS;*(EbB0^@[K@[ uYl?@M6X=v7u#+,2)W̷Ϩ"l JajDB/nrC8B-N U= kN1{v |s(?f" (T :K NlTU65idJelqG o0]aà 8sv~БR$op`~"{-u-#-(4ӯtPήDCUWV[9cۅw~=*ئIӆX~¦cKjZE?S jN`|#F,Xnh?YrɎO_ڪb&LlVљuw dWLׇʉ*C"|#|/rAL؏*iVQoZE⇎t(=l1ݽЁ wGnU0/8oCx{~ItQGg:.!cgzH{Cc;[uM3gZ3,xoM Jb]~]~VF9O|T^ P4@'Ӻo5_ V>ǃ LT)g@8Էiv) [k] #flecG٥$ \'I^C%RTᥭCt fv$ӵp4AO{.f"M`$kCmE:z঒0fXCqr Bҏ2:!ߣ|ecHO#r;[c΄l;#t_85fr^`/>" ,"ZnH&2[+Ho[bc?_^L:9't~<)gkkZkS!/Zֺia5ąY4i'pGsZqD 8'rĖ} ;0=۪)s֤ {uqE 3B =n j@0Kl@8>:pG"};o416FSSN.rt5tG',c{ssw4W4]4;ksG˹zћݬ <גy- Hv GEsmlXl(ܮTn] nw 'ڍD5-xmFu= Q[o[Xl(n:tkEZE ڳGD[{B߂bo x0B.\%ż ]3,bcuh\2;Ts!$naFLۇ3-b}FIzVe>c4Q7#{l9yZT r{ @Ͳ@zHJ4 dc 슀arVRC#w%QB9;l;YAwcʹh2[NݭXԈ> ;ʰ؞936x`VCn_Crp2c_Gc1N=G ?0fdAnc`Ba"'qK/[:\hփ,_ht⣜YHZ]nZ4lfJ8*9Ywƺ/wKq fyg0wKq1Ph5ddtAC VNC7݈<|rGW[Y7T[d(6[)ULndS%(;mSӧVݺkI!kš56@kGIm}_lJT786-~AhhGGt`}M_?z۔2uY@0s-NϫтRлU02`YSLJFCof"*,kk-V(:og:ͦ߂Nȝq X2vkh 8fDY4.7hJ{+xt1ݺu0 hOgRFGY'PPliFe8aڀ%alZ|Wt)' 4 G5 (S(Fx͝EU1R $6OW`jH% mF vV_OGbF.EF*{3|ea>=;k1粩Sq6!Y55lcl V9+:CԄ?R9Y" ۸S,mo\qO0)p,(yءYKW\hAsBCH_(M_cwѡϺSI)6 ajp S@m?:'eB]z_.. n ]ܡZ =EMc`n&˅#%`RQbAQMc6 2KZrdgxվA; g2׽å1zN)Ө:N@Nɀ]ͺ:9$[!RSdICWsm^G̎wlK'D#/ 1-}{.[9>B2Do  4 G8/%(R W͌U5/>gpT{Z<Sݱ))鱴 j^XOqKqCyevRǃܱTPYU*۸qBsG ~T񥗾CֹL:E.Sҡȴ&(;OéQHI#YAnwjJɸGiw,60t䓩zƿRXn#3ҋt82X%DŽH9NvRWmma78hnU09/?S6JexRN8^Sm,סZC1wKk9o× r?S$uHS\,8=VT ! Pm ^Frp5ZTZuA۔HlKW% >҃׆C}ejuRBvU6]syqNqn r_V"$~4)!GC.1sCPnPCUy5590Hr.oHLyLeQJdHK#А6i QWW ˫H\SysJ?fKkZI$/W K*5eT;%;o- hYcyȰZ ?L 7NC,FLjhTl4-FF7?,FG1F/c#/7_xd,F 8ȼ(am;Y#oFu~m>hPyV|$ e$kdC%|h=ș`|T!AHl*6qh礈2vk~ S K:Q^|2Y뽆yÌ6,Gq?`mIkdwPȰt_PfVdnPƣIO^kl/\ץZV,+C4\lfI±*g\>V\1}B`3%QZ3%>'x4LeʷiLrmOE<2YF efLJ7{VEɚlYN&#n*xNޒ>7RMʈ_0*-v|};0?4Cq0˖Uj8>z^ 8t3 yW+éǟw5ލ91$ ޔ *X-xK2cQR+i\,ZS/V̵7U7!UseFQa6 P`5zcᛅXsKs_5 ŁYE54Nx,>G7yУ旳7i`l+Ii Z{+= M=Ά, 0`$f*Y)\; #Ts1GIKJ )tYdݜ*RWt%;RƘv4:Lj+riMY;M=[<1Y3X]xd\<lu26cD]6F I-i/WH'Րtۊϱ"FID7ؽjhu9тgL Ѯ@U1n!JTS~U7^{^"ZFr@RFu [N~cX۱-,3;j!2R=_,.7Tm)\Ԙv]mpIwW6z؍v7,ч`7dAI5C8#Y@'0:FUv2Te;UhA%f 3A0,_ر$"S5d3 7d]dgf`s<>4'9JB5;:%dLd| h*inMA6(Rjzq@5?5w2Su=yټvˊr@eggxU QT nZ 2P,jjRHNz3h,ђ5oCg!-Nz'EP>5@Ԍ֍$00b;cf|&..oIᜁ'%-wٚh]9o [&W9~j%{A[ЊޑhjRlPe)=lWܜ;lk;ZK+rkZzĶv!ZգUa-Sv tQMIʱLȣ0%XS o[J~3y:?|)xS:*걦G|$H'J,o d;|>L_N5J']OX*):=N+AIG403\DJU?zsr`O2Ch}  邏]97 ù(Lۦs@StR'>:}̷K~3{ٽh ƪ ŴIڒdDG88BK!ڐwߊ㟖T J&(#d^9wܐm8Rj,"d,(L]p*CJ?+lm&p4+NQX)1Gy58!&@ϩd[bq^Ք4h^*l$:?NxVV {UeYmL!WZۭm#l݂Gu6<풷b0*O&#Y bE,^FDcuS(a#MɓB~ -:_Ԓ|\/u49u?7SC,TpnSp ncV#MG+G::}XєJjj4'uL9Q >H; a1-8;x%^Q~vuy1 >|%tިgKpެCE3N;ǝdkY&ۧxHu@ћ}Dtc9o: ai {N.q^S #d0l8)gLtԦF,b$)Sαx}*( %i)̈(`^9ȼ`T@n^Ha^7fyMLfP\ bkc;\>Ă s,h[%tKz:'rX*FMyv @hCܪrYJ.C~hvEn㱱^nKlEB5n 9Ԑ5nMųn RӘeGѷZj4 gB']p ?p}c#0b^.XF; `4wƨ1lG_+x^vRjӂ`?Gะ6يi lx iP_gg%i݊jY',QzG&}+q'=Kק yC٤}<9rW5(u2h2FFN7pKmwShkHSErTt^5}T &x=KsNm>4\}}nzeץHx>>lȺ%p,O}Q* z>;־_>tb\~jVRFUZDmqyOjr܊tŅ{hzSnbу!AjT:!\YO4l n6:Cq\vQŇi&Y+Zy҇MeB[+;%ڊƁćĒdK V(C/'%:h^)=-iܟ .|DTdwvDTL5˵5^&`Vte2ˡ$V8JTXtNFfQqCx-߿y\:ݺ`~Jߣe2]Y5}h[4Ze{h{!Wi5#X}}9W h]FӗjRG/ֺoiQ,ⷛ VCeoXʹ0SA½[h`[{֜L[QybH*;cVIq8:yP]_t8U?'R}vw!]%yfn9m7K?3_ &v}~QlIc3AvTřߧh!]T&dTs& g T5iQE}ž:D҇uiiJ0{9_Mqm*q%Fn nd٥=Tժp(=S242C~ƌA߮ZxJԦr SGk9Ux#( ܖcE_B!mX 9T>' ΉHaK} 7ϛy!1䱹 v<]}4s7:e?[[IǍTM>H8-α̈́&]QP]=n=|w?$3R3y#wXu>i=bźpG[{N[(Ewb \r~_vMPӋinѺ+QMqN:a$E qC(Ez/ټuTx,#3šJ2iA']i%n mteR'f);%H!w(b l<k!AdxKv/z0vr\l-ߕ>\ ~ |CE> fBҘ,G hɤJu{TUALzIXY2%Yg a`Iwt%i,--i,ONa]IP.KhUXT($z|@ubMi8r7ri|&0<5GOWK7ռ0ԤŬb\%LE(qH/ Sxׇ *Ozm\K\T_;^RWTubW6ʓm7`KI >p4^/ pBiSY% 6HZ q\|#@/"WB]PI;}_Ъ(|y}x9]uiv+[͵Y _٠F5([7y^QteYF2&水i4Eq_p^Q✴NFL RB ~8u[ .Ib/_I԰xIZ;wv ad/N2/Nk=\ yC닳ΉJB\a|'ޣ՗e9%ֺ^>1ңx@Rs9E6GRM ?yK̠f^gE,9vQr1JAUZpL0x.;T5 Ǿ,>HќEY<,~R9~F(TL[v _] TV s|89[+$mq{y5sCH~z [ V }+T'xqJlK b׍/:Mgl'Z咳5kM9J-9qƈ.~6皌AXAop(> ]ZٷV4R`)%+9MWBi-A S>SK%>d`V 9&y]UܪJYʚ jJ:vY?6R1M"Ѽ]5ogX؛ 4kn{0|&pg냍j/#ݧ# ]P+F74&|"WeD,e%2v"Xܵ)ŊZMQl5XĊ~"޽>e[.REB]+4 tR թtl Rs!P,`v'\^kjF\2gK(FP׳BZ/X>|M$d"*8(RdWNe '=*uz 8yhɢOOObDej PXűz3hQ_J_*`wMTZ Ʋ i/G?,I9ļА\#ǒy,,e (sgRH:7ĂSLHo*Th1"xR}mژo~6THT.բmUblKTp)jeXW~*=ξ,z^75~) 'ptv{qP> $RoR5yh~IN+87EαM!sFr :!tuxQ xKQGP'E|Br|>QJu9C2GRl a q98r1^\ے}*NkVr;x*N%L{v4nF9cvMYKi_sW c<ЇY\W `QxWCǢ?mK=QK:4ѓ.rY3r $n{ԋ1?_`{8P'.\P=śL4k˶q"a)q,?(u7㐪1j&`C!?NӪt$H0=q+zNM.hVwn%pqB!>_v&#]?}7fmb:6tyTݖE}S` x$Ԅ8Uł)T8dt]}m t[{a&.Ctu&pהoa<` tM)"H_Uf׳%s.91UPy4׶E[{L20!H=ɀC Ksܔn3 Ÿiv^x`g2#PI|"qcj2@1KX\iX@0')w͇bs2 g}U^"N\kSvf)TgXy1}NzGLGLm.V/p#@JFwܯ ~10[XKArv ll׻;BC׻AѿY\1+W݁W Fm5gڡC=GTWzhDfnβ6s~C2A<8.5t;*_13g3)TZ#]B, Óʲ6FjVVsQ?>)vPzv2~T眃pԈ \71:Gth4kԱ%ڱ1JMق4*E\0w0`ڴPQ9-907I.۹ܰ@RwW8tΑ"&m"ܤHdT7i,]'M Y"j&Lic=Ʀ9sB|uVӗ֌Sa6<c B{EtS SS Utd"P$kc!9 JH$\-McQ}'+푄8.+n-T5 X^mtukZMQ`D@eK%R1wo?\rM„LmKrz%.~7ʙt@p%WܓtָIpe 5:K3Fk]=g$OıhႯ͞7zΜO7vƒ nÜ6ġh価bhΚ[;cQ(ٳjj4.V=}a(FLƑD~Μ>9oj-V|tcճMIfϘ:GT" &R8Ba*'P4C%E2YÜ߅AEΚ8^ Z*Jo*NZ9N*NwL#4@9Ǚ%[ǚXQoI#S+ŻcixkpN!NT{}_|Uho3S۸¡ lǨ0Ypg2 nN~ \ot'ݒ^ͯG;2xO*<8B3v78ELПo93v7 z!ە5ԌB-A;H=0>҇-_m A.:vNk<w9O$IWd\GM/T)mMQ5 WZ>+ hʺ.>#⎃{ ~\z=: (W6:87ܮG-ZK`9i[qK&>fs5 Gţ8c.-'M.4\wpUΊ,ך8CxɳȽMT65#S/#.sH _ۛN-2$%4IWsz`KԥqO..ѾLt@Í)OG-Lvi#us,X\B'^gzKGĥ&bgy Ύ.S~v"N縧ls"t:885]9|wH?k1'ż5Y:V-$/S)xA}+ "2~nʺW4MIiְWpUs1Cှ b-{~o|rEr3vnȀh.lf%ƗHK|;I\*, .gcq0i rG1]N^jFϡ9r^ W,\>}1gF 'ui䘭iq}a&r'OwExf6bN 78}++y&d*Ro\5(+EnfA@PE/ ȥ58+G _] KCvq= ω?3̔FCák:ஃ F}#싖l6DXF. \ꛕ] fiI#Z)Q];,_Ep9ܶVYoTTS( Xas@ƛ$4!& \+m8M/ZTn Q1U$d^y㣩^G[rJ10Wqo8C.F<,OW7fݹ30.K6:h 5t8y8yI-|f9Wa=?:<$חhMzEtN^+)r؎?W|PJ'yp%Ϡ韐H8vdrd2L$!D k̚{搇yCܵhCœ-ާɦΨ}uתk͙5}شEfghv%SS@OKDmւ5MN2X8zz<0~WA3jk T7`Y7[467v9MI"KYs30ip3Tל5k: y +)/cnbpq Dm3wi^]'Ü98hWU&{Y/!a:H%FH?O?yM\D_5̈oCʠȐ|X.ۄ?ܸS(Cqc։ENo][d[驪j46\<89 ߴО7оUTo m| o+U8皷,<Rܟ+Bi3|5Tby;3OsG>,M[`A%EVuHE UJpy.)O+8-q B,I|h?VXK@+V5z=f$'?ќpRgDx)̴^-w"|X7y`Ľ-E-=b*v~4!<+m(,GɬWߴN+ʠTkp~y5hN:]4;?p/#\ncArSz5F)v92ytE&)*qV bQIgX"4>li5:uJ%$wB]?$p*xEƧvFr*{ ʌql4F=E:5Uzl*gFm\g:nmw5ObΡb:Ӊ{T :(_rHEZoJB0@Q4`85W3")Sh͟l|8.iG_ QQ9rUWfo d]Ok+/iC4i/7OFSv*j{DY KS(0Go4C#nWOCG.\zU*n td8\f%ibpKs 0?<%|MhZrvm`igrޟF_dd<#koxDB _"l5_H`=c(;%q*קKruy4[!jIjmf6&k>i-y2G2e@q&;':BS@}t5Qo;Un9'm<%V7z|1V )KOL&`G&[/6곕.J *12>,qNZeuKVmN4VfO,V'e|M43 FMmQI\`aa t=mRv-HŔO#c+֬^&;msSNgb8?͗!/\`n~GuC X+ 5Bi:hx UhwSi\,Omr!N j:Uu|ZG~1,-)Vzy{wL7yo<7\aQ2lW`9k8n;yd\U(9!ʘ-n#evH*;$FKk>gOhdZڝOSXNB lڞ)/¹BUã hS)jS枩Ҋz&k~m߫XQ)X'޽&p/|3M|oYe 銲:dq8PUy,H4_F o 鎻"7r *}.IR2z_GETP8'1~\JIS\2-E<'iq8sfQDgA sƖKƥKDx܈yR,MHSd[ ^,R2]>ҙ n 4 SFkIsIWpD&/VEC 9RڱaJI-܅}N!+՜kSRq s$8p빫2B[xz(cdz yB#Ϡg`d[@EN0t.> V>j.MǦjCf+{BLtG R ȳ-b>~D7򌌟I%RNiq2:HlCKL-/OW1[].g2UZ`+ђ/؟KEcDŽhWst=W @_C.PpKޚԼb>(C S% jsɶVJx C:,7HgIE&S\hIg]h\AʃP[GYPWOOdB'UT$k⋳H)BhTC+&b(v3y~oͷZ20FtuaV˽桡L*_]Yu@&#VbS?^JlSF)'ǃgrZdIڤ.zXOy%L`P!eRNA28'smh)KA_³q()”yR12t(_Π| bުpث iȠ\9 qtPYBmҋqi۵HRSKQ/jigT['i`mS9j4Z-ĴX+Q+ǫvp.:4G^JP 0w<ޔW3%0M 3;}>\q~be5OZExI<-}vdUݞ,ڶJ(Wj@C=B6˒{clJ]`0MSmZ%eS"ؤ5*o^>hNmJp i]tZ-[~u\ܭy~wKЊ<~Xr>ЊnLKc/q]W8d &eLrADL,2(lTh:&ao7-ꩨfױu8a%;4_zDBk7-BxJtNm 1LsG-[cwny4SEKQAUZ-҉G=vTYI_GqbiTü4c Hu7mlQ:[ϏI߉ ncbgbˮe j+"e))xsk㒏R[0޺g^V"-o9{d[N-I?/ωCK?t;&4J4tN"cq b)A"9,H;qhwm э#1L,N3:/whXnό Vn8Muf-s]5tS^t6j񪨀Q[c\u\<])XE(-a%Y` / %`_(,ZS,_q j<ץs riXA=]Y[[%:~;у*1m559wcL{gж`7wr$i{mT%!6(}jeD$؟%_i[GVO;rM 0={.cAp\T5UOYL(ťHn' *d9b^?s+snx6=ɳ_0B 1rz~3/C#_  `p#/O]+'?ڙHȼqu~<ޑ3ä`גh㧤KF/WQZGw}x~љR!g 5ڧJg;炜a[̟EI%iQŐSHdO.p=m!N#9Lo{ . J _1. qi(peԧ $Mm#f3( ܣbV/JeG>h-i:7X g/jޛ|iƪjrXJͩ:ř]k%=nPAorYpSN'py'H&>G!M|CccHsÚ[8O3TμC9XygUn!sf̡P9gv̘9{r!8~)blHan8'HTΛTџŸjWIΌS,=kzd|4sl2$b*ɹEsg-!(~헗H,C[h.UD. sg͍퓆%53n0/53W3cn~ւs5q˯y2_,nl8iVMXdY3 ?cCǜYjmaH̝ЇjK -]ӘJ$VaMQsDm$)e\mrq댌=8X"UlU'Ü!q1 l)p}--*;9cpssKo>iU/:ꉶl`z[c^ϑ,xY"|=rOӺ#Tc:xkk *G5I|H{ ˺3~۔--Nˣh#l(p&qwK?[=EݒuOU)Bi*%㞂݃pS3P@--YSH]~9 Tt)qT=ݘvO.-^MG$$ր-y{pp{;^T6e]|ؕ:aUP*s=4V*?Z{Vs ݓp}xw5skC>Soa{ڂ{c)۪y1@b* Dk4NCív\o( rNܽAkVX7`q_vX@@_v״Zc%B_y6[ 4_7WzW\i;+UC[iƂzD@WoiVCnpoYe[`0yGV!=նԪ ^e{Wқն,hzcpaz3V//9.x O>ji| aS7C]q~/S6ׁ =,7.WI=8 z✛6Q+9y˂Tr1\S|Sؗ;Lm&GeT,vg%'R prLp_LU#t_رb[wUIyg?}n|VM0DUui˔h.D6Ņ.e! 24ШJl?k$ gQl @~ JF_C},JaKyG,(`f ۘGLn>otپa<t`dw-G+-8HELW{wY Ӊ&T[YA9=B;*9DRI piv_rwJWHThG} 7^^.Q_'H_C5DymkFF+NWyrkm0kq8w=FoYABx$ڌ+=UIے7HrϷrɕG{Ҹlݧo*>Җأˠ)SP$*83Bpc3wKTc$ŝ @V T< WoC\9Й7q7K)RF׀竺*Nꊼǥ.[.QChԧNM0BzH}hĥTnC//['%vZ#՗A:F͘WZm+J)*{228zNԪ Q;EJOQnaiTs8h U2rdfKvBwT-Y/;_k 7Obmw߫~!(ynqƠ?"qY-*cmm4KIcjle x+?Ks3r) c6 @{uEH/O+"YRG9ǩ L9Ḅ^ma< avB)R>옊Ԭ}m/-*h凴>#J= BQLWs7>?~}}VUr+C'U ɓ@F;A %V8\Ko0'pERoN KSZpAJ朌%=(h#Ha͝u'U & zo.2CCb*ڰKEwgj639}vD&GrD*9T#*8U?^!Nm 4Se*Ѕqy:QW{UQ롡%OJjHz3Fi D/9 jk/1ؽCsR*ojՁLfJU*2SdT_@VaSEh-=Ok?lxǼ,F3*# Lj K@һw;C(0yG0#z9ĂpĂ`ˤEFX\?X,פ'׸$<b}3DFʕuIՊF&}t雑G+EV'i3n,G^l '3{ʔc2!S.B#*̱>cZn5ݼHğ s\/~cgmX[0ȍ(} \R(| YIV (Ja%j(찫b$1bKSe3riY AixH\rjr q֔܃4/9YP{">G ,; [uPȈp1VDG~_*] ŠׇrD8Gb"ԓư\G[=u!5‡zp(,L6})_RfjC=Pۂ`4ƶ`9~|;oTk!ü~*iR Quf|t(dnc°*2< 6& řy谁7.o$(^RD״dєŋYoLb4yGB |j scL%P3eBJp5o H/7s׉LZˣ=zm6v]Q|ď&B_CD{UR>܎ eC` JcpΡ0XFrxMpڱ<05ORsnv|^<6iZ nHa. y7\Ӎ 8! ~]»4$9 $5L*L;7pC=Y\Ia(lO hzV4bD]a<63A9M7z8WZ27IlƆiyhk| Ъ7n6iݓTa]Vi^(2!=YE4fU:aG4HpϚ0LM qedǵg';Z8mM#% j%mg(IAUin8KKռWO佁il.xd^&9xLTst[,7ԴE.WTyZ\MtՑ8z^h>z=|dײ[xkd1x]J?ٮC;qšVL6Kxs,dw҈3لp-rLťH QAaS1ѭvȓk*xtv 7:A?gk Bxαı` A Bcơؚ ;4 ,*D9+ '0lۓct:PF;R#FwQccۦuk+K:h>V\8lF%9ݰu  \ȣyW ƃ0\W!W4]К!".ԣg7R' ^*yݛQRa0ZBasr(>uXNHH;@Q7<$uHI{v&j/n ZK+ *j!6+a4 hెwh8U>u#=ِ;-=T/&#;yGkX^[']QrW&RѲ0G97IP}oxįvɫej{mm]C]WSä,1gSꡭQD-ˑ1F[ HKrk*s)| /OsRi9sp y[S ?<u򸥥_=!S~8 &"| ģɚv=hwr0gp.j*mՇ"tIj&5@sQ+c2USxn(ȸ)\2 tNN`i5/$v)~qw&6LpNx!Ѻg4g~!L1KSY#|ۤ1l3A3FF\DoSlo%a%=xLD(Zt=}-&خ0.JJ]8s2Q[I-< D4ˤ]81c_ϋoB۶NC᭄(e_2ӴI. O t nNOwS`6'[;!xVzN@29~yWߪ-ެ-zj۹Q!O|xtJc^k \6)u)ouW;웊Ӈ.F\DžA|Y N h`@&AM/}:xQ\]zSbddzŤ>CI|H~RNu*v/t(8%rulXBZmUFd;ֹMN?~#< ;9x ݦI1{|xxAn-7:A ]UdO2sAR)DcJAs#ج4tSOA&[UGѲU)h/ Q8 @,ϰSr[$NTYJZb^wδg}No\?LYp7$dzKUn6f1_u[L͍|xo18(ȝ+*s:zu6]+#=ˢ0]q6kOèAUV -hiC f8˒E׭)wn&L){KQ O־ٕM+(Ҋ?U(RgC^Dҙ?k~تB~V'.k7ڥ- Mᢿpu7B,q lFYכ4C"k=e&SЈ%ϊG%2Y҉l7,:JmV1fdS ׬›Zm.S8^rh%L#i%7ֹu9e%.C^=\G:暺|q~}Ok:U@2~.[ +'P#1_AA U7. o,QZL.p~eϷ{_qHIqABGnݨ B@.N )PƷ}xUH5w}H'S 3¬?R䋟Q~גkqCi'3NG5b m*L>/CI>hJW?]mޝ]Ω)d:K Ğܛ.M\i\[>KlY^؄6LUs]{{feJ$Pmⷙ@m/$eE2fWQdF7im[5{6j"3lOvM|gF ,ObŪdu=6wpU$zҨ!nmGo_! P弆9͜*ZKUcAVb6L6) Cb{XW 62* wC$ p{+VL̲\jvۥ O07 ~4wr 6sҶ,#(8c;8~L9nԆ9c7s4ݴV^)ӡ'\Ӟ:pcQO6NsOʂ0Zt|[sY;#C(zR)$4sCryљCQn/-vjW##['p7)Kͭ-425B3 ]WI)ۚ9M'i,iciÜ'<\Τ~k5dbME0508< LDZwD13? ꡸D&'9&Oxiss,O`xi~՜u]&4c)x!\ש :Fs .Pr*N 4}*f6qDHıdt&Ls1/MhLf7R~ɗޛB5[7}@B/*A/Ē6d3JuaUK`^[pV޹he4g&i2ᮤ5 R=\S\~mʈѸhy+Ԝϓdjx\&擫rsۣBp~D~W6G682kȣքJ s,m&^$Iݡ!w(䲂Ƕp-5)LQ \;xas|[ǽnT ڪė⏗/o_WU&g.PhA[-#8w}q竟q>3:SKh &)I!8U(*R  E@ET @SQKIz?k}NJ뾞g=-&wX7OOazoAi{u,˗wfG_S-|خVl 3)= h?hȈ`)$)0G'4|6x 0$S$7Aolyuԃ54߶J{0*{c)UG6?Ԃ j(sܥd;sǟEC ػ~Rs؋ao}ۈ+˳YXAKG =}H. [+2}bYI r[vrL Sydн3EG \z뺋{_k*w? }j?0?a+cn[~-7C1ix'rp5|"bnIf=.D xđȀE3S x!Xgd!#Q%V+k$O%~yM&](Wm +\#ʺT>9;mAd$b-|\'CʯipľYrwK6;~%6εr|YK7R΀6Z`/'5a>`ۗ{˥뢙}y3Y>dޙrv&xDUq6渏=YOR OrT>!%XܫN6{s׀%1Ajdl|9cry VFr>/w9CP|i9QSgsAhfUzu&w׆r=6!|޾H 7v #r3a!dG83 hGAlS8Y]zUK6))-Uv!_2%`/.rYHno\R|TO{#F3,%<ɦ5^-|jwnfA_.gk!Z{C4n7۴_\3r@2-ͦ6V(Z&C$٧; N/ˈ9zԬښ~5jBCrL13p^7t}3~ٝ=_}_ɭ}Tu~|]d?Z ^swU,7"Huٔ5|Ώ!em'KTM_sfݘY5C,nV}ry r"bޗ?d{vߏQ5"±aF=WpGc2 W}z}/2[׆0|2:8#4ut9w=bo6k*y\5b2`p1H ~\$>7=&ʴփ0ʍ=GTzm4)&k?Pgbkv5n\$?Dv}l;׆r}Xܤ|GXzU"87Cꭑn,!$B4+,w#}ݽ ==`Mw<#r2ƥ LNlF)rBM@MϨ6$ C;J0V8SN@l2(TT>dE~n(V"|ܢx F1ݍOe`_"Ӌ;a#r\,*"S6dVmeuwlidz'W~Z7{lo\> 7! X+W "%dVET!:%+3JJɭ{-4L z= pdjd;hXɛtH8gœoIÎbQg93Xv O,+I+س>cS0r9_5Y OVs{ ZI۬3vL|_`x,mwkkջd})d<>[h]`vrc57嬛4g99N[k欛4g9[ڠڗso-Raפ9{&9Z>i'eҜoκs-wҜ3&kmǤ9sfOVgۤ9Μq9m1e6ipIsLsvcmkOƑ"nͯŖ-Lm3 ˮmrvT[6gˤ9S Y7iIs:Z&kmǤ9sZkL+R;j+g9gr^#/uq҅6q@&'hbMS_x;A@ɞ,d7^k&\mC?ZB{l׸,޾JĪy5 :13.)Kb5/rWRSyrɉAj+CxG\BRiG,'':c<(j%-vefb;žgߓskߘxXpyFޜvY%5O&Z"{jkﳪ{a#b1fdmUp!wضh5#5Q$T6/Uh^ m 1 \brqטD!dyz59+C@2kr*NM^1Ssf ׹_%` sSYo$ '8ok8r]D*}X3 \^/:⌼ږnDz;nw=- ե^@u[-KǼ qJ,  m*غ6 QjF_".,Òqg90K j.7 kIXO(%Ğ{Ee/VHx@K3~߽!P2ٞI R` `ϗ=ߡsjY`Py`.PisFcd?ڃhOct)+vgZL*T `/ҜX.˥a{%lsyDO&. P[5xXC70YEwkILT|Kc$8K'ln*4`*kBs'n[PޏUVZqkF{"2{)xxU,#YARb5o kb5hS0) @qÆgg,p MRÆu@/rbǦY22ɚz[QGدЅ>cqxXg(Oz2mh|FAxCIB{H jFӂDAi$y q`Twν'j]d!..re1@B5m1;-"r U~bAVhD@ UE|蝸O̷@mS;Dʲpսl 0d 1 ɬ2f 3|npWFމ/,(OdzY"[fTmh~gbq LCicĮgzBy:_V ^qi2yw,l+˞nVuաJ]@n17Ɲ!X9r9ݵV%߮c35!笔If~?ml LvujtemEtjr w#L79,{2'7W+V̍ G9ǵǻD8T.|# p2D}xg#';p'SynH%e{*=R9-` ?ʡM[Ws^@<u/wN ˎmdde[dl^5c7Y-7Op>S~S7;%1 ^] sQ*l-:\l/k쭃K=YN_& =o{*q>A*?Y%}OTݶvԮtGAh$!҄RICzch<ޕY)q(4V!e7ꌺQԻ,oChefS! $G5Yi#cVJzX55y$'IJ &`DUאe#&ˈ4$/1FYzTa2jvI}*5ٰ^bᴄq; >ލy-,dʹTe:,*+*5vfzТݺ5j@3)b+kuOQ9rF3Mucn/^i r'\w%]55 :DI7+kFOZV.IYT^I҇XO+lJԲ|uuE4 v:HϮٮ[7|OdDG8^UaZ59 ?iu*;WNpOgAr% KewE}-8ahje(ogH9'%řz&@>V_Ʀ8`j^(3b ;xPf2( SxR(0Pk' /N>P o[P$B ~MGre},3*Kd֩|.EXV=jT9 ?s$ BwA[3zǬcNB9gWx #2^Ufbpf_3T.o!6L8Xf{| m :N?`j×f[Ǚ70l&l%$&s&Kr\~1ɺIQN|o] c,zUނN*益$8n'e~қ=`vWDrJu {ɥS K6f\9Kj~^ inS?=,HArϥ4 ؃"kD%3 ^ӡum ?|^RYt| \.?pđ|>V~ewR]KMTjrUM/?oB /Xri/X4p&]O^:|*E O0D<Ѡg\ N\~/X8\2QofsD d\dтy\y%_<i7./<_9?y%V=]8a|{/-Z`iƤK8r c^.tŢK/?}iK\n{$PsmhXCA.z $<EfLԼ8%[xUg.p_>M\.%S2(5ţsţ;5Tk<&=Lu.w!M]pyXo~ˁ*<:-[:`6L岧V,tdWqI25;=\Hs5/96N /_{4S ^IsNqd4gl4gֱB5YSfK:]M>-̺!A1slԪejVvM}6WaѰKoթ7f|;g|LiogDR)p-%7e-Q}X[7ݩjPk܉?0OaxWfEuc_Gߥrj) Jy?ȿH[[ 0HvdŬLu7"ED~s6Ə&6hE[L&n\m6Bsn)0nyv`Qd5Ozܾ=A:P#RQ[:QGǴ#jz*A1m@>s_ +l^)0 ߶g}#ыB8jAW;!I P2FƦ ~_ZFo$i ?KLO Jyg`` W7g0;:0jsByM ii`[D|\%YTYmrդ,$%.[ WhYM Jj֊JC%Ğ\G}w 8W %7m4{Gk˝ٔ&I.pcPVPn6\n;L"7~&O0Gt8噖8wWt}ASSbYw !QGnW *c[?FU?KD媕I>dҒ,e=fY"C`T'gsaqaz1v_"Q9hY}0}ޑ~~>ﴒ4e&}>fwe鷩OݕEAG̰'D^2o7=h@ 3 - 'V>(:L_JSS1*TڏBɔ߿z ZV%ͺݖ*xLl_` lC$)V.@ς,Va 55Vsݡ\y-2gQx<ۧ1A9MENde: *ⶂ^bAM&SGU.1nA2L.9❾Yd>T l1' [傭fyc;3C T\JhCtdqhFqq Gp-J]!ڮf( g6IHb4lDZޥ.n@Ǜ%,Gvlϰ`i6ujWy#|w(Wyey(WyŠ+ciEIĜme*[ġ!%Y_}.u׳"_er=^it$ sZ !g[eMsf'7s,\6Ar&כk| [s? h Sb. ҽ3<&;OOl}-6.tc=V*ޖ,>0epˇ]w&!i GkueoEVg5{Ț4Mn\'M& UOq{$\S>z-lnD,o 'zGyVK͵cw֑We@zC\)7ے\3eM}&}ehp2~hA[u@^u)wgԎem=@[ekcA0ͩqgNM#L^>{6tZ% 覤-60nٶ;HcgXGVWHjaitz `}#]7}uʘ|t[lyKg*[1yܡ1=ܢ6؂y/DژxYWS5jgޭy Fesn΋7ҪXXp!ߨydx0ѶvCcl(Q G;ӱ ymAܡxlitǹy%;.jPߚ"]>hd͛)#`Cd'_.1/2`eN9(ع-`p^Wf\WԔJu7{$&ֱ%o91-q g(gbdyJÈ\ ͠hL9zDd97ǧ,:ۘץ&0vdVקcM'rD% ◩pBv;yg-MM-͔ &Y cN /A nt.g ,1ToZ^[iH0'3 Yi.͹0:nH/騮l?WT 5{01^ï)0x~E*1a KLlT%2z6ibƗ\5rf ք?EȾQ!M A;G-=r@l5W1E.s坎܂#PZԼ/t@@CX4t@G GA@2fȥ7>ӨܫfbɸL|fTγn24Š@HaS&cX|>: `ge zvs#56{f[5l/\Cÿi6X@o8ag547a[t0'TCrd1.D2yhUHْ0uto\hml4lHwCb Ԭ%3V |aޭC$T^Hvu DŕD ˲iP='*+\G 7ʦK[O@z)}ܸafFw1 ݐ4{oY# 7GN%esB(e֠r?kCn7rɊg9'^7ePF)J^n4IcLDb^MP7Mʉ'y+H F]5eT *'i XnsK'ad=/йnPy̬ȣTr)ʬoУ@l 2\ ~/c0'#~kCKÜN HL\AqNΔ\V 򢘐m xpwPVDQ4qyGcPT)۫K13/&'2ddD8:֒LxG){d& *L`l|ܲC_L!ʑNX.}.!`D7S ~# `Ɣ|8)O$;fPI/TR4Y_Sz y5;ifºY(O\H^)5jR 4e39ʩcLi)oF_T)n_6jMϔsC-=rR j\cս CٰI]ފ7) M2J S^2jFSz􂝢OxY6ŶH` "}0oq}Bp |ߛ!ui/ ,] VKPQC͝+C$ g^ Anfz8AkP!UVu!PCvDBn|! @ r3ӕ*si=}>|JJ`YU+U*u(mqΩt?rWyd KS9GjÖeSs*ߴϯXZ娯ecYQ_˺D W=j <4¯&65ޯ ۦX$. w%.V q&#aKh*D_Z@SܡzHu$IFjpCoU1[S t_gdVu"k9 c^'+q'%0M(^HA1JF|XLqu_lj [ ͥ[:7Ոz AbFE@EWg٘pŰF[4ʚQ[o:cݡ)D ɲL(*e.0Sl7 ?G7<'gXg. Mes~dS87=D<7MFD$e-څaV h/j$[`.^lHj@Л՝.XUXzG!Y,NHuSaf~hEʏ5;l"|}6=Wzɀ)Av7/abS̴W^~"dU.֗Vor , s˷WL/ge| ($QYrH8;q?>>W6~:"#I@`{*fALx.&dlduf4-YKYoZ.iIC)`Us$L?oXƫw&q Wto}*(cZ[N`,H3M儲LSPqe[2ppZQ90 R!\s\a6#d=X i_1Xr|YZʴ=rDNM7ӿ{b%\QPMiԮnzz"ncYUm5'&X=v?DbGcT>C1/_ߗ'ˍ8|,;K?lr{=[wB幋G(1/?']24}r~J|*cKg˞CR6\6Ց;I*(\XGu 1a{ SEEBД]sv,; ʁ+L4p @5JÏ[ 38j$kj[k˽5z_úWk3j$ec+-祘byi8.y3ˑ-@Z d`vwQ8~\{IQߗC9L-ƿcyvtט0Aen2a}ɲ 7]֝]Rh6'O< ߟx?q@UWhCnjc\5C.X G,;]m"l 'hF?ZӊaEêPr)ݧu_4u[6h'k,uJ/)}nl`Y,fS'ݛM PHOo'޷*M:aOƜ<&&sc2~>K_|/˝.NN*ׂ\+9RBs2z#a% VBSKˡ&5j[1*OusP~~_:(x5rO-pK5cSF/,e7:6#Uˏ[ǠFkpyWXk0rBFᲨ7/f%Hj,l0sH;)ܛ1ڜ3;MCi `ݘ6z}q5}_6İ2e7a mRY&YٺQ5 `Due {o,Yp܋[v@g/k.K6e+xYM7ujdgnЉj2򚥞4k'Iʭk1M6c3jPK V t2WzC>~x} dmf|}:9i\YhqߣGfq~榹ڛq b~< Dei#[ОH19cZ˛ʶ3_D(o 1݆W99l`˜hTh.8H-hn αC ! horige4eyU~?4ArzM5nz<%类<|ƁvɎ+01jR'YnMS'.PSv⟯1HfO U8GhG qˇ0CakaPKAʏr)mޙ%DK\YWކu5S粌kg"˸ ͖ʯ1->K> V*ioIWoFnZl&F0|1f|ʞd/K&!𺮫miP/)Yǿ09ca#ƽBn?r/մ /ɴeǺ[^ `ۄBx8:Iqɲg,\2s,9cyհn\x/^`7/b- sDV#.䒀j~.G;Z47G$["yY/qxтe,%Z.7],'c6S!IϽ"{rcř'uE4Ag*`m>J}YPPt aj[!ց&N}'L8oѧ|+W&,KoX6kYاQq[MiL. ~7ah"j.{o)`nf;ތCS ]l+=E3I6DWܳLc5p R4 0_Qț#+GeaEp3f dee%S+vVa(jQIk1Jcl,@ge솬2͌/P6YcY>)<$dv&=!dqǷ˥[eJy. zGXߙ#3ZdUq,Şmaj: 7r{ś/sft氛/JV?s?+tWvŗw`w'adM3oK'IZ,%KOH>-YԵ`Eg;UrÀ 9tYZk҅ .hKݴZ,ZwzxU}OE=I *fL危bڡ@w5 g;C9#&8!)ccžU$j!H^3.byE?j@ 2#bA"TNGpNyc9+0yNb^w\){9& /TdS>}  K䔗[=*I_n?T|,bW`eSzVLcV dyl+qҨ΋P @܀lf' [l}Cbo&j(lc1#HI[nm`וZ:@O؊)B 3n '<_9,KZkk,Qɧ{n9"gXs1`ѡB[nѨMc>%ÎPX6 |oр#_zI3!{3B}y?pnF_By@rQ] JlDʏ,/Ou#͇,V /{'oHĈec|1;&iUEsˠG ?dJ?.7v:5oT?|Yի`|F\V䛹Qor$[Tnkjp\7]ؔ|7c6NӠ9j7L( 9)GL3,nh=glk&&:H;t_O=bkR= YRew(3ʗTAxfGxG$;d2v7ZxEK]56a6x?L%إFM*mOtWr7ئvqo8"ac9ם]86?um8U[Qٕ aqqFZNbE" fiSv VШ9DΕ;I Ƣ0YSIvchI[K1jte̝Cy$DI=YUIidz7CPʊs L2s|7Ne/C.>®#IH)eȲM#9!Vgz{ԘǙuB嶤IZi_+`WB,O_o:kjr,0K_cCBdy^3toz}תѣ&M^UޝAa=,/ڃ1MX' 3m6=PdsZdu]M0Mn{ Pq LZgSiVCxAy& v>=u-hM6XCz11]_;_$)g/[۴fnٓ Y;VQ[ۛn%H8 Ʉ //]Ym?Yy;Cbri(k0Tjr,f~WmwQ>2]+Q~WZuʇX]'_bā(M\D(-Bw,}^,C܋%_.4@oT׍Pݡln;eW̤δ)=Il{Tb2BɯYm,Ec-:cj1Ega~QV@si1y718oƋqA>kLӐ'zFfKfHÀF272 Cd7FlY8Jpױ~m߸= B?/ɩ\ mpڧc/lHw ݡlby9JYI!./˲jhmO\kB/745ݡqx?fd=f5ݣV!]:Q۷J@*Xwr;h3ch*ǏQԈ뚐a;3s]OE˯P7!YC^wК{1 y2u+=SF"]>%i 7XP~+cgtqu4^n;Ł, eZ\lkݳȘq-e-䣽!WƟ3p lՀK>ܻU~BGFp,Š4X#cSGTN*+6rvqCM#+Bʧth$wʑ7 4 @8[ȸ Im;ju}xP,lޔNy2c ̈yoENL`gMH[]SKX@[emjVoƁp3%m*ݣ* **؁HFmѦ2|[Qs,?#5)^0+_#gJ|]򵵡򤣊r׏b"lk/ tԢQS+eT+s+mKNlPШ?.R*HC_"l WUi =lv'duHFSw`Mę2'F ra.mKY>HJ֎0*Y H*Efw_yȞ66<{X@V j%Umρl)/; ߀ͶMf_yt,h$kGH* #XS3m廂!ҀeP[h+.ZSCysF5]̫L)f+zVE^eL c1TSND1(GњbY7I7M*<DP W`Zz6Dom_n^}&K [ޖqys#Dz BE0''҆ґl<_{B?_sCym,W{u(IW"شl&*雌\FV5 XbJʍҰ܀F|k0.)4%ެc3Kt\AN8|07ˏih 2֓tn+kXu!jrjP$vc>BJgYh1ZRqZAX^6s$0^H?O1[Bth4gĶ'!OJ,s)KQyn $YLSmiޢܐ/l2)#ݴ 5O-BYF*aIM9ʪQjDNC!$n$'CTw@eh m"u)Ldo}wg hð]@O&55#el̾i$ƲueT+I+!IkD] ?V]طaZ%ݙ}`zK\@)A +X=o7Gv oU T&dk+І1?2,*\T85p! <# ZWF-kD̂ڽ{(/AQTmʳW&z vKb 5n54Dk*L;b4{+%&0P$ U5[S!m$0%dG`"{W8s 'q AN>$.J* B):Vedz_MZ}.p XF*[BecUuh,cݾޭYWEY(iqv~ehL]\яYe0$E *hh$"aBlʁQeqp5fp|bⱕlQ쒟-gOD9 -Bk,¦N k$WTrY諏hwhl# )ˋQ&$ xreyK(me,[0%9񠉦˩قk;[CAIJޗr6@OAF^bl4^m=mL̀#Ty!BV!|'z $vFlBTN* N(*`o"qI]ҷ$P1۵"G_CYB;-!Î1xl}m)w#p$|p2V A"b- )CYI~eRUx TI폳MQc(y۬>ztlN5EUKKTx k+fc SPv Qk#SNJem_6{tFAAf  1,H6%ˮ֬w ]-5XV:ښIDuL5ܘaZM]1)d]&ɗ^Ѣ sE:جQtW2DfG ƈF&f5:mG%!A&'b&@'-$]1h @h?І1MH"nD4ƿݸ TkLǦUhf6OߞM Fnqc{úUsm]&[ܸA3z;ֿJԧ[,e5rxazhV5iKV\65{5(:cp}*Sm`:\%wv6'ظj.48J%7=뜤v9Θ[4NN,S"!3V%;u'(Z03 HX!w:1aBqp/BMzLTloK M[;4c2-ؼ(((`SXְu!|C YH'do6>v‰Q,3 )e (EoaW6%ܥy772/FM+ [%] /HnmVY힢WO %?s5rvTlu(w$Hc@Xb5L~$i9%3 ޟ #?R>F3"f-QT|,cy?R ,7] & cWeXЂuA>12*.V0p\r;oC#bArQA:Ǚ_ |>{s~ޙ5?l?e.QHz t?hzW{6;<`g^ \e-\,4k3inh#YHY dZnNt{)ā5` {B]"{y}4֢raQ6FT<=uB5A] v?Vt-T9 _#2/3Tq~@Z2溑ɫL>ƱK,x7w]a = G6| (m`-]θWgeW@%jLwjAC:W 椇G: 2*Y3EGʂ7V91Yo^Yn0yoA 1J힖wKp!s>縄v/2"3aT60>aF 5!YsF*0I] ^#:$Nw0W@S8"ג; ]2~&R;zC#c;7%zvCuqc*/eYԖ(/ô=.#IY\QN > +ݸ~74- 1" msܴxzܐ͔3G 87Mt3uW4HLKnyk݄-Xf ro/gkڊvc t_5sq904Jڈ>軙?P-ZI{cLeA$#7',էĎ`0-Mt0zywrNb<`u( ken 4ws8 :|VmeHW^2Z5r1|:n^>&t ʚ_lxK \,"BzC[{R_B,ʫby$7ślg_ ȁn8 Ip,䪸}O#҂0|zB9?({26uTށ65Go%N[6gA@MVa "ە=iRhӠL:9_L.DBowًܯj)-Z~4Yb/x.6#{ 0Vh1I]^Yd9 < yFWĜ FvIHvP  M 1vED5g.q8 X1E{u(P޴[|ܡ[l3ʿ,fNҊݨEGŲ,4hfDQE\EZQf#[w|w˖t\]2 0 , ctrV6DPnS9hܲht\KuAR/Ѧۖ{o ̑T&puæ+[[p4G1eܞU?VM _(h#V1v/^3*~|Pf%h;q A"x5s"OlNщÐ%1o6ƪr BOEMn sj_f3b]p1cS-JAF*¦s7bn~2>jxAɷXPߘxWnGhngwgcӶGLۚ(錇mnANASInmOrxN7 24'yY&OyUG\ h|;8nR('1|=7"o f,Fyc,ugͷ1N tb8Χ8oՙyrjQP<%w,¹SǝCbMmzeu%fXHBsE ,&ΝZ<)0Vj|b4"LT{eP~Ͱ X}/g%rl&w[ P~ŜA v@%Ǫgh99mH=!47緘./ ,J:lx(J'@.zE#Z2%Je Ck3\fg"j3S8'/〜 P o䈑95L%d&:AP!SwGF INHNC E-*TIѳr. Sluq#nNʲ;Y8aĠZ4jnN\H+"0w.P #k=$5WP~LX<9VX_7ĵmNCmhU3cfwȱ4ҵt~y^&+OkM$6wܞO;X3yNWvַ&eg֌nϓ ߀f|<7e6d lapDznپr16$l Kmf17=9O~i͊1][mb[na;ywrWvfYp/q\⒜E~ms+fо#r!-xchˡ!LZސ7rIOQ9*@p]XPC\1C6l"5*ld:?eEЬ?MTu|O#/Ӥc{}ۋf0{L e^>!6g'zps ӫ+b^Ʉ<ɽw} 5޿U&Јݐ}9ٲ䇫qX^^3B2m>#J4?)_X1Bj m׫w"{ Y(₩i~L+m/=A.)n@ ]9c(c5׽*uuӏ4|}}~쟀7Fwhf>3;s3/-30\.kRdO8bjTR13v3tX{uV拔3J{:+"Pb[%:)-rt.xf>D;""-<=?$kCZ Y4JLw7DσX$EE5_j6]+򮭱3$ې hzc!piK:9vhG"H"%ZpUm)ҵY/:vrO} Jғ٬euɧQV J5j{jtAMD5]}]K'MeNͪ=U9y}}VWi5l$Fc%Dw$jM#\yΒfhS6k3v> Nh ӲeUS;l"4MIQnPd$6csޮ״݄V#1햆>ޥ!/0s.A>G =h^(Y w_,mv dVɦr/DreXYoaYząS^o5bD+?*6Fao; +W`V?ɔI%0fe" PL#cp6 ;nBٸj Roc; B_'^Y  .nmpn8wHTpUjq֤pR/2 cdq~Bdz04d8X@!G'V҈CSOEI֯rd_Z8TPdReZ\7|qsacAzҍծs;l۲n>t,mOL0٨3vno5wc,amvL`\өoΚL$^Fm*ydQp'l/:[S19!b[d=mbӬ{JwYY}ƒsN:yZGll_YR-I* Sa=aes[z?^ь;Jj_ReN~Q-'Yz[%(ܥx xZOT͓bE>HlH۳ $Sd~ #JY/JV'd; 7QeN<čҳs,: }dlםU :1sJS .;v"ֶm>xF*P&osNVێ梐S1I GФ'lMTTV&v / *w^=O0=4 Kv[&N>qq 2gY:vsTllNJN-+[[{񙼁z='ugyߴYg~mܣOiĪ=0'Kd޳legO_y^3-)q^r-YtK-[dٲ3[9.(w:7͹Mo<'pLНφ|R lO*4NNjN3AW/fr3&qYxx7>d"Pd,e:'Y`DZMy d>%к=\ϲ4AՅ sJW^T^b/Xru_Wuzuu$ 4$vІc\';i~ikGMlmɶ'a  $ @B؀ ! ~i__}_=kE|YzV˒em[.SW*BsCTeߡLόI>I|j[fƏhْ M"lu&sƒ_\ 2C.X^=5̂e4cm M 2Z25eo1<9v晘ɜd,k[ld_/\J<Y˗׏),YuLW(,Y`aeY rd&ԢxN/N_ڶp^ E/,.X2}[]&Ӿh O%dN_CŋڱQ>^"iѼ//Z)n\pD&rɂeW$cfdd֏L&A7 k)dY˖ϥIjxS&!p=BOF "bUvWalF& 85Ǎ r@w2k=ҙ[%FC;NUk+m\jF$OoՊJj]eWIlnF#7al)಍SK,s&> ]oܨQpM~"\9KI1 _ek=ձZCǴcy|dl1*P0Vk(__㟶cKӫ\^@^"xۙ."]y38 0ryՅ!f7Y`mlr<V3c[gyromQZ7\->7 |#4QD4VFdމ4JW8CS}gQ1xS)Hێ!z@U)ˮޔcr+8#IְD2!@<i8UqCHR CQ̛ܵܭ /?m]}hF6)ܳ=k"ke&.p[k<4fD[R=ep)Gv泳VxExJqxk"jlՐ^- e7F~F=$kXxEӠ"Hv2& ؚlK@vɠŝy̖Bz'u0{5O,y}D)4X;ndhy|-gVf\j,|kr䵮~[d NY#8:xcZ Hȶ ƽJR՗&NA &pi2ޟc$1{ uqS!tTM!bC$EL51µ&O3[قӯof-PW˵q><ׅC}%o=/ 'Cr"2附{j4 3Ԕ.2 vnĊq+77 g\ܝ7,*čh ٸ3PF݈T)$xԩ~3)q*LŠ~RNyիMVk[a'JG -grGbkޖen /1$֢M Sm PgacD`jAQDF$#1@^6Հ̙U1J{ Y׍!*VEW#0Id<xM[vjLv=GfIviC"?Rb%"KďZ]mѰs4;J`Q'C O >WҪn3 "k $߇S73>Zŷ4 -ahXOU+f}ځcse:GZ8i1, $FK,DHSȖj{vBkIRI0/HӑZ&bY"'5C'^21bWd ձl-Xum!&\Tl">UqhX?>6Dy[5C6B/ӡȔ8Ecd"eCېԿ[n:pP.&zT?S׸z? $# d)4%3q]Sq s,Qa2 %ŀqubڵFxRB#=&N^ӄV4@6tMD}3 b:TzEHh+W_Xk콂ÞXddB+L\M4bdO&;(Wz==:9#ݡ!* RٍDi  ;mV& yFDWI F/UmeB?Dՠqr?ȏ:PE*b7^@<r^;v{b>d];lY.}&&\7I:)8\cMsblf؋P@FS8CR8m0=zb{k{2PQ MyMr.l?Ql퇤m.g#`i`7UzG|Oڀ.eevF)>7h=a v^):_P$E--l/|m%2z![l"l -SCd.w=[KdP,L^ S>Q TUD eF/mA&G26-ݥ9FX٭[CqCZ}Ávi \ea#9r,Mcf]@[S˗BK xn)7x3OV7Fvw}7흡Ki.fb+װ)uk܁J/`w e%^ˬ ec w&p|(UE>T0[@Vr-ul[vZ.D/1ܡ ujkd =Kt+z4FXz-=>|NȚTrZ/a?Q<Ϳ%t3o@no:Ko*"&l,u`'T# nk^w}^kS H%U}gn?0 hߪ)rww_jCR~\j_˿]cYh4g q< C>5=/tY#` 4yt]W~-NJ<QdO#eM\l3؈F~di}#ѵԷ[cD,FťKCLOFBD\ʛ5Ey5۪G)!^[ekCe Kk;A~|D.a(WƲkyo^DŽ_\8lENdQ4)yEw^.cneY}rd4W-hN&|fA&p1%wD*"@S4In7x7ٽd9#/V#7ѺF{ܳfwp2}ޟ%CH%cdWd4#Ըj!ٓy_Ug\s$oy^-ǥ"]U2sU SHΰ,OdvJ,|~ZbӫWH(K~,`CC{ϗ;QeR 9]\leM+|%q##3. ޸z#uּES%N\_1Rͨ\"Z'ZC*w=qD{tX?ݛ/W3eY6:¼4Oɋsqҿ }x#l_Z <5a?N{፹=#ލܣF9}8ipBf}7JJ x+R(GZӞZo PyOyTqf q%%Xlڒ6 ck`יFv¦_i&:ыcDGKUFکA+Q84J&=es=}C~wrj6-f /$2bرBd+5"04JV8md=[qFȱJkT)1FFIƏ}V^467 Y⻶H(Xyb ;cW| aK6āU9遛>1[r R5'y-oB, lp? sf;rp?/d^i8n<*odPW9xt$%pmHe]JQur˽?5yVG$S)zq*(Й1 {Y V[ |"] X jr ` WY/2{(l&y/%4yow捜O#"XmY97i4\ X: ]l.Q|N@F*bPLЬW%WA~ ~AW|I.62;^:XTUlޥ pC  D4GJM,H{Э3I;H?|'#GAlP67&sOO&H%E`LGU't2"DE]&(F^ayAr! Y@ڣ}C($`DFj\Ϭ[Ud7Tp('0ʹ N6qLwlMqK";`a~oI8_"y ʛ7(P,yBKO.mg`%*K]vĠ:˦1 Y9O/y 9'&_/̨V7*DF.B+ɥPfykdJI^~zȗmo-B L"H ؽ;U,*կ dco*dw]7h r{9}%k hcw]GҒ,/h㶶=92_5ӕX6{GI`UbU @`ꗶ@1R o;*RntWeIx_\ZqT.'/Kág2A;Ass*G(:υl#;S7F^A٧?Qz9E@ַA+cK`Jes4N[ LB8? CӗĴʙ۹u"AokJE@D3y 'f;Q'wO6}C7z+I:Z, #fKfra Wa9 EH7,j~|l$ၬ="~sH8F&Ձg6S -'4;/+ҚD C̆u[ȳR“D#OjdzE#]jmﱀ84mK UJ*9H?iGw La-,ް'd=F<b< ?<k) X*h>ᱵa%fҩ:OѪ޴xd^(5EnXm)U%UcG" 2cG:à}fi':Jf*;Ñ;Q=7Uuw(2.b f_kU)EIV)eؒ\) }7r \=`vET&;;?;[̻yS *3h.)M gD$ \/& 5LjEEQX>'3 k]%#ы+Oa>6ߐ|U(y-߇rtNBq ߑ0,G5Ԟ@H$q WBw@vˠ|68WVWŲ#OCXZ=ㆱϐ7t^ɕ.6G aVKV^Q,rӪwY"I!FٷC6Jxm@9uXrSUna n)r6N=vZn6VAyhUINAyp}M|L&[Dk$Vv{kFhG]PZ |yHϟ(;GjZileA@ v䫯db"d7DkП(i0;/wЙ]^ 2I3{ɨ(2ZG)Wf^Jz1Puʑ'QwHMɇ:W+!Ian^n6}^7B^Md5eH^`F4lL:uT.3}AW ,IVDɏ72r)mΣ:G]hdFlƥV0<ڎ!|&v%B'^Y6#l#կ 6 ;021=,O2{sWk:f8}D!Ϊ,K{>/]jqCPBjgKu+e;Ч~}9;/) ب=CaI8asyWaGti:(?fr%@l [u_8!X@eLIqK/C,}{1&6g`>9 cachékG(A0w( NCzX3_-jw~.緒% rg']g|mRVQxٜMlGuݑG㼌f!#A0`vБ&vu5ՃxRqܭ6 ?cabuQm(Lt|h*g_-x=zzC&@;*3 U(yOHOa\0lF{[Zrd'rIJolك1& g, a"gpW  7Zeo+ ['^!LQ)>g1[Pŏ#gG,{d\(dri6n4mE" V7@)YLVTCz -Y K)^ ܐ Djzc[9D0o]0W7 <.BQ ԄqE9ρ1dV}(b=#u BlφF"FGRօcQD$evtwh+``W)&#* v7WoPy{Fn`y\+m$hcV#gyG=4NodI?gA", eR}C/VONj^#}*G9LfeU4 q%Xb3TɈijv@8Q ilfK ${V_g"ORmֿ_Hk<Pk5ng%_ci@t kdJ-!)8r0 zEltm8iS{R Yաz^jOq/\1DH`!fӯ m+!R="'Il^WL%VD:v˰俥TTMFskC: 0)ED@seݶ5dg N`W OG<mcX@Jt\]X>VOrMSrZ.q.eD*pLNr9=*Ź0^#ˇRfRhTY 9CY꼫s%u*&eYMI6 ej iȵc~KQ4@ UϹcAn t<[Os lx!RN5qU.G\­@<0FJsڈJNNAF?ȈrbWxA;+ StX}XN##'u%)~6  :_8 <>}Aq(#3YH{~W#Ga'r@#/Vq([QE[ڕF]?B#g{&*ԑAp$5+{=+yOi+I 2r]_v'5-\3!Tt\hv#=&B1/͌:MxEȮhޝԳjH"RZ/= L']H=Y-{|Z4;yTNw, 5ck{RR*id<ƻ'+Fm8k+}!M/Y Z2!# P7 *qGdFڽN%(bY8Oh6gER?=Q QE=(b6DŽFƉjo]0U l"`=`hq1nT,) & %e1}1713=3_>o |㨘ildA}](Ԧ7nIϐ7Ҩ-݀ltjHIsJ|Д@uC]&rvQhhlgFm&τ.@cWG(VvPGaObno0IM+ȶ&atNipp+9LݣcK4ȯP]M;g+J#GJ 4 b]@Ou]LjsrST X 4uF 6#K9#~l.yKyJ2)t*O^sǑn7xDz !s\,gE՞y|PW(n#'K&PB0קW- <,_uV3] qȯ5F|.T9쩊ZОk+{14NZH :jllQQCle#~ :ҹZI\k];6k?\^~|gJՠ_+5tFF/kR٥ %9|(nЮ]f0 3<-f&&,[ %U\-&R5I%p25t$tѷ ;E_-xS1mшjhrgֻ&Otp JXG\Q*q-hkGx@Z-)`y'v˓ҥ. 8,j}#۳1=tZF^͛@`Y\(az1t7Ϧ +E'g2/LKyn:ZX@ۀ[c.-zCs䣆S愝6RDoL= ݷVʱ2_].m#X+ƗuK|d++[d5*҈ϭGNtxƈ|0V3Ml#[rZhLA#վ5^}ˆL{bd.O+~$ =ԋ>~6G f|1`=B)}3pWtl!uhDʯM2'ʾΒ_+=[3zHkfơ 9^O»^_:bt$w'0zʊ;7,ibϏl9u;^gTe"W}hV;>'qIǵs ze&Hٓ&{].nMag7_sviWzU__*e}?WcuzڤnLOznvQU4M23iՠ҅X:.kz"n)RZ%YJ،7L 4./?cy[.W61dʉAL UťqA3痡'1HU&21>+Xm91_dQY&SO'^_$n6>buMsFpt\ c<֦nTeݧSenL*<9lWW~07I#vqEW(/H0bY\.dX/9;W>E#$Dg݉|[ lWdΣ˒wB$:s-MiT!yJ*BlD5|iLZDy#ۢ}A AR[nǒ Md]6i3䡤EO6>2-t|/{?:6Ak`$sj΄ȫz 4.o]8r:DFn IqW ȝ = vTMSEh!Sv,^4%2.1 S3cyHzc<W:&|'%U ; d(N>I;(h4er6:QH~{ȭ4SZB{G"Ei'&C^A#w#C4´ȕwp6mYF r 7CF'.p > 8y!cI\0F!8cɴ$oeG&Ʉ>y8}`(fyc߿/VT lH4U8y?z!55G(.Ү^~nkdU9%ghB8GF& j zdvȼp I@Ҽ`d! Hڜc=+-WPu@{bFjAz47"I&wUDRgY4b 4hCThv"Wgp Σ99oTJZIOkILDhg Yzb֌b.-XtʂE˗-/Uݸ)m:}13tђeLܲ|٢3/e'3x6!d?kIʤue2u`Id;K?;s<媃 [5CZt邅g|N!h2U2<>}|TFۮsx.4SV`宼L^0=p#nz].ik'Sd{+Sd79dy̹2(m.K-28l"/ݡ˦~ttlKV^/B-͝H\0]rR!Q;IwCIح' ܀7ꡕǔ*9auC1MN#2g'3jF˜0 3췲XNC@ojar-Om֫ׯt{y<}z[Gx>>&x^dy0}u~\ke9qI07''s9Z:xF5zkRKyDSzkp_AH_RǪYIQGMޔ30PFLR1tjBllOBƲb$8hQ鲚KKq%O?seK{ק,[tւ/2.7_fB%/η-Ne ?qBU&)Өd/\r֭Fh+LЧ%#m)85 Qpuej"?(:Y[Qr{%+vEE}9n.U}a1'gU].new!yˍzЛ=ͳ~c깡S¾࢞3gX$INW`wF?ȼFwseMR(zJu6|'~4 6!(* oŊ\IҔI{~4ZWH4[K5n/OGOv1~&S~#䅖+5J`<~<Ԧ9X|fC׬|t ە wj'y6C%mI-M+~RʹQ97r´qp0gQTFI&m} 2xiǻ&Iq?E8yHcp7]6奎o~1dK 5F(G ,IIyS`(CX" smVCi$Ru8#}[DYKm0<+{jÙ ^ ":Uv"fL4kvp&/s&x{4kЊy@VPL8!Kczt&&+ XGhe!B[]Ii!p_ˇ-@G]NiHZ,e^^Oi#B4=<kL ^v:|>&~>J3xOǭ$HXr&)gwFX`2V`, o`M4hFJԚwp\ W]/Lbbb/|S`5l"Y8DZ>=*;u%#Sֿy.J~'jhЙبz%LD6D **#Xæ Lw:,ԯȕ٢tMʎy˦GqU&&/eK We)mƘC;Q;!yCg%٢+L̙fAlO.P; CJثr2ђf5UFn0ݿRl^w%|T?ݩOOF~i 50rAHt Jj7~nղI ~C@ޕ6L[Hh4MlrKw`ڮ0ݬe=xx0 BsL7h-ĭdgԂ{L\?i qsq0ޘ vXjIPs"M+X#=GQkc%KD>{駋ӛڈg}\%GӒ_OOjuSk~z+m䵳-'_ϿЯkC?>Ԏum3 ohC!1&mm4;xY~H/WH_ڈg|;C UJHso(/īڈg};C pa l$UerL{[A}7=#6_=#k{y-=.rAsH+ߴ><#J \^W"mTZz8yh&l변^/&;W|ӋMe=1`=*^! \\;BDu7nΛ>tFnZj9;?k'1P.j& H$ [Ky#kAPvp\X4dB3* JFtNxVԳI\ z/s+Pzr1\ 2O{9aq0sYg+.4713b.rz~ 8D:NDĒA`eAY#U3o'#s$~/8e5e{KZC.`țfN]Ҟ 꽂BYMiYW{j#k[kFko=#iTA:1+s*o[_͢#ֹhJ"Ø6tRv^WUc)U/xadYOaZ'?dO2fYXزt~q| .[2o/7hm_*{ -jd2--H~fxP^Cx} yrbBJTޟ%9Қ=߄d8 ^8-ڿbvXo)_^ p)TTvU~2.m-ګz%[T-C\uO39k.+2$;82CNw3_.ˆ FO*a4UOifҜ9sN3AOc{nLf<4&̢~@n~ {(#GT k\%ʔ.Eg 4R >nGxzᬥcM P:KeaI˜ 9|LtS^ GeFLtchzJ35b8/Tܳ@$?@rOYo8լ)zw= s<]kg_.q-0`*|J0F~$0A{TuRy;]6q٪ѹ,mlf2wpk*J FE2m%,z ;w@9 BJ-0(Чx-'E:KM^0)rWD!S/܃9_h4!οktq FVӴuI`]L=ΏQ~ Uoи5pъ%6PҼPXE6!o/I7 [C5`$IhZko2e ō7B:؝OO͑ÝX' Ar&m`bAC#.60^V1Ѣ!|.4xq1"SfvBН){H2DfrOw% fx`Iα߈#`*)l2*˟凙Q68~`cAۙS[3"D^)J$|n0`ϭF͘>-Z 1@1#zX^ynLF'w3>0{x|~/lQRƛkReDzEFM5r[W(? ĠPv#7"c( j~y>˷ziXv/re9G631ls?zLb1f$4ZjM$v"jrɈ- 5yg+D~񋺣yЛfoz4`c2;HSFf%wIا *9oCrtL,R΅Il`*@\s(%6'Q#Qdid,S* M-#0( |`XPNK<;"aE1E9]vL,_* ݲt :S刄>xLfqӽBZ#[}NZ@֥2A8e$)_%Ax)7ىirS>CjL7EUiI~S?l;y#{Yy&Mk T^/09u"xS*(:F-OW>kxS mp'2a\n006]bEt  - S Y'9딷ڕaС7ERu !HyPɡaM\=+&b+vU+ScM PVPҬ)?=kt8*iblgyr)r1WrN0{RYs{Y{,|߯}Jku\P+9 >E܊-lzodbN ~WTfs 8&=i׉m6M8}ՇBưchEg9:y $l'UtVۈ>KDlE"}3dU4}Gf aj}DC;ܥ欤!8r1EC5^:)Ҟ Z&ao4LұԑJ^J4}BJLS(,AHwz7dۈ>f"oپ.&Kr,ʏnK"azu#,NymDKyBA m 9.;I^3t@H_sD4ܠ e} 3]浰Qb //i˛H~ab~/Lˎr-Of {9t ?j|TLxN*n"B[BN? i%'T:Ӎ5Feۭ֒sU&[_r~ud1f7RDC3 1(PFWX`߃*j>W0rʏ7W)Մq,i0=\gv+ZWL:]4I֎d;/1WV]`m9dӖ6WN،Ѓe>Rr#FzDXx tE<P~|rq@Αd wP yI]$a/پ>#,23l.Q, *yY%#l"WZH)97gHb W AZG}̴wL'v54 ]y2zLߓjb2Ν+`wzh.STxaMTܚ-_F>!wy}p:`y)s\G3ERwD^MO湖r78-_IWi-Yy2 R\M (SJ9dGMh? i_Ysְw$\Lk_uH7 ]l&b7sӃ>^1?DK30j7AxL]we~lj.\ʛPwI#GF%v(bh{ #1Pf|^'%Y ^72GJM zt94gkY],6 &x (M lق vpk\u]`Ƨ_oU9zo'`W%y4CHy's JG+{hSP}SGeǼpo3/bd,e^@چYUνkަok D )&QZi\Qɟ U16rFxԯ>˙^rXO1r]+ax>PM=<,'$NbS\v\٤vԥp[INPZYy]/b8M(F~W2-F[@13}B?6AyI?mIy]\=תք `%~bߌ 2 d]9fQ뚮1˅;PC;Xr_+W0-'F]OORih%D'WC KtU\AwwIMEZX"U/U=RBfPIX`$D/I" UCt=_wX=k2e. wZȫ@ފAÑ 7&i%YM=@^L[ڢ-h[rxKT m\Uǔ1%:񦀖zׁʝK)gLA:d6p6X_j8A!l ,}7V^$/rakb+yfGgmqgv{uRf & tMvO5̼&m@"h|"2;|mQtݡ5hTK&"&9>/ouB=&&eo3&#V&w~ӝ;^%Z#e 7gWF^QȀ/rJG7V=u3V yWyWfXVCl%?,/1 Yz`8V]CVz,~v:t@ڠ3'Rg<]|ۮsz Ym]n{[ԕm:vVOٚ@y&ksȚl{z7_c A͌0LsRβվڽ`7b 1Agrv7BlóoQۡloW!lǯCAy- 6YdO5TU[4'Or$VSэtM(Fۣ ~5e[ $Cx{d{|1&).aܩOp6"z^STdp`"47y &.&Ÿ U}F^Lksj`kGr~Qp2SS|wEm<ԟ*ot+B?. b sP1D[Uldʐl<{J ʯZb>i 1 1U#!&,Y/EbP^Hc%1^K wì\SNI% gXRHv4Hbrcqɐ11a)DOcܵngp~rgc>s~sgِYUgr7ۓY ӃxlQ5UPуwޛF*:6R͵9/w s?,/w ztr?vO<1~۶ ˄q"J6J!jew:P(!9,:vj3Z*S%ou+|SӞckus h; (zܓ#Lr|or}-m=Χ])O0bwa 7y5z{${NxW2rnݓA?Aw@>^ xǃ0 *,"O/-0f/Rz}_!y&X|Y9nAȱ<ϹweYGi+]岏$e2TNkNY_'JYۻCDy%A&jEAJ}5]wpa&4?f m0IgV(1`+IZY]b|oȿc\x0$շ7gst#5OaDr+7l"y*SEFQG%#/}f(?a.c۝Zf7oh2)$ok]Rna`F9R3m"9Y֎!pmTF$GD'l6Q8csPC 2y(9n ,; }BI{ gh^Ĕ=>/X#uG MqpZ\<"_ր[P.:Ok8n?_%MfyY諷!K^oiDރY{DdλJPNT?n.+Ww0Ow64w۩7Z"0M>Eb=Gya~y'4=XFiDV{jehk}/nsK |s8fGoU "f*:欫%>dz6BiM<4; daj2 G)ln3E?U}y sK2/i "wHuqIhGFD&Di/Aۈ=$x= m*jB2haWDD,N+TɄck,O|J$*~$(XH f JH]w" IrbWgz,9AF-,d،D8dA(SbYJU<`?6ȇX)#UПdz6fbcUeem81@/^72g!w$\%'܊F]HvHW3ށڴrMɌUO59-Ga2quM#1Q[Yc+}\x VJG^N>Dag RВSQ (9ɧGC̨V׹5%!!;rcbXwqq6c;,74aMs62ӎv ]4:S6ł,B >7Tz ֚ykj0iJGKe3'QSp!sok˹CvgVo`X'y<Y [n&&E(Q b+dUg,n⷟|xA^TIÄv viupןVK[m6 rsrsi}[O+}(OMtpmˉNv-81-l?maן Çp-l=ŵC[HCZxVZ8/m +W~*[{0+O:X.O[cGXhhMw^cMwV(wHOZ\U5^Oέ,qH[] i}` @NXЩVFiE9WBe_/|^wX"kr_礹,ϡjUPu͂u% ow<#9fڋ AhѦ~&ZX.1f?Y·nR#y=84䷫JXZHek<ǯ6=ْjT^sPmy)NhM:G<Ԑ=5gr}HQPc\' Y*ng7?7?H$;C$6_-wvwQ~ n؍6+zkx(mi(3/Q!U"g9#+!M|M7`ms嬏a^>\Z U bij6 EAldAU TD憨 ;N(JZR;,(l %_2rBDHLisC|Фf1#L/CBFm`6:DdLTn[8m\'תDu*}Y' M'%Af{~Ο*RrUA8󓮐5& y&ޟDf\ί& k$IF@ni$MS@KKY 7]ǯq:>Ʊ&t5IPS7]os׶Dwɫ<.ao~7;j. 6 d+_ƭVeDdk߲NǙ. @BpSJUsX,&rFH#J3xC ]+Efy$7XC G* 6h3TpG ̔>rčDUb*/p {波 H ӬE -S>K;PH̵tQ6{?62bqm/D(}G!UpεIJ[7INK9R)۸dY>YYHVE-0;@E9SD-szDf+4/IY)d2t2+c82;IZq˥^3=mDkB7Z s)=,HǐqwYgG~a_Q 3ê.z64S#%';tmTmu瀉f]$kRLFhM#W`%<'OИ2E(gd{<[DاZe:&c#ϫ1r dƫåyXa'ld➮(n93WŽpw뺳Ƿ;QMy3mv"׌o:lK\JQ*%&m]jwxՋ]juxgjBuxmjC, K6F!$?eM &|RW/efyݓ"[׎]<+yk_o1wxnٸpOڕ5浃dn8Ǽv2+ukWzwy [^9ȴ1]Y^<׵fԯzE?kU,$SW8 jA$Gr[Y]Ӛܫ\BlLhFL"[Vgޤ>C[ &uh&2=)ȋ*+o8DF[>kLYf6G,٦;ԅJ^Wj[&;W`Vp] Mxe犼qkm՘VL0}ܶ?/e|0ddUHږe[e% _9<ƸI/t^rp-2ek it' N6X_UT=ˍ"1:T%d @ҟf7iSN׸K(lqBN:K:]d;ǕaZyC3z[PϑQNd.tkkoҖw~oiZut[r-w۠K;Ċ1^r9`OKx{`]^$d:7=|f@\(1!FD6ylf4)EA!K~G%/T]˱tt~qSE4ĝ܋Gg蝄ґe9Pkda~\҂h>P&Y(9)Y\"Aea8RGdH"ZEN=֐QNH.D2H>{3#g9 uPH')υFg=g"3DD2KۿUV 9{ЦPDTmd$88:^F9'iK腶v8mQꠀ(ZnW ]4@ -\Tlh|׳>IF^>}~.YzֳnzʤaIk*<=v[Ai rs|fa 5']+%Ki ;ӆG'*ic#rVй3sIv48镽J~Kde7x s^R%3f]Hѓ+7KyK@Jʷ˞)dE  DMФԔ-5 c(rmv\ kv-~ U2_&d ** ,wqݔ=}0/v?!t.8"tDӯ(wt6ԫuiV9(z0wu&Upe[\:.>yG vȞlY]+e"Z?f+[BјLTO|+CO]V߰5Zpm]`ͺ VmpӲ7,_f+[/Y`U .EroXYi-o]u 6_`lS|ٸjT7n\:}eSnSMi릺nlڍ+֯m]mS` [j݂S~+Mє`ֵu VZ)s5ݍZS|2,WoqS+um+֖W?}ۺ Lnw+׺k3TRJW_ɘy gp >.IL*t3+Z+ׯ[SܰqӲކ ',Td֭]ֺ:99Yֺ[_\eM\(ez&ٓ$tZ@:+OdϦS3w.-`|Z&v]9y\¨Lf<^L|^זpLzf1BZa͓p8Blxy3&\!yX^LQҐ͗׭&LtL'7piRyL& Uf`^f¥ge2ɵg2kZ7.74jɞú^fjϚx6bذukӽ{Ui&۰ >'֚}j+t܈77oK?OŬѧ`O*s0,bC"'.X,'zrBb'(ȱf<3jn/2nD0BQsiXޞh9hYeiH"' h,ȫwyʼ''p6"! f%5[v|=ݹ85x[q: ׃[;b$[?v9[*I2@ԂrEט| ),N|T=eC:F8<;h7k⺫mxFErx&r"ArJC/{+*WGye+q|YΓ{GhKC 6σ |Oz ?T NS,ϐG1g$ ۏJ-K6BFiw!oD!]*^Sy5g2JZd@oqJ?{z7X4|lθK)O:n#TmIɾ#:xg4ߔ6|kT͐tQ-0\٢>(=qїҦ)#wlDR-6Ț;Ǹ+14 ˩`OdVd ΃^郲y$FUk1g; ) '_ŧ1*bWkؒdh͓-c8, ޠlLG,ߤQ.bsXĠX۴ʓjCʎ?xuӮFm|\EMjg#q)ReſK{*k*Ʌyy"(w?"\ [րSfBJO%B 2+YGNO4<`JAC JN(njb3@D%9c1c)gxH+ Z:+l8@[3>sğ!W(tfX%cTb'|}@{u4.|~5)~Bw^݆gU "rP뿆 2´""#Ty 6sn'-'.|dG4dFog1F)We%% ~&yw3 AА`+ ˜%8b,^ן!we9ԘP,;xor]sԑ2ݖ,!Vf:A_|~ZY6:#Cc\ו`.f 9FvgTaNŮX5)I({<ٕ {dwn4dt*3,e|0ϵM>+A̋A ^d3RQΚ`> ʲa]vUnB?}~迁\洞5rg[sd~:wiĽ*v9\}p:h2-ާފq[Ϝ/9b嗼9@(Vp|5qXXRs3 㾢'{[ qnۗ,eM'\::3l`@u7] em\amyd +D&mhU=9m04v^ 7I\Jw)7C-7އ["֥rʍ'CJ54ۼ<B"^d[ฆa&͎ͭ+2\#[(xlQfpW6 PCcT#H|FoGOfh]ŠSa1^OT?S.\沙sLTЉp`PNw05g& $gge10U.-W0OT)&cb*rۿ|@UOr< W{neRyim w/x>+KW_rcwlKQ&z粑B{bbΙ@oID[LGzrB5vOx RАG m.Y/ZҺ$uY\РKՌ_5>g"h/{qG[.|y@8&oBO8ԢױT:z[Y<⟄3ȿ@bļE/'%Olǜ6~s}b:w2%$^N;Rˊwyd6#sjӗ a)*f^@:%:,|P5\ՙ)Gh!bO{%$~۽~$;r͋0T_gMBw ׷?I~)RJ]K~O֑ldA0AkjJK>|lw^䟬i0;фKY/ܼ}q&j$TJQ &*]6[̝1}AҤE35Cl 䗝@FD{+sE~"l$N4Xػ&\^+K6EkӯOE+ph֥l% tou՛:[U`M2Ӗ6}ci~('yBʡI^qP*of<89܆Pm4gH7{rF\d#MxSM`?[#@, *pVvCfFS>-i nl( 9MxoQ+ .mJzWP^>=h &_7V~/YcXc]1X Ug] `渉9vS:_uoI,,딪sɂxg\2[.b\%2&;Ҹ@gsY /ϑ;O`u_G ͟a ;ӒAms&q91.oS[-9y2yReeS.zq\y542Q/Gct߶¨~}CP8n4-TD}׍I*TJ?4OBm}$m~ό'G&Z}1싪thfG:с] Uf,T})zjBͱN`XC)0=e c(4@2ovŭ̕S(P{(0!.1-ޝ֘jL)<5a [۟v^g? digo]1L X3YDs@սiOO쭶>&9?TcXؗ'>I$;|:撪&†~o~ۇR\~`bf6am]A^> Fߪo\m[dOWΕ a7GZ*\E;UslRl5I+~;\s # ZtܟH9S|FH.> 0sqc/l/@;&}fdsO4U3b-5$1I*?/۾{7Ŵ~Ϝa&ͫ}pxPs0&R r"Xkҙbt] <+AjAdֆ-ΎϽίߠ-E%1y%Tȟ^ ⁛GC][A:k>g<13<_#Q-cDۆq5ʚ1Sqw A,y`ݟBx*FŖ|S)S(ȟ'uɠV쨷a7B<9|96Gb|ok2 |V<|yk[ |ɣ]R?? 䱮V6Vo 6>M> _׌~\ZM8)2?2i;n3!}"PD /NehWyD/@i]#xR|䛻aݵ@r)_OơRojcK&mR8g2"˵,ctOܫ!Y"ۓnF ՘?e0̣y(ZߒBPyba*d;̭i$f\` IMc5mLo35MfYWvqLV:rvlh70")aҋ@ }Xe{SK;ݟ}A-ʦT(;Jv] ]{l =.Nuj}#q[).0WI=]0 @nI|n? `"E!†Zh^]4:A@BXsϫ'}zdbqM/I>=O`'W z =KIv/7Q-XqP&Kc?ыA9YdgdYΙeȣl)Nҥ8MW'=!OW`,Tm]}i\ vf'^7T m4 >-g&ټ-Yaê%p-4S\ۺq%+(6ӽdnv/Mc2#*7b:<935c^ 7='2lji!$}ʕz$8bl(RL63 OÒ6+qN3n03cܼi(դN$FRc1T؁'U*1.mતiEsc4է.Z7z*_47nu9yg#'yg<_oCZ^,BM\ Z .'2ϤNĊ:nF}qD*){P-4={Kq>Ť,eN* pzZrY|^uS12S#G*k )7AMy0m1EVHVpü! ˻H$^)FrÂ\b 7X2zHrP: ,~.$^IezIO*HRJ {ӡ\IraxGP.użt[@ߓ{&zIޗϦ|@P3S55{ #ͭ7Pv}Fw$9͝ Y[>jH >ji/q;Βs-i:(H{Ajzf{u"MJ7W2 ]Mj;A)4a\T_#,sJM-$vȈq5mC-ۖ{ȶzxSYC,}{G.mӪ-ͤZj(3G55ldoܤ MD*5@~Ivc$"Rp|}㎆{4"sR35" 6cc=#(iܱUa +]\k(sGU;8Fl7bfA:r*[HFCq/P6QZh0A(=*/vM$kExlAh*hQRl?9ȥ`0}T3yB#lP9 Yfg 5{ܾ}yXz^ִ_a=My=К֍Sr4%hԗ\q wL,[q*KdF)Z׭Y|JcQyխR$Vn Fxjbyuu/LM+Wi][\jcq]g ǯVu5܅A7(.̺˭?>?"1M6cZNdVm\U&iݸή,X~5N@faǮxqvUE kE5-> tO)w8gu^Y1k@_MIKx#=i9oi_"סq|)ym)k(Db ܘ |M8chDnyQ/FRroo\,GI n)eY[i@α$hl.bأʖi/=IfCNte¤ UW!b\zYIw" )dMA ^!ݥ;Zh/gcz9iY.Ş+(R:oҚߡwhy?2` 9kX`2-nT2e6kkdn9\ʎsؓ#!ԗk?o':dIc&G )"(@#$wonozG.6z@E @RbSmas j.y-A Fؑcyo{L$Qtt>X12HT"73k֟~ }^,*sh 2lwqwW7ʅlcy/ۓ43pEoÙhD؁]fYN > oPHb e!eJBzeJ"b̩ xWqO۹kN^t ר(f:"'20WWhV|O OfoȳLV.Zzmlȭ򇎊sGbz|?/LG YXvhp@>n k輞fpXMy`]>]֊(:Z; jy~W1m?}Bx+]4XlFqK5GDU^_IQ^GGE-G9m tQEX?gMˏ3ܙ>]AK/L$wci\i 0N&BΜ1l4DCkIC#[>hXiۥU+Oѡk6@{rȽ>?`Ws?'=cO2QCd>P>4A#vH_vXnAB˥ /t,Tm!(Oj\4Sr|OC @fw%Ҟ\~pXpL9Q¬2N췐m̤;Vj @#ԑ@sZǮH>uH#3A_kb (2|5dRDjHC5wKz~ iA6*-_0c(]8w)Gp!e]"♗Dc`n$r{7Fb'',4njH_ò#YW+?_Ií<,>d6FER# w6~+AQAM1{ҾԨen[yMbbScƒ?"Q4izd+Drkg; үEiOC9$ 51#|^:ÝzF($h@ ѰRq?gEcQ6(h 8Ykd\rIim>3,mȖH~[p5Mvfu:Gp6yBI%f{5iO$ MkFCr_OQ'f k] ˷22dH ktN25a/G6PG*u䔝Z5֫l*W1Y]YbJs"ο8뗝Baw6&w}IQ&d(|. ëǧtj2d{wAe550$,zF]ra効A f0X^=gby_[Lj^e$0 Cvӌj0Rϛ7'%#w36ut\"RomW (6 ί!F,\ЛnU˘@F|q8J;m{[_T}uW,c``ӀtVZŠ:v9&N1yFk:!o+ n|Z9LبEܺ+4|g9,+*ԛvlR/< \ *@Ov̀Y}R`r}usD,<i tlhv#Fȕ#Yw垤 D\a6z2J:3r,l5X9|ra U9LS,vxZ8#-I< c!~[w4#'/t ?d0涞r֌atTM6فS ulގоlh< #ҙ#M+l%6>7lw4KkGdCE6UgDzr 2+7Dv[DRg)AM_.Hi7h`7$c=k7s"A/ul[6q4,@]wmN8w?%~0KL_R?RUH8pmGA3Rw@> ?ȝCǛ'w%׽ajf hD}OkvZYlEP? Ew@CN:-4ۧn`dh7s qƏK1]w(`e~ᔸ7"쬀[EF5}3gi{-pցwaߗ:ƙi3(Z,*Bi*F{r2 =:+Hc'ڐ"SV#XC,1qb矈J }_>Е/O1/uͅWd$+F ް?C]`aП&W@ y>Q.R6h^#-x0+Qp`x~ߗN`j0Tڝ/AxlΊqoHXeX x_9Pne4͜g4"x@߳YHV{Zr)(T۫K"qȮD,})`W*׺ yVi_Jl~ u~;xB[{;+@qߗo9j)VK X tԬ~]EJQvvr4yFRmqx%z/?,%%Gcհ\o-T4߁"3)_^eYd6j sW*kֶxxeW!*I07,cmӢ\K6I3;X |oD/չ3ƃ9.YӠ\Xߞsج#6'աd5)3D&v1[a-" l5,*Gvĝ\xwVc\OVȝ5G|_nk/,3fKay \L #VS#N&DG{S^&l9q s)ym[KѺrtUv}{dbgB`/e^yoBO7&npؼ1wB; !GWd,ލl9hU]y6wpra_d΄d#?+zr.2Ċ]aˑ7LK\ gUÈ6o|ګ:,zDe,ȺM1| <.ƕt{miqˡ &; v?|iެGT4'&f?mt-i?Buɑ]) [-83"짡<\$=9 a6rb HxYyp;S)KCC@މouȋKr*\kn# L}2_;cPΈM!iܶKyqs=Q.أxq5\ѫAcK͌ȮδrH [Ȫ\e-27UG7-\5u q?JASQ`r&~Pf ~٘cUx6fFe2ŧ$9O:Dֶ>P 5NSmMMѧLۺuiְ^i&ʴ8hӪ&oILfê .[e@Q\klZuu.~OΠ-(i9!I N2 )$rGU2#][d.iM0FiySkN6DƚLM̄SytX7.[z|i̿D(C%kB6n"oFHt.b}̈p%sDԫk֥fag8XfL?] Jr}w?]+LBj?LrKf"Zu( vbL`ltH6*;#m+#qH>'R~Tc"NͲěcV$*ͨH- )Ӣǥn@H|H m.@ O&c[}Rdϒ'57ehϔWGIˋ-DTb&bAh6bcri?<RhpдVTdD: G԰:J!H$4.ea*Fڤ}Lj"ɖikcD,wlpG3ӽ{Gn*D7?&njQb뤤FS08B-ly4m@?@ˠ^@Ԍ"}٦1 I1Dp/=6~{xP,RS4MX#z^Aad[lA'c؞ti E ѯҢl}2{-Tw8I4G8΀ݿ". ~iKal$氵LATe:AɾD]]/ɆYrwn?SX'G)G+ _gE&55\1iKשH>4=a鑥z)xfD$`?LӐM鉨ߦ#nWmPU&]P<.s0fԽv*`A^ݱN9D(݇vג$#ݶj#*9%;TUKCEP -Tɾ_>A%4 ŢkMM_'c],Ta: *>mVu%Lvu%nb:'5Uk|9-65=t(mXc~Yox}gP|W '!fiHMi\VAcX9ZbbTLtłoP }ȳT~s7M: ҟ)wwCն;PP 26z~5K$h;"LSb6D֍Im-smj8;_R;'{\s)j;y!yELhIV?́ܯ W S .*Y&ɭBJDJW90mDpC kR>k \2a ʨ V%e9,_ {ɗyK{8rɏܸntnqMc\VdD,3i$: JbgQ%rsgN~HxR(r}#XҎ+G ^9"̒$jk3  ~uNN*79K,J4\ͧ <{M‘Dό z?st\oq62Qgl:otu`ą?D[yHIW&kT#(;.p}gYz1)`tZlLOe#'P}`كvĄ5 ?"4!g~gNzU}#ܟ)s!?0E:hZV0 Ɂ| YNS? (祭{StQ n{ˋMlGrGGNC߯rTHn>#8` EwN`!/Y'v?>Ρ##qeߟ[M7=6؍2Lh|2nG cUn]lDVΌN%9-Rrh`DA?Tjz jϥ3E&l&5=71-Q;BRQ13 &->t2d}ADHDsm=.^6֜,~Y_3E*~HT6$qhfGv"/Yޕc &mFcݿ#gYm6X% oju vN0ad?Vm#2՞#LnkM5kiTV:"4XBZ{P9K;n|g{E5trEcwy촃k?[v J _V %^"k\Ƭ$SmzJfOZ`Dr\! qSRtVX1K᫉U\ޞ.ܨѽmuŮ2$sUi<'*^ć}ߋG~?̈́bNHf4be5&6팶dͲiVHHwe#$ GHYau P+v9V^6.gzb?z\i8+$)H=jUb߶ȕa0?B!=f9S~|YP[lya)A}lSv#R3}0qÎ4Cי3 !Y6L3^bfÏѡcDEcv]NH <]caJ?&ɔcjF<7 K彉-]q*S, R|}wl2=)w_Vd6R n4T%dplߦ8jy4PwrK'#1>=, quρB[c+ N9bn@\Rcdú$*٤g>ANa(.O xg"@O.f,6ȡLBMU#/Ѿcx=`% 1ɻt ɢl) e4}&&7 X0ىT4cigOKkiCw& p -uQ,F9ZCysiCiS\k yϻ=9vJ?+i@PkD!D&BAf;mC XW`foTI$Ƀ1ۛO1h'ݐX4rCuM%1+nT-\G.紙"D!v酵:ZiP ot% TRH0#;ʒes$ ({'sJ\nB2rώؗ%~ius#9m#aKPjKͨy;{+O[tmo$Tu kL6W#sy}ПeʚZwΟ>GӠ:vuRapG8aB?qQDO=9ǧjKۆ5S,elt,!5.M*'V^"HnZI,ؠ°& >D^](pKz* |=F2Pfٝ9$,;.pu*C1b‡ZG:+Q_vVTvbkΜcW)zKXl*0Cn&D*irw57W]݋c9~1ݏiqQ:;Zo9ܤy/׳"m}޹ju-ggKV'eox^IIOSaHKG  TNd*σ;PXS'C7L .RUɜFm5讧dckCHdJt,KJQZ3VZ+*QѠ{!aA$vO@`{#"/tE$bz'~zR0| LJS,uG;mg}yOے#'.krۍB͗JhGc3?UDj~`|cLGwo: A_'!Q^9d@MŕZ~ R[g{vGntc0)o#{%3~szml٨ޛ yEي1ߘ/ŝ'GGd܏dGLjI?ڝ+p g"r (7,/УD*W(eQC{NH.ghҸjH l,hgS|e][x vxW۫_ ?>mz4L|߀_\ L.pl犉_ Fs͹4#l51GI>o\kt;'#6@Įu 7[*džP&y(Z i 5Q&Gh+OD%37C~ }o mh#[ҭ%)~szL|Қ)#n̟ngM |&j٨2 |&jhm \Վ> G5Q j }O"<g_ &: wJv^'\]ӿv?`y&Zj$z푝#Mutl3ym5k01KЇSn=@W0-5󀕜3tmhMohzsdD9#n ٥@n%iT_tU ]/ 10>md*jsxͿ4'qG6wi W0>*W!>)ʕ"~R`U>ԙ#bNd Zܱ_)_k#k+8PqFya.4T}$`z/丆U' ΃}F֜6(R#}َZmM%oX[-Z^xl5؏cD̏ƸަPWA."#9[@9wm!|Ր\_ձ,`| p|mkӨQ5'Rv@8ׁ<2Ui|Zϔ}qVCn[sȷ""xHΓ&!x +X1ƽ8-7(OWyj AWN2һΰ|pZȺ1˷&Ѫ{o5׀}!+QKSRiuf9)ʩU"gFw, 'E03n ]"\J}H񄚅tRzHLaZ7aIÆ|<=(漟x`˘ʇ&wyz)_"5Q0;9Q5rYA!`E W'@a{4krg{%Qtm<0u"^TKKDNw-? -lV.a$wPq\ ~ܵŖqۧE{[*FT2tfyD>7Ȗ124o)'R9F2WhbB-y0,lN]C & 멘m\ S{*6g6?C)iH"ݏar60Xg@KЧrʰatXbm'a434<û_ObG=:-~"Q$udfd⚲u㑸{TNzzCO-2xWev3UyHU'srU`@aydsA "G|5/Ʈ "˩ ȿ̺eWB^c*4dƼbZɰ:q\R0ɕpLb౉f47O̾EܲyLeG]g 57bkM5{.(.?d1hU6{]Z#%mxu)bMCw}ޗ4pbF_aH^{;l.9mZP<} I>2 OK~,-Y柯3An_ufxeoMv\64:q(ɥG7[àN+r9D]tk W"?62*6We ,RGJTF##{̚hrւ10UtA|`*M< p,HoQ~} *O ;a7c q4f1zf4­ZB(玪`W&-P^1BWD*#0G#l+LrDgD*ʪ; ܯҨa`[I%id^m$_ e[,mpo&2ʊ5\N:; r~Yޑ9BmHs`bI.Z.凅ʔ-c\PKCyc$3ʭ=!1u(fQʆE_GĕN6 T9#Āuds .eˏݎ-s2#jMBjh%(I\X$;5HFPe6Z4ϵKRA>Sg5`6|pKKfw/\f`*\:!*n_T&U_џqI.awSJspivk.8#O^?r w]Oϳ(qFS,[ fyk>eVn 1#?d#y? /1g]Q~db\>&;qĘPp\3Eދ7\xC<"/{sJs,f0vWiͩX9EWyYYh(XׂF*̖5.\@jRs[\]_~6$GŹ0gwvsњ5 ؖ:c8lɬx,Rah[Š.,Ubyh$[sA7q5Ց\ݰ3ͣɦ1o3~5}16:ndjO%wr؟%;n*L#a:7vוgq.CٜK zoIݗvm:ݥEyr1J?W˳p IrS@?HNv4A'6Vh*s&xn"59۵Layø6a i) 0gː;NcBw~j0C/׃ڒǤɕWU: 򈘣ß%065YdEthޟ-zjND ,w@ۧuK1UI\cIƠI:gɕc~xC!LG|-#fLWvV(iAP辔Ŝ~\YdJI`iWtDBoc//Rɐ;!k%`t*ߚ4oqFGt)ix?]κ_K`+:Rs-zTRk諆>z sk5QB|Fi;ɓ:cH|Z~\G#󇎂*ZU01c og9aܯ%(M^7Kϒ_G;}#eV.:Z72Sڕ/۾ \,p o6 oB?JdKh|l L{#w,%T2Ad/h(VQ9˻*74'2"xh:?Ҋ*K`Sa~˷W\>K]zY="͕֜wlgjЙnCIq횹3o^9@s@8"Y/dS ,~{Hw5dm73EOgɏMbJsժjq*5e4Kz=ߟ%7$n#֚,~Uёfc6Th?In,E7+{aMdxQNHg:}+s*sbE< *ӡ-''I9Ը`!TP+##{>Dt4K@Y,mUoHwd1r6q˯gjw_^]ſ-|;ߎǸM(lk*,=\.㊨"l?WEJ *ۓVDikRoWLa[Çphku 1@˜9 ~{-u㈜4_+Բ!g;vk=w53X1;0%&glou_AoݳuL~)>].Cmdk}NG95׏jZ Y˭{f{znŜ[ϟ%ǶNe ,8@9ZS4t5B2ryԬXo>뺭"EۚR/-}9s4f"sd.'_j|d-*X9chRA Iy*3`dǡ؀sP镶et+Ƚcr- ^XZ̧F-oԢ`ֺ jz``|6; ݛ(sϟ܃M/=#<װIQ4Fr[sfcZTWvǥJ91 ns9넏b(&Ww2KZ?Njh+FF|Z|N/Zx kaEæ> ˑl0ǎUDy,E0 U->eW͑[:,E#<%6zؗ# kWzm5e8Ttp%T+4h=}9˛Wl$w6F6p,z\r_' хrQAve#b딻m>Ҕjn瘣rWg y?<~R$y/7Ge ^{r|.[Vx'|DJw.%gsoKҟ#_Ȗ$lݟS'9_J3l1 J/HmޯD5yN"v`mgfSevs8yyCY8!Q򎊼_^q*qMi\E2k\e#HKag9?ngכ^RWcw?oD]WIsTΟ[QkwG𼎪cLB0/esEt8qs~B;Y7< 7h蟮?KJ?/Xg@ns\gQfƙ:q^ޛi&)m*`U|HZ[( h5Zȣi?ߵ_޳~kXP[ 0%A7` agɇR81OT%v'4Vș\:SASD{3]Ǒ ;?sXq]וܓ[?Xj0@%Hҡ ]5󴲼&t-o=⛙o(/V;ǿ:ͽWώ%lq$T~-=U~sMKj眽T\ƟvRҴ0=W$شXjʋ>5TI1g 292P]&SNK\]հOaWfş_|2L]&k{]/N(yŧwkTԹYz⩸ SeCW_]V?{6w,U8kI%- g-X8kQKmɬK;;::Z6+VC-~*HhG @ mTtUkk|Z;z^iYgۢ掦૝L>yEO絴G~L @Z7}gG@W1[[.kO W rAϋ#_[pQkKNYcF5~1`x w_N#w{SF+f[G'ɩul۝o-$Z?-d}B2$_6E--?g;kIS;ga[kg o:[4WH>v4_yaz*yyY˖vZܶi1c̬ζ%- +bv<"8 Os~nkmni(A#:VW ba%Qyڵ2VP1I[mqȅj!eIY |A$/{A|$|j1Ä>kq## r-jAA= cC/y_KWU\Xq売n1 qMg^;)594a ^;[q(/)fs׺?6c4LtT.uL6 ޛZCy~PPVsD.daڂP^ tY@>`u[2%Cu㟄48 Ł;_5l^壚R:NͨT#|!@g;fC*nG yAuj 䇦g_ ҉S  e,^ ΂:˂·؏_^6u5cF75cڜ9'_,FWMXDF}xh*X-;˫Ջ{ճz7^.ÑKBbEYFiʛe }ɝv`>a0d4jBUm4ȗ&0)cwW5Fn2_#lЎUFnݭ=kW\Y,aqθ?OU} hm) GN<>$.lD>/X6yΖJlL1ttg"Fq 8hPw# )K#%sEdҤiA/!RBוdwLhK MbP0b)Ht?Y8=Rn rpJ3-ih^$"X͑gLjK]B/ Lt3\h6wMN]\;8krkW }On09Wg(u =w ]9)v7ńvs{ZlY@FkaK͕R>QK-\\on]2a*q Ҁfhh/GЙZPov5ymʶXHcۅ{%KmqKҖEd $8["Φ\BxTyފOJ]_ {c8A 0z%W.x|)3(b+E&ʛE*'lu!PARzvDiDݭgL7.jP1Y@QEr\ęMlQZ4YWȔjEy!Y;ILt&cݶZ,;5ѵԏƍsj 938}̛z >B҇SiF/{KWiVh1<5{D{40D@nq{YZ|1iR5![ JGݻw#*V4cL-t2l"WgA3_0,Mc3v[6;{`3W%3rRb^蓠P2!$ J|!3՜wVlmݻ`lR9֔cTW6cгT1Ռ`WfpȹU皹+c?z |wdn-Ջ^Ы'^M9"㿇LfY_[kMݦe>*2ea vL 3L6\zɲ2p%Wg&*L#wxP!D>ލxWD!ŔibSeY<ꩩKZ(NӐ2h\ٓU{5rYOϑTc^^hd=4פJ0<~}ib'QO]\,+qt&$0TVl0 WXY}jW/:ECpFnv֣!g (uA.e"-*FY |]&߹qk;Ƈ=>M`PLf>*Aόʤ1PcTAQ/3E:~n~EkXivqx-({]YAD?4gZ; s4 iD7R~=|OWwXan~䵘lV9g53%訚 WLfl2v EA0*QMyV*7C*bXZ1rgez}SY&7;RY%1@Mb+l&׺͞@K'{pߘWˮ4]iάodC1)id?dQ_kWN$H5 i#GWل}"*r< 幼$d{%yiȸ-Xܶ=䚖&, k\${u95?dmay>h#ISBSz.гPG"@|Z!+]*G(#3V '@1܋;w놄+R=9~.7TR:+8ғFM=,Otю%`A\֓MTekdS'_ )񤴀%)*. Gi>ElՂmF<9EAL6G&߄TVBXAȨJkpB7a%Km4N~ HgRR|π/f/ɨRsڰcua|Gk|<DzY7 N2 D$+A)sf9Dba"+Xr2#gX,i5Qx=UYWL^F|^c]k$[of\"ԡ\󜉶Ɋޑ)ǒ7g N0@E& +bbK\ѓ=5~F9=p4M&u-Ac)ߟ \Ϟ^+&ώE ^NdXO_ Rpp=DnZ]C`/88X%hUt=45j(y"l&qЭƚ}fE[LjK1yCORZiMFVeґ{Fsxh\Rה^I?JtW3ԗ׃d>{k܁('s*]ͪ J| 'zG뮌IMUB{%巖%&UNYL0hX3 \@#U8LA;U^%%ĺD=HWKu]?V ؚH)Ws,陼}*77BeS?:s%ʟ]gIح#i'ː]gA_rָj?-XwXIk.ʄC%_3 ͣ%TaR{kr͠U̷w_glj&|aS\r|-s)~2H)h*k3;0M*ʎWؒk]U\m:̎ Ʉ{¿J  کWW 5~~Zn[U9[R*<8͵s*P&B VuVzQI\`FEY/jy¬*jVVjUp5~|'}b 7FO٬@}eCϱ6?a:9跼UyUh+vﺪ'X˓^IMAV|10LW㩪DqPt(ϯ& u]6JNEI%w]F|ONl rJF&-a_{Mc2bn0˒Ao sfAq2_{i+*2Md[`J󨔟h1mM!,%; -˔R5?u.?!DlδzRJͭsie٨ a豙 e\lE m\*lޱ?Výxsgހ5\9ɳ|(M~ Z+-A7Ɖެ_;=,Hja|A~&RF;&Z)6#׿"<6ڴ:piO'l$^:-!#61^$^i!i鳉ϓquZ# h8ev*-8c{n'H<*mԟBJEf[W>!sl,x51+Y)."nEd3ս4ah4Vn3} Ɠ$5,+;{U,aBaMZNm62a|dW7I8\Br]OoS$IKM?(cZ#++&OOF~V=l+Ӳ&k~zl6򴼟+H|fyZ>Lz5r5-Ou$>bs^O%iěI|/i#?TVl A(JD}5*=!߼0DSv/!m9%(#*ۉRoo~Ȁ8Ƕ)mkm5;8ShUkN7'@3VŲt ~f\;!Y18b'㤽ŤI~\LbbMqb [6u\vȎe:~pYɓp_pc+NB0'|6I'|:Ix Nؚ$K~>]Q>x͟fIz򢗅 *Je&2**"'\ݓFcZ>ғ^A>ՓV膞D Q=^VnIO,WF=i4ZF~eE*zvФP\e5_,G+A?K[1#QVO2_t&clȟdz;dԬM (IIV7o+Ɂ 7$AR.NSM'Ouظy2Fȓio_?_???<~~8~>~yU)ő<ƗP42L TBTanP)4B[{W嗌Z Ejz[ӋCd+qfA=ZDVJ.yi1׫%MyED{Χ7g ,|#o,QI_oÛʲfU>"L2PV"cgL2vX`X~{OvAu莜"2t|t|&T pϯ |GzՐ U" :ì"}zו9TMFR..`(#`%JŸIr??<-/T'w?׬Ng} }v)2zޠk*~5~ȹUQ(!z: eͶfp`7ql:vޚsD+|\Ϲ(Fb]0f0XgLoZ7(ȹ8SQJU|WU0i|am*`0yE;V7TlxC?K\߇0TZq9T|ޣzŬ][&?꯷5N.bܮZVhe8 w$l^ D(a˷DcȪtުD]ߐk[eS[hHA7K0gw:ЋJ4`ME?Q(Pa տeM4P[SVCGWפ7;kA B --eu ް\דƱ\ӘDy`Ѻ7usR6飋(Nϼx/G)7#mӵ ¨ȶ'#SII2lZ֨XF.%--f'oMK]tæ]-{[J1ߧ1i]#mP32tpI zy`-bZeyB8`D59GUc6~.-]m9RmROǧ~J &WYEd'n+ْȡ=l3;\D͜T1$KR6<}L6I|#Vtg:n }& ?) .T1NAR/S ߱#yPBrp~э޸ T)Qt`_/K3"避rMObOuBQ}Wrɮ@:H(֨hPo" Dk b0| EQb5.qC0p$u4dNad)۪֏J\2.'uH,oeRV-x\YSa,՚q9.@ ^b[ {ǕJM6gd?4K>*J.yT.]Xdd+ɞV2ߝ3ϊ+er՞^¸(&:3O5}{;>$0M܊ V;"KƠZ:qL΂u>$Nj0+gb- 3,P Nσ!.cG1m@M iqXѩX-k326_[8]DsA[.{4RA _`v`Ku0AT`d<Le<+.C=Mu0/BW`7ͪ{7O˺Zj TN  PwfWɃOs;P1` `Mw Ƹn6?fŁC*0JNXȗ=ZĶe^_yk]Þ ڣԶ7j53O9̀>*>ms2i:?p"d"{cDygMޏ ڲ: I[Rj6}o=T<\vPBOVxA$fRћ{߿HzN P%mʲm&' xc]់>9U{R }|l AbӨ&saW#CNYb_+<0Moa[GM,ȿ3MlW:qqWKpfX=wA}&΄ }BPDyηԅ1.6sM.s]EmȚ ҶyD-6TŧRu}ԮEn6 Qmd]첿HvD.8wǛP(+#3MNrq뒄s{0s?k/7i_2LSqwilVMNl/܉#? UJa.i}f|W1f帊S0= j~;EN| wpsrۥA Gwޘf*_R 6m;)&F߶9ѣPK}نўdl$?|a5ԎAI75$-$m\R@M;IlIO,/8^^Jߧ/&cQq[r͡`C!浻l<`'gc<K~]N)}Ծg=dG,`4!` D=J{W')r{Ϥ+W&y= "KOc5Õe`b k;jzR_TKAL $pm~/`2z3B_ Q׳+R }T!8>g+S@@6}zھ*}D}(0 n.ǟR]Ӯ_AiKС,Ʌ꽲<>w%N f=BP){&veKOWVؽ!&чn`p\uWU,Jn'K 9@+&BQ /"qz)& 50@g^'?-b w0t\.)}ҧ@ݔ>ŏ#aCN2&ehy nS(YZZ:9ĝT7rZ=~}eP۷(`J^.)i3LeDLS\K7<ύ:(Ng7SM|&'_p^e2I7y۔M]>OʖMICAZgtZfhuy'3Ym:yzCMZ@ln+{z+*v}[p~:[*Dʬ-%GLIչ_!ΘֆPP0ϗā"!/&Ri dk(Cɗz3x|]N!l27̯ץ`0s;:+B M,"+&^Ļܬehi]TɃ'PR ě!%~x%(Ri4-^TM$C{K{:J9/Wt><~pQ}S.IeEiaIL|8Vy^ņf)FP{W{HoxuXf[h]pqKskgnYkJR%+dcwO* `-n[Z +ueq]U+DG[%eϤ:Oe[?Mե pVdzBLD7Vpg\yteND:7%(L'ާzŻ<3rq ǻkO}C5D75ф!3BhDK` u{0 a^g".; ^k6qIzPpUXky*;?iHϹ Ȫ DrpA f4k0&6KmȠV.h[i㭍^yKz!y!Hk$GDRFuB9o[T ; w|Y_r>0CD#>9&z?2>Sga(!kw*Ǚ`}L|A J;W㟷͵t+k_B?,f'[w{YiLls2nK^0KR)x Dx޴ 4u^WrV(S޴uT9r쯈sa%mPqMK/Lq­?>2嬌)eeujl(_,i]k֥ dgj}u&B\Ic>(M_s}Qzn)[SK!&6\wfdU%y}v}8d5tZa%\^Vo]A˻84i8x&xWҁloCڅfx4%W|`YW:2I?k9cR&U|#?CYŠBDιXPG*@TaL[W r+D~+۶Gے ùmqB Rԫ p׷[*GjjP`"?v̿uy쀐Rsi,PUku'Ɏ{RYۗ?R=t3!jQ(uc a% Z̍ҡCIN~2B?W0`X_BP%o텲wㆍO.uЖ;]3h^Ts=Ӻ" O,UPUpg[Ơh30}Kwք!P(>bnĤֻ\W+A;. PrF6HeIϛMfj|DtJj$9Y^;D.Y ec:ۄi>z%+ϔhL62P"YF-.P.H)6d} 4 Teu*"kI{\+a\Zܲvt(@Tg5AƅTN^%P:h>WѤtO34( #%2_; |UUwk>E|mƟqp~ g"Q[7@O<{oAqJVcӲi9]krrOmrCԚ:eA Gr){#jP? vDN|$!r#P޼O^L&e Gv}Bz@~5ŕ>!Sѕ-nttT:Ab ~@:H2 }HmިejҸl͑a8Z6f avdD0B S# y ;e)hh}QYgF/FqV pUP膿 :8L$./+ӲT079$ No6ٴNcfLck"f% IzLwsӈ&c5Б8bȨMҧ^ 2F1` sƴhNqYEƒhE+ &9n JҫdJUYM^3L$4ғl''9teE뺷3Ԭ! PBʜ=d3"4K kIg򘶅31YMf+1ճ8 7!9#R5,T)c(DI Ss&} ~b5̯.'WfiJLQij>18ȭSetp\ˡ@y;>kDqqن9jL/ 2pO$M`_=Q%meV.Hd1/3؂4 a[Ui1YYݨT r@-phW8Vսvf5Cɤ151ԙ ! ٪d $ "b-47FK$+E<bAd$}&2s9ZY9qkSN洑Ӏv,m`ڇ ..-6_~x+ScQRYawZU= Bgyڴ Y\@zy'Ә}.%o_g,& jyv|*MX(^"!q*5r|%~քڗiCpӼ40n^vD9#)f{w+T2߫/ʪ19ނ>\*WuUY o'\.|Onaq"E%h9@>`;:sS,dlΎ\v[ncBT~BYz-L^$k놧[I7Od0">K#TϕŘrY62l¡\ȀDz5xxr^Y!@VƛĆ rMk:8' $uc|DzLfx -{}cA٩ڰ"MoA30{Vq4nfJGȨ2΁ "Ck2~N&lPh EpA6,U֢6Fy(u`chwwVFϛ5GUzr7Ze=}aጂ*<#SrڛyKAn> [P6yF{(*t$%z:ՠJV Tጲ(5oOݔ}UFn׷ZVuhxZGSdDwcC+crvr@TrȖj79W*&q¹>2>¼1S&LyEs9)gT~e#öOni4fLRƟ{H ۶%gYd/xlh2,'ǂ,HyM'@vukֈQ('i/eX!\OZ 2D+ ~"}}o]m爟gJh-w#k{7fo9aBAJd~Ro)Vn;n?U$5 Ld 2^*lSrRy#qw4ryO/Ys Pl}=lZT.}ja'RJ/%yCIgoP|cZ "&&67Z:U~ ^aaޒ *Շ}L!0ɧýU\D7~-uճ3Q8c)F]P2n䠧ysO:nI733z]'ZQ$׳ 5e$OwՖ= W:gփDyEм I_Syk;H!M1YSP& ks)FܗtRX(muQf骽.Av_'iƗL"/x{'ް?%wx [e-濋/2*fU9,W^$c"!#Vc)8Q!{EHV74#?K~j4^ S? XCч]H?:,J>#+ʡ"B QTEg>"72ڃ3hp$O:(#X$6^m\E(w9'=_2_LQ5τ^T0Cw!k"?[|g r U|"=`7 Fq ㏴ܭH$MjD_}S_};yM_N*JBy? 3xWQPp|oQ'DȀ<3Yʆ)o7Sb *Oqcb^+y(+p}^)[+J:WTg'y9nKB'צ,76L; +ԺOB}: 06mI"Hj -4zAj~:~F~Wžu/"mLީR&(f3x=2䡀Lb& h[VDIoS%sO +,ב\R<ޗdz4' yz͈/!; 6}R>:M%f ˫.guo |! Fs/MVeUi;%>+})P1eӶVN8@;Oto\N/˗ױQrsbޭM" BaN ]ۂ@>g {}2h)-j(/8-~!H],{#rG=oF{hM.@7 e8[^Z)%TF~ѝ #H0w9w7/W?5P^!m=`2]0>J^/*T\t]\֟YVx,b-G-kvb׉˃ډ=ľtb/)M*NlAIbo]^RyJcq|'0? dhꨐ}=l@zU d Rr1@Q_6}_vȣ h(>P#i7VR=5i#@|G#V(E9|g1lgaSvDz5T>kq5$F:7r7&e,7%(Dk zf:8 U@CEbtN6r[MuVu outXȢa9'yآvܟ=aUGZ5S$Wtw7js!bȫ&cuԞ^֔MP%way#-W8P|XHbwhKx_9([ݽF>4S -S䉎Q#[;GMx,Tv ^,i}n|ُՅ@3t u6FjӐxÁ' |m7 Q-~#o6ɖ" [}me}WȀ+̅54Q6N>DdmznȖͮ$l@(oi- JΛhBφ MƢVp^S] C7XReMvTC?CF}.>w]NotdtGd Uoz$:Zqk l:*gZ*Jp״ԋ ON0&Pe 7*BݼA֦_8䰗λudP`&8A~$gˎ3uSu@XUb}"ٹ5[ +rcjԽGͱ&95YVn| x *rrF'Z,r-r G4X"!A-^u4 6 F&Nk_H]k(Ћ[khnrgJid|WPpѓJ- (/G/{Gi{|00Q=ڜ'"v]7t/d]tT6'f @m^>7>7ҹhCxnK&oOiǸ  BPV` ^T{3,Z%&~\a+ y;^!L$M"4\LĊw-:ԋ*2lFSF'Cg2W͆nKKn%Kw/߮f/޶f2 Uң\eK/rj&^:.wd3 괩C;8bPnWd6fRS7սLN;U̡cU}<ԀL S; kĂF(ߴ9nu_ٮ-z%Mܘ~řF>? 7}dz#a.T$~\m!áe?\h xOȯiF,PIA(yjyݬOz֜\r6}|rʪgK.gΦYq v"p`ϟ-?4qcg3͞46h-U$Zu.Ewj#NW$ G*dGpg]zqsέT˫A3h>߹ֶKXJ< =\g\Wx0R&[ݣL,^,TtLVV\ 8x2jKxyecy'z|# Р QAf-_4Mx`o >pٜeED Cd_W_ۃmd/CK]4&*6BVZ .&îW&tBTkZD af>맱3T*FMG 55"B|$#]Ny/?LC>HUFv#vcO&2@BJ]G }FSǐBC A5Q:]_qv =Q< qhY[t%QgWo+~!qw(l5{aj ;D@!&ZW N C:~:P 0ݣv9UT'ݱ6Fb\E17w;]rݦw>F^к7&u? G2HC+"cjeOcF{UY$owFw ${uWCa-ZۭaOujvӏR0rӽ |gTM:a_%tI#\os |d:{Z/t\@kT n+N>ʳ^}O̰d[}@v'12E lDAX6"<{x}Wqed?-Lz*<`֓sF6*Kb_,O6FTfX똾d3_zLCKnMOwuXj=Jto{:] vƽ:ϽjΘ+u{S9TK}ɛgB[vy?*}5 Teǥ%pxȸWE{U쟌+T^wRE=UC_|ޞRE?>vy\-LQbX&dӫu\9KK۬*9%^j¦v6w6-N(yext,k= Pf5u-ȘP[^UFg7/himXU)GGG[QeXۦEM-ZLT3}Uij%y+9*A)VZl4j،WT3ŮT{r]Ybx(*Zb:SSgm\,Sکznqץ uc$WhXҚQ- $f-]N"<_R/вXZ->T#{yrKu6kdAyj[WU Ukkon-t޶F`K m%mOZb[:u-\c` X4!TOC-]Ѷ$s1'Mf"1 Xd]fJA;KKjK@<|3|]14\37H˓LL"ؚ~ zY]H6_}ٝ;ޝ0A+e9P4i8dM4A67Hz$ODF˱x}p{6gھR#әv5sA(8XQKLhkFtq:%yy#drJiR7ex;Н^/#( :yo_ުS#` *VӴ6Ȳd" R{h=BP5_YL"0k^⌇<8op)nncohxA󑸄ѩu ];31kWl5fk=p};B&kF֨q7Ip?xXh")yvm:(b_ը`dOqK#Ѧd wR0U<&!"9L` %[9[@K&7@&2Ai-O4\CE-q|_9)oyi]&߱L,ELnӠ[Mo`-`M@wŦŕ9_p9ϙQJAL/Mn,`\ڔпrlJ+J~I)^A+7@C/l/"ISkgƉ,4D[ܦ75"*uIffJ)cmL*/;2natK埈/ڣ! kjg 5nNG$Ր)#a4IJӛdWFE]FAu5gDiZ#ByAo d!©[֢#k%(/pܡ՗],?&c~ikpz:P03}QZ{Ƶ.[\"Q-wZOLu0ly45@A>er(. qDnoaP52Mw0m;}d) F4P:v=!c1r7d+ވgwc(z>ǃ}?e18-QdzT'?22Ҙ7 NQ+W1,.3C6j]ő[oXfcp<gKڷ݅[A ) eBc۬eRv@/?>^FJ>o_0# Y<٩~\ͶET>Ot`O#T)e&[݈7/c]T ,ͯ7rMWƬp# ,a1=וDe[*1엔5hv z* ȷ +MC!6kh xdS\=Ns nsi _LU~)A771 ;Feny-${SVyM'q3TCkx PZ&\cKF3uSg2= KY+dW|A\OsoVh7O4{[Zhfa3o/',|VDWHjB88Q^2H$jYҵ0vgw鲷Os]jD>s9`E␇c #]3`od23yvUn"7)f3+F5IlO=GR(hSX8;`1peዑ&t{naJϗ{w-&OR)W?أ/( .H7Zd2>矉b' ȢTFFvF~K&D>c G؁.UXBW?  U*ܧp?57j57=Q2aTz"¤ҮkRϓ1A|NYuN1r( ɟ䉼s3B ٷӏQvb1)O5b&fՈ22 {U'U6* @k̘j77넦N~XnT-r3:5kobF F=־j :V(BhyYQqM^b9SS6@ܹuIwkI^O8nmȼ0w=ҀLϘ6@3X)XءF*imNgoD4XTדq~% Қ &L^Pcy0];\L׃ ru9BJ :m(n/}'k38;XyG7#̈BPI]?3r;Z͌¥, . 6}a}oU>|>nAEGѧJޤEe8rMd]htZCwhq:?'3r lIVϱlXC`mGvf/kBbi0 +=#O!k]ȕImҝK#'v%~cܭsGB"{t֓-RnN{+HRJy+^>Qu^5(jL5?6㮜)A3 bBCWʻPMرS#Єt`QZsU9I|eaȃ4O[̰ҕW&2a22 =>pVo8!fL <eY7/{l=G5@ "߽+זiȫ3Z6֬tl ^SvO\h;?lPA V$)Sn=ig<3 KS!}!6Zw 5j i[WW$r{>ۇI@ Tu#dMxVp1[ NZ%5W )G}}KJ<ŭ7Ff0aP,E3NNCؑg䲤ƨ;YAIGwoAr[]t1EXiF^_UzlO?dNDiR-'JUV+UC@*44rQU9#[<+K;-y=@CFIڻ#T| (=.GWJ;:,ՆQ$ɵ\#C zƞg|W@EQZr}&"׺_yTdUv6|*[—-Lqr*;q_L޿|fUp3gXu&/Sʏah̀=R&0\'zZ) C}W''N[H(4ecFD +rFr& N4y W֦y ,ɛky 6;()ij{Ii%iwהJ}9챞+I m7sZ=cLt̛XpNuMM(}.SUϖh#+jgmKrq5mfq[/:<%Kfe8BL|T\F713XϽJil[J;~u)j+ۜL+ctx2^riwW)9}5]>=1{Sp6Ũl[/?_3zcjIWGNN+y__Ϝ$eKi\NN=,~#\S˜oH27'˜ou9yd/~uyDjף@ƺIcG,|WF@GpAJ9N8 Mń@NQ@M.| $,T-]I¢fnN"_ȉXq9wxƗ{z:c ^F>~/ >G)#_7X80Q-EW%#tc39H';hKeM6K}-aGDShRCI=s=k (sMV$?nm1Nڇ e2a,lSCUΦQC0ojꥻGr&#VHf*-z366;gbQ&A}.d' 悓50hۼ1"M#0 'д.TvTpSr{7 x~[_/_׾ӗU}Yg_ =65MU\C1nܴk9,"}ҳud#w50YxuڼNLƼ "dL$ MŬ?.0dِeu9 1Ğ$ʠ7kJ"LzGcIlަ!{3!0 ֪iwvuOlvvfogCmvG5ڣS羷% \ufFlWߠxC-|,L}oGd3D&#GX &WF[HFӧ59r5Y[""tqŚ&zNYq@deMw&4'4*g;iXĿ8ýrHh!멭@  wnzsAS#_P懪O,M-IM\dSKdEB i3Wʬ :;fZpQ󌅭3.Z8cIk\9<{3:g9'Z"!'yGbjj 6DsSYHw3qBkv_93yզ*y#>l_V'^>"^RbN7J*7v}j!@N$6^Q<1 6x:a\eT=HBWlijlpsRy'& |(?Bd핈ِEVEe7;!=i?N6n$? ߍ!M-p#O>8G"#7yP$X2 P?GhOhoX#%>PXɣj@5u!JΧd%GVJb2+,VU+GJ+yvwZky7%PK! C{hߔTMFqp#Fd*Ԃm/K6[%!Gl$%k8UCzF>wHmrUI6}R兮\6GP+5D—\Be^a]pboYކ,Btq#95G?ǯc:yG$_QJY aO2šC(Bwh2rgW d"lu}4ẁu~pt:\Ebh$C7hB62366,Fޘ̹Ib ~s \FMUek]ds"ԓ7&?"4e'󈟍z(*Golԣi1 p)8%l{I:[i BdX~ɛ z1 f ݷ3J7%+z7q̼JuyO 0LV'[mz"U_N:v֡Aj])]kӫDDmL 8XcyKo)^գ{ߌft+֯?>yaa}T^;Cd7%jY!nۜ* sFz2{J#`t⣬K}& dkf9c-Wxo>&k%m'M8()Ω|3C?ҋ/J?Kq*T[`KH=*, I? =zY>dL%pPȎC2RD#6:JR ޥm>N@|٘e~J1ITξH3,? 魂 Z|~m گbTi||ml>kt'!c_aD~Y{k[ߵjYH}8dJ9 T)v%sfLf'Mi/j-2ץ~ ]xENL>-9gP gatkƈÕ,CIF@w 21-Л"UҼi-/ E ^n e xIL/_ґFtc=X-x5VQno< h+ӗ{M^d/1Mڒ#LM[pٚLͣeN@# Gmdt_9#@97ߎ9nK ʌś"hX0Q0H֑sS0LUc@0 -gic4p:[,ƙ'_W)㬢eGK?bz.o9XU/~,x >;TmpVԃ3Ɲٟ§6Shh++8U|aO*0D2Eyͥjr+%]h=/4~tY8_k z94Էi%99-FN VvH31l#ql)XUʅ6/Kcl)aax6`_j,-rmT&s Ώ쳨A3<ߦ/3?-0Q3BgV P;6·DD]d)^gMV_1#>PySkUbm.n4V !j↙[#ٲ< ěR,I7zКm;o4o,B`L%jg#5 '"6c2ol|y\$6x7[i2jeF2lT|M?nDwZT(JA,EhHPYVY79Vd}Jx:o﮶k>c:'߶^mՁXW2;y|+~D4)m7b:@wŅ^8Q:T";o'y>Džwx.B\ӑΛ]0ZWi7~盅[,܄/d-QHTW*{5hD#[xRCc|vŐe^R &lT6.MvIya~`8?&5o_y{ӧy3Pͯ*~Iwj9_+4睵j ?n)7̣ {c3g_VOZ ǵVH7V΀gx2RYq["+Qv7.S՚Ɉġlƒѿ7bDgҴ2n`)Nԛ8:Z2Hl5p6ԑkJbքO22,;˗5tHN+G il_)4Bx"zpı6xc#y&0oO}o Q=cWŮt?)(lm_#mwzc%`URzYJ " ׯ 7 Z'cVgU/9_0PGv[:Rl6ZƉ5rPb%3x#gzU7gy~<\Y;3h0/iґ}ɷ2r@Շa}ϙ0-pۆGf3vo!!n[߂#K k/ +ubF1pwNjF  z\ U|iNz䥵#)fnS{j4,nnj ceT^B{8WQjSU͎؎ c<_~2KBꙭ/k0&4olv{z4; )PtR>6Et[~@h 5xl &dV>\RCIiA6[- B u>ŤY9QS-M-ƅHHR[z3 }# d2OYX貐!4ŖR(Pб; ߀?ʾlcFL x1[X 6F&J[ǪӯgIp|w,˗CJL6Jo=T:τΑTQU=6-S IQ_*lejMMcC (~n΍<礗oS- 12,,zդ\˟OOjyYL~7zcBlReML냔F2!R(>'[5?TF1KM6@Zsndk:qښ}3H{"uxsNis nP|U}i?yyt/`-x4ٿf kGqr,(ڰCb?k&DMRPڼy,W_.~cpƤO*NS0M0q)4EA0 }cu0s|m{c$@C~ķPl>^ϚF~%{5XEޣy|>F<{6be>Ggb 2 O.Q&~r,R;zsl^1σr"%;YjHCCW>/7p)~v) b`z0S|(ɄׯnU=<1%*)qoD&Z⠧'j3Nq"1F>cۣW JNꂺ9VD&q!(=eN M YGB HQ !a qQl wJ}jE~x <=DCVhq?)Q#*=xKʒ 40S߶-&-ʔLN6[]-ij ٬3/:簄?[1~d2d2n8G*whQgg[b4uj2|MY.()ury/[:ˤv6/Φmث2ZeF#ٖW,qm5//j 6tcD֥:yIӌ%Kw65L󹵾L:2ȷHmͭ-s4x27-lZ^lv6ͭ· *8xOυ/hG-1y4ƶΎGƆETgE܌Б N@L\8βE͝MSq{SG[kK:΢Ke4tqX$Yܲ@q/ibJm :h\*F gZ;ǩ/mI\ԑ/4/knVrPhQCc%:cENᱎܢsqܩqEExiZ@wҼ4tRhN^㻕iC%)/+`Pz6E(Yڮ@Lrx,847/X46wZ[Xioxi{}[ۗ:U>Y}v!|:֋u~]|cBd~>qڗ-Y٤PNdb"C}-8K[UbUUg`Ǟ8/U1YiR1=q77ٹuYqA#ǁ8m℧j8KoK5 S'? Ĵ48TAڛeFLŭ-Z-1|8J⤢f펓\w}}O1cbs۱!0ᓘ5 *d= {ʓtZǥ`*"yɛ 1Ԭܓ &]9Y6ò&=E9!adL$@\oʮ*K [z#{$#PG~\d|)4 |{й{j,n65%ave& Gy^'avP'GgB9KFXDɽ@ z.@=~1Ry|LeǽՆfU|9s80R>#*#k0-|Y="> NO;u~`% ׏>1dxЉm4|/^ C\ȹxF`O6>Iw=BE^I9`TOcG1`6ó )7ڈ3㺭>{յs1Xs2@aqرva~"nc TFꂞD3 0SuɉBAoyχi 5ZˇBwܦ_%M-rAlg4.jh\pNY.ne2v3(Fj"u87wnlbgYN}`/I%6gYޚw6:%|)5.4†CDzz)UW-SD=lPt<5aFg ԟuҞT3Ls+Eɑ.Afא1ͰQ鞾K w7#_>oo5w˵j=UXdu;5"-``eW[ZLjZe 0[`9| Kd *a2k݈Gdȧ3}\Yb7y F6g0P~W}EfM\K,^ _N/xw6c}K_IՄ Ddo1:-, q&W1Mx@OnOkB#plф 7k“ń/hbGGK/i'4A&<^LE+&|j@4fא٨lF֒!3x~r[ɫ A:]-#PnDFGAeYf8U&:|[nۋp'oڷ{\}}ז߾}}߾} >*^kx3#lv>gv;OeY1dʀk4ٵuuLvd/W*-.}_{3JKWήe%JeG?\z/9+f30\Gbb0geqd [g=+LߘoimX'ůK¬Q0hX]6tllD3jvf,UO\a;_v8+׻ ^{$0| |c=r)TwV(5ܙ=WLX[umItb/LPp D55UsO&3?k2L:h|8o쁢t#;Th䇙Y$]rxވZaG||)^/C](L@;w;UG|xK{6r myt7bl ^r,cALH#\m <ތgכ /CDb"3A<z8I.5 aA'-Eזi^>MuٚLΣܮZ''TX$%6);;q#K wV<1ynCl9鸁uM6T9C:n;o|ydO1O>S8t3oz* Uij=W&lIFHmd}d2o^bp?tcf?lD"y]&ō`eFA>¢i|6{ m2'(3xMA0/^ F> TYb-̖ }sz?B 7fi#'Z4| mJCXFYҊ8:+LӆbYbӆ& M ^`KXXneRSqc:Ɨ0?֝b|F~D |߉@Ul> ]63ᴙ]h]ԗG]NATyi ?+ ؎.'6S'l3hd6(잲ɟ4BXOPLbpl\3k>WVIEeE^}=4Dvz>??+xƒtuXHT:&0XNC7]H ꁺ=UlK3`8 vi..!6ڔ{Y>$ibHL~ySJ;UnRΏb,'hȿ!á;cIW${8ϭ:PWF P˪~gx|&b`MKhե \c-r)~yu|/a\&n8:;˹UC vQܞC?87={!BmZ^ΝuƂr<:eX&c4(f_$:\)S-~G.ݭ2^=rzXxQtXH,n,7hZzDKc4Չ,=緵..7qɰ4޴`qScYlljoiXzҏi_d/hQ/x-)0R1T؁o=0_JW+R_Eޭ2`$iknV YNY:ؾSgEmXV@ZVZn9amSgĒDljwWg4_cJ /'UNsK[cAWС3u\Xi=Mq\Դ"Ѹ.ocA%m}l+V[h)t,j):8Fd C|Yj]9"& HxsZ[tOvPɎSsSrk [" 8 wȯ _V\i+pYIxu"Hz҄f2|wsa{-2j`dNtBK]Pū"g"- IP Di KAuZr ~pT.݂F? yppk̰yf/ϲsԳqněVbU4wC@XgϴދX{t.nYުD𧭷)^1ؓ,lOYoY9k RV_EHYgISt=+(5ALQSC{3WQd ,jaYk" :7g<Pͺ@$zA_@k M|Kj fek,n"k.ŵx* dm3 7"Ě:fx汎fǸn?&4]ii#҃wO~|;]>)m+i;/r9L3LL$˫ΰC3iu\lyDr>_;"9-#JHNKv֔&}>Nޖ!CapKZ2+w#hDSQЕxx14rqzޛZ@#XǗq6ӹx sD#VnU Ȫѣ`Kא |t[Չv6ӋDi=fҋk'})- a ~~bdK6|+e,ݨ1P[!'T/t `-6{IdTY716v7;'p) -^ʑrkAKLMժ(-yJg>Ƹ+x#߅h^KNo6jcޙPw|KyW: mIᶁ7Ĩm~zMvvWm C7B6z2Fon0ȃ0n-b+K➤ř[(K;`L}V"VpK& d-Vy:1M#y'!ԥe\\ϸGzʗ!505QL͛P.XPvгÁ%8~H<Y66=q}-ȥK˄O;UQ}`LܙoD |bHG!7hWW[t){CD߳tz+'Ih7^nڍ{msnLo@ 1F6vEmݷү^KՀEclN+h؄յsIEIfKAd{u Fi\`L47Uy‹ЙV+O1s"%d9N{v{fwO /"Y6~MX뀗x;z߆tT-R$ 1p ~|452w//rUE//act+svk/\ö}MJ u#Q&2^?L7$D̗1wwɃN&!+_#DAts+s:Q;p[`x2POE4I H&J?{T?eZU~'9ھ,VSi14hZr ez22&0W:{N4#kſ{ӌ/W0/zf˙W$W-6b[;F5= U+FHy͚Կdce`;y2BVr /4Y\;G82rgwuݶ>0_Uu#tGsޑ@2rww@ <QH` z-@Ί򽻛"g( llvWS-י=ϸ+&-, p*ˇ2'IEl+gBeA>ivr6.[{!EVtho5!bmz:I0EÒEV=;`pGpRaɝ /+pQf#A>9?P0tȏH7hi@r9iaڥ|?/)ݺ#k4t)m$`-; ڌ{$tQm\-)= 35Y-&k?O~ wy>{8~DMO=HƯ"Vw7wb3˟%w(HSHe@x<e.mw5jnXCvC ϓ!'ufQ !bG%9鲥Z_o,۳ u1u.vlq4AGބ_~'TqR딆Y Ap++3TnuHw*>* X])PF:pⴞ\ܬؓ]9٪=%) Cø;T=Lxfԩ~~/de%0y,>.ń!Ë ʼn.&`Q.e<>f%}XфیDDԣjP7h2c6l Fo38D&Ujo!DS^WwB Οm3K"yzFzo0ې8 (|*bh&V?EP/fnD"cd-f!7 tPGsE2t{ʄ {0VU :W\ '8 ciHBa4S ^G`%@;\y9{#Dx9MunBҢ ,ȽgP{Ÿ#jM#qQLJ|D-4ߩ>F6q?"/  8 O( F`*<=E^gVuU^Y3P`r#8r4yXr{^\Geʞ+ ^\}HIeajtrgur.oB7=i?L!_0n-IjY ,YۏOk95od|4:擱ye%|D A)3>ov5~ɓG=e# fvKE$+R5ڎR~xBj]1*Zd@oH v 拽ޫGT랒L X),Ba_8_7WvH(=M8Vj*oګД=PXv"mf-1H-wG1<YE&ˀ|x/?0FaRAfH>y|=g QU{ Km3tus3=bb䒞d<%pf!ϸ&1)e^db̽/jͧF u+ )A+~co9w:oTD4R К^#z {vt NIr/x3Xrm s.Pn} ,-o MX-{"U:kzL=OyY8#Cťf#V 5OYέ_oWSPX L972Eiſ:&3&^~!FJȦ&Bi։yPX-3?O;Q?V9b;>zYL8g|o ,2>Wy0W FN+@yIPvFG3%\2@l6r#gu2ҝ۠0զbܓ=Zf w!ݪ3aJwN&nz9eg=痨ۊ4# b/CTǘuU$9}׾,qԂCw3*טjsS-Hp/ZzUV]Q*+w&s2*ʦ4=7"ON {~%٪nv,3? ~wWz/;P?ɞYf/=\&.zXԐt5UN j,GmZ[Lt\IbqZ|LVefqOƱJٯ;qQ"ݶ:Z~瀭c؄ =-b|U*ebVcfFGePU)IaOMʂO*5&×@S^D>V)',yCۤ؍HOw|y>g;nW.|Msޝ7 ~0u& fwC8! uODKpJR^5{ @|Ac6kz>GO61=q`R٦vQ 5}>aF'&ݙ'v/qq VݑX `5'De?GJBذe뒒3)-ĴbMVE[1}Sr(AMz!kLkT|?NN<_P'Ӄ{M :D7d>jtC;tqOM8P*GmY;1{"Nv&fI}N^ -bC{&jSyYZ<`:nw3X9+Sc|b&ŀl_&sy 0pb&!`kqi}/'g;UzMƭ_ 0*,Ӵ'K#Hz"$:b/`Mk٧X_6aFn*js>Qґ* oukwVÂMa:pyV6^pMQ=v($[Z49xȧXR`Jd܀A~Qo){@Ӎ5[TjxN~9PP w>_)73\K7.+imt57 #bp-XgA<`.H{j1r58[=5$8V,3)f(}?ʄHڃ8ֲU²CnVOWAdWH&>fVcYGE2ܦ)_}Q 7>aUxͼ0sʍ/ef Na T¦cId}c0-3El4.b<@/-e iFV4oT%ҳLۼ{Pc~h4c@y: 9 9oIl /WO+1cuK$+QpN9`B 6'/ɔdju[\+@juJ> Mj)Vr7s)Y^ Vt4{oC Yd ^AvW'=1?W̱,bRfF_-O7ཌྷiS#jX"Y P:`'IdV.Y(ز#ɍ!)wd12+cZy ȧ+Rͧo0BFiy/OڣHI3$Ď['ar$(qg u df.La01rɓ`{iFj\ RVklRS0u06Ɨ%2r=Oʔ%)Hv_섗Xx Vb2܃}8rۋ|~7nx0Amgg Y [評!g1< FT*ťi{h$OXnI6yU;΋ThvFHv0C_-_ˠ(`K+ t~e Z׫ٚ~d^Y!BlK R/RWj+~gK]]Zjs'z8n̩KTVDn]hX#vҚ]3l[^ Eo}6/˖| bIc&o$ #҂'fH!iLeFvF}U" :kɳ&gqhgBYȿYj&;+R_kd9?0+^2%߭8 Ɗ<2W2}򩮜|@:f.)4 5%QL/,fn@^lr,0ҍ|bwroBm݊>WdWnX'fY>A&{ؘjN_솣K6Dgѽ43KTp)6],Fe7ZS"% \u ,I+Sx@2 R/VF16RGղVV=&RMC skv2wټc/UDV~Wq@<}'.o|6SS`X̶|_%âqǒx )r/Ҵ5i?RyRGV/;~lF>o"y]e :(%`ƫy_۝V.ntK)W&_5m%5˙y2c']~b,ck>=&tfY~ȋdZ6Ym~yX"0nfzVy1|bEiuw]<3{R /24oY oXvlMT0V$dBe>idaDG- vB'RO;'COVIc &m r3{,HE[~>e,cˡ\wVGrSeA./;+ [yGeA~2oUZɭ{dV_yʂf9 ̸#9}q* &W2 9,d!MD=~]ev/]R;LA|9cb,'T& !ֳ\6)p7hnTw\٫b=yEqs 8g_z X¡ٯyȺvz|Ȼ@~q a{'>ni755@;A) 4bG0V5=WjƔ$ iҺc"iI67iJ|Q}̈́fUJo9@( q#!)-tgY I"b+̃*y xn[Ƃ}#HNR(!YKmے̭G8,d@P|ѥʢ!fˆഢXq|AEj$)M9_JQzvKv0ճ|9b:%I'br L$kcu*̙yKZ㴆bwB,S5 {Xyf4ei?=^ky0}o1{(|L^Mg>O0ѧlJZiۑ)e87UjZm17bG `F| 9lB~zv|lk} jb5=> ӯ/M^L SǦ&$ʒF%Vf_>]JH'3=HzUom)тf1Sy۸TO4 (ʙuoo\źG_P|X^d%/hqKM&몼R^u+ jW>o9aogʿ dGn %a𞴇WW+ea@Y ,LXAX_Mv 0b-S#lzbwߪta7}4KRwh,\O)S-\S倡3V&Ki/J/LJ+Dan| 5yШyɰkJ0[AkDp?,F T~F~Am?,7!=4 8ƻ֜:N3@A~ex'qƸ?Jy FLjm߯vs'⨭3L; 'A"$$ڨx7_&` ժ7D}N83?OC׵^{^{BNJ2 *2A.Jp\SG(?凑tRa`ݨـ,Of8>gX:h)UVuUvhC!']fyi$r!-g S>LtI]Uߒ42\FإO^ Xs{׵?B,(xIYkaf$!i!=~ Pia@7<:̪2ŝi&ֻX$Ӿ2@+p2폗y:Ot8d4}ڗ`aJw;8t$cC|K(fB!=d4dL +plfm{;SSp+F RbdOM/1$:pqa$!!.(#Bdr*md`}Wͯ9JςV_Ped!9pd4^1QyJ`שΗSg#^~ ~fB>aw7`u3rG Mc\{(y2m0V ִ= 8aA(f^ed*ta{pdqb wbu}+TcOlڌ5Pn/]cƲm(^fX%s[N11XIiCSwj 3kͶdʤ;Ed^~< )n:TU6.|D_뫟Mīnyٶفa/DzFؙPUx [9hll Lgvaքr!z70=ZTw HjרzpII iFe+:lH荒Kgw)PC%9*әnl.UЉȚNFYaG PY7ǐ.ψ_'偵&iPE?B*׃-)MtQGX*ɽqm43;HIJ.JɷA q&#ڪ"Egv#)g p߶>l}yL ./)o&v*zpƬ*|4MNdM)_"?ʄ2ow\'!tdZ*V*D;a|?>20a ǜoOfϙjFg nr?c}k:Q-%#_W]vTvTK+r8#н^mSۦ޽}~ޚ.~i'6A.ߧKX> /?x]riF|j,dB\V M#[U޶ r"_ƊN'ki)m狊Zv-,^}V3oIj!=v?`3fFnDle*}Q坌[\Y s{/́]8:I -_jy]gΧnTǣ0f4 `g(r']1AIi`(WӜꡛP9Ut Ō!9_eC<@_Q<(mm3{LTT.b|\q h""Z0KGpvegv 1,7~29B zq'[n B3ps#\T٩씟qc{an졭U 1?\YVtak}i4jZ AaB.O72r`ܭ_Z [+sJ=\j&H`M$D?oWnM90 .We;J]Pb%jI?yF̽&xGaxI%$UġF6rURuq#5F^;2Z6{FHQdp Û":<1)NC/+Qo+z;UNÓ~&lI+~F#2sRWVv#T8#Jz %6\j%=9m8,>Fsm??+"~g-?9@s&$O48Hɱv822TJ: CO%e!FD*F1euhb/\/QfTIU0A|cx~] G"j x{wӇe20bI[8~;|mATz`A*/z }gܬ|¬X7~6:ҳk8S7b9H;R2A 5miP.Ip%i5Wsj9ގaP9#}VQa+>"pR.؂#ua^,ܮZ+m&"CrE)BtŇFA_:H5r|(D~da4(Ն93?E3*kA WlZV)g7)D 1ֆ*wn;rFn+ᚫޗ^Zny}Ec{UuFvJW N췟|{dTsgXX&-A\EܤȯRR$+g|WX9BI(}uKb72tYyGPC[ţ@HBPNKDiyG^l:9ev&NJaFXZqBHeݏ/#7A9UV!洩@izdeemĬ u-&^&3ZL+n(MC3 屗B4igF_dׁ[n3㤜 q˂b˛B#DqH7LLd&*5~gdT25#Evut56ϬLmmVѱVyJ 2Z"1m9+k{G !cǻFV(7T01= x!@Pxz=V.ݣ?3:~UW8c:JjS醚|[}> ɽ(:r?U<ժljHe@^ YY$srH$)w*wnܞ.38٫4lV]3kB 98~z _"3; tD`1xˋlNtq_""ue T˒U.i~ЩxG+ԙrӪD3#Vԩw&$,/V᫱xs+|튺քWOGrfr[הw`eֶ 7Oe`ؼ*%'ndi뾔%:L;Oet{e}#J WD.|e:ҩtfzF?L14ԍ~xL#2Ј@CwTvQ{&'ǕQ#(#L4-<^2j͙{PMTw`GĴxOWq`k ZW&"yy1Sm˦ۨ[ň.K[Eu++Z_G_uxa=EG'.4U8 JɐUoq4DdJ猌II+&\JxXAU=BwNԠz%K?b#GZWM1gk9& p QuӉEsGZk?/(L>^%u.*ֆA5Yy@w6|;qGy F:{a${Æm}-MF<=e0N>2WO(XmBl衩u(ȟ:TR+K-f* Xr"j[V%x^Ђ= VU{d?Xs>LӺCˢ|/V13TV~*ϙާ\3 3O. v,5JMjȶbd.4p.kZΩC~PC\ߡ a#fZH7_^eQg1Y`Pz)-WP:L2`%c"jrGmGAjjk5(AF`ՉCܿ:ɫnWwښn]^W0I%lf}t^\1ҺU姥:J^r7X 83%Gf-WiBP[B[h22}/W&7+rTKrV;#<[h:CU.3Au3WQ 5U(*&0saݯ2-~BE-.R| Uɥ3[bPEcXlY5ʣ3[l,qk圔\z0Rۦ}GH7Ye5S-:d9 ȿTBlтW,yqA74SVYQWpRtsP8iCBn.|Uh'w`>)i;56d:kuDv)rד+.mYC4#C۫uCmVc;pNT0"vGEg'A}҄F>}JwQH Ύ!hxCIϚM32,{ 8_..%FTQF1 ꃘq! y)YwȟJBwթ<i Y> `NDG2F}Gkk0 1|">-xiKe #V,EJ>;Hфc3 ү !&X &b * /z1t#ҫ )Ey;*8<\n0n\cg]x"0jܨ*z, ]u(i22I- Ȓ,e'o;߫T{԰Ϳb6hDW/ԳtEUAOZOw$񱒄YO qpGȦ<8ܽ6ÏU 0z IfxNEc] <5Qȓi_ ir1u+Z^f,7OeFeM8'Εx*hit* n s-5B-&%y!z"d692c kn˅`St<&TyۅU :`T"yqPbkKBmmE4Qpai0qHQ Є)Cۡ<6ɣTɊ(tt?Jʤ&#ϝeQN3r3z%3J<1>-Z_6);x9IJePkP*?HD9O<]TLP*&ߛ׊R&ȋ M/g:,0*1Yɰ\{zJ.mM& 4pMJ^ihD/X*[m+դ䵸J9Y`s wX]Lkz.}#KACo(O1rMTi{ʃ|쥵wi_FgiMbٔlw~^g|IF|FCSgPjK-$A#!4ҬR#?1٧75_ك*NK!C2A/9/zcfM\ReҨkBV*|]A"H$@ꟆC *t!yBUBYŞdl np/Qyzo>o%#24dP@jsF#:SF@da4 )X ;yg6pmTˍD7m*#"<{e!~㋊Zʶdp zoBRbj 8/O%r~Z>~XI벧aF;:MytvEy0T7laNju1P8Ju7,Pc@z*-k ڂłWO xݘ"@4*ΣqΥ 8:M{ڰZ($?PCNW #mҢ7t:ʤFO'e<*r*,geعXq3N]-~ÖOP[V v9#k'NNF}/KMdLܤ;3(OT n2ս 3r $Pc tu eWjk~w&! rZۮp]]dՕ ڰ#j=1 8+?z e <_= Tߊ oƄk2;qlR.] W;,Wıy^l;8%??,;,O'}0( 7VXEOb.5zJkɻϹƒ\.?]!8^~Z>yu3epDs VnƸ{v_vu?zPﻂN _6>ӔCyd}B$Z= ~`}?->TW7C׭CMoP]T!^;ϧ"0XX"/KDUoV]jsH|G~BAp#`2V2[>;]"pFj僨 Ni:gTF>&lMIĐ#g2R:1%wd#3u Ia_ay&6Ԓ>½A=raJ270gS[MhOu"X,v4 e`9ZU61lPh-XJNɸj092xh8;~?Q`ðY-3MuEr8NM,xK y :ЉA-иvʌHf d+Fn'~n: `}xayV7/qx G] ˒FJ!3ҥ6+PB:f~{J<"96ߚ&1%dRB $"5-*+No˧߰<7qJ]%FzkpJ5vxh±19+V+F0#/pK fPlP=2B75^Dy}/^y&Dα~w8qS3\pq7b:/[[b_Uo?/)tTUQIPTg~x3sd}yGi{Ic,ək&K-{[P>\X 2/GjW;<]lbGSdP<Y3r[i-}5(._N,duN\U~]q,=]fO&TRdn.=zArqH?/gwۍZ~nHe}>) 'JT.QO;Ag|QP M0]8kBLzJGxq||`1W S@ ܣUq)V(ϡ0Hgw 5OQ֏66Ewn&&|xG_YȾe!Ϲ7ddX %F5'ʮYcxJج" g  z%XVox٫[ڪa_b- Zj![7swB㝰˄zDޑH򵳹גƫ5>,k雳TN/*uF) n0Uüj"'ץkW׵y/0r"*+;p zPa ቧ8hۏdv =i%}~5x՘FM| .99c.HNlV'z 3yUt(\1F{Vv6gߡaܮDFwп"iTbr 9RFvjW$et+s#7GAzZmңj"}h3M<1wE>3y|F_B~'M{7XFkg8"Bɦ_凑]a,i ҂l4.1r'ӫ=tl%/MWe~_0:9=hK6a=WZ3mh l= zVhK뵚v}-R @y5p;@RiH[&rUayE\4q V.tn샔oV3KAw}Ukslƿ,)*hX{L2`؉m4xv)ǣL|@|}O7n$FG=!~ p}kP߮yoصz}" ׋ɝfipݼջ%_oO=-{a3K$fEHl=R^_b:.L菗nʂN(sq?x gr4$vHm; 0wO~jU0oL 5 L*PYtK̪Pe29(m! Ep`d0=Զd`4Iz`JYs\T("<2nɵ8tI˸&^m hIson5gǡ=Ug?J>h>\ `EľY'~r8gS\y\$jMք8hh U qn2BDpjUsjVZ߯P|`WvF#Dj`Pw$ dF^Zoe {q//Mv;:38[W5~PuodZ U~ ~V Sܻ+K 7J!7'9sX31ًJ}hX^Q yx䩹7_z4Z"fED@\u칾Ԫ폒u=Qkٙhf}kqZWv%e,,KtT"oR?^d_ *U{]%$z e9 ޙ,!?P+PQw!>"2EƄC,)J= (;_:XK48A]6 bX*lMxڟ\lZ`'/sǺ 0!`d"K܄j!*Xmfxg!rцmvC7[ĒXd+={6򄾩}I#-jeiGU'!)w2[lTyޱT>@#gn4{>'#QJ =+F+-H%up@D`B/Akkp'ctCwlKviVX22VldIJeFZ11nïZ>?Hc+lM2#xD,}Ikdb5ȗ怳wB'XԇhضϤkVk9#g T_=~N39Q@d?YUy>ۄf~^Y7t\Zږ-gTvR#7kZFJ)GGZ)52 TB"xOռtwҚP P(?+ )Gʊ*(U0-##32W<ΟQvTTfcjd3,;CZ=GR : SX.}CsOK\"z?HM0MD_ %YJFgLx;1H\I-҃ qa@GY?P~'@tD5t}0[IֻMiNv&ӠP.qy٣AZ6`EZmL(du=0rmJmP&+dSXuvף/fXy?LV6e j4aU.llPclf:+j%:H~Y¸tqkW~ؑ-lCi&S0U5J.i#]NCwNqѰuD#.'k[2?u/MF&z4yvaۥg\DeD0ﮭw9D8{JrFO(.˳Eg\NFV0tצFLOSZeptw `MWT8qauYVW B4}^ptČ11ӴVHm}Ak(+.0І;9! _s*8dD`Y ШH!?۹iT:ϝ7]>ar* q}[Llx|0G%ʥJ<<8`-Uck&N?CW Zֱ ObO@GVƓI Q ljh殇`dvn4"Џ)zLTX81ԍEDA B@L"'紡&If[*"E(?bzVCxACFJqR2>yE]dlVɝv0F`ےDy{I*Fcնx[]^-b[\o#o }ڭ$ }H'D7lF<*/L\zrPL閃r1(@2pY:\*7>>/L!N 8's S;3*?F oMеe0dwnCiMUf\lZ;rmܙ8*dBxtwFrNI='օ,M(MFL*cLWd7eVL1rcBx:dB^ hFCGs5C\ D}'ӫWJf}i@yK7NeFRkPϩ+ uUR㧇Ny%m=L+@W7ʂTծ#ۦ&8dBLL8vӓi)H 'p*r~*$ȯSFi2*1QDIli􎑖<6 Uk.l.Ps<:dGE2_^猊+-Mf_"_LH,j"/KdW(%um" 2<4} C#:ㅤcnϲw音?t)^㗡mh_w-O|w钙)*;fY]˒)kQ꼶]%^̜ƒ^ ӾBkC ӵ9{w`8yCeB3qh\!8"%*h,洡PK5t#H%%X#WyQihQofְm# `kbl~w0X5j,3A'H%CVfgyä QZ.d-kŲ4:~V[+~owipZsxhW2]-C`Y2AILko}*Ax/6Ig2WXh o9I ˺_u%db^C0_3tnFXL =  ({ ׃2|w,UP[;MM٬2^K[h`i r@ h'mBǠ`4`XŨQ Rfdj qG˽zISEϼ A6[E?0bDthR,+bְjFݘdIv vd4fHu<’@ 5.=˹yxyhZVf*8({B+=@a,Rخ2RdSaUwQA阡 ;3 V6e}j1pB;/i䍾=6%)i yIߟ =DT g9af+h}Ql&wN; G #5qCz-= z}>Q7M 4,]Udڨ_ "-gv93euiװ|=v f;tFN3za*ĜFE(`0rJ:3M9*'֫l%/-K=Y7\Xqw e&TY:T)£z:pW(f~)|;BkYlDu Mbj`ÕnKi)TM0WA475Vp,NǸ_m צCU^`0nߎRaBVP#` 74Ee38[ujiUjcIj8c>3H} |GU2o\8~V|K\( p:eFN})GS\Xbd93OakC pЅȁllVp=+ u. |EK;B=T)//T_^*4ٲFޜUeF?dVp=Ye~ ~c%BmQOǃpD W)>ʼ_Af;r+eFUegRXL/72c2C+\0PVQKleM+yMzz{=L쪩F5YSˮdXBqЗsm\mPfF)8XVnySegNڡ݀GS./?O48u.` "N`/4k|K" :z!ɍ7CӠl^_K??)iN=|z/7 ;9"Dxr4E䌩ezL}phu݋5㢫a#w/و(; o@S,&:azsMj!k8[I'5 G rI|/@bN(址.:)ed@ ӌ⨬m; Y0K!\ȁ 7?m 5DWS:h]>x-p\ۼ&kD޷6F7Ħ?ճryOHZ]q8-`:{PsbkbkJ 6zCe,:a`yUoƳ8itu L:(U9 iKC{A;xx vLZQyS?B= C,GȲ=Ժr#beS*>XE+&[frd .l̈́2n<+Pnd"*Lj^Z*rY1CL@Z;B~M?N.r_"bB-/p9b]%'I!pZ:P5zh^*_"ѭ_.v i1ܤ쥥K 5oao' Ev ^Η(5rOC (;pU:p#wyHi#Tj>}&Ⱥ(#Z]wjw~ 'p^Adr#c tFb/&qS_t)٢/f}6Ou+K<$z&&3a-k?:yt*sfIfL6k0fuq#y@: 5D5`/s᫙8m余@!\:3B]~23WgD5z<w1z#jQ63/?ͅfMQ>@l4yF)=كL'{e՘?kF?"HS_ԻB`ZiلTqJuh)_>*9,) |7BE\dK eA\J"ƕsB@a"%4DNRJ0_~=W<0g*<^I/%FդE[;Nʕ݊k$рXJ"-} zSF~)YNP;<Yii|&%kmzaƎK.ΛDZ8?E KB*esdĔ)!JiB,[E­rD(%k]MD0#2sh8cJnH]Ju b8ȭ3T~l#8YUEY!,B/;+%2oLq4]D(~X`c2E&6)`|s9AF[n YRc_;]'5CsM4Z~QCYL7p/8 Zw nbS&C}|=̏LVDIo~ # U0X:-菗k%r_Ҕrz7\cИJ+L)J%18־wLO)Su\MN|VJ`oO%2r**ӽqjk.pX\|2\4E)HsYrqy1dB; ;kn%\ErFĄҌOFbjJ攂 kYe6eY8 7K-AS7vomGZiZYb]s?%9ɲzjJln*<ܿINKeBA[RVOAa1Ae^ʕݵwm 楅BǩuF vk︦M_1Bǂ$Rå*dFUdtQRX&~.%ٔcJ_IVwxQ ǎ$i潓RHB>Ь-Yͼ!vPߴYtJ j_9a"|v;j7PXG^DA5+ %' n8ʁPc"uoJ#oP/U)s&|Qsܥ;>.?ʟܾ߫'* ^+NMz|uaMWӜ1&p\}0F'u؏3l-Seq]#oATg N;[/bm0w4]6XyvEHe6#/WgiΓl{%n{wza-4r*h}ey{G;KejO<?-ׂ%܉uv&3(ٜ9{ ^[taj+hxWidmԊ5+m:[{rඓ-XnS@ڄ3 evzoeUz;ex#jSd4Jbr\`Q5_n3Va-ÚR3_ k_{4r6k"ʻ\wwa %s "mA$YU;P*mJgd^D(JXC@ M#b4 % ]n`J/F Qe%I1-0*4~#ĢLFhCҖ4RX SWjRrexxKM^ 'ȝ^.c ./"dA.{ӗ[a=& ʗUޜE2ɔmh!Ŋ*JsXj4t Rd J5V{U/F8fWsЖ 42ӹ θ&?i 4{硹Pr^QL=z@Ű1i J%-t2mP*\sh"FV"2G='E R^*#<~ 3 qon425'#buؑP冚z#){OIbJ*✐6aBmKEw(_NTw_eFI O2]%Qҭ_Ϯ*3wϥJ&"io?vFmQѶ@صr탉*mGr8.ktNtū=Єc.:6*OۘuAbP<\OvQ`Н48 s<7RW)kɑTʿw?Hϑ1.i5HL XB{N(GwHvu-&ЉS]O K:vdYrHd*p*Sh@8XX eYIÐ8fJu絪?vPӣ4poL}s [ ށ@&tm=2qc^ r`աe&̿95ZsB Zo}N!Caܘ^i.)ٖ M WGTOHkqeJ;%X62="*Y:(b }\Yɇ\QOB8ٹ_CS0НGo2՚9n$eWFRxn *o١0JmfFlC#ޗ;>ŠBj3#iMffhlT RC94ϥ]pF&0yjB&[GJ#ЂC9;{1Q$kR@8z%b)e< O2}x1 q~K9/,/X_NYF8;||YdεNeѰSsXKTu8%ߊQp_ W| 9'g'r+Utp!o99gH!BBj+FTaUQApj:ǚR^d9)q 3#)Q>-qNtʌTh_9ܬ2 `gްs "5Uy%Ίځ़B&~.7wN!}sgW;V9O!@0Akb{>3 8'D[Bcɹ!)V=Є_|O]*A>Wyju0f:Ft{ʖ@ң6ku]:|i-.]4gW,ᐊ{8o{>o}4ZU0Oik}hB6 Jnǭk΄ ,n|-n(ᶦ!dtGVȁJBАޑ/6׉dPS\Hr]Q)$G=tSq 7!dQ Qd[{p0M,$ n*r{(}ŵU\ce!Yk*P]H rzQl!Vh˂s6ﷇŅd[0x~+($ M+ 9cVH Eh~h.$]cVWi5ި_+qAؖi 8SU~4b!79 |׿hYM.2xm^;noLR/j1*Zox:  SW2u,wVr* qJmrː5a,#wWj5׼W6Y=6=" C!]ِ\ ^E=j~rXh^GwVaDs)BWN+*i/CY(:nb܈}J{+maF<t.6wa*lu\iW]`ۼz۶o9zl_ڼ^}(|ym읙%L޹gns=a@qqZsUO^Nn+$萼N*٧kWkb!ZȾl/d0!+EՐ 7&+m#^s6;p`\oÆ^٭*JԱPݯvT aI>hߪn+1w¢+x#19%;H_[WVTcqyni$&;t"O&޻Uw6^աyā؄ݶOn$3xU2{gbT-C 󣑇Z8Ά^ƫT7e+ZZ;5#[*|ȷ!rH"%O$J$IXh2qɓ?o¸1ք'OwE/MtYsY;aYO?S]0'OsT?i҄Ih)IcϝH$q=k䇗HL4fb5筼{I˱O#K]k\u{ؖZM(˧wmdWVL/䮌c SS#'@VR|SS#S[ ("_bԔezjJ,ϗ ?BY=^q2S126F)+tǑ5S[LVVC@7->9 $g*Egl6rm6rl9ll96r8Ű{C q|GqqۥU߲yVVLuo`,^uY]kF8cXSĽSfF; kNGx`rcoG^T,ܳ ^#|uWr 9^8vMF{jS2#H+ȥH>7̀%960آchj}DRo{w;`7,c~&Л] +g2ij`@ q; \|ASF8^^WAFFg#b;]"D"y UFX[uOk=)4MR#GИi3U_dsv2jIWed%WaW7Ǔ0殮Wږ/"sS\O eu|Ȣ}̀ x@ <* WMh/Adi#d[K^ ܲW.ė[ր-V7g!"륿.;g i4̟-rF&F e>(W1ƷYNeA˯ҥ^6 hq~__h~FwJ.➛O&o4mtثl Ѯb.^溶Ahy,4p-M XhQg*+++}RL/~Ɍ*o~S iW!߮0c2Q8EiDcZ,;a{ZbgMx4 '«zeMgB44OCa3 Arbkè4aGFୡwLNHws)#g/)i|{VRU%GG(?Z)R> (arҿG.7 2э}z7zhcz'dF dfU#4mQErncL!c;V3vn$N&4,jRBy /yGK^{  6_3_4&ps5l3ks#[ S[LHPd + @^`]'m۹^mxJlK;`/ŒR/(&L?Ǎ9ľk.OƤL956af1ܤL$ƞ}I3$/2~ҙcm4wvyc&O>{O=oL0W;ggZŲc&JC^$SO.8R}=$/8 ctX~>E\T\*:ɓϾଓwF.5_Ǔk ߅#ץHj\H w_1!VÓ) .%r|<KJPv: lxԤ*Chw `FrA {U;ciYNn{;^ KJn)^hvmdY︆7-GS􂚞#ċax MRUDڭBVV B C8~h64z|Tezdj{Ik+>Y~%7PS_".|h_F*ߓQЖ egđ5B6dѣMy|p͛IV\ʰw#{]S]Q~+e26ثyN*MUus"4[FzFC^Wզ|O g ]զdi22 F<"pP|vy6%ZEDЬ3R<:/ȵ*/T_0P}Ҭ嗨5AP%9(>&ş!ivL!C\RD0@MQȻv&Wk9yPm(& ddFUwfU%ujq@B"!CtCUun7vԼuP UcE/P)5ΊC%嫭Qgl@lqC;D*9ނB=sk6 Fp/hfh VsY@}Ȕ!鷊X gǒg|,(FrQ)eVvIhe3|-},3WBa HYT,($?ao"'<;}l\%:M=}cDvvFLmhb36wdByc 7I7uW>eJ^^%tW*}XjXG?7 XqYmC:$Y˳r1R ;!zi˳r~i9Lu]AjՌ'c̎9^FhVjDr17`ĕm,:r++WjZ:W+92w֔:^-a%DF(14-O۸*s`G刌^ "R9溫emH[rnqI@.Ǫy}5*,晴{N_ȑnW߫0W(O"fBlwXN9[ZdM= [TN_6b→-rA)l)H_E ZLEu1*EԵa`v a)0C6,870[pw"QC8j|R6wni +5S*8 ` %U" @ڪQB3$o@%鯴Lidz 3kھ`ʚ *.Q0;9?"f`MV? 0N)w.|wkb !t34 KrB] M|gL&l0E+qE%E*&mv67koz|mtyA\ڶ `;X@2 nn>ϻP#GXͩ<|%FLWePd#Ef rE|X fʋ A( yzI!U%sLSEX8RrOIƶlupz9ۀh+yPbec*;?Tj2@F¤ c16I'V8;izB6X |Dp &D( 5,oٹseSċR@%8ZllUrQ37 ljh}KMeӰLɃH`bp_v}UD3JRȶBKeylLsѰrmA[)"4F?׫OԄ22'nf̨! 1^E"S9g3 0X㗥-_QӲ77} /#۬k(z EuAkHnA%m=pPDaZ"2$OW gJK9^&ekw; yU1B!op\NP_bpnK|l?e5- Imsj>ZڏOhGdJ2:TۘHӈȽtbďKI?^IfR-?:7HL)eӈϖz(Ȓ<+nZm.uV^Y9P@ߗfPigtSY.딃|_I3Umsp ]Jn_tF繘4R;]+!3;_5MV審*{Ϭri JJ3j+j-z=-*WmոW+՞M=j/mi7V1D=I2VUnkIlŝ+z3ysE$&38;S$W=;WMVl1Km4suGWiŵzW&lζ׶o]Ѷvդ!г'V[졳* q.65ϋǯ)-zBmk_buW=Wf=X(;jbmfV+uXzEgojsLb,xz5rWwVlζշYi|{@!)"gґ`kȃ ;Z;!R"J;־GkH \^ Y=.cL(jǩip -D6bj3voxg C/%Kh ;&aG.ƑMUa7܁Z\r{̸,RzصCJ%I1~v/h r&b ٥IO>Da B 8-)-h[Ux/.'|(RYW?o(M0a{Ie@PYd5]IANJ/]dn\H.=j0ueUP.U*@Fr~N:07T[U62Q9ElKGY2]X(rh0Deń1[E|+: #mTaa=#3f"oF creϟJ8},@춉=5PriOo)웰~Cn63ma,dY>>ޱ9;!oϓ\[BR[j5;9t׈O/Y|};{jv%_Xn{*α |q)%?}SyT^؃Sχ!`'pȶ0^[ӞJ0d,TrX0U'k7Tm;^ƨcoK;ݗF2ԋ4ɑkx[1Y޻j3ҚC?2 j2ۈ}~|eƻkڧ~7 $؄ϴO0(~nտ}̓$?|a[V{[ .gu64L S9{kW\z͓;;&x}m[o׺Փ}MiX1 Q+7yV`„y]%>nCĭ.=P2x^gQ8s4 <|{?u;洎sG򠎻FO yKÖVT$X7'9:yC͊o4\[ms ;%RcϨB8ɭ^.7 @=~FA*zB)q=_Tu Oi#UrA"Evm|ْ_Ԝs uLOg@ ;4WkWSqwu[(2,+2O!x\۱,k,%Mrm5&fb/OȌYZk˓W49yŎU]U]WXUK뺻zlp(㶶'jA{1*}! .2h۠y?{^uqz৓I'9wVn575MZKST1j3l7)Z\aKjgS:nйf7ք- 4GJ<@CuUVa e*P0AL {1qkbFW۳xm[,rVpB̾a+)aɭi[q| I ƻ"Qr ?t ҟǪ j$%{idVޤjc1 T~&_oI&$8_`2DT69yVŅ." yj e֐u9۴pDJ{V.˷[eJ,@'qYs8 Ék[S#f tNQpcJn.h*vhAsphbCiPNC7F| \&UnoKy' g^>P:Ұ*_0çFF5~;6M~&1nTLn4kb##0Ņ㉌,w ,V؜y>!L>3%~Gv.1`jEN+5sY4uʗk_,ҭiu2Rkʩy}qcq/^iu$DORjFyb$}ORai ^sZj?դ{mm}eu\BfA<ڛ:+nc]q񪝮QJDc3I׷n3ԝ lщ^[rwY!axuG&/Bnku$iꁗI&r:3C0t@q)af7_rMO\;at1,5,_wcxZ鱤|?Tªb?뼅i?.XV'nN#w 0z7L-)K~FQLU.:PW%+5/;јkˇomzo'+W,&RΠw]vپeLvsglE)Vdn9fr..it ́ l"Y rIʹpT6awRrDVo8(3Ks䂓%tGNhINbeT圓ة]Pv=Cͅe*O;) %m OBirMe WÆ3"3FK;,mLK\JV׿ijh5# g<3Yri/Z [Ԝb-?}Ng^P|rk@[~H?j7~s=qϷd]F9^/ɐ洫7伒ZH/l_Z-VVi~I\&xPPE$[opu)_/ 7dζS@&b[E~Fgz-os4aQǶ%ק-Xyh}Lwŷߋ9Udթ<_Da0DDd Q!i1AVVy$z!\ i V/UDy?A\T>$4]"Ť?_fʁofܟֶt}~|;E c9(#%& }˛/}n ֈ.W}}t.Ty(_)o@܏yHV?(9q0m*c#y(rJbhX[i=ܼBZZmjh/)OjLb ~tW|Kbj(d 9V4Z<>}t볜EF1kL]tO30qqD`N_2PY8 T~=ܘ6$˔|ޡVjR{r5k$Ut6@}ΓwǬGG#1/L|M@9<$Nտ<L?Uc»k9.Ei|w٢O./`\T n=圢#'GDzPWݟjjsb̤!o 5̙҅Q.·؎OB&#zkׯгե=֮ߊ}jM_sVz]=&7iHR(IkyOփj(|7tnsgu1&ơׄL<Q"ֵ]*YsŦ7ސ}6uV ֹ4UfDL&=֧=vNVY$;ѵk]1,3 >#Y&I/%Kka7HA$hY`?8Ӝs*mp#ؙ8|fʓ.⽈OH$ 躗AA(R 3 @klS[F}LRkhAWu~F^eY=rE^n*@,uPa1 * rI}^r9fAьQQ"0טlNc#3?oʂ:23OP%Ѿc+q?䳦Ȼ2C9gޮL>XembI^)䪤n:;Z {4zHwa}ӳ+1ÕkB~\]W!i_jqXm@Vt,"/#޺> 6n5mIf7&4W\BUt~+ 椦)L]_(Tʽ8WD*rWE &,ɶC~bI%yP0ؗ1@G&=7#}2Q@4m4xP6W8;d5Q楯`_nZBF:曁Gmđ^Iެ ?Mmf .gh~6k$d?g44"X~rɬ2 ˈKEiRݙϑ'qkH_En+$$p|q;)[d,%JZ갌.#C`;J,E%Yϕ`JYV%лkzU#X vRP6,beP1Xh"&=G(տYNaAL'-M({R&#j6*pFc1QKkx$lN QR{̈]k"w撢boɩ\{T^J\baA#n\^Z-͖aIeMRgA-# 3sĞYn+)GyjE:5cra1לr Ϻj!\lLs}}l/0Wiq:IN+gW>RRw` N^r-jS z'Z4c/ɒi7bf=9SpHG IU6jԘ}~*Y0_)rxzRy8(3af8lgk`AKxv4BsK˟1LjY?!ų{R$ ^ݹZwgUm!ڧ%2  ϱ5%s%&6W-}NKZËNMCت0ǐ4R j-5BPXkħxmm=;TUS/ Tޭ;C>DKsE+LZ)Ӄ 1p4Yd讻zUO{3z@T>P&ao~_pO)͙7Q#؇ $D&|t7lj=ķMF{_^ɹ.??k HEr7y]>L&~(? sҬ\WZ\pA*٘ J0? %Tx'BC1,*ɗ<˪H‰lS,Ŵ3,054}6 ܔdߠ=b*xOZ. & q[a1E,H^X];6CWYoy+ oc*yUU ۔ɂ g63flPc}i@eg?V ~gHH lx5F= ]8Gb]6̒ 4+RLoWb'8āHW2\ꑠN~OyqM kdLr3a5aɉ(>DoR"xC Ho^mdWuڴۅ "Z ],9wBe'\QImJJ<bߘfBٽ!)̖AA,TXIr/[ ɐXBWFECpP'W,H@8 kSP',r liyɫNlVsj|it E{s:Y?(nV1A; '|QX,av./yC 7dh5~!l:jVrX@Lw&|4ROTu{sZ Q9$[e4r+$8"~@3\Q~#]780Zp0yA{Tq^QL,Vjr0І^lkYCOQb)"rU^+trnhHV<m2-/?-ɬ|ps,$Ut1/dJAq/eFv2+.3CQ!`iy0T& 5FFwT. 3l{Z,>Fc'W˲ĺbN#Eb?Y仅èXaA,X7<@Q{7k #d A 5,,ۀЦƕAp6ӐB() 2'ycvm@gFM 0צ"<u|y"ԕ~; Xf(d}LNWX9lIy<ʎLDXnHd׍'I: 5KT2'y9k#yl凙A̠N3B[~y;K􇱈tvᯗ٢޾f(neP'Όg[NV1d:ez!vn,xܕ_9B\ZN׉A+SJt}2m>i˨4~ǧ-$id[`}w< 5 gȨhKXI}]RרIA3ǐ<HϤRl=ąִŗuhG1U~6mpb:P1؂o +@Nx0l7(2 Qb0v9S=1sA`w8ʗ|> 0t@5dd Ǫ5?߭M`H^ l@eQ(B ܳLX+q-KO6%rohgyU-NX:~-P0}̸0Ax's2S9y:SJZ!R҃逎2 V3:F^siO_9[ASS9錊9ͩKKt30JskLKnVCrfLy! ƭN=LSw8WT9vJ=cY !y!ۂ7 {ңQ珗ܶsmճMjmо4qfo;k} MR(8 u܈(~Ys'-;./펏ZG[Us_ϴ/oJĥ$ 1*g36 ǽXui 3:7Wcwud^]$E!>fpNaV7?Ph,9˵k3v]|C.%pLhېCrNIV];spbiktp"^d.=D`m:)pKCrkd̞w_5kھ`qȍS!; =x6G)Y޶՝+z]zd ϖ,Q3]=5k_X읞5+,&6 U,r&^$y ]wY8Eΰed](0!8fM٫`!FdxNXl_5^0ղ4!&;2wȿت#MHTNZc20kyh 7G4R@B>~u/*JA]rx[.Nu ?IԦM)Ѡ!@<{W6@=lDb9;V_LaM$(EoDTi<"=$K]=Yr턶vkvuvU׵{:b5c8ϳй9-B8J 6$U'DnMϛ/8<0]ɦi7]L>e|]S?^XF[1rqO!>YU`uLvbdlw*Lrh6'e$ѳ޵qSâIrՓq+YڤvrGvYiҐնML~mvW޳MOϊkWtm_ܿc;A?Qs:ctuHgamV;<4E*z6&Y{?9kwԦw|mܽb}ֳqugg]c=MձTBG׺u]ybF?:S=gu|y/K;&|S#8l$Nx}Q{O$-<<^Tɱ=Knm&5kd wMFVw]r z6NQφγayӱ5NFL"ɊSͬ,um[_|gDc h! QcixYɧ3 uu\*Y3URfCԜ(M4k?ՕZ3^lk+4=]l_otL Q?{It< WYkָG-ڌp>q'nYo }ouwjmmcGWČ_Y2  b~<:]eWwixszծݔͮsV^=p+&@y}cm׊M+vBc_Zc _Kt v)h+[4TmbԺ+R W&X߹bc Z[[h䄋 b|'J*~bTAy_ݹjm|kk eR1~\=Ij)np~z,bMN*0[qs=c$r'rӊ")xFW8R 7'}9Hzmnh[[\sEjm3?(B]{d*Dr 1+|qo-bpSOrsdwj$Fiw-R'팼ݩ$G΄N]dNʵVO9 fɧ3sSk9hqt96_)߀bOf%$ -+3iͷwQl-n'`:0 fŢo~Y%p9 eZɂ f,+6x?/yQhPENxϩZ8A$gALǫ5Դ@2YՐ!&Mbc.5Wjm:} OFz(߲9 e}!} 춴f++>ސ)97բm6X!i*0+ 9)IP yf;t[(쯨;xV3<02td(pevfKc\M_NMͰ RS\f>+tȟ43o%/K[91b̶5Z f-=̨Ϫ 0ٿ8Fث(XBf]&"Yȵ @3 Cݨ{ dRS!XSu#sU~biϑH!-F,-f-F7Cԣ !xQYYBrh$6;,̕ńq6y.:/˩e+.18ˌZsn(~-s7cjzr7QyeSLsr V{!v>/#v1O:.bU%6l@k5}c귝ؙ;Z/w;!WP[t[X#X7dP9m;_p.]>fjZܭ>b鷤Z(}FsN䃙O'> tӮ` DZϤic0ǧ\9ĬbɀmEES UJ)!\Z Ҝ*y!RY ODj׫4MR3ĢcrCKV]tb9lqmVja}Embh$K92_p5H/13`@p#w2)t!0!zk:}KoN;+ˇp=*msp8䗵̕pwnh}ec${]GcX@[eʸpDQc#R7sz_yNGOq"w-@%7%8+|ـn${c&>6:/e= bevSm('[C,wsS; ;*@ySfQp$UNqUY%A 1#EnG5 .Tڤ]ojQh0׌bH-HgIf85=80R3v^W#Iδ潜8-ܐf}1!t\HedjH5ٵ|/+_}98F% עʪa-BLZ\28u6Qlv ޣQЮrȎ&3َ}D4 b(y bNN9E3hm3O-ٓPijxՁXH%?{\!EҺ]{H59=:w(6a$7!YA2mo-r%/ hRV[r ʶ_B*t~y0FML5 0/7k$Fڳ2 PuF\L(5+lȿFzdz>CP{Ȇ[G$\֠Q7` P~b?nf%VJ}&*+4G LaՂF\0CY;Ս8R"`ӊ1(+1̸VWQsK:coK)>HEzSַ_d3(".V!T" 7ev^`X4 ˪d؜?`95&A5lUތw.4<(XDz-+kzq7tDPfwoʯ%چ)Z1nh37h"( @ ͨϑOE:ߓ؆)թ1w|A $H{ ! su720;[pXX7hI:n'i15oj[>(mE6 gP5gFڿJndnC_eX>%nG-`شpxWK*Cg. r {?,3%* hTݜM d='sdcdIna6E?ۢc@9alBn5, 'nZ%k]^ڤE 2F?JdDe< ء!}L$h^ ENjqDH?G^0Qظx4֑W89/ݒ_p?)ǁr} M '2Z3!;9-{%iW)d9l[,D4iyerYId/:i0FrG4I~IIʕ>) ŵw4p8 8rGKvJ98k6_'OK_dWWɫt@֧y|r/y^3f]x=Ȧ/:}YUӒB)ؿ-*A"W?Qx_nz Ռs=P4+{1{D: }́leb6@9Ht=7% oylk])+FVCRkF\+/bZvsC9WRer}.wMdhVdϠJ!7h{)N Jm8?2A] 0e$6W/6_{^KM~"׶,us?W"^BZ!̰s'ooΚsѴR$o^'g(2g4Z]; N(svzrkTi psM.aiVwU'Y5ϱj0PSb+zG>||7pgMTG)^R4⻽Xm44>gwpcIQh9fc8]+F**g|L~ QQe~td*Q$/tR77 !do~(s]1y%YwdEs `Td#\Uj.b9rWyLAP.ȃ`hQrT"(3Zf P7.w5,!+ LR/rCAB(%\KK\yXHm:11Rvn"XԐI}{7d5 ,Vbj+Pi&Sp@4cZӭZuD-ԚZ~,02v\rX"6D)/X!XX*Qݘ.1Xӱ|G8&RV ENbߧ *j}jL5EWc4ݝ a\U 0LS-`<#OB?'/ vi,[Ǵ;&\PL\E`(Hb8&WYGrIO#'ҞGcd8K]=+<%`\K_2i'Pnb@ϲ~n~#gci?_W;$s nF1i?ZiKOZ҅?Q+2H259x},k'4[/7X/ͧdK>6<%`|޳~6d~ɴA] 49Yw+[<ɾ96vx<U Y aTR5_^M^MqWM(dtyiNQX_tM8H}3n?V6vO-5y2H_/>2T $Бe)py(ѵH:3-E3ԥ+f (XhC%Ҟ׉b ] "~~ڽ CN`" \o86m= &D*_\44}qVBt5||_  C1vӨv)=\E21l73酲Q!u$ES$6 T3_1|'qR):IVӿ4ƃK'2юqu~? 5I5ɖJzi0Gi?'5s0G[}`=SV:Ģ&TIiG:G` Q0ݔlţ^Is˫/9F9LՉ|0qJ5oz !C>;b?Ԁ6enEэ$ mKAo='mYkQ-5_f/" CI2ĕl+&5` 3<-Z f); $z0CZL !nΆY% Av:`0W>Z؃*_J~##m4cι4WB8#cIgzmRd=ANEMLRtOLxQ|;k*P0%$Gl<ٔV#0tkQǍ:qGزf.l: xdcJJDřuB Y LfP/#_ 'tɥ)8'[0N?`;s2x=nڟ}"xVnN9h}X3Uޜ;%0x?̫8L/G%135-& o+5-/ۣAjk]aWR˪} Ju7l`%j]o[f'›"![tnHm!ie q^ʩ_f; }*Uk0k}oL|5 f?׃R5S7 1U^B1S1s-1}̔ǽ|ʆ4u~XN.4ľ%oP8!+ RmncB.j0b:BQ*՗] 4$m:Y<q17GU(n B*(cJH>7] yҞU2=J`h6=cF`*}31.)1$L0^Ӥ@yZ*5I24׀]IYiY;oWY$XYZP3֗`3n0h'#fn!8co><{?tRǽkIjhwW2[p3&᥵ ,&#yC.B5WeI|쎅i'xH* @6iԦi0.K23]mx֢ʔ^ک+6mh`n]S;1GELEi{iOcDKn8>ס CbW=[ ;?rq1YJ޳Ӿ H%rwg7/lk< h(Ԏ`< H? L?N9l}.dFD%`!r'leˡˌ S#3?;K7^IaTmaԈIttPP7NlZ/K? hbX`ryÇ5pb`y&WFɅG&đ."gRmU$//8+}?Q\iߗQ,GhA$~TV?H>aiT#e7͕{ݢjfhe^|u0W>_BffRCgc7S뛃Ye }?۴Y秊q>FcUǰN@\-*\Y?.$a6x՚i/@fW!dX;uFۈyjb|lfv؊uʶC ~NGio6x[Ev]W`Aޢr {97%J]`|o[b^m4֊l$LbsS?*쯨<|?"w؈IhY~(,pF<6琽ށӏ 䣙<yebNŽ/;%/wҧ$@;%!Gh4 M"׶M6Py"Q>|kɾx 䖬7'o`CrGV~DoeïԹxj #6Jkbu?;UIoXt?<5mlys ( Op%FЪ: =t maZR?5kU*ZIycxجaϻ1m2րM8ҁ]JN?3Pq#%F.yӃVKu <+watʗ $cApBp= |oiH-(ͽqӎ4e$CۚTUl첼 6pW ͦ}&Z!^/Ym7 qT ӕ` %ZxZ a)Wt %;ty}q:؎+ir+R *#"~t2̕9ҧ4~Ҋ=f߯a PG_7_^uai3;p8Nū*˳&1ߍr{ d4"Ej,jAy)kɦBAUxXТM'b!?,[nMmK_?ق?ZeMz(-2mhDkb ! [ԏEڌ( JOVqJq;ĘQf"`Wm+|T~.f̧r*?BXOdڴ xs]%u]h(Bo,FS.E);G:C/ p=6l_cB&OQ],+{FcO}_U?i&|(d qr۰:d":LB idbM]F,bnWJ,~џnc[zm™RJ\j=[|Wѝ0u[fM+ǚ[hPH?}J}}UEcmcJpvrhgĩMϫwoO[}VckfJ]aoݽ8jxK9Y5)p#_1D#7[Dy-]rs9?\,*#/Fn!2k`жPHsA^ h"nA#?rTdkh+NbOm-5/vnyegBTW궚WsnI+ee[eLH=wS`=RW-c'N#Z@DF"!C6ʖnrb3DYU!TeKe}9@ԕX&9$’e5 4j4gSJ S*ў"74/r~pGAoouJ&t6ȿINؒXq\l%r;hθFas*=I\zP1*)܃6MŚ牝 Q"˰Y({D06ʊTWtvc} !p4 RLq-I~<a':7]^"<M9B#'88y36)C9-  .,2 ys!ʗtjd4}?.lQgLZQ4C( Y77`t Kd7gImYoh1i%Gp`Ks&ôQye[ӁDhōϱ͚uP7C9l[  Hv=}R3oO#\XY4weo,1Xlf0tЫc|3QQ,ûs,!vKvx gjˆ"G墒mRj mXk\PyrV2 โg yr|k !, 㚝FdfP y8fgHxZ;2CP< N"Dx~ŶN6GZDQJqD])7 sQNgܹ.m jG[+OOp:M =7xrAxo$j / =5obX. &~-6-,2BG[NV/0{)\9| .ʗOYA@֧[گjHx.!dG"tRjY3mֻ8 0//U}:i0[ŸTLp *͞QH|hd߻4"̆$(ox흆cșv4SȿޙrgZs8`"?`5ʵ:+F&SYKY6B|? SҮ%,.IWMxE(B\7&BYwAMK?%X9͸–i39iPUe{ÆE *4-8>lN/uTybR7( TП 1=U2G-q XB0#!/#,|ݥUvwRxZ -E#H[KJL[xhL%a7~L0{)=BHg|A{x׷3;#o}~/!>Sؖ:?Jm;kﭾ#f<o}ikkkͫ/5δ_-Z}?d@T' M ,yͻĚwܟV?{VJb;P(G8,}@0GހϽO?jgq\ ~$2Gu@ᅋB`ʉ-䏦!oa 3?1W-C3ު?NȬGO<4!2)UMPNAC'B @*I??1T:b&4!X!Pu~2`]A'/lu%wf?ͺ[rrC ZljL4$l23SF4,==ڭQdW54@{(.qf4;'SѠrO.Kؘ {ޏ.aNrhD9\\PʅŭEelINhsݣѝҟ=LfO^[6\d#]sK{9].˺lȇMY,_YtIbxPtDh~1_\Qp瓥G!l,C"W|0\D%wGM}Qj Ѵ"ɂ0yU+M '/O|[ix/ұY:BoDj”H_ae# 7StuLRA5Q3biɯbpgmkLfB:TluB4[61&sJtsҖ(h R /CRkoz lU$6 #ervbyM=up>XnP9&KFXEE \ghPY_:Cڒ`ͦ^HG7 +łL 4m |IA 4=>K[6B2cU/'FrՐʫ@4FNdقcH൐#^ngYMיA8I~͇gl[t?b钧|:{߰&'e\(~ YHe(3$i=!o` t[3ˎRo /]7qP'`^#ֿ͞Å<Ng2 #hJ` 8I^v@LfK>=VmY]j;1icpY6C\ZW}ސ-t|/y^p}YM)BbѢ`$$9V_gtyuRzmMb{DR!"޵"":T+@u]V 4w={sRN μ7ce=ֳuF:,CAm5e*OUJQd޳S2_3TƮ6?csٔrYwGp\X#%-ӟKLr)qҾ< y}6-o(PU@ψF%,s+- H@噼.GA*ɭs\*O).%^b__~Ӌ ݖm݋9̡RBv⑅%c-ۀsTc 4nt9|zK5vy/5L*/}Z:gÁoc#Ic[HMK5?q^ 'q5Oc35ѡQ,O4y.y1 .YE?7bmOOa&lXp@ r)з&4K):u8 S83,xV I=;$J&B> /GwURSc[d8M+1!Q abVT>cgM>=>019IRƥPq*L\ _J\e]mo'ltJk*57F(kcpD~B#Y=L,:dj`&tQZK&߭RHܦ=?f_Ҟ-J;e&9ܻj±Ⲏd~Z#Uj?mZ[d*텅 m-!X BD l0c _+2R * đ"@ B?Oi,r] î%q484$o7$P[FBcM|vU0W>"~H/bRMIBn 1  !75ԩ|1&ܖ)>WO $dWc:ʋZFiDʎ=W1!!u'!J~ AlRRK:`WڝE ,ibs ! {Tf)kZג^Qu}A 3B gXq]gvU*U]7*Y}p+aWIc0mȔLIvXkGKjq;r`˄/J{QQ::؊uHb>Ojŵ-}'n-ܮ f-Kq-e> bgXe 8ެB9S>ˡ)yo&ybݞ= f\?d~W33)~%k%!l3/8_ [_!$/_)uxKJ GO.B% %OނmI۾1@hqةM 62-~M#EBXRkW1,sFkO^vcEq{АX=8*cFϓŸzJj6͚Cj?6YyZ2{D)ʦa[[ma3"`P(3_ ZNH%/1勂Mkk` \xTmNIG(& ۂb4y8]ii6Jw1CLmw)Tظu7_B1a'҂3ަQc:(H%Mb&̛1Rrt(iϮ0ݖANO,^{z!/:fl :鳖\VC28˵i++ Xyy8T3bH˳K= ˻' xù DOڟGfac$ILi-L&DˑuRdhc]Zqyn:oJڙ`9iF-o53>qMKvqۄFZ1\19OK/Hiin3l:J_=&b [m7Eh@l<;(RAe)^oLըF7 Zu4Xo, +䲒 +`:h/e^w(X+ւ!vdOlIp~z; bǽelȑRwR0iLJstd,?:QQ)-A\oºTp SM)g3CAy e=\i6[it0'O7מhƱisqqgA, }\^-*o%y`l7J҄d^i)=#lb#=7LT݂s|3t߂3m"UMvK+m_gԌR;Nf9fny!˞xV7M!C?vҫǂyZ!V-CFhe+i9O #ˌ`.8ib ڂH.-1_4wlP)':Kf@okņ+Wg^[1d9E9kr5O1$F<4#>4ȏJEe_WSgWR;<8b/R=Q43^l4 ޱ~+CP_t4]ޚN(?IeS%=;=hy~cʝ|bǯ;x76BY܃xJ{Ciʷqo,+obOO8hN ^7 oq;kS _s-Mϐ0M\$YqH]<2T6a w;FT%I :/pdw)}UF4̶d` ޕB!(ʙ\X{.z 7lURkR{3Rߔ^ڗ)KOSO+K_( m1QA{S ͏.El}REIgemiR RW}`>'ʟGi~Epe?rq!+<>G_"̃kbW2^}bs@%*q̅/2F|$K䠵P5Ǔ3sr9Y_zKڴ˾n?# 6YO]rܼU^<9:2dd x , -Np]]S՝8e/=KR}Bif~A؄6YFÃ{1<Әw˹O'A~5օɨ[in@,s3vCzھ8eSm݊OCR 2Ǘѭ%@__ʤk}qߘ\#=tcbQ}\1Nȟyjy3&̑U-v {{90iJ*sٷkZ$E_( iw梆:&SN'ydfA;|i۾]e!G,;#U;wWsn'훙*@5Ȩ? 65fIW츓H", ٣Έov|39M/^y4Q>!+IvJa:g䌃:ϬfIأ)܃'M@a}41U L3Tv e_By>T+8i8!nk7"~:| !a:$wF Ēi4i"I  |erm(e:6|d5YSt ~̲ȹqgs3aل AAm o*aLQ廃 ̤|gU˥3G1SY<&os%ނq1;)[n'ћSm I~U {gw!1D6Qȗlmdhfd-?C~kՓ8u.Z~@Wo{@f['s`@Ɓ޾JNzWWh,Q!y]@%r@g%(=SL۳vm67wẂPgѪJ Ykm'?*cNM{:p+V*ƝoS@Ϣbd'(5KE}\1&.2e~9V]^tVy^_gvr}i$ƾ\z%#4Y7й #575Gra}wapl[U,} }YcPl=ioJYUgG@Oogwofzڜ9͹Q,.5 #㫧㊞^[x)-gC:lϛK Y=Moi Kauۋz֯RB"O\tq95y:]ߵ ֙^Ԭmwq>H?,|s.3xBI)]F<t7Z(@G]g{^~]WW` bf)j%c?qvJp)᨝枏X8box` ?sˬۻv0G>ǔ[w]\|۵>9  MW> U~-˷)Ͷa-쌿y|Wܙ.±E-=3*2m6yS{J^#ΌqJ77 ϟ`b E\PrB[C)<'3UKlp92 Ci4HJ+SNO:o:+b3-{4ZaF;13΂wIs`8y_XX/KF^ۣ\mċHaE=#moqKœ&"FX(o#],[)H,;ʫXaSCٜMM<39ݝI7J$y߽0e HɌLɪRSU4`˫,lUxHݙ%8QCN᥁ L.(Gg_j;8Q H;&Lz3)~)bWX ber6VSV㼿Yo}GAg D~7*ZC^1 e| |-ߑJ`DF M7!}r,j~%Oy9nOh>F r%'d%7%!=Je'[ǤMöΡlG<;"O2y ~utNs1&*pIA5Ҙs!P"y`05rTf[ 2wLuF&&eqEU^;a!&A  .$:\ޛdSbmF1WS 7& c(R('O/=PlORC vfsJP/vXʑR u*ކr?66!< GcQ_n"FgyR FUYv6N ݜMKP@pd0>8CHZm?Oƒk1]DGVXmu/jtF)Mג6:#oǂ:B5K|;9^죥fg爑8֬yP"S9VC]B`v!176f<ea,me(gJ P`fd؁r9]$D]{Ы`LJK)J7]2>.=!+~8EF7Uo넬0J}Ϭ+W=q/i]{KVNn|Ռw)i?dȮ< %Z|$N%}#-2yP͘½Fle} 4*/·k"|hfi) 0x@H;kC*ۏ6 o%Z xV 7J{"k/9e-Ǧ\Mh$u*]S/̾Қ17Y G_ș ;c7MNƬXcY5{~q0+'lE2|_|e+RO(~({E#[X{r{E(,5^|P- q꺧C5 =YHxW*"%bPO. wεb4$+nCҔEz >宭A|ި܉3r(\bclZVs,;Xdv>G)0;#Pf}!I<-/=R[tze༬r1yTRYufv':Cɿi ˬ~&Ry6T<K@*@y\QU(l'A~he@EԱ"@ZlX> *eWT:Q:Sk0Nɕ.x[Hv|9F:t-@嚡=c|&TtXǗi$_S.FuUwm $s,9#m-+K{Q[R+_9CU;!?mOhu<0_i@ &.ȰPH! trl,3,Ւg܌+O̊IZUH˺ro f,-`l9q#"gYi¿f*kx:DB૜E@ͧYcjO]Y-;㣬3ɥI/wOZ)v_WQRI{ҨJ<`yD)݄0Xr#NCva3AFZ4j2DAp8MsMՏ644<ԀM=YͭZ@%{|K/;inyſ$޴Ƈ!Ix Z#{p#/}N~y]0Ptwq#SSQ=?}}zA@8VQ0g>ԺQԂluwgd@/~2 MRH\mtrM9=ƒ33&?)'U>rM1>iLaqS-r]{GʓҚUk;;*fʮ DϽqU龲"i\ճ>cZ/:u _Ň] %k_i!;kn1ju Tݦ,hYӷq|O%*WJR{%|WwyTsJKzQQh]{_6b<;MU{͚7\n9U[gk07;@SJy~voZLbvfIv㸛=(r}v=mS}j9嗤sKPPo{zfy^Ɓ>|_6@<|_]BKb\CWtqaJ L[z^J騺q(t>L7+])!B`/=~1xiNS;\$L[ODlFd[ߝUSrՊKNެP=Jym-ByQҿ0IfoMgfH3KW0YKw隸Q &DH{xAmOy=q=+kbPl]V@g 0NT#V‹Tno;52J0Q[Vm6Xc&"YC\۬]-(+t9uW._CC^_cPBb6>"v: c坹l8)=i?$YC)r}TTc:jiE 5gFHh.W L. L1(QHfE` DޕI(c14Sm fPHe'["ۖUY߀KTgmeswg{v[mrwy~pq`܅A5Ǥ6Mu* ujJ#Kaߞ7Zq[B4ȿzM$ O,(Is^2rŽ}A [W Ao~:hY|B2r6#QHP'}õY| YCY"н-i׷X b6/g嬢.YyAq;ȱ֡)_ÿP2ʷF0_ʊw,,jlW7*1ɜC*+"[~#nFy=~|mhPz-3@*luxrfjIXT.mcoe LX=K$Zߟ˧$[ c6cayyV%[$p$|9#ggJ64,4dvU-B:.7?qWP>d+ùgT4 aK5w ncKۆr%[_* %O4Mc;֌kh|%996ٹ %h&/Gp6OugE~M]G2X<(Yi$ޘ:{hԟgI&POk-3SћZHֺ! :M.NF*|PV`*oE>ƆR^o436 T3EEo(*򊧦$L6Ʉ5M: smW$'& #(-LC{qpJVnXޞ9/?Ird5Dƌn)coqꕎ5o./fW*-7%wh37Fn'U\|Lx:{;aof?=]Ax,f:,OgYJ@:`JUՂp1dNouQL/˞Mxy&+OKs#5FK-dFyhp D0)fϩr\Pm2f֩!EGKHVqZCY_*p*_JQR%ֹ5=Va#( HN ͦ9~">0(31' '_6!/T6C`{`gI=<5CyɗCj2=ʟ_Bg!4/_'bv{G'ðdZCa w(PdYf#lhĶ?-cS{(dhyiXy_w'd"FT޷ C3#ӚL9{˓Hr0C;_(83m_3[[N_ݥgZ:_xFQN+1hθV(g!9~R$W IRHYISn|ۛ69\Z򂼼dA R$D^8j P.~+p %8, ZMBgAi=IKQ^_Z*/0gg1mZhV\@ذ|oEY5Oyɀ"fV'rR_ dQS,dd>,2]wC\GE1 H!;NȿP9&kWaᄉSJ p^ᜓWY׺*^VOɹR$ 3$!aS̅_yG"71]AͲ(9(圥3{R|@9?.##ώ'+?m*?\v٘$lϱm9`k{0G˟N^~b[6#6&MiEF[U6!ymh5M  NtPJjтlO[;Bhy0KIu3C NNLKSG5 ~Oqf,7gIW.op5ii/ erLki _I P"X!:ҳre67g!Wt@k2c:"7x ҶaN?S=%і=/Sq!ghHޘ_w *Ȇ#F.@5*?իw~E e /a:좖$m%#H AM(o: a1#{-xdTJ5{~ï߬|b(5bj ~15*}T$I2y¯<Ş2j ϲh>OdZ 6-2p~ bm .rwp%qrH$ vt1XG5l\B@~UCA^~jL] ._|N?t[Ymq=>y!o+X$"ayVN{ ;kL΅ 2\藫yvbmO;JUvS `IzyِyݽI2d_(⻌"Lە̼tڃ&um2l A%34 %/hK AeH~F}L~3CܦD)_A|?)jNbY]FM?)W64i#*Ι#bY""ȶz֬FE]9vs gpSPoAϊg D+tZ𦩢 <"0퇵鍮i?+,.a̓qNhi*Uzy˖=$$? y7 )e½˛*2vULmjx*ߤQ e4Sy*&ۚdͮ$P41 G\zy 5TtH3$iu: ЉH9hؘ[u5oNCk@ ł)RіV*Nds+6cD\TK:/\*ijlL [h>lY<1^ d||sfI'}xkV<%K2)rHʽ')kq碕%cHHݑϖ_ d6̖3g/osmo1kXY(`8e ,+`cu6t$0j0XD~n,ϗwGibRn3b;I`5gPn-9W9 ȏfLRì%{Gh`nLne|DaJ_(kSs%bp, [^)ϗ-A#}kC0e)J>IXiKb*SW,őUWx;rl\n<yEfw'u[ҩ?0E0%j-ߤܵ%٩Un &bR|UeX /wM!ٷ%Pn.x/!J}h*m6ش?Gn UEe=7D50`n9p rGtZ # wJyp\ՄBmNץ5GV6fHWv9l7eȵ>Ў=='mn fˇuҶ\F(M̱ua)d~&_r1%s.3y,}P;#+-j0p'K ?-`|bsن6YU6n8:jc/f_/ٚr߻Lk})ՙF3T'3D̖1+%YJ5Oۂ:TM 5աa}!YDЪ@6Məc:ˡCym=zMӜd8ŭ_jF;_1ҌK(ri`P持:?ز_޹dHIvlS;'(ᤰP,۵l٨Ly2/sF:m}v}B2ep}rP*^vmglgD71[-%Đ#kp9{A+ f>)!.ftV`//̖w۔Lh>^n0Z ^PnoI7BHD[ZGz/kOx90nmөCg~2~1iGBloӍ C-L m[{`ИRKkP'B0P] xr _G$#SYרfTU'Z0 FO'>n倱Ѵ3[f/y/T%3DabfY\ [?Ȩ{p0[~ɗ1 UjV72v",{~y4BFY:Ԡ #_ERwY LM)eWD^Xtr)zu+:T˃̨lәWy̨|ͥ sKSfZx FI s齴HLe8<3eF6'L(MP%32gQb ,wPvegT2е']a׌qΙ-u,:]pb/Qƴ6-O'T]ٹ>yׯ;³wvόT)XYfξ.s93'vtH2ۻ V?h>+ < "7Oq.0[~ڏ5zx|yI~ ЀJ 0_噇ЭTI;/7jq'_eXRxSw~΂!9Y ;z [uyoM>o`ͣl.9R#$VNױXH:ْM▸"sp!9!5mRk]*pAKRaoB Bm>å#RzoTIzK6rM5{iV!̒ e@޲-ku01ྉ-;ʣ+y-xCe%y$~?eUεUlkV^eY3Kh^岬iy@ ?Y R(UȪ<5/\2 %s~%d+5J&ts3, s.@y, /ONyīf҉/4Kr6e4jC&8 !c))ަ䊬&1[~ZԦyb{^?$BXvbr>1۪r(ӎp| =Sǒ܋n\3 */ʶ[L.y9EbHeUNɇSNe] zMS3;@S]E{Ply3#oOMka9mafTs33kL\[%Ifbު-"6R3/K>;-~V^ &C [?0lφ8&fuNQ\Œ,{Y2*07Sf!RyC鸡=#|; So:$gI6+@0/oLOp13ߙ["bM=5kP}^[yƲuVn@N^V:95H v{nd#oB7Q. *{ƴ9ʍ~l~?9BSJ+/˵_VrhYDq&=.EcȀ3ԇz2mN[oڞV,8Y41`:,$ŚuBā=*1Ŵ c)y'ź A9[UG^YDWNjKl׬˱ ݥmy,Pwܫ^#$=`+( >+bxVFoc/ eN>KYEt8 R!;9T#reVN3\joJCuVĈ5Prz^6gA a&s)MGrL6D(ʼn1TCl<Ck+EFqf8nш:z:7V T_9ʍE'$ξEk+=YtS`&+,̓H *;i %:.^sڮk* R7Uo]gJ?Ezַw=>aNbTS 䠋'?؋*h;R>9A}BJXޱ}ޞ겋+Kio[RzO e2ig CUtC+t5J *FJ%V@ֹ*'CΊ\@>Oe<}Be8пk!g]'(Ob+: .6I k벏ˌ1 ׌=Iw]iAK*$vEBuIw,_kA[2ۗ@]Wt&%&mKFv 4W]K%ѣQy U{^F Ry=}\>Jѣ8hXA%A\k8,ÙAq負QJqjJAf 5dy^ M;8 uW 5JCϋ 1/H=}fh%>]̥{^_ oAy =/U[=癥L 璆FڼN$?4-e؍n/N!甇\\+؝yiKvi>:}EiPQſ;;$Ŕ:oF̨gxު$~hQCqP׊r$,Y<ԦQєBez\nWIymiW1l4I,/Z-hLfs+г!L#4#mòhI@N m@AN'(Q6l@ca` ffHšؙzmGEN:P6ʅ",i~2l | ow1w=z" p-c"xBљՐ7DܒHC4IJТ2LU6Q2&TRĩZ4Bء dshmr 0Q4"NLTؖBl[G_2y/j!qWl749{LVA(CQ9kR i5<%OXhj0|rdV.!/$"3V@%+8u d4,Xr摪|1|qvfmLht9Mcm+D'ME)҇։7~I rVmEr<ڮCjMvwIicō!+l ]e _yօ=z=,}[c+LGIgiQZqSe&)6Ra+7bMrۈ4G@m?oaCU d4L:9 sʶ) LKșn5HǓ)]o O' L12 f[HH|6PT 't__ r {0bz;Q8ZڟDx6*C$կoT_>nq;POa)SzAr]{eZ6bY$^PJ&2RvҨF&<޵!m?N,uu&-{cZ@y#TѳMi{+-(OQ& [XWasg(hfF?֑d.ڜB)9JX_Ȗ̃1Ц`ܷ5T>._61d|Z+&MP2j˞˓ݖzMߵzkQjV 'n5hS֬UxJ!HWh(?HH\Ȓ PިZ3*=v> :0c)eeoNkgH4vnt2 ޒ֜||Rځ%Jl).z;I9\*UJ-P(^5;ɖ-&mA@[).`{4Tȼr0ueX=m3*BSཥ⿦Sz -kIH OORGNHRJ)5Z%_7,M/OWJ?zl Q0yӫ S0}M|,;Ҷ 4*_e"# [(4l~@E\[HƶT/_$[ZM T~scZU˫lluoZUfUTvVַ̦ub5UѸ0DSq4V3KEaW*0P~M+4elU8vVتr>ER_!\JؐýoKW]frP 1Qtz5 3e]{ mKlaOޕ09"3b*N·dVۇ5it6Uljk?o\lڟ_)TυML RDװTklҨQǵ0 =f{8(F.Ci ޙuDx/7>gF=M7P@Z/&85Bs/1@s{)G{)|zc5rk7j^n &RGQ-ɥdYB"4H|Kv׷dllcZlBFl܆_ [A<=V__nR-K$ QNz֩Fmc&@ղKhrO&7ʧB= Cy> +SA/8&/V;=Vd\ZHeA_MI~oxD R;˻eS欈y8Q̚4%rC>CJ噓mnVْ `3FA5144˅y EfIPdtoDv3ƅh!g3;' 9Y*N9YpH##cB.>jĀseEڐ3=߹ kj8jxԶ^$qi7>鱽)/xI<87M mD<ӨEZGk68a2yoljeޤs{4oyӄ5pzp9ܘW}GshPn_֣c \BlF_| ?%Z`ߐ#_)wm8N6^cZbdX"`eSkZ)1io5R4 IHIg`0@MK%;yРgkz| b'GY]4` _;_6g.]³d[rn ~*2CN ra oLk޷w[A4"eZٚ$ayxJ;j eeW2R9f}b/2m/滁(4OX0qH_(e~ܬl@9/,k|^ cL"E 2-O[iҿL SrfZqG"x91}0.iAv>.8be (/p(fmH1΋1a"f -;(g᳻ȕlڕ$۞p|w[ ؕ?GAW~S4 hnhͫa7 WJ躁ʝOng+UzC6OK=%[b(5mmPP/,r57)%DU^)wnfW {R-9X՝]紡餡 HEmJfL) 'g{Jh1q/i0ݭSycp Zz1zVm e~H_gAzyۖa򗠘M(ziqOr=umo2u*73ۏ:AyW>x_TY#(p S'Jl(p@HՆZkL7l"2l `CD6el<$dS򛹠ri)g 7Q z$<'=ޗl5wciݷ'uyĄ?+5S)|CcǑސlS)DCtNxQFrd(Ŭ,(&RQyΘXjUKE%ޒUM #]o}l+ !W0K:xmC1-|9MJ`f [˷o.:>.j$ Uukj庯T0u.TqO=}FWmOwU9jU L%HO;mňGCD2nӌP)?ۓ_ۼge ; azٿq?jlD$^-7VU0Mw߶ 四e2V;8Ū:[0x0^oRY68]yH.\_syݤ>[TYs@+P¼)!8 4gZo&q *s6pވc{&VRڔH |2YTy3Ha@5#Zؿzw HyA~J2Ĝ| 2Í4[-Lт^ LVf[N3i(K9}?,\;j!KoeJq+pvP a"wm.CeGXvdȃ[[y3Gy m||"ݘ/sn 8)#cM૪sY9 Z-OmErp}}-txpF!IH\HY1`:Tq48X@s/A}D9gZ{^kBʢ=7tbBsӽNeQ| Ηk4t\3baAaDy1vU]jGpVa+Bf 1:4-׌Sw (u^gn c+W1ODxX; P^Jt5- bU6GE|횇q,Cw;?oض݁g8HZC]h:oemXWJ b iT ǐRpAa w'vɧg̠/"9i͑A\ u:>xLKdXP vfZӆez$&0/ SJԶAzRqcLA}_bKN] ɾ9ia]+.')g3̑s\e(7`˳rqnW|@{,+j9QN ;.srV ''Z7krvɊ@aqk6<[1P$w)rj] _ I5 U>}lsp{>K$X*nIWQ.f|F->8anG #i TT=~c#L'\/pJG$o,⁈BfINb(ԙ<`b8+WdڻZ3mil nĈ7Di=FЕK "ͷ/A_+}Ǵ/'e ֤bН9Qt''<<ˍ1tͦ@nh$Q+1?nno*nۧPޢ#hMem ;Wi4!{T~SI W⅘uq% Y4t>X5ڋB}tYA^V Sƍ.G0=@ aXG5$ZH} LXíEHoV:4ص] uqFn\j!+^rYKGYGiS`oi,n0@ jSPvC!^MҺjisiTHZ ^֋A)c>ͤCm \8|f.f62ݣٍ T l"ۧSrA}:UӼޒz^;ȹRK}?FŪ9Zb*7-N鐍>sq$,+68Lo֕,ZkurDF˕ewX0qu2](T^(”&TY6yJ4 *f'MZi$< >d/RIV ~Qu!ne2nlyOHML3@o^Ч 88p0 Hnxo}%OaE*2Цz$2 Q].`a~7$Ůbc<$=^7WjlmI{$';@i'ڗٍ0!1+C{'Ё#>{`;TeC g&ORiu!}\:0o`υ zHzh!GM(G?"U&Q ˂#L?*aIjMĘFsK=,УVӷQ >:<WY+GΪ%h8}8s ]S ao6w0W᷊#ʡݲH .j]ۡ?t1[Ze,ȀhFx<KP^':a}wtd ֛|sѻi}TtJGi1t&ejRv]A͔1(1}8CE]4ZDVV陬>v'Txx;gCCbk8t'"}2EVdy}4ƮU,F l*RU {V/ĴR[Ҕ]1uQE.+cr#Xz#Z &YK|URS35j(o~fxnqPJ7&@ bcp!v 8L6NA~LK #x`k.+v$amCE;B=ԡIw8/)f㚟{Ϸ+aug0>$ߦFz7@+bH|=kL*"zhN:'OM[Hw5ԦfCWdSdB$v=( ~ɒ@^--7#vAO@-laW+5">?:3Q?R'_ ',Bo ׆w&@;/"(o5%ē!cHe#ڤge+bwɫie)h_3 kV9 WeiIcp9( )5`)T5Yb2\aN;H j3!nHIJyli"f1aT/]$", e9`c؂={]keW&xp*aS#@`BQ:jJ$u :FzCqb^w>}.Be8֧FUE՗Y,`:,?SwZ8{Apx Ge{^ve>T "L?L` -"G Ω\va>s 4:NR>lm| 8LՇҎjH1'{uJLGwD ?57,ԋ2f}YLUB ?|)cTNw#PӺӗvsVHɘ:%ή]G[N|8H 7d?5ɸ$<ҷC=tV2i`! Cm6d.1])Ā\qT}ޭGT.]N---U"%K˲J~CJvW598vl/E˗;y5$cŸ́0sAԈڰ>JXhԘ/J7a㦅aMmb *7&PWq3C"ws&PA4_b0=٥ubp,'wA6l)%ЙFALk^I2@AbO)q-s] զ" ʏ;7ea;}>%0zIJw&ufLwnCjHqC4^dRSr*%kJԯx_bMe3(01^Vєn_7֙| ȭbyXѪ;K&bvѷXeN)R$((L-=kioڃo+!6q+#w`3fLꫳd2 ^gI" rsÐ/Շ.$ߐ#F7*cwL< 51?)^(=/an~+BF/>&s#qBC~ |5rP Mt\"c3*ƞ |/L~5~77dv€Dw6Xr :Kǃ-Vx-oDdz ВdLa:*"JaN;AǿE0s·dJrQ#/Sn'۞]tʄ2RCRF|u@a7ᯇUr3TAmXig}ž"vivwD+r0<懋,@IQ63t)^HCp [1*ϔ1\xyr= .Dl0.=|wۿ<(Y48hܣ"41L_< ﺘƪI 3aF0%tFdk!0GWxI.L /׼p:ERC何]1Wa|ZB@r,_c7v>x[@p{}`E$,p؉lP|X1:eC (#Z #!6@*ˊ!_DW{vYʢr"hMCPZ(t+ yT+0r~ů}f%La಄^kBqR9~pcF\rObE-E7@7l_K?ө|ѐ.h~' h3_MFu 3Etrb940|#ՕQq*aɁB–NdAEpE=Z$?>g;6cA;IҨ_@-®egTvEm]%L]hi(ȁ4SgX WS]vU5[:S0G< dJ$LhUL0ZJ czڦq=Bw6ʤLWBWk$6ZI׬B)L׆$W QltqWM?669!4B{L R}O06e0Ǥn~) ҅ȓIۍ?9Ԧr/veV^*Ƶig]&Jmqx<` 1 E pYGo݄,A_G x#.$$`nrm@>Zme/ \DQQq ȤFR~`$H$36pݏ2z0z}2t1ILo)j@>KDJ .\i/ w;[C_.&Snʢ l azqq%6W{Ad[~Kb$铹ijh'-h(H.>y2,il݀{DU=PTAׅ)+Gdf|m(h[BF&71͹egkCa\4aC[KXlmH`,{@ܱ8K[oTD4(iF!|W7&D!rmV.qvj>h),U^$ ^~Ę\CmPğvGoL* i›"K74U.")d \d"W|/vSc8l6Ծdsqr &$G=L8=2*P El%&qSK";*|wK e/)0~@KР(XO#g[rC ;o4[ 'l1c>\u6 áʥ߅"1t %t:X2Cۥ͡Ոh\ xO;G US.Cě?՘E\>}VYІ_=GNqB@gKT:K`̣* _{ ` M~} VwBi,oJjP, j8%B+mp\^9rNM#N%>0PAІ]"hS֑@#' ,\FuMI *뚰eoC@QAZA=p=l>r"B4niJjP-CCV -lKp*^Yp(r%])=MaP> 6*^-0=9N?4%5`Ӧ7l:('DU.='>*7+n =ß%aU.yɉaSS`FOBERgY̭4Jݾ|GXC[;uC;'&*$xঀ[NnC z,I'$Gx`!wM@?}9B ŶOу4;+ӈ su}#R@8MG& ~2d芭G+G.'g>JZ;|(dŒ?}Ί@VA? W|؃@8Ӑ#"lVriq?:I 8ǣcq@DžX:-Yco y[c{J[_SF{Xk+l[BO,g[ūC5{xF' = +N Ae@y*o@\@')Ybs+f{8z%6] 4J GgAy:L'1r!BL :YY[Ȣ:! WGς*llis ieSa98Z_^$> >#8Hp!Rwǡ36$"ex7!+P8ʕ0'x>B?Qu$H:#ݒ8&6-H$oR \ݦrBҴ3з4yBa{nz_MBgW?C_U9WCZx}uRmgPt~,$ ,pODCBQQj7$")55 NhE}!cO,"N8 M߄4}Co?>FԄ ">\z$ *6^Y0oy%gڷ_:0&+?D 8eٮ jg|<6eEvéHcyRayTFb#}쳾dwfQpyJPo%2}YI Fx`l J_^{iC{d:Y.95D$"6q~:Z }"Tٜ0”@O 4f`JjD<9HWPI!o; 0`n^JvK BvQ}jqox> >T a\Rtݔ+a^$kHp ؃q_,3oá?NHá=~bq.ĐPrz,;P"㨐o]a{5%?|k6mm=,Gjy 0f`Y-IG.a:jS5EOXG_Ed7|ܨy\tfԺUF,Q͝iQsGX+n3x:5N7x5ufcYvÀI'.ZtAk-˱'28a<<WFg0TՑw<qtha BVia2]/>F5#M 0 7#}/eʥE(\ptL=#Dz覚۾^lc pyRt 5K#cW.:X-S5:ߠ,PB"푃3Mb%QINtWŴ/,MCtqߡxtTqp_.=QtGc;U.=s aԋȒP*+|5%̱M7rHQ@f!6D9:ۜRXi rzbړt* uCLd1KO4iY`ǬW0C%$qaw@n&σ#4=BTX=rT1%o &GEԽ/[)9l.BCpl BoUl*v[GSYpy?J;Q}”zFW3ݍv>(~݊3LqYS`7bva80snBKSK]o74ɰ {(t+<]vO r{z!L}gZYaKwM-$Pqx )fn[H%gl@{$'cs.YL{-)d32$'D.,1Fكk*;xAzR{Oo'i60N*႔w%~D]pӣ|0  Ftj)B9O~oI?L%QCUM.Ar((F0 0bV,LЊZ`cTx|bnMI$±= GBץcR]U,w NaLzPh鸞TJ7z&c>P(}Z7$ @2v?W^D%zutV e `$1Iφ"l7Xx8 q2P'Z_:D{~`^ۘإx݊V -3]3OJzRgg y4=tz gʻAwSGG2:e׎ӛIB=4ń'U1- raDF;(V*XZOv!]ߔ7/߁5M33 џV̂DQYmzĖ80]}* KTz͈ZJK).b^X8ŴQp]~_{4Wc?󒟝QH~UK ?TD44˴tPq$m{ Gڈ9W^V~rǩʥ=5< [p~:'S*t~|ڰCmHnT.=d?9:A͆$bh$/l!oh8^wʅ7p ^6~){G`spW0T^JaSD>sY4BG\v uItnK &lJTtѫdI~j~(\ң,="&:emOD/_ kiu HXf+cd`zN0= 6K͎ݎ4(=F/G3vWo dj30 >Aڡ{VѭÒDgοʥ'o(IKV{yدV)OrJ#9[rjT."A [[=nK>y0`Xl°+Rv׃7T򳄶2Iy"ƠA5cx̧Pn8iB 3Нv>0;}:t.SNFY0΍w@XWlQwA:߲{5|˧s,?/T: S< TtS_b~t{5v@*B':yI& i RiOŰ͎FӜ8=4Q:<ڧ#y9GHZ^}>VQޟN_'-ez!fNk?@g`+zЉ)96ͧsk@gP.pJ}*:q%9й^|2U~U=.^ |`:qN1Ot^EH bҡ>![KH軆KJJ mAaq z`ranE^'(U=ߔ^iQHb=vnpّLڡ*~Gs x).1fΐs<ZJl,. _&h4h\<}4>kع.woOghϒ&n,ccv/l5`gA44nLAcmji?MbR_,k1F4K Ãv^,AxxEz١P ewf-wwrM;an`WK ^x)6q3;{evРgCxAb ͞PEԌUAKB.\&}v4zY>ęVB+hiʅ-5 ^Z,P AyͦƊIþճ((^z ;~}WCj(YRCA M%އ&ӵe'2ttyfҒ>LIKDתW|F>D1_YYLCB~F9.h0pp1bg1*7,;1-kK'5%!:5 wm3^97g!4q%= Ymل/. MJ Cx=+,W{_Ix1Bv1F(1_b`qܧO#II;pO>\@귄|+_BqvBPu5\v=6*fO 3 xb.h&;U1]8?,N.̂|(:..߂C=Lk."Môga{VG_K,:{n)Y>a ߗf7ۀS 3]~oZ`P͍xqž0R6~O'qpK)D%c c,HXMRQu(vɠm~m`&D6_a4ã8SP?uP3cZ҃@ae26a:PպY>.jZ]D\z SjQ?u2&٤ ApM\z: m/wtcPf8%-1@AӸgD#'MLrv`}{$ ö,HUC%X>Eֵ[PN]{ Y9u8NU->ZYP-A׀e0ݜZHY⩖X@ߪϠZT˕WEjYAelqF1|7B뒀bXգ\: sN,jBo!܁n m@ʥ,xx!}HG_\BUL/׉L;aI?'.E+q%,I.0AFڸ ≌,UL%El35㣳 (""K}F"gCrkMawc@|ntcQ6,:϶])Ē.^Ve˷Չ|]hV]l1鴦R'; KM@R_< _>{bi(I H>:6fB]ҟJ`ݗ-&^iV$w׵;T> uFYooslHSzc q#c@ͱe}mI`,F ;tKh72hNL5F%-ּF"6FɈ.C [''ޠ`hVT9Hd^뵜AQP3yۺTRs}yd]8lX_E!\jac^LPVSS&zwpɓƺYPq{%Mm  -,u{ JHIZ nn?<6? MH֧'w\( tUGs#終΋yG"|ʺ#e1BEl/Leaz㓋NTqT]z$],l}{@^ |1D(]kԁPX 0IV~*~iۑt`?^25>M4/*ua>MOH a8S, ~}TWāM+%u:fA| }'OR}z&G7k=*˘<5Jّ kO523$=h@}8fϾSё&=r6f$<36fYGLkuͲ(.ğq(KpV-cי\ZNYJM%#ݶ9QZ:d_˅cݐO4v8y uZuJ U4_FdT .G®=M2:X>`!(Qpm`YBUa?\oqeCsōg^Ʋj SL]!z e{6Vka`oav/c.t9fٻanefٻCp+mɧ^ojlW$eX&z5[5uiޗa+BWAp[V[`,}wV"}`=v)9%M6; W$l+eL_06ɹwre`.t/|l U^2\.0M4e91X'fZ A(P'*JWEv7ڹ%E: ԅm k0>r"8 ݄?9}{(75-wDvn[b`4;68o^*͘5=u9s-9r@R_xGnScz^@ N 8m t:τaFOf>Uo67~똛f_DG| yI.ËonZY7~TZ3a$л0!L7(@ SB8 P$>04;FA!1+  CScw NW1=tPuފ90iq0?/ T/~gLS7zV~"{aj@YhwqS+af1!~ C F\E2ޜI=?R!mXfA/M#{nuAgep6!,fC]>5r뜴JMs?C%v!`ҫ+r̵%/iKm?u DF!GFMCuS.=s)W*F]A/ֶKA_;C۷:6oOG0WUjO vٌͶĿk,uEck߫'Y20m "Xycj?ZdScZM1uwm1R A0ƔiRKc{g)/&]b@ e.^F !<͵Pi{ wZ[+oDp H;t]8jؓ `cZjVQp O )\CEH p-_n '%pc){̉~qERRF6&|[cI݀+ :[ʜf&98,4,m^ڌ̘q F ٍSCIQDx"t>/-p;2yޔ|Ti\N^N) v4ThC6j xHMv yk( ^XK17ߍ`"hTVuׁ+4(BsZptzvᅡHl?7%i9/L3㝥r 4r"2{EӺ2ѯx!;-4~V 5}Df5?V]4[ 5mf[ء6hpנ5ъh&M&:>o=֚GJ-1v/퓕iwA=XZfG`X%8c;` f1=-sމC\C!dGƱ )|]|8,:1ctk d#RMdʼxh!١Hi)G7Fu0\xEh+T; k51EfC]g)46ͺ.?sm;\+TrVj'~tEj0 ]ڂ Ocm'5n9v}r"Lhٝ:)I!DC:%eXkza2dyKgH[+elGa)I:ՠ ?ˆC#h`H2*f",f$;Y[˾uֳkOr\D85!fKRE!jOh/%m_N] @"20\v68y t5tk@v3ըC1;-M0!9bhb}n8v3`;t6h먾=ʎų6"s,uƒr~:tfNҹ%Ҽߡ(ӡ;С4q :|fɖ̯WBÏAkkj:UdFZm>@?-2o=CөE!")G1  HyC6ݭMzbc_a9TD ~J\*m PC98%xDc:tѐ\<|d,3tdW9 a`\ҧ} We8#9SQ}h!5B4kY#sRm>y]8E]D@(n´"ނ:"rS,5%0,*2\i'5 c5*a:0H upr!%Xlj<@ 1k~ԍm+Ш^.`W?Ko`ś%P3< ͯP?5hnPnT5#v1_}Z=b4Ji6`JîjB_hq^v0#Qсu`OnZswS9䬻й^J*VP2Q5Xөs~Y6 q!tz݄"lVL/1] ۍaڅ2h쎃;DrPt=Mhvho&|P s5v\8k!j<]DnI29vDδEL+-E/Vաcksj9H_}TWdySt jOFϵ%ojYNW 佷!gw]txk;f^ B>Y4}٣z塥9fІ.-Lyb'yRS ^YP}oo׎qv9q)`Cb7.>QݡqF}#\D) kj49y?2)EfUAo`2}QAYW^DZtRn1暉0`p(*.,.~,d'[.%ܬd&PJuT 281;`\}fMuKQt(VFGLƒͥͥS frH$w0zt+8G$5UT=fZ6*'ǁJTieV3Tf#]FI_(6r s#r!XU>`!7y~rlOًԐQgIW:lKBdSÔbJmѥiavƳ[2@<"zᣇ ꗰ,>棿:|5j"=_ScwPx`(}b>>8A\fxHceHqq~B 6BZ8ZSP̞*tfs]/O&0亡[',9 U=0s7" ]/TS$:J C7թ_:n댇^AǷ1tp 8z~2@}z6zA!,N]vP=!X؋h0\vӨ)QL-ܡa)weP$v~SM]w9MτmiNiPD2co@]_r7\, s=t ev\mg*1HMŬ~!tgcwZPA䁿!.5#&ҥ~} E vZ/S^5JM 5>.[ԫ^D2N2Phk60aeEM.hl0}i"UĎX7DUt"PR$y|.i/gHh14?Na5eﰉ{EJ{C@%L,}b(#楼O3U&5胙PoP1,/l1v{]NoZ}  U:bv_mAnzs:H_v6'+hPiqѺٍm_p_"Sh5<lGPşG,J܁=0{zcg|rٞ7hqj>tV~px!B*VIobDzlZPh + , YTY5-6sԌQ5Fͬa[S_9-Cኪ /k+fgx]UeEemyuelU3gf^S_3-KEը Vϩj3P9mTjVEF}c-+S[5:V[eY̪g̨BjŬ9um[VE~eT5r|Q5zV6b˲5xe yb˚6#8lY^4WQU*Ǘlxxt: ~gWh$948xvnl!) lY+jzgYxO`ͱrq`eYYњ9Sz5,*Tceͮh]5 ,fZLJZVyuuAaf˚lˊj, GYVdVEMMEoDGC,+c^q; R!/`x*.ȸ e: &5(4!4]De!0l! @#ЀrrCm_06}EJٵMN~hE vyJ1"4]bSk u3ISaJ2I_'߯яˆpmbf_e">GtSYqN,N*6Ū]|%%@IӀ727I9Xӱ8Nc o0GxO06P&-pX"D$~wOAj*ߝkJ C^$ 㭜|\Q8Xٴia;W,.`{"L70ua~0U?!.7Aڨ)PNg/?ZR6]'$ʉ)EG4,&S[~(ۡW"Ә`V; sLIَ5l XbE u3L/XEt=F1#&8"®CфiyH^ߔͅb9!5NK!G˶͎HEd 0:gΫ s>s2X}ה@]c AHl#9LS;d"̒;a|YRY^;فVQaBSY1*^KMmuE匚Ӹ!˚Y^[[. ݶ,46ԙzvsc!4#[ X1 4@̲O`WNWT5|V2bSk3HXMyA~p\CMUu&P@&6sFfCd[LhJԘz 2Qg[9ӧ.$z"f˪v2V[1W&bDzjcF ٺ[g߀XDnpVFE`PC{1Ns7)E'<0JڅIR BPi-zԠ0p3Ay\k ))\v0 ^~^X2l5@ ;YRmc٥v3M%D1(f}L"*aS`3=-5>a:0 $@>ڧPn/4'㙾ҫ1B~ʶCz%֤_ ݶ#JF~$K@EB\a|amTB*OGRV/)&.Ume($ =NDYʡ"}HL׉Y `JPKr藈ãi8E҉5t\*l%W9Lo5`{]aw 2^]CoBe%=!6ԵSe}sbVf~F&Wv);iQ8S2K=TV)CFLX_WUձYbb,kVy"GwU13MT? QV&S576s<Ԕ"ֲ-rR[lښǓjx>AEgW;/t787s%N-<Ӑtg~<7d@gրθ8@gܐᘗpKu8!xņ[x^:<~2ŃWg7F".`yP1g+f ]8=g7=Poh He)C=AqXdZ<|.upezEۺ,ORU \=si`Pc7;Dv<ܵŬO0 X* J+׊!:U1m6#򖦰z!n*`#"5 FaFl거Ðnk*! d[S۹w#4V߮;(Rh~ӭ~*Ghpʣgp"LJq~rˏ Yغ*V)ZFTm[MIM#ʔ;b{}f?4&זp{qHIrl#ke̎},C1턕Gw_^fݖ/G CW٣I~i44]e}Rȍ^0'Kl"h `l:Jq&(LIܰ+SѨx&tMYY}N]#u^/hcVzp H#諘U]'(N #D6# ا0na~!X89L aIGFdw(E_j^v4llzR#YE*G_=*A2I{4MDia{<狊1(M3ˡsd1M?:BSXPo8Cͻ3ݏK<3cXg9+P [T^1| QH ۰z^c!ʄG($T j[cz nY*F$KʦcfGCU" )/h΀TX3p|E?+r`IKFT !C fe1rŀΪ4ɇv%> kU^@0Pr(: 5b:M\A}wY G14* Pv x㔲,n;ya3Vѐ-]X4@;,cX+:$VSȄ=]u[CStKC@ 6~-H< ŷ!e69K3h}Ƣ[vbYA#3*XBqQ8†>H1%d9,4A7`bD{,;a(u;i_#\H~3'=ck$tLq7v98qt<#~M|A@ﺦ`ٞC;^PqzUSIX(s) O4QL]onP A1(ET.+Q5|W6iq3_8-J!HxK^xlh\ T k}it1\@No.W2 N,R/q<.1g1PA0MP4Yn[D ..;[*! 1\ȑ@s `fNPLo/G]eLkF;7cQ,?鎣gB=*5(eC*_P%K BeӍ!@o LeӽxLI 2 1iL }.t'LVؑf-~bIywnk__F{ üNN_2F4sC1O8n@Gm&z냅Zc<_Q1[v'ˍ1HЫ(y`!-0v  k6iɡ,i@E/]V®3>1Ceg*Gp@E; &ˣKO櫷fk&A˭HpeÖ Z)0L_x(LQq /CCHܽx"/A˭L3ŒU[r ܏ `_2M5*h{Yt+Tb.cɏņUSn a1U/ ay* QzU-\̷{ō+f=]5rɢ7,"lLT;A\mѨ Bv h5;-d,2GfʢGr%:8ʭ|%;(4+p'ʅxTc۠0E+mS^{E뉨}aiӅ04l vQM*{| P,"e c L'jTTcvӔ0$ۯtIg)SMR6rR+0+y' D-v؅7An[x:LC X$ݎB kmb1 D]I/afyl:Qt`6#PG 9g °;g#+-Y!Lk4^06Qty_?脳KTBe[C fT|عsG!%tFEs1j֨5ձڑ3F3nԴYqkWQ5j3Fͪ֝S==6|Դ掝0w3FgVO-˔K0-IX3gZ0w=rcG?vhwؑ1cƎ*7nLH#n|Ιcuʀ:D~>vfORoHdH7p3˧f !3/IȲΙ':uy'ay'!ˊΨUeYӪf͊UJѶs*I _dB@'U̒>&>6[b@<3&6nd{"& ٖ5-V[>k8^e0^Q#beŪgxFtjU̼91vnżWњ::JNyLUQY[REemc>%Td5جTF r"]c>x "ѤcYZ!Dz0gcӠ,hmlf~U5[:Ɓ@hig*!9oP/ꈟy)Q_Jâxc$6k`U3Ӷ`3`whv;c@>4&c>ASO:'OxJs` 1PXt N>8߷5$.8)&V-pNS%SOP3,5i5c/,Y1y8YOIMJMC:5%T,Z_QQS粯h/AX]T-rAxT: ujD.fqKg]g=ǣO$j GaR<ͷ0=Q 3?+}Y 77QNI̤|]p2vlOه$qpbnL;SOW]@@vDI>ljq).A~ch˴VB-☔4r)"x}i3{YjᢌE^]XAXUdV/|zbY]x}֞SCC<& .!<^DzDsVu|RM(MEL|;^o$NC`;Swl9JeEef+CLyyjWLWf"6$|)"&$|Y^ބ}\ ~4D^·|7MעozQt!b_G0:eR;)/nZ< uP0j]DW)/N'N2{ubSvKԔ"ߦs=v0R] aIO-QJ7k~)T=&o@!=I΀PlB_GYaɓxZ8FEЋh}&ٲǠq%8=aIT^){ (~$ _)*A^rU#6ߴjkiezȴ'R;I`vQƩ7Ѫ7x USv踶#~찍zJAY_|1DI]܀F8.NQKB|.7>5:q2DlA@a\^+4Ex͏fx)ߋ0NB \t5Qv]Dبb:O30=VdJ^Ρ4D?l݊LHUMa5S6zN4h&20&ZA]NՑ/}1*Wi>4p4=e"lh,P=!R|H!yW+i"6gSĴJ<+ItIH K9]z[56`( ^"%"xBvmbw$|9PfDe {PIWу^SsWjc}LM+e2i袻&e/ )$H! ~4 9cZߦ"=uuKqBh%S]J(]]lE3{ `?HK^XnԄ7hҚ`IU h-C!ִ'  V@$νw{Bwwfv3|30 b+H"j9_2@fzފ#o*r/73rB;XA&/q)1=ϠI0=ju$f;6N`L)+2N‘ S~>Τ*RC<9xg s:(::e@/嶣=zV4)l"lt J; 6+ySV}"O`aK'zH&*!X:K_`3YK:dFJUp=ع,f2U\z"raZ1'GE#r=4o iVʵ+`\@c\-(</~YVCB-'91^$/rD׾2PJ0Kug Ppa{(>-tS[`c DǒPk$ SVr% zS1I>zF=Ҡ0x{̈+a 6ä̉@˙<*# ƴlql^5V"&ʶXĮ.dO?VmYhk{]ضwTTcǹ嗘&: #\̲9;p"[Tp!0k? pq,~!,P" Ʌ!D$wsx%8bGFbHˇ)utV, B¡V\[DӒ<0nUv: CsUb jtkrL/ $.cP~0DL95ߍ#DOn7~HKH4EE#H( ܵPF(e8(zG9VSdZ/b.51t}J7xHn \UdwY*g7n݁v8Y#3NOvmЎ$vۍv!I^Mjs^u!"Mt&QXQ=RBDo$>Rr&dGf7ЮdE9+\U;M\:.,|:(wsw8`' =ZI3EJ$$n#0A^!jQ/*6a.¨Xm,.cζSJ51SS.igQGal M/ʀ+1]w1mǢңGz*`VMajshD`H+sHFdi~$V9_y]E5,Gz+f,Z0&y˷.lii/DLsZ1AEȨk.`>PLL$~GMU(r$C=}$VaKYc%ۣ}pBErq#0S!L^ZI[6:MNGt$tqGŦք Oh*2F.d"3Ǟ:,:lB rH0D!XRbsĉQP!_Lv~byj3އ-r3u7/]A%gz0/րt qS9[*<8߁H2ag$lqJ$FNt|b,9*~4{Xţv"Zd|"ՎZLIB|xdWU.|CgQƦ( `P8@1)`L!A#D)4 "? >M(<\)5J( JB8׹ϻϮSSuZ{{ϩfeΝ;vlmcòo=8veYkEvt}c8uG.!\~7o\XmܴBeo"dv'7|߮+5V$_GWNa^Ng(7Kl /m-?^r﷣dYΫ_~?!7~]Sh3lڇq&D^ķ)zG<=Ꙉ+wI?\gcj%zuD9\<ƶSǁ03#ldیX i[%3Ks~0-Dy${zoOqbfbrX`AOI^Y{/&_Lz><:.W-2 :fؖ6]>x_B>g2= ʞb+̊@^D/%"8x\0y1G)uxqZ`(4xu9ė%v6iOqgY&VՎhV/_4D߮ 8ߋk8N:֓c10i*x`7'eenZ#`ǥ-_l7ޮqCE5Q&t#(TOg9|ܷ$yDq$.N|T]\/!Ow/}t_JUH/ykVxNK/\: ᨷ9l6pCeAA\S#f 6IZXwG߇$ܭ8ezl]CIUn'̞\1㺃uz5?ϋ vS^9\/Կ>^u>{K3vi_{L9a-k37ncn[%y^Kt= e^(ooܞ<Ԍ ,5䯯Gzin"'-zCSzKuUJ];d|^߸3+n9ӘHx>2.k7YϸҸ<o&|o9 =~sV )n#h>w>lsR$;?/7|7bLW{O}՟Cߎ~ℙʾP?#eKGtͼMZE1]|>`;n!+K{.SP6`/]+Dszak✕QuWI?QunR٭uG- -Pb͈?~Z~Ώ)_#y.g ?XuO|o~LK?v'K?ty}GH62Iqq8޿h|BF.]IyyFB;^"'9Z͏+;ǭUL~#W=>5mGěEʎK6{(kӱ R[ q~cHs|SU]4XA5% kZo[xyѓMczԛ ?/9Z+bYadtyѻ6w{hٚ }% <#+xʟۈW#G-^$Gulh^Cx-һq>׭}xHvV8`@o;d1g >JzQJ[KuA? ~EZ74lRC+KnB}Ut44_R6疸G@FKǓjZ$|]0o).Cwo@%]0t8k)&v |˟7cDi%먵TcU2Z4$ Cj8%~4o>Cd}3_[Q5ZooQYy 9nҗwǹrTNx/='s-Cs۟#|R@Or]֍cV66 3G 0ŵѿ/7+|T;_6H/lԃ P N_$ٜVnwz{ʾ+gu"WnP =M C`"^?i{)w)R/M:@. yOK6 [#E;G>}hA*|MuX.[Ϸ)tǸLqzk2~]}9l.>jN^W_Ł}35CAѹr_i2jZEGCg~k_K@ t(/qc姭2N^xldykxj?c8ȴ_-N"HoċLD~/KLW))_N{p ǷŸDW^M_WLn|R"^Gc,#_Ec5k> ^SKyI yXnjA tF#sҊj^O/1fI8( =l'5lR_#~ga6MgsÔܲ wձ >OC"9Ko AUzQB-SPv\Rl6>$qUlmfGơyz來+8\Mero^¹'3ú&kYZgIECIw/a92@;Ih}.Ca=oW3:.}D}/z3~sMS%y!;-@4֭K -װ^^ߘeL㔂8?NCR3["9Pg W'vy %qs(Y~xj?{!7vZq}z> ^c JjQ҉%A^p!t-ga ;þC[_+NY /QdVo׶'L5qZ'w^"ԉlt yZ8e|CfWq%yVO c,uݿ&~|(qxo+;xI\M[0/SFoSOռa6& Ǣ#9M9^RbbgY5Zf4o`ݿ#~/-˺nx-N_ elK~w9 [%O/ɳc۳/O8|͹3 GM8/s<˪uJ7.0ʂ;Jxx{}]7>\x5k)<s$Η-kE@~8I'9 \y{gl7/%%бVurnO  iNW}ؤ1;xI]@a=_w$Nacw}3їNOM͜6Xw@xƜи@*ͻ@' |,ψ/["|zU~?c:ǟG_^<;;_~ʧ|.x?AжRcy?4~U/[Ma2dE a1cOri5a룐-ZE,WĖ]r$O'>\i~HdxI\}q9XᥧP$~\gyG_C~Lnf{;gџ=Ⱦ "|M} F4Nѵx'7l\'u#S!qZ%^Wm5.^,GX/fk۽ _4n)f@>:?~<$~GM;%xE:]2G铈c_G㧐NruOVWğo?ҥ5ӈ_cZ \["ڃtjZ.XYBUfYTSW?}%:}/;tĮ@_?另!g%xmiZ\[5"~/ z7Ҩ vջ??FK1'!~YdybZa=|!jvCt6x Zo~};X/c᧶d/~~^sKfUY+|A_{񒸌d<y[xK-ؿ'$? aTdw;|>G== mvqg]d5+?W "Z3jXתurH'1üۯ&~/xs/YQ>s:w֙d%vTs4NOd G}?sljx^Oeإ|ƯzC̎OI)#~P/fסOӼȭy||Xc C<,9H:[h%9ڟI 7F}E6Ɵu5Bs|o&nqxߝOdu m+G2#bq^ 𔏧o%^ QBBS%~|d-OFx?Ešlz65S_X~d9kn/K9iQ_HީjB9 ̲l׌omoܑ?!qU Ȁ)X>}?~NM7|0 D'K>I Z яM>rGE| (~?"lߢ\ú2 fBYM ~\q2(I?+~lIb?#^Ro.WԷud?+`C%|E~0  v5sӟnu,,l/;wnҿܢzK֊U,ànOK߇w}k$?a"Njѵn|}Ƨw{ MIV>env$%X+~l`_)Kȓ|n38fA_[5eHݿ#X>x'q ee=gMzI x5џ9|oTE ~_)ſ 4+gʝKhrgY/j={9ҭsʲ:;CT&lnU+}4&"<|$v,(CHy 8~:6?X_4o^l-$'دcuÛӐ6p^MHAfRi!/g"6eHdg/E z:xq\{ۖ봭R.֎}+M/w ꅽ?Ty- ^w]"&?);ۧFWbIg>tc`0[f~%ڏ ~l\6{t>[ίqāpPo_` o=K=)=1{Iɾ Z,V:ك%ťs>a^G>qiYt]8M&>B~,&9[?BM>kF121q'!l6q>Y"uژ Sxo>ۼ̂(17qX~.ƳA{ǩ7AQF[ Ɵ-Ӻogkt跞d1||zOoGS'v Ci<>·GŤ_/,|`>>øZUʋ+/I?Ky;'a=ޞ hs)K8lz~kkxxf?7қ2k}'h7=D}ߏ/ka;]#_wQp5qut#*vqp%?>(I+c{5 GJ>Q[?D#8PNޯu!o O꾈tS>g匪o9} u6KjY&Xg@?x)ChcS5s'̈́7f3?9 ;zc rt{B5 5>aO.p>+o^[V\~R'ܗK?g,אyc({"^GS^M8~x>؄iç>8)B}FK;Zfr>9q viCO$r0?tGF }A$>_O|s8PC. ~xݮfA.pkדg +ltp0r;cf:xpa:o ~F7~b_{ž4O> 눞3f\s;H?~xWv!p!\5^jl-~i<up7W~>vd &սdQSwɖdup筄Ol~Eu:ڰ+)|&o8`138E~)c7|'T}}ಬO"^(̏/@qZ&:?%p.rG$Ÿ]%|r~Y37HoW7TaL[aj| {Vr^[Wc_O ~~+ca(uu!ِ[9ZAOS#֫ғ#O ^kaOeTueNz{GNŦeN:Id k F|x|'maH9ᓾc瀈k6Uh9N`'V&|/h_Z ~ E+иHr]T6=?quQJ0:?]g̞ϑ1U{t/5?wE.>A%~&HWҺGWw;X8kG_WygB.=;y(-uT`)|G=.lsnj?a G˅̏W!܅xs'7T8\"V@Ulg\rj;jݏ}?J7,m&%,wW//Tk&\ /{6HymAV&j#ڨ  ?AE8%?Eq$W;j!o&r13ƒ6oefYv}z;%7(" M΁ɮ:s|4"#:# ?v `.m!Kּd1"˕gDQ]a]پI>F^{l//9gowS0o tqӰ61ř|PjW8N.9a9CxSΒްGPOͳ9T USI"_/s{aΏمx>^!rypq{Q>;hFu/|~oYw$>gFLyѺFqD,x?v7D gfr_78k7k272%={!!k̐~2~b?a`NVNg=ИPGm}}RGӼᓾ٬T#O Oד~>/>u/ s?|}%|+x'uQHĵUo8/zdo$_m|[[Sj/曰L^;|N^^ʮئh\ݓhǁq֮} &q1Q~"^DA,g4Niīه瑌oGdO'S~d]ɨx*x-}?k!sMz3q8/13G٤=+Xpdzӻx5K}vK<~2eV.Z _ qdt%o>/9!⏫afZ->a=臯fKo_ft {bTзiUߋ;6#\W6`2ϴ p̴eg/*}ڐG>\7C}tYT 8:aIv{a n "I// ^5拉 ;2p撼tw;~5VkBWOuJSSos{&/#|\9u'x?cL}弟u fg[='qrSP^ԏiQ^xV|FamG>v8g"d}u립_\-Ni\CO |[g )7yw?sj-\Gא^RϢf{k򌙠!L>17c< 8y\ WP ֏/Y5&gγU򙿞x\.?/+K K~cvx`9'^6pċ9S?3T:gK}Dz%I<|\2īNo杻U\]xUj4|[!cYSg4.]M}<#savGxI^DE׼10>~.tnXBB:(k[H_[I/Ǥ VI7H'_?k-+~^6Ջ"d ~'#{emMuǶ̪ðL^>ᓼu`ٱt6vCO~?>ž*$ýq aOTڒi}K)_N.q$O4kB>~?~E03^6.8(˥[?<2p@[pmGLP7b2xOGIY]wr-k F~`5J@G ]?1vF#?qyq7EXTγn|>I;GH?Ó|~kD6<_}Fz'2x >) k4 ɳ@Q::f |-'qu%!e7L3;`Y%݄/ylkel~d^𑽃ꯎqap5q7^޻ o9%G'ʓ{д{˪N*e}lOy*7ҙEac{{4I?Y_ Zo.3kMMxz}_%A.~xI>hm_|1\~x:InL/_!^RW!7Z+ tYK ܂YydjS`Yvwg }5gaҗDk?yN {r~ '}ݏRw'^|s{}YqәrEir3⏿1иD^ǏQAǒz~?ϪByy6Zѥe>&Ƒ{wYZJzUtZ]T+ѾqDÝt3+^ ru)9ntsp^C#^R ?I §"|'l?ud'(whOU.sG&( g-(& ~ qg}I-,F:LqoqBHqKE'6%AOT't?x]B&9W|4>$z$^+D㭶~ߟC\%G)^澧mH*8N>Ub;5"Eq:ϸfʖy'q ׆3aE(>4q~.㾄p_qb3^yċ/X477*[Ɠ`Gub-#كٟ֡[g׼v7!\qjpq`P2=yn=ݑ%?Xkʋ|?Mvq-σ8\⟈03v]Spz5ߺp][6٣8sxތ!kEPouOBq5re.9~3HYpse.w/ _WBޮ!ppµ팿Kd7.:''v;|!;t1|%+_D~۱=gkC58 :Ju:|$\@_q|{QT ^FIy6$x6b%pcrKcXw0+[#F o#^\.zph5<ϭ/9>; K+;EYg%uʷC}g"=1Ќ,??B:I= Y= YOza`qŎZ\ǜ^u_wMf?NiszLJ=(,~&jx@.]_4jo@/)%Z!9ٟAd?q?.i_4%ؑMtGI?}7>0>sIxs٨e^%T`_g*B Jރ"^/C0.#|"+u¦Zsxςh*xs?#d%M}/П$mwY7Z/h<ނ|?Iύy۹ r|I ^wpbƙ|xICl{]a3S$O΋@Gb9,~mXq}aI}[ˋԌM8Gਾ={G!y85LNįSK3Agە%S)Eu^ZA1t9@?{Dw!Z4Gd/ϓ^r,'%e:Vf\ H;n=Uʱ:Q£0"ZlʧbLn89OV 3gG HTT?;D~n>@\~m b?G6reǏUOn'#~[[β6%n^;3 SiYm:[?F3MV !+OvNJ=!U**`^k*`8|oLB H^?r3[a|_O|u^e9<=^%*Թ|ؤP! OαO 鳿vncyz7<޿VxukH;Kܗ^~^fT2qwEM;N/=K)=j$1x-k9 |k=<1c#I7h[z qI}V(n<=uE}aׅ)#9NM>y3!X\'wIj7A/u?6|,~ۋC8cO"a} /Eěg~߉%zRtPʟJz?JM?gwTraZWFϟ|,%'K~j7b7/H:q`S%?V]/>O'2>ӐnN_{nbebr ZL-KइY7+|fNen`pSio.vK?0ߦ~?yut]=7+7kˑ9ɥK8EE'N';I/k ӈ`Ao>~^%v8֛S[h~&(s|~:Jzo8܆wܗ~<ú)gCwe;7av7rDZ'sSǍ2ȯyr!XpI/ӺoI]vG/%؃O|^jp4.8P?N}7l8}8)Nt+EʉⴉF CC:-|E.:c[Dg8ұFkkh<86 ;9±u|wv9r|ORk~KZ uM ү߭fm8YOaS(_KQ ~]>qey3[uy3>MZwg xg_SS/~=jqx3Nj%[߸~8{ ;ba~pyqM"v fqJb<|:1uYqgx|M3{Q=^Wqu%?x/~_+s@xsFx/YV=wMoxyq?5箌@K~p.D)*7=q5|,A\"|(ܵ1>O^9wMo+CA箎Mur>uT"|S 4h/E kZOu.w׆|1|weo~yR>-?qӲWsJqV s+,Z:^Ovrnv+ObEKj]KN#<8+z˃\.?J^B#>kyFv4翈ْk?_r~k%K/?XrhߏV[w{靡~3e9{-}Cg3 ;ez"{ɯwx| =ɯ~?4q_^utp;kǵ䥚wb tl.ppqx\ZW3@ap_|v%}%pu{RgjG͋rW9\n+&xӈF} ڧySH0!b>74ᖍq?oG&@pZ{#ȯpqqK>'?oE|Wvb(37/X,ѱ-ǎZ/h2,:d -~'px>iҏ0q?J%߉n7쐩׍Ng_sn;hfh%ϫ@.VZ1ɥ'#i#e Xo!m$:\7,afAEVR{f~9ҏGSvt/W|~.~Oʉv+P:|\2gͥA%K}'k`kƟ9 w~aXMṁeYeYQ?Z*v4zF[mV[R@AK}bCGn~H!ah$k$j(AE) "( @@ l j *5jrɚaf};]5cgU+j ӸR&D}eğY5bU ]r_tRi;mvƃv6baү+X/ku7ѷi]||~S?K\_? _Eobrr۱,gjwfJoդk;5%7eY >E5$]; .yԶ|+4ւ3Jum/ &vQ^g'W{Xwƫf+zoX{Р?`|/&}uԓ^T٭ħcSICЭ|[įz+-#rĽHpE}mvRt4CtCh_qhx_f/F!}I }ġH0V]Ĺؑs^P\WVu`=]Yq}O؍!27Uh`˻Y^N)$, np~,+P=,)kLe$?;ܹncG//_~\;˿qOd-*igνd r$C緶2x?o>|wj2jyϏ#^]96C|T ,5S Lb2&fY,?Bkko½ (C3O /;gdz:4e{/(dt«^ko_&ayƋ[ ZFv_6A\||[>6rook48 z!?։V2^ezjR~+ej0!QPb=Czm77^:g>b利"y6@cĥ򻹾wG~twEnWG~3IŴČX|Mh(Z,='D鳼Gm< k\_v_❲Y6Q9QciD5g ceAĪ˓ l23jF㿍_T%qүNLU?P{EmQXJ7Z\|}O5J 6*;7xI68c 6qn~jֽ{%Xx}P/6~kmQ3==mQ:A~LxyG|$:4ǧA;U5x&֘XSD >h7`\;؞m|#l!'QXdzd{ld#̿[]o 0KxEcE* )q>7Ԣ] %V=kcؐc>G6cN yqί5{vz$i!Ea~ΉCQgO =۝?y`\XpK6|I_SΥ.UgƉhwl_ܡ{eO D>?$ek"%0EupxB3'; 3 H3/`lSZ6uC*n:xIj:W%4F\ܙ_%*]Ieϰ,ovv\K%dpI $v6؇M\DIl )ܺ80eM²kI߿z/L] Dϳ '1"lU'΋g3oE˟-[b;ϰY׭Wg-1;ԇ@Xsg:ɯiA89ϒ+2W<{fO8Ǹ*{8$y_2z]ҸZr]ƒD|CVhA6]os v,䧌̗OgF(%54gC8cí[7, 03;;j~kgQC7"C2%\eSrzһKc}C{$6r~x$,[+{d2G|M髉Xh](\5ĥ]yZ.р۵@g5v3IQ-˷AY1z#ul* v DeׂI0Lf89Y'A(G[~^N?J) ~q]1N >H>w>g]1!ccx;3Z>CnꟌ,F-1AQOa=k9G~DN( t&_dTIKZA,wo ̛O;w~ hygٟ&S#L"CĹ~5ϛF `_]yÏ. ӉOÿ`YC޴is3b%v[B <лO/;P!|Jz'wg0eCkշj~Ha.fz}A1vtzGGIs{,1>XCX[#(W_siN}qy7+_"4WN~ &>h%cnM<(V\,e[@'s˙},C3Da%3OD914˩ pAH3r@3;}6y\ϐ4tOGe~Ύ[~'fS0uwVvz>c_7P~n 8V :HosvD.wU/`ӰM,gx5,pIdowL[ }3I&?~3)+/6kRޅ( /9ʯCrx^6;t'qwfmBFx57 4JEƂth\:3e^ Ml['rXS囐n>y,I7ޛ7nܢ_9@C̳?IȉܱEgԏDaMTeA-|@lJ/OFs@RIA@WJ)6!?ʼn2)XY@_ġE=4m]h[>H5oQ|:m5>${z @N|{x7*_ Y}, ❝gO q/H^-f+D?38g/bwXسDCg |zdg_Ж;[qlBoml_!ݝ[ؕ_Alz C.|ޯItWG![|t7۸ Cnq9uI{򛋃rxkdx{H~y,?71Fb-ǍXXˀ8| =NJ۽S,G|:Vv d &|w3heZSVk4qnʈʛR ـ8{fa|9 hoB\GGёHD|RSY~iF7˴?J,!C쵵rdFYqŭ {?K\Uo h3 ~] Un;3j"\Vq nne\cs}m;it|,F{S~KeQ_юRFW3~~Fu>ٛ} ޵H b+T#'%XKvAe~&/{(L(ߙԈ؎}8ͻwYKʩF8L{XfՉ2U%żMe#.+5ު,KOj6β|t oFBN) '8<(ͷO<5Z'nџPdMZ;콯'ޭ',b2 _Ob~y+61_GK r}Y#"cS@p~Xz7޹mw~R2 p5ifNt}HD%]~&ALC~`~^,t_Z6sS\d0$8~L ;6 7z:ٝE;d}Wr n=%v^ZȎ4zT>o`SlLMP&}+%Cf*_ĥv#Kl+<Qrpo'BqDD7_3gIp n199˃ٴ IZ&J *}?@byIv-Oi}7i+{ʎӊ,{i\(3|ݪ_wq%?JAx7' Qg(F(i%p&ÉsvMd95ɯY-2 @_rK93٠-֯54#(O,gPyKsqcT#΍fPm_R.{)q.iloޠʹQ?j5\g[ǔY8>Msp9T~6$gGsFSX{8wЦ4kp*ǭXuϓ=)Z$'#Ei= >ɳCk1Žk1B-3ҷ23_X0*ƙO;?)14C8(Ļ~674b\=p?[8[R>6f nic|9dq]^T`ׄbu9V4T=,85W m@fO`y+n4Q]b$sLWgLI\}`8@A$ffQ)+iM?yt,vڳ63<ی=} }/m'\ TRԥɤzAOk>HL͠hVp>Qf׸"bI#7ϥ6 _񘜋?CȬɞ^AED=~>a_0m2dʿћ1F\7$oClqԤG {xjnl}5Z3p&:%ս a(ZsuS{^牫h=NjܟqN_gcjygq*`~"qn;De)kp`| q|WY0ٟ-+&ɾJz˿9&YwHkemJ*'{>+%=;R< #ɓTygt4v~'6["ƔʛȋT3?׏~E՚9OZs :q:$8M|E(/c|t֭\(oIԤjҳپ{W&oeeAM&}җ_ުIԤj5飐?Ӛ]5IԤj5飚IM&=Keq9(Хva ;Оݚ~M&}\>Iפ7-NH_g ?IԤCakһ5aM8/Ϭ&g5I֤k҇5iM&yKҵ o1g֍D?n?c`kB'{Y~E{򯦷8"6Έ^h-~K2oATsuAwk֍zh}͞6h@ŕIE=?'Εg1ߞIʱu ȽX}^_ۯ6%>Lj={˵mɰ^h/P9R./nz29 {D*} YNay339~}bmޠgĹ.S͹MX~}8WXO֝~~Sa;9h|\}G~5~wZwF~d=:.>#!>$t<䴋q>; Ny|a=O,͇MoP5r=9W?kxu=z\ ,ɓ=P8xGn}ew//酼OuΒ _f7{!ŃL`9OzM7> F;J&+'wi=egeZ3Y~X `FHS'"a*(oTtH}hHz+uLJ),5QCW*)cv .f>:F  *7&GjޙX\ &#պ4kx98'6~(i{!2W[>tZъZΏx??gCwc$iߟRS3_e~Οc|>G6D;:8j8 b}S;^0S( |S͗{!=K5 B,O6ǽv'9m=K>]~|S3vz-$_{v`~ThO 4ƣn+h~g|7Ar6+kwyv}[wZ~J˟3[|71; <л=tZ+_O|ao_E?_ؾa{zƭ!=:kgT'̡y?C01OMKr9.GﺌNfJ~ޏ_~!X]vZ#wlٝ7v>xw}9ACXZJS' 5w|jO1+V7>;o<0:Q2PIo-SeEn4^/@#jW'Od[Շ o>ͥ+ꃫt~̿dW_GvuO!;g櫒N w7O yz`PXSύ4;{cZ>3{V%ٯJ~7u&z/J{7u`cK?[&}E|)P?+[9eWN?Uy'&o~+^^MI~׬Ioդk;5ݚ^Mz&}P>Iդk'5ӚYM&=Ioդk;5ݚ^Mz&}P>Iդk'5%ZfDm ?w9]ظV^x(۟_Cb̢@x,t-Wܤ}R/B0~y\=m\C/`?Q&ގB1~-7.Q㨎EW#Ņ;1.\(G߬BZZnj2/Dŭ'"3, Y|U@~KCY~ZHec=^  7xZ4T;'$tw_۸쁡<D*^6KӺOw؏R~٨q\#ĥq b7Aoӏ1=_4.ږ}̲> 4_qn{ 7L_7i%6Δ^KxDl ?\j|]:hwMU`$*rSCZ.`}nW~׮Dծbx^ʯ8n=wX7`$8GE_-u/dÊ% |̅wC/zIH8oo"7M{1O"%bf]lȯ#hbݠe85f v.KqXo`90a3(H7r4NM[7uV@ߔG/9j}ZNH_FΝ{1?Gn|^X!ϲ8_v^Hz#8ݞnY~H_VQHvL}(w[l>$}!~vuW~]K7vOտO=G4лq֎v`_ף#jM?Iz?_i(N1/Ϲoq^WaWekg pLf!=ۯ,ʵy*m^Js];;~=G{cStr?{_> O7`Q9ElP{dYi,tp8 W`"ŶL6Paqe_2g<0Ч| r%٣9/ ?QLj[\/ŰPEe8Ʒ̈B($1y,<}IU@%]Vp.q^?P"ZJ`֞xqNL 8]V[9P!Zu'[3bsBI?й!vL}3q??.cG&qUg~d}v`v(o}*khW|ݸbMBzz/|<6}'·e +7HKl?%,&_Lq/ }GN&` FSYmvspló:gwMYըʻ.o4ΡY1asUOi.IhGGl3B=ZH&CwWeKu0]LkٕĹ{M.0%7Q_kvg3?g_^'B?NNW3Q/ă h;=rh/" Kj{ן."xuikܠx-QkH0Qea)KV r,5|;wW`K6qZBN;_!npa^F+J]`ҫr PbY"?ZC'y^*c#ؙxwey}na*"{#KÓ{oّ q[#ڎnY1(|iƱ׽?b~Y'} ҋuވ:Z-(KˈwvƩ<W_#_|.xoo|?].+/#T8p&O~doiNgQM:xs~ԮY[ЖQ-&rٺiSr\ι;bm =)8e ^^qWQGyw_Cgf!dj]&\Ӏ_kYfpVhk>IeW;!@·ᇪ!q#0`~>7%'"ߏӳ-/ҝ.+f"-W{|L̤ɒf_aJJfy..fzW `bS>B&+H7k5熋1~(}җWM$/җ?_.}>s`f7qN-$&/q?#l\ >AOe x. #=}x׾~={)*X! Q124adY6_Ja@~9>Z?hgݽՙWzl|Έ$N7"zH|EH֋g>.FOΑ8(л8$cGYY㓵O3:29!C;_m=C?0)^ٕ(&,_S/kW34ƛy9*Ǒ86zب;q5'm+z_?7mc@ע}̾|c038*b>c%~\-\=[5Ųx=C騉|)Śqq~*b$3k2p&n~\̲/'kn?OQ:-,X0LN*=`ߏ|D˭i9lo='5;*-k\q$.M?Q4򡕧rSReThZ2_1+ˏ#0>jh_ qAz}Yݟ; >K_Oۗd6Kl+f躥ϭ]o_ }N&~d}eN| Uvx7[`}y/p 54=xM,ύV_wBދKM*&=R=̷_ߥ?qѿ?E9)ag_1Aio%~J q'Q%ۉ}iMux0nB xiܮ|ݏ#q~;GIyL۬81-[5Qmҭ'hW fzXy.pXq: qqUInp֧"ALp^LV˻ʄ%˲\y]Y~.zxA(Rc;F%|ZY?r]G }CzgRH)ҧVHwrocTss@%~NgXSUFu=om?fXZ?t|G\vȏksTQȶzL?}tB0,Y"ټ0zY,ur{mBoGg?AۇjȏtM|c\k8o_v 0D]|GIv>&9 T\jpƁO`G>ϑ>;~w8*#>rܼ7#N~yH5S'2giZTwqVOP)O6sU׸{+7[vF?pd ۅM??[W;9~R-g^;~:NL0Oa?''Wõnpr]c3,%'H- ɞIz7{r\\RqS?84:]bBoWW#OiflcS"0I;'!'gd*143룫/4Ojg!}8n]LACƎh?zmn3|Xe/Ewsɟ q? tscjP+U+k߭9p7Qz35|Ϋ$5>gf|Zx#;o5:ުIto֤BK%EXnuH=һW%FW5Zo/$= ^}&ov.Lrz6 _+x.?_Lz߳~YwKo!}q=[3ot?b=e0c'Kq_@{pFܱB/#s;C`S_w/3~JS.+k/%Ayu8=᫙'icI{  .yB|vQגʃhG=n]^'LЩh9$9j:7h|ɛCW껺]ٗ9vb+A这 Lcyb\m $<#7cq^hϺQLK~WKc9a4=kӧۂ}ni.Ko*,zb\ON/-}!ś*ǣ{IG?#}ʏ7A5 [s˿wRz%G-5Vo\>[q/E`MzgOC0GICX`S;,л}&_ l}(@ӏ~3:N=m$mhVN/%P1\BQ tow o??^^6 ZB{!_e2fu?6 'Wu1uL -D25a5H>{Cۗc|[rCx/q~n+2ys=$16ģeb~N?M.}~F/>~pt}Fkv7r ?qaM%jWQT̴"ubN%Ĺqg~&&;z* ,0/gU8*uŠ ]]hV%Q!_v%" 0"x #OPFQ#U5Wyԧ>}Ԝ}g>}Mb7xa>pş Q2& ~q{{-%9~+=r'^o!zp:%qUYG>c|zƿp`o3 i91l/c.Y͊F,[=.Mc rqꜼcN 牐_lӇU `)6WkgJ+[Û:^Mߑ?lBŢ-~I_ݏ'!ydw?Uֺ<553Q8NuL^K? ?[c?1.ۏ7s4 辣S^~DLH^HVS^'S{'c?!$u?5J9^=6]׍0?e['OC5͹.(:! tOHN:zp-@yVk`6ͳtM~?|{#`3x!)+2~鄸8AALRg*_Us77M Ff~f?@:2xʦ+MGH#y(9?ƝyȞaB <  އG}ϸb S kc7@ytּ?|9B3QX*[w^S|q8?zr! <W,ӿ ݌x?gޡ?yquZ{ S'&Sf^0l3;G]Gzw_"uxnpگŸ_g3gQ~-h{X6ӺRL0 ~ugwϩU~Nv}|ыXxo$|hg9҉Q^~-koa}Ї3.=yd'R8w`Rp]RULx;ͣA;om8p|(j>Eu04_/ ~obA0~ w ˓w¯7;Oԫ?sߩ?5~o$ϬhGI *n?Fja7fOǜ*?N -ïΗ)sxʾO5wuuPi5޶ׇB[\u+i3Π,5'b%ć?ӜH?Їss>th-g |(NRnj]8ԯQI:%g!:c&^eQ[Q:K@r͙p:@p? r`F0+9(:dGYw8?M|$\^}ܐɹRo|Ѻ]Dza3OWA ^t y*{ y6RYtޢZQ[wӑy+*xLH]"hオ|C~8թCzhݺH8n?AF$c3ų+,-h0 Y>"(7لhONz_~![%#06x^]Pg.򎗵ڒL{ݻHQ=nWmeo۫Y ]e^szfͤ=v7*c^^HEh@< б9$Ҽ=t="Ue֢gJ[}FPz`x qv9gԊͷ&ěUԏ! !ӺAX.ExhO]2ϋ]6=x񃟀veo κ8 /x}+Rſn wiN8^{&3Djwxlv%qⅼ0oiP~87[flM/>eE}*!z㓤t]}ԉR+lYw@H?kO̝cdEqA(NzBi\J\ҌmKݱ_Xؾg&wpa_x-,^ ^>/.' ׾$|t=-l@uׯ^rOCȘ-ŵ'OzAI♍pJW]k۟]HwγV n/HwsVڟnmnh >} =;\jާ^ sI|蜤}eciܢ;t00N6c!xӶqPgp].6[:{}ۆwSX ~З rсV%[wn+\ ~A߲Pؿ>|ɕ'"pn>8P+Ǝi$oWäɊ~T!|F` 99:(= l;ܭu"f1kc ss!yikď&m߮=2E:|XW7%-_:n_-?ݟ،|=|'I?_{o͔e}5w [#n~YKld酥Ïg2X/KlZcAv';}.W [4C\OWs{p+-bp^(o>"T'أy [ TGS2*lLoR>)`O2Fio87W^U[yTo!~ԛҋKvvڢ Zo%n}skߐwm\Wq?1-QY6/nb| {]5K_f; 4dpꌇb<;=G>ؑo/:}Kǫqr#`8∳w7c^ ri3>k~JiJm ޯm'?;%^_^}B:ar>qw|P솎!W?~9  追'KV?v,co[Z!['D(Czawٱ%цqLY+$b4{no'O4+8#0GXf'^n{}X'c&76Y^I/%Iuv&/c1M 8k‡sXCǶ_cp1q?ou^w [e|'zl8#oAշ[Q0f+!꿦~Q*KOלHҋDB?cù(G\YDL%l L(,F0Z7H/?o_]u)#ⅼ̻|eKgmV)a]AYOӽ1J0 lSK fx7ol|#u2ٿO珚'H'90/=7$Kt>ureJo n'ݠ^j%,FF |-;ةYI`4ÿ ~8qkbt~yl~!akw?'>)Yġ$ߛ_$O0Ȃqd{^x:|!iq+{.[$9*_NIW׼KY73lS??aQ3S$w[|%Z{C?7oUƦY6Lf$~<1e~_ʫõb]-/w!NS^T_NSOVuT^Fﳤ6oc9?or^fЮ3ƴuC^u/sl7oW:kvJyMZ'3{2w"^ti/^ٟɿ:vd'AJ>Gkx6)Y)iw S~}Nm\OO. p'+m-]n~E%,l#EϤ{ILwL3)ofy[oҖ5ԋeIJOǢ"GP)X4k.&-)l'dk ~~ B.FwHNӭ#;{QQDu );whBza}U#t1Zm:.&~weIc6}8þ :\_G_P?]S/;2`G3ZڗG?S ]Cmp`2Պg c8zL~=SscċV?^);$=vR‡{ּcċ|Ya>K)B:Kx}cqkk7vHOna=cݥ{:wUt>~>#`G鉅9]^cPۧ_{N3VFOkׯ{s(3؞ο]}NotO78&^n39Gv,,DwyYsGݬi$?!Mgqxg;ɏ]餷wU.ןۭ _ 0Ilӗ٧gox^\kK&(~tObrv0AYzxPEQ Kzӕ8!R5iJ#Ş@)mzP_i!n~S=>~!:?moZL쿈ssCsoЧب/n:^n=ohgW7+=4֕?Jz[S_>E+ΜMFl'_w Q؉.epdkr~H ~g"nܻ>g)c{!^-,^?) 3}U1T3i cΑgc?T#;hH^K0ϰO Q\}=@g>iLO3/U=-n S}/_ t]x7/asÊQ?뿙x!. ?cj 6VbJ{:m5SlBv}).w{=$-y"噭ne4LHnzJY=/ZW*~_;ur ZmK,2ٺ莢\kyS*SOYq)v?Q}<ˢkW?Qy[5$aռ?~O_כZ״n|>UR'Ο#Ma kδnڣTcuAA~9o5(_^qقyE[o>W}ӂ'}+!3[Yםk]gG:{ⷳxY¿9·٬:Gw^?>(Wq@z0 [ ~Yk&[|hj bEQ t#>Sןk#/Ǟ-=2ƝEL~ P1t4ukU6tnm; #ΉdlM/W[v"D/)AY}Z{N8޸f|ބ W YڛџnڌxC⾛n_n֟نџl߾fG/77=`3 ;6?7_l3џ^q Iw7qHO3ڛ{n=7wu_z?mo=cW|%ۏׯwjO^~iytoyyF ߵsSĉjSc`0[(r{*s5Ϙ"9/Z> ,o-o&^|hf Y滄^0_yE&5Jm~OG|۶+[~nfm}f'·n32G}Yџn>OȿK6o،~7_l?4Oڭn^~w'·I^&ꟙ?o&O6o_ц ڬ? {B -J;9|/Ƣ-b!A<|G~8yFD7;|Xk1kI>ydu/qKeߌ[teXe߸_[m#ھtZclo 2@bA\D5SHo}{^{!÷wn87Re/92?E;Ȋ O%h {wdRϾB5?l;|fHoQϋ?mAPQ\˕n R݃~_=)]51%9~XјSq ?NKLDqh0g$/ZB/>Qcn%+د;_ұ^|ǘbPЗZYm{kn-s Ϧ(&.cx%^8ĹA줵'x^uˊiik Տ^;G֙{bU&{/ yבI5yZ^M`av9JFGkɎ_Bp^$y~um..{SAgqkH7Se%!ך98]=bŞ(C{0}?+^Izהaw6WY3z[vҋ~kIʢ]>s!tY\_$F&gH'֋K4S qJ^گ# /m;_s @B_^i~z#|n߰va]g=CR7//jDFF/U>gp?>O|&@o/>/ucܨj?O|7z #c[wX×{TG Lm]9ndpo#~CkKuJYmx!3зwN").GھCY<~N]E,ymtޔ7yI)R˄oxO2%0$^-g 崦}B">WvIՠuy|Y>1(uu =ZZԚյXأVħag8Zn'}nݡ-27ۯ#":v,{jO5PQe%|KYold5~aߚ.]@c!풳,酸"1p|BV[~|i}xe:L`lP $oݲo[S z2QUh ߗ+ﺠFޞ*G %(4-_lwPoV_ν>|IѝqϟC<.yy1EX{YJ%{Ƕ:LI/I1{&Ǵɺگii҄L(s?ىݶl a.7Qxӽ ܀@wuA`P6<My~x{kg\M^=ކuGzJee{_X".b0ʦИ̿ݟ Pd_H[|Zy⇼[a?Pr_]Yyp|_wPůvȣqgq['M~D9Oʳb)~A֥$/V@q>Kٺh^s6j7۳唹N }s[V?(Y]!\iι HѫDC*XX*zˇ^? qCz Ba@OTqH/cG4^D:1 UNz -e\u`,( I5|:7Ma\uEe(׼j/+> OXKo9_}35 %]'-cᒭ:R[~,ӆ}ϵ2dz;xx)t~-^*267;ҋ Ue#./ۛ)yV&a'$bnZk]'cf1=hCs7S>V4!໭_/.>ܾ[@+NcnupL+sKveӁk~xLq]:?B|@d ,B=VQ0?ωٹ"7.Uo~*!upa_:ơu}5KH⣐,+tWYB<:UΫRjj&5}F*yx!^d O\Vk uU`5* ~8O1uDzv:^Ke/9uѢ('Z~J9~f :=gToᷙ[/ @x]=K򶧼T4[i|ße O=!Zo$|K|&‡8w_~!ޢ[4SbB.6( DOL;..O jj\No'KK4|ϐ//G?f9GJ~?]?;=٦ܞٺhrAxY)#ٶ*kViUuC*nUXlh9K|ly(־Tgw'dPe,L7z~gCcݤE +< >Lz!> z龼 #4 y?JBϊg(txÏވpyi$K zak1hK8IWîC*A&tV3EEM6Q[Y1٣I7/8 yY)O7gMSO/k$򣇟$|8kr6I{V̙e8bSyv_aEg`3òl%ÿ}:LYTt";is@΁N{3YN@MGč|Fi>dWM:a>pdg]\P ÿ#} #R/{;xQvr_'oޣaO[|t:_К7Gr>O q a#Eq_ސ@GSʗIírV/)/}ORsqE?oDH޶LN8V_^i|H Fre1[h"Ol/M:znT+{ SKTE:T|K~Gwr(; ^$tZ'za_^SDMEn_Fz! kИ>Nt8fq7]]GWәzܺ"}1^{OI`Ht^6 NhLz=-l(D*(JLu)ul5?139 4PΌ].!a y>6Ih[r8{,B"->lq#OhwG`!o:v@wF1֔ l.UI/c]~‰o ȓ'_h-92k&Ӑ7z52i}n >HDO_/]zDu0p<#u}T1,;Bkwo!-6ۺ}R$9輋tC{Xuv|x\Bt= ~LbAc-E oO a8)<宲Y!擹龃ނtB/,lJr>v]O?KzeJ+9=dV#!=9ۋ=٫ cv_lG>J_ֱ3> Iz0GzA`~e@j-axol%{3 &cC}-9P?ڡ~C:?f^l,|>O7e#~ &pΎb[m?/K7D]q3u#>Y/=5OwG\5xMG|ꌼۋub`/8sqL$7O>[wF>4"σ$Nv΂@%ϐɴ>xȻݹׇ}>xɂw9&ȭ"9>Yi;_C YqOk֫c/as3W|??=_~A~b؋be֭=x^c{1ჼaj,X~u_Dɴsg[awnI9Q"(?KH7_|/ cYe򸵛o%~C]CRGװ>9N1kXv΀O> ldGFP\+yNCCOGp~Li:365'{vFwxP%3r`zP;'ama~':7G|;S>aa|a2‡/#}S,䞏c~x ͋1~qϟ?!1seYog)<){:ڡ~Cl﯊?b?߲֓;wx^+9Mz!_jЏ?&7Wq|G.c D|#U9u;$ݬdu}9$}>#kUBd -=2~ W]EO"9g;^]ρoӞX1;Y[%,>;vB6B9-Pa+dQz'燿fIHߛ(G'5x{*䗦W9u d}Ɩ4@4-!W4Scr y<Y{Gs7/fsBb\:ٰ1[ڽy|rÖ]A#Dl Weەׂ#Q_8|^[C$ /^G E!RR\?pʿj4}5SYHE /É&ez_H7~RPŻH_s b 8IVz+/WRbܩ9=&^OS;kg-nt\h~%I=>mJzL;'޴4䝬Uxs':b3uODzU \7//ԒFY1sSէv94ɩo!<{OWx}^&:֍&(~/PRm@Y(Fi]}dwSR9](߫x7<[^N%\f^6 eq(쬭K [,S=g͙ɩil}<iqSLCHƷ/+L#K: d:|saW K3_*]m.E!Ί&Eol/Ӡ+9,nu~h:L ?L\\2=)\| 2bI鞗zmMn<»\?$|;2/a\+9x>w!'󵐶έ[ueH?o7NnRؤB#2YV)Gu:s闠HjS^\0ߐky4Sw{?{H&􅲢]zo5C bއM1mqEI'Ex7l,˚o*W RxOg$i:HhEbm yhP:1",%z{Mb5ʫHm@>kWMJo 8~TGn-4W|^<){l?MGO9L 8YV~VٺȬc:9N旧sv>ړ,=СBב\9mM׉JO-Ay~g1 +y7[S\mh+[ߦZM+/w]j >i*]*~$ ,|O_~1fL=9P(QЛ,*PQj`ɫlN=cH7k+=*t-$/Њ6S`gM66#?B?=2끳tT)W"4S}"\_'}%ƺRJ.{O&ݰ^`#Rp+BZB^*&XHg5cF';>>~CZT'SI' u'yw0O>KI6z8[^F!&ۈsunlpპDgD`oٓ~ BOyMv{Ўc/^R^*,_C,wy7K&POWa-P4CiY% a,OB*~L^JE vf/8W>q˯˯ ߵt†dG{/g;:6I9{]k_VM,^AA/w]0$UReW^8?= 3cQAٛH/ċ; ;mƲtZ⇼Ro Y׾uqx[2P$_BiTz9$WT) e;*G:_.yǟf;!O|l*1w'tÝ>/KL҂2T铙}t'eV7!)B4({37v.3lV7䰿q=#O6_-?'m-F/l?~o߸tC7~r4A~`lcy7m%~'>5г~W9AO1z^5Q'zŻ=yČ=~ .KcEt^`"tTQy~{}hhf&=h2,H?wЈgz>sXW' ~_!/}5NV3xaag 4O>4ޱׇ~`8 p>胤Ɛ;3;Ӟ>ȕb+ٲL oxxs|x 4k猽~TEyùDo^cr|ɼ->kX >\.?8XXgg8l '?g;:U5'SJ [ `;{cU̖_ḽC~m,QoxO>1Do_avvۓ=q)GH;^X{˫%zmfׯHӻ]k;ݵwk_rX|J>skK@xC-|ʼn(io7UՋd "V(/^}@MtV(t (E PBTnX`XhA#W~w}s>Ou{~9.w ^Շy& aau4U ds ٵȁp~3//7~Lbe3Nj70|%5dtQ! qrϏr1NvNrP}P:c;Æ4{Jy\^{fMLӺZQ(t_ WdXdqPaΘ~xcpK\GofWDAN]J )}dA[=3|]ᣈIʡ[_v1NO6ڿCSY^ɇ?wJ=(u^)7F6&`ZɱmGs >F$YÆFzP4~.sS=u|MtzUN>P&1Z`tVP_ ?gyZ"}doy+)ߏ *Eaw?k ӈ[u\K Ж*މW)F܃1Nk*e*B|'ȷyyz!j3I}˚1! נ,ɾgxy,E=%ӤowtG,lv.}^*emoaR h}oq4QjU\W;k2?w,uwl{agҾ7iCW>})8|_Pی2զ/#^ P& AUOa?љÇ+v/gWqoI?q鉮>j*{|F3 ~øY|@)/ᱦi~_I\}( l'0z~)kaޢlowmXl#0]AT%װ0FTgƒ' S8VxIIV A詵Er{݆]Y.Çs}O\EH|v$R풙*h;o4 -ߌ^ qO:qO>.;{ZS{14aImFzakN_zuXJ^I: Rm|/<2%#fo".ٳf ŕ~tBƺvBe?^o1J_x!2<+;Z~xa7Ҽq?/Fn4v(0 ,_.l:C;KuhHz~6_Wp_5O S?njB;>OoZJ2'XLcW&|~_~j@ѝ* x=_&|]6aEC<}{m@Q@ߢStK8b%Ug?Qk>d6'0i?a@q208䅍WS?{ 5u[/;!Ye#E9e\[mN|~ʚw ;$=2~#,d=up1E$瓿e=:MW8` zw/4ey==/f_/(cbȎts=ОԤ#;>+We7WnT}M9) ~6VB|ŨGChծn_v{c]-tTäzhfT(XQ6ߏa# l_:¢c|e8gb;rUyyH <|""}67ϛD>o;Ul?ߴ̿@j~?KeձBx!l|0tA Y4j{qժ¯ˁM۳1X tO- &iP3g6jgxFGg7ͻo o"z- F:{f+;g9o`'ϝ>{e|?*c;7?8o?uʻtJ^`:G^<WפQݨcIg^ӌsgÛ~ۙOo'^kֿ\ l|>gj.I`|>Q6TzA[Uc?.xAY]T4fL3X¹Z'!IOZ< T~t`q%aX0ſo`su:3!Gcbw{~CT?&O#^Ӗ@9ƿk+Okzf; !t?;|_P 4Joس@^]5tr)[?!lp²qj?Ggt=>3{+s+\{]F_!hxf;?uffx/Fû I!Bq[/,y.33^|&ل?7)nP.==:} eT_H.h>!&}/}O./'YR~Ļp~̫gY_XO}}fqw?+ϖO9َJQiށwJ^GrT]E0__ŞOS#MD 9|C>\S~47^%#^ 1>mդ/$^ȧ)yA#kxA/8|A}CGW%Րxo|;GLjE'6.Wy*齄xa÷) ǫD}Jo8WkA k,{uHfoΟǃg6{z[x+H?[)} 1kL}Uuަ)D0kOg0iipANMޔHk%g=Vlgukֱ,WkU5E:A@^^TyG@|A=-F(ћX'wrέEy֗U/V}U\0y,C2)UI W p1d~|Q |ᅰaޙ\#OO'|/oi]n촡!L[qAoގ51T0S_ħ ,i.#<A/,K(q1]y FemaԸ~quO꿏Mi=+C)^;~7#a~SYaN*:^*yy#ć7AS;a;3Zɍb;E_ɕTc(tpUg^x_ф70 / ~n%ކܚ*.Wj#!\:^8`[.ӡ+Hk0IX>@iǗihPݻ6:#yN0R.vQn>6~gtgY{zk!'َ/dOz~Ϙ<>?3 [WxχL}p/O"|~&SKY o/GZ"=a_ uYmTF-gfk[տ/'`.y|r]EymuU"Mҍt2ܙACo.%e#`=_B.Yr4?)mnKK9&)S;_%\;Tjø"oG{e[_f!Yj<kcvE~('}xŸi>h܆%0;ӆ:nEaL:6Bm{Uc=‡bzCckψM>Ծ~I Plb8bcy6MGL}<+o3=*ӓ9*Y>cGhk`[_`9lp!ă{$ɋY/t\tT6]'mNddu`fJoʗ@@iVWֺ>F5"z|`w>ٶςg#l LJ9TFx/2Fޒ,8^vxO6鳼艄/[,o} !g\kyJ?/;_.N[v o[%Dp9ѸO7˴#MO+1zlԳÛ#^8ngcs tEO'^v~ |Z)F\R;ُ: CacD%?/'o/oyQJz^;OM'?Kw~6){y??+#/yomᬯc0~3؏`ߌOr2v߱}v~,jLt0Wrk_#Օ=ﹿ;Hgް`# q~=^mB#25~68L7[I{!|г_lR'c/_΀#t(oŐlu~~s~)ֿQy#$]/zAzOxK _[);쥀qa{Cl-Z}ah?)J|Eh^8Vǯs~Iy/yE?Gҷϲ=.M߳3} c[sM^I0f$o|HTU?zǎwoS7mz)gЖ|ރ0fzo2"~zo"7^Bh޴|f[7k޴7)xy[{ElWtώuGj ыI'oz[2KTArv_JU^אV2oU^/'|'7ץm$+XVu[ץ%ŘoTk˃Ko`xg+x-ߐgQ>O! 4+,/^C` y'>O/Yr[kَcjtG9br񻸎 y zfhpQ$/ߪ'lVp~dG>h^~hǤ,Wx` ^<[8BgM)8*l@0O63LLO{gWofms_{mb2xu?F'iM]Pő)ֹ0bŭY{V gxn]ӡ*yq&;q4}Pߴ K=]̓鿃}[}S q?)>gؖ7فyuYyҿ=kylr3G]!dmV ߎM:ݵʻNU7㳺ĵ\[5Z< PC ^yF{N}Lz'^г6ȓe7s+xa  x5qIg>Xomk}AoKmphl܏XպsAyF=:D7GY_.8\H̯IX>ks%P7[3UFJ ;|]@\\x ?M,A*>C0o:|%/3/=,;~q{]b}Ӓ&$Eo?_ mpY?Gz$SƩ'>C}>J/$P\2T/WKc q[l;K6 Ur<I$U>kO~/s4&lspSz"ݒtrz\IEou<ۙ-dvnX5y6@V{7 0ϥ"ٙѿ>{~faCH&{/{ˮ/|`kMU'M<]H&MAR_% 8twy)IFV韱g'DZ-N9(hpL`G+y\l'(GbyƯAN,nYtu^XHWX}i=09{X2rwy*PgظNڸ{Iq_ޛo5?ORܶ/}aAt>s?ӯg-OcYS$?݇N8/aǔWѽÇWiHX݀>ygR\g^bݣG?{Obx$Σc+6U|o"Օ Lʞ@}VH3~+v/Tue72^ lbU_5k}%ξk.[w#Ž$ GsW-Y8|',OV9v-RS,S'`$77VΓY_dd|* wb*~_Br\ 3i\O%v?c2t!Z1׿it7{Z(N8^ݟ1":4h# []}$~F3|/h gT O' $s\KlXElG_$~Y "؈ϴP|D I&g6G/!8vU17rQWlA1=_`G;} [j<Cԩ]݃1=9vѵK%_ $D}E6I<"Tנ.i O4 ױ ze{u7-GI9b)gד!HX2SجelQghfLH7܏dωS;@r'koNDzz?vxd3?)PCDy~o:=ʎ,O"="?lp~_r;˫ߺ]v^%uxykEEy?;VΙ(W0Cbܪ[s`F/O>-wי!GSb \?^cIcgoX@Pwwu|kfBo"~u|QAďch{|`G_m/ن7,:҇~t?avY.ۮr4S`N`mC?"0>]_DxAL85?o9 ܮ?{ yq[>P!g'FK[?Z&⡭Ѥ/'3_.W ^1a}aPeFz3䣲@'?&^ࣙ<ўB o!^曦u.-} qA2~Oa$`Wy97 ԾlcoA? q|Y (~>LpOE8߬1=N[ ӭ#R?ay^LXMq0 O ք7( Ky ci]Ѹx!qfFceߝl^荽<#DOH/)u0; xOy?Aޫ{y/w"vtv75k߫JyKOm/o R'@~iygMnϊC!;_|A/[u(ݿ#|#5t6T|{‡q(wHzg o"Oŏ~9;*g vx:|toC-?g2y4] 1PU zǧwS_10;k) uԥznh>Ǘ~̽ʭ!j_ؾq}Rs7t OH[Ŀ Y~n4O_%|}si!P!붕wjOeQ'~MO)gDa{utoae"p1$xb?m ~[4t |ɯb'!`'Mq:3(y~__\NfrΧ7Nj7^W<|º';ܩu ,;G~d`ýFNAB) UĂ:cL1P5!~}[{-U$UTt:%>#p2$gkH8!+B:,ot_O`QbT__ F6MtaxA;~74WJڈ!4L//3ŭ{JSg"{?>&LMM.C&'|*)tOG~ݏٺ[7bV)|ܗx6ΤQ#G]!bok6\+PMao/i&~~ƭ"|13S րLŇΓH?m_{2">`S |-N%TZdFx>ˏgJ'\ OZӋ|{!ΕwW.'$0l‚R` K7kT#}WcP zK!zi7fy^oO19eK9e/3f|P@p!M}byX}Bv**7D~kra?Gx.M8* DAK+%Ff^7}r t@dz$y?ֳR^n$;8?B:z>6׽G lj _BWFa7a歡nKz.t>3ml=1%QR#)U hj0׉\$1PkI %L6S!͇ѧ ,ٳ]2gھ[$X/%^#û.}cSH_p?{VX[9gnb+ 0ҺR_#MsoWXO8S3a>Y$r V)~Y[9gYӭf2_SpKV}=Zד-E'NnEE/U ڸ9>11%|Q*Mmܭ:QZwxMʻ%~>/ZOؖ˧{Yo9,Xuտ7<#m_C\jsRA@&(/I/?71~Q0| Z}WY8|C 30gH1y }Ϯ~Gb𿹥 ;"ATi>'[M Af]p$؞ǐz@=?'gÅ~qRJt{ߴ]DG7KⱤwv΁7@v̈́# 8rCz\~r.7:0'qn/c6_3? ;ooZ{9O<@n~jT}o^{Z"տ|,>L~Vx"^U iU~O BK> =ߖο{`ѓH7?ltd‡1RG!^umhIL g (Uç?_w>oG3s=̃[.߯#~Ci}>ogXwT߹o4k\^4-6FPu^#l粮 /j^ 8q b䳧n~ucUr]\Hw+o_w7/&^Oz[3Hy5ngN[6!7x\3@</S6;%=DP;^o9U9;˓05yC;ĸU^8g6z- .?U`Kx'tro|\z~gZ=w0_Ӄҷױ_Z>qLWM_OPE Zjz92[P+}ÙO>]vkLF{m/JcI@o{^.s/=7syLc+;4<eag/n!4'~y:}g Aua=-BhH3Ac3y|tBM̅IŅ dd ls 8ڞ#Zo8uyk[yֵjnXL1^=~1gz}3i#29卧[oǍa1:LJia @,Q{_$^W}՞apS%޴7yo^ϯI}u>֫uH>o6[i_E*v#2};+ᲧLS lZƴl~ B!3/:[To\|LLZxyפJi4v!ymHJq 5U8lysi^Gc+; 3ʮyag?z{G; lΓjM02H/܇xy_8IK'XQ[c0˃{s CχIw~Okp_[{ VF:>[Q9и$~ȯwQпœ>x]~%^]q.壉@/<{,=(z'η~3!Y|>{@Vιy{yU<"w^ʏY^ TO rxb?S|_G2\gxypͿ9O'|0_?D-JwV rrƷ}`vԌ\>$y:Tpɤߛ (RϛO!>֊_yWW =5oU~gO'|_g94oy$9ϧuscpw ӌ7?E"}G_)fu<Қ~xe,9ElbdZO]B^ݿd7䮮IRR4γˈ>.Pfr:|foyo\PVo+=D|-+9<.#؛ʯZ8|i*?9>j-Uy,r.}/\' <ϳ_9^&.>Oi/J֟KޥU,/*_xF"~nG[T1? _\O'=z7"DB_ |~+wv ~΢t:``J~p ო G<)^F?Іy6cݺ6헓~hण9uƑ ?¸_ryt}a[`K7G0݀oIw*_# yՙ7_'d$yL;{YŚ/W?Wsz9}[^d{??׆ya{\RQ^ɕ9~g_@;' ^{j~HԄ3 zg洯k\׏ź _:+ !8~Z1{=_?9~%w=CWe7/[ٞŏ锴u PI'싳<ͰNlHgW {6{߳6q em51}G*x'~),uJj"`_iJi}an}7*$v5t= I󼘱LM¥`Iyb񴳕be;v8E]+dnˑ~x͗rf| u$D|>txߔ(#^*}Ubxɣ>ח`UQkpq?󢝒1 ir `Ww~Xwh[m[y_:~my_GYgMOKd؀>/7=(nσjO!WkOq٤v7(ɾ#}MWP/>H˾to^O؊*HiOUN}!^wq1g4 D(w}7 8cH{A;~uw:ynA ~ҿ_q;\`w}tCerMEe|C'A's?tu3M|ä=Yn0ჟC_ n%_k>S/[1o?u@!sZ{ lOh7G"Ïz?WY:|h$U g~(oK1~6cFy|(oS_O$tL޺~hQFyy#}Ou>A4۴(o i7Q~v|W&cYzy-FCHjk/>`~0(gS}OO/=O~]sg)IVZ᧼rIy)/ Vp\>dLW3'= 6RWN"V[n#Ȫ.Yٝk BSd3No_yb?_CyɾGWǭj7.C"E(M_w6ħ:ty_eP[GDR.-2=sl͹o߻Bv#V'_#WyP^|'J$ |}ڗ03CX Cqho! ß|9XWϷ,Yޜ ??gu{!_(J\a8\8O!_;З\HIzןaE%s!T}Lo p-bP-x*YJFͲߞ'M.7L+VwQ+_RO1e!IY6g0Փ} ll-Sխ#J&5hI|쑪'Ra̬WǏ^fBR(RO;q}% Wb˶##T:yzWC8L- !)U^|b(1^);x 'ZLJc0{E??A>h` V;0Ǒ2]AƷ&0={T_;CioG?"\Xn C~f?n9@?C.zd~l?Kx?1Y8 Ϟ ú$܉*/ayF牿Ui~*lg)/.+a9ݯ>4ί5{-/|^cᷩT΄M_z'W냏2ڧWǩ ,z!pM^,sS<2 TC;<΋yOn>_ٺ1 >S[]2F[x:Js^ǎ|֞+^rYo\z7{ + }HjW.%.OQcL /[BdpQ /'w22{`^E""Mq}O{(V%@Z"kl@./Wu3lh?Ig×?ƽ۠tY:V|D49ʱ`U_'lU%n%7/W9Q^%/X]gAkjI[ȭ<^Y| 9z'~VН:GORg%|*^Wѭ7T~:ptOprc^r 6ͅay<>Ԓws$t8?S++灿35gzl~$1\'}OoCٺv+C͏O7 >GSw !it3oǷe Kf|zz)WM͓:pRX͇;?MQgҸ}9U\O_8FNN0@gПi-[xzRhf?^ߝ^)1IW4(?`sZ2>:1C|PĚ|;OXmw?8ɱ`yqN1c~ӳG^"$tl zG5 ]P}u%xJ=2^/rz"%o䗤>u?3{407^K} 4c2èʁŤNTOaX3Z^ٸ#rzщj7wKkÂF|Iq Y|c=7DLYOg?~F~Zv\T3(V~?{!>@˵\<3yu 2JVK=V~17ӝUdv*7շX83W~v.]˕,m72q|ß!??dUU ,P *2,\QLqcY-$g~HmK:7Mx޹?A0X|Na೸|$BM9a??U_:t=z\a7y vۯut=4Iz?|ۢz2mWɡޘ>oulx޵}Xl_YĸUl,2R8҇+;su_l|7?uC;1{>OXiqoFphQJ%^;E%?WRIE[0ԷxX}F:;DYyAף/^o{{T{eeP@LJSyYvh.B^t`\CP~(z7 MłU~>N}A^~k,|(zq]#sV~jȯud4,}ㅗXf]bvLUN>@9W´޲{Z!?gM*"XUnI*7}n.w[ίد~%1QW՛]89EpɯOq";|3rt7U||?jRo2[y IݒdGu3.E3٥k8!Hؿ>Ƿ,eXONux >k>/8K*ݞi_0H991F:*OSezBxٸœ]*;7ͲOpTo8'x{QceDcnͤd”hVVWSj9Lx2SO|S쏸 ks&r8_z/vgH{ ja|Z[^5kv1Ѹn̬C2Ox(a&w"7w},HZjy;hz̧zrdam/u(5<{ax/$#yIwiu;,Kg d}H`78't}:h\M~8VO^zڞ=pI O̼QE~l  ?QC6F넗𣑯UK%>NZ] LWĺ'^i6R!2\?)n]c='x_`L~Ag-[(|/W!e1E|y%I}G{4m}QĚG#՟;1d-OVKf*a&X_C_R NqIHyTnWoml7vvh;74Up <}20A{dMx՛;U&Ԥj7,vM-|Ŭ~%!IUwT^44r>Y^kσTނ{In$wHq*t, Wx=xCn9#y{*7[@y,đ@1p,Kw!i_q$a1\87izN՗ݳ ~qW)fcIlrIwy  SS82d?9핁]sADfq'K yj+WF+m_yqz%?پ 3QH[T5r~7􃳅%yw:;E(+;Pch&e.իZk2-&>#: ? |HSZE8[wS2yM4i㰻'^-zY11eW?CFw/ɷ=2 Ye6K](ۈ;llo%zWȟ;3đ< a'J$DLB~Ymȑs󇝿b33l%g~}f1_x+p|z țsxR|]wu/.{0xMWs$[k5ժR񧗉{?LA{Y*# 8CzKߓ ~:dgB/uJ9n(bӧ_օ<֛c)4.]o*E< B)kUn旮̩/[*qm1N ~I;-A۸>b=o|F'SMCLӄL/ C~]jĝ%,NJv(7, z<^~Sc˺7%>ſ&bX[At_?j>=]y>3o2zB~?I,|;r3I~Ft^W^g$WEz~gYgx }/=|OY|f?B~ C=+G?HT~F/^N0=Ozn<vb` i}moģ 3kx^R,z!˼: 0`5Sdh"r#ܷ{ 0G<[(TS-ţ,lI[_C:,WR`Q;UO_KFESAS/0"Ƈ=P(à5d WvTeܐ33vA A})^kw/lv`{K@5>7x0|{$ii.W.ă< _Gr1B[g~nS9} Wac@.k?zS;G0OH(81ϻy5 W_ێ)9c@PgՂO\g^~T@s?;hߏڃ^bw4 .d *w8tB~G :DsʗȆGmw~ }йu^ۈA!I, ϻת|* 3wã3*GRȿ<Q‰/|Sp~"ߞ7A/ӣ47O)k?ߝ4;&eO`V"NJs_lEϛT^fg^(ϊW0nn0m^f#F_U_j?K'd캁}36&U^~B~v 8d zyV~3U_s;1Dds.fw M =L'aU}{-U1EQ̞%QV`;@*e&*Og>M%HL_BPs,X_@뗺XxѹJٹ ۾B" N8Py9?ZލB~&'A~ }2;TshT"Z^? 9`(ϒԨY"ց+އ~{/W^ݵ[d>ݯLe(ؑNN oE{QLw oAEާZd2ߣr~c4CT8mzOx%UKP.·;*-!Y}Ӷ_ ѸO1kV/el"}W@Ziu\7'VTk I0̑E%/nPy{|d"xp ˫xĒ-ͭ -:m]׫LW:o'aKo:ܺt$|0ľiTO槅u<=vz:oF"I8B`RHXwѴ^ŌB27 /GDORRstdR>mճyI[ ~Z9Tb?[!g7D' qJ~z~v9ܫyU(yN®P]㧭<$K+˰woJ #:zJ i3}@ċw$bW֥:7 ՗%gh VvIԧş YpZ^Њ!q=}lO z ]8C._ >[^x1˩Ngv(o'ŹE/V9 ]t`Y?SKUOf`3wG`e2;xԃ ܥzq}/S}~}nwuo /#X?2ނS}3~ndIde\?6~yG\~᷾~u79GE?2-T?8(lQ//˽R=]9z|۽Rx8UhnXl /hݮ~Ik֧lڼJH5~U_s_sixӋ~Qa6(2(`>UGýT_xٽ (C=<^c:jӎыTnWX'|s/V2wi;׺3q /[o?F+D\lZ~ށ˟T.?zpΫ(Q,-UNǎ#o}3ox=𻃺ӻgk^ixsN|(Cо*lz s%txy⵱n}pZH1=s&/߳иuЄblYF\(?!Utl>s1 n"&U|X2:t0 ~R𩞋wi䮇@}LQ89Pfv!h|SVt:-Gd3ggIl] b>,7!?q܅ʯ P^Z?6|(b@Ą.7 ~]++G++'+K=n5|=.~yyutw ύ]>s27o|6K~bxG+k>*^jȟȟoeEWwWWWWOWW7ߺ+++++++_]_?\?^?]?__]_?\?^?]?_|ۊ/ɷ~S :w[|v)[I7^4=08w6O d~^ڂڇ3lVT~C#]>hm5pugRC_*~q/W2;_?ml?sWy㿫<\Sh/2Ng ^_w%l'/YCgC^Xzoѥ[>M~{vr?V}_w >B|υ~,l=컭LO`XM?qgK$nt?U}z˶2pk?K/{;J'ns=$UΠb?U= i. R7O聄0/=4~2~~Ϡu= >w ߽CAPNj]Zcg>th]{3xI,}ne|l<1)'4NuӮs >kvFbӢhz?;p~=^a|NlzH ~ɟleءӔRrry;2~1 #|a(0/3Nc鄸4|H {t= >; (S0)y5?"Z~vAx0 Iw /7iAA׆M'GE#z2y<#3\T* 8ӥqwعdhZJ!~s{9\?۽GX@~Y{w\'CZ_>'/=!mnEyNRY$xE@FWvt8L|? a~V 0y]!Nүk?t}7^з+^rE~l~v)h)B:Hߍm'ȃYOQ,x}!N~/Ƽ/QylLӈ됊Cs=x@Z{4S4 fz Pj` 5~]2? 7ed4~ O#HdNRc{VUN@| 7;QGKQy)Q l0UjjGO20>GR:iĤDx"hy *7v#rc0`I7 q(nWwWQ1,$S%b_׸kfzVnND,R&:ZA@4ڿ:phw}*JAlZE'Ϗ>Sc2n*F28-,amğoUovNfoaf,FR1rJp ͿStrVvIo6Si2}mߞ2[`亖\`OVٹMy82#fIQxKtl#,#b+w"*? bstr&f3P9پ?j^&3J~pOʝA T|%~6y5W7ܴصDLqoKt>+L/AY(Z*l8e`2{a[ZͶL;T ?u["?avgn~0FWhvX+23yGgP>8|lۜNօƟ3 i~(XX:l>*$QK.;+CS~aA, ky <@)kAC S"veHs.>P-7jHz8(|'0&B÷ρ2F;=qs?Y]>$_7Ӑ6ӟsM *WG~^zNV<\,Ym(y]z+&' SviP{TO.Qi|TcÍ`2ĔmsBzaRbqL'[HHC{,Q>>Q}i48gsIa:y7e8b{s@xx?#fɖܿSTn~o{!?;vhE,/+yPu?-1Ԁء6x^TY7 >Ifqx/卞,n v3wx>)=Ս5 WEyr֘)88&AB?&wbq/&ټ c׾J gD1ۄw'>q/С((hTQOd c@ :301竜T!f?B17 ;i;utJe!$Y|}Fw}5)߫z"cnrj_mşenQ9$PTm|'U_> P ?r=QًTfBOeSmbeq[%Mq8y;!mZ&fIKqk§rG//0zvW;r:$MC~&Wͭ %Y~\͒PIFZZ1۷ |x) ީ/~&~3B~'ǎ,IϒD!EQ~VN~\+R3ڕ$PY8N5s&tL˨V+Qm WNI96Fځl:Un~T뗔c` KJRACiuO7>\(LZIHzWЏl++y}2?#RrΨׅ!?; [NT 2[?8f;'4]%m"D2;2 :I[t~K)?9pp-*/WVl3"߾A_?c2vS{ݷYܾ̾o(g;흿U/4kgzD Ks+g^ݍT~Ƈ]>e9 !TE~CEysu.ݖ+Jd{i}-,WәM8#i ̊*.[X3R;[L5&Qm0i/y>%ƍcWq{'|hq!%Jc%dtURѯdt*71 %wJ]W](U=F0qkꔅBzdn S2F*kA8cJ(/O /O ׁ Kc[?}~c>s~gs@g^kLgGPerY_ٿt~cS]tKco*70G(܏ٿ /۟o0$1w'C?/~{) }N6" |6m ?q sܪz{jjs;L~Lɋ)d1#8@T(_u ]192h]QvCTR^ Wc 3}wbl`vdq8W{m5oWLGHfKa| zSQKQhQ0JU` sZ*u[Qul R} ޫ ^cH#TނecGy.Kjy}P8b?WGAe{|^ > 7620o&(b|{D?iQKJ7[2)r}MƨYI_RT%)h-jN1}Y-[;mqLUۘ'abB^Q;$!7gЛDEqE1 zd dRըXKTV6SbCYDUK4IƂcGn&~d\XsnKy,@axK{b|kaClSKNHՓş@;< ԝ2?GR΢9I7J WaNX3Rή#J^bmNIj1.U焊רl 8"$yuzSbYj%ASo(ul.hN,@mIPtԏ4,k0&a۝̦֣׫>T(&E8/O㘷x>06,׽EP`[ Cio@{V?dfw 9e,=4zڗ+"n7B|,J@oQyE= ߻ph;p,(P^}Mt]3eD$%(cj9Q+ea[h]HMͺ23GC׻#&lS:p/K`^2f2Sl!sXsj` j aX> ߣve+jjdhx((-ۇKvUuSc 4H h%jӌZ,4%xݚDhe5` KE O(ogթy}ή{\pNus.:X揄Zu}!+' [ZOD?HӺX}rg+]P^ 0t>L:apyTce"E/ Y>kek;G:kZw?,< 67`|$//> kM [sYd}r[Yxc"n}+]gwZO{g .2EvE}/g=;m+. ~afӣML+>;g9 0m΋][r.[b KuH;w~;gw3L#.zvʇo]~N=xg:_Cn#|C|T\Z+?x ϾxCo IG8ܔ&yZ]|jVyT£.as]FٟLu7adVv,(kSBЕp 1YGw5 n_QwȳxG FםYI~{âߊjVrar4CЯsƯҳ1ϲyM{)U:.icl[k[mdA{lw'n󿱞0϶ ~GsX e;?Iu7J;mg_>[" VՎw[om>&O~4Kxj/Y^&u^z/%Wngx{Ӻ׻wa2x'B3@K,MSh*M*{8{S;4QwMI-S=ū׫G5%Oڵrt:+'fA,G`7@JH u>7x.H~ut<ŇH?2sBq wxa}ϕV˪:aԪ}^7^'59u$+xSnbQ̴| |5]sOyY3ocI~fo2.vX ǫ>⭫o?Oj׉g= :_!m_VО52#[O_7%~>DIv/;G,:cPܝ fX#Q]E»̽?gý"6SӾ.e6[avfy_Y')s}O ilI~Px٭폳0> NmVGKI{YUNTkt'Nѯ&oֳ/Nm?/ +PPͭOκ&"ݠ̟[}kğ/|xa_*> 9"^+RGIXw?Ogg51A>Xd!AEvq{oF5۩ߣ/gM}%O5X"8e2:p@!Mv}WVM@i=x;J2>f[޾yO27/s_Nn3'xh?=m NZ-*M{I'ܯbrOV2G?dVV]]rPd%Gt#~'}uon ޺㫸z@R&~- J>V$Glݧ}^|SCc4 B\g"ڏ7IZ[t eUXt؎';;8}c,e}]?xNpsWR0#BTc05ܟ  )n?ы;EQt5T wIqQt?"6mA/zWV8K2V|~瞢`as:Rf RXz.bѼPy` -c&:){ou~P-G0oS̎/'1SW̿!`ŗ(.(/Agm Xj ~#|ǧy8I|h!o?-#@!c#+=vh:w/?C#-Z(O&x^_|a>a1z2>>O!7FQ״RL/"^lO$>Ļ&Gp4`?ZxӧWZ3&+/b˗Bp_1<G%^ݼy.'c'S29yl`W 5:K̟wgttj. -=x~}\ILnȋ=IHO i ѥt?.gh%~=)ΐ?eԿi>F@/-B-MOj,/[zy.^[hMYZznمYo'{>]{fx+\+3xmo!Noc} %zf=ظ 3?9Uj$W1\]Zbxƪ: C p`X$epUpL~k}Gh%!6VT_螑 h!?ބpEB`xR.?&^~;׉Z7N/ &ěg~U_Bet5}UO7ҧ$Pry g]&uJp\5{Vq1IulLz~nb]J\]Oo#0_q(m|4x;qv]n(?B8Oart/P.o[LW߃l5>Fc ?'oɔx|R!^!]=oJ& /k~F\箻e=Łj( \,^m,^TOc'̗6ߢ?|th Rvq3Ο0#}(svB(]L } ,^ Y6ܟ _vFU0٣H~)}0 ~Nt*m-UyO<ߗԁPl[vw &%Pr1֓cKeeM~[nFRXO菭$s"@XTu{j/v2gg~/_AjrmeYGi\"ûH/غ$d.|~~5-3 tw,hOH 54眀-h:u??l25,وE@4?֟Yu]D] )_~o>O'6,k Q*T| % nǴp~7V 0oBfMn_V@[kŃَ`WB@\%-~},v<:x0c|f+JP{};8I /̯ &HalOKZ?Mツg2A!cjgY}4xڜŗ%%APc}ψ ~C|cG=JaCͱ:sg]pn},)M SU`-A+=w+O3ODğa/'*Fф_J8Χݞy m63 uPy @bA+4İDz?a=_.gc"}#GpAڨGo%cr5 om &o0^۽`/u y+Ch (yS^o'~X-􊟉]^-Ѩ0M~wy{~o;oJddo7 =e';?zq/?qjgO!~3ǧVjx%냏*8/b=Ͽ2J3~ ٴ6çnC!\lu !c ߜK=C]>N>mY;L(rd7EA'JκO#ߞ8]u״^0>5K}kG̕ZKM\NJ3Ԣ(Og9O0:cb1>r+W??+(|w=]lR_  iYi Kw%]xGvrBHpacr {"Rm?mB(|4}{+>@A A,,)nʊ'=Ksrsʖ912Ȁ /5{Tl qΖ!?{$7fv0A]}۟t\xa<-"_5S;/&A;DCjc+tMxEݟ!DL{x˹fo?)Ǫq_Gg;2qj\,;=W?K2n_j y2=#Ԧ2𱲧WۿH:1^u{[Vdz$zHU7wH /gp 2d7ӵQ^BK%2n}uE@Gu+˴MC[[vZy6?8_|u_Gi6/{;l˔,­ؾ*x1!<.~ψg&ff_#9d >ݏ]T7!nn}9^KO鈟N'vQ3J1yg߰~r*\7tq.;>đ>;,yKݤ-_xKT >K6 ބe< yP_L׃W%XC48*:Њ,a脇 lO/H~w!c B iـ_Gޒ>jF3'̇,2T^soye2$O7#{Uػ\ _&Dٯcߋ՟GkG;(0ܽyAv7;}yǽ#~85[LMqrqG7[G͟^(x5<+>A;lNIG X%#uu{)EuH(2! XOoʂT!g t\~~y5~asK%m{B~k־Jk<{B^>;-]/]?)K*s|>U*x; ȵgy2G|,OԺn;W&3GAm/A(ZYދo+ٟ{釆g_EY_ylqd+LjGotܗ!b_lv## 9F>7 J7O TĬ>n~/䩔r-@Tssӊ'}ѩMNv9@fmJ= !M5-$|l*uÌՁ½66Q֬>QP_9ɁDnov߽,(]gI0RbPskX}pu0#WJThH)b1_C^pB{?Y U6O<ܘx$b?h&Ex0Dx̹L}G/0J oHʏ-|'s2y| ºX;G/z Mx@'WbCz) fWk|}cٞ|Qc %:Q`{<#$FHGX}}%{<}+L0C(sY dMvqx LH0\݇ǢGzA.L1/Ij q ~َ{NrQpOϐZ#o·1]C<4{醼O,Dz<=fHqQ+?;~ ϓbČ '}tT A:#~' ; hm5;zBbE~ .O#^wg5䏙qsTib#kjfls%k!g3MGmC i#UաUM/Vw<xOaz36IߠZPx~:~`/ ?ۘfC 8TQ~om%G c^$MˤssX_?Nŀ qR;`Oz1 >/'? ?{g+Y_W#v:! eJ~Tg?Az&_xt r?2IX?r[/R޲S揰hdz\+fSz/$QۛO8EIo9~Ǹ\U~zs/^ٍNzwiG;/aa?wt0-h_3n!y4Cuaؒk"njF^HΘ>a 1 슝ʯku{~1 Z4YF6β^C"@:?v!ut0<٣{O^JzOXܽyu nWlp܄`;U-:gXvV['Q{L:ab)`g~ɮuOEF/q?'GX8BF?/gᜅŏS{1ٱ+ZHC+VZj╄yJ;LwOq=]]^w"8ۣ~SC`^DU*_|jS3F \P`tne<(5nw&cy˥r2w}77h7sK ;$_'~WYA1D~M.]S|ZwhE~-lsE_rXK&ASgv9K~`*o5xx|ianF&e%zm8Zeyg ˋY -OialZ?{+߶Úc0 ۞*ʋjm%3迍tC; 6?J'oowz|O_ReP[H/G\i_Ӥk0F#tIz?ܳZ|+UvrJ-mEw,) AZE|,A$!/k{_!1ux=H:&|IQ=08^ƙyӐ,Π(; {håSd?J`O,^okŗ ~so}%B ʕ_:{n^PKs+2T8 )/O<\E_x,\ =/zb?/~bö\KU7\)7["oJ=LM:ANm=-磽Sc+>K7GogEh߇qW=Z>׽l dy ! V '}Ax?c֭FͥG0y7DvB FgxK2Hك=YU|n:qqpG&&p_5wU5yü D9Kr9Y/4p{dN.N:?{'^١lv>2cav3ǼC WPN&`!<;M owΦԨ=00o!;(<1jIvv~rHt ^7DǘSn}~}}_rCxo&qSx^^_01Hs"S `4 } >N3RC/35b_i~H mB_ք%Lx b}~Vׇ+ޫqz'励\M3<ɤExQ৭Z1ffXY 濆J$uF 1{p%)6ifO"^C!J7~2B|mvLA@ƻ }={+}`Ѯ.ңMiW[(eV;f qKZ-E _z"$>=UHOąDn=3]gDꐏ1tNnh/$XO`kݩa>XB!_=7B1٣8t8H}ңy6I}ھV_t_R"^ŏ>ī!M#\@GU~mzn_J05{u >grU//~kz6^L -g~ȯY&An`7⁕z*>^ovV糺YϯgiY_G a (R\=x6 ~l -ҳs_yӤ9&7ӎĭM~xW}|}+\(/>۳r ͼˮ.qя?,yBk3 ( nsE>izw̱1Mh<=[7k?yOzӫ`46]Cݙmܽ!oh_vc %^C܊9\yk}V}!v*"^WANܤyˎӤL^lYzM6{VL] _a?[q/^Oy#\; FSM"3 K0cJ\gtȄ*Ӈϓ^erkʹ)L&h I؞8g Yxע5x |ɗ}y{<%uxV/,/im%e/,G4 ;BrS>髈)4;eW0P~ `*?y+ jXvxp39Ch01Sycv m}Jy+~@׮Ss{w4x|4齗a|m 5IAMvk\<9}vN7כx,J[GȯԿ?`}A_,.sp|Tu>wquXEI }% N/?ܟ挟G؟Ǔ ~TKLx)@0YDז~௰qғ?e\@yeo2_˙vj]X\>LcbErr{ݠ~w^!H淳=a^`8_?FɽW/8];ū(™Nٟ[|Kj95^uwA-w)W~f74񂿴uϻd?e<7Y`36@`8 CGYwvX g brP_so8vՔT3"^'ڒ~yQѡPyƸ\x;;z->DY d(}ך[}"jN-~oO. y??WuwsvS^foo~Qc;#RXQ'Ic=x?*״^GVsr[a"w uHޡ\y$NE}1x W}~X_~}ڎIY% S(pBM WR5"ډRn51Ӹo?&?έALFO6KanueQEſ;qc>4-m\lEX`+e}Pӹﶚ/rˣ}mqE} ;owN"mFF.pɝ?iѤp}GPGG!i@5ݗ=Am>T˳K;?C`,~-W.8ټ_Jw|Y?G?C{ tؿ?ד^OˇS][>M5^>s7,PYo~Y}ߏ Y}]=fadoɻ|~0HpF[}!gz_H!d005} xvO؀*5n_'^C愼?Bo/ďNE%ټ[G2?!_ZH0.~.R' chm?FXMp!`Yt_G!OiWkvܬ$G;y7Nc^*(OV[쨟79P^Onc&/_ew54_Ϳ+"-391ۏu97~ NmpN Mq~=0V=HA.Gٱ pE>uc>^;frW& ᭴}/~ޯ?Ky;a+ϚX7 .{- rRch\}E-NiV1w<- G<;OcJ_Hs_vml#׊o`-ueҹGt ~4] MR{um?u,3z%67X?7Fc@J嫤0zS#ߠpR9qA?:(|xA\o {}!A{[R'539Xr}qum+>]Aa]/ʫ׽4Lj1pIV"4Z$h{o'DSKJ%tRS'->@H2ɧ u~HGGsї!1h>YQŔ|uxZ) 4%/`ҭ?gZъj^0G‡}f}c6ߣ닶z$>l|'|-ګٿ~\ XiQzsEq >^ƨH/a+2 CJ.:w Olzէ&& `;3hФ//ay% n"-^Xװz5؞hɎww}#n^L\NxN2iFTY~__ٮ3״&b ~ %  [kh5@ͣ0jBQ)(Cu@]߹N`gcxǀ %'G/K,C >2lj 0&ΝսR5(7^._Լi]C0 ('go}ߺv KP{]şìg^lQJ[yH{#$9B!a+Y7˺v>Ztxu~Ji=<#7?ŷzI][QM&bMJ/m{z7|+WU*N41|( uSϊrrm7S,k?!^lO|%\/[%`JqEO(\:Ej֕Hn)Ej_ڞs{҇e7čkL>\] L6xx.U-}+H'NM".GAk͏I^FL'}/d~g#cX Ǡd\gl?S=~*OP8nZJo{g`~25^M04?5z^(3<@?m2d4dտx?S5@ya&z~&~~h3RP7L_D$hqo_L0?5@ғQ|bʠVdMc}aeN>bb@,~x WULvxl_yZZJݱj'^j&G:HPtYU<8Mxa\L4O5 d37%!sb&Sz˄f"}mGfB/~x:[Hy(˸+`/d!mqwg|_O ?_c/j2:/gNW'R.ˏ֬2Js21/i*L(J&Ɍ%/0tۂ=mxobeQ aWz񁍇zjY<Ə@!gz8ysdy*='{7~#Ͽ_$y(Wxdڔ8^ݫܽx?Jp!g۠7ok%`~tķ;H?*mϔPIߦ?oj<l #;I/5o'p<7BRu ^JQpDI> )>s*~z o)nxu|+?ǓG*~]؀o:,917=K8ތx~toKw?#^&?#[k՟/S !K޶R~cQ}o6%Q{ 1}4ݱ?1Y'9RG /Hq=ImY|g7sp*ȡ1+˛-h7q.,3.}BbL@!M^\V|[W(` AXwZI/;/S}hKyp}yx¹7\]o0(,h&{>l_nǕ?L½6KPSEO]X^a5ٖ|N>OzrXd Ou"~f!_r$U|o+LJ|ߝyIo/:-_@̮_$SBx/o ==x!cBNO~Lxi*3S *?kVOOk\v@hcwjw_⦊~ o@A^.۝SuE[RhZ?$S`% =wǗix03zH%|Y#ۨnj?싴4" ^Fb!z,%D*3ȯUq] v穒x~wM4ͷu/!^fy5m'zfV|7<ԑfÊTr7>I10;DrDq)}k3J%:},+I'^٤듿Ǜ> J'zٮ3!߰7, 3~WocRړ S?Mz!>S^^/ ݛv?!|;?!"/0|>Ο=z[^/}Oy"KwS~Mؾ_[Sr  G}1`_yR}c3=_+KG*~7_~u=O?_B a"'U/uegwJUu_$u?um֭Wޯ[;¯ޯ[<-gޯ[췭a$޻H-~֭W?N׭?YEznw{^zUuuׅ% 6_<->)7'ݿ/|wSxըn df/i(z@P|չ&a ?{Bu߀[O?O!fSrgp-X/H(YZO8k|H&O21Pnc _?O?GZNT_ÄRR}O YAt,ϥY|l:?QڳAuNoWo/Ӄ!+z?9{-:r0a'U ZOj< EJ?rvz~Nez+޾AzLy< ~U87Mm_~^3 ~}Ioޯ۾N/ki_ſyznysѓ|[E2M?|#] N~hZj?z|#O㑀?k]^-.{]^!6^q& >gEԲ0~)+<7K+.s~Y8g%2omB'iRmHSSzHcvZ%AYlk0BÐZ,:ˬGBLf&3@#` 8ko瞻Wyuw}gs7SOAᧁ?ڿ?=yc_Ɵπ>@+s㴒 TT 7NϢ~^W/ z8[C匌~JnϦw>Gca!f8?~Ɖ,%~'_b4:6ϛ <<  Nd^lasg7_/b'u^nc}3;ރ/e}d^[|]]Z=\#wz%]*@֥l_B=u͔k{&8gUlǼ_@=uۑ9v ._v+owrM nY6uK{=/p BQoIނ߷{jh X_@___+?2|ge|4Qi *;/88ǝ}}f\&#M_8|XI{߆7+lP+I.cᚅAVncw~BQ/ (@{,/),)Z_d>s S oT?hO:YSw^$Q3h%}ީїWZޣQgc25z'_{lU.3wyw\;P":tjn^6?y<|{J82Eۺ;2;r~~uSw0Re?a~^7K?4BMaX7C_`~=,OKK3g<6|מi_Vɿ/Sr֗>-/u1*I'{P~}=++A7,ދr0[jq$й3=p#yWeWeL<}OK?;=Bp%$;#'W4s{ 2׌Ws}>z::S򘺟RC׌Ȟ5 g}d93Ҹ<yT4%%{P>JxIxoD9oV|$t~S8p!HjPfPBYvB= _M}č |MNo3͑o!#!F71dSym[g>޻$Ϛe{ ۷7=[Ku#?|Nl1Ӻ=Y\Gcf߉;;-z#:%Cw/u}5HNB{=΍O]~sIBлЫI]G9?D͌r_*)(sI?~LbP ƹ03((uka@qyx~!7g]?_˒XyQb="BG%bz%_%G2vH˝y[Oێup# _8J~ N UwU/Di\XUPOӗ_LNZFYg0gu2+P_ܞ>Ź߈Wޭ$~*$3Ayß~lw~]ʟބ EGrֳi~Ӎ۴WKmvA8ÏGt^4v`Q Y"ig1 KϰZu-G HѩA<uEqŁnntoxzfF}V:Dx ,Ġt3w^WG␓ޛa!X/tn?k5uZWZޭgďkq, }wVzW ߨ7@.~Uηoׯ[s]E{fev@"w6^w{[^oܖ]8ر"vx 0(j\͢jxA#|h~'W.譠sz/tH_SKuGDz. 1`1^Q= |}Ky"l%PZS__v.ά=ί|_Z=9y|a>7gOx|[`+XU+ߑ'}ʫV^E?*3٬?*%%#+ўN|߲-{T4 hAw󁕷GB _a3Zp?/eD''~W!9 j@3ֻ]ov2п.Ƶ{@k %$EMvYWB5g av,_$zQpц WoCfHu|4/+r^5~xt=7 = t[OIy(z110E/Ɲ;\Ͼ{t}@!jJ&; ^>HL5a}3۲s]m-ź[1ZwOЛ{t}K{K?^7B/a7DGU⫩ۜ="R@xWPApLzg_ݺ\e;`tu}_A=uA/+ue3 TK]~- B۶n}]v$kE>RO7ѵ[k#wg]ՋQg y1}!4J0.4ޥ`:)9<Η 5sm"} O~z)`k=Pq j>|e^ X, 7Ѕ LRIz<+[OuQQ2ޫonCageN05k5~g`8wex<0%׀~߈s\tK2xzgbl~ak3p?R^}|<)~/l ш*|Bsta×DG0ZָYgZ((JpN(\㱑UVEHҴh8aҥR psLEV9I[W}LSs}`5K3a(ȠXULvV 6`)q _ъ/4ɤܱ㗘%8F|ׯx>ifw:5^%M VSٰehn<= R|M;,W;~EC$g^o9Zڢ6\ | g..syԺDAHF$I*#[K4il`UA٪ΈCgŦc\7 ǗD~f~_3iݳ1Ꮚ#.ʫ KΑ ~H|t{7FZҩ6.w*2\R>r??(߱*W?rGYʫO' ~g5hվ ϧKm0q_/Ώycݼ M.ف_?w3O2~IvsDLiˠ{U܋xCqd鿰6|n'͓p{tHB|>bI% Z71B} f(M=0z/?;VMiIߺ>y6q$-z?AWvK'A7#d2AA \2q%GO_~n%P0qݗWWyEywh=JqΛ=0~Uyf\bD K#'b*Ȭ<`"]?NA?,˻ 3Eb |Oxt'z1$'{'ǝ'\\]KsӠsmWq3:pNv:/[a}0B Gޭ|J'#dttI7]~qgdUʫ蓟mUV^E?'V;jU7.g@v\p]Kfw~#WzCCVދ-Ue'ܢǰMA e$g}BP*(ao͑ޅ~[o]v'[B4Lv7zL|yTpѱID=s#, HxV22RAICW;j+}W0uw﫠E Ďp}%rk9_oΞ 9 {](@F$@M H7ZGAAAЍy-U螞wyOK9H/ϳt*|Wt>.Iv fr5\?#㫃?-uCLκvU=%ۜNZsܸ+^7pG=VPpqwy!FW2vJ  '@A*}$=r۱;;TKG*x|[/?7^2I|j|z8g֣C+Z/NܯK^ U+[y|VSdUKʓ߶V7 x$ ({ ;n|~X_;uC 5C6(Z7;uoE9)s+[7jc>Џw!ayiџeH@B1p] +=7רs]|ך{I6>8<|u)VeUe&qB)Heݍx3Ƴr{#fYZ+w"/qg ׄAwK5F%nS[k*gǔ)k=[On[okdkolwD, >/O=7(~c4ٴ%[w+=n>_Cq6o6Cij܋>OH28M ˡ䓠/ |$w$(5䲆O^ ɛR*>>[gG3\lWGVFj]O@*K}l\σOoQGDi > 3~|ZB)yQ>$R)Ii0<`.T{;x֟ɯ v˙Z{̵C+)?wxwgo9/;*8`YH6N6>h<֚{'ٝk\+N_~{ @|[Ú P|zry[Á+a?7YL~+wywF~p[ 8`U]e<2]_>;hQCC:.]»5%`o:$ zbyƘz(_6?35[8_gy|bV7wg'Ԫf1 @V>)7A{u4V N!i3\R^ $IV+֫+`j 9mCS!Szo=<}dT*L?1z-{Od.[OxWK?zd'u~{9]$qvV)׆[VWFWT֧L/neJR&Oκ 쮬TI '.ˮ|k|=77|u'7 >Z/']l_ o}I\[^EFYV/ߟc6>l]ۿ32/G>OڕݠˍpOl/ؐȆ9ViO,Ṷir"$FB#I/SQh5A0Q(|i4u!isGib/089lUScLMTy6\|$J8o>FqzGh >@x@C0ʬ@L}{A/ηwmIzs9W~dI7::~?C5nUt%3գm%V#o~;~oT$?ku֗c原|IWK^{8V#=/G{Xy\Γ wݳZkd^0V^CG잼 : mN>]I~sTE>쏡r~s_v?G=Y(4IRn\A- bsߝ^螤gК$ȵLp^N._/Qps|-sy.r]ǫC=3=O}8xG#AJ`8 p1n7P_Η՛։r~a<+Y_75|/?z6!װqqk:Qٟ]qL@'|Hݽr6"κj&Vg4%˙#7^ m+wmɃKAϑe;k7RRc܍PGm O9)qvʺHBeaPY_G mr3\|'񰊹1ӡѻxI{|ZkJE)iahzmRպ/ -t1x~o䵠w-*.]ό~O~G/_ʿ+^ӠwWe#7oR|FÎB{/)$V} S 鉉rYCkQ[!wdoװ2NT2yVL091uwrN:%I/4:'a U(_@)xуv% 9j"j,ܷҙne23ϯ3 ~u?A b81N|Y ‹<] tR e{,B{,Bnm+In7n.j -#40lAb`]R>(gch{Gz3л5u2Dx?\U}HRu>O?zdXO?AOoM0?-qT񼆼rz_ksE}#yO ⧟ǟ1,_Nr8VT GO?_Z_m?\A?M'54"<\]5}SO__Sfn~R}3"[k't㠺5π|YyiXAQxb04=G̋PhQjSP%BؿZ>v|^[ϕ33fVYII<3v @qYy摽\\X^sU\˳xK#:2caɳ.ؗ1|hFX =NO%_PS+f\zCK Up`} YP r³o=yYycܑsUVHRZHBIBևbK@7G?i4~bt#6nWe*#_şy"@H#9>ͱInۼ6ty}s;dze[ Q!fPBD/B̢~<m(q' ȦR3jwqgUħ۷bbL5"ўn@=ޞ3M^rw3]5f"Iq"TtwKZYն& DcMnM;"I_Shr#y>yl~*l@zOjPcg% 5daʓ@eHsJ)U"Wk Ts4IK]ЮI۲{N5nNXm •B!G@˂RRAW6yq9 S@y ]H Mh#H\z'ţ:!"]U{Wv_ƿz=&QO}:7_d7Y_lfo.yI:yV O:ޢy.[jH8LR@,όP"a%wm[ЩI'R @3~;FhQbG˱?;Sw?ww/ K_+w?-wo P>T\W @DŃ joBW!Sؒ GPƅt΀瞕~}gMQkjUV^Ouڕcޱ|+onUD}?K{udnc=~LLuP^߬t^ڟC.$I2z/^"o2 `VሜIѾ"(XJԋM.2GI?iʆH·_2Nz46|?NoonƑ|>Z[x{78jny?4cry0,xK5( a! 4 _R_&.N Uy9&gFDv+2!Kκ;:rWIœ1Hҙ*vɧwSJƝ4ja0 ?]jqNwڏI~ th=n1y"@}<̣AY:_]QwY!F2,9; ~_3!ҷG姽O~bWg̃~WpؾL^]<%.F2WuSn)D Dґx+}aUu{O;dJ5hWQMjVxz`x.?,;{21zT!xuX/QMd=ën$*o8Ϧg,WsC&y'Xwͫ h7F?W[Ÿ+h_]^?½ƀo~}h^ ^w~>qVG7zR"?2䗼s88ϢčO6ٵA\A\Q?ob.W[q^9o3wJ.]ٍ@vXrXT:F?"}KsXjSMn&sO_L]~[P|W?mQg^edw>`)yd.#hlJo‡ 7>u7~ם_3 ~?/ƛ2Ͳt=etsِM4` O< uw=?ix@](/2 ղutTPEwο>zg sOŚjlnH[*Lg7?+/usr/local/go/src/runtime/runtime-gdb.pyZLIB#x \E?~:!LVE sIͽ{&{a ݝ5ԇ;}.ԇA ?SU;>>9uԩS˭>Af;t8/XDAD+0bb3[gk+6 ZrY+Nino&)YXyA}v e2Hd[M`#ӵ:џ84ΐT!<9Z93[RTON}27G ʹn^#'S[k +:o5^gIMf&sH]3E0?ћَ2ZKN4wZ/2]ojmԸ?ܴyqH slբ驉Z15j5IԷO .n]kѨϸkDwh*s4j-~qmLcȠ2S[k3Z]%Јrѽ ZA.>_ʉٝbPXnDY>HDSt"Tt"D0_A'kaKm' ls {^5( WoU?h= ch`eyDg')g1h6-q-MC1G| Ò y|"ZX&'.":O :^.%!y>$5u0E?SpzfbKڴi{၍D[RFH[~d\f D742}f-i$H3;KC9h׃/i1omnj D\r3 WDnH':~2J4zP8A9^ Pho,":M!v~'M=_'b8=w!nLTO]T%pg˅Des{',PZ\ZҲc3DAt2/C~X ֎T|B /A#C9 :.o^HAG^|fKsRhpJ;Z: ni6CM'0ɆWN;g$SLbahݚ9^zujݭJޚ[3H/aAM+;1|$s^r#&>"1>~s zWwe9)5eB˄p_/s+Л[k >{om}'S-FS;YwM51~W`\_aކ1^(I+mFfCr(7!Yflv~9iu/9NbAQ)zz, x,S]K72Ru˯'pg֤+9hOY\fgyYK@8nL~b!0Eo[>a1gZ8;KoսT\,yYd*C`nLoLz&gb6J{htHBO! e%D[5WRIE!eIGBF̞ Nk <8e?$W|'WcԄ? ITإfamb榴k:+}+/%%z;H\oEb@SF%R33ރ";ԍ @!ܶ'm; iii$7uW:;үܶuN=hha1C+}_Kঙ{P€+3D^Z ѳ%o20;5VJݵVkSro! ݚ!y>trBm2ASF$R9ՠ1S #)+̇)@o>tz P·oGR(VJ|PV$_p?ѦĽ+/dD w6'ZөΰU#?!:F M˚ 뙺~0齴IL޿d 7ze0(*SU)gvcٿLcydG9%G˅ˉ˓՟Ȟ&5&=[ȱPȯP%d3ǢKSY:8TyһO*G #|=u:aD. W g"B"?C{8_eVᏇ3D^cb>Z96NSTdv"p#{N4H}Ƴ#]=횇%G`qslʲ ѲyD<sK PkMN5jVcLNPbPA4҇a>~7k,e%G#HLa[f~ 鍓..W=W!1QoѷX G-ǒFpFkMIߙ51%w^J~=o^$4@tx}h|Z'2DOM g,n1HsV< @h;:gq3H0k:Yŝ&] ΅:Ҳ沪e#YDV#(s2s=R{tyDA\'"~_sѲg~@NF $>[5k(T[T}2ߕfC""+M/{߽I6r~@H-8;S&Ziq+\F{9Qy^p:OŪ&-Pkj 8]~ e!ty:$[mu<Isd{ňff[^V9l[cC40]^&Iq@mt i!(בֿay-!}[q,0.tb{'c;b'#%'xJ2"F;YaaR7C7$`Ǯ0Q"Jiͤ.xc̯oc@JbAArc6 oDz&LjZx%E2و&gOՉ~̨6K49"=ۘ!!PH23E3UTGGjoy^1DBk#XCtk{ZP+)LL>3HgazWwݳuh'鰻BX̫Oĸ<(*8=y@1D/` 0؏c0g3!]A<xFgN($3 ^/KW*o<ɘ⁲a.QTc|t@b`9A{>A-E &ZQv|nb`#=.po^)+HՆ1FTvOA,OmBYv":U;h;ASF◧ :gP KyQvD;'VT-i'cy oED['I?xcJ ixٌ?f/2 {zjCmHGYwYݼuf2IlD35=`9ȁ*!YO͇ǟ]C+qNc AbDrhTkBPeX.1yDoYEyDG]-w7fLʅ!aw$v7?j_l Ȓ?N/ ز3ZmAG9M)ⷬOvdWPhTu@uQ5yѓOWU>Uy\忞.,*tmi-w̮ t̻QH $ ]}f5_FB-,B~ J~b3ڧPzy'2kT?˵E9ooU_`G\ʵ)l?:vؾV4 ke], ;`V_~mS$#ؤ#x~x:gijYy:[!ƶxB97tX'Q崼Zrlxi)0!Q(nQ(3,Z1=u>xb橉D7-g ڊuH  3.n^?P(9v:8li6&;{Pgb2=I!.? PO0[kl%L/ 賈03 3 ,? }AӋ~0Β^Xn[l3{q ‹#{66m?[zsΖ^|6/K/S/؋_Te%ñc^ˍd&~j?GE0z*R376(E/,|Hu ZksًPH6A>jC kqK !O+蕗YTbubc%H)b_N![s%'*$c UJ:ݎK/kag++6.})_cu}zZju}0QG|}T*$>MHՆ-}0}Y>XXSb݆uSo5vMFmҩzi$QaE|էnEs7Z>Tc0hOE6DOraG g0Le0`0'ۆrr`ޝy J0-४j-Ν5{r.QjW.¸|H;65R^!AFTᕋ`OqE\W-mKpܯ[+u.I}\'?'FM?}7$kCw;Y}xb4A=D܇ه}XACpdDa6r^psP2t/Cᮔ oUN1:q'1_T2w%RYIt1l / /Yeg's/uܞ@es Lvm^z7H8<4}>v=|'Y 0L%^×J}z ֭)ʁDW-|c=! @(dCpbLT H4z ҍZ2[_VբhՌHՆ%0JC\Z8Z[6Ʒq ,m@bHocH_*v[^-kkiglE%'olN%Cejb7_sT~ lL͝|BaYq W%+0/gD!4o=eJ%Rt=H @o`[qPYe{Qxkǀ Kaxu`M"׃""'DE){AF\&z7,fG1H7-E#Ubv>{Yvv%upttw//PݽBvnwrcQ2KZkbdUj+ /`$Y?Bt;鯑T1n0R!XĶFap )|5J!o\eZu .wtE/qTdkיSW\wv[5bK"x|F#0]?V!zUe3v;8U*f0ѻ[т]vnJ6v3?`7oEnv˒qfxiDPRInyU34)V@`<Ūy혴B6DW!1քTVB5ejYUssoS#U託jPBWd 2/UT}dNܯ7<"߉9A^*!7joF\=]Ck8В߿V// GnYnZCٵ::FBŜ>D^Û3q+5&P+FC,,k1ambmQQ1pt1(69c>ʆ#LvNwq6;@e1euic'OhYLamz@ei1M٨ ɣd\NI{pT[N╓>CYjd0IdF\JEoj܊C[ͪҁ'sV kcRJsE19]Ō@, ٍqՒ Es9rEmkpXzF&%CCI<1v B&q,eC.z~e,ANFG7;"bAƢ Yu&u@E@,Kg"1&uf^r#@wq;^I}k9WY!9KZrN $Y;ۋDS\9WFCO..1X Z&٢fo$92&9/r^8+QcuY &n V, rc.'_t bmdnb?i4jn47,۲*B7zeQ]G!.as{t21X, s1ũC>d;&DtsI:ke1p"{E7$}Ǽ~I/"҉]GDw^>Qlr$dGð7:(3W)s=<Q:G qHQ/!]^'>>g0U29'|`@3QڪԱmyϾ0(*cz"UA2s㲱r0ZZ3}@qry}EG)O ZchL#]UvEyR^XaUj3pF&s {Fԣ8a%cR6e׽ CfK21)VyDl-6;ӏ4s*yUW>e"ȺvPH+4\qJYM#RT4="1uz%˯QL1qyIbΘԄ/=L)n SgDz0U~IЭLG~컮XJ+lFS:訫m %y®" ?Uns" #zbm1̃IF%e ,)9Dcӽ z6(.5+c62у<&ը Jq-9uwϓ[݀l^4GҜ3c o(3&Ыob6n)YZnpP0lEF#N(mtYd+a>9J;DTH'F]KvJ%oQ:4j F]+vTwTHF[J;T)AQQ!9=0 CZv][ac U]w["Wـ.FԤ.5(]G>DI?T2!'9o*2x~)z93۔E=LҊ4p%DvD^V a^8h Ϟt,&Y^>^;'D2y$ 2|VɉCGzrb ԝ3lb7q*8=a[m|ΘQ[6bOꡍy'1+F msǼOI621 E,<4)k {h':z -JBJ7٥Umr:ϧC|6颠D)DuIi=It(X^[s;*u_i6KO rJεUV9cCЕ*в68]O/G<㫻9s2БWڲ1 ŶCP;^ӖZJgB ZJʡEjR~ڬIJ.I%WtV"ֵ[.%H7VjAޓt"BE~O.;.Ho$NQ)Kr1=OȬ|/&C>uqz5\u}vҭ-ʥ Om1ex qǰ~5Tf%~7YZGH:AQ- G;*}b*?̥-2Hܨ0 Èh$maI:Bk%c:г)+<NX[7섁|z؜'hnP9􂤬 U2= nӊaVYTA"Mjo`/MUqWP'aR;&V z[ұWd,̴& Xa[m/m`a=ȏeb9s]%Z5GIb H8ަcQmױ豼IwqT0_ pB4S?$T sCwXĹ{"8$=j()4*H*SpR{ o:nVGu-3]6tI^\wX=ߓ^ ט?w%N%P 3 Ц\$}[9'N3> *~BY \*w|Cc6Θ~Q3\!ȪqV MP-{acj6lr>.:#z`Z)Z$b+ZeVܒ/g9sv-"7KCyl|;%ٺwF{Е;:ȼ| Vf+<9髒֔V)yyOj쬼>IE',{`6!j8gā8~6%v4ϹVK,a0v({۴мxRMcRN,{.yu"4XqMcEh颔*𦐺`zL3='3F(8kHF)cꭄiSESf,4B35_JMWJJ rL[J|w4mVQ%p-KC bN Y2F5`xAّ9QvP8SW|U }Сj⎕=ynoKcS1&fiE$L~0_MB"5h\iYDiAT(5rpxG,Gq$7r4ʖAˆ<ӍoD#w0Z,B |9^Jȉ"K N.Ƿ??r<%|jt0%K37?\/2i[cց,/|m%nÁ<zW.'&IWf S҂ϹU+rvmI67uc\ XL7Kn/_rL<5yGڻ˗XU*VX7'@T̞#OtF!F MZ_/ˏ:]5tO^iuvk/05/Iqap $m竔,14AÞ_䎆IKjM';v0V+"ΕuE; q|]ep Çy`SnXXGk*XF~NQ^(XUk[ u NQ%lEY\O`=~F?z% Øb8%^z,1ڹ=(JzWO:'km=գs{ xh&96yC*ñ&^^];Ǣ#C(/DJۊ7x!<:&]u^EiĦe%^MOHiaUcjoTHLxi-SE9TѶ*°8Z:z^Y㎳e|8%FzP)d\~S6qb6.p( `̍Kd/ Ar/@j=ءHvRO.wޠ\uU-)]yf&[o ǪO ciOcj}Y?ʗ(SjO_TO@:u(W䁹n(.Q\F9~0)Ðtfޕ.K1B3eYъϷ6 t 7f݈Zif (fATqw< yW,rp"& LN%aD;0+?@h癨 4\ nƌH(x d<oJ$0wunW\>HfSp(PYD,}.YGs\'W\T)\`)tg~1͹Ulށ"2xukՃE ׋mn/҃[*6xVO ?LD+.#`ꖢ;B,<-A1\|;a&wuAƗ᠛}?)wYGYbCG?swRxdefUh_~CuGA6ti@xr@7F_ÎX'rC#"!1OcA5vuP>1=Q.@b~de n gO\n?ܲ+]rDs6'gWLSLz4޽PF2 x*3xxCƛjϾM~-A^̓ƳvI Fe:+Wr@5sq / Q_`wrja+㒌\[J /~TJF*0ƫ;.kW@֣6o]dp2XoVP( 5^yvGJ17Q')C+8aL?9S$yJDD^!;R1UtP_iܒ 1 3HD="ϫUϰ *j~D!g A"kԤ>u pA b8 T?cXVv03,\p1\=˫bC`dG=7Y}{Z\W ܸGz cCI n쪳W y9n+ʤ`MMp |{`E&K!r=@PU~N}N@V 7xWo2;qB0 kL ë\$`aQ60*tzv$TRRj3ƂjQNZ1 L2?#ecKi,(AE>i`8`¸Ѻ+r㲲=#,8 26-9J8fIf.ƲKcJY j`#rJrŲ m T+[f[2,TeQ,X( 'E.;DK c\xENƢ<=bZpct\ɧ*8;Ѐ8r6q^ @plglfs"7).m|ɺfUR7,hmZGnH.ĩ8Q[m;\)$: s~Ov|B7"ffG*7?mKLLtwl:w3>o3i/ nr/ڼ4/$Ӵ/9qx.6S<7zr(~((6'Ⱦn3zn߰ ~\Y7m^)qƨ)[6>ԗ߶ywy7VʕwO/s8@4~-=̔?\qoG92eL,S \⋛ 6T^pccR ?ٖ.l!w,I?9~n~asf@yVެ_du8@izf ǹ96c~k|fFfƇmڨ3fbjmv͇k(~Nsa+F["o,ΨprXG=Q(/.3?!)yJ%ˡjsp&͉F<o%֌{Mo=ݑ'cٸlj, 3.Jg픜H~iP֕~Y4Rd`(Wwpr\P>U}m'({]5r^N;Fo"Xa@oᆔ>NvY7w18ڷtp%6KggܶmY-#[ZI4?E&xm󸊔yVSܲܟlmng?e1. 3U Q~a8W΋jX༖cUolpC}e탶+ )ԇlNQo[?ls$r4"Ͽ~gKh(Xޖ sdʽH7z7 Oߖ5=jtY7 J\MeEtE7>J+_EWH=u%t7[GѪkmu6 QmeJ%xI` ֖x-4[b-LXɖ [Ͷ ] [-mek "|m6[ORmHw[Vmm yVj`SL[ljKӖ`chA'xe"eTdsSWdldRv"ʸC$̶]vƆn[c%!ev 듲uc}i@DDMf?`#K:]$83I7\RuNRr, $mJ^Nu?ݨ"?h'w--: Ny8P-gogrITrcçl^3g;59rmW_=%`A,xk|z1.Pq֮EʥF"ΥXפ"KM'E4-U󌋹cmgnkL=+*K(jȖ䧦[Z@ܒL\p;8WQ%'Aء'SuFt i^8X7zhƭ&ݼ4[lFg[F):ljD;}[0C̘il%۽kkƎ:Ϳ^VqUl3ZSMʑk,LP7&ye1C}'Od"Z\nɵFəm-꛿bd57ȮZ!(Om2ko%g}WtjTsF8_x¶f蜽78 z֨O:1_uÉs8J*̬:y٩ڊM3C+֮\{֊SIBRVN'kl(9IԷ ˂Z#{Ŏ&^fsMmЕOo"g61yW:ӛfS[jM,[ QƩmN Fmmi>뙕v'k&e2Dڎ*OYV7;!,~f tX +ˍVmU AMN'OAmNOMSFZs$ڳ3ɴx,[Z;v'zXxk[֮hX=SME2We[yM]D!QխC&'=b޶R޲DZ̀v3ۧ&oN,w#ud> kZSrFfMPtŁh> Z9Hj?LƧ75iUG-&:lQ1of:>:Iԏ9i`7տ'Ft%!ʜ\{Jv‡~ e|Ic2Q3j'3 liM vzbF4 %Z "iZg*0VSf-_?l$oOQmVX󝹉:1M ;@Lg_yy!_ քdm2`)/gC"%`m-y\,"?nы-D.&&Ꟙv!]7iHr#&kA@>J|VæJQ_Kþ'!pşſ6o2u襵u.@&_$*%yRV_G==J,rF+9C_AKf}+8=Gъk!՞Y9{2+鋤̧!C {Jw-sy-l QM{hG(M=bAʼ-2ʝڙ|Ayv2,_L sV>@E  ;DVS T^vtStJΠOOh¢N#`$ZtI8(yo9ؤ3?O4fsw:"Z>,ȁnmDtO>B+,Hau2 %}۳_H<;Y,- %l}얔;G~I om'ZGA;PdV<[I%rZ=Bi_^oFیc:K [(DGp>#`_A$,c;pWQҿ!lTksЏϾ% De'<ѝ[ʴLѠG.^ɭ0UkaZxA\t;0J^1 惵_I|ߡ3`_Vr_2 3i'6[rߖ0;9̙3yH:_|R" g#ʐɊ6)\;PtjK)[/@yl}\M"QP9bWȘʸ,Z0,͢RhIK@v*GKj Jܷ;<; \ g: RXA*vxrYViEO.Ojze]N$h-Uܶ>1ƓrbU(:,#y2DȷSyЫXTiﳴ i X̱'YS/'2{6y^=v f}UlEPyBgf{|`  ~D(ytBKu;l^{mPB9DlRBZhOU['}B+sk N%q=>&uJ$FjI`m2K% 3Şt ^!sA1PAkhY/kLĞf` nyְfGl19ؽ 8V$u@=e @).+1]+T([j/;23.LOd4gxUSaBU"[uG~ ?btE24WvHܕMi)Ho^ݞ"VW$|߮)᜵V?d^4xu,'2 @0O[4Y H㳐GЫW㘒M0ɚ hXw5ɳчKT"ל3D2$KTFC2gYJ < tU6KvG`I2 'R . <PK"hs*Cp9W]UM ECS5( ;SjWԤrOlN嚦RTkjMd$H>5M\gAR4G4E/*5jEs\Ӽi~7h4M<ŧ|Shiw,n93~O[ۀLi`!* |i$l"wBN$QFfiBV`eLBmDHܔX>$ٻ-| !/$qW_Ξr|"kȬg·J|&Z@dM|j+!xqgsruFnC{w6)w S!  5D I cO|; J#T,M c. aP'ʊ%eGAњ"jN5']ĮDjNa%sTDDE ;DQ+DQo?Ev e^AEU>)i\>}Ƿ-{DX+Qo.P2cgԴG$]Ȝɦ%]hN)G0FwDUTy.4 T8PꡇL="zdǞEOa6_OpKxq (UA:šp}]bIǸ'u *̄vK8 Y3nZe\FU1L7b}#rp7B7ń>, "CfXm2-&؄IJ #[1mfeZzCG¸!OQ2@=g`F1nXA5|M$= (S1>ю`Ce밻 㓏 9]Zb T?&t 9OL~nyB԰04 <>(TlOLO1ILJzs'C2?FB\^CB毋ūd@ rBWdAvYC *@C0Q(P+Xi==w%$̟EsG&l"z,(>w 獳>=Gn 26эcCЭ u>ă!r!Y3p҇B0y~k`Tc7V>/$Z+ocI$Q^ݡYA CP/nCuj- gsj  ZY rJGXۈ,n;VҲHwBXvԴ|T *\ rE(tWWv5Ue[šK$!eoo$Ad'i(WOC,.~mg@/HF0d%\u6reZhO{JWVV'_A%Ӎė;S2";1]P>eNݹb|0|}ň+߆k0ZfS8YXwcLvJ1xs 0rLni8 cx>/$F\$y(O@tW o_j4p a`.cI#ՒʖNjI{"fْ03킖kg#Oy% GZT13Wfb EyͤBa5yL:(T!LLVSǤFL*4T1ΓL^LS6_a5UD d),0E&1d>z |A }4[HЅ2R% Etr)/'d /5Nym־,5Q*Jք}=ĚM8% u}yKhm{QRh 'AaMՠf\3V3@2XQV10KGT!;mb{@]:K܎8Aff.ʛh4F" *|q-|E5 2ܥB0cYcb^B`tlDLב[vo&9H]!U9ueI]r3(u8D&q`̵۽㻎{=;^bx(/!,|ǑMTPIz1^*4zlvrakLW". |<8BT:"HYi{yhߐ#M@-흗M+Gзg2gh(e(+#k#NϖZ"*v:ْۇ ++*яB{S(>FaOBQu_r'V eԥ'n" c,Lc1uh`cxCIZ 2T7'YA2S$G?IK Q6c{^ j(C۫m!Uw 0U/CM?ak362=;L 2a(0M02G^2+(d_ ![NV-vER iV(.:L3dsPV諏NY@8/!|vC^@Mhw?Xɴb ,jb{։n:ǭT:ڗhRxJ/#:(QVh DtY/ %f"2퉆V`AZˏQx«ZdW`2 dW-d5oUٻ6K>A|㾳,x1@DYؚ y09w+b7L}$P dδ93yd&GU:1{2c{$ӣ(NX7mvfA;ps eb9YnߺV.tIl^0^ \ju>K'k%<^/zW b_TI ; 0SͧP_@GTR!ގtXRIOV!X /۹ U/e+j,VWW!^b+QsbgmU*1bݐ Ռ[d-{ (,)6 p"CpVOZ(EhGhǔюR5 qf8ڱh =C 3v|2yZIĩV4rT`UҸ"3nsيʘ_W|Wx54Q UeTTXWyi8t[併]W#KC+U(y38t8IFj#etIgH 2Z^L?b`Xuq ` ߟ}ܟMեP=ׂXHCL,) +јM<p|,T2Ex d6#b|ڈ?v%u.O$'jSN  ]Tj+:~a_~PC5:h&o>~{&bLӼvMi9WG6=tRʘ[ӿ٠ ;v1Ӯg&oXor$j# w&-5a Jǩ/sd!eNzQK+MdYː _eLèpms Q61iEP#![u*DQ qe6l!qePͤ\kU. ƃ w;3IS`d5 +%ɶd4&^I*YKAhW1hd_&D<ՠ_jT` a0qo\k{LXWf uj+Fω$vpT+u>TgzN{!+i9U+!sџ\{'a5 W  o5*6jRF%,Ҩs@12Ti 5M!'uÞ(Q]*T)P]v5C"*oG3|0/(~NC I[ 8@rtCW ŅQ(Yz ".Si. *hU*;ZD1)?ثҿ9!9@:N!|jȬ;n-)Y.\Ϸu LQD(x렴@l'0پd\Պ>$ɶ.wU~/yVدu{/waNyHT!Ⱦ;.~s)h AMS[R(PEP@oq^!upd.D9N K1QWPi#xٹ+>׶aK$р*e* > M&DbDT6.1HHH.~߶{BAJXL2;/޺e Je!2b8D-(eXd71ӈ}+R"il$q\-%ؐ]z^} LJ'+8 *ED 뎓DY~!I^M\ b!GշƧ{ga#KCCd=Өh_BC|7 5ԆKw3ظNi3t3qouH ~ Ye$ j(wػIp@ur+;׹lU#h)WJ 15^{:S_} >nE7絈qr3ֻߒ$`!oZ(K־L{ ҋ CߤnlS4i0LXT 6aʬWBQQrq5pYlvG͸/ qm}X;N$p-l԰}{suw3M) #|}+ŬS\ÜBUx U8p]t;A1KF [Xc (R^Xy%SSi8+y1ţLpG{-[.ۼvà$kQU2IA4=a\e-'7 d^/Pr0϶e+kLuC Ka"ڝ"_VSD5ENv" IIӼ~ii Cc>9qf3h$uע\$_]cXJqU}G7qL.JJ%/K0ĆʼIG\\4!KnH)mHZ;i|եv%(mX:!"/crhv#x~ّ=9D4|$NP$ 8JqD@.[zKBZ'K]j?$fwbP ru7X32MrX4+Wը\dSt\,SD)6"h̕E/;EdXc EÕ 4.f'hJzFTP\,U|l~~@+ÐB2/~Үv~r4^ZwCJFCH;r- P0{vmCHisT˨^Zv_ZukߐHJXQB}fǸ7PV wZ y/ud!BO5"gsW(\npaB}O˚lPkAڵ>mݵܲ6ҹ :"6y"5ҢXĻí{'>kNq"a u׽;ւZi0H7ԍ=W\ِ5^8!,~/u\'? -%Aԓ5x!ueْJTFNe(3fyW% _L*YT-{Cwfk:孅Xb5 q~칸5ZYxWgɉ6$KPu_.t; ^.>d"fI:I#z':ʲ;TZF·͈L./`W5$Y#k\/g4WLTgh)?;kER+*;O}1_< =$pvL+RӐ4yZK+ F!ؐPzIEKR[zaRR/{l$nꎭ"}w-&2?qyvĕ>nW5$G29x+1$d\@ԡ*-n6೬Qh)W f8' ,/`L;eV6]ٰe{,JMZVF[?ڂ@ r].t5!Co3łIUEd4"Zll\W= Anلz$kqbCD8cp+o}ҢEJ}+'/+n/G֊k i]鮸Z:?toDUB&xiRMu+k㣦(ax"n jku]IkB#5\vSUnZXPgYf_v$go0X:ϡUtfTXfBċ.9l&C.;ɉt}}ljzz؂ 15 {HZ H "Z\(iϥ2.;Ydsdc&чpI&})pT-T!jM9><]Z>]I"\8rӐZKj PFSmvxjrZ%k JyCBed|]pS uۊ q-!J{\{ R(0enGwbHL*=2S+&*&ׇXT҄$s+ı*HL.8%r᥌^wS(fnu\ktř s1滚R+.Tr gO߼/ Zll/Q4"~'$?u;2XQ]M`hjk/;3ً{O:`6<96=/ֳAiSMO߁%ik/8&؉[li{OgAf~ϵ1S|ƀ1M:ICXQ?j}7I:\9vx.8Msp]$Dd:ک[FC}*-> )\LVL]:^+pR g /":LğwQ[ht,I;zjwo~ Y;Ck C5Ә.#,g1o=,fV\I$$U"(CYp\slxgx)Y p ^HHϵ,0$YdzQߔ^鯜e=K{카-DD՜HܤUsDmvOvf>}&6R@؝ /s̿A8uh[" !PmKJ FHi/u ku\2(q3{fX~}~45YD rzE<'(.ķs|'h.eot:KTn#GYY!I $βDD̲ؓT/4ㆨ : apL6ae0O5=Ԍ{hr04j?6ә͕c1 5E?ՔNH͹曶=ՔMUvy> -GG,- mt|A0wlY- zZ4Aѳ=~Hb|0)4NA7)h )JB7)0]PtS.x)AsVkGjVU+^cufH$~<:J= f'{Kcs]`#R:0CfVQ8`U4ȋ5hiԽMzZf6Us]h*__ 5eARj6o˵s@w9̊h(rX`HrU km.ŠŬA"z 9XIexT浧ܶ|uzڿdBۡ}%OX*T ,)skv\O% Ӗo'ZZ!uJ$1w"P`u_#q;؜g NA{%KkR[/c1r B7 "^4!—a;'B (Y;`j" I|M c>|iXP = =&;)UELșPv&)V Mc|22~~cJ{6!Z񗜑*4њt)Uh.wm˃v?$z }#sxYo 0B`| b-e$_2'㧜οo?BۤB3~"i"U$_}| I* |8YKNh_Oy?CxwNy<~'Tfۦۉ"[ugG?FgGWG:slUqW6Y.5 ^zWV$kCoהsc$UB1_d-Tk9qw34Cb`PT/vV^Eeu;CQB"%q_䥀^X=ྗod PkF1߆<ڄ VW"0EV%|8vM4{":;Qo.(FGQf(3:)Q~eF&=; aH0R\KJ ojd3 ,I>? iSPե3xh -~߮r=;I06qV!Tჵ1t).HٜR'^I&lNKxzgszؠT44M{J>k*> E3SӴ{HьyHR45MCk;5MÊ"Tܧi&+'rlb,#ܸF4j^[-l&a\%\l, GȊW _ ɉ5q;Þ塥a -fУj3mKFA5ð1CDfbSZ&P7.٥R#!XH0/*=@8MqI2g.)WI;T YMAɇ2*ٜ"d"HzWs:UPxdQXMՎ:`JkWsUpaO Od*G@DdqNRRB }똬Þ(Jd@A1rMdGFYRtAmkާЫ`@vE **rM :d}b(f$Mxu,Qw~7SXup^wŊ3$ڡLU3xэD׷;/$8!;<5W4gȖ|P?= 3z+L(Y0M6nJ]f71FuaA3M=6|i6_]+5| Lo?4E4$<#˔e3߳9حN~z9"ky\b<.ᓻY\gל` ||ݥ BcV,j1"(y9-$>U{Tlmh8c;Ǹ ~>W*J6Y h@&TA@}P EW 4[.AEwu Z\^#3tD7<Y2(V/H̅&O YGu :WPe ?F)E/ޗ!xy5\jh2(LOىG6:}bY3]3$-Q7DP'%VRKЄve- /EoC&%EK%M|ck=,|]x~8J߳/Tuv!Tiri e)s~c8FJ?+6[}DsE-ǾDLsZZLe4z,rd\[sDL.e1"Wpխ+LU͐ `ĉ xz̄+uQejidEf׮BsЙL{#Xx 3@s ٹٓ8ÅONFDv^ÞE-q\O&lA>d?,EgC.LQ0,eÙK1ER<ǜlBInuJ(gfrˌ/y{eQXO}6`7r3֯yD/PBɇCQ sG^3!Py(')Pw.dX,%Y"9ITZ?qj *sQL^X1zgOsym'Ӌ@Y6\mMgM@. N[!ٕG8#o3~i)И` Ɲd"#4fo `+!jyޢ&W[X*B# ?_ZPW.mcͪVOvEsiXDx@&do'+ T!pufl S8S?~[yg:S|3e|n؄PʲvSNR#ios ?ωptHfH!5镚W.%ul= m},a#3VkVKzBLh=~d"#kRB(`XQAQjX9} AnS>CbW6qlycjT>-يZ*(|bvK:\/)LnH.|nvK1DT7Soؽ9%# :'.$t-eI'0n񩟏x-ĞH}L: :K} (nybζJ$pۀlhs \FA"0`(pQ kU_K#A/ZPM} p!@!ZRŜzka[4ėg[ۙ ƗPG9+ȲgQ2,-|2O(()(Y27B-V,T!- d,cCmnOMn$kc^::@rq>B4,` "6h3}0H2@Uh}6yz >W V(PczWݐB7Dm*݉bnRv^Ũ?U,ew?Țf/jpO,u5,\j@E%Fy$L 3͡l_AW Hᔃϩ'oNPmYt*sY.ߑZDP(0ƾįߪ <4^&6ѧm&mCyC*.u&s}\+KϰiM!&Za!LzQ(C]blj"k5` S%)i!t5Ca&f,"2]ZCk0ZNgAUyMc.*Mb 7eyR!+m>$RXMw}DjEnV:>r\Od;A/S FY,=d@h"M KdhJkb"'2+|[)ԗ@x(;kZd{d,Jq8k*T[$e0RY(4P\!UDPoYJCBfP RBUb_̏#@-/Kͣ-BI(T`%2H2OSTAOA?1P ŗ@nH$2V.BOˤx(vP\ZB'XgA*%(ref(@.͡z2ܗہ ? )w !w5TJqHs 0 ZJ +j׸сOW'PA[-L„+fւ̪.:5N%VZ˧'>:pg: ̍2Q̜ME2dV2Q[} 0Af4|/F?DȚ l|gU9NDR0ܯV"~c\Ԑy+};io xOg0okw&=-x,ށssF:k+DNv5SuksMm8YH m'Bt׀BN6Bl!'"NF*i9YE&VD+87d+8bN cbT!ڍ0^9jr0 0&gZHiF_a~~4f4I|B0RY|5>`;ўIdeK7^<#ƭ(]]n"kLZ0p>| bjU}dm]2O*v.`vPWhs#rb5ɧIz@8$.p&.t9+U Du =ʻ|TP.6_(L`v4!W]e6DvOa^d'NiP^ani a0>b+=E4-e(z+niK=:(-m&jtK[ZmNT(˰]ʇZ. #NhܪEX́(7-/Ǣ;НLXx >g!Iu2YtuNv^#҇z>kWغ9RsT)DubWsv5s $G,^Ùmd^$r"&m o>}_:~%MKnH|9pq%W竏iYJO?ԨWΨ2pzj$߮̔[]Ow (u8otv!:[Wm\&;}$-rU Lj\۱廊2 _>K[62ʆ5sA)O~/tnn{ɻZJ|\?kńYo|rp;Lz Gxc8/B oE)=]xQݳHaヲ1C2:{."񵈤Q&בnsiY? ˒G&{G4a?= ;YK,bO4vZyr_)ߠŹLPy+ kbY Ib.xQm@PՋ6U^,-K#z:ֺ/^.S_i?{< ~)TLx$6^"BD7ͺ62Ao5̄W]UcH"ZvQвU?ZpM `yDYV@cwZSXIx="‡Ɣ~O*HwC 3hoC?7goya#rsaLo >1obC~;\z~ ?AG0*%j"^vu8vӖK "JPs=߹x|YzZ/Sw4l$RX/]"m}GKt vDkB%NL~N r0DRbc3->%Ťf ?:S}b" gu]z:{_c˺jgHY w#v|Dč)nRs6/a'͗'4۸GsL(pD ㋘ i* KLPQB& E3El+T_!g9>As>A8U}*UʽOP h'YE?OP2~'ht ǯp|]<4qV|B uhwOĭ̟0@?2+esO$ *u2SFշi-[3dw$N3fڕ3Q.c&4Cߊf :ؕKītt`p}̥_F\`~ǿhAٸ(nHgUz cV8\ 61ߐ!Zn$=2wxi|yM3^E,eM/A8\q'aj~[힛H l@UMG`CX`'H`4;w7Ur$7nN1Q j{ZP֭+TNQ hO zGpq!8D-E\H.b.jqdg-g,6W!32^צN1L^bS/NEАa\=HHQ(kGn86L3Q3WX^x"*]:Lմ8|N7Q;eOMb>; DG/_Zfl}ޠ{xQ_zeo}iy>rCpiGׅ92keo-}}^!rAz]rO5 y8|(3#T%? lZytkI?fmGj?UcMN铐M顑XG8}ӖN+ۍΖjµK-iK@Uz"(L)zًC1{PtU*7ܣb>A[]]u>UO[/<+f  &NÐjɓSMҍõbqwR!}hsΧk[UM拡#:6 \'6Qi2ZpV8zrmMR8WmMn3Quk[؂l`)kWB}- }@b __V:cJll 6tyɸ*\ڭ EJWګB?DJn"Re T9WKTnI*5Eou\0‘eI͡]lfś8st#YM⺞`p8v1]cL+a2^4bm8w &&ys D19J*4;h?cYc gv7~C\ҊgU+BBѯb*N8[tÚڊRIqg;aO:; (&rwj縲qeU'[ghhۘS*v ~uprO XǪ㈈DD cl駁oh%?ecU_.,W;3%./k_U}uHBf%cEV,ʸӦ7uB~w\ƉapCEeGt\PqGDEAm]ǍQGu(9}NuUݺ[n-OQݚK]\֨HOk"ݴ!})Fhքw)",ycD^&5׵GXCO{];Vjҝ=Av=L Ay-SݺD4Gai\nw1';r*Ih.:sQm󿘿ɳz(wzJM\uO8RՐW=(Cۥ\~U;"PDt}G`E} \,FՇ #γru%1Gtɏcm4Fi&aFBQZ*F #pnͥfA,g2߽ ak9=hC#49ȁm ss;VCZ:T\Gf hS|-"va[;([=l~>ǡy^.>~Ct;f E0T!{&bW>kdV/{b3j2[iGQ  ziGn{GNK  ?J_t#CMy'*k-䰒:vW`3>_qׂsS0cZ+j; v*k߄q*^$9H0qt$=A~ 08 B紅H˚QۂQrDlژa-8 (fǩ X  `Og24ɟ5?.!Խ7*؜l!Ca`Z*- l!ğc2GB~Dtg&WLk2KxڴM%baOI:Y+YYgڭd68W k.Wv7b#;҂)=nW:1晑 7GFu n;X˽DTXˬH/:9fdYh8/[t#ֽ`{m"* +Ez"Ȗ V4N~Lˌ(Yb#k"_vF#_~n ڸO`CV `7h=l8`f~s mn~pçtk7D`Pu>3wk"`.l>gX j'vQ ;`ikFwtćMS%芫r R@Jз2Tu N퀩,;Oz _z@P\Q@̅)<ȝ@pwH G& *c#ƍJ<MbͅZ6$RMM?M(ljf툄SXҊPmZF(LC! єe"Ir6Kkl`;b.?./RSR7Ni YAːF/V5k",_9{*k,zRa-lo ۈZJ-z&8422k iWs :F1%|~\+,;'Pޤ/&4cQl-Їljëtv/bk6F; nK܃H!#(pKy' '5Jia(# 4ZXX zr nQ,)o4vd-3_TݿϤtV9մgg3ȏWl[ibXٴi_vh?()N- N˟포0OjƁTU0`0S! Gq=_h4ȟ'ٴdje6ƒP/CΘpb=v,py!_dO1(pl:b͔@ΟNA) |1JCREJ;Rb{ԺӾ!yA1p7Ġ3aAOIC tA!r 1h^JuByX`]BY1 b]E:OѓYvtTd6 IN3>hҦ|WGhREW!Lp޷l˅/9,I")p*mbYgnß-C z1LcA8Z˷%<YY刼=y'jb!#ٓj諂=} @5O>u30? :{Ȫ}<u#O5GO5{b>KX읯fLk֚ʄ-+ꝧf;}랟BmoY{/Q%MIéD:J+UzlfNS2m4@{Kce8;(r]orlrZYHi[sYdցnUX\ ]ڭvoη _S} +ag5,[ jHOi {k ?[}#H},cX.Mtʫ J/4tURϊxC"vdBp^{PfC;>O2".Э$H31ڹ?72QQέ&13V6+'&*-5" fX6aFQ֙BUb++9 8 R8'1$QK6r'SHc&+Y 8R~xIؖBs>jy/jR8tU~h zmlZA (_Y*Yf2JT򾅦әKh蝛C^w@xx#fMBj ވ<[ާ8 >Ggi\ED-ھy2Mq3o:jr5y$吜OiP>kÞsG8P{ø̹a:Īs >Q:12r`a9Ք#gP[%T3crj,TtYDxdD)ci,]hSMP܆:;|6lf1;ynm$ʪт,ҥ ~ͱ%]21&oCdD†_J.G^J2v.[&vl. 5HdKCF7SE$dDC &N!R&.2R0IC0RLmsw>2V*Hx f< ]"a7$:S J'ކ߁0?o2D1%k%o7n,ŷ S?;ūPwO["oY")^`UU>qry,RU= [*/0WJjU] )I&#?vJh(2Jx@&^>zP҆YWaJW^Uxp-<,s< fȟ&fd']MgNȮn=1iMfB x *l5oޖ nBԪW&z @;ZX6ʼn:M.X82ݚlڌr8i-PBiطv|Ƒ4s0KK. ̜=9sIu =ݫbW/ }ȶ|h;p%p"M'P=.cfx~k,c%Py?YƊ[C|`,lF2/ 8"qnE(M/We'IJT6DDȕYL23VҤߍ `˘Fzp>*T&R>n^F3n"i0#jaB/hjZrkõf&8.b.GєRJؼsȶY8cz+c쬕0fBd %J63&VBv 1Z w*frvZRQHf$(uqR `ro%ls\9XVTiP1&ʲp,̘a-wcGs{[p ř4)\oih@'<֋X2^ t]b/X[VP(O4r,:h~ZPQ?.KI鑾CJv'[ bvr,JcD )zD΢_'qUѽSSV"l)ZY(s9HԭSvG̊Î]xJ4pͲm[xPY|<L&QJZIL.iW-^2i+ľ*h!66@v,sJߝu^2l䂭MjF[fƉ1j,Û8d<#T]Bsf/81ۑ+fš2(N55ݛADzf#N)MnMrwѥg;s=a1;xٓөLVuIzՔ6p$IlfRSSΚz3D2N=<@a\dZ{qajr>[ޅ)h_+2dMD m16jX6+aϲl+m24 *o\-H`*l4m.k]tuN3 tW(Ncp'g,KOQ(lMeBɗ7By!Ӌuu};'1bMM1.e9B Pq2eͤj.T*^K=3EV2klhPܴ0(@bp۠OLsftuaOESP;t4[e4 fRvVYhc\ߍ4ǢꯇvG 3&E/HӒS-쐻 P1Nتp \]Fqw>:bVļFm+3ũ&b ^2L&̬5SOr|>L/z)32 gՠƉeK.pkzm4l8W(M< e»m&,xdR (s 5*)8Jt*sʦH7ȲFWY^ hs=(&z_1{(w> i:ZpTT<*5!ǮԤʼ \(L{VcmO*Xџ5 ѫ&R@hubu0obQ.}`O˚~84DUxge uژ͘a< 7,\2:gb2* 6{y% ]^[*a+͘r^p^` ]lveqr &uD*bAF7ˋ3mf1ܤK*`vOLG@/qT )S6#[X*)E"1;RLj=12ϭ_!}4<̴ʴԶȃ?PV!rw= K *c67Ae MLZвR.XJ]00TX1%VCW~8IexD^eWZ1xm^T_Tk3:x)j2F^`6 VB\v=pyJl'yQV"y+:h]%_f^Se޽Fyi/eXšhLyH6@ő֌ɭ׼!5me0I&| !wµAبڃvD\x.XaeN5ubH,3dֱXçc$SY+Lk ix1Ӛn60;P`Mv/ ϑL0-qvm͗kkj@{@G/gJ[WJe٭N'DVA8ׇ{ZfD\>(WY4ep=[MK]z-kmxA] HixtJckxM:% )jsx,T.&p*W1{vs&l Ol[|Ofg[^و/{:Nḛ@S,,m?se##j<3Y:U7+fY;<8C4,JW֔LݿH:[R Nma+afĽz(0Gf:XΦ@V͋J yFU`bD'Y+Mo0 <ͼS4i$끪}nibŌ"ɩ׈8*q_.__,\5abF63(}#a_ v9ǦacuG4W2)xSyjjR'קdR ͳ00ѷg(dES0-)I6RyƑ>zV3+,hv@BPR]#E#՚Lb^7Cqr,Hhf6n~$3)M%"?OK+YV4rv=J@}P~C*l*='c{%qVƲlVRM"\excS+ޤ%*$14w q˶4\mj9*ר?.m )πubj5#5ͭ6g'[7;٭ʄ!B6k`t+W؜vq9pLjYWƫAz | e^f%̤[ ;ybxpͿ]M*vs_iwؕGXf$ceRx}\rU#ϝU2^v::b,0aa^0sW.$bǓBx&gS٢t47q{ZX!] U^fcܘcDw5[|lMcɖddl P5CRf|t֜iiHianNhĎf*G b`n{Cuj@z!j+aOc. 丯p#sxa4ĩtxly#K՟Zӟ s 0*ҌIu'AZAF+Pn xD} z{)Wftf(Y}0Iea5<V±"қ\.M /"ȚYL ^Fxy6&W̜U09^91g-&zBo(H`DV,M.!U33K{yC爩<b\N9F ҭD^a'knQ,맙knKeF4(9 l$jc&S'yJ192i='5503<fʼn.^ecx‹)aUS\2Ә:hTg w #)qh=A0LsNj!E"잲ly,C xGx} "cbFA<.P% ~0ʩ651-Cמ$Bß˲ճJJ+ڰȄX_! ˬ+ [Z;&Q8DsKbuݎa]n Xؖ 7O\1r㦪yeM4\]6OWYa+j$ZA˶]7w3utn&l f|an>$\*v0\)|H-ĞF9ĂVl8( ZXGYI? d.-XeGڭZYVs̘>݅p3Ѫ+.O_gX\uGCcPvpPee Ż9ذS[&O j1-azu+`_#nWydyvWs;fE.'xʶRI⑽)BI+NIѳW585:>y A[K^xgW<nnq,IJܕ@8p WF_]PiuhgJ+YkT03ѶG(36תa0wig&uO|Hi%ij2xC8#DG;ձųg(c;;;'Dt$3;M rQvLlMe:݅h'!SH\$ Nxa8i&rX{Nu_U>hCb@   ei?p҆ӒM)w.B D:K cкa3Y1M ltEV7X>PNT2  QʤiXi8b0L^Sp!n%fZ]ygA▞y z#@a*.On5dڬL ǘCPB/dӽeǢ6yU4e%`.xBɽKfG UʶÀ]e$ 7v QWX lSf9z:uf&Þڳ>o ;X|Xƽ'&S'bǥ`gA`zf" ُb*,>1}"!W݄x0iM\HL&fe6[,4)$FN8J_6_[I5ּ(TV{WLBuɖ1vȕ.r]dR5QܬdkhJs!#~d:ex3t)u"Mm`40:ĕĒ8jI ['Ӊ_dRid/ۓVvV˭0e5Np ⋺@ \ՒRq*:z#]zgIIq t8,'ڕl6U[ƾoġBnv1wB1 ٫nU@d#)-xDZ_wF_^Ч?#Fw3Ix,\0әTu\pqIu0~rUέ7sj 0jc,Ey. 6z#N|(C?ot&դ(tsY3N5-i9L,liWw;Ild,54KcP8{{'YVk9#X2V2djZ 3aصHNLQvbcb~LZ JP=?$DsLmbDqϓ77?X-[ #vjc:nB9H ,4va˹Ld*NjE٩LV ɟ:j7]8J, h*BXYJ|/ .z \KUf~ǥ.g!A? ~] w~Q]}kzj޾^kz޾nkfڭپvkݚkfڭپvkݚkfڭٮv9dA`oڈmeO!c?z:;@0]\m" 4C8B䢵ⱈutodjpqźE⾏!O@h'rqO@XɛqK["p7APM6z]#mT9n3"JpQQvI|, c=?3)5ԟEp͸"ӭl 2fo*B~$zy8Fb~\ehr>'PىK#i?wh} yƴ %tg5&L. M]{T r>!mݾg&ru]mjC^h>7v-pw A`Z7Xzb78"G1hl͂u/`Q b91(Ȼ OCv6-O6qޓִkruc ͯp}l};vDӰpPNƥJIc5G)Dn8}A]eĉDﲑ=Ԡ~W4|A] GԦÙMkxîU|>j9 >ǽK> >^>‡OqNq8:G꣗h!p;"ka5t>cj},p?(pByFuD @zxW^(M2*4zo#5ίPǨ Hz i2a~bniКu$O.Clo|ѿL3Q0؆Noe`× KE+%4Ke:,:^( FD]>xfĠ{q\T1ZV'`l&{"@g`PIZJ.$4V>Z&ӷO0@!J # ʎRd%D=DD?4I=KB;ߡ, do`70Wo |ՌW9 +U\4:VwXשL>C,cszv~Xr3+c>W|wdaF,B\XMK;tlNQg@3 ݘ240qA`Ll݈X[u#ҹƑOogL"<"G߂ã?OV?!jPFB +o1 t'߂j<»#5!ݡ]c5[ 9Ԡn1_P'5rEu]4tAjP=@\rBP/N;'jXԔ$Z!+ iY;GoWS; aw'OQ%wTRYzЏ$5 )FOwÒ.NLy՘oDt@« '~>wA%Evc݂"TR4ۦ~%] 0܉Vu(^BTVр?O >xY67ْL-HjCu6~".MtslA.n.@]8_T?G"!cW}>/ .;m&iEn3B,oN 0MYwk]#[#!Q- w(cǔʪ n~4ʠqԏF *=Rgo ˈhc=qWsh$ =mPmХ t@q!hG 6(4KS"!0ӄ j=Ơώ6hv*F)Xw 95͞ jbcPؠnjm*@㧒lj_~&#bH֎5Xm"Z]G>-6< Pp4u"oȓwd]\S4Q}APO!+y1;ƠaS2ƠD{gE<0;IL>>Y5W똿^_z7>hP;w1~AcPD(W fF1P7Ơʵ7&$#@9֠ <٦]#s}F-DAJE ·dh@]*>!T_Jw8d7D(#!!^(轈&']vt>ck/Z+$D}QzXF7u.c{P]amqxD*]틨{6-^_y PZ6;Т@迷!O'cǸcס~  K؈3x~8T1ZiQI`]{ĥB']㘰[2S\tCmsLp8O/$|!&`DTXvK`c :8]@T;(5)o {vAE,7]L 9KɘԜjFf4[m;Wdz`A28u5[ׇOAP0[Ep%l3fpi&%:(}I[7F,'}]i<ac |FƃPXXF#-!n5h$)DAmc [$Du qX^0c (Dnk-`0,7 Xv{& +wI :Ku&52qmR>jA_4_8I ZRE=Π /jeIp`a!a1[erGf Q)]v$LlV^c l^22.!? t衒44%tj.+hᆘR.3O~ɠ"kEkZnGU#_. (E{ cb(,$$Hc}Dl॒3]`b _it*ŴYyנi4q>GQէY"V8"cۄpRD0>/ W/ˆ|Y&9h^::6}Q*Lm+;o|gU-aPsqbg*i1CU&Vi/ ]ͅAW+tIa:]* q rA#_5}j(xϻv'q;.zNu }Dqt\ن⸄xˆ$L qU Qjcۭr(n.m55h® Eqo Ar`IԙnEI Qv)ʢ':{tdwJU8I"w~AG2``d`'iVItp<c0]~t[ל]^ 6rT`tcZb1mEB [6\۹]f;X)~)L8c/{|;Dev8#N#ŶV8 j*R$,ĪYG"ܕVJRBÿa\*:cvVI Q{@ӺUՒ`TN[f{GB`34H4u(noB <{x0{9Mi6qf,QZ7V*!SW*:eE Qv_]v$L,OJ7j=lcbvDkgP[jW-P|tQ~oɬHf5 \ YM9qYAvma -`^(Zl[uf5o`V=ԬjJVh`m=[7|O~[[Bf%mKҪɜ"- ; &):m2z35T": U ~Ǡ"t^/yT->εy Aw`W.K6\U3%ŬP]jx :ۘ/@1]ldјup>8w} !zIFLGBY%w%c*PBp+[儼zPvClrbl8XTl ѱإ.\5 p:7+ Yj}xWIB'`Lb#g8JNI9n;%ms<Iy|^A2r`^ן#8_o҄O!=]R_/4TkVPDI DA(&Axζr+166h Wp`7eA띬uɢU;tЭadY#˭)3Ϋ5nNl?I"k~m|Ź,팜>0(E"DD0*BhSBlO"]*%]~$L`PC+J4V }d :(=Q8JAiVm~J QI׋P1Jm~AEM$rtACax^-S)ӑjmIL*S fu} F*:[΅,VHCA""RAAӦYHئcLpIrjo8JϹ7`(]xBhF:O5m ˶.ш:YWjWS=RjeQp8 }4]ಗ1ej4UbJA$esYD-(;{K7SɈXrѨrQBY}'ޮH^$)ZA]2(5}k Z*D?w.Pv>_ i_ W{D ^%к+fڋs4Z#zzK%$ K[A4 UḄ6zه=\J5KlWY8;GUz6z`Q~ ˺T mMn7}8Ae/af_9@"ag?u"}oRC>4WK[% Gٝj m ?Kz moE"T mO-4`S8^-a>UqKuK% ׾[ ?B0FVfqv\)ackyFn8fϪ|Lj: #a/R y|XgAL;87 I`b9+|tKё9z氲OZ֫5uc|{IǸbAT]G(*0 i76=Ȳ`oqB0?[?1@hPZ>vvBC~PkDrg d}QZ-nX`?"'YI~tH.M@ȏNOdD8U#$l{ 'ˊT0$)xF\y(Κ%F0VkP\` j g֠z ?֠sUՀHA@pK8'ɳKB`"B!3fs$,%rvCEBWK0x_A~*|5ި5D_kЙJV[)ԁ&VCrЮh?qn$X0ڢVCm@9h szGhx) ֠UgMBU.- zH&6>Jm^jh/)5TP2.(5` wsm^l?.!u,U`uLĨ{PwJɳ$ܳPX( G _C-d%q`:[%wKZ k<`4 -G=` 9 [+^(Gc# = ${:gng/}`4A򚄠$ܨӌ=ƌ1T\ۤj R"& U-UY?#{b!~3B2H ` =hG]x*[A;Wk!8o zm D =t3WGګj2XmN t$*f!a5HGT#TxIWqFک7|: _Sy1 ,ݽtrN8t}@BÀvtN__P5π5)̠R倠 AyAP>1ѓ|=MN:z}\zj<r;|$(F_&!R!pɺi(0SfVHm(X7[>@BnV6 Z[oЖ3hMC{;I"6MZ 5\|'0LЁӵf<Ю+:C%QλAzk3-λ$L`P;v,S^Of~~*)ziBH4E~TT  gM0c@l -療m x[$|kuGm$Ⱦ\$:[`-Kg"?xqR}M\[0̓/%t.\yaF" 粒1=O`jsVv ]bVu)/S*p9lEJP QC70o >gb(z E~$NkW^#)ȕ8A2NVEykً~^`C|Daߴiz d@?Yzc N8r"M*z!P`{}L 5H9i58kK%Eo[Y ?`6n8,@`,ۑ9fx {]wL}vSIDXכfzK5 rSby sg?.p:905>g_TE͓5'oV``7 cw?1\B &t{E?3 dPq#˥\BG,%QgfܮWIr' :e? fAK_gУmvfERY4pmJ*cQ3Ch᧢f2 )rNFNp~* gA `нh8lS3aV沘%z} v@e{ SEC4n zC{b#]HAGzƀu pF@>a5NU2Wͫ7y܌_7~<@G#Lb=p/4fտՕ=6ö\LYx1G3hj&%S|R\qRy.-[UQCyg6O5oQ?mԘe~m2t bBE,] }H;]p)NPZzPi~LR?| ߳KzFZͼݟCXӫ{$0yoaFkO?5Sq;kEwiF]T1]{ 0{zUL _3יe{Y$:~Rʹa]=r.#~,wيX ߁{z +J,ke̬u"Cݨ6%8<@qFFvO:v^SIak2cf[T!\"e&~?Wݭ !Onuh^~*Jr4o/ɬSR㩊QIt5 yPA >':־O{`B_A{ 4ΠmbQuMD+U ·\D4l_Q-@Qe&^ԅ GFpEȬw%|ЅK:5ќaʼn P}K9;U"bE΃ F•HBB|샏ݧ d̩h>b^Vk+>(bLw HSj_? jURAhЪKJ:yqT8vZLBT..&qA_p;%)a:Q8u&.7D >C1\Ci6?e`4G\DDe"8Du\DLr^{YfRq5r1-D+}+|+y)F t4ok4`Xr7npp;9h^hm4߁A: eǼLx\Q QWo4^rIL_Q3Ђ XbhW F`f{/cÏmtA/CHk{8u)RnfS\?p/Fo9O%H[>;*@_S0C72@c#﷌@VɘC XEΠP=xsΠӀSP~KJKH`t{T]gP6OBnd^)!r/E\H3nXB]u~Π*okAk:` xmP `!@p }ۨk@v=˲Lh[p6nTĴ]S?JkK #ǢIrÁ$Odu8"X TҀ:MkqUq:2Bp`a%QN9JR) wIuce*U-~WuHvAJu`~S00+o,Hp:9cYhSD.=6@P.~\8@W!F y˱TkcuP Z񜢽JBr:d M4hAMS;_Su:C34 ^IJ" L m0]Rpӎ)tWb2Ϧ`jQ6G2"nb, ݹlj㩈Q/oWh6*9.@+"wN; i{ORѠy>IT69t0TSh7*RH,]ͽzn C\.H .#0{s>ms pDܬ^#!jUL4蚑~7lA3<,?/CݮT&!p-!wMF. <xCQ(%&V4;`N4(?;~AODcA(iE/~"nB(<% BL4Q~pD>?WU "Y&!PUՓ z} TTDJlo c&4}48 @m"0"e*s HWI^` : WB@>Uv+ SB0T1Re1|$pZ*+(GMXp<3#52v]skh螩uU<`}} |8i,"ܝ= UcTR)B]ˉQ$#1IsʖPzA &}# W$aK}W&Xs7i-0y֢t=W6lAgqlAWP7֐oBpGanfeN6>U=;Ot8?գ_(~a"Mzt i3xu&%>H}p 0k;ɠϔz bAI~+'T?N2h.d$nßw&?ndQF w/] Z+Uեz3WRŐ?陛JٽaΚY-}uam bX]u@n_jKsP'lS׃J 42o^{p4@jwzm&DWvrR4Uz>0Q6Koߚ觠+3}0 tyi$S U-[1Ƃap6]Du;Cb@ amxHydU㪷ɜ+p xwxm)$΀bm$:l_%0mt1Ldh3tAL Lpgh^BxW8D>. ݉>3ËJĴym}WUDO;Z4{W AM#%e#R{:mtOu{:U JEj#>]5RGϠS 0X|Y*~ ڛM6hi9EYEsLWƒLni0,#] iX0'|iV6lk3Ӥǽ3IkC_a/Ӱ!ҷ"TԈQM<+|_r&7BkAKE5B>~;](l/j# /lУ6zd9OJ" *\d6HBŒP&E֧ {8* YO6p?1'W!(@m38(=(aX 3}S%ksFZf8(L7(2}}2yE~b8)V}bY*#TĞ,Zi`p:' f60|+9&^ص[0;ZŮ67;l:|" &v{Ot11G[6]h#zAk ,bP~8dAfp)-u13Šg@OGMPZzh!Ac9:5beMku'G[XTMk c,bX&ۡR{̍Hnd6T9Hњo XkW"Xt/8iz?[6Fc}!3o8u+Rߏt/T-C1%M `S  ad?Šjc" Q hɞ(!xEzHWjeR=C%%9S]pۉ,t %GJ{09-~`RGKx ATŭ 1[]ϔvŠ XS`n Xv#bWs)6eA.!oG`m}5ŠޘjYw M5/ `@J:}AOƻ%` !0a4fFZa*!V-?pS 'v'fO5yI=v/:T{4o05NCJ4GXG(7(GTgĖzp Denp"w6{:00DEZpyK=D*نh=˯l\)kbr6Sg6zHnz^Z@9)F  e`CE} 8n=qNKWS| ~dwJ7l1Zsz#dGY,p%wjsaqYk2BxGCoibEX 5*XeG62P2 }&xOs92|̣a.~ }b3mdҧ\Un<8 PwQ[ǍYV<E%)/08ɆTy97l32hi3 c&^j= ENavT+. i;a-XK.]EKX>`HlAX[3ubP&Є_ҙ YVaX0-Dkػ9Є"ЕXj1 vSDĿf֓E(ɇXR "z" Qkwa-'ov U EQlo_2Et*p/bV V̳#}h$BGdjTqG&P84݀:qE@|T'hc16yo"h?+6o ~DDhO=pRHG[:BPhjL Фsȫ!jaU7Edz5Z(ial/ ؗ% CkqI _? {H 4 Eo 7̳.LEThy#7^}jQNi9 G[OCc P(9؆ĆĆ;#pˆt$d?c8ll|X^kX.Z;r a:>!I(jWraX>;A G1_`gU;.t} 7fOؗCrY /}^Lu\ yΰe#K~) \Z1KAR'цO.)6`d1 ܚ6̥WXC)4=rOQX(^ءQ* !qN[9Bv ΐ" 'ΐqAET`MbYEC 8lbеQjF{P1pt"]+BKwB Bl7eK6H1N Cibc~`E/0anDO'l6U |6(aH|'"` m Ռ7D<_0h6G EK6ǝH"Ń ] h4D ,yX ϰ2DCH#RHYHlO# 6 z \g.fn6>V[8+seh)+evdi1~dl\rhu?1("IfgZMo~^p}}]x&M$:Po+Jj1 6bOq.A$ waqRD4sП*@P@=]8~y0frO's3ks찑p&b.^hi#dĹZ6eq?"|$"zq L=x\e^UA3ְQ*wGQlyk=iE8Z_#I{tYAK .tK\6N,QGΓN̘'ɺX_*`uR&/VN| "Q&PD3D]#Zُ0 =!k ,& vFg6[R-BJs݅~O-΅Y8w =,X lnzPIX[$b({|Y6[(`Y%"/ BEeE`jDS(԰ tWja 0J _&,WTXs15ͽmtKױBal{0qO h`!BķQ"(?"lip+s܊N@vlZs@Z#ܝB!}RތoB?&9hɞ1BQp?`ߴ'Zxg1].gJ|pW0JɭT̝CtQ33Z`+ȸ8Inz1^|Pq_bVPX<2ĠWC ^b}#<(ot"G I,i<>bs#SpVZkt$Q&FW,T3X4ya损hs9 S?h!z@7/@L%QF%Ǜcy^BI.]2g Xp.Q*#_< M,2R^d 8*ju[,2@4갠ZdnS0E~B(]#я  }-Cۛ   0,G.](Tǽ5hbq`H5 M><\]$B-mh8+beXCV<08JěB AۥhV\wq=׮%:{DuDbzx?%x=%"K1V hd08ƓdRDŖ1(X42O@1N8n(bRKǨf.bc ΁F "Z*L.Ts7W9?5=Jpq=xyϢ;O1"X=`m |y4 @t,h .8`CHר2AۭH_ eBB-m=|8 *02])9終)|D) O E-Zf6m:jJ`_W*7{J6Z7AzH\#6Z)L B*Jg#Մ:+= MjyPbb M"  ~]"P6x\d秈8M(`iصds1=@Ā+SCWWG+/g- y9:l=3y9}yx?q%6rzE.9]VqvD;Oj&~0:X#QBWZM[(]m[p闪"B&JJn CU C7j&0+.} C.=B3"FASPB-mh8wq']Jؗaے%xPn 2 #n+0x!I[JV.mKS:r岃U!vhXN [Ou˴YKDWHDg-0),*L!YqUB!VwLi$*G_]/ҧ, tcZUTYeۮag*Qèͬ;uus+UKYl+ÎځN<ށXTہwJW6فbߝTQ[ @#*ܔ5ށc=̦tj yI\sXKD^"iͅ6+DM*[,yL(a@%>)2Z#(h{kX#.RBo^b#wB 1~=p%종f@`+Bv4C8*՛{X]~;PU*yjk?ohjE;PmC@ jwIv9Դ(#U ^ռ w[(#?zvgԟr6ǒbz`T&(t6Vv.ԂajT@v@(h@V.q؁zp8ځ%yIT!Yh!*4h58"a ځZbNPj +cPnXF52bm:z^ ŇK7Qƻ`$jw#ƙxo39wip{Ȩ9~s%>ycr oY/!+Ǧ(w_[6a,oxpnLNGb m5wDFUZ ejB(cMxuRo&q/F=~`<)E-Z3 #yGNB-F`2?xQ#BFkV50#Ͳ{3\\goan=yeBI W E+x}^xֈxP@p pIPl8"^,&#H)OΪnQOܢ_ 쁌8Ȗk#{"b8e+vn:(Q{3jM@pov yXAgKY,~{$QłBWZc E^lW*8hsO*x=6Q)Y/:_c{_,e1 ?.pf_F;yuBgB| R6DJǵ{ nb 7)"N 0Fxh&4LqVJvRBm붉7~&0n7n7?J]TmU'DMTU(U8ٟ,-o+غo{sk50:b00L'x3W2C -c.n]~8i@wX7čHrps8 0 F(+c dVnP}5*?f?lndMu"kH7}߿y V]WQEa-5-ዯYN.yw` IewU}=ƾ:Ej͑@`߷;n!ҋK?^rw3Jކ{}N).zT}޻uţ:IE.d/] ðx$ł+ ܀"E ϥ(r^.|Z 1Knu(3ej@v*Kwj@oP远@o&^wU-f< "ը5+VֲA' N3ZgH5oGBLUB3,T5RPi-Tos[E](6Dbxp7060 Pkm0 [Z\qm9.uŎTAm↲>6 z:>[< 7E&.2r6(Iz&^txN70Yz6, [9[KYɝC1,=Gǣ^\h >Pjzq^Auzt=萤{B+]o>A,ET>mI"(hu҇QyDc=uRw!bP(p,vadu' l)!wfzPEB+Pc_PZ-ܭBQv%%S*Pk* &ծB԰wc5gxH"nl)Y$ c q}UT,in|ltVe1[VQ-~ґ(j"ẓA9qNCsb?sV /9UåϠz֐qSoGQo]: >Ԙ ^x^-3lGtjCuBGg<1h z ,I(` g]>F FRL&(8Kj,%0Z4t28RCgzA-HxL"cnx+R<_$](BvbmEQfM[XGv`nZ\j>oC7jRP0 6i}sX`Dži4^$KZըDU+Q55J(*l}%>x5*vStNھAw/_Aw/td0ѽ#ɸQ.Q%1xw}G gf?=ՕB?RV'`1hG#݀;x'0i;: MpBm`}Ȃ'2 qX(``=Upg ,1a( .{=,_#2Uhص\BU;,zX3'KYd;.h%mSu 8jn *,:ZN""úL#`EmÀqa*\OϢW-Q?{ʏ[^(< cp50NXEпCM6G(4`_I} M}T6~eU'B@Z4H4`tY9/<3qy{<<@Uh+V=L z6᠑ QBAס`^ ' g|>@+PǸmP >5W~~!߾\SzCDlߴrPĂ[y3=Vuh\0w lAc o<V("ǰlN&R/\ ZKa?GŪB YÐy?_2}A9/4Mmn[s`K6s/Yݤ~Iq+FRU>X>V=TynϭvFx}|[KaXԶKf{tЄ 7o~Vtgw=xg qøO2_3~DYNFӥ̯Jp2aK/ :5%.xײ/yyv4;~EodUГhzҬ~ Z^~[Y}nCB'Bsp4?T8#3z2VsJ6mVB'|*Rļ(2Xb#+8g3* S̻C lR9byArAI6n qANGQC ~:װӥ[B-hhh>;J䛄Mx.X#ܝB8Z$J ˌq:jEgQ<Ԡ5ۙ(jPfac: Cr^:GRM~m>=QnqP"C۪*+?8t[$5QErLJѿsݰ 3tcAXcl /]-5MmjCU8O; AF?BU{B@^c%"FbQK1pt…tS(Ŧ{OuP4R>S(g(YHu|%1:0XduKYm2F3y% E/6l q k S#Hewes1`(feQ&)kɿ-˥JHܘ/0d3G}3[7Z5LG0(2Mº亂y*/#iR,v^:mfRl(LM9!Ra7Z,an0MaTsTdP470Gí" ܝЏh> > .ЗW8/kEJҐQ 'K\e A]K_K'E V%\ 5"Bu]܅Q~^tdVV&a;i$'pҤ؆ќ4WrUσS4yR`Ƥ #3r'zLuIihy). @{ebƨ& V>-X l5V {k!B=l2޵|R#rJro4Zc]& +AT+X;p21ڔ;9YS]k8m3rr} wŦA[ {ֺzbC&|akh/aU,|~@tfQN>| DV)KZ'nG\~1MC Z!q&93gnֈر6r3}^`6ݘfX~ 扭Uۅ+6|A+hłnO8efct8($i1s/+0LvΕG;@fѧ\< Nɠ:$ }_.ncx_ ftgm*}@L=0]I[:3/;"%f|58 {3=*'js6+.E"`3UDl egP53/5y-̯pC϶D+/3)(FAw; \b,UE}*"dk/徺$A fWXz'(=74#b=7\!zF]!zǙFd DMh"*`DƙԶA-| (6y4QL ^y[V.[wLw)"M ejEZ4Y @Ƃ\{B)1LWyD[6׈4) bf)8:ט )Gk%ע"$4`gkŘR *˜1f h j'UKN0 ߸;͝4%tD h V,=d%{O([)(HqP>Ұ5LBI޵`'D 0F0u]gޒ 6܂qPkX]9BE`0h@r0?ۚ=JsDΡ@0?[G7w6){x̏l9/0#W]g*Dq_gKa+ǵʥ|~xǓ1L0@z'])Nsv^oRl:TS±!V/sIpk;{&BNd*kfg1%_)BN*YŚWEcŤּc*oi5Ku1YHk}*u]E չ물#oj%^v ??& i+k$\ƀ4\c/*Dۙq?UFOo[KM-y A.!~/nf3=ʋʢ{X&Ŗ9r1ׂ Yt:nDlĦO,*6JWHws<3Q!q;ipÞgy0) i?s 嫣7uqSl >nkѲdpY71,>Tր̚%Jtz<(xK$vKb|@>aՋPv0N["Ǝ^?ac$uAUvAv060 S[9B쩵qPue>.`smIBMY qX(`#9: R2<⼪BMb,q: iRE&.ְL#`xX0Vo m CKk& X`pNDž]|+Uڒ4`Pig l`t+bei؝F;հG,XO,hxB!-Jj,% "N @G,X}Ba^ܐ {^{^!.OySx>=N{Y{`);kbr5IUA[°10D*aôxgl,vy֭nP(%X#/YǣeJ$L442]J:S]o, *JtL>+UfUY.E1L6>AA(`x[ͽ} "EHCZDI@', Pa~S !<i뤘MI䅳OuۥXy~ӶgR.JM x09v56=NDÛ4}z'zx6 >HpU@pBx:]Y[-m6i1†6VuL};hRC|vC0*J_PX- 37a`zvqZh2$W0c3]~nIt&YaפR`f~(׬Ծn$>(k\ON a9/;_74O9kvN~&٫ RV E,G ׉%TK~DfCfd* 3p  3 z ZZw oE':`jFa&:Av[ - lbJlbKD(U~T. A yn )TM`@ 6tU6c` m0_qЖ46bұVZp]؜|c.K?ZAvDq BьX^@p=x3ks sPox׹+Oc%UݣU^)^sǓmAW'11/pg{”t3(%俳i*:12i>G]|wPy"n \Jd1D3pKh w ȑչe\؁3BQV$B 3ǝ+ Bb8N 36Ɯ<I2&mdkde* ~I}̸$cJ2(A03$:n,ɠ5T4[ћ'$3GaޝO29B::7( އJݤ) Z`V#aڰr\U3aH'® VAK !sf,4dRV_XZTCOʜ`(.[Fqh!Q>_)5l¤GAw BfNyLj7XJ uB):4A|| A$A=c8 c.1!}1tym0~eM_?5³z#_O=8XҾ=B?V+i2PxѤ C0kY O20"oCdcL2*MhI!W,c`G\ܐT+me#ƖKp0ꇡ&0'CVq>aj#)nuP05=:ta07"~=~wz|3aw7(,ʅ BQfDm*6[ilUO̢&ƙ;!XVf:O;H2&ɤy˩!T~?H2z|~M|\Xu_9Wpse+ؤ Ӊ@~_pa) hDqа6S;hUTW"&@4aRLhDW P{qF!]tH,$( 8覑&&x̥54%X饩0{Ht6ߞ։ON {"15G=lD(d*Bù\3\]1ڦܦnڮk'DGGvcZ1YGX#jBQyo~9n S \3WXٯ._/7IO MؽP?ty2]Zs=&@h_ǩ7B +!Ve#gvcWE1< 3M02gcǙbFН*[q a3ǘ ^evP58P8GE!pqNhA%OBy M8@W;&e 0 U"DSyXvP5l_sXZV5+; Ef(z S QV c<ۭ,!U©u~T}o0a4&j%vzp~a/)?LH"Hu|=3ŤYtO*r|2+L%Qτ_!5f鄱xbԵ! kX-~P\얣 N~:H9D-ODF;Ȇc S5:TWq~M1fAE9* -tgRuy# L500(eI֍0hx~A7DWj>f$mǛxSQ 1ҰLﲔXʰHٙ+ՏjA}ۃLfˇߝzVcMJil¸ h]3'2@SiB_V7CkXzDxmlcZ^ `Ux~zԘCQu[ʜЇ,M2՗*쯏0ACJ'_Q$ v0(,rѷA ҎCZ^u!xG/"eРI&ˠ946:;sNNXLڭ$̃^9@3M/gPXW"63~IT,RAD%6e3:fR m?ۈ.4#a&':qCVDsKg1B;= S &;S=׎,zC[lOh݃P Pf3/TkoTab5^N}d{'+NܮU*paaS.m. Vg_ês ~ hTt@CdaA!BKi:'*;'?[S8WqRdLHD L;4TUB!RdJla# Q.CY@{pA)JCP`^Xa4hjpWޅЕfR" wtpBwHgmHbW&/X*V~ id3[wk?D5n]'n08ƀmj Eh7%01SlpVDqȃ5٠B J*҃rV9Z$jYY+ºӋJUoPwv#5]D!Xq P(UsBZ".͐vARpB#U[Jxϑ֜#l|:6hlՌd~e_!+*uhJDnOMYP`?1X %P(0Ш,!L"ǒdN<0iUl3Y&]dBbWK}4DMg@ YnVU_T9waq٘,yrVwb!KE5JQe.٠u d# שYZl pY Ɵ0`]=AzCzЁӲ$Z lpyE ,s9&9Aח/x^Z1UR/IX[y0݋{2% ^%֨  ^EZCCʥdPh5\ðC xk`-;`fO:$ %- ͈x&r {62VBn >GOٙ*+e_ F#6]egP`vB?>S J`( ea[Oaj!ʊm)"v Eð?)"h@M6[T-z>6 S Aٻ=!O{3Qo~u/sWEN;ƀ3N<!4adE! Z(+L-sۛ󸂁|_jaM[ʦUqZę|F^z<ks3ӂ㦊QrеyH>?W< Ba~;{Y%" A#sC{DN*{Brw` Eٸ6hH@<*E](\mB1#>Ys1š Lpzk3q;ٔoaɗ~O&op]@-O;M7#WóX`?M\/E, M^? !ގX#bh'V#>ԍFD4|]PP[n\lyP ZI>[ 0ǝ jfc# z)`J}GQH)"P>L+8V,*GiH$ 9X9eSnqzn~Qg.ʥyq*~<~ʼxIk4kBv!?Z&ӣ * E$ʎQ}+nA0??lXs3g0fRWXC_DZ]^nC *l/:@WO,Xlˈ,btg~AA?V~?MG!-.ڍy.>S)N ȉTĹ^Ir{J}v>ՙ3;0. B z_%O61ub: 9V40G\ MmɈ':;F2.2vL: & lq\2市np0$|~< A h,? qXU&oLxf|Ac®ܐժyCaZe˦F;7ݤؘz{ӑayVܮs3b}q^]!sBhP~Ŏ^GHB!.]i+aj! @o2Hο(ΰړ8"%Ou S VhOǔ/edz@f01 30i\ƕKXmU^3{W| 0ٕv(D'"!&W86rj8ﲛ3œn#Tz03Gg/v+3q|_+@?xHM̢y'sWr"sj,i^F{mk\},+|P# EAկ_T$|Ԉ-f^+eg yCau,RwuWf1 Fa&xYMh ` ?3QxsQn(`=JFQ7|63p%󖀗 ; q{8??$9F.~nUL |IZI#;6pBxPWҼF(XoAۅ{X(8 C,mn8oP%tI1+L\5Utd g|qfiJV5F4"4|.bӬLsp/w B011<6rF~P=2| &h\+YmY[YK!xSSh ?xviuu20Z=תهRl%+iPHWP SE;:1fJ "būLj ,65O41O:WN&N(#EBMh.Z'6苹48"$0|}O0eɮ`jըʝc& ?;‡,I;Nut&~[[A*-^"RI+cerW  V,NHk|A"!^(:℩p CpKaUIE\XlHgZnn9pI- +P}~wZlV~3:F߯cM6!4?NޥZ|%zϲ$sΫe ̡ٙucgx-2_7_5g,5~< wBOͰ1mqP@k;r:5( ثA c⟔J(`xb?yh&b5iUŢbPCzOI1h ?sR 0tV/2![(`[5Mq> IUUTlؤ *i}35[_FO}=4XvKv,֛0c Zלa@y1֜|FQNp-4ӟxa:C-z!DOFAG_2{SCT4Aw.4])eDP'y 1~ZŋbA ^G Ue"ٙxi7pVUm:@.[T>Wv#bmLp',G9GT>ṯ{_lRlOϠWc1X f7Gs._t_A4Ge|)e/8M1~`kmu]-A;=7/7ØSKd~R4fz>fgSw9W}ܘcK1e5WnE<=-ΜKFK[`[-h*\¹#_^r+Xߧ|as9V2p]}2`Nҗ"?Ԯo)$`Yi9|Cr:_҂MU' &br=)ob?*B; ?mgd%_q暴oL$&>Or!:ŞJ?3RڅmʸBD*j`:k,1܃܅f0G4H=*&~~aSZIS": kſRrV.jЄ_ iVgR ):BGwc Tf㶱ՈQˤ c =r{, '2|X9B;߳|EvqmD9 Y?1-;)JU\9P ~g .z]1o,\sE`zזRGp`x9#&6 xGV1Kr•.U>bJgA%UdET5(QV5h&zmAކ]`tf5;֠6d?2֠}B5jɱ(G@mcPc( tR1ve}!51^6֠PĎ7c'n k6ΠN"N {A_2Π*3YnRa ?Ə3hTd簨*oZ_M|"Eլn5pȒz U#mCHdK"zJDXQtN+#vASZ|[aˀ';JA@X!yĐ(0 ~+c NRM9pjUǠ T#sv֪T#,X' :P Ba ~:9\(jd̋öэ=)^L~B,uPk7[Bp޴\q/>"MMzolsO4r.0#͏]7lUY2"A*uF\3|#UiјL{9(I^L%{TOrPfTOīZyz,JRēIF36y]>zr!ao`0 ,{Ҥv1JePgvT ސ2+%y?yP}v$[[;:\#oikl~:+:˼C, x27Ǐ6GF{\^ןMkWQ Cp(1QțK,]Iu? EgG4,"xl߭A{GBL17~XSЍl;^rf|391Vf ?faH;Qp=7Ę}f-/{#o&sǪ͗&:OɛrXj;p3E?gPL_V/)|~Y=9Z=zA'3G Hus.;ٛ{3)i|9Λz^7BO,AVv[[#.wϺcͿgAK7倰tbx *~ FB!m~A o1D.o &x⏫t`yrG>v.^:ޠh [mRxqH O GJ{P h<ʠ(?23?/:r/"f5C̾\?W'hEHjtffx3ҫZI~?3 *3ӯPvtp6Od+}AHuM0=Ų]0Z =.XTNDC+V${ڝcK |Pusc6w7V'K4}IV7h(oЏ7tM mOܕڮ Sڼ ~%s7Gu)hE`o#+}x|ҘBfu/<0O5khjfl6RGfpdfًp ꗩEA+>nAE8_(|`7Tc)qPA^'"('`y&w$ fZ޺,Ml}uIrqM^ "H8L'{AXE%lR+S zhIR _l/¶R zamƌ_JڝBṟ`? IFvHk8)=p!$j [מS Banz_Ä%_nr3nzO/3 S9c߂~|¿)B<NJ8̒(" 9؟Ա=-pDP(=q"/S uZ,Z({P3V$_,I]1.ފ;y^ #(y*vl.x=_|`,1A哢UWsLv߆mnwގKq8#&q`q6 D>8fЙDz.<+e+˶'ۯ8 {fWנIAI*}⍣Ba:>V<,\]Rut ]_ y 7狕&H&41IJ>d>zX"W  ":fnlT4QG=5 ݤlC` qߖ4M|uWo$FF{s[7Y:uxyB/UZbSc]a5 m@CRߚx'U|x}Wq'ۺ.{>mA\z).=bu< u܃kCqֿTC- =؟E!UA=o$CNg`Чq▩\ T^ Je4a5&&D]UϛB{Q*ٗL0ㅢjVYJD0K5 a*97;G'v(?)u  j`O0(D5 ~R!A% E4aIH5J붝tD?DJ ~H[WwC?"( uU!GբY>ڽ/tO0&9Y %6Ο`ͯ}3HZh n2V =51$pѝlgyPcfHcw9`mDu|e N 8Tlh#OJ9#ޛ#Ӏ㠎Yz'9BġSZ[(4@<.')?3\Rsc`m>I1^],bvZ6vq:aYpxGbN5yCT k'>FF|Nzť8'ߔ f2>ZYo1E$Qlj*]nlUAozAbapDFgy}|lm6&e_L!~6;:d+$n}RhJ j݅ X{ ̩a3-[EBH`E\)ÂmqPpm҂ՉPjm-vh/?3vu mIPf[3WMgRly):rlV0k]]?3 v˹-mTr[aUcR 6Vd0 :h.pqww+mI ]t>^9+ ~Mf&k276$wgx,}Z_H+\.xI\!Շض0 /b?oH'm\p~d5.7;G3ŏGt@,uO,s֏itnH!JE ߆2)cPa` J(*Y|u ]_愱᱒"; ecMbB%˱xuҸBHPNQodpf ~qAS} $;#ȱ?ɠ)͆$3>dADP hxpذsW?TUy>)SK\|-Aܚ>uu! VCX@?j _g@^*n/O}g ϒ_-"|V'i<4=Tթvc>NL:_(eL0'm`e ,>6 xρJoѼ !,'-w׍lZQx'EQb?s8{9oOa^ wV%?;qro,tPj8DG:Q8N>.:º/UP/Ol/c #B0m,_ayΦdz ^- TcE#&9]̨gFolpQ+9a@5`zi> flc1ᄯ]!mb1lrA"\ s¹7I"PD+7ɠQPe_:ɠ#,Z(`Y/ j/bh|Aa :sʍ8qV{yAuRP| L3'XH3\4|QnA>14}"㓕{T$,4q]{FؑT#Baר4ΰ]iՊP;fЀOMjsjA}k,mnl;٠u&V DY I 3ZO6hX>٠d_hPxjoPt4 "N J0B_;8Bѕ16Ə $nv8]>tEz)cehϛ#{f P*dM!c+ !>D@" ݌Y*fQަy:gddu'wA?aKGMn]~_+cmؗ&9|q3TFԵ (w3sJ2Ϋpqg*ʧy+gltxRߢ{׈lq`88s'l<ϊlş_4l{^{o_@ <yg&[,uR55A "SZu*`U(|†5ਫ9-xQչ+ßLJJfZZQGX;h ExDNjjbDI'i|MNrvvqRN̳l;vV'>!l Q* B̳Ό*+QK!JmVBE(Elz{g9{ι|sΉb7i?bf&i+ڊ ]eon | nʀ+l+>"8_U8S&~ }~PއY*VX,f^0;ԾLy!_ $5 5d7G 9.y';O I@B S@ȹNP+HM ۛP}%Ȏ]|6]aeD$nLC!;^%Aklp}?:_iU$b76}ȖJL*TNaCQ3"J_3=Dnt◜Q;-/ &q8?ӶIv\:~Mho`keE'۸I.&oIOgm؏%S?n>.JJvuGQ|0Yb+0[HJE~LTmxꈫN Lrʠy@cBX05S 5&t$FɺI *fD(½tF'*|-Tʥx{ vJHL^[BtwMB&ʢs),Q TLsӊR]#Z})֤6V" ~A{-uxϛOyњ3)oZ$a׽عʟ&۝&ac3 Z D7gnөҩLgr$ ҄Prv.d7 $ݔYu&Ҟ $_8%x9XaJxc_t`}%Gsu&-Fwqs7p7Bf܍н9S-!ɘ2 k>S  ||B [9GC.)m5W; N43xAM bc8kk72[B)l#6 D>ʳ;R* ֻm^DMDSَL&:;!=*Kqc*3m0:M ǯ2hюLIX2o KZNȥk-ŭ\( W<³OS*`:0 U)®OPKp FJT^rM;p6`,ڵk8l⃟1>&HX@~3͡ʌ@e!SP5GWѶ4V \WP]7~§yh#~Cl.r*5N\נ:!c@ȝGs-v qm&S$jQ v͐&"^^7|׮ ZF؉ ݴ  i{;QfǩRTF 9ftc _G&:xx'E-C +$#.u{N3>רYuQx{3gg2ˬU >`H_އ9j^jfhǀL^gρFW0f9T 1[\)`{C]̑e8lojclm?f=B,WcY!3>p 3ZZ^9}F7#394\NOm }.7*u kv0ӇznOg7ZB7gv+Lk YB>_ ŗeX >),lSZzF߭og2IMhk@qٚ3fN[Xrmes${۲pVkUY2V xv_6!Iƃ u T7L"?0{9U$`gsg1ăFZftΘv< k;wA#N'=ddD\#c\,lol+rJ `Đ&T;5!ϾɷQqW ˇz=/Cm^o%b펪.URZ[RSwXD܂L$|ś^fMpЇ^d#QE^co@Lb]j^RnS]g_: f6g?gdȏmR^h2k4[t7Flrm^pǤmT,)|Ed P#`%eu/`[ ؾ`; c"V#q>Ȟ]lI *beA3EjwFɧ ؗ 4#/zޫ# ;Up2u doWCǞ#U| Mgi&D4@b_c[b|zҖRSZhn"O(zx<"jPcubG{…ٽIX)`]sqT!}Nf:Hj`S_:@u`=[Qh-Q>|UjOZR1çbt#HI6q&a%")&E8JO9DTWQrR6iC(UIEX5am${@ Bm}lXMnLclجNP/vĞ ]6-}vBBX&t2>QhICŚ">QE<2MbWAЍ!eDh4 y@ E\isa#Bp4 _c%{DLZݑ^.k莜^Gz +z( GqC7=<#C4rݑ#"MGvsd`~7ԯt1ʂ<_BLQ~TZZE@x84G8_YN 59`_T/tbc}X9s@=R@PTyG;D 5jRw!"( ( \­\&  ( &G(K>j 9:etZ-Z)soӓS)j@YY ,=T Ci5Z-|CtmAj"JlmJp* VX)G8`;CMQ9MC+s=ԩΨK4 t`(T' 9\*].F0vwAfReRN}A x\ek@8#g IDž6HtCQ  Bk6K=ӎ1X KvmW {d5T Z!Z.Ü|,PQigݱ-ɳ'8fd)m*\ۥ2f:+ ZD7 ε)+18}'>$$cGUL*+I,cp屈E3̥`)oNgy5\Hk9y뀋ЗEHh*8mGdFn0V6L-(4mf9 UCLCj0}0  !b[UI[9Yd< %(FL?* gTevz A  *xmRJf!34n3UvcDXnaVlPJf;GǙcAmv\;?&qL7 En+T(MnC)醌Œqx H3*PKѝ}lo8:_gJ6TݦqS >6$A-΃r/r)?tGD&Eth8+|譙gMUI"c ˝fQI !4=:4#ưػ8'XS㛪bgjO@<3HA{;? vs"$LÝ"&*$/r! >=Q."N2uƽ:r UFQg7~ä/=T-K_XLX{DI,6 qG vFm_o[g褴G;$nX;fмRfxm&-<ɤl>ʌ#Tc.ƧxZ:11:v  -n4)&yӭ|u(-W*, ٙw՗VL{p"bvd@q8;Bnƒ|Hs?ӯ.i#&@/'ӔϱHKERQ豽e9Դb r |.^AO/2jg/Vr}OL b]-p=fp6~_F[է7sM}A<^FN'n8XN,-]@֋JR{އ ӈw(ľuAG/ T,%zA `R4`Pm:鶀AHn\\R@g vy <D^]0hi&0h@Pހݸ!5ɵLnB $% VHǝЧYH[@>W!6-2\ LcQP]kL#Ar0h߫JBk BJ$VX2#@dd6l\tm 8 PzI-u _K15gi\vzi׀AkE  8n$f-T؝K 7× b+?V~ */mnEF^ur@v0?LvM㛪qWpcԙ& }?hBQ8,Mܯqčq1pI5(PMs/,TT܅v}m9RG_u<+[,6q-56=17 1v dqGTb>:D_!TO A Bc}ϪۙP<Ɩ]+Ui})w\7;եPy0Osf? aȩ*VZCocʇLi%H ~٘`ѽOl\ԃMe0Enurw` zl\]GZ~)Bys`yoHI1 CPC.sC"\ dSbPszƢ"Cf'ʖk̻̕"kV23Bs!%O̬ l[(C K jHﹽ Z뢾Dt6'!!,Uנt@ꥅm"Y $UV QV'$M wR.nVQڸ?e.U{v&gaA~.| fjfhvb^K6S4vҠA&&7 cI9 :eI9O j{Qu)mb5vh b (R C2hͦc&io(YNJ|'IҿVZ"L f(1IB\lD lJ)!rǞo{@Kiv;@YKĚ`Ej8~+pPƅ$xc[v9E7X \- FLoQ~[тUA/4LVC< %l< J$ #..Ȥp7NK/^*ni_#sw1֋8Wɍiln)=!Xge5`z5Z@:^V kל~(mqqzܡ앞ԫ-V Dd:cB+]m &gA+ir^gkID/džb $+f*DoeIA >w KD_ 3)A3)g;,4hʰ&4~ƔK`ʂa|%50W@ ߏ/{K(e #drMC t>0f.t?!Q`|jfV&]Ηg_(EFL_,*jP34Ġ`9j~A/Ut.zQi!kg>{.5_r гhD)Tp+>8H/iA ! .T"5 O$?1hDSg!,q5H5 !Ҧ\*,B,}2?Q7pڨuĞ2h&E[,ʽ"dBI]d[!ӍhlVT6KM>Ci@e`~pSgZAB5,] uAO‘#NЕM򅉎D]DTssT;MltNb?vCe!z]ȠSG{kȠ#Is# 64EO׎0)O3-&o@w#V@MlY_ @+F(_ #%ɾG⁴p B#c>U /]'J z`zlUZł^UiRf&o7ܣx,Jhhٍi/AǏR(ÐJ\D\Lw \ߌ2ߤ|S DڨsjƲU*?e?ܾSP*E̺jz`UB6H5 L0t #IcLV}@_-41&y>dsżDXʉX΃w &0k++dE~&~4ht|j3Z\ΏTUw.{fwS&>FkȤUx>㌓Bx,G,͜cPs-[=2蓐I9%AٖTO7y9BB4 Y" -[%j@M,%ԬpвD7R|t=؋\7(k6ݽ&y2-+vtW%b.S'#]d&K,>9^/vq9No-ҝG'{!#}R|@o+,ҕl%w*9EXkv(LBɓJqViß =kQ_bkz@ Tf8-5Љ-,4eƾ UZ}Lϳ,cZ-%l5꼅Qx Ʒ >s~ :x xRgY߫|t)w6e*r|[^t&Be;b{DWNl-O4><|-j7%tJ$o>g!Q/QTdG@}:c=9,oDj0oӃB,02݃1h@3X~C 5M'VE=m'5Kvq7NWy̮8i| b!OGKr΢˷SmHU vM HaxBp>Ʈ#HM֮+O)Nc`D2zt4~4/v@ qrљ )YX/j:H[#=ifu&E);S=8W-_hSR$MA2Y]08aRV⼫q67Dx u_P9R 4;-4V!`l]J l-w?P_N'\snТ}L@p=Џ!֮zT켎 mH^’wA2"Zk%8zk [K2?X\$9ju QV TE*V cWttm]m;뢤C+vV,:, kIn6Y$BpiA/ ~\Yi\ -Ӆ1 l@(d[{cR&٣Nx}),pb ZAQ^tFi*NRo&YޢY'Mi@8Pɝ(5nk {)!)L=ƠA{U"Ƣ1 d:Q{&x^{\ҡ^6|]Á/zfp La-ۚx^4DoӫRg–s` ӈ-lzVeR A $-Gc>`ǬcT[G; OC#&`dU&X!Z<'Hk7CW֤qq3A|D^[.tăt>TmQp7BY2-ġA(T}iĖ"iy@HƇXBA6 I bĵi66=|FbQh*fR~?GXIR!RǟJB(W`^]= YI qqP+JEK^W'y!vuXRs]auFBMĝcPyrtvH'aG$ \"?+&*pa`S ;2 U$]cuZnB,nשWxh s3P]E^AY.}{n8RͳԠVU?3@-3kMtxῧWAuu62n₊@CrP5UYnvr//3f!yBA[5)2:LC6_ck *lRe`4hm 3+3Xd@} ev +i+TG|2֖U4CM#&8AzIU耺>It;@]1r@'}=C3H !t`dT/%$^&~S =`{C\Z~# 'OѰ2FǗ 8GaAc3)h|LYձx/ 4 wX&;2XNw;('Zg?M uSuJ8a@ 4s75 Gé{型ìJs<5kGY0r=mb7zXi כ"kP#m Ƣp2eESVJIr xuU8aEijEU=ச]۵Ɲ-jdj+{+T!PIjl5 ߣP,Z&v{<šU# Usa7_V8ڰvm \nqhӳlxvm=aY0J]yfj.]1:nĒUE}VyL'z0uI%K1qv1JP("ﺴ`/" Yo4}JAŒ'"*As;_ /z =z 4vpZ4.>H~ n4)[9kB޲D#o* ?x.[: eYN/W0Q7s4ʠ&{@+QyI zfr^eMr;ʠM¯uG߁|W2_Q Jނ: *.,Yܝ \6hpE zhOgWv@,s?fp !1u}Anŀ|4mw1p[ }Ao{Edľ~ DXzJ fEy9:ל/A's<}IHDc6# ! BHG =_[#vfliZx,lED8xtJuܿ6ȝAo&!iK\c-}~W/ku$KvVP|Jך<4h΀ KxnFz3 a*b|G:ףrtdY%t^Cf|yD, I.VBV$0(_az+2?4xlS =D*IW{C#g̒tOx(w&Fy~2)fRr4OT` t:E.2 5OCqzuZJx^p:]6(".-?;-bFIZ ?Rxv `s*D롏K1 :.iZ;s;JHF,+n h?p{A}Z4u^B8N!Rt? amazri[7 /ꃊ!ح}PӭVUܶi5:\vĒ3h3W _rR2L* S{٬t pMs[%%/ R-TUsr5Q|C2+ ƫaAy?U.G]c=t(1~p%\z }I* Y#p*OW|pUW[΅` 6(vI.v1̹UPr^(ؗ z~| DpHEi9'f9Fd< ڲ wDB|15,W$T>t-`O%VEE 1lp}zn{$7zД>E 6:7%ųZhMtW&,%+ [vB؀3>^=h8estrE~J%e6ɇhsJQwv‰0}C]4sZAŦ0\hP[u(k.Dj( l?h< EK%t[}dq}ewI@,i,&( -/LlPۖ092>X6V-,~:lsL}>luJ B)]T3lխl1)'lzȤ |x ,=mËO+_fU~J/ [1a\ F,X$I?K(+Je,%ldvGm+3`s՘24{b)9aҖOYRã#sM[.5 i+ڝFyX"*ah&kWN;Of9%gA +G#<<> ڥH 7A:A6h&odPGf+@uR|r*v7@HZazioV hW| Zs6{cG6O" T8t^6{<J~za C=Q YbppQt^ُSngY(\;ޠ½JN'f7%&ԍ7YxjAY"M?L@4~? -! J]#4Z\FƌDVUp'JEgHq.)-^fRKq'FMkxBtR5{yVDž}3i=oz#dU’u.v ~p(.~d{n$׿(h.|" E$ Q^ `2Qgdq]a*308X.SKQA?.3㨗$0_j@G` x 9Ep-zIn ~ ^DN-\F:w~^'Ghg,~~@/"t@m-›EZxWDy/yE[󢿕ïwC~rS<~r^$BG t_^'¯¿({U_>U>S, 5K"#i Bke@Pk`2_F2]ʹXcBj{ru#kBI[xu[8o(_5~@[AB-[xK.ipDZr(%@Z$׊-ySr" yH,|΍"9%/|áZr"yH*! HN2҈LaeD`e3{<,Za{9y#|E4tI[|VYuv`/2b˙)M}%a .X{%zR ũJ4 DYZ\)WlxّeqJab֌Sf\#mf/"Kj{[EUN+eI\oǾnIÂY?O ]/cD YNCkaA!đn)[ZڐC//7U"tg6"A3RIА:=ijwCҫ߈Ue:Vme~6l#︲qqDAW6) ÏS+ zt)gD`L2:Ow!is ޳~a#rS&T!iq@N0-97@Y)'HMmt.+ySw7*/5(By'~fkK :#D[q"n#p*M!wbj`u7S.4kT.ԽLEY[F* *؅ ȋO(N0hG&\_aďLeqWc=,Ih +YUi cjeKbd wэ 8Mk}$U!QG!#v>CΆ2v\D 3إRы诐16w<̥/Q?\Rg~U 5 1"Pjє]`DG| {BwXNV^՞c`cm FWE<>9-" <8Z,8Nu#hL*3M"Mjc3DXP١TCyGr|WuHW@~C+7Dj.=eIyuJ\${4%hA>!G7z#@8jT{ 'fٱM._߻~ OʟEI ()HwQOQN^%pjeğ`Y5稉K@W};*ĶCr֟ePLr%ࡷ*QE[_ayH_y@ 4l2Y  uؠyRҀV^ߚŋ8]H Géϰܡlt)A,XnEVf+΋1E As[/ԓG=ꄤY09_ 3h0h9 g0}1w"ԪJל-ISV8J6G¥`S~ HƢ@CEMA_p'|6o LG.F,N,jΩJwdI} *0 `7A/~:35B b&E k,"^-נ_sm_B2^nɟt^wf 4۞S&\$/;K\=#B2[P]CIQޣ2NeAzムZ:[8QιKZ/:C{&L;HyP{W@JWo{&LI*r(R8-gf}'>TDSbߙSb*=;̲1~cW;I08p| q7nwFf(ǭǭvVr!i/3 5]Q{DN/ *(vtLI޾oUvѹzu=4;:%,~3+ס" .N ' o."<-Vִ)!N$HmQ%_P7a m@ޯLuS#}޸:t3"N)&>%iłpSYK=eM|U,Oo R!um f+%LDYMk†MvU0&QsUU:&ADn0|mPwAj"$̠ၠe$Ӎa3lMzɈ-KӇ flbׇ0g`)S#{tFA))V t#A7)gPĠ dE UQ¦"b]ߛ[19d0^S-8*kE'PS&V[dzl(3f??1_2xkfmZǯ_Z(?8f^'v "fؠ)7S c>`~1-M?6!`bhW4>jfAϏD,wMx#SXgbGy<|ib0(u T-i"{>H* D"h"KaƈAVA%[@dY-&ldB,h"F}}M"̐ x7ڠZQ=whjRάnA˜c({oQPu{ `*a%TGĠ=R~]й% *[I+1`-!$5ݫqycĭJ(ǒQ#'=͍[4VS=Eg)*RTP8/ñq8YHqTVJV zsy4('r4̟0ߠF#3jqħXva!nSU\{I<Sl|mp9]B3)1e§/1\Mfv? 7T(hBA,O?Ӥa#i*7^% q*&yJkzъ f:gOBdi"V9np2JhY52bkWv|H[ATç&ʷcx dn𠏞]*K\X~{m_g {xv'e6W(,WwoGm?}Aq!^=,Nh;E$7 -6dgEeK^RZ}T,ͻګuO_Ҽ;Pڻ չYNîR_]D7AsԷ֦9.J@sJ4-lUi<VFhC: b¼Ýxj1j& sfVq槕bSټmقLœLE^]FĦrD&P=\bPaw f_bP&pAA lh> ЄnF0#clyD0/r;- SJ4- (HG:}KO* +dK.Xܶ 1 %|4;~ӑ{?LsΙ,FsߦKhjUޟ[sNQe$ )BQduʼ9I/R׍)w-ӫ\Jpgz- 6[kp3se>d䁝),7?Bj`-@Xr9b`ڹSGCxUԉ 6ە_+/]@Y|`Y/1h B T2`K,z! Sd&yK!jSx50VG2_Lj N˛Z7NOqkA7#KPzaxj[l"̄=-[}Y0r1kRw %ro 5t̽ȠJ~wY&p` uSB,! A 4BCΫ&j f&v,zQҪ F w\;F7vqѓ\F6Cڼ^*~KŮI[AJ5pE7g#绥*j"H7[l@o$LWpo LevJRM_jؠtܧU4Eno`W g-f>/(9Q}&B‹;`v rIA5BY [Ҡ̆1^-M=ҠU$T7S}M~Psp= 2`%W{bYB{|F?Lʎss zR^-ZGTROe%mä~B+/'[Y` ,|!8"T)Fn"c6&oJc;Z+$綩t@7DHJ zx'n5(w oЍ#[.$#pR!Ir@M!/:Aj"V蚗 y@䭂5x%UQQ;ĊW($Լq+bl5I,:{հIHTG+&9]=R R!Ab\i+ܴҡs}s97ɇr09i?OlN%s9hDjkikW_0jIfwԚ8Sx :cw[,#OFGF1r@x4r05v@Pvy4 3c/M!'!/ ➻^R t,&׋^I·:Sz/,n8gSigh|ۙ2NOtD5Ixǧ#j s@?w%w,%{fCXxaV #"J2E@,ϊJIUJ*mqcmR^g S}r2N_7 {H ـj:OEXԺؚxf+S8m2ӌ8JnVrOg[ZJ X*Y} w2!/`!mrQ'.lmy@u l-fxm'pAG`eaq[gs9PSrϞB)#Vx# y@ V17y`Ҡ ,X4{}p$V?a'-``(M~a;6ps tZiPJ>+>5K *P[Z+mj>PҴQهcIuԀ4هd 2t!ˬ 7rY:]9A^.7 N“X0BnC[4 :@G0#LB"0XG ؞# 5iǞ?t:2NUI%C/7Ŧ Z-5 CY4c3.ě+B#lompARiU#5Hk״ơ%LPI5kf_dɬ&P6@!Lztxm:[%ML?t4AUq[ꫧ;AR90ݼߏ22|vץ}|n4trT B])gi)u+JO㯁цNBrjlQW % %&C!tXe\]ۄo@~LyV=}AH8NDty XnBPb_GE^7y'[Qŏ&vaS]³.,n 3Qr}\7 3nrg43XDԗV3\)ǝ<3^ 36;cXH\˅Q l HMܻѪݘD = '<5}x#jRY K$HMl):+y=2*&;Yȵw.Fؒ%&*6u_*3$|Z0>Db +Ti3r0(ıL~LvQ%WI*9~Y 'fu‰)"wޠ #ƞrAp]&ܨm6z[/E*-.j$VNHcr0JwK ~htO=,cV89Iǀ2 qqҏ2Gz!"n@Vc q7rD ˂J[ HsM~*TQG˿V9& DiWZfK!iD_LV DHP  V,ۄ7J11M|h,mcX_&_m _~<<E jPKwD :pii8JTEe+Qse\w硅k<(.G3CHcyw"/Am86M/MٱT'э N $Gӫ YH|D4OR4+yGáHV{ru7N}LwS^ַ bsq3Wfc0n؆iE#Z 3k!jg+l|bM@-f\F Z%%{C(HDc  !:衛uȲ8= F7 CnW~?Uktv:æ>+"73r&:#VE (E$,vJ Y&M~D5l~Δʚ/lK-|4 gz UKj}AUk@RO#lN(l /cАCTKY;`$:˜$IYG˜d` ڜij2jEp1 0ڠ.n<ڠ]Mr*t#Y}@&wAC_@uױ.f]´P Aj"$1iNw 51-/A85- (jVԥ].[^/ AmU NXj7"BgxTX6HmNG|Yt~4->Q=Ɇs Z-&MA<`(Ե>:@,B 7.X* ?zK$j@Ajb} D0ٞ``P.RUɰv ;(NK;cx> [O=_aXq I:%tS,^S/%CPq'z9ۢd ()Ϳ:LaĠw0p=u33;lyK K+S`gx8F8beuu7bZXxnM3=L30l 3'/I ^lUӇQp?V;C) `D/Ze.(+R%.C" | ԬvKg!5ًf05h7ӽx4d/T=3yAe0̯9ZCf ~; pkSVm1t4 7z+Re'ڋېK <=\~=}1n`LO DL9+Tr4k{ x+cT<706Iۓ `@HǷ']5)8)kn]65کOPvEKImG3C= "$a%a# aBX!,:׹gf[okιs=<>76@ʏ7@vFCs;'Y7yd^]qB4Jq?[ӟwtztw?+n [P!_'u>}&d9GAnӣf ?-j07,WyQ697.ssW[znXBiso}Wķ:hxlĜe_ $tӱesL?({)]2 E=&;-5e[ [-e ߔ͕LLM6.$ Ĝi9^&5sD?΋^AKߘ6x%c|#֬}~Do,8Q:fõc] `xZ(ED8586VgNx!ZϑI<}lģpC GP^f#Crbi'U۔wEY% g\x聹-> kF[yp :z#ϣ6ʗK<&hJayl<=UwJ'u@1 la8 {3?@Pڰ- Q@yW:*țf \%Ou+mܰ[ 4戢R@ ʾ'U5`/H:POW4\+]庩ϥ{!!* !{ ddm fB@ 'nm³ (daf{ IJ,(CT;ߟɪy UJ%Ȯ)Hw r@hZ ΨiMWJo:k#{a'OEv+ l|<"p::5hjnA?]2$ q>`D=@ ( 3@<9lT &3C:[Ћ M?S1q(S]W0$߮L[Kw DAV4dʋ=vAE;%}էZW滏-[gǢ D.ů01N>?pV$>UtݑvS.e*\t1@rk;\9ôP A,&Ü=\-X(0- &vzce)>ǵ ṁ:Ⓐ#;wyy4'WݑNXT3MǓyxVR2Vr<8zE{ +Y2Zru3|PηȺ0Fl_( =ō%8@P""+=uETQm}@ >˘AZ'9s̒ˣ!+9 yQo!HHXӞ3Xyˏ>k )ZOʡDQK6ZvW<2$ /QKeH'Kܬrj@0zF"$'(C6eF nUT AW=FA5 iUo/Rr}p1%@ ZtY zp(^34H{~(fK,ʾ W/k  wNY9y9JiSʝpi%ދ-DI7)XV[.>`]Yd]_h,c-S4JTQh)zOBoDS H]m*s:Y‘߬4{@dK׋`,Z밈#2R > MRa_Ll(ע+!A>+X DO` w82mHx ~K$/3G D,(C?T(SLA2$/V庵i&xߺᵘyYdĩS{fTq,' 9Ls;|i\'nf!(}qڍ> 0k@`WN8 @u&9ٚ[Y4R͙/<=(9%1E|-ZL='[F%*o0(I6xpZp4i.w::n DP堛SȬi&A~[=Z!bv4Hp-bsM:oc=G#w꟝JGhFfţO#ZV.Q?ģY.B* fC-:-c1TG ڏ6oggfs@ LLghO.MG\a3%fڈ$tu?TL}& x  (}Ʃm:uf8r|.>v(+FcL4g(jvH7h'/ъp\@rG-LVSDCa[b-)3-_5JaT銶u.Bܜ銂Cd_;_!Eg!Gc E__'1I xk=xpyPi^XeH,Vm,!89:ȵi:+LkCc GG}qzmzijIW{M]FQgތ >} _67yMΖp2z'($mp ˀcGZ."ߏ) 8Zpyf"R 甡),"AS4B7/w1íηȍUd>X)sQ?m1ף݅DR'JcPjhL(5qR9=[ Gy:]##,YllxHI97 {:'RH4#?Hoye圮&4Mп]OӚ߹ Q'zOH(VN#T6dȂZ M'WP~ iA .M>X t*sYCt@ t/V P<n?n@pb-06 Pq{Fsp@]olL=npI.#LɒiɲǴLLDZ/l>1=4zct W WOC@(4 yp),vyLY"tR*FY*(C3P+8q>GlLĤ#k ıb /w4qy'SY; ͝-Ռ{mHphQV7^?| tG&6NզH{ 33hQQhƛ`tIxlDsHP$h 'gBK(g_jue>Ɋ",@ !=5Is^ϋQ YA%\ր< /L6 0^:e[JD=^Y$A/I!HA)(C8(Jś&BiࠃGQgP!o>[[ ].v/xxU2ZԹoӃ=У}):\)aF͸=Ag(Qਣn4C~u^~)LNzR9{m.#{) E< wU}I-[Oġ"O=hʣT" FiYteh^E. ?̅ /:X'^"pp= Ƣ]W־s5Du&*hnAb sB,KOGZ&( *@==ќf2V z@ݘAZ2s28FlKšhG]nQ։Nڦ3=qػrKI}^aWQmNLFn4Y!o<_R-)A 52ڼJ\4; $0 8%gBG(ISt< x~쉀=@u",w6D7}FyhWby/ܨӌlO.rF<^<57b2/c u8M b| TAB7A Db4HpDA Dً;KOLLx6qf@p`ϕL7"c&Ao,͒i(+V@nZ@(+ d$ʊ\|bj' D6V%V ZHAsVu^'e;vN{BPϹ#tltbp)ֶP G0!ɍ (`̳ :e}u8lE!ٟ+iØtW ʐԜwҷ Q@ I+;;JLE#XmL-m-GE׉޲\4SZ^^zJbk8zq{a,f*o\q{/0WpuJ%>tq{^t讶#Kz: qF@؝AKZs?}2{89"?fjz&hl4$ \t.;[ .1eCiɲ|I]zRQ6>w#Si~,dxb8ߏq9R'$GGis:s=3~ w yhɘ|H=\Q0ϙf?.|5!lpYM'Ktf_ fO?c GִآR{2$+'@\⠟~g_ Q7=% ǖh)=.8adytsoLu2nqd)I,-\^`/&vwh$w@`MoHeHL9]1ft#Uw6xa<s꭮H+%0 ѓN'Lϳn "h EQR7 4K3e-Tt\" ob $s@ S0? 1 T t]%@=ǔ&٢l?A% eMrj kj^4Mm,C^T?}|D!$E<δwc*K uTJJGr)h,/-r{n?u>n?RcÜf'g4?ϣzλo6p3Bhw!}+x?Qe@(45FS߭Pkp)K3"&Vu!t%x5=L4I@E(F5T kÏMjahL_ec !:)ďKcnApp":bA2 u'뜏3#5m ?lƐ\ ȅtMЬ$(\\5K) 8\'}?8)' !W*b@X z9%i1Sz>t . [OruaQ)lk='aT1jĈE\Qw8|m*,MSOVi[Sі#+>zTgGyz*  ƉEQ,ʼnl>uMFR<^ #L9h  AqEE-Wt%&C*Ǽi<]f!YJ-YT¤VMNvнf--|z8+/OI~Dts Eņ=/y YŎ* j9uC\uA6א됭* g^fʡA ȮOں^P } >(G>WPEtFAnCmw)4P ׀3V=$ [NGd*W2lǽED79ڦq`PmȉMx$ y<В>hVM$jon1pL  Å3/6b-L dK@暠茄G)L]@?zd,d+C Phr v*z !ӱ1*'F %s@ ScN A#+$ dk1܄EC(=ުr-oS%x$J߲՞*tlV1oOr\ QH 1no쵌(rr_(A\_R͝[^J_$_Ua1-J6DWqP7!.A7d-%1T'r6L?ȁ+GB"5>nurF_ޞFn:wү>6$Op 8qaω hQ <8iBnE,zfZqNrN!So1mGL'LҧI㋜dM.3qQ>Ir3\8i\4=3Z0입tz QǙhR$JGF GtD矼YyH<%hk> qq0O|&~6&2H,@`ٲg Stm-Ӧų-\#ȧY˳yO.ٍ"bZI_۔sl&f\ a?}Ŋ0IY }PF2>`WšۃnK?u\NWtLA( j8p 5iR $sڟ(*9É:u;}xs,{zFNlw%ᬕ{dz*{/_$wJ;ٵ|,S~pMfS+y"JdpA7 -{I'n՝UAs Wz'sqﲷ0#Wmr̓S#UHo:R?#6F^j|]HU%Sv WڅT,ݜ>e>6HN$ބ~d1_1ڨ^hS׫0iC&xNmooW)zjߙsU|;^ O"!?͊>p䧠_+طQA;\WWT(@uL(:jO(}ENM(% .I(r]cQv .PqE^K"&kkB9ԛRJՠegT(p!ޱ[y '(hMR 4y& Z6|!F@![B|@س __0 htr6׊=M3+;j6KI ' yZC4CcS D)YSc f:Qr2bϿ/ *|.U Fw:ue?T:DW5OPIhuu8d(4 K"pe|JE8X;OKC4\ ۉ<wS k==݋DϾ/®s:d/23@tf"O8oWiNk9Ȳt &,_=ͮmj@b-qឣ]HmvEY3i sދ-;T(N~[pET(Ǩ E.gMW4j֠T LןYR7S+J*|bBlԡ. lbskG EYŸ~`7XUA9#PE@2NѢkBffF,/MވEqUmȾbE j?]vŊɢ]Xk7Ee:ٵӚZ;FuiMLӋeU2ιfp'E@nFXmK,yE;snNҒ2jdŪ"](г-K<,:5 ^0ܽ=i4 ?rj/ʸl??$> P|)@x MȱX&vіnmӴ=vh-j7 Ddx 4nAVgC1~ez\mZtEn8<Ѧ-!9Mahn+ñCT. 82rq |44r1|xո^hS2 Q_ \pu=> x ~g=1cȑ.b {^BWкV"יWsf^m\X_kdeGއbȁƫX}IOL4-{i x g٧tZe&8s:r" T .*yiڢesPAxƃ 6LQN-ʾjwW`[";F2Baʰ:e :5%*B]BQwT(z8F5 9 +:}k*K@>2px(ug:Н6wն5f?k5lcD)8A%z"B45gy}?\c6At$eǙ6Q2 2FR]W.o9*ԯIWԙm ڄ=}O b`(@4us'Ft-y1 [|#b$}ȥ &_?le\+BшGRQ#JER4 МXz9 ,ڮV—LLȆQa$>#%' + % Sb(lò?wZZ"2:rvٻ^]e}rFϯ@eCڼf:In4H3WI]u1=9Pf꒠ԑp QNKy )zC9=ƣ$o?j((K,70zSubw!@aZ"!^*xedd+f<"wWt,r ?4$+RRA[yu{G"NT)x\ 65DDߺJiU=nF-WdāFkFJo1 Fi:l{c Ĩ:1U#Q~n? 6-u[6?BAFq"' gem;>ɟ?K<13;T#yBɟݓ??O<.OOgNgngɟ?I<:KQɟ$vKOɟ&y2FV*Z!aQ *-fOT\o]ZL:ZTh|ZW08+5^g4G*cKzR~áY83pԓrZfK%%}S'ŊC@sR&)C 8*E¡ÚJQgK:J;Cp0JD),il7d+l`?LR\J,iz"$T9\9̬RKJ,*Er#oj˫ި0B 8'd8# OU)JHE%mR4)CT8t3.>RQJn,*Es :O2e>&XՊ^3F5~άVtb'1'`?~8Z)F 8$K \ctBs(VCJ,jEEXe͡ZQ Z7Cp8p8jE!)@ 87=#~hjW+Z'%\h,wj5g(zpȉWr_jf(!%' 4`vŊBᔍa3-+KdqCpaP9Lh#Xn7Cg5f(֠'X3}n84 CgيU3l^wT{@؊57f(Z#%7  E pJ/hk%)!*zhT4XJN,䙊\ωuf*Z % tLE FG=r♊H]%MFÁkO1:<9̜󢶿@p`I7T+j/aLEdB 8'f*:yCp3:<ṙVHɍ%}0SQpx:,fvLE bf*Z8IM^`/Q3X e&Wrb9m[1,!vt3*lF)j%ڐMEV+<Ϥii." 5Iv86͍ 'QiJxxn+oc+UoAx8mVOLH"ok$tCaZ[,ruӇE 6=/>H | ; P(}or>`o x9k?BR ܷjNPӢm(M=l >zEB]+~A(0_"b7 ?33r'!M(sVVQ[ha'崰3CInD $Jt{&or) 8-c8xۢP2%ms̤驇T' F}t 7<-j5\,,fӍ!{EQ}ismaD3? [gڿ!)aVynѯșI)XHyǺH:T#M#ݪn}m0A)HƤ;& BSIhU+?4G|D/kiÜ]'V] uتcb@yb֡M2$!1)5a{^!L6:ajŮ%cLeejoPYؓi!t4uUݒg! ArC Fݒ-(C>?mF೔{ZXш{nGѝmx ]tI=X\)`x]raJ lSֱHs%w@`q%w@`vf`JG Mど^9h;,X-aazݽa20y}yTҐ lU;ĺQPu@Q]T7359b>), 3Spw[{C##2d(p7s-CH@ u]݁#jO[-N *Z % Dguc[ةfWK"ƦV} BsWlLij&r*0:oD 3;mp&kٟiUjšfXiчts(B%RW0G\]ѓm5a&HІti6'Чս۠4ʃ`۰n"ME)އ5\٘犀2IOG,5E>J4L.hP>sye[2}tzZ <ƨW*jTI&QW*T2*) wiҹ šM~qΝ-A({Cq^u@v'`Ӱ,lh{aqAppܑ y.`Y7yEơw%W*G3naʽex( "E7x A"ۦ۱ D(EʓY5&;zIJDߚټ#NqCq ĊC*: Nl"_q"GQEٿQtGuks?²4 DA|m9 v9] f =?gmsо FI'k,,xd"~=cDXWRPFu)x`D;Kg/0Q!䵆aаgj#k3h,dU]h6v 1w%Hǝ/Itܽ.8qE4u ^`9~$ަ FwĢ,bj(G2@9G}t2' &FN+Tۨ,4b}ʜ y"p41sEֵ#-Y.z #LYЍAc>dy+>,{*?H~ܴm*s9c#-jG:&/"wUП(%ZΏ;N{Ҝ=si3)"uuWUs~֖O㩻$k>žFUY#Zbv(0Ežw̝vy8D#75IS\D/hcI;`4HwOtH ~PH2 eA@ij\qgdgH0Ng…k9Q-#Dy6-D럦xd.{Ѧ5?ZԱW><қe#:JoqPKosFfwE95rrP3|1O}?i@T$MJOϘ 0FLذSQ$ms:#mYh5gO)ZX?^L);h=caK:Լ pk,9}Mb%Hc+x,'_؍,ֿ٫m6γi$!|'96=g\DNum6̲/طJq1={~S}o<@1~%Qzs";^ߑUot^6+.qrƅe'c(>}>QeQtu\h(~(􄉊j Å-ʚTv߷|DE+Aֲb61 v?e6toy`wM'&JU*sox_( `w7 .пopw [,E37{n@7z_]@d2o;![*? }}g}+S_vz"wE'^ "PsqK.MCr}JWhO3vW[fEB" "ѹ,܄RpĜ@K@O雉N "ZF݌FѨ?,ʾEQTEj@lrAܪI0x1:OT\gBѮJmj\eZȎiQWvN/D: g< S/d~F&YEXԡ=~Qt5~|UhG[`@*pgg3Trxz_p\h5 ۅ`kU4p[(uAܸ:7:.CV 2huom t\EZp%k=0"hR{P䧺c( k4d%AVp*y6 G*y nRld?; DԇAn3\rhKC2E6eMլG9ٔ?=9 r)"A(~}~5NLv}1Y5Q S{d)dhz4v@`B'q˦S sD\b DgMGWlc8;`"s*9*aQ}P85K"T'lzemeSVq>liQub@Xq[GDi,.iD7tyhl9C8Q6yqcH?G.i% ǮB#^UqPk&LP4BAv5pjop (dKI{cW6! Sڊɞ^vؕa6g" qzft/#'gB3NӜ1.'Df82&Or݈&0z3ua^oѽKD|`-i bpmIw&HN(;X쫙i#PH A.>@ % mD:Ux6L-KapRܼJ~_66uU\" 2:-KdVQ}yQO?mEX˦,n?2ţ7h"cOWGe(oMmᶿs#OS TJCUQVMi!hIioQ?OSԽM+MQ 0kZ "v$4#1*hw'LWԫMOWT&kEm̐C6 Q"(coRgѳ!{AzJC9J7P XE8=Qk]n) ֲJd%&1}fJqsMw t"'/]6Y6{YF ss}@j*Rn'#^Gonr6My:8$=u̗4N=ʽC0 8{|mؐss$V8;G{,yhh>B ٣`BR{ DvqMQ^k.#RhJOi#>F2J9R\qE&ղr(xFmtH,B%{@x:7 :vkLlj>+7\42OTpvYaF}ɦۺqig#߲?{eSu"8G1G`G{W(tHIa"r4{d`(-eEq~ 'CƥGHƽŁ10eAGygd%h]zێɓZO*ތOy%pqcNg'J^@`U8#M'̽ n]4ڵ|Haml])~GxLyétLL]n_6>#(BGT \ }Yy ᚨ&aQ1O!'#lcSV ͠p!yO~1G1W| O\}0U8yqc%ޗmy"c}H(&)Kh藌um:x:efդY~ڛ>Ϧ ǐ[fbrx~Z GA`Uypo՞/NW.[j Ă3]k֊;m`۔/p=f_NA2\NY蜴ʯpq߭(8^(UOsod"bO:&O!LdÉ\dj'z㥴3lzNE໅##)M礛 >TOhKO&WqOtN֤)CTӟNC'aYh@oe'Lwx2od8HsoޣAҳZ$[H8-$*j^Yh=mfc\E=zk^lS/vqiݨt-jObkQT*oֶlsW)O`VqnjoX)ʹWz ZU4߇w5c5ZXfn(A6mBZOٶ"Sv$Yؑ܇,| a8v ?Y,h5g,8̦cʨc ~Ρ&r'K{)癭M{Ѥh.>6un@[+Vb-+65A}{P&RF/;>EYzۺ\uwfAȷ\', m ]wZߝk>\,E\dp|qQ~E P0zh ph9+2(\+-ϝ66y V` {U!^'nyлS_{4~@U-d^ѡ <_?@:ט6u^%vp="=5PJ XNx+s({Z1;ld1;/x;>fZ|M%DB8+ق] TA-![5,ϱ*bge;ٲaD2weGLNlrL3 dck'c_ cŒa] *[1jlcd>؟`E΃؎GCM]iE=OƎAl$Aq٠t;@;iD"kēmǵ$1mmz`,@ߐTEɥ9qMH=&ø 8Oo_O>tZX =æ+ ǀn8æx1=_6h}1e3ۤ6 Ca, b3" 'Vގ`q\t):6:.6~ ^E( C|"OEo"ka7RSAϊHpP:Wl@jhEj̎~JO9lE/&s]ЅۓRq9bb kxCخko_ ;^9:7fSʘ BNb1Z 2ngԧ 㲤5kAy7*,Iila!jvJ Rﲚq=2Cޒ8IΣ7ja < LqI~ȵ,H5" *w]Ye&zMy_rx1E͡XJ2 E|ei>^O{]K$hNc+#.' v*0a2B7 b1r}l.]eR by+Sȕ٦j~7MIt@_8|*5%R)j-wR D35_W&a:X֗\HZt1"Vcy)@8NỮeg73a^Tݬ74Ls;sDCyާ)WyC!ptշ`նmXy)*2a]t*@e pJ`]e>DqܾRRgSTNC׃q:q8pi p)gDT9~bJx M:?MBD20%u6"w=^N ~?r6v7@ 2nV/sSCL4rf\J$.[^5<ݘ|gL<3LzJrR1E]vZ; hMˈG?O*|HpzܠՇW z`x!)vSh,m =z=+::)o :egE \߃ΓI4FYV`ǽRz 5B:IQm.4d hi\<-,4 &pcG@ } /pX҂AC j&J 4狠Fz(EA>\s$ر Ll-}U"(~,B{-+VY3s2=Eĉ#QD/\K.ˡO.,x~FP(O /K~QOUٽ] qYz_5_ ZS7ѳ.v7f3nis qXA|Sسu06*PI]t BgGcSqĂꋬb6]+3wit1?==\+3׍[V8=zxmMYU@y2z&4r չk9?ʣX:䩅7Q暀K &h!&`RM&\{ (ծ֎Ws(nEqZmYDkiQh E jЬrV.4>UZY&](ZbzBK q16B+[ 7WvN{ m~~ hfV]&N]@pE2.0挅 Ln@pތk$ $e,V!e&'0 ,uF-N󪙥eFr}]h~Li@N3,.MW&!ΈisYOcX~:OCkX,sr Xu`"JHxW fW*KüuZI!N6iޙ?6 >'+2tpWtP0Hw$v=ra6 /ENVѨˑn7*]J.;/R2cM-gn~ct|Mnm Ԧ;DJJlRԄ3#%eI ݼܥK $7ť6yriޓ!j-Y q&UG4ľL& T 8s%'IA&'=YFLJEWk;x2o%b$bqfC &[AN en{++.a `^xE#x.]BzHAB]!-\r6?0~Ƚ-xqN׮&w,%O8XIƕ^JA?]͇ErjE1г_Ò}YdLW;z4/kOu"=kF"'c5@(SbЏ4H\cȀYul"$Y_=2YulR {2xݦ,VO? QbZc ˜a9e #PcyL<;w^jdEga.۶1Oa0) DUfȖz@`Ⱥ3YAץ(:̦(*c1Cz`S:VIACDY<'.PT$oeG(_M3(z  sE@ElE}BXY@aĕ!!~!Y0C!>\ǖEB|!^Z.7:!a p%r|N<1S/V5f̱siQDxKFOK^˩!]qɗ]3}+YŁ%bin/!Я:^ YQ׎Bh k/q(^ϖR:X_!A/[,6ޙ^;&3=Z2`nb9 tA {"O;CPEQtU9r~pV<]j~g΁O.HU8},O1~/܏k۠W<*fjU ʳ`zVʐj1IJU8 & tk;JrZݢA]sqW8Ip~`?NLlMkFk{'&}ʯ1SMoU/7kBP\1OJtYJ!AMi&|S 'uSV'ZlMD_ii$8ȵ_ߢ,~F [5 '.k6!ɨ+*X#f.`6YtRyȋ>fQ}>^XۅcK1 B4HLd?@QaYE-VR1`{8b:lv GL@i&$ eN-ޫmNGn4;Iv\}z]MzuMnC^ggQ+5ǙUhœ fe@*i_WULijhEP%II$4M̤737KfΝ,l*`A64l*7P ;E({Xe'* {ιdRO9w;r:"N,{=3&s=sq?VgEngݫ(t=:euT6"q[~q]&ѕƳw~%2P>_i`۟ ; {«H20]c̼Ǡ_ a eʭ@*y0.zrG,s0u@+ Lf~g͐g.8\1ٜDU;^2G HK2nʮS_y5r}!KɣM>C+nS66o]R~yP,>^%[XJ^b-^^ WP \f'!D7نq!dT\+Z~!q! lO䯋ECp"# X?`h?N6?|c)k<8jeBƗXHC02 dʫ[+ygA]}#3B"zAGt Je=N4q}ĵa*KMD";Cu|/a.L?ߑwШR>]MX{ { 1OSNr~;q2ƛt># -fMYIsJz4 C:9 <ATzxxĺM=R.D8)N=Ωz"8ڣfã# NR=. D_WR%PYR ,+s"v>Bb92Pgf^|}'񶀝qqQG#*e]\2Ѽ }AEl m'#/o3&܇ň r0{@^tF [~YǷW SY$>c#Ю vH+Z >x)κ} 8mCokzllԩGQ_9Y^#揍b$N[5\^-?fM|ouN7 _H~T'Ї|>z-•.s#>t`[1RJQ"H&0,D};tg2p בFn8ՠ9N>@WN5h:); eL['Cjxէ)_?P䓣{َU3q^`4썠=nV QdLwhZ0ՠbY7LH`Rϋ!ܴʘىqtA;oBcC|qR=B a:t+O #.=Ì~3dxbXudX8C2lw2!1= K_(oT>:9LǰSn0t`6:,t6Z6sn 9#?54YU#3ڧMZ6 y=iA$~eȽa*/s1lM'Ā3gAonLdXGXgIMv똌ܺ0~xB>! ܘǭZ>A=Σn# *">!6h|kTy.o]K>žY̎&|,Ue7<:Å6h{2JK@g.LJ؄|Ba."I r,#2蒙gRsLQj2sޛ.gc<6.NDN. =CG权p3 Zvvי);AW2#Gp1h }OkY5@is@>f\k인SQ$Gs03A`e>@0s|4!V(a D`l0ݕMG[ zn9mӃ3A Cĵj?FGOⴍؠYgYԏN`3 A9Lt?18®`12,3Q}f2s!G N&!>'R04C|C\5&a a',{ {j'$jм=S | Y$d%Qp\y\j ɖRy9}L9*؊ {&%ޔiDUyG*G|pCrD0zA,G|h1\_54 Of1z%/4z>:ZL}J>Wa}=LE{_W?=r;0|mClɡ;XP{/07gY7.gǑ7}JևЎ8kǙC%%.#cVpO^nTCgJᾠ0"H8?;Րzv5 ߅u0 iUWRx] n[ըeF]RLPHjONb6/;cӻ'>K뿙ߗ.WsA}`~LWS>'C%BkwB<]g~W2~=0sD3ž6y[aE{ o+L\Ć]r>=~*.(n边LnӠ"-.<ѧM|Λ]ěW"꣝ {TB}bg D2*Kfyɬ\!1KQzU>6ERn meNt/)$ PH$S3v/F1B#)v,gcBK&M( ;bf/0PX3`P}0jQa =`i#~rΕq`:9L/d\;c[ʛ[dKY}gKޛm)<'F\iY4>yFn+4.fѾW>(i\ž 8b ^ߘu{5o}2hC"zmxW-,LpF.Š$s&#Z.yZ+eN@A7L\j[ː˥JH3:zH2Q=^<2UZt".EH!"B0R,q!ܾUZAn?װhA>aC}a0\IF>/L6D$)b*k QH<놞X9ptNB\b_h;~O9:B= -߀x%E Vǃ*~rϬ W/~*?|Ӥ#RWI 0$8>fRg A{XXᑫ☩< z<*bzibAvb.;ݫP)pYXmmD7 'wzFb}:"\Iz_TU3 :e]IjtT'ȈA%_Z[cao ״"Lu QOB&MOT=(=j~=z Q%񗦘%^[<^[Jt_P x_]!SwgYޥBcн߈$KΜmЛcla?J|8V>pjkwA rӜivs?M-n9FN-B N+u_9t'@;[$ڞ=V0,p5(>lNϧ'eň.0^z$8(wHr2O5}wD|E&3Tp9߅-o250%<.Ӆslq}`}|>!$+DZC%mZ1.gOӾt :=þJ#w\{|1](b|e3mo0w!v~<87NyMXr|"7^8)7Μq(m"7^U1,#xNyK>gJnx f **VpN6_; '5nBN= ?~'r0 0֝ʘW~\GĹpll"?fd8mӯc`Ђ%T!M([qo8jd][^Qg^%KjT>!R/Od_[1=8O8w\"#I|$rgj.<"ryrqU))uBFf/B{$ >GoG ~7Q^Нcm Sl &K=aS$>8H ݆D%HG?* Ng'^Ėf33w C_aC'8PMrhޟ rf/⍏mº;fH75K$] kAQ\sdZ>!@Z'dWC$<̟W+y1*+>e] *n~,\o W+o|G7{NoUw٥iz" E[Z4agԹbX9$~Wykx(trzZ-7F2 }4Gl "p$~@ʩJJGJ'b)r#HD)NQu.,N;"efzxwJ|wW3?f |E6Pw;,}<,/V_#zW0\N{vv=E? (\8=}Ʃt֟DX}t&n}\;y,C K iKb7"ŷumxcʥgܽAg* Z gYܥfTA݄9^mPۥg Dw}C"<Eye7e . ܧënXs:uS;,o/a_tlgn?78jŭ([rKgr.~v>P2}tLߠwZ]Zؓw31}t=^[t+`60bnmeͿt;ĝ$f>X|¦qn&gHS$<>eΈ 3 LzMà95a:sYi@} z[F*AwN”Sy<QNq0IBׄN\&L?߬ _ QT*`η=Aq|]U=0%5L7gwIuk7seBy^UmwTKt0w2Webs`e< srD=wss\MHH.H2i,ɺxoJ.*2i輙lVcL<x ej*祮Dj?tzq4]XTa+(S9M9tE%8 1Idr4~bw|`G{j `{ 2h saz5LcМ^5L_7$ka9i;ce6q[gY2OWW K0m*]ݐ-Ld=ÒAH8%YT%&S>dj<;4b-GF*"8u ϲəI:U~0de6+]7W6Ş{Y|*{1eB91[B}8g1L|5ED=éaZom S ? K7ҰQTȸcSr'\0] m KT}{A!LC2COl} _׊B7 ,=<9"Sga}&XħNBW,P|MLqS!7N"mڢ0#v rY>c: &X ސ)r5P6oph?JeqE.樻e'!L`5] q0v]6m EV5Y?|X*,x,:o!it0/#:tR>Q;f c C_"6LyZI.EME17XmY;Zސ&Ot@}Ah))vx1v_^W΀PP">ΙUIE*Qm ȇ 2JsYZŽE;eE#+oeQOD)y \n+1 sx'rwe'nv?YgqHO@HNJ[6Ҕ]!/b:MU~V`C* -:@2KٮC(72ᣊ|)Ǡ;;XQ1fPo-[!>MmWŭsJ]ǘWrͨqAKW/6ze=еZub2xWS$vn഻<6lUEIz5ЭljԀ;[1.NfmѝEViG'!csDӵ1i)>S=~{\y氇ʳy6 qs^Ǐ#7iVn]'w*fH4H y `z>qDS|=8 2\0!(FUPǥZzjͪSv܊gs{(.ug+.9O4; 쏯T:*'J[x MV_20HuOg鸶xї3`Go{%C%btw--Mէ,3Syr\LCDgA/h>? Y)ҡ`3>r :!lT,A k$UUMb|ۥXrB~2RS}\#8垑n%a ?sxh:޸T qB/w/qΛj 0X;14n@O^3{4i8m:7mSex*=*U>4xZ$Zg>TBgJWB%6'I( Hۘ宴D /)e7VMUz;+Nma g<<: -]{+g]J}/∦gø)&鯼l~1B*"%]M>Qt'a 0& 2U5!OKp}{'xMIas&dl~:ss6=gм72cmO+^ooӧt(C-7,/| xs߸HO+|_ [*sHQ,lb!u@>[eqJF*"LY|$oO09\:^(u[Rx?N5U^.I1~(g"^/q^Ez}')_",bl<[S$_$77:c}D*Q+` kPL W\"nfbpb0}*'_[*2Y!G)<=@HX]䢘vweJZZ.Ό5֫8WEgEU\=og"l/]7Cdp: =CD <uTQV`Fp0R I[&_P/(Ƃa_nyz ukNpiOU+j>,w0'z߄b67=N +4!{+tA.YK'uig5B%:W\X=>` !Û R1:IVॕTF?JRy]QoaYdmaY'x]8eQ~|kE.tpH)WIXg4WEX>.N Yt<_xyM37LG^G&0q||be"RG/)].Y>QQv5HE/Ek&_ &w1+m{=g+|)~ۄ}A aW|E9 N2@Xp(:0_X63 ^GC2rWET/›\o(w7ӳ[%g1ыo[m[C_BA/^\ X͗OXWL{oa$a]Oȼ0AvclEΔOcSd"iɣ-a-;X>6KӂBc%5BݐTD_.p֥RǚB"?6{OXeV< { 5q=;ќ"g:Rx|~l Z3p .c h|[r^ֿk!3t}m;WJHX(0  r$oO*SWHEԦrݥ'ҮUi+d"NJ; [iPiN[H{xֶ UM \v)^D+T[3(VR'"dYq -tވxQ:Xy׌=LaJqJ>l2+-W1rNq&)jîcLe)彟q_GncoxE0%bR*,lZ'3cͼ똙hcpY!y22J ,"}r~`tg{b/U?W\v`IޔGN}<.۝!ZiYV럋rt/r 9ԁ8$P` 'Z YM'+  ph!VS`'xk \Kϥ'kJ?.l%Lfʢ<ƋT~VsY.?"sRp"CU TĝJ5SN~Vs*0 CA<)ѹ"**\~ hP>XU;97{Fi3ͫT)ҷJg5y?5s:3Zrj=gѫbi"<[zVi4 g!j+$Ag}T(A4dCCMh´G†0dzZ$3'Rc$(۔YV9,rSGS,O0 X]fW{cw 始g/T&\b;O _xK.|E"o!*G4ApFQ%T|ٙxA@97T[*  HN8{Ƌ1 [V\ʴEu *N+( F9gp5IQHg?A:㯿/_u{{=fidKhnb3yݰ|*3_no\L8=kLkoYeW6c7L4ŖlXe[b2!ismma-ygzu6s_*j;m`󝂬f&k+l6,&$L=2ޜrgLŷ3VYL)B"S(P&⡌f&yktfP[=ʦ:Pn*LXS16{䝽 k:9v`gCc;kk^ñ_v44l]+kB[{kG5 B:Aho[] a}{sH =>M[:ִ *tڛMeRc!_Ζ:WX I+u67t@loX td]:cu5_ !Q.HuM0NbsmiCdKkb XsӪ"T`?榯mѺNE,5ȸNp9.TBZ+"ZgcMmS]t+X ]khZѺq7X+Ķ5K :noaknhsM XsSUc#!}4T*3`^]j(.ݺ5%, ݧva01v85sgF^߼~jgkcUjnlkl^ӱYdHJ:ҸK+J]# HJHJl WVu֭l[-7n.nntCGH>vLW$fhE5䒴cxJW|<u֭%hX׹aua]g:aoXP&Z ٰU$["吿elXؼv ž$xMkXseCG]*{,Vl9o|;c B/]cgSCG/+ZDխ^?m+z[ewӈ5L _ J,eǭ:UsSqTIZwiw>,uXWjYW?@곙>ql5 shO\z۟k.%L.ݦnJ%3l!:GRLPԌW9GlڣT%ZKrdkבV\ Ļ=Ӟ Ɏ}dcKW䉃X M5mc?u&fΘ4Itf58Vu8`]3bqzL~`DP]3tMf;}L[w.]>ۗ|TLнk&ΥuUA,fX\QZJ_ė9vZeXK$ T̚Bڃ _|LAȺfOʐv]\k:8O)_鉌gIz`dXzx%ѥjVϺq:9[[}hJg\N>$+ 5KB:=HX+ZÙ85a,.b*mc։[8SuUZob-(mvu Q+l7SuVT4]-JB;]9ToE^& KLhI:HA-)("7C ]I uWUԺ)Z-VW}E>I@x`EA^Y,@@AZk{"OO.$ASu1=ePSZOgڮS4H:.iJr27F6K{gs3YO,Ing9331{%BM])7El65@_m:I S] |)oz]:rfFdSҶX_.N󗇯L4]f;.V`ϩFF55ae2Wbm܁°}]cWa[w b%^isM~S f cvWxoєfj36x24{&Ś5dZՔp (&˴9ag~P!O<]_n9K?=[tkXf7{^ais|1uH7mf*ʏ)v.ƺ~/:.=X-VwrFR` I[o0\CAj5H b}T I6s.a.d a: 7CP=nJI钬0x#*o6Ibe>:<Ҡs)/YQ݊j+iwy1g9X3ߗt?#$buNeD9k i麣i+-Qx,mf˩9АZC 5[yKZX;nv[(g k%#|Sh=B$1QV&!Ƒ&,gSf-o?44ZFLsl[ iᖓX_Se,ziG5BY: T]8N{:j-QlW$,(Wo?wמv6imiz maWZ9 ,%SV.ωӖqG0jJ.aɍXK*;ffFurWT.eά@ok|oYevŗ9ylYT6 hkddq]5XΚ+~PNJqԵN 3 mN,5΁1rJ<(~%.~LZ\LMb*i(1Vq5n{J`&୽Lw4±&vDK قbk N6IPv,O-J1 5|.+E>UgUQ,aoA"_ .k3js,Ĕ/|dc%lVHGRta6! c)3.nxq1Gi=pO[,GP…q>VYH(-vND7/K,'n ҹX.N {`n[`Y IIhǗzL'!JK<*yv3"L[XtNm߾}vX'Y7E?KVQ봺6MJ_UHZ߇KUIl)Gy#T&U"P996o1AgZ $]f̰ä3t<Qdk'7 ; ^(Ѹ3Q3m)}qAZ/*ݛzIc΁O٣k!~De{p"1ZRA8D_}@]r& . /3}t:*_*l+ĿrGh6z/Ӧ3Rm"Wz4S0=|IdD ObyC1q:3%O rlGײb iAC' ΅/:/,Z8.Ƌ11bqG\Zbʼ5h8I/Vڱ(K0@R$]`yO9I ^([& O_9{CCCzJDېq{jZZc!6kE;\^d`pMVՄɦR 8$SDy68aAH%-319j:GyXݹj=+GwQ.t"!|xkDkbTλX3a t}_=֮$mb -u1qȧT,ֹYru}}#mgxNJdi1l ^Yaq1 m)V]{;-9D[#vxFk RCiF14Հо`E{**X$w$uMVLu@gE6ń;#UԞ9EtQM?uz$=&;! &x_Kh"0x_i7;Y*dL!o\v6a|u\Mrs)GbP\p`MU~8q2N&=rdbPm J*5|Mmx͊VؗKmumS(mcgE^h|,uEj謻Θ[Zi1;yƧfNv5z62_)&*Lm(MY I|Il`I4u#R@jN_OɻV:Yʈ`鳕 _+#gp>:b?*xq2F1bS嵘2qZ=ͤ;2Jjr}iXcb.KAh$8mƭ,Lbu+1MӅS6oyY!U y |uK\:զz^z3[c|;}Lջ>`&^͈1Xl xN'y 鹀~^3" Y,\ukXS=/1Hzk{Hiz[#xeuJs@h-Lt,,0gv+]AHqJw]^cn+Vda퓤MO2yZlhfmoi3vn~i A5ues' x茙YZC75T }?2V2HevY;]uv2^-i63ZA?- ?6w-s0Z /߈VWqZkJ')N[t5;y.A:&M`Vb3`:b7+H|@5V`ú9pH N6]4cЭlKܖL}6'FX{LNbȅ1V\b6[]z Kuկ\xb m1s5υKs&XFq! dd9-fN > , Hٕu\&Q|:.St+}0W%| ܐ~Ïu !hd h[ 2E7E\ādz-3e>l1ud: OL>'$kERw1YwdHK+ݏi8a$;neX]3GqB=jDN[i0B%79փfE.NT@grѲ%| 6dgGk[c{]K:ϿLcmEuM jXܼZAuFp&*Fi:Lj/d5VD ڭtGꚢi2#Lj&Ah[IS_yj EǠ)́=I; }k S(z=;ѱ*X O`ԔM8%2CAostD,|Ԧi0=/azVOFF&XF/bA?xT[77!#Jnj<RG!P75Qu v#9<dnb<M,u=y z= 2ͮ^g`u99wFcm*`}&'gͽϚN{tæϚ{LlP\UU&Y@dAnʚBw}\&0}\b ֛Bc!C_,Iv2B:T!}|Hk>1h/V]O{y.m)cT,2+WDW\|0 o2y0󽾆@FFx}"hX E#>^D}JGgI <ߤ6]hҙLSmޤIJzcR(h4Sfrm&M07kLubHo$@hX3ݛڙn#akuh5Abdr~RFW.2exPE AruH:AJ]"6>*~ΣHn>W"$Mr>ZUHN|4JX hݳ! {ݧ!_V^]h-^be{-&J \G &r uJ۱n@mosdEӡ;wٮK*(1+%=m2o|qIӵM5Qμ5+W.jr=hQI|']be!ZK^.i'8!BW8xʳI[j/^@b/T6.|c˸C֫Bު8LOHV|`BCL+k y ?"0o E}0Ǔzfdvopx2[7|?S4tAOȯJ5e F^|@Hq0lկhdFQ(khd0-uD"L'̯kl뫡h䝢Nzi hmiQ4y/f"OEqnm42\e'€>5]_a\ʩ5VZ+9wyԷ~|YnlӹUSux&h(H^PͷS4Bڬ۷t>ǛWWgH/N(#Tg@XU~TθUKM Ș4߻O,Vi1Kkf(F|@aFcpņvh$a:c20-di }%dCqԕt8t^Zr:z\ft8a ^~:A4hY8DTw ,HliG[N FH@PfZl4R![E}[i\2pA:m?x`P8>& ;/D# [aIzuc)YB^Fʔ&I#K(IlS4AѦhW>, 0SnSt:G1t4M!DȩY4t NbZXF/H2nep3oXIw>(xGwlZa: чD}4 beX$ךpm42rE%[mf(FVIßٌsz5!Ipq`B@PP4>6j{(Q\?5cNpOYu vE q߫ U/ 2b{0F0MHv# F*z3 T4<=d5'YEQ8p*kzB`MOEwG֗;NҥE0$ELPb`i+FM6|?JjY_ =,v ,БE-vF#nvWڜl '=)OC%~WZthd@jRnؙnYxƤ`+mdhy= QD#mR\y~x8Õ㋃~f, 9#(gY=MJkٌͣ|B=}4V*ZtK1I,oQQVv p,LLG?l=*{;ay4f')(jNZ| jV硲΄Շ4C4u2־۴S._[ Ȱl̂[n'NE#['~h\/Vr -KnnR mE!id (e/,4 h.W{E}jsiZYG"l6Xf^+E#J,9θx78EI}VY%H}RӆUj3=@N⢼hd٤+ѱ<" nadmn%>~+>o9;v&T>ol,enI";0}HHIP4R`2YdeK0 &Mȼ 'Yp3RyQ!2RI;;=zOwPqkc4Pб{>kv`>'o#2oDmOz'XN*ӣheD$|lQe:A:ćX* &zjn=AYq/nkn.Fj%;ɉsr6ƅyH^(Y. Q3_qJs╍hdLYp deZq E#w2>xG?T%:Е0or1RPhAǘ*5IbVP=$=YkΣbG*8d6,Eܒ"|w,edp~˲\b.,IJOH3ljRټ-JHmQ7dDYXf+ P'X H4({3ɊS8ev<«Q9ЈF6J P. ms2]!,jO] R4Qch.("cfV&ۤJ&NJ1dUQHJN%ϥT#E6?)w ӳ3IxT`,D_o= _:,8IFя. .NE#eϿ~S$Ut wh_-uqNMQH6qQ[mH툘}ɯW3xNT8aͤQ{@g )iW آaeFoxm+@hNE;$m0(G{ k[jf=QgvVRY¸l-.3;A) Gyёq@>Jֻ8gg2OH8 'şIݶwŧAR[e"n@@kACH=t.9$~׾%+Tl:Wpa&=)qYbi&p܆O>q"\k#ҷB BYx2t,xSTc9TBCh?%[J j)t&eȧpR"a" >b|!_9ԐrWS//16bm;"'LFZPYih[^Je5sL1e9!Ǯ+N? >R*3 nk&lFQp!xvB/YǷW.Z\2PZ+_~!rdɟ.$ҿ.4ÇKh.4gƶZsI۶ze$c[ ?GĶRVB~m+~8a[ K?YKey\U(ٿbPgb|/ ZtW"걄BbS n9|׮{3qEYqJB[w+47p_o72x;‘9Y>WJ iBf_-h_HϗҼҪϗҜҗ*Jiν J/?{9> /V3b 1`ᜯ|]mgo[ -B)q s~}{OnUG8 <:y|طȹ\ $͒W.JőJ {⣠;_11"O@"K}4{%ƓJDOZ'~_e(9cT^}%=DR'cPa>Bp9mMrֺ]kFxqc| 7EazS&=bZM|@D)SжILeh2BZH[Ù4V{=t@l&;GǞSԱPi#WF"Qضцix[:dB;3ٸ;zȭӥ^6U*Fztp=؎pKkPb)QAhp=T (DtH}5Cg&ۙ{S{4j7I`^"ul7{d1J[C(yx:c'SFʻ!}t:\NJZ>=KIxɳj ͅ?|v*ð@z`_xĎ!=ޥ4&|ZIJyTH\d^@C@1POl6Ds>naFoT>9#O AĮʳ 4lge5"l(_&g44Q A4{L>qD"b^-ew,W>kt,8IR6$e_q971-4Ǿ[}N~Q.+%Zp<`0.+}ذ4;ߖ&հ!m)gM+wCY+F9Hg, $SLrsoCB&(&~TC;j:5 3ɲGk2h"rɺ^/um@ElteSvCUx*)rx?BO±̄?V1\@Mw%(`ni-S)ti3OiC̤҅$ Z9m3gDa7NotSȭӥ7S)'ReLvr"< v?s;q[ሣg|P4@mӁvٌ<*_RR) . R{8@$̘@K+>~탂M՜$ :6]x&hB:줙ry/IkK'v:nsNu*UJ8R},.yMXe >m?(#:3㑺m˸i- -flɲ-[mUtn{[m Ff[01C1!D @+,~9Ui7H}k9uԩSN:ED}@]e[U|v ]r[ M8fF9]-y.[%6[8X JmZ͞jֆݶu_O!:K "*nƃ`z'.6:rʤ]QW_I+L[ہYuU8{EO-غl م2IyJ"@.{KJI܁'ҒR- D=9:))I6x{i4pPNgZ=ORt= Ej;Cg! lQE9_xoݣh{>r SCv:9SxT+ p?:q+~91IĮSIA05Z,[n_!rE_xEqH>?qxC)?_A]֚Ք8e-p$:K2}7`S*)gAxYT+ 兝 =cvIHȨ^d $\{]Ft z9ͼLz=IZ0y%CTqvhSBĽu.PxJøA\;ՌA0~0CKWh 33h WFZLG 3Б@@n Ek @j6I(Z2'7_%Tunܨ/ SHT4*$Bt@in+F_/RS1nFtOBH6Ӎ2`yA)_0u+og1*YƬք^8dzu&tEW:gd*ݗ#$ڑkn -fhFٻ6LUPeD:uk)="0/4,3 :f}+ ?u{ThIwN*̕D;4)^VJo\2osiܟ VZw4:e_š_ċ%,m-DžZ5r1R r/8-l]?k(CW N׿̫\mρR!ܗޟJ9J%qek~%و5"R*#$^$J?1$zدZ/ ;6`0Tk'/8bTi L7f+! 92~/vV32DK;3aڳYjj8 D(](IUjodE| '+HJP#&'>H"$RoB}E7u+P)nkyu8vWש۽/^8jڡ7?E|>B zK]LAJRJJ|oοk'9Fe@+̋虑GS-T_mj^ j\R4Gr8p oBGR0X(r"eӱ鲤탟 :$5s(4ԥ xa,ʠE~.MqAEfȀ*] 9 몼y߂g0'Ђ]/# r&)Q S)eڿP ȮRT۾fUy|n]Oԧ䫼/,NUAїTjR[?1C}Ntd7(m*kd.I"e]:U:ru]kI-LOʏY{Zr K$*+i uі O:]'Pa=թ. TBH{TB<>I[}8n\E( )"T GzJ)T"1`ΘQE~PU)FûW>95\[ҦBLV쐀g ~IRLZ0g.oTbݠT ',VT}|}%aw 8d:#RVhċ[HeMR?IQIgRJ%ܔ}RJEcpל)ϭZ!HidFu5d fNCITYJNh;rú2.;[6B 4]nvs[W +F Rןm @9oC H]UD'Kr"|%bH K02J 8;cel Ǚ\d%V S%U+sTe.]aZdGLG3UhhՂc0$<e~e#"8 &+_ae5]P3Q4Cҿd"y7jJ"eEvCo7['EAvRAzzύ$i$a]buߏԳkj^%YwC/iD1OQ~6wZ M(Ы )mxPe@& E[$?6!H, s&'#!9"a7-n"%Z Q2x{h|B#/.v m,t3-Z\"f5A[(/|[D,#aVi$Unz;(SPGNXᶂ&Qg#J̓kVɠ}`<Ѡ Ԋ1^ʊ@ ( UM}ʞd1+/(N'bk}+Lvja]C>VsV69d`3T~컈X"pܔ;yiFv+OG^qx$|- >/^R#`2,̩#fS7L\v~nviv?Z.1pr<H89Qeyfge?Š*ˏT(3wg|rm]MLcwhCGTKl 2KX~ұ꺵xZ>j8L$ϲen#p {;aH~ ;Ğn2EЈWZ":3  .Tg Lw^јOvhB;PTV^P257? 8QOEg?#i`Wa+QL\UtCV]pd 3@c:lg`JqȢֺ`Ս:Ҷz, y fAjbZj-6i77oM.j'CΕi0jG Z2R md60|AoVԖG jx/rLw좂IiYB&j Tf/;-H"XwEmVɄw"[KbEPO4ssW2eeD5Ö[35vq?@B]Z$ńϱi#ak.W2vF3- 7wyX/nܒ0'YxayVb[3sDE|l S0f%R3(:F=0RgSݯvjU)I:ՇPE4~{8> G5U\>O>QPRG5D^V鿗 =8vH}CRSޱ({?P>]>iRȸcH>UHTYUnʍБUpMN*Tc*(W:5n;W6`  ,ZRmV 0brf[7͏B*5~\[ZE{-&uZkB;#Qa`rbGBvVPj BݩePIj +x.btGkհ^/$,Ћ`*vv8@2._w1CtC "w%k 1mz;.hUE;E5Π^P20'?g[*ZOxA9R(9;\9b0(&p ~ a ^OT1T m BS3J EM= <(ؘl'oYSKS&srpziw-$ ʲ<.O AMD ^Nq8" =BCsHǻb\ +wLʶڅ#*TI_0< gnΔ aIJ+87/#j~X2C ˤ3yDbmbsi@ue }FB2Fa>t݈f3|wIҶtDvdW7#j|q[>et^ŲF0xN<{Pm fВ1leKʛSY[:M`c}M2XіvxJjnL @YCcb{b) ,s.ڨi(EtVBqZ\Ԟ ɼұ˰ɫMNw{,ZG:uQ@:B|zZ,`L(8FLۘ(rS*F|$,!d}b"epOtΧш=lxwfVȐAp,L,&ze+gz9 ؙ,#nnRҞY4Y7/m{z'ik8vaMXgB-, Z4Q|x\&aŒ2w;r9QIAsçvB]h+1n "$ͫMR /9SRy1-G};Ǣ$PjjSeOlHTdZ,k?G˝iMI(ve1DZA %c>*0^^$bՓCE} H %Pk=_=VNWF4f ˣ cȐ3]) .=Y4g<9MZP =CB"FGh@bp-.(R3Pfp\"C\aO  sC3*FPP~/=蓱z#Q/C|A8Ȇuzf?ţplPi_xXLɷbVm oU<8zRْNErJ^|apR |kL8@6xp'/} FPo|oިl+kgjXF0ke'u//<&>s*\L΢Ų8@V@ڐ{Q~V]N1egrIS8^w%T {Ú8(6]i-53䌒 B 'ަ,8)6д؀C#Z$P/닙bT3ea!U h*:|&\˦305mD= EdEBopq>@GtUI0e8?R5 ǻmW3y8DJ CEtxcj? @+l0慱Ode p͙Aju<Qt zY%I2(El%M\M ֕`Xgm꤄(^8W_1Z100A=f0x kxXҥhی Iwr;Fɘwߐ6skjM܉"1z}he_߀쑯U-o=@usq[&5a8DZ$sKAIƶO.;d@ٗ1L[? gX# *d߯*V!TğlEIlp 10@#;.W#_Qs<\K6W&40׫~%V|B9`͙z#*[R(wgT  k@^a7V<(v'*>_Z s 7SYZSIŖCru .|(ũF0l N _dA#B1RF&ȼ嚌Ɏ/G|UŦSf]nG"I^Hj'RP k-֢¹V& d a*J%[ [I/-0t@#l&ܡ. r ߦJT*t[ w 4nq:3 cӑiw{Ӯp#?:@k]Kmu^ qEcϖwUͭPE+V\.Ӂ S*/ f;4_ sr;h祤ѡH5#:Op-JlX%¡CiFItߋ27q}"4SB^<0y /[qʓҔsc(GZai+uynq ʎhK63}_\ _T%j~i3gº^k9(mF,c?yEG@>vס'O>0y"-DE n%!)>pǀ؋b:x-`pt=i;vhUش-C{ҚX=K%*ƢS7X4 nҡm KW9͒:ꔢdo; 9%`,mN'޽=C}<%HYsv! §=B`Y./ q|UoX69ɼgZM˺o[qˑX"סls٧̺q-v+Qr$xjڷm!&9{3^ߝڑZz|Y?:`E`7wWidW^(|E^˅IiRPWU&qO@\sӖM5nAmj/PgbDWOJiI㣍3 ezᦛ&HT9&Zj>bj?%uu=n[ =3I{jQQA;dRE’:Ymrk1.eFu?X;†C}\vRz[W} kҊnoeI)-QTS;=Э)H߶bÖ$>D3%\}A$v9Ŵ?V]#Q$i߳mUP7)cŖh)?%c:O( -\VlvkYjхs.&̈́*;x{n^I%C8~WKȇH6Aih6|dM]tɼ64R}| <8``AמCLes*[%Wg4`486+> At+__ҾM04"Rގgz'GⴶP$LAHV-!i/ď@Hb&X ^Uh\.F}$R\k8ܩ ɤ`CqT%Lf:v*'][ ȩ?dԁsGs|[\@K&MgɽBsW8Cx}+"pvW &I4RɆ+!, 5^15Ns+g oUܣ+$VⰋWaձ5`r\"J-p+[p3L$Y_x*; 恤n:x.f/Ga#Hl  X1B_R ܑZql$ܖx4@5UU+ߪT-z=ԼVHky4;h$͞/*JRj5 ylb׳IVO2PTm@|z DbLk]G[ -.(7V1Һcpt_cl6Hp3[!', :q}5|>X5K4Kx+F&%rf['!CEWvk9 XTk=P7wfA{ȘUs`S"BB\ԶW5EClqT̊|c.}{'h䛳 ęm;}7؆i)諏–0g g|AX.bD9W#~t)b:JqQZRxb71 Mqa,d:֥RIW˥N*N$W~ ˧u7`'hzw;9Cgz^s x 4JYbwkvsp!itʏ~ܝDj%JD~#S8ƈpwV bʽ4thnL„# Rx'd2PaZ ψ$y"-X"/MŽC1mEŹ!>]-?hp[ ͜dϒ<ϱnm7}uqB g#6eЙ(FaɏZ9tpiBjDDzN#()ey!*MxY |24/L z^BD'FBUw=^f=J&ka9 96c}?w׭1J$Z2vݢrDVa/;#%Ŕ : w$ֲu+k4\!,:@pɻwa(R.^Qy 3/_ڍ s:rm*u* QܹRe7FOz@Y>@JNuK##9hA^,M4ӣJ ݶf].#^.6n )׍?{'Sgd3gtyew鍆)=u1uFJXwܓP>,0+dL݊ߡ_i? M?tkyZXCM"*qIPTVr zb(vcKyc8ۋ.vܜ{3Dz>HybU4:1dz[ۘ$}]y:oi|vH?ڇ^0"WL@9z(g+KϨ"2Q,[ QgSDNXt|Kɩg q'2@ptA?ZcldJvAL 'ܰ\זC7,{w2E>厖U(u R|jրEʸhC\KFd6 ;lʼ*bkqpKgvTQkA*~9G _iDm,rqj]Ƶ[?𫍪v;C~ r5e wUT-ǯ"-4#6X#h|c,ڄ-:9;(.m4nWn3&$c jJrRTq麤hHb 6ĭF5{O 'a'^t@eԞV:`L /Iqx.,^ea %qHqP?%, ml6?'h/[}2{bDž+sK4{^]#J+b~3Cy BC;͇ZBS j.N1y&WjUoikd[:o/QNIT#ݛ m]2ŏߟI u5]CD|MgKՄKT%r= ^ 0}@J !\BrߟoM%%":A lChژMxGc똕aˠG]5sM8U6'wIZ |T>_Ɓ[aQo2!:m%=[x<)!kS1zA۪rN4YgwX 7Jdv-L:/$6Y: uLgl;;JsJYXKDO79h'd;/̴ȅ/~a~rd mqHQ8zj@_{a&v(NK$JeZlxIy%XT3+[|hT+iVT#G_ )AkCk)di/*GI94 h/CupU`b'Vs[4 mH _e%Q;bdh6̊[Ș5~ Wz%7O {)أ'!qd[\(z-Wޭxsk- ?Rh_9˶x5۲4D{~#"7s,ԦA}Ǽڞ$j7;Բï&NŸ5lS׽ҭitp+>0Ahӏp'~+~.Ikwڵ@95=Yv W xoe¶IxXx%Yۢ4@ۂR:,$ݛQE/Dh&Xy$AѦM_6d8T\T\|[.sC~@wΞ?I;i[u{^8 ܵ38mF0tVm:3V7آU2v&}g7B O%˪$[DL#Hk "sR+_0RDв4B{ DKZ쯧ht`'%H(.10Ki_CzwjF6sR=q{Hߝf !:q7qZF_POxcO+OC޾M'9fYOGps47=M?C7K!X3* 7wTSQzz"zYYlAFZ;͘I{^mbj08N6au[랔q8%йtC͠y]~&YCyQ|S~N%eD] C\}5/C + uΉq,!ӆ3nlyvjjξ5v+@RV%eW=NYqu"A2C{}{OEߊ=d Џ[?\rE{mwj*p4dp]3.NH⪻3t,=U]-{[=[kk)1o b*,tg$EQ1'zG VZr؍)8e">p)7ڽc/Li "=ix̿{ ¢ݺQ`#ꉝS5~[mq6~QQ=O?SgQ:L2}7KbFS}):11`@YŞA-)p+m1/sAܻսtT=2O@FNO=\c׎\r PZV*t{'{UyJzдڐ4J?c"6 /okzWv/(qGW "Z[ q潢gcMlhPj,Ɩ _`4Ǘ/8N4סRtdF:$œ0hH@_4; Ph`=EPfr/G^L>,va^v[ &+uTQ{^dTw'Q0NFZ!jz9r&n5*=xBɱ2f-oX=uת Wu Rv_]i~-}उP,d7C2`ZzMy‡&^dɋN? ;O'076RnPgv;8z@Y)KuBi}+h&ĸ_E4D}aeKY0)Vunh4GvBхN^[dC:toyv\"V?Jٝc_jI%p~%z40Bb`=+ƈMN‹ӋONF&/=1} ^*ך~~0Y#:]{BDyO5zaR[OuTCyGD>N^58Ex}cFx/il75".R)Tb(_%%r|C61d Q>A,QגF ,-7;ogsLNـKc"k3k7TKne;6 7G{~Ry)(gV/F^`b6>LgcStld"}!3̳Kۧ{U3<{U# L'g&;*~}}#]mW.8oz=؜#?΂]:U8p)NxRtny(Xf'Jxp 9AS4}GT`?瘹dACv%#qkq]qU^ yUh1WNW':g—,|[kx! ] t}VY!֬|Ң`͙xi9wf՗"ۏ+T@~duHp'H&^"ýZ^͆*o1OZb}ougꅗe[{u|&c04nbyRyϩB{ S~?؜)[5G/2B+~P L>ehu ht)@"l={Q 4O"MNP% .]vLzX[f.%ZSj ϶^k  hZz5dtz1YҖ/[%`h{sH,<(ĪC1)֭5+[Шza[/K^Pf5&VIWԇ-\b[,l]9o1O[Vo+f)]ișDiC#=3_]A kAq-+5+(='I?# tj xA4CC+t_(jZd;z9֮#1; _\]=Kxg'(5?ۉIvꚭN8ȣ>Wn,бD.J 8Gx2s<#\z)kς,ȉ1ׄ/EVo4pWXf;~U)^N*?͜a-CKX\D_a/ 1HaK-K1h.xNKh x&HAmk.BS> @r^ l knǃKɞA6Ɣ`z>k#Rb=&ϵsU{9#k)5@0`D`LP\ZE5v~[dCI \I=pԲW>csCr1!?U΍?o+$~_K|)nDb,PQN.邧FzBo-^?.`;!T)ӗmZչXq 6!-Pu)(l+uQug).зd fD% q_K(~Ћ>0[oWfΏ"!%oUE(w;f&?Li*+~9 GR g2;- BCY(GAΉ8e V tq3]]MN҂`PKU;K֖!c_WH+Ք[ A숺z>6xfT wȺȾsYl/UAUeNSbٌVg)UG^ ;Y;NMf_myzws{=aK$haY:-%E.LԤe /v Ix%rdg^ȁE[֕®ATQ;Ќ8ir0f[7Sj7@-,9S"+Mo .LLʪp"g|-*Ԕ{\WuvUeu4~)י;R،I;`a?@<"٥7 ouAV+тu]fObHF6% :!ɌRw};Cp7Z} 9N3.x]^.twveLl4,KI6GL>+p>~+aߝ٤?גK;vUȍ9]z&_ABS2^H.`BSVW)DAыlw Z2˹.\!y+>vQ{)d`+SS?/RIn88|.KMw,ŶxxZ{۬VG4rZŶul)z%_#G9DעLã"eMNF^|eug, ten*KYu&KyVefșu&Uz(?:+#gĎ66q첺aW1qFNKW;z?G0Maݡ@.?(D# GzQ9Zg#x4֭MОY'f Z[wdX v]T~խԏmҚ{B%}?J4wNNWM8lE|Pc HzB0%S~ ]or`Px{$+;}7J0C?um*DW ]-ϼJ6E82 nfm/I}jdfKDǨqP `?j9pkf,2<(. qe6Kap^ \~nd:~DE+ "-RmXڿG , Ng%mۖͻ [X)Q;o]!ר22"ʨʿ eC4%.ZG 9 >y  ,r si)S^HUdv҃Q5ӄU1> ^[*f,.[Wgf$$]-9/dS[pg1'$@A  eu=KC7rFՏ"/R_Ou4boe ၂Kpw''򪮲\YF%xQn۷C:?za4ziB%̀,b)pJ%#гXZ5.wL#~_TR.¿J$}w^PJ*0AGJ:q*Su{I0aYh1Vgc}m^)j'BvqN\y/I$lsE8jG41$uDYr:W3$ݧ凴O[eQn$}ڟcm$bw)%Ѧtv=ҧ]+Yj*%!ODCrBLj]Q/@)PTw/y/;SdzUu\ ]q/m`MxW|:k˵.s7|H6T]2.P%˂U`qy&<(_":3d \t##":J^!Lv9IԄұfʮYO@=HҧZvnc/ϰK5Q˂Y݊p_I8_ERM~-k97v,r9zzaϗp1 ATKʯ.k5`8L)$&ٗ$(9;n֠C I.СD,cDSnm~fRɯm\?C.,ь[QH=NĴ7x'?x0SfwKkxD{r[@s~h8wߤ+<= Nx:`(ڹI-jvvX旤uDt j -֓Q!x/ Joiʐ|?&03..UiY*fM,;).Vl:k(?s-u2:Ԭݪ8݊5xj^-2g3Twui^}Yf kDl|~@B'g(E%gxP܄A 4eysTӻ:,w60Ŷ 9Pa+clzs9ϐ0sRWewhuuW>F-AaRd %ڠg\׮Z%yr3tXVNZG賯@،?Te%l zS^s ZofIrRgW\yǧ5 )|ޅWGkz$:#.Go `@Èyvw5^+2HE+ bgu$0kWzR:0"QՔl!#f5O1kUE"HB2j0ko͎PuI*)Mm%T.+@g42CQr*$ǔxMfWԁVؑ0沕frUTz@oo*!^e5)Gw+QĿxߔfWgDb1hR>wׄ*?N z$"A\{2nZG&Q+Lt, m3̥!$0pG#Ϻj#4V_<f =aA)fЄi=hΉP 9t=Lk4t k7uނƸ.]Afdck5^;W~[)fxzAf螶k3{{2^ޞ,ݶڃ!tJ8tW,fXN2O4{LcXN+b:x&ݥzhαpEn/g\a@x1Œ>2VLxz_MnQ1=ĆSt`  {!ttA<LwtP{0spX؅u @.dY"X Efe/M2^Ѳ1[lSmWk$ ֡*x! o&Aw˶Tk`F@"4 ԯ?]AQ17j-)IU3d̿SSxAe) 3Q֔9 (B$sB^V᥌K<[[(yd d<(t ِ+k Bi,If! ,[Vb _/S?9C. 3" rw r/EC/o Gֆìӡs'HtCqwW視Gk8qxzRA1zz/RFJů[E;q HVv]{a@•(;%ȳ܈'H4Ӭue#hIhdI;ؤAin2UdJ9JOXBYңO|ZLM~@Bilx<™i3PHS]A#.9rB{ZW,Ն&|e<[-t83ȜT81Ʌr]V]eAhd\]reu}`yYIsryJ&h%%ӵc g*g0CdZ*fg^Bt8Obrqn{1:HEMvdSy}2DyMRRmi "bXrE1wd4СV?\ؤle2;2N%31jj~"1/hlŃ;G?:ª}VIsJoGD6vN=P׹\ʀYX2J_Uz\Y=MIenV|/;>`;GRNv'SG:6hSB=%3D}2|ܵr6q]vPE nn{}I`)N10a cp3&R)uIdU4S:%5xi`Ԇ,YAgw5f Z`0Zbɺby'&g@\/+){ӂ>c +M ϧbVQ"ՄYO57"x^pšSYSq\k6h# 蓧"N{9 EC8:##Zvs[up{:Mk D%lf UJ>P~8r)l8{g3TZ(Lj纙n~L>}! I_(1dal)Ġj:osa]YE2{P1 ^ѷqBg,ph+z2ِ@F u+ٯ{d˒JUQ ƐPQV,vW9dlVf )ԨtGMdf#82}9ިjݛMm,y_1ݺKHa}r|WxB(Ye+/} jsﯙُ/yk ]$Nmo2p8-vIM1|!_l3yO-_fH :]} e!]8QE9x^1< $ + $0xN{5"s=[2C1ىiʤ*amr_9^0]f`j^S8]%osįm{{> ogwl̐3^9/#ĞԜ76Pg2+zw o#fԮ; qM2c6Qs l0/,lJ, u.: .`hɍ|ҭ9-i["|H?,3bú@8: G\ 9\2 R,Up l4vhtwPdK.Z>8̈4sD*R;G gf9t*^/ ( gDe Y|~x&3E '}Yǵe}bfH7Qx[fvZ[dsB%D)rC >r ˡ1^^~siZMtC+xAǜ} 6Z,xHwΥ#z_)zzEZoNTorҩ):4;L9'`:8?] #qKlƑ旾̠cЮ.!U 4QE;|Oc$)85XZkK:cYs :y]x_)){`{ZL?=tUL*V@"ʬJ_p([Y? E8l0> @89uy٧TTxR_/ƤgrU-8a M'* ٫([{ڊ4ÖP&H?& d *SSUrw&zWyNK5Ґ ߹2ԃx5 nOFI[.uCL[h~|۵P/3` 1!KVaH|NطHjݦ5FmېM[fǬBKɿȂ({o2d:lyYI)3y\ٮW,?_d52*#X)]l=bU~2kj 1'ܢՌ0ǎ .ډm7Vc|٤3qoὫsE[3)`6׭prjzLQj8?6NTYAj`;v$'&p>\{, ity@XOa߈dq"xp l\x.8C ۡO@ 4LK/RٳxLTr5N_FǾG(XhALô~j#D$Q`ͩ?kn nV489A}9Ӥ,Mp׃DvP.sjzToAz#-2 qSeX|o0uYX'Q:]G5_px MqUw~q +*A`w0 yP6,W@Chk2:0-R=/x3?<s#ڗJUC4ZoJ""8zفcq$e+gnJE|a:;JgfE6ʍ3 Hy<)8ktǔ}Qhz;Ƈ s4;:Lk>#}u/YBzsn׀x6HH{HeN}]0bn8 /%Rt\ [[f>]PΙ@Oم.}eԶE zͩJ\rs1K[Su0 Z.wɦ(J5-*.9Qrܓ glrk0)K[ݾQDC#WA)Enl v˥dz6Vۖ څFX`GEPp5K &L'&yP^Y;]u6%?X6+hLJeꄴD@7aGgoFsGf]ngsu",D?(r1iA3 w7c\P9MjA:.2YοAm&)È [=Wt), ƋKǼJ>׏7_qIJk/ؤ}eG۹c[`IuN?JdK;\%t'B "} :Ƈml|RFO57d3~dHTUڸ9<ʦdANlӡ*SaTR[Jn0;.@sSSە o 3DLvP,IKcҸKm*8WVhds6͖+mLLG 5.9U."|\Ίlk{.\%b#}p Fd`2<ˤ{Ԙ;uv [hT2ty;DJ|C{`4t ՟>EnJu,gy )v,W{vBinaTfs-۸z7"$ŅzGVZ#˪Ǣf&*LPuB_`yMB{Atm|!&2G1pL$\me/]A1+j˳}Jo~VYݡ4ۑ}$Edcg_5>Lεs+'k{վ{=]\ήxrMp[`9e{qvᒾwz\)`T"$J]/2c=b9=7z2pRșSÄgRUegXē_En!(Aj򋒁E />qQSHʕN-ڮ8Y8uDzS/ߙZ]8ʥőSFK07x}>I+EX/mtɳKRUրtԙB`(3KDJjs)X,TBn3:KS|E_w1A[ϔ%-a_tmh ]#9HT}3=rъ\7:5: ۻ)Ӆy?Y&Cn"!~%< ȓeۿWɲī3pZiݴlm~~j/v?5INSz:MRft_~"C1{7= s덿KID| #ncy#t7S\!4 } I(x &S|FsJ%ces|j:ؚ+Go?AQlʻgFtg(Ewy|$ ×C{Wffthlt)B'st@"G%[^tvoYX'/S}2~^ytQwb o0(k>} ugWwffr䡚hw>? X; mq֮xC%xLMbkWǘC*ZZ?uqg_ Lu[ȀI7`u"NY: w,;@I7IgzhIuv}so g}13~M,D8qp[%jqrf,KW1I_C&IRIjʳsvk:5wD|Yjff@jJ;gfuj,G'ӻƦlg88K]<9? FK6^WgKX Ab.͛R:nis, 8ƱmsihXfSjeZUn.AhLx NU'4Z6زŰ O3gHUZ\}U'fK9Cu^K8*l9M΢fG#HWa8%j]6`?yi1)ir&PEBoԔϴ5hw+eR@M~^_߳~ꉏ" zDד_]e9ŭ1\]>~5 *1&o~tK`;Y)[vKM]su3IT}r6%eFfi/fe_ϗׄ~1˩{-:# a?^ϥY*e *k(sjs_˅63ERcSp:OTP`}PA_̟eTM*sx1 |,C0'%/KfmX|ɶףe1nתB1o;^Uk Pe=%'7žm x=Rl ~]+*23{TdIA8+oOUq&J1ǂ :_tMR}6r@!3$RNXTWxCI=ͯ: J0 Ƈ '^nk%M.d{~y7AQKm; ^IuhBt-JЧ1!R&:jJe|I ѯ0vy2 ̿wKG۬iQS4fPqo Mse6u sot=3IW =Fr`PiA}) N3RLnRYƲ ,?pwEfnRr2^ХEfVx)>Er~XꈴhU"}kKwz1fXǦ-; FRL4nvvMo ")[s߈z[آia14ȦG\u|baF#P+l/ګa6@~{@B1|Џn%[§OpA(TIsJcF"@i=^^OKmk4oZR!mfCK 9ur0Y߿wJ^>!aaH"?Ĝ٨K+lx-N~c4=05!>pVZ\^X(V"2t\x#xY)7XœMxP!%cM!U葆c[P4B 'vᇽkUu뤢APɋn-ΛgulwYz.dl|3{ߑn7Pj~e.ͫ&AC 6L,25x)#F|7xa\;.4MesxHoEw{:勯 <7xyܫ{ %S6NP.G8 ]Vx(wDD7ソƀC࢞a2i[f L?kOEJz$}y"A~Usiӛ:wQ#⼟[`/ڔQ ua|Lx7WhvIp䬒_}lEE:ͩ~ MYw#tA $wqţ՞NۄBoquꛤyeW4N֯hp5ԝ̲z ީ=V)f= np>R8N؂ee7ֱe0fq_IƢFVxAѳo&W.#[ԾSo񍷢Gⲋ_{"#& Վ nQXłݷSU)┥챂<VĐ y2G뗏7Jc.e~h+(r 3*l(l厐u Y(\-VpU`'rg+;r+.Kg6g_ACyjFloa,[ۦ;{b{D #~?%c[O^N+V0k k!7]](T'hX%v2+ލmo_]/y qi*Aє6F\G};yfNN4b3|Օ1{5302یNj4h,rQGcJ]j;zxFeӂb`Ko[/1tV1R|0'cg0Eͩ *R63`FB?FuMTå;{g"@F%, }ip"oְ4 (2/,֬߻]QYu #%d|\cdzXޥ^bKk} k8"xQ)dBU#D*tmh.^/9IFw [^ըq9`-u<"_Ƽ dKyZ)}+̘a?LP+4f/F{eJgq}XcځH#a/ /^8V oaIbU4k?ֵƏA:z/#vn E0\;s۝u:M6)\F[5emq]2mZJUgfM"37@vntɴ9#!b vQLw`̺&eC7^hգقhT0'X ))B~P&x!ޫe?mkuE-`U-^F}@#nRJX o3n KMz M;񮆈]qߍ̆f颖Y@M xr(woӦ1- t l&~:g_uӇ1e r\N3c)cgCQ-v)VǴz($DB्bd BV~YiXdKyj@HBohDSA},f؛zp4Kpc?FZ/\Ź$g<"sL}|ع3 ~io(k.>QoK,xO3\T[_QDSM ,:R7ԕ[D(O~ [6R#x-tx㐥F| aANUſg՗ :oe+L[;kǯN/Zm^5`օȂcٝfmbٸk;2%eYve*mHP-/@6@`ړ0'/@nldu8Y%0Cypz$iKv'(ij].ƨ|gKs#T-ٝ~R5i!l7҄K/?t)?Kn/zO/Z_hJx{Р.lsli埊_\dbehIMt4рk33O(-naOϧ!*x<9ZQ W@ &jqkA^3sGl(H \yy_ J_/bUdšHYb%ƷFhznQy8RdnI齇 vN oh7'7bߡQf%#J@4PUr1( oVdzobX i:py!4 W⥐ PAɫVxo?X%?~-fRY:Y$F_zk'8O9w)1O ƖGWgkvbS{¿MŊyXҜ %Q BAǩq!^`D_l~*j|d6 %cʻuRcYg;\ qˇ .%APC6x ?{)'[OY!#f4Q3Hik _U{dT f?PwoDo[⒵dgW~L7;386'HoZŷ&맳îz"~PbOf +ՀafYW,1m\{QHBk)kZ}Vq00<Z?j5_5G1 ٸ޷Wl\QUM!U}QƨEvHdEms%[n6}ii`5Vs2B B:m۸/#^,{Ur0A|)_)>%|$e8#))'Lw;e2܂:D(L{Ğ*y >SҜ&o7WhN˜F[Wr=)/vUQ}N:CM2aX¹JtFȐ|Fr _SNyn~Kf5uHpNs%}1Tә4>:[4Es^cD#n2~3{;z!}X(cԏR`6ɻ%[1 )QfMSeW}yp/C_]kNvB ZJ?\4^,b['ʞo= /+Y/7k!JFl^7e EH0|e:e,,\K3<4G_~BU1#uܑi}O36:ȵGAԣ/+$IIY<:Ʊ'S?u:tUmfQX!΃DYm׺5CR%1mם墭4C*Yץ^VzrUl Pi+ύfsx,sR*LnĶT^iB`9ծI.6:#JZ4Ra EܯhqnLk!ϛ+<Q}kX%t <X BK!%a!(V_em^MWj|WKS,iD){m.TGTdco&:4>60>dOh/?R.i{rx >.KR%=T%ORwS֖}m6cR.Q@L퓞M׫sRnHɞX%{Tb4b*>T\z7BQ.Ye`-M6hֆ tVG.ymvREHE{ՅH~VQ㆞OtW{'۱lnA| Vx\l´R2\o "WtSBKW~TR"y_BzOBL4ҝ ]@n[b ;n s]rmJ?l|H+ܯvsvaQG'}yJI/q9ۗ'?koԁyZ։ʳw둚̀o2U`S5)=d 7!ї 3իp&UTDZ-ru1>ʥ*+ߨOjAe]٫AIZr3 cd5*JQe\|*'[K%4M?~[bŲ{Iݗ=eJͷ9Ud[wj`5[=0jOifLbK4-\iS%{+ Z ~k,AѠn4QDV,_NTWكFn/K`I F0४l^p+BwaDt)y+0b?UO-RK./oCt)& ^YA 0mv(qPA8IBz;zg*ec QpS7 O+iO>.!|Q; W~J]ל@fB)P=ɩ$kw8c!Bur$[gDsESfƱ!RTqW2ldvb86! 8,w@om@G1%LZv+y񬮤C Bݓ K\(y'Y;t`X0PV/C? i}_E=9Zւா/NTNЇ;.Pn h oMBvsb }/em"fN˶ŗ1XZ3y&9U>p"!(`Xa.jęKaEWf\<ǀC!)h\YGƿ{ ۭ aݣKx.fẽa4 %Jːb޼xS6n~n3Rq ji/L-ݙ + "ѸŏTuNcT=>h{N3!GNEN|uR4=8 V*ҋZzcsV%V}&m>3_0o;s@Lw)?@fCo9]ԡb6})䳻Nݱk֍6zHORX(me-4ZwgB ƶ:zbqe0Ry4yUG£X&g:'Ƭ=_YS*DB5$6"إ۟pa۱K9{q yRe߅&\-i;AՒyI%p IxdMlRIB- vO-X L{ȗsG~^BSwZ'܈53;\򲅒г*3[,.q- B-P9NtlKmuqdGd:+?0 LLFbZ-G$4[ť3k\|FK23b^̥yr'~\Z@?qկ, 1451kW ΰjI41_<5`[CݢYwUN=Qj\ԫK=fK"lþ_~cP*Noh5fV?'vUl? :Y[I Y",-[{fjVZogq"zMU{tY|csoMHOpVĩ{2C1~Q9*W]+? Xk. LdJC,41S߶n"o;Sړ 9 ggَKty5;B{vJ#}k\%##zilSm\[#.ݣ\K܍J- q5{5[gOP+rqܳa7vȷd+KѲdyb{ގ9 'nm0j'K^I^8~iWnbhT~%"'~Ȍ9bʲ2"2B $xyD=N~"'ڨQJHZ()D͕ʩɭKƍϣVd՟q:?~{ɲIaqdveŠCDQQ#-<=d}Wsh`w({Z&qіPE9:=֒BkWα^ch|Rf-X ae5X.hސ!Ka)dQZ;?NJxS 5x҅DD-|Jn|-A[t?6q_{]Ry7Z23 q䤊ysْAQU /_XS#&q%J- MhcFMeю,-.N/Ƴ?yL~ħkq?oĚsȑ%bxMomy#yGc3:K;0 2_mo64|> ,SOcogEN_8-2Wg7͚pf`DѬC/z@S* S |00bδU Dܩɱ!lU`Lf05kS'sPŤ"x@t=HEc4n  GT Wpk ? u ||t8ރ}w7bYD$݂g.hn*I,KCjǡgCǟ򸉿y2"!Nqy cp5#q0oYłCg9D8ޕ޿]s?x>PUr;ovCag1`>VT;Qx.O1UƄgpp<_@"q;q"]wKi&lmJO3mMx/Qh|Dpcl~ns3WWa{~ Djӯ:B^BfzW `i j=pt1t0|: #![,I :JK} 1$,ŹA<(iM ;_B k | <,ͽj"D`4ӱ55]U,L3HծѽZ5}q۱>::UI.ţjW#/VL1 o *PZ[H9أ%1OYtnkC;dj9S&hY/LSh[ W =!]GNC]'c SgEԤotYlCe7iPc#Xb{h"hp:'-C0MT :$̨IԳzY˜չ9Q-lK\4 q<5 Ԥt+>)$075'm1"VlURr]?p x;]154PgpM=*R8 xQ5Z9  GD,v-PЇ(-[=+g8R#JtO&d|HWVvH= &$LHW@"X3kB+8KziSV7q@ݏբ]?NJ +Wʍ;`V*VׂF:5Kb<6c3¯nBzƮ%d$ǒ 6C@W  e $By;mahj( FBtk<"8^<_-(KNRMgHE >5,g.Y"+YͼHWjRWJ-cR5X]6%b>L*WV~)6T歮 Tq 0 73~<,fC:X]&bWt8= -;&l :P䡈Kuq^GTdCȌhh _.KnUl;O,Yq ֡ )n6LGߨYEDW3k>]jxfHj!$'JF8hc OW=*l^pJ/ЋqU/ h/M"Wd9X6+HRY']SwL3b/KY]ncdFJd nscP뤼#,#0&{focrtjNHBmT! MF,YqmJ_kz:fak&v.?WnĐv.~E\5Ձ~enbńsŎ,]2 tN26syh[3͞pN|5j}0& )KL>!ޥ:nzlGDon;E3 DQXFVOE=(:yˆR˳Tk0_acq/CFoo ܩA]UkmvJ ^$ӎ'Z" ןx1'cpѝbʌӗ Ѩ hO.v.ց4u'Z 5ryASyeb4 ZkOhPQ xIIn̚F4auY?z5ְ %E 0hyy]&[em!;W_@݈.-J8Tl7!*H랣E]m:xT#KOҪR*w12l {9h+znL c~8KWiwǠVK׊% bDwy j]*q/0GcܠJ}yz-<\>rwN}c\Ug]C)Xa1sO;u(*4wCmC+^.՗@pV8O Q1sKZَ e۵F8KhXzCGҭ8ۨtK6367@u5+cC_h+:Ʒ7R_[ QAG{RcZ~FHmK7b1x/d[cj$Lج4e4lxD{Y,6Fj* ,9'xh}-\-x9@nzaum^|]'!*, }-^IҨ5>6DnvL"x̪oGkt}9N8]atk! J4"8,e#ymi@@2m$w=I#rXHW˃Tq{_zTZ'_s7]albzሢ]{{8b*.ea}i~3i?m\yE0|^IiW⩷"-C% 0`O])@h9nEݲv |9lvUJEd% 6G UF[JoaAJʧ.MݢrH7.nՠw>9OtBBI~K̩'rb5J1qn؀@6sȩ(]}U^6;$= ]FD9 $|#Eu+lk!_w87ZhN]Y6QWo2 Ry!-_hKmcW'D9kŬCahkfouc9ۀ~ҎHKDI$-HY}4 e64|5G٫ \c?Ϗ|:4|ԾNh69vzPc6lOK j6PzGOPQ*lBCᱢkTEAڥ*FLJ,izvsٛbK$_s-8A,-(L.?m-C&>>W/:#J-M e&G =Wp˫J݂6̫[.2<~؉Z#JiAH~<,`BFx%{U7aVf ܪ vf魨UF }`BUye\}JHR֐H9pѶrސgg;*$n'lq-0r޺sG6ڄ0Ma.MRbRN{:,]~~ ?"L-sOr$ePv9v\1XUP'P0>6/:bSQA{_4<:P0D)VV)܊n44ǘq_ Uz/ȍ/+fcwѼCxP غQ]vTZ\qjXqw}H7^u;ʊ=Jro="/o])ɴ4Wn#´;4ǻGi# + {4Hħ~%yVi݉GL; .ŽV=a_{#t ‚ARē{.d ZvӦi/=(v Pyoh#a Yd깂; m jYm6Mx:o0C%m#18;(HqRI`RJxt.K*+Xmj Oଋ11(~gܡ R:7&',]jo.FV5{Bovߌ,|13"Ęn;#]OÞԄi!L L|EHLxbf5 a݌LiFCBߦb:z ,^2+ewgDXAr-qoQH,UQt| [%]1'HW`]JKewdARg+5(m ˉxN37{˚U+(q>! ,7!!N8 <9M~nw&xB8"OlE,azu~% AV1Q&!n9}gkQ}xZq2/UJ \ۋ'2g#m~':lžgY9_Ű,lk8oK/J~x1u 1F Y3mO&ogd7 ?$c0ZEWdoD/<$#nt?!J5O7nzZOC+=UI <_Dnt Z J0D.@UR@^SrG|7HU'R)V;UQ(jfy-E{fH}`~S$[QN*&3cν P[9Ô[CREs҆h"EO4{ʭd<j]c뻃 gvJ K.òV!Crˢ'SZAn\R̩>(gy ~(ǽu.ŕ|R+=ґ?>8D| Ę9*Q&8?i:D0Сe8 GUnYv{vT 8;ĝːrL#ojY8 C y`M7N#N22,ǐ4?S yw Ch *iT Jv u|b" -q ]݋^&5bVYV_uFyzOz-V;irni?U[Kj;p:_c )*1V'c7#IA-.#!<5 9{h)ŀ'^5f;wiUW*/qJ͠"ٽ5L(#b!p?R,[^C'gj]g׻ *נefȿgM^+:i31% Ӕֳ&0q$X:8}BxvE۬GD7i䍈dr#C2PU6 ;V 7'bpft,ӹٖOK REKK@W4,.w n18h`yFIUzm6fCGV`1Xdj_c+"rK[g| bk W} ѽn5ўd2\-.5e~F$"ĸ8,9MA 7mykk#J+_r04YQZӐf@_ 4>n j [IO":,Kxj,f>=u`!58k_]@'uzzֱ<'58)Ӹ)3 ю+ t1L?A}L y#4նlEEkC TM=[5+3Zb:v u_YK@^W~˕h _ %aආҩExkbuu_O-jƩ) =;_A bH"r}QZx;6uyVަgZvг^Tx%dMd'@lhi$+'ڌht|Y<;+EՂ]-9ښZy8 ͚\K(]#+~0!gMD\r ϰUH&̊`GtI? I+pQ([L%޸ޅcd;SjѴqX[/_:J{UE{`U~z3@7đ3ߒtwk i=Lv%ԛ!VՂE(O[‘l4F($@- /e=A?Aؗaے/Ʋ%=\RtD͇[r]%}]p cgV95Ʃg1-w\)67/zJ#bUp}W*W Wr( ?(mdl#A,azْM7t %q" ;.1nFC{GU/}n**َn$j;k:A\AlL˅dh3-*BSYͶ^k(EȰ1k3cA4JtWw);pָ?DhӅ2cq|2,cJst8k?{iV g=>`X޵EXtaB>RMNmY[y]ZFyXY/66YV.zm-WXZtsp뿮++R*U7;d," ^w:U.,03_C*+vlev]CeomsPH [b:ӷ'0tÜҲF&QszP]UI6]7U \MFYR,hs)ϥj&B.kwnDE %aN&D긔m=}.29! *Ή*v!Ԥ߹s @;`UkGw0Gֵٖ=8_8"XV3z߲}|3]f%-ӒӋނSf@Kv(Q1WHhBA|,$7WuH$teDpYGO{[,m 62䷵3vX$ͽ8~8R膷T_ph~G`)oxUm&$g3@+# 0M]9`80 *w`cAWwk`kPˇkcv28薄 #PND yQmt%ZJ> o!|gm>CsW9RRoFړ W$?mJ7ykM&Lgʬ^#?0~tp{{uې7pyi'fS֣mphwhdіEtFV̯ UEtuZ19 N^t<5adu;pT[xAhl&%ur=063SY0aC;bpzC މ>[io^#E+R ʻ߉dkFOms85R3wM 2.*_-MRI$G.\"V{(fsB5NUVőu}jy#B+աEDv$>$dӒp~ׄx qw{SvR\:"WwހuC{;U /ع -q[Ȳ!~^DhS.6@Cb׾e SOcMGR+-ȿm!v u%].ngӷ6D:scdsH0EV%zړ$\Y&1r:RVc|owv~ KQU 2]J9.z%Ŧ|{x"ŻhiST!ڼF&̨/D%we X2}JJ-XU)}D{\(MP ?y߱o63T& (A\Ua @?l"F}^]BsF•G`K >|HTzDaE?"uGdnc u:%l Sè'u+ ,[=}33GJQ|>sX#u+yb0|ZRUr;{vR[f$’A|ȏ 5+KaLvt7ӷNf~bh5ֳW ~[d !,2!Ӡo#@Ńi ghR3a8壠yeVQ~A,vI ޣMALebM"_}]W a,{BÔMȥ̓?a[Q`n0KvYo^OӬo))7Ty*ie6'풻br<,ZH_@_.=iA5(Vm; tF>8y׍C!>B}6/)0A\QW7#0P᛫.*{n>Oi}ېt 0 Oɥ W0p`ʑ8͠wAٷ׭zwf*+hg\Ц>̞-Y&6?=/AĝM`/5)R]YsڛBD R!TW|c͚== 9J rٗo>]BCEѠ'J(K ٢3L|=G )'=EkW|i qE}r4ԯ!H&he'q$w ݲA-:hشf>5o戚+mYSDzJO.pJqwzT&dg#~tu1(= 6i]_mf!0{fM}} on (W͛˯o7ax3뎒5?*Cj>}d\d5)pq@((Ž~'&=j/vu_=>F8͌Q}/uaL0Y}Oᏺ)/ Tkƾ f0}kX"¾ t1u MYI}D(/FP<QS8_0I*yS /tkNnxPV0 aV<%v; G.ƒP?Qzx7^4CGt8w|[?#i B>;ӽk}綁AxMM*Pk'8xmWi7,n5qlm8и >84dmhRlYdYv3>Vl˨bC'o'L#d#$6tЏ`w}s3i.(Xlmnmd5\9L"$nFGג7лbE!d:@>4hC` XEv C@J}m,06I*o:a֚a;nĽAu u(eJ[v."UZb?.A/j+ %dd<37R*2;@Ta@Zj_&-= {XZ5 t)e‡b/#_཮jotmR`ϗѧ-d@#PLHd5; v/arތpZn[K1٩AxއOoZ[|o 2:A ջN>v_+YcC15;؜BAOZnoW{.> sԄ+W/Gߥӂ{n񏶼xXdgSxVni|eq3|ٷalhL̦9 E7}ER0C_xkmk>ԢN "MrYS4x/8?l!Kf+9B4K!,ܞiӔBӧ])LӝccENK A*K__Lԡ?+ 5[_QM{iUoدaCYr󥊓ZE=K+ x9XhzzG6EyNAn ⫨U,kX_c8"{YZ2Fҵ<Z3VF3+ynOӲMÁ.5Ҳ3yO($?c#HByѲ P_薡escG(F|0MB l3bqڱ4~UW5Ck1X]$ў읟kï;Pf1Y>zMRJ6{3SAˉ%= q#9VtFڿ D'\|06g(49EKfLȣ>@ 5%>m\ >Q* ߩu ä.2b[l[P k°wx^psv#^$^ԧzڇ+* HiG7I*U %ߨ: Sۇ{1Q[=)qaD]ψN`K]N',XM6$4j-2J>n5y 엳޸pϖ7%o?.Tp }:*8`h"p.#C'VTkM O_ "GϞ>%ymKZj2#eqp1o5Ӄ}LY6m/۶;OX9{5 zU=>l%VF-<+:gxaY;`Uؚi\jNM!UI>#-']x V+1 r;&^UqB|˿_ǘ4K{R΃F|r[E5oڰ_hg/Eg M0*^в24 է2*&,4[$!;u7mDLvGtnAhU xʶ*8a!ة4 aiyE޻w/&jP#ǽvZiR [XAl7[ %79- INN &P)1w3 ,H=mb<}G-wwfy)0ٷעM _- O]C x2Uj7QkVC !q˿5?!YjQb Fh9\YB$H[V65Ҵ\$ \[pltP1%$Pq$ab@ ( V<}gr**IZ0h?wcM3@t,l8UhWț?d./Qx|'Qi*[-UFpwbi\ENoS<Ʉp[ًu9hpZ?h4Ihc|C*O`h} L(EpJL*%«Z sdFS s;l5oe7l9.tNgkR*u)l[̴>-dۢH# \&!WX:SP~eT+b:*#S^SZ dWo,|w~y VBC2KeH$H-Z9:9#q毧*s6. 7(Wc}z4n\M'wUAQn=XH\|:7Lw[)?΍YnY1{tq9;RYqߢ_Aq5ý&4WYS2s=yAqk)ٻ# {ĆpM `X)H7,/$L=fn#`eU#u}Їbio4o~b. 1>$Tx\xbs+dA5iRhۊY7d >y/<>=O(+O(p:ΔpyW(oz ]l >323OR2 O4B}ks{'z5NsnuRy#>_!'- (XLn ֋8R%b} YCw'on9#H!@p =sc)&~> T*kĶ]%h?__We3?A\((**ӼPSğz.91wg۹N)FcY3F3mh&\ sy9uAI>"9\S}YL=}2꠨"Us*` ^t?&4SuۆY#3`4u/D x(+PʓLe )pBp:ll!k"Xb.|m QV2⹢5n4PhF)-NIYqik1ސS*84V6J|*t`u  }#40 Xjv NVOy_ Xֵ4CF]i*Y}ܰzU~HQiL!2Yeud'ID%!e݋٬֤2ΔXj~9{+H iG=L%a*іU<w..oEh[qj1О7jWC;a ؑpȦI 3$_n%ImlEԄb<%7 2al)D]ð`ҟy)<6cDcf#$68'XsYiȫh"oQ AKx%tSz5"=%1/]J}r[ YL;⤬Iv̛&܋ґЗ1>&1E\5[fiXMWVz~i?GLB\xcB|HБ&3mUʎPaK7h_R/]"FFG]ڶ ox'bKI4: ueKn` M(]~^x'_̕i|mܜb8qٶiFHWyd u(5B6}ABJYx^Рݮջqr?/t ]F~Ӥ)mDȃѡ$?z7bFlGs\xc *d^f" +UqYOSJ~3kcCnQp,RH id s2XjAMiVtfeluTFw6h/t,4 țe˿]&&Q6RʿMH/F#/GxZxA|a3Q P OSysn[Dk13yv6mG Sw.wLn 6}d G;|BiNJi۠~K)/]@x{_ _| ~u˒遖5~ VܵGWoK'%"'hiY4'>sG sy-*ģ64m}0y0ȻR$;[Ip;*07Oxݺ /-kK2,D?$qx] xPRv:iCs|UjtW}sZ_{k[P'+GO 'd'c)$= ;pi6*1MW ,EiޖO*NS 3S/ɶW|x\,3{-og"B˯Z2 D7Oa\,uC!ǎܱt-MGG}:DJ~|eG-5 ]6i옖ҳڌza kLp]_jfJ_TL+=~\dꦧLJ{j3Uŕ߳m@܄Y6'ow :hO !mDm$bWFʈJ@ ԻMc-J>鹟T]o=!N}+V ~+[5"3>KsZ,kjn+-;.c{O*}+Ed1 ˦[@*x_ޚ$C9ݶ@LԬ4uDZ޹ /"( /** ;<}d=SBM>BE'b67_orB;vVΕs4 %,E?- ~8GN+"rڞ3ȮAU*˅S"VYWOt;+mΦԢ!u?,}s"=sh8Ke7AHYfMp%s\ZJr?V1Lӆ`_eei.$ۯϢ/%A{aaaa:\B4_ihxߠgY {.Yjj@ދp{9Σ;2 A=&oA>o[DvF,ӘjZQ1~[˳Pavڋq>u?ǧ eQM 3yh''礋X@gMa[D/;uj|/`9E?es87UQb*n! u goZ`w1h\i_clޟuT iyk7q"'M($b-Yx'39*_:(lpf`#Pra{}6 chr[\ ^ X3aHTqrT82|(bMxv_iNE:wBeJQ`^^$r_ ZN?#tHԌX? Uafp'6ކ!NUɜ`kp>ֺ{%+/㵇,qK8u1F /0FD~*`n S40ñ:߽$A|VUV % r>ᅷ3Aۺ@xZ-JKx,\x z -Z0 ߠ ̆X;_*NV֛D, n௒4?r?@7 )ƓdԪu!/ ӥkMW-@Op2%\#ꞷ!$B orNdjȵs/OHYr5qCE\gQ2/Ֆe);ZOďLe'+Gj%koAT ׻3V:hk*)Ldڻjʉf!W'LP\ޕh&B==83p!4ɤm'lP+WVV 2l?80 /%3t2xADnΑ]ۢV 9Mfx-njv,oj`$;=w4Cw+wBoۈtf2wjS>jjYT*c8C' L(eYQ7\ue@5F^m2z6xmKҳŴmjxDppزn xx* M%*8 H%3~:v='T+fÆM7OʗK qB:dqEwN@rn.hcuwe I?,QCQ2͂]I9xndC7SxՙlS]K. "#Yڷy/(4+ԧU̓tPPx:*fLeh[kЦf>iQ .D&՗ (`(P76ՐA%<ܢ4-eldzEPuZlk) (VYȳYY,`D-( 'YQɬ>: ) n~}^~YM-F9-emf^ǛL22$)O=E;LWb2!ɀ CP- "#MF5)J!$?F\ T# ﬨe9W]'_mP\;Q)gM?6gv8}f*9CJҳ/SG9v$:Qrrt-'|m2G.gPET]Q,qȟjC_3^G \E?7fҠRFhEHkT.>vYCPw֚HiƆ$ ٓFSqnFCeJiO8vZTL^G_ *M+rYю@GFQڂ'< #$P%tɲS鹽278kpLq$X@qZXUaE,>/ǵfZdrdWAfjP֋r8 `Zg9 UxS+dpoDzaYeVb94 A*-u;b^<"ׄmUU-[Uܿ_g]Tg>AmI6jBv+c1<AwƯ"D{-&_WVn9>IwU")"Ih$ ^py:]LG|K;Ϧ'Qs>E6_\Kj);WC,\B3P+pf%'X3"U7ވ M뿏Q]ܕA5Pkc\2a]zVEj@Z3hn0\dk y)s&e?= ?hdmcDdG3IW@bZEôuw{&aW=}xƚ+NSţ /[*ȣn]X^֢C{1`K֚?IAU+&p<^0׈P` 35fc۴י]EPde3f]d|61y :H(B@-H}X0Rz>bT)}iQb>B%\s11EMv4b`DAXY&&K\c($ǖUL؎8fm*>Oac/"rV rx{ Yg˿Cߤ׋[ ؖ9iyPYN۳+ xva˙F džeMIk@N.yRC+ΞAWGVC$iMjwn]x@~V4L:}%\W̾/;k v 0ЎN<+('8ř5|6-szsx@ k[ԩj\~pV{~],]8!TZуgx;Ve|cF9DW-Op8A\z%$0'aeiM@;ippJ[RȯrlLC=KU!jŗeЁS0Mw}Ε B;.xkz+DT[|FZ cS-Ňl:96yD8UiO]+u .+Wt!~>}b\̿}{Y'7MJ΋ЪTgƣCZ|`6hpmhd>Lz 8U~RWƇu*ܶ.^oZ~6*=ɵ׮ꖋ6m~'BKl)=%AwVMՕo5Azeh=QP2F9?{fN48krD$бʶ~n}J3P hE;mP*\CfaO!s^œ\*Y+%E0'w@ Z7C1tҗ)_kO' ?y} 1 :PteL92ggǒ|)LafP9`4SS4>IF ^7%@rD;`y{8;:5<Š(B>.SF\,WpL$^Xy"?>D=B*=7"I=F\UJޤ =.!<3/Fl"k鿬&Bn 6"R gh-/;&}YB  e/XoR}qh!Oͮp__o yOtﺐ X.nYE92'Rj|frȡ4QOV@2հK!%]PI;:G&,g4/e^S8V󆛗 :> ҺNbk_ ]e 鐒j1cw"(O QT36xUo&<$Q0 3E!cX{֏%N| 䄅pa2/\-;A&+sBY? cFAD<9'%܊ z&!>{JP)sx1;IG /yl!W܉3NAhN,a@T~[U1bde[zEmro7_L7lt]k dfkpR 1B& &2{v{^j.LMT9gw0a wl Jj{ЫnS&~jʍڗ0^ʦ/  (,6DkE'lǩm0?;;k>i(GI>=e陉a)8^a TUJif@'dD'aL+FA8Ż37)9NoqiA^XѲr~;AS0a,ը˕l^H1=VHEĢ03:Fqz?'HkR5hʅˉ xDTnLoB6^9DvĊ*k"<` @22 88rn7L$>pf'z}`_ 8M{RxΔVN}HmG9DSV&4㈜oz~p](ts`+2FG\(\]m#uH? a,9`1B6Vu]DYH=l$++y&brJ`?YՊސ42 Av@CTT47 a;DnhV!N^50%fL:Bmw4vjzpBYKD\::t6BxmA]-PDfCL}j)׵69֡x?k!9(d/cÞrxMAz".nYz?k{Q0jNF@cMoT `.Ho!;KԘ*hd2ir $]M67hW=Ʒöb˶-]h`Wcb&=vJZ'wpk ]: B"(&ӶZ ;ʤ+*àN-GFȑ9F]Zؙ֡"C]o@Yo7c_1LdЭA!΁WBw?Nqg cWCL{rBrBfc@-zp(?!14 Cz#Sf19~Z/̦G${;y[eẦm)ṽW^}V1&b}:FHJdkh4-ɦp2rpwU0+w2fvE5ue\#Dkv{R^:row>c-6dýF̸pe?am=[AriHW2%ekӹW VKCRQ|Aj x=G~\qU{( Hϕְu۹<]- 旧\.CKIeV6JN#}nBS ~*̗_+)IYLnEȏن1cA;'䫬fB}S.z0rBמ[=$IL׃u@SU/.P _l^rZ'eZ*y+-9K;VQpBP3l$XC8b?[,<~R¥˽h BUUjw&:p&Bl!俶һW@yK$j6ty?<[JlH!S:@DkTiFd)Յc-A i ȠAghQLKXSbf$o8…K~XFWrn dɝB…#K;ũ,/y6,S[Ms%xX2IhIsVDy5vR;ps&};3trұ%Po^/Z0HU$vvv:L)d5L^{|f1|eRi:/LWB'c  CqIV@*5d@f.gc $';G "P4\O8"?/58tM41j}; eT۫Hٖt_ ?YtfbX0g/(E?ʟkήu`7.C?y.h5V 8c@$`.' Ʌ>3mF Re=='c5oʟ-a%hts qJw@-oeC?p1~'ji[Tr&`lE0i{2x5a~hq8i7/,jI;yŸANӥB7K^TFJH!it:N,7%xyfQ pE:/)b-3<{y_[mkNrRoÓD%~Hf#G7gWDY lkȢX3=Vš؅TCA  fD骆(;cssT6a UQ]:`9k̶i1L.z)&f5ԦL-jB^+[f {ɒZx6ȕd ̼ԐYk[41w[Ϊ.jyBPo%3˃St __iC'R3 2Yg ?<|ohr4\L!٦D .*C+u+o^i7C?5k+H(j$7M{oE4:jku5SˢXHܶiOXh{VEu귧kFȃY/G"^%o\ pAUXzIBF ),d:\{ip|pܼѵ]v%!5دV"Ty(nlayuUc>>,, o;}"]krMY5O:3%6͒JyzESIR-c\C3.-c >\!Ɠjx؟cMw+822Rk; ظ 6:*"!/jɝ ӕ)SlQ4Ȉm#ŰNit TLt#ٯn]Jx~$'M¦JoB\"5~ibAKFDn.4KF\$+y´lYbYO 5Ŏ's"@7YlSSۮ?c &k#EX~vv~uUH;&BvRuŷ:5Mi  u[T gfq.7 )I:k,VJYT쫍O S^&AXk ho^LfњB&9AkX7,\7K)R{E #v詙2a2Զ'ӄ8ީ!z.ާϛq]# ?u>zGۛ0Z{٩6h?]qoo9w@zv=14joހ{]v3("bHD B]0Hڕ8hv`(Q2ͽ4߂t%) Wnve ԽYڶ(x77+ȸ{?6`!55l#/Zh%j1>Rdv`J~)a+,ۚQ8oXzZB3pq^gznRpq4$գ3 +nfW""8Mwi(ޏ(VjXU3.֮F8V8 ԫ)B^olkߤm#Y2;'?†8 DK)tm$iUՓOkYg|q`G^imLx]?hZ9c(p%[@W$}_չw)art<%'l=ٱݞ$8b?]Yrȧ:Z sZ.N+Kݠf2|f9Kxȡ@D6>;|9LHk-:cA*큅9 p0D 균E[%5oz d(gS ?k@P58:х "]-~J,83.ÎvEx+ç)vF>s()UϝCz\"=mUD/).ب3iSy([a%ads˘(K؅VIBiBXb- nDr 9ϊ ^J5<^" ;K}Y=٥qs^RrBë'XxUo ft.[ ݫk*ċ+zlRRʹkP`krtoDWd]Lْ~' %|[o&,Kg 賝"!6ձhMWe =Q> ~;Oza7 B*&Wِ;(ATۘ|;sQ '7D#S:& Xx<$PZQUe/xxlag^4B^['C*00##uKxyB~_>0d8+D!_X uVAW*n~]r3#-dNOC;ѷab? YcܻP[>F>=4IB@wr[]ϓ/0w!%]t>zҳ=<ص#6ǁjhܒwr=2 fϦM[:7)5V:=;^\l -[4`FZf*DYh8\*wl/,],}$uD!!n#RG̊-͒"B/b4w#k"BnME8ђ ˟fLߋ,Lo}n4bd>z쩬ƫ,O'G% j'>NU"7Qy\5{OvnFB=*^bn^a;ؙp>CUgҳѡ'HƷ6zB%:ث%iتj}5GWJ)SMoy_um5 xWw˚bFfg1l <o[05<&\ ^]ѻz <Ι]:"TB {U/KϯXWؽN/@~}3'4F>bC'Qh'.#&J#"ZF^.CWZ9C{F=;\9aY|Z+zrm)8,ޒԮ;)!la;9lk̾A,MwIl /aYTZBR)psZ59 8uptɏ>FuW,ћ>Psp)+؉B ^B{?& M&{,-32N4KT N< IВ*bz2B ÿ%]R.CiXMѓ5fɚXϾ鰰F$B 6bLHͼYHQRai7k>GRR`xY0X2j5Ĵ7hEvJ'5۞*VCCݬڐY"$/kXYӳ'7[r]i6{*z̆f$ q[MpI|њ7O[I)J +ݿfIgHC]#KYrOYFDa-wtqdp/c)J͈|cF=j TIOx#W|P槅9Pr.&{-x1ՖW2ӂ5q0^C6pX⡾Ll5%D/5ɸvY'HkbQ}9TeSU6OȺ%qւr#E=yfr>UGa]!ЙyڻkUa[$O;z4;EGd*?D_UbV6OޔOc'8<-(1sB۔,MIۙ1joAI#a2P*^ o wj3?w=,[l9-k !ǦOW52lg3 *b|T`<4 @mw댌^6\.WyՔ?S Uj۴ゼQN{1"^#>ViMڞ @Lz{:š5{ET«S+??1'dDySEZO*dAf&!4=i~fu/w~7##N0=vFa("N_]^ Q[smxBOR̶@hڎ߁̬VIL't/вA'[Q_.wvA *g5 B_. Bz퇟Ӻi,CjڳlB su5@SKb@E*Zd}Z sg7i)U`lUgpaӥyiGo6_@aeʄի칋_JȦj^gvz IeI{F}xY2Osr+pQ$<(+6,[ә۹qsvțAm_N4'}F X918{Qzl>J&64,bX:\!a-PFwF{23 A؇؈B9"\cg@JK0o-C)Su-L7~-61Ҡ^4qBa@/8.L]^_r6kFN23l$mQ$QtPwv +aZ|h\m@Lۨfo +_Ex s@SB3[嚸֯B;S'(mȿ'`M31-ڴqp¯/ZVd!0*rϦ˯y>E6.{f[WW g[uڲfsus2Ps&%_4iIm_,o4o* N,Б͗){ HVGd)թݞ{axq4ADBۙ#hiS F,T|X|v]-k+xLGeLE+=xYx$QJ}-eNSVgWL/k«Cov cOtȓyJ]st !\e"M6\5rN/by|ē0etrhDX˃t7r+~, c(sv0-}m,5K}`AFkTd] VoS6CqLʀyY5=(o,bbU#9,YmP(a'^]O1pv<źW?6ity Z;6BYIaanmr(ofH))ۮVf͜=ӳ㵚ďfGmk-<( ƪXׯcŶיoZ,5bni kLjQ#'Ч}4k[a zA9MK71}"5((9GI3fٗF@/F+!oПad~hMxutW507{bѰrP-e/OaۙTiX 3X.gfDm h̽uO|m7omUO<#ͣ_!폺a!+K :WLn. T7՗\aИw옏VP" yVaoQ🨜],mV/΀+HxroVn$ǒW}t@cJbx+(G? _«\˓vw`AwboY*(q⓱(riPC+Ithcx}1*4-Q{cwA#ڹ&W ~QQ1dyrx7J m11R_||r{NxCчà: N_bt~{1 #1rXmt+kx&yt:WaeEy#[S4<'E ¾&SQ*u#ȺLU+.IB8*1. u*qԸ"p*jRB21{F>Zh@ $n!ρ[0$vZYZ: a?P^Gq0 pT^g;YDae|K4)-dIXE_#f_XkA< i"%W@V*P"EQm%\Qvmf7!(`=E:Y ^ qf@hO1z{T$U6KdI%H {ݶK%ਂ+-ǟ(8bE^8f]BE.xB9ގ%Gm!'qǞdN:*g"/a:upNuݏp.*Eȑybz_|*8{ ٙ{D 8b/ƫtЄGʲyh=@]"A9eWO2g\pB (Ο2S᭙y(Hh<}z]ci5bUp$~&on*aP' 0G60绝4lc~WH=xg^\:EyZcԁtG;\KtKثSy6/`Q;x)OC%Dʞ2!^t)R0lcg'Q |VFн;F8cfDbs~ňz\{74^\w; A9&XL y> O!~ xͻ_˨ -; /WJ0aOYxįmZx 'zh1=#) _1 H }fW&I4q)Rs!MjV~Ւ_E^UtRn|r6 ͊\o`>LWj\ϴ9/rh/x^tjw8nr=#YlFW+oD\c.թ&dVQo0ئHYv1˚| 6ԏY4+G0B*N#_^CA7,-o?a U~o4zD*w^$ʿAٮ3d(3~qFVz1_~x"nJy">&ZGcgK-|u" < 蟁 2rP~)4KY8C36BAv! [v3 {3)v@~CI{]HՙqOk:E)X G>cFē+Ls,_&.-ױ oD1K"^𡕜soq]Odӹ!ZbhPnА^ปZ ΞӜtT ̥5.NcvMnΆv+ñߦ|J*eP:֛uWT77Uycr*Ӕz:% |{ &>"rсϿ5?kчuA>m Ţ! 6YsRL24ws<LvYdhC҆˓㏇Oi㡁1@"[o "Z>Xj+WM^뵯`5xAT׫L_(,dGO_kҞT{>KBA 1bNq{b6V_w5F8/CnR!7F(-}. 6{#%IIAOk;moJ;?,*,{ţj={d.8xzG3#cC.m8M weeN?OS|^"sbk053ez/CCqcίoV})'lD"Rol1[bMÓney5!=HDI&"8@ۯ;]1 2.! ` ҟ/ "CK-|\ Q΄ aV# P `F3d'O/rveNqB8͐ʞYˆ\漨_x'_J.l rTK!%g2;t]D&bpta(5@&Ws3y q@Il=`9.^_EK ϐރ!_~d W퇆 K'/ӌ!G@"GL| ;ݥdyEH!U,r% '+>j=&v>|GoaR)V OOcA{;<'>n;͵za3} cMO $&lpkG*eVpC$i&ש;c.v7"= {Qs-nz1IT5mz-xT|i .Dp-%8!z&w6*0sMxqp R*ȶ2yXGw 7 @WI $ D\ylk(+c!'€1> !s3[ylE)TxC;fWL|($`³-͐X7)jx}22o͡ꦹLf`I"”orDY.L,ZA|tplsP/tU=r?vEg K?aKeȆKqKUVzV&M,7?mGחd~ -WȂ #S.)zA<ûN)JnMu5׈:ӥR ~"$ !ctqx8yu,g+qQ2e%X z^flYݲ& 9,^$S.FtY*-jƬg j290t2Kb]xxWdÇˑPi2CAi4olН bI+3wq_UJk"v[e Z`Sgax"}A<.|e:̜™wҌҽ(I"ג7Хpn\ނtrD5Ǎ#Ͽ<f-( OC!3RF݂]MvpZpZAqp11:T0:0*oA^3ǁ=`^ HO=eXdΦ̑? ל;"#SX_ĩ<.ZufKFw% ϟc=Mp\x=_+>dU~Qz9jz,Hqv A05|fSoAIrL<ȸg5G2>!xwBb<!v,$tTWr 7)x=IVEt|pj [}H36)t'BAoۨ`'okD(YTDbƉ+:¿?h:*iyQu( zd:; *f8b{N7B"2H7g7K(4f\ C>MEYs2MP_\OcQ7qTFc9DGϹb(U%|{;U%v9]zƧ :X"7e;aϞK$H{V;QX*8]>H+V-^(r?4`V+:f1ϑ!Asp{hD.ӫd/)f+ g륾~. Őݚi;]Z nZ0bقݖiG(_6?><$'ol%g=9LG|>L ̧e2b'C#ЬV1A(zVqԠ]p"KCWE^J CSv%,ӌf]3߄8O}, nU&gB #>0CVY,Y:zq8PVE`Rr 0 =6$!RVdq'1bd6 H!.:.b) ,v[3d;<15nUTzq^PȘ#Y K!EPg915~W8nW6Fb䀹5bq :L3Qy q4jSw~]M[(|2i1ey r1q7,8v佋`5B~Ֆ꼒!$ Xv3/BB?h{<G7ԜٰPA3dv% YiL8OFp@"}AеTbXsM3ZϱvD8(+|FP!R kSƇٍNɠ՗(_BSYf&dg},bS؛[a)s5)\HʺHVE7Dvq9%?GLtM$ZA%셐DZ@=Ep|hM<ⵟ8X.#>cb-NiMK3[n7|?HG r\&f-`٥rӤe8aQ̟,<W@H!ZwbTmH)c8!Em騚ES8]V6cnrzp \d dBDZ}[sk"aRväB: >s alLY&8/rvT#NP;q7ַt[}:C'N6\n˅`]'Y>Y ̎v=o3|vE )7^q.xi(`_?eIsJL>.@~HRJn?sfc?zg;yl`$i11PȲ ^q2jocK+֎,n,,NQh~2ޔ.ɻO +fVi E_(Ez.]_ת*UXfJxj!^#ˍU(E.t~fF[}aPB[Z9FxLYaU!j2W9)286h_Ā?(-B'BױoQ۴gM/G&{n9'{# ?I:;|_D"`ݪJҞwO OӜ݈C "N[V7<Zz}/;FC29 Y$.\A9,gAȘY'7vgnVr) FEeʔBb,-J'(?;=$o\ b֨sBUثo!kNja \+[!CqrWzךm)UQt:!p,-5kU&C7z*Qgڲ[Lȴ܈Wjꃄo3p|37-|0W1$ǹgA\&"o׉8{sN$;H]+溊i&E.&L:o lZ(7>m?Gq@t r-j'(MPxp1BRURV I·7(mR 'B?N(Q :၌2] G" \HfqqEwO8E>a_ 9 ,5O8jl)VL-н:aW~_4Z]R&>+j'`|^9h a}ke8s~<B'eD~ҵLPlk6JO;q][RYM8"!r)v+.3znYJQ,^[(4bMd8TǼo5{dPNqy8= fJ}=q@ͳ'ЪVV9y!͓yMq!jW&:!'Q:H@coI'O*gYf:XT$gB67p\-,!ǰ鋼<=}9Z@E^rrtÙQgk,Gx."[FxiY7 |}Mwa^$u{b>X皝eX Zu]O-h\+ݰ+tȴ|~CpBZb'ЋAs'RK~C2Si v(N{͍Ђ$l'A\(0NGPӎyt@.d(af30xuq2*E/ ((? JDˌw/$ zH>@صt\@LeG/9@u h p2{ R/Ku\ٻ,֩ߍN0 BhB;%[YY] \K<GPTKwPETIɢTU (ie#A_Ae %d/F2Q@%y bb'%IspjφI 'k@su}O7j 8{vsPP;à^mhBcd\Ԧkz Jwn"!eh7 eh̨NǹC团Y PߟR&N`d+j%t{j;Rq;ûoÎ +ż2ħS܄F P E -wlyLQO]Qx|t߱OvZojчE( ޢjS#B^ЕRtQ%fк's!3.sQi%zVz0ҷz>rbA^qeH&8闍hRpgq87S1۠ںJ4wnoRG>$VP\aV讀e*n>1qr ̄h/@wxJs 5@6[v~OXƬ77ΖUqb?Iv$6Κ⍝h@8bOHiȞ4>L)\X,`;SF}oE9FA-`^'Wu5ΝY6*hH'1vJ=;<ϖ{_* *DjX:297kBc͢JC(aC(O|W{z{DkY\u*29(&sv|~ًAvl3$ZZ13!ލOz{稒t@\ٗ۞Zk<l/G{sndXrV#>UEM+S8qXFhTAZ.ʘfu;guOI#þ>t@='},_jh"8[n"a DG ncHLïa.>҃쬉ୣN^Ljs$5+֕ kO(#ߨS㣔7f4EaWXe4AV -- DEe-ot!]_uxoz#]O `<\ZV\>4>3!!|<<·^8 OM`̨D1}"dm$Mzh0I-01\MOfӈ+үONqP߭ uZ}m\t1*+{¨xŇb< Pn J~ 7`^_ڀN;&| *%GZ?n4%:)I ߅ڪtDh uaeEMZ[R:BP%H7DXl>_X$jv2KW/0oSM" ([Z1D!xbŬ8Oc:Gߟ{jpLb|^ph_Z)nC}*w"L71xR gd2ddxR|r;P&@"| Gu 탞(`A/@ni| |OwDt0ZN9i,835ȷ -AmO~-.E&y-ЪC_$,0G/EĄ Srv1z+YԥI]{ރ#ЬR$4WyHį& u DȻ ƼN2H0eK3V6'nYcz?TȳmJCCl믾SIP0CH&".|bJvPO[28[ijq}*֔nj%~]!&P[yRQ7lجtG%@tИvh,  K]) wbnYa df֫uWIuc.nG5'*Wzr1zzJE &Цi6T=v_\WehyM{CkW7JvgL'7Nɢa-{D`2'ٺ?ع5˚aV<&XQmאy^| i&LBsh'83ׂ",l.-l8*p}V Qe~ݝ1'*v+%], >#.C5dwxG A=(=uknvyǮM&{9d%:O%[Dr$fB.HȺ|,47 !qsk+Vb9 b )1HbHl͈B'XGh7(Y:Uok˧5˧I=B$A루|уJ6AgerX7pv&PL9l{ oq؃,M!vE%n]1tsieȰ⏡v}>jk^?%Lǘ?Um+m)XugV!Lћvx8pB30?̏k2a0UQg7@N{@Ǜ>d승b(-elƢ:Jp‡&8;+7]m}瘝Z$ո>7cK@|Gfpq94x>b  ۺʐYpzv&I9R4!>!t}d1B9Q,O&1X2jW6CVBo tn[گ dg#Lz{[xm0^Fnp >Gc˳MۢO7@{v-r]4nL r#!9uv2تli\b}9~kDKp"`{@ϳ66$FQqjF!{%wO~/`VY_x{m Y;5^ir;//k!d_CNT Z_(XuY# Q'715ΌLuK!Z:_f+8Y۸PF\%,mlɚ<tu}D6:6ϣw}B mCwB=qkӉ7p!t;Pˮ7PB_\{G!ϝTy)ʂ!K ?RoR?*;G[9VK\]~;Rh(GUN~*i?z9[Za\A_mi=SJxknjM$n[yk)vm: lWyw{N6/wޯQN)w{{ot{1oğ^JjsBgѤԈ: @\K PdE۴^%Am@G$V1n塩z}[땘RRyL|[O; erfC|vdg~/Nk]x+fQnږ˥]*,ŀ 5aSԡ^}ibQ;j6%0q6r KV"S`r6WIt9OrEoA8MR1'o#9U0B2,˜6WO݊"1p"y$ϽtPp^f$ @Cn7GlHЋ<^4[⻘Ub\l9Q8kL*Uiu:naw:g#~"g&x,̠5]7A/T. t´4I'zoGu01$soR&f$!Ng Bt?x~*\*.ȕb K1P]79`ٕLyAT1;OtT3z/9kr'q[;ۛOޖ|`YvoO)c0hxugyęD3; gDt΃8sA,YOB՝w ƒod|xd3`G01 G/2dxi{&Z):d%qe~';̗Ss\]''6L$n;qXKr݆.e|{K ':"C"NIcw(v;cεLcBxH@¢OW8)$c9NT}v)qn6'M>ij=&8q"/PvSRQ11U2T* x~{ `R,pJF`nܝ:ú\4!dH=Ŷ(neUxUY99ys朤.SuP)>Zmxna۴xޜ9Vxn\"`Ekq* x]e:,uGwđӄc>zvw%s|0:ZaLӦ՝(xb']&6~f7y&c?OГ9|1 +G~r\N<8 kP+_\̭;11H:\\g{<׬~84#uVi9~3K(nv9#CӟG50Qbo۪e+`W!FI4t+Eg_7KForh?W]W kuozliGt !s-/wZK&SEZ(VIN,:ONW 6@Ҍ h:uI~M\ՔP-hW:?-:CoqY LxA7 ۀZ݈_S9Kݐ*?œ_5C*վe2)Ls t*g=ނ ZaE)$XՉA\X|<8%:%Fq] -xIs,ǂb;SWDvywuZ^bN2C>6smi!ܙ! N~"(5,e^ 1$DXYo|: Rwn5(.y>晿A:w'Rqԉu_!=;GqɫO}AQ;{x\ l#՘ G )Dnؼ5Ⓩ uz( j|Old"1nmքSZ s06!&0JJ5a+TpI|Rtb,o'\2iwb2$=6UXIliؔdǯ$Ait2QoH[܌OEQ(^TwXާ²ȜH:(mi\9@/ok^=4}`A %bڔ8:|u+v5x#} FP`4CK]y|S% ^4'! '}u v,=V݇Kso18C`f];ǺrQުfY8= 겏=15/_k:Sg0u֮L&>Q󙊡w理FdjTUX8,)Y9a pZuHV$an;8<}ÔƸvݒUK)oUɳq̯ G;]nd5D7½qk-Ydy#E#.)3BF}|]ؑVE=+f9I OisSVP~j2 q) D+)ʱbyKZ'Bi9|h jk}pOMN?%>hMz1ŋҀNֶ&xc4]G T&ږ% 6Y/BĐǦ"!T/F2 e/ʤ7XIo.xE أ&GZʠ {q9 g~/"!%1d(D7mkBZjO]s}Ⱥ8{@|'p4mp2~3SS-WCzO3^'1/$0ԡR^1;z'SA2< mP1TaJM2P|!%/ ZHO&}1 -mJu}}.&QRYUxIpdCRMʢd'$y5GpMsnM)V͊l 2BdH%driUNVuw!^\ٚMz|4~ӕY R굩 w)snh[6^ zS*]:֗ݩfE=S|:5c"MNs]̦a=Gs,7 *dQjdDO%$Ý*zɢw 6\Ѣxdq";px/5lX1%Mݰ:73]!aW^@Cr&o[_MF*}۬l.ږ} 9ʰD.|6ՖJHZ& RHek6ݱwGى+ekvJ#idā5ve+rdي_Wv ±vn{޻tãRRҦ>@Ih i -/bJHBR %@P33}ί!;s9gΜ9sfF+D ʣA>ˈpSN?)#Mn$)?E*"t,[q㲏.֢"BFo+?e¯GIW~-!d|Q, ;$l^$YJ!D[F)..MUb6%hK}!+t)V]Z'a|IFɶGy񞥡.|{Ii_ˣ5Y}܄L0"E^,vNh v?RΦx`wP2j.U&ODj๥ =#{_th 9Z[pHlՕct ZD%m)@`bEFĔQbWd,uvjH8ƨø h1V`p*]"#闕1nQ:WD$i~$-|+(pĽP~ge4̀>vS8^~"9A?/ /3%]Øꋪ5GXq?Ar~.BxPCM& }~8ZqoljP m]Kr _$8$f޷zGk3|IO6\t'—6F3e/qϱ **Sh%o}Yl6:y> 6FF:2 q]Dj‹8#SMU-vFGo,G0x޿: yC4Մ\򑩯 Nֶvlp3JRjTZ㴒B(vt?BAFjy؟qTm4> bKx $д2f` S+a,$bqi1z=(:TQNb_o_!D֜?:\g)dg[$r%oA OvX~V,%_Z/4n!"q%SVlNH'mS/H6$,$25ƛ?+$5ÝDŽBi<%aC3*16 pxdvX˒q,ݙWALؙdF3ڿ[#=.xQ}֒,#оeƙ‚  `>㪍H`1H)Ydfۑ޻HNz%!XWK0wHL {[Q;J D=kП%/mm;^T%guh^G4M} uDr ` gv6oU<:v}d9}SIB"x ےbSK/81H{r.xz2%yh?| YXD/J+} +U{50d%cPDxK75R<-PP[Vz[cuVowEUE䲄n\x;4Oqm8}"2„G<+myXT46#[ Qtsnzp9!ٖ';/g"6@cM}9+QmwQnda̙R2ϿNbɅ]zQ{8tB@/Lxn Y\u(YF,\?3LK>ԫl,@K,eC:a6Q%Gatcü5"?<,L7R(.XFk3q4:} )2hP&-ҵm1P($Fi1 EY:}Ni锥,iF_|SS&$Xx0rÚOV^# iAN~KPFE xkjL,/FpY"6[ ڦک9pSC:p|/ҲwW]&~/I4 c©yc;=Bd6_Mi P|Ol Oټ JqOPFLT$zitQb#襌6s9ǨG1` wދF18HM}z\Ops[効xC4ԙp-7CbO,$iѳnzNҲno>"E0#}%-@4Q)<0Ui$ևGE B<^'Xu"~<nDVNKG '{ms[1shHǓ@fe-?x̱řeGGQD<;d:MO)RR͜r\m]R)yJ$3T#5?lC\GA4ikK:kQ́%I yKl4 U)#o{7JCͩhh7[6yRƗ} UOLWLbX#b^reXڭ$fXJ.3 (+2i+,g V bW=Q@3ӡbM`[`=^;_+0vm9Zj7Tjڴ<!ԙ\ֶC0->uM=uAg)ͩx8swk""L0 A/bqFSa&vFƥzer4XlX{c逷RX>2ֵg3|&.=ʃ˼X#CKLFds[~gyp{3?*(~E^|&Oq9ި#-CGȪi[MISԌ:d m|rVʊ"ۛx e ^E6x(t#89>!IoRh]l)byaj\Z*F#e䦙&ցTNۛU(@Hu +UBėxRWIЏ jP[ݾs76β@zjVqmrC `r8 ldfxMP;*]v@0$ 8.ʼnNϑ^s)%QKEϫ0Rے֔I-mp] tHC^+"⒖'S…w9,6Jn@1$NB N;&7V#QM§5c·r֌uw `KrʺTT,[BxDyze4$|9!L4 EG@y1r]h1T]/8#ԒMulnsRuUf oRzQ%RfW'8SR"^`#)7G&x}rXYtV%{璒@Zk2rjw8tuDɺ`Ns钢[Iǧ"/I˙~C{4v-9{(O٪W1'U.*i>((>wkO(Z 0 .Nt:, 0X*V@?lOCӱ`cUi(+SVꑬ; ] 8GNPgݰU<,4hd]gY\R!zmJ5 AfrXUJ{:b⹡G6$ U-ݨ`]}/rcf25>>Q2 ̾r24N#~YS M ͍2zK&q :H d`jghjWhRג@M 0&1ZGߎM#Oނp9%R ~p`eh< oL /VJ&p܂DA]uxvupDŽ4<*#( S_vYx[>MmNL3]S:ڄgɔMSJz\3VhLb|'2qfW U@$K[nz7w\M|!" + ne%OA/y6>q'Xp[NМ+,qPTiA`"˘DQkʂ5eK^)TR/%7Gsk'>^Qlhh0tYf.OP,]Rr1kY'Ŝy>iL|4g*[3t87 ؄8kXU|ǧZڭ*36ͲQ; vJG_+[RlŒ)xTf^gC!Q9bË]tU=t9Z(/yp9-zMΦuDQR'W,\AbN5'Z,[0UELs+mDb{H+Vf!;lu&$YN܊S"%51x`ĭfF`\je jRs 3 {|dT6bք铤C\.Xֲ=0B65W ZdE%{Z VtCH'%{Cլ`f6/*'b('uD^.~YajgDtaI/Z%Mבob)fY~Xbd5 gނE~TUuo75?m`2\C9bl+e:3QJ [k!†ϬU* COoLq `fr(DsEu'Wh3"SG Mt1~JxP+r3lr%iuV8_Td #)EKD s:|gq)]V -'XJӪPHC9# .# p?CBB[lSoRJC\ت~fCAs+7V&<.p]35؎0 W6z-ct0"omulO1{SMp0^љUGa&,M " ?(+36%唌}ҖRNX7oyM2tCd8!DS<ҪUcoqe@Q&cfwO(:E놩f>jxX: =[54ߤhMvװFC!fr [7!4W .e Kr5LuRQ륹LgӾn.k҈9:^{ek_0`l՝P_Qb].Mʝ>KH8$Ǻ8QZsK]m(k,iܮ&0^]^t'=URrBz׵gCΩ]0~BWMWEHY,IKyklg/yB1VraU p8-z AvZfb|+k%d *~c\?'ح4o{97;tD"q%,܆9eU47!4⤚<ΜK2>ԅFq' !v:wm\'2< GB9,9 Ns{q`%XԌ\zrA<OQ:R.` oA2?1aXM)+\Bf_$D\[/ދ ?*~eIOF밒Ad F؋*8쾣1eU&h> J"(6b>c)By"}_Z -p接̩*wGn[༄x9ݱЩSW;*jVy xUr58ef8BېXp8AXzI@x!7?XpmQvoF>ɯda=knJn6m1X-}?]=}ehoYkRETbZvȧeߏ+- YǕ8Y8MiXB)#&zȤD)iMYPH̤͚a[]0?O6A˵A53'ꁟw*{xXg742v~!&/2 ;qZ؄a;lߐQ ˽&su[VO6w-XWdЎMکfIJ?ǡgV@JR"xFcn‰;}(:iJ"$6cxቩZV{ RU3=qU} gcATKoU}¶KU2t 7@YJҁ,<}/|l9.֑;B]AVoP<6:#W56dɱGv\ p/u' *fp~rT.v~6*ѦV]-eRex-);yMd Ϟ8 oC%$߇!,X*J2w\5a'tl OBpG6w])R -n*S,3w ._*V>#_L͞?XE4 tTaը#:ZJ^u0*tӽh~ﻚͳWД*+Ѯ5,x 2"(N>}+Nv26zqLr~ھwWM^ 7nܰ)iQ=)Owv|;7Kh;7QI6((Ő2Btv6ov W$_`!uh\qۉ&bHwf[~=kzg7wn}.ޏQ`uhhfcv:$ O/r uO{pY҆ +nu`t]R9kڧ!OeQ-[{4*4)-CPhXH-D".o$!rk > œ7AGHdώ]]{o;OC;%@{B*7{TA _?(Us@Z-=nNIVzR;w9}!>wUň% BKchDFvI|0 ao؉_|#>VCaAz 78o8 #`L;aQع֖c8\:̻.FV=b!Vm)LEghk )x?YBRWEbCr]S8%؜Z|d]Dᖕ0 |d.~tvM:~P_5mg{¹ϏQK& &_4(0x; ]_'g;*>~{$yمJ`.eϒ@qڇ3Rng8L/N@$ښn*w9[*hFbsO.MPych/Uoٸ y个g =o=2|vj().A搦GWj/Rab*,-+ c4i4js+:ٻ|M:{.MBQiFm`U`صkS%] 9\Lu7S]FKdA"zn^u_.g'H."yIKypKJ5iW'v8p`Hak&.C,{4uSvPbg/γvsG1:Oռ4Uu>вo'JJ.9ڍbɶ .¹ٲڍ\+ݸ^TJpH|%[ߩ _V (C ?[4kd׌TcM-IBځJ:I룡'enVmg:@{$qg:NY{pG=ł7\k00F ۘY<lI JނCb;`?tڕ0.&; c-f&UۂfB)aHjR08 q},#89W\6U47|…G$an^L7Gc}aU,HY<"R"B#p"S5LjAu(.^[M~G79JBʿBVO'PV8'>*^@aϸ(L$=Ld)V󇳂8#%\x/R[?%qkmp+b!0ng\nnH s ?[uGyN1AxǚH5G埑j HtsPxߏx ꅪzQD}I/T˟&^Zu[ԙTG_p-Pԧ;$BH{ ,*^'z$kepy]BUn&1-f>89nn8Htq:{|1b f.J!y KY268][ӫn#"nwΚ[%śW۾ӫ#Ӎ=_\عZ1fzĐDùmD[pZKb,S N&)Xn13IU\-23Xx-r"D4HR ^82?Yk\XӹV-Ϲy|CHgVs^=HgQ[8#,奔qoX.j&+CbԅqWG'O_Gx!׼(ODHy. O#.]Y'zd.b1;W +Z%G쨂>xf0yĚ5Stߚ`Gĺ3yXݢ1#,e8bk$>K/Y1V uԫkG$7< ZTCEЈAc)'h]<)EGV'z%}"&sNH#y.P=RO~8 o0'4]_ۿ.r#(j+ fgy,(P3=R% ZL."^#if|ocx {-`RfY,8P5%~mfc?|d_0ЃƅrjiYv}kepcEA8zր|ϿKZk,Wu%0~ , eX8&jϳACg%WF~jNz>+qkǭ C`Mo*{QDzRSWE?QֳV*@ʐ٨YlBj[oӵ|s-n#A4{m)Ư , eXJ$͎WrFxЈg] Vb% v.bM^yG]Uca0^`QD({R"1hv|KD p閒@f;*Bܼf#lkB_?=;3L٪ *. # y#YJ$FF@zs(#4Mԕ>xfr!gDYBzBT_S27.ћc .ϣTy1=JE::K(Xoxv/hɫ B0y~E/393kPxx9kE''KbI\C謞-|fB`]T% "YE4&2fnBԥEE@ ZZ7E֊U\|~E~y{g mʍs XZžu=ιNށM02=e0/I6,t_^ТJrAK)-%]\BgizCvVE}؛:Ջ) ^ůKq7㔜f*Z{" rK]XYs_U9 b nSKR"/gmW%Y?' 7WI +K};$58+T3NX;s:^CA&W㛼I^jJr prna|'*'=I$#?EFQbj@kП/ٙ[RAR0ӏs /֒rt@-;:$+th`69,]f.c*_- {|?_E}7ϛb┓7g9 eeΚwB}M>g#)LtY^æJOmy=,)Ϛa oqatL` @`~JRȋY)UIVS $d1$3?+:UK]^Ҝeിu@tC5||l(sb .y;g**02 l7i?M}oؖݾhG޸.;m  >CA zHRAϪ]^¬J svjN ,N9-'Y*Z>4:}=Q$ fBI%!KXU[TI.JX n:cN"|#W8Oeys/sPHɪhi$x[}^| |JM6MWxZD&<řG0Gaz 靨=YL'I %m^¡J GJU߳%|X!T'3Fl07sqɑI޿H*`%n-n$e$[JajhpLrY~vm/=|QPbRqȸ}W[8gzUlF^0 w6rVrUUȳ$ sn{qI``E[^;12Q陮1$_$^QPWnG7 Iᥛ!6!Ui#XI*Fhsر'WQ'J?`m1J2$y%8Np\z-/H*)i zӌQ"%-=$n+hh r}$̱D-ti%-$0F&{#CmZ(իhki.GGz*ǺmQ@n-IE=Gye* 9rCK`h[UPj+/jscfNX2nzd’6`tSEH79(l ($+tӐϭ. 0PO<+ӆ,'*_k*zձEwT,$%y g*.Ab⨱zrC~saVc䄓bKTCRN J@JTwO6L&h}$*{&G̙gC]!H9'/0am0Q%%Lf,eJxzZ{CgTq&nNE͵ંl!N*c3I0)]^B BJ QR5Od%= U ,haZUp6*&6цxRd8b%^ovzq$"&1$$Ty(+g*ʣIn2)95'p_ک,aHJS&ʋKY5KUI.e9Jy}Z9^ Ց$xU4vj)ik#FV[2 UAc+ bTrd2I*^H5V5UURi( q(k >vD V@n"Q^ʪJkRIqrsfx=o|LKx}OŅͅ$*iǃMq9y 9yUl꼸ձN:2ZiF#htXzFhuZD aΏ2?͑e O λ&' WZ< F6GFyh*9ڱ*Ih[PV#pE䢕Jqg[dLz]-ɏu؍SlXU8ij2 MUVUUKTSj>8L4*wN{z;*Z̕l^UTSmY8o41\g qd x dv&/glW%8J/! =HE3} Tjl5Wjv^DӪh]y}N4#™Q^bɪbJre;3@ Fݴ6Ys DžlNPYDMd*/`lP%9âx6VWZ+g¥WSx]s~9dw cCa:Y2$tyk**>}fl%P#~b}h季[Ǝ^[1_mb> M,;7K~egLo+NࡲKl[UIVQ>TncK 36orꜞӇ9OlY%<$e$|h6hU:7K%ɀ_a?4zU^n.ߜ0t5"a(V@rTyAoC*25uorsE3gBƛq]6.u,%el 6߆ U!#U_XP49ԵuU4wѡ GyI/xu)[e:/d7J#fgα- W]tK~viz୭x5=3 tTw6{^BɣIHs{(]Ғq~gwwQU+f9NRjw3m^͊ڼJmV>Y*; ɏs\]g $ XI#Y^BBJ E2-`{%ɸ?9j9`6ϻ$UQ26j@,m(H'$u:JR8)y^BBJ Q:m_g*UhA=VE_Yꎲ5ʏ4uϤ-“8/aUmQ%Y'IXMZťz[X#Ud͍MBֳ'ywzQZa+VSZJd~?JhH[*:z3ͻ9^@wfٿ?wF뛠R L'I(%m^ÊJOJUדБΫKT.?Đ@gAшp8ӫ7-n33\ CPfhn$LMXVXUU`3i͵zUֵK=!NAU'Ws9G*Uk|֊roY?ar,UipD hި*tQөOhOtmhƩlт:-?HbytQu1a\~xp?ՉZ*oT'MnjV$߀*N5RF4x/ԉ9Fzuﲨ2r:*[2U4EZ:RYZ7hpT ֶp%ZZ2YFMcAL knjFZO[u-2xWGZְY`v988fdӍ܆ȀP@/5ۄZNF!]Iݜ:NE C㏸zetZQ;;]yF5jAOOG#e@'>-UiaYvFb+b`I'! wFp'e᝔Axov\erxRrx9-?|9a/ͿGdtܡo˺ oվ Atʪk[# d93[8(sw6aZqe"`TMB+/PPdPP$x9%歝#h}5tJ8طgcш DP{eHDɯ@5&J2XqU"h ]Ŧ T&!I E"HwVƞ+'\ +L&&K?LDTwwIwQ_6Dڄ_a.׵d>}& @/HۄK ?>yM"|R8ur N* N) s$RgSeIߑ.Z#M4;GT$| $L2$XÍ$7ѢP0M N*xG07QgYJ3ax=U m(OCF]4=fdz2L21.p0R"xkjbvr7؝̲ :qD+SBJζ U㿓d %Rv lMe2nBV{=>Ot8ԣ0+~G [y [[ Y'ss@W7Aʤ@T^H0CPѽ{" AL4/W.Dg`){dqIDף,o۝[ܽ]0Y>K+nN I<6G2aQhe$ "jހ1A;ٖĐې|O# d)%QTS~ZIPgR\0lo:LŰIi等0Jߢ .6V2ގnZx /y`=r(:oT`uդ` `Rd`JmCd$H8?ߤu93)*wŠǠkvѝI``3ddQ`)}-ZiX"Yz~gHૢT-*Pv/И1VzFoD%kd\:ϫ#=)֢ lMK {}S >NSG?q3##z[XQ1'RZ$3-BtIWJ5XBQ[,*>uuAFsq `&0L3>NtA9򆶹:'mZv5AoO/FA'HtN#(nzq<9+Nkþ~Y,yz zdF_[f :3IeoIӶ9 55Lj k]v7jWDMÀ/@8nnRaN~?M[I loSO=!9M3]2#h!6GâUQ9胨~4*gjmِEI#SqfHhUQ2d-/֙4t^3w>ޜiA!)d)='ԬO;4[C͹0G"7X |zS&b<_\ =]{ŜJEG?W>;Mp҉"TAFiԜNze>+ ?JcWt93\Dea)7'=ERtڮ.' e):.'="w{>/ ݟn9EPC5TCs\|J1"g&u 1 CMzJNpȱ ngA/T+N_@pT &N,.#gf4奿8i/)ـ3)\ACg#Oci:& $w");nٰM6EoЕM袒7yZX(WDk7&c /Ҧ'X;Ej$a`E84ӡ5;{&nr,gvNrqG:a$W6"N5Yw%8"MV"8tq:zY8d]p@A)J)Sd%bɺ+QI) μ."Nˆuv"N6YE'BDT%3Q:܎YYqɺ# iJg&MsH;#mݴ"^L`o8^+$JxsW=@oi.r~Eͅ6{{gU==E=Nhg9Hu[Īmr`uW.ڳ]lvΌr]Trfjza{S5<1"Csrk1WJ`<2o4ɼ]n9U)/W'J,Í^t}|BoEq.rc}Y+.r#ܘ~^ӾN:o}Y@X?n"NLm3ĻBt( WxIB$ _COtc)S4#RȌU8j\-R8V;ESrE}$F6{sKRAׁonЃ>Fſ1R7{sxXI 1&c&o22BCGNJ!ퟙ_)%OGrE0 ӑgBh35U!w/ TgTĦtQ_7{Hږ fhv}Zceky5\CԭEcePuƨa&EdZl/[|[doû|%ДDf6zI"1j G^ X˅PB'{tR; .lpur+=e{pAۄt\ݺN?-FF;.1c@Vd ,f1d{h2i_-' ]v/g ƕr:Pقfí2O&(+dЧD)?=ͮl̉M[k+mФk*^&a^uz)r`^Vu`ʪu^?e+ y:lђ9ѿw>IGT~T[C·UKWiPT-@տ=ĬZ'U̪N1UjQYU~PqQ1vxdC;<4|vrU9]xKuja]ְaZ)UKQuI:wQߺ=sO rW} N+Oxm4G;<+Ӓ 3 $?ŀ €;A UT|_ ᡿>cS}*+ªc 8B؈0-Skn.S(#7Ys [Q1NZfRtXap+P^d\kӅxhb)⡷ ; y[<&'49N$gmЌy.΅[ʍBT5Vg.[N}C0%xy }'Q=~7lhk*Z>~R*n[UN629[Q KtTqk8Qvf?%au,IWhXG[8 ( \(!ɨ`![dC盹COIu\-2}ֹ[=t蝠QƆAsANfWd:' Zθ35Bb6% ~Bhzt]4XmzwAHIJ*[Ȭcdv:1d5EjYKM V|r)]^(zIBML牜X$V _BʩZ'5XX+XK~6&wY8v^JOSO+)\;֠ZK;S#V *V,XU5MyoJ{WrS,]ԊZȱb`ޯ+0cxRwD_5%q7):J5-9ޥpz.əkgU0v vg-9Գ#w#9G}**eI4[LkKD$/dp6ӰMx^"\ yjX21]A2# k$B;\]4/LY?&(JIpX&(NIpLP`>h"JGWjQWj Ѳwj Qӝ"GX>IB^C' ꛜdr B/-ј3ɩ&⥼q!>H^?9guY~&*KN4AɫũWSka)YP IISQoV^ȬHN|aNm#޹7”) SbWR37YZS()^S*_$)4[ BSx <huyrׁՑP=Su@6md >MN  N, Lb|2Y&§ xxۜ.ڴDTvN$BWA56R DrޚyPlnNgA*w{EiS Ro8HN^F '<dG!i$W\ipR1Nw!e+(=k<׬szT"IPEZ^[ދ{D]+ωlP}Zh8 5pL>reϪN EL1PTO l/]X1|櫍zZۈɑm zo2hxu-cg$-:y܉&pd#ܮ> &n,h((O/fk 5C,ԿV=vL/ 8h߳Da8 Tt-:NL1vegk˧'4zeQ j"ʳfP\[H͘_0 " BF-~"pTV{FOe!pKscZWo__1|䌠>+SNZqk c8Y ;N`ֺ_fh:>zù!^ w[K2Y=Fs=b6?5U~yңnBcWǎ;bkkͩ*ݤƞPVlgmk63/'C583N)%c]}>']%q,9TO23$ΈdGJ9h\p9fSRaو#^hxZ0BRy.WqRtos>c9[pJ*_TWWyR\{9QO6g5Uz b"zA4m9EU\~tl) wިvޫbXcgçab8H1V1\(W00ưB ' i+iPrtR@XH4k!Fs\@1l0hkmPgvD:xW(}9ApFϷȍr5yU!ߏ_sەċ E@J2X%tnSB 4]~2ee0keYAyRfY\`4jmtmҵ|AF@/\Ǖ+28 Ev\ €pqWHIMF-c9pRpP jGN7 )k!ok0A+r{ZhXQWt`w%[uIݣ'1!hjb4槊af#Q@lf%9M3 f"?֯?M{oc 5oߖxʙܴ$̯J1DMnq7@1M_Rp݁=F6ڌ\drlw`|%w̱}Y>jxAs`f(+>*rOwՇ^;ԕ {/3k ?OX 29hrYA n45/y$Ў#$q7#JyP q *1>\A=l˻M♘uSZی)&)WPl4e}Y煣.Ma.}xӕ(\?2^s-4΄C(SN=qO"?h*Mզ{6tەy[!pBС8U ;v)p` o9DkJiOv%=eJ]hLs-OLA8M5y5|9jJ >XbяN7^$J97.* IpDr`} 0^]^nWx+-x-8FÂGM}f1{ItSF ŲntQ)^f@ݱD C]jTgZy7`ʇn4|G)=acTuϊnj~1lEզيq(tYKWSǒ ߰NTg eJ}z\{5hRWn{M.|Ya`]_|^nr *zE 쒫"oT7LEE&JYkixUpZf+xkR=n)NJk^YpiNWeo{z(Bnsk\4TriTG0f->aضO]-ᏭuѠ R{Q迎씪7'`Qڨo_pSof5bg}]rEn%o sPfm1k$zq:b+{3# 9ewS@(R ү.U*qu MѱGX[)G'ݍ H?v`~̀IչnG蔫%YovQih5&vK`7mΙ{lSh=-^R]\_ۈ֫HqdS!,X">I֞oώŞO\T֎1L5RG𡽨r`+nuQٞqh?H^z~Tz>g ?<6zn^3oG]Pk bw|` n߀@Z~_KL;(=e(4y\.*/YL}Ɲ̣(ἇKlQ*vڃBB̅wޅLlQ6^7x0 w\ ʕF߹PNw$_0]&(tL!k}1CܽEe( #UW!0X`Mfyf8 Z[ы\Q<0>Po+~зx`<%u!ꪗ<ᢾ?yC[M *=M.43h5hi [[ >S~oмdW12&c ~&)cQ5EK6aHn 9ܻ֫{imO89n/m.j"wuE8w J"N;^sB;ڏ36Uo.¦`{Pꧻ{WS紥 %d O*D.*+?^3bvķu -Vd\1_t@gʦz,**)??QW͗ =jFB5YS< l(e[>#AB:d(n`R9$1eq^iX-%=kAڙ~c?|NMHyzh^耟NQ~'Pp7+z&Z: (s Rb_C`[X| cK_:t%[OGjT&"RyEVSBY[ޕn?Pp&Q% ~נH,ƗRuR]$2_l!X]X=XQdOm-#-[h%u%وi!9ٍHxTi*Gʣ2%i9æ ?W.4-8 >20~@x(<'ЎI0o"{C-cM{@xNdw d<% _aSOeA2 ?i Ҫ4ϋ¢yfN:#fP{.e } Ǝ~9og`bVsH"nBI*M. bQdwdIG!M D)]fc+AHnBpU3ӤIgax.Ӥن5 Ҥt چqt6I]~hҤ ͕ƹ]hk>B44MMAji2vY&M444MOat?S*Mѧz(}PyG IF.3'=>''2'. yi"_E!OIf6*$Owڳwyү'Y4~d&~u.$7j+)y(oLn,;J0V2'~C >^#zyRwGs.9OzV8S DCI<) VSIGArT/?z(Iy.l 2IFqtK '@A@y؛B罒'mOᬔHG7^z(J 23O:d]D҇$ cLx,Xlاsz,HV(˯:Q:r$Y+ޱ_}p\ Di~^cK9o>TT?(ȆW؆k^a~x)}łLiJ+W,jX*ժ4Uʃ *;ɘfAAJ rQ [|p=`o%\#MadK8M V,K 0~w 4@ElMI.%~ ;ѹ:n]GJ2b%;:=$޹6ɨ)2jA*)8֨т9!Df?WZF,Y 5?Xu-@>QlZ 5K$#Y{2bY3^]]?/OĶK=4ۡ_ <ӕhCX? ӕ*յ6h͘Q.&MAy!fp !LdhXDW_'d\'D2$ J%Є=nstWQ# J >uH}=u9$Fq<-@~{jSQݘkWV 7;Ʊ88J\.٪Rr{xj?GMP> r 7FS|mW!p0VRqm|I[l 7FS7Kq)~T- ܮ*nC}\)](T%s n`n[tslWlS%sn07Fq{ `'Gqp*[>9M<8QLϢ-wXJ<Ɲyh"%8PLUguE߄hc gF3v x;.7_-_HƋ Ɨ S_ȗz7ѹkLF@?f~asu$|K/'a|°RP 0,ߛ0q Ȓ0,0_}_)>^2JI{ƾ%V}-ta@`/= ]amQ?q@:e"*As0]( :p@'K &b".wxd]Jp[L-~Nx2)v$5V-%dO4uAav/#{i?&EvDJ& :;Ͱ.0Wh?wdae&JMz?0'qŏi"'0_({{=T_,?xY4*M OFs 43ы< w|Ym0ްDQ"!5Eٹći Cln5<rΒ|ocTmaXd=J{TԨo>˸]ƨw EMUw(>7] A\)_DJuXM'5QQjvLXPǢC7OUo>qp8_\wpw-dO1+206V!| AtX`' LJ`X,Ϋ:U_[~z) Ш>`nq@WJ aa@fm(fv`<@v!9~ xJ{l./ahk!;~ֵ.FX 4n56 P\q}DJ[!(1hQY4Ic$NYgGZ~B]f`+ uy7EYrub݊U( agDs(3z3-?W] jMe)H*^:Wgƨ'cKqI57;[ O5nH[,ju<9D֗2Ta})sb-0c05w8-X`\"XE,<EɰY>oP܇{?o27Ԣfim?(BZƫ;r{e{[^(Uۘed^;.. n vK#=+sփOYzxIIG!JqTŪ vh<%wo=m![5sE Ic2X^ +Yp+]]x>e{JngQSp896E@颫a!ue-FSh-0l [h7y2ZJpJB,Dq%}-6 wǗJ1AMTsF}Y!D!4a$>wl K%vt` ~8H.nyD=>3PV6HRiF^f!{%p fj3Y$ IUz(EDt=YO/P/ixcMB4y{ioc <74FS8@hxb>M&|o4U 4}Ѵb/2%K,t, LKT]J仔@C=iԢrF2|eէM-D}k8HJqYi&"=)U80jѾhBV싦@Jp֌5ܒJ m66P?z^H2ݩ1&֓ Jc}-W!Ԩ;BAzW«u7AEĉZeht3QĤʆTAi|VJxNeC_j!]7O WǾJ7 uP{_4sV.BшWQ`0*  w%-+udem\g2 7,lA97f%Pa=ݚ_ESr%0o|hY(!8}k p]ڋʹc pJ$qe\6f5;` ;<9F'a" c1'b[\Ez8ԾI놇4ny3O&z@}p @'*la(.UҵC[ BKhg?_b~'6 ǁ֪;&X6;&PNR{9=+Lķjn ;3:m wuf~k]]_*UdTQ$^SAޑ8w[oD4 F:q(P\t\JC.XQ!%P"0_h8> bt|}1Z'}_]2?_T/ނBCˠJ)amI r0/ խ?4&4a~:t0[\$ kH]zîNiƴM9j=fJum%ᐝ,^bKڊRwA6v 4KI/M)X$}LӒJ%D:FC=$ Z\El]{wAX>KE@tSDۯ),j- uRr0Ȳbd'F/|^: cF:Rk hXX[a }?_KL9Ӧ. 1}LhRyjKzzkb$c{CeAU#~׳~Pmb{+v;Pٴpmƴ8rn8VֆHq5FQ6J NJCu)VoDSR˶ZSJ%{ro}ן` igE"gJ`U\"v_,d˗M@riGi[HnjNi)Km4UO89q|_UKƯYRQ׫g; Ņ v6L`Cq:W(aLFil z v-(I(R&8 4-,dj!;{Eˤ~--N+lTt6&6ǟ^rdmQ"zm[bN2k%\b2Keeٯ)Y2֙ wl;QAJwYBK SQ2 K8j״isJN2mC{pxvMKsoGzDO$?J1|D  _UնOV?ړ,d/ȅEc$too@ҳ]{ozP)7wv@t]qμJnD;7hZS)u$|vm>ucG .F܎U'ۼN<~Yb)[hXηyE݌@@;L|3 0K@.4o :t-ӽ¢5/uR ^s+(cf[j[iiɿ h7oxgrm3m>!"{*h2p>6z* l a\|28VrZdl wJ_u¤5;fO@g9iniJ;nX֋fZhj>W)4!~,8~/ xq0Ih?6,ڜd>'+o9;5;qpN k%@. kW+Ȟs2|tE$Ecם7 p$A$A<4xP uf]05oNk4P~!h;@!յc]R4qa=,ڮj*f[`-k"|!c'NRtg~1M+ʥ Cra&k!5SdIR 8Zb5iF_O+Y82ڮ  :GJ dY4՗+&)X|Bj_KO`S|vMKW8h/Do^k,ڏu!<N|eV8Ȁ7؀ڀ7؀.+r{Qda]+ShZ`}>!.b}6(N2XZ<]GbF6,U.gf2?RO|.qO^ c D4}َ?XSd|Q.PɶdouJ0Ⱬ燞]L!U¾gaLaDi VhJ;^,bi*;^5坾bA>96LŠgL .H-t IJ`ɣn\gY6I>cdN)jUDZ֦q(YE-&ʠ&^8_bQ *o$p:  Yzŵ}yYq g#̋丬TM6k0+E.|OVѼ^'/I2~+T.K.{2Phj:P[UӷVHE |vƲg=c\aP#& 8 ?񅴅:eRy%7{~ ;*:}a-ZNOs9k>&:a./yc W߱k']ДA'E9\9ȘG$Шv}E-5W,+STJKe,FjN#a|zoZAbu}PX[F-.epL,6b98oǚe|;rw?X=XuB6E#qAVZΒ?`I&۱ȞMXG4釴za>"g^>veiO[T y;"e4=H0|.|IȏEiw14&/} M 9w21ğWs㯙[:3. P; DTY%hj|<Ս'&{bdxg xx@H< Y$EC@EX#qZ ʀ,Ce1l XZK|֭dQaVJ- #u[YX ZҎ$QMÚfBڤ3ly([VNiG-4ks90:G]@QY72' 8;J6-lZ +:'w|79HkJL9)̕c9pElw`5C(QNٲ-&VLst!Q׍ADAVcZDU JQ(yDžR"FZ#%~. wlR SDhDTy](y2 5GL>d*A= nޡJR)C! ! R ( A\e#w+yBC)Pĵp pbKJy] :x+UIc^@6Gz^e^q._>BIƥxEH5_/6G{ݏHߖ=i=}Ef\Pc]7gKwfǹ}Ggr |tlmfo_͋1-*-W=Bq)Ô\UOC`(ݹad{Zo OͥZx$ Br6m:@{jh5M=h]h5Mhj}pdBo¥U9_|e!="+xjPDB=]9#@!git~S'GP㨞Go,%¢=G-8)fV+KJ6辙b(֦MB8w3A3n~@K{T,uDx@>Q,VdkAulճX?*'VkG3Oz 7<*;Py,KUꎖQEJOw47%2~ea܍.t#2~ZqU }W_-hW~ &6O5FsL#4[Md4='4<ƣii~5iJqMy3yͧBhFh5Ϳ{"|(%,CE80xZ9/^gاǪx1;C~uc,?s a Y˕[^U8>u (On`; jd[ s,hw;M,4 M8tdBx]i8 MPdǵSca|_^{9]1B1^Ny1)Ҳ]av*]t-3phxeiD2ʤC0r J-@ /<[8"X),C1M~Hmc⫍&d`2t4҉ CKE)4XGp؟dݞM$$Ϧz}{*)+TUz =J;~e4UUdO)'(9'Ogӑ)^ZJ 6p@KT< o?msa)i0Kkօ"͗+wTG>tbBeTx'$ [jx*m4 -zBq٬GLfpZP E!c@5`;fٷU2U*n>#D>e>ڬ[d^"eQLv=\+jY,˾Erq҉ mB3 3QL 3scxw;b?@kQ>HYd'Z Ofc!H_ӝN n!o|id`u[`bW`8 ui =O@-|Z$JRd5P6wO`Z R9Hy<4yuviOp~j\(os=$h7]3c=~4-f"@CDgwј8X5ٓ5t-C|<4pg0@q93'F :wk1&Wh' Lc`S2 @q >ۛ/BUcFd~[B,-{EP@8ā޿]6먱xPbTX'%5iQ4k5~MSS*4jKJZh>4֥BykY隦4%{Kd|aQmXz9q.'10>ZY?ѭe^}cFyGη%0Q>QAYt)G2ǖFc[^ cXC^`ޱ=~8>;*r"5 )"8Kğ^.+RF.]!/zw̨J(Ÿ?%WGejKi.Pȧ$}dJ "AL z = 6sbTvJ>\%q) XYAۣjXJ__uS%1MM ej|*ynMcFeͯkCgJ ]k50i9٦ XF xucp|?J$cu\k=JYĭ,f}nZ˲qq1ŢH]geɬd0?EMa<3)=ͽڔ~XGNW:Zk~b+{){jRL `IGY["SBJXNSO ), tSWZHiX8zdVsI _roJ vbJ;WSWTnTˉ=S#|$vq42[_R̂4| 1‚^A=L %i I']UvY + :6Z~f:L K0k_g7_ 9f->z"L .Q:Z#XR)n%-f-T}+Y3kzp(+тQ>ڈ2cw9HelVӥċN5Rתـ6ɉ H5sA:͢,f4;m9vqDT;d/{A嚷ss4NyWu@sH6kS2"CA|NǮs#`Zf%QQ;ԗmֺ$7ru>iTP}pD}\S}J'c6G=M(VUd7Lg'֞C%XAn[!mۤm!}ˬoS^O- 3>6B#Um~fLBqBE 8zѪ}U HH: 7PNe i)`z$ޑatjoJ4_n2EzQ>|9S]?b|>sI7pnD&PYD"U~3ǵ=IWf-4 J~,«/A/ᬥ6 lLMu,TJ8e sm>B& Ո2HNߏ$<ɇH L9kqIb3^bA,_*}'/HQm!I.8 X@d0iυ5ryJBhnBNW| 4+fhBf6KTHKOw`5U@;wg݂(d*7)coց  oGK ;x F!䷒^dK,)63.)AffcPXe^u[on bL[,X,t;3[,8a^<8b1}bɇ͔V v&m;,)*yDm/ܶtw63>缵ςJl9J r;cɨSU[+|[KBBtpU߳p'p&.o+Ld-ުb.Dc(Fr4Sd\m^$^/nW,*PM6{$Wl"%d5&RW4!ea3/CI7|]PY?h׵ ⹖ߦn^ڀbɬPsVJhJk^H45z;bجDh %vmFAAV*˕k*Vqg7CWF2nJ gJ -nZWC-r3\25(Igh \UvUgVN3тwkm=Ei mzBu?7ŞMOWn#pËTњuGFL]AJRjA>GqEA5_EtA*< f*< 6*x\,jfh[ q7DVi@ D3:8Sb~ )ʹp8X^۶ *W+4LiCߛϧli ٫љTnFc~=eޭN7mޘ{&oXC%@" <¨I-/m@_)y9Yt?|O:2^Bs9W}ˑ-9~T- 鄁- !ğr_LIj,39+ 2Wg-DK*i}O߯J&ͷdP>BpϻM7d?TJ [" }]VuVqLVoA4FmtLcg˥`(M1ҖEo 5˦fߪGiK ,tU^3/sY=3[%9?1ݙxt1wV/k_EÆ" Z݊!ZMdFUn. dE:ɰ[8D%Rf& M) Os^g1{_1wVǝV3ua%9ڬwchw4wD2y^7MlEVbm=B +U,%hi{ZlF8 (2ѣYpE!˴dqy|{cB O2zr'eUFy:ǘcj)a#7Ks2+{2Tħd~r;@n`Lܑ34ϓf0e4g$ ׎Q{ DK\et'$4%݉V,;´`QwCT/S58*danS=zԴ`Q!j)j ?yF$JA֔8|.I@UM؃ZT2H ӡMu1DF&ϻܔUcq귋I Һ {Pɩk%{ Ʊl+qK(!QzLFA 1Xc$eV:5XY>Jˬ tғZBʘ 7$Ū˖+,,IF){CR~"{iZo{I{.a6~%{sA6`٠^ bez+[H~o2KZ fj"DYyJ_+-~ie~q6+Q\X%p TGɏaQɧYv 'm oM\.%6s.U3$Um_X5FY)nP%i*,`?2^Qؾ?Jqv?èˢ؈K)L q~\ v4N3i\.% 1,<E댿/)B)^kzє<]I#h6ъ:XV[1N2VWoEZfY,;%ˁ~ |/Zhٌ ?cl|zaf~j[R׊P m6)Rk!407U- I5K sk>,IIתmHsXiVĥՂjăXfqx$qgC+ٓ uȊ<zeoaBZeXݪާ2J;UE>òwA#\ˇe=~_DŽEduޞo@s7|.ˬd£y5:)G` dm-Ƴ:RNC1Ը5M@-Ne`)zO0hǯ#2u.m>=@bʼJ+@h˙e+rPۄJAF>1SlX2eDLS L mB-^UƱ\L4;4Mݫ5Mмi]Bb[͟bcfy%{; ~;n1hc/YX'xp  5 Y| Po]s +%hcOV~H! ~ǧk%wESJ%'lR^4kķ"->uǟ:Ju(|oQ;߀ &.ɂ/%~{l.*(z:+mΪ~~L8l]BGnA)Afo C #U|aHaX li߫G-yvQDNz* WeK+E1p(%v^&A`D-V#~ÀWZi ypHFG:j#uuCG>ZѬO,Ip>#E;m2+1<M2XJLPvJ#=vΪeY>nQк :P֊^+רֶBa5 4\x 2]if2߄!NSJ1  )}-{s=IpB?OkcP\GHDEZ솋kFT|΂sX T|MN: Αo2~ZjqnP.TϢ*MgƷpww:P+VE·?V/_(o寀զF ]Alr_ρ3؁ A~3؁ :g'@:P+Exqkg%6@G;DۅR‡XUIYB_x/c+."bjeS@TuoS/v}h.}OT[լSv_DS!V ǗL)v/B3eCUl&i QSOH򴜊{?DHJ&k2eELH]WQEh M \iYCty;$!mI#U!ɔg8ӈBbmv$Y)6'OWFHnX5oB`%[QJ i"竺A;h2Wp-l4/MD'r}9h^`}czMzZ`y +? ak}?)zn㨱 f.0?aF],d܊%233g~|C󣊫N͢|@n@ڐ8nA#G.hCkI kcRI@Y3s"rҼ8 ChӠ^!!4/xiPܙ.FB H= C~bFawE+*\?:K!F+Fxؖq"zyKǦChi;q&b,Dӥ4C݈ŝ1P{ٿ1tF+5zsg EtRwPh~g UIRa<r2`6?07Oh%`c }\tu cZ^r7,IF wD2RN6x7*{@<=3C#_:+E?Jתw chVju }wb;;λ\|Ц$4ɓA(YDLJ'#Mn7wƾ.3)Qw /jZ葇f.VWCAvLe4%=R"7 hY+538MJCZ= aO+% [Nn{BB%aV- TU}2uLy.@WExY=]s,>c瘟\h_D<> cE_۽&f7MĆ3c,Q&zlO¤u' 8 I:mr􂘟 9<N^cɡ[]꣝bZJ¢6F8fQKfعcY/K_@V^cuNw. W*E1;"KzyŜ/{X)V/b w[ɖx.FmÝtmt+RlOH% THT'UqO+Sa_\^>] {bu_S$7S bhxuaRU)/bȣ14P/%%>+@Dvz<6m C)Gj_ۯ-mQD1]N%m hFI+{Hh+B[УDۛ\5mt^( Rm'v5ү-tRmh>:(@D[m pe7ޮے5c=_JFD ?;CcI4CxR[U1DH >wQ̯U1ԼZϑ?$8̧<"=ӕF=y)2HDNטA5~G/+5د1Qӧ_c"*5'-.Gͽ0?r<ջ~6cýưDYoD{2o#6%[V.=looc^h$3qZAl}7l]`sy>Tw(5.' p>}āG({k90&?Khz}M&5DG}f [/"KXY@7ߪK`A]>(beRnH'^Cu4(œNu",X-jhAT&JBSV^X[;]yt n6XGes 6( r?CCR,//=Ώ᫦2 'JS &Q7䑁; 2eҖ:#BL'9ffQ#'OQSi y!QI PBGNN0N\dz"k:bŜJwqzWHt| 9* &}?Ћ< Kxqu }dy_+ŦEeTT:&tEu6 W@e0+=H(PlSh )Bk.T56;ȁC R]JK''k 7J{Pq:Uv%>r#ӡ!/$ф, &38&Ud'z~gPRh"3X1G)k wRy zAe4 ~=D9sX7ÊQ1UDZ4ƴGc+ΥBVJp~ x/@$XI mGB+裔)? 84w=BtZJy|>``UxT ?-^{6‹G#~0̜CQg/Bc(6IR3@KGFy[(R:t?Ib !a`=YJ}N-@E,)vlKOFbu.@Gg/п(%SA鯑|JR$6CHi zh;m @$4 BSD,?RB->(%Nm )msc|jO_Y$ ):@%%v?RBTAKgʟ$H%3W0ZH/)vnDHi +}\J]=GBs?뻅@)rsi.%.mGJ[QD%h ; @AH:?RBgGKo^#ڎ,)ѶL @_RAmkVۥDwt GJ[Y ڮ"z?S<^Z˫> UbEjq&yjd(,E' uR¢-6EvMh~jbJ .[,RK`?L=~C߲[N-BQ[ѽ1߲V7kU?K]4^W#|9t{] 4v2$cʁʢc 91LH+f |"qbD/e6ed)ᮣ&ԟ)k_m6>+^EM%&ԁg%0z⥗R~+E9CIº0" jy, LDS\0_fL_="u¨#g̙l9yhE=3KqݙGkgfI}shKT=3K+>'3~gfIO'ѻo'efI=Cp[bhVjX Ec1+8C'c1A|*TQA3>?(|6S*|n|>??gCZ*sZ4d%u3~QgZ.>as <\oJ7C1uyn!Q3.bzH/A4nT) D Zd DSeQgJr!K4 Gˡߴ,;v_]E9yQ/**ӹrh,!ٗC7UfQ޴}9(~ؗC[ }9?ߗCE![a D Q,bQ^E"N%Db)$4OA,!dI; UXv`ܕ O&>!Hz|V$ rp ->OREҪӖP/$$ذ m.VM ΅  yl3TeMG$L$\RU A LȒ!#~ HZ&șbɓe$Lc@%`,jNuf7~ NN!*!VmI`_ ,*OLb& ,Yv[Uٗ $,GKHw `@`~j%Xy_ˡ6ɥI,=6fdJr,6AolI>A`îu XI Y^KZ˕%ذVz`h¬!*z#@[WSb&y,RE(/(^dh=g R:9g/C .fh@AFw1b 3bD 82=Fjk#~]$/H{@_3b!7C[f0418 ,gp~ Ƃ*2~`t`8v.C * @= = 5bd\hA`p9NTLMq)H:dͭJ80NjDb@ߚD"ކ1rj#r5? H()~@TZ'E,KnO'ESM kZD$-L!.ʱ*^4TbHSNH@@iJQDUD(,(n6SyaJAKMЈ~P5b?RCF[ ɶ?51fD%3&8X6< Jk!TwT%dZYB§]?Eҋ!Q0^X"D(xq +"V_"h*ȫfeU1ɭyF0V~E0Ɂ8M>؀y]-We @O%ؾ؎I Yؠ|DlZ4fìZYa֚Y+ɏi̚rk <-"ro8ݾß#Dৈp}oႪte^>F ?fn#?Kmic&rXۀYӲHу:PQΤCoh:E4,A<#W_vmdM-&Wؿr񿀄ؠu721#P5ÿJe q;#s䯗tml)7TLlu)mv6} CP,h+5UhRa.s/ߐE/CE0N> oĦ<p) y#$My`NƴS!0w3y_r׵=~H4J4?pM99e7(gȼ ub0f.0-i!)jbҦb{O^r»H`V2f01k2oxlOdD'ޟY28H7us76h+|7^f>cg)/!01>QdOD?p704N+Otc- ,bWؓ "Øcoɢ 1ohS5-'-̈M#;T"ޣz4:ާT)<6^:-B1gl(L3$ܮ2,}{t ?۠?YGUI\ hCgf&-`"z2/1"ÒJʖCh]i[\(Z'nw*к2d WMwAy֋WsᘩEXٶ4e-$ D߻ g?a⥕p)z1>cB:xcοEp/ZVp(;|I=@Y8>~#(ߞCGʢ{vx96@E4" {g)GDݡ&cwbEp@"l,D6<̧E%iJ{ K{ˆ3g zw*=O[m rW嗡}jvލxMv^A4M&sh,d/[M6f6d ,>$LY-2H`'@BRWXSr &;\I4bL8x^g"9~o;`rqǽxX һ\C-x͉ O5/:c^Mܴdd=﵎|G#Ib=>xJ'3@Ƃx}8>~`PomܑmDTh 0ꏹ_@P/?\HVٔھ(Rx?8x~`$6 0&EǖcEșt\O2Fļ n-5򧘆?EQ511Љ(o1*УǨe?{y 2؎LsvZEO= : QPyS&')U"s"{9JYokSh %}w.FfwdyYz-=W"K_%KtJ$yf`U`&l%ylcc8c݄+NP_qp-+^Ĵǭ8>ֈIE>ŹEZ B%P%wwFH:b/CU^♇fG H3zE/acNgrI_fY3؃G+ZCY!EC_ >NYlHkm\&lAm iQEXY)ќ/$JG(0D+;c-s,X.)Uѽ# h1 ֫k,r!7qoe%=JV}b[Z߽5K-?YbYM "AQ2HJ=åQ9xW$ ܢ#-qOّ>vn}-,"Go Ԕ5mlQa، %. <qiZym|BAf.VdC|KevP[ExzWO| Rfdf9 qf8ZEoHxcv3,P17T^k ay@{E[{xWݫ)_Y^5λyd`5Yxt [*dZv~,ʯ$%h>Z ,RF:*x%KE:5TuYJˢ*5";"w(Ѷ;A;$Z򽢨] N@^ RK[8h"nF?LSo^*I/xHK%3Y3J q^/^ZRX2PKQ+K.dh,Q h6C{FMݫGlG9|=dYq'o`Sxom{a/oȢtH Ghy A;nDu0"lƒ,S#7$Y\ֆz*(W.XEp(&,n +OOq44PiH@EtW32xr`|%jz-`$5rg,4FPg37ߙIC%fn"-Yz&Ϊa7˶3yX}ź%}l׍ktKi#kHOn"[69+t#kTmA`A%%L|8TXȀV] 1gefH!^RxǠ[s;XJR;"dW{tю,Kx<6 ;,{;Mdؐ?@ JԦ0 z&%,巁lF&فk&qf&kZ6hh&&6P۹q)| ﲜ|@g[lJې]w r:9@Ou^†l|/+[r(\ZFe#OM6R0C6LrnqGYWfЏ\efDXWG@ g{1ra3h":oHf0]hꞁvP$Q.#5<1).њ]~[0d} ! 1\D @_ V@8F+{C < | `'i8DZ{'RIA߽TvRBRje`BD:%N'c4sDoַfQ^*}ߚE9'V!v'H(VCh_hԎw&欺v.(Obwg S{ i<v71\DuGW\92#"ܷ|h)}+#fa6^,!f(&!ڋt),xtUf~-E $t7wnu -oAYCE. ;cB 1@!F"F3b6P5=ƫݱ0516E CsKZb:;2c6<;,z~O)1ғeQ*mǏ{~ztYgV)7VJ:>iPxVt&+fm aսMv ]_@,!*ߪV)HgsI4RVV k:E~~熺|*Y6ki 10"b~̢\4O hAmE?bսщi&L05tmLci:V5J-DCSU b:H%>xY"S,m6K`XlĉEDp`PNpOgëc(p'c(0O.E $_Ax Y'wü:(V\oj;ltA ?ݹw$_0Hv2Wx1[/ MPdG'LRhW_ 61Em8łѣ!3 :buxM M_xv=@A3+fQ*}(p,* ZzI94gvLr"7L^4B Hx(k$b9@Hg9/^4`1T$@2/CEP<&ЍHb vMdt~mGCD,to$EG]|+ a+0# A\ԃY$AS<ȋbr`Ê(uÏf} ; "r1h[Ѝ{–)Tջ6UH۪F~c,C~OR=$փ`,&K辸"/,@<AX;a 9",mҶm2b)+q-tv øKc޸qfa\nfY쏤UP<:oP¸I0#6}mIXRp>7K9 @<`YcC|_rF\_Yލm(ed163:7NEGx@3Њ ]IL597RlzY"qzGjQi$ϖ%t'cw֬\o\Rz)%lu*;oxMB oA257FفVپ=ʕX)DTcDxBm@Fc9.JOǵvjƂ<˷4ƑvnB!s q  > 2GFwuY>`JGFͲDEG]p^Xuka]n0K?早&7`>_2|FgZ`R2@F<\W 3 J%HE5|Ęfc]`\RGNCPG>]ʙGa]rGz2c}T u}T:}T:B9[40-8TsWVG Oԍ@h[o7~:O!d!QwA`eT4NS=?"/805?M-:sZ 嚚IG($Lk9R!MKz 7`\`>ff7{($_]z0x8N:J!VrQ>q21y0a`ji=EP5g? "),5YP2B~Y*-Y|4:I,NZE){T{By4?~ҞJcPvۦ] ƘUL?8ʤlC8zᄞ Ƃ:@"#/ L. J[(p^ʳ=֠nrks)Ǡ7dO=V Z5!:š̷8ߞ,NP(,5|bl0`#ʉ1)7Vk%$ƹ!@-L9.E"]~D<]&Hv8vQIC.WJE<K*|By*=~*rhRYbԞ T$(P! P7Ɓ\t\&KH~ʒ/I[kKD5SnqS}x-!\+W 3Bt_Ǘ%xf _鯠k?"Zm bu^zAƄLxuY]}B n2d '[l9rBbfi5\vB<Yǖ>*M(D1ș="gNG-wJ UEB92OS(. Twc: :"X5;ZMVU xPd<#hv-O':==')._,[e jwPiօB}Jx6`AD|,[0yg+D@#hX44ѣRcq2smڣT׃~ GV~n@~f ûQF ˓P45:e:fw6C84*)Y94a;=LgI`: [L$ BΆB ˍ[2"'bP1%tt"$S $Ep)\Y;}+6U!tVdw%c3Iq7pD430tҨp'ҿC4.aoh@3 <ԨOU r ~!c l_kzE.ZQ`zosѻ̺02Ey4SȫqPD5-.%h>/ t*4RPPލ61o\OX mx?A}*$Vc(ܿ v;z.BɒG q ZDE%KPp) $@nt*.=#U9`6?&4w9`6p{nnlVtpF;;DGtf[D+ HnZU*ETusm\6cTX S<^* ݡi~=jF"y7taӴHD/:bü4**?GѢ1vmoW[J:! {.>]\YK4u:ZFe_*UZ+ #o3TH%^U#J?R9G[J睡T%$L l`L3"Ϲn!> | vA'/T%dy^9o XFXIwcrM{֚ۙ'z/4{WL¾ݡp0# SwD~%ӍѵCZW >[*9Q('JQ(WkQaͺ ;-OiVº+(9bRNqՁl9 )'Ts b,}b}0; e.fxX2 !E2OICLトw^t6u0JS_uB9*x<1w=*11Q"w+p|8e |眏]tJ n$I>>_|*](_5g2Dd\8D ХT2 12l:`1K̿bra53GI݇Vnm:=x ]HGP*se,Zw אQ].fvd/ = W t5$7:MEǷj.âCj.|Ho0M2j؛#4E*Wp1֑#./5B$6mfR{`W/&-ORC3W˿5^  N8=.R(fˬ܋ps U񭍊`䒠[W8Y*EƖ)OXf)0H,RWY/cJs|X^>ng/v)"+/6$8ę!RcN0g!}8吋S'C/ kűSi+Wr+Kw"m5!N:JͲTb uоWE5%L1oeqG]B2Mަ Ǣ-&1# 7MP\20N@2ZΥx^2<ty!+YvB}*M͔%E˱0#bqˆ˱܅ose o^.}[dL%?PKwЊx7;͎7< @|HSi(&jM!nC4's1TzXS(/LVImp &zd*پ^>/ĈՆ bq"q#pK ,-bh  f<#<YBuFLG0uwf%.)g$j/\tDQ=,I-%\\(MΏvD f긳3#3::Fι;Ÿa7lVQO!k㹳D* /CG\֔f7@}`UXOxOOEQA[KVL"㹅ͮ(шMV!#ʤ>)%RbG svHqaͭ vS; j_Jc+K0ΰ~`UKE_D*j~|]tfBxpEB .+_ #G~NRT 㼘rg~+vpdЋ~{Ͳp4Cd &!:01C'KtD'P젎IکcPKȖՠ*A*+$+g~Blz[>omyS>δ! ƈj 04u/GRw,9r< ̨8+'Oeh0<mp#:cGcDFq#rc 0~4'h3>A1 ZˆWvc_s=hw-XT)YȏHsbQ9g0Խ,rձՑLgCknB*ERBX&])Iqz$^f41t|Tl,%2)LM Rܜ42)m@LM)Y f$mI@jR,PG`TC)+Lg8e)ŕTtFj+75ɠLg$8]+IMBS}jHYi\5j&qF&])IWPsח42)딚ܛ2 KqЖtfoJUW)ٖHIa~52OR7qojbP3C~C 4H `H[jVit@ACCi63:8#X0Aa+6&}*VFDjAoM0*#/ddxG}z0u pDy.5BA_^Z B⎘>q)/j498Mpfܒ; q(nj"P#;`|p,5O>aX S bkxu@ M29Ѧj)9J5hHt6a7wܹF+BΦbu| QoNMs$:4e:)%hͧMւhZ&֋p=bhp4{|Q,O;G\G OĀnx()/6"+tQ>,5Xr1y"Mlpק&8: 1q戠4ȓuZ0yҔ>FLphKkY95>|f]`kMM{SbQYnk1uVe1#2=R_2 5_>ghַOXk4nFX eL(b0U a%r>O,XcCq!u&O,ɨ9"ռfF5/rj@ r2ͧMM?PуPX0#X>RC~ihyRG̓2_Hr/HIXL7VqRqS{G)㴀-8b-3`fjkƎ5"Y`Mн#$}oNMxoV>.˶BJ :RcAʣ/SL|뵌"6MIy5GZ͂R$xE{upפ;`fJ: \wư,KM1/:d&ȘéF.6j;WA͋ ">3lHp[טvtzMq|SLү1xM95iIIB j5Z|ܔAd,zw4vސ7lԨzmuaW á( $E{HMo!i⚏R^>747F)9FԚX!b\!ɓuaݛ֭qMcBA77a!^^2Ԕr!OMn8\b~|7h~=YG?T哛^.7{pj?sh\l|Fk&z?=I)9%_rr\dgzxB'ӹ75oD ٺqA jHZ]SΊ88,%X̓$Lt+vfF(zIEJqzԃn|NnҔMӜ%v3@0'έ^5vu?2l"8nedȣ".T&VR I>LٮzY*p)nm3Տ;5a@ߎX#uH}SѾ%)pj5-w3:HڲLS2&?zb]Fs%-?OOrŴ$9pY?zdWƪ5\mБx"{  9뎂! XϸCTeA둢.."Wr~'d36Pΐ*Ïtb'SәyTH2KLt[-#z1iMm^)TV4oOW55w(  sfPW~GfWoxxEq!L@ZAeè:LIi #xd_a,nu8b#FcG{cjҁD߂DhlSQqۼ~RѵܕEa^Ca?y:*kȠI{gU,_BՌ ʎiݗm-YUD)hӸXzv(f ł&-æhFM=0! ! OʄިU} C"ޱwap@8_$ύzR1g&hGkj/UDN+ˤcp9 Ԡ)fSLKlTaҨe|uV;渤 4DOղRB(&]3(ۤ9*ߑjP 8Sv$z(='d3~>:۠6~p&, C":EӢ5oBxDV4qP6OaQ%uE Ǚ8]VGqI]A:dDAP{jXPEká{F/5Zs5D_877];S5!_^kb/H-ݧEhN8x$ % ǣ >.>™!UDdga=P{qD5X1QZƷ& CpeТ^9)l#qx ĢPvaݍ:aH>"!ZZ/j"XwMHe&橖~O_'1|<٥~iv5HaN_hgjBHDLa(V.bQ%+J3dAMvfsDI ~7G!{kd=RMe(?g&:u&b9Ң8bg~sA} /|fH)0eT~I&,oJρBI+Tj*w LƭPPWD9U+T0qE ;O nGMiU,wYϏI1UCW?Bĩ,Ѧmr [7/ZNHc ws'\QQ(W\ Ĺ@ gP،@a7[|9![N\ZZwπvC'G 6n~P:GݶM&mJvɉꬩl@19nr*6~CWM/ԺHtY9LDQ^ѭ?ѱZF_t#ୀp[sz©:3/(#o1=JYkm]୷5\!^}|:#5{ h/WTtH9ӒJD W~,K#W*%zU%5zDEV4)L5{4H~[㹒D4ᒬPAD9Rr[G7(NM*se  d:L,/ȥĹahDZDC_ds` Ȼ Vi$`(+%,% #YB_"a1e3 s%r濜i k]rdMҒ "e]9Mp6Jv9&,1N>훬4%BtīҘ͓zxJsݕtY¼lj߫Hj|aճ ]T>|fMW("cgTA ;yTA\ѻb 1;ڸJ*nY!W+z q"iJo|hJ=2Y"8O'/oJݬP U4CSW c[ ,,}3qQr$%b1i`#J=k^8 Hlvdh &ۑ?a?9Ȉ[#edz#b9,ɛe 6ۑ`Ep@>_vs!Ba"{/݂3Ét䎼*?Uc[RaG/\<:`U5t.4_[ X PG1z* úsB|Bi%?xXNn,wBqA|;wSPiނ3WD4^dw"V[ VʩYٷ)_RAbGFgYB0tT(f%9d$2(+'{jj^ saG \ߦP*ZY²|k8(aVP6!7t%$y̗"_,UVa /%#>? I-M = d|N%G[+DiYr2n.Di8!qQ '7|0] Qǿ߭PzH?qYw+wY[my׬Qc[阉:+>X˪Wigb6-Iؽ_;z16#eG!cHٟG^{IRl,4"#Gnv(EdwV- X]?v6cK"ݧK{dWqsvIZ>#]25*j>l*Vֵ^|߀h j cK:Ʈ*Uwӱ%%NܽܥұЉfU>O=Ejc(ѝIs>>M̋ 6ܴ/UwGf2@I11 Gl6u6Y"opx;iibu7Rv?[ȤiTIsHbăbiEh140ǸŒ^`6qo2[ZvHr,vN\ҏ`mцb.EPlZRdpaZSH-Ju u#d:>$KXaon';P@Z/e^R;_.R%O+sHΫ-Λgϗf 3c40[ Ց)*2W.P(9P5@,\Ƥ6z-Tks%;N˒HW6,I|"O=d VHKb $~O-QRV%أ_B If4YB "5Xnu I 'E'v CՋ`$KXpe `IpZ1ۅfێ.1.&}p}\B龵* d nMת1uTp#b[.*sٚVT$d|]3Q4&~Z֊"1FVa^ueseثqöaKNQ,Ke؄ũ$u˞BP[l۸/&OwlwMWJ}oZ6~xa,kﲝr!%r))^ya %38QJfC돚G DD3u^g/G9E"<=&lE}ݿ ƔlXF4.'wlL1˘8xcS&5~0f]yluS VK\Aη-R㗦α1v:d^jg\ ʸ7IY:X%1V;қ3.Xe+9ﭬ=KiT;PlY aqEy=:ʲbv;ngClms` Ab~\LC`6KR7`㯰󣟐ƞz2N]^sW9 _,lU'Jvtk,a(؉}O2ZIr4l핵*2IlpJM6H& r‘.,9,3nn& ͑ WF3kΠ:p ?WtPQ"KDg.بֵmJmRתYSaW|NVk=b[3٧Oޞ,):0I;4n'BձnZkӖ,KB!6/[" 31(X.7i%hlRH">̘V(}4b,9rV+ґm̼yV '&xOK,۩{sh{&=f;[$*rl:t;rWR1-}_ȩPw / V%w,>;v:a6t>Ҫ,$|Afaj5f ׈,48]#isfg"ήb æDI%Q6[$%.`?Ҍw5k]$lKȲ]c~vq UM pD"nR|Zt^>ˣOuŅu< |Y½ZX|i%0WΕ5 Qz^A扛ƒt8;>dl|$YI4GA {EC#!3I; RN i Fi!.A=]t.2?C/S``_Kؠahi"6hB3nwKb56cab3 Fmp/{?/u*]`-K=OQ czXj^TuvQQ=%^19uCP*YcK0VhᨭeJ5 P>qhL!/޶6.i'[X![~bO|9qI`2,1~T~}d!\5woDOC D޲G^)Oƨb _ V_E, 3C ?S#07dsk/`mvOpdƲ,LFv߄2+6aBh>k3uYSal،f,5KXB>Ȼnl>B,@)ukZ/c,1nu*I ҉Ty]^f<&"[Ⱥ0 X*^Rё˜lJƗB&d6t 6Ƹp;W`칒<\`sB,=namhPh0f==%Zcx1o){5lFykm,~Zt;᯳Rv_uҲzYӱt:.)M䙲Lb+x%YlAm6ʣMoIS;?Ɣ6MTmk(79!Mzzfe];pij *dk5ni0g)jcnc |] = A3`lzY|; Aketo5ZX} Ls~dI\GxE0=? ˈ 3} Fܛ 8iB!M/,r}[b{l4J3:N>Me5PD]0|7rv? W(}-ċkvE7Mk>{ha;2 : [/;x+` EhN#G2yλj2``?R]0u*|F8~,֩tNS饝rF*lO;:=h` e QOʏ'7KDv[\CvoS\s_Re7b'1 F55~|_ưp]3$F酻cQ" m.\QVaU&ɤWp~koG=tBY3>4LstZ{H*-v6d7Z*.s?DgFJQ{m3h8z48zpLG^30%LggE7RR]+K>n)F8PW+ #ovRo \D8c,ɢt[.;c| &E.TMrY^*5R'ԽEa!YJo)3C4J/{d vWŶz4 iI:+DS 5QJ>$Z[>@"8O"O~oQZ$8;Pp/TMZàE[ᮽ̈i[U&њ\$O-3pJ)p O1,LfHRؘ(\?] .MKc˄.1:WKd?o q {m_{_ɡb#K4X/3bh:+XWߥ-2C&LJ!K0~ɨW-Ͻ.74{-{!(3YoVll>Yo۫ uG`#KeطTm}e%;D]";9 RC4F=TٝMx;IL.N[?-&yxPzP&r숣ik=Occm~6ѡ2LZk2ؚ2Mf:mի\x/Fq*&^^0ȏ=c0Hx\Hwsu/uÒ4"M=ndj1̋3ģ-+vnC!_Np[d֏|;a@~8fjr}P " r}i|TEiu*jT@QF"IwNw݁q4%aTP(qGE=:(9u :sNnU]rȬ+0΁Bl"}w1U_>h"80?REbSM]﹟v+pClV)`?MB)0$>^}c&jUB)rk݆zyd!q..s,ؒךIsqϳ#`Y$8)5"0M Zܬ%Oޛ0 ΂nN%G,dNTz&Dvw qt($Lxgtw.j <>xeSG7|QKni&_!kԍJoUf%?E-ݟHdLW\"\|sRDSqXѻYf)R[m߰>5;ض sAY'! Ia{b-T܍ ?#k0sQz-,;Z WlޝZ6.#6g)̗ԙߡ[UUY۳.ʽZ ;J<; o Q}cn]݃niӑee.s.fyqP%LyA!>MB ?( UqX;KEBW+yH nY@ =[Ls|Sq˜{7C o0l*j#5LO[Υ9i9 9q7KgB10ZjPa,%D6N:μ-!S\VC)NLw¸Q6)%#2Cp7Td1nQ&b>^ŠnÜNrMAY,!,Z0-t }=$!Džq;N?!^UdAѢ)tc%HMݩz> [()7@eR=wIuEÝRE\[,w.C.Kkl",8W)+! eO0Pgr_n.O]g6IG&5VBh`)V:Lաx/!`1+]3_uJ!ɶ<+]4%p=-\W'Dh 0LLeC]@|m>6ew&77 ~qO>ǚô46YNܛ(T\fW>[Y؅Y)Y! k 맺a4&[BCݣ?p{)>J೮rBB[dBudY!?BB݌Z@.nGZ<~&z7OeMλ+9 ZQD\4EDk] b(\HER6T#`>O f t&F=DB=s{CvYHIM%zayF&Cud{%{YFI7mfϿ_d`-i3^ @QPqlLR}hU;.2o%`aD q&R8.jE?{o aYꉹɭ‘}ʦ&zk%dK1nި5;ǯA VlG>0b"lk+Tp~/8m d / ݩ@mUK(?+]TG  x'CR @=jb-w~b1X=v>\to{ Q|zs$tKOwn|<Xz^^d0ǚt [(-ea"Z{Y,<+`Ϗ ӣL}~JcL=v?tcy,/mYSER%J@v dyx;$P(Jݡ ^E[3.?6t~J"UC$|Mx-2C&p^<PJʑ y VѷH$ [ QCb˪Bm% mq]ZͦV<`ԬU.v U.Tnw4$N=&T1'zj|woXmmP5W)Г_PNU.bUETt*͂NK%?qĿ֠9}ԡ{~pAfq|n.d{'&$-H>vYu걞Rk=^#d8U.S턁hZ^/"cϠU_>n<"rEV-*.֤!%=蹾H,kz{jHO5o'FQmW 6nW6|$ʃc('db"ރ xr#D|tGEᵼSha2ԼM~A/>XKr/+@VJGdV%Yb+]t2xt_srJaiιHh7xθN gy66{)jt-b tl)p:D{8ѽ>FCKYቇ6C-'fu?s>r*MsJl5tpܕA>Z {9z ٘c6YZiz_Qzq,'~+l5Cz @a.'EWhX!!y=Ȯ_M(lfҸ@ Fܠ7x z2 ylj:lc[ -A7WY8Ϝx+q~f8hP"1uXQmc@(N1e+0” kox9, dwdW=k@ ?H.y{ i?jG#+dB{x 3SD}m-@}=gAQ~I`&:Ƞ61sZ/gjh摚!NqCBۛWcE: NUC ʻcThXAJ+P/.`Y1bWCuF!,t*ZuPl7@׎vɺ2)mZ[iZŵ.raSr[D߬~bi-uK&Q_l2o̓Ӵ.k]Vݜ2ZDiPxJl{2i鹍ևe]l K>fzAŝc\J0F\J|TCYYS+%뱽@Qs 2+@V0'@ZNa 1: Hh[Y-YZ=N>c S9ald.AxU6zsLFC>Q9o^_9JFhH8 ntK{ Z{lmq87t _i[%aڻƥ)(D"qVXvbh s񢞮1V.#}1~4jqDLB@ SLkSb A:e)V J).Nz AM]LX{iզ%[%N)S|1jp'7V_{YWV@n}@m'DB>vzV t|GPTHmC޿^T;CWNku]W&j=\}R*YGgTˇ i*WJ?j>nKAL;`?TM50Ȕ'\9L/xy53@lIl1\_MظfC;ח}Dwt# Q_F73麾GAbc1ZPr/N. ,!#J7 VաK\ע:|<¶BB:C꠳;RPPIA]mID>@zmNPAT2E:P'ᓅܵ' ѵPqb9q*-!,~ 1nig`Lg`s J!MC@#FcYfH3?icC6+<&~)͌Fu  J()i8V)=qD-}8\@W_ Xׅk wBDxEl -!u<\dؔ$ $ٗ ܑN*!~`SsWDӴmeBTPEFGz{?C+jוJ9/CkжHVr[{R"Itbc46ҨfέĈHX9pV(h$ 7[ªMFcD{#b G,&1e'b(Eq[0ka1RQhܧy%bQ$^!'7Mn⤂J̒0j {ijte yX*F0^Bˌx=ɚ|MPcy|_zGV1L 6bn wHJ=ȼU^wO1R8p5Ԅ3–$y؟X/*y&HJv +dZdck* A6B}ouJGl&ud{V,!<|ɮd5ٹ ZgV yκYhwRdNdK-%{ hYL%TB5h-%{ jIu3ˇ4]JD{zoU=1)9 1.c˛txZplȨ]IǦ5*jHC 9ECk6ڿ"Z41atpw1+pwy(G Y159]-ap.=\4pzX yw>X9  dp'\{BsNL'[Jc;Qa{z0dl7M؞l|^ *hE] W&)ňVk'iX nsI=ZQ{8VXqR B,F C]eA,z-S ,UohNS^$1SR1u\ιi AhI׿wL~y&q8KC6>_hLaǶM$zFrydw'΃p[..zR?赘5Swd3cٰZyZo l}nnP٩%#YrўWĄw6|y̽;o{U+ ,RGB hM܎,DQ^Ȩϣ*kZ:$]O9jɆ埰Ls)+.G}KBI0vʽ sD#! X']%0 ڙ,\&Rp; #,. fc& NŻ9-}C:X|GVXDGD?m]KBd E,^ލy[)^4/o*Ltcf33x:yYպ˅{5C%$,,O?YnS򂣼ވ%$M%O˥ ֚-Y&j" Tg4/PH^>^E>RՕ;K &LD$1g)nMPߩ.=mA+ -=Y Wb;BpK+2J]P{>nOb6(u-J_h%uJ rIG7 do#&]>g%SٷLC+3Yn}`#`>Řĩ񋺴!#5C:Xԥ/[R tݕ u9F~w V؋}"7ВK$*ɥ,N, r2 O [T]vev!M+|OXr}A0x3ʡ |Aeir>WUޛ̏)`Ǧ췖ѕ"wȁ=:/ ˁLrTJOFQGH5C>rtђ:S$>q%TN\fjԂH 㔙F؝I@yR%0HWQ]?^gz'^-H<"6 hʫNDfG"yq]MjS/zF4]^m>D6 MsVG9ohi~4M:xOk֧Ȇ_ޫ[4#̚TV֝T89~FX*`˷'>ĨftE2*O r,)Е:G%4SxYVsui O|"M:4qtIhS8Stu2Ԭii%{!L;%HNlګVd~u:绽cxl)֩ºTT5DTS\QR%tr*'ɃGiIi4gWup᜽J@W!PG? ??Xjҧ3  g^n%~!SaĮtj"YŊ }?g=--$Yz%ٟ[olg㻫0՗gczӕ,}fkr9љa)ELBxBhUxe{lʹ #- Ҭi C>̣9KOkXp0ك^:ԟ )>lT_$V&KV^z"{#!:EL#ɗe*N{\h|JKhIēhL'882I-ojlOX@'/_}?{`(_])r71̸xAKIu@9< Zc|~? | y!kjS" } %E,T+Ͷkh+4yRS'xu)zוL<^\ U -+EZYD-KKE0\:uz|/M'8?W%`S"Km_Ɲk3q/lZ2/۔?-wK_4cg?&UmłJTV-^L.fUY ߰ԙ~z^ZBKSsY-T 2vSf$}lRcW¯9pkn?uWu& k!])¸H~Wŝ>5Kswdiٞf,$}W/,Lg|8E%MvZZ "!g4§͖ԇQxd uw$3"cf&O14-iUɂ3̖쉓%N'&K@+i)*d+Yz3 0U 5虒$#L)AFDIw%K"ϓWN0Oy|*S4)Y%i1)⸈2̒eInM''IBydв:Rda#enN3E$̐\3N'&Hq1S"<Ȓf gb0=3^5wّōɑfjĜard1 R3͍[GdHK2$iS'ЕcAMڛZ;E6Re51ҜU$d%J™3ٕ̋,L"2LE`^3gY`L)bRds"-;EF9%D\\M;Ô(έֿ4;/"W9?f1u'3dlvRc&HYbOɊ {'%X ^K fja8Jyf/ٰt1_,[j`lz_Jr͚m^<+_- )+HkसX1gc3r4^%Y^RRaOJI*gRhq$%m9V*;G8SEByZ$ ش2xg2+,0[^V8" XEVN/'zœRb`3x{[)i}imobbcMRP`ʋN@) 3|^I$ ^x! ]=/xΔzm,rE}W%(n: ΈWc}@U8-vبja򳺷K AcHj*NԵwɾ:.mBj]d]G%Pc4NmOb6V#1zgnQt:#ALjiꌲjD}e|(x"DnB-B.!ЋЗ٩У gH5J)My"5q @f(D'ةӚp9t21S>2Q 5D- -\HiP E>,s!$\-yd~ZS*'[-)9TxirAf52 g+GCȝ yi6ac~: ~: 'EpLJHD >u]1m;aHd&"3JلH8jb l4d f Q 6§1[Y-Hnֶo+YUYe9=稪b5xSĬ(j|G:טm\Us 4~S$4>glӚ 8%\$m:`miu ?y%>U5$*:{IftT3bdjB*-Ŵ wh/@8E r(̂QKBGXfЩrAl&IlRA w Q-]m|~Rt6b^lD?pi^5,DflٰH),jq'+R\3rF||AP,bD_5!οpB]ڣhsD_g0KT[zfؚKf_"y"1vMs8S.ȓ9RJZJ yνRXVV9%ž# *2o-Νy3PYX1%1{/^lG$ַE8*odYLXLj#G݃Ll1h<~ÏT~AE3i=Ϥ,ػ=O `Ϛg`=Oo~G$Ds2Q]!H&_!^ʕ4-,KC6=ۉ'&eW(qd#}OLz;PğAz%Tn=1QjˤHӰk ǖ!VsJT_LMќv\;΀CMM3߁EAOM +>59Y8A@q||^(4 eְÆ"e#RSDӀ>lpc>&$nRW!V!S:V\E& ) (]͂LLP8vb2A咀 'w5A9w!}Y=!iֳ7~OPGN_O+Sx8Vkn ֆnSrkCVbOىJ\w 0;F\+ ] n/L Iq`y,#fAQ-ѨQ691^PjULAr1}y[nE`E erB# h0G^ *? /I)_|'0aQKM(8GMxz]b\#ν?})~7_zR =@ڝJ\+^Ϗ|ϙZtշI6jk΍.RӳCoPRq71A8,Rǹk ɚT&Uq5yi.*|jyD֫x \c>%@OB_k/\q0 U/^B4ov2^; Oć'Ayڄ0?:3)҄ NU>|BDͦBbn5dqjn ͹|aqnD&5]\-mj]lj祓ݸh ++Zfk*nU2 5GٺXCkU+!Tp3j݄ :곙,܄<*'djo;fno-I-}gW^VU -)q9SiU.zZ@ehbGvHoQ1\) )|/ެ; wf^%E&g)HS}I0h"Mj۩ '!|OL$םxYddlUx-q#x )|9;y x| JUII"WJ\#biavRVKYB䊴]!Җhv-wH.|UYpn|]$bpuEO.z{|44|.y?} dt}(ȈraGBpnvZFUݥ!BqQ/@5\2jb$QF X gڨ$JBYF tГ=P䪞0yzі8bY/rv^΋n/3 [[h uZj[yp wh%a VXK-QEuZZ1m"j0IԹm@E3ab˱𧦒eCe d)|;$t&]]&^꜋\F/Ζ"7OyO[6=4L(Ȕm#JeCOtehSJa%Z.m5!Ăd[[cl{]{0 KDGt.;NeTlYKD^_gL_#$J^LT1Ɗ $DSk#*:rI-T4lI܋ˑKLV4.1韠9sI;%&|AE%&O[V 7nE, ݘB>2pc\ n-ô+7Q1oBg=`Pq+=7F0@Z$Fe KH+yH\m8&Gg<jPq8& g飰MmS|Yt:( F,+$ͭk|D1~,aDƈ݌K;;E?1*fi,LspAcg ]wA]/D]r}6 ?Jq{w *Rh 8&HCE 4_Qm Ck*>KKQ}uC"aE! 5X"(ٝ-h|\ա-}'b-,2<5ֆAvD^}2`iy:i̛;Si$D΁jrWRJR+wn+K!VbI]+!rVnw= H" +ے[Bfx%&8X*rnyk*L.TIw b\ԪjbvSdbPBe֧EV9J]jmIZŚ>Tt`jN&a,_>EkD0?Rrx"QraIl=84$cX.9 -bhl}U$l^P ibdu6ZIc#_P%4)A/waNDԇ"1U7J_P{I_@D䰂&L%2dbeQ1V>%5}51WѸX#IH.,J%E"!?:CjU9<չ[1ieg<5N |UPZ _XG)o?m݉N[~"PzCSO7-)eji%U&1m?DBtLNt=;UR/VjI*!r]VJ kZ %u-D.S] ‰H[4Q(HY&4_)'bGJ$:{X?*"Olh]訙sSq写PzyFuOU fZIcՄǶ) y:T67WѢ+ D ͠iQߤƆ!z|? M 6x"zODT&:w'C UAq vPȩq]]BTk鑩Ydf0::fR }F +d99ã Jv%-Ӕ2R_4OPVK1( >a=?[)lV2Z:]%V'?VmW47PIY< #[29WE楣*C+/qv6:󹮕#U"?@;I]HBϬBME+nP,x c]dFCwQњzri (C[墣A/2*E;" Ëp$Qk0:yJZ矰ڠX_Z [BYt.#%Ȉ&!X,!ldC`?QDETb<ZB \-ɶjMB/zEtk~¤H6?Fq'~&m8.NGDPDyw?aU,>aҏ`} &`RwaO fxcBZ&C^1_D5Zj~ֶģbtXyz<=TWF lɃl'0 g"dPw5&>//ucQ;hɋ\5Z5 %3/M^"Q+֗;4l' %Zik^.9.Y_Awuytx ;%|M_O7KSW퓫& ji}2FC8wPӇW狁5li'o4#i'o/"rAk Щ̚}Ƙ747Vst3⫙S 5$rj}rF}Ao,ȧ ѺDFнOF(La tjP{mM0Hԧ}7&/7[ M*Ml)YsTN4NW퓩>Eo|)^ƗR?5}˾ntO,ɣuuX$,md 1_RkCMSw+w3lslxMߵOTmr$ 7ic,>Jirsl7+M14{|imN"LM_OORj i>|M9IuEӷ3Sӷ M]u/V37-h}Fc4y>lsl\+\Wg1z *[Tkis?fĢ O Ec#r{ѱ:Ws(1︈f& 8o, o. kT\;Y./yoQSNz@QSA_/C$O0*G27,#- lBƃ3̈͞9_xfD /փ4͂;l8˳M!2b2ZXF5hS"&9E!n33*?: )nC4Gdz3h6MS2UH Eq&PQB/ԛ<#@3J,@(e,O C|`c0d kF>e~!~ {"QߩOސw$ܾ@?;%d̥K?r.?RrnhZ BaєTجBAL @ܫPHHV-"P\Pd ve3NL`m+ 6dAzAA?ZwJ8TLWaꇗ mrE[.Ɓg0O莓n_x$b< 2hV]СB(ţ\zar`~u?t nzᢞ`UJh|᠝Y<w7jNxHcv8-ֈҷ|8#kMy7gYsG:(s^ajQT2$Ec^s7^]cm"+wbOqZkr1>8\}HIK{_lr@ÜZy}t?Ƿ<]ƤW($[X~~I?5`a]BSBп駯[@6[cҪu}Ƥ@r}ɯkLA v5iz_k8tI!KYBYa)bD;zf׫/0#̣65ym3N=~> '&G5j [kRFF5iF N_kR& 5XpInB9j cGmE?A4mjϑDl. ()WٶadSh+GGÆt-3NA5YOɣW Υ[WB~ QȢDd12=Nmd r}u4 MΦyWӈ`~ z5ܤ֤n%kMAEW5- ~֤ܲ *h[kZ.{=nAm(ag᯼5َD~_i D DUj/+l9W7Y׳v!:YVj++uv: Jĩ %V@E[֤ʹ[kRYkM6d5&I]x''#1 =l?r3oT2;+hGƨ#:a7> | 崛s!6y*DQ?ꌗ;5$y_)jBlH"~7#bG\HdߟC|AaQq;llL(Qwhw(0#${ *[gҢW3)&ً%YȎZgҳ ٤ʴN\gReBVu&AsיDu&ˠ:ZE ֙4_3_ppLXLzty/3CT֙-)p/P߬&UI ^' YoN @ \?A%\IȎ=^0(4\Dq0JglTV\5#JӠ!fh nշ$6% Ea?m(bx'hUA'iόMUZ Sk&_Q7 2e5\L#Jbd CNAd8"Y' Z rrٟDzNN;0Лȗ1{>uI#{O &lkvv33 @,F71O`Yz4z;DC7SHdc64{-B'!~Fu'r )!* +%JB {I·N L@yL6d.SD֜ & u: &U9z.^qk6*%9Dn0iʎv>qIBHQH7]ं64w $OhR .a~Qj%X- uՖ*mMDQ0SDdjW`t+N/8ʹ\6!fNlWeG&bu~RDR0A״6#}$!j $ijy:өFu&9mIՂ/h66tV 7\TJVHwYB(A5Ņg/Q2*<♓5l=1s7QIf@o[ΝHrz9" *rRIkZB-)BUwJ訡=ym4]r"JuI5a[> uڎNҜbϏl)NLV#cuAUDqGO\ v0GboGO8)Ϗe:9 wVSItoZI7OE\(ZThU}d!Jt58dSѻMmkd(XuL_ d5w"D68+avN)_3$D}@dR`<QoM]Ŋ]Vs뛾>wJl3N}7+cKN*y }/폡 Ish7p$GD.E]@;p`n?'VD=dJ( xh=ı {[ xrDЁN*^Mpnbwh+EHROs(O&!z1Bg\">_T++˧" ?ȹkI"rh8腍&M=IE6t~ѤuRMN*غѤ}IM?j εw:!*!CXdJHW&"MIi}5Z%YBɞ܅EBɜii[%{x/E2MVo/d5:J~[BHJj1%JMypp#FqSm * -A])cD?Nk@7&<7CI,ڦvġ$;G8l$9©Z&p,=F4#۠#Ȁk1&˫!ކ /CB7qEF|fL%zA|H< \Rd0!5leu]EkU%Dꈖ3'̵^s:6oKaТVH52,+:I]J43!7 ]adc@=a|yOˁ >iu5_=yS~q0:M&u?# ŋ>LmJ7tБN*ɤýɤOԭsʌ"*xSYCnPnF [n.!-]3cdceCT\  '9X0"B'H9 &mTsqM52=P;갪ު~\ᩎe\R4M8bQ@Gu1Js좡N5?zFM}wy 3I)xQ,jJX:_jn}2[h 2DdCoo|<1*ݯ iعe 钔ɯwDS76^,!dpnFj&=Y~EL²(z! ]IQ͏J%W+G_RUlbK$DX!~M!VmkϏrzxX{I&D^c0l3v&"0M6*wa :,Ԡ$A@眰ɴY8{MdMdRIE՛LڎM&-wյf^5Mmlz=yZVy+fץ> ک//beִqGp_F)aN2Q%>xSU Zqכ4?2r~e-4 z3^팁(;4I[8Ӛ[ 4I KT?ISTISH;)w\bj?Bw[ҵ6!Nn+7+,U8D'yFK.v 13}K,ᘄO\&$ޛCv<UxLjh3r4:¹SE/Nd棝Tt&~Ə7t1N*oI1x|I㤂g6ԅ/m2iٱN*ؼɤ_M& UT[{ %j? vsX;b;b1;P)jo˜eL}"{4Ϛ B;AK|^aM&i&M|H!=R$=M"שtQiEߕ{.{DM$(Z;]g,n% ZS. D0-=]O,ҒSpD,T{Nlӝ_Kѯ/~Zvq N 5Fp\[I3-/'iq i `Vіjs_z:sRl*7L54?R׋Tڒq 줒͂mo9'c.ZJ%D?m2Cx7J>,L{Uw ]`My;뵌nH2+r } SYN6rӹh*uA>Û+&T:lr|2*<h|LQ`\<DK3z$H S ;qedxxX<ꟗN+*QƢo0%&na7 >zc"楷5 ]+7pJjr {J@BXթ Ssb>1aYz0D#沍0>rCs[ΨVi?`L90ڗmg_95.afc]Nd2Jt- x{6vCXI;"h&"<]*G;ׅy\$`;_6IyxxX4mI~c SƠ,Q[z%oۜ /!Jm0,Ë~M4_%m "q*.6M$o~F lƂ%!ıV?;KBabNKy((K|$mK#H(KʧHa͊bS,(*a)NX5AP v S/E"J]sp߼ i(Rq |y\|qDOc'풇cg؟x!2G#pL*OJE7wPj\/<%/>\<\>]& 3. Ť\ۡW]"YKh, ~{hx !I(19B0%ByVλ ::86%ŀ'x 2aWk6VVtGϹI+\R0CPeGT ->R1K#JnjE6 E rCF:(|M绑(alJ}wrFUC8It_k#k v< Gθ0Fig\wkkF9(&D,lbBlr@.V}؆:<y3ɸ!!R>a@sP2g-|hŢU;J!,$E1Rp5̖1p;؋em/^CcQw/&LbLQӛ6b/D>Hc8( S0 B ^MV*~9H{2 $ZvW\L׏ѫcP|,myM? ?,?q^u>C>T¥q_)dз^8l}Ve>s3(eu[2ݨP -#Xhq|LLsPecgC yơrH oPHS6q.䢕c&}?JsqplHV.3,r4Iޣ"Hj/rz3tx#!, hCC?&h9$> !N) x*W%DP*ʾgle8)!Wzf(Ǿ1$.W w Q'O3e3q|Ay;;';(UA_p pMW6i.Tzя,8vT+Μz51-eRRM*lބ=~__㚨FDK4 }SQJ-!Uͭ"t<] e&OPnqi]xy%.Oh )q/SPtV=p:\g#.CqAQCYC3A.5\׾8v⧥PsJӘuML\dy<'Qz+Socj5< ^O :0GKɔi9O1೔=O1`u T|ǕEOq@ϔKY쳧/ʤJd' Ε.TeXf慺f2V K<\\d{qHOP54 !V"`c_0Zd6ݱV~ewt.Cy&}|*h$>qv2]+[ $UP UTB\+C] nhR9Q,wJ-wvJ+rBo8,X_By`+N˨d`Wg8,g})׃R -}&h-}pi3Hq^4t 5WEzAAJӧ9)K`pRV패]_XpF:~LX n8`쳪w(!{t#G'!Zh!"*Bt/߻f\fo'$EڭPVH?2֫^?{TКq%L6>81g%}]^e{8|e^i@?g F۾ܙqv6Q=^:IF rjwijkPWkHF%+9(^GL }}̑q!\Owt:n@:e^i~zN:m>8(~A$\W*C~W(p&_餏vto,*^|q;!UsZHk՞ gs-Fn0ӳW8(u<.b>- ,!+o@^`"P_Ë>jaI?tĕD9e}%M7~c{DYċ5pu7KiLϫ`fz]J3Sݝ`RUʤy:UpCsFKyp,eW+-iiE-L^(OOi )*:j*ŷ)>s`/7'bxe=9 -oc鮲V:"a"o3i|,Io餣:Z>l<46OyV]43i\2OG':Do*뤼$XHx><_/[^ 1&#"X 7@.jQXL좉78˕q^EoqY'ĺMH"&iQ7ƈQDZD!mf VlvQ|h. Lj+ztQ62>ʛ0zR'\+A*>}rH^'\Gd(ih)g8^r%_X'8&8A5] $TlCS7B2Webb~>*rcU] `C4!D)gʦϱRfU%ݚkYcVN#Z^[EroQ0SN3<x>:vML}+o u4uE%W'=6HkHJ8 %ik'!W$mFre-])o[H*$uk'AW@@t#]ze[ * l I$# z$o=HwhڽHB;LOĐZnRP\7 RD飒$7lq}ݩWu' &c.خ+,MNݕMyܱ+)[AD波.wيBDv.!c><C! w]88[Yڻ  l-h9E']o-"ypÜUwkWxC Fj4kC=^˶*geu7^- Q "2tizlz,`"F$c "cӗr"LO+SɗӕJ_d_=sWWgmqQ0 ^[\t}rEڡ"&1xv-9"N/az$3Svv~l,8,.{,Kaeʍ|}F:T8<2M*ҏ\.c+] d"1: ,^ (6&XI ns2 rwhyʉT# 0RG 5,!RKݣ/Q!j© 5 !j_򷸨uG2[-.?ʦ>'U}Խ'mXJrTn:U?A+*z,|SphEΦ4'qy%i9E%@/7ش%O3"hiQf8aXC'lۈEzp6$紎@"]r-P2['r-ŀvՐ\:skRwZrGPF%BZ$ x• '\Vh1U PtY]h۬+f:;`YaC%-aE v<+W7x&] R۔ȭ $Ĩ˪C×2ߚ"ZcEE 0ޜ ~`ydFlx0ee:Q輹P!WI@\sidWo,.3PPd{5cuVIe p/z ~V1.^z GgmSK GtX!vUvn*Q0ZLXL㫇F :S 2#٘|ؙ oJ viRCK8(厗gѸ6VU7}*7pG௠|DON>Wi)r,i5QNyϧCN5HRȱQuQfod-.]r,ӫ<|9?6 c.tTv-O,OxkEO%zGY<ôN F?[y34'(Dwl;:2?k m1$ G`vvgoAz,#986{[l|Sgo|>F;Wgcd.{!FjruV#?&K- d-ɎcEogjK%zL/&,W%hF'+7;sMudPدIxH&* ލxǖ֞H<ǐUMeAj}%FotxϢWxp="u۲-/^j "B FeV$8Vp> ^1F /5 L`,5xRMlJ ΁ҰDC#8&Kqe0PrWnl]NGDWGS?0'(gT=(&M!kk# J+/$̋СU_!3;N>,I7Dx 7&N7Ers$EOH%BTJc$EϏPrk$|α ݦ-JF1m܁ʔm9wHWB#.y?Ğ~$01Vz/gtmG4M_6hq ZvР[~=u tN9NmYjUm jU . 3e)?Ixf;4LR9>V1tyk^/D?^~walzH5h=N bWXJVyЦGF3I zL׌rheDx{Uz #]QJ@ت)LP1a&H"lVlUDhևÐ6EL_k4X:ɪEbAQ bs;\4]{k: x}NVډMg.\>l욫>?P4)eK<Zo^} QAcZ$K.WJ^oQ.;R|z}ӟǵ?1]~Pmn.>0KX0bos2B۰pRc|]""|rͧ_ %6Tb%%>yҨ{^J$a\ $b Gq#"щk:,#ZO8v&FnVKHƪV)ltxZ3uKx&pxC1]ָ;51n5spm0hY4,k&na)fNoἣ~_u{6-(#)r,!NQ,m`aJM1<-CɪHrD@AJHO6rWz|}aH*gy£HzrBQ"ImAIu:C<*M'c ԺS0׆+F+(#TL['v{1>2mȩc|e$3g B4o$e${pkHMUYiUʹ⌤U☇#13pSFRnbA]/oI"(g ҍ;"7 '&" r{=:5>5E[@I͉y{BZ5$Nk~\H $H/ d$DRARh+kSV(WS7[R ^7j ;=5/j8S17η[ &lHM#J:H ]_HLf|l-[uk cwPN itM2m8?H&k3zT00uMDr ̧`~0K D0ua̾O&,0q9I"%IzA S 3=Λڕju q^Ue3ZU42! MRקַ}1\Z7ZU⇿S<_UڰU\SKtꌟ[7>-uYut&( rUC' 7<>?o >z80WNq<uX144WWU( `.m[*-mx-3`_Y' "zxU}:mAJἬM4aa"~S(3u>C0%?C[8PIT24ޔ>QΌq|Px'f*^o`Ѿ4}+-T%]a[_=f8lɥs;dıXV3jʡ;ţ]Lh@d3Zᐿb?fU4f5JAak[b(uZ~1$\+`e]E8J*Fz"#=>5?8D/Q( dדIJvlF(W Z oր6%%N?1 AעEٓG?Yia-BzDB}N(ܕ^+C˪*ӻ)Zf[$!ekwhϊ~ y3Z.'v %CW]l_-y.WX;cPH.c:4D?J&Ť4ĉ&5Ѥct01wO4ΜhRqkD!$k*uIgҚ&(ZL8Ѥ vP;Mj(/ל' tk}"30O=}:d.h{_ g0|a׮ⴍ#ᘶ Xu4aId 3 H΋V\A)&\l#,,h ME)X1LcQO;jfL2vv5I&=dLJ։0AVkOs֛ۛzD!N%;rRV؃yvi(,`dvAnTeYf]kY_pK`hO!J0].ȳ Q[yٕb";ad6ئ!b3paxɤ kYY[?Vܵ=l; EpOed)˰f,oKJ& ߕLod/9{}`GK0' ؃ٺmDɧƔ^) )1'ob*$$bx ƴ1, |A91d cs2I"!ơpME++zRbVsWvaR>ddc߭W:Tt\gD/tV7%Pr%uf#J͉".-T-xn5 .~]_@?5wRYI -O_V.ɩ`:r$v-?SZQ Q]dҐWAJv%S7"^Wv]Ÿ#Jk2ЦNf*&f?,RZ$aUbjif}?|~~ܯq:c3}gNԵ~(!3v"At{x$I\E< #"\ c<l}mVmaXs?}O"YaS1m\yˑN:u6SaYziJ+gzQ~2%Jx># Q ?_zAIMʑ}$Pyڰl+>[OЦğpPjd}Bq5J QĘj )ƒ](!!ojH݅ꀊpHBN)6l' FjUA.=\lswbv?b~9I|;U^wu_:Q..~d8 t_ёSEoDT!E 'B)ox@]u< e>;* ag҄hM?0/>{_?j$}s#$DA~ ii|"b2pXs@]+!V~)!R@SF.jT0'+C])1OU/c ȸD"euob)\N޼%#xg ϰ'ꮧ[8QL1e*6~)&[ߔ5}$DK ?m’>OB8*:դ/}T~  Ec6ρ&=𥌔| )oAi'M5h#YSMvN5y1zI:({Tel2W6<)!TT6 MBTt>HIf]܁N~tbn*\#j~7kd2B5臈] az1| D?ƙZƦ5~DP8ߠ,x 1|nF{; _~#gRg,!jf]Cgf\k#ڃكcUE,& }o7l$maSL܎Ө[X"}ڍ:~'c|nw;:z')Nu:}'dWt+$DHCBX0~iOhgKg"K]#Bs}-9^/=LL>ENAf%0rpp4ʦ l9-E7@˜io/e?w&R& fP7HlBHXQavDA.ddϠ H!"4CDy DoHa~#q eb !_X2!7] 3Ar:1'+#6~ʦc2pR6mRvK\G~1?]XBxHd`2hG.2 ?bN80&ٿ@kžԲf%ҜTD̽IO%ݛ ͰpJ~_ P,(~P>)tQ_ ű@1:7:a9 ]'Eųv}QGlQ \|rjMNz. c +]۝T9% Qp<~E5[UDŀ7PGڿu7vqngeH c;Ԋ>]i.6&,l܈ s\/J]Z$aLI< 6 * jͻoCSM |׻C+fv@- 'h>[LZRr| |itk2}I|p|'LE`8U8Bh[E!.ml\!mIOKNlc W]2a-Tr+3I*Cٞ$vKv7?)a]`Se(ZvvdN3?+aImnNvso2(Y[(B2vH?DTD?$Sf0_~*IV}Ω%ga2o%i ]€ HŁ_* 'n*7w\ 'NOqR,,?+!:Q\I=eIłfLz,%ePkqmxIxGYOU1X.?V$t׆nJ2 DgnZ?*Rt/RuC8UBe.0 !ٶ%͍lT.|2Zb &7դ?RijãpV?:rXt !9 wng12nKF6.Uv&W0`Owg;^#NYK&9¯p++o2cS5tM=hwZtb$Nu;r` m9rZ4q)]g,y?剣 ̃__.R\$!|iσ)[XH<8S}~3[f cp6j{o^O9%=ʄ4Q`IEc rl9k[sԺIJ? iXtJyz$Y%[q_vZɑ U}~ug|$WwU դGfwmk?F ;1Z ҽeqIMqsGn3a![Ǘ$Qi&I?N3iL'eN3)?>fi&=?fNKڟ G(vįGAP~e{Սl]u듹Jn\mnmH5)GCguDvIKcI9N>fIᏼ&?NnүhIGuEp+N=Vo,,GqNT?8WVǁ4v$In!vkO|U٭ĭnMzrsm%qC`4GHKGV7'e\2ݤ;){t&V[o,v']}Bc@\q*1;xK)3=S2A1g.mų[=V4<)ag5ݤ^XBhdϮnRNnnҿǖ&MN7?&ҳr[IxrSoG=ķ~Ft4UԾO]S%dr{mO[Yc_)Cgq E6loIk$}-oRN>ߤYM=ߤGMeu𭻢ڃTc` ?֋R@F62G~+GFOF6.R3rRfM=׽j,EQBg{5Ɲک˅1y\\Vxƅ=PXPHK6>C9H'N{7rR?˪QѧUN)Yf&q4M ?l'$SfŌZL:ۏca$O+Mf'ceZ9HBTvK97JzFWaZɱ2<7*!>5UrI_m.c9ߤF7 77y'*$'X$! 8I{}Z @VҎ8KL-#H\̈u_Jk$JWQ:%Jd'''JgZȷ g80GC^ωe444v`B+&EihhHlK?2童 *Q# rKG42.{a]%ut~$NcȟgC8|4iR3H7|ā#)#/F2z<^! @!،g}|b"!h}$#y5 KI%ڇI-"~ ,TpN ΏyL HZ$Gcki88[m[[ߟ(?b^€׬><,}Ʌ¸J3эyʥQ[W9ŋ3Awj)՟2 +nP` ~K;Ora+7>)&}HP) @I #o LJC3C4 <UQAԥnQ&O8a2: esdME9)'7~+г9)wE-$~K&s$ o_;[u죗/ʤw?OG4h<>\cMm sө?sbj >)}$dr|F 6fŒ}*zBv]mG!BQ(EHgmIL@'Lh?JyMO+(_^ Dcj3qqJ[SsIơ8/j4'/5e]>.?/i g?p*~YEr(wUcN8-NtR:D'{s̛"G%eus-w7z.4GNݵ 'i#ٙK'H9o$0N bP dd) X a%^^SZWhڟWj2ˆϪc>'Tz}U*! iU!Otpz;P^ƂzЫ<D_%Vy _BTi4lY@;W i ih :-+T@JՋqv"@q3*٣6Y"D ~: B70;Ґ?;hah, Fb8wتhgYۤN=>< HR͐?ix,/逷"cVFw6*fȒN.pʬ}`3rTtj)cC'!p8tٍىz*q5B2S H#{0H}xNV\? 8P8⮱Bd OYTMjOaU(@-=_qZ.w!Gt(f^p$Ƶa2+9#~r֫cN>++y1ib/:qp@R`x@VxOlvO >Ex%Nto'eoX䝂SvRNl={Ϝ#ADTOj&S&L8I9%6&P=tm<b: Urj+R+-p^:9MpJFhG9MF q] >L,Hv.5H}^|Ԥ'RNW Cv2޷.;S%/l۸ЄZ/=/+R CϴfYq2gQ5C$9!c;Z ԂiYY,6 _2reYlYBbY/,m Se#u٢\l,%|Nrjd8iQWu:ysid RrJYfRS y{2>ILz̤Lje&QϤ]:H+ND9);,H1`d7]cFơ q/q:z"6$ӣ RI@n,cKA†"'ʉBh_"##6mT6w@'wRH.i4R0ؿ̤{v2rR8I 'e/^fWc25L=\̤U\/3i\w.3iV16`ضex =W+5t_6j%GXBoQRp8_Ӛ%C v 9ӾZfRYu2&=?M*×28jI_p3$ gg֍-8wn4I LވȸZq;kh'fzӉٽD6/s>?.AP43sW[>+@#`oyqe܇Qeyce #Lj+@ ,q(c!{MK\Eg~6j :D5|I|du#b5 Z3G8)(EL5V;qxXB{P;qܤ،X'e]ncrNM=I^nRzMjS 4TgDԽwq:0^9k#; NRmy#gOԭy#晉Ф^cZ$4gJK.>W"+e/)Ÿ4T}v4$/loqsܤ4mxr\StI?xޞ疛tTVåNt(}|]N4Ο{؟W aN-]4]ha/IA'#b7rNOΚ̤g7H6t*ظ&+$}b}1x V[_椬M:elF}2Wud¥aOxU+ x&L.ǧ{;a* S=Ѐ~u;)mr Mjp;){rw](rl`@u$^wĸ]MWW!`k@|rډq੕QfsNAz+}dpV[TJXT-Ir'gI2W Pgc˷Ԋib+hSrS|=N*{GKIq_dDђ_L,-Z ċ̢DhћV.>--rXHs0o%R2Rrst} *tQ`.un2&}m~[n~qMjmScrw +qw fn(BD=)@*qsER0kBfQ?R-'u]+n-Z;.OAK|Jrlr\)SӊtCabע) F#G0 OHy)ERIO2y3 -}IM){&5sZQ+LAeӔ"cqv&'Cd؜-uտ04cƠB2(zj^}X8)meDԥdI䜲¤,JFv42 |bLB\ݏqEN@Ii \)x5nItR+LtR&,&!TaX¤u3ꎊК.u[4T3mM?f ȘPN0#~&хAa2 p:M]Qd*Sa;FL}FLm $$T,ʠe&:P^2q΍~bu'!G020R53PumI Y 1R$ 0pt{IFn#[;Z}-yi΃+EߺU9*B20JQL/NG]᤮7fiD]A=+t#-m5Hxt6Kd ⬝.wV܏KJ].#Sn|Ӏ9K.{ ӭ;O 4)g% KJUtRE+M*3U_#?`񚊿Nh:C||J{a?Voql:&P͟2$^8*^Uf]夜FS\UpB i;3ڥr} 2zPqyE9 ']- cL2f$s_v lkW_w ~4m;$^+` ߙ>T]$V-ʖ`D7kv=nw=ns]]2q&^Vu*8Ԗo6p,UmVz2VT|PʭZ@1yN>\htrAU2s!}<'-YiRSvtEV*4sRc+MRܣZHj}b$)3-$5itr^qk XI</j*E-HBF4io~Nv4iDc#SZQh!+m+\@B*-V/J,n[IXq( v~:DYulڒZb%A&v{As`w37qw>BoD0PfmE0opʒx%#YnpRjy&$xN^o}0+\Wiw]/ÅoF7Ԇ7]n@t~?nĘOǂpMhvM ːngW =D'Cfw_4%'xlO+MxU&$g*V㏣V'_ezUciL'eZeRF6yIJ˩\ʤqf^hk KnC1*c8Bfn뛧Z UA=jL:3Q6:+n> 腃AAaT,K$Xi[`3QRe2ddhm@녧@ߪr/I9@V m@" Ж#4ޥ1'qʭmsrZ4|m`j؎jplA2Q-D@.$#:8dKȿ\[-)ےr$q+IUwOnC-5bpo-uB']ʤ)$~*X$罫L\z*)=i2) U&=ImL2mNJ`SRmrрB-zˮF^.wazm|2\3/_Xzm#맡 oykWǪQ#ᝁ2Ԛ 8K5M3oM=@ R1p뤴2 0NopM"'h" ('F7/%//:P+]q:;q@2 ͆ B:tN=wWZ:WzT\cߴe.pS򍇧Q9?./Ϫs*5k@-(-,j=<h]Nr|8=E?-wIE[n 1y\Uub'p 'JًPPiY88bYkc"FJ܍1{ eVI{=N9 u9DI^jzSGJ7ʦCvb:pIg!ZmRcw3\NΞڤK]ڤK\m*FBVtx ,ujJW%jc&|(X十JUN7*݈τ*PʑSnE<(g;4a_zh {1á)X.h h^^7*Y[~X)a 6lO6{ܲڤ5Hk;sm{1Rh嚕O<^E 9ާ圩Vvޒ }MvV}$6V3g\S"ŸP7۠#Q Pi2;yf^X9t| vڞP-3gEXnJ H9`K9^HHttD:MEvK=DRIUx ќ^S{b QԨ!L+,[w%Pcp \*``"8KQ}zxv˳.Lu]Kk\/7Y8"ZqR{/,F2$p^ㅢ!Bz? ~w6Of}eRŵNju#Í.7Dr]P^DH/ǼOHFYd=n l\'&Ӑ/ N+pgZ"{E7ly0qcFXƘ ')< 53dbΓ 7d!LiHV!T"N=XDq4ŔrޅC3a J9bVp!7+AʙA-,D2}YLM 3hHO(ꀤ3k>8n!=  ,_Mg߀>[̲$ƃ$yAwpT: -l+Y [V,`\Pꯘi5ن[jcm-)d`R>6$9"8Vu)P)MpJphԃIP^ =`v'~I߿u1 `po# /E?!= JFRS~kԚ oAqCĘ'Z0/YѯL$`+ +P(##^{ 3e$nPN]qp`"iH0HIEޒ3+=ړO(HjI1#c rg>0<ܧZ 'e$:e$ۥn)8bCy!ܬ6 ñ(8ڌ$MwEVՄsf7H;OR _rUM8 UU쫏Dc  @ar#k}lR:-o\aP8XS[ ì ˆK3ALbU{rVF&\}@Ъ |rO'KY~1ʯ4UZU5SEt2kTiUA, EpTՄK-H ѬT{pmcA19AkU&V`o8"rWWg5d L #qQpC W(qh26ѫ>CLB}@cAN ZJ] BĬ'Ck^ Ἵr?m 4Ryu;Ś4VM.R`;qF"IQ\3ܡɒ=;wxFJ>B3(hoԆ0I z  +U'Й O,*ҏݩ皸ewW8&2׍I.-$DO˘t|!RWdxCY+Y5w(%$X^+Vb A}K+":ntڱQq1䶗%N-8w%J<%ߥ̒\UDE'Y _ [Is\tUz( j](TFP#+S"C(1҆rOuN5MY Ϡ !zNܝV!BYݾӤ8)&M\-/%柣U|&P^0^9Ab#Bv.~I+wgʽUBWv΃N޲ӤOnRvC? |A ~Mo\U5A~rl])Q^C|^^~XMPS[@8AtNr]kJ򇝔VN~z{ zw!Eُj2*vnjw8߉i< qMkqkmsG홢4 'QʾJ m5㣰Ơx@ɉ#:=;.v?Z>t2TrGɏuNiC2uh :~uN8oϸu8)885u7f@6RJv0m͓'W6z0g '#>cG>\ RI{٤ sybBD1+G ]s|] YO`Ϡ3@Q7&lH1 0\rHݙnpspc7XNG?y9 ^pRڏ;M*Zk8e /.ƾ^ wI*xea-N>wI- 1a{iq>󿙄N""kMB;/DAʨ_ c+l5}ֽ}> }" mNJˤMB .wRvX1g.EI7e?ˤ߱,ՂI/z.Έ=lG' k)%.>vq s[6%t5ΦxI]~BiNvGΦ ^8Ѣj 0_vR wتԸ%~/Lw&#W0t׍.~5ͽr^uRfҢdT°&N7^JYUPRעLķ_JǛwT2.2i+Dm&T}nj3gn3M% p`SIfRG^Ou|R(MAfb)mvRfUOt!:+6:J$-ZbD 1ɿjԓLj JBD7QjiIkm yUA˲jg[YK[4>kOV5ȶ}I.2f3_ǑǙ&zԒU>-1?^ \ I\,^ z(jimRW FU,3oE.-u}fio!iX 48h|tN*|d &_[7Hd@~wh-/šxQ =!yV1F">"8M'a&(co(PslMbum23t e?@G&Ѫlb0yNTlGi0^-{9VV>+BDµ\dT?}șz)[m#M 蟳9۵1.ٮob`okU.[E[UnXن2~bgU6gM-X"_bn'X;ʊP:1'6n؊|w؊k;ZN^lc27Y|;ڎ v,biέlǝLUC=z-Ft,:V˃?ђle-dHR,2K[Xk%Dg J{,=X}t{,\G1Eo_51o6'FF"< U"1 _ۜ= هEso ul\Y+'buAA/@޼ ҦN&GP*g(!BASY4RfH0秲mNJ,*@µ`U^ 9"k\O#ʄ>-BWqތqZZ#JǿIOevxJZwz'ŋ9ŰG(*Ъp~mymrܞ){:a~6b^ˍݶz==`2a{ΎVu[!߳bc"߳}OMOB75Eiňi|f4Ok xz[GqXҤ=_ʺNAZʺƼ5n OK!ZjHQuoP,PBPd llQqF~?C#zop8}'ֶO ڡA/um&ځ߳l3NrGN V "W Z ryt#:Xِ e&65Dx=cl&6xkv@ϣhK\NS?wz~X28{KƕsI+gLC'ef҃:f̺\*k@." 1"ܡϜB0™,ZS)*٥B({,2>rRjcYpF;#,Xd- l6&}$gYt)8ym;IBgɢ,,ʗ$"LK77gO`CfaxVB%{ScwE9@a|ri] y߅9e\?K\b;b^U[ArGwb>D'ɍsE^IC_4Lh~=9IIp=1vanVKzx+FlZL>YʽdJPW7 %=vT;\1TjZ)rԢd?( C\yjQ2&[@3Dw-K|=ۜCǫ~kJ>a\:-EBf(mESY,}4Sn9_*cvKR[δ,h9O|$n9O g.@,ؘ۹ 8FETT԰DADItคEE GeuhFT nqA"~{t:u{NZnUݺ1&75]YuZރX_ lW0NG.ӷ}w;%yR$)=Q pz}J q)+JHv8_|}0p4P$(&d<+f ?;:]=?ӊD>_?G.lO?j oT誡ӱCɍvwC91d7:~.+:ĩyt|n:g >j/":OxW ]etwր^_T*{38s'*%t ,:DNRz2Z@u t2Z͜倒2z O[8~=ABW=Ap )UFe;AY_JCBW=q2Z7&[BWc9hg9cd`>Ξ#I*2Nu:h3gR ]eDFoQt2{ҾbEcbf`$2=h=ߧ4"J* X1^@NAW'gmu./L G $wN"d>ڹWm`2L_&;H } ¬gdkf k~@7wOrwc+$;$!I/))-z&, 3WQr=9N*cN* .3G:epQ-?d8 #Y#r`mأ[)Q2A+.[$7WF>K?[7fN|%cnV(R0?mEJ7 ]>;\5{&H 7g[U-LCl_h -+>'$HBe݉f0YKr0{> f=WBDQ9xH$h`މ{F)8׍&=/ 0ߺUoM&(vfSqwfkyS ۮz2vEp/8znrRx[C8#'Ϣܺsy]HiF:SޟEZɥ^E,*?qlr_ ̦#dU3>E9CwfS~\3;YD%BLd YFjG #iIF w`׸v5$mlk20bj4ԈNiXT?IB烸"X(E }AWKOEH@3LĝR''i"kjf?¿S۩VKxDms ro3]iyoac·*-<$_{^tbB @n 6)EVt3ɢ@7:# tE./,r)fN9Sʢ|6EgQnyPaȤܦ3ȅO =N=I.^CٯF7i:M+ڙ[\Aځ'ޏۡ$i夙 Nf!}%S3* XmRi*m;0 ^B?6ݞrn҉ oN3)MK@+nV<?ЊZj齔c$p̄ C7EQBcO)`.0R9a!`JBtr+0#$mHT"G =G~z=QQJQS܃Radb} S|P/8Ms\+%[<ޣL'\!^;KE5KÀ0EK`әJV\C͉&D+io9&!'zyMmK;aR{^D׵GzJ(u{߃G*$7*a~l!Zf BʀtJjsCWPm忆P@:y两k5vش,X *cZ^xO (#$ƏsJt#VDdȟc3{\S apΑ:YxS9a DdL{a&"t-~tmNx^R s$sBQ#Xk88Kk`-f:HSٳ3]}I|O??H:>sӱl>OS"'6&c 1 $QYJS{CXʨ,SN)lÈcv r_k~ п|0o1OLױfLT?T}iv3ۙMkMrf̦&Zfٶ ZVΊ4m_1S*e)].:acMrGCcBΗWhFjbWw^Ģ0>vcuc Ϣu- ]肊_^g98ۤl0s耱.lʑ1V3-0yhb XzQn!崬]t3W@0jn\W1׵6UbtQͤ0 wv vLc<'zx|;)4L9M̦;rLyug6}ȐkR;ɓ k`y&a2!>EC~!ё!ę:Fy_3?ߙMAT~ۙMv4)+cW6]sIYGʦ-G#UAc&߳&!{F:aB8"@MS ͺh¬0WGTAѩMDZۡkvM;鑣MHvNz8cW>ǭQyr]WBǘdB ݙ)cwC$N3|bx>!x 譊+\D?2OٕM݅" a뿃߮lF48<ģr6 OB#=tLb\:5 siˎы)^fծ9V$Pm=*^2&_>b>aii嵐AQgE>aqiǙxyM=*-$Mg8lDԫO>lL*znaǛ*Fۢ6xB>{DLx=Yt<[ $_Ԓ.R-\ JGe6%ϲOdRnEƿt]׉CZRdV%8jE4~,d4=yuPdD$AFÀLʁםy z-tcĭk6I"p5$4uqThi G {eI6xm0$1pl'dC~5IjꕎC""RK3uԨ$E"Ԙ8dd-ZkOF'@RxPZR\ /Y#OJp9K֧ mzIxpZSLU^B(1Jf;vBbnшZLBvClωHE!,XlI?oCN!O h=9TgHV=G@ +VJ ܮ-PQ}/-vqWl>@1@BaO1`cP+%?Ei.4UC%𪩮«8'z C;U vU\z.IU=UU5sU݆T?=M:|x#\7Lz!ztyޜ*ba{+ΰEJC*p_:CZThʠ7=8? 6Xyۋ_稫;V;jCGGv-s% /%L ^׆x0xGwX}A#?lwzx Qw !-D=B4^B3:_v t%G+6YddhmIdi#{h7q#Cz}>b;{S;dJ[IƗ"_- =C) /\hIGpGHTI -IpEB2L|OcJ$10m: A'qĘf~.DJ bLKjK*݅TBi>*t[M?WRUj|ay L`}$nAH4Lt3 š b=[/2nc`\/tj0=]LUt=I4Em]<.*8weSHUG`CrƮlZtIYʦ(HI0o;#Y9:YTds6*]ԯLHBGrܕMmRΣ錾@f0/i6V(Vbg,8f;kՙ #!@-rO_mՙ8M.n]g=$n9$@aW6 %weLfZ9Eϰ'W[x{+%]AWnpܰȠTj0R2~s(h0Cp PdK9Ł%V8SJq^%|]R*y,z1㉆Y|ab,Ň8$W:+|K$\4;q;x+}h\vK]XQsʦ%c6$4qA!kۮlu veSR_IhnJ??B!5.H{OaTB0 !ޣ&Q)ꑶ+aWApY=|rݗfcꋹ M> \Q-Ttre@dn/4)G: kYdK@](pM5"*Y#t>[&֧}> M]_:gCrqF*f+`uRUC9d:ށvOS$tGp3팪j蟎pҧ],K%tп?:(mUG%t6GٞZ])v\. ~TBW vP7̽jhctAwq°b,wI8{L}ٞtس : ]5ک:e0-]#v:=Gd,>s\AS8jUC_:v_]'b8JovZv%tЏ:h;g%1I";` ӯy=qGrbRnXԾ9'hGqa813 }z2ojzДJ0SJ{E`NvK~ W)  '"8%;"SJ9Lr5ةS|ɮL(]ϕD G%H&8ȝK'~PAnT]T#qXbY,Ib/IuE5#d|jjFU*,JT@uHa5xjmo#J|0~3lwY 8|pA''>Ҥܼq|8o,(rCNNmRn=|2z?RXaTV-.DǝPL-R'~s_w#*RJx8KM (042X%tJ+Lhdu"!_"G'ѳ289_~hl5qK.5%bs+GC>2 bA> 0#ofՒeڕN X"r+"c,!fpk2 :i8-"?!;$j;ecqs?[AפUP4PhkVRAgElPU|  E"R.PZ ROgW̞|v}Z3qtA'iՓg/ LYӫ5Ӽt3m;/Ϡ|+* J_^y +v|riu~`'3WhEUjk_W^etc0cQw36J#W*D=\餻` rR>2ƚqxǎ۔W FŠ8{'ǢS$djLxr+$e ]t6@]\\ ~)Ex&Je|yviJ`26I'/%顨?-p2}W>J'Qf}.xBVɚ;,0?c{FSxG*xI'rǗż*f) Z3\0j,$<2Τ EyJ+BƳO/rBk|?ϹNI-UK! xgr?rPH3'6mZPJEzX1\},bt98-&S-(3':鄫H'3o@ kpL >k,VSjuACdt}d  #ywOtWRJ誡,v2E|׫,`u\S|AN+<>0K:L4EF:.MO9xh5 cۯ֝Xɯ~[)h$( "TEvcE) ȸSŰԉ`Z&1n+ ] ;jt t W YTBW-o[+H誥$~)t%:'ϵ[LsJIl%zm(^U勆%E~qSb+]ibk'p?F@/},v<-hI8^IN (9^IN:JFc&u|X0ϹO pE,TnP*p+pBk?C*#Q ]2'+ǫꏺˉxid\q9*7Zh&źJF A녒a؎Q.Sd(4p!t# W)31$C8٤FTE- C:Zw] -n G8PGX($tժ%5W3Kj9rrsSha'#$G~Du&A_KOLNpQ@&[.` ~O來TdA" [A:C-k+fU>ðp_"IB=COE_i}[?`u?us[t=SC~"IB=I}|qP|+mU ^umT^mAWtq & 5AgLR#uEv=슔L$rܫ6$ͩ踗f%"-R4I{?P G *bb(~L눡uOTEGtYa gȫZӒRbLփ4Fr[-jЫ|}$B7-W<5 wUNcpVSwL-1L <X=V?.b-U)>.mMpiM+>"E_9NN5{QMA,ARe^'eG~[Zז|RT&otcU>|,0(}U`@M *F!uIW!aArUDqѵ m<"wďe]e檷G 5Y{D}$2ʲ3/elʲ314BRMviuuɹN*¯#mRs|6DJſtaTK ^H]zwrmOM'ڤNs f'+%Ԥue!fc_~Y*rB]D6Ӿ2ko%A?qL22&\礼J\]JhI*1?U4li\ C`[.~% $wI1z'mRx¯\?Tb[N!;V|u:1 Yo(7yB>@ &9k`'(ksIˑ3vb *,jVSaq;#ۆU.Bs *zB=U4"hB ZơǙl Nz0`RfrD$'..7IYW~Tx# rEi[R+4+i6 }D$8aM:,Pad u%Uk bt(3S^ emOIn>YU!];*J G\=[ܗ(n2%W)}ra&͝jWSMʺܤu3~ *ŧrq8{`_B|!_X tbELR'V0COJ~Ahn/ 5WEͷAju?"Q* f4-S@F_A-W &EV bfܜ׳hRԤ#i6I"4_Oؠ5%% ܬ(q7fO˶$1Qvm"G@&zi^xeMCrl5&&JWA\h$.]s#+KIR@wH؎jqowEe} BJgѹVBd1a0Xy), Ъ&z=R0Xe!қ'&`*>$U1:4y噴A cSl4(U]1WB( lr*38edZGz%j*7O`wFb-I 0cj&A]pQl*y s;i.Jd~z֤HīJ;PLͽyGPH^[G-3[fA][Kn5]n]0Ϛ.e >P<!$Y{t`QdG<i6q]Q>ҋ E#je4~Z豝vN/qSO&CѫBϖm+oVJɭЕ#p'KM8I&G7R+ĘԘ:H109ME'`E?^kR֐ ]WFOh_'2]$d=6m~ul2T<:1$03%<$hv{B;5Sm7+L.#JGTy'Tϗ2Wp.՘LnRVv۔[Pem i>ŻB&X6 i^-i*{Xlzj%-adO&= )FdCppZ-R* L+<5 znNY?ncgJ?.d=VW PćvӈU$+>k C3H* FtiXdF/_)/Dt‡p #誛EeuS95t *o-S5JG˯ } T5=zXʍFrA j:ip[s(;tcK}5\%* 8;h"D?]?Bu3p1(ĖTx;)(:~z$R:̶捔c|n<xz#DD,=6+R-#AQVG5eRA'M\I5d=Pi|(Zz &!dDr:LM܇qRFǩMj8EE6R d~ᮽ$;"M lTZ &9JZTUO#(gTǼI֥Z9բ#n4)qE7qES 0l:0Gw_&. c<¼Oi1) u ZRgS-ΤoZ`3/1l^efEZ}%:U@SCfZ8*+@$zfH]x&k8cfiuB]LaPn&Z5:Ӥ-zlt-eH "믐3o 3Y7xblq|8NUq,KgZ͠>Qg0:qљLluk؈NL:iprDdp q̱~&1wC^>M&9!,+#6 b{Aň^{lS],H5TAk`}6[qwjp$HtܔZsu;iosMZHfs: ?ӈ[S!jMChraԭúg^ nX'@KvοY+[Jٱ: l%eSԏ$D.~J뻵pϾ$Ql\ #Ee7!eZEaU h/2ߛ(vy'Gyx` !@δU!${#rS5Mm$iq5gDuE5[ 1_8LƭM>m>Ϝ@$Bw&[`5j 2瘄W2Qs2SS_Gl)H{9=IVVMC;P/L1%L?tB$XYMwP[QOQoTc57t ŷ8L !Of4HYf$i\LB;v4uQ(p }s> d(}һNBha =l5_hjO., 9t/fEA1j/>FK}򽥥HwF?JoE7Fqҋ+_/|8몸{0a?B0ܹH #V']=]U?)u>\O@CYާ%'jH*A*e^mg ٺ%bp`pJuVj>foޡL1+b@04^;cIl C=J0 B5t$r90҃}|" v" ؅UΥZ-˱ lQ?Khآ+.l,5#)ٵYdԛҶSS}MiFh'dާu-9P7oz,yRV.s)yQ: [̤ݶ̤aθߤEM<2b +E0N*F,z~6JidlW8 f<촘tb2!=Ζp+L Hlbn F9ILʭ"{2.uL7)ddp+7 hجB 40)71kĬYCҵ&uCbjkVIGdڄG+'mH|oCxx'b~b$@/B?s/ R~MtWmji?8w n'kRn4ټƤ+{%tMY}D*Q%{Ԥκ= }}E/Jp/M{Tt-"[Sx^)7i,x?=}CTi`u|$W`=C(#LQ[#I2rO @On4Հsn#J]+&ʈj¶VIjLp,YY<XoԾʨ? s6BGee(gC'ǓxhP)H9SU0©\)= +#ҧwC.Ac-493/!S& [t-="yЌX 4c#}"խGfP%NѦ7uD90kL,QPEֳz=*)k֣1H|s=4¬#X>CO*S@60Xڀ;'`{B?Q=99tF 2d^wl@aDM1Bo-ٲOK92n)]6j# 2GGF\_DhHǞC vn5] K77Rh'!MbCJ1"5F pCĢqOs3iX/X"$""=cRֈE#㝈E㓈E?Ǘz6h k{Xݒ6F;YI%.yVk:4\Ony q}O4阮o_ ៳¥'Z#͖ Av29|tsJ~/>B4lQ޺S) sE´?{CCoߦhHRf Rt姇9xmf#C%~ t̏Z|Τs-~ΤQeQT椨E{'QV)9Q~>JP?j[glsGH%>xnV&Ց&b2v5~{}ָY} ߋ} \:;/Ct$ DP+:?nw/PJ7qW_ES&֤$-ƼIDR EA4ƳQ*}UGXޔ-ڛ-e/mԎl'߂8 IZǼʐgj?ODv ݭbw$lGDfc2Q]FkxucHD_}`6MS;:$E*k5 !gbLBB48NrkOiVS4VJ uw[7`N5 ]g3q5- oeGQ*mHGEADF+h;W’򌽕3R=&~MMUz|M:3 )6nN8VIoSϾ))$(^Dts+檶3qơM\x2(tR8p 6H fI թRHa<=\,vz>H s-hS xbhħEkI1w021Nm.=C Zg)>7Zv!?pf;S"4~㫷 hx"0p}y }d^6dϰomψh kn}`Gb)=GB~0QiZ`w_S cZӧh52lM2mV mXF^2îԵJ"C|?g/~-ؕ`=gu7Znǟm2Z۸n7jNlg6v&y$qpgo*I:շcК9x|6=Dc)XiHs/TWF)NxKLaLݿZȱRt7S/E$Jpd6{9ᮯ1-\AZ) [UZn#҂FZvn"+\GB DxL92j Q^h5}o68-^HN7¿􎗢ݮ+N Ɯk=ʪ.RWQ+t<:rW["D/l󣉚/Swp oL!Drvdvnm|#) SHQx*GnD$Lzh]OWxoMQ{F6Չ'X^ͭR`觿JL$VGGZөsa-~>K­N2hu>!P|~[NGqOz #|D6xQJ5?$F5d"L)LUxG0uhI9Cp MzJo92:^ʈ/uL z',a!kp9l~GAq^M"· <뗬@vu[npiMeBqPF +1QhT|$2TxDj%^(9zVdTbqłO`&J|?;pr\&^,ӆY mkw)~3`/C̒E"d*f/C̒E zm[=ԲmN™ԃOS0c6K4o߃Q/ܣ$y󠆪ёj$Dz5ޮfڟ\n:zI47?`/7=9& 2.nÔ|,<$}o61en^nQg!օ`"0rAW  #ÜL4ÀX2o<ήZJnOtq<'EUu'O Uq'tA@·R_wq/ߚhEFYnLڷܢs[㕌Bh8Tk ÚڪgжVTQk浌L,}$DrE'6.jZRSiF<'}ԪBu) cF]F={1J~/FF5>C`V (ϗ}CјlVVsK$s;ds{R)jW>9.慚CKYg79e>C~dd`de>Ha2MiJff3zH2sM"D_pL }R Y}PMq6dv{]/ڊ{j Z`}fLԻh' E9>fUXOi_ LExqFqYjt8,`6 )  < &POe7ͧ%LWnGKbJm8ͥ*pDs۽}n? 7y=x1_ÔbyqVѣ{ה,n{ޯ*wJnb(/Ƚp^VE:P2ቝ.^׆MђvwҬ_=0iKXLUi~|2eW2˘f EryD0=Il4-FǛ~G~$WNpowd>k7o)6'܊AoT_n;ȕ׋/[W,pq+,Mjt^a߸MmwXT˳c cnѾ1w1ל<2M6ǃ_TT4dn3Ӏ߰נ_h&@`z582f k*aghhNZﻝ4IRtk=yvS 4IA{{XӐ6BPI}Z$)3~DZD^zO.;{J1`2RuǙǙq rJYD"q~Bz;gBObX[˔'[G`kڀ|瓛jRl+z "׵zZ]{'}LnrE赴G8díz^;z'-D_l2ep _63ܔ9)I0 -X̣6U?L`In9gIon. LF}zBT8\6p$IM!@ۄR9v+6~cfWk\DO"4 +Cۄ47hq::DLpFX|,;ĕ*^lqs39Toި-;Ԭ8F [A[zpl3t"2`OGWM¢2d]"._%Y w0oLf[MRʉRyA"-P # w ah:!$E!Qzq٦ww*Gj]RmNĘ}r" NFsd%TB 3mYU/ՠ5R di晶^ƼHwsڻI}."diAyd6 nC|(Zɜi+,rn\aU ]mv?T6 2N7)we.;B4rS&J w{\b;p~FXA9 Gp 0O`}e+,9Ǯn9iEEmEQҢpE/̑+-Q !Nh7ȧȝIC7'Y~[OmelH/ӄ3"W4˳e`s 5g);E   &l0?`FSl986!6JVUJKsWZtM9VZt~4zXҢaEoݔJJمJ~+-:6RSY>[lm~m l{/2rnG^>MWYUx#!U9vS{,:hHMim?h߰#HeH+&0nnʄ*DBN>F0?`fX0Lj4P' ?f8X2>]eʆnpEEǺ)'}EQڢEqj^ďSV[X79<-0]mǹ)? .@Zv-o;6M|FV$UZUiߔmf8M(/N?Ku4 I阺.e\ڲj]+SڢZ֭h)~YmQ~ܵڢ-:Mh+!̓ / nysEN$#n h6lu'V~0dbM'h+?|Xu2auw '=0/nb;Lqvp`ͩU8m.'.:v-[fm,yE3@{hEG^Ï5'<7eƢJ)R{5sS5 5 4/ϲoͳ,1$jvͯyf$̿zf~-rCL8Ml:!6 ?`;m'!Ɯ CPƸ5l0XthkX8~XcƢvZ= ͣ$~rJlQtRx>fF T)&E& ӣcٝSD/P*RN_3>DE -Lq855KYkXk,O:l ݥ=t{e|h&=T7mAeqL*೘2|jlG^f^ I w8՞ɖЋ&pjnc`9] w*L9S;D 3d[~-ۿfn;~.X/ u_mԈ=lS=L0;\#5-`2f;!+2WI(\!kP-ԦkH`uNy{X!͡uNc6ݸ289_V_5kσ "xlf0V!!Q/3?_c^v4;6+t_#*4Nw䈬ENSvk71#ܚ%\#om~gߌF=~vwM6_5 1ڞU1D7:|PɆ*Q K9px2/J?>JPpXuӚS^ }ZKrZm69:k,s`-RZ5ZA!og҇tgRئ ʧҞ%җW,/8;zD*a_)م?ټhw`= ឺ^U6Ҟn ʦX t9yT9UJvHBh] k ۢjDKQ_,i$D]1uBް7 mrG#DsErU]%vh?LBTUXNEKfzBUt]2y`K|\m)Ci_ 8lhEJiAx_̞ߑ…Ғ/k(x_ad{ЩdݛIo2C KR10TExouRbɂ4~o B8YԈuj[=> 5!,X%5IQ7Q?،(v˦.K圿ݢ6pX1T|WH* e19r26\(F}6 $L.M7e}1t{5dE%{ 3iEF iS iʦǒ`W * ( ԓQn=0PA6h_CTKX!B Q"WnH-fHm֮$-PsXo2TvC9RIlM0_I|W2ߵ"ZɆ؎X&P|j3q+=j WTIҸ.l'@UӜ>b2^cigip2rS WW]~z^|Cʑh+xVH|- 'dٺ)|UkyU:ݬgɅ W빛z)^\oUrAREqg}F1s17G"՘Eݡל<zBYhv$z Լ; +m[IEWӹZ!_x,?4e}IɹnOJw]  5ᨔq7\v Z@D;Om4! *FuynB_/w Xv*FuJ?7e>ݢc$Dy@=ݢ`?ݻIvw Adڻ@\{mQ8}Qozt>ZV_Op绕6){>4Dž4J8HbH7 >V&phZJN7R6`%X RqU<' }ɝ9|1v/K3I3.tW"Z̷RJ 19,B<}L0mXV#l1 1c"E o 0#xuE?nQC7n1Q gs ߀ ) z>9 z=^9SV{@Z0^TD Z3(V]^:-*Ԕ$l>M/D*4X =qŅ`76,5H8gH9;-$qKxF1awonmtmV287}JMb; "PQ.sP7&cSM_0JpaLn=[B2j:e\Q򎡘!F#9L1]e canʭNaz~d/)A0";%z - {ٞ<ٷ#7ㇳ<#&p7#%L3㴋ܔۂ j.BAr|" 6[0â)tNaouEyâtSg ab~9 6}׮6m5yab*>~vՍ7#-@[=CZđ7M./p#ݔZw~΃04lU mMB73;RhfmbٽPq8m( ]ssnmSE e䪡t:4ސ_ت!uOu" $Z\i|*N*o-af\FRpJ)R&ӣ\K\~z\8; ~"՟A-su)7<Lg.0@yߙXwCX}(ޖhѬ t?ce Pq/,yM].wSJa$O7ȝ+vn ݜծczC5d0^V짻k:6 GJh!~vcQU12ŵ3%Kt;_wx6D/2T.tkhGM4Xwp dX %r -RcT]Mg:vXTh[ǮSb[Ny]?3tyޕv%M%]iMy%Am9mѕ/]w]+NE MC;*ePNŷڔ4X0PG; =Mx)N8m4, ߨ(ZKo;fM` d`.9Jd:T"Ɔ'ؐ5QƆ^Ᲊ@&{۰' ķ}NnY>śpNtSNRNBJ.˖*EuS `^0 6WGF)CB|3a_F(H2AY62~[ beXQkt'aR{7KĊ"CO!Zl.cKl$J }!f⁗8Nx3?NBsCq@*tbZIw#IOnl[b7:|) B/[* p΃^7lGDU-'DBvqo<%踐r rtx.GN;TU!J+W+IyNIHIb|D/bcrC ScUexN~F,L8kk9&s/SU𰳐;Q$10>&[ JR%V ̀MZ)h/ C?U|G1.96 1?c›y '^i?G\6({\5vSw09D}GD1<6W>;*aGؒ9H \ZAk=!)LQ ]] *7aш*L臃z<7jNӼip BB34;# r;A> B3 454VK| 4k|p PxKyzWzأbh r x8*.cʺxk2SSͩx!,[V7bhMT7aò+i ` «]<ꩱeT{IRdސ HȿD4@Fouݲ3B/bL"&= kiMKiLS} @=1ݹ\̶!p*4n0N(-d3fm R6jDh$ AYdG 15seE"$V|-$[D[/ B*(f,FHk d7]j@8)&8V%o F9 LJMF5COCyQ[D,@dIjHB!7Y{KLHZt̀gDػȸ~Gk6:ڍѿfLtgu*UGD ,cGԨ>aʯěuy]`hYaW4lTZg RI+!r{ع[%uȝUVV3ܣ4`]I7 }04_o>J4qCȟD|J[9 Wݰɇ- 뫕eRD,|j$bNkކ?9{'W[Ȯ!?.nP(h{(}L QQ-**|Dlכ!d(b"nAA""F@A 7n7** yO,Gj[YEDjDg4D(z}AO1>ZTAԓ%J 0eRo +yC 7RTP]>S;HJ#A !R"A=Y$-PFmDdzzT&.5;{-/6  {U|uP]YTBy'MS8Tʷ yY$E*^UY G&& a#yI6}e# :a( ü\qAcRVYEKp{^kOu,( _b`#5E)yWoY"H^ hqU|wpEL$%:p$ p%HY?,w\]S$T2>uٓ$w} !TXS_~I1/:V?TՋhW\Og. &X0Ŕ( Vk \@#}uQ#1^oJX׳ *+qO$Ԯ:ÆHT z'GK%VzA~SM"pxr+[='~=Xm]kK:4pۓstO0OW4;Rq4IacAsTqBm))ސg(E"I!jZg';<,5Y ys(/dpHx"ސ @4 ;BI8uPh OC qJn,_H .@yCW^,DY?BKֹB ".[#AeFٔvݎTz4lV[)Vb ;mjTNՆjcB:3(@nVmF(3t"~C0m zM[ zI!|>?*l1Q[8rn-X.j-lQ=8uddIq 8M-`䎔RV7a X0*BV@R@CDN!\J ,fJ2; ֐`opІV l-,0M*8S<ʯu0GU-)ư@zf>,\|Y0jd CJcF@b)%>9CVdMY~ld=,[ zFPwP%3! Cm07$!75 ,qM,>/+-j>qJ*Eu!np\uPH0GB #!FiƬ1IyY aTY~B8DS5VgbTj тLܯkvwb0-7+-};x2!EL`,tC5p)8YRX]zb0 o ]B-FYZ)O,xeCS.6\7ƀ_}He:n?{/̰P)}qFԃ(~#?BSM-, hߢrG(-p#~`'(ۈG 6UڌcF6G99SZ3#DE4;|NaE_ݱ-ٝ߫1dխ,<%&(5eY~֤hGJGRF}4k"#$!( %*$GG?=\R&O3pE _z<&7T F:LEb\5. ѝy 6.%q~W jWu9R+=FI<,)ط{L_B,eH]] YܨCZhc]V]fyBg9!ˬ.m:P;MomBHthI Bhk3UE1&~϶迦U/'}wh%^k~XlWRzHŶ}F^1p?q+z?)8CC]!,c8X*mY <<h[Ԝ{lK ])~Cj&77UUFta*~*PUt%Ov ?T?~jL[]6>>j V#![y V~aJMl&F46J젠Th|#)T aB)/|?XSU J,r5]IdCnSQՇnއCnY]~mRkf;N`C,ܔ`ާD,: mFiNmaa ̎1kPȂo'Zwbs] Xx6'-ALѮdVM9FF-n^B4\jA ,MB)\()|mR.nBE-`*9S$Dp3 m2՚qm?qScsrTES$"_kNUq~@J/*q\ެT1:"PI=^B bTJ8;h F~YدL % :Hކ-J563J,-k$E,}a8I?ExG L W6HD&&0`9ø4fV0 U|{w^ģ/mX99^W_,8z>TJUj.ץ W5+U-UJ\ZK56/Kl?BmD`xJGQu BGhd\cm5mb{gN4'vڠi/_OOnjxCٮ +?UOa7{ tƒdJVoovӏ %76vө3 2vӭ3CҐhl93uojR;נE=M!z,|޳P=> ?Δfz )i[L7 gKI7TͥNӭHC4{FjU=t o6k22)nh[ʁy.]fUR-Vn4ZDEdEҞ{2#U@,4.FO3 ;ȤFa_Qw4bAdR~\E&}7I'Bql٩E=e{PUWء#j% ͒.?UD\1'XL 1k%1g ŝkg1O.zڏ)Vf`\YʱzmY q{AQY/\c?*$e/eo/[NeQ^Ύ/knVv-="r`kRCˆa;.v85&I~0lnsmR^j~u#ˍ.V2f ϿɤMs 2#N|2Sɤ2ɤ3LZ B1jm&ukfRϹL+vde l%^-6(fRUl.v;Nxc6*ZR*?Fd!@7 GEo+wn*3wcp;!e硰!?06 ]uzy8^ԺۆGVHTmvyPXհ> cm&8Iѭ36z>d^(%`y8XfyDc-ԒGLEREZU):%^h[[\ŏZDgk^n&qheNKL@HEz.5JOrK2=QhNu$^K$pfƞh~aVȢRQ00|8l>*@. k^$Do1Wh{kx57) Ռ;]gk3;$e@2LoyFI)xXアu(MC2Lw  o˰Yz[kk[L _) ]6ڣME]CŇIЭqdLfekDoM [wII">RR;hHI]`91äBgq`cџ;hOKt{Ï,0j -ОH rL[(Av؄=t5Bukש8 󠃿|Q\_~"X;UY<`H:7>PŭWZŦDUd_6zȑL0Ì\d!?F%_/]\aR%&M~ٟ_bK2+Ӥ/k/S:MIм,ν_`qJ'DkOh-\9l{N鹣7➬k8xw>ݰ@ Q1:A9U4?}|4+ސ 1bڈ5^^:d"2&^e.([}a'8YFvrݯJb"K DK%X $2MZ8X>4)Ad߀_*[ &ݼ ndJ%SR?A6L"3?ˤь " )+2-GZ7o2}_3OVTķzU3DK^\'10hdcBZ=N7fχ4fk r,5Ο-Pā^06  Bz'҃^R5X͸& 5umo^aBsO!B [g%FN @;9k#.2A eRJMk6ZhJtE/5V}8YP6vfR|y}y_nKFP搕Go͂/_X),/;JXؗN:DDء e,4RC6E,6XcK4D_%) eҔUkLZ Y&eaEI|geZ5Ufm5Nu0Y%Qj4Pz$u8ݎ&rXj':|rpXeygaid /3L7I/ aqJw6^ggmRRRX4h|EI4ȼ.ۤo5)F^lOhD`vDM,4Al. GF[hkq'x=ٛF%?x<SFz[0Hakx6p͛暷l喦s X0"NM> &$ϯ Mz-̥&7MuMB@Ir@,6uX "~'u~73}p)=FR|?J: 4xK "ʜK翕iK. /mcmޖ)ޤzPA|},FlOTR]wd ͋ͪqwͪjs*]( cWKOU)o~TƻumiVh-T.uC=,n^5H\MH.M;jJ߄blwBha,=҈>6h%\Rl_c/ۤi7w nR8n҃nҪwqnR VR`v~|ݤ5 M*vƏ1v> vZYvv â0sݤ+ ݤn+ݤ]n) 2t:,EU66eJ}M#za.t҄u[:ԅQ%4%?AL kOC/vpaYǪ5ѓ t}Ia gՊrJ1p)κ? g8 ~Y?L;[Ő$';9ǩ4CM9!hmYD%Z ~ Z7u0~ ZgOCV$x>O9Ḇ`>[)//5.)$+ƃ4XbV7ȈLs;0Ѷ}|kF:7@ [u[rEKIޛ@lKm0ȎJ%WK!X2rJ\yANs3 nU102l(S,ɣN :FmJkԩQeam(~$5JY6._( NJ==w#C1:ăsץA?tg!4ҾK>&h0ȼaҽaba.a):W54 _f?BLJ)Z F}M<_zcdR-+_qQ{Z7BjӷWtuyd O1E9,2Y7aK*B/7fM9`ϲyBDhIOZ45%{ma/tOԷPa%UP, 0[A9V}8r4Q[m6( xTU@Ž85K)F}HIYz)RDe 8-a{X$bBSj[ĵ}h%-%ZdkzI9[-blFEjH`o^[`s.j=o]?O9LjX%:L sä[ r|0\!Im1pKzH8Mq %ӳ1n xo,,A,-vAE-ct=Mʆ:l4Ps[H*iZD,C'4Po;CU b vzt6rU [[D#jmúϳ);<|v8.riRg yK*zC 72-PhNA9^ȶNӤ"w49Y\8+/ϭ8;m0({ViLv:b>:qRdS. Ƕ_l葿ZW-`ANEzI}iiuip4/1q I}(#+u*|Iߕ !{nNEuͽoeDUWe*˫JN̗5۳I6Y:^ai|^ Cձ qQu $9ejIK1<675AK#ojnR,2jmZU?ҸZmZA<j/%CG!`+߫7S#zH k{[!`tAcG ίehkиkQE+)՚y jwM|-o )L,V&_|9(Y޾wLW W~ +JVo/B6|(; w9wʤ@{x+0ȬneҼAX\RR/QXz]*Ϭ/S1Jlc%N Ïm۸'c2N̜QJZj;b~~ƸWCzP^oY-l^ٶ#cdE9& .߇>xܢ̛k g%dG}1y`$"'~(jXrhP$VqhBk~ ZҸmAvK%ޒO;c>zyc`AyVmr_>-5sl'w`+MRLRի1b5218?9%F 'XC[#kNLC .=(#t̅F̵/<uS;(3qYDўC0#M+0ZΟ+ޒ R-͊*k)~:$w 7"ffà֣2NZL=Gz;-,;!޿PA;.ܱBfaY!?(re'=N,;YLZEO4aM? g»ȅi=.d-b ;bQ6Zy??d~`ʓ2Z$<)|5So w ۤsߣa`,>)pROV,"^|R"_?lW&;+SufNuuK';3]7^5Bj%OjjrY.555r'@T{:YY.ZiQ iV\,XF U%5~ǂTK 0ۤ.u]@˲] v{ >y, }?Pp? oă%uiwRzĴ%nv%m8gqE9Gx8]ze6eW7= TXa!1q[cmcIORsuE9RR`.&T惊qH9Kp̒\-L';v)m"oa\jh~`YTߚ_{7TauMKL uۺj)1Z&"$Ѿ1Uƺ%~i;E!z_9>D4x_{s( baڐgTs8 uWQK\wObI2V5^8IZWt /Vdŕ`ؔJ%jԈ=d#~`;NF߀߆0"t4dsWRxۊsnttR|#.|6llwG=ORf6X խI-1ͤOqNRb+Cոb CIOZ2"Y˸OQ!Ou%~|eEA)iWJ=,)~SY ;1='MB a'Os~Ƭ8Zw#ۏJsjkxR=?N9C=!k ex>j8\t_o?E< s3:ψ6ai%"DdK^c%ʰZVt*X/ Aɦ^Ne0~\;d-R -=-F/#_4 vgâp(= ֔ T *xSJP,(+>Eq`{ւVd0+U.!<+ӭէƱ_qgB3]dfLmH,G_U{:~po*_!EU<MEEUWqr൧'V{IJp t%:^㌸YAǂNełwx14GT4%CKG,yi31[KC4$JGʂbFxatt$3UQ~Iu@G蔑F$mA޺xu2toRMɰQb1']$Y pj?Д;f9i.'Ewш cVoRPDid@ хM6oFIdIׇE[@j. ;ӹ:Ɉp[;GIk|:7{0&Jk~QR1e$a9Eݓ(gqJ~/;Y ŁG}p<wSz$ U^ӲGbX{ `GXUƝ58/Cj-% "(iE #@E3SVVZI,R0)zxK)Zpk?iR&BlR 礕+kRN,tTJ!H۔"}=Pr|w˖0PH/R_SعS5){H^J=sbR]12|~tJI)ӣRQ:6?VK)t?DO-P|OH)ѫɶO)ǧzSJRF,vrJ1 G,T[YF8Oh7Bg  <(Hޏa,p"jb]&WNxeA_>@JWB $V[p@$y/"RHC%y ;J,c$0"F NQK^%y0^"{ExL27A(yo!Q@,y_1Xbv 3"PL&xPS4g7ȫe8]x VxUuN%CkfU2 ~`q2LV|Ч,P%׉%{6oCO.)Uavt?z,εS>qj}qU|Kb88ۤj fEMee55:tmRJ}#qF|oi;s7Q*up¼}ȎoVXl".!n#yMB/d1^7 /pQC4+mxlu 6ϚY66 _"6ٹjlJv6pqtK6$J TEGǢTj=%EwVEU}T ahz{Z?#azj7Jr¸ջ*k!Dc=s!*: \2m2Z~A(hgXi?AsLǰ zԩw(X3% >)٦eFmsl:_ %~piIF6sGa4~5Wr tpͨ"z6({,gvNcϏdF{+TM!ϰ}{̥9EFXSKp*艔?n˙NEyƱl:^};L LƵiKS@A}i}xa @1*َ㒪H NCθu.TxuqMa7UmCt7q̣"n{![W)|qcI`d"'؎rp536_wR']䢜.9c};tQMF`]#DT%lnd;d`sqeP_prB(y8C,ղ+ZK]{崈OԅeTE+CR;2d7 ;qZqG&znmqIc'bx&")b͆[+gIl_4i@e7 ےUܔw.)CސX LvKvޭJbHJ`+0!yV9V; ʑqeaR%u7\"d[g( Gp.RZBZ{ީ8@qd'\`Cꏷg=W1JX9\Up ܴERw3̴`E% hmR ʎȘcҷWt1aST-2C! Z fER5 K1mK6Ȫ]܃[UWc*[e‹K{8'p?6.ʹ2C|MU"נmoڕyj5D!s-p\zO]-@>&;:8tKciκ~ߡ'_3He0ڲY%axцlڠUDe+q Զ}D Ei.g)&ytQ^#K4e{AkO6ׄq\ʌ4»bFz1bH?юeo罄ś̢*;k%RDY`qvqȶ^!4; F6/X4 {#׆ZnG7 .v탪BIsi؃чvsɪ5w$rޫ_uUxR-嫲,MIA~M R, ɵmSH!3+??^8E!'\dɛ'4ܟU'+[:)x1 FUhy|T0NUU\ɣCnRUU_`J \`^|ܸ3֊U@LL,Diύ(3FQD>_n6DKI?DvmR%Eż)98vk}M"5-'h4­uR lɪ(8=Eŧ*nUxTQ#ET|}PeBIa[a^Suo s۹p0d΍rBU%NZr.Nx ˷vIoc&u;K w݄7]()30۴h˗['Eg'szUpKۚZ%cl}]d)age+t%:akLy%_Id4O9OW2[t5%ə~7Vfͽ 1bb8lud=~ ){c׼1 [#XNdZHitmr*sA\%|'5xT=ϕlD%2c}΂wt;⻊|W @X[f%V%н1pR\Rl+LcҕD>j~XR@i9$z@dGBn:N u1MiK m0(GzA@D&Uը;qk+ 1$ P"zʼnW9  5Yh|r\7lpW|Yvd2̛ಧ"B!Zbgѧj}eސ7PⵘNL`Qg4#uUJ6uL9g`=6Yj%V˶ ȶˉk1J?»]d{IA)[#)Bnt1FKsjзEsSqT <\/|yK<%f:U:j+ q_W<,)3zxx@5$go- E9<0ZU ?cFֈuSM;ѳE|lD'91E9ߐ"|u|}$VJ]1+IFTE۪r1k㱕&6I0kRwC1cGՍ" N%}x6I!wR~TR90JLFg'RM?Xv xM;,U.V^~7x6`Kϫ,gd6˸ P"Yjʊ`e bo&b#A%R!"\PVXV ½<\\Y *#D1%۔P!+J+2m4Y#TG|nߒD q靴u'_EJ7M;wM;u)һ4흪mL^ E5BS2$y{039/ PQsƩ#Ec^!Rz^BC3jK%iFM6(5ɐR/-5cq17LQ;}jL2; Rd&4=^@WYOc'LO9&s8y~]CT 1=xDQv_UT'KOLO 9&4LIM-m!A;~=,idPf4JXyidHy18tf4F0Vzn7Ә /}17wxL0=7!NL04g!$Cާ0PMtdEB^U>Nj0am;n.zw55L1pbx R Ǡ5FC2bkdP-?K{@I&;싔7k% mTZhQ4ƨIՂ`l~ A'+ɴқ?ɐZ~J_4C;ُfHYa<"Mvme[oZn9dIz*0{#=!v)0g_IUֆ̅&xE2Q3yE]x~6?ޤBVR^[oRjv?2Jm' @"2To)jՊM4djEIA&M[5xHhBMrD~XdRi`b<&AgSӄB2 808"LNl1ZH36T@wߙL2syǏ 7T|_yeZQצ} Oy LNʶ}Zl5}Q`Cu(9,ɥnvV#(uI.5"qI.5tS["ޚmI.\tbb3 f.ͥKwQKsɃg/ͥ1Ⱦ.z|oIQITlK3uT$ٷH i.GsKGPRxc+TlN]y-k.Q8al.l62\^f{Vݥe+:%Q'wI!Gj`C5H= U=1u.W:SR%Xv'$-3>|IG('A30̅$[# J lbƩt"y(f<L2x6TLe &LȜ`$ 1Uvc]h<Ə30]ow˦9گ34=QiotNg^iZ9ſ]wfDBUr9q X' )h $ R_kiS"N+\-ުJ&qxq#wI.ڈ]껫5-ϥFԶ͊\zWȥEoE.Y-ϥ: xsQ\gKr8_/DKr)$J[h|+c)Pg4Ϗح>#D7tQʀWR$+>/#wب>,YP>,({3xCy53]׀S>cnc ic]W3 ;XX2Y<^RHBfXi4P/,Dn ,וB5=MRylDvDd93#j̫a`N^*r%HD;%`@]!1DTd$EE3<4Jv[JbC2?0d?RCN)$)YC%cdгGH 1kb&QdVd4j"YGZ@X+rd%G"{(R(=%E9KъBR$1J߹r'u]X2j}1}_.cG9!-q#xaq]~n6 [`Ϗ7"f;tdid Y'ܓv| +M)}qiiUnvf&fb=jMx:1tPq뇅4#sr'K5Qlm 0G3?f4KƥcxV׌,~̼df0S1WLsTq.*Jiq& U_ddҊuqD:r1 IY֬ bWu7SViju3U(GWR\V"qb\09 ]KxZhT%ZjoI!fȗK?"B7DSAebC MyO/,]d$wl4ISܠR`~yIEIR 3& AW5Ĭa@PL,4INIQ AF$?A@JmJSD"^RYJ]0E+Y5,"J=Pj._J vJv:4c_wJa[EMLuQb7ebk|W5+Ԏ&50¯"TqS%X>UB~?0aIXlCI%{ Pg١k>QoV)d2˓u"A`JˡΒ f9tZCW..,cx8P{J 1ˡaRJ=,>*uRWLƉNIg)U8VI5,&JPj3^)GB,Z?A,n#),Ά(_HbS+U(U.RuRSR%IRYJ6]?ҟԋ:IQRjtz,),Xb{zcndhLc{nW}J &|E=mi7mU!bacܺ& #.2o4u߅󹣰Ԥ,֛%%Eyw0p gڱ/ƣTg0jZ.ϛGiQDӲ[gH&e9IA^P)#o8 5GK/x3*{A*C]6sY™.H!(m>Wڜ mj߂ o sgilW軄=%o[ab[\ Kp5s?N "Xg%l@ nd-M\WaGgX0*R IPn+W:K+JSzAhJU- wT<f-&Ol.Z.v/nL}L}^m:_h 7jyq0/ڞZ˝'=kvg,0Ѡg؝r cS<}C 8ɤ/nb2!N:C;.0~6n el< )N9x`1= ez8=YUɊړsUy@ y} a׈ /= f7qQmbt|7DZȥ͸\]͐Wwm6xeUҺk"=X_{5 ռk1 0iZY^;\2i  JAݢ("W sЉKr? }w|TE ݐr 5XI(`QPJK6ٛ]v7 Ԉ(c% %tP #EQ͖7g9sLsgf^8 )\8+I;]*.,+N*PNl2[).O&lNߑ-3[OȷZg2e' 6el^9]9%+嬖]G˜$_OY-s?N2;KϷg}0نjm0EOui+CS$l~rd5*Dk6by=| >D7l-eEFddlXh]~L024b̨a S֫jd0@}ـ &$2E>swgٻ:$s+D!kR%\Q u~6$܅<Ȋ$M@ ˤ0YY 9d&嬀L!odNkEbCXK9"~>n.  GUwT+u-pCY WcKr“4:u,kh RE H\WfI\Bx4/lA PeJm @٢nc`f+`aia+)0G;lXgFR_~cĽ < yJ|[W/Ϙ#c($T!0G3As?}ĿȨH>Ȩ~PVR`3)I!ݏ$ui5z͡^ʈ78ߌ? 3+K%އӅgdܥ40㧾BRKc,I|8g,DfٝFA햟`U 1!ytCL3Gv $n.Egh mTw|Բvm5}%)>zю0mUZjEWŬt"|bX~ ͕B[ 萭aa ð_f+a`rX8?0,6O Yn|5,#lְvd85Fa}f^X*$S#حav+ر+`-叁|8OVK,z~ V2[ 崲OӞp|kW,w|崃,Nk'oOYNk>-+{|nO, [ 4ajHs|\44A~R#fMV:S'LDNY9n֞YOĬt /$s`njf o}N>Ce$9VK#7'fVQ#U&܈7qBJDr^ `kN ^j5(!iys!S y8Ǝ%j9mBer?XmfH0Ao0(St5"8Sdr5NDE,vv^ cbs\^,)gG4h5W CjZel}FJLTQRE-[.5~Y%BzqVwSdZMZ g'p@Lr |g xMǢeU&D$Bw޶|"!'n%"c} k.MR*j5*/EwAն2)# ?$# FCWIwcgRJF r0 -ˠ1ޏ='_"xl]LolDudOԯ7NX"}%r@9*QD9ol76٩ Vߘ 6A'' ATY*W n G4X kFU8 :4$ # r' DuLT@TkDK~mOj A 9]y\4A+F0Gl%edlá3i-GۼN7Ww>SU'x_?>uʾEtY~(@! W ;h<,﵂ݓKx J&lv"hO:H{X>7X4pM,( KEYMJyWP,+Z b}J8V-ZO@6x˕2G\Uⶫ:s<+Q`0X>"+'IQ\@QG( JU5'\2>9N`+}=I>{>?'2Qe*yҪDb#`pUYY lYem'lcc Wq6!aUf#m^'l6*G-|ԦUԡ*A ii:y䁓B"^Ǽx|iҫ=6vu2QeFtuN)2-d\+kq %=7{ f(qo,]{(ML83Y/C0Kɭ6$NKIחraY'`SDzM_Iepu >Sn$`d.i3wxW_9y",V|*XGٶz)W*ht>O6V!Pճ֪F>`}e:DnﰀI9)F}:gWcPI2]jM6r:QmfAkסb 0RW1H|_.HzɃ4 h/;zz٧巉jmfS b쇫n>OTTIhv* v޴NK7̘iRn\V6wd;˸i_N1?,Q S?x=FU,a(=9J_+XB?8{_p]AUmIʸ)J"0]]<qW*.uC#xۗk?hҐ M k&K0݆)3k&x+0?l))V&\2뒮z9g"BAV;CFp^)\P}BRH-v% ̡?vPf]d`T8$vi f)UHK%6J \ Y[>x^qY=l3(k0G BlE HI"CyAAe./>3& [zkxMNJ\AqQDZ4 R3&1<(JpH@w< S6)t|LZ'K0ynt1S.hK+FWF%am([(K)6$/%3I$?{ pMHCJJ F))8IAZ%k~QZs5sh)bgB 9 g+ T^Z(jiD Һ̴1CU>i-"?Nȥ%|~ci}|ZZ/[|%GwCf_ܭ^5T9?r4p^}QBއ j^!4QB/LOfNL誓Oh| i5Nk&qҠ_1M8Iym$xj4Lrvqj0qofBQ@y!RlG .*>%L9>!MCkS` |ŴH\e P`iB%y4|VO G:8k X1 Z G.ikep B^fSyq"Pp :-,~L2j\paT4GCGDNr%Gd4< u/mOOc a1r#'|:{i$ oR] 3F BN=7\35!+!enҮ rJ|ZBWH<؆8\'Q'J]J->j9F 2Q! uʆ.ɂ]ۂHw+yJ xyo^??Me|?_; sXf?,`[Fdnn: 3L@stn: =l>Jc!҉I !畐 JHXg2ɤz$/(!$Q2e:CA1-s?iVnȥsAr}"9^ޢ?r|m] @ mv:h[RK Z h!h3>);Y<09 c]p~'Zu1*\>%J:Ƃ(#mXuN~>^]K>Dw@l-ޜQ.T(BG:? nTEa ,PL~2")6\Z 1_K+S+IL+;)&,R-&&" .}nf h"4o2A.s(%'V7|@h` !kU)U(r}#WO5"ꥲQ8]#П?(=eـ~Y Z? x]E&:LQ;D⇖ʼY_T};v5Z3CEYL+fL^4,]~}W]iP5Hw(Cg :,Rbu@| wXѐx&2Da2)Q3IRoXmX}t"#cRRzt2ED͹N ) K@v7}NF> r-R*2^d 4~һZVwSߝj5oc9 K XW`r8H8^ɉ:V>g=.%/dOT+DmykM )Nz0,7V`/oiQmqA^g*V_mk5Wb"$}ROhs0JN#%m\JN"37/2"GQ_Qv҄he/|//,.h AJN. ɯoA"4v [nR7 6Ԧ%2yfpe^_oj5?$Y3'9(5P8  _P%e2D/w~*hMR.7?=t{UX|~a8 %f4 Rg`Ab ,MPnI4뤪\Q+!\Gc"5[}~_I4Èйʨw+0}nĸߛ+R=Ӑy6H2MsW7T;G[ e!eݫ4,o T1׀eJ tw彦ԃT2NZ^M RyRC<]^WH O¶"kͬ-?i%FT[;0-ahQ1->Sw'ҴL^rK k)ǛGlV%ۄz=EcSm6P$CCk(hZ] n#Jy( En!\Gt*2g6E~6Ι}t !a_4Lܾ"u2QɄ:O0xMR#cqC2HoA9[A)EշA&:>lk^9.;̴`_gT , Q* ziSZ \oЁ&cll3LYDt7$hnW')FFFEzRC΄qI^!2`b*Bt2(eoը$$Yɨ rmG1 <RP4oK1MBg$dT"|3߸dsA!P67*YfQ\Ya?5hc.kY hJoi4NK#zԬ2Fx )|Qr*e%睆JJNM1xz $_9uAԬ  h3 s8@N/QS-N[rF9 }Cu74=EMF,ARu&va*+c(Q_]S+_[~مz|)9rjd%gvr2xVrDɗcr.*$XAuթ'`Pdn0;] 7%1P2`Y)[ٔ˜Ҕ Ysޭ<䃃,)Fl6.9){DNZQFKoQ i8Q^?`ْ"ΦlCtEtmIxmlMp? iS k^o F.e4I ]A˨8㎱q7cQc6,6ta7 LKjq2i[" U$NE.+n]栧[T& Zgܫ4tyhf/:Muo 4`~Rߡ: >j&Qti=T65ɝ2y|s`ks,V+)Bwȋ7)3&BxiL6`^Vhv\aKv8S4(e%DSx%?E[%m G nnxsO)%h+)Bk+ub  !#Q5R]o\H bPZ^ʊS>CJФeLyNF(^%{ H&\Q0FJZsJ0RT)N'z,k?q6 Jm2jM|ԥNFx^:MDZ%U"mNIXCh'.@vT@|AF;j9AMn@ /ymmgB293s-sigP@rONhgPv:9kgPq;~igSvUJ!,";,YlgP#%`2&䵏2 NxxB`sl<`ƙ1QXzЀl/9P'R`{jDŽΈ ZjD8L>P:p%MQ0-aw;d uӷQ)0eFiʥ7D< @|+%M(Ɂ&nBcyDž ͞]Iox $^D%*ÞyX*D>W9ks$VHAc;/*@ U-x|"z<ڱ=$;*'~@Co;czLKfN @ۭʬ8:իUwR?f}X^I|1\ϸÝt|Q!В$ ڻ@ ޹.~sP RaYǩL$y#<.-)(昴y{w7&ㄐG_U1 |=>zM]\?c? J }ev%9N(B^!0n Ex=a|ݑw蟲f;JTDP/v'ϹBؓ Sd EنzPUd3qE %/{{ě*"eѯ-GEzU[pقe[< (+cTHfѡ iGOrzoLw@5(T6Ҏ*f5Tѯ}H. ȑ|aYZLm&il8͠f^PN.C}.kJ@ ;[Sl2]Cv2>vƃ |kóH{H?Z2/f;irU ˂&BېdW2NB(qEI\Pqz+X@U}v' 9@K"#^uv~{B'&D~W_. IQD#BG;ůtB>PDt$ d3wqTE֩WxS>S< paÞ"+h?3 4u70]4FUjKL|;ڳ淃D&~S{_ (\`{ν/@ |OfQVIY Dɨ{U)>z&u1̗&A3M{8 0Fy2O.bU ؚ1/|b*ߔ(u`G֫E/Cz<}ǻF]aS? >55 x^)NO|vQ>65K 17m_VQ`61n0єݧ6oJF˵X:c`;< z-D6nb;<as`t*GP2aBs}"J\n]'c"d.pddf4gAej}\D ~Ct|' :) 锶ANhaq=%$<r H(o`;|:p!(4cv ]Ob0=+ xsTeNR{TTøuJ%EH% qJ*Sm/ e7yȤr8 R,, eˇ^y B?Z7DEgQ-5onQm:QѦTV;%19M R."ɷ= )=~̈'P᪾1; 2B~J,БT-lz_I?>mlKKV8m?!']6RET7/5C0GdzS %k*^O~z:䎑'~۔ڪq_iמԉQj^-Q &#h6s:H)8eϘQTh1#|5A0&h2hO>cW/&E7JYKqBRA-dOY Yi9Nz/ J)g wv X862Rb+tuW6YAnqw3 fؙ|QAӱ㧽IBnnS'a"E=1 JvqZ*++շŁ_o;E399aZ=;9":U(RD#Lͩiq!N1ǁ"Sg[ih/0m! 睖$E|ztN/Rʑ .ʋ0A-~c]3Ԧ YȨg賴yex'NuK=0SJ>gn|)~h)YйBW3d6 kkXң/ z%dK\,دY)?K|oLT᪗9mL\T ef  &.vyRu{Wt("m' * `FNU1qW@;Qj+v"kpWlҮ¸j%3"JLMѐ˗;%nK)pUl:Mh7VOg4h~U2Y{w@v{ͰDWh <ʊ% (?ɾA3)}_SA^Brf$߁qy_)a HWA/03VI XZJ/O5狍zsÝ>q w/4&yM󙄵<4xb<:ƨUo :o0Ҫ0޺^C?d Ͽ3F VrT EFq| aj+(Vj/x31˦,k 2ARmkB`!qgI^$4-PH)\C05nqʻ-;'yWodmz2IL9{*;<'%[^Z%dOě/u0T%T؆L k8Sf(iOYl*tiZlD&{)Z)@)!z=NM z!]DOh Xz*R ^M5AgLIKjN y*B4t,T|΃gZuN{dwҩ]USXh@~_b <-蚎ޓKcu=1j@J R<4]3Cvb)M  o*p0tADZӈI Ƕ[*^YB ϔ^Ȯę' b >d.[G?c1x-'O,箠^Y ]-hٲVOxP'̶Mf$Ql罃 iwOuPn&73b@HI>IIm'ņes\B*̾O>1 /R'zBڋ jNԖW*L"vw^t ޺e:~5'ꇋ ɽ!5Rru̮OuUl,)n!m|.=%N5;Plm VlC=i(羧7deRb;$mM6mmeV&h/9x:#}2Iy!FL(G3}ބjJދeŦ{!ªFp XFcVxf*M[u[@̽JǤRhfrٟӉNJP.Y(k=B4+?keUKRcm-0R\V3|vc-O.FG=tW^J樀i?T2IFX ٷHP TUVH-Qi!zQd^gcy7kV )i8(;!al&φIyH# uEF~,7΁&R$ݍH22>b5徚9R=_c) T`P'6.FwA|syX'|jevD(2(2H'H\"}q*'DNhI+=WiEE'UV]$}v @Iෘ/VQQ7QE JVq0o)^R+ Ώ\:XK{K{59z 2 'enw@_VLn9ձ6ϵ8,屖 z]Ak wUy1 ImK0Wnn,ZY,w`gV .Ozű J]CQz{ d<UA[-)bf bWБ؀zΆ]/Mj(5X[y̆lFf$t"o'@tG߰P4dx|XÊut-X1k X0Kb5ݝe>+865mt>*b,)s Q Q+ ?p~z:EDF¹+@ؐP5X/\ ȏ .mJ@! 1>-BD8}pYiqY YqYa{ bW@nAFff\Ayz\fG:|gL?2~,c7 STur"i>~ y .gkWQ\ arbRzqSn*mD!xp\^‰ՁJJN,h'`n[biƭ1C:I#HR )S)7r $8@iv EH6:KU*J"?BD(3tw=4LhZf0T\GRWQl]JthI gWuVY9wB= xGlr _:|-U&f{ns2+ccŏ*Et0?P; a, 92 3AM&*KZeBfUrf{Dj*Vvy| ZFhiAj!MYI,"?#mMR}›j*x1״-Pz;',/]CAb :tuzMCsbLXWyf 5qk%rVcRjPP-2iImDZp]TQVnGeե6ATubC-: t;ڠr"O2z@Ȟ=h̰%48>xM||{46 S>/+0{N)Ǜ>˕:xI?_e2)H*$Vt dhpX B|&4PPK68h( 7c90k,ǜ"m,/S?Nia+ {i.1jv7)&qjRrX5S4x1`3Oc_-*7̓17sg<{W= 2OB<[|<`s-HؼA[9b~ 릗q$Wۯ&`NF= 5ڠq/mٗ6J?60mWNiIc : ZY e/tb_(>ؖBWݖ(NFR. L[8D_jܫ!vFI\eibR)dOt BͶLZQLI$'v0 Ig/罴1hoj;Ơ<5 .]M3h]кw!ѬtO2tH4ŁD°:Ѭt}Fw5i%.ivgWb-H@^  &y߷J|Biv]u݃ ~kb94/l$z*|B=+2io]uc$'^#JkAg0Ơ/DwgmN4dN7T+%dM "V1ըc j%Oc Z jf4*C9h5MOU- '"bcuhsV0_6[D%,`ςL3 -`^ͽ2-S0(kn!אiJqrF7!at>cAf,|wyH_2cځpFF'gتSZc Z5=0˷]V`AL:1ojGki헢-Y5Keb!2i ѸDf$F>L@bq|;Ew,Fm1%b|wr#f~3l+L6oAR^KD[IvΈ^gDGRZziwѻ.WlpPn 9BXߍGWy6jz`X&zOg0>6֠Euj6f,q7kWIcG'{t=7֠7/|'zc 1\W-`̆:Of?,`}`tD8C#З6Ơ&_=-V"n3wRϰ'2,* V0W U_~ z^*@O5ALׁ*>[q)8۠-^B;$O5AD/VE)&D/6YA{DϋM8zk7­FVdd]*O٪6P2;k`U_3jv'جOُ.˪ X{k"%ލVxf?9Hk/B+kNEZVg*`1.+ļ{KFPt~~)mXj/y<fr {|Bfgb퉏ȊznmA~w+9>rIFcStvcDKtW*fq!5,*e]"*%$938IYWyN3] bUvPzl0%TxMS\o`NBӸ`4/ *UNoT.+f*/cAq%O*Q2?K-Z-x>WrO@-е@Ul Q%yEMZrI9xCZxS{DUn:PDP%-6NcCMMsƇ a"'^AC:5U?+A D ќvnFpVU!"Z:Q4-V#Z3xp8:\L=nySK>3<c6Π/E)_@}8 d2~MCd9Π kٌJ?'t-̫yGǪ#dM ED>GtļTPȜqD'\>8/Q Q>A#>d3[J K_](,wlWWY0{i%Ӷձ+yp7H*I?p5T$!?pXt_cڜC9i_Pj$zIɶ8iB|}ǰzNH/2DZr9N8E^el,Nہ4"rA?:973t[%yT ^>Πх xY@̏,-yNr:9ə2ޠ.$@21.Z)tUHKWoHpFS+y,]-] ,Is+OX5nIR*$$6Z2U)]mRW/U'Y,]Oإ>++C3LtdަRWdt=Tz0E骓Jk[u Z 467hDE>uxUu~?ޠuAYl ɦ[љXE7BUM2b,\7oLH MY^%,0$䐶>4rLn)BSPehmW*4ϖd=M*6%8x;luЂ;ޮv2&L.Sq⎯ F߽}o;5*&d@4< IYԉLY%<^R W{!ƅR+|D {ZrIĉLPWCaXsHCDRlWzZ-p9 pgʛc""*o32"y9IV :~ \9 Și`PscAEL''z&4S&¹JѕRt3% O0hatAz_L0,%zb)کDFeu}KTm"+FuKa~RQT< b &1\wO}9ωks}2D&v@=sN9IB&\TIIjw^uڈ|oA0mj6`V54󝍃-ݪPUǠCc_<_u9;˄Qn BtR^lE+Rn"=l'ॕ0@~sRY`D5Qg鿂oru_0 60/8e  FUh8,B;!m"hR]~V4xkH Q5B'kknak-(/b]EA)Koe ^8ύb'\$k`z! 1‘~.%NJq?.9YOdek^NJKU@ EB\>eJA;@.s}vmҫ Do6TwiSkΎ#L(?{# QjA) po$v$>@P/ɶmN(de!,?')}ִ,z7hvLȸB {H*Rj ΍Vώb} ^y;JvJ"[{IH)ȊV KP6e߃6Mz{NV6 mVi8/Z7<ݐ]`MpH?e(dS.Qv ;M&Zi󰤫3'a=!5fz0C,08v9p"?ܶ*M#|03xzkIڽArm`9e;~'9-;s1D hfDz+dԡ i SĩWEd3Dlh3c}=J +ȾfAU;Ep1~ =w&4gX7{|nEYŻ}zע'z8!M>?`\W6pЧETwb/Y<kEg9m^D'&{KM`u_@Ah VAUK֕lk'.,VZC޼^D&ĊB63oBhs|as Psp{y/XgB*E+cDqn\g~>>iJ~.IF^ N~6ѮD|wpUvp ;"qa4OM[A Žz#uiBLC$S!mdFFl2#sG6َDF&蹠%ɌlLi)T\SՌ[Դ0*2ۛ[dTw2I_o~X^IԼZАHS)-IFIySMk5/_}W`_coWooK-k9#C<Ofo1ruo<ϥ σ%{?^KoMg5}D8h6{ܾ&1P7L0ٹ Gю^.4WE{@Ys}遅u|ATH ֊F5 W+a꺔M.e@S.uH*M]~䫀R_)wۛxG/qw4AIKhyhq CQ|D[P6n6&7iҟ%4r;gG:;.w'=kQ`W)%ׁfy2KLvaH[ +xlzP-c[?K1}|Dw+[9JFqy2ȶw7j U*oF"+yx20txr[BR!JD{d!g܃-{`d OhPPP`oLJI($VyrϤV>ɫ=0#1vըqZyFd'z|#^#l{EO G4mNO<5y̷!65jsiQ+4z&g&?ER>dsx?dTb(l\+hhEZ(-bu+W-xzϙ48uW1/hP__{ __p7O [ E җncKmcK|@Y/e~jLdfcG$ $DX@q]~6Dӏlԗ5(:BNCYRnY-*]к! J] j(T#bF7fJxeQ 0gQڴ:@+Y2H+x AxH{4M4(*6/fɺC0#@ENq1 pYNaMs ZKfMU?-eh BnH%+x|A3gA(sY|YʫOMAPA! i7")D :5C2jXLGRtZ${w@0ᜆ 5Jm]XZ^P yxZ~,vZ'ۿ|݄NZFeaAf(/W7jl7<^M8?lcܽPRT"#hk*olS(/F xc]dkŅz!HY7ןNls/Xݚm|X)sqNQ]{g䉼.RPrbACͲɉ%Ʒ(3H6nd" d0J;iؒKKc3LW3{B`S,U"Wc:sT1[?Ǘ$ÿLOYlM_'<̋_$bTNjf}hV u )JvE._gt\$HX!Sk -P=K2r=JNyI׶/-Zo7R'm7sݠm_<w])m0+o|"Wo|uAm|N}^!!vؿaPok׉ZQ~)_-oj|j9x)EZeo84?7hu~`KO?p-褔x5R y$cb b['kAWtAE!'uiHfӠw`.i 0if0Ӡ?KNNJ;Ӡ¨#yB0;[Ճ^zHO@S}ê3U?r43˨I/r.$gjIwA9I:)Hγ;sY!9[*ʤI%,o,}/ {^S+? 'Le>=؊9h? 7ߋ G9Ï9 " ni!| 5)~vBnk_䝍>Eu?nCf?64J|Dr \|VA<$?|ަ֠"^N}[`4ޠm+M$qP:Iu<.)]: q2W\yˡG||DF'DIIU!Z.? UDLKvm83ٮe(M>!2ˌWV)(D4aSY`T^5\T^DL㿒s R38"D@bVM|  ͖;1]D%M/wcNr.ePNJ۰ˠG_dƅ<+Omm;:^͉?! #R¥`5w=!^ʐ6^~xqt$“VHO]!=0L=m1"΍WYo*D/'aX{rq9r_NBSF.bl,{nRX78yeX).z.2Ho%3A6) ,j񳙬j0A$ !28 ghݟq>yAoj#AhOmP,9j唼^+ѼΥܛ5mLBy0w )0`gQ84mƻ?qh_kZ3 @Ymk}l^ i?b2z_z({J}!>a͜-׿ᔭ'`3CD-ޛ?mP4'n!딪,r) ƊgDmX% <im睔Q?־<*Ii!738\ۂ{LCsF$&i JUŅ"EA**fY9ϹMy9{el@a|=Mק1KGػ^0!<[?rxa(f2X8 DD"'frw{E_K4f8vј//;^Aty`tR\!jfNi ptOq/JMkpB8t,Bf(eVu_[c F}Q{ Ɋ;g!뚡Q6 x Qfr igFxַ" mCV2;x0QٿfedB!Ѓ0"p " 9oT+A{*2DYă-P0z0) ]Y[Q[q-foߨ@2t?c A&GAq(=ʬYHx ׫hYUए JNXw@]z7s% &2e亷TS`TO)A;~7(0B=ޑN ƀ`P0%1ԥR/Y* \+CCÙ}T~K?h*)zImOݯ5(lٶw๳|qAp&xG *̉{9/GCp6T[\p6ڇg[N-Z)[g@}rOv_ZfTHx1Pi}JGV#q8_׋3u97=dFe{.vjQ^s5+si~P'WfOfBL9q~U\Ҷ_1d |b(RWܐm*<^@JtF9MdA^PU-T}e 1Qgp)á0ǁA;})׿/oQuHTNH](c0I-c0y j`PsZ5(X~Z* T\RH?[h̠Z@3W8gVC(9Fn@ĴJdJ]Q4*-myC]Ґ.e-1Y!ê'n#Phy˗[`*-m`[c(N3\0мP40A@Ǹ:֍&;d8jU>Nl;XFWzC?}*ڳŅ//'}QD?[=3\DžFU 4F5V4=O=Qn/I)Ņ ~$[ zSHOEo3F늁%`F2MGP&TJx,5}pAvWqh ց{SDj"ZDx/Q¸nR̛޻Ky/25F7~z7A}q>7x{ |48;,RavO1x(Sd NQQxnNk)|&@s됸&BI^_h a=p*lQ t`{P]E"%}+ci*7%3 Ң/-1d1;M%!GG/prWl"_!gPoZ5Tz: az꾎!ۛ|.R>b`1W\ԣ+p"뤶 h> ɵu1mbl’;nQDYVm2VCmޖvZmқ A>e]Ǚ s]d iP!O; ' h/"-RD'gv+NB}gbSD븸i2#Ԟqֱ4( h='(ހʃ#!+7AcJ#t5R&[e0VwT/9 @9W~H,TF%XG㳸`cr<,[n8\ :q9:xx?I(B6Gx>ZI˲j3fCf5>s|3F88dv/- ) ݥQf!ͥI yBZID'] j\)+W ˵{H[ VgxxYGNajrTT`$~׎4}~P.y|c[6zo2;~˜/foqA3 GD[dTWw3ʟ@ =%#ˈ"ns4 ~2(teթ'pؕKD!~Eۤߏk_-\q+k7( ORӾ`X%.Ei1  ϜT#:^̔Ϝ-T.EqA` f(C,BJ#T@j&fb <>_XWϫY:4hP L*@I`A-)?Y[xE#.'4GO9y~ɠkWODKuI.  | IzAuG6Gԅ2Czz{\+T7y_ռNGO,c& 'xj] i4B|BxL q1'La!o((-1m  `pgeXgEX ֧`1Y]{Rs"d+K~Pl yHq,._-`hUDž~q F:[H:na"+I12X; Ȫ*oQ@vy3T9gNu*u뇽aq|@A?~c3&uIOxUD"Цd_yd" =$T#2WRAe,+蓼Ĭ@ 4X@dD)*2ȨCҐN\e, ްeJ*[oJ0Hy y~-0w${nQ@%D?ۉW$Q2ЊDɡX,.}/>ܨH$CniFąInA#>` IXuw'UrWS֑|S IXEyD/\)ȃ2Z t"QJOGt{=&d1KÏQ?dN=ʞA Ux E^?=π?$ E-'5`9T_J#=dZKW,3?22i(g;ڵe_,3e'G -I縀ڥcŅ6o7S EJyF"h`W"1]P+X0ޑlNV |wU3e-qY [+7+e2R C|R˽Ɨxd͒lWՖֲl#@˦!)JCEfƛnZ 5v0#@ 5>d5B$Ub\E#.\ Q=e/n^<9bG51 bp(̴y q?iR4,j`:ԘiW,%i@3}F3ըRPcY00PYҳ:J̨$BH0 SyCR~}IG  >E@G9YkxW w9BUq2 `/Ʃ\mAUeZx2uJ{Ny/"Cf*wI4ǡqAQ(?q%`+.$6R. ,#`X>/sɶFS9'JLb2#GW *1ˆyԷq!s i  ' WrH ٧bsTqA2ڜq[&C*3;`!D&8AC`w16թEu|^就d394;c ./LӍrNQ9YLK-W9s ,[}޺P\UkŅa pZvigRNT%zPLw3Aa6Яq-(M6lEx{N\{=^bx18uRڢ&7Dgw5Ob@mە͝CM,FF E0}t5+n96æ?xLK`DX 'TkѶ)ь N/r,iҮd;9OAytHZαf 1RF<=C3sS)qK7pG`2Sdq4v\c5jbA0LϸVFZ5:1xx%Z`W(aKM;rT8^qd%^rHY*-Bq4_A :qM7<]˺~^M$ZSvkB6&6vrݑbzHpz E8wY9Jt7v3^{rO1ZP%.tc<:;K'5Yb5 duRdK(S\P{t .=Gb5* =4).秴˻+U:aP4 ;&)!%ѓ+33ӭW]x i޿jTS{AGbmHFPejQcuu K2&Ȏi7u35ac_FyX·V?銰 2;b-qȚt)Y\#. vꢈNBը揫K|\u]SMgnSIyFfMs6)}6a*߬XE`_ɁsZ9C_.֣3oA}Yz= җH6)jקbU6| 22;aeR=/@pJG8} iqF4j(7hM̂.b!UTjmQC)1Y00 qtX&u٬`e6Ӱc2_E芀D# . $tf^Vc98FteAX wsnԻГ7JP^]ν^I'.΋7jXeythM̂!/L1;tml!? A_T3nRDeӜgi΂ƺDO%DP|ȕ8W:M"W.G3袛0 y`v*^w KZ: %Z k77(}~`}0xFf6|n;l*_o7(;vmwr OreϮ’[\4^|\fQws>`$L4)aT*ȵ3lxr [9 'PSxu@X F豄'RdboS,.t8;)qI4 EH.Bp``x6"Nm\ͶpBbjNbR^P(L2+-SV0nxA>{g1 $z70n ^=;qrEt|v.ɦü1najjr]w`=#TWp)C֡'WYȁ4H 'Ü2p6ܝΖ$YH,яt?_̼=?N ~]EL][cr,>z!^~& |_!^^ [D] ޮ6(#4~~ 8 dZڡ2F=vޗ^GE}^PoE0WpmS`D"30hHA`hۗ7 nor{8r/"ے`cDr^y#Cc,[~UK r8 m<|=bKƓ}eyH D4-!51>bU&HL#rSi p) Ӌ R0(_⇋ E31ݳà6%ˏ7Cv0(IlڈÈe);pYbk1۴\=;yJwhż?Z\} l]^G\$9E3JduF0kv,,VgN_ q>XoT^`;fvQJB8UawoU#pq{<#׾:ldvv6Ym_څɺFu G:6TZ7H`n/E5)ѨeQCLhM̂<ӵ;(.}jW!Pc%Z``zf5KQWY&ATReQS71ӖY00}0tƋ iMhU,(~j'њ})O n`W3u-an]x$&蟀)FF)SnҌF-&ըseQv@k/њv&ݧ^".ޡL5,j`:5͐hM̂eךo^|[MdI"bZih${ hh#w5Fb~d#MK ;9"4 !煱x-Z :}ɡ 0à\/٠\Qg/y[cK6XT 6(=^/$z6K|`lF_:op%E`lj1^@5էayދ4Ꟗ*?!BlRms%bƸFDZâv9Vâa9oorv+ y%`AQ7Kue̲΂?V,뇈PfAt rzN>~3n,c_FJ)ЪLe&uV7UG)'bUj&/D~Dkdې- J3jd}lJh.=^Nm>=͗C}iDel=kt+ ʲDR~Rq%x2RqKE#َv(w?i[8).Gq̐7౴y8hLҘgnި1=y`\5Ճtw x ZUOsBYuŜfCc+r{`o\e#&$pOiTtdW`1eӿdm͐!wR.0TEL>{D{*K$""%"SEjVNr=4jeu 5ytoY?TM,ӡԲ̑Բ?Բ!BY9T +F=;Vٳi}o_;]ō*Y'BYmjdatuZEv//+ts@z Yb,P;ttmY&hq~߄QXn%n҃.oK86;,*C4^n"S>ћGddP+ʯ&NX5  pR>X#`scSmQ"&4goЛ_>^zCڔdT"]81T̞8=mZrcռChhTT Th<Ǒt^7biZ5Mkx41i/,Ujhumj э\_E2n.zۑlSJ a>cmseosğk#c&T廁Z:D*R}Fֱo#B)[n_+['~AÅBqlʶiP19vt)\ӠsNZ@j*7#15<JIuT?j ٴLY/6!kyl#\ZD(t`OT>L!)1x"tj "jт30hd@5Jb68yrelB>5bĚP#Bɧ[S5v|ZS#V>5;A0GH~W>'?Z|2ZYMQ齐&VL5JL5STLkhuMLCX՘)qeI5l` z d/5aD5ûJfx#fx[ @/~ +1#f(lV3[m3>gkFCIy~'D6;=)OzPkn91\Go;"d .̦Yn5Wb`zGbr=L9kyMp&9>3hέa jc}q9![\״8 u>wQoq%GP9EB<_ sx$q%q8L2I?PeƗ,| qٮ IJK}r[<APsqپG$3#f=Ce`+2>q6tʻ"jČ+'R]R,I_~DM hy|b(ĕ9Q4WJD2*J̳fmM=W>J>‹mqz[R *HSU1.V:."u jb<t+ =~~GL4Kdq."f82 )?kxIa도ܽJW$KLEL#6Dz9lP3R s~h`)&._wSk[CgB]|- u8g@}@`dK'8i\Y!û=k\1"c)l@9i., sYO~s#ib㮐_(tCǦ5tl|kSUuiK}y).P:grr|0}&A& gt\(sl%'H[yA ()љ=.%jD|ygqL"4O%Ar)$œC$I20P K' FIj 3hA7t9ExRpcpgp,p#$wN6$8[e~NWۄwGLNZP(4TC|!=Ҳ!‘ļE~@U->Bx57hϘ%v''Dqħ؇(-1YÕGxmD:V¶Öo\+褵G4ɂN[3S rQZbf'0ښ%ʜJaTJ%f\ +7Ÿ#sfDRsSw&t6Cf&?™$bMMT|++r0iys̉N T=h1KXZ_Y[.JQ]s:671l#lk[2=lUEFxDmvjJ7[ĴMR=ҹԙǛY{#Ѧf.V 7?aOmE?6yy xF(kMHżmYa%wusSgGYfQl0mnSwTl+0mySwRlk0muS_f6y/,-5;ug6 67ul-ӳ6$Res)|Tyܑb.onjnr!qw2N6*( oP-j XZT:kK/䔸\QAv@%K %A, dwҡ˕C$iRG[i~$pˤrV6@'P@o#&{2 Ql!yg})OwGΫ iDtڀ.<^v? LoNwQn/;!AdO]wAmp␁$+o,@0}@H( dW8j,_ ) 8"?zEDjO0"_[annIhP ,^ԥk0|D NP?4{4Q\Z*.c5+Y J\4dbmIXk\R$.C5x@+.%<$EvlhzCn {(5*yIO4V)|yp|%A'q W #.4V*Չ p(⽵43ywKڰR_IGc"e [}cCtLRr RTŜcCͼ 5skwԼj;ąff'f]Q~%PS>/]aOhKȢEV(-OY[;Ǵi)p= |0O尔 ՙTJYYԫE< Y1 7kPt yK 6ƸǕ1`c 2lPo/>.Zf\̯g=!Z~B6+"jOXyMxU v j^,Zqޠ6P;1;58i{#еo+>c Σl#{#'vuv<+-)o~BՆNB:ۺɱ&>.Ll{R'uW!.Z4~ZpXIKH6uF&?VoclOZ&?&੘ďox w(BǹrK6)ySP( 6"g]4rAJVZ,೟piQ0i$DxZl'bqOx_L }A!%P:]%ri:*y~V V;ܽh4{d[+b 31;,l3]Hr_ H84N%Z4 n_b7nHc3hq3Ƀ|T<՛__!59gg\鳖)҃E&_3zFOS7p7PTK>q\HD]̨V"ĚRq=wCi5T `eF#K˲s`*>g'$MR: 0cE4j]Hz)8N8v(å%^s'/NVI x- @4jTI( Z6S,KZb(]G `.6%ضDMVKMI cJ" G.0 Kq3[q1h5Ue oE<39rȦb54~A)+7hr|Uorܙhv+|AF󯋕C6y.M5Ҙe9dȟɢӲ2Yh]٢Q-L뚦iuJJ2b:MЩ|TCR4"[r)YO3UM2jSE[EG֐7bZd( !O1Yxd;wG(?" xnjp'e#TD G]OUt?wѢ r &(4ln֛l`iU543fď?ճ9Gɦb~NAgWPl O+k~#/3?a&Yd{=FsPy>KJ4*WSΑ:FTZ+.p'QЫQ+vPB勋TWòs0GBD_l JpqVSKyES)c,W.`%B\iX? 6Y0<β,\^(.`=-0q X@K^XÌXZʮmVk]˅j+d[YH}vyڸaqa-Sזc|_U3È^wUhҽVQ<"M'y=):tVyuQ/<ȝ=:3ȨOJS|!r>OMu_W* v#O<AZP":EogȲl }u,ョ,|L'C% 2~AF5"T _V |4HDic2nlD*nl"=-5.(.m: 78j?ױ; HC^{uU@tbLg} uo/:Mˆ_W} 66E$P9>1w[݁`jKNNrhމ"eO7E盧&]fVd&u`3|d/]ݐLLU;Rco=I &Y?7j\:DM>1"Z$M > ҡ ̳ˈR0"W8JHMiiz8xRIT*4`5ڀ 4^6DC&(sN_STṄG'OFٿiH khdbC{n;[e."!o$J#BUSiL j=H1Ǣ^$ zBHs,jF@5e4Y 06ɢUט&s8ht$W8$ɢjz?gx_dQ RUsGy5; 4/]5AH#u ÷eo B@gWhRBiZF(OJ2Q;M#Ǥ?^A+UffR\ocSJNB.3S.3\tT\G}pv "uR\G$Yh#eE¦Nvz]h/} eKNo3F1QF$S$kkutvO ڨ26aT\ s93)nX D:hsB v#5%RqeT+##|آ!^ T3-jfiYᶄݷR ]ǥJ^:hG«N;=hhg;iib w)1]aP)&xR֊(/6 _FћACx3t`8 +ȾjA: Ri#nnA:Vd]N7) rXN{.tZ2NFr{0tҠV.LYfA)ǪҩVt:+?iD09?JsV)p%¿XaEpQU/HPrA.PSFJmI:M}0%4Ty3*$9qShSILg} g]:-g2t#C:oUbY5J/#z2מk'xGvɻ.]:},J Zc{PAs:-neaP)2HXuXNa&Xi ZoR,&\VjuTZB 9 22oCn[gjtVC&Sa nə+V^$:5!~H 3G[u -B׀Q0k8v&!j$Ve7G!' "G9A!^:!aizvjt𖸋hz2Z m1˜Ř1YU V-ɐ";jT`ՀX1Dw^N)t.ʕ-a+\t>U!Q3t:55_"]Q~ y+\g0r%e8Gm[NA@ԪtzpQmT.cW(Ū]颓HDL0Wh] V**yJ] +]T+1m@pJ݅D`Ɲࣈ?EQQ7Wh>¨UaoHq1WtQ?/D9wt_>1y`b۲\ ed = qh*Es`jw_Nybx}@OaC*I:Օ#EEQHoE1j GRQQl9 % cBWVS 꽋)_0pe^Q!̫g V,,n8%kZU"?Ө*<(ڭH$JFC53PU%sC?3q dLl6@F}鎨nKЯ݌\rwa~Ec <swq^#BIfF *J9zJ\6(')W[H#FQ13U1sx΢1S^PUB#JI2&_I6W!>Kƈ=#wLyB]WqU/1~=EV u2FaTX1Zmnk3E*j1 `&$iB|q *LވUz*R{Z<:Wz: pɦEB؅KhA%MB%Z"RK U͗ja+^ay.!^US NMqcq=#>8RV+ő2aWqk;w84樖Z}X%_+-u' WKYdҌǨr\Pj `,^|kuO-W/+8ṯ( ^y@&XΝ,t^gA3jFCZ:q{-g[uTyYHm. DxF:zNF@*ᕲws6ܪw܉V?jYnH|;**iԦt%5nFlXzRN3J oR? j&u"jz~ԌiO4P3adl⭔ILt6 %>-5lE8Hۨ?(6DS6x0IFQ%Ls8LkZ .fbvɪ{#WaeS #LR?X#W\9$BBH>B(yF5.Jx,չdƬU7|Q?{ jF}$:F֒܂Ŧbʦ*݉Xj~b6dC*`;ub&(ѽ {z2<ѽmp[AzA>V|a Qӓbz!S{6`8Ew?'P t %ܷlYfᝈwr|5]QSvlo r&mrCJg\|Xv8K*{g{ɦ}x=^-hL;9Y+BSU6?݂냥Z}[MMR](}-j[4aSlc+l@t-u+lb a4 10kCBW(S{[[–3 e6"gM.An\T -=қg]"tc^[GlXt5^ǒ܆tz W $*ȡ-Lv4ik"_NsЊjs~ 13ӉDt0 N?W#oݡ[q=_E^eѭh&= ݈{60K~69qϓ\4E˛\ g&]4+7NX '08c~̻'9;.Eßsm;MŸs]`$y"Æ}n $ \&"n]ng#5QIpJF5j`n#zbAv 5ELBT W*܍Z ԲY2̱LatdC9뿗R ,XZoCye| OnD,dİh<bmp(zvifbhgX*q.<ēldvw5ȡ6g#Kea5Tf۶DW,#vŠ9ʝ>A ?_TPxNKPF؛WX}~K=/NzTHavgjx*ղf]qJUʤB= (υ̳u(GĦu~rc&;~i0Vݎ ;tg{(@iu" Dwb:bv;]T5Tu颉uhvuŊ2>wYb#JYq0?ujeC"P(#˫&EZ(_T\GPE'QY̵m]ဟvjvh\Y  #慪1Z{nFyQo]6N.p8ۉ6[kdp&1,iVse0iHw"TX{ʨ|Ȏ[rCV ?=F3vnteJ--zB[0.G_XNcqC|5;Cx퓳& ".0xRȱ`/DtaODcmӨ~-lc6RE}G}:&׮i/h` -l,tv,i+6o~eWlrbMWr#TFڰ~B>fh_W>1+vvljiXg'GN3RRf;p@N]|РV819('$Qq:1VsqbD'EؙPIS\`CRj QA:hӇ jtiےt#+sJ Ex/mʇxyƋ,$\y4 ~.FMaVWZ5RrSuԠ@hk+}Vh~-.u):2~K~=mU'}Rr)EFdPۚs5Kҩ%Jǫą ^N/I6)|DpO Mk#^EUrr$9Nr#)^=4ER:ex{"toF 1EdT!IoݔJ ̵6G Ҳr~sX;H/2H)I̯z&Hܻ D\h , xi)E) i ܭ$#sq#"O51mdoy܈,E:k|1_TN 5 _R9q 2uX|X(0hDpXAgTܜf#TJIh (MB |'ۤybSJ .2jPfT KTଐ/%J8,0P@|()mHRhmcf3ˤX3g:M3sKLS" KiglB73x ̇A&pqQcGϐ?O*)de9*~XJVhHY~c}4_\Iё(#6!=Ha&Q'%6G#N?pĿG"툪#x[?d#qIբPcKmI3tQ]ߧ ; m*Q)\s x3נQ pppX#)t a'x {p-W$E=ۀ= ]ߖdw1pI97 E{L"'1g:ݲǤ.bwi6`ͿK  0.bǃU xESLR@ ػ6)~RRZ{LRIQ6\.56o /VpףbxCRNFrKq`LnܘI5@ys]X$bQG& ky NGbjKΞQzMݶcn&6.fmxE6<1aّojat<$?%ys?[Q<~&mSS45}In'x0XCܥPlP /Ab6>a~to;P"3ҽ/1#`J43I+S< Ǚo9c~v)BntIǛ䩛*tO-:Ϋ:ٯs@Pqvv'8['_v`6DJO1)xw`.sOĺo!sDnI` ~8 xE)n8z@S`WNQTe |vk Hq/\:6/"@cuL Q*HS)ZiV^55aUVi]Vm#%ύizdBC <8+(c]Rc?n sW+=Vg}lY=Lurd@h|'+°< @:'TFE Յ=Da^El1D,)CD c&)@f =ehxcz[%E={ C+R\/)!:j>۠lboOЗ`W! zvGV>Uh:nEѭʭ +ISAq *UvK +%S&w'kQ$҂P6Q[/)e2>/QX&s$Ғw]B.fLv(JhؖPj%6&'ۇi0?=:_kq Bh E,R%8&9"n 64QĬ&+VK VLVz ^@@X} VL\4[7fRXhM/S}J6;F G"I"vH }_IQώG=")()|d [B!۪oLAb23Vw1k^hKeI%gݜI-EmΤ`&N\lgP.)1k`AԒ RoO* )q LiS9:gM8:oF{Y3yΝGƽc'Zմ.L6IRfH{}}TCUAO)X!x5}M§ag`Z'ko_| 8|=NЌЗԋ3jg.G溺CμH= 2Gh a(fI L~IMuIrHMҖ6B{B-]NQ$ei'o\>)S_&l s0enAnv"7;1!r.b;ܮ(nF۱,ŽQM`9RIRl\5Mw'ѷ |IvUW%Չ̵uɸ]Z=t>D%ow’ۛSX^m"g䎑z7ɍ8͓'>\2u"[߿gLzsG/hsZImG*p(]Ӈ*5ED'Gwl% 4T?7Nb P$rΚ:6=,'9/滄[oq\)JvipjJ[Һ ӆZ}R [~2`3*5~lغ Zy.=ax?m`ueQ+)>wR5 ElF8Y֎aM=X~p, 'Yc5\paxL?\f5)HᘦbU*d{pyo?y s>QOw;OJ 2{}Rn (Wu[O ^h ;/s5g"V^lsrRNjd*±lշ'—މ?N jYRc Yx!5jx![e-]U(r>U%EE>~Y+9 ƻ N-ɮrs@U̹#AUDW?^Uh~B3Y/$5 Ͳ650)md;S4+͢`E"mB#Cqsmf!ܭ6d'T% kRU5im֢>I?4tO#%eifY#fY#SWaATP?bKl'Ŏ%4 >G6l7}dâPd{MLke_פLTפ=V g֮T ޥR0\pfj%{!'pkkh+(z'~6ZaC2Os"ͨvU wP8>L{'g|ZѦگ,1Ia_X2uaB3Rye4QGQ{T<~3-k9LI! &e1)&9b~oIIi@ ߟboR1$XRRLjR9J*; 7f{GXy(n'oӯ E( jQVjwIaAt'F9cx%SQ(q(r6_iG;ƉQYK,[/pӧF%SˡONTy elB) &A[P4"\!{$Y 3?-ZJUXk~[SP֚/mz - VB5M6DB6^B(fv}%aнf1 s%0u)$J00üd1ts6U"Nuŝ S"s ӌ5C2㳅 T]Ŵ-7 Ÿ̤1EwX5ms&}x8jraaq5 ku ]L!FF/?3]lRWu&+OuѼIܤ~Gs>)z\cW+Kpw殍T VVEhO[}.|O}8ًڡyS-`G5i$D4]Ҍ&oyDξh hMD |%z*٦@P^hhVEY^fe)xqWv^ mOKUVov&2iOF&[%``|8f]ǢMWPLe٩!SKnZ`3~z$//~_E [ Y v'p䩅QklwR\ KFyvq؄6iII0zsuTSc wCJ.IK0᯳ħ+ 6zAQ|]L[(`:RcDI7t^˒d8RXͫ~_joO7~)(+㣝ݝ> Z^rc-_jh@^Bh):r"Lq?[cQ9XŇ]rvOy)&yzht}P5i2e9s<8I7Ll9VR TBkq̓"E>NN[9TIfe ߘwVnPI)P.El66l$5:2 ^Ip6h{>T*àcEbZm˨oDs Py@.ŀ^*+[V}hz9jc_Su.g.zduq!r#B7_ ?ԯ>;5R}(2?6wTҾ6ɏX܃,KQXO$FmXWHcn] +~*az߾8IՆΏE0*n3]" .ʙ,;YqXIu΢~n!+[ǠHP}_x}`\I߱,%M'+F^SP][ʌww酿gQCa0[iDYegeϢS"zfQw3Hs0f0% U4[  1+ԑ6New"CQ`=:>6;S\ =UP-D S:k<2:կ c{.L5S,Lt~agKEB咩 (d=̶(L]%E컔B(ⱒl1Z2ua))aCDyDomƧ ZI;BUPP_]J?_7xs7𭈰/ԑ7ZtLKbHn=gO(G<قBhmZ3P)0Okb I3@/΀S;F7)`uNF#3 V cuv2;a$@ ЛsL,YE3Q "#FKUK5$ӈ:?I⶙GZ>%bmTof6ӈ3f cm=&Rg04js Q~lQ~&[s¯KD_29Nue.֤S@_B/;8\HQZZ%9~>g|(nwl1osP[]PYJ;q%Fl&>I8g#7JS +C@'r&b msp'9W8=<G'>7b~a=h)} z2訹hO8OXf բ@odLL}~'<\qIZ&ѧџnD}&UoV=Um>iIo(}u IGνOdҟ )^')NXL/ŞW}aLoDt7A:,)jumT/ss覕[Z OS/Tpt"ݺt0Ji=I,25qԎCRµ4э.|2nt^J~ꠜS \TkIKiO(iEѕ?{Ɛ>լj>X+ bQWUc\}o9&muӉإ{ vae8Pwdɕ򒑁 e1lQZ s}+Tg"\#Ol- %&yȉșKFa_F:PG/eЃP% :7 i6Zjj~(MP!5@cm0z1Md.OSQFc;92'@&G.ޕS԰P.h}dݎy: PZ9N~/vx,eQeL9"ݤ#?Muѡ4 v$ ,!-9l, 0Iq?<۶uWl|l<Lyʐ3#9%pa<&1- F~-H pwNV1+Sڵ󲒸eGl<25E8hY7UgGm+e&}DY߂jeQF-;d(BJϤݢ \8qu>~ZiR}&uIY+1kQP8mhѹwlS {WB ȇ.Wa}*ט񜻔^cSҋX93HbhtݺϤ"N(aўwDWwwYuR w>@m/m' 2%o vN1WlŁmD`m'YtLQ=J\>hC`*<ڹdz {=PRF 51T=-jPPqC*1įmDWn:Ԙ G^~ƤtD.QC7-&uR\wlYA[jD5V\+/GQc(P>S LC9>1ɸ$Km SSf,SfXR X"ˋ7K 0?3LjmL b0lJÔ.AS s6*6AsFFmèO3v2L}X}e# O0-V6Gm p |-2sBp+#V8&rີ[naC_ `VAj{4ZeNpc8c2}a:m0 gGZ'f #l4$:X :[6ˆJ[r3K+<&x<gkwiϵ]tQ - !8A(4#\HFoViDQWe/&Z.'wNmfTT'm>}~K&m<i]3ۣ&wIO&QYDtuͤ%գk&^W&RF#*+s7ORc;ͨ8I鵩*q|i`hjPqivͱ =[aJvIψZu<"/d+H]Y+7GxD"t&=eL+k$9ΆygoPռ(oPu`ߠ:X7T3B>ѤY sѤaOME-xR_b[P J(X l<2F=qJ#h{>k4VGy̖T?ʒE(e9\AZ"1FV{am\6˓[|5:~ݼwth6a_ ΫE%ˡ 6˘.i .`%r[KdU٤UYb$I}eM~.X5Hw0IZOj!' ƒ3&S1Z> FOZy >Z;oO g ZpGQ dc:uF06 ҫm;ijg{B.?n,v\0 'kE>_IG^o_Ra:;>&PxB:^Rh݀7co\>eϝiΎ:YSEcX5 < sz0mP}*8yd|%/9{VK6Z^d)`,[޷,EoY.u&yjBR iDru0+K 0ڡjha"+ydTv,*'F~^ ,I11pڟW> {ɓ\iG@wX `ԖVH"=q^\$ϱVdtJw`C"0a$t<<<x~XCŹrTMh`I `Mi>` fהk5pH'ٻNTy}%EXd؜I/ϳH驒'?U &5:/G>/򻖯םݯFx Ox@RC?d35VI&٧ɷwW(7hy'ռv HIT5fW3emM]1)fm&0{dld؋aVz gu0Qk?ɥy[MlMm4~4F\\ͽ "cHrEMMRaYY7ϷnERAͼ*ji]fAf39E:v%^Kr[ "4Ty"b#Ъ5a r4H*Rْ 'L{0 ӚNT1#47NǼ}zER=f7LG=uօZМ31OqJ $5U5.FBS$6A:.8+W'1O=.ñzmzn=Kï۬XR\A2bD"x R$G@joLP/}88jstCk;yDr4LC ~I+r'Ͽ&"# [L^~Hw` ̬r^%Ó32&qGhh96=i`v{#6-'(O3>3 ^f|Xz8sZFU6)TXYE9ΎLhT}8KY& ?mѥAl! mI8y;_sil/ָ] 6web5ܑͳݹBX- /If^sK>f6q%4$e XuM[elS ,-"$*JI}-{Wt_?Vjtf_$f*nrCn@m1%75+w_zLIt9GlJNrs/p:ڽ6?0r:YC 5_m8G5D wsw "{iѴ%@UOm3_"s͵9Ϫh`0ymYxzd7NfIlo< wk!D]^i 53R%utR5óx؄-%E+N-0-Tajaxf-l6{E3H@LDQ%Æj5ߺY)̷zeI=P|?ZY ?%N,E͎6\dWk!0vͥ@ӿy;>Buș|h? D׎$r7N"H*/r͇OT-/ N2_mG} 6J?Sy|0~=&Ja]\? =/Ogf( nLӶAE횡`]&IoK$ 0hǨIz/P pY"PӕT{JEmdđ4)&bhR6E NSF8h 7iet0MdXY^[3-gA`g$QbX`4$gZSA1}FJ ªșVHaŠd0*'gZJ:2wQH3~L%>`OԪn7<{R/#L+ۤ0guHѐDnwz -.#菈xNEԬ͢R( ]`neY|Mٰ6vPSOŢ*BɿgUkʥ C9}pܟ3!VY9-Z1mvKHp7,P+#\L6dB1yy\e1o1^tw>9I-p`I< $n:-Tqv&ĝ}eC)Kt Ö﫯>^8n'n2Z/! C)zϩ V`Q9U<%FV #)o1 }/Zxѣ+ )Lb&YoUe,\#zxg""ʾs2's`Ϋ HAf-ۑWZEΞ,53P0Ȭ5k$u,f,<[TM`M0]\YJ.߁wm'7؟ײ!#lQUsR{sxh7DFqS]mKM,f;*j7ZʢkJ?9x}ZչUtz< {yDm4zQ5P4afCZ\kEPu}-c.m4SM-+{$67Ak~ ʵJC oV~~jcfe?f G9*Qʊ b.;Ə-m7gQ33QR>o[\lj#|F]ty֌Hǩ[b϶uEŽ}ECx7XR/>{QY ɦ} ϡ04=\'6eACKnۖW*w/>wTydM{CYjV-gcUr-uDh\Sk7qlPhwζh&uxE_C` !ߖIK~;%xBOzTCxp Lǟ?D׈ht|3ۢz1ХõMФlϵW'4@SUAL#wζhGborgY, U#4v E9ZTp2I1csCOL.֢5>JA1 弩;SJ[RԤ,#e"s1@͟jkT e3Ѵk&n*;h0 V;%G~ Õx;%5D$1?Y\=ΰT hLп<0!Up?eŒdbX +'pQNr\/##I_}řVN-Xz0,ۙV͔b/>5-є)xHbbB VVY U^)N+>Y/9~U:wiuoֲW۽gpLyլ^'>aݱ.8<˽0KˉƜb'" CNOiB0Vse`}godBe?AѦC̽4!d o*N1? fZC7@﫣X. e /Pi ؀4=GG#mg؈OG P+9 *"{O(5GZTYh$} X +cQgש5/c@q)ђ%.e{Hl{OodBG~59HFEQ-Va.|`}Z둆?Thz9҅:j Mg$or0]ˆ#Zոw$byY%sа*#T mS% &UQUD&M"\ѢAd1:'3Z\X]@k,+QiH\QӃp47* '/%;>V-x4-_R28PM z/:c܏X"xNu(UNQ4yxx `h (bb> I?t iCy'/"H s%Fa"~v:kZVrYT=c>\  Z;u54ճK~giF:슩R_l `M[JVWM|ET$88!Y(QGf F*NmX<d@E_ 2ex+J>>R+,^/>5mt(ԁOXwMlH z)!Hq%RA0] ZXH$([Zzك{rQhb0xs0"a;IЫ~$I!-֊قN"账u&xb1.X|h+\ނ^z@gmM/%cty+xqhXZf7|ĈEa?/Ͷ󣹣#Bb}TazpmC4-_?_b6-2Vs+x@tnz͂3,hZO ^%J߁(ca-Izo0]6&k+n^⽅ځpy kt Xsf >5a9 PE^:zcDl\I00m7/nݺו*`]?m;~lcT^+{ 㧆%j=,M׉wUܫUj<(r?w WZEa +, QWC32aabd: H>'I>NzM;,Q`\뤝F[od`.VsZQ6.Xdz,{Kn}ymIYiۊyМ>ߢS>+ e]t&e5ߢhϷJb5_Y-[[-~;m'yӂŴQP$ @p-і8l֍8ЈmoU*eͷȳˤ[8ߢ]&"3sܮחG.GƗl_{Y՝}V_G(!+^0/wYzʿ4=JhS3r?( ܺVu:+DorKCHqQբGiXYsE CXkX`Q&u*Z`QLZ`_#9 _p5 ,(Z"7&e[`iMƤN/-q+K ';XT'<{-kpH[hQη&wZhC N^hѠo Tѹ%D A}BʘՎ)dTVA176jEN%y'# ^%~I:jYNzwP&y/ҥhE+S$2'@y -zdL` W[{66Y _%F$)@(t wKAGb@[WOuDtTeO:n efCbӈeg܋ghc꼸M۠?r>{ql?u@EI>l1\eE" 3)ا{u]tc_ƍS##nфkԄWӹE>MCnnTchݹ PP3{ᄿD$Mh8TV ]ЮOAE?OG1UN9OՒ"Tkz?nh lfSl$ i?XPKGec։kV7hVOiV}RJY`>FrѳJD\\>&m?BZ1ǜ<.ڟDŽhw/9֖7{-J~IaFFK]Kۨug->'IOl#) ~=̙y.=E3:,, T1 Dȅy6?zk7u礫6Shļ7sL`p4 1^߳ТU~[MQ[8ff~aa.G_L2;ś>f}1XdTKjv-@K"w[BXElުEO-c'C'L?q<2VZX)BIيQ7j,6sYW.hl|2L~I"@{D1%. 48+ޔ5*ydteix_}LsФ,9]JhoX*8d!++6ǣpAS xt#E?P8E eZn3V2ei=9q8,ĹVtpjQ.4fE4U*k0 -niq{A ^0Xo$FjSWC|ٖGr7a"νRƘȢWy` clXdۿDL _K@ 2A[T],r8 ͤ-/i捩BP;Wn=f|Կo+pE fIpj< ,{nhop^H1n%CRx$%'~QKJLc D%,pjEí۞'`S;gx 7FqSav:ͻ6/|{zT3/|#Ev-m@9>~QDڒee;|BZx ?  <2F~4Ǻw- /xp~,(yx_gTc#KVOzZ8կ7zݰ"?PسȢm,RUDa޾VZI؛@-XC98`qKmDx,ƂeX6"i>9o*C$s`qȢދ-ZV\lQC>o{XY9~J'g!<["q?ʶڲYyVfVE,igD П@Fm䭿mK[[&.hn}M\TnPö l[6O4G[C[Sx#Лhnuj;j V1~Uɨgɓ('dXjEhqD_گ˝jP#՚wBYReᰍ02Zbӈ>p+ y' h-Nt7OAU F;,UeUJV0^+ڴ*F *ţDy7D1Jd/2V25!kt?טѾuG#*+Y4>0ܥPqb qsn;[;-dt7z.F5ſ E)J?^.vM/2zqЊC|",aJY|2♹UPw(" 9I,~`~ ?E*`?jQn)֧N`iS&v@Tyk!/-7#:,Yt{Q[`)mۑG%X\dH :L!v@-;+9|Aնq /:Z䩅ѓ]LJ-OW }ѢN-2;Yj_[:fj}}8Oʄ?q(&}`rXV鴈=ZbP6=q3|28@=-*8K !h:ڢ-VmQZZ-yQ 1mF15aYsRI!QdAe89Q>6XnÚ-H*`tƜΖڭoЀ [Rۀf2- VGb6`DS0ĦKتȘ<5`IQXe)z@r!'HsxFf)-d6yELvZ6poTl^-^7{@}h'5Uk[CsZhY~SƝ<#Og .c"m#d+R`V`) l?P}˒/P%op?¾Px:{XcsǺ9"wi)}QWEl(Į-II FQB}UX(J®|2^7z/hqoFhEhk4 ):ΔY-6v$-6vņE,Л_w7x+jE%vs+fu( [-{O$2?2EPVDD_u9nl<2f\ %h G/~C9m–0HݙǢWS3$*:Q"'ޗ!WE<sȓ?npc9R:`ݡ- Γ'pzNu_TQ_>Zi\#Zp'{Nea<{}%As.jFxHxږ0~ rAͳ$# gXdѻ-EJ*NjEdBaұC'wҌ3``mٿ@[ε]8sR@ }DU}|&= .)uNL|*ǫabz98ljMҸ(M'Wq]5Qm3\`*HQvHYX(EU{t ]9(j D"lk(  <>sJU :)*EKh{8 ëV%A긯Ԏ(?w xKQG"#5ʣ9{Qѡ7Į^A:P+j)Aq"w)+x OՏn]4][ c5[0}fʞ3MAr` AwEEU#}?آ!V7ڌ9T~ IO UT(GZRDs!lorЮPlh?GgY߄`qc:cBks& 9VYnaCgĹJP#oE[7fׂ0F`yoc&1"GLA݉hE{7fRH!1FK 3M4tENܔIMT=ʢ􃵙4^K$E=ˤF㵙T&aIAf7 #J?yjVR(>oR1⭒/f1mQzLRMÜC<7+)Sig-S uy\ hG:I&[ 9>.pKZϪO%&@\Dz앬rRODX傥 +rR6:.|RTwI+q]3)*ztD;,3tl@m+px#5wâAqI;ܽP5?~f\m:s ƏpY~Q>Y7}i?s|9|U}i?Qy|*/] c|ZT$ӓ^,/:( *5|_K V'^捲J^*ў6Xrn{8z8^([ H U N828P1%b8pR 4|>VF ;dN񖓡sh1 X&F &: ١It)7nt)fд<9m2PП\OBSS:,",Ayc^=wx )#VJ [l>>{EO VIA|-.ufz.{ Bܵ6pA`DG3<2Zb`{2JrIqrxgrJ\fZxu?TGMaS&2^d1 W)yq4yDlѵ͢|(7Q^f!'bUs?!OP+4|mLGl xV,']h,Nd[Y|2Ǝub%gFY4&Q\[jYAE UJEr̘yERMՋAFXV@2i{*}+ZV&sY[ڲe*JqmYߛ*eAdv%e9~k[,qhEq(r(q o >NҁA1,sYPsNzA{;ŰŘ=xރiM+Ft>AN?ڴGUD>%$ODA4dQzi$DJ@5,oȢ"Y #(}ԲUceve+̂1S46pHVÜ51 WϣVfX\ jI[nh͠'bԅ$Bhs|cǂL5s {/rR[%WJL5p e-2vXkF/gP⦌1MNQ X5$qSG-( RHW{ % rlՙƞJjr&C׶>IhcIIQL& 5Ԣ*S<7:D6CZ^J>{VOaza99 ejKHGi62ZMk̢NS-~lE}Ze]^Xfu_}1]]*շJ 6<-Xm`3 g"4Zjc@g5 GKMc5oc-fZX0d3!:gDvl_V,ƶ- k׌ kυcWngQ"o1^ fKӵmwl-`W=YsM i]cs5 a]ӥ]yP>[>4x3C)0`ڄT#q^#32xYwIנ `yDD|?jM ƢkYEO,qE418R`w,48[iAUmμfիvūKgj|ZPtys-#9V?eӬD lgYM+ V>B|g %+%^͞%^ϙTW>fh1 4-ְը184/efiB2JrIaR^ ۤgFU(Qy~ldx~lƁu:@aZ [fQyn6j3ϥŨ?E-"J냻;@t~keu8s*RItŤHh{b*YLBkvˆRx`̾vT<2NwKIͱz3O#D}l-[Jk5&No(: ]E7;FIaYԄBv'(%Sl#1{"d^yW +lLm9x&EdA[Ğ=_JT P}fN2&@2&(!.ݲI *YnQ[3/Xs(-g3͓nՎN:^ W$E|a`"w#1v;*M!!NTX)*lQ,CU%&YHv IED@ H RĆ&j b, B@-+H=337P瑛3s9s޹ O c,w.V_\>ǩpq8|YZ&7 ]=NH{"/.Rrb$7*0DECqb?O4S.L^u}f2f\ud44F˕,@{m=n96~0FǮ96:ZRTOX\6A3='`څP|uC/6ĬE{ I +( ,5cBv")AəE SnŔA!Y=Հ꟨z?NiD558ÿ́9UCJ`zObv2ns^h*}˹a @%"5BPSCX>ߦXȧ0WN*Z i5:dғj 5LVY!\й4ci9iudHyDdZ) "uSw$Z߬?jBm9˓d<Ο͒wMKK? x-| N9d`'Yhg <{'!ʝZK{ nJ@MO $#vt`g1OK KbF|T1֬$7FT +٨JX\y(u\͟jh3xvLUCf%/)5]>tV(TsGlgnŦ{ppJh^śhSgyJ;Ij1E9vg5C9}E-+@p`8x`07at slb3^='lyR!p=srz!H"GcRJS-{"dduz4}-7}(S~Kȏ`@o͵ܕfڨA5 gz"b\s::FI7g(U<ߜ˟oNg(|>JvKObӯ V[ЁDuljx2`Z RτqoS0[ $~ $e[#٠rϓ559KusU.p4t"mT+Ælp糴+mq8RV=!%VxFLuԶld:E&/,jL,# ;5lCG%ӌ6R ^2[A mL.VvV0ȧ*KD? lR ڧmt<eG(Z2U /A9B;_*l!s\]%yOwDS?q MLa]hCS cq"kT ̟γQM4-lTF;hB5r.Tp(7ߣ\d\qhZ?>>W v{ѕkhEH>D-QTO̚8=CY} ]GkX+Q_F-((8=gyY<-W~%e1NPrAJjU3k:w2=4p:ubөH-(t`wjN0!np^U[{.a p+nu/Z\Y :eI[_^jON o%ʭ nOwnwL _L6>qgqwDWߣR4F50]Rk!n)!*u=c?YLS 3z;[-)/S7?Ӄ(2nni@?/x6Y;,?3צohb#UjSdR%י DrYrqY"lػ?' YSȒéO6 jH树g^+Uә+Z롧Y3+Q{ZHO6:FZlWM&,qjUȢuϪe^^wKJ ^$U?_Eg$$\Y_?7~ e1k uWVENg 4ʇW}؟uONGYdm0 gV! Uo[DYtLI_sX[Gn)#ocsn+U[>*zFs6;;t!23vaMeY!kO |78d=ϕӁ7xrO,+=oHi |lL+o _'̷Ql|9gh;L 4AF4 5?F%FJKpUjZ\aQ9/ĿM/ t5ŁTE[BeS xRRz* {-#{{rHLm?iQU,%4?j܋6ܶ ׭B<%9(V9ƅS%>o'lW\h6[ֵ4!y|Q\v#q~RyneM8_->NחVbvOq]mn l2RR^]KmQ*lqG ]`ͪ{ Wwbf 78 nU<8?bW@o\Ƥ5e+-i/FT|WY'*L:4l53 L"cc}Zz邩}k\trAܼ\ U5ՌL]7jMUgOJdn {Sj{dMt+@M(M/|̡kPZ_*G?'Q?u7)Fq.6U[Fv6K=!փ|_Qh<8}l=N6._|uƳ(y (=?|UW_Lc褿P{zVKqј!_+ՖGCm`V+3FtM YkMRZ>w%۠)u@xt/b%25ӉT^Z(9w t']%8P0@ZE "y: 8~+{[aWx ]] Gt%6⺭5x`e ^ 35 f_)7lT NN_c]!6R1;6J>Q/`lbw Sg=[t7V wWo&L/Ėg#{OmOOJ;`6zueg0a a^]EW9v@0Gݖx^&)moB]S*fe#KHE| vzsکі&-Fo{U1Td4G[VCC* YŪLgo]>ժߟ9K=j{ZGDY2igW@vy=Zr~qFF{C==u6n;hKJ;5 ]ro lKz|"Ԥmt6j~Әb9VƋm@Xxr,mxX=qKJm6k{2U\u)u!dZ2k5Ddڬk_`im| JܞLY'0dȇ:U4a4">װnK$F3)Zt@YM/TO悗qbsG'k_M~7s4/rG޿*>Y\ڹF;N`o*k4GdH(y":1aU45T}<ք CJZVtZKBPp9nT2f01~\ =rXtZ=ʐz%Zx͙طب^3+ 5q40Des'2Di5_BM!Y]9$-Lfo< 8~HcQ4A@{\D^E93xdL]"L]#:CTՈĉ'Dc@h 1[xCѾ48})5.ߕg ͞s_t"M(t;%Ae>%FەZ@p˝M:S~P!1:YA6 J)1:Sa:/skh;$%Fg&}x' gңv\0G!nH3.*a?U\~J.P~{~+pa U9Xrέ«EFS;c͆Rѥ3UW9Ik3U5*1{gݥ¤*,= Cg[[Cn41: ߧ](O-O/ vo.(ORcu{OA JU=a +"ʾA=5# x8wIg^dE]ix/0ղmlַmlڈ QJ'A}`6χ [_zrd=Ծ\=[C]~vXr+s <{ ^Uj c>ⰶq8'3@H# J]=/ Ql6V]@ 7})\yZ4+[X ;\`R~,jƔVGAJ^qaX nPG"' : Ezz6ԵuaE<'bBOK÷wze7,0(e+]=QE{`IH! maIRBzB6LMOH hFN2Wu/\v2& F`ޥiQ yG<4ګG_ᕊPW LU%qcYqGcaD})TOG'&`(mFAK)EXvQ(-&T\+,s ,s:sTxDN ^3}T1=tT *W<5O?5O٣yS<{i:ųE8+I z,[fצ5xl'Sg^DaH'DCqzߜ5=ύ[ՙtR.iX=pFͱ:#S]`v(9a,SO5B|g<it-Q2 Ds*uz"7ݡR'r,)D.>X UVD Sr̅5 *T2V'ro3son)%;UD.hII,%2U^^^Y6"g}'FW7Ψyx58[7ƹz=B> Կ'+hWȖI4ouszK%K4Ԯu[sz9wV.W0G|PH #/ ~O)޼<c*Ur{q^^a7g` DQo*FGX w$;ԈC gPIqa~!_i쇤Ρ=m FM!?C4X@w91,Dڸ弝6#N_ٿэv*f #%HT~_cN #9K<ug'9 +o6N8 ۴ xA|ёH)݈(ݠ3(@khׯX@*;RH$"` &CLP#@̉@24- Ͻ$qd˄sB0Sm`oNb)N'DJ z1<׏ynJʂܜU3@c*]]t+B-W:sW'@wo-q8tDлJdɅ Rɷ%ZV7cDq5e 'y&«? t |̶Oe`{N]/z(]|)dv# Qo(f[QUO}5f-"1nfEW\'EtcP` c2,@6jX;SSyYcB^qfIXR*4KҸ3%!i9KJXΞ򐱜.QK[QYm VV5B;t=U*D z?»bD;9]Wz.R厛A/7$Aq *P\3x ^̣2o y/PU1X_$Z / *kgBoeDُ"5X(l4\%9sۉM)Yq0;]z-@ҔABZ T8JPAv+SOxdМ$esAͣqd:|9w|) QEU˷(hw4 I R U#B RB%$4$h5 _=XPӽ=  t < v)B=!|5qfU= r#T{Df$ՆEOe}w}HSpzZ<ɽ G6m4N>wAVowq X(#, S߬ ,o\D[7*5/Lc}L<&Zl7`s]xewnF5K&9H:WL(xfRRʕ_Mq j\POzB bၕJ4.𽋑|lM5s|kALzW2,z\ 8!7 AW\(pF=<>WgޥM8g`bz{(_((~`AU]x8,G~BAO tyKBdGg/v^V]1 di)(9pM6pe( KNY9.B?ǕYJl]_VEXs`^Zɸ#= ꋕso]q9.VXQ3P*餔揽D4͑wyL#hcG{lLK%{T zu V EkK Ir FbdA˻,t{ 8(W?)C=)/{#NXc-I_r͜TIjw3#o}f##&,wfedˤ9ɸupn,8ܹB{B 9<*RKe $J~75^pRцL؋OqNϥ5׀G_v%^eH~0 IǸhS]YH(%%Y+e-}ڟ2>͑/M-A VO4Xkqj]B5rYsME`?xUxkaWt*waCSt{>sJ%9<~QЎD7`[!+7w[$ߜy^UY#ܝKuBS۞yfF#ދZ#%MHRMZÞBG>w{Z`ȵ"75$kPDcő1װkqnW4C-ۢ07 UA:MdD" Mnթ|W*6'VPnO>}.…,/A̜9'Ov>ekYB;/95j.QaА5"!Ios5#$ { /n`AxHϖ:ߖFPꇃ_ Y|4?ij"k5M"h=L9*T5"9O qpVԿG8>88qp{%=@VLo/EStDA΄C"8W5㏀|Ɔ?] ޫ+B87=ċscDRh2*];I%ϷBpiI 9[+bk7DVU5 }@ "2Į~NCYiꉂW!+򩂭e:'qFRkffxm^ y 3Dڄ4oôk_e%wVls˭tkr3ǐ1@lִOaqjߎZ?uT]T.Ůd՞&'3;O63PÙ됉Ȕux'ջ\*7K]% 0JX@U`dJg#+J+n5&Q8 Acu'.eEv&#$nd6o&kmhW?:Wuԯ-|uBbÛ{#;_Vۓ#'ڙc#zZ{ v|t]jt@K]O=U{$rp{FcQnM 1vCyMي'B[ :?ztm(0af5LЭi5`p0g {M ,߁O5 \#& >&3L巋Ȯ/{cwߔ\U~w G"v6=A( G m{UN"2m\?R1#-/` D};>ϡDAF* _|06,8#8]$]4ZM167>A6(1,ӜgotqO"o߁Q$7-dEy};=Psfgœ'#U{N,nZ欸yy^ۍޛ[/x< k9G >>GP㥃QO 4E}5AG3pj$!j7m_lC p+Oͺ͞(!* ^™xVxp8:jJ,"BNl_ &8}9qDx ߁QfMR)i< @H etk?l`)2I'mM?g'㐄tV~ÉJcͮ?bMx A:ʾH u; Y/Nq¤ZQKՓ&UG.nzbNHcWO.2/T# ޳V2ӸYdgϿCG˙ ғC+>*VrVX84O 5Ӥ'{EU5R%QW~[ħuHU!? 1#]?Mm BvtƆ"fx?4 ߊ>zO̴nv qkNCjw }Ϡ-航8FƐOpp̓-Be~ozB䳼iUʭ"DR|pA$ႲTʽВ7\ВR?t=N.Ȏ?f X6\cpAW݋EAЀ~r0{Q%o}JQjpAld,6r^-+TVFT,zƁY $O ?O8-+rcK, T`OgjU,U 3NAiNϞɒR.DAISO\!x`YbE-riK,;G2 2j1aR^,D[͡L% F ,5pĜJ] lg!bJإ-N-B^x%ռ7~0A[Z,"ZҾTOQWQT˷?Iqh *qwp*hR&dVxvJ\?tl&Dy5}p GP<+?pkAYa\)Dt+~;B;G{F+O# ;y +l4Oק&PYDTLH&j~=({uf g~]Zch!;ce`;D"Uy>'{PO@Qړ''gZTF bO /LO>8'<JÓdk(mzd>'+!T&\οGЛ~\i}W_*Zx'XytЏO=-n:C\@qvUrvg?^dG5*8]f|ǩ@z8C z%<äfbݤk>[xͰ.AZ3 24!l -xK *xXfvFJ5),cm3z| 4//j#0%:aT#S E1?牉q&߹HZRO#9J{::/7&xtSv~A)",]^X~YRpy?l62SNE BfxapБS(0i8!D)GYCp 9rF 4ϥuݲ=FwQcnʋyth8#?7.6#w )07+G#B.5kq82i|^8oVG]DmH.xC|=]ha9J1æ,8"{!±ؗ* X59<ݱr3WDϩ1U(68 ]q!Lu=-q2L=A1 IBԨ?'G4'̆_p_W]._EL=q]؏Ɠ8;_]8"S!T0"q4*X+gQ? 'Fgzh߫0hKq k)>Hًxr]<x#fa7?;Qـ ]oR=g lj5ߦW\v2. WaoˑW J,?/nZ)R&(JAb[)}E񅕂|T[=Q)h`+╪8_+[d+ՄRc4Di%[**`!)yX˫iJSISOEkR 5~^mF)I' >~zU$Y[cmstbhYʨ?6:®* kzQ^{@Y1TiV`g|UjUj*aRirܥ*aR鸢Y $;8d:Xr%GK&xTI]hqTå}0-1wҒ{>$R< 5RqMf~ިwh' -MA6KrD_A'Ej׵֮&PFƪufF4b껴Sipe;ԏ}uRxNh6۞?NHҸ뤹q8 -ypp @-À}vB;vϾ1tlз>;]-ԥrulcȥ'1m5bJǤ+Ǐi%MWN[Km'9q]WV( rxXHkcS~óR,yT=Zwp<;^[XL`3ƐeE&w&= +q=gd1p,E8x )~)HIt pRcXbU2ao39A‘ǯj< ?YRժex%JF)T4DvcP$s|ԉAo(-KCK'?C !^*< T:w2M.t"(7ơ=T 'Bw0 ml"LK _,!n`.\uR ̙_HwNKg=ߌ+\xEcǁN9RA9md=8~Q~3V'8(y pcI[~5O5Hkư0t's3֠0/.lϖ0UC YgSV OgXYs 0W6֪'08oG F,-sY hWV1ܩh<&"Mi^4 ,N=j ٪8x5 CvGJ_Uwp&Je4: d !O6'oPG|,Y8(X .?4?PX.e?mm[IXc,)7@~- .z7,WA.(jJaQKabKU9dGߖ :Ǘ 6LGU#?8z/53{_}OBpb8'_80}[ӣx tcC` FardȞjHf gzd=+u__23crѰ%yBf̣gzsF4<r9)H$-qef9i6h;p,6K.w[8AԮˁM./% me1(\Y)^Gz.wɿF<&!hZ~/D7\A5nFXn ͍sq_T#Kם "(\Osh?vH$7uDRvvaϞW"QvRL>CX %r[$_OܓOHMS`hr< Ū|e Ơ.t{8ݙ,#aE :#k0A1'? \TY0g,9nSH:CyaTRp΂ x|Y'q4ͼr!סrb(k-. }WG&RJpț}RUʊQn8˶Rxf !( `U-&Enx J*h=iq{z^\0`̶_(<e ~,) &]P+dRE%c>|1]?-͐=yJiGN)S)jNCq Y؀g J.ILSy4$ѸA5L|C{yHD0gY" g܌ I8G7Svs1AuL%(:A9EnL_'Ș-(`,s3rƭtlLBw}~ocD'k'I?93E޳y:ARLQ٘[gt*f jRjL[\ t]%cܟjQ0´$7y*z/tAWIu#(u:A9~N9pFpPԣ=?q;q b߽Y2kW#c2!"~ 28,W>u1C\A/ )AzzA] J|{2 2n|k YzAԝ0KR I aR^`t#b]/LU_jE s]!g+ AB9YN80'?i#եe5l36jP#,G唶{4Ž ¡ rb"|,@H! G8rB"P8tHkifvlL,֋ٖd0)[J1ZJi9ڞ01h(%E= LS %$Q} MUt0BbVyiUF,6FZAOT}(BQ+*^"+mȶ1wvs{EnGMwYu8N!z jJ^8c;E"b6"~*Z3GhOA_)hKeɼۖjnĽ\Eo#tc 5 T^5uHFtUe5J|wj~c5_@p))/Pei3lXG2dI|$"=V[}c>*JIQAie,ec:UWleS_\cIQvdSPe1d|Ƽd)e,ijj2yڄ?FmVfת'&0 2A7oѯdiFu٩O]L7W .SP]f+S^iz1pvL/ZŖ>B:HR;A HS쮎dH^!c7l]TO V˿R뽕]<鮫+Yrog*凹gOE>G5a*%f.[%I?3rUc1ڽȇM -1WiRXSU5d|'~GJT~gALR)ZI]OT@S jj)b;H]&34#1fnMǘAwvMOlT0^6 J=?6 CBblĠ5 Y^v~-u%וP==\`X۬.߬f+goCX/yC | %ptD=\F*-t;ULX>?>҃TWYkߐ1!79Cgf2G}@֔_S hѥAr"[׎vƧ$t}Rݝ-)Va^eq;P`֩QI*kVz}%4S`c`AքzG 7'AΒJX-%2t 27de.YR%KE"րPL(V=\ڬVAMFjLM+@U zx@@\ adY9=Pһ37)w?p]690,зM%'$!~;~,}XzD pph h(.[2$7cmTpʤX1<uVzyU 擢bk`h,NZ7ɝH95x 5g%cq1mzKP&2 -/}T.[,!&9^9Z#hPx'OHC;=@Q} `AC+C>XN}T"*_Bح Odp>SX@z]*ԟ%W\o۬%OD۸im|N5ݍy3}N"G#A*biXJWcޟ-Z ~ 뼁~n=J ( >n㬇||g5^0_ϡG*Sjϕ"aA <hJщ/%?"D|IS fd|LhGI}$Lo){R;Ej"&c%Y=ч- vr*8FCQ &;*$GÐĩyGz"Y`v;xu7%gHyq,sq\jWmi+:obZmV?ł@a))*zZd^}Z~:s&RYd}]QPrA̅ B|"F芅>A{N7uv@ZjƅjU 7 ^LJ_T]D_V~Pu.ɏI[)u;}qEPqq\4Fƅ:򑢆~B"+T]?[uUZ+]JyH:s|U |<"|{q &KI@J``-Ӻ!)s5r7E揬ƞKs d)q;4v;*TVM=YUIP]WY'IԓJ@mIG^IP [ٻ~LBɄ09g}7 z;6 J8&(M:ԽIЬcGT`/):`VW>%k 9')~<$\zRK%cX%,;)90H>:Wb-U{gu'jP|_/(raUx 3F P807*Zߺ_ĂщuG7p\}}g]O5 YT 3C`ܤ'c; S(@ ~W |lk㏑l //g%P˿u(XmЀ9`H4H$߆"E6R8bNTo\N7ͨD =olG)]I-:TN ݲm#UGFme'  D( ζ]% {_&΃qpָvyiCc.vFɐFB dq iDMTN$hF7 z,$Ȉj `OQwPZH]ZX.@%* )xFix]w݈Wg1Sׂv+pJ.ވѺl5Wc`~Th'p8d,Ug=S<<1RӤNk,M~7s`CcuѦ_/w0[n7UB8s I1 * `t! ,| wI#.|pY&bDs5x]>QIx*&M& R,担1i0+N'ixC#`e&qi-s2m\\~oZs)3>KBM|f~,4ȑ*{0F|ҥc|$}tXC$;ي |TOHGITP,U%"œ(1U={U)5:tdtixF1˛+&AKZQM2OzA4Mz <$NB h]`2d5cKhFQ o 9U]K]ǘBrJګ!#QU{()I`f}QAg&DQC> !@$i40("*%HW FEE}>{Pܳkunx"u2ۇ^τL/-&V;cw,D Ѡgi/`!XӊKLĠbm{uCh;/v5C|)"П^n@ r,_7pEPNANs ,ܓA737Ӱt{tZliqX*_(i"5< (\wGmiN~gzkb#i`Tƻ&~ ߒtKtk!q3THS|٤()51Ji#h=::¬lBjWl4T*-$J:R髎\i/9L)N@q ;񒶜ANG_ E}r fWLfV&PI''5I[@otB`%1i/bY@:#%fbpY.,Wsb]_ǝLSL5VNtD4%1iLÞ]!Ts4,*b D~W3v3bZ7S=Yэb l!k;~fZt|Tt|lD :^Ġq :3= 1=kuowKkoBqKv$ͨrىt7KW!ԎoX}NϜrA$}_4MG"&ɽܳbomsF˔8| ܆づZst [bonsO5#5bmIJ}1X\%_N^THa &[c >/{hE/\Pom/9 ƼwכTG,D%]h 7=q1B B}r &Y\}:lw*ɧ5t67tt_POj0~9 ' ŜQ{!d- 6MxtD[4Q_: AGK1舭#z 8#މ4>mi;a =1tA+j'NXƵ~ wrwVCzSz=鑍WSc ;n)}H{=2vA|HHI^/%pVaĠ6]b.1]!W;N ֛}Kv%;8K>38>nw' Kl~h.d]%9]R-1w ]nIw%Ly9VoO?W>VIq&I'e$$\ z$r1_κuHϾ+~IO/NF=:P[4plb0V`qpqA8.˧N 9ᅲcVKLbй O8=%V@39MT׎ _2:ur|0,NYɂ%b Ik ft3a i&A吠:&#/ EO؉BC´_|+褘<c Zv qRѴQ%Pd  D^aٸL,-1Y'OA8L[ƪM=!0V0@ǤrJ;WbtD)ΌA ΌzəQ,#c=''y\LR Lc(2WH#lVKDC<OAŲ%P?2?.EhE9]D ,}*OÁo|4L[`Zatgf:4LG6吠?u:RV߱HN)^' ҏGS*Oy<|{HoXh1J,E3+YR'ŻgGQ̨UdMD0:A<˦ 1 O[p?ʧ6 h1sq}0=k+ZqH/^ ،A]q. *xDG`-/Ỷ~<tr([´AGӧaV@GZFsRL^n>dxX( 䆱ND jwT3=lmʱl8a7!Slc h!WN6&D+Yj8g/2Łf\< _isR|3i>82d *{:V秽oo&{T M =qxHAzƭÉrI Ǽ'G`>mn2b_p+9xˬ X 4/? -Ņ{~YYt?^!th8|r{h6?v?(^c;/^!Eu. Oo0rMwR|<, ZNLj2G:_*2vMwR%+O$VL '5ڰ2k*zb|2"VK^uKK(%h*K2nk/uP| ~Kg+Zbq%1e8*;m7O\E1E~P>e⫐cWkUexA*@`_ѓ_(0}%[]kKѯb `cgayU&No$VL,NECcPbpD\bϖŠbYczgU/ p(Kv# _xޔv_xsxϦ_cNI/<w o`@S4C@z_B~~P@qoB fK >mkMފO sRLc7a8rޗȋO\W9|e t6h2fF23,l/X?p};vhsP-hG//=ĚKA݄jLnyaNs27Kmlq09.&Cͼ!ۤiN*ys:Pq0jfgC{6̓YD<<J9bOŞ6o }E'O[r(+,,Bo@(N/,<,s1+H/e03?1Ĥ؃NdM[NS%[Gۈ|V E>Ѡ%fH1,y"%fj_["'ezhqwb6^,S5k1, b b`:~{[LӖ֘o6X72Cր~c ǸC^l*VT 4@Qq|()[j5piˤNier2wAˌN4tT"C, ^65꧲k?ܬ u^a'qG ){n4<̚w0j2f_க-D\Ľʥț+1Ŗ&PU˗fܽJF*鹲姌t)}9/jY ;qR\&zb P90_~z+ߑ~U՛WI‡p5]:լ,ZvF-䐺 e0B@P \c[01{Ii+⺾A2-=*/jbaDFv&G#!5rq>$PG$*$А #cؾ$VYz` Ӻe-wGf7/FsIW\A}e ߭xmakd#0&.V3>aw^Wf'殕;m;עNI( Lke_Z<ƒK \Vz3S4,fxlM3} ]8)/Qq _(W@Er4K#6.;Q>| mFBQ{8ϼ8;ӻq~q7@k*ovRϪڋĵ$W%P-?m3 CAkt~0QM>n)ܶŌAk-8ɧmq `N~!}\hp+.\!}8kUWT :S`~!E!yA/T݃\G/9v\8褘swỖ1:7~{m9LtҞ$ZTB ~bҁoCܰ[^uL8 x/]{|*2;\\wH|Y,mCanǍS|YzWv߬k.Rgb>ytAB.?⩜oMÊ3??Űb~׏l`jOm=Q&2yZ UH1FFcr9 74.d 1VP?U1}̋fC俔OLΟRR yRg V*j'6dyUA i/4_ѩ9<$R(F+L]@;rRcm ^2[GKc: q#;W(mClqu*K4FicY 7Í O8xvZ?:]èpҮ{?v3}VOQnВoQhzArU`w3VC}3zUmV_`=u+t5?NCZ}[7N̙hnOF׸5j|mߧQĖM_ٻp+L:@|2/ULr\41o89Fw̬šj&T"W3QC.W&}*f&_QVNPL'OdjrlaX]̤ffߪvk?pI5'ZzO_ [PNzI,v5=K:sɓ'OFJBZRZZZZb+I/酛8)f=us5!U&_-`asq0V ۏLŅ6~yw 8צ.y9VY^Cá`!Lg/W֯)IC@Mf0g~p^q3mU7x@?ʇw&lšR3^@PccggsY˚P=~Y¬L:hiUW(7|knV$PsӥoSKFˇGj]7kT~:̡l³ټlQ.[u,n,(%atwLw[ݘUg1nə+P{]k5dRCr3z|1 i` m5/1#'󚌼Pv0qh'mum 484j33 $ʬ*>DZ-E j-Y8 /<[Z=U^y ʫ/>[΀-6=3gQ=s@:524*6#/`a =fh5F\S&g_M,F(I@/bmopm(zHFAnW}"v2aB }/KI* f5q~M:Cry6ߺc_C|դVZ] غ-JCDO.2f5uC~Fxgb.,詺BI6MWB"b)Y FB7"P4&`*IPaιCVOoy>Zޱ7M|4-> #[ded`zpyuy:sDwg~)1h ~S$roZ#IbBT5 Zv FSqm8Gj_3=jNZgSZzȁv]asP1 *~O"CDLfau`^z؁mjs(z#E1ys.rQ|9i =Ƭ(ˏQ.jDdzhQL&6fx(78.E#">q+;:П]SP\]\M(5k|GEwW])5$;}(w׉Ϫ o5#qX_i pG,[`2LL-6k,Þ2/F(-x2<=X㥸lf-e8M7b$9 s *NwCT=zGd Mh(=:m$~lzyGTJn"&=P&N*4=<qĝ9|4[&ȋp@ﭒL-Tnb(vHB%,SR">>ܔn4([_nJ5rE5J3(ĺ4ə`L\ n٢ֹː!;$ʼnL8¬!;HX7u|P-XR\&o #&eXZ+&cd WQy8Q7aVIV"y?e5Ud ը!y8KaVRv븜}RqfƢzqEGwQ,/)k6Wy!V9JcBETbJd9.4%<*?ضmpDs9 7|iBl1X P@~%,v9#uJ9^k9SYj\(grM\C 㹛KrZ3$8 ?.6ך?W>^3¡l`Gl*kkV]yN7Vz.9>cձK$)j[ywFfC$bp? XܱW^(7,PDOZ‰b.mEƻ(>np3j{<V=WԮykU3?4ŎVPLԻNQ{L)oU]ș4abi:I/;op[Ykjn?N:Ztؐ n[z,ϲ˟d 5ߓD9f(*(k=Yl]sw!BCu{]?*NeG)&SXP 4^5ܥ1u=#f(λ&#, 4 Nii-jZJm3q%ꀭeݢ,,[,1GYsGTmA8XP=8mY-QC3r:Fѻ ϔGDSÜ}azGiUI۸5N ,ef5=?x79?+ItPI6 ӳ+~옗[N ;|Jw6,\a3`޸ 2@v5]ZȮ{ n>K]}uL(C_|rd塋ʐ2I[o]yK1Ne{t2 {)rŔ8> ]jtT_M3/w'n;^+QK(Bǣ UT%Ep_zGd ÒBiU;eRܥ8Hf٢iTiso'A8L) "?GDwFBuo'i&G{;W+;p!CV"[8>?pX|U<攰&I+fn3Yй1%:ko79^A9$cONW|_}ٖJyZwx|1IN%rq^Lk5WrC}0Bsy8}hᴘg+]s9 &X y! l0HW(&>V9"U.z/HIWɐ>NJF"rI}ڸ#}4 ,eB/=n"^?:u@{]Z?fvRa[Gmϴ5?kuѳMtvz&r̞7٥6o2qt29[ʃ1č2y U9^19Iƈ>1{dQk@$0FKN11*1F/e"Sd⺘>u˶"ctwcL'U7\IR]>Nz,E6qҁk]>NE8iBf4[sQz}Od'v75͂u\"H|f\nN΅ǿ\+⋾cICȼLzg߼9rX9e)I8jL;Pml9T}i-X-δ`-K'FDk1\2i&Fg~Ô{)E7blg(jk f[foVFt.O^gsi{87hFN܌$e9kY]q^_'u.k_S%VK<)U62ē @ Ҙ1ExǨ_~_'u|N2W0mvU$Nc ,-&3nr= N7u$w -jvs;xjd]\}.IG$rDû~$|=I*X(YjվUdY_:b*"{3ԶՕvqQHWۂ(\6 jF+:zXX)C3r,Y_[>ώZmXȗS[ܧu54#O0({~x~v8LWF$5vGf9ԾOOϒi(OV59*B H:z҃׻1 H-mOجhp2]OP`aG~pҵcָIԵcOyքsG\Q0wRsoFuzveKKDL $iD7]2Lf/u}:BCnc&M74RSթ>]mnoz|mo:k(Q/d`}G&2lLsxfwI9W傆ڛ\'q'r 9$֢0BH.,9inDoe>r]dZI"1+䤺=\dAIzъWBm&DO9:6.rpg|5:dԮPO=q>\F4sN{\gV۠yTŇySsLWq%É다WnIp5@blq;x?0H"@;\[@ax`8Cza7]x 5`$6E>މϢ[mq9s ~Ksί|9'1 xs%6t֝EXJ̋ p )Β-הe[+8[²EpX%T*["k|yn##ki}ȯSG!@y`N tMqc  ɀA=<~52nw֌{|mF$5#:Nb:Lu6KaAf0%hlpV* Z'[}]5̛YÝ?̴DOh(.,!hN.>Ł^K0oZLs`Iӆ dh.mBiFN -`ZV9hѵ~ #6e/[t }rv 䴊o;5ްHfBߥEH< v.(+h~^i#n8si8MgyD5}QCJIVX@~† R8!8(f =Z&%S[%D~] ?f@^tQμ,-JOA[*;~QP!_GC@cZҼEn;xmbdjYg2Z)|7x5UҮ SFLr߇ϔ_~NM7QlMTQ3itM>Dk9LRDZu!f89p5.?ȺgC%g=%eޔƔBT2eM*d?}, wlEv=k{Pt/7 .k +֛\ xP g /0 E6.^[vYP~b m_cɕSjq2h{9I0X16Rl t6 i, fYZkW3_Ӱ{W8?ѰWx +)aE-+5v'3~]0Ӏ4NH`PPḃ"YjOT_n_4TOR .b^iM7u6DCCO!UӔͽ*)};EMmJY||Y5uu@,Btj|O\B8+xhG#G>AҺ~[D Ԫt@\g^r\a_1(0(-B=E4q"@x0.)Om0]ElnA%қd|ts Z6E܂(ݍih,ݘFm춹M^ jwmnA-qjyަT!)H۔ \akvPm} ss*+UnYKQn5:AqYDMzESpLnr0NX0[*9q.HHD^DxFF׳&xlAq}{VSOw K)pJueO6:BD6>!cAQ4]PDe?D{"v믌,gj0΁*05Y'ʫͷZ]!nmsOǸGLdT];^ h(TV&FZv&!rK6OҞ?ь9D^y&3AmN>8䄺mNɜQG3vk᜺Wߖ0qd"5gd$J3tչg'ͱњݷ[{ԽA\񏩕5+u8ZʍNXУ͝h^uH`ڌVZuj9%r)6344XtcF>YffqiF>>?u&2j~6$ Hi`̺͞m[]+ [5/8ESCծ8 Qn~<&J燍?PϢl[u{a(}^ǑQ%>D-+E9t9rr.2<E,Q^a|$!%22O/VW*^04$x%^԰$R)ZGkqsEǜѹmq. 4Υ5FH4 ?볌B&Dør<ǽlk٨|Aa8qpZb:9|.!GK>q9l/Éc%Ea98QA%[_Oi"|+-.~z7?㤿rIyi8nj[TwʭyR{!U kh.wml]$uj%$4OJ-uy| ϙ;̀& +h|>KSo`˶t_2h;# a3sa˹ri0.@7{e?W!e~k&:0_jgm* Ί)ɚY9dYrVZY'UU? K1NE:)~iղtᗢڏuRl!(lfvdR.ŝ-JR(k[)Tɝ#[p0ʫ$wlQj~e=l+}(=*Q/L3\r}EWs{Jy*S$7KBF>ɝ$[`)k\[ttn-Q+Gdҙ6,i/{Rs[J_liiNlMre71E)ze*ls1T`Ur)-D*Cros)*P-dgF2.Wsm˵*p-DޱDzInlQ.ْ{lQ*-܉E)\}avuRX'T":ⴼ#q~Yb3us8)tQ9w41a%qMqP2e䥙F2JWMcYcL}O1)f (@o0(2y _2C 5K Do1<.-b50f8@?-a8ZpZp7 nZŰHy=@/pI{ e&: zBƖQ61J0a>dx%:hF`L& o30v2eSSzh/G} }& o7GU 70d~:p) Fta d7}N== a L~h~bXm`2̰}0J/ 500S3(ízO西:#z}t`a~z\Sa # 70cx0Jq XA4hy &S 3O6{R7gfJeps T 70^dxa)>0d0h^b8pz,0Lu?Q^zi!& 770Y~#@?ңP9Ëb-dTZp(CMO%{i)h9㣂}NUowgNw qZza?60n/861"G3/8>d\.OoB[_Km;unj { '.;h7'gc?0,81&8@?%8/68M_0%C쥃/yk]'ӷ' wB&8@?0>)8~br T͸`8W~e$2>>tqFO_&8bMp3.8N0hpN2^$C}݂'#DZeQp2=8K0/81. N'5'_88Mf!8edu)4f" Ntƍ'_J1NL/3Mp ^<'\'ƑO_ 2Rp*-fT-a/83~Vp2dDp SZ8cM1דq>8(OiM[oJ? njb?>a"8@aM1`/e\&G3^+O_0Zp2~InՂ-[{#ɂTx>7x`/`e|ӟ; ߌ8^zy}J~z4ϰM ғ죧? O2~Yp0^op2>$K/2yR|4q[~*c[p^f68W?'K1^!Go0'Os$ hK NuB]{i1`-afp3n"zi!h>V2Pa`U0>|n?aqFƣ{h3 ~8b:yݴqk^ɸ`}8O0~Fp3~$7U1-K%G_1x'L}nソ7[jq/M{8// ÌwӣG?2Jp2g|zz$S4㥂,h2'Ɖ3?%gQp*xMg~"*!l#R%Q $u%sZcl U͑!`0F/`(q@^Wkeα)׿.փ_G-ۈ8G[XdS(Wb7~Jqg*qA Tke) m>ouETaq*q#k\Vq Uh9WaQ QsBO(-%~Z L)Q u<:+^c"-e)lTb:_Jd#~#C2o)lVb^ }و)X+qRPfئMꔋb}SZ+>qs8QNKAm ;U*\Pڈ*1c1%7[ ʜkSأ ?B[bZ+a_w%Qb^k)(sMJVEbvZ+F<ދ:琀 KAU6Ta*btZ+F<.zBoY ʌzfeN>Q?Ađ_ommyg)(M'UT@sZ+g#떈%b0m)(M* ?󗪵و(ѷTo_*!,efUDX7XJۈǕfX^&a$`16B>u&و:rZxriX 뉖2"U "JXl#F(bqXAcWh啹ɦ sUa>bPi#(1aX_RB֥+Zm + DXopFSbUbJoCRke6|fn 3Ta->d*1v#}u;j̫m *_XD%lfJZ[H:oZ+M*< KAgQ و3+ ug$`Z+3ۦpZW*_"[D%؈-/uzZ+sMrUxB_֛-ڈ$`}{j̹6T? zET2)5bF}ר27ܪPF_֫-v؈IJB֊HjC6dUY+π-ڈ%VJlN4;SkeƽY__ Y aETBsz%~?xzN[tnTb=DXiFĭJUl j^6Np~DXϲJFčJ<؍bݨ̷)tWzfpC*#7Zm BMb]"'[D%L{+q)KWkeBz8~"*a8@ SǐVfM6U@v-vۈVJܢj$`CVa]PXopFęJܠuj5`Ul^D1J\įuVϦ0T"ֽu"*!F甸J#:[Zl ٪pViXXD% 8Q Xi)(3lS }$?̏J(J|\sRP$B*4k+JVB8JJ|U2UF:iXئJW(%P{H6RUXXoXF|XJeHzj£pB..]h^^9FR' X)ScpCF|Bb=NùM)UUu:و(Oa%F[ ʼͦ0I;ڷSi#>ā;>%X ,)< _B]bfZ+q{"%NE+-eN)PPwX_[0F:WO#Ŗ2^Q]pDZ+a8[>롟J!y2wB*"l7xgb}gb e)(Ma*lT :vZ+\=b=pX߇_ܦ*Qo@uýjV6JfX+# 2;%OF\Vĺ>GbX'=k)(N*UX {@ ,]%^__+l U"Jc#Sbz0~sV4U [@uET}%6@X X_\eSPfaET&q~!֞/ĺZ+sMR^PwAQ mJXRoFֹ_2>QUa "*!jA~[ǕxCZ6TaBa"*jq)b XgTke>W\aETBK%Ą\k]_2BWb*dm#~X'!_2Km ߪ¨z~"*axXX_oFYfSQ @ 6Jܧ:2$`Z+¦* ?$A"6JܩĿxri[VfM*d~+cA\C6_JH(wbNyܦ*;.֯XD*7sl%~Ćߋ5wx9$(N]2/A \DQo%[D!7~/[H`X%_\X'<,s+b%MԻ.q˰ˑv(p[ĥ1Xp1hA%[8v?=?HB.B]*ťXpل|nK-\F?Gq\F=F_qi\^@ \A ¥R.uˑK-.Wl)İKo-\܈[?I[>QQ$ra /XpZvCKpyZ\^SH(LkK֤Bb?( |Gk1kvwo~槺_𚚇KgWB?0i`~d8Tf8M?3\n~e@/aXWxwW?001ad8:pata#0JrSiH@=V0ðI( c WLc0OcFF)4a4aSI#izig~m`Mb;|>̰i*ð) Ћ WJ~0M3Fd1@/dxI hI&lK k B3terSi.Û4aZp^*g$z} mOKv101n`3h`*d67bZ^za?aD1n0601|@?g).qS>d@ma8@/me8$d>3i;ÓiÖ(v2n`v150>e,T7}pp^I9KQv10d8@?`)Ek; LC b_~p==tqPpx`xdq`?W)t'_*8`1Spgd:e)`SaƇ z11ԌbJ<$ødǸ`?g'?gp&2^!K2'G4.4qH^bi!hYݴF^Z;>Z;݂T)nZøX3~^62^%O0\p63Sneq7>x`?d}xnx`/g`U1nV1^pb<1~yÂق}'ƇƱ/"0  1%ttjnz00zc1os Nr' DƋ;i2cQs oi K짙,ٌ~>zO3(8@Gw[ "h iO[ J= NqjyT>Zmɴn)_Sic?g VƏ S%7c[vzh'& /5v3 N.O{'8@bFd$:8<%kW NCoJ1aM3$K?2^*8~b`U3[p28{RW!뭣K -5[\oWEc5376jf}~iL~Ѣ8QUh+ XQwRJuHKAl B8n'ֽZ nkB%NQr$`RPfMN=2 'Ub|VB7Η:W|$`RPm6HU8 jA6yJX*$`RPfM!VUM&j4"%NE+-e)ī~UpċuxVD1A]z@喂2g\][&6Uk%̵+bT~RPfMbU@~֍/Pk%Tڈ(1 XϴyȦp*SoAy j#6Jt'u.A/Z ʌZV(RժpDXG8Z 6UJl[b= XOʦF^a}"*m#%֝]bǻdS|U"Jg#&+Loh&փZ6U [@Q %6JPS/;2'ک˪DXg0FQ5kosK2ګ‹P"XD%,;)1"n}X@y273DXfFĿb]ʬ)ܬ O\, DXﲈJ8n#ޢ?u$`Z+3ny~KKJ6b_%DgX_NTkem UD "߷J؈)c/k/Z+MU(D ;mĻx@Q-ĺ B)ܣ -z*~"*F*%ֿT[!/UkeN)dBb,^bPf#UJGpypi$.7&I#Gq%.9ˇa Q$[G<\~T}C.}R*.he:bإJ.[ #(:Y]#1pC *F. .$J܍x\eXp/ oOV>%/.+ $ wЌ`1hKuInW?E\nO݇\^B$Jo++&_b~@ |U@oA#°޻w͠~bl1)Ln2pC^F^$$E*"}ΌIFYRh"4mRFGy,Äka$ 200,5G1|dp~z ^Fz54}z4auioI8x ^gX%^*vft$Z&F>Z(Q2-c43Z(V0(@+cJ5ڋXq91 d<~=Z&#/`Q}gF>(iF~F))0 gFko83!GZLmnfd4}}j7rUN v Sh3 0I38K7{x3`_DdDG;#e.{r2F)'cN{8\v#Npa=TuaAu&Ds }70Һ\z)4K{q\o`*M nzr=3KOsi0&3\z>ĥ= L\:@?=ǥS L\Uҋ\Z4K4C3VTƥah&>o^&,.=`fsiTfjVɞ[8'j\I8'܌]>IsRagA?$zzq}&O(, {IK!^nBa*" H.Z4a)[(ܧ Ua$U9FPx@*uԡ (b)LbB!Uؠ ߂:4֌XnZu¬-U>ݤE Ba*JKZ ԌUد ҊH@kwԡ8'5f@x(aݛQ)s9㜴6sR0 O@x' t17aԌ<7I܄3Nz7;UKgd g MPH@"ARn*-JBjJ H@(VUH@n:$fDW{Tw$ Cjz˒r[4 hQ$ uaO HZuAK*HOkH@(? [TD$&R/T-"5 HEj5 HkI BU h`[e2UnFRV;iH-@*b WLpҟH'8^xfݥ /h?qgץ:u/=hy֏1RU2i L ?@303a60|@md^pI>  Q63B[30@[40>bÀ*c12K3F$r N.O 20>e C~M^7 L>bf` }% L vFRRfϦm6IHvxmS(%ⵛMdw$ AQQFA "%**^A"E)AAEQ~3OE?7d3isv0\-pdxiï ܃v3=;RΣ"p/ ɦ} {Ρ 8Z^&p`S *p |bXg*87~a)s0Υ_/pp,/;a=w'8{Qm2O26 C3ld GS,pwʰOt ܓ1\h:ß ܋d OwϦ 8bu w5u:EĦ]ktb1e_"$M3*qVuP;d") N04,CI3ZEKʸΧ:z;ܤA浒bX8LsSz2&xarqxY3:c4g.)XuѬoVx7؉9Tݠ9HIzOj yNJvi]n7H^C BG4o:#$l͡M(0=*H7L 9ޏܱ]?6`LEH 2_~dj`"o>+WU{voȏd[G'8ƒnźtYu#8<+{ u{J\UD"uU*@6*`Jh&?Dpt=βsG.=?~Fob#p?dJTh+P}^O$WʝѮp=]ܷ_jmȤT,Yeg+2gQ쏪,N)d:[,<2]`&hڞHboQ;ˬ.]YtVJIO1kKBE,9L Fy˪=rKBNUD}=*";%G]rdP¿WuNc/'Wu JェRdZqMJ)|4T4}TJgd5dΥ@5Nm"Yci$pv$Jh$b;yMk𛾇w*Ե*2kxGr{\-a6UrKX]M`5Qs]V' tuiQC-,(&+"cZAj.U ~7@5)e5|jhELL3 ֶ[ȯTG-b]@hp0tj3?jm&ؓP {rn3AnW8`UVRdRO0kMMg/\v\-. :ń6D>%%FUjUZT۾h^NJ`M q+k x7{'9-vV PR)M1!YP?]>ʡe(^bh% ?d@%@gܚ\z+rqʥ'J,u4=@~&˦4 YNC3}ݫ[JUn+:PNThAү\с6G.6d1_Ȏ!l?1TP^PV*bz&A ,~8UC0J4PlAu LL&5SB e'Pɋ``8/ ( p@UeXX6;"Z<`se& `SC0S2NKX ZDOSFA6d ږim1hݦى2AWTts1X2R%RQN`w>΀==cTOž0N+19dz̈́/r s|#ۚt42w]W )arRN,˼D ]IXȨޢPXhucҔϾA.笲2,A 5+; jRDTYفͰSC+;$ܗkuW@3)sWje`WiL;=MijOW).tn&hA張BMDi%؈?Hя N`pϊSX5jEI8nȴ+8]=dw>(kY#=墏֣רƢN%ΠׇOcM:T\o GӘRw2Hf8Nb:3ۮlt}i;5{f=Ԉw{eem 6F/P׫A=+(h:r`Ed _nnw^#ӋD}hY*B1S&b 1 ]njںbCTҌsqjj\d{{K\d^]j,tݽxWs,wXh<d9vS"Y;QP/QI<"kTwzQ[l(DlJpm4_D6J0_n%m}YLjϮ! 'u%quPK5:c2P-s1UpP(@>\EP-jx@U" Zj8>V'V;}htYUm u.u Gԟy]/k:VsdTScR[GícT(n5,P05zNMSiQo3ʑI݃*Y} @W` ( @WUqP#;ed%VIn͊. ?s>df䌡}sDh7U(JJab5e5T ',zq':*>ASYP@kh/CJ{Ԏm-1w(`=Z }wtKQ%I͙0zdꦽ\z=ۥIju{ KIn1II܂etKLIn:/:✇8h)CihZI|F,brcr&.5u]V6 n.!^wz1}ފ`^+e3#/S-Mw[SmRr~2'KIz}b/SܣI$3/%uF׀''By}MA# ZtіY+%Ugw>]R#8I 1bU  6\Lx%@l*b<@:+13r%nۀ*qN8b݌8Be)+rz\6 hA4ζK(0Fi< R8t+?/SfbU$Eqxa":Q$i)/efB"Mo2 vn=h~EM;~Yl4 APZV o5hSvJaQvJcQϧqSl#ӘT2@ FRR ^7}1 ktq .|j6z;GAFhu ፷@׽aĩ`_됴 \:gMfg]9 n RӬ6h:< 4KM,uRXR_g<+raR/OH풂$8CA>C)Y()8\9^88\0ytQ'M~նeK7- *@t O`p7~ ؛!c%wG3]2i"' ~CFP/ܤ;/)$eVI1v>t"s:+JInw1) ]"MAFo+23#ILZTX)46H@+Uy8A'+ ]X4epX+(ƓTZyKEuKb B\'j4qOĻ5 ˄s297Ն|2hfhD57 mtpg[x / 茮q (WQ` wKX61[c@55 [n($,x}l<~XnFT-OAL4<~c]AY 4hQNVhhg5^!#rOWCQE"oxu\ND.Zydz1K2qKٽ+1r{*7Kx+U?-pxY<%W)sI?jZm`wapcPs6U 9[Wʮ#h*;m UUFɫ피lըGwܫfNblzI6:U;%hhj& YAůO?.^+PBty]0ف04j&M¤YЭN x 8_oM0Za¿Cց~([xF`z;Do x#G3i&5Ѡ{?T<@ ^焆%VWvqT|]vqXvJ6SûvDGi.m~|IGt r{46ag'Zңg_{:DKhIzq z69掎 +wa:i93s9z)w%nɡ1;&C4 ZS+[)HӰa4K7؄A&~]!A>_8 [6̜ۜ*%^sn8džk؝>ȗBIjxateʝE.:[R`f:lmzˋW:"Egl4XcBu= JBN[*e.z03݀*ݥb s\`:`6=C샨h`|Gv"6jXZ`ېh)De5[x&l_9juF8M]EGXm\lf{Ȁ}>Fc ,..n@G.q'e[7bP&{q6C9-g(W>yw:Ǩb?'P+)c7Ka}b=() /1\v(%v,-=(#Z9o.-Cpْa47_R @rWJ TI r-/ l䮗o l꫔ܠ Jps$nb_ T}F?S5b f,8ś+؂ Z!ĵ[BzG~0yZyQ{\Ge*@OHIJWay#sȔ'SRU+@1X u֑If;֑&~nu@S#ynscnb#$3W]y Q^yBkeeng+jOfZ:zo]UmCT&5NUpT&S9J%g#}-ȘOg6"]UF%p; 46}-|lk>kU݄-۰ :o,4ӳ_`2p=M_Dֺ#W+ZtݍUuWE4&|ե_޹dzU^|nCDu6@%Yl]_$)* Qo1 H"=̈́H$>l1]Џ4S=ZG]t/nց%r^KsգOk;%UC PRBB;vډMx 0+j p=;#4# ݬ|1SRTzD푪^7 o:@&07P;i/,@HFAPbŃxARK +6#]M,(T = ײOn+zmomgGR "X^qH~(X1_܇kIT'M;d7J6ƤGUϪ;\ʻ_{@li^4[ j4iZ -b13Dlej7GU%Kٽ[ؑ9d`ϕ9+#,]VRgmԄIUxV-vBd.yaQ;sv͸n%H .9bBg ܩMn?w2X%}V.j|l)XCpOo@0;ܺefώ-W1 6 \׷q5//4 j{Ԫ.pWk_q=V7`KK^_ ǿ8{CI4ݹ3~ȇ̮@V/yS%ЗlǩBHqNNZ/E\C}hQvNSwoa$XgXK [Jm<_*熃Ǫ=CUilZP%c/~O7 ],-'{nSrk!9-WljSӔ?j(_֪61gVT4ynU|%Q0%о_V TI/T(C^WvEHmI@Vބ%mnF a2OOS vʸJ@h =K۪Vp~_ٿJ1&!5Zp3| @ן\R$f5CLS1{m.]HŏQ! tg3X2L`\-1Lhi Q֍uЪJcLm> G&F(W=z| щz`I;zѨ 1]yB|QIե>`iH+ \x!)i`A4E_6̄bB՝,kzHn %q"':QYbkv3XA{%y9 ;v^nA3BoνGO(*Q~?YbE,8DDnJr7FKKlū6%F~=q\BYtsqyɹw:zsr:F;r}Aw1BEηHo* 2Pׄ7J2 x/(PRgKGxUi@w qm\@Q~WeoY gim|c?jaZQX7YI]g > j-SȶD hωB2XuXoجQChHɥp UcRQƤ?+G-ҹ21LtCjk]x\s zޖDPU@kfY]s9K\ ~?QI!_܁8 Ծxs].'}@PD;7`ۺF#Qju,\+eYnWEJĆ9xנQ>ԟ`Mt—%;}j,'PTL" u}}Lx2w`Hƹ0Hz kdꁉ&sg-ZSF}; Y˽~NWf'k3x)Q2FĞXm/8PqmCL-]  @4#I]%0 %$+N$v’)&>ݮ>z  *sy|EtW@ks}  2s&z.cl=F7 $&)f!n6/ I18?Eq62?8GdiXoω`F#RDϙ=l2=|etM2R~bzwB&9TP̽بY؛-"#RCPMKފpsJ';(Czw@A[ѫd-Ӧj\Pr-8 uS4*5Mnը@EZ1"m7 C:/5OM,\?!AXY2}VDnOvYGd-L@*S(LU(jliafA2;x[Rզ0ӚwLBxeԃ$Y++8J:ş\nC{fs'&+k>Mtp>M^J4L@rgk!rW_oc ev=8tc9dz6ExV  ?9[Y[-0 UO<5?8Er\)hO>UV_hI{3˩С]/f=06&cwiKA'Rpr_q;Z_V .@Wo}{as8;(#? E9Yfci?OK Gmg hPyYclâ80+:~:*M 񵪌elBϬzY"MS1@4?{i5iţ-OGn&_R; sYX-/zT6VIsl3%ZI YkAogcp0զp$:/=M hCYk̩x)5+Ԍ' e*\2鞑qD֗.y{3ZtS4x*q L5gQI8cN^ǡZw ^ QxáVq'1φ8qW-(Z eYz1" zt&0$ϒԢjWAG&Mj }= zyoqyչs@tq=/irST}12&*>mŖ"cyX>64tJC(;0;W-OGۑVj]`poq xrWg%Qrќq\k\0.OVhWXhpRw`HE.n(=;흁%j YsoANn ryJ;jT8lge*}/B9 ;8 cWBGC7Q֝Q͎ZGN)2sNn/\1ZUh!:d3~t9n禕Km+\P$L6\UKi^XlkArR&2<˷Ю?)9o?w)BlTå;Ǻ"dj?&ڹiFc,G4BKOcZ4UXݣܪK:%R5 ngioOG=*I.C.nQ+C\HtUlx_Q;Ckn\7S\D]j7l2uA DU<W)\6ܨ츋_5w^'[, hwpP*w7 kL7ʠL:o56*ȴDޭF7U^MQ Bg:Ld3/LAVw{v*YGyqYmZZq@Eճ-3lz5Sy5)t*"D.úOmXf8Q`fdzAyl+kFv~=.#vae,?`AI{ 6: M Ӽi~ V_$)6|p&_y>;:3CuVGk!L)"zmJu/'&k5=cDfU0w`2\b_/ɪ~PER/YQoA;W6Nbkxߕ՟?լSc^7W%Y$z]~3$mW&V#M߲**/kH]._(dǓ,ē XS';Z)3N)TQE!DN)t PB U{?>*:;(5@?XㅀMp=cL1Uq|F}Jd,bmfZwFہϻCen'";W?XԑSoעSkN/Ơ{Te4ZʼNsP5+({iʨ9w0~mTc>bcfb f*;6`9tYGyNLμte@vk\%̨NiRi8˻Jt+5K%Jt]*şGIA|m(q!};QI GNWpPTpWXOµ~ËV^>_uTg?S{m?{ ?#ѽgV頌0̨."X 6Nȴ+Vaƫh nEng9(JXg,9 _cId|DYT-K頴~9|,\s3`s.ٮ2ZX~] 56Z-%}гF gTZkV!kX;j װkX=]UT$E=cf(-~S>ݬegd7A/LY?Ɩb39(N)mb8BR8{,FK\[ҸY ywo8sx.{JE9؉w,Q}D|ʹoa/11@W8gp/Ci?Ia,>3ᮛ+\bQ[0S8%>ѶI!~mfod@-֒Hc֗ /x#oUtpl^odğS2y5cz hތlq^\?,&Aa!kvq Gg疵KxFOI ߏ56fޱ2N(&Jp y!(,/,q9(El]F2OQ\ ѓۣmeܕd>gju\/Mx[kCOEwlO۷p.a_,r~X OΛb!g5%0B;9EemK1B}UЙ?ٜDYu*kg‹S,tf?!, Jt9+pX5rNP^d S-RV?$MPu`mu>ŢzoloLi [ifh2v342m) ιOpn r↪ifl1S{̈UMs`],5?Ȍ *fd1d zS-=ta(|]~ck|ҕJz͌I5KOSup7(v0^K'4&y vPC~8Y:(9k& E>l ֠T8=6A^<8(zйr =Gk3a8BH ;`h0Ai/i%KSY/f4sPBܬuJ$ϑ)-ђlҗPp%,ze)tp%ڐB>_RcuJ0N[XP@L D =ޖTgߡ3T_{Ms.04j%ތޏxCג|#%' ӄNR3أ#*@F*j6 VIQӗ3깷VS‡(4 :Τ2LYB6ClCŴ6^9&)k :2}x}Q)m3.r}muz sBl%: ar2 <ςqJs7D{ROkfɡLDMB Eϋh(G`B0]khz!4!eAbռRB-'[3BkeEwyxJQh<"!dCXcj+!W&A xRbClÄ(bԒjۇJ 1BLf 1*<_9AuJ!爫.[2D5G"NFYJ/2Dzlv5[m([jѣQ)ɪEݕ6nENx-qRO.i2BtAuJ#ZvR.0w!k`ڭJoeh[x{kutJvpFk]hit vkM&e#*ǖHәڙie9_o3dJD]-TrhڪrLIͷ}|]<YQp628r2j8mcNUpi%/6?K3~)&| j2w[с Y|W88WW +_/ 6(?QK6j6؅:T uu*dBzAWvsJ jکԾBaF}l4\ɲλ;ۨ.KY] 64A 6ʾAɧNpTXkMǔ2ZO_Nǹ8q.T3j,5[UƩplt]UuU7 5]A=7OQFvԟŞ,?^ʛ5lb [Q|7@6bgC1sw;(=mIԾDWx@Ԟ=[6;GQ>->Xi6Be 9ZV=" {EV6dyYYkpfk>=ԋU ؤ#ӪgMsp"=2{9xVKoX Ax+rSkEgjǽԷ\۠Q%ѷ,:#8L 1ڙܹVdsS KpRdS2׆jqp@ߘC}1jTri? 3bH?dԐ>v RTRS]de\]-?r +t}m^DТϊG?XyZ,y"(L/R^mtv0Uy4=opBO-9H9N>u8Nvo&بN,4@BMoғ'aDNA_Yx$)ݬ-nWRTgWokBTj%l>[>~mlbCG v" ]V ݣhn.Pd-ziQ$ҪjZĪm1Q 2#OO1|%rG@X'*6<ֹ͌%nr?ƄI.:} τOKO/|/ZN!l K̇^^*z#2?OuO B!Qh4&a͇+>hn MD`4 ͳ#չYi4BӨiN>c&:>ޒj#k/ uy6bu~C,"ӆXZug̼ǰB/)C5"޽~`{<^0_Oc~^,r˜݄lOWKs@w>B 9n4#2ۺ_q+d8; g%}dIAfϱqs!gGQ|$u@U ٓltJ>elyh)U )(LagM Bu2R11E vz+.x[ošxAoY m/Y^pKM,+%݋(Bc\Eޒjp-=*Q&z3^| :1$J&d Xʽ t{<\̃Qf/Rk0H s^"JIc.djnDf06K`@%"I 9_bAIB 1=nw hV1 'isAK d+-X]t" -MnuVrP,SF;긥0Jg7|lKmvC^o5m3<2}gor,hٰ\͐0!#L< Vh{5q U,>\37i+ۧZ8zI+I>JRR}}>=Bo }(glyT $| \e ^lM*d۰27j@ڱ*|d1쌖ц 2qφ@|J%`5J|7I[T`EJ= ]p/iX|)x.Uk8I ]дJT J*I K`uJba<]J]J 4 ]s.[AI[ .]1U88 FPj:z:ZU2^b$r]ίWEa\B oPn"Pd[5l ҵ^}< WtCX`KAk2w9dR0.JxVx&uˎ(j#͍2-9T2@EZ0(NYr1Ls)oۛ`|=oEנv2V@W\h{`v]k4h̢߀ҵXGwFQ*.]t3KsQ7VPGvTFG`k!̕G@תf]J{?i5_0Ѐj;U ռCe(ukbY}wL\pS6^4lW>"3-j%g,zx4ox^̳G e$Um'b,WϏ2P#K'x8 :ךOE&IC6S08AÝFpRDD6֍C#]> rTBA;B+Q8ah42R]Qj c(NSD'Dha=6Rϴzێ'PL82h&jBT\b[1t43* ѻ,Ҟ܈m~o#>RL)#D <*B'\~smy#G` ~%8pYpbԘ"=A6LI08]Z|<"IT1.>7t`?F%D{*kmI1>5>Ȩ˨IIHwv@I0 N${1@wDo\1d "G$QMF##H&  󕹋A7z1^ ݣ-n*ˆ}Ü\ħ,4Lb '`fotƼψZb_V<'%FzR$cqy+'I %Oc9@Oxꂜ%6O(\`@; O0;[%vzID=T]ֶU<%^24/=b/xH'~ۘd[()f/rV_G][s^&] ~Q&O7->R =]pb2!_d 8w*.D->He4DZFJq DpQ\jMMC=฿Up/? -G4|İC.㲱о#;4eRC\ѿ?d䄿âYp)fiw%^\(*we~}if =S#w O?`]:o7to$S 5jpEqaaU],w{|EDPo7fKJF=^m9V8>ՊG>$g~"x;]quފ Р[2W;7mㇿ}'ʿόH-̶I,ީUIٖ_Z͗=A|fW_OjZY.4RVϜܶ:CRssG^UH!5ͨkQ1_8*Da(ct%垕ضgz0|זG>y|}~ j>z٫ojZD}Ɇ7`0?J1Z^PDCn曼:9bS 2Pq+C@Z}\ ZϤLXWqF%|?}{GuB%- .ׅrCjgl 6p[`[8~͂֫/%W= ޸mpBqa\utof`n[ށjjQoQj-xAi 6d3~ͪ$UӰ3p+I=XuE_GܣP R@wCP"R*V@R`EX$ȯtXW|DaIYRph_% __HwT%EVK$waO1f~Q>g(ZoWRph_%n憉J7aB~bph< : [ SlT/ֵlA6بZqSwqڐ4^Z$H X櫡,KzyEV[T^6adA_ЗK 2C #2ɤZQ=LmtPI{3^<ܛIot9ki 59DfcNhI:0 n) +%7&q4 '|Qs@RNHnrచL*j[{o&49(潙4f&qB];yox+D-3q1+5Vsa5VԤ;18GWc0j?9z\kk ^m~=x;Q!<(Q')%ٜ6tm+߮ J|'4ꌏW&.b I!e yAVv6C^zպ;#޽|nS 6k6xnfrTGR0 &Qˠ6o0ʿF;(6 ~+5=f5̈0o'wڼ1}f镏y;C},j'|a[ *{F5ypA?l[gڬƙˎOy2SҧڼbUgM󽑬OqoJn-GN->)j|dT1fwdW?uPrM6v`YA8:;h+aۢ|^t{l-?=ȣU $>s^2>3×^u|LI)ژOĘ } ?9[o PY)[EhT_w'PsںT*.53>Gl=RmN'8k-g>׶E||=UW8TPkk(W[ 0/нҹdzCқmoQZR8/d':(}&꠴7aJ ڜ{#|3Ki+FV6mFìMvlQ]Rk?lm_FmsPZ\?7kg-e$4Guzv] N+]3 m6* 67LG\᫾p9 V Rߐ&Ulnb67'ǣ$}uu!xWx*+ dؗJ°;_Gf;ok-f[k哌fm<(ZB8#<1[W i擧V5f~Eϖ4NokWt KYixEJ&-&_~\ex}mx8gY =L~(gL?g/2IAfLuwVEaZ+_;O)RRp7(;_ӄNR3C9^ ) O^[ĺ_$Edj$轙 @7p܃R\}S 4~#@vO$E9l,) 8AFj}aW*4RqgP")z]ċWKᠤ`X3yM3^% c@WJ &Oi&h&]"i&QW?R0Y&}Wto~4[Q %Wķ!uCڬZсv8y$ۓɯFҶK7܉}COlީ&>aF~\~^jN݋)X7NY\lIS_o5~CDhcAMCp3Am `k^UM6k>@ }{{8`[ 5"^$_-"+fnDZoL+ERcP!M%+Ԇβ2mt{*)VmCJ6<OØQD=_ 0S Jd?#,}M&d #IkUbk|GcXscag.=w=j!Qsi!.bOB|OڴvKs=/xNU\01l4 vm#'٨0.L.{MǷr N3@ߵBƑg|U\p҉%^P*T$X#+ ,X`Hl λޛes/50{k .J|ZhC@u@ rqs e/H.qA:_DoZ摉q{w2=@)f3rz^gj:BYd~DթGJM2[jYQ Fde1o  3z O,\ʻ&F[qRSŐq l­_waSMU 9/(;d޶_qqU{,F4t՞J~sP,<|U{<1`ڻ@Gd5ЄZBA/\A exw r4ׄ@X;~ gc>8QaY!dzG:D5;4nZ8(ujs1[2V|1kHWIIw% {t}lA a[:uu (fBFWGsS_V{{ cMh3o%S-Je?~VƖ5]w+Z_/VCM_IJC]Z-v[üD?;ܭᕰ 7iY\Y*2XjUmR)aȘ`y~ϰ!ؖ–3`KRw1 02H Oi>U* ιASq^#vy E y;byIE'dZ&)BROۨF -V6L39s K_dH{DUĕh*A@%M [l^ daz miNND]]bۆj9zD{t" HD0#a : MVHjZ1S(ktzxpyT֔N*U:)?1V I #X;J`gۯ@t:#T-yZs;5 8`LgM@tDgg\ Qx5bTجr| avEoҬYzg˶qzGY؝~ޟKd=?,FNIUxhoSUaSjI*( y4uVӨzFk5p<֞q<^D{)# &NyR.֬NΧ;cF`Gָ'MKCp_8n$k\V%W$Al#Dao-EWC_u0H۴ۗyŃE(-.b ]FUU[1F-+&FƎ?rTC1?wPWx9dʳϮZy|=A]7 @?D|&l (˸sQwؗt=}Z:/~څ\g;pΧ])\EgAYϣP{5T!ʔ03&v WE^dIzݒ1!]ʈEA 7&jEykXZGK}Í@87v>D+@]*4jo`-P_BQ E*/Jۿo:6Jl&UX*hd[){8ΟMC8F P0MCO)\Z<S1CVihs֖!֖Ub߇B_>ER _k4xyg0>ʡH8L|鶗y*eh;gZPB!LJ@WMI}$a$5[ln6'X=J$7 Dϭi3{iiR-v;ݏ NnjIo~T fUqZ{DͲGQ^/琈 u2Dh%t+o![WBDlb_8Hwq1E|Wf, Vi08( Od+j5,;'WHYBiy/X=AiA__)>:qyT֬9rT~T9Z[ۏyq!R1rXI+Ǣdž"R ؑ?7 }/OAa 6 N 6B"vJB M/TRjHB)XUci1Z Diacӗ,S]&b@ m6+vjrT='cݓ"DOpO-T WW'N#1 %Yӓ0OyxBtF).RdĘ"+&"̣S ؆|Ml1D|C~sPv|euyb̸@ }l0Ybg`\fǹMO3 d+ߘclMp*׀J';|t 픗~8}v;F~v;];A^vZ3ASb{٩NEjV/;'9ܻX r ?+)pU (ÍKnp3L3 7nFHEcC,bN!H"m[ 2)Sy)Dod2^%$s¬zpIgKbe]GW84þ|+BBt;u8(}.XX 7 ΄[:iroރv\_NOA[pRQ *o!!*ȧGW1~TaLRE1S!0I7U])R3g:x&$›EN i[.Gp]W >'E٧STL_ Q29ͧa@~RLqǡP{դ) u@p`$Rà᤼Js3gY S+AN/؇6*|p J uIw Y~{[t ^j[@R.{}ͧ|olsnbk!)_^Ws9(峒SspֆB Qv_?[KŝShKR>{?ΔB8ѹuw UYw@pCՆ)fRڝB'7^e:R5IJYN1ɳ YOz7na;=c@b !\CȲg(pABy|Z Ǘvq ôUF#J$;,XzYL2V .7ap7 )uP'+eyO-tiH?(!x)sYV&l.1 5H 5Ww@ 1j|y&8?jOh])Xs{{9ׁx/{ax.UX&DtX0Ps!>ȓu5D9WQpx}"#\Έ 2S 2_N$]C3.L/40Kycz4ppg 㺨hV"M j4ft/G6b8&BU ̇bK%H1FňUK~ 1j Dmh}g|}6 *9Eʲ]eg,Y+SK  =,0?3Ԙk\NVkj PVXh8k]V2h`_!B+j'/˃;\d )UmѺӴ-:;UƔxFnL9[S 5AiՅW7Ӫ 8<~4=/ VumjR Ԥ'߂Gj^%>/^mlh&YnY@jD~% âY-[Zekز5 _ a^YYr.+!TOEp8̼~։g*);lg/w["(un\spP,t?b0(.PAV^zkbwu@x>Q‐@Ub Dx;W/4z&b<Ŗt% b.[jPNT9U3TTAZt%g,orCY[^ZwxH p/P|Ju0}J0-O{r+<Ղ: 8x `L^AiUL-#nwC\5[ ;0aKLwj ii/,qbJȯNgK_Ly*N~x; S=ЕR[%Axs97O $}@p'ʧr9VttЧeDUui21L4ՙ~dz}6ۀ{C+U]AUxÆTEKE5fM^*z"R!SERIY?̪NW,-SBY.(0f^rrB}zrIy!eT7`$\ UczoQc 3M1sTt vܲBiӍ.Z{Ү*0On1 D|xW ۙvFټȩǸ7_7bnen_Fz)I̙%@,fM"F+\}c[S@tMp|1YK]R6JZ}lb(,-WKW"7!ٰ2mÎsb)$o. zd;ϛ@b+f+w,wڏK=RJMl`( C`ݐ o,[x,_=~xR8Y61vxFb3|z!S-=5<맲:kX[05p3v̬+z)GX“Vyrk'SFc9Rxr/RE*xozS#5nŐ#$lUjiM&Io~*`NytNW, G}FdztUӡ70QO݁&zrNW?;z ^z;v>bAOi/B{NYc;`$a4 Mw [#Vv1]9N[V ^1W jTۭeO: P5 woѹg+#ƞԳ܋jtnŁ+<|B<_4VáBd©k7 obFvA{@,ˠL\rԽ1!zP>KY²x ̷ _f<*4X+] ӆb*J4tlGihZׅZ+ݣW3/B;0Pbլb$Ȁw4~H{N1HA.h+; `edQz` [c|e޹XuoҍQ @c^$h3G\u e&ǻ,T2b/ =nKA[<^ .]2 vsb} Jsڭ8`m!c|0_Sm?Z`]Q"$!97`P4u@!ƾƷo_&؝u )_k]ݍ?(UaUSjWA0WEo[=wLi94YX{XPf#5\%\'i[߱ q;kƃxԄsU-us7ݽBĘ+J ?m2r!G~GE{Or~ϣП$;7/:=*6?uk颫GtVN~z<&v^ع\tU ѹ1ZщAun:jEgZ 9 :qk`kΧaӔIg*;qCa<.:=;Ej1:7=nؙ-:W7NONsjs{H x)TJ&9!kBˑtxVjֻQXy5)]ʵXãY/5+㟺T 4A(,f9֥\W|u |T#"MS3a.(u C.Ci8eģjfl\0#cQ+p\2 >K@;-ic[Xkλ]*]dч9- ^KTM#k9%ۄ%f)vţ j Dw=wCχX7 X,B;-fy^k":/ކ6a#ZxC^ػB+1 {@o,+W}!(BB'bC[^Ø}E=H&{=Quw-׵),/ ]HVC"]Bˑ$ݔF]]'vY(#Zշr0. K# 9S!70 VH!6D!^F* B=VE|CW6 k/ Q/~ׅ\k˨^]~*EƿM*)h% 3Y3Rx+ZnȂ Ȼ@?O#ݱz{nQ7P"teߒvF5BHVl :!PvB(wlsPR 6)eo>J-:2FZ\^A>9DC/ _vEŧd`ҨWMp@~717s45o3^ HтYx4s17 ~nnsZf2ك/>ܡnsظu_Zfwnmm;xVC{|Қf\/ܱkSQvNB=_we.L:FUӀ7&@z&:KZ6~_PR@ X_XUmboHX)džAB ots eE8m X *<;8,UT\FW[оtBu _<_e|9&0OkXLiRlM-XX(pƦ]Ft#r%)ҵ[h)TƤqIԇ@`hPŠpe(ʟ-̠nj3 mYhv vjr± y"@qC]#m$ J1Qz[dϻ @[vW^='>Ȳ 3 i;h(\Hg#/y*@ 3ɍoa1gBL~!8& tj)ou QW*DeSG?ٙlJk[W\\9G mkg'J \MuoLwP)u7@4 2pS:] {#Zz[zoB״z9 _~O8\ӇUu]&$v'R6!/CIREiP]T<^yQtMBs A@ ꢀzpR5En$GgLaOrT >cdLPC~P[@4扇,RŽB;U_CpOI+M)*,̣x+jJǿ nmo;Q%-]{H!(daeТuV WC ng,c.E ҔaP`P.t R܃5Z~ILJ_R0q&(ҝL:*EI텮ZERaͤER z H";^9B  ىR}Ev^Wd̲noe)P4g,|%UP5Ff&TI9 D% (ce=O)*BBUs-N,SߥN"c=[ O,ŬyHo*a kfkeiR(-}^v hfl-cQv:a"-l̴+T.@2T3Sl@K,({.[fEt&X gM>,,H 5sC>C `7 DYJ!ھJf[[ = ,~<*S}WfiY@Um/D3S#eW,!\V&6Af X ˖ ̔ZصQ=4*aE`bfaY &Jfw @])ea?].ekbs"-" =F[f'{@-d!RR >w)STf&,kFCM`B43^\+mQ߱O ̔y Dͨ6idҁ,l> SR@cs4!}=B z4 (.;Ff,a D't9B43,+E e>Y O}Jىb?1To3M_`#me~Ggݢ~BO>g| 1>$R+6,C |젴kyCz5Ji?v8?lu!D|:dg:~2B:O0 #{\Ҙ,A\]rYO>t>~Y5Wp1vڂO\Nv1_{`fop46y'~gU6vj&t}:%wUO@sn9g*sV=O`NZ _ml`LJcL:31igӟt~BOyhi ߯lNL^aH+ҖϰH7K@wFA&a$iwA%vrP-A[5%vvAJtu-\l-ӆ#MJp4RbmnEyvpAR\gZUUkUbUwBTTa*BgU VA[\TUU@xPGQW\@e?BUԘT́*xG}?:#Mj".Sk*{gנ6x:ѠK֙4ICOb ~rPK dI4L[ՠK64༻Ijṟē ӞhO>&5O2LeqdC 47AC Oꒉ+UAJ฼ICnt& Qksk%4\Ɇ?K4,\ x'uyIOvhp6I]&Tv^l+:"6idI5Z1CkXت]2Ϥ?ipBtɐI>`Р5*<_'u p_%'oFAx \0Mˆ1hP븸㭹T^mR15ǣ5,34p[<]xI bRVuߴ]xIIylzd&m7ql%.X9-s1ݰ"d0r=C İY_dh;wJCŽ oTCJBvm>afao1l({ vS3`ggzVpL-m]M4M&d 2hcˤ3E31a 1!3a'2Ax ?=v09VS7 \y9cn:ˠmd,1:cYt0ю'a7}˨KhB3;F(4g.F]Toyc0A2֮jɤOXclB;p8.P| SM6spAvN']!̓D8 rj:qZU_Q1L T1oBƛ?7;Հ1=Taj3BTUXVGq{g+3-:T俱ÊN5y5wpV1V͑Q"+.Њ"T "jRs+^KkТLEĶ‮:)^ T==U˥jh^݊xij\A1.ʒUVQcR TN;ARk<.Z%\6lO (|)AbQ]\ [v3QZ1hDqR\@ZEI>B+CwC@+:YQL@AmV̰:[2]U=kpU0m#Gð7n`*Zl!vT m!V%e!5PUXW !],[.b( ߲^Iݲ_G=L߻fr[M_hI\8= aXӟulB|:qYH+1>6 ˒}ptq襖_'h9mXpy'qd64;̦C\k4Q2lZ&}}m;<3 sr<g m5OCjCv5kt>E-ڨ4f8>csIazrʩ/s0YwӤQ0շp9ANm}s~PtRrbf-p$'q`Y;cц VxQᄞY2Ljڞ[x 'C3epM DbՊŋS}V>Sbrc޼a԰AOa?)(y=mms(RoSh0̩BK@5)/yѪ}égKr9!y:ڜACm8yݦ1)T]Qm. ZKmNJll|ue1M ,+I u-+ujS UU1Y Zt"ׁ\" uGT}ә^e,&U-6+*&I %T+bbs:;-`X X-6HmWiFp ߷] ˱O6@Ɩj;|. H\ AIce?HJgLutR l &oVQA{Xf- r,կS-IRoⴃ !m"e@,(z[URg^6~}ER2-jwKWI@ ^ljp]P<z&N3 li{g'JޡNqvhp DCNEFME5 :;!n!vd+ ~oPȌ\o$J~U[ |UX MT+wq^$ZO)]h}n#-%5Xos_++rF/˻S۶YpMHq>u͒wNѽMqe/cwZnh9ץ9dQ\WO!oev>v3ёӏM&&ka-ƅnaÏ phS,fJ#V>2$2&y@M"?͘m\!Q$״ȋ9/R~΋5y):/p^|~)/)T'!/v)SBqG^(tͩNx :"O<4N^55Y9W1<(y.y/]bX$d¶`:l\cu Q?[4:wC:e&/Fz#ddE(Tvll>vC,gǍC)'G]Lg`Jyld6t=hH7DhMH롽Y6) ~Ѫއo<dh٤#KrkU-U!G ΀?| `}-9 ˀ' H%k-gHo#طL ?dVTeU7X >zy^u gq/~j~H\C"BX2(ˁ[yHT$S}`۟ `9>i_?(裢i;㘭탘%`iKp/4ۙNFU0z+,-B"J6[T|qBMa3aٷ6Eg‡!$ Y:u /~X$>/m[mYӛfψZʃȽnߙ*z KZvzq9R5ȴ9cor}X71` !N7NeeE[U݅F'bEH n_|/ҏh6 X̅ 9+> Եu"k/9kw%?mFsA>ǮqE fkBwBl{Lx7  DK 7s7~#ġ"n6 S ̀0.S_Ս7_$Gf` ,\_yd[Y9尩A1Y4RKM6="6y`;M̓5 ϸ.XoЭVQlcl~xêtV܍B!bbܲѥ?Pd6+#Lւfrr83l{5;&1ҳ)R^q]y3-x?(s `h췳d+Fidfd'F_g,^de2/ K<J%ƲE2t2c16^a!Ɔ6v+pFB0z3E22gF/N1VŘE3BݴohAN 36XE36X`>`7c5`&c]\NE2 ƲgJE2KnEo1:H}A`?ی] ,20V,(3Xd(dW`23sblᴓEaw]FS3QhM] 4v7nZXĝA2 t ,ΤFFg-ȠXĝE1hA&f%``}@ C ,JG -B{ X=~`iCi/cӏ۩bzV[oS8Ӷv=KBJNXBCIgXF>bP}bbF®W zPW wV@F؛B gܜY >yJ[B +emB.VXn1e1X(cSסCu=]ȿa4?Qi}S7!tJB ܷ -\|[}QaO %3'zm罬u ;*b[ub0xB UV u@pJJ6 {@aN)":zmi0m"] 䱮 u@pEMn('!}V7 @p?`.\w\6 sFN%XFSv:W {uV 1ž bXRuj@p?u}l()v@aOx[V鼵ИK9HϢxce0w%ZC®UlV0vj@p+uUa[d(9*Tڪ2+Ӳ+Qi!Xa1CҨP]]J {@]JPNnsagPj]ōF^a RV*BB pO2 x |`]/)o0B9Od;)y!SlT9aVT-e!ۉ̀7p'2^bjNzU (oŧm̟BSH[Y@"x6a:+餴[z'`7w#Di -h'JW1׹ i;Kr%Yٗ/^[lQxKr$X>t_b.=.2"Diw头۸GN$D_{K\k6B&K'mhF(1m}`|mv8]$'lB9A[5(O_6佦]Za@h 4dGdaٚ5th'iB0vRZPZ1ȵ:E8P;i+ʎa ~G$~bjx7sj:y$uI6@.;UmSu󠮾N:;-n@T9~ ^4c6l N d0W2 W m"0&&ᤱ4m5Fz U`U%Uxl7 xkK] Olվ#a& !!jfi)jMÏWNuY}!Fmy2@XG紴t/#ld=>-m8Iƚd['e5E `2fQOom}#'+7%̪nJ:iU:UU%,.)uKf3r)6r<|@|@G7CaO7WIa+u)E""xD>ق$q"rw\TMV_ZN56lj ڢa I$h\6$GUWEƯb>٥RH6sְtr{`Ny~`R~0C( ^EXCD<[i6[a }dP_iΣs ΁Sz^ƪ؍1j:mRڝBb,laLba а0d܆l,`+B4I6:AM'Dt5Vt>*J\r~6+Ƶr>;.+$%#Dg@dv%_N.ݚC.@#r4Y.@=j sZnh:j:AkUD?;n?`ǐgnJⅼH e 2{7J/t]˥i.|/c]B!ց{ c.tRjR:S;Moͫr-=U͛捛ue.r]v̅'pIhx lWfF>_1HuRZ՝V>)^]h464L}.'IڅN>B(x;^(臗cg8ӿ)efk bd s֦h̙2ތ_3 t5?>?d$-]@@,*ILw O/k;RZ/Biq@44k}B=.\b_鉋i^;f9:Ӧ[BZL@؂<7U*!*n)c'cSy2FR.fa> $L1)t?{,'#̙n aMWu!+h-[E6{eԟQ8)?zl'يn?gcVJRlAK>ўT']GxDcǨ@pc.nQ>\\S?Q: p%/vn!k%zT 8JNw@Im.IkJ\ܷNOqE0ՠ ,plءKİ/aکZjB;ދ=p."aCUVJ_(t6e =c7Ri.""`0xR23EGROrz9rl#@0IZ@2(i#_ Yǟ'H iהzϻIiy*p CLL5B \#qM\q [0wPs7]jT9.Դ}J5L9[I\sa0e^%jbG,/XXt;6$9V\Ɔ,cml <=B1Fz0bRQÚ䯔*XO0cC(iquI@[IHM5xJ](`(oDM:Z E N!SGͅ^eHƇߴN-u;ppG6=~"Et[I.{bٛ@IH޷<% "EQH@S0j++$'ZQAU"R?W! f'Po$D*w`*30PdÜ$pޜ¦$.lp驸fuOU.dYࡰoZy4TQ$礮Ib26?uE Z`-n~ e$N rƛ[N2땽]).u[?]iIJ!B?^I:;Dh˩NJ 2<QPĘ[J9ǸcMxmNPSip@BpYyԧREjfbԜ[(.Fҍ69V'G4 }I+ENJ˾JXȧ٨V8Q ̚ob<塒Z< T;hP>t!_w%gbMRɗ=ocB(ף+ߕ`T.Ti]R8#J[9~2jS8W/f*Q’fѷ]_'c. r?tw*(oB/ 82` BxФܣȇ9-n^.GQם %aA; 2M):h'49ӕ$.n=hFz)O$JA@饘K'kaσv* 1 "ӱp0<I?TrR+Tt%d05j u;:'-I |j\u. : 9W".k{±f;k}Q?+ӷ~3˜=+֬KT^؃*tոE^eʃ»tbLCH$䤴5*Y_Y,Hf쵪oocpZLdS څäf|l N{J~ ˇk/ ;u3:<^ y|pgE &Gť΋8)-\]H73LW[H$A Wΐ]tr"}~1<\ 18gf6dߔ֘f5#Qނ3fM#9؉z,be:a]uiYR%4gB_i"9

    hwv:Wir6b$>|Ys9*?o~ǥ=z%걬Չ6l],~~ `mȲ燑qʲ&e G~XcǸ5n?(x3$]X^^,`H Ɛkg,ѩg>ҿ$PʲH>Y<+d;>u}[x/b#N1{%χ aX}/ OxG_v?_=sW+˺~Nyy51~me_G|cH_xq?#sظO}ZO-wH= |&:_W/͸E9|G|2u.{9sO{ҏGg{=t7t}q룎^uu6O@F5e ƽ16^t;fdS߳mHte;G9%#nϳ64I }hCo|~>qCS&Zl"9hcN/SWF%-lc81qWa/H!Lc!p33߃bX*q+\c"qX_iԧlC)Ay+گGthgmTt6KSΩC?$51Q,$Xm"Vwꋓ/)b>/rj߉^nN9ڧq 0t-%'W$Gc6:w&ZO5.|?&z~\!U0]1bStꏋnz| q6Vߐm4IoaGwEc;Zrd %Oh#G;*.zm 0<ژoK|B+x@?iF| lcm I_t6ORe`vFKxI6VǔWԳFW{g_P۱dy3ڷ%>cDzh_$cH'ڿڨSIc 8)>$k8=bk8!.p! r_luh;EFh_qXd22eeyo"loIWzm_|]~1~?y1Gג2 F1M_ZGYShEa#9|ڨ!NM;}h#$e %=A` FKAoO/ڟ%ڡ;m$-ȣ۱U6c>Nm9vmSh_$%I|Dm&hcA Yrs!yWA*)I`mIoba=^&))wY> aB4汍=\Oh#?$)S\`Iz]x]&ȼg1t7tdu\o1AAZ%,sdنO?P3z/N~pjK?6"ppylgz闍ae#0Sy416^tl8ب3/RƊNg}yy8 5簉6_ ):_e~Σf~l;U楮ayu*BqG2ϳ$?]|Ȇk%c,lcT1y; 6Ns6TxB/σQ{dMbq; XӘ>b 8^W! ccPye !`;u-X^Gm1ul'%0?d}>y2 a0 ,~sicCϫKϳz^vǑF;OІ|/G?:񹞧m~NtztyNV|!N*|_}HN67;tO\6ί|H h#]y:\xCjDq6r/Yz6&?o뻗vZvg{5"}:Βnw;Eƈ3O94)x>׃ 3na hcAKx#j{ll <=tg/#%>fy;0vWW6Ywцã85ϋ`xBlo?&)f㖤}S)7<{]<^:%,c [bGɹ6vlG.]qg$u;qԦ6NRVX%c? slĩGOX9:6܅i=$%nh#Dz8:qǹ=mqj8 }.mObG8#J XpS|#}U7X`xaj;ϴv | {>LbkƒOxZ_v\Vdǭ6DWs6I3c&V[P>E~[Ot4P˕(eނ Hq^kc=%}^觸'ܢWy^xAcmwZ>!ݮOAY}#Fn!}{M,w8|w10D(jwS{J{6s xmxUm|3|ژvsB ޡA&F$Q%}6l}?Ro X!1s|t-*ذ[x:9`!_>Iڧ߶۶sD;3ԏ~x?J`-Eᥞ1']߽=WAHڿ ?AbW8|a:,9oW(8x٘1> e5>)1ߎ\1}'#m,~^NG{#=aOzޱ1=oy8/?qeO_;:%Ʒ=n>Aq6Y~wvo󩢍8SYݏΔ ~yD~-gC,Ǔ~ilC\56#vqe=:bCR{lz֬O 62|~Um^Ok^:b^wԯa[k9zsʙeo^lduI3m =jWlc#^6"4P#6V&ҧ=xCJ]IY ϟ'W <ϔe7pY'Dg^a=ژSS6/K{@m m.@y,WPO"ƙzշ3:է^~n7t?{`?m?mTކ{4цz.Zϙrz\>O$ц_}ԻF?mOOb)N64ߙ9k4r8ܗ&_*[|2YmEr)zlR XDUһ8 vYFe}9,? G_N0Y,WJ0U8(5)xŰ*Ge,n%eAsJ=E(]#Fyx 6^Ig7Aca>vYr9j=6цǓ`汄eJI cC;Ld_#hcFp|3cԣ(0}r6V|ƌpAj̢:F86x)@]1c+ܠ>妨<Xp^q n;CG^.{rgHxBMrm䯡ӡkKJ_0fF]ܡZςrka_yUNm4+6Ko 7np{t~o(fWѥ9OUaq1>i6Jk/fe|=mYh^^hvt^8׸w㪃Y̫e^]0|6kZx|O;U,;mHϳ786ޒ}wGmW*j6:#:E?azWN8H ԯ#..iLZk9y+Gߥ.|<Fjr闖?3]t7_'z+b+ݷ64_i9oGs%QL~h\!3~1֏!&6WPN1|.k;m4g#@3!a s%lc=XP7zWsѡsܢe~|06/?z{Qmiou#̃n#A$:9=$kP^-ɯ7۸W#:|~bE m_a}/01LbsXB߆헶KkEi^?lh 1QLaMqsYh.p6Ga{Er>`m<^*Іa;~ bcXvFt[@ Mn:}Ԙ:vpOxI}cm)jIʥ^} wO5hGmw3>/Ƌ8a#hCS|^+\ D[Dz^jO߿fnX~n{uBeg^/F0a_Pgd#Wo~IO` Ծ{_ȰM=>6E>5zm,=Fq1ڟ%ژޖx/=A a8UYa%>m6B))'8'\x3yOKm$}x@'?W_ʲNO׌-Pe#G;_ڏCNp3Կ;}bo~xЇ6Fi|OK?dqK+>W,ؒnw h>C~_i>C~_v_9[;oò ͧ:9oϲ ͧǍ;8Ǖ;:ǝ;96~&(^GbFUrƁ|7|_!5tk$Rj_%l<^NFOԤ汀6vq|௖zcX"]5R_8.0k% "XDžxwN%pKl2QL ?߫쟛xPkEO77.+h1s??8:O?N۔`h{|u (8~F}_XOOףt=6׾*CIWG=;mLAZ޾g^amxNwKN/ @KW w9x}+z=?= $'Rq~i;6.Nć~b+X:>=6c'6wv?}:- mw|G,amTR&vC]Ï9̣E߻!}{,qe1mxa >q?SG^*: osWF/3cYߋccݒ2l,ڸlG?+XGAғ疏~ f6VReq%f ~q{x+(~>%3>hC-jXǮRCm8QF,8>/xCI>=lH9}OgI .ͧq6d< ڸ~xQ6ڰ:b=`sX V6v9%V1{ZSN߿qncI76].iߔpcOxA\Zц yGE>ocG>1}Uvxqq~'}ګힰEC xX.p;燤|mTפooO/J$.F/A=Mh˲1~Gm)oKdPދu}?}EڧcG~ `@/M=wK4ƄOB[~| RО@?*9X!{,op;<=T1L` %'hj,ҟklr ёiJ[|U/7>`ØB%6vp6s\oͲw6tN3,8P/xEFq`ƽ`H='t3щmLx1>b X:q'tԛ/x~\|~}=u~<_~7֓c&8E}l6M?[=a;s&114GkƴCm;nQ_wȾ;#қ2c1󚿻iX.ga,wHGgwJuib3< lb ۨ{zVԹ#ߐы~ aw\Pg<[<hX@70! Γq)Sg.Nps\uz_SˣNҒ5nppWt]a# 6-xEo::5UOBy88Q紗39'ZסK<,0@>JX ֱ3νo5v=8.p+\= 氄5lb{8۲.;߉^aQG=z|ݟy~/$㭾O#.߉-:zU]؇n7kߙ9'twEQzxЋ~ `QICW-:3uEPNi'89.p< Ϩ{z # fUc袟u]υzl~Et A/1b v \OxEz]Ʊm:Љ.5nG< u1:-c@_o:y=nG}O7﷍NQkXGSOZg`{a6{ wh~'Vuux;;<Ns]ӿS:MG89fPfakX .tbKXp'Ѓ11ߓ^?pch_+ZO:˅yyw~~Ũ#}3]'>i c,Mb h9qm3N0ߍN߭ #4w˺:zUNn3{cs]ӿS:(qu#~Øgs:9Y=мgO/F':a f1Ub8q'VpuFvPgcΜ1GX5`s.f]o[j:WuqG<]E0I,`+A=ܻ~y{ӿ:QO}scUr4f0U`ǨjpֳZG׭{OKX[ܣe090xH#ac=q`uJWIH׸qMpcƙyu'p;<#(Fz1=/1QcXG󦱌f}#S UPgʸ9|:'Y/c^錙sԱz:x.΂s99 rU=+e In(0YaX2V\x'K=Qc'8񀡈̓4 \80-lc{h1ix ^123:6:3y>O z1:wr?:ӟ.X v&D/8C?W{ZW~l%׸6>[7Q9r߉sU0QqO?S 3+ \suvu:-ε#78f]S΁~Nd?ek&mkQZO|B&.rEw#_ 붰=ԩ}wdEuYҾ P'efqt_26%ҿ/kN\Q義όG}/z6Poo=}Q >9圽_&0+i#X-iv?ְ :'1EؗKqLau|%FQD{+E{}gF15lcu;Rb XFW8׈aKu"zWFuί\Xq< u\eEl`S":寥׉륟0Q'үՆ\qoQj֩InG/e^7#꘢W]>;cչum,U<h}'z0qL` 8=qm2].a` mӠ&:qcԹ\St&!NAw%ߑ(^Qg)Q}).Q'L{X;ߪ'뻿O`u<[s3^ٗԩ|?Ѭd.qܡΉvJ!`cΜnթcUN:oC'C$~DmCсi2n w<ʐqSkqp?YagE3<:yΡ,q3.G駓~ XBqu#Yu\ ?*|(f1 1/mɰ~\Q/͹qlv/0:&14f\)/ `X6= /iY/i̠Ξs9*\}w:Vu$ԟp Q's*a;8=g,S+UkSf V7J]^)!6$tܿ|e57=Wa*V"~QOxF/I4f0E,a+31N0HbȱCgʹ\K긨ǏILa[v\eyk< k<\/ e^CwG]z|1aYF:=B)p:)1Yc qgY浣XA[#x/N??ǎ{5N}sG7yu"U1u>2^s(cꬩV:gB?0QǨu7a`~*ov7 auoy:8.qd|[E{K0>Y,=>to.;|JX-p:[dFQ'E{AGbF=yoKRww(P'K{KX.qS KԹ~^ccUݲG-g d|uV8/PgHNp:Ua[Ӧ}i_pG~oʹ?^@9[<u'0aԹ}0f aGȼI`u LbUە.u: )>~s%yr̓ ְ=OxFJ]n8Aű5Iў,}딸osm}O]'ԙQCoA"hιŵoo7h[4Q?'[y|Lys0Μέ~dm/<b8D<N;q <]j]9XwSʹPD3^`iw3S_>n-~ckXq:mw:0F0i`st|')LNEr)̢N#5;)u0AD1ElcKeOxEzi3ԭos 9\r~5la8.QGskьB>q-!ưWH{#߻~uZgձڷΐu/F')QrWר㥟wRXת4i뚺uV긷8%qG}\OP*6vq+|0Y`: *X&pc=:ط]hE'N]ϵzԭQov}:%Qs|P>y1cwo\0a` X&qc< u\/D<'МOks:;n1s)`>p+\7xO̔:8wo),x}7:| :&Sw6:vɁˋ98d<cs|N;f]SN<]ɹ0N\+i:sթ~;袎(﨎ywy{c?3iU۸51I3Μu{X>VEIX).~s}4uy>^)m hA/&Ʉe|[8C'I?Fm\d 1ILaX2ֱ}yo޹(m͹8"Үcu:OaOB QuQ7΄n:O8xEM>).pgId fEl,.׸=O` ۨӡ};ߘ?@{K8FSW0y</hO8Џ έzloIr?3n`u9&oJ}1 f1uԱ]X*Yߛc+?[{Џ!LbKX&p+t̯Ӡ&v٪G#:>SoQYOq_ku.?mW;c~ߪRgMîcgw{疜y:Epg5D&8G/:E,c8)nϕu'K\NK??&MYѾ,h78p}>:CJ},,+s㋤:#/pcxtzK֟I9,` vqͼֿLuo| ȺYSKe+QR'15lN lbu3 _&i]@hE_[x ^12Ng:;< uv]?@i_b+d\8Q̳fFѬ3Jg'< w_-' /wK4wHYb]4u96vs ~Asn%cun>1ys0e~ չYϬsk^\̹Xo.ݍAtYWg.p:څ: f0,b8.ԡxeY.PGSco?}NqKa :3a[!b@2U/?>68 q[J.ԙ>srs .psܣyOs vx8>j=V}؟9_ޑ3gy>vq;1߹駿s]HGX\{g޳Nwcc~Gձ137oߣ :-i<{ouX&nQxOYO_[췂}WGSf^3N<ͼ湜usr9X==uun=w3N'^&u\NI+\W 7$f09lb;qsKYώN`>q \7oz26oc8!Nps\[e>ϱ=7Ly S߻O|4߻<$pqBY.wxD 1z^<.~'Za1_{V=oߍ$f0,a;w]acS.߱gc:uѿ;6ֹwD@Ǵ;Cw;a;wcwwc]qos^F1e}.> Χe Pվu9yMz:y]2PI{;G_[9k?11̢Δuf~s: ڗh5tۡ~c:4c1M?s1cu*}uL1' ytޫs1c>ꄾSpN:6m|]M:V}-w; ~W -pюK`uZyGwnw>Z3^=oDz1a>p:^ַ/M} UQc}.:z1Iw<p<{eWxFgO0 Lc1cOp:ߪ|cpf1s3YG<: uu"/bKXq#`d2t׸ ژρN=ϖ{lRGuL?n~f΁yo5>hٜYWǜ{qSk]ɸGbA?DǿkxaH]NGo!Y?58o0#8&0)w_ cͱN+R,K!ԱG<<?!PO?!G0:E+akcNu"a[SI_PE{[9Z':clOSI6:۟=qL`uܴ{ч~e1ILcK8~Mc4XեcGWC3?0-`g1Np+^?R_CDR0EԱ Ax ^& Pg83GG1YWǬ{}s)qUa{q;ƍQٜk:>L=\b%r?:@gt[2VPJgx3^*cuVpq;iLw}ԩ}xA[сNtsE+::{< u._:vzdp:Ǐ'{:acUr?:Uib 8um̯ӡ_Gh1w+Xw+_ύv_--^~n `#*6]̾F拼Vb 8%px1/` X6:#cS<>̼:=o3󮣎`eGGtr/$zчA\?c}[ ڃr݁ S于N?@)9>^ٷN͢961ѿ+XG(Qt"0Rs4鷚G';?_1ԩ3z^v}:{=(u_ *Cuv_({Lǥ]K: 5#E2]FV <}|̣s~ƅ01?ū7'ԾY-RgG'0QlgaG=[g8,氌UN~Sg~߃),c}Qǜk46,mҷK} 8@wH}#Ç n`CAz~])2GxAd~Lc)C3c5W.8 Nq e8үSF껨svtνޗN{ecuߵH}+XG]Is#Q_~EKWSR1l>wǓB[gؔ}li/Q'%nq PE 3-WB't(+0Y=Ow{<-u:;ߕyuJ7>_95nQϽP,bC{WƹуAaq{氀c!^QGץk:89Op3,\`{8DDꂘ$fb:|h>+d.>ֱﲨy<NynJ\H9^%=:^-:q'0M)0Omy 求U\c&zA?Q R7C}> g"S ?+ rYcX pP^h?٧|cQ>u8myD2mL2.z{~{A9׌ө2_W _/19cF=nb}}n̾tnݧΒ91U92bQiRE׍fdYaүXHo)̠Nq]u6ox cΔyhYՙQg=yQgF3:9/QVW8Eu o::wH}3EwwS/ckr{suuPLkE3]|Km{d汁:[wGF)_ PgChG??,։ga Ӣ]e~.Lp=; P^7SGS9J} CҟI}+XC:?p8&0:љ7E'Ѝi쿣i\>Np;;0aL`XNQ:~eY'|FGzٗ~19,a[+#N*ab SX&PgG^y߲K3\fW*9.a?D&m S匶ΖrO[>9꘺׍fN.;-HSC4t..+э> a1q:P&?B/HGG0VҮq>m~;:Ѕ^ bG8e&ꄩK`w3Ou,[,Oos>1&x0E3\ޏwѲ 汌5l`89.p+\cM[+PWD:~]sq.t}e:?F>_qGt0YGnjwzh5$هɢ]sz?QgMO q;ܣNg<j|cus݇Iԉ0 X V1}'P'r.y,` '8EWqO F0m`G~O`8TB?0a+|2oSX6q;t`S2Q_ym8/}~AE9+sY:z.us\1[<2Sf@gI]#4fP'2>Ns>2*+\uR̓A3oN~SߥC-ϕ}0M~\qp=a|m;7:z(uEԱZߺoeLaG'0Yl`82Ø3^q/Iu6ܟ_17{c/Vq]~kyn=:ܟ9'sߦ&J<7:8q:s\:=u[:sjщ%x+k}Kep/Y Q,̳7:񄬟,PJ 61yY΂qK܇yum4b|sˠ>Wԗe09u._!#_)氂UjYJ]_%.`ۨH˸׈! kbJu̫Yw P'C hkӾ|f\C9ҟ9,-qA/r:Qb5oу:Vu^#tef1eX6_xI lc[/۸=HX9o7~[w|O 6aa>3`='>|~ffDP>qC4砣0oֻ~w1<>w{<X{VN0,S? pao['>4.',|W񊶂Թ1AaX6vq3OxFd}'ЏILaqϨָv͉.-|G)u[m%sUuABp+mEYׁ~c;'}"Mla׸A|N aq; C]c]4IyyA޻]e;@{{:ƕN.mISu]zhh'OCx=_shw@oHS[7 PYѯchzOnV{Ba{nHsݼ7'y..qg /buUaKNq:f]e]ef0y,a'8Wd?0)LǸ-R1uϐyNyn]=^:>cue?1NQHh٧N1:U6_Y٧G49cupc3^Q'ؔG0q)_:6QgJFe?.tug0yi>QgKxFsd! cuWu?9.QJd_NtN1:M;>mɾ0/a3SˎNԉҟ$QN E%uϕ}ЏAҟWil?/c\7:Wϓpu\{ЏA\Oa%/SgUzCYϸ nQ/n4uv'9E[[#'z;uVMY7> p'>=0F a2>}Q?hu?h]Gy[Cs!SE\8 8w3E,/QgUo=hCgKr3u&/9.p:~[{x8_(q}Y/ Pԯ~Lh}`e状_8Bዥ~S\ }}kh Q@݌sF|ឬQFidb8~7Eu%,cut}::>_(uV:[x#uVA9 ։_B,꿕ϳ-졎oSw΍zvpN~/u1Y}u=}b ݵ>qNp:K׸-uVvw.tub<Lq;tU\F1%i1_wKkg}) &mہnLqf{_|nvY߬ki>wOs.Mƛytn=:'>7sc qp5~~C8-wȸ(ְ `{x )y1!̣Nw]@ ׸ڟjVYx}_Vb:>g-G ְCS|SpSԉ['0ulb uFk֙Ѷ[yuP_'6r'b{/Rwc4_nPiWI:\`+CuҌ3Wh?{w+2VPߘ ZM975u>ɸZp]ק1}d]] p?^ cП:Ya X2nw&0-&>um0E}sXD4wOqshlܿ|Ig̼3\ u ٷyn<7[4 194ρ΁yhގ:Ve,̻@s9ob acGg|h~=4\oqg,uALNy;h =_:.P'W!p;2>: +ly/ֱ:W"A/6P'2.9Näaz mV;</hpYǎ>Vc8΍!u[ɰNhgs :w\øANGc9^-ꏏϧxqSԉ>A-.>FE ]}#Zg/c S'nqCcIy9,aOAέx ưF}#8A':sM,oNϽcܢN{=y> `u'.L?E=ԹPWx+c81ڽRuXOޗΒ^/yG u>(]Yӿ-?Qc;Gw@y1I.akSe\ޏ!I]i}_7xgK]agnqϑ8->W]bU>u|;9ss4[Qss6q; 9MNz 8C* p|wEILau_$pg}\`82>e`{b6qk}81,N d2V:/z7z0:#8\qf (E'|- az3~@[e2۸ri։0~k,2Oh5h^MdSܠ_Ju])󥱄lc~/O}5?Wʹ8Y7A1_qf>_3d87suiĿZWbп:ƗF8F0fp#ُb?ӯ}p~7zЋ)Lc5^ `C# F1b XV# x^Mru1)I: g8ǻ]{G[G>|~?,+1b<9)Lq[uz,sX@/VNΡxA78;:0YYѿ nqoRG?u`XC?Q'm^3BwH *HN,b K`;eӤO}<:]ƙX0̣cuxo Q E,G̸:.87yu%a'ꄾ[Ƈ1%g^щ:.x@3N'.q*uc$i΂+fa <:Iq}ԉo9OA$-ax@E^{|xF~@QJ] @,ЍASױa8)~Bb ub?sk][3t9D{[RCOJX2&!uIϔ,av];8%%81&~J'qc72.I,`Xqܣ!0qL`X]iY׉A az~F{1 Lb xYk~gϖs?GNL` XK}=ϕvg8+>N7=죗5.ҮG8Es>o un7ikRQ(!p9LмV|!Ods}=;-ЬdѼ}h_iEa}F0qYaD.)Qc|7}Dԙ7e>>mMiO{duy,3}y{9*w{86洗=xkC,l~~/J$_询դfd~oE]d~?sєEтx ^TwTkX6mL^a\5έqb~|9ڿ΀~?̿G<56>_txc=iKwy/yd߅{in6>м"Cc6 GwM]sb{B|Nd=}hK-{OA yoxlp=tm<0s=;9,b +XEҿ+o1oNrK\sucè;˂ߙ;. /YU:w];w^X;Agn;4]Gj ?0Gn0K :GqA>zmz/{89l/{簀El(^Rg3.Ie8G"auOp31au.: It_ #XJ} SJ-Q2eN'Eүc5o :˼I/A פ:G9>}hp#}褹"PjEٷ9[pQL`+XC@>%q:'s\ s/yfQFBᅲ} 0)LN?|)eNR?@ˤFXwq#)NW\]Am\CԘm\cᕲ}*ꌩ3W< bq:A1I ,QBݯcӘꫥNg0oQd1:`}ɿFΉ3:g2>qLb˯:57xEu|[A[҉}Xwkt^$l? Ϩf鹬E!uSu/ftuo:c3'x f3nkܠٗ i)Q_Qj(V:ndG֩co~/.p70_81.y.hg=iGQoȾjz=?Ӵw5\V;͹ܷ|::<ߔs?s=6Ze!N!Pr}s\|ǰ¼Mԉ.^Qȼ\ }̻yx+}# lauzř|f"GOkٿo.u=4eVo]xBM<w xs8D\uf3G3yo<:{qy|{COzwsc1C3>'=^YGr?AI'8CK}CVh15l'c5Oz3OOd[u`ҮN2B['KN3}?9nPާL]ޏ bX*?/hKY/aLNqsܠNod2l6V;GE2FqL`uOWt8d}q3hi|GI:y\~1 laR f1y,`Ǩcg?N 汌:Iԧ0y!QG]Op;Y?IxD_gq:{S+&Oax[/h+guV6̣s} OE>$N 9E#򺳙ym猍c||}[䱲BuFKܢN!=X >Bz89.:p;\EgShԧX] ˄>/yNy|BJv 3xYƕj|}ki~Lp~!G{_2ngxE}utuaϷo:^myx?$W):EZdƛ̀ g~Hٹ +63~ a F0qLb uo=y?^gμ'u\/c ::1'0iԉLϨg^0Bmt;3omк*#'89xߎqK?aDq`c,8wCS/cU>q:f\ ΑwԱ:s:VlIjtŜ`wJI1:9.nq:CG5! cu'0Eԙ?9.P'$ a#ӥ}B7zPGØ<PgJ @b#%,N8f:돓 n?AھAc3VDzzytk}]׾~dӜr9_㋣n|q6xjsϩ_x?bhz078 Nq+<_xu:EG8G-c [Vg09οui`{h.ˏ:^8'Mϭs繱 =[j.<)W\ϗg4f/ /qmqh=K?>GFm򴫠>Nk1,bFhq꿦MK s5>١}vqu?6:q&8C;xK{=>}~8sLyq 6{6=A=n!1[ђE2b/0giiP ^d[Jl`khӡ~;ضx9j?sic[kīh 7<8;<`"e18ԿJ4]'0ֱ4p' VRXlo·?5>ps]=N S:%aV]p_VM,svy΃>Nω͔y:qD06EdlS|ϧ[UxK ik,> -氂6vE,c'x'm6ϒ[cRozԯq0inpac'hӍHHy<>)zl`0*0Nq$X⋤}8_HŴqx1%^c^*^&8ptť_}1IWHkl` {6k{ڔ*N_%ЫEI}إlylB/Ozȥ7OX2S5qkaS}op;W/E,G8 pG| nqOvqLx{N3G;~Q=^?3|.yNW7F]'mօKku ¨DSF]'gn9Nu uhNG]7:1O}uhsVؿ^2ѦER?KyRw)Ukf(ǟ&F]xڇ 7n6 ڭq0c ۨ&y؜>Jb+X6#L}Vp; }~Gʃl q{\}l`[YE0` _-6q \k_+e?qla/:i*ֱC G_/'#vAWr0YQ局Ml 0M8-?I{/M2%v$o~6J} [8)f#R?5TmW#ԟcqe{i1Yag8Gx bӘ /<'oп~xk#\8ov#<>{Ծ_3w2/m}uY8|^4Wm´yC0_~u3:6hӥ OX_sOK̓'>^gyAΣ̀m7z}FS>PsyE;~z wmg{/9}6N Tס#ꧨRuf=uf :TםI:ԺSיCiYsu:Q\UfF NIڭY݊ElcدQ;1~ǟMߩNO12ozls3> MsbGݦygr?uRIL^amn)=Eoc8ah)6!#O/ q[ܣΓ#0BaM{]͂qlt9_y<ޥ8niNPsDK9,fM;m=>qstranRo㥝sAڇЩ~P&i|qRyNOh_ I2:kcwyOchi󤾃6}Wx//zoy.68ql8cב~6qlOxK&B9+,~bm"/vW5J$^,zx9,b b6v?Ѧ~&8y㈲+0&& i3,`:ed׸/[p){0qLa7Ë*ֱ]Lr_c5> }_ /)\gd{8lSDiNqOv6ϗMzK\"bc`v(^a{x[?1Ri e2NcxE,abb8^~lW ~@J٦16h!'_2Y//Jq/J+C@E_jmt?=iS}zzm^:6ܝ>N#oF;5{6{0]1z]Nq^}Pu6N8ku]4:S<]xނ;9J>j=iߧ)g&畞6yua:xxσ1 7Y&K jU>/t8^=w Ϲ|qܧ~]mZjquy'>l>:uy秾vzxok|.k=rg=suݨ-uӺ0G]'0O}uhsjݨ8[uhss[ׅ7!u0~㳩P;;ީES^7'I%,cqt\XPo4ochAcmKa+ĻWGlQO(?KM⟤>EmVK3%qEƩ_6Pl/m!Oq. <'bhrscrqulb ===6DσQc x.>%`]e{1Nq+H9z$eM^<np.ulc^i}׸#ɇqO~6gJ} X*ΦqK>Sx)񈉗J}Sxe`~*q3q & s`-6^.ibg8G+]4fop+b25c'892^@/bw }h٠G*x6oK ?v|zM|4xEュ_Lq x9>|#g|﨟W9̇6bpx_Ty_r#L j!z׻Ƽ^ ^-׫NmyX7z}]F|}}PGz;t|.4yn8ݳ~H9|;}GyQׅS_D]8G'B]w<ԺPׁ3ƙ mNuݗPׁ6N뼢Q}S?B]٤_-#wJmƴ[5nZ:1ul`[8Y?W'oqcIR;;ީq ̛^7 b>=h>) u)2?z6O6}ӟ)d5#%m)5G(3sdKX.'hs\cd1N1 ac8.qҿkܢe{#Ѕl% ݇%`op}9.I݃  Oac8.p)]*e}%q<n0iX&1>==6>C(Ϲ*/[c\ŵxS͈Gn(K} V l, cMۤ."6 \7?Ry4f-lczpvA a/7[2~#xKa>x9c[A[dcX=*"n-rX.Wr'tz8Ƿߏhee{}od('ӑ~m<˸#hOw|?AdU=b/u}]_G0Jm~qlf3=/ݯ̓~u&[R}ɦ@6jwW:ܟ3~#s|o?/tqlϯcs0Mmy>}rm)Ү?Ay~a:}h=xZ}=lt;ަD={uЀ>{Su-9_O~u:[uݯ1~u]Ϡ`s9GqQ9*?*NѦ?o\_>Dgc |7N_QowjvS\'?ͦE.q6S7G7ۄ^w=} ƆRoqb'<&x9u bS]Hqߕ)l?m/WRm(lif1ޢk'^ bcxNc;hi7)ֲ=?x?,` ϥ7FRb x)7"qGt?U{ЋILaG8Ӥ9fMlag81q#k,`;>fSƹklb tǏ!c8[㥿g >voz?, ~үLѦU⽥fD jޏzz\z^6WϷ2^OX5gNM}?os6% 2͑;XaOKa}>}<]C痾Owz7ylqjg{\q9,Gcq6!w06 [x#|p9x_x4hw{L{})ݥ&eMݘz}R^JmBO 氊5lbڬ&5j@=I5>n6|Օ_;np6sկjϯ]n~9{ɖ}nڍfI{˖!.fE#jf(Pg|_-^۔%5bmϦCsϕrx^~P4fi\kϗ=@Y 1/# Tˤlam_uhx}$tW2BmBF 1X(~lJ`o CYKj?JM K$*ڴi.@?&+Fg`j!NM- FsUFf!R3#RoS}WKMq$Zq ׸-:LJ~ ac@FJj:>p#-p+\9 8-ydt^m.5> bmqqFa=--C=ȸiߞ=n tc~G2?װ \wXBhsj\'HM wz>Qy-~ IdAPǵeUu=EQ̸ڟgاJM=&e/1A aIq[ b fѦs%5]q<%,cafYR#>[K٦9R`sem'5% m,\m_(5=m_ 5=7h{%<^ZĿHR6ѦRHG~4g禟S_gxa(fЦT/-%GL] m_.5 fM,[:vfM ŋqpSc}yz^Ƿ| .9.^WdK<^c#{F1G/ t\?xEm;N;_9?XE^ znhΝ/s{&O xm)~ < l~_F[am|_c ~|6=5= /ċkAN)ٟ~_-L٦yX1=~sy My`hah4%Ayq׸.^K̞"#n&@OѰg|_,%4BG4{gB͘ N)Fʼ:6桉AsS:ƞn[J9albwX2ul`[1!8}_L9>H`{@X"6aB X*v iP2b x6y XmWwjlyy˦ec ]|(US?Nq 49ڌ^(58>hKΩ?co&e%kcLJuIBjZ Ug),]cܖuݬ#mxߵ:HYOe<=.ǥaݪk+ԿtyJ3iHqM.F>Iaҿ˳sQNVNWEK亶PzzYo{XPA%Wۤw+tONsͩd^G{]luզuԿP^^qj89:o? \@ Uע~Swx7Id)O5~ͩ9?7a_wθ ֱ_QCg31߃;?2OYϑ0u:CqlNwQ#.qm}^*\om}MqCXColzlAYVמ'Mc6v78C{1GXmF 2p=`]mN̓S78%9.Լpj|=.}P߻qkܡ߯я]^7?'5R mf׿RlaK]cg85nx}s8>ߖ@=ٞF{eu:O6%^G.!Occh}m'8^>r\γ\;^Ϻ+.~̈J#3aabaTbRQQ1ESlфIT  *4TTTJTT&{xߞ9޷Vss]׹΁s>_Υ^ȋ:4%mu"7^g܂(SPD\Ԕ䱄C\ uʔױ-qXW:AG1 )S>%vtjo` ۨS&F?(Udv1ԉR/i̠=qvu?oy,` 8?Lbu=y@@G8PdONQ_َNQ~ey+ԹP~QC|QgOw;kax3wyY9X`Q'M i'-ԑvzv98d\:]9EQvOү΄zؽn~ux.~5,hgׯٴ汀:^~GC?PH0aL΅v7Ϧ~I.)ߣ+>ԑveW:g;ܣqcw8؍[q㮳8A~|)ia;ӣ| ܠ>=u;6'OqsYQ#^P?I;1:)tƍYPQgKO SӏԙP>QgI/?:1=֏:+).HD<3M|Y 1YfΔz]uC@3w&q2#>\;t!NWtO8eƗ;{0~i嗽I+vcyc { *PA>b8杗9Ա/MYlW~wsuʔWҏ^E;'5b,c,m(]-2㛡x+ EǭN{F9g X>u/hF!)0 MN܋L` 8(Wse];S'qqN0FPGd} (]K:=:v?V}-~>B|ߵ?Ӡ)?/xC7Yb#40E,a 0A;>^=ٟ&]Ϟ#^7 0]O9^Uyqx¼c7M߰9Gԑzn֏PH=/yNG_Fi#K:y.K|(0'tbu9!4ʸZ,s'">x?vuJԫ` ~~xB 2|kZy*/4s\ <ۇ~ `k~u&n^ϳΝzv(1,~e;:7xE:tPgCZZ^[~ϭg5lax lGg@g8Gyƚ姎_F;ϑhuuA_wtz`J nC(PiM+S}'4_ WDEُ0:o6%e̲on]߁*-굱=b:b8zA a,ʹɸUfOq_П#<өrL 괩7N0DsYQI; F uf/0Lqs#hݨSvQ$1cS˽:5Y81Nps\ 8b;]<1Eyqe;RdS_g}uq,QG#uYG.:qq::NLD< YR=_ML7Q##\oxG3%%,c[>0}u|<4A` f%Μ-g O0aP^VPuwL,` u.ݔ\wOK?hjPA= ԓv:Oq tiQG1'~to-PnQz6% SOb8 hCl)َlW'$eN"q:3%YcuJWqSԉ_LIoqSz,9cu*6F)<1UԙP3\m7vd:s/pWtou, q3ԑr>l46QGe:g#s/p5D S u| 11Ά- ŴϽQF;ҏNE,aG( Wk46QGe: PG?C`: ʗHд Vuo3cCۿQٰ9z?t3>PơttZ' 8qMèӦn?Yck3b)p:w=`u4ֱ, ꄨ\n?d;:{3^0_K?@̚QgD;>K}0үNy汀: ʥS} g͕묙WN򍦤 1'Oi7;Ǯ$|ZQiRF/kDz]=GK'RI,]̧ ְ#|Gor +#u)C@[M(vP" ,7tz0%\1Lystd)ԗv:k٠a>-QD3|*2KvzَNye2=)[wPYlן;|(G`3ʼ2]=uaocލ<p <j4氍Ny;b(NYpݓ F0qL`{hw|}Gf9 y,װm8zm比r2H1S,氄ec8.q;)̧^'*Ww1|xeߙ-PM=_ޮ_]H4ouAՑu3\:u#uqyq}ye_)OR?9̲=ٮNz9HEꗰrd]Ա.mKn}q~RC;^u^:#י#׋3uG'yq[+y!udQ,`vuz~|ҏ]|6uk<e.sv|e2?ROES_DX_2VQ'Hy8B`a.EUa{8nPtbl/ Lb >vB(O<>X8B=\F8AlޏPuu|q >/tP>Gtl7K՟ρqm_x_Wu#b#!ԑgQ.G,z+m.=۔X/Y:/{ӑT/!~c8>[Kz#IP Z~=Q~ƧΆvY/q㩣)8[g/d3X QN6}|Gwr{8@ 8B#߻<c ܠDkyUܷ(Κ6xva{u젎̿eeDzWY?S˼lNvi QUk?悷#Ϳ{):M-w,x=Xկ2gC?01Lb [(8GoYe<>Y XѦ,q{|7~$5lg872c62oyvedH 7xE70=x@ǘp;t1c:psfAL` ]wGǚaKX3q{t3qX*6p[ܣkʏ)z78),7dy7|`K8919,`;%&9EaǸGWy1NqG`yqMb Ga^Ʊ+lw]WF?Ŵ\fyg).P 2olkFV]QT9,` O]^ 83?[@Oԋc'80N.^c(Xk]'&nqW,0l C ׸Gg6<9l d꼬"!}b$0]c?Irޯs_;Sg2V3ASz?sgv7Cg!5V;ac^/ϽqqAz~?G?g}S2<[QeyљO?sG=t_JsEG!tQvWOOJr3z>WE^}U__;^k{?+Ng']ޯU{"ge|oms\, r~P{@hP_wS_}cy ~_o~_qrݝuF\&xOq^/Q>漎8}qr~> q; F͞pQy݂8}~L;E?o/f=]`oYa }?o{G*ϫ:|a)9|>_+|߯瑧~*?6+\:`3>ՓGs('[ϙN+>:}t9s*Es5Nc>8}NџC N#>78}NП}NNNNNrY\s}K_q~PG_g}ӿտYG3fP+}q/紽,voE~w0S':z|kDt|\gr\t /#y- ;ya;:үwKʿc^sbvݸ.% 9o.a\1{r˿,D&1i 7=2>πqY8~ha ch^Ǜa:oJ.q:4%[,YΉxI1G?f֗]U1Wv2YG8F4)9a*pw < E>GM,VqYESaOv-zxz,~-aOxyFsޏ ԩ&nǸ˃r+ڍ]C(AQ 7{/FPΓ 5좜7n /FPΣ\W~Σ &Pγ 3ܢw1λ16p7|`2=0yC =8OX*p^c?0y#07 r}U;4p[<39<39<wq [w]q1,b '8#P#.>9X>8\OQ'߽"pINx.rݰX:yI"ב!rs]De.9:0c9F9,y⼖*筛S!+\ O9O,yY|0&݄e9ﲜorE8<,UI+e9s<ڱ,хe9 ?rY#ѝe9?r-X$MAΛ2rY}ٯ9mwrX >=+ȔkϘ{fkMy ӘVQ'pB?v5诉{:NSiw:_:&ѩ}SR:6Np:R~dEØ&p3qWgC?CS#:-hu|.Q'd&1:R^`}K|":3OaoZp[ oϺI1LYԋS?nQY)gS~AeX)o22m`[?jj.q:3%Z8 0~Cۉl/Lv۳^i2xCJ?ޫY=~Ҕ$0b xO~u1@Os6m|j0[x4t?eJ&;nf}觍:[(bO`u~icxϘ->o!tyY-3CپNLI[3^0~S^:6p+ӾSqod/{A§89Cx/Iy0¸d|:I-ԩ)K.s>q;Y~{< e|N5N]Guz ]\屹~%,=r产3YSC{GK-K?:]q'l^ѹRw7k**X>h/ ^0O{GG_7uNG/.:N7t~q,NqI>/ans=ٔ0mܡ}M= zL4)o`;1p oxGq0aa"VM`8[oc\xC״<psxlV?ДPׇi?>_}).p)v$<9__-P:3漳n8]Gu:NY뮎uXG_{ԑH=;u:[o7ˋwWx+fΝnyяAo)w?8lgNпN袅C}o?0E,a ۨS7 f|6p ~Y =Qթ}..6]1S6ͻ<6ukH=WME/׉O 8G]oE=a덨g7х2|y뵩'td,ǡMԑ!n :3 XLz#ܢ6J{m̼\2f>2A !q[ԑ4o1k*89.iQ.Y>e EQļHef2;Qﲬ\#ljvyrǨS|LݷƸ@ ەvwԹQ?KNe'=#ٞ{IJ{ B|3aJ=gRϩ~zzʇh7E6J{Dَ0aLcX&p'b>,7zЋaΒxD}\un?2^ݟoSr\,PGjWqI0X+B~'ְ?lD:՗nf~Z8GY,ӑ~Rfd5C'8qK\/oq9>N:/{2 e:ccHIg$)O>Uc e^IWI<|H2G zuT8.Kti:RLPr ;eMԙJ&3{TL===z:2(uw/oWJL:կ|顊2ŲΆJ;ȼ:;Gϩ~zzse :2!G(uZaN(a^..PJ:0/>o,{/Fz?TsWM*8|OFx1)u Q)v:G<.Gy8ud5 hQXc19qy^<'|:e-Щ~yQӮ^[xiWQN<~鱃:quѩ~*;pEXe>(?݌->E2Tgx3sgE.A_$5Ƒ r߈F9}'-а|KcѰ vJ1>[\q?5>AAi7=.xnti K~oɣZ Foc5ڤ8Q?jX% ` }1#8A kDwb _ v/xQiJX vǑ澉2Nq \6f jh? 5,]Y!G= ^Q#GGlpyw>o1[beԸ:vc1"}3xDN~W Y^ߑG^0u_{?=י= 3<-Ɗ#ιNF w&+^0un}xLby {s֯i|X;ApujX,h.1]1NѮ/sw;a'԰|/b+X)qkЎ[}{s5 g~"KXF`8o@}O`/K<eQ}aכ\?qX>. :]kthǮW/~ ohǯ]-ӰР-2rа׫hkLkux"]G2mLkQ"/1}9j_*6Qu|_cw{L` %ݫF xF*׍A<% ȑnב+Lp#o>lHя 0~hr=|B;'0Uؓ~3y\߶=?qc rAj7.Q#C[1ή[?CD {rG{k5װV^u2V.>3\x t1#}kܠ]Wq}q7ĕ(Rή6|n̡F~EKL{F5|a~@eFОc2m׫4\yF{o!}:]Y{<5.Gc.js~˜jD94c5sО|dF=5d|vPÞH'fi)wb5߈=PÞ0k9_%=OW/~>jX=Sa4{݇sk ׉D9W?v\>h~hvz!#Bt{h}WjS|#`f X*j$XI̠. 3!.2Q%kha'wCpSk˨ }K AC%=qFoCa5l`8+[>ca#'WgL71wK v ӯFw]:~O]iLXg|E;pvd۩ƻnvۡmC1}^k \?>xOyGCE .G+hhTPMA4氏C Oxb ^G{ߧ[n0/b'\7 W#McOQÖ6c>W|-g`ﱇ}8%}b簂U oywc_cSѡ<*"=>`Solab 4fX*j>ay?'̲8a9}͟qK0@ _81Fp1|t_b8D٥DW԰>z -ޚwjD=;wi^KMm) 筿wP#\JS6nPc&ۑv.%^߃߇vQ#G=EĴF {ǚˑGҳhLOps\>Nz.}Ը6p/q)aF4fPLz.# @#/x3j$9HcG:.9p|azRB8cƄw'vܣt}t.?` KPFRx ^1𕮾 b{c3X"V5c >ps\Ƨ{5>ioxۉǽhʥ]/F|Cw\gx5.]#.%i\ 4f ׸=zW-. }k>b6 | Ә,>b)񊁿ưX*1A lW}M^'< ^0\ jqG|O3fmOAO>~l Lb X"P&-lc?ۧ_g"lem/},I_ڔ ߋ(jvoW[WW~jF~va]ަد<747#`-lc[f^,믂5cm?a?hM;aۅmlq9ݲkbۍFwXwF#|xi,ٮl%&ݯ}۽ng=ƆB~}CWrK\30]~1Mp 01̙X[C#Ge|r0}+j|z52Rr"os) 5wo-vWcGweFtR0)Lc X*6Q;]w9 X.Që\#8nq~4*RjXj|K0&QcHIX'-u)E5RO:Pct)~>F"q?RM'~ЩQ)KɉU5~ȥ,q'F#qS\bG\1Ya8 pG|W԰ӯ:?^Z+|j|+r\u=hvQ vu)3%_cxb]p{m]bן^ak9hr|أ^rB.W ]ܭ2ֱ]5/q/Irr԰|cXD q|عq$'v)|E7]α%^0+.]r aX!x._ҷB;^rdom_,,Wq)Y|Y7۽ct ?4np_pwppG|AI~_0zɡ͏mW9.va]jv5I˨%}'s|F |?f>oWlxMI6:.=cQ.6NrgxB''w$=i 7q Eb۫1 ePE 83cm|dl,(Y|>1A4j<%^Qqthq0F4>bx@3rpU;<71s{WSk/1)԰'c:d|5޵ v5|81N+s>_CGn5l~1D+aޣa-pG3IHa3hhظ!epS\ƕ{Oְq=IO)| fOqh.e{v5|n+<꟰_Rc?d?VD}|:j85^G85J1ۮe|`b[#0?߷@3r\aǍKp)dce5ϴUؿvP%^p|8Z߶boQ#汍9U(a4|ܡ qyF|H9 Kul[G9ΉaKhK?BvhAC/Ro" Iq>l{!z5}Kt`ƙO` 8 X{;#Q_Џ+8v<W#q?-w X.Ì#C$l]e3Qw6^[WW=snTgҨ3x&;oiO3G'=G{L*ҿjˤW3:?gmy-?ky~+n<`q88ʧ5GLkX;ҎWFq@{oQƉO`+!jl1F֯kL}C5^:^}֗b 氄a<3ʴF|:^[G,_-C5/L{g1s$1ƏK`_1Jl9r(Pn#Imo|ל0t]Zv]`K=>`_0@S+BkWb= e`jIO1D+^01La8b\j)0@} ]6W}~IC۽^ y,bk<{{5zA%hI.GRc@>{'`CF\J ݣG28gc~|eְd߯9]LH{x/qG/a>Qa|&81Ƒ .p6f<#wKb Ө̸[ }ezxx{5#jGc5\_SmH1|%ԸЏ aۢsD~׫G3@-嬼_~{ іcawXS/- u9[5^xWU ~ޣfXF{Ài{)ڸ~O18)aX[ܡya:θ)԰P;,>qe9|W!Yi̠ȴ|r^?qmyk{۱F}&kl=ꏆT8~ۏ'4nُqqaj$ȗ4VF|E%_-&v4'ȟ1Zy>~[?Ƒ/ 8{K?c\5^/~cnq'u-]a??> =<5rӎ-Qu%I+/jH?+F ֱ?Nʟp1Cqo-#&JGcx']> z4bKyc{qh38%񧟘ָgcm.xjdIi>3}tbX> /Bף&0b\jx;P/@lrL{ߜ?Q?5ڵbx-KPFgۍmgݼm7kqɴ-7[ƑxgF~+]Ck׶C+c۵_ 1|FQ#K>`[^z?"gO~+bqEe .+#S԰Gqw'=wx@8IPE6v+y[^|7^烩ۆt,PC5x6`_)?wC4˴?fzS'I!yd԰珮U_zh\W ["vО 0^S>3J5lb 9}%b[ahߞC@;ֿ*Z9g>OўC2<=oQl8 Lj ߞ3ן 2[.QIx..0Qy6}cfL/1KKAs,OFo;ҘI]W,'>x\>8kvO$CZi%7xjHOa\m**q^ #\O@;wvMCn3_6\rqΏx%Qz3ϣգy'6~Ǝ|E+h4j+Z93r~% 1N5wB;/sq>&Lzk5 c8_E yƀ|6-jHQo/U8!y6K46aK\C m|Eh׃Cibh_m 6n̘62#/ZΣS6fr,S1rVNo=856_izNiv$.4t;Sa=ۋm'VNM8j4HmN ͷ$/X|>C;e4|N"MLrdvd5ڸ=]Gs!O8OJoWGCۙjY9 ]r^ngiY/vyjKhhZNڱ8Aڱ.q,p{Ԉs>Ӱv=\9.p#~tڤk?<0*jhǫ+Z kGYK 1B%۸ ''xhdNr?l {8@EЈ[;h0Y/~aHWb<|jhnG&ݯ>W~hhXgsK~?C_};>b*8!ƻq-^IbS0X"qcjXcqc[!p{<81r;^w|#A#NwDC'rZ/Z.m=u^g{Wߊvu;~uYk^skR6c[S[ 1~F5#$հ~=MC.j|Wk꧶h]:ˑ` <Q4?k| }|AS~Pwϖn lvgl>5r/.ԶKW#M3I1]\`ƨqdyy՛\5gj4wm젍´W, c5l|1~BSXx Sgx8 qLc X>pc,0B 5گݡ3ɴW?u.F൜޵>[Ϸ.,ˡkCZ/~_jlc_[hȯ2FXfPG~-&ݯ[q1JLWW 2@m܆8 ,cuB~򡶫1_iϒWA aKX)p \bCx3}EO|ҟ2|X?Ϥ{D'89>ḰKcEk|FmJ_}֯1/Q+b뇆~ ,YkX&ΘƔDs5c X6O1/z@+#^ltWƻoqpGԸm?KwɵXMlc{8om/۠rݑ3YaX.~ihƴll͇m7};@|awZtCwGȥ=.esܠ_;vqg}2%Ro\. x鷻pVQï^+D&(6P]?pnp/]!jK }]̩q!y~!-b{eag^'.1/O]"p<<b8v+Qrz_6~?i{eǽkrpicUU|hu1Ҿ1Gxߣ оg[|2a~1LC6_~[no[cy?Qalz7^Ϩz z5?}+^wF~Wt J[G %pS1W.eg/]z_;+![v&8j/@Zߑҵ4'׿`m/Y~+rl=EYNLzܬ^qUuZp)[ .aX7jho?L?#?Rkף4n\w=;5ſs9\5^ߺO&B;;(K)ak8?1Np+<ƕw^1'3 N1._x+\ _uGOqqCXf ۻ8!b\.pxϻY,co~};& lbbq7E1/x ^K\5=omno=Qx+~ʕx/c]$nٯX{G]ζ)lQwv]{dcS~gwIw~W,7]N- ~lX>\,[.C;w@ӺVeؿ~ؖcCn؏Qwgy'1}NGy ׾^Ǚv\e3*ޭ.m>5o3]tg׎[l?Sv`Yv\o弎'Ggj|*@GGG?yk1~_q{mh S~@ _g3w35k}a֋/x7qxvyd{Ϻ%юS@ Wq駫^;jv^8QWq.g;a8܎3uy ;/aǥ~%<4Zߜ`kK1nk-?ޠ_WjB%گ`Wڟ {`qG=th猳Λ9~ڰw^mVKȎyqu^79u^:2귍4ְOuc+]>?ͥf[8짻ebӟ>` X)n>}^,g.ڨc<\9o"8"9O*fCz16_>wiC/@u~cu|:__P4+h8K ]NNTK{ܴ_:ўڵq`_oac졍W sou^hU {ޔ_76n764ό=l(;{٨| /hqxkë1`}$q6Fu{).q;|#^0ƺ Lc X&>9N<PHQMI?bs\,k| >OeP)WHױ 1 בqGK;4̢ kS8иk\ޖ{c=1Np |=ŮGg]=SN[<eV5xCmsϥcj'T9-/98| m:[)i mh RMuǵnUlXO'Fݖ&ps\_(cW-M:U֩`/u;3a]<v0! c0ivuaݨ,oVn:c]m\b#`]*{cΗ-]Z~F[oZ[hѯ<F@ɭiQSV~{_lw^6t/KkM1ʯv:/lI(ڈ/>vU{][_Y/E,?~mܭMqQҞ"oOPo\U _n_Qozr66?Uc_p6^XoG̳`C7V[+8O`UΆݯ*?_6~ڨg8G۬wgc51.gq+|g<`uX:6=b2X*tZo:b6w7Ve8:%[<:vA֏1o{]݄GG?@^6n]O\oYsn:>r6ox1'l.\mYGo ֱ[x fY/eaX d$-Z>%8<~j\lfVClSq1_:PHg͵T}kcLߧ^?Pl ?[λ8=꼳 _t[Xvq3cys8-(SjIzD9ccݖ;XCk<*oC8ƞyߚ? la_p6l;+o6W_0 yߚ?C9cKX*6Q4Hq66l/xE0F0 L{Wua8E:>=W Fjdp摵nK[=+ >`U>J^E:~'v慭ahC+곡q\3 PΆ~O|^f P6IG6$籈*gc||>cﱂ l qg|9y /׫G>2zO17Og>{d pAͯpм &U d~ vcQ%5?h#)L31}j=i SNa+hcK,>a m,xo+뢍G/=cr=Vk6ZFoͯz[>C;6ڼ{hc b VYa4ؒ >(0 qQ }m{izJzdzTW9~h#nPm}3xO=ix$}1 mꇍw헍[Bw~1=mwW~6F_q+\G<pG4f X*4[c۞KH?y\QƎOFPWq561+>O:o?1i`ﱄea;q_Q[ F,氆ula{qs\ xua2V]pS|=W |W0ILa X:=89.qk<|g`[.r\#x1cS"W:ڈp9ym{ci\l{E1W"5lb {>u pyol6l8Z^߫%}r}~x}z7>um {:6y#߳/߉~ʫwbqkj׆ߕO]xw6y_=}ÆߕJ.S?l~^ X&p#\MͥGx.E_£>q5~85>wf1 ~ІW["ޚB:!ps| +ؿw]#r1w1N;j׆ݓe`QqLPt~Xo;|= b l໶ؾF}ۏ="xDGz?8oØFc1î|??>aXnq^e){Uyd#Vx﵎mbp6Dxm7| g!?|הۇ.C>{?_T5 F롊~ֱ-s^LpA0FPh8?n9Ov3y5ott[Ҽ1q| \Uq>qϸ, Xqּïc!wdK[ vpy.W| ̷W1n _w/g 1l+ ]=%l`gxHq0xɛ>yk2vd!{w=m:[P?nOE)Gbƻ^76T^^K6{Ɇ>*9ܯtPyu&NCKG~P`ƭi ~PWY.nĕO}//~ӆ_)%)~W!qQ];d8$QҶ+ZBҴo֣0;KU:nk 5Ɗryˆo.#ڸO O3aߟ6n.ѾaC{ }w @lm㭿5n6g+;J.ubcO;B]POx}89-b#nz\ xcEʤG+?KGR%nEDvg֫^Ew{qb]3^0z&pKqb=p!g{ahyK㇤F۲-^ІW23/x#{opqN`Q0Oz5//J1aLq;|B{}u(1C]:6pc ʍpZLv~FhKXFꇎJ:Nv:f:qc?FMسAa 8W3x|}\z8-l෸zPH_ La+iɍ|ckCi'X*x_?6x,پ_E{^{7] _g8^[+tZvC| QPH?'?q=l/u>@UY׷ ϊܿJX*ְbq;<?zݿZ{ jmhxaCjw`wļI5Oc >͗cp;?ոhm'z<ֱ:~ku7t||sFtHw}gIu!}WqP:.M׃ i]?uu=,.v?Gmxq05lc}g35}0@?Sy5F30F?k~PsKg>ء^3W9G6tI~ڸ;ކ6^'wP{w]A!ޱwƕף] l6}=M 硴ױ֋&m;2 VS#Rt.$ʟI_ƭ~٨n8%mCg|^e1ڸh8`gmLXc+-Y 1._3{,`11`D~ ax%,g= x._ 4fUl`[>> *cG \+6}g< r}/xEL` X*q \#&,Nqkp;7hmcmzLqzx"m.qz_믏כd{3ymEڞ_~Ώ[׀|8A{~|iq^e#P3qcSX"Vm|t='<0!(V3sZ`\}oq[yeyeycܖwư6=%'u3i\ kXϸ3urOlFqඔ5_1g\05l7 Yvp+<Εu0?綯І_($WgxD/?6:5>{٘s?rm졍Ÿw[w끖X't) -<ޚ?\ AaG8 uABSIlqh'B'ce{uIﱂsܠ3/QPIƃkqWFO ӘjWF+i;.6ඤ5lwGU-ֹmc73ڵq:}\S[Eie0/XG#ϓh#z]\m(߀8A/lczCk@ G='}8jT3=bF+XWm"Ozmh=[>z%b5n챞55amQom;k/RȺO[ f1y,b;%p/ۮ&q).qZ=Ul#qu U_z8.C+)]c|}aE?q[*8g._sژP߭{ ]ӡ?C߅~ܞÐSOx0Ⱥ|>a=9 8&Y6= {};qh tqmmܺo{EԔ8`>|m>am錚/Uj*`q &v}Q|c<4K6ԣQj?N_ؠPRNxW O^nG]W]]ꗮ_OgHۚDϑ]3!{IZs$ƒq|>Gc_+Gu`_^o]귮7[ח]\ xᾮy*_p_Ho]g#5fr?u?s[uƿ:F5քEݧ7-^P]g}S:t_ybڨﱏ7X%M9^ߋvga~ƨV~=mlq=m޽=kFTf~ڸ#_?Vml'C;6'j_GLҮ޷) HryY ok'x:\5TtmGڹbvl|3\ ?2.'+=\A.yoN>Uձ-젭vm}ou[NnelaWG{Q6:UuzmϓD^oW9:uΆ'4Kt5}F}a l(au@ˠ[_ץW9QUX`t6J~;CMRW}-UFybcCkc!U_}a߿s]6+.hcMrG?Zx@ϼ|GGs?J66l/xEY1ILcX~ ~r1LcsX"V-lc+Oy`ĸp9CF]a'%]TپO- H7ݖ)q66'ܣ{7.`{hc>amNl/`hc>mxus\ _?j30YaOxFqNmF?궄0)Q}&1I,b#?jc 'xW~lt+hEunp>@;ikoۿ(ǭ6n;<W6[*q `qﱆ lbhb8{1oMcCF1){#?]7$x34f6O*n`ڿQTQ;sC%}#eQy>g=0ڸU,p_9]پALQL '|3FkFk|_9],~B/U}'|ܣާ{%{gxE1 La_1w]yOmy+Wn{3n{S8)^Е`sX*6+wh!2r8[W\Z*gC'/)˙aw~j}"i=GMI0~1W QlTWE=קuFmDx~_1NeᴡvT?l$jukëjdž~='|#󂓏׸g}<EUa;'Qxk}Sa˷gv[yM$fqg Q1]Ý /&qcL\m80vq/hJ9\&_{8D}ϰ@>cÎqqzl)1Ya ;x4)gP+oHІS{<ڵd֨v/jh~بQoϱІ\r%xzO z?si̠-\SOp6^=aSkj?b_*ڰ~\r귍f0E,a$7]zW buisX6_Ch'aӺ6޺SKv?l~>1nG{]Z{Ayc#Eb[^1H`sGQ$]Bs;!=Gm^*zrZFKXFG7%=C|b!# :AaMmA[1BЍ脦ѦNSM۴ʹQQ1 M;Ag}>5{}?VZ׺~sdlc8&0ib kh\Xv6CxB/·꼠:~/ﭴq T,w}G8)<Oʽ ~/{lw+O:YɁ3X*P磜5T@_0Ͳ/xò_aYEݱy}<~oEO=Y={O{|9N:/{~ztC?t{m v0y7h8P)y\b>c|ΛF?my}^DuzuiuWucOb{|5lt}ou&y%%Y`Yu[#꼥OkXg8Xֱs\~kDzFvY} {x1c VqY4|:o-~W,-m.wo=,wp/ ݿh)g IPO??m;O]ޞ:?O}Kו~I[{m_Ϻ_\UN/6z]W>:Eu?u`qtҗIe=1RO.h1}|_-cu;u^DXcM|͋ﳕޡoO8Y,o't~KG,W6S};t\:my]y\mǞ6=lfgsmMI:66ZZ6vp.ߚ<}Y6}l}N{6}O}mgS}=~m{\؄OAp3#G몟eJﱍ \(1,8@ƱD;5{bsb!&0Y,M$wxFߗ;aݣ'xŘKo˰<)l66vpKt+<$G/k=qC̷2&#S@at^%f63w=L^26v:؂%q !2^Nׯ7Bϊe;-{|5> DZS\= 8%p; 3] kX.1oei5\kkf{Ћ>c46!_.]Oz1|*w_qg`<|Ks^qt?4=j?]rW{]>:?ץ ^wwuqy ﱃc\ ׸A/\ЏY,a8)5qe=f>&0i`Y :#0S s> u>KK}_y2}_,!6>|?v];aNuc9fs|':>&jkJrϯ6_'~lZ>pSa7V+`KX v{~BF Y//z0|G_b%[~Ul`m$8?ӏͥڌYq;cw:' wOm /_e=kߣ =j?~m')b8Cz ͜%0lMI NqܢMC%,cmBo.$0z6 ^yV9'ILc0%`p[< Sq1Y Co'sX ahy~nMp mjo/1n{ivqst` X }zoӦ]$=4} mj,a"6w<0WhӠKG1׸5Re?-nq/ z 7Yl-"Re7汀xh7yIP{x/'K㰩6{8_#l.iz6I^O>P{%I m\˸q6q6Sʗ-4q6Cʧ%ڬ(Oh31fS|BG׊Ea[xc Nڥ&GXǮ돰^X'g6]O~t:%{4`DzxD]{~Q~wZ&aKX: (Wh6q~98 FwM '0WF륩_>ޮ7J=]]NǦ PWXy *O(Whf={]9FOֆ }a~4Gm [zΦO[x;{ ߺxvE_٤Nsx;z='W] 1O;F)}AzKڏy ܯc>]o--%hWwG:v},;[9!ش_P?Q SX+w6wkb;8-N4N;n^&9.p6Y~78#FkӮYwj?]ߎve1W^ zm^"֧9{6]r4f3ﷺmKu[HOnmd3SqN0y>}F}kc~bޗl܇8@}_Q7s'bE)^jf^+,bmGi4n|#~̡~qN;3ǾF yhԻJma~| eksMSKގkJq8m&{h3ͼ':Je/r󥸘EK l:OKzq3uG<2Ւ8mkb q3\h:Ԝ8m ejP{lc8)F5e|:N2{=zƨzc@-u=6ej`Z89)]h<MgC,5͑s|2ީ;FC|N_k";py>ǾqC>)=t:?ukƵ-<ƃ~Q?OMyRxEϛF,pz'u\3aNi0.k]^O}Y6:?rϋNp+\c#G^)l,㋱q,ߥsk{sc s$0m.6:Lq癞GIf~ѭOMz}ܡsJS7MNz|C״ksʼn|qK:ey/=" YyuuM }L=kmz>)1c鯀D+oQ.hwh3 7z89.qmFѿ3#xѿ;q{}~s?=ןyu6G]m:?~#e:e mv~RKD$+[>7Tp.\w5:Ͼ͞CԿy|^E 0,.}Di?ٸ<ك>>c N3m:|+ W#1YϕO,|+`csF1ILD{ߗyly ď:yer 1v=.>U,+ksޠϯ>ϩ 9XAL^_aY<%q:uwy^ :OsN{=l+?9|}.?1~{m{:p]뾺r@ڤ/|yl&w9h}xN?{|`+|aB|yPϋstzwyqIm6;^c7<w?ƣQmt=N3ɸy_iS๲]6F)styH=wb66lc]iiuUwGW< gߙ6z>>a]dp^Picϻzx~v6zZqoPjc3wFcounxUߕ61Ნq+yJJr71Z)/axe"ڜ^߱^5q%R3돖>F3.>V^cxo2Ҿ3\'xY.dyL06+풟(0by%FsR/y &>U.iR/ļQ`K;c]@rS6ϐt|+1nü't}o`<ֱ ,q>[m\r?DOǍ5m.=soMUm.=W(<:=W\zδis9F3is9FK9/K.'&/ IM)"p39SysVd#aiPm|j[֓RYSShRR&JySs/e&,'껪ғ} 0qLcshӡ|cW=ы6a4~z- RR |q I`+yWmwR.pN{f@CAm7u"`l:) b#ٯ-o~Fh-6^F 0^lᇇw7Ihs fRZRF?0QL#"m)o`;!ps\VYm|὇oC)cF]WG=O꟩f^Mأ~h))` +X6q6CmǍ&އ1%,c xmcd U QϮ/JM㻥$+O^m7&La 7zЋv|=8!>u+ƻQOtP3fy |x#퀉$0ݓ?Y^wAyݦBc|k}?sĿ_JG]M:b~+:?ݮ;Ktl?$%ic|#m[͚ f鷂67xDݎPiޮMM~8 DTJJ\ ɑ, hS >k-֯\9vڤ\aﰁ L/ͥ~]͡}_K Y^cp"1cmc)qӟ(0С[a u;l.mMǥ$gx`khs)pa~P!U{)ckX1MKX`=ILamr-UaB#(x1A ac16Ln&D0FpOx8 nq]y8xu|'^Kߜߐ;Љ~B]M^a[811:cxnjێW7gv|aXGRJf8]9p^ c[A/r ~Q xxBA/I&1YS \xJi` SSG,Op <⟔_zt>\AId}X6SeLpoI))Oi#ѽ׏?#q7Q6qƓ f1gt1;2=e]A}{rmoqmgymJԯ>}cq6n'6}Q4繍2Am"%_0k\ڬh_Çw0uX0?g)n&~o!6 7CQ>)^)LFJMUR3Nmo/^c/6K;tqܦRnS~Wwr;Kxx)q{?/6w1r+=^~=nl"R0f[m6yH3Wgr'7;xARn R>Ƈrm|,1A`m"k,M ` 汆6(/cxul`8>~qk+,`x@;_/gølLpŇ˸h3^3E徏~cB垏a1%宏B5<; L~8yb ^am4Xzl.2q?Z/b 8mF^~<.q珗zO+lV89Կ'z5ڬ>IoqO(fKPc'sfAyS~?U-q[~@Ҕ;e<6A ~W~)wmІhׄl.|߷,x]İ<3]l2Mהg=]< c)ƓFYr/:_h{ڨώ:OHݾ YcfAy6wut57x19˱w_n:oe:J$y]U1 ڬ} nqDP~{Q~>Y.P~N}S2޼wDv$r;G4fP?ݘ[,n8~F0ymNq:[=6ZO{^>Ng=ot?zlΫ =l-|fFUo' ch H6Q]F Lw;]owR6sy=]E/7,b m ,=]h.wxD/!a_w (E{JbkhoyhSyi}ڴRoKLg6#'C/F&PC}H{/̨I{~^;G8)T?0a1.ƶzkŔ?&Z_k[,bWA뤟 `Kx)}rmZ{hJ+ fd9WfD?Oz' `cxMpɬ4ֱDvE{:7a{_d}}n͖}Amۥ_/:g 7%1rq[iQcq?EƟ{{*xIy8ԉM}_B7G;]6oj?N~I%c\m! tAsx6;·![|ԫa뷹>QSo(iZ>_EuwŲM &Urh?]ޡ NWe6ϖ爷x.pGH?>JL@[  ] =`KǭxlopG@Q e7Xq#to_j/k9S]1W_/qTuc$ 汀%RGK+me,fNK'-i$ڤC}(`o8hziwYˤx3B0W5)UGX*y_-7w-'0yL}y=x+\K_#*Xa[ Ok6q~ԋbӘbkhE1oǷu_t|]>8Nm.]]i?6\zTl7xWWn%?!{_׭}_KM}ݐ`#<^-q E\Y^b)Qc7Jf |[xB7K&cxݒz lb[Ca[kfu1N_Vt\Krutc{֫.z^o`TȜG6}G.շ h;04^>dsSx~)r֥i?6-{zSԽ3C׷Q]mr_-ֱN_~8l ~?vfN=mi}N'yؔXOx6s{?9$Ke07hn_2Vf=Rq61p6Z/끞FY<//ƶTv{~Pac5nq{/Εq{qˍuji7C\`m[C3`?~FM' s!g5`ߕkoz_ Ko8F׼g8GԬ +Еױm`{}h5VGsk 7ew?}n;5l?<4q`&qup+!o\1֏vN'6͘yln^5­/6PIW?S(G<~"ZOqp{F0>i|骈7è8׻0:6v-5se؟V/~Ϳ{޿zX?s]Sg{ wܲu2^'Gu^m:zG55^SlS~Np Lկ2(c^bmoI[57hَ1r28FMrsj"raKxOs_{|H X?QStej"G1kԜk5mY|[?>}5lp;pM͹vf@kJF8#n c.qqk.a| eaߤ>Lk6/|m?~Ѽvi[3s/O_#^-jf3xY,żAO&}2#X'oa5SxB+װpܿr3\ 1?&},m3!<+̣6'ȸ#wڟfֵ85nvO 5]ƳX\c{~T>Εq}[_6v0 n}5 0%FxO3ETَ{|DBk\R[K)ӾK0s7EK,`@>׶Ӕ5Ome;u_}{j'4^'{z\Uו&KxUg1mwA%z/5׭b5+ b#xY,cxYx ={1~?tòͧr;h+gvW>?+~Ob}HkDpG|C =9c<]ooף.t{"_͹f:NsqJ8%jz|?]S>q$p/ X[lb 7E/&1ϗS_vix跇o2oyfǭq^yyyh߃<Ӵc3쩧{|mbPsooPc߳c|/ jB|_'ϟ;>16Y f^5]0F$jv]5Kx~C|ngqq[ 560A&8繒qYQ^fvܢz-wi"_Jnp;XG֏iȕL0uula5+I"gMg8F/KqLfߚy:Ku5-?w?~մد8Hռ+, _0I,5e]cKc5Kmk)y쯰G};nq/l8h<0 Yb{yԭ c 5/w%S\`뗹vq__b5og{IfQ?Q?]8Mnyov%c෸owGv_PT19ʭ[6k*15Q38&iz6ccX9f~W]{cw8jnm1{\sNM8@Ocgk<0n=[Ta5~vz5퇨QUqO)E]bYcƫ~F+.7eYsn?i[ޣۯbfң~` /1MlcpK}Y/0WuMԜOd>^¼%^hv.ж[]'_fe͹㨱y.[_by˲ ތ(m_5G}euiz9\S%9,ƫ^٣8eY$jh8eY3|)X6!fHp<_gCGM,5^K#_ic4^jVc[dk?ȕ4;5'+5aBLR>9?P3߰?m'x܊ꇟYMxbY3oqouljw}~桱{xgP +)boQs<9cu|j^ksq:hMC 65:,+/q_,|+~>>6xWHRUIL}Rs7?M`׉\DM,y뺓 Woz_ϙ֟F?؎nP?' ?$)XTY~ nP~xYs(o):o~gkkhQWu>e}9M,0 Ua5qp<1Qaxs'D(z}M4VA c v? c Ps帄z\43ΣsYD;",ywEy<,ar{Ov6KGsyj)s^y[\s|ͷJ}Quf+~ ?s|?6^~iuZuyHXc [׹Ʈ;r=bØB.ѮG,QO/09̣F۟?b:pusv%X:Z?mCM"汄; ذj&\׶%&fRc`vޒo[ۣ^o}u>v?*u>mʧu 5uJ3ڽa)f5W3uQSלc5zP͔W~M->%ȲF jخ;<1^{=3^#E^:ru{:wk4:W?_}csĎù#*TPSz~+ﰾOo[.u C,joL?K<Ʈ/r| ;1d&>?<Oz aﰇvė'5l.#ۓd~;y}X:qc|B/p1AL&E %5ڿס>k~l]8fQ~BoƲyf_~?M~[Zs̀c'xuUuPG{]it>Zo .{8ݚisZ'Op:OM1QsF5-kx8̡Fҟ-ԹCPsܯ%&j Y5ѬmܯtkDMʭYz~n?XD/<ר]̯s^b53smeNvݬ&uz u\/{|11OW~vLq!s n>{KQ|[ q][ z8]g;sݚzv׮s~<㖰-p=Z5Uԏb5֮IG; 2{]wc9urp\ f.! GX+fut/.k+ }ԏ`5֮B:NPc[Y1nڟv%v] Ҩy>?p$u16?f^*jz~ݹ_v.pKu#7\ 7#7]v[^c5E:_WpZٮ &1<uu(?7_q6QӦ]fGH%fq3<7WݚaNs]Ń3w%P=\8^95J4<*gA:a X>2!jn%1I?6zrAyv ~48TX_> Mb 먩ROqOjp#j{DL?6Nɥ87b|D5`op #F6̍|ZO u6sߎqbiD񟺒[bwx#gD͌yq>jb'1%.jl*̯ulmڗgzg~<}i[jJvx#n} 8-q" Kx'8GGX&P`{l?|G˅ d?Pϋ?΋COaSxy*ֱ#NpsX)Q]c~l\'/\V=pKb_~ F{?Ȳ9N~sXA>qבγu+W~gǸҭ?pCпs˚G}yDs?7,,aqKW=7?fE kh~vq hYAW-0Cn%f1XNî}xԼ^oL<nk^b p\b5VzwDzytd*ϲG, 6+MelFtW-'g7nS~[|̸UmLje71h$X_6vkՕx]8 0}#XGO ul`5m=O8)qopI.867:s#b;v^jovgp \w ׯ&sou.0vN8>pß3Ԝy1^{`^:?_Y5k1˶~ibpw6ܢF~K|ns=~wk8y=жs" S΃j;@gv ai.y8";O괳ZsuxK{GS;u}i1QSx;MQϏ;-q~kvbJ}}]ҏΫ ט֏& b 5>h}ώfN?խ`k^\.W 0XGb\?\ڕ_3ܲvo2\y4^nc{m8^[>Ӎ(z"qoގvMp \p2?ۭO}S&~S f+;|1.p ',/p{qs\ƶ+#lC@M!oΨo9~}qם?+Ftaz!<KۂpτxNǙ]7bYsҸ@MyTY=j9cx,ns\G;s4egv/b^aK|1xp͓v̠&yb||ۡHy 뜇x[]&1iXF>5LQ<DŽG}c1vؼC;94 {5G7s y}ζk^%F}>Wc|\}e}6j^=G͒[C|ްS-g>d<>^`MϭohgOo̲]yPf}s=^~蕧3SX:->Pc߷y_]w,kv0+)}2^/$7lg`S5tKܢ&Ƽx94(o\ 5x?74%X&jϝ=>/o9Z^5q[dYD?SqͲ#|n{H2`55ʛQ8@͈r{n~.{;>?߿D}m %Q|jFOp3,)w9R[ j"1I\PQS7XAM&.wh)&{%} ' _s}xmr4ƾDy_ȣϝ=?Ns~_`~0y`5cg8j2_bXj Gg0v|\ט{@ 7p+|sS|&ql{B} A7 ,!~.9xm,>a:^~aa X &97Y#7gر#':-5L):^vֿqAt.{~^O,kZ.YYl~1ƱYit|xֿ&y^Lg'%>iҾbu9wU?1ht|o8ֿFe^$![X^` ߫r[߫7QǟQ@Ox}5c$~~m~~^~.Ƙf߃eGW6?iok6ewco(_Y@qG?0jb7X.b5Suxה?}ow]aGPvϾwAhko8֟2Jr-|)% xרͻʼ먱5w:613]Sq jn)o`_heW9^_R?E,WOt#1y>ŕ\c s)ӭIa3XvPy9,a 5t% b#GM*ְ{t;d?ە\a˨MfF ׸C͑b5Q8'>:sXCo|>_k|>;澿wUhՠU#Dc  `EF 1 JqNd.Ȣ,ȢtEYdEq3F'jftzw+s>ܛ{9d#'X_ k ]/įYκx:շе"]l~80r}pе"A=eЈNC ؄?/t%]q2 d1ԺĮMg8O}ֹz9®v99X`s!h 0Fįa=J_5؄km;]Cτ]{"$i®$뭖3:/CZ5K8]ė<]7m®1㜰kum4aט |S;7,(l_Exf$# 8&ʲ1<g| ?1jW Vƽ Jovi]aWK5a3NK߆]>aW؆xkLvOfύ/]~[][R !|c8+upׄ7pui` sjèJ:QGw1wE[:/\QIuD~(9JGp&? ӎ`i*]{^>p7p?Oz@5"܅ӇCK'qHW/%܆=8Ys_~\OTiMj\T/Wqu\zGk=xPQ5u(?au A[@'(#Y$+}Sxg>`}c2O58p o#jC}OLx 5S~CwP~BJi҂4`(Mʻmx{PPhF ]׈6! `>CWsXGw)}tgo{p#ź.Moj1_.x4ovo# v j܁xg_pM DQ4d`Oj]MZn&xq צ 'j`G۔B>;x4sۻžq!^ᅰzToH.q0y^|Gz^C P!4Z4JqrysG kO WE%,2&\WX_>':0R;Ҹ3s<)\,01B")'2l3p!vq]wH?RKҤQgy ܃i-]$lP*s)p]Je^C~݄r.\'8 +5$~Ö,0_tC,+X5؁]؇%p_`{xvf1<"W"/oK] 1i%8s<,@ȿ!K蒿33(;va#XU8c!>\]wMtl\~3Lwexkf *Yr?X0-pw/@?ķty^)dUy叭p8c;G:] 159&3X xp{]8#ҮfP/r{Q#Ӣ:.tqmK:ۗZD juL|` H߁5%x30 gp ];U'{9® /@߯ .gSr?b.~0Ļ_2=4^u.1t(,0UaG-t0DKڄpGGtE+Y q$r:rruT!>C)-x]d{zG⟠ '?JAQ6N7ž, 7p ?]{v ^&~".qe? Ͽa?g~^8.XbYGp]]$IqmY®WnO `Sc|%-놫ĸ^\]EB*FoL(a?)Nvix$m_+!& s0njѸ?.}+8 [^]%EҸڰ]kp㙀 5x ЕdRf ˺G*oz"zY.t'aj|/{&>^S9_? 5.@k]+7Ӻ>_+wq͉Jn&wF9v&[eQ ? ti}&zEQVvŵ+ qOjۻ5~vrU -GV׍vTOj纮Ni3_Ҽkl_yF};:/]^u躥yc[ Gָ$j~u!MMy?^ԺZgZͧq#ZC[\GnN }~^-8l8> vkp%!~ %gNA!ޥy}r?j]NKqr{7yyZL~s)^yiη:zׄ]~>sqYJD>7ow.Ow43y ]ծUOvPunքoC+qm؃.SJKvU-8J*t\C*}\yQT{L8؂ZH!fG.O_'.G$ ʿ]\W9UO#=Wuv%e4c>18WP?\n_\?6KSߍt;%Eq2ty"%;CO>tE_o 8N_,v@'Ok؂}#!|PBf׈#`^&w݇CGnaRw9׌c]WqZs0EWqP#4uq@$\WY Gu̥uI|ijj,vÖ%ԸhqF\=u61)ti2gx*.ۖ`>ԺF3}:3 Ay:.z?wk}ӱ ^.WOQĻ⎃+nzwT'܄.'cC ~ <8+qi޿P}/>{걆|Qeu)ew\.;.w}':ZU>gP GIѸ4?1wvmorOؕ!|׼Ez} q=:e+gZYR=_+T]JZ/ߥWA}Zg2{gPnW]J4ϗ{wv}w1>/Y{ >9e?qvPLzZQ9\@=ϸnblBoNyw5!Wv!+q<&Qj|I13hGnw[s=z.^?#ԟ`\7p|ͻ!܃3u^+ΎKsV a\',?-AWW#J7P8ErC-F?xx~捜R9\@CWRZWޞ0j͸r]z|quLuj~@ n{|]Wn뻮Z9.։}QIO~WJa͇*r>؅qAؕ9P:V5LpCi=9\+Izdi9ZOL~C5K+i] y ]WzT[Gzb3\B{%|Y/3 r߀-؅;橚@a*.NּVEɎ+MH!TITRtU؁ \97쩟" 2>\C'nރ._2A:'~a;!N &?85"~y@STKtjcå̛7K53v+`~l.t`7U{F5K,%>x 5ۀ>';Ƕ `,*@~ĥװJ95x xvmp ӬߝJb?C}vK>q*/q.B[yx?˯yJQ4c0ܳ=|/]wŝǮ5a޾'8p C tN|`6G*^{ri=*ۀp! t kSjֻP<~][7Ӏk}Hs}Cf +ҸV :%tu?ފ]+@s:cU_ [P&o@OcH~Ov\J7'ʯCɎKK@7:j&ӸLh]hR2AxI~q)oׇϓ=~PT"5]A^Aui nOp %IwU՟&&TCT#.:)eypcB:ߧBSyGz%n`Wɯ/Aui৖QI/"Jy]Dp}tluGף%aW5L_.~tm׊gϧzɿi+T~צPC')//Gg/O&moin4o{ozRnj(F0E[ߎOp7"k݈}J5z ~ P\ AeUӺf'@g"y%\ZM~GMkW+|\GP~E'}j-O@.p{ ʟU⹡alv)^ӜP~7Z7vHX!\$ևvɯu`]_!5w#W)?25 >Ac:/GWh}Ӥσy\w\p\eGhG.}H3؀-6i=s[.]4ߍ7}7GC`ދ\SF~{1={><{K_Sz?{tozj|s޷z>Cs{؝C&.}Bc7# vjP~?5춰AƇ|j~/p:DŽ]%\ 5.eW6suiŧEZSƮ֑z ®Ep6m]wzʑSޢ0]Z'u!F0j{7-ti ۟aq oBW@ ş ;&pp?~u؀8o LQ_VT3:Iv+񯹃'.^Gc(;W=؇[t)tb+LCGOh ]+~m2#::/ҼY` |o1G0]=)gP\ Z.O'g.ߏqpmٞ?֠7v %]|OK,UP @wv\5OgI߻Xm^c}G׸|rA\^)ҫ[\?[Ļ wVƍ7牟WywlCY=}3"vIw]$s`{j\s]%[ ރh^ 54I]hR:O^\J{U 5O+}B.1RMG jpʴ#[)]gvK.5P//?WQپQ>q|y\:~WҲa,tV[\M;f4wzu^ GSR=ηLCˎKI =P츔N 5odǥt7 P! k^3_Pui4H}Fgp??A<}{꯻Ŏ6~ G.}Sak^lu\\^4]vuUv]#*K=u~KXC5ct_XX ߑ?%iR0j>*=灰}\|zhEO_Wx~D),J@uovݿS~ljDp|'KХz_Bi辠}T=_9򇉪qDn,>9\A/~*EǢxx>ּWeZpJI[q]ۇiX 'q}l_AQh]G,ȟB~Eh]yFi'spu7K W^?-vUy%^m*GvyO(3(Y(EWtȠ4?c]Q|i}]ޫ]q:!XP~ 9k}v^Ppa=AAHC;مnu:a)ٮz>u=W#CJg}#?P<>$SQj+4<τ;{Hu=uӥ u_|I_׾ƿ_B7qF9z{#ξ-8`v麐Õ wW܃}u՞ ן!#~9Ը}k':I|7MC]Kߓn+k=&ި{ZHIAPb^!^.뻂Km5[ҸzuD\^/F{S^:QRKg[yvɟEIpP5.4`;%6h] WT=FAhzi|O>7G8ʸQ~ltpy>ԏw<.?7`d8Q=} tVg4SS{goُ>s#aL yDzqE~{Dž^|~n=zYks#yD%#ݐN=F3"O$u>rZ1<5N$KRגo`Έ/+X#3 N&k>3B.L}xWp ~{w;O`KXu؄_*#ҐwS?qIXo x x].øBCxu`{eMKB=T~z_o}ybٮvk'׎\xk{C@W 4"lΗp`./`+4ftM>2};_b7xLHW?c t"/UX ؄-Cu؀%qpwuF|^ t B=Q\=X/0aVL~Uȷ{p]7w ۰ ][3.K9]yXQ=ytUo{8COmB>yEx%`4sT ,B: -KOv\ea\c%\qIq=:l!Q/8}@v\k^λ Е ǥ`Oޠ") |>*U&ǥO1a_\;qIWsx^c_\Sү`\vؽ!}ƥXp oRׁw p+O,SXu؀M؂p0w=x {Еb _B{&`zsI4|W|[rο睟g*c ^&:_vLz?^-+K}uz:Qx@.ϯN?/]\ҥ8/`Q5\&pp{xϤKҭ`Twa^Aۤ u= |QF3p]{5à \Ofa ;,w 'x7BХ򖔛$[P.9߮v }7 ؀S8 *@ot`Hs ]KH_Z`6VH,*C-]fFFħ8/ҥ !+<v ~$o&`\z'~/G;۝&ێ66дݴMw5Д  '' 8 !HI۴Mu   X* u1Y۷s'ke=yr8?(D~X,̀q#\&/pa {:Ѧ Yq6ukhsiu%q+k6|u|qhwP\9#u=υVZ[ԱGX&6M[FmS 0.6ZCm<#xnaA,A='Я|xe` ўG.fF011)Gh3}b?b o6s:ں?ؔob7xh9[Np3O}aTЧI5np6"8,Y_F16Oy ܣ]?1?!nR8F_wf1,{*:Nqktd\|~o~3'o^n,pJXF{=wp]N6!}b19mKM`h;p|:2ֱgq h׵=SNE&g:-m6s~O8Rf=:D=޲@8O'.n>֟>'AK\k76[7DSTy^ zч6SC eA/ڬ͐:\FЦKxBE.&"+Mq:u/)Lcshyװ6u<6U5ֱ6-{@ϋM<67>N?P&9f<[gMMy[ m$W5t?X'tT;яImzI:DaX*ְ6xp;ܣ^ԇu#|LLa(-mGH#Ee mtq#Pg>ƝxkXG ޏ}^8<c0Fe~A)p;IwxqL`mj=mOX iIrb+G!Ni$6Oy \mB6}/]f8Lmta>6:ؔNU^Wg~8.q6ϖILcm#.p6/pϕ> ɸqwG#ϗ:L`3h?E͘?X36@ m_$xGtTxbbm_(&X'̢~ 3Vio-\ _"a[8 &TW\6v[L|Oa3]0V7:RֵW:89ngcu>nmbWM`8Fp<}6}'8C6>huvw?6AsFoj}\km1ݐ6O˸d77ظq6{z:躭3;_y\:o %OFaMe\nJf0Sq3 }clq  lb ۸GK=pc;dh`]:֫QTž=G{m}4.W`ܹz_?uާ61}U"mm fq^>l/b[hz^a:ٴ89.Fu>mܢ>m.=lnx:r|.f9V#Cig}Ǐ?)w//0owôm2hSH.p6[^.Ѧߕs a#//X ְ6-qѾ = `=n6@:G\ڸ_.̓^ `?$xDKi׆v Vhc?~Lc7En=컄G]b}w.۔gwG:. asX ^_=5S1C7x0*yF6uOZK+~mnzZA=u}ϿR_mS_:uw<ۥuQOhkuWݣS_뺩u״n}\yh!zZWZJuuL[bqY`}ͥ9祯3uF_y]Pun$zۤ~D32me|oOH'GDqz{3$N`?+6ǟ:gaShSK\Muz8[1umt܄+ܣ=O;N>1cmt]z]#S:u2^la;þX'8C#_D/IEgoq/9C\By~&OxK{si쫃<0,bkvp't&1 xԫaGBʼ8&1%]0Xqt/a6vc 'tÅna sXV۸ 0^8qKMG^ӏ!9}gsz_mS_F[{^>|m_::h whϛyQzF>}ec}L_gq9WoQu׉KS 6u[_c3XEg9nsn_ ƫOם_XVf@ԸmS~Wkdk+qK\Me^ G8E_q716ys}dR簊=xm#$0̈́s w! chmJo*-<>u3<PeSk@^Ưp~Ӂ fNx@?:]m2ӯ㪴ka(릱m`mB$A?KM4f/<~@8=i`mqs Ya NhW01y}om;<)s\Md\ KXS jz=J֞u5"Kh chcu\MMO?USӥG8.]-Z@RƎ?^O1R6g;c8$63gnGߡȸ:>gqU6'.Ì!p6Z1mdT簄g8%pH]?e1&2u 2R:ϓ] m:։=E޼PΧ6 p6u[8s/S/XDGt'dC?ư',Dױm(](m$ᤌbsXqn1I,a+Xkl`mpz fR9燈MPiG^&Ѧ x6#>RƵL8#4. rm͖y#ϳ}hh,F x:h"wu9ٟ^7'*6pcwIR#.f̸'˸>Ec m&U\m쯊Ц_Lh3 ?9Ʃڜ[g~fgzu`hsøTIylb-,\{Bb#Eaǩ㣏S Ku~ILͥG/l܏9,>n6ޯ_#lBY|Y!m'z0)Lcxo2Vpo/m/^1aL`)uu(Vp>m2<{]mv6{lq }\klcxӔq#Oh34njȷȺylݷJ%=d ЦF[<6:'ȼ-j[Җ}S ξK1ҎgBͷ˼4a8@Yێ|o+|vK'Ƿh,rC/I+`X\Ưp_6~E6֋S@G[_kQ>_n06e_H_8ڸr8j[qߖ:6 ]+9,511$y~GSA}m3mV'82.b[>qwCD$|Xk ڔ6rUxBƟ&q8Fu[GdOeb0qy񻭬s1;<mgόeS &bx Ka +; ;iel8_|]:eӣ]F龮$M-qS\͒; ^m:{po~1c G Xķv:6?˾izaak-Fu=dNdFm?޷z6x<nm.=l&oZASqch0#umz 0-3>A0hMq^g~t8~w:^haAW+z^6#}у^M 2'J6]w|IR ӸæO5Ɵ"㳘ps̿+b 8q{̼ɣ͚_ǫbsǯ3@}<=~3:bqSwE;>0w* }\lt|y1M2Vpkܣ͹}h>Omiٰ}F1qLMJ~'Ѧe]ϔvmF!9zFzя6g˼1Nq6K"vqe0qc ۘz/ͥEUF׽a=]wK{'tR'umr/c8 efQgy015"x-2%M}~"9Ƥ?Ÿ4f0Zb_ ^c!!xub%2.͹AD>@4\ڷpf٤"fA #$bz3x-I~/`+_5iwp;| &;эy,`{GZװ>B^c h۪~᭬o|< a#vpC pGe0Gt|wEoOG䰄5#JZԱ9طce^9>;<'o cӘ#(+$ig?M,M0O,ooGϝeGtF cu:I2=>ܜGz>Izr~>Fyq}wzE>Ys6mܼL{I⹯zmu]}@_G><@w}x\>Uo6z^}gz6>a/cr~ds6y3lui7E~u\n\ݹv{ ϓ-6v imʟ.+\a3dM?,qG{~/M-pt~/1̣͔~I}?0!|cF L5ֱ6;$06-q3~a8ڌ@;9BksE2>_,9ڤqh3+tWe]/Ke\8nΚK` O29\v~aZv+R4Sad\'89.0P_-]8-kdXZob!809,`[x\ ]_'ݘn&{;:ڸy~z>\c}}\}^iuxk9f_8͹'k׉*jN؜{ulܿ:a{.σ!NP'6:2~WϽt^c m(KX6n0M2.b mh绚Ru Af15*SX\1/6G v6z]j^ m=-m-9M l`meh:1i?9Цy+u[ysx+9^Ɵcg93~@xD=~׸#ڸ~RpS̼Qpxm*ǃc:67 q]kAUl2_/_Ys*ڌuk 楏|dJ0?0 LM~]klb{hӢ_ip;2#wvmJ̻o]'8.qwG']OdGMkSc~[qY; Yfı-Lwߺ6]B>L?YFdq>hG_ֻ4䓤r 3I|ヨ.E?1I, NE/͸G͜zw#3\+ amB> 6 =EG&̸Q_Ѻ*A?Fp RoM*6[.q# Nqټܡ=FSgkܠ͖~W@1gH #Ai'F룎ֻ4#6֞.+}h]sԫֿT4Y~q>`]:6=1dDm6sYWmŒax%3hS{/i ϔC^`YҶwbKX*ju蠾0%=9&zqz}.G}@r$Yc9rKXFs6y1v!#,n ~ZG؇/>2h*SunL!+_amϓE`o&@cUJ=]I{65;^owD8\1Npkё j= 0UÎɯCqkU:o6Aw-zyGxL}ɡuγɏ{tO?:}v UüO_[ޠ~;~݅߹i3ޞ߉Bhsnz]mĸn ̠>.617xqs!=y_kl`Ø,d99z{\[g)9\Oeֱ.uqx1WU>^6{}>J5^'=O}\l\V6S5-3\ bFA0?OП3hyEIԻ|:v="G] r]PgX mt]=su/=>~|(L;z:y_PQͥdsd\ C#fѡ>xy hs ̯g>;nu(N ^:3#?8}?w_m4{h?<_>ؿ~Cz^z_C8cB}]G|M?'9w~6#߮7F06uZצJkWu~,67#/MG-=p>}x.]}1s?q^W:6q:.K?<E*_h|_ҴsMEU~~I?g=cC9 Һ6' u,6;x@/_lq׃;t:s 쑏~q뫟纡GQ^[cOz̸ |?Ο~ @},~@s`7p9 m/ۇ8Yi:qGޑdșJ)E=ED xBlK]QKEi۔yVQ?gנm3ԸI1N0Cy>=Dɥu3G}]@[׵Ӯ(G6x{<`GrXy5-iO`'~_ҡ3\?.ueB{3XѶyא{9{Sh6X]qy![?gωy<~loF랛gsZb 3mZ|.>gSD? (vp{,2^oDz6:O5b]&$2X G8)z/l:)#><ڤX-M9*=~}/Ap;tTo/Q8As3^}uoOE1ڸWz|Ο 0zb,9yLΌ?ae ^,= %_"Njhsi޹O>sR#mvb`qޏe1y,`+86~>leucW+XG}ޤBF}hsiKyF95m̐?GX?qTNm/a@>C}}.< 7g,pPgH[.qs,z O.4zqW>?_up8_;Fs8p8/{wY!cXh6\XXĮBFȎжBFBlFm!dk mk?c{=|>?|^<;]׶/W)C=^[%jX1q'tsƒ^amx]ސ~.Vzf;tӏ^ۯmt6chcSqFmCgN7/&N3tq|Ǐz^!t{ǧxن8~D3ʹ*3]9>^w?1Diqϴ^WD~9?u0/s=}^˾On#h#[iWz}=~ev~k#}zjHWzLes0wL}z-E`86crym Ʈג].ӾN6z!buMww˽=yg?xkC>#ݏv?yv,.q{<- hev^_]n1I̢t+8=~|5ob {7κn݇b :-aƋW>=\^{KdC!C#fP~뫯טi=;^iu6L/?#8~[/{z;ӾkhU ݲ~ >1N?PqME5ni{Ϻ=8rm3>#˳?_rmG:N\:h=E=mg底ב.#6zF)&sFj?6s pH,:eizNbwy6lgf'm5>k}>^'a|Nӽ n)oz| 9&z>y6z9=Q9?A=`iy};kaqN烛rm;Xo6Q΋U ,s~6Nhey1گ^㼋gfz|yPC'ϭ}._tZ7pZ.o8l91ՙb#}^b=-}qZ^.OħOtהopN 1.}> ׶O~~k˷˳}~qoF몯76Es`}4\S=iVigz:\J>|N:%QG}NFѠP"q59Q2V3`)hG>0}D]M ]>r?N~:e +C?+la8P/{8q<S~AG)PwO,o\JbQW-({b<mOgN[yo=|^ۍ>tMuyvsI ¸ƫW vu&z^I?~5kڬY?s83>JpB}PYg/hi0\ O1a݂ wV_Ʈo^k料 r6fmev~mjR9.p(<6qkv%Q%)8mwx#\;iGk,Nd8+hǨl9)i}m^e 8/%&A$sDmgsyA$?EL[̉ROٴޢ1Nnm8-wRy^ ϭk3NЦuul>nWυo0uyM>/@ۗky6|_}sδe^{[tu1+w6v.8_}[M1slP5|O2}6v}~㴱p)U\{>j3eEנ~nyoW]5MsYuXs@tտݲ|6[b}.qich}N}Ad_cSFrݓ_&A==ڌD'Fp应1I IMvz^Ǣ/.h F$y,^k.Z~g>i_]L@Zzd2׷شEl.ez]>BH|1׭dNulb8Կ?z,6wUGL/1 z_MտEd\6-3::lٮzZA`w|Rmp.qmu:)1#zS}7C}7g:>zM9z'񴰋 AT9RvPϯ9b8o߯8~'oi\6AγDQޫIR<}ﴎg-{ p;k\E}fr q^&7E536[C|qb=Ys~8LȒnױwc18bgId0|"z}Yi}~kin|#:a7n6IKP_/`hco\a(63`-nϙ '¸uMmn?BJrX*?Ro1;~ʴ~LO0AwK-6v9:7 `S<҉Czy a XE]z>bL'P.bMlc"V1[|Mc_Sog:]{͵MKmܜ`m!Λ$8_汀1ΧZH2:r^ί Fͨ^SAj8'I8ЦM弞͘vGtsrmߋaSc^~! R&S,~3>K+9>[ 2= x.K{L`( 0PgN$IlMoKIX)seڦ@}~lܟ'%.RσLul|o"2 \&m׎O_]i^^?1T_ a :^[;< ?!t'?혶qoq1l}a˾_zG׳Ye8E7~3;n>nd;,YQCȗHICI' K\_.WHy8q6/8@WJ-=M_*Mn} \?x_o?q|9m*y_}u6;֔DZ 3_#w1e~[F?^ `Ә*q3qz `K .p{ov/$xmۿݟ?>t2}}+>O鯓-w+~_ϻkx]Ka?9}v*0g)zج}c(Ni{GGFGu~Lqs\{J ]`;/Qg*OG՘nQ3wSϑ$(T&]%,cm&q9{sUw͢/%o5zE{16W~{*-1w6)`K0R^R^{~0[qS\=-X102z)Lc x3Gy11{S,c8.t3YNSڤ2*-'r۟d;8O]>ϟ؟GA>BϧS]|畼/UElB&%O͑s͙[e =i>xI-{tO}&&c\\=~;\W{c^e9eFqusf#&R{s)͆rH jS}/=0!ch܇ھƴM$0)'8&Bym6>Np3 ԋb @6{hY xAI6;Q껦Co0Qlch<ھŴM懥b ׸=6yKh ؏ȜqcR>n0D?.xB]΂5WkԿ`Gfڏ'xO6>60hi6Up+~`c_]͵hsi)*ְc>H}cS2ְ-ttm?'%3\b<-| ͘Sbb34{Uu~lBE~QP^m<͑.IۇIz` x@/K=^z)YS2${ЦJp6k G)`[y P~EjNq6Iʛt~UJvx@ׯIMfm͎=7<-qbӿ.=02*qx#v~Stk˫O~hz񍘎NSa ڗKz6d~x,M~rZk?9uI=8=whӥ?h?kc븴ԡ #c qyܾOmsY&#ڤ`2cml:)(,7!0#fH8n'3y,`[kDAIn ahzQG8h´.Aoz9Я.ϩ˵q9nmu1W_mwUh{ i_:6o%6!`k3~ɱy,= 8lF}V1ic6 h?KЏ.+X z/:N;X*^0ziC6C ( &N2?QLRG<͍̏MeWA>iFd~g3^Ц^~+Dܦ|[@罥C׸#G .O;yWSmb7sXݎecBe=6v]mt;`s,َ}('pg/`}'6)eXzyC{ȸƿxm{T.54?z͆xԿ֏rK,w6`NMe{qܢ M?h/zE)} Whb_.fC5itx6G q[ܣJ L)c.o mOڗTGxB)xΗr} 1ibmr/~l_.xWH= rSZ?6C}m~l"MYxƿJkZ}2ڔV군GHt[h3:i ^o0'`^o1e`k!ڼ)ue(0=]o0;ci<_.p6"a'8?z;cKX{`6v}eyY~ߣ[d:6>CF}UbIpɐc\avq,=>i7'I9R~Fzy0qL`8GƷK=;<)g8J%}L۴鿋S__GpZ k?F;ݎi[Mdpk|͐1fGR &=Ҿi0E,{,81ڜO12]{b81'Ҿ ? ~DܢM~eK5xxøh.3NNMaymku\)]m֬]?$C?3<mڔwq | n' LeA`hc[^{zXgE`1NpAqx1qL`6]mrK*('8\ DxpxTΏtKy';y+㨱&gKxo|`~ ፱ƴ͞rOH?> ac汌XG5f!K ){ Q?ڟ_:-5Z}t?+'y~ԏ_h3dc|~lpSWx z>> _8"ڄR?Í#F~Nǰ# Sn%(W=\?/ucm6`mԿ;?P_I B~i +` m|Qט{w8C$#m(q{]p6GwރaM藤~D a◥4fHyt#XAVMqG fE}mr1_ 6=ߠM$183z,6kNkoS^^!龿l&2]pkWo+&zٟpK/߿]u',akAӌ|N c:G>]whsX#>ݽo2~֯z8VWW0_oYXF)`+hs-^szUi`)>G{G6l7\ۯ~^ۤ#\sE8l,_?gc?璾u6ƭs͓~x_k6*0UqGov( zY^e . \=)kz{ڏS?Q,i?6Z/IPa3rmq_^6 >|n>ll;# 5q:7mcAMlO8z|)!J?=>'rA#oφLC<~ϕ\>Dwc|eyGLX{v~2__~AKXF{\2 z~u{kX׮3 s+6-;!l}.(7;pq6#ΓJ䱆~) hi-f-=.8}o'-8-Ǎx.=^=wh]JCaK 8G=E'ypJ6:N=t6㶱zd9r-lǯ3`G߻K?1a 6Sg%a hdcpKOq a,b-zXޢnk͵v\Ks_B&8!d ! CsBB!B3d2BFh!Bakyn]>}~~Zw>؜sd{;))akڜk7m!))b }Gy=6wLl k.6I6Sc ,XaJ}OyLއN㺍8Tc?̾0<}uqu_kE}bϓ/9GIm댲]gk]g2VPf׺1럠}sf_<8]wWOt_lvf~Cޗy}~lVi>OsϽ>9s9}ndΡ~}s~>ԙ=\~h2<7csRÈ(&1ŏkX.c:w8B08駂u\ߥ~ ۸ǛC^`):]K?Sܢ<lco?Qp;tu<δh`])^\ɵEqs8&y.h)kO稉K\C5yZ~]"Ro6{i;^9|8?G` )KS \m⌟%lp\! `{hh<ѦFymqsP^)9/6ϓ&>_kUnkJxER0Q9ecmb'% 氂 bt^6_~s2@AӘ,6fG=P/9<~.-p) ,qcm79.~,%=ǥJA 81̤́럓WX nqLKb Ә)q_K)3#N?:wIy~{h%) APRne)bK"6I-bdžq䀨ïIE篋-R|ߐC?1)Lc X=$cۧ~K:b xԿ6T|);2Ul`mtGu)<%ӎ, 8mv ,ЦA;l}iF1)\bMu!#ޏy wSu/ԾטO>ydio7]k{b}Ua.qO6?qS& Ty)v\f*ְ]af/l&%Yl=:hFSuYPoGf|]wk_HIX—_JEX.G0I3 D =vCd^aX 6M$Ya8H;2?~.xkm~t>ϩ|F5Gp氎]9h =1y,7/N </1ylhJ2ٽ|`t@mn)o=//]Kr<hӣ!pW^mx݅! $8 ̠fBs\o&6x%?(OakhsOyx@sf} F+˺lފz7 `ShlM!p67"a5~t6וKamƌ;CwwG KEc>l@o0)ahsdzXps qPo+tH+h|!TʳX&"F16ݗ2Z%u_\lٟ/A|}u}usF}깰ZGۀ6z-ODZK`Gho sm{+`t0SipN ssd鏁 R)SnjP~{UzG9Vyz~`JGzOtlƜ7A=or͵oy=y`Az{'DQzh|h\7Fh^_mh 8J=ܖTFDDn o%6RKrMOmRf~΃sd\96or9Q8dW6=\sp:6agsݪ\f̯I{젞9o~ a 8m#Ö,:ˎ`.Y瑿|ڬrj>}6bk='qõ }4WlA[wyw{ǵ͚y}Q_k;W>Lٷ+ylO;$QCwHf&FfB=빎z=lqcmɁnc m{Mm6\0fŹmCwm"%K\Rn3Sl4ְ Y^ھĹp>΃KpZm_;ЯcӦ=ƹt+#k!3s\9w眹{u VmB?y|כg}snWsw:/}ltCPh#5h|_)I` [h+<8Pl,\zN=;;7=G|cez5犵FsD^Zip=9>tS'7|:_B(ڔ) hH) >Jm^z3|-9^7xy>~Ro3|hlQ ee(&15}\s^mG+i̠}yh7W ԛuCy9euOqzNsҘNεI[亇{L.]͹}}<ҏ͹u֒k0G0:#2'u}TZ=1cI,}R}lSyG/"6ЦKI1)J=/q6K_~x{D?EJf-&>U^`h67`8gJs y9W+\csh?j/osHIsŐ;x^ c#g}_>6nxnsuM;'7ϟx> Ly#kxżt B/k_^Ř}ds}uyۄyߥ1E<^߷s> >swqL"ԏc٘s&8ֿQfC7 X2ڄ$ebO&-yYע;~ d79v WFcFw pMC(ڤbs\hs94nk7xЋ\ər=G?yW:6ѦEz~MLh|$l7h?6)έ);+=Fa.:o&0qls3Z;/ЏAqk2Bw~z%zWqb3)8(1zK0 &O409+isJF6Gbhu^Y8 sNhh.b m"$Ц@yKiI)` hӢz͊kOIIy0%,cXG)sk8失ĵ͑t9o' Ir>M <ج'DF1 ~?4(zs5tgD7\87\qw>Gܛi\_q5:&ù5eX有sg!5M<, ^ǫs|gߒ1ߕ 6=e88#:Gzac=smsj|g8G:4Ź `mJ&ޡMs@R=86'0g9לIqj;/-琄'qlMrh弊9p>֥)8+k?689g}_r_S_h;OlsQFŨWBmg F%咽z9Ahv6qJ}mgS_ٔ9}h㜂By h{y__^N B-ڄz |5Go;Яox-7 ?Ml05O`9} ~Ѧs cnMOr> El&|O|;ܣ~=m&rj߭ns_l/ЏQc ml;7~ub>![u5nv&MckfȼG8 ޼H}{Q6aEq;]mvGA<3.`h]e_npm ЦGxM=mgߋٷy rqPg};chv"&4_,]\Q_h v6GyUP_h﩯l^ k;wK2֫Q?O}mgz#Glޒk;˾W- Ƥ~{/kI,b qcha\;y|l'w>ܿ>Ru xzll;?3.R_e^8Ǧ2C!׷h^^5\M.-Op7)6͏1rD c:ǏkgV3#E%Zyy1u0񈮏yfF=mwGns񢍶я'hs}+'0IrE'7RR>U]&nb++IdTyj}/qSmЧ˺3^)GOO?O3,gX R/(ڤ: süh|s\3#b 8)^s5f_do`~R> .pϕJa81q/M:-5n1>O&8:2OO:]W~ `81N1򕲏QcSCR1K_%A)LÑkWɾ6ﱋ=]C&-}yzR1KG)L}p}ݔ}qRB?v?qLa{!nphcbK7<.5_݇&Qȵkel0C&NOa81NpGs>ReC~s⺓} M0&p3\789*pK\Go/5|u [2ް&=vWC;l=vqe[RO2K_%LQ _ ְM& X2VY_͹/</u_Aݧ1+Po}c oz>,aXƸz_l|\Rҟsm.@ᅭ}` 88V)_mj8 Lc'GK(qۑzCmj pp6S?}+TSy=+qb  FIKW>t^:l_x>vv_m¬+iqS~O WGam:v#xy7 heuG\}z~2pH=}C#oh}qz8).p\wxK$ֱwB+㡝9^zm) Gv/#}}xz #m'8Hp+`G~X xh9|wp6]QyĵKgz{tgr= ݏ8=`'<5iQ'E,c xR߉ la;ǫvbhy<+̣wg6OµKz{O}b 8TꅰUH=/2ʼbC#O9/5iQG럗ql` 0VShyUO<]K{E[te_lf]a>]Ouf1_{06 ?-6p;mb$,ck!Qo{tP? LbsX;qm~_ۏe= c8@_~<8Umؾ28o:p3ܣM{%M` #ԏb+vpm'),G8kfz0l1;2汌Ul8wel7H{`_-3 }~6O>Ouk|=R^vxs>QWk>ם@Fyue>~?y7>|~ߢ~۸gY>Gzy湻G}mnsڟM~/xnПo~uQhwsmZS_aL}N﫾>~c͂slK^.bS7`sj>e5~Me G]Ώ6yg8 hױ6[-ktߙ}EFoߥtmuh Oq6{ܔhڜ;ڦyy9`sh'9w-?Onsv!;h?gDgPޣ7m? wh}Iyp#%rXGg;W:;i~пsFۻB~Op޿r L+MN履?x#:_u6^d]A`8N35fFp[7GCu mϸ?ٷsgnQU1o }}7\xj+y\XλAM|`pNc6oŸO` ap7W/Ka=/ai1ΧS3躆3 Y ׸dE,ap[/~'ڜ-[R}ob?8).pkbe Nq \Zگz_lzR}"þ4m`{O?1Mla;1C͹0K?.5ݗF0,g+X:6]x,ay]j/nӘl(C5lb A+KaX/o6v.ƿ|CR}ou_\";la{!^U116cX}1gC~qQF?vy5?qLa{!n0dcbK7<.5_݇&Qȵel0&_COa81NpW.i}1qK~sfhVߥ{.5_݇;mKuO^a#^ta'}0i>r>]qӟ3oѦ@y亇6o \p6gl~CFh}dKm`ERԩ}M)a mFߧ9.08 L^`G?t3yׁݷ.f~h}d[I-]o-&Oykxi4Ro+㤃bhxd}IQwk>M,;x~MOm8;L\gWc+>Ua)a-^ԿF0I`k6]!`J==u4qn ݸbg\3yL~YϹYoOlx'YKhs|hQFgL(FFohEq3[IPzʴSֿ~gRs,qq^*ԻA/~Nsh}'w͐~N}.> >oXB9Fo;?sYDZ ~^4q6~>7!s?l{͹k6%?s=581K1{tn's_&a ;D͈upɘ/3}u氍#C[<ݗ udJ_6< nqoqߺ6z}WK꾤Y/pWf٧C'"lm9s}WH#}9ٷ0ڈ4NxٲaK8q[Lq>ذ1]WfH#}8V٧0ڈ4po:<>p+ 69sHUu po&Fv0?eqB]2N X2VpkQ)6p ~0Qqy]29y1~ {1"2?#>zIg ӘXW5%z,> `mt^3E;bQ̢$}qlszo{nwn< lxP<c Kb5"'%nqJ汀%,c81^`D0ILa 3DW6~{|g4JcР]ױ{wB=6bKץ<]wuHSé \zX\^T?Nx>z%np;cү5lp+ 6(3}ͯ5?] uOy6_!7GhwFo c%Ị=cҿ5$Խ9f?$p3 q qNw/a^#!YWxҾă˱wퟠn x?"FF_Rwhc1vJ^pE1Uwß ,1W9ڰ1G|Km+¾԰64o|ḏn?ui8{ל6>u&Z8Fn׹u~.lJ~8@OK0UFzNsgWd:ou>?>d!lcJ~ hEץ]3K“66ɿkp_Ib KhL ?/+hC7p6v{ 2deHcE/6|ww_b&]5mdXK&FR'D2C-cm$㴱]GpQ98(ү#LQ'%,m,YȱW0ƔȯI~O8 Υm\oPÌ<eۆe=Qa a8-SmwԻx:1ufB}e~LȒChcK{2І܏IQ lco_ʼG8+\ mܴơe|D ;=WڳCߓz_hC  (ڰi衟S+Τ~u\kw!_81~1?q̣K^d.19}"6&*+135]Kz]wLƟyЏF/^ x}-+1w}mTү8&0g8FjhK~K{ahcH>丏{<~1E:9aƟ)8g?)2= =A^ xDWؓ8)̠7 0QܡɒW8/q ?Sg=[X6yS^k?1X'_ȓW򵟍yM<&_7 )|OԟFS.P `[#;|(9^ whqXC~^ NqGK^1b}D/qҾ-x܇a`G8s~Asl'$#6Щu1`cOІMql٘u@ZW0 N\=86r5~6]Zdž^mφ^5φ^/{]^^wZ Ҳ8y,`+'I?qֱ]QgLg=1Ytv4!ڵnvц< xuMG\sϡO{H<.=3<~jcM c:ck?s\.?gC$0E<^WsAQ } lu>H":ճ6v<Yh#M{>hcb]>nZFXF>/y#6܇W{[mh?sMHPW܇ =Ya 3IlT?xI`{x8 n1|SF9ڝwhCׯyn_:>w?6v<=6<'YQbumhސG8F)B_?><.?ꯋ״QOT&1Ya/Pz>>]G/9a]?z|_?Q%>F4p׸808Cϧ汀&qC/-`9{c}?3)qx<8D}OӞ0AL1q=W=)i/=`>:/;vw?{~O%M'n+_tOuLݯ>vs8=o|n=GdmM'}5zp|}!<~q[')ܵ~}o%6{~O8|ރl<{GNY^U%φ{ֆ5dO]}Osw{o3ֱQN=p{^[8 /n^e}Z9=-=S:6 U-xZF4}os˿{\ y^^xZF&ZF̣|Vn=FRދm,CaCSn#ޯ^Aw疯u=\3+tw=]t{Fw =f4%!l 9Nqe~`#9{iA=ː86*o-h]|[mlLl6slt;c$iԿ8>.px{{pO)vІt1shs<uߓNN256tߛX|dVpK4p"#L9.1pw'ݿ*Ǻ6t?k{g쫍Oxoud#v}y֫sާ׫yO36؇0K񴎍,[A|sl8/ t˟1K'HC 8FgIn0li/ax>Zc6q3\x^La 8sg^t=~@\Yq|_}st;!F]1jC}-_sqv/ɛ Oǵ%Os_So[ >G*0/"h7s\b~ZƎ'<1K=k㜼5n0 &/p;)^&-*nϏNUwH->"_0RO?&ӏoTz_*^ϗ 3$8iϱ"ϼD ֟04.hnׯQ`l~u/c`şz>M[x>}'oK:T궰I {|uІyNIW!̣WJW*icmh%?GXd_kVJ׉yl` 'hr2.FUlb 'hJ3'xWI?u>i]WK1[vHH $C~3N1#ohZ 8 ~ 5W%?=`|&1c9؇hCRw@16_۠'0-*3DωW!nF8N+o lan!pc]rlCk7n;{8q} wA헦_Dg5nqeƽ./6DMA.]m}=Kk3xkySv?$mч~ѥNxtgc?Π"(Q",Q",Q",Q",Q"؝,Q",Q"*Q"*Q"(Q"*Q"*Q"(Q"ع(Q"(Q"؛,Q",Q",Q",Q",Q"М,Q"+Q"+Q"+Q"+Q"ز+Q"+Q"+Q"+Q"+Q"+Q"+Q",Q"А,Q",Q",Q",Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"+Q"+Q"ȣ+Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q"*Q"І*Q"(Q"*Q"*Q"(Q"'Q"'Q"'Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q"'Q",Q",Q",Q",Q"ة,Q",Q",Q"'Q"*Q"*Q"'Q"'Q"'Q"'Q"ذ+Q"+Q"+Q"(Q"+Q"б+Q"+Q"(Q"(Q"؃(Q"؅(Q"*Q"Я*Q"ؾ,Q",Q",Q",Q",Q"п,Q",Q",Q"+Q"+Q"ȯ+Q"'Q"(Q"؄(Q"(Q"*Q"*Q"؆(Q"*Q"б*Q"'Q"'Q"'Q"'Q"'Q"(Q"؀(Q"'Q"'Q"(Q"(Q"(Q"(Q"(Q"؁(Q"(Q"(Q"(Q"؂(Q"+Q"+Q"+Q"+Q"(Q"*Q"а*Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"'Q"'Q"خ'Q"'Q")Q")Q"'Q")Q")Q"'Q"'Q")Q")Q"'Q"*Q"*Q"'Q"'Q"*Q"А*Q"*Q"Џ*Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q",Q"Ї,Q",Q",Q",Q"*Q"*Q"*Q"*Q"*Q"В*Q"*Q"*Q"ؤ+Q"+Q"+Q"'Q"*Q"Г*Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q"*Q"*Q"*Q"Ў*Q"'Q"*Q"Б*Q"'Q"*Q"К*Q"*Q"И*Q"'Q"'Q"'Q"'Q"'Q"*Q"Ч*Q"*Q"*Q"'Q"*Q"*Q"*Q"Л*Q",Q"Љ,Q",Q",Q",Q"'Q"*Q"*Q"*Q"Й*Q",Q"Ј,Q",Q",Q",Q"'Q"*Q"*Q"'Q"'Q"'Q"*Q"*Q"*Q"Х*Q"'Q"*Q"Ц*Q"+Q"+Q"+Q"'Q"'Q"'Q"+Q"+Q"Ȧ+Q"'Q"ا+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q"*Q"О*Q",Q"Ћ,Q",Q",Q",Q"'Q"*Q"Н*Q"*Q"*Q",Q"Њ,Q",Q",Q",Q"'Q"'Q"'Q"*Q"*Q"'Q"*Q"Ш*Q"*Q"*Q"'Q"'Q"*Q"Т*Q"*Q"*Q",Q"Ѝ,Q",Q",Q",Q"'Q"*Q"*Q"*Q"Р*Q",Q"Ќ,Q",Q",Q",Q"*Q"*Q"+Q"+Q"+Q"+Q"*Q"*Q"'Q"'Q"'Q"*Q"Ф*Q"*Q"*Q",Q"Ў,Q",Q",Q",Q"'Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"М*Q"*Q"С*Q"*Q"П*Q"*Q"У*Q")Q")Q"'Q")Q")Q"د'Q"'Q")Q")Q"'Q")Q")Q")Q")Q"'Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ر'Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"+Q"+Q"+Q"'Q"ز'Q")Q")Q"'Q"'Q")Q")Q"'Q"'Q")Q")Q"'Q")Q")Q"+Q"+Q"+Q"+Q"ؕ+Q"+Q"+Q"ص'Q")Q")Q"'Q"+Q"+Q"+Q"+Q"+Q"'Q"ش'Q"'Q"*Q"Ѓ*Q"'Q",Q"Ѕ,Q",Q",Q",Q"'Q",Q"Є,Q",Q",Q",Q"'Q"'Q"*Q"*Q"'Q"'Q"'Q"'Q"'Q"*Q"Є*Q"'Q",Q"І,Q",Q",Q",Q"ء+Q"+Q"+Q"+Q"+Q"+Q",Q",Q",Q",Q"ؽ,Q",Q",Q",Q"'Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"+Q"+Q"ȩ+Q"*Q"*Q"*Q"Ъ*Q"'Q"*Q"*Q"'Q"'Q"*Q"Э*Q"'Q"*Q"*Q"+Q"+Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q"+Q"Ш+Q"+Q"'Q"'Q"'Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"'Q"*Q"*Q"'Q"'Q"'Q"*Q"Щ*Q"'Q"'Q"'Q"ت+Q"+Q"+Q"*Q"Ы*Q"*Q"*Q"+Q"Ы+Q"+Q"'Q"+Q"+Q"Ȭ+Q"'Q"*Q"Ь*Q"؋)Q")Q")Q")Q"،)Q")Q"؍)Q")Q")Q")Q"'Q"'Q")Q")Q"*Q"*Q"*Q"*Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"+Q"м+Q"+Q"(Q"(Q"(Q"+Q"+Q"Ƚ+Q"(Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q")Q")Q"؎)Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q")Q"+Q"+Q"+Q")Q")Q")Q"*Q"*Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q")Q")Q"(Q"(Q"(Q"(Q")Q"؀)Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"ؾ+Q"+Q"+Q"*Q"*Q"(Q")Q"(Q"(Q"*Q"*Q"(Q")Q"؊)Q",Q"Џ,Q",Q",Q",Q"(Q"(Q"(Q"(Q"(Q")Q")Q"(Q"(Q"(Q"+Q"+Q"+Q"(Q"(Q"(Q"(Q")Q"(Q"(Q"*Q"*Q"*Q"*Q"؁)Q"(Q"(Q")Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"؅)Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"(Q"+Q"+Q"+Q")Q"(Q"*Q"*Q"(Q"(Q"(Q")Q"(Q"(Q"(Q"؇)Q"*Q"*Q")Q"؄)Q"؆)Q"(Q")Q")Q"+Q"п+Q"+Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q")Q"*Q"*Q")Q")Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q"؃)Q"(Q"(Q"(Q"(Q"(Q")Q"؈)Q")Q")Q")Q")Q"؂)Q")Q")Q")Q"*Q"*Q"(Q")Q"(Q")Q"؉)Q"(Q")Q")Q")Q"*Q"*Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q")Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"ؒ)Q")Q"*Q"*Q")Q"*Q"*Q"*Q"*Q"+Q"+Q"+Q"*Q"*Q")Q")Q"ؐ)Q")Q")Q"ؑ)Q")Q"ؓ)Q"*Q"*Q")Q")Q"ؔ)Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q")Q")Q")Q"*Q"*Q"*Q"*Q"(Q"(Q"ظ(Q"(Q"؏)Q")Q"*Q"*Q"+Q"+Q"+Q")Q"إ)Q")Q"*Q"*Q"ت)Q"*Q"*Q"*Q"*Q"*Q"*Q"ئ)Q"ة)Q")Q")Q")Q"*Q"*Q")Q")Q")Q")Q")Q")Q")Q"ب)Q")Q")Q")Q")Q")Q"ا)Q")Q"+Q"+Q"+Q")Q")Q")Q"ؤ)Q"(Q"*Q"*Q"'Q"'Q"'Q"*Q"*Q"'Q"*Q"Ѕ*Q"'Q"+Q"Т+Q"+Q"'Q")Q")Q"+Q"+Q"+Q")Q")Q"+Q"+Q"+Q"+Q"*Q"*Q"*Q"*Q",Q"Д,Q",Q",Q",Q"*Q"*Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"ؖ)Q"ؘ)Q")Q"+Q"+Q"+Q"*Q"*Q"+Q"+Q"+Q"+Q",Q"Г,Q",Q",Q",Q")Q")Q"ؗ)Q")Q")Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"ؙ)Q"*Q"*Q"ؚ)Q")Q"*Q"*Q")Q"*Q"*Q")Q"؛)Q"*Q"*Q")Q")Q")Q")Q")Q"*Q"*Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"(Q"(Q"(Q"*Q"*Q",Q"В,Q",Q",Q",Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"ؕ)Q")Q")Q"ض(Q"(Q"(Q"(Q"ح'Q"*Q"*Q"*Q"Ѝ*Q"*Q"*Q"*Q"Ћ*Q"*Q"Њ*Q"*Q"*Q"*Q"Ќ*Q"'Q"'Q"'Q"+Q"Х+Q"+Q"'Q"*Q"Д*Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q"'Q"*Q"Ж*Q"'Q"*Q"*Q"'Q"'Q"*Q"Е*Q"'Q"'Q"*Q"*Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q"*Q"Љ*Q"*Q"Ј*Q"'Q",Q"К,Q",Q",Q",Q",Q"*Q"*Q"'Q"'Q"'Q"'Q"*Q"З*Q"*Q"*Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q",Q",Q",Q",Q"ج,Q",Q",Q"(Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"*Q"*Q"(Q"(Q"+Q"+Q"ȴ+Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"(Q"*Q"*Q"(Q"ػ+Q"+Q"+Q"(Q"(Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"*Q"*Q"(Q"+Q"+Q"ȷ+Q"(Q"+Q"й+Q"+Q"(Q"(Q"ؠ,Q",Q",Q",Q",Q"С,Q"(Q"(Q"(Q"(Q"(Q"(Q"ظ+Q"+Q"+Q",Q",Q",Q",Q"آ,Q",Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q"*Q"*Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q"+Q"+Q"+Q"+Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"+Q"+Q"+Q"+Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q",Q",Q"ȣ,Q",Q",Q",Q"(Q"*Q"*Q"+Q"+Q"+Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"ص+Q"+Q"+Q"(Q"+Q"+Q"+Q"+Q"*Q"*Q"*Q"*Q"(Q"(Q"+Q"ж+Q"+Q"(Q"(Q"(Q"(Q",Q"П,Q",Q",Q",Q",Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"+Q"+Q"+Q"(Q"(Q"(Q"*Q"*Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"*Q"*Q"(Q"+Q"+Q"+Q"+Q"+Q"+Q"Ⱥ+Q",Q"Ъ,Q",Q",Q",Q",Q"ȫ,Q",Q"Б,Q",Q",Q",Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"*Q"Ї*Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"*Q"*Q"(Q"*Q"*Q"غ(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"(Q"+Q"+Q"+Q"+Q",Q",Q"Ȟ,Q",Q",Q",Q"(Q"*Q"*Q"(Q"ػ(Q"(Q"(Q"ؼ(Q"(Q"(Q"(Q"*Q"*Q"'Q"'Q",Q",Q",Q",Q"ؘ,Q",Q"؛+Q"+Q"+Q")Q")Q")Q")Q"+Q"+Q"ȝ+Q"+Q"+Q"+Q"+Q")Q")Q"'Q")Q")Q",Q"Ђ,Q",Q",Q",Q")Q")Q")Q")Q"+Q"М+Q"+Q",Q"Ё,Q",Q",Q",Q"+Q"+Q"+Q"+Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"'Q"'Q"'Q"'Q")Q")Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q",Q"Ѐ,Q",Q",Q",Q"+Q"+Q"+Q")Q")Q"+Q"+Q"+Q",Q",Q",Q",Q"Ȼ,Q",Q",Q",Q",Q",Q"'Q")Q")Q"'Q"'Q"'Q"'Q"'Q"'Q"ؖ,Q",Q",Q",Q",Q"З,Q"'Q"'Q"+Q"+Q"Ƞ+Q"س'Q")Q")Q")Q")Q",Q"Э,Q",Q",Q",Q",Q"Ȯ,Q")Q")Q"ح)Q"ج)Q")Q")Q")Q",Q",Q",Q",Q",Q",Q",Q",Q"ث)Q")Q"'Q"ص(Q"؞+Q"+Q"+Q"+Q"+Q"+Q"*Q"*Q"'Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q",Q"Ч,Q",Q",Q",Q",Q"Ȩ,Q"+Q"П+Q"+Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"*Q"*Q"'Q"*Q"Ђ*Q"'Q"'Q"'Q",Q",Q"ș,Q",Q",Q",Q",Q"Ѓ,Q",Q",Q",Q"'Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q")Q")Q")Q")Q")Q")Q"+Q"+Q"+Q")Q"*Q"*Q"أ)Q"*Q"*Q"ء)Q"+Q"+Q"+Q")Q"آ)Q"؜)Q")Q")Q")Q")Q"*Q"*Q")Q")Q")Q")Q"*Q"*Q")Q")Q"*Q"*Q"*Q"*Q"؟)Q")Q"؝)Q"*Q"*Q")Q"*Q"*Q"؞)Q"*Q"*Q")Q")Q")Q"*Q"*Q"*Q"*Q"ؠ)Q"*Q"Ю*Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"ح+Q"+Q"+Q"'Q"'Q"+Q"Ю+Q"+Q"'Q"'Q"*Q"*Q"'Q"'Q"'Q"'Q"'Q"(Q"(Q"(Q"(Q"*Q"*Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"*Q"*Q"'Q"'Q"'Q"'Q")Q")Q"'Q"+Q"Ж+Q"+Q"'Q"ض'Q",Q"Ф,Q",Q",Q",Q",Q"ȥ,Q"'Q"ظ'Q"ط'Q"'Q"'Q"'Q"'Q")Q")Q"'Q"+Q"+Q"+Q"+Q"'Q"ؘ+Q"+Q"+Q"ػ'Q"'Q"'Q"'Q"'Q"'Q"ؼ'Q"'Q")Q")Q"'Q"'Q"'Q")Q")Q"+Q"+Q"+Q"+Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q")Q")Q")Q")Q")Q")Q"'Q"ؾ'Q")Q")Q"'Q"'Q"'Q")Q")Q"'Q"'Q"ؿ'Q"'Q"'Q"'Q"ؽ'Q")Q")Q")Q")Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q")Q")Q")Q")Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"'Q"'Q"'Q"'Q")Q")Q"'Q"'Q"'Q",Q",Q",Q",Q"ئ,Q",Q",Q")Q")Q"'Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q"+Q")Q")Q"'Q"+Q"Й+Q"+Q")Q")Q"'Q"+Q"+Q"ȗ+Q"'Q")Q")Q"'Q"ع'Q",Q"й,Q",Q",Q",Q",Q"Ⱥ,Q",Q")Q")Q"'Q"+Q"+Q"Ț+Q")Q")Q"'Q")Q")Q"'Q")Q")Q",Q"Е,Q",Q",Q",Q",Q")Q")Q"غ'Q"'Q")Q")Q"'Q")Q")Q"'Q"'Q"'Q"+Q"+Q"+Q"'Q"'Q"(Q"*Q"*Q"ؾ(Q"(Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"(Q"*Q"*Q"(Q"(Q"*Q"*Q"*Q"*Q"+Q"г+Q"+Q"ؽ(Q"(Q"(Q"*Q"*Q"(Q")Q")Q")Q")Q")Q")Q"خ)Q")Q"د)Q")Q")Q"*Q"*Q"ر)Q")Q"ز)Q"ذ)Q")Q")Q"س)Q")Q")Q")Q")Q"(Q"+Q"+Q"+Q")Q"*Q"*Q"'Q"'Q"ذ'Q"'Q"'Q"'Q"*Q"Ё*Q"'Q"'Q"*Q"Ѐ*Q")Q"*Q"*Q"*Q"(Q")Q"(Q"ؿ(Q"ط(Q")Q")Q"ش)Q")Q")Q")Q"'Q"'Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"*Q"*Q"*Q"*Q"*Q"*Q")Q")Q")Q")Q")Q")Q")Q")Q"*Q"*Q"*Q"*Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q")Q")Q")Q")Q"'Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"Ȍ(Q"،(Q")Q")Q")Q")Q"+Q"+Q"+Q"+Q"ȃ+Q"Ѓ+Q"؃+Q"+Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"(Q"(Q"(Q"'Q"(Q"Ȕ(Q"ؔ(Q"(Q"ț(Q"؛(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"І+Q"؆+Q"+Q"+Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȧ(Q"ا(Q"'Q"'Q"'Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q"*Q"*Q"*Q"*Q"*Q"ȼ*Q"*Q"*Q"*Q"Ȼ*Q"л*Q"ػ*Q"*Q"*Q"к*Q"غ*Q"*Q"*Q"*Q"Ƚ*Q"ؽ*Q"*Q"*Q"*Q")Q")Q")Q")Q"*Q"*Q")Q")Q")Q")Q")Q")Q")Q")Q"м*Q"ؼ*Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"Ⱦ)Q"о)Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"ȿ)Q"ؿ)Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"'Q"'Q"'Q"'Q"Ȇ'Q")Q")Q"ж)Q"ض)Q"ر*Q"*Q"*Q"*Q"*Q"*Q")Q")Q")Q")Q"Ȳ*Q"в*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"؏'Q"'Q"'Q"'Q"'Q"ȍ'Q"؍'Q"'Q"'Q"Ȏ'Q"؎'Q"'Q"'Q"'Q"'Q"'Q"ȏ'Q"'Q"'Q"'Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"*Q"*Q"*Q"*Q"*Q"*Q"ظ*Q"*Q"*Q"*Q"*Q"*Q"*Q"ȶ*Q"ض*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"ȸ*Q"и*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"ȷ*Q"з*Q"ط*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"ȍ(Q"؍(Q"(Q"(Q"(Q"е*Q"ص*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q")Q")Q")Q")Q")Q")Q")Q")Q"'Q"'Q"'Q"'Q"'Q"'Q"ؓ'Q"Ȑ'Q"ؐ'Q"'Q"'Q"'Q"'Q"'Q"ȓ'Q"'Q"'Q"'Q"ȑ'Q"ؑ'Q"'Q"'Q"'Q"'Q"'Q"Ȓ'Q"ؒ'Q",Q",Q",Q",Q",Q",Q"Ȱ,Q"а,Q"ذ,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȱ,Q"Ю,Q"خ,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȯ,Q"Я,Q"د,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȳ,Q"г,Q"س,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȴ,Q"б,Q"ر,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"Ȳ,Q"в,Q"ز,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȶ,Q"ж,Q"ض,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȷ,Q"д,Q"ش,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȵ,Q"е,Q"ص,Q",Q",Q",Q",Q",Q",Q"з,Q"ط,Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"ȸ,Q"и,Q"ظ,Q",Q",Q",Q",Q",Q",Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȏ(Q"؎(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȏ(Q"؏(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȑ(Q"ؐ(Q"(Q"ȑ(Q"ؑ(Q"ȓ+Q"Г+Q"+Q"+Q"+Q"+Q"+Q"+Q"؂+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"Ȕ+Q"Д+Q")Q")Q")Q")Q"(Q"ȩ(Q"ة(Q"(Q"(Q"(Q")Q")Q")Q")Q"'Q"'Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"'Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"؉'Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȣ(Q"أ(Q"'Q"'Q"(Q"(Q"(Q"'Q"،'Q"'Q"Ȍ'Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȋ(Q"؊(Q"(Q"ȋ(Q"؋(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȫ(Q"ت(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"Ȓ(Q"ؒ(Q"(Q"ȓ(Q"ؓ(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȹ*Q"й*Q"*Q"*Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"ط)Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȣ(Q"آ(Q")Q")Q")Q")Q"(Q"ȇ(Q"؇(Q"(Q"Ȝ(Q"؜(Q")Q")Q")Q")Q")Q"'Q"'Q"Ȧ'Q"ئ'Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"'Q"ȥ'Q"إ'Q"'Q"'Q"'Q"'Q"'Q"'Q")Q")Q")Q")Q")Q"'Q"Ȟ'Q"'Q"Ț'Q"'Q"'Q"'Q"'Q"'Q"ȝ'Q"؝'Q"'Q"'Q"'Q"'Q"'Q"'Q"؞'Q"'Q"'Q"'Q"'Q"'Q"'Q"ȟ'Q"؟'Q"'Q"'Q"'Q"'Q"'Q"'Q"Ƞ'Q"ؠ'Q"'Q"'Q"'Q"'Q"'Q"ȡ'Q"ء'Q"'Q"'Q"'Q"'Q"'Q"'Q"Ȣ'Q"آ'Q"'Q"ؚ'Q"'Q"'Q"'Q"'Q"'Q"'Q"ț'Q"؛'Q"'Q"'Q"'Q"'Q"'Q"Ȝ'Q"؜'Q"'Q"'Q"'Q"'Q"'Q"'Q")Q")Q")Q")Q"'Q"'Q"Ȥ'Q"ؤ'Q"'Q"'Q"'Q"'Q"'Q"أ'Q"'Q"'Q"'Q"'Q"(Q"Ȳ(Q"ز(Q"'Q"(Q"ȝ(Q"؝(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ؔ'Q"'Q"Ȕ'Q"(Q"(Q"(Q"(Q"(Q"(Q"ȧ'Q"ا'Q"'Q"'Q"'Q"'Q"'Q"ة'Q"'Q"'Q"(Q"(Q"(Q"(Q"ȳ(Q"س(Q"'Q"(Q"(Q"(Q")Q")Q")Q")Q"ب'Q"'Q"'Q"+Q"+Q"+Q"+Q"Ȍ+Q"Ќ+Q"،+Q"+Q"+Q"+Q"+Q"+Q"+Q"ȇ+Q"Ї+Q"؇+Q"+Q"Ȏ+Q"؎+Q"+Q"+Q"+Q"+Q"+Q"Џ+Q"؏+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"ȍ+Q"Ѝ+Q"؍+Q"+Q"+Q"+Q"Ȋ+Q"Њ+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"Ȉ+Q"Ј+Q"؈+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"ȋ+Q"Ћ+Q"(Q"(Q"(Q"+Q"+Q"Љ+Q"؉+Q"+Q"+Q"+Q"+Q"؋+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"Ȑ+Q"А+Q"ؐ+Q"+Q"+Q"+Q"ȑ+Q"Б+Q"ؑ+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"ȏ+Q")Q")Q")Q")Q")Q"'Q"'Q"'Q"'Q"+Q"+Q"+Q"+Q"+Q"Ȁ+Q"Ѐ+Q"+Q"+Q"+Q"+Q"+Q"ȁ+Q"Ё+Q"؀+Q"+Q"+Q"+Q"+Q"+Q"+Q")Q")Q")Q")Q")Q"'Q"Ȩ'Q"'Q"'Q"'Q"'Q"ȕ'Q"ؕ'Q"'Q"'Q"'Q"'Q"'Q"'Q"ȅ'Q"؅'Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"ȵ)Q"ص)Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"؆'Q"'Q"'Q"'Q"'Q"'Q"'Q"*Q"*Q"г*Q"س*Q"*Q"*Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"ȇ'Q"'Q"'Q"'Q"'Q"؇'Q")Q")Q"ȷ)Q"з)Q")Q")Q")Q")Q"(Q"Ȉ(Q"؈(Q"*Q"*Q"*Q"*Q"*Q"*Q"'Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"Ȩ(Q"ب(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"'Q"'Q"Ș'Q"ؘ'Q"'Q"'Q"'Q"'Q"'Q"'Q"ș'Q"ؙ'Q"'Q"'Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"(Q"(Q"(Q"(Q"ȗ(Q"ؗ(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"Ț(Q"ؚ(Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ș(Q"ؘ(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"ȭ(Q"ح(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȯ(Q"د(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ȯ(Q"خ(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"Ȱ(Q"ذ(Q")Q")Q")Q")Q")Q")Q")Q")Q"(Q"Ȭ(Q"ج(Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"ș(Q"ؙ(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q"(Q"(Q"(Q"'Q"'Q"Ȗ'Q"ؖ'Q"'Q"'Q"'Q"'Q"'Q"'Q"ȗ'Q"ؗ'Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"'Q"ȋ'Q"؋'Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"Ȥ(Q"ؤ(Q"(Q"(Q"(Q"(Q"ȥ(Q"إ(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"'Q"ȫ'Q"ث'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"(Q"(Q"(Q"'Q"(Q"(Q"(Q"н)Q"ؽ)Q")Q")Q")Q")Q")Q")Q"(Q"Ȧ(Q"ئ(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"ȉ'Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"'Q"'Q"'Q"'Q"ȩ'Q"+Q"+Q"В+Q"ؒ+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"/Q"/Q"Ȕ/Q"ؔ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȕ/Q"ؕ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȗ/Q"ؖ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȗ/Q"ؗ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ș/Q"ؘ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ș/Q"ؙ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ț/Q"ؚ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ț/Q"؛/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȝ/Q"؜/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȝ/Q"؝/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȟ/Q"؞/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȟ/Q"؟/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ƞ/Q"ؠ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȡ/Q"ء/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȣ/Q"آ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȣ/Q"أ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȥ/Q"ؤ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȥ/Q"إ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȧ/Q"ئ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȧ/Q"ا/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȩ/Q"ب/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȩ/Q"ة/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȫ/Q"ت/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȫ/Q"ث/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȭ/Q"ج/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȭ/Q"ح/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȯ/Q"خ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȯ/Q"د/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȱ/Q"ذ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȱ/Q"ر/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȳ/Q"ز/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȳ/Q"س/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȴ/Q"ش/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȵ/Q"ص/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȶ/Q"ض/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȷ/Q"ط/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȸ/Q"ظ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȹ/Q"ع/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ⱥ/Q"غ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȼ/Q"ػ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȼ/Q"ؼ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ƚ/Q"ؽ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ⱦ/Q"ؾ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȿ/Q"ؿ/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"/Q"0Q"0Q"0Q"0Q"Ȁ0Q"؀0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȁ0Q"؁0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȃ0Q"؂0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȃ0Q"؃0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȅ0Q"؄0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȅ0Q"؅0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȇ0Q"؆0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȇ0Q"؇0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȉ0Q"؈0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȉ0Q"؉0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȋ0Q"؊0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȋ0Q"؋0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȍ0Q"،0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȍ0Q"؍0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȏ0Q"؎0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȏ0Q"؏0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȑ0Q"ؐ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȑ0Q"ؑ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȓ0Q"ؒ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȓ0Q"ؓ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȕ0Q"ؔ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȕ0Q"ؕ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȗ0Q"ؖ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȗ0Q"ؗ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ș0Q"ؘ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ș0Q"ؙ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ț0Q"ؚ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ț0Q"؛0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȝ0Q"؜0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȝ0Q"؝0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȟ0Q"؞0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȟ0Q"؟0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ƞ0Q"ؠ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȡ0Q"ء0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȣ0Q"آ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȣ0Q"أ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȥ0Q"ؤ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȥ0Q"إ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȧ0Q"ئ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȧ0Q"ا0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȩ0Q"ب0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȩ0Q"ة0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȫ0Q"ت0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȫ0Q"ث0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȭ0Q"ج0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȭ0Q"ح0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȯ0Q"خ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȯ0Q"د0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȱ0Q"ذ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȱ0Q"ر0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȳ0Q"ز0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȳ0Q"س0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȴ0Q"ش0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȵ0Q"ص0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȶ0Q"ض0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȷ0Q"ط0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȸ0Q"ظ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȹ0Q"ع0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ⱥ0Q"غ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ȼ0Q"ػ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȼ0Q"ؼ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ƚ0Q"ؽ0Q"0Q"0Q"0Q"0Q"0Q"0Q"Ⱦ0Q"ؾ0Q"0Q"0Q"0Q"0Q"0Q"0Q"ȿ0Q"ؿ0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"0Q"1Q"1Q"1Q"1Q"Ȁ1Q"؀1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȁ1Q"؁1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȃ1Q"؂1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȃ1Q"؃1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȅ1Q"؄1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȅ1Q"؅1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȇ1Q"؆1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȇ1Q"؇1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȉ1Q"؈1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȉ1Q"؉1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȋ1Q"؊1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȋ1Q"؋1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȍ1Q"،1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȍ1Q"؍1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȏ1Q"؎1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȏ1Q"؏1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȑ1Q"ؐ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȑ1Q"ؑ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȓ1Q"ؒ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȓ1Q"ؓ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȕ1Q"ؔ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȕ1Q"ؕ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȗ1Q"ؖ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȗ1Q"ؗ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ș1Q"ؘ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ș1Q"ؙ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ț1Q"ؚ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ț1Q"؛1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȝ1Q"؜1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȝ1Q"؝1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȟ1Q"؞1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȟ1Q"؟1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ƞ1Q"ؠ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȡ1Q"ء1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȣ1Q"آ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȣ1Q"أ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȥ1Q"ؤ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȥ1Q"إ1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȧ1Q"ئ1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȧ1Q"ا1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȩ1Q"ب1Q"1Q"1Q"1Q"1Q"1Q"1Q"ȩ1Q"ة1Q"1Q"1Q"1Q"1Q"1Q"1Q"Ȫ1Q"ت1Q"1Q"1Q"1Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q")Q")Q")Q")Q")Q"'Q"ȣ'Q"(Q"(Q"(Q")Q")Q")Q")Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"'Q"'Q"'Q"'Q"'Q"'Q"Ȋ'Q"؊'Q"'Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"ش*Q"(Q"(Q"(Q"(Q"ȉ(Q"؉(Q")Q")Q"ػ)Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"м)Q")Q")Q")Q")Q")Q")Q"ȸ)Q")Q")Q")Q")Q")Q")Q")Q")Q"и)Q"ظ)Q")Q")Q")Q")Q")Q")Q")Q")Q"Ƚ)Q"ؼ)Q")Q")Q")Q")Q")Q"ȹ)Q"й)Q")Q")Q")Q")Q")Q")Q")Q"Ⱥ)Q"غ)Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"*Q"*Q"*Q"*Q"ȿ*Q"п*Q"ؿ*Q"*Q"*Q"*Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"*Q"Ⱦ*Q"о*Q"ؾ*Q"*Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"(Q"ȱ(Q"ر(Q"'Q"'Q"*Q"*Q"*Q"*Q"*Q"*Q"(Q"(Q"(Q")Q")Q")Q")Q")Q"(Q"ȕ(Q"ؕ(Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q")Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"(Q"(Q"(Q"(Q"(Q"(Q")Q")Q")Q")Q")Q"+Q"+Q"Ȅ+Q"Є+Q"؄+Q"+Q"+Q"+Q"ȅ+Q"؅+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q"(Q"Ȗ(Q"ؖ(Q"+Q"+Q"+Q"+Q"+Q"+Q"+Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"Ƞ(Q"ؠ(Q"(Q"(Q"(Q"(Q"ȟ(Q"؟(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȫ(Q"ث(Q"'Q"'Q"'Q"'Q")Q")Q")Q")Q"'Q"'Q"(Q"(Q"(Q"Ȭ'Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȴ(Q"ش(Q"(Q"(Q"(Q"؈'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"Ȉ'Q")Q")Q")Q")Q")Q"(Q"(Q"(Q"(Q"(Q"(Q"'Q"-Q"-Q"-Q"-Q"ȉ-Q"؉-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȋ-Q"؊-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȋ-Q"؋-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȍ-Q"،-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȍ-Q"؍-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȏ-Q"؎-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȏ-Q"؏-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȑ-Q"ؐ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȑ-Q"ؑ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȓ-Q"ؒ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȓ-Q"ؓ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȕ-Q"ؔ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȕ-Q"ؕ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȗ-Q"ؖ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȗ-Q"ؗ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ș-Q"ؘ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ș-Q"ؙ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ț-Q"ؚ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ț-Q"؛-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȝ-Q"؜-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȝ-Q"؝-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȟ-Q"؞-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȟ-Q"؟-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ƞ-Q"ؠ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȡ-Q"ء-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȣ-Q"آ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȣ-Q"أ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȥ-Q"ؤ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȥ-Q"إ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȧ-Q"ئ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȧ-Q"ا-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȩ-Q"ب-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȩ-Q"ة-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȫ-Q"ت-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȫ-Q"ث-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȭ-Q"ج-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȭ-Q"ح-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȯ-Q"خ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȯ-Q"د-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȱ-Q"ذ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȱ-Q"ر-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȳ-Q"ز-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȳ-Q"س-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȴ-Q"ش-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȵ-Q"ص-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȶ-Q"ض-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȷ-Q"ط-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȸ-Q"ظ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȹ-Q"ع-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ⱥ-Q"غ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȼ-Q"ػ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȼ-Q"ؼ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ƚ-Q"ؽ-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ⱦ-Q"ؾ-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȿ-Q"ؿ-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q"-Q".Q".Q".Q".Q"Ȁ.Q"؀.Q".Q".Q".Q".Q".Q".Q"ȁ.Q"؁.Q".Q".Q".Q".Q".Q".Q"Ȃ.Q"؂.Q".Q".Q".Q".Q".Q".Q"ȃ.Q"؃.Q".Q".Q".Q".Q".Q".Q"Ȅ.Q"؄.Q".Q".Q".Q".Q".Q".Q"ȅ.Q"؅.Q".Q".Q".Q".Q".Q".Q"Ȇ.Q"؆.Q".Q".Q".Q".Q".Q".Q"ȇ.Q"؇.Q".Q".Q".Q".Q".Q".Q"Ȉ.Q"؈.Q".Q".Q".Q".Q".Q".Q"ȉ.Q"؉.Q".Q".Q".Q".Q".Q".Q"Ȋ.Q"؊.Q".Q".Q".Q".Q".Q".Q"ȋ.Q"؋.Q".Q".Q".Q".Q".Q".Q"Ȍ.Q"،.Q".Q".Q".Q".Q".Q".Q"ȍ.Q"؍.Q".Q".Q".Q".Q".Q".Q"Ȏ.Q"؎.Q".Q".Q".Q".Q".Q".Q"ȏ.Q"؏.Q".Q".Q".Q".Q".Q".Q"Ȑ.Q"ؐ.Q".Q".Q".Q".Q".Q".Q"ȑ.Q"ؑ.Q".Q".Q".Q".Q".Q".Q"Ȓ.Q"ؒ.Q".Q".Q".Q".Q".Q".Q"ȓ.Q"ؓ.Q".Q".Q".Q".Q".Q".Q"Ȕ.Q"ؔ.Q".Q".Q".Q".Q".Q".Q"ȕ.Q"ؕ.Q".Q".Q".Q".Q".Q".Q"Ȗ.Q"ؖ.Q".Q".Q".Q".Q".Q".Q"ȗ.Q"ؗ.Q".Q".Q".Q".Q".Q".Q"Ș.Q"ؘ.Q".Q".Q".Q".Q".Q".Q"ș.Q"ؙ.Q".Q".Q".Q".Q".Q".Q"Ț.Q"ؚ.Q".Q".Q".Q".Q".Q".Q"ț.Q"؛.Q".Q".Q".Q".Q".Q".Q"Ȝ.Q"؜.Q".Q".Q".Q".Q".Q".Q"ȝ.Q"؝.Q".Q".Q".Q".Q".Q".Q"Ȟ.Q"؞.Q".Q".Q".Q".Q".Q".Q"ȟ.Q"؟.Q".Q".Q".Q".Q".Q".Q"Ƞ.Q"ؠ.Q".Q".Q".Q".Q".Q".Q"ȡ.Q"ء.Q".Q".Q".Q".Q".Q".Q"Ȣ.Q"آ.Q".Q".Q".Q".Q".Q".Q"ȣ.Q"أ.Q".Q".Q".Q".Q".Q".Q"Ȥ.Q"ؤ.Q".Q".Q".Q".Q".Q".Q"ȥ.Q"إ.Q".Q".Q".Q".Q".Q".Q"Ȧ.Q"ئ.Q".Q".Q".Q".Q".Q".Q"ȧ.Q"ا.Q".Q".Q".Q".Q".Q".Q"Ȩ.Q"ب.Q".Q".Q".Q".Q".Q".Q"ȩ.Q"ة.Q".Q".Q".Q".Q".Q".Q"Ȫ.Q"ت.Q".Q".Q".Q".Q".Q".Q"ȫ.Q"ث.Q".Q".Q".Q".Q".Q".Q"Ȭ.Q"ج.Q".Q".Q".Q".Q".Q".Q"ȭ.Q"ح.Q".Q".Q".Q".Q".Q".Q"Ȯ.Q"خ.Q".Q".Q".Q".Q".Q".Q"ȯ.Q"د.Q".Q".Q".Q".Q".Q".Q"Ȱ.Q"ذ.Q".Q".Q".Q".Q".Q".Q"ȱ.Q"ر.Q".Q".Q".Q".Q".Q".Q"Ȳ.Q"ز.Q".Q".Q".Q".Q".Q".Q"ȳ.Q"س.Q".Q".Q".Q".Q".Q".Q"ȴ.Q"ش.Q".Q".Q".Q".Q".Q".Q"ȵ.Q"ص.Q".Q".Q".Q".Q".Q".Q"ȶ.Q"ض.Q".Q".Q".Q".Q".Q".Q"ȷ.Q"ط.Q".Q".Q".Q".Q".Q".Q"ȸ.Q"ظ.Q".Q".Q".Q".Q".Q".Q"ȹ.Q"ع.Q".Q".Q".Q".Q".Q".Q"Ⱥ.Q"غ.Q".Q".Q".Q".Q".Q".Q"Ȼ.Q"ػ.Q".Q".Q".Q".Q".Q".Q"ȼ.Q"ؼ.Q".Q".Q".Q".Q".Q".Q"Ƚ.Q"ؽ.Q".Q".Q".Q".Q".Q".Q"Ⱦ.Q"ؾ.Q".Q".Q".Q".Q".Q".Q"ȿ.Q"ؿ.Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q".Q"/Q"/Q"/Q"/Q"Ȁ/Q"؀/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȁ/Q"؁/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȃ/Q"؂/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȃ/Q"؃/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȅ/Q"؄/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȅ/Q"؅/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȇ/Q"؆/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȇ/Q"؇/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȉ/Q"؈/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȉ/Q"؉/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȋ/Q"؊/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȋ/Q"؋/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȍ/Q"،/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȍ/Q"؍/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȏ/Q"؎/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȏ/Q"؏/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȑ/Q"ؐ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȑ/Q"ؑ/Q"/Q"/Q"/Q"/Q"/Q"/Q"Ȓ/Q"ؒ/Q"/Q"/Q"/Q"/Q"/Q"/Q"ȓ/Q"ؓ/Q"/Q"/Q"/Q"/Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q",Q"-Q"-Q"-Q"-Q"Ȁ-Q"؀-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȁ-Q"؁-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȃ-Q"؂-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȃ-Q"؃-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȅ-Q"؄-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȅ-Q"؅-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȇ-Q"؆-Q"-Q"-Q"-Q"-Q"-Q"-Q"ȇ-Q"؇-Q"-Q"-Q"-Q"-Q"-Q"-Q"Ȉ-Q"؈-Q"-Q"-Q"'Q"(Q"(Q"(Q"Ȫ'Q"ت'Q"'Q"'Q"'Q"'Q"'Q"(Q"Ȟ(Q"؞(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"(Q"ȡ(Q"ء(Q"+Q"+Q"+Q"+Q"+Q"Ȃ+Q"Ђ+Q"؁+Q"+Q"+Q"+Q"+Q"+Q"+Q"'Q"'Q")Q"ج'Q"'Q"'Q"'Q"'Q"'Q"'Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"؈Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"أ#Q"#Q"#Q"!Q"Т!Q"آ!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȣ!Q"У!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ȥ!Q"ؤ!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȱQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"н$Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȠQ"ؠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȘQ"ؑQ"Q"Q"Q"Q"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ț$Q"؛$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"М$Q"؜$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȝ$Q"Н$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȟ$Q"؞$Q"$Q"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q""Q""Q""Q" Q" Q"У Q"أ Q" Q" Q" Q" Q" Q" Q"Ȥ Q"Ф Q" Q" Q" Q" Q"د#Q"#Q"#Q"طQ"Q"Q"Q"Q"Q"؎Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ػQ"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"Q"ؼQ"Q"Q"Q"Q"Q"Q"Q"Q"ЁQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"АQ"!Q"ح!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ȯ!Q"Ю!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȯ!Q"د!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q"Ё"Q"؁"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ȃ"Q"Ђ"Q""Q""Q""Q""Q""Q""Q"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ؕQ"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЗQ"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q"Ї"Q"؇"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ȉ"Q"Ј"Q""Q""Q""Q""Q""Q""Q""Q""Q"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q"Њ"Q"؊"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȋ"Q"Ћ"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q""Q""Q""Q""Q""Q""Q"Ѝ"Q"؍"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ȏ"Q"Ў"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"!Q"!Q"!Q"!Q"ؔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"ЭQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"Q"Q"Q"Q"Q"دQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"؞Q"Q"Q"Q"Q"Q"Q"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q" Q" Q"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"ؠQ"Q"Q"؜ Q" Q" Q" Q"Q"Q"Q"ؒQ"Q"Q"Q"ءQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"آQ"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"д#Q"ش#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȵ#Q"е#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȶ#Q"ض#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Е#Q"ؕ#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Ȗ#Q"Ж#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȗ#Q"ؗ#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"Q"Q"Q"Q"Q"#Q"#Q"#Q"#Q"И#Q"ؘ#Q"#Q"#Q"#Q"#Q"#Q"#Q"ș#Q"Й#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Ț#Q"ؚ#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ќ$Q"،$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȍ$Q"Ѝ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȏ$Q"؎$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Џ$Q"؏$Q"#Q"#Q"#Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"!Q"!Q"Ќ!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ط#Q"#Q"#Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽ Q" Q""Q""Q""Q"Q"Q"Q"Q"ȠQ"ؠQ"Q"Q"Q"Q"Q"ЧQ"Q"СQ"ءQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȡQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ȩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"ЫQ" Q" Q" Q" Q" Q"آQ"Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"Q"Q"ȮQ"ЮQ"Q"Q"УQ"Q"Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"Q"Q"Q"ȬQ"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȣQ"Q"Q"Q"Q"Q"Q"Q"ȼQ"ؼQ"Q"Q"Q"Q"Q"Q"Q"ȯQ"دQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ذQ"Q"Q"Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ș Q"ؙ Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"شQ"Q"Q" Q" Q"Q"Q"еQ"Q"Q"Q"Q"ȪQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"Q"Q"Q"Q"Q"Q"ȫQ"Q"Q"иQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"Q"Q" Q" Q"Q"Q"лQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"Q"Q"Q"Q"Q"Q"Q"ȻQ"ػQ"Q"Q"Q"Q"Q"оQ"Q"Q"Q"Q"ȏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȔQ"ئQ"Q"Q"Q"Q"Q"Q"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"بQ"Q"Q"Q"Q"Q"Q"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"سQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȶQ"حQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ث#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȑ#Q"ؑ#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"В#Q"ؒ#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȓ#Q"Г#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"ПQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"Q"Q"Q"Q"Q"ȡQ"ءQ"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"СQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"ȤQ"ؤQ"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"Q"Q"Q"ȭQ"Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ВQ"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"ث Q" Q"Q"Q"Q"ج Q" Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"ؔQ"Q"Q" Q"ؑ Q" Q" Q" Q" Q" Q" Q"Ȓ Q"В Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"Q"&Q"&Q"Ь&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЕQ"Q"Q"آQ"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"șQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ȫ Q"ث Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ЁQ"؁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȃQ"؃Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"ȥQ"إQ"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"Q"ЧQ"اQ"Q"Q"Q"Q"%Q"%Q"%Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"Q"Q"Q"Q"ȪQ"تQ"Q"ؐ%Q"%Q"%Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"Ж%Q"Q"ЬQ"جQ"Q"Q"Q"Q"Q"Q"Q"حQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"؀Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"ȯQ"دQ"Q"Q"Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"Q"ؠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȦQ"Q"Q"ФQ"ص Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ءQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؠQ"Q"Q"Q"ЗQ"ؗQ"Q"Q"Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"Q"ЃQ"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȧQ"اQ"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"أ Q" Q"سQ"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"ع Q" Q"؄Q"Q"Q" Q" Q"Q"Q"Q"خ Q" Q"Q"Q"Q"غ Q" Q""Q""Q""Q""Q""Q"ȿ"Q"ؿ"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"؀Q"Q"Q"Q"Q"Q"ظ Q" Q"ؘ"Q""Q""Q""Q""Q""Q""Q""Q"Й"Q"ؙ"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ț"Q"К"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"؅Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"Q"Q"Q"țQ"؛Q"Q"Q"Q"Q"Q"Q"ز Q" Q"صQ"Q"Q"ػ Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"ЀQ"Q"Q"Q"Q"Q"Q"رQ"Q"Q" Q" Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"ؾQ"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"Q"ȠQ"ؠQ"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЛQ"Q"Q"Q"Q"ȏQ"؏Q"Q"Q"Q"زQ"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"خ Q" Q" Q" Q" Q" Q" Q" Q"Я Q"د Q" Q" Q" Q" Q" Q" Q" Q" Q"Ȱ Q"а Q"Q"Q"Q"Q"Q"Q"ؕ"Q""Q""Q""Q""Q""Q""Q""Q"Ж"Q"ؖ"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȗ"Q"З"Q""Q""Q""Q""Q""Q""Q""Q""Q"؁Q"Q"Q"Q"Q"Q"Q"Q"ȹQ"عQ"Q"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"Ȃ!Q"؂!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ѓ!Q"؃!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؂Q"Q"Q" Q" Q"Q"Q"Q"ؽQ"Q"Q"Q"Q"Q"Q"Q"оQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ر Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"د Q" Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"؍Q"Q"Q"ذ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"А$Q"ؐ$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȑ$Q"Б$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȓ$Q"ؒ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Г$Q"ؓ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȕ$Q"Д$Q"$Q"$Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"ȱ Q"ر Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"в Q"ز Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȘQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȟQ"Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ȴ Q"ش Q" Q" Q" Q" Q" Q"ؙQ"Q"Q"&Q"&Q"&Q"&Q"Ț&Q"ؚ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Л&Q"؛&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ȝ&Q"М&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȝ&Q"؝&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"О&Q"؞&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȟ&Q"П&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ƞ&Q"ؠ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"С&Q"ء&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ȣ&Q"Т&Q"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ОQ"Q"Q"Q"Q"Q"ؼQ"Q"Q"Q"Q"Q"Q"Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"،Q"Q"Q"ؠQ"Q"Q"Q"Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"з&Q"ط&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȸ&Q"и&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȹ&Q"ع&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"к&Q"غ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ȼ&Q"л&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȼ&Q"ؼ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"н&Q"ؽ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ⱦ&Q"о&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȿ&Q"ؿ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"آ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"ȝQ"НQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȒQ"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"ȕQ"ؕQ"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"!Q"!Q"!Q"!Q"!Q"!Q"Ȁ!Q"Ѐ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȁ!Q"Q"Q"Q"؉Q"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȼ!Q"ؼ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ؓQ"Q"Q"ؔQ"Q"Q" Q"Џ Q"ؖQ"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"س Q" Q"Q"Q"Q" Q" Q"؛Q"Q"Q"ش Q" Q"؄Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"؁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"بQ"Q"Q"Q"Q"Q"Q"ؤQ"Q"Q"Q"Q"Q"Q"آQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ض Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"ص Q" Q" Q" Q" Q" Q" Q"ȶ Q"ж Q" Q" Q" Q" Q" Q" Q" Q" Q"إQ"Q"Q"بQ"Q"Q"Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"ئQ"Q"Q"Q"Q"Q"Q"ȪQ"تQ"Q"Q"Q"Q"Q"Q"!Q"!Q"Є!Q"؄!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȅ!Q"Ѕ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ȇ!Q"ئQ"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"ЧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"بQ"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"Т%Q"Q"Q"бQ"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"Q"Q"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"تQ"Q"Q"Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"جQ"Q"Q"ؔQ"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"دQ"Q"Q" Q" Q" Q" Q" Q" Q" Q"и Q"ظ Q" Q" Q" Q" Q" Q" Q" Q" Q"ȹ Q"й Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЭQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"؃Q"Q"Q"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q" Q"К Q"ؚ Q" Q" Q" Q" Q" Q" Q"ț Q"Л Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"تQ"Q"Q"Q"Q"Q"Q"Q"&Q"&Q"&Q"ثQ"Q"Q" Q" Q"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"Q"Q"&Q"&Q"&Q"&Q"&Q"ȣ&Q"أ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"حQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȴQ"شQ"Q"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЕQ"Q"Q"Q"Q"Q"ȆQ"؆Q"Q"Q"Q"Q"Q"Q"ئQ"Q"Q"Q"Q"Q"Q"Q"ЇQ"؇Q"Q"Q"Q"Q"Q"Q" Q"Ь Q"ج Q" Q" Q" Q" Q" Q" Q"ȭ Q"Э Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȉQ"؉Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"м%Q"#Q"#Q"#Q"#Q"Ƞ#Q"ؠ#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"С#Q"ء#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Ȣ#Q"Т#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ةQ"Q"Q"Q"Q"Q"Q"Q"ȭQ"حQ"Q"Q"Q"!Q"!Q"!Q""Q""Q""Q""Q""Q""Q""Q"М"Q"؜"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȝ"Q"Н"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȰQ"ذQ"Q"Q"Q"شQ"Q"Q"Q"Q"رQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȳQ"سQ"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"ؤ Q" Q"Q"Q"Q"إ Q" Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"؜Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"НQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q"Я"Q"د"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ȱ"Q"а"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"ȱ"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȣQ"أQ"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȹ$Q"ع$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"к$Q"غ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȼ$Q"л$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȼ$Q"ؼ$Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"ȭQ"حQ"Q"Q"Q"Q"Q"Q"Q"Q"ȠQ"ؠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"Q"Q"ȟQ"ПQ"Q"Q"ЩQ"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"ؖ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȝQ"Q"Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"Q"Q"ȣQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȦQ"ئQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"Q"Q"Q"ȩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȷQ"طQ"Q"Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЉQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЖQ"ؖQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЬQ"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȶQ"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȆQ"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"؛Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȼQ"ؼQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȰQ"ذQ"Q"Q"Q"Q"Q"Q"ضQ"Q"Q"Q"Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȱQ"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"țQ"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Ј Q" Q" Q" Q" Q" Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q" Q" Q""Q""Q""Q""Q""Q""Q"А"Q"ؐ"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȑ"Q"Б"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ƞ$Q"ؠ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"С$Q"ء$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȣ$Q"Т$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȣ$Q"أ$Q"$Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ة Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"ЋQ"Q"Q"Q"Q"ȋQ"؋Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q""Q""Q"Ы"Q"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"Q"Q"Q"!Q"!Q"!Q"!Q"ȳ!Q"س!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"д!Q"ش!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q"м"Q"ؼ"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ƚ"Q"н"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Ⱦ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"еQ" Q" Q" Q" Q"Ȩ Q"ب Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Щ Q"ة Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"Q"Q"Q"Q"Q"ЀQ"Q"Q"Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"ЅQ"؅Q"Q"Q"Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q"Г"Q"ؓ"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ȕ"Q"Д"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ІQ"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȥ$Q"إ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ц$Q"ئ$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"ȧ$Q"Ч$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Ȩ$Q"ب$Q"$Q"Q"Q"Q"Q"Q"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȑQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȿQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"؊ Q" Q" Q"#Q"#Q"#Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȒQ"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȔQ"ؔQ"Q"Q"Q"Q"Q"Q"Q"ЎQ"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЃQ"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"АQ"Q"Q"Q"Q"Q"Q"Q"ДQ"ؔQ"Q"Q"Q"Q"؅Q"Q"Q"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q""Q""Q""Q""Q""Q""Q"؈Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"ЉQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"РQ"ؠQ"Q"Q"Q"Q"Q"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ءQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ت Q" Q"؋Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"Q"ЌQ"Q"Q"Q"Q"Q"ȣQ"Q"Q"Q"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ"Q"Q"Q"Q"Q"Q"Q"ȬQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"Я%Q"Q"ЉQ"؉Q"Q"Q"Q"Q"&Q"&Q"&Q"Q"Q"ОQ"Q"Q"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"&Q"&Q"&Q"ȑ&Q"ؑ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"В&Q"ؒ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȓ&Q"Г&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ȕ&Q"ؔ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Е&Q"ؕ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"Ȗ&Q"Ж&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȗ&Q"ؗ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"И&Q"ؘ&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ș&Q"Й&Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"о Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"ȋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЬQ" Q" Q"Q"Q"Q"Q"Q"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"خQ"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"Q"ȲQ"زQ"Q"Q"Q"Q"Q"Q"Q"ؼQ"Q"Q"Q"Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"ȯQ"دQ"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"ȝ!Q"؝!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"О!Q"؞!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؼQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"ؾQ"Q"Q"Q"Q"Q"Q"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q" Q" Q" Q" Q"Ⱥ Q"غ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"л Q"ػ Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȢQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ء"Q""Q""Q"Q"Q"Q"Q"ȝQ"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"вQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȹQ"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؟!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Р!Q"ؠ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȡ!Q"С!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȩQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȸQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"Q"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ" Q" Q" Q"ص!Q"!Q"!Q"!Q"!Q"!Q"!Q"ж!Q"ض!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȷ!Q"з!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ةQ"Q"Q"Q"Q"خQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ХQ"Q"Q"Q"ط Q" Q"Q"Q"Q" Q" Q"Q"Q"ЪQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؞"Q""Q""Q""Q""Q""Q""Q""Q"П"Q"؟"Q""Q""Q""Q""Q""Q""Q""Q""Q"Ƞ"Q"Р"Q""Q""Q""Q""Q""Q""Q""Q""Q" Q" Q" Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЃQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЉQ"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЛQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЌQ"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȚQ"ؚQ"Q"Q"Q"Q"Q"ЏQ""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ВQ"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Ȁ Q"Ѐ Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЕQ"Q"Q"Q"Q"Q"Q"Q"ИQ"%Q"%Q"%Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"Q"Q"؟ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"دQ"Q"Q" Q" Q"Q"Q"Q"ؠ Q" Q"ذQ"Q"Q"ت!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ы!Q"ث!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ȭ!Q"Ь!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"ء Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"ضQ"Q"Q"Q"ȮQ"ЮQ"خQ"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"سQ"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"ИQ"Q"Q"ضQ"Q"Q"Q"Q"Q"Q"Q"ح Q" Q"Q"Q"Q"Q"Q"Q"Q"КQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"؋Q"Q"Q"Q"Q"Q"Q"Q"ȌQ"،Q"Q"Q"Q"Q"Q"ЀQ"!Q"ظ!Q"!Q"!Q"!Q"!Q"!Q"!Q"ȹ!Q"й!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ⱥ!Q"غ!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"ȲQ"زQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"بQ"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"ȴQ"дQ"إQ"Q"Q" Q" Q"Q"Q"Q"ؙ Q" Q"Q"Q"Q"Q"Q"ЦQ""Q""Q""Q""Q"Ȳ"Q"ز"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"г"Q"س"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȴ"Q"д"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Є"Q"؄"Q""Q""Q""Q""Q""Q""Q""Q""Q"ȅ"Q"Ѕ"Q""Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"ȻQ"ػQ"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"ȝ%Q"؝%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"О%Q"؞%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"ȟ%Q"П%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"Ƞ%Q"ؠ%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"С%Q"ء%Q"%Q"%Q"%Q"%Q"؉!Q"!Q"!Q"!Q"З!Q"ؗ!Q"!Q"!Q"!Q"!Q"!Q"!Q"Ș!Q"И!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ș!Q"ؙ!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȸQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"ț!Q"؛!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؉Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"%Q"Q"Q"ЩQ"Q"Q"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ"صQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"жQ"ضQ"Q"Q"Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"!Q"!Q"!Q"!Q"Ȓ!Q"ؒ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Г!Q"ؓ!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȥQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"Q"Q"ȺQ"кQ"Q"Q"Q"Q"Q"Q"Q"Q"ȧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"Q"Q"Q"Q"ȄQ"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"șQ"Q"Q"Q"رQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؁Q"Q"Q"Q"Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q""Q"и"Q"ظ"Q""Q""Q""Q""Q""Q""Q"ȹ"Q"й"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"Ⱥ"Q"غ"Q""Q""Q""Q""Q""Q""Q""Q"Q"Q"Q"$Q"$Q"$Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"Љ#Q" Q" Q" Q"Q"Q"Q"Q"Q"Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؅#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"ا#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئ Q" Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"ا Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"إ Q" Q" Q" Q" Q" Q" Q" Q"Ц Q"ئ Q" Q" Q" Q" Q" Q" Q" Q" Q"ȧ Q"Ч Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ب Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Д Q"ؔ Q" Q" Q" Q" Q" Q" Q" Q" Q"ȕ Q"Е Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȝ#Q"؝#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"О#Q"؞#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"ȟ#Q"П#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"دQ"Q"Q"Q"Q"Q"Q"аQ"ذQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ОQ"Q"Q"Q"Q"ȃQ"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЁQ"؁Q"Q"Q"Q"Q"Q"Q"ȂQ"ЂQ"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"гQ"Q"Q"تQ"Q"Q"إQ"Q"Q"Q"СQ"ءQ"Q"Q"Q"Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȲQ"زQ"Q""Q""Q""Q"Q"Q"СQ"ءQ"Q"Q"Q"Q"Q"Q"ȢQ"ТQ"دQ"Q"Q"Q"Q"Q"Q"ȀQ"؀Q"Q"Q"Q"Q"Q"Q"Q"аQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȮQ"خQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"زQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"мQ"ؼQ"؁ Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ"صQ"Q"Q"Q"Q"Q"Q"Q"ضQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Ȗ Q"ؖ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"З Q"ؗ Q" Q" Q"Q"Q"Q"Q"سQ"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"ȶ"Q"ض"Q""Q""Q""Q""Q""Q""Q""Q""Q""Q"з"Q"ط"Q"Q"Q"РQ" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"Q"Q"Q"Q"ȦQ"ئQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȬQ"جQ"Q"Q"Q"Q"Q"Q"Q"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"ȞQ"ОQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"Q"Q"ȠQ"РQ"Q"Q"Q"Q"Q"Q"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȭQ"$Q"$Q"$Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"Q"Q"ؼ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"صQ"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Ƚ Q"ؽ Q" Q" Q" Q" Q" Q"Q"Q"жQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"Q"Q"Q"Q"شQ"Q"Q"Q"Q"Q"Q"عQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"!Q"!Q"!Q"!Q"Ⱦ!Q"ؾ!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"п!Q"ؿ!Q"!Q"!Q"!Q"!Q"!Q"!Q"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȶQ"ضQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȃQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"ؗQ"Q"ؼQ"Q"Q" Q" Q"!Q"!Q"!Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"#Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"#Q"#Q"#Q""Q""Q"Q"Q"ЂQ"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"؀Q"تQ"Q"Q"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"бQ"رQ"Q"Q"Q"Q"Q"Q"ȲQ"вQ"Q"Q""Q""Q""Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"!Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q""Q""Q""Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"ȶ Q"Q"Q"Q" Q" Q" Q"ا Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Ђ Q" Q" Q" Q"Q"Q"Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȮQ"ЮQ"ؑQ"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q"(Q" Q" Q" Q" Q"ЯQ" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q"Q"(Q" Q" Q" Q" Q"(Q" Q" Q"Й Q"ؙ Q"(Q" Q" Q"П Q"؟ Q"(Q"ؤ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"Q"ȭQ"ЭQ" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"؎ Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"бQ"؞ Q" Q" Q" Q"+Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Г Q"ؓ Q"+Q" Q" Q" Q"+Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"+Q" Q"У Q"Q"Q"0Q" Q" Q" Q" Q" Q" Q"Є Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q"ؾ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"0Q" Q" Q" Q" Q" Q" Q"0Q" Q" Q" Q" Q"0Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"0Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"ؔ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"І Q"؆ Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЊQ"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȎQ" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȗQ" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q"-Q"Q"Q"Q"оQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"-Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Ё Q"Q"Q" Q" Q" Q" Q" Q" Q"ج Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ة Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ئ Q" Q" Q"ز Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q"-Q"-Q"(Q" Q" Q" Q" Q" Q" Q" Q" Q"(Q" Q" Q" Q" Q"Q"Q"Q" Q" Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q" Q" Q" Q"Q"ЬQ"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"ȅQ"ЅQ" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȅQ")Q" Q" Q" Q"Q"Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"ȚQ"КQ" Q" Q" Q" Q" Q" Q" Q"ȿ Q" Q"ؾ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"+Q"Q"Q" Q" Q" Q"ȳ Q"+Q"Q"Q"Q"Q"Q" Q" Q" Q"+Q"+Q"+Q"Q"Q" Q" Q"+Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"ؿ Q" Q" Q" Q" Q" Q" Q" Q"Ѐ Q"؀ Q"Q"Q"Q"Q"Q"ȺQ"кQ"Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q",Q",Q"Q"Q"Q"Q"ȽQ"нQ"؞Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЇQ"؇Q"Q"Q" Q"؂ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"ȘQ"ИQ")Q"Q"Q"Q"ȫQ"ЫQ"ثQ"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Ȫ Q" Q" Q" Q"ز Q" Q" Q"Q"Q"Q"Q"Q"Q")Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȬQ"ЬQ"جQ"Q" Q" Q" Q" Q" Q" Q" Q")Q"Q"Q"Q"Q"Q"Q"Q" Q"Ф Q"Q"Q"Q"ت Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q")Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"ЭQ" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"*Q" Q"ش Q" Q" Q"غ Q" Q"*Q"*Q"*Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"*Q"Q"Q" Q" Q" Q"Q"ЯQ"دQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȸQ"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȦQ"Q"ЎQ"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"ȓQ"ГQ"Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"ȕQ"ЕQ"Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"ȿQ"пQ".Q" Q" Q" Q".Q" Q"Ѓ Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"ȲQ"вQ"زQ"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q" Q"ط Q" Q" Q" Q" Q",Q"Q"Q",Q",Q",Q",Q",Q"-Q"-Q"-Q"-Q" Q" Q" Q"Q"Q"Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"Q"ȾQ"оQ"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȔQ"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"2Q"Q"Q"Q"Q"Q"ȼQ"мQ" Q"Н Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȢQ"ТQ" Q" Q"2Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q" Q" Q" Q" Q"2Q"Q"Q"Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"Q"ȺQ"кQ"Q"Q"Q"Q"Q"Q"2Q" Q" Q"Q"Q"Q" Q"В Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"؈ Q" Q" Q" Q"0Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"1Q" Q" Q" Q"Х Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"أ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ؑ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"0Q" Q" Q" Q"Г Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Ї Q"؇ Q"؏ Q" Q" Q" Q" Q" Q"М Q"؜ Q" Q" Q" Q" Q"0Q" Q" Q" Q" Q"1Q" Q" Q"1Q" Q" Q" Q" Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Є Q"؄ Q"аQ" Q" Q" Q" Q"Q"Q" Q"Ѐ Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"4Q"Q"ШQ"بQ"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȸQ"иQ"3Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Q" Q" Q" Q"О Q"3Q" Q" Q" Q" Q"3Q" Q" Q" Q" Q"Ѝ Q"؍ Q".Q" Q" Q" Q" Q"Q"Q"Q"؉ Q" Q" Q" Q"1Q" Q"И Q" Q" Q" Q" Q" Q" Q" Q" Q"2Q"Q"Q" Q" Q"2Q" Q"К Q"1Q" Q"М Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȓQ"ГQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"1Q" Q" Q"(Q" Q" Q" Q" Q"1Q"1Q"1Q" Q" Q"1Q"Q" Q" Q" Q" Q"2Q"2Q"2Q"Q"Q"ЬQ" Q" Q" Q" Q" Q"Л Q" Q" Q" Q" Q"2Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"3Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"2Q"2Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"2Q"Q"ؕ Q" Q" Q" Q"Q" Q" Q" Q"Q"Q"؃ Q" Q" Q" Q" Q"د Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"2Q" Q"Й Q" Q" Q" Q" Q" Q" Q"Q"Q"Q" Q" Q"1Q"1Q"Q"Q"Q"Q"Q"2Q" Q" Q" Q" Q" Q" Q"Х Q"إ Q" Q" Q" Q" Q"Т Q"آ Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"З Q" Q"Ѓ Q"؃ Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȩQ" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Љ Q"؉ Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Ȥ Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"ؒ Q" Q" Q" Q" Q" Q" Q"Q"3Q"3Q" Q" Q" Q" Q" Q"П Q" Q" Q" Q" Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q" Q"ؠ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"أ Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"ȱQ"бQ"رQ"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"-Q" Q" Q" Q"4Q" Q"Т Q"4Q" Q" Q" Q" Q"4Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ȡ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ؼ Q" Q" Q" Q" Q" Q"(Q" Q" Q" Q" Q"(Q" Q" Q" Q" Q" Q" Q"Ы Q"ث Q" Q" Q" Q" Q" Q" Q"Q"вQ"زQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"+Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"3Q"Q"Q"Q"Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȟQ"ПQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ص Q" Q" Q" Q" Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȯQ" Q" Q" Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"3Q"3Q" Q"Р Q" Q" Q"(Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"ؚ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȟQ"ПQ"Q"Q"Q"Q"Q"ȞQ"ОQ" Q" Q" Q" Q" Q" Q" Q" Q"Е Q"Q"Q"Q"Q"Q"Q"1Q" Q"Д Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"1Q"1Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"ػ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"ȹ Q" Q" Q" Q" Q" Q" Q" Q" Q"3Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Ц Q"Q"Q" Q" Q" Q"Q"РQ"ؠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q".Q" Q"؅ Q" Q" Q" Q" Q" Q"-Q"Q"Q"Q"Q"Q"ȧQ"ЧQ"Q"Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"Q"ȩQ"ЩQ"Q"Q"Q"Q"Q"ȪQ"ЪQ"Q"Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȬQ"ЬQ" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q" Q" Q" Q" Q"Q"Q")Q"Q"Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q"Q" Q" Q" Q" Q"؆ Q" Q" Q" Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"ȰQ"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q")Q"Q"Q" Q" Q" Q" Q")Q")Q"ЮQ" Q" Q" Q" Q",Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q",Q" Q"ص Q" Q" Q",Q",Q",Q",Q",Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"+Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ȠQ"РQ" Q" Q" Q" Q",Q" Q" Q" Q"-Q" Q" Q" Q"Q"Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q" Q"А Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q" Q" Q" Q"ر Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"ج Q" Q" Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"/Q" Q" Q" Q"ظ Q" Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"4Q"Q"Q"Q"Q"Q"Q"Q" Q"Б Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȠQ" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȂQ" Q"Ќ Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ПQ"؟Q"Q"Q" Q" Q" Q"ȭ Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"/Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЄQ"؄Q"Q"Q" Q" Q" Q"/Q"/Q" Q"ؠ Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"/Q"/Q"/Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"/Q"/Q"/Q"Q"Q"Q"Q" Q" Q" Q"Q"ЦQ"ئQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"ЮQ"خQ"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЁQ"؁Q"Q"Q"Q"Q" Q" Q" Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"/Q" Q" Q"/Q"/Q" Q" Q"0Q"0Q" Q" Q"0Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"ȇQ"ЇQ" Q" Q"Ё Q"؁ Q"Q"Q" Q" Q"Q"Q"Q" Q"Ћ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȝQ" Q"Ѝ Q" Q" Q" Q"Q"Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"Q"ЂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Ў Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"ЅQ"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȣQ" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"ȇQ"ЇQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Џ Q" Q" Q" Q"Q"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȚQ" Q" Q" Q" Q" Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȲQ"Q"Q"Q"Q"Q"ȰQ"аQ"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"ȴQ"дQ"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"оQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"ȎQ"ЎQ"2Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"+Q"ؾ Q" Q" Q"+Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"ة Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"ȼ Q" Q" Q" Q" Q" Q"؋ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q" Q" Q" Q" Q"+Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"خ Q" Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"*Q"*Q"*Q"Q"Q"Q"Q"*Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"ȝQ"НQ"3Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q"Ж Q"ؖ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"+Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"*Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"*Q" Q" Q" Q"*Q"*Q"*Q"Q"Q"(Q" Q" Q" Q" Q"0Q"0Q"0Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"-Q" Q" Q"(Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"4Q" Q" Q" Q"4Q" Q"С Q"(Q"، Q" Q" Q" Q"Q"Q" Q" Q"3Q"3Q"3Q"3Q"4Q"Q"Q"Q"Q"Q"Q"Q"Q"3Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"-Q"Q"Q" Q" Q" Q" Q" Q" Q"-Q"-Q" Q" Q" Q" Q"-Q"Q"Q" Q" Q" Q"Q"ЗQ"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȬQ"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"ȣQ"УQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȆQ"ІQ"1Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q"Ж Q" Q" Q" Q"Q"Q"Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q")Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"пQ" Q" Q" Q"Q"ДQ"ؔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q"ȧ Q" Q"ئ Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Ȱ Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"Q" Q" Q" Q" Q" Q"ظ Q" Q" Q"Q"Q"Q"Q" Q" Q")Q")Q"Q"Q"Q"ȪQ"ЪQ"تQ"Q"Q"Q"Q"ȧQ"ЧQ"اQ"Q"Q"Q"Q"ȨQ"ШQ"بQ"Q"Q"Q"Q"ȩQ"ЩQ"ةQ"Q" Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q")Q"*Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"А Q"ؐ Q"ء Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȈQ" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"ȻQ"лQ" Q"ؽ Q" Q" Q" Q" Q" Q" Q" Q" Q".Q".Q".Q" Q" Q" Q" Q" Q" Q"؝ Q" Q" Q" Q" Q" Q" Q" Q" Q"د Q" Q" Q"Ј Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q".Q" Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȭQ"ЭQ"حQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Ї Q".Q".Q" Q"ػ Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȮQ"ЮQ"خQ"Q"Q"Q"Q"Q"Q".Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȯQ"ЯQ"دQ"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q"Q"Q"Q".Q"/Q" Q" Q".Q" Q"Њ Q" Q" Q"Q"Q" Q" Q" Q"Q"ЩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ".Q"/Q"/Q" Q" Q" Q"Q"Q"Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȈQ"ЈQ" Q" Q" Q" Q" Q" Q" Q" Q"Ш Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Љ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"МQ"؜Q"Q"Q" Q"Ѕ Q" Q" Q" Q"Q"еQ"صQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȻQ"Q"Q"Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"ȹQ"عQ"Q"Q"Q" Q"І Q" Q" Q" Q"Q"Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"ؗ Q" Q".Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"؛ Q" Q" Q" Q"Q"0Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"4Q"4Q" Q"Ъ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"4Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"ȻQ"лQ"4Q"0Q" Q" Q")Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q")Q"4Q"Q"Q"Q"Q"Q" Q"Щ Q"4Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q" Q"Q"*Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"Q"бQ"رQ"Q"Q"Q"Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"Q"Q"Q"Q"Q")Q" Q" Q" Q" Q"Q" Q" Q" Q" Q"4Q"4Q" Q"Ч Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Ќ Q"، Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q"Ы Q" Q" Q"Q"Q"Q"Q"Q" Q" Q" Q" Q"(Q" Q" Q"Ш Q"ب Q" Q" Q" Q" Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"ȏQ"ЏQ".Q" Q" Q" Q"Q"Q"Q"Q" Q" Q" Q"Q"Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q"Q"Q" Q" Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q"Ь Q" Q" Q"Њ Q"؊ Q" Q" Q" Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"'Q"&Q"&Q"&Q"'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"'Q"'Q"'Q"'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"'Q"'Q"'Q"&Q"&Q"Ȁ'Q"Ѐ'Q"؀'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"ȁ'Q"Ё'Q"؁'Q"'Q"'Q"&Q"&Q"&Q"&Q"'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"ȃ'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"&Q"&Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"Ȃ'Q"Ђ'Q"؂'Q"'Q"'Q"'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"&Q"'Q"'Q"'Q"&Q"&Q"'Q"Ѓ'Q"؃'Q"'Q"'Q"'Q"&Q"&Q"&Q"&Q"&Q"'Q"&Q"&Q"&Q"&Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"'Q"Ȅ'Q"؄'Q"Є'Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"1Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȁ2Q"Ѐ2Q"؀2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȁ2Q"Ё2Q"؁2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȃ2Q"Ђ2Q"؂2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȃ2Q"Ѓ2Q"؃2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȅ2Q"Є2Q"؄2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȅ2Q"Ѕ2Q"؅2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȇ2Q"І2Q"؆2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȇ2Q"Ї2Q"؇2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȉ2Q"Ј2Q"؈2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȉ2Q"Љ2Q"؉2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȋ2Q"Њ2Q"؊2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȋ2Q"Ћ2Q"؋2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"Ȍ2Q"Ќ2Q"،2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"ȍ2Q"Ѝ2Q"؍2Q"2Q"2Q"2Q"2Q"2Q"2Q"2Q"xQ"xQ"xQ"ЉxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЊxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЋxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЌxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЍxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЎxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЏxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"АxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"БxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ВxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ГxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ДxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЕxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЖxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЗxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ИxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЙxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"КxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЛxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"МxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"НxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ОxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ПxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"РxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"СxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ТxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"УxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ФxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ХxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЦxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЧxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ШxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЩxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЪxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЫxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЬxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЭxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЮxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"ЯxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"аxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"бxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"вxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"гxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"дxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"еxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"жxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"зxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"иxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"йxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"кxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"лxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"мxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"нxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"оxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"пxQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"xQ"yQ"yQ"yQ"yQ"yQ"ЀyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЁyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЂyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЃyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЄyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЅyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ІyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЇyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЈyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЉyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЊyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЋyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЌyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЍyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЎyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЏyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"АyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"БyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ВyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ГyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ДyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЕyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЖyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЗyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ИyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЙyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"КyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЛyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"МyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"НyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ОyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ПyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"РyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"СyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ТyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"УyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ФyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ХyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЦyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЧyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ШyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЩyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЪyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЫyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЬyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЭyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЮyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"ЯyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"аyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"бyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"вyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"гyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"дyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"еyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"жyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"зyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"иyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"йyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"кyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"лyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"мyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"нyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"оyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"пyQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"yQ"zQ"zQ"zQ"zQ"zQ"ЀzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЁzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЂzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЃzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЄzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЅzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ІzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЇzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЈzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЉzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЊzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЋzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЌzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЍzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЎzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЏzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"АzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"БzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ВzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ГzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ДzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЕzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЖzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЗzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ИzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЙzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"КzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЛzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"МzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"НzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ОzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ПzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"РzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"СzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ТzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"УzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ФzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ХzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЦzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЧzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ШzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЩzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЪzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЫzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЬzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЭzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЮzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"ЯzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"аzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"бzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"вzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"гzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"дzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"еzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"жzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"зzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"иzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"йzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"кzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"лzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"мzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"нzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"оzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"пzQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"zQ"{Q"{Q"{Q"{Q"{Q"Ѐ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ё{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ђ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ѓ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Є{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ѕ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"І{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ї{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ј{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Љ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Њ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ћ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ќ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ѝ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ў{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Џ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"А{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Б{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"В{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Г{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Д{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Е{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ж{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"З{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"И{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Й{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"К{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Л{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"М{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Н{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"О{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"П{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Р{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"С{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Т{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"У{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ф{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Х{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ц{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ч{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ш{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Щ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ъ{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ы{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ь{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Э{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Ю{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"Я{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"а{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"б{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"в{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"г{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"д{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"е{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"ж{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"з{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"и{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"й{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"к{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"л{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"м{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"н{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"о{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"п{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"{Q"|Q"|Q"|Q"|Q"|Q"Ѐ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ё|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ђ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ѓ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Є|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ѕ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"І|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ї|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ј|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Љ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Њ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ћ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ќ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ѝ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ў|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Џ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"А|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Б|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"В|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Г|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Д|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Е|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ж|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"З|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"И|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Й|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"К|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Л|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"М|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Н|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"О|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"П|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Р|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"С|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Т|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"У|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ф|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Х|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ц|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ч|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ш|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Щ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ъ|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ы|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ь|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Э|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Ю|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"Я|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"а|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"б|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"в|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"г|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"д|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"е|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"ж|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"з|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"и|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"й|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"к|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"л|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"м|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"н|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"о|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"п|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"|Q"}Q"}Q"}Q"}Q"}Q"Ѐ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ё}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ђ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ѓ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Є}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ѕ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"І}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ї}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ј}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Љ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Њ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ћ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ќ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ѝ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ў}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Џ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"А}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Б}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"В}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Г}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Д}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Е}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ж}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"З}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"И}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Й}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"К}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Л}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"М}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Н}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"О}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"П}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Р}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"С}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Т}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"У}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ф}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Х}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ц}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ч}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ш}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Щ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ъ}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ы}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ь}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Э}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Ю}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"Я}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"а}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"б}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"в}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"г}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"д}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"е}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"ж}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"з}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"и}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"й}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"к}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"л}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"м}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"н}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"о}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"п}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"}Q"~Q"~Q"~Q"~Q"~Q"Ѐ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ё~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ђ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ѓ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Є~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ѕ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"І~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ї~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ј~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Љ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Њ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ћ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ќ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ѝ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ў~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Џ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"А~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Б~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"В~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Г~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Д~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Е~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ж~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"З~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"И~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Й~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"К~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Л~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"М~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Н~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"О~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"П~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Р~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"С~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Т~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"У~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ф~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Х~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ц~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ч~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ш~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Щ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ъ~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ы~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ь~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Э~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Ю~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Я~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"а~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"б~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"в~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"г~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"д~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"е~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"ж~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"з~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"и~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"й~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"к~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"л~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"м~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"н~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"о~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"п~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"~Q"Q"Q"Q"Q"Q"ЀQ"Q"Q"Q"Q"Q"Q"Q"ЁQ"Q"Q"Q"Q"Q"Q"Q"ЂQ"Q"Q"Q"Q"Q"Q"Q"ЃQ"Q"Q"Q"Q"Q"Q"Q"ЄQ"Q"Q"Q"Q"Q"Q"Q"ЅQ"Q"Q"Q"Q"Q"Q"Q"ІQ"Q"Q"Q"Q"Q"Q"Q"ЇQ"Q"Q"Q"Q"Q"Q"Q"ЈQ"Q"Q"Q"Q"Q"Q"Q"ЉQ"Q"Q"Q"Q"Q"Q"Q"ЊQ"Q"Q"Q"Q"Q"Q"Q"ЋQ"Q"Q"Q"Q"Q"Q"Q"ЌQ"Q"Q"Q"Q"Q"Q"Q"ЍQ"Q"Q"Q"Q"Q"Q"Q"ЎQ"Q"Q"Q"Q"Q"Q"Q"ЏQ"Q"Q"Q"Q"Q"Q"Q"АQ"Q"Q"Q"Q"Q"Q"Q"БQ"Q"Q"Q"Q"Q"Q"Q"ВQ"Q"Q"Q"Q"Q"Q"Q"ГQ"Q"Q"Q"Q"Q"Q"Q"ДQ"Q"Q"Q"Q"Q"Q"Q"ЕQ"Q"Q"Q"Q"Q"Q"Q"ЖQ"Q"Q"Q"Q"Q"Q"Q"ЗQ"Q"Q"Q"Q"Q"Q"Q"ИQ"Q"Q"Q"Q"Q"Q"Q"ЙQ"Q"Q"Q"Q"Q"Q"Q"КQ"Q"Q"Q"Q"Q"Q"Q"ЛQ"Q"Q"Q"Q"Q"Q"Q"МQ"Q"Q"Q"Q"Q"Q"Q"НQ"Q"Q"Q"Q"Q"Q"Q"ОQ"Q"Q"Q"Q"Q"Q"Q"ПQ"Q"Q"Q"Q"Q"Q"Q"РQ"Q"Q"Q"Q"Q"Q"Q"СQ"Q"Q"Q"Q"Q"Q"Q"ТQ"Q"Q"Q"Q"Q"Q"Q"УQ"Q"Q"Q"Q"Q"Q"Q"ФQ"Q"Q"Q"Q"Q"Q"Q"ХQ"Q"Q"Q"Q"Q"Q"Q"ЦQ"Q"Q"Q"Q"Q"Q"Q"ЧQ"Q"Q"Q"Q"Q"Q"Q"ШQ"Q"Q"Q"Q"Q"Q"Q"ЩQ"Q"Q"Q"Q"Q"Q"Q"ЪQ"Q"Q"Q"Q"Q"Q"Q"ЫQ"Q"Q"Q"Q"Q"Q"Q"ЬQ"Q"Q"Q"Q"Q"Q"Q"ЭQ"Q"Q"Q"Q"Q"Q"Q"ЮQ"Q"Q"Q"Q"Q"Q"Q"ЯQ"Q"Q"Q"Q"Q"Q"Q"аQ"Q"Q"Q"Q"Q"Q"Q"бQ"Q"Q"Q"Q"Q"Q"Q"вQ"Q"Q"Q"Q"Q"Q"Q"гQ"Q"Q"Q"Q"Q"Q"Q"дQ"Q"Q"Q"Q"Q"Q"Q"еQ"Q"Q"Q"Q"Q"Q"Q"жQ"Q"Q"Q"Q"Q"Q"Q"зQ"Q"Q"Q"Q"Q"Q"Q"иQ"Q"Q"Q"Q"Q"Q"Q"йQ"Q"Q"Q"Q"Q"Q"Q"кQ"Q"Q"Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"ȽQ"Q"Q"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"؁Q"Q"Q"Q"Q"Q"ȂQ"؂Q"肀Q"Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"腀Q"Q"Q"Q"Q"ІQ"Q"膀Q"Q"Q"ȇQ"ЇQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؉Q"Q"Q"Q"Q"ȊQ"芀Q"Q"Q"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"茀Q"Q"Q"Q"Q"ЍQ"؍Q"荀Q"Q"Q"Q"Q"Q"莀Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"Q"ȒQ"Q"Q"Q"Q"Q"蓀Q"Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"ȘQ"蘀Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"蚀Q"Q"Q"Q"țQ"蛀Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"螀Q"Q"Q"Q"Q"ȟQ"؟Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"Q"血Q"Q"Q"Q"Q"ТQ"آQ"袀Q"Q"Q"Q"Q"УQ"ࣀQ"裀Q"Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئQ"ঀQ"Q"Q"Q"Q"اQ"ীQ"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"詀Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"ીQ"諀Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"஀Q"Q"Q"Q"ȯQ"诀Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"ಀQ"貀Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ീQ"赀Q"Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"ȷQ"طQ"වQ"Q"Q"Q"ȸQ"Q"Q"Q"Q"蹀Q"Q"Q"Q"кQ"غQ"຀Q"Q"Q"Q"Q"ȻQ"лQ"ເQ"軀Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"Q"Q"Q"ؾQ"ྀQ"Q"Q"Q"ȿQ"迀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"€Q"€Q"€Q"€Q"€Q"€Q"€Q"ÀQ"ÀQ"ÀQ"ÀQ"ÀQ"ĀQ"ĀQ"ĀQ"ĀQ"ĀQ"ĀQ"ŀQ"ŀQ"ŀQ"ŀQ"ŀQ"ŀQ"ƀQ"ƀQ"ƀQ"ƀQ"ƀQ"ƀQ"ƀQ"ǀQ"ǀQ"ǀQ"ǀQ"ǀQ"ȀQ"ȀQ"ȀQ"ȀQ"ȀQ"ɀQ"ɀQ"ɀQ"ɀQ"ɀQ"ɀQ"ɀQ"ɀQ"ɀQ"ʀQ"ʀQ"ʀQ"ʀQ"ʀQ"ˀQ"ˀQ"ˀQ"ˀQ"ˀQ"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"̀Q"΀Q"΀Q"΀Q"΀Q"΀Q"πQ"πQ"πQ"πQ"πQ"πQ"ЀQ"ЀQ"ЀQ"ЀQ"ЀQ"ЀQ"ЀQ"рQ"рQ"рQ"рQ"рQ"рQ"рQ"ҀQ"ҀQ"ҀQ"ҀQ"ҀQ"ӀQ"ӀQ"ӀQ"ӀQ"ӀQ"ԀQ"ԀQ"ԀQ"ԀQ"ԀQ"ԀQ"ԀQ"ՀQ"ՀQ"ՀQ"ՀQ"ՀQ"ՀQ"ՀQ"րQ"րQ"րQ"րQ"րQ"րQ"րQ"׀Q"׀Q"׀Q"׀Q"׀Q"؀Q"؀Q"؀Q"؀Q"؀Q"؀Q"؀Q"ـQ"ـQ"ـQ"ـQ"ـQ"ـQ"ڀQ"ڀQ"ڀQ"ڀQ"ڀQ"ڀQ"ڀQ"ۀQ"ۀQ"ۀQ"ۀQ"ۀQ"܀Q"܀Q"܀Q"܀Q"܀Q"܀Q"܀Q"݀Q"݀Q"݀Q"݀Q"݀Q"݀Q"݀Q"ހQ"ހQ"ހQ"ހQ"ހQ"ހQ"ހQ"߀Q"߀Q"߀Q"߀Q"߀Q"߀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"脁Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"ȆQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȌQ"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"Q"ȎQ"؎Q"Q"Q"Q"Q"Q"Q"ȏQ"Q"Q"Q"Q"ؐQ"Q"萁Q"Q"Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"蔁Q"Q"Q"Q"Q"ȕQ"ؕQ"蕁Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"藁Q"Q"Q"Q"Q"ȘQ"ؘQ"蘁Q"Q"Q"Q"Q"șQ"Q"Q"Q"Q"КQ"ؚQ"蚁Q"Q"Q"Q"Q"țQ"ЛQ"Q"蛁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蝁Q"Q"Q"Q"Q"ОQ"Q"螁Q"Q"Q"Q"Q"ȟQ"ПQ"Q"Q"Q"РQ"ؠQ"蠁Q"Q"Q"Q"Q"СQ"ءQ"Q"Q"Q"Q"袁Q"Q"Q"Q"Q"УQ"أQ"ࣁQ"裁Q"Q"Q"Q"Q"ँQ"褁Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"ুQ"Q"Q"Q"ȨQ"بQ"訁Q"Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ુQ"諁Q"Q"Q"Q"ȬQ"ЬQ"ଁQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"஁Q"讁Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"ుQ"Q"Q"Q"Q"ȲQ"زQ"貁Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"Q"Q"еQ"صQ"赁Q"Q"Q"Q"Q"ȶQ"Q"Q"Q"Q"Q"跁Q"Q"Q"Q"Q"Q"ȸQ"ظQ"กQ"Q"Q"Q"Q"ȹQ"Q"Q"Q"Q"Q"躁Q"Q"Q"Q"Q"лQ"ػQ"軁Q"Q"Q"Q"Q"мQ"༁Q"輁Q"Q"Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؿQ"࿁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ÁQ"ÁQ"ÁQ"ÁQ"ÁQ"ÁQ"ÁQ"āQ"āQ"āQ"āQ"āQ"āQ"ŁQ"ŁQ"ŁQ"ŁQ"ŁQ"ƁQ"ƁQ"ƁQ"ƁQ"ƁQ"ƁQ"ǁQ"ǁQ"ǁQ"ǁQ"ǁQ"ǁQ"ȁQ"ȁQ"ȁQ"ȁQ"ȁQ"ɁQ"ɁQ"ɁQ"ɁQ"ɁQ"ɁQ"ɁQ"ɁQ"ʁQ"ʁQ"ʁQ"ʁQ"ʁQ"ʁQ"ˁQ"ˁQ"ˁQ"ˁQ"ˁQ"ˁQ"́Q"́Q"́Q"́Q"́Q"́Q"́Q"́Q"́Q"΁Q"΁Q"΁Q"΁Q"΁Q"ρQ"ρQ"ρQ"ρQ"ρQ"ρQ"ЁQ"ЁQ"ЁQ"ЁQ"сQ"сQ"сQ"сQ"ҁQ"ҁQ"ҁQ"ҁQ"ҁQ"ҁQ"ҁQ"ҁQ"ӁQ"ӁQ"ӁQ"ӁQ"ԁQ"ԁQ"ԁQ"ԁQ"ԁQ"ԁQ"ՁQ"ՁQ"ՁQ"ՁQ"ՁQ"ՁQ"ցQ"ցQ"ցQ"ցQ"ׁQ"ׁQ"ׁQ"ׁQ"ׁQ"ׁQ"ׁQ"؁Q"؁Q"؁Q"؁Q"؁Q"؁Q"فQ"فQ"فQ"فQ"فQ"ځQ"ځQ"ځQ"ځQ"ځQ"ځQ"ځQ"ہQ"ہQ"ہQ"ہQ"ہQ"ہQ"܁Q"܁Q"܁Q"܁Q"܁Q"܁Q"܁Q"݁Q"݁Q"݁Q"݁Q"݁Q"݁Q"ށQ"ށQ"ށQ"ށQ"ށQ"ށQ"߁Q"߁Q"߁Q"߁Q"߁Q"߁Q"߁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"؀Q"耂Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؃Q"Q"Q"Q"Q"Q"ȄQ"؄Q"脂Q"Q"Q"Q"Q"ЅQ"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"臂Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"ȉQ"؉Q"Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"Q"苂Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"荂Q"Q"Q"Q"Q"ȎQ"ЎQ"؎Q"莂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"Q"ȑQ"ؑQ"葂Q"Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"蓂Q"Q"Q"Q"Q"Q"ДQ"ؔQ"蔂Q"Q"Q"Q"Q"ȕQ"Q"Q"Q"Q"薂Q"Q"Q"Q"Q"ЗQ"ؗQ"藂Q"Q"Q"Q"Q"Q"蘂Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؛Q"Q"Q"Q"Q"Q"ȜQ"؜Q"蜂Q"Q"Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蟂Q"Q"Q"Q"ȠQ"РQ"ࠂQ"Q"Q"Q"Q"ȡQ"ءQ"ࡂQ"Q"Q"Q"آQ"ࢂQ"Q"Q"Q"ȣQ"أQ"裂Q"Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ংQ"覂Q"Q"Q"Q"ȧQ"ЧQ"ূQ"观Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ੂQ"詂Q"Q"Q"Q"Q"ȪQ"ЪQ"誂Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ୂQ"譂Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"ȯQ"دQ"ூQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"ూQ"Q"Q"Q"Q"Q"ȲQ"زQ"ಂQ"Q"Q"Q"ȳQ"Q"Q"Q"Q"Q"贂Q"Q"Q"Q"еQ"صQ"ൂQ"Q"Q"Q"ȶQ"Q"Q"Q"ȷQ"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"โQ"蹂Q"Q"Q"ȺQ"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"༂Q"輂Q"Q"Q"Q"Q"ȽQ"нQ"གQ"Q"Q"Q"Q"ؾQ"ྂQ"Q"Q"Q"ȿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"‚Q"‚Q"‚Q"‚Q"‚Q"ÂQ"ÂQ"ÂQ"ÂQ"ĂQ"ĂQ"ĂQ"ĂQ"ĂQ"ĂQ"łQ"łQ"łQ"łQ"ƂQ"ƂQ"ƂQ"ƂQ"ƂQ"ƂQ"ǂQ"ǂQ"ǂQ"ǂQ"ȂQ"ȂQ"ȂQ"ȂQ"ȂQ"ɂQ"ɂQ"ɂQ"ɂQ"ɂQ"ɂQ"ʂQ"ʂQ"ʂQ"ʂQ"ʂQ"˂Q"˂Q"˂Q"˂Q"̂Q"̂Q"̂Q"̂Q"̂Q"̂Q"̂Q"̂Q"͂Q"͂Q"͂Q"͂Q"͂Q"͂Q"΂Q"΂Q"΂Q"΂Q"ςQ"ςQ"ςQ"ςQ"ςQ"ςQ"ςQ"ςQ"ЂQ"ЂQ"ЂQ"ЂQ"ЂQ"ЂQ"тQ"тQ"тQ"тQ"тQ"тQ"тQ"҂Q"҂Q"҂Q"҂Q"҂Q"҂Q"҂Q"ӂQ"ӂQ"ӂQ"ӂQ"ӂQ"ԂQ"ԂQ"ԂQ"ԂQ"ԂQ"ՂQ"ՂQ"ՂQ"ՂQ"ՂQ"ՂQ"ւQ"ւQ"ւQ"ւQ"ւQ"ւQ"ւQ"ׂQ"ׂQ"ׂQ"ׂQ"ׂQ"؂Q"؂Q"؂Q"؂Q"؂Q"؂Q"قQ"قQ"قQ"قQ"قQ"قQ"قQ"ڂQ"ڂQ"ڂQ"ڂQ"ڂQ"ۂQ"ۂQ"ۂQ"ۂQ"ۂQ"ۂQ"܂Q"܂Q"܂Q"܂Q"܂Q"܂Q"܂Q"݂Q"݂Q"݂Q"݂Q"݂Q"ނQ"ނQ"ނQ"ނQ"ނQ"߂Q"߂Q"߂Q"߂Q"߂Q"߂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"Q"Q"聃Q"Q"Q"Q"Q"ЂQ"؂Q"肃Q"Q"Q"Q"Q"ȃQ"ЃQ"؃Q"Q"Q"Q"Q"脃Q"Q"Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"臃Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؊Q"Q"芃Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؍Q"Q"荃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"菃Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"ȔQ"Q"Q"Q"Q"Q"蕃Q"Q"Q"Q"Q"ȖQ"ЖQ"ؖQ"薃Q"Q"Q"Q"Q"Q"Q"Q"Q"ȘQ"ИQ"ؘQ"Q"蘃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"КQ"ؚQ"蚃Q"Q"Q"Q"Q"ЛQ"Q"蛃Q"Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"蝃Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"蟃Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"Q"衃Q"Q"Q"Q"Q"ТQ"آQ"ࢃQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"ःQ"Q"Q"Q"Q"ȥQ"إQ"ृQ"Q"Q"Q"Q"Q"Q"Q"Q"ȧQ"ЧQ"ৃQ"Q"Q"Q"Q"ȨQ"بQ"ਃQ"Q"Q"Q"Q"ȩQ"Q"Q"Q"Q"تQ"ઃQ"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȭQ"ЭQ"ୃQ"Q"Q"Q"Q"ȮQ"خQ"ஃQ"Q"Q"Q"Q"ȯQ"Q"Q"Q"Q"Q"调Q"Q"Q"Q"бQ"رQ"豃Q"Q"Q"Q"Q"вQ"ಃQ"貃Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȵQ"еQ"ൃQ"Q"Q"Q"Q"ضQ"ඃQ"Q"Q"Q"Q"Q"ȷQ"Q"Q"Q"ȸQ"иQ"ฃQ"踃Q"Q"Q"Q"Q"Q"Q"Q"Q"ȺQ"кQ"غQ"Q"Q"Q"ػQ"ໃQ"Q"Q"Q"Q"Q"ؼQ"༃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȾQ"оQ"Q"Q"Q"Q"࿃Q"迃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ƒQ"ƒQ"ƒQ"ƒQ"ƒQ"ƒQ"ƒQ"ÃQ"ÃQ"ÃQ"ÃQ"ÃQ"ăQ"ăQ"ăQ"ăQ"ăQ"ăQ"ŃQ"ŃQ"ŃQ"ŃQ"ŃQ"ŃQ"ŃQ"ŃQ"ƃQ"ƃQ"ƃQ"ƃQ"ƃQ"ǃQ"ǃQ"ǃQ"ǃQ"ǃQ"ǃQ"ȃQ"ȃQ"ȃQ"ȃQ"ȃQ"ȃQ"ɃQ"ɃQ"ɃQ"ɃQ"ɃQ"ɃQ"ʃQ"ʃQ"ʃQ"ʃQ"ʃQ"˃Q"˃Q"˃Q"˃Q"̃Q"̃Q"̃Q"̃Q"̃Q"̃Q"̃Q"̃Q"̃Q"̓Q"̓Q"̓Q"̓Q"̓Q"̓Q"̓Q"΃Q"΃Q"΃Q"΃Q"΃Q"΃Q"΃Q"σQ"σQ"σQ"σQ"σQ"ЃQ"ЃQ"ЃQ"ЃQ"ЃQ"ЃQ"уQ"уQ"уQ"уQ"уQ"уQ"уQ"҃Q"҃Q"҃Q"҃Q"ӃQ"ӃQ"ӃQ"ӃQ"ӃQ"ӃQ"ӃQ"ԃQ"ԃQ"ԃQ"ԃQ"ԃQ"ԃQ"ԃQ"ԃQ"ՃQ"ՃQ"ՃQ"ՃQ"փQ"փQ"փQ"փQ"փQ"փQ"փQ"׃Q"׃Q"׃Q"׃Q"׃Q"؃Q"؃Q"؃Q"؃Q"؃Q"كQ"كQ"كQ"كQ"كQ"كQ"كQ"ڃQ"ڃQ"ڃQ"ڃQ"ڃQ"ۃQ"ۃQ"ۃQ"ۃQ"ۃQ"ۃQ"ۃQ"܃Q"܃Q"܃Q"܃Q"܃Q"݃Q"݃Q"݃Q"݃Q"݃Q"݃Q"ރQ"ރQ"ރQ"ރQ"ރQ"ރQ"ރQ"߃Q"߃Q"߃Q"߃Q"߃Q"߃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耄Q"Q"Q"Q"Q"Q"ЁQ"؁Q"Q"聄Q"Q"Q"Q"Q"ȂQ"ЂQ"Q"肄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"脄Q"Q"Q"Q"Q"ȅQ"ЅQ"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"臄Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"ȉQ"؉Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"Q"苄Q"Q"Q"Q"Q"Q"ȌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"Q"ȒQ"蒄Q"Q"Q"Q"Q"ȓQ"Q"Q"Q"Q"Q"蔄Q"Q"Q"Q"Q"ЕQ"ؕQ"蕄Q"Q"Q"Q"Q"ЖQ"Q"薄Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"Q"ȚQ"КQ"ؚQ"蚄Q"Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蝄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蟄Q"Q"Q"Q"ȠQ"РQ"ࠄQ"蠄Q"Q"Q"Q"Q"ȡQ"СQ"Q"Q"Q"ТQ"آQ"ࢄQ"袄Q"Q"Q"Q"Q"ȣQ"ࣄQ"裄Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئQ"঄Q"覄Q"Q"Q"Q"ȧQ"规Q"Q"Q"Q"ШQ"بQ"Q"Q"Q"Q"Q"Q"Q"Q"઄Q"誄Q"Q"Q"ȫQ"ЫQ"ثQ"Q"Q"Q"Q"Q"ȬQ"جQ"଄Q"Q"Q"Q"Q"Q"ȭQ"Q"Q"Q"Q"஄Q"讄Q"Q"Q"Q"ȯQ"ЯQ"௄Q"评Q"Q"Q"Q"ఄQ"谄Q"Q"Q"Q"ȱQ"бQ"رQ"Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"شQ"ഄQ"Q"Q"Q"Q"ȵQ"صQ"资Q"Q"Q"Q"Q"жQ"ضQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"คQ"踄Q"Q"Q"Q"Q"ȹQ"йQ"عQ"ไQ"Q"Q"Q"Q"غQ"ຄQ"Q"Q"Q"ȻQ"Q"Q"Q"Q"輄Q"Q"Q"Q"нQ"ؽQ"轄Q"Q"Q"Q"Q"оQ"྄Q"辄Q"Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"„Q"„Q"„Q"„Q"„Q"„Q"„Q"ÄQ"ÄQ"ÄQ"ÄQ"ÄQ"ĄQ"ĄQ"ĄQ"ĄQ"ĄQ"ĄQ"ńQ"ńQ"ńQ"ńQ"ńQ"ńQ"ƄQ"ƄQ"ƄQ"ƄQ"DŽQ"DŽQ"DŽQ"DŽQ"DŽQ"DŽQ"ȄQ"ȄQ"ȄQ"ȄQ"ȄQ"ȄQ"ȄQ"ɄQ"ɄQ"ɄQ"ɄQ"ɄQ"ɄQ"ɄQ"ʄQ"ʄQ"ʄQ"ʄQ"˄Q"˄Q"˄Q"˄Q"˄Q"̄Q"̄Q"̄Q"̄Q"̄Q"̄Q"̈́Q"̈́Q"̈́Q"̈́Q"΄Q"΄Q"΄Q"΄Q"τQ"τQ"τQ"τQ"τQ"τQ"τQ"τQ"ЄQ"ЄQ"ЄQ"ЄQ"фQ"фQ"фQ"фQ"фQ"҄Q"҄Q"҄Q"҄Q"҄Q"҄Q"҄Q"ӄQ"ӄQ"ӄQ"ӄQ"ԄQ"ԄQ"ԄQ"ԄQ"ԄQ"ՄQ"ՄQ"ՄQ"ՄQ"ՄQ"ՄQ"ՄQ"քQ"քQ"քQ"քQ"քQ"ׄQ"ׄQ"ׄQ"ׄQ"؄Q"؄Q"؄Q"؄Q"؄Q"؄Q"؄Q"؄Q"لQ"لQ"لQ"لQ"لQ"لQ"ڄQ"ڄQ"ڄQ"ڄQ"ڄQ"ڄQ"ۄQ"ۄQ"ۄQ"ۄQ"ۄQ"܄Q"܄Q"܄Q"܄Q"܄Q"܄Q"܄Q"݄Q"݄Q"݄Q"݄Q"݄Q"ބQ"ބQ"ބQ"ބQ"ބQ"ބQ"ބQ"ބQ"߄Q"߄Q"߄Q"߄Q"߄Q"߄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"聅Q"Q"Q"Q"ȂQ"ЂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"脅Q"Q"Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"Q"ȇQ"Q"Q"Q"Q"舅Q"Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"芅Q"Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؍Q"Q"荅Q"Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"Q"ȑQ"ؑQ"葅Q"Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"ȕQ"ؕQ"蕅Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蘅Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蜅Q"Q"Q"Q"ȝQ"НQ"؝Q"Q"Q"Q"Q"Q"Q"ȞQ"؞Q"Q"Q"Q"Q"Q"Q"ȟQ"Q"Q"Q"Q"Q"蠅Q"Q"Q"Q"Q"СQ"ءQ"ࡅQ"衅Q"Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"अQ"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"訅Q"Q"Q"Q"Q"ةQ"੅Q"Q"Q"Q"અQ"誅Q"Q"Q"Q"Q"ȫQ"諅Q"Q"Q"Q"ЬQ"جQ"Q"Q"Q"Q"譅Q"Q"Q"Q"Q"ЮQ"خQ"அQ"Q"Q"Q"௅Q"诅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"бQ"౅Q"豅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"೅Q"賅Q"Q"Q"Q"ȴQ"дQ"شQ"Q"Q"Q"Q"صQ"൅Q"Q"Q"Q"ȶQ"Q"Q"Q"Q"طQ"ළQ"Q"Q"Q"Q"ฅQ"踅Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"Q"Q"Q"Q"ػQ"໅Q"Q"Q"Q"ȼQ"輅Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"࿅Q"迅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"…Q"…Q"…Q"…Q"…Q"…Q"ÅQ"ÅQ"ÅQ"ÅQ"ÅQ"ąQ"ąQ"ąQ"ąQ"ąQ"ŅQ"ŅQ"ŅQ"ŅQ"ƅQ"ƅQ"ƅQ"ƅQ"ƅQ"ƅQ"ƅQ"DžQ"DžQ"DžQ"DžQ"DžQ"ȅQ"ȅQ"ȅQ"ȅQ"ȅQ"ɅQ"ɅQ"ɅQ"ɅQ"ʅQ"ʅQ"ʅQ"ʅQ"ʅQ"ʅQ"ʅQ"ʅQ"˅Q"˅Q"˅Q"˅Q"˅Q"̅Q"̅Q"̅Q"̅Q"ͅQ"ͅQ"ͅQ"ͅQ"ͅQ"ͅQ"ͅQ"΅Q"΅Q"΅Q"΅Q"΅Q"΅Q"΅Q"΅Q"υQ"υQ"υQ"υQ"υQ"υQ"υQ"ЅQ"ЅQ"ЅQ"ЅQ"хQ"хQ"хQ"хQ"хQ"хQ"хQ"҅Q"҅Q"҅Q"҅Q"ӅQ"ӅQ"ӅQ"ӅQ"ӅQ"ӅQ"ӅQ"ԅQ"ԅQ"ԅQ"ԅQ"ՅQ"ՅQ"ՅQ"ՅQ"ՅQ"ՅQ"ՅQ"ՅQ"օQ"օQ"օQ"օQ"օQ"ׅQ"ׅQ"ׅQ"ׅQ"ׅQ"ׅQ"؅Q"؅Q"؅Q"؅Q"؅Q"مQ"مQ"مQ"مQ"څQ"څQ"څQ"څQ"څQ"څQ"ۅQ"ۅQ"ۅQ"ۅQ"܅Q"܅Q"܅Q"܅Q"܅Q"܅Q"܅Q"݅Q"݅Q"݅Q"݅Q"݅Q"ޅQ"ޅQ"ޅQ"ޅQ"ޅQ"ޅQ"߅Q"߅Q"߅Q"߅Q"߅Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"聆Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"ȅQ"腆Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"舆Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"茆Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"莆Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"蒆Q"Q"ȓQ"Q"Q"ؔQ"Q"Q"Q"Q"蕆Q"Q"Q"Q"ȖQ"Q"Q"ؗQ"Q"Q"蘆Q"Q"Q"șQ"Q"Q"ؚQ"Q"Q"蛆Q"Q"ȜQ"Q"Q"؝Q"Q"Q"螆Q"Q"Q"ȟQ"Q"Q"ؠQ"Q"Q"衆Q"Q"ȢQ"Q"Q"أQ"Q"Q"褆Q"Q"ȥQ"Q"Q"ئQ"Q"Q"视Q"Q"ȨQ"Q"Q"ةQ"Q"Q"誆Q"Q"ȫQ"Q"Q"جQ"Q"Q"譆Q"Q"ȮQ"Q"Q"دQ"Q"Q"谆Q"Q"ȱQ"Q"Q"زQ"Q"Q"賆Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"ආQ"Q"Q"Q"ȷQ"跆Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"غQ"ຆQ"Q"Q"Q"ȻQ"軆Q"Q"Q"Q"мQ"ؼQ"Q"Q"Q"Q"Q"Q"Q"Q"྆Q"辆Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"†Q"†Q"†Q"†Q"†Q"ÆQ"ÆQ"ÆQ"ÆQ"ÆQ"ÆQ"ĆQ"ĆQ"ĆQ"ĆQ"ņQ"ņQ"ņQ"ņQ"ņQ"ƆQ"ƆQ"ƆQ"ƆQ"ƆQ"džQ"džQ"džQ"džQ"džQ"džQ"džQ"ȆQ"ȆQ"ȆQ"ȆQ"ȆQ"ɆQ"ɆQ"ɆQ"ɆQ"ʆQ"ʆQ"ʆQ"ʆQ"ʆQ"ʆQ"ˆQ"ˆQ"ˆQ"ˆQ"ˆQ"ˆQ"̆Q"̆Q"̆Q"̆Q"̆Q"͆Q"͆Q"͆Q"͆Q"ΆQ"ΆQ"ΆQ"ΆQ"ΆQ"ΆQ"φQ"φQ"φQ"φQ"ІQ"ІQ"ІQ"ІQ"ІQ"ІQ"ІQ"цQ"цQ"цQ"цQ"цQ"҆Q"҆Q"҆Q"҆Q"҆Q"҆Q"҆Q"ӆQ"ӆQ"ӆQ"ӆQ"ӆQ"ԆQ"ԆQ"ԆQ"ԆQ"ՆQ"ՆQ"ՆQ"ՆQ"ֆQ"ֆQ"ֆQ"ֆQ"׆Q"׆Q"׆Q"׆Q"׆Q"׆Q"׆Q"؆Q"؆Q"؆Q"؆Q"؆Q"نQ"نQ"نQ"نQ"نQ"نQ"چQ"چQ"چQ"چQ"ۆQ"ۆQ"ۆQ"ۆQ"ۆQ"ۆQ"܆Q"܆Q"܆Q"܆Q"݆Q"݆Q"݆Q"݆Q"݆Q"ކQ"ކQ"ކQ"ކQ"ކQ"ކQ"ކQ"ކQ"ކQ"߆Q"߆Q"߆Q"߆Q"߆Q"߆Q"߆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"Q"耇Q"Q"Q"ȁQ"Q"Q"Q"Q"肇Q"Q"Q"Q"ЃQ"؃Q"胇Q"Q"Q"Q"Q"ЄQ"Q"脇Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"ȈQ"與Q"Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"苇Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"Q"ȎQ"Q"Q"Q"Q"Q"菇Q"Q"Q"Q"Q"АQ"ؐQ"萇Q"Q"Q"Q"Q"Q"葇Q"Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"蓇Q"Q"Q"Q"Q"ДQ"ؔQ"蔇Q"Q"Q"Q"Q"ЕQ"Q"蕇Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"Q"șQ"ؙQ"虇Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蜇Q"Q"Q"Q"ȝQ"НQ"Q"Q"Q"Q"Q"ȞQ"؞Q"Q"Q"Q"Q"Q"ȟQ"Q"Q"Q"Q"Q"Q"蠇Q"Q"Q"Q"Q"СQ"ءQ"衇Q"Q"Q"Q"Q"ТQ"ࢇQ"袇Q"Q"Q"Q"ȣQ"УQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"ेQ"Q"Q"Q"Q"ȦQ"ئQ"覇Q"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ੇQ"詇Q"Q"Q"Q"ȪQ"ЪQ"Q"Q"Q"Q"ȫQ"ثQ"ેQ"Q"Q"Q"Q"ȬQ"Q"Q"Q"Q"Q"譇Q"Q"Q"Q"Q"ЮQ"خQ"讇Q"Q"Q"Q"Q"ЯQ"ேQ"诇Q"Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಇQ"Q"Q"Q"Q"ȳQ"資Q"Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ඇQ"趇Q"Q"Q"Q"ȷQ"зQ"෇Q"跇Q"Q"Q"ȸQ"иQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"ງQ"躇Q"Q"Q"Q"Q"Q"໇Q"軇Q"Q"Q"Q"ȼQ"Q"Q"Q"Q"Q"Q"轇Q"Q"Q"Q"Q"Q"оQ"ؾQ"Q"Q"Q"Q"ȿQ"пQ"࿇Q"过Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"‡Q"‡Q"‡Q"‡Q"‡Q"‡Q"ÇQ"ÇQ"ÇQ"ÇQ"ÇQ"ÇQ"ćQ"ćQ"ćQ"ćQ"ŇQ"ŇQ"ŇQ"ŇQ"ŇQ"ƇQ"ƇQ"ƇQ"ƇQ"ƇQ"LJQ"LJQ"LJQ"LJQ"LJQ"LJQ"LJQ"LJQ"ȇQ"ȇQ"ȇQ"ȇQ"ɇQ"ɇQ"ɇQ"ɇQ"ʇQ"ʇQ"ʇQ"ʇQ"ʇQ"ʇQ"ʇQ"ˇQ"ˇQ"ˇQ"ˇQ"ˇQ"ˇQ"ˇQ"ˇQ"̇Q"̇Q"̇Q"̇Q"̇Q"͇Q"͇Q"͇Q"͇Q"͇Q"͇Q"͇Q"·Q"·Q"·Q"·Q"·Q"χQ"χQ"χQ"χQ"χQ"χQ"ЇQ"ЇQ"ЇQ"ЇQ"ЇQ"ЇQ"ЇQ"чQ"чQ"чQ"чQ"чQ"чQ"чQ"҇Q"҇Q"҇Q"҇Q"ӇQ"ӇQ"ӇQ"ӇQ"ӇQ"ԇQ"ԇQ"ԇQ"ԇQ"ԇQ"ԇQ"ՇQ"ՇQ"ՇQ"ՇQ"ՇQ"ևQ"ևQ"ևQ"ևQ"ևQ"ևQ"ׇQ"ׇQ"ׇQ"ׇQ"ׇQ"ׇQ"؇Q"؇Q"؇Q"؇Q"؇Q"؇Q"؇Q"هQ"هQ"هQ"هQ"هQ"ڇQ"ڇQ"ڇQ"ڇQ"ۇQ"ۇQ"ۇQ"ۇQ"ۇQ"ۇQ"ۇQ"ۇQ"܇Q"܇Q"܇Q"܇Q"݇Q"݇Q"݇Q"݇Q"އQ"އQ"އQ"އQ"އQ"އQ"߇Q"߇Q"߇Q"߇Q"߇Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"肈Q"Q"Q"Q"ȃQ"ЃQ"Q"Q"Q"Q"Q"ȄQ"؄Q"Q"Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"Q"膈Q"Q"Q"Q"Q"ЇQ"؇Q"臈Q"Q"Q"Q"Q"ЈQ"Q"興Q"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"Q"Q"Q"茈Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"萈Q"Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"ȔQ"蔈Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"Q"ȘQ"蘈Q"Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蛈Q"Q"Q"Q"ȜQ"МQ"؜Q"Q"蜈Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"Q"蟈Q"Q"Q"Q"Q"ȠQ"ؠQ"ࠈQ"Q"Q"Q"Q"Q"ȡQ"Q"Q"Q"Q"Q"袈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ईQ"褈Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"ȦQ"ئQ"ঈQ"Q"Q"Q"Q"ȧQ"Q"Q"Q"Q"Q"ਈQ"計Q"Q"Q"Q"ȩQ"詈Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ଈQ"謈Q"Q"Q"Q"ȭQ"ЭQ"حQ"ୈQ"Q"Q"Q"Q"ȮQ"خQ"ஈQ"Q"Q"Q"Q"ȯQ"Q"Q"Q"Q"Q"谈Q"Q"Q"Q"Q"Q"бQ"رQ"豈Q"Q"Q"Q"Q"вQ"ಈQ"貈Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"ൈQ"Q"Q"Q"Q"ȶQ"ضQ"趈Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"่Q"蹈Q"Q"Q"Q"ȺQ"кQ"ຈQ"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"཈Q"轈Q"Q"Q"Q"ȾQ"оQ"ؾQ"ྈQ"Q"Q"Q"Q"ȿQ"ؿQ"࿈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ˆQ"ˆQ"ˆQ"ˆQ"ˆQ"ˆQ"ˆQ"ÈQ"ÈQ"ÈQ"ÈQ"ÈQ"ÈQ"ĈQ"ĈQ"ĈQ"ĈQ"ĈQ"ňQ"ňQ"ňQ"ňQ"ňQ"ňQ"ƈQ"ƈQ"ƈQ"ƈQ"ƈQ"LjQ"LjQ"LjQ"LjQ"LjQ"LjQ"LjQ"ȈQ"ȈQ"ȈQ"ȈQ"ȈQ"ɈQ"ɈQ"ɈQ"ɈQ"ɈQ"ɈQ"ʈQ"ʈQ"ʈQ"ʈQ"ʈQ"ʈQ"ʈQ"ʈQ"ˈQ"ˈQ"ˈQ"ˈQ"ˈQ"ˈQ"ˈQ"̈Q"̈Q"̈Q"̈Q"̈Q"͈Q"͈Q"͈Q"͈Q"͈Q"ΈQ"ΈQ"ΈQ"ΈQ"ΈQ"ΈQ"ΈQ"ΈQ"ψQ"ψQ"ψQ"ψQ"ψQ"ψQ"ψQ"ЈQ"ЈQ"ЈQ"ЈQ"ЈQ"ЈQ"шQ"шQ"шQ"шQ"шQ"҈Q"҈Q"҈Q"҈Q"҈Q"҈Q"҈Q"ӈQ"ӈQ"ӈQ"ӈQ"ӈQ"ӈQ"ԈQ"ԈQ"ԈQ"ԈQ"ԈQ"ԈQ"ԈQ"ՈQ"ՈQ"ՈQ"ՈQ"ՈQ"ֈQ"ֈQ"ֈQ"ֈQ"ֈQ"ֈQ"ֈQ"׈Q"׈Q"׈Q"׈Q"׈Q"׈Q"׈Q"؈Q"؈Q"؈Q"؈Q"؈Q"؈Q"؈Q"وQ"وQ"وQ"وQ"وQ"ڈQ"ڈQ"ڈQ"ڈQ"ڈQ"ۈQ"ۈQ"ۈQ"ۈQ"ۈQ"ۈQ"ۈQ"܈Q"܈Q"܈Q"܈Q"܈Q"܈Q"܈Q"݈Q"݈Q"݈Q"݈Q"݈Q"݈Q"ވQ"ވQ"ވQ"ވQ"ވQ"߈Q"߈Q"߈Q"߈Q"߈Q"߈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"Q"聉Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"ЃQ"Q"胉Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"ȇQ"臉Q"Q"Q"Q"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"芉Q"Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"ȍQ"Q"Q"Q"Q"Q"莉Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"Q"萉Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"Q"ȔQ"蔉Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"藉Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"Q"ȚQ"Q"Q"Q"Q"蛉Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"蝉Q"Q"Q"ȞQ"ОQ"Q"Q"Q"Q"Q"Q"Q"Q"ؠQ"ࠉQ"Q"Q"Q"ȡQ"ءQ"衉Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"उQ"褉Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"ئQ"উQ"Q"Q"Q"ȧQ"Q"Q"Q"Q"訉Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"ઉQ"誉Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"Q"Q"Q"حQ"୉Q"Q"Q"Q"ȮQ"讉Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"Q"Q"Q"Q"౉Q"豉Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"سQ"೉Q"Q"Q"Q"ȴQ"Q"Q"Q"Q"赉Q"Q"Q"Q"Q"жQ"ضQ"趉Q"Q"Q"Q"Q"෉Q"跉Q"Q"Q"Q"ȸQ"Q"Q"Q"Q"عQ"้Q"Q"Q"Q"Q"ຉQ"躉Q"Q"Q"Q"ȻQ"Q"Q"Q"Q"ؼQ"༉Q"Q"Q"Q"Q"ཉQ"轉Q"Q"Q"Q"ȾQ"Q"Q"Q"Q"ؿQ"࿉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"‰Q"‰Q"‰Q"‰Q"‰Q"ÉQ"ÉQ"ÉQ"ÉQ"ÉQ"ÉQ"ĉQ"ĉQ"ĉQ"ĉQ"ĉQ"ʼnQ"ʼnQ"ʼnQ"ʼnQ"ʼnQ"ƉQ"ƉQ"ƉQ"ƉQ"ƉQ"ƉQ"ljQ"ljQ"ljQ"ljQ"ljQ"ȉQ"ȉQ"ȉQ"ȉQ"ȉQ"ɉQ"ɉQ"ɉQ"ɉQ"ɉQ"ɉQ"ʉQ"ʉQ"ʉQ"ʉQ"ʉQ"ˉQ"ˉQ"ˉQ"ˉQ"ˉQ"̉Q"̉Q"̉Q"̉Q"̉Q"̉Q"͉Q"͉Q"͉Q"͉Q"͉Q"ΉQ"ΉQ"ΉQ"ΉQ"ΉQ"ωQ"ωQ"ωQ"ωQ"ωQ"ωQ"ЉQ"ЉQ"ЉQ"ЉQ"щQ"щQ"щQ"щQ"щQ"щQ"҉Q"҉Q"҉Q"҉Q"҉Q"҉Q"ӉQ"ӉQ"ӉQ"ӉQ"ԉQ"ԉQ"ԉQ"ԉQ"ԉQ"ԉQ"ՉQ"ՉQ"ՉQ"ՉQ"ՉQ"ՉQ"։Q"։Q"։Q"։Q"׉Q"׉Q"׉Q"׉Q"׉Q"׉Q"؉Q"؉Q"؉Q"؉Q"؉Q"؉Q"ىQ"ىQ"ىQ"ىQ"ډQ"ډQ"ډQ"ډQ"ډQ"ډQ"ۉQ"ۉQ"ۉQ"ۉQ"ۉQ"ۉQ"܉Q"܉Q"܉Q"܉Q"݉Q"݉Q"݉Q"݉Q"݉Q"݉Q"މQ"މQ"މQ"މQ"މQ"މQ"߉Q"߉Q"߉Q"߉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耊Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"ȂQ"؂Q"Q"Q"Q"Q"Q"ȃQ"Q"Q"Q"Q"Q"脊Q"Q"Q"Q"ЅQ"؅Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"ȇQ"Q"Q"Q"Q"舊Q"Q"Q"Q"ЉQ"؉Q"Q"艊Q"Q"Q"Q"Q"ЊQ"Q"芊Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"ȎQ"莊Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"ȕQ"蕊Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"蚊Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"ȝQ"Q"Q"Q"Q"螊Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"РQ"ؠQ"Q"Q"Q"ءQ"ࡊQ"Q"Q"Q"Q"Q"ȢQ"袊Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"褊Q"Q"Q"Q"ХQ"إQ"襊Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"৊Q"觊Q"Q"Q"Q"ȨQ"訊Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"૊Q"諊Q"Q"Q"Q"Q"ȬQ"ЬQ"جQ"ଊQ"Q"Q"Q"Q"حQ"୊Q"Q"Q"Q"ȮQ"Q"Q"Q"Q"Q"ொQ"诊Q"Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಊQ"Q"Q"Q"ȳQ"賊Q"Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"ඊQ"Q"Q"Q"ȷQ"跊Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"ຊQ"躊Q"Q"Q"ȻQ"лQ"ػQ"໊Q"Q"Q"Q"Q"Q"ȼQ"ؼQ"༊Q"Q"Q"Q"Q"Q"ȽQ"Q"Q"Q"Q"Q"辊Q"Q"Q"Q"Q"Q"пQ"ؿQ"࿊Q"迊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ŠQ"ŠQ"ŠQ"ŠQ"ŠQ"ŠQ"ŠQ"ÊQ"ÊQ"ÊQ"ÊQ"ÊQ"ÊQ"ÊQ"ÊQ"ĊQ"ĊQ"ĊQ"ĊQ"ĊQ"ĊQ"ĊQ"ĊQ"ŊQ"ŊQ"ŊQ"ŊQ"ŊQ"ŊQ"ƊQ"ƊQ"ƊQ"ƊQ"ƊQ"ƊQ"NJQ"NJQ"NJQ"NJQ"NJQ"NJQ"NJQ"NJQ"ȊQ"ȊQ"ȊQ"ȊQ"ȊQ"ȊQ"ȊQ"ɊQ"ɊQ"ɊQ"ɊQ"ɊQ"ʊQ"ʊQ"ʊQ"ʊQ"ʊQ"ˊQ"ˊQ"ˊQ"ˊQ"ˊQ"ˊQ"ˊQ"̊Q"̊Q"̊Q"̊Q"̊Q"̊Q"̊Q"͊Q"͊Q"͊Q"͊Q"͊Q"͊Q"͊Q"ΊQ"ΊQ"ΊQ"ΊQ"ΊQ"ϊQ"ϊQ"ϊQ"ϊQ"ϊQ"ϊQ"ϊQ"ϊQ"ЊQ"ЊQ"ЊQ"ЊQ"ЊQ"ЊQ"ЊQ"ЊQ"ъQ"ъQ"ъQ"ъQ"ъQ"ъQ"ъQ"ъQ"ҊQ"ҊQ"ҊQ"ҊQ"ҊQ"ӊQ"ӊQ"ӊQ"ӊQ"ӊQ"ӊQ"ӊQ"ԊQ"ԊQ"ԊQ"ԊQ"ԊQ"ԊQ"ԊQ"ԊQ"ՊQ"ՊQ"ՊQ"ՊQ"ՊQ"ՊQ"ՊQ"ՊQ"֊Q"֊Q"֊Q"֊Q"֊Q"֊Q"׊Q"׊Q"׊Q"׊Q"׊Q"؊Q"؊Q"؊Q"؊Q"؊Q"؊Q"؊Q"؊Q"يQ"يQ"يQ"يQ"يQ"يQ"يQ"يQ"ڊQ"ڊQ"ڊQ"ڊQ"ڊQ"ڊQ"ڊQ"ۊQ"ۊQ"ۊQ"ۊQ"ۊQ"ۊQ"܊Q"܊Q"܊Q"܊Q"܊Q"܊Q"܊Q"܊Q"݊Q"݊Q"݊Q"݊Q"݊Q"݊Q"݊Q"݊Q"ފQ"ފQ"ފQ"ފQ"ފQ"ߊQ"ߊQ"ߊQ"ߊQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؁Q"Q"Q"Q"Q"Q"ȂQ"؂Q"肋Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"腋Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"ȇQ"؇Q"Q"Q"Q"Q"Q"ȈQ"Q"Q"Q"Q"艋Q"Q"Q"Q"Q"Q"ЊQ"؊Q"Q"Q"Q"Q"ȋQ"ЋQ"Q"苋Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"ȏQ"ЏQ"؏Q"菋Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蒋Q"Q"Q"Q"ȓQ"ГQ"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"ȕQ"Q"Q"Q"Q"薋Q"Q"Q"Q"Q"ЗQ"ؗQ"Q"Q"Q"Q"Q"蘋Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؛Q"Q"蛋Q"Q"Q"Q"Q"ȜQ"МQ"؜Q"蜋Q"Q"Q"Q"Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蟋Q"Q"Q"Q"Q"ȠQ"РQ"ؠQ"ࠋQ"Q"Q"Q"Q"Q"ȡQ"ءQ"ࡋQ"Q"Q"Q"ȢQ"Q"Q"Q"Q"裋Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"ХQ"ोQ"襋Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"بQ"਋Q"Q"Q"Q"ȩQ"詋Q"Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"جQ"ଋQ"Q"Q"Q"Q"ୋQ"譋Q"Q"Q"Q"ȮQ"Q"Q"Q"Q"دQ"ோQ"Q"Q"Q"Q"ఋQ"谋Q"Q"Q"Q"ȱQ"Q"Q"Q"Q"Q"貋Q"Q"Q"Q"Q"Q"гQ"سQ"ೋQ"賋Q"Q"Q"Q"Q"ഋQ"贋Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"෋Q"Q"Q"Q"Q"ȸQ"иQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"຋Q"躋Q"Q"Q"Q"Q"Q"໋Q"軋Q"Q"Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؾQ"ྋQ"辋Q"Q"Q"Q"Q"ȿQ"пQ"ؿQ"迋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"‹Q"‹Q"‹Q"‹Q"‹Q"ËQ"ËQ"ËQ"ËQ"ËQ"ËQ"ËQ"ċQ"ċQ"ċQ"ċQ"ċQ"ŋQ"ŋQ"ŋQ"ŋQ"ŋQ"ƋQ"ƋQ"ƋQ"ƋQ"ƋQ"ƋQ"ƋQ"ƋQ"NjQ"NjQ"NjQ"NjQ"NjQ"NjQ"NjQ"NjQ"ȋQ"ȋQ"ȋQ"ȋQ"ȋQ"ȋQ"ȋQ"ɋQ"ɋQ"ɋQ"ɋQ"ɋQ"ɋQ"ʋQ"ʋQ"ʋQ"ʋQ"ʋQ"ʋQ"ʋQ"ʋQ"ˋQ"ˋQ"ˋQ"ˋQ"ˋQ"̋Q"̋Q"̋Q"̋Q"̋Q"̋Q"͋Q"͋Q"͋Q"͋Q"΋Q"΋Q"΋Q"΋Q"΋Q"΋Q"ϋQ"ϋQ"ϋQ"ϋQ"ϋQ"ЋQ"ЋQ"ЋQ"ЋQ"ЋQ"ЋQ"ыQ"ыQ"ыQ"ыQ"ҋQ"ҋQ"ҋQ"ҋQ"ҋQ"ӋQ"ӋQ"ӋQ"ӋQ"ӋQ"ӋQ"ԋQ"ԋQ"ԋQ"ԋQ"ԋQ"ԋQ"ՋQ"ՋQ"ՋQ"ՋQ"ՋQ"֋Q"֋Q"֋Q"֋Q"׋Q"׋Q"׋Q"׋Q"׋Q"׋Q"׋Q"׋Q"؋Q"؋Q"؋Q"؋Q"؋Q"ًQ"ًQ"ًQ"ًQ"ًQ"ًQ"ًQ"ڋQ"ڋQ"ڋQ"ڋQ"ۋQ"ۋQ"ۋQ"ۋQ"ۋQ"ۋQ"ۋQ"܋Q"܋Q"܋Q"܋Q"܋Q"܋Q"܋Q"܋Q"݋Q"݋Q"݋Q"݋Q"ދQ"ދQ"ދQ"ދQ"ދQ"ދQ"ދQ"ߋQ"ߋQ"ߋQ"ߋQ"ߋQ"ߋQ"ߋQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"职Q"Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"ȃQ"؃Q"Q"Q"Q"Q"Q"ȄQ"Q"Q"Q"Q"Q"腌Q"Q"Q"Q"Q"ІQ"؆Q"膌Q"Q"Q"Q"Q"Q"臌Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЊQ"؊Q"Q"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"ȑQ"葌Q"Q"Q"Q"Q"ȒQ"Q"Q"Q"Q"Q"蓌Q"Q"Q"Q"Q"ДQ"ؔQ"蔌Q"Q"Q"Q"Q"Q"蕌Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"蘌Q"Q"Q"Q"Q"șQ"ЙQ"Q"虌Q"Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"Q"蛌Q"Q"Q"Q"ȜQ"蜌Q"Q"Q"Q"ȝQ"НQ"Q"Q"Q"Q"Q"螌Q"Q"Q"ȟQ"ПQ"Q"蟌Q"Q"Q"Q"Q"ؠQ"ࠌQ"Q"Q"Q"ȡQ"Q"Q"Q"Q"袌Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"ऌQ"褌Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"ৌQ"Q"Q"Q"Q"ȨQ"訌Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ૌQ"諌Q"Q"Q"Q"Q"ȬQ"ЬQ"ଌQ"謌Q"Q"Q"Q"Q"ȭQ"ЭQ"حQ"ୌQ"Q"Q"Q"Q"Q"ȮQ"Q"Q"Q"Q"诌Q"Q"Q"Q"Q"аQ"ذQ"谌Q"Q"Q"Q"Q"бQ"رQ"ౌQ"豌Q"Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"شQ"ഌQ"Q"Q"Q"Q"Q"ȵQ"صQ"ൌQ"赌Q"Q"Q"Q"Q"ȶQ"жQ"ضQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ฌQ"踌Q"Q"Q"Q"Q"ȹQ"йQ"์Q"蹌Q"Q"Q"Q"Q"ȺQ"кQ"غQ"ຌQ"Q"Q"Q"Q"Q"ȻQ"Q"Q"Q"Q"Q"Q"輌Q"Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"оQ"ؾQ"ྌQ"辌Q"Q"Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ÌQ"ÌQ"ÌQ"ÌQ"ÌQ"ÌQ"ČQ"ČQ"ČQ"ČQ"ČQ"ČQ"ČQ"ŌQ"ŌQ"ŌQ"ŌQ"ŌQ"ŌQ"ŌQ"ŌQ"ƌQ"ƌQ"ƌQ"ƌQ"ƌQ"ƌQ"ƌQ"ƌQ"ƌQ"njQ"njQ"njQ"njQ"njQ"njQ"ȌQ"ȌQ"ȌQ"ȌQ"ȌQ"ɌQ"ɌQ"ɌQ"ɌQ"ɌQ"ɌQ"ɌQ"ɌQ"ʌQ"ʌQ"ʌQ"ʌQ"ʌQ"ʌQ"ˌQ"ˌQ"ˌQ"ˌQ"̌Q"̌Q"̌Q"̌Q"̌Q"̌Q"͌Q"͌Q"͌Q"͌Q"ΌQ"ΌQ"ΌQ"ΌQ"ΌQ"ΌQ"ΌQ"όQ"όQ"όQ"όQ"ЌQ"ЌQ"ЌQ"ЌQ"ЌQ"ьQ"ьQ"ьQ"ьQ"ҌQ"ҌQ"ҌQ"ҌQ"ҌQ"ҌQ"ӌQ"ӌQ"ӌQ"ӌQ"ӌQ"ԌQ"ԌQ"ԌQ"ԌQ"ԌQ"ՌQ"ՌQ"ՌQ"ՌQ"ՌQ"֌Q"֌Q"֌Q"֌Q"֌Q"֌Q"׌Q"׌Q"׌Q"׌Q"׌Q"،Q"،Q"،Q"،Q"،Q"،Q"ٌQ"ٌQ"ٌQ"ٌQ"ٌQ"ٌQ"ڌQ"ڌQ"ڌQ"ڌQ"ڌQ"ڌQ"ڌQ"یQ"یQ"یQ"یQ"یQ"یQ"܌Q"܌Q"܌Q"܌Q"܌Q"܌Q"݌Q"݌Q"݌Q"݌Q"݌Q"݌Q"݌Q"ތQ"ތQ"ތQ"ތQ"ތQ"ތQ"ތQ"ߌQ"ߌQ"ߌQ"ߌQ"ߌQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؁Q"Q"聍Q"Q"Q"Q"Q"Q"Q"Q"Q"ЃQ"؃Q"胍Q"Q"Q"Q"Q"ЄQ"Q"脍Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"Q"Q"膍Q"Q"Q"Q"ȇQ"臍Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"艍Q"Q"Q"Q"Q"ȊQ"芍Q"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"荍Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"ȒQ"蒍Q"Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蕍Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"ȘQ"Q"Q"Q"Q"虍Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"ЛQ"Q"蛍Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؞Q"Q"Q"Q"Q"ȟQ"؟Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"ءQ"ࡍQ"Q"Q"Q"Q"ࢍQ"袍Q"Q"Q"Q"ȣQ"УQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"्Q"Q"Q"Q"ȦQ"覍Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"੍Q"詍Q"Q"Q"Q"ȪQ"ЪQ"ઍQ"Q"Q"Q"Q"Q"ȫQ"ثQ"્Q"Q"Q"Q"ȬQ"Q"Q"Q"Q"譍Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"ЯQ"்Q"词Q"Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"಍Q"貍Q"Q"Q"Q"Q"ȳQ"賍Q"Q"Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ඍQ"趍Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"ȸQ"ظQ"ญQ"Q"Q"Q"Q"ȹQ"Q"Q"Q"Q"Q"Q"躍Q"Q"Q"Q"Q"Q"лQ"ػQ"軍Q"Q"Q"Q"Q"།Q"輍Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ÍQ"ÍQ"ÍQ"ÍQ"ÍQ"čQ"čQ"čQ"čQ"čQ"ōQ"ōQ"ōQ"ōQ"ōQ"ƍQ"ƍQ"ƍQ"ƍQ"ƍQ"ƍQ"ƍQ"ǍQ"ǍQ"ǍQ"ǍQ"ǍQ"ȍQ"ȍQ"ȍQ"ȍQ"ȍQ"ȍQ"ɍQ"ɍQ"ɍQ"ɍQ"ɍQ"ɍQ"ʍQ"ʍQ"ʍQ"ʍQ"ʍQ"ʍQ"ˍQ"ˍQ"ˍQ"ˍQ"ˍQ"ˍQ"̍Q"̍Q"̍Q"̍Q"̍Q"̍Q"̍Q"͍Q"͍Q"͍Q"͍Q"͍Q"΍Q"΍Q"΍Q"΍Q"΍Q"΍Q"ύQ"ύQ"ύQ"ύQ"ύQ"ύQ"ύQ"ύQ"ЍQ"ЍQ"ЍQ"ЍQ"ЍQ"ЍQ"ЍQ"эQ"эQ"эQ"эQ"эQ"эQ"эQ"ҍQ"ҍQ"ҍQ"ҍQ"ҍQ"ӍQ"ӍQ"ӍQ"ӍQ"ӍQ"ӍQ"ӍQ"ӍQ"ԍQ"ԍQ"ԍQ"ԍQ"ԍQ"ԍQ"ԍQ"ՍQ"ՍQ"ՍQ"ՍQ"ՍQ"ՍQ"ՍQ"ՍQ"֍Q"֍Q"֍Q"֍Q"֍Q"֍Q"׍Q"׍Q"׍Q"׍Q"׍Q"؍Q"؍Q"؍Q"؍Q"؍Q"؍Q"؍Q"ٍQ"ٍQ"ٍQ"ٍQ"ٍQ"ٍQ"ٍQ"ٍQ"ڍQ"ڍQ"ڍQ"ڍQ"ڍQ"ڍQ"ۍQ"ۍQ"ۍQ"ۍQ"ۍQ"ۍQ"܍Q"܍Q"܍Q"܍Q"܍Q"܍Q"܍Q"ݍQ"ݍQ"ݍQ"ݍQ"ݍQ"ݍQ"ݍQ"ލQ"ލQ"ލQ"ލQ"ލQ"ލQ"ߍQ"ߍQ"ߍQ"ߍQ"ߍQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؁Q"Q"Q"Q"Q"Q"Q"肎Q"Q"Q"Q"ȃQ"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"Q"Q"腎Q"Q"Q"Q"ȆQ"Q"Q"Q"Q"Q"臎Q"Q"Q"ȈQ"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"芎Q"Q"Q"Q"Q"ȋQ"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"荎Q"Q"Q"Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"Q"ȏQ"؏Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"Q"Q"葎Q"Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"蓎Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"ȗQ"ЗQ"ؗQ"藎Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"ȞQ"螎Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"ࡎQ"衎Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"أQ"࣎Q"Q"Q"Q"ȤQ"Q"Q"Q"Q"襎Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"討Q"Q"Q"Q"ЩQ"ةQ"詎Q"Q"Q"Q"Q"ЪQ"઎Q"誎Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"خQ"எQ"Q"Q"Q"ȯQ"Q"Q"Q"Q"Q"谎Q"Q"Q"Q"бQ"رQ"豎Q"Q"Q"Q"Q"ಎQ"貎Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"еQ"صQ"Q"Q"Q"Q"жQ"ඎQ"趎Q"Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"عQ"๎Q"Q"Q"Q"ȺQ"躎Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"ཎQ"轎Q"Q"Q"Q"Q"ȾQ"оQ"ྎQ"Q"Q"Q"Q"Q"ȿQ"ؿQ"࿎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ŽQ"ŽQ"ŽQ"ŽQ"ŽQ"ŽQ"ŽQ"ÎQ"ÎQ"ÎQ"ÎQ"ÎQ"ÎQ"ĎQ"ĎQ"ĎQ"ĎQ"ŎQ"ŎQ"ŎQ"ŎQ"ŎQ"ŎQ"ƎQ"ƎQ"ƎQ"ƎQ"ƎQ"ƎQ"ǎQ"ǎQ"ǎQ"ǎQ"ǎQ"ǎQ"ǎQ"ȎQ"ȎQ"ȎQ"ȎQ"ɎQ"ɎQ"ɎQ"ɎQ"ɎQ"ʎQ"ʎQ"ʎQ"ʎQ"ʎQ"ʎQ"ʎQ"ˎQ"ˎQ"ˎQ"ˎQ"ˎQ"ˎQ"ˎQ"ˎQ"̎Q"̎Q"̎Q"̎Q"̎Q"̎Q"͎Q"͎Q"͎Q"͎Q"͎Q"͎Q"ΎQ"ΎQ"ΎQ"ΎQ"ΎQ"ΎQ"ώQ"ώQ"ώQ"ώQ"ώQ"ώQ"ЎQ"ЎQ"ЎQ"ЎQ"ЎQ"юQ"юQ"юQ"юQ"юQ"ҎQ"ҎQ"ҎQ"ҎQ"ҎQ"ҎQ"ӎQ"ӎQ"ӎQ"ӎQ"ӎQ"ԎQ"ԎQ"ԎQ"ԎQ"ԎQ"ԎQ"ՎQ"ՎQ"ՎQ"ՎQ"ՎQ"֎Q"֎Q"֎Q"֎Q"֎Q"׎Q"׎Q"׎Q"׎Q"׎Q"׎Q"׎Q"؎Q"؎Q"؎Q"؎Q"؎Q"؎Q"َQ"َQ"َQ"َQ"َQ"ڎQ"ڎQ"ڎQ"ڎQ"ڎQ"ڎQ"ێQ"ێQ"ێQ"ێQ"܎Q"܎Q"܎Q"܎Q"܎Q"܎Q"܎Q"ݎQ"ݎQ"ݎQ"ݎQ"ݎQ"ގQ"ގQ"ގQ"ގQ"ގQ"ގQ"ߎQ"ߎQ"ߎQ"ߎQ"ߎQ"ߎQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"Q"ȃQ"؃Q"胏Q"Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"膏Q"Q"Q"Q"ȇQ"ЇQ"Q"Q"Q"Q"Q"ȈQ"؈Q"Q"Q"Q"Q"Q"ȉQ"Q"Q"Q"Q"Q"芏Q"Q"Q"Q"Q"ЋQ"؋Q"苏Q"Q"Q"Q"Q"ЌQ"Q"茏Q"Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؏Q"Q"菏Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"萏Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蓏Q"Q"Q"Q"ȔQ"蔏Q"Q"Q"Q"Q"蕏Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"藏Q"Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"țQ"蛏Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"蝏Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ءQ"ࡏQ"Q"Q"Q"ȢQ"آQ"袏Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ॏQ"襏Q"Q"Q"ȦQ"ЦQ"規Q"Q"Q"Q"Q"ȧQ"اQ"৏Q"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"詏Q"Q"Q"Q"Q"ЪQ"تQ"誏Q"Q"Q"Q"Q"ЫQ"૏Q"諏Q"Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"譏Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"ЯQ"௏Q"诏Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಏQ"Q"Q"Q"Q"ȳQ"سQ"賏Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ඏQ"趏Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"ȸQ"ظQ"ฏQ"Q"Q"Q"ȹQ"Q"Q"Q"Q"躏Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"мQ"༏Q"輏Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"Q"ؿQ"࿏Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ÏQ"ÏQ"ÏQ"ÏQ"ÏQ"ďQ"ďQ"ďQ"ďQ"ďQ"ŏQ"ŏQ"ŏQ"ŏQ"ŏQ"ƏQ"ƏQ"ƏQ"ƏQ"ƏQ"ƏQ"ǏQ"ǏQ"ǏQ"ǏQ"ǏQ"ȏQ"ȏQ"ȏQ"ȏQ"ȏQ"ȏQ"ȏQ"ɏQ"ɏQ"ɏQ"ɏQ"ɏQ"ʏQ"ʏQ"ʏQ"ʏQ"ʏQ"ʏQ"ˏQ"ˏQ"ˏQ"ˏQ"ˏQ"̏Q"̏Q"̏Q"̏Q"̏Q"͏Q"͏Q"͏Q"͏Q"͏Q"͏Q"ΏQ"ΏQ"ΏQ"ΏQ"ΏQ"ΏQ"ΏQ"ϏQ"ϏQ"ϏQ"ϏQ"ϏQ"ЏQ"ЏQ"ЏQ"ЏQ"ЏQ"яQ"яQ"яQ"яQ"яQ"яQ"яQ"ҏQ"ҏQ"ҏQ"ҏQ"ҏQ"ӏQ"ӏQ"ӏQ"ӏQ"ӏQ"ӏQ"ӏQ"ԏQ"ԏQ"ԏQ"ԏQ"ԏQ"ՏQ"ՏQ"ՏQ"ՏQ"ՏQ"ՏQ"ՏQ"ՏQ"֏Q"֏Q"֏Q"֏Q"֏Q"֏Q"֏Q"֏Q"׏Q"׏Q"׏Q"׏Q"׏Q"׏Q"׏Q"׏Q"؏Q"؏Q"؏Q"؏Q"؏Q"؏Q"ُQ"ُQ"ُQ"ُQ"ُQ"ُQ"ُQ"ڏQ"ڏQ"ڏQ"ڏQ"ڏQ"ڏQ"ڏQ"ۏQ"ۏQ"ۏQ"ۏQ"ۏQ"ۏQ"ۏQ"ۏQ"܏Q"܏Q"܏Q"܏Q"܏Q"ݏQ"ݏQ"ݏQ"ݏQ"ݏQ"ݏQ"ޏQ"ޏQ"ޏQ"ޏQ"ޏQ"ޏQ"ޏQ"ޏQ"ߏQ"ߏQ"ߏQ"ߏQ"ߏQ"ߏQ"ߏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耐Q"Q"Q"Q"ЁQ"؁Q"聐Q"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"Q"ȃQ"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"ȅQ"؅Q"腐Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"Q"Q"艐Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"Q"Q"Q"荐Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"菐Q"Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"Q"ȒQ"Q"Q"Q"Q"Q"蓐Q"Q"Q"Q"Q"ȔQ"蔐Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЗQ"ؗQ"Q"Q"Q"Q"ИQ"Q"蘐Q"Q"Q"Q"șQ"Q"Q"Q"Q"Q"Q"蚐Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"ПQ"Q"蟐Q"Q"Q"Q"ȠQ"РQ"Q"Q"Q"Q"Q"衐Q"Q"Q"Q"ТQ"آQ"袐Q"Q"Q"Q"Q"УQ"࣐Q"裐Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئQ"ঐQ"Q"Q"Q"Q"Q"৐Q"觐Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"تQ"ઐQ"誐Q"Q"Q"Q"ȫQ"ЫQ"諐Q"Q"Q"Q"Q"Q"ЬQ"جQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ஐQ"讐Q"Q"Q"Q"ȯQ"ЯQ"دQ"ௐQ"诐Q"Q"Q"Q"Q"Q"ذQ"ఐQ"Q"Q"Q"ȱQ"Q"Q"Q"Q"Q"Q"貐Q"Q"Q"Q"Q"Q"гQ"سQ"೐Q"賐Q"Q"Q"Q"Q"ȴQ"дQ"شQ"ഐQ"贐Q"Q"Q"Q"ȵQ"Q"Q"Q"Q"Q"Q"趐Q"Q"Q"Q"Q"Q"зQ"طQ"ැQ"Q"Q"Q"Q"ȸQ"иQ"ظQ"ฐQ"踐Q"Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ػQ"໐Q"軐Q"Q"Q"Q"Q"ȼQ"мQ"ؼQ"輐Q"Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"࿐Q"运Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ÐQ"ÐQ"ÐQ"ÐQ"ÐQ"ÐQ"ÐQ"ÐQ"ÐQ"ĐQ"ĐQ"ĐQ"ĐQ"ŐQ"ŐQ"ŐQ"ŐQ"ƐQ"ƐQ"ƐQ"ƐQ"ƐQ"ƐQ"ǐQ"ǐQ"ǐQ"ǐQ"ǐQ"ȐQ"ȐQ"ȐQ"ȐQ"ȐQ"ɐQ"ɐQ"ɐQ"ɐQ"ʐQ"ʐQ"ʐQ"ʐQ"ʐQ"ʐQ"ːQ"ːQ"ːQ"ːQ"̐Q"̐Q"̐Q"̐Q"̐Q"̐Q"͐Q"͐Q"͐Q"͐Q"ΐQ"ΐQ"ΐQ"ΐQ"ΐQ"ϐQ"ϐQ"ϐQ"ϐQ"ϐQ"АQ"АQ"АQ"АQ"АQ"АQ"ѐQ"ѐQ"ѐQ"ѐQ"ҐQ"ҐQ"ҐQ"ҐQ"ӐQ"ӐQ"ӐQ"ӐQ"ӐQ"ӐQ"ԐQ"ԐQ"ԐQ"ԐQ"ԐQ"ՐQ"ՐQ"ՐQ"ՐQ"ՐQ"֐Q"֐Q"֐Q"֐Q"אQ"אQ"אQ"אQ"אQ"אQ"ؐQ"ؐQ"ؐQ"ؐQ"ِQ"ِQ"ِQ"ِQ"ِQ"ِQ"ڐQ"ڐQ"ڐQ"ڐQ"ېQ"ېQ"ېQ"ېQ"ېQ"ܐQ"ܐQ"ܐQ"ܐQ"ܐQ"ݐQ"ݐQ"ݐQ"ݐQ"ݐQ"ݐQ"ސQ"ސQ"ސQ"ސQ"ߐQ"ߐQ"ߐQ"ߐQ"ߐQ"ߐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耑Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"ȃQ"Q"Q"Q"Q"脑Q"Q"Q"Q"ЅQ"؅Q"Q"Q"Q"Q"Q"膑Q"Q"Q"ȇQ"ЇQ"Q"Q"Q"Q"Q"Q"Q"Q"؉Q"Q"Q"Q"Q"ȊQ"芑Q"Q"Q"Q"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"荑Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"葑Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"蓑Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"Q"Q"藑Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"Q"țQ"؛Q"蛑Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"Q"衑Q"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"УQ"࣑Q"裑Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئQ"঑Q"Q"Q"Q"ȧQ"觑Q"Q"Q"Q"ШQ"بQ"Q"Q"Q"Q"Q"Q"Q"Q"ઑQ"誑Q"Q"Q"Q"Q"ȫQ"ЫQ"ثQ"૑Q"Q"Q"Q"Q"جQ"଑Q"Q"Q"Q"ȭQ"Q"Q"Q"Q"讑Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"аQ"఑Q"谑Q"Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"Q"Q"貑Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"഑Q"贑Q"Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"ෑQ"Q"Q"Q"ȸQ"ظQ"踑Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"Q"Q"Q"Q"໑Q"軑Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"ؽQ"དQ"Q"Q"Q"ȾQ"Q"Q"Q"Q"近Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"‘Q"‘Q"‘Q"‘Q"‘Q"ÑQ"ÑQ"ÑQ"ÑQ"ÑQ"ÑQ"ÑQ"đQ"đQ"đQ"đQ"đQ"őQ"őQ"őQ"őQ"őQ"őQ"őQ"őQ"ƑQ"ƑQ"ƑQ"ƑQ"ƑQ"ƑQ"ǑQ"ǑQ"ǑQ"ǑQ"ǑQ"ǑQ"ȑQ"ȑQ"ȑQ"ȑQ"ȑQ"ȑQ"ɑQ"ɑQ"ɑQ"ɑQ"ɑQ"ɑQ"ɑQ"ʑQ"ʑQ"ʑQ"ʑQ"ʑQ"ʑQ"ˑQ"ˑQ"ˑQ"ˑQ"ˑQ"ˑQ"ˑQ"ˑQ"̑Q"̑Q"̑Q"̑Q"̑Q"̑Q"̑Q"̑Q"̑Q"͑Q"͑Q"͑Q"͑Q"͑Q"͑Q"͑Q"͑Q"ΑQ"ΑQ"ΑQ"ΑQ"ΑQ"ΑQ"ΑQ"ϑQ"ϑQ"ϑQ"ϑQ"ϑQ"БQ"БQ"БQ"БQ"БQ"БQ"БQ"БQ"БQ"ёQ"ёQ"ёQ"ёQ"ёQ"ёQ"ёQ"ёQ"ґQ"ґQ"ґQ"ґQ"ґQ"ґQ"ґQ"ӑQ"ӑQ"ӑQ"ӑQ"ӑQ"ԑQ"ԑQ"ԑQ"ԑQ"ԑQ"ԑQ"ԑQ"ՑQ"ՑQ"ՑQ"ՑQ"ՑQ"ՑQ"ՑQ"ՑQ"֑Q"֑Q"֑Q"֑Q"֑Q"֑Q"בQ"בQ"בQ"בQ"בQ"בQ"ؑQ"ؑQ"ؑQ"ؑQ"ؑQ"ؑQ"ؑQ"ّQ"ّQ"ّQ"ّQ"ّQ"ّQ"ّQ"ّQ"ّQ"ڑQ"ڑQ"ڑQ"ڑQ"ڑQ"ڑQ"ڑQ"ڑQ"ۑQ"ۑQ"ۑQ"ۑQ"ۑQ"ۑQ"ܑQ"ܑQ"ܑQ"ܑQ"ܑQ"ܑQ"ݑQ"ݑQ"ݑQ"ݑQ"ݑQ"ݑQ"ݑQ"ݑQ"ݑQ"ޑQ"ޑQ"ޑQ"ޑQ"ޑQ"ޑQ"ޑQ"ޑQ"ߑQ"ߑQ"ߑQ"ߑQ"ߑQ"ߑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"耒Q"Q"Q"Q"Q"Q"ȁQ"؁Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"Q"؃Q"Q"胒Q"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"膒Q"Q"Q"Q"ЇQ"؇Q"Q"Q"Q"Q"Q"舒Q"Q"Q"Q"艒Q"Q"Q"Q"ЊQ"؊Q"芒Q"Q"Q"Q"Q"ȋQ"ЋQ"؋Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"荒Q"Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"ȏQ"؏Q"Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"Q"葒Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"Q"ȔQ"Q"Q"Q"Q"Q"蕒Q"Q"Q"Q"ЖQ"ؖQ"薒Q"Q"Q"Q"Q"ЗQ"Q"藒Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"țQ"؛Q"蛒Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"螒Q"Q"Q"ȟQ"ПQ"Q"Q"Q"Q"Q"ؠQ"ࠒQ"Q"Q"Q"ȡQ"Q"Q"Q"Q"Q"袒Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"ФQ"ऒQ"褒Q"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"৒Q"Q"Q"Q"ȨQ"訒Q"Q"Q"Q"ЩQ"ةQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"૒Q"諒Q"Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"حQ"୒Q"Q"Q"Q"ȮQ"Q"Q"Q"Q"诒Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"౒Q"豒Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"Q"Q"Q"شQ"ഒQ"Q"Q"Q"Q"൒Q"赒Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"ȹQ"йQ"๒Q"蹒Q"Q"Q"Q"Q"ȺQ"кQ"Q"Q"Q"Q"Q"Q"Q"Q"ؼQ"༒Q"Q"Q"Q"ȽQ"ؽQ"轒Q"Q"Q"Q"Q"Q"оQ"ؾQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"’Q"’Q"’Q"’Q"ÒQ"ÒQ"ÒQ"ÒQ"ĒQ"ĒQ"ĒQ"ĒQ"ĒQ"ĒQ"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ŒQ"ƒQ"ƒQ"ƒQ"ƒQ"ǒQ"ǒQ"ǒQ"ǒQ"ǒQ"ǒQ"ȒQ"ȒQ"ȒQ"ȒQ"ȒQ"ȒQ"ȒQ"ɒQ"ɒQ"ɒQ"ɒQ"ɒQ"ɒQ"ʒQ"ʒQ"ʒQ"ʒQ"ʒQ"˒Q"˒Q"˒Q"˒Q"˒Q"˒Q"˒Q"̒Q"̒Q"̒Q"̒Q"̒Q"̒Q"͒Q"͒Q"͒Q"͒Q"͒Q"͒Q"͒Q"ΒQ"ΒQ"ΒQ"ΒQ"ϒQ"ϒQ"ϒQ"ϒQ"ϒQ"ϒQ"ВQ"ВQ"ВQ"ВQ"ВQ"ВQ"ђQ"ђQ"ђQ"ђQ"ђQ"ђQ"ђQ"ҒQ"ҒQ"ҒQ"ҒQ"ҒQ"ӒQ"ӒQ"ӒQ"ӒQ"ӒQ"ԒQ"ԒQ"ԒQ"ԒQ"ԒQ"ԒQ"ԒQ"ԒQ"ՒQ"ՒQ"ՒQ"ՒQ"ՒQ"ՒQ"ՒQ"ՒQ"֒Q"֒Q"֒Q"֒Q"֒Q"גQ"גQ"גQ"גQ"גQ"גQ"גQ"ؒQ"ؒQ"ؒQ"ؒQ"ؒQ"ؒQ"ْQ"ْQ"ْQ"ْQ"ْQ"ڒQ"ڒQ"ڒQ"ڒQ"ڒQ"ےQ"ےQ"ےQ"ےQ"ܒQ"ܒQ"ܒQ"ܒQ"ܒQ"ܒQ"ܒQ"ݒQ"ݒQ"ݒQ"ݒQ"ݒQ"ݒQ"ݒQ"ޒQ"ޒQ"ޒQ"ޒQ"ޒQ"ߒQ"ߒQ"ߒQ"ߒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"耓Q"Q"Q"Q"ȁQ"聓Q"Q"Q"Q"Q"肓Q"Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"脓Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"ȈQ"舓Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"苓Q"Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"ȍQ"؍Q"Q"Q"Q"Q"Q"ȎQ"Q"Q"Q"Q"Q"菓Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"Q"葓Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"ȕQ"ЕQ"蕓Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蘓Q"Q"Q"Q"șQ"ЙQ"Q"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"țQ"Q"Q"Q"Q"Q"蜓Q"Q"Q"Q"ȝQ"蝓Q"Q"Q"Q"ȞQ"ОQ"Q"Q"Q"Q"Q"蟓Q"Q"Q"ȠQ"РQ"Q"Q"Q"Q"СQ"ءQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"࣓Q"裓Q"Q"Q"Q"ȤQ"ФQ"ओQ"Q"Q"Q"Q"ȥQ"إQ"॓Q"Q"Q"Q"Q"ȦQ"Q"Q"Q"Q"Q"觓Q"Q"Q"Q"Q"ШQ"بQ"訓Q"Q"Q"Q"Q"ЩQ"੓Q"詓Q"Q"Q"Q"ȪQ"ЪQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"جQ"ଓQ"Q"Q"Q"Q"ȭQ"ЭQ"حQ"譓Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ఓQ"谓Q"Q"Q"Q"ȱQ"бQ"౓Q"Q"Q"Q"Q"ȲQ"زQ"ಓQ"Q"Q"Q"Q"ȳQ"Q"Q"Q"Q"Q"Q"贓Q"Q"Q"Q"Q"Q"еQ"صQ"Q"Q"Q"Q"ඓQ"趓Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"عQ"๓Q"Q"Q"Q"ȺQ"غQ"躓Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ནQ"轓Q"Q"Q"Q"ȾQ"оQ"Q"Q"Q"Q"ȿQ"ؿQ"࿓Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"“Q"“Q"“Q"“Q"“Q"“Q"ÓQ"ÓQ"ÓQ"ÓQ"ÓQ"ÓQ"ēQ"ēQ"ēQ"ēQ"œQ"œQ"œQ"œQ"œQ"œQ"œQ"ƓQ"ƓQ"ƓQ"ƓQ"ǓQ"ǓQ"ǓQ"ǓQ"ǓQ"ǓQ"ǓQ"ǓQ"ȓQ"ȓQ"ȓQ"ȓQ"ɓQ"ɓQ"ɓQ"ɓQ"ɓQ"ʓQ"ʓQ"ʓQ"ʓQ"ʓQ"ʓQ"ʓQ"ʓQ"˓Q"˓Q"˓Q"˓Q"˓Q"˓Q"˓Q"̓Q"̓Q"̓Q"̓Q"̓Q"͓Q"͓Q"͓Q"͓Q"͓Q"ΓQ"ΓQ"ΓQ"ΓQ"ΓQ"ΓQ"ΓQ"ϓQ"ϓQ"ϓQ"ϓQ"ϓQ"ϓQ"ϓQ"ГQ"ГQ"ГQ"ГQ"ГQ"ѓQ"ѓQ"ѓQ"ѓQ"ғQ"ғQ"ғQ"ғQ"ғQ"ғQ"ғQ"ғQ"ӓQ"ӓQ"ӓQ"ӓQ"ӓQ"ӓQ"ӓQ"ԓQ"ԓQ"ԓQ"ԓQ"ԓQ"ԓQ"ՓQ"ՓQ"ՓQ"ՓQ"ՓQ"֓Q"֓Q"֓Q"֓Q"֓Q"֓Q"דQ"דQ"דQ"דQ"ؓQ"ؓQ"ؓQ"ؓQ"ؓQ"ؓQ"ؓQ"ؓQ"ٓQ"ٓQ"ٓQ"ٓQ"ٓQ"ړQ"ړQ"ړQ"ړQ"ړQ"ړQ"ۓQ"ۓQ"ۓQ"ۓQ"ۓQ"ۓQ"ܓQ"ܓQ"ܓQ"ܓQ"ܓQ"ܓQ"ܓQ"ݓQ"ݓQ"ݓQ"ݓQ"ݓQ"ޓQ"ޓQ"ޓQ"ޓQ"ޓQ"ߓQ"ߓQ"ߓQ"ߓQ"ߓQ"ߓQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耔Q"Q"Q"Q"Q"ȁQ"؁Q"Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"胔Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"腔Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"ȉQ"艔Q"Q"Q"Q"ЊQ"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"ȍQ"荔Q"Q"Q"Q"Q"Q"ЎQ"؎Q"Q"Q"Q"Q"菔Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蓔Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"ȕQ"ؕQ"Q"Q"Q"Q"Q"ȖQ"Q"Q"Q"Q"Q"藔Q"Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"șQ"ؙQ"Q"Q"Q"Q"ؚQ"Q"Q"Q"Q"țQ"蛔Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"螔Q"Q"Q"Q"ȟQ"蟔Q"Q"Q"Q"ȠQ"РQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"آQ"࢔Q"Q"Q"Q"ȣQ"أQ"裔Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"ȧQ"اQ"৔Q"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"詔Q"Q"Q"Q"ЪQ"تQ"誔Q"Q"Q"Q"Q"ЫQ"૔Q"諔Q"Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"خQ"ஔQ"Q"Q"Q"ȯQ"诔Q"Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಔQ"Q"Q"Q"ȳQ"賔Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"ඔQ"Q"Q"Q"ȷQ"طQ"ුQ"Q"Q"Q"Q"ȸQ"Q"Q"Q"Q"蹔Q"Q"Q"Q"Q"кQ"غQ"躔Q"Q"Q"Q"Q"໔Q"軔Q"Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؾQ"ྔQ"Q"Q"Q"ȿQ"пQ"ؿQ"返Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"”Q"”Q"”Q"”Q"ÔQ"ÔQ"ÔQ"ÔQ"ÔQ"ÔQ"ĔQ"ĔQ"ĔQ"ĔQ"ŔQ"ŔQ"ŔQ"ŔQ"ŔQ"ƔQ"ƔQ"ƔQ"ƔQ"ƔQ"ƔQ"ǔQ"ǔQ"ǔQ"ǔQ"ǔQ"ǔQ"ȔQ"ȔQ"ȔQ"ȔQ"ȔQ"ɔQ"ɔQ"ɔQ"ɔQ"ɔQ"ɔQ"ʔQ"ʔQ"ʔQ"ʔQ"ʔQ"ʔQ"ʔQ"ʔQ"ʔQ"˔Q"˔Q"˔Q"˔Q"˔Q"˔Q"˔Q"˔Q"̔Q"̔Q"̔Q"̔Q"̔Q"͔Q"͔Q"͔Q"͔Q"ΔQ"ΔQ"ΔQ"ΔQ"ΔQ"ΔQ"ΔQ"ϔQ"ϔQ"ϔQ"ϔQ"ϔQ"ϔQ"ДQ"ДQ"ДQ"ДQ"ДQ"ДQ"єQ"єQ"єQ"єQ"єQ"ҔQ"ҔQ"ҔQ"ҔQ"ҔQ"ҔQ"ҔQ"ҔQ"ӔQ"ӔQ"ӔQ"ӔQ"ԔQ"ԔQ"ԔQ"ԔQ"ԔQ"ԔQ"ՔQ"ՔQ"ՔQ"ՔQ"ՔQ"֔Q"֔Q"֔Q"֔Q"֔Q"֔Q"הQ"הQ"הQ"הQ"הQ"הQ"הQ"הQ"הQ"ؔQ"ؔQ"ؔQ"ؔQ"ٔQ"ٔQ"ٔQ"ٔQ"ٔQ"ڔQ"ڔQ"ڔQ"ڔQ"ڔQ"ڔQ"۔Q"۔Q"۔Q"۔Q"۔Q"۔Q"ܔQ"ܔQ"ܔQ"ܔQ"ܔQ"ݔQ"ݔQ"ݔQ"ݔQ"ݔQ"ޔQ"ޔQ"ޔQ"ޔQ"ޔQ"ޔQ"ߔQ"ߔQ"ߔQ"ߔQ"ߔQ"ߔQ"ߔQ"ߔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耕Q"Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"胕Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"ЅQ"Q"腕Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"ȉQ"؉Q"艕Q"Q"Q"Q"Q"ЊQ"؊Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"茕Q"Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"Q"ȎQ"؎Q"Q"Q"Q"Q"Q"ȏQ"Q"Q"Q"Q"Q"萕Q"Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"蒕Q"Q"Q"Q"ȓQ"ГQ"Q"Q"Q"Q"Q"Q"Q"Q"ؕQ"Q"Q"Q"Q"Q"ȖQ"薕Q"Q"Q"Q"Q"ЗQ"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"處Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"Q"țQ"؛Q"Q"Q"Q"Q"Q"ȜQ"Q"Q"Q"Q"Q"蝕Q"Q"Q"Q"Q"ОQ"؞Q"螕Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"ءQ"ࡕQ"Q"Q"Q"ȢQ"آQ"袕Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ॕQ"襕Q"Q"Q"Q"ȦQ"ЦQ"কQ"Q"Q"Q"Q"اQ"৕Q"Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"評Q"Q"Q"Q"ЪQ"تQ"誕Q"Q"Q"Q"Q"ЫQ"૕Q"諕Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"譕Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"௕Q"试Q"Q"Q"Q"谕Q"Q"Q"Q"Q"Q"ȱQ"бQ"豕Q"Q"Q"Q"Q"вQ"زQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"കQ"贕Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"ضQ"ඕQ"Q"Q"Q"ȷQ"Q"Q"Q"Q"踕Q"Q"Q"Q"йQ"عQ"蹕Q"Q"Q"Q"Q"غQ"ຕQ"Q"Q"Q"Q"Q"Q"Q"Q"мQ"ؼQ"Q"Q"Q"Q"ؽQ"ཕQ"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"•Q"•Q"•Q"•Q"•Q"ÕQ"ÕQ"ÕQ"ÕQ"ÕQ"ĕQ"ĕQ"ĕQ"ĕQ"ĕQ"ĕQ"ŕQ"ŕQ"ŕQ"ŕQ"ŕQ"ƕQ"ƕQ"ƕQ"ƕQ"ƕQ"ǕQ"ǕQ"ǕQ"ǕQ"ǕQ"ǕQ"ȕQ"ȕQ"ȕQ"ȕQ"ȕQ"ɕQ"ɕQ"ɕQ"ɕQ"ɕQ"ʕQ"ʕQ"ʕQ"ʕQ"ʕQ"˕Q"˕Q"˕Q"˕Q"˕Q"˕Q"̕Q"̕Q"̕Q"̕Q"̕Q"̕Q"̕Q"͕Q"͕Q"͕Q"͕Q"͕Q"ΕQ"ΕQ"ΕQ"ΕQ"ϕQ"ϕQ"ϕQ"ϕQ"ϕQ"ϕQ"ЕQ"ЕQ"ЕQ"ЕQ"ѕQ"ѕQ"ѕQ"ѕQ"ѕQ"ѕQ"ҕQ"ҕQ"ҕQ"ҕQ"ҕQ"ӕQ"ӕQ"ӕQ"ӕQ"ӕQ"ԕQ"ԕQ"ԕQ"ԕQ"ԕQ"ՕQ"ՕQ"ՕQ"ՕQ"ՕQ"ՕQ"֕Q"֕Q"֕Q"֕Q"וQ"וQ"וQ"וQ"ؕQ"ؕQ"ؕQ"ؕQ"ؕQ"ؕQ"ؕQ"ٕQ"ٕQ"ٕQ"ٕQ"ٕQ"ڕQ"ڕQ"ڕQ"ڕQ"ڕQ"ەQ"ەQ"ەQ"ەQ"ܕQ"ܕQ"ܕQ"ܕQ"ܕQ"ܕQ"ܕQ"ݕQ"ݕQ"ݕQ"ݕQ"ޕQ"ޕQ"ޕQ"ޕQ"ޕQ"ޕQ"ޕQ"ޕQ"ߕQ"ߕQ"ߕQ"ߕQ"ߕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耖Q"Q"Q"Q"ЁQ"؁Q"聖Q"Q"Q"Q"Q"Q"肖Q"Q"Q"Q"ȃQ"ЃQ"Q"Q"Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"ȆQ"膖Q"Q"Q"Q"Q"ЇQ"؇Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"艖Q"Q"Q"Q"ȊQ"ЊQ"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"Q"Q"ȌQ"Q"Q"Q"Q"荖Q"Q"Q"Q"ЎQ"؎Q"莖Q"Q"Q"Q"Q"ȏQ"Q"菖Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؒQ"Q"Q"Q"Q"Q"ȓQ"ГQ"ؓQ"蓖Q"Q"Q"Q"Q"Q"ДQ"ؔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"薖Q"Q"Q"ȗQ"ЗQ"ؗQ"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蚖Q"Q"Q"Q"țQ"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"ȜQ"؜Q"Q"Q"Q"Q"Q"Q"ȝQ"Q"Q"Q"Q"Q"螖Q"Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"РQ"ࠖQ"蠖Q"Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"أQ"ࣖQ"裖Q"Q"Q"Q"Q"ȤQ"ФQ"ؤQ"褖Q"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"৖Q"觖Q"Q"Q"Q"ȨQ"ШQ"بQ"ਖQ"Q"Q"Q"Q"ةQ"੖Q"Q"Q"Q"Q"ȪQ"Q"Q"Q"Q"૖Q"論Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"讖Q"Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"ȰQ"ذQ"ఖQ"Q"Q"Q"ȱQ"Q"Q"Q"Q"Q"貖Q"Q"Q"Q"гQ"سQ"賖Q"Q"Q"Q"Q"ഖQ"贖Q"Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"طQ"ූQ"跖Q"Q"Q"Q"Q"ถQ"踖Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"躖Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"ؼQ"༖Q"Q"Q"Q"Q"Q"Q"Q"Q"ؾQ"ྖQ"辖Q"Q"Q"Q"Q"ȿQ"пQ"ؿQ"迖Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"–Q"–Q"–Q"–Q"ÖQ"ÖQ"ÖQ"ÖQ"ÖQ"ÖQ"ĖQ"ĖQ"ĖQ"ĖQ"ŖQ"ŖQ"ŖQ"ŖQ"ŖQ"ŖQ"ƖQ"ƖQ"ƖQ"ƖQ"ƖQ"ƖQ"ƖQ"ǖQ"ǖQ"ǖQ"ǖQ"ǖQ"ǖQ"ȖQ"ȖQ"ȖQ"ȖQ"ɖQ"ɖQ"ɖQ"ɖQ"ɖQ"ɖQ"ɖQ"ʖQ"ʖQ"ʖQ"ʖQ"ʖQ"ʖQ"˖Q"˖Q"˖Q"˖Q"˖Q"˖Q"̖Q"̖Q"̖Q"̖Q"̖Q"͖Q"͖Q"͖Q"͖Q"͖Q"͖Q"͖Q"ΖQ"ΖQ"ΖQ"ΖQ"ΖQ"ϖQ"ϖQ"ϖQ"ϖQ"ϖQ"ЖQ"ЖQ"ЖQ"ЖQ"іQ"іQ"іQ"іQ"іQ"іQ"ҖQ"ҖQ"ҖQ"ҖQ"ҖQ"ҖQ"ӖQ"ӖQ"ӖQ"ӖQ"ԖQ"ԖQ"ԖQ"ԖQ"ԖQ"ԖQ"ԖQ"ԖQ"ՖQ"ՖQ"ՖQ"ՖQ"ՖQ"ՖQ"ՖQ"֖Q"֖Q"֖Q"֖Q"֖Q"֖Q"זQ"זQ"זQ"זQ"זQ"ؖQ"ؖQ"ؖQ"ؖQ"ؖQ"ؖQ"ٖQ"ٖQ"ٖQ"ٖQ"ٖQ"ٖQ"ږQ"ږQ"ږQ"ږQ"ږQ"ږQ"ۖQ"ۖQ"ۖQ"ۖQ"ܖQ"ܖQ"ܖQ"ܖQ"ܖQ"ܖQ"ݖQ"ݖQ"ݖQ"ݖQ"ݖQ"ޖQ"ޖQ"ޖQ"ޖQ"ޖQ"ߖQ"ߖQ"ߖQ"ߖQ"ߖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"ȁQ"ЁQ"Q"聗Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؄Q"Q"脗Q"Q"Q"Q"Q"ȅQ"腗Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"舗Q"Q"Q"ȉQ"ЉQ"؉Q"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"Q"茗Q"Q"Q"Q"Q"Q"ЍQ"؍Q"荗Q"Q"Q"Q"Q"Q"莗Q"Q"Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"ȒQ"ؒQ"Q"Q"Q"Q"ȓQ"Q"Q"Q"Q"蔗Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"薗Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"ȚQ"蚗Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"ȞQ"؞Q"螗Q"Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ࡗQ"街Q"Q"Q"ȢQ"ТQ"ࢗQ"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"ॗQ"Q"Q"Q"ȦQ"覗Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"੗Q"詗Q"Q"Q"Q"ȪQ"誗Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"謗Q"Q"Q"Q"ȭQ"ЭQ"Q"Q"Q"Q"ȮQ"خQ"஗Q"Q"Q"Q"Q"ȯQ"Q"Q"Q"Q"Q"谗Q"Q"Q"Q"Q"бQ"رQ"豗Q"Q"Q"Q"Q"вQ"ಗQ"貗Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"ഗQ"贗Q"Q"Q"ȵQ"еQ"Q"Q"Q"Q"ضQ"඗Q"Q"Q"Q"ȷQ"Q"Q"Q"Q"踗Q"Q"Q"Q"йQ"عQ"蹗Q"Q"Q"Q"Q"кQ"ທQ"躗Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"བྷQ"Q"Q"Q"ȾQ"оQ"ؾQ"辗Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"—Q"—Q"—Q"—Q"—Q"—Q"×Q"×Q"×Q"×Q"ėQ"ėQ"ėQ"ėQ"ėQ"ŗQ"ŗQ"ŗQ"ŗQ"ŗQ"ŗQ"ŗQ"ƗQ"ƗQ"ƗQ"ƗQ"ƗQ"ƗQ"ƗQ"ǗQ"ǗQ"ǗQ"ǗQ"ȗQ"ȗQ"ȗQ"ȗQ"ɗQ"ɗQ"ɗQ"ɗQ"ɗQ"ɗQ"ʗQ"ʗQ"ʗQ"ʗQ"ʗQ"ʗQ"˗Q"˗Q"˗Q"˗Q"˗Q"̗Q"̗Q"̗Q"̗Q"̗Q"͗Q"͗Q"͗Q"͗Q"͗Q"͗Q"͗Q"ΗQ"ΗQ"ΗQ"ΗQ"ΗQ"ΗQ"ϗQ"ϗQ"ϗQ"ϗQ"ϗQ"ϗQ"ЗQ"ЗQ"ЗQ"ЗQ"ЗQ"їQ"їQ"їQ"їQ"їQ"їQ"җQ"җQ"җQ"җQ"җQ"җQ"ӗQ"ӗQ"ӗQ"ӗQ"ԗQ"ԗQ"ԗQ"ԗQ"ԗQ"ԗQ"՗Q"՗Q"՗Q"՗Q"՗Q"՗Q"՗Q"֗Q"֗Q"֗Q"֗Q"֗Q"חQ"חQ"חQ"חQ"ؗQ"ؗQ"ؗQ"ؗQ"ؗQ"ؗQ"ٗQ"ٗQ"ٗQ"ٗQ"ٗQ"ٗQ"ڗQ"ڗQ"ڗQ"ڗQ"ۗQ"ۗQ"ۗQ"ۗQ"ܗQ"ܗQ"ܗQ"ܗQ"ܗQ"ܗQ"ݗQ"ݗQ"ݗQ"ݗQ"ݗQ"ޗQ"ޗQ"ޗQ"ޗQ"ޗQ"ޗQ"ߗQ"ߗQ"ߗQ"ߗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"ȁQ"؁Q"Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"Q"胘Q"Q"Q"Q"Q"ЄQ"؄Q"脘Q"Q"Q"Q"Q"Q"腘Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"臘Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"苘Q"Q"Q"Q"Q"ȌQ"茘Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"菘Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"ȒQ"Q"Q"Q"Q"Q"蓘Q"Q"Q"Q"ДQ"ؔQ"Q"Q"Q"Q"Q"蕘Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"șQ"虘Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"ȝQ"؝Q"蝘Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"࠘Q"蠘Q"Q"Q"ȡQ"СQ"ࡘQ"Q"Q"Q"Q"ȢQ"آQ"࢘Q"Q"Q"Q"Q"ȣQ"Q"Q"Q"Q"Q"褘Q"Q"Q"Q"Q"ХQ"إQ"襘Q"Q"Q"Q"Q"ЦQ"ঘQ"覘Q"Q"Q"Q"Q"ȧQ"ЧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ةQ"੘Q"詘Q"Q"Q"Q"Q"ȪQ"ЪQ"誘Q"Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"୘Q"識Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"ȯQ"دQ"௘Q"Q"Q"Q"ȰQ"Q"Q"Q"Q"豘Q"Q"Q"Q"вQ"زQ"Q"Q"Q"Q"೘Q"賘Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"඘Q"Q"Q"Q"ȷQ"طQ"跘Q"Q"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"Q"Q"Q"ຘQ"躘Q"Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"ȼQ"ؼQ"༘Q"Q"Q"Q"ȽQ"Q"Q"Q"Q"Q"辘Q"Q"Q"Q"пQ"ؿQ"࿘Q"还Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"˜Q"˜Q"˜Q"˜Q"˜Q"˜Q"ØQ"ØQ"ØQ"ØQ"ØQ"ØQ"ĘQ"ĘQ"ĘQ"ĘQ"ĘQ"ĘQ"ĘQ"ŘQ"ŘQ"ŘQ"ŘQ"ƘQ"ƘQ"ƘQ"ƘQ"ƘQ"ƘQ"ǘQ"ǘQ"ǘQ"ǘQ"ǘQ"ǘQ"ȘQ"ȘQ"ȘQ"ȘQ"ȘQ"ȘQ"ɘQ"ɘQ"ɘQ"ɘQ"ʘQ"ʘQ"ʘQ"ʘQ"˘Q"˘Q"˘Q"˘Q"˘Q"˘Q"̘Q"̘Q"̘Q"̘Q"̘Q"̘Q"̘Q"͘Q"͘Q"͘Q"͘Q"͘Q"ΘQ"ΘQ"ΘQ"ΘQ"ΘQ"ϘQ"ϘQ"ϘQ"ϘQ"ϘQ"ϘQ"ИQ"ИQ"ИQ"ИQ"ИQ"ИQ"јQ"јQ"јQ"јQ"јQ"јQ"јQ"ҘQ"ҘQ"ҘQ"ҘQ"ҘQ"ӘQ"ӘQ"ӘQ"ӘQ"ӘQ"ӘQ"ԘQ"ԘQ"ԘQ"ԘQ"ԘQ"ԘQ"ԘQ"՘Q"՘Q"՘Q"՘Q"՘Q"՘Q"՘Q"֘Q"֘Q"֘Q"֘Q"֘Q"טQ"טQ"טQ"טQ"טQ"ؘQ"ؘQ"ؘQ"ؘQ"ؘQ"ؘQ"ؘQ"ؘQ"٘Q"٘Q"٘Q"٘Q"٘Q"٘Q"ژQ"ژQ"ژQ"ژQ"ژQ"ژQ"ۘQ"ۘQ"ۘQ"ۘQ"ۘQ"ܘQ"ܘQ"ܘQ"ܘQ"ܘQ"ܘQ"ܘQ"ܘQ"ݘQ"ݘQ"ݘQ"ݘQ"ݘQ"ݘQ"ޘQ"ޘQ"ޘQ"ޘQ"ޘQ"ޘQ"ޘQ"ߘQ"ߘQ"ߘQ"ߘQ"ߘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"ЃQ"Q"胙Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"Q"ȇQ"؇Q"臙Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"艙Q"Q"Q"Q"Q"ЊQ"؊Q"芙Q"Q"Q"Q"Q"Q"苙Q"Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؎Q"Q"Q"Q"Q"Q"ȏQ"؏Q"菙Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"蒙Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"ȔQ"Q"Q"Q"Q"蕙Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"虙Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"Q"țQ"؛Q"Q"Q"Q"Q"Q"ȜQ"Q"Q"Q"Q"Q"蝙Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"Q"衙Q"Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"ȣQ"أQ"ࣙQ"Q"Q"Q"Q"ȤQ"Q"Q"Q"Q"ХQ"Q"Q"Q"ئQ"ঙQ"Q"Q"Q"Q"Q"Q"ШQ"Q"Q"Q"ةQ"ਖ਼Q"Q"Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"جQ"ଙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"ஙQ"Q"Q"Q"ȯQ"دQ"诙Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ಙQ"貙Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"Q"Q"൙Q"赙Q"Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"ȷQ"طQ"ෙQ"Q"Q"Q"Q"ȸQ"Q"Q"Q"Q"Q"蹙Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"лQ"໙Q"軙Q"Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"轙Q"Q"Q"Q"ȾQ"оQ"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"™Q"™Q"™Q"™Q"™Q"™Q"ÙQ"ÙQ"ÙQ"ÙQ"ÙQ"ęQ"ęQ"ęQ"ęQ"ęQ"ęQ"ęQ"řQ"řQ"řQ"řQ"řQ"řQ"řQ"řQ"ƙQ"ƙQ"ƙQ"ƙQ"ƙQ"ǙQ"ǙQ"ǙQ"ǙQ"ǙQ"ǙQ"șQ"șQ"șQ"șQ"șQ"șQ"șQ"șQ"əQ"əQ"əQ"əQ"əQ"əQ"əQ"ʙQ"ʙQ"ʙQ"ʙQ"ʙQ"ʙQ"ʙQ"˙Q"˙Q"˙Q"˙Q"˙Q"̙Q"̙Q"̙Q"̙Q"̙Q"̙Q"̙Q"͙Q"͙Q"͙Q"͙Q"͙Q"͙Q"ΙQ"ΙQ"ΙQ"ΙQ"ΙQ"ΙQ"ΙQ"ϙQ"ϙQ"ϙQ"ϙQ"ϙQ"ЙQ"ЙQ"ЙQ"ЙQ"ЙQ"љQ"љQ"љQ"љQ"љQ"љQ"љQ"ҙQ"ҙQ"ҙQ"ҙQ"ҙQ"ҙQ"ҙQ"әQ"әQ"әQ"әQ"ԙQ"ԙQ"ԙQ"ԙQ"ՙQ"ՙQ"ՙQ"ՙQ"ՙQ"ՙQ"ՙQ"֙Q"֙Q"֙Q"֙Q"֙Q"יQ"יQ"יQ"יQ"יQ"ؙQ"ؙQ"ؙQ"ؙQ"ؙQ"ٙQ"ٙQ"ٙQ"ٙQ"ٙQ"ڙQ"ڙQ"ڙQ"ڙQ"ڙQ"ڙQ"ۙQ"ۙQ"ۙQ"ۙQ"ۙQ"ܙQ"ܙQ"ܙQ"ܙQ"ܙQ"ݙQ"ݙQ"ݙQ"ݙQ"ݙQ"ݙQ"ݙQ"ޙQ"ޙQ"ޙQ"ޙQ"ޙQ"ޙQ"ߙQ"ߙQ"ߙQ"ߙQ"ߙQ"ߙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"肚Q"Q"Q"ȃQ"ЃQ"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"膚Q"Q"Q"Q"Q"ЇQ"؇Q"Q"Q"Q"Q"Q"舚Q"Q"Q"Q"ȉQ"Q"Q"Q"Q"Q"芚Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"莚Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"ȑQ"Q"Q"Q"Q"蒚Q"Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"ȔQ"ДQ"Q"蔚Q"Q"Q"Q"蕚Q"Q"Q"Q"Q"Q"Q"薚Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"虚Q"Q"Q"Q"蚚Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"НQ"Q"蝚Q"Q"Q"ȞQ"ОQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؠQ"ࠚQ"Q"Q"Q"ȡQ"衚Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"चQ"褚Q"Q"Q"Q"Q"ȥQ"ХQ"Q"Q"Q"Q"ئQ"চQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ਚQ"訚Q"Q"Q"Q"ȩQ"ЩQ"ةQ"Q"Q"Q"Q"Q"ȪQ"تQ"ચQ"Q"Q"Q"Q"Q"ȫQ"Q"Q"Q"Q"Q"Q"謚Q"Q"Q"Q"Q"Q"ЭQ"حQ"୚Q"Q"Q"Q"Q"ЮQ"சQ"讚Q"Q"Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"ౚQ"Q"Q"Q"Q"ȲQ"貚Q"Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"൚Q"Q"Q"Q"ȶQ"趚Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"踚Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"ບQ"躚Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"ཚQ"Q"Q"Q"Q"ȾQ"辚Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"šQ"šQ"šQ"šQ"šQ"šQ"šQ"ÚQ"ÚQ"ÚQ"ÚQ"ĚQ"ĚQ"ĚQ"ĚQ"ĚQ"ĚQ"ŚQ"ŚQ"ŚQ"ŚQ"ŚQ"ŚQ"ƚQ"ƚQ"ƚQ"ƚQ"ƚQ"ƚQ"ƚQ"ƚQ"ǚQ"ǚQ"ǚQ"ǚQ"ȚQ"ȚQ"ȚQ"ȚQ"ȚQ"ȚQ"ɚQ"ɚQ"ɚQ"ɚQ"ɚQ"ʚQ"ʚQ"ʚQ"ʚQ"ʚQ"ʚQ"ʚQ"ʚQ"˚Q"˚Q"˚Q"˚Q"˚Q"˚Q"̚Q"̚Q"̚Q"̚Q"̚Q"͚Q"͚Q"͚Q"͚Q"͚Q"͚Q"͚Q"͚Q"͚Q"ΚQ"ΚQ"ΚQ"ΚQ"ΚQ"ΚQ"ΚQ"ΚQ"ϚQ"ϚQ"ϚQ"ϚQ"ϚQ"ϚQ"КQ"КQ"КQ"КQ"КQ"КQ"њQ"њQ"њQ"њQ"њQ"њQ"ҚQ"ҚQ"ҚQ"ҚQ"ҚQ"ҚQ"ӚQ"ӚQ"ӚQ"ӚQ"ӚQ"ԚQ"ԚQ"ԚQ"ԚQ"՚Q"՚Q"՚Q"՚Q"՚Q"՚Q"՚Q"֚Q"֚Q"֚Q"֚Q"֚Q"֚Q"֚Q"ךQ"ךQ"ךQ"ךQ"ךQ"ךQ"ؚQ"ؚQ"ؚQ"ؚQ"ؚQ"ٚQ"ٚQ"ٚQ"ٚQ"ٚQ"ٚQ"ښQ"ښQ"ښQ"ښQ"ښQ"ۚQ"ۚQ"ۚQ"ۚQ"ۚQ"ۚQ"ۚQ"ܚQ"ܚQ"ܚQ"ܚQ"ݚQ"ݚQ"ݚQ"ݚQ"ݚQ"ޚQ"ޚQ"ޚQ"ޚQ"ޚQ"ߚQ"ߚQ"ߚQ"ߚQ"ߚQ"ߚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"؀Q"Q"Q"Q"Q"Q"ȁQ"؁Q"Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"Q"Q"胛Q"Q"Q"Q"Q"Q"ЄQ"؄Q"脛Q"Q"Q"Q"Q"ЅQ"Q"腛Q"Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"؉Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"苛Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"荛Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"Q"Q"Q"ȑQ"葛Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"蔛Q"Q"Q"ȕQ"ЕQ"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"ȗQ"Q"Q"Q"Q"蘛Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"蚛Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"蟛Q"Q"Q"Q"Q"ȠQ"РQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȢQ"Q"Q"Q"Q"Q"Q"Q"裛Q"Q"Q"Q"ФQ"ؤQ"छQ"褛Q"Q"Q"Q"Q"ХQ"ज़Q"襛Q"Q"Q"Q"Q"Q"Q"Q"Q"৛Q"觛Q"Q"Q"ȨQ"ШQ"بQ"ਛQ"Q"Q"Q"Q"ȩQ"ةQ"ਜ਼Q"Q"Q"Q"Q"ȪQ"Q"Q"Q"Q"Q"Q"諛Q"Q"Q"Q"Q"ЬQ"جQ"ଛQ"講Q"Q"Q"Q"Q"ȭQ"ЭQ"୛Q"譛Q"Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"бQ"౛Q"豛Q"Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"൛Q"赛Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ظQ"ปQ"踛Q"Q"Q"Q"Q"ȹQ"عQ"蹛Q"Q"Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"༛Q"輛Q"Q"Q"Q"Q"ȽQ"нQ"ؽQ"ཛQ"Q"Q"Q"Q"Q"ȾQ"ؾQ"ྛQ"Q"Q"Q"Q"进Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"›Q"›Q"›Q"›Q"›Q"›Q"ÛQ"ÛQ"ÛQ"ÛQ"ÛQ"ÛQ"ěQ"ěQ"ěQ"ěQ"ěQ"śQ"śQ"śQ"śQ"śQ"śQ"śQ"ƛQ"ƛQ"ƛQ"ƛQ"ǛQ"ǛQ"ǛQ"ǛQ"ǛQ"țQ"țQ"țQ"țQ"țQ"țQ"ɛQ"ɛQ"ɛQ"ɛQ"ɛQ"ɛQ"ʛQ"ʛQ"ʛQ"ʛQ"˛Q"˛Q"˛Q"˛Q"˛Q"̛Q"̛Q"̛Q"̛Q"͛Q"͛Q"͛Q"͛Q"͛Q"͛Q"ΛQ"ΛQ"ΛQ"ΛQ"ϛQ"ϛQ"ϛQ"ϛQ"ЛQ"ЛQ"ЛQ"ЛQ"ЛQ"ЛQ"ћQ"ћQ"ћQ"ћQ"ћQ"қQ"қQ"қQ"қQ"қQ"қQ"ӛQ"ӛQ"ӛQ"ӛQ"ӛQ"ԛQ"ԛQ"ԛQ"ԛQ"ԛQ"ԛQ"ԛQ"՛Q"՛Q"՛Q"՛Q"՛Q"՛Q"֛Q"֛Q"֛Q"֛Q"כQ"כQ"כQ"כQ"כQ"כQ"כQ"؛Q"؛Q"؛Q"؛Q"؛Q"؛Q"ٛQ"ٛQ"ٛQ"ٛQ"ٛQ"ٛQ"ٛQ"ڛQ"ڛQ"ڛQ"ڛQ"ڛQ"ۛQ"ۛQ"ۛQ"ۛQ"ۛQ"ۛQ"ܛQ"ܛQ"ܛQ"ܛQ"ܛQ"ܛQ"ܛQ"ݛQ"ݛQ"ݛQ"ݛQ"ݛQ"ݛQ"ݛQ"ޛQ"ޛQ"ޛQ"ޛQ"ޛQ"ߛQ"ߛQ"ߛQ"ߛQ"ߛQ"ߛQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"ȁQ"؁Q"Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"Q"胜Q"Q"Q"Q"Q"ЄQ"؄Q"脜Q"Q"Q"Q"Q"ЅQ"Q"腜Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"Q"Q"艜Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"ȋQ"苜Q"Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЎQ"؎Q"Q"Q"Q"Q"ЏQ"Q"菜Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"葜Q"Q"Q"Q"ВQ"ؒQ"蒜Q"Q"Q"Q"Q"ГQ"Q"蓜Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"ȗQ"ؗQ"藜Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"КQ"ؚQ"蚜Q"Q"Q"Q"Q"ЛQ"Q"蛜Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"蝜Q"Q"Q"Q"Q"Q"Q"螜Q"Q"Q"Q"ȟQ"Q"Q"Q"Q"蠜Q"Q"Q"Q"СQ"ءQ"衜Q"Q"Q"Q"Q"࢜Q"袜Q"Q"Q"ȣQ"УQ"Q"Q"Q"Q"Q"Q"Q"Q"ХQ"Q"Q"Q"Q"জQ"覜Q"Q"Q"Q"ȧQ"ЧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ةQ"ੜQ"Q"Q"Q"Q"જQ"誜Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"Q"Q"Q"حQ"ଡ଼Q"Q"Q"Q"Q"ȮQ"خQ"讜Q"Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"谜Q"Q"Q"Q"бQ"رQ"豜Q"Q"Q"Q"Q"вQ"ಜQ"貜Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"൜Q"Q"Q"Q"Q"ȶQ"ضQ"ගQ"Q"Q"Q"Q"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"عQ"๜Q"Q"Q"Q"Q"Q"Q"Q"Q"ػQ"ໜQ"Q"Q"Q"Q"ȼQ"ؼQ"輜Q"Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"࿜Q"远Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"œQ"œQ"œQ"œQ"œQ"ÜQ"ÜQ"ÜQ"ÜQ"ÜQ"ÜQ"ÜQ"ĜQ"ĜQ"ĜQ"ĜQ"ĜQ"ĜQ"ŜQ"ŜQ"ŜQ"ŜQ"ŜQ"ƜQ"ƜQ"ƜQ"ƜQ"ƜQ"ǜQ"ǜQ"ǜQ"ǜQ"ǜQ"ǜQ"ǜQ"ȜQ"ȜQ"ȜQ"ȜQ"ȜQ"ɜQ"ɜQ"ɜQ"ɜQ"ɜQ"ɜQ"ʜQ"ʜQ"ʜQ"ʜQ"˜Q"˜Q"˜Q"˜Q"˜Q"˜Q"˜Q"̜Q"̜Q"̜Q"̜Q"̜Q"̜Q"͜Q"͜Q"͜Q"͜Q"͜Q"͜Q"ΜQ"ΜQ"ΜQ"ΜQ"ϜQ"ϜQ"ϜQ"ϜQ"ϜQ"ϜQ"ϜQ"ϜQ"МQ"МQ"МQ"МQ"МQ"МQ"ќQ"ќQ"ќQ"ќQ"ҜQ"ҜQ"ҜQ"ҜQ"ҜQ"ӜQ"ӜQ"ӜQ"ӜQ"ӜQ"ӜQ"ԜQ"ԜQ"ԜQ"ԜQ"ԜQ"ԜQ"՜Q"՜Q"՜Q"՜Q"֜Q"֜Q"֜Q"֜Q"֜Q"֜Q"לQ"לQ"לQ"לQ"לQ"؜Q"؜Q"؜Q"؜Q"؜Q"ٜQ"ٜQ"ٜQ"ٜQ"ٜQ"ڜQ"ڜQ"ڜQ"ڜQ"ڜQ"ڜQ"ڜQ"ۜQ"ۜQ"ۜQ"ۜQ"ۜQ"ۜQ"ܜQ"ܜQ"ܜQ"ܜQ"ܜQ"ܜQ"ܜQ"ݜQ"ݜQ"ݜQ"ݜQ"ݜQ"ޜQ"ޜQ"ޜQ"ޜQ"ޜQ"ޜQ"ߜQ"ߜQ"ߜQ"ߜQ"ߜQ"ߜQ"ߜQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"؁Q"Q"Q"Q"Q"Q"ȂQ"Q"Q"Q"Q"胝Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"ȇQ"臝Q"Q"Q"Q"Q"Q"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"茝Q"Q"Q"Q"Q"ЍQ"؍Q"荝Q"Q"Q"Q"Q"ЎQ"Q"莝Q"Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"Q"ȒQ"ؒQ"蒝Q"Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蕝Q"Q"Q"Q"ȖQ"ЖQ"ؖQ"Q"Q"Q"Q"Q"ȗQ"ЗQ"ؗQ"Q"Q"Q"Q"ȘQ"Q"Q"Q"Q"Q"Q"Q"Q"ȚQ"Q"Q"Q"Q"蛝Q"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"蟝Q"Q"Q"Q"Q"Q"ࠝQ"蠝Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"أQ"ࣝQ"Q"Q"Q"ȤQ"ؤQ"褝Q"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"اQ"ঢ়Q"Q"Q"Q"Q"ȨQ"ШQ"بQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ઝQ"誝Q"Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"Q"ȬQ"جQ"ଝQ"Q"Q"Q"Q"ȭQ"Q"Q"Q"Q"Q"讝Q"Q"Q"Q"Q"Q"Q"ЯQ"دQ"௝Q"Q"Q"Q"Q"ȰQ"аQ"ఝQ"谝Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"سQ"ೝQ"Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"赝Q"Q"Q"Q"жQ"ضQ"ඝQ"趝Q"Q"Q"Q"Q"зQ"ෝQ"距Q"Q"Q"Q"ȸQ"иQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"غQ"ຝQ"Q"Q"Q"Q"ȻQ"ػQ"軝Q"Q"Q"Q"Q"Q"мQ"ؼQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ྜྷQ"辝Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ÝQ"ÝQ"ÝQ"ÝQ"ÝQ"ÝQ"ÝQ"ÝQ"ĝQ"ĝQ"ĝQ"ĝQ"ĝQ"ĝQ"ŝQ"ŝQ"ŝQ"ŝQ"ƝQ"ƝQ"ƝQ"ƝQ"ƝQ"ƝQ"ƝQ"ƝQ"ǝQ"ǝQ"ǝQ"ǝQ"ǝQ"ǝQ"ǝQ"ȝQ"ȝQ"ȝQ"ȝQ"ȝQ"ȝQ"ɝQ"ɝQ"ɝQ"ɝQ"ʝQ"ʝQ"ʝQ"ʝQ"ʝQ"ʝQ"ʝQ"˝Q"˝Q"˝Q"˝Q"˝Q"˝Q"˝Q"̝Q"̝Q"̝Q"̝Q"̝Q"̝Q"͝Q"͝Q"͝Q"͝Q"͝Q"ΝQ"ΝQ"ΝQ"ΝQ"ΝQ"ΝQ"ΝQ"ϝQ"ϝQ"ϝQ"ϝQ"ϝQ"ϝQ"НQ"НQ"НQ"НQ"НQ"НQ"НQ"ѝQ"ѝQ"ѝQ"ѝQ"ѝQ"ҝQ"ҝQ"ҝQ"ҝQ"ҝQ"ӝQ"ӝQ"ӝQ"ӝQ"ӝQ"ӝQ"ӝQ"ӝQ"ӝQ"ԝQ"ԝQ"ԝQ"ԝQ"ԝQ"ԝQ"ԝQ"ԝQ"՝Q"՝Q"՝Q"՝Q"՝Q"֝Q"֝Q"֝Q"֝Q"םQ"םQ"םQ"םQ"םQ"םQ"םQ"םQ"؝Q"؝Q"؝Q"؝Q"؝Q"؝Q"؝Q"ٝQ"ٝQ"ٝQ"ٝQ"ٝQ"ڝQ"ڝQ"ڝQ"ڝQ"ڝQ"ڝQ"۝Q"۝Q"۝Q"۝Q"۝Q"۝Q"ܝQ"ܝQ"ܝQ"ܝQ"ܝQ"ܝQ"ݝQ"ݝQ"ݝQ"ݝQ"ݝQ"ޝQ"ޝQ"ޝQ"ޝQ"ޝQ"ߝQ"ߝQ"ߝQ"ߝQ"ߝQ"ߝQ"ߝQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؁Q"Q"Q"Q"Q"ȂQ"肞Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЅQ"؅Q"Q"腞Q"Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"舞Q"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"ȊQ"؊Q"Q"Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"茞Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"莞Q"Q"Q"Q"ȏQ"ЏQ"Q"Q"Q"Q"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"ȒQ"ВQ"ؒQ"蒞Q"Q"Q"Q"ГQ"ؓQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؕQ"Q"Q"Q"Q"ȖQ"ؖQ"Q"薞Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"Q"ȝQ"؝Q"蝞Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ࠞQ"蠞Q"Q"Q"Q"ȡQ"СQ"࡞Q"Q"Q"Q"Q"ȢQ"آQ"࢞Q"Q"Q"Q"ȣQ"Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"फ़Q"襞Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ШQ"بQ"Q"Q"Q"Q"ةQ"ਫ਼Q"Q"Q"Q"ȪQ"Q"Q"Q"Q"ثQ"૞Q"Q"Q"Q"ȬQ"謞Q"Q"Q"Q"ȭQ"ЭQ"Q"Q"Q"Q"ஞQ"讞Q"Q"Q"Q"ȯQ"诞Q"Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"豞Q"Q"Q"Q"ȲQ"вQ"Q"Q"Q"Q"Q"ȳQ"سQ"ೞQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"еQ"൞Q"赞Q"Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ظQ"พQ"Q"Q"Q"Q"ȹQ"蹞Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"мQ"ؼQ"Q"Q"Q"Q"нQ"ཞQ"轞Q"Q"Q"ȾQ"оQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"žQ"žQ"žQ"žQ"žQ"ÞQ"ÞQ"ÞQ"ÞQ"ÞQ"ÞQ"ÞQ"ĞQ"ĞQ"ĞQ"ĞQ"ĞQ"ĞQ"ŞQ"ŞQ"ŞQ"ŞQ"ŞQ"ƞQ"ƞQ"ƞQ"ƞQ"ƞQ"ƞQ"ƞQ"ǞQ"ǞQ"ǞQ"ǞQ"ǞQ"ǞQ"ȞQ"ȞQ"ȞQ"ȞQ"ȞQ"ȞQ"ȞQ"ɞQ"ɞQ"ɞQ"ɞQ"ɞQ"ʞQ"ʞQ"ʞQ"ʞQ"ʞQ"ʞQ"˞Q"˞Q"˞Q"˞Q"˞Q"˞Q"˞Q"̞Q"̞Q"̞Q"̞Q"̞Q"̞Q"̞Q"͞Q"͞Q"͞Q"͞Q"͞Q"ΞQ"ΞQ"ΞQ"ΞQ"ΞQ"ϞQ"ϞQ"ϞQ"ϞQ"ϞQ"ϞQ"ОQ"ОQ"ОQ"ОQ"ОQ"ОQ"ОQ"ўQ"ўQ"ўQ"ўQ"ҞQ"ҞQ"ҞQ"ҞQ"ҞQ"ӞQ"ӞQ"ӞQ"ӞQ"ӞQ"ӞQ"ӞQ"ԞQ"ԞQ"ԞQ"ԞQ"ԞQ"՞Q"՞Q"՞Q"՞Q"՞Q"֞Q"֞Q"֞Q"֞Q"מQ"מQ"מQ"מQ"מQ"מQ"؞Q"؞Q"؞Q"؞Q"؞Q"ٞQ"ٞQ"ٞQ"ٞQ"ٞQ"ٞQ"ڞQ"ڞQ"ڞQ"ڞQ"۞Q"۞Q"۞Q"۞Q"۞Q"۞Q"ܞQ"ܞQ"ܞQ"ܞQ"ܞQ"ܞQ"ݞQ"ݞQ"ݞQ"ݞQ"ݞQ"ݞQ"ݞQ"ޞQ"ޞQ"ޞQ"ޞQ"ߞQ"ߞQ"ߞQ"ߞQ"ߞQ"ߞQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"Q"Q"Q"聟Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"Q"ȃQ"Q"胟Q"Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"腟Q"Q"Q"ȆQ"ІQ"؆Q"Q"Q"Q"Q"Q"ȇQ"ЇQ"؇Q"Q"Q"Q"Q"ȈQ"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"茟Q"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"Q"ȎQ"Q"Q"Q"Q"Q"Q"菟Q"Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"ؑQ"Q"Q"Q"Q"ؒQ"Q"蒟Q"Q"Q"Q"ȓQ"Q"Q"Q"ȔQ"ДQ"ؔQ"Q"Q"Q"Q"Q"蕟Q"Q"Q"Q"ȖQ"薟Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"蘟Q"Q"Q"Q"șQ"號Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"ȜQ"Q"Q"Q"Q"蝟Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"СQ"ءQ"Q"Q"Q"Q"آQ"࢟Q"Q"Q"Q"Q"Q"Q"Q"Q"ФQ"ؤQ"Q"Q"Q"Q"إQ"य़Q"Q"Q"Q"Q"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"بQ"ਟQ"Q"Q"Q"Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"ثQ"૟Q"Q"Q"Q"Q"Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"خQ"டQ"Q"Q"Q"Q"Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"رQ"౟Q"Q"Q"Q"Q"Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"شQ"ടQ"Q"Q"Q"Q"Q"Q"Q"Q"жQ"ضQ"Q"Q"Q"Q"طQ"ෟQ"Q"Q"Q"Q"Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"غQ"ຟQ"Q"Q"Q"Q"Q"Q"Q"Q"мQ"ؼQ"Q"Q"Q"Q"ؽQ"ཟQ"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ŸQ"ŸQ"ŸQ"ŸQ"ŸQ"ŸQ"ßQ"ßQ"ßQ"ßQ"ğQ"ğQ"ğQ"ğQ"ğQ"ğQ"ğQ"şQ"şQ"şQ"şQ"ƟQ"ƟQ"ƟQ"ƟQ"ƟQ"ǟQ"ǟQ"ǟQ"ǟQ"ǟQ"ȟQ"ȟQ"ȟQ"ȟQ"ȟQ"ȟQ"ɟQ"ɟQ"ɟQ"ɟQ"ʟQ"ʟQ"ʟQ"ʟQ"˟Q"˟Q"˟Q"˟Q"˟Q"˟Q"̟Q"̟Q"̟Q"̟Q"̟Q"̟Q"͟Q"͟Q"͟Q"͟Q"͟Q"͟Q"ΟQ"ΟQ"ΟQ"ΟQ"ΟQ"ϟQ"ϟQ"ϟQ"ϟQ"ϟQ"ϟQ"ϟQ"ПQ"ПQ"ПQ"ПQ"џQ"џQ"џQ"џQ"џQ"џQ"ҟQ"ҟQ"ҟQ"ҟQ"ӟQ"ӟQ"ӟQ"ӟQ"ӟQ"ӟQ"ԟQ"ԟQ"ԟQ"ԟQ"ԟQ"՟Q"՟Q"՟Q"՟Q"՟Q"՟Q"֟Q"֟Q"֟Q"֟Q"ןQ"ןQ"ןQ"ןQ"ןQ"؟Q"؟Q"؟Q"؟Q"؟Q"؟Q"ٟQ"ٟQ"ٟQ"ٟQ"ٟQ"ڟQ"ڟQ"ڟQ"ڟQ"ڟQ"۟Q"۟Q"۟Q"۟Q"۟Q"ܟQ"ܟQ"ܟQ"ܟQ"ܟQ"ܟQ"ݟQ"ݟQ"ݟQ"ݟQ"ޟQ"ޟQ"ޟQ"ޟQ"ޟQ"ޟQ"ߟQ"ߟQ"ߟQ"ߟQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"؁Q"Q"Q"Q"Q"肠Q"Q"Q"ȃQ"ЃQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"Q"ȆQ"Q"Q"Q"Q"Q"臠Q"Q"Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؊Q"Q"芠Q"Q"Q"Q"Q"ȋQ"ЋQ"؋Q"苠Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"荠Q"Q"Q"Q"Q"Q"ЎQ"؎Q"Q"莠Q"Q"Q"Q"Q"ȏQ"ЏQ"Q"菠Q"Q"Q"Q"Q"ȐQ"АQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؒQ"Q"蒠Q"Q"Q"Q"Q"ȓQ"ГQ"ؓQ"蓠Q"Q"Q"Q"Q"Q"ДQ"ؔQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"薠Q"Q"Q"Q"Q"ȗQ"ЗQ"ؗQ"藠Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蚠Q"Q"Q"Q"Q"țQ"ЛQ"؛Q"Q"Q"Q"Q"Q"Q"ȜQ"؜Q"Q"Q"Q"Q"Q"Q"ȝQ"Q"Q"Q"ȞQ"ОQ"؞Q"Q"螠Q"Q"Q"Q"ȟQ"ПQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ءQ"ࡠQ"衠Q"Q"Q"Q"Q"ȢQ"袠Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"ॠQ"Q"Q"Q"ȦQ"ئQ"覠Q"Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"੠Q"詠Q"Q"Q"ȪQ"ЪQ"تQ"Q"Q"Q"Q"Q"ȫQ"ثQ"ૠQ"Q"Q"Q"Q"Q"ȬQ"Q"Q"Q"Q"Q"譠Q"Q"Q"Q"Q"Q"ЮQ"خQ"஠Q"Q"Q"Q"Q"ЯQ"௠Q"诠Q"Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಠQ"Q"Q"Q"ȳQ"гQ"سQ"賠Q"Q"Q"Q"дQ"شQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"චQ"趠Q"Q"Q"Q"Q"ȷQ"зQ"෠Q"Q"Q"Q"Q"ȸQ"ظQ"ภQ"Q"Q"Q"Q"ȹQ"Q"Q"Q"Q"Q"躠Q"Q"Q"Q"Q"лQ"ػQ"໠Q"軠Q"Q"Q"Q"Q"мQ"༠Q"輠Q"Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"辠Q"Q"Q"Q"Q"пQ"ؿQ"迠Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q" Q" Q" Q" Q" Q" Q" Q" Q"àQ"àQ"àQ"àQ"àQ"àQ"ĠQ"ĠQ"ĠQ"ĠQ"ĠQ"ĠQ"ŠQ"ŠQ"ŠQ"ŠQ"ŠQ"ƠQ"ƠQ"ƠQ"ƠQ"ƠQ"ƠQ"ƠQ"ǠQ"ǠQ"ǠQ"ǠQ"ǠQ"ǠQ"ǠQ"ǠQ"ȠQ"ȠQ"ȠQ"ȠQ"ȠQ"ȠQ"ȠQ"ɠQ"ɠQ"ɠQ"ɠQ"ʠQ"ʠQ"ʠQ"ʠQ"ʠQ"ˠQ"ˠQ"ˠQ"ˠQ"ˠQ"̠Q"̠Q"̠Q"̠Q"̠Q"̠Q"͠Q"͠Q"͠Q"͠Q"ΠQ"ΠQ"ΠQ"ΠQ"ΠQ"ΠQ"ΠQ"ϠQ"ϠQ"ϠQ"ϠQ"ϠQ"РQ"РQ"РQ"РQ"РQ"РQ"ѠQ"ѠQ"ѠQ"ѠQ"ҠQ"ҠQ"ҠQ"ҠQ"ҠQ"ӠQ"ӠQ"ӠQ"ӠQ"ӠQ"ӠQ"ӠQ"ӠQ"ԠQ"ԠQ"ԠQ"ԠQ"ԠQ"ԠQ"ՠQ"ՠQ"ՠQ"ՠQ"֠Q"֠Q"֠Q"֠Q"נQ"נQ"נQ"נQ"נQ"נQ"ؠQ"ؠQ"ؠQ"ؠQ"ؠQ"ؠQ"٠Q"٠Q"٠Q"٠Q"٠Q"ڠQ"ڠQ"ڠQ"ڠQ"ڠQ"ڠQ"ڠQ"ڠQ"۠Q"۠Q"۠Q"۠Q"ܠQ"ܠQ"ܠQ"ܠQ"ܠQ"ܠQ"ݠQ"ݠQ"ݠQ"ݠQ"ݠQ"ݠQ"ޠQ"ޠQ"ޠQ"ޠQ"ߠQ"ߠQ"ߠQ"ߠQ"ߠQ"ߠQ"ߠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耡Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؃Q"Q"Q"Q"Q"ȄQ"脡Q"Q"Q"Q"ЅQ"؅Q"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"舡Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"芡Q"Q"Q"ȋQ"ЋQ"؋Q"Q"Q"Q"Q"Q"ȌQ"ЌQ"،Q"Q"Q"Q"Q"ȍQ"Q"Q"Q"Q"莡Q"Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"ȐQ"АQ"Q"萡Q"Q"Q"Q"ȑQ"Q"Q"Q"Q"Q"Q"蒡Q"Q"Q"ȓQ"ГQ"ؓQ"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"Q"Q"ȕQ"Q"Q"Q"Q"Q"薡Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"șQ"Q"Q"Q"Q"蚡Q"Q"Q"Q"ЛQ"؛Q"Q"Q"Q"Q"Q"蜡Q"Q"Q"ȝQ"НQ"Q"Q"Q"Q"Q"Q"Q"Q"؟Q"Q"Q"Q"Q"Q"ࠡQ"蠡Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"Q"Q"Q"Q"أQ"࣡Q"Q"Q"Q"ȤQ"ؤQ"褡Q"Q"Q"Q"Q"ХQ"إQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ৡQ"觡Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"ȩQ"ةQ"੡Q"Q"Q"Q"Q"ȪQ"Q"Q"Q"Q"Q"Q"諡Q"Q"Q"Q"ЬQ"جQ"Q"Q"Q"Q"ୡQ"譡Q"Q"Q"Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ذQ"డQ"谡Q"Q"Q"Q"Q"ȱQ"رQ"ౡQ"象Q"Q"Q"Q"Q"Q"ȲQ"вQ"زQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ഡQ"贡Q"Q"Q"Q"Q"ȵQ"еQ"صQ"ൡQ"Q"Q"Q"Q"ȶQ"ضQ"ඡQ"Q"Q"Q"Q"Q"ȷQ"Q"Q"Q"Q"Q"踡Q"Q"Q"Q"йQ"عQ"๡Q"蹡Q"Q"Q"Q"Q"Q"ȺQ"ມQ"躡Q"Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"ཡQ"Q"Q"Q"Q"Q"ȾQ"ؾQ"ྡQ"辡Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¡Q"¡Q"¡Q"¡Q"¡Q"¡Q"¡Q"áQ"áQ"áQ"áQ"áQ"ġQ"ġQ"ġQ"ġQ"ġQ"šQ"šQ"šQ"šQ"šQ"šQ"šQ"šQ"ơQ"ơQ"ơQ"ơQ"ơQ"ơQ"ơQ"ǡQ"ǡQ"ǡQ"ǡQ"ǡQ"ǡQ"ȡQ"ȡQ"ȡQ"ȡQ"ȡQ"ȡQ"ɡQ"ɡQ"ɡQ"ɡQ"ɡQ"ɡQ"ɡQ"ɡQ"ʡQ"ʡQ"ʡQ"ʡQ"ʡQ"ʡQ"ʡQ"ˡQ"ˡQ"ˡQ"ˡQ"ˡQ"ˡQ"̡Q"̡Q"̡Q"̡Q"͡Q"͡Q"͡Q"͡Q"͡Q"ΡQ"ΡQ"ΡQ"ΡQ"ΡQ"ΡQ"ΡQ"ϡQ"ϡQ"ϡQ"ϡQ"ϡQ"ϡQ"СQ"СQ"СQ"СQ"СQ"СQ"ѡQ"ѡQ"ѡQ"ѡQ"ѡQ"ҡQ"ҡQ"ҡQ"ҡQ"ҡQ"ҡQ"ҡQ"ҡQ"ӡQ"ӡQ"ӡQ"ӡQ"ӡQ"ӡQ"ӡQ"ӡQ"ԡQ"ԡQ"ԡQ"ԡQ"ԡQ"ԡQ"ԡQ"աQ"աQ"աQ"աQ"աQ"աQ"֡Q"֡Q"֡Q"֡Q"֡Q"֡Q"֡Q"סQ"סQ"סQ"סQ"סQ"ءQ"ءQ"ءQ"ءQ"ءQ"ءQ"ءQ"ءQ"١Q"١Q"١Q"١Q"١Q"١Q"ڡQ"ڡQ"ڡQ"ڡQ"ڡQ"ڡQ"ڡQ"ۡQ"ۡQ"ۡQ"ۡQ"ۡQ"ۡQ"ۡQ"ۡQ"ۡQ"ܡQ"ܡQ"ܡQ"ܡQ"ܡQ"ܡQ"ܡQ"ܡQ"ݡQ"ݡQ"ݡQ"ݡQ"ݡQ"ݡQ"ޡQ"ޡQ"ޡQ"ޡQ"ޡQ"ߡQ"ߡQ"ߡQ"ߡQ"ߡQ"ߡQ"ߡQ"ߡQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"肢Q"Q"Q"Q"ȃQ"ЃQ"؃Q"Q"Q"Q"Q"Q"ȄQ"؄Q"Q"Q"Q"Q"Q"ȅQ"Q"Q"Q"Q"Q"Q"膢Q"Q"Q"Q"Q"Q"ЇQ"؇Q"臢Q"Q"Q"Q"Q"ȈQ"ЈQ"Q"舢Q"Q"Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"Q"ȌQ"،Q"茢Q"Q"Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"菢Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"Q"Q"Q"Q"Q"Q"ȑQ"ؑQ"Q"Q"Q"Q"Q"ȒQ"Q"Q"Q"Q"Q"Q"Q"蓢Q"Q"Q"ȔQ"ДQ"ؔQ"Q"Q"Q"Q"Q"ȕQ"ؕQ"Q"Q"Q"Q"Q"Q"ȖQ"Q"Q"Q"Q"Q"Q"藢Q"Q"Q"Q"Q"Q"ИQ"ؘQ"Q"蘢Q"Q"Q"Q"Q"șQ"ЙQ"Q"虢Q"Q"Q"Q"Q"ȚQ"КQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"蜢Q"Q"Q"Q"Q"ȝQ"؝Q"蝢Q"Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ࠢQ"蠢Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"Q"ȢQ"آQ"ࢢQ"Q"Q"Q"Q"ȣQ"Q"Q"Q"Q"Q"Q"褢Q"Q"Q"Q"Q"Q"ХQ"إQ"ॢQ"襢Q"Q"Q"Q"Q"ȦQ"ЦQ"ঢQ"覢Q"Q"Q"Q"Q"ȧQ"ЧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ةQ"੢Q"Q"Q"Q"Q"ȪQ"تQ"誢Q"Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"حQ"ୢQ"譢Q"Q"Q"Q"Q"ȮQ"ЮQ"خQ"订Q"Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"бQ"رQ"Q"Q"Q"Q"ȲQ"вQ"ಢQ"貢Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"ൢQ"Q"Q"Q"ȶQ"жQ"ضQ"趢Q"Q"Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"عQ"๢Q"Q"Q"Q"Q"ຢQ"躢Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"རQ"Q"Q"Q"Q"ȾQ"ؾQ"辢Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¢Q"¢Q"¢Q"¢Q"¢Q"¢Q"¢Q"âQ"âQ"âQ"âQ"âQ"ĢQ"ĢQ"ĢQ"ĢQ"ĢQ"ŢQ"ŢQ"ŢQ"ŢQ"ŢQ"ŢQ"ŢQ"ƢQ"ƢQ"ƢQ"ƢQ"ƢQ"ƢQ"ǢQ"ǢQ"ǢQ"ǢQ"ǢQ"ǢQ"ȢQ"ȢQ"ȢQ"ȢQ"ɢQ"ɢQ"ɢQ"ɢQ"ɢQ"ɢQ"ʢQ"ʢQ"ʢQ"ʢQ"ʢQ"ʢQ"ˢQ"ˢQ"ˢQ"ˢQ"ˢQ"ˢQ"̢Q"̢Q"̢Q"̢Q"͢Q"͢Q"͢Q"͢Q"͢Q"͢Q"΢Q"΢Q"΢Q"΢Q"΢Q"΢Q"ϢQ"ϢQ"ϢQ"ϢQ"ϢQ"ТQ"ТQ"ТQ"ТQ"ѢQ"ѢQ"ѢQ"ѢQ"ѢQ"ѢQ"ѢQ"ҢQ"ҢQ"ҢQ"ҢQ"ҢQ"ӢQ"ӢQ"ӢQ"ӢQ"ӢQ"ԢQ"ԢQ"ԢQ"ԢQ"ԢQ"բQ"բQ"բQ"բQ"բQ"բQ"բQ"֢Q"֢Q"֢Q"֢Q"֢Q"עQ"עQ"עQ"עQ"עQ"עQ"آQ"آQ"آQ"آQ"٢Q"٢Q"٢Q"٢Q"٢Q"ڢQ"ڢQ"ڢQ"ڢQ"ڢQ"ڢQ"ۢQ"ۢQ"ۢQ"ۢQ"ۢQ"ۢQ"ܢQ"ܢQ"ܢQ"ܢQ"ܢQ"ܢQ"ݢQ"ݢQ"ݢQ"ݢQ"ݢQ"ݢQ"ޢQ"ޢQ"ޢQ"ޢQ"ޢQ"ޢQ"ޢQ"ޢQ"ޢQ"ߢQ"ߢQ"ߢQ"ߢQ"ߢQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЀQ"؀Q"Q"Q"Q"Q"ЁQ"Q"聣Q"Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"Q"ȅQ"ЅQ"؅Q"腣Q"Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"舣Q"Q"Q"ȉQ"ЉQ"Q"Q"Q"Q"Q"Q"ȊQ"؊Q"Q"Q"Q"Q"Q"ȋQ"Q"Q"Q"Q"Q"Q"茣Q"Q"Q"Q"Q"Q"Q"ȍQ"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"菣Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"Q"董Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"Q"ȓQ"ؓQ"Q"Q"Q"Q"ȔQ"Q"Q"Q"Q"Q"Q"Q"蕣Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"ЗQ"Q"藣Q"Q"Q"Q"ȘQ"Q"Q"Q"Q"虣Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"ЛQ"Q"蛣Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؞Q"Q"Q"Q"Q"ȟQ"؟Q"蟣Q"Q"Q"Q"Q"РQ"ؠQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ࢣQ"袣Q"Q"Q"ȣQ"УQ"أQ"ࣣQ"Q"Q"Q"Q"ȤQ"ؤQ"णQ"Q"Q"Q"Q"ȥQ"Q"Q"Q"Q"Q"ئQ"ণQ"Q"Q"Q"ȧQ"解Q"Q"Q"Q"ШQ"بQ"Q"Q"Q"Q"Q"Q"Q"Q"ણQ"誣Q"Q"Q"Q"ȫQ"諣Q"Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"ୣQ"譣Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"رQ"ౣQ"Q"Q"Q"Q"ಣQ"貣Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"صQ"ൣQ"Q"Q"Q"жQ"ضQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ظQ"รQ"Q"Q"Q"ȹQ"蹣Q"Q"Q"Q"Q"кQ"غQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"༣Q"輣Q"Q"Q"Q"Q"ལQ"轣Q"Q"Q"Q"Q"Q"Q"Q"Q"࿣Q"迣Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"£Q"£Q"£Q"£Q"£Q"£Q"£Q"ãQ"ãQ"ãQ"ãQ"ãQ"ģQ"ģQ"ģQ"ģQ"ģQ"ģQ"ţQ"ţQ"ţQ"ţQ"ţQ"ţQ"ţQ"ƣQ"ƣQ"ƣQ"ƣQ"ƣQ"ǣQ"ǣQ"ǣQ"ǣQ"ǣQ"ǣQ"ȣQ"ȣQ"ȣQ"ȣQ"ȣQ"ȣQ"ȣQ"ȣQ"ɣQ"ɣQ"ɣQ"ɣQ"ɣQ"ɣQ"ɣQ"ʣQ"ʣQ"ʣQ"ʣQ"ʣQ"ʣQ"ˣQ"ˣQ"ˣQ"ˣQ"̣Q"̣Q"̣Q"̣Q"̣Q"ͣQ"ͣQ"ͣQ"ͣQ"ͣQ"ΣQ"ΣQ"ΣQ"ΣQ"ΣQ"ΣQ"ϣQ"ϣQ"ϣQ"ϣQ"ϣQ"УQ"УQ"УQ"УQ"УQ"УQ"ѣQ"ѣQ"ѣQ"ѣQ"ѣQ"ѣQ"ңQ"ңQ"ңQ"ңQ"ңQ"ңQ"ӣQ"ӣQ"ӣQ"ӣQ"ԣQ"ԣQ"ԣQ"ԣQ"ԣQ"գQ"գQ"գQ"գQ"գQ"գQ"գQ"֣Q"֣Q"֣Q"֣Q"֣Q"֣Q"ףQ"ףQ"ףQ"ףQ"ףQ"أQ"أQ"أQ"أQ"أQ"أQ"٣Q"٣Q"٣Q"٣Q"٣Q"٣Q"٣Q"ڣQ"ڣQ"ڣQ"ڣQ"ڣQ"ڣQ"ڣQ"ۣQ"ۣQ"ۣQ"ۣQ"ۣQ"ܣQ"ܣQ"ܣQ"ܣQ"ܣQ"ݣQ"ݣQ"ݣQ"ݣQ"ݣQ"ݣQ"ݣQ"ޣQ"ޣQ"ޣQ"ޣQ"ޣQ"ߣQ"ߣQ"ߣQ"ߣQ"ߣQ"ߣQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"Q"Q"Q"Q"ȁQ"؁Q"聤Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"脤Q"Q"Q"Q"ȅQ"ЅQ"؅Q"Q"Q"Q"Q"ІQ"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؈Q"Q"Q"Q"Q"Q"Q"Q"艤Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"ȌQ"،Q"茤Q"Q"Q"Q"ȍQ"ЍQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؏Q"Q"菤Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"Q"萤Q"Q"Q"Q"БQ"ؑQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"Q"ȔQ"ДQ"ؔQ"蔤Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"藤Q"Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"șQ"ЙQ"ؙQ"Q"Q"Q"Q"Q"ȚQ"Q"Q"Q"Q"؛Q"Q"Q"Q"Q"Q"ȜQ"؜Q"蜤Q"Q"Q"Q"Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蟤Q"Q"Q"Q"Q"Q"ȠQ"Q"Q"Q"Q"ءQ"ࡤQ"Q"Q"Q"ȢQ"آQ"袤Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"।Q"襤Q"Q"Q"ȦQ"ЦQ"ئQ"তQ"Q"Q"Q"Q"Q"ȧQ"اQ"৤Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"詤Q"Q"Q"Q"Q"ЪQ"تQ"誤Q"Q"Q"Q"Q"ЫQ"૤Q"諤Q"Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"தQ"Q"Q"Q"Q"ЯQ"دQ"Q"Q"Q"Q"谤Q"Q"Q"Q"ȱQ"бQ"Q"Q"Q"Q"вQ"زQ"Q"Q"Q"Q"賤Q"Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"еQ"صQ"Q"Q"Q"Q"Q"Q"Q"Q"طQ"෤Q"Q"Q"Q"ȸQ"踤Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"Q"Q"Q"Q"໤Q"軤Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"ؽQ"ཤQ"Q"Q"Q"ȾQ"Q"Q"Q"Q"迤Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¤Q"¤Q"¤Q"¤Q"¤Q"¤Q"¤Q"äQ"äQ"äQ"äQ"äQ"äQ"ĤQ"ĤQ"ĤQ"ĤQ"ĤQ"ĤQ"ĤQ"ŤQ"ŤQ"ŤQ"ŤQ"ŤQ"ƤQ"ƤQ"ƤQ"ƤQ"ƤQ"ƤQ"ǤQ"ǤQ"ǤQ"ǤQ"ȤQ"ȤQ"ȤQ"ȤQ"ȤQ"ȤQ"ȤQ"ɤQ"ɤQ"ɤQ"ɤQ"ɤQ"ʤQ"ʤQ"ʤQ"ʤQ"ˤQ"ˤQ"ˤQ"ˤQ"ˤQ"ˤQ"̤Q"̤Q"̤Q"̤Q"̤Q"ͤQ"ͤQ"ͤQ"ͤQ"ͤQ"ΤQ"ΤQ"ΤQ"ΤQ"ΤQ"ΤQ"ΤQ"ϤQ"ϤQ"ϤQ"ϤQ"ϤQ"ϤQ"ФQ"ФQ"ФQ"ФQ"ФQ"ѤQ"ѤQ"ѤQ"ѤQ"ҤQ"ҤQ"ҤQ"ҤQ"ҤQ"ҤQ"ҤQ"ҤQ"ӤQ"ӤQ"ӤQ"ӤQ"ӤQ"ӤQ"ӤQ"ԤQ"ԤQ"ԤQ"ԤQ"ԤQ"ԤQ"ԤQ"դQ"դQ"դQ"դQ"դQ"դQ"֤Q"֤Q"֤Q"֤Q"֤Q"֤Q"֤Q"֤Q"פQ"פQ"פQ"פQ"פQ"ؤQ"ؤQ"ؤQ"ؤQ"ؤQ"ؤQ"٤Q"٤Q"٤Q"٤Q"٤Q"٤Q"ڤQ"ڤQ"ڤQ"ڤQ"ڤQ"ڤQ"ۤQ"ۤQ"ۤQ"ۤQ"ܤQ"ܤQ"ܤQ"ܤQ"ܤQ"ܤQ"ܤQ"ݤQ"ݤQ"ݤQ"ݤQ"ݤQ"ݤQ"ݤQ"ޤQ"ޤQ"ޤQ"ޤQ"ޤQ"ޤQ"ߤQ"ߤQ"ߤQ"ߤQ"ߤQ"ߤQ"ߤQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"耥Q"Q"Q"Q"Q"ЁQ"؁Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"胥Q"Q"Q"Q"ȄQ"ЄQ"؄Q"Q"Q"Q"Q"Q"؅Q"Q"Q"Q"Q"Q"ȆQ"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"ȈQ"؈Q"舥Q"Q"Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؋Q"Q"Q"Q"Q"ȌQ"،Q"茥Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"АQ"Q"营Q"Q"Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"蓥Q"Q"Q"Q"Q"ȔQ"蔥Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"藥Q"Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蛥Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"Q"Q"ȝQ"؝Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"蟥Q"Q"Q"Q"Q"РQ"ؠQ"蠥Q"Q"Q"Q"Q"СQ"ࡥQ"补Q"Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"थQ"Q"Q"Q"Q"ȥQ"إQ"襥Q"Q"Q"Q"Q"ЦQ"ئQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ਥQ"訥Q"Q"Q"Q"Q"ȩQ"ЩQ"੥Q"Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ଥQ"謥Q"Q"Q"Q"ȭQ"ЭQ"୥Q"Q"Q"Q"Q"Q"خQ"஥Q"Q"Q"Q"Q"ȯQ"Q"Q"Q"Q"Q"谥Q"Q"Q"Q"Q"бQ"رQ"豥Q"Q"Q"Q"Q"вQ"ಥQ"貥Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"صQ"൥Q"Q"Q"Q"Q"ȶQ"ضQ"趥Q"Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"๥Q"蹥Q"Q"Q"Q"Q"ȺQ"кQ"غQ"ລQ"Q"Q"Q"Q"Q"ػQ"໥Q"Q"Q"Q"Q"ȼQ"Q"Q"Q"Q"ؽQ"ཥQ"轥Q"Q"Q"Q"Q"ྥQ"辥Q"Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¥Q"¥Q"¥Q"¥Q"åQ"åQ"åQ"åQ"åQ"åQ"åQ"ĥQ"ĥQ"ĥQ"ĥQ"ĥQ"ĥQ"ĥQ"ĥQ"ťQ"ťQ"ťQ"ťQ"ťQ"ťQ"ťQ"ťQ"ťQ"ƥQ"ƥQ"ƥQ"ƥQ"ǥQ"ǥQ"ǥQ"ǥQ"ȥQ"ȥQ"ȥQ"ȥQ"ȥQ"ȥQ"ȥQ"ȥQ"ɥQ"ɥQ"ɥQ"ɥQ"ɥQ"ɥQ"ɥQ"ʥQ"ʥQ"ʥQ"ʥQ"ʥQ"ʥQ"ʥQ"˥Q"˥Q"˥Q"˥Q"˥Q"̥Q"̥Q"̥Q"̥Q"̥Q"̥Q"ͥQ"ͥQ"ͥQ"ͥQ"ͥQ"ͥQ"ͥQ"ΥQ"ΥQ"ΥQ"ΥQ"ΥQ"ΥQ"ΥQ"ΥQ"ϥQ"ϥQ"ϥQ"ϥQ"ϥQ"ХQ"ХQ"ХQ"ХQ"ХQ"ХQ"ѥQ"ѥQ"ѥQ"ѥQ"ѥQ"ѥQ"ҥQ"ҥQ"ҥQ"ҥQ"ӥQ"ӥQ"ӥQ"ӥQ"ӥQ"ӥQ"ԥQ"ԥQ"ԥQ"ԥQ"ԥQ"ԥQ"ԥQ"ԥQ"եQ"եQ"եQ"եQ"եQ"եQ"եQ"֥Q"֥Q"֥Q"֥Q"֥Q"֥Q"ץQ"ץQ"ץQ"ץQ"ץQ"ץQ"إQ"إQ"إQ"إQ"٥Q"٥Q"٥Q"٥Q"٥Q"٥Q"٥Q"٥Q"ڥQ"ڥQ"ڥQ"ڥQ"ڥQ"ۥQ"ۥQ"ۥQ"ۥQ"ۥQ"ۥQ"ۥQ"ܥQ"ܥQ"ܥQ"ܥQ"ܥQ"ܥQ"ܥQ"ݥQ"ݥQ"ݥQ"ݥQ"ݥQ"ݥQ"ݥQ"ݥQ"ݥQ"ޥQ"ޥQ"ޥQ"ޥQ"ޥQ"ޥQ"ޥQ"ߥQ"ߥQ"ߥQ"ߥQ"ߥQ"ߥQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"Q"Q"Q"聦Q"Q"Q"Q"Q"ЂQ"؂Q"肦Q"Q"Q"Q"Q"Q"ȃQ"Q"胦Q"Q"Q"Q"Q"ȄQ"ЄQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؆Q"Q"膦Q"Q"Q"Q"Q"ȇQ"؇Q"Q"臦Q"Q"Q"Q"Q"Q"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"芦Q"Q"Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"ЎQ"؎Q"Q"Q"Q"Q"؏Q"Q"Q"Q"Q"ȐQ"Q"Q"Q"Q"葦Q"Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"ГQ"Q"蓦Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؖQ"Q"Q"Q"Q"Q"ȗQ"藦Q"Q"Q"Q"Q"ИQ"ؘQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蚦Q"Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"螦Q"Q"Q"Q"ȟQ"ПQ"Q"Q"Q"Q"Q"ȠQ"ؠQ"ࠦQ"Q"Q"Q"Q"ȡQ"Q"Q"Q"Q"袦Q"Q"Q"Q"Q"УQ"أQ"裦Q"Q"Q"Q"Q"ؤQ"दQ"Q"Q"Q"Q"Q"Q"Q"Q"ЦQ"ئQ"Q"Q"Q"Q"ЧQ"০Q"触Q"Q"Q"Q"ȨQ"ШQ"Q"Q"Q"Q"Q"試Q"Q"Q"Q"ЪQ"تQ"誦Q"Q"Q"Q"Q"૦Q"諦Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"஦Q"Q"Q"Q"Q"ȯQ"دQ"详Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ದQ"貦Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"ȴQ"شQ"ദQ"Q"Q"Q"Q"ȵQ"Q"Q"Q"Q"Q"趦Q"Q"Q"Q"Q"зQ"طQ"෦Q"跦Q"Q"Q"Q"Q"ȸQ"иQ"ظQ"Q"Q"Q"Q"Q"蹦Q"Q"Q"Q"Q"Q"ȺQ"غQ"躦Q"Q"Q"Q"Q"лQ"ػQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"སQ"车Q"Q"Q"Q"ȾQ"оQ"ྦQ"Q"Q"Q"Q"Q"ȿQ"ؿQ"࿦Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¦Q"¦Q"¦Q"¦Q"¦Q"¦Q"¦Q"æQ"æQ"æQ"æQ"æQ"æQ"ĦQ"ĦQ"ĦQ"ĦQ"ĦQ"ŦQ"ŦQ"ŦQ"ŦQ"ŦQ"ŦQ"ƦQ"ƦQ"ƦQ"ƦQ"ƦQ"ƦQ"ƦQ"ǦQ"ǦQ"ǦQ"ǦQ"ǦQ"ǦQ"ȦQ"ȦQ"ȦQ"ȦQ"ȦQ"ȦQ"ɦQ"ɦQ"ɦQ"ɦQ"ɦQ"ɦQ"ɦQ"ʦQ"ʦQ"ʦQ"ʦQ"ʦQ"˦Q"˦Q"˦Q"˦Q"˦Q"˦Q"˦Q"˦Q"̦Q"̦Q"̦Q"̦Q"̦Q"ͦQ"ͦQ"ͦQ"ͦQ"ͦQ"ͦQ"ΦQ"ΦQ"ΦQ"ΦQ"ΦQ"ΦQ"ΦQ"ϦQ"ϦQ"ϦQ"ϦQ"ϦQ"ϦQ"ЦQ"ЦQ"ЦQ"ЦQ"ЦQ"ѦQ"ѦQ"ѦQ"ѦQ"ѦQ"ѦQ"ҦQ"ҦQ"ҦQ"ҦQ"ҦQ"ҦQ"ҦQ"ӦQ"ӦQ"ӦQ"ӦQ"ӦQ"ӦQ"ԦQ"ԦQ"ԦQ"ԦQ"զQ"զQ"զQ"զQ"զQ"զQ"զQ"զQ"֦Q"֦Q"֦Q"֦Q"֦Q"֦Q"֦Q"צQ"צQ"צQ"צQ"צQ"צQ"צQ"ئQ"ئQ"ئQ"ئQ"ئQ"٦Q"٦Q"٦Q"٦Q"٦Q"٦Q"٦Q"ڦQ"ڦQ"ڦQ"ڦQ"ڦQ"ڦQ"ڦQ"ڦQ"ۦQ"ۦQ"ۦQ"ۦQ"ۦQ"ۦQ"ۦQ"ܦQ"ܦQ"ܦQ"ܦQ"ܦQ"ܦQ"ݦQ"ݦQ"ݦQ"ݦQ"ݦQ"ݦQ"ݦQ"ަQ"ަQ"ަQ"ަQ"ަQ"ަQ"ަQ"ߦQ"ߦQ"ߦQ"ߦQ"ߦQ"ߦQ"ߦQ"ߦQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"Q"Q"Q"Q"ȁQ"聧Q"Q"Q"Q"Q"ȂQ"ЂQ"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"脧Q"Q"Q"Q"ȅQ"ЅQ"؅Q"Q"腧Q"Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"ȇQ"Q"Q"Q"Q"Q"Q"Q"舧Q"Q"Q"Q"Q"ЉQ"؉Q"Q"艧Q"Q"Q"Q"Q"Q"ȊQ"ЊQ"Q"芧Q"Q"Q"Q"Q"ȋQ"ЋQ"Q"Q"Q"Q"،Q"Q"茧Q"Q"Q"Q"Q"Q"ȍQ"؍Q"Q"荧Q"Q"Q"Q"Q"ЎQ"؎Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"萧Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"ؒQ"Q"Q"Q"Q"Q"Q"ȓQ"Q"Q"Q"Q"Q"蔧Q"Q"Q"Q"Q"Q"ЕQ"ؕQ"蕧Q"Q"Q"Q"Q"ȖQ"ЖQ"ؖQ"Q"薧Q"Q"Q"Q"Q"ȗQ"ЗQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؙQ"Q"虧Q"Q"Q"Q"Q"Q"ȚQ"蚧Q"Q"Q"Q"Q"Q"Q"Q"Q"؜Q"Q"Q"Q"Q"ȝQ"НQ"؝Q"蝧Q"Q"Q"Q"Q"ОQ"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؠQ"ࠧQ"Q"Q"Q"Q"ȡQ"СQ"ࡧQ"衧Q"Q"Q"Q"Q"ȢQ"ТQ"آQ"Q"Q"Q"Q"裧Q"Q"Q"Q"ȤQ"ФQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ئQ"ধQ"Q"Q"Q"ȧQ"اQ"觧Q"Q"Q"Q"Q"ȨQ"ШQ"بQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ધQ"誧Q"Q"Q"Q"Q"ȫQ"ЫQ"૧Q"諧Q"Q"Q"Q"Q"ȬQ"جQ"ଧQ"Q"Q"Q"ȭQ"Q"Q"Q"Q"خQ"஧Q"Q"Q"Q"Q"௧Q"诧Q"Q"Q"Q"ȰQ"Q"Q"Q"Q"౧Q"豧Q"Q"Q"Q"ȲQ"вQ"زQ"Q"Q"Q"سQ"೧Q"賧Q"Q"Q"Q"货Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ضQ"ටQ"Q"Q"Q"طQ"෧Q"Q"Q"Q"Q"иQ"ظQ"Q"Q"Q"Q"Q"蹧Q"Q"Q"Q"кQ"غQ"躧Q"Q"Q"Q"Q"ȻQ"Q"Q"Q"Q"ؼQ"༧Q"輧Q"Q"Q"Q"轧Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"࿧Q"迧Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"§Q"§Q"§Q"§Q"çQ"çQ"çQ"çQ"çQ"çQ"çQ"ħQ"ħQ"ħQ"ħQ"ħQ"ħQ"ŧQ"ŧQ"ŧQ"ŧQ"ƧQ"ƧQ"ƧQ"ƧQ"ƧQ"ƧQ"ǧQ"ǧQ"ǧQ"ǧQ"ǧQ"ȧQ"ȧQ"ȧQ"ȧQ"ȧQ"ɧQ"ɧQ"ɧQ"ɧQ"ʧQ"ʧQ"ʧQ"ʧQ"ʧQ"ʧQ"˧Q"˧Q"˧Q"˧Q"˧Q"˧Q"̧Q"̧Q"̧Q"̧Q"ͧQ"ͧQ"ͧQ"ͧQ"ͧQ"ΧQ"ΧQ"ΧQ"ΧQ"ΧQ"ϧQ"ϧQ"ϧQ"ϧQ"ϧQ"ϧQ"ЧQ"ЧQ"ЧQ"ЧQ"ѧQ"ѧQ"ѧQ"ѧQ"ѧQ"ѧQ"ҧQ"ҧQ"ҧQ"ҧQ"ӧQ"ӧQ"ӧQ"ӧQ"ӧQ"ӧQ"ԧQ"ԧQ"ԧQ"ԧQ"էQ"էQ"էQ"էQ"էQ"էQ"֧Q"֧Q"֧Q"֧Q"֧Q"קQ"קQ"קQ"קQ"קQ"اQ"اQ"اQ"اQ"٧Q"٧Q"٧Q"٧Q"٧Q"٧Q"ڧQ"ڧQ"ڧQ"ڧQ"ڧQ"ۧQ"ۧQ"ۧQ"ۧQ"ۧQ"ܧQ"ܧQ"ܧQ"ܧQ"ݧQ"ݧQ"ݧQ"ݧQ"ݧQ"ݧQ"ާQ"ާQ"ާQ"ާQ"ާQ"ާQ"ߧQ"ߧQ"ߧQ"ߧQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耨Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؄Q"Q"Q"Q"Q"ȅQ"腨Q"Q"Q"Q"ȆQ"ІQ"Q"Q"Q"Q"臨Q"Q"Q"Q"ЈQ"؈Q"Q"Q"Q"Q"؉Q"Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"Q"苨Q"Q"Q"Q"ȌQ"茨Q"Q"Q"Q"ЍQ"؍Q"Q"Q"Q"Q"Q"Q"Q"Q"ЏQ"؏Q"Q"Q"Q"Q"Q"萨Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"ȔQ"ДQ"ؔQ"蔨Q"Q"Q"Q"Q"Q"ЕQ"ؕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"藨Q"Q"Q"ȘQ"ИQ"Q"Q"Q"Q"Q"șQ"ؙQ"Q"Q"Q"Q"ȚQ"Q"Q"Q"Q"蛨Q"Q"Q"Q"МQ"؜Q"Q"Q"Q"Q"Q"蝨Q"Q"Q"Q"ȞQ"ОQ"Q"Q"Q"Q"Q"Q"蟨Q"Q"Q"Q"РQ"ؠQ"ࠨQ"蠨Q"Q"Q"Q"Q"СQ"ࡨQ"表Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"नQ"Q"Q"Q"ȥQ"襨Q"Q"Q"Q"ЦQ"ئQ"Q"Q"Q"Q"Q"Q"Q"Q"ਨQ"訨Q"Q"Q"ȩQ"ЩQ"ةQ"੨Q"Q"Q"Q"Q"تQ"નQ"Q"Q"Q"ȫQ"Q"Q"Q"Q"謨Q"Q"Q"Q"ЭQ"حQ"Q"Q"Q"Q"நQ"讨Q"Q"Q"ȯQ"ЯQ"Q"Q"Q"Q"Q"Q"Q"Q"رQ"౨Q"Q"Q"Q"ȲQ"貨Q"Q"Q"Q"гQ"سQ"Q"Q"Q"Q"Q"Q"Q"Q"൨Q"赨Q"Q"Q"ȶQ"жQ"Q"Q"Q"Q"طQ"෨Q"Q"Q"Q"ȸQ"Q"Q"Q"Q"蹨Q"Q"Q"Q"кQ"غQ"ຨQ"躨Q"Q"Q"Q"Q"໨Q"軨Q"Q"Q"ȼQ"мQ"Q"Q"Q"Q"Q"Q"Q"Q"ؾQ"ྨQ"Q"Q"Q"ȿQ"пQ"ؿQ"迨Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¨Q"¨Q"¨Q"¨Q"¨Q"¨Q"¨Q"èQ"èQ"èQ"èQ"èQ"èQ"èQ"èQ"ĨQ"ĨQ"ĨQ"ĨQ"ŨQ"ŨQ"ŨQ"ŨQ"ƨQ"ƨQ"ƨQ"ƨQ"ƨQ"ƨQ"ƨQ"ǨQ"ǨQ"ǨQ"ǨQ"ǨQ"ǨQ"ȨQ"ȨQ"ȨQ"ȨQ"ɨQ"ɨQ"ɨQ"ɨQ"ɨQ"ɨQ"ʨQ"ʨQ"ʨQ"ʨQ"ʨQ"ʨQ"˨Q"˨Q"˨Q"˨Q"˨Q"˨Q"̨Q"̨Q"̨Q"̨Q"ͨQ"ͨQ"ͨQ"ͨQ"ͨQ"ͨQ"ΨQ"ΨQ"ΨQ"ΨQ"ΨQ"ϨQ"ϨQ"ϨQ"ϨQ"ϨQ"ШQ"ШQ"ШQ"ШQ"ѨQ"ѨQ"ѨQ"ѨQ"ѨQ"ѨQ"ҨQ"ҨQ"ҨQ"ҨQ"ӨQ"ӨQ"ӨQ"ӨQ"ӨQ"ӨQ"ԨQ"ԨQ"ԨQ"ԨQ"ըQ"ըQ"ըQ"ըQ"ըQ"֨Q"֨Q"֨Q"֨Q"֨Q"רQ"רQ"רQ"רQ"רQ"רQ"بQ"بQ"بQ"بQ"٨Q"٨Q"٨Q"٨Q"ڨQ"ڨQ"ڨQ"ڨQ"ڨQ"ڨQ"ڨQ"ۨQ"ۨQ"ۨQ"ۨQ"ۨQ"ܨQ"ܨQ"ܨQ"ܨQ"ܨQ"ݨQ"ݨQ"ݨQ"ݨQ"ݨQ"ݨQ"ިQ"ިQ"ިQ"ިQ"ިQ"ިQ"ߨQ"ߨQ"ߨQ"ߨQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"ЀQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"؂Q"Q"Q"Q"Q"ȃQ"胩Q"Q"Q"Q"Q"ЄQ"؄Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"膩Q"Q"Q"Q"Q"ȇQ"臩Q"Q"Q"Q"Q"Q"ȈQ"ЈQ"؈Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"芩Q"Q"Q"Q"Q"Q"ȋQ"ЋQ"Q"苩Q"Q"Q"Q"Q"،Q"Q"Q"Q"Q"Q"ȍQ"Q"Q"Q"Q"莩Q"Q"Q"Q"Q"ЏQ"؏Q"菩Q"Q"Q"Q"Q"АQ"Q"萩Q"Q"Q"Q"ȑQ"БQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؓQ"Q"Q"Q"Q"Q"ȔQ"ؔQ"蔩Q"Q"Q"Q"ȕQ"ЕQ"Q"Q"Q"薩Q"Q"Q"Q"Q"ȗQ"ЗQ"ؗQ"Q"Q"Q"Q"蘩Q"Q"Q"Q"Q"Q"ЙQ"ؙQ"虩Q"Q"Q"Q"Q"Q"蚩Q"Q"Q"Q"țQ"ЛQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؝Q"Q"Q"Q"Q"Q"ȞQ"؞Q"螩Q"Q"Q"Q"Q"ПQ"؟Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ࡩQ"衩Q"Q"Q"Q"Q"Q"ȢQ"ТQ"آQ"ࢩQ"袩Q"Q"Q"Q"Q"ȣQ"УQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"إQ"३Q"襩Q"Q"Q"Q"Q"Q"ȦQ"ЦQ"ئQ"覩Q"Q"Q"Q"ЧQ"اQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"੩Q"詩Q"Q"Q"Q"Q"Q"ȪQ"ЪQ"تQ"઩Q"誩Q"Q"Q"Q"Q"ЫQ"ثQ"Q"Q"Q"Q"謩Q"Q"Q"Q"ȭQ"ЭQ"Q"Q"Q"Q"ЮQ"خQ"Q"Q"Q"Q"诩Q"Q"Q"Q"ȰQ"аQ"Q"Q"Q"Q"бQ"رQ"Q"Q"Q"Q"販Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"ȴQ"дQ"شQ"ഩQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ඩQ"趩Q"Q"Q"Q"ȷQ"зQ"طQ"Q"Q"Q"Q"иQ"ظQ"ษQ"Q"Q"Q"ȹQ"Q"Q"Q"Q"Q"Q"躩Q"Q"Q"Q"Q"лQ"ػQ"໩Q"軩Q"Q"Q"Q"Q"ȼQ"мQ"ؼQ"༩Q"輩Q"Q"Q"Q"ȽQ"нQ"Q"Q"Q"Q"Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"©Q"©Q"©Q"©Q"©Q"éQ"éQ"éQ"éQ"éQ"ĩQ"ĩQ"ĩQ"ĩQ"ĩQ"ĩQ"ũQ"ũQ"ũQ"ũQ"ũQ"ƩQ"ƩQ"ƩQ"ƩQ"ƩQ"ǩQ"ǩQ"ǩQ"ǩQ"ǩQ"ǩQ"ȩQ"ȩQ"ȩQ"ȩQ"ȩQ"ɩQ"ɩQ"ɩQ"ɩQ"ɩQ"ɩQ"ɩQ"ɩQ"ʩQ"ʩQ"ʩQ"ʩQ"˩Q"˩Q"˩Q"˩Q"˩Q"˩Q"˩Q"̩Q"̩Q"̩Q"̩Q"̩Q"̩Q"̩Q"ͩQ"ͩQ"ͩQ"ͩQ"ͩQ"ͩQ"ΩQ"ΩQ"ΩQ"ΩQ"ϩQ"ϩQ"ϩQ"ϩQ"ϩQ"ϩQ"ϩQ"ϩQ"ЩQ"ЩQ"ЩQ"ЩQ"ЩQ"ЩQ"ЩQ"ѩQ"ѩQ"ѩQ"ѩQ"ѩQ"ѩQ"ѩQ"ѩQ"ѩQ"ҩQ"ҩQ"ҩQ"ҩQ"ҩQ"өQ"өQ"өQ"өQ"өQ"ԩQ"ԩQ"ԩQ"ԩQ"ԩQ"ԩQ"ԩQ"թQ"թQ"թQ"թQ"թQ"թQ"֩Q"֩Q"֩Q"֩Q"֩Q"שQ"שQ"שQ"שQ"שQ"שQ"שQ"ةQ"ةQ"ةQ"ةQ"ةQ"ةQ"ةQ"ةQ"٩Q"٩Q"٩Q"٩Q"٩Q"٩Q"٩Q"کQ"کQ"کQ"کQ"کQ"کQ"۩Q"۩Q"۩Q"۩Q"۩Q"۩Q"ܩQ"ܩQ"ܩQ"ܩQ"ܩQ"ܩQ"ܩQ"ݩQ"ݩQ"ݩQ"ݩQ"ݩQ"ݩQ"ݩQ"ݩQ"ݩQ"ީQ"ީQ"ީQ"ީQ"ߩQ"ߩQ"ߩQ"ߩQ"ߩQ"ߩQ"ߩQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"؃Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЅQ"؅Q"Q"Q"Q"Q"؆Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ЈQ"؈Q"Q"Q"Q"Q"ȉQ"ЉQ"؉Q"Q"艪Q"Q"Q"Q"ȊQ"Q"Q"Q"Q"Q"苪Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"؍Q"Q"荪Q"Q"Q"ȎQ"ЎQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؐQ"Q"萪Q"Q"Q"Q"Q"ȑQ"БQ"ؑQ"Q"葪Q"Q"Q"Q"Q"ВQ"ؒQ"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"Q"Q"Q"Q"Q"蕪Q"Q"Q"Q"Q"ȖQ"ЖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؘQ"Q"蘪Q"Q"Q"Q"Q"Q"șQ"ؙQ"Q"虪Q"Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"蜪Q"Q"Q"Q"Q"Q"ȝQ"НQ"؝Q"Q"蝪Q"Q"Q"Q"Q"Q"ȞQ"ОQ"؞Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"РQ"ؠQ"Q"Q"Q"Q"ءQ"ࡪQ"Q"Q"Q"Q"Q"Q"Q"Q"УQ"أQ"Q"Q"Q"Q"ؤQ"पQ"Q"Q"Q"Q"Q"Q"Q"Q"ЦQ"ئQ"Q"Q"Q"Q"ȧQ"ЧQ"اQ"৪Q"觪Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"Q"詪Q"Q"Q"Q"Q"ЪQ"تQ"પQ"Q"Q"Q"Q"ثQ"૪Q"諪Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"خQ"பQ"讪Q"Q"Q"Q"Q"ȯQ"ЯQ"دQ"௪Q"诪Q"Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"زQ"ಪQ"Q"Q"Q"Q"೪Q"質Q"Q"Q"Q"ȴQ"Q"Q"Q"Q"صQ"൪Q"Q"Q"Q"Q"ඪQ"趪Q"Q"Q"Q"ȷQ"Q"Q"Q"Q"ظQ"สQ"Q"Q"Q"Q"๪Q"蹪Q"Q"Q"Q"ȺQ"Q"Q"Q"Q"ػQ"໪Q"Q"Q"Q"Q"༪Q"輪Q"Q"Q"Q"ȽQ"Q"Q"Q"Q"ؾQ"ྪQ"Q"Q"Q"ȿQ"пQ"ؿQ"࿪Q"迪Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ªQ"ªQ"ªQ"ªQ"ªQ"ªQ"êQ"êQ"êQ"êQ"êQ"êQ"êQ"ĪQ"ĪQ"ĪQ"ĪQ"ŪQ"ŪQ"ŪQ"ŪQ"ŪQ"ŪQ"ŪQ"ƪQ"ƪQ"ƪQ"ƪQ"ƪQ"ƪQ"ƪQ"ƪQ"ǪQ"ǪQ"ǪQ"ǪQ"ǪQ"ǪQ"ǪQ"ǪQ"ǪQ"ȪQ"ȪQ"ȪQ"ȪQ"ȪQ"ɪQ"ɪQ"ɪQ"ɪQ"ʪQ"ʪQ"ʪQ"ʪQ"ʪQ"ʪQ"˪Q"˪Q"˪Q"˪Q"˪Q"˪Q"˪Q"˪Q"˪Q"̪Q"̪Q"̪Q"̪Q"̪Q"̪Q"̪Q"ͪQ"ͪQ"ͪQ"ͪQ"ͪQ"ͪQ"ΪQ"ΪQ"ΪQ"ΪQ"ΪQ"ΪQ"ϪQ"ϪQ"ϪQ"ϪQ"ϪQ"ϪQ"ϪQ"ЪQ"ЪQ"ЪQ"ЪQ"ЪQ"ЪQ"ЪQ"ѪQ"ѪQ"ѪQ"ѪQ"ѪQ"ҪQ"ҪQ"ҪQ"ҪQ"ҪQ"ҪQ"ӪQ"ӪQ"ӪQ"ӪQ"ӪQ"ӪQ"ӪQ"ӪQ"ӪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ԪQ"ժQ"ժQ"ժQ"ժQ"ժQ"ժQ"֪Q"֪Q"֪Q"֪Q"֪Q"֪Q"תQ"תQ"תQ"תQ"תQ"תQ"תQ"تQ"تQ"تQ"تQ"تQ"تQ"تQ"تQ"٪Q"٪Q"٪Q"٪Q"٪Q"٪Q"٪Q"ڪQ"ڪQ"ڪQ"ڪQ"ڪQ"ڪQ"ڪQ"۪Q"۪Q"۪Q"۪Q"۪Q"۪Q"۪Q"۪Q"ܪQ"ܪQ"ܪQ"ܪQ"ܪQ"ܪQ"ݪQ"ݪQ"ݪQ"ݪQ"ުQ"ުQ"ުQ"ުQ"ުQ"ުQ"ߪQ"ߪQ"ߪQ"ߪQ"ߪQ"ߪQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؀Q"Q"Q"Q"Q"ȁQ"Q"Q"Q"Q"肫Q"Q"Q"Q"ЃQ"؃Q"Q"Q"Q"Q"Q"脫Q"Q"Q"ȅQ"ЅQ"Q"Q"Q"Q"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"ȈQ"舫Q"Q"Q"Q"ЉQ"؉Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"苫Q"Q"Q"ȌQ"ЌQ"Q"Q"Q"Q"؍Q"Q"Q"Q"Q"ȎQ"Q"Q"Q"Q"菫Q"Q"Q"Q"АQ"ؐQ"Q"Q"Q"Q"Q"ȑQ"Q"葫Q"Q"Q"Q"ȒQ"ВQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؔQ"Q"蔫Q"Q"Q"Q"ȕQ"ЕQ"蕫Q"Q"Q"Q"Q"ЖQ"ؖQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؘQ"Q"Q"Q"Q"șQ"ЙQ"ؙQ"虫Q"Q"Q"Q"Q"Q"КQ"ؚQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蜫Q"Q"Q"ȝQ"НQ"Q"Q"Q"Q"ȞQ"؞Q"Q"Q"Q"Q"ȟQ"Q"Q"Q"Q"Q"蠫Q"Q"Q"Q"Q"ȡQ"СQ"Q"Q"Q"Q"ТQ"آQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"फQ"褫Q"Q"Q"Q"Q"Q"Q"५Q"襫Q"Q"Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"بQ"ਫQ"訫Q"Q"Q"Q"ȩQ"詫Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"Q"Q"Q"Q"ଫQ"謫Q"Q"Q"ȭQ"ЭQ"Q"Q"Q"Q"خQ"஫Q"Q"Q"Q"ȯQ"Q"Q"Q"Q"谫Q"Q"Q"Q"бQ"رQ"Q"Q"Q"Q"ಫQ"貫Q"Q"Q"Q"ȳQ"гQ"Q"Q"Q"Q"Q"Q"Q"Q"صQ"൫Q"Q"Q"Q"ȶQ"ضQ"趫Q"Q"Q"Q"Q"Q"зQ"طQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"йQ"عQ"Q"Q"Q"Q"ȺQ"ຫQ"身Q"Q"Q"Q"Q"Q"ȻQ"лQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؽQ"ཫQ"轫Q"Q"Q"Q"ȾQ"辫Q"Q"Q"Q"пQ"ؿQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"«Q"«Q"«Q"«Q"«Q"«Q"«Q"ëQ"ëQ"ëQ"ëQ"ëQ"īQ"īQ"īQ"īQ"īQ"ūQ"ūQ"ūQ"ūQ"ūQ"ūQ"ūQ"ūQ"ƫQ"ƫQ"ƫQ"ƫQ"ƫQ"ƫQ"ǫQ"ǫQ"ǫQ"ǫQ"ȫQ"ȫQ"ȫQ"ȫQ"ȫQ"ȫQ"ɫQ"ɫQ"ɫQ"ɫQ"ɫQ"ʫQ"ʫQ"ʫQ"ʫQ"ʫQ"˫Q"˫Q"˫Q"˫Q"˫Q"̫Q"̫Q"̫Q"̫Q"̫Q"̫Q"̫Q"ͫQ"ͫQ"ͫQ"ͫQ"ͫQ"ͫQ"ΫQ"ΫQ"ΫQ"ΫQ"ϫQ"ϫQ"ϫQ"ϫQ"ϫQ"ϫQ"ϫQ"ЫQ"ЫQ"ЫQ"ЫQ"ЫQ"ЫQ"ЫQ"ѫQ"ѫQ"ѫQ"ѫQ"ѫQ"ҫQ"ҫQ"ҫQ"ҫQ"ҫQ"ҫQ"ӫQ"ӫQ"ӫQ"ӫQ"ӫQ"ӫQ"ԫQ"ԫQ"ԫQ"ԫQ"ԫQ"ԫQ"ԫQ"ԫQ"իQ"իQ"իQ"իQ"֫Q"֫Q"֫Q"֫Q"֫Q"֫Q"׫Q"׫Q"׫Q"׫Q"׫Q"׫Q"׫Q"ثQ"ثQ"ثQ"ثQ"٫Q"٫Q"٫Q"٫Q"٫Q"٫Q"٫Q"٫Q"ګQ"ګQ"ګQ"ګQ"ګQ"ګQ"ګQ"ګQ"ګQ"۫Q"۫Q"۫Q"۫Q"۫Q"۫Q"ܫQ"ܫQ"ܫQ"ܫQ"ݫQ"ݫQ"ݫQ"ݫQ"ݫQ"ݫQ"ޫQ"ޫQ"ޫQ"ޫQ"ޫQ"ޫQ"߫Q"߫Q"߫Q"߫Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȀQ"Q"Q"Q"Q"Q"Q"Q"聬Q"Q"Q"ȂQ"ЂQ"Q"Q"Q"Q"Q"؃Q"Q"Q"Q"Q"ȄQ"Q"Q"Q"Q"Q"Q"腬Q"Q"Q"Q"Q"ІQ"؆Q"Q"膬Q"Q"Q"Q"Q"ȇQ"ЇQ"Q"臬Q"Q"Q"Q"ȈQ"ЈQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"؊Q"Q"Q"Q"Q"Q"Q"ȋQ"؋Q"Q"苬Q"Q"Q"Q"Q"ȌQ"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"莬Q"Q"Q"Q"Q"ȏQ"ЏQ"Q"菬Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"Q"Q"Q"Q"Q"Q"ȑQ"Q"Q"Q"Q"Q"Q"蒬Q"Q"Q"Q"Q"Q"ГQ"ؓQ"蓬Q"Q"Q"Q"Q"Q"ДQ"ؔQ"Q"蔬Q"Q"Q"Q"Q"ȕQ"ЕQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؗQ"Q"Q"Q"Q"Q"ȘQ"Q"蘬Q"Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蛬Q"Q"Q"Q"Q"Q"ȜQ"МQ"؜Q"Q"Q"Q"Q"Q"Q"ȝQ"؝Q"Q"Q"Q"Q"Q"Q"ȞQ"Q"Q"Q"Q"Q"蟬Q"Q"Q"Q"Q"Q"РQ"ؠQ"Q"Q"Q"Q"ȡQ"СQ"࡬Q"衬Q"Q"Q"Q"Q"ȢQ"ТQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"ؤQ"बQ"Q"Q"Q"Q"६Q"襬Q"Q"Q"Q"ȦQ"Q"Q"Q"Q"اQ"৬Q"Q"Q"Q"ȨQ"ШQ"بQ"訬Q"Q"Q"Q"Q"Q"ȩQ"ЩQ"ةQ"Q"Q"Q"Q"説Q"Q"Q"Q"ȫQ"ЫQ"Q"Q"Q"Q"ЬQ"جQ"Q"Q"Q"Q"譬Q"Q"Q"Q"ȮQ"ЮQ"Q"Q"Q"Q"Q"ȯQ"دQ"௬Q"Q"Q"Q"Q"Q"Q"ȰQ"Q"Q"Q"Q"豬Q"Q"Q"Q"Q"Q"вQ"زQ"ಬQ"責Q"Q"Q"Q"Q"ȳQ"гQ"سQ"೬Q"賬Q"Q"Q"Q"ȴQ"дQ"Q"Q"Q"Q"൬Q"赬Q"Q"Q"Q"ȶQ"趬Q"Q"Q"Q"ȷQ"зQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"غQ"ຬQ"Q"Q"Q"ȻQ"Q"Q"Q"Q"輬Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"ྫྷQ"辬Q"Q"Q"Q"ȿQ"пQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"¬Q"¬Q"¬Q"¬Q"¬Q"¬Q"ìQ"ìQ"ìQ"ìQ"ĬQ"ĬQ"ĬQ"ĬQ"ĬQ"ŬQ"ŬQ"ŬQ"ŬQ"ŬQ"ƬQ"ƬQ"ƬQ"ƬQ"ƬQ"ƬQ"ǬQ"ǬQ"ǬQ"ǬQ"ȬQ"ȬQ"ȬQ"ȬQ"ɬQ"ɬQ"ɬQ"ɬQ"ɬQ"ɬQ"ʬQ"ʬQ"ʬQ"ʬQ"ʬQ"ˬQ"ˬQ"ˬQ"ˬQ"ˬQ"̬Q"̬Q"̬Q"̬Q"ͬQ"ͬQ"ͬQ"ͬQ"ͬQ"ͬQ"άQ"άQ"άQ"άQ"άQ"άQ"ϬQ"ϬQ"ϬQ"ϬQ"ϬQ"ϬQ"ЬQ"ЬQ"ЬQ"ЬQ"ЬQ"ЬQ"ѬQ"ѬQ"ѬQ"ѬQ"ѬQ"ѬQ"ѬQ"ѬQ"ҬQ"ҬQ"ҬQ"ҬQ"ҬQ"ӬQ"ӬQ"ӬQ"ӬQ"ӬQ"ԬQ"ԬQ"ԬQ"ԬQ"ԬQ"ԬQ"ԬQ"լQ"լQ"լQ"լQ"լQ"լQ"֬Q"֬Q"֬Q"֬Q"֬Q"׬Q"׬Q"׬Q"׬Q"׬Q"جQ"جQ"جQ"جQ"جQ"جQ"جQ"جQ"٬Q"٬Q"٬Q"٬Q"٬Q"٬Q"ڬQ"ڬQ"ڬQ"ڬQ"ڬQ"ڬQ"ڬQ"ڬQ"۬Q"۬Q"۬Q"۬Q"۬Q"۬Q"ܬQ"ܬQ"ܬQ"ܬQ"ܬQ"ܬQ"ܬQ"ݬQ"ݬQ"ݬQ"ݬQ"ݬQ"ݬQ"ݬQ"ݬQ"ެQ"ެQ"ެQ"ެQ"ެQ"ެQ"ެQ"ެQ"ެQ"߬Q"߬Q"߬Q"߬Q"߬Q"߬Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"耭Q"Q"Q"Q"ȁQ"ЁQ"Q"Q"Q"Q"ЂQ"؂Q"Q"Q"Q"Q"胭Q"Q"Q"Q"ЄQ"؄Q"Q"脭Q"Q"Q"Q"Q"ȅQ"ЅQ"؅Q"Q"腭Q"Q"Q"Q"ȆQ"Q"Q"Q"Q"؇Q"Q"Q"Q"Q"Q"Q"舭Q"Q"Q"Q"ȉQ"Q"Q"Q"Q"Q"芭Q"Q"Q"Q"ȋQ"苭Q"Q"Q"Q"Q"ЌQ"،Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"莭Q"Q"Q"Q"Q"Q"ȏQ"ЏQ"؏Q"Q"菭Q"Q"Q"Q"Q"Q"ȐQ"АQ"ؐQ"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"蒭Q"Q"Q"Q"Q"ȓQ"蓭Q"Q"Q"Q"ȔQ"ДQ"Q"Q"Q"Q"蕭Q"Q"Q"Q"Q"Q"Q"薭Q"Q"Q"Q"ȗQ"Q"Q"Q"Q"Q"蘭Q"Q"Q"Q"ЙQ"ؙQ"Q"Q"Q"Q"Q"Q"蚭Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȜQ"МQ"Q"Q"Q"НQ"؝Q"Q"Q"Q"Q"Q"Q"螭Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"ȠQ"РQ"Q"Q"Q"СQ"ءQ"࡭Q"Q"Q"Q"Q"ȢQ"آQ"ࢭQ"袭Q"Q"Q"Q"أQ"࣭Q"裭Q"Q"Q"Q"Q"Q"Q"Q"Q"७Q"襭Q"Q"Q"ȦQ"ЦQ"Q"Q"Q"Q"اQ"৭Q"Q"Q"Q"ȨQ"Q"Q"Q"Q"詭Q"Q"Q"Q"ЪQ"تQ"Q"Q"Q"Q"૭Q"諭Q"Q"Q"ȬQ"ЬQ"Q"Q"Q"Q"Q"Q"Q"Q"خQ"஭Q"Q"Q"Q"ȯQ"语Q"Q"Q"Q"аQ"ذQ"Q"Q"Q"Q"Q"Q"Q"Q"ಭQ"貭Q"Q"Q"Q"ȳQ"гQ"೭Q"Q"Q"Q"Q"ȴQ"شQ"ഭQ"Q"Q"Q"ȵQ"Q"Q"Q"Q"趭Q"Q"Q"Q"Q"зQ"طQ"跭Q"Q"Q"Q"Q"иQ"อQ"踭Q"Q"Q"Q"ȹQ"йQ"Q"Q"Q"Q"Q"Q"Q"Q"ػQ"໭Q"Q"Q"Q"ȼQ"輭Q"Q"Q"Q"нQ"ؽQ"Q"Q"Q"Q"Q"Q"Q"Q"࿭Q"迭Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"­Q"­Q"­Q"­Q"íQ"íQ"íQ"íQ"íQ"íQ"ĭQ"ĭQ"ĭQ"ĭQ"ĭQ"ŭQ"ŭQ"ŭQ"ŭQ"ŭQ"ƭQ"ƭQ"ƭQ"ƭQ"ǭQ"ǭQ"ǭQ"ǭQ"ǭQ"ǭQ"ȭQ"ȭQ"ȭQ"ȭQ"ɭQ"ɭQ"ɭQ"ɭQ"ɭQ"ɭQ"ʭQ"ʭQ"ʭQ"ʭQ"˭Q"˭Q"˭Q"˭Q"˭Q"˭Q"̭Q"̭Q"̭Q"̭Q"ͭQ"ͭQ"ͭQ"ͭQ"ͭQ"ͭQ"έQ"έQ"έQ"έQ"έQ"έQ"ϭQ"ϭQ"ϭQ"ϭQ"ϭQ"ЭQ"ЭQ"ЭQ"ЭQ"ЭQ"ЭQ"ЭQ"ѭQ"ѭQ"ѭQ"ѭQ"ѭQ"ҭQ"ҭQ"ҭQ"ҭQ"ҭQ"ҭQ"ҭQ"ҭQ"ӭQ"ӭQ"ӭQ"ӭQ"ӭQ"ӭQ"ԭQ"ԭQ"ԭQ"ԭQ"ԭQ"ԭQ"խQ"խQ"խQ"խQ"֭Q"֭Q"֭Q"֭Q"֭Q"֭Q"֭Q"׭Q"׭Q"׭Q"׭Q"׭Q"׭Q"حQ"حQ"حQ"حQ"حQ"حQ"٭Q"٭Q"٭Q"٭Q"٭Q"٭Q"٭Q"٭Q"ڭQ"ڭQ"ڭQ"ڭQ"ڭQ"ڭQ"ڭQ"ۭQ"ۭQ"ۭQ"ۭQ"ۭQ"ۭQ"ܭQ"ܭQ"ܭQ"ܭQ"ܭQ"ݭQ"ݭQ"ݭQ"ݭQ"ݭQ"ݭQ"ݭQ"ݭQ"ݭQ"ޭQ"ޭQ"ޭQ"ޭQ"ޭQ"ޭQ"߭Q"߭Q"߭Q"߭Q"߭Q"߭Q"߭Q"߭Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q"Q#Q#Q#؀Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȁQ#ЁQ#؁Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȼQ#мQ#ؼQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#sQ#sQ#sQ#sQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȃQ#ЃQ#؃Q#Q#Q#Q#Q#Q#Q#ȬQ#ЬQ#جQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȭQ#ЭQ#حQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ظQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȹQ#йQ#عQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȺQ#кQ#غQ#Q#Q#Q#Q#{Q#|Q#|Q#|Q#|Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#iQ#iQ#iQ#iQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#^Q#^Q#^Q#Q#Q#Q#Q#Q#Q#KQ#LQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#8Q#Q#Q#ȅQ#ЅQ#؅Q#IQ#JQ#_Q#_Q#_Q#LQ#MQ#Q#Q#ȄQ#ЄQ#؄Q#tQ#uQ#uQ#uQ#Q#Q#ȰQ#аQ#ذQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#7Q#MQ#MQ#ؚQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#6Q#7Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؾQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȂQ#ЂQ#؂Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#9Q#9Q#6Q#Q#Q#Q#Q#Q#Q#Q#Q#[Q#\Q#\Q#|Q#|Q#|Q#|Q#|Q#gQ#hQ#hQ#hQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#5Q#LQ#LQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#\Q#]Q#]Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#rQ#sQ#sQ#sQ#Q#Q#Q#Q#Q#Q#ȽQ#нQ#rQ#rQ#rQ#rQ#[Q#[Q#[Q#Q#Q#Q#Q#Q#Q#ȮQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#JQ#KQ#Q#Q#Q#Q#Q#Q#ȻQ#лQ#ػQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȼQ#мQ#ؼQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȽQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#gQ#gQ#gQ#gQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#qQ#rQ#rQ#rQ#ػQ#Q#Q#Q#Q#Q#Q#Q#ةQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȪQ#ЪQ#تQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȫQ#ЫQ#ثQ#Q#Q#Q#Q#ȘQ#ИQ#ؘQ#Q#Q#Q#ȁQ#ЁQ#؁Q#6Q#GQ#GQ#Q#Q#ȳQ#гQ#سQ#Q#Q#FQ#GQ#{Q#{Q#{Q#{Q#{Q#pQ#qQ#qQ#qQ#]Q#]Q#]Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#1Q#Q#Q#Q#Q#Q#^Q#_Q#_Q#زQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#دQ#Q#Q#Q#Q#Q#Q#~Q#Q#Q#Q#Q#\Q#\Q#\Q#خQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȯQ#ЯQ#دQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȰQ#аQ#ذQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȱQ#NQ#OQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#MQ#NQ#Q#Q#țQ#ЛQ#؛Q#Q#Q#Q#ȆQ#ІQ#؆Q#Q#Q#Q#Q#Q#Q#ئQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȿQ#пQ#ؿQ#Q#Q#Q#qQ#qQ#qQ#qQ#}Q#}Q#}Q#}Q#}Q#|Q#}Q#}Q#}Q#}Q#ؗQ#Q#Q#Q#Q#Q#hQ#hQ#hQ#hQ#~Q#~Q#~Q#~Q#~Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#5Q#]Q#^Q#^Q#1Q#Q#Q#Q#Q#Q#Q#dQ#dQ#dQ#uQ#vQ#vQ#vQ#tQ#tQ#tQ#tQ#QQ#RQ#Q#Q#ȧQ#ЧQ#اQ#Q#6Q#8Q#sQ#tQ#tQ#tQ#Q#Q#Q#Q#Q#Q#Q#ȇQ#ЇQ#؇Q#Q#Q#Q#Q#Q#Q#0Q#uQ#uQ#uQ#uQ#:Q#vQ#vQ#vQ#vQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȭQ#Q#Q#Q#Q#غQ#Q#Q#Q#Q#ȼQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#аQ#Q#Q#Q#Q#Q#Q#ЫQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ВQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ЀQ#Q#Q#Q#Q#Q#Q#Q#ЁQ#Q#Q#Q#Q#Q#Q#Q#ЂQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#пQ#Q#ȿQ#Q#Q#Q#Q#Q#Q#ШQ#Q#Q#Q#Q#Q#Q#ЩQ#Q#Q#Q#Q#еQ#Q#Q#Q#Q#Q#Q#Q#жQ#Q#Q#Q#Q#Q#Q#Q#зQ#Q#Q#Q#Q#Q#Q#Q#ȼQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؿQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#؜Q#Q#Q#Q#Q#؏Q#Q#Q#إQ#Q#ثQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#؋Q#Q#Q#،Q#Q#Q#Q#؍Q#Q#Q#Q#؎Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؑQ#Q#Q#Q#؝Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#آQ#Q#Q#أQ#Q#Q#Q#Q#Q#ئQ#Q#Q#Q#اQ#Q#Q#Q#Q#Q#ةQ#Q#Q#تQ#Q#Q#Q#Q#جQ#Q#Q#حQ#Q#Q#Q#خQ#Q#Q#Q#دQ#Q#Q#Q#Q#Q#رQ#Q#زQ#Q#Q#Q#سQ#Q#Q#شQ#Q#Q#صQ#Q#Q#ضQ#Q#Q#طQ#Q#Q#Q#Q#عQ#Q#Q#Q#غQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؾQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#؁Q#Q#Q#Q#؂Q#Q#Q#Q#؃Q#Q#Q#Q#؅Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؼQ#мQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȾQ#Q#Q#Q#оQ#Q#Q#Q#Q#Q#Q#ؾQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ХQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȪQ#Q#Q#Q#ЦQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#дQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȲQ#вQ#زQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȳQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ЗQ#ؗQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#НQ#؝Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#РQ#ؠQ#Q#Q#Q#ВQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ȽQ#Q#Q#Q#Q#нQ#ؽQ#Q#țQ#Q#Q#Q#Q#Q#ГQ#Q#Q#Q#Q#Q#Q#ȃQ#؃Q#Q#Q#Q#Q#Q#ЄQ#Q#Q#Q#Q#Q#ȅQ#Q#Q#Q#Q#Q#Q#؆Q#Q#Q#Q#Q#Q#ЇQ#Q#Q#Q#ȈQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#؋Q#Q#Q#ЌQ#Q#Q#ȍQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؐQ#Q#Q#БQ#Q#Q#ȒQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#ؕQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#ДQ#ؔQ#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#Q#QQs >@___errors(>@_getaddrinfos0>@_freeaddrinfos8>@_gai_strerrors@>@___stack_chk_guardsH>@_pthread_sigmasksP>@_pthread_attr_initsX>@_pthread_attr_getstacksizes`>@___stack_chk_failsh>@_freesp>@_pthread_attr_destroysx>@___stderrps>@_strerrors>@_fprintfs>@_aborts>@_pthread_creates>@_nanosleeps>@_pthread_detachs>@_pthread_mutex_locks>@_pthread_cond_waits>@_pthread_mutex_unlocks>@_pthread_cond_broadcasts>@_setenvs>@_unsetenvs>@_mallocs>@_fwrites@_opens@_closes@_writes@___errors@_reads@_pipes@__exits@_getpids@_kills@_mmaps@_munmaps@_madvises@_mlocks@_clock_gettimes@_mach_absolute_times@_mach_timebase_infos@_pthread_sigmasks@_sigactions@_usleeps@_sysctls@_sysctlbynames@_kqueues@_kevents@_fcntls@_sigaltstacks@_pthread_attr_inits@_pthread_attr_getstacksizes@_pthread_attr_setdetachstates@_pthread_creates@_raises@_pthread_mutex_inits@_pthread_mutex_locks@_pthread_mutex_unlocks@_pthread_cond_inits@_pthread_cond_waits@_pthread_cond_timedwait_relative_nps@_pthread_cond_signals@_pthread_selfs@_pthread_kills@_pthread_key_creates@_pthread_setspecifics@_fdopendirs@_accepts@_binds@_connects@_sockets@_getsockopts@_setsockopts@_getpeernames@_getsocknames@_shutdowns@_recvfroms@_sendtos@_recvmsgs@_sendmsgs@_chmods@_closedirs@_dups@_fchdirs@_fchmods@_fchowns@_ftruncates@_getrlimits@_listens@_preads@_pwrites@_readdir_rs@_rmdirs@_lseeks@_unlinks@_writevs@_execves@_openats@_getcwds@_fstats@_lstats@_stats@_getentropys@_CFArrayGetCounts@_CFArrayGetValueAtIndexs@_CFDataGetBytePtrs@_CFDataGetLengths@_CFStringCreateWithBytess@_CFReleases@_CFDictionaryGetValueIfPresents@_CFNumberGetValues@_CFEquals@_SecTrustSettingsCopyCertificatess@_SecItemExports@_SecTrustSettingsCopyTrustSettingss@_SecPolicyCopyProperties>= >= >=/>=>>=M0>=d8>={@>=H>=P>=X>=`>=h>=p>=x>=3>=J>=a>=x>=>=>=>=>=>=>=>=0>=G>=^>=u>=>=?=?=?=?= ?=(?=-0?=D8?=[@?=rH?=P?=X?=`?=h?=p?=x?=?=*?=A?=X?=o?=?=?=?=?=?=?=?='?=>?=Up{  m m1pHf my|@=Ppq0F`{Pp @/KdP     3 J ` w @     }i  `n  pn  n  n4  nP  nl  n  иn  n p  n  n   @( >  S i    0 `   p3 PM @i  P   @  0 9 N d | 0 p    +D }iUbs n@ppppP`+< iN ne 0nz05F`]Pfq|'Pв3T vаA) & 34[0!8567 ?#n`02^0` @ 2pCXJM NXY3P]pTf@Q@_cTmRPZ[^Qhx`t s8zc `i}0B$0~2@~N~j} }} i `mJ @n=e `n hnqq#rO qi pnl m >j m m%7 mR Bjn m]'pP'`Y'0M'R'3P'W ip @n PnL']'DDE.ELEiKIEPN M6 `LZ  H{ @Q F 0S E! &! A!0 [!0 x!@ ! !` ! "P /" M" g"п " " "@ "p " #p $# ?# [# y#` # # # # `i# `n$ `m"$p 6$ P$ f$ $ $ $ $0 $ xn$ %xq(% n<%P Q%p v% % % q% % % &0 *& I&p ^& nl&@ & &P &0)&&Ж&''+'@B' siT'k'''y&' '' m' n'0'(@mA(nb(Pm(r(s(r();)_)U)U)Y)U)U) ~i *pj,*kB*v^*xB=*c*u*B=*^+ pn+0w1+B=X+Pgp+{+C=+І+F=+p~+F= ,y9,C=`,pzw,B=,t,o,k, Mi, i- i-q--qG- FjW- Jjg- Njw- Rj- Vj- Zj- ^j- bj-S-1. 1?.05d.,.,.P/.9/7/?=/CX/@w/@/`N/`K/M/0H00J+0 IN0 sig0/0p+050O0 n0@K 1 @m,1pQ@1*V1<1P1R1B=1@2 $2`E20f2@2223 ti3;3Z3q33q3q3p3 Mi3 Wi 4#4pA4a4 `ti}4 li4 i4 `~i4 n4 s4565ЯX5 ~55505676^6 }666P67`17W70p7 `i7`77 78@"8J8`n88P88p8949G9п\9u9 n9з9@99 n9`:0":0>: mW:{:::: ; i#;p?;`; ;;P;;; < -<0`<p<<P =W==`=@=0@>Щ>>?0@?~??`?:@@@A ;ArAAУA B]BB ~iB`B0=Cq|CCPC`Mr(D_D nD nD nD n E n;EfE XiEEEp5F xpFFyF+G~kG GxG(HpeHH@wH Xi&I`aIB=II (mJЍQJ 0mJ 8mJJK,KSKK K@K L0;LfLLL`L0L'MPMrMMMM0NP5NbN`NPGNPNN DO`QAOcOO`OO`P+PhUPPpP tiPPP0P0dQ a2Qp;KQ`dQp~Q -QQ\QqQ `mQ"R=CR nYRzRRpRRR SJSpSS&S` SS T XiT 5T` VT#vT` T0%T*T mT ~i U n!UPzBUC=qU`U=UU/U"V/DVAnVPBVP|VC=V<VGW@z;WC=jWzWF=W{WF=W{XB=:XЀVXF=Xp~XC=XpXG="YCYH=rYYC=Y @mY }ZC=/Z}OZD=}Z{ZD=Z ȳnZ гnZg[o*[^O[^q[`v[s[pb[e\ m1\ M\\Й\\К]T]0] `ci]]]P#^СO^~^^^^*_ nZ_gy_`g_f_0d_ f_ Xi_ j `pm!` n:` ci^``` سn`qa!"a!Fa@!ba!}a!a!a!a!a ib!b@!7b!IbB=ib!|bbb ibbb c n!c n;cScuccccc nc mc nd,dpEdaddd Xiddd e6eVe-{ee@epLeef:f iPf<hffPf0(f`f йnf ng n2gTgmg g0gg ng ngP3g: h%h?h`Yh'mh nh nh nh nh@Bh%ip-i` Ii jiiiii  j1j Nj0 njj `ijPj@jjj`k m k7kG=\kpWkpMkUk@WkYl0Q)lWHl`[jl il`VlVl`]l mlTl@am@^!mL7m mHmbcm(G=mm`mm@n0nYnxnn innЩnn`o0&o @m8oTo po@oP#o#o #p{&3p#Zp #p@#p#q#:qР#gq#q#q`#q#q#rЈ#Gr#ir $r"$r,$r%$rp%$ s@#'s/$HsP$as#s#s#s#s0$ t $&t@$Jtpz&qtPH$t #$t-$t#t$(u$Lu$wu$u $u%$u,$v*$IvH$iv3$v0#vS$v#v$w#Cw`#gw#w#wp$w#w$x#5x@$ax#x |&xj&x}&x{&"yp~&=y&Yy#{y@%y0%y`%y%%zp%Rz&z &z%z %{P%R{%{%{%| %F|0%|%|%}%4}%`}%}%}%}& ~&R~P&~&~9&~/& P5&? 3&q?&@&:& =&6;&h<&[$ǀn$T$'Z$[r$z$Á|$$*Е$i$$܂$Ф$ZP$P$ՃP$`$R$Й$ф $$#P,%Q)%'%@$ۅ"% 0#%=`%%q % %Նp % %9%jp%@%҇`%%6$g@$0$ψ0$$7l&g%@ %ɉ0%%+%[%% %%%O%%p%@%.%K04%s@/% 1%ь2%&3#WP#w# ##ԍ/&@&&IИ%wP%%%p%S% %`%X& &/P&X&}|&|&#p#p#"#K#t`&%%%0&>`%pF&F&`G&# #2P#X#}v#w#ʓ v#v#v#F&&&0M% O%5`%cV%%0%%#%U% %%p% %O{%}%y% w%w%C u%sr%r%՘%@%+H&SH&}H&x#͙z#x# y#4y#a Lix Li Li Mi @iӚ@#Ш##4P#W Eiy ,Di Di$ڛ`${#p}#2~#S nmPY#0X# n$ޜx$@s# 0t#!r#7#S#t m m m m m @E&< n\q m @mΞ `mf&q m>`#W#n_&a& n̟ 0n @n  Pn* `nK pncp#~Z&[&]&\&A&7k&Oqtqqqš#& m`$(q&9#c mR&c#͢ u#u#P%%;@%b@%% %ݣ0%%1%^@$P& mɤ!&0##"#B #hU&p_& nʥ nI&L&N&N&/O&P@#b&@&ͦ mq# j#- mM &b @md#P^#ħ `m m &%#:`#e0%0l#Y#Өq! !3!_@""ũ"!#C#n#p#ê#""3"[""#0" "4p!#``"#0##$#P.#00#A@1#e1#,#`,#2# 3#54#f05# ip"Ԯ# n%Ф"F nj@#u"P"ܯ"n"o">x"_p{"p" "Ȱ@""p"8#f""P #αq" n)P"H#h m'""Dz" (n$##Љ"@#Y6"t"""׳@"""6"R`"q"" m۴ m m0 mX @m `m#ȵ# m m m8 mW mv m @m `mӶ m m m m5 m^ m @m `mѷ m mq*`"?"\%"\"4"ո`"01""7$"[ "r@7";"ι"" P)"**"O@"j`"J" Rnɺ m`#!#H@"l # 0n n˻p""!2 `iX!!P!!P!:!t! !Ž! nP!E!oq!Ѿq!7!uqqq!D@!epN!?=!R@=!@=+!g@=!@=S0! @= !(@=Q!0@=!8@=aP!@@=p!'H@=y@!P@=!`!oX@=z)0Jr i0u@ 8ne| m mP m @m& `mN mn m m m`]0^^@_j@``ab`\,\N`ct0d0e0ff4pgWh{h0ii`j0k,Sw `iнpU m  Rn&Ls%+!C,c@) кn @n` P  n pm50 W v m   n n ,X@0c4G`($'/Rr nP"p!'1Lf `"Gk n 0n!BiP@ @n0 4 ^PP"K vp `xi0@Eb Hn Pn Xn `n Ai@Pp%0F`h ipp0-POq Pn`4 nP ihs} `ntO@M0MPgBfa\ MpfPS 0d.Z^u} Vw<w[`x{`rYp@K@yP{{`| .'PxTPT| V70z-#Y""@!Pp%PwDp'n s@s`spsss?sfst0tPtpt)tNtutttu0u;Puepu`В-PW}yp@0 0Di. `iGp\c} p XD]`p`+0Fpb@~ p@q@= `n\ nx` n hn pnm5Mh}i m ip(ip з,Ok`@~@oP-PM pnj0 :КXp oU m npg@ qpK2 `iI ndo043pEd0567:`8@$`:`KT?j@ABD%'@*,2-U/yPF1HI:0<=`8@\nPhp n np)D@ep00` l.mDmZg}@e pHi PHi Di iYh-qJddpVz @m `m m mW di#. n@ Mbx0ЌP q02pH^ЅspPrqp/F^y}z0s0qpЉ03Ng|0rqp6`M`d0ap^``mlml!j;plX0oХd`c eb@ac0j2iKjgig`ife@g i  xn n-`v@ HmL`c лnr n nn 0un p@ ' > P ap v`  p      p & Ap Z0 j     !    3  $ 25 GP Z m `       " + ?P U l@  D ? 9 : 0G = = < 3p; D0b ]`J pd h p @^ PF Q ; m p 'L 9L K`K [i s U PN g pW R q S Z H -7 G0 _P x i `   8 0    n n  ` - > OI ^ hP x> @ D @?   @ n m n3 py   J P  P `  i @  / мe @   `ei Pr@  xii - @- -  &-3&-i)- i-(-0p)-c&- -0_- b-7 xihH-6-9- yi5`;-``3-@E-5-9-!@N-RM-M-M-P-$J-_ Vi @Vi ipI-! mL my `yiP,-p*-+-b `i 1-/-! n[ n @n n nP.-2-2- mi7R-j`Q-0R-PY-W-\W- iT-]-PV-S-qq; `iu0001p0s0000/ mif)(@)p(X n @ n 0 Q@   % 0 i   P   /!л x! !P !p &" f" " yi" #@ W# # # "$ c$` $ $ "% `% % %Ж & Y&0 & & 'P J'И v' ' ' (p P( ( ( n) nJ) n) n) n) n/* W* `n*(q* n+8q_+ n+Hq+ n,XqA, n{,hq,2,p29-2r-2-2-@2/.2n.2.P2.Л2 /2G/02/2/2/pr2:0m2o020201%1P1c1p11 11 122[22222232K323232 4,2I424P14P15P1P51515p151>61{6p16161#71[717171 82L81818180209з1g919029p1:1I: 2:1:01: 1A;@1;`1;P1;15<@1p<2<2<2*= 2m=2=2= i>2D>0`2o>`G2> 2> 2?1.?2e?2?2?2@2O@2@2@2A2;A2vA`2A@2A2A21B n]B0%2B1B 0C@0TC0C0C0D iUD@0D0D0E0\E`0Ep0E0 F71XF81F :1F:1EG51G@51G iH01\H21H)1H-1LI%1I%1I%1J PmUJ$1J XmJp#1K 1VK niK1K `niL@;1^L<1L @1L@1)M`B1kM@1M@@1Mx1.y0. .0+P0c/=0ۆ0/K/0/`0P/-l/i/@<0݈0p/Y/0Љ/ 00M/0///9P/op/t/ދ@0/Q`00ь 0@=0L//Ս/ /\0/`/؎//NP//ď/s/4/k/0/ 0/Zp0p/ё0/E/0/Ò`|/P/4P/k/0/*/b/Ћ//30/n`/ /E0@J0Fc0v b0p@0ږA0D08K0jB0@`0ΗM0@G05@>0cc0U0ҘC0`.HP0m00@030pe0`~0`0P0^m0n0ћ0 @n0Hp0pn0P~0pk0?f0vp0P00'h0ep0`0ޞn0n0en0o00o0' 0d`0 @i z.d.`0Q.zЖ.p.աp. .6P.]py.`w._..pc.E-|p.0.ޣ. S.X--Ф-@-KЧ-~ nk/k/0G -q\.K0Ʀ-.0/d/Pb/ڧ.0.Np/0.Ũ.P0+0` ȴn/ũ40/>/v//q/.`/_0pm0Ы0 ^.:4u443#3a34׭P4 4G@33430p3g@34P4 `3]3333T43̱`4  4H3}4@44-2d04p2ݳ404P4#4ƴ$4$4:`3yP333'3`4@4ζ4 @4H3P3ŷ 3p39` 3o3@303` 3R 43ƹ3384u3/3PF3#73X@33̻K3 ` 3A33ļ3  3E 3.33p8374p@43 i3B3mh3i3ؿk33J33p33&3]4` 4`3p3 `3Hд3333$4`~333`!4!4Q2 дnP2 شn'@3``333 n,3d30342$c3N3xP3 34 4,4\`444 4 4F@ 4v n g3g3pm3I 3y `m22 @f3<j3op3333*3W n n n n(4H(4|)4)4 n nG^3 np+4+4@-U -P-@- i2@-d@-~-~-->p}-t--@PRpL0YZ@a:PQ{XЕP}&O]@kot rAx0wf)b0[U]`b0ЫN P=@hxpqpsu!pvToPp@wШ"\ PfЊ%0dТ/py P@<} @HpKx Di 0Hi' DiW Ei 4Di Di Ci 8DiG Diw Ei Ei  mm m @m `m4-@If0FPC@K  m3 mb @n `n Hn@0xJB`^P<k= (k m m 3Rp40O m{ m @m  `m7 me m m m m PnS Xngd0l{O m~ @m `m m m>>l m m m m$ @mS `m} m m m  m5 md m @m `m  K /|  m  m  m z4 `]  P @  I { P   0 0' Z    9  `L   .  @ ZaPapa0a@0`l`@`@aP$0Q|60f Pf$R|hPi/`uaPv{}p@k@'PUp0 4^po@n`kEmvpoqq0qHpopppqWP`~>p@Cuy @x8`xf x ww0w0xHr@P@&pR 0Mp} B s    !1!d!0!!!0!"P"""Р"'#Z####!$PG$m$$$$ %Z%0%%@%'&d&p&&P&#'PR' `iv' m' m'@'P (PF(`s( (( m) m4) hm[)`) 0m) pm) xm) ,*\* @m* m*Ъ*+.+P_+P+ Pm+ `m+ m , n>, pme,@,,`, -:-a-- `n-- m.'. 0nV.|.^.A.:.C/DA/`g////]/ m%0 mN0o000f0 i1P-1pU1j}10|1}11p282_2222 3;3_3>3p3p 3 494]444 @n4P4,5ET5T5R5P5Z6pWJ6<q6@6-6-66d77qG7HB7Gc7G7G7G7H7G 8 G08 .H_8P.H8H8XH88H9YHI9HYHt9`H9YH9.H9.H4:.Hj:YH:H:H;@GD;YHs;/H;`G;XH <}H1<~HW<G<G<H<X~H=~H1=~HZ=H}=G=H=(H/>PHv>xH>H?HN?H?H?H?(ZH=@@H@hH@HAHFAHAHA0HB@/HRBG|BXHBXHBH5CH{Cp/HCHCG"DH^D GD@GD`GDGEGMEGEGEGE GEH#F HKFHHrFpHFHFHFHG H*G`ZHEG8 HkGHG@GG`GG/H8H` HH/HH HTI HIG*JGJ0HJZHmK00HKGCLGLXHMZHkM[HM`0HLN HNGZO GO!HWP@[HPx[HYQ(!HQ[HeR[HR \HgSP!HSX\HuTx!HT\HU!HV!HV@GVPHLW`GWGVXHXGZYGYHZGZG%[H[ G%\H\@G\PHP]`G]GV^H^GV_(H_!H`Gu`H`"H4aGaGa0Hcb@"Hb G)ch"Hc@Gc`GXd"HdGe0H~e\HeGZfGfHg0Hg"Hg 1H@h"Hh]Hh#H.i0#Hii8]Hip]HjX#HAj]Hj]Hj#Hk^H_kP^Hk^Hk#H/l^Hl#HlHl#H^mP1Hm $HmH$H\np$Hn$Hn1H2oGfoHoGo Go@G p$HG G@G`G GG6,HGGYGȘ G@G`G1,HU,HG`HGG4`3H]GG GӚ@G-H$`GTGGGӛGG2 Gr@G`Gל0-HG7X-HGGG"-H]-HG Gޞ@G `G:GkGG˟GG G73H`3H@G3H٠`G-H>G[GGG Gu G@GG`GGͣG؀HhHФ4ݤ-0-0`P6 ni` n`t- Ziߥy-0y-5z-\d-e-ۦm-k-_ e- m-k-!s-qc- Zit-)B=un- mq-% eiL firpnU Zi yiӪG' hnE'G'0 pnLqgq`D'J'xqū xnܫ0L'HG=`K')@H'BH'_I'y n n niҬ n߬ n n q4 iK`+k0.z`0 0ĭ`/ [i(XG=@)XhG=~*(D=Ȯ-xG= /"G=L@/n8D=@%".G=/qH'aqsq 0Giqװ qq`p40 nF0[@xP `   `fi ` 0 M`9a fi} Pn `n pnѲ n n! & T  p ҳ   " >@ Z  u   ɴP  p  =0 Z x   е   (P I n0 !  # ޶$ P / R x P  з   p *' F b   0 0 1 8 a `  Ź   @i! m; mT r m n nк n m@& %  F m_ mx m  ۻ 0. @. /@CQ@Ds'p&(ռ0&*"`1E`)eq  pDi@` 6`0оp:^ppԿPDhи  [i+pM`k`C`gP 4 @nPpx m"P(Kjp@@0#40:N8u @[i `[i [ip1  2 2 Qh@= [i     мn,qK`H=Up o@  0 @  `  ! 7 O f | oi  m n n n n n 0n  " 2 nD S h` zp   @n Pn `n0   0! @ . KP c }`     i pn n n* n= nR` h  @   n0  i нnI=H=&I=.&DЂ&` iop&{&& n0p0pH=I=I= `i@=qqu4p45 @iE4bx4qC40}4P{4y4-4@34A4f4u4w4.404+P44<<4T4r@4p54p4B4@`44 PG4&Q4Eg4Vh4l4o4@4i44 `nHD=-`9E@OZ@o@ *-=`p&0p&=Rj?p@N M*PAZt#QO@" `"<Qp:f2z0@@`$K1'Ib|@PP<P?%=;p]uRP6P)POpHe @!!p""$#G $j$ ijG=H=!01G=Op]btu `Gi %J%P&&!PKAp'a'| n p n n ) m:dNbew| hGic pGi xGi' H=I0T[mP@SZ2@Qdpx@p@^ l[.PEVPwКЍPS @.{@@SWe@w m n mIG=G=3C0H=apqG=@ 0 л$>`Wq0й % ?Yz`p0:Y fin fj i n jj ip j nj i  *+ `i; nZ0&p& nP&&p&`&& n$ `n5qHp&S&`P&s &&&&q m n n &! n2p&K&b @mr 'P'4'"'"'-'4#'d0,' 5'5'';'*:'T5'w''B'B' C';@C'g`C'C'(' i n"$'< ȵnX='m('-' еn0'"' ?'3`@'\A'A'p ' Ci Ci Ci2 ziR `mm '0 ' m0' mp' ? [ up    |,Pe2`!I!Z!u@!!p!!! !!3@!J!Z!lP!|p!@ \ \ 0m ] m Я!.!B![0!o` ^ b P!p!! !+а!I!i ^ !pi f d pn q t *Ps A`!U!kpJ K K @      % B ] y` 0p@!0Copp   -!J h@  0 lд !!!8)!Op!j0*!!!`!0!P!p!!+!F!b"!p$!!! &!Э!!!40!U!qP!*!3!3!@J!6!J!p!0!E!_Ю!t@:!7!;!!!0!P!9p!X!y7!!A!>!=!K!`8!/M!G0Q!`P!xS!S!j!T!j!0!U!)V!EP![p!v! Z!PX! \!!б!!9!Z0!zP!@T!p!b!`!0^!$Pk!>0m!Wq!qo!!p!!!p!2!P!i0!!CpFC@TP_!P 40 F ]p o P 0     %0@p S pp  P! @  !5PHb`0 0  !-!F!_!xЩ! P!! p!`2pI_PvP!!!P  +@ @ Vr!P0u 3@Xu@`+!R!s!P,! 0 ;` ZP wp! @i mC! m 0n0 pA  - #* E* bP, }' ) 0( 0& > @2 @4 /  . @C -H >H Q nd nt n n m m m@X V P    7  X pv!q pw! w!  m  m  m!  n3 F p Y !r z  x! x! y! 2   pK `L! K8 !I !Z p!p ! ! P! y! ~! ! !3 !U Ѓ!h y   n  @n  `n N P   q  m  m, `!8 @ J  mY `o     q  @n  Pn  `n pn2 nK ni n n n оn n n n n6 nP 0nu m LЗ }   m m! 0!@!/`Ba[ n =  n !JSP!`% `!  ,p >BLq] op } y b m P!q صn) <ж P g }  Pd@Mqq I   n@ =qTqjP!!`!0 PW N Q P  Ph'0 6fKNe nt``     n @m`/! n !/!P !h`!z0!p!2!@!t!P!0G  pk -'!@pH!SPh!gi!i!0  m=0> @P  0 'w 9px N!] mw n m m (m nqd! `m!, 6 `nE(n (й((((( ( (=(Z ((( (, ,,*@,B,Z ,u,,***P*)л*Fp*b**p****( *K`*m`****P**'`*L*q* *0*p**0+/+N +q +0++++#P+D+q++++ p+- p+M P,s , p+ + `+!0k,%!+J! +z!,!p+!+!+#"P+I"P+u"+"О+"+"+ #,-#+E#+\#P+y#+#_,#[,#,#,$ C+6$(Y$0({$@d,$,$+$,$0, %@,>%,[%P,z%,%c,%@a,%*%p*&*7&)f&)&*&З*&)'*)' *V'*')')')(G*-(*g()()(*(1*) ;*K):*|)9*)pD*)PI**).*0,Z* )*,*0M**)+)*+@)U+F*~+`!*+P*+,+,),)a,),P,,,,Q) -P,0-`Q)X-,{-,-,-,-,.@,).@)R.,u.PG).pG).0G).F)/0)=/ T)`/T)/0g)/r)/c)/z)0)H0})p0)0`_)0a)0l)1L)<1@A)^1B)1E)1В)1)1i,)20,M2`e)u2@,2,2,2po)30,93n)l30o)3Po)3,3p,4`,B4,l40,4P,4Ў)5`)25)c5p,5,5Џ)50,6,=6b)_6,60,6,60,6,7@,I7,p7,70)7)8,+80,Y8P,8,8,8p,8p,9 ,99p^)h9`\)9,9PZ)90\):`[)7:P,^:pZ):,:,: );).;)T;)};`); ););@)%<,Q<`){<)<)<,<@j)!=@,G=й,q=,=,= ,=)>P)G>$)q>)>!)>@')?)6?)j?O*?0*?c*?@o*4@{*e@*@`*@*@p*5A*jA*A*Ao*B*VBPU*B *B)B`)Cp)@C@)wC .*C*C*D,5D *^D0*D0 *D#*D0,E`1)2EP.)TEp1)wE2)E)E@,E-'F-YF*|F*F-F-F)G)AG)eG-G -G,Gp,H-HH`-xHp-H-H-%I-VIP-I)I )I )I) J)(J0)DJЯ)aJ)J)J)Jp-J-!K-OK -|K0H,K`H,KPH,K` -K - L` -(L -OL,mL+L+L +L@!,M,*M,LM W,kM",M,M0X,M,N,;N,]N$,NV,N',N9,N8,O 8,FO7,nOP:,O<,OH,OU,P@++2S,eSP-S0-S-S -Tp+GTd+nTL+TR+TJ+UR+;Ue+bU\+U0d+UpT+U- VP-=V,eV`,V,V,VP,V,"W,IW`,qW,W,WP,W,$X,OX@,uX,X,X ,X,Yp,?YP+fYp+YP+Y+Y +Y+Z Oi#Z Ci9Z tDiOZ icZ 0m{Z 0mZ PnZ `nZ pnZ n[ n#[ n9[ nR[ 8mo[ n[ пn[ n[ @m[ n[ n\ n$\ nA\ *V\*m\@*\@*\@*\*\*\*\ *]*6]`*V]*|]*]*]j,]* ^+(^+?^ nV^(l^+^+^Y,^*^(^p(_,5_ nS_*h_(_ m_ +_ j,_ n_q` 0n` @n9` PnP` `nl` pn` n` n` n` n` na n&a nCa nda na na na 0na @ma @na Pnb `n5b pnMbC+hb d,b0d,b +bpt+b|+b~+c+$cg,:ci,Qci,hcg,~ch,ch,ci,c*c*c nd nd n6d 5)[d,d,d,d,dq e04)(e nHe Pmge ne ne`;)e;)e;)f<)-fp:)MfO*nf,f,fp,f,f,$g,Kg,g0,g,g,g,*h,Jh ,jhP,h,hp,h x)h`,!i,Hip,mi,i )i)i)i,j0,5j5)Vj,yj ,jqj0,j,k)#k`)@k nWk)wk mkp)k)k)l07)%l \nCl ngl8)l nl nl nm n*m nGm nim nm nm nm 0nm @nn Pn&n `nMn pnmn nn nn nn nn no n'o nIo nqo no no no 0np @n#p `m=p*ipp*p()p (npp)p 0nq 8n,q ,)Nq @npq Hnq09)q9)q Pnrq!rq?r*`r*r Pnr)r)r@*))s,Vs,s@,s,s*(t@,Yt nqt)tR)te)to)tb)uPx)6uЃ)Vu|)yuX)uj)upk)u7) v-)+v@)Jvp*ov0*v Xnv `nv*)v)w Hm@w hn`w)w*w)w@)w*x*x x*Jxpr*tx)x*x@k,x0)x )x+ y*"y+Cyp(cy+|y PmyC+y*yp*y*ypH,z `n zP -Dzq_z0*xz`+z*z,zp,z pn{p){(5{ h+L{ -p{-{({({ *{*{ xn| -;| nW|+l| )|)|+|(|0(|P(}(/}з(P}P(s}(}@{+}(} n}/+~ n~ n6~0.+S~ ng~ n|~`*~(~ n~ Xm~ pm `m0 hmQ pmz xm mЮ(d,c,5c,`++,,0,&,Ip,k ,,,ׁ0,,'p,U,~,`,ɂ,,@,=,^, n n0(ȃ )P))! `n6 iT{(|(0|(P|(&p|(X|(|(|(|('}(_q(p(@q(y(w(D ia pn }(}(~(~(I(x((Ո( (;(pP{(z(t(ɉv( `gi&5м&V0&wо&p&&݊&@&+0&[P&P& &Ջ@& i`&5&S&q&&P&Ό&& n3qSp&s i &;͍P=<;:]i}ePȎpp@'w@[|k PhϏdO@O!N?0Vmp̐ iߐ=>R)pz={Qhx|{ypK0PǑU֑[_`|*?@QOГfAx@gj0ǒe ْU _ Z i D /0D @PF SP4 gI |2 3 Q  V ғV W  Ѐ c -pW Ea Z K lN S `]  5 q ϔg ph 0i  `@ : A VA qo  ` P ƕ ە@  P  { 3{ G| \t st t t  iǖ @nЖ ߖ n n n n! n3 nC nU nhz q? |w  } pj U 0X ×r Η0} ח n n n`[ \  n, nG nZ`Lg0~ pJ   z  0n @nϘ m٘ k u І  *m < P9a5xPT J` qA ֙x wv @=@=!H=*H=3@=> `oiN Pnb m @i `n pnΚ 0 `% -' Fp& `@ ~p   ؛0 Џ `  5 Q k  `  ֜p   " 9P Q p p  ȝ    20 J` d }p   Ş@ ߞ p  2Х M` i @ ` ɟ` `   0@ F `p {  @ ̠а `   9@ U op    ӡ0    8U;o@>H@Ţ @ `  9 Y |  0 ѣP   9 Y q @ ` Ĥ ݤ н  5 S@ n`   ¥ ߥ   1`Ry0 P p ͦ   * C ]@ |`     0 6P Np g    Ԩ0 P  p ) D \ x  0 ǩ`rߩФq}/`Ll0prת 4Ip~f|rs«y}`+PsG `v`|pqpr٬rPo.ВKPo i` V pb.>T oi \ PZ o^ ݮ0P"6K0_`xc  ůۯ  0 a 1 E Z v   Ű` ڰp 0 0 # 80 OP e@ yP ! # ( ӱp*  - . p, 6`/ U0 rp1 @2 3 4 Բ7 @: p; P< *C @? Z@ r@ B 0D  H ӳ I F 0J L .N DO [Q r R S U ^ ̴6  8 = 5] CAZ@oq0p0ȵڵPe ) } (y <@ Ow a@s v@t  p @u z ׶@   p~ ! 9 Iq Zv p | Q@ Pٷ `n ,qBqXfz n@ٸ@$p 2qF @nY `nno m Pl m pk Ϲ`eo Pn p  3!F!Y"n!"@""Kͺp@ *@=Qgd`izPhJjĻ nԻ? @?`A0$V$r"#p<зʼU  ȶn`  " :Q`+j0,%>>ڽ@PAB>Cd@EELܾ`M O7Pj`G HJۿPK &$(F<p&'9;p)8AaP{@+`L s@>Pg`Q (!E@a}`,@@4p Y w   `p4Q m   з#<@T m`UUUU W(WB@X\ @in` `n nq n`53`Np!]tp@ n giP`  n n*>R nf|`pq@@$PWKTlTYpQS pQ+PkMfljlk`2`SpsPp-@p=^P 6("20+[)0  @/*Tr`p 2Pn `i Q n n# m;CVDw A>pEI?F/YANZr= n @n `n n n n n% n; nQ @nf `n{ n n n n n np^[){= @nXzpPKP жn ضn6NP0Mk N0pH=3Gp/I`b| p`;epP0pF0za|{`4Yt @@@A`fdpc@__`;bU wp@'0@^zЗ@rxo+vIyh~ `; Wt0@qp>"`v<@y[vHEEpZ6(:D`4W s3NiP'@-01+"0*Ip,q6Tt0P@ $@b 6P5@]`Pvw}"x<Vv`@@ P,PIaz0<:9!M?0ZwП` f2eT Lih gi| ii i0EpP`q@%PA]/t/@//.0T m m m3 nK{Zpp`DJ KKP0AP]qg0`@~` q+`A<qL]qn q n n n` mm n(q$q2`~@ nR n`qyqq`yXD=0yC="V3FZmpq Gi`1BPB0G%6 mOaPt m@ m@03' mBp.]0qo"&AP=8q`+PM Wnf Un `n@q n mC=RLQ@=S5e@=w40`hD=jxD=v D=0]AD=` gtD=sD=0[D=cD=4poJD=naD=kE=p^E=Ph(E=>0tU8E=z\HE=dXE=phE=a(xE=Hm]E=P_E=iE=`uE="\2E=PfcE=qE=bE=@nF=(CT@k`@qJ3[I`VbH{WW [Pp\T-UQhq~@S@ n nC m`C @z!(C=D@DZEq xovoPoHq  ah4`GPq[j{|F=@@H K$Н9 iW @ir @ixp`j^ )$6%M &d&{@"p @"7PJ[ ol`{q m `nXq@q`q@ ]# 0m:@H=U nh8{:FkqP m @m q)?iSngp|`f n q `n@?q:=>=@q-p AprNPeprx m 5 9\ nj3i|`z=  %GGJXp4gJw`*>q NPP54J@c@: q3$qJhqZ=lP2} =p3 npqP i3 xq c4 cN  h b| pb @b Љ 3  TEi q PI H z=1 2C pY  ng (q{ q q q @ q q q  i  Pm+ > P Pf x  @n 0  Gi l m 0  A+ CD EY pEq n n  ,q @U @Q S @R @O* PG O\ Tq q  n e e  Xn ` 00Npf@0qqq4q q!2pDZPs` 0p 08q 5To@`1`K0 dz0@0 P@4{L^\+=p`2=q:= (n %S`&j`_`fh%*0,,(  q5aJ-`p.w42p34P5P00./H/c1z02~{   V @qW.>@Sd {_0 0ZpK' :N`yP) >y qj`q*0KDLhVJX b` `nP@@p(pG?qLZyj0z <@r!Dqqq,@>@p5S@-fjypsq Ciq`q m @n0`9JBUPly~b Dib` Gi hi  `hi# hi7Oga`q` n  n @,q;`Pk n]!0=K`_s`Gq 0n^@-DRfx`P- ! < 2X  l   ` " P6  !&2!p:M!Pb!w!`!!0!!!l" Gi" Gi2" GiK" Gia"qs"q"V" "PE"}"#P+#<+#<@#P<T#<h#<|# <#+#x#P1#0#w#$ x!$ <$0N$g$1$p$ `m$r$p$$ gp$q%q%)'%@%Z%]i%`%\%% pm%r%`?% 8n%<&X&&X@&JT&{h&0)z& a&&V&P&з&@&и&P]''q9'`O' b'x''@'_''q'Hq'@' ("(q:(qR(`k((q(Lq((Pq(Tq)")8)0T) q)))))))Т **`=.*0@F*>^*q*0**@q*0*'**@ * +Xq+ '+0F+`W+>n+6++@=+ +q+ Ci+` ,,;,P,d,z, Ci,_,@,$, m,,,`--|-|/-}H-`}a-p}{-}-}- }-0}-}-} .@}.P}4.`6I.`.w.@7.\q.q..7. 8.6 /5/Й0/@/V/0n/0V/V/W/ GJ/`J/ m/ @n/`q0q+0D00c0}0q0 q0(q0e0d0 n1P^1 +10E1 f111q1 Hn1 11U10V2pk.2GF2d22222@q20q 3$3B3(Z3Ћl33{3~333|344x-4P{>4IS4i4}4{4 4044py4;4x58q5,5@q>50eY5 [|5 5Z55p[6P@6c[6P6d66d6)7@dD7j7[77`7\708c8F8Pcb88c808@\89/9}K9@=u90i9i99\99@9pa:p":.8:/N:.a:(w:^:`::0::w:pn;`;0w";i6;0N;0l; n;X;(F=;W;PC;<E<,<PC<Z<r<<o<R<{<4<U<@f<Ї=N=@7=H=dqd=lw=k=@n= g=j=Ph= p=Hq>>">%9>I>a>P{>>P>0>P>> `n>!? n? _8?`N?Кa?Vu???? ??y?0y@ @07@`J@_@!s@@"@#@@ (o@Ph@`i@@0eAp{Ap6A@*FA*[AjA m~AiApA AAABqB0$B ;BhqQB`dBBaBBB@BBBCq,CPACSCdC`yCPC0C3CC DiC DiD jnDp%D`9D iSD `ikD mD PnD'DD+DpDPq E@qE1EKE`eEpEEEqE EEFF`5FRFkFPFFFdFXqF jF nGG@X%G@8G0NGjG@GGGG=GxG1H mH Xn)H@)DH*_HjqH nHCH HGJHHHHI"I`+3IDIVIiIII0IaIIaIp$J0"JL2JPWGJ0WcJP{J0J `nJ hnJ`qJhqJ:JKGK_,KP`AKЏYK nmKpq|K@fK foKK`K0KPK`LХ.L@IL0`LuLPLLLLPL0MЬM/MGM^MpsMМMMMM@M@MN1NQN DijNlqNNNNNPNO&Oxq9OiMO@TjODOBOCOP8OJO O=O P m P pn4P mIP xn]P mrP nP@PP@P.P PQQ@H/QbIQ n^QqrQqQ_Q0_QЈQQ @gnQ`R !,R@>RMR``_R|R R`R RDRqR DiR`_RqS/SqBSqXSqmSqSqSqSqSqS `iS@=TI=0TI=OTH=nTTTpT0T0T \iU:-U "LU8F=yU!UHF=U!U8C=V!g0FUgGmgIgPIgHggg@  hP8h`Mh `h`rh`hhhhhhi+ilKlXl ngl@ylBlClCl7l8lPJ mD'mIEmFgmGmDmp7m7m%m4n0'nBnУ^nyn0nF=nn nF=*o Do@]ohC=oPoxC=oooF=p7LO@MaMtMLo j k Ʌ(JЋn`@@׆>cЃ (HiƇ Di \i @n `n( n= nR`ttx `z-{NPs0pՉP =aҊ` Af @ҋ 'M ipЌ@3`U} \Ei Ci׍ Ci Ei  Ei( EiC Ei^ dEix lEi Di DiƎ &Di Di Mi Ci. iGff@hiۏjpq*0rI!a~C`ϐ n8E n5 nY nx0 nrÑ%ߑ npe"(#@dR ne n| n n @n `nؒ n-p+@5Vj0 n nÓ nޓ n nPq! @n9 `nM nccu7Wq @nӔPW ED '$0B nb?z`A2B• `n֕F*CT|FPDϖhfG mh g.0y:.byP^ۘPe-_V@}@e@`ΙLp$GOxKH͚9#6N@w9`6̛VUAUfVU\ڜY.`U\|ZPҝPN0 N_NPNЃ8`0Ο1/Eo..@/ Y1ZWWXˡW qAm pq@ppC8P?bp: ڣ@?:) N u@ɤ`AsipPrspr:Pd0@@?4e02`ݧ42,pNxP@ @5bԩ!J0qpi0У0@]׫`К&S`u Ǭ  T>0lP­T@Qp?ipݮ px,0V w~w`xʯ@w`vPAthPvuڰ"#K v@!Pű@ -'V @iu`99ò() `/6/[))&ѳ&+!p+G+m-.:P;@040Uv `! 1. 223Wr`''.޶p33*05S5x607ʷ78%?&f88P,׸,0-P 9-]P~ nP"͹p 3@V {$*ں@,<Yz 0m4`  ޻ @  5p M g P V pZ ԼpU pV pY %o B X r  P  ɽЬ ޽  Ю p + @а WE op     վ е  0 1 K e@ z  0  п 0    ` 3 K c z@ G I p `   " 7 L` `0 xq r   i PK 0 / 0/ 7/ N. i0 ~`/ ) p0 ps  m  9 P ,p4 8P1 G5 Z k P & 0# `$  Ф Й E `' !% 4P; BJ Sp e: v< 0> F H ( $  )  Q ( -@ ?2 NP b: q< p= = = $ # @) 0<  6 $! 6 m@ 5 L a`7 o0   n nP  ri S  0n @n Pn0q ` - > K X` cP s n@  p  n  @n8q# n6 nK X@ kOu      P pOp   n  n6 AqQNb oin O~ k Z 0a i c e  n Sn  nq=&0J a@ }l@Т$"4M`4x44P3!DUeUP R`T@"Hh@c|&&  &/0&Q-#0#4#5#!"dJkol  vx%pyPz~~pr  P  4'-i '-c-H-2<2o@2022,2`61 >1{1Bp1P11%P1p1P00' 4^`"4"4%4 %4E&4{p'4*4*45p,4i-pPJ@p4p R/ m`;`    :@SC'~!@!!`!!P!!3!G!b!~`!!0,0,,(,J,p0,,0,P,,+,M@-u-` - --_'*@(Tl `   P   ' D@ c Ў P U VV7\u0@Г`8P`h`@Pp20M`\f]-4-6#bv`0    /pPq@(`*@:1P4A6l!0#p   :w((i(&Pm(b0( , n(= \i0 mI mX mf m m m m m m m (m 0m  8m @m5 HmG PmW Xmh `mz hm pm xm m @n n m m m m- m; mM ma mm m} m m m m m m m m m m) m8 (mM 0m\ 8mn @m Hm Pm Xm `m ȷn зn hm pm" xm2 mC mR md m{ m m m m m m m m m m) mF md my m m m m` (m  0m6 8mF @mW Hmi Pm{ Xm `m hm pm xm m m m m m% m4 mF mX mf mr m~ m m m m m m m m m m$ (m5 0mI 8mZ @mq Hm} Pm Xm `m hm pm xm m m m+ m> mK m\ mm mx m m m m m m m m m m% m4 mT mc (mu 0m 8m @m Hm Pm Xm `m hm( pm7 xmF mW mq m m m m m m m5 m@ mV mi m m m m m m m m m  (m 0m! 8mG `n\ طnp @m| Hm Pm Xm `m hm pm xm m m+ m7 nH mc mt m m m0 m m m m m  m m0 mA mT mj mz m m (m 0m 8m @m Hm Pm Xm `m- hm= pmK xm\ mn m m m m m m m m1 mA mM mX mr m~ m m i n m m m m  m (m) 0m9 8mH @mXf tp i@`-0NgP \i i8" ziI=) I=@~-8G=8?098 8@b< i `nDM;:{n> o0G`J~pV0p+mp&f0 i pnM n{m n) me m  ri  n  \i8 p7#n `;# <# ;# p<#+ J#[ pA# PI# pF# ;# >#I 0;#w 6# pN# @8# S#:  zie W# pR# 0 3 P1Y ]ip7P44`S`P`D@2sp`@,`c hi  nA nx n n nD n} n n n) n_ n n 0n @n9 Pnw `n pn n% na n` n n,@] n i(6(n( np((H `i|((p(# (ZЅ(p(@((Q( i(0(+(a@(p((p(7(d( ( npB(3>(nB(@(9(, P:(z 9( p9( :(+ ir+ rj+U(+g(, n:,d(n,pO(, (n, n-@'8-P'o- (- (-`(.p'?.'n.(.@(. @i. Hm!/ PmH/'m/p(/ j/ `n/ n0 AkA0 @kj0p(0'0p(0 n1'@1 @mg1'1 Xm1'1'2 Pm>2@s222 3H333304c4p445;5-w5@.5.5`/%6/^606161702T7277P,!8d8+8`8-M99*9 i9: G:Pq:P::;O;p;p;0;6<o<< n< n= n9= nk= 0n= @n=@(=p>qC>o> Pn>P>0>P%? X??`?q? 0n @@n'R@ `i@k'@ `n@m'+Aq`Ap'Am'A riA {i$B pnUB nB nB nB n'C_'PC iCb'Cb'C f'D jFD @kxD iD 8nDi'E @n@E'}E'E'E'-F'fF'FP'F'G@']G'Gz'G{'"H'hH0'H~'H q'0I v'yI0s'Iy'Jt'GJ|'J0'J iJе''K'bK'K0'Kq' Lо''G'C'D'''&?''''$'3')'*'-''#'!' '.'('''/'&&&&@''<'''='6':'7'9'&&&&&&&' ''2'5'8' 'E'I'&'&& 'A''&&&&&&&&&&&&&&&&&&0'''&&'&B'&&%''&'+'"','';'F''&'&H'&4''&''''''& ' '1'>'G'C'D'''&?''''$'3')'*'-''#'!' '.'('''/'&&&&@''<'''='6':'7'9'&&&&&&&' ''2'5'8' 'E'I'&'&& 'A''&&&&&&&&&&&&& _$f32.358637bd_$f32.4b189680_$f32.6258d727_$f32.80000000_$f32.cb189680_$f64.0010000000000000_$f64.3c00000000000000_$f64.3ca0000000000000_$f64.3dea39ef35793c76_$f64.3e66376972bea4d0_$f64.3eb0000000000000_$f64.3eb0c6f7a0b5ed8d_$f64.3f11566aaf25de2c_$f64.3f50624dd2f1a9fc_$f64.3f847ae147ae147b_$f64.3fb999999999999a_$f64.3fc2f112df3e5244_$f64.3fc39a09d078c69f_$f64.3fc5555555555555_$f64.3fc7466496cb03de_$f64.3fcc71c51d8e78af_$f64.3fd2492494229359_$f64.3fd2972a8afc6175_$f64.3fd3333333333333_$f64.3fd999999997fa04_$f64.3fe3333333333333_$f64.3fe5555555555593_$f64.3fe62e42fee00000_$f64.3fe6a09e667f3bcd_$f64.3fee666666666666_$f64.3ff199999999999a_$f64.3ff3333333333333_$f64.3ff71547652b82fe_$f64.3ffb333333333333_$f64.4000000000000000_$f64.400b8a7c476d2be8_$f64.401ec9d9297ebb83_$f64.4059000000000000_$f64.40862e42fefa39ef_$f64.40c3880000000000_$f64.40f0000000000000_$f64.416312d000000000_$f64.41cdcd6500000000_$f64.422bf08eb0000000_$f64.428a3185c5000000_$f64.430c6bf526340000_$f64.4330000000000000_$f64.444b1ae4d6e2ef50_$f64.47efffffe0000000_$f64.7fefffffffffffff_$f64.7ff0000000000000_$f64.8000000000000000_$f64.bebbbd41c5d26bf1_$f64.bf66c16c16bebd93_$f64.bfd3333333333333_$f64.bfe62e42fefa39ef_$f64.c00b8a7c476d2be8_$f64.c0874910d52d3051_$f64.c30c6bf526340000_$f64.ffefffffffffffff_$f64.fff0000000000000__cgo_e70cc1a36770_C2func_getaddrinfo__cgo_e70cc1a36770_Cfunc_freeaddrinfo__cgo_e70cc1a36770_Cfunc_gai_strerror__cgo_e70cc1a36770_Cfunc_getaddrinfo__cgo_get_context_function__cgo_init__cgo_notify_runtime_init_done__cgo_sys_thread_start__cgo_sys_thread_start.cold.1__cgo_thread_start__cgo_try_pthread_create__cgo_wait_runtime_init_done__cgo_yield__rt0_arm64_darwin_aeshashbody_block_size_bufio.(*Reader).Buffered_bufio.(*Reader).Discard_bufio.(*Reader).Peek_bufio.(*Reader).Read_bufio.(*Reader).ReadByte_bufio.(*Reader).ReadBytes_bufio.(*Reader).ReadLine_bufio.(*Reader).ReadRune_bufio.(*Reader).ReadSlice_bufio.(*Reader).ReadString_bufio.(*Reader).Reset_bufio.(*Reader).Size_bufio.(*Reader).UnreadByte_bufio.(*Reader).UnreadRune_bufio.(*Reader).WriteTo_bufio.(*Reader).collectFragments_bufio.(*Reader).fill_bufio.(*Reader).writeBuf_bufio.(*Scanner).Scan_bufio.(*Writer).Available_bufio.(*Writer).Buffered_bufio.(*Writer).Flush_bufio.(*Writer).ReadFrom_bufio.(*Writer).Reset_bufio.(*Writer).Size_bufio.(*Writer).Write_bufio.(*Writer).WriteByte_bufio.(*Writer).WriteRune_bufio.(*Writer).WriteString_bufio..inittask_bufio.ErrAdvanceTooFar_bufio.ErrBadReadCount_bufio.ErrBufferFull_bufio.ErrFinalToken_bufio.ErrInvalidUnreadByte_bufio.ErrInvalidUnreadRune_bufio.ErrNegativeAdvance_bufio.ErrNegativeCount_bufio.ErrTooLong_bufio.ScanLines_bufio.errNegativeRead_bufio.errNegativeWrite_bufio.init_bytes.(*Buffer).Bytes_bytes.(*Buffer).Cap_bytes.(*Buffer).Grow_bytes.(*Buffer).Len_bytes.(*Buffer).Next_bytes.(*Buffer).Read_bytes.(*Buffer).ReadByte_bytes.(*Buffer).ReadBytes_bytes.(*Buffer).ReadFrom_bytes.(*Buffer).ReadRune_bytes.(*Buffer).ReadString_bytes.(*Buffer).Reset_bytes.(*Buffer).String_bytes.(*Buffer).Truncate_bytes.(*Buffer).UnreadByte_bytes.(*Buffer).UnreadRune_bytes.(*Buffer).Write_bytes.(*Buffer).WriteByte_bytes.(*Buffer).WriteRune_bytes.(*Buffer).WriteString_bytes.(*Buffer).WriteTo_bytes.(*Buffer).grow_bytes.(*Buffer).readSlice_bytes.(*Reader).Len_bytes.(*Reader).Read_bytes.(*Reader).ReadAt_bytes.(*Reader).ReadByte_bytes.(*Reader).ReadRune_bytes.(*Reader).Reset_bytes.(*Reader).Seek_bytes.(*Reader).Size_bytes.(*Reader).UnreadByte_bytes.(*Reader).UnreadRune_bytes.(*Reader).WriteTo_bytes..inittask_bytes.Count_bytes.EqualFold_bytes.ErrTooLarge_bytes.Index_bytes.IndexAny_bytes.IndexRune_bytes.Join_bytes.Map_bytes.Replace_bytes.ToLower_bytes.Trim_bytes.TrimFunc_bytes.TrimRight_bytes.TrimRightFunc_bytes.TrimSpace_bytes.asciiSpace_bytes.errNegativeRead_bytes.errUnreadByte_bytes.explode_bytes.genSplit_bytes.indexFunc_bytes.init_bytes.lastIndexFunc_bytes.makeCutsetFunc_bytes.makeCutsetFunc.func1_bytes.makeCutsetFunc.func2_bytes.makeCutsetFunc.func3_bytes.makeSlice_bytes.makeSlice.func1_callRet_cgo_context_function_cmpbody_compress/flate.(*CorruptInputError).Error_compress/flate.(*InternalError).Error_compress/flate.(*byFreq).Len_compress/flate.(*byFreq).Less_compress/flate.(*byFreq).Swap_compress/flate.(*byLiteral).Len_compress/flate.(*byLiteral).Less_compress/flate.(*byLiteral).Swap_compress/flate.(*compressor).close_compress/flate.(*compressor).deflate_compress/flate.(*compressor).encSpeed_compress/flate.(*compressor).fillDeflate_compress/flate.(*compressor).fillStore_compress/flate.(*compressor).findMatch_compress/flate.(*compressor).init_compress/flate.(*compressor).store_compress/flate.(*compressor).storeHuff_compress/flate.(*compressor).write_compress/flate.(*compressor).writeBlock_compress/flate.(*compressor).writeStoredBlock_compress/flate.(*decompressor).Close_compress/flate.(*decompressor).Read_compress/flate.(*decompressor).Reset_compress/flate.(*decompressor).copyData_compress/flate.(*decompressor).dataBlock_compress/flate.(*decompressor).finishBlock_compress/flate.(*decompressor).huffSym_compress/flate.(*decompressor).huffmanBlock_compress/flate.(*decompressor).moreBits_compress/flate.(*decompressor).nextBlock_compress/flate.(*decompressor).readHuffman_compress/flate.(*deflateFast).encode_compress/flate.(*deflateFast).matchLen_compress/flate.(*deflateFast).shiftOffsets_compress/flate.(*dictDecoder).writeCopy_compress/flate.(*huffmanBitWriter).dynamicSize_compress/flate.(*huffmanBitWriter).fixedSize_compress/flate.(*huffmanBitWriter).flush_compress/flate.(*huffmanBitWriter).generateCodegen_compress/flate.(*huffmanBitWriter).indexTokens_compress/flate.(*huffmanBitWriter).writeBits_compress/flate.(*huffmanBitWriter).writeBlock_compress/flate.(*huffmanBitWriter).writeBlockDynamic_compress/flate.(*huffmanBitWriter).writeBlockHuff_compress/flate.(*huffmanBitWriter).writeBytes_compress/flate.(*huffmanBitWriter).writeCode_compress/flate.(*huffmanBitWriter).writeDynamicHeader_compress/flate.(*huffmanBitWriter).writeStoredHeader_compress/flate.(*huffmanBitWriter).writeTokens_compress/flate.(*huffmanDecoder).init_compress/flate.(*huffmanEncoder).assignEncodingAndSize_compress/flate.(*huffmanEncoder).bitCounts_compress/flate.(*huffmanEncoder).bitLength_compress/flate.(*huffmanEncoder).generate_compress/flate..inittask_compress/flate.CorruptInputError.Error_compress/flate.InternalError.Error_compress/flate.NewReader_compress/flate.NewWriter_compress/flate.bulkHash4_compress/flate.byFreq.Len_compress/flate.byFreq.Less_compress/flate.byFreq.Swap_compress/flate.byLiteral.Len_compress/flate.byLiteral.Less_compress/flate.byLiteral.Swap_compress/flate.codeOrder_compress/flate.codegenOrder_compress/flate.emitLiteral_compress/flate.fixedHuffmanDecoder_compress/flate.fixedHuffmanDecoderInit_compress/flate.fixedHuffmanDecoderInit.func1_compress/flate.fixedLiteralEncoding_compress/flate.fixedOffsetEncoding_compress/flate.fixedOnce_compress/flate.generateFixedLiteralEncoding_compress/flate.generateFixedOffsetEncoding_compress/flate.histogram_compress/flate.huffOffset_compress/flate.init_compress/flate.init.0_compress/flate.lengthBase_compress/flate.lengthCodes_compress/flate.lengthExtraBits_compress/flate.levels_compress/flate.matchLen_compress/flate.offsetBase_compress/flate.offsetCodes_compress/flate.offsetExtraBits_compress/gzip.(*Reader).Close_compress/gzip.(*Reader).Multistream_compress/gzip.(*Reader).Read_compress/gzip.(*Reader).Reset_compress/gzip.(*Reader).readHeader_compress/gzip.(*Reader).readString_compress/gzip..inittask_compress/gzip.ErrChecksum_compress/gzip.ErrHeader_compress/gzip.NewReader_compress/gzip.init_container/list.(*Element).Next_container/list.(*Element).Prev_container/list.(*List).Back_container/list.(*List).Front_container/list.(*List).Init_container/list.(*List).InsertAfter_container/list.(*List).InsertBefore_container/list.(*List).Len_container/list.(*List).MoveAfter_container/list.(*List).MoveBefore_container/list.(*List).MoveToBack_container/list.(*List).MoveToFront_container/list.(*List).PushBack_container/list.(*List).PushBackList_container/list.(*List).PushFront_container/list.(*List).PushFrontList_container/list.(*List).Remove_context.(*cancelCtx).Deadline_context.(*cancelCtx).Done_context.(*cancelCtx).Err_context.(*cancelCtx).String_context.(*cancelCtx).Value_context.(*cancelCtx).cancel_context.(*deadlineExceededError).Error_context.(*deadlineExceededError).Temporary_context.(*deadlineExceededError).Timeout_context.(*emptyCtx).Deadline_context.(*emptyCtx).Done_context.(*emptyCtx).Err_context.(*emptyCtx).String_context.(*emptyCtx).Value_context.(*timerCtx).Deadline_context.(*timerCtx).Done_context.(*timerCtx).Err_context.(*timerCtx).String_context.(*timerCtx).Value_context.(*timerCtx).cancel_context.(*valueCtx).Deadline_context.(*valueCtx).Done_context.(*valueCtx).Err_context.(*valueCtx).String_context.(*valueCtx).Value_context..inittask_context.Canceled_context.DeadlineExceeded_context.WithCancel_context.WithCancel.func1_context.WithDeadline_context.WithDeadline.func1_context.WithDeadline.func2_context.WithDeadline.func3_context.WithTimeout_context.WithValue_context.background_context.cancelCtx.Deadline_context.cancelCtxKey_context.closedchan_context.contextName_context.deadlineExceededError.Error_context.deadlineExceededError.Temporary_context.deadlineExceededError.Timeout_context.goroutines_context.init_context.init.0_context.parentCancelCtx_context.propagateCancel_context.propagateCancel.func1_context.removeChild_context.todo_context.valueCtx.Deadline_context.valueCtx.Done_context.valueCtx.Err_countbytebody_crosscall1_crypto.(*Hash).Available_crypto.(*Hash).HashFunc_crypto.(*Hash).New_crypto.(*Hash).Size_crypto.(*Hash).String_crypto..inittask_crypto.Hash.Available_crypto.Hash.HashFunc_crypto.Hash.New_crypto.Hash.New-fm_crypto.Hash.Size_crypto.Hash.String_crypto.digestSizes_crypto.hashes_crypto.init_crypto/aes.(*KeySizeError).Error_crypto/aes.(*aesCipher).BlockSize_crypto/aes.(*aesCipher).Decrypt_crypto/aes.(*aesCipher).Encrypt_crypto/aes.(*aesCipherAsm).BlockSize_crypto/aes.(*aesCipherAsm).Decrypt_crypto/aes.(*aesCipherAsm).Encrypt_crypto/aes.(*aesCipherGCM).BlockSize_crypto/aes.(*aesCipherGCM).Decrypt_crypto/aes.(*aesCipherGCM).Encrypt_crypto/aes.(*aesCipherGCM).NewGCM_crypto/aes.(*gcmAsm).NonceSize_crypto/aes.(*gcmAsm).Open_crypto/aes.(*gcmAsm).Overhead_crypto/aes.(*gcmAsm).Seal_crypto/aes..inittask_crypto/aes.KeySizeError.Error_crypto/aes.NewCipher_crypto/aes.decryptBlockAsm_crypto/aes.decryptBlockAsm.args_stackmap_crypto/aes.decryptBlockGo_crypto/aes.encryptBlockAsm_crypto/aes.encryptBlockAsm.args_stackmap_crypto/aes.encryptBlockGo_crypto/aes.errOpen_crypto/aes.expandKeyAsm_crypto/aes.expandKeyAsm.args_stackmap_crypto/aes.expandKeyGo_crypto/aes.gcmAesData_crypto/aes.gcmAesData.args_stackmap_crypto/aes.gcmAesDec_crypto/aes.gcmAesDec.args_stackmap_crypto/aes.gcmAesEnc_crypto/aes.gcmAesEnc.args_stackmap_crypto/aes.gcmAesFinish_crypto/aes.gcmAesFinish.args_stackmap_crypto/aes.gcmAesInit_crypto/aes.gcmAesInit.args_stackmap_crypto/aes.init_crypto/aes.newCipher_crypto/aes.newCipherGeneric_crypto/aes.powx_crypto/aes.sbox0_crypto/aes.sbox1_crypto/aes.supportsAES_crypto/aes.supportsGFMUL_crypto/aes.td0_crypto/aes.td1_crypto/aes.td2_crypto/aes.td3_crypto/aes.te0_crypto/aes.te1_crypto/aes.te2_crypto/aes.te3_crypto/cipher.(*StreamReader).Read_crypto/cipher.(*cbcDecrypter).BlockSize_crypto/cipher.(*cbcDecrypter).CryptBlocks_crypto/cipher.(*cbcDecrypter).SetIV_crypto/cipher.(*cbcEncrypter).BlockSize_crypto/cipher.(*cbcEncrypter).CryptBlocks_crypto/cipher.(*cbcEncrypter).SetIV_crypto/cipher.(*ctr).XORKeyStream_crypto/cipher.(*ctr).refill_crypto/cipher.(*gcm).NonceSize_crypto/cipher.(*gcm).Open_crypto/cipher.(*gcm).Overhead_crypto/cipher.(*gcm).Seal_crypto/cipher.(*gcm).auth_crypto/cipher.(*gcm).counterCrypt_crypto/cipher.(*gcm).deriveCounter_crypto/cipher.(*gcm).mul_crypto/cipher.(*gcm).update_crypto/cipher.(*gcm).updateBlocks_crypto/cipher..inittask_crypto/cipher.NewCBCDecrypter_crypto/cipher.NewCBCEncrypter_crypto/cipher.NewCTR_crypto/cipher.StreamReader.Read_crypto/cipher.errOpen_crypto/cipher.gcmInc32_crypto/cipher.gcmReductionTable_crypto/cipher.init_crypto/cipher.newCBC_crypto/cipher.newGCMWithNonceAndTagSize_crypto/cipher.xorBytes_crypto/cipher.xorBytesARM64_crypto/cipher.xorBytesARM64.args_stackmap_crypto/des.(*KeySizeError).Error_crypto/des.(*desCipher).BlockSize_crypto/des.(*desCipher).Decrypt_crypto/des.(*desCipher).Encrypt_crypto/des.(*desCipher).generateSubkeys_crypto/des.(*tripleDESCipher).BlockSize_crypto/des.(*tripleDESCipher).Decrypt_crypto/des.(*tripleDESCipher).Encrypt_crypto/des..inittask_crypto/des.KeySizeError.Error_crypto/des.NewTripleDESCipher_crypto/des.cryptBlock_crypto/des.feistel_crypto/des.feistelBox_crypto/des.feistelBoxOnce_crypto/des.initFeistelBox_crypto/des.ksRotations_crypto/des.permutationFunction_crypto/des.permuteBlock_crypto/des.permuteFinalBlock_crypto/des.permuteInitialBlock_crypto/des.permutedChoice1_crypto/des.permutedChoice2_crypto/des.sBoxes_crypto/dsa..inittask_crypto/dsa.ErrInvalidPublicKey_crypto/dsa.init_crypto/ecdsa.(*PrivateKey).Add_crypto/ecdsa.(*PrivateKey).Double_crypto/ecdsa.(*PrivateKey).Equal_crypto/ecdsa.(*PrivateKey).IsOnCurve_crypto/ecdsa.(*PrivateKey).Params_crypto/ecdsa.(*PrivateKey).Public_crypto/ecdsa.(*PrivateKey).ScalarBaseMult_crypto/ecdsa.(*PrivateKey).ScalarMult_crypto/ecdsa.(*PrivateKey).Sign_crypto/ecdsa.(*PrivateKey).Sign.func1_crypto/ecdsa.(*PublicKey).Add_crypto/ecdsa.(*PublicKey).Double_crypto/ecdsa.(*PublicKey).Equal_crypto/ecdsa.(*PublicKey).IsOnCurve_crypto/ecdsa.(*PublicKey).Params_crypto/ecdsa.(*PublicKey).ScalarBaseMult_crypto/ecdsa.(*PublicKey).ScalarMult_crypto/ecdsa.(*zr).Read_crypto/ecdsa..inittask_crypto/ecdsa.GenerateKey_crypto/ecdsa.PrivateKey.Add_crypto/ecdsa.PrivateKey.Double_crypto/ecdsa.PrivateKey.IsOnCurve_crypto/ecdsa.PrivateKey.Params_crypto/ecdsa.PrivateKey.ScalarBaseMult_crypto/ecdsa.PrivateKey.ScalarMult_crypto/ecdsa.PublicKey.Add_crypto/ecdsa.PublicKey.Double_crypto/ecdsa.PublicKey.IsOnCurve_crypto/ecdsa.PublicKey.Params_crypto/ecdsa.PublicKey.ScalarBaseMult_crypto/ecdsa.PublicKey.ScalarMult_crypto/ecdsa.Sign_crypto/ecdsa.Verify_crypto/ecdsa.VerifyASN1_crypto/ecdsa.errZeroParam_crypto/ecdsa.fermatInverse_crypto/ecdsa.hashToInt_crypto/ecdsa.init_crypto/ecdsa.one_crypto/ecdsa.randFieldElement_crypto/ecdsa.signGeneric_crypto/ecdsa.verifyGeneric_crypto/ecdsa.zeroReader_crypto/ed25519.(*PrivateKey).Equal_crypto/ed25519.(*PrivateKey).Public_crypto/ed25519.(*PrivateKey).Seed_crypto/ed25519.(*PrivateKey).Sign_crypto/ed25519.(*PublicKey).Equal_crypto/ed25519..inittask_crypto/ed25519.GenerateKey_crypto/ed25519.PrivateKey.Equal_crypto/ed25519.PrivateKey.Public_crypto/ed25519.PrivateKey.Seed_crypto/ed25519.PrivateKey.Sign_crypto/ed25519.PublicKey.Equal_crypto/ed25519.Verify_crypto/ed25519.newKeyFromSeed_crypto/ed25519.sign_crypto/ed25519/internal/edwards25519.(*Point).Add_crypto/ed25519/internal/edwards25519.(*Point).Negate_crypto/ed25519/internal/edwards25519.(*Point).ScalarBaseMult_crypto/ed25519/internal/edwards25519.(*Point).SetBytes_crypto/ed25519/internal/edwards25519.(*Point).VarTimeDoubleScalarBaseMult_crypto/ed25519/internal/edwards25519.(*Point).bytes_crypto/ed25519/internal/edwards25519.(*Point).fromP1xP1_crypto/ed25519/internal/edwards25519.(*Point).fromP2_crypto/ed25519/internal/edwards25519.(*Scalar).SetBytesWithClamping_crypto/ed25519/internal/edwards25519.(*Scalar).SetCanonicalBytes_crypto/ed25519/internal/edwards25519.(*Scalar).SetUniformBytes_crypto/ed25519/internal/edwards25519.(*Scalar).nonAdjacentForm_crypto/ed25519/internal/edwards25519.(*Scalar).signedRadix16_crypto/ed25519/internal/edwards25519.(*affineCached).CondNeg_crypto/ed25519/internal/edwards25519.(*affineCached).FromP3_crypto/ed25519/internal/edwards25519.(*affineCached).Select_crypto/ed25519/internal/edwards25519.(*affineLookupTable).FromP3_crypto/ed25519/internal/edwards25519.(*affineLookupTable).SelectInto_crypto/ed25519/internal/edwards25519.(*nafLookupTable5).FromP3_crypto/ed25519/internal/edwards25519.(*nafLookupTable8).FromP3_crypto/ed25519/internal/edwards25519.(*projCached).FromP3_crypto/ed25519/internal/edwards25519.(*projP1xP1).Add_crypto/ed25519/internal/edwards25519.(*projP1xP1).AddAffine_crypto/ed25519/internal/edwards25519.(*projP1xP1).Double_crypto/ed25519/internal/edwards25519.(*projP1xP1).Sub_crypto/ed25519/internal/edwards25519.(*projP1xP1).SubAffine_crypto/ed25519/internal/edwards25519.(*projP2).FromP1xP1_crypto/ed25519/internal/edwards25519..inittask_crypto/ed25519/internal/edwards25519.basepointNafTable_crypto/ed25519/internal/edwards25519.basepointNafTable.func1_crypto/ed25519/internal/edwards25519.basepointNafTablePrecomp_crypto/ed25519/internal/edwards25519.basepointTable_crypto/ed25519/internal/edwards25519.basepointTable.func1_crypto/ed25519/internal/edwards25519.basepointTablePrecomp_crypto/ed25519/internal/edwards25519.checkInitialized_crypto/ed25519/internal/edwards25519.d_crypto/ed25519/internal/edwards25519.d2_crypto/ed25519/internal/edwards25519.feOne_crypto/ed25519/internal/edwards25519.generator_crypto/ed25519/internal/edwards25519.identity_crypto/ed25519/internal/edwards25519.init_crypto/ed25519/internal/edwards25519.scMinusOne_crypto/ed25519/internal/edwards25519.scMulAdd_crypto/ed25519/internal/edwards25519.scReduce_crypto/ed25519/internal/edwards25519/field.(*Element).Absolute_crypto/ed25519/internal/edwards25519/field.(*Element).Add_crypto/ed25519/internal/edwards25519/field.(*Element).Equal_crypto/ed25519/internal/edwards25519/field.(*Element).Invert_crypto/ed25519/internal/edwards25519/field.(*Element).Pow22523_crypto/ed25519/internal/edwards25519/field.(*Element).SetBytes_crypto/ed25519/internal/edwards25519/field.(*Element).SqrtRatio_crypto/ed25519/internal/edwards25519/field.(*Element).Subtract_crypto/ed25519/internal/edwards25519/field.(*Element).Swap_crypto/ed25519/internal/edwards25519/field.(*Element).bytes_crypto/ed25519/internal/edwards25519/field.(*Element).carryPropagateGeneric_crypto/ed25519/internal/edwards25519/field.(*Element).reduce_crypto/ed25519/internal/edwards25519/field..inittask_crypto/ed25519/internal/edwards25519/field.carryPropagate_crypto/ed25519/internal/edwards25519/field.carryPropagate.args_stackmap_crypto/ed25519/internal/edwards25519/field.feMulGeneric_crypto/ed25519/internal/edwards25519/field.feOne_crypto/ed25519/internal/edwards25519/field.feSquareGeneric_crypto/ed25519/internal/edwards25519/field.feZero_crypto/ed25519/internal/edwards25519/field.sqrtM1_crypto/elliptic.(*CurveParams).Add_crypto/elliptic.(*CurveParams).Double_crypto/elliptic.(*CurveParams).IsOnCurve_crypto/elliptic.(*CurveParams).Params_crypto/elliptic.(*CurveParams).ScalarBaseMult_crypto/elliptic.(*CurveParams).ScalarMult_crypto/elliptic.(*CurveParams).addJacobian_crypto/elliptic.(*CurveParams).affineFromJacobian_crypto/elliptic.(*CurveParams).doubleJacobian_crypto/elliptic.(*CurveParams).polynomial_crypto/elliptic.(*p224Curve).Add_crypto/elliptic.(*p224Curve).Double_crypto/elliptic.(*p224Curve).IsOnCurve_crypto/elliptic.(*p224Curve).Params_crypto/elliptic.(*p224Curve).ScalarBaseMult_crypto/elliptic.(*p224Curve).ScalarMult_crypto/elliptic.(*p256Curve).Add_crypto/elliptic.(*p256Curve).CombinedMult_crypto/elliptic.(*p256Curve).Double_crypto/elliptic.(*p256Curve).Inverse_crypto/elliptic.(*p256Curve).IsOnCurve_crypto/elliptic.(*p256Curve).Params_crypto/elliptic.(*p256Curve).ScalarBaseMult_crypto/elliptic.(*p256Curve).ScalarMult_crypto/elliptic.(*p256Point).CopyConditional_crypto/elliptic.(*p256Point).p256BaseMult_crypto/elliptic.(*p256Point).p256PointToAffine_crypto/elliptic.(*p256Point).p256ScalarMult_crypto/elliptic.(*p521Curve).Add_crypto/elliptic.(*p521Curve).Double_crypto/elliptic.(*p521Curve).IsOnCurve_crypto/elliptic.(*p521Curve).Params_crypto/elliptic.(*p521Curve).ScalarBaseMult_crypto/elliptic.(*p521Curve).ScalarMult_crypto/elliptic.(*p521Point).addJacobian_crypto/elliptic.(*p521Point).doubleJacobian_crypto/elliptic..inittask_crypto/elliptic.GenerateKey_crypto/elliptic.Marshal_crypto/elliptic.Unmarshal_crypto/elliptic.bigIntToFiatP521_crypto/elliptic.fiatP521ToBigInt_crypto/elliptic.fromBig_crypto/elliptic.initAll_crypto/elliptic.initP224_crypto/elliptic.initP256_crypto/elliptic.initP384_crypto/elliptic.initP521_crypto/elliptic.initonce_crypto/elliptic.mask_crypto/elliptic.matchesSpecificCurve_crypto/elliptic.maybeReduceModP_crypto/elliptic.p224_crypto/elliptic.p224AddJacobian_crypto/elliptic.p224Contract_crypto/elliptic.p224Curve.Add_crypto/elliptic.p224Curve.Double_crypto/elliptic.p224Curve.IsOnCurve_crypto/elliptic.p224Curve.Params_crypto/elliptic.p224Curve.ScalarBaseMult_crypto/elliptic.p224Curve.ScalarMult_crypto/elliptic.p224DoubleJacobian_crypto/elliptic.p224FromBig_crypto/elliptic.p224Invert_crypto/elliptic.p224IsZero_crypto/elliptic.p224Mul_crypto/elliptic.p224P_crypto/elliptic.p224Reduce_crypto/elliptic.p224ReduceLarge_crypto/elliptic.p224ScalarMult_crypto/elliptic.p224Square_crypto/elliptic.p224ToAffine_crypto/elliptic.p224ToBig_crypto/elliptic.p224ZeroModP31_crypto/elliptic.p224ZeroModP63_crypto/elliptic.p256_crypto/elliptic.p256BigToLittle_crypto/elliptic.p256BigToLittle.args_stackmap_crypto/elliptic.p256Curve.Add_crypto/elliptic.p256Curve.CombinedMult_crypto/elliptic.p256Curve.Double_crypto/elliptic.p256Curve.Inverse_crypto/elliptic.p256Curve.IsOnCurve_crypto/elliptic.p256Curve.Params_crypto/elliptic.p256Curve.ScalarBaseMult_crypto/elliptic.p256Curve.ScalarMult_crypto/elliptic.p256FromMont_crypto/elliptic.p256FromMont.args_stackmap_crypto/elliptic.p256GetScalar_crypto/elliptic.p256Inverse_crypto/elliptic.p256LittleToBig_crypto/elliptic.p256LittleToBig.args_stackmap_crypto/elliptic.p256MovCond_crypto/elliptic.p256MovCond.args_stackmap_crypto/elliptic.p256Mul_crypto/elliptic.p256Mul.args_stackmap_crypto/elliptic.p256NegCond_crypto/elliptic.p256NegCond.args_stackmap_crypto/elliptic.p256OrdMul_crypto/elliptic.p256OrdMul.args_stackmap_crypto/elliptic.p256OrdSqr_crypto/elliptic.p256OrdSqr.args_stackmap_crypto/elliptic.p256PointAddAffineAsm_crypto/elliptic.p256PointAddAffineAsm.args_stackmap_crypto/elliptic.p256PointAddAsm_crypto/elliptic.p256PointAddAsm.args_stackmap_crypto/elliptic.p256PointDoubleAsm_crypto/elliptic.p256PointDoubleAsm.args_stackmap_crypto/elliptic.p256Precomputed_crypto/elliptic.p256Select_crypto/elliptic.p256Select.args_stackmap_crypto/elliptic.p256SelectBase_crypto/elliptic.p256SelectBase.args_stackmap_crypto/elliptic.p256Sqr_crypto/elliptic.p256Sqr.args_stackmap_crypto/elliptic.p384_crypto/elliptic.p521_crypto/elliptic.p521Curve.Add_crypto/elliptic.p521Curve.Double_crypto/elliptic.p521Curve.IsOnCurve_crypto/elliptic.p521Curve.Params_crypto/elliptic.p521Curve.ScalarBaseMult_crypto/elliptic.p521Curve.ScalarMult_crypto/elliptic.p521Curve.affineFromJacobian_crypto/elliptic.p521Curve.jacobianFromAffine_crypto/elliptic.rr_crypto/elliptic.zForAffine_crypto/elliptic/internal/fiat.(*P521Element).Add_crypto/elliptic/internal/fiat.(*P521Element).Equal_crypto/elliptic/internal/fiat.(*P521Element).Invert_crypto/elliptic/internal/fiat.(*P521Element).IsZero_crypto/elliptic/internal/fiat.(*P521Element).SetBytes_crypto/elliptic/internal/fiat.(*P521Element).Sub_crypto/elliptic/internal/fiat..inittask_crypto/elliptic/internal/fiat.init_crypto/elliptic/internal/fiat.p521Add_crypto/elliptic/internal/fiat.p521Carry_crypto/elliptic/internal/fiat.p521CarryMul_crypto/elliptic/internal/fiat.p521CarrySquare_crypto/elliptic/internal/fiat.p521FromBytes_crypto/elliptic/internal/fiat.p521Selectznz_crypto/elliptic/internal/fiat.p521Sub_crypto/elliptic/internal/fiat.p521ToBytes_crypto/elliptic/internal/fiat.p521ZeroEncoding_crypto/hmac.(*hmac).BlockSize_crypto/hmac.(*hmac).Reset_crypto/hmac.(*hmac).Size_crypto/hmac.(*hmac).Sum_crypto/hmac.(*hmac).Write_crypto/hmac..inittask_crypto/hmac.New_crypto/hmac.New.func1_crypto/hmac.New.func1.1_crypto/internal/randutil..inittask_crypto/internal/randutil.MaybeReadByte_crypto/internal/randutil.MaybeReadByte.func1_crypto/internal/randutil.closedChan_crypto/internal/randutil.closedChanOnce_crypto/md5.(*digest).BlockSize_crypto/md5.(*digest).MarshalBinary_crypto/md5.(*digest).Reset_crypto/md5.(*digest).Size_crypto/md5.(*digest).Sum_crypto/md5.(*digest).UnmarshalBinary_crypto/md5.(*digest).Write_crypto/md5.(*digest).checkSum_crypto/md5..inittask_crypto/md5.New_crypto/md5.appendUint64_crypto/md5.block_crypto/md5.block.args_stackmap_crypto/md5.init.0_crypto/rand.(*devReader).Read_crypto/rand.(*hideAgainReader).Read_crypto/rand..inittask_crypto/rand.Int_crypto/rand.Prime_crypto/rand.Read_crypto/rand.Reader_crypto/rand.altGetRandom_crypto/rand.getEntropy_crypto/rand.hideAgainReader.Read_crypto/rand.init_crypto/rand.init.0_crypto/rand.init.1_crypto/rand.init.2_crypto/rand.isEAGAIN_crypto/rand.smallPrimes_crypto/rand.smallPrimesProduct_crypto/rand.unixIsEAGAIN_crypto/rand.warnBlocked_crypto/rc4.(*Cipher).Reset_crypto/rc4.(*Cipher).XORKeyStream_crypto/rc4.(*KeySizeError).Error_crypto/rc4..inittask_crypto/rc4.KeySizeError.Error_crypto/rc4.NewCipher_crypto/rsa.(*PSSOptions).HashFunc_crypto/rsa.(*PrivateKey).Decrypt_crypto/rsa.(*PrivateKey).Equal_crypto/rsa.(*PrivateKey).Precompute_crypto/rsa.(*PrivateKey).Public_crypto/rsa.(*PrivateKey).Sign_crypto/rsa.(*PrivateKey).Size_crypto/rsa.(*PrivateKey).Validate_crypto/rsa.(*PublicKey).Equal_crypto/rsa.(*PublicKey).Size_crypto/rsa..inittask_crypto/rsa.DecryptOAEP_crypto/rsa.DecryptPKCS1v15_crypto/rsa.DecryptPKCS1v15SessionKey_crypto/rsa.EncryptOAEP_crypto/rsa.EncryptPKCS1v15_crypto/rsa.ErrDecryption_crypto/rsa.ErrMessageTooLong_crypto/rsa.ErrVerification_crypto/rsa.GenerateMultiPrimeKey_crypto/rsa.SignPKCS1v15_crypto/rsa.SignPSS_crypto/rsa.VerifyPKCS1v15_crypto/rsa.VerifyPSS_crypto/rsa.bigOne_crypto/rsa.bigZero_crypto/rsa.decrypt_crypto/rsa.decryptAndCheck_crypto/rsa.decryptPKCS1v15_crypto/rsa.emsaPSSEncode_crypto/rsa.emsaPSSVerify_crypto/rsa.encrypt_crypto/rsa.errPublicExponentLarge_crypto/rsa.errPublicExponentSmall_crypto/rsa.errPublicModulus_crypto/rsa.hashPrefixes_crypto/rsa.init_crypto/rsa.mgf1XOR_crypto/rsa.nonZeroRandomBytes_crypto/rsa.signPSSWithSalt_crypto/sha1.(*digest).BlockSize_crypto/sha1.(*digest).ConstantTimeSum_crypto/sha1.(*digest).MarshalBinary_crypto/sha1.(*digest).Reset_crypto/sha1.(*digest).Size_crypto/sha1.(*digest).Sum_crypto/sha1.(*digest).UnmarshalBinary_crypto/sha1.(*digest).Write_crypto/sha1.(*digest).checkSum_crypto/sha1.(*digest).constSum_crypto/sha1..inittask_crypto/sha1.New_crypto/sha1.appendUint64_crypto/sha1.block_crypto/sha1.blockGeneric_crypto/sha1.init.0_crypto/sha1.k_crypto/sha1.sha1block_crypto/sha1.sha1block.args_stackmap_crypto/sha256.(*digest).BlockSize_crypto/sha256.(*digest).MarshalBinary_crypto/sha256.(*digest).Reset_crypto/sha256.(*digest).Size_crypto/sha256.(*digest).Sum_crypto/sha256.(*digest).UnmarshalBinary_crypto/sha256.(*digest).Write_crypto/sha256.(*digest).checkSum_crypto/sha256..inittask_crypto/sha256.New_crypto/sha256.New224_crypto/sha256.Sum224_crypto/sha256._K_crypto/sha256.appendUint64_crypto/sha256.block_crypto/sha256.blockGeneric_crypto/sha256.init.0_crypto/sha256.k_crypto/sha256.sha256block_crypto/sha256.sha256block.args_stackmap_crypto/sha512.(*digest).BlockSize_crypto/sha512.(*digest).MarshalBinary_crypto/sha512.(*digest).Reset_crypto/sha512.(*digest).Size_crypto/sha512.(*digest).Sum_crypto/sha512.(*digest).UnmarshalBinary_crypto/sha512.(*digest).Write_crypto/sha512.(*digest).checkSum_crypto/sha512..inittask_crypto/sha512.New_crypto/sha512.New384_crypto/sha512.New512_224_crypto/sha512.New512_256_crypto/sha512.Sum512_crypto/sha512._K_crypto/sha512.appendUint64_crypto/sha512.blockGeneric_crypto/sha512.init.0_crypto/tls.(*Certificate).leaf_crypto/tls.(*CertificateRequestInfo).Context_crypto/tls.(*CertificateRequestInfo).SupportsCertificate_crypto/tls.(*ClientAuthType).String_crypto/tls.(*ClientHelloInfo).Context_crypto/tls.(*ClientHelloInfo).SupportsCertificate_crypto/tls.(*ClientHelloInfo).SupportsCertificate.func1_crypto/tls.(*ClientHelloInfo).SupportsCertificate.func1.1_crypto/tls.(*ClientHelloInfo).SupportsCertificate.func2_crypto/tls.(*Config).BuildNameToCertificate_crypto/tls.(*Config).Clone_crypto/tls.(*Config).SetSessionTicketKeys_crypto/tls.(*Config).mutualVersion_crypto/tls.(*Config).supportedVersions_crypto/tls.(*Config).supportsCurve_crypto/tls.(*Config).ticketKeyFromBytes_crypto/tls.(*Config).writeKeyLog_crypto/tls.(*Conn).Close_crypto/tls.(*Conn).CloseWrite_crypto/tls.(*Conn).ConnectionState_crypto/tls.(*Conn).Handshake_crypto/tls.(*Conn).HandshakeContext_crypto/tls.(*Conn).LocalAddr_crypto/tls.(*Conn).OCSPResponse_crypto/tls.(*Conn).Read_crypto/tls.(*Conn).RemoteAddr_crypto/tls.(*Conn).SetDeadline_crypto/tls.(*Conn).SetReadDeadline_crypto/tls.(*Conn).SetWriteDeadline_crypto/tls.(*Conn).VerifyHostname_crypto/tls.(*Conn).Write_crypto/tls.(*Conn).clientHandshake_crypto/tls.(*Conn).clientHandshake-fm_crypto/tls.(*Conn).clientHandshake.func1_crypto/tls.(*Conn).closeNotify_crypto/tls.(*Conn).connectionStateLocked_crypto/tls.(*Conn).flush_crypto/tls.(*Conn).getClientCertificate_crypto/tls.(*Conn).handleKeyUpdate_crypto/tls.(*Conn).handleNewSessionTicket_crypto/tls.(*Conn).handlePostHandshakeMessage_crypto/tls.(*Conn).handleRenegotiation_crypto/tls.(*Conn).handshakeContext_crypto/tls.(*Conn).handshakeContext.func1_crypto/tls.(*Conn).handshakeContext.func2_crypto/tls.(*Conn).loadSession_crypto/tls.(*Conn).makeClientHello_crypto/tls.(*Conn).maxPayloadSizeForWrite_crypto/tls.(*Conn).pickTLSVersion_crypto/tls.(*Conn).readFromUntil_crypto/tls.(*Conn).readHandshake_crypto/tls.(*Conn).readRecordOrCCS_crypto/tls.(*Conn).retryReadRecord_crypto/tls.(*Conn).sendAlert_crypto/tls.(*Conn).sendAlertLocked_crypto/tls.(*Conn).verifyServerCertificate_crypto/tls.(*Conn).write_crypto/tls.(*Conn).writeRecord_crypto/tls.(*Conn).writeRecordLocked_crypto/tls.(*Conn).writeRecordLocked.func1_crypto/tls.(*ConnectionState).ExportKeyingMaterial_crypto/tls.(*CurveID).String_crypto/tls.(*Dialer).DialContext_crypto/tls.(*RecordHeaderError).Error_crypto/tls.(*SignatureScheme).String_crypto/tls.(*alert).Error_crypto/tls.(*alert).String_crypto/tls.(*atLeastReader).Read_crypto/tls.(*certificateMsg).marshal_crypto/tls.(*certificateMsg).unmarshal_crypto/tls.(*certificateMsgTLS13).marshal_crypto/tls.(*certificateMsgTLS13).marshal.func1_crypto/tls.(*certificateMsgTLS13).unmarshal_crypto/tls.(*certificateRequestMsg).marshal_crypto/tls.(*certificateRequestMsg).unmarshal_crypto/tls.(*certificateRequestMsgTLS13).marshal_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.1.1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.2_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.2.1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3.1_crypto/tls.(*certificateRequestMsgTLS13).marshal.func1.1.3.1.1_crypto/tls.(*certificateRequestMsgTLS13).unmarshal_crypto/tls.(*certificateStatusMsg).marshal_crypto/tls.(*certificateStatusMsg).marshal.func1_crypto/tls.(*certificateStatusMsg).marshal.func1.1_crypto/tls.(*certificateStatusMsg).unmarshal_crypto/tls.(*certificateVerifyMsg).marshal_crypto/tls.(*certificateVerifyMsg).marshal.func1_crypto/tls.(*certificateVerifyMsg).marshal.func1.1_crypto/tls.(*certificateVerifyMsg).unmarshal_crypto/tls.(*cipherSuiteTLS13).deriveSecret_crypto/tls.(*cipherSuiteTLS13).expandLabel_crypto/tls.(*cipherSuiteTLS13).expandLabel.func1_crypto/tls.(*cipherSuiteTLS13).expandLabel.func2_crypto/tls.(*cipherSuiteTLS13).exportKeyingMaterial_crypto/tls.(*cipherSuiteTLS13).exportKeyingMaterial.func1_crypto/tls.(*cipherSuiteTLS13).extract_crypto/tls.(*cipherSuiteTLS13).finishedHash_crypto/tls.(*cipherSuiteTLS13).nextTrafficSecret_crypto/tls.(*cipherSuiteTLS13).trafficKey_crypto/tls.(*clientHandshakeState).doFullHandshake_crypto/tls.(*clientHandshakeState).establishKeys_crypto/tls.(*clientHandshakeState).handshake_crypto/tls.(*clientHandshakeState).pickCipherSuite_crypto/tls.(*clientHandshakeState).processServerHello_crypto/tls.(*clientHandshakeState).readFinished_crypto/tls.(*clientHandshakeState).readSessionTicket_crypto/tls.(*clientHandshakeState).sendFinished_crypto/tls.(*clientHandshakeStateTLS13).checkServerHelloOrHRR_crypto/tls.(*clientHandshakeStateTLS13).establishHandshakeKeys_crypto/tls.(*clientHandshakeStateTLS13).handshake_crypto/tls.(*clientHandshakeStateTLS13).processHelloRetryRequest_crypto/tls.(*clientHandshakeStateTLS13).processServerHello_crypto/tls.(*clientHandshakeStateTLS13).readServerCertificate_crypto/tls.(*clientHandshakeStateTLS13).readServerFinished_crypto/tls.(*clientHandshakeStateTLS13).readServerParameters_crypto/tls.(*clientHandshakeStateTLS13).sendClientCertificate_crypto/tls.(*clientHandshakeStateTLS13).sendClientFinished_crypto/tls.(*clientHandshakeStateTLS13).sendDummyChangeCipherSpec_crypto/tls.(*clientHelloMsg).marshal_crypto/tls.(*clientHelloMsg).marshal.func1_crypto/tls.(*clientHelloMsg).marshal.func1.1_crypto/tls.(*clientHelloMsg).marshal.func1.2_crypto/tls.(*clientHelloMsg).marshal.func1.3_crypto/tls.(*clientHelloMsg).marshal.func1.4_crypto/tls.(*clientHelloMsg).marshal.func1.4.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.1.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.1.1.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.10_crypto/tls.(*clientHelloMsg).marshal.func1.4.10.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.11_crypto/tls.(*clientHelloMsg).marshal.func1.4.11.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.12_crypto/tls.(*clientHelloMsg).marshal.func1.4.12.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.12.1.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.13_crypto/tls.(*clientHelloMsg).marshal.func1.4.13.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.14_crypto/tls.(*clientHelloMsg).marshal.func1.4.14.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.14.1.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.14.2_crypto/tls.(*clientHelloMsg).marshal.func1.4.14.2.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.2_crypto/tls.(*clientHelloMsg).marshal.func1.4.3_crypto/tls.(*clientHelloMsg).marshal.func1.4.3.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.4_crypto/tls.(*clientHelloMsg).marshal.func1.4.4.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.5_crypto/tls.(*clientHelloMsg).marshal.func1.4.6_crypto/tls.(*clientHelloMsg).marshal.func1.4.6.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.7_crypto/tls.(*clientHelloMsg).marshal.func1.4.7.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.8_crypto/tls.(*clientHelloMsg).marshal.func1.4.8.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.9_crypto/tls.(*clientHelloMsg).marshal.func1.4.9.1_crypto/tls.(*clientHelloMsg).marshal.func1.4.9.1.1_crypto/tls.(*clientHelloMsg).marshalWithoutBinders_crypto/tls.(*clientHelloMsg).unmarshal_crypto/tls.(*clientHelloMsg).updateBinders_crypto/tls.(*clientHelloMsg).updateBinders.func1_crypto/tls.(*clientHelloMsg).updateBinders.func1.1_crypto/tls.(*clientKeyExchangeMsg).unmarshal_crypto/tls.(*cthWrapper).BlockSize_crypto/tls.(*cthWrapper).Reset_crypto/tls.(*cthWrapper).Size_crypto/tls.(*cthWrapper).Sum_crypto/tls.(*cthWrapper).Write_crypto/tls.(*ecdheKeyAgreement).generateClientKeyExchange_crypto/tls.(*ecdheKeyAgreement).processServerKeyExchange_crypto/tls.(*encryptedExtensionsMsg).marshal_crypto/tls.(*encryptedExtensionsMsg).marshal.func1_crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1_crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1_crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1.1_crypto/tls.(*encryptedExtensionsMsg).marshal.func1.1.1.1.1_crypto/tls.(*encryptedExtensionsMsg).unmarshal_crypto/tls.(*endOfEarlyDataMsg).unmarshal_crypto/tls.(*finishedHash).Write_crypto/tls.(*finishedMsg).marshal_crypto/tls.(*finishedMsg).marshal.func1_crypto/tls.(*finishedMsg).unmarshal_crypto/tls.(*halfConn).Lock_crypto/tls.(*halfConn).Unlock_crypto/tls.(*halfConn).changeCipherSpec_crypto/tls.(*halfConn).decrypt_crypto/tls.(*halfConn).encrypt_crypto/tls.(*halfConn).explicitNonceLen_crypto/tls.(*halfConn).setTrafficSecret_crypto/tls.(*helloRequestMsg).unmarshal_crypto/tls.(*keyUpdateMsg).marshal_crypto/tls.(*keyUpdateMsg).marshal.func1_crypto/tls.(*keyUpdateMsg).unmarshal_crypto/tls.(*newSessionTicketMsg).unmarshal_crypto/tls.(*newSessionTicketMsgTLS13).unmarshal_crypto/tls.(*nistParameters).CurveID_crypto/tls.(*nistParameters).PublicKey_crypto/tls.(*nistParameters).SharedKey_crypto/tls.(*permanentError).Error_crypto/tls.(*permanentError).Temporary_crypto/tls.(*permanentError).Timeout_crypto/tls.(*permanentError).Unwrap_crypto/tls.(*prefixNonceAEAD).NonceSize_crypto/tls.(*prefixNonceAEAD).Open_crypto/tls.(*prefixNonceAEAD).Overhead_crypto/tls.(*prefixNonceAEAD).Seal_crypto/tls.(*prefixNonceAEAD).explicitNonceLen_crypto/tls.(*rsaKeyAgreement).generateClientKeyExchange_crypto/tls.(*rsaKeyAgreement).processServerKeyExchange_crypto/tls.(*serverHelloDoneMsg).unmarshal_crypto/tls.(*serverHelloMsg).marshal_crypto/tls.(*serverHelloMsg).marshal.func1_crypto/tls.(*serverHelloMsg).marshal.func1.1_crypto/tls.(*serverHelloMsg).marshal.func1.2_crypto/tls.(*serverHelloMsg).marshal.func1.2.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.1.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.2_crypto/tls.(*serverHelloMsg).marshal.func1.2.2.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.2.1.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.3_crypto/tls.(*serverHelloMsg).marshal.func1.2.3.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.3.1.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.4_crypto/tls.(*serverHelloMsg).marshal.func1.2.5_crypto/tls.(*serverHelloMsg).marshal.func1.2.5.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.6_crypto/tls.(*serverHelloMsg).marshal.func1.2.7_crypto/tls.(*serverHelloMsg).marshal.func1.2.7.1_crypto/tls.(*serverHelloMsg).marshal.func1.2.8_crypto/tls.(*serverHelloMsg).marshal.func1.2.9_crypto/tls.(*serverHelloMsg).marshal.func1.2.9.1_crypto/tls.(*serverHelloMsg).unmarshal_crypto/tls.(*serverKeyExchangeMsg).unmarshal_crypto/tls.(*x25519Parameters).CurveID_crypto/tls.(*x25519Parameters).PublicKey_crypto/tls.(*x25519Parameters).SharedKey_crypto/tls.(*xorNonceAEAD).NonceSize_crypto/tls.(*xorNonceAEAD).Open_crypto/tls.(*xorNonceAEAD).Overhead_crypto/tls.(*xorNonceAEAD).Seal_crypto/tls.(*xorNonceAEAD).explicitNonceLen_crypto/tls..gobytes.2_crypto/tls..gobytes.3_crypto/tls..gobytes.4_crypto/tls..gobytes.5_crypto/tls..inittask_crypto/tls.ClientAuthType.String_crypto/tls.CurveID.String_crypto/tls.RecordHeaderError.Error_crypto/tls.SignatureScheme.String_crypto/tls._ClientAuthType_index_crypto/tls._CurveID_index_0_crypto/tls._SignatureScheme_index_8_crypto/tls.addBytesWithLength_crypto/tls.addBytesWithLength.func1_crypto/tls.aeadAESGCM_crypto/tls.aeadAESGCMTLS13_crypto/tls.aeadChaCha20Poly1305_crypto/tls.aesgcmCiphers_crypto/tls.alert.Error_crypto/tls.alert.String_crypto/tls.alertText_crypto/tls.certificateRequestInfoFromMsg_crypto/tls.checkALPN_crypto/tls.cipher3DES_crypto/tls.cipherAES_crypto/tls.cipherRC4_crypto/tls.cipherSuiteByID_crypto/tls.cipherSuiteTLS13ByID_crypto/tls.cipherSuites_crypto/tls.cipherSuitesPreferenceOrder_crypto/tls.cipherSuitesPreferenceOrderNoAES_crypto/tls.cipherSuitesTLS13_crypto/tls.clientFinishedLabel_crypto/tls.curveForCurveID_crypto/tls.defaultCipherSuites_crypto/tls.defaultCipherSuitesLen_crypto/tls.defaultCipherSuitesTLS13_crypto/tls.defaultCipherSuitesTLS13NoAES_crypto/tls.defaultCurvePreferences_crypto/tls.dial_crypto/tls.directSigning_crypto/tls.disabledCipherSuites_crypto/tls.ecdheECDSAKA_crypto/tls.ecdheRSAKA_crypto/tls.ekmFromMasterSecret_crypto/tls.ekmFromMasterSecret.func1_crypto/tls.emptyConfig_crypto/tls.errClientKeyExchange_crypto/tls.errEarlyCloseWrite_crypto/tls.errNoCertificates_crypto/tls.errServerKeyExchange_crypto/tls.errShutdown_crypto/tls.extractPadding_crypto/tls.finishedHash.Sum_crypto/tls.finishedHash.clientSum_crypto/tls.finishedHash.hashForClientCertificate_crypto/tls.finishedHash.serverSum_crypto/tls.generateECDHEParameters_crypto/tls.glob..func1_crypto/tls.hasAESGCMHardwareSupport_crypto/tls.hasGCMAsmAMD64_crypto/tls.hasGCMAsmARM64_crypto/tls.hasGCMAsmS390X_crypto/tls.hashForServerKeyExchange_crypto/tls.helloRetryRequestRandom_crypto/tls.hostnameInSNI_crypto/tls.init_crypto/tls.isSupportedSignatureAlgorithm_crypto/tls.keyExpansionLabel_crypto/tls.keysFromMasterSecret_crypto/tls.legacyTypeAndHashFromPublicKey_crypto/tls.macSHA1_crypto/tls.macSHA256_crypto/tls.marshalCertificate_crypto/tls.marshalCertificate.func1_crypto/tls.marshalCertificate.func1.1_crypto/tls.marshalCertificate.func1.2_crypto/tls.marshalCertificate.func1.2.1_crypto/tls.marshalCertificate.func1.2.1.1_crypto/tls.marshalCertificate.func1.2.2_crypto/tls.marshalCertificate.func1.2.2.1_crypto/tls.marshalCertificate.func1.2.2.1.1_crypto/tls.marshalingFunction.Marshal_crypto/tls.masterFromPreMasterSecret_crypto/tls.masterSecretLabel_crypto/tls.md5SHA1Hash_crypto/tls.mutualCipherSuite_crypto/tls.mutualCipherSuiteTLS13_crypto/tls.newConstantTimeHash_crypto/tls.newConstantTimeHash.func1_crypto/tls.newFinishedHash_crypto/tls.noExportedKeyingMaterial_crypto/tls.nonAESGCMAEADCiphers_crypto/tls.outBufPool_crypto/tls.pHash_crypto/tls.prf10_crypto/tls.prf12_crypto/tls.prf12.func1_crypto/tls.prfAndHashForVersion_crypto/tls.rsaKA_crypto/tls.rsaKeyAgreement.generateClientKeyExchange_crypto/tls.rsaKeyAgreement.processServerKeyExchange_crypto/tls.rsaSignatureSchemes_crypto/tls.selectCipherSuite_crypto/tls.selectSignatureScheme_crypto/tls.serverFinishedLabel_crypto/tls.sha1Hash_crypto/tls.signaturePadding_crypto/tls.signatureSchemesForCertificate_crypto/tls.signedMessage_crypto/tls.supportedSignatureAlgorithms_crypto/tls.supportedVersions_crypto/tls.supportsECDHE_crypto/tls.tls10MAC_crypto/tls.typeAndHashFromSignatureScheme_crypto/tls.unmarshalCertificate_crypto/tls.unsupportedCertificateError_crypto/tls.verifyHandshakeSignature_crypto/tls.writerMutex_crypto/x509.(*CertPool).AddCert_crypto/x509.(*CertPool).AddCert.func1_crypto/x509.(*CertPool).AppendCertsFromPEM_crypto/x509.(*CertPool).AppendCertsFromPEM.func1_crypto/x509.(*CertPool).AppendCertsFromPEM.func1.1_crypto/x509.(*CertPool).Subjects_crypto/x509.(*CertPool).findPotentialParents_crypto/x509.(*Certificate).CheckCRLSignature_crypto/x509.(*Certificate).CheckSignature_crypto/x509.(*Certificate).CheckSignatureFrom_crypto/x509.(*Certificate).CreateCRL_crypto/x509.(*Certificate).Equal_crypto/x509.(*Certificate).Verify_crypto/x509.(*Certificate).VerifyHostname_crypto/x509.(*Certificate).buildChains_crypto/x509.(*Certificate).buildChains.func1_crypto/x509.(*Certificate).checkNameConstraints_crypto/x509.(*Certificate).getSANExtension_crypto/x509.(*Certificate).isValid_crypto/x509.(*Certificate).isValid.func1_crypto/x509.(*Certificate).isValid.func1.1_crypto/x509.(*Certificate).isValid.func1.2_crypto/x509.(*Certificate).isValid.func1.3_crypto/x509.(*Certificate).isValid.func1.4_crypto/x509.(*CertificateInvalidError).Error_crypto/x509.(*ConstraintViolationError).Error_crypto/x509.(*HostnameError).Error_crypto/x509.(*InsecureAlgorithmError).Error_crypto/x509.(*PublicKeyAlgorithm).String_crypto/x509.(*SignatureAlgorithm).String_crypto/x509.(*SystemRootsError).Error_crypto/x509.(*SystemRootsError).Unwrap_crypto/x509.(*UnhandledCriticalExtension).Error_crypto/x509.(*UnknownAuthorityError).Error_crypto/x509..inittask_crypto/x509.CertificateInvalidError.Error_crypto/x509.ConstraintViolationError.Error_crypto/x509.ErrUnsupportedAlgorithm_crypto/x509.HostnameError.Error_crypto/x509.IncorrectPasswordError_crypto/x509.InsecureAlgorithmError.Error_crypto/x509.MarshalPKCS1PrivateKey_crypto/x509.MarshalPKCS8PrivateKey_crypto/x509.MarshalPKIXPublicKey_crypto/x509.ParseCertificate_crypto/x509.ParsePKCS1PrivateKey_crypto/x509.ParsePKCS1PublicKey_crypto/x509.ParsePKCS8PrivateKey_crypto/x509.ParsePKIXPublicKey_crypto/x509.PublicKeyAlgorithm.String_crypto/x509.SignatureAlgorithm.String_crypto/x509.SystemRootsError.Error_crypto/x509.SystemRootsError.Unwrap_crypto/x509.UnhandledCriticalExtension.Error_crypto/x509.UnknownAuthorityError.Error_crypto/x509.checkChainForKeyUsage_crypto/x509.checkSignature_crypto/x509.debugDarwinRoots_crypto/x509.domainToReverseLabels_crypto/x509.errNotParsed_crypto/x509.exportCertificate_crypto/x509.extKeyUsageFromOID_crypto/x509.extKeyUsageOIDs_crypto/x509.forEachSAN_crypto/x509.getPublicKeyAlgorithmFromOID_crypto/x509.getSignatureAlgorithmFromAI_crypto/x509.hashToPSSParameters_crypto/x509.init_crypto/x509.initSystemRoots_crypto/x509.isIA5String_crypto/x509.isValidIPMask_crypto/x509.loadSystemRoots_crypto/x509.marshalECPrivateKeyWithOID_crypto/x509.marshalPublicKey_crypto/x509.matchDomainConstraint_crypto/x509.matchEmailConstraint_crypto/x509.matchExactly_crypto/x509.matchHostnames_crypto/x509.matchIPConstraint_crypto/x509.matchURIConstraint_crypto/x509.namedCurveFromOID_crypto/x509.oidAuthorityInfoAccessIssuers_crypto/x509.oidAuthorityInfoAccessOcsp_crypto/x509.oidExtensionAuthorityInfoAccess_crypto/x509.oidExtensionAuthorityKeyId_crypto/x509.oidExtensionNameConstraints_crypto/x509.oidExtensionSubjectAltName_crypto/x509.oidFromNamedCurve_crypto/x509.oidInExtensions_crypto/x509.oidMGF1_crypto/x509.oidNamedCurveP224_crypto/x509.oidNamedCurveP256_crypto/x509.oidNamedCurveP384_crypto/x509.oidNamedCurveP521_crypto/x509.oidPublicKeyDSA_crypto/x509.oidPublicKeyECDSA_crypto/x509.oidPublicKeyEd25519_crypto/x509.oidPublicKeyRSA_crypto/x509.oidSHA256_crypto/x509.oidSHA384_crypto/x509.oidSHA512_crypto/x509.oidSignatureECDSAWithSHA256_crypto/x509.oidSignatureECDSAWithSHA384_crypto/x509.oidSignatureECDSAWithSHA512_crypto/x509.oidSignatureEd25519_crypto/x509.oidSignatureRSAPSS_crypto/x509.oidSignatureSHA256WithRSA_crypto/x509.once_crypto/x509.parseAI_crypto/x509.parseASN1String_crypto/x509.parseBasicConstraintsExtension_crypto/x509.parseCertificate_crypto/x509.parseCertificatePoliciesExtension_crypto/x509.parseECPrivateKey_crypto/x509.parseExtKeyUsageExtension_crypto/x509.parseExtension_crypto/x509.parseKeyUsageExtension_crypto/x509.parseName_crypto/x509.parseNameConstraintsExtension_crypto/x509.parseNameConstraintsExtension.func1_crypto/x509.parsePublicKey_crypto/x509.parseRFC2821Mailbox_crypto/x509.parseSANExtension_crypto/x509.parseSANExtension.func1_crypto/x509.parseValidity_crypto/x509.parseValidity.func1_crypto/x509.processExtensions_crypto/x509.publicKeyAlgoName_crypto/x509.signatureAlgorithmDetails_crypto/x509.signaturePublicKeyAlgoMismatchError_crypto/x509.signingParamsForPublicKey_crypto/x509.sslTrustSettingsResult_crypto/x509.sslTrustSettingsResult.func1_crypto/x509.systemRoots_crypto/x509.systemRootsErr_crypto/x509.toLowerCaseASCII_crypto/x509.validHostname_crypto/x509/internal/macos.(*OSStatus).Error_crypto/x509/internal/macos..inittask_crypto/x509/internal/macos.CFArrayGetCount_crypto/x509/internal/macos.CFArrayGetValueAtIndex_crypto/x509/internal/macos.CFDataGetBytePtr_crypto/x509/internal/macos.CFDataGetLength_crypto/x509/internal/macos.CFDataToSlice_crypto/x509/internal/macos.CFDictionaryGetValueIfPresent_crypto/x509/internal/macos.CFEqual_crypto/x509/internal/macos.CFNumberGetValue_crypto/x509/internal/macos.CFRelease_crypto/x509/internal/macos.ErrNoTrustSettings_crypto/x509/internal/macos.OSStatus.Error_crypto/x509/internal/macos.SecItemExport_crypto/x509/internal/macos.SecPolicyAppleSSL_crypto/x509/internal/macos.SecPolicyCopyProperties_crypto/x509/internal/macos.SecPolicyOid_crypto/x509/internal/macos.SecTrustSettingsCopyCertificates_crypto/x509/internal/macos.SecTrustSettingsCopyTrustSettings_crypto/x509/internal/macos.SecTrustSettingsPolicy_crypto/x509/internal/macos.SecTrustSettingsPolicyString_crypto/x509/internal/macos.SecTrustSettingsResultKey_crypto/x509/internal/macos.StringToCFString_crypto/x509/internal/macos.init_crypto/x509/internal/macos.syscall_crypto/x509/internal/macos.x509_CFArrayGetCount_trampoline_crypto/x509/internal/macos.x509_CFArrayGetCount_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFArrayGetValueAtIndex_trampoline_crypto/x509/internal/macos.x509_CFArrayGetValueAtIndex_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFDataGetBytePtr_trampoline_crypto/x509/internal/macos.x509_CFDataGetBytePtr_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFDataGetLength_trampoline_crypto/x509/internal/macos.x509_CFDataGetLength_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFDictionaryGetValueIfPresent_trampoline_crypto/x509/internal/macos.x509_CFDictionaryGetValueIfPresent_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFEqual_trampoline_crypto/x509/internal/macos.x509_CFEqual_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFNumberGetValue_trampoline_crypto/x509/internal/macos.x509_CFNumberGetValue_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFRelease_trampoline_crypto/x509/internal/macos.x509_CFRelease_trampoline.args_stackmap_crypto/x509/internal/macos.x509_CFStringCreateWithBytes_trampoline_crypto/x509/internal/macos.x509_CFStringCreateWithBytes_trampoline.args_stackmap_crypto/x509/internal/macos.x509_SecItemExport_trampoline_crypto/x509/internal/macos.x509_SecItemExport_trampoline.args_stackmap_crypto/x509/internal/macos.x509_SecPolicyCopyProperties_trampoline_crypto/x509/internal/macos.x509_SecPolicyCopyProperties_trampoline.args_stackmap_crypto/x509/internal/macos.x509_SecTrustSettingsCopyCertificates_trampoline_crypto/x509/internal/macos.x509_SecTrustSettingsCopyCertificates_trampoline.args_stackmap_crypto/x509/internal/macos.x509_SecTrustSettingsCopyTrustSettings_trampoline_crypto/x509/internal/macos.x509_SecTrustSettingsCopyTrustSettings_trampoline.args_stackmap_crypto/x509/pkix.(*CertificateList).HasExpired_crypto/x509/pkix.(*Name).FillFromRDNSequence_crypto/x509/pkix.(*Name).String_crypto/x509/pkix.(*Name).ToRDNSequence_crypto/x509/pkix.(*RDNSequence).String_crypto/x509/pkix..inittask_crypto/x509/pkix.Name.String_crypto/x509/pkix.Name.ToRDNSequence_crypto/x509/pkix.Name.appendRDNs_crypto/x509/pkix.RDNSequence.String_crypto/x509/pkix.attributeTypeNames_crypto/x509/pkix.init_crypto/x509/pkix.oidCommonName_crypto/x509/pkix.oidCountry_crypto/x509/pkix.oidInAttributeTypeAndValue_crypto/x509/pkix.oidLocality_crypto/x509/pkix.oidOrganization_crypto/x509/pkix.oidOrganizationalUnit_crypto/x509/pkix.oidPostalCode_crypto/x509/pkix.oidProvince_crypto/x509/pkix.oidSerialNumber_crypto/x509/pkix.oidStreetAddress_encoding/asn1.(*BitString).At_encoding/asn1.(*BitString).RightAlign_encoding/asn1.(*ObjectIdentifier).Equal_encoding/asn1.(*ObjectIdentifier).String_encoding/asn1.(*StructuralError).Error_encoding/asn1.(*SyntaxError).Error_encoding/asn1.(*bitStringEncoder).Encode_encoding/asn1.(*bitStringEncoder).Len_encoding/asn1.(*byteEncoder).Encode_encoding/asn1.(*byteEncoder).Len_encoding/asn1.(*bytesEncoder).Encode_encoding/asn1.(*bytesEncoder).Len_encoding/asn1.(*int64Encoder).Encode_encoding/asn1.(*int64Encoder).Len_encoding/asn1.(*invalidUnmarshalError).Error_encoding/asn1.(*multiEncoder).Encode_encoding/asn1.(*multiEncoder).Len_encoding/asn1.(*oidEncoder).Encode_encoding/asn1.(*oidEncoder).Len_encoding/asn1.(*setEncoder).Encode_encoding/asn1.(*setEncoder).Len_encoding/asn1.(*stringEncoder).Encode_encoding/asn1.(*stringEncoder).Len_encoding/asn1.(*taggedEncoder).Encode_encoding/asn1.(*taggedEncoder).Len_encoding/asn1..inittask_encoding/asn1.BitString.At_encoding/asn1.BitString.RightAlign_encoding/asn1.MarshalWithParams_encoding/asn1.NullBytes_encoding/asn1.NullRawValue_encoding/asn1.ObjectIdentifier.Equal_encoding/asn1.ObjectIdentifier.String_encoding/asn1.StructuralError.Error_encoding/asn1.SyntaxError.Error_encoding/asn1.UnmarshalWithParams_encoding/asn1.appendFourDigits_encoding/asn1.appendGeneralizedTime_encoding/asn1.appendTagAndLength_encoding/asn1.appendTimeCommon_encoding/asn1.appendUTCTime_encoding/asn1.bigIntType_encoding/asn1.bigOne_encoding/asn1.bitStringEncoder.Encode_encoding/asn1.bitStringEncoder.Len_encoding/asn1.bitStringType_encoding/asn1.byte00Encoder_encoding/asn1.byteEncoder.Encode_encoding/asn1.byteEncoder.Len_encoding/asn1.byteFFEncoder_encoding/asn1.bytesEncoder.Encode_encoding/asn1.bytesEncoder.Len_encoding/asn1.enumeratedType_encoding/asn1.flagType_encoding/asn1.getUniversalType_encoding/asn1.init_encoding/asn1.int64Encoder.Encode_encoding/asn1.int64Encoder.Len_encoding/asn1.makeBigInt_encoding/asn1.makeBody_encoding/asn1.makeField_encoding/asn1.makeGeneralizedTime_encoding/asn1.makePrintableString_encoding/asn1.makeUTCTime_encoding/asn1.multiEncoder.Encode_encoding/asn1.multiEncoder.Len_encoding/asn1.objectIdentifierType_encoding/asn1.oidEncoder.Encode_encoding/asn1.oidEncoder.Len_encoding/asn1.outsideUTCRange_encoding/asn1.parseBMPString_encoding/asn1.parseBase128Int_encoding/asn1.parseBigInt_encoding/asn1.parseField_encoding/asn1.parseFieldParameters_encoding/asn1.parseGeneralizedTime_encoding/asn1.parseIA5String_encoding/asn1.parseInt32_encoding/asn1.parseInt64_encoding/asn1.parseNumericString_encoding/asn1.parseObjectIdentifier_encoding/asn1.parsePrintableString_encoding/asn1.parseSequenceOf_encoding/asn1.parseTagAndLength_encoding/asn1.parseUTCTime_encoding/asn1.rawContentsType_encoding/asn1.rawValueType_encoding/asn1.setDefaultValue_encoding/asn1.setEncoder.Encode_encoding/asn1.setEncoder.Encode.func1_encoding/asn1.setEncoder.Len_encoding/asn1.stringEncoder.Encode_encoding/asn1.stringEncoder.Len_encoding/asn1.timeType_encoding/base64.(*CorruptInputError).Error_encoding/base64.(*Encoding).Decode_encoding/base64.(*Encoding).DecodeString_encoding/base64.(*Encoding).DecodedLen_encoding/base64.(*Encoding).Encode_encoding/base64.(*Encoding).EncodeToString_encoding/base64.(*Encoding).EncodedLen_encoding/base64.(*Encoding).Strict_encoding/base64.(*Encoding).WithPadding_encoding/base64.(*Encoding).decodeQuantum_encoding/base64.(*encoder).Close_encoding/base64.(*encoder).Write_encoding/base64..inittask_encoding/base64.CorruptInputError.Error_encoding/base64.Encoding.Strict_encoding/base64.Encoding.WithPadding_encoding/base64.NewEncoding_encoding/base64.RawStdEncoding_encoding/base64.RawURLEncoding_encoding/base64.StdEncoding_encoding/base64.URLEncoding_encoding/base64.init_encoding/binary.(*bigEndian).GoString_encoding/binary.(*bigEndian).PutUint16_encoding/binary.(*bigEndian).PutUint32_encoding/binary.(*bigEndian).PutUint64_encoding/binary.(*bigEndian).String_encoding/binary.(*bigEndian).Uint16_encoding/binary.(*bigEndian).Uint32_encoding/binary.(*bigEndian).Uint64_encoding/binary.(*encoder).skip_encoding/binary.(*encoder).value_encoding/binary..inittask_encoding/binary.Write_encoding/binary.bigEndian.GoString_encoding/binary.bigEndian.PutUint16_encoding/binary.bigEndian.PutUint32_encoding/binary.bigEndian.PutUint64_encoding/binary.bigEndian.String_encoding/binary.bigEndian.Uint16_encoding/binary.bigEndian.Uint32_encoding/binary.bigEndian.Uint64_encoding/binary.dataSize_encoding/binary.init_encoding/binary.intDataSize_encoding/binary.overflow_encoding/binary.sizeof_encoding/binary.structSize_encoding/hex..inittask_encoding/hex.Encode_encoding/hex.ErrLength_encoding/hex.init_encoding/json.(*Decoder).Buffered_encoding/json.(*Decoder).Decode_encoding/json.(*Decoder).DisallowUnknownFields_encoding/json.(*Decoder).InputOffset_encoding/json.(*Decoder).More_encoding/json.(*Decoder).Token_encoding/json.(*Decoder).UseNumber_encoding/json.(*Decoder).peek_encoding/json.(*Decoder).readValue_encoding/json.(*Decoder).refill_encoding/json.(*Decoder).tokenError_encoding/json.(*Decoder).tokenPrepareForDecode_encoding/json.(*Delim).String_encoding/json.(*Encoder).Encode_encoding/json.(*InvalidUnmarshalError).Error_encoding/json.(*MarshalerError).Error_encoding/json.(*MarshalerError).Unwrap_encoding/json.(*Number).Float64_encoding/json.(*Number).Int64_encoding/json.(*Number).String_encoding/json.(*RawMessage).MarshalJSON_encoding/json.(*RawMessage).UnmarshalJSON_encoding/json.(*SyntaxError).Error_encoding/json.(*UnmarshalTypeError).Error_encoding/json.(*UnsupportedTypeError).Error_encoding/json.(*UnsupportedValueError).Error_encoding/json.(*byIndex).Len_encoding/json.(*byIndex).Less_encoding/json.(*byIndex).Swap_encoding/json.(*decodeState).addErrorContext_encoding/json.(*decodeState).array_encoding/json.(*decodeState).arrayInterface_encoding/json.(*decodeState).convertNumber_encoding/json.(*decodeState).literalInterface_encoding/json.(*decodeState).literalStore_encoding/json.(*decodeState).object_encoding/json.(*decodeState).objectInterface_encoding/json.(*decodeState).rescanLiteral_encoding/json.(*decodeState).scanNext_encoding/json.(*decodeState).scanWhile_encoding/json.(*decodeState).skip_encoding/json.(*decodeState).unmarshal_encoding/json.(*decodeState).value_encoding/json.(*decodeState).valueInterface_encoding/json.(*decodeState).valueQuoted_encoding/json.(*encodeState).Bytes_encoding/json.(*encodeState).Cap_encoding/json.(*encodeState).Grow_encoding/json.(*encodeState).Len_encoding/json.(*encodeState).Next_encoding/json.(*encodeState).Read_encoding/json.(*encodeState).ReadByte_encoding/json.(*encodeState).ReadBytes_encoding/json.(*encodeState).ReadFrom_encoding/json.(*encodeState).ReadRune_encoding/json.(*encodeState).ReadString_encoding/json.(*encodeState).Reset_encoding/json.(*encodeState).String_encoding/json.(*encodeState).Truncate_encoding/json.(*encodeState).UnreadByte_encoding/json.(*encodeState).UnreadRune_encoding/json.(*encodeState).Write_encoding/json.(*encodeState).WriteByte_encoding/json.(*encodeState).WriteRune_encoding/json.(*encodeState).WriteString_encoding/json.(*encodeState).WriteTo_encoding/json.(*encodeState).marshal_encoding/json.(*encodeState).marshal.func1_encoding/json.(*encodeState).reflectValue_encoding/json.(*encodeState).string_encoding/json.(*encodeState).stringBytes_encoding/json.(*jsonError).Error_encoding/json.(*reflectWithString).resolve_encoding/json.(*scanner).eof_encoding/json.(*scanner).popParseState_encoding/json.(*scanner).pushParseState_encoding/json..gobytes.1_encoding/json..inittask_encoding/json.Delim.String_encoding/json.HTMLEscape_encoding/json.Indent_encoding/json.Marshal_encoding/json.MarshalIndent_encoding/json.Number.Float64_encoding/json.Number.Int64_encoding/json.Number.String_encoding/json.RawMessage.MarshalJSON_encoding/json.Unmarshal_encoding/json.addrMarshalerEncoder_encoding/json.addrTextMarshalerEncoder_encoding/json.arrayEncoder.encode_encoding/json.arrayEncoder.encode-fm_encoding/json.asciiEqualFold_encoding/json.boolEncoder_encoding/json.byIndex.Len_encoding/json.byIndex.Less_encoding/json.byIndex.Swap_encoding/json.cachedTypeFields_encoding/json.checkValid_encoding/json.compact_encoding/json.condAddrEncoder.encode_encoding/json.condAddrEncoder.encode-fm_encoding/json.encodeByteSlice_encoding/json.encodeStatePool_encoding/json.encoderCache_encoding/json.equalFoldRight_encoding/json.fieldCache_encoding/json.float32Encoder_encoding/json.float64Encoder_encoding/json.floatEncoder.encode_encoding/json.floatEncoder.encode-fm_encoding/json.foldFunc_encoding/json.freeScanner_encoding/json.getu4_encoding/json.glob..func1_encoding/json.hex_encoding/json.htmlSafeSet_encoding/json.indirect_encoding/json.init_encoding/json.intEncoder_encoding/json.interfaceEncoder_encoding/json.invalidValueEncoder_encoding/json.isEmptyValue_encoding/json.isValidNumber_encoding/json.isValidTag_encoding/json.jsonError.Error_encoding/json.mapEncoder.encode_encoding/json.mapEncoder.encode-fm_encoding/json.mapEncoder.encode.func1_encoding/json.marshalerEncoder_encoding/json.marshalerType_encoding/json.newArrayEncoder_encoding/json.newEncodeState_encoding/json.newMapEncoder_encoding/json.newPtrEncoder_encoding/json.newScanner_encoding/json.newSliceEncoder_encoding/json.newStructEncoder_encoding/json.newTypeEncoder_encoding/json.newline_encoding/json.nonSpace_encoding/json.nullLiteral_encoding/json.numberType_encoding/json.parseTag_encoding/json.ptrEncoder.encode_encoding/json.ptrEncoder.encode-fm_encoding/json.quoteChar_encoding/json.safeSet_encoding/json.scannerPool_encoding/json.simpleLetterEqualFold_encoding/json.sliceEncoder.encode_encoding/json.sliceEncoder.encode-fm_encoding/json.state0_encoding/json.state1_encoding/json.stateBeginString_encoding/json.stateBeginStringOrEmpty_encoding/json.stateBeginValue_encoding/json.stateBeginValueOrEmpty_encoding/json.stateDot_encoding/json.stateDot0_encoding/json.stateE_encoding/json.stateE0_encoding/json.stateESign_encoding/json.stateEndTop_encoding/json.stateEndValue_encoding/json.stateError_encoding/json.stateF_encoding/json.stateFa_encoding/json.stateFal_encoding/json.stateFals_encoding/json.stateInString_encoding/json.stateInStringEsc_encoding/json.stateInStringEscU_encoding/json.stateInStringEscU1_encoding/json.stateInStringEscU12_encoding/json.stateInStringEscU123_encoding/json.stateN_encoding/json.stateNeg_encoding/json.stateNu_encoding/json.stateNul_encoding/json.stateT_encoding/json.stateTr_encoding/json.stateTru_encoding/json.stringEncoder_encoding/json.structEncoder.encode_encoding/json.structEncoder.encode-fm_encoding/json.tagOptions.Contains_encoding/json.textMarshalerEncoder_encoding/json.textMarshalerType_encoding/json.textUnmarshalerType_encoding/json.typeByIndex_encoding/json.typeEncoder_encoding/json.typeEncoder.func1_encoding/json.typeFields_encoding/json.typeFields.func1_encoding/json.uintEncoder_encoding/json.unquoteBytes_encoding/json.unsupportedTypeEncoder_encoding/json.valueEncoder_encoding/json.wrap.1_encoding/json.wrap.2_encoding/json.wrap.3_encoding/pem.(*lineBreaker).Close_encoding/pem.(*lineBreaker).Write_encoding/pem..gobytes.1_encoding/pem..gobytes.2_encoding/pem..gobytes.3_encoding/pem..inittask_encoding/pem.Decode_encoding/pem.Encode_encoding/pem.EncodeToMemory_encoding/pem.decodeError_encoding/pem.getLine_encoding/pem.nl_encoding/pem.pemEnd_encoding/pem.pemEndOfLine_encoding/pem.pemStart_encoding/pem.removeSpacesAndTabs_errors.(*errorString).Error_errors..inittask_errors.Is_errors.errorType_errors.init_flag.(*FlagSet).Arg_flag.(*FlagSet).Args_flag.(*FlagSet).Bool_flag.(*FlagSet).BoolVar_flag.(*FlagSet).Duration_flag.(*FlagSet).DurationVar_flag.(*FlagSet).ErrorHandling_flag.(*FlagSet).Float64_flag.(*FlagSet).Float64Var_flag.(*FlagSet).Func_flag.(*FlagSet).Init_flag.(*FlagSet).Int_flag.(*FlagSet).Int64_flag.(*FlagSet).Int64Var_flag.(*FlagSet).IntVar_flag.(*FlagSet).Lookup_flag.(*FlagSet).NArg_flag.(*FlagSet).NFlag_flag.(*FlagSet).Name_flag.(*FlagSet).Output_flag.(*FlagSet).Parse_flag.(*FlagSet).Parsed_flag.(*FlagSet).PrintDefaults_flag.(*FlagSet).PrintDefaults.func1_flag.(*FlagSet).Set_flag.(*FlagSet).SetOutput_flag.(*FlagSet).String_flag.(*FlagSet).StringVar_flag.(*FlagSet).Uint_flag.(*FlagSet).Uint64_flag.(*FlagSet).Uint64Var_flag.(*FlagSet).UintVar_flag.(*FlagSet).Var_flag.(*FlagSet).Visit_flag.(*FlagSet).VisitAll_flag.(*FlagSet).defaultUsage_flag.(*FlagSet).defaultUsage-fm_flag.(*FlagSet).failf_flag.(*FlagSet).parseOne_flag.(*FlagSet).sprintf_flag.(*FlagSet).usage_flag.(*boolValue).Get_flag.(*boolValue).IsBoolFlag_flag.(*boolValue).Set_flag.(*boolValue).String_flag.(*durationValue).Get_flag.(*durationValue).Set_flag.(*durationValue).String_flag.(*float64Value).Get_flag.(*float64Value).Set_flag.(*float64Value).String_flag.(*funcValue).Set_flag.(*funcValue).String_flag.(*int64Value).Get_flag.(*int64Value).Set_flag.(*int64Value).String_flag.(*intValue).Get_flag.(*intValue).Set_flag.(*intValue).String_flag.(*stringValue).Get_flag.(*stringValue).Set_flag.(*stringValue).String_flag.(*uint64Value).Get_flag.(*uint64Value).Set_flag.(*uint64Value).String_flag.(*uintValue).Get_flag.(*uintValue).Set_flag.(*uintValue).String_flag..inittask_flag.CommandLine_flag.ErrHelp_flag.UnquoteUsage_flag.Usage_flag.commandLineUsage_flag.errParse_flag.errRange_flag.funcValue.Set_flag.funcValue.String_flag.glob..func1_flag.init_flag.init.0_flag.isZeroValue_flag.sortFlags_flag.sortFlags.func1_fmt.(*buffer).writeRune_fmt.(*fmt).fmtBoolean_fmt.(*fmt).fmtBs_fmt.(*fmt).fmtC_fmt.(*fmt).fmtFloat_fmt.(*fmt).fmtInteger_fmt.(*fmt).fmtQ_fmt.(*fmt).fmtQc_fmt.(*fmt).fmtS_fmt.(*fmt).fmtSbx_fmt.(*fmt).fmtUnicode_fmt.(*fmt).pad_fmt.(*fmt).padString_fmt.(*fmt).truncate_fmt.(*fmt).truncateString_fmt.(*fmt).writePadding_fmt.(*pp).Flag_fmt.(*pp).Precision_fmt.(*pp).Width_fmt.(*pp).Write_fmt.(*pp).WriteString_fmt.(*pp).argNumber_fmt.(*pp).badArgNum_fmt.(*pp).badVerb_fmt.(*pp).catchPanic_fmt.(*pp).doPrint_fmt.(*pp).doPrintf_fmt.(*pp).doPrintln_fmt.(*pp).fmt0x64_fmt.(*pp).fmtBool_fmt.(*pp).fmtBytes_fmt.(*pp).fmtComplex_fmt.(*pp).fmtFloat_fmt.(*pp).fmtInteger_fmt.(*pp).fmtPointer_fmt.(*pp).fmtString_fmt.(*pp).free_fmt.(*pp).handleMethods_fmt.(*pp).missingArg_fmt.(*pp).printArg_fmt.(*pp).printValue_fmt.(*pp).unknownType_fmt.(*readRune).ReadRune_fmt.(*readRune).UnreadRune_fmt.(*readRune).readByte_fmt.(*ss).Read_fmt.(*ss).ReadRune_fmt.(*ss).SkipSpace_fmt.(*ss).Token_fmt.(*ss).Token.func1_fmt.(*ss).UnreadRune_fmt.(*ss).Width_fmt.(*ss).complexTokens_fmt.(*ss).consume_fmt.(*ss).convertFloat_fmt.(*ss).convertString_fmt.(*ss).doScan_fmt.(*ss).floatToken_fmt.(*ss).free_fmt.(*ss).getBase_fmt.(*ss).getRune_fmt.(*ss).hexByte_fmt.(*ss).hexString_fmt.(*ss).notEOF_fmt.(*ss).okVerb_fmt.(*ss).peek_fmt.(*ss).quotedString_fmt.(*ss).scanBasePrefix_fmt.(*ss).scanBool_fmt.(*ss).scanComplex_fmt.(*ss).scanInt_fmt.(*ss).scanNumber_fmt.(*ss).scanOne_fmt.(*ss).scanRune_fmt.(*ss).scanUint_fmt.(*ss).token_fmt.(*stringReader).Read_fmt.(*wrapError).Error_fmt.(*wrapError).Unwrap_fmt..inittask_fmt.Errorf_fmt.Fprint_fmt.Fprintf_fmt.Fprintln_fmt.Fscan_fmt.Sprint_fmt.Sprintf_fmt.Sprintln_fmt.boolError_fmt.complexError_fmt.errorHandler_fmt.getField_fmt.glob..func1_fmt.glob..func2_fmt.indexRune_fmt.init_fmt.intFromArg_fmt.isSpace_fmt.newPrinter_fmt.newScanState_fmt.notSpace_fmt.parseArgNumber_fmt.ppFree_fmt.space_fmt.ssFree_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).GetExtensions_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderFooter_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderHeader_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).RenderNode_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleHeading_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleItem_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleList_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleTable_github.com/cpuguy83/go-md2man/v2/md2man.(*roffRenderer).handleTableCell_github.com/cpuguy83/go-md2man/v2/md2man..inittask_github.com/cpuguy83/go-md2man/v2/md2man.Render_github.com/cpuguy83/go-md2man/v2/md2man.Render.func1_github.com/cpuguy83/go-md2man/v2/md2man.Render.func2_github.com/cpuguy83/go-md2man/v2/md2man.countColumns_github.com/cpuguy83/go-md2man/v2/md2man.countColumns.func1_github.com/cpuguy83/go-md2man/v2/md2man.escapeSpecialChars_github.com/lestrrat-go/blackmagic..inittask_github.com/lestrrat-go/blackmagic.AssignIfCompatible_github.com/lestrrat-go/httpcc..inittask_github.com/lestrrat-go/httprc.(*fetchResult).reply_github.com/lestrrat-go/httprc.(*fetcher).Fetch_github.com/lestrrat-go/httprc.(*fetcher).fetch_github.com/lestrrat-go/httprc.(*fetcherOption).Ident_github.com/lestrrat-go/httprc.(*fetcherOption).Value_github.com/lestrrat-go/httprc.(*identFetcherWorkerCount).String_github.com/lestrrat-go/httprc..inittask_github.com/lestrrat-go/httprc.NewFetcher_github.com/lestrrat-go/httprc.fetcherOption.Ident_github.com/lestrrat-go/httprc.fetcherOption.Value_github.com/lestrrat-go/httprc.identFetcherWorkerCount.String_github.com/lestrrat-go/httprc.runFetchWorker_github.com/lestrrat-go/iter/arrayiter.(*iter).Next_github.com/lestrrat-go/iter/arrayiter.(*iter).Pair_github.com/lestrrat-go/iter/arrayiter..inittask_github.com/lestrrat-go/iter/mapiter.(*VisitorFunc).Visit_github.com/lestrrat-go/iter/mapiter.(*iter).Next_github.com/lestrrat-go/iter/mapiter.(*iter).Pair_github.com/lestrrat-go/iter/mapiter..inittask_github.com/lestrrat-go/iter/mapiter.AsMap_github.com/lestrrat-go/iter/mapiter.Iterate_github.com/lestrrat-go/iter/mapiter.Iterate.func1_github.com/lestrrat-go/iter/mapiter.VisitorFunc.Visit_github.com/lestrrat-go/iter/mapiter.Walk_github.com/lestrrat-go/jwx/v2/cert.(*Chain).Add_github.com/lestrrat-go/jwx/v2/cert.(*Chain).AddString_github.com/lestrrat-go/jwx/v2/cert.(*Chain).Get_github.com/lestrrat-go/jwx/v2/cert.(*Chain).Len_github.com/lestrrat-go/jwx/v2/cert.(*Chain).MarshalJSON_github.com/lestrrat-go/jwx/v2/cert.(*Chain).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/cert..gobytes.1_github.com/lestrrat-go/jwx/v2/cert..gobytes.2_github.com/lestrrat-go/jwx/v2/cert..inittask_github.com/lestrrat-go/jwx/v2/cert.Chain.MarshalJSON_github.com/lestrrat-go/jwx/v2/cert.pemEnd_github.com/lestrrat-go/jwx/v2/cert.pemStart_github.com/lestrrat-go/jwx/v2/internal/base64..inittask_github.com/lestrrat-go/jwx/v2/internal/base64.Decode_github.com/lestrrat-go/jwx/v2/internal/base64.Encode_github.com/lestrrat-go/jwx/v2/internal/base64.EncodeUint64ToString_github.com/lestrrat-go/jwx/v2/internal/ecutil..inittask_github.com/lestrrat-go/jwx/v2/internal/ecutil.AllocECPointBuffer_github.com/lestrrat-go/jwx/v2/internal/ecutil.ReleaseECPointBuffer_github.com/lestrrat-go/jwx/v2/internal/ecutil.algToCurve_github.com/lestrrat-go/jwx/v2/internal/ecutil.availableAlgs_github.com/lestrrat-go/jwx/v2/internal/ecutil.availableCrvs_github.com/lestrrat-go/jwx/v2/internal/ecutil.curveToAlg_github.com/lestrrat-go/jwx/v2/internal/ecutil.ecpointBufferPool_github.com/lestrrat-go/jwx/v2/internal/ecutil.getCrvFixedBuffer_github.com/lestrrat-go/jwx/v2/internal/ecutil.glob..func1_github.com/lestrrat-go/jwx/v2/internal/ecutil.init_github.com/lestrrat-go/jwx/v2/internal/iter..inittask_github.com/lestrrat-go/jwx/v2/internal/iter.AsMap_github.com/lestrrat-go/jwx/v2/internal/iter.WalkMap_github.com/lestrrat-go/jwx/v2/internal/iter.WalkMap.func1_github.com/lestrrat-go/jwx/v2/internal/json.(*Registry).Decode_github.com/lestrrat-go/jwx/v2/internal/json.(*Registry).Register_github.com/lestrrat-go/jwx/v2/internal/json.(*decodeCtx).Registry_github.com/lestrrat-go/jwx/v2/internal/json..inittask_github.com/lestrrat-go/jwx/v2/internal/json.AssignNextBytesToken_github.com/lestrrat-go/jwx/v2/internal/json.NewDecoder_github.com/lestrrat-go/jwx/v2/internal/json.ReadNextStringToken_github.com/lestrrat-go/jwx/v2/internal/json.Unmarshal_github.com/lestrrat-go/jwx/v2/internal/json.muGlobalConfig_github.com/lestrrat-go/jwx/v2/internal/json.useNumber_github.com/lestrrat-go/jwx/v2/internal/keyconv..inittask_github.com/lestrrat-go/jwx/v2/internal/keyconv.ByteSliceKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.ECDSAPrivateKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.ECDSAPublicKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.Ed25519PrivateKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.Ed25519PublicKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.RSAPrivateKey_github.com/lestrrat-go/jwx/v2/internal/keyconv.RSAPublicKey_github.com/lestrrat-go/jwx/v2/internal/pool..inittask_github.com/lestrrat-go/jwx/v2/internal/pool.ReleaseBigInt_github.com/lestrrat-go/jwx/v2/internal/pool.ReleaseBytesBuffer_github.com/lestrrat-go/jwx/v2/internal/pool.allocBigInt_github.com/lestrrat-go/jwx/v2/internal/pool.allocBytesBuffer_github.com/lestrrat-go/jwx/v2/internal/pool.bigIntPool_github.com/lestrrat-go/jwx/v2/internal/pool.bytesBufferPool_github.com/lestrrat-go/jwx/v2/jwa.(*CompressionAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*CompressionAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa.(*ContentEncryptionAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*ContentEncryptionAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa.(*EllipticCurveAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*EllipticCurveAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa.(*InvalidKeyAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*InvalidKeyAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).IsSymmetric_github.com/lestrrat-go/jwx/v2/jwa.(*KeyEncryptionAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa.(*KeyType).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*KeyType).String_github.com/lestrrat-go/jwx/v2/jwa.(*SignatureAlgorithm).Accept_github.com/lestrrat-go/jwx/v2/jwa.(*SignatureAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwa..inittask_github.com/lestrrat-go/jwx/v2/jwa.CompressionAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithms.func1_github.com/lestrrat-go/jwx/v2/jwa.ContentEncryptionAlgorithms.func1.1_github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithms.func1_github.com/lestrrat-go/jwx/v2/jwa.EllipticCurveAlgorithms.func1.1_github.com/lestrrat-go/jwx/v2/jwa.InvalidKeyAlgorithm.Accept_github.com/lestrrat-go/jwx/v2/jwa.InvalidKeyAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.KeyAlgorithmFrom_github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithm.IsSymmetric_github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithms.func1_github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithms.func1.1_github.com/lestrrat-go/jwx/v2/jwa.KeyType.String_github.com/lestrrat-go/jwx/v2/jwa.KeyTypes_github.com/lestrrat-go/jwx/v2/jwa.KeyTypes.func1_github.com/lestrrat-go/jwx/v2/jwa.KeyTypes.func1.1_github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithms.func1_github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithms.func1.1_github.com/lestrrat-go/jwx/v2/jwa.allCompressionAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.allContentEncryptionAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.allEllipticCurveAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.allKeyEncryptionAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.allKeyTypes_github.com/lestrrat-go/jwx/v2/jwa.allSignatureAlgorithms_github.com/lestrrat-go/jwx/v2/jwa.init_github.com/lestrrat-go/jwx/v2/jwa.listContentEncryptionAlgorithm_github.com/lestrrat-go/jwx/v2/jwa.listContentEncryptionAlgorithmOnce_github.com/lestrrat-go/jwx/v2/jwa.listEllipticCurveAlgorithm_github.com/lestrrat-go/jwx/v2/jwa.listEllipticCurveAlgorithmOnce_github.com/lestrrat-go/jwx/v2/jwa.listKeyEncryptionAlgorithm_github.com/lestrrat-go/jwx/v2/jwa.listKeyEncryptionAlgorithmOnce_github.com/lestrrat-go/jwx/v2/jwa.listKeyType_github.com/lestrrat-go/jwx/v2/jwa.listKeyTypeOnce_github.com/lestrrat-go/jwx/v2/jwa.listSignatureAlgorithm_github.com/lestrrat-go/jwx/v2/jwa.listSignatureAlgorithmOnce_github.com/lestrrat-go/jwx/v2/jwe.(*KeyProviderFunc).FetchKeys_github.com/lestrrat-go/jwx/v2/jwe.(*Message).AuthenticatedData_github.com/lestrrat-go/jwx/v2/jwe.(*Message).CipherText_github.com/lestrrat-go/jwx/v2/jwe.(*Message).InitializationVector_github.com/lestrrat-go/jwx/v2/jwe.(*Message).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.(*Message).MarshalJSON.func1_github.com/lestrrat-go/jwx/v2/jwe.(*Message).ProtectedHeaders_github.com/lestrrat-go/jwx/v2/jwe.(*Message).Recipients_github.com/lestrrat-go/jwx/v2/jwe.(*Message).Set_github.com/lestrrat-go/jwx/v2/jwe.(*Message).Tag_github.com/lestrrat-go/jwx/v2/jwe.(*Message).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.(*Message).UnprotectedHeaders_github.com/lestrrat-go/jwx/v2/jwe.(*Message).makeDummyRecipient_github.com/lestrrat-go/jwx/v2/jwe.(*algKeySink).Key_github.com/lestrrat-go/jwx/v2/jwe.(*decryptCtx).decryptKey_github.com/lestrrat-go/jwx/v2/jwe.(*decryptCtx).try_github.com/lestrrat-go/jwx/v2/jwe.(*decryptOption).Ident_github.com/lestrrat-go/jwx/v2/jwe.(*decryptOption).Value_github.com/lestrrat-go/jwx/v2/jwe.(*decrypter).BuildKeyDecrypter_github.com/lestrrat-go/jwx/v2/jwe.(*decrypter).ContentCipher_github.com/lestrrat-go/jwx/v2/jwe.(*decrypter).Decrypt_github.com/lestrrat-go/jwx/v2/jwe.(*decrypter).DecryptKey_github.com/lestrrat-go/jwx/v2/jwe.(*decrypter).decryptSymmetricKey_github.com/lestrrat-go/jwx/v2/jwe.(*encryptDecryptOption).Ident_github.com/lestrrat-go/jwx/v2/jwe.(*encryptDecryptOption).Value_github.com/lestrrat-go/jwx/v2/jwe.(*encryptOption).Ident_github.com/lestrrat-go/jwx/v2/jwe.(*encryptOption).Value_github.com/lestrrat-go/jwx/v2/jwe.(*identCompress).String_github.com/lestrrat-go/jwx/v2/jwe.(*identContentEncryptionAlgorithm).String_github.com/lestrrat-go/jwx/v2/jwe.(*identKey).String_github.com/lestrrat-go/jwx/v2/jwe.(*identKeyProvider).String_github.com/lestrrat-go/jwx/v2/jwe.(*recipientBuilder).Build_github.com/lestrrat-go/jwx/v2/jwe.(*staticKeyProvider).FetchKeys_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AgreementPartyUInfo_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AgreementPartyVInfo_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Algorithm_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).AsMap_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Clone_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Compression_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).ContentEncryption_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).ContentType_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Copy_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Critical_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Decode_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Encode_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).EphemeralPublicKey_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Get_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Iterate_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).JWK_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).JWKSetURL_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).KeyID_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Merge_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).PrivateParams_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Remove_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Set_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Type_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).Walk_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertChain_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).X509URL_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).isZero_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).makePairs_github.com/lestrrat-go/jwx/v2/jwe.(*stdHeaders).setNoLock_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).EncryptedKey_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).Headers_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).SetEncryptedKey_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).SetHeaders_github.com/lestrrat-go/jwx/v2/jwe.(*stdRecipient).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwe..inittask_github.com/lestrrat-go/jwx/v2/jwe.Compact_github.com/lestrrat-go/jwx/v2/jwe.Decrypt_github.com/lestrrat-go/jwx/v2/jwe.Encrypt_github.com/lestrrat-go/jwx/v2/jwe.KeyProviderFunc.FetchKeys_github.com/lestrrat-go/jwx/v2/jwe.WithKey_github.com/lestrrat-go/jwx/v2/jwe.compress_github.com/lestrrat-go/jwx/v2/jwe.decryptOption.Ident_github.com/lestrrat-go/jwx/v2/jwe.decryptOption.Value_github.com/lestrrat-go/jwx/v2/jwe.encryptDecryptOption.Ident_github.com/lestrrat-go/jwx/v2/jwe.encryptDecryptOption.Value_github.com/lestrrat-go/jwx/v2/jwe.encryptOption.Ident_github.com/lestrrat-go/jwx/v2/jwe.encryptOption.Value_github.com/lestrrat-go/jwx/v2/jwe.identCompress.String_github.com/lestrrat-go/jwx/v2/jwe.identContentEncryptionAlgorithm.String_github.com/lestrrat-go/jwx/v2/jwe.identKey.String_github.com/lestrrat-go/jwx/v2/jwe.identKeyProvider.String_github.com/lestrrat-go/jwx/v2/jwe.init_github.com/lestrrat-go/jwx/v2/jwe.parseCompact_github.com/lestrrat-go/jwx/v2/jwe.parseJSON_github.com/lestrrat-go/jwx/v2/jwe.parseJSONOrCompact_github.com/lestrrat-go/jwx/v2/jwe.registry_github.com/lestrrat-go/jwx/v2/jwe.stdHeaders.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwe.uncompress_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).ComputeAuthTag_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).NonceSize_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Open_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Overhead_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.(*Hmac).Seal_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.ComputeAuthTag_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.NonceSize_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Open_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Overhead_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac.Seal_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.New_github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.unpad_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).KeySize_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*AesContentCipher).TagSize_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*cbcFetcher).Fetch_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.(*gcmFetcher).Fetch_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Decrypt.func1_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.Encrypt.func1_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.KeySize_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher.TagSize_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.NewAES_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.cbc_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.cbcFetcher.Fetch_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.gcm_github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.gcmFetcher.Fetch_github.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf.(*KDF).Read_github.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/concatkdf.New_github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Generic.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.NewGeneric_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AES).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*AESGCMEncrypt).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESDecrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESDecrypt).Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*ECDHESEncrypt).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*Noop).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*PBES2Encrypt).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPDecrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPDecrypt).Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAOAEPEncrypt).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCS15Decrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCS15Decrypt).Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.(*RSAPKCSEncrypt).SetKeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt.KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.DeriveECDHES_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.DeriveZ_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESDecrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESDecrypt.Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt.KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewECDHESEncrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.NewPBES2Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt.KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt.Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt.KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Decrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt.Decrypt.func1_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.Algorithm_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.Encrypt_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt.KeyID_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Unwrap_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Wrap_github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.keywrapDefaultIV_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteKey).Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithECPublicKey).Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithECPublicKey).Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithIVAndTag).Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithIVAndTag).Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithSaltAndCount).Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*ByteWithSaltAndCount).Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Ecdhes).Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Ecdhes).Size_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Random).Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*Random).Size_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*X25519).Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.(*X25519).Size_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen..inittask_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteKey.Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithECPublicKey.Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithECPublicKey.Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithIVAndTag.Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithIVAndTag.Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithSaltAndCount.Bytes_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithSaltAndCount.Populate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes.Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes.Size_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Random.Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Random.Size_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.X25519.Generate_github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.X25519.Size_github.com/lestrrat-go/jwx/v2/jwk.(*KeyOperationList).Accept_github.com/lestrrat-go/jwx/v2/jwk.(*KeyOperationList).Get_github.com/lestrrat-go/jwx/v2/jwk.(*KeyUsageType).Accept_github.com/lestrrat-go/jwx/v2/jwk.(*KeyUsageType).String_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Crv_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).D_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).Y_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPrivateKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Crv_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).Y_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*ecdsaPublicKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*identLocalRegistry).String_github.com/lestrrat-go/jwx/v2/jwk.(*identPEM).String_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Crv_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).D_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*okpPrivateKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Crv_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*okpPublicKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*parseOption).Ident_github.com/lestrrat-go/jwx/v2/jwk.(*parseOption).Value_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).D_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DP_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DQ_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).E_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).N_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).P_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Q_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).QI_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPrivateKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).E_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).N_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*rsaPublicKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*set).Add_github.com/lestrrat-go/jwx/v2/jwk.(*set).Clear_github.com/lestrrat-go/jwx/v2/jwk.(*set).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*set).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*set).Field_github.com/lestrrat-go/jwx/v2/jwk.(*set).Get_github.com/lestrrat-go/jwx/v2/jwk.(*set).Index_github.com/lestrrat-go/jwx/v2/jwk.(*set).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*set).Len_github.com/lestrrat-go/jwx/v2/jwk.(*set).LookupKeyID_github.com/lestrrat-go/jwx/v2/jwk.(*set).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*set).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*set).Set_github.com/lestrrat-go/jwx/v2/jwk.(*set).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*set).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*set).indexNL_github.com/lestrrat-go/jwx/v2/jwk.(*setDecodeCtx).IgnoreParseError_github.com/lestrrat-go/jwx/v2/jwk.(*setDecodeCtx).Registry_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Algorithm_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).AsMap_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Clone_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).DecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).FromRaw_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Get_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Iterate_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Iterate.func1_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyID_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyOps_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyType_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).KeyUsage_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Octets_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).PrivateParams_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).PublicKey_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Raw_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Remove_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Set_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).Walk_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertChain_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).X509URL_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).makePairs_github.com/lestrrat-go/jwx/v2/jwk.(*symmetricKey).setNoLock_github.com/lestrrat-go/jwx/v2/jwk.(*sysFS).Open_github.com/lestrrat-go/jwx/v2/jwk..inittask_github.com/lestrrat-go/jwx/v2/jwk.DecodePEM_github.com/lestrrat-go/jwx/v2/jwk.FromRaw_github.com/lestrrat-go/jwx/v2/jwk.KeyUsageType.String_github.com/lestrrat-go/jwx/v2/jwk.Parse_github.com/lestrrat-go/jwx/v2/jwk.Parse.func1_github.com/lestrrat-go/jwx/v2/jwk.ParseKey_github.com/lestrrat-go/jwx/v2/jwk.ParseKey.func1_github.com/lestrrat-go/jwx/v2/jwk.ParseReader_github.com/lestrrat-go/jwx/v2/jwk.Pem_github.com/lestrrat-go/jwx/v2/jwk.PublicKeyOf_github.com/lestrrat-go/jwx/v2/jwk.PublicSetOf_github.com/lestrrat-go/jwx/v2/jwk.ReadFile_github.com/lestrrat-go/jwx/v2/jwk.asnEncode_github.com/lestrrat-go/jwx/v2/jwk.bigIntToBytes_github.com/lestrrat-go/jwx/v2/jwk.buildECDSAPublicKey_github.com/lestrrat-go/jwx/v2/jwk.buildOKPPrivateKey_github.com/lestrrat-go/jwx/v2/jwk.cloneKey_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.ecdsaThumbprint_github.com/lestrrat-go/jwx/v2/jwk.globalFetcher_github.com/lestrrat-go/jwx/v2/jwk.identLocalRegistry.String_github.com/lestrrat-go/jwx/v2/jwk.identPEM.String_github.com/lestrrat-go/jwx/v2/jwk.init_github.com/lestrrat-go/jwx/v2/jwk.init.0_github.com/lestrrat-go/jwx/v2/jwk.init.1_github.com/lestrrat-go/jwx/v2/jwk.iterate_github.com/lestrrat-go/jwx/v2/jwk.makeECDSAPublicKey_github.com/lestrrat-go/jwx/v2/jwk.makeOKPPublicKey_github.com/lestrrat-go/jwx/v2/jwk.makeRSAPublicKey_github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.okpThumbprint_github.com/lestrrat-go/jwx/v2/jwk.parseOption.Ident_github.com/lestrrat-go/jwx/v2/jwk.parseOption.Value_github.com/lestrrat-go/jwx/v2/jwk.registry_github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey.Thumbprint_github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKeyByteValuesFromRaw_github.com/lestrrat-go/jwx/v2/jwk.rsaThumbprint_github.com/lestrrat-go/jwx/v2/jwk.setDecodeCtx.Registry_github.com/lestrrat-go/jwx/v2/jwk.symmetricKey.KeyType_github.com/lestrrat-go/jwx/v2/jwk.symmetricKey.MarshalJSON_github.com/lestrrat-go/jwx/v2/jwk.sysFS.Open_github.com/lestrrat-go/jwx/v2/jws.(*HMACSigner).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*HMACSigner).Sign_github.com/lestrrat-go/jwx/v2/jws.(*HMACVerifier).Verify_github.com/lestrrat-go/jwx/v2/jws.(*Message).AppendSignature_github.com/lestrrat-go/jwx/v2/jws.(*Message).ClearSignatures_github.com/lestrrat-go/jwx/v2/jws.(*Message).DecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*Message).LookupSignature_github.com/lestrrat-go/jwx/v2/jws.(*Message).MarshalJSON_github.com/lestrrat-go/jwx/v2/jws.(*Message).Payload_github.com/lestrrat-go/jwx/v2/jws.(*Message).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*Message).SetPayload_github.com/lestrrat-go/jwx/v2/jws.(*Message).Signatures_github.com/lestrrat-go/jwx/v2/jws.(*Message).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jws.(*Message).clearRaw_github.com/lestrrat-go/jwx/v2/jws.(*Signature).DecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*Signature).ProtectedHeaders_github.com/lestrrat-go/jwx/v2/jws.(*Signature).PublicHeaders_github.com/lestrrat-go/jwx/v2/jws.(*Signature).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*Signature).SetProtectedHeaders_github.com/lestrrat-go/jwx/v2/jws.(*Signature).SetPublicHeaders_github.com/lestrrat-go/jwx/v2/jws.(*Signature).SetSignature_github.com/lestrrat-go/jwx/v2/jws.(*Signature).Sign_github.com/lestrrat-go/jwx/v2/jws.(*Signature).Signature_github.com/lestrrat-go/jwx/v2/jws.(*Signature).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jws.(*SignerFactoryFn).Create_github.com/lestrrat-go/jwx/v2/jws.(*VerifierFactoryFn).Create_github.com/lestrrat-go/jwx/v2/jws.(*algKeySink).Key_github.com/lestrrat-go/jwx/v2/jws.(*compactOption).Ident_github.com/lestrrat-go/jwx/v2/jws.(*compactOption).Value_github.com/lestrrat-go/jwx/v2/jws.(*ecdsaSigner).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*ecdsaSigner).Sign_github.com/lestrrat-go/jwx/v2/jws.(*ecdsaVerifier).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*ecdsaVerifier).Verify_github.com/lestrrat-go/jwx/v2/jws.(*eddsaSigner).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*eddsaSigner).Sign_github.com/lestrrat-go/jwx/v2/jws.(*eddsaVerifier).Verify_github.com/lestrrat-go/jwx/v2/jws.(*identDetached).String_github.com/lestrrat-go/jwx/v2/jws.(*identKey).String_github.com/lestrrat-go/jwx/v2/jws.(*identKeyProvider).String_github.com/lestrrat-go/jwx/v2/jws.(*keySetProvider).FetchKeys_github.com/lestrrat-go/jwx/v2/jws.(*keySetProvider).selectKey_github.com/lestrrat-go/jwx/v2/jws.(*rsaSigner).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*rsaSigner).Sign_github.com/lestrrat-go/jwx/v2/jws.(*rsaVerifier).Verify_github.com/lestrrat-go/jwx/v2/jws.(*signOption).Ident_github.com/lestrrat-go/jwx/v2/jws.(*signOption).Value_github.com/lestrrat-go/jwx/v2/jws.(*signVerifyOption).Ident_github.com/lestrrat-go/jwx/v2/jws.(*signVerifyOption).Value_github.com/lestrrat-go/jwx/v2/jws.(*staticKeyProvider).FetchKeys_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Algorithm_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).AsMap_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).ContentType_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Copy_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Critical_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).DecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Get_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Iterate_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Iterate.func1_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).JWK_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).JWKSetURL_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).KeyID_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).MarshalJSON_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Merge_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).PrivateParams_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Remove_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Set_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).SetDecodeCtx_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Type_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).UnmarshalJSON_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).Walk_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertChain_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertThumbprint_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509CertThumbprintS256_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).X509URL_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).makePairs_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).makePairs.func1_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).rawBuffer_github.com/lestrrat-go/jwx/v2/jws.(*stdHeaders).setNoLock_github.com/lestrrat-go/jwx/v2/jws.(*verifyOption).Ident_github.com/lestrrat-go/jwx/v2/jws.(*verifyOption).Value_github.com/lestrrat-go/jwx/v2/jws.(*withKey).Protected_github.com/lestrrat-go/jwx/v2/jws..inittask_github.com/lestrrat-go/jwx/v2/jws.AlgorithmsForKey_github.com/lestrrat-go/jwx/v2/jws.Compact_github.com/lestrrat-go/jwx/v2/jws.HMACSigner.Algorithm_github.com/lestrrat-go/jwx/v2/jws.HMACSigner.Sign_github.com/lestrrat-go/jwx/v2/jws.HMACVerifier.Verify_github.com/lestrrat-go/jwx/v2/jws.Message.LookupSignature_github.com/lestrrat-go/jwx/v2/jws.Message.MarshalJSON_github.com/lestrrat-go/jwx/v2/jws.Message.Payload_github.com/lestrrat-go/jwx/v2/jws.Message.Signatures_github.com/lestrrat-go/jwx/v2/jws.Message.marshalFlattened_github.com/lestrrat-go/jwx/v2/jws.Message.marshalFull_github.com/lestrrat-go/jwx/v2/jws.NewSigner_github.com/lestrrat-go/jwx/v2/jws.NewVerifier_github.com/lestrrat-go/jwx/v2/jws.Parse_github.com/lestrrat-go/jwx/v2/jws.Sign_github.com/lestrrat-go/jwx/v2/jws.Signature.ProtectedHeaders_github.com/lestrrat-go/jwx/v2/jws.Signature.PublicHeaders_github.com/lestrrat-go/jwx/v2/jws.Signature.Signature_github.com/lestrrat-go/jwx/v2/jws.SignerFactoryFn.Create_github.com/lestrrat-go/jwx/v2/jws.SplitCompact_github.com/lestrrat-go/jwx/v2/jws.VerifierFactoryFn.Create_github.com/lestrrat-go/jwx/v2/jws.Verify_github.com/lestrrat-go/jwx/v2/jws.WithKey_github.com/lestrrat-go/jwx/v2/jws.WithKeySet_github.com/lestrrat-go/jwx/v2/jws.compactOption.Ident_github.com/lestrrat-go/jwx/v2/jws.compactOption.Value_github.com/lestrrat-go/jwx/v2/jws.ecdsaSigner.Algorithm_github.com/lestrrat-go/jwx/v2/jws.ecdsaSigners_github.com/lestrrat-go/jwx/v2/jws.ecdsaVerifier.Algorithm_github.com/lestrrat-go/jwx/v2/jws.ecdsaVerifiers_github.com/lestrrat-go/jwx/v2/jws.eddsaSigner.Algorithm_github.com/lestrrat-go/jwx/v2/jws.eddsaSigner.Sign_github.com/lestrrat-go/jwx/v2/jws.eddsaVerifier.Verify_github.com/lestrrat-go/jwx/v2/jws.getB64Value_github.com/lestrrat-go/jwx/v2/jws.hmacSignFuncs_github.com/lestrrat-go/jwx/v2/jws.identDetached.String_github.com/lestrrat-go/jwx/v2/jws.identKey.String_github.com/lestrrat-go/jwx/v2/jws.identKeyProvider.String_github.com/lestrrat-go/jwx/v2/jws.init_github.com/lestrrat-go/jwx/v2/jws.init.0_github.com/lestrrat-go/jwx/v2/jws.init.1_github.com/lestrrat-go/jwx/v2/jws.init.2_github.com/lestrrat-go/jwx/v2/jws.init.3_github.com/lestrrat-go/jwx/v2/jws.init.4_github.com/lestrrat-go/jwx/v2/jws.init.4.func4_github.com/lestrrat-go/jwx/v2/jws.init.4.func5_github.com/lestrrat-go/jwx/v2/jws.init.4.func6_github.com/lestrrat-go/jwx/v2/jws.init.4.func7_github.com/lestrrat-go/jwx/v2/jws.init.5_github.com/lestrrat-go/jwx/v2/jws.init.5.func4_github.com/lestrrat-go/jwx/v2/jws.init.5.func5_github.com/lestrrat-go/jwx/v2/jws.init.5.func6_github.com/lestrrat-go/jwx/v2/jws.init.5.func7_github.com/lestrrat-go/jwx/v2/jws.keyTypeToAlgorithms_github.com/lestrrat-go/jwx/v2/jws.makeHMACSignFunc_github.com/lestrrat-go/jwx/v2/jws.makeHMACSignFunc.func1_github.com/lestrrat-go/jwx/v2/jws.makeSigner_github.com/lestrrat-go/jwx/v2/jws.mergeHeaders_github.com/lestrrat-go/jwx/v2/jws.muSigner_github.com/lestrrat-go/jwx/v2/jws.newECDSASigner_github.com/lestrrat-go/jwx/v2/jws.newECDSAVerifier_github.com/lestrrat-go/jwx/v2/jws.newHMACSigner_github.com/lestrrat-go/jwx/v2/jws.newHMACVerifier_github.com/lestrrat-go/jwx/v2/jws.newRSASigner_github.com/lestrrat-go/jwx/v2/jws.newRSAVerifier_github.com/lestrrat-go/jwx/v2/jws.parse_github.com/lestrrat-go/jwx/v2/jws.parseCompact_github.com/lestrrat-go/jwx/v2/jws.parseJSON_github.com/lestrrat-go/jwx/v2/jws.rawKeyToKeyType_github.com/lestrrat-go/jwx/v2/jws.registry_github.com/lestrrat-go/jwx/v2/jws.rsaSigners_github.com/lestrrat-go/jwx/v2/jws.rsaVerifiers_github.com/lestrrat-go/jwx/v2/jws.signOption.Ident_github.com/lestrrat-go/jwx/v2/jws.signOption.Value_github.com/lestrrat-go/jwx/v2/jws.signVerifyOption.Ident_github.com/lestrrat-go/jwx/v2/jws.signVerifyOption.Value_github.com/lestrrat-go/jwx/v2/jws.signerDB_github.com/lestrrat-go/jwx/v2/jws.signers_github.com/lestrrat-go/jwx/v2/jws.stdHeaders.MarshalJSON_github.com/lestrrat-go/jwx/v2/jws.verifierDB_github.com/lestrrat-go/jwx/v2/jws.verifyOption.Ident_github.com/lestrrat-go/jwx/v2/jws.verifyOption.Value_github.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Equal_github.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Public_github.com/lestrrat-go/jwx/v2/x25519.(*PrivateKey).Seed_github.com/lestrrat-go/jwx/v2/x25519.(*PublicKey).Equal_github.com/lestrrat-go/jwx/v2/x25519..inittask_github.com/lestrrat-go/jwx/v2/x25519.GenerateKey_github.com/lestrrat-go/jwx/v2/x25519.NewKeyFromSeed_github.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Equal_github.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Public_github.com/lestrrat-go/jwx/v2/x25519.PrivateKey.Seed_github.com/lestrrat-go/jwx/v2/x25519.PublicKey.Equal_github.com/lestrrat-go/option.(*pair).Ident_github.com/lestrrat-go/option.(*pair).Value_github.com/russross/blackfriday/v2.(*HTMLRenderer).RenderFooter_github.com/russross/blackfriday/v2.(*HTMLRenderer).RenderHeader_github.com/russross/blackfriday/v2.(*HTMLRenderer).RenderNode_github.com/russross/blackfriday/v2.(*HTMLRenderer).addAbsPrefix_github.com/russross/blackfriday/v2.(*HTMLRenderer).ensureUniqueHeadingID_github.com/russross/blackfriday/v2.(*HTMLRenderer).out_github.com/russross/blackfriday/v2.(*HTMLRenderer).outHRTag_github.com/russross/blackfriday/v2.(*HTMLRenderer).tag_github.com/russross/blackfriday/v2.(*HTMLRenderer).writeDocumentHeader_github.com/russross/blackfriday/v2.(*HTMLRenderer).writeTOC_github.com/russross/blackfriday/v2.(*HTMLRenderer).writeTOC.func1_github.com/russross/blackfriday/v2.(*Markdown).Parse_github.com/russross/blackfriday/v2.(*Markdown).Parse.func1_github.com/russross/blackfriday/v2.(*Markdown).addBlock_github.com/russross/blackfriday/v2.(*Markdown).addExistingChild_github.com/russross/blackfriday/v2.(*Markdown).block_github.com/russross/blackfriday/v2.(*Markdown).code_github.com/russross/blackfriday/v2.(*Markdown).fencedCodeBlock_github.com/russross/blackfriday/v2.(*Markdown).getRef_github.com/russross/blackfriday/v2.(*Markdown).html_github.com/russross/blackfriday/v2.(*Markdown).htmlComment_github.com/russross/blackfriday/v2.(*Markdown).htmlFindEnd_github.com/russross/blackfriday/v2.(*Markdown).htmlHr_github.com/russross/blackfriday/v2.(*Markdown).inline_github.com/russross/blackfriday/v2.(*Markdown).isHRule_github.com/russross/blackfriday/v2.(*Markdown).isUnderlinedHeading_github.com/russross/blackfriday/v2.(*Markdown).list_github.com/russross/blackfriday/v2.(*Markdown).listItem_github.com/russross/blackfriday/v2.(*Markdown).listTypeChanged_github.com/russross/blackfriday/v2.(*Markdown).oliPrefix_github.com/russross/blackfriday/v2.(*Markdown).paragraph_github.com/russross/blackfriday/v2.(*Markdown).parseRefsToAST_github.com/russross/blackfriday/v2.(*Markdown).parseRefsToAST.func1_github.com/russross/blackfriday/v2.(*Markdown).prefixHeading_github.com/russross/blackfriday/v2.(*Markdown).quote_github.com/russross/blackfriday/v2.(*Markdown).renderParagraph_github.com/russross/blackfriday/v2.(*Markdown).table_github.com/russross/blackfriday/v2.(*Markdown).tableHeader_github.com/russross/blackfriday/v2.(*Markdown).tableRow_github.com/russross/blackfriday/v2.(*Markdown).terminateBlockquote_github.com/russross/blackfriday/v2.(*Markdown).titleBlock_github.com/russross/blackfriday/v2.(*Node).AppendChild_github.com/russross/blackfriday/v2.(*Node).InsertBefore_github.com/russross/blackfriday/v2.(*Node).IsContainer_github.com/russross/blackfriday/v2.(*Node).IsLeaf_github.com/russross/blackfriday/v2.(*Node).String_github.com/russross/blackfriday/v2.(*Node).Unlink_github.com/russross/blackfriday/v2.(*Node).Walk_github.com/russross/blackfriday/v2.(*NodeType).String_github.com/russross/blackfriday/v2.(*SPRenderer).Process_github.com/russross/blackfriday/v2.(*SPRenderer).smartAmp_github.com/russross/blackfriday/v2.(*SPRenderer).smartAmp.func1_github.com/russross/blackfriday/v2.(*SPRenderer).smartAmpVariant_github.com/russross/blackfriday/v2.(*SPRenderer).smartAngledDoubleQuote-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartBacktick_github.com/russross/blackfriday/v2.(*SPRenderer).smartBacktick-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartDash_github.com/russross/blackfriday/v2.(*SPRenderer).smartDash-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartDashLatex_github.com/russross/blackfriday/v2.(*SPRenderer).smartDashLatex-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartDoubleQuote-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartDoubleQuoteVariant_github.com/russross/blackfriday/v2.(*SPRenderer).smartLeftAngle_github.com/russross/blackfriday/v2.(*SPRenderer).smartLeftAngle-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartNumber_github.com/russross/blackfriday/v2.(*SPRenderer).smartNumber-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartNumberGeneric_github.com/russross/blackfriday/v2.(*SPRenderer).smartNumberGeneric-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartParens_github.com/russross/blackfriday/v2.(*SPRenderer).smartParens-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartPeriod_github.com/russross/blackfriday/v2.(*SPRenderer).smartPeriod-fm_github.com/russross/blackfriday/v2.(*SPRenderer).smartSingleQuote_github.com/russross/blackfriday/v2.(*SPRenderer).smartSingleQuote-fm_github.com/russross/blackfriday/v2.(*nodeWalker).next_github.com/russross/blackfriday/v2..gobytes.1_github.com/russross/blackfriday/v2..gobytes.10_github.com/russross/blackfriday/v2..gobytes.11_github.com/russross/blackfriday/v2..gobytes.12_github.com/russross/blackfriday/v2..gobytes.13_github.com/russross/blackfriday/v2..gobytes.14_github.com/russross/blackfriday/v2..gobytes.15_github.com/russross/blackfriday/v2..gobytes.16_github.com/russross/blackfriday/v2..gobytes.17_github.com/russross/blackfriday/v2..gobytes.18_github.com/russross/blackfriday/v2..gobytes.19_github.com/russross/blackfriday/v2..gobytes.2_github.com/russross/blackfriday/v2..gobytes.20_github.com/russross/blackfriday/v2..gobytes.21_github.com/russross/blackfriday/v2..gobytes.22_github.com/russross/blackfriday/v2..gobytes.23_github.com/russross/blackfriday/v2..gobytes.24_github.com/russross/blackfriday/v2..gobytes.25_github.com/russross/blackfriday/v2..gobytes.26_github.com/russross/blackfriday/v2..gobytes.27_github.com/russross/blackfriday/v2..gobytes.28_github.com/russross/blackfriday/v2..gobytes.29_github.com/russross/blackfriday/v2..gobytes.3_github.com/russross/blackfriday/v2..gobytes.30_github.com/russross/blackfriday/v2..gobytes.31_github.com/russross/blackfriday/v2..gobytes.32_github.com/russross/blackfriday/v2..gobytes.33_github.com/russross/blackfriday/v2..gobytes.34_github.com/russross/blackfriday/v2..gobytes.35_github.com/russross/blackfriday/v2..gobytes.36_github.com/russross/blackfriday/v2..gobytes.37_github.com/russross/blackfriday/v2..gobytes.38_github.com/russross/blackfriday/v2..gobytes.39_github.com/russross/blackfriday/v2..gobytes.4_github.com/russross/blackfriday/v2..gobytes.40_github.com/russross/blackfriday/v2..gobytes.41_github.com/russross/blackfriday/v2..gobytes.42_github.com/russross/blackfriday/v2..gobytes.43_github.com/russross/blackfriday/v2..gobytes.44_github.com/russross/blackfriday/v2..gobytes.45_github.com/russross/blackfriday/v2..gobytes.46_github.com/russross/blackfriday/v2..gobytes.47_github.com/russross/blackfriday/v2..gobytes.48_github.com/russross/blackfriday/v2..gobytes.49_github.com/russross/blackfriday/v2..gobytes.5_github.com/russross/blackfriday/v2..gobytes.50_github.com/russross/blackfriday/v2..gobytes.51_github.com/russross/blackfriday/v2..gobytes.52_github.com/russross/blackfriday/v2..gobytes.53_github.com/russross/blackfriday/v2..gobytes.54_github.com/russross/blackfriday/v2..gobytes.55_github.com/russross/blackfriday/v2..gobytes.56_github.com/russross/blackfriday/v2..gobytes.57_github.com/russross/blackfriday/v2..gobytes.58_github.com/russross/blackfriday/v2..gobytes.59_github.com/russross/blackfriday/v2..gobytes.6_github.com/russross/blackfriday/v2..gobytes.60_github.com/russross/blackfriday/v2..gobytes.61_github.com/russross/blackfriday/v2..gobytes.62_github.com/russross/blackfriday/v2..gobytes.63_github.com/russross/blackfriday/v2..gobytes.64_github.com/russross/blackfriday/v2..gobytes.65_github.com/russross/blackfriday/v2..gobytes.66_github.com/russross/blackfriday/v2..gobytes.67_github.com/russross/blackfriday/v2..gobytes.68_github.com/russross/blackfriday/v2..gobytes.69_github.com/russross/blackfriday/v2..gobytes.7_github.com/russross/blackfriday/v2..gobytes.70_github.com/russross/blackfriday/v2..gobytes.71_github.com/russross/blackfriday/v2..gobytes.72_github.com/russross/blackfriday/v2..gobytes.73_github.com/russross/blackfriday/v2..gobytes.74_github.com/russross/blackfriday/v2..gobytes.75_github.com/russross/blackfriday/v2..gobytes.76_github.com/russross/blackfriday/v2..gobytes.77_github.com/russross/blackfriday/v2..gobytes.8_github.com/russross/blackfriday/v2..gobytes.9_github.com/russross/blackfriday/v2..inittask_github.com/russross/blackfriday/v2.New_github.com/russross/blackfriday/v2.NewHTMLRenderer_github.com/russross/blackfriday/v2.NewSmartypantsRenderer_github.com/russross/blackfriday/v2.NodeType.String_github.com/russross/blackfriday/v2.Run_github.com/russross/blackfriday/v2.Run.func1_github.com/russross/blackfriday/v2.Run.func2_github.com/russross/blackfriday/v2.Run.func3_github.com/russross/blackfriday/v2.SanitizedAnchorName_github.com/russross/blackfriday/v2.aCloseTag_github.com/russross/blackfriday/v2.aTag_github.com/russross/blackfriday/v2.anchorRe_github.com/russross/blackfriday/v2.appendLanguageAttr_github.com/russross/blackfriday/v2.appendLinkAttrs_github.com/russross/blackfriday/v2.autoLink_github.com/russross/blackfriday/v2.blockTags_github.com/russross/blackfriday/v2.blockquoteCloseTag_github.com/russross/blackfriday/v2.blockquoteTag_github.com/russross/blackfriday/v2.brTag_github.com/russross/blackfriday/v2.brXHTMLTag_github.com/russross/blackfriday/v2.codeCloseTag_github.com/russross/blackfriday/v2.codeSpan_github.com/russross/blackfriday/v2.codeTag_github.com/russross/blackfriday/v2.ddCloseTag_github.com/russross/blackfriday/v2.ddTag_github.com/russross/blackfriday/v2.delCloseTag_github.com/russross/blackfriday/v2.delTag_github.com/russross/blackfriday/v2.dlCloseTag_github.com/russross/blackfriday/v2.dlTag_github.com/russross/blackfriday/v2.dtCloseTag_github.com/russross/blackfriday/v2.dtTag_github.com/russross/blackfriday/v2.emCloseTag_github.com/russross/blackfriday/v2.emTag_github.com/russross/blackfriday/v2.emphasis_github.com/russross/blackfriday/v2.entities_github.com/russross/blackfriday/v2.entity_github.com/russross/blackfriday/v2.escLink_github.com/russross/blackfriday/v2.escape_github.com/russross/blackfriday/v2.escapeChars_github.com/russross/blackfriday/v2.escapeEntities_github.com/russross/blackfriday/v2.finalizeCodeBlock_github.com/russross/blackfriday/v2.finalizeList_github.com/russross/blackfriday/v2.footnoteRef_github.com/russross/blackfriday/v2.footnotesCloseDivBytes_github.com/russross/blackfriday/v2.footnotesDivBytes_github.com/russross/blackfriday/v2.gtBytes_github.com/russross/blackfriday/v2.h1CloseTag_github.com/russross/blackfriday/v2.h1Tag_github.com/russross/blackfriday/v2.h2CloseTag_github.com/russross/blackfriday/v2.h2Tag_github.com/russross/blackfriday/v2.h3CloseTag_github.com/russross/blackfriday/v2.h3Tag_github.com/russross/blackfriday/v2.h4CloseTag_github.com/russross/blackfriday/v2.h4Tag_github.com/russross/blackfriday/v2.h5CloseTag_github.com/russross/blackfriday/v2.h5Tag_github.com/russross/blackfriday/v2.h6CloseTag_github.com/russross/blackfriday/v2.h6Tag_github.com/russross/blackfriday/v2.hasPrefixCaseInsensitive_github.com/russross/blackfriday/v2.helperDoubleEmphasis_github.com/russross/blackfriday/v2.helperEmphasis_github.com/russross/blackfriday/v2.helperFindEmphChar_github.com/russross/blackfriday/v2.helperTripleEmphasis_github.com/russross/blackfriday/v2.hrTag_github.com/russross/blackfriday/v2.hrXHTMLTag_github.com/russross/blackfriday/v2.htmlEntityRe_github.com/russross/blackfriday/v2.htmlEscaper_github.com/russross/blackfriday/v2.htmlTagRe_github.com/russross/blackfriday/v2.init_github.com/russross/blackfriday/v2.isFenceLine_github.com/russross/blackfriday/v2.isMailtoAutoLink_github.com/russross/blackfriday/v2.isReference_github.com/russross/blackfriday/v2.isRelativeLink_github.com/russross/blackfriday/v2.isSafeLink_github.com/russross/blackfriday/v2.ispunct_github.com/russross/blackfriday/v2.leftAngle_github.com/russross/blackfriday/v2.liCloseTag_github.com/russross/blackfriday/v2.liTag_github.com/russross/blackfriday/v2.lineBreak_github.com/russross/blackfriday/v2.link_github.com/russross/blackfriday/v2.linkEndsWithEntity_github.com/russross/blackfriday/v2.maybeAutoLink_github.com/russross/blackfriday/v2.maybeImage_github.com/russross/blackfriday/v2.maybeInlineFootnote_github.com/russross/blackfriday/v2.maybeLineBreak_github.com/russross/blackfriday/v2.needSkipLink_github.com/russross/blackfriday/v2.nlBytes_github.com/russross/blackfriday/v2.nodeIsEntity_github.com/russross/blackfriday/v2.nodeTypeNames_github.com/russross/blackfriday/v2.olCloseTag_github.com/russross/blackfriday/v2.olTag_github.com/russross/blackfriday/v2.pCloseTag_github.com/russross/blackfriday/v2.pTag_github.com/russross/blackfriday/v2.preCloseTag_github.com/russross/blackfriday/v2.preTag_github.com/russross/blackfriday/v2.protocolPrefixes_github.com/russross/blackfriday/v2.reBackslashOrAmp_github.com/russross/blackfriday/v2.reEntityOrEscapedChar_github.com/russross/blackfriday/v2.scanFootnote_github.com/russross/blackfriday/v2.scanLinkRef_github.com/russross/blackfriday/v2.slugify_github.com/russross/blackfriday/v2.smartQuoteHelper_github.com/russross/blackfriday/v2.spaceBytes_github.com/russross/blackfriday/v2.strongCloseTag_github.com/russross/blackfriday/v2.strongTag_github.com/russross/blackfriday/v2.tableCloseTag_github.com/russross/blackfriday/v2.tableTag_github.com/russross/blackfriday/v2.tagLength_github.com/russross/blackfriday/v2.tbodyCloseTag_github.com/russross/blackfriday/v2.tbodyTag_github.com/russross/blackfriday/v2.tdCloseTag_github.com/russross/blackfriday/v2.tdTag_github.com/russross/blackfriday/v2.thCloseTag_github.com/russross/blackfriday/v2.thTag_github.com/russross/blackfriday/v2.theadCloseTag_github.com/russross/blackfriday/v2.theadTag_github.com/russross/blackfriday/v2.trCloseTag_github.com/russross/blackfriday/v2.trTag_github.com/russross/blackfriday/v2.ttCloseTag_github.com/russross/blackfriday/v2.ttTag_github.com/russross/blackfriday/v2.ulCloseTag_github.com/russross/blackfriday/v2.ulTag_github.com/russross/blackfriday/v2.unescapeChar_github.com/russross/blackfriday/v2.unescapeString_github.com/russross/blackfriday/v2.unescapeText_github.com/russross/blackfriday/v2.urlRe_github.com/russross/blackfriday/v2.validPaths_github.com/russross/blackfriday/v2.validUris_github.com/russross/blackfriday/v2.wordBoundary_github.com/urfave/cli/v2.(*App).Command_github.com/urfave/cli/v2.(*App).Run_github.com/urfave/cli/v2.(*App).RunAndExitOnError_github.com/urfave/cli/v2.(*App).RunAsSubcommand_github.com/urfave/cli/v2.(*App).RunAsSubcommand.func1_github.com/urfave/cli/v2.(*App).RunContext_github.com/urfave/cli/v2.(*App).RunContext.func1_github.com/urfave/cli/v2.(*App).Setup_github.com/urfave/cli/v2.(*App).ToFishCompletion_github.com/urfave/cli/v2.(*App).ToMan_github.com/urfave/cli/v2.(*App).ToMarkdown_github.com/urfave/cli/v2.(*App).VisibleCategories_github.com/urfave/cli/v2.(*App).VisibleCommands_github.com/urfave/cli/v2.(*App).VisibleFlags_github.com/urfave/cli/v2.(*App).fishSubcommandHelper_github.com/urfave/cli/v2.(*App).handleExitCoder_github.com/urfave/cli/v2.(*App).newFlagSet_github.com/urfave/cli/v2.(*App).prepareFishCommands_github.com/urfave/cli/v2.(*App).prepareFishFlags_github.com/urfave/cli/v2.(*App).useShortOptionHandling_github.com/urfave/cli/v2.(*App).writeDocTemplate_github.com/urfave/cli/v2.(*App).writeFishCompletionTemplate_github.com/urfave/cli/v2.(*Author).String_github.com/urfave/cli/v2.(*BoolFlag).Apply_github.com/urfave/cli/v2.(*BoolFlag).GetUsage_github.com/urfave/cli/v2.(*BoolFlag).GetValue_github.com/urfave/cli/v2.(*BoolFlag).IsRequired_github.com/urfave/cli/v2.(*BoolFlag).IsSet_github.com/urfave/cli/v2.(*BoolFlag).Names_github.com/urfave/cli/v2.(*BoolFlag).String_github.com/urfave/cli/v2.(*BoolFlag).TakesValue_github.com/urfave/cli/v2.(*Command).FullName_github.com/urfave/cli/v2.(*Command).HasName_github.com/urfave/cli/v2.(*Command).Names_github.com/urfave/cli/v2.(*Command).Run_github.com/urfave/cli/v2.(*Command).Run.func1_github.com/urfave/cli/v2.(*Command).VisibleFlags_github.com/urfave/cli/v2.(*Command).newFlagSet_github.com/urfave/cli/v2.(*Command).parseFlags_github.com/urfave/cli/v2.(*Command).startApp_github.com/urfave/cli/v2.(*Command).useShortOptionHandling_github.com/urfave/cli/v2.(*Context).Args_github.com/urfave/cli/v2.(*Context).Bool_github.com/urfave/cli/v2.(*Context).Deadline_github.com/urfave/cli/v2.(*Context).Done_github.com/urfave/cli/v2.(*Context).Duration_github.com/urfave/cli/v2.(*Context).Err_github.com/urfave/cli/v2.(*Context).FlagNames_github.com/urfave/cli/v2.(*Context).Float64_github.com/urfave/cli/v2.(*Context).Float64Slice_github.com/urfave/cli/v2.(*Context).Generic_github.com/urfave/cli/v2.(*Context).Int_github.com/urfave/cli/v2.(*Context).Int64_github.com/urfave/cli/v2.(*Context).Int64Slice_github.com/urfave/cli/v2.(*Context).IntSlice_github.com/urfave/cli/v2.(*Context).IsSet_github.com/urfave/cli/v2.(*Context).IsSet.func1_github.com/urfave/cli/v2.(*Context).Lineage_github.com/urfave/cli/v2.(*Context).LocalFlagNames_github.com/urfave/cli/v2.(*Context).NArg_github.com/urfave/cli/v2.(*Context).NumFlags_github.com/urfave/cli/v2.(*Context).Path_github.com/urfave/cli/v2.(*Context).Set_github.com/urfave/cli/v2.(*Context).String_github.com/urfave/cli/v2.(*Context).StringSlice_github.com/urfave/cli/v2.(*Context).Timestamp_github.com/urfave/cli/v2.(*Context).Uint_github.com/urfave/cli/v2.(*Context).Uint64_github.com/urfave/cli/v2.(*Context).Value_github.com/urfave/cli/v2.(*Float64Slice).Get_github.com/urfave/cli/v2.(*Float64Slice).Serialize_github.com/urfave/cli/v2.(*Float64Slice).Set_github.com/urfave/cli/v2.(*Float64Slice).String_github.com/urfave/cli/v2.(*Float64Slice).Value_github.com/urfave/cli/v2.(*Float64SliceFlag).Apply_github.com/urfave/cli/v2.(*Float64SliceFlag).GetUsage_github.com/urfave/cli/v2.(*Float64SliceFlag).GetValue_github.com/urfave/cli/v2.(*Float64SliceFlag).IsRequired_github.com/urfave/cli/v2.(*Float64SliceFlag).IsSet_github.com/urfave/cli/v2.(*Float64SliceFlag).Names_github.com/urfave/cli/v2.(*Float64SliceFlag).String_github.com/urfave/cli/v2.(*Float64SliceFlag).TakesValue_github.com/urfave/cli/v2.(*Int64Slice).Get_github.com/urfave/cli/v2.(*Int64Slice).Serialize_github.com/urfave/cli/v2.(*Int64Slice).Set_github.com/urfave/cli/v2.(*Int64Slice).String_github.com/urfave/cli/v2.(*Int64Slice).Value_github.com/urfave/cli/v2.(*Int64SliceFlag).Apply_github.com/urfave/cli/v2.(*Int64SliceFlag).GetUsage_github.com/urfave/cli/v2.(*Int64SliceFlag).GetValue_github.com/urfave/cli/v2.(*Int64SliceFlag).IsRequired_github.com/urfave/cli/v2.(*Int64SliceFlag).IsSet_github.com/urfave/cli/v2.(*Int64SliceFlag).Names_github.com/urfave/cli/v2.(*Int64SliceFlag).String_github.com/urfave/cli/v2.(*Int64SliceFlag).TakesValue_github.com/urfave/cli/v2.(*IntFlag).Apply_github.com/urfave/cli/v2.(*IntFlag).GetUsage_github.com/urfave/cli/v2.(*IntFlag).GetValue_github.com/urfave/cli/v2.(*IntFlag).IsRequired_github.com/urfave/cli/v2.(*IntFlag).IsSet_github.com/urfave/cli/v2.(*IntFlag).Names_github.com/urfave/cli/v2.(*IntFlag).String_github.com/urfave/cli/v2.(*IntFlag).TakesValue_github.com/urfave/cli/v2.(*IntSlice).Get_github.com/urfave/cli/v2.(*IntSlice).Serialize_github.com/urfave/cli/v2.(*IntSlice).Set_github.com/urfave/cli/v2.(*IntSlice).SetInt_github.com/urfave/cli/v2.(*IntSlice).String_github.com/urfave/cli/v2.(*IntSlice).Value_github.com/urfave/cli/v2.(*IntSliceFlag).Apply_github.com/urfave/cli/v2.(*IntSliceFlag).GetUsage_github.com/urfave/cli/v2.(*IntSliceFlag).GetValue_github.com/urfave/cli/v2.(*IntSliceFlag).IsRequired_github.com/urfave/cli/v2.(*IntSliceFlag).IsSet_github.com/urfave/cli/v2.(*IntSliceFlag).Names_github.com/urfave/cli/v2.(*IntSliceFlag).String_github.com/urfave/cli/v2.(*IntSliceFlag).TakesValue_github.com/urfave/cli/v2.(*StringFlag).Apply_github.com/urfave/cli/v2.(*StringFlag).GetUsage_github.com/urfave/cli/v2.(*StringFlag).GetValue_github.com/urfave/cli/v2.(*StringFlag).IsRequired_github.com/urfave/cli/v2.(*StringFlag).IsSet_github.com/urfave/cli/v2.(*StringFlag).Names_github.com/urfave/cli/v2.(*StringFlag).String_github.com/urfave/cli/v2.(*StringFlag).TakesValue_github.com/urfave/cli/v2.(*StringSlice).Get_github.com/urfave/cli/v2.(*StringSlice).Serialize_github.com/urfave/cli/v2.(*StringSlice).Set_github.com/urfave/cli/v2.(*StringSlice).String_github.com/urfave/cli/v2.(*StringSlice).Value_github.com/urfave/cli/v2.(*StringSliceFlag).Apply_github.com/urfave/cli/v2.(*StringSliceFlag).GetUsage_github.com/urfave/cli/v2.(*StringSliceFlag).GetValue_github.com/urfave/cli/v2.(*StringSliceFlag).IsRequired_github.com/urfave/cli/v2.(*StringSliceFlag).IsSet_github.com/urfave/cli/v2.(*StringSliceFlag).Names_github.com/urfave/cli/v2.(*StringSliceFlag).String_github.com/urfave/cli/v2.(*StringSliceFlag).TakesValue_github.com/urfave/cli/v2.(*args).First_github.com/urfave/cli/v2.(*args).Get_github.com/urfave/cli/v2.(*args).Len_github.com/urfave/cli/v2.(*args).Present_github.com/urfave/cli/v2.(*args).Slice_github.com/urfave/cli/v2.(*args).Tail_github.com/urfave/cli/v2.(*commandCategories).AddCommand_github.com/urfave/cli/v2.(*commandCategories).Categories_github.com/urfave/cli/v2.(*commandCategories).Len_github.com/urfave/cli/v2.(*commandCategories).Less_github.com/urfave/cli/v2.(*commandCategories).Swap_github.com/urfave/cli/v2.(*commandCategory).Name_github.com/urfave/cli/v2.(*commandCategory).VisibleCommands_github.com/urfave/cli/v2.(*errRequiredFlags).Error_github.com/urfave/cli/v2.(*exitError).Error_github.com/urfave/cli/v2.(*exitError).ExitCode_github.com/urfave/cli/v2.(*multiError).Error_github.com/urfave/cli/v2.(*multiError).Errors_github.com/urfave/cli/v2..inittask_github.com/urfave/cli/v2.AppHelpTemplate_github.com/urfave/cli/v2.CommandHelpTemplate_github.com/urfave/cli/v2.Context.Deadline_github.com/urfave/cli/v2.Context.Done_github.com/urfave/cli/v2.Context.Err_github.com/urfave/cli/v2.DefaultAppComplete_github.com/urfave/cli/v2.DefaultCompleteWithFlags_github.com/urfave/cli/v2.DefaultCompleteWithFlags.func1_github.com/urfave/cli/v2.ErrWriter_github.com/urfave/cli/v2.FishCompletionTemplate_github.com/urfave/cli/v2.FlagStringer_github.com/urfave/cli/v2.HandleExitCoder_github.com/urfave/cli/v2.HelpFlag_github.com/urfave/cli/v2.HelpPrinter_github.com/urfave/cli/v2.HelpPrinterCustom_github.com/urfave/cli/v2.Int64SliceFlag.GetUsage_github.com/urfave/cli/v2.IntSliceFlag.GetUsage_github.com/urfave/cli/v2.MarkdownDocTemplate_github.com/urfave/cli/v2.OsExiter_github.com/urfave/cli/v2.ShowAppHelp_github.com/urfave/cli/v2.ShowCommandCompletions_github.com/urfave/cli/v2.ShowCommandHelp_github.com/urfave/cli/v2.ShowCommandHelpAndExit_github.com/urfave/cli/v2.ShowSubcommandHelp_github.com/urfave/cli/v2.SubcommandHelpTemplate_github.com/urfave/cli/v2.VersionFlag_github.com/urfave/cli/v2.VersionPrinter_github.com/urfave/cli/v2.appActionDeprecationURL_github.com/urfave/cli/v2.changeLogURL_github.com/urfave/cli/v2.checkCommandHelp_github.com/urfave/cli/v2.checkCompletions_github.com/urfave/cli/v2.checkHelp_github.com/urfave/cli/v2.checkRequiredFlags_github.com/urfave/cli/v2.checkSubcommandHelp_github.com/urfave/cli/v2.checkVersion_github.com/urfave/cli/v2.cliArgContains_github.com/urfave/cli/v2.commaWhitespace_github.com/urfave/cli/v2.compileTime_github.com/urfave/cli/v2.contactSysadmin_github.com/urfave/cli/v2.copyFlag_github.com/urfave/cli/v2.errInvalidActionType_github.com/urfave/cli/v2.flagDetails_github.com/urfave/cli/v2.flagFromEnvOrFile_github.com/urfave/cli/v2.flagNames_github.com/urfave/cli/v2.flagSet_github.com/urfave/cli/v2.flagStringSliceField_github.com/urfave/cli/v2.flagValue_github.com/urfave/cli/v2.glob..func1_github.com/urfave/cli/v2.glob..func2_github.com/urfave/cli/v2.handleMultiError_github.com/urfave/cli/v2.hasCommand_github.com/urfave/cli/v2.hasFlag_github.com/urfave/cli/v2.helpCommand_github.com/urfave/cli/v2.helpSubcommand_github.com/urfave/cli/v2.indent_github.com/urfave/cli/v2.init_github.com/urfave/cli/v2.lexicographicLess_github.com/urfave/cli/v2.lookupBool_github.com/urfave/cli/v2.lookupDuration_github.com/urfave/cli/v2.lookupFlag_github.com/urfave/cli/v2.lookupFlagSet_github.com/urfave/cli/v2.lookupFloat64_github.com/urfave/cli/v2.lookupInt_github.com/urfave/cli/v2.lookupInt64_github.com/urfave/cli/v2.lookupPath_github.com/urfave/cli/v2.lookupString_github.com/urfave/cli/v2.lookupUint_github.com/urfave/cli/v2.lookupUint64_github.com/urfave/cli/v2.makeFlagNameVisitor_github.com/urfave/cli/v2.makeFlagNameVisitor.func1_github.com/urfave/cli/v2.nindent_github.com/urfave/cli/v2.normalizeFlags_github.com/urfave/cli/v2.normalizeFlags.func1_github.com/urfave/cli/v2.parseIter_github.com/urfave/cli/v2.prefixedNames_github.com/urfave/cli/v2.prepareCommands_github.com/urfave/cli/v2.prepareFlags_github.com/urfave/cli/v2.printCommandSuggestions_github.com/urfave/cli/v2.printFlagSuggestions_github.com/urfave/cli/v2.printHelp_github.com/urfave/cli/v2.printHelpCustom_github.com/urfave/cli/v2.printVersion_github.com/urfave/cli/v2.slPfx_github.com/urfave/cli/v2.splitShortOptions_github.com/urfave/cli/v2.splitShortOptions.func1_github.com/urfave/cli/v2.stringifyFlag_github.com/urfave/cli/v2.stringifyFloat64SliceFlag_github.com/urfave/cli/v2.stringifyInt64SliceFlag_github.com/urfave/cli/v2.stringifyIntSliceFlag_github.com/urfave/cli/v2.stringifySliceFlag_github.com/urfave/cli/v2.stringifyStringSliceFlag_github.com/urfave/cli/v2.visibleFlags_github.com/urfave/cli/v2.withEnvHint_go.(*struct { io.Reader; io.Closer }).Close_go.(*struct { io.Reader; io.Closer }).Read_go.buildid_go.func.*_go.funcrel.*_go.itab.*bufio.Reader,compress/flate.Reader_go.itab.*bufio.Reader,io.Reader_go.itab.*bufio.Writer,io.Writer_go.itab.*bytes.Buffer,io.Reader_go.itab.*bytes.Buffer,io.Writer_go.itab.*bytes.Reader,io.ByteScanner_go.itab.*bytes.Reader,io.Reader_go.itab.*bytes.Reader,io.ReaderAt_go.itab.*compress/flate.byFreq,sort.Interface_go.itab.*compress/flate.byLiteral,sort.Interface_go.itab.*compress/flate.decompressor,io.ReadCloser_go.itab.*context.cancelCtx,context.Context_go.itab.*context.cancelCtx,context.canceler_go.itab.*context.emptyCtx,context.Context_go.itab.*context.timerCtx,context.Context_go.itab.*context.timerCtx,context.canceler_go.itab.*context.valueCtx,context.Context_go.itab.*crypto/aes.aesCipher,crypto/cipher.Block_go.itab.*crypto/aes.aesCipherAsm,crypto/cipher.Block_go.itab.*crypto/aes.aesCipherGCM,crypto/cipher.Block_go.itab.*crypto/aes.gcmAsm,crypto/cipher.AEAD_go.itab.*crypto/cipher.cbcDecrypter,crypto/cipher.BlockMode_go.itab.*crypto/cipher.cbcEncrypter,crypto/cipher.BlockMode_go.itab.*crypto/cipher.ctr,crypto/cipher.Stream_go.itab.*crypto/cipher.gcm,crypto/cipher.AEAD_go.itab.*crypto/des.tripleDESCipher,crypto/cipher.Block_go.itab.*crypto/ecdsa.zr,io.Reader_go.itab.*crypto/elliptic.CurveParams,crypto/elliptic.Curve_go.itab.*crypto/hmac.hmac,hash.Hash_go.itab.*crypto/md5.digest,hash.Hash_go.itab.*crypto/rand.devReader,io.Reader_go.itab.*crypto/rsa.PSSOptions,crypto.SignerOpts_go.itab.*crypto/rsa.PrivateKey,crypto.Signer_go.itab.*crypto/sha1.digest,hash.Hash_go.itab.*crypto/sha256.digest,hash.Hash_go.itab.*crypto/sha512.digest,hash.Hash_go.itab.*crypto/tls.Conn,net.Conn_go.itab.*crypto/tls.atLeastReader,io.Reader_go.itab.*crypto/tls.certificateMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.certificateMsgTLS13,crypto/tls.handshakeMessage_go.itab.*crypto/tls.certificateRequestMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.certificateRequestMsgTLS13,crypto/tls.handshakeMessage_go.itab.*crypto/tls.certificateStatusMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.certificateVerifyMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.clientHelloMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.clientKeyExchangeMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.cthWrapper,hash.Hash_go.itab.*crypto/tls.ecdheKeyAgreement,crypto/tls.keyAgreement_go.itab.*crypto/tls.encryptedExtensionsMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.endOfEarlyDataMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.finishedMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.helloRequestMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.keyUpdateMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.newSessionTicketMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.newSessionTicketMsgTLS13,crypto/tls.handshakeMessage_go.itab.*crypto/tls.nistParameters,crypto/tls.ecdheParameters_go.itab.*crypto/tls.permanentError,error_go.itab.*crypto/tls.prefixNonceAEAD,crypto/tls.aead_go.itab.*crypto/tls.serverHelloDoneMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.serverHelloMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.serverKeyExchangeMsg,crypto/tls.handshakeMessage_go.itab.*crypto/tls.x25519Parameters,crypto/tls.ecdheParameters_go.itab.*crypto/tls.xorNonceAEAD,crypto/tls.aead_go.itab.*encoding/asn1.invalidUnmarshalError,error_go.itab.*encoding/asn1.taggedEncoder,encoding/asn1.encoder_go.itab.*encoding/json.InvalidUnmarshalError,error_go.itab.*encoding/json.MarshalerError,error_go.itab.*encoding/json.SyntaxError,error_go.itab.*encoding/json.UnmarshalTypeError,error_go.itab.*encoding/json.UnsupportedTypeError,error_go.itab.*encoding/json.UnsupportedValueError,error_go.itab.*encoding/json.encodeState,io.Writer_go.itab.*encoding/pem.lineBreaker,io.Writer_go.itab.*errors.errorString,error_go.itab.*flag.boolValue,flag.Value_go.itab.*flag.durationValue,flag.Value_go.itab.*flag.float64Value,flag.Value_go.itab.*flag.int64Value,flag.Value_go.itab.*flag.intValue,flag.Value_go.itab.*flag.stringValue,flag.Value_go.itab.*flag.uint64Value,flag.Value_go.itab.*flag.uintValue,flag.Value_go.itab.*fmt.pp,fmt.State_go.itab.*fmt.readRune,io.RuneScanner_go.itab.*fmt.ss,fmt.ScanState_go.itab.*fmt.stringReader,io.Reader_go.itab.*fmt.wrapError,error_go.itab.*github.com/cpuguy83/go-md2man/v2/md2man.roffRenderer,github.com/russross/blackfriday/v2.Renderer_go.itab.*github.com/lestrrat-go/httprc.fetcher,github.com/lestrrat-go/httprc.Fetcher_go.itab.*github.com/lestrrat-go/httprc.fetcherOption,github.com/lestrrat-go/httprc.FetcherOption_go.itab.*github.com/lestrrat-go/iter/arrayiter.iter,github.com/lestrrat-go/iter/arrayiter.Iterator_go.itab.*github.com/lestrrat-go/iter/mapiter.iter,github.com/lestrrat-go/iter/mapiter.Iterator_go.itab.*github.com/lestrrat-go/jwx/v2/internal/json.decodeCtx,github.com/lestrrat-go/jwx/v2/internal/json.DecodeCtx_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.algKeySink,github.com/lestrrat-go/jwx/v2/jwe.KeySink_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.decryptOption,github.com/lestrrat-go/jwx/v2/jwe.DecryptOption_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.encryptDecryptOption,github.com/lestrrat-go/jwx/v2/jwe.EncryptDecryptOption_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.encryptOption,github.com/lestrrat-go/jwx/v2/jwe.EncryptOption_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.staticKeyProvider,github.com/lestrrat-go/jwx/v2/jwe.KeyProvider_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.stdHeaders,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.stdHeaders,github.com/lestrrat-go/jwx/v2/jwe.Headers_go.itab.*github.com/lestrrat-go/jwx/v2/jwe.stdRecipient,github.com/lestrrat-go/jwx/v2/jwe.Recipient_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/aescbc.Hmac,crypto/cipher.AEAD_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher,github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.ContentCipher_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher,github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Cipher_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.cbcFetcher,github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.Fetcher_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.gcmFetcher,github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.Fetcher_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AES,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Decrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AES,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.AESGCMEncrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESDecrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Decrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Noop,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.PBES2Encrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Decrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Decrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt,github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.Encrypter_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Generator_go.itab.*github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.X25519,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Generator_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPrivateKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.ecdsaPublicKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPrivateKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.okpPublicKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.parseOption,github.com/lestrrat-go/jwx/v2/jwk.ParseOption_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPrivateKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.rsaPublicKey,interface { github.com/lestrrat-go/jwx/v2/jwk.makePairs() []*github.com/lestrrat-go/iter/mapiter.Pair }_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.set,github.com/lestrrat-go/jwx/v2/jwk.Set_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.setDecodeCtx,github.com/lestrrat-go/jwx/v2/jwk.DecodeCtx_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.symmetricKey,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jwk.symmetricKey,github.com/lestrrat-go/jwx/v2/jwk.Key_go.itab.*github.com/lestrrat-go/jwx/v2/jws.HMACSigner,github.com/lestrrat-go/jwx/v2/jws.Signer_go.itab.*github.com/lestrrat-go/jwx/v2/jws.HMACVerifier,github.com/lestrrat-go/jwx/v2/jws.Verifier_go.itab.*github.com/lestrrat-go/jwx/v2/jws.algKeySink,github.com/lestrrat-go/jwx/v2/jws.KeySink_go.itab.*github.com/lestrrat-go/jwx/v2/jws.compactOption,github.com/lestrrat-go/jwx/v2/jws.CompactOption_go.itab.*github.com/lestrrat-go/jwx/v2/jws.ecdsaSigner,github.com/lestrrat-go/jwx/v2/jws.Signer_go.itab.*github.com/lestrrat-go/jwx/v2/jws.ecdsaVerifier,github.com/lestrrat-go/jwx/v2/jws.Verifier_go.itab.*github.com/lestrrat-go/jwx/v2/jws.eddsaSigner,github.com/lestrrat-go/jwx/v2/jws.Signer_go.itab.*github.com/lestrrat-go/jwx/v2/jws.eddsaVerifier,github.com/lestrrat-go/jwx/v2/jws.Verifier_go.itab.*github.com/lestrrat-go/jwx/v2/jws.keySetProvider,github.com/lestrrat-go/jwx/v2/jws.KeyProvider_go.itab.*github.com/lestrrat-go/jwx/v2/jws.rsaSigner,github.com/lestrrat-go/jwx/v2/jws.Signer_go.itab.*github.com/lestrrat-go/jwx/v2/jws.rsaVerifier,github.com/lestrrat-go/jwx/v2/jws.Verifier_go.itab.*github.com/lestrrat-go/jwx/v2/jws.signOption,github.com/lestrrat-go/jwx/v2/jws.SignOption_go.itab.*github.com/lestrrat-go/jwx/v2/jws.signVerifyOption,github.com/lestrrat-go/jwx/v2/jws.SignVerifyOption_go.itab.*github.com/lestrrat-go/jwx/v2/jws.staticKeyProvider,github.com/lestrrat-go/jwx/v2/jws.KeyProvider_go.itab.*github.com/lestrrat-go/jwx/v2/jws.stdHeaders,github.com/lestrrat-go/iter/mapiter.Source_go.itab.*github.com/lestrrat-go/jwx/v2/jws.stdHeaders,github.com/lestrrat-go/jwx/v2/jws.Headers_go.itab.*github.com/lestrrat-go/jwx/v2/jws.verifyOption,github.com/lestrrat-go/jwx/v2/jws.VerifyOption_go.itab.*github.com/lestrrat-go/option.pair,github.com/lestrrat-go/option.Interface_go.itab.*github.com/russross/blackfriday/v2.HTMLRenderer,github.com/russross/blackfriday/v2.Renderer_go.itab.*github.com/urfave/cli/v2.App,github.com/urfave/cli/v2.iterativeParser_go.itab.*github.com/urfave/cli/v2.BoolFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.Command,github.com/urfave/cli/v2.iterativeParser_go.itab.*github.com/urfave/cli/v2.Float64Slice,flag.Value_go.itab.*github.com/urfave/cli/v2.Float64SliceFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.GenericFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.Int64Slice,flag.Value_go.itab.*github.com/urfave/cli/v2.Int64SliceFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.IntFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.IntSlice,flag.Value_go.itab.*github.com/urfave/cli/v2.IntSliceFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.PathFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.StringFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.StringSlice,flag.Value_go.itab.*github.com/urfave/cli/v2.StringSliceFlag,github.com/urfave/cli/v2.Flag_go.itab.*github.com/urfave/cli/v2.Timestamp,flag.Value_go.itab.*github.com/urfave/cli/v2.args,github.com/urfave/cli/v2.Args_go.itab.*github.com/urfave/cli/v2.commandCategories,github.com/urfave/cli/v2.CommandCategories_go.itab.*github.com/urfave/cli/v2.commandCategories,sort.Interface_go.itab.*github.com/urfave/cli/v2.commandCategory,github.com/urfave/cli/v2.CommandCategory_go.itab.*github.com/urfave/cli/v2.errRequiredFlags,github.com/urfave/cli/v2.requiredFlagsErr_go.itab.*github.com/urfave/cli/v2.exitError,github.com/urfave/cli/v2.ExitCoder_go.itab.*github.com/urfave/cli/v2.multiError,github.com/urfave/cli/v2.MultiError_go.itab.*internal/fmtsort.SortedMap,sort.Interface_go.itab.*internal/poll.DeadlineExceededError,error_go.itab.*internal/reflectlite.rtype,internal/reflectlite.Type_go.itab.*io.LimitedReader,io.Reader_go.itab.*io.multiReader,io.Reader_go.itab.*io/fs.PathError,error_go.itab.*main.dummyWriteCloser,io.WriteCloser_go.itab.*math/rand.lockedSource,math/rand.Source_go.itab.*math/rand.rngSource,math/rand.Source_go.itab.*mime/multipart.Part,io.Reader_go.itab.*mime/multipart.stickyErrorReader,io.Reader_go.itab.*mime/quotedprintable.Reader,io.Reader_go.itab.*net.AddrError,error_go.itab.*net.DNSError,error_go.itab.*net.IPAddr,net.Addr_go.itab.*net.IPAddr,net.sockaddr_go.itab.*net.IPConn,net.Conn_go.itab.*net.OpError,error_go.itab.*net.ParseError,error_go.itab.*net.TCPAddr,net.Addr_go.itab.*net.TCPAddr,net.sockaddr_go.itab.*net.TCPConn,io.Writer_go.itab.*net.TCPConn,net.Conn_go.itab.*net.UDPAddr,net.Addr_go.itab.*net.UDPAddr,net.sockaddr_go.itab.*net.UDPConn,net.Conn_go.itab.*net.UnixAddr,net.Addr_go.itab.*net.UnixAddr,net.sockaddr_go.itab.*net.UnixConn,net.Conn_go.itab.*net.byRFC6724,sort.Interface_go.itab.*net.onlyValuesCtx,context.Context_go.itab.*net.rawConn,syscall.RawConn_go.itab.*net.timeoutError,error_go.itab.*net/http.Client,github.com/lestrrat-go/httprc.HTTPClient_go.itab.*net/http.ProtocolError,error_go.itab.*net/http.Transport,net/http.RoundTripper_go.itab.*net/http.body,io.ReadCloser_go.itab.*net/http.bodyEOFSignal,io.ReadCloser_go.itab.*net/http.bodyEOFSignal,io.Reader_go.itab.*net/http.byteReader,io.Reader_go.itab.*net/http.cancelTimerBody,io.ReadCloser_go.itab.*net/http.gzipReader,io.ReadCloser_go.itab.*net/http.headerSorter,sort.Interface_go.itab.*net/http.http2ContinuationFrame,net/http.http2Frame_go.itab.*net/http.http2ContinuationFrame,net/http.http2headersOrContinuation_go.itab.*net/http.http2DataFrame,net/http.http2Frame_go.itab.*net/http.http2GoAwayFrame,net/http.http2Frame_go.itab.*net/http.http2HeadersFrame,net/http.http2Frame_go.itab.*net/http.http2HeadersFrame,net/http.http2headersOrContinuation_go.itab.*net/http.http2MetaHeadersFrame,net/http.http2Frame_go.itab.*net/http.http2PingFrame,net/http.http2Frame_go.itab.*net/http.http2PriorityFrame,net/http.http2Frame_go.itab.*net/http.http2PushPromiseFrame,net/http.http2Frame_go.itab.*net/http.http2RSTStreamFrame,net/http.http2Frame_go.itab.*net/http.http2SettingsFrame,net/http.http2Frame_go.itab.*net/http.http2Transport,net/http.RoundTripper_go.itab.*net/http.http2Transport,net/http.h2Transport_go.itab.*net/http.http2UnknownFrame,net/http.http2Frame_go.itab.*net/http.http2WindowUpdateFrame,net/http.http2Frame_go.itab.*net/http.http2clientConnPool,net/http.http2ClientConnPool_go.itab.*net/http.http2dataBuffer,net/http.http2pipeBuffer_go.itab.*net/http.http2gzipReader,io.ReadCloser_go.itab.*net/http.http2httpError,error_go.itab.*net/http.httpError,error_go.itab.*net/http.maxBytesReader,io.ReadCloser_go.itab.*net/http.persistConn,io.Reader_go.itab.*net/http.readTrackingBody,io.ReadCloser_go.itab.*net/http.readTrackingBody,io.Reader_go.itab.*net/http.readWriteCloserBody,io.ReadWriteCloser_go.itab.*net/http.socksAddr,net.Addr_go.itab.*net/http.unsupportedTEError,error_go.itab.*net/http/internal.FlushAfterChunkWriter,io.Writer_go.itab.*net/http/internal.chunkedReader,io.Reader_go.itab.*net/http/internal.chunkedWriter,io.WriteCloser_go.itab.*net/url.Error,error_go.itab.*os.File,io.ReadCloser_go.itab.*os.File,io.Reader_go.itab.*os.File,io.WriteCloser_go.itab.*os.File,io.Writer_go.itab.*os.File,io/fs.File_go.itab.*os.File,mime/multipart.File_go.itab.*os.LinkError,error_go.itab.*os.SyscallError,error_go.itab.*os.fileStat,io/fs.FileInfo_go.itab.*os.rawConn,syscall.RawConn_go.itab.*os.unixDirent,io/fs.DirEntry_go.itab.*reflect.rtype,reflect.Type_go.itab.*regexp.inputBytes,regexp.input_go.itab.*regexp.inputReader,regexp.input_go.itab.*regexp.inputString,regexp.input_go.itab.*regexp/syntax.Error,error_go.itab.*sort.reverse,sort.Interface_go.itab.*strconv.NumError,error_go.itab.*strings.Builder,io.Writer_go.itab.*strings.Reader,io.ByteScanner_go.itab.*strings.Reader,io.Reader_go.itab.*strings.appendSliceWriter,io.Writer_go.itab.*strings.byteReplacer,strings.replacer_go.itab.*strings.byteStringReplacer,strings.replacer_go.itab.*strings.genericReplacer,strings.replacer_go.itab.*strings.singleStringReplacer,strings.replacer_go.itab.*sync.Mutex,sync.Locker_go.itab.*sync.rlocker,sync.Locker_go.itab.*syscall.SockaddrDatalink,syscall.Sockaddr_go.itab.*syscall.SockaddrInet4,syscall.Sockaddr_go.itab.*syscall.SockaddrInet6,syscall.Sockaddr_go.itab.*syscall.SockaddrUnix,syscall.Sockaddr_go.itab.*text/tabwriter.Writer,io.Writer_go.itab.*text/template/parse.ActionNode,text/template/parse.Node_go.itab.*text/template/parse.BoolNode,text/template/parse.Node_go.itab.*text/template/parse.ChainNode,text/template/parse.Node_go.itab.*text/template/parse.CommandNode,text/template/parse.Node_go.itab.*text/template/parse.CommentNode,text/template/parse.Node_go.itab.*text/template/parse.DotNode,text/template/parse.Node_go.itab.*text/template/parse.FieldNode,text/template/parse.Node_go.itab.*text/template/parse.IdentifierNode,text/template/parse.Node_go.itab.*text/template/parse.IfNode,text/template/parse.Node_go.itab.*text/template/parse.ListNode,text/template/parse.Node_go.itab.*text/template/parse.NilNode,text/template/parse.Node_go.itab.*text/template/parse.NumberNode,text/template/parse.Node_go.itab.*text/template/parse.PipeNode,text/template/parse.Node_go.itab.*text/template/parse.RangeNode,text/template/parse.Node_go.itab.*text/template/parse.StringNode,text/template/parse.Node_go.itab.*text/template/parse.TemplateNode,text/template/parse.Node_go.itab.*text/template/parse.TextNode,text/template/parse.Node_go.itab.*text/template/parse.VariableNode,text/template/parse.Node_go.itab.*text/template/parse.WithNode,text/template/parse.Node_go.itab.*text/template/parse.elseNode,text/template/parse.Node_go.itab.*text/template/parse.endNode,text/template/parse.Node_go.itab.*time.ParseError,error_go.itab.*vendor/golang.org/x/crypto/chacha20poly1305.chacha20poly1305,crypto/cipher.AEAD_go.itab.*vendor/golang.org/x/crypto/hkdf.hkdf,io.Reader_go.itab.*vendor/golang.org/x/net/dns/dnsmessage.nestedError,error_go.itab.*vendor/golang.org/x/net/idna.labelError,error_go.itab.*vendor/golang.org/x/net/route.DefaultAddr,vendor/golang.org/x/net/route.Addr_go.itab.*vendor/golang.org/x/net/route.Inet4Addr,vendor/golang.org/x/net/route.Addr_go.itab.*vendor/golang.org/x/net/route.Inet6Addr,vendor/golang.org/x/net/route.Addr_go.itab.*vendor/golang.org/x/net/route.InterfaceAddrMessage,vendor/golang.org/x/net/route.Message_go.itab.*vendor/golang.org/x/net/route.InterfaceMessage,vendor/golang.org/x/net/route.Message_go.itab.*vendor/golang.org/x/net/route.InterfaceMetrics,vendor/golang.org/x/net/route.Sys_go.itab.*vendor/golang.org/x/net/route.InterfaceMulticastAddrMessage,vendor/golang.org/x/net/route.Message_go.itab.*vendor/golang.org/x/net/route.LinkAddr,vendor/golang.org/x/net/route.Addr_go.itab.*vendor/golang.org/x/net/route.RouteMessage,vendor/golang.org/x/net/route.Message_go.itab.*vendor/golang.org/x/net/route.RouteMetrics,vendor/golang.org/x/net/route.Sys_go.itab.compress/flate.CorruptInputError,error_go.itab.compress/flate.InternalError,error_go.itab.context.deadlineExceededError,error_go.itab.crypto.Hash,crypto.SignerOpts_go.itab.crypto/aes.KeySizeError,error_go.itab.crypto/cipher.StreamReader,io.Reader_go.itab.crypto/des.KeySizeError,error_go.itab.crypto/ed25519.PrivateKey,crypto.Signer_go.itab.crypto/elliptic.p224Curve,crypto/elliptic.Curve_go.itab.crypto/elliptic.p256Curve,crypto/elliptic.Curve_go.itab.crypto/elliptic.p521Curve,crypto/elliptic.Curve_go.itab.crypto/rand.hideAgainReader,io.Reader_go.itab.crypto/rc4.KeySizeError,error_go.itab.crypto/tls.RecordHeaderError,error_go.itab.crypto/tls.alert,error_go.itab.crypto/tls.rsaKeyAgreement,crypto/tls.keyAgreement_go.itab.crypto/x509.CertificateInvalidError,error_go.itab.crypto/x509.ConstraintViolationError,error_go.itab.crypto/x509.HostnameError,error_go.itab.crypto/x509.InsecureAlgorithmError,error_go.itab.crypto/x509.SystemRootsError,error_go.itab.crypto/x509.UnhandledCriticalExtension,error_go.itab.crypto/x509.UnknownAuthorityError,error_go.itab.crypto/x509/internal/macos.OSStatus,error_go.itab.encoding/asn1.StructuralError,error_go.itab.encoding/asn1.SyntaxError,error_go.itab.encoding/asn1.bitStringEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.byteEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.bytesEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.int64Encoder,encoding/asn1.encoder_go.itab.encoding/asn1.multiEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.oidEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.setEncoder,encoding/asn1.encoder_go.itab.encoding/asn1.stringEncoder,encoding/asn1.encoder_go.itab.encoding/base64.CorruptInputError,error_go.itab.encoding/binary.bigEndian,encoding/binary.ByteOrder_go.itab.encoding/json.byIndex,sort.Interface_go.itab.flag.funcValue,flag.Value_go.itab.github.com/lestrrat-go/iter/mapiter.VisitorFunc,github.com/lestrrat-go/iter/mapiter.Visitor_go.itab.github.com/lestrrat-go/jwx/v2/jwa.InvalidKeyAlgorithm,github.com/lestrrat-go/jwx/v2/jwa.KeyAlgorithm_go.itab.github.com/lestrrat-go/jwx/v2/jwa.KeyEncryptionAlgorithm,github.com/lestrrat-go/jwx/v2/jwa.KeyAlgorithm_go.itab.github.com/lestrrat-go/jwx/v2/jwa.SignatureAlgorithm,github.com/lestrrat-go/jwx/v2/jwa.KeyAlgorithm_go.itab.github.com/lestrrat-go/jwx/v2/jwe.KeyProviderFunc,github.com/lestrrat-go/jwx/v2/jwe.KeyProvider_go.itab.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteKey,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteSource_go.itab.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithECPublicKey,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteSource_go.itab.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithIVAndTag,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteSource_go.itab.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteWithSaltAndCount,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.ByteSource_go.itab.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Random,github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Generator_go.itab.github.com/lestrrat-go/jwx/v2/jwk.sysFS,io/fs.FS_go.itab.github.com/lestrrat-go/jwx/v2/jws.SignerFactoryFn,github.com/lestrrat-go/jwx/v2/jws.SignerFactory_go.itab.github.com/lestrrat-go/jwx/v2/jws.VerifierFactoryFn,github.com/lestrrat-go/jwx/v2/jws.VerifierFactory_go.itab.internal/poll.errNetClosing,error_go.itab.io.discard,io.Writer_go.itab.io.eofReader,io.Reader_go.itab.io.nopCloser,io.ReadCloser_go.itab.math/big.byteReader,io.ByteScanner_go.itab.mime/multipart.partReader,io.Reader_go.itab.mime/multipart.sectionReadCloser,mime/multipart.File_go.itab.net.UnknownNetworkError,error_go.itab.net.addrinfoErrno,error_go.itab.net.byMaskLength,sort.Interface_go.itab.net.writerOnly,io.Writer_go.itab.net/http.bodyLocked,io.Reader_go.itab.net/http.bufioFlushWriter,io.Writer_go.itab.net/http.errorReader,io.Reader_go.itab.net/http.fakeLocker,sync.Locker_go.itab.net/http.finishAsyncByteRead,io.Reader_go.itab.net/http.http2ConnectionError,error_go.itab.net/http.http2GoAwayError,error_go.itab.net/http.http2StreamError,error_go.itab.net/http.http2connError,error_go.itab.net/http.http2duplicatePseudoHeaderError,error_go.itab.net/http.http2erringRoundTripper,net/http.RoundTripper_go.itab.net/http.http2headerFieldNameError,error_go.itab.net/http.http2headerFieldValueError,error_go.itab.net/http.http2missingBody,io.ReadCloser_go.itab.net/http.http2noCachedConnError,error_go.itab.net/http.http2noDialClientConnPool,net/http.http2ClientConnPool_go.itab.net/http.http2noDialH2RoundTripper,net/http.RoundTripper_go.itab.net/http.http2pseudoHeaderError,error_go.itab.net/http.http2stickyErrWriter,io.Writer_go.itab.net/http.http2transportResponseBody,io.ReadCloser_go.itab.net/http.noBody,io.ReadCloser_go.itab.net/http.nothingWrittenError,error_go.itab.net/http.persistConnWriter,io.Writer_go.itab.net/http.requestBodyReadError,error_go.itab.net/http.stringWriter,io.StringWriter_go.itab.net/http.tlsHandshakeTimeoutError,error_go.itab.net/http.transportReadFromServerError,error_go.itab.net/textproto.ProtocolError,error_go.itab.net/url.EscapeError,error_go.itab.net/url.InvalidHostError,error_go.itab.os.onlyWriter,io.Writer_go.itab.regexp.runeSlice,sort.Interface_go.itab.regexp/syntax.ranges,sort.Interface_go.itab.runtime.errorString,error_go.itab.sort.StringSlice,sort.Interface_go.itab.strings.stringWriter,io.StringWriter_go.itab.struct { io.Reader; io.Closer },io.ReadCloser_go.itab.syscall.Errno,error_go.itab.text/template.ExecError,error_go.itab.time.fileSizeError,error_go.itab.vendor/golang.org/x/net/http/httpproxy.allMatch,vendor/golang.org/x/net/http/httpproxy.matcher_go.itab.vendor/golang.org/x/net/http/httpproxy.cidrMatch,vendor/golang.org/x/net/http/httpproxy.matcher_go.itab.vendor/golang.org/x/net/http/httpproxy.domainMatch,vendor/golang.org/x/net/http/httpproxy.matcher_go.itab.vendor/golang.org/x/net/http/httpproxy.ipMatch,vendor/golang.org/x/net/http/httpproxy.matcher_go.itab.vendor/golang.org/x/net/http2/hpack.DecodingError,error_go.itab.vendor/golang.org/x/net/http2/hpack.InvalidIndexError,error_go.itab.vendor/golang.org/x/net/idna.runeError,error_go.itab.vendor/golang.org/x/net/route.binaryBigEndian,vendor/golang.org/x/net/route.binaryByteOrder_go.itab.vendor/golang.org/x/net/route.binaryLittleEndian,vendor/golang.org/x/net/route.binaryByteOrder_go.string.*_go.struct { io.Reader; io.Closer }.Close_go.struct { io.Reader; io.Closer }.Read_gogo_golang.org/x/crypto/curve25519..inittask_golang.org/x/crypto/curve25519.Basepoint_golang.org/x/crypto/curve25519.ScalarMult_golang.org/x/crypto/curve25519.basePoint_golang.org/x/crypto/curve25519.checkBasepoint_golang.org/x/crypto/curve25519.init.0_golang.org/x/crypto/curve25519.x25519_golang.org/x/crypto/curve25519/internal/field.(*Element).Add_golang.org/x/crypto/curve25519/internal/field.(*Element).Invert_golang.org/x/crypto/curve25519/internal/field.(*Element).Mult32_golang.org/x/crypto/curve25519/internal/field.(*Element).SetBytes_golang.org/x/crypto/curve25519/internal/field.(*Element).Subtract_golang.org/x/crypto/curve25519/internal/field.(*Element).Swap_golang.org/x/crypto/curve25519/internal/field.(*Element).bytes_golang.org/x/crypto/curve25519/internal/field.(*Element).carryPropagateGeneric_golang.org/x/crypto/curve25519/internal/field.(*Element).reduce_golang.org/x/crypto/curve25519/internal/field..inittask_golang.org/x/crypto/curve25519/internal/field.carryPropagate_golang.org/x/crypto/curve25519/internal/field.carryPropagate.args_stackmap_golang.org/x/crypto/curve25519/internal/field.feMulGeneric_golang.org/x/crypto/curve25519/internal/field.feOne_golang.org/x/crypto/curve25519/internal/field.feSquareGeneric_golang.org/x/crypto/ed25519..inittask_golang.org/x/crypto/pbkdf2..inittask_golang.org/x/crypto/pbkdf2.Key_gosave_systemstack_switch_hash..inittask_hash/crc32..inittask_hash/crc32.ChecksumIEEE_hash/crc32.IEEETable_hash/crc32.Update_hash/crc32.archUpdateIEEE_hash/crc32.castagnoliTable_hash/crc32.haveCastagnoli_hash/crc32.ieeeArchImpl_hash/crc32.ieeeInit_hash/crc32.ieeeInit.func1_hash/crc32.ieeeOnce_hash/crc32.ieeeTable8_hash/crc32.ieeeUpdate_hash/crc32.ieeeUpdate.args_stackmap_hash/crc32.init_hash/crc32.simpleUpdate_hash/crc32.slicingMakeTable_hash/crc32.slicingUpdate_hash/crc32.updateCastagnoli_hash/crc32.updateIEEE_html..inittask_html.UnescapeString_html.entity_html.entity2_html.htmlEscaper_html.init_html.populateMaps_html.populateMapsOnce_html.replacementTable_html.unescapeEntity_indexbody_indexbytebody_internal/abi.(*IntArgRegBitmap).Get_internal/abi.(*IntArgRegBitmap).Set_internal/abi.(*RegArgs).Dump_internal/bytealg..inittask_internal/bytealg.Compare_internal/bytealg.Compare.args_stackmap_internal/bytealg.Count_internal/bytealg.Count.args_stackmap_internal/bytealg.CountString_internal/bytealg.CountString.args_stackmap_internal/bytealg.Index_internal/bytealg.Index.args_stackmap_internal/bytealg.IndexByte_internal/bytealg.IndexByte.args_stackmap_internal/bytealg.IndexByteString_internal/bytealg.IndexByteString.args_stackmap_internal/bytealg.IndexRabinKarp_internal/bytealg.IndexRabinKarpBytes_internal/bytealg.IndexString_internal/bytealg.IndexString.args_stackmap_internal/bytealg.MaxLen_internal/bytealg.init.0_internal/cpu.ARM_internal/cpu.ARM64_internal/cpu.CacheLineSize_internal/cpu.DebugOptions_internal/cpu.Initialize_internal/cpu.S390X_internal/cpu.X86_internal/cpu.doinit_internal/cpu.getsysctlbyname_internal/cpu.options_internal/cpu.osInit_internal/cpu.processOptions_internal/fmtsort.(*SortedMap).Len_internal/fmtsort.(*SortedMap).Less_internal/fmtsort.(*SortedMap).Swap_internal/fmtsort..inittask_internal/fmtsort.Sort_internal/fmtsort.compare_internal/fmtsort.nilCompare_internal/itoa.Itoa_internal/oserror..inittask_internal/oserror.ErrClosed_internal/oserror.ErrExist_internal/oserror.ErrInvalid_internal/oserror.ErrNotExist_internal/oserror.ErrPermission_internal/oserror.init_internal/poll.(*DeadlineExceededError).Error_internal/poll.(*DeadlineExceededError).Temporary_internal/poll.(*DeadlineExceededError).Timeout_internal/poll.(*FD).Accept_internal/poll.(*FD).Close_internal/poll.(*FD).Dup_internal/poll.(*FD).Fchdir_internal/poll.(*FD).Fchmod_internal/poll.(*FD).Fchown_internal/poll.(*FD).Fstat_internal/poll.(*FD).Fsync_internal/poll.(*FD).Ftruncate_internal/poll.(*FD).Init_internal/poll.(*FD).OpenDir_internal/poll.(*FD).Pread_internal/poll.(*FD).Pwrite_internal/poll.(*FD).RawControl_internal/poll.(*FD).RawRead_internal/poll.(*FD).RawWrite_internal/poll.(*FD).Read_internal/poll.(*FD).ReadDirent_internal/poll.(*FD).ReadFrom_internal/poll.(*FD).ReadMsg_internal/poll.(*FD).Seek_internal/poll.(*FD).SetBlocking_internal/poll.(*FD).SetDeadline_internal/poll.(*FD).SetReadDeadline_internal/poll.(*FD).SetWriteDeadline_internal/poll.(*FD).SetsockoptByte_internal/poll.(*FD).SetsockoptIPMreq_internal/poll.(*FD).SetsockoptIPv6Mreq_internal/poll.(*FD).SetsockoptInet4Addr_internal/poll.(*FD).SetsockoptInt_internal/poll.(*FD).SetsockoptLinger_internal/poll.(*FD).Shutdown_internal/poll.(*FD).WaitWrite_internal/poll.(*FD).Write_internal/poll.(*FD).WriteMsg_internal/poll.(*FD).WriteOnce_internal/poll.(*FD).WriteTo_internal/poll.(*FD).Writev_internal/poll.(*FD).decref_internal/poll.(*FD).destroy_internal/poll.(*FD).readUnlock_internal/poll.(*FD).writeUnlock_internal/poll.(*errNetClosing).Error_internal/poll.(*errNetClosing).Temporary_internal/poll.(*errNetClosing).Timeout_internal/poll.(*fdMutex).increfAndClose_internal/poll.(*fdMutex).rwlock_internal/poll.(*fdMutex).rwunlock_internal/poll.(*pollDesc).init_internal/poll.(*pollDesc).prepare_internal/poll.(*pollDesc).wait_internal/poll..inittask_internal/poll.AcceptFunc_internal/poll.CloseFunc_internal/poll.DupCloseOnExec_internal/poll.ErrDeadlineExceeded_internal/poll.ErrFileClosing_internal/poll.ErrNoDeadline_internal/poll.ErrNotPollable_internal/poll.TestHookDidWritev_internal/poll.accept_internal/poll.dupCloseOnExecOld_internal/poll.errEAGAIN_internal/poll.errEINVAL_internal/poll.errENOENT_internal/poll.errNetClosing.Error_internal/poll.errNetClosing.Temporary_internal/poll.errNetClosing.Timeout_internal/poll.glob..func1_internal/poll.init_internal/poll.runtime_Semacquire_internal/poll.runtime_Semrelease_internal/poll.runtime_pollClose_internal/poll.runtime_pollOpen_internal/poll.runtime_pollReset_internal/poll.runtime_pollServerInit_internal/poll.runtime_pollSetDeadline_internal/poll.runtime_pollUnblock_internal/poll.runtime_pollWait_internal/poll.serverInit_internal/poll.setDeadlineImpl_internal/poll.tryDupCloexec_internal/reflectlite.(*Kind).String_internal/reflectlite.(*ValueError).Error_internal/reflectlite.(*rtype).AssignableTo_internal/reflectlite.(*rtype).Comparable_internal/reflectlite.(*rtype).Elem_internal/reflectlite.(*rtype).Implements_internal/reflectlite.(*rtype).In_internal/reflectlite.(*rtype).Key_internal/reflectlite.(*rtype).Kind_internal/reflectlite.(*rtype).Len_internal/reflectlite.(*rtype).Name_internal/reflectlite.(*rtype).NumField_internal/reflectlite.(*rtype).NumIn_internal/reflectlite.(*rtype).NumMethod_internal/reflectlite.(*rtype).NumOut_internal/reflectlite.(*rtype).Out_internal/reflectlite.(*rtype).PkgPath_internal/reflectlite.(*rtype).Size_internal/reflectlite.(*rtype).String_internal/reflectlite.(*rtype).common_internal/reflectlite.(*rtype).exportedMethods_internal/reflectlite.(*rtype).uncommon_internal/reflectlite..inittask_internal/reflectlite.Kind.String_internal/reflectlite.Swapper_internal/reflectlite.Swapper.func1_internal/reflectlite.Swapper.func2_internal/reflectlite.Swapper.func3_internal/reflectlite.Swapper.func4_internal/reflectlite.Swapper.func5_internal/reflectlite.Swapper.func6_internal/reflectlite.Swapper.func7_internal/reflectlite.Swapper.func8_internal/reflectlite.Swapper.func9_internal/reflectlite.Value.Len_internal/reflectlite.ValueOf_internal/reflectlite.chanlen_internal/reflectlite.directlyAssignable_internal/reflectlite.dummy_internal/reflectlite.haveIdenticalType_internal/reflectlite.haveIdenticalUnderlyingType_internal/reflectlite.implements_internal/reflectlite.kindNames_internal/reflectlite.maplen_internal/reflectlite.name.name_internal/reflectlite.name.pkgPath_internal/reflectlite.name.tag_internal/reflectlite.resolveNameOff_internal/reflectlite.resolveTypeOff_internal/reflectlite.typedmemmove_internal/reflectlite.unsafe_New_internal/singleflight.(*Group).DoChan_internal/singleflight.(*Group).ForgetUnshared_internal/singleflight.(*Group).doCall_internal/singleflight..inittask_internal/syscall/execenv..inittask_internal/syscall/unix..inittask_internal/syscall/unix.GetEntropy_internal/syscall/unix.IsNonblock_internal/syscall/unix.libc_getentropy_trampoline_internal/syscall/unix.libc_getentropy_trampoline.args_stackmap_internal/testlog..inittask_internal/testlog.Getenv_internal/testlog.Open_internal/testlog.PanicOnExit0_internal/testlog.Stat_internal/testlog.logger_internal/testlog.panicOnExit0_invSRows_io.(*LimitedReader).Read_io.(*SectionReader).Read_io.(*SectionReader).ReadAt_io.(*SectionReader).Seek_io.(*SectionReader).Size_io.(*discard).ReadFrom_io.(*discard).Write_io.(*discard).WriteString_io.(*eofReader).Read_io.(*multiReader).Read_io.(*nopCloser).Close_io.(*nopCloser).Read_io..inittask_io.CopyN_io.Discard_io.EOF_io.ErrClosedPipe_io.ErrNoProgress_io.ErrShortBuffer_io.ErrShortWrite_io.ErrUnexpectedEOF_io.ReadAll_io.ReadAtLeast_io.WriteString_io.blackHolePool_io.copyBuffer_io.discard.ReadFrom_io.discard.Write_io.discard.WriteString_io.eofReader.Read_io.errInvalidWrite_io.errOffset_io.errWhence_io.glob..func1_io.init_io.nopCloser.Close_io.nopCloser.Read_io/fs.(*FileMode).IsDir_io/fs.(*FileMode).IsRegular_io/fs.(*FileMode).Perm_io/fs.(*FileMode).String_io/fs.(*FileMode).Type_io/fs.(*PathError).Error_io/fs.(*PathError).Timeout_io/fs.(*PathError).Unwrap_io/fs..inittask_io/fs.ErrClosed_io/fs.ErrExist_io/fs.ErrInvalid_io/fs.ErrNotExist_io/fs.ErrPermission_io/fs.FileMode.IsDir_io/fs.FileMode.IsRegular_io/fs.FileMode.Perm_io/fs.FileMode.String_io/fs.FileMode.Type_io/fs.SkipDir_io/fs.init_io/ioutil..inittask_io/ioutil.Discard_io/ioutil.init_l_.str_l_.str_l_.str_log.(*Logger).Output_log.(*Logger).formatHeader_log..inittask_log.Fatalf_log.Printf_log.init_log.std_ltmp0_ltmp0_ltmp0_ltmp0_ltmp0_ltmp0_ltmp1_ltmp1_ltmp1_ltmp2_ltmp2_ltmp2_ltmp3_main.(*dummyWriteCloser).Close_main.(*dummyWriteCloser).Write_main..inittask_main.dummyWriteCloser.Write_main.dumpJSON_main.dumpJWKSet_main.getKeyFile_main.getOutput_main.getSource_main.init.0_main.init.1_main.init.2_main.init.3_main.main_main.main.func1_main.makeJwaCmd_main.makeJwaCmd.func1_main.makeJweCmd_main.makeJweDecryptCmd_main.makeJweDecryptCmd.func1_main.makeJweDecryptCmd.func1.1_main.makeJweEncryptCmd_main.makeJweEncryptCmd.func1_main.makeJwkCmd_main.makeJwkFormatCmd_main.makeJwkFormatCmd.func1_main.makeJwkGenerateCmd_main.makeJwkGenerateCmd.func1_main.makeJwsCmd_main.makeJwsParseCmd_main.makeJwsParseCmd.func1_main.makeJwsSignCmd_main.makeJwsSignCmd.func1_main.makeJwsVerifyCmd_main.makeJwsVerifyCmd.func1_main.topLevelCommands_math.archExp_math.archExp.args_stackmap_math.frexp_math.ldexp_math.log_math.log2_math/big.(*Int).Abs_math/big.(*Int).Add_math/big.(*Int).And_math/big.(*Int).AndNot_math/big.(*Int).Append_math/big.(*Int).Binomial_math/big.(*Int).Bit_math/big.(*Int).BitLen_math/big.(*Int).Bits_math/big.(*Int).Bytes_math/big.(*Int).Cmp_math/big.(*Int).CmpAbs_math/big.(*Int).Div_math/big.(*Int).DivMod_math/big.(*Int).Exp_math/big.(*Int).FillBytes_math/big.(*Int).Format_math/big.(*Int).GCD_math/big.(*Int).GobDecode_math/big.(*Int).GobEncode_math/big.(*Int).Int64_math/big.(*Int).IsInt64_math/big.(*Int).IsUint64_math/big.(*Int).Lsh_math/big.(*Int).MarshalJSON_math/big.(*Int).MarshalText_math/big.(*Int).Mod_math/big.(*Int).ModInverse_math/big.(*Int).ModSqrt_math/big.(*Int).Mul_math/big.(*Int).MulRange_math/big.(*Int).Neg_math/big.(*Int).Not_math/big.(*Int).Or_math/big.(*Int).ProbablyPrime_math/big.(*Int).Quo_math/big.(*Int).QuoRem_math/big.(*Int).Rand_math/big.(*Int).Rem_math/big.(*Int).Rsh_math/big.(*Int).Scan_math/big.(*Int).Set_math/big.(*Int).SetBit_math/big.(*Int).SetBits_math/big.(*Int).SetBytes_math/big.(*Int).SetInt64_math/big.(*Int).SetString_math/big.(*Int).SetUint64_math/big.(*Int).Sign_math/big.(*Int).Sqrt_math/big.(*Int).String_math/big.(*Int).Sub_math/big.(*Int).Text_math/big.(*Int).TrailingZeroBits_math/big.(*Int).Uint64_math/big.(*Int).UnmarshalJSON_math/big.(*Int).UnmarshalText_math/big.(*Int).Xor_math/big.(*Int).lehmerGCD_math/big.(*Int).modSqrt3Mod4Prime_math/big.(*Int).modSqrt5Mod8Prime_math/big.(*Int).modSqrtTonelliShanks_math/big.(*Int).scan_math/big.(*Int).setFromScanner_math/big.(*byteReader).Read_math/big.(*byteReader).ReadByte_math/big.(*byteReader).ReadRune_math/big.(*byteReader).SkipSpace_math/big.(*byteReader).Token_math/big.(*byteReader).UnreadByte_math/big.(*byteReader).UnreadRune_math/big.(*byteReader).Width_math/big..inittask_math/big.Jacobi_math/big.addAt_math/big.addMulVVW_math/big.addMulVVW.args_stackmap_math/big.addVV_math/big.addVV.args_stackmap_math/big.addVW_math/big.addVW.args_stackmap_math/big.basicMul_math/big.basicSqr_math/big.basicSqrThreshold_math/big.byteReader.Read_math/big.byteReader.ReadByte_math/big.byteReader.ReadRune_math/big.byteReader.SkipSpace_math/big.byteReader.Token_math/big.byteReader.UnreadByte_math/big.byteReader.UnreadRune_math/big.byteReader.Width_math/big.cacheBase10_math/big.divWVW_math/big.divWW_math/big.divisors_math/big.errInvalSep_math/big.errNoDigits_math/big.euclidUpdate_math/big.getNat_math/big.init_math/big.intOne_math/big.karatsuba_math/big.karatsubaAdd_math/big.karatsubaSqr_math/big.karatsubaSqrThreshold_math/big.karatsubaSub_math/big.karatsubaThreshold_math/big.leafSize_math/big.lehmerSimulate_math/big.lehmerUpdate_math/big.mulAddVWW_math/big.mulAddVWW.args_stackmap_math/big.nat.add_math/big.nat.and_math/big.nat.andNot_math/big.nat.bytes_math/big.nat.clear_math/big.nat.cmp_math/big.nat.convertWords_math/big.nat.div_math/big.nat.divBasic_math/big.nat.divLarge_math/big.nat.divRecursive_math/big.nat.divRecursiveStep_math/big.nat.divW_math/big.nat.expNN_math/big.nat.expNNMontgomery_math/big.nat.expNNWindowed_math/big.nat.expWW_math/big.nat.itoa_math/big.nat.modW_math/big.nat.montgomery_math/big.nat.mul_math/big.nat.mulAddWW_math/big.nat.mulRange_math/big.nat.or_math/big.nat.probablyPrimeLucas_math/big.nat.probablyPrimeMillerRabin_math/big.nat.random_math/big.nat.scan_math/big.nat.setBit_math/big.nat.setBytes_math/big.nat.setUint64_math/big.nat.shl_math/big.nat.shr_math/big.nat.sqr_math/big.nat.sqrt_math/big.nat.sub_math/big.nat.xor_math/big.natOne_math/big.natPool_math/big.natTwo_math/big.reciprocalWord_math/big.scanSign_math/big.shlVU_math/big.shlVU.args_stackmap_math/big.shrVU_math/big.shrVU.args_stackmap_math/big.subVV_math/big.subVV.args_stackmap_math/big.subVW_math/big.subVW.args_stackmap_math/bits.Div64_math/rand.(*Rand).ExpFloat64_math/rand.(*Rand).Float32_math/rand.(*Rand).Float64_math/rand.(*Rand).Int_math/rand.(*Rand).Int31_math/rand.(*Rand).Int31n_math/rand.(*Rand).Int63_math/rand.(*Rand).Int63n_math/rand.(*Rand).Intn_math/rand.(*Rand).NormFloat64_math/rand.(*Rand).Perm_math/rand.(*Rand).Read_math/rand.(*Rand).Seed_math/rand.(*Rand).Shuffle_math/rand.(*Rand).Uint32_math/rand.(*Rand).Uint64_math/rand.(*Rand).int31n_math/rand.(*lockedSource).Int63_math/rand.(*lockedSource).Seed_math/rand.(*lockedSource).Uint64_math/rand.(*lockedSource).read_math/rand.(*lockedSource).seedPos_math/rand.(*rngSource).Int63_math/rand.(*rngSource).Seed_math/rand.(*rngSource).Uint64_math/rand..inittask_math/rand.Float64_math/rand.fe_math/rand.fn_math/rand.globalRand_math/rand.init_math/rand.ke_math/rand.kn_math/rand.read_math/rand.rngCooked_math/rand.we_math/rand.wn_memeqbody_mime..inittask_mime.ErrInvalidMediaParameter_mime.FormatMediaType_mime.ParseMediaType_mime.builtinTypesLower_mime.checkMediaTypeDisposition_mime.consumeMediaParam_mime.consumeToken_mime.consumeValue_mime.decode2231Enc_mime.errInvalidWord_mime.extensions_mime.extensionsMu_mime.init_mime.init.0_mime.initMimeUnix_mime.isNotTokenChar_mime.isTokenChar_mime.loadMimeFile_mime.loadMimeGlobsFile_mime.maxBase64Len_mime.mimeGlobs_mime.mimeTypes_mime.mimeTypesLower_mime.needsEncoding_mime.osInitMime_mime.percentHexUnescape_mime.setExtensionType_mime.typeFiles_mime/multipart.(*FileHeader).Open_mime/multipart.(*Form).RemoveAll_mime/multipart.(*Part).Close_mime/multipart.(*Part).FileName_mime/multipart.(*Part).FormName_mime/multipart.(*Part).Read_mime/multipart.(*Part).parseContentDisposition_mime/multipart.(*Part).populateHeaders_mime/multipart.(*Reader).NextPart_mime/multipart.(*Reader).NextRawPart_mime/multipart.(*Reader).ReadForm_mime/multipart.(*Reader).isBoundaryDelimiterLine_mime/multipart.(*Reader).isFinalBoundary_mime/multipart.(*Reader).nextPart_mime/multipart.(*Reader).readForm_mime/multipart.(*Reader).readForm.func1_mime/multipart.(*partReader).Read_mime/multipart.(*sectionReadCloser).Close_mime/multipart.(*sectionReadCloser).Read_mime/multipart.(*sectionReadCloser).ReadAt_mime/multipart.(*sectionReadCloser).Seek_mime/multipart.(*sectionReadCloser).Size_mime/multipart.(*stickyErrorReader).Read_mime/multipart..inittask_mime/multipart.ErrMessageTooLarge_mime/multipart.NewReader_mime/multipart.emptyParams_mime/multipart.init_mime/multipart.newPart_mime/multipart.partReader.Read_mime/multipart.quoteEscaper_mime/multipart.scanUntilBoundary_mime/multipart.sectionReadCloser.Close_mime/multipart.sectionReadCloser.Read_mime/multipart.sectionReadCloser.ReadAt_mime/multipart.sectionReadCloser.Seek_mime/multipart.sectionReadCloser.Size_mime/quotedprintable.(*Reader).Read_mime/quotedprintable..gobytes.1_mime/quotedprintable..gobytes.2_mime/quotedprintable..gobytes.3_mime/quotedprintable..inittask_mime/quotedprintable.crlf_mime/quotedprintable.fromHex_mime/quotedprintable.isQPDiscardWhitespace_mime/quotedprintable.lf_mime/quotedprintable.readHexByte_mime/quotedprintable.softSuffix_net(__TEXT/__text)_net.(*AddrError).Error_net.(*AddrError).Temporary_net.(*AddrError).Timeout_net.(*DNSError).Error_net.(*DNSError).Temporary_net.(*DNSError).Timeout_net.(*Dialer).DialContext_net.(*Dialer).DialContext-fm_net.(*Dialer).DialContext.func1_net.(*Dialer).deadline_net.(*IP).DefaultMask_net.(*IP).Equal_net.(*IP).IsGlobalUnicast_net.(*IP).IsInterfaceLocalMulticast_net.(*IP).IsLinkLocalMulticast_net.(*IP).IsLinkLocalUnicast_net.(*IP).IsLoopback_net.(*IP).IsMulticast_net.(*IP).IsPrivate_net.(*IP).IsUnspecified_net.(*IP).MarshalText_net.(*IP).Mask_net.(*IP).String_net.(*IP).To16_net.(*IP).To4_net.(*IP).UnmarshalText_net.(*IPAddr).Network_net.(*IPAddr).String_net.(*IPAddr).family_net.(*IPAddr).isWildcard_net.(*IPAddr).sockaddr_net.(*IPConn).Close_net.(*IPConn).File_net.(*IPConn).LocalAddr_net.(*IPConn).Read_net.(*IPConn).ReadFrom_net.(*IPConn).ReadFromIP_net.(*IPConn).ReadMsgIP_net.(*IPConn).RemoteAddr_net.(*IPConn).SetDeadline_net.(*IPConn).SetReadBuffer_net.(*IPConn).SetReadDeadline_net.(*IPConn).SetWriteBuffer_net.(*IPConn).SetWriteDeadline_net.(*IPConn).SyscallConn_net.(*IPConn).Write_net.(*IPConn).WriteMsgIP_net.(*IPConn).WriteTo_net.(*IPConn).WriteToIP_net.(*IPConn).readFrom_net.(*IPConn).readMsg_net.(*IPConn).writeMsg_net.(*IPConn).writeTo_net.(*IPMask).Size_net.(*IPMask).String_net.(*IPNet).Contains_net.(*IPNet).Network_net.(*IPNet).String_net.(*OpError).Error_net.(*OpError).Temporary_net.(*OpError).Timeout_net.(*OpError).Unwrap_net.(*ParseError).Error_net.(*ParseError).Temporary_net.(*ParseError).Timeout_net.(*Resolver).LookupPort_net.(*Resolver).dial_net.(*Resolver).exchange_net.(*Resolver).goLookupIP_net.(*Resolver).goLookupIPCNAMEOrder_net.(*Resolver).goLookupIPCNAMEOrder.func1_net.(*Resolver).goLookupIPCNAMEOrder.func2_net.(*Resolver).goLookupIPCNAMEOrder.func3_net.(*Resolver).goLookupIPCNAMEOrder.func3.1_net.(*Resolver).goLookupIPCNAMEOrder.func4_net.(*Resolver).internetAddrList_net.(*Resolver).internetAddrList.func1_net.(*Resolver).lookupIP_net.(*Resolver).lookupIP-fm_net.(*Resolver).lookupIPAddr_net.(*Resolver).lookupIPAddr.func1_net.(*Resolver).lookupIPAddr.func2_net.(*Resolver).lookupPort_net.(*Resolver).resolveAddrList_net.(*Resolver).tryOneName_net.(*TCPAddr).Network_net.(*TCPAddr).String_net.(*TCPAddr).family_net.(*TCPAddr).isWildcard_net.(*TCPAddr).sockaddr_net.(*TCPConn).Close_net.(*TCPConn).CloseRead_net.(*TCPConn).CloseWrite_net.(*TCPConn).File_net.(*TCPConn).LocalAddr_net.(*TCPConn).Read_net.(*TCPConn).ReadFrom_net.(*TCPConn).RemoteAddr_net.(*TCPConn).SetDeadline_net.(*TCPConn).SetKeepAlive_net.(*TCPConn).SetKeepAlivePeriod_net.(*TCPConn).SetLinger_net.(*TCPConn).SetNoDelay_net.(*TCPConn).SetReadBuffer_net.(*TCPConn).SetReadDeadline_net.(*TCPConn).SetWriteBuffer_net.(*TCPConn).SetWriteDeadline_net.(*TCPConn).SyscallConn_net.(*TCPConn).Write_net.(*TCPConn).readFrom_net.(*UDPAddr).Network_net.(*UDPAddr).String_net.(*UDPAddr).family_net.(*UDPAddr).isWildcard_net.(*UDPAddr).sockaddr_net.(*UDPConn).Close_net.(*UDPConn).File_net.(*UDPConn).LocalAddr_net.(*UDPConn).Read_net.(*UDPConn).ReadFrom_net.(*UDPConn).ReadFromUDP_net.(*UDPConn).ReadMsgUDP_net.(*UDPConn).RemoteAddr_net.(*UDPConn).SetDeadline_net.(*UDPConn).SetReadBuffer_net.(*UDPConn).SetReadDeadline_net.(*UDPConn).SetWriteBuffer_net.(*UDPConn).SetWriteDeadline_net.(*UDPConn).SyscallConn_net.(*UDPConn).Write_net.(*UDPConn).WriteMsgUDP_net.(*UDPConn).WriteTo_net.(*UDPConn).WriteToUDP_net.(*UDPConn).readFrom_net.(*UDPConn).readFromUDP_net.(*UDPConn).readMsg_net.(*UDPConn).writeMsg_net.(*UDPConn).writeTo_net.(*UnixAddr).Network_net.(*UnixAddr).String_net.(*UnixAddr).family_net.(*UnixAddr).isWildcard_net.(*UnixAddr).sockaddr_net.(*UnixConn).Close_net.(*UnixConn).CloseRead_net.(*UnixConn).CloseWrite_net.(*UnixConn).File_net.(*UnixConn).LocalAddr_net.(*UnixConn).Read_net.(*UnixConn).ReadFrom_net.(*UnixConn).ReadFromUnix_net.(*UnixConn).ReadMsgUnix_net.(*UnixConn).RemoteAddr_net.(*UnixConn).SetDeadline_net.(*UnixConn).SetReadBuffer_net.(*UnixConn).SetReadDeadline_net.(*UnixConn).SetWriteBuffer_net.(*UnixConn).SetWriteDeadline_net.(*UnixConn).SyscallConn_net.(*UnixConn).Write_net.(*UnixConn).WriteMsgUnix_net.(*UnixConn).WriteTo_net.(*UnixConn).WriteToUnix_net.(*UnixConn).readFrom_net.(*UnixConn).readMsg_net.(*UnixConn).writeMsg_net.(*UnixConn).writeTo_net.(*UnknownNetworkError).Error_net.(*UnknownNetworkError).Temporary_net.(*UnknownNetworkError).Timeout_net.(*addrinfoErrno).Error_net.(*addrinfoErrno).Temporary_net.(*addrinfoErrno).Timeout_net.(*byMaskLength).Len_net.(*byMaskLength).Less_net.(*byMaskLength).Swap_net.(*byRFC6724).Len_net.(*byRFC6724).Less_net.(*byRFC6724).Swap_net.(*conf).hostLookupOrder_net.(*conf).hostLookupOrder.func1_net.(*conn).Close_net.(*conn).File_net.(*conn).LocalAddr_net.(*conn).Read_net.(*conn).RemoteAddr_net.(*conn).SetDeadline_net.(*conn).SetReadBuffer_net.(*conn).SetReadDeadline_net.(*conn).SetWriteBuffer_net.(*conn).SetWriteDeadline_net.(*conn).Write_net.(*dnsConfig).nameList_net.(*file).close_net.(*file).getLineFromData_net.(*file).readLine_net.(*ipStackCapabilities).probe_net.(*ipStackCapabilities).probe-fm_net.(*ipv6ZoneCache).index_net.(*ipv6ZoneCache).name_net.(*ipv6ZoneCache).update_net.(*netFD).Close_net.(*netFD).Read_net.(*netFD).SetDeadline_net.(*netFD).SetReadDeadline_net.(*netFD).SetWriteDeadline_net.(*netFD).Write_net.(*netFD).connect_net.(*netFD).connect.func1_net.(*netFD).connect.func2_net.(*netFD).dial_net.(*netFD).dial.func1_net.(*netFD).dial.func2_net.(*netFD).dial.func3_net.(*netFD).dial.func4_net.(*netFD).dial.func5_net.(*netFD).dup_net.(*netFD).listenDatagram_net.(*netFD).listenDatagram.func1_net.(*netFD).listenStream_net.(*netFD).listenStream.func1_net.(*netFD).name_net.(*netFD).readFrom_net.(*netFD).readMsg_net.(*netFD).shutdown_net.(*netFD).writeMsg_net.(*netFD).writeTo_net.(*onlyValuesCtx).Deadline_net.(*onlyValuesCtx).Done_net.(*onlyValuesCtx).Err_net.(*onlyValuesCtx).Value_net.(*rawConn).Control_net.(*rawConn).Read_net.(*rawConn).Write_net.(*resolverConfig).init_net.(*resolverConfig).init-fm_net.(*resolverConfig).releaseSema_net.(*resolverConfig).tryAcquireSema_net.(*resolverConfig).tryUpdate_net.(*sysDialer).dialIP_net.(*sysDialer).dialParallel_net.(*sysDialer).dialParallel.func1_net.(*sysDialer).dialSerial_net.(*sysDialer).dialSingle_net.(*sysDialer).dialSingle.func1_net.(*sysDialer).dialTCP_net.(*sysDialer).dialUDP_net.(*sysDialer).dialUnix_net.(*sysDialer).doDialTCP_net.(*timeoutError).Error_net.(*timeoutError).Temporary_net.(*timeoutError).Timeout_net.(*writerOnly).Write_net..inittask_net.DefaultResolver_net.DialUDP_net.ErrClosed_net.ErrWriteToConnected_net.IP.DefaultMask_net.IP.Equal_net.IP.IsGlobalUnicast_net.IP.IsInterfaceLocalMulticast_net.IP.IsLinkLocalMulticast_net.IP.IsLinkLocalUnicast_net.IP.IsLoopback_net.IP.IsMulticast_net.IP.IsPrivate_net.IP.IsUnspecified_net.IP.MarshalText_net.IP.Mask_net.IP.String_net.IP.To16_net.IP.To4_net.IP.matchAddrFamily_net.IPMask.Size_net.IPMask.String_net.IPv4allrouter_net.IPv4allsys_net.IPv4bcast_net.IPv4zero_net.IPv6loopback_net.IPv6unspecified_net.IPv6zero_net.ParseCIDR_net.ParseIP_net.SplitHostPort_net.UnknownNetworkError.Error_net.UnknownNetworkError.Temporary_net.UnknownNetworkError.Timeout_net._C2func_getaddrinfo_net._Cfunc_freeaddrinfo_net._Cfunc_gai_strerror_net._cgo_e70cc1a36770_C2func_getaddrinfo_net._cgo_e70cc1a36770_Cfunc_freeaddrinfo_net._cgo_e70cc1a36770_Cfunc_gai_strerror_net.aLongTimeAgo_net.absDomainName_net.acquireThread_net.acquireThread.func1_net.addrList.partition_net.addrinfoErrno.Error_net.addrinfoErrno.Temporary_net.addrinfoErrno.Timeout_net.allFF_net.avoidDNS_net.byMaskLength.Len_net.byMaskLength.Less_net.byMaskLength.Swap_net.cgoIPLookup_net.cgoLookupIP_net.cgoLookupIPCNAME_net.cgoLookupIPCNAME.func1_net.cgoLookupIPCNAME.func2_net.cgoLookupIPCNAME.func2.1_net.cgoLookupPort_net.cgoLookupServicePort_net.cgoLookupServicePort.func1_net.cgoLookupServicePort.func2_net.cgoLookupServicePort.func2.1_net.cgoPortLookup_net.checkHeader_net.checkResponse_net.classAMask_net.classBMask_net.classCMask_net.classifyScope_net.commonPrefixLen_net.concurrentThreadsLimit_net.confOnce_net.confVal_net.connectFunc_net.copyIP_net.countAnyByte_net.defaultNS_net.dnsDefaultSearch_net.dnsPacketRoundTrip_net.dnsReadConfig_net.dnsStreamRoundTrip_net.dnsWaitGroup_net.errCanceled_net.errCannotMarshalDNSMessage_net.errCannotUnmarshalDNSMessage_net.errInvalidDNSResponse_net.errInvalidInterface_net.errInvalidInterfaceIndex_net.errInvalidInterfaceName_net.errLameReferral_net.errMissingAddress_net.errNoAnswerFromDNSServer_net.errNoSuchHost_net.errNoSuchInterface_net.errNoSuchMulticastInterface_net.errNoSuitableAddress_net.errServerMisbehaving_net.errServerTemporarilyMisbehaving_net.errTimeout_net.fastrand_net.favoriteAddrFamily_net.filterAddrList_net.genericReadFrom_net.getHostname_net.getsockoptIntFunc_net.glob..func1_net.glob..func2_net.glob..func4_net.goDebugNetDNS_net.goDebugNetDNS.func1_net.goDebugString_net.goLookupIPFiles_net.goLookupPort_net.hexString_net.hosts_net.init_net.init.0_net.initConfVal_net.initConfVal.func1_net.interfaceMessages_net.interfaceTable_net.internetSocket_net.ipAddrsEface_net.ipAttrOf_net.ipStackCaps_net.ipToSockaddr_net.ipv4only_net.ipv6only_net.isDomainName_net.isIPv4_net.isLocalhost_net.listenFunc_net.listenerBacklog_net.listenerBacklog.func1_net.listenerBacklogCache_net.lookupOrderName_net.lookupPortMap_net.lookupProtocol_net.lookupProtocolMap_net.lookupStaticHost_net.lowerASCIIBytes_net.maxListenerBacklog_net.minNonzeroTime_net.mustCIDR_net.netCgo_net.netGo_net.networkNumberAndMask_net.newRequest_net.noDeadline_net.nssSource.standardCriteria_net.onceReadProtocols_net.onceReadServices_net.onlyValuesCtx.Deadline_net.onlyValuesCtx.Done_net.onlyValuesCtx.Err_net.open_net.parseIPZone_net.parseIPv4_net.parseIPv6_net.parseIPv6Zone_net.parseLiteralIP_net.parseNetwork_net.parsePort_net.partialDeadline_net.policyTable.Classify_net.protocols_net.randInt_net.readHosts_net.readProtocols_net.readServices_net.releaseThread_net.resolvConf_net.rfc6724policyTable_net.selfConnect_net.services_net.setDefaultListenerSockopts_net.setDefaultMulticastSockopts_net.setDefaultSockopts_net.setKeepAlive_net.setKeepAlivePeriod_net.setLinger_net.setNoDelay_net.setReadBuffer_net.setReadMsgCloseOnExec_net.setWriteBuffer_net.simpleMaskLength_net.skipToAnswer_net.sockaddrToIP_net.sockaddrToTCP_net.sockaddrToUDP_net.sockaddrToUnix_net.sockaddrToUnixgram_net.sockaddrToUnixpacket_net.socket_net.socketFunc_net.sortByRFC6724_net.sortByRFC6724withSrcs_net.splitAtBytes_net.srcAddrs_net.stat_net.stringsHasSuffixFold_net.supportsIPv4_net.supportsIPv4map_net.sysSocket_net.testHookCanceledDial_net.testHookDialTCP_net.testHookHostsPath_net.testHookLookupIP_net.testHookSetKeepAlive_net.threadLimit_net.threadOnce_net.unixSocket_net.v4InV6Prefix_net.writerOnly.Write_net.xtoi_net.zoneCache_net/http.(*Client).CloseIdleConnections_net/http.(*Client).Do_net/http.(*Client).Get_net/http.(*Client).Head_net/http.(*Client).Post_net/http.(*Client).PostForm_net/http.(*Client).deadline_net/http.(*Client).do_net/http.(*Client).do.func1_net/http.(*Client).do.func2_net/http.(*Client).makeHeadersCopier_net/http.(*Client).makeHeadersCopier.func1_net/http.(*Client).send_net/http.(*Cookie).String_net/http.(*Header).Add_net/http.(*Header).Clone_net/http.(*Header).Del_net/http.(*Header).Get_net/http.(*Header).Set_net/http.(*Header).Values_net/http.(*Header).Write_net/http.(*Header).WriteSubset_net/http.(*ProtocolError).Error_net/http.(*Request).AddCookie_net/http.(*Request).BasicAuth_net/http.(*Request).Clone_net/http.(*Request).Context_net/http.(*Request).Cookie_net/http.(*Request).Cookies_net/http.(*Request).FormFile_net/http.(*Request).FormValue_net/http.(*Request).MultipartReader_net/http.(*Request).ParseForm_net/http.(*Request).ParseMultipartForm_net/http.(*Request).PostFormValue_net/http.(*Request).ProtoAtLeast_net/http.(*Request).Referer_net/http.(*Request).SetBasicAuth_net/http.(*Request).UserAgent_net/http.(*Request).WithContext_net/http.(*Request).Write_net/http.(*Request).WriteProxy_net/http.(*Request).expectsContinue_net/http.(*Request).multipartReader_net/http.(*Request).requiresHTTP1_net/http.(*Request).wantsClose_net/http.(*Request).write_net/http.(*Request).write.func1_net/http.(*Request).write.func2_net/http.(*Response).Cookies_net/http.(*Response).Location_net/http.(*Response).ProtoAtLeast_net/http.(*Response).Write_net/http.(*Transport).CancelRequest_net/http.(*Transport).Clone_net/http.(*Transport).CloseIdleConnections_net/http.(*Transport).RegisterProtocol_net/http.(*Transport).RoundTrip_net/http.(*Transport).alternateRoundTripper_net/http.(*Transport).cancelRequest_net/http.(*Transport).connectMethodForRequest_net/http.(*Transport).customDialTLS_net/http.(*Transport).decConnsPerHost_net/http.(*Transport).dial_net/http.(*Transport).dialConn_net/http.(*Transport).dialConn.func2_net/http.(*Transport).dialConn.func3_net/http.(*Transport).dialConnFor_net/http.(*Transport).getConn_net/http.(*Transport).getConn.func1_net/http.(*Transport).getConn.func2_net/http.(*Transport).getConn.func3_net/http.(*Transport).onceSetNextProtoDefaults_net/http.(*Transport).onceSetNextProtoDefaults-fm_net/http.(*Transport).putOrCloseIdleConn_net/http.(*Transport).queueForDial_net/http.(*Transport).queueForIdleConn_net/http.(*Transport).removeIdleConn_net/http.(*Transport).removeIdleConnLocked_net/http.(*Transport).replaceReqCanceler_net/http.(*Transport).roundTrip_net/http.(*Transport).setReqCanceler_net/http.(*Transport).tryPutIdleConn_net/http.(*atomicBool).isSet-fm_net/http.(*body).Close_net/http.(*body).Read_net/http.(*body).readLocked_net/http.(*body).readTrailer_net/http.(*bodyEOFSignal).Close_net/http.(*bodyEOFSignal).Read_net/http.(*bodyLocked).Read_net/http.(*bufioFlushWriter).Write_net/http.(*byteReader).Read_net/http.(*cancelTimerBody).Close_net/http.(*cancelTimerBody).Read_net/http.(*connLRU).add_net/http.(*connectMethod).key_net/http.(*connectMethod).proxyAuth_net/http.(*connectMethod).tlsHost_net/http.(*connectMethodKey).String_net/http.(*errorReader).Read_net/http.(*fakeLocker).Lock_net/http.(*fakeLocker).Unlock_net/http.(*finishAsyncByteRead).Read_net/http.(*gzipReader).Close_net/http.(*gzipReader).Read_net/http.(*headerSorter).Len_net/http.(*headerSorter).Less_net/http.(*headerSorter).Swap_net/http.(*http2ClientConn).CanTakeNewRequest_net/http.(*http2ClientConn).Close_net/http.(*http2ClientConn).Ping_net/http.(*http2ClientConn).Ping.func1_net/http.(*http2ClientConn).ReserveNewRequest_net/http.(*http2ClientConn).RoundTrip_net/http.(*http2ClientConn).RoundTrip.func1_net/http.(*http2ClientConn).RoundTrip.func2_net/http.(*http2ClientConn).SetDoNotReuse_net/http.(*http2ClientConn).Shutdown_net/http.(*http2ClientConn).Shutdown.func1_net/http.(*http2ClientConn).addStreamLocked_net/http.(*http2ClientConn).awaitOpenSlotForStreamLocked_net/http.(*http2ClientConn).closeForError_net/http.(*http2ClientConn).closeIfIdle_net/http.(*http2ClientConn).decrStreamReservations_net/http.(*http2ClientConn).encodeHeaders_net/http.(*http2ClientConn).encodeHeaders.func1_net/http.(*http2ClientConn).encodeHeaders.func2_net/http.(*http2ClientConn).encodeHeaders.func3_net/http.(*http2ClientConn).encodeTrailers_net/http.(*http2ClientConn).forgetStreamID_net/http.(*http2ClientConn).healthCheck_net/http.(*http2ClientConn).healthCheck-fm_net/http.(*http2ClientConn).idleStateLocked_net/http.(*http2ClientConn).onIdleTimeout-fm_net/http.(*http2ClientConn).readLoop_net/http.(*http2ClientConn).sendGoAway_net/http.(*http2ClientConn).setGoAway_net/http.(*http2ClientConn).tooIdleLocked_net/http.(*http2ClientConn).writeHeader_net/http.(*http2ClientConn).writeHeaders_net/http.(*http2ClientConn).writeStreamReset_net/http.(*http2ConnectionError).Error_net/http.(*http2ContinuationFrame).Header_net/http.(*http2ContinuationFrame).HeaderBlockFragment_net/http.(*http2ContinuationFrame).HeadersEnded_net/http.(*http2ContinuationFrame).String_net/http.(*http2ContinuationFrame).invalidate_net/http.(*http2DataFrame).Data_net/http.(*http2DataFrame).Header_net/http.(*http2DataFrame).StreamEnded_net/http.(*http2DataFrame).String_net/http.(*http2DataFrame).invalidate_net/http.(*http2ErrCode).String_net/http.(*http2Flags).Has_net/http.(*http2FrameHeader).Header_net/http.(*http2FrameHeader).String_net/http.(*http2FrameHeader).invalidate_net/http.(*http2FrameType).String_net/http.(*http2Framer).ErrorDetail_net/http.(*http2Framer).ReadFrame_net/http.(*http2Framer).SetMaxReadFrameSize_net/http.(*http2Framer).SetReuseFrames_net/http.(*http2Framer).WriteContinuation_net/http.(*http2Framer).WriteData_net/http.(*http2Framer).WriteDataPadded_net/http.(*http2Framer).WriteGoAway_net/http.(*http2Framer).WriteHeaders_net/http.(*http2Framer).WritePing_net/http.(*http2Framer).WritePriority_net/http.(*http2Framer).WritePushPromise_net/http.(*http2Framer).WriteRSTStream_net/http.(*http2Framer).WriteRawFrame_net/http.(*http2Framer).WriteSettings_net/http.(*http2Framer).WriteSettingsAck_net/http.(*http2Framer).WriteWindowUpdate_net/http.(*http2Framer).checkFrameOrder_net/http.(*http2Framer).endWrite_net/http.(*http2Framer).logWrite_net/http.(*http2Framer).logWrite.func1_net/http.(*http2Framer).readMetaFrame_net/http.(*http2Framer).readMetaFrame.func1_net/http.(*http2Framer).readMetaFrame.func2_net/http.(*http2GoAwayError).Error_net/http.(*http2GoAwayFrame).DebugData_net/http.(*http2GoAwayFrame).Header_net/http.(*http2GoAwayFrame).String_net/http.(*http2GoAwayFrame).invalidate_net/http.(*http2HeadersFrame).HasPriority_net/http.(*http2HeadersFrame).Header_net/http.(*http2HeadersFrame).HeaderBlockFragment_net/http.(*http2HeadersFrame).HeadersEnded_net/http.(*http2HeadersFrame).StreamEnded_net/http.(*http2HeadersFrame).String_net/http.(*http2HeadersFrame).invalidate_net/http.(*http2MetaHeadersFrame).HasPriority_net/http.(*http2MetaHeadersFrame).Header_net/http.(*http2MetaHeadersFrame).HeaderBlockFragment_net/http.(*http2MetaHeadersFrame).HeadersEnded_net/http.(*http2MetaHeadersFrame).PseudoFields_net/http.(*http2MetaHeadersFrame).PseudoValue_net/http.(*http2MetaHeadersFrame).RegularFields_net/http.(*http2MetaHeadersFrame).StreamEnded_net/http.(*http2MetaHeadersFrame).String_net/http.(*http2MetaHeadersFrame).checkPseudos_net/http.(*http2MetaHeadersFrame).invalidate_net/http.(*http2PingFrame).Header_net/http.(*http2PingFrame).IsAck_net/http.(*http2PingFrame).String_net/http.(*http2PingFrame).invalidate_net/http.(*http2PriorityFrame).Header_net/http.(*http2PriorityFrame).IsZero_net/http.(*http2PriorityFrame).String_net/http.(*http2PriorityFrame).invalidate_net/http.(*http2PriorityParam).IsZero_net/http.(*http2PushPromiseFrame).Header_net/http.(*http2PushPromiseFrame).HeaderBlockFragment_net/http.(*http2PushPromiseFrame).HeadersEnded_net/http.(*http2PushPromiseFrame).String_net/http.(*http2PushPromiseFrame).invalidate_net/http.(*http2RSTStreamFrame).Header_net/http.(*http2RSTStreamFrame).String_net/http.(*http2RSTStreamFrame).invalidate_net/http.(*http2Setting).String_net/http.(*http2Setting).Valid_net/http.(*http2SettingID).String_net/http.(*http2SettingsFrame).ForeachSetting_net/http.(*http2SettingsFrame).HasDuplicates_net/http.(*http2SettingsFrame).Header_net/http.(*http2SettingsFrame).IsAck_net/http.(*http2SettingsFrame).NumSettings_net/http.(*http2SettingsFrame).Setting_net/http.(*http2SettingsFrame).String_net/http.(*http2SettingsFrame).Value_net/http.(*http2SettingsFrame).invalidate_net/http.(*http2StreamError).Error_net/http.(*http2Transport).CloseIdleConnections_net/http.(*http2Transport).NewClientConn_net/http.(*http2Transport).RoundTrip_net/http.(*http2Transport).RoundTripOpt_net/http.(*http2Transport).dialClientConn_net/http.(*http2Transport).dialTLS_net/http.(*http2Transport).dialTLS.func1_net/http.(*http2Transport).dialTLSWithContext_net/http.(*http2Transport).initConnPool-fm_net/http.(*http2Transport).newClientConn_net/http.(*http2Transport).newClientConn.func1_net/http.(*http2Transport).newTLSConfig_net/http.(*http2UnknownFrame).Header_net/http.(*http2UnknownFrame).Payload_net/http.(*http2UnknownFrame).String_net/http.(*http2UnknownFrame).invalidate_net/http.(*http2WindowUpdateFrame).Header_net/http.(*http2WindowUpdateFrame).String_net/http.(*http2WindowUpdateFrame).invalidate_net/http.(*http2addConnCall).run_net/http.(*http2clientConnPool).GetClientConn_net/http.(*http2clientConnPool).MarkDead_net/http.(*http2clientConnPool).addConnIfNeeded_net/http.(*http2clientConnPool).addConnLocked_net/http.(*http2clientConnPool).closeIdleConnections_net/http.(*http2clientConnPool).getClientConn_net/http.(*http2clientConnPool).getStartDialLocked_net/http.(*http2clientConnReadLoop).cleanup_net/http.(*http2clientConnReadLoop).endStream_net/http.(*http2clientConnReadLoop).handleResponse_net/http.(*http2clientConnReadLoop).handleResponse.func1_net/http.(*http2clientConnReadLoop).processData_net/http.(*http2clientConnReadLoop).processGoAway_net/http.(*http2clientConnReadLoop).processHeaders_net/http.(*http2clientConnReadLoop).processPing_net/http.(*http2clientConnReadLoop).processResetStream_net/http.(*http2clientConnReadLoop).processSettings_net/http.(*http2clientConnReadLoop).processSettingsNoWrite_net/http.(*http2clientConnReadLoop).processSettingsNoWrite.func1_net/http.(*http2clientConnReadLoop).processTrailers_net/http.(*http2clientConnReadLoop).processWindowUpdate_net/http.(*http2clientConnReadLoop).run_net/http.(*http2clientConnReadLoop).streamByID_net/http.(*http2clientStream).abortRequestBodyWrite_net/http.(*http2clientStream).abortStream_net/http.(*http2clientStream).abortStreamLocked_net/http.(*http2clientStream).abortStreamLocked.func1_net/http.(*http2clientStream).awaitFlowControl_net/http.(*http2clientStream).cleanupWriteRequest_net/http.(*http2clientStream).copyTrailers_net/http.(*http2clientStream).copyTrailers-fm_net/http.(*http2clientStream).doRequest_net/http.(*http2clientStream).encodeAndWriteHeaders_net/http.(*http2clientStream).writeRequest_net/http.(*http2clientStream).writeRequestBody_net/http.(*http2connError).Error_net/http.(*http2dataBuffer).Len_net/http.(*http2dataBuffer).Read_net/http.(*http2dataBuffer).Write_net/http.(*http2dataBuffer).lastChunkOrAlloc_net/http.(*http2dialCall).dial_net/http.(*http2duplicatePseudoHeaderError).Error_net/http.(*http2erringRoundTripper).RoundTrip_net/http.(*http2erringRoundTripper).RoundTripErr_net/http.(*http2gzipReader).Close_net/http.(*http2gzipReader).Read_net/http.(*http2headerFieldNameError).Error_net/http.(*http2headerFieldValueError).Error_net/http.(*http2httpError).Error_net/http.(*http2httpError).Temporary_net/http.(*http2httpError).Timeout_net/http.(*http2missingBody).Close_net/http.(*http2missingBody).Read_net/http.(*http2noCachedConnError).Error_net/http.(*http2noCachedConnError).IsHTTP2NoCachedConnError_net/http.(*http2noDialClientConnPool).GetClientConn_net/http.(*http2noDialClientConnPool).MarkDead_net/http.(*http2noDialClientConnPool).closeIdleConnections_net/http.(*http2noDialH2RoundTripper).CloseIdleConnections_net/http.(*http2noDialH2RoundTripper).NewClientConn_net/http.(*http2noDialH2RoundTripper).RoundTrip_net/http.(*http2noDialH2RoundTripper).RoundTripOpt_net/http.(*http2pipe).BreakWithError_net/http.(*http2pipe).CloseWithError_net/http.(*http2pipe).Done_net/http.(*http2pipe).Err_net/http.(*http2pipe).Len_net/http.(*http2pipe).Read_net/http.(*http2pipe).Write_net/http.(*http2pipe).closeDoneLocked_net/http.(*http2pipe).closeWithError_net/http.(*http2pipe).setBuffer_net/http.(*http2pseudoHeaderError).Error_net/http.(*http2stickyErrWriter).Write_net/http.(*http2transportResponseBody).Close_net/http.(*http2transportResponseBody).Read_net/http.(*httpError).Error_net/http.(*httpError).Temporary_net/http.(*httpError).Timeout_net/http.(*noBody).Close_net/http.(*noBody).Read_net/http.(*noBody).WriteTo_net/http.(*nothingWrittenError).Error_net/http.(*persistConn).Read_net/http.(*persistConn).addTLS_net/http.(*persistConn).addTLS.func1_net/http.(*persistConn).addTLS.func2_net/http.(*persistConn).cancelRequest_net/http.(*persistConn).cancelRequest-fm_net/http.(*persistConn).canceled_net/http.(*persistConn).close_net/http.(*persistConn).closeConnIfStillIdle_net/http.(*persistConn).closeConnIfStillIdle-fm_net/http.(*persistConn).closeLocked_net/http.(*persistConn).gotIdleConnTrace_net/http.(*persistConn).isBroken_net/http.(*persistConn).isReused_net/http.(*persistConn).mapRoundTripError_net/http.(*persistConn).markReused_net/http.(*persistConn).readLoop_net/http.(*persistConn).readLoop.func1_net/http.(*persistConn).readLoop.func2_net/http.(*persistConn).readLoop.func3_net/http.(*persistConn).readLoop.func4_net/http.(*persistConn).readLoopPeekFailLocked_net/http.(*persistConn).readResponse_net/http.(*persistConn).roundTrip_net/http.(*persistConn).roundTrip.func1_net/http.(*persistConn).shouldRetryRequest_net/http.(*persistConn).waitForContinue_net/http.(*persistConn).waitForContinue.func1_net/http.(*persistConn).writeLoop_net/http.(*persistConn).wroteRequest_net/http.(*persistConnWriter).ReadFrom_net/http.(*persistConnWriter).Write_net/http.(*readTrackingBody).Close_net/http.(*readTrackingBody).Read_net/http.(*readWriteCloserBody).Close_net/http.(*readWriteCloserBody).Read_net/http.(*readWriteCloserBody).Write_net/http.(*requestBodyReadError).Error_net/http.(*socksAddr).Network_net/http.(*socksAddr).String_net/http.(*socksDialer).DialWithConn_net/http.(*socksDialer).connect_net/http.(*socksDialer).connect.func1_net/http.(*socksDialer).connect.func2_net/http.(*socksDialer).pathAddrs_net/http.(*socksUsernamePassword).Authenticate_net/http.(*socksUsernamePassword).Authenticate-fm_net/http.(*stringWriter).WriteString_net/http.(*tlsHandshakeTimeoutError).Error_net/http.(*tlsHandshakeTimeoutError).Temporary_net/http.(*tlsHandshakeTimeoutError).Timeout_net/http.(*transferReader).parseTransferEncoding_net/http.(*transferWriter).doBodyCopy_net/http.(*transferWriter).probeRequestBody_net/http.(*transferWriter).probeRequestBody.func1_net/http.(*transferWriter).shouldSendChunkedRequestBody_net/http.(*transferWriter).shouldSendContentLength_net/http.(*transferWriter).unwrapBody_net/http.(*transferWriter).writeBody_net/http.(*transferWriter).writeBody.func1_net/http.(*transferWriter).writeHeader_net/http.(*transportReadFromServerError).Error_net/http.(*transportReadFromServerError).Unwrap_net/http.(*transportRequest).AddCookie_net/http.(*transportRequest).BasicAuth_net/http.(*transportRequest).Clone_net/http.(*transportRequest).Context_net/http.(*transportRequest).Cookie_net/http.(*transportRequest).Cookies_net/http.(*transportRequest).FormFile_net/http.(*transportRequest).FormValue_net/http.(*transportRequest).MultipartReader_net/http.(*transportRequest).ParseForm_net/http.(*transportRequest).ParseMultipartForm_net/http.(*transportRequest).PostFormValue_net/http.(*transportRequest).ProtoAtLeast_net/http.(*transportRequest).Referer_net/http.(*transportRequest).SetBasicAuth_net/http.(*transportRequest).UserAgent_net/http.(*transportRequest).WithContext_net/http.(*transportRequest).Write_net/http.(*transportRequest).WriteProxy_net/http.(*transportRequest).setError_net/http.(*unsupportedTEError).Error_net/http.(*wantConn).cancel_net/http.(*wantConn).tryDeliver_net/http.(*wantConn).waiting_net/http.(*wantConnQueue).cleanFront_net/http..gobytes.2_net/http..gobytes.75_net/http..gobytes.76_net/http..inittask_net/http.DefaultClient_net/http.DefaultTransport_net/http.ErrAbortHandler_net/http.ErrBodyNotAllowed_net/http.ErrBodyReadAfterClose_net/http.ErrContentLength_net/http.ErrHandlerTimeout_net/http.ErrHijacked_net/http.ErrLineTooLong_net/http.ErrMissingBoundary_net/http.ErrMissingFile_net/http.ErrNoCookie_net/http.ErrNoLocation_net/http.ErrNotMultipart_net/http.ErrServerClosed_net/http.ErrSkipAltProtocol_net/http.ErrUseLastResponse_net/http.ErrWriteAfterFlush_net/http.Header.Add_net/http.Header.Clone_net/http.Header.Del_net/http.Header.Get_net/http.Header.Set_net/http.Header.Values_net/http.Header.Write_net/http.Header.WriteSubset_net/http.Header.sortedKeyValues_net/http.Header.writeSubset_net/http.NewRequestWithContext_net/http.NewRequestWithContext.func1_net/http.NewRequestWithContext.func2_net/http.NewRequestWithContext.func3_net/http.NewRequestWithContext.func4_net/http.ParseHTTPVersion_net/http.ProxyFromEnvironment_net/http.ReadResponse_net/http.aLongTimeAgo_net/http.alwaysFalse_net/http.bodyLocked.Read_net/http.bufioFlushWriter.Write_net/http.canonicalAddr_net/http.cleanHost_net/http.cloneMultipartFileHeader_net/http.cloneMultipartForm_net/http.connectMethodKey.String_net/http.cookieNameSanitizer_net/http.copyValues_net/http.defaultCheckRedirect_net/http.doubleCRLF_net/http.envProxyFunc_net/http.envProxyFunc.func1_net/http.envProxyFuncValue_net/http.envProxyOnce_net/http.errCallerOwnsConn_net/http.errCannotRewind_net/http.errCloseIdle_net/http.errCloseIdleConns_net/http.errConnBroken_net/http.errIdleConnTimeout_net/http.errKeepAlivesDisabled_net/http.errMissingHost_net/http.errMissingReadDir_net/http.errMissingSeek_net/http.errNoOverlap_net/http.errReadLoopExiting_net/http.errReadOnClosedResBody_net/http.errRequestCanceled_net/http.errRequestCanceledConn_net/http.errSeeker_net/http.errServerClosedIdle_net/http.errTimeout_net/http.errTooLarge_net/http.errTooManyIdle_net/http.errTooManyIdleHost_net/http.errTrailerEOF_net/http.errorReader.Read_net/http.fakeLocker.Lock_net/http.fakeLocker.Unlock_net/http.finishAsyncByteRead.Read_net/http.fixLength_net/http.fixTrailer_net/http.fixTrailer.func1_net/http.foreachHeaderElement_net/http.glob..func1_net/http.glob..func13_net/http.glob..func14_net/http.glob..func2_net/http.glob..func3_net/http.glob..func4_net/http.glob..func5_net/http.hasPort_net/http.hasToken_net/http.headerNewlineToSpace_net/http.headerSorterPool_net/http.htmlReplacer_net/http.http2ConnectionError.Error_net/http.http2ContinuationFrame.Header_net/http.http2ContinuationFrame.String_net/http.http2DataFrame.Header_net/http.http2DataFrame.String_net/http.http2DebugGoroutines_net/http.http2ErrCode.String_net/http.http2ErrFrameTooLarge_net/http.http2ErrNoCachedConn_net/http.http2ErrPushLimitReached_net/http.http2ErrRecursivePush_net/http.http2Flags.Has_net/http.http2FrameHeader.Header_net/http.http2FrameHeader.String_net/http.http2FrameHeader.writeDebug_net/http.http2FrameType.String_net/http.http2GoAwayError.Error_net/http.http2GoAwayFrame.Header_net/http.http2GoAwayFrame.String_net/http.http2HeadersFrame.Header_net/http.http2HeadersFrame.String_net/http.http2MetaHeadersFrame.HasPriority_net/http.http2MetaHeadersFrame.Header_net/http.http2MetaHeadersFrame.HeaderBlockFragment_net/http.http2MetaHeadersFrame.HeadersEnded_net/http.http2MetaHeadersFrame.StreamEnded_net/http.http2MetaHeadersFrame.String_net/http.http2MetaHeadersFrame.invalidate_net/http.http2PingFrame.Header_net/http.http2PingFrame.String_net/http.http2PriorityFrame.Header_net/http.http2PriorityFrame.IsZero_net/http.http2PriorityFrame.String_net/http.http2PriorityParam.IsZero_net/http.http2PushPromiseFrame.Header_net/http.http2PushPromiseFrame.String_net/http.http2RSTStreamFrame.Header_net/http.http2RSTStreamFrame.String_net/http.http2Setting.String_net/http.http2Setting.Valid_net/http.http2SettingID.String_net/http.http2SettingsFrame.Header_net/http.http2SettingsFrame.String_net/http.http2StreamError.Error_net/http.http2UnknownFrame.Header_net/http.http2UnknownFrame.String_net/http.http2VerboseLogs_net/http.http2WindowUpdateFrame.Header_net/http.http2WindowUpdateFrame.String_net/http.http2asciiToLower_net/http.http2authorityAddr_net/http.http2bufPool_net/http.http2checkConnHeaders_net/http.http2clientPreface_net/http.http2commaSeparatedTrailers_net/http.http2configureTransports_net/http.http2configureTransports.func1_net/http.http2connError.Error_net/http.http2dataChunkPools_net/http.http2dataChunkSizeClasses_net/http.http2duplicatePseudoHeaderError.Error_net/http.http2errClientConnClosed_net/http.http2errClientConnGotGoAway_net/http.http2errClientConnUnusable_net/http.http2errClientDisconnected_net/http.http2errClosedBody_net/http.http2errClosedPipeWrite_net/http.http2errClosedResponseBody_net/http.http2errCodeName_net/http.http2errDepStreamID_net/http.http2errFromPeer_net/http.http2errHandlerComplete_net/http.http2errHandlerPanicked_net/http.http2errMixPseudoHeaderTypes_net/http.http2errNilRequestURL_net/http.http2errPadBytes_net/http.http2errPadLength_net/http.http2errPrefaceTimeout_net/http.http2errPseudoAfterRegular_net/http.http2errReadEmpty_net/http.http2errReqBodyTooLong_net/http.http2errRequestCanceled_net/http.http2errRequestHeaderListSize_net/http.http2errResponseHeaderListSize_net/http.http2errStopReqBodyWrite_net/http.http2errStopReqBodyWriteAndCancel_net/http.http2errStreamClosed_net/http.http2errStreamID_net/http.http2errTimeout_net/http.http2erringRoundTripper.RoundTrip_net/http.http2erringRoundTripper.RoundTripErr_net/http.http2filterOutClientConn_net/http.http2flagName_net/http.http2foreachHeaderElement_net/http.http2frameName_net/http.http2frameParsers_net/http.http2getDataBufferChunk_net/http.http2got1xxFuncForTests_net/http.http2gracefulShutdownMsg_net/http.http2headerFieldNameError.Error_net/http.http2headerFieldValueError.Error_net/http.http2idleTimerMsg_net/http.http2logFrameReads_net/http.http2logFrameWrites_net/http.http2missingBody.Close_net/http.http2missingBody.Read_net/http.http2noBody_net/http.http2noCachedConnError.Error_net/http.http2noCachedConnError.IsHTTP2NoCachedConnError_net/http.http2noDialClientConnPool.GetClientConn_net/http.http2noDialClientConnPool.MarkDead_net/http.http2noDialClientConnPool.closeIdleConnections_net/http.http2noDialH2RoundTripper.CloseIdleConnections_net/http.http2noDialH2RoundTripper.NewClientConn_net/http.http2noDialH2RoundTripper.RoundTrip_net/http.http2noDialH2RoundTripper.RoundTripOpt_net/http.http2padZeros_net/http.http2parseContinuationFrame_net/http.http2parseDataFrame_net/http.http2parseGoAwayFrame_net/http.http2parseHeadersFrame_net/http.http2parsePingFrame_net/http.http2parsePriorityFrame_net/http.http2parsePushPromise_net/http.http2parseRSTStreamFrame_net/http.http2parseSettingsFrame_net/http.http2parseUnknownFrame_net/http.http2parseWindowUpdateFrame_net/http.http2pseudoHeaderError.Error_net/http.http2putDataBufferChunk_net/http.http2readFrameHeader_net/http.http2registerHTTPSProtocol_net/http.http2registerHTTPSProtocol.func1_net/http.http2settingName_net/http.http2settingsTimerMsg_net/http.http2shouldRetryDial_net/http.http2shouldRetryRequest_net/http.http2shutdownEnterWaitStateHook_net/http.http2shutdownTimerMsg_net/http.http2stickyErrWriter.Write_net/http.http2strSliceContains_net/http.http2summarizeFrame_net/http.http2summarizeFrame.func1_net/http.http2traceGetConn_net/http.http2traceGotConn_net/http.http2transportResponseBody.Close_net/http.http2transportResponseBody.Read_net/http.http2validWireHeaderFieldName_net/http.idnaASCII_net/http.init_net/http.init.0_net/http.isCookieDomainName_net/http.isKnownInMemoryReader_net/http.isNotToken_net/http.isProtocolSwitchHeader_net/http.knownRoundTripperImpl_net/http.mergeSetHeader_net/http.multipartByReader_net/http.newTransferWriter_net/http.noBody.Close_net/http.noBody.Read_net/http.noBody.WriteTo_net/http.nop_net/http.nopCloserType_net/http.nothingWrittenError.Error_net/http.omitBundledHTTP2_net/http.parseBasicAuth_net/http.parseContentLength_net/http.parsePostForm_net/http.persistConnWriter.ReadFrom_net/http.persistConnWriter.Write_net/http.portMap_net/http.readCookies_net/http.readSetCookies_net/http.readTransfer_net/http.readWriteCloserBody.Close_net/http.readWriteCloserBody.Write_net/http.redirectBehavior_net/http.refererForURL_net/http.removeEmptyPort_net/http.removeZone_net/http.reqWriteExcludeHeader_net/http.requestBodyReadError.Error_net/http.respExcludeHeader_net/http.rewindBody_net/http.sanitizeCookieValue_net/http.sanitizeOrWarn_net/http.seeUpcomingDoubleCRLF_net/http.send_net/http.setRequestCancel_net/http.setRequestCancel.func1_net/http.setRequestCancel.func2_net/http.setRequestCancel.func3_net/http.setRequestCancel.func3.1_net/http.setRequestCancel.func4_net/http.shouldClose_net/http.shouldCopyHeaderOnRedirect_net/http.singleCRLF_net/http.socksReply.String_net/http.socksaLongTimeAgo_net/http.socksnoDeadline_net/http.sockssplitHostPort_net/http.stateName_net/http.statusText_net/http.stringWriter.WriteString_net/http.stripPassword_net/http.testHookClientDoResult_net/http.testHookEnterRoundTrip_net/http.testHookMu_net/http.testHookPostPendingDial_net/http.testHookPrePendingDial_net/http.testHookReadLoopBeforeNextRead_net/http.testHookRoundTripRetried_net/http.testHookWaitResLoop_net/http.timeBeforeContextDeadline_net/http.tlsHandshakeTimeoutError.Error_net/http.tlsHandshakeTimeoutError.Temporary_net/http.tlsHandshakeTimeoutError.Timeout_net/http.transportReadFromServerError.Error_net/http.transportReadFromServerError.Unwrap_net/http.transportRequest.AddCookie_net/http.transportRequest.BasicAuth_net/http.transportRequest.Clone_net/http.transportRequest.Context_net/http.transportRequest.Cookie_net/http.transportRequest.Cookies_net/http.transportRequest.FormFile_net/http.transportRequest.FormValue_net/http.transportRequest.MultipartReader_net/http.transportRequest.ParseForm_net/http.transportRequest.ParseMultipartForm_net/http.transportRequest.PostFormValue_net/http.transportRequest.ProtoAtLeast_net/http.transportRequest.Referer_net/http.transportRequest.SetBasicAuth_net/http.transportRequest.UserAgent_net/http.transportRequest.WithContext_net/http.transportRequest.Write_net/http.transportRequest.WriteProxy_net/http.uniqNameNext_net/http.unixEpochTime_net/http.urlErrorOp_net/http.validCookieDomain_net/http.validCookiePathByte_net/http.validCookieValueByte_net/http.zeroDialer_net/http/httptrace..inittask_net/http/internal.(*FlushAfterChunkWriter).Available_net/http/internal.(*FlushAfterChunkWriter).Buffered_net/http/internal.(*FlushAfterChunkWriter).Flush_net/http/internal.(*FlushAfterChunkWriter).ReadFrom_net/http/internal.(*FlushAfterChunkWriter).Reset_net/http/internal.(*FlushAfterChunkWriter).Size_net/http/internal.(*FlushAfterChunkWriter).Write_net/http/internal.(*FlushAfterChunkWriter).WriteByte_net/http/internal.(*FlushAfterChunkWriter).WriteRune_net/http/internal.(*FlushAfterChunkWriter).WriteString_net/http/internal.(*chunkedReader).Read_net/http/internal.(*chunkedReader).beginChunk_net/http/internal.(*chunkedReader).chunkHeaderAvailable_net/http/internal.(*chunkedWriter).Close_net/http/internal.(*chunkedWriter).Write_net/http/internal..inittask_net/http/internal.ErrLineTooLong_net/http/internal.FlushAfterChunkWriter.Available_net/http/internal.FlushAfterChunkWriter.Buffered_net/http/internal.FlushAfterChunkWriter.Flush_net/http/internal.FlushAfterChunkWriter.ReadFrom_net/http/internal.FlushAfterChunkWriter.Reset_net/http/internal.FlushAfterChunkWriter.Size_net/http/internal.FlushAfterChunkWriter.Write_net/http/internal.FlushAfterChunkWriter.WriteByte_net/http/internal.FlushAfterChunkWriter.WriteRune_net/http/internal.FlushAfterChunkWriter.WriteString_net/http/internal.init_net/http/internal.parseHexUint_net/http/internal.readChunkLine_net/http/internal.removeChunkExtension_net/http/internal/ascii..inittask_net/http/internal/ascii.ToLower_net/textproto.(*MIMEHeader).Add_net/textproto.(*MIMEHeader).Del_net/textproto.(*MIMEHeader).Get_net/textproto.(*MIMEHeader).Set_net/textproto.(*MIMEHeader).Values_net/textproto.(*ProtocolError).Error_net/textproto.(*Reader).ReadMIMEHeader_net/textproto.(*Reader).readContinuedLineSlice_net/textproto.(*Reader).readLineSlice_net/textproto.(*Reader).skipSpace_net/textproto.(*Reader).upcomingHeaderNewlines_net/textproto.(*dotReader).Read_net/textproto..inittask_net/textproto.CanonicalMIMEHeaderKey_net/textproto.MIMEHeader.Add_net/textproto.MIMEHeader.Del_net/textproto.MIMEHeader.Get_net/textproto.MIMEHeader.Set_net/textproto.MIMEHeader.Values_net/textproto.ProtocolError.Error_net/textproto.canonicalMIMEHeaderKey_net/textproto.commonHeader_net/textproto.commonHeaderOnce_net/textproto.initCommonHeader_net/textproto.isTokenTable_net/textproto.mustHaveFieldNameColon_net/url.(*Error).Error_net/url.(*Error).Temporary_net/url.(*Error).Timeout_net/url.(*Error).Unwrap_net/url.(*EscapeError).Error_net/url.(*InvalidHostError).Error_net/url.(*URL).EscapedFragment_net/url.(*URL).EscapedPath_net/url.(*URL).Hostname_net/url.(*URL).IsAbs_net/url.(*URL).MarshalBinary_net/url.(*URL).Parse_net/url.(*URL).Port_net/url.(*URL).Query_net/url.(*URL).Redacted_net/url.(*URL).RequestURI_net/url.(*URL).ResolveReference_net/url.(*URL).String_net/url.(*URL).UnmarshalBinary_net/url.(*URL).setFragment_net/url.(*URL).setPath_net/url.(*Userinfo).Password_net/url.(*Userinfo).String_net/url.(*Userinfo).Username_net/url.(*Values).Add_net/url.(*Values).Del_net/url.(*Values).Encode_net/url.(*Values).Get_net/url.(*Values).Has_net/url.(*Values).Set_net/url..inittask_net/url.EscapeError.Error_net/url.InvalidHostError.Error_net/url.Parse_net/url.Values.Add_net/url.Values.Del_net/url.Values.Encode_net/url.Values.Get_net/url.Values.Has_net/url.Values.Set_net/url.escape_net/url.getScheme_net/url.parse_net/url.parseAuthority_net/url.parseHost_net/url.parseQuery_net/url.resolvePath_net/url.shouldEscape_net/url.split_net/url.splitHostPort_net/url.unescape_net/url.validEncoded_net/url.validOptionalPort_net/url.validUserinfo_notok_os.(*File).Chdir_os.(*File).Chmod_os.(*File).Chown_os.(*File).Close_os.(*File).Fd_os.(*File).Name_os.(*File).Read_os.(*File).ReadAt_os.(*File).ReadDir_os.(*File).ReadFrom_os.(*File).Readdir_os.(*File).Readdirnames_os.(*File).Seek_os.(*File).SetDeadline_os.(*File).SetReadDeadline_os.(*File).SetWriteDeadline_os.(*File).Stat_os.(*File).Sync_os.(*File).SyscallConn_os.(*File).Truncate_os.(*File).Write_os.(*File).WriteAt_os.(*File).WriteString_os.(*File).chmod_os.(*File).readdir_os.(*File).seek_os.(*File).setDeadline_os.(*File).setReadDeadline_os.(*File).setWriteDeadline_os.(*SyscallError).Error_os.(*SyscallError).Timeout_os.(*SyscallError).Unwrap_os.(*file).close_os.(*fileStat).IsDir_os.(*fileStat).ModTime_os.(*fileStat).Mode_os.(*fileStat).Name_os.(*fileStat).Size_os.(*fileStat).Sys_os.(*onlyWriter).Write_os.(*rawConn).Control_os.(*rawConn).Read_os.(*rawConn).Write_os.(*unixDirent).Info_os.(*unixDirent).IsDir_os.(*unixDirent).Name_os.(*unixDirent).Type_os..inittask_os.Args_os.CreateTemp_os.ErrClosed_os.ErrDeadlineExceeded_os.ErrExist_os.ErrInvalid_os.ErrNoDeadline_os.ErrNotExist_os.ErrPermission_os.ErrProcessDone_os.Exit_os.Getenv_os.Getwd_os.Hostname_os.Lstat_os.NewFile_os.OpenFile_os.ReadFile_os.Remove_os.Stat_os.Stderr_os.Stdin_os.Stdout_os.chmod_os.chmod.func1_os.errPatternHasSeparator_os.errWriteAtInAppendMode_os.executablePath_os.fastrand_os.fillFileStatFromSys_os.genericReadFrom_os.hostname_os.init_os.init.0_os.initCwd_os.initCwdErr_os.lstat_os.lstatNolog_os.newFile_os.newUnixDirent_os.nextRandom_os.onlyWriter.Write_os.openFileNolog_os.prefixAndSuffix_os.runtime_args_os.runtime_beforeExit_os.setStickyBit_os.sigpipe_os.statNolog_os.testingForceReadDirLstat_os.underlyingErrorIs_p256MulInternal_p256SqrInternal_p256SubInternal_p256const0_p256const1_p256one_p256ord_p256ordK0_path..inittask_path.ErrBadPattern_path.init_path/filepath..inittask_path/filepath.Base_path/filepath.ErrBadPattern_path/filepath.SkipDir_path/filepath.init_reflect.(*ChanDir).String_reflect.(*Kind).String_reflect.(*MapIter).Key_reflect.(*MapIter).Next_reflect.(*MapIter).Value_reflect.(*Method).IsExported_reflect.(*StructField).IsExported_reflect.(*StructTag).Get_reflect.(*StructTag).Lookup_reflect.(*Value).Addr_reflect.(*Value).Bool_reflect.(*Value).Bytes_reflect.(*Value).Call_reflect.(*Value).CallSlice_reflect.(*Value).CanAddr_reflect.(*Value).CanConvert_reflect.(*Value).CanInterface_reflect.(*Value).CanSet_reflect.(*Value).Cap_reflect.(*Value).Close_reflect.(*Value).Complex_reflect.(*Value).Convert_reflect.(*Value).Elem_reflect.(*Value).Field_reflect.(*Value).FieldByIndex_reflect.(*Value).FieldByName_reflect.(*Value).FieldByNameFunc_reflect.(*Value).Float_reflect.(*Value).Index_reflect.(*Value).Int_reflect.(*Value).Interface_reflect.(*Value).InterfaceData_reflect.(*Value).IsNil_reflect.(*Value).IsValid_reflect.(*Value).IsZero_reflect.(*Value).Kind_reflect.(*Value).Len_reflect.(*Value).MapIndex_reflect.(*Value).MapKeys_reflect.(*Value).MapRange_reflect.(*Value).Method_reflect.(*Value).MethodByName_reflect.(*Value).NumField_reflect.(*Value).NumMethod_reflect.(*Value).OverflowComplex_reflect.(*Value).OverflowFloat_reflect.(*Value).OverflowInt_reflect.(*Value).OverflowUint_reflect.(*Value).Pointer_reflect.(*Value).Recv_reflect.(*Value).Send_reflect.(*Value).Set_reflect.(*Value).SetBool_reflect.(*Value).SetBytes_reflect.(*Value).SetCap_reflect.(*Value).SetComplex_reflect.(*Value).SetFloat_reflect.(*Value).SetInt_reflect.(*Value).SetLen_reflect.(*Value).SetMapIndex_reflect.(*Value).SetPointer_reflect.(*Value).SetString_reflect.(*Value).SetUint_reflect.(*Value).Slice_reflect.(*Value).Slice3_reflect.(*Value).String_reflect.(*Value).TryRecv_reflect.(*Value).TrySend_reflect.(*Value).Type_reflect.(*Value).Uint_reflect.(*Value).UnsafeAddr_reflect.(*ValueError).Error_reflect.(*abiSeq).addArg_reflect.(*abiSeq).addRcvr_reflect.(*abiSeq).assignIntN_reflect.(*abiSeq).regAssign_reflect.(*funcType).Align_reflect.(*funcType).AssignableTo_reflect.(*funcType).Bits_reflect.(*funcType).ChanDir_reflect.(*funcType).Comparable_reflect.(*funcType).ConvertibleTo_reflect.(*funcType).Elem_reflect.(*funcType).Field_reflect.(*funcType).FieldAlign_reflect.(*funcType).FieldByIndex_reflect.(*funcType).FieldByName_reflect.(*funcType).FieldByNameFunc_reflect.(*funcType).Implements_reflect.(*funcType).In_reflect.(*funcType).IsVariadic_reflect.(*funcType).Key_reflect.(*funcType).Kind_reflect.(*funcType).Len_reflect.(*funcType).Method_reflect.(*funcType).MethodByName_reflect.(*funcType).Name_reflect.(*funcType).NumField_reflect.(*funcType).NumIn_reflect.(*funcType).NumMethod_reflect.(*funcType).NumOut_reflect.(*funcType).Out_reflect.(*funcType).PkgPath_reflect.(*funcType).Size_reflect.(*funcType).String_reflect.(*funcType).common_reflect.(*interfaceType).Method_reflect.(*interfaceType).MethodByName_reflect.(*ptrType).Align_reflect.(*ptrType).AssignableTo_reflect.(*ptrType).Bits_reflect.(*ptrType).ChanDir_reflect.(*ptrType).Comparable_reflect.(*ptrType).ConvertibleTo_reflect.(*ptrType).Elem_reflect.(*ptrType).Field_reflect.(*ptrType).FieldAlign_reflect.(*ptrType).FieldByIndex_reflect.(*ptrType).FieldByName_reflect.(*ptrType).FieldByNameFunc_reflect.(*ptrType).Implements_reflect.(*ptrType).In_reflect.(*ptrType).IsVariadic_reflect.(*ptrType).Key_reflect.(*ptrType).Kind_reflect.(*ptrType).Len_reflect.(*ptrType).Method_reflect.(*ptrType).MethodByName_reflect.(*ptrType).Name_reflect.(*ptrType).NumField_reflect.(*ptrType).NumIn_reflect.(*ptrType).NumMethod_reflect.(*ptrType).NumOut_reflect.(*ptrType).Out_reflect.(*ptrType).PkgPath_reflect.(*ptrType).Size_reflect.(*ptrType).String_reflect.(*ptrType).common_reflect.(*rtype).Align_reflect.(*rtype).AssignableTo_reflect.(*rtype).Bits_reflect.(*rtype).ChanDir_reflect.(*rtype).Comparable_reflect.(*rtype).ConvertibleTo_reflect.(*rtype).Elem_reflect.(*rtype).Field_reflect.(*rtype).FieldAlign_reflect.(*rtype).FieldByIndex_reflect.(*rtype).FieldByName_reflect.(*rtype).FieldByNameFunc_reflect.(*rtype).Implements_reflect.(*rtype).In_reflect.(*rtype).IsVariadic_reflect.(*rtype).Key_reflect.(*rtype).Kind_reflect.(*rtype).Len_reflect.(*rtype).Method_reflect.(*rtype).MethodByName_reflect.(*rtype).Name_reflect.(*rtype).NumField_reflect.(*rtype).NumIn_reflect.(*rtype).NumMethod_reflect.(*rtype).NumOut_reflect.(*rtype).Out_reflect.(*rtype).PkgPath_reflect.(*rtype).Size_reflect.(*rtype).String_reflect.(*rtype).common_reflect.(*rtype).exportedMethods_reflect.(*rtype).ptrTo_reflect.(*rtype).uncommon_reflect.(*structType).Field_reflect.(*structType).FieldByIndex_reflect.(*structType).FieldByName_reflect.(*structType).FieldByName.func1_reflect.(*structType).FieldByNameFunc_reflect..inittask_reflect.ChanDir.String_reflect.Copy_reflect.DeepEqual_reflect.FuncOf_reflect.FuncOf.func1_reflect.Kind.String_reflect.MakeMapWithSize_reflect.MakeSlice_reflect.Method.IsExported_reflect.New_reflect.StructField.IsExported_reflect.StructTag.Get_reflect.StructTag.Lookup_reflect.Value.Addr_reflect.Value.Bool_reflect.Value.Bytes_reflect.Value.Call_reflect.Value.CallSlice_reflect.Value.CanAddr_reflect.Value.CanConvert_reflect.Value.CanInterface_reflect.Value.CanSet_reflect.Value.Cap_reflect.Value.Close_reflect.Value.Complex_reflect.Value.Convert_reflect.Value.Elem_reflect.Value.Field_reflect.Value.FieldByIndex_reflect.Value.FieldByName_reflect.Value.FieldByNameFunc_reflect.Value.Float_reflect.Value.Index_reflect.Value.Int_reflect.Value.Interface_reflect.Value.InterfaceData_reflect.Value.IsNil_reflect.Value.IsValid_reflect.Value.IsZero_reflect.Value.Kind_reflect.Value.Len_reflect.Value.MapIndex_reflect.Value.MapKeys_reflect.Value.MapRange_reflect.Value.Method_reflect.Value.MethodByName_reflect.Value.NumField_reflect.Value.NumMethod_reflect.Value.OverflowComplex_reflect.Value.OverflowFloat_reflect.Value.OverflowInt_reflect.Value.OverflowUint_reflect.Value.Pointer_reflect.Value.Recv_reflect.Value.Send_reflect.Value.Set_reflect.Value.SetBool_reflect.Value.SetBytes_reflect.Value.SetCap_reflect.Value.SetComplex_reflect.Value.SetFloat_reflect.Value.SetInt_reflect.Value.SetLen_reflect.Value.SetMapIndex_reflect.Value.SetPointer_reflect.Value.SetString_reflect.Value.SetUint_reflect.Value.Slice_reflect.Value.Slice3_reflect.Value.String_reflect.Value.TryRecv_reflect.Value.TrySend_reflect.Value.Type_reflect.Value.Uint_reflect.Value.UnsafeAddr_reflect.Value.assignTo_reflect.Value.call_reflect.Value.recv_reflect.Value.runes_reflect.Value.send_reflect.Value.setRunes_reflect.Zero_reflect.addReflectOff_reflect.addTypeBits_reflect.callGC_reflect.callMethod_reflect.chancap_reflect.chanclose_reflect.chanlen_reflect.chanrecv_reflect.chansend_reflect.convertOp_reflect.copyVal_reflect.cvtBytesString_reflect.cvtComplex_reflect.cvtDirect_reflect.cvtFloat_reflect.cvtFloatInt_reflect.cvtFloatUint_reflect.cvtI2I_reflect.cvtInt_reflect.cvtIntFloat_reflect.cvtIntString_reflect.cvtRunesString_reflect.cvtSliceArrayPtr_reflect.cvtStringBytes_reflect.cvtStringRunes_reflect.cvtT2I_reflect.cvtUint_reflect.cvtUintFloat_reflect.cvtUintString_reflect.deepValueEqual_reflect.deepValueEqual.func1_reflect.directlyAssignable_reflect.dummy_reflect.flag.mustBeAssignableSlow_reflect.flag.mustBeExportedSlow_reflect.floatArgRegs_reflect.floatRegSize_reflect.fnv1_reflect.funcLayout_reflect.funcLayout.func1_reflect.funcLookupCache_reflect.funcStr_reflect.haveIdenticalType_reflect.haveIdenticalUnderlyingType_reflect.ifaceE2I_reflect.implements_reflect.init_reflect.intArgRegs_reflect.kindNames_reflect.layoutCache_reflect.makeBytes_reflect.makeComplex_reflect.makeFloat_reflect.makeFloat32_reflect.makeInt_reflect.makeMethodValue_reflect.makeRunes_reflect.makeString_reflect.makemap_reflect.mapaccess_reflect.mapassign_reflect.mapdelete_reflect.mapiterelem_reflect.mapiterinit_reflect.mapiterkey_reflect.mapiternext_reflect.maplen_reflect.memmove_reflect.methodName_reflect.methodNameSkip_reflect.methodReceiver_reflect.methodValueCall_reflect.methodValueCall.args_stackmap_reflect.name.name_reflect.name.pkgPath_reflect.name.tag_reflect.newAbiDesc_reflect.newName_reflect.packEface_reflect.ptrMap_reflect.resolveNameOff_reflect.resolveTextOff_reflect.resolveTypeOff_reflect.specialChannelAssignability_reflect.typedmemclr_reflect.typedmemclrpartial_reflect.typedmemmove_reflect.typedslicecopy_reflect.typelinks_reflect.typesByString_reflect.typesMustMatch_reflect.uint8Type_reflect.unsafe_New_reflect.unsafe_NewArray_reflect.valueInterface_regexp.(*Regexp).Copy_regexp.(*Regexp).Expand_regexp.(*Regexp).ExpandString_regexp.(*Regexp).Find_regexp.(*Regexp).FindAll_regexp.(*Regexp).FindAll.func1_regexp.(*Regexp).FindAllIndex_regexp.(*Regexp).FindAllIndex.func1_regexp.(*Regexp).FindAllString_regexp.(*Regexp).FindAllString.func1_regexp.(*Regexp).FindAllStringIndex_regexp.(*Regexp).FindAllStringIndex.func1_regexp.(*Regexp).FindAllStringSubmatch_regexp.(*Regexp).FindAllStringSubmatch.func1_regexp.(*Regexp).FindAllStringSubmatchIndex_regexp.(*Regexp).FindAllStringSubmatchIndex.func1_regexp.(*Regexp).FindAllSubmatch_regexp.(*Regexp).FindAllSubmatch.func1_regexp.(*Regexp).FindAllSubmatchIndex_regexp.(*Regexp).FindAllSubmatchIndex.func1_regexp.(*Regexp).FindIndex_regexp.(*Regexp).FindReaderIndex_regexp.(*Regexp).FindReaderSubmatchIndex_regexp.(*Regexp).FindString_regexp.(*Regexp).FindStringIndex_regexp.(*Regexp).FindStringSubmatch_regexp.(*Regexp).FindStringSubmatchIndex_regexp.(*Regexp).FindSubmatch_regexp.(*Regexp).FindSubmatchIndex_regexp.(*Regexp).LiteralPrefix_regexp.(*Regexp).Longest_regexp.(*Regexp).Match_regexp.(*Regexp).MatchReader_regexp.(*Regexp).MatchString_regexp.(*Regexp).NumSubexp_regexp.(*Regexp).ReplaceAll_regexp.(*Regexp).ReplaceAll.func1_regexp.(*Regexp).ReplaceAllFunc_regexp.(*Regexp).ReplaceAllFunc.func1_regexp.(*Regexp).ReplaceAllLiteral_regexp.(*Regexp).ReplaceAllLiteral.func1_regexp.(*Regexp).ReplaceAllLiteralString_regexp.(*Regexp).ReplaceAllLiteralString.func1_regexp.(*Regexp).ReplaceAllString_regexp.(*Regexp).ReplaceAllString.func1_regexp.(*Regexp).ReplaceAllStringFunc_regexp.(*Regexp).ReplaceAllStringFunc.func1_regexp.(*Regexp).Split_regexp.(*Regexp).String_regexp.(*Regexp).SubexpIndex_regexp.(*Regexp).SubexpNames_regexp.(*Regexp).allMatches_regexp.(*Regexp).backtrack_regexp.(*Regexp).doExecute_regexp.(*Regexp).doOnePass_regexp.(*Regexp).expand_regexp.(*Regexp).get_regexp.(*Regexp).put_regexp.(*Regexp).replaceAll_regexp.(*Regexp).tryBacktrack_regexp.(*bitState).reset_regexp.(*inputBytes).canCheckPrefix_regexp.(*inputBytes).context_regexp.(*inputBytes).hasPrefix_regexp.(*inputBytes).index_regexp.(*inputBytes).step_regexp.(*inputReader).canCheckPrefix_regexp.(*inputReader).context_regexp.(*inputReader).hasPrefix_regexp.(*inputReader).index_regexp.(*inputReader).step_regexp.(*inputString).canCheckPrefix_regexp.(*inputString).context_regexp.(*inputString).hasPrefix_regexp.(*inputString).index_regexp.(*inputString).step_regexp.(*machine).add_regexp.(*machine).clear_regexp.(*machine).init_regexp.(*machine).match_regexp.(*machine).step_regexp.(*onePassInst).MatchEmptyWidth_regexp.(*onePassInst).MatchRune_regexp.(*onePassInst).MatchRunePos_regexp.(*onePassInst).String_regexp.(*runeSlice).Len_regexp.(*runeSlice).Less_regexp.(*runeSlice).Swap_regexp..inittask_regexp.MustCompile_regexp.anyRune_regexp.anyRuneNotNL_regexp.arrayNoInts_regexp.bitStatePool_regexp.cleanupOnePass_regexp.compile_regexp.compileOnePass_regexp.extract_regexp.freeBitState_regexp.freeOnePassMachine_regexp.init.0_regexp.lazyFlag.match_regexp.makeOnePass_regexp.makeOnePass.func1_regexp.matchPool_regexp.matchSize_regexp.mergeRuneSets_regexp.mergeRuneSets.func1_regexp.minInputLen_regexp.noNext_regexp.noRune_regexp.onePassCopy_regexp.onePassNext_regexp.onePassPool_regexp.onePassPrefix_regexp.quote_regexp.runeSlice.Len_regexp.runeSlice.Less_regexp.runeSlice.Swap_regexp.specialBytes_regexp/syntax.(*Error).Error_regexp/syntax.(*ErrorCode).String_regexp/syntax.(*Inst).MatchEmptyWidth_regexp/syntax.(*Inst).MatchRune_regexp/syntax.(*Inst).MatchRunePos_regexp/syntax.(*Inst).String_regexp/syntax.(*InstOp).String_regexp/syntax.(*Prog).Prefix_regexp/syntax.(*Prog).StartCond_regexp/syntax.(*Prog).String_regexp/syntax.(*Regexp).CapNames_regexp/syntax.(*Regexp).Equal_regexp/syntax.(*Regexp).MaxCap_regexp/syntax.(*Regexp).Simplify_regexp/syntax.(*Regexp).capNames_regexp/syntax.(*compiler).alt_regexp/syntax.(*compiler).compile_regexp/syntax.(*compiler).loop_regexp/syntax.(*compiler).quest_regexp/syntax.(*compiler).rune_regexp/syntax.(*compiler).star_regexp/syntax.(*parser).alternate_regexp/syntax.(*parser).appendGroup_regexp/syntax.(*parser).collapse_regexp/syntax.(*parser).concat_regexp/syntax.(*parser).factor_regexp/syntax.(*parser).literal_regexp/syntax.(*parser).maybeConcat_regexp/syntax.(*parser).op_regexp/syntax.(*parser).parseClass_regexp/syntax.(*parser).parseClassChar_regexp/syntax.(*parser).parseEscape_regexp/syntax.(*parser).parseInt_regexp/syntax.(*parser).parseNamedClass_regexp/syntax.(*parser).parsePerlClassEscape_regexp/syntax.(*parser).parsePerlFlags_regexp/syntax.(*parser).parseRepeat_regexp/syntax.(*parser).parseRightParen_regexp/syntax.(*parser).parseUnicodeClass_regexp/syntax.(*parser).parseVerticalBar_regexp/syntax.(*parser).push_regexp/syntax.(*parser).removeLeadingRegexp_regexp/syntax.(*parser).removeLeadingString_regexp/syntax.(*parser).repeat_regexp/syntax.(*parser).swapVerticalBar_regexp/syntax.(*ranges).Len_regexp/syntax.(*ranges).Less_regexp/syntax.(*ranges).Swap_regexp/syntax..inittask_regexp/syntax.Compile_regexp/syntax.ErrorCode.String_regexp/syntax.InstOp.String_regexp/syntax.Parse_regexp/syntax.anyRune_regexp/syntax.anyRuneNotNL_regexp/syntax.anyTable_regexp/syntax.appendClass_regexp/syntax.appendFoldedClass_regexp/syntax.appendFoldedRange_regexp/syntax.appendLiteral_regexp/syntax.appendNegatedClass_regexp/syntax.appendNegatedTable_regexp/syntax.appendRange_regexp/syntax.appendTable_regexp/syntax.bw_regexp/syntax.checkUTF8_regexp/syntax.cleanAlt_regexp/syntax.cleanClass_regexp/syntax.code1_regexp/syntax.code10_regexp/syntax.code11_regexp/syntax.code12_regexp/syntax.code13_regexp/syntax.code14_regexp/syntax.code15_regexp/syntax.code16_regexp/syntax.code17_regexp/syntax.code2_regexp/syntax.code3_regexp/syntax.code4_regexp/syntax.code5_regexp/syntax.code6_regexp/syntax.code7_regexp/syntax.code8_regexp/syntax.code9_regexp/syntax.dumpInst_regexp/syntax.dumpProg_regexp/syntax.init_regexp/syntax.instOpNames_regexp/syntax.isValidCaptureName_regexp/syntax.literalRegexp_regexp/syntax.mergeCharClass_regexp/syntax.minFoldRune_regexp/syntax.negateClass_regexp/syntax.nextRune_regexp/syntax.perlGroup_regexp/syntax.posixGroup_regexp/syntax.ranges.Len_regexp/syntax.ranges.Less_regexp/syntax.ranges.Swap_regexp/syntax.repeatIsValid_rotInvSRows_runtime.(*Frames).Next_runtime.(*Func).Name_runtime.(*TypeAssertionError).Error_runtime.(*TypeAssertionError).RuntimeError_runtime.(*_type).pkgpath_runtime.(*_type).string_runtime.(*_type).textOff_runtime.(*_type).uncommon_runtime.(*addrRanges).add_runtime.(*addrRanges).cloneInto_runtime.(*addrRanges).findAddrGreaterEqual_runtime.(*addrRanges).findSucc_runtime.(*addrRanges).init_runtime.(*addrRanges).removeGreaterEqual_runtime.(*addrRanges).removeLast_runtime.(*boundsError).Error_runtime.(*boundsError).RuntimeError_runtime.(*bucket).bp_runtime.(*bucket).mp_runtime.(*consistentHeapStats).acquire_runtime.(*consistentHeapStats).release_runtime.(*cpuProfile).add_runtime.(*cpuProfile).addExtra_runtime.(*cpuProfile).addNonGo_runtime.(*errorAddressString).Addr_runtime.(*errorAddressString).Error_runtime.(*errorAddressString).RuntimeError_runtime.(*errorString).Error_runtime.(*errorString).RuntimeError_runtime.(*fixalloc).alloc_runtime.(*gcControllerState).commit_runtime.(*gcControllerState).endCycle_runtime.(*gcControllerState).enlistWorker_runtime.(*gcControllerState).findRunnableGCWorker_runtime.(*gcControllerState).init_runtime.(*gcControllerState).revise_runtime.(*gcControllerState).setGCPercent_runtime.(*gcControllerState).startCycle_runtime.(*gcWork).balance_runtime.(*gcWork).dispose_runtime.(*gcWork).init_runtime.(*gcWork).put_runtime.(*gcWork).putBatch_runtime.(*gcWork).tryGet_runtime.(*headTailIndex).incTail_runtime.(*hmap).incrnoverflow_runtime.(*hmap).newoverflow_runtime.(*itab).init_runtime.(*itabTableType).add_runtime.(*itabTableType).add-fm_runtime.(*itabTableType).find_runtime.(*lfstack).push_runtime.(*linearAlloc).alloc_runtime.(*lockRank).String_runtime.(*mSpanList).insert_runtime.(*mSpanList).remove_runtime.(*mcache).allocLarge_runtime.(*mcache).nextFree_runtime.(*mcache).prepareForSweep_runtime.(*mcache).refill_runtime.(*mcache).releaseAll_runtime.(*mcentral).cacheSpan_runtime.(*mcentral).grow_runtime.(*mcentral).uncacheSpan_runtime.(*mheap).alloc_runtime.(*mheap).alloc.func1_runtime.(*mheap).allocMSpanLocked_runtime.(*mheap).allocManual_runtime.(*mheap).allocNeedsZero_runtime.(*mheap).allocSpan_runtime.(*mheap).freeManual_runtime.(*mheap).freeSpan_runtime.(*mheap).freeSpan.func1_runtime.(*mheap).freeSpanLocked_runtime.(*mheap).grow_runtime.(*mheap).init_runtime.(*mheap).nextSpanForSweep_runtime.(*mheap).reclaim_runtime.(*mheap).reclaimChunk_runtime.(*mheap).setSpans_runtime.(*mheap).sysAlloc_runtime.(*mspan).ensureSwept_runtime.(*mspan).nextFreeIndex_runtime.(*mspan).refillAllocCache_runtime.(*mspan).reportZombies_runtime.(*p).destroy_runtime.(*p).destroy.func1_runtime.(*p).init_runtime.(*pageAlloc).alloc_runtime.(*pageAlloc).allocRange_runtime.(*pageAlloc).allocToCache_runtime.(*pageAlloc).find_runtime.(*pageAlloc).find.func1_runtime.(*pageAlloc).findMappedAddr_runtime.(*pageAlloc).free_runtime.(*pageAlloc).grow_runtime.(*pageAlloc).init_runtime.(*pageAlloc).scavenge_runtime.(*pageAlloc).scavengeOne_runtime.(*pageAlloc).scavengeOne.func3_runtime.(*pageAlloc).scavengeRangeLocked_runtime.(*pageAlloc).scavengeReserve_runtime.(*pageAlloc).scavengeStartGen_runtime.(*pageAlloc).scavengeUnreserve_runtime.(*pageAlloc).sysGrow_runtime.(*pageAlloc).sysGrow.func1_runtime.(*pageAlloc).sysGrow.func2_runtime.(*pageAlloc).sysGrow.func3_runtime.(*pageAlloc).sysInit_runtime.(*pageAlloc).update_runtime.(*pageBits).clearAll_runtime.(*pageBits).clearRange_runtime.(*pageBits).popcntRange_runtime.(*pageBits).setAll_runtime.(*pageBits).setRange_runtime.(*pageCache).alloc_runtime.(*pageCache).allocN_runtime.(*pageCache).flush_runtime.(*pallocBits).find_runtime.(*pallocBits).findLargeN_runtime.(*pallocBits).findSmallN_runtime.(*pallocBits).summarize_runtime.(*pallocData).allocAll_runtime.(*pallocData).allocRange_runtime.(*pallocData).findScavengeCandidate_runtime.(*pallocData).hasScavengeCandidate_runtime.(*plainError).Error_runtime.(*plainError).RuntimeError_runtime.(*pollCache).alloc_runtime.(*pollCache).free_runtime.(*profBuf).canWriteRecord_runtime.(*profBuf).canWriteTwoRecords_runtime.(*profBuf).wakeupExtra_runtime.(*profBuf).write_runtime.(*rwmutex).rlock_runtime.(*rwmutex).rlock.func1_runtime.(*rwmutex).runlock_runtime.(*semaRoot).dequeue_runtime.(*semaRoot).queue_runtime.(*semaRoot).rotateLeft_runtime.(*semaRoot).rotateRight_runtime.(*sigctxt).preparePanic_runtime.(*sigctxt).pushCall_runtime.(*spanSet).pop_runtime.(*spanSet).push_runtime.(*spanSet).reset_runtime.(*spanSetBlockAlloc).alloc_runtime.(*stackScanState).addObject_runtime.(*stackScanState).getPtr_runtime.(*stackScanState).putPtr_runtime.(*sweepLocked).sweep_runtime.(*sysMemStat).add_runtime.(*traceAlloc).alloc_runtime.(*traceStackTable).find_runtime.(*traceStackTable).newStack_runtime.(*traceStackTable).put_runtime.(*waitReason).String_runtime.(*wbBuf).reset_runtime.(*workbuf).checkempty_runtime.(*workbuf).checknonempty_runtime..gobytes.2_runtime..gobytes.4_runtime..gobytes.5_runtime..inittask_runtime.Caller_runtime.FuncForPC_runtime.GC_runtime.GOMAXPROCS_runtime.Gosched_runtime.MemProfileRate_runtime.SetFinalizer_runtime.SetFinalizer.func1_runtime.SetFinalizer.func2_runtime._ExternalCode_runtime._GC_runtime._LostExternalCode_runtime._LostSIGPROFDuringAtomic64_runtime._System_runtime._cgo_panic_internal_runtime._cgo_setenv_runtime._cgo_unsetenv_runtime.abiRegArgsEface_runtime.abiRegArgsType_runtime.abort_runtime.acquireSudog_runtime.acquirep_runtime.addAdjustedTimers_runtime.addOneOpenDeferFrame_runtime.addOneOpenDeferFrame.func1_runtime.addOneOpenDeferFrame.func1.1_runtime.addfinalizer_runtime.addrRange.removeGreaterEqual_runtime.addrRange.subtract_runtime.addspecial_runtime.addtimer_runtime.adjustSignalStack_runtime.adjustdefers_runtime.adjustframe_runtime.adjustpointers_runtime.adjusttimers_runtime.advanceEvacuationMark_runtime.aeskeysched_runtime.alginit_runtime.allfin_runtime.allgadd_runtime.allglen_runtime.allglock_runtime.allgptr_runtime.allgs_runtime.allm_runtime.allocm_runtime.allocm.func1_runtime.allocmcache_runtime.allocmcache.func1_runtime.allp_runtime.allpLock_runtime.argc_runtime.args_runtime.argslice_runtime.argv_runtime.arm64HasATOMICS_runtime.arm64UseAlignedLoads_runtime.armHasVFPv4_runtime.asmcgocall_runtime.asmcgocall.args_stackmap_runtime.asmcgocall_no_g_runtime.asmcgocall_no_g.args_stackmap_runtime.asminit_runtime.assertE2I_runtime.assertE2I2_runtime.assertI2I_runtime.assertI2I2_runtime.asyncPreempt_runtime.asyncPreempt2_runtime.asyncPreemptStack_runtime.atoi_runtime.atomicstorep_runtime.atomicwb_runtime.badPointer_runtime.badTimer_runtime.badctxt_runtime.badginsignalMsg_runtime.badmcall_runtime.badmcall2_runtime.badmorestackg0_runtime.badmorestackg0Msg_runtime.badmorestackgsignal_runtime.badmorestackgsignalMsg_runtime.badreflectcall_runtime.badsignal_runtime.badsystemstack_runtime.badsystemstackMsg_runtime.badunlockosthread_runtime.bbuckets_runtime.bgscavenge_runtime.bgscavenge.func1_runtime.bgscavenge.func2_runtime.bgsweep_runtime.binarySearchTree_runtime.blockevent_runtime.blockprofilerate_runtime.boundsError.Error_runtime.boundsError.RuntimeError_runtime.boundsErrorFmts_runtime.boundsNegErrorFmts_runtime.bss_runtime.bucketmem_runtime.buckhash_runtime.buildVersion_runtime.buildVersion.str_runtime.bulkBarrierBitmap_runtime.bulkBarrierPreWrite_runtime.bulkBarrierPreWriteSrcOnly_runtime.c128equal_runtime.c128hash_runtime.c64equal_runtime.c64hash_runtime.call1024_runtime.call1024.args_stackmap_runtime.call1048576_runtime.call1048576.args_stackmap_runtime.call1073741824_runtime.call1073741824.args_stackmap_runtime.call128_runtime.call128.args_stackmap_runtime.call131072_runtime.call131072.args_stackmap_runtime.call134217728_runtime.call134217728.args_stackmap_runtime.call16_runtime.call16.args_stackmap_runtime.call16384_runtime.call16384.args_stackmap_runtime.call16777216_runtime.call16777216.args_stackmap_runtime.call2048_runtime.call2048.args_stackmap_runtime.call2097152_runtime.call2097152.args_stackmap_runtime.call256_runtime.call256.args_stackmap_runtime.call262144_runtime.call262144.args_stackmap_runtime.call268435456_runtime.call268435456.args_stackmap_runtime.call32_runtime.call32.args_stackmap_runtime.call32768_runtime.call32768.args_stackmap_runtime.call33554432_runtime.call33554432.args_stackmap_runtime.call4096_runtime.call4096.args_stackmap_runtime.call4194304_runtime.call4194304.args_stackmap_runtime.call512_runtime.call512.args_stackmap_runtime.call524288_runtime.call524288.args_stackmap_runtime.call536870912_runtime.call536870912.args_stackmap_runtime.call64_runtime.call64.args_stackmap_runtime.call65536_runtime.call65536.args_stackmap_runtime.call67108864_runtime.call67108864.args_stackmap_runtime.call8192_runtime.call8192.args_stackmap_runtime.call8388608_runtime.call8388608.args_stackmap_runtime.callCgoSymbolizer_runtime.callers_runtime.callers.func1_runtime.casGFromPreempted_runtime.casGToPreemptScan_runtime.casfrom_Gscanstatus_runtime.casgstatus_runtime.casgstatus.func1_runtime.castogscanstatus_runtime.cgoAlwaysFalse_runtime.cgoCheckArg_runtime.cgoCheckBits_runtime.cgoCheckMemmove_runtime.cgoCheckPointer_runtime.cgoCheckSliceCopy_runtime.cgoCheckTypedBlock_runtime.cgoCheckTypedBlock.func1_runtime.cgoCheckUnknownPointer_runtime.cgoCheckUsingType_runtime.cgoCheckWriteBarrier_runtime.cgoCheckWriteBarrier.func1_runtime.cgoContextPCs_runtime.cgoHasExtraM_runtime.cgoIsGoPointer_runtime.cgoSigtramp_runtime.cgoSymbolizer_runtime.cgoTraceback_runtime.cgoUse_runtime.cgo_yield_runtime.cgocall_runtime.cgocallback_runtime.cgocallback.args_stackmap_runtime.cgocallbackg_runtime.cgocallbackg1_runtime.cgocallbackg1.func1_runtime.chanparkcommit_runtime.chanrecv_runtime.chanrecv.func1_runtime.chanrecv1_runtime.chanrecv2_runtime.chanrecvpc_runtime.chansend_runtime.chansend.func1_runtime.chansend1_runtime.chansendpc_runtime.check_runtime.checkASM_runtime.checkASM.args_stackmap_runtime.checkIdleGCNoP_runtime.checkRunqsNoP_runtime.checkTimers_runtime.checkTimersNoP_runtime.checkdead_runtime.checkdead.func1_runtime.checkmcount_runtime.class_to_allocnpages_runtime.class_to_divmagic_runtime.class_to_size_runtime.cleantimers_runtime.clearDeletedTimers_runtime.clearpools_runtime.close_trampoline_runtime.closechan_runtime.closefd_runtime.cmpstring_runtime.concatstring2_runtime.concatstring3_runtime.concatstring4_runtime.concatstring5_runtime.concatstrings_runtime.convI2I_runtime.convT16_runtime.convT2E_runtime.convT2Enoptr_runtime.convT2I_runtime.convT32_runtime.convT64_runtime.convTslice_runtime.convTstring_runtime.copystack_runtime.cpuinit_runtime.cpuprof_runtime.crash_runtime.crashing_runtime.createfing_runtime.data_runtime.dbgvars_runtime.deadlock_runtime.debug_runtime.debuglock_runtime.decoderune_runtime.deductSweepCredit_runtime.defaultGOROOT_runtime.defaultGOROOT.str_runtime.deferType_runtime.deferproc_runtime.deferprocStack_runtime.deferreturn_runtime.deltimer_runtime.didothers_runtime.dieFromSignal_runtime.disableMemoryProfiling_runtime.divideError_runtime.doInit_runtime.doSigPreempt_runtime.doaddtimer_runtime.dodeltimer_runtime.dodeltimer0_runtime.dopanic_m_runtime.dropm_runtime.dumpregs_runtime.earlycgocallback_runtime.ebss_runtime.edata_runtime.efaceeq_runtime.egcbss_runtime.egcdata_runtime.emptymspan_runtime.encoderune_runtime.end_runtime.endCheckmarks_runtime.enoptrbss_runtime.enoptrdata_runtime.entersyscall_runtime.entersyscall_gcwait_runtime.entersyscall_sysmon_runtime.entersyscallblock_runtime.entersyscallblock.func1_runtime.entersyscallblock.func2_runtime.entersyscallblock_handoff_runtime.envs_runtime.epclntab_runtime.eqslice_runtime.erodata_runtime.errorAddressString.Addr_runtime.errorAddressString.Error_runtime.errorAddressString.RuntimeError_runtime.errorString.Error_runtime.errorString.RuntimeError_runtime.esymtab_runtime.etext_runtime.etypes_runtime.evacuate_runtime.evacuate_fast32_runtime.evacuate_fast64_runtime.evacuate_faststr_runtime.execLock_runtime.execute_runtime.exit_runtime.exit_trampoline_runtime.exitsyscall_runtime.exitsyscall0_runtime.exitsyscallfast_runtime.exitsyscallfast.func1_runtime.exitsyscallfast_pidle_runtime.exitsyscallfast_reacquired_runtime.exitsyscallfast_reacquired.func1_runtime.expandCgoFrames_runtime.extendRandom_runtime.extraMCount_runtime.extraMWaiters_runtime.extram_runtime.f32equal_runtime.f32hash_runtime.f64equal_runtime.f64hash_runtime.failthreadcreate_runtime.faketime_runtime.fastexprand_runtime.fastlog2Table_runtime.fastrand_runtime.fastrandseed_runtime.fatalpanic_runtime.fatalpanic.func1_runtime.fatalpanic.func2_runtime.fatalthrow_runtime.fatalthrow.func1_runtime.fcntl_runtime.fcntl_trampoline_runtime.fillAligned_runtime.finalizer1_runtime.finc_runtime.findObject_runtime.findfunc_runtime.findfunctab_runtime.findnull_runtime.findrunnable_runtime.fing_runtime.fingCreate_runtime.fingRunning_runtime.fingwait_runtime.fingwake_runtime.finishsweep_m_runtime.finlock_runtime.finptrmask_runtime.finq_runtime.firstmoduledata_runtime.floatError_runtime.fmtNSAsMS_runtime.forEachG_runtime.forEachGRace_runtime.forEachP_runtime.forcegc_runtime.forcegchelper_runtime.forcegcperiod_runtime.freeSomeWbufs_runtime.freeSomeWbufs.func1_runtime.freeSpecial_runtime.freeStackSpans_runtime.freedefer_runtime.freedefer.func1_runtime.freedeferfn_runtime.freedeferpanic_runtime.freemcache_runtime.freemcache.func1_runtime.freezetheworld_runtime.freezing_runtime.funcMaxSPDelta_runtime.funcfile_runtime.funcline_runtime.funcline1_runtime.funcname_runtime.funcnameFromNameoff_runtime.funcpkgpath_runtime.funcspdelta_runtime.fwdSig_runtime.g0_runtime.g0_pthread_key_create_runtime.g0_pthread_setspecific_runtime.gStatusStrings_runtime.gcAssistAlloc_runtime.gcAssistAlloc.func1_runtime.gcAssistAlloc1_runtime.gcBgMarkStartWorkers_runtime.gcBgMarkWorker_runtime.gcBgMarkWorker.func1_runtime.gcBgMarkWorker.func2_runtime.gcBgMarkWorkerCount_runtime.gcBgMarkWorkerPool_runtime.gcBitsArenas_runtime.gcBlackenEnabled_runtime.gcController_runtime.gcDrain_runtime.gcDrainN_runtime.gcDumpObject_runtime.gcFlushBgCredit_runtime.gcMark_runtime.gcMarkDone_runtime.gcMarkDone.func1_runtime.gcMarkDone.func1.1_runtime.gcMarkDone.func2_runtime.gcMarkDone.func3_runtime.gcMarkDoneFlushed_runtime.gcMarkRootCheck_runtime.gcMarkRootCheck.func1_runtime.gcMarkRootPrepare_runtime.gcMarkTermination_runtime.gcMarkTermination.func1_runtime.gcMarkTermination.func2_runtime.gcMarkTermination.func3_runtime.gcMarkTermination.func4_runtime.gcMarkTermination.func4.1_runtime.gcMarkTinyAllocs_runtime.gcPaceScavenger_runtime.gcParkAssist_runtime.gcResetMarkState_runtime.gcResetMarkState.func1_runtime.gcStart_runtime.gcStart.func1_runtime.gcStart.func2_runtime.gcSweep_runtime.gcWaitOnMark_runtime.gcWakeAllAssists_runtime.gcWriteBarrier_runtime.gcallers_runtime.gcbits.*_runtime.gcbss_runtime.gcdata_runtime.gcenable_runtime.gcenable_setup_runtime.gcinit_runtime.gcmarknewobject_runtime.gcphase_runtime.gcsema_runtime.gcstopm_runtime.gentraceback_runtime.getArgInfo_runtime.getPageSize_runtime.getRandomData_runtime.getStackMap_runtime.getargp_runtime.getempty_runtime.getempty.func1_runtime.getitab_runtime.getncpu_runtime.gfget_runtime.gfget.func1_runtime.gfpurge_runtime.gfput_runtime.globalAlloc_runtime.globrunqget_runtime.goPanicIndex_runtime.goPanicIndexU_runtime.goPanicSlice3Acap_runtime.goPanicSlice3Alen_runtime.goPanicSlice3AlenU_runtime.goPanicSlice3B_runtime.goPanicSlice3C_runtime.goPanicSliceAcap_runtime.goPanicSliceAcapU_runtime.goPanicSliceAlen_runtime.goPanicSliceAlenU_runtime.goPanicSliceB_runtime.goPanicSliceBU_runtime.goargs_runtime.goenvs_unix_runtime.goexit_runtime.goexit0_runtime.goexit1_runtime.gogetenv_runtime.gogo_runtime.gomaxprocs_runtime.gopanic_runtime.gopark_runtime.gopreempt_m_runtime.goready_runtime.goready.func1_runtime.gorecover_runtime.goroutineheader_runtime.goschedImpl_runtime.gosched_m_runtime.goschedguarded_m_runtime.gostartcall_runtime.gostartcallfn_runtime.gostring_runtime.goyield_m_runtime.greyobject_runtime.growWork_runtime.growWork_fast32_runtime.growWork_fast64_runtime.growWork_faststr_runtime.growslice_runtime.gwrite_runtime.handlingSig_runtime.handoff_runtime.handoffp_runtime.hashGrow_runtime.hashkey_runtime.heapBits.forward_runtime.heapBits.forwardOrBoundary_runtime.heapBits.initSpan_runtime.heapBits.nextArena_runtime.heapBitsSetType_runtime.heapBitsSetTypeGCProg_runtime.hexdumpWords_runtime.idlepMask_runtime.ifaceeq_runtime.inHeapOrStack_runtime.incidlelocked_runtime.inf_runtime.init_runtime.init.0_runtime.init.1_runtime.init.4_runtime.init.5_runtime.init.6_runtime.init.7_runtime.init.9_runtime.initSigmask_runtime.initsig_runtime.inittrace_runtime.injectglist_runtime.intArgRegs_runtime.interequal_runtime.interhash_runtime.intstring_runtime.isAbortPC_runtime.isAsyncSafePoint_runtime.isSystemGoroutine_runtime.isarchive_runtime.iscgo_runtime.islibrary_runtime.itabAdd_runtime.itabLock_runtime.itabTable_runtime.itabTableInit_runtime.itablink_runtime.itabsinit_runtime.iterate_itabs_runtime.jmpdefer_runtime.kevent_runtime.kevent_trampoline_runtime.kq_runtime.kqueue_runtime.kqueue_trampoline_runtime.lastmoduledatap_runtime.levelBits_runtime.levelLogPages_runtime.levelShift_runtime.lfnodeValidate_runtime.libcCall_runtime.load_g_runtime.lock_runtime.lock2_runtime.lockNames_runtime.lockRank.String_runtime.lockWithRank_runtime.lockextra_runtime.m0_runtime.mDoFixup_runtime.mDoFixupAndOSYield_runtime.mPark_runtime.mProf_runtime.mProf_Flush_runtime.mProf_FlushLocked_runtime.mProf_Free_runtime.mProf_Malloc_runtime.mProf_Malloc.func1_runtime.mProf_NextCycle_runtime.mProf_PostSweep_runtime.mReserveID_runtime.mSpanStateNames_runtime.madvise_runtime.madvise_trampoline_runtime.main_runtime.main.func1_runtime.main.func2_runtime.mainPC_runtime.mainStarted_runtime.main_init_done_runtime.makeAddrRange_runtime.makeBucketArray_runtime.makechan_runtime.makemap_runtime.makemap_small_runtime.makeslice_runtime.makeslicecopy_runtime.malg_runtime.malg.func1_runtime.mallocgc_runtime.mallocinit_runtime.mapaccess1_runtime.mapaccess1_fast32_runtime.mapaccess1_fast64_runtime.mapaccess1_faststr_runtime.mapaccess2_runtime.mapaccess2_fast32_runtime.mapaccess2_fast64_runtime.mapaccess2_faststr_runtime.mapaccessK_runtime.mapassign_runtime.mapassign_fast32_runtime.mapassign_fast64_runtime.mapassign_fast64ptr_runtime.mapassign_faststr_runtime.mapdelete_runtime.mapdelete_fast32_runtime.mapdelete_fast64_runtime.mapdelete_faststr_runtime.mapiterinit_runtime.mapiternext_runtime.markroot_runtime.markroot.func1_runtime.markrootBlock_runtime.markrootFreeGStacks_runtime.markrootSpans_runtime.materializeGCProg_runtime.maxOffAddr_runtime.maxSearchAddr_runtime.maxstackceiling_runtime.maxstacksize_runtime.mbuckets_runtime.mcache0_runtime.mcall_runtime.mcommoninit_runtime.memclrHasPointers_runtime.memclrNoHeapPointers_runtime.memclrNoHeapPointersChunked_runtime.memequal_runtime.memequal0_runtime.memequal128_runtime.memequal16_runtime.memequal32_runtime.memequal64_runtime.memequal8_runtime.memequal_varlen_runtime.memhash_runtime.memhash128_runtime.memhash16_runtime.memhash32_runtime.memhash32Fallback_runtime.memhash64_runtime.memhash64Fallback_runtime.memhash8_runtime.memhashFallback_runtime.memhash_varlen_runtime.memmove_runtime.memoryError_runtime.memstats_runtime.mergeSummaries_runtime.mexit_runtime.mheap__runtime.minOffAddr_runtime.minhexdigits_runtime.minit_runtime.minitSignalMask_runtime.minitSignalStack_runtime.mlock_runtime.mlock_trampoline_runtime.mmap_runtime.mmap_trampoline_runtime.modinfo_runtime.modtimer_runtime.moduledataverify1_runtime.modulesSlice_runtime.modulesinit_runtime.morestack_runtime.morestack_noctxt_runtime.morestackc_runtime.moveTimers_runtime.mpreinit_runtime.mput_runtime.mspinning_runtime.mstart_runtime.mstart0_runtime.mstart1_runtime.mstart_stub_runtime.mstartm0_runtime.munmap_runtime.munmap_trampoline_runtime.mutexprofilerate_runtime.name.isBlank_runtime.name.name_runtime.name.pkgPath_runtime.name.tag_runtime.nanotime_runtime.nanotime1_runtime.nanotime_trampoline_runtime.ncgocall_runtime.ncpu_runtime.needm_runtime.netpoll_runtime.netpollBreak_runtime.netpollBreakRd_runtime.netpollBreakWr_runtime.netpollDeadline_runtime.netpollGenericInit_runtime.netpollInitLock_runtime.netpollInited_runtime.netpollReadDeadline_runtime.netpollWaiters_runtime.netpollWakeSig_runtime.netpollWriteDeadline_runtime.netpollblock_runtime.netpollblockcommit_runtime.netpolldeadlineimpl_runtime.netpollinit_runtime.netpollopen_runtime.netpollready_runtime.newAllocBits_runtime.newArenaMayUnlock_runtime.newBucket_runtime.newMarkBits_runtime.newarray_runtime.newdefer_runtime.newdefer.func1_runtime.newdefer.func2_runtime.newextram_runtime.newm_runtime.newm1_runtime.newmHandoff_runtime.newobject_runtime.newosproc_runtime.newproc_runtime.newproc.func1_runtime.newproc1_runtime.newprocs_runtime.newstack_runtime.nextMarkBitArenaEpoch_runtime.nilfunc_runtime.nilinterequal_runtime.nilinterhash_runtime.noSignalStack_runtime.no_pointers_stackmap_runtime.nonblockingPipe_runtime.noptrbss_runtime.noptrdata_runtime.notesleep_runtime.notetsleep_runtime.notetsleep_internal_runtime.notetsleepg_runtime.notewakeup_runtime.oneNewExtraM_runtime.oneptrmask_runtime.open_runtime.open_trampoline_runtime.osinit_runtime.overflowError_runtime.panicCheck1_runtime.panicCheck2_runtime.panicIndex_runtime.panicIndexU_runtime.panicSlice3Acap_runtime.panicSlice3Alen_runtime.panicSlice3AlenU_runtime.panicSlice3B_runtime.panicSlice3C_runtime.panicSliceAcap_runtime.panicSliceAcapU_runtime.panicSliceAlen_runtime.panicSliceAlenU_runtime.panicSliceB_runtime.panicSliceBU_runtime.panicdivide_runtime.panicdottypeE_runtime.panicdottypeI_runtime.panicfloat_runtime.panicking_runtime.paniclk_runtime.panicmakeslicelen_runtime.panicmem_runtime.panicmemAddr_runtime.panicoverflow_runtime.panicshift_runtime.panicwrap_runtime.park_m_runtime.parkunlock_c_runtime.parsedebugvars_runtime.pcdatavalue_runtime.pcdatavalue1_runtime.pcdatavalue2_runtime.pclntab_runtime.pcvalue_runtime.pdEface_runtime.pdType_runtime.pendingPreemptSignals_runtime.persistentChunks_runtime.persistentalloc_runtime.persistentalloc.func1_runtime.persistentalloc1_runtime.physHugePageShift_runtime.physHugePageSize_runtime.physPageSize_runtime.pidleget_runtime.pidleput_runtime.pinnedTypemaps_runtime.pipe_runtime.pipe_trampoline_runtime.plainError.Error_runtime.plainError.RuntimeError_runtime.pollFractionalWorkerExit_runtime.pollWork_runtime.pollcache_runtime.poolcleanup_runtime.preemptM_runtime.preemptPark_runtime.preemptall_runtime.preemptone_runtime.prepareFreeWorkbufs_runtime.preprintpanics_runtime.preprintpanics.func1_runtime.printAncestorTraceback_runtime.printAncestorTracebackFuncInfo_runtime.printArgs_runtime.printArgs.func1_runtime.printBacklog_runtime.printBacklogIndex_runtime.printCgoTraceback_runtime.printOneCgoTraceback_runtime.printScavTrace_runtime.printany_runtime.printanycustomtype_runtime.printbool_runtime.printcomplex_runtime.printcreatedby_runtime.printcreatedby1_runtime.printfloat_runtime.printhex_runtime.printint_runtime.printlock_runtime.printnl_runtime.printpanics_runtime.printpointer_runtime.printslice_runtime.printsp_runtime.printstring_runtime.printuint_runtime.printuintptr_runtime.printunlock_runtime.procresize_runtime.procyield_runtime.prof_runtime.profilealloc_runtime.proflock_runtime.progToPointerMask_runtime.pthread_attr_getstacksize_runtime.pthread_attr_getstacksize_trampoline_runtime.pthread_attr_init_runtime.pthread_attr_init_trampoline_runtime.pthread_attr_setdetachstate_runtime.pthread_attr_setdetachstate_trampoline_runtime.pthread_cond_init_runtime.pthread_cond_init_trampoline_runtime.pthread_cond_signal_runtime.pthread_cond_signal_trampoline_runtime.pthread_cond_timedwait_relative_np_runtime.pthread_cond_timedwait_relative_np_trampoline_runtime.pthread_cond_wait_runtime.pthread_cond_wait_trampoline_runtime.pthread_create_runtime.pthread_create_trampoline_runtime.pthread_key_create_trampoline_runtime.pthread_kill_runtime.pthread_kill_trampoline_runtime.pthread_mutex_init_runtime.pthread_mutex_init_trampoline_runtime.pthread_mutex_lock_runtime.pthread_mutex_lock_trampoline_runtime.pthread_mutex_unlock_runtime.pthread_mutex_unlock_trampoline_runtime.pthread_self_runtime.pthread_self_trampoline_runtime.pthread_setspecific_trampoline_runtime.publicationBarrier_runtime.publicationBarrier.args_stackmap_runtime.putempty_runtime.putfull_runtime.queuefinalizer_runtime.raise_runtime.raise_trampoline_runtime.raisebadsignal_runtime.raiseproc_runtime.raiseproc_trampoline_runtime.rawbyteslice_runtime.rawruneslice_runtime.rawstring_runtime.rawstringtmp_runtime.read_runtime.readGOGC_runtime.read_trampoline_runtime.ready_runtime.readyWithTime_runtime.recordForPanic_runtime.recordspan_runtime.recovery_runtime.recv_runtime.recvDirect_runtime.reentersyscall_runtime.reentersyscall.func1_runtime.reflectOffs_runtime.reflectcall_runtime.reflectcall.args_stackmap_runtime.reflectcallSave_runtime.reflectcallmove_runtime.releaseSudog_runtime.releasep_runtime.removefinalizer_runtime.removespecial_runtime.resetspinning_runtime.resolveNameOff_runtime.resolveTypeOff_runtime.resumeG_runtime.retake_runtime.return0_runtime.rodata_runtime.rt0_go_runtime.runGCProg_runtime.runOneTimer_runtime.runOpenDeferFrame_runtime.runSafePointFn_runtime.runfinq_runtime.runningPanicDefers_runtime.runqdrain_runtime.runqget_runtime.runqgrab_runtime.runqput_runtime.runqputbatch_runtime.runqputslow_runtime.runqsteal_runtime.runtimeInitTime_runtime.runtimer_runtime.save_runtime.saveAncestors_runtime.save_g_runtime.saveblockevent_runtime.scanConservative_runtime.scanblock_runtime.scanframeworker_runtime.scanobject_runtime.scanstack_runtime.scanstack.func1_runtime.scavenge_runtime.scavengeSleep_runtime.sched_runtime.schedEnableUser_runtime.schedEnabled_runtime.schedinit_runtime.schedtrace_runtime.schedtrace.func1_runtime.schedule_runtime.selectgo_runtime.selectgo.func2_runtime.selectgo.func3_runtime.selectnbrecv_runtime.selectnbsend_runtime.sellock_runtime.selparkcommit_runtime.selunlock_runtime.semacquire1_runtime.semacreate_runtime.semasleep_runtime.semawakeup_runtime.semrelease1_runtime.semtable_runtime.send_runtime.sendDirect_runtime.setCheckmark_runtime.setNonblock_runtime.setg_runtime.setprofilebucket_runtime.setsig_runtime.setsigstack_runtime.shade_runtime.shiftError_runtime.shouldPushSigpanic_runtime.showframe_runtime.showfuncinfo_runtime.shrinkstack_runtime.siftdownTimer_runtime.siftupTimer_runtime.sig_runtime.sigFetchG_runtime.sigNotOnStack_runtime.sigNoteWrite_runtime.sigaction_runtime.sigaction_trampoline_runtime.sigaltstack_runtime.sigaltstack_trampoline_runtime.sigblock_runtime.sigfwd_runtime.sigfwdgo_runtime.sighandler_runtime.signalDuringFork_runtime.signalsOK_runtime.signalstack_runtime.sigpanic_runtime.sigpipe_runtime.sigprocmask_runtime.sigprocmask_trampoline_runtime.sigprof_runtime.sigprofNonGoPC_runtime.sigsend_runtime.sigsetAllExiting_runtime.sigset_all_runtime.sigtable_runtime.sigtramp_runtime.sigtrampgo_runtime.size_to_class128_runtime.size_to_class8_runtime.sliceEface_runtime.sliceType_runtime.slicebytetostring_runtime.slicecopy_runtime.slicerunetostring_runtime.spanOfHeap_runtime.spanSetBlockPool_runtime.stackLarge_runtime.stackalloc_runtime.stackcache_clear_runtime.stackcacherefill_runtime.stackcacherelease_runtime.stackfree_runtime.stackinit_runtime.stackpool_runtime.stackpoolalloc_runtime.stackpoolfree_runtime.startCheckmarks_runtime.startTemplateThread_runtime.startTheWorld_runtime.startTheWorld.func1_runtime.startTheWorldGC_runtime.startTheWorldWithSema_runtime.startlockedm_runtime.startm_runtime.startpanic_m_runtime.starttime_runtime.staticuint64s_runtime.stealOrder_runtime.stealWork_runtime.step_runtime.stkbucket_runtime.stopTheWorld_runtime.stopTheWorld.func1_runtime.stopTheWorldGC_runtime.stopTheWorldWithSema_runtime.stoplockedm_runtime.stopm_runtime.strequal_runtime.strhash_runtime.strhashFallback_runtime.stringEface_runtime.stringType_runtime.stringtoslicebyte_runtime.stringtoslicerune_runtime.suspendG_runtime.sweep_runtime.sweepone_runtime.sweepone.func1_runtime.symtab_runtime.syncadjustsudogs_runtime.sysAlloc_runtime.sysFree_runtime.sysMap_runtime.sysReserveAligned_runtime.sysargs_runtime.syscall_runtime.syscall6_runtime.syscall6X_runtime.syscallNoErr_runtime.syscallPtr_runtime.syscallX_runtime.sysctl_runtime.sysctl_trampoline_runtime.sysctlbyname_runtime.sysctlbynameInt32_runtime.sysctlbyname_trampoline_runtime.sysmon_runtime.systemstack_runtime.systemstack_switch_runtime.templateThread_runtime.testAtomic64_runtime.testSigtrap_runtime.testSigusr1_runtime.test_x64_runtime.test_z64_runtime.testdefersizes_runtime.text_runtime.textsectionmap_runtime.throw_runtime.throw.func1_runtime.timeSleepUntil_runtime.timerpMask_runtime.tls_g_runtime.tlsinit_runtime.trace_runtime.traceAcquireBuffer_runtime.traceEvent_runtime.traceEventLocked_runtime.traceFlush_runtime.traceGCSweepDone_runtime.traceGCSweepSpan_runtime.traceGCSweepStart_runtime.traceGoCreate_runtime.traceGoPark_runtime.traceGoSched_runtime.traceGoStart_runtime.traceGoSysBlock_runtime.traceGoSysCall_runtime.traceGoSysExit_runtime.traceGoUnpark_runtime.traceHeapGoal_runtime.traceProcFree_runtime.traceProcStart_runtime.traceProcStop_runtime.traceReader_runtime.traceReleaseBuffer_runtime.traceStackID_runtime.tracealloc_runtime.tracealloc.func1_runtime.traceback_runtime.traceback1_runtime.tracebackCgoContext_runtime.tracebackHexdump_runtime.tracebackHexdump.func1_runtime.traceback_cache_runtime.traceback_env_runtime.tracebackdefers_runtime.tracebackothers_runtime.tracebackothers.func1_runtime.tracebacktrap_runtime.tracefree_runtime.tracefree.func1_runtime.tracegc_runtime.tracelock_runtime.trygetfull_runtime.typeBitsBulkBarrier_runtime.typedmemclr_runtime.typedmemmove_runtime.typedslicecopy_runtime.typehash_runtime.typelink_runtime.typelinksinit_runtime.types_runtime.typesEqual_runtime.uint16Eface_runtime.uint16Type_runtime.uint32Eface_runtime.uint32Type_runtime.uint64Eface_runtime.uint64Type_runtime.unblocksig_runtime.unlock_runtime.unlock2_runtime.unlockOSThread_runtime.unlockWithRank_runtime.unminitSignals_runtime.unreachableMethod_runtime.unwindm_runtime.updateTimerPMask_runtime.urandom_dev_runtime.useAeshash_runtime.useCheckmark_runtime.usleep_runtime.usleep_no_g_runtime.usleep_trampoline_runtime.waitReason.String_runtime.waitReasonStrings_runtime.wakeNetPoller_runtime.wakeScavenger_runtime.wakefing_runtime.wakep_runtime.walltime_runtime.walltime_trampoline_runtime.wbBufFlush_runtime.wbBufFlush.func1_runtime.wbBufFlush1_runtime.wirep_runtime.work_runtime.worldsema_runtime.write1_runtime.writeBarrier_runtime.write_trampoline_runtime.x86HasFMA_runtime.x86HasPOPCNT_runtime.x86HasSSE41_runtime.xbuckets_runtime.zeroVal_runtime.zerobase_runtime/cgo(__DATA/__bss)_runtime/cgo(__DATA/__bss)_runtime/cgo(__DATA/__data)_runtime/cgo(__TEXT/__const)_runtime/cgo(__TEXT/__cstring)_runtime/cgo(__TEXT/__cstring)_runtime/cgo(__TEXT/__cstring)_runtime/cgo(__TEXT/__text)_runtime/cgo(__TEXT/__text)_runtime/cgo(__TEXT/__text)_runtime/cgo(__TEXT/__text)_runtime/cgo(__TEXT/__text)_runtime/cgo..inittask_runtime/debug.SetTraceback_runtime/internal/atomic.Cas64_runtime/internal/atomic.Cas64.args_stackmap_runtime/internal/atomic.Casuintptr_runtime/internal/atomic.Casuintptr.args_stackmap_runtime/internal/atomic.Store_runtime/internal/atomic.Store.args_stackmap_runtime/internal/atomic.Store64_runtime/internal/atomic.Store64.args_stackmap_runtime/internal/atomic.Storeuintptr_runtime/internal/atomic.Storeuintptr.args_stackmap_runtime/internal/atomic.Xadd_runtime/internal/atomic.Xadd.args_stackmap_runtime/internal/atomic.Xchg64_runtime/internal/atomic.Xchg64.args_stackmap_runtime/internal/atomic.Xchguintptr_runtime/internal/atomic.Xchguintptr.args_stackmap_runtime_init_cond_runtime_init_done_runtime_init_mu_setg_gcc_setg_gcc_sort.(*StringSlice).Len_sort.(*StringSlice).Less_sort.(*StringSlice).Search_sort.(*StringSlice).Sort_sort.(*StringSlice).Swap_sort.(*reverse).Len_sort.(*reverse).Less_sort.(*reverse).Swap_sort..inittask_sort.Search_sort.SearchStrings_sort.SearchStrings.func1_sort.Slice_sort.Sort_sort.Stable_sort.StringSlice.Len_sort.StringSlice.Less_sort.StringSlice.Search_sort.StringSlice.Sort_sort.StringSlice.Swap_sort.doPivot_sort.doPivot_func_sort.heapSort_sort.heapSort_func_sort.insertionSort_sort.insertionSort_func_sort.medianOfThree_sort.medianOfThree_func_sort.quickSort_sort.quickSort_func_sort.reflectSwapper_sort.reflectValueOf_sort.reverse.Len_sort.reverse.Less_sort.reverse.Swap_sort.rotate_sort.siftDown_sort.siftDown_func_sort.stable_sort.symMerge_strconv.(*NumError).Error_strconv.(*NumError).Unwrap_strconv.(*decimal).Assign_strconv.(*decimal).Round_strconv.(*decimal).RoundedInteger_strconv.(*decimal).Shift_strconv.(*decimal).floatBits_strconv.(*decimal).set_strconv..inittask_strconv.AppendInt_strconv.AppendUint_strconv.Atoi_strconv.CanBackquote_strconv.ErrRange_strconv.ErrSyntax_strconv.FormatFloat_strconv.FormatInt_strconv.FormatUint_strconv.IsPrint_strconv.ParseFloat_strconv.ParseInt_strconv.ParseUint_strconv.Unquote_strconv.UnquoteChar_strconv.appendEscapedRune_strconv.appendQuotedRuneWith_strconv.appendQuotedWith_strconv.atof32_strconv.atof32exact_strconv.atof64_strconv.atof64exact_strconv.atofHex_strconv.baseError_strconv.bigFtoa_strconv.bitSizeError_strconv.detailedPowersOfTen_strconv.eiselLemire32_strconv.eiselLemire64_strconv.float32info_strconv.float32pow10_strconv.float64info_strconv.float64pow10_strconv.fmtB_strconv.fmtE_strconv.fmtF_strconv.fmtX_strconv.formatBits_strconv.formatDecimal_strconv.formatDigits_strconv.genericFtoa_strconv.init_strconv.isGraphic_strconv.isNotPrint16_strconv.isNotPrint32_strconv.isPrint16_strconv.isPrint32_strconv.leftShift_strconv.leftcheats_strconv.mult128bitPow10_strconv.mult64bitPow10_strconv.optimize_strconv.parseFloatPrefix_strconv.powtab_strconv.readFloat_strconv.rightShift_strconv.roundShortest_strconv.ryuDigits_strconv.ryuDigits32_strconv.ryuFtoaFixed32_strconv.ryuFtoaFixed64_strconv.ryuFtoaShortest_strconv.special_strconv.uint64pow10_strconv.underscoreOK_strconv.unquote_strings.(*Builder).Cap_strings.(*Builder).Grow_strings.(*Builder).Len_strings.(*Builder).Reset_strings.(*Builder).String_strings.(*Builder).Write_strings.(*Builder).WriteByte_strings.(*Builder).WriteRune_strings.(*Builder).WriteString_strings.(*Reader).Len_strings.(*Reader).Read_strings.(*Reader).ReadAt_strings.(*Reader).ReadByte_strings.(*Reader).ReadRune_strings.(*Reader).Reset_strings.(*Reader).Seek_strings.(*Reader).Size_strings.(*Reader).UnreadByte_strings.(*Reader).UnreadRune_strings.(*Reader).WriteTo_strings.(*Replacer).Replace_strings.(*Replacer).build_strings.(*Replacer).buildOnce-fm_strings.(*appendSliceWriter).Write_strings.(*appendSliceWriter).WriteString_strings.(*byteReplacer).Replace_strings.(*byteReplacer).WriteString_strings.(*byteStringReplacer).Replace_strings.(*byteStringReplacer).WriteString_strings.(*genericReplacer).Replace_strings.(*genericReplacer).WriteString_strings.(*genericReplacer).lookup_strings.(*singleStringReplacer).Replace_strings.(*singleStringReplacer).WriteString_strings.(*stringWriter).WriteString_strings.(*trieNode).add_strings..inittask_strings.Count_strings.EqualFold_strings.Fields_strings.FieldsFunc_strings.Index_strings.IndexAny_strings.IndexRune_strings.Join_strings.LastIndex_strings.Map_strings.Repeat_strings.Replace_strings.ToLower_strings.Trim_strings.TrimFunc_strings.TrimLeft_strings.TrimRight_strings.TrimRightFunc_strings.TrimSpace_strings.asciiSpace_strings.explode_strings.genSplit_strings.indexFunc_strings.lastIndexFunc_strings.makeCutsetFunc_strings.makeCutsetFunc.func1_strings.makeCutsetFunc.func2_strings.makeCutsetFunc.func3_strings.makeGenericReplacer_strings.makeStringFinder_strings.stringWriter.WriteString_sync.(*Cond).Broadcast_sync.(*Cond).Signal_sync.(*Cond).Wait_sync.(*Map).Load_sync.(*Map).LoadOrStore_sync.(*Map).Store_sync.(*Map).dirtyLocked_sync.(*Map).missLocked_sync.(*Mutex).Lock_sync.(*Mutex).Unlock_sync.(*Mutex).lockSlow_sync.(*Mutex).unlockSlow_sync.(*Once).Do_sync.(*Once).doSlow_sync.(*Pool).Get_sync.(*Pool).Put_sync.(*Pool).getSlow_sync.(*Pool).pin_sync.(*Pool).pinSlow_sync.(*RWMutex).Lock_sync.(*RWMutex).RLock_sync.(*RWMutex).RLocker_sync.(*RWMutex).RUnlock_sync.(*RWMutex).Unlock_sync.(*RWMutex).rUnlockSlow_sync.(*WaitGroup).Add_sync.(*WaitGroup).Done_sync.(*WaitGroup).Wait_sync.(*entry).tryExpungeLocked_sync.(*entry).tryLoadOrStore_sync.(*entry).tryStore_sync.(*noCopy).Lock_sync.(*noCopy).Unlock_sync.(*poolChain).popHead_sync.(*poolChain).popTail_sync.(*poolChain).pushHead_sync.(*poolDequeue).popHead_sync.(*poolDequeue).popTail_sync.(*poolDequeue).pushHead_sync.(*rlocker).Lock_sync.(*rlocker).Unlock_sync..inittask_sync.allPools_sync.allPoolsMu_sync.event_sync.expunged_sync.init_sync.init.0_sync.init.1_sync.oldPools_sync.poolCleanup_sync.runtime_Semacquire_sync.runtime_SemacquireMutex_sync.runtime_Semrelease_sync.runtime_canSpin_sync.runtime_doSpin_sync.runtime_nanotime_sync.runtime_notifyListAdd_sync.runtime_notifyListCheck_sync.runtime_notifyListNotifyAll_sync.runtime_notifyListNotifyOne_sync.runtime_notifyListWait_sync.runtime_procPin_sync.runtime_procUnpin_sync.runtime_registerPoolCleanup_sync.throw_sync/atomic.(*Value).CompareAndSwap_sync/atomic.(*Value).Load_sync/atomic.(*Value).Store_sync/atomic.(*Value).Swap_sync/atomic.AddInt32_sync/atomic.AddInt32.args_stackmap_sync/atomic.CompareAndSwapPointer_sync/atomic.CompareAndSwapUintptr_sync/atomic.CompareAndSwapUintptr.args_stackmap_sync/atomic.StorePointer_sync/atomic.StoreUint32_sync/atomic.StoreUint32.args_stackmap_sync/atomic.StoreUintptr_sync/atomic.StoreUintptr.args_stackmap_sync/atomic.SwapPointer_sync/atomic.SwapUintptr_sync/atomic.SwapUintptr.args_stackmap_sync/atomic.runtime_procPin_sync/atomic.runtime_procUnpin_syscall.(*Errno).Error_syscall.(*Errno).Is_syscall.(*Errno).Temporary_syscall.(*Errno).Timeout_syscall.(*Iovec).SetLen_syscall.(*SockaddrDatalink).sockaddr_syscall.(*SockaddrInet4).sockaddr_syscall.(*SockaddrInet6).sockaddr_syscall.(*SockaddrUnix).sockaddr_syscall.(*Timespec).Nano_syscall.(*Timespec).Unix_syscall..inittask_syscall.Accept_syscall.Bind_syscall.Chmod_syscall.Close_syscall.Connect_syscall.Dup_syscall.Errno.Error_syscall.Errno.Is_syscall.Errno.Temporary_syscall.Errno.Timeout_syscall.Exit_syscall.Fchdir_syscall.Fchmod_syscall.Fchown_syscall.ForkLock_syscall.Fstat_syscall.Ftruncate_syscall.Getdirentries_syscall.Getenv_syscall.Getpeername_syscall.Getrlimit_syscall.Getsockname_syscall.GetsockoptInt_syscall.Getwd_syscall.Listen_syscall.Lstat_syscall.Open_syscall.ParseSocketControlMessage_syscall.Pread_syscall.Pwrite_syscall.Recvfrom_syscall.Recvmsg_syscall.Rmdir_syscall.Seek_syscall.SendmsgN_syscall.Sendto_syscall.SetNonblock_syscall.Shutdown_syscall.Socket_syscall.SocketDisableIPv6_syscall.Stat_syscall.Stderr_syscall.Stdin_syscall.Stdout_syscall.Sysctl_syscall.SysctlUint32_syscall.Unlink_syscall._zero_syscall.accept_syscall.anyToSockaddr_syscall.bind_syscall.closedir_syscall.connect_syscall.copyenv_syscall.env_syscall.envLock_syscall.envOnce_syscall.envs_syscall.errEAGAIN_syscall.errEINVAL_syscall.errENOENT_syscall.errors_syscall.execve_syscall.execveDarwin_syscall.fcntl_syscall.fdopendir_syscall.getcwd_syscall.getpeername_syscall.getsockname_syscall.getsockopt_syscall.init_syscall.init.0_syscall.libc_accept_trampoline_syscall.libc_accept_trampoline.args_stackmap_syscall.libc_bind_trampoline_syscall.libc_bind_trampoline.args_stackmap_syscall.libc_chmod_trampoline_syscall.libc_chmod_trampoline.args_stackmap_syscall.libc_close_trampoline_syscall.libc_close_trampoline.args_stackmap_syscall.libc_closedir_trampoline_syscall.libc_closedir_trampoline.args_stackmap_syscall.libc_connect_trampoline_syscall.libc_connect_trampoline.args_stackmap_syscall.libc_dup_trampoline_syscall.libc_dup_trampoline.args_stackmap_syscall.libc_execve_trampoline_syscall.libc_execve_trampoline.args_stackmap_syscall.libc_fchdir_trampoline_syscall.libc_fchdir_trampoline.args_stackmap_syscall.libc_fchmod_trampoline_syscall.libc_fchmod_trampoline.args_stackmap_syscall.libc_fchown_trampoline_syscall.libc_fchown_trampoline.args_stackmap_syscall.libc_fcntl_trampoline_syscall.libc_fcntl_trampoline.args_stackmap_syscall.libc_fdopendir_trampoline_syscall.libc_fdopendir_trampoline.args_stackmap_syscall.libc_fstat_trampoline_syscall.libc_fstat_trampoline.args_stackmap_syscall.libc_ftruncate_trampoline_syscall.libc_ftruncate_trampoline.args_stackmap_syscall.libc_getcwd_trampoline_syscall.libc_getcwd_trampoline.args_stackmap_syscall.libc_getpeername_trampoline_syscall.libc_getpeername_trampoline.args_stackmap_syscall.libc_getrlimit_trampoline_syscall.libc_getrlimit_trampoline.args_stackmap_syscall.libc_getsockname_trampoline_syscall.libc_getsockname_trampoline.args_stackmap_syscall.libc_getsockopt_trampoline_syscall.libc_getsockopt_trampoline.args_stackmap_syscall.libc_listen_trampoline_syscall.libc_listen_trampoline.args_stackmap_syscall.libc_lseek_trampoline_syscall.libc_lseek_trampoline.args_stackmap_syscall.libc_lstat_trampoline_syscall.libc_lstat_trampoline.args_stackmap_syscall.libc_mmap_trampoline_syscall.libc_mmap_trampoline.args_stackmap_syscall.libc_munmap_trampoline_syscall.libc_munmap_trampoline.args_stackmap_syscall.libc_open_trampoline_syscall.libc_open_trampoline.args_stackmap_syscall.libc_openat_trampoline_syscall.libc_openat_trampoline.args_stackmap_syscall.libc_pread_trampoline_syscall.libc_pread_trampoline.args_stackmap_syscall.libc_pwrite_trampoline_syscall.libc_pwrite_trampoline.args_stackmap_syscall.libc_read_trampoline_syscall.libc_read_trampoline.args_stackmap_syscall.libc_readdir_r_trampoline_syscall.libc_readdir_r_trampoline.args_stackmap_syscall.libc_recvfrom_trampoline_syscall.libc_recvfrom_trampoline.args_stackmap_syscall.libc_recvmsg_trampoline_syscall.libc_recvmsg_trampoline.args_stackmap_syscall.libc_rmdir_trampoline_syscall.libc_rmdir_trampoline.args_stackmap_syscall.libc_sendmsg_trampoline_syscall.libc_sendmsg_trampoline.args_stackmap_syscall.libc_sendto_trampoline_syscall.libc_sendto_trampoline.args_stackmap_syscall.libc_setsockopt_trampoline_syscall.libc_setsockopt_trampoline.args_stackmap_syscall.libc_shutdown_trampoline_syscall.libc_shutdown_trampoline.args_stackmap_syscall.libc_socket_trampoline_syscall.libc_socket_trampoline.args_stackmap_syscall.libc_stat_trampoline_syscall.libc_stat_trampoline.args_stackmap_syscall.libc_sysctl_trampoline_syscall.libc_sysctl_trampoline.args_stackmap_syscall.libc_unlink_trampoline_syscall.libc_unlink_trampoline.args_stackmap_syscall.libc_write_trampoline_syscall.libc_write_trampoline.args_stackmap_syscall.libc_writev_trampoline_syscall.libc_writev_trampoline.args_stackmap_syscall.minRoutingSockaddrLen_syscall.mmap_syscall.munmap_syscall.nametomib_syscall.openat_syscall.rawSyscall_syscall.read_syscall.readdir_r_syscall.recvfrom_syscall.recvmsg_syscall.runtime_envs_syscall.sendmsg_syscall.sendto_syscall.setsockopt_syscall.socket_syscall.syscall_syscall.syscall6_syscall.syscall6X_syscall.syscallPtr_syscall.syscallX_syscall.sysctl_syscall.write_syscall.writev_text/tabwriter.(*Writer).Flush_text/tabwriter.(*Writer).Init_text/tabwriter.(*Writer).Write_text/tabwriter.(*Writer).addLine_text/tabwriter.(*Writer).endEscape_text/tabwriter.(*Writer).flush_text/tabwriter.(*Writer).flushNoDefers_text/tabwriter.(*Writer).format_text/tabwriter.(*Writer).handlePanic_text/tabwriter.(*Writer).reset_text/tabwriter.(*Writer).write0_text/tabwriter.(*Writer).writeLines_text/tabwriter.(*Writer).writeN_text/tabwriter.(*Writer).writePadding_text/tabwriter..gobytes.1_text/tabwriter..gobytes.2_text/tabwriter..inittask_text/tabwriter.hbar_text/tabwriter.newline_text/tabwriter.tabs_text/tabwriter.vbar_text/template.(*ExecError).Error_text/template.(*ExecError).Unwrap_text/template.(*Template).AddParseTree_text/template.(*Template).ExecuteTemplate_text/template.(*Template).Funcs_text/template.(*Template).Lookup_text/template.(*Template).Parse_text/template.(*Template).associate_text/template.(*Template).execute_text/template.(*state).errorf_text/template.(*state).evalArg_text/template.(*state).evalBool_text/template.(*state).evalCall_text/template.(*state).evalChainNode_text/template.(*state).evalCommand_text/template.(*state).evalComplex_text/template.(*state).evalEmptyInterface_text/template.(*state).evalField_text/template.(*state).evalFieldChain_text/template.(*state).evalFieldNode_text/template.(*state).evalFloat_text/template.(*state).evalFunction_text/template.(*state).evalInteger_text/template.(*state).evalPipeline_text/template.(*state).evalString_text/template.(*state).evalUnsignedInteger_text/template.(*state).evalVariableNode_text/template.(*state).idealConstant_text/template.(*state).pop_text/template.(*state).printValue_text/template.(*state).setVar_text/template.(*state).validateType_text/template.(*state).varValue_text/template.(*state).walk_text/template.(*state).walkIfOrWith_text/template.(*state).walkRange_text/template.(*state).walkRange.func1_text/template.(*state).walkTemplate_text/template..gobytes.1_text/template..gobytes.10_text/template..gobytes.11_text/template..gobytes.12_text/template..gobytes.13_text/template..gobytes.14_text/template..gobytes.15_text/template..gobytes.2_text/template..gobytes.3_text/template..gobytes.4_text/template..gobytes.5_text/template..gobytes.6_text/template..gobytes.7_text/template..gobytes.8_text/template..gobytes.9_text/template..inittask_text/template.ExecError.Error_text/template.ExecError.Unwrap_text/template.HTMLEscape_text/template.HTMLEscapeString_text/template.HTMLEscaper_text/template.JSEscape_text/template.JSEscapeString_text/template.JSEscaper_text/template.URLQueryEscaper_text/template.addFuncs_text/template.addValueFuncs_text/template.and_text/template.builtinFuncs_text/template.builtinFuncs.func1_text/template.builtinFuncsOnce_text/template.call_text/template.eq_text/template.errBadComparison_text/template.errBadComparisonType_text/template.errNoComparison_text/template.errRecover_text/template.errorType_text/template.evalArgs_text/template.findFunction_text/template.fmtStringerType_text/template.ge_text/template.goodFunc_text/template.goodName_text/template.gt_text/template.hex_text/template.htmlAmp_text/template.htmlApos_text/template.htmlGt_text/template.htmlLt_text/template.htmlNull_text/template.htmlQuot_text/template.index_text/template.indexArg_text/template.indirect_text/template.indirectInterface_text/template.init_text/template.isHexInt_text/template.isTrue_text/template.jsAmp_text/template.jsApos_text/template.jsBackslash_text/template.jsEq_text/template.jsGt_text/template.jsIsSpecial_text/template.jsLowUni_text/template.jsLt_text/template.jsQuot_text/template.le_text/template.length_text/template.lt_text/template.maxExecDepth_text/template.missingVal_text/template.ne_text/template.not_text/template.or_text/template.prepareArg_text/template.printableValue_text/template.reflectValueType_text/template.safeCall_text/template.safeCall.func1_text/template.slice_text/template.truth_text/template.zero_text/template/parse.(*ActionNode).Copy_text/template/parse.(*ActionNode).Position_text/template/parse.(*ActionNode).String_text/template/parse.(*ActionNode).Type_text/template/parse.(*ActionNode).tree_text/template/parse.(*ActionNode).writeTo_text/template/parse.(*BoolNode).Copy_text/template/parse.(*BoolNode).Position_text/template/parse.(*BoolNode).String_text/template/parse.(*BoolNode).Type_text/template/parse.(*BoolNode).tree_text/template/parse.(*BoolNode).writeTo_text/template/parse.(*BranchNode).Copy_text/template/parse.(*BranchNode).Position_text/template/parse.(*BranchNode).String_text/template/parse.(*BranchNode).Type_text/template/parse.(*BranchNode).tree_text/template/parse.(*BranchNode).writeTo_text/template/parse.(*ChainNode).Add_text/template/parse.(*ChainNode).Copy_text/template/parse.(*ChainNode).Position_text/template/parse.(*ChainNode).String_text/template/parse.(*ChainNode).Type_text/template/parse.(*ChainNode).tree_text/template/parse.(*ChainNode).writeTo_text/template/parse.(*CommandNode).Copy_text/template/parse.(*CommandNode).Position_text/template/parse.(*CommandNode).String_text/template/parse.(*CommandNode).Type_text/template/parse.(*CommandNode).tree_text/template/parse.(*CommandNode).writeTo_text/template/parse.(*CommentNode).Copy_text/template/parse.(*CommentNode).Position_text/template/parse.(*CommentNode).String_text/template/parse.(*CommentNode).Type_text/template/parse.(*CommentNode).tree_text/template/parse.(*CommentNode).writeTo_text/template/parse.(*DotNode).Copy_text/template/parse.(*DotNode).Position_text/template/parse.(*DotNode).String_text/template/parse.(*DotNode).Type_text/template/parse.(*DotNode).tree_text/template/parse.(*DotNode).writeTo_text/template/parse.(*FieldNode).Copy_text/template/parse.(*FieldNode).Position_text/template/parse.(*FieldNode).String_text/template/parse.(*FieldNode).Type_text/template/parse.(*FieldNode).tree_text/template/parse.(*FieldNode).writeTo_text/template/parse.(*IdentifierNode).Copy_text/template/parse.(*IdentifierNode).Position_text/template/parse.(*IdentifierNode).SetPos_text/template/parse.(*IdentifierNode).SetTree_text/template/parse.(*IdentifierNode).String_text/template/parse.(*IdentifierNode).Type_text/template/parse.(*IdentifierNode).tree_text/template/parse.(*IdentifierNode).writeTo_text/template/parse.(*IfNode).Copy_text/template/parse.(*IfNode).Position_text/template/parse.(*IfNode).String_text/template/parse.(*IfNode).Type_text/template/parse.(*IfNode).tree_text/template/parse.(*IfNode).writeTo_text/template/parse.(*ListNode).Copy_text/template/parse.(*ListNode).CopyList_text/template/parse.(*ListNode).Position_text/template/parse.(*ListNode).String_text/template/parse.(*ListNode).Type_text/template/parse.(*ListNode).tree_text/template/parse.(*ListNode).writeTo_text/template/parse.(*NilNode).Copy_text/template/parse.(*NilNode).Position_text/template/parse.(*NilNode).String_text/template/parse.(*NilNode).Type_text/template/parse.(*NilNode).tree_text/template/parse.(*NilNode).writeTo_text/template/parse.(*NodeType).Type_text/template/parse.(*NumberNode).Copy_text/template/parse.(*NumberNode).Position_text/template/parse.(*NumberNode).String_text/template/parse.(*NumberNode).Type_text/template/parse.(*NumberNode).tree_text/template/parse.(*NumberNode).writeTo_text/template/parse.(*PipeNode).Copy_text/template/parse.(*PipeNode).CopyPipe_text/template/parse.(*PipeNode).Position_text/template/parse.(*PipeNode).String_text/template/parse.(*PipeNode).Type_text/template/parse.(*PipeNode).tree_text/template/parse.(*PipeNode).writeTo_text/template/parse.(*Pos).Position_text/template/parse.(*RangeNode).Copy_text/template/parse.(*RangeNode).Position_text/template/parse.(*RangeNode).String_text/template/parse.(*RangeNode).Type_text/template/parse.(*RangeNode).tree_text/template/parse.(*RangeNode).writeTo_text/template/parse.(*StringNode).Copy_text/template/parse.(*StringNode).Position_text/template/parse.(*StringNode).String_text/template/parse.(*StringNode).Type_text/template/parse.(*StringNode).tree_text/template/parse.(*StringNode).writeTo_text/template/parse.(*TemplateNode).Copy_text/template/parse.(*TemplateNode).Position_text/template/parse.(*TemplateNode).String_text/template/parse.(*TemplateNode).Type_text/template/parse.(*TemplateNode).tree_text/template/parse.(*TemplateNode).writeTo_text/template/parse.(*TextNode).Copy_text/template/parse.(*TextNode).Position_text/template/parse.(*TextNode).String_text/template/parse.(*TextNode).Type_text/template/parse.(*TextNode).tree_text/template/parse.(*TextNode).writeTo_text/template/parse.(*Tree).Copy_text/template/parse.(*Tree).ErrorContext_text/template/parse.(*Tree).Parse_text/template/parse.(*Tree).action_text/template/parse.(*Tree).add_text/template/parse.(*Tree).blockControl_text/template/parse.(*Tree).checkPipeline_text/template/parse.(*Tree).clearActionLine_text/template/parse.(*Tree).command_text/template/parse.(*Tree).elseControl_text/template/parse.(*Tree).errorf_text/template/parse.(*Tree).expect_text/template/parse.(*Tree).expectOneOf_text/template/parse.(*Tree).hasFunction_text/template/parse.(*Tree).ifControl_text/template/parse.(*Tree).itemList_text/template/parse.(*Tree).newNumber_text/template/parse.(*Tree).operand_text/template/parse.(*Tree).parse_text/template/parse.(*Tree).parseControl_text/template/parse.(*Tree).parseDefinition_text/template/parse.(*Tree).parseTemplateName_text/template/parse.(*Tree).pipeline_text/template/parse.(*Tree).popVars_text/template/parse.(*Tree).rangeControl_text/template/parse.(*Tree).recover_text/template/parse.(*Tree).templateControl_text/template/parse.(*Tree).term_text/template/parse.(*Tree).textOrAction_text/template/parse.(*Tree).unexpected_text/template/parse.(*Tree).useVar_text/template/parse.(*Tree).withControl_text/template/parse.(*VariableNode).Copy_text/template/parse.(*VariableNode).Position_text/template/parse.(*VariableNode).String_text/template/parse.(*VariableNode).Type_text/template/parse.(*VariableNode).tree_text/template/parse.(*VariableNode).writeTo_text/template/parse.(*WithNode).Copy_text/template/parse.(*WithNode).Position_text/template/parse.(*WithNode).String_text/template/parse.(*WithNode).Type_text/template/parse.(*WithNode).tree_text/template/parse.(*WithNode).writeTo_text/template/parse.(*elseNode).Copy_text/template/parse.(*elseNode).Position_text/template/parse.(*elseNode).String_text/template/parse.(*elseNode).Type_text/template/parse.(*elseNode).tree_text/template/parse.(*elseNode).writeTo_text/template/parse.(*endNode).Copy_text/template/parse.(*endNode).Position_text/template/parse.(*endNode).String_text/template/parse.(*endNode).Type_text/template/parse.(*endNode).tree_text/template/parse.(*endNode).writeTo_text/template/parse.(*item).String_text/template/parse.(*lexer).accept_text/template/parse.(*lexer).acceptRun_text/template/parse.(*lexer).atRightDelim_text/template/parse.(*lexer).atTerminator_text/template/parse.(*lexer).drain_text/template/parse.(*lexer).next_text/template/parse.(*lexer).peek_text/template/parse.(*lexer).run_text/template/parse.(*lexer).scanNumber_text/template/parse..inittask_text/template/parse.ActionNode.Position_text/template/parse.ActionNode.Type_text/template/parse.BoolNode.Position_text/template/parse.BoolNode.Type_text/template/parse.BranchNode.Position_text/template/parse.BranchNode.Type_text/template/parse.ChainNode.Position_text/template/parse.ChainNode.Type_text/template/parse.CommandNode.Position_text/template/parse.CommandNode.Type_text/template/parse.CommentNode.Position_text/template/parse.CommentNode.Type_text/template/parse.DotNode.Position_text/template/parse.FieldNode.Position_text/template/parse.FieldNode.Type_text/template/parse.IdentifierNode.Position_text/template/parse.IdentifierNode.Type_text/template/parse.IfNode.Position_text/template/parse.IfNode.Type_text/template/parse.IsEmptyTree_text/template/parse.ListNode.Position_text/template/parse.ListNode.Type_text/template/parse.NilNode.Position_text/template/parse.NodeType.Type_text/template/parse.NumberNode.Position_text/template/parse.NumberNode.Type_text/template/parse.Parse_text/template/parse.PipeNode.Position_text/template/parse.PipeNode.Type_text/template/parse.Pos.Position_text/template/parse.RangeNode.Position_text/template/parse.RangeNode.Type_text/template/parse.StringNode.Position_text/template/parse.StringNode.Type_text/template/parse.TemplateNode.Position_text/template/parse.TemplateNode.Type_text/template/parse.TextNode.Position_text/template/parse.TextNode.Type_text/template/parse.VariableNode.Position_text/template/parse.VariableNode.Type_text/template/parse.WithNode.Position_text/template/parse.WithNode.Type_text/template/parse.elseNode.Position_text/template/parse.endNode.Position_text/template/parse.endNode.Type_text/template/parse.init_text/template/parse.isAlphaNumeric_text/template/parse.item.String_text/template/parse.key_text/template/parse.lex_text/template/parse.lexChar_text/template/parse.lexComment_text/template/parse.lexField_text/template/parse.lexFieldOrVariable_text/template/parse.lexIdentifier_text/template/parse.lexInsideAction_text/template/parse.lexLeftDelim_text/template/parse.lexNumber_text/template/parse.lexQuote_text/template/parse.lexRawQuote_text/template/parse.lexRightDelim_text/template/parse.lexSpace_text/template/parse.lexText_text/template/parse.lexVariable_text/template/parse.textFormat_threadentry_time.(*Duration).Hours_time.(*Duration).Microseconds_time.(*Duration).Milliseconds_time.(*Duration).Minutes_time.(*Duration).Nanoseconds_time.(*Duration).Round_time.(*Duration).Seconds_time.(*Duration).String_time.(*Duration).Truncate_time.(*Location).String_time.(*Location).firstZoneUsed_time.(*Location).get_time.(*Location).lookup_time.(*Location).lookupFirstZone_time.(*Location).lookupName_time.(*Month).String_time.(*ParseError).Error_time.(*Time).Add_time.(*Time).AddDate_time.(*Time).After_time.(*Time).AppendFormat_time.(*Time).Before_time.(*Time).Clock_time.(*Time).Date_time.(*Time).Day_time.(*Time).Equal_time.(*Time).Format_time.(*Time).GoString_time.(*Time).GobDecode_time.(*Time).GobEncode_time.(*Time).Hour_time.(*Time).ISOWeek_time.(*Time).In_time.(*Time).IsDST_time.(*Time).IsZero_time.(*Time).Local_time.(*Time).Location_time.(*Time).MarshalBinary_time.(*Time).MarshalJSON_time.(*Time).MarshalText_time.(*Time).Minute_time.(*Time).Month_time.(*Time).Nanosecond_time.(*Time).Round_time.(*Time).Second_time.(*Time).String_time.(*Time).Sub_time.(*Time).Truncate_time.(*Time).UTC_time.(*Time).Unix_time.(*Time).UnixMicro_time.(*Time).UnixMilli_time.(*Time).UnixNano_time.(*Time).UnmarshalBinary_time.(*Time).UnmarshalJSON_time.(*Time).UnmarshalText_time.(*Time).Weekday_time.(*Time).Year_time.(*Time).YearDay_time.(*Time).Zone_time.(*Time).addSec_time.(*Timer).Reset_time.(*Timer).Stop_time.(*Weekday).String_time.(*dataIO).big4_time.(*dataIO).big8_time.(*fileSizeError).Error_time..inittask_time.AfterFunc_time.Date_time.Duration.Hours_time.Duration.Microseconds_time.Duration.Milliseconds_time.Duration.Minutes_time.Duration.Nanoseconds_time.Duration.Round_time.Duration.Seconds_time.Duration.String_time.Duration.Truncate_time.LoadLocationFromTZData_time.Local_time.Month.String_time.NewTimer_time.Now_time.ParseDuration_time.Since_time.Time.Add_time.Time.AddDate_time.Time.After_time.Time.AppendFormat_time.Time.Before_time.Time.Clock_time.Time.Date_time.Time.Day_time.Time.Equal_time.Time.Format_time.Time.GoString_time.Time.GobEncode_time.Time.Hour_time.Time.ISOWeek_time.Time.In_time.Time.IsDST_time.Time.IsZero_time.Time.Local_time.Time.Location_time.Time.MarshalBinary_time.Time.MarshalJSON_time.Time.MarshalText_time.Time.Minute_time.Time.Month_time.Time.Nanosecond_time.Time.Round_time.Time.Second_time.Time.String_time.Time.Sub_time.Time.Truncate_time.Time.UTC_time.Time.Unix_time.Time.UnixMicro_time.Time.UnixMilli_time.Time.UnixNano_time.Time.Weekday_time.Time.Year_time.Time.YearDay_time.Time.Zone_time.Time.abs_time.Time.date_time.Time.locabs_time.UTC_time.Until_time.Weekday.String_time.absDate_time.appendInt_time.atoi_time.atoiError_time.badData_time.closefd_time.daysBefore_time.div_time.errBad_time.errLeadingInt_time.errLocation_time.fileSizeError.Error_time.findZone_time.formatNano_time.getnum_time.goFunc_time.init_time.initLocal_time.loadFromEmbeddedTZData_time.loadLocation_time.loadTzinfo_time.loadTzinfoFromDirOrZip_time.loadTzinfoFromTzdata_time.loadTzinfoFromZip_time.localLoc_time.localOnce_time.longDayNames_time.longMonthNames_time.lookup_time.nextStdChunk_time.now_time.parse_time.parseNanoseconds_time.parseSignedOffset_time.parseTimeZone_time.preadn_time.quote_time.readFile_time.resetTimer_time.sendTime_time.shortDayNames_time.shortMonthNames_time.skip_time.startNano_time.startTimer_time.std0x_time.stopTimer_time.tzruleTime_time.tzset_time.tzsetName_time.tzsetNum_time.tzsetOffset_time.tzsetRule_time.unitMap_time.utcLoc_time.when_time.zoneSources_timebase_type.*_type..eq.[1]text/template.variable_type..eq.[1]time.zone_type..eq.[1]time.zoneTrans_type..eq.[2]encoding/asn1.encoder_type..eq.[2]error_type..eq.[2]interface {}_type..eq.[2]runtime.Frame_type..eq.[2]string_type..eq.[3]text/template/parse.item_type..eq.[4]github.com/urfave/cli/v2.Flag_type..eq.[5]github.com/urfave/cli/v2.Flag_type..eq.[6]github.com/urfave/cli/v2.Flag_type..eq.[8]github.com/urfave/cli/v2.Flag_type..eq.[8]vendor/golang.org/x/net/route.Addr_type..eq.[9]internal/cpu.option_type..eq.compress/flate.literalNode_type..eq.container/list.Element_type..eq.container/list.List_type..eq.context.valueCtx_type..eq.crypto/cipher.StreamReader_type..eq.crypto/cipher.gcm_type..eq.crypto/ecdsa.PrivateKey_type..eq.crypto/ecdsa.PublicKey_type..eq.crypto/elliptic.CurveParams_type..eq.crypto/rand.devReader_type..eq.crypto/rc4.Cipher_type..eq.crypto/sha1.digest_type..eq.crypto/sha256.digest_type..eq.crypto/tls.RecordHeaderError_type..eq.crypto/tls.atLeastReader_type..eq.crypto/tls.prefixNonceAEAD_type..eq.crypto/tls.xorNonceAEAD_type..eq.crypto/x509.CertificateInvalidError_type..eq.crypto/x509.HostnameError_type..eq.crypto/x509.UnknownAuthorityError_type..eq.crypto/x509.rfc2821Mailbox_type..eq.crypto/x509/internal/macos.OSStatus_type..eq.encoding/asn1.fieldParameters_type..eq.encoding/asn1.tagAndLength_type..eq.encoding/asn1.taggedEncoder_type..eq.encoding/base64.Encoding_type..eq.encoding/base64.encoder_type..eq.encoding/json.MarshalerError_type..eq.encoding/json.SyntaxError_type..eq.encoding/json.UnmarshalTypeError_type..eq.encoding/json.UnsupportedValueError_type..eq.encoding/json.reflectWithString_type..eq.encoding/pem.lineBreaker_type..eq.flag.Flag_type..eq.fmt.fmt_type..eq.fmt.readRune_type..eq.fmt.ssave_type..eq.fmt.wrapError_type..eq.github.com/lestrrat-go/httprc.fetchRequest_type..eq.github.com/lestrrat-go/httprc.fetchResult_type..eq.github.com/lestrrat-go/iter/arrayiter.Pair_type..eq.github.com/lestrrat-go/iter/mapiter.Pair_type..eq.github.com/lestrrat-go/jwx/v2/jwe.algKeyPair_type..eq.github.com/lestrrat-go/jwx/v2/jwe.jsonKV_type..eq.github.com/lestrrat-go/jwx/v2/jwe.recipientBuilder_type..eq.github.com/lestrrat-go/jwx/v2/jwe.recipientMarshalProxy_type..eq.github.com/lestrrat-go/jwx/v2/jwe.staticKeyProvider_type..eq.github.com/lestrrat-go/jwx/v2/jwe.withKey_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/cipher.AesContentCipher_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/content_crypt.Generic_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.ECDHESEncrypt_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPDecrypt_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAOAEPEncrypt_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCS15Decrypt_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keyenc.RSAPKCSEncrypt_type..eq.github.com/lestrrat-go/jwx/v2/jwe/internal/keygen.Ecdhes_type..eq.github.com/lestrrat-go/jwx/v2/jwk.setDecodeCtx_type..eq.github.com/lestrrat-go/jwx/v2/jwk.typedFieldPair_type..eq.github.com/lestrrat-go/jwx/v2/jws.algKeyPair_type..eq.github.com/lestrrat-go/jwx/v2/jws.ecdsaSigner_type..eq.github.com/lestrrat-go/jwx/v2/jws.ecdsaVerifier_type..eq.github.com/lestrrat-go/jwx/v2/jws.keySetProvider_type..eq.github.com/lestrrat-go/jwx/v2/jws.payloadSigner_type..eq.github.com/lestrrat-go/jwx/v2/jws.rsaSigner_type..eq.github.com/lestrrat-go/jwx/v2/jws.rsaVerifier_type..eq.github.com/lestrrat-go/jwx/v2/jws.signatureUnmarshalProbe_type..eq.github.com/lestrrat-go/jwx/v2/jws.staticKeyProvider_type..eq.github.com/lestrrat-go/jwx/v2/jws.withKey_type..eq.github.com/lestrrat-go/option.pair_type..eq.github.com/russross/blackfriday/v2.HTMLRendererParameters_type..eq.github.com/russross/blackfriday/v2.HeadingData_type..eq.github.com/russross/blackfriday/v2.Reference_type..eq.github.com/russross/blackfriday/v2.TableCellData_type..eq.github.com/urfave/cli/v2.Author_type..eq.github.com/urfave/cli/v2.Context_type..eq.github.com/urfave/cli/v2.Timestamp_type..eq.github.com/urfave/cli/v2.exitError_type..eq.internal/cpu.option_type..eq.internal/poll.FD_type..eq.internal/reflectlite.ValueError_type..eq.internal/reflectlite.uncommonType_type..eq.internal/singleflight.Result_type..eq.io.LimitedReader_type..eq.io.SectionReader_type..eq.io/fs.PathError_type..eq.math/rand.Rand_type..eq.mime/multipart.stickyErrorReader_type..eq.net.AddrError_type..eq.net.DNSError_type..eq.net.OpError_type..eq.net.ParseError_type..eq.net.UnixAddr_type..eq.net._Ctype_struct_addrinfo_type..eq.net.dialResult.1_type..eq.net.netFD_type..eq.net.nssCriterion_type..eq.net.onlyValuesCtx_type..eq.net.policyTableEntry_type..eq.net.portLookupResult_type..eq.net/http.connectMethodKey_type..eq.net/http.http2FrameHeader_type..eq.net/http.http2GoAwayError_type..eq.net/http.http2PingFrame_type..eq.net/http.http2PriorityFrame_type..eq.net/http.http2PriorityParam_type..eq.net/http.http2RSTStreamFrame_type..eq.net/http.http2Setting_type..eq.net/http.http2StreamError_type..eq.net/http.http2WindowUpdateFrame_type..eq.net/http.http2connError_type..eq.net/http.http2stickyErrWriter_type..eq.net/http.httpError_type..eq.net/http.maxBytesReader_type..eq.net/http.readTrackingBody_type..eq.net/http.socksUsernamePassword_type..eq.net/http/httptrace.GotConnInfo_type..eq.net/http/internal.chunkedReader_type..eq.net/url.Error_type..eq.net/url.URL_type..eq.net/url.Userinfo_type..eq.os.LinkError_type..eq.os.SyscallError_type..eq.os.file_type..eq.os.fileStat_type..eq.os.unixDirent_type..eq.reflect.Method_type..eq.reflect.ValueError_type..eq.reflect.makeFuncCtxt_type..eq.reflect.methodValue_type..eq.reflect.uncommonType_type..eq.reflect.visit_type..eq.regexp.entry_type..eq.regexp.inputReader_type..eq.regexp.job_type..eq.regexp/syntax.Error_type..eq.runtime.Frame_type..eq.runtime.TypeAssertionError_type..eq.runtime._defer_type..eq.runtime._func_type..eq.runtime._panic_type..eq.runtime.bitvector_type..eq.runtime.boundsError_type..eq.runtime.errorAddressString_type..eq.runtime.funcinl_type..eq.runtime.gcWork_type..eq.runtime.hchan_type..eq.runtime.hiter_type..eq.runtime.itab_type..eq.runtime.mOS_type..eq.runtime.mcache_type..eq.runtime.modulehash_type..eq.runtime.mspan_type..eq.runtime.special_type..eq.runtime.sudog_type..eq.runtime.sysmontick_type..eq.strconv.NumError_type..eq.strings.Reader_type..eq.strings.singleStringReplacer_type..eq.struct { Hash crypto.Hash; PSS bool }_type..eq.struct { io.Reader; io.Closer }_type..eq.struct { runtime.gList; runtime.n int32 }_type..eq.struct { sync.Once; crypto/x509.v *crypto/x509.Certificate }_type..eq.sync.Cond_type..eq.sync.poolLocal_type..eq.sync.poolLocalInternal_type..eq.syscall.SockaddrInet4_type..eq.syscall.SockaddrUnix_type..eq.text/tabwriter.cell_type..eq.text/template.ExecError_type..eq.text/template.Template_type..eq.text/template.variable_type..eq.text/template/parse.BoolNode_type..eq.text/template/parse.CommentNode_type..eq.text/template/parse.IdentifierNode_type..eq.text/template/parse.NumberNode_type..eq.text/template/parse.StringNode_type..eq.text/template/parse.TemplateNode_type..eq.text/template/parse.item_type..eq.text/template/parse.lexer_type..eq.time.ParseError_type..eq.time.zone_type..eq.time.zoneTrans_type..eq.vendor/golang.org/x/net/dns/dnsmessage.ResourceHeader_type..eq.vendor/golang.org/x/net/dns/dnsmessage.nestedError_type..eq.vendor/golang.org/x/net/http/httpproxy.Config_type..eq.vendor/golang.org/x/net/http/httpproxy.domainMatch_type..eq.vendor/golang.org/x/net/http2/hpack.HeaderField_type..eq.vendor/golang.org/x/net/http2/hpack.pairNameValue_type..eq.vendor/golang.org/x/net/idna.labelError_type..hash.net/http.connectMethodKey_type..hash.reflect.visit_type..hash.vendor/golang.org/x/net/http2/hpack.pairNameValue_typerel.*_unicode..inittask_unicode.ASCII_Hex_Digit_unicode.Adlam_unicode.Ahom_unicode.Anatolian_Hieroglyphs_unicode.Arabic_unicode.Armenian_unicode.Avestan_unicode.Balinese_unicode.Bamum_unicode.Bassa_Vah_unicode.Batak_unicode.Bengali_unicode.Bhaiksuki_unicode.Bidi_Control_unicode.Bopomofo_unicode.Brahmi_unicode.Braille_unicode.Buginese_unicode.Buhid_unicode.C_unicode.Canadian_Aboriginal_unicode.Carian_unicode.CaseRanges_unicode.Categories_unicode.Caucasian_Albanian_unicode.Cc_unicode.Cf_unicode.Chakma_unicode.Cham_unicode.Cherokee_unicode.Chorasmian_unicode.Co_unicode.Common_unicode.Coptic_unicode.Cs_unicode.Cuneiform_unicode.Cypriot_unicode.Cyrillic_unicode.Dash_unicode.Deprecated_unicode.Deseret_unicode.Devanagari_unicode.Diacritic_unicode.Digit_unicode.Dives_Akuru_unicode.Dogra_unicode.Duployan_unicode.Egyptian_Hieroglyphs_unicode.Elbasan_unicode.Elymaic_unicode.Ethiopic_unicode.Extender_unicode.FoldCategory_unicode.FoldScript_unicode.Georgian_unicode.Glagolitic_unicode.Gothic_unicode.Grantha_unicode.Greek_unicode.Gujarati_unicode.Gunjala_Gondi_unicode.Gurmukhi_unicode.Han_unicode.Hangul_unicode.Hanifi_Rohingya_unicode.Hanunoo_unicode.Hatran_unicode.Hebrew_unicode.Hex_Digit_unicode.Hiragana_unicode.Hyphen_unicode.IDS_Binary_Operator_unicode.IDS_Trinary_Operator_unicode.Ideographic_unicode.Imperial_Aramaic_unicode.In_unicode.Inherited_unicode.Inscriptional_Pahlavi_unicode.Inscriptional_Parthian_unicode.Is_unicode.IsSpace_unicode.Javanese_unicode.Join_Control_unicode.Kaithi_unicode.Kannada_unicode.Katakana_unicode.Kayah_Li_unicode.Kharoshthi_unicode.Khitan_Small_Script_unicode.Khmer_unicode.Khojki_unicode.Khudawadi_unicode.L_unicode.Lao_unicode.Latin_unicode.Lepcha_unicode.Letter_unicode.Limbu_unicode.Linear_A_unicode.Linear_B_unicode.Lisu_unicode.Ll_unicode.Lm_unicode.Lo_unicode.Logical_Order_Exception_unicode.Lt_unicode.Lu_unicode.Lycian_unicode.Lydian_unicode.M_unicode.Mahajani_unicode.Makasar_unicode.Malayalam_unicode.Mandaic_unicode.Manichaean_unicode.Marchen_unicode.Masaram_Gondi_unicode.Mc_unicode.Me_unicode.Medefaidrin_unicode.Meetei_Mayek_unicode.Mende_Kikakui_unicode.Meroitic_Cursive_unicode.Meroitic_Hieroglyphs_unicode.Miao_unicode.Mn_unicode.Modi_unicode.Mongolian_unicode.Mro_unicode.Multani_unicode.Myanmar_unicode.N_unicode.Nabataean_unicode.Nandinagari_unicode.Nd_unicode.New_Tai_Lue_unicode.Newa_unicode.Nko_unicode.Nl_unicode.No_unicode.Noncharacter_Code_Point_unicode.Number_unicode.Nushu_unicode.Nyiakeng_Puachue_Hmong_unicode.Ogham_unicode.Ol_Chiki_unicode.Old_Hungarian_unicode.Old_Italic_unicode.Old_North_Arabian_unicode.Old_Permic_unicode.Old_Persian_unicode.Old_Sogdian_unicode.Old_South_Arabian_unicode.Old_Turkic_unicode.Oriya_unicode.Osage_unicode.Osmanya_unicode.Other_Alphabetic_unicode.Other_Default_Ignorable_Code_Point_unicode.Other_Grapheme_Extend_unicode.Other_ID_Continue_unicode.Other_ID_Start_unicode.Other_Lowercase_unicode.Other_Math_unicode.Other_Uppercase_unicode.P_unicode.Pahawh_Hmong_unicode.Palmyrene_unicode.Pattern_Syntax_unicode.Pattern_White_Space_unicode.Pau_Cin_Hau_unicode.Pc_unicode.Pd_unicode.Pe_unicode.Pf_unicode.Phags_Pa_unicode.Phoenician_unicode.Pi_unicode.Po_unicode.Prepended_Concatenation_Mark_unicode.PrintRanges_unicode.Properties_unicode.Ps_unicode.Psalter_Pahlavi_unicode.Quotation_Mark_unicode.Radical_unicode.Regional_Indicator_unicode.Rejang_unicode.Runic_unicode.S_unicode.Samaritan_unicode.Saurashtra_unicode.Sc_unicode.Scripts_unicode.Sentence_Terminal_unicode.Sharada_unicode.Shavian_unicode.Siddham_unicode.SignWriting_unicode.SimpleFold_unicode.Sinhala_unicode.Sk_unicode.Sm_unicode.So_unicode.Soft_Dotted_unicode.Sogdian_unicode.Sora_Sompeng_unicode.Soyombo_unicode.Sundanese_unicode.Syloti_Nagri_unicode.Syriac_unicode.Tagalog_unicode.Tagbanwa_unicode.Tai_Le_unicode.Tai_Tham_unicode.Tai_Viet_unicode.Takri_unicode.Tamil_unicode.Tangut_unicode.Telugu_unicode.Terminal_Punctuation_unicode.Thaana_unicode.Thai_unicode.Tibetan_unicode.Tifinagh_unicode.Tirhuta_unicode.ToLower_unicode.ToUpper_unicode.Ugaritic_unicode.Unified_Ideograph_unicode.Vai_unicode.Variation_Selector_unicode.Wancho_unicode.Warang_Citi_unicode.White_Space_unicode.Yezidi_unicode.Yi_unicode.Z_unicode.Zanabazar_Square_unicode.Zl_unicode.Zp_unicode.Zs_unicode.asciiFold_unicode.caseOrbit_unicode.foldCommon_unicode.foldGreek_unicode.foldInherited_unicode.foldL_unicode.foldLl_unicode.foldLt_unicode.foldLu_unicode.foldM_unicode.foldMn_unicode.init_unicode.is16_unicode.is32_unicode.isExcludingLatin_unicode.properties_unicode.to_unicode/utf16.Decode_unicode/utf8.DecodeLastRune_unicode/utf8.DecodeLastRuneInString_unicode/utf8.DecodeRune_unicode/utf8.DecodeRuneInString_unicode/utf8.EncodeRune_unicode/utf8.RuneCount_unicode/utf8.RuneCountInString_unicode/utf8.Valid_unicode/utf8.ValidString_unicode/utf8.acceptRanges_unicode/utf8.first_vendor/golang.org/x/crypto/chacha20.(*Cipher).XORKeyStream_vendor/golang.org/x/crypto/chacha20.(*Cipher).xorKeyStreamBlocksGeneric_vendor/golang.org/x/crypto/chacha20..inittask_vendor/golang.org/x/crypto/chacha20.constants_vendor/golang.org/x/crypto/chacha20.hChaCha20_vendor/golang.org/x/crypto/chacha20.incRotMatrix_vendor/golang.org/x/crypto/chacha20.newUnauthenticatedCipher_vendor/golang.org/x/crypto/chacha20.xorKeyStreamVX_vendor/golang.org/x/crypto/chacha20.xorKeyStreamVX.args_stackmap_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).NonceSize_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Open_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Overhead_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).Seal_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).openGeneric_vendor/golang.org/x/crypto/chacha20poly1305.(*chacha20poly1305).sealGeneric_vendor/golang.org/x/crypto/chacha20poly1305..inittask_vendor/golang.org/x/crypto/chacha20poly1305.errOpen_vendor/golang.org/x/crypto/chacha20poly1305.init_vendor/golang.org/x/crypto/chacha20poly1305.writeUint64_vendor/golang.org/x/crypto/chacha20poly1305.writeWithPadding_vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1_vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1BigInt_vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddASN1BigInt.func1_vendor/golang.org/x/crypto/cryptobyte.(*Builder).AddUint32_vendor/golang.org/x/crypto/cryptobyte.(*Builder).addLengthPrefixed_vendor/golang.org/x/crypto/cryptobyte.(*Builder).callContinuation_vendor/golang.org/x/crypto/cryptobyte.(*Builder).callContinuation.func1_vendor/golang.org/x/crypto/cryptobyte.(*Builder).flushChild_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1BitString_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Boolean_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Element_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1GeneralizedTime_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1Integer_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadASN1ObjectIdentifier_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadOptionalASN1_vendor/golang.org/x/crypto/cryptobyte.(*String).ReadOptionalASN1Integer_vendor/golang.org/x/crypto/cryptobyte.(*String).SkipOptionalASN1_vendor/golang.org/x/crypto/cryptobyte.(*String).readASN1_vendor/golang.org/x/crypto/cryptobyte.(*String).readASN1BigInt_vendor/golang.org/x/crypto/cryptobyte.(*String).readASN1Int64_vendor/golang.org/x/crypto/cryptobyte.(*String).readASN1Uint64_vendor/golang.org/x/crypto/cryptobyte.(*String).readBase128Int_vendor/golang.org/x/crypto/cryptobyte.(*String).readLengthPrefixed_vendor/golang.org/x/crypto/cryptobyte..inittask_vendor/golang.org/x/crypto/cryptobyte.bigIntType_vendor/golang.org/x/crypto/cryptobyte.bigOne_vendor/golang.org/x/crypto/cryptobyte.init_vendor/golang.org/x/crypto/cryptobyte/asn1.(*Tag).Constructed_vendor/golang.org/x/crypto/cryptobyte/asn1.(*Tag).ContextSpecific_vendor/golang.org/x/crypto/cryptobyte/asn1.Tag.Constructed_vendor/golang.org/x/crypto/cryptobyte/asn1.Tag.ContextSpecific_vendor/golang.org/x/crypto/curve25519..inittask_vendor/golang.org/x/crypto/curve25519.Basepoint_vendor/golang.org/x/crypto/curve25519.basePoint_vendor/golang.org/x/crypto/curve25519.checkBasepoint_vendor/golang.org/x/crypto/curve25519.feAdd_vendor/golang.org/x/crypto/curve25519.feCSwap_vendor/golang.org/x/crypto/curve25519.feCopy_vendor/golang.org/x/crypto/curve25519.feFromBytes_vendor/golang.org/x/crypto/curve25519.feInvert_vendor/golang.org/x/crypto/curve25519.feMul_vendor/golang.org/x/crypto/curve25519.feMul121666_vendor/golang.org/x/crypto/curve25519.feSquare_vendor/golang.org/x/crypto/curve25519.feSub_vendor/golang.org/x/crypto/curve25519.feToBytes_vendor/golang.org/x/crypto/curve25519.feZero_vendor/golang.org/x/crypto/curve25519.init.0_vendor/golang.org/x/crypto/curve25519.scalarMultGeneric_vendor/golang.org/x/crypto/curve25519.x25519_vendor/golang.org/x/crypto/hkdf.(*hkdf).Read_vendor/golang.org/x/crypto/hkdf..inittask_vendor/golang.org/x/crypto/hkdf.Expand_vendor/golang.org/x/crypto/hkdf.Extract_vendor/golang.org/x/crypto/poly1305.(*MAC).Verify_vendor/golang.org/x/crypto/poly1305.(*macGeneric).Sum_vendor/golang.org/x/crypto/poly1305.(*macGeneric).Write_vendor/golang.org/x/crypto/poly1305..inittask_vendor/golang.org/x/crypto/poly1305.finalize_vendor/golang.org/x/crypto/poly1305.initialize_vendor/golang.org/x/crypto/poly1305.updateGeneric_vendor/golang.org/x/net/dns/dnsmessage.(*Builder).Finish_vendor/golang.org/x/net/dns/dnsmessage.(*Builder).Question_vendor/golang.org/x/net/dns/dnsmessage.(*Name).pack_vendor/golang.org/x/net/dns/dnsmessage.(*Name).unpackCompressed_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).AAAAResource_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).AResource_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).Question_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).SkipQuestion_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).Start_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).resourceHeader_vendor/golang.org/x/net/dns/dnsmessage.(*Parser).skipResource_vendor/golang.org/x/net/dns/dnsmessage.(*Question).pack_vendor/golang.org/x/net/dns/dnsmessage.(*ResourceHeader).unpack_vendor/golang.org/x/net/dns/dnsmessage.(*header).pack_vendor/golang.org/x/net/dns/dnsmessage.(*header).unpack_vendor/golang.org/x/net/dns/dnsmessage.(*nestedError).Error_vendor/golang.org/x/net/dns/dnsmessage..inittask_vendor/golang.org/x/net/dns/dnsmessage.ErrNotStarted_vendor/golang.org/x/net/dns/dnsmessage.ErrSectionDone_vendor/golang.org/x/net/dns/dnsmessage.NewBuilder_vendor/golang.org/x/net/dns/dnsmessage.classNames_vendor/golang.org/x/net/dns/dnsmessage.errBaseLen_vendor/golang.org/x/net/dns/dnsmessage.errCalcLen_vendor/golang.org/x/net/dns/dnsmessage.errCompressedSRV_vendor/golang.org/x/net/dns/dnsmessage.errInvalidPtr_vendor/golang.org/x/net/dns/dnsmessage.errNilResouceBody_vendor/golang.org/x/net/dns/dnsmessage.errNonCanonicalName_vendor/golang.org/x/net/dns/dnsmessage.errResTooLong_vendor/golang.org/x/net/dns/dnsmessage.errReserved_vendor/golang.org/x/net/dns/dnsmessage.errResourceLen_vendor/golang.org/x/net/dns/dnsmessage.errSegTooLong_vendor/golang.org/x/net/dns/dnsmessage.errStringTooLong_vendor/golang.org/x/net/dns/dnsmessage.errTooManyAdditionals_vendor/golang.org/x/net/dns/dnsmessage.errTooManyAnswers_vendor/golang.org/x/net/dns/dnsmessage.errTooManyAuthorities_vendor/golang.org/x/net/dns/dnsmessage.errTooManyPtr_vendor/golang.org/x/net/dns/dnsmessage.errTooManyQuestions_vendor/golang.org/x/net/dns/dnsmessage.errZeroSegLen_vendor/golang.org/x/net/dns/dnsmessage.init_vendor/golang.org/x/net/dns/dnsmessage.rCodeNames_vendor/golang.org/x/net/dns/dnsmessage.sectionNames_vendor/golang.org/x/net/dns/dnsmessage.skipName_vendor/golang.org/x/net/dns/dnsmessage.skipResource_vendor/golang.org/x/net/dns/dnsmessage.typeNames_vendor/golang.org/x/net/http/httpguts..inittask_vendor/golang.org/x/net/http/httpguts.HeaderValuesContainsToken_vendor/golang.org/x/net/http/httpguts.PunycodeHostPort_vendor/golang.org/x/net/http/httpguts.ValidHeaderFieldName_vendor/golang.org/x/net/http/httpguts.badTrailer_vendor/golang.org/x/net/http/httpguts.headerValueContainsToken_vendor/golang.org/x/net/http/httpguts.init_vendor/golang.org/x/net/http/httpguts.isTokenTable_vendor/golang.org/x/net/http/httpguts.tokenEqual_vendor/golang.org/x/net/http/httpproxy.(*allMatch).match_vendor/golang.org/x/net/http/httpproxy.(*cidrMatch).match_vendor/golang.org/x/net/http/httpproxy.(*config).init_vendor/golang.org/x/net/http/httpproxy.(*config).proxyForURL_vendor/golang.org/x/net/http/httpproxy.(*config).proxyForURL-fm_vendor/golang.org/x/net/http/httpproxy.(*config).useProxy_vendor/golang.org/x/net/http/httpproxy.(*domainMatch).match_vendor/golang.org/x/net/http/httpproxy.(*ipMatch).match_vendor/golang.org/x/net/http/httpproxy..inittask_vendor/golang.org/x/net/http/httpproxy.FromEnvironment_vendor/golang.org/x/net/http/httpproxy.allMatch.match_vendor/golang.org/x/net/http/httpproxy.canonicalAddr_vendor/golang.org/x/net/http/httpproxy.cidrMatch.match_vendor/golang.org/x/net/http/httpproxy.domainMatch.match_vendor/golang.org/x/net/http/httpproxy.getEnvAny_vendor/golang.org/x/net/http/httpproxy.idnaASCII_vendor/golang.org/x/net/http/httpproxy.init_vendor/golang.org/x/net/http/httpproxy.ipMatch.match_vendor/golang.org/x/net/http/httpproxy.parseProxy_vendor/golang.org/x/net/http/httpproxy.portMap_vendor/golang.org/x/net/http2/hpack.(*Decoder).Close_vendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFull_vendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFull.func1_vendor/golang.org/x/net/http2/hpack.(*Decoder).DecodeFull.func2_vendor/golang.org/x/net/http2/hpack.(*Decoder).EmitEnabled_vendor/golang.org/x/net/http2/hpack.(*Decoder).SetAllowedMaxDynamicTableSize_vendor/golang.org/x/net/http2/hpack.(*Decoder).SetEmitEnabled_vendor/golang.org/x/net/http2/hpack.(*Decoder).SetEmitFunc_vendor/golang.org/x/net/http2/hpack.(*Decoder).SetMaxDynamicTableSize_vendor/golang.org/x/net/http2/hpack.(*Decoder).SetMaxStringLength_vendor/golang.org/x/net/http2/hpack.(*Decoder).Write_vendor/golang.org/x/net/http2/hpack.(*Decoder).at_vendor/golang.org/x/net/http2/hpack.(*Decoder).callEmit_vendor/golang.org/x/net/http2/hpack.(*Decoder).parseDynamicTableSizeUpdate_vendor/golang.org/x/net/http2/hpack.(*Decoder).parseFieldIndexed_vendor/golang.org/x/net/http2/hpack.(*Decoder).parseFieldLiteral_vendor/golang.org/x/net/http2/hpack.(*Decoder).parseHeaderFieldRepr_vendor/golang.org/x/net/http2/hpack.(*Decoder).readString_vendor/golang.org/x/net/http2/hpack.(*DecodingError).Error_vendor/golang.org/x/net/http2/hpack.(*Encoder).SetMaxDynamicTableSize_vendor/golang.org/x/net/http2/hpack.(*Encoder).SetMaxDynamicTableSizeLimit_vendor/golang.org/x/net/http2/hpack.(*Encoder).WriteField_vendor/golang.org/x/net/http2/hpack.(*Encoder).searchTable_vendor/golang.org/x/net/http2/hpack.(*HeaderField).IsPseudo_vendor/golang.org/x/net/http2/hpack.(*HeaderField).Size_vendor/golang.org/x/net/http2/hpack.(*HeaderField).String_vendor/golang.org/x/net/http2/hpack.(*InvalidIndexError).Error_vendor/golang.org/x/net/http2/hpack.(*dynamicTable).add_vendor/golang.org/x/net/http2/hpack.(*dynamicTable).evict_vendor/golang.org/x/net/http2/hpack.(*headerFieldTable).evictOldest_vendor/golang.org/x/net/http2/hpack.(*headerFieldTable).idToIndex_vendor/golang.org/x/net/http2/hpack.(*headerFieldTable).search_vendor/golang.org/x/net/http2/hpack..inittask_vendor/golang.org/x/net/http2/hpack.AppendHuffmanString_vendor/golang.org/x/net/http2/hpack.DecodingError.Error_vendor/golang.org/x/net/http2/hpack.ErrInvalidHuffman_vendor/golang.org/x/net/http2/hpack.ErrStringLength_vendor/golang.org/x/net/http2/hpack.HeaderField.IsPseudo_vendor/golang.org/x/net/http2/hpack.HeaderField.Size_vendor/golang.org/x/net/http2/hpack.HeaderField.String_vendor/golang.org/x/net/http2/hpack.InvalidIndexError.Error_vendor/golang.org/x/net/http2/hpack.NewDecoder_vendor/golang.org/x/net/http2/hpack.NewEncoder_vendor/golang.org/x/net/http2/hpack.addDecoderNode_vendor/golang.org/x/net/http2/hpack.appendHpackString_vendor/golang.org/x/net/http2/hpack.appendIndexedName_vendor/golang.org/x/net/http2/hpack.appendNewName_vendor/golang.org/x/net/http2/hpack.bufPool_vendor/golang.org/x/net/http2/hpack.buildRootHuffmanNode_vendor/golang.org/x/net/http2/hpack.buildRootOnce_vendor/golang.org/x/net/http2/hpack.errNeedMore_vendor/golang.org/x/net/http2/hpack.errVarintOverflow_vendor/golang.org/x/net/http2/hpack.glob..func1_vendor/golang.org/x/net/http2/hpack.huffmanCodeLen_vendor/golang.org/x/net/http2/hpack.huffmanCodes_vendor/golang.org/x/net/http2/hpack.huffmanDecode_vendor/golang.org/x/net/http2/hpack.init_vendor/golang.org/x/net/http2/hpack.lazyRootHuffmanNode_vendor/golang.org/x/net/http2/hpack.newStaticTable_vendor/golang.org/x/net/http2/hpack.readVarInt_vendor/golang.org/x/net/http2/hpack.staticTable_vendor/golang.org/x/net/http2/hpack.staticTableEntries_vendor/golang.org/x/net/idna.(*Profile).process_vendor/golang.org/x/net/idna.(*Profile).validateLabel_vendor/golang.org/x/net/idna.(*idnaTrie).lookupString_vendor/golang.org/x/net/idna.(*idnaTrie).lookupValue_vendor/golang.org/x/net/idna.(*labelError).Error_vendor/golang.org/x/net/idna.(*labelIter).label_vendor/golang.org/x/net/idna.(*labelIter).set_vendor/golang.org/x/net/idna.(*runeError).Error_vendor/golang.org/x/net/idna.(*sparseBlocks).lookup_vendor/golang.org/x/net/idna..inittask_vendor/golang.org/x/net/idna.Lookup_vendor/golang.org/x/net/idna.Punycode_vendor/golang.org/x/net/idna.decode_vendor/golang.org/x/net/idna.encode_vendor/golang.org/x/net/idna.idnaIndex_vendor/golang.org/x/net/idna.idnaSparse_vendor/golang.org/x/net/idna.idnaSparseOffset_vendor/golang.org/x/net/idna.idnaSparseValues_vendor/golang.org/x/net/idna.idnaValues_vendor/golang.org/x/net/idna.info.appendMapping_vendor/golang.org/x/net/idna.info.isBidi_vendor/golang.org/x/net/idna.init_vendor/golang.org/x/net/idna.joinStates_vendor/golang.org/x/net/idna.labelError.Error_vendor/golang.org/x/net/idna.mappings_vendor/golang.org/x/net/idna.runeError.Error_vendor/golang.org/x/net/idna.trie_vendor/golang.org/x/net/idna.validateAndMap_vendor/golang.org/x/net/idna.validateFromPunycode_vendor/golang.org/x/net/idna.xorData_vendor/golang.org/x/net/route.(*DefaultAddr).Family_vendor/golang.org/x/net/route.(*Inet4Addr).Family_vendor/golang.org/x/net/route.(*Inet6Addr).Family_vendor/golang.org/x/net/route.(*Inet6Addr).marshal_vendor/golang.org/x/net/route.(*InterfaceAddrMessage).Sys_vendor/golang.org/x/net/route.(*InterfaceMessage).Sys_vendor/golang.org/x/net/route.(*InterfaceMetrics).SysType_vendor/golang.org/x/net/route.(*InterfaceMulticastAddrMessage).Sys_vendor/golang.org/x/net/route.(*LinkAddr).Family_vendor/golang.org/x/net/route.(*LinkAddr).marshal_vendor/golang.org/x/net/route.(*RouteMessage).Marshal_vendor/golang.org/x/net/route.(*RouteMessage).Sys_vendor/golang.org/x/net/route.(*RouteMessage).marshal_vendor/golang.org/x/net/route.(*RouteMetrics).SysType_vendor/golang.org/x/net/route.(*binaryBigEndian).PutUint16_vendor/golang.org/x/net/route.(*binaryBigEndian).PutUint32_vendor/golang.org/x/net/route.(*binaryBigEndian).Uint16_vendor/golang.org/x/net/route.(*binaryBigEndian).Uint32_vendor/golang.org/x/net/route.(*binaryBigEndian).Uint64_vendor/golang.org/x/net/route.(*binaryLittleEndian).PutUint16_vendor/golang.org/x/net/route.(*binaryLittleEndian).PutUint32_vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint16_vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint32_vendor/golang.org/x/net/route.(*binaryLittleEndian).Uint64_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceAddrMessage_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceAddrMessage-fm_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMessage_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMessage-fm_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMulticastAddrMessage_vendor/golang.org/x/net/route.(*wireFormat).parseInterfaceMulticastAddrMessage-fm_vendor/golang.org/x/net/route.(*wireFormat).parseRouteMessage_vendor/golang.org/x/net/route.(*wireFormat).parseRouteMessage-fm_vendor/golang.org/x/net/route..inittask_vendor/golang.org/x/net/route.FetchRIB_vendor/golang.org/x/net/route.ParseRIB_vendor/golang.org/x/net/route.addrsSpace_vendor/golang.org/x/net/route.binaryBigEndian.PutUint16_vendor/golang.org/x/net/route.binaryBigEndian.PutUint32_vendor/golang.org/x/net/route.binaryBigEndian.Uint16_vendor/golang.org/x/net/route.binaryBigEndian.Uint32_vendor/golang.org/x/net/route.binaryBigEndian.Uint64_vendor/golang.org/x/net/route.binaryLittleEndian.PutUint16_vendor/golang.org/x/net/route.binaryLittleEndian.PutUint32_vendor/golang.org/x/net/route.binaryLittleEndian.Uint16_vendor/golang.org/x/net/route.binaryLittleEndian.Uint32_vendor/golang.org/x/net/route.binaryLittleEndian.Uint64_vendor/golang.org/x/net/route.errInvalidAddr_vendor/golang.org/x/net/route.errInvalidMessage_vendor/golang.org/x/net/route.errMessageMismatch_vendor/golang.org/x/net/route.errMessageTooShort_vendor/golang.org/x/net/route.errShortBuffer_vendor/golang.org/x/net/route.errUnsupportedMessage_vendor/golang.org/x/net/route.init_vendor/golang.org/x/net/route.init.0_vendor/golang.org/x/net/route.kernelAlign_vendor/golang.org/x/net/route.marshalAddrs_vendor/golang.org/x/net/route.nativeEndian_vendor/golang.org/x/net/route.parseAddrs_vendor/golang.org/x/net/route.parseInetAddr_vendor/golang.org/x/net/route.parseKernelInetAddr_vendor/golang.org/x/net/route.parseKernelLinkAddr_vendor/golang.org/x/net/route.parseLinkAddr_vendor/golang.org/x/net/route.probeRoutingStack_vendor/golang.org/x/net/route.rtmVersion_vendor/golang.org/x/net/route.wireFormats_vendor/golang.org/x/text/secure/bidirule.(*Transformer).advanceString_vendor/golang.org/x/text/secure/bidirule..inittask_vendor/golang.org/x/text/secure/bidirule.DirectionString_vendor/golang.org/x/text/secure/bidirule.ErrInvalid_vendor/golang.org/x/text/secure/bidirule.ValidString_vendor/golang.org/x/text/secure/bidirule.asciiTable_vendor/golang.org/x/text/secure/bidirule.init_vendor/golang.org/x/text/secure/bidirule.init.0_vendor/golang.org/x/text/secure/bidirule.transitions_vendor/golang.org/x/text/transform..inittask_vendor/golang.org/x/text/transform.ErrEndOfSpan_vendor/golang.org/x/text/transform.ErrShortDst_vendor/golang.org/x/text/transform.ErrShortSrc_vendor/golang.org/x/text/transform.errInconsistentByteCount_vendor/golang.org/x/text/transform.errShortInternal_vendor/golang.org/x/text/transform.init_vendor/golang.org/x/text/unicode/bidi..inittask_vendor/golang.org/x/text/unicode/bidi.Lookup_vendor/golang.org/x/text/unicode/bidi.LookupRune_vendor/golang.org/x/text/unicode/bidi.LookupString_vendor/golang.org/x/text/unicode/bidi.bidiIndex_vendor/golang.org/x/text/unicode/bidi.bidiValues_vendor/golang.org/x/text/unicode/bidi.controlByteToClass_vendor/golang.org/x/text/unicode/bidi.controlToClass_vendor/golang.org/x/text/unicode/bidi.init_vendor/golang.org/x/text/unicode/bidi.trie_vendor/golang.org/x/text/unicode/norm.(*formInfo).quickSpan_vendor/golang.org/x/text/unicode/norm.(*input).charinfoNFC_vendor/golang.org/x/text/unicode/norm.(*input).charinfoNFKC_vendor/golang.org/x/text/unicode/norm.(*input).hangul_vendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookup_vendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookupString_vendor/golang.org/x/text/unicode/norm.(*nfcTrie).lookupValue_vendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookup_vendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookupString_vendor/golang.org/x/text/unicode/norm.(*nfkcTrie).lookupValue_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).appendRune_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).assignRune_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).combineHangul_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).compose_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).decomposeHangul_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).doFlush_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertDecomposed_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertFlush_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertSingle_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).insertUnsafe_vendor/golang.org/x/text/unicode/norm.(*reorderBuffer).runeAt_vendor/golang.org/x/text/unicode/norm.(*sparseBlocks).lookup_vendor/golang.org/x/text/unicode/norm..inittask_vendor/golang.org/x/text/unicode/norm.Form.Bytes_vendor/golang.org/x/text/unicode/norm.Form.IsNormalString_vendor/golang.org/x/text/unicode/norm.Form.IsNormalString.func1_vendor/golang.org/x/text/unicode/norm.Form.String_vendor/golang.org/x/text/unicode/norm.appendFlush_vendor/golang.org/x/text/unicode/norm.appendQuick_vendor/golang.org/x/text/unicode/norm.buildRecompMap_vendor/golang.org/x/text/unicode/norm.compInfo_vendor/golang.org/x/text/unicode/norm.decomposeHangul_vendor/golang.org/x/text/unicode/norm.decomposeSegment_vendor/golang.org/x/text/unicode/norm.decomps_vendor/golang.org/x/text/unicode/norm.doAppendInner_vendor/golang.org/x/text/unicode/norm.doNormComposed_vendor/golang.org/x/text/unicode/norm.doNormDecomposed_vendor/golang.org/x/text/unicode/norm.formTable_vendor/golang.org/x/text/unicode/norm.init_vendor/golang.org/x/text/unicode/norm.lookupInfoNFC_vendor/golang.org/x/text/unicode/norm.lookupInfoNFKC_vendor/golang.org/x/text/unicode/norm.nextCGJCompose_vendor/golang.org/x/text/unicode/norm.nextCGJDecompose_vendor/golang.org/x/text/unicode/norm.nextComposed_vendor/golang.org/x/text/unicode/norm.nextDecomposed_vendor/golang.org/x/text/unicode/norm.nextDone_vendor/golang.org/x/text/unicode/norm.nextHangul_vendor/golang.org/x/text/unicode/norm.nextMulti_vendor/golang.org/x/text/unicode/norm.nextMultiNorm_vendor/golang.org/x/text/unicode/norm.nfcData_vendor/golang.org/x/text/unicode/norm.nfcIndex_vendor/golang.org/x/text/unicode/norm.nfcSparse_vendor/golang.org/x/text/unicode/norm.nfcSparseOffset_vendor/golang.org/x/text/unicode/norm.nfcSparseValues_vendor/golang.org/x/text/unicode/norm.nfcValues_vendor/golang.org/x/text/unicode/norm.nfkcData_vendor/golang.org/x/text/unicode/norm.nfkcIndex_vendor/golang.org/x/text/unicode/norm.nfkcSparse_vendor/golang.org/x/text/unicode/norm.nfkcSparseOffset_vendor/golang.org/x/text/unicode/norm.nfkcSparseValues_vendor/golang.org/x/text/unicode/norm.nfkcValues_vendor/golang.org/x/text/unicode/norm.recompMap_vendor/golang.org/x/text/unicode/norm.recompMapOnce_x_cgo_init_x_cgo_notify_runtime_init_done_x_cgo_set_context_function_x_cgo_setenv_x_cgo_sys_thread_create_x_cgo_sys_thread_create.cold.1_x_cgo_thread_start_x_cgo_thread_start.cold.1_x_cgo_unsetenv__cgo_panic__cgo_topofstack_crosscall2_CFArrayGetCount_CFArrayGetValueAtIndex_CFDataGetBytePtr_CFDataGetLength_CFDictionaryGetValueIfPresent_CFEqual_CFNumberGetValue_CFRelease_CFStringCreateWithBytes_SecItemExport_SecPolicyCopyProperties_SecTrustSettingsCopyCertificates_SecTrustSettingsCopyTrustSettings___error___error___stack_chk_fail___stack_chk_guard___stderrp__exit_abort_accept_bind_chmod_clock_gettime_close_closedir_connect_dup_execve_fchdir_fchmod_fchown_fcntl_fdopendir_fprintf_free_freeaddrinfo_fstat_ftruncate_fwrite_gai_strerror_getaddrinfo_getcwd_getentropy_getpeername_getpid_getrlimit_getsockname_getsockopt_kevent_kill_kqueue_listen_lseek_lstat_mach_absolute_time_mach_timebase_info_madvise_malloc_mlock_mmap_munmap_nanosleep_open_openat_pipe_pread_pthread_attr_destroy_pthread_attr_getstacksize_pthread_attr_getstacksize_pthread_attr_init_pthread_attr_init_pthread_attr_setdetachstate_pthread_cond_broadcast_pthread_cond_init_pthread_cond_signal_pthread_cond_timedwait_relative_np_pthread_cond_wait_pthread_cond_wait_pthread_create_pthread_create_pthread_detach_pthread_key_create_pthread_kill_pthread_mutex_init_pthread_mutex_lock_pthread_mutex_lock_pthread_mutex_unlock_pthread_mutex_unlock_pthread_self_pthread_setspecific_pthread_sigmask_pthread_sigmask_pwrite_raise_read_readdir_r_recvfrom_recvmsg_rmdir_sendmsg_sendto_setenv_setsockopt_shutdown_sigaction_sigaltstack_socket_stat_strerror_sysctl_sysctlbyname_unlink_unsetenv_usleep_write_writev =2 =^X T  =a.out}Ó ϖLP*/}hzSAW>ѶM={ Vn3>1IH4r(<⡺c2H20\{DS+cbI=ކ[邬lUo&!>Tzi1;\&jBƾ\1䥢01@+}VpNW lЖlgbځͫrR- /'t IN`Lw=CMڳF84^ jPREF6}sK9UL[x8"DC6%6psҒ2b <"qWPhHFd\u ~|gz Cӳ[$h$MLGS-E#={xdfAሞ@vyod \}Q'|)!^LK28kJ?珓MlPK֟YM)6xbX_.W,kGwih_҆8 {H$-W `@Q]U}+wpLfH%ۮq|(+,hSQTO=\#{!ul@ׯA<[!Zs TBυ Y:YHnd{M>R_sĩn/ s.7\pgxrGy xSyEY7^/gs' Jxq &5M>Gɾ{g>Ul$Oq$2#xR9vqz K\JY>WDލI=WGNWkSl~4v]|䜛W{*m(tV2S2e 6)\o GB3?͒MYط#?SC(:i悙lzېxX[瓑mBFr3b3E&2=Suq(rZ gz({AkA`9Sh*ء !8W0"PG>?Aw:[(`%j_ e[kk^\SY;U{KQDQl}{\xDv*2w.X` &Ź6ycW?i0ҩSzUv]Ǟa4/y:\Cs9uwC)0_ٱruh:]ق˅׎G;<ogmx5]g U Md LaT-%T`bMj<. 4FZ=oAЅ-eeFz `%h`'a=mԼMZ]CDLq!lfG:#a(;HKޝcXŬ"zTTmE"чbT#N& (\mR:LI7/P;|[+HP;wA]둫⾞Ϭ>{A8v!)uY;yƸ 8Dp˴Hf7/% ОwT,Hv^ڦ.k`#Π8[b7hH2n)OĦ}pC- gc$}LH7G M) ʊ,3"JL'\JL{ ;6Y^Esw8K\{Mp+$?Tl w?@vWi!fv3حU*ߔ pG2"qw%ѓM65I6[sO֩J"PY'_Xjm,ai*NKRّOAr5(gG+ջ^aguu655^xqJ!wuԽ֢%C:,-۬듗F:GLF^v籷Q]%)D43ƶMUtdnqG+_Jt vjVt~~1~a% Ƿ:aT1D0w{P;a& BS18jdiM pJS*KhH+}oA~AƵ ?hy.>mip=$053ƀ;6!z6'dٴQ~ .*&!N*5HjD:oHwLF_׹5[iǒ拦 x Ϫ5N9'݌s\HgWr44ʫ{@\j\'+O)\+uLK&hXK2Mb?xq*{Zb87I vձQ͋-Eqڇ@oJi!?]lδ>fРOXž"(׎󍬉ʼ)=dgA:nŜ-PdO-y7yy+]>zec<ζbH#WW"eT|@%24;Wte;ow`,~LZAKiPWKgh,BU;lȖS"K^APَf[DaQmrBC{ "Tw%F},$0[3 Dji='޲v VVL.)GIWQȓYs6[Mh Oť\ޓ ,G6E;;ps(ID:W=AG;d'm87d߁ًO͋a-X" ud>#kPO g&B ' ȱ@R)RS̉<Ȕp\MzJnI= X}C"A 7և U<${UV5Q掎eGa6ʂwC9ۧvz:3l3dK o!1Ԯ?HbiӠC>a4 hE FCӁ)7{n48mp3EFF0g_(l%B=㡁V1V{q'Ƭ0'iW"hW{NmvI%2aMu!HO.+Myv>mt^.t MUyojs@sv+)pIyfCĮ6b`"X3y :*:Ido ĜsˎC3ȑk=ɼP&pnn*۹yXdbL5.dvW-!\)_XCaԸSw{YlwfK[r&u?Ww9dTu8 Iut8 W68XF%p o1rU0HލMȋi7 ,ZXU;̹VԠַuj81DpWKU"NBGor5_W?- AtTbOl"<>K1W')F^ٍiiTjVʂ+8?YrV[5xhB19t[b. J6onP'p՚P66Lg].a}e)|aܟJ٨u[䔡H# gZ m(Zht KK4~ El43O2l1f :<-·  qR ZZ&@p>mf9"PYu˅ߙܸIKJ,d̂hk Kϟ)Xt+uN0"7?s)jdg hC:.N*0oˉe,u{>Wx\6To^ {h϶gX8mbTݜqۡ>em.W$N*-&*\96<ދdY[b`<6I>U[#SpA`U'ڤ)[X@5FyM!oh=kp(JIfSc-{zƔo`:v/PW$,E v2JRI5螞͊% D(R%oi`z4V%h/Es #߰B!Ǣ2ivڈ\Cт)y+g %RH1qՃ夲]>B03ݰ z']&vH3u&:fW 5}+U߽|B:GDyRpҬ*%KVRHBm=vj&h`6zn~@ ܘ+fAfO.<I:oD]Qj1eu<=y2;y%QLv P21j.Pٙg!.2#+|ʞR~|$\]ZRtI{s6K$^ec1s/ݼV$ ٓ:HZFP~̚Cӓ3z+ X54ǀ4 yL8$L7ʋGf " v7s/C} Y̭콧GSW̏cR{:v@t|(MȂ0D{R:Q iR23kSI_ yil2-Y}+fdXW,A ES}MMed\w6fɗdKZyM @٭sQy ѪxGqu[jJ.NJ4x!q2%,c^@]h Ww'c3G]OsA7ijt@_/)aaGٚKށf [[;lW Ox%3J4{)[~.:Fcfd)Cz8N':[YVkc;ޗ`/v>NM,+ZIIL)Y䙀㭛܃68=-k (h E8bRz@d$F};8<0fjv-Gէ3ΰ͐Łq}v~";(*Q,N]HY!}@8}ĭJv> lΣku\=iXb78g&'q{%,o?Šn_k ~avquLVV~N9y`-R v[X]`ӷq_ϙE˲~#9OHMmS5Y!%{/MŨk) VN 4KĽO!(F͂KGi;[YsélHD:dqף Lȓo*Tpx꒑59֙;Qj~'=!"@٢quPC:!}]Xpu5;q$`!69s Q;SKYqig9PYQmw]X5&b$XCr"@89/%^HQ֒^v?F\I'>`%$Df[BEwt=kFًϦ=`1 2 Wr,Wdi4w-̾eP=%!r-֑9m3 eeXN!}eU>R_mEmΉBCVt1µVh['/_CH#R0D'9%E t{6%KjLu*XgcZ-I_y5k`rRU\:jZXep \Oa:P&וNFxDۧVnS$9}|O}۸ % xM.j&J IpTd ~!Dnèό3]M-\ڨ4q߮TaLOлVԧٵczh`(pd`0rP{"UGpO4NKEqִNJv/Y^!gx~ۓ&p75.1H/а n В(4Q/^CCyc{j"rTЦW'&?T.!2n5j\B-__|gcSMO nk& ]kje\j6U8R) 'A^b ?e6sLan3qK{ŵW)%0 \n,0,m?),a_WQ4H";҉<{gn1|aI(0ui*i5֫fu[!_7!8[٢vzE>{D)ؿsLn'loKIl:[q$fPf@Ձ^,շIE:/$$wh,hm8:ފ-:nqϷ]U94)'g[*U tx]̕G[DɫdM ZOr4!ovSJfg&"FsB֐+7QwS0B&qckƎGY*<ˍaWx,-3' d^0W/sfaFsoѿi!EwO]RIzt4dYS|J3E]wizz7VQLj 3e{m@~m¸1Ci!_,|~UibCUc@7߲ P#ő=;;OQʍt}rqe0-Xh5bU߬rh٠T# #[ c zuIt(;ٲ2ԓ zD56S ##rOowtS3BՇ` 7uU=,sʒhj/.q[gD#8#c W\l?)Q??zO}1wf\(&V pC9SjDt8"i8s%:؂KtWYdhjt'sȲeYr`( ) %c6pd5љ^H\!mqQ)pEHrHB޶ҏfg_ʃ`-_^+Y}B8GPUom1l5ʍwGAc^ԅqC Ncѐvr~F"Zwbz)sֹLN$S=yldG]gF`+.MNGN^'-sۂG;'Kc:{P8O'Z"^A|xjP/'"hH/ɮiF"7jP*T53fHl$ـ!uV0iYBK8IR.@ hOpYQ?[1dy!w?.M'P`ۤVs9R"fX7S:XH~Џ*l#j,en 2å4=yjhp\¦~(v=t'8)&5A6wBxGπ]?tP.Կ= NL8v(BF/OUulP{$י O}-ue$?<8}K0 B[nfBjvܫ%ߦ\!/2R/jɒ[` 8kJH*gYھ있"+mLpQ\FNGâ4Y[r:Ͱ.2gz]>هŪUBdäkW1>~Ųj6o1Js;#ZB '_\.Ֆ4=Ij h r%\xH-`q\ A2UD>&C-c IU(u&$ Z$fXPD! It#]$ B9/'lPop*B"oV14^v ~?Xlc/ dmjxsw+{^ZjLi/6 '4VHV(pE`QztET菲W>JNB9;S.).oL"6ެ+G2Kmӌڈ.Gb Ta 9[Lx POhF.heu7D\۽BYºdtӫY^N6$p+j&jJ7,[w"+WQ[a'WʻX#Ȯ5֡!BBzش4}D9ń{)#-Ta畫Q"M JW0Y)C_ԌX̧?7Ww*&2M7Ah&EN)(ߙ!30g1Vw?̬U(03 `s]wmxESԶuQFd~>3N8w]zn˹hta&Ȅmb=:߀"G>3xڝ([3<̽zD#3(mZd mb2o-f۬'A!WUԢkq0dgf;fT^2iIxN~;!xGm[yg*7EX607>$^PlߺCEqI瘠+'櫦t옄п{dzᄠFH؞='Rj'K̊⑬VTmlPY9#k 㻔a<4;@cD X#1`7.<7-g~O%SEv*.Y8}, 2%qFbSY,iۥ򢨦/\&0' }tFz|Qc~w;N z칏t+[cY8Q),@V8Xѽ@̔\:8 Mp[|~wG$ʛ^@'[mi6m1F[Ej(56?szGg,9X _h΃ H&"}KL z͖4=M;ukFsb}n!0>/I@z߾ rmf۲񠳏ڤc2Ge`ۈwI'r':{b:/iXn+X -+C[kL5!\aqYKgD !VtZK.E5\a9U *^-#OWq 5Lʴtobs 0-D_w!d0Ӕ!+MPw fjE"vki+a{Un{F4 .+m!7+GCه.N-񑠉=:gɓ!4|R&Sp[ JING*4S!*x}3y3;7<8k߈Ǜ+`zS$;Oˁhfl*\aWKS=I^]QvSؙRr? \CQ6߀Od 錀jHLDIdXe aL"7f|2編=U89iȒ<ח> YXɞ73@<εVDpl rh[*#Kd;?KzvQWGRB!X>g"+oHBmD&C x|ztO]Y'1_h+jn EXrid{ՋFfuW6I8 ?>WbYq3}ӏByҤc]x9GNAg8~V%^rwB{Z%sXy`<8ꁒ 4swXn4R͌e; 5mwmرA#q!~~>*BJi?qo p|HԱ c/h6"6l*R|2zB5qJoqWZ׾VAqKk\<2dAc\ ߋ]vZ)f>l {2eX-k 23ك(cq4sOsUAShaXo$r¥=Pn ɥ&hcs$ o QsƆ^p!h5/pY37`+y)e|%\4HX ɀoҘ _E.SaHDJ'̣P |5a-Ò MpOpAB ߫17 %1 ϱg)Q8=?(ڵ6Oza'(?waU#6Böȓ( ?F_,1uH^_rW4FT1cur[p'迋Y\s!u$+ݩ􌜮kЃOZ^Pk:y}}RTbsq?y)ufwFQz-@w6(r GA ڹ9^0B_[LK]_*"[? y}~9:#bBpzFd>8pZܭuQ^!0-; Ci=E@HSxD0 P uG-x=N)y!Zu.v}鷏yx‚ً0]2H#~ָm*N(8c1UtZ[*)k6.;r񗘟:svo\@M=Ac&ViK\ B甚n ( YDÞ4<9? [/Azng5l蜛5Ac 'y> FQЕ6V\mż^2Py_| H#-q`lRz{C]3(='ql{6>VNͫ1ō5\gb=i(AE1x#1P|t7|DI2un ȼ=oyН ~so'в>_?S"+s6y7jliwrnH/GR4Ʉ{$lr=aiF HlVm<ԹIh DI?E( c(ѧI zr;_PڮTqg7< Q@GamZ$bKQYVu. f-bxy-m 62\uK>i&EAvTةvq}6Ff`կ~O @t'hțzKOX/6z?rA"d&;O6v%3- -L (Wٳ-H5<"߄nb"$v;A< @ A9Ȳ:4حйRmѝh˟]&# \/m}QАw?pi t[, bf$L[ c5r; }T]ʉK*ޣmX~;{opKݛB#3]]͕ J74̿6p>Ov& нꠦn7?(+߳=y; (~/rjN2bgu,<=޵vAF>&ǧ\22'ΗQa V?"q^"8:l^L\.d?}VBZ(vx+)2޺`,ITnꮁ=![Z-:;c6XuP- /0Zpa.ýeB 䨦cM~g<]ؘU ;Q85$9mS=4Q]GlF4,],N VRH@ >'2ȊnE !OF[1fjY)ׁ5NLCԟKR2{Q6%ʌ C;˷\,F,AAPYgoz ?C^? AA5bU3oTu,lg[];.RZ%; yoI\x$oDRSF47@d?.J^<]֬/o%e(O覸[ ؐp4W>{5dg6'4!igx woӱ2_ı{vZMZ\c"GF y*4=5n{S&κr5D\RxkCmX=^, ;}h%2 Q1;ĕKr9AL( ܀F,!hI)lVA,D9~FØXufEidI=H'!^jZ udI)SXl2RM%(1)qs ~j֡Ѝ&.@/oRAt_auaUNַ1!h -2Nrٷ ɋH5 vQ F3 -ŪD4;LHrGhʯڲ UWtl14iD xRGoFLjizF5h5F<4T^It|>V|?>|,=ԈSvjՃ3,d9ڷtAt5k倡rxgKYy'nW2>R ˤ a'3s5C mJjSM]癜% A6p#k $L4r4ʪmHBR(SGT_w#>.HZ_YK,k_&)M\h,&2PDj4K}~ vj:S nQb`_AVUư#^no<. G:-M?FL=p{'еw|Ib@ʳ[ђ ] 4w(ZXC!HpKSWs{a0S:1SRNkĬfdmo'-GiuCx4GOa9̩aK ;Π7RO!Zf.Y_(c%䁊ZǮf ^EbS$4'98_k\'χ!M5u'E$6*qG8m7m?҅w9g m,%d}7D݃?*o/jE0RY?Lܰ'[ɯŽWo0T r`YK>heDҜƥz9mW-}"dTpB/?ǾecA!$p`ѺzߍR!8r@uf9J/6ݶITFø3:dgpNS,$"-ǁq@́&2{p'n/ ]vBC~€PN win]i!/P,_j[ɥ }C}aEW;6FHKq=! $S}k{Ƚc Z)A@,W \56-' Ѹx}{4,r2e}Du9" SM9DS5eFCEC@W:w0A/\?* `ۀtJaKYrF JɳY8g|rYǴUv(.10S_Vfzix}"{^ u[Dnpskq‰C F2( ~'ӟB6!j?SH=՚$ټ7}^ J` hGgIP'1]RmFHnag{/LRk)N' nZ3 Cc}/v_sF2;0Fg"E93AUF}]?ǔwUn ZZat|#BiK9%j L'^$NJ]"_]+4SVkXW׸Vҹ@swl}$4u,H"+gKì'Z@+S$.i}0(5߬%s+z!ͷS 6@'=\חyu%8=d/|pk4)v?gO5h dN9ie3$WW:~[WHjgRVOh;wTOk c,z&-MFAH77fM7py yabg:foZ'?%tg/4dR7t !n뿷'5ZukinM5RQjړrb g/Կ`R:3\M3B>`z].ȧ YjGrLDH4*pAsOo`K'>7ݡ Ggf< %F*||L8UI׎75c2ob vCi+~vAA@غa½ݜ La0LWvGF7m^ڞ"*hXͪdc)o:2O f3Ec[|^Wp^?{7h}<+cxr Egnva%ia>GJL,h.HflP aS!8{/s^QrHg˖)TWs6{bB݄5:*+F^2wK~.Us t2L9} }t5X} 4R.hkv(ªqyYj;|{ t3@9-?0yJ>>K\Ue5sYW7]V0-Q:Ý2̱?ۏ/IQXI XGp:rWSS3hx{T4}lJ%ʹ8$؊P28^9;Im4sW$\xrxtb )m:3F Ed U ޽AM]/|φ[Kw`d=w7Y&uK'褾ƴ+1@(,5WBJSiWD8o_/Vw;;S67cu I˼5Z񈯮4{Of* sC7[1>68dbFNFf]lGanv}`%0AsL16(׊Z82͛ 'Gx`rJ@$T\vR$4ykN,@- ^caΒ 6'ƛ o_ ^Xk8[&GN5Qիz%DOn!?PdFFKpolP?U0dot*#Ó%,pUVfοA)6AJ@ ijO {C⑤5|:,d=be<]p`yk 'G m'3 &xvn&KaӱXw_&d<@_*o6YcWmsyC Ua #oYmfN%r[Dp.tF/"RXwywaBUuޙ66D;q-;e@ '`2M* q\'R:?Fv\gg윹]t<#|a-D՚%hgcЁקyhԧJsI g;C&Tl(|Vҵ_rOm_[j %SRkŬ:J`Dq,SN.OW7[?OeAaqj^sG#mE-Sb.&l@κ<E,M*ʨYu/dCqcv ~J-:+5Ӹ{ ߢoƟ,xr"5342O6p-e4_TK&\0: Zn'o8!J)RWh/zQN(:4cdY}a;IZ]KH^A-?.x]383?ʣUώz?hĭoo{M̀+5}˔\B[SNww6zr$مcF^BЄeQA\n Y5B]}O [̮o$2†%Ax3ꠖ'0>nUZ fŒ}1KAbVo$*flSNE,lqy] >h?[8ah p Nu.$*g6VОK fȈLu`R/CgǪ9?-0O=R<=n(l^~kf蹶݂#wMugrBnAa[#EȯnU|  {&IjsriUR{XFҔHڈ/Fނ9-~Qu&~ Vw]0*) TXZ, DUHuo<_jxbpO2 ֖&Etխi&%53n͊QOJ$Oo{oNy@cLȼԌ~M΋}; EFꪌt %4 SS#z q+N[Q2\Z-t#_e Z;*8_`XvG%Qŵ]eb>KOwLMhu,~ f_zp=IdPh]Izk?ϕw]|3Wt/BX%6n3pVlXX*Ǝs7 <8qb\\ !ݐ&BG[Jۙ-}< K8gB^'HO(o3)/{="C}r|ەһwZwV~N}&nƪV.EzɊʰd3caA36|lz$L'Pµ Xb8B&"=,TJ_3Bүo>45`?N)fAVł-w#C0mkPHIk"%j_}2K!(w`s Cģ29{I͞&M%p5l:\fQWNС2(j9SV}*FH%z@Q4bWYN*>VΕ1(`c;Wb 1a.0-/GhqW(X9vWCB{OgNP4= CgW(e2Y[~?[QpEi:3eXja[t 1 ͽRzn$o_u _ ҒN"f.qOA_مaJt.bTXp3Z6,`[c2ov B^bS}h]$imSxHKA=$-~D\yBVW[ZdH3}"q#:Nʛlv%)k.Nps&1qR\O8dJ}n}}ի )P`ti87ڂQ%mK!e'0X>qmS@oX%l[IǕHQc,,AI DRo1~{ 8&GmyqzN8t(PsC_E^y,秊E+d|T%;aetO-#6TՅBuUiqUQO')>ڈƲX:bkVSvU!x)ÑvI  2l'P,.~DR|M >/kIJfWju 2؍ONGVN_yrV9־+rjn<*Sh^+1u6¾ Crh!ﺵɏgE3Z@>{r.&b L:&hy8Ajx9>6rV~k^Jk!ۚo~]wdMҢU\!~S<6àᧆ#pT5bACv~zwD$ICΛ {op0VIg"wTדcxdE"|EcJoA5#@BBͱwDclFYW‘D7rl?ϏM|;a-=@%1Rĺ";NͱutILZ>|)>G*"Zmke/emXr3s޴oy|xo2T+SGsnrK8 0DNl9 /gOr쉏)ۖ=޲z4DxɆif~]F! H)4 Z<3xg3okww4x xB*)rn,45^Mh'|m/\R;Y7Ѱ,N\AFHCE?E>aZp/j$Br+aBTqJlТSi+PψrhHѬF ^>mŝ1(~#qy˨4!ZNb;{|Om# eHG{C|u`bmep*ro ?N %>K̺5;~#ER mY{RkΧ+kR> \eWTÁ.$^ hiyXYhŔjȒnZ /׵9j vQUqĂlCOzPΉw+5f |ۨ wkD0A ǹ_ rm|s<0#j;?0vSD5GX8;!3,x(iSb\3(W^KhS7\^q)-Yu'^VOLO"BMmj8,*Sʹ|5yosd&[g(α~sF9iY\CYhlVvثUȑ6񇲇w[ 8G;o; dp gb XP(},W8C)$C}%?I8{LKֱ' >$) ZED^A] 1\8QTH?"&[dME`>7Txl?gTlq̃&i.@]ro7ڢJVGYVI?8X#ѽVfwH+q8H`Ҩ $ 6E3c%ll$g~Z#Qk?`Eġ gw%?uYu]/hKZ?gYHf1)rD+C XS[ >,K,+DE0`F7! XeB5q'nMsq3{ &:ۆNS}u!!ڑ&V3Xx\n \㿀Q2e=׃ɡ!@[EҡiݙZZ}ެ⥩ZR XutAJx)?R-! @aU/2t4Vh+H|T6Tݬ5Zdvm"anb3~{~&ڃ9 }-%tR*OІՓ\XB\P]fB5˜8]-1Uj MgẌ.aXu3 %%b&(: $+Kݳъǰ6dt4bHi[x*7{7]EcyOJ`DOie@5ߗvT4BRi YBl8dm0Ψ_ Y^#ZQZ?p'`\EKde 9{VS&FIHjj^C9oU^m5ώc$~{LRS6B\"PX͘ ⻶|d[+I^3aU O:BXPrwSS L&ILyM,KfÉv\=ᩭ{3W$w"Bs^))d%׊+B!G^Rv>˒"?2uF,/!kj\)#ͧvT_p~&5VjZ3i@pҫ/Ux"!IP2?hGs]ʸ6 +^b!:*죢 Ih 5L meO^3b# 8f}zGvUچy p*WY1/v8=U^.Rl<-f{OP}хt9k <$>~I-yeM.}fz&#Pj݉E5EX#69U| h`$ 9,tZ*GZOL^hyƉEȰő^D;'z|~CR6TUdKCLxj\wF cݐf f/"X3a4e/&s,SuVCj՗~8Q!^_vޑ콀\HR^`om{TKAdzIl NiN!U .f/?n 扪 Ig"ca\=Doޮf6G\rsF%[FdkJJi .Zj{QJ|C~Ƭmb0{ إYSJk_hdMt5x>rn8Ȭ9#,#Koy[cp*>UPuDm l-+npӰ0 C10})c^)} uEI! 0t9}08S'9J%AĶ_B 69po6#Q[ۂNp?# Դ/+ixu(*# lwgt OԉW2J/\/9j\ikhВ)"m~aV%OJ8>;mJa8Gp)I#0n#p jُ@v^.fLY5B^CZ{Pw4$pd*a&-`Ǟ倮iTo -ڬ۾7~:`T?Xd1+;&VEp 5$FE-\q,ZnςU.rvI]e?ɹodfk^1K(5V) E. z%(wg FLU',;5q*uT_j9&VMdT¯|K%nX ]Ϸ><> h-blp7E$4xٱqu0)p2=O29"yCZ+Xg}[ LD՟_Jm7"> ݋Nx- ׶>qMRS~H2sC7eYK]O=ؑ12Z')7Ѝ$ 'hBo*z*ULZ=&7pFTqb^v#bU c<(zuGpM@ă"\Qܽ2 ̐6StXeFEz {FG><ݾݶ{m?v^XM .ƓyyG 1㮝OSYٍ&hB^}mWACfG%b E kHݫ]4S ~q;hͤ(]2#IYI~dm{:wՕ-Jm/2Γ_ 0r [SWޑx}֒VTǘ HGwjnkq:D+r@.: R 60-.}j6:0PMal:vvAhn,f]c[}oDe1'0P8(N \m?0M>ģYN9q.+iW(mzbNw<hr}Tvu3%.Υm'[$>bLܴ* 13Z#]1 AmYC :nL*&FW=I~%Ȁ%t4U6D؄[x}Hsym 4avFFƍJVu; )d$6^sNRW;*Kq0.hYGMFh?}f'%ԇD&%]q-"* b6Quc y] wT_ I!Ɨj;L!rNu5ǗPB]T-uP{ȩ4&4|ޅ6}_6ܬHөfVT!6>HNz+Ymʑ1ݙ;S /s,S>ii5E9 q < 5pX!#ffAM=qo5 v8BbsU@d` yk(" ̺.Fk1D/L)HxoQpht0f*|-MZm٪dSf2IhQDtdPxxn2 Y ' /rM̌~=$!>(Jxu @(~#cAS5\ş1q׾}s¡ϐ`z|}a48"zH(CTJ1U28 P[f(1"NB2uKCw%M cK©| KM1ힽrF̷{< ?T rEs֚tHN)v7E`= 4d'7R@$t6l<adI)zkAM2T@_Sm񦂵 nu3bcE> t}@ -y@o&m'"Cwn;=L;CטxÀ\YS.tbi*{ L6d:U tS56'DNz YDS e$+|=rV8u\ tLFΙuT)GԂdpjkAb,݆|nnI/qE͵ r#(Y'4t<[&s?&"{A@0ɫxf# 95 ƙ`U*"V| %}2RSM>xA Kw@ZqOM{{u;}gQ$Ώgfrfy2y%=Y(}{߅/Pkv@a@-_r"+Sٴ|-ۯ$%NʌkFnPfCFl}l3z]A /8zLpWoPV j WvEB =Foq{/^+^҇1A -$hA핚d&@CRgJa_YPȹ5<j^7DU8PC~n*&c!jFi~j rJ]ˏeOlկ;^?`'II+-P1K^D}l@n=h8!ZmϨmJm9"ZȴvMs.;PAì)l-3̂#6t2s92sD 긗J$oN ?F _kV:=}8_2yJt?5 Pa@WMi# * @Ă~3d꼺Prd23F Z m S٦cY4 kpTFv,ds=h."PoNS^n)RtV ׶X҃e I'ADlr>EGDM]}tUXO/ս&Sֵ߸3B)HrƯ7pc߅)WN'IMH0h[9jyZybԌˈUU.wCrZig3b-8VHHx8ԏ,燒FEWw86`O'Uf׸Mں͸w#C5h᫊3gWkdrrG"TT2V "D pE1M ,u= Mpw&X:7G{)N͞ͳ6j,tNmOiV]= r<#=e|J&'ɿ ]iy#z%١7|oObS28S W01z t@Y?ϬU"s C!;/_*a⢖j"O|ͮD*|ny#'kcd &Ӡhd^@}LW=t- b%f>kR+\p2+ Qhʢ%i]G'Z4،oN ;Z偐Į9 p=& e#kMQހ$tmD)N@َ[tbsb|Wءݖϼ]٩|{Y <5pZQe{]536\fscNWP){G%/Z{km K+&˷zø719 ꯚ\^dP (9 Mjd3q/o^f5佇8;'ǙQĚot_׾ #DƭbN5<3W>~e/nꟐE!-א~|QDQ_ILhP".m-rµ]4"?hz'ˢ\)tg6 Ӗѧy/Q@GxacP JBDv0>xC8)W~"P u;=nC"ThKN=`< Z<|y,5^Z:3Fmg07`esbSt?φ-H_9*MCt&g/2zVuǔkhU6X+*XMpgS&-T< cF+\HgUVsl^Bȓ'HJrs+-P~qQMv];Sv%TΞA&i̽3[M{@MN~@ӂIGb#zp.&?O%u>a 8#jCE 2쯖 `7ѯ_:Ǩ7fNg5aޚ:ٕO5?9q%2ԧ#}V{BtMĎ7/xE S^dHnn.cE(Js)h}s}opͯ[},/ ~:x ǽh˧#_+͋\tk1PՑIrH3vsjϰmJ5]  eK%GJU8A HOL Q@v`^X a-VHy2OiaI+.2+2r=5o`HK^Qv) Cdp{鸌Eۈ٘yY/f3rЎK ln-;\20;;I3U\ŹekNʣ@W6 Rұ,2 <8m*~,}}RD9Nk6x7_@N`TYx7%ոT|I]{ е IT[U.Vb(&A}Ne>&^H:6ff[_@5) vmk 3#%L3FH{1gE](lKi\R㞾#ɳr`N)Sf M5jn4{^?7"2W <8Dr̂;Son̼ _&m. hf)_J Hdk'vhLUN\8NGkzބi+]||X`8ѶGN,$U,Gw[۳G2cP*%4]eIfevzg21]ay@sҝQ'Baq AWht]eiש==ЍF_#0iMwe?0K*=?יs~V?K6EWocH pK'!/rbu-_V2Uשsiiy*rb."#)}e?/Z8B”,ϠE|HZf>%2$®^VH /1uOf &㩑ZfyW_}ڠ»sTB {O-ka Cz6SD5SOo*n%&韚|Zwlv$ARq"ON"04Y6y4]loԭw&JybVbkܘ-I10|Z9f28(gwSVa(yNDC,ݹ'2E@u W|{aGwP%@3=388GضA5Vex]ψ (4u.6mo$H3``SSxiuv!̬aEBIv+ f~$+KQ_.f1IԣW.G?Yd[Ԁ+Sa7؟e5?Sw =k&-$/V\[{p9\5Lgfpq&MYakA89glar #^4` '&B0çq Uzx?۶`Eʉb…ewR.`Z@ņ h))bZ\M[w=1Lw dw6eWn"?ߡ_C+}ʰ.?GH ) S'W0^ITٌn(籋 .շQjpvE:xBT_0wy=KkЯsHO̾ tlOD].{>&W,)ͻ2*-Iޒs[4:QCow +_2f2~eDZN\;i>YT줿X (%}]ENnD$`Jx?_ǔ:燊;s)ᚇVBPɲ.ɵV2n,+Z19uQq:Eo|w <(r.츨6뙂 h  2( x^ԗx_vF$a^+5ouZjbZ &xo#&]mခWIZ}>,dP=ݵOHXzʈ'P׮Ev2='cWw#?cdžVW78uYP{ܳLCm4N^#&"6vsf-سi/{:Zυ&.41b=\:ngb}9WEOtSJ8 RmO:$ Q~شsLpQ69wņ*(wfapMҚp+Vhᢎؾ=w<>< #"S, m4W"TL7HV}f":Ķ˔ $6b%&k=/gx$".94WXn-\e'iJβKt+R%=B{{O"2 P!˟Yk;Y J'Z5/ 9 lH^Mz| vB_֮@5۽SzLDvvDCe^9]GPhXf'.FXw>90uDz6\O4Gfra3:JDMOD1s| z_2lg RLp<;e )[ĚDNİw@cJOqLX!eN_VR?"TW3@[_n%UBlhM;JKGHx!ocK; IW!p3P8XY߰pAu7!b׿n؞j%H#ޘo!q9:3DG}{<`e^5ŌjQ熃J(+׽*;BuVo}\` uE&+CD _iѺnSJޝ2cۛlBws3<;ýոgà[bx +qQ\a3Uv!bׇ&?nfO_FråvDpæG\PYOuh0Vz ݳBPJr|}5gA+isvE(wۃg]DACj^cy!E RCA<}xCE7`+@sG4N,?V7>}y\CwW/51ڒA{8i+lOElj|?inix< 6ԓR^Aqݡʔ@{ ӣ2 ~pĠqPVܗտ+nd wndV^Cv63p]9zQ?^ˤBh8Q@l?& ǦsI!Pyo/*bp)֢ NO9 [ fx\5hj| yy9-^sL] - WR|hڥH.=`c_lij_*ҌKhxsnSC8;gB=dd NQj)V9OI+l,:?\&ݑ: V"q,"d 坊wRs%&[>]#!wpvB5z.N" SdIA8Rkv$G (jzGe w|kh $;zɒk@5Dk\]wNQ2 9o˚\9oHb2E _LZa;.;w5WVz&CX$~9p4xD'L0ݬ!MbQN+R.k , * kڙKJ@qY.NHNh 6Z/k𐐤ʞ>rFKaM *L9翸O,,b\&[1 =ulFaf4U7-U r;@]^T'IٓW1O1qD[鿻͉^*3oWⳭ.|Sc*:̸'4 `ȡVS=TxId#mi]RF /&}ƒ&_|L_S·Աe 1| sOoTO*l%C0Mʇ#,^--DU}QF@ 54;Br0tDjhDLjJ722uv2'Hch>u5轌* eaPéO" pu1?W-)xQq!)`tUޟkwoZe9G* iY]onUn4Wuқ7Y\Ko{gi R77zpAEt&UؙbHk'4^).?g3Ͻͅ%33AvD~?<`K YYZں?&0p=f#irDrm fкR}~l>+6/ ؊HO.yaݑ^ FɁԈ'uP .آM䐃H:1|5PB{1zg1kyS+78mӥM$2uDZ灎ŷr+3<0I1OKlŬsiVKY'-_q{)|NuLN0ȇu>VKFq>#mvdO PtO+gڢDl͸p:{>#|Q \3AD=(\h5g&IJܨD5: <@h-漯ke Rvi(HoEJ\Q.]tn -2"BHm7hX&qPC]\3^9rSqco#&6KH!XJ$c0dڷ0F$o;/輝q?M_SNj#bEs}E I)q6ꉊ0sI?A) rYTCyA|F|W@BU;[4Z^5N`rFTArʨBoo4с(rڪ?mcSv!,#(󲁚Ix]V禥Bm @#/wg!B 2$>F6v}EFaLqzHI~$d65`B^p&n>R3Y[,cc (zdb C-f^PkWb`}_LJ+!tGH9f6(' :|EF _m3XSy<̹vCNxz2@j-T#[<í T$xU![K0)孶=3,U왞yj%(^G9Qՙ/]uE] ₚE{Ic\ꫩ7 ec~~SH_HEaTP͂GzE7/%LTVܯj R+ !JlA$ߍ[.We?t+ݚ^JM^z?guX lG*x?Ln6yفieH+֡hnA{2 EI>V[mplQn봫y)e ;Snl"rE|bVFpl!apn0>Ĭ6[= >GUy>7z\#&'fu(a$2ɮ<}%f~M Gf.8!qES#" ّbHoS *+NưwQh]D~:9uZQא:``kqۮb6s'ܠz^u7 _*io {E<#[ 1L\[grGyj6'U}ԝPmD=נewy=|;/zbl (8o&AY}C8 :tXޤ29z%&Y}blX VG8>t֩7@z )%άtɎ[RHYxc$x hg]pG6#(5[r>tfjϊ5ݐwo}t2aU?nf'6@hw=kUǜTN?YHa<;jt aʸdf}z=3 Xy]q%q[}^]eh ?@|̋zSz6ph+?i\TO–Q<F!g͹L1^Hvfm;8S#x6P.rw,0_X!嵩 r78 oYS(HML@aP;(oZj'\HBE!ITh3^_Ĩ؆v?bڽR Un(h APST}J'^m*|XV2lvPMV(XsXS$c:{X> 5Z Ta.#Wۄ? j_hv<63#pռJEv{*X㴡DʲbHDK,ӂE.RM+A(ԩa&6xkـ:pሖBYhZ))Is}^~ET/Z}s/6iOaـ" MzH Y fZr4/2\8tQߗBB>hy6emu"t\$yXM #]};\ΞkMo6BAN7ƞv >rrAF1glL9\q(3՟k93s"j},.~@,E}l2Rݟ/2E`؛C/P.B(3s ZScfSoн*T|[֐9t^\[dZU Ԛ7,(Ny>u >Fu3KmL=u+#5_ƵD+eQ3#ǧ2F Ѕ{F [$P2lp* | ɗ`W%:JЩU;+P:&2˜"w{+bn.}A5fW؋i/44KmEAgNSē 6 @!ǮEM%S>N_ 6n5F"xF&2 veHq t~ꧨ BcP#xenCDbG^[QHHeLBDjxG+1N5 /oF5Z\m DfZy(rE Pt K BE# OVe(t7""N"a<̦bI{2f{b!ܺ/C,ܯ %tLa1̼iv3Q;Z\ì$׳åL`Yŷ*W5ǀŘVP֗'$'hΓkwK=Jֻ*%qiNF*xu*k&X[kӫVّn=i^"{C,]Ip3H$C{4;@ <+xehwdOՐx3}hܰ" O`z xWxE8-e? +:Wd! Yn)`ҳC;i=9'Z3RTN"Ӫ#'F_E[,f8(@+^u~0!q^- ]?~S)Â盒yvj3X] !*;j^O|_M_5=b)(;c4,ZzՃ ZޛHE H'2XYő* 8D1|`n['/'.dQUۿŗㅗ0:H݆9zƱVR;Z wrLOʲ3AZql>BrtB&nD鍱%A*W~O b% ͛ }fgx ^M1LL 2/ ^j8J> *rdY P<T2Ba݊ {DZBTH?oƀg6|åàK!ϯ'R#]nfك0E,_-7peѻ8-r_/,Hh|sǑG?Δs߽4<=vt6%Z˥Y,Fp瘤KGy>RVb@NG-P;E_?8!zD(s^)|6-Q7#* Y6> r@?5myVp`Jpʰ-[Z}H4̥8TeĭlN\j( i,f{7"2 }˖șFuୋwԔKA 2}j}+RwvvIm >ϛ#ifo;1Rm@b&Lj|!U?zI~$?6>T 9oٌOv; Fʗ7q-K&#~)iZY;IxGWCY"c3Kqr iT4ѥnj2s5 w..eI4%dUps&0 3vs_iOdw£Q:y=6 Nk/Baj;˿^D8zK,̎ZɒN_FF;7cFdo ]pFMw4MA^B4 TBuM"|&%ڀAߍ}iYvD%?)zD'MGI]sxFQu!rMlգ!YS'wҜI\[E@OcD'6C@owhSZv!#*'7bn+ uy/UJ0HxŬhcnקOi2٥xp$gH+ΘѾ}]Mʥ nl$E߲|HaA9h_j3m`-/x}Y6\6olM,MK/prY W߶Bdv95QЖ8^%gڣTP{Anc΂ϓzu;Jw2 [lNu 0؈&6>T9;@tXXJ`KDC =pK_]- %8\n^'Uy]xH9i5xάk.vWeP:wb ġ;1iXN=}W,J/`chD{k,!NG'O;x;IyF8JK{;-(%*-x͉^0]~_vڹ̿/-X^@q@R:&YL3WG_5Qc!ʖ* ois 6 Bwj/z;i4[*SqmR[ nWm1-,3BFh%6cĮ<@ xitd".h!ث|W8yaftE&qmdh*G0'y)_eW?pĸd =݋qupbɱ fej c?'ٸ0 e4uY-O>G R[oH& cQ/M3f ãc:J؛,~<<9ez4&}c2oZ'%*R{n|'|$AI ];)l@1"=GHRiBqkuʥhLr$=hѰ(8"ǫ{Xbo:M9kECxte05Zg:$C@u[2NIfX 8zJK#Asr֞Wڔl^>WC– u-/NWLٔ upkR".^:v.)6+U WfgC&yv~ D;U!3јM}0V?=ubu)?LEbтYgKSNT*4Sr!{O7sPt(fi3 Vma̘ӀRҊ#NA+`Me_<2*\Gbl/d؀_Jce""ǀVvYY u$lNddҁW8Y~TUBɂI;"FX0 5cZٻ=W1:֒QYL2zASi!v&] hpXiJk;1dh`CMv4DNzUYzRkOI㽚{#8Az,gx)Jg`K\wĽ@Dqm('ֱOǣg0iJ \%+ rde0a![Ubq?^.j3 corSLJ>]8rGE],WgOix24t<CU(p}-vS\@?요BrS{)Z> "uL\8Smh>ʯZ]x gsX F3:v𛯌9az:\:*Qw7ocQI]<{$u_4:힉ЮqO5فLb6ƋjYqeV_AS-n8d1\Yuj34hg $ 5Ҷt )1$f˃AEu%p/n5Mv9=M P A "* ~P-\eېhd"XcQ1+iC4H h`/-5L#)wnrU%>ߏ"~,s٣2*z@8&Adm0ޝO7/V_s'}CXg9ժEuIaT],. `b&~wJ~t` % J5 fzkĦGZSH1eVH)ZKU;jW;F+ ⰀY W)Шw Oj+5MF6#xaXD^tFǎֈN ɞwQCNYNNqm'B+Ś3UV ?)y?\#<I$PFhEhn^a M4\Ԅ]kѪ҉: 6M5ہXiE  7uW1d ԏdg/0曛KQ[YA@W)#(w6:Pb>3>Oa-Zϭf]فL/ ûuX(lIL0˽L.%B|( |pS*>u,6 חnAhCdc@ HނOPD {MhT-зHTsؾqy.4P.Fln ^l'|4J࢒SἺIP|uIW4D[5ץ~W\_B2Q7;XP"d`sGK RsKlZCj[͘AȈb+Gpy Dڮ=]/s2 I{wZERoo smJC $pUH0ǀjLXMdp,` FEj*ޙZ.r-3S< E[DHw;Zi6AL u-C ߬$-̬W|XofkOX||zڽH,ۓ3/]U:X^'!0<'ߊa2@|qc?jTfF}CnEL~ۻhX?̲p)(!oi=RY켭J^AgURaP;ӟX_&Fhl6<8Z㕗f6{+2M]_DOƴ{\)'OJ9x)9U_5LSxȨtq~3>A%c\hŇ7IK6 >ʟ؄{!u>]vWm&U3ħhn_gV䥜ՈMm7 EWy!N >;kRUlI'׍UsRnbM`x*<ښv_} д7a3Ɍ߸~Tg`!:IG-O"qVCC! 2o^0> q(R)<\eM"dvꉄAE%gH*`|(wi=Sg \}W [ j,0+)y$uV{ hLU!;sy|/9̠TDOi_'VK"m2\=1~;TWxYXp⠮x-+hxNZ;XQ/vV#ᇌ4_xGnˤ[Y%hy!X\,s>i34ܮԒ~p9n\A%OnsM@"U/G8wR>= a *H/ bI:o+;Xg@S:ŊuƤrm<3l~֗gpS[Ns<.ԩL1x")HM =@ k5%1MXkBrP K'=|G 8CvO;_Y= ?F6'Lj5T#Y7EؤxHz>t,1mۃUqf՛GhҴ^kG< !zT,EDN/(i B)\iIQ-(?7h w]}m99!Ȇ !&ӯiZ@cB}|bzҀeNce.҅\:8fZ܉ͧ{)PqBmS{szEYKƽ'{~=/-kDO *|1/7쑮uZ[E04הPOcpFAU跓1z+0Jc3",0&oQ"1J&l j Zwr .Rl|D$6qB'Cx@$9?,m.˥Α (B6@Ep(<+T\Eʫ<)mO: ,Xٗ1X95Re\P{CT8OC U!T5OO{{y~_0貟-/#kt;jA(t %\s{V^oM=wߍcKcSJZ|5 8Ο8;i[^)G=KQWP8 k3:ǯ_m&AjjP _ Is8PzSwǢW?tY zTM_Q.7:+ Y2iצ0߇FC3IDs]G]r*1-N#p޽fDz6I tMxW#qe'{<>4n(Y}v }5\%|8wU,lUY_W`jq-u Jh(tXu04-׺jGYns*rNh(}q^Qҩ>aC't,K"WS>(~bsnگ;w @h==&k(99CML=w$HTg=V=ԿQ5?һ(]9`t+I8iMv`ĵʫAGo\,~v4jl[!%Zг-{e#G% _ĭM JyO- nKFw~>`5[%a̼RMy/6C9.(%om!/gt3ElEr0\֭/GQASbZB.~\`qwrUL^QT^5jdC`h, `0\R[ ,0Q7To3I\-zK stl%g]ɐr/|E*p5l4̩ `YG kwpHÛl13![㎃$"`M{}k/V{ŸV/zZ=Xy y%|Ѱj1^.015JCMF4n$Or].H%CC]-%VcbHWWշFQ dn֎ω&S&( ؕɸԘ,5]XcB~d4ԣ1*0jEӨN# ,NS>0H/j 5jJ#oy9iAP^rؚ8PSLT<⬾k1t2[zZ s'Z|RMpbFF'6)ߣ֩:hFAAQהFrWW*"ʧ! c.9'HV]dCozV/=*6KdMf ˃NY,* Sk+5`XME8(6J¦Ȟy=4Uӗ S"9%hc<㥷sջN{+1/̇u3H"CkSsZu\odsk`.tF7}b5@L $@1)KDr^m׏N(#o |_Y+[\U7rX-02wh4-[DOmي()SFF6꣬{iy O.`<ػy~I~ߺ0b XA5:F_ &GW{OR* :y1nN Hx>p4.}hzP 'x?jLzTQYZ7z/r>mYA:$W.*U@h DcOSrwn_m+!54|EI.n8͌a\4,4s>hG9dE3oD[W.!M ]ݭy8-?aCL((Y>&M3&?'B_үض~'LG=F*k/<^S!5V/È?蜝woV0x^rXQYU g $AA5.-DCE,;(&Lc949l@(q>47~vw-<OruTT9Li)Mxh䡭KCXSL[@ vfKD>ǥ d_/ݯM`>8M-%S3Er@A&`qt٪{X6,n؇쓵+l٭ ޽V3  ь{;AB½ rH19#F8-H6Xӊ+;JRt/նb<?;ND^ad8˅vlpԽ|L ȡNqrW3De'Lhx(V)X(][cO+_Ya|OE} h8>4JL-:" a0i_Qڣ,WTaT0&Oca%I L=1YZJ+>ȪGЁj *Y<\F;88`MAx!X6D2Q9tGPj'G3UyV_?@}k1c KdSQl%\1&Ȯ5B:nMfX}໾L`YfA]]dG2LL?=nRXΟIو bȍÑs詹=IK\cH? tHnH5kU 9E׏&14vPԅ*৓Ҳkx&yChA, M@%Y61 a䅸7dĪoWҪ%A zIj`o_=(,켨l(@uQۻjBg;8X K觐a|&+ט:-'̷seTPNتy_>NpZp7F\Ǜw2Bv?ˢ0Ýᝄb5O q>Ǩz%QѴ U꤀+eK큄&I5gg^ !Qkcz#o4c99k"Ko:2Ѹ^]`T<=6^0./x?|?=^qTM m$\;I,)cрFSCWmS6RTrp`S{>7xCxEw`$ `>%̂CT2c! jˆj﹦z.Ź`Ȣbpo:n"hQKOJ+7WRIIG(}r"8+CQN}͈US˳|GE9-JTd%`( n׺WK`Ɏ#\^s2&H(޾qu'nB4At| OPkHίd +/j_F1 NEGZn[RT~ڎSo}x wtert3w"7% z/ ˔0€Y_ 8,84WG#II#o'7*^7?7V'guQ\>߶G(B/ƅs(TSk[Ϊf,% rDB~4*LdzjT1߽|y|XO dM/םR0TŐ* T +aNTưMIm{*䀳TĽyo_ùH([@`i} ˧$xc &%3#Y"NYՅ]^ikw( u/64TI,u(Y>rݏۊ Kh!Gkv8w!jw[4ȰPW]eM.xK+R8K[/#=,LDNrV!nA>!1|pE%,wu+ g5Mvʙ/iR]:⁜DM}9i_rЄ]U?Ydľ' F}~ENӑQS6}@x}}}aL:X:KzMYr (-B%囏zwV =aLK~@wx@YwFun7l3^k P=PLPb:U5迢LLliO鳑mWRK>";ٜg|@iGh9SeC.]>\Bޞ4>-Kbݳ CA71-vi<-)čnEE@rNWY_:sOW =V 7ۃ)u6vU8 L]& q[_ } f|> ϸ=!";#Qi_2TsXFB8?AV-8[QllGG3_Hts7RJF<83wQ65R5i6MR̲r`8nhv)|9J ͘qE }n/]IQ9dz8} 'Ls 2‡X;XZJy[6I778 ٲHZ1iwP0k2 VHBٟkP^7$F8N-vG_!>>6`㘛UƳ ]Ht-~p{]G(x̘m'%d1މ"TG}!N,pV3Ad]HS|+A ;SYH{b_˰!>j:g9R=˾@Բ;wT*SnAףcx ;'}M_G>uիհ07_g/G,}WV2]!1_r2peJE@ 0dSk$"0AHԸ`HD5I/Bs {(p1U%C}6)&wZ ^d1_u^Œ(ʀ忉*sNᇌ/EUioi{TcBRՑ2}}Kc -PDW2:LaG!m`I`;dqg-òZ(bxa' ejf sl}@e"[L;(w:K [h*&rtȊ }BTW<:Mu!eww4e\9oғy'gby.gtCqoSYicab_b]zM#k*  OiqS6לn9oTYB Aυ12)lxeiجxM h iK=v ɾ o.JAL+4MS b`_ɛ5ˣAG[[6hTRv ;j"3 e#Q;vrW@J"q]~ѽ]#R܉kdM]ɝ]& %<Rg:+Du}mC(#Ҝn;DbA@Ha[{v=.fIߩ *5JJ{ƭp>bgsy3Z -?kp 0׎&9(JeG5i:qThGJ5/RVN1\ ␆Y0DkGE jIB306_]ܧ ۬7WΡsGkjwZlcZPcK j`T?Qg͐,ZR}YT`uٽAR'.d~0?X:{ /v9 WH?%NO߃w~B-:ŭ!@TgEz5tvAL.BCڔE6PR \ncmYW4Z1&gm^>``\ 8v:cXY!nIl:D D終]?dq6$G?F,y +I7Lﰋ t^Ihc!MD/uejQ7/8AN ?U l׋r,QNʩ)#giR!&~#da 8U,‚e]W;rG޼97>˻CJjBn4U~]}fRaL'qL ;?zzWMB@&佹^q{hΌO.N;CGt1L/<\NwOeJ~ VVMI~tѢH5( Z j8{Nd?jyՒ̥Z0..<.RμSoRP6{)야`ySIgKȈ=u_ Ruʭֱ5PەRDxUd4n10b|ak(^ C; y>ΣL*՚Z>L})_4ojs(GS1 iN(j\j`dֈJ:G_=< ܳÙ#%:\hxPI@PfpZ/Gl@ΠbHMfDJr*yr~V$&$ Zb;)I:A2WajθU\"b?NB!-VP;W+K^yW7Ηsl!I Gi|w~Qy89zS{ + & #{ݨP!',mvb;`)/!*1 }Ր"֎&V;N󊠻]EiE'u@юKnsA9 26 f'b~F҆af##igi:Uvx/ho_KLYC L)G%T/g{UEw' 9`lѶq5s- Nj0Dk҃ofGt;[B9p7:<3AubPg4uuj־/b!W<*7at#݆ǩrh0~AJ3Mr?۫>?1nzGX| еŐ'~艱9` C|.汨=F׸w^ׄz7ǁ[q-|gM/ڲRc+ -'K)뱸}40j"Bm9R4ZneEE\$ FP4gZ\<' |-4->v_hps(n{t b,DK̑ V qCīGJ6p&inq/oο91G).yHf2k;|ɧ)-ԅn1I)A̍f|M?UshoqbtVsơf:mk#o0u+iGfc.̓#ݍ\;U5l7lP{i!ee[!4ZOس5CL˗W S%ߨh6b$ vsW-~##!Lr@!0=\q&7Pg*@0oZCs2XD/$Z_O]R/FGqz=\dȊ^ 3_ae-[Z1Vgp,JV% }` ^ZG\G)kNJ!Vȡls}S Cgdiq n<5 NA=>M!K4^r'R,4 p5&mBYqGRRn, >dB= M4fp12Firt:GM#qb)ҹ#HYr |XZu_ӫ 2To1Н(굮nV}@%7H`b-fφO rb"6kl% ۪<m#'mf6]>{j4r?s+{G}.Q,ء$ #ѕ죙<;ո'|1_Jߖl~Wo[GܱЋ 5WYOzU:7c ǡXGlř @PT{i .7dMgz>yYA":z,\`aqWetemQ%314E?WfB4Ta ndvUSo?;v߆c]Ǐ@_" .IJI@$Xm< 9? (Ͳ+!mճehLr ?VGZGP Jt{ؐݰvZWa`<|N ]O#>*`d6w: |iuj-?nJƭY3K4Dfi Q/B gLoy32K%ޠ:*25v,pZE<КS@B%&.v%+.KgrfqI#`t|] ߓ102s:Zk;Q%[M6ITwTdE5 0fF@=j$T xo4N1vj!39tZ+'c|O0Pr'Xh (OuD%]ݤ_ Y }7—d@/ q|%'eoM+}ќ\>,H`hntnӇ–t77IH, S" gxɝڑ jq[6;nxryyj'b( ]$$H9W"@$6+Xf5Q=ೝ9mZk>tΜ+n@E_ǽGa6D粊x2'*ʏ'E,qry(ewWIߍ"a4yC!W`SK1<t2 k1ub6$7̢b6(l$6Hr.s }.>7\˃_)`첎0B`La^2 n./(D ! pc;NOX@Wu2VM|+E^G@ XkF7 x7p'#-o{RZ#2Pmf=u}uѷj?DU"Ɂ/T4ŠUm._Y|ċNeX#YMW8()K/UI}/ ay z;DsZYN3}ӱ֋;[O>Dˢdb2 ٜq¡Z5ٶxOjƸǷVwh¡V+J^sO}@d'QǷ)ѽΞ|2ȼLElZF^@4Bۍ9$릍QW%0ζLaHd0T?gJ.`i+6X܈%T0"?љ\E\;'eNe]\R{dm3h/ I͙XjnO .mϡI‚$[)dwDm'P0XQqU-w""QY҅jڥP6[ɟϾAg6Gű.d P^|R꓃۾i۶mi[TYtw^Ac:l,>TZqQzqQIRGW!-&T0M3o0`*fs=7::~win>:dt7_tcI0&-3˰Jz -i3 Op,ÁrFSV<30JtW޳TUe[1 ZldKaRri'Β$y;e1GQ״sKoA#bo>Ӕ%ˀfeV ථ:zVyn*)&yB4| NGtINp]дJc RIlD  ;Vʐ%_pLJ4o; Ω 6j]dX9YTi6bd8/ֽUa>.X0[ܳU4n?)֕.b{ ctn+pyk; c'Q05;i,Q(boM_ˎ#FR!htqo R8MjQM=. 2Sh71oυ ]"J*9.=jMx93̸q#Ty6$XC'F>2K{i/ԻlH=PI{7H ŭXofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,HKa`Ll&E 2Z{ Y^yC^HXmPCǾ7/1-5 iTn*G,G l[C7HQo<63jK@Z΄Ft&t?Xo3^^f#*yzs3G%Zo >&X{fYHw+َJm^3XvӺ=q_{&Rd\i+ø<_7 嫯g'E+I<`RDIda4V$cMLDC%acCIb7Y&gOi,{Ռ!9Ř4A ^Ias/U/c#&ypOf7k> 11qS;H+ɼ)tde0X sԾWO:Z]h7xppgUVb0~pv%iFŚ!ĜWURLҜ :W&MJ;& _.Icd|Ki,$(rYYk|| @KU(ɞYpw>}7+sxhrh8 Bh'tv.1wa3fEmy3ƛ>JnKNcvJ4RO۩T6Q,6t^rArOrK,X*%?AHNW8 M r$Cs@8 *Bnr:wÝJ pdƗUv+oa:U5l ;BGe/ef<Ƌ1J Ac [rW?}[t Цh(>DŸ:eaxkM5".7}ΒPnL pk{O{p~d3kjs,AkNE2{>fw\@*Up[b(-Qn& .:{ɪ_uEEeS&ؿH5}_{6\m"aK"v}מ_kI7=̧f#mpX#'$ZidUv},}îo*Tr>`}{Z~ǧdDV~$"cv3c\ 8X%q] GF?ug/8R!_y!?C orm R Ut=*u(Am <@WG9(ľ}hX\_&Pzq7St"P 5 [/o=Hײ.~ldjzk7]"\ɞIuA Rg $x!"U63  .=ĉ^jB&ASyv0/12pM%|?o5z|h $r \I&ZpbKK1&T 6hN^ 6J ̈́b԰_4`}+BeEI[|C,_&f19|̿EZ3"rxAwZuq/JŸ7OU{kуH@38KA$:yIE.*$6!<K,qWWս"X%G۵Mv.%ѳJYd͢2ZYIxbe KGv;0/Ʊvpdd}QD-+!$Ǖ[ǜ9¤)NN0ODBH#NZNNEfxQ7olo4LK5;um#q,9lCGZSRcYA}ntזl(2[ Oko;qo+wG$ЍO_j4lcwͺKA=tRn:`]=Xs2[iuEZ14:1"ǀ$ng%[u#)@Ρ5G6m89^Eiez T');pkgR)Pi_??NJTLᣵ}pb ʔˇ{ WdX,^K(PiA:MцT7.{ %$$ +L,5[p9?E)sRSo g7!@ͶLGr}Sm͆5L`J3AV|LOMdj{ ȬDdlZj?43(U\?8u. p(E:J3xJ1?^%VbkTY|:Vρ?NmFzY <:ҁS2!ru0{[p56٧Y#K~8 a !{_Rr0$)K$s =& Uy].Z{g+t@A:EOt?Ï8>CHd@kDY`hP*$'юV]&˜b%6˹!hJ؉5r!6F YGʓ,:T}JS,.R ~XUrA"A`9AS~1gDMrTgulH)jPkJ wfN3%_֊q:d/*5(_"P 騚L÷Deu2Y;Ji68j' FV 6il,<2MH,~Oq~kt$0Fޚ6DԤ !T [$K#Υ QTF`l4|T*66?)7;CǻERs<`D XY̆u:H$}>-Yhn7Cq WTkM8 z&=0j}͆ĽVE/c$wLf@* qk 96Lzm+tAU-05zeVSЂQA`Z[m7ϖӰyׅn뵝&\W}t[2ڍr}PuaEՉ. XmA\WZGN 66+GPr~š!;Y|Tn)\%r0?ƹ C$ʝk2J#X9r:[˓uZ9 YR\qM-*xlj[/}#{ˏ.h Fq%l3O JѸB0OM摜{w֫Ts楴Gl\M~Sq@=>3}x=TGF="P_@9^1x zhލ;a䡱G+g W]{ {px+֙xC̑V0T{ 7( /ZJ¶.̂N;pXWoA8h@NG5HEO4je@o\Q2H3Q/aNp"G },u !eS5dB?dfuUdɕ ][ Hskc {oMɿ)ݖ{@N8`S#߉4︆hN#}NnxIN*T3b[~yF-߷5|]\NIT"fӴsq]{0<N*S~u`D=Pģ0 VU[O[o^ "_ gkil !d/vvv8q6dCӱhQ%]0}F BCy "hr!QpΠztQFKOMx@W'MkT]讐 ^ Z_|nr8#k6BhDy/g18:co "+!9ҵ|,/"Vǣ40[a >y&5vML SqF4%ZlW}iVt'TCB`@\{Bf'z*td [$l<:$"(,a^DخB̫4 & ¦!J%%);,3v޿2Fe';x? 0S*hk |\$|.E_z),Lߞވ)8l>qzR}c}g/icVmO&%hQqL1Zg[cO@ɝvu::'@S1<&]҂>;SE<8haVn˘NeHBvSm_ UfZap$5->ҌUM1jr 䱄g5ϠsPJG=7y 0#:Ml!(}C1FT/SPKQ 6xIH,XruƏ#]f1(Yk{~y|+B7:#Z rL {_Km|i.lLm,%IHjIBsXTɢimީ|eyAOiz,mwo.OFC ҉dGO>vHmSk:;:^aMSQdaL ƫsl ;sƅ"J0p46xxxD? TFLC1xVފ|BC\_s/sb vLxPw?L$ ( OF -XJ&{ԉH{1E+$rIP!P`Ya3!X驞22mabX)wu]b+~IfdNlF|iM^ vzD(z3Jie5XCQNRuTr+w8cٜ<!8oo_R(-@A[{3+'gY\,;c5AURU iUީ2 06+VU_ 1sw ~p']\!c l5{d&-erNj_G[R ;"!XmYj8y(!<5[wv.an]Cxgolang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/jwx.go000066400000000000000000000050721465311135100221110ustar00rootroot00000000000000package main import ( "encoding/json" "fmt" "io" "os" "sort" "strings" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" "github.com/urfave/cli/v2" ) var topLevelCommands []*cli.Command type dummyWriteCloser struct { io.Writer } func (*dummyWriteCloser) Close() error { return nil } func outputFlag() cli.Flag { return &cli.StringFlag{ Name: "output", Aliases: []string{"o"}, Usage: "Write output to `FILE`", Value: "-", } } func keyFlag(use string) cli.Flag { return &cli.StringFlag{ Name: "key", Aliases: []string{"k"}, Usage: "`FILE` containing the key to " + use + " with", Required: true, } } func keyFormatFlag() cli.Flag { return &cli.StringFlag{ Name: "key-format", Usage: "JWK format: json or pem", Value: "json", } } func main() { var app cli.App app.Commands = topLevelCommands app.Usage = "Tools for various JWE/JWK/JWS/JWT operations" sort.Slice(app.Commands, func(i, j int) bool { return strings.Compare(app.Commands[i].Name, app.Commands[j].Name) < 0 }) if err := app.Run(os.Args); err != nil { fmt.Fprintf(os.Stderr, "%s\n", err) os.Exit(1) } } func dumpJSON(dst io.Writer, v interface{}) error { buf, err := json.MarshalIndent(v, "", " ") if err != nil { return errors.Wrap(err, `failed to serialize to JSON`) } dst.Write(buf) return nil } func getSource(filename string) (io.ReadCloser, error) { var src io.ReadCloser if filename == "-" { src = io.NopCloser(os.Stdin) } else { if filename == "" { return nil, errors.New(`filename required (use "-" to read from stdin)`) } f, err := os.Open(filename) if err != nil { return nil, errors.Wrapf(err, `failed to open file %s`, filename) } src = f } return src, nil } func getOutput(filename string) (io.WriteCloser, error) { var output io.WriteCloser switch filename { case "-": output = &dummyWriteCloser{os.Stdout} case "": return nil, errors.New(`output must be a file name, or "-" for STDOUT`) default: f, err := os.OpenFile(filename, os.O_CREATE|os.O_WRONLY, 0644) if err != nil { return nil, errors.Wrapf(err, `failed to create file %s`, filename) } output = f } return output, nil } func getKeyFile(keyfile, format string) (jwk.Set, error) { var keyoptions []jwk.ReadFileOption switch format { case "json": case "pem": keyoptions = append(keyoptions, jwk.WithPEM(true)) default: return nil, errors.Errorf(`invalid JWK format "%s"`, format) } keyset, err := jwk.ReadFile(keyfile, keyoptions...) if err != nil { return nil, errors.Wrap(err, `failed to parse key`) } return keyset, nil } golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/key.jwk000066400000000000000000000002221465311135100222470ustar00rootroot00000000000000{ "crv": "Ed25519", "d": "OJwlw3P0dqt7i7zInqap0ifDj0iVVSRmexe4lzNrXc4", "kty": "OKP", "x": "14sVO4wa1ZKZ5w5cbiZiwjXeDkEJia_7A6OvJEwGRHA" }golang-github-lestrrat-go-jwx-1.2.30/cmd/jwx/message.jws000066400000000000000000000001631465311135100231170ustar00rootroot00000000000000eyJhbGciOiJFZERTQSJ9.aGVsbG8.ttC4S9aCLoCFPzMpqJVMrcfE-Xc9_4bI6f79AD6ZheNBrSXwvJRS3SMK6LID8scZOvhdjv_iOF5t0KaX6kIFDwgolang-github-lestrrat-go-jwx-1.2.30/docs/000077500000000000000000000000001465311135100203235ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/docs/00-anatomy.md000066400000000000000000000122531465311135100225350ustar00rootroot00000000000000# 1. Anatomy of JOSE and JWX In this article we will briefly go over what JOSE is, and how each JWX libraries map to the respective RFCs. --- # JOSE Overview Javascript Object Signing and Encryption is mainly comprised of specifications that span over 5 RFCs: namely RFC7515, RFC7516, RFC7517, RFC7518, and RFC7519. * [RFC 7515 - JSON Web Signature (JWS)](https://tools.ietf.org/html/rfc7515) * [RFC 7516 - JSON Web Encryption (JWE)](https://tools.ietf.org/html/rfc7516) * [RFC 7517 - JSON Web Key (JWK)](https://tools.ietf.org/html/rfc7517) * [RFC 7518 - JSON Web Algorithms (JWA)](https://tools.ietf.org/html/rfc7518) * [RFC 7519 - JSON Web Token (JWT)](https://tools.ietf.org/html/rfc7519) As there are many RFCs involved, at first it could be daunting. But here is a breakdown for beginners. While there are other standards and RFCs available related to JOSE such as extensions like ES256K, the above 5 concepts are at the core. JWX is a Go specific implementation of the JOSE ecosystem, and attempts to do this as cleanly as possible. # JWT - RFC7519 First, you are probably here because you were trying to work with JWTs, which is described in RFC7519.  JWTs are implemented in github.com/lestrrat-go/jwx/jwt package. There is also a package to deal with OpenID extensions in github.com/lestrrat-go/jwx/jwt/openid.  In its essence, there is nothing special about JWTs: they are just a standardized format to exchange some piece of information. Most of the times this information must be integrity checked using signatures, securely encrypted, or both. While they are referenced from RFC7519, the standardized message formats for signed and/or encrypted JWTs are not in the same RFC. As a side note, many libraries bundle these signature/encryption features into one JWT package, and API becomes tightly coupled with the JWT, which I find confusing and hard to fix/extend- which is part of the reason why JWX was born. ## Documentation for `github.com/lestrrat-go/jwx/jwt` * [FAQ-style HOW-TOs](./01-jwt.md) * [Documentation on pkg.go.dev](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt) # JWS - RFC7515 RFC7515 describes JWS, which is used to sign payloads. The format is not necessarily for JWTs: it can sign any arbitrary piece of data. The signed content can be encoded in two different formats. The most common one is called the compact form, and takes the form of three base64 encoded strings, concatenated by a single period ("."). The other format takes the form of a JSON object. ``` # An example of a "compact" JWS message eyJhbGciOiJFUzI1NiJ9.SGVsbG8sIFdvcmxkCg.3q5N5JyFphiJolUZuBuUZhuWDfmLDR__rZe3lnuaxWe3bfrfvJS9HmUUhie56NqkyN7vjOl8hm6tzJKTc2oNsg ``` JWS is implemented in github.com/lestrrat-go/jwx/jws package. This package provides ways to sign arbitrary payload into JWS message, and ways to verify them. ## Documentation for `github.com/lestrrat-go/jwx/jws` * [FAQ-style HOW-TOs](./02-jws.md) * [Documentation on pkg.go.dev](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws) # JWE - RFC7516 RFC7516 describes JWE which is used to encrypt data. Similar to JWS, JWE describes the standardized format to encrypt any arbitrary data, not just JWTs. And again, similar to JWS, JWE can encode data into two different formats, one of which consists of 5 base64 encoded strings concatenated by a single period ("."). The other format takes the form of a JSON object. ``` # An example of JWE message eyJhbGciOiJFQ0RILUVTIiwiZW5jIjoiQTE5MkdDTSIsImVwayI6eyJjcnYiOiJQLTI1NiIsImt0eSI6IkVDIiwieCI6IndMckhLNnBTLXZzdmhQZUNfNTN0ZWpxYzZIZUFsMllRWDRmY1hPNGV1bmciLCJ5IjoiV2V3bFdKazJ4QWJYSXE3WFJ6aVlZa2lxMjJfOF9TQ0VsbTA1Vm1iUGhFWSJ9fQ..7UTcbVpz-Ed1Q0wq.sneVfeTeAvzZNSMGpQ.JNo1BbDaKB-Q1mWaBNmdow ``` JWE is implemented in github.com/lestrrat-go/jwe package. This package provides tools to encrypt payload into JWE messages, and tools to decrypt them. ## Documentation for `github.com/lestrrat-go/jwx/jwe` * [Documentation on pkg.go.dev](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwe) # JWK - RFC7517 So JWTs can be signed and/or encrypted using JWS and JWE. However in order to do either operation one needs some sort of a key. This is where RFC757 which describes JWK comes into play. JWKs describe formats to describe keys, such as RSA keys, Elliptic Curve keys, symmetric keys, etc. Each family of keys have a slightly different, unique format, but they are all encoded as JSON objects.  ``` # An example of a JWK { "crv": "P-256", "d": "vVLuV63SADBsZrixRXs3hcteS7SaBrMPnxERz6G1xZ8", "kty": "EC", "x": "uNs7UU1KU9nug9QrfxLmxLtYZLQDnYcX7_J3zkTkhCk", "y": "IGsWjOsDHFbeiQg-Reih-a1BsijmV2RUPPGswl8TRTI" } ``` JWK is implemented in github.com/lestrrat-go/jwx/jwk package. This package provides ways to generate, read, and manipulate JWKs, convert them to and from raw key formats (e.g. "crypto/rsa".PrivateKey to JWK and vice versa). It can also work with PEM-encoded keys. ## Documentation for `github.com/lestrrat-go/jwx/jwk` * [FAQ-style HOW-TOs](./04-jwk.md) * [Documentation on pkg.go.dev](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk) # JWA - RFC7518 And finally, RFC exists to define commonly used algorithm names in JWT, JWS, JWE, and JWK. This is implemented in github.com/lestrrat-go/jwx/jwa. golang-github-lestrrat-go-jwx-1.2.30/docs/01-jwt.md000066400000000000000000000334161465311135100216760ustar00rootroot00000000000000# Working with JWT In this document we describe how to work with JWT using `github.com/lestrrat-go/jwx/jwt` * [Terminology](#terminology) * [Verification](#verification) * [Validation](#validation) * [Parsing](#parsing) * [Parse a JWT](#parse-a-jwt) * [Parse a JWT from file](#parse-a-jwt-from-file) * [Parse a JWT from a *http.Request](#parse-a-jwt-from-a-httprequest) * [Programmatically Creating a JWT](#programmatically-creating-a-jwt) * [Using jwt.New](#using-jwt-new) * [Using Builder](#using-builder) * [Verification](#jwt-verification) * [Parse and Verify a JWT (with a single key)](#parse-and-verify-a-jwt-with-single-key) * [Parse and Verify a JWT (with a key set, matching "kid")](#parse-and-verify-a-jwt-with-a-key-set-matching-kid) * [Parse and Verify a JWT (using key specified in "jku")](#parse-and-verify-a-jwt-using-key-specified-in-jku) * [Validation](#jwt-validation) * [Detecting error types](#detecting-error-types) * [Serialization](#jwt-serialization) * [Serialize using JWS](#serialize-using-jws) * [Serialize using JWE and JWS](#serialize-using-jwe-and-jws) * [Serialize the `aud` field as a string](#serialize-aud-field-as-a-string) * [Working with JWT](#working-with-jwt) * [Get/Set fields](#getset-fields) --- # Terminology ## Verification We use the terms "verify" and "verification" to describe the process of ensuring the integrity of the JWT, namely the signature verification. ## Validation We use the terms "validate" and "validation" to describe the process of checking the contents of a JWT, for example if the values in fields such as "iss", "sub", "aud" match our expected values, and/or if the token has expired. # Parsing ## Parse a JWT To parse a JWT in either raw JSON or JWS compact serialization format, use [`jwt.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Parse) ```go src := []byte{...} token, _ := jwt.Parse(src) ``` Note that the above form does NOT perform any signature verification, or validation of the JWT token itself. This just reads the contents of src, and maps it into the token, period. In order to perform verification/validation, please see the methods described elsewhere in this document, and pass the appropriate option(s). ## Parse a JWT from file To parsea JWT stored in a file, use [`jwt.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#ReadFile). [`jwt.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#ReadFile) accepts the same options as [`jwt.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Parse). ```go token, _ := jwt.ReadFile(`token.json`) ``` ## Parse a JWT from a *http.Request To parse a JWT stored within a *http.Request object, use [`jwt.ParseRequest()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#ParseRequest). It by default looks for JWTs stored in the "Authorization" header, but can be configured to look under other headers and within the form fields. ```go // Looks under "Authorization" header token, err := jwt.ParseRequest(req) // Looks under "X-JWT-Token" header token, err := jwt.ParseRequest(req, jwt.WithHeaderKey("X-JWT-Token")) // Looks under "Authorization" and "X-JWT-Token" headers token, err := jwt.ParseRequest(req, jwt.WithHeaderKey("Authorization"), jwt.WithFormKey("X-JWT-Token")) // Looks under "Authorization" header and "access_token" form field token, err := jwt.ParseRequest(req, jwt.WithFormKey("access_token")) ``` # Programmatically Creating a JWT ## Using `jwt.New` The most straight ```go token := jwt.New() _ = token.Set(name, value) ``` If repeatedly checking for errors in `Set()` sounds like too much trouble, consider using the builder. ## Using Builder Since v1.2.12, the `jwt` package comes with a builder, which you can use to initialize a JWT token in (almost) one go: ```go token, err := jwt.NewBuilder(). Claim(name1, value1). Claim(name2, value2). ... Build() ``` For known fields, you can use the special methods: ```go token, err := jwt.NewBuilder(). IssuedAt(time.Now()). Audience("me"). Issuer("foobar"). Build() ``` One caveat that you should be aware about is that all calls to set a claim in the builder performs an _overwriting_ operation. For example, specifying `Audience` multiple times will only overwrite the previous value. If you have fields that require a list of string, you should use `[]string` as the value ```go // WRONG. The result will be "aud": "bar", not "aud": ["foo", "bar"] _, _ = jwt.NewBuilder(). Audience("foo"). Audience("bar"). Build() // CORRECT. _, _ = jwt.NewBuilder(). Audience([]string{"foo", "bar"}). Build() ``` # JWT Verification ## Parse and Verify a JWT (with single key) To parse a JWT *and* verify that its content matches the signature as described in the JWS message, you need to add some options when calling the [`jwt.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Parse) function. Let's assume the signature was generated using ES256: ```go src := []byte{...} token, _ := jwt.Parse(src, jwt.WithVerify(jwa.ES256, key)) ``` In the above example, `key` may either be the raw key (i.e. "crypto/ecdsa".PublicKey, "crypto/ecdsa".PrivateKey) or an instance of [`jwk.Key`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Key) (i.e. [`jwk.ECDSAPrivateKey`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ECDSAPrivateKey), [`jwk.ECDSAPublicKey`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ECDSAPublicKey)). The key type must match the algorithm being used. ## Parse and Verify a JWT (with a key set, matching "kid") To parse a JWT *and* verify that its content matches the signature as described in the JWS message using a [`jwk.Set`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Set), you need to add some options when calling the [`jwt.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Parse) function. Let's assume the JWS contains the "kid" header of the key that generated the signature: ```go src := []byte{...} token, _ := jwt.Parse(src, jwt.WithKeySet(keyset)) ``` Or, if you want to switch which `jwk.Set` to use depending on the contents of the unverified token, you can use the `jwt.WithKeySetProvider` option. ```go provider := jwt.KeySetProviderFunc(func(tok jwt.Token) (jwk.Set, error) { // choose which set you want to use by inspecting tok. // Remeber that tok is UNVERIFIED at this point ... return keyset, nil }) token, _ := jwt.Parse(src, jwt.WithKeySetProvider(provider)) ``` While the above examples will correctly verify the message if the keys in jwk.Set have the "alg" field populated with a proper value, it will promptly return an error if the "alg" field is invalid (e.g. empty). This is because we default on the side of safety and require the "alg" field of the key to contain the actual algorithm.The general stance that we take when verifying JWTs is that we don't really trust what the values on the JWT (or actually, the JWS message) says, so we don't just use their `alg` value. This is why we require that users specify the `alg` field in the `jwt.WithVerify` option for single keys. When you using JWKS, one way to overcome this is to explicitly populate the value of "alg" field by hand prior to using the key. However, we realize this is cumbersome, and sometimes you just don't know what the algorithm used was. In such cases you can use the `jwt.InferAlgorithmFromKey()` option: ```go token, _ := jwt.Parse(src, jwt.WithKeySet(keyset), jwt.InferAlgorithmFromKey(true)) ``` This will tell `jwx` to use heuristics to deduce the algorithm used. It's a brute-force approach, and does not always provide the best performance, but it will try all possible algorithms available for a given key type until one of them matches. For example, for an RSA key (either raw key or `jwk.Key`) algorithms such as RS256, RS384, RS512, PS256, PS384, and PS512 are tried. In most cases use of this option would Just Work. However, this type of "try until something works" is not really recommended from a security perspective, and that is why the option is not enabled by default. ## Parse and Verify a JWT (using key specified in "jku") You can parse JWTs using the JWK Set specified in the`jku` field in the JWS message by telling `jwt.Parse()` to use `jws.VerifyAuto()` instead of `jws.Verify()`: ```go token, _ := jwt.Parse( src, jwt.WithVerifyAuto(true), jwt.WithFetchWhitelist(...), ) ``` This feature must be used with extreme caution. Please see the caveats and fine prints in the documentation for `jws.VerifyAuto()` # JWT Validation To validate if the JWT's contents, such as if the JWT contains the proper "iss","sub","aut", etc, or the expiration information and such, use the [`jwt.Validate()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Validate) function. ```go if err := jwt.Validate(token); err != nil { return errors.New(`failed to validate token`) } ``` By default we only check for the time-related components of a token, such as "iat", "exp", and "nbf". To tell [`jwt.Validate()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Validate) to check for other fields, use one of the various [`jwt.ValidateOption`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#ValidateOption) values. ```go // Check for token["iss"] == "github.com/lestrrat-go/jwx" if err := jwt.Validate(token, jwt.WithIssuer(`github.com/lestrrat-go/jwx`)) { return errors.New(`failed to validate token`) } ``` You may also create a custom validator that implements the `jwt.Validator` interface. These validators can be added as an option to `jwt.Validate()` using `jwt.WithValidator()`. Multiple validators can be specified. The error should be of type `jwt.ValidationError`. Use `jwt.NewValidationError` to create an error of appropriate type. ```go validator := jwt.ValidatorFunc(func(_ context.Context, t jwt.Token) error { if time.Now().Month() != 8 { return jwt.NewValidationError(errors.New(`tokens are only valid during August!`)) } return nil }) if err := jwt.Validate(token, jwt.WithValidator(validator)); err != nil { ... } ``` ## Detecting error types If you enable validation during `jwt.Parse()`, you might sometimes want to differentiate between parsing errors and validation errors. To do this, you can use the function `jwt.IsValidationError()`. To further differentiate between specific errors, you can use `errors.Is()`: ```go token, err := jwt.Parse(src, jwt.WithValidat(true)) if err != nil { if jwt.IsValidationError(err) { switch { case errors.Is(err, jwt.ErrTokenExpired()): ... case errors.Is(err, jwt.ErrTokenNotYetValid()): ... case errors.Is(err, jwt.ErrInvalidIssuedAt()): ... default: ... } } } ``` # JWT Serialization ## Serialize using JWS The `jwt` package provides a convenience function `jwt.Sign()` to serialize a token using JWS. ```go token := jwt.New() token.Set(jwt.IssuerKey, `github.com/lestrrat-go/jwx`) serialized, err := jws.Sign(token, algorithm, key) ``` There are some options available in the `jwt` package to modify the JWS behavior such as `jwt.WithJwsHeaders()` to specify extra protected headers to the JWS message, `jwt.WithVerifyAuto()` to invoke verification via `jku`, etc. Please read their documentation to understand how they work. If you need even further customization, consider using the `jws` package directly. ## Serialize using JWE and JWS The `jwt` package provides a `Serializer` object to allow users to serialize a token using an arbitrary combination of processors. For example, to encrypt a token using JWE, then use JWS to sign it, do the following: ```go serizlied, err := jwt.NewSerializer(). Encrypt(keyEncryptionAlgorithm, keyEncryptionKey, contentEncryptionAlgorithm, compression). Sign(signatureAlgorithm, signatureKey). Serialize(token) ``` If for whatever reason the buil-tin `(jwt.Serializer).Sign()` and `(jwt.Serializer).Encrypt()` do not work for you, you may choose to provider a custom serialization step using `(jwt.Serialize).Step()` ## Serialize the the `aud` field as a single string When you marshal `jwt.Token` into JSON, by default the `aud` field is serialized as an array of strings. This field may take either a single string or array form, but apparently there are parsers that do not understand the array form. The examples below shoud both be valid, but apparently there are systems that do not understand the former ([AWS Cognito has been reported to be one such system](https://github.com/lestrrat-go/jwx/issues/368)). ``` { "aud": ["foo"], ... } ``` ``` { "aud": "foo", ... } ``` To workaround these problematic parsers, you may use the `jwt.Settings()` function with the `jwt.WithFlattenAudience(true)` option. ```go func init() { jwt.Settings(jwt.WithFlattenAudience(true)) } ``` The above call will force all calls to marshal JWT tokens to flatten the `aud` field when it can. This has global effect. # Working with JWT ## Get/Set fields Any field in the token can be accessed in an uniform away using `(jwt.Token).Get()` ```go v, ok := token.Get(name) ``` If the field corresponding to `name` does not exist, the second return value will be `false`. The value `v` is returned as `interface{}`, as there is no way of knowing what the underlying type may be for user defined fields. For pre-defined fields whose types are known, you can use the convenience methods such as `Subject()`, `Issuer()`, `NotBefore()`, etc. ```go s := token.Subject() s := token.Issuer() t := token.NotBefore() ``` For setting field values, there is only one path, which is to use the `Set()` method. If you are initializing a token you may also [use the builder pattern](#using-builder) ```go err := token.Set(name, value) ``` For pre-defined fields, `Set()` will return an error when the value cannot be converted to a proper type that suits the specification. For example, fields for time data must be `time.Time` or number of seconds since epoch. See the `jwt.Token` interface and the getter methods for these fields to learn about the types for pre-defined fields. golang-github-lestrrat-go-jwx-1.2.30/docs/02-jws.md000066400000000000000000000163331465311135100216750ustar00rootroot00000000000000# Working with JWS In this document we describe how to work with JWS using [`github.com/lestrrat-go/jwx/jws`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws) * [Parsing](#parsing) * [Getting the payload from a JWS encoded buffer](#getting-the-payload-from-a-jws-encoded-buffer) * [Parse a JWS encoded buffer into a jws.Message](#parse-a-jws-encoded-buffer-into-a-jwsmessage) * [Parse a JWS encoded message stored in a file](#parse-a-jws-encoded-message-stored-in-a-file) * [Signing](#signing) * [Generating a JWS message in compact serialization format](#generating-a-jws-message-in-compact-serialization-format) * [Generating a JWS message in JSON serialization format](#generating-a-jws-message-in-json-serialization-format) * [Generating a JWS message with detached payload](#generating-a-jws-with-detached-payload) * [Using cloud KMS services](#using-cloud-kms-services) * [Verifying](#verifying) * [Verification using `jku`](#verification-using-jku) * [Using a custom signing/verification algorithm](#using-a-customg-signingverification-algorithm) * [Enabling ES256K](#enabling-es256k) # Parsing ## Getting the payload from a JWS encoded buffer If you want to get the payload in the JWS message after it has been verified, use [`jws.Verify()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#Verify) ```go var encoded = []byte{...} payload, _ := jws.Verify(encoded, alg, key) ``` You must provide the algorithm and the public key to use for verification. Please read "[Why don't you automatically infer the algorithm for `jws.Verify`?](99-faq.md#why-dont-you-automatically-infer-the-algorithm-for-jwsverify-)" If the algorithm or the key does not match, an error is returned. ## Parse a JWS encoded buffer into a jws.Message You can parse a JWS buffer into a [`jws.Message`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#Message) object. In this mode, there is no verification performed. ```go var payload = []byte{...} msg, _ := jws.Parse(payload) ``` Note that [`jws.Message`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#Message) is not really built for general signing/verification usage. It's built more so for inspection purposes. Think twice before attempting to do anything more than inspection using [`jws.Message`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#Message). ## Parse a JWS encoded message stored in a file To parse a JWS stored in a file, use [`jws.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#ReadFile). [`jws.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#ReadFile) accepts the same options as [`jws.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#Parse). ```go message, _ := jws.ReadFile(`message.jws`) ``` ## Verify a JWS with detached payload To parse a JWS with detached payload, use the `jws.WithDetachedPayload()` option: ```go signed, _ := jws.Verify(signed, alg, key, jws.WithDetachedPayload(payload)) ``` # Signing ## Generating a JWS message in compact serialization format In most cases this is all you really need. ```go signed, _ := jws.Sign(payload, alg, key) ``` To sign a JWT, use [`jwt.Sign()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt#Sign) ```go signed, _ := jwt.Sign(token, alg, key) ``` ## Generating a JWS message in JSON serialization format Generally the only time you need to use a JSON serialization format is when you have to generate multiple signatures for a given payload using multiple signing algorithms and keys. When this need arises, use the [`jws.SignMulti()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#SignMulti) method. ```go signer, _ := jws.NewSigner(alg) signed, _ := jws.SignMulti(payload, jws.WithSigner(signer, key, pubHeaders, protHeaders) ``` ## Generating a JWS message with detached payload Use the `jws.WithDetachedPayload()` option to sign a detached payload: ```go signed, _ := jws.Sign(nil, alg, key, jws.WithDetachedPayload(payload)) ``` ## Including Arbitrary Headers to Compact Serialization By default, only some header fields are included in the result from `jws.Sign()`. If you want to include more headers fields in the resulting JWS, you will have to provide them via the `jws.WithHeaders()` option ```go hdrs := jws.NewHeaders() hdrs.Set(`arbitrary-key`, `value`) signed, _ := jws.Sign(payload, alg, key, jws.WithHEaders(hdrs)) ``` ## Using cloud KMS services If you want to use cloud KMSes such as AWS KMS to sign and verify payloads, look for an object that implements `crypto.Signer`. There are some [implementations written for this module](https://github.com/jwx-go/crypto-signer). Event if you cannot find an implementation that you are looking for in the above repository, any other implementation that implements `crypto.Signer` should work. # Verifying ## Verification using a single key Simply use `jws.Verify()`. It will automatically do the right thing whether it's serialized in compact form or JSON form. ```go payload, _ := jws.Verify(data, alg, key) ``` The `alg` must be explicitly specified. See "[Why don't you automatically infer the algorithm for `jws.Verify`?](99-faq.md#why-dont-you-automatically-infer-the-algorithm-for-jwsverify-)" To verify a JWS message with detached payload, use the `jws.WithDetachedPayload()` option: ```go _, err := jws.Verify(data, alg, key, jws.WithDetachedPayload(payload)) ``` ## Verification using `jku` Regular calls to `jws.Verify()` does not respect the JWK Set referenced in the `jku` field. In order to verify the payload using the `jku` field, you must use the `jws.VerifyAuto()` function. ```go wl := ... // Create an appropriate whitelist payload, _ := jws.VerifyAuto(buf, jws.WithFetchWhitelist(wl)) ``` This will tell `jws` to verify the given buffer using the JWK Set presented at the URL specified in the `jku` field. If the buffer is a JSON message, then this is done for each of the signature in the `signatures` array. The URL in the `jku` field must have the `https` scheme, and the key ID in the JWK Set must match the key ID present in the JWS message. Because this operation will result in your program accessing remote resources, the default behavior is to NOT allow any URLs. You must specify a whitelist ```go wl := jwk.NewMapWhitelist(). Add(`https://white-listed-address`) payload, _ := jws.VerifyAuto(buf, jws.WithFetchWhitelist(wl)) ``` If you want to allow any URLs to be accessible, use the `jwk.InsecureWhitelist`. ```go wl := jwk.InsecureWhitelist{} payload, _ := jws.VerifyAuto(buf, jws.WithFetchWhitelist(wl)) ``` If you must configure the HTTP Client in a special way, use the `jws.WithHTTPClient()` option: ```go client := &http.Client{ ... } payload, _ := jws.VerifyAuto(buf, jws.WithHTTPClient(client)) ``` # Using a custom signing/verification algorithm Sometimes we do not offer a particular algorithm out of the box, but you have an implementation for it. In such scenarios, you can use the [`jws.RegisterSigner()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#RegisterSigner) and [`jws.RegisterVerifier()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws#RegisterVerifier) functions to generate your own verifier instance. ```go jws.RegisterSigner(alg, signerFactory) jws.RegisterVerifier(alg, verifierFactory) ``` # Enabling ES256K See [Enabling Optional Signature Methods](./20-global-settings.md#enabling-optional-signature-methods) golang-github-lestrrat-go-jwx-1.2.30/docs/04-jwk.md000066400000000000000000000300411465311135100216570ustar00rootroot00000000000000# Working with JWK In this document we describe how to work with JWK using `github.com/lestrrat-go/jwx/jwk` * [Terminology](#terminology) * [JWK / Key](#jwk--key) * [JWK Set / Set](#jwk-set--set) * [Raw Key](#raw-key) * [Parsing](#parsing) * [Parse a set](#parse-a-set) * [Parse a key](#parse-a-key) * [Parse a key or set in PEM format](#parse-a-key-or-a-set-in-pem-format) * [Parse a key from a file](#parse-a-key-from-a-file) * [Parse a key from a remote resource](#parse-a-key-from-a-remote-resource) * [Construction](#construction) * [Using jwk.New()](#using-jwknew) * [Construct a specific key type from scratch](#construct-a-specific-key-type-from-scratch) * [Construct a specific key type from a raw key](#construct-a-specific-key-type-from-a-raw-key) * [Setting values to fields](#setting-values-to-fields) * [Fetching JWK Sets](#fetching-jwk-sets) * [Fetching a JWK Set once](#fetching-a-jwk-set-once) * [Auto-refreshing remote keys](#auto-refreshing-remote-keys) * [Using Whitelists](#using-whitelists) * [Converting a jwk.Key to a raw key](#converting-a-jwkkey-to-a-raw-key) --- # Terminology ## JWK / Key Used to describe a JWK key, possibly of typeRSA, ECDSA, OKP, or Symmetric. ## JWK Set / Set A "jwk" resource on the web can either contain a single JWK or an array of multiple JWKs. The latter is called a JWK Set. It is impossible to know what the resource contains beforehand, so functions like [`jwk.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Parse) and [`jwk.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ReadFile) returns a [`jwk.Set`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Set) by default. ## Raw Key Used to describe the underlying raw key that a JWK represents. For example, an RSA JWK can represent rsa.PrivateKey/rsa.PublicKey, ECDSA JWK can represent ecdsa.PrivateKey/ecdsa.PublicKey, and so forth # Parsing ## Parse a set If you have a key set, or are unsure if the source is a set or a single key, you should use [`jwk.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Parse) ```go keyset, _ := jwk.Parse(src) ``` ## Parse a key If you are sure that the source only contains a single key, you can use [`jwk.ParseKey()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ParseKey) ```go key, _ := jwk.ParseKey(src) ``` ## Parse a key or a set in PEM format Sometimes keys come in ASN.1 DER PEM format. To parse these files, use the [`jwk.WithPEM()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#WithPEM) option. ```go keyset, _ := jwk.Parse(srcSet, jwk.WithPEM(true)) key, _ := jwk.ParseKey(src, jwk.WithPEM(true)) ``` ## Parse a key from a file To parse keys stored in a file, [`jwk.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ReadFile) can be used. ```go keyset, _ := jwk.ReadFile(filename) ``` `jwk.ReadFile()` accepts the same options as [`jwk.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Parse), therefore you can read a PEM-encoded file via the following incantation: ```go keyset, _ := jwk.ReadFile(filename, jwk.WithPEM(true)) ``` ## Parse a key from a remote resource To parse keys stored in a remote location pointed by a HTTP(s) URL, use [`jwk.Fetch()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Fetch) ```go keyset, _ := jwk.Fetch(ctx, url) ``` If you are going to be using this key repeatedly in a long running process, consider using [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) described elsewhere in this document. # Construction ## Using jwk.New() Users can create a new key from scratch using [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New). [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) requires the raw key as its argument. There are other ways to creating keys from a raw key, but they require knowing its type in advance. Use [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) when you have a key type which you do not know its underlying type in advance. It automatically creates the appropriate underlying key based on the given argument type. | Argument Type | Key Type | Note | |---------------|----------|------| | []byte | Symmetric Key | | | ecdsa.PrivateKey | ECDSA Private Key | Argument may also be a pointer | | ecdsa.PubliKey | ECDSA Public Key | Argument may also be a pointer | | rsa.PrivateKey | RSA Private Key | Argument may also be a pointer | | rsa.PubliKey | RSA Public Key | Argument may also be a pointer | | x25519.PrivateKey | OKP Private Key | | | x25519.PubliKey | OKP Public Key | | One common mistake we see is users using [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) to construct a key from a []byte variable containing the raw JSON format JWK. ```go // THIS IS WRONG! buf, _ := ioutil.ReadFile(`key.json`) // os.ReadFile in go 1.16+ key, _ := jwk.New(buf) // ALWAYS creates a symmetric key ``` [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) is used to create a new key from a known, *raw key* type. To process a yet-to-be-parsed JWK, use [`jwk.Parse()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Parse) or [`jwk.ReadFile()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ReadFile) ```go // Parse a buffer containing a JSON JWK buf, _ := ioutil.ReadFile(`key.json`) // os.ReadFile in go 1.16+ key, _ := jwk.Parse(buf) ``` ```go // Read a file, parse it as JSON key, _ := jwk.ParseFile(`key.json`) ``` ## Construct a specific key type from scratch Each of Symmetric, RSA, ECDSA, OKP key types have corresponding constructors to create an empty instance. These keys are completely empty, so if you tried using them without initialization, it will not work. ```go key := jwk.NewSymmetricKey() key := jwk.NewECDSAPrivateKey() key := jwk.NewECDSAPublicKey() key := jwk.NewRSAPrivateKey() key := jwk.NewRSAPublicKey() key := jwk.NewOKPPrivateKey() key := jwk.NewOKPPublicKey() ``` For advanced users: Once you obtain these "empty" objects, you *can* use `json.Unmarshal()` to parse the JWK. ``` // OK key := jwk.NewRSAPrivateKey() if err := json.Unmarshal(src, key); err != nil { return errors.New(`failed to unmarshal RSA key`) } // NOT OK var key jwk.Key // we can't do this because we don't know where to store the data if err := json.Unmarshal(src, &key); err !+ nil { ... } ``` ## Construct a specific key type from a raw key [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) already does this, but if for some reason you would like to initialize an already existing [`jwk.Key`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Key), you can use the [`jwk.FromRaw()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#FromRaw) method. ```go privkey, err := rsa.GenerateKey(...) key := jwk.NewRSAPrivateKey() err := key.FromRaw(privkey) ``` ## Setting values to fields Using [`jwk.New()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#New) or [`jwk.FromRaw()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#FromRaw) allows you to populate the fields that are required to do perform the computations, but there are other fields that you may want to populate in a key. These fields can all be set using the [`jwk.Set()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Set) method. The [`jwk.Set()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Set) method takes the name of the key, and a value to be associated with it. Some predefined keys have specific types (in which type checks are enforced), and others not. [`jwk.Set()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Set) may not alter the Key Type (`kty`) field of a key. the `jwk` package defines field key names for predefined keys as constants so you won't ever have to bang your head againt the wall after finding out that you have a typo. ```go key.Set(jwk.KeyIDKey, `my-awesome-key`) key.Set(`my-custom-field`, `unbelievable-value`) ``` # Fetching JWK Sets ## Fetching a JWK Set once To fetch a JWK Set once, use `jwk.Fetch()`. ```go set, err := jwk.Fetch(ctx, url, options...) ``` ## Auto-refreshing remote keys Sometimes you need to fetch a remote JWK, and use it mltiple times in a long-running process. For example, you may act as an itermediary to some other service, and you may need to verify incoming JWT tokens against the tokens in said other service. Normally, you should be able to simply fetch the JWK using [`jwk.Fetch()`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Fetch), but keys are usually expired and rotated due to security reasons. In such cases you would need to refetch the JWK periodically, which is a pain. `github.com/lestrrat-go/jwx/jwk` provides the [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) tool to do this for you. First, set up the [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) object. You need to pass it a `context.Context` object to control the lifecycle of the background fetching goroutine. ```go ar := jwk.NewAutoRefresh(ctx) ``` Next you need to tell [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) which URLs to keep updating. For this, we use the `Configure()` method. [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) will use the information found in the HTTP headers (`Cache-Control` and `Expires`) or the default interval to determine when to fetch the key next time. ```go ar.Configure(`https://example.com/certs/pubkeys.json`) ``` And lastly, each time you are about to use the key, load it from the [`jwk.AutoRefresh`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#AutoRefresh) object. ```go keyset, _ := ar.Fetch(ctx, `https://example.com/certs/pubkeys.json`) ``` The returned `keyset` will always be "reasonably" new. It is important that you always call `ar.Fetch()` before using the `keyset` as this is where the refreshing occurs. By "reasonably" we mean that we cannot guarantee that the keys will be refreshed immediately after it has been rotated in the remote source. But it should be close enough, and should you need to forcefully refresh the token using the `(jwk.AutoRefresh).Refresh()` method. If re-fetching the keyset fails, a cached version will be returned from the previous successful fetch upon calling `(jwk.AutoRefresh).Fetch()`. ## Using Whitelists If you are fetching JWK Sets from a possibly untrusted source such as the `"jku"` field of a JWS message, you may have to perform some sort of whitelist checking. You can provide a `jwk.Whitelist` object to either `jwk.Fetch()` or `(*jwk.AutoRefresh).Configure()` methods to specify the use of a whitelist. Currently the package provides `jwk.MapWhitelist` and `jwk.RegexpWhitelist` types for simpler cases. ```go wl := jwk.NewMapWhitelist(). Add(url1). Add(url2). Add(url3 wl := jwk.NewRegexpWhitelist(). Add(regexp1). Add(regexp2). Add(regexp3) jwk.Fetch(ctx, url, jwk.WithWhitelist(wl)) // or in a jwk.AutoRefresh object: ar.Configure(url, jwk.WithWhitelist(wl)) ``` If you would like to implement something more complex, you can provide a function via `jwk.WhitelistFunc` or implement you own type of `jwk.Whitelist`. # Converting a jwk.Key to a raw key As discussed in [Terminology](#terminology), this package calls the "original" keys (e.g. `rsa.PublicKey`, `ecdsa.PrivateKey`, etc) as "raw" keys. To obtain a raw key from a [`jwk.Key`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Key) object, use the [`Raw()`](https://github.com/github.com/lestrrat-go/jwx/jwk#Raw) method. ```go key, _ := jwk.ParseKey(src) var raw interface{} if err := key.Raw(&raw); err != nil { ... } ``` In the above example, `raw` contains whatever the [`jwk.Key`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#Key) represents. If `key` represents an RSA key, it will contain either a `rsa.PublicKey` or `rsa.PrivateKey`. If it represents an ECDSA key, an `ecdsa.PublicKey`, or `ecdsa.PrivateKey`, etc. If the only operation that you are performing is to grab the raw key out of a JSON JWK, use [`jwk.ParseRawKey`](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk#ParseRawKey) ```go var raw interface{} if err := jwk.ParseRawKey(src, &raw); err != nil { ... } ``` golang-github-lestrrat-go-jwx-1.2.30/docs/20-global-settings.md000066400000000000000000000066061465311135100241720ustar00rootroot00000000000000# Global Settings ## Enabling Optional Signature Methods Some algorithms are intentionally left out because they are not as common in the wild, and you may want to avoid compiling this extra information in. To enable these, you must explicitly provide a build tag. | Algorithm | Build Tag | |:-----------------|:-----------| | secp256k1/ES256K | jwx_es256k | If you do not provide these tags, the program will still compile, but it will return an error during runtime saying that these algorithms are not supported. ## Switching to a faster JSON library By default we use the standard library's `encoding/json` for all of our JSON needs. However, if performance for parsing/serializing JSON is really important to you, you might want to enable [github.com/goccy/go-json](https://github.com/goccy/go-json) by enabling the `jwx_goccy` tag. ```shell % go build -tags jwx_goccy ... ``` [github.com/goccy/go-json](https://github.com/goccy/go-json) is *disabled* by default because it uses some really advanced black magic, and I really do not feel like debugging it **IF** it breaks. Please note that that's a big "if". As of github.com/goccy/go-json@v0.3.3 I haven't see any problems, and I would say that it is mostly stable. However, it is a dependency that you can go without, and I won't be of much help if it breaks -- therefore it is not the default. If you know what you are doing, I highly recommend enabling this module -- all you need to do is to enable this tag. Disable the tag if you feel like it's not worth the hassle. And when you *do* enable [github.com/goccy/go-json](https://github.com/goccy/go-json) and you encounter some mysterious error, I also trust that you know to file an issue to [github.com/goccy/go-json](https://github.com/goccy/go-json) and **NOT** to this library. ## Using json.Number If you want to parse numbers in the incoming JSON objects as json.Number instead of floats, you can use the following call to globally affect the behavior of JSON parsing. ```go func init() { jwx.DecoderSettings(jwx.WithUseNumber(true)) } ``` Do be aware that this has *global* effect. All code that calls in to `encoding/json` within `jwx` *will* use your settings. ## Decode private fields to objects Packages within `github.com/lestrrat-go/jwx` parses known fields into pre-defined types, but for everything else (usually called private fields/headers/claims) are decoded into wharever `"encoding/json".Unmarshal` deems appropriate. For example, JSON objects are converted to `map[string]interface{}`, JSON arrays into `[]interface{}`, and so on. Sometimes you know beforehand that it makes sense for certain fields to be decoded into proper objects instead of generic maps or arrays. When you encounter this, you can use the `RegisterCustomField()` method in each of `jwe`, `jwk`, `jws`, and `jwt` packages. ```go func init() { jwt.RegisterCustomField(`x-foo-bar`, mypkg.FooBar{}) } ``` This tells the decoder that when it encounters a JWT token with the field named `"x-foo-bar"`, it should be decoded to an instance of `mypkg.FooBar`. Then you can access this value by using `Get()` ```go v, _ := token.Get(`x-foo-bar`) foobar := v.(mypkg.FooBar) ``` Do be aware that this has *global* effect. In the above example, all JWT tokens containing the `"x-foo-bar"` key will decode in the same way. If you need this behavior from `jwe`, `jwk`, or `jws` packages, you need to do the same thing for each package. golang-github-lestrrat-go-jwx-1.2.30/docs/21-frameworks.md000066400000000000000000000056231465311135100232530ustar00rootroot00000000000000## JWT with net/http Integrating this library with net/http is simple. In this example, we will assume that you are using a `Server` object that is defined as follows: ```go type Server struct { alg jwa.SignatureAlgorithm signKey jwk.Key verifyKey jwk.Key } ``` The first step is to decide on the signature algorithm. Here we will show examples for using `jwa.HS256` and `jwa.RS256`. Choose the appropriate signature for your particular use case. You can find the full list of supported signature algorithms in the documentation or the source code for the [`jwa`](../jwa) package (remember tha there are some [optional algorithms](./global-settings.md#enabling-pptional-signature-methods). ### Using HS256 `jwa.HS256` is a symmetric algorithm, therefore the signing key should be exactly the same as the verifying key. ```go s.alg = jwa.HS256 s.signKey = jwk.New([]byte("Hello, World!")) s.verifyKey = s.signKey ``` ### Using RS256 In this example we assume that your keys are stored in PEM-encoded files `private-key.pem` and `public-key.pem. ```go s.alg = jwa.RS256 { v, err := jwk.ReadFile(`private-key.pem`, jwk.WithPEM(true)) if err != nil { // handle error } s.signKey = v } { v, err := jwk.ReadFile(`public-key.pem`, jwk.WithPEM(true)) if err != nil { // handle error } s.verifyKey = v } ``` ### Reading JWT JWTs can be stored in HTTP headers, form values, etc, and you need to decide where to fetch the JWT payload from. The `jwt` package provides several ways to retrieve JWT data from an HTTP request. `jwt.ParseRequest` is the most generic front end, and the user will be able to dynamically change where to fetch the data from. By default the "Authorization" header is checked. If you want to check for more places, you can specify it as additional options. Please read the manual for `jwt.ParseRequest` for more details. The option `jwt.WithVerify` is added to validate the JWS message. You will need to execute `jwt.Validate` to validate the content of the JWT message. You can control what gets validated by passing options to `jwt.Validate`. Please read the manual for `jwt.Validate` for more details. ```go func (s *Server) HandleFoo(w http.ResponseWriter, req *http.Request) { token, err := jwt.ParseRequest(req, jwt.WithVerify(s.alg, s.verifyKey)) if err != nil { // handle error } if err := jwt.Validate(token); err != nil { // handle error } // ... additional code ... } ``` ### Writing JWT In this example we are writing the token to the response body of the response. ```go func (s *Server) HandleBar(w http.ResponseWriter, req *http.Request) { var token jwt.Token signed, err := jwt.Sign(token, s.alg, s.signKey) if err != nil { // handle errors } w.WriteHeader(http.StatusOK) w.Write(signed) } ``` ## JWT with Echo There is no official middleware, but [a simple port can be found here](https://github.com/lestrrat-go/echo-middleware-jwx) golang-github-lestrrat-go-jwx-1.2.30/docs/99-faq.md000066400000000000000000000116271465311135100216620ustar00rootroot00000000000000# Frequently asked questions ## I want to use this with a Web Framework ### Echo Consider using [github.com/lestrrat-go/echo-middleware-jwx](github.com/lestrrat-go/echo-middleware-jwx), although as of this writing it has not been widely tested. ## I get a "no Go files in ..." error You are using Go in GOPATH mode. Short answer: use Go modules. [A slightly more elaborate version of the answer can be found in github.com/lestrrat-go/backoff FAQ](https://github.com/lestrrat-go/backoff#im-getting-package-githubcomlestrrat-gobackoffv2-no-go-files-in-gosrcgithubcomlestrrat-gobackoffv2) And no, I do not intend to support GOPATH mode as of 2021. There are ways to manually workaround it, but do not expect this library to do that for you. ## Why don't you automatically infer the algorithm for `jws.Verify` ? Please read https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/. Despite this article's publish date, the original had been published sometime around 2015. It's a well known problem with JWS libraries. ## Why did you change the API? Presumably you are asking this because your code broke when we bumped the version and broke backwards compatibility. Then the short answer is: "You wouldn't have had to worry about it if you were properly using go.mod" The longer answer is as follows: From time to time, we introduce API changes, because we learn of mistakes in our old ways. Maybe we used the wrong terminology. Maybe we made public something that should have been internal. Maybe we intended an API to be used one way, but it was confusing. So then we introduce API changes. Sorry if breaks your builds, but it's done because we deem it necessary. You should also know that we do not introduce API changes between micro versions. And on top of that, Go provides extremely good support for idempodent builds via Go modules. If you are in an environment where API changes disrupts your environment, you should definitely migrate to using Go modules now. ## "Why can't I create my jwk.Key?" ### 1. You are passing the wrong parameter to `jwk.New()`. As stated in the documentation, `jwk.New()` creates different types of keys depending on the type of the input. Use `jwk.New()` to construct a JWK from the [*raw* key](./04-jwk.md#raw-key). Use `jwk.Parse()` or `jwk.ParseKey()` to parse a piece of data (`[]byte` and the like) and create the appropriate key type from its contents. See ["Using jwk.New()"](./04-jwk.md#using-jwknew) for more details. ### 2. You are not decoding PEM. When you read from a PEM encoded file (e.g. `key.pem`), you cannot just parse it using `jwk.Parse()` as by default we do not expect the data to be PEM encoded. Use `jwk.WithPEM(true)` for this. See ["Parse a key or set in PEM format"](./04-jwk.md#parse-a-key-or-a-set-in-pem-format) for more details. ## "Why is my code to call `jwt.Sign()`/`jws.Verify()` failing?" ### 1. Your algorithm and key type do not match. Any given signature algorithm requires a particular type of key. If the pair is not setup correctly, the operation will fail. Below is a table of general algorithm to key type pair. Note that this table may not be updated regularly. Use common sense and search online to find out if the algorithm/key type you would like to use is not listed in the table. | Algorithm Family | Key Type | |------------------|-----------| | jwa.HS\*\*\* | Symmetric | | jwa.RS\*\*\* | RSA | | jwa.ES\*\*\* | Elliptic | ### 2. You are mixing up when to use private/public keys. You sign using a private key. You verify using a public key (although, it is possible to verify using the private key, but is not really a common operation). So, for example, a service like Google will sign their JWTs using their private keys which are not publicly available, but will provide the public keys somewhere so that you can verify their JWTs using those public keys. ### 3. You are parsing the wrong token. Often times we have people asking us about github.com/lestrrat-go/jwx/jwt not being able to parse a token... except, they are not JWTs. For example, when a provider says they will give you an "access token" ... well, it *may* be a JWT, but often times they are just some sort of string key (which will definitely parse if you pass it to `jwt.Parse`). Sometimes what you really want is stored in a different token, and it may be called an "ID token". Who knows, these things vary between implementation to implemention. After all, the only thing we can say is that you should check that you are parsing. ## Why are you generating so many fields? Because a lot of the code is repetitive. For example, maintaining the 15 fields in a JWE header in all parts of the code (getter methods, setter methods, marshaling/unmarshaling) is doable but very very very cumbersome. We think that resources used to watching out for typos and other minor problems that may arise during maintenance is better spent elsewhere by automating generation of consistent code. golang-github-lestrrat-go-jwx-1.2.30/docs/README.md000066400000000000000000000011101465311135100215730ustar00rootroot00000000000000# How to JWx That Here you will find bits and pieces of code explaining how to perform certain Javascript Object Signing and Encryption (JOSE) operations using https://github.com/lestrrat-go/jwx for Go. If you would rather see code, try the [examples directory](../examples) * [Anatomy of JOSE](./00-anatomy.md) * [Working with JWT](./01-jwt.md) * [Working with JWS](./02-jws.md) * Working with JWE (TODO) * [Working with JWK](./04-jwk.md) * [Global Settings](./20-global-settings.md) * [Integrating With Frameworks](./21-frameworks.md) * [Frequently Asked Questions](./99-faq.md) golang-github-lestrrat-go-jwx-1.2.30/examples/000077500000000000000000000000001465311135100212115ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/examples/README.md000066400000000000000000000005041465311135100224670ustar00rootroot00000000000000# Examples (and Benchmarks) * [github.com/lestrrat-go/jwx](./jwx_example_test.go): Library-wide operations * [github.com/lestrrat-go/jwe](./jwe_example_test.go) * [github.com/lestrrat-go/jwk](./jwk_example_test.go) * [github.com/lestrrat-go/jws](./jws_example_test.go) * [github.com/lestrrat-go/jwt](./jwt_example_test.go) golang-github-lestrrat-go-jwx-1.2.30/examples/go.mod000066400000000000000000000015531465311135100223230ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/examples go 1.20 require ( github.com/cloudflare/circl v1.1.0 github.com/lestrrat-go/jwx v0.0.0-00010101000000-000000000000 github.com/pkg/errors v0.9.1 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 // indirect github.com/goccy/go-json v0.10.3 // indirect github.com/lestrrat-go/backoff/v2 v2.0.8 // indirect github.com/lestrrat-go/blackmagic v1.0.2 // indirect github.com/lestrrat-go/httpcc v1.0.1 // indirect github.com/lestrrat-go/iter v1.0.2 // indirect github.com/lestrrat-go/option v1.0.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect github.com/stretchr/testify v1.9.0 // indirect golang.org/x/crypto v0.25.0 // indirect golang.org/x/sys v0.22.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) replace github.com/lestrrat-go/jwx => ../ golang-github-lestrrat-go-jwx-1.2.30/examples/go.sum000066400000000000000000000102671465311135100223520ustar00rootroot00000000000000github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= github.com/cloudflare/circl v1.1.0 h1:bZgT/A+cikZnKIwn7xL2OBj012Bmvho/o6RpRvv3GKY= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.2 h1:Cg2gVSc9h7sz9NOByczrbUvLopQmXrfFx//N+AkAr5k= github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU= github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/examples/hoge.jwk000066400000000000000000000032111465311135100226450ustar00rootroot00000000000000 {"kty":"RSA", "n":"ofgWCuLjybRlzo0tZWJjNiuSfb4p4fAkd_wWJcyQoTbji9k0l8W26mPddxHmfHQp-Vaw-4qPCJrcS2mJPMEzP1Pt0Bm4d4QlL-yRT-SFd2lZS-pCgNMsD1W_YpRPEwOWvG6b32690r2jZ47soMZo9wGzjb_7OMg0LOL-bSf63kpaSHSXndS5z5rexMdbBYUsLA9e-KXBdQOS-UTo7WTBEMa2R2CapHg665xsmtdVMTBQY4uDZlxvb3qCo5ZwKh9kG4LT6_I5IhlJH7aGhyxXFvUK-DWNmoudF8NAco9_h9iaGNj8q2ethFkMLs91kzk2PAcDTW9gb54h4FRWyuXpoQ", "e":"AQAB", "d":"Eq5xpGnNCivDflJsRQBXHx1hdR1k6Ulwe2JZD50LpXyWPEAeP88vLNO97IjlA7_GQ5sLKMgvfTeXZx9SE-7YwVol2NXOoAJe46sui395IW_GO-pWJ1O0BkTGoVEn2bKVRUCgu-GjBVaYLU6f3l9kJfFNS3E0QbVdxzubSu3Mkqzjkn439X0M_V51gfpRLI9JYanrC4D4qAdGcopV_0ZHHzQlBjudU2QvXt4ehNYTCBr6XCLQUShb1juUO1ZdiYoFaFQT5Tw8bGUl_x_jTj3ccPDVZFD9pIuhLhBOneufuBiB4cS98l2SR_RQyGWSeWjnczT0QU91p1DhOVRuOopznQ", "p":"4BzEEOtIpmVdVEZNCqS7baC4crd0pqnRH_5IB3jw3bcxGn6QLvnEtfdUdiYrqBdss1l58BQ3KhooKeQTa9AB0Hw_Py5PJdTJNPY8cQn7ouZ2KKDcmnPGBY5t7yLc1QlQ5xHdwW1VhvKn-nXqhJTBgIPgtldC-KDV5z-y2XDwGUc", "q":"uQPEfgmVtjL0Uyyx88GZFF1fOunH3-7cepKmtH4pxhtCoHqpWmT8YAmZxaewHgHAjLYsp1ZSe7zFYHj7C6ul7TjeLQeZD_YwD66t62wDmpe_HlB-TnBA-njbglfIsRLtXlnDzQkv5dTltRJ11BKBBypeeF6689rjcJIDEz9RWdc", "dp":"BwKfV3Akq5_MFZDFZCnW-wzl-CCo83WoZvnLQwCTeDv8uzluRSnm71I3QCLdhrqE2e9YkxvuxdBfpT_PI7Yz-FOKnu1R6HsJeDCjn12Sk3vmAktV2zb34MCdy7cpdTh_YVr7tss2u6vneTwrA86rZtu5Mbr1C1XsmvkxHQAdYo0", "dq":"h_96-mK1R_7glhsum81dZxjTnYynPbZpHziZjeeHcXYsXaaMwkOlODsWa7I9xXDoRwbKgB719rrmI2oKr6N3Do9U0ajaHF-NKJnwgjMd2w9cjz3_-kyNlxAr2v4IKhGNpmM5iIgOS1VZnOZ68m6_pbLBSp3nssTdlqvd0tIiTHU", "qi":"IYd7DHOhrWvxkwPQsRM2tOgrjbcrfvtQJipd-DlcxyVuuM9sQLdgjVk2oy26F0EmpScGLq2MowX7fhd_QJQ3ydy5cY7YIBi87w93IKLEdfnbJtoOPLUW0ITrJReOgo1cq9SbsxYawBgfp_gh6A5603k2-ZQwVK0JKSHuLFkuQ3U" } golang-github-lestrrat-go-jwx-1.2.30/examples/jwe_example_test.go000066400000000000000000000074461465311135100251120ustar00rootroot00000000000000package examples_test import ( "crypto/rand" "crypto/rsa" "fmt" "log" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/pkg/errors" ) func ExampleJWE_Encrypt() { privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to generate private key: %s", err) return } payload := []byte("Lorem Ipsum") encrypted, err := jwe.Encrypt(payload, jwa.RSA1_5, &privkey.PublicKey, jwa.A128CBC_HS256, jwa.NoCompress) if err != nil { log.Printf("failed to encrypt payload: %s", err) return } _ = encrypted // OUTPUT: } func exampleGenPayload() (*rsa.PrivateKey, []byte, error) { privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { return nil, nil, err } payload := []byte("Lorem Ipsum") encrypted, err := jwe.Encrypt(payload, jwa.RSA1_5, &privkey.PublicKey, jwa.A128CBC_HS256, jwa.NoCompress) if err != nil { return nil, nil, err } return privkey, encrypted, nil } func ExampleJWE_Decrypt() { privkey, encrypted, err := exampleGenPayload() if err != nil { log.Printf("failed to generate encrypted payload: %s", err) return } decrypted, err := jwe.Decrypt(encrypted, jwa.RSA1_5, privkey) if err != nil { log.Printf("failed to decrypt: %s", err) return } if string(decrypted) != "Lorem Ipsum" { log.Printf("WHAT?!") return } // OUTPUT: } func ExampleJWE_ComplexDecrypt() { // WARNING: THIS USAGE IS NOT FOR A CASUAL USER. ONLY use it when you must. // Only use it when you understand how JWE is supposed to work. Only use it // when you understand the inner workings of this code. // In this example, the caller wants to determine the key to use by checking // the value of a protected header called `jwx-hints`. const payload = "Hello, World!" privkey, err := jwxtest.GenerateRsaKey() if err != nil { fmt.Printf("failed to generate key: %s\n", err) return } // First we will create a sample JWE payload protected := jwe.NewHeaders() protected.Set(`jwx-hints`, `foobar`) // in real life this would a more meaningful value encrypted, err := jwe.Encrypt( []byte(payload), jwa.RSA_OAEP, privkey.PublicKey, jwa.A256GCM, jwa.NoCompress, jwe.WithProtectedHeaders(protected), ) if err != nil { fmt.Printf("failed to encrypt message\n") return } // The party responsible to determining the key is the jwe.PostParser hook. // // Here we are using a function turned into an interface for brevity, but in real life // I would personally recommend creating a real type for your specific needs // instead of passing adhoc closures. YMMV. pp := func(ctx jwe.DecryptCtx) error { msg := ctx.Message() rawhint, _ := msg.ProtectedHeaders().Get(`jwx-hints`) //nolint:forcetypeassert hint, ok := rawhint.(string) if ok && hint == `foobar` { // This is where we are setting the key to be used. // // In real life you would look up the key or something. // Here we just assign the key to use. // // You may opt to set both the algorithm and key here as well. // BUT BE CAREFUL so that you don't accidentally create a // vulnerability ctx.SetKey(privkey) return nil } // If there were errors, just return it, and the whole jwe.Decrypt will fail. return errors.Errorf(`invalid value for jwx-hints: %s`, rawhint) } // Calling jwe.Decrypt with the extra argument of jwe.WithPostParser(). // Here we pass a nil key to jwe.Decrypt, because the PostParser will be // determining the key to use when its PostParse() method is called decrypted, err := jwe.Decrypt(encrypted, jwa.RSA_OAEP, nil, jwe.WithPostParser(jwe.PostParseFunc(pp))) if err != nil { fmt.Printf("failed to decrypt message: %s\n", err) return } if string(decrypted) != payload { fmt.Printf("wrong decrypted payload: %s\n", decrypted) return } // OUTPUT: } golang-github-lestrrat-go-jwx-1.2.30/examples/jwk_example_test.go000066400000000000000000000134641465311135100251150ustar00rootroot00000000000000package examples_test import ( "context" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/rsa" "fmt" "log" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwk" ) func ExampleJWK_Usage() { // Use jwk.AutoRefresh if you intend to keep reuse the JWKS over and over set, err := jwk.Fetch(context.Background(), "https://www.googleapis.com/oauth2/v3/certs") if err != nil { log.Printf("failed to parse JWK: %s", err) return } // Key sets can be serialized back to JSON { jsonbuf, err := json.Marshal(set) if err != nil { log.Printf("failed to marshal key set into JSON: %s", err) return } log.Printf("%s", jsonbuf) } for it := set.Iterate(context.Background()); it.Next(context.Background()); { pair := it.Pair() key := pair.Value.(jwk.Key) var rawkey interface{} // This is the raw key, like *rsa.PrivateKey or *ecdsa.PrivateKey if err := key.Raw(&rawkey); err != nil { log.Printf("failed to create public key: %s", err) return } // Use rawkey for jws.Verify() or whatever. _ = rawkey // You can create jwk.Key from a raw key, too fromRawKey, err := jwk.New(rawkey) if err != nil { log.Printf("failed to acquire raw key from jwk.Key: %s", err) return } // Keys can be serialized back to JSON jsonbuf, err := json.Marshal(key) if err != nil { log.Printf("failed to marshal key into JSON: %s", err) return } log.Printf("%s", jsonbuf) // If you know the underlying Key type (RSA, EC, Symmetric), you can // create an empty instance first // key := jwk.NewRSAPrivateKey() // ..and then use json.Unmarshal // json.Unmarshal(key, jsonbuf) // // but if you don't know the type first, you have an abstract type // jwk.Key, which can't be used as the first argument to json.Unmarshal // // In this case, use jwk.Parse() fromJSONKey, err := jwk.Parse(jsonbuf) if err != nil { log.Printf("failed to parse json: %s", err) return } _ = fromJSONKey _ = fromRawKey } // OUTPUT: } func ExampleJWK_New() { // New returns different underlying types of jwk.Key objects // depending on the input value. // []byte -> jwk.SymmetricKey { raw := []byte("Lorem Ipsum") key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.SymmetricKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } } // *rsa.PrivateKey -> jwk.RSAPrivateKey // *rsa.PublicKey -> jwk.RSAPublicKey { raw, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { fmt.Printf("failed to generate new RSA private key: %s\n", err) return } key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create RSA key: %s\n", err) return } if _, ok := key.(jwk.RSAPrivateKey); !ok { fmt.Printf("expected jwk.RSAPrivateKey, got %T\n", key) return } // PublicKey is omitted for brevity } // *ecdsa.PrivateKey -> jwk.ECDSAPrivateKey // *ecdsa.PublicKey -> jwk.ECDSAPublicKey { raw, err := ecdsa.GenerateKey(elliptic.P384(), rand.Reader) if err != nil { fmt.Printf("failed to generate new ECDSA private key: %s\n", err) return } key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create ECDSA key: %s\n", err) return } if _, ok := key.(jwk.ECDSAPrivateKey); !ok { fmt.Printf("expected jwk.ECDSAPrivateKey, got %T\n", key) return } // PublicKey is omitted for brevity } // OUTPUT: } //nolint:govet func ExampleJWK_MarshalJSON() { // JWKs that inherently involve randomness such as RSA and EC keys are // not used in this example, because they may produce different results // depending on the environment. // // (In fact, even if you use a static source of randomness, tests may fail // because of internal changes in the Go runtime). raw := []byte("01234567890123456789012345678901234567890123456789ABCDEF") // This would create a symmetric key key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.SymmetricKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } key.Set(jwk.KeyIDKey, "mykey") buf, err := json.MarshalIndent(key, "", " ") if err != nil { fmt.Printf("failed to marshal key into JSON: %s\n", err) return } fmt.Printf("%s\n", buf) // OUTPUT: // { // "k": "MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODlBQkNERUY", // "kid": "mykey", // "kty": "oct" // } } func ExampleJWK_AutoRefresh() { ctx, cancel := context.WithCancel(context.Background()) defer cancel() const googleCerts = `https://www.googleapis.com/oauth2/v3/certs` ar := jwk.NewAutoRefresh(ctx) // Tell *jwk.AutoRefresh that we only want to refresh this JWKS // when it needs to (based on Cache-Control or Expires header from // the HTTP response). If the calculated minimum refresh interval is less // than 15 minutes, don't go refreshing any earlier than 15 minutes. ar.Configure(googleCerts, jwk.WithMinRefreshInterval(15*time.Minute)) // Refresh the JWKS once before getting into the main loop. // This allows you to check if the JWKS is available before we start // a long-running program _, err := ar.Refresh(ctx, googleCerts) if err != nil { fmt.Printf("failed to refresh google JWKS: %s\n", err) return } // Pretend that this is your program's main loop MAIN: for { select { case <-ctx.Done(): break MAIN default: } keyset, err := ar.Fetch(ctx, googleCerts) if err != nil { fmt.Printf("failed to fetch google JWKS: %s\n", err) return } _ = keyset // Do interesting stuff with the keyset... but here, we just // sleep for a bit time.Sleep(time.Second) // Because we're a dummy program, we just cancel the loop now. // If this were a real program, you prosumably loop forever cancel() } // OUTPUT: } golang-github-lestrrat-go-jwx-1.2.30/examples/jws_example_test.go000066400000000000000000000143221465311135100251170ustar00rootroot00000000000000package examples_test import ( "crypto/rand" "crypto/rsa" "fmt" "log" "github.com/cloudflare/circl/sign/ed25519" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/pkg/errors" ) func ExampleJWS_VerifyWithJWKSet() { // Setup payload first... privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to create private key: %s", err) return } const payload = "Lorem ipsum" signed, err := jws.Sign([]byte(payload), jwa.RS256, privkey) if err != nil { log.Printf("failed to sign payload: %s", err) return } // Create a JWK Set set := jwk.NewSet() // Add some bogus keys k1, _ := jwk.New([]byte("abracadavra")) set.Add(k1) k2, _ := jwk.New([]byte("opensasame")) set.Add(k2) // Add the real thing pubkey, _ := jwk.PublicRawKeyOf(privkey) k3, _ := jwk.New(pubkey) k3.Set(jwk.AlgorithmKey, jwa.RS256) set.Add(k3) // Up to this point, you probably will replace with a simple jwk.Fetch() // Now verify using the set. if _, err := jws.VerifySet(signed, set); err != nil { fmt.Printf("Failed to verify using jwk.Set!: %s", err) } // OUTPUT: } type CirclEdDSASignerVerifier struct{} func NewCirclEdDSASigner() (jws.Signer, error) { return &CirclEdDSASignerVerifier{}, nil } func NewCirclEdDSAVerifier() (jws.Verifier, error) { return &CirclEdDSASignerVerifier{}, nil } func (s CirclEdDSASignerVerifier) Algorithm() jwa.SignatureAlgorithm { return jwa.EdDSA } func (s CirclEdDSASignerVerifier) Sign(payload []byte, keyif interface{}) ([]byte, error) { switch key := keyif.(type) { case ed25519.PrivateKey: return ed25519.Sign(key, payload), nil default: return nil, errors.Errorf(`invalid key type %T`, keyif) } } func (s CirclEdDSASignerVerifier) Verify(payload []byte, signature []byte, keyif interface{}) error { switch key := keyif.(type) { case ed25519.PublicKey: if ed25519.Verify(key, payload, signature) { return nil } return errors.New(`failed to verify EdDSA signature`) default: return errors.Errorf(`invalid key type %T`, keyif) } } func ExampleJWS_ExternalSignerVerifier() { // This example shows how to register external jws.Signer / jws.Verifier for // a given algorithm. jws.RegisterSigner(jwa.EdDSA, jws.SignerFactoryFn(NewCirclEdDSASigner)) jws.RegisterVerifier(jwa.EdDSA, jws.VerifierFactoryFn(NewCirclEdDSAVerifier)) pubkey, privkey, err := ed25519.GenerateKey(rand.Reader) if err != nil { fmt.Printf(`failed to generate keys: %s`, err) return } const payload = "Lorem Ipsum" signed, err := jws.Sign([]byte(payload), jwa.EdDSA, privkey) if err != nil { fmt.Printf(`failed to generate signed message: %s`, err) return } verified, err := jws.Verify(signed, jwa.EdDSA, pubkey) if err != nil { fmt.Printf(`failed to verify signed message: %s`, err) return } if string(verified) != payload { fmt.Printf(`got invalid payload: %s`, verified) return } // OUTPUT: } func ExampleJWS_Sign() { privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to create private key: %s", err) return } buf, err := jws.Sign([]byte("Lorem ipsum"), jwa.RS256, privkey) if err != nil { log.Printf("failed to sign payload: %s", err) return } verified, err := jws.Verify(buf, jwa.RS256, &privkey.PublicKey) if err != nil { log.Printf("failed to verify JWS message: %s", err) return } // Do something with `verified` .... _ = verified // OUTPUT: } func ExampleJWS_Message() { const payload = `eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ` const encodedSig1 = `cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw` const encodedSig2 = "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" decodedPayload, err := base64.DecodeString(payload) if err != nil { fmt.Printf("%s\n", err) return } decodedSig1, err := base64.DecodeString(encodedSig1) if err != nil { fmt.Printf("%s\n", err) return } decodedSig2, err := base64.DecodeString(encodedSig2) if err != nil { fmt.Printf("%s\n", err) return } public1 := jws.NewHeaders() _ = public1.Set(jws.AlgorithmKey, jwa.RS256) protected1 := jws.NewHeaders() _ = protected1.Set(jws.KeyIDKey, "2010-12-29") public2 := jws.NewHeaders() _ = public2.Set(jws.AlgorithmKey, jwa.ES256) protected2 := jws.NewHeaders() _ = protected2.Set(jws.KeyIDKey, "e9bc097a-ce51-4036-9562-d2ade882db0d") // Construct a message. DO NOT use values that are base64 encoded m := jws.NewMessage(). SetPayload(decodedPayload). AppendSignature( jws.NewSignature(). SetSignature(decodedSig1). SetProtectedHeaders(public1). SetPublicHeaders(protected1), ). AppendSignature( jws.NewSignature(). SetSignature(decodedSig2). SetProtectedHeaders(public2). SetPublicHeaders(protected2), ) buf, err := json.MarshalIndent(m, "", " ") if err != nil { fmt.Printf("%s\n", err) return } fmt.Printf("%s", buf) // OUTPUT: // { // "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", // "signatures": [ // { // "header": { // "kid": "2010-12-29" // }, // "protected": "eyJhbGciOiJSUzI1NiJ9", // "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw" // }, // { // "header": { // "kid": "e9bc097a-ce51-4036-9562-d2ade882db0d" // }, // "protected": "eyJhbGciOiJFUzI1NiJ9", // "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" // } // ] // } } golang-github-lestrrat-go-jwx-1.2.30/examples/jwt_example_test.go000066400000000000000000000250201465311135100251150ustar00rootroot00000000000000package examples_test import ( "crypto/rand" "crypto/rsa" "fmt" "log" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jwt/openid" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwt" ) const aLongLongTimeAgo = 233431200 //nolint:govet func ExampleJWT_ParseWithJWKS() { privKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { fmt.Printf("failed to generate private key: %s\n", err) return } { // Case 1: the Token is signed with a specific key, denoted by "kid". // In this case you must obtain a KeySet with proper "kids". // // token -> { "kid": "mykey", .... values ... } // key set -> [ { ... }, { ... }, { "kid": "mykey", ... } ] // // Then jwt.Parse() will automatically find the matching key var payload []byte var keyset jwk.Set { // Preparation: // For demonstration purposes, we need to do some preparation // Create a JWK key to sign the token (and also give a KeyID) realKey, err := jwk.New(privKey) if err != nil { fmt.Printf("failed to create JWK: %s\n", err) return } realKey.Set(jwk.KeyIDKey, `mykey`) // Create the token token := jwt.New() token.Set(`foo`, `bar`) // Sign the token and generate a payload signed, err := jwt.Sign(token, jwa.RS256, realKey) if err != nil { fmt.Printf("failed to generate signed payload: %s\n", err) return } // This is what you typically get as a signed JWT from a server payload = signed // Now create a key set that users will use to verity the signed payload against // Normally these keys are available somewhere like https://www.googleapis.com/oauth2/v3/certs pubKey, err := jwk.New(privKey.PublicKey) if err != nil { fmt.Printf("failed to create JWK: %s\n", err) return } // Remember, the key must have the proper "kid", and "alg" // If your key does not have "alg", see jwt.InferAlgorithmFromKey() pubKey.Set(jwk.AlgorithmKey, jwa.RS256) pubKey.Set(jwk.KeyIDKey, "mykey") // For demonstration purposes, we also create a bogus key bogusKey := jwk.NewSymmetricKey() bogusKey.Set(jwk.AlgorithmKey, jwa.NoSignature) bogusKey.Set(jwk.KeyIDKey, "otherkey") // This key set contains two keys, the first one is the correct one keyset = jwk.NewSet() keyset.Add(pubKey) keyset.Add(bogusKey) } { // Actual verification: // FINALLY. This is how you Parse and verify the payload. // Key IDs are automatically matched. // There was a lot of code above, but as a consumer, below is really all you need // to write in your code token, err := jwt.Parse( payload, // Tell the parser that you want to use this keyset jwt.WithKeySet(keyset), // Uncomment the following option if you know your key does not have an "alg" // field (which is apparently the case for Azure tokens) // jwt.InferAlgorithmFromKey(true), ) if err != nil { fmt.Printf("failed to parse payload: %s\n", err) } _ = token } } { // Case 2: For whatever reason, we don't have a "kid" specified. // Normally, this is an error, because we don't know how to select a key. // But if we have only one key in the KeySet, you can explicitly ask // jwt.Parse to "trust" the KeySet, and use the single key in the // key set. It would be an error if you have multiple keys in the KeySet. var payload []byte var keyset jwk.Set { // Preparation: // Unlike our previous example, we DO NOT want to sign the payload. // Therefore we do NOT set the "kid" value realKey, err := jwk.New(privKey) if err != nil { fmt.Printf("failed to create JWK: %s\n", err) return } // Create the token token := jwt.New() token.Set(`foo`, `bar`) // Sign the token and generate a payload signed, err := jwt.Sign(token, jwa.RS256, realKey) if err != nil { fmt.Printf("failed to generate signed payload: %s\n", err) return } // This is what you typically get as a signed JWT from a server payload = signed // Now create a key set that users will use to verity the signed payload against // Normally these keys are available somewhere like https://www.googleapis.com/oauth2/v3/certs pubKey, err := jwk.New(privKey.PublicKey) if err != nil { fmt.Printf("failed to create JWK: %s\n", err) return } pubKey.Set(jwk.AlgorithmKey, jwa.RS256) // This JWKS can *only* have 1 key. keyset = jwk.NewSet() keyset.Add(pubKey) } { token, err := jwt.Parse( payload, // Tell the parser that you want to use this keyset jwt.WithKeySet(keyset), // Tell the parser that you can trust this KeySet, and that // you want to use the sole key in it jwt.UseDefaultKey(true), ) if err != nil { fmt.Printf("failed to parse payload: %s\n", err) } _ = token } } // OUTPUT: } // This example return a signed jwt func ExampleJWT_Sign_WithImportJWK() { // your JWK jwkStr := `{ "kty": "RSA", "n": "mmO0OvOPQ53HRxV4eHOkTTxLVfk6zcq8KAD86gbnydYBNO_Si4Q1twyvefd58-BaO4N4NCEA97QrYm57ThKCe8agLGwWPHhxgbu_SAuYQehXxkf4sWy7Q17kGFG5k5AfQGZBqTY-YaawQqLlF6ILVbWab_AoEF4yB7pI3AnNnXs", "e": "AQAB", "d": "RzsrI2vONJcuIyjPzVslehEQfRkhPWOFTjuudNc8yA25vs_LZ11XXx42M-KvXIqtdvngUsTLan2w6pgowcuecX3t_2wUx0GJJgARfkN7gsWIS3CyXZBEEMjLGVU4vHt5zNE3GJKo3hb1TwEiulpL_Ix6hfcTSJpEaBWrBxjxV-E", "p": "5EA0bi6ui1H1wsG85oc7i9O7UH58WPIK_ytzBWXFIwcaSFFBqqNYNnZaHFsMe4cbHSBgShWHO3UueGVgOKmB8Q", "q": "rSi7CosQZmj_RFIYW10ef7XTZsdpIdOXV9-1dThAJUvkslKiTfdU7T0IYYsJ2K58ekJqdpcoKAVLB2SZVvdqKw", "dp": "S9yjEHPng1qsShzGQgB0ZBbtTOWdQpq_2OuCAStACFJWA-8t2h8MNJ3FeWMxlOTkuBuIpVbeaX6bAV0ATBTaoQ", "dq": "ZssMJhkh1jm0d-FoVix0Y4oUAiqUzaDnciH6faiz47AnBnkporEV-HPH2ugII1qJyKZOvzHCg-eIf84HfWoI2w", "qi": "lyVz1HI2b1IjzOMENkmUTaVEO6DM6usZi3c3_MobUUM05yyBhnHtPjWzqWn1uJ_Gt5bkJDdcpfvmkPAhKWEU9Q" }` // create a new jwt t := jwt.New() t.Set(jwt.SubjectKey, `https://github.com/lestrrat-go/jwx/jwt`) t.Set(jwt.AudienceKey, `Golang Users`) t.Set(jwt.IssuedAtKey, time.Unix(500, 0)) buf, err := json.MarshalIndent(t, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) if v, ok := t.Get(`privateClaimKey`); ok { fmt.Printf("privateClaimKey -> '%s'\n", v) } //convert jwk in bytes and return a new key jwkey, err := jwk.ParseKey([]byte(jwkStr)) if err != nil { log.Fatal("erro") } // signed and return a jwt signed, _ := jwt.Sign(t, jwa.RS256, jwkey) fmt.Println(string(signed[:])) // output // a signed jwt based on jwk } func ExampleJWT_Sign() { privKey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { fmt.Printf("failed to generate private key: %s\n", err) return } var payload []byte { // Create signed payload token := jwt.New() token.Set(`foo`, `bar`) payload, err = jwt.Sign(token, jwa.RS256, privKey) if err != nil { fmt.Printf("failed to generate signed payload: %s\n", err) return } } { // Parse signed payload, and perform (1) verification of the signature // and (2) validation of the JWT token // Validation can be performed in a separate step using `jwt.Validate` token, err := jwt.Parse( payload, jwt.WithValidate(true), jwt.WithVerify(jwa.RS256, &privKey.PublicKey), ) if err != nil { fmt.Printf("failed to parse JWT token: %s\n", err) return } buf, err := json.MarshalIndent(token, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) } // OUTPUT: // { // "foo": "bar" // } } func ExampleJWT_Token() { t := jwt.New() t.Set(jwt.SubjectKey, `https://github.com/lestrrat-go/jwx/jwt`) t.Set(jwt.AudienceKey, `Golang Users`) t.Set(jwt.IssuedAtKey, time.Unix(aLongLongTimeAgo, 0)) t.Set(`privateClaimKey`, `Hello, World!`) buf, err := json.MarshalIndent(t, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) fmt.Printf("aud -> '%s'\n", t.Audience()) fmt.Printf("iat -> '%s'\n", t.IssuedAt().Format(time.RFC3339)) if v, ok := t.Get(`privateClaimKey`); ok { fmt.Printf("privateClaimKey -> '%s'\n", v) } fmt.Printf("sub -> '%s'\n", t.Subject()) // OUTPUT: // { // "aud": [ // "Golang Users" // ], // "iat": 233431200, // "privateClaimKey": "Hello, World!", // "sub": "https://github.com/lestrrat-go/jwx/jwt" // } // aud -> '[Golang Users]' // iat -> '1977-05-25T18:00:00Z' // privateClaimKey -> 'Hello, World!' // sub -> 'https://github.com/lestrrat-go/jwx/jwt' } func ExampleJWT_SignToken() { key, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to generate private key: %s", err) return } t := jwt.New() { // Signing a token (using raw rsa.PrivateKey) signed, err := jwt.Sign(t, jwa.RS256, key) if err != nil { log.Printf("failed to sign token: %s", err) return } _ = signed } { // Signing a token (using JWK) jwkKey, err := jwk.New(key) if err != nil { log.Printf("failed to create JWK key: %s", err) return } signed, err := jwt.Sign(t, jwa.RS256, jwkKey) if err != nil { log.Printf("failed to sign token: %s", err) return } _ = signed } // OUTPUT: } func ExampleJWT_OpenIDToken() { t := openid.New() t.Set(jwt.SubjectKey, `https://github.com/lestrrat-go/jwx/jwt`) t.Set(jwt.AudienceKey, `Golang Users`) t.Set(jwt.IssuedAtKey, time.Unix(aLongLongTimeAgo, 0)) t.Set(`privateClaimKey`, `Hello, World!`) addr := openid.NewAddress() addr.Set(openid.AddressPostalCodeKey, `105-0011`) addr.Set(openid.AddressCountryKey, `日本`) addr.Set(openid.AddressRegionKey, `東京都`) addr.Set(openid.AddressLocalityKey, `港区`) addr.Set(openid.AddressStreetAddressKey, `芝公園 4-2-8`) if err := t.Set(openid.AddressKey, addr); err != nil { fmt.Printf("failed to set address: %s\n", err) return } buf, err := json.MarshalIndent(t, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) t2, err := jwt.Parse(buf, jwt.WithToken(openid.New())) if err != nil { fmt.Printf("failed to parse JSON: %s\n", err) return } if _, ok := t2.(openid.Token); !ok { fmt.Printf("using jwt.WithToken(openid.New()) creates an openid.Token instance") return } // OUTPUT: // { // "address": { // "country": "日本", // "locality": "港区", // "postal_code": "105-0011", // "region": "東京都", // "street_address": "芝公園 4-2-8" // }, // "aud": [ // "Golang Users" // ], // "iat": 233431200, // "privateClaimKey": "Hello, World!", // "sub": "https://github.com/lestrrat-go/jwx/jwt" // } } golang-github-lestrrat-go-jwx-1.2.30/examples/jwx_example_test.go000066400000000000000000000010351465311135100251210ustar00rootroot00000000000000// +build ignore package examples_test import ( "crypto/rand" "crypto/rsa" "log" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jws" ) func ExampleJWX_DecoderSettings() { // This has not been enabled in this example, but if you want to // parse numbers in the incoming JSON objects as json.Number // instead of floats, you can use the following call to globally // affect the behavior of JSON parsing. // func init() { // jwx.DecoderSettings(jwx.WithUseNumber(true)) // } } golang-github-lestrrat-go-jwx-1.2.30/format.go000066400000000000000000000050211465311135100212100ustar00rootroot00000000000000package jwx import ( "bytes" "encoding/json" ) type FormatKind int const ( UnknownFormat FormatKind = iota JWE JWS JWK JWKS JWT ) type formatHint struct { Payload json.RawMessage `json:"payload"` // Only in JWS Signatures json.RawMessage `json:"signatures"` // Only in JWS Ciphertext json.RawMessage `json:"ciphertext"` // Only in JWE KeyType json.RawMessage `json:"kty"` // Only in JWK Keys json.RawMessage `json:"keys"` // Only in JWKS Audience json.RawMessage `json:"aud"` // Only in JWT } // GuessFormat is used to guess the format the given payload is in // using heuristics. See the type FormatKind for a full list of // possible types. // // This may be useful in determining your next action when you may // encounter a payload that could either be a JWE, JWS, or a plain JWT. // // Because JWTs are almost always JWS signed, you may be thrown off // if you pass what you think is a JWT payload to this function. // If the function is in the "Compact" format, it means it's a JWS // signed message, and its payload is the JWT. Therefore this function // will reuturn JWS, not JWT. // // This function requires an extra parsing of the payload, and therefore // may be inefficient if you call it every time before parsing. func GuessFormat(payload []byte) FormatKind { // The check against kty, keys, and aud are something this library // made up. for the distinctions between JWE and JWS, we used // https://datatracker.ietf.org/doc/html/rfc7516#section-9. // // The above RFC described several ways to distinguish between // a JWE and JWS JSON, but we're only using one of them payload = bytes.TrimSpace(payload) if len(payload) <= 0 { return UnknownFormat } if payload[0] != '{' { // Compact format. It's probably a JWS or JWE sep := []byte{'.'} // I want to const this :/ // Note: this counts the number of occurrences of the // separator, but the RFC talks about the number of segments. // number of '.' == segments - 1, so that's why we have 2 and 4 here switch count := bytes.Count(payload, sep); count { case 2: return JWS case 4: return JWE default: return UnknownFormat } } // If we got here, we probably have JSON. var h formatHint if err := json.Unmarshal(payload, &h); err != nil { return UnknownFormat } if h.Audience != nil { return JWT } if h.KeyType != nil { return JWK } if h.Keys != nil { return JWKS } if h.Ciphertext != nil { return JWE } if h.Signatures != nil && h.Payload != nil { return JWS } return UnknownFormat } golang-github-lestrrat-go-jwx-1.2.30/formatkind_string_gen.go000066400000000000000000000013261465311135100243010ustar00rootroot00000000000000// Code generated by "stringer -type=FormatKind"; DO NOT EDIT. package jwx import "strconv" func _() { // An "invalid array index" compiler error signifies that the constant values have changed. // Re-run the stringer command to generate them again. var x [1]struct{} _ = x[UnknownFormat-0] _ = x[JWE-1] _ = x[JWS-2] _ = x[JWK-3] _ = x[JWKS-4] _ = x[JWT-5] } const _FormatKind_name = "UnknownFormatJWEJWSJWKJWKSJWT" var _FormatKind_index = [...]uint8{0, 13, 16, 19, 22, 26, 29} func (i FormatKind) String() string { if i < 0 || i >= FormatKind(len(_FormatKind_index)-1) { return "FormatKind(" + strconv.FormatInt(int64(i), 10) + ")" } return _FormatKind_name[_FormatKind_index[i]:_FormatKind_index[i+1]] } golang-github-lestrrat-go-jwx-1.2.30/gen.sh000077500000000000000000000004641465311135100205070ustar00rootroot00000000000000#!/bin/bash # Script to perform code generation. This exists to overcome # the fact that go:generate doesn't really allow you to change directories set -e pushd internal/cmd/genreadfile go build -o genreadfile main.go popd ./internal/cmd/genreadfile/genreadfile rm internal/cmd/genreadfile/genreadfile golang-github-lestrrat-go-jwx-1.2.30/go.mod000066400000000000000000000011521465311135100205000ustar00rootroot00000000000000module github.com/lestrrat-go/jwx go 1.20 require ( github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 github.com/goccy/go-json v0.10.3 github.com/lestrrat-go/backoff/v2 v2.0.8 github.com/lestrrat-go/blackmagic v1.0.2 github.com/lestrrat-go/httpcc v1.0.1 github.com/lestrrat-go/iter v1.0.2 github.com/lestrrat-go/option v1.0.1 github.com/pkg/errors v0.9.1 github.com/stretchr/testify v1.9.0 golang.org/x/crypto v0.25.0 ) require ( github.com/davecgh/go-spew v1.1.1 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) retract v1.2.16 // Packaging problems. golang-github-lestrrat-go-jwx-1.2.30/go.sum000066400000000000000000000057171465311135100205400ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0 h1:rpfIENRNNilwHwZeG5+P150SMrnNEcHYvcCuK6dPZSg= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.3.0/go.mod h1:v57UDF4pDQJcEfFUCRop3lJL149eHGSe9Jvczhzjo/0= github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/lestrrat-go/backoff/v2 v2.0.8 h1:oNb5E5isby2kiro9AgdHLv5N5tint1AnDVVf2E2un5A= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.2 h1:Cg2gVSc9h7sz9NOByczrbUvLopQmXrfFx//N+AkAr5k= github.com/lestrrat-go/blackmagic v1.0.2/go.mod h1:UrEqBzIR2U6CnzVyUtfM6oZNMt/7O7Vohk2J0OGSAtU= github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= github.com/lestrrat-go/iter v1.0.2 h1:gMXo1q4c2pHmC3dn8LzRhJfP1ceCbgSiT9lUydIzltI= github.com/lestrrat-go/iter v1.0.2/go.mod h1:Momfcq3AnRlRjI5b5O8/G5/BvpzrhoFTZcn06fEOPt4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU= github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/internal/000077500000000000000000000000001465311135100212075ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/base64/000077500000000000000000000000001465311135100222735ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/base64/base64.go000066400000000000000000000023541465311135100237120ustar00rootroot00000000000000package base64 import ( "bytes" "encoding/base64" "encoding/binary" "github.com/pkg/errors" ) func Encode(src []byte) []byte { enc := base64.RawURLEncoding dst := make([]byte, enc.EncodedLen(len(src))) enc.Encode(dst, src) return dst } func EncodeToStringStd(src []byte) string { return base64.StdEncoding.EncodeToString(src) } func EncodeToString(src []byte) string { return base64.RawURLEncoding.EncodeToString(src) } func EncodeUint64ToString(v uint64) string { data := make([]byte, 8) binary.BigEndian.PutUint64(data, v) i := 0 for ; i < len(data); i++ { if data[i] != 0x0 { break } } return EncodeToString(data[i:]) } func Decode(src []byte) ([]byte, error) { var enc *base64.Encoding var isRaw = !bytes.HasSuffix(src, []byte{'='}) var isURL = !bytes.ContainsAny(src, "+/") switch { case isRaw && isURL: enc = base64.RawURLEncoding case isURL: enc = base64.URLEncoding case isRaw: enc = base64.RawStdEncoding default: enc = base64.StdEncoding } dst := make([]byte, enc.DecodedLen(len(src))) n, err := enc.Decode(dst, src) if err != nil { return nil, errors.Wrap(err, `failed to decode source`) } return dst[:n], nil } func DecodeString(src string) ([]byte, error) { return Decode([]byte(src)) } golang-github-lestrrat-go-jwx-1.2.30/internal/base64/base64_test.go000066400000000000000000000023221465311135100247440ustar00rootroot00000000000000package base64 import ( "encoding/base64" "testing" "github.com/stretchr/testify/assert" ) func TestDecode(t *testing.T) { testcases := []struct { Name string Encoding *base64.Encoding }{ { Name: "base64.RawURLEncoding", Encoding: base64.RawURLEncoding, }, { Name: "base64.URLEncoding", Encoding: base64.URLEncoding, }, { Name: "base64.RawStdEncoding", Encoding: base64.RawStdEncoding, }, { Name: "base64.StdEncoding", Encoding: base64.StdEncoding, }, } var payload = []byte("Hello, World") for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { dst := make([]byte, tc.Encoding.EncodedLen(len(payload))) tc.Encoding.Encode(dst, payload) decoded, err := Decode(dst) if !assert.NoError(t, err, `Decode should succeed`) { return } if !assert.Equal(t, payload, decoded, `decoded content should match`) { return } }) } } func TestEncodeToStringStd(t *testing.T) { t.Parallel() t.Run("Encodes to StdEncoding with padding", func(t *testing.T) { t.Parallel() out, err := base64.StdEncoding.DecodeString(EncodeToStringStd([]byte("Hello, World!"))) assert.NoError(t, err) assert.NotNil(t, out) }) } golang-github-lestrrat-go-jwx-1.2.30/internal/cmd/000077500000000000000000000000001465311135100217525ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/cmd/genreadfile/000077500000000000000000000000001465311135100242175ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/cmd/genreadfile/go.mod000066400000000000000000000003651465311135100253310ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/internal/cmd/genreadfile go 1.16 require ( github.com/lestrrat-go/codegen v1.0.3 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/sys v0.5.0 // indirect golang.org/x/tools v0.1.12 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/internal/cmd/genreadfile/go.sum000066400000000000000000000142301465311135100253520ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/lestrrat-go/codegen v1.0.3 h1:HviEmojOS51tH5L762bRMAZPj8DTIkwk24Il8M+54sE= github.com/lestrrat-go/codegen v1.0.3/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/internal/cmd/genreadfile/main.go000066400000000000000000000045121465311135100254740ustar00rootroot00000000000000package main import ( "bytes" "fmt" "os" "github.com/lestrrat-go/codegen" ) type definition struct { Filename string Package string ReturnType string ParseOptions bool } func main() { if err := _main(); err != nil { fmt.Fprintf(os.Stderr, "%s\n", err) os.Exit(1) } } func _main() error { definitions := []definition{ { Package: "jwk", ReturnType: "Set", Filename: "jwk/io.go", ParseOptions: true, }, { Package: "jws", ReturnType: "*Message", Filename: "jws/io.go", }, { Package: "jwe", ReturnType: "*Message", Filename: "jwe/io.go", }, { Package: "jwt", ReturnType: "Token", Filename: "jwt/io.go", ParseOptions: true, }, } for _, def := range definitions { if err := generateFile(def); err != nil { return err } } return nil } func generateFile(def definition) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.LL("// Automatically generated by internal/cmd/genreadfile/main.go. DO NOT EDIT") o.LL("package %s", def.Package) o.LL("// ReadFileOption describes options that can be passed to ReadFile.") if !def.ParseOptions { o.L("// Currently there are no options available that can be passed to ReadFile, but") o.L("// it is provided here for anticipated future additions") } o.L("type ReadFileOption interface {") o.L("Option") o.L("readFileOption()") o.L("}") if !def.ParseOptions { o.L("func ReadFile(path string, _ ...ReadFileOption) (%s, error) {", def.ReturnType) } else { o.L("func ReadFile(path string, options ...ReadFileOption) (%s, error) {", def.ReturnType) o.L("var parseOptions []ParseOption") o.L("for _, option := range options {") o.L("switch option := option.(type) {") o.L("case ParseOption:") o.L("parseOptions = append(parseOptions, option)") o.L("}") o.L("}") o.L("") } o.L("f, err := os.Open(path)") o.L("if err != nil {") o.L("return nil, err") o.L("}") o.LL("defer f.Close()") if def.ParseOptions { o.L("return ParseReader(f, parseOptions...)") } else { o.L("return ParseReader(f)") } o.L("}") if err := o.WriteFile(def.Filename, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, def.Filename, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/internal/ecutil/000077500000000000000000000000001465311135100224745ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/ecutil/ecutil.go000066400000000000000000000053561465311135100243210ustar00rootroot00000000000000// Package ecutil defines tools that help with elliptic curve related // computation package ecutil import ( "crypto/elliptic" "math/big" "sync" "github.com/lestrrat-go/jwx/jwa" ) // data for available curves. Some algorithms may be compiled in/out var curveToAlg = map[elliptic.Curve]jwa.EllipticCurveAlgorithm{} var algToCurve = map[jwa.EllipticCurveAlgorithm]elliptic.Curve{} var availableAlgs []jwa.EllipticCurveAlgorithm var availableCrvs []elliptic.Curve func RegisterCurve(crv elliptic.Curve, alg jwa.EllipticCurveAlgorithm) { curveToAlg[crv] = alg algToCurve[alg] = crv availableAlgs = append(availableAlgs, alg) availableCrvs = append(availableCrvs, crv) } func IsAvailable(alg jwa.EllipticCurveAlgorithm) bool { _, ok := algToCurve[alg] return ok } func AvailableAlgorithms() []jwa.EllipticCurveAlgorithm { return availableAlgs } func AvailableCurves() []elliptic.Curve { return availableCrvs } func AlgorithmForCurve(crv elliptic.Curve) (jwa.EllipticCurveAlgorithm, bool) { v, ok := curveToAlg[crv] return v, ok } func CurveForAlgorithm(alg jwa.EllipticCurveAlgorithm) (elliptic.Curve, bool) { v, ok := algToCurve[alg] return v, ok } const ( // size of buffer that needs to be allocated for EC521 curve ec521BufferSize = 66 // (521 / 8) + 1 ) var ecpointBufferPool = sync.Pool{ New: func() interface{} { // In most cases the curve bit size will be less than this length // so allocate the maximum, and keep reusing buf := make([]byte, 0, ec521BufferSize) return &buf }, } func getCrvFixedBuffer(size int) []byte { //nolint:forcetypeassert buf := *(ecpointBufferPool.Get().(*[]byte)) if size > ec521BufferSize && cap(buf) < size { buf = append(buf, make([]byte, size-cap(buf))...) } return buf[:size] } // ReleaseECPointBuffer releases the []byte buffer allocated. func ReleaseECPointBuffer(buf []byte) { buf = buf[:cap(buf)] buf[0] = 0x0 for i := 1; i < len(buf); i *= 2 { copy(buf[i:], buf[:i]) } buf = buf[:0] ecpointBufferPool.Put(&buf) } // AllocECPointBuffer allocates a buffer for the given point in the given // curve. This buffer should be released using the ReleaseECPointBuffer // function. func AllocECPointBuffer(v *big.Int, crv elliptic.Curve) []byte { // We need to create a buffer that fits the entire curve. // If the curve size is 66, that fits in 9 bytes. If the curve // size is 64, it fits in 8 bytes. bits := crv.Params().BitSize // For most common cases we know before hand what the byte length // is going to be. optimize var inBytes int switch bits { case 224, 256, 384: // TODO: use constant? inBytes = bits / 8 case 521: inBytes = ec521BufferSize default: inBytes = bits / 8 if (bits % 8) != 0 { inBytes++ } } buf := getCrvFixedBuffer(inBytes) v.FillBytes(buf) return buf } golang-github-lestrrat-go-jwx-1.2.30/internal/iter/000077500000000000000000000000001465311135100221525ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/iter/mapiter.go000066400000000000000000000016531465311135100241470ustar00rootroot00000000000000package iter import ( "context" "github.com/lestrrat-go/iter/mapiter" "github.com/pkg/errors" ) // MapVisitor is a specialized visitor for our purposes. // Whereas mapiter.Visitor supports any type of key, this // visitor assumes the key is a string type MapVisitor interface { Visit(string, interface{}) error } type MapVisitorFunc func(string, interface{}) error func (fn MapVisitorFunc) Visit(s string, v interface{}) error { return fn(s, v) } func WalkMap(ctx context.Context, src mapiter.Source, visitor MapVisitor) error { return mapiter.Walk(ctx, src, mapiter.VisitorFunc(func(k, v interface{}) error { //nolint:forcetypeassert return visitor.Visit(k.(string), v) })) } func AsMap(ctx context.Context, src mapiter.Source) (map[string]interface{}, error) { var m map[string]interface{} if err := mapiter.AsMap(ctx, src, &m); err != nil { return nil, errors.Wrap(err, `mapiter.AsMap failed`) } return m, nil } golang-github-lestrrat-go-jwx-1.2.30/internal/jose/000077500000000000000000000000001465311135100221475ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/jose/jose.go000066400000000000000000000155001465311135100234370ustar00rootroot00000000000000package jose import ( "bufio" "bytes" "context" "fmt" "io" "os/exec" "strings" "sync" "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/pkg/errors" ) var executablePath string var muExecutablePath sync.RWMutex func init() { findExecutable() } func SetExecutable(path string) { muExecutablePath.Lock() defer muExecutablePath.Unlock() executablePath = path } func findExecutable() { p, err := exec.LookPath("jose") if err == nil { SetExecutable(p) } } func ExecutablePath() string { muExecutablePath.RLock() defer muExecutablePath.RUnlock() return executablePath } func Available() bool { muExecutablePath.RLock() defer muExecutablePath.RUnlock() return executablePath != "" } func RunJoseCommand(ctx context.Context, t *testing.T, args []string, outw, errw io.Writer) error { var errout bytes.Buffer var capout bytes.Buffer cmd := exec.CommandContext(ctx, ExecutablePath(), args...) if outw == nil { cmd.Stdout = &capout } else { cmd.Stdout = io.MultiWriter(outw, &capout) } if errw == nil { cmd.Stderr = &errout } else { cmd.Stderr = io.MultiWriter(outw, &errout) } t.Logf("Executing `%s %s`\n", ExecutablePath(), strings.Join(args, " ")) if err := cmd.Run(); err != nil { t.Logf(`failed to execute command: %s`, err) if capout.Len() > 0 { t.Logf("captured output: %s", capout.String()) } if errout.Len() > 0 { t.Logf("captured error: %s", errout.String()) } return errors.Wrap(err, `failed to execute command`) } return nil } type AlgorithmSet struct { data map[string]struct{} } func NewAlgorithmSet() *AlgorithmSet { return &AlgorithmSet{ data: make(map[string]struct{}), } } func (set *AlgorithmSet) Add(s string) { set.data[s] = struct{}{} } func (set *AlgorithmSet) Has(s string) bool { _, ok := set.data[s] return ok } func Algorithms(ctx context.Context, t *testing.T) (*AlgorithmSet, error) { var buf bytes.Buffer if err := RunJoseCommand(ctx, t, []string{"alg"}, &buf, nil); err != nil { return nil, errors.Wrap(err, `failed to generate jose tool's supported algorithms`) } set := NewAlgorithmSet() scanner := bufio.NewScanner(&buf) for scanner.Scan() { alg := scanner.Text() set.Add(alg) } return set, nil } // GenerateJwk creates a new key using the jose tool, and returns its filename and // a cleanup function. // The caller is responsible for calling the cleanup // function and make sure all resources are released func GenerateJwk(ctx context.Context, t *testing.T, template string) (string, func(), error) { t.Helper() file, cleanup, err := jwxtest.CreateTempFile("jwx-jose-key-*.jwk") if err != nil { return "", nil, errors.Wrap(err, "failed to create temporary file") } if err := RunJoseCommand(ctx, t, []string{"jwk", "gen", "-i", template, "-o", file.Name()}, nil, nil); err != nil { return "", nil, errors.Wrap(err, `failed to generate key`) } return file.Name(), cleanup, nil } // EncryptJwe creates an encrypted JWE message and returns its filename and // a cleanup function. // The caller is responsible for calling the cleanup // function and make sure all resources are released func EncryptJwe(ctx context.Context, t *testing.T, payload []byte, alg string, keyfile string, enc string, compact bool) (string, func(), error) { t.Helper() var arg string if alg == "dir" { arg = fmt.Sprintf(`{"protected":{"alg":"dir","enc":"%s"}}`, enc) } else { arg = fmt.Sprintf(`{"protected":{"enc":"%s"}}`, enc) } cmdargs := []string{"jwe", "enc", "-k", keyfile, "-i", arg} if compact { cmdargs = append(cmdargs, "-c") } var pfile string if len(payload) > 0 { fn, pcleanup, perr := jwxtest.WriteFile("jwx-jose-payload-*", bytes.NewReader(payload)) if perr != nil { return "", nil, errors.Wrap(perr, `failed to write payload to file`) } cmdargs = append(cmdargs, "-I", fn) pfile = fn defer pcleanup() } ofile, ocleanup, oerr := jwxtest.CreateTempFile(`jwx-jose-key-*.jwe`) if oerr != nil { return "", nil, errors.Wrap(oerr, "failed to create temporary file") } cmdargs = append(cmdargs, "-o", ofile.Name()) if err := RunJoseCommand(ctx, t, cmdargs, nil, nil); err != nil { defer ocleanup() if pfile != "" { jwxtest.DumpFile(t, pfile) } jwxtest.DumpFile(t, keyfile) return "", nil, errors.Wrap(err, `failed to encrypt message`) } return ofile.Name(), ocleanup, nil } func DecryptJwe(ctx context.Context, t *testing.T, cfile, kfile string) ([]byte, error) { t.Helper() cmdargs := []string{"jwe", "dec", "-i", cfile, "-k", kfile} var output bytes.Buffer if err := RunJoseCommand(ctx, t, cmdargs, &output, nil); err != nil { jwxtest.DumpFile(t, cfile) jwxtest.DumpFile(t, kfile) return nil, errors.Wrap(err, `failed to decrypt message`) } return output.Bytes(), nil } func FmtJwe(ctx context.Context, t *testing.T, data []byte) ([]byte, error) { t.Helper() fn, pcleanup, perr := jwxtest.WriteFile("jwx-jose-fmt-data-*", bytes.NewReader(data)) if perr != nil { return nil, errors.Wrap(perr, `failed to write data to file`) } defer pcleanup() cmdargs := []string{"jwe", "fmt", "-i", fn} var output bytes.Buffer if err := RunJoseCommand(ctx, t, cmdargs, &output, nil); err != nil { jwxtest.DumpFile(t, fn) return nil, errors.Wrap(err, `failed to format JWE message`) } return output.Bytes(), nil } // SignJws signs a message and returns its filename and // a cleanup function. // The caller is responsible for calling the cleanup // function and make sure all resources are released func SignJws(ctx context.Context, t *testing.T, payload []byte, keyfile string, compact bool) (string, func(), error) { t.Helper() cmdargs := []string{"jws", "sig", "-k", keyfile} if compact { cmdargs = append(cmdargs, "-c") } var pfile string if len(payload) > 0 { fn, pcleanup, perr := jwxtest.WriteFile("jwx-jose-payload-*", bytes.NewReader(payload)) if perr != nil { return "", nil, errors.Wrap(perr, `failed to write payload to file`) } cmdargs = append(cmdargs, "-I", fn) pfile = fn defer pcleanup() } ofile, ocleanup, oerr := jwxtest.CreateTempFile(`jwx-jose-sig-*.jws`) if oerr != nil { return "", nil, errors.Wrap(oerr, "failed to create temporary file") } cmdargs = append(cmdargs, "-o", ofile.Name()) if err := RunJoseCommand(ctx, t, cmdargs, nil, nil); err != nil { defer ocleanup() if pfile != "" { jwxtest.DumpFile(t, pfile) } jwxtest.DumpFile(t, keyfile) return "", nil, errors.Wrap(err, `failed to sign message`) } return ofile.Name(), ocleanup, nil } func VerifyJws(ctx context.Context, t *testing.T, cfile, kfile string) ([]byte, error) { t.Helper() cmdargs := []string{"jws", "ver", "-i", cfile, "-k", kfile, "-O-"} var output bytes.Buffer if err := RunJoseCommand(ctx, t, cmdargs, &output, nil); err != nil { jwxtest.DumpFile(t, cfile) jwxtest.DumpFile(t, kfile) return nil, errors.Wrap(err, `failed to decrypt message`) } return output.Bytes(), nil } golang-github-lestrrat-go-jwx-1.2.30/internal/json/000077500000000000000000000000001465311135100221605ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/json/goccy.go000066400000000000000000000021271465311135100236150ustar00rootroot00000000000000// +build jwx_goccy package json import ( "io" "github.com/goccy/go-json" ) type Decoder = json.Decoder type Delim = json.Delim type Encoder = json.Encoder type Marshaler = json.Marshaler type Number = json.Number type RawMessage = json.RawMessage type Unmarshaler = json.Unmarshaler func Engine() string { return "github.com/goccy/go-json" } // NewDecoder respects the values specified in DecoderSettings, // and creates a Decoder that has certain features turned on/off func NewDecoder(r io.Reader) *json.Decoder { dec := json.NewDecoder(r) muGlobalConfig.RLock() if useNumber { dec.UseNumber() } muGlobalConfig.RUnlock() return dec } // NewEncoder is just a proxy for "encoding/json".NewEncoder func NewEncoder(w io.Writer) *json.Encoder { return json.NewEncoder(w) } // Marshal is just a proxy for "encoding/json".Marshal func Marshal(v interface{}) ([]byte, error) { return json.Marshal(v) } // MarshalIndent is just a proxy for "encoding/json".MarshalIndent func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { return json.MarshalIndent(v, prefix, indent) } golang-github-lestrrat-go-jwx-1.2.30/internal/json/json.go000066400000000000000000000050511465311135100234610ustar00rootroot00000000000000package json import ( "bytes" "sync" "sync/atomic" "github.com/lestrrat-go/jwx/internal/base64" "github.com/pkg/errors" ) var muGlobalConfig sync.RWMutex var useNumber bool // Sets the global configuration for json decoding func DecoderSettings(inUseNumber bool) { muGlobalConfig.Lock() useNumber = inUseNumber muGlobalConfig.Unlock() } // Unmarshal respects the values specified in DecoderSettings, // and uses a Decoder that has certain features turned on/off func Unmarshal(b []byte, v interface{}) error { dec := NewDecoder(bytes.NewReader(b)) return dec.Decode(v) } func AssignNextBytesToken(dst *[]byte, dec *Decoder) error { var val string if err := dec.Decode(&val); err != nil { return errors.Wrap(err, `error reading next value`) } buf, err := base64.DecodeString(val) if err != nil { return errors.Errorf(`expected base64 encoded []byte (%T)`, val) } *dst = buf return nil } func ReadNextStringToken(dec *Decoder) (string, error) { var val string if err := dec.Decode(&val); err != nil { return "", errors.Wrap(err, `error reading next value`) } return val, nil } func AssignNextStringToken(dst **string, dec *Decoder) error { val, err := ReadNextStringToken(dec) if err != nil { return err } *dst = &val return nil } // FlattenAudience is a flag to specify if we should flatten the "aud" // entry to a string when there's only one entry. // In jwx < 1.1.8 we just dumped everything as an array of strings, // but apparently AWS Cognito doesn't handle this well. // // So now we have the ability to dump "aud" as a string if there's // only one entry, but we need to retain the old behavior so that // we don't accidentally break somebody else's code. (e.g. messing // up how signatures are calculated) var FlattenAudience uint32 func EncodeAudience(enc *Encoder, aud []string) error { var val interface{} if len(aud) == 1 && atomic.LoadUint32(&FlattenAudience) == 1 { val = aud[0] } else { val = aud } return enc.Encode(val) } // DecodeCtx is an interface for objects that needs that extra something // when decoding JSON into an object. type DecodeCtx interface { Registry() *Registry } // DecodeCtxContainer is used to differentiate objects that can carry extra // decoding hints and those who can't. type DecodeCtxContainer interface { DecodeCtx() DecodeCtx SetDecodeCtx(DecodeCtx) } // stock decodeCtx. should cover 80% of the cases type decodeCtx struct { registry *Registry } func NewDecodeCtx(r *Registry) DecodeCtx { return &decodeCtx{registry: r} } func (dc *decodeCtx) Registry() *Registry { return dc.registry } golang-github-lestrrat-go-jwx-1.2.30/internal/json/registry.go000066400000000000000000000020071465311135100243560ustar00rootroot00000000000000package json import ( "reflect" "sync" "github.com/pkg/errors" ) type Registry struct { mu *sync.RWMutex data map[string]reflect.Type } func NewRegistry() *Registry { return &Registry{ mu: &sync.RWMutex{}, data: make(map[string]reflect.Type), } } func (r *Registry) Register(name string, object interface{}) { if object == nil { r.mu.Lock() defer r.mu.Unlock() delete(r.data, name) return } typ := reflect.TypeOf(object) r.mu.Lock() defer r.mu.Unlock() r.data[name] = typ } func (r *Registry) Decode(dec *Decoder, name string) (interface{}, error) { r.mu.RLock() defer r.mu.RUnlock() if typ, ok := r.data[name]; ok { ptr := reflect.New(typ).Interface() if err := dec.Decode(ptr); err != nil { return nil, errors.Wrapf(err, `failed to decode field %s`, name) } return reflect.ValueOf(ptr).Elem().Interface(), nil } var decoded interface{} if err := dec.Decode(&decoded); err != nil { return nil, errors.Wrapf(err, `failed to decode field %s`, name) } return decoded, nil } golang-github-lestrrat-go-jwx-1.2.30/internal/json/stdlib.go000066400000000000000000000020321465311135100237650ustar00rootroot00000000000000//go:build !jwx_goccy // +build !jwx_goccy package json import ( "encoding/json" "io" ) type Decoder = json.Decoder type Delim = json.Delim type Encoder = json.Encoder type Marshaler = json.Marshaler type Number = json.Number type RawMessage = json.RawMessage type Unmarshaler = json.Unmarshaler func Engine() string { return "encoding/json" } // NewDecoder respects the values specified in DecoderSettings, // and creates a Decoder that has certain features turned on/off func NewDecoder(r io.Reader) *json.Decoder { dec := json.NewDecoder(r) muGlobalConfig.RLock() if useNumber { dec.UseNumber() } muGlobalConfig.RUnlock() return dec } func NewEncoder(w io.Writer) *json.Encoder { return json.NewEncoder(w) } // Marshal is just a proxy for "encoding/json".Marshal func Marshal(v interface{}) ([]byte, error) { return json.Marshal(v) } // MarshalIndent is just a proxy for "encoding/json".MarshalIndent func MarshalIndent(v interface{}, prefix, indent string) ([]byte, error) { return json.MarshalIndent(v, prefix, indent) } golang-github-lestrrat-go-jwx-1.2.30/internal/jwxtest/000077500000000000000000000000001465311135100227175ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/jwxtest/jwxtest.go000066400000000000000000000216671465311135100247720ustar00rootroot00000000000000package jwxtest import ( "bytes" "context" "crypto/ecdsa" "crypto/ed25519" "crypto/elliptic" "crypto/rand" "crypto/rsa" "encoding/json" "io" "os" "strings" "testing" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" "github.com/stretchr/testify/assert" ) func GenerateRsaKey() (*rsa.PrivateKey, error) { return rsa.GenerateKey(rand.Reader, 2048) } func GenerateRsaJwk() (jwk.Key, error) { key, err := GenerateRsaKey() if err != nil { return nil, errors.Wrap(err, `failed to generate RSA private key`) } k, err := jwk.New(key) if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.RSAPrivateKey`) } return k, nil } func GenerateRsaPublicJwk() (jwk.Key, error) { key, err := GenerateRsaJwk() if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.RSAPrivateKey`) } return jwk.PublicKeyOf(key) } func GenerateEcdsaKey(alg jwa.EllipticCurveAlgorithm) (*ecdsa.PrivateKey, error) { var crv elliptic.Curve if tmp, ok := ecutil.CurveForAlgorithm(alg); ok { crv = tmp } else { return nil, errors.Errorf(`invalid curve algorithm %s`, alg) } return ecdsa.GenerateKey(crv, rand.Reader) } func GenerateEcdsaJwk() (jwk.Key, error) { key, err := GenerateEcdsaKey(jwa.P521) if err != nil { return nil, errors.Wrap(err, `failed to generate ECDSA private key`) } k, err := jwk.New(key) if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.ECDSAPrivateKey`) } return k, nil } func GenerateEcdsaPublicJwk() (jwk.Key, error) { key, err := GenerateEcdsaJwk() if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.ECDSAPrivateKey`) } return jwk.PublicKeyOf(key) } func GenerateSymmetricKey() []byte { sharedKey := make([]byte, 64) rand.Read(sharedKey) return sharedKey } func GenerateSymmetricJwk() (jwk.Key, error) { key, err := jwk.New(GenerateSymmetricKey()) if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.SymmetricKey`) } return key, nil } func GenerateEd25519Key() (ed25519.PrivateKey, error) { _, priv, err := ed25519.GenerateKey(rand.Reader) return priv, err } func GenerateEd25519Jwk() (jwk.Key, error) { key, err := GenerateEd25519Key() if err != nil { return nil, errors.Wrap(err, `failed to generate Ed25519 private key`) } k, err := jwk.New(key) if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.OKPPrivateKey`) } return k, nil } func GenerateX25519Key() (x25519.PrivateKey, error) { _, priv, err := x25519.GenerateKey(rand.Reader) return priv, err } func GenerateX25519Jwk() (jwk.Key, error) { key, err := GenerateX25519Key() if err != nil { return nil, errors.Wrap(err, `failed to generate X25519 private key`) } k, err := jwk.New(key) if err != nil { return nil, errors.Wrap(err, `failed to generate jwk.OKPPrivateKey`) } return k, nil } func WriteFile(template string, src io.Reader) (string, func(), error) { file, cleanup, err := CreateTempFile(template) if err != nil { return "", nil, errors.Wrap(err, `failed to create temporary file`) } if _, err := io.Copy(file, src); err != nil { defer cleanup() return "", nil, errors.Wrap(err, `failed to copy content to temporary file`) } if err := file.Sync(); err != nil { defer cleanup() return "", nil, errors.Wrap(err, `failed to sync file`) } return file.Name(), cleanup, nil } func WriteJSONFile(template string, v interface{}) (string, func(), error) { var buf bytes.Buffer enc := json.NewEncoder(&buf) if err := enc.Encode(v); err != nil { return "", nil, errors.Wrap(err, `failed to encode object to JSON`) } return WriteFile(template, &buf) } func DumpFile(t *testing.T, file string) { buf, err := os.ReadFile(file) if !assert.NoError(t, err, `failed to read file %s for debugging`, file) { return } if isHash, isArray := bytes.ContainsRune(buf, '{'), bytes.ContainsRune(buf, '['); isHash || isArray { // Looks like a JSON-like thing. Dump that in a formatted manner, and // be done with it var v interface{} if isHash { v = map[string]interface{}{} } else { v = []interface{}{} } if !assert.NoError(t, json.Unmarshal(buf, &v), `failed to parse contents as JSON`) { return } buf, _ = json.MarshalIndent(v, "", " ") t.Logf("=== BEGIN %s (formatted JSON) ===", file) t.Logf("%s", buf) t.Logf("=== END %s (formatted JSON) ===", file) return } // If the contents do not look like JSON, then we attempt to parse each content // based on heuristics (from its file name) and do our best t.Logf("=== BEGIN %s (raw) ===", file) t.Logf("%s", buf) t.Logf("=== END %s (raw) ===", file) if strings.HasSuffix(file, ".jwe") { // cross our fingers our jwe implementation works m, err := jwe.Parse(buf) if !assert.NoError(t, err, `failed to parse JWE encrypted message`) { return } buf, _ = json.MarshalIndent(m, "", " ") } t.Logf("=== BEGIN %s (formatted JSON) ===", file) t.Logf("%s", buf) t.Logf("=== END %s (formatted JSON) ===", file) } func CreateTempFile(template string) (*os.File, func(), error) { file, err := os.CreateTemp("", template) if err != nil { return nil, nil, errors.Wrap(err, "failed to create temporary file") } cleanup := func() { file.Close() os.Remove(file.Name()) } return file, cleanup, nil } func ReadFile(file string) ([]byte, error) { f, err := os.Open(file) if err != nil { return nil, errors.Wrapf(err, `failed to open file %s`, file) } defer f.Close() buf, err := io.ReadAll(f) if err != nil { return nil, errors.Wrapf(err, `failed to read from key file %s`, file) } return buf, nil } func ParseJwkFile(_ context.Context, file string) (jwk.Key, error) { buf, err := ReadFile(file) if err != nil { return nil, errors.Wrapf(err, `failed to read from key file %s`, file) } key, err := jwk.ParseKey(buf) if err != nil { return nil, errors.Wrapf(err, `filed to parse JWK in key file %s`, file) } return key, nil } func DecryptJweFile(ctx context.Context, file string, alg jwa.KeyEncryptionAlgorithm, jwkfile string) ([]byte, error) { key, err := ParseJwkFile(ctx, jwkfile) if err != nil { return nil, errors.Wrapf(err, `failed to parse keyfile %s`, file) } buf, err := ReadFile(file) if err != nil { return nil, errors.Wrapf(err, `failed to read from encrypted file %s`, file) } var rawkey interface{} if err := key.Raw(&rawkey); err != nil { return nil, errors.Wrap(err, `failed to obtain raw key from JWK`) } return jwe.Decrypt(buf, alg, rawkey) } func EncryptJweFile(ctx context.Context, payload []byte, keyalg jwa.KeyEncryptionAlgorithm, keyfile string, contentalg jwa.ContentEncryptionAlgorithm, compressalg jwa.CompressionAlgorithm) (string, func(), error) { key, err := ParseJwkFile(ctx, keyfile) if err != nil { return "", nil, errors.Wrapf(err, `failed to parse keyfile %s`, keyfile) } var keyif interface{} switch keyalg { case jwa.RSA1_5, jwa.RSA_OAEP, jwa.RSA_OAEP_256: var rawkey rsa.PrivateKey if err := key.Raw(&rawkey); err != nil { return "", nil, errors.Wrap(err, `failed to obtain raw key`) } keyif = rawkey.PublicKey case jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A256KW: var rawkey ecdsa.PrivateKey if err := key.Raw(&rawkey); err != nil { return "", nil, errors.Wrap(err, `failed to obtain raw key`) } keyif = rawkey.PublicKey default: var rawkey []byte if err := key.Raw(&rawkey); err != nil { return "", nil, errors.Wrap(err, `failed to obtain raw key`) } keyif = rawkey } buf, err := jwe.Encrypt(payload, keyalg, keyif, contentalg, compressalg) if err != nil { return "", nil, errors.Wrap(err, `failed to encrypt payload`) } return WriteFile("jwx-test-*.jwe", bytes.NewReader(buf)) } func VerifyJwsFile(ctx context.Context, file string, alg jwa.SignatureAlgorithm, jwkfile string) ([]byte, error) { key, err := ParseJwkFile(ctx, jwkfile) if err != nil { return nil, errors.Wrapf(err, `failed to parse keyfile %s`, file) } buf, err := ReadFile(file) if err != nil { return nil, errors.Wrapf(err, `failed to read from encrypted file %s`, file) } var rawkey, pubkey interface{} if err := key.Raw(&rawkey); err != nil { return nil, errors.Wrap(err, `failed to obtain raw key from JWK`) } pubkey = rawkey switch tkey := rawkey.(type) { case *ecdsa.PrivateKey: pubkey = tkey.PublicKey case *rsa.PrivateKey: pubkey = tkey.PublicKey case *ed25519.PrivateKey: pubkey = tkey.Public() } return jws.Verify(buf, alg, pubkey) } func SignJwsFile(ctx context.Context, payload []byte, alg jwa.SignatureAlgorithm, keyfile string) (string, func(), error) { key, err := ParseJwkFile(ctx, keyfile) if err != nil { return "", nil, errors.Wrapf(err, `failed to parse keyfile %s`, keyfile) } buf, err := jws.Sign(payload, alg, key) if err != nil { return "", nil, errors.Wrap(err, `failed to sign payload`) } return WriteFile("jwx-test-*.jws", bytes.NewReader(buf)) } golang-github-lestrrat-go-jwx-1.2.30/internal/keyconv/000077500000000000000000000000001465311135100226655ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/keyconv/keyconv.go000066400000000000000000000110151465311135100246700ustar00rootroot00000000000000package keyconv import ( "crypto" "crypto/ecdsa" "crypto/rsa" "github.com/lestrrat-go/blackmagic" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" "golang.org/x/crypto/ed25519" ) // RSAPrivateKey assigns src to dst. // `dst` should be a pointer to a rsa.PrivateKey. // `src` may be rsa.PrivateKey, *rsa.PrivateKey, or a jwk.Key func RSAPrivateKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw rsa.PrivateKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce rsa.PrivateKey from %T`, src) } src = &raw } var ptr *rsa.PrivateKey switch src := src.(type) { case rsa.PrivateKey: ptr = &src case *rsa.PrivateKey: ptr = src default: return errors.Errorf(`expected rsa.PrivateKey or *rsa.PrivateKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } // RSAPublicKey assigns src to dst // `dst` should be a pointer to a non-zero rsa.PublicKey. // `src` may be rsa.PublicKey, *rsa.PublicKey, or a jwk.Key func RSAPublicKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw rsa.PublicKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce rsa.PublicKey from %T`, src) } src = &raw } var ptr *rsa.PublicKey switch src := src.(type) { case rsa.PublicKey: ptr = &src case *rsa.PublicKey: ptr = src default: return errors.Errorf(`expected rsa.PublicKey or *rsa.PublicKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } // ECDSAPrivateKey assigns src to dst, converting its type from a // non-pointer to a pointer func ECDSAPrivateKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw ecdsa.PrivateKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce ecdsa.PrivateKey from %T`, src) } src = &raw } var ptr *ecdsa.PrivateKey switch src := src.(type) { case ecdsa.PrivateKey: ptr = &src case *ecdsa.PrivateKey: ptr = src default: return errors.Errorf(`expected ecdsa.PrivateKey or *ecdsa.PrivateKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } // ECDSAPublicKey assigns src to dst, converting its type from a // non-pointer to a pointer func ECDSAPublicKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw ecdsa.PublicKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce ecdsa.PublicKey from %T`, src) } src = &raw } var ptr *ecdsa.PublicKey switch src := src.(type) { case ecdsa.PublicKey: ptr = &src case *ecdsa.PublicKey: ptr = src default: return errors.Errorf(`expected ecdsa.PublicKey or *ecdsa.PublicKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } func ByteSliceKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw []byte if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce []byte from %T`, src) } src = raw } if _, ok := src.([]byte); !ok { return errors.Errorf(`expected []byte, got %T`, src) } return blackmagic.AssignIfCompatible(dst, src) } func Ed25519PrivateKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw ed25519.PrivateKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce ed25519.PrivateKey from %T`, src) } src = &raw } var ptr *ed25519.PrivateKey switch src := src.(type) { case ed25519.PrivateKey: ptr = &src case *ed25519.PrivateKey: ptr = src default: return errors.Errorf(`expected ed25519.PrivateKey or *ed25519.PrivateKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } func Ed25519PublicKey(dst, src interface{}) error { if jwkKey, ok := src.(jwk.Key); ok { var raw ed25519.PublicKey if err := jwkKey.Raw(&raw); err != nil { return errors.Wrapf(err, `failed to produce ed25519.PublicKey from %T`, src) } src = &raw } var ptr *ed25519.PublicKey switch src := src.(type) { case ed25519.PublicKey: ptr = &src case *ed25519.PublicKey: ptr = src case *crypto.PublicKey: tmp, ok := (*src).(ed25519.PublicKey) if !ok { return errors.New(`failed to retrieve ed25519.PublicKey out of *crypto.PublicKey`) } ptr = &tmp case crypto.PublicKey: tmp, ok := src.(ed25519.PublicKey) if !ok { return errors.New(`failed to retrieve ed25519.PublicKey out of crypto.PublicKey`) } ptr = &tmp default: return errors.Errorf(`expected ed25519.PublicKey or *ed25519.PublicKey, got %T`, src) } return blackmagic.AssignIfCompatible(dst, ptr) } golang-github-lestrrat-go-jwx-1.2.30/internal/keyconv/keyconv_test.go000066400000000000000000000141411465311135100257320ustar00rootroot00000000000000package keyconv_test import ( "crypto/ecdsa" "crypto/rsa" "fmt" "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestKeyconv(t *testing.T) { t.Run("RSA", func(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `rsa.GenerateKey should succeed`) { return } t.Run("PrivateKey", func(t *testing.T) { jwkKey, _ := jwk.New(key) testcases := []struct { Src interface{} Error bool Name string }{ {Src: key, Name: "From rsa.PrivateKey"}, {Src: *key, Name: "From pointer to rsa.PrivateKey"}, {Src: jwkKey, Name: "From JWK"}, {Src: struct{}{}, Name: "From invalid value", Error: true}, } for _, tc := range testcases { tc := tc t.Run(fmt.Sprintf("Assign to rsa.PrivateKey (%s)", tc.Name), func(t *testing.T) { var dst rsa.PrivateKey var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.RSAPrivateKey(&dst, tc.Src), `keyconv.RSAPrivateKey should succeed`) { return } if !tc.Error { require.True(t, key.Equal(&dst), `keyconv.RSAPrivateKey should produce same value`) } }) t.Run("Assign to *rsa.PrivateKey", func(t *testing.T) { dst := &rsa.PrivateKey{} var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.RSAPrivateKey(dst, tc.Src), `keyconv.RSAPrivateKey should succeed`) { return } if !tc.Error { require.True(t, key.Equal(dst), `keyconv.RSAPrivateKey should produce same value`) } }) } }) t.Run("PublicKey", func(t *testing.T) { pubkey := &key.PublicKey jwkKey, _ := jwk.New(pubkey) testcases := []struct { Src interface{} Error bool }{ {Src: pubkey}, {Src: *pubkey}, {Src: jwkKey}, {Src: struct{}{}, Error: true}, } for _, tc := range testcases { tc := tc t.Run("Assign to rsa.PublicKey", func(t *testing.T) { var dst rsa.PublicKey var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.RSAPublicKey(&dst, tc.Src), `keyconv.RSAPublicKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, pubkey, &dst, `keyconv.RSAPublicKey should produce same value`) { return } } }) t.Run("Assign to *rsa.PublicKey", func(t *testing.T) { dst := &rsa.PublicKey{} var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.RSAPublicKey(dst, tc.Src), `keyconv.RSAPublicKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, pubkey, dst, `keyconv.RSAPublicKey should produce same value`) { return } } }) } }) }) t.Run("ECDSA", func(t *testing.T) { key, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, `ecdsa.GenerateKey should succeed`) { return } t.Run("PrivateKey", func(t *testing.T) { jwkKey, _ := jwk.New(key) testcases := []struct { Src interface{} Error bool }{ {Src: key}, {Src: *key}, {Src: jwkKey}, {Src: struct{}{}, Error: true}, } for _, tc := range testcases { tc := tc t.Run("Assign to ecdsa.PrivateKey", func(t *testing.T) { var dst ecdsa.PrivateKey var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.ECDSAPrivateKey(&dst, tc.Src), `keyconv.ECDSAPrivateKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, key, &dst, `keyconv.ECDSAPrivateKey should produce same value`) { return } } }) t.Run("Assign to *ecdsa.PrivateKey", func(t *testing.T) { dst := &ecdsa.PrivateKey{} var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.ECDSAPrivateKey(dst, tc.Src), `keyconv.ECDSAPrivateKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, key, dst, `keyconv.ECDSAPrivateKey should produce same value`) { return } } }) } }) t.Run("PublicKey", func(t *testing.T) { pubkey := &key.PublicKey jwkKey, _ := jwk.New(pubkey) testcases := []struct { Src interface{} Error bool }{ {Src: pubkey}, {Src: *pubkey}, {Src: jwkKey}, {Src: struct{}{}, Error: true}, } for _, tc := range testcases { tc := tc t.Run("Assign to ecdsa.PublicKey", func(t *testing.T) { var dst ecdsa.PublicKey var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.ECDSAPublicKey(&dst, tc.Src), `keyconv.ECDSAPublicKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, pubkey, &dst, `keyconv.ECDSAPublicKey should produce same value`) { return } } }) t.Run("Assign to *ecdsa.PublicKey", func(t *testing.T) { dst := &ecdsa.PublicKey{} var checker func(assert.TestingT, error, ...interface{}) bool if tc.Error { checker = assert.Error } else { checker = assert.NoError } if !checker(t, keyconv.ECDSAPublicKey(dst, tc.Src), `keyconv.ECDSAPublicKey should succeed`) { return } if !tc.Error { if !assert.Equal(t, pubkey, dst, `keyconv.ECDSAPublicKey should produce same value`) { return } } }) } }) }) } golang-github-lestrrat-go-jwx-1.2.30/internal/pool/000077500000000000000000000000001465311135100221605ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/internal/pool/pool.go000066400000000000000000000017401465311135100234620ustar00rootroot00000000000000package pool import ( "bytes" "math/big" "sync" ) var bytesBufferPool = sync.Pool{ New: allocBytesBuffer, } func allocBytesBuffer() interface{} { return &bytes.Buffer{} } func GetBytesBuffer() *bytes.Buffer { //nolint:forcetypeassert return bytesBufferPool.Get().(*bytes.Buffer) } func ReleaseBytesBuffer(b *bytes.Buffer) { b.Reset() bytesBufferPool.Put(b) } var bigIntPool = sync.Pool{ New: allocBigInt, } func allocBigInt() interface{} { return &big.Int{} } func GetBigInt() *big.Int { //nolint:forcetypeassert return bigIntPool.Get().(*big.Int) } func ReleaseBigInt(i *big.Int) { bigIntPool.Put(i.SetInt64(0)) } var keyToErrorMapPool = sync.Pool{ New: allocKeyToErrorMap, } func allocKeyToErrorMap() interface{} { return make(map[string]error) } func GetKeyToErrorMap() map[string]error { //nolint:forcetypeassert return keyToErrorMapPool.Get().(map[string]error) } func ReleaseKeyToErrorMap(m map[string]error) { for key := range m { delete(m, key) } } golang-github-lestrrat-go-jwx-1.2.30/jwa/000077500000000000000000000000001465311135100201545ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwa/README.md000066400000000000000000000004231465311135100214320ustar00rootroot00000000000000# JWA [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx/jwa.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwa) Package [github.com/lestrrat-go/jwx/jwa](./jwa) defines the various algorithm described in [RFC7518](https://tools.ietf.org/html/rfc7518) golang-github-lestrrat-go-jwx-1.2.30/jwa/compression_gen.go000066400000000000000000000040171465311135100236770ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // CompressionAlgorithm represents the compression algorithms as described in https://tools.ietf.org/html/rfc7518#section-7.3 type CompressionAlgorithm string // Supported values for CompressionAlgorithm const ( Deflate CompressionAlgorithm = "DEF" // DEFLATE (RFC 1951) NoCompress CompressionAlgorithm = "" // No compression ) var allCompressionAlgorithms = map[CompressionAlgorithm]struct{}{ Deflate: {}, NoCompress: {}, } var listCompressionAlgorithmOnce sync.Once var listCompressionAlgorithm []CompressionAlgorithm // CompressionAlgorithms returns a list of all available values for CompressionAlgorithm func CompressionAlgorithms() []CompressionAlgorithm { listCompressionAlgorithmOnce.Do(func() { listCompressionAlgorithm = make([]CompressionAlgorithm, 0, len(allCompressionAlgorithms)) for v := range allCompressionAlgorithms { listCompressionAlgorithm = append(listCompressionAlgorithm, v) } sort.Slice(listCompressionAlgorithm, func(i, j int) bool { return string(listCompressionAlgorithm[i]) < string(listCompressionAlgorithm[j]) }) }) return listCompressionAlgorithm } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *CompressionAlgorithm) Accept(value interface{}) error { var tmp CompressionAlgorithm if x, ok := value.(CompressionAlgorithm); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.CompressionAlgorithm: %T`, value) } tmp = CompressionAlgorithm(s) } if _, ok := allCompressionAlgorithms[tmp]; !ok { return errors.Errorf(`invalid jwa.CompressionAlgorithm value`) } *v = tmp return nil } // String returns the string representation of a CompressionAlgorithm func (v CompressionAlgorithm) String() string { return string(v) } golang-github-lestrrat-go-jwx-1.2.30/jwa/compression_gen_test.go000066400000000000000000000062631465311135100247430ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestCompressionAlgorithm(t *testing.T) { t.Parallel() t.Run(`accept jwa constant Deflate`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept(jwa.Deflate), `accept is successful`) { return } if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string DEF`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept("DEF"), `accept is successful`) { return } if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for DEF`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "DEF"}), `accept is successful`) { return } if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for DEF`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "DEF", jwa.Deflate.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant NoCompress`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept(jwa.NoCompress), `accept is successful`) { return } if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string `, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept(""), `accept is successful`) { return } if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for `, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: ""}), `accept is successful`) { return } if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for `, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "", jwa.NoCompress.String(), `stringified value matches`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.CompressionAlgorithm if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.CompressionAlgorithm]struct{}{ jwa.Deflate: {}, jwa.NoCompress: {}, } for _, v := range jwa.CompressionAlgorithms() { if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/content_encryption_gen.go000066400000000000000000000052501465311135100252620ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // ContentEncryptionAlgorithm represents the various encryption algorithms as described in https://tools.ietf.org/html/rfc7518#section-5 type ContentEncryptionAlgorithm string // Supported values for ContentEncryptionAlgorithm const ( A128CBC_HS256 ContentEncryptionAlgorithm = "A128CBC-HS256" // AES-CBC + HMAC-SHA256 (128) A128GCM ContentEncryptionAlgorithm = "A128GCM" // AES-GCM (128) A192CBC_HS384 ContentEncryptionAlgorithm = "A192CBC-HS384" // AES-CBC + HMAC-SHA384 (192) A192GCM ContentEncryptionAlgorithm = "A192GCM" // AES-GCM (192) A256CBC_HS512 ContentEncryptionAlgorithm = "A256CBC-HS512" // AES-CBC + HMAC-SHA512 (256) A256GCM ContentEncryptionAlgorithm = "A256GCM" // AES-GCM (256) ) var allContentEncryptionAlgorithms = map[ContentEncryptionAlgorithm]struct{}{ A128CBC_HS256: {}, A128GCM: {}, A192CBC_HS384: {}, A192GCM: {}, A256CBC_HS512: {}, A256GCM: {}, } var listContentEncryptionAlgorithmOnce sync.Once var listContentEncryptionAlgorithm []ContentEncryptionAlgorithm // ContentEncryptionAlgorithms returns a list of all available values for ContentEncryptionAlgorithm func ContentEncryptionAlgorithms() []ContentEncryptionAlgorithm { listContentEncryptionAlgorithmOnce.Do(func() { listContentEncryptionAlgorithm = make([]ContentEncryptionAlgorithm, 0, len(allContentEncryptionAlgorithms)) for v := range allContentEncryptionAlgorithms { listContentEncryptionAlgorithm = append(listContentEncryptionAlgorithm, v) } sort.Slice(listContentEncryptionAlgorithm, func(i, j int) bool { return string(listContentEncryptionAlgorithm[i]) < string(listContentEncryptionAlgorithm[j]) }) }) return listContentEncryptionAlgorithm } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *ContentEncryptionAlgorithm) Accept(value interface{}) error { var tmp ContentEncryptionAlgorithm if x, ok := value.(ContentEncryptionAlgorithm); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.ContentEncryptionAlgorithm: %T`, value) } tmp = ContentEncryptionAlgorithm(s) } if _, ok := allContentEncryptionAlgorithms[tmp]; !ok { return errors.Errorf(`invalid jwa.ContentEncryptionAlgorithm value`) } *v = tmp return nil } // String returns the string representation of a ContentEncryptionAlgorithm func (v ContentEncryptionAlgorithm) String() string { return string(v) } golang-github-lestrrat-go-jwx-1.2.30/jwa/content_encryption_gen_test.go000066400000000000000000000177571465311135100263400ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestContentEncryptionAlgorithm(t *testing.T) { t.Parallel() t.Run(`accept jwa constant A128CBC_HS256`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A128CBC_HS256), `accept is successful`) { return } if !assert.Equal(t, jwa.A128CBC_HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A128CBC-HS256`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A128CBC-HS256"), `accept is successful`) { return } if !assert.Equal(t, jwa.A128CBC_HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A128CBC-HS256`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A128CBC-HS256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A128CBC_HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A128CBC-HS256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A128CBC-HS256", jwa.A128CBC_HS256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A128GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A128GCM), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A128GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A128GCM"), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A128GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A128GCM"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A128GCM`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A128GCM", jwa.A128GCM.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A192CBC_HS384`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A192CBC_HS384), `accept is successful`) { return } if !assert.Equal(t, jwa.A192CBC_HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A192CBC-HS384`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A192CBC-HS384"), `accept is successful`) { return } if !assert.Equal(t, jwa.A192CBC_HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A192CBC-HS384`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A192CBC-HS384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A192CBC_HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A192CBC-HS384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A192CBC-HS384", jwa.A192CBC_HS384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A192GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A192GCM), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A192GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A192GCM"), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A192GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A192GCM"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A192GCM`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A192GCM", jwa.A192GCM.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A256CBC_HS512`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A256CBC_HS512), `accept is successful`) { return } if !assert.Equal(t, jwa.A256CBC_HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A256CBC-HS512`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A256CBC-HS512"), `accept is successful`) { return } if !assert.Equal(t, jwa.A256CBC_HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A256CBC-HS512`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A256CBC-HS512"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A256CBC_HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A256CBC-HS512`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A256CBC-HS512", jwa.A256CBC_HS512.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A256GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A256GCM), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A256GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A256GCM"), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A256GCM`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A256GCM"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCM, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A256GCM`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A256GCM", jwa.A256GCM.String(), `stringified value matches`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.ContentEncryptionAlgorithm if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.ContentEncryptionAlgorithm]struct{}{ jwa.A128CBC_HS256: {}, jwa.A128GCM: {}, jwa.A192CBC_HS384: {}, jwa.A192GCM: {}, jwa.A256CBC_HS512: {}, jwa.A256GCM: {}, } for _, v := range jwa.ContentEncryptionAlgorithms() { if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/elliptic_gen.go000066400000000000000000000046301465311135100231440ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // EllipticCurveAlgorithm represents the algorithms used for EC keys type EllipticCurveAlgorithm string // Supported values for EllipticCurveAlgorithm const ( Ed25519 EllipticCurveAlgorithm = "Ed25519" Ed448 EllipticCurveAlgorithm = "Ed448" InvalidEllipticCurve EllipticCurveAlgorithm = "P-invalid" P256 EllipticCurveAlgorithm = "P-256" P384 EllipticCurveAlgorithm = "P-384" P521 EllipticCurveAlgorithm = "P-521" X25519 EllipticCurveAlgorithm = "X25519" X448 EllipticCurveAlgorithm = "X448" ) var allEllipticCurveAlgorithms = map[EllipticCurveAlgorithm]struct{}{ Ed25519: {}, Ed448: {}, P256: {}, P384: {}, P521: {}, X25519: {}, X448: {}, } var listEllipticCurveAlgorithmOnce sync.Once var listEllipticCurveAlgorithm []EllipticCurveAlgorithm // EllipticCurveAlgorithms returns a list of all available values for EllipticCurveAlgorithm func EllipticCurveAlgorithms() []EllipticCurveAlgorithm { listEllipticCurveAlgorithmOnce.Do(func() { listEllipticCurveAlgorithm = make([]EllipticCurveAlgorithm, 0, len(allEllipticCurveAlgorithms)) for v := range allEllipticCurveAlgorithms { listEllipticCurveAlgorithm = append(listEllipticCurveAlgorithm, v) } sort.Slice(listEllipticCurveAlgorithm, func(i, j int) bool { return string(listEllipticCurveAlgorithm[i]) < string(listEllipticCurveAlgorithm[j]) }) }) return listEllipticCurveAlgorithm } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *EllipticCurveAlgorithm) Accept(value interface{}) error { var tmp EllipticCurveAlgorithm if x, ok := value.(EllipticCurveAlgorithm); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.EllipticCurveAlgorithm: %T`, value) } tmp = EllipticCurveAlgorithm(s) } if _, ok := allEllipticCurveAlgorithms[tmp]; !ok { return errors.Errorf(`invalid jwa.EllipticCurveAlgorithm value`) } *v = tmp return nil } // String returns the string representation of a EllipticCurveAlgorithm func (v EllipticCurveAlgorithm) String() string { return string(v) } golang-github-lestrrat-go-jwx-1.2.30/jwa/elliptic_gen_test.go000066400000000000000000000217531465311135100242100ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestEllipticCurveAlgorithm(t *testing.T) { t.Parallel() t.Run(`accept jwa constant Ed25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.Ed25519), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string Ed25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("Ed25519"), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for Ed25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "Ed25519"}), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for Ed25519`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "Ed25519", jwa.Ed25519.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant Ed448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.Ed448), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string Ed448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("Ed448"), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for Ed448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "Ed448"}), `accept is successful`) { return } if !assert.Equal(t, jwa.Ed448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for Ed448`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "Ed448", jwa.Ed448.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant P256`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.P256), `accept is successful`) { return } if !assert.Equal(t, jwa.P256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string P-256`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("P-256"), `accept is successful`) { return } if !assert.Equal(t, jwa.P256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for P-256`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "P-256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.P256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for P-256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "P-256", jwa.P256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant P384`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.P384), `accept is successful`) { return } if !assert.Equal(t, jwa.P384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string P-384`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("P-384"), `accept is successful`) { return } if !assert.Equal(t, jwa.P384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for P-384`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "P-384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.P384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for P-384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "P-384", jwa.P384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant P521`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.P521), `accept is successful`) { return } if !assert.Equal(t, jwa.P521, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string P-521`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("P-521"), `accept is successful`) { return } if !assert.Equal(t, jwa.P521, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for P-521`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "P-521"}), `accept is successful`) { return } if !assert.Equal(t, jwa.P521, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for P-521`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "P-521", jwa.P521.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant X25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.X25519), `accept is successful`) { return } if !assert.Equal(t, jwa.X25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string X25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("X25519"), `accept is successful`) { return } if !assert.Equal(t, jwa.X25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for X25519`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "X25519"}), `accept is successful`) { return } if !assert.Equal(t, jwa.X25519, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for X25519`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "X25519", jwa.X25519.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant X448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.X448), `accept is successful`) { return } if !assert.Equal(t, jwa.X448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string X448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("X448"), `accept is successful`) { return } if !assert.Equal(t, jwa.X448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for X448`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "X448"}), `accept is successful`) { return } if !assert.Equal(t, jwa.X448, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for X448`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "X448", jwa.X448.String(), `stringified value matches`) { return } }) t.Run(`do not accept invalid constant InvalidEllipticCurve`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.Error(t, dst.Accept(jwa.InvalidEllipticCurve), `accept should fail`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.EllipticCurveAlgorithm]struct{}{ jwa.Ed25519: {}, jwa.Ed448: {}, jwa.P256: {}, jwa.P384: {}, jwa.P521: {}, jwa.X25519: {}, jwa.X448: {}, } for _, v := range jwa.EllipticCurveAlgorithms() { // There is no good way to detect from a test if es256k (secp256k1) // is supported, so just allow it if v.String() == `secp256k1` { continue } if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/gen.sh000077500000000000000000000005141465311135100212640ustar00rootroot00000000000000#!/bin/bash # Script to perform code generation. This exists to overcome # the fact that go:generate doesn't really allow you to change directories set -e pushd internal/cmd/gentypes go build -o gentypes main.go popd ./internal/cmd/gentypes/gentypes -objects=internal/cmd/gentypes/objects.yml rm internal/cmd/gentypes/gentypes golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/000077500000000000000000000000001465311135100217705ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/cmd/000077500000000000000000000000001465311135100225335ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/cmd/gentypes/000077500000000000000000000000001465311135100243715ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/cmd/gentypes/go.mod000066400000000000000000000003661465311135100255040ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/jwa/internal/cmd/gentypes go 1.16 require ( github.com/lestrrat-go/codegen v1.0.3 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/sys v0.5.0 // indirect golang.org/x/tools v0.1.12 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/cmd/gentypes/go.sum000066400000000000000000000142301465311135100255240ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/lestrrat-go/codegen v1.0.3 h1:HviEmojOS51tH5L762bRMAZPj8DTIkwk24Il8M+54sE= github.com/lestrrat-go/codegen v1.0.3/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/jwa/internal/cmd/gentypes/main.go000066400000000000000000000357161465311135100256600ustar00rootroot00000000000000package main import ( "bytes" "fmt" "log" "os" "sort" "strconv" "strings" "github.com/lestrrat-go/codegen" ) func main() { if err := _main(); err != nil { log.Printf("%s", err) os.Exit(1) } } func _main() error { typs := []typ{ { name: `CompressionAlgorithm`, comment: `CompressionAlgorithm represents the compression algorithms as described in https://tools.ietf.org/html/rfc7518#section-7.3`, filename: `compression_gen.go`, elements: []element{ { name: `NoCompress`, value: ``, comment: `No compression`, }, { name: `Deflate`, value: `DEF`, comment: `DEFLATE (RFC 1951)`, }, }, }, { name: `ContentEncryptionAlgorithm`, comment: `ContentEncryptionAlgorithm represents the various encryption algorithms as described in https://tools.ietf.org/html/rfc7518#section-5`, filename: `content_encryption_gen.go`, elements: []element{ { name: `A128CBC_HS256`, value: `A128CBC-HS256`, comment: `AES-CBC + HMAC-SHA256 (128)`, }, { name: `A192CBC_HS384`, value: `A192CBC-HS384`, comment: `AES-CBC + HMAC-SHA384 (192)`, }, { name: `A256CBC_HS512`, value: `A256CBC-HS512`, comment: `AES-CBC + HMAC-SHA512 (256)`, }, { name: `A128GCM`, value: `A128GCM`, comment: `AES-GCM (128)`, }, { name: `A192GCM`, value: `A192GCM`, comment: `AES-GCM (192)`, }, { name: `A256GCM`, value: `A256GCM`, comment: `AES-GCM (256)`, }, }, }, { name: `KeyType`, comment: `KeyType represents the key type ("kty") that are supported`, filename: "key_type_gen.go", elements: []element{ { name: `InvalidKeyType`, value: ``, comment: `Invalid KeyType`, invalid: true, }, { name: `EC`, value: `EC`, comment: `Elliptic Curve`, }, { name: `RSA`, value: `RSA`, comment: `RSA`, }, { name: `OctetSeq`, value: `oct`, comment: `Octet sequence (used to represent symmetric keys)`, }, { name: `OKP`, value: `OKP`, comment: `Octet string key pairs`, }, }, }, { name: `EllipticCurveAlgorithm`, comment: `EllipticCurveAlgorithm represents the algorithms used for EC keys`, filename: `elliptic_gen.go`, elements: []element{ { name: `InvalidEllipticCurve`, value: `P-invalid`, invalid: true, }, { name: `P256`, value: `P-256`, }, { name: `P384`, value: `P-384`, }, { name: `P521`, value: `P-521`, }, { name: `Ed25519`, value: `Ed25519`, }, { name: `Ed448`, value: `Ed448`, }, { name: `X25519`, value: `X25519`, }, { name: `X448`, value: `X448`, }, }, }, { name: `SignatureAlgorithm`, comment: `SignatureAlgorithm represents the various signature algorithms as described in https://tools.ietf.org/html/rfc7518#section-3.1`, filename: `signature_gen.go`, elements: []element{ { name: `NoSignature`, value: "none", }, { name: `HS256`, value: "HS256", comment: `HMAC using SHA-256`, }, { name: `HS384`, value: `HS384`, comment: `HMAC using SHA-384`, }, { name: `HS512`, value: "HS512", comment: `HMAC using SHA-512`, }, { name: `RS256`, value: `RS256`, comment: `RSASSA-PKCS-v1.5 using SHA-256`, }, { name: `RS384`, value: `RS384`, comment: `RSASSA-PKCS-v1.5 using SHA-384`, }, { name: `RS512`, value: `RS512`, comment: `RSASSA-PKCS-v1.5 using SHA-512`, }, { name: `ES256`, value: `ES256`, comment: `ECDSA using P-256 and SHA-256`, }, { name: `ES384`, value: `ES384`, comment: `ECDSA using P-384 and SHA-384`, }, { name: `ES512`, value: "ES512", comment: `ECDSA using P-521 and SHA-512`, }, { name: `ES256K`, value: "ES256K", comment: `ECDSA using secp256k1 and SHA-256`, }, { name: `EdDSA`, value: `EdDSA`, comment: `EdDSA signature algorithms`, }, { name: `PS256`, value: `PS256`, comment: `RSASSA-PSS using SHA256 and MGF1-SHA256`, }, { name: `PS384`, value: `PS384`, comment: `RSASSA-PSS using SHA384 and MGF1-SHA384`, }, { name: `PS512`, value: `PS512`, comment: `RSASSA-PSS using SHA512 and MGF1-SHA512`, }, }, }, { name: `KeyEncryptionAlgorithm`, comment: `KeyEncryptionAlgorithm represents the various encryption algorithms as described in https://tools.ietf.org/html/rfc7518#section-4.1`, filename: `key_encryption_gen.go`, elements: []element{ { name: `RSA1_5`, value: "RSA1_5", comment: `RSA-PKCS1v1.5`, }, { name: `RSA_OAEP`, value: "RSA-OAEP", comment: `RSA-OAEP-SHA1`, }, { name: `RSA_OAEP_256`, value: "RSA-OAEP-256", comment: `RSA-OAEP-SHA256`, }, { name: `A128KW`, value: "A128KW", comment: `AES key wrap (128)`, }, { name: `A192KW`, value: "A192KW", comment: `AES key wrap (192)`, }, { name: `A256KW`, value: "A256KW", comment: `AES key wrap (256)`, }, { name: `DIRECT`, value: "dir", comment: `Direct encryption`, }, { name: `ECDH_ES`, value: "ECDH-ES", comment: `ECDH-ES`, }, { name: `ECDH_ES_A128KW`, value: "ECDH-ES+A128KW", comment: `ECDH-ES + AES key wrap (128)`, }, { name: `ECDH_ES_A192KW`, value: "ECDH-ES+A192KW", comment: `ECDH-ES + AES key wrap (192)`, }, { name: `ECDH_ES_A256KW`, value: "ECDH-ES+A256KW", comment: `ECDH-ES + AES key wrap (256)`, }, { name: `A128GCMKW`, value: "A128GCMKW", comment: `AES-GCM key wrap (128)`, }, { name: `A192GCMKW`, value: "A192GCMKW", comment: `AES-GCM key wrap (192)`, }, { name: `A256GCMKW`, value: "A256GCMKW", comment: `AES-GCM key wrap (256)`, }, { name: `PBES2_HS256_A128KW`, value: "PBES2-HS256+A128KW", comment: `PBES2 + HMAC-SHA256 + AES key wrap (128)`, }, { name: `PBES2_HS384_A192KW`, value: "PBES2-HS384+A192KW", comment: `PBES2 + HMAC-SHA384 + AES key wrap (192)`, }, { name: `PBES2_HS512_A256KW`, value: "PBES2-HS512+A256KW", comment: `PBES2 + HMAC-SHA512 + AES key wrap (256)`, }, }, }, } sort.Slice(typs, func(i, j int) bool { return typs[i].name < typs[j].name }) for _, t := range typs { t := t sort.Slice(t.elements, func(i, j int) bool { return t.elements[i].name < t.elements[j].name }) if err := t.Generate(); err != nil { return fmt.Errorf(`failed to generate file: %w`, err) } if err := t.GenerateTest(); err != nil { return fmt.Errorf(`failed to generate test file: %w`, err) } } return nil } type typ struct { name string comment string filename string elements []element } type element struct { name string value string comment string invalid bool } var isSymmetricKeyEncryption = map[string]struct{}{ `A128KW`: {}, `A192KW`: {}, `A256KW`: {}, `DIRECT`: {}, `A128GCMKW`: {}, `A192GCMKW`: {}, `A256GCMKW`: {}, `PBES2_HS256_A128KW`: {}, `PBES2_HS384_A192KW`: {}, `PBES2_HS512_A256KW`: {}, } func (t typ) Generate() error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.R("// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT") o.LL("package jwa") o.LL("import (") pkgs := []string{ "fmt", "github.com/pkg/errors", } for _, pkg := range pkgs { o.L("%s", strconv.Quote(pkg)) } o.L(")") o.LL("// %s", t.comment) o.L("type %s string", t.name) o.LL("// Supported values for %s", t.name) o.L("const (") for _, e := range t.elements { o.L("%s %s = %s", e.name, t.name, strconv.Quote(e.value)) if len(e.comment) > 0 { o.R(" // %s", e.comment) } } o.L(")") // end const o.L("var all%[1]ss = map[%[1]s]struct{} {", t.name) for _, e := range t.elements { if !e.invalid { o.L("%s: {},", e.name) } } o.L("}") o.LL("var list%sOnce sync.Once", t.name) o.L("var list%[1]s []%[1]s", t.name) o.LL("// %[1]ss returns a list of all available values for %[1]s", t.name) o.L("func %[1]ss() []%[1]s {", t.name) o.L("list%sOnce.Do(func() {", t.name) o.L("list%[1]s = make([]%[1]s, 0, len(all%[1]ss))", t.name) o.L("for v := range all%ss {", t.name) o.L("list%[1]s = append(list%[1]s, v)", t.name) o.L("}") o.L("sort.Slice(list%s, func(i, j int) bool {", t.name) o.L("return string(list%[1]s[i]) < string(list%[1]s[j])", t.name) o.L("})") o.L("})") o.L("return list%s", t.name) o.L("}") o.LL("// Accept is used when conversion from values given by") o.L("// outside sources (such as JSON payloads) is required") o.L("func (v *%s) Accept(value interface{}) error {", t.name) o.L("var tmp %s", t.name) o.L("if x, ok := value.(%s); ok {", t.name) o.L("tmp = x") o.L("} else {") o.L("var s string") o.L("switch x := value.(type) {") o.L("case fmt.Stringer:") o.L("s = x.String()") o.L("case string:") o.L("s = x") o.L("default:") o.L("return errors.Errorf(`invalid type for jwa.%s: %%T`, value)", t.name) o.L("}") o.L("tmp = %s(s)", t.name) o.L("}") o.L("if _, ok := all%ss[tmp]; !ok {", t.name) o.L("return errors.Errorf(`invalid jwa.%s value`)", t.name) o.L("}") o.LL("*v = tmp") o.L("return nil") o.L("}") // func (v *%s) Accept(v interface{}) o.LL("// String returns the string representation of a %s", t.name) o.L("func (v %s) String() string {", t.name) o.L("return string(v)") o.L("}") if t.name == "KeyEncryptionAlgorithm" { o.LL("// IsSymmetric returns true if the algorithm is a symmetric type") o.L("func (v %s) IsSymmetric() bool {", t.name) o.L("switch v {") o.L("case ") var count int for _, e := range t.elements { if _, ok := isSymmetricKeyEncryption[e.name]; !ok { continue } if count == 0 { o.R("%s", e.name) } else { o.R(",%s", e.name) } count++ } o.R(":") o.L("return true") o.L("}") o.L("return false") o.L("}") } if err := o.WriteFile(t.filename, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, t.filename, err) } return nil } func (t typ) GenerateTest() error { var buf bytes.Buffer valids := make([]element, 0, len(t.elements)) invalids := make([]element, 0, len(t.elements)) for _, e := range t.elements { if e.invalid { invalids = append(invalids, e) continue } valids = append(valids, e) } o := codegen.NewOutput(&buf) o.R("// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT") o.LL("package jwa_test") o.L("import (") pkgs := []string{ "testing", "github.com/lestrrat-go/jwx/jwa", "github.com/stretchr/testify/assert", } for _, pkg := range pkgs { o.L("%s", strconv.Quote(pkg)) } o.L(")") o.LL("func Test%s(t *testing.T) {", t.name) o.L("t.Parallel()") for _, e := range valids { o.L("t.Run(`accept jwa constant %s`, func(t *testing.T) {", e.name) o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.NoError(t, dst.Accept(jwa.%s), `accept is successful`) {", e.name) o.L("return") o.L("}") o.L("if !assert.Equal(t, jwa.%s, dst, `accepted value should be equal to constant`) {", e.name) o.L("return") o.L("}") o.L("})") o.L("t.Run(`accept the string %s`, func(t *testing.T) {", e.value) o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.NoError(t, dst.Accept(%#v), `accept is successful`) {", e.value) o.L("return") o.L("}") o.L("if !assert.Equal(t, jwa.%s, dst, `accepted value should be equal to constant`) {", e.name) o.L("return") o.L("}") o.L("})") o.L("t.Run(`accept fmt.Stringer for %s`, func(t *testing.T) {", e.value) o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.NoError(t, dst.Accept(stringer{ src: %#v }), `accept is successful`) {", e.value) o.L("return") o.L("}") o.L("if !assert.Equal(t, jwa.%s, dst, `accepted value should be equal to constant`) {", e.name) o.L("return") o.L("}") o.L("})") o.L("t.Run(`stringification for %s`, func(t *testing.T) {", e.value) o.L("t.Parallel()") o.L("if !assert.Equal(t, %#v, jwa.%s.String(), `stringified value matches`) {", e.value, e.name) o.L("return") o.L("}") o.L("})") } for _, e := range invalids { o.L("t.Run(`do not accept invalid constant %s`, func(t *testing.T) {", e.name) o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.Error(t, dst.Accept(jwa.%s), `accept should fail`) {", e.name) o.L("return") o.L("}") o.L("})") } o.L("t.Run(`bail out on random integer value`, func(t *testing.T) {") o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.Error(t, dst.Accept(1), `accept should fail`) {") o.L("return") o.L("}") o.L("})") o.L("t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) {") o.L("t.Parallel()") o.L("var dst jwa.%s", t.name) o.L("if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) {") o.L("return") o.L("}") o.L("})") if t.name == "KeyEncryptionAlgorithm" { o.L("t.Run(`check symmetric values`, func(t *testing.T) {") o.L("t.Parallel()") for _, e := range t.elements { o.L("t.Run(`%s`, func(t *testing.T) {", e.name) if _, ok := isSymmetricKeyEncryption[e.name]; ok { o.L("assert.True(t, jwa.%[1]s.IsSymmetric(), `jwa.%[1]s should be symmetric`)", e.name) } else { o.L("assert.False(t, jwa.%[1]s.IsSymmetric(), `jwa.%[1]s should NOT be symmetric`)", e.name) } o.L("})") } o.L("})") } o.L("t.Run(`check list of elements`, func(t *testing.T) {") o.L("t.Parallel()") o.L("var expected = map[jwa.%s]struct{} {", t.name) for _, e := range t.elements { if !e.invalid { o.L("jwa.%s: {},", e.name) } } o.L("}") o.L("for _, v := range jwa.%ss() {", t.name) if t.name == "EllipticCurveAlgorithm" { o.L("// There is no good way to detect from a test if es256k (secp256k1)") o.L("// is supported, so just allow it") o.L("if v.String() == `secp256k1` {") o.L("continue") o.L("}") } o.L("if _, ok := expected[v]; !assert.True(t, ok, `%%s should be in the expected list`, v) {") o.L("return") o.L("}") o.L("delete(expected, v)") o.L("}") o.L("if !assert.Len(t, expected, 0) {") o.L("return") o.L("}") o.L("})") o.L("}") filename := strings.Replace(t.filename, "_gen.go", "_gen_test.go", 1) if err := o.WriteFile(filename, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, filename, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwa/jwa.go000066400000000000000000000002021465311135100212560ustar00rootroot00000000000000//go:generate ./gen.sh // Package jwa defines the various algorithm described in https://tools.ietf.org/html/rfc7518 package jwa golang-github-lestrrat-go-jwx-1.2.30/jwa/jwa_test.go000066400000000000000000000001541465311135100223230ustar00rootroot00000000000000package jwa_test type stringer struct { src string } func (s stringer) String() string { return s.src } golang-github-lestrrat-go-jwx-1.2.30/jwa/key_encryption_gen.go000066400000000000000000000102651465311135100244020ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // KeyEncryptionAlgorithm represents the various encryption algorithms as described in https://tools.ietf.org/html/rfc7518#section-4.1 type KeyEncryptionAlgorithm string // Supported values for KeyEncryptionAlgorithm const ( A128GCMKW KeyEncryptionAlgorithm = "A128GCMKW" // AES-GCM key wrap (128) A128KW KeyEncryptionAlgorithm = "A128KW" // AES key wrap (128) A192GCMKW KeyEncryptionAlgorithm = "A192GCMKW" // AES-GCM key wrap (192) A192KW KeyEncryptionAlgorithm = "A192KW" // AES key wrap (192) A256GCMKW KeyEncryptionAlgorithm = "A256GCMKW" // AES-GCM key wrap (256) A256KW KeyEncryptionAlgorithm = "A256KW" // AES key wrap (256) DIRECT KeyEncryptionAlgorithm = "dir" // Direct encryption ECDH_ES KeyEncryptionAlgorithm = "ECDH-ES" // ECDH-ES ECDH_ES_A128KW KeyEncryptionAlgorithm = "ECDH-ES+A128KW" // ECDH-ES + AES key wrap (128) ECDH_ES_A192KW KeyEncryptionAlgorithm = "ECDH-ES+A192KW" // ECDH-ES + AES key wrap (192) ECDH_ES_A256KW KeyEncryptionAlgorithm = "ECDH-ES+A256KW" // ECDH-ES + AES key wrap (256) PBES2_HS256_A128KW KeyEncryptionAlgorithm = "PBES2-HS256+A128KW" // PBES2 + HMAC-SHA256 + AES key wrap (128) PBES2_HS384_A192KW KeyEncryptionAlgorithm = "PBES2-HS384+A192KW" // PBES2 + HMAC-SHA384 + AES key wrap (192) PBES2_HS512_A256KW KeyEncryptionAlgorithm = "PBES2-HS512+A256KW" // PBES2 + HMAC-SHA512 + AES key wrap (256) RSA1_5 KeyEncryptionAlgorithm = "RSA1_5" // RSA-PKCS1v1.5 RSA_OAEP KeyEncryptionAlgorithm = "RSA-OAEP" // RSA-OAEP-SHA1 RSA_OAEP_256 KeyEncryptionAlgorithm = "RSA-OAEP-256" // RSA-OAEP-SHA256 ) var allKeyEncryptionAlgorithms = map[KeyEncryptionAlgorithm]struct{}{ A128GCMKW: {}, A128KW: {}, A192GCMKW: {}, A192KW: {}, A256GCMKW: {}, A256KW: {}, DIRECT: {}, ECDH_ES: {}, ECDH_ES_A128KW: {}, ECDH_ES_A192KW: {}, ECDH_ES_A256KW: {}, PBES2_HS256_A128KW: {}, PBES2_HS384_A192KW: {}, PBES2_HS512_A256KW: {}, RSA1_5: {}, RSA_OAEP: {}, RSA_OAEP_256: {}, } var listKeyEncryptionAlgorithmOnce sync.Once var listKeyEncryptionAlgorithm []KeyEncryptionAlgorithm // KeyEncryptionAlgorithms returns a list of all available values for KeyEncryptionAlgorithm func KeyEncryptionAlgorithms() []KeyEncryptionAlgorithm { listKeyEncryptionAlgorithmOnce.Do(func() { listKeyEncryptionAlgorithm = make([]KeyEncryptionAlgorithm, 0, len(allKeyEncryptionAlgorithms)) for v := range allKeyEncryptionAlgorithms { listKeyEncryptionAlgorithm = append(listKeyEncryptionAlgorithm, v) } sort.Slice(listKeyEncryptionAlgorithm, func(i, j int) bool { return string(listKeyEncryptionAlgorithm[i]) < string(listKeyEncryptionAlgorithm[j]) }) }) return listKeyEncryptionAlgorithm } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *KeyEncryptionAlgorithm) Accept(value interface{}) error { var tmp KeyEncryptionAlgorithm if x, ok := value.(KeyEncryptionAlgorithm); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.KeyEncryptionAlgorithm: %T`, value) } tmp = KeyEncryptionAlgorithm(s) } if _, ok := allKeyEncryptionAlgorithms[tmp]; !ok { return errors.Errorf(`invalid jwa.KeyEncryptionAlgorithm value`) } *v = tmp return nil } // String returns the string representation of a KeyEncryptionAlgorithm func (v KeyEncryptionAlgorithm) String() string { return string(v) } // IsSymmetric returns true if the algorithm is a symmetric type func (v KeyEncryptionAlgorithm) IsSymmetric() bool { switch v { case A128GCMKW, A128KW, A192GCMKW, A192KW, A256GCMKW, A256KW, DIRECT, PBES2_HS256_A128KW, PBES2_HS384_A192KW, PBES2_HS512_A256KW: return true } return false } golang-github-lestrrat-go-jwx-1.2.30/jwa/key_encryption_gen_test.go000066400000000000000000000560171465311135100254460ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestKeyEncryptionAlgorithm(t *testing.T) { t.Parallel() t.Run(`accept jwa constant A128GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A128GCMKW), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A128GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A128GCMKW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A128GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A128GCMKW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A128GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A128GCMKW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A128GCMKW", jwa.A128GCMKW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A128KW), `accept is successful`) { return } if !assert.Equal(t, jwa.A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A128KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A128KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A128KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A128KW", jwa.A128KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A192GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A192GCMKW), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A192GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A192GCMKW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A192GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A192GCMKW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A192GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A192GCMKW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A192GCMKW", jwa.A192GCMKW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A192KW), `accept is successful`) { return } if !assert.Equal(t, jwa.A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A192KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A192KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A192KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A192KW", jwa.A192KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A256GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A256GCMKW), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A256GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A256GCMKW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A256GCMKW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A256GCMKW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A256GCMKW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A256GCMKW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A256GCMKW", jwa.A256GCMKW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.A256KW), `accept is successful`) { return } if !assert.Equal(t, jwa.A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("A256KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "A256KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for A256KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "A256KW", jwa.A256KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant DIRECT`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.DIRECT), `accept is successful`) { return } if !assert.Equal(t, jwa.DIRECT, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string dir`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("dir"), `accept is successful`) { return } if !assert.Equal(t, jwa.DIRECT, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for dir`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "dir"}), `accept is successful`) { return } if !assert.Equal(t, jwa.DIRECT, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for dir`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "dir", jwa.DIRECT.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ECDH_ES`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.ECDH_ES), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ECDH-ES`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("ECDH-ES"), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ECDH-ES`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ECDH-ES"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ECDH-ES`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ECDH-ES", jwa.ECDH_ES.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ECDH_ES_A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.ECDH_ES_A128KW), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ECDH-ES+A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("ECDH-ES+A128KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ECDH-ES+A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ECDH-ES+A128KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ECDH-ES+A128KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ECDH-ES+A128KW", jwa.ECDH_ES_A128KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ECDH_ES_A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.ECDH_ES_A192KW), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ECDH-ES+A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("ECDH-ES+A192KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ECDH-ES+A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ECDH-ES+A192KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ECDH-ES+A192KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ECDH-ES+A192KW", jwa.ECDH_ES_A192KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ECDH_ES_A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.ECDH_ES_A256KW), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ECDH-ES+A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("ECDH-ES+A256KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ECDH-ES+A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ECDH-ES+A256KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ECDH_ES_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ECDH-ES+A256KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ECDH-ES+A256KW", jwa.ECDH_ES_A256KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PBES2_HS256_A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.PBES2_HS256_A128KW), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS256_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PBES2-HS256+A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("PBES2-HS256+A128KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS256_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PBES2-HS256+A128KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PBES2-HS256+A128KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS256_A128KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PBES2-HS256+A128KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PBES2-HS256+A128KW", jwa.PBES2_HS256_A128KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PBES2_HS384_A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.PBES2_HS384_A192KW), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS384_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PBES2-HS384+A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("PBES2-HS384+A192KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS384_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PBES2-HS384+A192KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PBES2-HS384+A192KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS384_A192KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PBES2-HS384+A192KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PBES2-HS384+A192KW", jwa.PBES2_HS384_A192KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PBES2_HS512_A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.PBES2_HS512_A256KW), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS512_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PBES2-HS512+A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("PBES2-HS512+A256KW"), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS512_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PBES2-HS512+A256KW`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PBES2-HS512+A256KW"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PBES2_HS512_A256KW, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PBES2-HS512+A256KW`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PBES2-HS512+A256KW", jwa.PBES2_HS512_A256KW.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RSA1_5`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.RSA1_5), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA1_5, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RSA1_5`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("RSA1_5"), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA1_5, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RSA1_5`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RSA1_5"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA1_5, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RSA1_5`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RSA1_5", jwa.RSA1_5.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RSA_OAEP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.RSA_OAEP), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RSA-OAEP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("RSA-OAEP"), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RSA-OAEP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RSA-OAEP"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RSA-OAEP`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RSA-OAEP", jwa.RSA_OAEP.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RSA_OAEP_256`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(jwa.RSA_OAEP_256), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP_256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RSA-OAEP-256`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept("RSA-OAEP-256"), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP_256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RSA-OAEP-256`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RSA-OAEP-256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA_OAEP_256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RSA-OAEP-256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RSA-OAEP-256", jwa.RSA_OAEP_256.String(), `stringified value matches`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.KeyEncryptionAlgorithm if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check symmetric values`, func(t *testing.T) { t.Parallel() t.Run(`A128GCMKW`, func(t *testing.T) { assert.True(t, jwa.A128GCMKW.IsSymmetric(), `jwa.A128GCMKW should be symmetric`) }) t.Run(`A128KW`, func(t *testing.T) { assert.True(t, jwa.A128KW.IsSymmetric(), `jwa.A128KW should be symmetric`) }) t.Run(`A192GCMKW`, func(t *testing.T) { assert.True(t, jwa.A192GCMKW.IsSymmetric(), `jwa.A192GCMKW should be symmetric`) }) t.Run(`A192KW`, func(t *testing.T) { assert.True(t, jwa.A192KW.IsSymmetric(), `jwa.A192KW should be symmetric`) }) t.Run(`A256GCMKW`, func(t *testing.T) { assert.True(t, jwa.A256GCMKW.IsSymmetric(), `jwa.A256GCMKW should be symmetric`) }) t.Run(`A256KW`, func(t *testing.T) { assert.True(t, jwa.A256KW.IsSymmetric(), `jwa.A256KW should be symmetric`) }) t.Run(`DIRECT`, func(t *testing.T) { assert.True(t, jwa.DIRECT.IsSymmetric(), `jwa.DIRECT should be symmetric`) }) t.Run(`ECDH_ES`, func(t *testing.T) { assert.False(t, jwa.ECDH_ES.IsSymmetric(), `jwa.ECDH_ES should NOT be symmetric`) }) t.Run(`ECDH_ES_A128KW`, func(t *testing.T) { assert.False(t, jwa.ECDH_ES_A128KW.IsSymmetric(), `jwa.ECDH_ES_A128KW should NOT be symmetric`) }) t.Run(`ECDH_ES_A192KW`, func(t *testing.T) { assert.False(t, jwa.ECDH_ES_A192KW.IsSymmetric(), `jwa.ECDH_ES_A192KW should NOT be symmetric`) }) t.Run(`ECDH_ES_A256KW`, func(t *testing.T) { assert.False(t, jwa.ECDH_ES_A256KW.IsSymmetric(), `jwa.ECDH_ES_A256KW should NOT be symmetric`) }) t.Run(`PBES2_HS256_A128KW`, func(t *testing.T) { assert.True(t, jwa.PBES2_HS256_A128KW.IsSymmetric(), `jwa.PBES2_HS256_A128KW should be symmetric`) }) t.Run(`PBES2_HS384_A192KW`, func(t *testing.T) { assert.True(t, jwa.PBES2_HS384_A192KW.IsSymmetric(), `jwa.PBES2_HS384_A192KW should be symmetric`) }) t.Run(`PBES2_HS512_A256KW`, func(t *testing.T) { assert.True(t, jwa.PBES2_HS512_A256KW.IsSymmetric(), `jwa.PBES2_HS512_A256KW should be symmetric`) }) t.Run(`RSA1_5`, func(t *testing.T) { assert.False(t, jwa.RSA1_5.IsSymmetric(), `jwa.RSA1_5 should NOT be symmetric`) }) t.Run(`RSA_OAEP`, func(t *testing.T) { assert.False(t, jwa.RSA_OAEP.IsSymmetric(), `jwa.RSA_OAEP should NOT be symmetric`) }) t.Run(`RSA_OAEP_256`, func(t *testing.T) { assert.False(t, jwa.RSA_OAEP_256.IsSymmetric(), `jwa.RSA_OAEP_256 should NOT be symmetric`) }) }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.KeyEncryptionAlgorithm]struct{}{ jwa.A128GCMKW: {}, jwa.A128KW: {}, jwa.A192GCMKW: {}, jwa.A192KW: {}, jwa.A256GCMKW: {}, jwa.A256KW: {}, jwa.DIRECT: {}, jwa.ECDH_ES: {}, jwa.ECDH_ES_A128KW: {}, jwa.ECDH_ES_A192KW: {}, jwa.ECDH_ES_A256KW: {}, jwa.PBES2_HS256_A128KW: {}, jwa.PBES2_HS384_A192KW: {}, jwa.PBES2_HS512_A256KW: {}, jwa.RSA1_5: {}, jwa.RSA_OAEP: {}, jwa.RSA_OAEP_256: {}, } for _, v := range jwa.KeyEncryptionAlgorithms() { if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/key_type_gen.go000066400000000000000000000033671465311135100231760ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // KeyType represents the key type ("kty") that are supported type KeyType string // Supported values for KeyType const ( EC KeyType = "EC" // Elliptic Curve InvalidKeyType KeyType = "" // Invalid KeyType OKP KeyType = "OKP" // Octet string key pairs OctetSeq KeyType = "oct" // Octet sequence (used to represent symmetric keys) RSA KeyType = "RSA" // RSA ) var allKeyTypes = map[KeyType]struct{}{ EC: {}, OKP: {}, OctetSeq: {}, RSA: {}, } var listKeyTypeOnce sync.Once var listKeyType []KeyType // KeyTypes returns a list of all available values for KeyType func KeyTypes() []KeyType { listKeyTypeOnce.Do(func() { listKeyType = make([]KeyType, 0, len(allKeyTypes)) for v := range allKeyTypes { listKeyType = append(listKeyType, v) } sort.Slice(listKeyType, func(i, j int) bool { return string(listKeyType[i]) < string(listKeyType[j]) }) }) return listKeyType } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *KeyType) Accept(value interface{}) error { var tmp KeyType if x, ok := value.(KeyType); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.KeyType: %T`, value) } tmp = KeyType(s) } if _, ok := allKeyTypes[tmp]; !ok { return errors.Errorf(`invalid jwa.KeyType value`) } *v = tmp return nil } // String returns the string representation of a KeyType func (v KeyType) String() string { return string(v) } golang-github-lestrrat-go-jwx-1.2.30/jwa/key_type_gen_test.go000066400000000000000000000123561465311135100242330ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestKeyType(t *testing.T) { t.Parallel() t.Run(`accept jwa constant EC`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(jwa.EC), `accept is successful`) { return } if !assert.Equal(t, jwa.EC, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string EC`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept("EC"), `accept is successful`) { return } if !assert.Equal(t, jwa.EC, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for EC`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(stringer{src: "EC"}), `accept is successful`) { return } if !assert.Equal(t, jwa.EC, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for EC`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "EC", jwa.EC.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant OKP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(jwa.OKP), `accept is successful`) { return } if !assert.Equal(t, jwa.OKP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string OKP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept("OKP"), `accept is successful`) { return } if !assert.Equal(t, jwa.OKP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for OKP`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(stringer{src: "OKP"}), `accept is successful`) { return } if !assert.Equal(t, jwa.OKP, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for OKP`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "OKP", jwa.OKP.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant OctetSeq`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(jwa.OctetSeq), `accept is successful`) { return } if !assert.Equal(t, jwa.OctetSeq, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string oct`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept("oct"), `accept is successful`) { return } if !assert.Equal(t, jwa.OctetSeq, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for oct`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(stringer{src: "oct"}), `accept is successful`) { return } if !assert.Equal(t, jwa.OctetSeq, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for oct`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "oct", jwa.OctetSeq.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RSA`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(jwa.RSA), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RSA`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept("RSA"), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RSA`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.NoError(t, dst.Accept(stringer{src: "RSA"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RSA`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RSA", jwa.RSA.String(), `stringified value matches`) { return } }) t.Run(`do not accept invalid constant InvalidKeyType`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.Error(t, dst.Accept(jwa.InvalidKeyType), `accept should fail`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.KeyType if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.KeyType]struct{}{ jwa.EC: {}, jwa.OKP: {}, jwa.OctetSeq: {}, jwa.RSA: {}, } for _, v := range jwa.KeyTypes() { if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/secp2561k.go000066400000000000000000000003461465311135100221310ustar00rootroot00000000000000// +build jwx_es256k package jwa // This constant is only available if compiled with jwx_es256k build tag const Secp256k1 EllipticCurveAlgorithm = "secp256k1" func init() { allEllipticCurveAlgorithms[Secp256k1] = struct{}{} } golang-github-lestrrat-go-jwx-1.2.30/jwa/secp2561k_test.go000066400000000000000000000024501465311135100231660ustar00rootroot00000000000000// +build jwx_es256k package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestSecp256k1(t *testing.T) { t.Parallel() t.Run(`accept jwa constant Secp256k1`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(jwa.Secp256k1), `accept is successful`) { return } if !assert.Equal(t, jwa.Secp256k1, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string secp256k1`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept("secp256k1"), `accept is successful`) { return } if !assert.Equal(t, jwa.Secp256k1, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for secp256k1`, func(t *testing.T) { t.Parallel() var dst jwa.EllipticCurveAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "secp256k1"}), `accept is successful`) { return } if !assert.Equal(t, jwa.Secp256k1, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for secp256k1`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "secp256k1", jwa.Secp256k1.String(), `stringified value matches`) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwa/signature_gen.go000066400000000000000000000062231465311135100233400ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa import ( "fmt" "sort" "sync" "github.com/pkg/errors" ) // SignatureAlgorithm represents the various signature algorithms as described in https://tools.ietf.org/html/rfc7518#section-3.1 type SignatureAlgorithm string // Supported values for SignatureAlgorithm const ( ES256 SignatureAlgorithm = "ES256" // ECDSA using P-256 and SHA-256 ES256K SignatureAlgorithm = "ES256K" // ECDSA using secp256k1 and SHA-256 ES384 SignatureAlgorithm = "ES384" // ECDSA using P-384 and SHA-384 ES512 SignatureAlgorithm = "ES512" // ECDSA using P-521 and SHA-512 EdDSA SignatureAlgorithm = "EdDSA" // EdDSA signature algorithms HS256 SignatureAlgorithm = "HS256" // HMAC using SHA-256 HS384 SignatureAlgorithm = "HS384" // HMAC using SHA-384 HS512 SignatureAlgorithm = "HS512" // HMAC using SHA-512 NoSignature SignatureAlgorithm = "none" PS256 SignatureAlgorithm = "PS256" // RSASSA-PSS using SHA256 and MGF1-SHA256 PS384 SignatureAlgorithm = "PS384" // RSASSA-PSS using SHA384 and MGF1-SHA384 PS512 SignatureAlgorithm = "PS512" // RSASSA-PSS using SHA512 and MGF1-SHA512 RS256 SignatureAlgorithm = "RS256" // RSASSA-PKCS-v1.5 using SHA-256 RS384 SignatureAlgorithm = "RS384" // RSASSA-PKCS-v1.5 using SHA-384 RS512 SignatureAlgorithm = "RS512" // RSASSA-PKCS-v1.5 using SHA-512 ) var allSignatureAlgorithms = map[SignatureAlgorithm]struct{}{ ES256: {}, ES256K: {}, ES384: {}, ES512: {}, EdDSA: {}, HS256: {}, HS384: {}, HS512: {}, NoSignature: {}, PS256: {}, PS384: {}, PS512: {}, RS256: {}, RS384: {}, RS512: {}, } var listSignatureAlgorithmOnce sync.Once var listSignatureAlgorithm []SignatureAlgorithm // SignatureAlgorithms returns a list of all available values for SignatureAlgorithm func SignatureAlgorithms() []SignatureAlgorithm { listSignatureAlgorithmOnce.Do(func() { listSignatureAlgorithm = make([]SignatureAlgorithm, 0, len(allSignatureAlgorithms)) for v := range allSignatureAlgorithms { listSignatureAlgorithm = append(listSignatureAlgorithm, v) } sort.Slice(listSignatureAlgorithm, func(i, j int) bool { return string(listSignatureAlgorithm[i]) < string(listSignatureAlgorithm[j]) }) }) return listSignatureAlgorithm } // Accept is used when conversion from values given by // outside sources (such as JSON payloads) is required func (v *SignatureAlgorithm) Accept(value interface{}) error { var tmp SignatureAlgorithm if x, ok := value.(SignatureAlgorithm); ok { tmp = x } else { var s string switch x := value.(type) { case fmt.Stringer: s = x.String() case string: s = x default: return errors.Errorf(`invalid type for jwa.SignatureAlgorithm: %T`, value) } tmp = SignatureAlgorithm(s) } if _, ok := allSignatureAlgorithms[tmp]; !ok { return errors.Errorf(`invalid jwa.SignatureAlgorithm value`) } *v = tmp return nil } // String returns the string representation of a SignatureAlgorithm func (v SignatureAlgorithm) String() string { return string(v) } golang-github-lestrrat-go-jwx-1.2.30/jwa/signature_gen_test.go000066400000000000000000000421761465311135100244060ustar00rootroot00000000000000// this file was auto-generated by internal/cmd/gentypes/main.go: DO NOT EDIT package jwa_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestSignatureAlgorithm(t *testing.T) { t.Parallel() t.Run(`accept jwa constant ES256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.ES256), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ES256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("ES256"), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ES256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ES256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ES256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ES256", jwa.ES256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ES256K`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.ES256K), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256K, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ES256K`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("ES256K"), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256K, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ES256K`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ES256K"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ES256K, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ES256K`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ES256K", jwa.ES256K.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ES384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.ES384), `accept is successful`) { return } if !assert.Equal(t, jwa.ES384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ES384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("ES384"), `accept is successful`) { return } if !assert.Equal(t, jwa.ES384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ES384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ES384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ES384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ES384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ES384", jwa.ES384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant ES512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.ES512), `accept is successful`) { return } if !assert.Equal(t, jwa.ES512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string ES512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("ES512"), `accept is successful`) { return } if !assert.Equal(t, jwa.ES512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for ES512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "ES512"}), `accept is successful`) { return } if !assert.Equal(t, jwa.ES512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for ES512`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "ES512", jwa.ES512.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant EdDSA`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.EdDSA), `accept is successful`) { return } if !assert.Equal(t, jwa.EdDSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string EdDSA`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("EdDSA"), `accept is successful`) { return } if !assert.Equal(t, jwa.EdDSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for EdDSA`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "EdDSA"}), `accept is successful`) { return } if !assert.Equal(t, jwa.EdDSA, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for EdDSA`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "EdDSA", jwa.EdDSA.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant HS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.HS256), `accept is successful`) { return } if !assert.Equal(t, jwa.HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string HS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("HS256"), `accept is successful`) { return } if !assert.Equal(t, jwa.HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for HS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "HS256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.HS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for HS256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "HS256", jwa.HS256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant HS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.HS384), `accept is successful`) { return } if !assert.Equal(t, jwa.HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string HS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("HS384"), `accept is successful`) { return } if !assert.Equal(t, jwa.HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for HS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "HS384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.HS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for HS384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "HS384", jwa.HS384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant HS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.HS512), `accept is successful`) { return } if !assert.Equal(t, jwa.HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string HS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("HS512"), `accept is successful`) { return } if !assert.Equal(t, jwa.HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for HS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "HS512"}), `accept is successful`) { return } if !assert.Equal(t, jwa.HS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for HS512`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "HS512", jwa.HS512.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant NoSignature`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.NoSignature), `accept is successful`) { return } if !assert.Equal(t, jwa.NoSignature, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string none`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("none"), `accept is successful`) { return } if !assert.Equal(t, jwa.NoSignature, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for none`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "none"}), `accept is successful`) { return } if !assert.Equal(t, jwa.NoSignature, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for none`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "none", jwa.NoSignature.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.PS256), `accept is successful`) { return } if !assert.Equal(t, jwa.PS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("PS256"), `accept is successful`) { return } if !assert.Equal(t, jwa.PS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PS256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PS256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PS256", jwa.PS256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.PS384), `accept is successful`) { return } if !assert.Equal(t, jwa.PS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("PS384"), `accept is successful`) { return } if !assert.Equal(t, jwa.PS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PS384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PS384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PS384", jwa.PS384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant PS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.PS512), `accept is successful`) { return } if !assert.Equal(t, jwa.PS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string PS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("PS512"), `accept is successful`) { return } if !assert.Equal(t, jwa.PS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for PS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "PS512"}), `accept is successful`) { return } if !assert.Equal(t, jwa.PS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for PS512`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "PS512", jwa.PS512.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.RS256), `accept is successful`) { return } if !assert.Equal(t, jwa.RS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("RS256"), `accept is successful`) { return } if !assert.Equal(t, jwa.RS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RS256`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RS256"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RS256, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RS256`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RS256", jwa.RS256.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.RS384), `accept is successful`) { return } if !assert.Equal(t, jwa.RS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("RS384"), `accept is successful`) { return } if !assert.Equal(t, jwa.RS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RS384`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RS384"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RS384, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RS384`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RS384", jwa.RS384.String(), `stringified value matches`) { return } }) t.Run(`accept jwa constant RS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(jwa.RS512), `accept is successful`) { return } if !assert.Equal(t, jwa.RS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept the string RS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept("RS512"), `accept is successful`) { return } if !assert.Equal(t, jwa.RS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`accept fmt.Stringer for RS512`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.NoError(t, dst.Accept(stringer{src: "RS512"}), `accept is successful`) { return } if !assert.Equal(t, jwa.RS512, dst, `accepted value should be equal to constant`) { return } }) t.Run(`stringification for RS512`, func(t *testing.T) { t.Parallel() if !assert.Equal(t, "RS512", jwa.RS512.String(), `stringified value matches`) { return } }) t.Run(`bail out on random integer value`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.Error(t, dst.Accept(1), `accept should fail`) { return } }) t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { t.Parallel() var dst jwa.SignatureAlgorithm if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { return } }) t.Run(`check list of elements`, func(t *testing.T) { t.Parallel() var expected = map[jwa.SignatureAlgorithm]struct{}{ jwa.ES256: {}, jwa.ES256K: {}, jwa.ES384: {}, jwa.ES512: {}, jwa.EdDSA: {}, jwa.HS256: {}, jwa.HS384: {}, jwa.HS512: {}, jwa.NoSignature: {}, jwa.PS256: {}, jwa.PS384: {}, jwa.PS512: {}, jwa.RS256: {}, jwa.RS384: {}, jwa.RS512: {}, } for _, v := range jwa.SignatureAlgorithms() { if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { return } delete(expected, v) } if !assert.Len(t, expected, 0) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwe/000077500000000000000000000000001465311135100201605ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/README.md000066400000000000000000000072531465311135100214460ustar00rootroot00000000000000# JWE [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx/jwe.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwe) Package jwe implements JWE as described in [RFC7516](https://tools.ietf.org/html/rfc7516) * Encrypt and Decrypt arbitrary data * Content compression and decompression * Add arbitrary fields in the JWE header object How-to style documentation can be found in the [docs directory](../docs). Examples are located in the examples directory ([jwe_example_test.go](../examples/jwe_example_test.go)) Supported key encryption algorithm: | Algorithm | Supported? | Constant in [jwa](../jwa) | |:-----------------------------------------|:-----------|:-------------------------| | RSA-PKCS1v1.5 | YES | jwa.RSA1_5 | | RSA-OAEP-SHA1 | YES | jwa.RSA_OAEP | | RSA-OAEP-SHA256 | YES | jwa.RSA_OAEP_256 | | AES key wrap (128) | YES | jwa.A128KW | | AES key wrap (192) | YES | jwa.A192KW | | AES key wrap (256) | YES | jwa.A256KW | | Direct encryption | YES (1) | jwa.DIRECT | | ECDH-ES | YES (1) | jwa.ECDH_ES | | ECDH-ES + AES key wrap (128) | YES | jwa.ECDH_ES_A128KW | | ECDH-ES + AES key wrap (192) | YES | jwa.ECDH_ES_A192KW | | ECDH-ES + AES key wrap (256) | YES | jwa.ECDH_ES_A256KW | | AES-GCM key wrap (128) | YES | jwa.A128GCMKW | | AES-GCM key wrap (192) | YES | jwa.A192GCMKW | | AES-GCM key wrap (256) | YES | jwa.A256GCMKW | | PBES2 + HMAC-SHA256 + AES key wrap (128) | YES | jwa.PBES2_HS256_A128KW | | PBES2 + HMAC-SHA384 + AES key wrap (192) | YES | jwa.PBES2_HS384_A192KW | | PBES2 + HMAC-SHA512 + AES key wrap (256) | YES | jwa.PBES2_HS512_A256KW | * Note 1: Single-recipient only Supported content encryption algorithm: | Algorithm | Supported? | Constant in [jwa](../jwa) | |:----------------------------|:-----------|:--------------------------| | AES-CBC + HMAC-SHA256 (128) | YES | jwa.A128CBC_HS256 | | AES-CBC + HMAC-SHA384 (192) | YES | jwa.A192CBC_HS384 | | AES-CBC + HMAC-SHA512 (256) | YES | jwa.A256CBC_HS512 | | AES-GCM (128) | YES | jwa.A128GCM | | AES-GCM (192) | YES | jwa.A192GCM | | AES-GCM (256) | YES | jwa.A256GCM | # SYNOPSIS ## Encrypt data ```go func ExampleEncrypt() { privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to generate private key: %s", err) return } payload := []byte("Lorem Ipsum") encrypted, err := jwe.Encrypt(payload, jwa.RSA1_5, &privkey.PublicKey, jwa.A128CBC_HS256, jwa.NoCompress) if err != nil { log.Printf("failed to encrypt payload: %s", err) return } _ = encrypted // OUTPUT: } ``` ## Decrypt data ```go func ExampleDecrypt() { privkey, encrypted, err := exampleGenPayload() if err != nil { log.Printf("failed to generate encrypted payload: %s", err) return } decrypted, err := jwe.Decrypt(encrypted, jwa.RSA1_5, privkey) if err != nil { log.Printf("failed to decrypt: %s", err) return } if string(decrypted) != "Lorem Ipsum" { log.Printf("WHAT?!") return } // OUTPUT: } ``` golang-github-lestrrat-go-jwx-1.2.30/jwe/compress.go000066400000000000000000000030041465311135100223370ustar00rootroot00000000000000package jwe import ( "bytes" "compress/flate" "io" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) func uncompress(src []byte, maxBufferSize int64) ([]byte, error) { var dst bytes.Buffer r := flate.NewReader(bytes.NewReader(src)) defer r.Close() var buf [16384]byte var sofar int64 for { n, readErr := r.Read(buf[:]) sofar += int64(n) if sofar > maxBufferSize { return nil, errors.New(`compressed payload exceeds maximum allowed size`) } if readErr != nil { // if we have a read error, and it's not EOF, then we need to stop if readErr != io.EOF { return nil, errors.Wrap(readErr, `failed to read inflated data`) } } if _, err := dst.Write(buf[:n]); err != nil { return nil, errors.Wrap(err, `failed to write inflated data`) } if readErr != nil { // if it got here, then readErr == io.EOF, we're done return dst.Bytes(), nil } } } func compress(plaintext []byte, alg jwa.CompressionAlgorithm) ([]byte, error) { if alg == jwa.NoCompress { return plaintext, nil } buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) w, _ := flate.NewWriter(buf, 1) in := plaintext for len(in) > 0 { n, err := w.Write(in) if err != nil { return nil, errors.Wrap(err, `failed to write to compression writer`) } in = in[n:] } if err := w.Close(); err != nil { return nil, errors.Wrap(err, "failed to close compression writer") } ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/decrypt.go000066400000000000000000000203351465311135100221640ustar00rootroot00000000000000package jwe import ( "crypto/aes" cryptocipher "crypto/cipher" "crypto/ecdsa" "crypto/rsa" "crypto/sha256" "crypto/sha512" "hash" "golang.org/x/crypto/pbkdf2" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/cipher" "github.com/lestrrat-go/jwx/jwe/internal/content_crypt" "github.com/lestrrat-go/jwx/jwe/internal/keyenc" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) // Decrypter is responsible for taking various components to decrypt a message. // its operation is not concurrency safe. You must provide locking yourself // //nolint:govet type Decrypter struct { aad []byte apu []byte apv []byte computedAad []byte iv []byte keyiv []byte keysalt []byte keytag []byte tag []byte privkey interface{} pubkey interface{} ctalg jwa.ContentEncryptionAlgorithm keyalg jwa.KeyEncryptionAlgorithm cipher content_crypt.Cipher keycount int } // NewDecrypter Creates a new Decrypter instance. You must supply the // rest of parameters via their respective setter methods before // calling Decrypt(). // // privkey must be a private key in its "raw" format (i.e. something like // *rsa.PrivateKey, instead of jwk.Key) // // You should consider this object immutable once you assign values to it. func NewDecrypter(keyalg jwa.KeyEncryptionAlgorithm, ctalg jwa.ContentEncryptionAlgorithm, privkey interface{}) *Decrypter { return &Decrypter{ ctalg: ctalg, keyalg: keyalg, privkey: privkey, } } func (d *Decrypter) AgreementPartyUInfo(apu []byte) *Decrypter { d.apu = apu return d } func (d *Decrypter) AgreementPartyVInfo(apv []byte) *Decrypter { d.apv = apv return d } func (d *Decrypter) AuthenticatedData(aad []byte) *Decrypter { d.aad = aad return d } func (d *Decrypter) ComputedAuthenticatedData(aad []byte) *Decrypter { d.computedAad = aad return d } func (d *Decrypter) ContentEncryptionAlgorithm(ctalg jwa.ContentEncryptionAlgorithm) *Decrypter { d.ctalg = ctalg return d } func (d *Decrypter) InitializationVector(iv []byte) *Decrypter { d.iv = iv return d } func (d *Decrypter) KeyCount(keycount int) *Decrypter { d.keycount = keycount return d } func (d *Decrypter) KeyInitializationVector(keyiv []byte) *Decrypter { d.keyiv = keyiv return d } func (d *Decrypter) KeySalt(keysalt []byte) *Decrypter { d.keysalt = keysalt return d } func (d *Decrypter) KeyTag(keytag []byte) *Decrypter { d.keytag = keytag return d } // PublicKey sets the public key to be used in decoding EC based encryptions. // The key must be in its "raw" format (i.e. *ecdsa.PublicKey, instead of jwk.Key) func (d *Decrypter) PublicKey(pubkey interface{}) *Decrypter { d.pubkey = pubkey return d } func (d *Decrypter) Tag(tag []byte) *Decrypter { d.tag = tag return d } func (d *Decrypter) ContentCipher() (content_crypt.Cipher, error) { if d.cipher == nil { switch d.ctalg { case jwa.A128GCM, jwa.A192GCM, jwa.A256GCM, jwa.A128CBC_HS256, jwa.A192CBC_HS384, jwa.A256CBC_HS512: cipher, err := cipher.NewAES(d.ctalg) if err != nil { return nil, errors.Wrapf(err, `failed to build content cipher for %s`, d.ctalg) } d.cipher = cipher default: return nil, errors.Errorf(`invalid content cipher algorithm (%s)`, d.ctalg) } } return d.cipher, nil } func (d *Decrypter) Decrypt(recipientKey, ciphertext []byte) (plaintext []byte, err error) { cek, keyerr := d.DecryptKey(recipientKey) if keyerr != nil { err = errors.Wrap(keyerr, `failed to decrypt key`) return } cipher, ciphererr := d.ContentCipher() if ciphererr != nil { err = errors.Wrap(ciphererr, `failed to fetch content crypt cipher`) return } computedAad := d.computedAad if d.aad != nil { computedAad = append(append(computedAad, '.'), d.aad...) } plaintext, err = cipher.Decrypt(cek, d.iv, ciphertext, d.tag, computedAad) if err != nil { err = errors.Wrap(err, `failed to decrypt payload`) return } return plaintext, nil } func (d *Decrypter) decryptSymmetricKey(recipientKey, cek []byte) ([]byte, error) { switch d.keyalg { case jwa.DIRECT: return cek, nil case jwa.PBES2_HS256_A128KW, jwa.PBES2_HS384_A192KW, jwa.PBES2_HS512_A256KW: var hashFunc func() hash.Hash var keylen int switch d.keyalg { case jwa.PBES2_HS256_A128KW: hashFunc = sha256.New keylen = 16 case jwa.PBES2_HS384_A192KW: hashFunc = sha512.New384 keylen = 24 case jwa.PBES2_HS512_A256KW: hashFunc = sha512.New keylen = 32 } salt := []byte(d.keyalg) salt = append(salt, byte(0)) salt = append(salt, d.keysalt...) cek = pbkdf2.Key(cek, salt, d.keycount, keylen, hashFunc) fallthrough case jwa.A128KW, jwa.A192KW, jwa.A256KW: block, err := aes.NewCipher(cek) if err != nil { return nil, errors.Wrap(err, `failed to create new AES cipher`) } jek, err := keyenc.Unwrap(block, recipientKey) if err != nil { return nil, errors.Wrap(err, `failed to unwrap key`) } return jek, nil case jwa.A128GCMKW, jwa.A192GCMKW, jwa.A256GCMKW: if len(d.keyiv) != 12 { return nil, errors.Errorf("GCM requires 96-bit iv, got %d", len(d.keyiv)*8) } if len(d.keytag) != 16 { return nil, errors.Errorf("GCM requires 128-bit tag, got %d", len(d.keytag)*8) } block, err := aes.NewCipher(cek) if err != nil { return nil, errors.Wrap(err, `failed to create new AES cipher`) } aesgcm, err := cryptocipher.NewGCM(block) if err != nil { return nil, errors.Wrap(err, `failed to create new GCM wrap`) } ciphertext := recipientKey[:] ciphertext = append(ciphertext, d.keytag...) jek, err := aesgcm.Open(nil, d.keyiv, ciphertext, nil) if err != nil { return nil, errors.Wrap(err, `failed to decode key`) } return jek, nil default: return nil, errors.Errorf("decrypt key: unsupported algorithm %s", d.keyalg) } } func (d *Decrypter) DecryptKey(recipientKey []byte) (cek []byte, err error) { if d.keyalg.IsSymmetric() { var ok bool cek, ok = d.privkey.([]byte) if !ok { return nil, errors.Errorf("decrypt key: []byte is required as the key to build %s key decrypter (got %T)", d.keyalg, d.privkey) } return d.decryptSymmetricKey(recipientKey, cek) } k, err := d.BuildKeyDecrypter() if err != nil { return nil, errors.Wrap(err, `failed to build key decrypter`) } cek, err = k.Decrypt(recipientKey) if err != nil { return nil, errors.Wrap(err, `failed to decrypt key`) } return cek, nil } func (d *Decrypter) BuildKeyDecrypter() (keyenc.Decrypter, error) { cipher, err := d.ContentCipher() if err != nil { return nil, errors.Wrap(err, `failed to fetch content crypt cipher`) } switch alg := d.keyalg; alg { case jwa.RSA1_5: var privkey rsa.PrivateKey if err := keyconv.RSAPrivateKey(&privkey, d.privkey); err != nil { return nil, errors.Wrapf(err, "*rsa.PrivateKey is required as the key to build %s key decrypter", alg) } return keyenc.NewRSAPKCS15Decrypt(alg, &privkey, cipher.KeySize()/2), nil case jwa.RSA_OAEP, jwa.RSA_OAEP_256: var privkey rsa.PrivateKey if err := keyconv.RSAPrivateKey(&privkey, d.privkey); err != nil { return nil, errors.Wrapf(err, "*rsa.PrivateKey is required as the key to build %s key decrypter", alg) } return keyenc.NewRSAOAEPDecrypt(alg, &privkey) case jwa.A128KW, jwa.A192KW, jwa.A256KW: sharedkey, ok := d.privkey.([]byte) if !ok { return nil, errors.Errorf("[]byte is required as the key to build %s key decrypter", alg) } return keyenc.NewAES(alg, sharedkey) case jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A256KW: switch d.pubkey.(type) { case x25519.PublicKey: return keyenc.NewECDHESDecrypt(alg, d.ctalg, d.pubkey, d.apu, d.apv, d.privkey), nil default: var pubkey ecdsa.PublicKey if err := keyconv.ECDSAPublicKey(&pubkey, d.pubkey); err != nil { return nil, errors.Wrapf(err, "*ecdsa.PublicKey is required as the key to build %s key decrypter", alg) } var privkey ecdsa.PrivateKey if err := keyconv.ECDSAPrivateKey(&privkey, d.privkey); err != nil { return nil, errors.Wrapf(err, "*ecdsa.PrivateKey is required as the key to build %s key decrypter", alg) } return keyenc.NewECDHESDecrypt(alg, d.ctalg, &pubkey, d.apu, d.apv, &privkey), nil } default: return nil, errors.Errorf(`unsupported algorithm for key decryption (%s)`, alg) } } golang-github-lestrrat-go-jwx-1.2.30/jwe/encrypt.go000066400000000000000000000102231465311135100221710ustar00rootroot00000000000000package jwe import ( "context" "sync" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) var encryptCtxPool = sync.Pool{ New: func() interface{} { return &encryptCtx{} }, } func getEncryptCtx() *encryptCtx { //nolint:forcetypeassert return encryptCtxPool.Get().(*encryptCtx) } func releaseEncryptCtx(ctx *encryptCtx) { ctx.protected = nil ctx.contentEncrypter = nil ctx.generator = nil ctx.keyEncrypters = nil ctx.compress = jwa.NoCompress encryptCtxPool.Put(ctx) } // Encrypt takes the plaintext and encrypts into a JWE message. func (e encryptCtx) Encrypt(plaintext []byte) (*Message, error) { bk, err := e.generator.Generate() if err != nil { return nil, errors.Wrap(err, "failed to generate key") } cek := bk.Bytes() if e.protected == nil { // shouldn't happen, but... e.protected = NewHeaders() } if err := e.protected.Set(ContentEncryptionKey, e.contentEncrypter.Algorithm()); err != nil { return nil, errors.Wrap(err, `failed to set "enc" in protected header`) } compression := e.compress if compression != jwa.NoCompress { if err := e.protected.Set(CompressionKey, compression); err != nil { return nil, errors.Wrap(err, `failed to set "zip" in protected header`) } } // In JWE, multiple recipients may exist -- they receive an // encrypted version of the CEK, using their key encryption // algorithm of choice. recipients := make([]Recipient, len(e.keyEncrypters)) for i, enc := range e.keyEncrypters { r := NewRecipient() if err := r.Headers().Set(AlgorithmKey, enc.Algorithm()); err != nil { return nil, errors.Wrap(err, "failed to set header") } if v := enc.KeyID(); v != "" { if err := r.Headers().Set(KeyIDKey, v); err != nil { return nil, errors.Wrap(err, "failed to set header") } } enckey, err := enc.Encrypt(cek) if err != nil { return nil, errors.Wrap(err, `failed to encrypt key`) } if enc.Algorithm() == jwa.ECDH_ES || enc.Algorithm() == jwa.DIRECT { if len(e.keyEncrypters) > 1 { return nil, errors.Errorf("unable to support multiple recipients for ECDH-ES") } cek = enckey.Bytes() } else { if err := r.SetEncryptedKey(enckey.Bytes()); err != nil { return nil, errors.Wrap(err, "failed to set encrypted key") } } if hp, ok := enckey.(populater); ok { if err := hp.Populate(r.Headers()); err != nil { return nil, errors.Wrap(err, "failed to populate") } } recipients[i] = r } // If there's only one recipient, you want to include that in the // protected header if len(recipients) == 1 { h, err := e.protected.Merge(context.TODO(), recipients[0].Headers()) if err != nil { return nil, errors.Wrap(err, "failed to merge protected headers") } e.protected = h } aad, err := e.protected.Encode() if err != nil { return nil, errors.Wrap(err, "failed to base64 encode protected headers") } plaintext, err = compress(plaintext, compression) if err != nil { return nil, errors.Wrap(err, `failed to compress payload before encryption`) } // ...on the other hand, there's only one content cipher. iv, ciphertext, tag, err := e.contentEncrypter.Encrypt(cek, plaintext, aad) if err != nil { return nil, errors.Wrap(err, "failed to encrypt payload") } msg := NewMessage() decodedAad, err := base64.Decode(aad) if err != nil { return nil, errors.Wrap(err, "failed to decode base64") } if err := msg.Set(AuthenticatedDataKey, decodedAad); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, AuthenticatedDataKey) } if err := msg.Set(CipherTextKey, ciphertext); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, CipherTextKey) } if err := msg.Set(InitializationVectorKey, iv); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, InitializationVectorKey) } if err := msg.Set(ProtectedHeadersKey, e.protected); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, ProtectedHeadersKey) } if err := msg.Set(RecipientsKey, recipients); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, RecipientsKey) } if err := msg.Set(TagKey, tag); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, TagKey) } return msg, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/gen.sh000077500000000000000000000005231465311135100212700ustar00rootroot00000000000000#!/bin/bash # Script to perform code generation. This exists to overcome # the fact that go:generate doesn't really allow you to change directories set -e pushd internal/cmd/genheader go build -o genheader main.go popd ./internal/cmd/genheader/genheader -objects=internal/cmd/genheader/objects.yml rm internal/cmd/genheader/genheader golang-github-lestrrat-go-jwx-1.2.30/jwe/gh402_test.go000066400000000000000000000266571465311135100224120ustar00rootroot00000000000000package jwe_test import ( "testing" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/stretchr/testify/assert" ) // Pin represents the structured clevis data which can be used to decrypt the jwe message type Pin struct { Pin string `json:"pin"` Tang *TangPin `json:"tang,omitempty"` Tpm2 *Tpm2Pin `json:"tpm2,omitempty"` Sss *SssPin `json:"sss,omitempty"` Yubikey *YubikeyPin `json:"yubikey,omitempty"` } type TangPin struct { Advertisement *json.RawMessage `json:"adv,omitempty"` URL string `json:"url"` } type Tpm2Pin struct { Hash string `json:"hash,omitempty"` Key string `json:"key,omitempty"` JwkPub string `json:"jwk_pub,omitempty"` JwkPriv string `json:"jwk_priv,omitempty"` PcrBank string `json:"pcr_bank,omitempty"` PcrIds string `json:"pcr_ids,omitempty"` } type SssPin struct { Jwe []string `json:"jwe"` Threshold int `json:"t"` Prime string `json:"p"` } type YubikeyPin struct { Type string `json:"type"` Challenge string `json:"chalelenge"` Slot int `json:"slot"` Kdf YubikeyKdf `json:"kdf"` } type YubikeyKdf struct { Type string `json:"type"` Hash string `json:"hash"` Iterations int `json:"iter"` Salt string `json:"salt"` } func TestGH402(t *testing.T) { key := []byte{195, 170, 42, 171, 98, 176, 98, 162, 57, 170, 62, 69, 175, 209, 200, 151, 81, 135, 63, 43, 93, 20, 16, 111, 13, 26, 138, 188, 15, 19, 26, 242} data := "eyJhbGciOiJkaXIiLCJjbGV2aXMiOnsicGluIjoic3NzIiwic3NzIjp7Imp3ZSI6WyJleUpoYkdjaU9pSkZRMFJJTFVWVElpd2lZMnhsZG1seklqcDdJbkJwYmlJNkluUmhibWNpTENKMFlXNW5JanA3SW1Ga2RpSTZleUpyWlhseklqcGJleUpoYkdjaU9pSkZRMDFTSWl3aVkzSjJJam9pVUMwMU1qRWlMQ0pyWlhsZmIzQnpJanBiSW1SbGNtbDJaVXRsZVNKZExDSnJkSGtpT2lKRlF5SXNJbmdpT2lKQlZqbEplVmszZDNCamNtMVpZMDkxZWsxTE9VSjJaMDFDZDNJd09FNXhURXBtUW5Ca1IzVXpNa1ZDWjJORmRITnpNRGswVEdweFdXSlFhVmhQTFhWTWMyeDVValZUVlRsdlNHbGhaRlI1VlhWb1UzUTJhbXQzSWl3aWVTSTZJa0ZIVkRseVpYcHlkV0pITFU1eFgxWkxPRUl3UXpGTE9WSTJNV05YU1U1UFNVaEZSMU5MYlZKclUxZEtjVEJRWHpkaFVHaDJlV3hhWDNaTFdHSk5TMGhrU1d0VFFrd3dSMWRRTmxaaVdqbExZVEJHVkZGSFpqTWlmU3g3SW1Gc1p5STZJa1ZUTlRFeUlpd2lZM0oySWpvaVVDMDFNakVpTENKclpYbGZiM0J6SWpwYkluWmxjbWxtZVNKZExDSnJkSGtpT2lKRlF5SXNJbmdpT2lKQlNIZFFhR2hPZDBac1ptc3RNR2d6VDNGS1JFVXpkekpVWDJGcExUbGlZWGhXY0VKa05TMWtNbXhIU0VseFgyTXhVSEZrTW1RMlYxSkRXbEZVYkc5cWQyUmhOblJUUkVndFUxTmhaVE5aTmxGVlZIVkVla1puSWl3aWVTSTZJa0ZrYVhkdVozaDVlamt4UVMxUFRGODFhekIwVEcwMlZtSTNSVkZxWVcxQ1NWUlhlVzVuUldSRVpuRlRSbm8xWlRkdVkycFdlR3BpWDFCSVMwbFNaRzFPT1hCa2RFMTRlRUpPYTFkV2RsOWZUbkZxVTI5SU5UUWlmVjE5TENKMWNtd2lPaUpvZEhSd09pOHZiRzlqWVd4b2IzTjBPak16TURJeEluMTlMQ0psYm1NaU9pSkJNalUyUjBOTklpd2laWEJySWpwN0ltTnlkaUk2SWxBdE5USXhJaXdpYTNSNUlqb2lSVU1pTENKNElqb2lRVWR1YjNrMFQyMTBhRWt3TjNKV1QxbFNTVGhxUTIxVGMxQjZXVVYwUkcwNWNqRkRaa0ptVmxCa2RscEdVVE0wY2taVmJFTTFRbGRrVlZweVMyOXNYMHh5UVhsdFlrY3pWVEZhY1VRMU9YSnBlVGQzV1hGWVV5SXNJbmtpT2lKQlNHaHNSVGx0T1hoR04xVkVVVXd4WjJSd2RGaE5Zbm94VUhNMloweDRObWx1ZGpodU4xVXpUamhpU0dSTlJIRldhalZKYVdGVGFGbDRZM1kyYzFSQ2VuUXpNMmxrUlRaZlYyUm1Oell3WVhkV1VVUkRXa1oxSW4wc0ltdHBaQ0k2SWpWQlNVaHJjblpDYzFOZmQzRjFMVGN5TUd0Q1dtMTBWblpxYkdsVGVWSmpUVXREVFU5dmJuWlFSVWtpZlEuLlR0SzJzWTE2bDJnSmx6c18uRFZqcGVkbGUxY29xZkFkLUZ3bnM5RmtRVkR0ak4zWU1NWjc4VjNLVmI3VWpFd2p1eTBXYjZ0eUxzTmZsVnJaVU85dDM1X2pfSlpobU0ycllfV1RyOHcuVkZMYjFvcTFqZzRsdnJpY3laaXF6USIsImV5SmhiR2NpT2lKRlEwUklMVVZUSWl3aVkyeGxkbWx6SWpwN0luQnBiaUk2SW5SaGJtY2lMQ0owWVc1bklqcDdJbUZrZGlJNmV5SnJaWGx6SWpwYmV5SmhiR2NpT2lKRlEwMVNJaXdpWTNKMklqb2lVQzAxTWpFaUxDSnJaWGxmYjNCeklqcGJJbVJsY21sMlpVdGxlU0pkTENKcmRIa2lPaUpGUXlJc0luZ2lPaUpCVUZWTVMxVllhMUp2TjJOdGFXOXFVRUV3ZFVZMGVIcFFXakJ0V21sQ1NFeFBhVWRyV0hkQ1pGTkVibVpNV1ZaTmJFeFZWR0UzTXkxNWJYSnVWME5mUlRZdE9DMWpUbnA0U1RaMWVtMTRhVFphTXpCUU1EaHhJaXdpZVNJNklrRlBPVTFWTVdGQmRWRnJNVEJrY1dGbVIwRlFYMlpKVGkwelRXTldNRkpGT0drNGFVdG5UbGhuWm14SlFtbDZNRGMxVmpCWVJIZEZNbkpSU2xka1VsRktlWGczT0hFeVJrTndkekZGTTFCMk1YRnZZMmhCZDJnaWZTeDdJbUZzWnlJNklrVlROVEV5SWl3aVkzSjJJam9pVUMwMU1qRWlMQ0pyWlhsZmIzQnpJanBiSW5abGNtbG1lU0pkTENKcmRIa2lPaUpGUXlJc0luZ2lPaUpCVUUxSFZYWTFjSFZUZWt0MU1HRjRZVFJRYldOeFRsQkxiMjR0TW1oYVVGSjJXbmRwV2xkc05sOVNNREJ2YlZsMldESXplRlJ4UldGUVdFMXphemxFYm1SdGNrUnpWbEZvTlRFMFEzTTBSbGszV0VaTlkyUkVJaXdpZVNJNklrRlZNa051VUV0RlJVeDBhSFZaYlZaeWJWZEJORFZLYjNocE1FRkhjM2w1T0daak5UTlJiMHA2UjA4NWNYVnRXVVpRTTFWbVoyWjZibkZsTnpWcE5uUXpkSFJPUW0xSWNGVlhTa1JuUkRkdGRGbEdVbXRzYzFjaWZWMTlMQ0oxY213aU9pSm9kSFJ3T2k4dmJHOWpZV3hvYjNOME9qUXhPRFl4SW4xOUxDSmxibU1pT2lKQk1qVTJSME5OSWl3aVpYQnJJanA3SW1OeWRpSTZJbEF0TlRJeElpd2lhM1I1SWpvaVJVTWlMQ0o0SWpvaVFWazJVMmxoUzFaRFMwUnFRMjUwTFdWNFJFZzJTa3RhYVdkaWRXOVpZVzV3Y0hWRVkxOXNOVXBxY1ROR05GWnpMV3hJYzFGbVYzQmFOVXRPWTNCUWFITmZObFpVUmt4ZlYwMVdja2xCZG5wWWVFeExZMmhKY0NJc0lua2lPaUpCU1RCVFZVSTFUMG80ZGtkR05YRndXRzVFZVRkd1pteFBNVjlsZW14WWQyTTNValpxY25RelJrSklPRTEwZG0xcFRHVkZNRzR0VEhZNFMyNWZMVWMzUlhJM1MwRklNSEoyWW5kMlVFZzBjbXhrU1VrM2RETmxJbjBzSW10cFpDSTZJa1JNT1ZaclRHcFVaVXBKTVhRd2ExUnNUbnBzVGxrM1RHcDFTWGxLZHpGUE1HTkdYMHN0YW5GdGFHOGlmUS4uSjJ4c2VjeTN3c2FGRjFfdi5uQzdPSzVrdXAwbkgxVGwwOFBRUE82QTllNjFYMXNGY1RFUVZjTjNkd0NWYTFMZ2p2STFfSWZqTU5TX2cweTI4WGM1ZThQZ2hFS01UQ0hkQk44UzFBdy5yV0s5Qi0yT2RtWUlIbmQzMzcxeHpRIiwiZXlKaGJHY2lPaUpGUTBSSUxVVlRJaXdpWTJ4bGRtbHpJanA3SW5CcGJpSTZJblJoYm1jaUxDSjBZVzVuSWpwN0ltRmtkaUk2ZXlKclpYbHpJanBiZXlKaGJHY2lPaUpGUTAxU0lpd2lZM0oySWpvaVVDMDFNakVpTENKclpYbGZiM0J6SWpwYkltUmxjbWwyWlV0bGVTSmRMQ0pyZEhraU9pSkZReUlzSW5naU9pSkJRbVZ1WVRaWVVUQkNTMmQwU1U5c05FMXZUakZEZFhKc2REVk1lVEZ6YUZNMFRFbHdkV05aUkVaWE9VNDVNRWgxY1RSUk4wcENPR3RNVDNabVdEUnBhSFJwTFdWQ1JXdGpVR3BCYzNWWU9HWm5kbVEyVEZSM0lpd2llU0k2SWtGUlRFWnVZMmhmZVRCaVdFNTRTRGt6UW10NWQwSmFhbXB6T1ROaFptOXFXWGhyV0d0dFFXZFRVbnA1ZGxaWGFrbHJRMEYwVWtoRVZuVmhlbkUxTWtSRFYxVnRlRU5YWm1OR05qWkdSaTB5Y1ZrellsTk9Na01pZlN4N0ltRnNaeUk2SWtWVE5URXlJaXdpWTNKMklqb2lVQzAxTWpFaUxDSnJaWGxmYjNCeklqcGJJblpsY21sbWVTSmRMQ0pyZEhraU9pSkZReUlzSW5naU9pSkJaR2hHZW05RE5FZG5WRk5CWlUxTFVYSlhjRWRCTWtndFEyeEVNVE52U1d4SVprczFTWEI2ZVZseWRuVm1Sbk5DZDJkYWJWYzRWR0ZXUkdSYVltbGlkM3BtTldSMk1rOHRkVkpmU2pSS2IyNDRNekJ0ZFVGa0lpd2llU0k2SWtGUlpFMVdka3RGWW5obWMwbHRiVFJtVHpZMlFsOHdVMnhPWDBaRmVEQkthVlpyVjFKQlFrRnBhRVExV1VKUWVVbEpjM1pGUjJoR1dqaFpOVXBWTXpoQ1JWVlJUWGhyVkZsT1pEVlpOR1UxVG1STVVVbDNObDhpZlYxOUxDSjFjbXdpT2lKb2RIUndPaTh2Ykc5allXeG9iM04wT2pNME1qVTVJbjE5TENKbGJtTWlPaUpCTWpVMlIwTk5JaXdpWlhCcklqcDdJbU55ZGlJNklsQXROVEl4SWl3aWEzUjVJam9pUlVNaUxDSjRJam9pUVZaU1praEpWVVJ2U0RCb1FYRnhOSFpJYVVGMmNVOVNXblJUVFZkS2VGVmtPWEozV2tWdVZFMUVWbWt4VG5KbGRWTnZWWHBNWmxkcFVVcDBiR3BxU21ZM1NqRnpUbGRVUmpKaVFtTnJNSEJrUnpkcFJHVnhVeUlzSW5raU9pSkJSak5aUms5dlNXNW1jVU5yVFRKa1pISnlkV1JyY21zMmN6Wk1SMUpNU0U5YVl6QlhhMmRhZFZsb1FsRk9ZbVZXY25sWFZTMW9aMTgwYkhCRE5EUjRaRmh3ZUc4NWFGOWhSVlZ0U0V0UGFWOWpVM2xhY1VjM0luMHNJbXRwWkNJNkluQnNablF4UW5WR2EyeGZaRGhyZFZOaWNVVlVSbXhxYjJwM01WZDBMVFpLYTJ0VGVXOWtWa1JEZDNjaWZRLi5CUUVtRXFhc1FHNHNKY1d2Lmo5RzBweVEwbTY0TU5OTEZicm4wT01BbmZaOTJ5bWNxV19ZM2ZIMWJEd2JFbnI1U1FHWF9jWjNfbUpGSS0zMFVJOEZuZzRUaXRxMU9JT2JySktETTh3LndRTmVJVzhzZnNua1V1aTUwTWpYd0EiLCJleUpoYkdjaU9pSkZRMFJJTFVWVElpd2lZMnhsZG1seklqcDdJbkJwYmlJNkluUmhibWNpTENKMFlXNW5JanA3SW1Ga2RpSTZleUpyWlhseklqcGJleUpoYkdjaU9pSkZRMDFTSWl3aVkzSjJJam9pVUMwMU1qRWlMQ0pyWlhsZmIzQnpJanBiSW1SbGNtbDJaVXRsZVNKZExDSnJkSGtpT2lKRlF5SXNJbmdpT2lKQlJVdzRjbkZ3UjE4dE9FRXRiM1UwYTJaMFJXbFNjbVZ5VldOb1ozWmlVRzFXYUV0bVJVNWtXVXd0ZDNOVlRucGZNMlpRZW5GUVVtWkhiRzltTkZkR2RFMTNNM0I1YnpaSVFUaFFTM0JHVlc5VWJ6ZHRjbWRSSWl3aWVTSTZJa0ZDUWxsVU9WOWpWRnBuT1RCWlJXWk9jWFV4V2tkSGFtaFphMWxwTTFkWlRqWmpialZJUmtjdGJ5MUdOR3BIWWpkVFpEazFTbWsxTkhkVWRUQmxOVmM1UjE5cGVFRlZYMWh0Wm1GSmQyZFRXVXN3WDJScVpEVWlmU3g3SW1Gc1p5STZJa1ZUTlRFeUlpd2lZM0oySWpvaVVDMDFNakVpTENKclpYbGZiM0J6SWpwYkluWmxjbWxtZVNKZExDSnJkSGtpT2lKRlF5SXNJbmdpT2lKQlZYSktNME5GUzFZd2FGWlNNamhLWTE5eWRXUkpUWEF0YmxCUmRtdFNSemxGVlZsVVRrTjJiVEZrY2tWUlJVNXVWMjB3VXpNelMycEtTMWx1VFhObVJrTlRPR3BYV0hJMFkxUTNTMFV4V2xkWmFGRnJkRzF3SWl3aWVTSTZJa0ZrYUVkWGFFVjJNREE1VjJwdFRUQjFZWFpFTm5sR01HczNMVXR0WkRCTmNHNTNRelZtWVVReFZuTkhWSGhLVG5SYVptSmlWbGhGVTIxeVJYZ3pYMVJoVERZMFpVeFhObFZwTFVveWJscHZhbEpUU0hWWmFtTWlmVjE5TENKMWNtd2lPaUpvZEhSd09pOHZiRzlqWVd4b2IzTjBPalF6TVRVMUluMTlMQ0psYm1NaU9pSkJNalUyUjBOTklpd2laWEJySWpwN0ltTnlkaUk2SWxBdE5USXhJaXdpYTNSNUlqb2lSVU1pTENKNElqb2lRV1JrT0Rnd05FdFlRbGhuWmpacU1EQkdVbEIyUzBsWmFGaE5ZMnRpWjE5c1NXbHdhbVF6TlhGUk9FVk9MVEZGUTNOUVZrNHRTa1I1ZW1sVmVuSkhjVTVOUkRGSmJGOUlTMUIyVGpaUmFVMU9kVXB0VVcxcWJpSXNJbmtpT2lKQlF5MW9Tak5DUTBvMU9VSnZhbWR1Ym5oZlZuaHBWekZNTVU5UlYxTXRZMmxzV2xkRGVIaGhZVUpyYjA0MVV6RnpiMnh4Y1ZwbVFuQkNiakZSWW5OTlJEZGZiVFEwVm1weGRWQlFjMjQwVmpFNFFqQlZkV2hDSW4wc0ltdHBaQ0k2SWtaUmNWZDBUWGQ0V2pWbVEyWjFSekp1WldWT1lreEpkQzF6Tm1Ka2RUQXpaMUZSU0Vvd00wY3RNMDBpZlEuLmduekZoT21WQk41UFNWT2kuZlBkQWJ2YlgtLUFXV1pPREZEdy1Yd2VvZHJQamc5UGM4SlFQQjIwZTlPQ2Y5RTZmSEtNYUJlR2xVSWRyOHViRjdRUjllM3Vnalk2ZEdLOEoyeklyYXcuTlV6T3M4a01HVVhMa3BXNWxja3BnZyIsImV5SmhiR2NpT2lKRlEwUklMVVZUSWl3aVkyeGxkbWx6SWpwN0luQnBiaUk2SW5SaGJtY2lMQ0owWVc1bklqcDdJbUZrZGlJNmV5SnJaWGx6SWpwYmV5SmhiR2NpT2lKRlEwMVNJaXdpWTNKMklqb2lVQzAxTWpFaUxDSnJaWGxmYjNCeklqcGJJbVJsY21sMlpVdGxlU0pkTENKcmRIa2lPaUpGUXlJc0luZ2lPaUpCWTNVeWFFOTVXSGRPVG1OYVpXRnJkVTFRVW01aGFqSnJXbGxJUldkMVFuRmZiR0ZMU0VZeFUwbzFjMVp3UmswMVVsZFJYMVp5U2pKVmVtMHpXa0k0T1Y5Nk5HZExVVzVETFU1TFJHTk5NMHcxUkVsdlh6UlNJaXdpZVNJNklrRmlOVXBTU1hOeU5HSm9kRXhvV1dabVVITlpaMUZqT0hocGNXcFplak5wUm1GeVpIbEVkVFZRZHpSVFRIZExWR1JuV2tSMGNtODVNSHByTVRKVFpERmhYemgxZVRkV1drMHRTRVkzUWs5bGNXeG9RV3R2VEdnaWZTeDdJbUZzWnlJNklrVlROVEV5SWl3aVkzSjJJam9pVUMwMU1qRWlMQ0pyWlhsZmIzQnpJanBiSW5abGNtbG1lU0pkTENKcmRIa2lPaUpGUXlJc0luZ2lPaUpCVm1Sa1ZFWklNRWxwTm1OWk1sQk9XVVp1WVZkT2IwaENlRzVuVFZaR1kzZFlObVYzU25vd1VVUlZjbkF5UmxsT1pVNHpaQzFxYWxwcVdYQmZkRkJ0Ukdjd05YcG1iSHAyU0VoSWJscFlUM2RLT1RSSU5VOHhJaXdpZVNJNklrRllaRkZ5VDBFdFJXWjFTM2xHU0drdE5sVlFSRGMwUnkxaVdVdFhNbFV4YVZselpFTkRSakp5WWs5T1JXeDBTVFowT0ZSZk56bHZjR1pLTkcxU1gySnliMVZqVVhBNU1GOWFZM05RY3poZlZtRndSbmhyVmpJaWZWMTlMQ0oxY213aU9pSm9kSFJ3T2k4dmJHOWpZV3hvYjNOME9qTTBPRGM1SW4xOUxDSmxibU1pT2lKQk1qVTJSME5OSWl3aVpYQnJJanA3SW1OeWRpSTZJbEF0TlRJeElpd2lhM1I1SWpvaVJVTWlMQ0o0SWpvaVFXUkNVVlJKUkdjNGNEWm5NVzh4T0d4R1dYRm1kMXBhTWxaaFJteG9VMlF0YVhkV09EQnRXalZaWm5wWU5qbFNWV3BxYzNKc1ZHZEtjbXMwY2pKaWRrSlZUbE5YY0cxbVEyeHBYek0xYm1Wb2NrZHpRbW94VUNJc0lua2lPaUpCVTJGVVYxY3RSRk5ZVVhObFgxUmxibDg0VkdkVmFrWTNVRWxRTm5wcVpUUmxSbk55YkY5WFRESkhNRGwzTFROalYzVlRlVlZmUzFvemF6VndTVlp0TlZkaU1tcGlXREptV2sxWmVFNVpRbDh5Vm10d1QxWnVJbjBzSW10cFpDSTZJbEk0YWtWSk1YQlRNVWxoY0hWVVZHTktObGhJWkROWFUzbGZRbmhXU1hWb1VVeDFVekJwYjJkU09UUWlmUS4uTEk2ZC1TNUlYSDRIY2lxeS5ESWl3M1hFeXlaMVZWZDFPcWYwS1pJeGZrUWtnZXo4bXl2N0dfZGFMOWxIdjVFVlFMQzREVG9PMWF6UDQ5SDNGUk5PRHZIcXBmaWp1a3VDX2JmLVZldy41NGpyZnZWdEYxR3ItYU9TVEFjSWV3Il0sInAiOiI0NERteG1EZVFiWTJ3eHpIYm9PODFkbTBCbENNcVJzeEtLQ0NDQWo4TVVjIiwidCI6M319LCJlbmMiOiJBMjU2R0NNIn0..zz3fUXsiaME2cSoy.LTQovHUvDP4MXT2_sHgf_cM2gicobD5kGXEl5eY.MK3Lf6IwaoVUvCTp1Q5VOA" pp := jwe.PostParseFunc(func(ctx jwe.DecryptCtx) error { ctx.SetKey(key) ctx.SetAlgorithm(jwa.DIRECT) return nil }) decrypt := func(customField bool) { t.Helper() m := jwe.NewMessage() // Test WithPostParse while we're at it plain, err := jwe.Decrypt([]byte(data), "invalid algorithm", nil, jwe.WithMessage(m), jwe.WithPostParser(pp), ) if !assert.NoError(t, err, `jwe.Decrypt should succeed`) { return } if string(plain) != "testing Shamir Secret Sharing" { t.Errorf("expected 'testing Shamir Secret Sharing', got %s", string(plain)) return } if customField { v, ok := m.ProtectedHeaders().Get("clevis") if !assert.True(t, ok, `m.Get("clevis") should be true`) { return } if !assert.IsType(t, Pin{}, v, `result of m.Get("clevis") should be an instance of Pin{}`) { return } } } decrypt(false) // register field deserialized and run decryption again jwe.RegisterCustomField("clevis", Pin{}) decrypt(true) // used to fail before, but this should pass } golang-github-lestrrat-go-jwx-1.2.30/jwe/headers.go000066400000000000000000000056351465311135100221330ustar00rootroot00000000000000package jwe import ( "context" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/pkg/errors" ) type isZeroer interface { isZero() bool } func (h *stdHeaders) isZero() bool { return h.agreementPartyUInfo == nil && h.agreementPartyVInfo == nil && h.algorithm == nil && h.compression == nil && h.contentEncryption == nil && h.contentType == nil && h.critical == nil && h.ephemeralPublicKey == nil && h.jwk == nil && h.jwkSetURL == nil && h.keyID == nil && h.typ == nil && h.x509CertChain == nil && h.x509CertThumbprint == nil && h.x509CertThumbprintS256 == nil && h.x509URL == nil && len(h.privateParams) == 0 } // Iterate returns a channel that successively returns all the // header name and values. func (h *stdHeaders) Iterate(ctx context.Context) Iterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *stdHeaders) Walk(ctx context.Context, visitor Visitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *stdHeaders) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } func (h *stdHeaders) Clone(ctx context.Context) (Headers, error) { dst := NewHeaders() if err := h.Copy(ctx, dst); err != nil { return nil, errors.Wrap(err, `failed to copy header contents to new object`) } return dst, nil } func (h *stdHeaders) Copy(_ context.Context, dst Headers) error { for _, pair := range h.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := dst.Set(key, pair.Value); err != nil { return errors.Wrapf(err, `failed to set header %q`, key) } } return nil } func (h *stdHeaders) Merge(ctx context.Context, h2 Headers) (Headers, error) { h3 := NewHeaders() if h != nil { if err := h.Copy(ctx, h3); err != nil { return nil, errors.Wrap(err, `failed to copy headers from receiver`) } } if h2 != nil { if err := h2.Copy(ctx, h3); err != nil { return nil, errors.Wrap(err, `failed to copy headers from argument`) } } return h3, nil } func (h *stdHeaders) Encode() ([]byte, error) { buf, err := json.Marshal(h) if err != nil { return nil, errors.Wrap(err, `failed to marshal headers to JSON prior to encoding`) } return base64.Encode(buf), nil } func (h *stdHeaders) Decode(buf []byte) error { // base64 json string -> json object representation of header decoded, err := base64.Decode(buf) if err != nil { return errors.Wrap(err, "failed to unmarshal base64 encoded buffer") } if err := json.Unmarshal(decoded, h); err != nil { return errors.Wrap(err, "failed to unmarshal buffer") } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/headers_gen.go000066400000000000000000000454561465311135100227710ustar00rootroot00000000000000// This file is auto-generated by jwe/internal/cmd/genheaders/main.go. DO NOT EDIT package jwe import ( "bytes" "context" "sort" "sync" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" ) const ( AgreementPartyUInfoKey = "apu" AgreementPartyVInfoKey = "apv" AlgorithmKey = "alg" CompressionKey = "zip" ContentEncryptionKey = "enc" ContentTypeKey = "cty" CriticalKey = "crit" EphemeralPublicKeyKey = "epk" JWKKey = "jwk" JWKSetURLKey = "jku" KeyIDKey = "kid" TypeKey = "typ" X509CertChainKey = "x5c" X509CertThumbprintKey = "x5t" X509CertThumbprintS256Key = "x5t#S256" X509URLKey = "x5u" ) // Headers describe a standard Header set. type Headers interface { json.Marshaler json.Unmarshaler AgreementPartyUInfo() []byte AgreementPartyVInfo() []byte Algorithm() jwa.KeyEncryptionAlgorithm Compression() jwa.CompressionAlgorithm ContentEncryption() jwa.ContentEncryptionAlgorithm ContentType() string Critical() []string EphemeralPublicKey() jwk.Key JWK() jwk.Key JWKSetURL() string KeyID() string Type() string X509CertChain() []string X509CertThumbprint() string X509CertThumbprintS256() string X509URL() string Iterate(ctx context.Context) Iterator Walk(ctx context.Context, v Visitor) error AsMap(ctx context.Context) (map[string]interface{}, error) Get(string) (interface{}, bool) Set(string, interface{}) error Remove(string) error Encode() ([]byte, error) Decode([]byte) error // PrivateParams returns the map containing the non-standard ('private') parameters // in the associated header. WARNING: DO NOT USE PrivateParams() // IF YOU HAVE CONCURRENT CODE ACCESSING THEM. Use AsMap() to // get a copy of the entire header instead PrivateParams() map[string]interface{} Clone(context.Context) (Headers, error) Copy(context.Context, Headers) error Merge(context.Context, Headers) (Headers, error) } type stdHeaders struct { agreementPartyUInfo []byte agreementPartyVInfo []byte algorithm *jwa.KeyEncryptionAlgorithm compression *jwa.CompressionAlgorithm contentEncryption *jwa.ContentEncryptionAlgorithm contentType *string critical []string ephemeralPublicKey jwk.Key jwk jwk.Key jwkSetURL *string keyID *string typ *string x509CertChain []string x509CertThumbprint *string x509CertThumbprintS256 *string x509URL *string privateParams map[string]interface{} mu *sync.RWMutex } func NewHeaders() Headers { return &stdHeaders{ mu: &sync.RWMutex{}, privateParams: map[string]interface{}{}, } } func (h *stdHeaders) AgreementPartyUInfo() []byte { h.mu.RLock() defer h.mu.RUnlock() return h.agreementPartyUInfo } func (h *stdHeaders) AgreementPartyVInfo() []byte { h.mu.RLock() defer h.mu.RUnlock() return h.agreementPartyVInfo } func (h *stdHeaders) Algorithm() jwa.KeyEncryptionAlgorithm { h.mu.RLock() defer h.mu.RUnlock() if h.algorithm == nil { return "" } return *(h.algorithm) } func (h *stdHeaders) Compression() jwa.CompressionAlgorithm { h.mu.RLock() defer h.mu.RUnlock() if h.compression == nil { return jwa.NoCompress } return *(h.compression) } func (h *stdHeaders) ContentEncryption() jwa.ContentEncryptionAlgorithm { h.mu.RLock() defer h.mu.RUnlock() if h.contentEncryption == nil { return "" } return *(h.contentEncryption) } func (h *stdHeaders) ContentType() string { h.mu.RLock() defer h.mu.RUnlock() if h.contentType == nil { return "" } return *(h.contentType) } func (h *stdHeaders) Critical() []string { h.mu.RLock() defer h.mu.RUnlock() return h.critical } func (h *stdHeaders) EphemeralPublicKey() jwk.Key { h.mu.RLock() defer h.mu.RUnlock() return h.ephemeralPublicKey } func (h *stdHeaders) JWK() jwk.Key { h.mu.RLock() defer h.mu.RUnlock() return h.jwk } func (h *stdHeaders) JWKSetURL() string { h.mu.RLock() defer h.mu.RUnlock() if h.jwkSetURL == nil { return "" } return *(h.jwkSetURL) } func (h *stdHeaders) KeyID() string { h.mu.RLock() defer h.mu.RUnlock() if h.keyID == nil { return "" } return *(h.keyID) } func (h *stdHeaders) Type() string { h.mu.RLock() defer h.mu.RUnlock() if h.typ == nil { return "" } return *(h.typ) } func (h *stdHeaders) X509CertChain() []string { h.mu.RLock() defer h.mu.RUnlock() return h.x509CertChain } func (h *stdHeaders) X509CertThumbprint() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509CertThumbprint == nil { return "" } return *(h.x509CertThumbprint) } func (h *stdHeaders) X509CertThumbprintS256() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509CertThumbprintS256 == nil { return "" } return *(h.x509CertThumbprintS256) } func (h *stdHeaders) X509URL() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509URL == nil { return "" } return *(h.x509URL) } func (h *stdHeaders) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair if h.agreementPartyUInfo != nil { pairs = append(pairs, &HeaderPair{Key: AgreementPartyUInfoKey, Value: h.agreementPartyUInfo}) } if h.agreementPartyVInfo != nil { pairs = append(pairs, &HeaderPair{Key: AgreementPartyVInfoKey, Value: h.agreementPartyVInfo}) } if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.compression != nil { pairs = append(pairs, &HeaderPair{Key: CompressionKey, Value: *(h.compression)}) } if h.contentEncryption != nil { pairs = append(pairs, &HeaderPair{Key: ContentEncryptionKey, Value: *(h.contentEncryption)}) } if h.contentType != nil { pairs = append(pairs, &HeaderPair{Key: ContentTypeKey, Value: *(h.contentType)}) } if h.critical != nil { pairs = append(pairs, &HeaderPair{Key: CriticalKey, Value: h.critical}) } if h.ephemeralPublicKey != nil { pairs = append(pairs, &HeaderPair{Key: EphemeralPublicKeyKey, Value: h.ephemeralPublicKey}) } if h.jwk != nil { pairs = append(pairs, &HeaderPair{Key: JWKKey, Value: h.jwk}) } if h.jwkSetURL != nil { pairs = append(pairs, &HeaderPair{Key: JWKSetURLKey, Value: *(h.jwkSetURL)}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.typ != nil { pairs = append(pairs, &HeaderPair{Key: TypeKey, Value: *(h.typ)}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: h.x509CertChain}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *stdHeaders) PrivateParams() map[string]interface{} { h.mu.RLock() defer h.mu.RUnlock() return h.privateParams } func (h *stdHeaders) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case AgreementPartyUInfoKey: if h.agreementPartyUInfo == nil { return nil, false } return h.agreementPartyUInfo, true case AgreementPartyVInfoKey: if h.agreementPartyVInfo == nil { return nil, false } return h.agreementPartyVInfo, true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case CompressionKey: if h.compression == nil { return nil, false } return *(h.compression), true case ContentEncryptionKey: if h.contentEncryption == nil { return nil, false } return *(h.contentEncryption), true case ContentTypeKey: if h.contentType == nil { return nil, false } return *(h.contentType), true case CriticalKey: if h.critical == nil { return nil, false } return h.critical, true case EphemeralPublicKeyKey: if h.ephemeralPublicKey == nil { return nil, false } return h.ephemeralPublicKey, true case JWKKey: if h.jwk == nil { return nil, false } return h.jwk, true case JWKSetURLKey: if h.jwkSetURL == nil { return nil, false } return *(h.jwkSetURL), true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case TypeKey: if h.typ == nil { return nil, false } return *(h.typ), true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain, true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *stdHeaders) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *stdHeaders) setNoLock(name string, value interface{}) error { switch name { case AgreementPartyUInfoKey: if v, ok := value.([]byte); ok { h.agreementPartyUInfo = v return nil } return errors.Errorf(`invalid value for %s key: %T`, AgreementPartyUInfoKey, value) case AgreementPartyVInfoKey: if v, ok := value.([]byte); ok { h.agreementPartyVInfo = v return nil } return errors.Errorf(`invalid value for %s key: %T`, AgreementPartyVInfoKey, value) case AlgorithmKey: if v, ok := value.(jwa.KeyEncryptionAlgorithm); ok { h.algorithm = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, AlgorithmKey, value) case CompressionKey: if v, ok := value.(jwa.CompressionAlgorithm); ok { h.compression = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, CompressionKey, value) case ContentEncryptionKey: if v, ok := value.(jwa.ContentEncryptionAlgorithm); ok { if v == "" { return errors.New(`"enc" field cannot be an empty string`) } h.contentEncryption = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ContentEncryptionKey, value) case ContentTypeKey: if v, ok := value.(string); ok { h.contentType = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ContentTypeKey, value) case CriticalKey: if v, ok := value.([]string); ok { h.critical = v return nil } return errors.Errorf(`invalid value for %s key: %T`, CriticalKey, value) case EphemeralPublicKeyKey: if v, ok := value.(jwk.Key); ok { h.ephemeralPublicKey = v return nil } return errors.Errorf(`invalid value for %s key: %T`, EphemeralPublicKeyKey, value) case JWKKey: if v, ok := value.(jwk.Key); ok { h.jwk = v return nil } return errors.Errorf(`invalid value for %s key: %T`, JWKKey, value) case JWKSetURLKey: if v, ok := value.(string); ok { h.jwkSetURL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, JWKSetURLKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case TypeKey: if v, ok := value.(string); ok { h.typ = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, TypeKey, value) case X509CertChainKey: if v, ok := value.([]string); ok { h.x509CertChain = v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertChainKey, value) case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (h *stdHeaders) Remove(key string) error { h.mu.Lock() defer h.mu.Unlock() switch key { case AgreementPartyUInfoKey: h.agreementPartyUInfo = nil case AgreementPartyVInfoKey: h.agreementPartyVInfo = nil case AlgorithmKey: h.algorithm = nil case CompressionKey: h.compression = nil case ContentEncryptionKey: h.contentEncryption = nil case ContentTypeKey: h.contentType = nil case CriticalKey: h.critical = nil case EphemeralPublicKeyKey: h.ephemeralPublicKey = nil case JWKKey: h.jwk = nil case JWKSetURLKey: h.jwkSetURL = nil case KeyIDKey: h.keyID = nil case TypeKey: h.typ = nil case X509CertChainKey: h.x509CertChain = nil case X509CertThumbprintKey: h.x509CertThumbprint = nil case X509CertThumbprintS256Key: h.x509CertThumbprintS256 = nil case X509URLKey: h.x509URL = nil default: delete(h.privateParams, key) } return nil } func (h *stdHeaders) UnmarshalJSON(buf []byte) error { h.agreementPartyUInfo = nil h.agreementPartyVInfo = nil h.algorithm = nil h.compression = nil h.contentEncryption = nil h.contentType = nil h.critical = nil h.ephemeralPublicKey = nil h.jwk = nil h.jwkSetURL = nil h.keyID = nil h.typ = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case AgreementPartyUInfoKey: if err := json.AssignNextBytesToken(&h.agreementPartyUInfo, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AgreementPartyUInfoKey) } case AgreementPartyVInfoKey: if err := json.AssignNextBytesToken(&h.agreementPartyVInfo, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AgreementPartyVInfoKey) } case AlgorithmKey: var decoded jwa.KeyEncryptionAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } h.algorithm = &decoded case CompressionKey: var decoded jwa.CompressionAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, CompressionKey) } h.compression = &decoded case ContentEncryptionKey: var decoded jwa.ContentEncryptionAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ContentEncryptionKey) } h.contentEncryption = &decoded case ContentTypeKey: if err := json.AssignNextStringToken(&h.contentType, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ContentTypeKey) } case CriticalKey: var decoded []string if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, CriticalKey) } h.critical = decoded case EphemeralPublicKeyKey: var buf json.RawMessage if err := dec.Decode(&buf); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, EphemeralPublicKeyKey) } key, err := jwk.ParseKey(buf) if err != nil { return errors.Wrapf(err, `failed to parse JWK for key %s`, EphemeralPublicKeyKey) } h.ephemeralPublicKey = key case JWKKey: var buf json.RawMessage if err := dec.Decode(&buf); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JWKKey) } key, err := jwk.ParseKey(buf) if err != nil { return errors.Wrapf(err, `failed to parse JWK for key %s`, JWKKey) } h.jwk = key case JWKSetURLKey: if err := json.AssignNextStringToken(&h.jwkSetURL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JWKSetURLKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case TypeKey: if err := json.AssignNextStringToken(&h.typ, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, TypeKey) } case X509CertChainKey: var decoded []string if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: decoded, err := registry.Decode(dec, tok) if err != nil { return err } h.setNoLock(tok, decoded) } default: return errors.Errorf(`invalid token %T`, tok) } } return nil } func (h stdHeaders) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 16) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { errors.Errorf(`failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/headers_test.go000066400000000000000000000241471465311135100231710ustar00rootroot00000000000000package jwe_test import ( "context" "reflect" "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) var zeroval reflect.Value func TestHeaders(t *testing.T) { certs := []string{ "MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYwMTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3HKrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQmVZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpRSgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRTcDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEuMB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDSkdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IGOgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMUA2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTXRE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuHqDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWVU+4=", "MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoXDTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHUTBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMbVmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwgSW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlvbiBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEgMB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUwAwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdvZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUdIAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4OWBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0VmsfSxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==", "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd", } rawKey, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, `jwxtest.GenerateEcdsaKey should succeed`) { return } privKey, err := jwk.New(rawKey) if !assert.NoError(t, err, `jwk.New should succeed`) { return } pubKey, err := jwk.New(rawKey.PublicKey) if !assert.NoError(t, err, `jwk.PublicKey should succeed`) { return } data := []struct { Key string Value interface{} Expected interface{} Method string }{ { Key: jwe.AgreementPartyUInfoKey, Value: []byte("apu foobarbaz"), Method: "AgreementPartyUInfo", }, {Key: jwe.AgreementPartyVInfoKey, Value: []byte("apv foobarbaz")}, {Key: jwe.CompressionKey, Value: jwa.Deflate}, {Key: jwe.ContentEncryptionKey, Value: jwa.A128GCM}, { Key: jwe.ContentTypeKey, Value: "application/json", Method: "ContentType", }, { Key: jwe.CriticalKey, Value: []string{"crit blah"}, Method: "Critical", }, { Key: jwe.EphemeralPublicKeyKey, Value: pubKey, Method: "EphemeralPublicKey", }, { Key: jwe.JWKKey, Value: privKey, Method: "JWK", }, { Key: jwe.JWKSetURLKey, Value: "http://github.com/lestrrat-go/jwx", Method: "JWKSetURL", }, { Key: jwe.KeyIDKey, Value: "kid blah", Method: "KeyID", }, { Key: jwe.TypeKey, Value: "typ blah", Method: "Type", }, { Key: jwe.X509CertChainKey, Value: certs, Method: "X509CertChain", }, { Key: jwe.X509CertThumbprintKey, Value: "x5t blah", Method: "X509CertThumbprint", }, { Key: jwe.X509CertThumbprintS256Key, Value: "x5t#256 blah", Method: "X509CertThumbprintS256", }, { Key: jwe.X509URLKey, Value: "http://github.com/lestrrat-go/jwx", Method: "X509URL", }, {Key: "private", Value: "boofoo"}, } base := jwe.NewHeaders() t.Run("Set values", func(t *testing.T) { // DO NOT RUN THIS IN PARALLEL. THIS IS AN INITIALIZER for _, tc := range data { if !assert.NoError(t, base.Set(tc.Key, tc.Value), "Headers.Set should succeed") { return } } }) t.Run("Set/Get", func(t *testing.T) { h := jwe.NewHeaders() ctx := context.Background() for iter := base.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() if !assert.NoError(t, h.Set(pair.Key.(string), pair.Value), `h.Set should be successful`) { return } } for _, tc := range data { var values []interface{} viaGet, ok := h.Get(tc.Key) if !assert.True(t, ok, "value for %s should exist", tc.Key) { return } values = append(values, viaGet) if method := tc.Method; method != "" { m := reflect.ValueOf(h).MethodByName(method) if !assert.NotEqual(t, m, zeroval, "method %s should be available", method) { return } ret := m.Call(nil) if !assert.Len(t, ret, 1, `should get exactly 1 value as return value`) { return } values = append(values, ret[0].Interface()) } expected := tc.Expected if expected == nil { expected = tc.Value } for i, got := range values { if !assert.Equal(t, expected, got, "value %d should match", i) { return } } } }) t.Run("PrivateParams", func(t *testing.T) { h := base pp, err := h.AsMap(context.Background()) if !assert.NoError(t, err, `h.AsMap should succeed`) { return } v, ok := pp["private"] if !assert.True(t, ok, "key 'private' should exists") { return } if !assert.Equal(t, v, "boofoo", "value for 'private' should match") { return } }) t.Run("Encode", func(t *testing.T) { h1 := jwe.NewHeaders() h1.Set(jwe.AlgorithmKey, jwa.A128GCMKW) h1.Set("foo", "bar") buf, err := h1.Encode() if !assert.NoError(t, err, `h1.Encode should succeed`) { return } h2 := jwe.NewHeaders() if !assert.NoError(t, h2.Decode(buf), `h2.Decode should succeed`) { return } if !assert.Equal(t, h1, h2, `objects should match`) { return } }) t.Run("Iterator", func(t *testing.T) { expected := map[string]interface{}{} for _, tc := range data { v := tc.Value if expected := tc.Expected; expected != nil { v = expected } expected[tc.Key] = v } v := base t.Run("Iterate", func(t *testing.T) { seen := make(map[string]interface{}) for iter := v.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() seen[pair.Key.(string)] = pair.Value getV, ok := v.Get(pair.Key.(string)) if !assert.True(t, ok, `v.Get should succeed for key %#v`, pair.Key) { return } if !assert.Equal(t, pair.Value, getV, `pair.Value should match value from v.Get()`) { return } } if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("Walk", func(t *testing.T) { seen := make(map[string]interface{}) v.Walk(context.TODO(), jwk.HeaderVisitorFunc(func(key string, value interface{}) error { seen[key] = value return nil })) if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("AsMap", func(t *testing.T) { m, err := v.AsMap(context.TODO()) if !assert.NoError(t, err, `v.AsMap should succeed`) { return } if !assert.Equal(t, expected, m, `values should match`) { return } }) t.Run("Remove", func(t *testing.T) { h := base for iter := h.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() h.Remove(pair.Key.(string)) } m, err := h.AsMap(context.TODO()) if !assert.NoError(t, err, `h.AsMap should succeed`) { return } if !assert.Len(t, m, 0, `len should be zero`) { return } }) }) } golang-github-lestrrat-go-jwx-1.2.30/jwe/interface.go000066400000000000000000000060671465311135100224600ustar00rootroot00000000000000package jwe import ( "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/keyenc" "github.com/lestrrat-go/jwx/jwe/internal/keygen" ) // Recipient holds the encrypted key and hints to decrypt the key type Recipient interface { Headers() Headers EncryptedKey() []byte SetHeaders(Headers) error SetEncryptedKey([]byte) error } type stdRecipient struct { headers Headers encryptedKey []byte } // Message contains the entire encrypted JWE message. You should not // expect to use Message for anything other than inspecting the // state of an encrypted message. This is because encryption is // highly context sensitive, and once we parse the original payload // into an object, we may not always be able to recreate the exact // context in which the encryption happened. // // For example, it is totally valid for if the protected header's // integrity was calculated using a non-standard line breaks: // // {"a dummy": // "protected header"} // // Once parsed, though, we can only serialize the protected header as: // // {"a dummy":"protected header"} // // which would obviously result in a contradicting integrity value // if we tried to re-calculate it from a parsed message. // //nolint:govet type Message struct { authenticatedData []byte cipherText []byte initializationVector []byte tag []byte recipients []Recipient protectedHeaders Headers unprotectedHeaders Headers // These two fields below are not available for the public consumers of this object. // rawProtectedHeaders stores the original protected header buffer rawProtectedHeaders []byte // storeProtectedHeaders is a hint to be used in UnmarshalJSON(). // When this flag is true, UnmarshalJSON() will populate the // rawProtectedHeaders field storeProtectedHeaders bool } // contentEncrypter encrypts the content using the content using the // encrypted key type contentEncrypter interface { Algorithm() jwa.ContentEncryptionAlgorithm Encrypt([]byte, []byte, []byte) ([]byte, []byte, []byte, error) } //nolint:govet type encryptCtx struct { keyEncrypters []keyenc.Encrypter protected Headers contentEncrypter contentEncrypter generator keygen.Generator compress jwa.CompressionAlgorithm } // populater is an interface for things that may modify the // JWE header. e.g. ByteWithECPrivateKey type populater interface { Populate(keygen.Setter) error } type Visitor = iter.MapVisitor type VisitorFunc = iter.MapVisitorFunc type HeaderPair = mapiter.Pair type Iterator = mapiter.Iterator // PostParser is used in conjunction with jwe.WithPostParser(). // This hook is called right after the JWE message has been parsed // but before the actual decryption takes place during `jwe.Decrypt()`. type PostParser interface { PostParse(DecryptCtx) error } // PostParseFunc is a PostParser that is represented by a single function type PostParseFunc func(DecryptCtx) error func (fn PostParseFunc) PostParse(ctx DecryptCtx) error { return fn(ctx) } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/000077500000000000000000000000001465311135100217745ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/aescbc/000077500000000000000000000000001465311135100232145ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/aescbc/aescbc.go000066400000000000000000000146271465311135100247750ustar00rootroot00000000000000package aescbc import ( "crypto/cipher" "crypto/hmac" "crypto/sha256" "crypto/sha512" "crypto/subtle" "encoding/binary" "fmt" "hash" "github.com/pkg/errors" ) const ( NonceSize = 16 ) func pad(buf []byte, n int) []byte { rem := n - len(buf)%n if rem == 0 { return buf } newbuf := make([]byte, len(buf)+rem) copy(newbuf, buf) for i := len(buf); i < len(newbuf); i++ { newbuf[i] = byte(rem) } return newbuf } // ref. https://github.com/golang/go/blob/c3db64c0f45e8f2d75c5b59401e0fc925701b6f4/src/crypto/tls/conn.go#L279-L324 // // extractPadding returns, in constant time, the length of the padding to remove // from the end of payload. It also returns a byte which is equal to 255 if the // padding was valid and 0 otherwise. See RFC 2246, Section 6.2.3.2. func extractPadding(payload []byte) (toRemove int, good byte) { if len(payload) < 1 { return 0, 0 } paddingLen := payload[len(payload)-1] t := uint(len(payload)) - uint(paddingLen) // if len(payload) > paddingLen then the MSB of t is zero good = byte(int32(^t) >> 31) // The maximum possible padding length plus the actual length field toCheck := 256 // The length of the padded data is public, so we can use an if here if toCheck > len(payload) { toCheck = len(payload) } for i := 1; i <= toCheck; i++ { t := uint(paddingLen) - uint(i) // if i <= paddingLen then the MSB of t is zero mask := byte(int32(^t) >> 31) b := payload[len(payload)-i] good &^= mask&paddingLen ^ mask&b } // We AND together the bits of good and replicate the result across // all the bits. good &= good << 4 good &= good << 2 good &= good << 1 good = uint8(int8(good) >> 7) // Zero the padding length on error. This ensures any unchecked bytes // are included in the MAC. Otherwise, an attacker that could // distinguish MAC failures from padding failures could mount an attack // similar to POODLE in SSL 3.0: given a good ciphertext that uses a // full block's worth of padding, replace the final block with another // block. If the MAC check passed but the padding check failed, the // last byte of that block decrypted to the block size. // // See also macAndPaddingGood logic below. paddingLen &= good toRemove = int(paddingLen) return } type Hmac struct { blockCipher cipher.Block hash func() hash.Hash keysize int tagsize int integrityKey []byte } type BlockCipherFunc func([]byte) (cipher.Block, error) func New(key []byte, f BlockCipherFunc) (hmac *Hmac, err error) { keysize := len(key) / 2 ikey := key[:keysize] ekey := key[keysize:] bc, ciphererr := f(ekey) if ciphererr != nil { err = errors.Wrap(ciphererr, `failed to execute block cipher function`) return } var hfunc func() hash.Hash switch keysize { case 16: hfunc = sha256.New case 24: hfunc = sha512.New384 case 32: hfunc = sha512.New default: return nil, errors.Errorf("unsupported key size %d", keysize) } return &Hmac{ blockCipher: bc, hash: hfunc, integrityKey: ikey, keysize: keysize, tagsize: keysize, // NonceSize, // While investigating GH #207, I stumbled upon another problem where // the computed tags don't match on decrypt. After poking through the // code using a bunch of debug statements, I've finally found out that // tagsize = keysize makes the whole thing work. }, nil } // NonceSize fulfills the crypto.AEAD interface func (c Hmac) NonceSize() int { return NonceSize } // Overhead fulfills the crypto.AEAD interface func (c Hmac) Overhead() int { return c.blockCipher.BlockSize() + c.tagsize } func (c Hmac) ComputeAuthTag(aad, nonce, ciphertext []byte) ([]byte, error) { buf := make([]byte, len(aad)+len(nonce)+len(ciphertext)+8) n := 0 n += copy(buf, aad) n += copy(buf[n:], nonce) n += copy(buf[n:], ciphertext) binary.BigEndian.PutUint64(buf[n:], uint64(len(aad)*8)) h := hmac.New(c.hash, c.integrityKey) if _, err := h.Write(buf); err != nil { return nil, errors.Wrap(err, "failed to write ComputeAuthTag using Hmac") } s := h.Sum(nil) return s[:c.tagsize], nil } func ensureSize(dst []byte, n int) []byte { // if the dst buffer has enough length just copy the relevant parts to it. // Otherwise create a new slice that's big enough, and operate on that // Note: I think go-jose has a bug in that it checks for cap(), but not len(). ret := dst if diff := n - len(dst); diff > 0 { // dst is not big enough ret = make([]byte, n) copy(ret, dst) } return ret } // Seal fulfills the crypto.AEAD interface func (c Hmac) Seal(dst, nonce, plaintext, data []byte) []byte { ctlen := len(plaintext) ciphertext := make([]byte, ctlen+c.Overhead())[:ctlen] copy(ciphertext, plaintext) ciphertext = pad(ciphertext, c.blockCipher.BlockSize()) cbc := cipher.NewCBCEncrypter(c.blockCipher, nonce) cbc.CryptBlocks(ciphertext, ciphertext) authtag, err := c.ComputeAuthTag(data, nonce, ciphertext) if err != nil { // Hmac implements cipher.AEAD interface. Seal can't return error. // But currently it never reach here because of Hmac.ComputeAuthTag doesn't return error. panic(fmt.Errorf("failed to seal on hmac: %v", err)) } retlen := len(dst) + len(ciphertext) + len(authtag) ret := ensureSize(dst, retlen) out := ret[len(dst):] n := copy(out, ciphertext) copy(out[n:], authtag) return ret } // Open fulfills the crypto.AEAD interface func (c Hmac) Open(dst, nonce, ciphertext, data []byte) ([]byte, error) { if len(ciphertext) < c.keysize { return nil, errors.New("invalid ciphertext (too short)") } tagOffset := len(ciphertext) - c.tagsize if tagOffset%c.blockCipher.BlockSize() != 0 { return nil, fmt.Errorf( "invalid ciphertext (invalid length: %d %% %d != 0)", tagOffset, c.blockCipher.BlockSize(), ) } tag := ciphertext[tagOffset:] ciphertext = ciphertext[:tagOffset] expectedTag, err := c.ComputeAuthTag(data, nonce, ciphertext[:tagOffset]) if err != nil { return nil, errors.Wrap(err, `failed to compute auth tag`) } if subtle.ConstantTimeCompare(expectedTag, tag) != 1 { return nil, errors.New("invalid ciphertext (tag mismatch)") } cbc := cipher.NewCBCDecrypter(c.blockCipher, nonce) buf := make([]byte, tagOffset) cbc.CryptBlocks(buf, ciphertext) toRemove, good := extractPadding(buf) cmp := subtle.ConstantTimeCompare(expectedTag, tag) & int(good) if cmp != 1 { return nil, errors.New("invalid ciphertext") } plaintext := buf[:len(buf)-toRemove] ret := ensureSize(dst, len(plaintext)) out := ret[len(dst):] copy(out, plaintext) return ret, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/aescbc/aescbc_test.go000066400000000000000000000041551465311135100260270ustar00rootroot00000000000000package aescbc import ( "crypto/aes" "testing" "github.com/stretchr/testify/assert" ) func TestVectorsAESCBC128(t *testing.T) { // Source: http://tools.ietf.org/html/draft-ietf-jose-json-web-encryption-29#appendix-A.2 plaintext := []byte{ 76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, 112, 114, 111, 115, 112, 101, 114, 46} aad := []byte{ 101, 121, 74, 104, 98, 71, 99, 105, 79, 105, 74, 83, 85, 48, 69, 120, 88, 122, 85, 105, 76, 67, 74, 108, 98, 109, 77, 105, 79, 105, 74, 66, 77, 84, 73, 52, 81, 48, 74, 68, 76, 85, 104, 84, 77, 106, 85, 50, 73, 110, 48} ciphertext := []byte{ 40, 57, 83, 181, 119, 33, 133, 148, 198, 185, 243, 24, 152, 230, 6, 75, 129, 223, 127, 19, 210, 82, 183, 230, 168, 33, 215, 104, 143, 112, 56, 102} authtag := []byte{ 246, 17, 244, 190, 4, 95, 98, 3, 231, 0, 115, 157, 242, 203, 100, 191} key := []byte{ 4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106, 206, 107, 124, 212, 45, 111, 107, 9, 219, 200, 177, 0, 240, 143, 156, 44, 207} nonce := []byte{ 3, 22, 60, 12, 43, 67, 104, 105, 108, 108, 105, 99, 111, 116, 104, 101} enc, err := New(key, aes.NewCipher) if !assert.NoError(t, err, "aescbc.New") { return } out := enc.Seal(nil, nonce, plaintext, aad) if !assert.NoError(t, err, "enc.Seal") { return } if !assert.Equal(t, ciphertext, out[:len(out)-enc.keysize], "Ciphertext tag should match") { return } if !assert.Equal(t, authtag, out[len(out)-enc.keysize:], "Auth tag should match") { return } out, err = enc.Open(nil, nonce, out, aad) if !assert.NoError(t, err, "Open should succeed") { return } if !assert.Equal(t, plaintext, out, "Open should get us original text") { return } } func TestPad(t *testing.T) { for i := 0; i < 256; i++ { buf := make([]byte, i) pb := pad(buf, 16) if !assert.Equal(t, len(pb)%16, 0, "pb should be multiple of 16") { return } toRemove, good := extractPadding(pb) if !assert.Equal(t, 1, int(good)&1, "padding should be good") { return } pb = pb[:len(pb)-toRemove] if !assert.Len(t, pb, i, "Unpad should result in len = %d", i) { return } } } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cipher/000077500000000000000000000000001465311135100232465ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cipher/cipher.go000066400000000000000000000071141465311135100250520ustar00rootroot00000000000000package cipher import ( "crypto/aes" "crypto/cipher" "fmt" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/aescbc" "github.com/lestrrat-go/jwx/jwe/internal/keygen" "github.com/pkg/errors" ) var gcm = &gcmFetcher{} var cbc = &cbcFetcher{} func (f gcmFetcher) Fetch(key []byte) (cipher.AEAD, error) { aescipher, err := aes.NewCipher(key) if err != nil { return nil, errors.Wrap(err, "cipher: failed to create AES cipher for GCM") } aead, err := cipher.NewGCM(aescipher) if err != nil { return nil, errors.Wrap(err, `failed to create GCM for cipher`) } return aead, nil } func (f cbcFetcher) Fetch(key []byte) (cipher.AEAD, error) { aead, err := aescbc.New(key, aes.NewCipher) if err != nil { return nil, errors.Wrap(err, "cipher: failed to create AES cipher for CBC") } return aead, nil } func (c AesContentCipher) KeySize() int { return c.keysize } func (c AesContentCipher) TagSize() int { return c.tagsize } func NewAES(alg jwa.ContentEncryptionAlgorithm) (*AesContentCipher, error) { var keysize int var tagsize int var fetcher Fetcher switch alg { case jwa.A128GCM: keysize = 16 tagsize = 16 fetcher = gcm case jwa.A192GCM: keysize = 24 tagsize = 16 fetcher = gcm case jwa.A256GCM: keysize = 32 tagsize = 16 fetcher = gcm case jwa.A128CBC_HS256: tagsize = 16 keysize = tagsize * 2 fetcher = cbc case jwa.A192CBC_HS384: tagsize = 24 keysize = tagsize * 2 fetcher = cbc case jwa.A256CBC_HS512: tagsize = 32 keysize = tagsize * 2 fetcher = cbc default: return nil, errors.Errorf("failed to create AES content cipher: invalid algorithm (%s)", alg) } return &AesContentCipher{ keysize: keysize, tagsize: tagsize, fetch: fetcher, }, nil } func (c AesContentCipher) Encrypt(cek, plaintext, aad []byte) (iv, ciphertext, tag []byte, err error) { var aead cipher.AEAD aead, err = c.fetch.Fetch(cek) if err != nil { return nil, nil, nil, errors.Wrap(err, "failed to fetch AEAD") } // Seal may panic (argh!), so protect ourselves from that defer func() { if e := recover(); e != nil { switch e := e.(type) { case error: err = e default: err = errors.Errorf("%s", e) } err = errors.Wrap(err, "failed to encrypt") } }() var bs keygen.ByteSource if c.NonceGenerator == nil { bs, err = keygen.NewRandom(aead.NonceSize()).Generate() } else { bs, err = c.NonceGenerator.Generate() } if err != nil { return nil, nil, nil, errors.Wrap(err, "failed to generate nonce") } iv = bs.Bytes() combined := aead.Seal(nil, iv, plaintext, aad) tagoffset := len(combined) - c.TagSize() if tagoffset < 0 { panic(fmt.Sprintf("tag offset is less than 0 (combined len = %d, tagsize = %d)", len(combined), c.TagSize())) } tag = combined[tagoffset:] ciphertext = make([]byte, tagoffset) copy(ciphertext, combined[:tagoffset]) return } func (c AesContentCipher) Decrypt(cek, iv, ciphertxt, tag, aad []byte) (plaintext []byte, err error) { aead, err := c.fetch.Fetch(cek) if err != nil { return nil, errors.Wrap(err, "failed to fetch AEAD data") } // Open may panic (argh!), so protect ourselves from that defer func() { if e := recover(); e != nil { switch e := e.(type) { case error: err = e default: err = errors.Errorf("%s", e) } err = errors.Wrap(err, "failed to decrypt") return } }() combined := make([]byte, len(ciphertxt)+len(tag)) copy(combined, ciphertxt) copy(combined[len(ciphertxt):], tag) buf, aeaderr := aead.Open(nil, iv, combined, aad) if aeaderr != nil { err = errors.Wrap(aeaderr, `aead.Open failed`) return } plaintext = buf return } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cipher/cipher_test.go000066400000000000000000000010251465311135100261040ustar00rootroot00000000000000package cipher_test import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/cipher" "github.com/stretchr/testify/assert" ) func TestAES(t *testing.T) { algs := []jwa.ContentEncryptionAlgorithm{ jwa.A128GCM, jwa.A192GCM, jwa.A256GCM, jwa.A128CBC_HS256, jwa.A192CBC_HS384, jwa.A256CBC_HS512, } for _, alg := range algs { c, err := cipher.NewAES(alg) if !assert.NoError(t, err, "BuildCipher for %s succeeds", alg) { return } t.Logf("keysize = %d", c.KeySize()) } } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cipher/interface.go000066400000000000000000000013031465311135100255320ustar00rootroot00000000000000package cipher import ( "crypto/cipher" "github.com/lestrrat-go/jwx/jwe/internal/keygen" ) const ( TagSize = 16 ) // ContentCipher knows how to encrypt/decrypt the content given a content // encryption key and other data type ContentCipher interface { KeySize() int Encrypt(cek, aad, plaintext []byte) ([]byte, []byte, []byte, error) Decrypt(cek, iv, aad, ciphertext, tag []byte) ([]byte, error) } type Fetcher interface { Fetch([]byte) (cipher.AEAD, error) } type gcmFetcher struct{} type cbcFetcher struct{} // AesContentCipher represents a cipher based on AES type AesContentCipher struct { NonceGenerator keygen.Generator fetch Fetcher keysize int tagsize int } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/000077500000000000000000000000001465311135100225375ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/genheader/000077500000000000000000000000001465311135100244615ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/genheader/go.mod000066400000000000000000000004211465311135100255640ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/jwe/internal/cmd/genheader go 1.16 require ( github.com/goccy/go-yaml v1.9.4 github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/crypto v0.6.0 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/genheader/go.sum000066400000000000000000000212341465311135100256160ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/goccy/go-yaml v1.9.4 h1:S0GCYjwHKVI6IHqio7QWNKNThUl6NLzFd/g8Z65Axw8= github.com/goccy/go-yaml v1.9.4/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931 h1:HSwWEwPudIxfv9sZdu7V8nGqMgByVXrMsqy2x0aRJPM= github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/genheader/main.go000066400000000000000000000276401465311135100257450ustar00rootroot00000000000000package main import ( "bytes" "encoding/json" "flag" "fmt" "log" "os" "strings" "github.com/goccy/go-yaml" "github.com/lestrrat-go/codegen" ) func main() { if err := _main(); err != nil { log.Printf("%s", err) os.Exit(1) } } func _main() error { codegen.RegisterZeroVal(`jwa.KeyEncryptionAlgorithm`, `""`) codegen.RegisterZeroVal(`jwa.CompressionAlgorithm`, `jwa.NoCompress`) codegen.RegisterZeroVal(`jwa.ContentEncryptionAlgorithm`, `""`) var objectsFile = flag.String("objects", "objects.yml", "") flag.Parse() jsonSrc, err := yaml2json(*objectsFile) if err != nil { return err } var object codegen.Object if err := json.NewDecoder(bytes.NewReader(jsonSrc)).Decode(&object); err != nil { return fmt.Errorf(`failed to decode %q: %w`, *objectsFile, err) } object.Organize() return generateHeaders(&object) } func yaml2json(fn string) ([]byte, error) { in, err := os.Open(fn) if err != nil { return nil, fmt.Errorf(`failed to open %q: %w`, fn, err) } defer in.Close() var v interface{} if err := yaml.NewDecoder(in).Decode(&v); err != nil { return nil, fmt.Errorf(`failed to decode %q: %w`, fn, err) } return json.Marshal(v) } func boolFromField(f codegen.Field, field string) (bool, error) { v, ok := f.Extra(field) if !ok { return false, fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } b, ok := v.(bool) if !ok { return false, fmt.Errorf("%q should be a bool in %q", field, f.Name(true)) } return b, nil } func fieldHasAccept(f codegen.Field) bool { v, _ := boolFromField(f, "hasAccept") return v } func PointerElem(f codegen.Field) string { return strings.TrimPrefix(f.Type(), `*`) } func fieldStorageType(s string) string { if fieldStorageTypeIsIndirect(s) { return `*` + s } return s } func fieldStorageTypeIsIndirect(s string) bool { return !(s == "jwk.Key" || s == "jwk.ECDSAPublicKey" || strings.HasPrefix(s, `*`) || strings.HasPrefix(s, `[]`)) } func generateHeaders(obj *codegen.Object) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.L("// This file is auto-generated by jwe/internal/cmd/genheaders/main.go. DO NOT EDIT") o.LL("package jwe") o.LL("const (") for _, f := range obj.Fields() { o.L("%sKey = %q", f.Name(true), f.JSON()) } o.L(")") // end const o.LL("// Headers describe a standard Header set.") o.L("type Headers interface {") o.L("json.Marshaler") o.L("json.Unmarshaler") // These are the basic values that most jws have for _, f := range obj.Fields() { o.L("%s() %s", f.GetterMethod(true), f.Type()) //PointerElem()) } // These are used to iterate through all keys in a header o.L("Iterate(ctx context.Context) Iterator") o.L("Walk(ctx context.Context, v Visitor) error") o.L("AsMap(ctx context.Context) (map[string]interface{}, error)") // These are used to access a single element by key name o.L("Get(string) (interface{}, bool)") o.L("Set(string, interface{}) error") o.L("Remove(string) error") // These are used to deal with encoded headers o.L("Encode() ([]byte, error)") o.L("Decode([]byte) error") // Access private parameters o.L("// PrivateParams returns the map containing the non-standard ('private') parameters") o.L("// in the associated header. WARNING: DO NOT USE PrivateParams()") o.L("// IF YOU HAVE CONCURRENT CODE ACCESSING THEM. Use AsMap() to") o.L("// get a copy of the entire header instead") o.L("PrivateParams() map[string]interface{}") o.L("Clone(context.Context) (Headers, error)") o.L("Copy(context.Context, Headers) error") o.L("Merge(context.Context, Headers) (Headers, error)") o.L("}") o.LL("type stdHeaders struct {") for _, f := range obj.Fields() { if c := f.Comment(); c != "" { o.L("%s %s // %s", f.Name(false), fieldStorageType(f.Type()), c) } else { o.L("%s %s", f.Name(false), fieldStorageType(f.Type())) } } o.L("privateParams map[string]interface{}") o.L("mu *sync.RWMutex") o.L("}") // end type StandardHeaders o.LL("func NewHeaders() Headers {") o.L("return &stdHeaders{") o.L("mu: &sync.RWMutex{},") o.L("privateParams: map[string]interface{}{},") o.L("}") o.L("}") for _, f := range obj.Fields() { o.LL("func (h *stdHeaders) %s() %s{", f.GetterMethod(true), f.Type()) o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") if !fieldStorageTypeIsIndirect(f.Type()) { o.L("return h.%s", f.Name(false)) } else { o.L("if h.%s == nil {", f.Name(false)) o.L("return %s", codegen.ZeroVal(f.Type())) o.L("}") o.L("return *(h.%s)", f.Name(false)) } o.L("}") // func (h *stdHeaders) %s() %s } // Generate a function that iterates through all of the keys // in this header. o.LL("func (h *stdHeaders) makePairs() []*HeaderPair {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") // NOTE: building up an array is *slow*? o.L("var pairs []*HeaderPair") for _, f := range obj.Fields() { o.L("if h.%s != nil {", f.Name(false)) if fieldStorageTypeIsIndirect(f.Type()) { o.L("pairs = append(pairs, &HeaderPair{Key: %sKey, Value: *(h.%s)})", f.Name(true), f.Name(false)) } else { o.L("pairs = append(pairs, &HeaderPair{Key: %sKey, Value: h.%s})", f.Name(true), f.Name(false)) } o.L("}") } o.L("for k, v := range h.privateParams {") o.L("pairs = append(pairs, &HeaderPair{Key: k, Value: v})") o.L("}") o.L("return pairs") o.L("}") // end of (h *stdHeaders) iterate(...) o.LL("func (h *stdHeaders) PrivateParams() map[string]interface{} {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("return h.privateParams") o.L("}") o.LL("func (h *stdHeaders) Get(name string) (interface{}, bool) {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("switch name {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) o.L("if h.%s == nil {", f.Name(false)) o.L("return nil, false") o.L("}") if fieldStorageTypeIsIndirect(f.Type()) { o.L("return *(h.%s), true", f.Name(false)) } else { o.L("return h.%s, true", f.Name(false)) } } o.L("default:") o.L("v, ok := h.privateParams[name]") o.L("return v, ok") o.L("}") // end switch name o.L("}") // func (h *stdHeaders) Get(name string) (interface{}, bool) o.LL("func (h *stdHeaders) Set(name string, value interface{}) error {") o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("return h.setNoLock(name, value)") o.L("}") o.LL("func (h *stdHeaders) setNoLock(name string, value interface{}) error {") o.L("switch name {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) if fieldHasAccept(f) { o.L("var acceptor %s", PointerElem(f)) o.L("if err := acceptor.Accept(value); err != nil {") o.L("return errors.Wrapf(err, `invalid value for %%s key`, %sKey)", f.Name(true)) o.L("}") // end if err := h.%s.Accept(value) o.L("h.%s = &acceptor", f.Name(false)) o.L("return nil") } else { o.L("if v, ok := value.(%s); ok {", f.Type()) if f.Name(false) == "contentEncryption" { // check for non-empty string, because empty content encryption is just baaaaaad o.L("if v == \"\" {") o.L("return errors.New(`%#v field cannot be an empty string`)", f.JSON()) o.L("}") } if fieldStorageTypeIsIndirect(f.Type()) { o.L("h.%s = &v", f.Name(false)) } else { o.L("h.%s = v", f.Name(false)) } o.L("return nil") o.L("}") // end if v, ok := value.(%s) o.L("return errors.Errorf(`invalid value for %%s key: %%T`, %sKey, value)", f.Name(true)) } } o.L("default:") o.L("if h.privateParams == nil {") o.L("h.privateParams = map[string]interface{}{}") o.L("}") // end if h.privateParams == nil o.L("h.privateParams[name] = value") o.L("}") // end switch name o.L("return nil") o.L("}") // end func (h *stdHeaders) Set(name string, value interface{}) o.LL("func (h *stdHeaders) Remove(key string) error {") o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("switch key {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) o.L("h.%s = nil", f.Name(false)) } o.L("default:") o.L("delete(h.privateParams, key)") o.L("}") o.L("return nil") // currently unused, but who knows o.L("}") o.LL("func (h *stdHeaders) UnmarshalJSON(buf []byte) error {") for _, f := range obj.Fields() { o.L("h.%s = nil", f.Name(false)) } o.L("dec := json.NewDecoder(bytes.NewReader(buf))") o.L("LOOP:") o.L("for {") o.L("tok, err := dec.Token()") o.L("if err != nil {") o.L("return errors.Wrap(err, `error reading token`)") o.L("}") o.L("switch tok := tok.(type) {") o.L("case json.Delim:") o.L("// Assuming we're doing everything correctly, we should ONLY") o.L("// get either '{' or '}' here.") o.L("if tok == '}' { // End of object") o.L("break LOOP") o.L("} else if tok != '{' {") o.L("return errors.Errorf(`expected '{', but got '%%c'`, tok)") o.L("}") o.L("case string: // Objects can only have string keys") o.L("switch tok {") for _, f := range obj.Fields() { if f.Type() == "string" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextStringToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "[]byte" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextBytesToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "jwk.Key" { o.L("case %sKey:", f.Name(true)) o.L("var buf json.RawMessage") o.L("if err := dec.Decode(&buf); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("key, err := jwk.ParseKey(buf)") o.L("if err != nil {") o.L("return errors.Wrapf(err, `failed to parse JWK for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = key", f.Name(false)) } else if strings.HasPrefix(f.Type(), "[]") { o.L("case %sKey:", f.Name(true)) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = decoded", f.Name(false)) } else { o.L("case %sKey:", f.Name(true)) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = &decoded", f.Name(false)) } } o.L("default:") o.L("decoded, err := registry.Decode(dec, tok)") o.L("if err != nil {") o.L("return err") o.L("}") o.L("h.setNoLock(tok, decoded)") o.L("}") o.L("default:") o.L("return errors.Errorf(`invalid token %%T`, tok)") o.L("}") o.L("}") o.L("return nil") o.L("}") o.LL("func (h stdHeaders) MarshalJSON() ([]byte, error) {") o.L("data := make(map[string]interface{})") o.L("fields := make([]string, 0, %d)", len(obj.Fields())) o.L("for _, pair := range h.makePairs() {") o.L("fields = append(fields, pair.Key.(string))") o.L("data[pair.Key.(string)] = pair.Value") o.L("}") o.LL("sort.Strings(fields)") o.L("buf := pool.GetBytesBuffer()") o.L("defer pool.ReleaseBytesBuffer(buf)") o.L("buf.WriteByte('{')") o.L("enc := json.NewEncoder(buf)") o.L("for i, f := range fields {") o.L("if i > 0 {") o.L("buf.WriteRune(',')") o.L("}") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(f)") o.L("buf.WriteString(`\":`)") o.L("v := data[f]") o.L("switch v := v.(type) {") o.L("case []byte:") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(base64.EncodeToString(v))") o.L("buf.WriteRune('\"')") o.L("default:") o.L("if err := enc.Encode(v); err != nil {") o.L("errors.Errorf(`failed to encode value for field %%s`, f)") o.L("}") o.L("buf.Truncate(buf.Len()-1)") o.L("}") o.L("}") o.L("buf.WriteByte('}')") o.L("ret := make([]byte, buf.Len())") o.L("copy(ret, buf.Bytes())") o.L("return ret, nil") o.L("}") if err := o.WriteFile(`headers_gen.go`, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to headers_gen.go: %w`, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/cmd/genheader/objects.yml000066400000000000000000000024661465311135100266450ustar00rootroot00000000000000fields: - name: agreementPartyUInfo type: "[]byte" json: apu - name: agreementPartyVInfo type: "[]byte" json: apv - name: algorithm type: jwa.KeyEncryptionAlgorithm json: alg - name: compression type: jwa.CompressionAlgorithm json: zip - name: contentEncryption type: jwa.ContentEncryptionAlgorithm json: enc - name: contentType json: cty - name: critical type: "[]string" json: crit - name: ephemeralPublicKey type: jwk.Key json: epk - name: jwk exported_name: JWK getter: JWK type: jwk.Key - name: jwkSetURL unexported_name: jwkSetURL exported_name: JWKSetURL getter: JWKSetURL json: jku - name: keyID json: kid - name: typ exported_name: Type getter: Type - name: x509URL unexported_name: x509URL exported_name: X509URL getter: X509URL json: x5u - name: x509CertChain unexported_name: x509CertChain exported_name: X509CertChain getter: X509CertChain type: "[]string" json: x5c - name: x509CertThumbprint unexported_name: x509CertThumbprint getter: X509CertThumbprint json: x5t - name: x509CertThumbprintS256 unexported_name: x509CertThumbprintS256 exported_name: X509CertThumbprintS256 getter: X509CertThumbprintS256 json: "x5t#S256" golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/concatkdf/000077500000000000000000000000001465311135100237305ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/concatkdf/concatkdf.go000066400000000000000000000026161465311135100262200ustar00rootroot00000000000000package concatkdf import ( "crypto" "encoding/binary" "github.com/pkg/errors" ) type KDF struct { buf []byte otherinfo []byte z []byte hash crypto.Hash } func ndata(src []byte) []byte { buf := make([]byte, 4+len(src)) binary.BigEndian.PutUint32(buf, uint32(len(src))) copy(buf[4:], src) return buf } func New(hash crypto.Hash, alg, Z, apu, apv, pubinfo, privinfo []byte) *KDF { algbuf := ndata(alg) apubuf := ndata(apu) apvbuf := ndata(apv) concat := make([]byte, len(algbuf)+len(apubuf)+len(apvbuf)+len(pubinfo)+len(privinfo)) n := copy(concat, algbuf) n += copy(concat[n:], apubuf) n += copy(concat[n:], apvbuf) n += copy(concat[n:], pubinfo) copy(concat[n:], privinfo) return &KDF{ hash: hash, otherinfo: concat, z: Z, } } func (k *KDF) Read(out []byte) (int, error) { var round uint32 = 1 h := k.hash.New() for len(out) > len(k.buf) { h.Reset() if err := binary.Write(h, binary.BigEndian, round); err != nil { return 0, errors.Wrap(err, "failed to write round using kdf") } if _, err := h.Write(k.z); err != nil { return 0, errors.Wrap(err, "failed to write z using kdf") } if _, err := h.Write(k.otherinfo); err != nil { return 0, errors.Wrap(err, "failed to write other info using kdf") } k.buf = append(k.buf, h.Sum(nil)...) round++ } n := copy(out, k.buf[:len(out)]) k.buf = k.buf[len(out):] return n, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/concatkdf/concatkdf_test.go000066400000000000000000000021221465311135100272470ustar00rootroot00000000000000package concatkdf import ( "crypto" "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) // https://tools.ietf.org/html/rfc7518#appendix-C func TestAppendix(t *testing.T) { z := []byte{158, 86, 217, 29, 129, 113, 53, 211, 114, 131, 66, 131, 191, 132, 38, 156, 251, 49, 110, 163, 218, 128, 106, 72, 246, 218, 167, 121, 140, 254, 144, 196} alg := []byte(jwa.A128GCM.String()) apu := []byte{65, 108, 105, 99, 101} apv := []byte{66, 111, 98} pub := []byte{0, 0, 0, 128} priv := []byte(nil) expected := []byte{86, 170, 141, 234, 248, 35, 109, 32, 92, 34, 40, 205, 113, 167, 16, 26} kdf := New(crypto.SHA256, alg, z, apu, apv, pub, priv) out := make([]byte, 16) // 128bits n, err := kdf.Read(out[:5]) if !assert.Equal(t, 5, n, "first read bytes matches") || !assert.NoError(t, err, "first read successful") { return } n, err = kdf.Read(out[5:]) if !assert.Equal(t, 11, n, "second read bytes matches") || !assert.NoError(t, err, "second read successful") { return } if !assert.Equal(t, expected, out, "generated value matches") { return } } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/content_crypt/000077500000000000000000000000001465311135100246675ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/content_crypt/content_crypt.go000066400000000000000000000017571465311135100301230ustar00rootroot00000000000000package content_crypt //nolint:golint import ( "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/cipher" "github.com/pkg/errors" ) func (c Generic) Algorithm() jwa.ContentEncryptionAlgorithm { return c.alg } func (c Generic) Encrypt(cek, plaintext, aad []byte) ([]byte, []byte, []byte, error) { iv, encrypted, tag, err := c.cipher.Encrypt(cek, plaintext, aad) if err != nil { return nil, nil, nil, errors.Wrap(err, `failed to crypt content`) } return iv, encrypted, tag, nil } func (c Generic) Decrypt(cek, iv, ciphertext, tag, aad []byte) ([]byte, error) { return c.cipher.Decrypt(cek, iv, ciphertext, tag, aad) } func NewGeneric(alg jwa.ContentEncryptionAlgorithm) (*Generic, error) { c, err := cipher.NewAES(alg) if err != nil { return nil, errors.Wrap(err, `aes crypt: failed to create content cipher`) } return &Generic{ alg: alg, cipher: c, keysize: c.KeySize(), tagsize: 16, }, nil } func (c Generic) KeySize() int { return c.keysize } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/content_crypt/interface.go000066400000000000000000000007241465311135100271610ustar00rootroot00000000000000package content_crypt //nolint:golint import ( "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/cipher" ) // Generic encrypts a message by applying all the necessary // modifications to the keys and the contents type Generic struct { alg jwa.ContentEncryptionAlgorithm keysize int tagsize int cipher cipher.ContentCipher } type Cipher interface { Decrypt([]byte, []byte, []byte, []byte, []byte) ([]byte, error) KeySize() int } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keyenc/000077500000000000000000000000001465311135100232525ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keyenc/interface.go000066400000000000000000000050451465311135100255450ustar00rootroot00000000000000package keyenc import ( "crypto/rsa" "hash" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/keygen" ) // Encrypter is an interface for things that can encrypt keys type Encrypter interface { Algorithm() jwa.KeyEncryptionAlgorithm Encrypt([]byte) (keygen.ByteSource, error) // KeyID returns the key id for this Encrypter. This exists so that // you can pass in a Encrypter to MultiEncrypt, you can rest assured // that the generated key will have the proper key ID. KeyID() string SetKeyID(string) } // Decrypter is an interface for things that can decrypt keys type Decrypter interface { Algorithm() jwa.KeyEncryptionAlgorithm Decrypt([]byte) ([]byte, error) } type Noop struct { alg jwa.KeyEncryptionAlgorithm keyID string sharedkey []byte } // AES encrypts content encryption keys using AES key wrap. // Contrary to what the name implies, it also decrypt encrypted keys type AES struct { alg jwa.KeyEncryptionAlgorithm keyID string sharedkey []byte } // AESGCM encrypts content encryption keys using AES-GCM key wrap. type AESGCMEncrypt struct { algorithm jwa.KeyEncryptionAlgorithm keyID string sharedkey []byte } // ECDHESEncrypt encrypts content encryption keys using ECDH-ES. type ECDHESEncrypt struct { algorithm jwa.KeyEncryptionAlgorithm keyID string generator keygen.Generator } // ECDHESDecrypt decrypts keys using ECDH-ES. type ECDHESDecrypt struct { keyalg jwa.KeyEncryptionAlgorithm contentalg jwa.ContentEncryptionAlgorithm apu []byte apv []byte privkey interface{} pubkey interface{} } // RSAOAEPEncrypt encrypts keys using RSA OAEP algorithm type RSAOAEPEncrypt struct { alg jwa.KeyEncryptionAlgorithm pubkey *rsa.PublicKey keyID string } // RSAOAEPDecrypt decrypts keys using RSA OAEP algorithm type RSAOAEPDecrypt struct { alg jwa.KeyEncryptionAlgorithm privkey *rsa.PrivateKey } // RSAPKCS15Decrypt decrypts keys using RSA PKCS1v15 algorithm type RSAPKCS15Decrypt struct { alg jwa.KeyEncryptionAlgorithm privkey *rsa.PrivateKey generator keygen.Generator } // RSAPKCSEncrypt encrypts keys using RSA PKCS1v15 algorithm type RSAPKCSEncrypt struct { alg jwa.KeyEncryptionAlgorithm pubkey *rsa.PublicKey keyID string } // DirectDecrypt does no encryption (Note: Unimplemented) type DirectDecrypt struct { Key []byte } // PBES2Encrypt encrypts keys with PBES2 / PBKDF2 password type PBES2Encrypt struct { algorithm jwa.KeyEncryptionAlgorithm hashFunc func() hash.Hash keylen int keyID string password []byte } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keyenc/keyenc.go000066400000000000000000000435371465311135100250730ustar00rootroot00000000000000package keyenc import ( "crypto" "crypto/aes" "crypto/cipher" "crypto/ecdsa" "crypto/rand" "crypto/rsa" "crypto/sha1" "crypto/sha256" "crypto/sha512" "crypto/subtle" "encoding/binary" "fmt" "hash" "io" "golang.org/x/crypto/curve25519" "golang.org/x/crypto/pbkdf2" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" contentcipher "github.com/lestrrat-go/jwx/jwe/internal/cipher" "github.com/lestrrat-go/jwx/jwe/internal/concatkdf" "github.com/lestrrat-go/jwx/jwe/internal/keygen" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) func NewNoop(alg jwa.KeyEncryptionAlgorithm, sharedkey []byte) (*Noop, error) { return &Noop{ alg: alg, sharedkey: sharedkey, }, nil } func (kw *Noop) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.alg } func (kw *Noop) SetKeyID(v string) { kw.keyID = v } func (kw *Noop) KeyID() string { return kw.keyID } func (kw *Noop) Encrypt(_ []byte) (keygen.ByteSource, error) { return keygen.ByteKey(kw.sharedkey), nil } // NewAES creates a key-wrap encrypter using AES. // Although the name suggests otherwise, this does the decryption as well. func NewAES(alg jwa.KeyEncryptionAlgorithm, sharedkey []byte) (*AES, error) { return &AES{ alg: alg, sharedkey: sharedkey, }, nil } // Algorithm returns the key encryption algorithm being used func (kw *AES) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.alg } func (kw *AES) SetKeyID(v string) { kw.keyID = v } // KeyID returns the key ID associated with this encrypter func (kw *AES) KeyID() string { return kw.keyID } // Decrypt decrypts the encrypted key using AES key unwrap func (kw *AES) Decrypt(enckey []byte) ([]byte, error) { block, err := aes.NewCipher(kw.sharedkey) if err != nil { return nil, errors.Wrap(err, "failed to create cipher from shared key") } cek, err := Unwrap(block, enckey) if err != nil { return nil, errors.Wrap(err, "failed to unwrap data") } return cek, nil } // KeyEncrypt encrypts the given content encryption key func (kw *AES) Encrypt(cek []byte) (keygen.ByteSource, error) { block, err := aes.NewCipher(kw.sharedkey) if err != nil { return nil, errors.Wrap(err, "failed to create cipher from shared key") } encrypted, err := Wrap(block, cek) if err != nil { return nil, errors.Wrap(err, `keywrap: failed to wrap key`) } return keygen.ByteKey(encrypted), nil } func NewAESGCMEncrypt(alg jwa.KeyEncryptionAlgorithm, sharedkey []byte) (*AESGCMEncrypt, error) { return &AESGCMEncrypt{ algorithm: alg, sharedkey: sharedkey, }, nil } func (kw AESGCMEncrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.algorithm } func (kw *AESGCMEncrypt) SetKeyID(v string) { kw.keyID = v } func (kw AESGCMEncrypt) KeyID() string { return kw.keyID } func (kw AESGCMEncrypt) Encrypt(cek []byte) (keygen.ByteSource, error) { block, err := aes.NewCipher(kw.sharedkey) if err != nil { return nil, errors.Wrap(err, "failed to create cipher from shared key") } aesgcm, err := cipher.NewGCM(block) if err != nil { return nil, errors.Wrap(err, "failed to create gcm from cipher") } iv := make([]byte, aesgcm.NonceSize()) _, err = io.ReadFull(rand.Reader, iv) if err != nil { return nil, errors.Wrap(err, "failed to get random iv") } encrypted := aesgcm.Seal(nil, iv, cek, nil) tag := encrypted[len(encrypted)-aesgcm.Overhead():] ciphertext := encrypted[:len(encrypted)-aesgcm.Overhead()] return keygen.ByteWithIVAndTag{ ByteKey: ciphertext, IV: iv, Tag: tag, }, nil } func NewPBES2Encrypt(alg jwa.KeyEncryptionAlgorithm, password []byte) (*PBES2Encrypt, error) { var hashFunc func() hash.Hash var keylen int switch alg { case jwa.PBES2_HS256_A128KW: hashFunc = sha256.New keylen = 16 case jwa.PBES2_HS384_A192KW: hashFunc = sha512.New384 keylen = 24 case jwa.PBES2_HS512_A256KW: hashFunc = sha512.New keylen = 32 default: return nil, errors.Errorf("unexpected key encryption algorithm %s", alg) } return &PBES2Encrypt{ algorithm: alg, password: password, hashFunc: hashFunc, keylen: keylen, }, nil } func (kw PBES2Encrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.algorithm } func (kw *PBES2Encrypt) SetKeyID(v string) { kw.keyID = v } func (kw PBES2Encrypt) KeyID() string { return kw.keyID } func (kw PBES2Encrypt) Encrypt(cek []byte) (keygen.ByteSource, error) { count := 10000 salt := make([]byte, kw.keylen) _, err := io.ReadFull(rand.Reader, salt) if err != nil { return nil, errors.Wrap(err, "failed to get random salt") } fullsalt := []byte(kw.algorithm) fullsalt = append(fullsalt, byte(0)) fullsalt = append(fullsalt, salt...) sharedkey := pbkdf2.Key(kw.password, fullsalt, count, kw.keylen, kw.hashFunc) block, err := aes.NewCipher(sharedkey) if err != nil { return nil, errors.Wrap(err, "failed to create cipher from shared key") } encrypted, err := Wrap(block, cek) if err != nil { return nil, errors.Wrap(err, `keywrap: failed to wrap key`) } return keygen.ByteWithSaltAndCount{ ByteKey: encrypted, Salt: salt, Count: count, }, nil } // NewECDHESEncrypt creates a new key encrypter based on ECDH-ES func NewECDHESEncrypt(alg jwa.KeyEncryptionAlgorithm, enc jwa.ContentEncryptionAlgorithm, keysize int, keyif interface{}) (*ECDHESEncrypt, error) { var generator keygen.Generator var err error switch key := keyif.(type) { case *ecdsa.PublicKey: generator, err = keygen.NewEcdhes(alg, enc, keysize, key) case x25519.PublicKey: generator, err = keygen.NewX25519(alg, enc, keysize, key) default: return nil, errors.Errorf("unexpected key type %T", keyif) } if err != nil { return nil, errors.Wrap(err, "failed to create key generator") } return &ECDHESEncrypt{ algorithm: alg, generator: generator, }, nil } // Algorithm returns the key encryption algorithm being used func (kw ECDHESEncrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.algorithm } func (kw *ECDHESEncrypt) SetKeyID(v string) { kw.keyID = v } // KeyID returns the key ID associated with this encrypter func (kw ECDHESEncrypt) KeyID() string { return kw.keyID } // KeyEncrypt encrypts the content encryption key using ECDH-ES func (kw ECDHESEncrypt) Encrypt(cek []byte) (keygen.ByteSource, error) { kg, err := kw.generator.Generate() if err != nil { return nil, errors.Wrap(err, "failed to create key generator") } bwpk, ok := kg.(keygen.ByteWithECPublicKey) if !ok { return nil, errors.New("key generator generated invalid key (expected ByteWithECPrivateKey)") } if kw.algorithm == jwa.ECDH_ES { return bwpk, nil } block, err := aes.NewCipher(bwpk.Bytes()) if err != nil { return nil, errors.Wrap(err, "failed to generate cipher from generated key") } jek, err := Wrap(block, cek) if err != nil { return nil, errors.Wrap(err, "failed to wrap data") } bwpk.ByteKey = keygen.ByteKey(jek) return bwpk, nil } // NewECDHESDecrypt creates a new key decrypter using ECDH-ES func NewECDHESDecrypt(keyalg jwa.KeyEncryptionAlgorithm, contentalg jwa.ContentEncryptionAlgorithm, pubkey interface{}, apu, apv []byte, privkey interface{}) *ECDHESDecrypt { return &ECDHESDecrypt{ keyalg: keyalg, contentalg: contentalg, apu: apu, apv: apv, privkey: privkey, pubkey: pubkey, } } // Algorithm returns the key encryption algorithm being used func (kw ECDHESDecrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return kw.keyalg } func DeriveZ(privkeyif interface{}, pubkeyif interface{}) ([]byte, error) { switch privkeyif.(type) { case x25519.PrivateKey: privkey, ok := privkeyif.(x25519.PrivateKey) if !ok { return nil, errors.Errorf(`private key must be x25519.PrivateKey, was: %T`, privkeyif) } pubkey, ok := pubkeyif.(x25519.PublicKey) if !ok { return nil, errors.Errorf(`public key must be x25519.PublicKey, was: %T`, pubkeyif) } return curve25519.X25519(privkey.Seed(), pubkey) default: privkey, ok := privkeyif.(*ecdsa.PrivateKey) if !ok { return nil, errors.Errorf(`private key must be *ecdsa.PrivateKey, was: %T`, privkeyif) } pubkey, ok := pubkeyif.(*ecdsa.PublicKey) if !ok { return nil, errors.Errorf(`public key must be *ecdsa.PublicKey, was: %T`, pubkeyif) } if !privkey.PublicKey.Curve.IsOnCurve(pubkey.X, pubkey.Y) { return nil, errors.New(`public key must be on the same curve as private key`) } z, _ := privkey.PublicKey.Curve.ScalarMult(pubkey.X, pubkey.Y, privkey.D.Bytes()) zBytes := ecutil.AllocECPointBuffer(z, privkey.Curve) defer ecutil.ReleaseECPointBuffer(zBytes) zCopy := make([]byte, len(zBytes)) copy(zCopy, zBytes) return zCopy, nil } } func DeriveECDHES(alg, apu, apv []byte, privkey interface{}, pubkey interface{}, keysize uint32) ([]byte, error) { pubinfo := make([]byte, 4) binary.BigEndian.PutUint32(pubinfo, keysize*8) zBytes, err := DeriveZ(privkey, pubkey) if err != nil { return nil, errors.Wrap(err, "unable to determine Z") } kdf := concatkdf.New(crypto.SHA256, alg, zBytes, apu, apv, pubinfo, []byte{}) key := make([]byte, keysize) if _, err := kdf.Read(key); err != nil { return nil, errors.Wrap(err, "failed to read kdf") } return key, nil } // Decrypt decrypts the encrypted key using ECDH-ES func (kw ECDHESDecrypt) Decrypt(enckey []byte) ([]byte, error) { var algBytes []byte var keysize uint32 // Use keyalg except for when jwa.ECDH_ES algBytes = []byte(kw.keyalg.String()) switch kw.keyalg { case jwa.ECDH_ES: // Create a content cipher from the content encryption algorithm c, err := contentcipher.NewAES(kw.contentalg) if err != nil { return nil, errors.Wrapf(err, `failed to create content cipher for %s`, kw.contentalg) } keysize = uint32(c.KeySize()) algBytes = []byte(kw.contentalg.String()) case jwa.ECDH_ES_A128KW: keysize = 16 case jwa.ECDH_ES_A192KW: keysize = 24 case jwa.ECDH_ES_A256KW: keysize = 32 default: return nil, errors.Errorf("invalid ECDH-ES key wrap algorithm (%s)", kw.keyalg) } key, err := DeriveECDHES(algBytes, kw.apu, kw.apv, kw.privkey, kw.pubkey, keysize) if err != nil { return nil, errors.Wrap(err, `failed to derive ECDHES encryption key`) } // ECDH-ES does not wrap keys if kw.keyalg == jwa.ECDH_ES { return key, nil } block, err := aes.NewCipher(key) if err != nil { return nil, errors.Wrap(err, "failed to create cipher for ECDH-ES key wrap") } return Unwrap(block, enckey) } // NewRSAOAEPEncrypt creates a new key encrypter using RSA OAEP func NewRSAOAEPEncrypt(alg jwa.KeyEncryptionAlgorithm, pubkey *rsa.PublicKey) (*RSAOAEPEncrypt, error) { switch alg { case jwa.RSA_OAEP, jwa.RSA_OAEP_256: default: return nil, errors.Errorf("invalid RSA OAEP encrypt algorithm (%s)", alg) } return &RSAOAEPEncrypt{ alg: alg, pubkey: pubkey, }, nil } // NewRSAPKCSEncrypt creates a new key encrypter using PKCS1v15 func NewRSAPKCSEncrypt(alg jwa.KeyEncryptionAlgorithm, pubkey *rsa.PublicKey) (*RSAPKCSEncrypt, error) { switch alg { case jwa.RSA1_5: default: return nil, errors.Errorf("invalid RSA PKCS encrypt algorithm (%s)", alg) } return &RSAPKCSEncrypt{ alg: alg, pubkey: pubkey, }, nil } // Algorithm returns the key encryption algorithm being used func (e RSAPKCSEncrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return e.alg } func (e *RSAPKCSEncrypt) SetKeyID(v string) { e.keyID = v } // KeyID returns the key ID associated with this encrypter func (e RSAPKCSEncrypt) KeyID() string { return e.keyID } // Algorithm returns the key encryption algorithm being used func (e RSAOAEPEncrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return e.alg } func (e *RSAOAEPEncrypt) SetKeyID(v string) { e.keyID = v } // KeyID returns the key ID associated with this encrypter func (e RSAOAEPEncrypt) KeyID() string { return e.keyID } // KeyEncrypt encrypts the content encryption key using RSA PKCS1v15 func (e RSAPKCSEncrypt) Encrypt(cek []byte) (keygen.ByteSource, error) { if e.alg != jwa.RSA1_5 { return nil, errors.Errorf("invalid RSA PKCS encrypt algorithm (%s)", e.alg) } encrypted, err := rsa.EncryptPKCS1v15(rand.Reader, e.pubkey, cek) if err != nil { return nil, errors.Wrap(err, "failed to encrypt using PKCS1v15") } return keygen.ByteKey(encrypted), nil } // KeyEncrypt encrypts the content encryption key using RSA OAEP func (e RSAOAEPEncrypt) Encrypt(cek []byte) (keygen.ByteSource, error) { var hash hash.Hash switch e.alg { case jwa.RSA_OAEP: hash = sha1.New() case jwa.RSA_OAEP_256: hash = sha256.New() default: return nil, errors.New("failed to generate key encrypter for RSA-OAEP: RSA_OAEP/RSA_OAEP_256 required") } encrypted, err := rsa.EncryptOAEP(hash, rand.Reader, e.pubkey, cek, []byte{}) if err != nil { return nil, errors.Wrap(err, `failed to OAEP encrypt`) } return keygen.ByteKey(encrypted), nil } // NewRSAPKCS15Decrypt creates a new decrypter using RSA PKCS1v15 func NewRSAPKCS15Decrypt(alg jwa.KeyEncryptionAlgorithm, privkey *rsa.PrivateKey, keysize int) *RSAPKCS15Decrypt { generator := keygen.NewRandom(keysize * 2) return &RSAPKCS15Decrypt{ alg: alg, privkey: privkey, generator: generator, } } // Algorithm returns the key encryption algorithm being used func (d RSAPKCS15Decrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return d.alg } // Decrypt decrypts the encrypted key using RSA PKCS1v1.5 func (d RSAPKCS15Decrypt) Decrypt(enckey []byte) ([]byte, error) { // Hey, these notes and workarounds were stolen from go-jose defer func() { // DecryptPKCS1v15SessionKey sometimes panics on an invalid payload // because of an index out of bounds error, which we want to ignore. // This has been fixed in Go 1.3.1 (released 2014/08/13), the recover() // only exists for preventing crashes with unpatched versions. // See: https://groups.google.com/forum/#!topic/golang-dev/7ihX6Y6kx9k // See: https://code.google.com/p/go/source/detail?r=58ee390ff31602edb66af41ed10901ec95904d33 _ = recover() }() // Perform some input validation. expectedlen := d.privkey.PublicKey.N.BitLen() / 8 if expectedlen != len(enckey) { // Input size is incorrect, the encrypted payload should always match // the size of the public modulus (e.g. using a 2048 bit key will // produce 256 bytes of output). Reject this since it's invalid input. return nil, fmt.Errorf( "input size for key decrypt is incorrect (expected %d, got %d)", expectedlen, len(enckey), ) } var err error bk, err := d.generator.Generate() if err != nil { return nil, errors.New("failed to generate key") } cek := bk.Bytes() // When decrypting an RSA-PKCS1v1.5 payload, we must take precautions to // prevent chosen-ciphertext attacks as described in RFC 3218, "Preventing // the Million Message Attack on Cryptographic Message Syntax". We are // therefore deliberately ignoring errors here. err = rsa.DecryptPKCS1v15SessionKey(rand.Reader, d.privkey, enckey, cek) if err != nil { return nil, errors.Wrap(err, "failed to decrypt via PKCS1v15") } return cek, nil } // NewRSAOAEPDecrypt creates a new key decrypter using RSA OAEP func NewRSAOAEPDecrypt(alg jwa.KeyEncryptionAlgorithm, privkey *rsa.PrivateKey) (*RSAOAEPDecrypt, error) { switch alg { case jwa.RSA_OAEP, jwa.RSA_OAEP_256: default: return nil, errors.Errorf("invalid RSA OAEP decrypt algorithm (%s)", alg) } return &RSAOAEPDecrypt{ alg: alg, privkey: privkey, }, nil } // Algorithm returns the key encryption algorithm being used func (d RSAOAEPDecrypt) Algorithm() jwa.KeyEncryptionAlgorithm { return d.alg } // Decrypt decrypts the encrypted key using RSA OAEP func (d RSAOAEPDecrypt) Decrypt(enckey []byte) ([]byte, error) { var hash hash.Hash switch d.alg { case jwa.RSA_OAEP: hash = sha1.New() case jwa.RSA_OAEP_256: hash = sha256.New() default: return nil, errors.New("failed to generate key encrypter for RSA-OAEP: RSA_OAEP/RSA_OAEP_256 required") } return rsa.DecryptOAEP(hash, rand.Reader, d.privkey, enckey, []byte{}) } // Decrypt for DirectDecrypt does not do anything other than // return a copy of the embedded key func (d DirectDecrypt) Decrypt() ([]byte, error) { cek := make([]byte, len(d.Key)) copy(cek, d.Key) return cek, nil } var keywrapDefaultIV = []byte{0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6, 0xa6} const keywrapChunkLen = 8 func Wrap(kek cipher.Block, cek []byte) ([]byte, error) { if len(cek)%8 != 0 { return nil, errors.New(`keywrap input must be 8 byte blocks`) } n := len(cek) / keywrapChunkLen r := make([][]byte, n) for i := 0; i < n; i++ { r[i] = make([]byte, keywrapChunkLen) copy(r[i], cek[i*keywrapChunkLen:]) } buffer := make([]byte, keywrapChunkLen*2) tBytes := make([]byte, keywrapChunkLen) copy(buffer, keywrapDefaultIV) for t := 0; t < 6*n; t++ { copy(buffer[keywrapChunkLen:], r[t%n]) kek.Encrypt(buffer, buffer) binary.BigEndian.PutUint64(tBytes, uint64(t+1)) for i := 0; i < keywrapChunkLen; i++ { buffer[i] = buffer[i] ^ tBytes[i] } copy(r[t%n], buffer[keywrapChunkLen:]) } out := make([]byte, (n+1)*keywrapChunkLen) copy(out, buffer[:keywrapChunkLen]) for i := range r { copy(out[(i+1)*8:], r[i]) } return out, nil } func Unwrap(block cipher.Block, ciphertxt []byte) ([]byte, error) { if len(ciphertxt)%keywrapChunkLen != 0 { return nil, errors.Errorf(`keyunwrap input must be %d byte blocks`, keywrapChunkLen) } n := (len(ciphertxt) / keywrapChunkLen) - 1 r := make([][]byte, n) for i := range r { r[i] = make([]byte, keywrapChunkLen) copy(r[i], ciphertxt[(i+1)*keywrapChunkLen:]) } buffer := make([]byte, keywrapChunkLen*2) tBytes := make([]byte, keywrapChunkLen) copy(buffer[:keywrapChunkLen], ciphertxt[:keywrapChunkLen]) for t := 6*n - 1; t >= 0; t-- { binary.BigEndian.PutUint64(tBytes, uint64(t+1)) for i := 0; i < keywrapChunkLen; i++ { buffer[i] = buffer[i] ^ tBytes[i] } copy(buffer[keywrapChunkLen:], r[t%n]) block.Decrypt(buffer, buffer) copy(r[t%n], buffer[keywrapChunkLen:]) } if subtle.ConstantTimeCompare(buffer[:keywrapChunkLen], keywrapDefaultIV) == 0 { return nil, errors.New("key unwrap: failed to unwrap key") } out := make([]byte, n*keywrapChunkLen) for i := range r { copy(out[i*keywrapChunkLen:], r[i]) } return out, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keyenc/keyenc_test.go000066400000000000000000000121551465311135100261220ustar00rootroot00000000000000package keyenc_test import ( "bytes" "crypto/aes" "crypto/ecdsa" "encoding/hex" "testing" "github.com/lestrrat-go/jwx/jwe/internal/keyenc" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func mustHexDecode(s string) []byte { b, err := hex.DecodeString(s) if err != nil { panic(err) } return b } type vector struct { Kek string Data string Expected string } func TestRFC3394_Wrap(t *testing.T) { vectors := []vector{ { Kek: "000102030405060708090A0B0C0D0E0F", Data: "00112233445566778899AABBCCDDEEFF", Expected: "1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5", }, { Kek: "000102030405060708090A0B0C0D0E0F1011121314151617", Data: "00112233445566778899AABBCCDDEEFF", Expected: "96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D", }, { Kek: "000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F", Data: "00112233445566778899AABBCCDDEEFF0001020304050607", Expected: "A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1", }, } for _, v := range vectors { t.Logf("kek = %s", v.Kek) t.Logf("data = %s", v.Data) t.Logf("expected = %s", v.Expected) kek := mustHexDecode(v.Kek) data := mustHexDecode(v.Data) expected := mustHexDecode(v.Expected) block, err := aes.NewCipher(kek) if !assert.NoError(t, err, "NewCipher is successful") { return } out, err := keyenc.Wrap(block, data) if !assert.NoError(t, err, "Wrap is successful") { return } if !assert.Equal(t, expected, out, "Wrap generates expected output") { return } unwrapped, err := keyenc.Unwrap(block, out) if !assert.NoError(t, err, "Unwrap is successful") { return } if !assert.Equal(t, data, unwrapped, "Unwrapped data matches") { return } } } func TestDeriveECDHES(t *testing.T) { // stolen from go-jose // Example keys from JWA, Appendix C var aliceKey ecdsa.PrivateKey var bobKey ecdsa.PrivateKey const aliceKeySrc = `{"kty":"EC", "crv":"P-256", "x":"gI0GAILBdu7T53akrFmMyGcsF3n5dO7MmwNBHKW5SV0", "y":"SLW_xSffzlPWrHEVI30DHM_4egVwt3NQqeUD7nMFpps", "d":"0_NxaRPUMQoAJt50Gz8YiTr8gRTwyEaCumd-MToTmIo" }` const bobKeySrc = `{"kty":"EC", "crv":"P-256", "x":"weNJy2HscCSM6AEDTDg04biOvhFhyyWvOHQfeF_PxMQ", "y":"e8lnCO-AlStT-NJVX-crhB7QRYhiix03illJOVAOyck", "d":"VEmDZpDXXK8p8N0Cndsxs924q6nS1RXFASRl6BfUqdw" }` aliceWebKey, err := jwk.ParseKey([]byte(aliceKeySrc)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } if !assert.NoError(t, aliceWebKey.Raw(&aliceKey), `aliceWebKey.Raw should succeed`) { return } bobWebKey, err := jwk.ParseKey([]byte(bobKeySrc)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } if !assert.NoError(t, bobWebKey.Raw(&bobKey), `bobWebKey.Raw should succeed`) { return } apuData := []byte("Alice") apvData := []byte("Bob") expected := []byte{86, 170, 141, 234, 248, 35, 109, 32, 92, 34, 40, 205, 113, 167, 16, 26} output, err := keyenc.DeriveECDHES([]byte("A128GCM"), apuData, apvData, &bobKey, &aliceKey.PublicKey, 16) if !assert.NoError(t, err, `keyenc.DeriveECDHES should succeed`) { return } if !assert.Equal(t, output, expected, `result should match`) { return } } func TestKeyWrap(t *testing.T) { // stolen from go-jose // Test vectors from: http://csrc.nist.gov/groups/ST/toolkit/documents/kms/key-wrap.pdf kek0, _ := hex.DecodeString("000102030405060708090A0B0C0D0E0F") cek0, _ := hex.DecodeString("00112233445566778899AABBCCDDEEFF") expected0, _ := hex.DecodeString("1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5") kek1, _ := hex.DecodeString("000102030405060708090A0B0C0D0E0F1011121314151617") cek1, _ := hex.DecodeString("00112233445566778899AABBCCDDEEFF") expected1, _ := hex.DecodeString("96778B25AE6CA435F92B5B97C050AED2468AB8A17AD84E5D") kek2, _ := hex.DecodeString("000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F") cek2, _ := hex.DecodeString("00112233445566778899AABBCCDDEEFF0001020304050607") expected2, _ := hex.DecodeString("A8F9BC1612C68B3FF6E6F4FBE30E71E4769C8B80A32CB8958CD5D17D6B254DA1") block0, _ := aes.NewCipher(kek0) block1, _ := aes.NewCipher(kek1) block2, _ := aes.NewCipher(kek2) out0, _ := keyenc.Wrap(block0, cek0) out1, _ := keyenc.Wrap(block1, cek1) out2, _ := keyenc.Wrap(block2, cek2) if !bytes.Equal(out0, expected0) { t.Error("output 0 not as expected, got", out0, "wanted", expected0) } if !bytes.Equal(out1, expected1) { t.Error("output 1 not as expected, got", out1, "wanted", expected1) } if !bytes.Equal(out2, expected2) { t.Error("output 2 not as expected, got", out2, "wanted", expected2) } unwrap0, _ := keyenc.Unwrap(block0, out0) unwrap1, _ := keyenc.Unwrap(block1, out1) unwrap2, _ := keyenc.Unwrap(block2, out2) if !bytes.Equal(unwrap0, cek0) { t.Error("key unwrap did not return original input, got", unwrap0, "wanted", cek0) } if !bytes.Equal(unwrap1, cek1) { t.Error("key unwrap did not return original input, got", unwrap1, "wanted", cek1) } if !bytes.Equal(unwrap2, cek2) { t.Error("key unwrap did not return original input, got", unwrap2, "wanted", cek2) } } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keygen/000077500000000000000000000000001465311135100232565ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keygen/interface.go000066400000000000000000000032361465311135100255510ustar00rootroot00000000000000package keygen import ( "crypto/ecdsa" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/x25519" ) type Generator interface { Size() int Generate() (ByteSource, error) } // StaticKeyGenerate uses a static byte buffer to provide keys. type Static []byte // RandomKeyGenerate generates random keys type Random struct { keysize int } // EcdhesKeyGenerate generates keys using ECDH-ES algorithm / EC-DSA curve type Ecdhes struct { pubkey *ecdsa.PublicKey keysize int algorithm jwa.KeyEncryptionAlgorithm enc jwa.ContentEncryptionAlgorithm } // X25519KeyGenerate generates keys using ECDH-ES algorithm / X25519 curve type X25519 struct { algorithm jwa.KeyEncryptionAlgorithm enc jwa.ContentEncryptionAlgorithm keysize int pubkey x25519.PublicKey } // ByteKey is a generated key that only has the key's byte buffer // as its instance data. If a key needs to do more, such as providing // values to be set in a JWE header, that key type wraps a ByteKey type ByteKey []byte // ByteWithECPublicKey holds the EC private key that generated // the key along with the key itself. This is required to set the // proper values in the JWE headers type ByteWithECPublicKey struct { ByteKey PublicKey interface{} } type ByteWithIVAndTag struct { ByteKey IV []byte Tag []byte } type ByteWithSaltAndCount struct { ByteKey Salt []byte Count int } // ByteSource is an interface for things that return a byte sequence. // This is used for KeyGenerator so that the result of computations can // carry more than just the generate byte sequence. type ByteSource interface { Bytes() []byte } type Setter interface { Set(string, interface{}) error } golang-github-lestrrat-go-jwx-1.2.30/jwe/internal/keygen/keygen.go000066400000000000000000000116031465311135100250700ustar00rootroot00000000000000package keygen import ( "crypto" "crypto/ecdsa" "crypto/rand" "encoding/binary" "io" "golang.org/x/crypto/curve25519" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/concatkdf" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) // Bytes returns the byte from this ByteKey func (k ByteKey) Bytes() []byte { return []byte(k) } // Size returns the size of the key func (g Static) Size() int { return len(g) } // Generate returns the key func (g Static) Generate() (ByteSource, error) { buf := make([]byte, g.Size()) copy(buf, g) return ByteKey(buf), nil } // NewRandom creates a new Generator that returns // random bytes func NewRandom(n int) Random { return Random{keysize: n} } // Size returns the key size func (g Random) Size() int { return g.keysize } // Generate generates a random new key func (g Random) Generate() (ByteSource, error) { buf := make([]byte, g.keysize) if _, err := io.ReadFull(rand.Reader, buf); err != nil { return nil, errors.Wrap(err, "failed to read from rand.Reader") } return ByteKey(buf), nil } // NewEcdhes creates a new key generator using ECDH-ES func NewEcdhes(alg jwa.KeyEncryptionAlgorithm, enc jwa.ContentEncryptionAlgorithm, keysize int, pubkey *ecdsa.PublicKey) (*Ecdhes, error) { return &Ecdhes{ algorithm: alg, enc: enc, keysize: keysize, pubkey: pubkey, }, nil } // Size returns the key size associated with this generator func (g Ecdhes) Size() int { return g.keysize } // Generate generates new keys using ECDH-ES func (g Ecdhes) Generate() (ByteSource, error) { priv, err := ecdsa.GenerateKey(g.pubkey.Curve, rand.Reader) if err != nil { return nil, errors.Wrap(err, "failed to generate key for ECDH-ES") } var algorithm string if g.algorithm == jwa.ECDH_ES { algorithm = g.enc.String() } else { algorithm = g.algorithm.String() } pubinfo := make([]byte, 4) binary.BigEndian.PutUint32(pubinfo, uint32(g.keysize)*8) z, _ := priv.PublicKey.Curve.ScalarMult(g.pubkey.X, g.pubkey.Y, priv.D.Bytes()) zBytes := ecutil.AllocECPointBuffer(z, priv.PublicKey.Curve) defer ecutil.ReleaseECPointBuffer(zBytes) kdf := concatkdf.New(crypto.SHA256, []byte(algorithm), zBytes, []byte{}, []byte{}, pubinfo, []byte{}) kek := make([]byte, g.keysize) if _, err := kdf.Read(kek); err != nil { return nil, errors.Wrap(err, "failed to read kdf") } return ByteWithECPublicKey{ PublicKey: &priv.PublicKey, ByteKey: ByteKey(kek), }, nil } // NewX25519 creates a new key generator using ECDH-ES func NewX25519(alg jwa.KeyEncryptionAlgorithm, enc jwa.ContentEncryptionAlgorithm, keysize int, pubkey x25519.PublicKey) (*X25519, error) { return &X25519{ algorithm: alg, enc: enc, keysize: keysize, pubkey: pubkey, }, nil } // Size returns the key size associated with this generator func (g X25519) Size() int { return g.keysize } // Generate generates new keys using ECDH-ES func (g X25519) Generate() (ByteSource, error) { pub, priv, err := x25519.GenerateKey(rand.Reader) if err != nil { return nil, errors.Wrap(err, "failed to generate key for X25519") } var algorithm string if g.algorithm == jwa.ECDH_ES { algorithm = g.enc.String() } else { algorithm = g.algorithm.String() } pubinfo := make([]byte, 4) binary.BigEndian.PutUint32(pubinfo, uint32(g.keysize)*8) zBytes, err := curve25519.X25519(priv.Seed(), g.pubkey) if err != nil { return nil, errors.Wrap(err, "failed to compute Z") } kdf := concatkdf.New(crypto.SHA256, []byte(algorithm), zBytes, []byte{}, []byte{}, pubinfo, []byte{}) kek := make([]byte, g.keysize) if _, err := kdf.Read(kek); err != nil { return nil, errors.Wrap(err, "failed to read kdf") } return ByteWithECPublicKey{ PublicKey: pub, ByteKey: ByteKey(kek), }, nil } // HeaderPopulate populates the header with the required EC-DSA public key // information ('epk' key) func (k ByteWithECPublicKey) Populate(h Setter) error { key, err := jwk.New(k.PublicKey) if err != nil { return errors.Wrap(err, "failed to create JWK") } if err := h.Set("epk", key); err != nil { return errors.Wrap(err, "failed to write header") } return nil } // HeaderPopulate populates the header with the required AES GCM // parameters ('iv' and 'tag') func (k ByteWithIVAndTag) Populate(h Setter) error { if err := h.Set("iv", k.IV); err != nil { return errors.Wrap(err, "failed to write header") } if err := h.Set("tag", k.Tag); err != nil { return errors.Wrap(err, "failed to write header") } return nil } // HeaderPopulate populates the header with the required PBES2 // parameters ('p2s' and 'p2c') func (k ByteWithSaltAndCount) Populate(h Setter) error { if err := h.Set("p2c", k.Count); err != nil { return errors.Wrap(err, "failed to write header") } if err := h.Set("p2s", k.Salt); err != nil { return errors.Wrap(err, "failed to write header") } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/io.go000066400000000000000000000010361465311135100211160ustar00rootroot00000000000000// Automatically generated by internal/cmd/genreadfile/main.go. DO NOT EDIT package jwe import "os" // ReadFileOption describes options that can be passed to ReadFile. // Currently there are no options available that can be passed to ReadFile, but // it is provided here for anticipated future additions type ReadFileOption interface { Option readFileOption() } func ReadFile(path string, _ ...ReadFileOption) (*Message, error) { f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() return ParseReader(f) } golang-github-lestrrat-go-jwx-1.2.30/jwe/jwe.go000066400000000000000000000264621465311135100213060ustar00rootroot00000000000000//go:generate ./gen.sh // Package jwe implements JWE as described in https://tools.ietf.org/html/rfc7516 package jwe import ( "bytes" "crypto/ecdsa" "crypto/rsa" "io" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/content_crypt" "github.com/lestrrat-go/jwx/jwe/internal/keyenc" "github.com/lestrrat-go/jwx/jwe/internal/keygen" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) var registry = json.NewRegistry() // Encrypt takes the pllaintext payload and encrypts it in JWE compact format. // `key` should be a public key, and it may be a raw key (e.g. rsa.PublicKey) or a jwk.Key // // Encrypt currently does not support multi-recipient messages. func Encrypt(payload []byte, keyalg jwa.KeyEncryptionAlgorithm, key interface{}, contentalg jwa.ContentEncryptionAlgorithm, compressalg jwa.CompressionAlgorithm, options ...EncryptOption) ([]byte, error) { var protected Headers for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identProtectedHeader{}: protected = option.Value().(Headers) } } if protected == nil { protected = NewHeaders() } contentcrypt, err := content_crypt.NewGeneric(contentalg) if err != nil { return nil, errors.Wrap(err, `failed to create AES encrypter`) } var keyID string if jwkKey, ok := key.(jwk.Key); ok { keyID = jwkKey.KeyID() var raw interface{} if err := jwkKey.Raw(&raw); err != nil { return nil, errors.Wrapf(err, `failed to retrieve raw key out of %T`, key) } key = raw } var enc keyenc.Encrypter switch keyalg { case jwa.RSA1_5: var pubkey rsa.PublicKey if err := keyconv.RSAPublicKey(&pubkey, key); err != nil { return nil, errors.Wrapf(err, "failed to generate public key from key (%T)", key) } enc, err = keyenc.NewRSAPKCSEncrypt(keyalg, &pubkey) if err != nil { return nil, errors.Wrap(err, "failed to create RSA PKCS encrypter") } case jwa.RSA_OAEP, jwa.RSA_OAEP_256: var pubkey rsa.PublicKey if err := keyconv.RSAPublicKey(&pubkey, key); err != nil { return nil, errors.Wrapf(err, "failed to generate public key from key (%T)", key) } enc, err = keyenc.NewRSAOAEPEncrypt(keyalg, &pubkey) if err != nil { return nil, errors.Wrap(err, "failed to create RSA OAEP encrypter") } case jwa.A128KW, jwa.A192KW, jwa.A256KW, jwa.A128GCMKW, jwa.A192GCMKW, jwa.A256GCMKW, jwa.PBES2_HS256_A128KW, jwa.PBES2_HS384_A192KW, jwa.PBES2_HS512_A256KW: sharedkey, ok := key.([]byte) if !ok { return nil, errors.New("invalid key: []byte required") } switch keyalg { case jwa.A128KW, jwa.A192KW, jwa.A256KW: enc, err = keyenc.NewAES(keyalg, sharedkey) case jwa.PBES2_HS256_A128KW, jwa.PBES2_HS384_A192KW, jwa.PBES2_HS512_A256KW: enc, err = keyenc.NewPBES2Encrypt(keyalg, sharedkey) default: enc, err = keyenc.NewAESGCMEncrypt(keyalg, sharedkey) } if err != nil { return nil, errors.Wrap(err, "failed to create key wrap encrypter") } // NOTE: there was formerly a restriction, introduced // in PR #26, which disallowed certain key/content // algorithm combinations. This seemed bogus, and // interop with the jose tool demonstrates it. case jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A256KW: var keysize int switch keyalg { case jwa.ECDH_ES: // https://tools.ietf.org/html/rfc7518#page-15 // In Direct Key Agreement mode, the output of the Concat KDF MUST be a // key of the same length as that used by the "enc" algorithm. keysize = contentcrypt.KeySize() case jwa.ECDH_ES_A128KW: keysize = 16 case jwa.ECDH_ES_A192KW: keysize = 24 case jwa.ECDH_ES_A256KW: keysize = 32 } switch key := key.(type) { case x25519.PublicKey: enc, err = keyenc.NewECDHESEncrypt(keyalg, contentalg, keysize, key) default: var pubkey ecdsa.PublicKey if err := keyconv.ECDSAPublicKey(&pubkey, key); err != nil { return nil, errors.Wrapf(err, "failed to generate public key from key (%T)", key) } enc, err = keyenc.NewECDHESEncrypt(keyalg, contentalg, keysize, &pubkey) } if err != nil { return nil, errors.Wrap(err, "failed to create ECDHS key wrap encrypter") } case jwa.DIRECT: sharedkey, ok := key.([]byte) if !ok { return nil, errors.New("invalid key: []byte required") } enc, _ = keyenc.NewNoop(keyalg, sharedkey) default: return nil, errors.Errorf(`invalid key encryption algorithm (%s)`, keyalg) } if keyID != "" { enc.SetKeyID(keyID) } keysize := contentcrypt.KeySize() encctx := getEncryptCtx() defer releaseEncryptCtx(encctx) encctx.protected = protected encctx.contentEncrypter = contentcrypt encctx.generator = keygen.NewRandom(keysize) encctx.keyEncrypters = []keyenc.Encrypter{enc} encctx.compress = compressalg msg, err := encctx.Encrypt(payload) if err != nil { return nil, errors.Wrap(err, "failed to encrypt payload") } return Compact(msg) } // DecryptCtx is used internally when jwe.Decrypt is called, and is // passed for hooks that you may pass into it. // // Regular users should not have to touch this object, but if you need advanced handling // of messages, you might have to use it. Only use it when you really // understand how JWE processing works in this library. type DecryptCtx interface { Algorithm() jwa.KeyEncryptionAlgorithm SetAlgorithm(jwa.KeyEncryptionAlgorithm) Key() interface{} SetKey(interface{}) Message() *Message SetMessage(*Message) } type decryptCtx struct { alg jwa.KeyEncryptionAlgorithm key interface{} msg *Message maxDecompressBufferSize int64 } func (ctx *decryptCtx) Algorithm() jwa.KeyEncryptionAlgorithm { return ctx.alg } func (ctx *decryptCtx) SetAlgorithm(v jwa.KeyEncryptionAlgorithm) { ctx.alg = v } func (ctx *decryptCtx) Key() interface{} { return ctx.key } func (ctx *decryptCtx) SetKey(v interface{}) { ctx.key = v } func (ctx *decryptCtx) Message() *Message { return ctx.msg } func (ctx *decryptCtx) SetMessage(m *Message) { ctx.msg = m } // Decrypt takes the key encryption algorithm and the corresponding // key to decrypt the JWE message, and returns the decrypted payload. // The JWE message can be either compact or full JSON format. // // `key` must be a private key. It can be either in its raw format (e.g. *rsa.PrivateKey) or a jwk.Key // // The decrypted payload must be smaller than the amount specified by the // `jwe.WithMaxDecompressBufferSize` setting, which defaults to 10MB. // // jwe.Decrypt(..., jwe.WithMaxDecompressBufferSize(250*1024)) func Decrypt(buf []byte, alg jwa.KeyEncryptionAlgorithm, key interface{}, options ...DecryptOption) ([]byte, error) { var ctx decryptCtx ctx.key = key ctx.alg = alg var dst *Message var postParse PostParser // in v1 the default value is hardcoded. Use v2 if you want to change this value globally var maxDecompressBufferSize int64 = 10 * 1024 * 1024 //nolint:forcetypeassert for _, option := range options { switch option.Ident() { case identMessage{}: dst = option.Value().(*Message) case identPostParser{}: postParse = option.Value().(PostParser) case identMaxDecompressBufferSize{}: maxDecompressBufferSize = option.Value().(int64) } } msg, err := parseJSONOrCompact(buf, true) if err != nil { return nil, errors.Wrap(err, "failed to parse buffer for Decrypt") } ctx.msg = msg if postParse != nil { if err := postParse.PostParse(&ctx); err != nil { return nil, errors.Wrap(err, `failed to execute PostParser hook`) } } ctx.maxDecompressBufferSize = maxDecompressBufferSize payload, err := doDecryptCtx(&ctx) if err != nil { return nil, errors.Wrap(err, `failed to decrypt message`) } if dst != nil { *dst = *msg dst.rawProtectedHeaders = nil dst.storeProtectedHeaders = false } return payload, nil } // Parse parses the JWE message into a Message object. The JWE message // can be either compact or full JSON format. func Parse(buf []byte) (*Message, error) { return parseJSONOrCompact(buf, false) } func parseJSONOrCompact(buf []byte, storeProtectedHeaders bool) (*Message, error) { buf = bytes.TrimSpace(buf) if len(buf) == 0 { return nil, errors.New("empty buffer") } if buf[0] == '{' { return parseJSON(buf, storeProtectedHeaders) } return parseCompact(buf, storeProtectedHeaders) } // ParseString is the same as Parse, but takes a string. func ParseString(s string) (*Message, error) { return Parse([]byte(s)) } // ParseReader is the same as Parse, but takes an io.Reader. func ParseReader(src io.Reader) (*Message, error) { buf, err := io.ReadAll(src) if err != nil { return nil, errors.Wrap(err, `failed to read from io.Reader`) } return Parse(buf) } func parseJSON(buf []byte, storeProtectedHeaders bool) (*Message, error) { m := NewMessage() m.storeProtectedHeaders = storeProtectedHeaders if err := json.Unmarshal(buf, &m); err != nil { return nil, errors.Wrap(err, "failed to parse JSON") } return m, nil } func parseCompact(buf []byte, storeProtectedHeaders bool) (*Message, error) { parts := bytes.Split(buf, []byte{'.'}) if len(parts) != 5 { return nil, errors.Errorf(`compact JWE format must have five parts (%d)`, len(parts)) } hdrbuf, err := base64.Decode(parts[0]) if err != nil { return nil, errors.Wrap(err, `failed to parse first part of compact form`) } protected := NewHeaders() if err := json.Unmarshal(hdrbuf, protected); err != nil { return nil, errors.Wrap(err, "failed to parse header JSON") } ivbuf, err := base64.Decode(parts[2]) if err != nil { return nil, errors.Wrap(err, "failed to base64 decode iv") } ctbuf, err := base64.Decode(parts[3]) if err != nil { return nil, errors.Wrap(err, "failed to base64 decode content") } tagbuf, err := base64.Decode(parts[4]) if err != nil { return nil, errors.Wrap(err, "failed to base64 decode tag") } m := NewMessage() if err := m.Set(CipherTextKey, ctbuf); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, CipherTextKey) } if err := m.Set(InitializationVectorKey, ivbuf); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, InitializationVectorKey) } if err := m.Set(ProtectedHeadersKey, protected); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, ProtectedHeadersKey) } if err := m.makeDummyRecipient(string(parts[1]), protected); err != nil { return nil, errors.Wrap(err, `failed to setup recipient`) } if err := m.Set(TagKey, tagbuf); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, TagKey) } if storeProtectedHeaders { // This is later used for decryption. m.rawProtectedHeaders = parts[0] } return m, nil } // RegisterCustomField allows users to specify that a private field // be decoded as an instance of the specified type. This option has // a global effect. // // For example, suppose you have a custom field `x-birthday`, which // you want to represent as a string formatted in RFC3339 in JSON, // but want it back as `time.Time`. // // In that case you would register a custom field as follows // // jwe.RegisterCustomField(`x-birthday`, timeT) // // Then `hdr.Get("x-birthday")` will still return an `interface{}`, // but you can convert its type to `time.Time` // // bdayif, _ := hdr.Get(`x-birthday`) // bday := bdayif.(time.Time) func RegisterCustomField(name string, object interface{}) { registry.Register(name, object) } golang-github-lestrrat-go-jwx-1.2.30/jwe/jwe_test.go000066400000000000000000000756741465311135100223560ustar00rootroot00000000000000package jwe_test import ( "crypto" "crypto/ecdsa" "crypto/elliptic" "crypto/rand" "crypto/rsa" "encoding/base64" "fmt" "os" "strings" "testing" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/x25519" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) const ( examplePayload = `The true sign of intelligence is not knowledge but imagination.` ) var rsaPrivKey rsa.PrivateKey func init() { var jwkstr = []byte(` {"kty":"RSA", "n":"oahUIoWw0K0usKNuOR6H4wkf4oBUXHTxRvgb48E-BVvxkeDNjbC4he8rUWcJoZmds2h7M70imEVhRU5djINXtqllXI4DFqcI1DgjT9LewND8MW2Krf3Spsk_ZkoFnilakGygTwpZ3uesH-PFABNIUYpOiN15dsQRkgr0vEhxN92i2asbOenSZeyaxziK72UwxrrKoExv6kc5twXTq4h-QChLOln0_mtUZwfsRaMStPs6mS6XrgxnxbWhojf663tuEQueGC-FCMfra36C9knDFGzKsNa7LZK2djYgyD3JR_MB_4NUJW_TqOQtwHYbxevoJArm-L5StowjzGy-_bq6Gw", "e":"AQAB", "d":"kLdtIj6GbDks_ApCSTYQtelcNttlKiOyPzMrXHeI-yk1F7-kpDxY4-WY5NWV5KntaEeXS1j82E375xxhWMHXyvjYecPT9fpwR_M9gV8n9Hrh2anTpTD93Dt62ypW3yDsJzBnTnrYu1iwWRgBKrEYY46qAZIrA2xAwnm2X7uGR1hghkqDp0Vqj3kbSCz1XyfCs6_LehBwtxHIyh8Ripy40p24moOAbgxVw3rxT_vlt3UVe4WO3JkJOzlpUf-KTVI2Ptgm-dARxTEtE-id-4OJr0h-K-VFs3VSndVTIznSxfyrj8ILL6MG_Uv8YAu7VILSB3lOW085-4qE3DzgrTjgyQ", "p":"1r52Xk46c-LsfB5P442p7atdPUrxQSy4mti_tZI3Mgf2EuFVbUoDBvaRQ-SWxkbkmoEzL7JXroSBjSrK3YIQgYdMgyAEPTPjXv_hI2_1eTSPVZfzL0lffNn03IXqWF5MDFuoUYE0hzb2vhrlN_rKrbfDIwUbTrjjgieRbwC6Cl0", "q":"wLb35x7hmQWZsWJmB_vle87ihgZ19S8lBEROLIsZG4ayZVe9Hi9gDVCOBmUDdaDYVTSNx_8Fyw1YYa9XGrGnDew00J28cRUoeBB_jKI1oma0Orv1T9aXIWxKwd4gvxFImOWr3QRL9KEBRzk2RatUBnmDZJTIAfwTs0g68UZHvtc", "dp":"ZK-YwE7diUh0qR1tR7w8WHtolDx3MZ_OTowiFvgfeQ3SiresXjm9gZ5KLhMXvo-uz-KUJWDxS5pFQ_M0evdo1dKiRTjVw_x4NyqyXPM5nULPkcpU827rnpZzAJKpdhWAgqrXGKAECQH0Xt4taznjnd_zVpAmZZq60WPMBMfKcuE", "dq":"Dq0gfgJ1DdFGXiLvQEZnuKEN0UUmsJBxkjydc3j4ZYdBiMRAy86x0vHCjywcMlYYg4yoC4YZa9hNVcsjqA3FeiL19rk8g6Qn29Tt0cj8qqyFpz9vNDBUfCAiJVeESOjJDZPYHdHY8v1b-o-Z2X5tvLx-TCekf7oxyeKDUqKWjis", "qi":"VIMpMYbPf47dT1w_zDUXfPimsSegnMOA1zTaX7aGk_8urY6R8-ZW1FxU7AlWAyLWybqq6t16VFd7hQd0y6flUK4SlOydB61gwanOsXGOAOv82cHq0E3eL4HrtZkUuKvnPrMnsUUFlfUdybVzxyjz9JF_XyaY14ardLSjf4L_FNY" }`) privkey := jwk.NewRSAPrivateKey() if err := json.Unmarshal(jwkstr, privkey); err != nil { panic(err) } if err := privkey.Raw(&rsaPrivKey); err != nil { panic(err) } } func TestSanityCheck_JWEExamplePayload(t *testing.T) { expected := []byte{ 84, 104, 101, 32, 116, 114, 117, 101, 32, 115, 105, 103, 110, 32, 111, 102, 32, 105, 110, 116, 101, 108, 108, 105, 103, 101, 110, 99, 101, 32, 105, 115, 32, 110, 111, 116, 32, 107, 110, 111, 119, 108, 101, 100, 103, 101, 32, 98, 117, 116, 32, 105, 109, 97, 103, 105, 110, 97, 116, 105, 111, 110, 46, } assert.Equal(t, expected, []byte(examplePayload), "examplePayload OK") } func TestParse(t *testing.T) { const s = `eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ` t.Run("Compact format", func(t *testing.T) { t.Run("Normal", func(t *testing.T) { msg, err := jwe.Parse([]byte(s)) if !assert.NoError(t, err, "Parsing JWE is successful") { return } if !assert.Len(t, msg.Recipients(), 1, "There is exactly 1 recipient") { return } }) parts := strings.Split(s, ".") t.Run("Missing parts", func(t *testing.T) { s2 := strings.Join(parts[:4], ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with missing parts`) { return } }) t.Run("Invalid header", func(t *testing.T) { s2 := strings.Join(append(append([]string(nil), "!!invalidheader!!"), parts[1:]...), ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with invalid header`) { return } }) t.Run("Invalid encrypted key", func(t *testing.T) { s2 := strings.Join(append(append(append([]string(nil), parts[0]), "!!invalidenckey!!"), parts[2:]...), ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with invalid encrypted key`) { return } }) t.Run("Invalid initialization vector", func(t *testing.T) { s2 := strings.Join(append(append(append([]string(nil), parts[:2]...), "!!invalidiv!!"), parts[3:]...), ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with invalid initialization vector`) { return } }) t.Run("Invalid content", func(t *testing.T) { s2 := strings.Join(append(append(append([]string(nil), parts[:3]...), "!!invalidcontent!!"), parts[4:]...), ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with invalid content`) { return } }) t.Run("Invalid tag", func(t *testing.T) { s2 := strings.Join(append(parts[:4], "!!invalidtag!!"), ".") _, err := jwe.Parse([]byte(s2)) if !assert.Error(t, err, `should fail to parse compact format with invalid tag`) { return } }) }) t.Run("JSON format", func(t *testing.T) { msg, err := jwe.Parse([]byte(s)) if !assert.NoError(t, err, "Parsing JWE is successful") { return } buf, err := jwe.JSON(msg) if !assert.NoError(t, err, "Serializing to JSON format should succeed") { return } msg2, err := jwe.Parse(buf) if !assert.NoError(t, err, "Parsing JWE in JSON format should succeed") { return } if !assert.Equal(t, msg, msg2, "messages should match") { return } }) } // This test parses the example found in https://tools.ietf.org/html/rfc7516#appendix-A.1, // and checks if we can roundtrip to the same compact serialization format. func TestParse_RSAES_OAEP_AES_GCM(t *testing.T) { const payload = `The true sign of intelligence is not knowledge but imagination.` const serialized = `eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ` var jwkstr = []byte(` {"kty":"RSA", "n":"oahUIoWw0K0usKNuOR6H4wkf4oBUXHTxRvgb48E-BVvxkeDNjbC4he8rUWcJoZmds2h7M70imEVhRU5djINXtqllXI4DFqcI1DgjT9LewND8MW2Krf3Spsk_ZkoFnilakGygTwpZ3uesH-PFABNIUYpOiN15dsQRkgr0vEhxN92i2asbOenSZeyaxziK72UwxrrKoExv6kc5twXTq4h-QChLOln0_mtUZwfsRaMStPs6mS6XrgxnxbWhojf663tuEQueGC-FCMfra36C9knDFGzKsNa7LZK2djYgyD3JR_MB_4NUJW_TqOQtwHYbxevoJArm-L5StowjzGy-_bq6Gw", "e":"AQAB", "d":"kLdtIj6GbDks_ApCSTYQtelcNttlKiOyPzMrXHeI-yk1F7-kpDxY4-WY5NWV5KntaEeXS1j82E375xxhWMHXyvjYecPT9fpwR_M9gV8n9Hrh2anTpTD93Dt62ypW3yDsJzBnTnrYu1iwWRgBKrEYY46qAZIrA2xAwnm2X7uGR1hghkqDp0Vqj3kbSCz1XyfCs6_LehBwtxHIyh8Ripy40p24moOAbgxVw3rxT_vlt3UVe4WO3JkJOzlpUf-KTVI2Ptgm-dARxTEtE-id-4OJr0h-K-VFs3VSndVTIznSxfyrj8ILL6MG_Uv8YAu7VILSB3lOW085-4qE3DzgrTjgyQ", "p":"1r52Xk46c-LsfB5P442p7atdPUrxQSy4mti_tZI3Mgf2EuFVbUoDBvaRQ-SWxkbkmoEzL7JXroSBjSrK3YIQgYdMgyAEPTPjXv_hI2_1eTSPVZfzL0lffNn03IXqWF5MDFuoUYE0hzb2vhrlN_rKrbfDIwUbTrjjgieRbwC6Cl0", "q":"wLb35x7hmQWZsWJmB_vle87ihgZ19S8lBEROLIsZG4ayZVe9Hi9gDVCOBmUDdaDYVTSNx_8Fyw1YYa9XGrGnDew00J28cRUoeBB_jKI1oma0Orv1T9aXIWxKwd4gvxFImOWr3QRL9KEBRzk2RatUBnmDZJTIAfwTs0g68UZHvtc", "dp":"ZK-YwE7diUh0qR1tR7w8WHtolDx3MZ_OTowiFvgfeQ3SiresXjm9gZ5KLhMXvo-uz-KUJWDxS5pFQ_M0evdo1dKiRTjVw_x4NyqyXPM5nULPkcpU827rnpZzAJKpdhWAgqrXGKAECQH0Xt4taznjnd_zVpAmZZq60WPMBMfKcuE", "dq":"Dq0gfgJ1DdFGXiLvQEZnuKEN0UUmsJBxkjydc3j4ZYdBiMRAy86x0vHCjywcMlYYg4yoC4YZa9hNVcsjqA3FeiL19rk8g6Qn29Tt0cj8qqyFpz9vNDBUfCAiJVeESOjJDZPYHdHY8v1b-o-Z2X5tvLx-TCekf7oxyeKDUqKWjis", "qi":"VIMpMYbPf47dT1w_zDUXfPimsSegnMOA1zTaX7aGk_8urY6R8-ZW1FxU7AlWAyLWybqq6t16VFd7hQd0y6flUK4SlOydB61gwanOsXGOAOv82cHq0E3eL4HrtZkUuKvnPrMnsUUFlfUdybVzxyjz9JF_XyaY14ardLSjf4L_FNY" }`) privkey := jwk.NewRSAPrivateKey() if !assert.NoError(t, json.Unmarshal(jwkstr, privkey), `parsing jwk should succeed`) { return } var rawkey rsa.PrivateKey if !assert.NoError(t, privkey.Raw(&rawkey), `obtaining raw key should succeed`) { return } msg, err := jwe.ParseString(serialized) if !assert.NoError(t, err, "parse successful") { return } { buf, _ := json.MarshalIndent(msg, "", " ") t.Logf("%s", buf) } if !assert.Equal(t, 1, len(msg.Recipients()), "message recipients header length is 1") { return } plaintext, err := msg.Decrypt(jwa.RSA_OAEP, rawkey) if !assert.NoError(t, err, "Decrypt message succeeded") { return } if !assert.Equal(t, payload, string(plaintext), "decrypted value does not match") { return } serializers := []struct { Name string Func func(*jwe.Message) ([]byte, error) Expected string }{ { Name: "Compact", Func: func(m *jwe.Message) ([]byte, error) { return jwe.Compact(m) }, Expected: serialized, }, { Name: "JSON", Func: func(m *jwe.Message) ([]byte, error) { return jwe.JSON(m) }, Expected: `{"ciphertext":"5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A","iv":"48V1_ALb6US04U3b","protected":"eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ","header":{"alg":"RSA-OAEP"},"encrypted_key":"OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg","tag":"XFBoMYUZodetZdvTiFvSkQ"}`, }, { Name: "JSON (Pretty)", Func: func(m *jwe.Message) ([]byte, error) { return jwe.JSON(m, jwe.WithPrettyFormat(true)) }, Expected: `{ "ciphertext": "5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A", "iv": "48V1_ALb6US04U3b", "protected": "eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ", "header": { "alg": "RSA-OAEP" }, "encrypted_key": "OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg", "tag": "XFBoMYUZodetZdvTiFvSkQ" }`, }, } for _, serializer := range serializers { serializer := serializer for _, compression := range []jwa.CompressionAlgorithm{jwa.NoCompress, jwa.Deflate} { compression := compression compName := compression.String() if compName == "" { compName = "none" } t.Run(serializer.Name+" (compression="+compName+")", func(t *testing.T) { jsonbuf, err := serializer.Func(msg) if !assert.NoError(t, err, "serialize succeeded") { return } if !assert.Equal(t, serializer.Expected, string(jsonbuf), "serialize result matches") { jsonbuf, _ = jwe.JSON(msg, jwe.WithPrettyFormat(true)) t.Logf("%s", jsonbuf) return } encrypted, err := jwe.Encrypt(plaintext, jwa.RSA_OAEP, rawkey.PublicKey, jwa.A256GCM, compression) if !assert.NoError(t, err, "jwe.Encrypt should succeed") { return } plaintext, err = jwe.Decrypt(encrypted, jwa.RSA_OAEP, rawkey) if !assert.NoError(t, err, "jwe.Decrypt should succeed") { return } if !assert.Equal(t, payload, string(plaintext), "jwe.Decrypt should produce the same plaintext") { return } }) } } // Test direct marshaling and unmarshaling t.Run("Marshal/Unmarshal", func(t *testing.T) { buf, err := json.Marshal(msg) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } m2 := jwe.NewMessage() if !assert.NoError(t, json.Unmarshal(buf, m2), `json.Unmarshal should succeed`) { t.Logf("%s", buf) return } if !assert.Equal(t, msg, m2, `messages should be the same after roundtrip`) { return } }) } // https://tools.ietf.org/html/rfc7516#appendix-A.1. func TestRoundtrip_RSAES_OAEP_AES_GCM(t *testing.T) { var plaintext = []byte{ 84, 104, 101, 32, 116, 114, 117, 101, 32, 115, 105, 103, 110, 32, 111, 102, 32, 105, 110, 116, 101, 108, 108, 105, 103, 101, 110, 99, 101, 32, 105, 115, 32, 110, 111, 116, 32, 107, 110, 111, 119, 108, 101, 100, 103, 101, 32, 98, 117, 116, 32, 105, 109, 97, 103, 105, 110, 97, 116, 105, 111, 110, 46, } max := 100 if testing.Short() { max = 1 } for i := 0; i < max; i++ { encrypted, err := jwe.Encrypt(plaintext, jwa.RSA_OAEP, &rsaPrivKey.PublicKey, jwa.A256GCM, jwa.NoCompress) if !assert.NoError(t, err, "Encrypt should succeed") { return } decrypted, err := jwe.Decrypt(encrypted, jwa.RSA_OAEP, rsaPrivKey) if !assert.NoError(t, err, "Decrypt should succeed") { return } if !assert.Equal(t, plaintext, decrypted, "Decrypted content should match") { return } } } func TestRoundtrip_RSA1_5_A128CBC_HS256(t *testing.T) { var plaintext = []byte{ 76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, 112, 114, 111, 115, 112, 101, 114, 46, } max := 100 if testing.Short() { max = 1 } for i := 0; i < max; i++ { encrypted, err := jwe.Encrypt(plaintext, jwa.RSA1_5, &rsaPrivKey.PublicKey, jwa.A128CBC_HS256, jwa.NoCompress) if !assert.NoError(t, err, "Encrypt is successful") { return } decrypted, err := jwe.Decrypt(encrypted, jwa.RSA1_5, rsaPrivKey) if !assert.NoError(t, err, "Decrypt successful") { return } if !assert.Equal(t, plaintext, decrypted, "Decrypted correct plaintext") { return } } } // https://tools.ietf.org/html/rfc7516#appendix-A.3. Note that cek is dynamically // generated, so the encrypted values will NOT match that of the RFC. func TestEncode_A128KW_A128CBC_HS256(t *testing.T) { var plaintext = []byte{ 76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, 112, 114, 111, 115, 112, 101, 114, 46, } var sharedkey = []byte{ 25, 172, 32, 130, 225, 114, 26, 181, 138, 106, 254, 192, 95, 133, 74, 82, } max := 100 if testing.Short() { max = 1 } for i := 0; i < max; i++ { encrypted, err := jwe.Encrypt(plaintext, jwa.A128KW, sharedkey, jwa.A128CBC_HS256, jwa.NoCompress) if !assert.NoError(t, err, "Encrypt is successful") { return } decrypted, err := jwe.Decrypt(encrypted, jwa.A128KW, sharedkey) if !assert.NoError(t, err, "Decrypt successful") { return } if !assert.Equal(t, plaintext, decrypted, "Decrypted correct plaintext") { return } } } //nolint:thelper func testEncodeECDHWithKey(t *testing.T, privkey interface{}, pubkey interface{}) { plaintext := []byte("Lorem ipsum") algorithms := []jwa.KeyEncryptionAlgorithm{ jwa.ECDH_ES, jwa.ECDH_ES_A256KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A128KW, } for _, alg := range algorithms { alg := alg t.Run(alg.String(), func(t *testing.T) { encrypted, err := jwe.Encrypt(plaintext, alg, pubkey, jwa.A256GCM, jwa.NoCompress) if !assert.NoError(t, err, "Encrypt succeeds") { return } t.Logf("encrypted = %s", encrypted) msg, err := jwe.Parse(encrypted) if !assert.NoError(t, err, `jwe.Parse should succeed`) { return } { buf, _ := json.MarshalIndent(msg, "", " ") t.Logf("%s", buf) } { buf, _ := json.MarshalIndent(msg.ProtectedHeaders(), "", " ") t.Logf("%s", buf) } decrypted, err := jwe.Decrypt(encrypted, alg, privkey) if !assert.NoError(t, err, "Decrypt succeeds") { return } t.Logf("%s", decrypted) }) } } func TestEncode_ECDH(t *testing.T) { curves := []elliptic.Curve{ elliptic.P256(), elliptic.P384(), elliptic.P521(), } for _, crv := range curves { crv := crv t.Run(crv.Params().Name, func(t *testing.T) { privkey, err := ecdsa.GenerateKey(crv, rand.Reader) if !assert.NoError(t, err, `ecdsa.GenerateKey should succeed`) { return } testEncodeECDHWithKey(t, privkey, &privkey.PublicKey) }) } } func TestEncode_X25519(t *testing.T) { pubkey, privkey, err := x25519.GenerateKey(rand.Reader) if !assert.NoError(t, err, `x25519.GenerateKey should succeed`) { return } testEncodeECDHWithKey(t, privkey, pubkey) } func Test_GHIssue207(t *testing.T) { const plaintext = "hi\n" var testcases = []struct { Algorithm jwa.KeyEncryptionAlgorithm Key string Data string Thumbprint string Name string }{ { Name: `ECDH-ES`, Key: `{"alg":"ECDH-ES","crv":"P-521","d":"ARxUkIjnB7pjFzM2OIIFcclR-4qbZwv7DoC96cksPKyvVWOkEsZ0CK6deM4AC6G5GClR5TXWMQVC_bNDmfuwPPqF","key_ops":["wrapKey","unwrapKey"],"kty":"EC","x":"ACewmG5j0POUDQw3rIqFQozK_6yXUsfNjiZtWqQOU7MXsSKK9RsRS8ySmeTG14heUpbbnrC9VdYKSOUGkYnYUl2Y","y":"ACkXSOma_FP93R3u5uYX7gUOlM0LDkNsij9dVFPbafF8hlfYEnUGit2o-tt7W0Zq3t38jEhpjUoGgM04JDJ6_m0x"}`, Data: `{"ciphertext":"sp0cLt4Rx1p0Ax0Q1OZj7w","header":{"alg":"ECDH-ES","epk":{"crv":"P-521","kty":"EC","x":"APMKQpje5vu39-eS_LX_g15stqbNZ37GgYimW8PZf7d_OOuAygK2YlINYnPoUybrxkoaLRPhbmxc9MBWFdaY8SXx","y":"AMpq4DFi6w-pfnprO58CkfX-ncXtJ8fvox2Ej8Ey3ZY1xjVUtbDJCDCjY53snYaNCEjnFQPAn-IkAG90p2Xcm8ut"}},"iv":"Fjnb5uUWp9euqp1MK_hT4A","protected":"eyJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0","tag":"6nhiy-vyqwVjpy08jrorTpWqvam66HdKxU36XsE3Z3s"}`, Thumbprint: `0_6x6e2sZKeq3ka0QV0PEkJagqg`, }, { Name: `ECDH-ES+A256KW`, Key: `{"alg":"ECDH-ES+A256KW","crv":"P-521","d":"AcH8h_ctsMnopTiCH7wiuM-nAb1CNikC0ubcOZQDLYSVEw93h6_D57aD7DLWbjIsVNzn7Qq8P-kRiTYVoH5GTQVg","key_ops":["wrapKey","unwrapKey"],"kty":"EC","x":"AAQoEbNeiG3ExYj9bJLGFn4h_bFjERfIcmpQMW5KWlFhqcXTFg0g8-5YWjdJXdNmO_2EuaKe7zOvEq8dCFCb12-R","y":"Ad8E2jp6FSCSd8laERqIt67A2T-MIqQE5301jNYb5SMsCSV1rs1McyvhzHaclYcqTUptoA-rW5kNS9N5124XPHky"}`, Data: `{"ciphertext":"evXmzoQ5TWQvEXdpv9ZCBQ","encrypted_key":"ceVsjF-0LhziK75oHRC-C539hlFJMSbub015a3YtIBgCt7c0IRzkzwoOvo_Jf44FXZi0Vd-4fvDjRkZDzx9DcuDd4ASYDLvW","header":{"alg":"ECDH-ES+A256KW","epk":{"crv":"P-521","kty":"EC","x":"Aad7PFl9cct7WcfM3b_LNkhCHfCotW_nRuarX7GACDyyZkr2dd1g6r3rz-8r2-AyOGD9gc2nhrTEjVHT2W7eu65U","y":"Ab0Mj6BK8g3Fok6oyFlkvKOyquEVxeeJOlsyXKYBputPxFT5Gljr2FoJdViAxVspoSiw1K5oG1h59UBJgPWG4GQV"}},"iv":"KsJgq2xyzE1dZi2BM2xf5g","protected":"eyJlbmMiOiJBMjU2Q0JDLUhTNTEyIn0","tag":"b6m_nW9vfk6xJugm_-Uuj4cbAQh9ECelLc1ZBfO86L0"}`, Thumbprint: `G4OtKQL_qr9Q57atNOU6SJnJxB8`, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { webKey, err := jwk.ParseKey([]byte(tc.Key)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } thumbprint, err := webKey.Thumbprint(crypto.SHA1) if !assert.NoError(t, err, `jwk.Thumbprint should succeed`) { return } if !assert.Equal(t, base64.RawURLEncoding.EncodeToString(thumbprint), tc.Thumbprint, `thumbprints should match`) { return } var key ecdsa.PrivateKey if !assert.NoError(t, webKey.Raw(&key), `jwk.Raw should succeed`) { return } msg, err := jwe.ParseString(tc.Data) if !assert.NoError(t, err, `jwe.ParseString should succeed`) { return } { buf, _ := json.MarshalIndent(msg, "", " ") t.Logf("%s", buf) } decrypted, err := msg.Decrypt(((msg.Recipients())[0]).Headers().Algorithm(), &key) if !assert.NoError(t, err, `jwe.Decrypt should succeed`) { return } if !assert.Equal(t, string(decrypted), plaintext, `plaintext should match`) { return } }) } } // tests direct key encryption by encrypting-decrypting a plaintext func TestEncode_Direct(t *testing.T) { var testcases = []struct { Algorithm jwa.ContentEncryptionAlgorithm KeySize int // in bytes }{ {jwa.A128CBC_HS256, 32}, {jwa.A128GCM, 16}, {jwa.A192CBC_HS384, 48}, {jwa.A192GCM, 24}, {jwa.A256CBC_HS512, 64}, {jwa.A256GCM, 32}, } plaintext := []byte("Lorem ipsum") for _, tc := range testcases { tc := tc t.Run(tc.Algorithm.String(), func(t *testing.T) { key := make([]byte, tc.KeySize) _, err := rand.Read(key) if !assert.NoError(t, err, "Key generation succeeds") { return } encrypted, err := jwe.Encrypt(plaintext, jwa.DIRECT, key, tc.Algorithm, jwa.NoCompress) if !assert.NoError(t, err, "Encrypt succeeds") { return } decrypted, err := jwe.Decrypt(encrypted, jwa.DIRECT, key) if !assert.NoError(t, err, `jwe.Decrypt should succeed`) { return } assert.Equal(t, plaintext, decrypted, `jwe.Decrypt should match input plaintext`) }) } } // Decrypts messages generated by `jose` tool. It helps check compatibility with other jwx implementations. func TestDecodePredefined_Direct(t *testing.T) { var testcases = []struct { Algorithm jwa.ContentEncryptionAlgorithm Key string // generated with 'jose jwk gen -i '{"alg":"A128GCM"}' -o key.jwk' Thumbprint string // generated with 'jose jwk thp -i key.jwk` Data string // generated with 'jose jwe enc -I msg.txt -k key.jwk -o msg.jwe' }{ { jwa.A128CBC_HS256, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, { jwa.A128GCM, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, { jwa.A192CBC_HS384, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, { jwa.A192GCM, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, { jwa.A256CBC_HS512, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, { jwa.A256GCM, `{"alg":"A128GCM","k":"9hexZKVSV9pZhPNzgXiD8g","key_ops":["encrypt","decrypt"],"kty":"oct"}`, `RwW22IemrIJLFwlqZ-OQUe_Lnbo`, `{"ciphertext":"FX_px9cuyO_hZfo","encrypted_key":"","header":{"alg":"dir"},"iv":"Z9CRJCFPtpEI5Pwq","protected":"eyJlbmMiOiJBMTI4R0NNIn0","tag":"1iq0MNDX40XVtqGYinhUtQ"}`, }, } plaintext := "Lorem ipsum" for _, tc := range testcases { tc := tc t.Run(tc.Algorithm.String(), func(t *testing.T) { webKey, err := jwk.ParseKey([]byte(tc.Key)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } thumbprint, err := webKey.Thumbprint(crypto.SHA1) if !assert.NoError(t, err, `jwk.Thumbprint should succeed`) { return } if !assert.Equal(t, base64.RawURLEncoding.EncodeToString(thumbprint), tc.Thumbprint, `thumbprints should match`) { return } var key []byte if !assert.NoError(t, webKey.Raw(&key), `jwk.Raw should succeed`) { return } msg, err := jwe.ParseString(tc.Data) if !assert.NoError(t, err, `jwe.ParseString should succeed`) { return } { buf, _ := json.MarshalIndent(msg, "", " ") t.Logf("%s", buf) } decrypted, err := msg.Decrypt(jwa.DIRECT, key) if !assert.NoError(t, err, `jwe.Decrypt should succeed`) { return } if !assert.Equal(t, plaintext, string(decrypted), `plaintext should match`) { return } }) } } func TestGHIssue230(t *testing.T) { t.Parallel() const data = `{"ciphertext":"wko","encrypted_key":"","iv":"y-wj7nfa-T8XG58z","protected":"eyJhbGciOiJkaXIiLCJjbGV2aXMiOnsicGluIjoidHBtMiIsInRwbTIiOnsiaGFzaCI6InNoYTI1NiIsImp3a19wcml2IjoiQU80QUlCSTFRYjQ2SHZXUmNSRHVxRXdoN2ZWc3hSNE91MVhsOHBRX2hMMTlPeUc3QUJDVG80S2RqWEZYcEFUOWtLeWptVVJPOTVBaXc4U1o4MGZXRmtDMGdEazJLTXEtamJTZU1wcFZFaFJaWEpxQmhWNXVGZ1V0T0J4eUFjRzFZRjhFMW5Ob1dPWk9Eek5EUkRrOE1ZVWZrWVNpS0ZKb2pPZ0UxSjRIZkRoM0lBelY2MFR6V2NWcXJ0QnlwX2EyZ1V2a0JqcGpTeVF2Nmc2amJMSXpEaG10VnZLMmxDazhlMjUzdG1MSDNPQWk0Q0tZcWFZY0tjTTltSTdTRXBpVldlSjZZVFBEdmtORndpa0tNRjE3czVYQUlFUjZpczNNTVBpNkZTOWQ3ZmdMV25hUkpabDVNNUJDMldxN2NsVmYiLCJqd2tfcHViIjoiQUM0QUNBQUxBQUFFMGdBQUFCQUFJREpTSVhRSVVocjVPaDVkNXZWaWVGUDBmZG9pVFd3S1RicXJRRVRhVmx4QyIsImtleSI6ImVjYyJ9fSwiZW5jIjoiQTI1NkdDTSJ9","tag":"lir7v9YbCCZQKf5-yJ0BTQ"}` msg, err := jwe.Parse([]byte(data)) if !assert.NoError(t, err, `jwe.Parse should succeed`) { return } compact, err := jwe.Compact(msg) if !assert.NoError(t, err, `jwe.Compact should succeed`) { return } msg2, err := jwe.Parse(compact) if !assert.NoError(t, err, `jwe.Parse should succeed`) { return } if !assert.Equal(t, msg, msg2, `data -> msg -> compact -> msg2 produces msg == msg2`) { t.Logf("msg -> %#v", msg) t.Logf("msg2 -> %#v", msg2) return } } func TestReadFile(t *testing.T) { const s = `eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ` t.Parallel() f, err := os.CreateTemp("", "test-read-file-*.jwe") if !assert.NoError(t, err, `os.CreateTemp should succeed`) { return } defer f.Close() fmt.Fprintf(f, "%s", s) if _, err := jwe.ReadFile(f.Name()); !assert.NoError(t, err, `jwe.ReadFile should succeed`) { return } } func TestCustomField(t *testing.T) { // XXX has global effect!!! jwe.RegisterCustomField(`x-birthday`, time.Time{}) defer jwe.RegisterCustomField(`x-birthday`, nil) expected := time.Date(2015, 11, 4, 5, 12, 52, 0, time.UTC) bdaybytes, _ := expected.MarshalText() // RFC3339 plaintext := []byte("Hello, World!") rsakey, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk() should succeed`) { return } pubkey, err := jwk.PublicKeyOf(rsakey) if !assert.NoError(t, err, `jwk.PublicKeyOf() should succeed`) { return } protected := jwe.NewHeaders() protected.Set(`x-birthday`, string(bdaybytes)) encrypted, err := jwe.Encrypt(plaintext, jwa.RSA_OAEP, pubkey, jwa.A256GCM, jwa.NoCompress, jwe.WithProtectedHeaders(protected)) if !assert.NoError(t, err, `jwe.Encrypt should succeed`) { return } t.Run("jwe.Parse + json.Unmarshal", func(t *testing.T) { msg, err := jwe.Parse(encrypted) if !assert.NoError(t, err, `jwe.Parse should succeed`) { return } v, ok := msg.ProtectedHeaders().Get(`x-birthday`) if !assert.True(t, ok, `msg.ProtectedHeaders().Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } // Create JSON from jwe.Message buf, err := json.Marshal(msg) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } var msg2 jwe.Message if !assert.NoError(t, json.Unmarshal(buf, &msg2), `json.Unmarshal should succeed`) { return } v, ok = msg2.ProtectedHeaders().Get(`x-birthday`) if !assert.True(t, ok, `msg2.ProtectedHeaders().Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) } func TestGH554(t *testing.T) { const keyID = `very-secret-key` const plaintext = `hello world!` privkey, err := jwxtest.GenerateEcdsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateEcdsaJwk() should succeed`) { return } _ = privkey.Set(jwk.KeyIDKey, keyID) pubkey, err := jwk.PublicKeyOf(privkey) if !assert.NoError(t, err, `jwk.PublicKeyOf() should succeed`) { return } if !assert.Equal(t, keyID, pubkey.KeyID(), `key ID should match`) { return } encrypted, err := jwe.Encrypt([]byte(plaintext), jwa.ECDH_ES, pubkey, jwa.A256GCM, jwa.NoCompress) if !assert.NoError(t, err, `jwk.Encrypt() should succeed`) { return } msg, err := jwe.Parse(encrypted) if !assert.NoError(t, err, `jwe.Parse() should succeed`) { return } { buf, _ := json.MarshalIndent(msg, "", " ") t.Logf("%s", buf) } recipients := msg.Recipients() // The epk must have the same key ID as the original kid := recipients[0].Headers().KeyID() if !assert.Equal(t, keyID, kid, `key ID in epk should match`) { return } } func TestMaxDecompressBufferSize(t *testing.T) { // This payload size is intentionally set to a small value to avoid // causing problems for regular users and CI/CD systems. If you wish to // verify that root issue is fixed, you may want to try increasing the // payload size to a larger value. const payloadSize = 1 << 16 privkey, err := rsa.GenerateKey(rand.Reader, 2048) require.NoError(t, err, `rsa.GenerateKey should succeed`) pubkey := &privkey.PublicKey wrongPrivkey, err := rsa.GenerateKey(rand.Reader, 2048) require.NoError(t, err, `rsa.GenerateKey should succeed`) wrongPubkey := &wrongPrivkey.PublicKey payload := strings.Repeat("x", payloadSize) testcases := []struct { Name string MaxSize int64 PublicKey *rsa.PublicKey Error bool }{ // This should work, because we set the MaxSize to be large (==payload size) { Name: "same as payload size", MaxSize: payloadSize, PublicKey: pubkey, }, // This should fail, because we set the GlobalMaxSize to be smaller than the payload size { Name: "smaller than payload size", MaxSize: payloadSize - 1, PublicKey: pubkey, Error: true, }, // This should fail, because the public key does not match the // private key used to decrypt the payload. In essence this way // we do NOT trigger the root cause of this issue, but we bail out early { Name: "Wrong PublicKey", PublicKey: wrongPubkey, MaxSize: payloadSize, Error: true, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { encrypted, err := jwe.Encrypt([]byte(payload), jwa.RSA_OAEP, tc.PublicKey, "A128CBC-HS256", jwa.Deflate) require.NoError(t, err, `jwe.Encrypt should succeed`) _, err = jwe.Decrypt(encrypted, jwa.RSA_OAEP, privkey, jwe.WithMaxDecompressBufferSize(tc.MaxSize)) if tc.Error { require.Error(t, err, `jwe.Decrypt should fail`) } else { require.NoError(t, err, `jwe.Decrypt should succeed`) } }) } } golang-github-lestrrat-go-jwx-1.2.30/jwe/lowlevel_test.go000066400000000000000000000073251465311135100234060ustar00rootroot00000000000000package jwe import ( "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe/internal/cipher" "github.com/lestrrat-go/jwx/jwe/internal/keyenc" "github.com/lestrrat-go/jwx/jwe/internal/keygen" "github.com/stretchr/testify/assert" ) // This test uses Appendix 3 to verify some low level tools for // KeyWrap and CBC HMAC encryption. // This test uses a static cek so that we can validate the results // against the contents in the above Appendix func TestLowLevelParts_A128KW_A128CBCHS256(t *testing.T) { var plaintext = []byte{ 76, 105, 118, 101, 32, 108, 111, 110, 103, 32, 97, 110, 100, 32, 112, 114, 111, 115, 112, 101, 114, 46, } var cek = []byte{ 4, 211, 31, 197, 84, 157, 252, 254, 11, 100, 157, 250, 63, 170, 106, 206, 107, 124, 212, 45, 111, 107, 9, 219, 200, 177, 0, 240, 143, 156, 44, 207, } var iv = []byte{ 3, 22, 60, 12, 43, 67, 104, 105, 108, 108, 105, 99, 111, 116, 104, 101, } var sharedkey = []byte{ 25, 172, 32, 130, 225, 114, 26, 181, 138, 106, 254, 192, 95, 133, 74, 82, } var encsharedkey = []byte{ 232, 160, 123, 211, 183, 76, 245, 132, 200, 128, 123, 75, 190, 216, 22, 67, 201, 138, 193, 186, 9, 91, 122, 31, 246, 90, 28, 139, 57, 3, 76, 124, 193, 11, 98, 37, 173, 61, 104, 57, } var aad = []byte{ 101, 121, 74, 104, 98, 71, 99, 105, 79, 105, 74, 66, 77, 84, 73, 52, 83, 49, 99, 105, 76, 67, 74, 108, 98, 109, 77, 105, 79, 105, 74, 66, 77, 84, 73, 52, 81, 48, 74, 68, 76, 85, 104, 84, 77, 106, 85, 50, 73, 110, 48, } var ciphertext = []byte{ 40, 57, 83, 181, 119, 33, 133, 148, 198, 185, 243, 24, 152, 230, 6, 75, 129, 223, 127, 19, 210, 82, 183, 230, 168, 33, 215, 104, 143, 112, 56, 102, } var authtag = []byte{ 83, 73, 191, 98, 104, 205, 211, 128, 201, 189, 199, 133, 32, 38, 194, 85, } const compactExpected = `eyJhbGciOiJBMTI4S1ciLCJlbmMiOiJBMTI4Q0JDLUhTMjU2In0.6KB707dM9YTIgHtLvtgWQ8mKwboJW3of9locizkDTHzBC2IlrT1oOQ.AxY8DCtDaGlsbGljb3RoZQ.KDlTtXchhZTGufMYmOYGS4HffxPSUrfmqCHXaI9wOGY.U0m_YmjN04DJvceFICbCVQ` k, err := keyenc.NewAES(jwa.A128KW, sharedkey) if !assert.NoError(t, err, "Create key wrap") { return } enckey, err := k.Encrypt(cek) if !assert.NoError(t, err, "Failed to encrypt key") { return } if !assert.Equal(t, encsharedkey, enckey.Bytes(), "encrypted keys match") { return } cipher, err := cipher.NewAES(jwa.A128CBC_HS256) if !assert.NoError(t, err, "NewAesContentCipher is successful") { return } cipher.NonceGenerator = keygen.Static(iv) iv, encrypted, tag, err := cipher.Encrypt(cek, plaintext, aad) if !assert.NoError(t, err, "encrypt() successful") { return } if !assert.Equal(t, ciphertext, encrypted, "Generated cipher text does not match") { return } if !assert.Equal(t, tag, authtag, "Generated tag text does not match") { return } data, err := cipher.Decrypt(cek, iv, encrypted, tag, aad) if !assert.NoError(t, err, "decrypt successful") { return } if !assert.Equal(t, plaintext, data, "decrypt works") { return } r := NewRecipient() r.Headers().Set(AlgorithmKey, jwa.A128KW) r.SetEncryptedKey(enckey.Bytes()) protected := NewHeaders() protected.Set(ContentEncryptionKey, jwa.A128CBC_HS256) msg := NewMessage() msg.Set(ProtectedHeadersKey, protected) msg.Set(AuthenticatedDataKey, aad) msg.Set(CipherTextKey, ciphertext) msg.Set(InitializationVectorKey, iv) msg.Set(TagKey, tag) msg.Set(RecipientsKey, []Recipient{r}) serialized, err := Compact(msg) if !assert.NoError(t, err, "compact serialization is successful") { return } if !assert.Equal(t, compactExpected, string(serialized), "compact serialization matches") { serialized, err = JSON(msg, WithPrettyFormat(true)) if !assert.NoError(t, err, "JSON serialization is successful") { return } t.Logf("%s", serialized) } } golang-github-lestrrat-go-jwx-1.2.30/jwe/message.go000066400000000000000000000432101465311135100221330ustar00rootroot00000000000000package jwe import ( "context" "crypto/ecdsa" "fmt" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) // NewRecipient creates a Recipient object func NewRecipient() Recipient { return &stdRecipient{ headers: NewHeaders(), } } func (r *stdRecipient) SetHeaders(h Headers) error { r.headers = h return nil } func (r *stdRecipient) SetEncryptedKey(v []byte) error { r.encryptedKey = v return nil } func (r *stdRecipient) Headers() Headers { return r.headers } func (r *stdRecipient) EncryptedKey() []byte { return r.encryptedKey } type recipientMarshalProxy struct { Headers Headers `json:"header"` EncryptedKey string `json:"encrypted_key"` } func (r *stdRecipient) UnmarshalJSON(buf []byte) error { var proxy recipientMarshalProxy proxy.Headers = NewHeaders() if err := json.Unmarshal(buf, &proxy); err != nil { return errors.Wrap(err, `failed to unmarshal json into recipient`) } r.headers = proxy.Headers decoded, err := base64.DecodeString(proxy.EncryptedKey) if err != nil { return errors.Wrap(err, `failed to decode "encrypted_key"`) } r.encryptedKey = decoded return nil } func (r *stdRecipient) MarshalJSON() ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteString(`{"header":`) hdrbuf, err := r.headers.MarshalJSON() if err != nil { return nil, errors.Wrap(err, `failed to marshal recipient header`) } buf.Write(hdrbuf) buf.WriteString(`,"encrypted_key":"`) buf.WriteString(base64.EncodeToString(r.encryptedKey)) buf.WriteString(`"}`) ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } // NewMessage creates a new message func NewMessage() *Message { return &Message{} } func (m *Message) AuthenticatedData() []byte { return m.authenticatedData } func (m *Message) CipherText() []byte { return m.cipherText } func (m *Message) InitializationVector() []byte { return m.initializationVector } func (m *Message) Tag() []byte { return m.tag } func (m *Message) ProtectedHeaders() Headers { return m.protectedHeaders } func (m *Message) Recipients() []Recipient { return m.recipients } func (m *Message) UnprotectedHeaders() Headers { return m.unprotectedHeaders } const ( AuthenticatedDataKey = "aad" CipherTextKey = "ciphertext" CountKey = "p2c" InitializationVectorKey = "iv" ProtectedHeadersKey = "protected" RecipientsKey = "recipients" SaltKey = "p2s" TagKey = "tag" UnprotectedHeadersKey = "unprotected" HeadersKey = "header" EncryptedKeyKey = "encrypted_key" ) func (m *Message) Set(k string, v interface{}) error { switch k { case AuthenticatedDataKey: buf, ok := v.([]byte) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, AuthenticatedDataKey) } m.authenticatedData = buf case CipherTextKey: buf, ok := v.([]byte) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, CipherTextKey) } m.cipherText = buf case InitializationVectorKey: buf, ok := v.([]byte) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, InitializationVectorKey) } m.initializationVector = buf case ProtectedHeadersKey: cv, ok := v.(Headers) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, ProtectedHeadersKey) } m.protectedHeaders = cv case RecipientsKey: cv, ok := v.([]Recipient) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, RecipientsKey) } m.recipients = cv case TagKey: buf, ok := v.([]byte) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, TagKey) } m.tag = buf case UnprotectedHeadersKey: cv, ok := v.(Headers) if !ok { return errors.Errorf(`invalid value %T for %s key`, v, UnprotectedHeadersKey) } m.unprotectedHeaders = cv default: if m.unprotectedHeaders == nil { m.unprotectedHeaders = NewHeaders() } return m.unprotectedHeaders.Set(k, v) } return nil } type messageMarshalProxy struct { AuthenticatedData string `json:"aad,omitempty"` CipherText string `json:"ciphertext"` InitializationVector string `json:"iv,omitempty"` ProtectedHeaders json.RawMessage `json:"protected"` Recipients []json.RawMessage `json:"recipients,omitempty"` Tag string `json:"tag,omitempty"` UnprotectedHeaders Headers `json:"unprotected,omitempty"` // For flattened structure. Headers is NOT a Headers type, // so that we can detect its presence by checking proxy.Headers != nil Headers json.RawMessage `json:"header,omitempty"` EncryptedKey string `json:"encrypted_key,omitempty"` } func (m *Message) MarshalJSON() ([]byte, error) { // This is slightly convoluted, but we need to encode the // protected headers, so we do it by hand buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) enc := json.NewEncoder(buf) fmt.Fprintf(buf, `{`) var wrote bool if aad := m.AuthenticatedData(); len(aad) > 0 { wrote = true fmt.Fprintf(buf, `%#v:`, AuthenticatedDataKey) if err := enc.Encode(base64.EncodeToString(aad)); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, AuthenticatedDataKey) } } if cipherText := m.CipherText(); len(cipherText) > 0 { if wrote { fmt.Fprintf(buf, `,`) } wrote = true fmt.Fprintf(buf, `%#v:`, CipherTextKey) if err := enc.Encode(base64.EncodeToString(cipherText)); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, CipherTextKey) } } if iv := m.InitializationVector(); len(iv) > 0 { if wrote { fmt.Fprintf(buf, `,`) } wrote = true fmt.Fprintf(buf, `%#v:`, InitializationVectorKey) if err := enc.Encode(base64.EncodeToString(iv)); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, InitializationVectorKey) } } if h := m.ProtectedHeaders(); h != nil { encodedHeaders, err := h.Encode() if err != nil { return nil, errors.Wrap(err, `failed to encode protected headers`) } if len(encodedHeaders) > 2 { if wrote { fmt.Fprintf(buf, `,`) } wrote = true fmt.Fprintf(buf, `%#v:%#v`, ProtectedHeadersKey, string(encodedHeaders)) } } if recipients := m.Recipients(); len(recipients) > 0 { if wrote { fmt.Fprintf(buf, `,`) } if len(recipients) == 1 { // Use flattened format fmt.Fprintf(buf, `%#v:`, HeadersKey) if err := enc.Encode(recipients[0].Headers()); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, HeadersKey) } if ek := recipients[0].EncryptedKey(); len(ek) > 0 { fmt.Fprintf(buf, `,%#v:`, EncryptedKeyKey) if err := enc.Encode(base64.EncodeToString(ek)); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, EncryptedKeyKey) } } } else { fmt.Fprintf(buf, `%#v:`, RecipientsKey) if err := enc.Encode(recipients); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, RecipientsKey) } } } if tag := m.Tag(); len(tag) > 0 { if wrote { fmt.Fprintf(buf, `,`) } fmt.Fprintf(buf, `%#v:`, TagKey) if err := enc.Encode(base64.EncodeToString(tag)); err != nil { return nil, errors.Wrapf(err, `failed to encode %s field`, TagKey) } } if h := m.UnprotectedHeaders(); h != nil { unprotected, err := json.Marshal(h) if err != nil { return nil, errors.Wrap(err, `failed to encode unprotected headers`) } if len(unprotected) > 2 { fmt.Fprintf(buf, `,%#v:%#v`, UnprotectedHeadersKey, string(unprotected)) } } fmt.Fprintf(buf, `}`) ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (m *Message) UnmarshalJSON(buf []byte) error { var proxy messageMarshalProxy proxy.UnprotectedHeaders = NewHeaders() if err := json.Unmarshal(buf, &proxy); err != nil { return errors.Wrap(err, `failed to unmashal JSON into message`) } // Get the string value var protectedHeadersStr string if err := json.Unmarshal(proxy.ProtectedHeaders, &protectedHeadersStr); err != nil { return errors.Wrap(err, `failed to decode protected headers (1)`) } // It's now in _quoted_ base64 string. Decode it protectedHeadersRaw, err := base64.DecodeString(protectedHeadersStr) if err != nil { return errors.Wrap(err, "failed to base64 decoded protected headers buffer") } h := NewHeaders() if err := json.Unmarshal(protectedHeadersRaw, h); err != nil { return errors.Wrap(err, `failed to decode protected headers (2)`) } // if this were a flattened message, we would see a "header" and "ciphertext" // field. TODO: do both of these conditions need to meet, or just one? if proxy.Headers != nil || len(proxy.EncryptedKey) > 0 { recipient := NewRecipient() hdrs := NewHeaders() if err := json.Unmarshal(proxy.Headers, hdrs); err != nil { return errors.Wrap(err, `failed to decode headers field`) } if err := recipient.SetHeaders(hdrs); err != nil { return errors.Wrap(err, `failed to set new headers`) } if v := proxy.EncryptedKey; len(v) > 0 { buf, err := base64.DecodeString(v) if err != nil { return errors.Wrap(err, `failed to decode encrypted key`) } if err := recipient.SetEncryptedKey(buf); err != nil { return errors.Wrap(err, `failed to set encrypted key`) } } m.recipients = append(m.recipients, recipient) } else { for i, recipientbuf := range proxy.Recipients { recipient := NewRecipient() if err := json.Unmarshal(recipientbuf, recipient); err != nil { return errors.Wrapf(err, `failed to decode recipient at index %d`, i) } m.recipients = append(m.recipients, recipient) } } if src := proxy.AuthenticatedData; len(src) > 0 { v, err := base64.DecodeString(src) if err != nil { return errors.Wrap(err, `failed to decode "aad"`) } m.authenticatedData = v } if src := proxy.CipherText; len(src) > 0 { v, err := base64.DecodeString(src) if err != nil { return errors.Wrap(err, `failed to decode "ciphertext"`) } m.cipherText = v } if src := proxy.InitializationVector; len(src) > 0 { v, err := base64.DecodeString(src) if err != nil { return errors.Wrap(err, `failed to decode "iv"`) } m.initializationVector = v } if src := proxy.Tag; len(src) > 0 { v, err := base64.DecodeString(src) if err != nil { return errors.Wrap(err, `failed to decode "tag"`) } m.tag = v } m.protectedHeaders = h if m.storeProtectedHeaders { // this is later used for decryption m.rawProtectedHeaders = base64.Encode(protectedHeadersRaw) } if iz, ok := proxy.UnprotectedHeaders.(isZeroer); ok { if !iz.isZero() { m.unprotectedHeaders = proxy.UnprotectedHeaders } } if len(m.recipients) == 0 { if err := m.makeDummyRecipient(proxy.EncryptedKey, m.protectedHeaders); err != nil { return errors.Wrap(err, `failed to setup recipient`) } } return nil } func (m *Message) makeDummyRecipient(enckeybuf string, protected Headers) error { // Recipients in this case should not contain the content encryption key, // so move that out hdrs, err := protected.Clone(context.TODO()) if err != nil { return errors.Wrap(err, `failed to clone headers`) } if err := hdrs.Remove(ContentEncryptionKey); err != nil { return errors.Wrapf(err, "failed to remove %#v from public header", ContentEncryptionKey) } enckey, err := base64.DecodeString(enckeybuf) if err != nil { return errors.Wrap(err, `failed to decode encrypted key`) } if err := m.Set(RecipientsKey, []Recipient{ &stdRecipient{ headers: hdrs, encryptedKey: enckey, }, }); err != nil { return errors.Wrapf(err, `failed to set %s`, RecipientsKey) } return nil } // Decrypt decrypts the message using the specified algorithm and key. // // `key` must be a private key in its "raw" format (i.e. something like // *rsa.PrivateKey, instead of jwk.Key) // // This method is marked for deprecation. It will be removed from the API // in the next major release. You should not rely on this method // to work 100% of the time, especially when it was obtained via jwe.Parse // instead of being constructed from scratch by this library. func (m *Message) Decrypt(alg jwa.KeyEncryptionAlgorithm, key interface{}) ([]byte, error) { var ctx decryptCtx ctx.alg = alg ctx.key = key ctx.msg = m return doDecryptCtx(&ctx) } func doDecryptCtx(dctx *decryptCtx) ([]byte, error) { m := dctx.msg alg := dctx.alg key := dctx.key if jwkKey, ok := key.(jwk.Key); ok { var raw interface{} if err := jwkKey.Raw(&raw); err != nil { return nil, errors.Wrapf(err, `failed to retrieve raw key from %T`, key) } key = raw } var err error ctx := context.TODO() h, err := m.protectedHeaders.Clone(ctx) if err != nil { return nil, errors.Wrap(err, `failed to copy protected headers`) } h, err = h.Merge(ctx, m.unprotectedHeaders) if err != nil { return nil, errors.Wrap(err, "failed to merge headers for message decryption") } enc := m.protectedHeaders.ContentEncryption() var aad []byte if aadContainer := m.authenticatedData; aadContainer != nil { aad = base64.Encode(aadContainer) } var computedAad []byte if len(m.rawProtectedHeaders) > 0 { computedAad = m.rawProtectedHeaders } else { // this is probably not required once msg.Decrypt is deprecated var err error computedAad, err = m.protectedHeaders.Encode() if err != nil { return nil, errors.Wrap(err, "failed to encode protected headers") } } dec := NewDecrypter(alg, enc, key). AuthenticatedData(aad). ComputedAuthenticatedData(computedAad). InitializationVector(m.initializationVector). Tag(m.tag) var plaintext []byte var lastError error // if we have no recipients, pretend like we only have one recipients := m.recipients if len(recipients) == 0 { r := NewRecipient() if err := r.SetHeaders(m.protectedHeaders); err != nil { return nil, errors.Wrap(err, `failed to set headers to recipient`) } recipients = append(recipients, r) } for _, recipient := range recipients { // strategy: try each recipient. If we fail in one of the steps, // keep looping because there might be another key with the same algo if recipient.Headers().Algorithm() != alg { // algorithms don't match continue } h2, err := h.Clone(ctx) if err != nil { lastError = errors.Wrap(err, `failed to copy headers (1)`) continue } h2, err = h2.Merge(ctx, recipient.Headers()) if err != nil { lastError = errors.Wrap(err, `failed to copy headers (2)`) continue } switch alg { case jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A256KW: epkif, ok := h2.Get(EphemeralPublicKeyKey) if !ok { return nil, errors.New("failed to get 'epk' field") } switch epk := epkif.(type) { case jwk.ECDSAPublicKey: var pubkey ecdsa.PublicKey if err := epk.Raw(&pubkey); err != nil { return nil, errors.Wrap(err, "failed to get public key") } dec.PublicKey(&pubkey) case jwk.OKPPublicKey: var pubkey interface{} if err := epk.Raw(&pubkey); err != nil { return nil, errors.Wrap(err, "failed to get public key") } dec.PublicKey(pubkey) default: return nil, errors.Errorf("unexpected 'epk' type %T for alg %s", epkif, alg) } if apu := h2.AgreementPartyUInfo(); len(apu) > 0 { dec.AgreementPartyUInfo(apu) } if apv := h2.AgreementPartyVInfo(); len(apv) > 0 { dec.AgreementPartyVInfo(apv) } case jwa.A128GCMKW, jwa.A192GCMKW, jwa.A256GCMKW: ivB64, ok := h2.Get(InitializationVectorKey) if !ok { return nil, errors.New("failed to get 'iv' field") } ivB64Str, ok := ivB64.(string) if !ok { return nil, errors.Errorf("unexpected type for 'iv': %T", ivB64) } tagB64, ok := h2.Get(TagKey) if !ok { return nil, errors.New("failed to get 'tag' field") } tagB64Str, ok := tagB64.(string) if !ok { return nil, errors.Errorf("unexpected type for 'tag': %T", tagB64) } iv, err := base64.DecodeString(ivB64Str) if err != nil { return nil, errors.Wrap(err, "failed to b64-decode 'iv'") } tag, err := base64.DecodeString(tagB64Str) if err != nil { return nil, errors.Wrap(err, "failed to b64-decode 'tag'") } dec.KeyInitializationVector(iv) dec.KeyTag(tag) case jwa.PBES2_HS256_A128KW, jwa.PBES2_HS384_A192KW, jwa.PBES2_HS512_A256KW: saltB64, ok := h2.Get(SaltKey) if !ok { return nil, errors.New("failed to get 'p2s' field") } saltB64Str, ok := saltB64.(string) if !ok { return nil, errors.Errorf("unexpected type for 'p2s': %T", saltB64) } count, ok := h2.Get(CountKey) if !ok { return nil, errors.New("failed to get 'p2c' field") } countFlt, ok := count.(float64) if !ok { return nil, errors.Errorf("unexpected type for 'p2c': %T", count) } // in v1, this number is hardcoded to 10000. Use v2 if you need to // finetune this value if countFlt > 10000 { return nil, errors.Errorf("invalid value for 'p2c'") } salt, err := base64.DecodeString(saltB64Str) if err != nil { return nil, errors.Wrap(err, "failed to b64-decode 'salt'") } dec.KeySalt(salt) dec.KeyCount(int(countFlt)) } plaintext, err = dec.Decrypt(recipient.EncryptedKey(), m.cipherText) if err != nil { lastError = errors.Wrap(err, `failed to decrypt`) continue } if h2.Compression() == jwa.Deflate { buf, err := uncompress(plaintext, dctx.maxDecompressBufferSize) if err != nil { lastError = errors.Wrap(err, `failed to uncompress payload`) plaintext = nil continue } plaintext = buf } break } if plaintext == nil { if lastError != nil { return nil, errors.Errorf(`failed to find matching recipient to decrypt key (last error = %s)`, lastError) } return nil, errors.New("failed to find matching recipient") } return plaintext, nil } golang-github-lestrrat-go-jwx-1.2.30/jwe/message_test.go000066400000000000000000000012161465311135100231720ustar00rootroot00000000000000package jwe_test import ( "testing" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwe" "github.com/stretchr/testify/assert" ) func TestRecipient(t *testing.T) { t.Run("JSON Marshaling", func(t *testing.T) { const src = `{"header":{"foo":"bar"},"encrypted_key":"Zm9vYmFyYmF6"}` r1 := jwe.NewRecipient() if !assert.NoError(t, json.Unmarshal([]byte(src), r1), `json.Unmarshal should succeed`) { return } buf, err := json.Marshal(r1) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } if !assert.Equal(t, []byte(src), buf, `json representation should match`) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jwe/options.go000066400000000000000000000055051465311135100222070ustar00rootroot00000000000000package jwe import ( "context" "github.com/lestrrat-go/option" ) type Option = option.Interface type identMessage struct{} type identPostParser struct{} type identPrettyFormat struct{} type identProtectedHeader struct{} type identMaxDecompressBufferSize struct{} type DecryptOption interface { Option decryptOption() } type decryptOption struct { Option } func (*decryptOption) decryptOption() {} // WithMaxDecompressBufferSize specifies the maximum buffer size for used when // decompressing the payload of a JWE message. If a JWE payload is compressed, // and the size of the decompressed payload exceeds this amount, and error is // returned. The default value is 10MB. func WithMaxDecompressBufferSize(size int64) DecryptOption { return &decryptOption{option.New(identMaxDecompressBufferSize{}, size)} } type SerializerOption interface { Option serializerOption() } type serializerOption struct { Option } func (*serializerOption) serializerOption() {} type EncryptOption interface { Option encryptOption() } type encryptOption struct { Option } func (*encryptOption) encryptOption() {} // WithPrettyFormat specifies if the `jwe.JSON` serialization tool // should generate pretty-formatted output func WithPrettyFormat(b bool) SerializerOption { return &serializerOption{option.New(identPrettyFormat{}, b)} } // Specify contents of the protected header. Some fields such as // "enc" and "zip" will be overwritten when encryption is performed. func WithProtectedHeaders(h Headers) EncryptOption { cloned, _ := h.Clone(context.Background()) return &encryptOption{option.New(identProtectedHeader{}, cloned)} } // WithMessage provides a message object to be populated by `jwe.Decrpt` // Using this option allows you to decrypt AND obtain the `jwe.Message` // in one go. // // Note that you should NOT be using the message object for anything other // than inspecting its contents. Particularly, do not expect the message // reliable when you call `Decrypt` on it. `(jwe.Message).Decrypt` is // slated to be deprecated in the next major version. func WithMessage(m *Message) DecryptOption { return &decryptOption{option.New(identMessage{}, m)} } // WithPostParser specifies the handler to be called immediately // after the JWE message has been parsed, but before decryption // takes place during `jwe.Decrypt`. // // This option exists to allow advanced users that require the use // of information stored in the JWE message to determine how the // decryption should be handled. // // For security reasons it is highly recommended that you thoroughly // study how the process works before using this option. This is especially // true if you are trying to infer key algorithms and keys to use to // decrypt a message using non-standard hints. func WithPostParser(p PostParser) DecryptOption { return &decryptOption{option.New(identPostParser{}, p)} } golang-github-lestrrat-go-jwx-1.2.30/jwe/serializer.go000066400000000000000000000047531465311135100226710ustar00rootroot00000000000000package jwe import ( "context" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/pkg/errors" ) // Compact encodes the given message into a JWE compact serialization format. // // Currently `Compact()` does not take any options, but the API is // set up as such to allow future expansions func Compact(m *Message, _ ...SerializerOption) ([]byte, error) { if len(m.recipients) != 1 { return nil, errors.New("wrong number of recipients for compact serialization") } recipient := m.recipients[0] // The protected header must be a merge between the message-wide // protected header AND the recipient header // There's something wrong if m.protectedHeaders is nil, but // it could happen if m.protectedHeaders == nil { return nil, errors.New("invalid protected header") } ctx := context.TODO() hcopy, err := m.protectedHeaders.Clone(ctx) if err != nil { return nil, errors.Wrap(err, "failed to copy protected header") } hcopy, err = hcopy.Merge(ctx, m.unprotectedHeaders) if err != nil { return nil, errors.Wrap(err, "failed to merge unprotected header") } hcopy, err = hcopy.Merge(ctx, recipient.Headers()) if err != nil { return nil, errors.Wrap(err, "failed to merge recipient header") } protected, err := hcopy.Encode() if err != nil { return nil, errors.Wrap(err, "failed to encode header") } encryptedKey := base64.Encode(recipient.EncryptedKey()) iv := base64.Encode(m.initializationVector) cipher := base64.Encode(m.cipherText) tag := base64.Encode(m.tag) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.Grow(len(protected) + len(encryptedKey) + len(iv) + len(cipher) + len(tag) + 4) buf.Write(protected) buf.WriteByte('.') buf.Write(encryptedKey) buf.WriteByte('.') buf.Write(iv) buf.WriteByte('.') buf.Write(cipher) buf.WriteByte('.') buf.Write(tag) result := make([]byte, buf.Len()) copy(result, buf.Bytes()) return result, nil } // JSON encodes the message into a JWE JSON serialization format. // // If `WithPrettyFormat(true)` is passed as an option, the returned // value will be formatted using `json.MarshalIndent()` func JSON(m *Message, options ...SerializerOption) ([]byte, error) { var pretty bool for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identPrettyFormat{}: pretty = option.Value().(bool) } } if pretty { return json.MarshalIndent(m, "", " ") } return json.Marshal(m) } golang-github-lestrrat-go-jwx-1.2.30/jwe/speed_test.go000066400000000000000000000022541465311135100226510ustar00rootroot00000000000000package jwe import ( "bytes" "testing" ) var s = []byte(`eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ`) func BenchmarkSplitLib(b *testing.B) { for i := 0; i < b.N; i++ { SplitLib(s) } } func BenchmarkSplitManual(b *testing.B) { ret := make([][]byte, 5) for i := 0; i < b.N; i++ { SplitManual(ret, s) } } func SplitLib(buf []byte) [][]byte { return bytes.Split(buf, []byte{'.'}) } func SplitManual(parts [][]byte, buf []byte) { bufi := 0 for len(buf) > 0 { i := bytes.IndexByte(buf, '.') if i == -1 { return } parts[bufi] = buf[:i] bufi++ if len(buf) > i { buf = buf[i+1:] } if bufi == 4 { break } } if i := bytes.IndexByte(buf, '.'); i != -1 { return } parts[4] = buf } golang-github-lestrrat-go-jwx-1.2.30/jwk/000077500000000000000000000000001465311135100201665ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwk/README.md000066400000000000000000000164241465311135100214540ustar00rootroot00000000000000# JWK [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx/jwk.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwk) Package jwk implements JWK as described in [RFC7517](https://tools.ietf.org/html/rfc7517) * Parse and work with RSA/EC/Symmetric/OKP JWK types * Convert to and from JSON * Convert to and from raw key types (e.g. *rsa.PrivateKey) * Ability to keep a JWKS fresh. How-to style documentation can be found in the [docs directory](../docs). Examples are located in the examples directory ([jwk_example_test.go](../examples/jwk_example_test.go)) Supported key types: | kty | Curve | Go Key Type | |:----|:------------------------|:----------------------------------------------| | RSA | N/A | rsa.PrivateKey / rsa.PublicKey (2) | | EC | P-256
    P-384
    P-521
    secp256k1 (1) | ecdsa.PrivateKey / ecdsa.PublicKey (2) | | oct | N/A | []byte | | OKP | Ed25519 (1) | ed25519.PrivateKey / ed25519.PublicKey (2) | | | X25519 (1) | (jwx/)x25519.PrivateKey / x25519.PublicKey (2)| * Note 1: Experimental * Note 2: Either value or pointers accepted (e.g. rsa.PrivateKey or *rsa.PrivateKey) # SYNOPSIS ## Parse a JWK or a JWK set ```go // Parse a single JWK key. key, err := jwk.ParseKey(...) // Parse a JWK set (or a single JWK key) set, err := jwk.Parse(...) ``` ## Create JWK keys from raw keys ```go func ExampleNew() { // New returns different underlying types of jwk.Key objects // depending on the input value. // []byte -> jwk.SymmetricKey { raw := []byte("Lorem Ipsum") key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.SymmetricKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } } // *rsa.PrivateKey -> jwk.RSAPrivateKey // *rsa.PublicKey -> jwk.RSAPublicKey { raw, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { fmt.Printf("failed to generate new RSA privatre key: %s\n", err) return } key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.RSAPrivateKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } // PublicKey is omitted for brevity } // *ecdsa.PrivateKey -> jwk.ECDSAPrivateKey // *ecdsa.PublicKey -> jwk.ECDSAPublicKey { raw, err := ecdsa.GenerateKey(elliptic.P384(), rand.Reader) if err != nil { fmt.Printf("failed to generate new ECDSA privatre key: %s\n", err) return } key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.ECDSAPrivateKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } // PublicKey is omitted for brevity } // OUTPUT: } ``` # Get the JSON representation of a key ```go func ExampleMarshalJSON() { // to get the same values every time, we need to create a static source // of "randomness" rdr := bytes.NewReader([]byte("01234567890123456789012345678901234567890123456789ABCDEF")) raw, err := ecdsa.GenerateKey(elliptic.P384(), rdr) if err != nil { fmt.Printf("failed to generate new ECDSA privatre key: %s\n", err) return } key, err := jwk.New(raw) if err != nil { fmt.Printf("failed to create symmetric key: %s\n", err) return } if _, ok := key.(jwk.ECDSAPrivateKey); !ok { fmt.Printf("expected jwk.SymmetricKey, got %T\n", key) return } key.Set(jwk.KeyIDKey, "mykey") buf, err := json.MarshalIndent(key, "", " ") if err != nil { fmt.Printf("failed to marshal key into JSON: %s\n", err) return } fmt.Printf("%s\n", buf) // OUTPUT: // { // "kty": "EC", // "crv": "P-384", // "d": "ODkwMTIzNDU2Nzg5MDEyMz7deMbyLt8g4cjcxozuIoygLLlAeoQ1AfM9TSvxkFHJ", // "kid": "mykey", // "x": "gvvRMqm1w5aHn7sVNA2QUJeOVcedUnmiug6VhU834gzS9k87crVwu9dz7uLOdoQl", // "y": "7fVF7b6J_6_g6Wu9RuJw8geWxEi5ja9Gp2TSdELm5u2E-M7IF-bsxqcdOj3n1n7N" // } } ``` # Auto-Refresh a key during a long running process ```go func ExampleAutoRefresh() { ctx, cancel := context.WithCancel(context.Background()) const googleCerts = `https://www.googleapis.com/oauth2/v3/certs` ar := jwk.NewAutoRefresh(ctx) // Tell *jwk.AutoRefresh that we only want to refresh this JWKS // when it needs to (based on Cache-Control or Expires header from // the HTTP response). If the calculated minimum refresh interval is less // than 15 minutes, don't go refreshing any earlier than 15 minutes. ar.Configure(googleCerts, jwk.WithMinRefreshInterval(15*time.Minute)) // Refresh the JWKS once before getting into the main loop. // This allows you to check if the JWKS is available before we start // a long-running program _, err := ar.Refresh(ctx, googleCerts) if err != nil { fmt.Printf("failed to refresh google JWKS: %s\n", err) return } // Pretend that this is your program's main loop MAIN: for { select { case <-ctx.Done(): break MAIN default: } keyset, err := ar.Fetch(ctx, googleCerts) if err != nil { fmt.Printf("failed to fetch google JWKS: %s\n", err) return } _ = keyset // Do interesting stuff with the keyset... but here, we just // sleep for a bit time.Sleep(time.Second) // Because we're a dummy program, we just cancel the loop now. // If this were a real program, you prosumably loop forever cancel() } // OUTPUT: } ``` Parse and use a JWK key: ```go import ( "encoding/json" "log" "github.com/lestrrat-go/jwx/jwk" ) func main() { set, err := jwk.Fetch(context.Background(), "https://www.googleapis.com/oauth2/v3/certs") if err != nil { log.Printf("failed to parse JWK: %s", err) return } // Key sets can be serialized back to JSON { jsonbuf, err := json.Marshal(set) if err != nil { log.Printf("failed to marshal key set into JSON: %s", err) return } log.Printf("%s", jsonbuf) } for it := set.Iterate(context.Background()); it.Next(context.Background()); { pair := it.Pair() key := pair.Value.(jwk.Key) var rawkey interface{} // This is the raw key, like *rsa.PrivateKey or *ecdsa.PrivateKey if err := key.Raw(&rawkey); err != nil { log.Printf("failed to create public key: %s", err) return } // Use rawkey for jws.Verify() or whatever. _ = rawkey // You can create jwk.Key from a raw key, too fromRawKey, err := jwk.New(rawkey) // Keys can be serialized back to JSON jsonbuf, err := json.Marshal(key) if err != nil { log.Printf("failed to marshal key into JSON: %s", err) return } log.Printf("%s", jsonbuf) // If you know the underlying Key type (RSA, EC, Symmetric), you can // create an empy instance first // key := jwk.NewRSAPrivateKey() // ..and then use json.Unmarshal // json.Unmarshal(key, jsonbuf) // // but if you don't know the type first, you have an abstract type // jwk.Key, which can't be used as the first argument to json.Unmarshal // // In this case, use jwk.Parse() fromJsonKey, err := jwk.Parse(jsonbuf) if err != nil { log.Printf("failed to parse json: %s", err) return } _ = fromJsonKey _ = fromRawKey } } ``` golang-github-lestrrat-go-jwx-1.2.30/jwk/certchain.go000066400000000000000000000034501465311135100224570ustar00rootroot00000000000000package jwk import ( "crypto/x509" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/base64" "github.com/pkg/errors" ) func (c CertificateChain) MarshalJSON() ([]byte, error) { certs := c.Get() encoded := make([]string, len(certs)) for i := 0; i < len(certs); i++ { encoded[i] = base64.EncodeToStringStd(certs[i].Raw) } return json.Marshal(encoded) } func (c *CertificateChain) UnmarshalJSON(buf []byte) error { var list []string if err := json.Unmarshal(buf, &list); err != nil { return errors.Wrap(err, `failed to unmarshal JSON into []string`) } var tmp CertificateChain if err := tmp.Accept(list); err != nil { return err } *c = tmp return nil } func (c CertificateChain) Get() []*x509.Certificate { return c.certs } func (c *CertificateChain) Accept(v interface{}) error { var list []string switch x := v.(type) { case string: list = []string{x} case []interface{}: list = make([]string, len(x)) for i, e := range x { if es, ok := e.(string); ok { list[i] = es continue } return errors.Errorf(`invalid list element type: expected string, got %T at element %d`, e, i) } case []string: list = x case CertificateChain: certs := make([]*x509.Certificate, len(x.certs)) copy(certs, x.certs) *c = CertificateChain{ certs: certs, } return nil default: return errors.Errorf(`invalid type for CertificateChain: %T`, v) } certs := make([]*x509.Certificate, len(list)) for i, e := range list { buf, err := base64.DecodeString(e) if err != nil { return errors.Wrap(err, `failed to base64 decode list element`) } cert, err := x509.ParseCertificate(buf) if err != nil { return errors.Wrap(err, `failed to parse certificate`) } certs[i] = cert } *c = CertificateChain{ certs: certs, } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/ecdsa.go000066400000000000000000000130571465311135100216020ustar00rootroot00000000000000package jwk import ( "crypto" "crypto/ecdsa" "crypto/elliptic" "fmt" "math/big" "github.com/lestrrat-go/blackmagic" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) func init() { ecutil.RegisterCurve(elliptic.P256(), jwa.P256) ecutil.RegisterCurve(elliptic.P384(), jwa.P384) ecutil.RegisterCurve(elliptic.P521(), jwa.P521) } func (k *ecdsaPublicKey) FromRaw(rawKey *ecdsa.PublicKey) error { k.mu.Lock() defer k.mu.Unlock() if rawKey.X == nil { return errors.Errorf(`invalid ecdsa.PublicKey`) } if rawKey.Y == nil { return errors.Errorf(`invalid ecdsa.PublicKey`) } xbuf := ecutil.AllocECPointBuffer(rawKey.X, rawKey.Curve) ybuf := ecutil.AllocECPointBuffer(rawKey.Y, rawKey.Curve) defer ecutil.ReleaseECPointBuffer(xbuf) defer ecutil.ReleaseECPointBuffer(ybuf) k.x = make([]byte, len(xbuf)) copy(k.x, xbuf) k.y = make([]byte, len(ybuf)) copy(k.y, ybuf) var crv jwa.EllipticCurveAlgorithm if tmp, ok := ecutil.AlgorithmForCurve(rawKey.Curve); ok { crv = tmp } else { return errors.Errorf(`invalid elliptic curve %s`, rawKey.Curve) } k.crv = &crv return nil } func (k *ecdsaPrivateKey) FromRaw(rawKey *ecdsa.PrivateKey) error { k.mu.Lock() defer k.mu.Unlock() if rawKey.PublicKey.X == nil { return errors.Errorf(`invalid ecdsa.PrivateKey`) } if rawKey.PublicKey.Y == nil { return errors.Errorf(`invalid ecdsa.PrivateKey`) } if rawKey.D == nil { return errors.Errorf(`invalid ecdsa.PrivateKey`) } xbuf := ecutil.AllocECPointBuffer(rawKey.PublicKey.X, rawKey.Curve) ybuf := ecutil.AllocECPointBuffer(rawKey.PublicKey.Y, rawKey.Curve) dbuf := ecutil.AllocECPointBuffer(rawKey.D, rawKey.Curve) defer ecutil.ReleaseECPointBuffer(xbuf) defer ecutil.ReleaseECPointBuffer(ybuf) defer ecutil.ReleaseECPointBuffer(dbuf) k.x = make([]byte, len(xbuf)) copy(k.x, xbuf) k.y = make([]byte, len(ybuf)) copy(k.y, ybuf) k.d = make([]byte, len(dbuf)) copy(k.d, dbuf) var crv jwa.EllipticCurveAlgorithm if tmp, ok := ecutil.AlgorithmForCurve(rawKey.Curve); ok { crv = tmp } else { return errors.Errorf(`invalid elliptic curve %s`, rawKey.Curve) } k.crv = &crv return nil } func buildECDSAPublicKey(alg jwa.EllipticCurveAlgorithm, xbuf, ybuf []byte) (*ecdsa.PublicKey, error) { var crv elliptic.Curve if tmp, ok := ecutil.CurveForAlgorithm(alg); ok { crv = tmp } else { return nil, errors.Errorf(`invalid curve algorithm %s`, alg) } var x, y big.Int x.SetBytes(xbuf) y.SetBytes(ybuf) return &ecdsa.PublicKey{Curve: crv, X: &x, Y: &y}, nil } // Raw returns the EC-DSA public key represented by this JWK func (k *ecdsaPublicKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() pubk, err := buildECDSAPublicKey(k.Crv(), k.x, k.y) if err != nil { return errors.Wrap(err, `failed to build public key`) } return blackmagic.AssignIfCompatible(v, pubk) } func (k *ecdsaPrivateKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() pubk, err := buildECDSAPublicKey(k.Crv(), k.x, k.y) if err != nil { return errors.Wrap(err, `failed to build public key`) } var key ecdsa.PrivateKey var d big.Int d.SetBytes(k.d) key.D = &d key.PublicKey = *pubk return blackmagic.AssignIfCompatible(v, &key) } func makeECDSAPublicKey(v interface { makePairs() []*HeaderPair }) (Key, error) { newKey := NewECDSAPublicKey() // Iterate and copy everything except for the bits that should not be in the public key for _, pair := range v.makePairs() { switch pair.Key { case ECDSADKey: continue default: //nolint:forcetypeassert key := pair.Key.(string) if err := newKey.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set field %q`, key) } } } return newKey, nil } func (k *ecdsaPrivateKey) PublicKey() (Key, error) { return makeECDSAPublicKey(k) } func (k *ecdsaPublicKey) PublicKey() (Key, error) { return makeECDSAPublicKey(k) } func ecdsaThumbprint(hash crypto.Hash, crv, x, y string) []byte { h := hash.New() fmt.Fprint(h, `{"crv":"`) fmt.Fprint(h, crv) fmt.Fprint(h, `","kty":"EC","x":"`) fmt.Fprint(h, x) fmt.Fprint(h, `","y":"`) fmt.Fprint(h, y) fmt.Fprint(h, `"}`) return h.Sum(nil) } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 func (k ecdsaPublicKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() var key ecdsa.PublicKey if err := k.Raw(&key); err != nil { return nil, errors.Wrap(err, `failed to materialize ecdsa.PublicKey for thumbprint generation`) } xbuf := ecutil.AllocECPointBuffer(key.X, key.Curve) ybuf := ecutil.AllocECPointBuffer(key.Y, key.Curve) defer ecutil.ReleaseECPointBuffer(xbuf) defer ecutil.ReleaseECPointBuffer(ybuf) return ecdsaThumbprint( hash, key.Curve.Params().Name, base64.EncodeToString(xbuf), base64.EncodeToString(ybuf), ), nil } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 func (k ecdsaPrivateKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() var key ecdsa.PrivateKey if err := k.Raw(&key); err != nil { return nil, errors.Wrap(err, `failed to materialize ecdsa.PrivateKey for thumbprint generation`) } xbuf := ecutil.AllocECPointBuffer(key.X, key.Curve) ybuf := ecutil.AllocECPointBuffer(key.Y, key.Curve) defer ecutil.ReleaseECPointBuffer(xbuf) defer ecutil.ReleaseECPointBuffer(ybuf) return ecdsaThumbprint( hash, key.Curve.Params().Name, base64.EncodeToString(xbuf), base64.EncodeToString(ybuf), ), nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/ecdsa_gen.go000066400000000000000000000731171465311135100224360ustar00rootroot00000000000000// This file is auto-generated by jwk/internal/cmd/genheader/main.go. DO NOT EDIT package jwk import ( "bytes" "context" "crypto/ecdsa" "crypto/x509" "fmt" "sort" "sync" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) const ( ECDSACrvKey = "crv" ECDSADKey = "d" ECDSAXKey = "x" ECDSAYKey = "y" ) type ECDSAPublicKey interface { Key FromRaw(*ecdsa.PublicKey) error Crv() jwa.EllipticCurveAlgorithm X() []byte Y() []byte } type ecdsaPublicKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 crv *jwa.EllipticCurveAlgorithm keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 x []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 y []byte privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewECDSAPublicKey() ECDSAPublicKey { return newECDSAPublicKey() } func newECDSAPublicKey() *ecdsaPublicKey { return &ecdsaPublicKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h ecdsaPublicKey) KeyType() jwa.KeyType { return jwa.EC } func (h *ecdsaPublicKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *ecdsaPublicKey) Crv() jwa.EllipticCurveAlgorithm { if h.crv != nil { return *(h.crv) } return jwa.InvalidEllipticCurve } func (h *ecdsaPublicKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *ecdsaPublicKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *ecdsaPublicKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *ecdsaPublicKey) X() []byte { return h.x } func (h *ecdsaPublicKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *ecdsaPublicKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *ecdsaPublicKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *ecdsaPublicKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *ecdsaPublicKey) Y() []byte { return h.y } func (h *ecdsaPublicKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.EC}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.crv != nil { pairs = append(pairs, &HeaderPair{Key: ECDSACrvKey, Value: *(h.crv)}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.x != nil { pairs = append(pairs, &HeaderPair{Key: ECDSAXKey, Value: h.x}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } if h.y != nil { pairs = append(pairs, &HeaderPair{Key: ECDSAYKey, Value: h.y}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *ecdsaPublicKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *ecdsaPublicKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case ECDSACrvKey: if h.crv == nil { return nil, false } return *(h.crv), true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case ECDSAXKey: if h.x == nil { return nil, false } return h.x, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true case ECDSAYKey: if h.y == nil { return nil, false } return h.y, true default: v, ok := h.privateParams[name] return v, ok } } func (h *ecdsaPublicKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *ecdsaPublicKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case ECDSACrvKey: if v, ok := value.(jwa.EllipticCurveAlgorithm); ok { h.crv = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSACrvKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case ECDSAXKey: if v, ok := value.([]byte); ok { h.x = v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSAXKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) case ECDSAYKey: if v, ok := value.([]byte); ok { h.y = v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSAYKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *ecdsaPublicKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case ECDSACrvKey: k.crv = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case ECDSAXKey: k.x = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil case ECDSAYKey: k.y = nil default: delete(k.privateParams, key) } return nil } func (k *ecdsaPublicKey) Clone() (Key, error) { return cloneKey(k) } func (k *ecdsaPublicKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *ecdsaPublicKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *ecdsaPublicKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.crv = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.x = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil h.y = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.EC.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case ECDSACrvKey: var decoded jwa.EllipticCurveAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSACrvKey) } h.crv = &decoded case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case ECDSAXKey: if err := json.AssignNextBytesToken(&h.x, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSAXKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } case ECDSAYKey: if err := json.AssignNextBytesToken(&h.y, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSAYKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.crv == nil { return errors.Errorf(`required field crv is missing`) } if h.x == nil { return errors.Errorf(`required field x is missing`) } if h.y == nil { return errors.Errorf(`required field y is missing`) } return nil } func (h ecdsaPublicKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 11) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *ecdsaPublicKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *ecdsaPublicKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *ecdsaPublicKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } type ECDSAPrivateKey interface { Key FromRaw(*ecdsa.PrivateKey) error Crv() jwa.EllipticCurveAlgorithm D() []byte X() []byte Y() []byte } type ecdsaPrivateKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 crv *jwa.EllipticCurveAlgorithm d []byte keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 x []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 y []byte privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewECDSAPrivateKey() ECDSAPrivateKey { return newECDSAPrivateKey() } func newECDSAPrivateKey() *ecdsaPrivateKey { return &ecdsaPrivateKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h ecdsaPrivateKey) KeyType() jwa.KeyType { return jwa.EC } func (h *ecdsaPrivateKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *ecdsaPrivateKey) Crv() jwa.EllipticCurveAlgorithm { if h.crv != nil { return *(h.crv) } return jwa.InvalidEllipticCurve } func (h *ecdsaPrivateKey) D() []byte { return h.d } func (h *ecdsaPrivateKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *ecdsaPrivateKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *ecdsaPrivateKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *ecdsaPrivateKey) X() []byte { return h.x } func (h *ecdsaPrivateKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *ecdsaPrivateKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *ecdsaPrivateKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *ecdsaPrivateKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *ecdsaPrivateKey) Y() []byte { return h.y } func (h *ecdsaPrivateKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.EC}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.crv != nil { pairs = append(pairs, &HeaderPair{Key: ECDSACrvKey, Value: *(h.crv)}) } if h.d != nil { pairs = append(pairs, &HeaderPair{Key: ECDSADKey, Value: h.d}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.x != nil { pairs = append(pairs, &HeaderPair{Key: ECDSAXKey, Value: h.x}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } if h.y != nil { pairs = append(pairs, &HeaderPair{Key: ECDSAYKey, Value: h.y}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *ecdsaPrivateKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *ecdsaPrivateKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case ECDSACrvKey: if h.crv == nil { return nil, false } return *(h.crv), true case ECDSADKey: if h.d == nil { return nil, false } return h.d, true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case ECDSAXKey: if h.x == nil { return nil, false } return h.x, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true case ECDSAYKey: if h.y == nil { return nil, false } return h.y, true default: v, ok := h.privateParams[name] return v, ok } } func (h *ecdsaPrivateKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *ecdsaPrivateKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case ECDSACrvKey: if v, ok := value.(jwa.EllipticCurveAlgorithm); ok { h.crv = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSACrvKey, value) case ECDSADKey: if v, ok := value.([]byte); ok { h.d = v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSADKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case ECDSAXKey: if v, ok := value.([]byte); ok { h.x = v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSAXKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) case ECDSAYKey: if v, ok := value.([]byte); ok { h.y = v return nil } return errors.Errorf(`invalid value for %s key: %T`, ECDSAYKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *ecdsaPrivateKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case ECDSACrvKey: k.crv = nil case ECDSADKey: k.d = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case ECDSAXKey: k.x = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil case ECDSAYKey: k.y = nil default: delete(k.privateParams, key) } return nil } func (k *ecdsaPrivateKey) Clone() (Key, error) { return cloneKey(k) } func (k *ecdsaPrivateKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *ecdsaPrivateKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *ecdsaPrivateKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.crv = nil h.d = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.x = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil h.y = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.EC.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case ECDSACrvKey: var decoded jwa.EllipticCurveAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSACrvKey) } h.crv = &decoded case ECDSADKey: if err := json.AssignNextBytesToken(&h.d, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSADKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case ECDSAXKey: if err := json.AssignNextBytesToken(&h.x, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSAXKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } case ECDSAYKey: if err := json.AssignNextBytesToken(&h.y, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ECDSAYKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.crv == nil { return errors.Errorf(`required field crv is missing`) } if h.d == nil { return errors.Errorf(`required field d is missing`) } if h.x == nil { return errors.Errorf(`required field x is missing`) } if h.y == nil { return errors.Errorf(`required field y is missing`) } return nil } func (h ecdsaPrivateKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 12) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *ecdsaPrivateKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *ecdsaPrivateKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *ecdsaPrivateKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } golang-github-lestrrat-go-jwx-1.2.30/jwk/es256k.go000066400000000000000000000003631465311135100215360ustar00rootroot00000000000000// +build jwx_es256k package jwk import ( "github.com/decred/dcrd/dcrec/secp256k1/v4" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" ) func init() { ecutil.RegisterCurve(secp256k1.S256(), jwa.Secp256k1) } golang-github-lestrrat-go-jwx-1.2.30/jwk/es256k_test.go000066400000000000000000000005021465311135100225700ustar00rootroot00000000000000// +build jwx_es256k package jwk_test import ( "testing" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/jwa" "github.com/stretchr/testify/assert" ) func TestES256K(t *testing.T) { if !assert.True(t, ecutil.IsAvailable(jwa.Secp256k1), `jwa.Secp256k1 should be available`) { return } } golang-github-lestrrat-go-jwx-1.2.30/jwk/gen.sh000077500000000000000000000005231465311135100212760ustar00rootroot00000000000000#!/bin/bash # Script to perform code generation. This exists to overcome # the fact that go:generate doesn't really allow you to change directories set -e pushd internal/cmd/genheader go build -o genheader main.go popd ./internal/cmd/genheader/genheader -objects=internal/cmd/genheader/objects.yml rm internal/cmd/genheader/genheader golang-github-lestrrat-go-jwx-1.2.30/jwk/headers_test.go000066400000000000000000000062341465311135100231740ustar00rootroot00000000000000package jwk_test import ( "context" "fmt" "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func TestHeader(t *testing.T) { t.Parallel() t.Run("Roundtrip", func(t *testing.T) { t.Parallel() values := map[string]interface{}{ jwk.KeyIDKey: "helloworld01", jwk.KeyOpsKey: jwk.KeyOperationList{jwk.KeyOpSign}, jwk.KeyUsageKey: "sig", jwk.X509CertThumbprintKey: "thumbprint", jwk.X509CertThumbprintS256Key: "thumbprint256", jwk.X509URLKey: "cert1", "private": "boofoo", } h, err := jwk.New([]byte("dummy")) if !assert.NoError(t, err, `jwk.New should succeed`) { return } for k, v := range values { if !assert.NoError(t, h.Set(k, v), "Set works for '%s'", k) { return } got, ok := h.Get(k) if !assert.True(t, ok, "Get works for '%s'", k) { return } if !assert.Equal(t, v, got, "values match '%s'", k) { return } if !assert.NoError(t, h.Set(k, v), "Set works for '%s'", k) { return } } t.Run("Private params", func(t *testing.T) { t.Parallel() pp, err := h.AsMap(context.Background()) if !assert.NoError(t, err, `h.AsMap should succeed`) { return } v, ok := pp["private"] if !assert.True(t, ok, "key 'private' should exists") { return } if !assert.Equal(t, v, "boofoo", "value for 'private' should match") { return } }) }) t.Run("RoundtripError", func(t *testing.T) { t.Parallel() type dummyStruct struct { dummy1 int dummy2 float64 } dummy := &dummyStruct{1, 3.4} values := map[string]interface{}{ jwk.AlgorithmKey: dummy, jwk.KeyIDKey: dummy, jwk.KeyUsageKey: dummy, jwk.KeyOpsKey: dummy, jwk.X509CertChainKey: dummy, jwk.X509CertThumbprintKey: dummy, jwk.X509CertThumbprintS256Key: dummy, jwk.X509URLKey: dummy, } h, err := jwk.New([]byte("dummy")) if !assert.NoError(t, err, `jwk.New should succeed`) { return } for k, v := range values { err := h.Set(k, v) if err == nil { t.Fatalf("Setting %s value should have failed", k) } } if !assert.NoError(t, h.Set("Default", dummy), `Setting "Default" should succeed`) { return } if h.Algorithm() != "" { t.Fatalf("Algorithm should be empty string") } if h.KeyID() != "" { t.Fatalf("KeyID should be empty string") } if h.KeyUsage() != "" { t.Fatalf("KeyUsage should be empty string") } if h.KeyOps() != nil { t.Fatalf("KeyOps should be empty string") } }) t.Run("Algorithm", func(t *testing.T) { t.Parallel() h, err := jwk.New([]byte("dummy")) if !assert.NoError(t, err, `jwk.New should succeed`) { return } for _, value := range []interface{}{jwa.RS256, jwa.RSA1_5} { if !assert.NoError(t, h.Set(jwk.AlgorithmKey, value), "Set for alg should succeed") { return } got, ok := h.Get("alg") if !assert.True(t, ok, "Get for alg should succeed") { return } if !assert.Equal(t, value.(fmt.Stringer).String(), got, "values match") { return } } }) } golang-github-lestrrat-go-jwx-1.2.30/jwk/interface.go000066400000000000000000000126241465311135100224620ustar00rootroot00000000000000package jwk import ( "context" "crypto/x509" "net/http" "sync" "github.com/lestrrat-go/iter/arrayiter" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" ) // KeyUsageType is used to denote what this key should be used for type KeyUsageType string const ( // ForSignature is the value used in the headers to indicate that // this key should be used for signatures ForSignature KeyUsageType = "sig" // ForEncryption is the value used in the headers to indicate that // this key should be used for encrypting ForEncryption KeyUsageType = "enc" ) type CertificateChain struct { certs []*x509.Certificate } type KeyOperation string type KeyOperationList []KeyOperation const ( KeyOpSign KeyOperation = "sign" // (compute digital signature or MAC) KeyOpVerify KeyOperation = "verify" // (verify digital signature or MAC) KeyOpEncrypt KeyOperation = "encrypt" // (encrypt content) KeyOpDecrypt KeyOperation = "decrypt" // (decrypt content and validate decryption, if applicable) KeyOpWrapKey KeyOperation = "wrapKey" // (encrypt key) KeyOpUnwrapKey KeyOperation = "unwrapKey" // (decrypt key and validate decryption, if applicable) KeyOpDeriveKey KeyOperation = "deriveKey" // (derive key) KeyOpDeriveBits KeyOperation = "deriveBits" // (derive bits not to be used as a key) ) // Set represents JWKS object, a collection of jwk.Key objects. // // Sets can be safely converted to and from JSON using the standard // `"encoding/json".Marshal` and `"encoding/json".Unmarshal`. However, // if you do not know if the payload contains a single JWK or a JWK set, // consider using `jwk.Parse()` to always get a `jwk.Set` out of it. // // Since v1.2.12, JWK sets with private parameters can be parsed as well. // Such private parameters can be accessed via the `Field()` method. // If a resource contains a single JWK instead of a JWK set, private parameters // are stored in _both_ the resulting `jwk.Set` object and the `jwk.Key` object . type Set interface { // Add adds the specified key. If the key already exists in the set, it is // not added. // This method will be renamed to `AddKey(Key)` in a future major release. Add(Key) bool // Clear resets the list of keys associated with this set, emptying the // internal list of `jwk.Key`s // This method will be changed in the future to clear all contents in the // `jwk.Set` instead of just the keys. Clear() // Get returns the key at index `idx`. If the index is out of range, // then the second return value is false. // This method will be renamed to `Key(int)` in a future major release. Get(int) (Key, bool) // Field returns the value of a private field in the key set. // // For the purposes of a key set, any field other than the "keys" field is // considered to be a private field. In other words, you cannot use this // method to directly access the list of keys in the set // // This method will be renamed to `Get(string)` in a future major release. Field(string) (interface{}, bool) // Set sets the value of a single field. // // This method, which takes an `interface{}`, exists because // these objects can contain extra _arbitrary_ fields that users can // specify, and there is no way of knowing what type they could be. Set(string, interface{}) error // Remove removes the field associated with the specified key. // There is no way to remove the `kty` (key type). You will ALWAYS be left with one field in a jwk.Key. // Index returns the index where the given key exists, -1 otherwise Index(Key) int // Len returns the number of keys in the set Len() int // LookupKeyID returns the first key matching the given key id. // The second return value is false if there are no keys matching the key id. // The set *may* contain multiple keys with the same key id. If you // need all of them, use `Iterate()` LookupKeyID(string) (Key, bool) // Remove removes the key from the set. Remove(Key) bool // Iterate creates an iterator to iterate through all keys in the set. Iterate(context.Context) KeyIterator // Clone create a new set with identical keys. Keys themselves are not cloned. Clone() (Set, error) } type set struct { keys []Key mu sync.RWMutex dc DecodeCtx privateParams map[string]interface{} } type HeaderVisitor = iter.MapVisitor type HeaderVisitorFunc = iter.MapVisitorFunc type HeaderPair = mapiter.Pair type HeaderIterator = mapiter.Iterator type KeyPair = arrayiter.Pair type KeyIterator = arrayiter.Iterator type PublicKeyer interface { // PublicKey creates the corresponding PublicKey type for this object. // All fields are copied onto the new public key, except for those that are not allowed. // Returned value must not be the receiver itself. PublicKey() (Key, error) } // HTTPClient specifies the minimum interface that is required for our JWK // fetching tools. type HTTPClient interface { Do(*http.Request) (*http.Response, error) } type DecodeCtx interface { json.DecodeCtx IgnoreParseError() bool } type KeyWithDecodeCtx interface { SetDecodeCtx(DecodeCtx) DecodeCtx() DecodeCtx } type AutoRefreshError struct { Error error URL string } // Whitelist is an interface for a set of URL whitelists. When provided // to JWK fetching operations, urls are checked against this object, and // the object must return true for urls to be fetched. type Whitelist interface { IsAllowed(string) bool } golang-github-lestrrat-go-jwx-1.2.30/jwk/interface_gen.go000066400000000000000000000077531465311135100233220ustar00rootroot00000000000000// This file is auto-generated. DO NOT EDIT package jwk import ( "context" "crypto" "crypto/x509" "github.com/lestrrat-go/jwx/jwa" ) const ( KeyTypeKey = "kty" KeyUsageKey = "use" KeyOpsKey = "key_ops" AlgorithmKey = "alg" KeyIDKey = "kid" X509URLKey = "x58" X509CertChainKey = "x5c" X509CertThumbprintKey = "x5t" X509CertThumbprintS256Key = "x5t#S256" ) // Key defines the minimal interface for each of the // key types. Their use and implementation differ significantly // between each key types, so you should use type assertions // to perform more specific tasks with each key type Key interface { // Get returns the value of a single field. The second boolean return value // will be false if the field is not stored in the source // // This method, which returns an `interface{}`, exists because // these objects can contain extra _arbitrary_ fields that users can // specify, and there is no way of knowing what type they could be Get(string) (interface{}, bool) // Set sets the value of a single field. Note that certain fields, // notably "kty", cannot be altered, but will not return an error // // This method, which takes an `interface{}`, exists because // these objects can contain extra _arbitrary_ fields that users can // specify, and there is no way of knowing what type they could be Set(string, interface{}) error // Remove removes the field associated with the specified key. // There is no way to remove the `kty` (key type). You will ALWAYS be left with one field in a jwk.Key. Remove(string) error // Raw creates the corresponding raw key. For example, // EC types would create *ecdsa.PublicKey or *ecdsa.PrivateKey, // and OctetSeq types create a []byte key. // // If you do not know the exact type of a jwk.Key before attempting // to obtain the raw key, you can simply pass a pointer to an // empty interface as the first argument. // // If you already know the exact type, it is recommended that you // pass a pointer to the zero value of the actual key type (e.g. &rsa.PrivateKey) // for efficiency. Raw(interface{}) error // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 Thumbprint(crypto.Hash) ([]byte, error) // Iterate returns an iterator that returns all keys and values. // See github.com/lestrrat-go/iter for a description of the iterator. Iterate(ctx context.Context) HeaderIterator // Walk is a utility tool that allows a visitor to iterate all keys and values Walk(context.Context, HeaderVisitor) error // AsMap is a utility tool that returns a new map that contains the same fields as the source AsMap(context.Context) (map[string]interface{}, error) // PrivateParams returns the non-standard elements in the source structure // WARNING: DO NOT USE PrivateParams() IF YOU HAVE CONCURRENT CODE ACCESSING THEM. // Use `AsMap()` to get a copy of the entire header, or use `Iterate()` instead PrivateParams() map[string]interface{} // Clone creates a new instance of the same type Clone() (Key, error) // PublicKey creates the corresponding PublicKey type for this object. // All fields are copied onto the new public key, except for those that are not allowed. // // If the key is already a public key, it returns a new copy minus the disallowed fields as above. PublicKey() (Key, error) // KeyType returns the `kid` of a JWK KeyType() jwa.KeyType // KeyUsage returns `use` of a JWK KeyUsage() string // KeyOps returns `key_ops` of a JWK KeyOps() KeyOperationList // Algorithm returns `alg` of a JWK Algorithm() string // KeyID returns `kid` of a JWK KeyID() string // X509URL returns `x58` of a JWK X509URL() string // X509CertChain returns `x5c` of a JWK X509CertChain() []*x509.Certificate // X509CertThumbprint returns `x5t` of a JWK X509CertThumbprint() string // X509CertThumbprintS256 returns `x5t#S256` of a JWK X509CertThumbprintS256() string makePairs() []*HeaderPair } golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/000077500000000000000000000000001465311135100220025ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/000077500000000000000000000000001465311135100225455ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/genheader/000077500000000000000000000000001465311135100244675ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/genheader/go.mod000066400000000000000000000003621465311135100255760ustar00rootroot00000000000000module gitub.com/lestrrat-go/jwx/jwk/internal/cmd/genheader go 1.16 require ( github.com/goccy/go-yaml v1.9.4 github.com/lestrrat-go/codegen v1.0.3 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/crypto v0.6.0 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/genheader/go.sum000066400000000000000000000211401465311135100256200ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/goccy/go-yaml v1.9.4 h1:S0GCYjwHKVI6IHqio7QWNKNThUl6NLzFd/g8Z65Axw8= github.com/goccy/go-yaml v1.9.4/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/codegen v1.0.3 h1:HviEmojOS51tH5L762bRMAZPj8DTIkwk24Il8M+54sE= github.com/lestrrat-go/codegen v1.0.3/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/genheader/main.go000066400000000000000000000537101465311135100257500ustar00rootroot00000000000000package main // This program generates all of the possible key types that we use // RSA public/private keys, ECDSA private/public keys, and symmetric keys // // Each share the same standard header section, but have their own // header fields import ( "bytes" "encoding/json" "flag" "fmt" "log" "os" "sort" "strconv" "strings" "github.com/goccy/go-yaml" "github.com/lestrrat-go/codegen" ) func main() { if err := _main(); err != nil { log.Printf("%s", err) os.Exit(1) } } func yaml2json(fn string) ([]byte, error) { in, err := os.Open(fn) if err != nil { return nil, fmt.Errorf(`failed to open %q: %w`, fn, err) } defer in.Close() var v interface{} if err := yaml.NewDecoder(in).Decode(&v); err != nil { return nil, fmt.Errorf(`failed to decode %q: %w`, fn, err) } return json.Marshal(v) } type KeyType struct { Filename string `json:"filename"` Prefix string `json:"prefix"` KeyType string `json:"key_type"` Objects []*codegen.Object `json:"objects"` } func _main() error { codegen.RegisterZeroVal(`jwa.EllipticCurveAlgorithm`, `jwa.InvalidEllipticCurve`) codegen.RegisterZeroVal(`jwa.KeyType`, `jwa.InvalidKeyType`) var objectsFile = flag.String("objects", "objects.yml", "") flag.Parse() jsonSrc, err := yaml2json(*objectsFile) if err != nil { return err } var def struct { StdFields codegen.FieldList `json:"std_fields"` KeyTypes []*KeyType `json:"key_types"` } if err := json.NewDecoder(bytes.NewReader(jsonSrc)).Decode(&def); err != nil { return fmt.Errorf(`failed to decode %q: %w`, *objectsFile, err) } for _, kt := range def.KeyTypes { for _, object := range kt.Objects { for _, f := range def.StdFields { object.AddField(f) } object.Organize() } } if err := generateGenericHeaders(def.StdFields); err != nil { return err } for _, kt := range def.KeyTypes { if err := generateKeyType(kt); err != nil { return fmt.Errorf(`failed to generate key type %s: %w`, kt.Prefix, err) } } return nil } func boolFromField(f codegen.Field, field string) (bool, error) { v, ok := f.Extra(field) if !ok { return false, fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } b, ok := v.(bool) if !ok { return false, fmt.Errorf("%q should be a bool in %q", field, f.Name(true)) } return b, nil } func stringFromField(f codegen.Field, field string) (string, error) { v, ok := f.Extra(field) if !ok { return "", fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } s, ok := v.(string) if !ok { return "", fmt.Errorf("%q should be a string in %q", field, f.Name(true)) } return s, nil } func fieldIsStd(f codegen.Field) bool { v, _ := boolFromField(f, `is_std`) return v } func fieldNoDeref(f codegen.Field) bool { v, _ := boolFromField(f, "noDeref") return v } func fieldHasGet(f codegen.Field) bool { v, _ := boolFromField(f, "hasGet") return v } func fieldHasAccept(f codegen.Field) bool { v, _ := boolFromField(f, "hasAccept") return v } func fieldGetterReturnValue(f codegen.Field) string { if v, err := stringFromField(f, `getter_return_value`); err == nil { return v } return f.Type() } func IsPointer(f codegen.Field) bool { return strings.HasPrefix(f.Type(), `*`) } func PointerElem(f codegen.Field) string { return strings.TrimPrefix(f.Type(), `*`) } func fieldStorageType(s string) string { if fieldStorageTypeIsIndirect(s) { return `*` + s } return s } func fieldStorageTypeIsIndirect(s string) bool { return s == "KeyOperationList" || !(strings.HasPrefix(s, `*`) || strings.HasPrefix(s, `[]`) || strings.HasSuffix(s, `List`)) } func stringFromObject(o *codegen.Object, field string) (string, error) { v, ok := o.Extra(field) if !ok { return "", fmt.Errorf("%q does not exist in %q", field, o.Name(true)) } s, ok := v.(string) if !ok { return "", fmt.Errorf("%q should be a string in %q", field, o.Name(true)) } return s, nil } func objectRawKeyType(obj *codegen.Object) string { v, err := stringFromObject(obj, "raw_key_type") if err != nil { panic(err.Error()) } return v } func objectStructName(o *codegen.Object) string { v, err := stringFromObject(o, `struct_name`) if err != nil { return "" } return v } func objectInterface(o *codegen.Object) string { v, err := stringFromObject(o, `interface`) if err != nil { return "" } return v } type Constant struct { Name string Value string } func generateKeyType(kt *KeyType) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.L("// This file is auto-generated by jwk/internal/cmd/genheader/main.go. DO NOT EDIT") o.LL("package jwk") // Find unique field key names to create constants var constants []Constant seen := make(map[string]struct{}) for _, obj := range kt.Objects { for _, f := range obj.Fields() { if fieldIsStd(f) { continue } n := f.Name(true) if _, ok := seen[n]; ok { continue } seen[n] = struct{}{} constants = append(constants, Constant{Name: kt.Prefix + n + "Key", Value: f.JSON()}) } } sort.Slice(constants, func(i, j int) bool { return constants[i].Name < constants[j].Name }) o.LL("const (") for _, c := range constants { o.L("%s = %q", c.Name, c.Value) } o.L(")") for _, obj := range kt.Objects { if err := generateObject(o, kt, obj); err != nil { return fmt.Errorf(`failed to generate object %s: %w`, obj.Name(true)) } } if err := o.WriteFile(kt.Filename, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, kt.Filename, err) } return nil } func generateObject(o *codegen.Output, kt *KeyType, obj *codegen.Object) error { ifName := kt.Prefix + obj.Name(true) if v := objectInterface(obj); v != "" { ifName = v } structName := strings.ToLower(kt.Prefix) + obj.Name(true) if v := objectStructName(obj); v != "" { structName = v } o.LL("type %s interface {", ifName) o.L("Key") o.L("FromRaw(%s) error", objectRawKeyType(obj)) for _, f := range obj.Fields() { if fieldIsStd(f) { continue } o.L("%s() %s", f.GetterMethod(true), f.Type()) } o.L("}") o.LL("type %s struct {", structName) for _, f := range obj.Fields() { o.L("%s %s", f.Name(false), fieldStorageType(f.Type())) if c := f.Comment(); len(c) > 0 { o.R(" // %s", c) } } o.L("privateParams map[string]interface{}") o.L("mu *sync.RWMutex") o.L("dc json.DecodeCtx") o.L("}") o.LL("func New%[1]s() %[1]s {", ifName) o.L("return new%s()", ifName) o.L("}") o.LL("func new%s() *%s {", ifName, structName) o.L("return &%s{", structName) o.L("mu: &sync.RWMutex{},") o.L("privateParams: make(map[string]interface{}),") o.L("}") o.L("}") o.LL("func (h %s) KeyType() jwa.KeyType {", structName) o.L("return %s", kt.KeyType) o.L("}") for _, f := range obj.Fields() { o.LL("func (h *%s) %s() ", structName, f.GetterMethod(true)) if v := fieldGetterReturnValue(f); v != "" { o.R("%s", v) } else if IsPointer(f) && fieldNoDeref(f) { o.R("%s", f.Type()) } else { o.R("%s", PointerElem(f)) } o.R(" {") if fieldHasGet(f) { o.L("if h.%s != nil {", f.Name(false)) o.L("return h.%s.Get()", f.Name(false)) o.L("}") o.L("return %s", codegen.ZeroVal(PointerElem(f))) } else if !IsPointer(f) { if fieldStorageTypeIsIndirect(f.Type()) { o.L("if h.%s != nil {", f.Name(false)) o.L("return *(h.%s)", f.Name(false)) o.L("}") o.L("return %s", codegen.ZeroVal(PointerElem(f))) } else { o.L("return h.%s", f.Name(false)) } } o.L("}") // func (h *stdHeaders) %s() %s } o.LL("func (h *%s) makePairs() []*HeaderPair {", structName) o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") // NOTE: building up an array is *slow*? o.LL("var pairs []*HeaderPair") o.L("pairs = append(pairs, &HeaderPair{Key: \"kty\", Value: %s})", kt.KeyType) for _, f := range obj.Fields() { var keyName string if fieldIsStd(f) { keyName = f.Name(true) + "Key" } else { keyName = kt.Prefix + f.Name(true) + "Key" } o.L("if h.%s != nil {", f.Name(false)) if fieldStorageTypeIsIndirect(f.Type()) { o.L("pairs = append(pairs, &HeaderPair{Key: %s, Value: *(h.%s)})", keyName, f.Name(false)) } else { o.L("pairs = append(pairs, &HeaderPair{Key: %s, Value: h.%s})", keyName, f.Name(false)) } o.L("}") } o.L("for k, v := range h.privateParams {") o.L("pairs = append(pairs, &HeaderPair{Key: k, Value: v})") o.L("}") o.L("return pairs") o.L("}") // end of (h *stdHeaders) makePairs(...) o.LL("func (h *%s) PrivateParams() map[string]interface{} {", structName) o.L("return h.privateParams") o.L("}") o.LL("func (h *%s) Get(name string) (interface{}, bool) {", structName) o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("switch name {") o.L("case KeyTypeKey:") o.L("return h.KeyType(), true") for _, f := range obj.Fields() { if fieldIsStd(f) { o.L("case %sKey:", f.Name(true)) } else { o.L("case %s%sKey:", kt.Prefix, f.Name(true)) } o.L("if h.%s == nil {", f.Name(false)) o.L("return nil, false") o.L("}") if fieldHasGet(f) { o.L("return h.%s.Get(), true", f.Name(false)) } else if fieldStorageTypeIsIndirect(f.Type()) { o.L("return *(h.%s), true", f.Name(false)) } else { o.L("return h.%s, true", f.Name(false)) } } o.L("default:") o.L("v, ok := h.privateParams[name]") o.L("return v, ok") o.L("}") // end switch name o.L("}") // func (h *%s) Get(name string) (interface{}, bool) o.LL("func (h *%s) Set(name string, value interface{}) error {", structName) o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("return h.setNoLock(name, value)") o.L("}") o.LL("func (h *%s) setNoLock(name string, value interface{}) error {", structName) o.L("switch name {") o.L("case \"kty\":") o.L("return nil") // This is not great, but we just ignore it for _, f := range obj.Fields() { var keyName string if fieldIsStd(f) { keyName = f.Name(true) + "Key" } else { keyName = kt.Prefix + f.Name(true) + "Key" } o.L("case %s:", keyName) if f.Name(false) == `algorithm` { o.L("switch v := value.(type) {") o.L("case string:") o.L("h.algorithm = &v") o.L("case fmt.Stringer:") o.L("tmp := v.String()") o.L("h.algorithm = &tmp") o.L("default:") o.L("return errors.Errorf(`invalid type for %%s key: %%T`, %s, value)", keyName) o.L("}") o.L("return nil") } else if f.Name(false) == `keyUsage` { o.L("switch v := value.(type) {") o.L("case KeyUsageType:") o.L("switch v {") o.L("case ForSignature, ForEncryption:") o.L("tmp := v.String()") o.L("h.keyUsage = &tmp") o.L("default:") o.L("return errors.Errorf(`invalid key usage type %%s`, v)") o.L("}") o.L("case string:") o.L("h.keyUsage = &v") o.L("default:") o.L("return errors.Errorf(`invalid key usage type %%s`, v)") o.L("}") } else if fieldHasAccept(f) { o.L("var acceptor %s", f.Type()) o.L("if err := acceptor.Accept(value); err != nil {") o.L("return errors.Wrapf(err, `invalid value for %%s key`, %s)", keyName) o.L("}") // end if err := h.%s.Accept(value) if fieldStorageTypeIsIndirect(f.Type()) { o.L("h.%s = &acceptor", f.Name(false)) } else { o.L("h.%s = acceptor", f.Name(false)) } o.L("return nil") } else { o.L("if v, ok := value.(%s); ok {", f.Type()) if fieldStorageTypeIsIndirect(f.Type()) { o.L("h.%s = &v", f.Name(false)) } else { o.L("h.%s = v", f.Name(false)) } o.L("return nil") o.L("}") // end if v, ok := value.(%s) o.L("return errors.Errorf(`invalid value for %%s key: %%T`, %s, value)", keyName) } } o.L("default:") o.L("if h.privateParams == nil {") o.L("h.privateParams = map[string]interface{}{}") o.L("}") // end if h.privateParams == nil o.L("h.privateParams[name] = value") o.L("}") // end switch name o.L("return nil") o.L("}") // end func (h *%s) Set(name string, value interface{}) o.LL("func (k *%s) Remove(key string) error {", structName) o.L("k.mu.Lock()") o.L("defer k.mu.Unlock()") o.L("switch key {") for _, f := range obj.Fields() { var keyName string if fieldIsStd(f) { keyName = f.Name(true) + "Key" } else { keyName = kt.Prefix + f.Name(true) + "Key" } o.L("case %s:", keyName) o.L("k.%s = nil", f.Name(false)) } o.L("default:") o.L("delete(k.privateParams, key)") o.L("}") o.L("return nil") // currently unused, but who knows o.L("}") o.LL("func (k *%s) Clone() (Key, error) {", structName) o.L("return cloneKey(k)") o.L("}") o.LL("func (k *%s) DecodeCtx() json.DecodeCtx {", structName) o.L("k.mu.RLock()") o.L("defer k.mu.RUnlock()") o.L("return k.dc") o.L("}") o.LL("func (k *%s) SetDecodeCtx(dc json.DecodeCtx) {", structName) o.L("k.mu.Lock()") o.L("defer k.mu.Unlock()") o.L("k.dc = dc") o.L("}") o.LL("func (h *%s) UnmarshalJSON(buf []byte) error {", structName) for _, f := range obj.Fields() { o.L("h.%s = nil", f.Name(false)) } o.L("dec := json.NewDecoder(bytes.NewReader(buf))") o.L("LOOP:") o.L("for {") o.L("tok, err := dec.Token()") o.L("if err != nil {") o.L("return errors.Wrap(err, `error reading token`)") o.L("}") o.L("switch tok := tok.(type) {") o.L("case json.Delim:") o.L("// Assuming we're doing everything correctly, we should ONLY") o.L("// get either '{' or '}' here.") o.L("if tok == '}' { // End of object") o.L("break LOOP") o.L("} else if tok != '{' {") o.L("return errors.Errorf(`expected '{', but got '%%c'`, tok)") o.L("}") o.L("case string: // Objects can only have string keys") o.L("switch tok {") // kty is special. Hardcode it. o.L("case KeyTypeKey:") o.L("val, err := json.ReadNextStringToken(dec)") o.L("if err != nil {") o.L("return errors.Wrap(err, `error reading token`)") o.L("}") o.L("if val != %s.String() {", kt.KeyType) o.L("return errors.Errorf(`invalid kty value for RSAPublicKey (%%s)`, val)") o.L("}") for _, f := range obj.Fields() { if f.Type() == "string" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextStringToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "[]byte" { name := f.Name(true) switch f.Name(false) { case "n", "e", "d", "p", "dp", "dq", "x", "y", "q", "qi", "octets": name = kt.Prefix + f.Name(true) } o.L("case %sKey:", name) o.L("if err := json.AssignNextBytesToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", name) o.L("}") } else { name := f.Name(true) if f.Name(false) == "crv" { name = kt.Prefix + f.Name(true) } o.L("case %sKey:", name) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", name) o.L("}") o.L("h.%s = &decoded", f.Name(false)) } } o.L("default:") // This looks like bad code, but we're unrolling things for maximum // runtime efficiency o.L("if dc := h.dc; dc != nil {") o.L("if localReg := dc.Registry(); localReg != nil {") o.L("decoded, err := localReg.Decode(dec, tok)") o.L("if err == nil {") o.L("h.setNoLock(tok, decoded)") o.L("continue") o.L("}") o.L("}") o.L("}") o.L("decoded, err := registry.Decode(dec, tok)") o.L("if err == nil {") o.L("h.setNoLock(tok, decoded)") o.L("continue") o.L("}") o.L("return errors.Wrapf(err, `could not decode field %%s`, tok)") o.L("}") o.L("default:") o.L("return errors.Errorf(`invalid token %%T`, tok)") o.L("}") o.L("}") for _, f := range obj.Fields() { if f.IsRequired() { o.L("if h.%s == nil {", f.Name(false)) o.L("return errors.Errorf(`required field %s is missing`)", f.JSON()) o.L("}") } } o.L("return nil") o.L("}") o.LL("func (h %s) MarshalJSON() ([]byte, error) {", structName) o.L("data := make(map[string]interface{})") o.L("fields := make([]string, 0, %d)", len(obj.Fields())) o.L("for _, pair := range h.makePairs() {") o.L("fields = append(fields, pair.Key.(string))") o.L("data[pair.Key.(string)] = pair.Value") o.L("}") o.LL("sort.Strings(fields)") o.L("buf := pool.GetBytesBuffer()") o.L("defer pool.ReleaseBytesBuffer(buf)") o.L("buf.WriteByte('{')") o.L("enc := json.NewEncoder(buf)") o.L("for i, f := range fields {") o.L("if i > 0 {") o.L("buf.WriteRune(',')") o.L("}") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(f)") o.L("buf.WriteString(`\":`)") o.L("v := data[f]") o.L("switch v := v.(type) {") o.L("case []byte:") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(base64.EncodeToString(v))") o.L("buf.WriteRune('\"')") o.L("default:") o.L("if err := enc.Encode(v); err != nil {") o.L("return nil, errors.Wrapf(err, `failed to encode value for field %%s`, f)") o.L("}") o.L("buf.Truncate(buf.Len()-1)") o.L("}") o.L("}") o.L("buf.WriteByte('}')") o.L("ret := make([]byte, buf.Len())") o.L("copy(ret, buf.Bytes())") o.L("return ret, nil") o.L("}") o.LL("func (h *%s) Iterate(ctx context.Context) HeaderIterator {", structName) o.L("pairs := h.makePairs()") o.L("ch := make(chan *HeaderPair, len(pairs))") o.L("go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) {") o.L("defer close(ch)") o.L("for _, pair := range pairs {") o.L("select {") o.L("case <-ctx.Done():") o.L("return") o.L("case ch<-pair:") o.L("}") o.L("}") o.L("}(ctx, ch, pairs)") o.L("return mapiter.New(ch)") o.L("}") o.LL("func (h *%s) Walk(ctx context.Context, visitor HeaderVisitor) error {", structName) o.L("return iter.WalkMap(ctx, h, visitor)") o.L("}") o.LL("func (h *%s) AsMap(ctx context.Context) (map[string]interface{}, error) {", structName) o.L("return iter.AsMap(ctx, h)") o.L("}") return nil } func generateGenericHeaders(fields codegen.FieldList) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.L("// This file is auto-generated. DO NOT EDIT") o.LL("package jwk") o.LL("import (") pkgs := []string{ "crypto/x509", "fmt", "github.com/lestrrat-go/jwx/jwa", "github.com/pkg/errors", } for _, pkg := range pkgs { o.L("%s", strconv.Quote(pkg)) } o.L(")") o.LL("const (") o.L("KeyTypeKey = \"kty\"") for _, f := range fields { o.L("%sKey = %s", f.Name(true), strconv.Quote(f.JSON())) } o.L(")") // end const o.LL("// Key defines the minimal interface for each of the") o.L("// key types. Their use and implementation differ significantly") o.L("// between each key types, so you should use type assertions") o.L("// to perform more specific tasks with each key") o.L("type Key interface {") o.L("// Get returns the value of a single field. The second boolean return value") o.L("// will be false if the field is not stored in the source") o.L("//\n// This method, which returns an `interface{}`, exists because") o.L("// these objects can contain extra _arbitrary_ fields that users can") o.L("// specify, and there is no way of knowing what type they could be") o.L("Get(string) (interface{}, bool)") o.LL("// Set sets the value of a single field. Note that certain fields,") o.L("// notably \"kty\", cannot be altered, but will not return an error") o.L("//\n// This method, which takes an `interface{}`, exists because") o.L("// these objects can contain extra _arbitrary_ fields that users can") o.L("// specify, and there is no way of knowing what type they could be") o.L("Set(string, interface{}) error") o.LL("// Remove removes the field associated with the specified key.") o.L("// There is no way to remove the `kty` (key type). You will ALWAYS be left with one field in a jwk.Key.") o.L("Remove(string) error") o.LL("// Raw creates the corresponding raw key. For example,") o.L("// EC types would create *ecdsa.PublicKey or *ecdsa.PrivateKey,") o.L("// and OctetSeq types create a []byte key.") o.L("//\n// If you do not know the exact type of a jwk.Key before attempting") o.L("// to obtain the raw key, you can simply pass a pointer to an") o.L("// empty interface as the first argument.") o.L("//\n// If you already know the exact type, it is recommended that you") o.L("// pass a pointer to the zero value of the actual key type (e.g. &rsa.PrivateKey)") o.L("// for efficiency.") o.L("Raw(interface{}) error") o.LL("// Thumbprint returns the JWK thumbprint using the indicated") o.L("// hashing algorithm, according to RFC 7638") o.L("Thumbprint(crypto.Hash) ([]byte, error)") o.LL("// Iterate returns an iterator that returns all keys and values.") o.L("// See github.com/lestrrat-go/iter for a description of the iterator.") o.L("Iterate(ctx context.Context) HeaderIterator") o.LL("// Walk is a utility tool that allows a visitor to iterate all keys and values") o.L("Walk(context.Context, HeaderVisitor) error") o.LL("// AsMap is a utility tool that returns a new map that contains the same fields as the source") o.L("AsMap(context.Context) (map[string]interface{}, error)") o.LL("// PrivateParams returns the non-standard elements in the source structure") o.L("// WARNING: DO NOT USE PrivateParams() IF YOU HAVE CONCURRENT CODE ACCESSING THEM.") o.L("// Use `AsMap()` to get a copy of the entire header, or use `Iterate()` instead") o.L("PrivateParams() map[string]interface{}") o.LL("// Clone creates a new instance of the same type") o.L("Clone() (Key, error)") o.LL("// PublicKey creates the corresponding PublicKey type for this object.") o.L("// All fields are copied onto the new public key, except for those that are not allowed.") o.L("//\n// If the key is already a public key, it returns a new copy minus the disallowed fields as above.") o.L("PublicKey() (Key, error)") o.LL("// KeyType returns the `kid` of a JWK") o.L("KeyType() jwa.KeyType") for _, f := range fields { o.L("// %s returns `%s` of a JWK", f.GetterMethod(true), f.JSON()) o.L("%s() ", f.GetterMethod(true)) if v := fieldGetterReturnValue(f); v != "" { o.R("%s", v) } else if IsPointer(f) && fieldNoDeref(f) { o.R("%s", f.Type()) } else { o.R("%s", PointerElem(f)) } } o.LL("makePairs() []*HeaderPair") o.L("}") if err := o.WriteFile("interface_gen.go", codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to interface_gen.go: %w`, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/internal/cmd/genheader/objects.yml000066400000000000000000000101171465311135100266430ustar00rootroot00000000000000std_fields: - name: keyUsage json: use comment: https://tools.ietf.org/html/rfc7517#section-4.2 is_std: true - name: keyOps type: KeyOperationList json: key_ops hasAccept: true is_std: true comment: https://tools.ietf.org/html/rfc7517#section-4.3 - name: algorithm json: alg is_std: true comment: https://tools.ietf.org/html/rfc7517#section-4.4 - name: keyID json: kid is_std: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.4 - name: x509URL getter: X509URL unexported_name: x509URL exported_name: X509URL json: x58 is_std: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.5 - name: x509CertChain getter: X509CertChain getter_return_value: "[]*x509.Certificate" type: CertificateChain json: x5c is_std: true hasAccept: true hasGet: true noDeref: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.6 - name: x509CertThumbprint getter: X509CertThumbprint json: x5t is_std: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.7 - name: x509CertThumbprintS256 getter: X509CertThumbprintS256 json: "x5t#S256" is_std: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.8 key_types: - filename: rsa_gen.go prefix: RSA key_type: jwa.RSA objects: - name: publicKey raw_key_type: "*rsa.PublicKey" fields: - name: n type: "[]byte" required: true - name: e type: "[]byte" required: true - name: privateKey raw_key_type: "*rsa.PrivateKey" fields: - name: d type: "[]byte" required: true - name: p type: "[]byte" - name: q type: "[]byte" - name: dp getter: DP exported_name: DP type: "[]byte" - name: dq getter: DQ exported_name: DQ type: "[]byte" - name: qi getter: QI exported_name: QI type: "[]byte" - name: n type: "[]byte" required: true - name: e type: "[]byte" required: true - filename: ecdsa_gen.go prefix: ECDSA key_type: jwa.EC objects: - name: publicKey raw_key_type: "*ecdsa.PublicKey" fields: - name: x type: "[]byte" required: true - name: y type: "[]byte" required: true - name: crv getter: Crv type: jwa.EllipticCurveAlgorithm required: true - name: privateKey raw_key_type: "*ecdsa.PrivateKey" fields: - name: d type: "[]byte" required: true - name: x type: "[]byte" required: true - name: y type: "[]byte" required: true - name: crv getter: Crv type: jwa.EllipticCurveAlgorithm required: true - filename: symmetric_gen.go prefix: Symmetric key_type: jwa.OctetSeq objects: - name: symmetricKey interface: SymmetricKey struct_name: symmetricKey raw_key_type: "[]byte" fields: - name: octets type: "[]byte" json: k required: true - filename: okp_gen.go prefix: OKP key_type: jwa.OKP objects: - name: publicKey raw_key_type: "interface{}" fields: - name: x type: "[]byte" required: true - name: crv getter: Crv type: jwa.EllipticCurveAlgorithm required: true - name: privateKey raw_key_type: "interface{}" fields: - name: x type: "[]byte" required: true - name: d type: "[]byte" required: true - name: crv getter: Crv type: jwa.EllipticCurveAlgorithm required: true golang-github-lestrrat-go-jwx-1.2.30/jwk/io.go000066400000000000000000000011301465311135100211170ustar00rootroot00000000000000// Automatically generated by internal/cmd/genreadfile/main.go. DO NOT EDIT package jwk import "os" // ReadFileOption describes options that can be passed to ReadFile. type ReadFileOption interface { Option readFileOption() } func ReadFile(path string, options ...ReadFileOption) (Set, error) { var parseOptions []ParseOption for _, option := range options { switch option := option.(type) { case ParseOption: parseOptions = append(parseOptions, option) } } f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() return ParseReader(f, parseOptions...) } golang-github-lestrrat-go-jwx-1.2.30/jwk/iterator_test.go000066400000000000000000000136731465311135100234170ustar00rootroot00000000000000package jwk_test import ( "context" "fmt" "testing" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func TestIterator(t *testing.T) { commonValues := map[string]interface{}{ jwk.AlgorithmKey: "dummy", jwk.KeyIDKey: "dummy-kid", jwk.KeyUsageKey: "dummy-usage", jwk.KeyOpsKey: jwk.KeyOperationList{jwk.KeyOpSign, jwk.KeyOpVerify, jwk.KeyOpEncrypt, jwk.KeyOpDecrypt, jwk.KeyOpWrapKey, jwk.KeyOpUnwrapKey, jwk.KeyOpDeriveKey, jwk.KeyOpDeriveBits}, "private": "dummy-private", } verifyIterators := func(t *testing.T, v jwk.Key, expected map[string]interface{}) { t.Helper() t.Run("Iterate", func(t *testing.T) { seen := make(map[string]interface{}) for iter := v.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() seen[pair.Key.(string)] = pair.Value getV, ok := v.Get(pair.Key.(string)) if !assert.True(t, ok, `v.Get should succeed for key %#v`, pair.Key) { return } if !assert.Equal(t, pair.Value, getV, `pair.Value should match value from v.Get()`) { return } } if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("Walk", func(t *testing.T) { seen := make(map[string]interface{}) v.Walk(context.TODO(), jwk.HeaderVisitorFunc(func(key string, value interface{}) error { seen[key] = value return nil })) if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("AsMap", func(t *testing.T) { seen, err := v.AsMap(context.TODO()) if !assert.NoError(t, err, `v.AsMap should succeed`) { return } if !assert.Equal(t, expected, seen, `values should match`) { return } }) } type iterTestCase struct { Extras map[string]interface{} Func func() jwk.Key } testcases := []iterTestCase{ { Extras: map[string]interface{}{ jwk.RSANKey: []byte("0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw"), jwk.RSAEKey: []byte("AQAB"), jwk.RSADKey: []byte("X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqijwp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d_cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBznbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFzme1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q"), jwk.RSAPKey: []byte("83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPVnwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqVWlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs"), jwk.RSAQKey: []byte("3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyumqjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgxkIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk"), jwk.RSADPKey: []byte("G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oimYwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_NmtuYZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0"), jwk.RSADQKey: []byte("s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUUvMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk"), jwk.RSAQIKey: []byte("GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzgUIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rxyR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU"), }, Func: func() jwk.Key { return jwk.NewRSAPrivateKey() }, }, { Extras: map[string]interface{}{ jwk.RSANKey: []byte("0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw"), jwk.RSAEKey: []byte("AQAB"), }, Func: func() jwk.Key { return jwk.NewRSAPublicKey() }, }, { Extras: map[string]interface{}{ jwk.ECDSACrvKey: jwa.P256, jwk.ECDSAXKey: []byte("MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4"), jwk.ECDSAYKey: []byte("4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM"), jwk.ECDSADKey: []byte("870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE"), }, Func: func() jwk.Key { return jwk.NewECDSAPrivateKey() }, }, { Extras: map[string]interface{}{ jwk.ECDSACrvKey: jwa.P256, jwk.ECDSAXKey: []byte("MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4"), jwk.ECDSAYKey: []byte("4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM"), }, Func: func() jwk.Key { return jwk.NewECDSAPublicKey() }, }, { Extras: map[string]interface{}{ jwk.SymmetricOctetsKey: []byte("abcd"), }, Func: func() jwk.Key { return jwk.NewSymmetricKey() }, }, } for _, test := range testcases { key := test.Func() key2 := test.Func() expected := make(map[string]interface{}) expected[jwk.KeyTypeKey] = key.KeyType() for k, v := range commonValues { if !assert.NoError(t, key.Set(k, v), `key.Set %#v should succeed`, k) { return } expected[k] = v } for k, v := range test.Extras { if !assert.NoError(t, key.Set(k, v), `key.Set %#v should succeed`, k) { return } expected[k] = v } t.Run(fmt.Sprintf("%T", key), func(t *testing.T) { verifyIterators(t, key, expected) }) t.Run(fmt.Sprintf("%T (after json roundtripping)", key), func(t *testing.T) { buf, err := json.Marshal(key) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } if !assert.NoError(t, json.Unmarshal(buf, key2), `json.Unmarshal should succeed`) { return } verifyIterators(t, key2, expected) }) } } golang-github-lestrrat-go-jwx-1.2.30/jwk/jwk.go000066400000000000000000000503161465311135100213150ustar00rootroot00000000000000//go:generate ./gen.sh // Package jwk implements JWK as described in https://tools.ietf.org/html/rfc7517 package jwk import ( "bytes" "context" "crypto" "crypto/ecdsa" "crypto/ed25519" "crypto/rsa" "crypto/x509" "encoding/pem" "io" "math/big" "net/http" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) var registry = json.NewRegistry() func bigIntToBytes(n *big.Int) ([]byte, error) { if n == nil { return nil, errors.New(`invalid *big.Int value`) } return n.Bytes(), nil } // New creates a jwk.Key from the given key (RSA/ECDSA/symmetric keys). // // The constructor auto-detects the type of key to be instantiated // based on the input type: // // - "crypto/rsa".PrivateKey and "crypto/rsa".PublicKey creates an RSA based key // - "crypto/ecdsa".PrivateKey and "crypto/ecdsa".PublicKey creates an EC based key // - "crypto/ed25519".PrivateKey and "crypto/ed25519".PublicKey creates an OKP based key // - []byte creates a symmetric key func New(key interface{}) (Key, error) { if key == nil { return nil, errors.New(`jwk.New requires a non-nil key`) } var ptr interface{} switch v := key.(type) { case rsa.PrivateKey: ptr = &v case rsa.PublicKey: ptr = &v case ecdsa.PrivateKey: ptr = &v case ecdsa.PublicKey: ptr = &v default: ptr = v } switch rawKey := ptr.(type) { case *rsa.PrivateKey: k := NewRSAPrivateKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case *rsa.PublicKey: k := NewRSAPublicKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case *ecdsa.PrivateKey: k := NewECDSAPrivateKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case *ecdsa.PublicKey: k := NewECDSAPublicKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case ed25519.PrivateKey: k := NewOKPPrivateKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case ed25519.PublicKey: k := NewOKPPublicKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case x25519.PrivateKey: k := NewOKPPrivateKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case x25519.PublicKey: k := NewOKPPublicKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil case []byte: k := NewSymmetricKey() if err := k.FromRaw(rawKey); err != nil { return nil, errors.Wrapf(err, `failed to initialize %T from %T`, k, rawKey) } return k, nil default: return nil, errors.Errorf(`invalid key type '%T' for jwk.New`, key) } } // PublicSetOf returns a new jwk.Set consisting of // public keys of the keys contained in the set. // // This is useful when you are generating a set of private keys, and // you want to generate the corresponding public versions for the // users to verify with. // // Be aware that all fields will be copied onto the new public key. It is the caller's // responsibility to remove any fields, if necessary. func PublicSetOf(v Set) (Set, error) { newSet := NewSet() n := v.Len() for i := 0; i < n; i++ { k, ok := v.Get(i) if !ok { return nil, errors.New("key not found") } pubKey, err := PublicKeyOf(k) if err != nil { return nil, errors.Wrapf(err, `failed to get public key of %T`, k) } newSet.Add(pubKey) } return newSet, nil } // PublicKeyOf returns the corresponding public version of the jwk.Key. // If `v` is a SymmetricKey, then the same value is returned. // If `v` is already a public key, the key itself is returned. // // If `v` is a private key type that has a `PublicKey()` method, be aware // that all fields will be copied onto the new public key. It is the caller's // responsibility to remove any fields, if necessary // // If `v` is a raw key, the key is first converted to a `jwk.Key` func PublicKeyOf(v interface{}) (Key, error) { if pk, ok := v.(PublicKeyer); ok { return pk.PublicKey() } jk, err := New(v) if err != nil { return nil, errors.Wrapf(err, `failed to convert key into JWK`) } return jk.PublicKey() } // PublicRawKeyOf returns the corresponding public key of the given // value `v` (e.g. given *rsa.PrivateKey, *rsa.PublicKey is returned) // If `v` is already a public key, the key itself is returned. // // The returned value will always be a pointer to the public key, // except when a []byte (e.g. symmetric key, ed25519 key) is passed to `v`. // In this case, the same []byte value is returned. func PublicRawKeyOf(v interface{}) (interface{}, error) { if pk, ok := v.(PublicKeyer); ok { pubk, err := pk.PublicKey() if err != nil { return nil, errors.Wrapf(err, `failed to obtain public key from %T`, v) } var raw interface{} if err := pubk.Raw(&raw); err != nil { return nil, errors.Wrapf(err, `failed to obtain raw key from %T`, pubk) } return raw, nil } // This may be a silly idea, but if the user gave us a non-pointer value... var ptr interface{} switch v := v.(type) { case rsa.PrivateKey: ptr = &v case rsa.PublicKey: ptr = &v case ecdsa.PrivateKey: ptr = &v case ecdsa.PublicKey: ptr = &v default: ptr = v } switch x := ptr.(type) { case *rsa.PrivateKey: return &x.PublicKey, nil case *rsa.PublicKey: return x, nil case *ecdsa.PrivateKey: return &x.PublicKey, nil case *ecdsa.PublicKey: return x, nil case ed25519.PrivateKey: return x.Public(), nil case ed25519.PublicKey: return x, nil case x25519.PrivateKey: return x.Public(), nil case x25519.PublicKey: return x, nil case []byte: return x, nil default: return nil, errors.Errorf(`invalid key type passed to PublicKeyOf (%T)`, v) } } // Fetch fetches a JWK resource specified by a URL. The url must be // pointing to a resource that is supported by `net/http`. // // If you are using the same `jwk.Set` for long periods of time during // the lifecycle of your program, and would like to periodically refresh the // contents of the object with the data at the remote resource, // consider using `jwk.AutoRefresh`, which automatically refreshes // jwk.Set objects asynchronously. // // See the list of `jwk.FetchOption`s for various options to tweak the // behavior, including providing alternate HTTP Clients, setting a backoff, // and using whitelists. func Fetch(ctx context.Context, urlstring string, options ...FetchOption) (Set, error) { res, err := fetch(ctx, urlstring, options...) if err != nil { return nil, err } defer res.Body.Close() keyset, err := ParseReader(res.Body) if err != nil { return nil, errors.Wrap(err, `failed to parse JWK set`) } return keyset, nil } func fetch(ctx context.Context, urlstring string, options ...FetchOption) (*http.Response, error) { var wl Whitelist var httpcl HTTPClient = http.DefaultClient bo := backoff.Null() for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identHTTPClient{}: httpcl = option.Value().(HTTPClient) case identFetchBackoff{}: bo = option.Value().(backoff.Policy) case identFetchWhitelist{}: wl = option.Value().(Whitelist) } } if wl != nil { if !wl.IsAllowed(urlstring) { return nil, errors.New(`url rejected by whitelist`) } } req, err := http.NewRequestWithContext(ctx, http.MethodGet, urlstring, nil) if err != nil { return nil, errors.Wrap(err, "failed to new request to remote JWK") } b := bo.Start(ctx) var lastError error for backoff.Continue(b) { res, err := httpcl.Do(req) if err != nil { lastError = errors.Wrap(err, "failed to fetch remote JWK") continue } if res.StatusCode != http.StatusOK { lastError = errors.Errorf("failed to fetch remote JWK (status = %d)", res.StatusCode) continue } return res, nil } // It's possible for us to get here without populating lastError. // e.g. what if we bailed out of `for backoff.Contineu(b)` without making // a single request? or, <-ctx.Done() returned? if lastError == nil { lastError = errors.New(`fetching remote JWK did not complete`) } return nil, lastError } // ParseRawKey is a combination of ParseKey and Raw. It parses a single JWK key, // and assigns the "raw" key to the given parameter. The key must either be // a pointer to an empty interface, or a pointer to the actual raw key type // such as *rsa.PrivateKey, *ecdsa.PublicKey, *[]byte, etc. func ParseRawKey(data []byte, rawkey interface{}) error { key, err := ParseKey(data) if err != nil { return errors.Wrap(err, `failed to parse key`) } if err := key.Raw(rawkey); err != nil { return errors.Wrap(err, `failed to assign to raw key variable`) } return nil } // parsePEMEncodedRawKey parses a key in PEM encoded ASN.1 DER format. It tires its // best to determine the key type, but when it just can't, it will return // an error func parsePEMEncodedRawKey(src []byte) (interface{}, []byte, error) { block, rest := pem.Decode(src) if block == nil { return nil, nil, errors.New(`failed to decode PEM data`) } switch block.Type { // Handle the semi-obvious cases case "RSA PRIVATE KEY": key, err := x509.ParsePKCS1PrivateKey(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse PKCS1 private key`) } return key, rest, nil case "RSA PUBLIC KEY": key, err := x509.ParsePKCS1PublicKey(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse PKCS1 public key`) } return key, rest, nil case "EC PRIVATE KEY": key, err := x509.ParseECPrivateKey(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse EC private key`) } return key, rest, nil case "PUBLIC KEY": // XXX *could* return dsa.PublicKey key, err := x509.ParsePKIXPublicKey(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse PKIX public key`) } return key, rest, nil case "PRIVATE KEY": key, err := x509.ParsePKCS8PrivateKey(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse PKCS8 private key`) } return key, rest, nil case "CERTIFICATE": cert, err := x509.ParseCertificate(block.Bytes) if err != nil { return nil, nil, errors.Wrap(err, `failed to parse certificate`) } return cert.PublicKey, rest, nil default: return nil, nil, errors.Errorf(`invalid PEM block type %s`, block.Type) } } type setDecodeCtx struct { json.DecodeCtx ignoreParseError bool } func (ctx *setDecodeCtx) IgnoreParseError() bool { return ctx.ignoreParseError } // ParseKey parses a single key JWK. Unlike `jwk.Parse` this method will // report failure if you attempt to pass a JWK set. Only use this function // when you know that the data is a single JWK. // // Given a WithPEM(true) option, this function assumes that the given input // is PEM encoded ASN.1 DER format key. // // Note that a successful parsing of any type of key does NOT necessarily // guarantee a valid key. For example, no checks against expiration dates // are performed for certificate expiration, no checks against missing // parameters are performed, etc. func ParseKey(data []byte, options ...ParseOption) (Key, error) { var parsePEM bool var localReg *json.Registry for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identPEM{}: parsePEM = option.Value().(bool) case identLocalRegistry{}: // in reality you can only pass either withLocalRegistry or // WithTypedField, but since withLocalRegistry is used only by us, // we skip checking localReg = option.Value().(*json.Registry) case identTypedField{}: pair := option.Value().(typedFieldPair) if localReg == nil { localReg = json.NewRegistry() } localReg.Register(pair.Name, pair.Value) case identIgnoreParseError{}: return nil, errors.Errorf(`jwk.WithIgnoreParseError() cannot be used for ParseKey()`) } } if parsePEM { raw, _, err := parsePEMEncodedRawKey(data) if err != nil { return nil, errors.Wrap(err, `failed to parse PEM encoded key`) } return New(raw) } var hint struct { Kty string `json:"kty"` D json.RawMessage `json:"d"` } if err := json.Unmarshal(data, &hint); err != nil { return nil, errors.Wrap(err, `failed to unmarshal JSON into key hint`) } var key Key switch jwa.KeyType(hint.Kty) { case jwa.RSA: if len(hint.D) > 0 { key = newRSAPrivateKey() } else { key = newRSAPublicKey() } case jwa.EC: if len(hint.D) > 0 { key = newECDSAPrivateKey() } else { key = newECDSAPublicKey() } case jwa.OctetSeq: key = newSymmetricKey() case jwa.OKP: if len(hint.D) > 0 { key = newOKPPrivateKey() } else { key = newOKPPublicKey() } default: return nil, errors.Errorf(`invalid key type from JSON (%s)`, hint.Kty) } if localReg != nil { dcKey, ok := key.(json.DecodeCtxContainer) if !ok { return nil, errors.Errorf(`typed field was requested, but the key (%T) does not support DecodeCtx`, key) } dc := json.NewDecodeCtx(localReg) dcKey.SetDecodeCtx(dc) defer func() { dcKey.SetDecodeCtx(nil) }() } if err := json.Unmarshal(data, key); err != nil { return nil, errors.Wrapf(err, `failed to unmarshal JSON into key (%T)`, key) } return key, nil } // Parse parses JWK from the incoming []byte. // // For JWK sets, this is a convenience function. You could just as well // call `json.Unmarshal` against an empty set created by `jwk.NewSet()` // to parse a JSON buffer into a `jwk.Set`. // // This function exists because many times the user does not know before hand // if a JWK(s) resource at a remote location contains a single JWK key or // a JWK set, and `jwk.Parse()` can handle either case, returning a JWK Set // even if the data only contains a single JWK key // // If you are looking for more information on how JWKs are parsed, or if // you know for sure that you have a single key, please see the documentation // for `jwk.ParseKey()`. func Parse(src []byte, options ...ParseOption) (Set, error) { var parsePEM bool var localReg *json.Registry var ignoreParseError bool for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identPEM{}: parsePEM = option.Value().(bool) case identIgnoreParseError{}: ignoreParseError = option.Value().(bool) case identTypedField{}: pair := option.Value().(typedFieldPair) if localReg == nil { localReg = json.NewRegistry() } localReg.Register(pair.Name, pair.Value) } } s := NewSet() if parsePEM { src = bytes.TrimSpace(src) for len(src) > 0 { raw, rest, err := parsePEMEncodedRawKey(src) if err != nil { return nil, errors.Wrap(err, `failed to parse PEM encoded key`) } key, err := New(raw) if err != nil { return nil, errors.Wrapf(err, `failed to create jwk.Key from %T`, raw) } s.Add(key) src = bytes.TrimSpace(rest) } return s, nil } if localReg != nil || ignoreParseError { dcKs, ok := s.(KeyWithDecodeCtx) if !ok { return nil, errors.Errorf(`typed field was requested, but the key set (%T) does not support DecodeCtx`, s) } dc := &setDecodeCtx{ DecodeCtx: json.NewDecodeCtx(localReg), ignoreParseError: ignoreParseError, } dcKs.SetDecodeCtx(dc) defer func() { dcKs.SetDecodeCtx(nil) }() } if err := json.Unmarshal(src, s); err != nil { return nil, errors.Wrap(err, "failed to unmarshal JWK set") } return s, nil } // ParseReader parses a JWK set from the incoming byte buffer. func ParseReader(src io.Reader, options ...ParseOption) (Set, error) { // meh, there's no way to tell if a stream has "ended" a single // JWKs except when we encounter an EOF, so just... ReadAll buf, err := io.ReadAll(src) if err != nil { return nil, errors.Wrap(err, `failed to read from io.Reader`) } return Parse(buf, options...) } // ParseString parses a JWK set from the incoming string. func ParseString(s string, options ...ParseOption) (Set, error) { return Parse([]byte(s), options...) } // AssignKeyID is a convenience function to automatically assign the "kid" // section of the key, if it already doesn't have one. It uses Key.Thumbprint // method with crypto.SHA256 as the default hashing algorithm func AssignKeyID(key Key, options ...Option) error { if _, ok := key.Get(KeyIDKey); ok { return nil } hash := crypto.SHA256 for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identThumbprintHash{}: hash = option.Value().(crypto.Hash) } } h, err := key.Thumbprint(hash) if err != nil { return errors.Wrap(err, `failed to generate thumbprint`) } if err := key.Set(KeyIDKey, base64.EncodeToString(h)); err != nil { return errors.Wrap(err, `failed to set "kid"`) } return nil } func cloneKey(src Key) (Key, error) { var dst Key switch src.(type) { case RSAPrivateKey: dst = NewRSAPrivateKey() case RSAPublicKey: dst = NewRSAPublicKey() case ECDSAPrivateKey: dst = NewECDSAPrivateKey() case ECDSAPublicKey: dst = NewECDSAPublicKey() case OKPPrivateKey: dst = NewOKPPrivateKey() case OKPPublicKey: dst = NewOKPPublicKey() case SymmetricKey: dst = NewSymmetricKey() default: return nil, errors.Errorf(`unknown key type %T`, src) } for _, pair := range src.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := dst.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set %q`, key) } } return dst, nil } // Pem serializes the given jwk.Key in PEM encoded ASN.1 DER format, // using either PKCS8 for private keys and PKIX for public keys. // If you need to encode using PKCS1 or SEC1, you must do it yourself. // The argument to this function must be of type jwk.Key or jwk.Set // // Currently only EC (including Ed25519) and RSA keys (and jwk.Set // comprised of these key types) are supported. func Pem(v interface{}) ([]byte, error) { var set Set switch v := v.(type) { case Key: set = NewSet() set.Add(v) case Set: set = v default: return nil, errors.Errorf(`argument to Pem must be either jwk.Key or jwk.Set: %T`, v) } var ret []byte for i := 0; i < set.Len(); i++ { key, _ := set.Get(i) typ, buf, err := asnEncode(key) if err != nil { return nil, errors.Wrapf(err, `failed to encode content for key #%d`, i) } var block pem.Block block.Type = typ block.Bytes = buf ret = append(ret, pem.EncodeToMemory(&block)...) } return ret, nil } func asnEncode(key Key) (string, []byte, error) { switch key := key.(type) { case RSAPrivateKey, ECDSAPrivateKey, OKPPrivateKey: var rawkey interface{} if err := key.Raw(&rawkey); err != nil { return "", nil, errors.Wrap(err, `failed to get raw key from jwk.Key`) } buf, err := x509.MarshalPKCS8PrivateKey(rawkey) if err != nil { return "", nil, errors.Wrap(err, `failed to marshal PKCS8`) } return "PRIVATE KEY", buf, nil case RSAPublicKey, ECDSAPublicKey, OKPPublicKey: var rawkey interface{} if err := key.Raw(&rawkey); err != nil { return "", nil, errors.Wrap(err, `failed to get raw key from jwk.Key`) } buf, err := x509.MarshalPKIXPublicKey(rawkey) if err != nil { return "", nil, errors.Wrap(err, `failed to marshal PKIX`) } return "PUBLIC KEY", buf, nil default: return "", nil, errors.Errorf(`unsupported key type %T`, key) } } // RegisterCustomField allows users to specify that a private field // be decoded as an instance of the specified type. This option has // a global effect. // // For example, suppose you have a custom field `x-birthday`, which // you want to represent as a string formatted in RFC3339 in JSON, // but want it back as `time.Time`. // // In that case you would register a custom field as follows // // jwk.RegisterCustomField(`x-birthday`, timeT) // // Then `key.Get("x-birthday")` will still return an `interface{}`, // but you can convert its type to `time.Time` // // bdayif, _ := key.Get(`x-birthday`) // bday := bdayif.(time.Time) func RegisterCustomField(name string, object interface{}) { registry.Register(name, object) } golang-github-lestrrat-go-jwx-1.2.30/jwk/jwk_test.go000066400000000000000000002030321465311135100223470ustar00rootroot00000000000000package jwk_test import ( "bytes" "context" "crypto" "crypto/ecdsa" "crypto/ed25519" "crypto/rand" "crypto/rsa" "fmt" "io" "math/big" "net/http" "net/http/httptest" "reflect" "regexp" "strconv" "strings" "testing" "time" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/internal/jose" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jws" "github.com/pkg/errors" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/x25519" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) var zeroval reflect.Value var certChainSrc = []string{ "MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYwMTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3HKrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQmVZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpRSgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRTcDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEuMB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDSkdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IGOgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMUA2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTXRE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuHqDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWVU+4=", "MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoXDTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHUTBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMbVmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwgSW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlvbiBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEgMB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUwAwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdvZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUdIAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4OWBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0VmsfSxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==", "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd", } type keyDef struct { Expected interface{} Value interface{} Method string } var commonDef map[string]keyDef func init() { var certChain jwk.CertificateChain certChain.Accept(certChainSrc) commonDef = map[string]keyDef{ jwk.AlgorithmKey: { Method: "Algorithm", Value: "random-algorithm", }, jwk.KeyIDKey: { Method: "KeyID", Value: "12312rdfsdfer2342342", }, jwk.KeyUsageKey: { Method: "KeyUsage", Value: jwk.ForSignature, Expected: string(jwk.ForSignature), }, jwk.KeyOpsKey: { Method: "KeyOps", Value: jwk.KeyOperationList{ jwk.KeyOpSign, jwk.KeyOpVerify, jwk.KeyOpEncrypt, jwk.KeyOpDecrypt, jwk.KeyOpWrapKey, jwk.KeyOpUnwrapKey, jwk.KeyOpDeriveKey, jwk.KeyOpDeriveBits, }, }, jwk.X509CertChainKey: { Method: "X509CertChain", Value: certChainSrc, Expected: certChain.Get(), }, jwk.X509CertThumbprintKey: { Value: "x5t blah", Method: "X509CertThumbprint", }, jwk.X509CertThumbprintS256Key: { Value: "x5t#256 blah", Method: "X509CertThumbprintS256", }, jwk.X509URLKey: { Value: "http://github.com/lestrrat-go/jwx", Method: "X509URL", }, "private": {Value: "boofoo"}, } } func complimentDef(def map[string]keyDef) map[string]keyDef { for k, v := range commonDef { if _, ok := def[k]; !ok { def[k] = v } } return def } func makeKeyJSON(def map[string]keyDef) []byte { data := map[string]interface{}{} for k, v := range def { data[k] = v.Value } src, err := json.Marshal(data) if err != nil { panic(err) } return src } func expectBase64(kdef keyDef) keyDef { v, err := base64.DecodeString(kdef.Value.(string)) if err != nil { panic(err) } kdef.Expected = v return kdef } func expectedRawKeyType(key jwk.Key) interface{} { switch key := key.(type) { case jwk.RSAPrivateKey: return &rsa.PrivateKey{} case jwk.RSAPublicKey: return &rsa.PublicKey{} case jwk.ECDSAPrivateKey: return &ecdsa.PrivateKey{} case jwk.ECDSAPublicKey: return &ecdsa.PublicKey{} case jwk.SymmetricKey: return []byte(nil) case jwk.OKPPrivateKey: switch key.Crv() { case jwa.Ed25519: return ed25519.PrivateKey(nil) case jwa.X25519: return x25519.PrivateKey(nil) default: panic("unknown curve type for OKPPrivateKey:" + key.Crv()) } case jwk.OKPPublicKey: switch key.Crv() { case jwa.Ed25519: return ed25519.PublicKey(nil) case jwa.X25519: return x25519.PublicKey(nil) default: panic("unknown curve type for OKPPublicKey:" + key.Crv()) } default: panic("unknown key type:" + reflect.TypeOf(key).String()) } } func VerifyKey(t *testing.T, def map[string]keyDef) { t.Helper() def = complimentDef(def) key, err := jwk.ParseKey(makeKeyJSON(def)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } t.Run("Fields", func(t *testing.T) { for k, kdef := range def { k := k kdef := kdef t.Run(k, func(t *testing.T) { getval, ok := key.Get(k) if !assert.True(t, ok, `key.Get(%s) should succeed`, k) { return } expected := kdef.Expected if expected == nil { expected = kdef.Value } if !assert.Equal(t, expected, getval) { return } if mname := kdef.Method; mname != "" { method := reflect.ValueOf(key).MethodByName(mname) if !assert.NotEqual(t, zeroval, method, `method should not be a zero value`) { return } retvals := method.Call(nil) if !assert.Len(t, retvals, 1, `there should be 1 return value`) { return } if !assert.Equal(t, expected, retvals[0].Interface()) { return } } }) } }) t.Run("Roundtrip", func(t *testing.T) { buf, err := json.Marshal(key) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } newkey, err := jwk.ParseKey(buf) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } m1, err := key.AsMap(context.TODO()) if !assert.NoError(t, err, `key.AsMap should succeed`) { return } m2, err := newkey.AsMap(context.TODO()) if !assert.NoError(t, err, `key.AsMap should succeed`) { return } if !assert.Equal(t, m1, m2, `keys should match`) { return } }) t.Run("Raw", func(t *testing.T) { typ := expectedRawKeyType(key) var rawkey interface{} if !assert.NoError(t, key.Raw(&rawkey), `Raw() should succeed`) { return } if !assert.IsType(t, rawkey, typ, `raw key should be of this type`) { return } }) t.Run("PublicKey", func(t *testing.T) { _, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } }) t.Run("Set/Remove", func(t *testing.T) { ctx := context.TODO() newkey, err := key.Clone() if !assert.NoError(t, err, `key.Clone should succeed`) { return } for iter := key.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() newkey.Remove(pair.Key.(string)) } m, err := newkey.AsMap(ctx) if !assert.NoError(t, err, `key.AsMap should succeed`) { return } if !assert.Len(t, m, 1, `keys should have 1 key (kty remains)`) { return } for iter := key.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() if !assert.NoError(t, newkey.Set(pair.Key.(string), pair.Value), `newkey.Set should succeed`) { return } } }) } func TestNew(t *testing.T) { t.Parallel() k, err := jwk.New(nil) if !assert.Nil(t, k, "key should be nil") { return } if !assert.Error(t, err, "nil key should cause an error") { return } } func TestParse(t *testing.T) { t.Parallel() verify := func(t *testing.T, src string, expected reflect.Type) { t.Helper() t.Run("json.Unmarshal", func(t *testing.T) { set := jwk.NewSet() if err := json.Unmarshal([]byte(src), set); !assert.NoError(t, err, `json.Unmarshal should succeed`) { return } if !assert.True(t, set.Len() > 0, "set.Keys should be greater than 0") { return } ctx, cancel := context.WithCancel(context.Background()) defer cancel() for iter := set.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() if !assert.True(t, reflect.TypeOf(pair.Value).AssignableTo(expected), "key should be a %s", expected) { return } } }) t.Run("jwk.Parse", func(t *testing.T) { t.Helper() set, err := jwk.Parse([]byte(`{"keys":[` + src + `]}`)) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } if !assert.True(t, set.Len() > 0, "set.Len should be greater than 0") { return } for iter := set.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() key := pair.Value.(jwk.Key) switch key := key.(type) { case jwk.RSAPrivateKey, jwk.ECDSAPrivateKey, jwk.OKPPrivateKey, jwk.RSAPublicKey, jwk.ECDSAPublicKey, jwk.OKPPublicKey, jwk.SymmetricKey: default: assert.Fail(t, fmt.Sprintf("invalid type: %T", key)) } } }) t.Run("jwk.ParseKey", func(t *testing.T) { t.Helper() key, err := jwk.ParseKey([]byte(src)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } t.Run("Raw", func(t *testing.T) { t.Helper() var irawkey interface{} if !assert.NoError(t, key.Raw(&irawkey), `key.Raw(&interface) should ucceed`) { return } var crawkey interface{} switch k := key.(type) { case jwk.RSAPrivateKey: var rawkey rsa.PrivateKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&rsa.PrivateKey) should succeed`) { return } crawkey = &rawkey case jwk.RSAPublicKey: var rawkey rsa.PublicKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&rsa.PublicKey) should succeed`) { return } crawkey = &rawkey case jwk.ECDSAPrivateKey: var rawkey ecdsa.PrivateKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&ecdsa.PrivateKey) should succeed`) { return } crawkey = &rawkey case jwk.OKPPrivateKey: switch k.Crv() { case jwa.Ed25519: var rawkey ed25519.PrivateKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&ed25519.PrivateKey) should succeed`) { return } crawkey = rawkey case jwa.X25519: var rawkey x25519.PrivateKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&x25519.PrivateKey) should succeed`) { return } crawkey = rawkey default: t.Errorf(`invalid curve %s`, k.Crv()) } // NOTE: Has to come after private // key, since it's a subset of the // private key variant. case jwk.OKPPublicKey: switch k.Crv() { case jwa.Ed25519: var rawkey ed25519.PublicKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&ed25519.PublicKey) should succeed`) { return } crawkey = rawkey case jwa.X25519: var rawkey x25519.PublicKey if !assert.NoError(t, key.Raw(&rawkey), `key.Raw(&x25519.PublicKey) should succeed`) { return } crawkey = rawkey default: t.Errorf(`invalid curve %s`, k.Crv()) } default: t.Errorf(`invalid key type %T`, key) return } if !assert.IsType(t, crawkey, irawkey, `key types should match`) { return } }) }) t.Run("ParseRawKey", func(t *testing.T) { var v interface{} if !assert.NoError(t, jwk.ParseRawKey([]byte(src), &v), `jwk.ParseRawKey should succeed`) { return } }) } t.Run("RSA Public Key", func(t *testing.T) { t.Parallel() const src = `{ "e":"AQAB", "kty":"RSA", "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw" }` verify(t, src, reflect.TypeOf((*jwk.RSAPublicKey)(nil)).Elem()) }) t.Run("RSA Private Key", func(t *testing.T) { t.Parallel() const src = `{ "kty":"RSA", "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", "e":"AQAB", "d":"X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqijwp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d_cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBznbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFzme1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q", "p":"83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPVnwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqVWlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs", "q":"3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyumqjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgxkIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk", "dp":"G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oimYwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_NmtuYZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0", "dq":"s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUUvMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk", "qi":"GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzgUIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rxyR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU", "alg":"RS256", "kid":"2011-04-29" }` verify(t, src, reflect.TypeOf((*jwk.RSAPrivateKey)(nil)).Elem()) }) t.Run("ECDSA Private Key", func(t *testing.T) { t.Parallel() const src = `{ "kty" : "EC", "crv" : "P-256", "x" : "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y" : "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "d" : "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk" }` verify(t, src, reflect.TypeOf((*jwk.ECDSAPrivateKey)(nil)).Elem()) }) t.Run("Invalid ECDSA Private Key", func(t *testing.T) { t.Parallel() const src = `{ "kty" : "EC", "crv" : "P-256", "y" : "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "d" : "0g5vAEKzugrXaRbgKG0Tj2qJ5lMP4Bezds1_sTybkfk" }` _, err := jwk.ParseString(src) if !assert.Error(t, err, `jwk.ParseString should fail`) { return } }) t.Run("Ed25519 Public Key", func(t *testing.T) { t.Parallel() // Key taken from RFC 8037 const src = `{ "kty" : "OKP", "crv" : "Ed25519", "x" : "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo" }` verify(t, src, reflect.TypeOf((*jwk.OKPPublicKey)(nil)).Elem()) }) t.Run("Ed25519 Private Key", func(t *testing.T) { t.Parallel() // Key taken from RFC 8037 const src = `{ "kty" : "OKP", "crv" : "Ed25519", "d" : "nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A", "x" : "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo" }` verify(t, src, reflect.TypeOf((*jwk.OKPPrivateKey)(nil)).Elem()) }) t.Run("X25519 Public Key", func(t *testing.T) { t.Parallel() // Key taken from RFC 8037 const src = `{ "kty" : "OKP", "crv" : "X25519", "x" : "3p7bfXt9wbTTW2HC7OQ1Nz-DQ8hbeGdNrfx-FG-IK08" }` verify(t, src, reflect.TypeOf((*jwk.OKPPublicKey)(nil)).Elem()) }) t.Run("X25519 Private Key", func(t *testing.T) { t.Parallel() // Key taken from RFC 8037 const src = `{ "kty" : "OKP", "crv" : "X25519", "d" : "dwdtCnMYpX08FsFyUbJmRd9ML4frwJkqsXf7pR25LCo", "x" : "hSDwCYkwp1R0i33ctD73Wg2_Og0mOBr066SpjqqbTmo" }` verify(t, src, reflect.TypeOf((*jwk.OKPPrivateKey)(nil)).Elem()) }) } func TestRoundtrip(t *testing.T) { t.Parallel() generateRSA := func(use string, keyID string) (jwk.Key, error) { k, err := jwxtest.GenerateRsaJwk() if err != nil { return nil, err } k.Set(jwk.KeyUsageKey, use) k.Set(jwk.KeyIDKey, keyID) return k, nil } generateECDSA := func(use, keyID string) (jwk.Key, error) { k, err := jwxtest.GenerateEcdsaJwk() if err != nil { return nil, err } k.Set(jwk.KeyUsageKey, use) k.Set(jwk.KeyIDKey, keyID) return k, nil } generateSymmetric := func(use, keyID string) (jwk.Key, error) { k, err := jwxtest.GenerateSymmetricJwk() if err != nil { return nil, err } k.Set(jwk.KeyUsageKey, use) k.Set(jwk.KeyIDKey, keyID) return k, nil } generateEd25519 := func(use, keyID string) (jwk.Key, error) { k, err := jwxtest.GenerateEd25519Jwk() if err != nil { return nil, err } k.Set(jwk.KeyUsageKey, use) k.Set(jwk.KeyIDKey, keyID) return k, nil } generateX25519 := func(use, keyID string) (jwk.Key, error) { k, err := jwxtest.GenerateX25519Jwk() if err != nil { return nil, err } k.Set(jwk.KeyUsageKey, use) k.Set(jwk.KeyIDKey, keyID) return k, nil } tests := []struct { generate func(string, string) (jwk.Key, error) use string keyID string }{ { use: "enc", keyID: "enc1", generate: generateRSA, }, { use: "enc", keyID: "enc2", generate: generateRSA, }, { use: "sig", keyID: "sig1", generate: generateRSA, }, { use: "sig", keyID: "sig2", generate: generateRSA, }, { use: "sig", keyID: "sig3", generate: generateSymmetric, }, { use: "enc", keyID: "enc4", generate: generateECDSA, }, { use: "enc", keyID: "enc5", generate: generateECDSA, }, { use: "sig", keyID: "sig4", generate: generateECDSA, }, { use: "sig", keyID: "sig5", generate: generateECDSA, }, { use: "sig", keyID: "sig6", generate: generateEd25519, }, { use: "enc", keyID: "enc6", generate: generateX25519, }, } ks1 := jwk.NewSet() for _, tc := range tests { key, err := tc.generate(tc.use, tc.keyID) if !assert.NoError(t, err, `tc.generate should succeed`) { return } if !assert.True(t, ks1.Add(key), `ks1.Add should succeed`) { return } } buf, err := json.MarshalIndent(ks1, "", " ") if !assert.NoError(t, err, "JSON marshal succeeded") { return } ks2, err := jwk.Parse(buf) if !assert.NoError(t, err, "JSON unmarshal succeeded") { t.Logf("%s", buf) return } for _, tc := range tests { key1, ok := ks2.LookupKeyID(tc.keyID) if !assert.True(t, ok, "ks2.LookupKeyID should succeed") { return } key2, ok := ks1.LookupKeyID(tc.keyID) if !assert.True(t, ok, "ks1.LookupKeyID should succeed") { return } pk1json, _ := json.Marshal(key1) pk2json, _ := json.Marshal(key2) if !assert.Equal(t, pk1json, pk2json, "Keys should match (kid = %s)", tc.keyID) { return } } } func TestAccept(t *testing.T) { t.Parallel() t.Run("KeyOperation", func(t *testing.T) { t.Parallel() testcases := []struct { Args interface{} Error bool }{ { Args: "sign", }, { Args: []jwk.KeyOperation{jwk.KeyOpSign, jwk.KeyOpVerify, jwk.KeyOpEncrypt, jwk.KeyOpDecrypt, jwk.KeyOpWrapKey, jwk.KeyOpUnwrapKey}, }, { Args: jwk.KeyOperationList{jwk.KeyOpSign, jwk.KeyOpVerify, jwk.KeyOpEncrypt, jwk.KeyOpDecrypt, jwk.KeyOpWrapKey, jwk.KeyOpUnwrapKey}, }, { Args: []interface{}{"sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey"}, }, { Args: []string{"sign", "verify", "encrypt", "decrypt", "wrapKey", "unwrapKey"}, }, { Args: []string{"sigh"}, Error: true, }, } for _, test := range testcases { var ops jwk.KeyOperationList if test.Error { if !assert.Error(t, ops.Accept(test.Args), `KeyOperationList.Accept should fail`) { return } } else { if !assert.NoError(t, ops.Accept(test.Args), `KeyOperationList.Accept should succeed`) { return } } } }) t.Run("KeyUsage", func(t *testing.T) { t.Parallel() testcases := []struct { Args interface{} Error bool }{ {Args: jwk.ForSignature}, {Args: jwk.ForEncryption}, {Args: jwk.ForSignature.String()}, {Args: jwk.ForEncryption.String()}, {Args: jwk.KeyUsageType("bogus"), Error: true}, {Args: "bogus", Error: true}, } for _, test := range testcases { var usage jwk.KeyUsageType if test.Error { if !assert.Error(t, usage.Accept(test.Args), `KeyUsage.Accept should fail`) { return } } else { if !assert.NoError(t, usage.Accept(test.Args), `KeyUsage.Accept should succeed`) { return } } } }) } func TestAssignKeyID(t *testing.T) { t.Parallel() generators := []func() (jwk.Key, error){ jwxtest.GenerateRsaJwk, jwxtest.GenerateRsaPublicJwk, jwxtest.GenerateEcdsaJwk, jwxtest.GenerateEcdsaPublicJwk, jwxtest.GenerateSymmetricJwk, jwxtest.GenerateEd25519Jwk, } for _, generator := range generators { k, err := generator() if !assert.NoError(t, err, `jwk generation should be successful`) { return } if !assert.Empty(t, k.KeyID(), `k.KeyID should be non-empty`) { return } if !assert.NoError(t, jwk.AssignKeyID(k), `AssignKeyID shuld be successful`) { return } if !assert.NotEmpty(t, k.KeyID(), `k.KeyID should be non-empty`) { return } } } func TestPublicKeyOf(t *testing.T) { t.Parallel() rsakey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `generating raw RSA key should succeed`) { return } ecdsakey, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, `generating raw ECDSA key should succeed`) { return } octets := jwxtest.GenerateSymmetricKey() ed25519key, err := jwxtest.GenerateEd25519Key() if !assert.NoError(t, err, `generating raw Ed25519 key should succeed`) { return } x25519key, err := jwxtest.GenerateX25519Key() if !assert.NoError(t, err, `generating raw X25519 key should succeed`) { return } keys := []struct { Key interface{} PublicKeyType reflect.Type }{ { Key: rsakey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(rsakey.PublicKey)), }, { Key: *rsakey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(rsakey.PublicKey)), }, { Key: rsakey.PublicKey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(rsakey.PublicKey)), }, { Key: &rsakey.PublicKey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(rsakey.PublicKey)), }, { Key: ecdsakey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(ecdsakey.PublicKey)), }, { Key: *ecdsakey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(ecdsakey.PublicKey)), }, { Key: ecdsakey.PublicKey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(ecdsakey.PublicKey)), }, { Key: &ecdsakey.PublicKey, PublicKeyType: reflect.PtrTo(reflect.TypeOf(ecdsakey.PublicKey)), }, { Key: octets, PublicKeyType: reflect.TypeOf(octets), }, { Key: ed25519key, PublicKeyType: reflect.TypeOf(ed25519key.Public()), }, { Key: ed25519key.Public(), PublicKeyType: reflect.TypeOf(ed25519key.Public()), }, { Key: x25519key, PublicKeyType: reflect.TypeOf(x25519key.Public()), }, { Key: x25519key.Public(), PublicKeyType: reflect.TypeOf(x25519key.Public()), }, } for _, key := range keys { key := key t.Run(fmt.Sprintf("%T", key.Key), func(t *testing.T) { t.Parallel() pubkey, err := jwk.PublicRawKeyOf(key.Key) if !assert.NoError(t, err, `jwk.PublicKeyOf(%T) should succeed`, key.Key) { return } if !assert.Equal(t, key.PublicKeyType, reflect.TypeOf(pubkey), `public key types should match (got %T)`, pubkey) { return } // Go through jwk.New jwkKey, err := jwk.New(key.Key) if !assert.NoError(t, err, `jwk.New should succeed`) { return } pubJwkKey, err := jwk.PublicKeyOf(jwkKey) if !assert.NoError(t, err, `jwk.PublicKeyOf(%T) should succeed`, jwkKey) { return } // Get the raw key to compare var rawKey interface{} if !assert.NoError(t, pubJwkKey.Raw(&rawKey), `pubJwkKey.Raw should succeed`) { return } if !assert.Equal(t, key.PublicKeyType, reflect.TypeOf(rawKey), `public key types should match (got %T)`, rawKey) { return } }) } t.Run("Set", func(t *testing.T) { var setKeys []struct { Key jwk.Key PublicKeyType reflect.Type } set := jwk.NewSet() count := 0 for _, key := range keys { if reflect.TypeOf(key.Key) == key.PublicKeyType { continue } jwkKey, err := jwk.New(key.Key) if !assert.NoError(t, err, `jwk.New should succeed`) { return } jwkKey.Set(jwk.KeyIDKey, fmt.Sprintf("key%d", count)) setKeys = append(setKeys, struct { Key jwk.Key PublicKeyType reflect.Type }{ Key: jwkKey, PublicKeyType: key.PublicKeyType, }) set.Add(jwkKey) count++ } newSet, err := jwk.PublicSetOf(set) if !assert.NoError(t, err, `jwk.PublicKeyOf(jwk.Set) should succeed`) { return } for i, key := range setKeys { setKey, ok := newSet.Get(i) if !assert.True(t, ok, `element %d should be present`, i) { return } if !assert.Equal(t, fmt.Sprintf("key%d", i), setKey.KeyID(), `KeyID() should match for %T`, setKey) { return } // Get the raw key to compare var rawKey interface{} if !assert.NoError(t, setKey.Raw(&rawKey), `pubJwkKey.Raw should succeed`) { return } if !assert.Equal(t, key.PublicKeyType, reflect.TypeOf(rawKey), `public key types should match (got %T)`, rawKey) { return } } }) } func TestIssue207(t *testing.T) { t.Parallel() const src = `{"kty":"EC","alg":"ECMR","crv":"P-521","key_ops":["deriveKey"],"x":"AJwCS845x9VljR-fcrN2WMzIJHDYuLmFShhyu8ci14rmi2DMFp8txIvaxG8n7ZcODeKIs1EO4E_Bldm_pxxs8cUn","y":"ASjz754cIQHPJObihPV8D7vVNfjp_nuwP76PtbLwUkqTk9J1mzCDKM3VADEk-Z1tP-DHiwib6If8jxnb_FjNkiLJ"}` // Using a loop here because we're using sync.Pool // just for sanity. for i := 0; i < 10; i++ { k, err := jwk.ParseKey([]byte(src)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } thumb, err := k.Thumbprint(crypto.SHA1) if !assert.NoError(t, err, `k.Thumbprint should succeed`) { return } if !assert.Equal(t, `2Mc_43O_BOrOJTNrGX7uJ6JsIYE`, base64.EncodeToString(thumb), `thumbprints should match`) { return } } } func TestIssue270(t *testing.T) { t.Parallel() const src = `{"kty":"EC","alg":"ECMR","crv":"P-521","key_ops":["deriveKey"],"x":"AJwCS845x9VljR-fcrN2WMzIJHDYuLmFShhyu8ci14rmi2DMFp8txIvaxG8n7ZcODeKIs1EO4E_Bldm_pxxs8cUn","y":"ASjz754cIQHPJObihPV8D7vVNfjp_nuwP76PtbLwUkqTk9J1mzCDKM3VADEk-Z1tP-DHiwib6If8jxnb_FjNkiLJ"}` k, err := jwk.ParseKey([]byte(src)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } for _, usage := range []string{"sig", "enc"} { if !assert.NoError(t, k.Set(jwk.KeyUsageKey, usage)) { return } if !assert.NoError(t, k.Set(jwk.KeyUsageKey, jwk.KeyUsageType(usage))) { return } } } func TestReadFile(t *testing.T) { t.Parallel() if !jose.Available() { t.SkipNow() } ctx, cancel := context.WithCancel(context.Background()) defer cancel() fn, clean, err := jose.GenerateJwk(ctx, t, `{"alg": "RS256"}`) if !assert.NoError(t, err, `jose.GenerateJwk`) { return } defer clean() if _, err := jwk.ReadFile(fn); !assert.NoError(t, err, `jwk.ReadFile should succeed`) { return } } func TestRSA(t *testing.T) { t.Parallel() t.Run("PublicKey", func(t *testing.T) { t.Parallel() VerifyKey(t, map[string]keyDef{ jwk.RSAEKey: expectBase64(keyDef{ Method: "E", Value: "AQAB", }), jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.RSA, }, jwk.RSANKey: expectBase64(keyDef{ Method: "N", Value: "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", }), }) t.Run("New", func(t *testing.T) { for _, raw := range []rsa.PublicKey{ {}, } { _, err := jwk.New(raw) if !assert.Error(t, err, `jwk.New should fail for invalid key`) { return } } }) }) t.Run("Private Key", func(t *testing.T) { t.Parallel() VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.RSA, }, jwk.RSANKey: expectBase64(keyDef{ Method: "N", Value: "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", }), jwk.RSAEKey: expectBase64(keyDef{ Method: "E", Value: "AQAB", }), jwk.RSADKey: expectBase64(keyDef{ Method: "D", Value: "X4cTteJY_gn4FYPsXB8rdXix5vwsg1FLN5E3EaG6RJoVH-HLLKD9M7dx5oo7GURknchnrRweUkC7hT5fJLM0WbFAKNLWY2vv7B6NqXSzUvxT0_YSfqijwp3RTzlBaCxWp4doFk5N2o8Gy_nHNKroADIkJ46pRUohsXywbReAdYaMwFs9tv8d_cPVY3i07a3t8MN6TNwm0dSawm9v47UiCl3Sk5ZiG7xojPLu4sbg1U2jx4IBTNBznbJSzFHK66jT8bgkuqsk0GjskDJk19Z4qwjwbsnn4j2WBii3RL-Us2lGVkY8fkFzme1z0HbIkfz0Y6mqnOYtqc0X4jfcKoAC8Q", }), jwk.RSAPKey: expectBase64(keyDef{ Method: "P", Value: "83i-7IvMGXoMXCskv73TKr8637FiO7Z27zv8oj6pbWUQyLPQBQxtPVnwD20R-60eTDmD2ujnMt5PoqMrm8RfmNhVWDtjjMmCMjOpSXicFHj7XOuVIYQyqVWlWEh6dN36GVZYk93N8Bc9vY41xy8B9RzzOGVQzXvNEvn7O0nVbfs", }), jwk.RSAQKey: expectBase64(keyDef{ Method: "Q", Value: "3dfOR9cuYq-0S-mkFLzgItgMEfFzB2q3hWehMuG0oCuqnb3vobLyumqjVZQO1dIrdwgTnCdpYzBcOfW5r370AFXjiWft_NGEiovonizhKpo9VVS78TzFgxkIdrecRezsZ-1kYd_s1qDbxtkDEgfAITAG9LUnADun4vIcb6yelxk", }), jwk.RSADPKey: expectBase64(keyDef{ Method: "DP", Value: "G4sPXkc6Ya9y8oJW9_ILj4xuppu0lzi_H7VTkS8xj5SdX3coE0oimYwxIi2emTAue0UOa5dpgFGyBJ4c8tQ2VF402XRugKDTP8akYhFo5tAA77Qe_NmtuYZc3C3m3I24G2GvR5sSDxUyAN2zq8Lfn9EUms6rY3Ob8YeiKkTiBj0", }), jwk.RSADQKey: expectBase64(keyDef{ Method: "DQ", Value: "s9lAH9fggBsoFR8Oac2R_E2gw282rT2kGOAhvIllETE1efrA6huUUvMfBcMpn8lqeW6vzznYY5SSQF7pMdC_agI3nG8Ibp1BUb0JUiraRNqUfLhcQb_d9GF4Dh7e74WbRsobRonujTYN1xCaP6TO61jvWrX-L18txXw494Q_cgk", }), jwk.RSAQIKey: expectBase64(keyDef{ Method: "QI", Value: "GyM_p6JrXySiz1toFgKbWV-JdI3jQ4ypu9rbMWx3rQJBfmt0FoYzgUIZEVFEcOqwemRN81zoDAaa-Bk0KWNGDjJHZDdDmFhW3AN7lI-puxk_mHZGJ11rxyR8O55XLSe3SPmRfKwZI6yU24ZxvQKFYItdldUKGzO6Ia6zTKhAVRU", }), }) t.Run("New", func(t *testing.T) { for _, raw := range []rsa.PrivateKey{ {}, // Missing D { // Missing primes D: &big.Int{}, }, { // Missing Primes[0] D: &big.Int{}, Primes: []*big.Int{nil, {}}, }, { // Missing Primes[1] D: &big.Int{}, Primes: []*big.Int{{}, nil}, }, { // Missing PrivateKey.N D: &big.Int{}, Primes: []*big.Int{{}, {}}, }, } { _, err := jwk.New(raw) if !assert.Error(t, err, `jwk.New should fail for empty key`) { return } } }) }) t.Run("Thumbprint", func(t *testing.T) { expected := []byte{55, 54, 203, 177, 120, 124, 184, 48, 156, 119, 238, 140, 55, 5, 197, 225, 111, 251, 158, 133, 151, 21, 144, 31, 30, 76, 89, 177, 17, 130, 245, 123, } const src = `{ "kty":"RSA", "e": "AQAB", "n": "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw" }` key, err := jwk.ParseKey([]byte(src)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } tp, err := key.Thumbprint(crypto.SHA256) if !assert.NoError(t, err, "Thumbprint should succeed") { return } if !assert.Equal(t, expected, tp, "Thumbprint should match") { return } }) } func TestECDSA(t *testing.T) { t.Run("PrivateKey", func(t *testing.T) { t.Run("New", func(t *testing.T) { for _, raw := range []ecdsa.PrivateKey{ {}, { // Missing PublicKey D: &big.Int{}, }, { // Missing PublicKey.X D: &big.Int{}, PublicKey: ecdsa.PublicKey{ Y: &big.Int{}, }, }, { // Missing PublicKey.Y D: &big.Int{}, PublicKey: ecdsa.PublicKey{ X: &big.Int{}, }, }, } { _, err := jwk.New(raw) if !assert.Error(t, err, `jwk.New should fail for invalid key`) { return } } }) VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.EC, }, jwk.ECDSACrvKey: { Method: "Crv", Value: jwa.P256, }, jwk.ECDSAXKey: expectBase64(keyDef{ Method: "X", Value: "MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4", }), jwk.ECDSAYKey: expectBase64(keyDef{ Method: "Y", Value: "4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM", }), jwk.ECDSADKey: expectBase64(keyDef{ Method: "D", Value: "870MB6gfuTJ4HtUnUvYMyJpr5eUZNP4Bk43bVdj3eAE", }), }) }) t.Run("PublicKey", func(t *testing.T) { t.Run("New", func(t *testing.T) { for _, raw := range []ecdsa.PublicKey{ {}, { // Missing X Y: &big.Int{}, }, { // Missing Y X: &big.Int{}, }, } { _, err := jwk.New(raw) if !assert.Error(t, err, `jwk.New should fail for invalid key`) { return } } }) VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.EC, }, jwk.ECDSACrvKey: { Method: "Crv", Value: jwa.P256, }, jwk.ECDSAXKey: expectBase64(keyDef{ Method: "X", Value: "MKBCTNIcKUSDii11ySs3526iDZ8AiTo7Tu6KPAqv7D4", }), jwk.ECDSAYKey: expectBase64(keyDef{ Method: "Y", Value: "4Etl6SRW2YiLUrN5vfvVHuhp7x8PxltmWWlbbM4IFyM", }), }) }) t.Run("Curve types", func(t *testing.T) { for _, alg := range ecutil.AvailableAlgorithms() { alg := alg t.Run(alg.String(), func(t *testing.T) { key, err := jwxtest.GenerateEcdsaKey(alg) if !assert.NoError(t, err, `jwxtest.GenerateEcdsaKey should succeed`) { return } privkey := jwk.NewECDSAPrivateKey() if !assert.NoError(t, privkey.FromRaw(key), `privkey.FromRaw should succeed`) { return } pubkey := jwk.NewECDSAPublicKey() if !assert.NoError(t, pubkey.FromRaw(&key.PublicKey), `pubkey.FromRaw should succeed`) { return } privtp, err := privkey.Thumbprint(crypto.SHA512) if !assert.NoError(t, err, `privkey.Thumbprint should succeed`) { return } pubtp, err := pubkey.Thumbprint(crypto.SHA512) if !assert.NoError(t, err, `pubkey.Thumbprint should succeed`) { return } if !assert.Equal(t, privtp, pubtp, `Thumbprints should match`) { return } }) } }) } func TestSymmetric(t *testing.T) { t.Run("Key", func(t *testing.T) { VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.OctetSeq, }, jwk.SymmetricOctetsKey: expectBase64(keyDef{ Method: "Octets", Value: "aGVsbG8K", }), }) }) } func TestOKP(t *testing.T) { t.Parallel() t.Run("Ed25519", func(t *testing.T) { t.Parallel() t.Run("PrivateKey", func(t *testing.T) { t.Parallel() VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.OKP, }, jwk.OKPDKey: expectBase64(keyDef{ Method: "D", Value: "nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A", }), jwk.OKPXKey: expectBase64(keyDef{ Method: "X", Value: "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo", }), jwk.OKPCrvKey: { Method: "Crv", Value: jwa.Ed25519, }, }) }) t.Run("PublicKey", func(t *testing.T) { t.Parallel() VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.OKP, }, jwk.OKPXKey: expectBase64(keyDef{ Method: "X", Value: "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo", }), jwk.OKPCrvKey: { Method: "Crv", Value: jwa.Ed25519, }, }) }) }) t.Run("X25519", func(t *testing.T) { t.Parallel() t.Run("PublicKey", func(t *testing.T) { t.Parallel() VerifyKey(t, map[string]keyDef{ jwk.KeyTypeKey: { Method: "KeyType", Value: jwa.OKP, }, jwk.OKPXKey: expectBase64(keyDef{ Method: "X", Value: "3p7bfXt9wbTTW2HC7OQ1Nz-DQ8hbeGdNrfx-FG-IK08", }), jwk.OKPCrvKey: { Method: "Crv", Value: jwa.X25519, }, }) }) }) } func TestCustomField(t *testing.T) { // XXX has global effect!!! jwk.RegisterCustomField(`x-birthday`, time.Time{}) defer jwk.RegisterCustomField(`x-birthday`, nil) expected := time.Date(2015, 11, 4, 5, 12, 52, 0, time.UTC) bdaybytes, _ := expected.MarshalText() // RFC3339 var b strings.Builder b.WriteString(`{"e":"AQAB", "kty":"RSA", "n":"0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw","x-birthday":"`) b.Write(bdaybytes) b.WriteString(`"}`) src := b.String() t.Run("jwk.ParseKey", func(t *testing.T) { key, err := jwk.ParseKey([]byte(src)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } v, ok := key.Get(`x-birthday`) if !assert.True(t, ok, `key.Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) t.Run("json.Unmarshal", func(t *testing.T) { key := jwk.NewRSAPublicKey() if !assert.NoError(t, json.Unmarshal([]byte(src), key), `json.Unmarshal should succeed`) { return } v, ok := key.Get(`x-birthday`) if !assert.True(t, ok, `key.Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) } func TestCertificate(t *testing.T) { const src = `-----BEGIN CERTIFICATE----- MIIEljCCAn4CCQCTQBoGDvUbQTANBgkqhkiG9w0BAQsFADANMQswCQYDVQQGEwJK UDAeFw0yMTA0MDEwMDE4MjhaFw0yMjA0MDEwMDE4MjhaMA0xCzAJBgNVBAYTAkpQ MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvws4H/OxVS3CW1zvUgjs H443df9zCAblLVPPdeRD11Jl1OZmGS7rtQNjQyT5xGpeuk77ZJcfDNLx+mSEtiYQ V37GD5MPz+RX3hP2azuLvxoBseaHE6kC8tkDed8buQLl1hgms15KmKnt7E8B+EK2 1YRj0w6ZzehIllTbbj6gDJ39kZ2VHdLf5+4W0Kyh9cM4aA0si2jQJQsohW2rpt89 b+IagFau+sxP3GFUjSEvyXIamXhS0NLWuAW9UvY/RwhnIo5BzmWZd/y2R305T+QT rHtb/8aGav8mP3uDx6AMDp/0UMKFUO4mpoOusMnrplUPS4Lz6RNpffmrrglOEuRZ /eSFzGL35OeL12aYSyrbFIVsc/aLs6MkoplsuSG6Zhx345h/dA2a8Ub5khr6bksP zGLer+bpBrQQsy21unvCIUz5y7uaYhV3Ql+aIZ+dwpEgZ3xxAvdKKeoCGQlhH/4J 0sSuutUtuTLfrBSgLHJEv2HIzeynChL2CYR8aku/nL68VTdmSt9UY2JGMOf9U8BI fGRpkWBvI8hddMxNm8wF+09WScaZ2JWu7qW/l2jOdgesPIWRg+Hm3NaRSHqAWCOq VUJk9WkCAye0FPALqSvH0ApDKxNtGZb5JZRCW19TqmhgXbAqIf5hsxDaGIXZcW9S CqapZPw7Ccs7BOKSFvmM9p0CAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAVfLzKRdA 0vFpAAp3K+CDth7mag2WWFOXjlWZ+4pxfEBX3k7erJbj6+qYuCvCHXqIZnK1kZzD p4zwsu8t8RfSmPvxcm/jkvecG4DAIGTdhBVtAf/9PU3e4kZFQCqizicQABh+ZFKV dDtkRebUA5EAvP8E/OrvrjYU5xnOxOZU3arVXJfKFjVD619qLuF8XXW5700Gdqwn wBgasTCCg9+tniiscKaET1m9C4PdrlXuAIscV9tGcJ7yEAao1BXokyJ+mK6K2Zv1 z/vvUJA/rGMBJoUjnWrRHON1JMNou2KyRO6z37GpRnfPiNgFpGv2x3ZNeix7H4bP 6+x4KZWQir5047p9hV4YrqMXeULEj3uG2GnOgdR7+hiN39arFVr11DMgABmx19SM VQpTHrC8a605wwCBWnkiYdNojLa5WgeEHdBghKVpWnx9frYgZcz2UP861el5Lg9R j04wkGL4IORYiM7VHSHNU4u/dlgfQE1y0T+1CzXwquy4csvbBzBKnZ1o9ZBsOtWS ox0RaBsMD70mvTwKKmlCSD5HgZZTC0CfGWk4dQp/Mct5Z0x0HJMEJCJzpgTn3CRX z8CjezfckLs7UKJOlhu3OU9TFsiGDzSDBZdDWO1/uciJ/AAWeSmsBt8cKL0MirIr c4wOvhbalcX0FqTM3mXCgMFRbibquhwdxbU= -----END CERTIFICATE-----` key, err := jwk.ParseKey([]byte(src), jwk.WithPEM(true)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } if !assert.Equal(t, jwa.RSA, key.KeyType(), `key type should be RSA`) { return } var pubkey rsa.PublicKey if !assert.NoError(t, key.Raw(&pubkey), `key.Raw should succeed`) { return } N := &big.Int{} N, _ = N.SetString(`779390807991489150242580488277564408218067197694419403671246387831173881192316375931050469298375090533614189460270485948672580508192398132571230359681952349714254730569052029178325305344289615160181016909374016900403698428293142159695593998453788610098596363011884623801134548926432366560975619087466760747503535615491182090094278093592303467050094984372887804234341012289019841973178427045121609424191835554013017436743418746919496835541323790719629313070434897002108079086472354410640690933161025543816362962891190753195691593288890628966181309776957070655619665306995097798188588453327627252794498823229009195585001242181503742627414517186199717150645163224325403559815442522031412813762764879089624715721999552786759649849125487587658121901233329199571710176245013452847516179837767710027433169340850618643815395642568876192931279303797384539146396956216244189819533317558165234451499206045369678277987397913889177569796721689284116762473340601498426367267765652880247655009239893325078809797979771964770948333084772104541394544131668212262901583064272659565503500144472388676955404823979083054620299811247635425415371418720649368570747531327436083928369741631909855731133100553629456091216238379430154237251461586878393695925917`, 10) if !assert.Equal(t, N, pubkey.N, `value for N should match`) { return } if !assert.Equal(t, 65537, pubkey.E, `value for E should amtch`) { return } } type typedField struct { Foo string Bar int64 } func TestTypedFields(t *testing.T) { expected := &typedField{Foo: "Foo", Bar: 0xdeadbeef} var keys []jwk.Key { k1, _ := jwxtest.GenerateRsaJwk() k2, _ := jwxtest.GenerateEcdsaJwk() k3, _ := jwxtest.GenerateSymmetricJwk() k4, _ := jwxtest.GenerateEd25519Jwk() keys = []jwk.Key{k1, k2, k3, k4} } for _, key := range keys { key.Set("typed-field", expected) } testcases := []struct { Name string Options []jwk.ParseOption PostProcess func(*testing.T, interface{}) (*typedField, error) }{ { Name: "Basic", Options: []jwk.ParseOption{jwk.WithTypedField("typed-field", typedField{})}, PostProcess: func(t *testing.T, field interface{}) (*typedField, error) { t.Helper() v, ok := field.(typedField) if !ok { return nil, errors.Errorf(`field value should be of type "typedField", but got %T`, field) } return &v, nil }, }, { Name: "json.RawMessage", Options: []jwk.ParseOption{jwk.WithTypedField("typed-field", json.RawMessage{})}, PostProcess: func(t *testing.T, field interface{}) (*typedField, error) { t.Helper() v, ok := field.(json.RawMessage) if !ok { return nil, errors.Errorf(`field value should be of type "json.RawMessage", but got %T`, field) } var c typedField if err := json.Unmarshal(v, &c); err != nil { return nil, errors.Wrap(err, `json.Unmarshal failed`) } return &c, nil }, }, } for _, key := range keys { key := key serialized, err := json.Marshal(key) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } t.Run(fmt.Sprintf("%T", key), func(t *testing.T) { for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { got, err := jwk.ParseKey(serialized, tc.Options...) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } v, ok := got.Get("typed-field") if !assert.True(t, ok, `got.Get() should succeed`) { return } field, err := tc.PostProcess(t, v) if !assert.NoError(t, err, `tc.PostProcess should succeed`) { return } if !assert.Equal(t, field, expected, `field should match expected value`) { return } }) } }) } t.Run("Set", func(t *testing.T) { s := jwk.NewSet() for _, key := range keys { s.Add(key) } serialized, err := json.Marshal(s) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() got, err := jwk.Parse(serialized, tc.Options...) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } for iter := got.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() key, _ := pair.Value.(jwk.Key) v, ok := key.Get("typed-field") if !assert.True(t, ok, `key.Get() should succeed`) { return } field, err := tc.PostProcess(t, v) if !assert.NoError(t, err, `tc.PostProcess should succeed`) { return } if !assert.Equal(t, field, expected, `field should match expected value`) { return } } }) } }) } func TestGH412(t *testing.T) { base := jwk.NewSet() const max = 5 kids := make(map[string]struct{}) for i := 0; i < max; i++ { k, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxttest.GenerateRsaJwk() should succeed`) { return } kid := "key-" + strconv.Itoa(i) k.Set(jwk.KeyIDKey, kid) base.Add(k) kids[kid] = struct{}{} } for i := 0; i < max; i++ { idx := i currentKid := "key-" + strconv.Itoa(i) t.Run(fmt.Sprintf("Remove at position %d", i), func(t *testing.T) { set, err := base.Clone() if !assert.NoError(t, err, `base.Clone() should succeed`) { return } if !assert.Equal(t, max, set.Len(), `set.Len should be %d`, max) { return } k, ok := set.Get(idx) if !assert.True(t, ok, `set.Get should succeed`) { return } if !assert.True(t, set.Remove(k), `set.Remove should succeed`) { return } t.Logf("deleted key %s", k.KeyID()) if !assert.Equal(t, max-1, set.Len(), `set.Len should be %d`, max-1) { return } expected := make(map[string]struct{}) for k := range kids { if k == currentKid { continue } expected[k] = struct{}{} } ctx := context.Background() for iter := set.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() key := pair.Value.(jwk.Key) if !assert.NotEqual(t, k.KeyID(), key.KeyID(), `key id should not match`) { return } t.Logf("%s found", key.KeyID()) delete(expected, key.KeyID()) } if !assert.Len(t, expected, 0, `expected map should be empty`) { return } }) } } func TestGH491(t *testing.T) { msg := `{"keys":[{"alg":"ECMR","crv":"P-521","key_ops":["deriveKey"],"kty":"EC","x":"AEFldixpd6xWI1rPigk_i_fW_9SLXh3q3h_CbmRIJ2vmnneWnfylvg37q9_BeSxhLpTQkq580tP-7QiOoNem4ubg","y":"AD8MroFIWQI4nm1rVKOb0ImO0Y7EzPt1HTQfZxagv2IoMez8H_vV7Ra9fU7lJhoe3v-Th6x3-4540FodeIxxiphn"},{"alg":"ES512","crv":"P-521","key_ops":["verify"],"kty":"EC","x":"AFZApUzXzvjVJCZQX1De3LUudI7fiWZcZS3t4F2yrxn0tItCYIZrfygPiCZfV1hVKa3WuH2YMrISZUPrSgi_RN2d","y":"ASEyw-_9xcwNBnvpT7thmAF5qHv9-UPYf38AC7y5QBVejQH_DO1xpKzlTbrHCz0jrMeEir8TyW5ywZIYnqGzPBpn"}]}` keys, err := jwk.Parse([]byte(msg)) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } // there should be 2 keys , get the first key k, _ := keys.Get(0) ops := k.KeyOps() if !assert.Equal(t, jwk.KeyOperationList{jwk.KeyOpDeriveKey}, ops, `k.KeyOps should match`) { return } } func TestSetWithPrivateParams(t *testing.T) { k1, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } k2, err := jwxtest.GenerateEcdsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateEcdsaJwk should succeed`) { return } k3, err := jwxtest.GenerateSymmetricJwk() if !assert.NoError(t, err, `jwxtest.GenerateSymmetricJwk should succeed`) { return } t.Run("JWK instead of JWKS", func(t *testing.T) { var buf bytes.Buffer _ = k1.Set(`renewal_kid`, "foo") _ = json.NewEncoder(&buf).Encode(k1) var check = func(t *testing.T, buf []byte) { set, err := jwk.Parse(buf) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } if !assert.Equal(t, 1, set.Len(), `set.Len() should be 1`) { return } v, ok := set.Field(`renewal_kid`) if !assert.True(t, ok, `set.Field("renewal_kid") should return ok = true`) { return } if !assert.Equal(t, `foo`, v, `set.Field("renewal_kid") should return "foo"`) { return } key, ok := set.Get(0) if !assert.True(t, ok, `set.Get(0) should return ok = true`) { return } v, ok = key.Get(`renewal_kid`) if !assert.True(t, ok, `key.Get("renewal_kid") should return ok = true`) { return } if !assert.Equal(t, `foo`, v, `key.Get("renewal_kid") should return "foo"`) { return } } t.Run("Check original buffer", func(t *testing.T) { check(t, buf.Bytes()) }) t.Run("Check serialized", func(t *testing.T) { set, err := jwk.Parse(buf.Bytes()) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } js, err := json.MarshalIndent(set, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } check(t, js) }) }) t.Run("JWKS with multiple keys", func(t *testing.T) { var buf bytes.Buffer buf.WriteString(`{"renewal_kid":"foo","keys":[`) enc := json.NewEncoder(&buf) _ = enc.Encode(k1) buf.WriteByte(',') _ = enc.Encode(k2) buf.WriteByte(',') _ = enc.Encode(k3) buf.WriteString(`]}`) var check = func(t *testing.T, buf []byte) { set, err := jwk.Parse(buf) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } if !assert.Equal(t, 3, set.Len(), `set.Len() should be 3`) { return } v, ok := set.Field(`renewal_kid`) if !assert.True(t, ok, `set.Field("renewal_kid") should return ok = true`) { return } if !assert.Equal(t, `foo`, v, `set.Field("renewal_kid") should return "foo"`) { return } } t.Run("Check original buffer", func(t *testing.T) { check(t, buf.Bytes()) }) t.Run("Check serialized", func(t *testing.T) { set, err := jwk.Parse(buf.Bytes()) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } js, err := json.MarshalIndent(set, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } check(t, js) }) }) t.Run("Set private parameters", func(t *testing.T) { set := jwk.NewSet() if !assert.NoError(t, set.Set(`renewal_kid`, `foo`), `set.Set should succeed`) { return } v, ok := set.Field(`renewal_kid`) if !assert.True(t, ok, `set.Get("renewal_kid") should succeed`) { return } if !assert.Equal(t, `foo`, v, `set.Get("renewal_kid") should return "foo"`) { return } if !assert.Error(t, set.Set(`keys`, []string{"foo"}), `set.Set should fail`) { return } k, err := jwk.New([]byte("foobar")) if !assert.NoError(t, err, `jwk.New should succeed`) { return } keys := []jwk.Key{k} if !assert.NoError(t, set.Set(`keys`, keys), `set.Set should succeed`) { return } if !assert.Equal(t, set.Len(), 1, `set should have 1 key`) { return } }) } func TestFetch(t *testing.T) { k1, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } k2, err := jwxtest.GenerateEcdsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateEcdsaJwk should succeed`) { return } k3, err := jwxtest.GenerateSymmetricJwk() if !assert.NoError(t, err, `jwxtest.GenerateSymmetricJwk should succeed`) { return } set := jwk.NewSet() set.Add(k1) set.Add(k2) set.Add(k3) expected, err := json.MarshalIndent(set, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) w.Write(expected) })) defer srv.Close() testcases := []struct { Name string Whitelist func() jwk.Whitelist Error bool }{ { Name: `InsecureWhitelist`, Whitelist: func() jwk.Whitelist { return jwk.InsecureWhitelist{} }, }, { Name: `MapWhitelist`, Error: true, Whitelist: func() jwk.Whitelist { return jwk.NewMapWhitelist(). Add(`https://www.googleapis.com/oauth2/v3/certs`). Add(srv.URL) }, }, { Name: `RegexpWhitelist`, Error: true, Whitelist: func() jwk.Whitelist { return jwk.NewRegexpWhitelist(). Add(regexp.MustCompile(regexp.QuoteMeta(srv.URL))) }, }, { Name: `WhitelistFunc`, Error: true, Whitelist: func() jwk.Whitelist { return jwk.WhitelistFunc(func(s string) bool { return s == srv.URL }) }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() wl := tc.Whitelist() _, err = jwk.Fetch(ctx, `https://github.com/lestrrat-go/jwx`, jwk.WithFetchWhitelist(wl)) if tc.Error { if !assert.Error(t, err, `jwk.Fetch should fail`) { return } if !assert.True(t, strings.Contains(err.Error(), `rejected by whitelist`), `error should be whitelist error`) { return } } fetched, err := jwk.Fetch(ctx, srv.URL, jwk.WithFetchWhitelist(wl)) if !assert.NoError(t, err, `jwk.Fetch should succeed`) { return } got, err := json.MarshalIndent(fetched, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } if !assert.Equal(t, expected, got, `data should match`) { return } }) } } func TestGH567(t *testing.T) { const src = `{ "keys": [ { "kty": "RSA", "use": "sig", "kid": "20595A4BE9F566771792BC3DBC7DF78FF9C36575", "x5t": "20595A4BE9F566771792BC3DBC7DF78FF9C36575", "e": "AQAB", "n": "tAN2xCfMuGpZukiGJl_-aQi_HGd4voyEwuOyL79wZphgtAmMAeOEO9QgxSX00ZczonlOm_I1Xpv2RVnNzSiHfB0bTqn4bLt15JVCBhE1vXaRf63QXn5oZ38fxm_aNctfnmkf65sF3lSzcZmfp1934L1KxJObq4BEOpIxvj00gIOpZQ4Mqw1khfsLhIVeXh8xtiEJwQZPdwIUQD03Yt5XQ_QU3NhxmyXiG8c6auOstdZybbGw10uJQEN4PrW0ESvp_GMnLssYrq6x9PhyvJhZhMFX3rBsYhOI7ILMaqo-QeDYUo0lQ1ENoQFyvtWrNQ_6A-CbmJvL9HdN6AuMkujtUmZzEfbT-k3FRyaZL0JE4-yQikdPGHVK6Q2Ho_Zggx2OTNmLbEORBHNe8cbb7t_5fmK6Fk4TpW3795PR8dG-v-AUGpQEgipg5j-3ONxefyBVZyWyjXaxrhQk6nCeRKcXJ0dKiZQX6ykYrtkgwE3mlcuw9-WzUqvHVEMZgAqBhBhL", "x5c": [ "MIIGpDCCBYygAwIBAgIEX5xBDDANBgkqhkiG9w0BAQsFADBJMQswCQYDVQQGEwJESzESMBAGA1UECgwJVFJVU1QyNDA4MSYwJAYDVQQDDB1UUlVTVDI0MDggU3lzdGVtdGVzdCBYWFhJViBDQTAeFw0yMTA0MjYxMjI1NDBaFw0yNDA0MjYxMTM5NDBaMIGNMQswCQYDVQQGEwJESzEsMCoGA1UECgwjU0lHTkFUVVJHUlVQUEVOIEEvUyAvLyBDVlI6Mjk5MTU5MzgxUDAgBgNVBAUTGUNWUjoyOTkxNTkzOC1VSUQ6NTk5MTEyMjcwLAYDVQQDDCVTSUdOQVRVUkdSVVBQRU4gQS9TIC0gTkVCIFRyYW5zYWN0IFBQMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAtAN2xCfMuGpZukiGJl/\u002BaQi/HGd4voyEwuOyL79wZphgtAmMAeOEO9QgxSX00ZczonlOm/I1Xpv2RVnNzSiHfB0bTqn4bLt15JVCBhE1vXaRf63QXn5oZ38fxm/aNctfnmkf65sF3lSzcZmfp1934L1KxJObq4BEOpIxvj00gIOpZQ4Mqw1khfsLhIVeXh8xtiEJwQZPdwIUQD03Yt5XQ/QU3NhxmyXiG8c6auOstdZybbGw10uJQEN4PrW0ESvp/GMnLssYrq6x9PhyvJhZhMFX3rBsYhOI7ILMaqo\u002BQeDYUo0lQ1ENoQFyvtWrNQ/6A\u002BCbmJvL9HdN6AuMkujtUmZzEfbT\u002Bk3FRyaZL0JE4\u002ByQikdPGHVK6Q2Ho/Zggx2OTNmLbEORBHNe8cbb7t/5fmK6Fk4TpW3795PR8dG\u002Bv\u002BAUGpQEgipg5j\u002B3ONxefyBVZyWyjXaxrhQk6nCeRKcXJ0dKiZQX6ykYrtkgwE3mlcuw9\u002BWzUqvHVEMZgAqBhBhLAgMBAAGjggLNMIICyTAOBgNVHQ8BAf8EBAMCA7gwgZcGCCsGAQUFBwEBBIGKMIGHMDwGCCsGAQUFBzABhjBodHRwOi8vb2NzcC5zeXN0ZW10ZXN0MzQudHJ1c3QyNDA4LmNvbS9yZXNwb25kZXIwRwYIKwYBBQUHMAKGO2h0dHA6Ly92LmFpYS5zeXN0ZW10ZXN0MzQudHJ1c3QyNDA4LmNvbS9zeXN0ZW10ZXN0MzQtY2EuY2VyMIIBIAYDVR0gBIIBFzCCARMwggEPBg0rBgEEAYH0UQIEBgMFMIH9MC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LnRydXN0MjQwOC5jb20vcmVwb3NpdG9yeTCByQYIKwYBBQUHAgIwgbwwDBYFRGFuSUQwAwIBARqBq0RhbklEIHRlc3QgY2VydGlmaWthdGVyIGZyYSBkZW5uZSBDQSB1ZHN0ZWRlcyB1bmRlciBPSUQgMS4zLjYuMS40LjEuMzEzMTMuMi40LjYuMy41LiBEYW5JRCB0ZXN0IGNlcnRpZmljYXRlcyBmcm9tIHRoaXMgQ0EgYXJlIGlzc3VlZCB1bmRlciBPSUQgMS4zLjYuMS40LjEuMzEzMTMuMi40LjYuMy41LjCBrQYDVR0fBIGlMIGiMDygOqA4hjZodHRwOi8vY3JsLnN5c3RlbXRlc3QzNC50cnVzdDI0MDguY29tL3N5c3RlbXRlc3QzNC5jcmwwYqBgoF6kXDBaMQswCQYDVQQGEwJESzESMBAGA1UECgwJVFJVU1QyNDA4MSYwJAYDVQQDDB1UUlVTVDI0MDggU3lzdGVtdGVzdCBYWFhJViBDQTEPMA0GA1UEAwwGQ1JMMTUwMB8GA1UdIwQYMBaAFM1saJc5chmkNatk6vQRo4GH\u002BGk7MB0GA1UdDgQWBBSJJABtTjZRzzFHsb1JwED0qCo49TAJBgNVHRMEAjAAMA0GCSqGSIb3DQEBCwUAA4IBAQA2yBdGVPbKoYUYRZj4bHLj5Xwqk/yh6sodxwAPYrwxkJBzUKFAwUCTCigpwq8NE00kp3xhFT7Hz/9Z7aZLV4N/D94tc0qDU0JIwlbkrn/i3wx8N8UXf242WVaunJLdKqGtV4ijqjZFGa68XBc3elGjnAMY8eoF56dGg35Ps8Cw2BZyG2aXyEQNs6JYUNzp57\u002B6lJWl0T9Zniaut7Aw2rCII8XRe9WY\u002BHIQX6GuBSw0Q4v9wAfyYftnoULsgfVklkxtQI4kAO5rG17Z5NJuvRkXJD8jp\u002B2jRzcaD8Ud\u002Bpe4keTvuJZ\u002BRj\u002BBDLn/3\u002ByPbs3arD3CIO\u002BlW3Nndr34Le/s" ], "alg": "RS256" }, { "kty": "RSA", "use": "sig", "kid": "048058BB59F4D3007045896FD488CE81F4EB4923", "x5t": "048058BB59F4D3007045896FD488CE81F4EB4923", "e": "AQAB", "n": "4bOwMSWoWqOSJoLvwFOCVrKmIO_XX5BCI8KYDIgWjII3a83vwia0a11UHm3B6oPlR3L5udworbH7axrmnPz4GEamQp57Yf0uhnGctlVpVVZHOvXPaMlZgTTGhWpJAGnLnyihZbARgyJefuxZ6ZIqeNyjgc_fC-0J7RWFMxNKS_n6ZKFqQlIlmJInJPWR-YZTuooIb4T4C0JAwFDEvXiAs_fX34Tj1FvD1nv01VPGF5Wx6cBV6fejbRCjY4uFfovhE-dtKX0IakZI8jks-uqMjIOB2x1pOuaqrmrINrTYzKTCKrnMpfaW4urhFmQRKNIgaoLnPgzIb3W9F-vpgrdTjw", "x5c": [ "MIID/DCCAeSgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBBMQswCQYDVQQGEwJESzEyMDAGA1UEAxMpTmV0cyBlSUQgQnJva2VyIFRva2VuIFNpZ25pbmcgUm9vdCBQUCBFbnYwHhcNMjEwMjI0MDAwMDAwWhcNNDEwMjI0MDAwMDAwWjA\u002BMQswCQYDVQQGEwJESzEvMC0GA1UEAxMmTmV0cyBlSUQgQnJva2VyIFRva2VuIFNpZ25pbmcgMSBQUCBFbnYwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDhs7AxJahao5Imgu/AU4JWsqYg79dfkEIjwpgMiBaMgjdrze/CJrRrXVQebcHqg\u002BVHcvm53CitsftrGuac/PgYRqZCnnth/S6GcZy2VWlVVkc69c9oyVmBNMaFakkAacufKKFlsBGDIl5\u002B7Fnpkip43KOBz98L7QntFYUzE0pL\u002BfpkoWpCUiWYkick9ZH5hlO6ighvhPgLQkDAUMS9eICz99ffhOPUW8PWe/TVU8YXlbHpwFXp96NtEKNji4V\u002Bi\u002BET520pfQhqRkjyOSz66oyMg4HbHWk65qquasg2tNjMpMIqucyl9pbi6uEWZBEo0iBqguc\u002BDMhvdb0X6\u002BmCt1OPAgMBAAGjAjAAMA0GCSqGSIb3DQEBCwUAA4ICAQAFKs2PbOIHLgLTNPIhqKCv7Uj\u002Buj0tpF6vO7CFtw1Q0NKo0UB4wD0T9AYu\u002B8sq3M\u002BZjR77eHP6IkvVBEaqBrZgjq6wU1pijPuIUliXF772\u002B/Hr8Wa23iILWevk\u002BleOXDI8kN7E1JPfr0ADsnCJxaXApDqE6Mysd68\u002BGN2adRuvGAcEcKauVfYLAGPQVctkmQSH6VhIJoDKni7gFF/oMZUZ362sOguhlYltcNUMIILJZkFkksRRriHOlz4I8HJiTzWI1Ufuw6iqFWMquOR4BsQZzBSsdPVGlQvjyqOiBia7rPTJE1Z3Kj0mujIbgKTri8YsnFsBynyHq8puYWvMwoGLWu0goxq9rFrINTe39/YpRE6lZUUZU50DddS\u002B0syBTs1H1gX00ofqt6FgWmACc20zJZm2GyhWDtqtiMurn5WKLoZBQrwN5/a6c6HNCStSVxn8o0g9xCgmWM855S8TqHFYXKJSMG00xZZEbsOAPqujkbKakhC/kJQU7XKGjFRskQZhHvpGipFTK4ZapHYYoo5KqZTytAvFENIcuibIk0u8zlCZuXU/PsowMN4G54FftVVyNHuj4TqiKIvB\u002BZNj/zcPopQHHUISVRApR6YO6fqwPxVaJmSTzZ/0uPTaAdnMz5j1wIYf\u002BZDk1ywTxOBRS7/FwNnWAyIuYGFzewY4H2QUNg==" ], "alg": "RS256" }, { "kty": "RSA", "use": "enc", "kid": "A2E10A6BAF4E43E86273F57F218A44B824203176", "x5t": "A2E10A6BAF4E43E86273F57F218A44B824203176", "x5c": [ "MIIDGjCCAgKgAwIBAgIIQFkx7rDLvyowDQYJKoZIhvcNAQELBQAwNDEyMDAGA1UEAxMpTmV0cyBlSUQgQnJva2VyIGNsaWVudCByZXF1ZXN0IGVuY3J5cHRpb24wIBcNMjIwMjA5MTQxMDQ1WhgPMjExMjAyMTAxNDEwNDVaMDQxMjAwBgNVBAMTKU5ldHMgZUlEIEJyb2tlciBjbGllbnQgcmVxdWVzdCBlbmNyeXB0aW9uMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAps2R1sxEGxyYfP\u002BK2jq4uDONxrEP4W4oAKJkTv71oOJiK3CBK4ybyk597WufUZfpy8isUKtuqx1x6DTK6vnecUv5KV77/ql6Ac8LJaj5zQBRGuPoPezbD2tPglxp4XEU\u002BqivoyMJiZoLl75MklxvmVVlJQgu1H4RmvdCcp0xYmV2CBX4GKvK6g26y3IZ1FW4Vj5G8eB\u002Bxw423EtsBO3iKPx24BbVZWXC56lhke\u002BQbpbagU/hpQnOdW5tdWdm7oHGUfGwsvg1f6b2Yllwv57ANJkk\u002BfBr\u002BoN0eD2DRNyHbExzJfOBPkDt2FEq1u30kfLP\u002B6ecSByaxSFTl\u002BgFeUUw0wIDAQABoy4wLDALBgNVHQ8EBAMCBBAwHQYDVR0OBBYEFPK08YkmSYK1xNIFEr1AdscfYKnZMA0GCSqGSIb3DQEBCwUAA4IBAQAYeP7IAv3ND\u002B6UMGr9X\u002BP1wURz7UQd66oRldhcdkdS\u002BBNMcU/gVeiU31Es5Y/GhdmKPiuQGdIQdPO88u9A7STWIYUj/lnrgtKif\u002BJ8V/PtfsvHbBYD5f7wFd7fqOpcDFQ2dobOathhrqJ1r3ShFaObpVBX3PL3\u002BSFK3ofHaMYWuIoD\u002BroiOJfIYlL02rrKiiw9r2L9nUCZfSAq3G9rMw\u002BzL38D9BQvrEe9yvwqM3im0m3seiNODiArcY/ee\u002B538\u002BYaToaMPHxUAizREeJFm4aOtwzGND48XHQzbNyfhoSsJesCJsugcNfHUe6o0nuPZ\u002BzvdLrboutrrtxEN8yOm489" ], "alg": "http://www.w3.org/2001/04/xmlenc#rsa-oaep" } ] }` srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.Header().Set(`Content-Type`, `application/json`) w.WriteHeader(http.StatusOK) io.WriteString(w, src) })) defer srv.Close() for _, ignoreParseError := range []bool{true, false} { ignoreParseError := ignoreParseError t.Run(fmt.Sprintf(`Parse with ignoreParseError=%t`, ignoreParseError), func(t *testing.T) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() ar := jwk.NewAutoRefresh(ctx) ar.Configure(srv.URL, jwk.WithIgnoreParseError(ignoreParseError)) set, err := ar.Fetch(ctx, srv.URL) if ignoreParseError { if !assert.NoError(t, err, `ar.Fetch should succeed`) { return } if !assert.Equal(t, set.Len(), 2, `JWKS should contain two keys`) { return } } else { if !assert.Error(t, err, `ar.Fetch should fail`) { return } } }) } // Test the case when WithIgnoreParseError is passed to ParseKey t.Run(`ParseKey + WithIgnoreParseError should be an error`, func(t *testing.T) { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk() should succeed`) { return } buf, err := json.Marshal(key) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } _, err = jwk.ParseKey(buf) if !assert.NoError(t, err, `jwk.ParseKey (no WithIgnoreParseError) should succeed`) { return } _, err = jwk.ParseKey(buf, jwk.WithIgnoreParseError(true)) if !assert.Error(t, err, `jwk.ParseKey (no WithIgnoreParseError) should fail`) { return } }) } func TestGH664(t *testing.T) { privkey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtext.GenerateRsaKey() should succeed`) { return } privkey.Primes = append(privkey.Primes, &big.Int{}) // first, test a stupid case where Primes > 2 _, err = jwk.New(privkey) if !assert.Error(t, err, `jwk.New should fail`) { return } privkey.Primes = privkey.Primes[:2] // nuke p and q, dp, dq, qi for i := 0; i < 3; i++ { i := i t.Run(fmt.Sprintf("Check what happens when primes are reduced to %d", i), func(t *testing.T) { privkey.Primes = privkey.Primes[:i] privkey.Precomputed.Dp = nil privkey.Precomputed.Dq = nil privkey.Precomputed.Qinv = nil privkey.Precomputed.CRTValues = nil jwkPrivkey, err := jwk.New(privkey) if !assert.NoError(t, err, `jwk.FromRaw should succeed`) { return } buf, _ := json.MarshalIndent(jwkPrivkey, "", " ") parsed, err := jwk.ParseKey(buf) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } payload := []byte(`hello , world!`) signed, err := jws.Sign(payload, jwa.RS256, parsed) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } verified, err := jws.Verify(signed, jwa.RS256, privkey.PublicKey) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, payload, verified, `verified content should match`) { return } }) } } func TestGH945(t *testing.T) { privateRawRsaKey, err := rsa.GenerateKey(rand.Reader, 4096) require.NoError(t, err, `rsa.GenerateKey should succeed`) newJwk, err := jwk.New(privateRawRsaKey.PublicKey) require.NoError(t, err, `jwk.New should succeed`) newJwk.Set(jwk.KeyIDKey, "foobar") newJwk.Set(jwk.KeyUsageKey, jwk.ForSignature) newJwk.Set(jwk.KeyOpsKey, jwk.KeyOpSign) require.NotNil(t, newJwk.KeyOps(), "keyops should be non-nil") require.Equal(t, newJwk.KeyOps(), jwk.KeyOperationList{jwk.KeyOpSign}) } golang-github-lestrrat-go-jwx-1.2.30/jwk/key_ops.go000066400000000000000000000025661465311135100221770ustar00rootroot00000000000000package jwk import "github.com/pkg/errors" func (ops *KeyOperationList) Get() KeyOperationList { if ops == nil { return nil } return *ops } func (ops *KeyOperationList) Accept(v interface{}) error { switch x := v.(type) { case string: return ops.Accept([]string{x}) case KeyOperation: return ops.Accept([]KeyOperation{x}) case []interface{}: l := make([]string, len(x)) for i, e := range x { if es, ok := e.(string); ok { l[i] = es } else { return errors.Errorf(`invalid list element type: expected string, got %T`, v) } } return ops.Accept(l) case []string: list := make(KeyOperationList, len(x)) for i, e := range x { switch e := KeyOperation(e); e { case KeyOpSign, KeyOpVerify, KeyOpEncrypt, KeyOpDecrypt, KeyOpWrapKey, KeyOpUnwrapKey, KeyOpDeriveKey, KeyOpDeriveBits: list[i] = e default: return errors.Errorf(`invalid keyoperation %v`, e) } } *ops = list return nil case []KeyOperation: list := make(KeyOperationList, len(x)) for i, e := range x { switch e { case KeyOpSign, KeyOpVerify, KeyOpEncrypt, KeyOpDecrypt, KeyOpWrapKey, KeyOpUnwrapKey, KeyOpDeriveKey, KeyOpDeriveBits: list[i] = e default: return errors.Errorf(`invalid keyoperation %v`, e) } } *ops = list return nil case KeyOperationList: *ops = x return nil default: return errors.Errorf(`invalid value %T`, v) } } golang-github-lestrrat-go-jwx-1.2.30/jwk/okp.go000066400000000000000000000104211465311135100213040ustar00rootroot00000000000000package jwk import ( "bytes" "crypto" "crypto/ed25519" "fmt" "github.com/lestrrat-go/blackmagic" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) func (k *okpPublicKey) FromRaw(rawKeyIf interface{}) error { k.mu.Lock() defer k.mu.Unlock() var crv jwa.EllipticCurveAlgorithm switch rawKey := rawKeyIf.(type) { case ed25519.PublicKey: k.x = rawKey crv = jwa.Ed25519 k.crv = &crv case x25519.PublicKey: k.x = rawKey crv = jwa.X25519 k.crv = &crv default: return errors.Errorf(`unknown key type %T`, rawKeyIf) } return nil } func (k *okpPrivateKey) FromRaw(rawKeyIf interface{}) error { k.mu.Lock() defer k.mu.Unlock() var crv jwa.EllipticCurveAlgorithm switch rawKey := rawKeyIf.(type) { case ed25519.PrivateKey: k.d = rawKey.Seed() k.x = rawKey.Public().(ed25519.PublicKey) //nolint:forcetypeassert crv = jwa.Ed25519 k.crv = &crv case x25519.PrivateKey: k.d = rawKey.Seed() k.x = rawKey.Public().(x25519.PublicKey) //nolint:forcetypeassert crv = jwa.X25519 k.crv = &crv default: return errors.Errorf(`unknown key type %T`, rawKeyIf) } return nil } func buildOKPPublicKey(alg jwa.EllipticCurveAlgorithm, xbuf []byte) (interface{}, error) { switch alg { case jwa.Ed25519: return ed25519.PublicKey(xbuf), nil case jwa.X25519: return x25519.PublicKey(xbuf), nil default: return nil, errors.Errorf(`invalid curve algorithm %s`, alg) } } // Raw returns the EC-DSA public key represented by this JWK func (k *okpPublicKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() pubk, err := buildOKPPublicKey(k.Crv(), k.x) if err != nil { return errors.Wrap(err, `failed to build public key`) } return blackmagic.AssignIfCompatible(v, pubk) } func buildOKPPrivateKey(alg jwa.EllipticCurveAlgorithm, xbuf []byte, dbuf []byte) (interface{}, error) { switch alg { case jwa.Ed25519: ret := ed25519.NewKeyFromSeed(dbuf) //nolint:forcetypeassert if !bytes.Equal(xbuf, ret.Public().(ed25519.PublicKey)) { return nil, errors.Errorf(`invalid x value given d value`) } return ret, nil case jwa.X25519: ret, err := x25519.NewKeyFromSeed(dbuf) if err != nil { return nil, errors.Wrap(err, `unable to construct x25519 private key from seed`) } //nolint:forcetypeassert if !bytes.Equal(xbuf, ret.Public().(x25519.PublicKey)) { return nil, errors.Errorf(`invalid x value given d value`) } return ret, nil default: return nil, errors.Errorf(`invalid curve algorithm %s`, alg) } } func (k *okpPrivateKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() privk, err := buildOKPPrivateKey(k.Crv(), k.x, k.d) if err != nil { return errors.Wrap(err, `failed to build public key`) } return blackmagic.AssignIfCompatible(v, privk) } func makeOKPPublicKey(v interface { makePairs() []*HeaderPair }) (Key, error) { newKey := NewOKPPublicKey() // Iterate and copy everything except for the bits that should not be in the public key for _, pair := range v.makePairs() { switch pair.Key { case OKPDKey: continue default: //nolint:forcetypeassert key := pair.Key.(string) if err := newKey.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set field %q`, key) } } } return newKey, nil } func (k *okpPrivateKey) PublicKey() (Key, error) { return makeOKPPublicKey(k) } func (k *okpPublicKey) PublicKey() (Key, error) { return makeOKPPublicKey(k) } func okpThumbprint(hash crypto.Hash, crv, x string) []byte { h := hash.New() fmt.Fprint(h, `{"crv":"`) fmt.Fprint(h, crv) fmt.Fprint(h, `","kty":"OKP","x":"`) fmt.Fprint(h, x) fmt.Fprint(h, `"}`) return h.Sum(nil) } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 / 8037 func (k okpPublicKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() return okpThumbprint( hash, k.Crv().String(), base64.EncodeToString(k.x), ), nil } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 / 8037 func (k okpPrivateKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() return okpThumbprint( hash, k.Crv().String(), base64.EncodeToString(k.x), ), nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/okp_gen.go000066400000000000000000000677441465311135100221610ustar00rootroot00000000000000// This file is auto-generated by jwk/internal/cmd/genheader/main.go. DO NOT EDIT package jwk import ( "bytes" "context" "crypto/x509" "fmt" "sort" "sync" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) const ( OKPCrvKey = "crv" OKPDKey = "d" OKPXKey = "x" ) type OKPPublicKey interface { Key FromRaw(interface{}) error Crv() jwa.EllipticCurveAlgorithm X() []byte } type okpPublicKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 crv *jwa.EllipticCurveAlgorithm keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 x []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewOKPPublicKey() OKPPublicKey { return newOKPPublicKey() } func newOKPPublicKey() *okpPublicKey { return &okpPublicKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h okpPublicKey) KeyType() jwa.KeyType { return jwa.OKP } func (h *okpPublicKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *okpPublicKey) Crv() jwa.EllipticCurveAlgorithm { if h.crv != nil { return *(h.crv) } return jwa.InvalidEllipticCurve } func (h *okpPublicKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *okpPublicKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *okpPublicKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *okpPublicKey) X() []byte { return h.x } func (h *okpPublicKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *okpPublicKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *okpPublicKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *okpPublicKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *okpPublicKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.OKP}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.crv != nil { pairs = append(pairs, &HeaderPair{Key: OKPCrvKey, Value: *(h.crv)}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.x != nil { pairs = append(pairs, &HeaderPair{Key: OKPXKey, Value: h.x}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *okpPublicKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *okpPublicKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case OKPCrvKey: if h.crv == nil { return nil, false } return *(h.crv), true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case OKPXKey: if h.x == nil { return nil, false } return h.x, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *okpPublicKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *okpPublicKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case OKPCrvKey: if v, ok := value.(jwa.EllipticCurveAlgorithm); ok { h.crv = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, OKPCrvKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case OKPXKey: if v, ok := value.([]byte); ok { h.x = v return nil } return errors.Errorf(`invalid value for %s key: %T`, OKPXKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *okpPublicKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case OKPCrvKey: k.crv = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case OKPXKey: k.x = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil default: delete(k.privateParams, key) } return nil } func (k *okpPublicKey) Clone() (Key, error) { return cloneKey(k) } func (k *okpPublicKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *okpPublicKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *okpPublicKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.crv = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.x = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.OKP.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case OKPCrvKey: var decoded jwa.EllipticCurveAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, OKPCrvKey) } h.crv = &decoded case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case OKPXKey: if err := json.AssignNextBytesToken(&h.x, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, OKPXKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.crv == nil { return errors.Errorf(`required field crv is missing`) } if h.x == nil { return errors.Errorf(`required field x is missing`) } return nil } func (h okpPublicKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 10) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *okpPublicKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *okpPublicKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *okpPublicKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } type OKPPrivateKey interface { Key FromRaw(interface{}) error Crv() jwa.EllipticCurveAlgorithm D() []byte X() []byte } type okpPrivateKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 crv *jwa.EllipticCurveAlgorithm d []byte keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 x []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewOKPPrivateKey() OKPPrivateKey { return newOKPPrivateKey() } func newOKPPrivateKey() *okpPrivateKey { return &okpPrivateKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h okpPrivateKey) KeyType() jwa.KeyType { return jwa.OKP } func (h *okpPrivateKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *okpPrivateKey) Crv() jwa.EllipticCurveAlgorithm { if h.crv != nil { return *(h.crv) } return jwa.InvalidEllipticCurve } func (h *okpPrivateKey) D() []byte { return h.d } func (h *okpPrivateKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *okpPrivateKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *okpPrivateKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *okpPrivateKey) X() []byte { return h.x } func (h *okpPrivateKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *okpPrivateKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *okpPrivateKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *okpPrivateKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *okpPrivateKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.OKP}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.crv != nil { pairs = append(pairs, &HeaderPair{Key: OKPCrvKey, Value: *(h.crv)}) } if h.d != nil { pairs = append(pairs, &HeaderPair{Key: OKPDKey, Value: h.d}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.x != nil { pairs = append(pairs, &HeaderPair{Key: OKPXKey, Value: h.x}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *okpPrivateKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *okpPrivateKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case OKPCrvKey: if h.crv == nil { return nil, false } return *(h.crv), true case OKPDKey: if h.d == nil { return nil, false } return h.d, true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case OKPXKey: if h.x == nil { return nil, false } return h.x, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *okpPrivateKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *okpPrivateKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case OKPCrvKey: if v, ok := value.(jwa.EllipticCurveAlgorithm); ok { h.crv = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, OKPCrvKey, value) case OKPDKey: if v, ok := value.([]byte); ok { h.d = v return nil } return errors.Errorf(`invalid value for %s key: %T`, OKPDKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case OKPXKey: if v, ok := value.([]byte); ok { h.x = v return nil } return errors.Errorf(`invalid value for %s key: %T`, OKPXKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *okpPrivateKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case OKPCrvKey: k.crv = nil case OKPDKey: k.d = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case OKPXKey: k.x = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil default: delete(k.privateParams, key) } return nil } func (k *okpPrivateKey) Clone() (Key, error) { return cloneKey(k) } func (k *okpPrivateKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *okpPrivateKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *okpPrivateKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.crv = nil h.d = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.x = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.OKP.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case OKPCrvKey: var decoded jwa.EllipticCurveAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, OKPCrvKey) } h.crv = &decoded case OKPDKey: if err := json.AssignNextBytesToken(&h.d, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, OKPDKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case OKPXKey: if err := json.AssignNextBytesToken(&h.x, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, OKPXKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.crv == nil { return errors.Errorf(`required field crv is missing`) } if h.d == nil { return errors.Errorf(`required field d is missing`) } if h.x == nil { return errors.Errorf(`required field x is missing`) } return nil } func (h okpPrivateKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 11) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *okpPrivateKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *okpPrivateKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *okpPrivateKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } golang-github-lestrrat-go-jwx-1.2.30/jwk/option.go000066400000000000000000000155331465311135100220340ustar00rootroot00000000000000package jwk import ( "crypto" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/option" ) type Option = option.Interface type identHTTPClient struct{} type identThumbprintHash struct{} type identRefreshInterval struct{} type identMinRefreshInterval struct{} type identFetchBackoff struct{} type identPEM struct{} type identTypedField struct{} type identLocalRegistry struct{} type identFetchWhitelist struct{} type identIgnoreParseError struct{} // AutoRefreshOption is a type of Option that can be passed to the // AutoRefresh object. type AutoRefreshOption interface { Option autoRefreshOption() } type autoRefreshOption struct { Option } func (*autoRefreshOption) autoRefreshOption() {} // FetchOption is a type of Option that can be passed to `jwk.Fetch()` // FetchOption also implements the `AutoRefreshOption`, and thus can // safely be passed to `(*jwk.AutoRefresh).Configure()` type FetchOption interface { AutoRefreshOption fetchOption() } type fetchOption struct { Option } func (*fetchOption) autoRefreshOption() {} func (*fetchOption) fetchOption() {} // ParseOption is a type of Option that can be passed to `jwk.Parse()` // ParseOption also implmentsthe `ReadFileOPtion` and `AutoRefreshOption`, // and thus safely be passed to `jwk.ReadFile` and `(*jwk.AutoRefresh).Configure()` type ParseOption interface { ReadFileOption AutoRefreshOption parseOption() } type parseOption struct { Option } func (*parseOption) autoRefreshOption() {} func (*parseOption) parseOption() {} func (*parseOption) readFileOption() {} // WithHTTPClient allows users to specify the "net/http".Client object that // is used when fetching jwk.Set objects. func WithHTTPClient(cl HTTPClient) FetchOption { return &fetchOption{option.New(identHTTPClient{}, cl)} } // WithFetchBackoff specifies the backoff policy to use when // refreshing a JWKS from a remote server fails. // // This does not have any effect on initial `Fetch()`, or any of the `Refresh()` calls -- // the backoff is applied ONLY on the background refreshing goroutine. func WithFetchBackoff(v backoff.Policy) FetchOption { return &fetchOption{option.New(identFetchBackoff{}, v)} } func WithThumbprintHash(h crypto.Hash) Option { return option.New(identThumbprintHash{}, h) } // WithRefreshInterval specifies the static interval between refreshes // of jwk.Set objects controlled by jwk.AutoRefresh. // // Providing this option overrides the adaptive token refreshing based // on Cache-Control/Expires header (and jwk.WithMinRefreshInterval), // and refreshes will *always* happen in this interval. func WithRefreshInterval(d time.Duration) AutoRefreshOption { return &autoRefreshOption{ option.New(identRefreshInterval{}, d), } } // WithMinRefreshInterval specifies the minimum refresh interval to be used // when using AutoRefresh. This value is ONLY used if you did not specify // a user-supplied static refresh interval via `WithRefreshInterval`. // // This value is used as a fallback value when tokens are refreshed. // // When we fetch the key from a remote URL, we first look at the max-age // directive from Cache-Control response header. If this value is present, // we compare the max-age value and the value specified by this option // and take the larger one. // // Next we check for the Expires header, and similarly if the header is // present, we compare it against the value specified by this option, // and take the larger one. // // Finally, if neither of the above headers are present, we use the // value specified by this option as the next refresh timing // // If unspecified, the minimum refresh interval is 1 hour func WithMinRefreshInterval(d time.Duration) AutoRefreshOption { return &autoRefreshOption{ option.New(identMinRefreshInterval{}, d), } } // WithPEM specifies that the input to `Parse()` is a PEM encoded key. func WithPEM(v bool) ParseOption { return &parseOption{ option.New(identPEM{}, v), } } type typedFieldPair struct { Name string Value interface{} } // WithTypedField allows a private field to be parsed into the object type of // your choice. It works much like the RegisterCustomField, but the effect // is only applicable to the jwt.Parse function call which receives this option. // // While this can be extremely useful, this option should be used with caution: // There are many caveats that your entire team/user-base needs to be aware of, // and therefore in general its use is discouraged. Only use it when you know // what you are doing, and you document its use clearly for others. // // First and foremost, this is a "per-object" option. Meaning that given the same // serialized format, it is possible to generate two objects whose internal // representations may differ. That is, if you parse one _WITH_ the option, // and the other _WITHOUT_, their internal representation may completely differ. // This could potentially lead to problems. // // Second, specifying this option will slightly slow down the decoding process // as it needs to consult multiple definitions sources (global and local), so // be careful if you are decoding a large number of tokens, as the effects will stack up. func WithTypedField(name string, object interface{}) ParseOption { return &parseOption{ option.New(identTypedField{}, typedFieldPair{Name: name, Value: object}, ), } } // This option is only available for internal code. Users don't get to play with it func withLocalRegistry(r *json.Registry) ParseOption { return &parseOption{option.New(identLocalRegistry{}, r)} } // WithFetchWhitelist specifies the Whitelist object to use when // fetching JWKs from a remote source. This option can be passed // to both `jwk.Fetch()`, `jwk.NewAutoRefresh()`, and `(*jwk.AutoRefresh).Configure()` func WithFetchWhitelist(w Whitelist) FetchOption { return &fetchOption{option.New(identFetchWhitelist{}, w)} } // WithIgnoreParseError is only applicable when used with `jwk.Parse()` // (i.e. to parse JWK sets). If passed to `jwk.ParseKey()`, the function // will return an error no matter what the input is. // // DO NOT USE WITHOUT EXHAUSTING ALL OTHER ROUTES FIRST. // // The option specifies that errors found during parsing of individual // keys are ignored. For example, if you had keys A, B, C where B is // invalid (e.g. it does not contain the required fields), then the // resulting JWKS will contain keys A and C only. // // This options exists as an escape hatch for those times when a // key in a JWKS that is irrelevant for your use case is causing // your JWKS parsing to fail, and you want to get to the rest of the // keys in the JWKS. // // Again, DO NOT USE unless you have exhausted all other routes. // When you use this option, you will not be able to tell if you are // using a faulty JWKS, except for when there are JSON syntax errors. func WithIgnoreParseError(b bool) ParseOption { return &parseOption{option.New(identIgnoreParseError{}, b)} } golang-github-lestrrat-go-jwx-1.2.30/jwk/refresh.go000066400000000000000000000452531465311135100221640ustar00rootroot00000000000000package jwk import ( "context" "net/http" "reflect" "sync" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/httpcc" "github.com/pkg/errors" ) // AutoRefresh is a container that keeps track of jwk.Set object by their source URLs. // The jwk.Set objects are refreshed automatically behind the scenes. // // Before retrieving the jwk.Set objects, the user must pre-register the // URLs they intend to use by calling `Configure()` // // ar := jwk.NewAutoRefresh(ctx) // ar.Configure(url, options...) // // Once registered, you can call `Fetch()` to retrieve the jwk.Set object. // // All JWKS objects that are retrieved via the auto-fetch mechanism should be // treated read-only, as they are shared among the consumers and this object. type AutoRefresh struct { errSink chan AutoRefreshError cache map[string]Set configureCh chan struct{} removeCh chan removeReq fetching map[string]chan struct{} muErrSink sync.Mutex muCache sync.RWMutex muFetching sync.Mutex muRegistry sync.RWMutex registry map[string]*target resetTimerCh chan *resetTimerReq } type target struct { // The backoff policy to use when fetching the JWKS fails backoff backoff.Policy // The HTTP client to use. The user may opt to use a client which is // aware of HTTP caching, or one that goes through a proxy httpcl HTTPClient // Interval between refreshes are calculated two ways. // 1) You can set an explicit refresh interval by using WithRefreshInterval(). // In this mode, it doesn't matter what the HTTP response says in its // Cache-Control or Expires headers // 2) You can let us calculate the time-to-refresh based on the key's // Cache-Control or Expires headers. // First, the user provides us the absolute minimum interval before // refreshes. We will never check for refreshes before this specified // amount of time. // // Next, max-age directive in the Cache-Control header is consulted. // If `max-age` is not present, we skip the following section, and // proceed to the next option. // If `max-age > user-supplied minimum interval`, then we use the max-age, // otherwise the user-supplied minimum interval is used. // // Next, the value specified in Expires header is consulted. // If the header is not present, we skip the following seciont and // proceed to the next option. // We take the time until expiration `expires - time.Now()`, and // if `time-until-expiration > user-supplied minimum interval`, then // we use the expires value, otherwise the user-supplied minimum interval is used. // // If all of the above fails, we used the user-supplied minimum interval refreshInterval *time.Duration minRefreshInterval time.Duration url string // The timer for refreshing the keyset. should not be set by anyone // other than the refreshing goroutine timer *time.Timer // Semaphore to limit the number of concurrent refreshes in the background sem chan struct{} // for debugging, snapshoting lastRefresh time.Time nextRefresh time.Time wl Whitelist parseOptions []ParseOption } type resetTimerReq struct { t *target d time.Duration } // NewAutoRefresh creates a container that keeps track of JWKS objects which // are automatically refreshed. // // The context object in the argument controls the life-span of the // auto-refresh worker. If you are using this in a long running process, this // should mostly be set to a context that ends when the main loop/part of your // program exits: // // func MainLoop() { // ctx, cancel := context.WithCancel(context.Background()) // defer cancel() // ar := jwk.AutoRefresh(ctx) // for ... { // ... // } // } func NewAutoRefresh(ctx context.Context) *AutoRefresh { af := &AutoRefresh{ cache: make(map[string]Set), configureCh: make(chan struct{}), removeCh: make(chan removeReq), fetching: make(map[string]chan struct{}), registry: make(map[string]*target), resetTimerCh: make(chan *resetTimerReq), } go af.refreshLoop(ctx) return af } func (af *AutoRefresh) getCached(url string) (Set, bool) { af.muCache.RLock() ks, ok := af.cache[url] af.muCache.RUnlock() if ok { return ks, true } return nil, false } type removeReq struct { replyCh chan error url string } // Remove removes `url` from the list of urls being watched by jwk.AutoRefresh. // If the url is not already registered, returns an error. func (af *AutoRefresh) Remove(url string) error { ch := make(chan error) af.removeCh <- removeReq{replyCh: ch, url: url} return <-ch } // Configure registers the url to be controlled by AutoRefresh, and also // sets any options associated to it. // // Note that options are treated as a whole -- you can't just update // one value. For example, if you did: // // ar.Configure(url, jwk.WithHTTPClient(...)) // ar.Configure(url, jwk.WithRefreshInterval(...)) // // The the end result is that `url` is ONLY associated with the options // given in the second call to `Configure()`, i.e. `jwk.WithRefreshInterval`. // The other unspecified options, including the HTTP client, is set to // their default values. // // Configuration must propagate between goroutines, and therefore are // not atomic (But changes should be felt "soon enough" for practical // purposes) func (af *AutoRefresh) Configure(url string, options ...AutoRefreshOption) { var httpcl HTTPClient = http.DefaultClient var hasRefreshInterval bool var refreshInterval time.Duration var wl Whitelist var parseOptions []ParseOption minRefreshInterval := time.Hour bo := backoff.Null() for _, option := range options { if v, ok := option.(ParseOption); ok { parseOptions = append(parseOptions, v) continue } //nolint:forcetypeassert switch option.Ident() { case identFetchBackoff{}: bo = option.Value().(backoff.Policy) case identRefreshInterval{}: refreshInterval = option.Value().(time.Duration) hasRefreshInterval = true case identMinRefreshInterval{}: minRefreshInterval = option.Value().(time.Duration) case identHTTPClient{}: httpcl = option.Value().(HTTPClient) case identFetchWhitelist{}: wl = option.Value().(Whitelist) } } af.muRegistry.Lock() t, ok := af.registry[url] if ok { if t.httpcl != httpcl { t.httpcl = httpcl } if t.minRefreshInterval != minRefreshInterval { t.minRefreshInterval = minRefreshInterval } if t.refreshInterval != nil { if !hasRefreshInterval { t.refreshInterval = nil } else if *t.refreshInterval != refreshInterval { *t.refreshInterval = refreshInterval } } else { if hasRefreshInterval { t.refreshInterval = &refreshInterval } } if t.wl != wl { t.wl = wl } t.parseOptions = parseOptions } else { t = &target{ backoff: bo, httpcl: httpcl, minRefreshInterval: minRefreshInterval, url: url, sem: make(chan struct{}, 1), // This is a placeholder timer so we can call Reset() on it later // Make it sufficiently in the future so that we don't have bogus // events firing timer: time.NewTimer(24 * time.Hour), wl: wl, parseOptions: parseOptions, } if hasRefreshInterval { t.refreshInterval = &refreshInterval } // Record this in the registry af.registry[url] = t } af.muRegistry.Unlock() // Tell the backend to reconfigure itself af.configureCh <- struct{}{} } func (af *AutoRefresh) releaseFetching(url string) { // first delete the entry from the map, then close the channel or // otherwise we may end up getting multiple groutines doing the fetch af.muFetching.Lock() fetchingCh, ok := af.fetching[url] if !ok { // Juuuuuuust in case. But shouldn't happen af.muFetching.Unlock() return } delete(af.fetching, url) close(fetchingCh) af.muFetching.Unlock() } // IsRegistered checks if `url` is registered already. func (af *AutoRefresh) IsRegistered(url string) bool { _, ok := af.getRegistered(url) return ok } // Fetch returns a jwk.Set from the given url. func (af *AutoRefresh) getRegistered(url string) (*target, bool) { af.muRegistry.RLock() t, ok := af.registry[url] af.muRegistry.RUnlock() return t, ok } // Fetch returns a jwk.Set from the given url. // // If it has previously been fetched, then a cached value is returned. // // If this the first time `url` was requested, an HTTP request will be // sent, synchronously. // // When accessed via multiple goroutines concurrently, and the cache // has not been populated yet, only the first goroutine is // allowed to perform the initialization (HTTP fetch and cache population). // All other goroutines will be blocked until the operation is completed. // // DO NOT modify the jwk.Set object returned by this method, as the // objects are shared among all consumers and the backend goroutine func (af *AutoRefresh) Fetch(ctx context.Context, url string) (Set, error) { if _, ok := af.getRegistered(url); !ok { return nil, errors.Errorf(`url %s must be configured using "Configure()" first`, url) } ks, found := af.getCached(url) if found { return ks, nil } return af.refresh(ctx, url) } // Refresh is the same as Fetch(), except that HTTP fetching is done synchronously. // // This is useful when you want to force an HTTP fetch instead of waiting // for the background goroutine to do it, for example when you want to // make sure the AutoRefresh cache is warmed up before starting your main loop func (af *AutoRefresh) Refresh(ctx context.Context, url string) (Set, error) { if _, ok := af.getRegistered(url); !ok { return nil, errors.Errorf(`url %s must be configured using "Configure()" first`, url) } return af.refresh(ctx, url) } func (af *AutoRefresh) refresh(ctx context.Context, url string) (Set, error) { // To avoid a thundering herd, only one goroutine per url may enter into this // initial fetch phase. af.muFetching.Lock() fetchingCh, fetching := af.fetching[url] // unlock happens in each of the if/else clauses because we need to perform // the channel initialization when there is no channel present if fetching { af.muFetching.Unlock() select { case <-ctx.Done(): return nil, ctx.Err() case <-fetchingCh: } } else { fetchingCh = make(chan struct{}) af.fetching[url] = fetchingCh af.muFetching.Unlock() // Register a cleanup handler, to make sure we always defer af.releaseFetching(url) // The first time around, we need to fetch the keyset if err := af.doRefreshRequest(ctx, url, false); err != nil { return nil, errors.Wrapf(err, `failed to fetch resource pointed by %s`, url) } } // the cache should now be populated ks, ok := af.getCached(url) if !ok { return nil, errors.New("cache was not populated after explicit refresh") } return ks, nil } // Keeps looping, while refreshing the KeySet. func (af *AutoRefresh) refreshLoop(ctx context.Context) { // reflect.Select() is slow IF we are executing it over and over // in a very fast iteration, but we assume here that refreshes happen // seldom enough that being able to call one `select{}` with multiple // targets / channels outweighs the speed penalty of using reflect. // const ( ctxDoneIdx = iota configureIdx resetTimerIdx removeIdx baseSelcasesLen ) baseSelcases := make([]reflect.SelectCase, baseSelcasesLen) baseSelcases[ctxDoneIdx] = reflect.SelectCase{ Dir: reflect.SelectRecv, Chan: reflect.ValueOf(ctx.Done()), } baseSelcases[configureIdx] = reflect.SelectCase{ Dir: reflect.SelectRecv, Chan: reflect.ValueOf(af.configureCh), } baseSelcases[resetTimerIdx] = reflect.SelectCase{ Dir: reflect.SelectRecv, Chan: reflect.ValueOf(af.resetTimerCh), } baseSelcases[removeIdx] = reflect.SelectCase{ Dir: reflect.SelectRecv, Chan: reflect.ValueOf(af.removeCh), } var targets []*target var selcases []reflect.SelectCase for { // It seems silly, but it's much easier to keep track of things // if we re-build the select cases every iteration af.muRegistry.RLock() if cap(targets) < len(af.registry) { targets = make([]*target, 0, len(af.registry)) } else { targets = targets[:0] } if cap(selcases) < len(af.registry) { selcases = make([]reflect.SelectCase, 0, len(af.registry)+baseSelcasesLen) } else { selcases = selcases[:0] } selcases = append(selcases, baseSelcases...) for _, data := range af.registry { targets = append(targets, data) selcases = append(selcases, reflect.SelectCase{ Dir: reflect.SelectRecv, Chan: reflect.ValueOf(data.timer.C), }) } af.muRegistry.RUnlock() chosen, recv, recvOK := reflect.Select(selcases) switch chosen { case ctxDoneIdx: // <-ctx.Done(). Just bail out of this loop return case configureIdx: // <-configureCh. rebuild the select list from the registry. // since we're rebuilding everything for each iteration, // we just need to start the loop all over again continue case resetTimerIdx: // <-resetTimerCh. interrupt polling, and reset the timer on // a single target. this needs to be handled inside this select if !recvOK { continue } req := recv.Interface().(*resetTimerReq) //nolint:forcetypeassert t := req.t d := req.d if !t.timer.Stop() { select { case <-t.timer.C: default: } } t.timer.Reset(d) case removeIdx: // <-removeCh. remove the URL from future fetching //nolint:forcetypeassert req := recv.Interface().(removeReq) replyCh := req.replyCh url := req.url af.muRegistry.Lock() if _, ok := af.registry[url]; !ok { replyCh <- errors.Errorf(`invalid url %q (not registered)`, url) } else { delete(af.registry, url) replyCh <- nil } af.muRegistry.Unlock() default: // Do not fire a refresh in case the channel was closed. if !recvOK { continue } // Time to refresh a target t := targets[chosen-baseSelcasesLen] // Check if there are other goroutines still doing the refresh asynchronously. // This could happen if the refreshing goroutine is stuck on a backoff // waiting for the HTTP request to complete. select { case t.sem <- struct{}{}: // There can only be one refreshing goroutine default: continue } go func() { //nolint:errcheck af.doRefreshRequest(ctx, t.url, true) <-t.sem }() } } } func (af *AutoRefresh) doRefreshRequest(ctx context.Context, url string, enableBackoff bool) error { af.muRegistry.RLock() t, ok := af.registry[url] if !ok { af.muRegistry.RUnlock() return errors.Errorf(`url "%s" is not registered`, url) } // In case the refresh fails due to errors in fetching/parsing the JWKS, // we want to retry. Create a backoff object, parseOptions := t.parseOptions fetchOptions := []FetchOption{WithHTTPClient(t.httpcl)} if enableBackoff { fetchOptions = append(fetchOptions, WithFetchBackoff(t.backoff)) } if t.wl != nil { fetchOptions = append(fetchOptions, WithFetchWhitelist(t.wl)) } af.muRegistry.RUnlock() res, err := fetch(ctx, url, fetchOptions...) if err == nil { if res.StatusCode != http.StatusOK { // now, can there be a remote resource that responds with a status code // other than 200 and still be valid...? naaaaaaahhhhhh.... err = errors.Errorf(`bad response status code (%d)`, res.StatusCode) } else { defer res.Body.Close() keyset, parseErr := ParseReader(res.Body, parseOptions...) if parseErr == nil { // Got a new key set. replace the keyset in the target af.muCache.Lock() af.cache[url] = keyset af.muCache.Unlock() af.muRegistry.RLock() nextInterval := calculateRefreshDuration(res, t.refreshInterval, t.minRefreshInterval) af.muRegistry.RUnlock() rtr := &resetTimerReq{ t: t, d: nextInterval, } select { case <-ctx.Done(): return ctx.Err() case af.resetTimerCh <- rtr: } now := time.Now() af.muRegistry.Lock() t.lastRefresh = now.Local() t.nextRefresh = now.Add(nextInterval).Local() af.muRegistry.Unlock() return nil } err = parseErr } } // At this point if err != nil, we know that there was something wrong // in either the fetching or the parsing. Send this error to be processed, // but take the extra mileage to not block regular processing by // discarding the error if we fail to send it through the channel if err != nil { select { case af.errSink <- AutoRefreshError{Error: err, URL: url}: default: } } // We either failed to perform the HTTP GET, or we failed to parse the // JWK set. Even in case of errors, we don't delete the old key. // We persist the old key set, even if it may be stale so the user has something to work with // TODO: maybe this behavior should be customizable? // If we failed to get a single time, then queue another fetch in the future. rtr := &resetTimerReq{ t: t, d: calculateRefreshDuration(res, t.refreshInterval, t.minRefreshInterval), } select { case <-ctx.Done(): return ctx.Err() case af.resetTimerCh <- rtr: } return err } // ErrorSink sets a channel to receive JWK fetch errors, if any. // Only the errors that occurred *after* the channel was set will be sent. // // The user is responsible for properly draining the channel. If the channel // is not drained properly, errors will be discarded. // // To disable, set a nil channel. func (af *AutoRefresh) ErrorSink(ch chan AutoRefreshError) { af.muErrSink.Lock() af.errSink = ch af.muErrSink.Unlock() } func calculateRefreshDuration(res *http.Response, refreshInterval *time.Duration, minRefreshInterval time.Duration) time.Duration { // This always has precedence if refreshInterval != nil { return *refreshInterval } if res != nil { if v := res.Header.Get(`Cache-Control`); v != "" { dir, err := httpcc.ParseResponse(v) if err == nil { maxAge, ok := dir.MaxAge() if ok { resDuration := time.Duration(maxAge) * time.Second if resDuration > minRefreshInterval { return resDuration } return minRefreshInterval } // fallthrough } // fallthrough } if v := res.Header.Get(`Expires`); v != "" { expires, err := http.ParseTime(v) if err == nil { resDuration := time.Until(expires) if resDuration > minRefreshInterval { return resDuration } return minRefreshInterval } // fallthrough } } // Previous fallthroughs are a little redandunt, but hey, it's all good. return minRefreshInterval } // TargetSnapshot is the structure returned by the Snapshot method. // It contains information about a url that has been configured // in AutoRefresh. type TargetSnapshot struct { URL string NextRefresh time.Time LastRefresh time.Time } func (af *AutoRefresh) Snapshot() <-chan TargetSnapshot { af.muRegistry.Lock() ch := make(chan TargetSnapshot, len(af.registry)) for url, t := range af.registry { ch <- TargetSnapshot{ URL: url, NextRefresh: t.nextRefresh, LastRefresh: t.lastRefresh, } } af.muRegistry.Unlock() close(ch) return ch } golang-github-lestrrat-go-jwx-1.2.30/jwk/refresh_test.go000066400000000000000000000255621465311135100232240ustar00rootroot00000000000000package jwk_test import ( "bytes" "context" "fmt" "net/http" "net/http/httptest" "sync" "testing" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/iter/arrayiter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) //nolint:revive,golint func checkAccessCount(t *testing.T, ctx context.Context, src arrayiter.Source, expected ...int) bool { t.Helper() iter := src.Iterate(ctx) iter.Next(ctx) key := iter.Pair().Value.(jwk.Key) v, ok := key.Get(`accessCount`) if !assert.True(t, ok, `key.Get("accessCount") should succeed`) { return false } for _, e := range expected { if v == float64(e) { return assert.Equal(t, float64(e), v, `key.Get("accessCount") should be %d`, e) } } var buf bytes.Buffer fmt.Fprint(&buf, "[") for i, e := range expected { fmt.Fprintf(&buf, "%d", e) if i < len(expected)-1 { fmt.Fprint(&buf, ", ") } } fmt.Fprintf(&buf, "]") return assert.Failf(t, `key.Get("accessCount") should be one of %s (got %d)`, buf.String(), v) } func TestAutoRefresh(t *testing.T) { t.Parallel() t.Run("Specify explicit refresh interval", func(t *testing.T) { t.Parallel() ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() var accessCount int srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { accessCount++ key := map[string]interface{}{ "kty": "EC", "crv": "P-256", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "accessCount": accessCount, } hdrs := w.Header() hdrs.Set(`Content-Type`, `application/json`) hdrs.Set(`Cache-Control`, `max-age=7200`) // Make sure this is ignored json.NewEncoder(w).Encode(key) })) defer srv.Close() af := jwk.NewAutoRefresh(ctx) af.Configure(srv.URL, jwk.WithRefreshInterval(3*time.Second)) retries := 5 var wg sync.WaitGroup wg.Add(retries) for i := 0; i < retries; i++ { // Run these in separate goroutines to emulate a possible thundering herd go func() { defer wg.Done() ks, err := af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch should succeed`) { return } if !checkAccessCount(t, ctx, ks, 1) { return } }() } t.Logf("Waiting for fetching goroutines...") wg.Wait() t.Logf("Waiting for the refresh ...") time.Sleep(4 * time.Second) ks, err := af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch should succeed`) { return } if !checkAccessCount(t, ctx, ks, 2) { return } }) t.Run("Calculate next refresh from Cache-Control header", func(t *testing.T) { t.Parallel() ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() var accessCount int srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { accessCount++ key := map[string]interface{}{ "kty": "EC", "crv": "P-256", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "accessCount": accessCount, } hdrs := w.Header() hdrs.Set(`Content-Type`, `application/json`) hdrs.Set(`Cache-Control`, `max-age=3`) json.NewEncoder(w).Encode(key) })) defer srv.Close() af := jwk.NewAutoRefresh(ctx) af.Configure(srv.URL, jwk.WithMinRefreshInterval(time.Second)) if !assert.True(t, af.IsRegistered(srv.URL), `af.IsRegistered should be true`) { return } retries := 5 var wg sync.WaitGroup wg.Add(retries) for i := 0; i < retries; i++ { // Run these in separate goroutines to emulate a possible thundering herd go func() { defer wg.Done() ks, err := af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch should succeed`) { return } if !checkAccessCount(t, ctx, ks, 1) { return } }() } t.Logf("Waiting for fetching goroutines...") wg.Wait() t.Logf("Waiting for the refresh ...") time.Sleep(4 * time.Second) ks, err := af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch should succeed`) { return } if !checkAccessCount(t, ctx, ks, 2) { return } }) t.Run("Backoff", func(t *testing.T) { t.Parallel() ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() var accessCount int srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { accessCount++ if accessCount > 1 && accessCount < 4 { http.Error(w, "wait for it....", http.StatusForbidden) return } key := map[string]interface{}{ "kty": "EC", "crv": "P-256", "x": "SVqB4JcUD6lsfvqMr-OKUNUphdNn64Eay60978ZlL74", "y": "lf0u0pMj4lGAzZix5u4Cm5CMQIgMNpkwy163wtKYVKI", "accessCount": accessCount, } hdrs := w.Header() hdrs.Set(`Content-Type`, `application/json`) hdrs.Set(`Cache-Control`, `max-age=1`) json.NewEncoder(w).Encode(key) })) defer srv.Close() af := jwk.NewAutoRefresh(ctx) bo := backoff.Constant(backoff.WithInterval(time.Second)) af.Configure(srv.URL, jwk.WithFetchBackoff(bo), jwk.WithMinRefreshInterval(1)) // First fetch should succeed ks, err := af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch (#1) should succed`) { return } if !checkAccessCount(t, ctx, ks, 1) { return } // enough time for 1 refresh to have occurred time.Sleep(1500 * time.Millisecond) ks, err = af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch (#2) should succeed`) { return } // Should be using the cached version if !checkAccessCount(t, ctx, ks, 1) { return } // enough time for 2 refreshes to have occurred time.Sleep(2500 * time.Millisecond) ks, err = af.Fetch(ctx, srv.URL) if !assert.NoError(t, err, `af.Fetch (#3) should succeed`) { return } // should be new if !checkAccessCount(t, ctx, ks, 4, 5) { return } }) } func TestRefreshSnapshot(t *testing.T) { ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() var jwksURLs []string getJwksURL := func(dst *[]string, url string) bool { req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { return false } res, err := http.DefaultClient.Do(req) if err != nil { return false } defer res.Body.Close() var m map[string]interface{} if err := json.NewDecoder(res.Body).Decode(&m); err != nil { return false } jwksURL, ok := m["jwks_uri"] if !ok { return false } *dst = append(*dst, jwksURL.(string)) return true } if !getJwksURL(&jwksURLs, "https://oidc-sample.onelogin.com/oidc/2/.well-known/openid-configuration") { t.SkipNow() } if !getJwksURL(&jwksURLs, "https://accounts.google.com/.well-known/openid-configuration") { t.SkipNow() } ar := jwk.NewAutoRefresh(ctx) for _, url := range jwksURLs { ar.Configure(url) } for _, url := range jwksURLs { _, _ = ar.Refresh(ctx, url) } for target := range ar.Snapshot() { t.Logf("%s last refreshed at %s, next refresh at %s", target.URL, target.LastRefresh, target.NextRefresh) } for _, url := range jwksURLs { ar.Remove(url) } if !assert.Len(t, ar.Snapshot(), 0, `there should be no URLs`) { return } if !assert.Error(t, ar.Remove(`dummy`), `removing a non-existing url should be an error`) { return } } func TestErrorSink(t *testing.T) { t.Parallel() k, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } set := jwk.NewSet() set.Add(k) testcases := []struct { Name string Options func() []jwk.AutoRefreshOption Handler http.Handler }{ { Name: "non-200 response", Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusForbidden) }), }, { Name: "invalid JWK", Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) w.Write([]byte(`{"empty": "nonthingness"}`)) }), }, { Name: `rejected by whitelist`, Options: func() []jwk.AutoRefreshOption { return []jwk.AutoRefreshOption{ jwk.WithFetchWhitelist(jwk.WhitelistFunc(func(_ string) bool { return false })), } }, Handler: http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(k) }), }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { t.Parallel() ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() srv := httptest.NewServer(tc.Handler) defer srv.Close() ar := jwk.NewAutoRefresh(ctx) var options []jwk.AutoRefreshOption if f := tc.Options; f != nil { options = f() } options = append(options, jwk.WithRefreshInterval(500*time.Millisecond)) ar.Configure(srv.URL, options...) ch := make(chan jwk.AutoRefreshError, 256) // big buffer ar.ErrorSink(ch) ar.Fetch(ctx, srv.URL) timer := time.NewTimer(3 * time.Second) select { case <-ctx.Done(): t.Errorf(`ctx.Done before timer`) case <-timer.C: } cancel() // forcefully end context, and thus the AutoRefresh // timing issues can cause this to be non-deterministic... // we'll say it's okay as long as we're in +/- 1 range l := len(ch) if !assert.True(t, l <= 7, "number of errors shold be less than or equal to 7 (%d)", l) { return } if !assert.True(t, l >= 5, "number of errors shold be greather than or equal to 5 (%d)", l) { return } }) } } func TestAutoRefreshRace(t *testing.T) { k, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } set := jwk.NewSet() set.Add(k) // set up a server that always success since we need to update the registered target srv := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(k) })) defer srv.Close() // configure a unique auto-refresh ctx, cancel := context.WithTimeout(context.Background(), time.Minute) defer cancel() ar := jwk.NewAutoRefresh(ctx) ch := make(chan jwk.AutoRefreshError, 256) // big buffer ar.ErrorSink(ch) wg := sync.WaitGroup{} routineErr := make(chan error, 20) // execute a bunch of parallel refresh forcing the requests to the server // need to simulate configure happening also in the goroutine since this is // the cause of races when refresh is updating the registered targets for i := 0; i < 5000; i++ { wg.Add(1) go func() { defer wg.Done() ctx := context.Background() ar.Configure(srv.URL, jwk.WithRefreshInterval(500*time.Millisecond)) _, err := ar.Refresh(ctx, srv.URL) if err != nil { routineErr <- err } }() } wg.Wait() require.Len(t, routineErr, 0) } golang-github-lestrrat-go-jwx-1.2.30/jwk/rsa.go000066400000000000000000000123671465311135100213130ustar00rootroot00000000000000package jwk import ( "crypto" "crypto/rsa" "encoding/binary" "fmt" "math/big" "github.com/lestrrat-go/blackmagic" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/pool" "github.com/pkg/errors" ) func (k *rsaPrivateKey) FromRaw(rawKey *rsa.PrivateKey) error { k.mu.Lock() defer k.mu.Unlock() d, err := bigIntToBytes(rawKey.D) if err != nil { return errors.Wrap(err, `invalid rsa.PrivateKey`) } k.d = d l := len(rawKey.Primes) if l < 0 /* I know, I'm being paranoid */ || l > 2 { return fmt.Errorf(`invalid number of primes in rsa.PrivateKey: need 0 to 2, but got %d`, len(rawKey.Primes)) } if l > 0 { p, err := bigIntToBytes(rawKey.Primes[0]) if err != nil { return fmt.Errorf(`invalid rsa.PrivateKey: %w`, err) } k.p = p } if l > 1 { q, err := bigIntToBytes(rawKey.Primes[1]) if err != nil { return fmt.Errorf(`invalid rsa.PrivateKey: %w`, err) } k.q = q } // dp, dq, qi are optional values if v, err := bigIntToBytes(rawKey.Precomputed.Dp); err == nil { k.dp = v } if v, err := bigIntToBytes(rawKey.Precomputed.Dq); err == nil { k.dq = v } if v, err := bigIntToBytes(rawKey.Precomputed.Qinv); err == nil { k.qi = v } // public key part n, e, err := rsaPublicKeyByteValuesFromRaw(&rawKey.PublicKey) if err != nil { return errors.Wrap(err, `invalid rsa.PrivateKey`) } k.n = n k.e = e return nil } func rsaPublicKeyByteValuesFromRaw(rawKey *rsa.PublicKey) ([]byte, []byte, error) { n, err := bigIntToBytes(rawKey.N) if err != nil { return nil, nil, errors.Wrap(err, `invalid rsa.PublicKey`) } data := make([]byte, 8) binary.BigEndian.PutUint64(data, uint64(rawKey.E)) i := 0 for ; i < len(data); i++ { if data[i] != 0x0 { break } } return n, data[i:], nil } func (k *rsaPublicKey) FromRaw(rawKey *rsa.PublicKey) error { k.mu.Lock() defer k.mu.Unlock() n, e, err := rsaPublicKeyByteValuesFromRaw(rawKey) if err != nil { return errors.Wrap(err, `invalid rsa.PrivateKey`) } k.n = n k.e = e return nil } func (k *rsaPrivateKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() var d, q, p big.Int // note: do not use from sync.Pool d.SetBytes(k.d) q.SetBytes(k.q) p.SetBytes(k.p) // optional fields var dp, dq, qi *big.Int if len(k.dp) > 0 { dp = &big.Int{} // note: do not use from sync.Pool dp.SetBytes(k.dp) } if len(k.dq) > 0 { dq = &big.Int{} // note: do not use from sync.Pool dq.SetBytes(k.dq) } if len(k.qi) > 0 { qi = &big.Int{} // note: do not use from sync.Pool qi.SetBytes(k.qi) } var key rsa.PrivateKey pubk := newRSAPublicKey() pubk.n = k.n pubk.e = k.e if err := pubk.Raw(&key.PublicKey); err != nil { return errors.Wrap(err, `failed to materialize RSA public key`) } key.D = &d key.Primes = []*big.Int{&p, &q} if dp != nil { key.Precomputed.Dp = dp } if dq != nil { key.Precomputed.Dq = dq } if qi != nil { key.Precomputed.Qinv = qi } key.Precomputed.CRTValues = []rsa.CRTValue{} return blackmagic.AssignIfCompatible(v, &key) } // Raw takes the values stored in the Key object, and creates the // corresponding *rsa.PublicKey object. func (k *rsaPublicKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() var key rsa.PublicKey n := pool.GetBigInt() e := pool.GetBigInt() defer pool.ReleaseBigInt(e) n.SetBytes(k.n) e.SetBytes(k.e) key.N = n key.E = int(e.Int64()) return blackmagic.AssignIfCompatible(v, &key) } func makeRSAPublicKey(v interface { makePairs() []*HeaderPair }) (Key, error) { newKey := NewRSAPublicKey() // Iterate and copy everything except for the bits that should not be in the public key for _, pair := range v.makePairs() { switch pair.Key { case RSADKey, RSADPKey, RSADQKey, RSAPKey, RSAQKey, RSAQIKey: continue default: //nolint:forcetypeassert key := pair.Key.(string) if err := newKey.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set field %q`, key) } } } return newKey, nil } func (k *rsaPrivateKey) PublicKey() (Key, error) { return makeRSAPublicKey(k) } func (k *rsaPublicKey) PublicKey() (Key, error) { return makeRSAPublicKey(k) } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 func (k rsaPrivateKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() var key rsa.PrivateKey if err := k.Raw(&key); err != nil { return nil, errors.Wrap(err, `failed to materialize RSA private key`) } return rsaThumbprint(hash, &key.PublicKey) } func (k rsaPublicKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() var key rsa.PublicKey if err := k.Raw(&key); err != nil { return nil, errors.Wrap(err, `failed to materialize RSA public key`) } return rsaThumbprint(hash, &key) } func rsaThumbprint(hash crypto.Hash, key *rsa.PublicKey) ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteString(`{"e":"`) buf.WriteString(base64.EncodeUint64ToString(uint64(key.E))) buf.WriteString(`","kty":"RSA","n":"`) buf.WriteString(base64.EncodeToString(key.N.Bytes())) buf.WriteString(`"}`) h := hash.New() if _, err := buf.WriteTo(h); err != nil { return nil, errors.Wrap(err, "failed to write rsaThumbprint") } return h.Sum(nil), nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/rsa_gen.go000066400000000000000000000752061465311135100221450ustar00rootroot00000000000000// This file is auto-generated by jwk/internal/cmd/genheader/main.go. DO NOT EDIT package jwk import ( "bytes" "context" "crypto/rsa" "crypto/x509" "fmt" "sort" "sync" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) const ( RSADKey = "d" RSADPKey = "dp" RSADQKey = "dq" RSAEKey = "e" RSANKey = "n" RSAPKey = "p" RSAQIKey = "qi" RSAQKey = "q" ) type RSAPublicKey interface { Key FromRaw(*rsa.PublicKey) error E() []byte N() []byte } type rsaPublicKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 e []byte keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 n []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewRSAPublicKey() RSAPublicKey { return newRSAPublicKey() } func newRSAPublicKey() *rsaPublicKey { return &rsaPublicKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h rsaPublicKey) KeyType() jwa.KeyType { return jwa.RSA } func (h *rsaPublicKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *rsaPublicKey) E() []byte { return h.e } func (h *rsaPublicKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *rsaPublicKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *rsaPublicKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *rsaPublicKey) N() []byte { return h.n } func (h *rsaPublicKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *rsaPublicKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *rsaPublicKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *rsaPublicKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *rsaPublicKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.RSA}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.e != nil { pairs = append(pairs, &HeaderPair{Key: RSAEKey, Value: h.e}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.n != nil { pairs = append(pairs, &HeaderPair{Key: RSANKey, Value: h.n}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *rsaPublicKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *rsaPublicKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case RSAEKey: if h.e == nil { return nil, false } return h.e, true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case RSANKey: if h.n == nil { return nil, false } return h.n, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *rsaPublicKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *rsaPublicKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case RSAEKey: if v, ok := value.([]byte); ok { h.e = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSAEKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case RSANKey: if v, ok := value.([]byte); ok { h.n = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSANKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *rsaPublicKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case RSAEKey: k.e = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case RSANKey: k.n = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil default: delete(k.privateParams, key) } return nil } func (k *rsaPublicKey) Clone() (Key, error) { return cloneKey(k) } func (k *rsaPublicKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *rsaPublicKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *rsaPublicKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.e = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.n = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.RSA.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case RSAEKey: if err := json.AssignNextBytesToken(&h.e, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSAEKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case RSANKey: if err := json.AssignNextBytesToken(&h.n, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSANKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.e == nil { return errors.Errorf(`required field e is missing`) } if h.n == nil { return errors.Errorf(`required field n is missing`) } return nil } func (h rsaPublicKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 10) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *rsaPublicKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *rsaPublicKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *rsaPublicKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } type RSAPrivateKey interface { Key FromRaw(*rsa.PrivateKey) error D() []byte DP() []byte DQ() []byte E() []byte N() []byte P() []byte Q() []byte QI() []byte } type rsaPrivateKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 d []byte dp []byte dq []byte e []byte keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 n []byte p []byte q []byte qi []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewRSAPrivateKey() RSAPrivateKey { return newRSAPrivateKey() } func newRSAPrivateKey() *rsaPrivateKey { return &rsaPrivateKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h rsaPrivateKey) KeyType() jwa.KeyType { return jwa.RSA } func (h *rsaPrivateKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *rsaPrivateKey) D() []byte { return h.d } func (h *rsaPrivateKey) DP() []byte { return h.dp } func (h *rsaPrivateKey) DQ() []byte { return h.dq } func (h *rsaPrivateKey) E() []byte { return h.e } func (h *rsaPrivateKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *rsaPrivateKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *rsaPrivateKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *rsaPrivateKey) N() []byte { return h.n } func (h *rsaPrivateKey) P() []byte { return h.p } func (h *rsaPrivateKey) Q() []byte { return h.q } func (h *rsaPrivateKey) QI() []byte { return h.qi } func (h *rsaPrivateKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *rsaPrivateKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *rsaPrivateKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *rsaPrivateKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *rsaPrivateKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.RSA}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.d != nil { pairs = append(pairs, &HeaderPair{Key: RSADKey, Value: h.d}) } if h.dp != nil { pairs = append(pairs, &HeaderPair{Key: RSADPKey, Value: h.dp}) } if h.dq != nil { pairs = append(pairs, &HeaderPair{Key: RSADQKey, Value: h.dq}) } if h.e != nil { pairs = append(pairs, &HeaderPair{Key: RSAEKey, Value: h.e}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.n != nil { pairs = append(pairs, &HeaderPair{Key: RSANKey, Value: h.n}) } if h.p != nil { pairs = append(pairs, &HeaderPair{Key: RSAPKey, Value: h.p}) } if h.q != nil { pairs = append(pairs, &HeaderPair{Key: RSAQKey, Value: h.q}) } if h.qi != nil { pairs = append(pairs, &HeaderPair{Key: RSAQIKey, Value: h.qi}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *rsaPrivateKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *rsaPrivateKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case RSADKey: if h.d == nil { return nil, false } return h.d, true case RSADPKey: if h.dp == nil { return nil, false } return h.dp, true case RSADQKey: if h.dq == nil { return nil, false } return h.dq, true case RSAEKey: if h.e == nil { return nil, false } return h.e, true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case RSANKey: if h.n == nil { return nil, false } return h.n, true case RSAPKey: if h.p == nil { return nil, false } return h.p, true case RSAQKey: if h.q == nil { return nil, false } return h.q, true case RSAQIKey: if h.qi == nil { return nil, false } return h.qi, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *rsaPrivateKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *rsaPrivateKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case RSADKey: if v, ok := value.([]byte); ok { h.d = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSADKey, value) case RSADPKey: if v, ok := value.([]byte); ok { h.dp = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSADPKey, value) case RSADQKey: if v, ok := value.([]byte); ok { h.dq = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSADQKey, value) case RSAEKey: if v, ok := value.([]byte); ok { h.e = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSAEKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case RSANKey: if v, ok := value.([]byte); ok { h.n = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSANKey, value) case RSAPKey: if v, ok := value.([]byte); ok { h.p = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSAPKey, value) case RSAQKey: if v, ok := value.([]byte); ok { h.q = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSAQKey, value) case RSAQIKey: if v, ok := value.([]byte); ok { h.qi = v return nil } return errors.Errorf(`invalid value for %s key: %T`, RSAQIKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *rsaPrivateKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case RSADKey: k.d = nil case RSADPKey: k.dp = nil case RSADQKey: k.dq = nil case RSAEKey: k.e = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case RSANKey: k.n = nil case RSAPKey: k.p = nil case RSAQKey: k.q = nil case RSAQIKey: k.qi = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil default: delete(k.privateParams, key) } return nil } func (k *rsaPrivateKey) Clone() (Key, error) { return cloneKey(k) } func (k *rsaPrivateKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *rsaPrivateKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *rsaPrivateKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.d = nil h.dp = nil h.dq = nil h.e = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.n = nil h.p = nil h.q = nil h.qi = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.RSA.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case RSADKey: if err := json.AssignNextBytesToken(&h.d, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSADKey) } case RSADPKey: if err := json.AssignNextBytesToken(&h.dp, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSADPKey) } case RSADQKey: if err := json.AssignNextBytesToken(&h.dq, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSADQKey) } case RSAEKey: if err := json.AssignNextBytesToken(&h.e, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSAEKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case RSANKey: if err := json.AssignNextBytesToken(&h.n, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSANKey) } case RSAPKey: if err := json.AssignNextBytesToken(&h.p, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSAPKey) } case RSAQKey: if err := json.AssignNextBytesToken(&h.q, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSAQKey) } case RSAQIKey: if err := json.AssignNextBytesToken(&h.qi, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, RSAQIKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.d == nil { return errors.Errorf(`required field d is missing`) } if h.e == nil { return errors.Errorf(`required field e is missing`) } if h.n == nil { return errors.Errorf(`required field n is missing`) } return nil } func (h rsaPrivateKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 16) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *rsaPrivateKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *rsaPrivateKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *rsaPrivateKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } golang-github-lestrrat-go-jwx-1.2.30/jwk/set.go000066400000000000000000000131641465311135100213150ustar00rootroot00000000000000package jwk import ( "bytes" "context" "fmt" "sort" "github.com/lestrrat-go/iter/arrayiter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/pkg/errors" ) const keysKey = `keys` // appease linter // NewSet creates and empty `jwk.Set` object func NewSet() Set { return &set{ privateParams: make(map[string]interface{}), } } func (s *set) Set(n string, v interface{}) error { s.mu.RLock() defer s.mu.RUnlock() if n == keysKey { vl, ok := v.([]Key) if !ok { return errors.Errorf(`value for field "keys" must be []jwk.Key`) } s.keys = vl return nil } s.privateParams[n] = v return nil } func (s *set) Field(n string) (interface{}, bool) { s.mu.RLock() defer s.mu.RUnlock() v, ok := s.privateParams[n] return v, ok } func (s *set) Get(idx int) (Key, bool) { s.mu.RLock() defer s.mu.RUnlock() if idx >= 0 && idx < len(s.keys) { return s.keys[idx], true } return nil, false } func (s *set) Len() int { s.mu.RLock() defer s.mu.RUnlock() return len(s.keys) } // indexNL is Index(), but without the locking func (s *set) indexNL(key Key) int { for i, k := range s.keys { if k == key { return i } } return -1 } func (s *set) Index(key Key) int { s.mu.RLock() defer s.mu.RUnlock() return s.indexNL(key) } func (s *set) Add(key Key) bool { s.mu.Lock() defer s.mu.Unlock() if i := s.indexNL(key); i > -1 { return false } s.keys = append(s.keys, key) return true } func (s *set) Remove(key Key) bool { s.mu.Lock() defer s.mu.Unlock() for i, k := range s.keys { if k == key { switch i { case 0: s.keys = s.keys[1:] case len(s.keys) - 1: s.keys = s.keys[:i] default: s.keys = append(s.keys[:i], s.keys[i+1:]...) } return true } } return false } func (s *set) Clear() { s.mu.Lock() defer s.mu.Unlock() s.keys = nil } func (s *set) Iterate(ctx context.Context) KeyIterator { ch := make(chan *KeyPair, s.Len()) go iterate(ctx, s.keys, ch) return arrayiter.New(ch) } func iterate(ctx context.Context, keys []Key, ch chan *KeyPair) { defer close(ch) for i, key := range keys { pair := &KeyPair{Index: i, Value: key} select { case <-ctx.Done(): return case ch <- pair: } } } func (s *set) MarshalJSON() ([]byte, error) { s.mu.RLock() defer s.mu.RUnlock() buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) enc := json.NewEncoder(buf) fields := []string{keysKey} for k := range s.privateParams { fields = append(fields, k) } sort.Strings(fields) buf.WriteByte('{') for i, field := range fields { if i > 0 { buf.WriteByte(',') } fmt.Fprintf(buf, `%q:`, field) if field != keysKey { if err := enc.Encode(s.privateParams[field]); err != nil { return nil, errors.Wrapf(err, `failed to marshal field %q`, field) } } else { buf.WriteByte('[') for j, k := range s.keys { if j > 0 { buf.WriteByte(',') } if err := enc.Encode(k); err != nil { return nil, errors.Wrapf(err, `failed to marshal key #%d`, i) } } buf.WriteByte(']') } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (s *set) UnmarshalJSON(data []byte) error { s.mu.Lock() defer s.mu.Unlock() s.privateParams = make(map[string]interface{}) s.keys = nil var options []ParseOption var ignoreParseError bool if dc := s.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { options = append(options, withLocalRegistry(localReg)) } ignoreParseError = dc.IgnoreParseError() } var sawKeysField bool dec := json.NewDecoder(bytes.NewReader(data)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: switch tok { case "keys": sawKeysField = true var list []json.RawMessage if err := dec.Decode(&list); err != nil { return errors.Wrap(err, `failed to decode "keys"`) } for i, keysrc := range list { key, err := ParseKey(keysrc, options...) if err != nil { if !ignoreParseError { return errors.Wrapf(err, `failed to decode key #%d in "keys"`, i) } continue } s.keys = append(s.keys, key) } default: var v interface{} if err := dec.Decode(&v); err != nil { return errors.Wrapf(err, `failed to decode value for key %q`, tok) } s.privateParams[tok] = v } } } // This is really silly, but we can only detect the // lack of the "keys" field after going through the // entire object once // Not checking for len(s.keys) == 0, because it could be // an empty key set if !sawKeysField { key, err := ParseKey(data, options...) if err != nil { return errors.Wrapf(err, `failed to parse sole key in key set`) } s.keys = append(s.keys, key) } return nil } func (s *set) LookupKeyID(kid string) (Key, bool) { s.mu.RLock() defer s.mu.RUnlock() n := s.Len() for i := 0; i < n; i++ { key, ok := s.Get(i) if !ok { return nil, false } if key.KeyID() == kid { return key, true } } return nil, false } func (s *set) DecodeCtx() DecodeCtx { s.mu.RLock() defer s.mu.RUnlock() return s.dc } func (s *set) SetDecodeCtx(dc DecodeCtx) { s.mu.Lock() defer s.mu.Unlock() s.dc = dc } func (s *set) Clone() (Set, error) { s2 := &set{} s.mu.RLock() defer s.mu.RUnlock() s2.keys = make([]Key, len(s.keys)) copy(s2.keys, s.keys) return s2, nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/set_test.go000066400000000000000000000025111465311135100223460ustar00rootroot00000000000000package jwk_test import ( "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func TestSet(t *testing.T) { set := jwk.NewSet() keygens := []func() (jwk.Key, error){ jwxtest.GenerateRsaJwk, jwxtest.GenerateEcdsaJwk, jwxtest.GenerateSymmetricJwk, } //nolint:prealloc var keys []jwk.Key for _, gen := range keygens { k, err := gen() if !assert.NoError(t, err, `key generation should succeed`) { return } if !assert.True(t, set.Add(k), `set.Add should succeed`) { return } keys = append(keys, k) } if !assert.Equal(t, set.Len(), 3, `set.Len should be 3`) { return } for i, k := range keys { if !assert.Equal(t, i, set.Index(k), `set.Index should return %d`, i) { return } } for _, k := range keys { if !assert.True(t, set.Remove(k), `set.Remove should succeed`) { return } } if !assert.Equal(t, set.Len(), 0, `set.Len should be 0`) { return } for _, gen := range keygens { k, err := gen() if !assert.NoError(t, err, `key generation should succeed`) { return } if !assert.True(t, set.Add(k), `set.Add should succeed`) { return } } if !assert.Equal(t, set.Len(), 3, `set.Len should be 3`) { return } set.Clear() if !assert.Equal(t, set.Len(), 0, `set.Len should be 0`) { return } } golang-github-lestrrat-go-jwx-1.2.30/jwk/symmetric.go000066400000000000000000000026051465311135100225340ustar00rootroot00000000000000package jwk import ( "crypto" "fmt" "github.com/lestrrat-go/blackmagic" "github.com/lestrrat-go/jwx/internal/base64" "github.com/pkg/errors" ) func (k *symmetricKey) FromRaw(rawKey []byte) error { k.mu.Lock() defer k.mu.Unlock() if len(rawKey) == 0 { return errors.New(`non-empty []byte key required`) } k.octets = rawKey return nil } // Raw returns the octets for this symmetric key. // Since this is a symmetric key, this just calls Octets func (k *symmetricKey) Raw(v interface{}) error { k.mu.RLock() defer k.mu.RUnlock() return blackmagic.AssignIfCompatible(v, k.octets) } // Thumbprint returns the JWK thumbprint using the indicated // hashing algorithm, according to RFC 7638 func (k *symmetricKey) Thumbprint(hash crypto.Hash) ([]byte, error) { k.mu.RLock() defer k.mu.RUnlock() var octets []byte if err := k.Raw(&octets); err != nil { return nil, errors.Wrap(err, `failed to materialize symmetric key`) } h := hash.New() fmt.Fprint(h, `{"k":"`) fmt.Fprint(h, base64.EncodeToString(octets)) fmt.Fprint(h, `","kty":"oct"}`) return h.Sum(nil), nil } func (k *symmetricKey) PublicKey() (Key, error) { newKey := NewSymmetricKey() for _, pair := range k.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := newKey.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set field %q`, key) } } return newKey, nil } golang-github-lestrrat-go-jwx-1.2.30/jwk/symmetric_gen.go000066400000000000000000000321721465311135100233670ustar00rootroot00000000000000// This file is auto-generated by jwk/internal/cmd/genheader/main.go. DO NOT EDIT package jwk import ( "bytes" "context" "crypto/x509" "fmt" "sort" "sync" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) const ( SymmetricOctetsKey = "k" ) type SymmetricKey interface { Key FromRaw([]byte) error Octets() []byte } type symmetricKey struct { algorithm *string // https://tools.ietf.org/html/rfc7517#section-4.4 keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 keyOps *KeyOperationList // https://tools.ietf.org/html/rfc7517#section-4.3 keyUsage *string // https://tools.ietf.org/html/rfc7517#section-4.2 octets []byte x509CertChain *CertificateChain // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc json.DecodeCtx } func NewSymmetricKey() SymmetricKey { return newSymmetricKey() } func newSymmetricKey() *symmetricKey { return &symmetricKey{ mu: &sync.RWMutex{}, privateParams: make(map[string]interface{}), } } func (h symmetricKey) KeyType() jwa.KeyType { return jwa.OctetSeq } func (h *symmetricKey) Algorithm() string { if h.algorithm != nil { return *(h.algorithm) } return "" } func (h *symmetricKey) KeyID() string { if h.keyID != nil { return *(h.keyID) } return "" } func (h *symmetricKey) KeyOps() KeyOperationList { if h.keyOps != nil { return *(h.keyOps) } return nil } func (h *symmetricKey) KeyUsage() string { if h.keyUsage != nil { return *(h.keyUsage) } return "" } func (h *symmetricKey) Octets() []byte { return h.octets } func (h *symmetricKey) X509CertChain() []*x509.Certificate { if h.x509CertChain != nil { return h.x509CertChain.Get() } return nil } func (h *symmetricKey) X509CertThumbprint() string { if h.x509CertThumbprint != nil { return *(h.x509CertThumbprint) } return "" } func (h *symmetricKey) X509CertThumbprintS256() string { if h.x509CertThumbprintS256 != nil { return *(h.x509CertThumbprintS256) } return "" } func (h *symmetricKey) X509URL() string { if h.x509URL != nil { return *(h.x509URL) } return "" } func (h *symmetricKey) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair pairs = append(pairs, &HeaderPair{Key: "kty", Value: jwa.OctetSeq}) if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.keyOps != nil { pairs = append(pairs, &HeaderPair{Key: KeyOpsKey, Value: *(h.keyOps)}) } if h.keyUsage != nil { pairs = append(pairs, &HeaderPair{Key: KeyUsageKey, Value: *(h.keyUsage)}) } if h.octets != nil { pairs = append(pairs, &HeaderPair{Key: SymmetricOctetsKey, Value: h.octets}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: *(h.x509CertChain)}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } return pairs } func (h *symmetricKey) PrivateParams() map[string]interface{} { return h.privateParams } func (h *symmetricKey) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case KeyTypeKey: return h.KeyType(), true case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case KeyOpsKey: if h.keyOps == nil { return nil, false } return *(h.keyOps), true case KeyUsageKey: if h.keyUsage == nil { return nil, false } return *(h.keyUsage), true case SymmetricOctetsKey: if h.octets == nil { return nil, false } return h.octets, true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain.Get(), true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *symmetricKey) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *symmetricKey) setNoLock(name string, value interface{}) error { switch name { case "kty": return nil case AlgorithmKey: switch v := value.(type) { case string: h.algorithm = &v case fmt.Stringer: tmp := v.String() h.algorithm = &tmp default: return errors.Errorf(`invalid type for %s key: %T`, AlgorithmKey, value) } return nil case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case KeyOpsKey: var acceptor KeyOperationList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, KeyOpsKey) } h.keyOps = &acceptor return nil case KeyUsageKey: switch v := value.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: tmp := v.String() h.keyUsage = &tmp default: return errors.Errorf(`invalid key usage type %s`, v) } case string: h.keyUsage = &v default: return errors.Errorf(`invalid key usage type %s`, v) } case SymmetricOctetsKey: if v, ok := value.([]byte); ok { h.octets = v return nil } return errors.Errorf(`invalid value for %s key: %T`, SymmetricOctetsKey, value) case X509CertChainKey: var acceptor CertificateChain if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, X509CertChainKey) } h.x509CertChain = &acceptor return nil case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (k *symmetricKey) Remove(key string) error { k.mu.Lock() defer k.mu.Unlock() switch key { case AlgorithmKey: k.algorithm = nil case KeyIDKey: k.keyID = nil case KeyOpsKey: k.keyOps = nil case KeyUsageKey: k.keyUsage = nil case SymmetricOctetsKey: k.octets = nil case X509CertChainKey: k.x509CertChain = nil case X509CertThumbprintKey: k.x509CertThumbprint = nil case X509CertThumbprintS256Key: k.x509CertThumbprintS256 = nil case X509URLKey: k.x509URL = nil default: delete(k.privateParams, key) } return nil } func (k *symmetricKey) Clone() (Key, error) { return cloneKey(k) } func (k *symmetricKey) DecodeCtx() json.DecodeCtx { k.mu.RLock() defer k.mu.RUnlock() return k.dc } func (k *symmetricKey) SetDecodeCtx(dc json.DecodeCtx) { k.mu.Lock() defer k.mu.Unlock() k.dc = dc } func (h *symmetricKey) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.keyID = nil h.keyOps = nil h.keyUsage = nil h.octets = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case KeyTypeKey: val, err := json.ReadNextStringToken(dec) if err != nil { return errors.Wrap(err, `error reading token`) } if val != jwa.OctetSeq.String() { return errors.Errorf(`invalid kty value for RSAPublicKey (%s)`, val) } case AlgorithmKey: if err := json.AssignNextStringToken(&h.algorithm, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case KeyOpsKey: var decoded KeyOperationList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyOpsKey) } h.keyOps = &decoded case KeyUsageKey: if err := json.AssignNextStringToken(&h.keyUsage, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyUsageKey) } case SymmetricOctetsKey: if err := json.AssignNextBytesToken(&h.octets, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, SymmetricOctetsKey) } case X509CertChainKey: var decoded CertificateChain if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = &decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: if dc := h.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { h.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } if h.octets == nil { return errors.Errorf(`required field k is missing`) } return nil } func (h symmetricKey) MarshalJSON() ([]byte, error) { data := make(map[string]interface{}) fields := make([]string, 0, 9) for _, pair := range h.makePairs() { fields = append(fields, pair.Key.(string)) data[pair.Key.(string)] = pair.Value } sort.Strings(fields) buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, f := range fields { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) v := data[f] switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to encode value for field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (h *symmetricKey) Iterate(ctx context.Context) HeaderIterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *symmetricKey) Walk(ctx context.Context, visitor HeaderVisitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *symmetricKey) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } golang-github-lestrrat-go-jwx-1.2.30/jwk/testdata/000077500000000000000000000000001465311135100217775ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwk/testdata/rs256.jwk000066400000000000000000000031711465311135100233770ustar00rootroot00000000000000{"alg":"RS256","d":"fZQDgdgQUTu9BjMRvNwt0-2Pl5cJ2-9m0cW3xZl5ap_JUF0nyOG5gmR30tdst2xUTichbNvJZvM5Sq38TZk7Q5k3khZvm2TMDzimPI4zg8X0mRf4keDis-Npsj0liuPtv7l4Zdni8lRVl4nBWnO91-e2HDbGkO_qBpcaL8t64B9LIxZbIDHUBXu25PurOrLOeucfs5uHO6oXTuWwMMjR64w7497x8nyco16YxP_1rr5Ku-hko2rzOkCyIR2Z5-JVDAlZhgSvUie3VMy_ax1ADH9P5LZdbj-fXwAikB80r9EYfp0stGThOstQrX06Gh_A5m1s-aprG5r_ctSpq4LIQQ","dp":"Kg2YsdKtsgDR-MHSftSbGrnRVKnduldPW4ufruyUiZn-cEwApAPYq5FEJOw-bUJ-QmwPzhv8M-AXYUo98lP-hlVdqSrpiZb5g7OmsjQD1vbBDKjh291-gtDTOdVLlvRWVTcw4TGV3kWLeSLPjKNXVORPkVuEEf0n-XV2wZ5bqh0","dq":"wFxWLTFH3dozNqt96S3LHEBP7bA0QbUx_8T4AxnifSknp-INzS-V0-7oeF5HenXJ9Nk8QemcUvQ2wHpfbIX_Fu2UdLlsbE2xLlvjcQbA36NLWZc0Bo3oupG660_CPB-bXUFVsI7rZJt5tCpw_BWnANeeX_l3i4yQwqRXPDqTEHc","e":"AQAB","key_ops":["sign","verify"],"kty":"RSA","n":"2ju-i9zuyy_-tbWneu90bviHlWMsVYp_9CNBWl_KJ-xeKw31LgH4pG0CATCL_m6ltJeDA5C27BnZ-Knq5jARI6fGE9zSLYnhSjbi7VlHsp-b2knCX_gaNUL_Yv4ZCRRCtoSr0hKGHGW3F8gf9e8BDnuyQo7z_xEEmxtEXTplvX8nSYN6sdKm9KKp38l1QzRVYQc9aaI6JdHm30SJ8m0Xoq7gSM9GWn3Qpc0qJJOqsIyJdek4ezPltce_0vHsKFvFYXJHsDIt9Gz-wzAkK-9yJ7x0QZh7HYBpxEN1WkckSnfbVbdo6DEdz3gpKLXRm7IA9RLpD5N0G0VVCu2oGBvKuQ","p":"7l685f3zywEx8R3JMS2y2B8WgaSQdKoVlbLA3VUOQ12_fHHqp-6RUuV31X817PqK5Ek0b1KjlAtolS5Y7tEfiWhf-RrDNedb26AMLLKBdfupGpF7KuVZl2OMkZ0xHYj-7WP-PLjnr3sDNBVFYRaKFFy9IBW686wVOaTez8ztA1c","q":"6l-9y52790WNoyOgXAtPP3j4DBH_4qa8uzo4TaSx5kTymQ8UsdqAUaeaG9EvubN7Oh83jTuS4W7vGla5Y9V3_fdYNzx969cJ54hW_GrKHxRLM6VtkET86djzs7rm2xmgaHYVaqBXgy-NUTpyBGaRo1kiR5H2OqoDt9DL2spkaG8","qi":"awGOEDph5Jds0dNNC-ezhBI6-vWX_ZfYEcZxUBkzQQup9KHTfuFtL4r_bZuffw0-A7pLtTszWwCfOb1uWP7pBZIVIOcAR-3hMqchoHYUOjvF99czv9a-8mT9N4BaRFFGtlxWfrIEVSvjrifgGFGkVsc_5bDE7uoCQ6trHfils3o"}golang-github-lestrrat-go-jwx-1.2.30/jwk/usage.go000066400000000000000000000011371465311135100216230ustar00rootroot00000000000000package jwk import "github.com/pkg/errors" func (k KeyUsageType) String() string { return string(k) } func (k *KeyUsageType) Accept(v interface{}) error { switch v := v.(type) { case KeyUsageType: switch v { case ForSignature, ForEncryption: *k = v return nil default: return errors.Errorf("invalid key usage type %s", v) } case string: switch v { case ForSignature.String(), ForEncryption.String(): *k = KeyUsageType(v) return nil default: return errors.Errorf("invalid key usage type %s", v) } } return errors.Errorf("invalid value for key usage type %s", v) } golang-github-lestrrat-go-jwx-1.2.30/jwk/whitelist.go000066400000000000000000000035331465311135100225350ustar00rootroot00000000000000package jwk import "regexp" // InsecureWhitelist allows any URLs to be fetched. This is the default // behavior of `jwk.Fetch()`, but this exists to allow other libraries // (such as jws, via jws.VerifyAuto) and users to be able to explicitly // state that they intend to not check the URLs that are being fetched type InsecureWhitelist struct{} func (InsecureWhitelist) IsAllowed(string) bool { return true } // RegexpWhitelist is a jwk.Whitelist object comprised of a list of *regexp.Regexp // objects. All entries in the list are tried until one matches. If none of the // *regexp.Regexp objects match, then the URL is deemed unallowed. type RegexpWhitelist struct { patterns []*regexp.Regexp } func NewRegexpWhitelist() *RegexpWhitelist { return &RegexpWhitelist{} } func (w *RegexpWhitelist) Add(pat *regexp.Regexp) *RegexpWhitelist { w.patterns = append(w.patterns, pat) return w } // IsAlloed returns true if any of the patterns in the whitelist // returns true. func (w *RegexpWhitelist) IsAllowed(u string) bool { for _, pat := range w.patterns { if pat.MatchString(u) { return true } } return false } // MapWhitelist is a jwk.Whitelist object comprised of a map of strings. // If the URL exists in the map, then the URL is allowed to be fetched. type MapWhitelist struct { store map[string]struct{} } func NewMapWhitelist() *MapWhitelist { return &MapWhitelist{store: make(map[string]struct{})} } func (w *MapWhitelist) Add(pat string) *MapWhitelist { w.store[pat] = struct{}{} return w } func (w *MapWhitelist) IsAllowed(u string) bool { _, b := w.store[u] return b } // WhitelistFunc is a jwk.Whitelist object based on a function. // You can perform any sort of check against the given URL to determine // if it can be fetched or not. type WhitelistFunc func(string) bool func (w WhitelistFunc) IsAllowed(u string) bool { return w(u) } golang-github-lestrrat-go-jwx-1.2.30/jwk/x5c_test.go000066400000000000000000000163001465311135100222530ustar00rootroot00000000000000package jwk_test import ( "testing" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func Test_X5CHeader(t *testing.T) { certs := []string{ "MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYwMTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3HKrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQmVZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpRSgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRTcDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEuMB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDSkdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IGOgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMUA2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTXRE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuHqDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWVU+4=", "MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoXDTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHUTBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMbVmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwgSW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlvbiBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEgMB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUwAwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdvZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUdIAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4OWBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0VmsfSxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==", "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd", } t.Run("Marshal/Unmarshal", func(t *testing.T) { // The input contains padding. We can accept either as input, but only emit // strings encoded with padding certsNopad := make([]string, len(certs)) for i, cert := range certs { for len(cert) > 0 && cert[len(cert)-1] == '=' { cert = cert[:len(cert)-1] } certsNopad[i] = cert } expected, err := json.Marshal(certs) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } inputs := map[string][]string{ "with padding": certs, "without padding": certsNopad, } for k, input := range inputs { input := input t.Run(k, func(t *testing.T) { // Take the input, and create a json jsonbuf, err := json.Marshal(input) if !assert.NoError(t, err, `json.Marshal should succeed (for input)`) { return } var c jwk.CertificateChain if !assert.NoError(t, json.Unmarshal(jsonbuf, &c), `json.Unmarshal should succeed`) { return } if !assert.Len(t, c.Get(), 3, `should have three certs`) { return } buf, err := json.Marshal(c) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } if !assert.Equal(t, expected, buf, `json output should match`) { return } }) } }) for _, key := range []jwk.Key{ jwk.NewRSAPrivateKey(), jwk.NewRSAPublicKey(), jwk.NewECDSAPrivateKey(), jwk.NewECDSAPublicKey(), jwk.NewSymmetricKey(), } { key := key t.Run("Set X509CertChainKey", func(t *testing.T) { t.Run("string", func(t *testing.T) { if !assert.NoError(t, key.Set(jwk.X509CertChainKey, certs[0]), "Set for x5c should succeed") { return } gotcerts, ok := key.Get(jwk.X509CertChainKey) if !assert.True(t, ok, "Get for x5c should succeed") { return } if !assert.Len(t, gotcerts, 1, `should have 1 cert`) { return } }) t.Run("[]string", func(t *testing.T) { if !assert.NoError(t, key.Set(jwk.X509CertChainKey, certs), "Set for x5c should succeed") { return } gotcerts, ok := key.Get(jwk.X509CertChainKey) if !assert.True(t, ok, "Get for x5c should succeed") { return } if !assert.Len(t, gotcerts, 3, `should have 3 certs`) { return } }) t.Run("[]interface{} with string elements", func(t *testing.T) { tmp := make([]interface{}, len(certs)) for i := 0; i < len(certs); i++ { tmp[i] = certs[i] } if !assert.NoError(t, key.Set(jwk.X509CertChainKey, tmp), "Set for x5c should succeed") { return } gotcerts, ok := key.Get(jwk.X509CertChainKey) if !assert.True(t, ok, "Get for x5c should succeed") { return } if !assert.Len(t, gotcerts, 3, `should have 3 certs`) { return } }) }) } } golang-github-lestrrat-go-jwx-1.2.30/jws/000077500000000000000000000000001465311135100201765ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jws/README.md000066400000000000000000000074661465311135100214720ustar00rootroot00000000000000# JWS [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx/jws.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx/jws) Package jws implements JWS as described in [RFC7515](https://tools.ietf.org/html/rfc7515) and [RFC7797](https://tools.ietf.org/html/rfc7797) * Parse and generate compact or JSON serializations * Sign and verify arbitrary payload * Use any of the keys supported in [github.com/lestrrat-go/jwx/jwk](../jwk) * Add arbitrary fields in the JWS object * Ability to add/replace existing signature methods * Respect "b64" settings for RFC7797 How-to style documentation can be found in the [docs directory](../docs). Examples are located in the examples directory ([jws_example_test.go](../examples/jws_example_test.go)) Supported signature algorithms: | Algorithm | Supported? | Constant in [jwa](../jwa) | |:----------------------------------------|:-----------|:-------------------------| | HMAC using SHA-256 | YES | jwa.HS256 | | HMAC using SHA-384 | YES | jwa.HS384 | | HMAC using SHA-512 | YES | jwa.HS512 | | RSASSA-PKCS-v1.5 using SHA-256 | YES | jwa.RS256 | | RSASSA-PKCS-v1.5 using SHA-384 | YES | jwa.RS384 | | RSASSA-PKCS-v1.5 using SHA-512 | YES | jwa.RS512 | | ECDSA using P-256 and SHA-256 | YES | jwa.ES256 | | ECDSA using P-384 and SHA-384 | YES | jwa.ES384 | | ECDSA using P-521 and SHA-512 | YES | jwa.ES512 | | ECDSA using secp256k1 and SHA-256 (2) | YES | jwa.ES256K | | RSASSA-PSS using SHA256 and MGF1-SHA256 | YES | jwa.PS256 | | RSASSA-PSS using SHA384 and MGF1-SHA384 | YES | jwa.PS384 | | RSASSA-PSS using SHA512 and MGF1-SHA512 | YES | jwa.PS512 | | EdDSA (1) | YES | jwa.EdDSA | * Note 1: Experimental * Note 2: Experimental, and must be toggled using `-tags jwx_es256k` build tag # SYNOPSIS ## Sign and verify arbitrary data ```go import( "crypto/rand" "crypto/rsa" "log" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jws" ) func main() { privkey, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to generate private key: %s", err) return } buf, err := jws.Sign([]byte("Lorem ipsum"), jwa.RS256, privkey) if err != nil { log.Printf("failed to created JWS message: %s", err) return } // When you receive a JWS message, you can verify the signature // and grab the payload sent in the message in one go: verified, err := jws.Verify(buf, jwa.RS256, &privkey.PublicKey) if err != nil { log.Printf("failed to verify message: %s", err) return } log.Printf("signed message verified! -> %s", verified) } ``` ## Programatically manipulate `jws.Message` ```go func ExampleMessage() { // initialization for the following variables have been omitted. // please see jws_example_test.go for details var decodedPayload, decodedSig1, decodedSig2 []byte var public1, protected1, public2, protected2 jws.Header // Construct a message. DO NOT use values that are base64 encoded m := jws.NewMessage(). SetPayload(decodedPayload). AppendSignature( jws.NewSignature(). SetSignature(decodedSig1). SetProtectedHeaders(public1). SetPublicHeaders(protected1), ). AppendSignature( jws.NewSignature(). SetSignature(decodedSig2). SetProtectedHeaders(public2). SetPublicHeaders(protected2), ) buf, err := json.MarshalIndent(m, "", " ") if err != nil { fmt.Printf("%s\n", err) return } _ = buf } ``` golang-github-lestrrat-go-jwx-1.2.30/jws/ecdsa.go000066400000000000000000000113051465311135100216040ustar00rootroot00000000000000package jws import ( "crypto" "crypto/ecdsa" "crypto/rand" "encoding/asn1" "fmt" "math/big" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) var ecdsaSigners map[jwa.SignatureAlgorithm]*ecdsaSigner var ecdsaVerifiers map[jwa.SignatureAlgorithm]*ecdsaVerifier func init() { algs := map[jwa.SignatureAlgorithm]crypto.Hash{ jwa.ES256: crypto.SHA256, jwa.ES384: crypto.SHA384, jwa.ES512: crypto.SHA512, jwa.ES256K: crypto.SHA256, } ecdsaSigners = make(map[jwa.SignatureAlgorithm]*ecdsaSigner) ecdsaVerifiers = make(map[jwa.SignatureAlgorithm]*ecdsaVerifier) for alg, hash := range algs { ecdsaSigners[alg] = &ecdsaSigner{ alg: alg, hash: hash, } ecdsaVerifiers[alg] = &ecdsaVerifier{ alg: alg, hash: hash, } } } func newECDSASigner(alg jwa.SignatureAlgorithm) Signer { return ecdsaSigners[alg] } // ecdsaSigners are immutable. type ecdsaSigner struct { alg jwa.SignatureAlgorithm hash crypto.Hash } func (es ecdsaSigner) Algorithm() jwa.SignatureAlgorithm { return es.alg } func (es *ecdsaSigner) Sign(payload []byte, key interface{}) ([]byte, error) { if key == nil { return nil, errors.New(`missing private key while signing payload`) } h := es.hash.New() if _, err := h.Write(payload); err != nil { return nil, errors.Wrap(err, "failed to write payload using ecdsa") } signer, ok := key.(crypto.Signer) if ok { switch key.(type) { case ecdsa.PrivateKey, *ecdsa.PrivateKey: // if it's a ecdsa.PrivateKey, it's more efficient to // go through the non-crypto.Signer route. Set ok to false ok = false } } var r, s *big.Int var curveBits int if ok { signed, err := signer.Sign(rand.Reader, h.Sum(nil), es.hash) if err != nil { return nil, err } var p struct { R *big.Int S *big.Int } if _, err := asn1.Unmarshal(signed, &p); err != nil { return nil, errors.Wrap(err, `failed to unmarshal ASN1 encoded signature`) } // Okay, this is silly, but hear me out. When we use the // crypto.Signer interface, the PrivateKey is hidden. // But we need some information about the key (it's bit size). // // So while silly, we're going to have to make another call // here and fetch the Public key. // This probably means that this should be cached some where. cpub := signer.Public() pubkey, ok := cpub.(*ecdsa.PublicKey) if !ok { return nil, fmt.Errorf(`expected *ecdsa.PublicKey, got %T`, pubkey) } curveBits = pubkey.Curve.Params().BitSize r = p.R s = p.S } else { var privkey ecdsa.PrivateKey if err := keyconv.ECDSAPrivateKey(&privkey, key); err != nil { return nil, errors.Wrapf(err, `failed to retrieve ecdsa.PrivateKey out of %T`, key) } curveBits = privkey.Curve.Params().BitSize rtmp, stmp, err := ecdsa.Sign(rand.Reader, &privkey, h.Sum(nil)) if err != nil { return nil, errors.Wrap(err, "failed to sign payload using ecdsa") } r = rtmp s = stmp } keyBytes := curveBits / 8 // Curve bits do not need to be a multiple of 8. if curveBits%8 > 0 { keyBytes++ } rBytes := r.Bytes() rBytesPadded := make([]byte, keyBytes) copy(rBytesPadded[keyBytes-len(rBytes):], rBytes) sBytes := s.Bytes() sBytesPadded := make([]byte, keyBytes) copy(sBytesPadded[keyBytes-len(sBytes):], sBytes) out := append(rBytesPadded, sBytesPadded...) return out, nil } // ecdsaVerifiers are immutable. type ecdsaVerifier struct { alg jwa.SignatureAlgorithm hash crypto.Hash } func newECDSAVerifier(alg jwa.SignatureAlgorithm) Verifier { return ecdsaVerifiers[alg] } func (v ecdsaVerifier) Algorithm() jwa.SignatureAlgorithm { return v.alg } func (v *ecdsaVerifier) Verify(payload []byte, signature []byte, key interface{}) error { if key == nil { return errors.New(`missing public key while verifying payload`) } var pubkey ecdsa.PublicKey if cs, ok := key.(crypto.Signer); ok { cpub := cs.Public() switch cpub := cpub.(type) { case ecdsa.PublicKey: pubkey = cpub case *ecdsa.PublicKey: pubkey = *cpub default: return errors.Errorf(`failed to retrieve ecdsa.PublicKey out of crypto.Signer %T`, key) } } else { if err := keyconv.ECDSAPublicKey(&pubkey, key); err != nil { return errors.Wrapf(err, `failed to retrieve ecdsa.PublicKey out of %T`, key) } } r := pool.GetBigInt() s := pool.GetBigInt() defer pool.ReleaseBigInt(r) defer pool.ReleaseBigInt(s) n := len(signature) / 2 r.SetBytes(signature[:n]) s.SetBytes(signature[n:]) h := v.hash.New() if _, err := h.Write(payload); err != nil { return errors.Wrap(err, "failed to write payload using ecdsa") } if !ecdsa.Verify(&pubkey, h.Sum(nil), r, s) { return errors.New(`failed to verify signature using ecdsa`) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jws/eddsa.go000066400000000000000000000035151465311135100216110ustar00rootroot00000000000000package jws import ( "crypto" "crypto/ed25519" "crypto/rand" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) type eddsaSigner struct{} func newEdDSASigner() Signer { return &eddsaSigner{} } func (s eddsaSigner) Algorithm() jwa.SignatureAlgorithm { return jwa.EdDSA } func (s eddsaSigner) Sign(payload []byte, key interface{}) ([]byte, error) { if key == nil { return nil, errors.New(`missing private key while signing payload`) } // The ed25519.PrivateKey object implements crypto.Signer, so we should // simply accept a crypto.Signer here. signer, ok := key.(crypto.Signer) if !ok { // This fallback exists for cases when jwk.Key was passed, or // users gave us a pointer instead of non-pointer, etc. var privkey ed25519.PrivateKey if err := keyconv.Ed25519PrivateKey(&privkey, key); err != nil { return nil, errors.Wrapf(err, `failed to retrieve ed25519.PrivateKey out of %T`, key) } signer = privkey } return signer.Sign(rand.Reader, payload, crypto.Hash(0)) } type eddsaVerifier struct{} func newEdDSAVerifier() Verifier { return &eddsaVerifier{} } func (v eddsaVerifier) Verify(payload, signature []byte, key interface{}) (err error) { if key == nil { return errors.New(`missing public key while verifying payload`) } var pubkey ed25519.PublicKey signer, ok := key.(crypto.Signer) if ok { v := signer.Public() pubkey, ok = v.(ed25519.PublicKey) if !ok { return errors.Errorf(`expected crypto.Signer.Public() to return ed25519.PublicKey, but got %T`, v) } } else { if err := keyconv.Ed25519PublicKey(&pubkey, key); err != nil { return errors.Wrapf(err, `failed to retrieve ed25519.PublicKey out of %T`, key) } } if !ed25519.Verify(pubkey, payload, signature) { return errors.New(`failed to match EdDSA signature`) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jws/es256k.go000066400000000000000000000002431465311135100215430ustar00rootroot00000000000000//go:build jwx_es256k // +build jwx_es256k package jws import ( "github.com/lestrrat-go/jwx/jwa" ) func init() { addAlgorithmForKeyType(jwa.EC, jwa.ES256K) } golang-github-lestrrat-go-jwx-1.2.30/jws/es256k_test.go000066400000000000000000000013311465311135100226010ustar00rootroot00000000000000//go:build jwx_es256k // +build jwx_es256k package jws_test import ( "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" ) func init() { hasES256K = true } func TestES256K(t *testing.T) { payload := []byte("Hello, World!") t.Parallel() key, err := jwxtest.GenerateEcdsaKey(jwa.Secp256k1) if !assert.NoError(t, err, "ECDSA key generated") { return } jwkKey, _ := jwk.New(key.PublicKey) keys := map[string]interface{}{ "Verify(ecdsa.PublicKey)": key.PublicKey, "Verify(*ecdsa.PublicKey)": &key.PublicKey, "Verify(jwk.Key)": jwkKey, } testRoundtrip(t, payload, jwa.ES256K, key, keys) } golang-github-lestrrat-go-jwx-1.2.30/jws/gen.sh000077500000000000000000000005231465311135100213060ustar00rootroot00000000000000#!/bin/bash # Script to perform code generation. This exists to overcome # the fact that go:generate doesn't really allow you to change directories set -e pushd internal/cmd/genheader go build -o genheader main.go popd ./internal/cmd/genheader/genheader -objects=internal/cmd/genheader/objects.yml rm internal/cmd/genheader/genheader golang-github-lestrrat-go-jwx-1.2.30/jws/headers.go000066400000000000000000000034721465311135100221460ustar00rootroot00000000000000package jws import ( "context" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/pkg/errors" ) // Iterate returns a channel that successively returns all the // header name and values. func (h *stdHeaders) Iterate(ctx context.Context) Iterator { pairs := h.makePairs() ch := make(chan *HeaderPair, len(pairs)) go func(ctx context.Context, ch chan *HeaderPair, pairs []*HeaderPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (h *stdHeaders) Walk(ctx context.Context, visitor Visitor) error { return iter.WalkMap(ctx, h, visitor) } func (h *stdHeaders) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, h) } func (h *stdHeaders) Copy(_ context.Context, dst Headers) error { for _, pair := range h.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := dst.Set(key, pair.Value); err != nil { return errors.Wrapf(err, `failed to set header %q`, key) } } return nil } // mergeHeaders merges two headers, and works even if the first Header // object is nil. This is not exported because ATM it felt like this // function is not frequently used, and MergeHeaders seemed a clunky name func mergeHeaders(ctx context.Context, h1, h2 Headers) (Headers, error) { h3 := NewHeaders() if h1 != nil { if err := h1.Copy(ctx, h3); err != nil { return nil, errors.Wrap(err, `failed to copy headers from first Header`) } } if h2 != nil { if err := h2.Copy(ctx, h3); err != nil { return nil, errors.Wrap(err, `failed to copy headers from second Header`) } } return h3, nil } func (h *stdHeaders) Merge(ctx context.Context, h2 Headers) (Headers, error) { return mergeHeaders(ctx, h, h2) } golang-github-lestrrat-go-jwx-1.2.30/jws/headers_gen.go000066400000000000000000000347701465311135100230040ustar00rootroot00000000000000// This file is auto-generated by jws/internal/cmd/genheaders/main.go. DO NOT EDIT package jws import ( "bytes" "context" "sort" "sync" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" ) const ( AlgorithmKey = "alg" ContentTypeKey = "cty" CriticalKey = "crit" JWKKey = "jwk" JWKSetURLKey = "jku" KeyIDKey = "kid" TypeKey = "typ" X509CertChainKey = "x5c" X509CertThumbprintKey = "x5t" X509CertThumbprintS256Key = "x5t#S256" X509URLKey = "x5u" ) // Headers describe a standard Header set. type Headers interface { json.Marshaler json.Unmarshaler Algorithm() jwa.SignatureAlgorithm ContentType() string Critical() []string JWK() jwk.Key JWKSetURL() string KeyID() string Type() string X509CertChain() []string X509CertThumbprint() string X509CertThumbprintS256() string X509URL() string Iterate(ctx context.Context) Iterator Walk(context.Context, Visitor) error AsMap(context.Context) (map[string]interface{}, error) Copy(context.Context, Headers) error Merge(context.Context, Headers) (Headers, error) Get(string) (interface{}, bool) Set(string, interface{}) error Remove(string) error // PrivateParams returns the non-standard elements in the source structure // WARNING: DO NOT USE PrivateParams() IF YOU HAVE CONCURRENT CODE ACCESSING THEM. // Use AsMap() to get a copy of the entire header instead PrivateParams() map[string]interface{} } type stdHeaders struct { algorithm *jwa.SignatureAlgorithm // https://tools.ietf.org/html/rfc7515#section-4.1.1 contentType *string // https://tools.ietf.org/html/rfc7515#section-4.1.10 critical []string // https://tools.ietf.org/html/rfc7515#section-4.1.11 jwk jwk.Key // https://tools.ietf.org/html/rfc7515#section-4.1.3 jwkSetURL *string // https://tools.ietf.org/html/rfc7515#section-4.1.2 keyID *string // https://tools.ietf.org/html/rfc7515#section-4.1.4 typ *string // https://tools.ietf.org/html/rfc7515#section-4.1.9 x509CertChain []string // https://tools.ietf.org/html/rfc7515#section-4.1.6 x509CertThumbprint *string // https://tools.ietf.org/html/rfc7515#section-4.1.7 x509CertThumbprintS256 *string // https://tools.ietf.org/html/rfc7515#section-4.1.8 x509URL *string // https://tools.ietf.org/html/rfc7515#section-4.1.5 privateParams map[string]interface{} mu *sync.RWMutex dc DecodeCtx raw []byte // stores the raw version of the header so it can be used later } func NewHeaders() Headers { return &stdHeaders{ mu: &sync.RWMutex{}, } } func (h *stdHeaders) Algorithm() jwa.SignatureAlgorithm { h.mu.RLock() defer h.mu.RUnlock() if h.algorithm == nil { return "" } return *(h.algorithm) } func (h *stdHeaders) ContentType() string { h.mu.RLock() defer h.mu.RUnlock() if h.contentType == nil { return "" } return *(h.contentType) } func (h *stdHeaders) Critical() []string { h.mu.RLock() defer h.mu.RUnlock() return h.critical } func (h *stdHeaders) JWK() jwk.Key { h.mu.RLock() defer h.mu.RUnlock() return h.jwk } func (h *stdHeaders) JWKSetURL() string { h.mu.RLock() defer h.mu.RUnlock() if h.jwkSetURL == nil { return "" } return *(h.jwkSetURL) } func (h *stdHeaders) KeyID() string { h.mu.RLock() defer h.mu.RUnlock() if h.keyID == nil { return "" } return *(h.keyID) } func (h *stdHeaders) Type() string { h.mu.RLock() defer h.mu.RUnlock() if h.typ == nil { return "" } return *(h.typ) } func (h *stdHeaders) X509CertChain() []string { h.mu.RLock() defer h.mu.RUnlock() return h.x509CertChain } func (h *stdHeaders) X509CertThumbprint() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509CertThumbprint == nil { return "" } return *(h.x509CertThumbprint) } func (h *stdHeaders) X509CertThumbprintS256() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509CertThumbprintS256 == nil { return "" } return *(h.x509CertThumbprintS256) } func (h *stdHeaders) X509URL() string { h.mu.RLock() defer h.mu.RUnlock() if h.x509URL == nil { return "" } return *(h.x509URL) } func (h *stdHeaders) DecodeCtx() DecodeCtx { h.mu.RLock() defer h.mu.RUnlock() return h.dc } func (h *stdHeaders) SetDecodeCtx(dc DecodeCtx) { h.mu.Lock() defer h.mu.Unlock() h.dc = dc } func (h *stdHeaders) rawBuffer() []byte { return h.raw } func (h *stdHeaders) makePairs() []*HeaderPair { h.mu.RLock() defer h.mu.RUnlock() var pairs []*HeaderPair if h.algorithm != nil { pairs = append(pairs, &HeaderPair{Key: AlgorithmKey, Value: *(h.algorithm)}) } if h.contentType != nil { pairs = append(pairs, &HeaderPair{Key: ContentTypeKey, Value: *(h.contentType)}) } if h.critical != nil { pairs = append(pairs, &HeaderPair{Key: CriticalKey, Value: h.critical}) } if h.jwk != nil { pairs = append(pairs, &HeaderPair{Key: JWKKey, Value: h.jwk}) } if h.jwkSetURL != nil { pairs = append(pairs, &HeaderPair{Key: JWKSetURLKey, Value: *(h.jwkSetURL)}) } if h.keyID != nil { pairs = append(pairs, &HeaderPair{Key: KeyIDKey, Value: *(h.keyID)}) } if h.typ != nil { pairs = append(pairs, &HeaderPair{Key: TypeKey, Value: *(h.typ)}) } if h.x509CertChain != nil { pairs = append(pairs, &HeaderPair{Key: X509CertChainKey, Value: h.x509CertChain}) } if h.x509CertThumbprint != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintKey, Value: *(h.x509CertThumbprint)}) } if h.x509CertThumbprintS256 != nil { pairs = append(pairs, &HeaderPair{Key: X509CertThumbprintS256Key, Value: *(h.x509CertThumbprintS256)}) } if h.x509URL != nil { pairs = append(pairs, &HeaderPair{Key: X509URLKey, Value: *(h.x509URL)}) } for k, v := range h.privateParams { pairs = append(pairs, &HeaderPair{Key: k, Value: v}) } sort.Slice(pairs, func(i, j int) bool { return pairs[i].Key.(string) < pairs[j].Key.(string) }) return pairs } func (h *stdHeaders) PrivateParams() map[string]interface{} { h.mu.RLock() defer h.mu.RUnlock() return h.privateParams } func (h *stdHeaders) Get(name string) (interface{}, bool) { h.mu.RLock() defer h.mu.RUnlock() switch name { case AlgorithmKey: if h.algorithm == nil { return nil, false } return *(h.algorithm), true case ContentTypeKey: if h.contentType == nil { return nil, false } return *(h.contentType), true case CriticalKey: if h.critical == nil { return nil, false } return h.critical, true case JWKKey: if h.jwk == nil { return nil, false } return h.jwk, true case JWKSetURLKey: if h.jwkSetURL == nil { return nil, false } return *(h.jwkSetURL), true case KeyIDKey: if h.keyID == nil { return nil, false } return *(h.keyID), true case TypeKey: if h.typ == nil { return nil, false } return *(h.typ), true case X509CertChainKey: if h.x509CertChain == nil { return nil, false } return h.x509CertChain, true case X509CertThumbprintKey: if h.x509CertThumbprint == nil { return nil, false } return *(h.x509CertThumbprint), true case X509CertThumbprintS256Key: if h.x509CertThumbprintS256 == nil { return nil, false } return *(h.x509CertThumbprintS256), true case X509URLKey: if h.x509URL == nil { return nil, false } return *(h.x509URL), true default: v, ok := h.privateParams[name] return v, ok } } func (h *stdHeaders) Set(name string, value interface{}) error { h.mu.Lock() defer h.mu.Unlock() return h.setNoLock(name, value) } func (h *stdHeaders) setNoLock(name string, value interface{}) error { switch name { case AlgorithmKey: var acceptor jwa.SignatureAlgorithm if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, AlgorithmKey) } h.algorithm = &acceptor return nil case ContentTypeKey: if v, ok := value.(string); ok { h.contentType = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ContentTypeKey, value) case CriticalKey: if v, ok := value.([]string); ok { h.critical = v return nil } return errors.Errorf(`invalid value for %s key: %T`, CriticalKey, value) case JWKKey: if v, ok := value.(jwk.Key); ok { h.jwk = v return nil } return errors.Errorf(`invalid value for %s key: %T`, JWKKey, value) case JWKSetURLKey: if v, ok := value.(string); ok { h.jwkSetURL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, JWKSetURLKey, value) case KeyIDKey: if v, ok := value.(string); ok { h.keyID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, KeyIDKey, value) case TypeKey: if v, ok := value.(string); ok { h.typ = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, TypeKey, value) case X509CertChainKey: if v, ok := value.([]string); ok { h.x509CertChain = v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertChainKey, value) case X509CertThumbprintKey: if v, ok := value.(string); ok { h.x509CertThumbprint = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintKey, value) case X509CertThumbprintS256Key: if v, ok := value.(string); ok { h.x509CertThumbprintS256 = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509CertThumbprintS256Key, value) case X509URLKey: if v, ok := value.(string); ok { h.x509URL = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, X509URLKey, value) default: if h.privateParams == nil { h.privateParams = map[string]interface{}{} } h.privateParams[name] = value } return nil } func (h *stdHeaders) Remove(key string) error { h.mu.Lock() defer h.mu.Unlock() switch key { case AlgorithmKey: h.algorithm = nil case ContentTypeKey: h.contentType = nil case CriticalKey: h.critical = nil case JWKKey: h.jwk = nil case JWKSetURLKey: h.jwkSetURL = nil case KeyIDKey: h.keyID = nil case TypeKey: h.typ = nil case X509CertChainKey: h.x509CertChain = nil case X509CertThumbprintKey: h.x509CertThumbprint = nil case X509CertThumbprintS256Key: h.x509CertThumbprintS256 = nil case X509URLKey: h.x509URL = nil default: delete(h.privateParams, key) } return nil } func (h *stdHeaders) UnmarshalJSON(buf []byte) error { h.algorithm = nil h.contentType = nil h.critical = nil h.jwk = nil h.jwkSetURL = nil h.keyID = nil h.typ = nil h.x509CertChain = nil h.x509CertThumbprint = nil h.x509CertThumbprintS256 = nil h.x509URL = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case AlgorithmKey: var decoded jwa.SignatureAlgorithm if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AlgorithmKey) } h.algorithm = &decoded case ContentTypeKey: if err := json.AssignNextStringToken(&h.contentType, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ContentTypeKey) } case CriticalKey: var decoded []string if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, CriticalKey) } h.critical = decoded case JWKKey: var buf json.RawMessage if err := dec.Decode(&buf); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JWKKey) } key, err := jwk.ParseKey(buf) if err != nil { return errors.Wrapf(err, `failed to parse JWK for key %s`, JWKKey) } h.jwk = key case JWKSetURLKey: if err := json.AssignNextStringToken(&h.jwkSetURL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JWKSetURLKey) } case KeyIDKey: if err := json.AssignNextStringToken(&h.keyID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, KeyIDKey) } case TypeKey: if err := json.AssignNextStringToken(&h.typ, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, TypeKey) } case X509CertChainKey: var decoded []string if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertChainKey) } h.x509CertChain = decoded case X509CertThumbprintKey: if err := json.AssignNextStringToken(&h.x509CertThumbprint, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintKey) } case X509CertThumbprintS256Key: if err := json.AssignNextStringToken(&h.x509CertThumbprintS256, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509CertThumbprintS256Key) } case X509URLKey: if err := json.AssignNextStringToken(&h.x509URL, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, X509URLKey) } default: decoded, err := registry.Decode(dec, tok) if err != nil { return err } h.setNoLock(tok, decoded) } default: return errors.Errorf(`invalid token %T`, tok) } } if dc := h.dc; dc != nil { if dc.CollectRaw() { h.raw = buf } } return nil } func (h stdHeaders) MarshalJSON() ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, p := range h.makePairs() { if i > 0 { buf.WriteRune(',') } buf.WriteRune('"') buf.WriteString(p.Key.(string)) buf.WriteString(`":`) v := p.Value switch v := v.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { errors.Errorf(`failed to encode value for field %s`, p.Key) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } golang-github-lestrrat-go-jwx-1.2.30/jws/headers_test.go000066400000000000000000000230561465311135100232050ustar00rootroot00000000000000package jws_test import ( "context" "reflect" "testing" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/stretchr/testify/assert" ) var zeroval reflect.Value func TestHeader(t *testing.T) { publicKey := `{"kty":"RSA", "n": "0vx7agoebGcQSuuPiLJXZptN9nndrQmbXEps2aiAFbWhM78LhWx4cbbfAAtVT86zwu1RK7aPFFxuhDR1L6tSoc_BJECPebWKRXjBZCiFV4n3oknjhMstn64tZ_2W-5JsGY4Hc5n9yBXArwl93lqt7_RN5w6Cf0h4QyQ5v-65YGjQR0_FDW2QvzqY368QQMicAtaSqzs8KJZgnYb9c7d0zgdAZHzu6qMQvRL5hajrn1n91CbOpbISD08qNLyrdkt-bFTWhAI4vMQFh6WeZu0fM4lFd2NcRwr3XPksINHaQ-G_xBniIqbw0Ls1jF44-csFCur-kEgU8awapJzKnqDKgw", "e":"AQAB", "alg":"RS256", "kid":"2011-04-29"}` jwkPublicKey, err := jwk.ParseKey([]byte(publicKey)) if !assert.NoError(t, err, `jwk.ParseKey should succeed`) { return } certChain := []string{ "MIIE3jCCA8agAwIBAgICAwEwDQYJKoZIhvcNAQEFBQAwYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMTYwMTU0MzdaFw0yNjExMTYwMTU0MzdaMIHKMQswCQYDVQQGEwJVUzEQMA4GA1UECBMHQXJpem9uYTETMBEGA1UEBxMKU2NvdHRzZGFsZTEaMBgGA1UEChMRR29EYWRkeS5jb20sIEluYy4xMzAxBgNVBAsTKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTEwMC4GA1UEAxMnR28gRGFkZHkgU2VjdXJlIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MREwDwYDVQQFEwgwNzk2OTI4NzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMQt1RWMnCZM7DI161+4WQFapmGBWTtwY6vj3D3HKrjJM9N55DrtPDAjhI6zMBS2sofDPZVUBJ7fmd0LJR4h3mUpfjWoqVTr9vcyOdQmVZWt7/v+WIbXnvQAjYwqDL1CBM6nPwT27oDyqu9SoWlm2r4arV3aLGbqGmu75RpRSgAvSMeYddi5Kcju+GZtCpyz8/x4fKL4o/K1w/O5epHBp+YlLpyo7RJlbmr2EkRTcDCVw5wrWCs9CHRK8r5RsL+H0EwnWGu1NcWdrxcx+AuP7q2BNgWJCJjPOq8lh8BJ6qf9Z/dFjpfMFDniNoW1fho3/Rb2cRGadDAW/hOUoz+EDU8CAwEAAaOCATIwggEuMB0GA1UdDgQWBBT9rGEyk2xF1uLuhV+auud2mWjM5zAfBgNVHSMEGDAWgBTSxLDSkdRMEXGzYcs9of7dqGrU4zASBgNVHRMBAf8ECDAGAQH/AgEAMDMGCCsGAQUFBwEBBCcwJTAjBggrBgEFBQcwAYYXaHR0cDovL29jc3AuZ29kYWRkeS5jb20wRgYDVR0fBD8wPTA7oDmgN4Y1aHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5L2dkcm9vdC5jcmwwSwYDVR0gBEQwQjBABgRVHSAAMDgwNgYIKwYBBQUHAgEWKmh0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeTAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBANKGwOy9+aG2Z+5mC6IGOgRQjhVyrEp0lVPLN8tESe8HkGsz2ZbwlFalEzAFPIUyIXvJxwqoJKSQ3kbTJSMUA2fCENZvD117esyfxVgqwcSeIaha86ykRvOe5GPLL5CkKSkB2XIsKd83ASe8T+5o0yGPwLPk9Qnt0hCqU7S+8MxZC9Y7lhyVJEnfzuz9p0iRFEUOOjZv2kWzRaJBydTXRE4+uXR21aITVSzGh6O1mawGhId/dQb8vxRMDsxuxN89txJx9OjxUUAiKEngHUuHqDTMBqLdElrRhjZkAzVvb3du6/KFUJheqwNTrZEjYx8WnM25sgVjOuH0aBsXBTWVU+4=", "MIIE+zCCBGSgAwIBAgICAQ0wDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTA0MDYyOTE3MDYyMFoXDTI0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjggHhMIIB3TAdBgNVHQ4EFgQU0sSw0pHUTBFxs2HLPaH+3ahq1OMwgdIGA1UdIwSByjCBx6GBwaSBvjCBuzEkMCIGA1UEBxMbVmFsaUNlcnQgVmFsaWRhdGlvbiBOZXR3b3JrMRcwFQYDVQQKEw5WYWxpQ2VydCwgSW5jLjE1MDMGA1UECxMsVmFsaUNlcnQgQ2xhc3MgMiBQb2xpY3kgVmFsaWRhdGlvbiBBdXRob3JpdHkxITAfBgNVBAMTGGh0dHA6Ly93d3cudmFsaWNlcnQuY29tLzEgMB4GCSqGSIb3DQEJARYRaW5mb0B2YWxpY2VydC5jb22CAQEwDwYDVR0TAQH/BAUwAwEB/zAzBggrBgEFBQcBAQQnMCUwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3NwLmdvZGFkZHkuY29tMEQGA1UdHwQ9MDswOaA3oDWGM2h0dHA6Ly9jZXJ0aWZpY2F0ZXMuZ29kYWRkeS5jb20vcmVwb3NpdG9yeS9yb290LmNybDBLBgNVHSAERDBCMEAGBFUdIAAwODA2BggrBgEFBQcCARYqaHR0cDovL2NlcnRpZmljYXRlcy5nb2RhZGR5LmNvbS9yZXBvc2l0b3J5MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOBgQC1QPmnHfbq/qQaQlpE9xXUhUaJwL6e4+PrxeNYiY+Sn1eocSxI0YGyeR+sBjUZsE4OWBsUs5iB0QQeyAfJg594RAoYC5jcdnplDQ1tgMQLARzLrUc+cb53S8wGd9D0VmsfSxOaFIqII6hR8INMqzW/Rn453HWkrugp++85j09VZw==", "MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwCW/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd", } data := []struct { Key string Value interface{} Expected interface{} Method string }{ { Key: jws.AlgorithmKey, Value: jwa.ES256, Method: "Algorithm", }, { Key: jws.ContentTypeKey, Value: "example", Method: "ContentType", }, { Key: jws.CriticalKey, Value: []string{"exp"}, Method: "Critical", }, { Key: jws.JWKKey, Value: jwkPublicKey, Method: "JWK", }, { Key: jws.JWKSetURLKey, Value: "https://www.jwk.com/key.json", Method: "JWKSetURL", }, { Key: jws.TypeKey, Value: "JWT", Method: "Type", }, { Key: jws.KeyIDKey, Value: "e9bc097a-ce51-4036-9562-d2ade882db0d", Method: "KeyID", }, { Key: jws.X509CertChainKey, Value: certChain, Method: "X509CertChain", }, { Key: jws.X509CertThumbprintKey, Value: "QzY0NjREMjkyQTI4RTU2RkE4MUJBRDExNzY1MUY1N0I4QjFCODlBOQ", Method: "X509CertThumbprint", }, { Key: jws.X509URLKey, Value: "https://www.x509.com/key.pem", Method: "X509URL", }, {Key: "private", Value: "boofoo"}, } base := jws.NewHeaders() t.Run("Set values", func(t *testing.T) { // DO NOT RUN THIS IN PARALLEL. THIS IS AN INITIALIZER for _, tc := range data { if !assert.NoError(t, base.Set(tc.Key, tc.Value), "Headers.Set should succeed") { return } } }) t.Run("Set/Get", func(t *testing.T) { h := jws.NewHeaders() ctx := context.Background() for iter := base.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() if !assert.NoError(t, h.Set(pair.Key.(string), pair.Value), `h.Set should be successful`) { return } } for _, tc := range data { var values []interface{} viaGet, ok := h.Get(tc.Key) if !assert.True(t, ok, "value for %s should exist", tc.Key) { return } values = append(values, viaGet) if method := tc.Method; method != "" { m := reflect.ValueOf(h).MethodByName(method) if !assert.NotEqual(t, m, zeroval, "method %s should be available", method) { return } ret := m.Call(nil) if !assert.Len(t, ret, 1, `should get exactly 1 value as return value`) { return } values = append(values, ret[0].Interface()) } expected := tc.Expected if expected == nil { expected = tc.Value } for i, got := range values { if !assert.Equal(t, expected, got, "value %d should match", i) { return } } } }) t.Run("PrivateParams", func(t *testing.T) { h := base pp, err := h.AsMap(context.Background()) if !assert.NoError(t, err, `h.AsMap should succeed`) { return } v, ok := pp["private"] if !assert.True(t, ok, "key 'private' should exists") { return } if !assert.Equal(t, v, "boofoo", "value for 'private' should match") { return } }) t.Run("Iterator", func(t *testing.T) { expected := map[string]interface{}{} for _, tc := range data { v := tc.Value if expected := tc.Expected; expected != nil { v = expected } expected[tc.Key] = v } v := base t.Run("Iterate", func(t *testing.T) { seen := make(map[string]interface{}) for iter := v.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() seen[pair.Key.(string)] = pair.Value getV, ok := v.Get(pair.Key.(string)) if !assert.True(t, ok, `v.Get should succeed for key %#v`, pair.Key) { return } if !assert.Equal(t, pair.Value, getV, `pair.Value should match value from v.Get()`) { return } } if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("Walk", func(t *testing.T) { seen := make(map[string]interface{}) v.Walk(context.TODO(), jwk.HeaderVisitorFunc(func(key string, value interface{}) error { seen[key] = value return nil })) if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("AsMap", func(t *testing.T) { m, err := v.AsMap(context.TODO()) if !assert.NoError(t, err, `v.AsMap should succeed`) { return } if !assert.Equal(t, expected, m, `values should match`) { return } }) t.Run("Remove", func(t *testing.T) { h := base for iter := h.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() h.Remove(pair.Key.(string)) } m, err := h.AsMap(context.TODO()) if !assert.NoError(t, err, `h.AsMap should succeed`) { return } if !assert.Len(t, m, 0, `len should be zero`) { return } }) }) } golang-github-lestrrat-go-jwx-1.2.30/jws/hmac.go000066400000000000000000000034301465311135100214350ustar00rootroot00000000000000package jws import ( "crypto/hmac" "crypto/sha256" "crypto/sha512" "hash" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) var hmacSignFuncs = map[jwa.SignatureAlgorithm]hmacSignFunc{} func init() { algs := map[jwa.SignatureAlgorithm]func() hash.Hash{ jwa.HS256: sha256.New, jwa.HS384: sha512.New384, jwa.HS512: sha512.New, } for alg, h := range algs { hmacSignFuncs[alg] = makeHMACSignFunc(h) } } func newHMACSigner(alg jwa.SignatureAlgorithm) Signer { return &HMACSigner{ alg: alg, sign: hmacSignFuncs[alg], // we know this will succeed } } func makeHMACSignFunc(hfunc func() hash.Hash) hmacSignFunc { return func(payload []byte, key []byte) ([]byte, error) { h := hmac.New(hfunc, key) if _, err := h.Write(payload); err != nil { return nil, errors.Wrap(err, "failed to write payload using hmac") } return h.Sum(nil), nil } } func (s HMACSigner) Algorithm() jwa.SignatureAlgorithm { return s.alg } func (s HMACSigner) Sign(payload []byte, key interface{}) ([]byte, error) { var hmackey []byte if err := keyconv.ByteSliceKey(&hmackey, key); err != nil { return nil, errors.Wrapf(err, `invalid key type %T. []byte is required`, key) } if len(hmackey) == 0 { return nil, errors.New(`missing key while signing payload`) } return s.sign(payload, hmackey) } func newHMACVerifier(alg jwa.SignatureAlgorithm) Verifier { s := newHMACSigner(alg) return &HMACVerifier{signer: s} } func (v HMACVerifier) Verify(payload, signature []byte, key interface{}) (err error) { expected, err := v.signer.Sign(payload, key) if err != nil { return errors.Wrap(err, `failed to generated signature`) } if !hmac.Equal(signature, expected) { return errors.New(`failed to match hmac signature`) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jws/interface.go000066400000000000000000000071201465311135100224650ustar00rootroot00000000000000package jws import ( "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/jwa" ) type DecodeCtx interface { CollectRaw() bool } // Message represents a full JWS encoded message. Flattened serialization // is not supported as a struct, but rather it's represented as a // Message struct with only one `signature` element. // // Do not expect to use the Message object to verify or construct a // signed payload with. You should only use this when you want to actually // programmatically view the contents of the full JWS payload. // // As of this version, there is one big incompatibility when using Message // objects to convert between compact and JSON representations. // The protected header is sometimes encoded differently from the original // message and the JSON serialization that we use in Go. // // For example, the protected header `eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9` // decodes to // // {"typ":"JWT", // "alg":"HS256"} // // However, when we parse this into a message, we create a jws.Header object, // which, when we marshal into a JSON object again, becomes // // {"typ":"JWT","alg":"HS256"} // // Notice that serialization lacks a line break and a space between `"JWT",` // and `"alg"`. This causes a problem when verifying the signatures AFTER // a compact JWS message has been unmarshaled into a jws.Message. // // jws.Verify() doesn't go through this step, and therefore this does not // manifest itself. However, you may see this discrepancy when you manually // go through these conversions, and/or use the `jwx` tool like so: // // jwx jws parse message.jws | jwx jws verify --key somekey.jwk --stdin // // In this scenario, the first `jwx jws parse` outputs a parsed jws.Message // which is marshaled into JSON. At this point the message's protected // headers and the signatures don't match. // // To sign and verify, use the appropriate `Sign()` and `Verify()` functions. type Message struct { dc DecodeCtx payload []byte signatures []*Signature b64 bool // true if payload should be base64 encoded } type Signature struct { dc DecodeCtx headers Headers // Unprotected Headers protected Headers // Protected Headers signature []byte // Signature detached bool } type Visitor = iter.MapVisitor type VisitorFunc = iter.MapVisitorFunc type HeaderPair = mapiter.Pair type Iterator = mapiter.Iterator // Signer generates the signature for a given payload. type Signer interface { // Sign creates a signature for the given payload. // The scond argument is the key used for signing the payload, and is usually // the private key type associated with the signature method. For example, // for `jwa.RSXXX` and `jwa.PSXXX` types, you need to pass the // `*"crypto/rsa".PrivateKey` type. // Check the documentation for each signer for details Sign([]byte, interface{}) ([]byte, error) Algorithm() jwa.SignatureAlgorithm } type hmacSignFunc func([]byte, []byte) ([]byte, error) // HMACSigner uses crypto/hmac to sign the payloads. type HMACSigner struct { alg jwa.SignatureAlgorithm sign hmacSignFunc } type Verifier interface { // Verify checks whether the payload and signature are valid for // the given key. // `key` is the key used for verifying the payload, and is usually // the public key associated with the signature method. For example, // for `jwa.RSXXX` and `jwa.PSXXX` types, you need to pass the // `*"crypto/rsa".PublicKey` type. // Check the documentation for each verifier for details Verify(payload []byte, signature []byte, key interface{}) error } type HMACVerifier struct { signer Signer } golang-github-lestrrat-go-jwx-1.2.30/jws/internal/000077500000000000000000000000001465311135100220125ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/000077500000000000000000000000001465311135100225555ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/genheader/000077500000000000000000000000001465311135100244775ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/genheader/go.mod000066400000000000000000000004211465311135100256020ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/jws/internal/cmd/genheader go 1.16 require ( github.com/goccy/go-yaml v1.9.4 github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/crypto v0.6.0 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/genheader/go.sum000066400000000000000000000212341465311135100256340ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/goccy/go-yaml v1.9.4 h1:S0GCYjwHKVI6IHqio7QWNKNThUl6NLzFd/g8Z65Axw8= github.com/goccy/go-yaml v1.9.4/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931 h1:HSwWEwPudIxfv9sZdu7V8nGqMgByVXrMsqy2x0aRJPM= github.com/lestrrat-go/codegen v1.0.3-0.20211020221528-a8643894b931/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/genheader/main.go000066400000000000000000000272651465311135100257660ustar00rootroot00000000000000package main import ( "bytes" "encoding/json" "flag" "fmt" "log" "os" "strings" "github.com/goccy/go-yaml" "github.com/lestrrat-go/codegen" ) func main() { if err := _main(); err != nil { log.Printf("%s", err) os.Exit(1) } } func _main() error { codegen.RegisterZeroVal(`jwa.SignatureAlgorithm`, `""`) var objectsFile = flag.String("objects", "objects.yml", "") flag.Parse() jsonSrc, err := yaml2json(*objectsFile) if err != nil { return err } var object codegen.Object if err := json.NewDecoder(bytes.NewReader(jsonSrc)).Decode(&object); err != nil { return fmt.Errorf(`failed to decode %q: %w`, *objectsFile, err) } object.Organize() return generateHeaders(&object) } func yaml2json(fn string) ([]byte, error) { in, err := os.Open(fn) if err != nil { return nil, fmt.Errorf(`failed to open %q: %w`, fn, err) } defer in.Close() var v interface{} if err := yaml.NewDecoder(in).Decode(&v); err != nil { return nil, fmt.Errorf(`failed to decode %q: %w`, fn, err) } return json.Marshal(v) } func boolFromField(f codegen.Field, field string) (bool, error) { v, ok := f.Extra(field) if !ok { return false, fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } b, ok := v.(bool) if !ok { return false, fmt.Errorf("%q should be a bool in %q", field, f.Name(true)) } return b, nil } func fieldHasAccept(f codegen.Field) bool { v, _ := boolFromField(f, "hasAccept") return v } func IsPointer(f codegen.Field) bool { return strings.HasPrefix(f.Type(), `*`) } func PointerElem(f codegen.Field) string { return strings.TrimPrefix(f.Type(), `*`) } func fieldStorageType(s string) string { if fieldStorageTypeIsIndirect(s) { return `*` + s } return s } func fieldStorageTypeIsIndirect(s string) bool { return !(s == "jwk.Key" || strings.HasPrefix(s, `*`) || strings.HasPrefix(s, `[]`)) } func generateHeaders(obj *codegen.Object) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.L("// This file is auto-generated by jws/internal/cmd/genheaders/main.go. DO NOT EDIT") o.LL("package jws") o.LL("const (") for _, f := range obj.Fields() { o.L("%sKey = %q", f.Name(true), f.JSON()) } o.L(")") // end const o.LL("// Headers describe a standard Header set.") o.L("type Headers interface {") o.L("json.Marshaler") o.L("json.Unmarshaler") // These are the basic values that most jws have for _, f := range obj.Fields() { o.L("%s() %s", f.GetterMethod(true), PointerElem(f)) } // These are used to iterate through all keys in a header o.L("Iterate(ctx context.Context) Iterator") o.L("Walk(context.Context, Visitor) error") o.L("AsMap(context.Context) (map[string]interface{}, error)") o.L("Copy(context.Context, Headers) error") o.L("Merge(context.Context, Headers) (Headers, error)") // These are used to access a single element by key name o.L("Get(string) (interface{}, bool)") o.L("Set(string, interface{}) error") o.L("Remove(string) error") o.LL("// PrivateParams returns the non-standard elements in the source structure") o.L("// WARNING: DO NOT USE PrivateParams() IF YOU HAVE CONCURRENT CODE ACCESSING THEM.") o.L("// Use AsMap() to get a copy of the entire header instead") o.L("PrivateParams() map[string]interface{}") o.L("}") o.LL("type stdHeaders struct {") for _, f := range obj.Fields() { if c := f.Comment(); c != "" { o.L("%s %s // %s", f.Name(false), fieldStorageType(f.Type()), c) } else { o.L("%s %s", f.Name(false), fieldStorageType(f.Type())) } } o.L("privateParams map[string]interface{}") o.L("mu *sync.RWMutex") o.L("dc DecodeCtx") o.L("raw []byte // stores the raw version of the header so it can be used later") o.L("}") // end type StandardHeaders o.LL("func NewHeaders() Headers {") o.L("return &stdHeaders{") o.L("mu: &sync.RWMutex{},") o.L("}") o.L("}") for _, f := range obj.Fields() { o.LL("func (h *stdHeaders) %s() %s{", f.GetterMethod(true), f.Type()) o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") if fieldStorageTypeIsIndirect(f.Type()) { o.L("if h.%s == nil {", f.Name(false)) o.L("return %s", codegen.ZeroVal(f.Type())) o.L("}") o.L("return *(h.%s)", f.Name(false)) } else { o.L("return h.%s", f.Name(false)) } o.L("}") // func (h *stdHeaders) %s() %s } o.LL("func (h *stdHeaders) DecodeCtx() DecodeCtx{") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("return h.dc") o.L("}") o.LL("func (h *stdHeaders) SetDecodeCtx(dc DecodeCtx) {") o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("h.dc = dc") o.L("}") // This has no lock because nothing can assign to it o.LL("func (h *stdHeaders) rawBuffer() []byte {") o.L("return h.raw") o.L("}") // Generate a function that iterates through all of the keys // in this header. o.LL("func (h *stdHeaders) makePairs() []*HeaderPair {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") // NOTE: building up an array is *slow*? o.L("var pairs []*HeaderPair") for _, f := range obj.Fields() { o.L("if h.%s != nil {", f.Name(false)) if fieldStorageTypeIsIndirect(f.Type()) { o.L("pairs = append(pairs, &HeaderPair{Key: %sKey, Value: *(h.%s)})", f.Name(true), f.Name(false)) } else { o.L("pairs = append(pairs, &HeaderPair{Key: %sKey, Value: h.%s})", f.Name(true), f.Name(false)) } o.L("}") } o.L("for k, v := range h.privateParams {") o.L("pairs = append(pairs, &HeaderPair{Key: k, Value: v})") o.L("}") o.L("sort.Slice(pairs, func(i, j int) bool {") o.L("return pairs[i].Key.(string) < pairs[j].Key.(string)") o.L("})") o.L("return pairs") o.L("}") // end of (h *stdHeaders) iterate(...) o.LL("func (h *stdHeaders) PrivateParams() map[string]interface{} {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("return h.privateParams") o.L("}") o.LL("func (h *stdHeaders) Get(name string) (interface{}, bool) {") o.L("h.mu.RLock()") o.L("defer h.mu.RUnlock()") o.L("switch name {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) o.L("if h.%s == nil {", f.Name(false)) o.L("return nil, false") o.L("}") if fieldStorageTypeIsIndirect(f.Type()) { o.L("return *(h.%s), true", f.Name(false)) } else { o.L("return h.%s, true", f.Name(false)) } } o.L("default:") o.L("v, ok := h.privateParams[name]") o.L("return v, ok") o.L("}") // end switch name o.L("}") // func (h *stdHeaders) Get(name string) (interface{}, bool) o.LL("func (h *stdHeaders) Set(name string, value interface{}) error {") o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("return h.setNoLock(name, value)") o.L("}") o.LL("func (h *stdHeaders) setNoLock(name string, value interface{}) error {") o.L("switch name {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) if fieldHasAccept(f) { o.L("var acceptor %s", PointerElem(f)) o.L("if err := acceptor.Accept(value); err != nil {") o.L("return errors.Wrapf(err, `invalid value for %%s key`, %sKey)", f.Name(true)) o.L("}") // end if err := h.%s.Accept(value) o.L("h.%s = &acceptor", f.Name(false)) o.L("return nil") } else { o.L("if v, ok := value.(%s); ok {", f.Type()) if fieldStorageTypeIsIndirect(f.Type()) { o.L("h.%s = &v", f.Name(false)) } else { o.L("h.%s = v", f.Name(false)) } o.L("return nil") o.L("}") // end if v, ok := value.(%s) o.L("return errors.Errorf(`invalid value for %%s key: %%T`, %sKey, value)", f.Name(true)) } } o.L("default:") o.L("if h.privateParams == nil {") o.L("h.privateParams = map[string]interface{}{}") o.L("}") // end if h.privateParams == nil o.L("h.privateParams[name] = value") o.L("}") // end switch name o.L("return nil") o.L("}") o.LL("func (h *stdHeaders) Remove(key string) error {") o.L("h.mu.Lock()") o.L("defer h.mu.Unlock()") o.L("switch key {") for _, f := range obj.Fields() { o.L("case %sKey:", f.Name(true)) o.L("h.%s = nil", f.Name(false)) } o.L("default:") o.L("delete(h.privateParams, key)") o.L("}") o.L("return nil") // currently unused, but who knows o.L("}") o.LL("func (h *stdHeaders) UnmarshalJSON(buf []byte) error {") for _, f := range obj.Fields() { o.L("h.%s = nil", f.Name(false)) } o.L("dec := json.NewDecoder(bytes.NewReader(buf))") o.L("LOOP:") o.L("for {") o.L("tok, err := dec.Token()") o.L("if err != nil {") o.L("return errors.Wrap(err, `error reading token`)") o.L("}") o.L("switch tok := tok.(type) {") o.L("case json.Delim:") o.L("// Assuming we're doing everything correctly, we should ONLY") o.L("// get either '{' or '}' here.") o.L("if tok == '}' { // End of object") o.L("break LOOP") o.L("} else if tok != '{' {") o.L("return errors.Errorf(`expected '{', but got '%%c'`, tok)") o.L("}") o.L("case string: // Objects can only have string keys") o.L("switch tok {") for _, f := range obj.Fields() { if f.Type() == "string" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextStringToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "[]byte" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextBytesToken(&h.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "jwk.Key" { o.L("case %sKey:", f.Name(true)) o.L("var buf json.RawMessage") o.L("if err := dec.Decode(&buf); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("key, err := jwk.ParseKey(buf)") o.L("if err != nil {") o.L("return errors.Wrapf(err, `failed to parse JWK for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = key", f.Name(false)) } else if strings.HasPrefix(f.Type(), "[]") { o.L("case %sKey:", f.Name(true)) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = decoded", f.Name(false)) } else { o.L("case %sKey:", f.Name(true)) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("h.%s = &decoded", f.Name(false)) } } o.L("default:") o.L("decoded, err := registry.Decode(dec, tok)") o.L("if err != nil {") o.L("return err") o.L("}") o.L("h.setNoLock(tok, decoded)") o.L("}") o.L("default:") o.L("return errors.Errorf(`invalid token %%T`, tok)") o.L("}") o.L("}") o.LL("if dc := h.dc; dc != nil {") o.L("if dc.CollectRaw() {") o.L("h.raw = buf") o.L("}") o.L("}") o.L("return nil") o.L("}") o.LL("func (h stdHeaders) MarshalJSON() ([]byte, error) {") o.L("buf := pool.GetBytesBuffer()") o.L("defer pool.ReleaseBytesBuffer(buf)") o.L("buf.WriteByte('{')") o.L("enc := json.NewEncoder(buf)") o.L("for i, p := range h.makePairs() {") o.L("if i > 0 {") o.L("buf.WriteRune(',')") o.L("}") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(p.Key.(string))") o.L("buf.WriteString(`\":`)") o.L("v := p.Value") o.L("switch v := v.(type) {") o.L("case []byte:") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(base64.EncodeToString(v))") o.L("buf.WriteRune('\"')") o.L("default:") o.L("if err := enc.Encode(v); err != nil {") o.L("errors.Errorf(`failed to encode value for field %%s`, p.Key)") o.L("}") o.L("buf.Truncate(buf.Len()-1)") o.L("}") o.L("}") o.L("buf.WriteByte('}')") o.L("ret := make([]byte, buf.Len())") o.L("copy(ret, buf.Bytes())") o.L("return ret, nil") o.L("}") if err := o.WriteFile(`headers_gen.go`, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to headers_gen.go: %w`, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jws/internal/cmd/genheader/objects.yml000066400000000000000000000032501465311135100266530ustar00rootroot00000000000000fields: - name: algorithm type: jwa.SignatureAlgorithm json: alg hasAccept: true comment: https://tools.ietf.org/html/rfc7515#section-4.1.1 - name: jwkSetURL unexported_name: jwkSetURL exported_name: JWKSetURL getter: JWKSetURL json: jku comment: https://tools.ietf.org/html/rfc7515#section-4.1.2 - name: jwk exported_name: JWK getter: JWK type: jwk.Key comment: https://tools.ietf.org/html/rfc7515#section-4.1.3 - name: keyID json: kid comment: https://tools.ietf.org/html/rfc7515#section-4.1.4 - name: x509URL unexported_name: x509URL exported_name: X509URL getter: X509URL json: x5u comment: https://tools.ietf.org/html/rfc7515#section-4.1.5 - name: x509CertChain unexported_name: x509CertChain exported_name: X509CertChain getter: X509CertChain type: "[]string" json: x5c comment: https://tools.ietf.org/html/rfc7515#section-4.1.6 - name: x509CertThumbprint unexported_name: x509CertThumbprint getter: X509CertThumbprint json: x5t comment: https://tools.ietf.org/html/rfc7515#section-4.1.7 - name: x509CertThumbprintS256 unexported_name: x509CertThumbprintS256 exported_name: X509CertThumbprintS256 getter: X509CertThumbprintS256 json: "x5t#S256" comment: https://tools.ietf.org/html/rfc7515#section-4.1.8 - name: typ exported_name: Type getter: Type comment: https://tools.ietf.org/html/rfc7515#section-4.1.9 - name: contentType json: cty comment: https://tools.ietf.org/html/rfc7515#section-4.1.10 - name: critical type: "[]string" json: crit comment: https://tools.ietf.org/html/rfc7515#section-4.1.11 golang-github-lestrrat-go-jwx-1.2.30/jws/io.go000066400000000000000000000010361465311135100211340ustar00rootroot00000000000000// Automatically generated by internal/cmd/genreadfile/main.go. DO NOT EDIT package jws import "os" // ReadFileOption describes options that can be passed to ReadFile. // Currently there are no options available that can be passed to ReadFile, but // it is provided here for anticipated future additions type ReadFileOption interface { Option readFileOption() } func ReadFile(path string, _ ...ReadFileOption) (*Message, error) { f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() return ParseReader(f) } golang-github-lestrrat-go-jwx-1.2.30/jws/jws.go000066400000000000000000000673771465311135100213540ustar00rootroot00000000000000//go:generate ./gen.sh // Package jws implements the digital signature on JSON based data // structures as described in https://tools.ietf.org/html/rfc7515 // // If you do not care about the details, the only things that you // would need to use are the following functions: // // jws.Sign(payload, algorithm, key) // jws.Verify(encodedjws, algorithm, key) // // To sign, simply use `jws.Sign`. `payload` is a []byte buffer that // contains whatever data you want to sign. `alg` is one of the // jwa.SignatureAlgorithm constants from package jwa. For RSA and // ECDSA family of algorithms, you will need to prepare a private key. // For HMAC family, you just need a []byte value. The `jws.Sign` // function will return the encoded JWS message on success. // // To verify, use `jws.Verify`. It will parse the `encodedjws` buffer // and verify the result using `algorithm` and `key`. Upon successful // verification, the original payload is returned, so you can work on it. package jws import ( "bufio" "bytes" "context" "crypto/ecdsa" "crypto/ed25519" "crypto/rsa" "fmt" "io" "net/http" "net/url" "reflect" "strings" "sync" "unicode" "unicode/utf8" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" ) var registry = json.NewRegistry() type payloadSigner struct { signer Signer key interface{} protected Headers public Headers } func (s *payloadSigner) Sign(payload []byte) ([]byte, error) { return s.signer.Sign(payload, s.key) } func (s *payloadSigner) Algorithm() jwa.SignatureAlgorithm { return s.signer.Algorithm() } func (s *payloadSigner) ProtectedHeader() Headers { return s.protected } func (s *payloadSigner) PublicHeader() Headers { return s.public } var signers = make(map[jwa.SignatureAlgorithm]Signer) var muSigner = &sync.Mutex{} // Sign generates a signature for the given payload, and serializes // it in compact serialization format. In this format you may NOT use // multiple signers. // // The `alg` parameter is the identifier for the signature algorithm // that should be used. // // For the `key` parameter, any of the following is accepted: // * A "raw" key (e.g. rsa.PrivateKey, ecdsa.PrivateKey, etc) // * A crypto.Signer // * A jwk.Key // // A `crypto.Signer` is used when the private part of a key is // kept in an inaccessible location, such as hardware. // `crypto.Signer` is currently supported for RSA, ECDSA, and EdDSA // family of algorithms. // // If the key is a jwk.Key and the key contains a key ID (`kid` field), // then it is added to the protected header generated by the signature // // The algorithm specified in the `alg` parameter must be able to support // the type of key you provided, otherwise an error is returned. // // If you would like to pass custom headers, use the WithHeaders option. // // If the headers contain "b64" field, then the boolean value for the field // is respected when creating the compact serialization form. That is, // if you specify a header with `{"b64": false}`, then the payload is // not base64 encoded. // // If you want to use a detached payload, use `jws.WithDetachedPayload()` as // one of the options. When you use this option, you must always set the // first parameter (`payload`) to `nil`, or the function will return an error func Sign(payload []byte, alg jwa.SignatureAlgorithm, key interface{}, options ...SignOption) ([]byte, error) { var hdrs Headers var detached bool for _, o := range options { //nolint:forcetypeassert switch o.Ident() { case identHeaders{}: hdrs = o.Value().(Headers) case identDetachedPayload{}: detached = true if payload != nil { return nil, errors.New(`jws.Sign: payload must be nil when jws.WithDetachedPayload() is specified`) } payload = o.Value().([]byte) } } muSigner.Lock() signer, ok := signers[alg] if !ok { v, err := NewSigner(alg) if err != nil { muSigner.Unlock() return nil, errors.Wrap(err, `failed to create signer`) } signers[alg] = v signer = v } muSigner.Unlock() // XXX This is cheating. Ideally `detached` should be passed as a parameter // but since this is an exported method, we can't change this without bumping // major versions.... But we don't want to do that now, so we will cheat by // making it part of the object sig := &Signature{ protected: hdrs, detached: detached, } _, signature, err := sig.Sign(payload, signer, key) if err != nil { return nil, errors.Wrap(err, `failed sign payload`) } return signature, nil } // SignMulti accepts multiple signers via the options parameter, // and creates a JWS in JSON serialization format that contains // signatures from applying aforementioned signers. // // Use `jws.WithSigner(...)` to specify values how to generate // each signature in the `"signatures": [ ... ]` field. func SignMulti(payload []byte, options ...Option) ([]byte, error) { var signers []*payloadSigner for _, o := range options { //nolint:forcetypeassert switch o.Ident() { case identPayloadSigner{}: signers = append(signers, o.Value().(*payloadSigner)) } } if len(signers) == 0 { return nil, errors.New(`no signers provided`) } var result Message result.payload = payload result.signatures = make([]*Signature, 0, len(signers)) for i, signer := range signers { protected := signer.ProtectedHeader() if protected == nil { protected = NewHeaders() } if err := protected.Set(AlgorithmKey, signer.Algorithm()); err != nil { return nil, errors.Wrap(err, `failed to set "alg" header`) } if key, ok := signer.key.(jwk.Key); ok { if kid := key.KeyID(); kid != "" { if err := protected.Set(KeyIDKey, kid); err != nil { return nil, errors.Wrap(err, `failed to set "kid" header`) } } } sig := &Signature{ headers: signer.PublicHeader(), protected: protected, } _, _, err := sig.Sign(payload, signer.signer, signer.key) if err != nil { return nil, errors.Wrapf(err, `failed to generate signature for signer #%d (alg=%s)`, i, signer.Algorithm()) } result.signatures = append(result.signatures, sig) } return json.Marshal(result) } type verifyCtx struct { dst *Message detachedPayload []byte alg jwa.SignatureAlgorithm key interface{} useJKU bool jwksFetcher JWKSetFetcher // This is only used to differentiate compact/JSON serialization // because certain features are enabled/disabled in each isJSON bool } var allowNoneWhitelist = jwk.WhitelistFunc(func(string) bool { return false }) // VerifyAuto is a special case of Verify(), where verification is done // using verifications parameters that can be obtained using the information // that is carried within the JWS message itself. // // Currently it only supports verification via `jku` which will be fetched // using the object specified in `jws.JWKSetFetcher`. Note that URLs in `jku` can // only have https scheme. // // Using this function will result in your program accessing remote resources via https, // and therefore extreme caution should be taken which urls can be accessed. // // Without specifying extra arguments, the default `jws.JWKSetFetcher` will be // configured with a whitelist that rejects *ALL URLSs*. This is to // protect users from unintentionally allowing their projects to // make unwanted requests. Therefore you must explicitly provide an // instance of `jwk.Whitelist` that does what you want. // // If you want open access to any URLs in the `jku`, you can do this by // using `jwk.InsecureWhitelist` as the whitelist, but this should be avoided in // most cases, especially if the payload comes from outside of a controlled // environment. // // It is also advised that you consider using some sort of backoff via `jws.WithFetchBackoff` // // Alternatively, you can provide your own `jws.JWKSetFetcher`. In this case // there is no way for the framework to force you to set a whitelist, so the // default behavior is to allow any URLs. You are responsible for providing // your own safety measures. func VerifyAuto(buf []byte, options ...VerifyOption) ([]byte, error) { var ctx verifyCtx // enable JKU processing ctx.useJKU = true var fetchOptions []jwk.FetchOption //nolint:forcetypeassert for _, option := range options { switch option.Ident() { case identMessage{}: ctx.dst = option.Value().(*Message) case identDetachedPayload{}: ctx.detachedPayload = option.Value().([]byte) case identJWKSetFetcher{}: ctx.jwksFetcher = option.Value().(JWKSetFetcher) case identFetchWhitelist{}: fetchOptions = append(fetchOptions, jwk.WithFetchWhitelist(option.Value().(jwk.Whitelist))) case identFetchBackoff{}: fetchOptions = append(fetchOptions, jwk.WithFetchBackoff(option.Value().(backoff.Policy))) case identHTTPClient{}: fetchOptions = append(fetchOptions, jwk.WithHTTPClient(option.Value().(*http.Client))) } } // We shove the default Whitelist in the front of the option list. // If the user provided one, it will overwrite our default value if ctx.jwksFetcher == nil { fetchOptions = append([]jwk.FetchOption{jwk.WithFetchWhitelist(allowNoneWhitelist)}, fetchOptions...) ctx.jwksFetcher = NewJWKSetFetcher(fetchOptions...) } return ctx.verify(buf) } // Verify checks if the given JWS message is verifiable using `alg` and `key`. // `key` may be a "raw" key (e.g. rsa.PublicKey) or a jwk.Key // // If the verification is successful, `err` is nil, and the content of the // payload that was signed is returned. If you need more fine-grained // control of the verification process, manually generate a // `Verifier` in `verify` subpackage, and call `Verify` method on it. // If you need to access signatures and JOSE headers in a JWS message, // use `Parse` function to get `Message` object. func Verify(buf []byte, alg jwa.SignatureAlgorithm, key interface{}, options ...VerifyOption) ([]byte, error) { var ctx verifyCtx ctx.alg = alg ctx.key = key //nolint:forcetypeassert for _, option := range options { switch option.Ident() { case identMessage{}: ctx.dst = option.Value().(*Message) case identDetachedPayload{}: ctx.detachedPayload = option.Value().([]byte) default: return nil, errors.Errorf(`invalid jws.VerifyOption %q passed`, `With`+strings.TrimPrefix(fmt.Sprintf(`%T`, option.Ident()), `jws.ident`)) } } return ctx.verify(buf) } func (ctx *verifyCtx) verify(buf []byte) ([]byte, error) { buf = bytes.TrimSpace(buf) if len(buf) == 0 { return nil, errors.New(`attempt to verify empty buffer`) } if buf[0] == '{' { return ctx.verifyJSON(buf) } return ctx.verifyCompact(buf) } // VerifySet uses keys store in a jwk.Set to verify the payload in `buf`. // // In order for `VerifySet()` to use a key in the given set, the // `jwk.Key` object must have a valid "alg" field, and it also must // have either an empty value or the value "sig" in the "use" field. // // Furthermore if the JWS signature asks for a spefici "kid", the // `jwk.Key` must have the same "kid" as the signature. func VerifySet(buf []byte, set jwk.Set) ([]byte, error) { n := set.Len() for i := 0; i < n; i++ { key, ok := set.Get(i) if !ok { continue } if key.Algorithm() == "" { // algorithm is not continue } if usage := key.KeyUsage(); usage != "" && usage != jwk.ForSignature.String() { continue } buf, err := Verify(buf, jwa.SignatureAlgorithm(key.Algorithm()), key) if err != nil { continue } return buf, nil } return nil, errors.New(`failed to verify message with any of the keys in the jwk.Set object`) } func (ctx *verifyCtx) verifyJSON(signed []byte) ([]byte, error) { ctx.isJSON = true var m Message m.SetDecodeCtx(collectRawCtx{}) defer m.clearRaw() if err := json.Unmarshal(signed, &m); err != nil { return nil, errors.Wrap(err, `failed to unmarshal JSON message`) } m.SetDecodeCtx(nil) if len(m.payload) != 0 && ctx.detachedPayload != nil { return nil, errors.New(`can't specify detached payload for JWS with payload`) } if ctx.detachedPayload != nil { m.payload = ctx.detachedPayload } // Pre-compute the base64 encoded version of payload var payload string if m.b64 { payload = base64.EncodeToString(m.payload) } else { payload = string(m.payload) } buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) for i, sig := range m.signatures { buf.Reset() var encodedProtectedHeader string if rbp, ok := sig.protected.(interface{ rawBuffer() []byte }); ok { if raw := rbp.rawBuffer(); raw != nil { encodedProtectedHeader = base64.EncodeToString(raw) } } if encodedProtectedHeader == "" { protected, err := json.Marshal(sig.protected) if err != nil { return nil, errors.Wrapf(err, `failed to marshal "protected" for signature #%d`, i+1) } encodedProtectedHeader = base64.EncodeToString(protected) } buf.WriteString(encodedProtectedHeader) buf.WriteByte('.') buf.WriteString(payload) if !ctx.useJKU { if hdr := sig.protected; hdr != nil && hdr.KeyID() != "" { if jwkKey, ok := ctx.key.(jwk.Key); ok { if jwkKey.KeyID() != hdr.KeyID() { continue } } } verifier, err := NewVerifier(ctx.alg) if err != nil { return nil, errors.Wrap(err, "failed to create verifier") } if _, err := ctx.tryVerify(verifier, sig.protected, buf.Bytes(), sig.signature, m.payload); err == nil { if ctx.dst != nil { *(ctx.dst) = m } return m.payload, nil } // Don't fallthrough or bail out. Try the next signature. continue } if _, err := ctx.verifyJKU(sig.protected, buf.Bytes(), sig.signature, m.payload); err == nil { if ctx.dst != nil { *(ctx.dst) = m } return m.payload, nil } // try next } return nil, errors.New(`could not verify with any of the signatures`) } // get the value of b64 header field. // If the field does not exist, returns true (default) // Otherwise return the value specified by the header field. func getB64Value(hdr Headers) bool { b64raw, ok := hdr.Get("b64") if !ok { return true // default } b64, ok := b64raw.(bool) // default if !ok { return false } return b64 } func (ctx *verifyCtx) verifyCompact(signed []byte) ([]byte, error) { protected, payload, signature, err := SplitCompact(signed) if err != nil { return nil, errors.Wrap(err, `failed extract from compact serialization format`) } decodedSignature, err := base64.Decode(signature) if err != nil { return nil, errors.Wrap(err, `failed to decode signature`) } hdr := NewHeaders() decodedProtected, err := base64.Decode(protected) if err != nil { return nil, errors.Wrap(err, `failed to decode headers`) } if err := json.Unmarshal(decodedProtected, hdr); err != nil { return nil, errors.Wrap(err, `failed to decode headers`) } verifyBuf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(verifyBuf) verifyBuf.Write(protected) verifyBuf.WriteByte('.') if len(payload) == 0 && ctx.detachedPayload != nil { if getB64Value(hdr) { payload = base64.Encode(ctx.detachedPayload) } else { payload = ctx.detachedPayload } } verifyBuf.Write(payload) if !ctx.useJKU { if hdr.KeyID() != "" { if jwkKey, ok := ctx.key.(jwk.Key); ok { if jwkKey.KeyID() != hdr.KeyID() { return nil, errors.New(`"kid" fields do not match`) } } } verifier, err := NewVerifier(ctx.alg) if err != nil { return nil, errors.Wrap(err, "failed to create verifier") } return ctx.tryVerify(verifier, hdr, verifyBuf.Bytes(), decodedSignature, payload) } return ctx.verifyJKU(hdr, verifyBuf.Bytes(), decodedSignature, payload) } // JWKSetFetcher is used to fetch JWK Set spcified in the `jku` field. type JWKSetFetcher interface { Fetch(string) (jwk.Set, error) } // SimpleJWKSetFetcher is the default object used to fetch JWK Sets specified in `jku`, // which uses `jwk.Fetch()` // // For more complicated cases, such as using `jwk.AutoRefetch`, you will have to // create your custom instance of `jws.JWKSetFetcher` type SimpleJWKSetFetcher struct { options []jwk.FetchOption } func NewJWKSetFetcher(options ...jwk.FetchOption) *SimpleJWKSetFetcher { return &SimpleJWKSetFetcher{options: options} } func (f *SimpleJWKSetFetcher) Fetch(u string) (jwk.Set, error) { return jwk.Fetch(context.TODO(), u, f.options...) } type JWKSetFetchFunc func(string) (jwk.Set, error) func (f JWKSetFetchFunc) Fetch(u string) (jwk.Set, error) { return f(u) } func (ctx *verifyCtx) verifyJKU(hdr Headers, verifyBuf, decodedSignature, payload []byte) ([]byte, error) { u := hdr.JWKSetURL() if u == "" { return nil, errors.New(`use of "jku" field specified, but the field is empty`) } uo, err := url.Parse(u) if err != nil { return nil, errors.Wrap(err, `failed to parse "jku"`) } if uo.Scheme != "https" { return nil, errors.New(`url in "jku" must be HTTPS`) } set, err := ctx.jwksFetcher.Fetch(u) if err != nil { return nil, errors.Wrapf(err, `failed to fetch "jku"`) } // Because we're using a JWKS here, we MUST have "kid" that matches // the payload if hdr.KeyID() == "" { return nil, errors.Errorf(`"kid" is required on the JWS message to use "jku"`) } key, ok := set.LookupKeyID(hdr.KeyID()) if !ok { return nil, errors.New(`key specified via "kid" is not present in the JWK set specified by "jku"`) } // hooray, we found a key. Now the algorithm will have to be inferred. algs, err := AlgorithmsForKey(key) if err != nil { return nil, errors.Wrapf(err, `failed to get a list of signature methods for key type %s`, key.KeyType()) } // for each of these algorithms, just ... keep trying ... ctx.key = key hdrAlg := hdr.Algorithm() for _, alg := range algs { // if we have a "alg" field in the JWS, we can only proceed if // the inferred algorithm matches if hdrAlg != "" && hdrAlg != alg { continue } verifier, err := NewVerifier(alg) if err != nil { return nil, errors.Wrap(err, "failed to create verifier") } if decoded, err := ctx.tryVerify(verifier, hdr, verifyBuf, decodedSignature, payload); err == nil { return decoded, nil } } return nil, errors.New(`failed to verify payload using key in "jku"`) } func (ctx *verifyCtx) tryVerify(verifier Verifier, hdr Headers, buf, decodedSignature, payload []byte) ([]byte, error) { if err := verifier.Verify(buf, decodedSignature, ctx.key); err != nil { return nil, errors.Wrap(err, `failed to verify message`) } var decodedPayload []byte // When verifying JSON messages, we do not need to decode // the payload, as we already have it if !ctx.isJSON { // This is a special case for RFC7797 if !getB64Value(hdr) { // it's not base64 encoded decodedPayload = payload } if decodedPayload == nil { v, err := base64.Decode(payload) if err != nil { return nil, errors.Wrap(err, `message verified, failed to decode payload`) } decodedPayload = v } // For compact serialization, we need to create and assign the message // if requested if ctx.dst != nil { // Construct a new Message object m := NewMessage() m.SetPayload(decodedPayload) sig := NewSignature() sig.SetProtectedHeaders(hdr) sig.SetSignature(decodedSignature) m.AppendSignature(sig) *(ctx.dst) = *m } } return decodedPayload, nil } // This is an "optimized" io.ReadAll(). It will attempt to read // all of the contents from the reader IF the reader is of a certain // concrete type. func readAll(rdr io.Reader) ([]byte, bool) { switch rdr.(type) { case *bytes.Reader, *bytes.Buffer, *strings.Reader: data, err := io.ReadAll(rdr) if err != nil { return nil, false } return data, true default: return nil, false } } // Parse parses contents from the given source and creates a jws.Message // struct. The input can be in either compact or full JSON serialization. func Parse(src []byte) (*Message, error) { for i := 0; i < len(src); i++ { r := rune(src[i]) if r >= utf8.RuneSelf { r, _ = utf8.DecodeRune(src) } if !unicode.IsSpace(r) { if r == '{' { return parseJSON(src) } return parseCompact(src) } } return nil, errors.New("invalid byte sequence") } // Parse parses contents from the given source and creates a jws.Message // struct. The input can be in either compact or full JSON serialization. func ParseString(src string) (*Message, error) { return Parse([]byte(src)) } // Parse parses contents from the given source and creates a jws.Message // struct. The input can be in either compact or full JSON serialization. func ParseReader(src io.Reader) (*Message, error) { if data, ok := readAll(src); ok { return Parse(data) } rdr := bufio.NewReader(src) var first rune for { r, _, err := rdr.ReadRune() if err != nil { return nil, errors.Wrap(err, `failed to read rune`) } if !unicode.IsSpace(r) { first = r if err := rdr.UnreadRune(); err != nil { return nil, errors.Wrap(err, `failed to unread rune`) } break } } var parser func(io.Reader) (*Message, error) if first == '{' { parser = parseJSONReader } else { parser = parseCompactReader } m, err := parser(rdr) if err != nil { return nil, errors.Wrap(err, `failed to parse jws message`) } return m, nil } func parseJSONReader(src io.Reader) (result *Message, err error) { var m Message if err := json.NewDecoder(src).Decode(&m); err != nil { return nil, errors.Wrap(err, `failed to unmarshal jws message`) } return &m, nil } func parseJSON(data []byte) (result *Message, err error) { var m Message if err := json.Unmarshal(data, &m); err != nil { return nil, errors.Wrap(err, `failed to unmarshal jws message`) } return &m, nil } // SplitCompact splits a JWT and returns its three parts // separately: protected headers, payload and signature. func SplitCompact(src []byte) ([]byte, []byte, []byte, error) { parts := bytes.Split(src, []byte(".")) if len(parts) < 3 { return nil, nil, nil, errors.New(`invalid number of segments`) } return parts[0], parts[1], parts[2], nil } // SplitCompactString splits a JWT and returns its three parts // separately: protected headers, payload and signature. func SplitCompactString(src string) ([]byte, []byte, []byte, error) { parts := strings.Split(src, ".") if len(parts) < 3 { return nil, nil, nil, errors.New(`invalid number of segments`) } return []byte(parts[0]), []byte(parts[1]), []byte(parts[2]), nil } // SplitCompactReader splits a JWT and returns its three parts // separately: protected headers, payload and signature. func SplitCompactReader(rdr io.Reader) ([]byte, []byte, []byte, error) { if data, ok := readAll(rdr); ok { return SplitCompact(data) } var protected []byte var payload []byte var signature []byte var periods int var state int buf := make([]byte, 4096) var sofar []byte for { // read next bytes n, err := rdr.Read(buf) // return on unexpected read error if err != nil && err != io.EOF { return nil, nil, nil, errors.Wrap(err, `unexpected end of input`) } // append to current buffer sofar = append(sofar, buf[:n]...) // loop to capture multiple '.' in current buffer for loop := true; loop; { var i = bytes.IndexByte(sofar, '.') if i == -1 && err != io.EOF { // no '.' found -> exit and read next bytes (outer loop) loop = false continue } else if i == -1 && err == io.EOF { // no '.' found -> process rest and exit i = len(sofar) loop = false } else { // '.' found periods++ } // Reaching this point means we have found a '.' or EOF and process the rest of the buffer switch state { case 0: protected = sofar[:i] state++ case 1: payload = sofar[:i] state++ case 2: signature = sofar[:i] } // Shorten current buffer if len(sofar) > i { sofar = sofar[i+1:] } } // Exit on EOF if err == io.EOF { break } } if periods != 2 { return nil, nil, nil, errors.New(`invalid number of segments`) } return protected, payload, signature, nil } // parseCompactReader parses a JWS value serialized via compact serialization. func parseCompactReader(rdr io.Reader) (m *Message, err error) { protected, payload, signature, err := SplitCompactReader(rdr) if err != nil { return nil, errors.Wrap(err, `invalid compact serialization format`) } return parse(protected, payload, signature) } func parseCompact(data []byte) (m *Message, err error) { protected, payload, signature, err := SplitCompact(data) if err != nil { return nil, errors.Wrap(err, `invalid compact serialization format`) } return parse(protected, payload, signature) } func parse(protected, payload, signature []byte) (*Message, error) { decodedHeader, err := base64.Decode(protected) if err != nil { return nil, errors.Wrap(err, `failed to decode protected headers`) } hdr := NewHeaders() if err := json.Unmarshal(decodedHeader, hdr); err != nil { return nil, errors.Wrap(err, `failed to parse JOSE headers`) } decodedPayload, err := base64.Decode(payload) if err != nil { return nil, errors.Wrap(err, `failed to decode payload`) } decodedSignature, err := base64.Decode(signature) if err != nil { return nil, errors.Wrap(err, `failed to decode signature`) } var msg Message msg.payload = decodedPayload msg.signatures = append(msg.signatures, &Signature{ protected: hdr, signature: decodedSignature, }) return &msg, nil } // RegisterCustomField allows users to specify that a private field // be decoded as an instance of the specified type. This option has // a global effect. // // For example, suppose you have a custom field `x-birthday`, which // you want to represent as a string formatted in RFC3339 in JSON, // but want it back as `time.Time`. // // In that case you would register a custom field as follows // // jwe.RegisterCustomField(`x-birthday`, timeT) // // Then `hdr.Get("x-birthday")` will still return an `interface{}`, // but you can convert its type to `time.Time` // // bdayif, _ := hdr.Get(`x-birthday`) // bday := bdayif.(time.Time) func RegisterCustomField(name string, object interface{}) { registry.Register(name, object) } // Helpers for signature verification var rawKeyToKeyType = make(map[reflect.Type]jwa.KeyType) var keyTypeToAlgorithms = make(map[jwa.KeyType][]jwa.SignatureAlgorithm) func init() { rawKeyToKeyType[reflect.TypeOf([]byte(nil))] = jwa.OctetSeq rawKeyToKeyType[reflect.TypeOf(ed25519.PublicKey(nil))] = jwa.OKP rawKeyToKeyType[reflect.TypeOf(rsa.PublicKey{})] = jwa.RSA rawKeyToKeyType[reflect.TypeOf((*rsa.PublicKey)(nil))] = jwa.RSA rawKeyToKeyType[reflect.TypeOf(ecdsa.PublicKey{})] = jwa.EC rawKeyToKeyType[reflect.TypeOf((*ecdsa.PublicKey)(nil))] = jwa.EC addAlgorithmForKeyType(jwa.OKP, jwa.EdDSA) for _, alg := range []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512} { addAlgorithmForKeyType(jwa.OctetSeq, alg) } for _, alg := range []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512} { addAlgorithmForKeyType(jwa.RSA, alg) } for _, alg := range []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512} { addAlgorithmForKeyType(jwa.EC, alg) } } func addAlgorithmForKeyType(kty jwa.KeyType, alg jwa.SignatureAlgorithm) { keyTypeToAlgorithms[kty] = append(keyTypeToAlgorithms[kty], alg) } // AlgorithmsForKey returns the possible signature algorithms that can // be used for a given key. It only takes in consideration keys/algorithms // for verification purposes, as this is the only usage where one may need // dynamically figure out which method to use. func AlgorithmsForKey(key interface{}) ([]jwa.SignatureAlgorithm, error) { var kty jwa.KeyType switch key := key.(type) { case jwk.Key: kty = key.KeyType() case rsa.PublicKey, *rsa.PublicKey, rsa.PrivateKey, *rsa.PrivateKey: kty = jwa.RSA case ecdsa.PublicKey, *ecdsa.PublicKey, ecdsa.PrivateKey, *ecdsa.PrivateKey: kty = jwa.EC case ed25519.PublicKey, ed25519.PrivateKey, x25519.PublicKey, x25519.PrivateKey: kty = jwa.OKP case []byte: kty = jwa.OctetSeq default: return nil, errors.Errorf(`invalid key %T`, key) } algs, ok := keyTypeToAlgorithms[kty] if !ok { return nil, errors.Errorf(`invalid key type %q`, kty) } return algs, nil } golang-github-lestrrat-go-jwx-1.2.30/jws/jws_test.go000066400000000000000000001520741465311135100224000ustar00rootroot00000000000000package jws_test import ( "bufio" "bytes" "context" "crypto" "crypto/ecdsa" "crypto/ed25519" "crypto/rsa" "crypto/sha512" "encoding/asn1" "fmt" "io" "math/big" "net/http" "net/http/httptest" "os" "sort" "strings" "testing" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/x25519" "github.com/pkg/errors" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) const examplePayload = `{"iss":"joe",` + "\r\n" + ` "exp":1300819380,` + "\r\n" + ` "http://example.com/is_root":true}` const exampleCompactSerialization = `eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk` const badValue = "%badvalue%" var hasES256K bool func TestParseReader(t *testing.T) { t.Parallel() t.Run("Empty []byte", func(t *testing.T) { t.Parallel() _, err := jws.Parse(nil) if !assert.Error(t, err, "Parsing an empty byte slice should result in an error") { return } }) t.Run("Empty bytes.Buffer", func(t *testing.T) { t.Parallel() _, err := jws.ParseReader(&bytes.Buffer{}) if !assert.Error(t, err, "Parsing an empty buffer should result in an error") { return } }) t.Run("Compact detached payload", func(t *testing.T) { t.Parallel() split := strings.Split(exampleCompactSerialization, ".") incoming := strings.Join([]string{split[0], "", split[2]}, ".") _, err := jws.ParseString(incoming) if !assert.NoError(t, err, `jws.ParseString should succeed`) { return } }) t.Run("Compact missing header", func(t *testing.T) { t.Parallel() incoming := strings.Join( (strings.Split( exampleCompactSerialization, ".", ))[:2], ".", ) for _, useReader := range []bool{true, false} { var err error if useReader { // Force ParseReader() to choose un-optimized path by using bufio.NewReader _, err = jws.ParseReader(bufio.NewReader(strings.NewReader(incoming))) } else { _, err = jws.ParseString(incoming) } if !assert.Error(t, err, "Parsing compact serialization with less than 3 parts should be an error") { return } } }) t.Run("Compact bad header", func(t *testing.T) { t.Parallel() parts := strings.Split(exampleCompactSerialization, ".") parts[0] = badValue incoming := strings.Join(parts, ".") for _, useReader := range []bool{true, false} { var err error if useReader { _, err = jws.ParseReader(bufio.NewReader(strings.NewReader(incoming))) } else { _, err = jws.ParseString(incoming) } if !assert.Error(t, err, "Parsing compact serialization with bad header should be an error") { return } } }) t.Run("Compact bad payload", func(t *testing.T) { t.Parallel() parts := strings.Split(exampleCompactSerialization, ".") parts[1] = badValue incoming := strings.Join(parts, ".") for _, useReader := range []bool{true, false} { var err error if useReader { _, err = jws.ParseReader(bufio.NewReader(strings.NewReader(incoming))) } else { _, err = jws.ParseString(incoming) } if !assert.Error(t, err, "Parsing compact serialization with bad payload should be an error") { return } } }) t.Run("Compact bad signature", func(t *testing.T) { t.Parallel() parts := strings.Split(exampleCompactSerialization, ".") parts[2] = badValue incoming := strings.Join(parts, ".") for _, useReader := range []bool{true, false} { var err error if useReader { _, err = jws.ParseReader(bufio.NewReader(strings.NewReader(incoming))) } else { _, err = jws.ParseString(incoming) } if !assert.Error(t, err, "Parsing compact serialization with bad signature should be an error") { return } } }) } type dummyCryptoSigner struct { raw crypto.Signer } func (s *dummyCryptoSigner) Sign(rand io.Reader, digest []byte, opts crypto.SignerOpts) ([]byte, error) { return s.raw.Sign(rand, digest, opts) } func (s *dummyCryptoSigner) Public() crypto.PublicKey { return s.raw.Public() } var _ crypto.Signer = &dummyCryptoSigner{} type dummyECDSACryptoSigner struct { raw *ecdsa.PrivateKey } func (es *dummyECDSACryptoSigner) Public() crypto.PublicKey { return es.raw.Public() } func (es *dummyECDSACryptoSigner) Sign(rand io.Reader, digest []byte, _ crypto.SignerOpts) ([]byte, error) { // The implementation is the same as ecdsaCryptoSigner. // This is just here to test the interface conversion r, s, err := ecdsa.Sign(rand, es.raw, digest) if err != nil { return nil, errors.Wrap(err, "failed to sign payload using ecdsa") } return asn1.Marshal(struct { R *big.Int S *big.Int }{R: r, S: s}) } var _ crypto.Signer = &dummyECDSACryptoSigner{} func testRoundtrip(t *testing.T, payload []byte, alg jwa.SignatureAlgorithm, signKey interface{}, keys map[string]interface{}) { t.Helper() jwkKey, err := jwk.New(signKey) if !assert.NoError(t, err, `jwk.New should succeed`) { return } signKeys := []struct { Name string Key interface{} }{ { Name: "Raw Key", Key: signKey, }, { Name: "JWK Key", Key: jwkKey, }, } if es, ok := signKey.(*ecdsa.PrivateKey); ok { signKeys = append(signKeys, struct { Name string Key interface{} }{ Name: "crypto.Hash", Key: &dummyECDSACryptoSigner{raw: es}, }) } else if cs, ok := signKey.(crypto.Signer); ok { signKeys = append(signKeys, struct { Name string Key interface{} }{ Name: "crypto.Hash", Key: &dummyCryptoSigner{raw: cs}, }) } for _, key := range signKeys { key := key t.Run(key.Name, func(t *testing.T) { signed, err := jws.Sign(payload, alg, key.Key) if !assert.NoError(t, err, "jws.Sign should succeed") { return } parsers := map[string]func([]byte) (*jws.Message, error){ "ParseReader(io.Reader)": func(b []byte) (*jws.Message, error) { return jws.ParseReader(bufio.NewReader(bytes.NewReader(b))) }, "Parse([]byte)": func(b []byte) (*jws.Message, error) { return jws.Parse(b) }, "ParseString(string)": func(b []byte) (*jws.Message, error) { return jws.ParseString(string(b)) }, } for name, f := range parsers { name := name f := f t.Run(name, func(t *testing.T) { t.Parallel() m, err := f(signed) if !assert.NoError(t, err, "(%s) %s is successful", alg, name) { return } if !assert.Equal(t, payload, m.Payload(), "(%s) %s: Payload is decoded", alg, name) { return } }) } for name, testKey := range keys { name := name testKey := testKey t.Run(name, func(t *testing.T) { verified, err := jws.Verify(signed, alg, testKey) if !assert.NoError(t, err, "(%s) Verify is successful", alg) { return } if !assert.Equal(t, payload, verified, "(%s) Verified payload is the same", alg) { return } }) } }) } } func TestRoundtrip(t *testing.T) { t.Parallel() payload := []byte("Lorem ipsum") t.Run("HMAC", func(t *testing.T) { t.Parallel() sharedkey := []byte("Avracadabra") jwkKey, _ := jwk.New(sharedkey) keys := map[string]interface{}{ "[]byte": sharedkey, "jwk.Key": jwkKey, } hmacAlgorithms := []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512} for _, alg := range hmacAlgorithms { alg := alg t.Run(alg.String(), func(t *testing.T) { t.Parallel() testRoundtrip(t, payload, alg, sharedkey, keys) }) } }) t.Run("ECDSA", func(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, "ECDSA key generated") { return } jwkKey, _ := jwk.New(key.PublicKey) keys := map[string]interface{}{ "Verify(ecdsa.PublicKey)": key.PublicKey, "Verify(*ecdsa.PublicKey)": &key.PublicKey, "Verify(jwk.Key)": jwkKey, } for _, alg := range []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512} { alg := alg t.Run(alg.String(), func(t *testing.T) { t.Parallel() testRoundtrip(t, payload, alg, key, keys) }) } }) t.Run("RSA", func(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "RSA key generated") { return } jwkKey, _ := jwk.New(key.PublicKey) keys := map[string]interface{}{ "Verify(rsa.PublicKey)": key.PublicKey, "Verify(*rsa.PublicKey)": &key.PublicKey, "Verify(jwk.Key)": jwkKey, } for _, alg := range []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512} { alg := alg t.Run(alg.String(), func(t *testing.T) { t.Parallel() testRoundtrip(t, payload, alg, key, keys) }) } }) t.Run("EdDSA", func(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateEd25519Key() if !assert.NoError(t, err, "ed25519 key generated") { return } pubkey := key.Public() jwkKey, _ := jwk.New(pubkey) keys := map[string]interface{}{ "Verify(ed25519.Public())": pubkey, "Verify(*ed25519.Public())": &pubkey, "Verify(jwk.Key)": jwkKey, } for _, alg := range []jwa.SignatureAlgorithm{jwa.EdDSA} { alg := alg t.Run(alg.String(), func(t *testing.T) { t.Parallel() testRoundtrip(t, payload, alg, key, keys) }) } }) } func TestSignMulti2(t *testing.T) { sharedkey := []byte("Avracadabra") payload := []byte("Lorem ipsum") hmacAlgorithms := []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512} var signed []byte t.Run("Sign", func(t *testing.T) { var options []jws.Option for _, alg := range hmacAlgorithms { signer, err := jws.NewSigner(alg) if !assert.NoError(t, err, `jws.NewSigner should succeed`) { return } options = append(options, jws.WithSigner(signer, sharedkey, nil, nil)) } var err error signed, err = jws.SignMulti(payload, options...) if !assert.NoError(t, err, `jws.SignMulti should succeed`) { return } }) for _, alg := range hmacAlgorithms { alg := alg t.Run("Verify "+alg.String(), func(t *testing.T) { m := jws.NewMessage() verified, err := jws.Verify(signed, alg, sharedkey, jws.WithMessage(m)) if !assert.NoError(t, err, "Verify succeeded") { return } if !assert.Equal(t, payload, verified, "verified payload matches") { return } // XXX This actally doesn't really test much, but if there was anything // wrong, the process should have failed well before reaching here if !assert.Equal(t, payload, m.Payload(), "message payload matches") { return } }) } } func TestEncode(t *testing.T) { t.Parallel() // HS256Compact tests that https://tools.ietf.org/html/rfc7515#appendix-A.1 works t.Run("HS256Compact", func(t *testing.T) { t.Parallel() const hdr = `{"typ":"JWT",` + "\r\n" + ` "alg":"HS256"}` const hmacKey = `AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow` const expected = `eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk` hmacKeyDecoded, err := base64.DecodeString(hmacKey) if !assert.NoError(t, err, "HMAC base64 decoded successful") { return } hdrbuf := base64.Encode([]byte(hdr)) payload := base64.Encode([]byte(examplePayload)) signingInput := bytes.Join( [][]byte{ hdrbuf, payload, }, []byte{'.'}, ) sign, err := jws.NewSigner(jwa.HS256) if !assert.NoError(t, err, "HMAC signer created successfully") { return } signature, err := sign.Sign(signingInput, hmacKeyDecoded) if !assert.NoError(t, err, "PayloadSign is successful") { return } sigbuf := base64.Encode(signature) encoded := bytes.Join( [][]byte{ signingInput, sigbuf, }, []byte{'.'}, ) if !assert.Equal(t, expected, string(encoded), "generated compact serialization should match") { return } msg, err := jws.ParseReader(bytes.NewReader(encoded)) if !assert.NoError(t, err, "Parsing compact encoded serialization succeeds") { return } signatures := msg.Signatures() if !assert.Len(t, signatures, 1, `there should be exactly one signature`) { return } algorithm := signatures[0].ProtectedHeaders().Algorithm() if algorithm != jwa.HS256 { t.Fatal("Algorithm in header does not match") } v, err := jws.NewVerifier(jwa.HS256) if !assert.NoError(t, err, "HmacVerify created") { return } if !assert.NoError(t, v.Verify(signingInput, signature, hmacKeyDecoded), "Verify succeeds") { return } }) t.Run("ES512Compact", func(t *testing.T) { t.Parallel() // ES256Compact tests that https://tools.ietf.org/html/rfc7515#appendix-A.3 works hdr := []byte{123, 34, 97, 108, 103, 34, 58, 34, 69, 83, 53, 49, 50, 34, 125} const jwksrc = `{ "kty":"EC", "crv":"P-521", "x":"AekpBQ8ST8a8VcfVOTNl353vSrDCLLJXmPk06wTjxrrjcBpXp5EOnYG_NjFZ6OvLFV1jSfS9tsz4qUxcWceqwQGk", "y":"ADSmRA43Z1DSNx_RvcLI87cdL07l6jQyyBXMoxVg_l2Th-x3S1WDhjDly79ajL4Kkd0AZMaZmh9ubmf63e3kyMj2", "d":"AY5pb7A0UFiB3RELSD64fTLOSV_jazdF7fLYyuTw8lOfRhWg6Y6rUrPAxerEzgdRhajnu0ferB0d53vM9mE15j2C" }` // "Payload" jwsPayload := []byte{80, 97, 121, 108, 111, 97, 100} standardHeaders := jws.NewHeaders() if !assert.NoError(t, json.Unmarshal(hdr, standardHeaders), `parsing headers should succeed`) { return } alg := standardHeaders.Algorithm() jwkKey, err := jwk.ParseKey([]byte(jwksrc)) if err != nil { t.Fatal("Failed to parse JWK") } var key interface{} if !assert.NoError(t, jwkKey.Raw(&key), `jwk.Raw should succeed`) { return } var jwsCompact []byte jwsCompact, err = jws.Sign(jwsPayload, alg, key) if err != nil { t.Fatal("Failed to sign message") } // Verify with standard ecdsa library _, _, jwsSignature, err := jws.SplitCompact(jwsCompact) if err != nil { t.Fatal("Failed to split compact JWT") } decodedJwsSignature, err := base64.Decode(jwsSignature) if !assert.NoError(t, err, `base64.Decode should succeed`) { return } r, s := &big.Int{}, &big.Int{} n := len(decodedJwsSignature) / 2 r.SetBytes(decodedJwsSignature[:n]) s.SetBytes(decodedJwsSignature[n:]) signingHdr := base64.Encode(hdr) signingPayload := base64.Encode(jwsPayload) jwsSigningInput := bytes.Join( [][]byte{ signingHdr, signingPayload, }, []byte{'.'}, ) hashed512 := sha512.Sum512(jwsSigningInput) ecdsaPrivateKey := key.(*ecdsa.PrivateKey) if !assert.True(t, ecdsa.Verify(&ecdsaPrivateKey.PublicKey, hashed512[:], r, s), "ecdsa.Verify should succeed") { return } // Verify with API library publicKey, err := jwk.PublicRawKeyOf(key) if !assert.NoError(t, err, `jwk.PublicRawKeyOf should succeed`) { return } verifiedPayload, err := jws.Verify(jwsCompact, alg, publicKey) if err != nil || string(verifiedPayload) != string(jwsPayload) { t.Fatal("Failed to verify message") } }) t.Run("RS256Compact", func(t *testing.T) { t.Parallel() // RS256Compact tests that https://tools.ietf.org/html/rfc7515#appendix-A.2 works const hdr = `{"alg":"RS256"}` const expected = `eyJhbGciOiJSUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw` const jwksrc = `{ "kty":"RSA", "n":"ofgWCuLjybRlzo0tZWJjNiuSfb4p4fAkd_wWJcyQoTbji9k0l8W26mPddxHmfHQp-Vaw-4qPCJrcS2mJPMEzP1Pt0Bm4d4QlL-yRT-SFd2lZS-pCgNMsD1W_YpRPEwOWvG6b32690r2jZ47soMZo9wGzjb_7OMg0LOL-bSf63kpaSHSXndS5z5rexMdbBYUsLA9e-KXBdQOS-UTo7WTBEMa2R2CapHg665xsmtdVMTBQY4uDZlxvb3qCo5ZwKh9kG4LT6_I5IhlJH7aGhyxXFvUK-DWNmoudF8NAco9_h9iaGNj8q2ethFkMLs91kzk2PAcDTW9gb54h4FRWyuXpoQ", "e":"AQAB", "d":"Eq5xpGnNCivDflJsRQBXHx1hdR1k6Ulwe2JZD50LpXyWPEAeP88vLNO97IjlA7_GQ5sLKMgvfTeXZx9SE-7YwVol2NXOoAJe46sui395IW_GO-pWJ1O0BkTGoVEn2bKVRUCgu-GjBVaYLU6f3l9kJfFNS3E0QbVdxzubSu3Mkqzjkn439X0M_V51gfpRLI9JYanrC4D4qAdGcopV_0ZHHzQlBjudU2QvXt4ehNYTCBr6XCLQUShb1juUO1ZdiYoFaFQT5Tw8bGUl_x_jTj3ccPDVZFD9pIuhLhBOneufuBiB4cS98l2SR_RQyGWSeWjnczT0QU91p1DhOVRuOopznQ", "p":"4BzEEOtIpmVdVEZNCqS7baC4crd0pqnRH_5IB3jw3bcxGn6QLvnEtfdUdiYrqBdss1l58BQ3KhooKeQTa9AB0Hw_Py5PJdTJNPY8cQn7ouZ2KKDcmnPGBY5t7yLc1QlQ5xHdwW1VhvKn-nXqhJTBgIPgtldC-KDV5z-y2XDwGUc", "q":"uQPEfgmVtjL0Uyyx88GZFF1fOunH3-7cepKmtH4pxhtCoHqpWmT8YAmZxaewHgHAjLYsp1ZSe7zFYHj7C6ul7TjeLQeZD_YwD66t62wDmpe_HlB-TnBA-njbglfIsRLtXlnDzQkv5dTltRJ11BKBBypeeF6689rjcJIDEz9RWdc", "dp":"BwKfV3Akq5_MFZDFZCnW-wzl-CCo83WoZvnLQwCTeDv8uzluRSnm71I3QCLdhrqE2e9YkxvuxdBfpT_PI7Yz-FOKnu1R6HsJeDCjn12Sk3vmAktV2zb34MCdy7cpdTh_YVr7tss2u6vneTwrA86rZtu5Mbr1C1XsmvkxHQAdYo0", "dq":"h_96-mK1R_7glhsum81dZxjTnYynPbZpHziZjeeHcXYsXaaMwkOlODsWa7I9xXDoRwbKgB719rrmI2oKr6N3Do9U0ajaHF-NKJnwgjMd2w9cjz3_-kyNlxAr2v4IKhGNpmM5iIgOS1VZnOZ68m6_pbLBSp3nssTdlqvd0tIiTHU", "qi":"IYd7DHOhrWvxkwPQsRM2tOgrjbcrfvtQJipd-DlcxyVuuM9sQLdgjVk2oy26F0EmpScGLq2MowX7fhd_QJQ3ydy5cY7YIBi87w93IKLEdfnbJtoOPLUW0ITrJReOgo1cq9SbsxYawBgfp_gh6A5603k2-ZQwVK0JKSHuLFkuQ3U" }` privkey := jwk.NewRSAPrivateKey() if !assert.NoError(t, json.Unmarshal([]byte(jwksrc), privkey), `parsing jwk should be successful`) { return } var rawkey rsa.PrivateKey if !assert.NoError(t, privkey.Raw(&rawkey), `obtaining raw key should succeed`) { return } sign, err := jws.NewSigner(jwa.RS256) if !assert.NoError(t, err, "RsaSign created successfully") { return } hdrbuf := base64.Encode([]byte(hdr)) payload := base64.Encode([]byte(examplePayload)) signingInput := bytes.Join( [][]byte{ hdrbuf, payload, }, []byte{'.'}, ) signature, err := sign.Sign(signingInput, rawkey) if !assert.NoError(t, err, "PayloadSign is successful") { return } sigbuf := base64.Encode(signature) encoded := bytes.Join( [][]byte{ signingInput, sigbuf, }, []byte{'.'}, ) if !assert.Equal(t, expected, string(encoded), "generated compact serialization should match") { return } msg, err := jws.ParseReader(bytes.NewReader(encoded)) if !assert.NoError(t, err, "Parsing compact encoded serialization succeeds") { return } signatures := msg.Signatures() if !assert.Len(t, signatures, 1, `there should be exactly one signature`) { return } algorithm := signatures[0].ProtectedHeaders().Algorithm() if algorithm != jwa.RS256 { t.Fatal("Algorithm in header does not match") } v, err := jws.NewVerifier(jwa.RS256) if !assert.NoError(t, err, "Verify created") { return } if !assert.NoError(t, v.Verify(signingInput, signature, rawkey.PublicKey), "Verify succeeds") { return } }) t.Run("ES256Compact", func(t *testing.T) { t.Parallel() // ES256Compact tests that https://tools.ietf.org/html/rfc7515#appendix-A.3 works const hdr = `{"alg":"ES256"}` const jwksrc = `{ "kty":"EC", "crv":"P-256", "x":"f83OJ3D2xF1Bg8vub9tLe1gHMzV76e8Tus9uPHvRVEU", "y":"x_FEzRu9m36HLN_tue659LNpXW6pCyStikYjKIWI5a0", "d":"jpsQnnGQmL-YBIffH1136cspYG6-0iY7X1fCE9-E9LI" }` privkey := jwk.NewECDSAPrivateKey() if !assert.NoError(t, json.Unmarshal([]byte(jwksrc), privkey), `parsing jwk should succeed`) { return } var rawkey ecdsa.PrivateKey if !assert.NoError(t, privkey.Raw(&rawkey), `obtaining raw key should succeed`) { return } signer, err := jws.NewSigner(jwa.ES256) if !assert.NoError(t, err, "RsaSign created successfully") { return } hdrbuf := base64.Encode([]byte(hdr)) payload := base64.Encode([]byte(examplePayload)) signingInput := bytes.Join( [][]byte{ hdrbuf, payload, }, []byte{'.'}, ) signature, err := signer.Sign(signingInput, &rawkey) if !assert.NoError(t, err, "PayloadSign is successful") { return } sigbuf := base64.Encode(signature) if !assert.NoError(t, err, "base64 encode successful") { return } encoded := bytes.Join( [][]byte{ signingInput, sigbuf, }, []byte{'.'}, ) // The signature contains random factor, so unfortunately we can't match // the output against a fixed expected outcome. We'll wave doing an // exact match, and just try to verify using the signature msg, err := jws.ParseReader(bytes.NewReader(encoded)) if !assert.NoError(t, err, "Parsing compact encoded serialization succeeds") { return } signatures := msg.Signatures() if !assert.Len(t, signatures, 1, `there should be exactly one signature`) { return } algorithm := signatures[0].ProtectedHeaders().Algorithm() if algorithm != jwa.ES256 { t.Fatal("Algorithm in header does not match") } v, err := jws.NewVerifier(jwa.ES256) if !assert.NoError(t, err, "EcdsaVerify created") { return } if !assert.NoError(t, v.Verify(signingInput, signature, rawkey.PublicKey), "Verify succeeds") { return } }) t.Run("EdDSACompact", func(t *testing.T) { t.Parallel() // EdDSACompact tests that https://tools.ietf.org/html/rfc8037#appendix-A.1-5 works const hdr = `{"alg":"EdDSA"}` const jwksrc = `{ "kty":"OKP", "crv":"Ed25519", "d":"nWGxne_9WmC6hEr0kuwsxERJxWl7MmkZcDusAxyuf2A", "x":"11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo" }` const examplePayload = `Example of Ed25519 signing` const expected = `hgyY0il_MGCjP0JzlnLWG1PPOt7-09PGcvMg3AIbQR6dWbhijcNR4ki4iylGjg5BhVsPt9g7sVvpAr_MuM0KAg` expectedDecoded, err := base64.Decode([]byte(expected)) if !assert.NoError(t, err, "Expected Signature decode successful") { return } privkey := jwk.NewOKPPrivateKey() if !assert.NoError(t, json.Unmarshal([]byte(jwksrc), privkey), `parsing jwk should succeed`) { return } var rawkey ed25519.PrivateKey if !assert.NoError(t, privkey.Raw(&rawkey), `obtaining raw key should succeed`) { return } signer, err := jws.NewSigner(jwa.EdDSA) if !assert.NoError(t, err, "EdDSASign created successfully") { return } hdrbuf := base64.Encode([]byte(hdr)) payload := base64.Encode([]byte(examplePayload)) signingInput := bytes.Join( [][]byte{ hdrbuf, payload, }, []byte{'.'}, ) signature, err := signer.Sign(signingInput, rawkey) if !assert.NoError(t, err, "PayloadSign is successful") { return } sigbuf := base64.Encode(signature) encoded := bytes.Join( [][]byte{ signingInput, sigbuf, }, []byte{'.'}, ) // The signature contains random factor, so unfortunately we can't match // the output against a fixed expected outcome. We'll wave doing an // exact match, and just try to verify using the signature msg, err := jws.ParseReader(bytes.NewReader(encoded)) if !assert.NoError(t, err, "Parsing compact encoded serialization succeeds") { return } signatures := msg.Signatures() if !assert.Len(t, signatures, 1, `there should be exactly one signature`) { return } algorithm := signatures[0].ProtectedHeaders().Algorithm() if algorithm != jwa.EdDSA { t.Fatal("Algorithm in header does not match") } v, err := jws.NewVerifier(jwa.EdDSA) if !assert.NoError(t, err, "EcdsaVerify created") { return } if !assert.NoError(t, v.Verify(signingInput, signature, rawkey.Public()), "Verify succeeds") { return } if !assert.Equal(t, signature, expectedDecoded, "signatures match") { return } }) t.Run("UnsecuredCompact", func(t *testing.T) { t.Parallel() s := `eyJhbGciOiJub25lIn0.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.` m, err := jws.ParseReader(strings.NewReader(s)) if !assert.NoError(t, err, "Parsing compact serialization") { return } { v := map[string]interface{}{} if !assert.NoError(t, json.Unmarshal(m.Payload(), &v), "Unmarshal payload") { return } if !assert.Equal(t, v["iss"], "joe", "iss matches") { return } if !assert.Equal(t, int(v["exp"].(float64)), 1300819380, "exp matches") { return } if !assert.Equal(t, v["http://example.com/is_root"], true, "'http://example.com/is_root' matches") { return } } if !assert.Len(t, m.Signatures(), 1, "There should be 1 signature") { return } signatures := m.Signatures() algorithm := signatures[0].ProtectedHeaders().Algorithm() if algorithm != jwa.NoSignature { t.Fatal("Algorithm in header does not match") } if !assert.Empty(t, signatures[0].Signature(), "Signature should be empty") { return } }) t.Run("CompleteJSON", func(t *testing.T) { t.Parallel() s := `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "signatures":[ { "header": {"kid":"2010-12-29"}, "protected":"eyJhbGciOiJSUzI1NiJ9", "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw" }, { "header": {"kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"}, "protected":"eyJhbGciOiJFUzI1NiJ9", "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" } ] }` m, err := jws.ParseReader(strings.NewReader(s)) if !assert.NoError(t, err, "Unmarshal complete json serialization") { return } if !assert.Len(t, m.Signatures(), 2, "There should be 2 signatures") { return } sigs := m.LookupSignature("2010-12-29") if !assert.Len(t, sigs, 1, "There should be 1 signature with kid = '2010-12-29'") { return } }) t.Run("Protected Header lookup", func(t *testing.T) { t.Parallel() s := `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "signatures":[ { "header": {"cty":"example"}, "protected":"eyJhbGciOiJFUzI1NiIsImtpZCI6ImU5YmMwOTdhLWNlNTEtNDAzNi05NTYyLWQyYWRlODgyZGIwZCJ9", "signature": "JcLb1udPAV72TayGv6eawZKlIQQ3K1NzB0fU7wwYoFypGxEczdCQU-V9jp4WwY2ueJKYeE4fF6jigB0PdSKR0Q" } ] }` // Protected Header is {"alg":"ES256","kid":"e9bc097a-ce51-4036-9562-d2ade882db0d"} // This protected header combination forces the parser/unmarshal to go trough the code path to populate and look for protected header fields. // The signature is valid. m, err := jws.ParseReader(strings.NewReader(s)) if !assert.NoError(t, err, "Unmarshal complete json serialization") { return } if len(m.Signatures()) != 1 { t.Fatal("There should be 1 signature") } sigs := m.LookupSignature("e9bc097a-ce51-4036-9562-d2ade882db0d") if !assert.Len(t, sigs, 1, "There should be 1 signature with kid = '2010-12-29'") { return } }) t.Run("FlattenedJSON", func(t *testing.T) { t.Parallel() s := `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "protected":"eyJhbGciOiJFUzI1NiJ9", "header": { "kid":"e9bc097a-ce51-4036-9562-d2ade882db0d" }, "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" }` m, err := jws.ParseReader(strings.NewReader(s)) if !assert.NoError(t, err, "Parsing flattened json serialization") { return } if !assert.Len(t, m.Signatures(), 1, "There should be 1 signature") { return } jsonbuf, _ := json.MarshalIndent(m, "", " ") t.Logf("%s", jsonbuf) }) t.Run("SplitCompact", func(t *testing.T) { testcases := []struct { Name string Size int }{ {Name: "Short", Size: 100}, {Name: "Long", Size: 8000}, } for _, tc := range testcases { size := tc.Size t.Run(tc.Name, func(t *testing.T) { t.Parallel() // Create payload with X.Y.Z var payload []byte for i := 0; i < size; i++ { payload = append(payload, 'X') } payload = append(payload, '.') for i := 0; i < size; i++ { payload = append(payload, 'Y') } payload = append(payload, '.') for i := 0; i < size; i++ { payload = append(payload, 'Y') } // Test using bytes, reader optimized and non-optimized path for _, method := range []int{0, 1, 2} { var x, y, z []byte var err error switch method { case 0: // bytes x, y, z, err = jws.SplitCompact(payload) case 1: // un-optimized io.Reader x, y, z, err = jws.SplitCompactReader(bytes.NewReader(payload)) default: // optimized io.Reader x, y, z, err = jws.SplitCompactReader(bufio.NewReader(bytes.NewReader(payload))) } if !assert.NoError(t, err, "SplitCompact should succeed") { return } if !assert.Len(t, x, size, "Length of header") { return } if !assert.Len(t, y, size, "Length of payload") { return } if !assert.Len(t, z, size, "Length of signature") { return } } }) } }) } func TestPublicHeaders(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "GenerateKey should succeed") { return } signer, err := jws.NewSigner(jwa.RS256) if !assert.NoError(t, err, "jws.NewSigner should succeed") { return } _ = signer // TODO pubkey := key.PublicKey pubjwk, err := jwk.New(&pubkey) if !assert.NoError(t, err, "NewRsaPublicKey should succeed") { return } _ = pubjwk // TODO } func TestDecode_ES384Compact_NoSigTrim(t *testing.T) { incoming := "eyJhbGciOiJFUzM4NCIsInR5cCI6IkpXVCIsImtpZCI6IjE5MzFmZTQ0YmFhMWNhZTkyZWUzNzYzOTQ0MDU1OGMwODdlMTRlNjk5ZWU5NjVhM2Q1OGU1MmU2NGY4MDE0NWIifQ.eyJpc3MiOiJicmt0LWNsaS0xLjAuN3ByZTEiLCJpYXQiOjE0ODQ2OTU1MjAsImp0aSI6IjgxYjczY2Y3In0.DdFi0KmPHSv4PfIMGcWGMSRLmZsfRPQ3muLFW6Ly2HpiLFFQWZ0VEanyrFV263wjlp3udfedgw_vrBLz3XC8CkbvCo_xeHMzaTr_yfhjoheSj8gWRLwB-22rOnUX_M0A" t.Logf("incoming = '%s'", incoming) const jwksrc = `{ "kty":"EC", "crv":"P-384", "x":"YHVZ4gc1RDoqxKm4NzaN_Y1r7R7h3RM3JMteC478apSKUiLVb4UNytqWaLoE6ygH", "y":"CRKSqP-aYTIsqJfg_wZEEYUayUR5JhZaS2m4NLk2t1DfXZgfApAJ2lBO0vWKnUMp" }` pubkey := jwk.NewECDSAPublicKey() if !assert.NoError(t, json.Unmarshal([]byte(jwksrc), pubkey), `parsing jwk should be successful`) { return } var rawkey ecdsa.PublicKey if !assert.NoError(t, pubkey.Raw(&rawkey), `obtaining raw key should succeed`) { return } v, err := jws.NewVerifier(jwa.ES384) if !assert.NoError(t, err, "EcdsaVerify created") { return } protected, payload, signature, err := jws.SplitCompact([]byte(incoming)) if !assert.NoError(t, err, `jws.SplitCompact should succeed`) { return } var buf bytes.Buffer buf.Write(protected) buf.WriteByte('.') buf.Write(payload) decodedSignature, err := base64.Decode(signature) if !assert.NoError(t, err, `decoding signature should succeed`) { return } if !assert.NoError(t, v.Verify(buf.Bytes(), decodedSignature, rawkey), "Verify succeeds") { return } } func TestReadFile(t *testing.T) { t.Parallel() f, err := os.CreateTemp("", "test-read-file-*.jws") if !assert.NoError(t, err, `os.CreateTemp should succeed`) { return } defer f.Close() fmt.Fprintf(f, "%s", exampleCompactSerialization) if _, err := jws.ReadFile(f.Name()); !assert.NoError(t, err, `jws.ReadFile should succeed`) { return } } func TestVerifySet(t *testing.T) { t.Parallel() const payload = "Lorem ipsum" makeSet := func(privkey jwk.Key) jwk.Set { set := jwk.NewSet() k1, _ := jwk.New([]byte("abracadavra")) set.Add(k1) k2, _ := jwk.New([]byte("opensasame")) set.Add(k2) pubkey, _ := jwk.PublicKeyOf(privkey) pubkey.Set(jwk.AlgorithmKey, jwa.RS256) set.Add(pubkey) return set } for _, useJSON := range []bool{true, false} { useJSON := useJSON t.Run(fmt.Sprintf("useJSON=%t", useJSON), func(t *testing.T) { t.Parallel() t.Run(`match via "alg"`, func(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, "jwxtest.GenerateJwk should succeed") { return } set := makeSet(key) signed, err := jws.Sign([]byte(payload), jwa.RS256, key) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } if useJSON { m, err := jws.Parse(signed) if !assert.NoError(t, err, `jws.Parse should succeed`) { return } signed, err = json.Marshal(m) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } } verified, err := jws.VerifySet(signed, set) if !assert.NoError(t, err, `jws.VerifySet should succeed`) { return } if !assert.Equal(t, []byte(payload), verified, `payload should match`) { return } }) t.Run(`match via "kid"`, func(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, "jwxtest.GenerateJwk should succeed") { return } key.Set(jwk.KeyIDKey, `mykey`) set := makeSet(key) signed, err := jws.Sign([]byte(payload), jwa.RS256, key) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } if useJSON { m, err := jws.Parse(signed) if !assert.NoError(t, err, `jws.Parse should succeed`) { return } signed, err = json.Marshal(m) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } } verified, err := jws.VerifySet(signed, set) if !assert.NoError(t, err, `jws.VerifySet should succeed`) { return } if !assert.Equal(t, []byte(payload), verified, `payload should match`) { return } }) }) } } func TestCustomField(t *testing.T) { // XXX has global effect!!! jws.RegisterCustomField(`x-birthday`, time.Time{}) defer jws.RegisterCustomField(`x-birthday`, nil) expected := time.Date(2015, 11, 4, 5, 12, 52, 0, time.UTC) bdaybytes, _ := expected.MarshalText() // RFC3339 payload := "Hello, World!" privkey, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk() should succeed`) { return } hdrs := jws.NewHeaders() hdrs.Set(`x-birthday`, string(bdaybytes)) signed, err := jws.Sign([]byte(payload), jwa.RS256, privkey, jws.WithHeaders(hdrs)) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } t.Run("jws.Parse + json.Unmarshal", func(t *testing.T) { msg, err := jws.Parse(signed) if !assert.NoError(t, err, `jws.Parse should succeed`) { return } v, ok := msg.Signatures()[0].ProtectedHeaders().Get(`x-birthday`) if !assert.True(t, ok, `msg.Signatures()[0].ProtectedHeaders().Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } // Create JSON from jws.Message buf, err := json.Marshal(msg) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } var msg2 jws.Message if !assert.NoError(t, json.Unmarshal(buf, &msg2), `json.Unmarshal should succeed`) { return } v, ok = msg2.Signatures()[0].ProtectedHeaders().Get(`x-birthday`) if !assert.True(t, ok, `msg2.Signatures()[0].ProtectedHeaders().Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) } func TestWithMessage(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "jwxtest.Generate should succeed") { return } const text = "hello, world" signed, err := jws.Sign([]byte(text), jwa.RS256, key) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } m := jws.NewMessage() payload, err := jws.Verify(signed, jwa.RS256, key.PublicKey, jws.WithMessage(m)) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, payload, []byte(text), `jws.Verify should produce the correct payload`) { return } parsed, err := jws.Parse(signed) if !assert.NoError(t, err, `jws.Parse should succeed`) { return } // The result of using jws.WithMessage should match the result of jws.Parse buf1, _ := json.Marshal(m) buf2, _ := json.Marshal(parsed) if !assert.Equal(t, buf1, buf2, `result of jws.PArse and jws.Verify(..., jws.WithMessage()) should match`) { return } } func TestRFC7797(t *testing.T) { const keysrc = `{"kty":"oct", "k":"AyM1SysPpbyDfgZld3umj1qzKObwVMkoqQ-EstJQLr_T-1qS0gZH75aKtMN3Yj0iPS4hcgUuTwjAzZr1Z9CAow" }` key, err := jwk.ParseKey([]byte(keysrc)) if !assert.NoError(t, err, `jwk.Parse should succeed`) { return } t.Run("Invalid payload when b64 = false and NOT detached", func(t *testing.T) { const payload = `$.02` hdrs := jws.NewHeaders() hdrs.Set("b64", false) hdrs.Set("crit", "b64") _, err := jws.Sign([]byte(payload), jwa.HS256, key, jws.WithHeaders(hdrs)) if !assert.Error(t, err, `jws.Sign should fail`) { return } }) t.Run("Invalid usage when b64 = false and NOT detached", func(t *testing.T) { const payload = `$.02` hdrs := jws.NewHeaders() hdrs.Set("b64", false) hdrs.Set("crit", "b64") _, err := jws.Sign([]byte(payload), jwa.HS256, key, jws.WithHeaders(hdrs), jws.WithDetachedPayload([]byte(payload))) if !assert.Error(t, err, `jws.Sign should fail`) { return } }) t.Run("Valid payload when b64 = false", func(t *testing.T) { testcases := []struct { Name string Payload []byte Detached bool }{ { Name: `(Detached) payload contains a period`, Payload: []byte(`$.02`), Detached: true, }, { Name: `(NOT detached) payload does not contain a period`, Payload: []byte(`hell0w0rld`), }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { hdrs := jws.NewHeaders() hdrs.Set("b64", false) hdrs.Set("crit", "b64") payload := tc.Payload signOptions := []jws.SignOption{jws.WithHeaders(hdrs)} var verifyOptions []jws.VerifyOption if tc.Detached { signOptions = append(signOptions, jws.WithDetachedPayload(payload)) verifyOptions = append(verifyOptions, jws.WithDetachedPayload(payload)) payload = nil } signed, err := jws.Sign(payload, jwa.HS256, key, signOptions...) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } verified, err := jws.Verify(signed, jwa.HS256, key, verifyOptions...) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, tc.Payload, verified, `payload should match`) { return } }) } }) t.Run("Verify", func(t *testing.T) { detached := []byte(`$.02`) testcases := []struct { Name string Input []byte VerifyOptions []jws.VerifyOption Error bool }{ { Name: "JSON format", Input: []byte(`{ "protected": "eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19", "payload": "$.02", "signature": "A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY" }`), }, { Name: "JSON format (detached payload)", VerifyOptions: []jws.VerifyOption{ jws.WithDetachedPayload(detached), }, Input: []byte(`{ "protected": "eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19", "signature": "A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY" }`), }, { Name: "JSON Format (b64 does not match)", Error: true, Input: []byte(`{ "signatures": [ { "protected": "eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19", "signature": "A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY" }, { "protected": "eyJhbGciOiJIUzI1NiIsImI2NCI6dHJ1ZSwiY3JpdCI6WyJiNjQiXX0", "signature": "6BjugbC8MfrT_yy5WxWVFZrEHVPDtpdsV9u-wbzQDV8" } ], "payload":"$.02" }`), }, { Name: "Compact (detached payload)", Input: []byte(`eyJhbGciOiJIUzI1NiIsImI2NCI6ZmFsc2UsImNyaXQiOlsiYjY0Il19..A5dxf2s96_n5FLueVuW1Z_vh161FwXZC4YLPff6dmDY`), VerifyOptions: []jws.VerifyOption{ jws.WithDetachedPayload(detached), }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { payload, err := jws.Verify(tc.Input, jwa.HS256, key, tc.VerifyOptions...) if tc.Error { if !assert.Error(t, err, `jws.Verify should fail`) { return } } else { if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, detached, payload, `payload should match`) { return } } }) } }) } func TestAlgorithmsForKey(t *testing.T) { testcases := []struct { Name string Key interface{} Expected []jwa.SignatureAlgorithm }{ { Name: "Octet sequence", Key: []byte("hello"), Expected: []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512}, }, { Name: "rsa.PublicKey", Key: rsa.PublicKey{}, Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "*rsa.PublicKey", Key: &rsa.PublicKey{}, Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "jwk.RSAPublicKey", Key: jwk.NewRSAPublicKey(), Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "ecdsa.PublicKey", Key: ecdsa.PublicKey{}, Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "*ecdsa.PublicKey", Key: &ecdsa.PublicKey{}, Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "jwk.ECDSAPublicKey", Key: jwk.NewECDSAPublicKey(), Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "rsa.PrivateKey", Key: rsa.PrivateKey{}, Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "*rsa.PrivateKey", Key: &rsa.PrivateKey{}, Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "jwk.RSAPrivateKey", Key: jwk.NewRSAPrivateKey(), Expected: []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512}, }, { Name: "ecdsa.PrivateKey", Key: ecdsa.PrivateKey{}, Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "*ecdsa.PrivateKey", Key: &ecdsa.PrivateKey{}, Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "jwk.ECDSAPrivateKey", Key: jwk.NewECDSAPrivateKey(), Expected: []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512}, }, { Name: "ed25519.PublicKey", Key: ed25519.PublicKey(nil), Expected: []jwa.SignatureAlgorithm{jwa.EdDSA}, }, { Name: "x25519.PublicKey", Key: x25519.PublicKey(nil), Expected: []jwa.SignatureAlgorithm{jwa.EdDSA}, }, } for _, tc := range testcases { tc := tc if hasES256K { if strings.Contains(strings.ToLower(tc.Name), `ecdsa`) { tc.Expected = append(tc.Expected, jwa.ES256K) } } sort.Slice(tc.Expected, func(i, j int) bool { return tc.Expected[i].String() < tc.Expected[j].String() }) t.Run(tc.Name, func(t *testing.T) { algs, err := jws.AlgorithmsForKey(tc.Key) if !assert.NoError(t, err, `jws.AlgorithmsForKey should succeed`) { return } sort.Slice(algs, func(i, j int) bool { return algs[i].String() < algs[j].String() }) if !assert.Equal(t, tc.Expected, algs, `results should match`) { return } }) } } func TestGH485(t *testing.T) { const payload = `eyJhIjoiYiJ9` const protected = `eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiIsImNyaXQiOlsiZXhwIl0sImV4cCI6MCwiaXNzIjoiZm9vIiwibmJmIjowLCJpYXQiOjB9` const signature = `qM0CdRcyR4hw03J2ThJDat3Af40U87wVCF3Tp3xsyOg` const expected = `{"a":"b"}` signed := fmt.Sprintf(`{ "payload": %q, "signatures": [{"protected": %q, "signature": %q}] }`, payload, protected, signature) verified, err := jws.Verify([]byte(signed), jwa.HS256, []byte("secret")) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, expected, string(verified), `verified payload should match`) { return } compact := strings.Join([]string{protected, payload, signature}, ".") verified, err = jws.Verify([]byte(compact), jwa.HS256, []byte("secret")) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } if !assert.Equal(t, expected, string(verified), `verified payload should match`) { return } } func TestJKU(t *testing.T) { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } key.Set(jwk.KeyIDKey, `my-awesome-key`) pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } set := jwk.NewSet() set.Add(pubkey) backoffCount := 0 srv := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Query().Get(`type`) { case "backoff": backoffCount++ if backoffCount == 1 { w.WriteHeader(http.StatusInternalServerError) return } } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(set) })) defer srv.Close() payload := []byte("Lorem Ipsum") t.Run("Compact", func(t *testing.T) { testcases := []struct { Name string Error bool Query string VerifyOptions func() []jws.VerifyOption }{ { Name: "Fail without whitelist", Error: true, VerifyOptions: func() []jws.VerifyOption { return []jws.VerifyOption{ jws.WithHTTPClient(srv.Client()), } }, }, { Name: "Success", VerifyOptions: func() []jws.VerifyOption { return []jws.VerifyOption{ jws.WithFetchWhitelist(jwk.InsecureWhitelist{}), jws.WithHTTPClient(srv.Client()), } }, }, { Name: "Rejected by whitelist", Error: true, VerifyOptions: func() []jws.VerifyOption { wl := jwk.NewMapWhitelist().Add(`https://github.com/lestrrat-go/jwx`) return []jws.VerifyOption{ jws.WithFetchWhitelist(wl), jws.WithHTTPClient(srv.Client()), } }, }, { // Note: this test doesn't really test "backoff", but it tests // that jku can be fetched again upon seeing a non-200 response. // to be preceise we should be also checking for the timing, but // I think that can be deferred to the tests in jwk package Name: "Backoff", Error: false, Query: "type=backoff", VerifyOptions: func() []jws.VerifyOption { bo := backoff.NewConstantPolicy(backoff.WithInterval(500 * time.Millisecond)) return []jws.VerifyOption{ jws.WithFetchWhitelist(jwk.InsecureWhitelist{}), jws.WithFetchBackoff(bo), jws.WithHTTPClient(srv.Client()), } }, }, { Name: "JWKSetFetcher", VerifyOptions: func() []jws.VerifyOption { ar := jwk.NewAutoRefresh(context.TODO()) return []jws.VerifyOption{ jws.WithJWKSetFetcher(jws.JWKSetFetchFunc(func(u string) (jwk.Set, error) { ar.Configure(u, jwk.WithHTTPClient(srv.Client())) return ar.Fetch(context.TODO(), u) })), } }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { hdr := jws.NewHeaders() u := srv.URL if tc.Query != "" { u += "?" + tc.Query } hdr.Set(jws.JWKSetURLKey, u) signed, err := jws.Sign(payload, jwa.RS256, key, jws.WithHeaders(hdr)) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } var options []jws.VerifyOption if fn := tc.VerifyOptions; fn != nil { options = fn() } decoded, err := jws.VerifyAuto(signed, options...) if tc.Error { if !assert.Error(t, err, `jws.VerifyAuto should fail`) { return } } else { if !assert.NoError(t, err, `jws.VerifyAuto should succeed`) { return } if !assert.Equal(t, payload, decoded, `decoded payload should match`) { return } } }) } }) t.Run("JSON", func(t *testing.T) { // scenario: create a JSON message, which contains 3 signature entries. // 1st and 3rd signatures are valid, but signed using keys that are not // present in the JWKS. // Only the second signature uses a key found in the JWKS var keys []jwk.Key for i := 0; i < 3; i++ { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } key.Set(jwk.KeyIDKey, fmt.Sprintf(`used-%d`, i)) keys = append(keys, key) } var unusedKeys []jwk.Key for i := 0; i < 2; i++ { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } key.Set(jwk.KeyIDKey, fmt.Sprintf(`unused-%d`, i)) unusedKeys = append(unusedKeys, key) } // The set should contain unused key, used key, and unused key. // ...but they need to be public keys set := jwk.NewSet() for _, key := range []jwk.Key{unusedKeys[0], keys[1], unusedKeys[1]} { pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } set.Add(pubkey) } srv := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(set) })) defer srv.Close() // Sign the payload using the three keys var signOptions []jws.Option for _, key := range keys { signer, err := jws.NewSigner(jwa.RS256) if !assert.NoError(t, err, `jws.NewSigner should succeed`) { return } hdr := jws.NewHeaders() hdr.Set(jws.JWKSetURLKey, srv.URL) signOptions = append(signOptions, jws.WithSigner(signer, key, nil, hdr)) } signed, err := jws.SignMulti(payload, signOptions...) if !assert.NoError(t, err, `jws.SignMulti should succeed`) { return } testcases := []struct { Name string VerifyOptions func() []jws.VerifyOption Error bool }{ { Name: "Fail without whitelist", Error: true, }, { Name: "Success", VerifyOptions: func() []jws.VerifyOption { return []jws.VerifyOption{ jws.WithFetchWhitelist(jwk.InsecureWhitelist{}), } }, }, { Name: "Rejected by whitelist", Error: true, VerifyOptions: func() []jws.VerifyOption { wl := jwk.NewMapWhitelist().Add(`https://github.com/lestrrat-go/jwx`) return []jws.VerifyOption{ jws.WithFetchWhitelist(wl), } }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { m := jws.NewMessage() var verifyOptions []jws.VerifyOption if fn := tc.VerifyOptions; fn != nil { verifyOptions = fn() } verifyOptions = append(verifyOptions, jws.WithHTTPClient(srv.Client())) verifyOptions = append(verifyOptions, jws.WithMessage(m)) decoded, err := jws.VerifyAuto(signed, verifyOptions...) if tc.Error { if !assert.Error(t, err, `jws.VerifyAuto should fail`) { return } } else { if !assert.NoError(t, err, `jws.VerifyAuto should succeed`) { return } if !assert.Equal(t, payload, decoded, `decoded payload should match`) { return } // XXX This actally doesn't really test much, but if there was anything // wrong, the process should have failed well before reaching here if !assert.Equal(t, payload, m.Payload(), "message payload matches") { return } } }) } }) } func TestGH681(t *testing.T) { privkey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "failed to create private key") { return } buf, err := jws.Sign(nil, jwa.RS256, privkey, jws.WithDetachedPayload([]byte("Lorem ipsum"))) if !assert.NoError(t, err, "failed to sign payload") { return } _, err = jws.Verify(buf, jwa.RS256, &privkey.PublicKey, jws.WithDetachedPayload([]byte("Lorem ipsum"))) if !assert.NoError(t, err, "failed to verify JWS message") { return } } func TestEmptyProtectedField(t *testing.T) { // MEMO: this was the only test case from the original report // This passes. It should produce an invalid JWS message, but // that's not `jws.Parse`'s problem. _, err := jws.Parse([]byte(`{"signature": ""}`)) require.NoError(t, err, `jws.Parse should fail`) // Also test that non-flattened serialization passes. _, err = jws.Parse([]byte(`{"signatures": [{}]}`)) require.NoError(t, err, `jws.Parse should fail`) // MEMO: rest of the cases are present to be extra pedantic about it privKey, err := jwxtest.GenerateRsaJwk() require.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) // This fails. `jws.Parse` works, but the subsequent verification // workflow fails to verify anything without the presence of a signature or // a protected header. _, err = jws.Verify([]byte(`{"signature": ""}`), jwa.RS256, privKey) require.Error(t, err, `jws.Parse should fail`) // Create a valid signatre. signed, err := jws.Sign([]byte("Lorem Ipsum"), jwa.RS256, privKey) require.NoError(t, err, `jws.Sign should succeed`) _, payload, signature, err := jws.SplitCompact(signed) require.NoError(t, err, `jws.SplitCompact should succeed`) // This fails as well. we have a valid signature and a valid // key to verify it, but no protected headers _, err = jws.Verify( []byte(fmt.Sprintf(`{"signature": "%s"}`, signature)), jwa.RS256, privKey, ) require.Error(t, err, `jws.Verify should fail`) // Test for cases when we have an incomplete compact form JWS var buf bytes.Buffer buf.WriteRune('.') buf.Write(payload) buf.WriteRune('.') buf.Write(signature) invalidMessage := buf.Bytes() // This is an error because the format is simply wrong. // Whereas in the other JSON-based JWS's case the lack of protected field // is not a SYNTAX error, this one is, and therefore we barf. _, err = jws.Parse(invalidMessage) require.Error(t, err, `jws.Parse should fail`) } golang-github-lestrrat-go-jwx-1.2.30/jws/message.go000066400000000000000000000260721465311135100221600ustar00rootroot00000000000000package jws import ( "bytes" "context" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwk" "github.com/pkg/errors" ) type collectRawCtx struct{} func (collectRawCtx) CollectRaw() bool { return true } func NewSignature() *Signature { return &Signature{} } func (s *Signature) DecodeCtx() DecodeCtx { return s.dc } func (s *Signature) SetDecodeCtx(dc DecodeCtx) { s.dc = dc } func (s Signature) PublicHeaders() Headers { return s.headers } func (s *Signature) SetPublicHeaders(v Headers) *Signature { s.headers = v return s } func (s Signature) ProtectedHeaders() Headers { return s.protected } func (s *Signature) SetProtectedHeaders(v Headers) *Signature { s.protected = v return s } func (s Signature) Signature() []byte { return s.signature } func (s *Signature) SetSignature(v []byte) *Signature { s.signature = v return s } type signatureUnmarshalProbe struct { Header Headers `json:"header,omitempty"` Protected *string `json:"protected,omitempty"` Signature *string `json:"signature,omitempty"` } func (s *Signature) UnmarshalJSON(data []byte) error { var sup signatureUnmarshalProbe sup.Header = NewHeaders() if err := json.Unmarshal(data, &sup); err != nil { return errors.Wrap(err, `failed to unmarshal signature into temporary struct`) } s.headers = sup.Header if buf := sup.Protected; buf != nil { src := []byte(*buf) if !bytes.HasPrefix(src, []byte{'{'}) { decoded, err := base64.Decode(src) if err != nil { return errors.Wrap(err, `failed to base64 decode protected headers`) } src = decoded } prt := NewHeaders() //nolint:forcetypeassert prt.(*stdHeaders).SetDecodeCtx(s.DecodeCtx()) if err := json.Unmarshal(src, prt); err != nil { return errors.Wrap(err, `failed to unmarshal protected headers`) } //nolint:forcetypeassert prt.(*stdHeaders).SetDecodeCtx(nil) s.protected = prt } if sup.Signature != nil { decoded, err := base64.DecodeString(*sup.Signature) if err != nil { return errors.Wrap(err, `failed to base decode signature`) } s.signature = decoded } return nil } // Sign populates the signature field, with a signature generated by // given the signer object and payload. // // The first return value is the raw signature in binary format. // The second return value s the full three-segment signature // (e.g. "eyXXXX.XXXXX.XXXX") func (s *Signature) Sign(payload []byte, signer Signer, key interface{}) ([]byte, []byte, error) { ctx, cancel := context.WithCancel(context.Background()) defer cancel() hdrs, err := mergeHeaders(ctx, s.headers, s.protected) if err != nil { return nil, nil, errors.Wrap(err, `failed to merge headers`) } if err := hdrs.Set(AlgorithmKey, signer.Algorithm()); err != nil { return nil, nil, errors.Wrap(err, `failed to set "alg"`) } // If the key is a jwk.Key instance, obtain the raw key if jwkKey, ok := key.(jwk.Key); ok { // If we have a key ID specified by this jwk.Key, use that in the header if kid := jwkKey.KeyID(); kid != "" { if err := hdrs.Set(jwk.KeyIDKey, kid); err != nil { return nil, nil, errors.Wrap(err, `set key ID from jwk.Key`) } } } hdrbuf, err := json.Marshal(hdrs) if err != nil { return nil, nil, errors.Wrap(err, `failed to marshal headers`) } buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteString(base64.EncodeToString(hdrbuf)) buf.WriteByte('.') var plen int b64 := getB64Value(hdrs) if b64 { encoded := base64.EncodeToString(payload) plen = len(encoded) buf.WriteString(encoded) } else { if !s.detached { if bytes.Contains(payload, []byte{'.'}) { return nil, nil, errors.New(`payload must not contain a "."`) } } plen = len(payload) buf.Write(payload) } signature, err := signer.Sign(buf.Bytes(), key) if err != nil { return nil, nil, errors.Wrap(err, `failed to sign payload`) } s.signature = signature // Detached payload, this should be removed from the end result if s.detached { buf.Truncate(buf.Len() - plen) } buf.WriteByte('.') buf.WriteString(base64.EncodeToString(signature)) ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return signature, ret, nil } func NewMessage() *Message { return &Message{} } // Clears the internal raw buffer that was accumulated during // the verify phase func (m *Message) clearRaw() { for _, sig := range m.signatures { if protected := sig.protected; protected != nil { if cr, ok := protected.(*stdHeaders); ok { cr.raw = nil } } } } func (m *Message) SetDecodeCtx(dc DecodeCtx) { m.dc = dc } func (m *Message) DecodeCtx() DecodeCtx { return m.dc } // Payload returns the decoded payload func (m Message) Payload() []byte { return m.payload } func (m *Message) SetPayload(v []byte) *Message { m.payload = v return m } func (m Message) Signatures() []*Signature { return m.signatures } func (m *Message) AppendSignature(v *Signature) *Message { m.signatures = append(m.signatures, v) return m } func (m *Message) ClearSignatures() *Message { m.signatures = nil return m } // LookupSignature looks up a particular signature entry using // the `kid` value func (m Message) LookupSignature(kid string) []*Signature { var sigs []*Signature for _, sig := range m.signatures { if hdr := sig.PublicHeaders(); hdr != nil { hdrKeyID := hdr.KeyID() if hdrKeyID == kid { sigs = append(sigs, sig) continue } } if hdr := sig.ProtectedHeaders(); hdr != nil { hdrKeyID := hdr.KeyID() if hdrKeyID == kid { sigs = append(sigs, sig) continue } } } return sigs } // This struct is used to first probe for the structure of the // incoming JSON object. We then decide how to parse it // from the fields that are populated. type messageUnmarshalProbe struct { Payload *string `json:"payload"` Signatures []json.RawMessage `json:"signatures,omitempty"` Header Headers `json:"header,omitempty"` Protected *string `json:"protected,omitempty"` Signature *string `json:"signature,omitempty"` } func (m *Message) UnmarshalJSON(buf []byte) error { m.payload = nil m.signatures = nil m.b64 = true var mup messageUnmarshalProbe mup.Header = NewHeaders() if err := json.Unmarshal(buf, &mup); err != nil { return errors.Wrap(err, `failed to unmarshal into temporary structure`) } b64 := true if mup.Signature == nil { // flattened signature is NOT present if len(mup.Signatures) == 0 { return errors.New(`required field "signatures" not present`) } m.signatures = make([]*Signature, 0, len(mup.Signatures)) for i, rawsig := range mup.Signatures { var sig Signature sig.SetDecodeCtx(m.DecodeCtx()) if err := json.Unmarshal(rawsig, &sig); err != nil { return errors.Wrapf(err, `failed to unmarshal signature #%d`, i+1) } sig.SetDecodeCtx(nil) if sig.protected == nil { // Instead of barfing on a nil protected header, use an empty header sig.protected = NewHeaders() } if i == 0 { if !getB64Value(sig.protected) { b64 = false } } else { if b64 != getB64Value(sig.protected) { return errors.Errorf(`b64 value must be the same for all signatures`) } } m.signatures = append(m.signatures, &sig) } } else { // .signature is present, it's a flattened structure if len(mup.Signatures) != 0 { return errors.New(`invalid format ("signatures" and "signature" keys cannot both be present)`) } var sig Signature sig.headers = mup.Header if src := mup.Protected; src != nil { decoded, err := base64.DecodeString(*src) if err != nil { return errors.Wrap(err, `failed to base64 decode flattened protected headers`) } prt := NewHeaders() //nolint:forcetypeassert prt.(*stdHeaders).SetDecodeCtx(m.DecodeCtx()) if err := json.Unmarshal(decoded, prt); err != nil { return errors.Wrap(err, `failed to unmarshal flattened protected headers`) } //nolint:forcetypeassert prt.(*stdHeaders).SetDecodeCtx(nil) sig.protected = prt } if sig.protected == nil { // Instead of barfing on a nil protected header, use an empty header sig.protected = NewHeaders() } decoded, err := base64.DecodeString(*mup.Signature) if err != nil { return errors.Wrap(err, `failed to base64 decode flattened signature`) } sig.signature = decoded m.signatures = []*Signature{&sig} b64 = getB64Value(sig.protected) } if mup.Payload != nil { if !b64 { // NOT base64 encoded m.payload = []byte(*mup.Payload) } else { decoded, err := base64.DecodeString(*mup.Payload) if err != nil { return errors.Wrap(err, `failed to base64 decode payload`) } m.payload = decoded } } m.b64 = b64 return nil } func (m Message) MarshalJSON() ([]byte, error) { if len(m.signatures) == 1 { return m.marshalFlattened() } return m.marshalFull() } func (m Message) marshalFlattened() ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) sig := m.signatures[0] buf.WriteRune('{') var wrote bool if hdr := sig.headers; hdr != nil { hdrjs, err := hdr.MarshalJSON() if err != nil { return nil, errors.Wrap(err, `failed to marshal "header" (flattened format)`) } buf.WriteString(`"header":`) buf.Write(hdrjs) wrote = true } if wrote { buf.WriteRune(',') } buf.WriteString(`"payload":"`) buf.WriteString(base64.EncodeToString(m.payload)) buf.WriteRune('"') if protected := sig.protected; protected != nil { protectedbuf, err := protected.MarshalJSON() if err != nil { return nil, errors.Wrap(err, `failed to marshal "protected" (flattened format)`) } buf.WriteString(`,"protected":"`) buf.WriteString(base64.EncodeToString(protectedbuf)) buf.WriteRune('"') } buf.WriteString(`,"signature":"`) buf.WriteString(base64.EncodeToString(sig.signature)) buf.WriteRune('"') buf.WriteRune('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (m Message) marshalFull() ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteString(`{"payload":"`) buf.WriteString(base64.EncodeToString(m.payload)) buf.WriteString(`","signatures":[`) for i, sig := range m.signatures { if i > 0 { buf.WriteRune(',') } buf.WriteRune('{') var wrote bool if hdr := sig.headers; hdr != nil { hdrbuf, err := hdr.MarshalJSON() if err != nil { return nil, errors.Wrapf(err, `failed to marshal "header" for signature #%d`, i+1) } buf.WriteString(`"header":`) buf.Write(hdrbuf) wrote = true } if protected := sig.protected; protected != nil { protectedbuf, err := protected.MarshalJSON() if err != nil { return nil, errors.Wrapf(err, `failed to marshal "protected" for signature #%d`, i+1) } if wrote { buf.WriteRune(',') } buf.WriteString(`"protected":"`) buf.WriteString(base64.EncodeToString(protectedbuf)) buf.WriteRune('"') wrote = true } if wrote { buf.WriteRune(',') } buf.WriteString(`"signature":"`) buf.WriteString(base64.EncodeToString(sig.signature)) buf.WriteString(`"}`) } buf.WriteString(`]}`) ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } golang-github-lestrrat-go-jwx-1.2.30/jws/message_test.go000066400000000000000000000104721465311135100232140ustar00rootroot00000000000000package jws_test import ( "testing" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jws" "github.com/stretchr/testify/assert" ) func TestMessage(t *testing.T) { t.Run("JSON", func(t *testing.T) { const src = `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "signatures": [ { "header": { "kid": "2010-12-29" }, "protected": "eyJhbGciOiJSUzI1NiJ9", "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw" }, { "header": { "kid": "e9bc097a-ce51-4036-9562-d2ade882db0d" }, "protected": "eyJhbGciOiJFUzI1NiJ9", "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" } ] }` var m jws.Message if !assert.NoError(t, json.Unmarshal([]byte(src), &m), `json.Unmarshal should succeed`) { return } buf, err := json.MarshalIndent(m, "", " ") if !assert.NoError(t, err, `json.Marshal should succeed`) { return } if !assert.Equal(t, src, string(buf), `roundtrip should match`) { return } }) t.Run("Construction/Manipulation", func(t *testing.T) { const payload = `eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ` const encodedSig1 = `cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw` const encodedSig2 = "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" decodedPayload, err := base64.DecodeString(payload) if !assert.NoError(t, err, `base64.DecodeString should succeed (payload)`) { return } decodedSig1, err := base64.DecodeString(encodedSig1) if !assert.NoError(t, err, `base64.DecodeString should succeed (sig1)`) { return } decodedSig2, err := base64.DecodeString(encodedSig2) if !assert.NoError(t, err, `base64.DecodeString should succeed (sig2)`) { return } public1 := jws.NewHeaders() _ = public1.Set(jws.AlgorithmKey, jwa.RS256) protected1 := jws.NewHeaders() _ = protected1.Set(jws.KeyIDKey, "2010-12-29") public2 := jws.NewHeaders() _ = public2.Set(jws.AlgorithmKey, jwa.ES256) protected2 := jws.NewHeaders() _ = protected2.Set(jws.KeyIDKey, "e9bc097a-ce51-4036-9562-d2ade882db0d") m := jws.NewMessage(). SetPayload(decodedPayload). AppendSignature( jws.NewSignature(). SetSignature(decodedSig1). SetProtectedHeaders(public1). SetPublicHeaders(protected1), ). AppendSignature( jws.NewSignature(). SetSignature(decodedSig2). SetProtectedHeaders(public2). SetPublicHeaders(protected2), ) const expected = `{ "payload": "eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ", "signatures": [ { "header": { "kid": "2010-12-29" }, "protected": "eyJhbGciOiJSUzI1NiJ9", "signature": "cC4hiUPoj9Eetdgtv3hF80EGrhuB__dzERat0XF9g2VtQgr9PJbu3XOiZj5RZmh7AAuHIm4Bh-0Qc_lF5YKt_O8W2Fp5jujGbds9uJdbF9CUAr7t1dnZcAcQjbKBYNX4BAynRFdiuB--f_nZLgrnbyTyWzO75vRK5h6xBArLIARNPvkSjtQBMHlb1L07Qe7K0GarZRmB_eSN9383LcOLn6_dO--xi12jzDwusC-eOkHWEsqtFZESc6BfI7noOPqvhJ1phCnvWh6IeYI2w9QOYEUipUTI8np6LbgGY9Fs98rqVt5AXLIhWkWywlVmtVrBp0igcN_IoypGlUPQGe77Rw" }, { "header": { "kid": "e9bc097a-ce51-4036-9562-d2ade882db0d" }, "protected": "eyJhbGciOiJFUzI1NiJ9", "signature": "DtEhU3ljbEg8L38VWAfUAqOyKAM6-Xx-F4GawxaepmXFCgfTjDxw5djxLa8ISlSApmWQxfKTUJqPP3-Kg6NU1Q" } ] }` buf, err := json.MarshalIndent(m, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } if !assert.Equal(t, expected, string(buf), `output should match`) { return } }) } golang-github-lestrrat-go-jwx-1.2.30/jws/option.go000066400000000000000000000063331465311135100220420ustar00rootroot00000000000000package jws import ( "net/http" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/option" ) type Option = option.Interface type identPayloadSigner struct{} type identDetachedPayload struct{} type identHeaders struct{} type identMessage struct{} type identFetchBackoff struct{} type identFetchWhitelist struct{} type identHTTPClient struct{} type identJWKSetFetcher struct{} func WithSigner(signer Signer, key interface{}, public, protected Headers) Option { return option.New(identPayloadSigner{}, &payloadSigner{ signer: signer, key: key, protected: protected, public: public, }) } type SignOption interface { Option signOption() } type signOption struct { Option } func (*signOption) signOption() {} // WithHeaders allows you to specify extra header values to include in the // final JWS message func WithHeaders(h Headers) SignOption { return &signOption{option.New(identHeaders{}, h)} } // VerifyOption describes an option that can be passed to the jws.Verify function type VerifyOption interface { Option verifyOption() } type verifyOption struct { Option } func (*verifyOption) verifyOption() {} // WithMessage can be passed to Verify() to obtain the jws.Message upon // a successful verification. func WithMessage(m *Message) VerifyOption { return &verifyOption{option.New(identMessage{}, m)} } type SignVerifyOption interface { SignOption VerifyOption } type signVerifyOption struct { Option } func (*signVerifyOption) signOption() {} func (*signVerifyOption) verifyOption() {} // WithDetachedPayload can be used to both sign or verify a JWS message with a // detached payload. // // When this option is used for `jws.Sign()`, the first parameter (normally the payload) // must be set to `nil`. // // If you have to verify using this option, you should know exactly how and why this works. func WithDetachedPayload(v []byte) SignVerifyOption { return &signVerifyOption{option.New(identDetachedPayload{}, v)} } // WithFetchWhitelist specifies the whitelist object to be passed // to `jwk.Fetch()` when `jws.VerifyAuto()` is used. If you do not // specify a whitelist, `jws.VerifyAuto()` will ALWAYS fail. // // This option is ignored if WithJWKSetFetcher is specified. func WithFetchWhitelist(wl jwk.Whitelist) VerifyOption { return &verifyOption{option.New(identFetchWhitelist{}, wl)} } // WithFetchBackoff specifies the backoff.Policy object to be passed // to `jwk.Fetch()` when `jws.VerifyAuto()` is used. // // This option is ignored if WithJWKSetFetcher is specified. func WithFetchBackoff(b backoff.Policy) VerifyOption { return &verifyOption{option.New(identFetchBackoff{}, b)} } // WithHTTPClient specifies the *http.Client object to be passed // to `jwk.Fetch()` when `jws.VerifyAuto()` is used. // // This option is ignored if WithJWKSetFetcher is specified. func WithHTTPClient(httpcl *http.Client) VerifyOption { return &verifyOption{option.New(identHTTPClient{}, httpcl)} } // WithJWKSetFetcher specifies the JWKSetFetcher object to be // used when `jws.VerifyAuto()`, for example, to use `jwk.AutoRefetch` // instead of the default `jwk.Fetch()` func WithJWKSetFetcher(f JWKSetFetcher) VerifyOption { return &verifyOption{option.New(identJWKSetFetcher{}, f)} } golang-github-lestrrat-go-jwx-1.2.30/jws/rsa.go000066400000000000000000000060621465311135100213160ustar00rootroot00000000000000package jws import ( "crypto" "crypto/rand" "crypto/rsa" "github.com/lestrrat-go/jwx/internal/keyconv" "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) var rsaSigners map[jwa.SignatureAlgorithm]*rsaSigner var rsaVerifiers map[jwa.SignatureAlgorithm]*rsaVerifier func init() { algs := map[jwa.SignatureAlgorithm]struct { Hash crypto.Hash PSS bool }{ jwa.RS256: { Hash: crypto.SHA256, }, jwa.RS384: { Hash: crypto.SHA384, }, jwa.RS512: { Hash: crypto.SHA512, }, jwa.PS256: { Hash: crypto.SHA256, PSS: true, }, jwa.PS384: { Hash: crypto.SHA384, PSS: true, }, jwa.PS512: { Hash: crypto.SHA512, PSS: true, }, } rsaSigners = make(map[jwa.SignatureAlgorithm]*rsaSigner) rsaVerifiers = make(map[jwa.SignatureAlgorithm]*rsaVerifier) for alg, item := range algs { rsaSigners[alg] = &rsaSigner{ alg: alg, hash: item.Hash, pss: item.PSS, } rsaVerifiers[alg] = &rsaVerifier{ alg: alg, hash: item.Hash, pss: item.PSS, } } } type rsaSigner struct { alg jwa.SignatureAlgorithm hash crypto.Hash pss bool } func newRSASigner(alg jwa.SignatureAlgorithm) Signer { return rsaSigners[alg] } func (rs *rsaSigner) Algorithm() jwa.SignatureAlgorithm { return rs.alg } func (rs *rsaSigner) Sign(payload []byte, key interface{}) ([]byte, error) { if key == nil { return nil, errors.New(`missing private key while signing payload`) } signer, ok := key.(crypto.Signer) if !ok { var privkey rsa.PrivateKey if err := keyconv.RSAPrivateKey(&privkey, key); err != nil { return nil, errors.Wrapf(err, `failed to retrieve rsa.PrivateKey out of %T`, key) } signer = &privkey } h := rs.hash.New() if _, err := h.Write(payload); err != nil { return nil, errors.Wrap(err, "failed to write payload to hash") } if rs.pss { return signer.Sign(rand.Reader, h.Sum(nil), &rsa.PSSOptions{ Hash: rs.hash, SaltLength: rsa.PSSSaltLengthEqualsHash, }) } return signer.Sign(rand.Reader, h.Sum(nil), rs.hash) } type rsaVerifier struct { alg jwa.SignatureAlgorithm hash crypto.Hash pss bool } func newRSAVerifier(alg jwa.SignatureAlgorithm) Verifier { return rsaVerifiers[alg] } func (rv *rsaVerifier) Verify(payload, signature []byte, key interface{}) error { if key == nil { return errors.New(`missing public key while verifying payload`) } var pubkey rsa.PublicKey if cs, ok := key.(crypto.Signer); ok { cpub := cs.Public() switch cpub := cpub.(type) { case rsa.PublicKey: pubkey = cpub case *rsa.PublicKey: pubkey = *cpub default: return errors.Errorf(`failed to retrieve rsa.PublicKey out of crypto.Signer %T`, key) } } else { if err := keyconv.RSAPublicKey(&pubkey, key); err != nil { return errors.Wrapf(err, `failed to retrieve rsa.PublicKey out of %T`, key) } } h := rv.hash.New() if _, err := h.Write(payload); err != nil { return errors.Wrap(err, "failed to write payload to hash") } if rv.pss { return rsa.VerifyPSS(&pubkey, rv.hash, h.Sum(nil), signature, nil) } return rsa.VerifyPKCS1v15(&pubkey, rv.hash, h.Sum(nil), signature) } golang-github-lestrrat-go-jwx-1.2.30/jws/signer.go000066400000000000000000000036441465311135100220230ustar00rootroot00000000000000package jws import ( "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) type SignerFactory interface { Create() (Signer, error) } type SignerFactoryFn func() (Signer, error) func (fn SignerFactoryFn) Create() (Signer, error) { return fn() } var signerDB map[jwa.SignatureAlgorithm]SignerFactory // RegisterSigner is used to register a factory object that creates // Signer objects based on the given algorithm. // // For example, if you would like to provide a custom signer for // jwa.EdDSA, use this function to register a `SignerFactory` // (probably in your `init()`) func RegisterSigner(alg jwa.SignatureAlgorithm, f SignerFactory) { signerDB[alg] = f } func init() { signerDB = make(map[jwa.SignatureAlgorithm]SignerFactory) for _, alg := range []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512} { RegisterSigner(alg, func(alg jwa.SignatureAlgorithm) SignerFactory { return SignerFactoryFn(func() (Signer, error) { return newRSASigner(alg), nil }) }(alg)) } for _, alg := range []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512, jwa.ES256K} { RegisterSigner(alg, func(alg jwa.SignatureAlgorithm) SignerFactory { return SignerFactoryFn(func() (Signer, error) { return newECDSASigner(alg), nil }) }(alg)) } for _, alg := range []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512} { RegisterSigner(alg, func(alg jwa.SignatureAlgorithm) SignerFactory { return SignerFactoryFn(func() (Signer, error) { return newHMACSigner(alg), nil }) }(alg)) } RegisterSigner(jwa.EdDSA, SignerFactoryFn(func() (Signer, error) { return newEdDSASigner(), nil })) } // NewSigner creates a signer that signs payloads using the given signature algorithm. func NewSigner(alg jwa.SignatureAlgorithm) (Signer, error) { f, ok := signerDB[alg] if ok { return f.Create() } return nil, errors.Errorf(`unsupported signature algorithm "%s"`, alg) } golang-github-lestrrat-go-jwx-1.2.30/jws/signer_test.go000066400000000000000000000047711465311135100230640ustar00rootroot00000000000000package jws_test import ( "strings" "testing" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jws" "github.com/stretchr/testify/assert" ) func TestSign(t *testing.T) { t.Parallel() t.Run("Bad algorithm", func(t *testing.T) { t.Parallel() _, err := jws.Sign([]byte(nil), jwa.SignatureAlgorithm("FooBar"), nil) if !assert.Error(t, err, "Unknown algorithm should return error") { return } }) t.Run("No private key", func(t *testing.T) { t.Parallel() _, err := jws.Sign([]byte{'a', 'b', 'c'}, jwa.RS256, nil) if !assert.Error(t, err, "Sign with no private key should return error") { return } }) t.Run("RSA verify with no public key", func(t *testing.T) { t.Parallel() _, err := jws.Verify([]byte(nil), jwa.RS256, nil) if !assert.Error(t, err, "Verify with no private key should return error") { return } }) t.Run("RSA roundtrip", func(t *testing.T) { t.Parallel() rsakey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "RSA key generated") { return } signer, err := jws.NewSigner(jwa.RS256) if !assert.NoError(t, err, `creating a signer should succeed`) { return } payload := []byte("Hello, world") signed, err := signer.Sign(payload, rsakey) if !assert.NoError(t, err, "Payload signed") { return } verifier, err := jws.NewVerifier(jwa.RS256) if !assert.NoError(t, err, "creating a verifier should succeed") { return } if !assert.NoError(t, verifier.Verify(payload, signed, &rsakey.PublicKey), "Payload verified") { return } }) } func TestSignMulti(t *testing.T) { rsakey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "RSA key generated") { return } dsakey, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, "ECDSA key generated") { return } s1, err := jws.NewSigner(jwa.RS256) if !assert.NoError(t, err, "RSA Signer created") { return } s1hdr := jws.NewHeaders() s1hdr.Set(jws.KeyIDKey, "2010-12-29") s2, err := jws.NewSigner(jwa.ES256) if !assert.NoError(t, err, "DSA Signer created") { return } s2hdr := jws.NewHeaders() s2hdr.Set(jws.KeyIDKey, "e9bc097a-ce51-4036-9562-d2ade882db0d") v := strings.Join([]string{`{"iss":"joe",`, ` "exp":1300819380,`, ` "http://example.com/is_root":true}`}, "\r\n") m, err := jws.SignMulti([]byte(v), jws.WithSigner(s1, rsakey, s1hdr, nil), jws.WithSigner(s2, dsakey, s2hdr, nil), ) if !assert.NoError(t, err, "jws.SignMulti should succeed") { return } t.Logf("%s", m) } golang-github-lestrrat-go-jwx-1.2.30/jws/verifier.go000066400000000000000000000037661465311135100223540ustar00rootroot00000000000000package jws import ( "github.com/lestrrat-go/jwx/jwa" "github.com/pkg/errors" ) type VerifierFactory interface { Create() (Verifier, error) } type VerifierFactoryFn func() (Verifier, error) func (fn VerifierFactoryFn) Create() (Verifier, error) { return fn() } var verifierDB map[jwa.SignatureAlgorithm]VerifierFactory // RegisterVerifier is used to register a factory object that creates // Verifier objects based on the given algorithm. // // For example, if you would like to provide a custom verifier for // jwa.EdDSA, use this function to register a `VerifierFactory` // (probably in your `init()`) func RegisterVerifier(alg jwa.SignatureAlgorithm, f VerifierFactory) { verifierDB[alg] = f } func init() { verifierDB = make(map[jwa.SignatureAlgorithm]VerifierFactory) for _, alg := range []jwa.SignatureAlgorithm{jwa.RS256, jwa.RS384, jwa.RS512, jwa.PS256, jwa.PS384, jwa.PS512} { RegisterVerifier(alg, func(alg jwa.SignatureAlgorithm) VerifierFactory { return VerifierFactoryFn(func() (Verifier, error) { return newRSAVerifier(alg), nil }) }(alg)) } for _, alg := range []jwa.SignatureAlgorithm{jwa.ES256, jwa.ES384, jwa.ES512, jwa.ES256K} { RegisterVerifier(alg, func(alg jwa.SignatureAlgorithm) VerifierFactory { return VerifierFactoryFn(func() (Verifier, error) { return newECDSAVerifier(alg), nil }) }(alg)) } for _, alg := range []jwa.SignatureAlgorithm{jwa.HS256, jwa.HS384, jwa.HS512} { RegisterVerifier(alg, func(alg jwa.SignatureAlgorithm) VerifierFactory { return VerifierFactoryFn(func() (Verifier, error) { return newHMACVerifier(alg), nil }) }(alg)) } RegisterVerifier(jwa.EdDSA, VerifierFactoryFn(func() (Verifier, error) { return newEdDSAVerifier(), nil })) } // NewVerifier creates a verifier that signs payloads using the given signature algorithm. func NewVerifier(alg jwa.SignatureAlgorithm) (Verifier, error) { f, ok := verifierDB[alg] if ok { return f.Create() } return nil, errors.Errorf(`unsupported signature algorithm "%s"`, alg) } golang-github-lestrrat-go-jwx-1.2.30/jwt/000077500000000000000000000000001465311135100201775ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/README.md000066400000000000000000000166601465311135100214670ustar00rootroot00000000000000# JWT [![Go Reference](https://pkg.go.dev/badge/github.com/lestrrat-go/jwx/jwt.svg)](https://pkg.go.dev/github.com/lestrrat-go/jwx/jwt) Package jwt implements JSON Web Tokens as described in [RFC7519](https://tools.ietf.org/html/rfc7519). * Convenience methods for oft-used keys ("aud", "sub", "iss", etc) * Convenience functions to extract/parse from http.Request, http.Header, url.Values * Ability to Get/Set arbitrary keys * Conversion to and from JSON * Generate signed tokens * Verify signed tokens * Extra support for OpenID tokens via [github.com/lestrrat-go/jwx/jwt/openid](./jwt/openid) How-to style documentation can be found in the [docs directory](../docs). More examples are located in the examples directory ([jwt_example_test.go](../examples/jwt_example_test.go)) # SYNOPSIS ## Verify a signed JWT ```go token, err := jwt.Parse(payload, jwt.WithKeySet(keyset)) if err != nil { fmt.Printf("failed to parse payload: %s\n", err) } ``` ## Token Usage ```go func ExampleJWT() { const aLongLongTimeAgo = 233431200 t := jwt.New() t.Set(jwt.SubjectKey, `https://github.com/lestrrat-go/jwx/jwt`) t.Set(jwt.AudienceKey, `Golang Users`) t.Set(jwt.IssuedAtKey, time.Unix(aLongLongTimeAgo, 0)) t.Set(`privateClaimKey`, `Hello, World!`) buf, err := json.MarshalIndent(t, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) fmt.Printf("aud -> '%s'\n", t.Audience()) fmt.Printf("iat -> '%s'\n", t.IssuedAt().Format(time.RFC3339)) if v, ok := t.Get(`privateClaimKey`); ok { fmt.Printf("privateClaimKey -> '%s'\n", v) } fmt.Printf("sub -> '%s'\n", t.Subject()) key, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { log.Printf("failed to generate private key: %s", err) return } { // Signing a token (using raw rsa.PrivateKey) signed, err := jwt.Sign(t, jwa.RS256, key) if err != nil { log.Printf("failed to sign token: %s", err) return } _ = signed } { // Signing a token (using JWK) jwkKey, err := jwk.New(key) if err != nil { log.Printf("failed to create JWK key: %s", err) return } signed, err := jwt.Sign(t, jwa.RS256, jwkKey) if err != nil { log.Printf("failed to sign token: %s", err) return } _ = signed } } ``` ## OpenID Claims `jwt` package can work with token types other than the default one. For OpenID claims, use the token created by `openid.New()`, or use the `jwt.WithToken(openid.New())`. If you need to use other specialized claims, use `jwt.WithToken()` to specify the exact token type ```go func Example_openid() { const aLongLongTimeAgo = 233431200 t := openid.New() t.Set(jwt.SubjectKey, `https://github.com/lestrrat-go/jwx/jwt`) t.Set(jwt.AudienceKey, `Golang Users`) t.Set(jwt.IssuedAtKey, time.Unix(aLongLongTimeAgo, 0)) t.Set(`privateClaimKey`, `Hello, World!`) addr := openid.NewAddress() addr.Set(openid.AddressPostalCodeKey, `105-0011`) addr.Set(openid.AddressCountryKey, `日本`) addr.Set(openid.AddressRegionKey, `東京都`) addr.Set(openid.AddressLocalityKey, `港区`) addr.Set(openid.AddressStreetAddressKey, `芝公園 4-2-8`) t.Set(openid.AddressKey, addr) buf, err := json.MarshalIndent(t, "", " ") if err != nil { fmt.Printf("failed to generate JSON: %s\n", err) return } fmt.Printf("%s\n", buf) t2, err := jwt.Parse(buf, jwt.WithToken(openid.New())) if err != nil { fmt.Printf("failed to parse JSON: %s\n", err) return } if _, ok := t2.(openid.Token); !ok { fmt.Printf("using jwt.WithToken(openid.New()) creates an openid.Token instance") return } } ``` # FAQ ## Why is `jwt.Token` an interface? In this package, `jwt.Token` is an interface. This is not an arbitrary choice: there are actual reason for the type being an interface. We understand that if you are migrating from another library this may be a deal breaker, but we hope you can at least appreciate the fact that this was not done arbitrarily, and that there were real technical trade offs that were evaluated. ### No uninitialized tokens First and foremost, by making it an interface, you cannot use an uninitialized token: ```go var token1 jwt.Token // this is nil, you can't just start using this if err := json.Unmarshal(data, &token1); err != nil { // so you can't do this ... } // But you _can_ do this, and we _want_ you to do this so the object is properly initialized token2 = jwt.New() if err := json.Unmarshal(data, &token2); err != nil { // actually, in practice you should use jwt.Parse() .... } ``` ### But why does it need to be initialized? There are several reasons, but one of the reasons is that I'm using a sync.Mutex to avoid races. We want this to be properly initialized. The other reason is that we support custom claims out of the box. The `map[string]interface{}` container is initialized during new. This is important when checking for equality using reflect-y methods (akin to `reflect.DeepEqual`), because if you allowed zero values, you could end up with "empty" tokens, that actually differ. Consider the following: ```go // assume jwt.Token was s struct, not an interface token1 := jwt.Token{ privateClaims: make(map[string]interface{}) } token2 := jwt.Token{ privateClaims: nil } ``` These are semantically equivalent, but users would need to be aware of this difference when comparing values. By forcing the user to use a constructor, we can force a uniform empty state. ### Standard way to store values Unlike some other libraries, this library allows you to store standard claims and non-standard claims in the same token. You _want_ to store standard claims in a properly typed field, which we do for fields like "iss", "nbf", etc. But for non-standard claims, there is just no way of doing this, so we _have_ to use a container like `map[string]interface{}` This means that if you allow direct access to these fields via a struct, you will have two different ways to access the claims, which is confusing: ```go tok.Issuer = ... tok.PrivateClaims["foo"] = ... ``` So we want to hide where this data is stored, and use a standard method like `Set()` and `Get()` to store all the values. At this point you are effectively going to hide the implementation detail from the user, so you end up with a struct like below, which is fundamentally not so different from providing just an interface{}: ```go type Token struct { // unexported fields } func (tok *Token) Set(...) { ... } ``` ### Use of pointers to store values We wanted to differentiate the state between a claim being uninitialized, and a claim being initialized to empty. So we use pointers to store values: ```go type stdToken struct { .... issuer *string // if nil, uninitialized. if &(""), initialized to empty } ``` This is fine for us, but we doubt that this would be something users would want to do. This is a subtle difference, but cluttering up the API with slight variations of the same type (i.e. pointers vs non-pointers) seemed like a bad idea to us. ```go token.Issuer = &issuer // want to avoid this token.Set(jwt.IssuerKey, "foobar") // so this is what we picked ``` This way users no longer need to care how the data is internally stored. ### Allow more than one type of token through the same interface `dgrijalva/jwt-go` does this in a different way, but we felt that it would be more intuitive for all tokens to follow a single interface so there is fewer type conversions required. See the `openid` token for an example. golang-github-lestrrat-go-jwx-1.2.30/jwt/builder_gen.go000066400000000000000000000035061465311135100230110ustar00rootroot00000000000000// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT package jwt import ( "time" "github.com/pkg/errors" ) // Builder is a convenience wrapper around the New() constructor // and the Set() methods to assign values to Token claims. // Users can successively call Claim() on the Builder, and have it // construct the Token when Build() is called. This alleviates the // need for the user to check for the return value of every single // Set() method call. // Note that each call to Claim() overwrites the value set from the // previous call. type Builder struct { claims []*ClaimPair } func NewBuilder() *Builder { return &Builder{} } func (b *Builder) Claim(name string, value interface{}) *Builder { b.claims = append(b.claims, &ClaimPair{Key: name, Value: value}) return b } func (b *Builder) Audience(v []string) *Builder { return b.Claim(AudienceKey, v) } func (b *Builder) Expiration(v time.Time) *Builder { return b.Claim(ExpirationKey, v) } func (b *Builder) IssuedAt(v time.Time) *Builder { return b.Claim(IssuedAtKey, v) } func (b *Builder) Issuer(v string) *Builder { return b.Claim(IssuerKey, v) } func (b *Builder) JwtID(v string) *Builder { return b.Claim(JwtIDKey, v) } func (b *Builder) NotBefore(v time.Time) *Builder { return b.Claim(NotBeforeKey, v) } func (b *Builder) Subject(v string) *Builder { return b.Claim(SubjectKey, v) } // Build creates a new token based on the claims that the builder has received // so far. If a claim cannot be set, then the method returns a nil Token with // a en error as a second return value func (b *Builder) Build() (Token, error) { tok := New() for _, claim := range b.claims { if err := tok.Set(claim.Key.(string), claim.Value); err != nil { return nil, errors.Wrapf(err, `failed to set claim %q`, claim.Key.(string)) } } return tok, nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/gen.sh000077500000000000000000000002731465311135100213110ustar00rootroot00000000000000#!/bin/bash pushd internal/cmd/gentoken go build -o gentoken main.go popd ./internal/cmd/gentoken/gentoken -objects=internal/cmd/gentoken/objects.yml rm internal/cmd/gentoken/gentoken golang-github-lestrrat-go-jwx-1.2.30/jwt/http.go000066400000000000000000000113621465311135100215100ustar00rootroot00000000000000package jwt import ( "net/http" "net/url" "strconv" "strings" "github.com/lestrrat-go/jwx/internal/pool" "github.com/pkg/errors" ) // ParseHeader parses a JWT stored in a http.Header. // // For the header "Authorization", it will strip the prefix "Bearer " and will // treat the remaining value as a JWT. func ParseHeader(hdr http.Header, name string, options ...ParseOption) (Token, error) { key := http.CanonicalHeaderKey(name) v := strings.TrimSpace(hdr.Get(key)) if v == "" { return nil, errors.Errorf(`empty header (%s)`, key) } if key == "Authorization" { // Authorization header is an exception. We strip the "Bearer " from // the prefix v = strings.TrimSpace(strings.TrimPrefix(v, "Bearer")) } return ParseString(v, options...) } // ParseForm parses a JWT stored in a url.Value. func ParseForm(values url.Values, name string, options ...ParseOption) (Token, error) { v := strings.TrimSpace(values.Get(name)) if v == "" { return nil, errors.Errorf(`empty value (%s)`, name) } return ParseString(v, options...) } // ParseRequest searches a http.Request object for a JWT token. // // Specifying WithHeaderKey() will tell it to search under a specific // header key. Specifying WithFormKey() will tell it to search under // a specific form field. // // By default, "Authorization" header will be searched. // // If WithHeaderKey() is used, you must explicitly re-enable searching for "Authorization" header. // // # searches for "Authorization" // jwt.ParseRequest(req) // // # searches for "x-my-token" ONLY. // jwt.ParseRequest(req, jwt.WithHeaderKey("x-my-token")) // // # searches for "Authorization" AND "x-my-token" // jwt.ParseRequest(req, jwt.WithHeaderKey("Authorization"), jwt.WithHeaderKey("x-my-token")) func ParseRequest(req *http.Request, options ...ParseOption) (Token, error) { var hdrkeys []string var formkeys []string var parseOptions []ParseOption for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identHeaderKey{}: hdrkeys = append(hdrkeys, option.Value().(string)) case identFormKey{}: formkeys = append(formkeys, option.Value().(string)) default: parseOptions = append(parseOptions, option) } } if len(hdrkeys) == 0 { hdrkeys = append(hdrkeys, "Authorization") } mhdrs := pool.GetKeyToErrorMap() defer pool.ReleaseKeyToErrorMap(mhdrs) mfrms := pool.GetKeyToErrorMap() defer pool.ReleaseKeyToErrorMap(mfrms) for _, hdrkey := range hdrkeys { // Check presence via a direct map lookup if _, ok := req.Header[http.CanonicalHeaderKey(hdrkey)]; !ok { // if non-existent, not error continue } tok, err := ParseHeader(req.Header, hdrkey, parseOptions...) if err != nil { mhdrs[hdrkey] = err continue } return tok, nil } if cl := req.ContentLength; cl > 0 { if err := req.ParseForm(); err != nil { return nil, errors.Wrap(err, `failed to parse form`) } } for _, formkey := range formkeys { // Check presence via a direct map lookup if _, ok := req.Form[formkey]; !ok { // if non-existent, not error continue } tok, err := ParseForm(req.Form, formkey, parseOptions...) if err != nil { mfrms[formkey] = err continue } return tok, nil } // Everything below is a preulde to error reporting. var triedHdrs strings.Builder for i, hdrkey := range hdrkeys { if i > 0 { triedHdrs.WriteString(", ") } triedHdrs.WriteString(strconv.Quote(hdrkey)) } var triedForms strings.Builder for i, formkey := range formkeys { if i > 0 { triedForms.WriteString(", ") } triedForms.WriteString(strconv.Quote(formkey)) } var b strings.Builder b.WriteString(`failed to find a valid token in any location of the request (tried: [header keys: `) b.WriteString(triedHdrs.String()) b.WriteByte(']') if triedForms.Len() > 0 { b.WriteString(", form keys: [") b.WriteString(triedForms.String()) b.WriteByte(']') } b.WriteByte(')') lmhdrs := len(mhdrs) lmfrms := len(mfrms) if lmhdrs > 0 || lmfrms > 0 { b.WriteString(". Additionally, errors were encountered during attempts to parse") if lmhdrs > 0 { b.WriteString(" headers: (") count := 0 for hdrkey, err := range mhdrs { if count > 0 { b.WriteString(", ") } b.WriteString("[header key: ") b.WriteString(strconv.Quote(hdrkey)) b.WriteString(", error: ") b.WriteString(strconv.Quote(err.Error())) b.WriteString("]") count++ } b.WriteString(")") } if lmfrms > 0 { count := 0 b.WriteString(" forms: (") for formkey, err := range mfrms { if count > 0 { b.WriteString(", ") } b.WriteString("[form key: ") b.WriteString(strconv.Quote(formkey)) b.WriteString(", error: ") b.WriteString(strconv.Quote(err.Error())) b.WriteString("]") count++ } } } return nil, errors.New(b.String()) } golang-github-lestrrat-go-jwx-1.2.30/jwt/interface.go000066400000000000000000000005571465311135100224750ustar00rootroot00000000000000package jwt import ( "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" ) type ClaimPair = mapiter.Pair type Iterator = mapiter.Iterator type Visitor = iter.MapVisitor type VisitorFunc = iter.MapVisitorFunc type DecodeCtx = json.DecodeCtx type TokenWithDecodeCtx = json.DecodeCtxContainer golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/000077500000000000000000000000001465311135100220135ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/000077500000000000000000000000001465311135100225565ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/gentoken/000077500000000000000000000000001465311135100243705ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/gentoken/go.mod000066400000000000000000000004621465311135100255000ustar00rootroot00000000000000module github.com/lestrrat-go/jwx/jwt/internal/cmd/gentoken go 1.16 require ( github.com/goccy/go-json v0.7.10 github.com/goccy/go-yaml v1.9.4 github.com/lestrrat-go/codegen v1.0.3-0.20211020122631-7d66c5ac40a2 github.com/stretchr/testify v1.8.2 // indirect golang.org/x/crypto v0.6.0 // indirect ) golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/gentoken/go.sum000066400000000000000000000215051465311135100255260ustar00rootroot00000000000000github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/fatih/color v1.10.0 h1:s36xzo75JdqLaaWoiEHk767eHiwo0598uUxyfiPkDsg= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= github.com/go-playground/locales v0.13.0 h1:HyWk6mgj5qFqCT5fjGBuRArbVDfE4hi8+e8ceBS/t7Q= github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD876Lmtgy7VtROAbHHXk8no= github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= github.com/goccy/go-json v0.7.10 h1:ulhbuNe1JqE68nMRXXTJRrUu0uhouf0VevLINxQq4Ec= github.com/goccy/go-json v0.7.10/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= github.com/goccy/go-yaml v1.9.4 h1:S0GCYjwHKVI6IHqio7QWNKNThUl6NLzFd/g8Z65Axw8= github.com/goccy/go-yaml v1.9.4/go.mod h1:U/jl18uSupI5rdI2jmuCswEA2htH9eXfferR3KfscvA= github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/codegen v1.0.3-0.20211020122631-7d66c5ac40a2 h1:80UpDI4ymH3h2t9TAgcwAzWoHUz9Kn15/LqTjQOEhMY= github.com/lestrrat-go/codegen v1.0.3-0.20211020122631-7d66c5ac40a2/go.mod h1:q3mmYUQW1bg3Z74ap7RgaVv1LmrBtlAKQOElxZTKlRM= github.com/lestrrat-go/option v1.0.0 h1:WqAWL8kh8VcSoD6xjSH34/1m8yxluXQbDeKNfvFeEO4= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b h1:3laG8JWIeDGb7lf00nMRznLdCHy0aZPd/CGz7Okn1SY= github.com/lestrrat-go/xstrings v0.0.0-20210804220435-4dd8b234342b/go.mod h1:mPFmD3Wuy0ddyPFvllLq4sUpGfE40T3VE8kWWS8fxGA= github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.6.0 h1:qfktjS5LUO+fFKeJXZ+ikTRijMmljikvG68fpMMruSc= golang.org/x/crypto v0.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200918232735-d647fc253266/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/gentoken/main.go000066400000000000000000000502741465311135100256530ustar00rootroot00000000000000package main import ( "bytes" "flag" "fmt" "log" "os" "path/filepath" "strconv" "strings" "github.com/goccy/go-json" "github.com/goccy/go-yaml" "github.com/lestrrat-go/codegen" ) const ( byteSliceType = "[]byte" ) func main() { if err := _main(); err != nil { log.Printf("%s", err) os.Exit(1) } } func _main() error { var objectsFile = flag.String("objects", "objects.yml", "") flag.Parse() jsonSrc, err := yaml2json(*objectsFile) if err != nil { return err } var def struct { CommonFields codegen.FieldList `json:"common_fields"` Objects []*codegen.Object `json:"objects"` } if err := json.NewDecoder(bytes.NewReader(jsonSrc)).Decode(&def); err != nil { return fmt.Errorf(`failed to decode %q: %w`, *objectsFile, err) } for _, object := range def.Objects { for _, f := range def.CommonFields { object.AddField(f) } object.Organize() } for _, object := range def.Objects { if err := generateToken(object); err != nil { return fmt.Errorf(`failed to generate token file %s: %w`, objectFilename(object), err) } } for _, object := range def.Objects { if err := genBuilder(object); err != nil { return fmt.Errorf(`failed to generate builder for package %q: %w`, objectPackage(object), err) } } return nil } func boolFromField(f codegen.Field, field string) (bool, error) { v, ok := f.Extra(field) if !ok { return false, fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } b, ok := v.(bool) if !ok { return false, fmt.Errorf("%q should be a bool in %q", field, f.Name(true)) } return b, nil } func stringFromField(f codegen.Field, field string) (string, error) { v, ok := f.Extra(field) if !ok { return "", fmt.Errorf("%q does not exist in %q", field, f.Name(true)) } s, ok := v.(string) if !ok { return "", fmt.Errorf("%q should be a string in %q", field, f.Name(true)) } return s, nil } func fieldNoDeref(f codegen.Field) bool { v, _ := boolFromField(f, "noDeref") return v } func fieldHasGet(f codegen.Field) bool { v, _ := boolFromField(f, "hasGet") return v } func fieldHasAccept(f codegen.Field) bool { v, _ := boolFromField(f, "hasAccept") return v } func fieldGetterReturnValue(f codegen.Field) string { if v, err := stringFromField(f, `getter_return_value`); err == nil { return v } return f.Type() } func stringFromObject(o *codegen.Object, field string) (string, error) { v, ok := o.Extra(field) if !ok { return "", fmt.Errorf("%q does not exist in %q", field, o.Name(true)) } s, ok := v.(string) if !ok { return "", fmt.Errorf("%q should be a string in %q", field, o.Name(true)) } return s, nil } func objectFilename(o *codegen.Object) string { v, err := stringFromObject(o, `filename`) if err != nil { panic(err.Error()) } return v } func objectPackage(o *codegen.Object) string { v, err := stringFromObject(o, `package`) if err != nil { panic(err.Error()) } return v } func objectInterface(o *codegen.Object) string { v, err := stringFromObject(o, `interface`) if err != nil { panic(err.Error()) } return v } func yaml2json(fn string) ([]byte, error) { in, err := os.Open(fn) if err != nil { return nil, fmt.Errorf(`failed to open %q: %w`, fn, err) } defer in.Close() var v interface{} if err := yaml.NewDecoder(in).Decode(&v); err != nil { return nil, fmt.Errorf(`failed to decode %q: %w`, fn, err) } return json.Marshal(v) } func IsPointer(f codegen.Field) bool { return strings.HasPrefix(f.Type(), `*`) } func PointerElem(f codegen.Field) string { return strings.TrimPrefix(f.Type(), `*`) } func fieldStorageType(s string) string { if fieldStorageTypeIsIndirect(s) { return `*` + s } return s } func fieldStorageTypeIsIndirect(s string) bool { return !(strings.HasPrefix(s, `*`) || strings.HasPrefix(s, `[]`) || strings.HasSuffix(s, `List`)) } func generateToken(obj *codegen.Object) error { var buf bytes.Buffer o := codegen.NewOutput(&buf) o.L("// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT") o.LL("package %s", objectPackage(obj)) var fields = obj.Fields() o.LL("const (") for _, f := range fields { o.L("%sKey = %s", f.Name(true), strconv.Quote(f.JSON())) } o.L(")") // end const if objectPackage(obj) == "jwt" && obj.Name(false) == "stdToken" { o.LL("// Token represents a generic JWT token.") o.L("// which are type-aware (to an extent). Other claims may be accessed via the `Get`/`Set`") o.L("// methods but their types are not taken into consideration at all. If you have non-standard") o.L("// claims that you must frequently access, consider creating accessors functions") o.L("// like the following") o.L("//\n// func SetFoo(tok jwt.Token) error") o.L("// func GetFoo(tok jwt.Token) (*Customtyp, error)") o.L("//\n// Embedding jwt.Token into another struct is not recommended, because") o.L("// jwt.Token needs to handle private claims, and this really does not") o.L("// work well when it is embedded in other structure") } o.L("type %s interface {", objectInterface(obj)) for _, field := range fields { o.LL("// %s returns the value for %q field of the token", field.GetterMethod(true), field.JSON()) o.L("%s() %s", field.GetterMethod(true), fieldGetterReturnValue(field)) } o.LL("// PrivateClaims return the entire set of fields (claims) in the token") o.L("// *other* than the pre-defined fields such as `iss`, `nbf`, `iat`, etc.") o.L("PrivateClaims() map[string]interface{}") o.LL("// Get returns the value of the corresponding field in the token, such as") o.L("// `nbf`, `exp`, `iat`, and other user-defined fields. If the field does not") o.L("// exist in the token, the second return value will be `false`") o.L("//") o.L("// If you need to access fields like `alg`, `kid`, `jku`, etc, you need") o.L("// to access the corresponding fields in the JWS/JWE message. For this,") o.L("// you will need to access them by directly parsing the payload using") o.L("// `jws.Parse` and `jwe.Parse`") o.L("Get(string) (interface{}, bool)") o.LL("// Set assigns a value to the corresponding field in the token. Some") o.L("// pre-defined fields such as `nbf`, `iat`, `iss` need their values to") o.L("// be of a specific type. See the other getter methods in this interface") o.L("// for the types of each of these fields") o.L("Set(string, interface{}) error") o.L("Remove(string) error") if objectPackage(obj) != "jwt" { o.L("Clone() (jwt.Token, error)") } else { o.L("Clone() (Token, error)") } o.L("Iterate(context.Context) Iterator") o.L("Walk(context.Context, Visitor) error") o.L("AsMap(context.Context) (map[string]interface{}, error)") o.L("}") o.L("type %s struct {", obj.Name(false)) o.L("mu *sync.RWMutex") o.L("dc DecodeCtx // per-object context for decoding") for _, f := range fields { if c := f.Comment(); c != "" { o.L("%s %s // %s", f.Name(false), fieldStorageType(f.Type()), c) } else { o.L("%s %s", f.Name(false), fieldStorageType(f.Type())) } } o.L("privateClaims map[string]interface{}") o.L("}") // end type Token o.LL("// New creates a standard token, with minimal knowledge of") o.L("// possible claims. Standard claims include") for i, field := range fields { o.R("%s", strconv.Quote(field.JSON())) switch { case i < len(fields)-2: o.R(", ") case i == len(fields)-2: o.R(" and ") } } o.R(".\n// Convenience accessors are provided for these standard claims") o.L("func New() %s {", objectInterface(obj)) o.L("return &%s{", obj.Name(false)) o.L("mu: &sync.RWMutex{},") o.L("privateClaims: make(map[string]interface{}),") o.L("}") o.L("}") o.LL("func (t *%s) Get(name string) (interface{}, bool) {", obj.Name(false)) o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") o.L("switch name {") for _, f := range fields { o.L("case %sKey:", f.Name(true)) o.L("if t.%s == nil {", f.Name(false)) o.L("return nil, false") o.L("}") if fieldHasGet(f) { o.L("v := t.%s.Get()", f.Name(false)) } else { if fieldStorageTypeIsIndirect(f.Type()) { o.L("v := *(t.%s)", f.Name(false)) } else { o.L("v := t.%s", f.Name(false)) } } o.L("return v, true") } o.L("default:") o.L("v, ok := t.privateClaims[name]") o.L("return v, ok") o.L("}") // end switch name o.L("}") // end of Get o.LL("func (t *stdToken) Remove(key string) error {") o.L("t.mu.Lock()") o.L("defer t.mu.Unlock()") o.L("switch key {") for _, f := range fields { o.L("case %sKey:", f.Name(true)) o.L("t.%s = nil", f.Name(false)) } o.L("default:") o.L("delete(t.privateClaims, key)") o.L("}") o.L("return nil") // currently unused, but who knows o.L("}") o.LL("func (t *%s) Set(name string, value interface{}) error {", obj.Name(false)) o.L("t.mu.Lock()") o.L("defer t.mu.Unlock()") o.L("return t.setNoLock(name, value)") o.L("}") o.LL("func (t *%s) DecodeCtx() DecodeCtx {", obj.Name(false)) o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") o.L("return t.dc") o.L("}") o.LL("func (t *%s) SetDecodeCtx(v DecodeCtx) {", obj.Name(false)) o.L("t.mu.Lock()") o.L("defer t.mu.Unlock()") o.L("t.dc = v") o.L("}") o.LL("func (t *%s) setNoLock(name string, value interface{}) error {", obj.Name(false)) o.L("switch name {") for _, f := range fields { keyName := f.Name(true) + "Key" o.L("case %s:", keyName) if f.Name(false) == `algorithm` { o.L("switch v := value.(type) {") o.L("case string:") o.L("t.algorithm = &v") o.L("case fmt.Stringer:") o.L("tmp := v.String()") o.L("t.algorithm = &tmp") o.L("default:") o.L("return errors.Errorf(`invalid type for %%s key: %%T`, %s, value)", keyName) o.L("}") o.L("return nil") } else if fieldHasAccept(f) { if IsPointer(f) { o.L("var acceptor %s", strings.TrimPrefix(f.Type(), "*")) } else { o.L("var acceptor %s", f.Type()) } o.L("if err := acceptor.Accept(value); err != nil {") o.L("return errors.Wrapf(err, `invalid value for %%s key`, %s)", keyName) o.L("}") // end if err := t.%s.Accept(value) if fieldStorageTypeIsIndirect(f.Type()) || IsPointer(f) { o.L("t.%s = &acceptor", f.Name(false)) } else { o.L("t.%s = acceptor", f.Name(false)) } o.L("return nil") } else { o.L("if v, ok := value.(%s); ok {", f.Type()) if fieldStorageTypeIsIndirect(f.Type()) { o.L("t.%s = &v", f.Name(false)) } else { o.L("t.%s = v", f.Name(false)) } o.L("return nil") o.L("}") // end if v, ok := value.(%s) o.L("return errors.Errorf(`invalid value for %%s key: %%T`, %s, value)", keyName) } } o.L("default:") o.L("if t.privateClaims == nil {") o.L("t.privateClaims = map[string]interface{}{}") o.L("}") // end if t.privateClaims == nil o.L("t.privateClaims[name] = value") o.L("}") // end switch name o.L("return nil") o.L("}") // end func (t *%s) Set(name string, value interface{}) for _, f := range fields { o.LL("func (t *%s) %s() ", obj.Name(false), f.GetterMethod(true)) if rv := fieldGetterReturnValue(f); rv != "" { o.R("%s", rv) } else if IsPointer(f) && fieldNoDeref(f) { o.R("%s", f.Type()) } else { o.R("%s", PointerElem(f)) } o.R(" {") o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") if fieldHasGet(f) { o.L("if t.%s != nil {", f.Name(false)) o.L("return t.%s.Get()", f.Name(false)) o.L("}") o.L("return %s", codegen.ZeroVal(fieldGetterReturnValue(f))) } else if !IsPointer(f) { if fieldStorageTypeIsIndirect(f.Type()) { o.L("if t.%s != nil {", f.Name(false)) o.L("return *(t.%s)", f.Name(false)) o.L("}") o.L("return %s", codegen.ZeroVal(fieldGetterReturnValue(f))) } else { o.L("return t.%s", f.Name(false)) } } else { o.L("return t.%s", f.Name(false)) } o.L("}") // func (h *stdHeaders) %s() %s } o.LL("func (t *%s) PrivateClaims() map[string]interface{} {", obj.Name(false)) o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") o.L("return t.privateClaims") o.L("}") // Generate a function that iterates through all of the keys // in this header. o.LL("func (t *%s) makePairs() []*ClaimPair {", obj.Name(false)) o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") // NOTE: building up an array is *slow*? o.LL("pairs := make([]*ClaimPair, 0, %d)", len(fields)) for _, f := range fields { keyName := f.Name(true) + "Key" o.L("if t.%s != nil {", f.Name(false)) if fieldHasGet(f) { o.L("v := t.%s.Get()", f.Name(false)) } else { if fieldStorageTypeIsIndirect(f.Type()) { o.L("v := *(t.%s)", f.Name(false)) } else { o.L("v := t.%s", f.Name(false)) } } o.L("pairs = append(pairs, &ClaimPair{Key: %s, Value: v})", keyName) o.L("}") } o.L("for k, v := range t.privateClaims {") o.L("pairs = append(pairs, &ClaimPair{Key: k, Value: v})") o.L("}") o.L("sort.Slice(pairs, func(i, j int) bool {") o.L("return pairs[i].Key.(string) < pairs[j].Key.(string)") o.L("})") o.L("return pairs") o.L("}") // end of (h *stdHeaders) iterate(...) o.LL("func (t *stdToken) UnmarshalJSON(buf []byte) error {") o.L("t.mu.Lock()") o.L("defer t.mu.Unlock()") for _, f := range fields { o.L("t.%s = nil", f.Name(false)) } o.L("dec := json.NewDecoder(bytes.NewReader(buf))") o.L("LOOP:") o.L("for {") o.L("tok, err := dec.Token()") o.L("if err != nil {") o.L("return errors.Wrap(err, `error reading token`)") o.L("}") o.L("switch tok := tok.(type) {") o.L("case json.Delim:") o.L("// Assuming we're doing everything correctly, we should ONLY") o.L("// get either '{' or '}' here.") o.L("if tok == '}' { // End of object") o.L("break LOOP") o.L("} else if tok != '{' {") o.L("return errors.Errorf(`expected '{', but got '%%c'`, tok)") o.L("}") o.L("case string: // Objects can only have string keys") o.L("switch tok {") for _, f := range fields { if f.Type() == "string" { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextStringToken(&t.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == byteSliceType { o.L("case %sKey:", f.Name(true)) o.L("if err := json.AssignNextBytesToken(&t.%s, dec); err != nil {", f.Name(false)) o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") } else if f.Type() == "types.StringList" || strings.HasPrefix(f.Type(), "[]") { o.L("case %sKey:", f.Name(true)) o.L("var decoded %s", f.Type()) o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("t.%s = decoded", f.Name(false)) } else { o.L("case %sKey:", f.Name(true)) if IsPointer(f) { o.L("var decoded %s", PointerElem(f)) } else { o.L("var decoded %s", f.Type()) } o.L("if err := dec.Decode(&decoded); err != nil {") o.L("return errors.Wrapf(err, `failed to decode value for key %%s`, %sKey)", f.Name(true)) o.L("}") o.L("t.%s = &decoded", f.Name(false)) } } o.L("default:") // This looks like bad code, but we're unrolling things for maximum // runtime efficiency o.L("if dc := t.dc; dc != nil {") o.L("if localReg := dc.Registry(); localReg != nil {") o.L("decoded, err := localReg.Decode(dec, tok)") o.L("if err == nil {") o.L("t.setNoLock(tok, decoded)") o.L("continue") o.L("}") o.L("}") o.L("}") o.L("decoded, err := registry.Decode(dec, tok)") o.L("if err == nil {") o.L("t.setNoLock(tok, decoded)") o.L("continue") o.L("}") o.L("return errors.Wrapf(err, `could not decode field %%s`, tok)") o.L("}") o.L("default:") o.L("return errors.Errorf(`invalid token %%T`, tok)") o.L("}") o.L("}") o.L("return nil") o.L("}") var numericDateFields []codegen.Field for _, field := range fields { if field.Type() == "types.NumericDate" { numericDateFields = append(numericDateFields, field) } } o.LL("func (t %s) MarshalJSON() ([]byte, error) {", obj.Name(false)) o.L("t.mu.RLock()") o.L("defer t.mu.RUnlock()") o.L("buf := pool.GetBytesBuffer()") o.L("defer pool.ReleaseBytesBuffer(buf)") o.L("buf.WriteByte('{')") o.L("enc := json.NewEncoder(buf)") o.L("for i, pair := range t.makePairs() {") o.L("f := pair.Key.(string)") o.L("if i > 0 {") o.L("buf.WriteByte(',')") o.L("}") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(f)") o.L("buf.WriteString(`\":`)") // Handle cases that need specialized handling o.L("switch f {") o.L("case AudienceKey:") o.L("if err := json.EncodeAudience(enc, pair.Value.([]string)); err != nil {") o.L("return nil, errors.Wrap(err, `failed to encode \"aud\"`)") o.L("}") o.L("continue") if lndf := len(numericDateFields); lndf > 0 { o.L("case ") for i, ndf := range numericDateFields { o.R("%sKey", ndf.Name(true)) if i < lndf-1 { o.R(",") } } o.R(":") o.L("enc.Encode(pair.Value.(time.Time).Unix())") o.L("continue") } o.L("}") o.L("switch v := pair.Value.(type) {") o.L("case []byte:") o.L("buf.WriteRune('\"')") o.L("buf.WriteString(base64.EncodeToString(v))") o.L("buf.WriteRune('\"')") o.L("default:") o.L("if err := enc.Encode(v); err != nil {") o.L("return nil, errors.Wrapf(err, `failed to marshal field %%s`, f)") o.L("}") o.L("buf.Truncate(buf.Len()-1)") o.L("}") o.L("}") o.L("buf.WriteByte('}')") o.L("ret := make([]byte, buf.Len())") o.L("copy(ret, buf.Bytes())") o.L("return ret, nil") o.L("}") o.LL("func (t *%s) Iterate(ctx context.Context) Iterator {", obj.Name(false)) o.L("pairs := t.makePairs()") o.L("ch := make(chan *ClaimPair, len(pairs))") o.L("go func(ctx context.Context, ch chan *ClaimPair, pairs []*ClaimPair) {") o.L("defer close(ch)") o.L("for _, pair := range pairs {") o.L("select {") o.L("case <-ctx.Done():") o.L("return") o.L("case ch<-pair:") o.L("}") o.L("}") o.L("}(ctx, ch, pairs)") o.L("return mapiter.New(ch)") o.L("}") o.LL("func (t *%s) Walk(ctx context.Context, visitor Visitor) error {", obj.Name(false)) o.L("return iter.WalkMap(ctx, t, visitor)") o.L("}") o.LL("func (t *%s) AsMap(ctx context.Context) (map[string]interface{}, error) {", obj.Name(false)) o.L("return iter.AsMap(ctx, t)") o.L("}") if err := o.WriteFile(objectFilename(obj), codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, objectFilename(obj), err) } return nil } func genBuilder(obj *codegen.Object) error { var buf bytes.Buffer pkg := objectPackage(obj) o := codegen.NewOutput(&buf) o.L("// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT") o.LL("package %s", pkg) o.LL("// Builder is a convenience wrapper around the New() constructor") o.L("// and the Set() methods to assign values to Token claims.") o.L("// Users can successively call Claim() on the Builder, and have it") o.L("// construct the Token when Build() is called. This alleviates the") o.L("// need for the user to check for the return value of every single") o.L("// Set() method call.") o.L("// Note that each call to Claim() overwrites the value set from the") o.L("// previous call.") o.L("type Builder struct {") o.L("claims []*ClaimPair") o.L("}") o.LL("func NewBuilder() *Builder {") o.L("return &Builder{}") o.L("}") o.LL("func (b *Builder) Claim(name string, value interface{}) *Builder {") o.L("b.claims = append(b.claims, &ClaimPair{Key: name, Value: value})") o.L("return b") o.L("}") for _, f := range obj.Fields() { ftyp := f.Type() if ftyp == "types.NumericDate" { ftyp = "time.Time" } else if ftyp == "types.StringList" { ftyp = "[]string" } o.LL("func (b *Builder) %s(v %s) *Builder {", f.Name(true), ftyp) o.L("return b.Claim(%sKey, v)", f.Name(true)) o.L("}") } o.LL("// Build creates a new token based on the claims that the builder has received") o.L("// so far. If a claim cannot be set, then the method returns a nil Token with") o.L("// a en error as a second return value") o.L("func (b *Builder) Build() (Token, error) {") o.L("tok := New()") o.L("for _, claim := range b.claims {") o.L("if err := tok.Set(claim.Key.(string), claim.Value); err != nil {") o.L("return nil, errors.Wrapf(err, `failed to set claim %%q`, claim.Key.(string))") o.L("}") o.L("}") o.L("return tok, nil") o.L("}") fn := "builder_gen.go" if pkg != "jwt" { fn = filepath.Join(pkg, fn) } if err := o.WriteFile(fn, codegen.WithFormatCode(true)); err != nil { if cfe, ok := err.(codegen.CodeFormatError); ok { fmt.Fprint(os.Stderr, cfe.Source()) } return fmt.Errorf(`failed to write to %s: %w`, fn, err) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/cmd/gentoken/objects.yml000066400000000000000000000044051465311135100265470ustar00rootroot00000000000000common_fields: - name: issuer json: iss comment: https://tools.ietf.org/html/rfc7519#section-4.1.1 - name: subject json: sub comment: https://tools.ietf.org/html/rfc7519#section-4.1.2 - name: audience json: aud type: types.StringList getter_return_value: "[]string" hasGet: true hasAccept: true comment: https://tools.ietf.org/html/rfc7519#section-4.1.3 - name: expiration json: exp type: types.NumericDate getter_return_value: time.Time hasAccept: true hasGet: true noDeref: true comment: https://tools.ietf.org/html/rfc7519#section-4.1.4 - name: notBefore getter_return_value: time.Time json: nbf type: types.NumericDate hasAccept: true hasGet: true noDeref: true comment: https://tools.ietf.org/html/rfc7519#section-4.1.5 - name: issuedAt json: iat type: types.NumericDate getter_return_value: time.Time hasGet: true hasAccept: true comment: https://tools.ietf.org/html/rfc7519#section-4.1.6 - name: jwtID getter: JwtID json: jti comment: https://tools.ietf.org/html/rfc7519#section-4.1.7 objects: - name: stdToken filename: token_gen.go interface: Token package: jwt - name: stdToken filename: openid/token_gen.go interface: Token package: openid fields: - name: name - name: givenName json: given_name - name: middleName json: middle_name - name: familyName json: family_name - name: nickname json: nickname - name: preferredUsername json: preferred_username - name: profile - name: picture - name: website - name: email - name: emailVerified type: bool json: email_verified - name: gender - name: birthdate type: "*BirthdateClaim" hasAccept: true - name: zoneinfo - name: locale - name: phoneNumber json: phone_number - name: phoneNumberVerified type: bool json: phone_number_verified - name: address type: "*AddressClaim" hasAccept: true - name: updatedAt getter_return_value: time.Time type: types.NumericDate json: updated_at hasGet: true hasAccept: true golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/types/000077500000000000000000000000001465311135100231575ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/types/date.go000066400000000000000000000034531465311135100244300ustar00rootroot00000000000000package types import ( "strconv" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/pkg/errors" ) // NumericDate represents the date format used in the 'nbf' claim type NumericDate struct { time.Time } func (n *NumericDate) Get() time.Time { if n == nil { return (time.Time{}).UTC() } return n.Time } func numericToTime(v interface{}, t *time.Time) bool { var n int64 switch x := v.(type) { case int64: n = x case int32: n = int64(x) case int16: n = int64(x) case int8: n = int64(x) case int: n = int64(x) case float32: n = int64(x) case float64: n = int64(x) default: return false } *t = time.Unix(n, 0) return true } func (n *NumericDate) Accept(v interface{}) error { var t time.Time switch x := v.(type) { case string: i, err := strconv.ParseInt(x[:], 10, 64) if err != nil { return errors.Errorf(`invalid epoch value %#v`, x) } t = time.Unix(i, 0) case json.Number: intval, err := x.Int64() if err != nil { return errors.Wrapf(err, `failed to convert json value %#v to int64`, x) } t = time.Unix(intval, 0) case time.Time: t = x default: if !numericToTime(v, &t) { return errors.Errorf(`invalid type %T`, v) } } n.Time = t.UTC() return nil } // MarshalJSON translates from internal representation to JSON NumericDate // See https://tools.ietf.org/html/rfc7519#page-6 func (n *NumericDate) MarshalJSON() ([]byte, error) { if n.IsZero() { return json.Marshal(nil) } return json.Marshal(n.Unix()) } func (n *NumericDate) UnmarshalJSON(data []byte) error { var v interface{} if err := json.Unmarshal(data, &v); err != nil { return errors.Wrap(err, `failed to unmarshal date`) } var n2 NumericDate if err := n2.Accept(v); err != nil { return errors.Wrap(err, `invalid value for NumericDate`) } *n = n2 return nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/types/date_test.go000066400000000000000000000030061465311135100254610ustar00rootroot00000000000000package types_test import ( "fmt" "testing" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwt" "github.com/lestrrat-go/jwx/jwt/internal/types" "github.com/stretchr/testify/assert" ) func TestDate(t *testing.T) { t.Parallel() t.Run("Get from a nil NumericDate", func(t *testing.T) { t.Parallel() var n *types.NumericDate if !assert.Equal(t, time.Time{}, n.Get()) { return } }) t.Run("MarshalJSON with a zero value", func(t *testing.T) { t.Parallel() var n *types.NumericDate buf, err := json.Marshal(n) if !assert.NoError(t, err, `json.Marshal against a zero value should succeed`) { return } if !assert.Equal(t, []byte(`null`), buf, `result should be null`) { return } }) t.Run("Accept values", func(t *testing.T) { t.Parallel() // NumericDate allows assignment from various different Go types, // so that it's easier for the devs, and conversion to/from JSON // use of "127" is just to allow use of int8's now := time.Unix(127, 0).UTC() for _, ut := range []interface{}{int64(127), int32(127), int16(127), int8(127), float32(127), float64(127), json.Number("127")} { ut := ut t.Run(fmt.Sprintf("%T", ut), func(t *testing.T) { t.Parallel() t1 := jwt.New() err := t1.Set(jwt.IssuedAtKey, ut) if !assert.NoError(t, err) { return } v, ok := t1.Get(jwt.IssuedAtKey) if !assert.True(t, ok) { return } realized := v.(time.Time) if !assert.Equal(t, now, realized) { return } }) } }) } golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/types/string.go000066400000000000000000000015071465311135100250170ustar00rootroot00000000000000package types import ( "github.com/lestrrat-go/jwx/internal/json" "github.com/pkg/errors" ) type StringList []string func (l StringList) Get() []string { return []string(l) } func (l *StringList) Accept(v interface{}) error { switch x := v.(type) { case string: *l = StringList([]string{x}) case []string: *l = StringList(x) case []interface{}: list := make(StringList, len(x)) for i, e := range x { if s, ok := e.(string); ok { list[i] = s continue } return errors.Errorf(`invalid list element type %T`, e) } *l = list default: return errors.Errorf(`invalid type: %T`, v) } return nil } func (l *StringList) UnmarshalJSON(data []byte) error { var v interface{} if err := json.Unmarshal(data, &v); err != nil { return errors.Wrap(err, `failed to unmarshal data`) } return l.Accept(v) } golang-github-lestrrat-go-jwx-1.2.30/jwt/internal/types/string_test.go000066400000000000000000000007221465311135100260540ustar00rootroot00000000000000package types_test import ( "testing" "github.com/lestrrat-go/jwx/jwt/internal/types" "github.com/stretchr/testify/assert" ) func TestStringList_Accept(t *testing.T) { t.Parallel() var x types.StringList interfaceList := make([]interface{}, 0) interfaceList = append(interfaceList, "first") interfaceList = append(interfaceList, "second") if !assert.NoError(t, x.Accept(interfaceList), "failed to convert []interface{} into StringList") { return } } golang-github-lestrrat-go-jwx-1.2.30/jwt/io.go000066400000000000000000000011321465311135100211320ustar00rootroot00000000000000// Automatically generated by internal/cmd/genreadfile/main.go. DO NOT EDIT package jwt import "os" // ReadFileOption describes options that can be passed to ReadFile. type ReadFileOption interface { Option readFileOption() } func ReadFile(path string, options ...ReadFileOption) (Token, error) { var parseOptions []ParseOption for _, option := range options { switch option := option.(type) { case ParseOption: parseOptions = append(parseOptions, option) } } f, err := os.Open(path) if err != nil { return nil, err } defer f.Close() return ParseReader(f, parseOptions...) } golang-github-lestrrat-go-jwx-1.2.30/jwt/jwt.go000066400000000000000000000410251465311135100213340ustar00rootroot00000000000000//go:generate ./gen.sh // Package jwt implements JSON Web Tokens as described in https://tools.ietf.org/html/rfc7519 package jwt import ( "bytes" "io" "net/http" "strings" "sync/atomic" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/pkg/errors" ) const _jwt = `jwt` // Settings controls global settings that are specific to JWTs. func Settings(options ...GlobalOption) { var flattenAudienceBool bool //nolint:forcetypeassert for _, option := range options { switch option.Ident() { case identFlattenAudience{}: flattenAudienceBool = option.Value().(bool) } } v := atomic.LoadUint32(&json.FlattenAudience) if (v == 1) != flattenAudienceBool { var newVal uint32 if flattenAudienceBool { newVal = 1 } atomic.CompareAndSwapUint32(&json.FlattenAudience, v, newVal) } } var registry = json.NewRegistry() // ParseString calls Parse against a string func ParseString(s string, options ...ParseOption) (Token, error) { return parseBytes([]byte(s), options...) } // Parse parses the JWT token payload and creates a new `jwt.Token` object. // The token must be encoded in either JSON format or compact format. // // This function can work with encrypted and/or signed tokens. Any combination // of JWS and JWE may be applied to the token, but this function will only // attempt to verify/decrypt up to 2 levels (i.e. JWS only, JWE only, JWS then // JWE, or JWE then JWS) // // If the token is signed and you want to verify the payload matches the signature, // you must pass the jwt.WithVerify(alg, key) or jwt.WithKeySet(jwk.Set) option. // If you do not specify these parameters, no verification will be performed. // // During verification, if the JWS headers specify a key ID (`kid`), the // key used for verification must match the specified ID. If you are somehow // using a key without a `kid` (which is highly unlikely if you are working // with a JWT from a well know provider), you can workaround this by modifying // the `jwk.Key` and setting the `kid` header. // // If you also want to assert the validity of the JWT itself (i.e. expiration // and such), use the `Validate()` function on the returned token, or pass the // `WithValidate(true)` option. Validate options can also be passed to // `Parse` // // This function takes both ParseOption and ValidateOption types: // ParseOptions control the parsing behavior, and ValidateOptions are // passed to `Validate()` when `jwt.WithValidate` is specified. func Parse(s []byte, options ...ParseOption) (Token, error) { return parseBytes(s, options...) } // ParseReader calls Parse against an io.Reader func ParseReader(src io.Reader, options ...ParseOption) (Token, error) { // We're going to need the raw bytes regardless. Read it. data, err := io.ReadAll(src) if err != nil { return nil, errors.Wrap(err, `failed to read from token data source`) } return parseBytes(data, options...) } type parseCtx struct { decryptParams DecryptParameters verifyParams VerifyParameters keySet jwk.Set keySetProvider KeySetProvider token Token validateOpts []ValidateOption verifyAutoOpts []jws.VerifyOption localReg *json.Registry inferAlgorithm bool pedantic bool skipVerification bool useDefault bool validate bool verifyAuto bool } func parseBytes(data []byte, options ...ParseOption) (Token, error) { var ctx parseCtx for _, o := range options { if v, ok := o.(ValidateOption); ok { ctx.validateOpts = append(ctx.validateOpts, v) continue } //nolint:forcetypeassert switch o.Ident() { case identVerifyAuto{}: ctx.verifyAuto = o.Value().(bool) case identFetchWhitelist{}: ctx.verifyAutoOpts = append(ctx.verifyAutoOpts, jws.WithFetchWhitelist(o.Value().(jwk.Whitelist))) case identHTTPClient{}: ctx.verifyAutoOpts = append(ctx.verifyAutoOpts, jws.WithHTTPClient(o.Value().(*http.Client))) case identFetchBackoff{}: ctx.verifyAutoOpts = append(ctx.verifyAutoOpts, jws.WithFetchBackoff(o.Value().(backoff.Policy))) case identJWKSetFetcher{}: ctx.verifyAutoOpts = append(ctx.verifyAutoOpts, jws.WithJWKSetFetcher(o.Value().(jws.JWKSetFetcher))) case identVerify{}: ctx.verifyParams = o.Value().(VerifyParameters) case identDecrypt{}: ctx.decryptParams = o.Value().(DecryptParameters) case identKeySet{}: ks, ok := o.Value().(jwk.Set) if !ok { return nil, errors.Errorf(`invalid JWK set passed via WithKeySet() option (%T)`, o.Value()) } ctx.keySet = ks case identToken{}: token, ok := o.Value().(Token) if !ok { return nil, errors.Errorf(`invalid token passed via WithToken() option (%T)`, o.Value()) } ctx.token = token case identPedantic{}: ctx.pedantic = o.Value().(bool) case identDefault{}: ctx.useDefault = o.Value().(bool) case identValidate{}: ctx.validate = o.Value().(bool) case identTypedClaim{}: pair := o.Value().(claimPair) if ctx.localReg == nil { ctx.localReg = json.NewRegistry() } ctx.localReg.Register(pair.Name, pair.Value) case identInferAlgorithmFromKey{}: ctx.inferAlgorithm = o.Value().(bool) case identKeySetProvider{}: ctx.keySetProvider = o.Value().(KeySetProvider) } } data = bytes.TrimSpace(data) return parse(&ctx, data) } const ( _JwsVerifyInvalid = iota _JwsVerifyDone _JwsVerifyExpectNested _JwsVerifySkipped ) func verifyJWS(ctx *parseCtx, payload []byte) ([]byte, int, error) { if ctx.verifyAuto { options := ctx.verifyAutoOpts verified, err := jws.VerifyAuto(payload, options...) return verified, _JwsVerifyDone, err } // if we have a key set or a provider, use that ks := ctx.keySet p := ctx.keySetProvider if ks != nil || p != nil { return verifyJWSWithKeySet(ctx, payload) } // We can't proceed without verification parameters vp := ctx.verifyParams if vp == nil { return nil, _JwsVerifySkipped, nil } return verifyJWSWithParams(ctx, payload, vp.Algorithm(), vp.Key()) } func verifyJWSWithKeySet(ctx *parseCtx, payload []byte) ([]byte, int, error) { // First, get the JWS message msg, err := jws.Parse(payload) if err != nil { return nil, _JwsVerifyInvalid, errors.Wrap(err, `failed to parse token data as JWS message`) } ks := ctx.keySet if ks == nil { // the caller should have checked ctx.keySet || ctx.keySetProvider if p := ctx.keySetProvider; p != nil { // "trust" the payload, and parse it so that the provider can do its thing ctx.skipVerification = true tok, err := parse(ctx, msg.Payload()) if err != nil { return nil, _JwsVerifyInvalid, err } ctx.skipVerification = false v, err := p.KeySetFrom(tok) if err != nil { return nil, _JwsVerifyInvalid, errors.Wrap(err, `failed to obtain jwk.Set from KeySetProvider`) } ks = v } } // Bail out early if we don't even have a key in the set if ks.Len() == 0 { return nil, _JwsVerifyInvalid, errors.New(`empty keyset provided`) } var key jwk.Key // Find the kid. we need the kid, unless the user explicitly // specified to use the "default" (the first and only) key in the set headers := msg.Signatures()[0].ProtectedHeaders() kid := headers.KeyID() if kid == "" { // If the kid is NOT specified... ctx.useDefault needs to be true, and the // JWKs must have exactly one key in it if !ctx.useDefault { return nil, _JwsVerifyInvalid, errors.New(`failed to find matching key: no key ID ("kid") specified in token`) } else if ctx.useDefault && ks.Len() > 1 { return nil, _JwsVerifyInvalid, errors.New(`failed to find matching key: no key ID ("kid") specified in token but multiple keys available in key set`) } // if we got here, then useDefault == true AND there is exactly // one key in the set. key, _ = ks.Get(0) } else { // Otherwise we better be able to look up the key, baby. v, ok := ks.LookupKeyID(kid) if !ok { return nil, _JwsVerifyInvalid, errors.Errorf(`failed to find key with key ID %q in key set`, kid) } key = v } // We found a key with matching kid. Check fo the algorithm specified in the key. // If we find an algorithm in the key, use that. if v := key.Algorithm(); v != "" { var alg jwa.SignatureAlgorithm if err := alg.Accept(v); err != nil { return nil, _JwsVerifyInvalid, errors.Wrapf(err, `invalid signature algorithm %s`, key.Algorithm()) } // Okay, we have a valid algorithm return verifyJWSWithParams(ctx, payload, alg, key) } if ctx.inferAlgorithm { // Check whether the JWT headers specify a valid // algorithm, use it if it's compatible. algs, err := jws.AlgorithmsForKey(key) if err != nil { return nil, _JwsVerifyInvalid, errors.Wrapf(err, `failed to get a list of signature methods for key type %s`, key.KeyType()) } for _, alg := range algs { // bail out if the JWT has a `alg` field, and it doesn't match if tokAlg := headers.Algorithm(); tokAlg != "" { if tokAlg != alg { continue } } return verifyJWSWithParams(ctx, payload, alg, key) } } return nil, _JwsVerifyInvalid, errors.New(`failed to match any of the keys`) } func verifyJWSWithParams(ctx *parseCtx, payload []byte, alg jwa.SignatureAlgorithm, key interface{}) ([]byte, int, error) { var m *jws.Message var verifyOpts []jws.VerifyOption if ctx.pedantic { m = jws.NewMessage() verifyOpts = []jws.VerifyOption{jws.WithMessage(m)} } v, err := jws.Verify(payload, alg, key, verifyOpts...) if err != nil { return nil, _JwsVerifyInvalid, errors.Wrap(err, `failed to verify jws signature`) } if !ctx.pedantic { return v, _JwsVerifyDone, nil } // This payload could be a JWT+JWS, in which case typ: JWT should be there // If its JWT+(JWE or JWS or...)+JWS, then cty should be JWT for _, sig := range m.Signatures() { hdrs := sig.ProtectedHeaders() if strings.ToLower(hdrs.Type()) == _jwt { return v, _JwsVerifyDone, nil } if strings.ToLower(hdrs.ContentType()) == _jwt { return v, _JwsVerifyExpectNested, nil } } // Hmmm, it was a JWS and we got... nothing? return nil, _JwsVerifyInvalid, errors.Errorf(`expected "typ" or "cty" fields, neither could be found`) } // verify parameter exists to make sure that we don't accidentally skip // over verification just because alg == "" or key == nil or something. func parse(ctx *parseCtx, data []byte) (Token, error) { payload := data const maxDecodeLevels = 2 // If cty = `JWT`, we expect this to be a nested structure var expectNested bool OUTER: for i := 0; i < maxDecodeLevels; i++ { switch kind := jwx.GuessFormat(payload); kind { case jwx.JWT: if ctx.pedantic { if expectNested { return nil, errors.Errorf(`expected nested encrypted/signed payload, got raw JWT`) } } if i == 0 { // We were NOT enveloped in other formats if !ctx.skipVerification { if _, _, err := verifyJWS(ctx, payload); err != nil { return nil, err } } } break OUTER case jwx.UnknownFormat: // "Unknown" may include invalid JWTs, for example, those who lack "aud" // claim. We could be pedantic and reject these if ctx.pedantic { return nil, errors.Errorf(`invalid JWT`) } if i == 0 { // We were NOT enveloped in other formats if !ctx.skipVerification { if _, _, err := verifyJWS(ctx, payload); err != nil { return nil, err } } } break OUTER case jwx.JWS: // Food for thought: This is going to break if you have multiple layers of // JWS enveloping using different keys. It is highly unlikely use case, // but it might happen. // skipVerification should only be set to true by us. It's used // when we just want to parse the JWT out of a payload if !ctx.skipVerification { // nested return value means: // false (next envelope _may_ need to be processed) // true (next envelope MUST be processed) v, state, err := verifyJWS(ctx, payload) if err != nil { return nil, err } if state != _JwsVerifySkipped { payload = v // We only check for cty and typ if the pedantic flag is enabled if !ctx.pedantic { continue } if state == _JwsVerifyExpectNested { expectNested = true continue OUTER } // if we're not nested, we found our target. bail out of this loop break OUTER } } // No verification. m, err := jws.Parse(data) if err != nil { return nil, errors.Wrap(err, `invalid jws message`) } payload = m.Payload() case jwx.JWE: dp := ctx.decryptParams if dp == nil { return nil, errors.Errorf(`jwt.Parse: cannot proceed with JWE encrypted payload without decryption parameters`) } var m *jwe.Message var decryptOpts []jwe.DecryptOption if ctx.pedantic { m = jwe.NewMessage() decryptOpts = []jwe.DecryptOption{jwe.WithMessage(m)} } v, err := jwe.Decrypt(data, dp.Algorithm(), dp.Key(), decryptOpts...) if err != nil { return nil, errors.Wrap(err, `failed to decrypt payload`) } if !ctx.pedantic { payload = v continue } if strings.ToLower(m.ProtectedHeaders().Type()) == _jwt { payload = v break OUTER } if strings.ToLower(m.ProtectedHeaders().ContentType()) == _jwt { expectNested = true payload = v continue OUTER } default: return nil, errors.Errorf(`unsupported format (layer: #%d)`, i+1) } expectNested = false } if ctx.token == nil { ctx.token = New() } if ctx.localReg != nil { dcToken, ok := ctx.token.(TokenWithDecodeCtx) if !ok { return nil, errors.Errorf(`typed claim was requested, but the token (%T) does not support DecodeCtx`, ctx.token) } dc := json.NewDecodeCtx(ctx.localReg) dcToken.SetDecodeCtx(dc) defer func() { dcToken.SetDecodeCtx(nil) }() } if err := json.Unmarshal(payload, ctx.token); err != nil { return nil, errors.Wrap(err, `failed to parse token`) } if ctx.validate { if err := Validate(ctx.token, ctx.validateOpts...); err != nil { return nil, err } } return ctx.token, nil } // Sign is a convenience function to create a signed JWT token serialized in // compact form. // // It accepts either a raw key (e.g. rsa.PrivateKey, ecdsa.PrivateKey, etc) // or a jwk.Key, and the name of the algorithm that should be used to sign // the token. // // If the key is a jwk.Key and the key contains a key ID (`kid` field), // then it is added to the protected header generated by the signature // // The algorithm specified in the `alg` parameter must be able to support // the type of key you provided, otherwise an error is returned. // // The protected header will also automatically have the `typ` field set // to the literal value `JWT`, unless you provide a custom value for it // by jwt.WithHeaders option. func Sign(t Token, alg jwa.SignatureAlgorithm, key interface{}, options ...SignOption) ([]byte, error) { return NewSerializer().Sign(alg, key, options...).Serialize(t) } // Equal compares two JWT tokens. Do not use `reflect.Equal` or the like // to compare tokens as they will also compare extra detail such as // sync.Mutex objects used to control concurrent access. // // The comparison for values is currently done using a simple equality ("=="), // except for time.Time, which uses time.Equal after dropping the monotonic // clock and truncating the values to 1 second accuracy. // // if both t1 and t2 are nil, returns true func Equal(t1, t2 Token) bool { if t1 == nil && t2 == nil { return true } // we already checked for t1 == t2 == nil, so safe to do this if t1 == nil || t2 == nil { return false } j1, err := json.Marshal(t1) if err != nil { return false } j2, err := json.Marshal(t2) if err != nil { return false } return bytes.Equal(j1, j2) } func (t *stdToken) Clone() (Token, error) { dst := New() for _, pair := range t.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := dst.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, key) } } return dst, nil } // RegisterCustomField allows users to specify that a private field // be decoded as an instance of the specified type. This option has // a global effect. // // For example, suppose you have a custom field `x-birthday`, which // you want to represent as a string formatted in RFC3339 in JSON, // but want it back as `time.Time`. // // In that case you would register a custom field as follows // // jwt.RegisterCustomField(`x-birthday`, timeT) // // Then `token.Get("x-birthday")` will still return an `interface{}`, // but you can convert its type to `time.Time` // // bdayif, _ := token.Get(`x-birthday`) // bday := bdayif.(time.Time) func RegisterCustomField(name string, object interface{}) { registry.Register(name, object) } golang-github-lestrrat-go-jwx-1.2.30/jwt/jwt_test.go000066400000000000000000001217461465311135100224040ustar00rootroot00000000000000package jwt_test import ( "bytes" "context" "crypto/ecdsa" "crypto/ed25519" "crypto/rand" "crypto/rsa" "encoding/base64" "fmt" "net/http" "net/http/httptest" "net/url" "os" "strconv" "strings" "sync" "testing" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwe" "github.com/pkg/errors" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/lestrrat-go/jwx/jwt" "github.com/stretchr/testify/assert" ) /* This is commented out, because it is intended to cause compilation errors */ /* func TestOption(t *testing.T) { var p jwt.ParseOption var v jwt.ValidateOption var o jwt.Option p = o // should be error v = o // should be error _ = p _ = v } */ func TestJWTParse(t *testing.T) { t.Parallel() alg := jwa.RS256 key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtest.GenerateRsaKey should succeed`) { return } t1 := jwt.New() signed, err := jwt.Sign(t1, alg, key) if !assert.NoError(t, err, `jwt.Sign should succeed`) { return } t.Logf("%s", signed) t.Run("Parse (no signature verification)", func(t *testing.T) { t.Parallel() t2, err := jwt.Parse(signed) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) t.Run("ParseString (no signature verification)", func(t *testing.T) { t.Parallel() t2, err := jwt.ParseString(string(signed)) if !assert.NoError(t, err, `jwt.ParseString should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) t.Run("ParseReader (no signature verification)", func(t *testing.T) { t.Parallel() t2, err := jwt.ParseReader(bytes.NewReader(signed)) if !assert.NoError(t, err, `jwt.ParseReader should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) t.Run("Parse (correct signature key)", func(t *testing.T) { t.Parallel() t2, err := jwt.Parse(signed, jwt.WithVerify(alg, &key.PublicKey)) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) t.Run("parse (wrong signature algorithm)", func(t *testing.T) { t.Parallel() _, err := jwt.Parse(signed, jwt.WithVerify(jwa.RS512, &key.PublicKey)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } }) t.Run("parse (wrong signature key)", func(t *testing.T) { t.Parallel() pubkey := key.PublicKey pubkey.E = 0 // bogus value _, err := jwt.Parse(signed, jwt.WithVerify(alg, &pubkey)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } }) } func TestJWTParseVerify(t *testing.T) { t.Parallel() keys := make([]interface{}, 0, 6) keys = append(keys, []byte("abra cadabra")) rsaPrivKey, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "RSA key generated") { return } keys = append(keys, rsaPrivKey) for _, alg := range []jwa.EllipticCurveAlgorithm{jwa.P256, jwa.P384, jwa.P521} { ecdsaPrivKey, err := jwxtest.GenerateEcdsaKey(alg) if !assert.NoError(t, err, "jwxtest.GenerateEcdsaKey should succeed for %s", alg) { return } keys = append(keys, ecdsaPrivKey) } ed25519PrivKey, err := jwxtest.GenerateEd25519Key() if !assert.NoError(t, err, `jwxtest.GenerateEd25519Key should succeed`) { return } keys = append(keys, ed25519PrivKey) for _, key := range keys { key := key t.Run(fmt.Sprintf("Key=%T", key), func(t *testing.T) { t.Parallel() algs, err := jws.AlgorithmsForKey(key) if !assert.NoError(t, err, `jwas.AlgorithmsForKey should succeed`) { return } var dummyRawKey interface{} switch pk := key.(type) { case *rsa.PrivateKey: dummyRawKey, err = jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtest.GenerateRsaKey should succeed`) { return } case *ecdsa.PrivateKey: curveAlg, ok := ecutil.AlgorithmForCurve(pk.Curve) if !assert.True(t, ok, `ecutil.AlgorithmForCurve should succeed`) { return } dummyRawKey, err = jwxtest.GenerateEcdsaKey(curveAlg) if !assert.NoError(t, err, `jwxtest.GenerateEcdsaKey should succeed`) { return } case ed25519.PrivateKey: dummyRawKey, err = jwxtest.GenerateEd25519Key() if !assert.NoError(t, err, `jwxtest.GenerateEd25519Key should succeed`) { return } case []byte: dummyRawKey = jwxtest.GenerateSymmetricKey() default: assert.Fail(t, fmt.Sprintf("Unhandled key type %T", key)) return } testcases := []struct { SetAlgorithm bool SetKid bool InferAlgorithm bool Error bool }{ { SetAlgorithm: true, SetKid: true, InferAlgorithm: true, }, { SetAlgorithm: true, SetKid: true, InferAlgorithm: false, }, { SetAlgorithm: true, SetKid: false, InferAlgorithm: true, Error: true, }, { SetAlgorithm: false, SetKid: true, InferAlgorithm: true, }, { SetAlgorithm: false, SetKid: true, InferAlgorithm: false, Error: true, }, { SetAlgorithm: false, SetKid: false, InferAlgorithm: true, Error: true, }, { SetAlgorithm: true, SetKid: false, InferAlgorithm: false, Error: true, }, { SetAlgorithm: false, SetKid: false, InferAlgorithm: false, Error: true, }, } for _, alg := range algs { alg := alg for _, tc := range testcases { tc := tc t.Run(fmt.Sprintf("Algorithm=%s, SetAlgorithm=%t, SetKid=%t, InferAlgorithm=%t, Expect Error=%t", alg, tc.SetAlgorithm, tc.SetKid, tc.InferAlgorithm, tc.Error), func(t *testing.T) { t.Parallel() const kid = "test-jwt-parse-verify-kid" const dummyKid = "test-jwt-parse-verify-dummy-kid" hdrs := jws.NewHeaders() hdrs.Set(jws.KeyIDKey, kid) t1 := jwt.New() signed, err := jwt.Sign(t1, alg, key, jwt.WithHeaders(hdrs)) if !assert.NoError(t, err, "token.Sign should succeed") { return } pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } if tc.SetAlgorithm { pubkey.Set(jwk.AlgorithmKey, alg) } dummyKey, err := jwk.PublicKeyOf(dummyRawKey) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } if tc.SetKid { pubkey.Set(jwk.KeyIDKey, kid) dummyKey.Set(jwk.KeyIDKey, dummyKid) } // Permute on the location of the correct key, to check for possible // cases where we loop too little or too much. for i := 0; i < 6; i++ { var name string set := jwk.NewSet() switch i { case 0: name = "Lone key" set.Add(pubkey) case 1: name = "Two keys, correct one at the end" set.Add(dummyKey) set.Add(pubkey) case 2: name = "Two keys, correct one at the beginning" set.Add(pubkey) set.Add(dummyKey) case 3: name = "Three keys, correct one at the end" set.Add(dummyKey) set.Add(dummyKey) set.Add(pubkey) case 4: name = "Three keys, correct one at the middle" set.Add(dummyKey) set.Add(pubkey) set.Add(dummyKey) case 5: name = "Three keys, correct one at the beginning" set.Add(pubkey) set.Add(dummyKey) set.Add(dummyKey) } t.Run(name, func(t *testing.T) { options := []jwt.ParseOption{jwt.WithKeySet(set)} if tc.InferAlgorithm { options = append(options, jwt.InferAlgorithmFromKey(true)) } t2, err := jwt.Parse(signed, options...) if tc.Error { assert.Error(t, err, `jwt.Parse should fail`) return } if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) } }) } } }) } t.Run("Miscellaneous", func(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, "RSA key generated") { return } const alg = jwa.RS256 const kid = "my-very-special-key" hdrs := jws.NewHeaders() hdrs.Set(jws.KeyIDKey, kid) t1 := jwt.New() signed, err := jwt.Sign(t1, alg, key, jwt.WithHeaders(hdrs)) if !assert.NoError(t, err, "token.Sign should succeed") { return } t.Run("Use KeySetProvider", func(t *testing.T) { t.Parallel() pubkey, _ := jwk.New(key.PublicKey) pubkey.Set(jwk.AlgorithmKey, alg) pubkey.Set(jwk.KeyIDKey, kid) set := jwk.NewSet() set.Add(pubkey) t2, err := t1.Clone() if !assert.NoError(t, err) { return } if !assert.NoError(t, t2.Set(jwt.IssuerKey, "http://www.example.com")) { return } signed, err := jwt.Sign(t2, alg, key, jwt.WithHeaders(hdrs)) if !assert.NoError(t, err) { return } t3, err := jwt.Parse(signed, jwt.WithKeySetProvider(jwt.KeySetProviderFunc(func(tok jwt.Token) (jwk.Set, error) { switch tok.Issuer() { case "http://www.example.com": return set, nil } return nil, fmt.Errorf("unknown issuer") }))) if !assert.NoError(t, err, `jwt.Parse with key set func should succeed`) { return } if !assert.True(t, jwt.Equal(t2, t3), `t2 == t3`) { return } _, err = jwt.Parse(signed, jwt.WithKeySetProvider(jwt.KeySetProviderFunc(func(_ jwt.Token) (jwk.Set, error) { return nil, errors.New(`dummy`) }))) if !assert.Error(t, err, `jwt.Parse should fail`) { return } }) t.Run("Alg does not match", func(t *testing.T) { t.Parallel() pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err) { return } pubkey.Set(jwk.AlgorithmKey, jwa.HS256) pubkey.Set(jwk.KeyIDKey, kid) set := jwk.NewSet() set.Add(pubkey) _, err = jwt.Parse(signed, jwt.WithKeySet(set), jwt.InferAlgorithmFromKey(true), jwt.UseDefaultKey(true)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } }) t.Run("UseDefault with a key set with 1 key", func(t *testing.T) { t.Parallel() pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err) { return } pubkey.Set(jwk.AlgorithmKey, alg) pubkey.Set(jwk.KeyIDKey, kid) signedNoKid, err := jwt.Sign(t1, alg, key) if err != nil { t.Fatal("Failed to sign JWT") } set := jwk.NewSet() set.Add(pubkey) t2, err := jwt.Parse(signedNoKid, jwt.WithKeySet(set), jwt.UseDefaultKey(true)) if !assert.NoError(t, err, `jwt.Parse with key set should succeed`) { return } if !assert.True(t, jwt.Equal(t1, t2), `t1 == t2`) { return } }) t.Run("UseDefault with multiple keys should fail", func(t *testing.T) { t.Parallel() pubkey1 := jwk.NewRSAPublicKey() if !assert.NoError(t, pubkey1.FromRaw(&key.PublicKey)) { return } pubkey2 := jwk.NewRSAPublicKey() if !assert.NoError(t, pubkey2.FromRaw(&key.PublicKey)) { return } pubkey1.Set(jwk.KeyIDKey, kid) pubkey2.Set(jwk.KeyIDKey, "test-jwt-parse-verify-kid-2") signedNoKid, err := jwt.Sign(t1, alg, key) if err != nil { t.Fatal("Failed to sign JWT") } set := jwk.NewSet() set.Add(pubkey1) set.Add(pubkey2) _, err = jwt.Parse(signedNoKid, jwt.WithKeySet(set), jwt.UseDefaultKey(true)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } }) // This is a test to check if we allow alg: none in the protected header section. // But in truth, since we delegate everything to jws.Verify anyways, it's really // a test to see if jws.Verify returns an error if alg: none is specified in the // header section. Move this test to jws if need be. t.Run("Check alg=none", func(t *testing.T) { t.Parallel() // Create a signed payload, but use alg=none _, payload, signature, err := jws.SplitCompact(signed) if !assert.NoError(t, err, `jws.SplitCompact should succeed`) { return } dummyHeader := jws.NewHeaders() ctx, cancel := context.WithCancel(context.Background()) defer cancel() for iter := hdrs.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() dummyHeader.Set(pair.Key.(string), pair.Value) } dummyHeader.Set(jws.AlgorithmKey, jwa.NoSignature) dummyMarshaled, err := json.Marshal(dummyHeader) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } dummyEncoded := make([]byte, base64.RawURLEncoding.EncodedLen(len(dummyMarshaled))) base64.RawURLEncoding.Encode(dummyEncoded, dummyMarshaled) signedButNot := bytes.Join([][]byte{dummyEncoded, payload, signature}, []byte{'.'}) pubkey := jwk.NewRSAPublicKey() if !assert.NoError(t, pubkey.FromRaw(&key.PublicKey)) { return } pubkey.Set(jwk.KeyIDKey, kid) set := jwk.NewSet() set.Add(pubkey) _, err = jwt.Parse(signedButNot, jwt.WithKeySet(set)) // This should fail if !assert.Error(t, err, `jwt.Parse with key set + alg=none should fail`) { return } }) }) } func TestValidateClaims(t *testing.T) { t.Parallel() // GitHub issue #37: tokens are invalid in the second they are created (because Now() is not after IssuedAt()) t.Run("Empty fields", func(t *testing.T) { token := jwt.New() if !assert.Error(t, jwt.Validate(token, jwt.WithIssuer("foo")), `token.Validate should fail`) { return } if !assert.Error(t, jwt.Validate(token, jwt.WithJwtID("foo")), `token.Validate should fail`) { return } if !assert.Error(t, jwt.Validate(token, jwt.WithSubject("foo")), `token.Validate should fail`) { return } }) t.Run(jwt.IssuedAtKey+"+skew", func(t *testing.T) { t.Parallel() token := jwt.New() now := time.Now().UTC() token.Set(jwt.IssuedAtKey, now) const DefaultSkew = 0 args := []jwt.ValidateOption{ jwt.WithClock(jwt.ClockFunc(func() time.Time { return now })), jwt.WithAcceptableSkew(DefaultSkew), } if !assert.NoError(t, jwt.Validate(token, args...), "token.Validate should validate tokens in the same second they are created") { if now.Equal(token.IssuedAt()) { t.Errorf("iat claim failed: iat == now") } return } }) } const aLongLongTimeAgo = 233431200 const aLongLongTimeAgoString = "233431200" func TestUnmarshal(t *testing.T) { t.Parallel() testcases := []struct { Title string Source string Expected func() jwt.Token ExpectedJSON string }{ { Title: "single aud", Source: `{"aud":"foo"}`, Expected: func() jwt.Token { t := jwt.New() t.Set("aud", "foo") return t }, ExpectedJSON: `{"aud":["foo"]}`, }, { Title: "multiple aud's", Source: `{"aud":["foo","bar"]}`, Expected: func() jwt.Token { t := jwt.New() t.Set("aud", []string{"foo", "bar"}) return t }, ExpectedJSON: `{"aud":["foo","bar"]}`, }, { Title: "issuedAt", Source: `{"` + jwt.IssuedAtKey + `":` + aLongLongTimeAgoString + `}`, Expected: func() jwt.Token { t := jwt.New() t.Set(jwt.IssuedAtKey, aLongLongTimeAgo) return t }, ExpectedJSON: `{"` + jwt.IssuedAtKey + `":` + aLongLongTimeAgoString + `}`, }, } for _, tc := range testcases { tc := tc t.Run(tc.Title, func(t *testing.T) { t.Parallel() token := jwt.New() if !assert.NoError(t, json.Unmarshal([]byte(tc.Source), &token), `json.Unmarshal should succeed`) { return } if !assert.Equal(t, tc.Expected(), token, `token should match expected value`) { return } var buf bytes.Buffer if !assert.NoError(t, json.NewEncoder(&buf).Encode(token), `json.Marshal should succeed`) { return } if !assert.Equal(t, tc.ExpectedJSON, strings.TrimSpace(buf.String()), `json should match`) { return } }) } } func TestGH52(t *testing.T) { if testing.Short() { t.SkipNow() } t.Parallel() priv, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err) { return } pub := &priv.PublicKey if !assert.NoError(t, err) { return } const max = 100 var wg sync.WaitGroup wg.Add(max) for i := 0; i < max; i++ { // Do not use t.Run here as it will clutter up the outpuA go func(t *testing.T, priv *ecdsa.PrivateKey, i int) { defer wg.Done() tok := jwt.New() s, err := jwt.Sign(tok, jwa.ES256, priv) if !assert.NoError(t, err) { return } if _, err = jws.Verify(s, jwa.ES256, pub); !assert.NoError(t, err, `test should pass (run %d)`, i) { return } }(t, priv, i) } wg.Wait() } func TestUnmarshalJSON(t *testing.T) { t.Parallel() t.Run("Unmarshal audience with multiple values", func(t *testing.T) { t.Parallel() t1 := jwt.New() if !assert.NoError(t, json.Unmarshal([]byte(`{"aud":["foo", "bar", "baz"]}`), &t1), `jwt.Parse should succeed`) { return } aud, ok := t1.Get(jwt.AudienceKey) if !assert.True(t, ok, `jwt.Get(jwt.AudienceKey) should succeed`) { t.Logf("%#v", t1) return } if !assert.Equal(t, aud.([]string), []string{"foo", "bar", "baz"}, "audience should match. got %v", aud) { return } }) } func TestSignErrors(t *testing.T) { t.Parallel() priv, err := jwxtest.GenerateEcdsaKey(jwa.P521) if !assert.NoError(t, err, `jwxtest.GenerateEcdsaKey should succeed`) { return } tok := jwt.New() _, err = jwt.Sign(tok, jwa.SignatureAlgorithm("BOGUS"), priv) if !assert.Error(t, err) { return } if !assert.Contains(t, err.Error(), `unsupported signature algorithm "BOGUS"`) { return } _, err = jwt.Sign(tok, jwa.ES256, nil) if !assert.Error(t, err) { return } if !assert.Contains(t, err.Error(), "missing private key") { return } } func TestSignJWK(t *testing.T) { t.Parallel() priv, err := jwxtest.GenerateRsaKey() assert.Nil(t, err) key := jwk.NewRSAPrivateKey() err = key.FromRaw(priv) assert.Nil(t, err) key.Set(jwk.KeyIDKey, "test") key.Set(jwk.AlgorithmKey, jwa.RS256) tok := jwt.New() signed, err := jwt.Sign(tok, jwa.SignatureAlgorithm(key.Algorithm()), key) assert.Nil(t, err) header, err := jws.ParseString(string(signed)) assert.Nil(t, err) signatures := header.LookupSignature("test") assert.Len(t, signatures, 1) } func getJWTHeaders(jwt []byte) (jws.Headers, error) { msg, err := jws.Parse(jwt) if err != nil { return nil, err } return msg.Signatures()[0].ProtectedHeaders(), nil } func TestSignTyp(t *testing.T) { t.Parallel() key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err) { return } t.Run(`"typ" header parameter should be set to JWT by default`, func(t *testing.T) { t.Parallel() t1 := jwt.New() signed, err := jwt.Sign(t1, jwa.RS256, key) if !assert.NoError(t, err) { return } got, err := getJWTHeaders(signed) if !assert.NoError(t, err) { return } if !assert.Equal(t, `JWT`, got.Type(), `"typ" header parameter should be set to JWT`) { return } }) t.Run(`"typ" header parameter should be customizable by WithHeaders`, func(t *testing.T) { t.Parallel() t1 := jwt.New() hdrs := jws.NewHeaders() hdrs.Set(`typ`, `custom-typ`) signed, err := jwt.Sign(t1, jwa.RS256, key, jwt.WithHeaders(hdrs)) if !assert.NoError(t, err) { return } got, err := getJWTHeaders(signed) if !assert.NoError(t, err) { return } if !assert.Equal(t, `custom-typ`, got.Type(), `"typ" header parameter should be set to the custom value`) { return } }) } func TestReadFile(t *testing.T) { t.Parallel() f, err := os.CreateTemp("", "test-read-file-*.jwt") if !assert.NoError(t, err, `os.CreateTemp should succeed`) { return } defer f.Close() token := jwt.New() token.Set(jwt.IssuerKey, `lestrrat`) if !assert.NoError(t, json.NewEncoder(f).Encode(token), `json.NewEncoder.Encode should succeed`) { return } if _, err := jwt.ReadFile(f.Name(), jwt.WithValidate(true), jwt.WithIssuer("lestrrat")); !assert.NoError(t, err, `jwt.ReadFile should succeed`) { return } if _, err := jwt.ReadFile(f.Name(), jwt.WithValidate(true), jwt.WithIssuer("lestrrrrrat")); !assert.Error(t, err, `jwt.ReadFile should fail`) { return } } func TestCustomField(t *testing.T) { // XXX has global effect!!! jwt.RegisterCustomField(`x-birthday`, time.Time{}) defer jwt.RegisterCustomField(`x-birthday`, nil) expected := time.Date(2015, 11, 4, 5, 12, 52, 0, time.UTC) bdaybytes, _ := expected.MarshalText() // RFC3339 var b strings.Builder b.WriteString(`{"iss": "github.com/lesstrrat-go/jwx", "x-birthday": "`) b.Write(bdaybytes) b.WriteString(`"}`) src := b.String() t.Run("jwt.Parse", func(t *testing.T) { token, err := jwt.Parse([]byte(src)) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } v, ok := token.Get(`x-birthday`) if !assert.True(t, ok, `token.Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) t.Run("json.Unmarshal", func(t *testing.T) { token := jwt.New() if !assert.NoError(t, json.Unmarshal([]byte(src), token), `json.Unmarshal should succeed`) { return } v, ok := token.Get(`x-birthday`) if !assert.True(t, ok, `token.Get("x-birthday") should succeed`) { return } if !assert.Equal(t, expected, v, `values should match`) { return } }) } func TestParseRequest(t *testing.T) { const u = "https://github.com/lestrrat-gow/jwx/jwt" const xauth = "X-Authorization" privkey, _ := jwxtest.GenerateEcdsaJwk() privkey.Set(jwk.AlgorithmKey, jwa.ES256) privkey.Set(jwk.KeyIDKey, `my-awesome-key`) pubkey, _ := jwk.PublicKeyOf(privkey) pubkey.Set(jwk.AlgorithmKey, jwa.ES256) tok := jwt.New() tok.Set(jwt.IssuerKey, u) tok.Set(jwt.IssuedAtKey, time.Now().Round(0)) signed, _ := jwt.Sign(tok, jwa.ES256, privkey) testcases := []struct { Request func() *http.Request Parse func(*http.Request) (jwt.Token, error) Name string Error bool }{ { Name: "Token not present (w/ multiple options)", Request: func() *http.Request { return httptest.NewRequest(http.MethodGet, u, nil) }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithHeaderKey("Authorization"), jwt.WithHeaderKey(xauth), jwt.WithFormKey("access_token"), jwt.WithFormKey("token"), jwt.WithVerify(jwa.ES256, pubkey)) }, Error: true, }, { Name: "Token not present (w/o options)", Request: func() *http.Request { return httptest.NewRequest(http.MethodGet, u, nil) }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithVerify(jwa.ES256, pubkey)) }, Error: true, }, { Name: "Token in Authorization header (w/o extra options)", Request: func() *http.Request { req := httptest.NewRequest(http.MethodGet, u, nil) req.Header.Add("Authorization", "Bearer "+string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithVerify(jwa.ES256, pubkey)) }, }, { Name: "Token in Authorization header (w/o extra options, using jwk.Set)", Request: func() *http.Request { req := httptest.NewRequest(http.MethodGet, u, nil) req.Header.Add("Authorization", "Bearer "+string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { set := jwk.NewSet() set.Add(pubkey) return jwt.ParseRequest(req, jwt.WithKeySet(set)) }, }, { Name: "Token in Authorization header but we specified another header key", Request: func() *http.Request { req := httptest.NewRequest(http.MethodGet, u, nil) req.Header.Add("Authorization", "Bearer "+string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithHeaderKey(xauth), jwt.WithVerify(jwa.ES256, pubkey)) }, Error: true, }, { Name: fmt.Sprintf("Token in %s header (w/ option)", xauth), Request: func() *http.Request { req := httptest.NewRequest(http.MethodGet, u, nil) req.Header.Add(xauth, string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithHeaderKey(xauth), jwt.WithVerify(jwa.ES256, pubkey)) }, }, { Name: fmt.Sprintf("Invalid token in %s header", xauth), Request: func() *http.Request { req := httptest.NewRequest(http.MethodGet, u, nil) req.Header.Add(xauth, string(signed)+"foobarbaz") return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithHeaderKey(xauth), jwt.WithVerify(jwa.ES256, pubkey)) }, Error: true, }, { Name: "Token in access_token form field (w/ option)", Request: func() *http.Request { req := httptest.NewRequest(http.MethodPost, u, nil) // for whatever reason, I can't populate req.Body and get this to work // so populating req.Form directly instead req.Form = url.Values{} req.Form.Add("access_token", string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithFormKey("access_token"), jwt.WithVerify(jwa.ES256, pubkey)) }, }, { Name: "Token in access_token form field (w/o option)", Request: func() *http.Request { req := httptest.NewRequest(http.MethodPost, u, nil) // for whatever reason, I can't populate req.Body and get this to work // so populating req.Form directly instead req.Form = url.Values{} req.Form.Add("access_token", string(signed)) return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithVerify(jwa.ES256, pubkey)) }, Error: true, }, { Name: "Invalid token in access_token form field", Request: func() *http.Request { req := httptest.NewRequest(http.MethodPost, u, nil) // for whatever reason, I can't populate req.Body and get this to work // so populating req.Form directly instead req.Form = url.Values{} req.Form.Add("access_token", string(signed)+"foobarbarz") return req }, Parse: func(req *http.Request) (jwt.Token, error) { return jwt.ParseRequest(req, jwt.WithVerify(jwa.ES256, pubkey), jwt.WithFormKey("access_token")) }, Error: true, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { got, err := tc.Parse(tc.Request()) if tc.Error { t.Logf("%s", err) assert.Error(t, err, `tc.Parse should fail`) return } if !assert.NoError(t, err, `tc.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(tok, got), `tokens should match`) { { buf, _ := json.MarshalIndent(tok, "", " ") t.Logf("expected: %s", buf) } { buf, _ := json.MarshalIndent(got, "", " ") t.Logf("got: %s", buf) } return } }) } } func TestGHIssue368(t *testing.T) { // DO NOT RUN THIS IN PARALLEL for _, flatten := range []bool{true, false} { flatten := flatten t.Run(fmt.Sprintf("Test serialization (WithFlattenAudience(%t))", flatten), func(t *testing.T) { jwt.Settings(jwt.WithFlattenAudience(flatten)) t.Run("Single Key", func(t *testing.T) { tok := jwt.New() _ = tok.Set(jwt.AudienceKey, "hello") buf, err := json.MarshalIndent(tok, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } var expected string if flatten { expected = `{ "aud": "hello" }` } else { expected = `{ "aud": [ "hello" ] }` } if !assert.Equal(t, expected, string(buf), `output should match`) { return } }) t.Run("Multiple Keys", func(t *testing.T) { tok, err := jwt.NewBuilder(). Audience([]string{"hello", "world"}). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } buf, err := json.MarshalIndent(tok, "", " ") if !assert.NoError(t, err, `json.MarshalIndent should succeed`) { return } const expected = `{ "aud": [ "hello", "world" ] }` if !assert.Equal(t, expected, string(buf), `output should match`) { return } }) }) } } func TestGH375(t *testing.T) { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } key.Set(jwk.KeyIDKey, `test`) token, err := jwt.NewBuilder(). Issuer(`foobar`). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } signAlg := jwa.RS512 signed, err := jwt.Sign(token, signAlg, key) if !assert.NoError(t, err, `jwt.Sign should succeed`) { return } verifyKey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } verifyKey.Set(jwk.KeyIDKey, `test`) verifyKey.Set(jwk.AlgorithmKey, jwa.RS256) // != jwa.RS512 ks := jwk.NewSet() ks.Add(verifyKey) _, err = jwt.Parse(signed, jwt.WithKeySet(ks)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } } type Claim struct { Foo string Bar int64 } func TestJWTParseWithTypedClaim(t *testing.T) { testcases := []struct { Name string Options []jwt.ParseOption PostProcess func(*testing.T, interface{}) (*Claim, error) }{ { Name: "Basic", Options: []jwt.ParseOption{jwt.WithTypedClaim("typed-claim", Claim{})}, PostProcess: func(t *testing.T, claim interface{}) (*Claim, error) { t.Helper() v, ok := claim.(Claim) if !ok { return nil, errors.Errorf(`claim value should be of type "Claim", but got %T`, claim) } return &v, nil }, }, { Name: "json.RawMessage", Options: []jwt.ParseOption{jwt.WithTypedClaim("typed-claim", json.RawMessage{})}, PostProcess: func(t *testing.T, claim interface{}) (*Claim, error) { t.Helper() v, ok := claim.(json.RawMessage) if !ok { return nil, errors.Errorf(`claim value should be of type "json.RawMessage", but got %T`, claim) } var c Claim if err := json.Unmarshal(v, &c); err != nil { return nil, errors.Wrap(err, `json.Unmarshal failed`) } return &c, nil }, }, } expected := &Claim{Foo: "Foo", Bar: 0xdeadbeef} key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtest.GenerateRsaKey should succeed`) { return } var signed []byte { token := jwt.New() if !assert.NoError(t, token.Set("typed-claim", expected), `expected.Set should succeed`) { return } v, err := jwt.Sign(token, jwa.RS256, key) if !assert.NoError(t, err, `jws.Sign should succeed`) { return } signed = v } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { got, err := jwt.Parse(signed, tc.Options...) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } v, ok := got.Get("typed-claim") if !assert.True(t, ok, `got.Get() should succeed`) { return } claim, err := tc.PostProcess(t, v) if !assert.NoError(t, err, `tc.PostProcess should succeed`) { return } if !assert.Equal(t, claim, expected, `claim should match expected value`) { return } }) } } func TestGH393(t *testing.T) { t.Run("Non-existent required claims", func(t *testing.T) { tok := jwt.New() if !assert.Error(t, jwt.Validate(tok, jwt.WithRequiredClaim(jwt.IssuedAtKey)), `jwt.Validate should fail`) { return } }) t.Run("exp - iat < WithMaxDelta(10 secs)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). IssuedAt(now). Expiration(now.Add(5 * time.Second)). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.Error(t, jwt.Validate(tok, jwt.WithMaxDelta(2*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey)), `jwt.Validate should fail`) { return } if !assert.NoError(t, jwt.Validate(tok, jwt.WithMaxDelta(10*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey)), `jwt.Validate should succeed`) { return } }) t.Run("iat - exp (5 secs) < WithMinDelta(10 secs)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). IssuedAt(now). Expiration(now.Add(5 * time.Second)). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.Error(t, jwt.Validate(tok, jwt.WithMinDelta(10*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey)), `jwt.Validate should fail`) { return } }) t.Run("iat - exp (5 secs) > WithMinDelta(10 secs)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). IssuedAt(now). Expiration(now.Add(5 * time.Second)). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.NoError(t, jwt.Validate(tok, jwt.WithMinDelta(10*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey), jwt.WithAcceptableSkew(5*time.Second)), `jwt.Validate should succeed`) { return } }) t.Run("now - iat < WithMaxDelta(10 secs)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). IssuedAt(now). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.NoError(t, jwt.Validate(tok, jwt.WithMaxDelta(10*time.Second, "", jwt.IssuedAtKey), jwt.WithClock(jwt.ClockFunc(func() time.Time { return now.Add(5 * time.Second) }))), `jwt.Validate should succeed`) { return } }) t.Run("invalid claim name (c1)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). Claim("foo", now). Expiration(now.Add(5 * time.Second)). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.Error(t, jwt.Validate(tok, jwt.WithMinDelta(10*time.Second, jwt.ExpirationKey, "foo"), jwt.WithAcceptableSkew(5*time.Second)), `jwt.Validate should fail`) { return } }) t.Run("invalid claim name (c2)", func(t *testing.T) { now := time.Now() tok, err := jwt.NewBuilder(). Claim("foo", now.Add(5*time.Second)). IssuedAt(now). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.Error(t, jwt.Validate(tok, jwt.WithMinDelta(10*time.Second, "foo", jwt.IssuedAtKey), jwt.WithAcceptableSkew(5*time.Second)), `jwt.Validate should fail`) { return } }) // Following tests deviate a little from the original issue, but // since they were added for the same issue, we just bundle the // tests together t.Run(`WithRequiredClaim fails for non-existent claim`, func(t *testing.T) { tok := jwt.New() if !assert.Error(t, jwt.Validate(tok, jwt.WithRequiredClaim("foo")), `jwt.Validate should fail`) { return } }) t.Run(`WithRequiredClaim succeeds for existing claim`, func(t *testing.T) { tok, err := jwt.NewBuilder(). Claim(`foo`, 1). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } if !assert.NoError(t, jwt.Validate(tok, jwt.WithRequiredClaim("foo")), `jwt.Validate should fail`) { return } }) } func TestNested(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtest.GenerateRsaKey should succeed`) { return } token, err := jwt.NewBuilder(). Issuer(`https://github.com/lestrrat-go/jwx`). Build() if !assert.NoError(t, err, `jwt.Builder should succeed`) { return } serialized, err := jwt.NewSerializer(). Sign(jwa.RS256, key). Encrypt(jwa.RSA_OAEP, key.PublicKey, jwa.A256GCM, jwa.NoCompress). Serialize(token) if !assert.NoError(t, err, `jwt.NewSerializer should succeed`) { return } // First layer should be JWE jweMessage := jwe.NewMessage() decrypted, err := jwe.Decrypt(serialized, jwa.RSA_OAEP, key, jwe.WithMessage(jweMessage)) if !assert.NoError(t, err, `jwe.Decrypt should succeed`) { return } // The message should have cty = JWT cty := jweMessage.ProtectedHeaders().ContentType() if !assert.Equal(t, cty, `JWT`, `cty should be JWT`) { return } // Second layer should JWS. jwsMessage := jws.NewMessage() verified, err := jws.Verify(decrypted, jwa.RS256, key.PublicKey, jws.WithMessage(jwsMessage)) if !assert.NoError(t, err, `jws.Verify should succeed`) { return } typ := jwsMessage.Signatures()[0].ProtectedHeaders().Type() if !assert.Equal(t, typ, `JWT`, `cty should be JWT`) { return } t.Logf("%s", verified) parsed, err := jwt.Parse(serialized, jwt.WithPedantic(true), jwt.WithVerify(jwa.RS256, key.PublicKey), jwt.WithDecrypt(jwa.RSA_OAEP, key), ) if !assert.NoError(t, err, `jwt.Parse with both decryption and verification should succeed`) { return } _ = parsed } func TestRFC7797(t *testing.T) { key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `jwxtest.GenerateRsaKey should succeed`) { return } hdrs := jws.NewHeaders() hdrs.Set("b64", false) hdrs.Set("crit", "b64") token := jwt.New() token.Set(jwt.AudienceKey, `foo`) _, err = jwt.Sign(token, jwa.RS256, key, jwt.WithJwsHeaders(hdrs)) if !assert.Error(t, err, `jwt.Sign should fail`) { return } } func TestGH430(t *testing.T) { t1 := jwt.New() err := t1.Set("payload", map[string]interface{}{ "name": "someone", }) if !assert.NoError(t, err, `t1.Set should succeed`) { return } key := []byte("secret") signed, err := jwt.Sign(t1, jwa.HS256, key) if !assert.NoError(t, err, `jwt.Sign should succeed`) { return } if _, err = jwt.Parse(signed, jwt.WithVerify(jwa.HS256, key)); !assert.NoError(t, err, `jwt.Parse should succeed`) { return } } func TestBenHigginsByPassRegression(t *testing.T) { key, err := rsa.GenerateKey(rand.Reader, 2048) if err != nil { panic(err) } // Test if an access token JSON payload parses when provided directly // // The JSON below is slightly modified example payload from: // https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-the-access-token.html // Case 1: add "aud", and adjust exp to be valid // Case 2: do not add "aud", adjust exp exp := strconv.Itoa(int(time.Now().Unix()) + 1000) const tmpl = `{%s "sub": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "device_key": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "cognito:groups": ["admin"], "token_use": "access", "scope": "aws.cognito.signin.user.admin", "auth_time": 1562190524, "iss": "https://cognito-idp.us-west-2.amazonaws.com/us-west-2_example", "exp": %s, "iat": 1562190524, "origin_jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "jti": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "client_id": "57cbishk4j24pabc1234567890", "username": "janedoe@example.com" }` testcases := [][]byte{ []byte(fmt.Sprintf(tmpl, `"aud": ["test"],`, exp)), []byte(fmt.Sprintf(tmpl, ``, exp)), } for _, tc := range testcases { for _, pedantic := range []bool{true, false} { _, err = jwt.Parse( tc, jwt.WithValidate(true), jwt.WithPedantic(pedantic), jwt.WithVerify(jwa.RS256, &key.PublicKey), ) t.Logf("%s", err) if !assert.Error(t, err, `jwt.Parse should fail`) { return } } } } func TestVerifyAuto(t *testing.T) { key, err := jwxtest.GenerateRsaJwk() if !assert.NoError(t, err, `jwxtest.GenerateRsaJwk should succeed`) { return } key.Set(jwk.KeyIDKey, `my-awesome-key`) pubkey, err := jwk.PublicKeyOf(key) if !assert.NoError(t, err, `jwk.PublicKeyOf should succeed`) { return } set := jwk.NewSet() set.Add(pubkey) backoffCount := 0 srv := httptest.NewTLSServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { switch r.URL.Query().Get(`type`) { case "backoff": backoffCount++ if backoffCount == 1 { w.WriteHeader(http.StatusInternalServerError) return } } w.WriteHeader(http.StatusOK) json.NewEncoder(w).Encode(set) })) defer srv.Close() tok, err := jwt.NewBuilder(). Claim(jwt.IssuerKey, `https://github.com/lestrrat-go/jwx`). Claim(jwt.SubjectKey, `jku-test`). Build() if !assert.NoError(t, err, `jwt.NewBuilder.Build() should succeed`) { return } hdrs := jws.NewHeaders() hdrs.Set(jws.JWKSetURLKey, srv.URL) signed, err := jwt.Sign(tok, jwa.RS256, key, jwt.WithHeaders(hdrs)) if !assert.NoError(t, err, `jwt.Sign() should succeed`) { return } wl := jwk.NewMapWhitelist(). Add(srv.URL) parsed, err := jwt.Parse(signed, jwt.WithVerifyAuto(true), jwt.WithFetchWhitelist(wl), jwt.WithHTTPClient(srv.Client())) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(tok, parsed), `tokens should be equal`) { return } _, err = jwt.Parse(signed, jwt.WithVerifyAuto(true)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } wl = jwk.NewMapWhitelist(). Add(`https://github.com/lestrrat-go/jwx`) _, err = jwt.Parse(signed, jwt.WithVerifyAuto(true), jwt.WithFetchWhitelist(wl)) if !assert.Error(t, err, `jwt.Parse should fail`) { return } // now with backoff bo := backoff.NewConstantPolicy(backoff.WithInterval(500 * time.Millisecond)) parsed, err = jwt.Parse(signed, jwt.WithVerifyAuto(true), jwt.WithFetchWhitelist(jwk.InsecureWhitelist{}), jwt.WithHTTPClient(srv.Client()), jwt.WithFetchBackoff(bo), ) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(tok, parsed), `tokens should be equal`) { return } // now with AutoRefresh ar := jwk.NewAutoRefresh(context.TODO()) parsed, err = jwt.Parse(signed, jwt.WithVerifyAuto(true), jwt.WithJWKSetFetcher(jws.JWKSetFetchFunc(func(u string) (jwk.Set, error) { ar.Configure(u, jwk.WithHTTPClient(srv.Client()), jwk.WithFetchWhitelist(jwk.InsecureWhitelist{}), ) return ar.Fetch(context.TODO(), u) })), ) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } if !assert.True(t, jwt.Equal(tok, parsed), `tokens should be equal`) { return } } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/000077500000000000000000000000001465311135100214555ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/address.go000066400000000000000000000172301465311135100234340ustar00rootroot00000000000000package openid import ( "strconv" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/pkg/errors" ) const ( AddressFormattedKey = "formatted" AddressStreetAddressKey = "street_address" AddressLocalityKey = "locality" AddressRegionKey = "region" AddressPostalCodeKey = "postal_code" AddressCountryKey = "country" ) // AddressClaim is the address claim as described in https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim type AddressClaim struct { formatted *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim streetAddress *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim locality *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim region *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim postalCode *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim country *string // https://openid.net/specs/openid-connect-core-1_0.html#AddressClaim } type addressClaimMarshalProxy struct { Xformatted *string `json:"formatted,omitempty"` XstreetAddress *string `json:"street_address,omitempty"` Xlocality *string `json:"locality,omitempty"` Xregion *string `json:"region,omitempty"` XpostalCode *string `json:"postal_code,omitempty"` Xcountry *string `json:"country,omitempty"` } func NewAddress() *AddressClaim { return &AddressClaim{} } // Formatted is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) Formatted() string { if t.formatted == nil { return "" } return *(t.formatted) } // StreetAddress is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) StreetAddress() string { if t.streetAddress == nil { return "" } return *(t.streetAddress) } // Locality is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) Locality() string { if t.locality == nil { return "" } return *(t.locality) } // Region is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) Region() string { if t.region == nil { return "" } return *(t.region) } // PostalCode is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) PostalCode() string { if t.postalCode == nil { return "" } return *(t.postalCode) } // Country is a convenience function to retrieve the corresponding value store in the token // if there is a problem retrieving the value, the zero value is returned. If you need to differentiate between existing/non-existing values, use `Get` instead func (t AddressClaim) Country() string { if t.country == nil { return "" } return *(t.country) } func (t *AddressClaim) Get(s string) (interface{}, bool) { switch s { case AddressFormattedKey: if t.formatted == nil { return nil, false } return *(t.formatted), true case AddressStreetAddressKey: if t.streetAddress == nil { return nil, false } return *(t.streetAddress), true case AddressLocalityKey: if t.locality == nil { return nil, false } return *(t.locality), true case AddressRegionKey: if t.region == nil { return nil, false } return *(t.region), true case AddressPostalCodeKey: if t.postalCode == nil { return nil, false } return *(t.postalCode), true case AddressCountryKey: if t.country == nil { return nil, false } return *(t.country), true } return nil, false } func (t *AddressClaim) Set(key string, value interface{}) error { switch key { case AddressFormattedKey: v, ok := value.(string) if ok { t.formatted = &v return nil } return errors.Errorf(`invalid type for key 'formatted': %T`, value) case AddressStreetAddressKey: v, ok := value.(string) if ok { t.streetAddress = &v return nil } return errors.Errorf(`invalid type for key 'streetAddress': %T`, value) case AddressLocalityKey: v, ok := value.(string) if ok { t.locality = &v return nil } return errors.Errorf(`invalid type for key 'locality': %T`, value) case AddressRegionKey: v, ok := value.(string) if ok { t.region = &v return nil } return errors.Errorf(`invalid type for key 'region': %T`, value) case AddressPostalCodeKey: v, ok := value.(string) if ok { t.postalCode = &v return nil } return errors.Errorf(`invalid type for key 'postalCode': %T`, value) case AddressCountryKey: v, ok := value.(string) if ok { t.country = &v return nil } return errors.Errorf(`invalid type for key 'country': %T`, value) default: return errors.Errorf(`invalid key for address claim: %s`, key) } } func (t *AddressClaim) Accept(v interface{}) error { switch v := v.(type) { case AddressClaim: *t = v return nil case *AddressClaim: *t = *v return nil case map[string]interface{}: for key, value := range v { if err := t.Set(key, value); err != nil { return errors.Wrap(err, `failed to set header`) } } return nil default: return errors.Errorf(`invalid type for AddressClaim: %T`, v) } } // MarshalJSON serializes the token in JSON format. func (t AddressClaim) MarshalJSON() ([]byte, error) { buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') prev := buf.Len() if v := t.country; v != nil { buf.WriteString(`"country":`) buf.WriteString(strconv.Quote(*v)) } if v := t.formatted; v != nil { if buf.Len() > prev { buf.WriteByte(',') } prev = buf.Len() buf.WriteString(`"formatted":`) buf.WriteString(strconv.Quote(*v)) } if v := t.locality; v != nil { if buf.Len() > prev { buf.WriteByte(',') } prev = buf.Len() buf.WriteString(`"locality":`) buf.WriteString(strconv.Quote(*v)) } if v := t.postalCode; v != nil { if buf.Len() > prev { buf.WriteByte(',') } prev = buf.Len() buf.WriteString(`"postal_code":`) buf.WriteString(strconv.Quote(*v)) } if v := t.region; v != nil { if buf.Len() > prev { buf.WriteByte(',') } prev = buf.Len() buf.WriteString(`"region":`) buf.WriteString(strconv.Quote(*v)) } if v := t.streetAddress; v != nil { if buf.Len() > prev { buf.WriteByte(',') } buf.WriteString(`"street_address":`) buf.WriteString(strconv.Quote(*v)) } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } // UnmarshalJSON deserializes data from a JSON data buffer into a AddressClaim func (t *AddressClaim) UnmarshalJSON(data []byte) error { var proxy addressClaimMarshalProxy if err := json.Unmarshal(data, &proxy); err != nil { return errors.Wrap(err, `failed to unmarshasl address claim`) } t.formatted = proxy.Xformatted t.streetAddress = proxy.XstreetAddress t.locality = proxy.Xlocality t.region = proxy.Xregion t.postalCode = proxy.XpostalCode t.country = proxy.Xcountry return nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/birthdate.go000066400000000000000000000067341465311135100237640ustar00rootroot00000000000000package openid import ( "bytes" "fmt" "io" "regexp" "strconv" "github.com/lestrrat-go/jwx/internal/json" "github.com/pkg/errors" ) // https://openid.net/specs/openid-connect-core-1_0.html // // End-User's birthday, represented as an ISO 8601:2004 [ISO8601‑2004] YYYY-MM-DD format. // The year MAY be 0000, indicating that it is omitted. To represent only the year, YYYY // format is allowed. Note that depending on the underlying platform's date related function, // providing just year can result in varying month and day, so the implementers need to // take this factor into account to correctly process the dates. type BirthdateClaim struct { year *int month *int day *int } func (b BirthdateClaim) Year() int { if b.year == nil { return 0 } return *(b.year) } func (b BirthdateClaim) Month() int { if b.month == nil { return 0 } return *(b.month) } func (b BirthdateClaim) Day() int { if b.day == nil { return 0 } return *(b.day) } func (b *BirthdateClaim) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { return errors.Wrap(err, `failed to unmarshal JSON string for birthdate claim`) } if err := b.Accept(s); err != nil { return errors.Wrap(err, `failed to accept JSON value for birthdate claim`) } return nil } func tointptr(v int64) *int { i := int(v) return &i } var birthdateRx = regexp.MustCompile(`^(\d{4})-(\d{2})-(\d{2})$`) // Accepts a value read from JSON, and converts it to a BirthdateClaim. // This method DOES NOT verify the correctness of a date. // Consumers should check for validity of dates such as Apr 31 et al func (b *BirthdateClaim) Accept(v interface{}) error { b.year = nil b.month = nil b.day = nil switch v := v.(type) { case *BirthdateClaim: if ptr := v.year; ptr != nil { year := *ptr b.year = &year } if ptr := v.month; ptr != nil { month := *ptr b.month = &month } if ptr := v.day; ptr != nil { day := *ptr b.day = &day } return nil case string: // yeah, regexp is slow. PR's welcome indices := birthdateRx.FindStringSubmatchIndex(v) if indices == nil { return errors.New(`invalid pattern for birthdate`) } var tmp BirthdateClaim // Okay, this really isn't kosher, but we're doing this for // the coverage game... Because birthdateRx already checked that // the string contains 3 strings with consecutive decimal values // we can assume that strconv.ParseInt always succeeds. // strconv.ParseInt (and strconv.ParseUint that it uses internally) // only returns range errors, so we should be safe. year, _ := strconv.ParseInt(v[indices[2]:indices[3]], 10, 64) if year <= 0 { return errors.New(`failed to parse birthdate year`) } tmp.year = tointptr(year) month, _ := strconv.ParseInt(v[indices[4]:indices[5]], 10, 64) if month <= 0 { return errors.New(`failed to parse birthdate month`) } tmp.month = tointptr(month) day, _ := strconv.ParseInt(v[indices[6]:indices[7]], 10, 64) if day <= 0 { return errors.New(`failed to parse birthdate day`) } tmp.day = tointptr(day) *b = tmp return nil default: return errors.Errorf(`invalid type for birthdate: %T`, v) } } func (b BirthdateClaim) encode(dst io.Writer) { fmt.Fprintf(dst, "%04d-%02d-%02d", b.Year(), b.Month(), b.Day()) } func (b BirthdateClaim) String() string { var buf bytes.Buffer b.encode(&buf) return buf.String() } func (b BirthdateClaim) MarshalText() ([]byte, error) { var buf bytes.Buffer b.encode(&buf) return buf.Bytes(), nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/builder_gen.go000066400000000000000000000066511465311135100242730ustar00rootroot00000000000000// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT package openid import ( "time" "github.com/pkg/errors" ) // Builder is a convenience wrapper around the New() constructor // and the Set() methods to assign values to Token claims. // Users can successively call Claim() on the Builder, and have it // construct the Token when Build() is called. This alleviates the // need for the user to check for the return value of every single // Set() method call. // Note that each call to Claim() overwrites the value set from the // previous call. type Builder struct { claims []*ClaimPair } func NewBuilder() *Builder { return &Builder{} } func (b *Builder) Claim(name string, value interface{}) *Builder { b.claims = append(b.claims, &ClaimPair{Key: name, Value: value}) return b } func (b *Builder) Address(v *AddressClaim) *Builder { return b.Claim(AddressKey, v) } func (b *Builder) Audience(v []string) *Builder { return b.Claim(AudienceKey, v) } func (b *Builder) Birthdate(v *BirthdateClaim) *Builder { return b.Claim(BirthdateKey, v) } func (b *Builder) Email(v string) *Builder { return b.Claim(EmailKey, v) } func (b *Builder) EmailVerified(v bool) *Builder { return b.Claim(EmailVerifiedKey, v) } func (b *Builder) Expiration(v time.Time) *Builder { return b.Claim(ExpirationKey, v) } func (b *Builder) FamilyName(v string) *Builder { return b.Claim(FamilyNameKey, v) } func (b *Builder) Gender(v string) *Builder { return b.Claim(GenderKey, v) } func (b *Builder) GivenName(v string) *Builder { return b.Claim(GivenNameKey, v) } func (b *Builder) IssuedAt(v time.Time) *Builder { return b.Claim(IssuedAtKey, v) } func (b *Builder) Issuer(v string) *Builder { return b.Claim(IssuerKey, v) } func (b *Builder) JwtID(v string) *Builder { return b.Claim(JwtIDKey, v) } func (b *Builder) Locale(v string) *Builder { return b.Claim(LocaleKey, v) } func (b *Builder) MiddleName(v string) *Builder { return b.Claim(MiddleNameKey, v) } func (b *Builder) Name(v string) *Builder { return b.Claim(NameKey, v) } func (b *Builder) Nickname(v string) *Builder { return b.Claim(NicknameKey, v) } func (b *Builder) NotBefore(v time.Time) *Builder { return b.Claim(NotBeforeKey, v) } func (b *Builder) PhoneNumber(v string) *Builder { return b.Claim(PhoneNumberKey, v) } func (b *Builder) PhoneNumberVerified(v bool) *Builder { return b.Claim(PhoneNumberVerifiedKey, v) } func (b *Builder) Picture(v string) *Builder { return b.Claim(PictureKey, v) } func (b *Builder) PreferredUsername(v string) *Builder { return b.Claim(PreferredUsernameKey, v) } func (b *Builder) Profile(v string) *Builder { return b.Claim(ProfileKey, v) } func (b *Builder) Subject(v string) *Builder { return b.Claim(SubjectKey, v) } func (b *Builder) UpdatedAt(v time.Time) *Builder { return b.Claim(UpdatedAtKey, v) } func (b *Builder) Website(v string) *Builder { return b.Claim(WebsiteKey, v) } func (b *Builder) Zoneinfo(v string) *Builder { return b.Claim(ZoneinfoKey, v) } // Build creates a new token based on the claims that the builder has received // so far. If a claim cannot be set, then the method returns a nil Token with // a en error as a second return value func (b *Builder) Build() (Token, error) { tok := New() for _, claim := range b.claims { if err := tok.Set(claim.Key.(string), claim.Value); err != nil { return nil, errors.Wrapf(err, `failed to set claim %q`, claim.Key.(string)) } } return tok, nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/interface.go000066400000000000000000000005621465311135100237470ustar00rootroot00000000000000package openid import ( "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" ) type ClaimPair = mapiter.Pair type Iterator = mapiter.Iterator type Visitor = iter.MapVisitor type VisitorFunc = iter.MapVisitorFunc type DecodeCtx = json.DecodeCtx type TokenWithDecodeCtx = json.DecodeCtxContainer golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/openid.go000066400000000000000000000026541465311135100232710ustar00rootroot00000000000000// Package openid provides a specialized token that provides utilities // to work with OpenID JWT tokens. // // In order to use OpenID claims, you specify the token to use in the // jwt.Parse method // // jwt.Parse(data, jwt.WithToken(openid.New()) package openid import ( "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwt" "github.com/pkg/errors" ) var registry = json.NewRegistry() func (t *stdToken) Clone() (jwt.Token, error) { var dst jwt.Token = New() for _, pair := range t.makePairs() { //nolint:forcetypeassert key := pair.Key.(string) if err := dst.Set(key, pair.Value); err != nil { return nil, errors.Wrapf(err, `failed to set %s`, key) } } return dst, nil } // RegisterCustomField allows users to specify that a private field // be decoded as an instance of the specified type. This option has // a global effect. // // For example, suppose you have a custom field `x-birthday`, which // you want to represent as a string formatted in RFC3339 in JSON, // but want it back as `time.Time`. // // In that case you would register a custom field as follows // // jwt.RegisterCustomField(`x-birthday`, timeT) // // Then `token.Get("x-birthday")` will still return an `interface{}`, // but you can convert its type to `time.Time` // // bdayif, _ := token.Get(`x-birthday`) // bday := bdayif.(time.Time) func RegisterCustomField(name string, object interface{}) { registry.Register(name, object) } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/openid_test.go000066400000000000000000000407031465311135100243250ustar00rootroot00000000000000package openid_test import ( "context" "fmt" "strconv" "testing" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwt" "github.com/lestrrat-go/jwx/jwt/internal/types" "github.com/lestrrat-go/jwx/jwt/openid" "github.com/stretchr/testify/assert" ) const aLongLongTimeAgo = 233431200 const aLongLongTimeAgoString = "233431200" const ( tokenTime = 233431200 ) var expectedTokenTime = time.Unix(tokenTime, 0).UTC() func testStockAddressClaim(t *testing.T, x *openid.AddressClaim) { t.Helper() if !assert.NotNil(t, x) { return } tests := []struct { Accessor func() string KeyName string Value string }{ { Accessor: x.Formatted, KeyName: openid.AddressFormattedKey, Value: "〒105-0011 東京都港区芝公園4丁目2−8", }, { Accessor: x.Country, KeyName: openid.AddressCountryKey, Value: "日本", }, { Accessor: x.Region, KeyName: openid.AddressRegionKey, Value: "東京都", }, { Accessor: x.Locality, KeyName: openid.AddressLocalityKey, Value: "港区", }, { Accessor: x.StreetAddress, KeyName: openid.AddressStreetAddressKey, Value: "芝公園4丁目2−8", }, { Accessor: x.PostalCode, KeyName: openid.AddressPostalCodeKey, Value: "105-0011", }, } for _, tc := range tests { tc := tc t.Run(tc.KeyName, func(t *testing.T) { t.Run("Accessor", func(t *testing.T) { if !assert.Equal(t, tc.Value, tc.Accessor(), "values should match") { return } }) t.Run("Get", func(t *testing.T) { v, ok := x.Get(tc.KeyName) if !assert.True(t, ok, `x.Get should succeed`) { return } if !assert.Equal(t, tc.Value, v, `values should match`) { return } }) }) } } func TestAdressClaim(t *testing.T) { const src = `{ "formatted": "〒105-0011 東京都港区芝公園4丁目2−8", "street_address": "芝公園4丁目2−8", "locality": "港区", "region": "東京都", "postal_code": "105-0011", "country": "日本" }` var address openid.AddressClaim if !assert.NoError(t, json.Unmarshal([]byte(src), &address), "json.Unmarshal should succeed") { return } var roundtrip openid.AddressClaim buf, err := json.Marshal(address) if !assert.NoError(t, err, `json.Marshal(address) should succeed`) { return } if !assert.NoError(t, json.Unmarshal(buf, &roundtrip), "json.Unmarshal should succeed") { return } for _, x := range []*openid.AddressClaim{&address, &roundtrip} { testStockAddressClaim(t, x) } } func TestOpenIDClaims(t *testing.T) { getVerify := func(token openid.Token, key string, expected interface{}) bool { v, ok := token.Get(key) if !assert.True(t, ok, `token.Get %#v should succeed`, key) { return false } return assert.Equal(t, v, expected) } var base = []struct { Value interface{} Expected func(interface{}) interface{} Check func(openid.Token) Key string }{ { Key: openid.AudienceKey, Value: []string{"developers", "secops", "tac"}, Check: func(token openid.Token) { assert.Equal(t, token.Audience(), []string{"developers", "secops", "tac"}) }, }, { Key: openid.ExpirationKey, Value: tokenTime, Expected: func(v interface{}) interface{} { var n types.NumericDate if err := n.Accept(v); err != nil { panic(err) } return n.Get() }, Check: func(token openid.Token) { assert.Equal(t, token.Expiration(), expectedTokenTime) }, }, { Key: openid.IssuedAtKey, Value: tokenTime, Expected: func(v interface{}) interface{} { var n types.NumericDate if err := n.Accept(v); err != nil { panic(err) } return n.Get() }, Check: func(token openid.Token) { assert.Equal(t, token.Expiration(), expectedTokenTime) }, }, { Key: openid.IssuerKey, Value: "http://www.example.com", Check: func(token openid.Token) { assert.Equal(t, token.Issuer(), "http://www.example.com") }, }, { Key: openid.JwtIDKey, Value: "e9bc097a-ce51-4036-9562-d2ade882db0d", Check: func(token openid.Token) { assert.Equal(t, token.JwtID(), "e9bc097a-ce51-4036-9562-d2ade882db0d") }, }, { Key: openid.NotBeforeKey, Value: tokenTime, Expected: func(v interface{}) interface{} { var n types.NumericDate if err := n.Accept(v); err != nil { panic(err) } return n.Get() }, Check: func(token openid.Token) { assert.Equal(t, token.NotBefore(), expectedTokenTime) }, }, { Key: openid.SubjectKey, Value: "unit test", Check: func(token openid.Token) { assert.Equal(t, token.Subject(), "unit test") }, }, { Value: "jwx", Key: openid.NameKey, Check: func(token openid.Token) { assert.Equal(t, token.Name(), "jwx") }, }, { Value: "jay", Key: openid.GivenNameKey, Check: func(token openid.Token) { assert.Equal(t, token.GivenName(), "jay") }, }, { Value: "weee", Key: openid.MiddleNameKey, Check: func(token openid.Token) { assert.Equal(t, token.MiddleName(), "weee") }, }, { Value: "xi", Key: openid.FamilyNameKey, Check: func(token openid.Token) { assert.Equal(t, token.FamilyName(), "xi") }, }, { Value: "jayweexi", Key: openid.NicknameKey, Check: func(token openid.Token) { assert.Equal(t, token.Nickname(), "jayweexi") }, }, { Value: "jwx", Key: openid.PreferredUsernameKey, Check: func(token openid.Token) { assert.Equal(t, token.PreferredUsername(), "jwx") }, }, { Value: "https://github.com/lestrrat-go/jwx", Key: openid.ProfileKey, Check: func(token openid.Token) { assert.Equal(t, token.Profile(), "https://github.com/lestrrat-go/jwx") }, }, { Value: "https://avatars1.githubusercontent.com/u/36653903?s=400&v=4", Key: openid.PictureKey, Check: func(token openid.Token) { assert.Equal(t, token.Picture(), "https://avatars1.githubusercontent.com/u/36653903?s=400&v=4") }, }, { Value: "https://github.com/lestrrat-go/jwx", Key: openid.WebsiteKey, Check: func(token openid.Token) { assert.Equal(t, token.Website(), "https://github.com/lestrrat-go/jwx") }, }, { Value: "lestrrat+github@gmail.com", Key: openid.EmailKey, Check: func(token openid.Token) { assert.Equal(t, token.Email(), "lestrrat+github@gmail.com") }, }, { Value: true, Key: openid.EmailVerifiedKey, Check: func(token openid.Token) { assert.True(t, token.EmailVerified()) }, }, { Value: "n/a", Key: openid.GenderKey, Check: func(token openid.Token) { assert.Equal(t, token.Gender(), "n/a") }, }, { Value: "2015-11-04", Key: openid.BirthdateKey, Expected: func(v interface{}) interface{} { var b openid.BirthdateClaim if err := b.Accept(v); err != nil { panic(err) } return &b }, Check: func(token openid.Token) { var b openid.BirthdateClaim b.Accept("2015-11-04") assert.Equal(t, token.Birthdate(), &b) }, }, { Value: "Asia/Tokyo", Key: openid.ZoneinfoKey, Check: func(token openid.Token) { assert.Equal(t, token.Zoneinfo(), "Asia/Tokyo") }, }, { Value: "ja_JP", Key: openid.LocaleKey, Check: func(token openid.Token) { assert.Equal(t, token.Locale(), "ja_JP") }, }, { Value: "819012345678", Key: openid.PhoneNumberKey, Check: func(token openid.Token) { assert.Equal(t, token.PhoneNumber(), "819012345678") }, }, { Value: true, Key: openid.PhoneNumberVerifiedKey, Check: func(token openid.Token) { assert.True(t, token.PhoneNumberVerified()) }, }, { Value: map[string]interface{}{ "formatted": "〒105-0011 東京都港区芝公園4丁目2−8", "street_address": "芝公園4丁目2−8", "locality": "港区", "region": "東京都", "country": "日本", "postal_code": "105-0011", }, Key: openid.AddressKey, Expected: func(v interface{}) interface{} { address := openid.NewAddress() m, ok := v.(map[string]interface{}) if !ok { panic(fmt.Sprintf("expected map[string]interface{}, got %T", v)) } for name, val := range m { if !assert.NoError(t, address.Set(name, val), `address.Set should succeed`) { return nil } } return address }, Check: func(token openid.Token) { testStockAddressClaim(t, token.Address()) }, }, { Value: aLongLongTimeAgoString, Key: openid.UpdatedAtKey, Expected: func(v interface{}) interface{} { var n types.NumericDate if err := n.Accept(v); err != nil { panic(err) } return n.Get() }, Check: func(token openid.Token) { assert.Equal(t, time.Unix(aLongLongTimeAgo, 0).UTC(), token.UpdatedAt()) }, }, { Value: `dummy`, Key: `dummy`, Check: func(token openid.Token) { v, ok := token.Get(`dummy`) if !assert.True(t, ok, `token.Get should return valid value`) { return } if !assert.Equal(t, `dummy`, v, `values should match`) { return } }, }, } var data = map[string]interface{}{} var expected = map[string]interface{}{} for _, value := range base { data[value.Key] = value.Value if expf := value.Expected; expf != nil { expected[value.Key] = expf(value.Value) } else { expected[value.Key] = value.Value } } type openidTokTestCase struct { Token openid.Token Name string } var tokens []openidTokTestCase { // one with Set() token := openid.New() for name, value := range data { if !assert.NoError(t, token.Set(name, value), `token.Set should succeed`) { return } } tokens = append(tokens, openidTokTestCase{Name: `token constructed by calling Set()`, Token: token}) } { // two with json.Marshal / json.Unmarshal src, err := json.MarshalIndent(data, "", " ") if !assert.NoError(t, err, `failed to marshal base map`) { return } t.Logf("Using source JSON: %s", src) token := openid.New() if !assert.NoError(t, json.Unmarshal(src, &token), `json.Unmarshal should succeed`) { return } tokens = append(tokens, openidTokTestCase{Name: `token constructed by Marshal(map)+Unmashal`, Token: token}) // One more... Marshal the token, _and_ re-unmarshal buf, err := json.Marshal(token) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } token2 := openid.New() if !assert.NoError(t, json.Unmarshal(buf, &token2), `json.Unmarshal should succeed`) { return } tokens = append(tokens, openidTokTestCase{Name: `token constructed by Marshal(openid.Token)+Unmashal`, Token: token2}) // Sign it, and use jwt.Parse var token3 openid.Token { alg := jwa.RS256 key, err := jwxtest.GenerateRsaKey() if !assert.NoError(t, err, `rsa.GeneraKey should succeed`) { return } signed, err := jwt.Sign(token, alg, key) if !assert.NoError(t, err, `jwt.Sign should succeed`) { return } tokenTmp, err := jwt.Parse(signed, jwt.WithToken(openid.New()), jwt.WithVerify(alg, &key.PublicKey)) if !assert.NoError(t, err, `parsing the token via jwt.Parse should succeed`) { return } // Check if token is an OpenID token if _, ok := tokenTmp.(openid.Token); !assert.True(t, ok, `token should be a openid.Token (%T)`, tokenTmp) { return } token3 = tokenTmp.(openid.Token) } tokens = append(tokens, openidTokTestCase{Name: `token constructed by jwt.Parse`, Token: token3}) } for _, token := range tokens { token := token t.Run(token.Name, func(t *testing.T) { for _, value := range base { value := value t.Run(value.Key, func(_ *testing.T) { value.Check(token.Token) }) t.Run(value.Key+" via Get()", func(_ *testing.T) { expected := value.Value if expf := value.Expected; expf != nil { expected = expf(value.Value) } getVerify(token.Token, value.Key, expected) }) } }) } t.Run("Iterator", func(t *testing.T) { v := tokens[0].Token t.Run("Iterate", func(t *testing.T) { seen := make(map[string]interface{}) for iter := v.Iterate(context.TODO()); iter.Next(context.TODO()); { pair := iter.Pair() seen[pair.Key.(string)] = pair.Value getV, ok := v.Get(pair.Key.(string)) if !assert.True(t, ok, `v.Get should succeed for key %#v`, pair.Key) { return } if !assert.Equal(t, pair.Value, getV, `pair.Value should match value from v.Get()`) { return } } if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("Walk", func(t *testing.T) { seen := make(map[string]interface{}) v.Walk(context.TODO(), openid.VisitorFunc(func(key string, value interface{}) error { seen[key] = value return nil })) if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("AsMap", func(t *testing.T) { seen, err := v.AsMap(context.TODO()) if !assert.NoError(t, err, `v.AsMap should succeed`) { return } if !assert.Equal(t, expected, seen, `values should match`) { return } }) t.Run("Clone", func(t *testing.T) { cloned, err := v.Clone() if !assert.NoError(t, err, `v.Clone should succeed`) { return } if !assert.True(t, jwt.Equal(v, cloned), `values should match`) { return } }) }) } func TestBirthdateClaim(t *testing.T) { t.Parallel() t.Run("regular date", func(t *testing.T) { t.Parallel() testcases := []struct { Source string Year int Month int Day int Error bool }{ { Source: `"2015-11-04"`, Year: 2015, Month: 11, Day: 4, }, { Source: `"0009-09-09"`, Year: 9, Month: 9, Day: 9, }, { Source: `{}`, Error: true, }, { Source: `"202X-01-01"`, Error: true, }, { Source: `"0000-01-01"`, Error: true, }, { Source: `"0001-00-01"`, Error: true, }, { Source: `"0001-01-00"`, Error: true, }, } for _, tc := range testcases { tc := tc t.Run(tc.Source, func(t *testing.T) { var b openid.BirthdateClaim if tc.Error { assert.Error(t, json.Unmarshal([]byte(tc.Source), &b), `json.Unmarshal should fail`) return } if !assert.NoError(t, json.Unmarshal([]byte(tc.Source), &b), `json.Unmarshal should succeed`) { return } if !assert.Equal(t, b.Year(), tc.Year, "year should match") { return } if !assert.Equal(t, b.Month(), tc.Month, "month should match") { return } if !assert.Equal(t, b.Day(), tc.Day, "day should match") { return } serialized, err := json.Marshal(b) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } if !assert.Equal(t, string(serialized), tc.Source, `serialized format should be the same`) { return } stringified := b.String() expectedString, _ := strconv.Unquote(tc.Source) if !assert.Equal(t, stringified, expectedString, `stringified format should be the same`) { return } }) } }) t.Run("empty date", func(t *testing.T) { t.Parallel() var b openid.BirthdateClaim if !assert.Equal(t, b.Year(), 0, "year should match") { return } if !assert.Equal(t, b.Month(), 0, "month should match") { return } if !assert.Equal(t, b.Day(), 0, "day should match") { return } }) t.Run("invalid accept", func(t *testing.T) { t.Parallel() var b openid.BirthdateClaim if !assert.Error(t, b.Accept(nil)) { return } }) } func TestKeys(t *testing.T) { at := assert.New(t) at.Equal(`address`, openid.AddressKey) at.Equal(`aud`, openid.AudienceKey) at.Equal(`birthdate`, openid.BirthdateKey) at.Equal(`email`, openid.EmailKey) at.Equal(`email_verified`, openid.EmailVerifiedKey) at.Equal(`exp`, openid.ExpirationKey) at.Equal(`family_name`, openid.FamilyNameKey) at.Equal(`gender`, openid.GenderKey) at.Equal(`given_name`, openid.GivenNameKey) at.Equal(`iat`, openid.IssuedAtKey) at.Equal(`iss`, openid.IssuerKey) at.Equal(`jti`, openid.JwtIDKey) at.Equal(`locale`, openid.LocaleKey) at.Equal(`middle_name`, openid.MiddleNameKey) at.Equal(`name`, openid.NameKey) at.Equal(`nickname`, openid.NicknameKey) at.Equal(`nbf`, openid.NotBeforeKey) at.Equal(`phone_number`, openid.PhoneNumberKey) at.Equal(`phone_number_verified`, openid.PhoneNumberVerifiedKey) at.Equal(`picture`, openid.PictureKey) at.Equal(`preferred_username`, openid.PreferredUsernameKey) at.Equal(`profile`, openid.ProfileKey) at.Equal(`sub`, openid.SubjectKey) at.Equal(`updated_at`, openid.UpdatedAtKey) at.Equal(`website`, openid.WebsiteKey) at.Equal(`zoneinfo`, openid.ZoneinfoKey) } golang-github-lestrrat-go-jwx-1.2.30/jwt/openid/token_gen.go000066400000000000000000000756341465311135100237740ustar00rootroot00000000000000// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT package openid import ( "bytes" "context" "sort" "sync" "time" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwt" "github.com/lestrrat-go/jwx/jwt/internal/types" "github.com/pkg/errors" ) const ( AddressKey = "address" AudienceKey = "aud" BirthdateKey = "birthdate" EmailKey = "email" EmailVerifiedKey = "email_verified" ExpirationKey = "exp" FamilyNameKey = "family_name" GenderKey = "gender" GivenNameKey = "given_name" IssuedAtKey = "iat" IssuerKey = "iss" JwtIDKey = "jti" LocaleKey = "locale" MiddleNameKey = "middle_name" NameKey = "name" NicknameKey = "nickname" NotBeforeKey = "nbf" PhoneNumberKey = "phone_number" PhoneNumberVerifiedKey = "phone_number_verified" PictureKey = "picture" PreferredUsernameKey = "preferred_username" ProfileKey = "profile" SubjectKey = "sub" UpdatedAtKey = "updated_at" WebsiteKey = "website" ZoneinfoKey = "zoneinfo" ) type Token interface { // Address returns the value for "address" field of the token Address() *AddressClaim // Audience returns the value for "aud" field of the token Audience() []string // Birthdate returns the value for "birthdate" field of the token Birthdate() *BirthdateClaim // Email returns the value for "email" field of the token Email() string // EmailVerified returns the value for "email_verified" field of the token EmailVerified() bool // Expiration returns the value for "exp" field of the token Expiration() time.Time // FamilyName returns the value for "family_name" field of the token FamilyName() string // Gender returns the value for "gender" field of the token Gender() string // GivenName returns the value for "given_name" field of the token GivenName() string // IssuedAt returns the value for "iat" field of the token IssuedAt() time.Time // Issuer returns the value for "iss" field of the token Issuer() string // JwtID returns the value for "jti" field of the token JwtID() string // Locale returns the value for "locale" field of the token Locale() string // MiddleName returns the value for "middle_name" field of the token MiddleName() string // Name returns the value for "name" field of the token Name() string // Nickname returns the value for "nickname" field of the token Nickname() string // NotBefore returns the value for "nbf" field of the token NotBefore() time.Time // PhoneNumber returns the value for "phone_number" field of the token PhoneNumber() string // PhoneNumberVerified returns the value for "phone_number_verified" field of the token PhoneNumberVerified() bool // Picture returns the value for "picture" field of the token Picture() string // PreferredUsername returns the value for "preferred_username" field of the token PreferredUsername() string // Profile returns the value for "profile" field of the token Profile() string // Subject returns the value for "sub" field of the token Subject() string // UpdatedAt returns the value for "updated_at" field of the token UpdatedAt() time.Time // Website returns the value for "website" field of the token Website() string // Zoneinfo returns the value for "zoneinfo" field of the token Zoneinfo() string // PrivateClaims return the entire set of fields (claims) in the token // *other* than the pre-defined fields such as `iss`, `nbf`, `iat`, etc. PrivateClaims() map[string]interface{} // Get returns the value of the corresponding field in the token, such as // `nbf`, `exp`, `iat`, and other user-defined fields. If the field does not // exist in the token, the second return value will be `false` // // If you need to access fields like `alg`, `kid`, `jku`, etc, you need // to access the corresponding fields in the JWS/JWE message. For this, // you will need to access them by directly parsing the payload using // `jws.Parse` and `jwe.Parse` Get(string) (interface{}, bool) // Set assigns a value to the corresponding field in the token. Some // pre-defined fields such as `nbf`, `iat`, `iss` need their values to // be of a specific type. See the other getter methods in this interface // for the types of each of these fields Set(string, interface{}) error Remove(string) error Clone() (jwt.Token, error) Iterate(context.Context) Iterator Walk(context.Context, Visitor) error AsMap(context.Context) (map[string]interface{}, error) } type stdToken struct { mu *sync.RWMutex dc DecodeCtx // per-object context for decoding address *AddressClaim audience types.StringList // https://tools.ietf.org/html/rfc7519#section-4.1.3 birthdate *BirthdateClaim email *string emailVerified *bool expiration *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.4 familyName *string gender *string givenName *string issuedAt *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.6 issuer *string // https://tools.ietf.org/html/rfc7519#section-4.1.1 jwtID *string // https://tools.ietf.org/html/rfc7519#section-4.1.7 locale *string middleName *string name *string nickname *string notBefore *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.5 phoneNumber *string phoneNumberVerified *bool picture *string preferredUsername *string profile *string subject *string // https://tools.ietf.org/html/rfc7519#section-4.1.2 updatedAt *types.NumericDate website *string zoneinfo *string privateClaims map[string]interface{} } // New creates a standard token, with minimal knowledge of // possible claims. Standard claims include"address", "aud", "birthdate", "email", "email_verified", "exp", "family_name", "gender", "given_name", "iat", "iss", "jti", "locale", "middle_name", "name", "nickname", "nbf", "phone_number", "phone_number_verified", "picture", "preferred_username", "profile", "sub", "updated_at", "website" and "zoneinfo". // Convenience accessors are provided for these standard claims func New() Token { return &stdToken{ mu: &sync.RWMutex{}, privateClaims: make(map[string]interface{}), } } func (t *stdToken) Get(name string) (interface{}, bool) { t.mu.RLock() defer t.mu.RUnlock() switch name { case AddressKey: if t.address == nil { return nil, false } v := t.address return v, true case AudienceKey: if t.audience == nil { return nil, false } v := t.audience.Get() return v, true case BirthdateKey: if t.birthdate == nil { return nil, false } v := t.birthdate return v, true case EmailKey: if t.email == nil { return nil, false } v := *(t.email) return v, true case EmailVerifiedKey: if t.emailVerified == nil { return nil, false } v := *(t.emailVerified) return v, true case ExpirationKey: if t.expiration == nil { return nil, false } v := t.expiration.Get() return v, true case FamilyNameKey: if t.familyName == nil { return nil, false } v := *(t.familyName) return v, true case GenderKey: if t.gender == nil { return nil, false } v := *(t.gender) return v, true case GivenNameKey: if t.givenName == nil { return nil, false } v := *(t.givenName) return v, true case IssuedAtKey: if t.issuedAt == nil { return nil, false } v := t.issuedAt.Get() return v, true case IssuerKey: if t.issuer == nil { return nil, false } v := *(t.issuer) return v, true case JwtIDKey: if t.jwtID == nil { return nil, false } v := *(t.jwtID) return v, true case LocaleKey: if t.locale == nil { return nil, false } v := *(t.locale) return v, true case MiddleNameKey: if t.middleName == nil { return nil, false } v := *(t.middleName) return v, true case NameKey: if t.name == nil { return nil, false } v := *(t.name) return v, true case NicknameKey: if t.nickname == nil { return nil, false } v := *(t.nickname) return v, true case NotBeforeKey: if t.notBefore == nil { return nil, false } v := t.notBefore.Get() return v, true case PhoneNumberKey: if t.phoneNumber == nil { return nil, false } v := *(t.phoneNumber) return v, true case PhoneNumberVerifiedKey: if t.phoneNumberVerified == nil { return nil, false } v := *(t.phoneNumberVerified) return v, true case PictureKey: if t.picture == nil { return nil, false } v := *(t.picture) return v, true case PreferredUsernameKey: if t.preferredUsername == nil { return nil, false } v := *(t.preferredUsername) return v, true case ProfileKey: if t.profile == nil { return nil, false } v := *(t.profile) return v, true case SubjectKey: if t.subject == nil { return nil, false } v := *(t.subject) return v, true case UpdatedAtKey: if t.updatedAt == nil { return nil, false } v := t.updatedAt.Get() return v, true case WebsiteKey: if t.website == nil { return nil, false } v := *(t.website) return v, true case ZoneinfoKey: if t.zoneinfo == nil { return nil, false } v := *(t.zoneinfo) return v, true default: v, ok := t.privateClaims[name] return v, ok } } func (t *stdToken) Remove(key string) error { t.mu.Lock() defer t.mu.Unlock() switch key { case AddressKey: t.address = nil case AudienceKey: t.audience = nil case BirthdateKey: t.birthdate = nil case EmailKey: t.email = nil case EmailVerifiedKey: t.emailVerified = nil case ExpirationKey: t.expiration = nil case FamilyNameKey: t.familyName = nil case GenderKey: t.gender = nil case GivenNameKey: t.givenName = nil case IssuedAtKey: t.issuedAt = nil case IssuerKey: t.issuer = nil case JwtIDKey: t.jwtID = nil case LocaleKey: t.locale = nil case MiddleNameKey: t.middleName = nil case NameKey: t.name = nil case NicknameKey: t.nickname = nil case NotBeforeKey: t.notBefore = nil case PhoneNumberKey: t.phoneNumber = nil case PhoneNumberVerifiedKey: t.phoneNumberVerified = nil case PictureKey: t.picture = nil case PreferredUsernameKey: t.preferredUsername = nil case ProfileKey: t.profile = nil case SubjectKey: t.subject = nil case UpdatedAtKey: t.updatedAt = nil case WebsiteKey: t.website = nil case ZoneinfoKey: t.zoneinfo = nil default: delete(t.privateClaims, key) } return nil } func (t *stdToken) Set(name string, value interface{}) error { t.mu.Lock() defer t.mu.Unlock() return t.setNoLock(name, value) } func (t *stdToken) DecodeCtx() DecodeCtx { t.mu.RLock() defer t.mu.RUnlock() return t.dc } func (t *stdToken) SetDecodeCtx(v DecodeCtx) { t.mu.Lock() defer t.mu.Unlock() t.dc = v } func (t *stdToken) setNoLock(name string, value interface{}) error { switch name { case AddressKey: var acceptor AddressClaim if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, AddressKey) } t.address = &acceptor return nil case AudienceKey: var acceptor types.StringList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, AudienceKey) } t.audience = acceptor return nil case BirthdateKey: var acceptor BirthdateClaim if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, BirthdateKey) } t.birthdate = &acceptor return nil case EmailKey: if v, ok := value.(string); ok { t.email = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, EmailKey, value) case EmailVerifiedKey: if v, ok := value.(bool); ok { t.emailVerified = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, EmailVerifiedKey, value) case ExpirationKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, ExpirationKey) } t.expiration = &acceptor return nil case FamilyNameKey: if v, ok := value.(string); ok { t.familyName = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, FamilyNameKey, value) case GenderKey: if v, ok := value.(string); ok { t.gender = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, GenderKey, value) case GivenNameKey: if v, ok := value.(string); ok { t.givenName = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, GivenNameKey, value) case IssuedAtKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, IssuedAtKey) } t.issuedAt = &acceptor return nil case IssuerKey: if v, ok := value.(string); ok { t.issuer = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, IssuerKey, value) case JwtIDKey: if v, ok := value.(string); ok { t.jwtID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, JwtIDKey, value) case LocaleKey: if v, ok := value.(string); ok { t.locale = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, LocaleKey, value) case MiddleNameKey: if v, ok := value.(string); ok { t.middleName = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, MiddleNameKey, value) case NameKey: if v, ok := value.(string); ok { t.name = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, NameKey, value) case NicknameKey: if v, ok := value.(string); ok { t.nickname = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, NicknameKey, value) case NotBeforeKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, NotBeforeKey) } t.notBefore = &acceptor return nil case PhoneNumberKey: if v, ok := value.(string); ok { t.phoneNumber = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, PhoneNumberKey, value) case PhoneNumberVerifiedKey: if v, ok := value.(bool); ok { t.phoneNumberVerified = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, PhoneNumberVerifiedKey, value) case PictureKey: if v, ok := value.(string); ok { t.picture = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, PictureKey, value) case PreferredUsernameKey: if v, ok := value.(string); ok { t.preferredUsername = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, PreferredUsernameKey, value) case ProfileKey: if v, ok := value.(string); ok { t.profile = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ProfileKey, value) case SubjectKey: if v, ok := value.(string); ok { t.subject = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, SubjectKey, value) case UpdatedAtKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, UpdatedAtKey) } t.updatedAt = &acceptor return nil case WebsiteKey: if v, ok := value.(string); ok { t.website = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, WebsiteKey, value) case ZoneinfoKey: if v, ok := value.(string); ok { t.zoneinfo = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, ZoneinfoKey, value) default: if t.privateClaims == nil { t.privateClaims = map[string]interface{}{} } t.privateClaims[name] = value } return nil } func (t *stdToken) Address() *AddressClaim { t.mu.RLock() defer t.mu.RUnlock() return t.address } func (t *stdToken) Audience() []string { t.mu.RLock() defer t.mu.RUnlock() if t.audience != nil { return t.audience.Get() } return nil } func (t *stdToken) Birthdate() *BirthdateClaim { t.mu.RLock() defer t.mu.RUnlock() return t.birthdate } func (t *stdToken) Email() string { t.mu.RLock() defer t.mu.RUnlock() if t.email != nil { return *(t.email) } return "" } func (t *stdToken) EmailVerified() bool { t.mu.RLock() defer t.mu.RUnlock() if t.emailVerified != nil { return *(t.emailVerified) } return false } func (t *stdToken) Expiration() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.expiration != nil { return t.expiration.Get() } return time.Time{} } func (t *stdToken) FamilyName() string { t.mu.RLock() defer t.mu.RUnlock() if t.familyName != nil { return *(t.familyName) } return "" } func (t *stdToken) Gender() string { t.mu.RLock() defer t.mu.RUnlock() if t.gender != nil { return *(t.gender) } return "" } func (t *stdToken) GivenName() string { t.mu.RLock() defer t.mu.RUnlock() if t.givenName != nil { return *(t.givenName) } return "" } func (t *stdToken) IssuedAt() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.issuedAt != nil { return t.issuedAt.Get() } return time.Time{} } func (t *stdToken) Issuer() string { t.mu.RLock() defer t.mu.RUnlock() if t.issuer != nil { return *(t.issuer) } return "" } func (t *stdToken) JwtID() string { t.mu.RLock() defer t.mu.RUnlock() if t.jwtID != nil { return *(t.jwtID) } return "" } func (t *stdToken) Locale() string { t.mu.RLock() defer t.mu.RUnlock() if t.locale != nil { return *(t.locale) } return "" } func (t *stdToken) MiddleName() string { t.mu.RLock() defer t.mu.RUnlock() if t.middleName != nil { return *(t.middleName) } return "" } func (t *stdToken) Name() string { t.mu.RLock() defer t.mu.RUnlock() if t.name != nil { return *(t.name) } return "" } func (t *stdToken) Nickname() string { t.mu.RLock() defer t.mu.RUnlock() if t.nickname != nil { return *(t.nickname) } return "" } func (t *stdToken) NotBefore() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.notBefore != nil { return t.notBefore.Get() } return time.Time{} } func (t *stdToken) PhoneNumber() string { t.mu.RLock() defer t.mu.RUnlock() if t.phoneNumber != nil { return *(t.phoneNumber) } return "" } func (t *stdToken) PhoneNumberVerified() bool { t.mu.RLock() defer t.mu.RUnlock() if t.phoneNumberVerified != nil { return *(t.phoneNumberVerified) } return false } func (t *stdToken) Picture() string { t.mu.RLock() defer t.mu.RUnlock() if t.picture != nil { return *(t.picture) } return "" } func (t *stdToken) PreferredUsername() string { t.mu.RLock() defer t.mu.RUnlock() if t.preferredUsername != nil { return *(t.preferredUsername) } return "" } func (t *stdToken) Profile() string { t.mu.RLock() defer t.mu.RUnlock() if t.profile != nil { return *(t.profile) } return "" } func (t *stdToken) Subject() string { t.mu.RLock() defer t.mu.RUnlock() if t.subject != nil { return *(t.subject) } return "" } func (t *stdToken) UpdatedAt() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.updatedAt != nil { return t.updatedAt.Get() } return time.Time{} } func (t *stdToken) Website() string { t.mu.RLock() defer t.mu.RUnlock() if t.website != nil { return *(t.website) } return "" } func (t *stdToken) Zoneinfo() string { t.mu.RLock() defer t.mu.RUnlock() if t.zoneinfo != nil { return *(t.zoneinfo) } return "" } func (t *stdToken) PrivateClaims() map[string]interface{} { t.mu.RLock() defer t.mu.RUnlock() return t.privateClaims } func (t *stdToken) makePairs() []*ClaimPair { t.mu.RLock() defer t.mu.RUnlock() pairs := make([]*ClaimPair, 0, 26) if t.address != nil { v := t.address pairs = append(pairs, &ClaimPair{Key: AddressKey, Value: v}) } if t.audience != nil { v := t.audience.Get() pairs = append(pairs, &ClaimPair{Key: AudienceKey, Value: v}) } if t.birthdate != nil { v := t.birthdate pairs = append(pairs, &ClaimPair{Key: BirthdateKey, Value: v}) } if t.email != nil { v := *(t.email) pairs = append(pairs, &ClaimPair{Key: EmailKey, Value: v}) } if t.emailVerified != nil { v := *(t.emailVerified) pairs = append(pairs, &ClaimPair{Key: EmailVerifiedKey, Value: v}) } if t.expiration != nil { v := t.expiration.Get() pairs = append(pairs, &ClaimPair{Key: ExpirationKey, Value: v}) } if t.familyName != nil { v := *(t.familyName) pairs = append(pairs, &ClaimPair{Key: FamilyNameKey, Value: v}) } if t.gender != nil { v := *(t.gender) pairs = append(pairs, &ClaimPair{Key: GenderKey, Value: v}) } if t.givenName != nil { v := *(t.givenName) pairs = append(pairs, &ClaimPair{Key: GivenNameKey, Value: v}) } if t.issuedAt != nil { v := t.issuedAt.Get() pairs = append(pairs, &ClaimPair{Key: IssuedAtKey, Value: v}) } if t.issuer != nil { v := *(t.issuer) pairs = append(pairs, &ClaimPair{Key: IssuerKey, Value: v}) } if t.jwtID != nil { v := *(t.jwtID) pairs = append(pairs, &ClaimPair{Key: JwtIDKey, Value: v}) } if t.locale != nil { v := *(t.locale) pairs = append(pairs, &ClaimPair{Key: LocaleKey, Value: v}) } if t.middleName != nil { v := *(t.middleName) pairs = append(pairs, &ClaimPair{Key: MiddleNameKey, Value: v}) } if t.name != nil { v := *(t.name) pairs = append(pairs, &ClaimPair{Key: NameKey, Value: v}) } if t.nickname != nil { v := *(t.nickname) pairs = append(pairs, &ClaimPair{Key: NicknameKey, Value: v}) } if t.notBefore != nil { v := t.notBefore.Get() pairs = append(pairs, &ClaimPair{Key: NotBeforeKey, Value: v}) } if t.phoneNumber != nil { v := *(t.phoneNumber) pairs = append(pairs, &ClaimPair{Key: PhoneNumberKey, Value: v}) } if t.phoneNumberVerified != nil { v := *(t.phoneNumberVerified) pairs = append(pairs, &ClaimPair{Key: PhoneNumberVerifiedKey, Value: v}) } if t.picture != nil { v := *(t.picture) pairs = append(pairs, &ClaimPair{Key: PictureKey, Value: v}) } if t.preferredUsername != nil { v := *(t.preferredUsername) pairs = append(pairs, &ClaimPair{Key: PreferredUsernameKey, Value: v}) } if t.profile != nil { v := *(t.profile) pairs = append(pairs, &ClaimPair{Key: ProfileKey, Value: v}) } if t.subject != nil { v := *(t.subject) pairs = append(pairs, &ClaimPair{Key: SubjectKey, Value: v}) } if t.updatedAt != nil { v := t.updatedAt.Get() pairs = append(pairs, &ClaimPair{Key: UpdatedAtKey, Value: v}) } if t.website != nil { v := *(t.website) pairs = append(pairs, &ClaimPair{Key: WebsiteKey, Value: v}) } if t.zoneinfo != nil { v := *(t.zoneinfo) pairs = append(pairs, &ClaimPair{Key: ZoneinfoKey, Value: v}) } for k, v := range t.privateClaims { pairs = append(pairs, &ClaimPair{Key: k, Value: v}) } sort.Slice(pairs, func(i, j int) bool { return pairs[i].Key.(string) < pairs[j].Key.(string) }) return pairs } func (t *stdToken) UnmarshalJSON(buf []byte) error { t.mu.Lock() defer t.mu.Unlock() t.address = nil t.audience = nil t.birthdate = nil t.email = nil t.emailVerified = nil t.expiration = nil t.familyName = nil t.gender = nil t.givenName = nil t.issuedAt = nil t.issuer = nil t.jwtID = nil t.locale = nil t.middleName = nil t.name = nil t.nickname = nil t.notBefore = nil t.phoneNumber = nil t.phoneNumberVerified = nil t.picture = nil t.preferredUsername = nil t.profile = nil t.subject = nil t.updatedAt = nil t.website = nil t.zoneinfo = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case AddressKey: var decoded AddressClaim if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AddressKey) } t.address = &decoded case AudienceKey: var decoded types.StringList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AudienceKey) } t.audience = decoded case BirthdateKey: var decoded BirthdateClaim if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, BirthdateKey) } t.birthdate = &decoded case EmailKey: if err := json.AssignNextStringToken(&t.email, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, EmailKey) } case EmailVerifiedKey: var decoded bool if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, EmailVerifiedKey) } t.emailVerified = &decoded case ExpirationKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ExpirationKey) } t.expiration = &decoded case FamilyNameKey: if err := json.AssignNextStringToken(&t.familyName, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, FamilyNameKey) } case GenderKey: if err := json.AssignNextStringToken(&t.gender, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, GenderKey) } case GivenNameKey: if err := json.AssignNextStringToken(&t.givenName, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, GivenNameKey) } case IssuedAtKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, IssuedAtKey) } t.issuedAt = &decoded case IssuerKey: if err := json.AssignNextStringToken(&t.issuer, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, IssuerKey) } case JwtIDKey: if err := json.AssignNextStringToken(&t.jwtID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JwtIDKey) } case LocaleKey: if err := json.AssignNextStringToken(&t.locale, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, LocaleKey) } case MiddleNameKey: if err := json.AssignNextStringToken(&t.middleName, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, MiddleNameKey) } case NameKey: if err := json.AssignNextStringToken(&t.name, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, NameKey) } case NicknameKey: if err := json.AssignNextStringToken(&t.nickname, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, NicknameKey) } case NotBeforeKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, NotBeforeKey) } t.notBefore = &decoded case PhoneNumberKey: if err := json.AssignNextStringToken(&t.phoneNumber, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, PhoneNumberKey) } case PhoneNumberVerifiedKey: var decoded bool if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, PhoneNumberVerifiedKey) } t.phoneNumberVerified = &decoded case PictureKey: if err := json.AssignNextStringToken(&t.picture, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, PictureKey) } case PreferredUsernameKey: if err := json.AssignNextStringToken(&t.preferredUsername, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, PreferredUsernameKey) } case ProfileKey: if err := json.AssignNextStringToken(&t.profile, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ProfileKey) } case SubjectKey: if err := json.AssignNextStringToken(&t.subject, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, SubjectKey) } case UpdatedAtKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, UpdatedAtKey) } t.updatedAt = &decoded case WebsiteKey: if err := json.AssignNextStringToken(&t.website, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, WebsiteKey) } case ZoneinfoKey: if err := json.AssignNextStringToken(&t.zoneinfo, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ZoneinfoKey) } default: if dc := t.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { t.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { t.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } return nil } func (t stdToken) MarshalJSON() ([]byte, error) { t.mu.RLock() defer t.mu.RUnlock() buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, pair := range t.makePairs() { f := pair.Key.(string) if i > 0 { buf.WriteByte(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) switch f { case AudienceKey: if err := json.EncodeAudience(enc, pair.Value.([]string)); err != nil { return nil, errors.Wrap(err, `failed to encode "aud"`) } continue case ExpirationKey, IssuedAtKey, NotBeforeKey, UpdatedAtKey: enc.Encode(pair.Value.(time.Time).Unix()) continue } switch v := pair.Value.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to marshal field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (t *stdToken) Iterate(ctx context.Context) Iterator { pairs := t.makePairs() ch := make(chan *ClaimPair, len(pairs)) go func(ctx context.Context, ch chan *ClaimPair, pairs []*ClaimPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (t *stdToken) Walk(ctx context.Context, visitor Visitor) error { return iter.WalkMap(ctx, t, visitor) } func (t *stdToken) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, t) } golang-github-lestrrat-go-jwx-1.2.30/jwt/options.go000066400000000000000000000452731465311135100222340ustar00rootroot00000000000000package jwt import ( "context" "net/http" "time" "github.com/lestrrat-go/backoff/v2" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/lestrrat-go/jwx/jws" "github.com/lestrrat-go/option" ) type Option = option.Interface // GlobalOption describes an Option that can be passed to `Settings()`. type GlobalOption interface { Option globalOption() } type globalOption struct { Option } func (*globalOption) globalOption() {} // ParseRequestOption describes an Option that can be passed to `ParseRequest()`. type ParseRequestOption interface { ParseOption httpParseOption() } type httpParseOption struct { ParseOption } func (*httpParseOption) httpParseOption() {} // ParseOption describes an Option that can be passed to `Parse()`. // ParseOption also implements ReadFileOption, therefore it may be // safely pass them to `jwt.ReadFile()` type ParseOption interface { ReadFileOption parseOption() } type parseOption struct { Option } func newParseOption(n interface{}, v interface{}) ParseOption { return &parseOption{option.New(n, v)} } func (*parseOption) parseOption() {} func (*parseOption) readFileOption() {} // SignOption describes an Option that can be passed to Sign() or // (jwt.Serializer).Sign type SignOption interface { Option signOption() } type signOption struct { Option } func newSignOption(n interface{}, v interface{}) SignOption { return &signOption{option.New(n, v)} } func (*signOption) signOption() {} // EncryptOption describes an Option that can be passed to Encrypt() or // (jwt.Serializer).Encrypt type EncryptOption interface { Option encryptOption() } type encryptOption struct { Option } func newEncryptOption(n interface{}, v interface{}) EncryptOption { return &encryptOption{option.New(n, v)} } func (*encryptOption) encryptOption() {} // ValidateOption describes an Option that can be passed to Validate(). // ValidateOption also implements ParseOption, therefore it may be // safely passed to `Parse()` (and thus `jwt.ReadFile()`) type ValidateOption interface { ParseOption validateOption() } type validateOption struct { ParseOption } func newValidateOption(n interface{}, v interface{}) ValidateOption { return &validateOption{newParseOption(n, v)} } func (*validateOption) validateOption() {} type identAcceptableSkew struct{} type identClock struct{} type identContext struct{} type identDecrypt struct{} type identDefault struct{} type identFlattenAudience struct{} type identInferAlgorithmFromKey struct{} type identJweHeaders struct{} type identJwsHeaders struct{} type identKeySet struct{} type identKeySetProvider struct{} type identPedantic struct{} type identValidator struct{} type identToken struct{} type identTypedClaim struct{} type identValidate struct{} type identVerify struct{} type identVerifyAuto struct{} type identFetchBackoff struct{} type identFetchWhitelist struct{} type identHTTPClient struct{} type identJWKSetFetcher struct{} type identHeaderKey struct{} type identFormKey struct{} type VerifyParameters interface { Algorithm() jwa.SignatureAlgorithm Key() interface{} } type verifyParams struct { alg jwa.SignatureAlgorithm key interface{} } func (p *verifyParams) Algorithm() jwa.SignatureAlgorithm { return p.alg } func (p *verifyParams) Key() interface{} { return p.key } // WithVerify forces the Parse method to verify the JWT message // using the given key. XXX Should have been named something like // WithVerificationKey func WithVerify(alg jwa.SignatureAlgorithm, key interface{}) ParseOption { return newParseOption(identVerify{}, &verifyParams{ alg: alg, key: key, }) } // WithKeySet forces the Parse method to verify the JWT message // using one of the keys in the given key set. // // The key and the JWT MUST have a proper `kid` field set. // The key to use for signature verification is chosen by matching // the Key ID of the JWT and the ID of the given key set. // // When using this option, keys MUST have a proper 'alg' field // set. This is because we need to know the exact algorithm that // you (the user) wants to use to verify the token. We do NOT // trust the token's headers, because they can easily be tampered with. // // However, there _is_ a workaround if you do understand the risks // of allowing a library to automatically choose a signature verification strategy, // and you do not mind the verification process having to possibly // attempt using multiple times before succeeding to verify. See // `jwt.InferAlgorithmFromKey` option // // If you have only one key in the set, and are sure you want to // use that key, you can use the `jwt.WithDefaultKey` option. // // If provided with WithKeySetProvider(), this option takes precedence. func WithKeySet(set jwk.Set) ParseOption { return newParseOption(identKeySet{}, set) } // UseDefaultKey is used in conjunction with the option WithKeySet // to instruct the Parse method to default to the single key in a key // set when no Key ID is included in the JWT. If the key set contains // multiple keys then the default behavior is unchanged -- that is, // the since we can't determine the key to use, it returns an error. func UseDefaultKey(value bool) ParseOption { return newParseOption(identDefault{}, value) } // WithToken specifies the token instance that is used when parsing // JWT tokens. func WithToken(t Token) ParseOption { return newParseOption(identToken{}, t) } // WithHeaders is passed to `jwt.Sign()` function, to allow specifying arbitrary // header values to be included in the header section of the jws message // // This option will be deprecated in the next major version. Use // jwt.WithJwsHeaders() instead. func WithHeaders(hdrs jws.Headers) SignOption { return WithJwsHeaders(hdrs) } // WithJwsHeaders is passed to `jwt.Sign()` function or // "jwt.Serializer".Sign() method, to allow specifying arbitrary // header values to be included in the header section of the JWE message func WithJwsHeaders(hdrs jws.Headers) SignOption { return newSignOption(identJwsHeaders{}, hdrs) } // WithJweHeaders is passed to "jwt.Serializer".Encrypt() method to allow // specifying arbitrary header values to be included in the protected header // of the JWE message func WithJweHeaders(hdrs jwe.Headers) EncryptOption { return newEncryptOption(identJweHeaders{}, hdrs) } // WithValidate is passed to `Parse()` method to denote that the // validation of the JWT token should be performed after a successful // parsing of the incoming payload. func WithValidate(b bool) ParseOption { return newParseOption(identValidate{}, b) } // WithClock specifies the `Clock` to be used when verifying // claims exp and nbf. func WithClock(c Clock) ValidateOption { return newValidateOption(identClock{}, c) } // WithAcceptableSkew specifies the duration in which exp and nbf // claims may differ by. This value should be positive func WithAcceptableSkew(dur time.Duration) ValidateOption { return newValidateOption(identAcceptableSkew{}, dur) } // WithIssuer specifies that expected issuer value. If not specified, // the value of issuer is not verified at all. func WithIssuer(s string) ValidateOption { return WithValidator(ClaimValueIs(IssuerKey, s)) } // WithSubject specifies that expected subject value. If not specified, // the value of subject is not verified at all. func WithSubject(s string) ValidateOption { return WithValidator(ClaimValueIs(SubjectKey, s)) } // WithJwtID specifies that expected jti value. If not specified, // the value of jti is not verified at all. func WithJwtID(s string) ValidateOption { return WithValidator(ClaimValueIs(JwtIDKey, s)) } // WithAudience specifies that expected audience value. // `Validate()` will return true if one of the values in the `aud` element // matches this value. If not specified, the value of issuer is not // verified at all. func WithAudience(s string) ValidateOption { return WithValidator(ClaimContainsString(AudienceKey, s)) } // WithClaimValue specifies the expected value for a given claim func WithClaimValue(name string, v interface{}) ValidateOption { return WithValidator(ClaimValueIs(name, v)) } // WithHeaderKey is used to specify header keys to search for tokens. // // While the type system allows this option to be passed to jwt.Parse() directly, // doing so will have no effect. Only use it for HTTP request parsing functions func WithHeaderKey(v string) ParseRequestOption { return &httpParseOption{newParseOption(identHeaderKey{}, v)} } // WithFormKey is used to specify header keys to search for tokens. // // While the type system allows this option to be passed to jwt.Parse() directly, // doing so will have no effect. Only use it for HTTP request parsing functions func WithFormKey(v string) ParseRequestOption { return &httpParseOption{newParseOption(identFormKey{}, v)} } // WithFlattenAudience specifies if the "aud" claim should be flattened // to a single string upon the token being serialized to JSON. // // This is sometimes important when a JWT consumer does not understand that // the "aud" claim can actually take the form of an array of strings. // // The default value is `false`, which means that "aud" claims are always // rendered as a arrays of strings. This setting has a global effect, // and will change the behavior for all JWT serialization. func WithFlattenAudience(v bool) GlobalOption { return &globalOption{option.New(identFlattenAudience{}, v)} } type claimPair struct { Name string Value interface{} } // WithTypedClaim allows a private claim to be parsed into the object type of // your choice. It works much like the RegisterCustomField, but the effect // is only applicable to the jwt.Parse function call which receives this option. // // While this can be extremely useful, this option should be used with caution: // There are many caveats that your entire team/user-base needs to be aware of, // and therefore in general its use is discouraged. Only use it when you know // what you are doing, and you document its use clearly for others. // // First and foremost, this is a "per-object" option. Meaning that given the same // serialized format, it is possible to generate two objects whose internal // representations may differ. That is, if you parse one _WITH_ the option, // and the other _WITHOUT_, their internal representation may completely differ. // This could potentially lead to problems. // // Second, specifying this option will slightly slow down the decoding process // as it needs to consult multiple definitions sources (global and local), so // be careful if you are decoding a large number of tokens, as the effects will stack up. // // Finally, this option will also NOT work unless the tokens themselves support such // parsing mechanism. For example, while tokens obtained from `jwt.New()` and // `openid.New()` will respect this option, if you provide your own custom // token type, it will need to implement the TokenWithDecodeCtx interface. func WithTypedClaim(name string, object interface{}) ParseOption { return newParseOption(identTypedClaim{}, claimPair{Name: name, Value: object}) } // WithRequiredClaim specifies that the claim identified the given name // must exist in the token. Only the existence of the claim is checked: // the actual value associated with that field is not checked. func WithRequiredClaim(name string) ValidateOption { return WithValidator(IsRequired(name)) } // WithMaxDelta specifies that given two claims `c1` and `c2` that represent time, the difference in // time.Duration must be less than equal to the value specified by `d`. If `c1` or `c2` is the // empty string, the current time (as computed by `time.Now` or the object passed via // `WithClock()`) is used for the comparison. // // `c1` and `c2` are also assumed to be required, therefore not providing either claim in the // token will result in an error. // // Because there is no way of reliably knowing how to parse private claims, we currently only // support `iat`, `exp`, and `nbf` claims. // // If the empty string is passed to c1 or c2, then the current time (as calculated by time.Now() or // the clock object provided via WithClock()) is used. // // For example, in order to specify that `exp` - `iat` should be less than 10*time.Second, you would write // // jwt.Validate(token, jwt.WithMaxDelta(10*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey)) // // If AcceptableSkew of 2 second is specified, the above will return valid for any value of // `exp` - `iat` between 8 (10-2) and 12 (10+2). func WithMaxDelta(dur time.Duration, c1, c2 string) ValidateOption { return WithValidator(MaxDeltaIs(c1, c2, dur)) } // WithMinDelta is almost exactly the same as WithMaxDelta, but force validation to fail if // the difference between time claims are less than dur. // // For example, in order to specify that `exp` - `iat` should be greater than 10*time.Second, you would write // // jwt.Validate(token, jwt.WithMinDelta(10*time.Second, jwt.ExpirationKey, jwt.IssuedAtKey)) // // The validation would fail if the difference is less than 10 seconds. func WithMinDelta(dur time.Duration, c1, c2 string) ValidateOption { return WithValidator(MinDeltaIs(c1, c2, dur)) } // WithValidator validates the token with the given Validator. // // For example, in order to validate tokens that are only valid during August, you would write // // validator := jwt.ValidatorFunc(func(_ context.Context, t jwt.Token) error { // if time.Now().Month() != 8 { // return fmt.Errorf(`tokens are only valid during August!`) // } // return nil // }) // err := jwt.Validate(token, jwt.WithValidator(validator)) func WithValidator(v Validator) ValidateOption { return newValidateOption(identValidator{}, v) } type decryptParams struct { alg jwa.KeyEncryptionAlgorithm key interface{} } type DecryptParameters interface { Algorithm() jwa.KeyEncryptionAlgorithm Key() interface{} } func (dp *decryptParams) Algorithm() jwa.KeyEncryptionAlgorithm { return dp.alg } func (dp *decryptParams) Key() interface{} { return dp.key } // WithDecrypt allows users to specify parameters for decryption using // `jwe.Decrypt`. You must specify this if your JWT is encrypted. func WithDecrypt(alg jwa.KeyEncryptionAlgorithm, key interface{}) ParseOption { return newParseOption(identDecrypt{}, &decryptParams{ alg: alg, key: key, }) } // WithPedantic enables pedantic mode for parsing JWTs. Currently this only // applies to checking for the correct `typ` and/or `cty` when necessary. func WithPedantic(v bool) ParseOption { return newParseOption(identPedantic{}, v) } // InferAlgorithmFromKey allows jwt.Parse to guess the signature algorithm // passed to `jws.Verify()`, in case the key you provided does not have a proper `alg` header. // // Compared to providing explicit `alg` from the key this is slower, and in // case our heuristics are wrong or outdated, may fail to verify the token. // Also, automatic detection of signature verification methods are always // more vulnerable for potential attack vectors. // // It is highly recommended that you fix your key to contain a proper `alg` // header field instead of resorting to using this option, but sometimes // it just needs to happen. // // Your JWT still need to have an `alg` field, and it must match one of the // candidates that we produce for your key func InferAlgorithmFromKey(v bool) ParseOption { return newParseOption(identInferAlgorithmFromKey{}, v) } // KeySetProvider is an interface for objects that can choose the appropriate // jwk.Set to be used when verifying JWTs type KeySetProvider interface { // KeySetFrom returns the jwk.Set to be used to verify the token. // Keep in mind that the token at the point when the method is called is NOT VERIFIED. // DO NOT trust the contents of the Token too much. For example, do not take the // hint as to which signature algorithm to use from the token itself. KeySetFrom(Token) (jwk.Set, error) } // KeySetProviderFunc is an implementation of KeySetProvider that is based // on a function. type KeySetProviderFunc func(Token) (jwk.Set, error) func (fn KeySetProviderFunc) KeySetFrom(t Token) (jwk.Set, error) { return fn(t) } // WithKeySetProvider allows users to specify an object to choose which // jwk.Set to use for verification. // // If provided with WithKeySet(), WithKeySet() option takes precedence. func WithKeySetProvider(p KeySetProvider) ParseOption { return newParseOption(identKeySetProvider{}, p) } // WithContext allows you to specify a context.Context object to be used // with `jwt.Validate()` option. // // Please be aware that in the next major release of this library, // `jwt.Validate()`'s signature will change to include an explicit // `context.Context` object. func WithContext(ctx context.Context) ValidateOption { return newValidateOption(identContext{}, ctx) } // WithVerifyAuto specifies that the JWS verification should be performed // using `jws.VerifyAuto()`, which in turn attempts to verify the message // using values that are stored within the JWS message. // // Only passing this option to `jwt.Parse()` will not result in a successful // verification. Please make sure to carefully read the documentation in // `jws.VerifyAuto()`, and provide the necessary Whitelist object via // `jwt.WithFetchWhitelist()` // // You might also consider using a backoff policy by using `jwt.WithFetchBackoff()` // to control the number of requests being made. func WithVerifyAuto(v bool) ParseOption { return newParseOption(identVerifyAuto{}, v) } // WithFetchWhitelist specifies the `jwk.Whitelist` object that should be // passed to `jws.VerifyAuto()`, which in turn will be passed to `jwk.Fetch()` // // This is a wrapper over `jws.WithFetchWhitelist()` that can be passed // to `jwt.Parse()`, and will be ignored if you spcify `jws.WithJWKSetFetcher()` func WithFetchWhitelist(wl jwk.Whitelist) ParseOption { return newParseOption(identFetchWhitelist{}, wl) } // WithHTTPClient specifies the `*http.Client` object that should be // passed to `jws.VerifyAuto()`, which in turn will be passed to `jwk.Fetch()` // // This is a wrapper over `jws.WithHTTPClient()` that can be passed // to `jwt.Parse()`, and will be ignored if you spcify `jws.WithJWKSetFetcher()` func WithHTTPClient(httpcl *http.Client) ParseOption { return newParseOption(identHTTPClient{}, httpcl) } // WithFetchBackoff specifies the `backoff.Policy` object that should be // passed to `jws.VerifyAuto()`, which in turn will be passed to `jwk.Fetch()` // // This is a wrapper over `jws.WithFetchBackoff()` that can be passed // to `jwt.Parse()`, and will be ignored if you spcify `jws.WithJWKSetFetcher()` func WithFetchBackoff(b backoff.Policy) ParseOption { return newParseOption(identFetchBackoff{}, b) } // WithJWKSetFetcher specifies the `jws.JWKSetFetcher` object that should be // passed to `jws.VerifyAuto()` // // This is a wrapper over `jws.WithJWKSetFetcher()` that can be passed // to `jwt.Parse()`. func WithJWKSetFetcher(f jws.JWKSetFetcher) ParseOption { return newParseOption(identJWKSetFetcher{}, f) } golang-github-lestrrat-go-jwx-1.2.30/jwt/serialize.go000066400000000000000000000134001465311135100225130ustar00rootroot00000000000000package jwt import ( "fmt" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jws" "github.com/pkg/errors" ) type SerializeCtx interface { Step() int Nested() bool } type serializeCtx struct { step int nested bool } func (ctx *serializeCtx) Step() int { return ctx.step } func (ctx *serializeCtx) Nested() bool { return ctx.nested } type SerializeStep interface { Serialize(SerializeCtx, interface{}) (interface{}, error) } // Serializer is a generic serializer for JWTs. Whereas other conveinience // functions can only do one thing (such as generate a JWS signed JWT), // Using this construct you can serialize the token however you want. // // By default the serializer only marshals the token into a JSON payload. // You must set up the rest of the steps that should be taken by the // serializer. // // For example, to marshal the token into JSON, then apply JWS and JWE // in that order, you would do: // // serialized, err := jwt.NewSerialer(). // Sign(jwa.RS256, key). // Encrypt(jwa.RSA_OAEP, key.PublicKey). // Serialize(token) // // The `jwt.Sign()` function is equivalent to // // serialized, err := jwt.NewSerializer(). // Sign(...args...). // Serialize(token) type Serializer struct { steps []SerializeStep } // NewSerializer creates a new empty serializer. func NewSerializer() *Serializer { return &Serializer{} } // Reset clears all of the registered steps. func (s *Serializer) Reset() *Serializer { s.steps = nil return s } // Step adds a new Step to the serialization process func (s *Serializer) Step(step SerializeStep) *Serializer { s.steps = append(s.steps, step) return s } type jsonSerializer struct{} func (jsonSerializer) Serialize(_ SerializeCtx, v interface{}) (interface{}, error) { token, ok := v.(Token) if !ok { return nil, errors.Errorf(`invalid input: expected jwt.Token`) } buf, err := json.Marshal(token) if err != nil { return nil, errors.Errorf(`failed to serialize as JSON`) } return buf, nil } type genericHeader interface { Get(string) (interface{}, bool) Set(string, interface{}) error } func setTypeOrCty(ctx SerializeCtx, hdrs genericHeader) error { // cty and typ are common between JWE/JWS, so we don't use // the constants in jws/jwe package here const typKey = `typ` const ctyKey = `cty` if ctx.Step() == 1 { // We are executed immediately after json marshaling if _, ok := hdrs.Get(typKey); !ok { if err := hdrs.Set(typKey, `JWT`); err != nil { return errors.Wrapf(err, `failed to set %s key to "JWT"`, typKey) } } } else { if ctx.Nested() { // If this is part of a nested sequence, we should set cty = 'JWT' // https://datatracker.ietf.org/doc/html/rfc7519#section-5.2 if err := hdrs.Set(ctyKey, `JWT`); err != nil { return errors.Wrapf(err, `failed to set %s key to "JWT"`, ctyKey) } } } return nil } type jwsSerializer struct { alg jwa.SignatureAlgorithm key interface{} options []SignOption } func (s *jwsSerializer) Serialize(ctx SerializeCtx, v interface{}) (interface{}, error) { payload, ok := v.([]byte) if !ok { return nil, errors.New(`expected []byte as input`) } var hdrs jws.Headers //nolint:forcetypeassert for _, option := range s.options { switch option.Ident() { case identJwsHeaders{}: hdrs = option.Value().(jws.Headers) } } if hdrs == nil { hdrs = jws.NewHeaders() } if err := setTypeOrCty(ctx, hdrs); err != nil { return nil, err // this is already wrapped } // JWTs MUST NOT use b64 = false // https://datatracker.ietf.org/doc/html/rfc7797#section-7 if v, ok := hdrs.Get("b64"); ok { if bval, bok := v.(bool); bok { if !bval { // b64 = false return nil, errors.New(`b64 cannot be false for JWTs`) } } } return jws.Sign(payload, s.alg, s.key, jws.WithHeaders(hdrs)) } func (s *Serializer) Sign(alg jwa.SignatureAlgorithm, key interface{}, options ...SignOption) *Serializer { return s.Step(&jwsSerializer{ alg: alg, key: key, options: options, }) } type jweSerializer struct { keyalg jwa.KeyEncryptionAlgorithm key interface{} contentalg jwa.ContentEncryptionAlgorithm compressalg jwa.CompressionAlgorithm options []EncryptOption } func (s *jweSerializer) Serialize(ctx SerializeCtx, v interface{}) (interface{}, error) { payload, ok := v.([]byte) if !ok { return nil, fmt.Errorf(`expected []byte as input`) } var hdrs jwe.Headers //nolint:forcetypeassert for _, option := range s.options { switch option.Ident() { case identJweHeaders{}: hdrs = option.Value().(jwe.Headers) } } if hdrs == nil { hdrs = jwe.NewHeaders() } if err := setTypeOrCty(ctx, hdrs); err != nil { return nil, err // this is already wrapped } return jwe.Encrypt(payload, s.keyalg, s.key, s.contentalg, s.compressalg, jwe.WithProtectedHeaders(hdrs)) } func (s *Serializer) Encrypt(keyalg jwa.KeyEncryptionAlgorithm, key interface{}, contentalg jwa.ContentEncryptionAlgorithm, compressalg jwa.CompressionAlgorithm, options ...EncryptOption) *Serializer { return s.Step(&jweSerializer{ keyalg: keyalg, key: key, contentalg: contentalg, compressalg: compressalg, options: options, }) } func (s *Serializer) Serialize(t Token) ([]byte, error) { steps := make([]SerializeStep, len(s.steps)+1) steps[0] = jsonSerializer{} for i, step := range s.steps { steps[i+1] = step } var ctx serializeCtx ctx.nested = len(s.steps) > 1 var payload interface{} = t for i, step := range steps { ctx.step = i v, err := step.Serialize(&ctx, payload) if err != nil { return nil, errors.Wrapf(err, `failed to serialize token at step #%d`, i+1) } payload = v } res, ok := payload.([]byte) if !ok { return nil, errors.New(`invalid serialization produced`) } return res, nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/token_gen.go000066400000000000000000000327771465311135100225170ustar00rootroot00000000000000// This file is auto-generated by jwt/internal/cmd/gentoken/main.go. DO NOT EDIT package jwt import ( "bytes" "context" "sort" "sync" "time" "github.com/lestrrat-go/iter/mapiter" "github.com/lestrrat-go/jwx/internal/base64" "github.com/lestrrat-go/jwx/internal/iter" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/pool" "github.com/lestrrat-go/jwx/jwt/internal/types" "github.com/pkg/errors" ) const ( AudienceKey = "aud" ExpirationKey = "exp" IssuedAtKey = "iat" IssuerKey = "iss" JwtIDKey = "jti" NotBeforeKey = "nbf" SubjectKey = "sub" ) // Token represents a generic JWT token. // which are type-aware (to an extent). Other claims may be accessed via the `Get`/`Set` // methods but their types are not taken into consideration at all. If you have non-standard // claims that you must frequently access, consider creating accessors functions // like the following // // func SetFoo(tok jwt.Token) error // func GetFoo(tok jwt.Token) (*Customtyp, error) // // Embedding jwt.Token into another struct is not recommended, because // jwt.Token needs to handle private claims, and this really does not // work well when it is embedded in other structure type Token interface { // Audience returns the value for "aud" field of the token Audience() []string // Expiration returns the value for "exp" field of the token Expiration() time.Time // IssuedAt returns the value for "iat" field of the token IssuedAt() time.Time // Issuer returns the value for "iss" field of the token Issuer() string // JwtID returns the value for "jti" field of the token JwtID() string // NotBefore returns the value for "nbf" field of the token NotBefore() time.Time // Subject returns the value for "sub" field of the token Subject() string // PrivateClaims return the entire set of fields (claims) in the token // *other* than the pre-defined fields such as `iss`, `nbf`, `iat`, etc. PrivateClaims() map[string]interface{} // Get returns the value of the corresponding field in the token, such as // `nbf`, `exp`, `iat`, and other user-defined fields. If the field does not // exist in the token, the second return value will be `false` // // If you need to access fields like `alg`, `kid`, `jku`, etc, you need // to access the corresponding fields in the JWS/JWE message. For this, // you will need to access them by directly parsing the payload using // `jws.Parse` and `jwe.Parse` Get(string) (interface{}, bool) // Set assigns a value to the corresponding field in the token. Some // pre-defined fields such as `nbf`, `iat`, `iss` need their values to // be of a specific type. See the other getter methods in this interface // for the types of each of these fields Set(string, interface{}) error Remove(string) error Clone() (Token, error) Iterate(context.Context) Iterator Walk(context.Context, Visitor) error AsMap(context.Context) (map[string]interface{}, error) } type stdToken struct { mu *sync.RWMutex dc DecodeCtx // per-object context for decoding audience types.StringList // https://tools.ietf.org/html/rfc7519#section-4.1.3 expiration *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.4 issuedAt *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.6 issuer *string // https://tools.ietf.org/html/rfc7519#section-4.1.1 jwtID *string // https://tools.ietf.org/html/rfc7519#section-4.1.7 notBefore *types.NumericDate // https://tools.ietf.org/html/rfc7519#section-4.1.5 subject *string // https://tools.ietf.org/html/rfc7519#section-4.1.2 privateClaims map[string]interface{} } // New creates a standard token, with minimal knowledge of // possible claims. Standard claims include"aud", "exp", "iat", "iss", "jti", "nbf" and "sub". // Convenience accessors are provided for these standard claims func New() Token { return &stdToken{ mu: &sync.RWMutex{}, privateClaims: make(map[string]interface{}), } } func (t *stdToken) Get(name string) (interface{}, bool) { t.mu.RLock() defer t.mu.RUnlock() switch name { case AudienceKey: if t.audience == nil { return nil, false } v := t.audience.Get() return v, true case ExpirationKey: if t.expiration == nil { return nil, false } v := t.expiration.Get() return v, true case IssuedAtKey: if t.issuedAt == nil { return nil, false } v := t.issuedAt.Get() return v, true case IssuerKey: if t.issuer == nil { return nil, false } v := *(t.issuer) return v, true case JwtIDKey: if t.jwtID == nil { return nil, false } v := *(t.jwtID) return v, true case NotBeforeKey: if t.notBefore == nil { return nil, false } v := t.notBefore.Get() return v, true case SubjectKey: if t.subject == nil { return nil, false } v := *(t.subject) return v, true default: v, ok := t.privateClaims[name] return v, ok } } func (t *stdToken) Remove(key string) error { t.mu.Lock() defer t.mu.Unlock() switch key { case AudienceKey: t.audience = nil case ExpirationKey: t.expiration = nil case IssuedAtKey: t.issuedAt = nil case IssuerKey: t.issuer = nil case JwtIDKey: t.jwtID = nil case NotBeforeKey: t.notBefore = nil case SubjectKey: t.subject = nil default: delete(t.privateClaims, key) } return nil } func (t *stdToken) Set(name string, value interface{}) error { t.mu.Lock() defer t.mu.Unlock() return t.setNoLock(name, value) } func (t *stdToken) DecodeCtx() DecodeCtx { t.mu.RLock() defer t.mu.RUnlock() return t.dc } func (t *stdToken) SetDecodeCtx(v DecodeCtx) { t.mu.Lock() defer t.mu.Unlock() t.dc = v } func (t *stdToken) setNoLock(name string, value interface{}) error { switch name { case AudienceKey: var acceptor types.StringList if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, AudienceKey) } t.audience = acceptor return nil case ExpirationKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, ExpirationKey) } t.expiration = &acceptor return nil case IssuedAtKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, IssuedAtKey) } t.issuedAt = &acceptor return nil case IssuerKey: if v, ok := value.(string); ok { t.issuer = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, IssuerKey, value) case JwtIDKey: if v, ok := value.(string); ok { t.jwtID = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, JwtIDKey, value) case NotBeforeKey: var acceptor types.NumericDate if err := acceptor.Accept(value); err != nil { return errors.Wrapf(err, `invalid value for %s key`, NotBeforeKey) } t.notBefore = &acceptor return nil case SubjectKey: if v, ok := value.(string); ok { t.subject = &v return nil } return errors.Errorf(`invalid value for %s key: %T`, SubjectKey, value) default: if t.privateClaims == nil { t.privateClaims = map[string]interface{}{} } t.privateClaims[name] = value } return nil } func (t *stdToken) Audience() []string { t.mu.RLock() defer t.mu.RUnlock() if t.audience != nil { return t.audience.Get() } return nil } func (t *stdToken) Expiration() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.expiration != nil { return t.expiration.Get() } return time.Time{} } func (t *stdToken) IssuedAt() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.issuedAt != nil { return t.issuedAt.Get() } return time.Time{} } func (t *stdToken) Issuer() string { t.mu.RLock() defer t.mu.RUnlock() if t.issuer != nil { return *(t.issuer) } return "" } func (t *stdToken) JwtID() string { t.mu.RLock() defer t.mu.RUnlock() if t.jwtID != nil { return *(t.jwtID) } return "" } func (t *stdToken) NotBefore() time.Time { t.mu.RLock() defer t.mu.RUnlock() if t.notBefore != nil { return t.notBefore.Get() } return time.Time{} } func (t *stdToken) Subject() string { t.mu.RLock() defer t.mu.RUnlock() if t.subject != nil { return *(t.subject) } return "" } func (t *stdToken) PrivateClaims() map[string]interface{} { t.mu.RLock() defer t.mu.RUnlock() return t.privateClaims } func (t *stdToken) makePairs() []*ClaimPair { t.mu.RLock() defer t.mu.RUnlock() pairs := make([]*ClaimPair, 0, 7) if t.audience != nil { v := t.audience.Get() pairs = append(pairs, &ClaimPair{Key: AudienceKey, Value: v}) } if t.expiration != nil { v := t.expiration.Get() pairs = append(pairs, &ClaimPair{Key: ExpirationKey, Value: v}) } if t.issuedAt != nil { v := t.issuedAt.Get() pairs = append(pairs, &ClaimPair{Key: IssuedAtKey, Value: v}) } if t.issuer != nil { v := *(t.issuer) pairs = append(pairs, &ClaimPair{Key: IssuerKey, Value: v}) } if t.jwtID != nil { v := *(t.jwtID) pairs = append(pairs, &ClaimPair{Key: JwtIDKey, Value: v}) } if t.notBefore != nil { v := t.notBefore.Get() pairs = append(pairs, &ClaimPair{Key: NotBeforeKey, Value: v}) } if t.subject != nil { v := *(t.subject) pairs = append(pairs, &ClaimPair{Key: SubjectKey, Value: v}) } for k, v := range t.privateClaims { pairs = append(pairs, &ClaimPair{Key: k, Value: v}) } sort.Slice(pairs, func(i, j int) bool { return pairs[i].Key.(string) < pairs[j].Key.(string) }) return pairs } func (t *stdToken) UnmarshalJSON(buf []byte) error { t.mu.Lock() defer t.mu.Unlock() t.audience = nil t.expiration = nil t.issuedAt = nil t.issuer = nil t.jwtID = nil t.notBefore = nil t.subject = nil dec := json.NewDecoder(bytes.NewReader(buf)) LOOP: for { tok, err := dec.Token() if err != nil { return errors.Wrap(err, `error reading token`) } switch tok := tok.(type) { case json.Delim: // Assuming we're doing everything correctly, we should ONLY // get either '{' or '}' here. if tok == '}' { // End of object break LOOP } else if tok != '{' { return errors.Errorf(`expected '{', but got '%c'`, tok) } case string: // Objects can only have string keys switch tok { case AudienceKey: var decoded types.StringList if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, AudienceKey) } t.audience = decoded case ExpirationKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, ExpirationKey) } t.expiration = &decoded case IssuedAtKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, IssuedAtKey) } t.issuedAt = &decoded case IssuerKey: if err := json.AssignNextStringToken(&t.issuer, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, IssuerKey) } case JwtIDKey: if err := json.AssignNextStringToken(&t.jwtID, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, JwtIDKey) } case NotBeforeKey: var decoded types.NumericDate if err := dec.Decode(&decoded); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, NotBeforeKey) } t.notBefore = &decoded case SubjectKey: if err := json.AssignNextStringToken(&t.subject, dec); err != nil { return errors.Wrapf(err, `failed to decode value for key %s`, SubjectKey) } default: if dc := t.dc; dc != nil { if localReg := dc.Registry(); localReg != nil { decoded, err := localReg.Decode(dec, tok) if err == nil { t.setNoLock(tok, decoded) continue } } } decoded, err := registry.Decode(dec, tok) if err == nil { t.setNoLock(tok, decoded) continue } return errors.Wrapf(err, `could not decode field %s`, tok) } default: return errors.Errorf(`invalid token %T`, tok) } } return nil } func (t stdToken) MarshalJSON() ([]byte, error) { t.mu.RLock() defer t.mu.RUnlock() buf := pool.GetBytesBuffer() defer pool.ReleaseBytesBuffer(buf) buf.WriteByte('{') enc := json.NewEncoder(buf) for i, pair := range t.makePairs() { f := pair.Key.(string) if i > 0 { buf.WriteByte(',') } buf.WriteRune('"') buf.WriteString(f) buf.WriteString(`":`) switch f { case AudienceKey: if err := json.EncodeAudience(enc, pair.Value.([]string)); err != nil { return nil, errors.Wrap(err, `failed to encode "aud"`) } continue case ExpirationKey, IssuedAtKey, NotBeforeKey: enc.Encode(pair.Value.(time.Time).Unix()) continue } switch v := pair.Value.(type) { case []byte: buf.WriteRune('"') buf.WriteString(base64.EncodeToString(v)) buf.WriteRune('"') default: if err := enc.Encode(v); err != nil { return nil, errors.Wrapf(err, `failed to marshal field %s`, f) } buf.Truncate(buf.Len() - 1) } } buf.WriteByte('}') ret := make([]byte, buf.Len()) copy(ret, buf.Bytes()) return ret, nil } func (t *stdToken) Iterate(ctx context.Context) Iterator { pairs := t.makePairs() ch := make(chan *ClaimPair, len(pairs)) go func(ctx context.Context, ch chan *ClaimPair, pairs []*ClaimPair) { defer close(ch) for _, pair := range pairs { select { case <-ctx.Done(): return case ch <- pair: } } }(ctx, ch, pairs) return mapiter.New(ch) } func (t *stdToken) Walk(ctx context.Context, visitor Visitor) error { return iter.WalkMap(ctx, t, visitor) } func (t *stdToken) AsMap(ctx context.Context) (map[string]interface{}, error) { return iter.AsMap(ctx, t) } golang-github-lestrrat-go-jwx-1.2.30/jwt/token_test.go000066400000000000000000000147611465311135100227160ustar00rootroot00000000000000package jwt_test import ( "context" "reflect" "testing" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwt" "github.com/stretchr/testify/assert" ) const ( tokenTime = 233431200 ) var zeroval reflect.Value var expectedTokenTime = time.Unix(tokenTime, 0).UTC() func TestHeader(t *testing.T) { t.Parallel() values := map[string]interface{}{ jwt.AudienceKey: []string{"developers", "secops", "tac"}, jwt.ExpirationKey: expectedTokenTime, jwt.IssuedAtKey: expectedTokenTime, jwt.IssuerKey: "http://www.example.com", jwt.JwtIDKey: "e9bc097a-ce51-4036-9562-d2ade882db0d", jwt.NotBeforeKey: expectedTokenTime, jwt.SubjectKey: "unit test", } t.Run("Roundtrip", func(t *testing.T) { t.Parallel() h := jwt.New() for k, v := range values { if !assert.NoError(t, h.Set(k, v), `h.Set should succeed for key %#v`, k) { return } got, ok := h.Get(k) if !assert.True(t, ok, `h.Get should succeed for key %#v`, k) { return } if !reflect.DeepEqual(v, got) { t.Fatalf("Values do not match: (%v, %v)", v, got) } } }) t.Run("RoundtripError", func(t *testing.T) { t.Parallel() type dummyStruct struct { dummy1 int dummy2 float64 } dummy := &dummyStruct{1, 3.4} values := map[string]interface{}{ jwt.AudienceKey: dummy, jwt.ExpirationKey: dummy, jwt.IssuedAtKey: dummy, jwt.IssuerKey: dummy, jwt.JwtIDKey: dummy, jwt.NotBeforeKey: dummy, jwt.SubjectKey: dummy, } h := jwt.New() for k, v := range values { err := h.Set(k, v) if err == nil { t.Fatalf("Setting %s value should have failed", k) } } err := h.Set("default", dummy) // private params if err != nil { t.Fatalf("Setting %s value failed", "default") } for k := range values { _, ok := h.Get(k) if ok { t.Fatalf("Getting %s value should have failed", k) } } _, ok := h.Get("default") if !ok { t.Fatal("Failed to get default value") } }) t.Run("GetError", func(t *testing.T) { t.Parallel() h := jwt.New() issuer := h.Issuer() if issuer != "" { t.Fatalf("Get Issuer should return empty string") } jwtID := h.JwtID() if jwtID != "" { t.Fatalf("Get JWT Id should return empty string") } }) } func TestTokenMarshal(t *testing.T) { t.Parallel() t1 := jwt.New() err := t1.Set(jwt.JwtIDKey, "AbCdEfG") if err != nil { t.Fatalf("Failed to set JWT ID: %s", err.Error()) } err = t1.Set(jwt.SubjectKey, "foobar@example.com") if err != nil { t.Fatalf("Failed to set Subject: %s", err.Error()) } // Silly fix to remove monotonic element from time.Time obtained // from time.Now(). Without this, the equality comparison goes // ga-ga for golang tip (1.9) now := time.Unix(time.Now().Unix(), 0) err = t1.Set(jwt.IssuedAtKey, now.Unix()) if err != nil { t.Fatalf("Failed to set IssuedAt: %s", err.Error()) } err = t1.Set(jwt.NotBeforeKey, now.Add(5*time.Second)) if err != nil { t.Fatalf("Failed to set NotBefore: %s", err.Error()) } err = t1.Set(jwt.ExpirationKey, now.Add(10*time.Second).Unix()) if err != nil { t.Fatalf("Failed to set Expiration: %s", err.Error()) } err = t1.Set(jwt.AudienceKey, []string{"devops", "secops", "tac"}) if err != nil { t.Fatalf("Failed to set audience: %s", err.Error()) } err = t1.Set("custom", "MyValue") if err != nil { t.Fatalf(`Failed to set private claim "custom": %s`, err.Error()) } jsonbuf1, err := json.MarshalIndent(t1, "", " ") if err != nil { t.Fatalf("JSON Marshal failed: %s", err.Error()) } t2 := jwt.New() if !assert.NoError(t, json.Unmarshal(jsonbuf1, t2), `json.Unmarshal should succeed`) { return } if !assert.Equal(t, t1, t2, "tokens should match") { return } _, err = json.MarshalIndent(t2, "", " ") if err != nil { t.Fatalf("JSON marshal error: %s", err.Error()) } } func TestToken(t *testing.T) { tok := jwt.New() def := map[string]struct { Value interface{} Method string }{ jwt.AudienceKey: { Method: "Audience", Value: []string{"developers", "secops", "tac"}, }, jwt.ExpirationKey: { Method: "Expiration", Value: expectedTokenTime, }, jwt.IssuedAtKey: { Method: "IssuedAt", Value: expectedTokenTime, }, jwt.IssuerKey: { Method: "Issuer", Value: "http://www.example.com", }, jwt.JwtIDKey: { Method: "JwtID", Value: "e9bc097a-ce51-4036-9562-d2ade882db0d", }, jwt.NotBeforeKey: { Method: "NotBefore", Value: expectedTokenTime, }, jwt.SubjectKey: { Method: "Subject", Value: "unit test", }, "myClaim": { Value: "hello, world", }, } t.Run("Set", func(t *testing.T) { for k, kdef := range def { if !assert.NoError(t, tok.Set(k, kdef.Value), `tok.Set(%s) should succeed`, k) { return } } }) t.Run("Get", func(t *testing.T) { rv := reflect.ValueOf(tok) for k, kdef := range def { getval, ok := tok.Get(k) if !assert.True(t, ok, `tok.Get(%s) should succeed`, k) { return } if mname := kdef.Method; mname != "" { method := rv.MethodByName(mname) if !assert.NotEqual(t, zeroval, method, `method %s should not be zero value`, mname) { return } retvals := method.Call(nil) if !assert.Len(t, retvals, 1, `should have exactly one return value`) { return } if !assert.Equal(t, getval, retvals[0].Interface(), `values should match`) { return } } } }) t.Run("Roundtrip", func(t *testing.T) { buf, err := json.Marshal(tok) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } newtok, err := jwt.Parse(buf) if !assert.NoError(t, err, `jwt.Parse should succeed`) { return } m1, err := tok.AsMap(context.TODO()) if !assert.NoError(t, err, `tok.AsMap should succeed`) { return } m2, err := newtok.AsMap(context.TODO()) if !assert.NoError(t, err, `tok.AsMap should succeed`) { return } if !assert.Equal(t, m1, m2, `tokens should match`) { return } }) t.Run("Set/Remove", func(t *testing.T) { ctx := context.TODO() newtok, err := tok.Clone() if !assert.NoError(t, err, `tok.Clone should succeed`) { return } for iter := tok.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() newtok.Remove(pair.Key.(string)) } m, err := newtok.AsMap(ctx) if !assert.NoError(t, err, `tok.AsMap should succeed`) { return } if !assert.Len(t, m, 0, `toks should have 0 tok`) { return } for iter := tok.Iterate(ctx); iter.Next(ctx); { pair := iter.Pair() if !assert.NoError(t, newtok.Set(pair.Key.(string), pair.Value), `newtok.Set should succeed`) { return } } }) } golang-github-lestrrat-go-jwx-1.2.30/jwt/validate.go000066400000000000000000000251021465311135100223170ustar00rootroot00000000000000package jwt import ( "context" "strconv" "time" "github.com/pkg/errors" ) type Clock interface { Now() time.Time } type ClockFunc func() time.Time func (f ClockFunc) Now() time.Time { return f() } func isSupportedTimeClaim(c string) error { switch c { case ExpirationKey, IssuedAtKey, NotBeforeKey: return nil } return NewValidationError(errors.Errorf(`unsupported time claim %s`, strconv.Quote(c))) } func timeClaim(t Token, clock Clock, c string) time.Time { switch c { case ExpirationKey: return t.Expiration() case IssuedAtKey: return t.IssuedAt() case NotBeforeKey: return t.NotBefore() case "": return clock.Now() } return time.Time{} // should *NEVER* reach here, but... } // Validate makes sure that the essential claims stand. // // See the various `WithXXX` functions for optional parameters // that can control the behavior of this method. func Validate(t Token, options ...ValidateOption) error { ctx := context.Background() var clock Clock = ClockFunc(time.Now) var skew time.Duration var validators = []Validator{ IsIssuedAtValid(), IsExpirationValid(), IsNbfValid(), } for _, o := range options { //nolint:forcetypeassert switch o.Ident() { case identClock{}: clock = o.Value().(Clock) case identAcceptableSkew{}: skew = o.Value().(time.Duration) case identContext{}: ctx = o.Value().(context.Context) case identValidator{}: v := o.Value().(Validator) switch v := v.(type) { case *isInTimeRange: if v.c1 != "" { if err := isSupportedTimeClaim(v.c1); err != nil { return err } validators = append(validators, IsRequired(v.c1)) } if v.c2 != "" { if err := isSupportedTimeClaim(v.c2); err != nil { return err } validators = append(validators, IsRequired(v.c2)) } } validators = append(validators, v) } } ctx = SetValidationCtxSkew(ctx, skew) ctx = SetValidationCtxClock(ctx, clock) for _, v := range validators { if err := v.Validate(ctx, t); err != nil { return err } } return nil } type isInTimeRange struct { c1 string c2 string dur time.Duration less bool // if true, d =< c1 - c2. otherwise d >= c1 - c2 } // MaxDeltaIs implements the logic behind `WithMaxDelta()` option func MaxDeltaIs(c1, c2 string, dur time.Duration) Validator { return &isInTimeRange{ c1: c1, c2: c2, dur: dur, less: true, } } // MinDeltaIs implements the logic behind `WithMinDelta()` option func MinDeltaIs(c1, c2 string, dur time.Duration) Validator { return &isInTimeRange{ c1: c1, c2: c2, dur: dur, less: false, } } func (iitr *isInTimeRange) Validate(ctx context.Context, t Token) error { clock := ValidationCtxClock(ctx) // MUST be populated skew := ValidationCtxSkew(ctx) // MUST be populated // We don't check if the claims already exist, because we already did that // by piggybacking on `required` check. t1 := timeClaim(t, clock, iitr.c1).Truncate(time.Second) t2 := timeClaim(t, clock, iitr.c2).Truncate(time.Second) if iitr.less { // t1 - t2 <= iitr.dur // t1 - t2 < iitr.dur + skew if t1.Sub(t2) > iitr.dur+skew { return NewValidationError(errors.Errorf(`iitr between %s and %s exceeds %s (skew %s)`, iitr.c1, iitr.c2, iitr.dur, skew)) } } else { if t1.Sub(t2) < iitr.dur-skew { return NewValidationError(errors.Errorf(`iitr between %s and %s is less than %s (skew %s)`, iitr.c1, iitr.c2, iitr.dur, skew)) } } return nil } type ValidationError interface { error isValidationError() } func NewValidationError(err error) ValidationError { return &validationError{error: err} } // This is a generic validation error. type validationError struct { error } func (validationError) isValidationError() {} var errTokenExpired = NewValidationError(errors.New(`exp not satisfied`)) var errInvalidIssuedAt = NewValidationError(errors.New(`iat not satisfied`)) var errTokenNotYetValid = NewValidationError(errors.New(`nbf not satisfied`)) // ErrTokenExpired returns the immutable error used when `exp` claim // is not satisfied func ErrTokenExpired() error { return errTokenExpired } // ErrInvalidIssuedAt returns the immutable error used when `iat` claim // is not satisfied func ErrInvalidIssuedAt() error { return errInvalidIssuedAt } func ErrTokenNotYetValid() error { return errTokenNotYetValid } // Validator describes interface to validate a Token. type Validator interface { // Validate should return an error if a required conditions is not met. // This method will be changed in the next major release to return // jwt.ValidationError instead of error to force users to return // a validation error even for user-specified validators Validate(context.Context, Token) error } // ValidatorFunc is a type of Validator that does not have any // state, that is implemented as a function type ValidatorFunc func(context.Context, Token) error func (vf ValidatorFunc) Validate(ctx context.Context, tok Token) error { return vf(ctx, tok) } type identValidationCtxClock struct{} type identValidationCtxSkew struct{} func SetValidationCtxClock(ctx context.Context, cl Clock) context.Context { return context.WithValue(ctx, identValidationCtxClock{}, cl) } // ValidationCtxClock returns the Clock object associated with // the current validation context. This value will always be available // during validation of tokens. func ValidationCtxClock(ctx context.Context) Clock { //nolint:forcetypeassert return ctx.Value(identValidationCtxClock{}).(Clock) } func SetValidationCtxSkew(ctx context.Context, dur time.Duration) context.Context { return context.WithValue(ctx, identValidationCtxSkew{}, dur) } func ValidationCtxSkew(ctx context.Context) time.Duration { //nolint:forcetypeassert return ctx.Value(identValidationCtxSkew{}).(time.Duration) } // IsExpirationValid is one of the default validators that will be executed. // It does not need to be specified by users, but it exists as an // exported field so that you can check what it does. // // The supplied context.Context object must have the "clock" and "skew" // populated with appropriate values using SetValidationCtxClock() and // SetValidationCtxSkew() func IsExpirationValid() Validator { return ValidatorFunc(isExpirationValid) } func isExpirationValid(ctx context.Context, t Token) error { if tv := t.Expiration(); !tv.IsZero() && tv.Unix() != 0 { clock := ValidationCtxClock(ctx) // MUST be populated now := clock.Now().Truncate(time.Second) ttv := tv.Truncate(time.Second) skew := ValidationCtxSkew(ctx) // MUST be populated if !now.Before(ttv.Add(skew)) { return ErrTokenExpired() } } return nil } // IsIssuedAtValid is one of the default validators that will be executed. // It does not need to be specified by users, but it exists as an // exported field so that you can check what it does. // // The supplied context.Context object must have the "clock" and "skew" // populated with appropriate values using SetValidationCtxClock() and // SetValidationCtxSkew() func IsIssuedAtValid() Validator { return ValidatorFunc(isIssuedAtValid) } func isIssuedAtValid(ctx context.Context, t Token) error { if tv := t.IssuedAt(); !tv.IsZero() && tv.Unix() != 0 { clock := ValidationCtxClock(ctx) // MUST be populated now := clock.Now().Truncate(time.Second) ttv := tv.Truncate(time.Second) skew := ValidationCtxSkew(ctx) // MUST be populated if now.Before(ttv.Add(-1 * skew)) { return ErrInvalidIssuedAt() } } return nil } // IsNbfValid is one of the default validators that will be executed. // It does not need to be specified by users, but it exists as an // exported field so that you can check what it does. // // The supplied context.Context object must have the "clock" and "skew" // populated with appropriate values using SetValidationCtxClock() and // SetValidationCtxSkew() func IsNbfValid() Validator { return ValidatorFunc(isNbfValid) } func isNbfValid(ctx context.Context, t Token) error { if tv := t.NotBefore(); !tv.IsZero() && tv.Unix() != 0 { clock := ValidationCtxClock(ctx) // MUST be populated now := clock.Now().Truncate(time.Second) ttv := tv.Truncate(time.Second) skew := ValidationCtxSkew(ctx) // MUST be populated // now cannot be before t, so we check for now > t - skew if !now.Equal(ttv) && !now.After(ttv.Add(-1*skew)) { return ErrTokenNotYetValid() } } return nil } type claimContainsString struct { name string value string } // ClaimContainsString can be used to check if the claim called `name`, which is // expected to be a list of strings, contains `value`. Currently because of the // implementation this will probably only work for `aud` fields. func ClaimContainsString(name, value string) Validator { return claimContainsString{ name: name, value: value, } } // IsValidationError returns true if the error is a validation error func IsValidationError(err error) bool { switch err { case errTokenExpired, errTokenNotYetValid, errInvalidIssuedAt: return true default: switch err.(type) { case *validationError: return true default: return false } } } func (ccs claimContainsString) Validate(_ context.Context, t Token) error { v, ok := t.Get(ccs.name) if !ok { return NewValidationError(errors.Errorf(`claim %q not found`, ccs.name)) } list, ok := v.([]string) if !ok { return NewValidationError(errors.Errorf(`claim %q must be a []string (got %T)`, ccs.name, v)) } var found bool for _, v := range list { if v == ccs.value { found = true break } } if !found { return NewValidationError(errors.Errorf(`%s not satisfied`, ccs.name)) } return nil } type claimValueIs struct { name string value interface{} } // ClaimValueIs creates a Validator that checks if the value of claim `name` // matches `value`. The comparison is done using a simple `==` comparison, // and therefore complex comparisons may fail using this code. If you // need to do more, use a custom Validator. func ClaimValueIs(name string, value interface{}) Validator { return &claimValueIs{name: name, value: value} } func (cv *claimValueIs) Validate(_ context.Context, t Token) error { v, ok := t.Get(cv.name) if !ok { return NewValidationError(errors.Errorf(`%q not satisfied: claim %q does not exist`, cv.name, cv.name)) } if v != cv.value { return NewValidationError(errors.Errorf(`%q not satisfied: values do not match`, cv.name)) } return nil } // IsRequired creates a Validator that checks if the required claim `name` // exists in the token func IsRequired(name string) Validator { return isRequired(name) } type isRequired string func (ir isRequired) Validate(_ context.Context, t Token) error { _, ok := t.Get(string(ir)) if !ok { return NewValidationError(errors.Errorf(`required claim %q was not found`, string(ir))) } return nil } golang-github-lestrrat-go-jwx-1.2.30/jwt/validate_test.go000066400000000000000000000303771465311135100233700ustar00rootroot00000000000000package jwt_test import ( "context" "errors" "testing" "time" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/jwt" "github.com/stretchr/testify/assert" ) func TestGHIssue10(t *testing.T) { t.Parallel() // Simple string claims testcases := []struct { ClaimName string ClaimValue string OptionFunc func(string) jwt.ValidateOption BuildFunc func(v string) (jwt.Token, error) }{ { ClaimName: jwt.IssuerKey, ClaimValue: `github.com/lestrrat-go/jwx`, OptionFunc: jwt.WithIssuer, BuildFunc: func(v string) (jwt.Token, error) { return jwt.NewBuilder(). Issuer(v). Build() }, }, { ClaimName: jwt.JwtIDKey, ClaimValue: `my-sepcial-key`, OptionFunc: jwt.WithJwtID, BuildFunc: func(v string) (jwt.Token, error) { return jwt.NewBuilder(). JwtID(v). Build() }, }, { ClaimName: jwt.SubjectKey, ClaimValue: `very important subject`, OptionFunc: jwt.WithSubject, BuildFunc: func(v string) (jwt.Token, error) { return jwt.NewBuilder(). Subject(v). Build() }, }, } for _, tc := range testcases { tc := tc t.Run(tc.ClaimName, func(t *testing.T) { t.Parallel() t1, err := tc.BuildFunc(tc.ClaimValue) if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should succeed, because validation option (tc.OptionFunc) // is not provided in the optional parameters if !assert.NoError(t, jwt.Validate(t1), "t1.Validate should succeed") { return } // This should succeed, because the option is provided with same value if !assert.NoError(t, jwt.Validate(t1, tc.OptionFunc(tc.ClaimValue)), "t1.Validate should succeed") { return } if !assert.Error(t, jwt.Validate(t1, jwt.WithIssuer("poop")), "t1.Validate should fail") { return } }) } t.Run(jwt.IssuedAtKey, func(t *testing.T) { t.Parallel() t1 := jwt.New() t1.Set(jwt.IssuedAtKey, time.Now().Add(365*24*time.Second)) t.Run(`iat too far in the past`, func(t *testing.T) { err := jwt.Validate(t1) if !assert.Error(t, err, `jwt.Validate should fail`) { return } if !assert.True(t, errors.Is(err, jwt.ErrInvalidIssuedAt()), `error should be jwt.ErrInvalidIssuedAt`) { return } if !assert.False(t, errors.Is(err, jwt.ErrTokenNotYetValid()), `error should be not ErrNotYetValid`) { return } if !assert.True(t, jwt.IsValidationError(err), `error should be a validation error`) { return } }) }) t.Run(jwt.AudienceKey, func(t *testing.T) { t.Parallel() t1, err := jwt.NewBuilder(). Claim(jwt.AudienceKey, []string{"foo", "bar", "baz"}). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should succeed, because WithAudience is not provided in the // optional parameters t.Run("`aud` check disabled", func(t *testing.T) { t.Parallel() if !assert.NoError(t, jwt.Validate(t1), `jwt.Validate should succeed`) { return } }) // This should succeed, because WithAudience is provided, and its // value matches one of the audience values t.Run("`aud` contains `baz`", func(t *testing.T) { t.Parallel() if !assert.NoError(t, jwt.Validate(t1, jwt.WithAudience("baz")), "jwt.Validate should succeed") { return } }) t.Run("check `aud` contains `poop`", func(t *testing.T) { t.Parallel() err := jwt.Validate(t1, jwt.WithAudience("poop")) if !assert.Error(t, err, "token.Validate should fail") { return } if !assert.False(t, errors.Is(err, jwt.ErrTokenNotYetValid()), `error should be not ErrNotYetValid`) { return } if !assert.True(t, jwt.IsValidationError(err), `error should be a validation error`) { return } }) }) t.Run(jwt.SubjectKey, func(t *testing.T) { t.Parallel() t1, err := jwt.NewBuilder(). Claim(jwt.SubjectKey, "github.com/lestrrat-go/jwx"). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should succeed, because WithSubject is not provided in the // optional parameters if !assert.NoError(t, jwt.Validate(t1), "token.Validate should succeed") { return } // This should succeed, because WithSubject is provided with same value if !assert.NoError(t, jwt.Validate(t1, jwt.WithSubject(t1.Subject())), "token.Validate should succeed") { return } if !assert.Error(t, jwt.Validate(t1, jwt.WithSubject("poop")), "token.Validate should fail") { return } }) t.Run(jwt.NotBeforeKey, func(t *testing.T) { t.Parallel() // NotBefore is set to future date tm := time.Now().Add(72 * time.Hour) t1, err := jwt.NewBuilder(). Claim(jwt.NotBeforeKey, tm). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } testcases := []struct { Name string Options []jwt.ValidateOption Error bool }{ { // This should fail, because nbf is the future Name: `'nbf' is less than current time`, Error: true, }, { // This should succeed, because we have given reaaaaaaly big skew Name: `skew is large enough`, Options: []jwt.ValidateOption{ jwt.WithAcceptableSkew(73 * time.Hour), }, }, { // This should succeed, because we have given a time // that is well enough into the future Name: `clock is set to after time in nbf`, Options: []jwt.ValidateOption{ jwt.WithClock(jwt.ClockFunc(func() time.Time { return tm.Add(time.Hour) })), }, }, { // This should succeed, the time == NotBefore time // Note, this may fail if you are return a monotonic clock Name: `clock is set to the same time as nbf`, Options: []jwt.ValidateOption{ jwt.WithClock(jwt.ClockFunc(func() time.Time { return tm })), }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { if tc.Error { err := jwt.Validate(t1, tc.Options...) if !assert.Error(t, err, "token.Validate should fail") { return } if !assert.True(t, errors.Is(err, jwt.ErrTokenNotYetValid()), `error should be ErrTokenNotYetValid`) { return } if !assert.False(t, errors.Is(err, jwt.ErrTokenExpired()), `error should not be ErrTokenExpierd`) { return } if !assert.True(t, jwt.IsValidationError(err), `error should be a validation error`) { return } } else { if !assert.NoError(t, jwt.Validate(t1, tc.Options...), "token.Validate should succeed") { return } } }) } }) t.Run(jwt.ExpirationKey, func(t *testing.T) { t.Parallel() tm := time.Now() t1, err := jwt.NewBuilder(). // issuedat = 1 Hr before current time Claim(jwt.IssuedAtKey, tm.Add(-1*time.Hour)). // valid for 2 minutes only from IssuedAt Claim(jwt.ExpirationKey, tm.Add(-58*time.Minute)). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should fail, because exp is set in the past t.Run("exp set in the past", func(t *testing.T) { t.Parallel() err := jwt.Validate(t1) if !assert.Error(t, err, "token.Validate should fail") { return } if !assert.True(t, errors.Is(err, jwt.ErrTokenExpired()), `error should be ErrTokenExpired`) { return } if !assert.False(t, errors.Is(err, jwt.ErrTokenNotYetValid()), `error should be not ErrNotYetValid`) { return } if !assert.True(t, jwt.IsValidationError(err), `error should be a validation error`) { return } }) // This should succeed, because we have given big skew // that is well enough to get us accepted t.Run("exp is set in the past, but acceptable skew is large", func(t *testing.T) { t.Parallel() if !assert.NoError(t, jwt.Validate(t1, jwt.WithAcceptableSkew(time.Hour)), "token.Validate should succeed (1)") { return } }) // This should succeed, because we have given a time // that is well enough into the past t.Run("exp is set in the past, but clock is also set in the past", func(t *testing.T) { t.Parallel() clock := jwt.ClockFunc(func() time.Time { return tm.Add(-59 * time.Minute) }) if !assert.NoError(t, jwt.Validate(t1, jwt.WithClock(clock)), "token.Validate should succeed (2)") { return } }) }) t.Run("Unix zero times", func(t *testing.T) { t.Parallel() tm := time.Unix(0, 0) t1, err := jwt.NewBuilder(). Claim(jwt.NotBeforeKey, tm). Claim(jwt.IssuedAtKey, tm). Claim(jwt.ExpirationKey, tm). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should pass because the unix zero times should be ignored if assert.NoError(t, jwt.Validate(t1), "token.Validate should pass") { return } }) t.Run("Go zero times", func(t *testing.T) { t.Parallel() tm := time.Time{} t1, err := jwt.NewBuilder(). Claim(jwt.NotBeforeKey, tm). Claim(jwt.IssuedAtKey, tm). Claim(jwt.ExpirationKey, tm). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should pass because the go zero times should be ignored if assert.NoError(t, jwt.Validate(t1), "token.Validate should pass") { return } }) t.Run("Parse and validate", func(t *testing.T) { t.Parallel() tm := time.Now() t1, err := jwt.NewBuilder(). // issuedat = 1 Hr before current time Claim(jwt.IssuedAtKey, tm.Add(-1*time.Hour)). // valid for 2 minutes only from IssuedAt Claim(jwt.ExpirationKey, tm.Add(-58*time.Minute)). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } buf, err := json.Marshal(t1) if !assert.NoError(t, err, `json.Marshal should succeed`) { return } _, err = jwt.Parse(buf, jwt.WithValidate(true)) // This should fail, because exp is set in the past if !assert.Error(t, err, "jwt.Parse should fail") { return } _, err = jwt.Parse(buf, jwt.WithValidate(true), jwt.WithAcceptableSkew(time.Hour)) // This should succeed, because we have given big skew // that is well enough to get us accepted if !assert.NoError(t, err, "jwt.Parse should succeed (1)") { return } // This should succeed, because we have given a time // that is well enough into the past clock := jwt.ClockFunc(func() time.Time { return tm.Add(-59 * time.Minute) }) _, err = jwt.Parse(buf, jwt.WithValidate(true), jwt.WithClock(clock)) if !assert.NoError(t, err, "jwt.Parse should succeed (2)") { return } }) t.Run("any claim value", func(t *testing.T) { t.Parallel() t1, err := jwt.NewBuilder(). Claim("email", "email@example.com"). Build() if !assert.NoError(t, err, `jwt.NewBuilder should succeed`) { return } // This should succeed, because WithClaimValue("email", "xxx") is not provided in the // optional parameters if !assert.NoError(t, jwt.Validate(t1), "t1.Validate should succeed") { return } // This should succeed, because WithClaimValue is provided with same value if !assert.NoError(t, jwt.Validate(t1, jwt.WithClaimValue("email", "email@example.com")), "t1.Validate should succeed") { return } if !assert.Error(t, jwt.Validate(t1, jwt.WithClaimValue("email", "poop")), "t1.Validate should fail") { return } if !assert.Error(t, jwt.Validate(t1, jwt.WithClaimValue("xxxx", "email@example.com")), "t1.Validate should fail") { return } if !assert.Error(t, jwt.Validate(t1, jwt.WithClaimValue("xxxx", "")), "t1.Validate should fail") { return } }) } func TestClaimValidator(t *testing.T) { t.Parallel() const myClaim = "my-claim" err0 := errors.New(myClaim + " does not exist") v := jwt.ValidatorFunc(func(_ context.Context, tok jwt.Token) error { _, ok := tok.Get(myClaim) if !ok { return err0 } return nil }) testcases := []struct { Name string MakeToken func() jwt.Token Error error }{ { Name: "Successful validation", MakeToken: func() jwt.Token { t1 := jwt.New() _ = t1.Set(myClaim, map[string]interface{}{"k": "v"}) return t1 }, }, { Name: "Target claim does not exist", MakeToken: func() jwt.Token { t1 := jwt.New() _ = t1.Set("other-claim", map[string]interface{}{"k": "v"}) return t1 }, Error: err0, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { t.Parallel() t1 := tc.MakeToken() if err := tc.Error; err != nil { if !assert.ErrorIs(t, jwt.Validate(t1, jwt.WithValidator(v)), err) { return } return } if !assert.NoError(t, jwt.Validate(t1, jwt.WithValidator(v))) { return } }) } } golang-github-lestrrat-go-jwx-1.2.30/jwx.go000066400000000000000000000030031465311135100205260ustar00rootroot00000000000000//go:generate ./gen.sh //go:generate stringer -type=FormatKind //go:generate mv formatkind_string.go formatkind_string_gen.go // Package jwx contains tools that deal with the various JWx (JOSE) // technologies such as JWT, JWS, JWE, etc in Go. // // JWS (https://tools.ietf.org/html/rfc7515) // JWE (https://tools.ietf.org/html/rfc7516) // JWK (https://tools.ietf.org/html/rfc7517) // JWA (https://tools.ietf.org/html/rfc7518) // JWT (https://tools.ietf.org/html/rfc7519) // // Examples are stored in a separate Go module (to avoid adding // dependencies to this module), and thus does not appear in the // online documentation for this module. // You can find the examples in Github at https://github.com/lestrrat-go/jwx/examples // // You can find more high level documentation at Github (https://github.com/lestrrat-go/jwx) // // FAQ style documentation can be found in the repository (https://github.com/lestrrat-go/jwx/tree/develop/v2/docs) package jwx import ( "github.com/lestrrat-go/jwx/internal/json" ) // DecoderSettings gives you a access to configure the "encoding/json".Decoder // used to decode JSON objects within the jwx framework. func DecoderSettings(options ...JSONOption) { // XXX We're using this format instead of just passing a single boolean // in case a new option is to be added some time later var useNumber bool for _, option := range options { //nolint:forcetypeassert switch option.Ident() { case identUseNumber{}: useNumber = option.Value().(bool) } } json.DecoderSettings(useNumber) } golang-github-lestrrat-go-jwx-1.2.30/jwx_test.go000066400000000000000000000376721465311135100216100ustar00rootroot00000000000000package jwx_test import ( "context" "crypto/ecdsa" "crypto/rsa" "fmt" "strings" "testing" "github.com/lestrrat-go/jwx" "github.com/lestrrat-go/jwx/internal/ecutil" "github.com/lestrrat-go/jwx/internal/jose" "github.com/lestrrat-go/jwx/internal/json" "github.com/lestrrat-go/jwx/internal/jwxtest" "github.com/lestrrat-go/jwx/jwa" "github.com/lestrrat-go/jwx/jwe" "github.com/lestrrat-go/jwx/jwk" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestShowBuildInfo(t *testing.T) { t.Logf("Running tests using JSON backend => %s\n", json.Engine()) t.Logf("Available elliptic curves:") for _, alg := range ecutil.AvailableAlgorithms() { t.Logf(" %s", alg) } } type jsonUnmarshalWrapper struct { buf []byte } func (w jsonUnmarshalWrapper) Decode(v interface{}) error { return json.Unmarshal(w.buf, v) } func TestDecoderSetting(t *testing.T) { // DO NOT MAKE THIS TEST PARALLEL. This test uses features with global side effects const src = `{"foo": 1}` for _, useNumber := range []bool{true, false} { useNumber := useNumber t.Run(fmt.Sprintf("jwx.WithUseNumber(%t)", useNumber), func(t *testing.T) { if useNumber { jwx.DecoderSettings(jwx.WithUseNumber(useNumber)) t.Cleanup(func() { jwx.DecoderSettings(jwx.WithUseNumber(false)) }) } // json.NewDecoder must be called AFTER the above jwx.DecoderSettings call decoders := []struct { Name string Decoder interface{ Decode(interface{}) error } }{ {Name: "Decoder", Decoder: json.NewDecoder(strings.NewReader(src))}, {Name: "Unmarshal", Decoder: jsonUnmarshalWrapper{buf: []byte(src)}}, } for _, tc := range decoders { tc := tc t.Run(tc.Name, func(t *testing.T) { var m map[string]interface{} if !assert.NoError(t, tc.Decoder.Decode(&m), `Decode should succeed`) { return } v, ok := m["foo"] if !assert.True(t, ok, `m["foo"] should exist`) { return } if useNumber { if !assert.Equal(t, json.Number("1"), v, `v should be a json.Number object`) { return } } else { if !assert.Equal(t, float64(1), v, `v should be a float64`) { return } } }) } }) } } // Test compatibility against `jose` tool func TestJoseCompatibility(t *testing.T) { t.Parallel() if testing.Short() { t.Logf("Skipped during short tests") return } if !jose.Available() { t.Logf("`jose` binary not available, skipping tests") return } t.Run("jwk", func(t *testing.T) { t.Parallel() testcases := []struct { Name string Raw interface{} Template string VerifyKey func(context.Context, *testing.T, jwk.Key) bool }{ { Name: "RSA Private Key (256)", Raw: rsa.PrivateKey{}, Template: `{"alg": "RS256"}`, }, { Name: "RSA Private Key (384)", Raw: rsa.PrivateKey{}, Template: `{"alg": "RS384"}`, }, { Name: "RSA Private Key (512)", Raw: rsa.PrivateKey{}, Template: `{"alg": "RS512"}`, }, { Name: "RSA Private Key with Private Parameters", Raw: rsa.PrivateKey{}, Template: `{"alg": "RS256", "x-jwx": 1234}`, VerifyKey: func(ctx context.Context, t *testing.T, key jwk.Key) bool { m, err := key.AsMap(ctx) if !assert.NoError(t, err, `key.AsMap() should succeed`) { return false } if !assert.Equal(t, float64(1234), m["x-jwx"], `private parameters should match`) { return false } return true }, }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { t.Parallel() ctx, cancel := context.WithCancel(context.Background()) defer cancel() keyfile, cleanup, err := jose.GenerateJwk(ctx, t, tc.Template) if !assert.NoError(t, err, `jose.GenerateJwk should succeed`) { return } defer cleanup() webkey, err := jwxtest.ParseJwkFile(ctx, keyfile) if !assert.NoError(t, err, `ParseJwkFile should succeed`) { return } if vk := tc.VerifyKey; vk != nil { if !vk(ctx, t, webkey) { return } } if !assert.NoError(t, webkey.Raw(&tc.Raw), `jwk.Raw should succeed`) { return } }) } }) t.Run("jwe", func(t *testing.T) { // For some reason "jose" does not come with RSA-OAEP on some platforms. // In order to avoid doing this in an ad-hoc way, we're just going to // ask our jose package for the algorithms that it supports, and generate // the list dynamically t.Parallel() ctx, cancel := context.WithCancel(context.Background()) defer cancel() set, err := jose.Algorithms(ctx, t) require.NoError(t, err) var tests []interopTest for _, keyenc := range []jwa.KeyEncryptionAlgorithm{jwa.RSA1_5, jwa.RSA_OAEP, jwa.RSA_OAEP_256} { if !set.Has(keyenc.String()) { t.Logf("jose does not support key encryption algorithm %q: skipping", keyenc) continue } for _, contentenc := range []jwa.ContentEncryptionAlgorithm{jwa.A128GCM, jwa.A128CBC_HS256, jwa.A256CBC_HS512} { tests = append(tests, interopTest{keyenc, contentenc}) } } for _, keyenc := range []jwa.KeyEncryptionAlgorithm{jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.A128KW, jwa.A128GCMKW, jwa.A256KW, jwa.A256GCMKW, jwa.PBES2_HS256_A128KW, jwa.DIRECT} { if !set.Has(keyenc.String()) { t.Logf("jose does not support key encryption algorithm %q: skipping", keyenc) continue } for _, contentenc := range []jwa.ContentEncryptionAlgorithm{jwa.A128GCM, jwa.A128CBC_HS256} { tests = append(tests, interopTest{keyenc, contentenc}) } } for _, keyenc := range []jwa.KeyEncryptionAlgorithm{jwa.ECDH_ES, jwa.ECDH_ES_A256KW, jwa.A256KW, jwa.A256GCMKW, jwa.PBES2_HS512_A256KW, jwa.DIRECT} { if !set.Has(keyenc.String()) { t.Logf("jose does not support key encryption algorithm %q: skipping", keyenc) continue } for _, contentenc := range []jwa.ContentEncryptionAlgorithm{jwa.A256GCM, jwa.A256CBC_HS512} { tests = append(tests, interopTest{keyenc, contentenc}) } } for _, keyenc := range []jwa.KeyEncryptionAlgorithm{jwa.PBES2_HS384_A192KW} { if !set.Has(keyenc.String()) { t.Logf("jose does not support key encryption algorithm %q: skipping", keyenc) continue } for _, contentenc := range []jwa.ContentEncryptionAlgorithm{jwa.A192GCM, jwa.A192CBC_HS384} { tests = append(tests, interopTest{keyenc, contentenc}) } } for _, test := range tests { test := test t.Run(fmt.Sprintf("%s-%s", test.alg, test.enc), func(t *testing.T) { t.Parallel() ctx, cancel := context.WithCancel(context.Background()) defer cancel() joseInteropTest(ctx, test, t) }) } }) t.Run("jws", func(t *testing.T) { t.Parallel() tests := []jwa.SignatureAlgorithm{ jwa.ES256, //jwa.ES256K, jwa.ES384, jwa.ES512, //jwa.EdDSA, jwa.HS256, jwa.HS384, jwa.HS512, jwa.PS256, jwa.PS384, jwa.PS512, jwa.RS256, jwa.RS384, jwa.RS512, } for _, test := range tests { test := test t.Run(test.String(), func(t *testing.T) { t.Parallel() ctx, cancel := context.WithCancel(context.Background()) defer cancel() joseJwsInteropTest(ctx, test, t) }) } }) } type interopTest struct { alg jwa.KeyEncryptionAlgorithm enc jwa.ContentEncryptionAlgorithm } func joseInteropTest(ctx context.Context, spec interopTest, t *testing.T) { t.Helper() expected := []byte("Lorem ipsum") // let jose generate a key file alg := spec.alg.String() if spec.alg == jwa.DIRECT { alg = spec.enc.String() } joseJwkFile, joseJwkCleanup, err := jose.GenerateJwk(ctx, t, fmt.Sprintf(`{"alg": "%s"}`, alg)) if !assert.NoError(t, err, `jose.GenerateJwk should succeed`) { return } defer joseJwkCleanup() // Load the JWK generated by jose jwxJwk, err := jwxtest.ParseJwkFile(ctx, joseJwkFile) if !assert.NoError(t, err, `jwxtest.ParseJwkFile should succeed`) { return } t.Run("Parse JWK via jwx", func(t *testing.T) { switch spec.alg { case jwa.RSA1_5, jwa.RSA_OAEP, jwa.RSA_OAEP_256: var rawkey rsa.PrivateKey if !assert.NoError(t, jwxJwk.Raw(&rawkey), `jwk.Raw should succeed`) { return } case jwa.ECDH_ES, jwa.ECDH_ES_A128KW, jwa.ECDH_ES_A192KW, jwa.ECDH_ES_A256KW: var rawkey ecdsa.PrivateKey if !assert.NoError(t, jwxJwk.Raw(&rawkey), `jwk.Raw should succeed`) { return } default: var rawkey []byte if !assert.NoError(t, jwxJwk.Raw(&rawkey), `jwk.Raw should succeed`) { return } } }) t.Run("Encrypt with jose, Decrypt with jwx", func(t *testing.T) { // let jose encrypt payload using the key file joseCryptFile, joseCryptCleanup, err := jose.EncryptJwe(ctx, t, expected, spec.alg.String(), joseJwkFile, spec.enc.String(), true) if !assert.NoError(t, err, `jose.EncryptJwe should succeed`) { return } defer joseCryptCleanup() jwxtest.DumpFile(t, joseCryptFile) // let jwx decrypt the jose crypted file payload, err := jwxtest.DecryptJweFile(ctx, joseCryptFile, spec.alg, joseJwkFile) if !assert.NoError(t, err, `decryptFile.DecryptJwe should succeed`) { return } if !assert.Equal(t, expected, payload, `decrypted payloads should match`) { return } }) t.Run("Encrypt with jwx, Decrypt with jose", func(t *testing.T) { jwxCryptFile, jwxCryptCleanup, err := jwxtest.EncryptJweFile(ctx, expected, spec.alg, joseJwkFile, spec.enc, jwa.NoCompress) if !assert.NoError(t, err, `jwxtest.EncryptJweFile should succeed`) { return } defer jwxCryptCleanup() payload, err := jose.DecryptJwe(ctx, t, jwxCryptFile, joseJwkFile) if !assert.NoError(t, err, `jose.DecryptJwe should succeed`) { return } if !assert.Equal(t, expected, payload, `decrypted payloads should match`) { return } }) } func joseJwsInteropTest(ctx context.Context, alg jwa.SignatureAlgorithm, t *testing.T) { t.Helper() expected := []byte(`{"foo":"bar"}`) joseJwkFile, joseJwkCleanup, err := jose.GenerateJwk(ctx, t, fmt.Sprintf(`{"alg": "%s"}`, alg)) if !assert.NoError(t, err, `jose.GenerateJwk should succeed`) { return } defer joseJwkCleanup() // Load the JWK generated by jose _, err = jwxtest.ParseJwkFile(ctx, joseJwkFile) if !assert.NoError(t, err, `jwxtest.ParseJwkFile should succeed`) { return } t.Run("Sign with jose, Verify with jwx", func(t *testing.T) { // let jose encrypt payload using the key file joseCryptFile, joseCryptCleanup, err := jose.SignJws(ctx, t, expected, joseJwkFile, true) if !assert.NoError(t, err, `jose.SignJws should succeed`) { return } defer joseCryptCleanup() jwxtest.DumpFile(t, joseCryptFile) // let jwx decrypt the jose crypted file payload, err := jwxtest.VerifyJwsFile(ctx, joseCryptFile, alg, joseJwkFile) if !assert.NoError(t, err, `jwxtest.VerifyJwsFile should succeed`) { return } if !assert.Equal(t, expected, payload, `decrypted payloads should match`) { return } }) t.Run("Sign with jwx, Verify with jose", func(t *testing.T) { jwxCryptFile, jwxCryptCleanup, err := jwxtest.SignJwsFile(ctx, expected, alg, joseJwkFile) if !assert.NoError(t, err, `jwxtest.SignJwsFile should succeed`) { return } defer jwxCryptCleanup() payload, err := jose.VerifyJws(ctx, t, jwxCryptFile, joseJwkFile) if !assert.NoError(t, err, `jose.VerifyJws should succeed`) { return } if !assert.Equal(t, expected, payload, `decrypted payloads should match`) { return } }) } func TestGHIssue230(t *testing.T) { t.Parallel() if !jose.Available() { t.SkipNow() } data := "eyJhbGciOiJFQ0RILUVTIiwiY2xldmlzIjp7InBpbiI6InRhbmciLCJ0YW5nIjp7ImFkdiI6eyJrZXlzIjpbeyJhbGciOiJFQ01SIiwiY3J2IjoiUC01MjEiLCJrZXlfb3BzIjpbImRlcml2ZUtleSJdLCJrdHkiOiJFQyIsIngiOiJBZm5tR2xHRTFHRUZ5NEpUT2tGWmo5ZEhEUmdpVE5IeFBST3hpZDZLdm0xVGRFQkZ3bElsSVB6TG5lTjlnb3h6OUVGYmJLM3BoN0tWZS05aVF4MmxhOVNFIiwieSI6IkFmZGFaTVYzVzk1NE14elQxeXF3MWVaRU9xTFFZZnBXSGczMlJvekhyQjBEYmoxWWV3OVFvTDg1M2Y2aUw2REIyRC1nbEcxSFFsb3czdGRNdFhjN1pSY0IifSx7ImFsZyI6IkVTNTEyIiwiY3J2IjoiUC01MjEiLCJrZXlfb3BzIjpbInZlcmlmeSJdLCJrdHkiOiJFQyIsIngiOiJBR0drcXRPZzZqel9pZnhmVnVWQ01CalVySFhCTGtfS2hIb3lKRkU5NmJucTZKZVVHNFNMZnRrZ2FIYk5WT0U4Q3Mwd0JqR0ZkSWxDbnBmak94RGJfbFBoIiwieSI6IkFLU0laT0JYY1Jfa3RkWjZ6T3F3TGI5SEJzai0yYmRMUmw5dFZVbnVlV2N3aXg5X3NiekliSWx0SE9YUGhBTW9yaUlYMWVyNzc4Unh6Vkg5d0FtaUhGa1kifV19LCJ1cmwiOiJodHRwOi8vbG9jYWxob3N0OjM5NDIxIn19LCJlbmMiOiJBMjU2R0NNIiwiZXBrIjp7ImNydiI6IlAtNTIxIiwia3R5IjoiRUMiLCJ4IjoiQUJMUm9sQWotZFdVdzZLSjg2T3J6d1F6RjlGT09URFZBZnNWNkh0OU0zREhyQ045Q0N6dVJ1b3cwbWp6M3BjZnVCaFpYREpfN0dkdzE0LXdneV9fTFNrYyIsInkiOiJBT3NRMzlKZmFQVGhjc2FZTjhSMVBHXzIwYXZxRU1NRl9fM2RHQmI3c1BqNmktNEJORDVMdkZ3cVpJT1l4SS1kVWlvNzkyOWY1YnE0eEdJY0lGWWtlbllxIn0sImtpZCI6ImhlZmVpNzVqMkp4Sko3REZnSDAxUWlOVmlGayJ9..GH3-8v7wfxEsRnki.wns--EIYTRjM3Tb0HyA.EGn2Gq7PnSVvPaMN0oRi5A" compactMsg, err := jwe.ParseString(data) if !assert.NoError(t, err, `jwe.ParseString should succeed`) { return } formatted, err := jose.FmtJwe(context.TODO(), t, []byte(data)) if !assert.NoError(t, err, `jose.FmtJwe should succeed`) { return } jsonMsg, err := jwe.Parse(formatted) if !assert.NoError(t, err, `jwe.Parse should succeed`) { return } if !assert.Equal(t, compactMsg, jsonMsg, `messages should match`) { return } } func TestGuessFormat(t *testing.T) { testcases := []struct { Name string Expected jwx.FormatKind Source []byte }{ { Name: "Raw String", Expected: jwx.UnknownFormat, Source: []byte(`Hello, World`), }, { Name: "Random JSON Object", Expected: jwx.UnknownFormat, Source: []byte(`{"random": "JSON"}`), }, { Name: "Random JSON Array", Expected: jwx.UnknownFormat, Source: []byte(`["random", "JSON"]`), }, { Name: "Random Broken JSON", Expected: jwx.UnknownFormat, Source: []byte(`{"aud": "foo", "x-customg": "extra semicolon after this string", }`), }, { Name: "JWS", Expected: jwx.JWS, // from https://tools.ietf.org/html/rfc7515#appendix-A.1 Source: []byte(`eyJ0eXAiOiJKV1QiLA0KICJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJqb2UiLA0KICJleHAiOjEzMDA4MTkzODAsDQogImh0dHA6Ly9leGFtcGxlLmNvbS9pc19yb290Ijp0cnVlfQ.dBjftJeZ4CVP-mB92K27uhbUJU1p1r_wW1gFWFOEjXk`), }, { Name: "JWE", Expected: jwx.JWE, Source: []byte(`eyJhbGciOiJSU0EtT0FFUCIsImVuYyI6IkEyNTZHQ00ifQ.OKOawDo13gRp2ojaHV7LFpZcgV7T6DVZKTyKOMTYUmKoTCVJRgckCL9kiMT03JGeipsEdY3mx_etLbbWSrFr05kLzcSr4qKAq7YN7e9jwQRb23nfa6c9d-StnImGyFDbSv04uVuxIp5Zms1gNxKKK2Da14B8S4rzVRltdYwam_lDp5XnZAYpQdb76FdIKLaVmqgfwX7XWRxv2322i-vDxRfqNzo_tETKzpVLzfiwQyeyPGLBIO56YJ7eObdv0je81860ppamavo35UgoRdbYaBcoh9QcfylQr66oc6vFWXRcZ_ZT2LawVCWTIy3brGPi6UklfCpIMfIjf7iGdXKHzg.48V1_ALb6US04U3b.5eym8TW_c8SuK0ltJ3rpYIzOeDQz7TALvtu6UG9oMo4vpzs9tX_EFShS8iB7j6jiSdiwkIr3ajwQzaBtQD_A.XFBoMYUZodetZdvTiFvSkQ`), }, { Name: "JWK", Expected: jwx.JWK, Source: []byte(`{"kty":"OKP","crv":"X25519","x":"3p7bfXt9wbTTW2HC7OQ1Nz-DQ8hbeGdNrfx-FG-IK08"}`), }, { Name: "JWKS", Expected: jwx.JWKS, Source: []byte(`{"keys":[{"kty":"OKP","crv":"X25519","x":"3p7bfXt9wbTTW2HC7OQ1Nz-DQ8hbeGdNrfx-FG-IK08"}]}`), }, { Name: "JWS (JSON)", Expected: jwx.JWS, Source: []byte(`{"signatures": [], "payload": ""}`), }, { Name: "JWT", Expected: jwx.JWT, Source: []byte(`{"aud":"github.com/lestrrat-go/jwx"}`), }, } for _, tc := range testcases { tc := tc t.Run(tc.Name, func(t *testing.T) { got := jwx.GuessFormat(tc.Source) if !assert.Equal(t, got, tc.Expected, `value of jwx.GuessFormat should match (%s != %s)`, got, tc.Expected) { return } }) } } func TestFormat(t *testing.T) { testcases := []struct { Value jwx.FormatKind Expected string Error bool }{ { Value: jwx.UnknownFormat, Expected: "UnknownFormat", }, { Value: jwx.JWE, Expected: "JWE", }, { Value: jwx.JWS, Expected: "JWS", }, { Value: jwx.JWK, Expected: "JWK", }, { Value: jwx.JWKS, Expected: "JWKS", }, { Value: jwx.JWT, Expected: "JWT", }, { Value: jwx.FormatKind(9999999), Expected: "FormatKind(9999999)", }, } for _, tc := range testcases { tc := tc t.Run(tc.Expected, func(t *testing.T) { if !assert.Equal(t, tc.Expected, tc.Value.String(), `stringification should match`) { return } }) } } golang-github-lestrrat-go-jwx-1.2.30/options.go000066400000000000000000000011241465311135100214130ustar00rootroot00000000000000package jwx import "github.com/lestrrat-go/option" type identUseNumber struct{} type Option = option.Interface type JSONOption interface { Option isJSONOption() } type jsonOption struct { Option } func (o *jsonOption) isJSONOption() {} func newJSONOption(n interface{}, v interface{}) JSONOption { return &jsonOption{option.New(n, v)} } // WithUseNumber controls whether the jwx package should unmarshal // JSON objects with the "encoding/json".Decoder.UseNumber feature on. // // Default is false. func WithUseNumber(b bool) JSONOption { return newJSONOption(identUseNumber{}, b) } golang-github-lestrrat-go-jwx-1.2.30/scripts/000077500000000000000000000000001465311135100210625ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/scripts/benchcmp.sh000077500000000000000000000022061465311135100232000ustar00rootroot00000000000000#!/bin/bash # ./benchcmp.sh branch1 branch2 [count] function curbranch { git rev-parse --abbrev-ref HEAD 2>/dev/null } function curcommit { git log -n 1 --format=%H | cut -c 1-9 } count=$3 if [[ -z "$count" ]]; then count=5 fi if [[ ! "$count" != ^[1-9][0-9]*$ ]]; then echo "third argument must be a positive integer" exit 1 fi set -e tmpdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'jwxbench') origbranch=$(git rev-parse --abbrev-ref HEAD) outputfiles=() commits=() echo "# Going to run ${count} iterations of benchmarks against $1 and $2 branches" for branch in $1 $2 do cbranch=$(curbranch) if [[ "$branch" != "$cbranch" ]]; then git switch $branch fi echo "# Running benchmark against $branch..." output="${tmpdir}/${branch/\//-}.bench.txt" outputfiles+=($output) commits+=($(curcommit)) pushd bench set -x go test -count=$count -bench . -benchmem | tee "$output" set +x popd done cbranch=$(curbranch) if [[ "$cbranch" != "$origbranch" ]]; then git switch "$origbranch" fi echo "Benchmark comparison for:" echo " $1 (${commits[0]})" echo " $2 (${commits[1]})" echo "" benchstat "${outputfiles[0]}" "${outputfiles[1]}" golang-github-lestrrat-go-jwx-1.2.30/scripts/check-diff.sh000077500000000000000000000010741465311135100234060ustar00rootroot00000000000000#!/bin/bash UNTRACKED=$(git ls-files --others --exclude-standard) DIFF=$(git diff) st=0 if [ ! -z "$DIFF" ]; then echo "==== START OF DIFF FOUND ===" echo "" echo "$DIFF" echo "" echo "Above diff was found." echo "" echo "==== END OF DIFF FOUND ===" echo "" st=1 fi if [ ! -z "$UNTRACKED" ]; then echo "==== START OF UNTRACKED FILES FOUND ===" echo "" echo "$UNTRACKED" echo "" echo "Above untracked files were found." echo "" echo "==== END OF UNTRACKED FILES FOUND ===" echo "" st=1 fi exit $stgolang-github-lestrrat-go-jwx-1.2.30/scripts/tidy.sh000077500000000000000000000001661465311135100223750ustar00rootroot00000000000000#!/bin/bash for dir in $(find . -name 'go.mod' | perl -pe 's{/go.mod$}{}'); do pushd "$dir" go mod tidy popd done golang-github-lestrrat-go-jwx-1.2.30/x25519/000077500000000000000000000000001465311135100202505ustar00rootroot00000000000000golang-github-lestrrat-go-jwx-1.2.30/x25519/x25519.go000066400000000000000000000064661465311135100214700ustar00rootroot00000000000000package x25519 import ( "bytes" "crypto" cryptorand "crypto/rand" "io" "golang.org/x/crypto/curve25519" "github.com/pkg/errors" ) // This mirrors ed25519's structure for private/public "keys". jwx // requires dedicated types for these as they drive // serialization/deserialization logic, as well as encryption types. // // Note that with the x25519 scheme, the private key is a sequence of // 32 bytes, while the public key is the result of X25519(private, // basepoint). // // Portions of this file are from Go's ed25519.go, which is // Copyright 2016 The Go Authors. All rights reserved. const ( // PublicKeySize is the size, in bytes, of public keys as used in this package. PublicKeySize = 32 // PrivateKeySize is the size, in bytes, of private keys as used in this package. PrivateKeySize = 64 // SeedSize is the size, in bytes, of private key seeds. These are the private key representations used by RFC 8032. SeedSize = 32 ) // PublicKey is the type of X25519 public keys type PublicKey []byte // Any methods implemented on PublicKey might need to also be implemented on // PrivateKey, as the latter embeds the former and will expose its methods. // Equal reports whether pub and x have the same value. func (pub PublicKey) Equal(x crypto.PublicKey) bool { xx, ok := x.(PublicKey) if !ok { return false } return bytes.Equal(pub, xx) } // PrivateKey is the type of X25519 private key type PrivateKey []byte // Public returns the PublicKey corresponding to priv. func (priv PrivateKey) Public() crypto.PublicKey { publicKey := make([]byte, PublicKeySize) copy(publicKey, priv[SeedSize:]) return PublicKey(publicKey) } // Equal reports whether priv and x have the same value. func (priv PrivateKey) Equal(x crypto.PrivateKey) bool { xx, ok := x.(PrivateKey) if !ok { return false } return bytes.Equal(priv, xx) } // Seed returns the private key seed corresponding to priv. It is provided for // interoperability with RFC 7748. RFC 7748's private keys correspond to seeds // in this package. func (priv PrivateKey) Seed() []byte { seed := make([]byte, SeedSize) copy(seed, priv[:SeedSize]) return seed } // NewKeyFromSeed calculates a private key from a seed. It will return // an error if len(seed) is not SeedSize. This function is provided // for interoperability with RFC 7748. RFC 7748's private keys // correspond to seeds in this package. func NewKeyFromSeed(seed []byte) (PrivateKey, error) { privateKey := make([]byte, PrivateKeySize) if len(seed) != SeedSize { return nil, errors.Errorf("unexpected seed size: %d", len(seed)) } copy(privateKey, seed) public, err := curve25519.X25519(seed, curve25519.Basepoint) if err != nil { return nil, errors.Wrap(err, "failed to compute public key") } copy(privateKey[SeedSize:], public) return privateKey, nil } // GenerateKey generates a public/private key pair using entropy from rand. // If rand is nil, crypto/rand.Reader will be used. func GenerateKey(rand io.Reader) (PublicKey, PrivateKey, error) { if rand == nil { rand = cryptorand.Reader } seed := make([]byte, SeedSize) if _, err := io.ReadFull(rand, seed); err != nil { return nil, nil, err } privateKey, err := NewKeyFromSeed(seed) if err != nil { return nil, nil, err } publicKey := make([]byte, PublicKeySize) copy(publicKey, privateKey[SeedSize:]) return publicKey, privateKey, nil } golang-github-lestrrat-go-jwx-1.2.30/x25519/x25519_test.go000066400000000000000000000042051465311135100225140ustar00rootroot00000000000000package x25519_test import ( "encoding/hex" "testing" "github.com/lestrrat-go/jwx/x25519" "github.com/stretchr/testify/assert" ) func TestGenerateKey(t *testing.T) { t.Run("x25519.GenerateKey(nil)", func(t *testing.T) { _, _, err := x25519.GenerateKey(nil) if !assert.NoError(t, err, `x25519.GenerateKey should work even if argument is nil`) { return } }) t.Run("x25519.NewKeyFromSeed(wrongSeedLength)", func(t *testing.T) { dummy := make([]byte, x25519.SeedSize-1) _, err := x25519.NewKeyFromSeed(dummy) if !assert.Error(t, err, `wrong seed size should result in error`) { return } }) } func TestNewKeyFromSeed(t *testing.T) { // These test vectors are from RFC7748 Section 6.1 const alicePrivHex = `77076d0a7318a57d3c16c17251b26645df4c2f87ebc0992ab177fba51db92c2a` const alicePubHex = `8520f0098930a754748b7ddcb43ef75a0dbf3a0d26381af4eba4a98eaa9b4e6a` const bobPrivHex = `5dab087e624a8a4b79e17f8b83800ee66f3bb1292618b6fd1c2f8b27ff88e0eb` const bobPubHex = `de9edb7d7b7dc1b4d35b61c2ece435373f8343c85b78674dadfc7e146f882b4f` alicePrivSeed, err := hex.DecodeString(alicePrivHex) if !assert.NoError(t, err, `alice seed decoded`) { return } alicePriv, err := x25519.NewKeyFromSeed(alicePrivSeed) if !assert.NoError(t, err, `alice private key`) { return } alicePub := alicePriv.Public().(x25519.PublicKey) if !assert.Equal(t, hex.EncodeToString(alicePub), alicePubHex, `alice public key`) { return } bobPrivSeed, err := hex.DecodeString(bobPrivHex) if !assert.NoError(t, err, `bob seed decoded`) { return } bobPriv, err := x25519.NewKeyFromSeed(bobPrivSeed) if !assert.NoError(t, err, `bob private key`) { return } bobPub := bobPriv.Public().(x25519.PublicKey) if !assert.Equal(t, hex.EncodeToString(bobPub), bobPubHex, `bob public key`) { return } if !assert.True(t, bobPriv.Equal(bobPriv), `bobPriv should equal bobPriv`) { return } if !assert.True(t, bobPub.Equal(bobPub), `bobPub should equal bobPub`) { return } if !assert.False(t, bobPriv.Equal(bobPub), `bobPriv should NOT equal bobPub`) { return } if !assert.False(t, bobPub.Equal(bobPriv), `bobPub should NOT equal bobPriv`) { return } }

    Y.V+XUQ}AύҨM~شRڤYb}7Tn52*Xዐ5.p5W&t<%ƥOQbkBǵx dQmF$\Q.jVc[m n=?lQ=n9 <<ʣzp5,0}L9&˩o6S>ґ5r',ސH z{93$ZEJͭ_ot_5l?bm, Bnh0{Iiwa(M ~Y@t.\GsJ<3DcЬwp]:) GNJs:ɶC0L:+*h"n׀YIpBG4+A!taBzWKa8-\؃6V|' [hxlU8Yf12 0=' :&iya@S)1Vi6C;=-Mn)1M} 4@zB!_;ffJz+E.ٚdZB@עTRTl&!q#<Jc1EgK#֦mC@FõK'R:+gL*y˟JR458{JGpNe+xp%#,jȧLT8)_4R2G T F&ێENJM=n-ԩq;Yd!.E>J,y¯9f_!'^!K"r+?ŗCQ7l~Rܫuu.]+Q YjAS@1Ju6ȸlf/61"댓 a?0 Dy˫59 HďC.~b3UΡlג4l^!.E\Ԁڒ #IL%B14'k'w+`# ?Lԗ@ct*~f{>F}9w۬`lx=0+;F#FTˋ G mիM7h|%_t$CJ;Rɵ%x4ܽ8iD9n>?x)v|u&ɣ'uu(D]tUքڪr+f8+6?W"kͮWӒq/ޜ%纽޾7#NN=m[+󅨋~acJe Alx%.;_ouNB~036ni6xWCX~ 8ۿXw4)/2N>ZaF@,>%hDcRELu)#GnDI9Wr#,嫶M#iqjї9r opRAt|+;ӭ T:}籤yp8)GB ôx pG&$oЍ7:a0tNt!_z&'G >f''4r t79#8@i 1oEu4iΉרt-N,!^)wg\5DiG8 D;oq΅k?JI+'49)v xN:Ӄ4zK[5[4οWcn~S_ÝJd!&M6Aӏ#YSU0=Fr@w#ݰ=nGF>wº@W(wDCs<JM^+Z͚b,KY:1^i9=Od qWAdEiEn`uX/4yT.Ja{:#܆t4Jj AfiӃY(ݮxF,Wn@tï͠xY!zP'i},M}EZ{aonM?q1;epM\pC-V0ㆅkB1=r^D'WXϾ{莔ۂF)$afgpڑMZd@Fm^v֬],`ƭx%xy"f f#<6l+ǽn>Lɋ(vNً"-"۫AX;J%wvDpr*#̧d$ uQo,$6wY]0IVRtt,+S^s:ߐCRNڒ:b[ͩnvK2Nfתҟl>\UVjU~[-^U)ݪKJ;j+ZUV7!T4VDDY:E7hQV~[mUJ+m!7U2RԶ/XCI_D5DZ%1jly~N,`&tσ8H9Qkjr [ͻST';PPe XSN14?n ~(ս٭ӗ3NPNN%i\: }8y:E$E:M̕)gkuWe2~eKaR D+*U{q_'6h[Rg+O :;z%rdl 2Ν*srnx8w}ƹ=Q-,ٱ"ۏ2"_f׊Q3@,Z(C2?F|D dm(Q@i sF }Kd<eOEH֞8`h9cSe O.l?ZO̕q4{s*^ X}׮B9n֩nD]#rӢU9ސ؜YNBQbOI;XZ$VĚZ4Yiq"ml0(wOPӻop;e x|<#/wKN >z Y8ÿwXK2P%cu{lj pL8L!MFM!>m!e CqBZ*XX^CM9}7޼j e Xv^,S]F[` Al [`z [)e j7*,UzLvb6y QZ{jʭ uڅՀz]gd=KkBZ_}!2·oZԱ}EGsv#֬'9D4Nktk{!5o]tI+Hg!vI g+@ݫ뜤4Or P (,ū3ĥ3e&>$)JD}lXi26t&%:ɴvbW^)XH3*T>iE3QʀP,3?G ƒߣɴ2@W@kʄ- fxF?P^.DI>)J {̐ay&%5$lL#r3"/f&QЍ<.$m2!gGmr,(AMi| )ϔ9,~l(Al̡T|d_x{$6qr(ݤW-F7!T\8E*ی *?FmΡT|B#"c2m^)Kdکp'Αse*Զp57fHo[GN70 ݪACyD0]esz8V[(ssH(fgG9W(s;>µark!}ʹ+8w7Q ^@,W5tJ8_hk?rk9+L|CsG$p,79Bzo"_]@[8s!I9#]¹~1nA8'!ԔӃOOgJ7)Syw>CcةiǾR9@4foEVi@_}tzR?),e~TeI:X0 Y``x25HjuzD ֥"6~*P*B l2ަ,,aQ0go.bDq]:L:}-WP}uf1N5:-ŏ[?Sv"H4|ky=U]z?9WDxu!yxMŏ԰›27a4QC-S\Bd9?R΂/MCəp%sRE2df'+E/s}NRЗ7-[A~9;b,Œ/|}+OܝoLhw&~}7F$_|--kZUm}6ߣ a"ی:Wۿɡ.-}uz?+|Ww制P2KPr4KwV"ksߕC^ $HkAcvKI$RF)*IcD2$GJR6i߈^وiha;{wzۓC'h9rQ;Lw`,0s2[dE%BY<(os(:͐s:8akON|CYu"|6Hy2 8rNZB~m+|2iVOniw9'_ciNB0? ɆZ07 t.~ ت_2G~RpȈ6 8 xp[Rٓ~d `æʞ4`TfP$OۉH8p]ۏ(^3eECI<!,A66ü]F+/2 XOC5urjO}ȡvI9X5A,}DW>wR> 3 u[ޘW%1BLJc(멕xY2+ό2Ca3|$ |Ȱ99 ofV^73 όX8 E.c;F޴~rȉ N '[g;6"9 /#܆r|7Xfic8}i9|NWǨu?L8[S?n Vp;X8]'1u*K>,a2 j==q;t=[K$2"N$%gc]ll"R^`:s:Qb:(WN 9d '#NRˋuIP-͆bN"uYVlP{I&&v*T@pXWR2•Q`(y()n̓G^^s(([yȉ?cğ^7r9 AP :zϕ-.¢ǻnlncٍ_tPVxaJ,<-pQ|v'j@xD?kDK CS=%CFETD@<~4>t,.SCV>7Vf<06Lgi*0h}P)@4FnrZV_ӮU$#v'߫QmbycҴLh4ʈP.CFm2Ȟ2:rPvP6FP|Ԥ{1iN%Gyr_7FP:t=,7yc(!jEt"t"R `~.u-MX'8];:!#")lIN1:8Ү],WJ7-ct)TQ 5æaiN'Y` [wX䪽f6 6InCT "RȇgH }!jB!8?.;D ^c$}V>!YCN賒sG>V`".R k3 p}AcµƄhJ1I<|Et ϰY]=kNR3ctCtiW0?X? xsP,&~Y_U~Y߯X7K_S9,k%$~Ywq 0"EE.iSf%p/~>F],)KI2mff)-CR&Q7S4EL)S ~@EIu_aXOzcx_lPvZF,9 %‚{q)6H,ٳ͐FX)ӸtU*砆90 Uhǣ* tlwn K$IɖJ ~FYNl iEpaa0YS`MnF~Qp]( -__!QrF7e׿~~eK~]RʿX]/590q(UuIi"Jֽ#$o$4fP:-#PSbxTGaѩ IKw+<5}$k."?9HΩA~sYK:.M퉠g[RUAMK*)Fآ%J0 FۺΝGhqCoZ)٭Z=*Hg (8HU`uu}e+Paq< jAL?!,/dӴL61 jM~Viɶ y+jbp[<`ù&23Vs_:|xܱ0岽ǹ~54Q@Z/D<CGzanB{6N9CS^JCDGcNyMmC-Fp aQ7bi؁ꅒp/m̈1[mxY+$`1JPv S|T`c.ؘ&-kac=Nذ8(vK#CЁ@C_=tʝ.lW S8I:&ԲNL -t$*Pϓt*))^U}Knd;^խzy#H3\ms׺9BF굡ϥ<2^۰68*cle.SnA4GC,qK܆X~tب%^uqbv ]ή@(J8h? H{QhQ(x)T;#e--bO $n$x }r|}"̻>ؔ{ٔ]N:;Ҋ~I}q_oFwfZtb3 f@Y" FjQ!(fF!!E0%k~X :X-т^"t@kw`gGM֩`qndy}d<:SݖĽz3Lt 3߼s3"['3L0bϧѓykVK;|zzg>7PHR!vZ{IIօ ϳ6\ I iQ{""#Tc\i3N"{XoԄkڃF)U!/Oa8ebE?{s;>;άu,[@ sâ WWCЁ:p8f[S]fֱG}` s \bk!]aq˛Fo9,FI8еN` BF9w7"I@c7M~J#t,5p(j _ki5lO e}pĬ$h[dkBB4s 01XJɯaA12UM462o4RpM׊VĤ3#htzl:&pD>LUk$A6f̈Ep,?fԘIcW/= !Y9:K%z3eaXAdk퍅phc~^XF4@c%M6bai3(lY& ix22McZ{L5p T!/yC8jL0_)5 IbdDH}M{bUN'΄n_FIG8,;'3Rg2ši ✷52[,qc$ XNO:9P<}PH|ɇFፆCI1(Ey7' o&UNĶ8P I >j>"üJ#/ˆaF>m=bׯڥz14UYF[ $_fb_Ӻ I.qF 3ϵբDC$-u˼FG F45c, h;x# *$i*Iw|^N@[SJЬ;yzYbDȺlp W:.܏/Q ) O@ ;.L[JqՔÔ,9!ӽ3%FYM-ֹ$ڇr{3UIFK@IJ%bYDzl(j0 ŦkzGE/5LwEn3 &riNmUa|n#Z <FkNH Tڙ*}d0H; |xCUF谯J)]gIY-C!ipX{@`Ĵopd8ȞkLUF* 1.\kV)Mlo0R#jM7e(fbbg})=>sPt0~%JN#S yj8םa,1\lLbo VXP 3%HjC11"?lچgL$g*l  Omm𒝏|6/x}7r" rRfwݸsA9Ɓ=V:{d/dߔ4V1g]ΪzNL=ÐlsQv{ Ωɬy5uYG+5Ax#/5!ZN*w l&',{`x:t64"1n8sÎHcfȠCհ²T@ 2:[kxK4l40|r@S(DY&ɵcXMt|i3ltDU-ˆΘH9 Wmȯ ,9a`*2W%I&$ HpyfCB~~is?X@mxө q$ZQ?7]gh뭛ѶG'ztrPt^p/YI l E),3dH^Ry7鏯)?M\2` :\A'X??2BC5!lI~gxRYEV|H>T=BLq7Clr>>k7 F9݅a<\'z&CE6=1[ed6<5-nNB(?H<^$_΁Ǫ)5X 52' 6A$si:O@a\0&J=+[81%!wkg|B.M.SFKV,e^!BX5Z9EKn%{S,q5 ns2*#Teh3=\#h ؈BPo3Ç:^,qحV,89.&Wk ʼn  <IX1|^[DmWH4oȏ@H,D?iCa5rc͇Q#V)5B~euk9tcZ]o ZjDޙj!{`d Ķ`O0 qEQKIF ѵ ɯێ AZAgA^>mѺ5\ԛ]{e8Ŧ{C<ƨ1,(^d$w@gLkҟ2Wj(` +;dF|DН 0H6DO&&_< 0zp< z ~Ũ6hE?;,!lT&2c魍}j+jh<=F0(GZGӉ;ya-llTWD~0?FE!8L.m/4ƈF)1%/?Qtt:.J QذW "jβ$°iN|2)-Zzy\1gdö^1=fmB$܈q#*B`y W<#rof> COT'thc mRbM.Ox_:S1 a5cHGtWҌͰI |J \ {(~.gUmaf$= Ls!Lmmv & +Q+<*^WN7G&  $UNLgD~:7`LOhE'OOHƎ44O@¨O,#zϙP׫pnIGW cf`lhnxrP bD4>U&uYƋM:ZT&PaD7SZIfx$EKBEXcD%E q]EIZ2*b% DcD:AfaGhAR'޾Gl^ *oy5E.?O`"Ý.ǰުQgժQ:u߫`Mr.ekav^ыi\ۉcn{I8bL(̺XJ"'0Z?NDZ# MM)X2+Dڦ [ؔO]9YbUr:{.e{(Z 4y`w\SoA fZ=5-ů%hA oloًք :;`ʕ[.~v5I{j vrTjo+aH37w)~M"Қ/}Y51ɉ G KGsw1-Rm*nLcPjlN淽 I㬔jDQn)ScزDŠ7#mh [\=.%6SR9du(ɮS^#%8lL!%T-G\Û*x@M}<կFdZ.F5\k؞N;YrkԹU7M#_{Z邾n엩S/)zG J5+tRVR)2x)iK/e׃B 0Z6Kq>Aikl0l~,B`ֳ-mhTK:MKZ/KӮg> i׳iǞLM)rFc\`3-, z;|}ޡk;m{nH#^3 qեz{.+PUIkKSԚkc{1 `xJ~0UE/.!j7ЩA­)CB!cnr5 Ľ~7eAkwOj=曆 U2RExBW Z$\íd:Q!ѕ:C]Niv?3Rpq:CYWDnoNPjRF[*u`Jn폞Y,ͲLZ,!SɟzLC+^wYP%T"zoRGҲB2|}rjIhnKq?_SX2c4"g)(lđGr}2E&6pUiP"'ҠLQ̵U mI A&E+}+;ILWvz؊H[)6npzXu$ U Z\ B7\ӚQX0,%(h8c\ln;dmch-̎4nEYkRDY)Sy`ߚ@tWZ(kdz-]oشb-ɯc}oKbšncD[XS-Qֶt@}ʩ6nS=d'X-j|OwwUgڃX=a}VIt" Ͱ Qxb83c}ZĜI7v|49OD_뼩#^}<>2OÆ_ Cytru)a+1m}}uh%=L$# ~2E4р>8] NB *u,FI@RMiD"@}O CB/Εi+![`0wx:#cn[*0#g•&|Qgx]{JpVIt{GD 9'fQ'wb]{.C@UAU귕:/,KVA,Hh׳gn=$X$>2p@8 {LjYH Jv\ Ry`F4B&9yqǑ8b o1rЩQV( Y^!n?Ims0.b'N- {ܱN NΌVcz6;#8MP[^x4xW6KYW6$%ɯlY(P $&Jl}WMTB|J<={O ʴet uf v$Vt_o3ȧEE,sdQ;a}I1Op Iyv/g9k=3YRm)M::ot!Cs vțy -j-oK#b|v4|4}~E07 GfgQ_v⤳Pl.VfkӹuG47lᜏF cOC,35?}b6٘Im)P睞=Q>t} M!'G)LHvM79rV<4JN&eJӔ]g~GGL\83QFbyzAL?+eͧS͕)*AX@hL<t)qTaMx贮 ?CׁցWFL)!2'AǀNNGTrxKש:]1Ra!" X+tzzN~T9U\ū;YU:F&.$![*hzST)D@X=-L6G 0[lojӍ:gBPnecU!<ьk@{:Ouмfcө{+D,=NMqR89kI?p0Cl4[?+[$U -rߍWDSD^ ipWD[: LWZW[D#ô4s}p2so_Sm :8o)8P S^Nq[(;1kO5]%It,F_`~Mm_E@3\dL#?ؙ}yvpw?mzmzT$FW.=ג Xhx'RtC*/d,ݐ ]e6-6~Ež={ǝllJoӍKƫT+v ?fyv'pD`fF0g.M[@9JN"^.; I]ZZ¸+.bPp H{73XT/f`n͙SEʚ7U'J\:W(XlrsOD76 ʃd =A9λr7 pCgb &Ck͗Z8:= ʵY]W7HK"u$b1qfB1Kmb$+77|p}y?@*^;>gX`[COcAh_3 %빆oQK+/*8$K%,T6I&(?>$=~L[=ޘ"bW7!ϺqtiuORҴ$YɸC읚qmJmMRUۖ*ξbO:a' HOٖs,IsrE vq^Bs\mc,aēU%3L/>LxDJ#r5.d-yj׭߂8ߘI!wPuK)|Ñd LHȁqJVa:M);9UDzzNz㍬ڍϦT:mzqZg7O즒2/We6G%HzTl7A Ps*$mvgnGNpB9uZK :T a\9,,3Qsش;*\MrUIt:XtOdK=܏~_? Ub$e#ge%O=K1l׌EisS= y :"+^|e-9!Jc)?)%sȋvW4]Swez']gʧWD;Y}Lv`tSD" iw.7=qT_ j)zPi)YR]URmd 0KFaU:M·*z( nwL!l~M'<}%GJzI7T8 ngVWtFt+MU:M;_ /0zV:{@PҺVi=ZVW`>Q*2nBj=d|gNJgI^8&~'[,S\o"r&WI2xkg@ww {920OmJu]"k6pt"(7\4Q xxG ˜LQK)rz/@HJ d?#Zgh&wВYFiKtfzYVSNSӝ4r[Ni.(4rm&6صS ]B} )?Iֳ+lA~ķw[ $aLURe'ԩB\BH I˪EEuLVP1]\ӚOmDj5^!Wy _WWswWDگ| x}f_Wc&2u8_]}0Q˟7c4zg{(49DžG7,dشӤH03h6pﵘաn*6^ByP‚"{w\+eBWdA{@yP/SYc-|d0z:hq`Z`1tbQV),F&6? \`QA!6Yc/ε 4HŤwCܤ` rRY0y |yۘɯf[U!UUKv#GQ!iK#;WdQ/)]"衬'Wdqn\&MịD$*܉]W O1,^0qw?aKr!QWȰy &"/WYKY>OI)uo4we #]#IJy:"#1 T'8q7[J$)$b7ݬO{\'(: j繥#l"xKAeq^3dhZH*ǵnZG:">t'q r\.G3:8ukNq N-KnE CKzKX2&GcgP%h;kQAS=%i\EAaѸCN%0'z|?!}Al<gQdӜ VhvG93;!̡{T^>M[DT\Cs^&°ˣh<2Ly,O=y,*BUͤs͚ec}>]Q;`c)V /|6"Ёd`"?*"+fAD4ɪ{Rn3\Iꏏ0Bt?KvJYP -bw{({o>1x*lq.>)I'X'g{9OP@ Eeb,=jiǫ=4 1wӳ\b-򻈶'ŗ߃^ Ѭ|O`9Ss/!+۶{QJ(S[K,)bJ:&*_u/D` ⽪[utE RBDɜFo#vܧPCN޼OCHZK0 4APzDs)^6Qv4t'%NC[vr[s6x7bC0inxpwE{lKe8N)dA pcyT뀜h9| n I} M=} [($3fŘ/mɊ%qZ>`g3-g7.Pke z w`iSKLYRϳO,2OW;c u}Pv#4D>>xb8X_R i#Ý ٱ Ӕ߉jPE\m(ہ>dd5) Kyc$kbź,e<]u-"vP=7K٥0a UL~C0!M9G8, 'ip5!X:2VJ`2\ ?au-ѧ [>/$[߀RuDD} =u-_,S:OaRC(=empDzM|Oo(MBM+޴X˴Z[x4Sj6A_X~IM&'qS6H@ôK1㜴Ƕ)k"A:"]pZʏsґ(6 qƶ]~E9Ǐs%;uE5rzצr,ˈR 3{oP-Otyvi#Uu9"8%Z(յR>oem5>x[5QIţx^ԋLKa$LLŬc=䆎?~(7b@Т(!5溏N~+ m{/+ru/]c_VED~;~q~13iqO J/|J  wW8 yS8o@T\g+d\(S ![OɖhZΧ] L")sX颧=崐N3NQ^8WtZGWPlP8v(Wm3q32 Gq,Qن;fbaG6qeg_czCMAxH8Cx(kZʐNo=!h >+>N(SYGpjIvnLYc/s@p"X&uk$Dۙ -{IbNϲ HՅTL*%PL`{LB̔CEJbwKH-?rГkH ŋ9GK-E0w" 4>ι˶NZ8P}a-1 li0)Y]?FUsI%^qush 9azIe͂qFu`aף:ӳy]i'~\ɻC:ݹMz{X4n4w?)y_? 4?u2g#mKz^2XƲbRIVwEW\\+(>mPDNb2^W/I[-t_6'a2z&V^SfDtzT"Q54/tDn/z]i0no_,Pri18ȶwEAFՋ#m{W5 GBr+>{z6㟂2u~6Cl},i j71Ss\0hH Lt_M|npA&צO:dkIXۄJfM.L~(nK":jN,R{jXLLv<$'%%c!is|dvKr| H= _HC^f"L2QF5r"akhX 5=4Iݨ'1^C.v(+NΩæ1JVxiC f.S ٷQXX Zd192l^_˒ L BDM76x!iM.n/_n1s%Mc"R!V6ȒJ':I#T$jiMd WމhkoxU鳁$$% y(V 40xOikWϞS*EU4QN-ug@sY"[Ymɜ"D)K,t؄>MȻӇoDe!Sj*`gbc>^$c7wHrхo?V5<,C#N,tA__>}>Qwsa~0'D )75HS oR>[X2SLgLtca~[$jdAEl򅙖ɉ2cP^i3Ln1禊кD܋Da߫*d)'@&7xIh-`)В{4& G8,ci0t d]Ty%(4%[{;7]=jB h;;z*"k!y<"km8_G}XEWc0v3A<_<({CK*La&`[iՒ1'%sEoaex$YMH_DB`~{T=Zp_jW j*Tyʝ6V'!w6m<@&P|Ja魨6B1K߂6I5sNm~ekWJgk,3[g$p0OX.nH8m S'Zj%zD49?~=,)M"V/iNXD؈ΐ@sd )hmٴ6*Qnsl],t eH]847 ]$nȂ;!g-vtowEb+HaAG?'n+uSҁuf5u*~CN!N yuDhLa+1aI%cAN!䬍RF8miqȹ3{[hFDFsַ';|ͫN݄3,l/ْgmM.,yzh(B& s@`Bd MN#"SNVT>F bLh0",Y@,^P`{%L0 ~`zFuZ Je˘Y; gsL%G_Ubf 6S u[:[|b;~[y?滹t hzEnxfLV V()-27xs܀y7PZ'oLWK 4!b`∘7#1M꿨BllE i[ ![H-ҵqS/a \{`倱٤_'P8L١q`5:]&UMb Em!)< N|▏?z岘NR? 86@D?Xl~s_#bulL:cM zVbyc (/l@Tێ ed]I H>]⮢!uY@p~0Q1T̚c9[ْ恉CcE0rV8dk|h6a,t]\/t-Uǡ0)NgcY2O0Yf[&ʮ$DNtJƔ3Z]|s#O.aUTITw ?3Cgl4Jj`ay`d`cԧY|q~"~P)ts+v\;XOա()$S++崼{;smV?~_dfΜmΜ56~mex+ /]Vέfy 9 }vriku>k[Ipamh L̾j0dViM+k7D)*^w1CQb^G 5OH^w> b |A17y|.{7M^&o#/߰} p߂]$%| EYW;JYSBB>nOűA%g6;hHlѾV|avqSELƯ pzkJ19YD&`ʾ;$ʂbV2?rz5msy|˜Q6zӋPB_ɹnL&YCHte_ w`'!z=MurV7NHM1:a9Cd~Ɖ"1a*d l~R#:yʯ0-kT*GBʯRI?+xA4rjJQt)YAS;APֶK A4*<ՔJBیFeB404j#dzRRB MJ0tY3šXj*K»9K)!r$3bmrͰՊg5鍢aQ͋tdhbcarmMh :iAf8104L &dc0IHϡ%#W7FtS*b$@W?`2JsBnZѝ?5 4*):h`DWs 4'N 3`e0fbiӊt@B鱾X 5% TB]5%AR%0H=ڔ:y/OQvRSV(R-z_oV~WHc{8pGѝͿZٸu =|ejF$XXBGllIrP_%dϖБErFpv YTxWrvq>#!Irdp*24(>I:je7+$GqںZt>mWT4Z_jAz(vx*LY1iM)cMUK x+l=|(NL /ygZ!R 6':ؘπD? {srpƿ3p 8ЬC '7)8`M|>xhe*g_4+P,sȳ9vJM/ VӞ,/CGv܄vheƗynϐC!7^41t\ro!;xDM)B<M^{S-x1/Sv0(2wE+žGj4AS FBB~|Qd#X] )bhD|vke6J6@Khҕ8%,L"Y&] PZ!@"+'w)9 i2; 15G?d3Ƹb/Y^`t*>8Ӣxr;9|ԕEPܔ.Wv%DqoonJsM)MǹPdhv+uB䡬/.g~r3t: .REq$گ`Aʢ(mYH8x6xAbbMb5Y=6R %GkKRբx<S0o %ZHa[ iEɄC΢# ŦdW^֑p_UӯP+H.vTDS$ (ϚOb |qTV$\0Yx-oa>ET5LBpe6obɞ/!L,[r N\0oV U(VH"Z_m0,K M[ +z=9wSrY(f3]}rU4_z,,,gg7 )!#`Cf!+IT"*|4Y' #R82t.*?|xz4. TW ջ 5jIxxN&h\΄&fcj> bo~xOċLl$ gx 1ac"D} 5["&jfLW0f )\-HJ(8H8)vXFւ"I5>՜(naFϣD`c? ) kP6 .aR9!Tը{b6P*è+WblܱQNJ,$tdx::(T 좋K%6"5m yg8X 0w<\Cu%r 6?#*Ybюr] "UCetkXARՔJQXkϒ%6ִ6rh;GJi v(0\09I =;>tF%8)a!k dI| ђ{5w!'ϼUdUR6SE.ȯbaN%@DXƬ$24RYer6Ab:7_M’J7uX:,=XtYXPs:ib4,GLF"Œb4{+;qU#7'k~թ\njHs?t9ʯL%/AvvN\r$PU;OiΕE|52ӋN8֕LEl%J#ȇ5mUH8d-(j FQ(C[s!u .a](wʊ5o~`./hZQdE}[&X#dThiNE֨j;u!aDq׎(botQUЛm]H\F-r.knMzhUN}e>}2IQ?p4u|(MJtBNѺN:]Fǵ.('(W\ʅޔ 9N's.NKϹ֝d<•7S<l:WJS":`FU.Fh15#q|UAx]"ŋV]Ck PiY}]C+j&ǕZDJS~)#hi't#aړ6v uBÜtw+Vv6.sJVvB|Qx:5wmhJDˠm ٖ*&I%l⫣5,$Dj 99Z;)o.52]%l kC` \ً9$;i.3ԭ`vzyaa+Xۿ@Bs=kj&b:\4T~_f&tߵNNLѥ.M~zNT.NX"X]ߋ"ZIAHŐMrzYX Pkյg{HHם<@- ~P,7 @(T??P!fy% ڏ(Y\~01!Ǻ}ƌ%_g0YceBznfk07jyˤr.j=:'!Ku]:'qg|.w`t: RBݠS]s:í4jiH>3W; %DcdNL|gOv5LJ~sXbK'9ܮ@^|g **"-axZo,QͬTjid] H%!Ľc4Jl"@Nv4Sb:SMuљj{6oY^ OLE;;eehz][@X l#C\B<ָ\^vy}W_zn7UiPK /Ϳk'IdKC,ƫ5'oWH/IU-IO1쁛 0 AfԀ/N>OJoXr\#6y(e .ިLi#dM2jo">_\_*[X;E i}4l\aDx9[{D1R ]1F1N;FrIRA!+"E%n`d֒?_BjE=P'!Z,"bf2|9 0RZ94bW zR%Y׎dYF= 26"LYOmmO^~jk˧l,}--hqd/J oO$='ݝ$7 3Kwj>*Ʃ>-+6^H; mr[~o`ÊjvFP) ºB4Qš%{Mc53eR*+ 2VjEK$>VyX>,J)mKUO"o5h哺o]uڙf51jftA<4O3ޏovR< mbRoPє1YL*}0X_::U2K?㗜 R1NNթZ1֝ pmKE{U({$#'C\vk g`m#dBuŦ\(]ڞ,+z ŗ5c1'>t |k$T$g]H.^E),FUjNL!I]x}(VD[ L*!2HcjGK0|a?rF23]Ct8[\I[3(UB0 tFhq`Ө"F>(!f8Ci7|"(NKme?N{coh @jX`A`ꤸqaq3nhaww]m]T+ݐƸ+pDƠg4~tn$GNO'ɬx*D5x;0z+%q׎}=7iDmTC]oiYKytwUkCCNE8XY9=yqvO/.6G [ۜIn$GP}0*EWS:.zV|by/Gfu DBCJVC,dYq`"! >c;Z~p@gr04*Ҙqp, zqJ7J€gI?U}eb4NBB0&Fu2xi4c^{p'#cXY22jgJ3݊&p{_eE56-bpH޺BIX.|/[=CYvlB`*-vX:ĚVIl]#5?\{Ty+4-f>ͯo?Y*d\?@vR5ORIaݛ8{Ҳp0WoSKl?n 5p,s|rɠǺ#wݙ4Z8!_zW"Y݌ Ns$(na7mxg9^©*N!O/==D$!IH?n8J/OgFhP|?K29w%юtCw:Ոo+@?/f)w9)b Tp'&. ,K#=/Sʤnc<+ 7Бꘔv dոE`do8%k Zר'%(czisFq)8BposOduݠr3jIsx|HGH"DBxnz!|N Jlk hW>5(چ;3/Q0M ;OC] ᖜϓg$Et2~9)hm$x.NEb } LR`!nվ禠~DZ@1=Q^'Wy2.>).ZΉUJKltݣ>+goF^ɺF'<^s5wFuJmQݬ]!/ Q#-?*+TKuDԁ GJ B33ɕ v &+)'U!fԕA~Gdy5Op/&u6;%>';݅>ZGHoz vsv9ysh ri@H:I?s ۡ$f=&w/<EFJoֱx*$JBE~1^fy_Ԙ:포5%9).{QcJxI|u[E+<"Nćh}Iq|tY3ҫp }tXA HwuR2$ ZKdo(._ɺKtkCJҥh`_Sh3ц핒2 M 4Lw_NwԱe؊;*YOI;.Kc5fSވDU\>I1򋤔W`wm|A-cn? Nr3rs}x8IhQ'PQG4ᤸUτq`.[ɦ`- XɬPgbkLZ_El$I 9QU`2d2\)igp'ٝC4?w{\l̻f! vaY7/,$G.da_;g9loβ5I,`N/-lR.2iqWwVP k(QNOG8¾~1/@;z{JM9J0)T*%bT {% r=:&wU\4W>yN{,pn(; WG+RKPe/n*$5ݐ75K~{nXbCCK ɤ`b䯐pzVbנX"J%&b-T ^R! fq()~Q*=亼`+1(F EO(VצxϠ8D0dJL&cwLQ,* 7ՠ XPԻֲ~~OB`2)dx 2/TBD@=NHB`dRX*XZpR%X~ߜ[޴"li&BILw  j)_ˎבe=[Q튝FQW`Y GNHv `)s(bL=GNS#V$(QX\<^ Vs%'}ytǎ;ɡ;92\tG5c sIjkwCLs2x7(pBGBhCd|䤯{Q:z/ V2my,X/~ɱ nduWzC/8*o8'Ŏ' *(b-P6h8R%Qd5zTqNjF]!0OYAe ܦ**꩞0xVTOx[vٞycaO D+Ů+Y;=Sm{ _e=oA + eLw =d*)={I\͘wlA]_*z⹰N> fOh^Ii*iw5I*T=pUSb$9nN*Iz9T BORj_?=ԇI@7fߣBB4z*ؘT؍hE=%e`=qã~P?(!l |T`Gqԅ|T KAK.ըL_xTN+TEyXqVBp .bf֣< .QBJ'4fNBl@!FmD dp od~5 >Wf =0V;UYZ =H"#HU =Pza0?)i5>WvīzYǸO{a?1Qy/SP|b~ؖ6›y) ik4md7 B۰OD !v23?#  5M~ӶDZ|;v }>:}8)Hsc 'ŗT: $+Or Dt'n :mebl#. Fk@`kHwSzIlm g`:FġNהLT6nm熶)'1O^,!xIs`S2g.p"1VPiYoy &E{ņ2UWl$!dZ`~2JICu4XPu'Kw΋qG|zB*F'{@yLgco _l ^e#i!f1~j9̱ z7F9qgf҇wݮZA;Tt _@knWLx3%Tzt3 kdFOYUuz0PFr֫,YA?-  0%z0oP>Yhr"zYߔh啬p@oχZTgTgyPWoTv@y:ZDVBʄ*M@UJ近M,*U›ydR@1J4 a ٱu H| b%T/sVq*D6ۈ~V 'Ȳ=B~z\2AbIO ,S3HҒ>4f5Ig[G9 ġ#ȂZPKJȎU*C-^dqúDZ Qc ]0JP{WT * NU=@Þ[x?Ϯ^Sܢ\/}Vm2K3Yq闤9ރdP@˘R@(Hp_ s^CRELj:OI_IdQПq<;FLW^ ~Q}nhS4mkf?8+ÛϒgYb׫~#G-qPzrR [cjɺYkz'a <|WnXD]YcY{nP>J Y3dSK7k&.VÖd}whl;7E= r*k0\eFzVXh #cןm4\oIeMh^oq_uAeЛ4G`Sɑִ0)E2QG"DN ˚<8.m%L3& XW խZadBeX/t['Ŵb|(a VmNM Fk#AUݽ mЖzkU?i\KQC ivآLh?l\>Ũ,[_ 22 Nڌ*N0~܂gF\1[t|Cg[ZFi[TOB؃Q-+#!x*\#/d{=tgBھȂ9Y^Daz3B_uR4l. aqW Î9BɆX$+V K԰ZFZ֟}a py$IdYџ9k+fs~PDLjDZmlxdy?Wj  TY./םmujwKCyyd}B~iy=7ȓȲYKP1^T>S1D;꠹ۜw:dɵULѲ)^lUdPCuSMH}9-׊ϕ| I<<aPqDGKE]Xg23qZZ'}?HڱI ࠄ}&6M\ř*BpN:`E&Tbkv8U'#g=ohj?p,jtj5żiF]{%9 &h`}]|tyHJ ,p!Y{ukB¥ ׇ$~$M&߯{$bU‹K! #>Vf;XO0#}=J$CzDtjfN2&݆jD1xtڮψ1|}B-i\K~W!V%X* BB"mo`\j9Sb2keY<޹JWzlt8\b7Q<|Ohs'j6cEG=LA#mATPQH]HiĿ$GN2e"BrAo6H/GJ;Nr$lwԲ[68) n!{ !p_svu(ED3,'h.ݣigX@c/bi,3,OY׫9=z{7кP]Y䠸wbɲiPtRcwJ=#軵G LW~Xr%z #',O[O#C=FK3nCK~hgdvCi# dYa?A Qhu{5܎E5\Ͻgs=XK#5,m^{fF:)nDVǺ}k*,[MM@ ca+b5[v׽N)"nHl_YHSmqcڒeQ=cE~a~]$tTawbO\C+c~'ŗ MK`-zh)UHۜ2d  \PǦd*KHU:?Yd0${3?6Xp./yUQ eΧ= XdVm|9{G6 Ntr>F?!L"CG:YwLhVE+!tqxF#gXK频5ee5I[>rRTI>r9I,;=IDqD2I9I5E40Ec*F|mJ ;~d?b%%vK=hFeKS0$Ι8J-/ꔖe'@rGE9$ѽB qs7ѺX-vm$*q>$^IQO蛏a75zy2)iPk&L0zI='/'t!,yc$Qm'&ZT(2PßL8'IV5y!L('iT&0wFY5:,88I3,3ō;7INŏF50Lk %wg܌1fR'QgcD<f@w #UBOq;l#4$9B7MԋÇ}R{<#s]fu8]ɜ~{CDEYH"/F[-,apsPBG=p>EKLa`#:l`vHq{Seq|{cx́')rEEdbFE!B5 =6a-Rl` ZYAV K*WdB~IVLGwjNӎ8 @'-P'GI-3 _5 re|.Y9B8Ⱥwq%]9H"YvuO2 n uT^( z}=.IU b#f"d?W*;M"GNThUv谅H宒J 1rg0c{ `~vbW&\*w2"}0ܿc _z/kې_`@_Sɤcy16_7 ܙSUSsQhK"OL*L)/5Y*6$<ր_yܟ<ţMLmQ*5X&EF.&up`%{^X-k_\&KWS>?20k@w&> ,+_++` ËojHo#(qХ_ce.#+9׎oC (mdI@ߚQwxm2?ztF?Tg&B-$T\:-zF"!r8館S4dMI%D|[RNݔ >~peGCu}ό>z4g=̆U<ڱ9rL@4~g-?EvrM]w #t@BG:UsN jF5RQy9%_/ &cnbHH_(rWk?8Xd$ƑN#4Raf 9jl> C]>mRO yV#>#<&Sr5)?9)3Qr~s-a=|>*v~+ ~=աi~@ WqdP30;dtQ5xvrBg 7NX"_`c#y]uSW U Ok^Uh Ns<lbA$}`Ljf6O3(Jm%lN(%OCP) ?$* @;q'KRd]QWJ%@QбeN+f"kr֗2ɚ^Mcemq(QIP,_ 㑵xz YGVah É\&Ľ@[ӀO(<Ց6 ,mZhߜJEla.X.?33l2Qzf33`ƴ)l9~a0M= 0MBpȯ&ù$/6xQ_᣿ V7[}5XsW'a`kBys=>V0Hp`A>6hG?7{A d9ѷhCcO88yi ~Ǘi$B"\݋6fh2_y aBBȶLcQ3p5LҏL35z#oUJ$Wॆ Zv|RGDѶ!יN|bB$uG]% ĝ_k Q~z!aw1Ȋ׼ZRJ%V"^zB/{]mZo-o1/L!? jYrǏcIP>U nOgɲGhY~aZǔ =ꖆXG::glFp]hqhc=yƲCqXBƺDT W<C~QB$6\ -pb8:*@DrCBNQǖpN-9xuӿ~R+! nȝ/;$DUAa4e@JFpkboH$5|>ɿ )7*ĖrmS׃EaD7AoV <!:?V1r g,!"$vpk|o4vT+D'0rd^+ƪ#GKXdt\Y}-` ]l:WCczNBzɎMNd9WyDq/NѨGC6NШ{)QJ$"BG5AJ0B Ō`&54┰J@P8 e8Z+. ꕂ"0w .T$1chCiZYG}e-Yp=S #(!OEBBGV]aBN $&cJG>}5t#D a3\w gApup{#Vz"YN1!)Mj{$ULS$D <䀯xMgœO^//8&^-!7ky U&ހ0*J'>&,JW*PoEO` uBH0d u`D7fkqwdk6_߾q] daJ%Q|Wetp3et$I+rL>18ZW&aRBIﮎ6ݠnIG-jHu᣾-j!^pba[,0dxiKԳv\\~/-aK[|NIZ`)CC^ʨV"vRxͥ:9ģMK-|K-S<U}3V'OUI/s7H=S(;kihptNq:YqsBj츄È *ۈOѨ\,%+8Uq0"UQ8b/umjSlTnCU[$D ` $F(* 05eS5:gU-#U=`oTtZ8UlFکU$%+-`J <@JrAb439U32ơZ:0U5qvF7憘L*6`{GGo{p8DWg~c{~j/c<#&9B^~KF`)鄝5aqPǰvm%ak,7c>=WFˑ 7_ٙA훹a0sM5ZUJ_c` h&oʼn#zoh.5PB(o4&Q>%!,)ا*9Eb]}bUPEF4 q܉\bҦ:M3Ma+5E`o:#OaOB#7<|;euN-eݐ"OB_k!Q, `FCB2i` akeSW.]^/%D.( v4KQ&XiMXǜ2rԎRFߔCs2WF3lK*} ~]7&{AD[^?xGUAgM!.MuO \Dey|tCy|1HT76ӂ7:]SLhꆴj+j՞;8"}RN:)85:yNOPTqQx#5 s=@B>c/x1I~ D_|17)v㋱0GM7vQ2)dۛ %%+Hqhud`&,rZ^da/WFJQ%I.V'=aw GO7gfp4Tka)ےEs! ci`,;Ŝ P1DQNlE:XzA9Sjvڈo.5nïqT#H*K(GFxr$|9t-.rND~ D3PHᤔ `4 u 9=6b=:zBQ|*p3B q¸NLm/tM"ɐ[] HAu=TUJ ƭRz&/cB Tk"~1CR+$4s9ɴ< A9_Ε*TBv.ʽ {_]JޤS;_]J-u=եDq~u)JĨmLJ\A/u=";DD(ju'AlfTSE,ީBa5LR'KA{oh*{$D._iMS@^z {I4b0w^"!!_]J"!/OF#3 QWIsQĴ$:(͛)p ̴e00lҶ̷mCiTP|Ss(s7_N.(&PIY]('$Db$PH`PȭvcWWIh[:l9)XYW0礝7dIiʺ#gg?'S4? I?'}AK臉~z$ݠBPτAeY w\zB`e( pDQ .w#$fbP ]K -ķu8Q5SI}޼Ka}@M.EMA>7,2͌~`5y%:wA>=3!t9d3/ 'yuU}D.E[e̓, 7oteS*>*,55?JDJIaeujs+P4iV 1tܵBad9N$1S| t?nS?B?9r■Zr )#%b肮t'Jc NwI_'nT (+ khƀp]c8ah}|j# g Csn)-5B0l4ӲUV6R#|n'H*N~V_VqgOextUga5c@p:{Q|Jyp秌n *E`DY,L()c$(|!hj|Xn.XTtF frLU^^LNXwLTidSܼi%}BL9Z\j'$D 䒭lF)B(*i Т[wBw( 6[JC{;* 9`x10$6Bo?iY/!ʙ6 z L8$[D8M=u1'H`)<Sė"WlyFF>m7HS|iQ8 齌œ q5<%#O2{z/~HHLg^)izN3PW/7 xŕi֋nO<6}D/Q3I3xnI^3(#n~ B nVJk7YZV"BKkJ*,WL}&۔,J\ ##t eV<"yt(ut/|4;bˎvFXKHϖ  φ%k-흦|*!P4 SsP`)NqըDx2Wc(+t+J% N0}` M.]"!36,Z^oԪ?S9쉏ѻ2F4lب* @$e/C-|F":ӆԽ>bա)8 .SJw I}`JX1Rn@miY}>#@91 H507K-C1Am-D*Ae]]|ºi?TD /ȢJ t>U?Ԯ k.w`ˍ/i,x(q <.+C`>*U1h12]}BBE֊1#+_U pg br0ܛ=O&<(xQs3gR2Nt FbGsbl*$tӦ0Q{Wx|70V!  COtdFlя ++9wRK*DV(z8`øTt v36Ш=`.f}1k5cy=xn8`bՙU\U>W뽈AmYosNaM6ڀ5I#q:ŧLe"6$V 1h uJzP1!Wa%{Xe$ЁQ[Xh'ۅ[_tYJC:'"ŜOBj|8GJ:>BP9*!>W2ذe k%X&&N]\ nK$`7<C4J%/D GvVIvlxã:YMhP8U/NԨC񕆅Tղjс0Z9C<°!BBe0XsWRO zzM~]JyA(=hu- kBπ. -"&ˢp6`&El_S}Ωݪ /]CzObXVԗaaX^=hE sqyT|% Â{3mX{OdyzU7FstQ(0OB*9;]:=]#Z6K'+4`س~,Wr =#Pس''$g0u"uFF?F|aZ /+fHT{T/)4-l8e*o: ̡)FCSc./CAN:O#p 2diyn$K{,Wj͈J9%&y::VT&cz S#:ŗ!5#@+9iFY$MLw[H%S p}jQ=E q Qf^PTH0Uz(!,s#U8'Qُ,XcWI>IB&??Œ=_B|0ŭSO@D|50 a=_FAmH?]B`[k`>JXH^1`Cp]7Z~9^؜1JWkuJkȦͧyDσ[(|O>`#!4i*Pd.`oXpTiuh!i۽=7A~b^I)D禷I:3/}ύpa;89r@x5|G 'nTp6]B(w( F"`$JFA#rs,}$Tppt+2ǗHdQ0+mQ~\+-:NAbQW!!c|IC!QH|QSFI̔heP[vk@($կ *Q GS1Ga1<ϳbr!bxyQ6֚3y=nkW2B&?+ٯzTq(\q8Q,A1fzL[eCԉ !p׬2pZ]~͊Is1kyb]=!_)MV0~049\wъw!s21dheLp/1MAR^2AWҾ紑H Җۛug s4dՔPf}D ,?ŗd7)X,AşfE|GNw Sܜ}Pq8t8JyZ+Xz8Sñu< fh8CN4kxshMuYR: ea$5Bk\!Nڜ͍pa/~ª7N!̍ 1ns#/\19dۋb1yD "qɬ$,N$#o.|3FN+]&jQ&z6hcȷ[B #ƴ)nVIE f6L]h7WICBB!{?Ch>+ם!ۃ mTj%:G&QTSU*F` +bԐ*jh){\`>XzyQ #1PKKUKKO%}VR{<B?QKKi:ٰ: 9rPXN&K%Xurit?t~,'e |(J@$dK0s9i0d9iI XS r=} 9j/ d( QxtV]cF\ 윁Yv^ k=T,V2\ 4 BN v[ Dd*01 ,*N@2m*Q7*:'݁U:S'H:[,g%f cײޙ7j³ǝ8"z ~qy\bt&앑dz,|%JB {ga1`[XIHqN ) ]БKg`!\B;!MBG^n~n *\ dSC ?riX-\`4)sdMB%A0Kv3sN4J#,5^!!F7lX-A 5AO.**ľ5fF^qB]P Q0R}}|\O KJ]ds"S㦑D-#~j O0YrjwxY$PL(Pۧ19hBdp3W-,$pJQ {)Uz^Ǘ.39|gD?7db% 2POTR~ G[[ JjI`F7nFO6Bv_l-h޿&Cu:BMguZ9hWaR Nzqh#HHwgnw \?i/=AQn~fF NqO` PL<3r\.‹PPZ(Z>y>f6s9Ί<#竁t^ޝ0_qOBHK BVԮƶ;HKE_#~7xJW0O3̔KL} fY7 3~^\4NO y;ь|Y;=HU2Hh=p!橦 EfocS(Ik;`yz.\ Tr&fb]}:?Y0+h%P",<>I=.!@nTpih堾|F?rAZx=.㮣 YTZsyYaaeQ 1bńo9l^W&d⏕BIΣz&#&σ\)K)S\L=S35?(I66o`з)!65yy)+H;=K/"ڷei[?e"R%𳶰F/@]B5*pg|zkZ_q%9$c ԯ+Cx|FY:N1<V HOsg4 Q8ENVːFԖׇPnţMN!Y#tF>{ֹ:;DP?iK[ns/r7N[[,r*9m*ԁuز8jqp) #Fvlw~_SހZ(9k5Q{zw <]Bgmv*!!f":c @WLD}-`俳,Fy }!.X<{!:Njf n yse]ѩ#dmhw!?W .<޳/.ZLrۻ'tXxyF ~Tuʋ:9F }iO啄 5Sy~JmW&YNyNX滨$ΑtKlS#aS_B׼Χ Vz45Vz e<^@?K&xkN)OH˱ ˤ.a= RYQiLURB?Cևfit=:d {gihlxk#f2D6<XƓ4W(Bv:E5KrF׉-nTn,]J^٠+콁Vd*{h+H5tr}np']&`&j!>gVɆA{ f Al\`6z"Jً?7WpP?pgZ aoly*yAܼ?_uނ[>N[y%xcvw,yEVq-RV-jb .DtcG8.lRZK" I%eCָa7r&#Âv0ά"#(F֤ޫ~IL&E-*Y՘^3UÍ TI}1fV='WrJJ3u¶w_mՆ? qL.Kvѓ.v+ϕFG$?#a;j,$mGеI?5j! HFHH$׀BPB i y@2Yr $Òd3ښvV˞Q Wۉܷg'lf7T 鈥0$oE-|B*8"{gVC,@&71腎 Q1D(ۀ1x/ (ZL! auoL1 I]tTQ|)Ej%~0qx|&rf|J=˙/P7C*/8пނDTϕT&+7!+ d8ܴٛ85wXpJq,1v)$QL\eJ۠>hy. K0M T+V&K-LY$D.+hߋ |m_T L]ns Qa<':eY_'迎 O7F#vc:oi7ڒ92{ǣindiV,Dy~&N2Wz 8B۷`8yn.d[R ŗ27Α[XO]ɹOBPɍ`ZaFUQfk}xӰ* _k: v5US԰aWSwЙwT{d bP^`M/dqճ q-!RX4;:vu5,Wd殫=:xtx LJDETI4P :˵;u42Y45?ljhae=:} |T YcuR%&6!P&Am`?a=%4e7`kRl!ƕO`Fz`8'xeC(& /&ZKkxk:%RU*c3?Cx[ ]`Cn~*ӄv"aPĊ;CϠv5Yi4fUpx8~FjYrd_9n#>#CW{5M !& a/I?=Lތ01ޫ-3>V`;pv2 ^D_e(=w,λgܴ9lyss-8$=& +F U"C(Z(FQC<:1;*ȦNūd' κn2)nj [ 2rd_ ^dP>,6"Vr1c_#*71R$G? v+_ܗŋ6Z^ܗ=JM|q_&=W q`UW>@N߫p'NcMGOz_ O8 b?qc(N|4VZM5u>~ :g@xu _dC"|K7Bla˃dꬨCivU)\Ee9Src0M1zRcWS;PrdWSv\zbZ:OHWԏ׬ /D7djAv!_G_p4t'NcoX>*A*x!6 ƿ|4vİCUշ>FeW3L'ret01C缉aC]7C,mWTXs4v[v5HJh-2c߮ʱiRI:VYzu?.Yd-o&@8ʨ@& ;1Ѹe)?3eo_Z|4n} صCGGT>Z#^bZlDl7ѯWtM؞xґOCJX;s4`mIoϮYWV ;զT,9;UTnNbx_zv f% kK˃B>ÐNK5ۭ:RRu^-^.uic/j4[5$Ok~|@ZBz.'Euv+JXu[IBlDԤq^O7NyG[P&Є>9ı+ g$KP{ʷEfΌ4mۗ˓9;$[@L؝T{~(lNqT,;aS.-3?C$,,]!RRi!iP(PTjs@h^[|oفn%H-CGSR~D_R5Ɔ&CF)"E?2=^ާ ? ӛ0oFWX ţ=SQ](Jo*F]Oxe);BȱSbƊU-®*DZlQ;j25O;\M7TOص__~J8R/((J:>܅EjjwI&ݥoyPsq3v dn1 >FK[^vD D"qkD/(b}U{>R9^&y#pm%N F0zԣ6~zt9y0r=ó#gDT}rAKST>jxH>VmEbt^w[)bBO;E/T1K`&ȹJ ;R5QU\JqڇJv$2Wvl@TRalrH6f&G#@@#| Ikü,ȷeWKO9=}ת_\ Z!>??-Gpr+@qyҗb_ij4e-4V _RBb~\㌉HgTlb"݃ODY"],fKy?!!쬉 _eLS>|_Rޭ7PRj~s SQv4Χ߭xpl#|Mk]U==mI)bbS>p({;ija7;tRל wx ^1  <@H5ߣ[&Ȫ4Š\dC,?&^%Wl⣋m&_&n>&_dw+j:ٜ_q%:&Ⱦk5Av!'~!Nn>İV5`VLhHNBf{&k]:?eI<!Rs)qpM2nWLhrʕ]P𔿮ro,||Np lXC3(FCD" uau6JOalN+fo 'rIhUC6SX9+.{(eva:%gu\|t-cй4F 6p4k>CN}xo⚾1UE,lS_eߣ/d &; oo}2x+~oY첂rV֋gQ2lol9+)ChKNsyoQHʇxb ( (d<nW/A=J dD_I♣$_/Aq!kVX_ ȯȑ;_du$q&sE}MJ)\>o? >㊐&.rȠ[UQx;Z1 |dr'UEbux( -$9:qocumQ9j$D fJe_]ZrFÄueql]CIq.lKRFx,@&r Qc=0 !"W(410eV}r{3+uWH]&UZ\KńB[$D=EӵXDk ۈ3v,z*~ ntlz\9+ ҏRn'ÀHhm{% VN_Ɵ߶74f{5K\@moj0cVCƄr'AcqAtzi†Xħ: l1+WM2M(E.>ĝN(Nucgcx)Vn$$"<ϵa֊JU?KaQ"XkWAvx( _b/1`;٠#^iJ9 oj91JT|b@5ٱ=DxPASю ~d#c6ScQ2dG8Id{L+gn Ӏc ~J襗{MocyBDʺX7 up[V}Xg,^W2YXC>G,^WV4y켖0xuI6bcT(zuփh:P$>Ѥa"hclg,V: 8̳:ܣO|21B&ƈBk p:*ͬpjU&LeT *P KJӔE*}lDvxE\Q_}'B?|wⅶ%7K\G?GiJ dEوBtM~/~YXSj~(R%eJ |bW|% ^zMcţ5v(2)Dz1@`(G:׆Qv+ppb%EPvi=kcݹ][{ "uOCmhUn%Rl&)\BKZo݁2 aMK ~+NU&X :P0vgElOl1i1 )j)qG%Mo K?|}h+i˸(h\H)`vA [[kWpGޢkrV>Z+Yl`99I$ɠg2̝L~z<%6bK-7ǗV6REy`GN'b$2Ib!ܸl0v~ {aMrrP5YEe/w)g0]SbyafS SyO_(.eY*iKx,T*lt)bgza&m [pU 'U9ߎ6EMbZxJ_r1Ɂ%̒^Xir`YL8#v;ۨEZ'>\eJrUKZP, 1P$̰m1-/[@n'YqxBz/x3%Vm&oW!%͹g%azpn`^uAmƥk~w^XiǕG/^y6X7IV$ϳȻnfG6Vx|&vcߦ<Dz"lbyi!ۋ? i6u(MU"jd(!KG=>4y LaKdtpɷ+HIML4MA6%NFMVRYKݥJ[Na?}E,r~v|lsp(];^JQgRGJ]]KY'B{(ԸSMPf& ɀyi)<]@H>L=ڇ aCߦʙpܣg-xPC$MFԤu[HH*eEH`srkl˻9H/OO%Rpߓv?-cweKG Ye,}n>%LOOG{"ؽCs%fZ!^x"J-O檇SʧJ% \|j1kr7 a{%]oӱfk텡U1qE3o7dt T'p$g솛8:sM$cS(4k-XCpvNRZ=;_tʝ.rVi: Ö*DZNL)YO+=)rcYzU毠?ksu:o(%BݐT&xh~ Wnor ˦kUݦ?3IoI N"w3FoKjUcЁJáU,j U}tpo\%ٝm7l:鬤k)n"yk8RY@ҹ;%Q &+"x<*x.s;%R>I1|}<$;V-vO%]J?c%28l"GRJ]RQi$;xJ.F5ō_tۡ%dWv;{n)&ը*ɔ;hǟХ^7[*Ӭom4W"_y&YMܼCyjj)f]GxWGgR{I9 bC4b!|⧮M}jm]dZaCML vI˗d(Dl9݄nT;h6IM#ۙ}V` 8h?|b{ꍅ)p ׎M`C3+`(ͣBrM=ݘic}vl({U˳TJЫ.9 Sc;dϼQ:qN %q!3Xnl#jo<1!^`lX,} lǶ8f=qXc.`poC:)m1!ޝ젺6:ZTosiisA| )w#)O6J >Plk$ƀV#`wPJJwP))OJ~/DIoĖ}~L TiqZʶ-/%Nl`NeۋX7lўjbvmXmѐB~bS 7hx^K]&{NenōLKTnJ%lS-Ә< "L^ M[iz7*-ӳ+m%t`K]%om"_ߞ[s'pJ]X%FYFh,uɆ#^8>i 6?ԡ=b ɳFMd>p.^3&#ڝpR|JK\WU3nN-%}sW]žip룰Po&viÆ;c%cj<@Rm^H^Fr~ŬʫIZ- ^YbIe+f=bdLkǗ h+DR5Byץ kt& g&M{M;؄6Ȅ_2Ʀ. 5έ*gaƶK[hl l#B!=4tWOz+$ )J0kHW7oL_CJ^;{b1{E;7Ki,A`7]߯͛쒦IbN)[pLi+937q#{gHpOo!$|_Ml6^|h>lQ>l6jLey?=jmRRhM"@hi yHC*=pW=lAk 3E R Ц2VV"Fɛe8 qcw)=xa/)r xeE1;7/" t%;k L%68\1([uc KGf慕iJ|&<.\TXcdę])owM^*7FV.{E[~=IՄfm"xƜ!\ߎU_?/ ~j3 #֖3~ZB#) 4CaWy!J~@J< ڴ| XC5d f̫bF"+'څ$;3ϣʕ#/G@[gm֕PݏvTF*նBs&ZTcj$Id=wLe0цPG5Y); !)ժ~dׄ+)Iyl̑Ax$]8a'D;MSlx| 3`ǃ,u5hEr5n([ᣇ=ez&4[ L߃R9rDz5B3(]jK,֩mJw<դGUV$JYy$2 Xk0f/3έjM>_W_C|Rd?Ud]}ˬJXfXWb)̂g&mE-kiɠlqF~O}KcTy/3S ٱy\['fTzR|ZOgZOɒS~̋M[H#XҴܤ2جi|~$)Jd`zc-ql< 40 +g%});}aY&9ˆSZ&φɴLrf,*Mw,PƁ9S/YʁU֌eNρݢt9cy#˴ u0 [R?eJU֬qxz>eeiYXy7w?ܙ~KH+wVz^G̶y|N;YgJ=ҏa9rux)yMy8b6:΂YZԔ/=N16 Nrҗ45ڿvԬALkD_[T8 @ƧxbZ-2/%_Q4Gng7=_vK0&[m`G.؇ݬ{ >K+m p?@f _ZɀYs},uV|Aj˱矲a%p:{Uz^h>:\-k2/f0#2z|Q^_ K20SoC K} x?#\-q/%aD^3+|9- %JNScjlyQwYT/E{$\=_˟Q|үeH_ }C" DɊ_iVo̅CM>fL#{CroEg}K.7ek.owvoϖr5uNraaalXwa];;WFi_|=ca={X|oN˕QZ|F\@a_}C?1zlŰtB~<$+Mt~ĭ%dcdþ^#@d/WxhH}Su~M _аpqKmq4NP8Q^.nm33z}vV89s3saVAMD^!?RSpV&zwgt99q{zܜ w^N)h][=Vg5;6ee汾. ^O].ʑ鵋3[kڥ9zz.G~.oi&OȆQ=!;h qU6?gmpu6 ^d`Zlm8f:? lry} 54d}&#4ܐ+7f°4jܔ#2AcVvsn:ܒ 36Kks&Dƭ@bC` -W =nτ56@&wl8#7̄`}ʁ׳;G!_rֹ=9{{s }9@FNFي#xs'R=u1$ro2:`0' `YI焇sCLݰ%7GL8!xO?+Mؚ;.eBB+* @kEC2adӧs?w;qCsCY?n(_!x?Bf CxeLGk/#XwA8Tx)' ^`yFWrCU?rGe[&(ʗU^C72xK"ùbxf&m![텉( Xsrf 2:V6Pee(tᚳNdBVsFeJ>ӏL8ٵU?C~0(/Z?䈬C Pd˅xrsk5@fߋsCA!"4w].CI_7]~(ݐ5&n;mCޒ]F?^,c3g}ޚ3Nz[Joϙ_H~۔ljj̨\^۪GX L\N 1FF?nTv@`nW#&@g >~D:/hk)NP Tʿđ$gAX|(CG6D"(Bϴ3T8>S1B3T *~ATh;iDrj\iO5:w*DjH\JpfQBA\9 `va9ɚtrK뵌XB!7jbZCLiLd׮]PiTLg&(y}*-6yt T0jTtSm<7%N$ lVԞ(9!9Wc̩S;AZr&Z]tx$z~>cKm@4"t%@nXc,*3bǧjvR:&amJD]qDzޭ'ŌdJhaDݡhѸjvtkIz(} -qVUn["z6I}O;;%Si| #"uւbeq7GSLkV 5E9}-Zg(wz{`|BX{GHGJzzn+hs s֎ !"˺Zj,Rdb쨝Mjn,'^YPUtCiae!M>3"ɭK >WVJ L,cQԸɎTT_xFK){ .P^LNk"R,TDųT0/{%ҩFВPT,abmmrgmT#kǺSaM4jKyZ4n!XT/MVHg uNHWtnLRTVӝhRSzt2ǾmvO;(%1RJ2L7D\z .*I;*p{ht:5NމL`iL2uTjM,eY,Geԏ7w]8aC`{.zň/RzlXj1RT;Y?*^kk݈4ZNHOxᓮf50Ir#6+.x*M#MqQ9jB7iC.M\$$Wk;XDtZoҗѰjt)<"k I]e-0աTU@Wbm1逋bQ =\b)j4f^;wL+ltw*Qw5Ɂ,YdƣӄH.UhYtX4*&Q^*9ceBK\d 0 ir&l= `9e.:ɔhV1Qu$ctqQSvt 5kX*k J,. E(RV]oTv.h5..EZ;]) ׸Hx5ڬh=բbɶ=X{jifٵ.VUI<6(擡q4R68iR%tQmWͪ5q1(NSO(pQ.SqCD.J%.S'r@N,Z$q_1taO#2 .#hxR_멘]7.Z-V CdX=Naްq!d'+DxWSP_!p\O ҲєlgyKhki؇TJÇP"j[wE,fq]p0^ +ZFyaz$H-Ky>5UoXouRͪP>v=UЭEtyg_~kuMb f4 (d38i4G-1zJ,aQabH Η3ubxߓ}*hVOEctqOѢ\z_V!] yC>ʝ݆Px/r=m^iǢFVJԓq [z@H/]*[|CQןH,޴r6ĻƐC. U{'zè9E7 ox+=-^Pd}P>lv# ]ϛ[ k|׶:UY#xOT* Nr}Bnk-P ҈ aA*/9֛<jmscҷ:FQf{$81&i/T;R4=A , /2g}bP$1C M(7UF0;1DM<%נiUm) /(a}5i$F>)n3VTޒn[6T XUMcKd],54Vo)ks SEI'CTbEPyW jNd%iiMɵa:$x"V{b %l ޴XS"Q!J=M5y޻}:bYt%W4ieW-YzznZ>.. _4lF_jİucNI!jJpj;¼U-kVב^O KȄO2$r9饉^7@X(j6`RUz\+tñՒKM&;5~ loZ?Z*1z(=+wk) ~Ӆ〥1vBf]ǫ+@R$z%:W%aRYCD)gͨ5/`7_o@FQЖ[hzA% p,&ifjYYvoVV+*̌-D6hڢuy3#"ߗ?8sy~mNx7xas0O7CmPaa'h tk.}|EXisf/$Qc*!ץ=sVr,e"49|([,ѲU)& .ݿ 6s{BCso4Vxj0C*y5WR(MS_!%X {G3Fk$Hż"DiZhV6j %0HT?U>*gxšP 4@.R+4? ~-.m!'iIHg!"T! wR''dcCޓZGSrgv; +?PTjDM NSfChv0>Suy)ܯ`6+i Oy@8M\<`*#NWx-A!Svs+`e!фiibGFOW6zmԁ8WGYGޒOuF µ*3dEsϰâވO%Bd!>qW1)sC %rsL)5`Z%̕ }FP0c )#i f Bܯ`&WEk|2Z(Ht{cIcnOB-#SHa#",ſe;CpIa&z!@HϢ1$>E,ɛcd$ .6$Yt[$+{ W'aH/w].";e*|mYY7lOH ʼ`J,Sf!t\,BegTlǜ|L(=hF(٧wAU^"ݜRbjK9mw);dj,pHdeY^D:Mbl) ǓN˒Kd {fVNB)lF)=?' JM@ > w)mO Ր/HfeJmS1XEhf-..5Dk2(Y^&ʤk2N)3A鴳픞t~ tl;YN-NζSKөNfk:QMʡ(#z]DvˊN}lgVsa9s_!!dZө]9Iv|O ;otz?>tBùF+>q3G ٫Auc-ъ $>SF=bB 7eg,@bEU)Djj_+dRv=BGO;M$LgN)fO;ONC1]ݝ=Sqb2ne,@qsZ1x 21U6'p֌ivX#G8ivڥZ+ȢC8Ao)}IN).K9yp!]DAʿPnz;Ӹơa5$5c]Me~ǽB-3~``%~h &`p"̠\ΰΑsO=N܁f/•D܁>|@ןvhYthLفNCȏ@o)Y@ϗh whH<U=˞@O6~l?v/I8ۄܓbB@&TN2A7CN?g=f1`h,hU1Qe߲X;lٺYv}u,v|D\Z}a6}~>A[a)R%mWى]@i-CZv}jݮ[bDFSc'4@:% 4@R8[$e2Nѕ8:=399Q%Z&?-QYD7s*j>`Du'`L[-G{VV]ܪv^ڹ qlB GjL"xI-yi<Q>7]W)Tz&.u՞:_&мBAWg'Za*Y=d ̦'2-v=lyS#!m.z^u(ë|uf ]bC3.Ҕz]j 7U^QGVqʸ Bq䤍Yl;e9?J%k m`> 6R<~70oӹyMƯ}, i+V*kmp_6Iqha"_j ;o))~Xl3L(䪶ju,`Bn2 5TlTpi#wߠ ,Qֵ[_+uz8huy]> \`j4d3Q* TIO =3/b%Fx',{\~[8y2tXXZ\[[ʙ(Ln)L/ѬN܄⊉S`R\ KRR;x#qP,A.9.jpEo̥MK#py}v6cQ63D7kF c䒦BLx ftH(i]؈|U45n`Giqlљv+Y\0qQ>%~K֒,]mO0mڣTH=tzmӪVy O7V|QaMc˅/6֗QPk0JV%M(Y^$JmִWyS>EDM2,*(+C(,³rsJFyx}1`YAZ_Q .PzYq$ޙU:{7 =wGbd_)o60y7bܒCn\/S' !R[zaWS$.%1jk7{ OH݃(Rs/L7|^@KaJq2hQ{H3n{)SUOg/u OथH= zDcS9TONI:D[$Yi?5.Z=\m7VDB^+%jqc~"&܂OРk'L%ٹ9&{ P,|CX&Bi>0p1>~9&=Q߷Pǀ^+4o8,T &x3M3LL0FP+wS13J4]_OY>cq(f^[ w1Xz " .e%Ab\X1 ǹyX2\DG+$H .JlxiJYMdǾM(yٙ8a8>r %m[yzDQ_ dٞSmpQ_jSuN\/66tLMއd#jmyDgMJ3FgI;CB$ΑЅH~eG3i`QcU H$w9+J٬-eRsYeWlԫp>؇쏮=`f@zNt_z.ՀP["m!Cla Tvpҿ;d ;uj,T: qr_st5vJT(Tw$W¾n)܅,9u n/OgS)څ Y/!L* CX\Y@,.LG߱NZ?CV#xZ}>q$"u#_`Z">Sy:B ar=J^3u2[l[|.*A\jnbGrl3b.Z̅C^̅%7eR`)/#e֭*k\f-PYI7cݴMF">|'j4.MmGQ8!٣CRYcDNĎoN >卆\@߆\jn/(IFDw%Ӓw\A5jA+!aN~-d`̣+md~<\BoиI%tH 2/7.[ έ{ ?$oQr6i9 t7$: D# gR)I4j+頓w2taf3OUrx~dhnżAݠGL3>sR'iG(gE*l50b(*J])17Iq7$le(,Y%Ur>ܞ!J+^B$& |1R|Ҏ\'A` oBÏ, L?aC ⷋ%7:^=;D!ADRT"0tB$ѮOڰ(G齛Y|[d շ9˭deT-j|&w,2@^ڏ-?y-8'B{x9́*8s"6ř`,%!\ݗoÊN+vcQpvjo0HZbTΡӖs'HȥpPeȅģA:td+BGQ<@cDU%r-TPO_6[ьSh'i3H) ʹd"3fm8I"eoo[sǢ;߸$AGB'3.w,D?Jv- el^b N`Qd,@De#Hs/#!T8 GoyuX_jq"Y2u.8NEuz) #/L`Q5-քKb@mP\AmA;Vqz~cIu*9dW g^NA5˧+:Q}vxϧB$}95G#%EDW9ao>eÍ |2DF-2u {L=Fܿnz ;={|atksbml;;ۘuΞq}ȧ43@GGbZMbpz?Bl(tb6x@9`ϰq"Q|,7IFc Ğ9`Z94j *E` o'kex}z9r1"ߠ֕ v< i耖q9v(t.`#jf>+AuDA+Uٟ*fj]祈iPkvvg7T[Q}1nhհ SjXCX?22@ Nc Dsd^3ePwwQDyX9XT?[ 0V$VF-EaT/SG4"1akywL'_yؤEoĂDԏxD^JC Dԥ4#&HTw1%u{l3pG<=:s1YtPpYSK+ʊ1d& _>eje1AE䉥|)pp3+4p:ÛPOiqYESKʸHOfSEM._eLhI8nĊJ.dBQ#5$Š LO*eo\RDXpDq gVNF/ AEyT\.>Um?I0'´qWLqWҚ09LL& b΀.);XTfF6L7Zb)=+dִSL"ELEœef(1vBax3J/6]>yJRӆF⢉cFYM𓧌 [~"e ƞ2x2;&4ʋ+L&l]QxzaQZ O6t7q|K1%JTSxrgcǔD kP;X2Yf gT-5xz9aSmIaa-n9EL}ᬉD j/dipj)y[M uМfg0F)(-9͘m S o  xaS}Mh{jv g0@ңy{kKuP+4;vhJYu=_Y`{uK$ +ʱ]䊸b趛JSJoJ2{ĂPa'Oǥ$Z>c`KRv4Z;|%ChP~DWn(//5|9æO;!b9I5/ Sp |L XTQvzC7\X1vD L^c_ܜae@[0Z_K%M 4J]%݅r;ܽ뱟b,ڙJ&K%QTtgϓk[( [`kl9FO[MLe91he94ǪEx K0$S}g/SMa737H{X#HǚIo B؈cPtv[3\@(Vx0x|Fn^['x jTcGtG[O+C|W>y'Gv= U(nr3RwK2A;V'W|Ԭg~]N&yIN$"؃:glNoEU0 ㏢{SfGo1mDMpDwsJ=".GXZթEr5\RSsvJW?}tj(CH: 9N7-+"ĊKf|JV`v5b ~#H[͵<;5^w(G4MX~d~2? ϳ F6Nh#cl $|^7*"X Xv|-qr4hGKp+a&9x̉ T&%87ڤu}3ivʜ7__13aowu Rڃ,Ff%/YD.BD r:3TVE0KX3̨+EH>d5VƢj/PC0.KVWnrGiۜJ(Mi(znETiElwVb ]NV1aUQmax4zʔHi q &[!%fyKPԢmy[l_-[+R '!@ڶ _u;{>VNr>{`._Uy#4hH5AA  4ֻ sGluDwnId'l<4w9~`{ m~O-tcH֚zpr{ nUg5^o$M%(,ˠSgP2$_(2"J.FAp^"CM# `=* 8OՀ(&;j..! -]-5bS2z˶`h3ہXEཊ<,S$Vs.*Sm[)y"SJQ אE@Vv<0%A3[=Rk l!LTwp-}w%ShAlL՘يNL묀F^SA g ]nڡ\⬚1wA< q=}%\oS*I3rm(%q< i 4 (FJbOsN>qg#.^=+?Λ%1YnؙhNPF[: ϗo_~F,NXDÕР EaQcFBކʐ{#p%l<_Յ 'ޗ4b= oxOhh.]d, 1 . Y":qܺTJNV-_Ej6>WcPi?3@W;I;.e3>ULwa̦$<0rKtAfS#kh 0dBm0NoŒ|Х!GkAűq`8?i ѻ֒w}{NYe:d5 |YG,$͔!@ `S.MlO+ֶJ; `[̏'R bφBpp&jy-O7ذy̓46O]mސ|v딽[r Y2_'vJgN#%2ߛ|A|pMxnm9ǽ$q)=DְKJwdUIOps!oCy!Z[Jc'q!]?i+=dnzL744w/tmׯb8I Eݭn\s6P]Kh7 *;A iNWa=o44׼<.)Jcw4rA{?o,!ݞEd-2ak Fח^~WȺ>Q1vu}Ӵy湋=aO s>H: iwE1bC!O \-8vMBspjO^&p leq4̋x zٗb!gT.O6Bvg*~}TBD-}JOHk|-L=S4 .0L3LZ L7zu#$5(3(eYaC #E A DCHk.R4g V Q)9>Tz|ρyt?j u6 Jr[&ܕT-eI=66ݝoDDJ\sjZwbM*o"5s̹A_pe G SZ7sKŃv+4a ~A/ŴٴxN=s=X `q03_iF>CT_Kjf3h?5}\1x4^XӴ^h#^c$6=N_LVUM믎f W2BZrxuSpe4N<(MDS7k(DbL"~ /n"rcN Ӵpy"@D4S3/]ʉpe@ŷzg4T{#aFԈ0 Z4?ǃ}~l޸Q igސw8D/G//Fgy4Zz^c䫯ҩL\.C aȜU:=-SW9#7 Ϥ؍jX=Dp;e2cY~{?/^u} uϥ3Q CG\FO Lǖ=\Tk2߷YZ7b;sdN2y-o`..j_&L.ke&/WL`Ibz# ep)^IxRMAͨO_'%(uAm)(ݘuNM5:ci ι{u ?%OZ;Gu+UkC,I!U28?MI.K=sҞl ]Ղƍ۰Bk.kKVCxc69:[!,|,G!rc&MoԤ@vrnD J*pdh>ߎ.h>`@T%ZwvrASiPlknbGW3@zn? I):tj 3T]MzibK搒b ,z+SL ^n9Kgr#2ݦ^[qQ`$]蝒ѻїI]rGѱ4EL?e";\VV\S;ӵ: !OK2#_JdۓVzG:䭉UƧYƅ;x_xhEWKn6\=ZxGfDgX6V\WxŎZv`TXvV_KJΩf#~肝v#TZS+e߁\/؉=ku^f/!Vku`}o` ?vďq>.8s;az[<6iXdn;[_Kh?H㜟fnO?GOŮ L%ngD/0VSYkuz ;%} !Բ^QЈC׊%XY[Y hZ C3%`NDa\]vRdp &w~sonc:vmK2,Z>iۘEe‰wn;YHbEd2(d82~2/J8+.}C!ߡcZ L!L}i V)Hl/iZhas`%.Og']KLA+1N̍LRIڍwoO_tJc-ݖO(t;:جR<[ݨW\|2"rnL=\2ܛQ֜pK**-Qz=vEw8 b^gITŵ$Aځ?b~ !cD!o]`茟42AL`V&}O@81s4j*((DَU? 37W"jODrϼtOĄBR`Q $Y8&',u/܊&x E;_ .w V5mֆ?'IOȺL:YUl!0 0`+d3Qb7S3 }w5A<ȿv*Dy[^=\F'"kmt$k1D'q 'nF<?WqKU,RvN) lrmHH>OK2tiBXdӀbCФ&CNWÄAFJ`c3Ju.?@s&tEf`9"CV/ݨ0o%6o).ҩC,>]Ońm .5‹3[~J`@3!U3|h[ɱst"oj"<~6>FR^)QƝ%.!rVKJ bMxyCdlׇ|D.Y,}vʪ/Z/nݓJbi$ܰH'^ļ@zNSE:M#eX݋t?,io՚2^ G "DkŔCTGsPVTΦ"$Hi R1Fg%8h*ZtRɟ( gs$:,9;M>Ibh I-c{{KCO!֩:DRA 7eu"ye:6G w3DWH d_KuWxo"L#7A6dLr` 4 k<'[!CXbe3,QU] gDWzeBz'8HghMDo%{*.kv7Ձݣ>M}bnYj!PbdvkSu嵇G}F돌/q3 y]>Q;:z_ơPG&4/ǹ|aQ B 1CW-Uq($jMIl5\4iO(TK!<@֛\!?2PJbĂc)Ik'ΞwQzHO)%qF9 41axbn|\0JI̖11I82")9<qq_'L)- zPE;P)#]wC# fh)UWK]==f1AG&(|Ȼ\ĝ2h?g7,Ucfsl.Yy8&*3!_q~2dNRqXN?g8(NG !a3Ypޭsf:Yx}ӐZ݀gMN. U^OlXA/$V=&:݂{Hy~ :~D>y vq!7xڀa[+ zPud0.;oŻN=s ]/<;!®p p٭ywq kp GQE\B@VK 7|>1"qష!2|!j;N"~/@5譙]tS-ѤgR , 麄9]1znL- 1р[J)xa4P7<r5l yz`vN=>< N,GbHٟ/Tzƴw'=v([e sظ[$0%!ۡ=[ܾ40 +9%hZd5b$gzJNђs#j{XyuR P8n Ruɜk@T% 5py,  |i(b6}A\&` DD ^6@MQܲi{»oaD0E֬}v0rP-q@O2wRtV`[wPVf%nsP%oJ%O$_q$FW?zFT x& m׬ހo>W^ɖ P}Iµ2«yU2K"ȵzYM{?fȰ>NA N/Am-0Ι;z'sIxN~p_ʹk$1X8dy:6!/tdJkQٕ2:(.(z`=0΋.q $ڜJ}3Dt٪Q',˩H m3{Cdʮw9"5j ڝP]|l6].R(JV/}hm$+YD|'5Y Ο1ޚ&?2bCDVҋ7Ѧ>?x!&k\]#Y_M/wPV~lV^\PxE{2SlNli=,Zu DU'Ю+l!:#EȄZuWw Ah7תSf`bՒNd#x@/y{E#nݐ _އ^WXD k1lЉ,dw:(* p3AU`5sOxHYU#EhG!6NHU OEV̦S1x"cI#%/k E+Q9X)Yߪelmթ#YNWuaN{U s*`^i(e^թ?.~U0 e$([ ^)Cq٣Nl+l# 2{  ]Љ 2B\{ jNx4y>Eg񕕧NGdv|8 GAG8Â}F{:f;%/S.Ҝքz !~KWd_)̰}dWY@sRv&@3\$4 r9Ov-J֋NyL9hX*eed8mr#7 D;N}P †*S/Z^թ0Kԫ:=YE_V/2SZtʳvpܑ}`LnĹD;zpa$T@`vcPsOW#Dkњ@8ZXiky bUA'3㠁+?VZzr61}oIm{},=e󩃳ƎEY:岵 G2kh݉HM>5'Djn09vvC7]9 (BPnjI#{" G0ZFxXR*0@#=3 ЊŪV{:ҡ08&L|[$2d0_GPs;icbv*GtI Nf,(!snE {&BAB8x*"8aqh c<8 htYN9L&GU;NQ]ashݮ í!==[—2psOʞÀHk.p=ЭqE*^Khz0X+2[g@=7|&gͭ=p}a޲o2+ y#Qyh4ŮC-=iP }hOuETf5gJ?sFl`_nAްKPQY4B$aCk4y]o@ӃyJX{0=NͰZF!as )%cIӝP oso?g/`a{-gj<`ϝ~P RG٩++T,fdRZJbX3]j2OB(%q2 \k_qnC:zu8tWKpl {JbB&l=3('p$|-n2WGS8%E⡎Y M)U k|VjOz”i>mҋ ;gƹ"pakLkɄx>V =9\_H塤x oCUk6Y1 .]$iNZ/CUF/:>&Nү~˿"6Y="yK}ΰp$q5Tj=C3WaGy9ɉ%|EUd \JcCOԝ'1ŵp@CQ[҂L4^z\ E(A}oaTY@`T q3k-E!O1l1'** 4fB4cǟ^cS>4,(3xxc,NAaOdGq~ ~)){MNèpNeՔy0>[IJޠq#?O\ 5GPXD'=!!e.Hvd`9xT"i& %kP|:d2ľblTgiS69Ŕ3,Fmv+3DYt$}ƭݾ XG8r;&Nĉ0[nr]:KfIBHW71蠌phc<=mbv?Fm:VI(;+aІ'aONAI;"C`+L0tNga.N-G3Ȋlթ,}Njj=M]5ẳ׬')𵡇R6 B X wVMfjB .Ё,IR gN;^ oPP\G^VklnLԈWM*G^i쿰Wcgs6@YE9ƭ8'L+d[UhNwV $LUۮ[ޮӮJ?]8v(}rNOklVt! Bטg>%J~]en [~lI+R bCŭ[Ѫ.mٱ!:YAﳐxg]RYiPV6ʜMQM)`l`h)b͖MLHf^B|YOi⮚514d<Xx>-I@w|yYw^&W8/ӿuLCoUZgT0yg њF .߃߂.L޳U%}ٍכ sȇ؍9‚GN3 bAԢD̈ K.⃛3W-cwYQ,] F KQ’&rR,H:/Ja&>HfD # fJGBYCdC+_KsyjgYbH?՘ =>T1 bi G~}$ҭd ˳u8xadA19R::MDZ߈x5/x-p?kr 3 Y7BY\Gk/_0ܦ3[t`hBަӞ|hNg8(m:͛m:5GM= 2]'`eN%uv<-v;A'o mŃhɕˮhL8(=,*85J┠Ly )fyptXX2X_Tu6e5DyMsE+fkG3isa'3Cb|&O%C0C,_ n4vC`~`"v~ک˹y?vERi:"A9h[ʺL >GZ쨇Q$6YjvF-\~ #h6̗K`>ܮSJ߼] nΩ(Hh웗^ +(3 8}s/V\_/pPu!4ٟ% L'Y#NiNy|g:K >9vtYEg:--2;bNfטBc%z#)xT_Q1$=4aP~YyN_堬]6@/szt3ŖAnɿO0ƋЍזA_̂Y4+d,%'c˂X3uO(oPR X͒Bﱫ5Xk8yAYG+՘"1쩣jyT#FW, ퟂ2>PjZ![#5_5X;tj;Zx5 Cۡ-qǏvt[.-Y"C80F"5(ncݞWitsǁ)?K؁GxnKUot54K/r4x6Τ| Z%OO8} 8[R=p4uA3EgU>Ώ;1;7'XiAY'r,E(k9R襄uM[8Wsɿ`eـ\J ǂ@,  .BcNٷ !0ng[$]wlg3B-1tg!v6A(G3KFv.)BEg(I~T<,!< +2`dr$š,BۢEf! x",mQqۢ)zcklM!<s,'ԩ]✀ wT:w4Ad]'-pQ*,fe>R Q/.쮻aYYRYYiRZZURKߴbe]f{fa?yvfΜ=g\yf * b< "!<& /O@HLW%o"mËF:IQMIBjH~F S}k#:D,Tzjs+c01ޚ.BQD#8sd 21z@fM ] EvA+Ckfv|~תSjَ/\%0,O`8v^"HOO:ЇbkRʝ( YBǓ'f- 45,QZg` ߮blmf~LukXēdiaI28ˁ!ۄhYMx-i븇,R}$BNJATT:B*B):@e;G>aIzTh4E]SC9 czoU\/ jTFw|jN\6dF5wS`к! 5:[+dO(νdO %?8C?LZ_>aulÐ|(ٲ)4?ߔ*֗wmPw'0bY훞Cʠ`M -"Yd'tb%LDv z4}هdj.ǿr2󳀌8Y{Bnхqb[d.[XKV%P}@8ȅJ. ljRvxȰۄ"^(RqR 4(rmd:sTЛy+.sBӡJ:BR@C> 3п?q=47z?#8^:Ї΅ur,\ \1e(I @]);zf@Q4&TF9~ZD4 [ށA݀C'Kjn;Kgk|;;R"y_;Xldž] m^oAc^;Ї5qQz 3zCK>RPT$#U"m+RN[z?O$ o űD# ɷO3mHƠ!+S; D]~,gdtQ@*%[l˧Ep@E9tp ЎzLC"7qسmNyD9*w` O9o#l@CDukigJ9S,ntnOt sBI] :W!ˤ{ ?J%˧Erjà͢*yFiFYQ3$#z!/=mBM9'k IX0C~އ=6rgH/pH[c|#fOۓ-/X%fjIEx5Qsv@5y55ksM.YG-mɴӖTsD| %&x!/}R{6}Iz8z ,@Krس{NC'yK5ܖ(Kigho؉t¢ E¢g?E2+,TJ# `orѣպ Y,UU0Key nAM9+$yc /1!/5rgNj@YTTeƲAEiarEia0=_(- TvQJ?RHUx{`ӛB[a IC1: xcT/( 8/s!'`P4qL~t=YVO糊Lbrt>稂>'3o;\0M6~{ف*;ԋegMkϹ:#Y%:gB;5NSsY% /(;YkLMg-ٚ136xli?zmOhq9|Bw[Z,z#Po 9|= P6%Ub[i=K(a[O(W#}ƷfK>l!vE@ƢМt!h\IFٺ7^)]I|APHYM R;#mcgnF 5ꨂ|,6tϜ-BBgjo0W^0pgAb3 Oj߿r<ε'V.gJkyyyW9ޡvO9x VNܬQ7u:c:$_mm vPB^9V2}mc> >>9ܞ2; YHd{0ۯegXP0ioObR2ℰT"gŃ'@)'kTH6+|yh鴸tVmg3=o+PܤiAx)) t䶨]~GB 2eRs07@)+x& OYJ1⢇xIyL4 &0樓Vbz5lJ̑ĜbY=!>NOVx]poа0I m*7+qbU> V3L Ct\&5?И4px,YxK' mSZKIIVi5|#MyH[˪k"^= K3IN>ԒOL=%ۍ xD4<"+d'{1I׉V 7l5t%.}!Ni N`( )p |-rim i\~h[vz\8^a|GYJpM46y}GyѲ q*8/-,(;2vwU5!:< üWOS\dv7NnmVB[c_\ט渣L@5oEAeNBt`39؍hTt8_]űc4 =9Opԗ`5?E8{65pi˘ud !||rlj䤫94P;Y^Ke\+{.[/A4!EuS/iP46H>c@r~S>ʪq1le =jX>QEvw~1,HW9 mns0,(x/FɝTho,e/ύ, Tڪm.35 N'>1+a`sM<ߙ5'ɓBJߝ5Iὡc:;kc?ɏ3 s\8#0<3yF>t|w{jSOqtBNN;UI\`:I^7gq_\n/sǜ@~IKsOix=WPϕݨ1mSY=5hKIP/DsRsɘ|Olx|"t#z\>zR_p٪!Ue1n`5#Ɯ.(4q5P.YS/cL\d!Pct߃;Ncz@ "/D'c":.!mJq>NynDZ:`!r&֞u0o0`Iߐ_^ŗ=OU%b<4}_b*O XhA=Ս.yqΜөq) f{=E^͝p@Tq$( 3JH]> Pq ⻺2JQ?19܉3b h3hZb%g(qY$NESH7cWq:ü'z{) @`-0U -",]as?/M|N n@ ®.z/wo#=X2n +D5`M\Ղ.E| oԴD/}q5@]/"r:^P0_K>1]RC%.z#Ǵ+CSfsNp0^6P?w=< $ '@6jC\nئFTq¡7"ϏN\Q )Vf]8L_p yNa)ሎ- p.qe6h8JϮ.s]mtfN<<6ff8Ý6G5.c|Pz?'8ӝ~ys-cߝQ,[&56P:+!4MDٽ<ҞZ\ Wa'$ZYęEdv; Zr/}P+k:.}lNܚ^q^=c$?;xAq Nε36ؚv3TXZ0ZMhz?3X7c39p 9z#t]P1NrLgqaHdl.U"Oa6MK,#fBt<)~ gպE A`y`}rM .+h/A<Ҭ$m ^V|}=ɽ|+xy뵴tzEB9$ɱH+ x0n*i,]=41+/ظ|C+}V!8grTo:E'p㶶o &ƢMW q(,XXeScU,qFyUQOt5 +t&E@p`8;G׼`5QLuŀi[a_X<_E{ʝ(o6#TLC#nG]np@)ayySy(j'j`Q#j /ȱ~{۔!dH؈]N/蒍d`O'/"*9ވb9{*9T2MSJ hJ~;Z󀁠aHH ϨiLg l$l*Y|B9"a7,2״ ٜk"lpLz )zbNE>1xGk•@!:6E~ST(rzumJr&49tf + >njD`7gڀ  njף`"kMgfȄ۫sU96ATXoϥrD7B.DG?J\;_́!dG Dz!Tr"jX[Y"p9vɗ+vgn9:]R*ܓSC,D!m>DmU.6^a/@ǖi7"rt:*$GQ{bb^jJH[,gSjeF՘DUEI1G#9š( 8=œx%-zlDZ#0gd;K_`,p37 W\g4B7@3gs*G9ͩvN9CD_cs*%}әp$FI"h>U ^ 4+yg 5EL.:U}U["pG"׾ZhW}^^[ĶlWY! 3]h|s*$DdPŎmޮvi0k,l`6_lވ8t7}0%UTziQ"HAUjj[)Z)DӠh: Fz;ѸnҐ-<5}G翞JJ' wÃ[ݖvvluq4_GH%KSL⥏icrc * i\`"S>W6 8nKv'f"tG%Ržd,ny"b3suJ(Jd|bۥ:d{ ˔OWq\|⊗Oɴ3b<:˔dۙJ9T`>Dt!HTh$Ysg #~1WΠ| >z<ՐT-mE=Lq#7S{ď^Ct-xwSأQc xͶpkr3-|ADXV*Ww6E5Aqoa=D&cSXc -cN βx-ԲS):DCt:v*%7DMtM\^DY0pʉ61MZMw wl/@TQ'6I/ {bV$a^x.Ȅ )ߑRnzGJo+qd5O&aRvLz3{K\NNR$؈<4.Dfat%~G?8!HY }ONHoI5U[EFB1IxW2QT]%U+QZjR]i\A4 xM%=XM4sMwt.g HG~pየa>d>?貹v%T2{}Hxki̎"z.O! f#w2/_Q.װB3Wlퟋu'YNf >e##bp̚Xڭaprٜuejkaș?d ]l5kV~MF췬kh [X}̀ ٍ 6NER!:9:5Ct|BbR!!:}doi,/ [;ӹM !GNW1٩y:L|^N72OddcƲvT-H=3"jkDFDj$7"=j Ɋq͈^#OPF>q],9/R$ّ`8lk`3D&%mA8u*%ϛ%ʠF4(93iJf>kXsE7 iHtL8O FDը #_ξAx䳵iS.b!N0B*D*}L mI3 A;aW"= -Ruﲹ r W:/ mԊ`5Ѽ(xF4GlE97DM*il#.úb-xÏ-C\v\67~znqW+?BMj}KbM{~Et 1 ?%8E,ϸ^A4 mΟzQ̺ ;0RRC70pI AgšmL^s귢0l<(w Bz5@q@uU aƣF^Xdu 1Aa9jd5 L5Fe!=o8 =AC@!h jAjoh=L5`NIs4U]|/4yh~X1Q3z\SH ?'[">ּ}d6fA3wi2bͷؾ'QqM`WOakh_\;X{۔P yq8)Dwj_ AR%iC,`{svkQHKF=gGEbhi8\ߩdr8 Y Cb#eao,#Р7o|t ő>N%4 F5;t%P>\4#ѽu#>R)ƗS8їQD=6.`/w+8>'4 @qsZa>Q>TJ;a0QO| w/x-"Q!Tw?!&2$jN)My^X?yNJo*u!_-_;p):" 7U95DWeNk]E_>T'̨:=2[h kF{0$]瞡:eGO7nS c^SLYzYCuXӧS~{4a8Dfcc`5ћ{)콬YSTEҝn {6wH15|[iHo"AQJ?5/U.zQד\J>Me.:q0;Ya.'[bAiyvFJ(>wuV u jjm?kM&iLQvbX!9(o MXVx^?:&xH{V ͨS⃆0 W+g4', p&y=c9ӽ؜Rp88Loc%K=\>Ze ll|+9qb tلg`cRNխd/Щ,JIn5:=qxEf3"AS7;Khj @>MEYy$bwʥ˧Y { dP2@lʻQ{S[d^Q#l qzYfQW-9TlRz9e}c};r?"61ϱ^EsiE3a˶ϱM=DEAm8igxza~+{QEψ%^Q <;ʘx=GhW֘x1@G KL+YSLd*з}V8ۮ vۑxFLdb] ԾT#苷`r(sT<= Ձ hqւ.NxAKP<&2i]bٲ_gFIl6∍jS}T ;n,>VcEJ7OtyD=Pwt%P4QwFuǕ@GusN2i$[c:yf 7I$y~y$bKbX@5O>j#@Ʒd󧂛+%\ev;>ioHhHmn?co"ABƞWjjXU h`F.0P>Qad:c@/Vnf%ʰ?@:>h_ƮKX)d3"+|KK'PY!5ÚlZ:{<&m?}vꑩZ,s8XMnBP?f#c,E5ftx FTl t f,#F/\bYEcKeV9  *eg[ɒG0|![yH?k :x+2"+ V41R$^s2|A?c{ƌ|%%eIād8wSbY|6k !N2Zpi1#l"p+Ȓ39h2CzMγ:灤zq#cD1ѻ tJ/Ji|Q>F2_yhBrF#)bNϷRn0]Œ EPs>'iBDCCD@v0>0ȶ}+;Պ@2xNR^ өE&9kJIa/V c aP^1.PpΙ%w+!8Hr~"8f,Ӑ8?HqkI9J np2ck ,gqGݗ'ѹ[lڱUbc~(ɟbWGd J h!-y8 )x^bܺ+.:*_p3@wgiO|~cyl;J9|7ȇ4qx>Av\1;{RWg/D*K`1}"؞5\cc*dJ,$DϽ*NRW%ҩWBϵR"K8JQ31Fn$iW{hI/d[+$('KUm[BIV25iJRijЍp)Ħ%kQa24Dž[!1IF0ͅEo! ?2 S=Xɲ ԅ1tִ[&" VG@b GI[41#mga,}ꄶ=7j,h+Wt-{ZugU"EJU1gEosJ*hfnlqÍ_iF3^רiD}pj0Ácm%7CV2(wsW ЄyqkOS,td /[A(@:eSqe-)Vq#}]x. .BKZvphD CsMdpDLqнCiAf<2NDƘu ,Au޺mh)~X@{@|v JOC 4[~`MU*;vkOl*&  {RJeJ2r]@MObCɌ!#O4$|F5zDMWNm&j+ٝ%80OBWЕк*$R`MZZlL|GHzeAMj&2URSޏ~+YYߌ=4+5:{{q48UD*h^@ :M*X =\u+uӻ<# g pktAenTZ$5s#akPqiwCZP tTLf~|^Ȝޞ`2`r=3Բ!}$O'ݸ#'%R]w2)o{4hwt-\R|ZJ MW[[K@-2ԀLFV.-44k )e wQ|a kFϐel{(; ȟڷTZ:XolV/p-ry*0Tx3`0\!ZZ+SgWB]-5)m46Pil vU+UId dY40R]TBP s{ X NKF{XTFzE.2*CbA-j`. Uuz``~N$[>j^Ӯ+%>\șVJzkNu6J?Ӫ 3=N2Sb+Cxgįe(u 0P/)dAns a9mN!uu,39bT—)t >gJ5I^hJJ[h~z%P/]0j ҃nx(=Yh?-|Rؙit lEjj=YY &y ]M}̡[ +J)=pZ-Y W9x^ol)s^ps#Z1sP:Ĺ~E{D}s=<[G#o2m(ټoR|N#@dM $yn eH!SnW>IyE8emPI:5JʙP-P۬}pNV~YNkB%vrg,jU o"_YD },c͎?oȊfG-/ݐWX1%T\ 3 Hx,5{Y5Y`"g' 8rs^9n%s(h).DeTp7U Ghxt2f" !9y50wX\M2Ti Q%KNYI:N+q=ͽ% ^?$rAZ,8r.2rAbppTO~TWתhJۉNJAiyxx銾ik$uDrGߴ}_g%Kbn_V2M׸n jT 9|セć:yiJBh2I&UWj&7z\@#q{0#G V"ce m~D9vܓSL1{06Q`_ #= xWyYλy>b׽=L/ 1/-l;9υx-Fއ&n]Dgst>M2P6dj(W[a |&iGa"ah3Y}[$MXY*z?[d9[dVK#B~43A2?0Hݍ ڹeA,c8iiKq8Q#<_`ddQw^b##\{ֳ#e?}j2p za烀M9K^<~P }H<C BS|10lV-uferTa 3τhBHd 5Qz,VFiF_D{xUHo:^ؑ~bؑ~`G{bG%rG͎%VqF=K xpvg a3v|W>"KZäXz.C+2pr=tKtt, QN ==ckŗ/Oӵ4'o@ЌO]/,6) HcԣUC4J^,M_f1UfOQh_V:gb;ocJ[B(sHn),\6*J}|/B},D$ r I_Ck :́S:ku,o1kU˙b=H4ЃVҺn%u飢ZˣZ׬:k+ђM-ԩA:\3 uJ*ɍ<~,)'B^|(T\ow5FxNx93I;$lUU1|x|{G&ig1l="V[)BZ5+ikN˩8$FrM➄]fLZ`Ɗ 06,@;Gb^xZ͡pu`X+`X޵ (٤݀_{ i7@ Fy9cZk6ֶaͫY}bR{4`[vS!$v#IxJH5"!Bn$W"vExY -{=\V-,6`֕vSa!v:6n6i0biGR0c}:C~?&UsPDYY2rCƻ%\j lf $&7(ZS ɭO!T"ߨXȅc(оv73O #c.2𐶙U""fZ/K)^{dk( pO^ ؈hz6gi \WI"{K "y tRF,u` @ƽ)2&Q؈NFw$d4=ȼLTƫHhBߐMBZ!շ;RBBB#4+l&͊"-y_`O؉2Vl)Dh2 PJHZK~7'g~*~l xwd#Xɒ%2v޳x#kQ硐f#*&r ℘/iVJ{N= +VmS)YhlN-Gݟ#!lC@l!e7SI+" m";q>HXM~нi%F܊y#qĶ9'n+\ 2q iA#"-\dAu:K12Spʿ3XSM"X%Y7'Dױ86 ,}24OofgvK4,W_k/aK78iD|\QEiHn}!0.fzF7ʙ4ߏ#$sPȵCmryŲ2WYJVRVi\p.Qp:| 7FD~X«V2~[9Nxڏ85& [-S٦8ͯ؂d+xz&*耐(ވt7gB+B2;JpEgR<- {ALs4[R<Ați*s ̨" *xNf%KJ[5ysepz5p `Et狸;VlҿG,Up/I[o.x r YX<;\R(cNZʛ"/LC0fCDC|kaNO )dD^n ZM@ ځZ)wTVa˹Arܓ;j#V MS+p#>>fPF\i7 E(\uJ=n\'QI_ӢZI]~|"/;{ț2G䭖O}G5с Pr7<]o 6f*2vtNAci< zhD'C{x` R/n`̅=<6v]@ ;ihz@ <%1^z<ꍎ1 Fgxf )9@MA{;-Ax=iA B]ٻ4O"}nC,6Pj4xR"_z8kR"-mID=foIw?2)eQܽ٦{1G(יaZ4i 5$_\J{JjꛗO!QJ)s<||0Лmg4T)4֋+ 8-Nnʓ\wɏfA\ W]>#+<"sGܖ "nR mɹR a os>??5J<YXb0=8SmX<%Y&g1Xa|k a>A5z)Z5\a-2v/~`VE6޶k⣉bnٽ6Q.9Rԗ{Y] ׇI㚏D-c?x<q6N= S ,R,z1?ewʨwŮ_;8G+s nKĚD\TR=tT>Vʹ]X(`4~$TC31r}3=wx*Jf|mch,~6<]fny2\hnѳ \zc +)YTeDF3H\KmwGXwnE ?)n@S1@VD|G~msZ[)/DLh`5=nMᬡ}Ҋ>#JK*X({&OB}6 mn_"2InfBxbsf1 Ki[Ohʄ7xh@ɋ TeWl!b>\Lʚa?딶*l^)8'"q$ЩVf<F4j?Ƣ8o'my|"dTF?2Sfė S9: #W}erJISGTvJ݃#t?fЩ O$6JSE (س yJ@d f٬@B}^bg,Co] 1_"x]A8 w_ž5N UHQ5o{4DVVˇaO`(v€;@;_s"Fb>_':6.9;#FP%!$D{mȭ.O72WXU7b3 zsg?p5Vݎ&G;G->>T=Nz :;f/|yr M٪oVP4;Οeh;+YD2ۿW06X #^ ]Ѱ4"Fg!Er<=^6gx3#vbO#[AA70Q}YQ`|HOG5 ]AMO8, D}r3uZ$KB5aw9 K^M`茊4(1 ,^c4plnCnDEE^tགྷ(x'N?]aqb k^lE?Jo=Vh%MA?QLР%5&&GK: I® Ze(X*&A7(&A4N9<a My_yx'x58Kj='dpQ+~r>@6P<0`s~A{ue'x2pZNn& d kؘ!#Ub$o?9=Sl~A+`к_A+`ЍA?CŅ)G> H)Q)Q*+A+l]A.`8>NޯVF򎎯467TImQ"0۞ :C&/OEƶ-*cF/S$}I>U#t q^wz%hEJW0"}0 +oc]'cio΀]`*2w`!n]w7h쏣~w7Q.,6<mx4y9=*+spQ+<=B&DuN[Gq`N Opmf\ Z qmfd8y?$C p5*\hKP G3HLJ랡'sவ R|,.qHq9^MJ[AQ\lF$-|B.feJ^8P57io;bjARtv?\HYFwsī̺I]+]F% $sg;@2zWz哥IZ@*2?+{@im S X0RH[ga,M@݋%^\ݮ@qnTaʛaEWvn)|k]_}FbR cOrϑON"?)R4Wlm'fh0}; .51&)@A!\q3$>=Uj"_G_ yix%",b~lKG"(y"Yt3$G)Xy6m(XHfVܽiEdYj%;&)*;9(5BhA Gc#tZFwޏs0׷Ǿ8^Ի¾?0 K-IsN0CGZͪ4g4pf?LE=ag^O**9 C*uǺpPi,}[U'+t;CmJg+ٮjUSgf(7^~B=x2 WJt'U*eƻU+pX[U\s5m*::>WwQ]Ί1i.ϞKyH낃|qZ,IALb(銥fFI|p-5ӤXx|ɍx4 Cڅ2n|&z2߾HYΞ0}|O 0[;3Aa;8e3}|%l>PO:t>F&$+(3ؤ`FNqi"(]p hH׮K-3̇͘ Qf.#:Oǥ9@ɘ&yoi'cr[|:Jo~9`ħż #JE&h9i;Y0$ dZ! Li9|Ϧ4GI5M^9ذĦ $Ol4Jھ/>ŏw%Rj4qnV1pO,n\yHb$Mݱv.QLDjxeҊDZݐڂܜ;??FJ٤hdl暉0Es]y@BA* kTeVy!5A!Q dF 3 7<O4Qda|\VE}nW07Cb ץd>$4\"hRФH#KbG= Aᤤ4BCx=BE2TAIʺn ?wl^aPSq2\j_;bh]ت2Wu0d ZK7WZ0AElQeWi(ƓQʘtkNOZ(i~Ni\&'QL}N9B̭4h$}(Z>dLzSO z;k ;4F.F \\a4#VtG8khF67}'^\;ObX=? ֗}6)%Ȧ ,zu75J#3Ok p%{Bȴѡ^is*q{Q v w88?Ff)4(&) brD{:6 ڵsOI+w)0z+`|v w 0d"S%֍a,WX4}r4VPnC,#5941yV.8-ML`AOo]Â=wd"vii;$b2#'׃4|-,[>a5&/8 y>ic84qovc_QFo 7~:yn@ j"D[Qf.peJȗOmoUd`y<^+{amq*|l':i'ZK?x*:2:~&F1yE:l"p-ibNsN7"UCfvςUDuXu} gg]'e$!ۖڑ B[ ᷤ !T%| $ \ oJśAJVCx_ `&xP(n.D)VY9{@xΠg Q]/ boYѩ9DImIi>c #Eĵ0vR|ɽIrk$G|1 [MgҒ1!$ ^LGHd~u A:4t ?'CzYAڊt|D{HJE:}FI t:+=?R(..~^V@UPynz eAi*DHr ~'Z84JhuF(`[y74c8X؟X69id)}D&;̀WF(`F&&o:8ΓH5&SВ6g RbfD/"_%t|3P[>/)q"7򘍤׊t:p }fH$U%.)p(iN`~H'QƌԩHjnđ:*r#uZFI#uڄɒD4H' "5R>F|N$X%E|DH5Jĭ>[Nْ[>QN+N[]N' mI7Yӌ +1HY̴Sdw!. ùe @;>Ϳ->Ι<8, [9_KK|y8 Bۤ3‰_v֘L.fc+ H$ '\X~9<~MX$/k8 ~Y+" ~HjI H.[)rw\v e5!wOo#)]%84'80 etA@bRtT(&`ZM\{݈Qee|\٤5qQ2OP!.a] _>/N#K#"c!,OۍÓɒh;f/b%FxH"K(/ Ti%G¼dn06H%/Q^(#H$xyHeSHbW:N0/`zK9\a6ZdN,;p`2JWm\!E2[?k ,b9"3:f2+5|`i-1Z2vAs/PuB Q(.K B|ŸwjQD'snOp6tEӸԚEDj"57l*eBSYlBzi Q.@ W+HCR[#1֭%s;6tj* 4{xQp∳7LXܝ38kg;Ev𵳏K$vv)4ܗjI%RPCx7R 9+Mm85vG}&(fCJ g2c|BiB,,O*Y!ٳbL"́n6i`P9"&H'/G<@`H-I=TO7 7YbU=bN_Ku~OX v`0(̧CsЬ4Ј,M xgRwNsxZX^=D۩`4s<_f m<@.3$K.i8bUhXgHW ]BЊ֮d)/'Kܳs!u t p,'ٽD댪Ыcy-]3/2n"i*ԭh33;v6nf.kYL?7b=O6b:LGi6,Mߓgʹ\Bt8 +o$yx.+m, iG*ↈhUCG_=r҅Gg7l]h9+nJgc6 ֑6Aղ`5MDRq #UVKxAe>7E]1.@QS p¹sdĉR6cT0xm|95ZmGOћ^;%(:#{N)yD<ږ4$j?KHV!y4ky~IiF*[$S0&S` Oze_=iXjUZGcUeV_oz?ZWo֘Zk 6e鑫u:Cu{ (QFnd"hE Rc pd`}yQk۳jھFMxBȵK@4JO<[F+y ::fМ[ع ,jrsG 6ٰh@j޻s݇ElNȕT#1*!r83*-vգcu`\lj+"2PȨCAU"Hdž3Daݹ8nCjB^@}gz8|1 dQ;A(dkhA6mK :` ػ $ X RH""2=[1#zOA*Da4 C):LKd?d )D[n@7WU<=<=1J8 J)luc9[F5`L`zkA;M,@h% ?]V2!n+YfmU Ib!'ȣj}XGYJؒYڂsyWcjʵ-jKUϬMkXsTzpm"[E]C^MGYְQ;Tĕ:rGY)wQ g#WFDNI-ƈ%:F[p -chbSolo P)Q:*([%>#zOɀ@ԩ^h.S,ߛ9.G3*nԠ[YdK!;4c')UXV~FV<f1riL?rn'HB`~iK$r4bf`()avjC3̕&rlݘjXOQı=lrуi9UuGdo1E>5b {yŲb31f aڐb>ӰcC/qU QhNI*tjN\ǀʋH3X@):K+ ЮI'؈7'_/t9~ WpH`'@  'Bܵh1s.t+I M5?w<=h)TnMb,RMb!²D""2(b2&BN6T")HrYYK243!y)i+#fvDp3!/Ș >2;/A:R}vY b"p}nnqlmU2FD^o@o>4^6.`3ᅒ0Hk)K&(7M줴WH/!6ZKOEmhF^?.ϒCrG53kk9z7TYӵ9VA̼+ǀoj|S}~Zc-=_g,b ^^SZ"EC4iATcQ7SA_X-!+;Y5# Aŭuf7Uzŵ9PV"BX2`.`R%Z.|neνDe<sIO"MZT& ,l!E^sc%l"2ƾ磼Fz3+iAۥNJo#-hUѢKѮ.Mw* >N~|sNKU~Z9c=)C^mzRRdW}ˮ]D fV~R`3+01vA\)%mAB,&ĔϨeD-UA~@UYYqgC-7CX~9f@8k+NDK㭷 ADNI xe˸F#X2MyyeN^%G6rq1ON\sk%G.ԗ.]n)GR/vB7Dq,d!ps|6Ji =P: rsqh-gwh КH 뒧% 8OEiWMM4 t@ Izo"RO[%pQ~X, \J! 5`>DPx9J'vPS6]ut~Z`QCyT=O=WGtZT> ~3@QnA!Y 1)c5Iڏ yHP*5@*ZW)gp8w,V4wgpT5%JƳdR1QU<)V=TS.nBˈN+^,%RyeiEɔD'Jf1UIvBJ8 h:#d\şٺ)c< RWV:}>_s b]NNSHVpr;Q|~g"X詟D.u.n<W䲻QMojʻ[s]| Љ:X0V7ыS;8ᖱ-2BDx=2A&e>r>^lKUA"ۣ=a)E +)l]#[?höQGQ, -mL*2OBn_(i=ɚQ'UNm'WNV5Z*Rs2Z&T"f_ZI@b!zN ƙRDt~ۘzh&-^Zi$uG$Qd$R"IuKD|&']dGʐ1:YRw2Gptr`|d{h&Iosc{h&l#m||oHz`RD_Hv1{C2m,(g<:>'=81LBv"M礜&bGeuߝGG܏$kZ\-C*ǎp(gLZ#ӭHGF~Vt$_:s |E㱉$K:Pie IUF_- jg6޿C8MCBCVZ4o9Жm >dP]zNE\DAgt\C$V`yL"jsnPSЬztU| KRSW4żGA$/!n ڵRQ/]ʂQO[š~RRHgQ/i$jD47;R9{f/Sf4zXAj͂*u8a>`F' &G2O&T#u" #[Hyב:Y' nG6X_IeOFY#[h,ima"@ҙke)K7Љ{&=x$n&2ψ\HgDz@ f>Vf~_oЂv`;A98W~ikI$=7>%5>&=Cb ݧ0Z$42 %[vG5F["f=rǃz]G^`̶ֳӑHOI"XN?X]I5$ȐYHO聢9M~Qm>mWЈI9nW RDM⫇EUy_-_ִBI4D=}'z|ADdZȉ|Q'IKFM-ht#ZITjHW"bM\NH)u%Q<K/%V5G#*Vsj򸚣)*&SHNɑTq46PWMUm4PYˇFג&DڒG^I"h&ՑDL9HPSJ&^IhIiHp0H{5Fc,$"`GU߫*iU&dx)phP"jҴ%Uq&F+Vm4DJjÇkY(mIē&ؑDabՉ<+TbQS?I❿W}S+H"( T&! uiIQx4BoI"V]s19%^b}(Xu ڋpȠp ^a d*,jSŇ ,EDST!#+嗩#s-j)w?֓s~+w["VR/Ѧ뤇GNkck*cA0I偨ƧL(tDUQB5,ɾ$R=ȦJdh4*mJDLC5n\ 'EؾIŒB8V}Qh 0g"!^ k#=M)pn.Z(]=^I^›Vco֘m&07iE/5e_5[EQVc= }.Lw_I6D H"59bvag#Ljh*bzzpŹ$7aO~}S#H[˯`~ ('k|Q+`FT! z mBw4DΪ >G& 2 &/IYd!">f'q!OhYĪN߂:dEMM7,zw.)܋tӡK@''Bȁ8U.6gWy43 b/L2I":{" d|*MR)EtN$nD`Ei ؛pPփ)y]@{x6&z!Ձ.%YLp$LXQl8e0V֣M(tكL eBA4]7& =[?gЈG R8j2L6uàED?@|A7H"ёH# =ֱG)t$ Y5Hv %HʤӶ: UȭN| aeߊbK0z YLJ}L PD'?֍2 Qhly;y5x?""IoN:a"Y;d.PiD68F@1Iv&NZz_T)U j%JF U'. ,+ ܹˤL&Dt)i)5H>7 MϾ]7F^T QOc 't! YMmd#ގ/3gA6eCf⠟}?v3W PmxTϐUb}bj¹9իfRK+cύ③ :s`wC_i]sQ,'**b*3P) )I497ԙJ7tg ~w݌5XD¸pS[$+H A Pl6;,7g1TD+)*O{Ae8 q<8 q~K眑9_Y^1}d^ nNWE2 "9%W ŰCSS(DQ +IM#SLt 2RvnRy:T JN+хVgFqtC){ஸ=K8DHtb08o3Rw$H;ZO)r4'MI=;I%Q2T2-c;1QFN$ƀ2RZ3xBP]* Μ k(C&B+\F١ g4{3] PFJsO#.i+xg2wP[tQfu W./ RtҔR-n{]休偙*fTWbPfp;.;쌔q,Ơn? 6FMs,4AH 8jzTc 6<~ޙ-DJ0DxQ< xlRWwN:-V! CRu:P4W(C1kHwsc3" rT9t3^||8GӃ1[>`K%uНtGv2Rp|FJ嗱:iYk+M0Bn0_EW!|-`o">Q.-1-x ţ=;)VjBfӈ 3R: T9>NÁF-h3gS#xl|> #%FLܢ: &\jOP!g?w(Hޝ-ψBag&d|8 a'hD9ՁN,Rz] /vnIi.\0A߂uU EwTB 5<餴f \v": 5~I_5(YiǓNl@?H+{揞H#rRcR~ `ne ( Lۥ}.6`ǟ{s OF&9MF;B+pl2"Inᛩ4GWّOݔ|♧4`!,l>R'=O"tQ1*")JZX Ld_t>..<u02)9ң?9]⯣{37.A(=fytwl_JmwlgÃx9bÏ7G[ws0R2twvz}M?:'t6n~p*:4, x+J4~@qgv!p+}wP4O4_̱URI( I8~٦9 Ǘ!82,-8)!h~l<?@s+f{<b-!h~ -]g`Zr)|67q#Jd|ǫ#f+Gڿ{^h,W CTTUQiFfXdP7cRAr;`˖,Stu7^h^ jVEgiW,cUH L J* eo-/+$+b2`Y I0pi^=_ k`C2ܞ\, 68{'lqf$Z2M/C%4BF'g )wK>EfilyBsJkRΣ@ {hiT S03MsF дXjb޳gSura_ 5NwS_2kf0e(="><Q 5‡yPDrt%w_&e {h Yg!:(zSs{f?Hge2综Z"FZ*!jr59v1R0$@]uڔ${]8dC<e*&C妴J"=AJ*?ѮEiMߘŸXL)%cپI1f9vPW4Akáun`XNq`E3 !|$ =uH,DCDGυO1 %p#Z:20y|i ˵JAWB2L"[Ǐo^gO;!KZH ԁ$ (@Az񦃮zI6LA;tPNXT5)QHBph9hm%WLgM,94]z!OќWRv !_R`X/jt頂UMөW-Ĝ ); ?`V QF\sh퐥ƧףZ/xH;u~~>SP;flA^kV<8hIɊK[)!Y0A06r'lFJKVqds_U[(0f]/亱pє@rH!WIS_ oq)E2R n*,-_Ku sDN(ljQcةfh%F0/weRcX`e/Dy7jƎc 0550"`$TއD*U' (6*Ԁ5Dy17Jj|_f!_={dRfhuNc0jzCa_>6Z֍x%٤ 6jeU04֪~!Rl ^VBO|z>;坍qMQDC|Y>Zn" rR3BJ*\_hUn.1k,)_lQ6B[.hU(V<&Tu/b6MD{B2-[k)Ed.Ѿ‘fFyݘӔ#ӚB23S5 K‚G0@z G(P6zF}OиC ʤg Щ@KFY ӁorX${W EtBÕX?v}`@\\>(F6P.{8,~=@ i?(}AU׆sgT- 4۞C9tć_A.u#\vA{*Df$2p)!{r~fǬt1~nc=~V|w?@* ~YYN ,ǕI<&'gѨ>x.JC}X'ǰifCpY[[dz-6@gǨXE2c1>BKWgHb>|I&]ʈ҃ޫyXԐIb;>2.ڠZBL7ኔ5t B'6btq Mi!zb W ]5؃W.f ltp>wOݎϹ]P7#䰴Zw{ =DwE26*7eaq%{SmјtB ( x5Õ-(D4LԢ8)rU}֣'!B@ D|P0Cnjuvy*xNIyt^y:JzdM>4p}C1u;?cQރl5Kl H?6D93 uX ! 5f -L*p4F&;[4gbSeэ1n6x܁?N7:Z jyvsy[(n;s`̓XeC[$2 n l>7WꦊRn;/aWR3e|"FI9_ȥ9)iN 񅶃zٟU%}qZԻ] zopnbmxPqh>sw"̥߉0$Ξ &PUt0x ̲<+k|++x$L AB7AԷ ڶI?58+RhXe]?Nq&#R啎cƪWAd)v4 w T ;e {c6 ' S~ԷBs,$cbխNX&ݏiц8<}:s,.Osy&z69fqOs|{hb[Hs"D؎6sAD+}QI]mҴog̋~F{AH8lji(լQJBx^ 8HV)>ⁿ25T>ZiNUdդE&Xq;6.NAIv]W~c)$bu6#QTգ U-/hK5RkȥR_HP=> jRԔ.R$E(ː Fp) O#Qt_fq OƓW('v7 6\8+X6d` Mq}V2:ť.J]ia!bbA&TR7*`4" a; 1{} ZvzIJn!7D _ȦKEb*EbV=V66'F9_\|Mڍk7_=*ZLhւ<~HZXc+RѶ)Uh-I3Js >ą5Kw."CeAHgt͖%hƺv5Q-NlXLaa7zd&vQڃze=cGd& 8ZmA1pA+/{'Ť;3h7˘r1KNb=rf/&zMt1ԟycqSlMͳ*ŬIKkYEZZrRDcWhI 0X[kYZfGLa3=5 G©$ !mt >-;q<)+ox!$!ytEjVmN&G _1d$׆ >ѡԇ["* *^LYd 2#: m(2 ]B;w|l54"~m"4H vD/~/1hsQ+ݑi4 REl;2yJkҙͥ,sm²>Z B!KsoFF6ZV g`Vt,\m0}wίmNDybbhq~2X17,M3d벅N7Itvd O_NЙ :@w&WO'٪wKQ W`v]ad!tviͤ,O*,RWR"^J; }jKLrOq/w'j:y~\ʫ=(<眜EѪZu)5>?-pn E#Wd[ћSRc4ՙ^0yv\6w(deP\q Rw;~ɠb&ݚ.4A 剸c2iBl۾ӣx7AT~OfD sDCfd[Rgj%KTK'*cZimșCIӡh(ePp]j:=X$Ðupoy0bM%:pOd9Dtf$0\鎇tt 5fXKf ҕ$Ph"ܡKk"ڰQذ> "يsN^#!!OlF%$-^gIvsGD3 ô3GJma\f(\ce4liY`w,Pf̮$v;Jyrn"2nΌiW v}v;c:8kqkk5;B B ;u0 +#b'5dDy=xH_#]~1itGLS D灧qpjUUm`1(uYq Iv4jύJiRHr6KVNmcLpc$ZeF@]4j*5Q_㎚K/`ؽ7F2>sd]d(;ge[dXyH;*j) Ž?R'L;`ʥ'$DBA C݊hOBڏ&=VC(p04#lceTl!e^!UU!|Qx Lx6ꔴw0i'J=j5hۿU Pj=,\l@D/wCuPt%2z6@_P㷞xn?qGa?BRƌF3ZtTG\UMW !h aLy682_ܞѹL L$(X$zu@??#{f &H+˸u1ÄjG6/N!W5EfcpTtG=}V~wGO;` : ̚Tʊ`t1 wd(rJB!YU52RVYxy)3RN?7VCO)N-sJ$^DSb.;~H?B'Ivu҉CxXԴ:M奥a5OE14Izٿ`_ STp9hʎAuzOT+DyOKD0\5l %1x5Ij޸]=TЀA섄x.zE G4TǢm %MJDB ycLµ\ zͯFzT&x٦'.3#ȸnD1|<5ķhޒsG|| !P_l'.Π~>bͲ:^jƗӻxpq7%>٩zsLJS&R(Gm]eEb)k!!*J_Ggx .ңQlQ8,* j)d*㢗TCJHc ^0U4QRB * .ݾ@ yz-i`4ң2@ðnI!RenF/7= Ӄf P'b,tg(5O䠃[,􋨣I<1gFvR+ѨϾW6}Ș]073 ѭ}ϓ_y<njP<G,bcb_ưreU6"ddp&WGTfN6;Ro=,5뉦`R-^1"ӪJ*L VqW&\?4jTGZ\MҜ!.@)fSy]d hOǏ@f_g~llwsOI<>E%mQ.B\w =ԣ #Js(l_׮qP^w1.YmG(gu!!_?e H!?y Vӆh JTcٺETva5~pkXM]~$Yy5z[_5|r>Y3ENKB/QB` l?­(ːoB6Tbq2747XGcl`,W ؔyh<䍻nS"4y<7a} "bw">^=z82?.lvr?(%]" X^Vf )mD@ &,Ʌ_U"mYRCRYJ)1 -S.2,eYa}JrE,⭽Aa\PL+O(rq m/Gwa5Z%[J/V|PM"-:3X5QwјȠ]$4㥩,vcϢDenm57n'.~-BUGbNT)A@<81MIrLMWJ =ł꣠ezC]] zIјL/dm[:d؂iY6+ro=}Uۦ[o\g;ن* ЋǸ(V(5H"NP@~,N ,}6stl{Eid6DTB"GxuxlJ0@=[*KAP~X/mi~ ZB@bkHVW\}U"6I)!MgIum4:r[3b O+ UDa}t%7G | zFԑ qhm~ JW#O8PWOIq\j,!ߓ3}_R:GNP[ <HEa/4'J qcnӽ^h)TKk:0Qoq;S%Ƴ-4g N0mThwo1פ{98N?XDur ~A{d}no͌Hs5q VIFsQq ANFZ{t"%!ȿ KU~FBdHϒ)]|=SRHܚY:Rjvy:g=Ʃ4Dݫ1~)&cXS6DÉCma&橱z zDt_Bc + Deoicx9: -kzˠ쿹$+{6?Bj23LBru_aRCO6WI62J{2U04?c'gΏh !I7@:~c)FûLvn_A;%Q4т:%uԕ_" <3(3[ -PNX-Pu2%R !ɉ:$uSez].%iAh =̂;%tYRRgA'JjHB@i5Zӵӥ$ڪکgOz XQ|JH Gzc4ͤ/[Y)0TK[P(5J~f> R!џ{a;L̍lC׀KeeXU;8ׄc2Ͻd.ʭ0q0R[85f~ g|!b .ʥ^Ym.רHm ʔ>}U0-c\dBf˩@k"6$ҵ iNv2hKG++h^Pt|h!!2N Z)\0/M@e+!]"=88fhTġU&{dIyL!L"ňl VDh-gk"0ca.]͹tʆt?)(˘Pg3.B&!,`hsRk>h:lόzmQ`i+ULy#Cjh S$(sl7 !QtJ4U$.!/s)\K*Ң@W Z&qPHƿ0Hc'^). U l5#bOAu:W$nLei?>Q&oOS105 uw~l{~B]y>>)S\Y'";K_3鿟X[OP^[B8^^yo*$"^D9i.$]hgT0^\vx*DI:ۤ1F\"CgْI81#&bUn7Z3txYoD\ο܂LXFk}&z:[⼼7<,DF][ʾ(Pi>lPDӜ,+Qߚzp8F?rygqI:n' >/vdmәÉ!Sxlx Jqٸp4 !A鳱ClF^Z^ D)OK5eCgLd4`ʘ왳9st۫TQ5Dv&![-(MWC%C :QRC}^R$?ͅf(ʋ$ +\ Y.Q09.bMϪM&&Q̰:O[[cL7T%udCJB?TkOWJ6$5 ,SR'K e7ԕmL g)"PHf4"w;+AJEkGt= x4ֵzir^mF]Z&c@cM T jAa Ԗ  >a% !mFh ])ʧBXӟ%uxDtdDӏ (&( $XċÀVAx^B gIGRј<V#LC S,@OwNQX$! Gzxښzxa><-ºE|2+DcCΤ)A睓9r4v^u0hIǵ (..g!> jy/7*#ev6T?Di9cNF5f9 \HS'JN:GN1X&% ̾mjΑoT7(7 OA%qAQ%P)!7?-7K ]죰 {\D3MGK+Av2:QyXF9~㬈K=uae®ahF c2)S@mÑk*JDҗhZtH)Xg헏vyځ~WBP(xX[bcu&&5vHP\HMаEb= 5CJjvom LB@O R?FrZU B@ijXz @\Ɉ K;ah D<ÊGl0TJHf SvE^B@AڤB\_!OgU%:V+bƪL4}M#NPq (wa} 9MDrD509<Im\;pt!:2o7c#)8Df_.(y%43|P1Z곕mgˍN r`25hnBB '* &]*-l"*!@e zқ ,H[[\Կu Ғ n4_Z:O1n3c:RfCZDCuc0#0?Y[zpO<{WL E }R[[;,-Ȏncl;1 =\D1UE6Wr^5qrC, jHgeF˂mpqz!ߗGH Υ]|־ez: W;]BTt`WsPjc$ ӃLә5?b)f ZEpI/n',{wcr^u"*l"{>T!Y_za-t3ҟ:HD>hw~?e֠&&0=;mռ)AȆB)(Tǝf)hkd)nAR>bE6*Å2Jj9g<7ܟr,c(fq&ӦEɠM =I{8ez][a6B>zzHsQ[_csYq2j:MQOg`ݐ$Jvor>/3JNKe64F̪EXc<>_{AFE2[,E Ɔ@ 7^?꼱7Qg~KFB*` ~4e2 L/[<dV[Ь=DN"\wR1!KYPrq?JptسM sF@ Υ/r#X RH#l(X$13h2t؋.#_9mѣ,W\:Th}A>]%Hhӥ쫟}Ns$o+n4þ&[Ttq{vFs0y c3?.!cg%%ڪdnEEӐ1(\,#2QȰe?y#R<1]ũP0hGzen8D=F%]/ ?r Q_E³/_"? ~AٟB:P$SRHbf<3KA|sXrQΈ~k}~W^JRnyE}=nOItڎLLH _WϛE5? -itx^.B\#3糩ӟ{|p&+zi yp08OFj]os~^iku}$fu~5d<?mbG?-fMi2 SlJ+Շ"g Dh [ilMiهgRؠ@2D||Sڡ2E)m҄LځB}W>I=̢<ҎT,CX0B5oae?Qѿ%>럘HA#B3gz࢜K}QE6"BMB/:YOwz]U %DÓ (.z$X]}z]"DBV<]g>%q_̯ "l˟S?Rbi=mtGf8TXm7 }ta:mQ0D}YM;rBB-Ob]d;3M/CwPuɹPK- P }8т\g im9D%/Dm94?ԖV+PFOV|$xǽEf>HD;\^;D,~|Q jTEB.%I->A`"WCwܮBŜ$O-jbn3$')Nm\KHxoFFyүOUaM\.^Ykp3^b Cglu%>_|I*Mm:x9sux}fN!@,鼇,j02p:+>â?4ss~.|9egw~ $`s8nP0[i(MB;EKfв/0gU!yc YR`a,b `e[DGheR`(ȧ#VE<=ѰO)mt>~rF5_5d9f2c޵K`k#+XGn#^נaq}Ԏ/N8"vD89QJL+&~Hj]˘x,z~|Ԯ^RU鴤l oEJR]VTx7`-Cۿ"Ahz|+w9d X8%K O-( Z%꧃^qx?p?>}b=ip]6B-۸d<)2]FFˁVzvzIazܜ֭ 0]al2EwbUZKQIcuB@R0 =0ӈWCGEԹM[ l8,x/ tKlVZ5:ʊ}/}o}~q8F _/LIRJKjsTozʻsE1,Cp$ B4ܥ-P.]wr~Uo?ÏfJEA8J ̔qK7̢+O4;I-:5mFMS f~S7J GA(`*< Gx&Nޣ 3%&MIAߑ:* MAb_a',O%Kk&)#sN`[VQ/2Aov^ZHOpC_?3iR *Ve/;-,_c m no#zkQ|ANa5BMhRJ3{ep#,""QϞq?3JԢ@aUHkBX~;y;ևt? K=|oE_IDeV>jCUK=u;ůcZy~l}}"t$qRIQ x&maL*$EY&XR`ET'y[O] Gt$-)j;.?ZZX2 %ߚu 2?5!z~cwNhk*NmQg0iNZlMŪW`q5qZHvJ1|{*W]`DR¥/+Y@>~yA 1vJA4\!K5D=?2h{*Zևɠï&SR}573⠧~H98;Qz3ST 1 zqx> GZ A% 88`T}®`Qˎx;%4 VS 8((FIl>)I܄y)ZA jrT` J FHS}$e*@,Nt6KD4U.;4evM(C5`ڭf^I4k[$R.!wZCэgSZ;i7L~4#iuY^Wcׇ$E v"B0LF/12'^c FY9jMhI ?׽NGT rɲ'NdmD٬UnKCiG'Œ#Ku_ӟ֥:.GXѺ(.GrOg'Ѻ('.Qˍj׸T~}6oh[ps]Z&a?ޕ'#.{]%D%E=ά0 J ggB,Q ZDmD3i6Mg("7X0+MiIv e\T5o("OSLqV4 tWҮ+6.#K+ -$;;B2UGw$Rjꈥ^N$Z; r"tcC,Jbd" 1:V4Dof)BU_(iQSnΊ,ΥdݕhR5oGw{旖_sXWsa_Q59ƌxmѡ#w(CEDR\ۡ gkCJ_;JdE2ZVį)#:WgfxYc=N=-_x6cɸƔځXj5t4 X-9]UaSd_c:VbN18)J;` SGPbu fHEx~ŰG >JbLd¡{eUn Gֺv9dUqzk|{J5Aʏqz}ё5:;p6X:t 3y#hD0LAB*LABisє{hH8 |SH^5 b[0)͑wD%F¼%CHJG FFA鈡##ty(1t@Nj^/*Pw5HW+ Q kS퐑rT9LAa#|7L& It& YJt )\ fiX G(02\'FIQPFᑡ5Ƞ'<ܕ `"EjRY)Ը5'ȴh ^FM͑f$ZLW߱U U]E:Hac"V ? .a[ P; W6AÉ^&tWa]H [XZ^^'TnVw W!ϹX(Tn 8>qZt*TvdnGu"^h=Fr`}Ϯx1"_2ؑŌLL %`T`#,9_%4(9ǧW23AC.GL^HFatx,92]Ɣ"S%>!Z푀ƣr5wm1cKlnlAF# 2ְ1YR% J?&r~POX NdN-8rM-CzX?xG*aQ>xv4y؞A#orlS\Zm|oqi)9AÏx#q>k׍c4 ɱ9!96h9Vcy$ٲ\#Hb§tT}Y4QxG'=Z.3ࡣv^܁q3BcH5RA`+UߖZ*K-?bpGT-9ʙZTx:FV?*A΀c[ŘtԪ^Ӊ, ?[Tfyg֝))'oT#<\h(L,:ߛqȨd ό3ULÊRk-.@(d`d|^7.X/޴]tqy,9f۱wGpStOIS  c@ Q,mFo^ÎX0QUs)ȏxkIj*LűUu%=hN]_+A青ti:}T҃S씰W\Nn8=*Aةk\ilu9h[T8.@JS; дT;J*Y֟,RYRO%+NؾQXl[T\u1 )x"mHSU߫@@ltPLcRκIyltqvJ4F:.i(R.q.8qI8%kRrJ_QZ\ 剖%7lԳ])_Tg:tS HLN2h@clUB8gICvkbJqS78qU'%uLA͓!NvJskM 7ҥvC4rYg g 3Ta+EtyR0HB-BPG]]*R HS(,}LPA &)R23BSvХ+4Mye-}X&iJwy#JZ˴s:0Hk - /exBp&.D3h2K9Ky3i42[9Gct|*AgXd`*E9 bd>늃?ltXahtDԩu!6j.Rv|N Wt;VHIT O6Ky%prbAd.D j.T.:}VxÑP2Mğl8-tK/7q@{0yU( ]t;U!OSʕ_6GJ")߁ JN)t3ڟs9t &p.87siq rѭ{s6}͹sC s}8OwpB ;9A2ra]{st7vq?-\)2s.s΍@suDqnsrn0Ϲm˹ɠNBMKbh6rvUp.B;9sysqnŹĞ9ܹD87ssOrn0ùzbF镵aZcѲN9NhY*Wx2MbB*9C9s;\:¹ˣ8K; ٜ΍ ˹+9O8s:=Ϲp {00@0b2z+*]M 9Sػ!{y.ː |fcZcꪠ׾ cZ]TAְ K N|6)Aa7v,' w7G3bC7pL}hb^DYգHmX~Y%,]/Jx/ P ?⡁}vEv9IR,DzDZX[3t$)Ҩ0'CQEo D/@=^>kן,xօOe0nL+ײJdplrq!Y}Fn XZ7rXT]7Jfu!k1 Pi5crf3rg0?R}f>>z=ʾYAw /:JAz:” VBWF7( 2Ed}U9+ 8|K(Jnڂx(v;^P@(vՓԥ ΂삻Ԡ7訦bAd{f@cQUAm~Ԓ{Y}MY 3|0a0T2@5^(sӆw@A[$+z|h=2ǘ^b8~2Ёbx~ܝL]}k,L BLWڊ TvQuBISk3~+FU0~//{[zQ[Kn#<Ҙ7 .*K5'^ Eon>fB> #3Q64t'7IJoWBtA/ .SfK)H{#juzUU~g{ /a2OT|d 6p #Y.hdBU+UPT.\m78~izWYEZ\})I88Wrx*сʾ;!zfR OeppaTW{xk:Qie?eʋ.k]~[.(Tݰp^fǷ^QD2;>5'Q&W6. :F,e#P[cĩ,)@B{˫ `1]S`::+u=1S8XΙ̫jάaW:i 5g茲;ׄ+rMpTrBzK2uF+ F5?ZX1VWw{y8dwשǂf^A4?͜/vxuYj 5Q.Q7cV\{~VٸT?d[ ԅVHӈO5r~e:0WܾxNkDkCcwu4}><?TtrSfTJViR"ʒ35VV Ac1z)rŒꢫ^YqR{Na^ʚmX,]j  =XhC_;X7F;A_jب_\K G=rՏ>p_FT(`EqVJ+"jḰvdظ@5JuRv"4T?Etp5%,&3ζSz@<ŔudIU2>yIaqA Rs[[)B#4,uvxnUwmoORbM*Du Wh$ɒGmi$wֺSO:Xr۱JMH~Z}YsFUwƎdd٧aų?2#H(,ҦuP'8*~hY",6uɲ.Aai7,4zjDb[ZE6Y=6Fty muCD,,RQmji ; ٘ (:ve`N.o:A.P<MȢH}԰XِK.XM@TTcP> p uVUlGRTpyIqSۗ'Xk6Yo\xf3VfzR=,[o`|3"C鯘?LM9GfTU;1ùH{y| HX)@ݧPم}*O)~#vG!.JM_s=1:Ex87*/b?\]ᶫUG"]Yg+776P 5WyxkY~T˓ƟwE`fU\볇swsˇ*4d ap Vz~hk"m_YvRWL:\\|& ϏCߚwR fǽK*ڂ,?'S6g,1DݶF`>&S{٨Ҝm: qPH]юT脑ZB/Cտ^tK}.+U^ ꗋݴ.H*G!3aSp #렠^pOX:|u\GҾQjj:qaĽm Qvt}6JV):Yr"`g}9Uj|*DW-NLRh;F6Y< fW<[)GNmV5Ь۳|YN5.0Kgi؋ehnnTjEfYh`/и5Ų>)DbY{MY*cL/' .U#8cnde^٥1d5F2< qJ7SUR4&@N衅f&3;7W_CGïABsX;8$!cɢCֱc55,Դ3&MQp|wI) [2*c.@pɦ9'.!'GXR ~OHC}&;WSuTI5(Ui7q^Pl46*!d&gGI咦]iGSf,2E]/"<^RՍ22d#}NpګǕ(|elq Jce܅DO3% 0m?0vۄv.BuR&GvՁ"uV .4f=AvT4,Ўk4g螘=/1Ũ[qzesO I%vJM~2ן,* jhZ MbM tM|)F\}ZxfZ;[\8S#3gL Kt KxOA[z1xh9Joିu}cpp1p8FK16_8YXb7S(.e'fE)a3/RUB|2>3RK }"KИ076(Dw'BR;0Ԏsӹ}ӝVNj4ޘS mLy);98 ЭzZ_MN"PJ~:@Vf;R-in":Om65(o>֤)+} Xi-,m0Il(8ݷ?ۭcl46$!zW1Omja~;z5B/nKZS#l t d9t p`^\EbLivY4+M9 j" ]>9C>j]U*7[Iu#e'jsĽ[{1Ѯ>bN.n|$;Y%%C;8Si{҈J +/MFM7ni+ Q7 {0iS>" 1:×~a3/ҳ5d&btONܕe%d;aԞӲd,N)Ɉ)=4_ _ɐK $M6 e (.Uzo|Ǥ}cl@4TKu/CPB_/tm^~ʮ;tw2v@I &v]l*vcQ/K w fAd2l(FR`/4 2M`:ͫdސph0fHH!{+czO^a{YD94oi> !Ti?S.E4sWHaO8'6^%2tUݕZe7/F".)e,9V<:w@_g S[QC禬Nl\[ɟZExWBc(o`Cvb f:]5DXi +K)QnAp.YE{w83eLTOuIeg<3 O 5M(fU vpZc;'ekiGwT` %GIx ^[@%^dy<c )Z<і0S/Ve6tdIsr*dX=\Gi^GcxǸx ƕ rP*xK#c۞%σ<}Fyj~Di4%'3॑jv%F7h0?͇ViL~s,`8d8rtF|[Mor!,D -*[gjBu#:mR# |SL)} K-n pHw,Zo6FUةAVwH35QUR zʲJB+^|J!lɮO; ͯDO3MOXƫfԞ3̸KgoeFwg,#Yw60k7,k:[eGI ۞4^yׂJۡ5BF﨨p;KU/=՞&f~Q%tAɂնk& Wډ:g?B=MrgT?4j+n^*XǠ5v^FUl)Nq%Ɨ0>Ah\w%ȗ̡̏mc!0f}@:?r=svO/қ!;ό:hXTu:io BOϸvy-/qIt]e;jdY0E<gV:z<m/xa{a2F:ht;u;eO$Ь̈́O۩e'HԭZJ(ςtFV҃y r犗HZAD gZE+1rW٩SXe]D>BHVjgZdžXqWu +2`C,+y78ã !ZCwYUoeg]kKLN\W&i9Xc**f7y7Խ|9f#ifkx pJe\J)Qg><7 nx]xFnb ;w73tNZv S08)2jz|T{x)N+o9y2.W3c^N挵whNY`nQB;ujkxӶ.;Pm]vζ.N]7lBm]h"F)E eH;ϼI$x.NJ^@n7K5nW78J8ʺi(@Pԛa/P7" z➩R$5[wpȻc&=\1zżOԷ{6a17lPgCWs7 x4śM%_M$edBJ_f0VE/.M]W{G Uq I~:g'^~z0!I LrQaRC}pf42,0uc &pѧf&[`~ ~a8q6*JU5I L}g )Q$)88 ll;uqN6SU Ah%`qJ^$aͧd*D UOX5֏QKLcTznޝ52PJΓWz{ 0= ★LQTp1>F/~lnJlh8x&4foc8>st$)ؠmT ~Tn4C 3l37jc=͵WϳaJ7agSlTa7VS|Jo4fv\)]Jʽqh荢rIBf֦?|r '+a-v©rmfɇؚ،E=[$w[S +}ԣ ft(\hg: jTܤkF1 j+Php'~.xshT̐z- YTE6D{d[TWwmѦÇz>v`6ƾ5WrvIʝa&%&"$e|~i2 ܷ֋$=`cJ:O [4ܷJzVؔ; Nب\PDƗh_Zbbz6aJ16T"sҷdj][v= &^VN6y?@?rkӨ_g&;.7R)ŅWDoWPxi)d;J{BDgz(*ھ-[O nd2o!IAd<c<5mM+aS`0?QC ϑ-fsne"u1uiI<k}E׳+#(躔܁ItvGX%Mqo]Ͼ| vX: {QTHs]}JwxW?岋2ng?/٧SGk&Q3}L/+)\Mpnwv뵊"B*2amn's<ͯ CUuۦ78pӡng@h{ 6ԋwsȲ4( vh ک=') ]b2nf>$)v1ObR,)?ؙ]!);5F!w̺(IDx7Z৪d]PGr;O~璥7z*7;^Zu'~oP7U?0?>C ~4=$٨bՈh 8~\0 ߻8VK=T9 ըӃz_ODY%ٜ7XKPPvT([mx!bUSJoAޠNGhe@+;E&~ċD4r]Ĕ 0*@eVĉ* :ZpJ`8H$Oب-ʐ!`Lntيdױ")׃ t':A(5й*}Ldnd5̾_sYI ,agTÙT%Z̯'ݏF-M<<e1Y߰ocQ@@}#-t 4C}k^8 [4-"tO2mn^G4&'y1bDXu;w[ p4[ 3rтuZ2e `e_=#se~%! 42 ]x2ɊS!KX` kn^;bILV:I)TdRJM_̪M&8.-I^Lz@i0桄D|]\ aq 1D-x|l&gLKU!(wfQz1^|p,|7axL@- hH&Q2~]be>B2 QR7׍QK Mo}bI'R4'&LR(P5j0Pv>sj٨RpHvKR&,pr|&)`tX !wJ a';dE|t#w#J?rvIȌV1Y wژSHSƋ#Ay V6YZN+2)!RpkƠzѵ0t|LJ/.w;F&"@} le  |3Hus%3'Jy AK=XO34YФY_`K l73Dx'RPqu#DSǾBxzSދ=KWCQBc^[]ShmZld-~3بHqҧhOͤǧ4@%^H :]lV)RS8|k*S-5<.z roIVp =ȇ͕,lg9JEEƍk:Ѻ8|k M.d3V i1_vN:/KԞM]7耘vG473y)b`UnCӔ1~hQvQx4ΘQ_H7ƍM͚pqȿ) |8 ^Ґ`ŭ- zdRz r j wT-ȸZj}5'^WʣU3ڊ3^U'!!KUh$EE'>'))8 F&Xpz')ásKm"tRsR&u[jx`f*AOJmPRzLQ)Kmpr&uzF@~Zj@ӹF})&LbS ӛ*%o[zLo.TsdXTE` fVT^nLz>#tLv*Ӵ~x{lxf8 |"z5[ pT_Uo(C@i& B0`Є2T7NK\FOm5c!: z=O(QVSfwmr7"qXpp`U?P<&^{m{LU|&.!*ӅمG23)eO2v`tiZ OH+~z9cvR@)X/)2G4zK Z /,.'襒m0I ٨|OheLQ(0`,bӕ:IKd+")MlX}> l;UsQcL/UJnceI2p %K fkv0b3@( rNR`~ pPn"5k:S 5 85t7T=rrD#I|wW?< 9M̳Rd!/C6&جlH@陔jSsb 18F+ͳTX+!ϕYx^Vt%=hV&̤NgfR4YLT-i?I]J{`}v2h@Gn22de@lh:ae Ӳ9\8͎O*vP?:@%Ϯy Y~ј-CrŘŹ0e6 M?М8FgRS?:sra*Ia>9<1Y,`xBQ䛫%6֓y8>˔%82p^&Y+t{yEӫL>`z |P@a1mHHɠL5*|k T7 =1KF~JgRzll 2\`=EO̖ lä|^/>R>SRXYɎ?O8VJW)eE{%b%^1x#h j %.13S HMnxSd_+/ݎxlI鍀!Oλʾc }D /;̀aP_`!i jd&#~݂MӋHqW5*Cn+ @Ѿn"jquK+˒>c1R-Ga'K ;T\ #ծbLF\(Ca}&=xK ߰D:hċ٨z:2J +ޯN:?3~U5 oLŠ1z6Yco y$yry׬`tZLH1̖ SswnѺI˙|@_{P+`Q J l(ueb ؾ&v@}?sМ:jvGFnn6Ze-cнT9 y_`*>m ]&' v0~,#^TN=^GﴇI'O@*F &Ŷk*16vdaH}/RŲu1& qS={1?4]]`~JnYW?D~dZh>4B4ͬyFYuoM}Va'K ,}KuOF)> I ;BR`D>á=K3%,ԗ{9,b/ǟe%XXM#‘.GX G؛;_n3Oe:d@\pH`C\7]0FBw|>Iݮo.N,'Et)=g)Vf93.{)~\7%~bbI#pe~כ_V$!bqmVak5{8t[/2Sf!jiVD[$61.sh6copmδ dކB1ېH[JLggОUgvg&]]g \6KWwMM ދI=|E&*)]a5-/=+ME9֧ǁg2O=V .)ѫ@X@9>3FdRחۈ:9F le|N٥]):z`#N+r6Y[ԐLIWfR@mRJ"HUFU0$6,)T U$#%>[R`" 'OZo+'𱃫&بFe:vFW_+_Qi0 ~?Jl߆9."ÙӅMA{kaZ{ L'WfR7DFMze A`Ϥ wڠ#)2<Xmnm*")ɯ\6F@RDX5;F;(UDM3@Rc9qyBBR_9?bϸ2+tboJ0g^ g~gg΄3ⷽ7^Hk͂rp`ূ4?UP%'B~TiX.)Df(B.+bmBPC(h(V[()D)Ia%6\[b7hŎfRb 6@kR2 )ָY^')D;3-p2+K a+{A֊,R= )s%zR, $)ߪrnpS^Z+ۢXc+"x%0žTIXmJ .0Ś @YZ%Q=!ܪDH !RɒXؓ 0ZE@bG)iZV*%b\R`k])/ȅbX`-؄iʆ; EC[ER)VVI lbiw*oA.+@Њ5ط(RJtRhVK lbKbB.N.|B9XtX [KR)VI V O↻bXUfӴ⻣)wNy? [ )rӖ)Xfjˢ~)TRpɍAaOX-Jn+ G$E:MѯNxObcP4yUBtH?*l+V|Rȅb~p !PX}Q EC-ݭD7K !NߣeX}J} Ŷ{bٍ(3C,}FD/MnC Ia]н_ɍr/r뉔۫8/Cr~V%6\nڃJn{`"ڧ8%V&WTj݆Jn"{#Z3ߵbE)vU(?D.Ch_ኵ=K\(6E&(aEpLWEOH:=S󓬼喻@2Kܲ@,$) rK:)H _tK-z=Wk))$nK|쏖6b蟕cBqa_*-U*-d^VL*wHa֋3VF>P/kaw֋(Œ¸!ӯI5k_}t̖6O$Ø9%iU LU+JwF2R耥j^-' ZW Tóٲe#=a@(J R @0Cv_-h^a9֩I):h9F+5XU~*gHhn Vy|)[s%4Ε\*NiWRj9lms\/rh88 +"4w0rhO֪z4|#t<?B yb@ӷEv~ub|Z.)2Zؿhl~|:gC"!wI oC!/wY9*YY!X׬R|?x D|G|/<%Ntqh O̗~qj fa!8AtVR`u\ΟrO^wB^&)܀0g嘚)y#֨zB k4LJ/>j#cx9( nPtEEv(i}vn`U@UlomnU|| e`.{1H`[W0AԞ(kD-"BREU%)-P:[\u- eF7J *,5?+$eX4z5ڳP 2;H ?p4' 0H`GtSB}´!o!IkdV}5<6k\nZ&AIaxO-t ʡBDi=z㣨Y $M"!$a`AHX%CI$3F+5***jPpE%* Qq7*׋~JS:u=Dv?ÈV5h6TqU?,5,jSWjW9Jj)WjEvTppu"Vj{1Fx{>JUlpePh1C Q #\=ˆR[-x+UfExPҊ_QhLExVD pu"j:{127ph3^6髸"c?tNݏu:4|Z+yLzj4uR5sv;L!929;>װwB*E5dkn;(BfFX-cDI (Q Xtnz}:~ړu(k_+"9~e^QhL3{]R8~cDҚFD72ͥL*_xZoVk!4>. oqV&nR8:Z 3B{P`ȴUÅ6(kR Si(SKZ[ X@ʎȵ ZȈ޼NoFCY-uDaڡ|vzSRVx;_Eݡry"fo {[ {ߤUZXV Psn*,Ҧ2+j[QgxM)8D$w~(4h5 #zo^bC|s!|U&>kky9nΥ̶'I8›Bhb*9ܶw?2Fi>ZHwBwfj +^eonDRt㰝OӲxf2T)x&(ɸ/'v9,Bdl׻ q3[pYF1fv -6\0;}u4˜?(kcv+6Zj_#:hЄݪMh%XЄkbaK -&4MԨ$ڄkjքzu2.0+}/9kq[r;* IJ Ӈ]צPۜ79"=zEp6|S`M7tӎ.^o o-[Y4Yon?YB7Jç 3F#f{Y܎W4:n`{oGSlD|>E"6E00W5 ?ZW9 syWp^K[-gtd(؈qVf l^; lEr~\2%熮8ySJ4#Q?d3t?.˵Oz/ \Cwo}V$j+Y/܅tS8h4Yi.DBƍx": WO|0Qp%J>-ܯH2QeӆeR)8*OH` fԫ?Tw}jVQW8E]xMm* WM&ʸaZ6 x|U`2ol%$>-vW=X%M llJ3^^[\CvԊ\bllj bT3 J1UDUɨMZ?8_5=J6VB[nT8e*E?6ӼJP OP󚔂)1Т8_0=G=ܮ9oBK%tBQɌp*bxjrw&ɕP\JDžeZ4E)ӅH5AߦyJ; !G*.DۧgS}Ѩ9; hﳴW$* |աs ծ9VuʒݯP9TX>R\ANIͦo⽨k=яIL'od+8GEJj~lT KhM6xoB2o"(L?&OWxWH`Mw~z=Y.m/^;Q}9Aǘc4Kă!GwyKlR,&M]Ctޡ  VqINpy~cd1oR]Jhu\r)vcwTdN Q՚ڤ K&KJ}kPa^5< B+C"x9>7UXGxm*wYjk>rR[GVHݶQI5{O8BG4E)rG%[ELb~ԻfۮzKKnR+z/6SسErD)$Gkj,B{U^8HH6VDG1<ᨈ2QH)TGü…\;ƏE5 ` U-b ,.-**(rW\;O `OA X2,}hsc +DJPv!EJk[vۀgp?lZ-CѨW5J: _NR\;vصn֢ 7}][Y-(("V+E  z7H+Q`٫ce UzJ)TGMJk{z6`"*XW1AѨjE.PVQ'W*EXl-ېn֤ `?B: AS"l#>35AÆ{21Ôl2´/( }~U)7퇩O魊UʾE) ffm*3TdV6xD2%>PF*P`_u_}X0(Fj: ҏO( *ED+mV\hP˼yfZ6v:6gyf"F䯃fgԺtRZKS "=뎵jn5lslqkre;I#JVk`)Z5{;S:0FA,#ZFÊvHX= k4 ]#&f<5>JD9\u|DS*Es˼DUle?ffqXP.+[5/o՚u( *QlJ^˺X4\fffuwb05?k,03fZ5..]Ԭru-⭻[[ֵ ;=au ,EX.qDDFtVFt‹Lw8,Э(gk2R/`|iХ n=W'^yQvM \BbEk XAAw(EDdBA@)r^Z)2mUr [:\%ǭ1u:fRx &#Hf{&xDMQ]ψ+{R 0y\Dk(oXZyZ`1xI?Q\—4ESl0 ߼S-:2QCޫ/ ,%lp9eƗu޾SE0ܽg,4DIq1_蛗}:pBiwy:~Ӣ:>rtRX5]%mnBl`{gnP#:$¦oP#kdύ ިFV϶+Q#_)j"wߌ^1j["L>j[Ѻ7K>G ~:a[sra[_PQ /~K)jҼljUs,]@W"JII)p0qDž%nWjC>#;`#M˕}R e`.}ֶͥc<61e-a]$>dl+鄳],x t¹,'NYwu9Q@)b&Q횚,\Ոfx-YuD_e?kM<>+ ׉ O&|˩r)Wsg"&W)?O<fct7fN0>FJ햦OЩdnn1k]' wƸPo"v9|n{_ϲD>3;@b-*m2/V szcRp^N6e-P #ZP9pޣhiܦT2-X1VW12QjwLtXoIS>dZj0Pޟ:P6с7i=@^q4lRh[&նeﻥpJh %Kd~M[fL8Cdԙ7Ѕ:SӇϰeZv3 ب+55^\u_#fzz=1ww2hr61!tc4ZMו Vײ>I?* j ش0=F\JT Z?8zGwz? z*"5{=^yy֦{}g|}Q:Ocg~1n4``KLW4?"Pm.ٙ(n\]Rnd咟%7;{]t;VN{0=Gʏ~.MF7|'$ۭut M)I%A|ҹ/#.C\,>Sff>ղ%.|epiԲ*,ygš2E^<\.RDl{el)\G]zX(;(vX\Nl]2[:ߪrەB~RW"DD3~Yx6G 3V n[4ߝ: |rݝ #)BGl? X#EcRtGj(Evuiw$Ǧv򷉥6:Tz~g.ȵgSk7ݡH5)g e>μbxܠ8͜|6shޏC>g?-iXG>Iym$:毯+6B0}LBZ}n_.e7J5 > e˽ GɺYwԝ7s48C/Kog+\r6LNEϺSr_~t&Cy sAΛw**JTCm"x 9t?ܩgm@ttBI4cu6թآk3W 63RiVc?ݹ؍* \dۉ pBER䪋V! iR{iwiɥvk6˵nvZpR? dS/A`@6 ZSfr/<aoNVJ-R { `eʢODJ6[k.iDw2e*"0f̣@>YWhٔٶm;WmH -}W=w!| `}ΐZ5jvhL"WJ!zA/{a9{kҬAsMHv'RB4 )K"W!q%5!(E% {NZ=Jm8WQMy+&7z/Ғ*!&kc+%+ц soXda+Г®jPͿu"}  L@fP'T?M-Y=]׵w k,5Z_5E?".M].iYߊ WD{8(٣#_~P3qٜ-mC w7Q2'*Qj:U#ћ耟bk\a!c؈W{TBu&G~<j@q-idzT2CKsK 4 zW0;DbMG:Qkퟆ6kfhvWJtݸ,Ra!nAi>:^c%R.?2=d:_!qtӍcׄOjںWmSچKRt~bgYik6HĪ}jWJӹⅩ'עnW^ }W6û':6:JʲѱH)B<VkjRjݛHW)X)b4ʒc$427:3_:$Qa:~65E/&ȡݵ[hVmD"Nl[h?F|`u oOݵ[W=ߦvG2(Q T\JLt9M"ȴ&6T7q _ 㛺7XC}:*S.IԙuV?ih$~R/Md5?Fə4V5MR Ȧ7{w5^*uĽnqnSi{O|n lRʽ#.:.ӻ2[aG9 L;:{kS|/o3s3ͪhu4Vuj4ZMcO4- 0ݘnl~-Jn:+eUwԉٽUTz@U=茞JGg ZK=PNܲ!ZQV( +4Y)rsmARzR3hɺN:#6+n(9Pt-w63ĽM 6U,Z7䡌ԩJEkXvx j,Q 룾٩ זb\HD{s6G<ώs0;8Xv ]wvOGXч釘ݳ*oS kt@ꋽ\цkH4#v=}p7ptp7+觻jCD(tO;iڔ/UזH"?Te"v(9_в[ ׬o>#_+*ټs  oR[-q19Nnם+m.!KSK`}ԥpJk >yʹڀ}ԉV1S6aKoP\ӝ+av> "GnژtrTz6jX~Vu9vF*}+ 0슁ZՅA0ˠ9uX("02FYΞ~2K I~h|*-8`ЩE낵t {U G@}AtGhKRz*p 9O⇝mI@4CECpMX[`Or0Ǝ+I{ UP)\-2F1Fl ˔,z!QL*aܦI%0#bԪX'cJ`D?-A]ÎA*ـ%M `S ۔fIg1mi /XS0d#F(:|]s|;H_h(b0,zfa0a08زI|RXߐ6BÌ_1;ۨL(~r-펩IGJKxDЊZ.LG'wH0O|uHG"GsD.Bi~Cz]MxBdJ]P!^͵L'@f /Y*&;(+_LKFF6+E.=vl**eJhJ[<}D *Em"1|sU,p&NJuJ%3TrK"W1s+osOӟNj@ӯDC+Z"i\"!?\#DC0̷f=\\=SO=҆K%jg y#Ȏ yC<.ϫdPGha#,$Q] *"̅6}7"BJ_3ᶝ4.>CpU2rjQXLX7@°nh?)XY 2jԡrSиE}|M;<17c2pBlo>@0IXX[1TH.f4S rz?e髜w7X~\ZI ,Ü8^BePIX^ w sA*ÐMiO3 /MC(8 4pb$,:6"F(lQ4iL >L[3z8Q,o Ԙz\+\HsH⸣{H[ZXqv4\p\ա۔ju=ފ= POuZrm;dƳ,bC>eܱ/\::/]K)-ڷ.;/Ǩ{_nţ#JN^nmv+FO<'0Xӂ ѡarbT(ǻxvѡקPHCY5QJ# 8E7;B–0* -lcG3G0r" O !̠QJhMRpჩt#5CȦ'4ylg~*'(ې0굱*N:X 7Bsr'{k;cxi( ~gqM+FGr$qӳ# q1}H0T9ϳّ#;&'Nku*6Zh/bMTZ:PHL柳P$$4q/kզ#!TBݓ'`@AlG:&&`u%4Nr"Z<݌lrޡQBԥ̦%8hf6m(P3iGIlclcH7ƪG%'Q31.vS_t?8ayyo棙c>v{%&:*pDɸabI#Q4DHN¹M| 9z2~4aJqy.T1[ YH;Z;J]' E5$'i[~cHpcYemD`\]BLFF2q GNP,$5eb U .4s&k$dgWV!=1C|޴sh/*fBDȦ#xܚkrOw>ΜSYRҮ5j吶Ad߭3ii\SƬ+hTif(CZTL5ҚXXP}u|xլj\^JM:9\gV< 41#q=S>b:fs:J,E-3 {T=d=dy-?KSv8:b:WXigQ*Ke媴8oE`tS<87cf $gxL YqX޳X' zB9=no~q;[ W}i@F'H`žwcP1=x"@ !|z# ?+sgMff^-9JaJ_,3 /:bəw #Hqwƾ0./#C˙39ZwoIj*շ{طG@WK= iϝKXAx#98Qt]]<fv0$ptZYgb$Lآ۔"ƦE#6QYF)1_75DcrP(dAS"W5:jE,wQ.t JDpFrHӪhNMGkge1rJ4ΘFM+&EӗGJx0  \SI@)rO.FS+0A곱JrsyWY+8\K{a!b%ɼpX},A"!(Щ 9$%[:03 J 5}kN@ Mע[,2?hsl;W@b0B#B@*rpl[J?T{=!r)io>yŔEj|UWNARxDLY Y^Kt^E2:}:ˢN鍌5DU<v]*DF8EVs)za!]t 1+xNxqjQ;Yr3]fަ =ܕ:Z3,gs!u5畎6p Lgz oc ^ ~ Jx`cq(4ta4jA *5]sF 1b;؇(evnGg]8x{^.<;8qnXꨱ%Ppmq%wo1!֐21c9;k_%:Xgf]ObZR#-h3+sA S{+ ؘ쭨,l[]QÊG +̟U2aޛ%ڽa.-c%{ȥv]Z:vntdyJj>9fpV D.L:- @c6X{mlt|uކae=f&ݍ@Й. T9>չJ K! LK6z6x ^H'njPg>fp Vf15c1Ok[ y1mv iv hw}b؝޹8_tve/:ql Vf^a!0rmdlHC2hḎ6._N23#X0~%T #,acKƳ0GY٥œ8\&;S tf,8v*Mi/96,@g0FPR:f\-"C}Z1 t~` c>{Yc<_`ދ~wLAFfsޣ/wdab,GulN?ܞ <>r{s4>j9 #cf4p s#Ø5$^Y;t*=&KSٚJ-z>qȱx&+)-eO;`U^*ġ;Xh'vR{B0.@(=~cti5:諴a^ǸΛ4_19  1XբKo#+Ѐpxe%cFS% T}43,n)Tuuđ1\#D;Cܞ3&%,1f1 F|#[CcHI.c҈ *=>o¿j-Ήo])7a %ǕG|uވLW%$wqj L@m5jgLM;$Ggl{YJ+-'rJ|LI8hp\4\v&*VT$%?ű P؋nvRd_"vY*(%]#fl!_nLU!JIhb$KLa#J)%uoe+|al W؞Ğ8]F6bgG$49:w8p}Q`-/2E{+X V9'\&n9|#4>b4PJBg1`d~|'%6o̲'\fFì|[҆NضÕ7R)Sb`̒z$,!wLZ_YԢHg#J#8LIWF( >w) E-h프?lo򹖔vm׏guor 0ior7=ˌh?]D[ZDɮ@0]tʣYu~YUc=!I(׵6Pr]_IT'z{3niImv&s* _3sT!u*H ;6PUeU"GY[o2/jt0w-QUm4 c@c6;_r_e&ԇ (˓Oa\^@˩"$e#G+c=KԬBap.W(_׻iG .G{Mx7u(a*,mЂ4-s+ ݔUΪP=nV<1y=QMڍn:d޸l^CeZjJ\CWPksJy9Tuݵ9!diQ9כr aAa3@9wM9*?*bTc G<.VH52n2Z!pJ>d9zҸ3nf.p!?X]PՃFHL@KZ"8w*mugz`lAA>KB>24TKJbXssd{>xk+: 9WB[BY)"ӵ9t-Q #"l]Co^]`[a1]̋^t]W _OpJzm_dI>JtKI̓%u*PUQ##kUrF dH$wM.;/7"#o:C#iX]"2otmXn>: )aoe&! I E&8$j5KJ:)|r9^j}6FбSג}su=?b~\Q χfzW{C s7\Z_Yk_X"XBĹ<~_;E9]衤[{QP+?^хVܙ2sҠWL[hzgn)OFq*YlcFtz6P<ar֦:"26qw:O.ZZ*:6^/kJ)tqyx_1$'4mRLCK{o, ɇ8# qאஅȄ 澅3~Ci@ؐA|{76`C!Ǐ.Rfik3/LR22|Sx'E L׿<6[+Oe"Ca\3iFBDU~}u&C_Ig_Ze37҅(miHЦ Σ.ݔC\題6 Wy( ZGsm*r5n4Z4 m6G-AQ R^FT6݁D[U/aQ˚TԿUQ gJEe* +޿^]vG\6:]nPW\{I`r.aO?2U%]Y=qz̍f o価\ I"ܔW8=/"Ԑ1B}{SwKC-O`6oOd`>7Q52} ?X[`0^TĪ~<cahE]BCiQxpӣdhI;z8Vw 2R}h ]KeNi5t9roFш$]lsbx#'~ÉHKBrmVZe$t >6Z&.v$A˽,p'feom3R0xwAqQRx9ffNmf⋜_$&@/y%JQ(zQ%Iʴ@) uXPQ?~?=u2~nnʡ~k OnʡfelܔC3=M9H32I]4d)seFddz2^ؔC#?w ϼ s{ IqF] 4 `HM6AY@׻!(+is7&wa3.]*krXL*SJO3i(Rcd,4YaCދAC\4r<4=)Atc9J#6ӛwa6F(3 P swZdϧC:pk=^iz}Z8p O5hr f^#Ú3U U84X닌e A)u9I&cgWyXV 󖤙'o\. +,McDEI&aT9q,aEgFv/9o.7/5axҴt <!*|av[q7d _+Z;! SA+H5d-"`^5Wx(dw/.|W^Dݽjڶ’k" mRɻ&4L>\(̈́W_'ʼs` =.X DBa: =+0&'w{( >\ W&ޣSI~̶9m'ߴ-O )KGa+2%HDBAU .{Ԫ[ G?g T,;[LÇl [Fp+'lYDr"JfQޤ<٪< 3iQ&C2fXD\]2[X ;9b1̇X 5- /Kgv-{QU.lJNKS!'9b:xP|E=ւ@ =¼b}aQ4*,{|H0rFAQni={Y݉["~yګy?WAops'UF7ٗ1"%o|#u$搻V|=tպ5+k D5ӆ`-!˺`6eӖx˔S d.*#װu/{܄x4ᙗx D&/넹Hsc{ȜWLbch& 8e^"p$Joed`-E=ۊuGl@#ЯEsRPc,gO\ S_8̢yĿcFw?2X 3-X,Y0+_EW_7|䕒<,W4,#^5\r,RF$eRF$:w(X]m.?+)>yPa rcY$Ic*#OEJDV:S)\b-[ҿPJ8vm͡VV[lֿN  edqu-eza7c3&WHy^Gۍ:9{u3UpsL-\i~lRX"az ZyMՅ/,>&|\Z2eŰF0oFXpGgmR=qvqUH^i)x2|uiᑾZkU,CȔ$Z{\Gʺz::^~ ֆB_̶P:#aꏱuoi [ց4?3'CiHLJ'5 2I!+ѵ-"?%+/ߖCm9Ԯٻ $_Z_Dq@Z}zm9Ԣ`NFmxl:wpwlpAgR.lg6Am|^iHMGzA5XmV )Y0+i2;FncK9j̾mȉ KAVR.}w^.V嫔 p tNHR_'JAWwjtۿ9>3kjӍPnx`sh.~t9$ #q1JIp?'P.6 CAjJ¶7 W<?\:lR7LaV) nဩ>lȹ-/+C4y|=vsizP P*_~v^yn@-dFW3a̫6[UF\Πk0μsՔE;+Yo0omQdUZ*/0<4? 0* .8.4C~Ӟ3?X'z {:¯l_$l'z}s-$j@]2T_Bq(=׬?'Ki Q:}'umʐOjEg{1P`o\ܰ3,֏/rjGt#J<} ߝ ɛhx+--T?ZN±<;- 3IG#b-"Ӕն޵ !*z?z;,[-7;IR\;9$Gh{X🹿&7 At}Kuf>-yK&a6Ke˾)3٩(KD7)[;.MDC_^!]6)uHW{tŮRݟ}ŎZed'ӋcE jSdkgM?cBOCGP0yky*,Fc=)MT^WAn{hQEVAfy9Pd2;EQ/4Vό*veh<Q(<<*"E ЁX6.ωwC5oR `+qQj (i9_ln0WT}`$잓`OaASYS.E)5*tF2j`R`s `SD+.x1F*[rC?K'=1懍I>FeH) IX\`1NBǿ}^"Ih] 3BTi)춽x(DsXY2b$h̑* ch3} W>F|i%(~ՠ6'e3DVxLx0L3po-armwaswrs{/4ft};]?P<0J:sk 13nڜAo2sޏ9nQX)xύGCqbBįPsh.Q\YaJﺼzy帢2t]zo |R@KxK\phP\}Q⇓@J;E _t/k׸ze/"_s!w#E#ͅ|_ mHcK]ͳg4tkM)tg*2<CisfkץPGGUy1f]d~$ nS%|(J(X"PAbuRm=(TbObW])2wye,1*zo[_FXײ _{%?k`|Z/\]^K댝rѽuJ1ӖXw=Jgt;TɔOmI W6>|6hd Nߘ䮥wt$_͘ڃܩ G}զ(9_Idju;fhC&8K?}[-U;G㐉U{-2ׁmo<@~.IZX&]$D`ͰgjɌJe/? u.&H~ql Ug|T$HaD BqΎ'LHhۚsSZP 9>嚮YNܶFdIݶaiPhƟw}mE@<l{") mۿ@ n3Mߜu~5[r$[lփ`pmEVj,z?]+ݎ)ba~V罹L[OO71qK퇗){x|:@T۴lѥ&f@iGZ@f$t13m ޝPVrՊ@%x'Kϙhd-xN4Zm 8쏿1p#G˱,PUS]J@<" jc(8e,XrGK6T!DxM ӕOkby[G9G‹|~{,Bq/NͣOmmS!Cy2цpjY(*'!RۭaC-Bڢbd܇g8Wh m+00iĭ:/'[1=TCNpͭlVUȯ`2X; lrSM{* vG$ǴDfT |Poq2'-؜KGemn]Dhݥ#/ &Ò1^l0׈Ev9RcȩZ!HuoD,庠]w-NG_v eQu ]:e1Ǡ++a V]ty彌nނ=~@jލ3)C+(l{q8 Q*"$cRx&C1܀顺ЌQTLļ >aRnBv4wj}lqhwjuv1X ~I=Y'MrX&e۪;.gR?;uC/ݻ@TB-{^;5/z`gy"n\c'p νs_"@8`٪66ٔ\,=aըU"GL@ƭaa&CBhha#b_3☀c~r%AxGWGMS4(э 0Gk`DH]p=m 2"hQQPť,rO ݈^ï2 z ?H2)xE%z;.|@ r3C84P?#~  /| \Ee+M%,AB,[(juRvVh1mDcB`CBs][`K{ޤvDy^9]\ۋyrĈ .%ܺE;yͯ9_)5sAjm"_XuF/pB}B+]O`G77̳${@6REVt_cYAVo%onw'"_ *Q-\öa m,woyVzͲwQfRxOS6V|[OZWeĞkB3 |Nf+fpC f _2}l0|Oa/aU^nO}ufl\|b#;Ťss"~ cь<j2TJYO a,s迧@FjĂfxqQM2WJ1ч$J_|yMV LDO)!n.c/ J_ց E+Į|ڣH3ІΙ|(-O_E1BEX|Ǣ6bޙ$ST-H_3HBJ~m1)ŵ+J*ʯ-W|l8m$ƏxmZ/PHivM쭧k*Y(F)E vL^&ˬ1]uMTpA84AJhChU?;F5eÇȪ- OM¯$\^'mjZLIB))xo|^ۺ=k;{y<" ("(bZ+{#( 무+(rAPAOAAE_E^E_םs>ggOk\uk99W],"q-[;3-@^-6HE>+O;kϠ 5cFWn}坨5s_–+U} ʈFiwoU~UUE{c?6;*Z ϸDUw>U!21 Rf o5P-9UekP0[sF,MKⳕSDT ܇Uq*"5e0qrSh*DPDLUGr}. AFBx?!-k[ !Ww$Ek+mNE<,_WkPc;٣>W A3  GV@ğv2׈1 Utۨ/9|F/վXAvj!PÌ/]Ϣc)~ j.)ơZn*FDcȤc/gEal?HdG^<-ө-h˕+8} mRԯyՇ0Z>n]@24h,61Noom\XdʘtiG?x4#'%u彘 k dtC'ۥ:OkzCKeI\y$,Z=;34}Q!i>~)I8ͱuSpZ#UˏDM>ލ7EF~DjP:c1ttCIk4{I.#_A6 l sKߙY+} .Լ*.M>g U:9c( |(m 8!C\X˃t1 C}Xw/GMjT l~BߍK˪pr"t;U3U!T1 Rn +a-ESlUўmS*T%1TEcE,?>hHyC';lmhgSV)MI(P}7LeRj:R1tskR;@~U; qSqAE&ot^QkUqru{ zB/{ml)9oKx '+U=so>\Bzj*)-WK_#?-W*5KŒil@ed\s/`ւXɌ]c@C9r\3M%cyn:kh˕/U;#X؄9AENvԴn{na/+Dat'FM@73=*˪ ,By|K]]z+]TOUxeG1Uu%Sc= }5Rhn C0u0ސE(Pݨ7=HAYmd5lE:HF*GEӏ0ԈyXݣYBVɢ1t+"^˕.rgtK43vb= 'k^"d}NF=O:c$Es5l$jD܃1 aTO;fS룘:ޒUs{&; 5hVBVţ.‚qՉPQoTzt9űY]!Ҵ6C'|35f5DЖ+U !1߆zPc^{i (K(u iѩTa_u֦uV;{PkW5f^B5Fy_[Yb7.-5. E1AT񖬚޳0aқfi$D:>HQow#0231u5YcejM ^uwjL%DkP#h=Qf1p?M5WiեQ&\e*kqWV|SU[jN޳6 j!*25YqàFc^l}߲Icvһ^; 5ك.ЖɎɎݎ>-_N櫟5;/~,Zh6u!KH.⃪# x$4InWh Y] :H"b/ȫ'!VfO<Ԉ:e:?Looɫؑ]cv--!v:EɔZ 4SU!~Jt,bރ~ +W i"A'4 >b~qi!QA J bOQ73U5'1r C}|а n&b%޸h/}\H/˄uŒ:qP&WB}8 `]7BH-m=)zG5zϖ+U6_}1N8LMt%pMU&*_ӰsPbߚ;S!Me#găXu+t={fsTpJ;Ewܢ>PDj俟WG@ +P!^ms\оf';6K|5;#2/]B[nR՛lA3Kt5N,~U!D)Du~`4 6u~JSp^:1nQ}5ƶxݼ^Wr16eTǘ3-wK^̗N)ۙE@[n2w9i\\.e.72 ơ-WZK;uȋTUG˕v쏐:c _21 V")\{Ax%٣!GFr }+L .ڃh< aq»:(=~Pbxy8C ?d6Ӟs'?BeӮ +p&dᏒ:0f hvO;nC!6/# Xz; nkYXkAgQ݅wߪ^$h ѧ]87ɪ\П:q{A>_e=e UgūO džϴ?Rg)ڟC[T2\jSynmj,>#'O,izr=\v,` AzO $ RWs좽7U!v!1T[ XE?rLP̊},GI ,T] ;mR7]qDoGঊ9b5Чcz8 }tE oYrR.`P: kw7wNL&s:'Ƅy_ƺ*;Ж+Uu `sȾgv r;iYd {cmc4yu69l#2LJWeXQ'Ao֌Fyҵo[Tn%7wBUէ$x\ !z)J!{d?J—AP[U!<9%Q߇N"ljοsv/A| vQpvQ @"VXA*flc8SZTu'/givD *~3Y/aS'ȻS!_-8{ *q3/M$}J:X;`^B8ApDwՋ6( Te: Fg^VY`N 4}aB6cア8 kV-WZs=/qʤ9:ЏQeUF)׾[٭(|?9|¨efN:SghA7'lᷩs_  kWbsЖ{? #2.CŮkzb!Ea *|&ZJ$rރ *:f/D`D( .~ˁi (n+ G<)|tcR\&dS64lVw/J,E71jBe2٘f8.V;^o22C!goAG_ 0̨oLb jQYn peQ-3x5̨X5ق0B<Կ/jsȯch˕UQ{_Eh#/Uh˕^EkE14Je Ps"O>x_Wc5״(R7U 7G12TJUg9_ơP*י?75*Dt)a>ՑMW ^AXLW͎4Vh*|XO%iU7n\oaCX>UgO8 gpBN1\bqAUhk7X r]JULFA;xZ'g*3S8`uоA3}sX9r}Ma,CCɉ1`uFx9? NN4e#'NGЖ+U!$5Ğcw`=oN/7PG&=CIJ|:Ŀ78W>#{4[BzC+~Uҟ̈?)2šV{Lw->|sc_He3BZkMХ4{Ж+Uslc[DeDĮ+W;x0cAdFp)cDVXh=lLKv@:3Z̼c6DŽ96DZL|ØqKe kP2%9l ߄2^b+:x܎q7Vr~u󽺒9&3ez]#'P)'=|*gW Rc9z{1fסxXA M_ X~g'B-zpMXg<Ÿ'?߉ $2x裈cyzg<#h˕ʗu#gP"XY?1|P%E,x(r1Z>KҶ oUXR_;b4 G!?R=4~p}}A,O~J>ŹUxUƕԛޚ}o&2-T[-L%WɎj=b[qtC?@b⚚g6Yxg ;nz U!~Xݖ^n*Ŀ֬\f܄=G= Z3e7B/~6 M|ܥZ/F{$oʁH5p.BC$~7Yz/u!^nW]|HsI%Gb anYQo_}O ZPgSSP3;/{#Jp^ %EU1Sf;m#=UR8r*'A/Kns3#x*L ? "1g46<+FSMIJȌ ץs"QVh9ư]u/Wqd4*"D ep95V#zm)UƓr3XdU,h YSYLSn?׏ h840VRLܤ{ļ4vPRU|#{,H+HǛ_Gg7ǒ+X2]Qzuc`Uh: '`A B+ dCB*#(C/vXC/~ǡ _]h||C2',I<P@Qe`(~_'Epmz{X+7QOD< oboQ*74;px_uh<=v.\ Bʟ Ai"@44 m!4/Okz*tzit| (FK8< "ORi]Fbʴ{Y&%j7~OM(V>ըVC&boR#JS2/p mϪFbWlnS}"ܷЃ^2Ж+Pk@8JNOc4@[TucnfLd;W~T ]Ymf/kEVE3Y۔X}ϵO `q#1jwin'T}ЏռGѹBF7;MmcRiv.</t8U⯀w9) C9ֱ` *u%kW7nΎ,v%OJ?c*O?XFDKPA韌"B7#hdUWc 0GUq)seTK $fT:qn~$fp׎.܋I6veJUe2+(Ek`Moh*Wcx3PCղ*nM kG6>Ըpx? FnFBJ$wISݦrA(;d2G.n B4ImZ],D&JϠ/} \%{!cSA+Z3o%T4%bo+υoaCcv!c$ƢzYDRY@gJbfɪr۩U~_K_c( ϡ~c2pVB Y*~?/2z&6\YaAt W pɪ!;PT*9C;g^ Y&|џ NW􄥇}ٯ"aZ_]W4',2_CAS#~A9vڈ rkY8|O{h,BqJ#`V89,u X$ctg_KyS9מW}FWTCZr妮RTkiW* }E.Ҷ>jTJ,Aj4H!: E<_U埏!e2s Zv1Tԁ-ݑC ߦ. R1ڍɰJWנuҺZ)3l@ ej K$'˪-oCu3BUxzd}֕>Цgҫ19Җ+UUx\NŨ>mRU5s ov l7  $8OMQH5w$RW9^Tؔ.AB.oF3>4 'O1)YPǻPvb{Y;B{c*be^pAe>#˜?Vgmoנa0 SX Qah e4~q THu܋cRCХC(X?ȶ p%8,PdHc!Czm!CLV2V(Ke+P/vX/0M{`[=czJeλl!k6B7 ROR1yv PabuJ!~sۄp"އ{WSU>[?jtɢ9ZOecP㢄BE Y91ZS{G .mjsm1)=t/bljbSи8beUU S5(^37:+"~x*gDI߃KQ2Nklܨ W,ntӴϵgska({Xŗ]\Hǜ֊[F6Obz~!Բn+{lM֖YwkM~O%, DmSlcX mR՚@x+n#H$<9 { $Ѵ7r;-^>ác*{.^pJcyEND!~TS;x\Bc*?g xj셶mC;7\4u޻73?_ >:=؅\&3b\{Pipj*!+Mv [hxjľDBDaoȟAyW10ɧ"4.Uf⢍TpeK X[ OOV<5ob[P=WI ,TSty2/Q"TUp7lӋ'AM0r&DԮG5 q}& )؇vVaUV+DY [)51,&04 !7p˷*%3H?]X FcڨnLe֡y(dIW H;$ Go%vXA ARyI䵜e9pКMfJUkNvI-)0o,Xx@#I$<O6' pTxdy6:%cE∀∐#$ő{j'4,ei:VP%YZ7#>%cP<s= #[6ڻφ݁le|lcyxOI9Ԧ\*c\KFuY^c:h\w2$ \'t;$|w\|l]K1¶AC}^ ȻyW/AGRׁyWoTÂYҎ(-^Zx`PVaܯE(+vYn W&XB.ʷݙ h^6,P_Ga PW3`xrėaprIL/4 AQ BH {b<|u w x Gu+N}}(f^=1+6Xz'=R+b[<;ێq y;4/|b FR(@ALjn~ٰ<쿗 g )*P _l _P{዗k9C ߦBT=*|E<+]@AF |dtrk^1Ȭ {rkbO.d=gnͿlЙOjSVYs %u]*kw4GZK&u9s&C1L_?֒.c<D KJ!V>/_n&KQ0 ;{b"\:!{|rj@uGRPpbxJ;PV/BqF yIhBf 1J')RbGo%˃ 9 ij q $Ԩ;Rbx]90Q˕_\j} ڧ56V9gr:h A !b4F>4.h]"YRAkWv94OWҭXzپ1AFNDV~o_Wh6% ͞o:.'?Iُ( :C~G x/tXMdB쬢3Vm"66QE.L4ʅ$H@ ݘ٘3eZ+&TyÓXΉh4KLr߼ch%j;Z& c&dKch4m궞bUCT I-k+44{a(Koq?tB( ; VEaO4tρS_R!{^Qz(稖ԕE-iْh+kj,~;U9aE MاPbM{9/OB'~rl~HXU/\+-4ƷmwUtGɄoYlJf<=Ad>%X80FTRu G} wqʝI0MPr"vXKz{ nNf3`nF|WthIn̆_TY#PjFT|BK`bB< Ū9`Y^QPՈs&+[4`~mo##b7$+R!qEcp<\N!&gFTHxزt\=ontqi~g4K,Wy+2%5uY@JZgXe* NuP ;_ {kӏzx} AF]}wEc-s Ÿs )o~b\0p 7 ފL /RP Xe*.5y ^X&`sZ%M?Vr'MdM{kw_c847:D;,P]n}^4}a7(~`e<+=/y^ִc$F e槫M~7 %wtJwk_&Տe8^Vh_x\־|B헱cԝ2WBYB^^Vh_U%W/+%h'TzpZtpbR_]ы_J+JϕRh-|B`<ɯwZVNCZ/iHK3tҪiHk; i=O7:JB!F; i)ojVNCZ/iHKctUӐ vҒl~y*tҚ$~NCZit}Ӫ|U4`!-ɎѭJB!/iHxmNҪiH[=~NCZկHB!A4wF4; Ssi9'm~"7p4fs;%2W.@kI]׬%u]*^ղub =(|ثFxk 'hQ9kr9J˱2& Cvh2w$|/r<3J#zch=aCFJV(N`O=਋xf U1C`nJjb+59}q?T^ ۿN H% e{~dHհMT4v'jOsVRQC}h 8BpTTLTesaOq4>LlB=, sU%[T6Ux,)ZH vT+aRۓah-74-jZV*7VAơ4Acn scY*dvճT)"[xal@ɹi`\|tAk/w\>8fK; ,"g 650Yzhj mmPc86i_{QMYzA.|[h,jm|UQֹо8[Hl\[KFuh_޽@?a%_"*ҏ$L]$h8ٙ͞z. FTGA("K=CF:' a 4| .E,Xw9S !(`C?(wq`Yw Gf!b_˼vYWyL|p Bd0hxZ1";𦋛s@ɳؖ<7ZѬ*G P̋]V?q7AETŷ7^@IUl-TŏZ1,o,ZH}j:>/7z-bjxu^xp &qKג垔ENa\C d[l?Lv BIzJ;ܬ';*RQ݅?lxvOp4zyЏ  N#* 'xvżX/z;ukuYH'C'|YN@/pBgۈX'B{D[sdi/鵌? Iet]fΖ+-\.V&{EIt+P]X%QAʈ=TF|+k ;_XU uW#ЊB% l)[_<{eU[٤WW{4rY#xL(! JCq{i6v&s!ķx!vX^_qb>fq/$?gbnh"'A\+rtBɰA`eX,7];W6 Ŭ{|뜯*+z_zyq EK +.(%vX%^U\mA1l# %9JN|  zPi}U>}h-u}߱J3$2Cohnf=hEf)Œ}Ss3[$ъNEg߫TQ7DSe777s:Uf|fA +̠3NEOou}hE\IbZaFxm]ef$@+(zܛ$ 0)x 0fŒ.B"҇$SP?f_C=ᕿy4 h+v"\JB!-kOww.K%DWp7mqwTC qy\qyne O96 P+>ǝ}VU$AWǵe P+h]{N/%xB!ezϡt(׫ZRvѵd3:o)Z|uShau9[]tf*{3/t(5blA4.G\횽[~,4Pm~=%u]1f %u]n]#G.o=N1ta'^ AtV,և,|dY*paE+G,J. }#JTˆҢaHe87US~Sً>E1t`!f;<_R[;JʩUL0 Ɗ,ÃjxJ+76MgHuZEYC.(*X*?}Z 8[ʌUp]9)MCqN,qwN8s̈ZQnyx@oZK<fgAv +WdJ`y#~3=S⟂$aAfw& uT?lm(;,oOgJ8Ұ)3dwzzYʝ[dJ;=SdJ8/3ݽnfah99M6,z\ZKT|͎ubx~BoMmVfķ縗ApD=W7c̈LUt%%u]c:gQ$yFviB ,P$'P`O"kPUlC|oY}l%q9=1}/ s+W 8R?CmXUT1M%N?uQ0뜇湋ah3PUx% 0P UJCT{ՊjH\N4ڔhP,/wW.pVIˌ:QEv3G}Zu,zE_v=( ꁤI>7vz!z;O"z2ʎ)֎^S>sOT `9%>%-*JQKdBf?LUT)TnJX3xy@7ꑪI &џ2ہR$bOU^1l!߆R1bUrcJ8QW f%V)%犛e黏*TNGv>;gP3_Rfgnu {-iP@&L8OaOXuq(]WQ_݇N2%Upԗ`Bg'ט>CIU  9l&Nn =qG\t-Y^Yޅt* YuIxoZ[x{Qko R , q @fAV !oo&hV A (s,KY*A^={~$ᘮ +<'fOpr(\A~.[H1tRΪZrW{% sb(Z[ c4}em,VGƤF}`n.<N}>۹檺J1Hu\ K&}aeNXVضHNcK{5Y%}hŷd>-N,{‚X/ʝUb=K :VM{}\ ogܖPU>pX gpPLJY*p?nZ,P;̀KEܡ1; ܲ<'gPk1q^ڹ\aT**[ 2PcY*~]X%K]{1|Vnfipp/fApnW.?ZR"=O4,X;݊RJvTjX.dZB)5*5 3JMxR^jm 7>4KmO% l_nja6 3ƘnƒP{,㍽v䭓?"#-GP Ac^Nd Scm絤B4pǚ0x-^U\mPkC9^vu@}Cj,gmg&T_x?EhJ|Θ具@7ody*×4d /%C;Y*V#Un/;RbUsȭCU7m(^ⷙ!&6wbZLq`hF$G>GNv{jgPtt<0ZgAp׳T|+}Ŀ#` sĝrXn{A0Ix\e9K(;Y*\V|Ƒ?ПMӝ,=@o2]Nhj^gY _K@/s.2ǤF)v8OFT ḪfIg^4R;,RoRT` ᏑSRGJ]ְ{$<?Sp U\ʹ$XV@P럹R9?Ơ~sINY.]K>˹lǀcxĴ#֒Wr&4xw+}{CF4 %}-YtoW?I=OdrK=DIFQbX bsAkI] e#_ ߃?랇!ʞ{Z+WSq|,}&^ͧ MǶIWRCylo,@',­~1Nc.,U"O'Ah밬SwBt^a,K'PUvn ؚڬ-2|t9PFÙqMm6EC\/T vXlӥ\hNֵGtj^T3S.vZٜ@X7=;*ZJITJz>YX}@1a%}@.l19d=!HZSc AgJ@ 5FbxN}@M.5>YOgS7+\]^%UJUi&NnhGF ż^`)NFt=Jm/u(˼9ͬAe~~yρe^|'r T'*23cD=}UIxM ].6D wT"q8fxܷݩOpc=v0vX? 'oZ$+w8'3=Axnj%`Ax3f!j>Hf 4̆Wk!j=aLFafn,Ԁ=„sU ++OHz\s!7oYZoN'agU٪ZX9\Q~Fһ6+ Lr>f!ѷ$\6bUۮ-8Pj'xip`Jo Vs4Yޞ/]$CJZRץ$]( 5kjTX&RIf1[m\kw,* ^ڐ)`Ax$BQ(B4Qܧ5/+6"^U2a(Al1-2{؁jn{(vj;3u}m9nvQR/mߏωyr`Ћf<\`L9|aJɋ]VuJF m2b]! 2i$7|4D 3]!Ht+zP$Ďk oqpV<;ΔRܳȏ@Q}`(~-}vt4KsS=2;69^Bx-P5EC<5jETȄ.`eB|4sG-@%!Ķ]WUtvsf,4dbS.=(m{S?NjӰ P&~w1l ~ ρeM0=p#_}`&eMZ?Yj/@IMRNjm cʧԣƐ8K0aqO ?={yǴ|qx}h-yKGn <s XKޚ.Oi3XK&t)]H?.%q.P _ƠLmb4<DI-_Ԓ@ 0 )ie!pxv'#A*Ƹ,2^x7(u);^Su%/)CV gz( nS6$Tʗ`C9n<}i7;ۈa(V縧*8'CLdbjXUCjkrA WHbco'B;ŊKeqrmlye~,\Q1N9S͗#sɰ $d IamDt yJ9l}p \g ,P9,YmP($%҆o :Bzӻ.A,.҇kG]܇ް)GPrn%asE3̡P+QC\ zh4\xj1g#R|bս>} v@ qܾbS evp:Xڨ,Pnt4B\j3UR3 3zxckI]#֡1 hWI،.`Ɛ` QnhXN{V\0pyDaQ5|/|6 ( {BJ|{?a O;s KǬYֳT%+YPr!r!~2Z8x Xţ7c(^} ⟁[4'h>B 8DGH!'H #3D;Y# VaPGP&hѭ$|Ⱌ`B\A;x|/:9qn= ;,]hZKFl.%T>싉磲P,m˲vbL,$qܯdC׬2 :rUz6!d )e5 %u]*=~*04y4Kw*WTv`^#gTȽ~؃اRŗ`4p >W ''S̖,]d TkӗϬ͛Bu,Y*~=h,ϿY!rK Cbpג.ݖmR[Բ~`ղiphBíkwzt8]V ?.?dup.K۠ev[)qk1u;uhCUoaBK,/6u%ap L&Z+8h;a~^=PZRץ- ``O bdy3!r&VY=aPڡX-SU4.pr nM6 L[4 *>)H<@bA;s(CM18$`;Hw(8TBnyg(` נ/[ڋP7_RK𨞥B6 }D![Er 6=i{0g3aYN ;Btc8Լ A.HtRR4(D čYhD_<w5H ֑[f?z5YԜ<4% x ̒Y0K@?䎇YR8k,K3{3o\ʃf6 S|gP̋y9˧ʖ{ 0^q{!J2͉v=1%c?h ߋhZ4 n>cxL+ 4pyp:B"F1K'Џ@c複]BuC?"79Y*,z*([]ȫA.H ") UJ2[(y(0GмI x 4p CѮTf_bWueGmdC'h̄KH+k*!3dF!2#^9]^hg=(=m*;ڸ5gch>yNy5Ct GnDHe<[)9DHjVDPBtH6]pHmD!!H:ԨJ!Ks ao+mRAb$!SH̡`+(FERi,DBf4(F2CpB֐bB$߼^ .kW{5%u]H^5<^tbۈ+[6(C"AIcq(?¤t%}W&P>J7p8\ $}Ş/M9pF H*@1/vX'5&3P༥Y`*IC1sRT[ Tv+U9>_*XgP䏠VjkΡ&EmQ QeE1 23mױFY ae&` AMʧ7O,=,f°z }І &D5]meUv(7[֬豠KC;UV ?s//Bs_oA^@Bl5zF$,]] i ȏ&rjI> To5P{~É>~?ĉyď8!vXNqs9ymP; ?'ϡJM|v<WO4XYRIM<1Th6ʥ]+4_Ǒ+ugBIF+4l],kWڱh r+ ,Jl`e ZUe@6(:-}y>:W{.h-벐HMv͗"KZQHkINN))QyD)JSS!C#u i 9=)4 M%ďySH)y'?UYʏ([c?ep*mt{%K9 Us2-@mEI"qm+97laB.[e{ʂTʠhο HH?,)Bdd45yJHvd;WHv|dɇT#Y: ]#5O|)k%){7?{ NRAZReyٮ9N F#jndRڇF?=8,o,KŞ.b,KŷNnLux-"j{-4͍}{UF`{ʷIpn7˷k_Zu|Nvn Ѯ% P:Ϸz zd!H|M~`j=? #ɣClTP,rwI P(ߕǵ'1vuB\A_"[S ءXv( <K8+3|$AeJÒBk z$N̳\A/. AWBA_"iǽ$XGWyo>^7}+om-paCmKp=~x(7/QTXz}`kr FQrKЗ[ܬ$\r iC6%8 s!QT e$x.[$*\. N$n:4e#LG!*Dx!d3#5ٻZ{ aۭP}6 /,@͍OU==Q O<2 49+%O iE '?SHI\Am.[/{͸טK!{HžC>)H t AhGT8n3-4 ]{$`AfR!6 &x@C(>=QW_FS&YlNl, :Ypht^(v4&P^4^wLYI!mPkQGR;:H>0OdiGkI$IGkI$aH:j[wՏv{ֻ  @^Xf׀a8pQsցwWv (p(P (p@|Z]Z̟\9Syꩧ[ ϵr-v.D(p߅W?TнԿY*A!eFU >A-WZƓyíveU)HՅ{7@T4 e8p.sr#u;4\.Cs!} ?ҜSn8v"VŎ˪[X݄݂J]SpYo\@cB)tLwc FhA(-sP?>TKbcۉB*1G]o3~P9d,%t2' &,vX>_:M[J]*x8vn>Ja z?Q I'g+l!JARvh 'P'V]EOΏ훺nEY*ۋ4_׹􍻈o뼫a_y^QϿh<:_/Z7ER<=#u2@w2N x)ur/b vة =S7Qo[W/-:K(peUE'9{ -\GYֲ^Xl Z/` y9!ϑ4'N-ns>ovna6+9u%'^~J-z_x:w-bNUmsj<>JvP  1x``mABs`y!c5 T^._f:uF](bϔ0PnJ+ =֎C9(^ ,/?;Py!R{Q e*޻`< ǘ B IiB1!~(!; eM+C{|Jub:G5{;U;MUWۼj)iZﱶ>VObUY׃rw XA?P1'~oa8 ]V|e6fm8Wbǀks?|Z?c)`AZrt Mj䷢u=t(:%b+K^A^Z-,9к D҈+7THH;:M]VTEzP~t,kU#ݢA>*`A $AS!!EDU`EUQvۇ  %rww49)@B#iDu54r}M0%bo+匢Tx%l&x!vX^Xqo7NcixC$px֮O_K,%/9u2]xT_pkYu?[khv7PxVk ߩ1Ukn1y@[SQ~XDFWDȯlX=އP5WǍmo)6LuB^79+[ =A6Lʴa̍@i܄ ^\WP>J6t׫Rs9JnRSnUwbǁwSs;=-pwVU| Ou,@UxZ7QۂR]`*c;iZ?b^̋Pq݁l+~9ݡC>Ft%(D4.J?_?1蟱'4{@;&i0V~U Fos*7 ^>`xyV5*^ BoרJa >ta/H?J /`Ws^Uh{DE˰.`e?é*=B ,<*ep5<1mB!>O\C{KJ /kqx4BN<䗠pH|OKh/ A[(ȅ!gsRkJM WNV1T ۦK[+_h74T8X~;9(7zf*!J" 4sU)liRP#46_S(gBL_4DhNªSbpG݈|imk^pkWδusaz@ 71\[8!R+L;mlSB uddO,Pa'6H +ol读eduQa'K=tv:Y]O)߰%2tPa'K^u ;Y]?=C&~wT]"-(Ů˼g5B1F~Z XB}k{9?kt[w' P:I&pN EKd6vzGPuc(?Yv' $R' G?ݽ:=] \?R7=6{ܭG7oA ]`\|2{tt4;UNOB1/vX?h~%T&V;żq`Tqk14 ~Jlc)M451QSc@_>JŴ#S y$Om޵X\?LkB=#CJEpC RQ)a? RWa!=5(R)agJKLU y$9gC"~쟥IXIΰͰGq [ͿM|<[X.~T܇uFh=  "HB"ƀXhmZ[p A&D>6E[)Ҍں#z8 z-}І(Uv_AggTwCmJbU?Nu~ *?*am(ػŪQ_h;}:^!H2L3{%Z1-^9,qjWd QV=hmWwjW;(S{B `OBsLCN&D;r׸0Khio>Ja*ڍ,^~8uLB@$"Sfpcu)Im5C\,֟rc<>~=j=w X pJRUTOwiU UPi\U,.ޔ$[u_nkz#󐬪ܹI, Z8 N~w38; *;F n݅^bnF[x,܌Uk^.ކ%k1#9A[FJjTO;{=Or\RmxH IMa !\nr) e@3`-ܧa:g/D5#khK 9bxU *\8895)\NQ\ǔox%{sMr)VG%Y!qlS rWwd6>Ovطa#4]fP+rPzVl*no2|ɘcW;mѨ5e-G>pXJ:SMU9?K8A2zߊP{/jnFa ['جQLCNGu eec)(2#()xAa1Xy~a_Z_Ƈ7gKܱ˱}z Q <\1R24Kd(inNPzU| - e.E[~31 ǢYJc4c(s؇҅;]J!( Dݔ)}JbǀU4uROt~Y}~)8 y$\E}D]xUxY~)% uE )sHߓ}mz Sp?ZNh;!H. ]"AOpW}#~gTNi˛P?W> u'Dp*_ S1^m*ŪtpfwN-wO]^c)]io6-難#J:G |}Qt!1O5x!v0V7e{X*}_, . 4~ B^# ?ô4.{I'/M(.AHi+}uab D(kfU:)Ԕc9O~`@JZ*ܬWVxRm+5o p3 nC4p*{fOlSIA>hƥ:W+܌hn(jcF7F2@y5}Zs4q*G!Re \W&E"4NJʗ4vX|gh^!ȪY:nP5żɊ0˄<6:*xn*?CTVK^Ma|/Me.[')DY++ dzZ)m` 7l }OYy[e嬟b_J%}PC3ʮ}TCsA4s MinFYPvmcy(E>c<S@pb] K),z鐆5Ҥ~_JRV0mE2!@nbNڳaAs`>׵]X A}fǸ҉A,0BfūMTe-1ՕH:ɃL(tE-jxZ!ef%+z^@<&V;~7~'i6k*.>r~_w= m(^UxM?0_~b^}h"np2 J?٪[]ugivB+>p{gj#tPf' ďv9Tx]Rwꙋn3tk{peֳ|f1m,@ QV )CUhD(D(5(>6DͷmܪϪz!;ᯆ5u|z 凉brXGNp괂PƗm`/񩺛a @Z~ CU$jИ|.Tx:4wT')pfUW^?40 S 5idZ>cV66*Yr.&(fdi#I%`%QMXV:=C(Q"8Sk<ʫvdZK3FglU n2NX;ҕb+ŧNj$ɋQ'Te@B:〪=.xw:!j_R.G=\x .:Mibo 5nBXf?$ܮ&]cm b;rAJG6ᷠ xmv )A`y!~ƣNȟB4Ol>zmA[:\ZN+I{z(IQЭw$knQj>::⶯Ku*Xl*wh^"PoOv\(]{ָSC/;y=]D vw?ćO(>K^I nX ~p#\'BL}?&9 k5.甴p\B(0uBfӬj'5C '^37z|SjD9bpR^f:m3_tk?sXʾ>/y h.cBK\pWyeDaoi$%\ЦgP]k+R/{y!~u>jWڣ>/ k7N捡+q%UեR[oݜa2V;;(uclת}jm[$F;xX23NvjS*hv:Y; lmXu:Y]NV0CYu:Y]NVWc? YQN(C'k]j4*T뗖džNtVXn_VX:1jו"WSi#/:YΣ~ȸVTqdqs:,/@5t( :ײekіC'K=:_av;NfG{1t2;*?gC'=:cmv;NfGwX7ydsvRr|NX.:hdd.Q[qݤQѪsXabM Qudd|+eBd*zNH81Ŏ(C'knˎ9v Q>RIdP1F1=X'y;Ğ嵡ymdۜ.Vß촽mh+bF۶hQY,=OPŚqH3NyC'-zWu =li[T򗌔ah#34Hm%IxFU ZEYV~J4 =D־1AO ctT*Q&VTZn (;֩}}mDPcZ|D%&QoJ1|<7=mt]_+I"Pn–5Su–Io Oʟ$l@PW.Xf]V~+aKʟ&UnV g"adofr1sDX͚oC[ɪK}mj Sq|Ƕ͝cdqV 92g| 5,Ѳ5:w}[6hyjkJ [#Vq{X(p:P>0#w5fdSHUXFwꛭJYgBoѾ8Tշ6]'$YBlyw~V-*tJ^ |? Is 1][&o 螯n,^4d3輁*>c1tvJ4g Z;d1m!?DeZJ$(S^jVR]u$ntQvc8L0UY]jd14t{7CSeJNv!*_'~"|6t2 gC'Y:G)WJ>.)/!R|*/X ]EtbmdOu )nYwC/hTix 5YAzZT}o*UZgBo[{y:~#<[TR_Q-pam-F!9F!B)M ]D2Q 2b^ ,Mei_3XjtLF5Z!PlّuPJ' *|'ԤFk3YM!|T㺦l ;Ë 5:a8ϡrJiX`]VA.‹fT/>,Ȣq8:64B5 pNP_]5-PMg'Vz5fmDI%;"f*L%t -ܜQ[ή3vPW ˧]QyB4˺Y3v()}b9T9"`֎us*GPEeV6bQ+y5w{ӚU 1~4dd^eduҞPOyˁP=& oGA=v@@=6@ۆZ)};o1|w ߾ce)A0YT<}7Q_0B))XM)0*h]߉1nُ q6psʧnd805MB 7yn =UzeZeQOAM+4 cTAy_!@򕍴!uZl'mqzj~%ZR*Ϛ l5tQwNvQp36]xԫ@h;%ã <ƴ0[TULo C'닯JG~?06t2^:Pu:Y]o2t_l`Q:?m~:F)ao@ 7({PC٢#D AE6@;ݳB[|:U?.܋4Dpjo Kw ߮Κ;:F@%*n3;kUdumˆd,.| d 3 ?fuT˟0]~վ J2W_l9_Bn#Q w@ oo)%Yfyߗ. TiHuI. @}c 5PyzaNu+R*px?itR R3L@?pU|Qͪ8%/"AbU)13&Fx)4ƹL96 @t\ QN&8EU)t)/ [<$0,E6,ktљ T7:+uwLtubn(ۡ_.Ĩ wCY[LA#}*/ܟ)/^s-9L6*H:P/QNFr5.=5T2-1f'p;fU Ԙ Fʆ0,GM*}H O x<@ trng5'Ћng8Sd䄸Qx.EP|pORǦM`csTwnV@ͶF/ 956P³P:댯]8Ag b7ONl%(r5"QO_ic@XT}C/_]×u=2_W/(Sb:HO(Qtѭ{jA QvY4"܆7l6rsߏ6od*mX m^.A/yy/C7GЋngpeA!;D6?Gvj:<&ԿW`)1A/H?F }U}U'w>>A{.G#ΤtPO:QOy A"=wOpo'D1T.sE%cG[@H-gRFO/AKRzp1^?pX|U(bKngR4^ϪRBK(L^vaE!ȄmgflVJrX~ا8~t*EZR#x[0 "F|L#R)!ꎺ"TD"RIi|1V]cR#etR.LE"x E(lU]7n?G=ًic{~d i l/)ߔ!B5*Q?(@mn>ʕQA9s9/{_Ukۮ;ΙsO AG ơi3McD}@絛 6w0!N87)M.zՄEhrd69s|:r $^`sBĽk~\!4[xi(_ ~9oByCUAmDJbwLމbbSucE^0S$qA' na& nRp 0O3V1-Pࠂ8-< #CqiE{i4Q,wұ@T@ {Xp 7F؁d,=C1 P;(1 s Es\G=G^f̩8c(Wk@5SSLeSY-Ty:,]k){\ K1Tm(&w@1QTU0r?K13Qt GbwK(1%8)Yex.xu_k@zC<ٙb{2"8&#c22 %™13,Hnbed``(N^T%+"" F%a=,N*3-4Ǒ!G&&%T3@2.ۺx`7i'6OpL_?툋QC1WLR$ &_,5g(fYc} lCE}1KadW U+f. Q,tq:U)%DS:AD_И(TU/rycLՄ h B67 4zנ㨛4 _BX4SV`kl6E=?J؆Em:AZbX|fWюVʹ'hp)\k 5;&zQ,ttPPSU0Y7ƔI(pb 8u;sw' 3`_1w1E8{@2nf5q8*cB|;&p: Q,t3!}̃XfL]ۯ{d۰ x|9[6a{ sw,_%8cg,_SC{|Gٯ{X0wB78oEmb㟔iJ[Agw6~΅!8&eg юwłisZn "{WXdF .t>q0{X3P<1ӪR7l.x7Iq4u3y>-Xf&o#܎$-`X軐 Meng]^`0MӳJ%um%ܜpmp1_x0. ́t@a~[S傜o&)Loݔi15FpL;.wJrogr 诒ǎWJJ%Lp+r^pA`32߿#Vc{8P}n-n_Ŭ@EkZt~D r ?ZN7kZ~O4 ol{"(C9 G[ SESC XEwûӕvD o!2 "0~^w`$FC;{a#+{/`U~bd:ZSr}bKhFh9(aR-MGVIWU'`a(V1g[~w&A<6oh :л!m.PM#Tl[3b>܄wCLEuI;e;-P|6bVU3c*6лbKro3@'׻!nܿn@7JP<聙:л*BZ5MqXP1sbmPŔL/?^cǁ&8$&8-kXHpDg&rgbh`= 2; S.7]һ_DV_٬ڑMyV;_yAd*{Cl^ENd E5;Gc.@ǭہ}`bXӑ6O*ˀwPdg14e5Ev{斷5t@ \e6I`w0Ǣy(>ϛ^S,3Z[@Q9wy@kD,aV>AA ]cP= (M0cAO6fǼG `P01x]7PU4W2ԶIl@ C GvPwB| Zz7jC)x @7MBu6 "Q/fE|z `M ayGn !bU 8f cnH#sH>Tbv`(+*R?#u9ǜ`Ov(ɼ+ʣJ<6Uς J/#,  m1t6л!ĂEy9 w?b!{3|%LB5(I*ʻ!9ؽbћnc|Dru**|pg:N:/ cv3 QL!NuCf";U),MPEqm3K@L ݷbBՂ`8sPԄmC(j(>}\%c>F瞧3wUoNKXLLeŻuP4Y#PCz,%Fpg?҂c@pBf:ԬBJ 5Pӱ >лӼiMTK1w5])IM>R4RLsYj-kc/OeʺWVpSa[[/Qa@Ux +w5Ů6 )t(N$ z-TS ˡ$tnbmT fDbJPvћs)*Xcf>M>nR܎rixW*#71b'2be +8fe ح/J%*-(9J;5h ]@4Dq4oMC|6j I2zSn̓m[ݖ9-z7DxCmAU)Z trD!^E*ADoN(b)'OY% zsQgєj&>b2O7G #L}K9eL]1 YpL=+w?A5wc[zWxv$ pQ;u6-зG S&/jA-y7rkhnbȍQdgT1wO ұw)o.3k0<6^S |^[Qk TT17/2hR' wU 4S+uxW݄H gCʻЅRN[9a 6| )Lt1?`Dߊm S,x3'N sJ-q;e-,P{.1W@aE,419$1Ȇ)\G??vw]~ WGPCфB v|(S@uQ8S XԉOpLs;PaT"s/*46z y4=s?)﵉xpg*лa ػa Xl3HGq,yD2 45_QT^ UwSJ{\=ta+˵2f*~VPXUza:za(~UanT@ą}(̬CV?bEr%Qmnn6Qi(cVG׏D.*"Ay4x?d=0a.z6cT /̪, $ 4O# qf9YǰZ +ͳYgqق^Y{ /20~nHB +ؿ;ǂcy л)ۇ؅ěP B5J12NNFD+XG`?r B{%R#,fP|JRҏޜx1"^fVfP\;HL 53mcHo Gܢm2=Uwÿc=Ae95zԠܽLt{ h9"17ܑy?LUPܻy<6p˺ V!zQJC3^cy}/8/ @c ҸoclVo}8[xh͇d8nD@f=/+(N_đ}عr2T(<-ŅT@s7sbMwbڎ 8 '8e4Yz7Dq7o}XL1Cs 1q࿏n͏Ub J{fcv =Cꆥ>w#KoލPCZũ&*hһEl~Nɺ9 /0S(3tPM䕠L7Q|E3 Gb-1js)aAE%pqB,Ys-SUX1v z؟Lkt #g+,ux7|(1N9 b л7gwo : N\ zWH]m {s.0~^!!|[P&rGwʀ<*P[ +%(RލP͛2iLy}kRZf0 T@QJP()9'ל_1jS^KilE%pr{Y%jwMܝ )G;b3Sՙ(Ф~p4@#Oq- ͔wa<+c(.5zz{]lC1Xgo c>2v RZA Q|7S{ Ӝ2fܝT1˻gM8һ0&/61o<%u~/R&ew%лoR@OUp NP֗*,U,C.cf 1 7CUao4 ry; T@ą_{P%PPX)Ͳiz˕mQT]{G"HPl={p\o16~'bpr K\@)sS7="1Ɓb;zW8ttC ]X4D;w57Ӱ .n% H(8@)Ѥ u5QfPy Cz--(Dm Ɩ]c޺X%(=}6Sٛ+λ* 2Wu8"nMET KѭLEKPZћuI,2iVfĐJIf5J1-rq{\%kȢi#aۘ >b0%(O}DKQ x)(*3ċuq&8GP\ @5 \ q (K$лibw55X8zQd7yq KwC;i.Yz7Lq)I]Q oU)fh 2=NeGpLeiP]=a $Ɩ]c%(uPb)⌽⼫Re,1pE%hѻ!4. Kѭ7XxeӬcACŔ9@L;nx"{^ŗ@q{F {n`swSdnVLW~Pj(U z/#}t0S̗&OC \SÝ̽)$w6H2N4cN4}_eWѤcRGS(w)؃]90LyWFs2= ̏KmK *cPnߦ Ew5n}o.6 ݽU|6qt\kw;P>*Ôx1 :TP>u\ S.6,qqYEJLcap/[1 |'W 2&/^ $X4q q5(-}/ޡQ\>OTM44|/u!Luf[>y~Wߟ`;E <9~@Vz 9g?/cu `((TmM*/Y,gDZր13H\QU[iccVbrM9PX)3ktw4ځ+Y"MH!6WfM|C!>ʘkqӱDrCwzjiM=4al'b0Z7rU,A)nxs,8NOEu &8Ɨՙs<G~w CEFޞ҇<+~Tr _ J^n<]PE<}P1AJe}eJm]} %%{,vd[g:q4Wf*,ZMCC'#gw2(9TKas( A P鈹 $:s$84cFV*WZώ3gyω6Ců7<Ǭe@qc I"*)3UU){H1 /i)e9(sĭ Xr7]EBׁ"e̔2f1wlT T߳iFQZ dÁ*2PY(*ۇK#?v=} TlYv>z(F7.T$$! IHBI̭̐^1,EE}*=h( ] ***&BE%]hPQQQQQQQg:w ޤgj]{=.*azEIb\ȁi3MiNXE]?׷X\oryT'=>e)p\أ[qryxqs!U,@khhڀt -%wR X)%и6G6N1~qy }[.V43p2B%)ztxƖȨ+lrd5A>*5p xZO0s 47֑]11IQEˏ՛+I.' ֢/ h{[AQ^Q^QWТ T:H"F'y`ŤSao4N $iIRbݤdCKu2L̤qvXƊ7@ưGiq e,! m1NQoJS4R9VQVxrXEM6fE!{k:j:j:jK{r XDz<-*$I:WRx"~҉?!lzJ:4 Ec@c_YAcl2؊CGxE0[cwlb5W6C\0ޔT5W]7 -422pB_L30ҌI$jKvqQ$0}5 ћ UsmkHR0< NOϭ դ/<}]W[=UvoAʸ허Z]4yg˘6]2. 쾓Q>j |Re꾓c!U~vi"UUZ rjª:cOHۛrIG^fzl`TɇlaE_%N[VromJ җw[5Ǎ)v{)Qv|hW16{G*_#ZB{; r6)ԓf/c_b+|xn ƅ1dɳ#cy[ gFмtKm5Rgse'9ٺd註ΆMӓT<|: R ԧC%h5п-բlh,!1OpENm_:)PIqIFq|"7 c#$wB;Z 1ޱUITx#@&< ϹH'b3^vX7876tM: 1sIȸ Sr`v-3Z(2 K tSS}rMwWQ1t-OCG4t3$!f'@.H.Ǭ2U"y$۾!tRZ t2Br;fMr?flFzdg!&9FHb$'c.t Mc H 'teʬN\g$Y'e,g$l& JƈQ\л&N m`uU&_ d6C}04t2|2ID={6n@'#t7=2B/`~NF"1RB<׆h|8\OX%ic"vd9a#Sb'rO"( u[J*> <ϣ\j\l@l$U>$o]Bg$c@'zP(V%Z'J\R&я~yDj QZ+&XIagD(f w{NMj$@|N"\y:? 77e?9"oK~aƵ#~a.N$SNS:;''|z tL^U7n9:Zb2ɥd@ iwSPv2Bgp'9fa#݈H_IϐEȌUeH?*|4"VmntO1ZQ+w4YZ~N?< X/MIiDhZ˦W_ϋgJTvR"d-E15Nnk qQK9d @P9C_q;:IDW6_dc@'y+ȟStLL_SԏH.xʎ_c@MDe^iA*[j1 *mfuPvq^*k@cm}V0JПF!uk:睆,I61-}? $IH7׶ ڶzl&-4(2ƀOdQ́}dq|"w`r2n߸ Ye្9::-2LB.kffl$O{ ) $Y7' {:+@'ɔi ڐJ-.7TrhSN+mQeV nWŦ#)ʴ@h4JZU~SPF_@tϋ<=f:H΀ co T }ٱ IWa0>WZpR$2X=~YID ^6ͧ{}!OTƸpGV̦b ABt2h\z/x4¹h@k 褰)ϑf>\c9Q18h˥ւ_'W@`a$T ~Q.h' $ʤ3*>IDkKclJ,Wa dXj_{Jۨodh$]4HeC@ch|3`7V.7la,A7N0 ~;BAN$gYPd5I\M=x M3h%NVo n\2'C$j;_Yb;0o }M*G,r\BD\5ǯm`^{z#\M&aXi@4ճ:HŬ<Yj;=*GPi! #s\xMt2Dr"%*0E}k!&䪹Js5*,-Wkq~!B?:)N $ rR$y $[P43V# Y,^leyhЭt:I:B@1MDr0fHbVD]`t<$*&* 4.ͷ02Z,Z/n4فh8C /ƌmC]@#:T`HZP@7Bv VQ>3umQOl~hA4 4TptC+4-46<4Tm G hB4TpTFHP#k,t'jv6P:HXP;`#dybkG Ș;E_]յ rIbVD-f[F:u4tv~(NSK]jf7@Mt3B0Jf Rs'qfq;m<7@.t_9\T&MoBNJ$ߐ##_O&nX+u kCõ?Dd1\rVhQs͈t$X{o,d@$dK@'#$cV^9ytR@zDcuTH/]!3 M;UO$IH2Z]#ܴU={4Tv!JT ?F5" u*~$"D~ݕ#(IRoܟ u SqOqڵ#GkA:N <@ bFM.{<@'P43>̼tv_cV Kc'tG, \`I::̼T^(:jZ}6He1c~-5Z2 =/ۮ/@ӧs@'=#30Ѝ3%s r lTv'y߲DP@#qhӢ*XW@'E ehoh KoM,c3Շ928qrve?vWjaW~1K uM\wY [ $*j7K]=R:Xb ^7W/'-|4@=iozGѬ|*.C )WTjޘ"lfи :)lI@9whQty 38[Vo:IFbZ'N]'%"y,HnOH'5xN${fҔt/xn3ETF 2Z:̜ $̜\Gi&7UI&曒E8!H]q^AIF:afN^k&Ir\1hBęeߎ2czOHP^HO,tHu6 =v ItRQD@C(*<% gkqKJGQG"CGu2t]'CA1`\2a :)m낤E^2<9-QT34u L5S75O5XnUnF j{"wffmKk"Lv+GG4eHu}K]#VFXީxV CGaͩ6ڜ^ ɿbvR ٛ1Ez 'M@'E`Y[h4Vz"B@8j:Iٱj *ǛQGzʚԑ4NS]u g@'s{.rR y$/cV!@N`1ahId*u40;6!knV{egM"I&@7IFv_"Dc-\*2L2VԮĊRa&aCGZh tR 2= j&\Tk7|yOeWF7%8_GlrZӥ 2pQ?(L ǀqͯ'這0Vux:ɓL5S Fќ8VKHo-UZn +Ce*;@?HxHg.p:ut'B *ԩ$"j5´Qs4*̺ _k 2\=G\yCG{xz{k$x)\@'.#j(4hX{'k_ecz6ñ nF"kYtn2nQ6øwXK z8_w{Zl$"j:wɓZo[G|o :H].O"'@_[rBܛ@'$df\"_PEKNHoZ7 j_}vcH>s-XE߆(Qɓ$w">kD$PcVp:~"l6HS/ L'yӄ2\C44N%& Ze(QɓV/#tTh<&nL N?^@uNH}qp2&t~DSGLMҝIF.>: oT3uܛuH$&HӔUEqL +-Bf6] q]5tFQ)CGMPk_A^=C ݈y65xΌZ<^fqUfЩ^ui1tT}_ 훀*Ij'3 XoCG%b訕:IH/bS1c6n=XlG!:f@.N x 1ЫF2C+l=h^:)|4 p>XlF݁& S]6TaxH>[T0j|:jxwO!k>Js?y^5=5ک,#=!u:&yҤiؖMwQ0tTK( п dIv3G! "Z{z2e5O?:|ǰ uQ?*x @'`wdgd1RwWY;IdZ@ZN]'C${ z"i+9"cF<H30c=Z5$C5q恝fToKD'C$T7~ɘHQ.f g_q'cXb :@?I_gz{`X:$4")IDr'?T^) /kj :3?98),kqD<]"^cf=Ri-N؂_`Xٻ?AS.j@fh}?-wRg%t|GbFE3|hpW u 3 ޤsfZG s ]8s%*E OK'ƶhU*!Z5HHOY6NIkTT1RgdQTU J?"2aeiց۸!bFNΠ:L/Nk!ŶK~H8~v Yg^hB,қC3˚.A?nhvg2|8yXlg{'$ڿV_)@T+@Wm@21~a3Coa?Xο0t4T09JM:تy"fNPybZG-Th̤G4#fӂ?'Ir1H*흌$:y$J/0 tzZpEb.x}y8Y/ ڑh8p ,8qR نjzqѬ &:N"lml)OYK)}R8չ:CSvԍs\Z0ڀoLYV,(kʻ8 $:l,"?HicvCtR*\db[VcFwgFe$kĕj܍D:UUƪD5s*Cj?&)Usd BA'R d\}mvd-$OnHc@c" y"D$lҭvtB!0U21Тg$iкUN};d]@'@I@'H/Ӄd Fvuu!d-N_dON} #1hkCk(N 3l>uiFIDȟID J7 HvD1A2uإ3;4t'V>YO~W# s3+birh]L!5l)Gk?)]G3673aEa"\:%VN"{`Ylh0Mp3@ͽAZvC6t'y  &N"fj4_Ik_&H'TRwo͔-!2 d[zd:p8 C90[{ 3o8JEV;0 X:cz̜9fꈆ\"`+ȨcDSY>L0︻NhDSQg;cfxNFHvTh/)jFunIX~?J)SjQ/ R=*}Jp>R_57\'jc`I$!۱Ve =XEܹXE\a7Pu2B2Պ$m:ZޟB n-E]ƭ5޳:6+}8A)Eos2LrISW"ҩ3eF]Feq1DH4]G:zlaܧAmn9tN$O2/_`0{ȿh \=K "O%HLfM*$0'kyR?^͑E|݋ Fyǽ$ ֶٗ^xWPcpE!ϲA^g]'?w׳1 ΁[nq"7w`(*1HR0{N7nхJTм) ND2N?QG`m X zPGW@iѳIOw d Y!!T3uFYe2CGuY=:+w:y[=N)h'ᨋb 3bN$SDn:~BIDr,7c)<}xlzϻNr;Ar0% QAdrN{;7}ަ7hsI6%m3Mڦ6 < 8h ϳf~{wr|>}:ϓ~ߵfN P78j5 :L8"Vзe_BX9:)B<N q/ `rQD$isc[M1Љ#N^DӲE8@g@'!8nv΄L(9lD15Quf;.Zsڷ H44U 4.kh|7Ip7eCNGjjRϺB1P+Mӎ0 ]`Qm8j+`NءiE5g~[Sվ>@_k{24@qEWB(2Dsr }084vĸ4etՁ1Cƀ|8PVe ]@c]@sq92 Nt4P?* hT5¼+~AC ChPv 8vTfbZ} *M)5b\3!jcPAy o3+pnN&)cgԙ/x:1Bez[hJe;TyYThh\1v,#g;Lu }hʽ毵 ]E;N"[iu:NJSjj1е tR2IISv_5 "Iy ":jCd<։Tjyԡe]ض&8ڃЕX9j28<;bG}!ID1Z_n^S"俛@H~2k Og;,bj;fN"h8e2Vw%[ghGh/DSg_K[78ʽQQ?P9oe뼀1x7R FN&)VdU=<4vW:)9?J]wC IBuW8GXT㙗P(Y!N &v b -GBdkuq]#6f`@㜤]P#k0eQkt,b OymXVЕ` `prFrk_')p86NJSj+1u2I1"ʐewYh7!z+!!И`SmJj$Hwhx"l\w!gWhG /.K geגg?2@d'8zO褴%{D&h4#oAL\^=yơ2g( ɍ7/q3ۂC_2Et:`A*IF- ?]cƽĪ%XNLbsrl5d^ 3ܫ|WmgY8XG QsX./N)|upU7h rcbN"L=XEk@FhӚA9+h pXӸŐM^HG0zuc&˃Sexș"*4t2;1 tְiYOQ$o^TpN>ęe Kj'Oq!p+q#q&z Ǭ%%3 />f6r9 'Va˚lx\jU)al/[^8ߋ#{bqR,Żn أ>2QM'X<-(&X8UaKj+OqF#Ut5WdX`s+qTU.͝,:vV6*^UyU M'%M^vw1o05_K R#\:E.Nqa(s=n$q:1{42u?Vf}=*#ga)jv切4!eqju48"-m ۲YzCO}S)+$Tg@'i߻DoR ڌ!`4et--OwLQ_$5Vs[xZGJY LSF?6'i1@FP*w<4DH++*U]凯٩>L'eff]J-5M18jꐣ|uOtfD"ƞ4ƂkQ Zn#_B=6f֛-X: MQwHYLR$:yL1񥞏[GAYz9 R< @2w ]@Ezk*n̙Sq2Q5op#B"7yck@d_'? };:]st=]) @K P$.l)[PFNhPuB%|G|$I &̍-4:)QLC_S&g oJK }Bgj#9496FWh >5%mP۬SN@ ?YzFۻhGyi1(7`u4UhP^?#CnPA)׫;%m|4-$bʲ G@cը+%WX"QKQK|ЗuU(ꬃʠF!P{wQջD4cDڕѮvy]Nf@o ΀uDw;)a%t%)G*58g(j=oѲ{=N1*hxWKP*1]aZ%GdC@{6(xjLCu#ǟ4dC96B[z>Lnvt|Ҳ5'eM@" ,Dh?ոV]^PN!(LS:Oh D6cp2Mėk4nGH$GhJ|(5:)I-ԪyQuVA&CwL9 [258jagd Dz3^4T)DK-XJ(cr 4&j]k@'D#ibISf7:{uoX;Qbp:X}?z708*~F NJd^A9TdCuз0C3t3a{}@U;fਡrR5 ڀ9-쇨NNJwg(mzh$Hm?/('ԅ&,C G(6'M1dd!S?!<ɖ mSEi#-: @4tklbЦq68Z=?HM@u r4U)Ӕq3۠A{_'[g 8hMԪgfdᘢPFbʴ i*v215L:IvR{ơ)=AVVEFI@cЕP0WHӡPچ=S!(zAŸiQI,%p.+mXل8lkd n+kpԺXGSwnxWT-@R LY56do]RRz2eӒ@χ@cRvT˚~B'@cB"1[WЕPJLQs@,[`p \k;*++(+9D,ſWO=FQ~*>]!* 8Ŕ/>N_ GUqʎQvr_gĔiqS"rl;`fhrL)3Ĺ:ȵWZਢ?41s_sCXVFʃ5pD/ @j3S3I4qh` _%Иg`_Fk$EcLmG%tF TQj'ycAh<ú1sHt![v6./X1Ut%(@~~@?A8"^ĚY}ѡ,ݣTYohL9S*~JLQu{o%ȁdbJMpjuxu m6ake=NCN_N}yq(GWdr bʲaya =T9hTCf㗡 hs0 $Pc @˟|R~6'ӽpiuw֏ 7Ԫ=~5F 82 t294@<@؅a`$ؐ#@'%j-ZjM;[!9t=_wsy^$b*Luȟ:6єRS_5?o]~ӎ5 buD'Di,:džv҈^ πsP(LRLP'͋plDghݫC +P&)ukAw S)>ZW]fׅUs//'%WhךgqGWhXA#f;kw=!/k-58Q+a3u>EUF_P!ӂ5-n<b@jPͨ>D]:* E< : MiD'Sjӊg*1ЕPJ~QK3k9 Ye2\}ZkYeVV.>]lYeV*&XvKzI __Bm cPNơGSԄjbx 4b9D)пb)RA A7LR MKlW:& RƲjFe(^Fਥ=@Y3+n߇xDW@ s8ϖ pz?V5Cg>VA_bCL)Oy<<*"̧4o,y͕mt_qc|bcDqشǍ%4v8zcCρƙHu2s+!t-0L쨥Yt74vt=z(0h@'Ŕx-ID19O!hvu4KP+ݲaQsUC Fì1 =PCHsኔ qe&ř˖Ѱu>ցF8bcpT8GC+5,`7X@x*:4 o$RSH~b:r<]RSo= 3΅bYK,闌ނrMVvSÎZ/5[,ohLpÌrE+2uy *5B`3œM~CLB=39d8YNNƭ5eVvNm"ƀմF3h~a=|o׏:3 hEf?V:Z{QS+;e18 PqP"]̓Qv/P~Pu<G١v Cev Cv C{Zcp\@ko}3;N(.'j=8CgкGwuh]?rժ?'6NqLʔ3N"eun& &1zp<t2LQA&Xt l3lbNA"a_Q[oh<ٍ]֓yЯ7TAy4@@2| T@!}'h #װLUx0(KZ6 =/!F?"$n}3\'ŔWQiu17@c9C`Ƹqа2 {i܀x45S"hLN&)MS}0J~=G[z( 7@'JYR:RECzL@' o@j3ؘFqM4ha}^[ *b:)QObW7ѷtRRSׅ9zAc860)WIZĕ57+kn7z?< [\p=67'Lg.V97o~_Y_}f\A{[uQaQq 8LJpc(W@>Z&AIe*?1bo34Ĕh bʲZ\a 4, t25qd"4ŋE'K3:SƩIJK\҇08wAN(ޢ_ePڴ)Ėd8'u")ckp4VT,,@@곟@'O M#@ {:? O k 6 qEFON(q!*?9zPBXȬ}c^0 NxtRalv 'NJ`X(Qq:ؗе ta4I$GKj.}Sn@#bZ%1#MJd'g}*bEtb"F7@#bZ1 T~zشuۅG )R,QMwsB̭r"sb 0,PrV5Gr_,"FtR87ENf(9)Q,M 4uIm)7fhO k&vX1t c.z صIs^ %)1^$efB w {$.|Ii#džPH7:XyidVN&!ԩ8@cF~t2I&xzn5?#M)5%qr(TU"rNCRRf>L I UC$RSQj%CMݫ+*ICMݵWjS>qþݥQ'Ghh<@'SSF&,Ҝ1~QoLm&7r^D;y?62 l*fVF6$ (L֍U/ ŰvY&Q>|+[dz pQO1˂qK!VZgFƘM[Up2I&O.z~Xǂg@\p9+ )†_>]ɧRyS*c@'Z;T PA{JoQfȵiY^8JN( 3ni)Yc`_6g[L}=FXh3_"tU}]uƕ1#yqQFjַZ7V ;o \S}W1qe@j=2pTr^d8["nt1vQXPj`e cetImSXؗ/g8 }'@'Wq5DZ2:̌o!ce?;N֬+]xvtN} :O)_K8@:2نxQ&=-[[pqQLQTBތMKGow&o)88 ilEEI.fZap08R_F̧@cҏkh Cy2~ن6¥֎8@w QuQ}t5F} eL&7P~6'|%e'Att2MRURP30D׹Q 3{V" ICȂV?Ve daÁ>y,B|4* $e 2R5b+/^Xf(ɟRfNf(fgS"dp¢HL~]gm%2[PA$.ͅ4R8AР }~qwؙG|pny9b/C@?/(Ӷqzh\㽝,to)K9nn v=Ӟ="(@'GGk!%Hmr\:h<23XXM&Dit*xu Ј` .i%܀r 4nYq\\vr JʌT䬀kԆ̨KCVq *QK=9:YXG?΂kCbJMG&fp68jzGIep/|G4jm DCٵ +k@ hIJp>>. 8CHev*޺p[`-;ςuܺЗosRljō[< ?26Ԝtb2;EwF>4V9 4։_16pDSjj⎃4kY臑2O\ʂu@O\O)Wg!R֏9ܩ|.`YWLLи\m#gD%SA+>P_L!|Qg[:Yؿt@'aZao9je ;F1H)IJ@czGB_迻RS_5GEx |cpaD]@o{!ցN"gh[v|SprtR͡ڕGA?>iQhP_2b;4%&jStEb# >wvUIDe_'[4)"[ 3p@[TL$\rg]c@(1Uľ4k&IDqBR-Q_XnCd bcJ[?SH(D#"""""ʲ} u<h (**nz#0]bBfa2$!! IHB$`Dt{oGfj1jշ{}~s&8@L5uu:\&F̷|v薖#do $8E! C:c56jji82n8~?/Nڮv|ap 4.=~ܕQ˶Q1 _[jRh,ew-31n/ =uoC1*$}$Da5rH;LYnG{.$(K@'GWlP~2'Qd%mVπN>"-U0VY7꩕ d}cڀ-1rPڑN(e3T򗆎)VOrp!hw\CxwYl跲7ւw<呏&e_@Z&{蟖BTS]<o"ΘR_0q+ D[pIVkg ASD?eLю%d,폈b?&tQ%иk릚0p2EfAN#8s+6__tW@?B#9+@c #:dHqǘ'<%4xD\f WN&)uPY۪yNJ[37K dXʘQ}܎,5!tUJG[8PZV-=h$l *z0(9L }ф΁N"OI=ui68|lrB@+lo ˮ!2|Y>Зm}0ÈhQ4(q8F*!LjN'I VWklPΤvrgʙ0 I"iC$w~LB~}@S4N~I?FK\pls@V`/IW XU]}Z󟔲jOkڍ!X5 Q+`$zCey_U j*ge#HEH 6 8jCTOkWe(zVx͌2QWϞT?؎DŽ[zb.k9 hX:(N?O# 6tw"+X6qa[jñFZeh~ J9OPF֡J=2&.X6:cz1sQQ?p0\(aQ63'XDži a:pqKt$)FT*u;Fiz[G57< ]GG@&cj@\N*|sEe:?5E-MQ}[&(26@?=I&u)>FQJ\+d? 48T@)&T)EZBS f ޔ6mYޑ#hE25O@? |2'Q7AizQL%=ĔR)2A\:BȄ)4_dzA:)!6̡atG{'2{Hࠠg_54==ؘ$jGg Į1y x8d%-zn3rpHgShcl6k2m08}{%pVܜ^K@;@ ,)~܆gk? 1!'YGC@$8}!>7@'MywQ$:xt]@l>ŕ4]F 9ʧ(sR:^ S8|@.Q8NJ[TPXW3G z8yGcu[3փ4rU<CZ"rO(`Ror%-+Rv/wa긆݌-dаi4l.VaK=AB&NJ2L&F( Zoi|,#2@ʤ蓭2,dzAd)Mz8y jwp4.8"T5{.s~$%Yy}\,eW;t@;<и枨+ħiP.'}Tτ.}\i25xCY۠Lv*5, ,,~nㅠ:reP r4pE?g%(WG!иJЈx@Wnr O~3L|h ѝ*:)Q,R-A(0IJr:)QTS^TQM*@u{ou!pLR ~٘6tl&,8'@.d:r c(ji.RG8u_hp}ᬄX7 Kb!^ IX[>dP-Rbv8ϙcF7 _Tw>ēC(! >{qU0cE~\CN)_iL|Ŋ:&ZCmtڝPw\QˎQ5ԟk9T@Z~;\+YyFw_j* !dk,#q\4mc4T:ȈZLL5~TRJv~wiһmGx Y6,)ԌI0# |ǒVh0_0t OF& 㭕3탘a)476j2Eּ1 !"h$x~R5F,} e2ŹHr !Xkco jD_麀f)#Ԋ62f4Elv~(9ZQ|05 G]5/7v$DFm >6ir܁}VtPW?ֆZ Tʌ6tl8"Pt.:Y=d] 1GM4_=q~hlR!C4Cs1A tRބxlSY)qTCV=/-?1 . IBQk:m'yT@ T@7[0oH7ϹQ978*獜4FR;ר  =zƟ6:yq V`44GCm'(>Fʃch[+,Т E/P^ҭ# _.jlC˵BR/H\\+X^Dh_+Z,av^0GUZ%dc Tq,Y&Sq+1 h:_ %S..l4 FAa f֌VR5F뢖u} r7t*E#̜imNF(Da(~A#S2֌tO3ڬL kac5cBNՁZ *qcs#I翿qiPL1Q=ȸO@cB4^PjjV*!3REQBV5?R'0)hLȝG!q+r8xxSy5Xz EuAlj2"v| "$Xo =vZIx^c_ҼZx8.Sm*'㴨1L:;M(!ޘ{nÎnT_xZ-3TݲMdv4!-B 4T@c0sü#lG<:)Q\CPf4`*?'B@׾ ^ןjo #.UòdbP9_ bwPEy9CaHIi8@mL&)x“:ylR %k.yN^ol`㐘AZz>?DO]OyŽrRY-gaw D>'db懽WI!WW!~"Ճ':NFS׸?CǀN,?e.1МT('Ȇ80֩ɣijd>x7 Oyab|b$cHtzdIL x-RSe-Rpb_qbf\|XPת>j, ,rO?R8Í͊?SD0x]<Я3B3R},ϴ fsA%KSn,bu$*) M@Bbm(`"6/ q.zN^mMCtb70Z/uQWYNjrh\!7N^Řaz~U]K%hQXN^D@cp!:yYbt u.Q,$ESlKJۓ)v$ECׁN^Nmqh5s%n^1TDc҃1 TC@'@I1Fq=аRĆt(]P怆 5{hXង[syŌ7<۸w d" fOxr}vNa[Vd"oNZz'cqڲ= -'@-͏c]U#3*fDQms㶺@a3[ٵ{ -c '@%a4/*x+8n@/ߍ6XP"#<aIj}8~~ʛ$vlAΒhn}`; vHcgIji2)ਇN9Yv N;0Îz(GNC<#TN"ŴiЗNU@'=@' 1c\}ӇaߔutU41s7Bf>xiveAYGm6ڰ-'54 G kt\I [M{3!%L $15bR:@{hZrq9ltoYapTGMOC;3G!D(CSIQ瓢K׀N*/f4( L&؀UtRHaaJ-џ@"#*43g?bhиr!̣B/"q7=QD1cl6_MkGl/%p {*vuÚ G / N'"QK1Zzi`?zydr+Bv;H^ėf [qu qR"`WWP?cGme#J]Wš~invGvaH repe at|m c RLڤ.G:KnDsWkhDB=B8F49k5e G]Oa+RtQI*QYThZwЍD-9׀N"7.t^/`nԩP=y 3Mbg45;^˴S]uC[V5g0@' W 2"Ӫ =ІhC Ya4Bj*FZy26 i.T 3s 3b,0| ~sbr$e#3 t_[do Ey40PRdH3u#tG]ҲM[D@'OP NF ߅o&0EI"K6 X0$T @#YۯuDYO^G֨}9Zu1zQbUou6yx6f="ca[.iGG] bԑsup嶴S3mSv`chlf`rh\Z)RQfNJ{-6AyeJ@J !};P- PG/t}@c5ۂ_TJGl!MM=u^ݙ5{'@'i5 yߊ&|GnԟK9)QAq=p8h 6]opt3:PDaN/t:y@1SM퓨6 tRi a}Ō7U&/ntAye @O2'ŌG5YIrQ"s OP\ <XCKAS]|Z+guSbi_"hu@S@8TƓ9R +a'wWF!2UI'(`1XR돴u:RʺZtQS!-PWNA=PV-u1`n Z Z.{'Y+i0cɃE@..n "#v>Ei;x<fIBv}!Ai >kI[?oC/DP)TPzj:(ȿl&OP$TZ< ~OcN"S(Mq/`(J "д@GTW)q( `_Uw*RwhaC'^%U:"M2`&Q4I2dքd7 r0דVLHvi[%\$fIinMlʓ8fnv6O5aXFqtKb/AK@̚e}]~4}K}k;} NxV6Vo}D 8>5Ec($>`ɲ.; vԚ YF13q(zUFGnChͣT "cHO .M}Nji<-Pk_kǫ5&ĘנqwMgQ;cz vX;KUTts8AR?qUUKiݺJE>q4_,㔚Ec8딮a1)ȝ'U&T>W᯵hrx tUMp&M|jM*Xa֔^Ģב]P%y,Õay@ *w<Œ*&. (k*M77!ĕF0^2 [Ss4,t4~q+P$/NQS/NGHV>H7S}iGV-=B#x%E{ݕ՝?$96A7nqɹ nFP_{!w ?}9! rfSS;b: ûo{b:U] L}ԇeY}3b:g ;d ;=n]#a߹,s5 C5 C5Y{涩YqR`u}#(l"mPj iwP#ʚ"#<~s>YL Fd[#iA#to7NF IӆF@DYkDˍB3Sr_#PVd1[N@)5?'? 5i<$ 6A2ke)" DZB)a E茻:QRfahRFAcC=elh<2ǚRv&0u}1D/q"[9PkB{(wq *WfU֣M@T= \ )UJ [ڷ|l7BH}oԏK8O[nN/Kg^&${}CoxMziP܇ S?p5m>?$ 7ۧ|T]s%P2(ZMptkFID(k*z37 ZlˡLu 2#wsF@EF@!#ϔRԂ,|g@ }ЧUٍ͊d?s3ʪjTY31_'(zvC%0Toԟ3TοzxG q Gѐq>8mZֻ87Wpn)(0ys`7$۬6vE{MN929r{ , cn؀ϔ!aBwepb#6;9Z)65HWxoi]5GGleO Dv Ǎ}o0GQM 碭j;؝@)%f])W .A#k6EPwɪ3 %!@A1YfUP"E}{t5&!2,gK:UA!0`W@ PK| ?/BLv;)WZSdjB>6qoM F\R0#oCũ|ܗ\ǐstTvRu׌F@ gJd[A*$MEdI(*pHlv[@E$r]\0\i򴀈4sT[P@/ʾ ;"*q81/Pm^1?~ ۊ ] #.Od0J }HedSj{!ؔkq͞]nW讃Q P$GCJFI)*1d4>/Er^@,48$Nv>"i)!g2e9P?!q©`ČP0bD R 0R0*#R0b;@G\q#*_-PrFh]R+b@tF'EDʝY!#D!9Gs욑~6~(?Kt;jMyafA]V*[&4f@)̓]uЃC8G+I^< EiԈ BjC3v?vM E{ Q]>` PTM(X"p#gC]mwQ(LLUfSK&E^xSv#$5qBe]~S0Cn1@5| #PBkB>~fTq35!ڹ۠ZlAĈ+~DL_vZ(qR0]*jU<!ڀw3P)+f#~@R@Fa^ft{ļFI'?3P&#&!.`]uUAҡ"D벂'NUahC(rUҙ@hM(qV4At!Z:0,} d5!Z207:&CsB47wa*М͍sk!J(ڀhK.t{?$-]+0oj~e`.e @(Q07ܹ*ڲjM`b&XXk*dSf{f)}\bĕY`O0-kdSůW4b?H)4~^AT0rb4/C]vD1֔N*{a*/ϾLv"ngNqi^%O'); D֔+Pkd8WbR4&$Kk&|I}L3iXhT">@2Mh8g1jYL,"U׸qJvQ"UՂ鵳 #VLa\*kVD|"]dSf2r܈iM2 -P%n"1e`Ds8V0R`#ɻkʥ z|j/΁Z0?EԺ<!坯V_5!XT;~4 V A&*=sΜc:Ԛb.{A)eLB~,-eRʙ$JJ\f01Z-q# $G-}ӜRI]ӲӲԎS39<Iߢ49#$5A DxDP <a6##4mCljRhƕ!闰0l*ItE@~S(8ؤ0by3 jM{kѲ໠Thֆr >t) C{Lva̫܂>Tt_픣<͇J`䯢PM+P~Ts,u>[Y *cI)>4ٹdS&̦`j6(Κ/fY/k)vOL힙8lZ݇琈K^Z@_< )8e_:0XtGf\ukuNB>gTfx}=u(AȔ} <o<2[uN8ǞDcA)M,TȦig@pgi܅i(i&Z>քd풙}ftYzUmdc[/Qx 'E8nOx}ijdGʘ1!/5!3E1oV| d٘.t=m4.5(nEW+\(bތT2W9tB馔A;]D)ZV}њ2[t+}O*[٢|MEMԮmPkdwbCGL4=$TYLDZXS!Kjq YƵTN{G}֔/&DptPkm%"-oe|iPk";P076[3ɍDDYx> G` ԚLI".cabK0b}n Ԛ" kt\#\t&耂M3F!gh*_F!E ]3^3qV](Yu#.+qe1{q}[y>:x~F5EFSWx*MDi`8*s5eiUX$NǺIqqA rW{5%iSq!Y2]kUN7OYX=f-m;avK3U ɦgo0u-EyPk:sb/j=U8Pz;q±SYm%D HmjC 4!i;)M/$21+M;A*JJבJ7flô}M#|oy?5UPk*+`@k`r\:*]+q*MpüAMXGuM +6Tɉ2}]! : vZ .fG?0$$yR2`g0FWQT#Jv.eDIsl*iCe=<5SzfzAԂ!r"*&~Y.ܴDksuؔ8RC5E)31#b ,28m;wUy`ė,ԛ&$; { nLBhMHvD8n܇К,kpe~k `SvKg%:q |bv_Au <в:`vDl/q'OS՜Jgb*'>H>Yo?)ּEvzǍ-ykSEnkEkZL.U90qYK4;:hО b͜)Z4k85}{r>\Y>Fϸt§HZ=.T\d cxLOK-0ٸya'x$I}ʍDXM>dcU8O1 5pКNjePkM ׻r!٥O!r&$ˉ3n~Ctg Ԛt1%mnŭ,&${RqךFKцКl6qC5!9"H5yO4yf|p{ۦ~D/ oKn3`&aY}=p{ 'o.ⴟ6ʸ5:㍀Še#ze GJ8;hP:#e\R1{8KnW4 8WJR}v e<=b1Av)˅٬cs815qX'5o08ͬy,gW)7[v6I ƚwy?Q v#Fm)%n(Y> j!d;;U O\@yl;MMSnlBh1qʂ3,8xGLe"ٶ_RKcdY5e!nU1EeQpҚ yCZ\Wc8rGdk!qFrp~l?-1MdRdSvKW@Tq婈"1d*#~u ?# (^7ܝm>>PL00ѻJ]t(q.6}K?S_U-P4{B !AnDR+5JRKG#̱lP6^#K\y}GlweD4b~MB'7~cU?|x)UNFqQҚoDy-aq4o>HKWg?n#WL]Tssn$e/u-Rxr>Fr,}L6uD_gl5Gb=pg#c)MUs< {?d'w J~/ۉl9d< $'< P}zԿ5,e>(=2Aג߆L(!'HnԚ2mW3oe Sv\QS[TG@ ɦ<>jπ*?|œP`ąR#W&%W*qXˈ tc"nZd T^VWڭ`El#.bsDZ3~tJu4$H5VܚdSgPw9.r XhPInBe ۿR (q Ԛ"ٔ8"Pk1` {\ؔlc9/7fb#>HQ-xUv/* 1 F F k'h](0oJC~O{iFí0O>eѐ \So' [ Em/ vTY0ju?O }tj\ #jۀmPwH2kJd_L}<]ZS$K-(i8.@)=s^>`z]P,dܜ8^(`.X r!F&3MfwӸHL7~l#SPkJd;Q}MfmD9Um*6ǚ2 3I̹KOҺ!x\ud^br+jD/r! RN`au_@ę큀 xͱR ɦ̾.k$ϐnA ̟#OꪑLi>>}>`DG1xc`@)]q4x3jMZ""KLFޕFv*U0 L\N<T?E~2eZHhTp\E#FqjMq.56T4qt[fԚܶOҚ?l= %йdg``if e7R,\#/w$d"gVnB>URx( ͦh(0?%Cَ3 2W?s qyv:{<۠JC0* I ֗xYTP]*O%H9TxhS;hr $jMvTqtiP;;MNqEʄ\:e a)ʍ#JtY%4FY@81Tdzt(ρ*}DTD/qp0s<52{-n(+n*w_,7 tEaZS$Cg ΪL)zGPT*P&=[Ay@ GUvjUA'OBUּE6՘#1@oSEԖHC4Q/ w}#JK?)# ԗ;Q4U]v$dʚqXS&Qtn@sGHο$ }{1gܸq4BreMɍT6&[Ȇ"|3V1քd/ {A9 hbW;V0TH\UCAvy۽_o0H+&$TzL}Nek5vʋm?eRnЋ^4S(aװwAb^ADmWOERjzds=g)?@J9j#9 ]r.(`a#=wSk!Ou 4A2yFP҄&6 B(_J7(cJM#) u6;[5mkdrv…6!~.? "[(qw1Ws#Кl MV}DA Fbg~\r{Cح9-T?@[lN> 9PkJdSv $3jMHv "x5!}̳'&3si1`vb[ZS";pvq >n199ݹC!菫Q1fwټ&77Xrg@l&Uw3'uo WJ[P*\H?t>"[&TA:Y Ѷ@L | *_ln׹,Rˬ #5Q[ckWفԚjM@1*V@_ZS&z.*/m*ֻ /}oqΑc=$,۴fUPm{n n~wF ޚ V]`y0*4(>9p T,?%,`k(gG/1!T.Ԋ%qH6S)H94{|f7.|AO'нUY8tMlUnÞ݋ 1TUbRp&h <XD]U&,r)%H*=&GNՓ`8G" )M^Hɑt^ ׼n+됣V`ę9 H6^\ѬʘzQ4(OU)%ub>:NFH %ɎƎ8݌*pݏnԃFWP}'@~&wˈrj-DsӇR~! PX*^*^Cľ^ x*p ۠q` ̔*fEG !ql3}CZ鱝,`i P2 4ҏnMS=C^tw/F_3 /7 G ?=8 %>jĪ'0T㑊 OkG7.R ۑRCI^Qv/Q՗^4{ {>&elcܕT&^@ H(^4GZqЈ|ȰPn)AA.d#h7]HPȆ}RƆDLxU՟Chk=J{c*;G!?}W_ďy0KQ0";G?ďy0wknԚpl Ԛ"ٔ'4W^.I:>1mR7hG\`%`D,0w: %~α;֔s_]nZS&`A:T}քdcQDةu5GEL?cTGtG,wyTՂns|xdvjC?BrΥYG{YevH$$cB4$(IJXbywv*7$$! QTtYԱrJyJTTTRTQQR:*ꨣs>rٹ[1]yO?ӧ_\GA :$vf,_JZ=/ة%":&_SIKGm%;N%G :մ6iUu*iTu*i)6iEt*i-`dYN%/ة%ѩu@JZUN%^TilCBVЩ^թ]ӌѩ`dҊTZ$~N%-:>_JZgUSIKMZJZ_SIKctceѩCdS[_JZM.%>|Et*im`dd}":`:ȓM}ލqhDe{XDt*'~NiOyK+SIk;$K>N%>TҚC ɜ%ɜ\_} ǹ J 1rdGPgAh H\#;vPj]+^}c24ZXZlgPyR?* o۔>Ԟ-Άp$B#fr$%*P4dMQQ?+aÙ26N猔^@Yۉe-=iޙBo~Ad(3⟀#b.~ uJWvQ0CH˩I<"Vb/\jw:5?$tlVm83bOuVv=i-=x;8,68,vX-pPfnzWОX%0oLV֖=]pqf$H qD&y6؇ՒWV5G?@'+}@y oB#Sy*\'4?T}a`Dz7W26lBϖy>qHȻeu%@%! z$C߀6]j!^]]eC^ȑ_EW;W%"%t¬5ȌJ`I `IF npI rrt!BI9u3G.ɰ.=yGՅ;P;p#0}+qV%[Z0V+@0y!HB8cB`C pgF@rAnKH7W3lnC=̈U7jlm [!w3#^9z3 g%}^A`߱Wנ~j e(3#觬72yBk} 9Ol2#dg@< -n83n=3BTsd \.xոP_9pWcY.u u3yN)y.ma>ee{pHê M #qU(&yhf}̞cxL; ;E~@F2KF.s}J"Ű--7r3n$INAi+3 f`{'D>B?飀ra33oz3讠>CY3.P5v) w 5Y0}w$U̴z3hIkۮ1}yƉ;nLYsvfZ}>>a _#bDMHXE]JgY3}b۔C$׼$n^D_Hv)-.c|V2nPޅD6ޱ퇊$5՛IzċLKuQ{It#HR]*!c!,seJ'V(5ݺxe պ5 Ag1//ū 3k=j%h=" {*m^lԷ̼ 9GB.uiBu/8DP=SdXF0yAylBmljⷃ{܅=+2ifL9Xɉ=KE5t:4d}j"'mEe)}%YŒsm6ZAժA.Qd,OPQ_ĥɇV'D/hvī_9A&.q䳺TnWJ޽^J3#X^|'8mnh> Q ڟRc~ q(@Ԟǥǚ:P*QlB!r>d XMY#!\EJ,mbIe*^Q] @@QءT6,7ÈfMIx'qj ɎpPeA|'8a5"uVO:sfХY} f!~fp'P5 5BvX_7a:"L#) i_HSɰ.Eng4P[XifjMVC|j6 Yln磆n" TXHQoBibg$1=[ZjZ44^4T2W,D,MT-UN0n_1B٦eй e!^bV,Rtey}4礊Bl@t*Ig]/iD8bC *Ac^Gt*^K;!vXn b嬂 +1#:J !vXnw7R!>?yѩx-n`!~ uF[)+~1#:h mbRVAZQ:Ά Y#:3 ,7.VH=K%ڭ-{=.@#KTniU+vA1b)D "J%KRT*Y/U|T+Tqze$ *)sF2rKhDO._ MD7깸Ȕb$ J*iRQn#7#eSQJwۼ*mn*J)r7k26J6eu/fg4UTG**s(.X\-E. RQ*m%xɦHl uu;zT 4_r)D)H4& b7V )ҋQz3b7ơ$rqh J+c2?gf'V~KTʟl6V#?Vun}ڗ]h"B#*O-C#*v#D/UQ'cUaCDt^vvм. Y'h$%J|]:1#7:M>_ҘkQgmz]:JcÏ~hd-WW8+ZD/TqDҍ_ ts5' 9@J0 8r[fQ)|Wru,EŲ _8y(kTySJsmRlUN-Et*>GW|4?Cś%=C1[.ssl$u쉑?g[$ u6Ùt>y]x ~Uݯ>Ts ryyz:&}%}%i=s/p`?եvz>7y#m7\ʤ}Gamh#Iwjb)T<@iH겐DH7. *?iĻQ(bǁX-8 SPa{ +OŴ%` kP},+QϽa!FÁpHt٧;DzO$եRmLE HuY6Q*BygJ. *o(,X"}{Ŋث_צg="(iq>+beE8W>DTx|&resU^CGʨ;g13腍$"[&/_!H[_o*jO@N'UN޷GP79hsٕ{uMh#yO 벃bSU;_h:Q"/4U(4#Ex)SFV~M:W\@+qɻg #TRb٭GyNmp}ݝ [6!]vS& :ѩ⚛vm nhHuǪظ LQXEt*F*F(VK*SIjRJcMZJZ/ةE8a a veA^>ѩ&f'Sso>hBS;DQo~Jt]LFt* vk^jaM/\fF&{cwpf"oRԻoѵ=@Q\K /s3#XNtF0MYA#7IDSPN;QO3#~*c +#ĺeO`'e$3SpGDp"U_UkJ? p9pӋbRo{8~XvS @pݞZ;"{F+|73BI1[,A Vx 6{F+}73僾gJĉ-lCͫ]'[ aW;|!)gF|xhg T3h#z爝V !*8y>tV?^>,\H?~Zp' ŶVOUӟeF8AE>n1w.؋bݷIh#IuYVVN2#6jI[xf#|t #7KOڳ %[K9[%V9h_Zyu귻 VfGQʩb'ݩ$Ù1ss#5͸Ŧ*>iSL_@Ie!Nct^@IBʛ2j#IuYV9!5%Z_V mD*m2A}5$C՛^ _ hHR]*r/WdD)ƶ+彸M`po|=Δ9TfwYIN-ַ$j#W)шfWjD4kN^U-{ -7͌1F-O _n_ 6Sh#IuYP}@uh ]d7,<+aȌ]( !=H`.} fP(B\wݜ;Af$GWOqOavr63ty=VP*5x)aʍA"==O!?'oO-4$L)eFLk-=bmL+2C#*6d?'6uz܂FV _,9u yYFtR,Ke,E4kH}et˚wk׫j ?HR].{K5y>FRbϕTwqij;JjQWBS=}0jis2 _POaS?߫lC#*{sh#Iu9cTWP\vUsmප&QUn ݿ;V3#v91:(*L*̡O}Qx<|HgPWB/ZFTV{9"6ؕuYYicMxb).:QZqN㲲:y7.\*߻y^@*;O݋0IՄ~WZ6Tƽ}9=:PF?땞Cp,^l{Ρ[+@Ig@x>zKPʈ8y6TW}w@枽T@?4uKA]sG7ˌW:}\v؈J*t5H1l\A:\ = b\Ha˘pr_1'UUЇLĎq|(3=j@ SBū\P?$T"KQ~i֕ۚˑ1NnMn( u.{x;}\OC}US66i܄Ş{Hf'B1e5>1N٥HceJNaP#`5JMso(3I;•B/6$e>}Qnf_6T bQǠN$r'~:îj*}4eV.Fr (:o" $5̈e Tf~_5ef#EKF z:~mΌ"y,[KWI= A#Q LBZ:8yj¬˾yu/iffl 1*# ? gzGYV quo= P+ik׽sd%CmQl-P}Ңíp#(+bπ%Q!v3mv$6C!N2#VL*`|`PrV)kldwN={+ϡ5}DP`UL!s\m>H6Y*g)YsVzSػ+ʲN}em>yI1~'㥺Ch#IuB G)v43b&/NaZπ=Bk=^._=EsЈ?U֡L.l ]tʌ`=싿I[Ceߡ̈gD B8YB̈{9a?w_anGg){ϛ| >9h$ (Yۿߋ&ծ?UcNY~Б6$[):QZӍz3ezee[+߃Ǽ&nR\IZ -B.n?_zOsOxOzjߊru;$gAmyP/Cч׻{V|JGPݲ/xPP>S>} ׍ V#\W4S2ýmfF6BbӿgmfFNQ = L{, E^k3̌/WˀWS4+§ΛۇW 9Qr5f"v؍CpS bOKU.SL*u@e\(8C"nf'7U&7:a=M7<i)Bu:[Pnb={$3.Q AQFj!w@i b+yCtOm$.7݃yTؼi-( ܉I2E B^C'gP;곐ʰ&ދ?e=?]}5@9*~09)8ml{v2#PԄCnۺ}ǐܣGNnG6Ca6T @GQ`eFX}44/ˌypyԚLCkBbG$BɛN`9%v}Ԇ2sʌ9pԩrlC.;yZ %SbL?4GfOdjkhdf k 2"sTD_MA8 S5#6K@`| aş׃6l12#jƵ 9:ɸ9 ʼnWG*_'D 6e0~u$3B sZH6f=uD"GRh"RblK1䏠qzg }hiHͳQ9RlkA*TO"HjB賅g SW-W'>Bi5bj/;r߼UJbQ'f|8ʧr+l rb^̈_Guyd9 U.CUWQ_=Z'#l<^dN*DGN@7+ D#lÔsw +- af |u% wsqq[B3 zP(m"{ufs{nhATHWp Cz#I3AT^^uZi$r2vDF6n`U7Je ΐ17|D(ŢrF{J? XQ8eRA-t_ *H }O&H~x$vX&~#~N-~|{oAtlr\hPP)H vk43nn}/|`ԔK.eV#D/kt~d9,Կ[6x m$. T6N> m0AT"W6 T7^knWtȤS_tͮqͲտ__eet2` +(^t%iW\Gb_K=&r_zWv~eBJWY{'>^/Kxy\>Uh#Iuϼn@xs(^'? +JHR]/+^. K5-d7 d83;ԹKY1oPJJ}2fpM$.Liו6=HR]Ravd_èVnR+IkR^OPz %`}҇3#X Tt+v^+PK K|7wMHJҮ+6TqvٻR^;ۃpacdvYv8{6pf+a}d#ry-"l”v]yurr@$Jy2>ACy x:%*)ܰ3T`%| vkPK6K$~t(LiוWylYf"]rM{cB4(7(BtW QZ(BEZ~EN"`Gz"EEf+!"(Bt QhˣѸT#?ܨj~ gP{(64naAthP7sHtygQ"cLA# tC]WʌUk]pނ!efB|ʒػdF,Y)Qm mU Z'}Wj2STWH}˚Bɮ`ei(]sMx._)&Ԗvcn&͌Ip!TzX)Mw_A.0v?y7X˨@}M*7ĸY? |=ڢeF3#t) " yA4 .bΌ}~?5ޣYhģ&Q(GW=ڇOΣ=ZFD eѥ<^@[7 J;\o V|nUvu[suE [V|n{!۞3miwBibܷUCH5@!.|ҏ8r\'4OòI^UNcwj~8R_IZ?\yl`j(ޔLEbd4uYUve/F'a/Pn7bѮx}}ӛs/,CkWA> }ξ}\؆/.ط#/)ov>/ط6Lʌ\Zm!b@5<~gAI˃|bWc1WɈ.+9?ߌ?/${1Cc/)+>(} čvsD9Qx?$n=I.GqLAbW]Ɍ{bV?̌ی!lӍiĭ繻J0Bqlݏ א[u\Bܲr]8# (U$V^iZCm#` Dy^o`oJV}WrF_vi=W}Qy%b瀕O񏰨u83~:I$YG喵u}?3g3` 漧c:T4*4pQaXTTTTEEEuga}{}{^?k~]\Ms>; YJlVsޟWwAe'yt![O:FP#v!|yonٔ٥ኜ8q{m}A4gy hA #y ˳uPN/]vJR5wVMhG[1Dv{,]xb/go!F@%nC;{;\B4a/q c5-{wgoI!A%w`zF[Y*FmbÁl}cn".XI^Mm#БCd!>%^AJV,NFSaURd0S7|}hY*ڵEq鰗8TTAŹM;XYc+/rabTa)Xo`;Byp1[5ҪAU%F'4d"$(nY֩xՑ|[J 7ԋhKm;@,q ڝW#N]`>э6# q$n)hMN+IUȫI:`yLD'ZDӠZ1iD}ЪDYNEmHvנÜmvRPm&n^:fg8vciϛE-t_D\U{+T&{bE(4矦 m{,\xT-})@ 6e+o<=ݯͻ'VtjE0L$=B[H,Z_OG8+=Q,8|L< ,6W0W[YnZNg2SZՆv4T d~ 5ؔ&0Xv{x4"#Ŷs6A8IL@~/1!JJl %] @ [1ch^K.L TA9ܦlTҼbo\Nzb3m>Bb zbv=%)E>& +)$/c*0hWn(,;zYa[:k8v,4ם]1냼50R&RDLU94AGZ}o9D61y@"QӃ&HT/Z@bДƫ]k̢;oXI]Pѳ+ȠSçHE4xٽ{Y* ݬǼo[%;AΠPdu>O`#.J"(Mo AèKΠxSިny̏(^Hܯ&mTy_U[޴"\Zw.]7X9Et (~ot NPi\FSc0olW(* 6 m36m_.#eןKVzЮ6/%Vܦ]!"O$;Q(F݉)( ])mSۓŮ,]ŝ|#}֛`޿D}7=_̓6l3S (lvt=ls0.0Rx6}+k͐,+k+dťa-=Od58An{ObJG.`N"wCg}+:|1:rE+>6\m*+ow{/ P%.@.2h9\$>"֯tőuce _>Pɓ`%jW\ݥ9#s$L$} m18 <~ixu q%RxV$]W/ws۔wࢷ򅎏wbVTے!]3#Eח^[ m'xe o6ُMg?b4x?buQQ}0e;Ei(RbuyZ[_`1`Kߟ-&]ߟ+$S02J+ym-Vi1ۅ i ⱫL캩n ݿu-(حt!XI*{{ytdmMM(^"<{gˠʞί*i/̂ mݞە׽0 :yMZ &vS9KEm ?f+n抻<")S퓳wAѨ\+/׆;kኝA>8 31 2\S@Vkʠ*ݶNl.$Cz(K%_}dUC L[J R7wP^\Dd\Rj;1٫IO ]w(| ʚy=K5b ,2:8%Ly<{?K%wBFw11#8ԹN@Wb3ռn>-⃜69ЖMޅ uGF{`%jWbsy@J'qZ>:e/}tW`d`%j*:C9hE#y5}7Y= ʍ9BmatVsY:K ΒGs$/ce:Hy_'+F>*XbNΪ%:O[H417Mb+ܞl;-7 Z@</6əx3>`/+(WA %qZH~Pwi0MȍB0Y5Jބ4ok]N3AG TP5'"y3E UPx9:Qa[#:HH|"HyBɊEd Zu7)YMGP19c;(Y*1cyG,&< DRAn9t#UStVV؇RifTfhnVkj^t=X_~z%Z)Z)Z)U\aָ /$@_H>aoPc\%sNS;1B|Anv 4,x *yܶ9-tZHXAՀ1A-H/[:?=/ͫ첼Cܙb"QziRQW>G*Ȭ]C"P^ܨSoO-[%Bޞ\PQuI1嬿=@]P؅6~OXn3eξiKM@mRuD=U*nz6Y<}UB5TI]5aV_-38>t6$>}(Ur 3>"1q$iזFɭ.f#B&QCQks~(]S-$A$'U/$S`Cb.3Yz#YUԓ㏆4 ![8X[1YZmmCou,8MӽG% .9@W+;7ۆ_3I MÝS.Uv >M]zP(:AR8RʴRo77:*B6U,Y _ -ڔ绉s0JWm`#LvHwFo,Y6UH7F6ҍ|7h^['{\C;OgciE|S-қ3)V0Ҋ:>?Aq iEus-ҳynU &%O[[g H+j[ns 8 H+*<-U~RbyZHo*?)iEG-ҳyniEian['E H+e>/b7RD8ų^AmJ<ݔf "-R65Rr+x2] s9jaXc#t 뾾obS~Ne@58PRŁ+[E"mʋ,9*-ڔ[|cg6| ˠ=a >|sV:VvU)~-طvTTb;Nx̋GHNvlŁb۶-8U:#vߛ4ozW;[^{`އy?HHŸux,C<ݍС,|ψZlN^J܅vAR=?5ZO+0Rs#&ow~##D `d|K0b:46~my9oM(ϱ4|sMѦV+ ,:)l $U6zU_)ȢMʲ Vv֧ à#h%M.Q˨ŁVѽd,y= ͗ȵ?mbrmVZf8KU5Ssr4^Smzڞ 'nR9JVeOb ע?ɪ;)jZu],(C.<%/NrCY]pW1M}OGFPW6LAN9~J+.5>3bW p ~ ;$+{-(5( @[nB=NJRծMoN6J'y7CUJ^N& %NB+sU 0O" P<+{es$ڏMW݉5s`K>`#T/ 7_R)~;w.Q$k$-}YS18uI*(T5b'jZ<2_#[`mhbFR5R>ދ6TT]5R*.F򜈂VFRF-D.k׆^ɜABgłnz8xQYi6!^}5FoN'ùM3=FfUv Hl ^H@Iʴ[F-6ZudS^u˒E5/˛hS&^mMsq; KߑdLUҗ#bEA2=d<GS (6f5b 2XK$f MO1; Db;:dn9LK>@b<\(j%} ej%s&ϧ1-UL F2(^(y<\((a5Kq2V9z%rYp|ղI#0r_%qe,KbӇ&ϧsA'1eb3&Y8*,fMO1*`$fj7C'10~381".u1h?HF?V;{6HK*()qZGdEp;#v?WD+zİ FRuwZ#"6uwy/щul7u3 N uDS. | Em +ӇCӇVL@Ah3TMv@II활vEz6^Ǯ2x6Yܩ[U׎Q/h ҭץh6ҵggh/d7HU.O>]/hq_ϸ%XI -7}+IUw.!p6Wl; N:{r?(^rgm#5EU~O7"nĨgbdzlW!"Pp'M,Fu#!yT"FPԢ3AT [ZEQтւbt6hGaEL<*(jQQ Ŗ'0JZTb44J#]0v^(ڔ9 jWݾZ\d,ݎZo n#1TbxeqG(j#ͷFOnTK 1+4v?K%۽b:eXK_Mz.hKUO.᱒nNb>R#g] e乜$s_CF9Ul _+@ILlk>SU~Jq Ӻweb iݻ2UR$7Ҋj}^N2^W H+bֽ+^uh/̐b ] A+)v1ҊJޞuXRbU}<{WƜfH[gאּ/T_Y( }ZhiA *?h%&pnpԃ!F.ST ;;__қؔ_meȫ:JRTl~օG5ђ o8[斒"]U^J|킸;|F/!'9#&o1iq^5FL?ЛuёE6#,F:˽I7a6K?#C}xMy)ފ6_@!hbW؍]v>ʫܯ'> K#mfA{Jn[WSǻ^<x}T;^e7 |@G~qި Ѷ`A9 Vv.6it;U:9ﭭoP/,v@g>B)J>ysxr;aFr#2A\nur3YK˒G2􁕤>_k+~@DChFu"y Fg .7; y"H^[aKUh l@+([9&yrRg - <殑Y0hG`!G 8BIy_(4sF6|IGFIɚXYz* :%riT`^9OI#z$kC&$z9􁴃IhU#z8h^#=d "qZE(k$+ ~ꨑ@A_ALpܴӘBmc| gUh2څ5`)ST u+ Zu G`gtҪ.D'=5jZZ^X̀ҧ-JJMsknvۻZH)TBr?<惈Sȡx 9f J܇V1?BL Gq;jJ\vL5K%oc>n[eAKLóI5K%cFE$A%cZ^6'gs}=ݽ+ |W>5"P/V R$杻kE{+Y*+C[x譚:,}E&E N>ʚTY*|GJtouXAL $Z/H@[x%u/VbރݶAU #нXAM2 [dtWT1:fS,Cg1rI܀(yW=,?|D(}bq$*XAtg5E{H@#cЪ0ɫ9/$oS'w8j/VvSkp[ ΊrGCAQ-W,-Źo|`T7Mq6ۦ[V?>u[׷MWg%ЩhSf>h% 2{#lFA "QƋYT/LXQfC'X4)oMyU, fHwFIF6m6nt lkBB6M4nt lr]~]o">Fna4џ_@(j5|sfsiE i@6y'iEӺ1n*bd)0ҊӺotMcX H+<-4?%%AZQӺV JQ H+ja-tmiE<[08 H+ nt+ H+jQ}\R`uyZ`rV JqAV/ӺV)0ҊӺ7PQ V8Oe7WǮ rRlcu%yZwcvǎ,AZQ^[Y*/"5f^N@]KNp~eTߵj)@zw/Դ 銑e#ϣU r_7)?Nx/W`.1=/-Ԥ,w)|7hS^eI}yE|7_Ͽ; F>c^tvUmv؋` 1/;@n&H<-X-Լ}%}e,ԻJoU @ , 'gt qt{0{ Cdf|OAz/K%|W eyF 5۱k~:|8o}՛+BZo1Q\&hS>K ޤKܦ`dUn6zyPE 5ge~Ǯ2qV= #({k ,:o= vGիٿ'#|7jm`wtE/um,:&\m=W=k./,:,}ݮeޯ%.ГmVZL.Tp'C!4|8KEޡuPSlkŖbsmPS\;=~`R(}Myy^S>|k5 r;}zEZ"Y.WA2w?Osޯ񔬚dN*G0%0&T]'.:a|gŐ#TPwEnCc1͟]:ꊱ514%BC~ڣ" v ^c bҧ Ab7:de%d2ԉ/f׻{hmK?g1Zm,bWbQl@J'q ZǼGf7֨+&:mE:_h2z*&.Z,^]/L=.%Z]J 1/v۶k+ЊF(K͒[)w]S|5Tb *Lr5eV%'`mp0bhPaMb|ڊQm_zwu,8MӽG% ꫑5޷u}t:qoC;CK6}{2Vv~wwAnV/ؕ_-յ5"i5޷ZG~Alʫ.bYHI/^4(Eޚ8ht;j!oZ˻+nA),R&6奿p9+K%t7yx#7U™)/iĦDt FR?ZU+v0Fmf.Jr_͵ F2)S\LJ%ʭ{j`-lrU)/TF? CMy;X>#G 6# XI{ (WG>h|wdD9v7'_bt ?qsSl)(Au?e2'>OD,[Y*/Z>,vm$*eaq}CmRn]?sf'nw{dlݺ=Z~ʧ/Etx!qwm>Tv!oK;Raz(KEl:KŞ(=/jjk|VXbek9Lqw">i?*؊H>ދ}JQ[Y*qyT-wT*A\go22~e"nHN}{CgC{cкC>ĭ|R1?5wALWQvgJ609J< Wh߭ť{>6ΎP7ԅVhՅw:$wN tĨ:Tubu2tdhR,-`vh`hAEPGb%tm:MwYhN>VvԐvVl֧U`;uFuivtu/m"`~1^3&O"B蒸؊!Kvd^T_TO2PmNmqR֥.VSs,x !CY* }iހ6bt7|cb,mVJfM я-pƭ龟H*0W%dKT\_ "q7,qZ#䩜YJ^,CY*YcJZb'jybb^ly"T+%*|ג9CW+^ҕ}W?q=8P+mE>Ůpj=H!I{rޟ%L@5o2?k t1F',qrK4ZI ;g6(6z, }?K%]08U0| b8gg{g3tBrHAnKF{1wá,<T%Ĩmٓ~7 qzXI]~lנU69;Mx:m:tlbە~Omg $b'.eltFƺ۞,{V8WQ~lD76w`뾎bMݠe$U}T6$i)\%B-֪" q 0}T \@T8KT$w^-<΁Ua42Ѝ7J>n6 ,/ߊ{}OP[v~N$$! IHB $!FC4nQQQzMȀC)w*0`pˢ;`JD*UѺ,QSۿZ^=8k~k~{|=ƚ:ٌlx/\+u2@XB_µVc?U1)n]u TUMq F YU 7b.0; { 9Ma<4jMBDe߮>Myg+A[&IK?3{0lA]^E?3;0A$d!J?탦¼=tStNt;zǭWSYTT(T}+if?bDH6:іAt鴫LSE{πQC=̷d f!NWz _1b́/ 1;B̳怯"bFq(BYX0;O'=L)^?6am<&7W.*V5P4=8=6;O!%ה+] (٧{g~_5PAI.aTo zXi ]v^C1 ֠Ag~r |Ј<f 3 =] cPkͮO?E噽aE3 9&WCtK]ki8~869!͙+m2umuc 1b~1}ݘ_ܕwJ7̿|AW7X΂8tAJ1;1a~8}ƣ1t-Ars?ᡉ@!7$I=?A>|UF|P{:E?0{ 1pyUF NA-^@*0"=3 UG "^$sJ?izPX/JSaq򯏃Џ*/+E2 165σ*~t#nW@fG-8QǠ[tm 6T@*9۸6y3͏@1.! WuW{r7VR݂A2 9;Ȟ kX ASavtI:ېd8='3/!MEs (z*F@{  P2zFf@InW=4 ?5.sP|ڤp=J|wSS ]?KEJguﲤ#}⵨~3EdT\{C4/PjjZasxꫧQrM.ұ_S&)Cr Tlp{>et{Śih#7نК鼫o ea ĕEJXbY>͙b1 1g#J*`aP@wLGES3^txP\q{VZ b=bvb6 '̯C<@ 4~w.i5P8JKAn[^:ovuǗ_]5N%`)K,`1вv(fv A^e>秖v')25 LAA(OܶQ(҇܃ E-5 TT(d5:bNAܵ/.c)^A'S1UYTwEV ;U)O`@S D|81Ӿ#ފͻ jMl?BQ/2xH-<>풯)APxGśGj1F@i=Hq&?CśFZ [E(js>**17-j?2*~P,^m6+Jzlv*j72cxLu >mC7VvCN ŮWC-gM j)LFMPqn_KR>r}qϓ@{̜P>0caHJ̢+>IL!GZ즍ZwM`mj~&h^Dssl|0ϗ֧u`L|kbG`XFwĈ4°chfw-tGPo md!8d95:heDW^qzt됝 EU4ZWt*A{7]̎C73#K /5&>P*>G ЊxUEwaZ|VtϮL#'s{6tË Z=QC8=Ps3O `Ul=gr'X}[\f &@dISFG42k.)^dSgyvr=V0C ڡG&S&_?Ip[mŴ L5PkdIiݎ(D=ebhk#r#r^+Kk8jZ< FēǨ/ܿBYXZBR@rU@e5`@_婜5n_SX]ߍZ )B F6UVCztTǠJA> >TB"\Bux5@X* !\'1X%1:%D,,~kUz3#A*M)EoJof2X%񨖄D26 73ѮJ(c'BbLf\%$+1R$,ymW0bW0b@Y R"1UfDt" ǡY_6$z ыX^iEQSr2H,He2m3Q<~T9tQZ *6h-XGdTuTCj*^ZU kP1l 1$Hpy31I IBB!VN6JPb !,!KUb2LNʙp%D[bXr&WJ%\ JĒSbeJ"•naaI" nyT"|l,1JL-G%#QETQKQXJQ){=]Jt>*ӬIG1)G%b)G%zDi]DO=-p{}Z͉ / /%C!Ub0R2\qQbu qn&słTԑVqoM6d.@Ĩ]*j六mb@{ Vn 5GETvT9jBUl]q #|PjCZUA@b dCP,.Al#Dl9N"D9F+1>J̾Cb|H&!KWb3̸䈂$D+!KĪ0eĞu9ED%Z#Z9Aq_Bļ)Bh]N$!"\EJt@ c( "Q%Ì" QPn"DO3.J,"bD1G VA"\Y8x)э% GZeANF .1{ qG%BP6℁' mh' L/No8%M=:=2)v5N|䄉i R/t!$k';c5]}++Uvki/(C^FC=·a]8`ģV}4 t|8kZ{[WG5?×yin#adMѱJ_+PaI*5V%U^k-Ӧ9}GnE0da )v5N|tZ! Pk{`Y5-F\A=i L]5 l4ed<!4^ArsRBn勎œO 7!3P'C+viu/Ai܀eִ Ev%d3ui0l0^pr"dPXV#YTÒRqy]|OX))ve`IiG>%1E Yck%T}!H.dT®2{AsԚGdG 1-,@P*#5g(TiXZyKJPM*6 @zԚGd[l>^Ur*+C@Uy45HFuRT F|(6>_r8W|+AUS|_bAiGJ5*HG  +1_4Y6r\͗ۓ_]xc[P<][ hxh%T"VњiٌJ5FGz)|aʝ#Pt.!|ݚa 5Sd#q9߹="0Jծ1/@8tT~[N v&&!ZdkAִF!~ۚZʠ1IkP.8fj,Tt4kkZlO^#11CVњ.'@ĕKD fX|xY1Y+k'+U6-keMlh%\ A3!B50_J;IyrNf/WqD"L54&:"{Dul: +9GP"fs|/d ۦژP0bL(-R7IbLb(jKlXSJktL FKԵA/<@lŒ|R| (_CLwzY0f+3 Fl|2;V\}EO_CP׫/x->ymL~WKWMUS|TCݖAI}/}=ħA]ݞ(5O a7 PkBn PeB]!=ݾ-Pk=4a(GA r]~n1 5 tݠa P%8ƴVYwty$鷿}TŸ߆E_|ufv!bӛ>`Z_!LEb>+P0R p*n/Imp nk]yd+td^_կ ⫦)Ă8P`oPU *1EGv32vrA(5!#Q8@ѮuQ f@qZ,{rԚ-D81z(uAFīBL@p6c^0۠Xiт؇qʐ߂,=3~RWe87Gspԧ`-fPM%cAb:!_1^VA]ds/L*t#J@ 0ϿRE+ %Ф8EAѩPĺĿ5z'NAY2bIJ|Ɣ{IyUxu1Pz癥ez)2#D\?u'ZNWѱyAB c67>x/&9v]W$[ƔG>0rPsAq`bNL]ܿoU1c>Z+ȂZZ`p]efvPk 2u)5G:fTi=jͣa *oi5nH5-@ eh5%+dgm]@&5D.. 盲x8#P+ubak# 98UѨ;,3Xܩy6m?G0[~&A <~qm\u2oH?RN0_Z" Ni}`6+:.fIȮC+N~2k42hA jMl&Nq4>d*aL"ُ? ԚuԙuWWy7 ;}PT.8S 5-Z1k _aj;w;a11f'4ɞQB:do(Dx-PkdjJQ#X@Z#)HԚ:YR}(͚zvTDCwdPk@yDv4fs>ij}!P{rTN8e; HTyc]P b|kcCm?J/ 5>@iM@gDG ;P'jZ {D2YUnրfċZU9T1PYŅ ߐ1v?ze >TgkMyz|o(ܚivbƭ/G[}QGrGy]ѮM2kd rǢMLdbSw֢W0߾Q/k6 P(+!ycJкE=X KjMDDy1UbabU&w (#G/ {hr:+&?>8T5M/>aT}Ԛi5ME;n] "౸YaM,˰ٮA6' (㎴pjMl-Zd'N6'f;lG?6]l>Ė^"NPk}E6O FӧhCP7'۸7d:YeT?P(q9:sӃXyzj4YК&"{DMc81XHzDeX 2yD$6{jXNSyX0&6KbMeRRX}ljw@W@(Њˠ d% &ULUTm 4}8 T߂ ϐۈU7j&yJ8a; faUZ L'NvD{[ȟAtF̚Jwo@ԋa0hs*o I,qLeߧyo)q+5?1) b)OkP*#M4uRD(P0b`DCpw 5 븞տ} N!bU}w;|ff7$ FA 4Vp1+erP΃ZS_ jMAsZE-U$8hMSV nbKPkGt4{b3]Q"r#b5 0 kuPw 6,Gxq2&3\-&2n`#ɚ*esGdlӧ^0{]{StwkSqJ Q>J Ds^Ki 7pJxSJFӹNµl:%OvReн>*:שPxM:T(z Ut/% NzSzQU4w\I3:NVL`d(.Z XZQV.ZQ2M֊6tii)zUREPe%QlJ.Iy#`HՏ8} Z1E=K|/ 6ulWз;ʢp6!d9Bk'P_*+%J~ jM ]-5u9yrh@Zto@#9TTIo0;(H]-7J碶pR&  IҭS <,);]UuSZWvϋOld EYVBAэϼQL54?_ECP9#$nI>DkK.p4.N½-!3G$Kh1CgNjM,MJhezރeBD?AmD: 5+]LA JjSxvCnƑ{k.O f7E&⎲T/HM;ֆt?wgz޿{S2m#^8]ZYzt;|NËiZ<{ jMBvc!yhM5MgA0^j3EǨZ C$d9G>Fպ55-1eTb$J3\A Ԛ`h4EhhPkdT?z5u4=Cl0l ]u)Bnq)ZKQIPk-oMU mv;4lmǠPp"GN;D9İ ~LgL밎14;G{"C'1@$d3vO68=r(i'iԚ`ypo(w8ƹc>Ior˱WGrM'sx*OȰ^f*hvgEsYUB`ߕU`Uݫ~Pe۾A)DUqcɇ(|5&#\1)|80&# ܁\dzV*BK*[9BٍI 4gZy*V/AyO:zO:c9G4"h<@볂OjCL!`B83, F, F<}UU5  ;2g=Z#+ F4Xn) F4rUZ-HH_LVԁV" UQ!,P֧,+Sai@AǠr v*̮BJ.C_'TPaP݀0TY > fy~Ly69 Fd˿?=GZ3E{{%(5 YRE>ut5"UPkkAT'D [AT'$Q,~DH7dNv Q},5d00-4ւNv(QhM $5dgH\D}m kYrMb.Xc= e뮾m߫hZ€ 0p,z0``{W$J$RIb%QĀxxh@ <`U:׹x޵]խ> C^,a-oCOs/޵"k O~pٹWǒ."/<ϟkЛHFAaU/J!Hm [a^!fLwN-oJCH-MMn! ];v(1,}DfŽ8 ,73 C[E_Q7T[ʵ*f [*[U6T SR !+y"c,T~`bdLE:G,>8),cDa8"!TK'qS[alP,8wv^F(-dbTv0upswGK'bRT%qk,[nTHխ}ک:|=C'~W} oO~ο1P" Hp)S`;(!"\ a<@-j@N9?S%$4$5R4:c)ǃZ7w m-J/V_C[}kI·:/|;cvʱ/N- ~ _'S}kIkI/@G/|y(Hyf@ v‡g$BC$|SNS@Z~2_wʱ/m-?i_ZG_\jI c_~-?i_q7}TX' La6PE,9o_^F-sM[?<6Sy q=rᢵ  ѽz'|l/ < >DyŘSi"/Uk)]y=˿׋SφNvcd>Nvcd[p:߅-v7:S&.\[o#X-VǂT!~3%ү!zX4Z闰$*_rU7ÿh,/[U8'EBTM|-V}.܌I3*c[SԿH4Z)b~$|ܪJ!czVU 9N:W%Sl:L%s/bXOS<(IcY"_^8Ơ?;?zzԻ c/{цVB=6@6F_zl^Xa#'FN 96r2ldɰa#'FN 9Ȍ<1r2bdɈ#'#FNF91r2bdɈq#'FNƍ97r2ndɸq#'FNƍ9ɞm1OBc hjytr 2 h1FE)26BeZkX- |LkgZZ}XeN*َuI%ۍq +Z-KJa0/,Hº_dwV^Zg'PnvV+ܬ_^*(p4;6~,'14ơ_?[UժT6ZʟԣT.Q55 J c1e'bوId*UΞU'Ϲk!&J!KIrW?]wA|*@ yD>SXj!d2I2DT_hUJO?;U[pbJ!}?f*U~if*USUp;U_o$Vft&B)#Mڳ_FP-#6T&2)$c/2)OJ&c1Txnjxnjxnjxnjxnjxnjxnjxho^tΈr;c`g:aA'a_2θyWAs,Ǝi90J mei-`>CJOUe]UBGQ͜KBCdl*_a +-Q퉪xaed)L!HSd(͈~O95fqU)&N (0F3A)=>K?cv}HtMNyz)hqSǶ#oVD$I|.`; שDjl,\fXu 9!Z@S-*:GM `tɎ8;9Lk>W-CIDI%{˫z-\[l$8Ue6MEZ܄r-cp0Sk5.i6Ee&=Ua0 -\[# @EםJ^r*9rcUU>t~_tU I|-ݫγMCg*liѹp*U0|mܫJA: ˖:6^?(;ϱ8x֫?e;]{Zk?dx%* 5Pc%AŦ]N!ztA دTFh5fR,~TsKJUԓX^z NB wmq5cTބ j.\# e\QNcu{1BɸY̸gJd\UH,.kxX i.\[&GᮋyXd©q7MΏӯa˺cSj\X-|.yL2RM.u ;Z}s,9ZޱXK (܌X-Q'͈ge7 3oB;OԇX-*(iբe02G:"NNv*QbRidT:݇0N\\a:VĽ3 V4rAwWNvɒJwB(ù&6~cgP&[ce*'5oF7pIۈ(ۛf bC[sAE:2&@ITVHpW:*Pc߳;S.b8#q&|JEg {5FV$ʒjd4vFde4[!?A{Z)xNE[/t=1rkyyaF͇ȩefsPNXf:uOQ4e+l(jI_RA'`k] ǂ*k}~q풮Chw½r@fj$BIi*xHHg]_ET)[M]cVm#ځ*IFX}z~&(UO[UdSJ)M2&ql[:ݏUb~-\Ki7QZQ GIJ߄\Gj Kr{|VU +B ӻ5|jX$-oy'KtMǤr 8*. Hg]Sӈn@ ӎ]IiiM/0Pcęk!0t\A1 Ie[ީcµU'1a1. G5\F45|9Ʋ-\Kl(2WF˴5\A 5Bt5T晫pcO YĞqx"Z*{$ZjtN":*MU5G(Kl:-=5冇h7fp6eH|Wga/1R-TVkUs| 5/DJd_]K9PQFy*[(=-v #mwUU6JnxY~%k̻slu'|Ƃ1T=*!1]Mv&R"pRN6~u4n)ޯ 솔tQbG ˞䦦eA=o6e4gtNWh rV|#𹘱T2u ]D ! Xbkط5{)#XLA2(Ԙ=rn"$Ѫ5F]K5_۱C';pzёw2t2_jݻndv]l-\[C hTJEnCĬut?ާ/P_%Yf&C ۰.Qr.Qu8BZ/W! gnAuEmp< .C ӿ)@.|34c6t65dkMt@ 7-,cg !3QZcM}ďֳnjhR%p?-UC *&YC[%fozUDs_<rfKP+ܔ= &^eQ߀<;PSp߯vU> %[*&YLn$kQ+pWCz, ^:=ѐC-;fb?Y jxAT9Wɶ C,Xz;+^O昑uhZbw_XXC 5 B #K-SU}PHG4QnfSXi2ܟ~ptn 4pӷ`ƭ&ЉqCeFH ש6D84::԰v׫އe!GYD%SC:> MY`~ 8^,eDTkU˨H,{1sn-l8Pc^B4eU9]9]чaYJ;R)#91{ *=^҃^sITcf5k:uNg{ { 꿘9B2q%vȟTivµ6ex4{5ـO7;b;Z G jEԥj,p8r (4SWuDaJC̼-,OQktr%+H:bYF]4S+#P#ۈ&~WK dPB5nOyrL5=k t6H f$7P#By{WȞBd-6C[vzԘr{c-WN6b;k`oBZ2~ch<`m9ۙ#8*ejvew_) ǐ ^@PO ddw׹LM `kmXφ-~jfpSbXuѵ8c$/)a^ְ:7L"!/C'G̗d |:u7dTKE:ݯ/zj?idlŃNMul/|Q ^`&v6{M7ނKqYuzc$[U`8zd+=Vg[qڐʣZ-vf>54#6k;eA%zPdw;_/Mpn!ܚNvl ЗPT"M/T\+d"844 !H ȩK%,^0Cry$ҵd+mNgڅ FC%x?LTKHj?7nCCa9!H| SLEA%Oe_NBd;|٩~u#3zq8jhl FNe~m EK$Evt4 eR -ܴV}xWy@cT4qx5.zNԱd/.#z5f2oM`C'|paEZ-Vqk*ÄdL^":N67w̮ 1[I4t$:kN/v2Yֿ3nm* w˂)۶^)Άðh-\k-4DgN֍YA wUC_⹫Ǹ橺rwC7ؒ(/ U88n@ 7%y1RF92tndn&:: e~9fF>nmB1q 2h Z^(Jzdd : 0µŞ|Jb2|OkUaGߍ 1P?`^?$?WEomvj_bگ lD/ogaθY4x}[7sZZg[Z)H~HєX%:)d lFYr2N cYFi95z;PNafG#sU 7#V5=UPe9vep-23xw c/`jdb;wƭgA;m;cxL}q~͌PcFtj\pth6lL9:қ_6A<n -Ȥ^[|TVU֛w7 [83pWN*;4s[fJj wUSh!wlJjfLi?Ov EKW0#b W߾=ܾU$RUV''h';΀VU+uDw]m?d/.~M~/f27*Ci @%@ גuVVxpbK =+ĭ~0@*o1r 7S^ˊ^_t{-ؗ%!Dk} bj(MrPuuq_gµg7 09#µĞŘC{Zi.xke#q*71rZyE1|L1ha'5^L\U\qKYSȱ<.p3ac-vm|ƒaW2<^$Ū\;^.obC ?/-VбbR1+4ro~CzHJQ6fhᮋMg3=A;i1ldb hᮊMz0܃bbrӾ5þaߴg1X.Z)vKY/µ6ڽ*\KlaN9WT]0 UيIE}v5l)zy~1K;kK,7=kT&_cbg+ 9gPpVruI*kK#\%;qdgQ6^kiQ-%Xm.!v\@ Cij#z݉.~<ȣᩇ^I6 !ָ 2rE]yGRIL*P*ƠRAe.BohrLcwgrZ خ~ƭH#C^ᮋi?@ w]zƫv*#/"xş G*T!7ͦcYg\a$C'[ =S*g6fRu|0>OmUMݣOǰ/^zl-1 ʩ?aoi'Zkbi_bGjX"6c:ƶ)܌FLTIacxT^t~"Rͯ^tv݇rϱANGਿ*O~<^Ǥqa./ڠoY}6[:cȴpՋ8ĜJ[ ِJ6f}ˎdcБl:7݁GeM*>|!RQs$V[zkwT{ r֪JUK"ׇT;UYNnb٤=U)1 ÃwR>" ;F3Ak*aӦ}d] CѥdBgv4wV { FQhIefnU e˄#=bCk7H; >wR&n 潂tѥؑT'ykH U3nm9[ .rQbCr/1/Ӯ?9 5P MYǨar ekqqڜ]j] ttSz=r 1BYvX) ؈*[)p=3PBIK0ե?fdP#Qf͟BA#z8TUw>U)oQ PUc/Rq kDޗ|l}ܟV#K1B45Tn"Z*D/hOu*C'^tƟONO2Զ&~/:ut?9vjZQhl l lzQ{6B~/X}}#u^C/Bgۜ9 NC'; 2&!x1Q9=x#qP#mGV{ҡiM;N6VNvwsK{\iidsµ6[uz j )-+2Pc*6wt$Դ_/B-CYb%\µ%cTh U)@69$+=N6 lczƭ-=F(c,^Res+OAOn@UnV8該X)Ok؍onU_wUitw*96JeG>ukUyUv#|lޡKV9RB##>Es }:$Аo~%|N.k+SJ~^hPfu XVFOv-f/4ٓxsDٮ 7V}:fˢ7PR%JMO~ 7%a*&v,ʃNzGnU)lP&L,:A&CD~7,^l'd ɇ Ƣ 3ns7c#۩SwcT:59݇]_F#FT61=~sU 7->Wng또Iʍam??s''a?wUµ*䠗^iJwJ>>!CpUU}T-Q8Cpf߈X%ljƥr*Q-ܷm4grGvJU]/<{Uչ(HߌVU?'F* _0q_D " NuY$רBS$8{Pe(!(d%t٪Ô5;uXِߊ v4/)nS{:5i;u{Դ<ʓ;(>[5t l$µ`^ [ۺb2kUSe)܌d*{(SE=6쟪Jŧe񱧍B[uz qC* p=UϠAO]@CEfXz[b:5R~nm26ߏ hZOgG͈m1;pwkmXN/P eaWuX ,TXQddEeڎهN?Ӫ˴8BuU/ˊWQck&-*Z  詢pmZ *-8R.݄%V^5'QnJl٭Ψ+U,<a)|s9 %ͪ֨>ަ:ŊeE~[oߘ|˴]bZ2:8P}ŊρeEWT5 M=;ce2NFP C W`% Ͱ: NF̽xzNigP MN:jAu)۝}ς F#Ary7 sdS U2a4;4DZ* wClX c;#x{ưpCxe7LĪUL] ]TE?{J XͰϓT./\K[Zy\u  RVcS²тzUmsn6l"V}uUބ(VUA?eEnjy m(ˈRW};nWY(Ry߅-Vg)YF?n"V?T_'EQrpm\`vKP+):}ocÐ+µ6eϛDgb+DͰ^ ̈́/jA"A~7|z"dQ,tmEcrتJU[}Iuu uLMHe(p 0{cr%F}vUoB?RoBU)pp^D xYU z^UvU :F}K\ ؇R[KtU D;6 :@t:{[~^VkѵpЮJAMt0AHZᏐh|U) [B4vއ4x:^OW !$o*#ȇL .p6 @M 4aVuޭMVvGlU#"#$] ͕]{|KJ㭗T氤~K,ܔX͓>U17ejDs%bo/I'8d ɞ6ܪbE5#z,"톌vOLrx6^|N,rZbot~CeP>H_N*5Nt*j%uqmT^2 PCJЪV28AkZ? /чe()XdLV|9֮}@m4KHP~hǣw3tcɎ^t6~,Ʊ'`u#sG-o ӋCX}_] ӧnmݯu 4NZᦲē*U}Z*-2 ef.B*QnlRD{P^.By(D%A[*/wߴh=Kڲ׫RX2&elҮJ! iL)ͳJkQSETi;[j7AіzXM<$[O'ѯPZj;h*c(݂ZYͨU |S!`۰Z^lؿ8?q eIn_WYo0n2H*d/F#re tk BgUٙ,c>_R~*$ij\~ՕfeStȱ.LN}/~C&J=HӚ[LJ"]Uͺ_yL qYsι瑬w=kw٣$N$N$N~IHDIIWl=Y(ڵBTBх.\.| _Bp `@& ?ӟ̼o\{33/ǚ1V9{M)rtE&DMƜ8wcvnLwcT>Sl7-Vԉ{φWoU~o,gw> ^ hU![aKDϸ=gjP[.do1.P*dt^G!bHoO݁4+G|@CE!k吃bDL7û+֟ q*5xt4Ő*z+(BNܤЊ^|oKDy'-?~Tu (M }_`FzS/Y4m/qǷ=8w$-MLVˣͧAa/hۈewm׃:0q6vK3o?>JF^0,tEx#2/hEy|hm[<6C[ K6zբhS*j"_U^EMjë؁W6V謲,hK@7| ï;C)TD8mqx/S0h^5wikZ !a;jМRPWqKP bcf' tfR$ڋbzȱ4ǰvVi%ڲM7=b6Q M0>#14>i;BK3fKE.eÇĽ/rJMc5qĽ_?:~}Je9im|ein ɛ~%1hz8+]Yz:Fߴ-nsͱ O@OMu+력R&JoYg=u~v^&+2mk_zbɞ:_?JeGtȝW!c@oRNz9G'KU_xU(jJe!9qg9XH&zt OTH,j`&np"ꏅ!} 1] XH2FQL) b xw^͟Dz;_e>:fE&O;zќ!n !2 kh4L4/2Qkx 4fG*Dl#(S=S/0-v>L|$XYzCW~#5ۃb&-tuDĐchMKvy_3~Ll!i9ok< o7L:B Y% qp;OLxPp? ;@V$kUN!ei(2(cxB$#tI2YaC&rkTDdg{e#!r=1*DFQ=xZ}Zd_66pd7)j6#|q܋,][ʯqcSk 'L %xCĵʩʊǐ L\[y{@|~W r9U>>|OTEs"{%f/vYp74hUz=2hD&J Ն1)Z-(G9ֿXS-HVo6IHܤЊ(W8oB>fL4;*eAmDgSC&u6 1jXt?:*R.?wI\;Z&%$րAFx f@#1Xuf]h$C&]:% q_;|uհ!C&\qut0quЊZ4 Q[2QCkZ!^w\D ȗ[o;j]:WVb.mYb{ĵ/$esC"5xo sFWԢa:r/skЊZ0; ѐ|Vː|2;烏 Zچ ^WvIFvhttuAU+(Oh~\sX@CDmyF|hmx2QL{C&{NR'Y`DLt1H4M &'~4,Zm<ކJ+z+GVJ[¥'U[!y5z9DȞӄuhe/E{(JQ4D2WGqmach|<K#'qSBQ%XM\|zgiE5ѹ؃8< 5d˶uC`&~4Ɓ,"g_^D=/I4|eUi_h^ a}z"[hVh 6+|uB%&DvCE#@xB8eO UT;e%#h+f3^@ejً'@jD;fZ2?A&q!eէ/F WYzeV)2I r}?&1Gf^f340qmK_7P=@yE&:0 hL6?K~ΐf2W={x L\G7Ǟt)$ХR-zQ 0qS7AP;V]U& mC[;e(79S)<>V/*wE5|0z*'I(9`"'VTT^ɪ  ݒeZ|cg)q|27֊p9|z SRPz ҖB'4T=HueD\ ϭ-ս֥-Lt {с5)ȥo [5d93И7̺ #`&^oЌc,B-Ti·6c|Kĵg\yC/z _(?1-&,zJ[͋)uIk ɴ.~MķȐ4Zo7@fdUC3r;KE4 ϩ;ӳƭ4Z4_>_1?_z ȋ1=M/ՍwfcW n yGې{!by>˓8bȭA3d h&C^|?JyvKjwCv>t^._VND#lqu黚.gL\[h% .">4 -kw77!5A] a6DOMu&˄@CJ1$~ltmN52@!в|OX47!]S0뼙"݆u!gˁ,Myv|_,ّ2aOyKekfE"\"J"&.r95q 9ץ""q^$.RVM~WHrnW uJٺs; hP>v~]'-TVuVL|쌾.CR9&3@c%)A ^[;_$/HP)AH V2QoƁh݁!*?@I/jޠ$e+кkl"#?|6(Ly *e+к+Po.}<r+Z"U]/Vt| Zp'>nc)ЏZkwaU6V3ƙ!3hZE -=j9i9U q{+gF@TX-Wj9C&j98zm%,+;?Z0KZdeeu꒖5YYKZde^gmO~4HrP`݁_`VJDuk~gQ6Y/2'Jڂpk>x @e ⹟Pyy(vx?*VGȜL0Ww7~[lP=|ode'n!1W0򟎘Q+s`'kӿg~UVӲ!bqt54ՄLSA;Ӹ z7 hY}CH;@klLI6@cU )H>^vGX1t$j $^wkNtm!uD'4i)$| d6ch?@b':`.^ >m[@+ C& h(O_ыR3Aj u/k jX iMx!ȼ):6% )HVf^L\[+y3ezc Rm^Bp8U-t и?7~1@+xڿd;p[6Kn" p `4T@H؋ Ya h%܋i!"s a`ڷ@Vmx3@ka2F}" o hDb!Dvِ.fPs숷ӧoiˢx;Ȝ2hfk"#mZ7{'6G.#$-kmj֣L4=H51dzO7aqhlD#o`g _=ZFݠ. j9-jm][eӏJ (1~Nx[Z C+v"_?Zx jĺو{Ÿ J̐Bb'JL}d-_LKeIJR #V}pgby¥ӄ:RUjB/ī4u ÉnA%ʦ{/ g%+/bqecY½TUi8EJ>4 X4KޚjMD 5交ٚ5kՅ! dEVTLǏ vINE1|Ece0qJ^a0qB[ ڬcmJ߇ |~Z:B+\ƨ>`XwM;T˒bO@goqᷠ'Vz/Xo>@$y3AEᗠ%=&%H~U bD1(:q2o.9 Cu~OIrńW\F,!n{gRB,!sIR +ł~YR%`& H M }ɋvCQ Awc1{9A2-DC\n Y h.Vi'oNs %s!9<,d.iy4d"i$寋O_񛕴ztO&?_i U^,DT1L'|ZB R'8k GCuAg3b[ 32;Lt2X|!]:d>}}+wU% ;V7 1qmQCL!.M Uxlwild IϯnT 1qB+>L4K߀pOev6—zGn Y|yUs&f_O:N\GHec`&0Qۊ15ީyWeHn lb0qBO=e_"<gsCZ|[$W]7ԢkCB7{\׀bXb~d9g=M o-4:_A Q@⦃J8=ZG! Z1?,0qePM ݆ЊRI e4I,2M O!x}-b> Q?Њh!`pwm~4Fԥ0qׄʙy*0qmː)_4cDn.~S0J",F>;%-| 1mD1(:q2鯵5rҏ-T*7^Lxet0/*[uk6kM K!7@ 7)t?,CKܤЇX>zwǐC?X.8>*";^zVW-"(jy9^zE/i.@ʗQ1tN,zqZ>KE3,g+(+YvQuQ}P~'π`~Ȗ`]*^nN|!ݸ, $CU!.'-BqU/b"2o\ ?  Ɵ\D"Y#qsH=s\=qq1(`>iĵnA:Vi0={@?qQ0 c =-Dq8S~^q{Q4J)ϗθ_hѫy\o!2 4c4'Y- ]]63 ~|%#T[mQJɁFrQ}5@b u?VYUڑCu+v:9h(IV~ؙ.mmTK֖u'_9^#1( ʛĐlAuIkN_~3d뾚KZQe[Cbn zV#QDƀܐ: 9?uT9ޱq?/G7gR nT/hw>n~oE|T2w:Y*+ż+q/q ;X͓Csbv-sݺ5O}T#ȚUw$ħ܎ rX3U ˙q.Ȧ9@:\7lmil޻L\gwwU?W|9q&"eHsc^+KEr(B'Tu8|)p*B͒9&TD}Udn05XϜR+eN%kttU^E@>x#Q-IP.=Vvs̫yU)g y )eZEz;zXOI9}ӏE,Y!,xZ=CeEWgEnVu3"Gi emJnuP+IC&1daeU9AV ܺB3@O[V֨ak԰]$ں`cݒO6WM#%RC&zʿ Z1=E8%, ͹=A\>GT(w}TW #V&湵n(^b=aH >g|-KU ^T 1cWqkelD{]ySwV;G~)PRW 7Z0fqD&, *hgqx|NQU5.ͯ|HSgunGm<džO`km@ 7 !#@ T!S=^mT29\OHUm0T_b^;o͉v^>;Y"z$Z:bŸ5^4P]$4p1.=a R+zD܃Dp d YP=~N5fhv^qP)[_rZY cUu)IR* T*CYFI,qݐl.c0TÕ꺲c0GclYuOsdC|;"ĵMS5V5Q+kފml3?aNʡ7@O{>O}mty^;`{Z%)-=m 9ӴRyi`!&^.Pb?d?d?d?d?d?d?d?d?d?d?d[F-#ȿe2o[F-#hGCJ9qm讌~Ģg1ރIܴ.Z\I!8Rtt$nZ雌a"5H:ȍ 1 mcW>i%V-ŢWt'YEιiG0F*k{RU9~P{Ac gC>vY"Yv E?^G܌6!C-lmk(Noo:YnqU@/dU e<9i.NBa O*G7ZYf}4q,L甽 8߽*_T忠-B7?pAE$m-2 ؐ >MJ\[߸ o@⦅*J8zqVo*I}r`R&$pbɏh.xh]2QCy4Xh'(D)Gm.Xħ0zTET΢,nmQ7v9q fPU;}кTEdEm,nmQouqKp nâqV%z78LEC^+l=Mv ~sߑ7;;QtkEfbڢuk~[VW8f}_][fCc7#z& 8op>`76=ǁDh`oVFC2 KK0qB:B/ 3p]z /unv ]&h/EiX E%vj~e_Z:/!Iټ{--i`}~fHg*6 {و&XQiԿce;cƁ>K|aQ>#w5Ev2˗ U~_F`sDNd 0λ YsY*yu#Q%ME/WE3e牆כEz^xxݻ^(KE//8\GEŝ{@}}7ׅ)`XKXK K}A[azŕmQuw +ܮD܆٭*]"|nY7?!E^}B_,|?D_Wc ~d}~H}]kpE aDJ0,UQ?V#-`C r(mwwk"6=}Y n뢎 /-nmQw"6wϫhht#I7Oa;lQ~ܶ.f78 D*Q"ѯZ(?JDIۿ*;oN}E0>z_"{3]"PR?wCg^3/dW?ϣSI'ъ9`ɜw%xޕh'l%[U+S )W1H\[Gz("tYBCU^_ᐬ" Jlư۟1 [zah =  fްaa7 'F4Dq蟋Mf#+tQyޅ>NܤP G9]+@vVurTk*Kw*bAPrXpD[CU_BN,RQ$Uc(0 ~G %Pg͜Tryk9Hg_p{;3܆Odž\*x~y3 4D$O]_O&Bg:Vw?IE'> ryf!t(a2?RxQvd.%U^k.E =8?T%F8OWa"%VMBK͋7GL\tueݬ@1E@?>HYZC3!>-3=,2.K[G@c<VIhgVO^ސm/m=`>OJRX&17glh2|sw;^hM?Cv2k@֚ :ʒHaUWE{]%d_,!&X'ҥ }Fy`nUۼeQ*z*|/g\+X^];uga9vϕE +E}PpuLT~5edCmyu+Ϣn}7D܂ KU.܊:Π&'DנNY*qH|2UωVQ.WZe:L܍~<[wWeeSLwC!\-θՕ(u^#䌿tVE7#t4~WyE~񬯝[y&KZO28gn1F7GfH6|AWEe`"ZRBe0q cЮ婯yX,/eљ&u?G>ұ%~J^͏T4ͲZO<2W?`-ZeW:^ݓh+DD'5sι׵dw=%Q'EIDID{ϏR?Α}uhrP) * `@b 0 @   @ @Gu:͝&K]Z}rnr-\CY;lpM#ϵKnix[S."Hqo8ހ)@Qñ~ . mpIq Gq'0gP6/).7W(7_@{w)B>8$}?TDq cc\47dSնM_fK(eR:f@E*UdR>ʚIWwr?<uF0um߶ ;iV2_, @uT+($W7xhI8ѿ-܄b*Z 3"aŴ5Z/Z\lK??B^UB٬JfU<ε2%MpU eQc#Rz 7xG;s,5s_ ٙK>Psr?| QBQC-_:<|G9ZLÛOٷ(auIp?N';puLנi(#{:b P']9/hbDjmQ+]^1:E+LĎi Sl[ΰS: kA(QK X?<ԧG.]FoRqpiPx)݃5nvZ-~x|>á9|} 5jű/mځ(ֺ=KP u,C=6C~9PE)kڔ1Br11Dz5Rww)A5̾edʏmtџܩNu,U)[;LZ}a5RcఽnUʧ(%0D wG'k.@ |P$.FѴ-S*XYrr:)~1ݠcѭfM_v :4K*u^?z,L5h4t pJaCװ+ |NcIPS􄈴tý_j_"IU9OhH3Gp5 bKIQ&%`ê&߸Q:2׹]*+iQTKvUZ_GNP½Y5ES pjhA|)0\WqOL7R#_')Ik:\_]TVK\Yp;a+RnPH<NC 7e y#h&MU%:*t(BZmoMSaQ 4C.:2)W3;;D{jkVjxhUI,\e=tB퀣 4nJٻ5HC:`R]y>SծjqML~2 j EY|F$(ǴcJWaIqY eQRq 8-hVm׸(oejw@U*\gYoFQ1M!3E/$:\ccPT8|)Ya\|J5Z(z)pY¸1(3D֠Vqt)fU UQɕ W#22P|)BYtؾc *] _?1R+zm~Xq$qA3Ԉkڧ1p e۪q7 nbN5k& /OIH Ocmˢ!Y=hʶ$^﯋;*m,8"@QVEgqBMTYjݪ*\SYht қ5+DFk e[5Ԙ%ZGHOC 5zv n2o rn@'Ncp pdA \'vǺ: jdUC& 6F.Fw 9! j5ۣA#4Gd5Vh ,41q=7?N,Zd uX{Pc~aqنLlC&O%Y]DFG% H"3#3wj2 kFQqwE5h/Ɏ*\cp-ewkj){RC eOklڢ5Z @Nv r' gy'%k({&, !/(RʃXѝ;N§KZWlOݸyqWbq.?pGRĝ/qIaʊ=eSp*0k(+ TQ&H6}pMej( *?iUh\'HѲ/U7յZbzQki>D(ZնD )`㋶BnBYM*i0Y9[P)7hx @CY-ơlsp*{ns IQvkEXLuD \Jl*bPn5S[Z:ֻ+ҡI.^>G w{$>Ը,WQXU,.wTkʞ-:c)$pW[Vż6a_CNlPJPBkmcYx אxu[ly~qVeT)fnղ[O_N^#Pct*$To:֐:֐ɮuʼgmI,Zk!7b^z3PEzFl3 zYөz" hCcH@SF'S-uĽIvf73֩Xr j@ j9zxݑCĚQӤ'w79eːFQ -ȯSM&[ǐم^7H7; !h&mPgaێS;^J*Gk>$g"%fdP# Ӳ/ꯒm_c:\;gk(6(qU|ƘoA!)s^AݬyB}Z,_?SB^i=kKAyxƟgw"5c!S֏:)ʓ5**˸?็P8hW_69DBl_ TL@]CK?&MjU2%PxE=Z@b@mvXU_ًjH2>ِvL5d!<$V~:|[钌y1B?<6`n;"d{jp>CPc)V+(&[~cKpʶUT3Mh&VnAM$%1d`%-cDNIjNTy>6iS#uOjD4B 7l[gSjif2h\6e(9k(cXZ"gh1V*MUT y\~!3e&fLs<ʹLI&X?c?k*S~Z{?栅k* !XC(%סk嵲"Ok#X^?~cKb ]~CWe2t  ]٩m܅nB9[3)!.W8iI*"; œgM!jهPcFylYpFhn=!Z[d^ŊKPw"ۃ#^#!5OK՜bKH3Ao@ Pv 3C3hP-84^%C6Q`E n!Mtԟa걛Ǡ$걧䷡mIɰ9d2l6 2i3u `v `v&vl[|*?MdPsWݖ"ѵy!S5NȞB TU 50j~|/֜]YCdj[ ^k?tZ"Z[ʦp4U~j RF9S4Fob.2锴n7Qs/L~ (QoȨ-=%\_[;1 w[YճX hʪnq-3*_PlVNXDɮATm0cބꅻj[&ipeݏwQØKi $-;C^vŨgKbn+UM>+t& H[0t*FV!@n*Bp]%9},[p@T^C}/ V/U^v;5m3ǹRZG\k*V2C5ykw3 'YNO/ˠ=E!24c?EZ㷢s P~#M\sp {-\l wg,p]GP{k){g\stZ*(|O IMiRc4)h^AS8O3 QY!h#L-Uh=fϮӟXg,t< *_fU hE~UNUʚW\x)ܣH SBk}Nw~JΔ]Twc sW{~BղON'X Nj;WOj4K-iuz#'Gw9|:27|?1-Raק]x~IQ~y0~xZKv!x|~?q~; VLo:^FUуOp4з*4 TV r*$5qhujrlJZI} Ua pMe_96C6/Fv`C -Z,/~*gkdיAANM@C}="FC^F-MS{-~BG!ȶAN)@U B !;5Kp&lvlOJВ˴uՒe\[ZGrj6{5B5԰K& Tew6";PRQgzjJemTQ^U~gB0n\0u_Bx;A}mڂs1i%jeN;6e"N*UWdم=Feh}#,l‰]֕WLN#2 UkU~ ޥY=+àYwR,sOXFwshp؆pHIg`,к;t!^a~ِ˝ַ &Ο61[ mqnJCjt~4$ƿQgʎG*,\CY䢧)7U!p0Q*;A<鋩0n>PVy;KJ7YA_B^՜0'R+AphD}*~+\qT|/$;?R#LT* SwAO&aK1,z&-\SY5>|V5p1W{ S0Mѫ#h&g~ 5ϑw{OYydxH^=g2p-eYjP c)6Z dc_kn?ĎT#uB*&WQ}w ` .!p*_6ʄ(GNici~'D1]HS2UhdoZ1]"aJ9^J:6فrMXEXtPYGēɘ#ƴF)ͳ.@ *pE]Y$=궉Tˋ[ށbUtjU)18rq'Re tZ55?U(*+ވGRzƪ5NMaAj 5~N;.8Z; #U|\S(S}e^C@4ԯa!dN_0'p-XcsKҹ vS3nIvkj,bOZuR!=pdsYd@Q"No69,.O .t]t}yO^}Edce1zىUt_rs;H~>0 #nKBf\Kc"PݪJ[>Ty (>z-ͪTqXTUkWyܫG! j<91[J'Re=^@fUx&,EU܋Oh ׳Y fs՚ _gFټl|eR!oŕϥA4B/WEU~9iOqaJT|UUx૸DU\v[߸tjZCn*| )zJuެed>x| >W1 G|jJO&BհOnU@ͪB7 T:=& #4,$Q>Oִ1;,A9_PQ]ݮ;ɹdP]yyQ}[]#}f6X7cơqÒЬq}M(PkU)5 W p.@ T+{!C -s:$Wk̗#D^B -O.6rJU\VU^F:5 z5.$vBuah&e jÚv=h04k @N]誦(WHo7E+P˙xPMQ##MZ?.1dSMOVl29l!jxjDв |Uu]+ʷFjEǐɢmzVGod2[[XmN,'!+=Zɐ`dmhl2-C&ue L${f&IPwv/ E7wG>!C&PQyVv?X;Et`i[P#opjZ??&RKfᏍC wa@ejhqQY ddSGSP-!bh QԨe(V-M(۪58Rڂ $OpfԨJ_#Qn,Red\O6ec [Lfkmzr[bj׍rdܢ8y1ebЂ`DQjs*?@M(ۦ:;~nղ]u^eT*pdU&k7v1֠`Y;HZ#򣟝ELE.ނWJs쁧\$f@/k^'lgWF2'-D{W٤HY[b׊8^3kjTfϰ$29ɖǯ? %V-,AcUB8v@/ rU gl!o^mAM*WUxt"%t&Ae"=H,v-]FA X:H6^t+Urv ,&WŲիL֫WѣnR&;~+ w1 5zo&ԘWdX~utt8Sz!vByjOQ`=JIZ=(&T<U)@:nLX?ij9(U| 6{Pc" r/u C* XPcZ- _s^,oQ碄nɝoXkV]f)c:TqW%wa߃2T|a!PY-Ú[ p}j4DVߛ-hZՅL֜VjU 3YP s0J whR*_"<H. Qlڎ^NJ@):4pA!7v QUbɢ!m-pX .0V=kZ@Yk4ZvKB5R_ Ԧ9;3r DLl9iFaac|iudDSX% [egSd(!_ &n< }&Bf op}II^J ǁ/ Ŵԯa ؁8W/rn0YLSTs*O c2-ѨJ0J˅ `2U)F͚ h] /D<,4.W mY֋rr@䀐c8сU)@KUXH(C*UTô}*UVRLF2S猲f:i j+a]5cmG^jz^j$9O>)9&.rF_VoS{V'tʜ}sSo0UxFM *Ls bt.݇j}V%xvBYUYQpͪTqXNP^"C55 -\KYϯ& D+w uUVU .9XUBZpꧪfB.F x#,#d N]E٤JrY"}eE!/A`WI8:!qަMz*Z4Cbp&;2%K3UXfO`5}KĤY2#5P-~>xgcW\8/}Xd~]|Uقed=&MMʏu~J&ZXʹ4dso᜔ x0tH8l_xHh`:t>|Gٌ9{)m]--Z[;ʯrrnZ0cQ4|)U*wRрQaJ8y=\Y/F7+<fU X֨p1YH?C]&hVNRKb2ڜ\'lP%7`A_GR-XwF=w@hsͧʫ]vU<XCJcP?,†N@Fڷ E6…RA+B M-hd4R jTor&sޱElpMeO:Ӄ? MIL@,RZ]2gcCKr;.C T^bt~Pƽ*׸=w_'k({o fp8W##aa`JB0o'0ơѨJjDABD/{ UYՌ'Jc'9!AoC5hNi|ۀϦSK]32Yg8&#QgPzGg=ՔV)=_v߅bVw2Af :j-ܴK@3o4QT7:slC ߌhuC& LՐ)): =:ELKd 5je6Ԩ[i"=(NBtjqc PFҫC밟BϹbjԹVL[̐j::+@J@FY*15:yс\d wP~jScftC@J^VR*xNvad4dad3D?@J?с,9)m"r5:z[ kjt jqK`u _@87cY!Ґ:!utC:ң٣YdhOFjt io" tkd,\c0: `u o@8c7du C&+!u C&@K'.xdduuLhZ$ kjXy9@Yվƍ7P:Ձ>сqv^l82Y) 2Y:#_u g{t #-.heXPc^-@zjt jpcJR.:+=::N[S1{}mq 2l:LfRl\1<K(/ y.PBVE3Uy}(uS`յ҇xPB.SJr5^ _evhjUC&뻯x~溫Uw*;VE4aa>/[F^r~*2^9w*tO.y1ӿEG#_`Vsj ]۹ W֎pJLQ~2\w*hPVbITe%oPVBm |Zon"` ܮ*4qvAT柸[uX=]I2 UFfu*y ? g ]ZxͺS%H Fgr3gP7tcpr4 { N`MwJ/x|s8u˹~ 4pE5\}Yh"Sw- _pɪ=JAj02>“1m&Mý75穾ah]pݍV')CȂq4D & ӤQ3j^=UikPр*~~MaA!m즙T~I :k?h ҙM}h{vX*$dvU [ɨ!Z2g;֩WL:6 T_6NBtyU)L]x[hSQ\tkz=VcO\QiI%1U`yt|{s\;Jhpjl%ۓ;eC&faYȫ-SPU)odeC%󆣟Nd{9w*~قG=8>-<9 7d6ChK6 t_XoL(=Y֢?`tk0Lw^J:(ho8/Hmru:IkNYSJLa!W*/]?N|GeG~ڣꅱ5GxP.WH{W)?2U;J^iyy2ß>_BB9?lԹiU قS؅[cB4I*ԐIn ŸI<8ݫed;s^C&\2]nt{t⯤<? {D(4dҰj%cXVk߸A~:ܰXjϚ٪Ѩ+lU ֹ"+V`_o_T=FJJh Tk5 5n;#ް7Co)Ȧ6d2-T/^$T'P`bkE?`=[u;Es ^^$Zm"(zҫ8O2:F)p;E%ֹ+ zC ABFN : W>d @=xpaܰ?n7 W "`qhqhqh填J Wyӡ 7?P;ĠǨ17۵ֲu:޿aRtYyb w[zyeT?g pEUyPF{adTJMwAU Q\tbz+UJLݽοV0B`t?4frZ FI뼐!kT4*4Jj8?lq&]sU&(Qc ˟F/B}LWê2NAhϊRDy ,%et틑]{X,cقBݪJ%R˸MJgg6O,_ ꂢVeb'S# 1z?RC>SR"5Vx Oruk)2! ~70;wRidXIEAlsle_Ɵ;)%IZ1M};X9u(<Ɲ#jA47"NJ*UTc*)/?)(oFTΝsU$ɡZ~'rRd92-c 78_ca=S0d#7ӈÍTx dC*3OYKU)tKοÜɞ`^C W;%*޸GXI)P } OKJ%**uwCRJaOnv}5Sx9g[`\z ϝqOyc\xVU لEd "rlJ4\ +wR"DZV_>gDjs^ &P8 z͙mUoTJ]s;v? =l{\鶧A7v*&bآ"9SecQ:Co1jTzǜ١@:>ngљ֗,0%+?!:;\T BVkN|گJ!/\p*~s0~㞪pz.s9SF9 Y:|d RIJjvuJ?ucI5bϒQSoo_obFv1ۙ"pB3a8)!nbU` MXc\md J4g]JvBm :XY"O7rȾz#^ 6qZh 2*dMm5r[&%Ipz_ǐJc,Ed JJS.6j3' P`0:aa1kqC&zG~_R0azLU {/#\gR`Go z,.\[w% P[߀:Uou綝-N}w_ᝇY KvPڪ^lEK1KV[tBoFAoZaaoM14 s[uO)hho'Hըwz}o,\܇ {۪·2ml b޶ƺ()!SA0= ?4oGaXakܰ5nWC5!+΄rYɹSyPc|}h >~0 #= '\⃸YXA)LNBką|C:igR & YתJAyII]D$gɨjp P7}1fLcK$gpTB; 7?KCv8H>  v^gtEyː?G)l<%L6Q Ը݀5We`][%srrU 9#p XJN p b Fm-_T#PȵӜ,O?R-kI LևC^4o_Cy[ޖ(S-k ?ƈR%8]mIk1!5:(Gégl@Y.pXU ~<7SJ+$U`͕L6WJ ;M^i%2-s eȄnj!D,[HQٻ+ p3.r VG`QTyxX)\C-\GQY m05.2<VZ ]Ѩs/¯qb, q Y:|J:W ܙ> =G)V TޅVNo\}tn¼'^+W#< Zu1,ێ>#iqu3d5dwDÜ?Ռx&l_fH3gp#J?=#A9#;yiF6HuVʂ^JJBtJy4b0kjHV#Te!цkς6`5G! 1jp)1faA%`F\BitNAN.6c˧rNmJJBi`4ג!y%U!8ZHJBDJFO K X1_mi 1 Yiym:=pma5/ a:>*:^JJBt}X)jHV#Te!цk셁#hVs|L~ęhqh=pHOA{ h8ymtxO~-7fF?Y(1Nh$7P x7BoIdz/Ν7^&C=هu 5Gnݖv[# lzJ%=y=&p>hn6;f 囎OTZ#b˛P`Oa a}"MoD{hKZ3 -pn]h:ʉsN :v~ 1L%JXq=^Q+FX Wa]X zX3RΦ+TC1|ӂy Z;אC?t*5qZTNiEs{)d ַ`R!Gpu.P*»nﶂTmԂAKjv]hn\۠UO6dQL60ɦ CF_@S`7}N=y#9 TIX! |?Ja R0\R]MEa+N) ܀T %ᾷ*;S>,t4w9V]/yPt+"1-h*BeU-2$DEnnZv[>)۽n6W6|*B jVNߊZxgȔo#-'6 +]W[)VH Z춬SՍLAn*\+fRiY8^I[&r?nV`;c]AN:f;ΐɮ/4 (7}JMғdOUY8PZ&X)lN2L'Ǖ4Jx ؛Pc}\\O]X_XaW? y '=? z+(UYBלpdlU فs!%Ax[XPFIe۽vw RXM `]`\>e{Cx+)i^#3:9DLVuA)2߫D=*u3J9wj#C&+7HIU"o{I(:“޷5Xޒb21/S_an+*Z] cOXO!]*Ϡ6n_Ꭼz*9t@uf]Ij ջ-Cd*| j*d:X:5^N(lW: [_&'1VO59Pt&d nUC8s 6K ﰼJ,V Tt]dN-\GQ)[]dB]DBv4w{"tmNZ=/}u0Z!=,?kˎ!Y"O3U#`]>r*!iu@ Y%e+L9]0gzj܀H fҠ΅䱠aNj eK>mGU ~U9Kz U)> )풽…-(/,Lč=V:mbMԹv%nvߕa_Au>8wJ-ri%WOۂNU  N@ 9&9d桼`Qr X/^5az[9\=*>ԙ_i SybVU&!!!!yD$w'$Sxļ?Kh]z,i`zK\CocC  -\Pc~=x%j_EkS,Eo(]QCb -2!#2?m- #v>,ߏyZy2Y^ooː~Nxkw^L ;y^Ȍqszۼ '-i3!Z^ʕKݑ l?XŐu ^68 L.ج>KpFJm:g\C*ptU SlcuDU[KP`%K ^@#Cr(x:Ԓo3ԿwD هVCXIIRy.Euh:6jYW:|\&89jL/,hwM+!V=E\Q|ZvcXY:Ddd4q ކLfgyhn+z!$a'UQVO߆pqh&C 7>-ܬ<~TK*QC-r; imhU{am#XaT0G/_!:3 -T5WRB)vf0q?Q' [Vy†+ZE%=XWnfע7~IQWEU"c $땏!-;6dQLJw,U^jFoFoRg^h[ԕJm|(tu_qebT:H^9:_7{hLp<^_C wT;yx98څk RY Qy uݬ{uZ Z:vjl^&r*\;'h0Wq,LWShkB޵>QU&jܚn⚑8v*CE څ(\G:<纼h}5ezߕb)pEu]qejǂ 7,[d)8}*a[AN--E|)WƜ53WNTھ'K 7ʴdpin}Y9:Úd^!ghVPW 7P&mcYߖ]DCr2_ߵ%/xUvw\~Ɤ.K:d(sͼeEhtJ_C_(YCsQ6|>G^Uh~&˟J ZL[/gU)D]p?` ZuSBi( RwCV{&`  Š%2V4(hVp0lIMCV oi+ 躠CX! dPZ6X u?viOչU u^lǢ'Xsd!\~"z+TU JOUxNSbP~n8'2SS %݃mB#`JiYOn Qtr7l}U|gtdC5nyچ` gF!e:5LV˜45R@YHOo/>,v6y7kb5dZ2dS0d3uWQXA kh!>uM_;~% _؟*?@S~5A6&8r`ꯚ!pl]  083]W8-|imO]TBұŸodNbpR3nVQ)C[CRB;tS\ۊ j$XTb#/*п$z I܀S(c.Ɯ|u(`|M5qm_uSc> S}_p?/R }e9^+RNm/|KAݯ*nb|J:ᓠ}Z> V} A9E`v"DeuuY`jqD\ww4r:)!_טG=꠾_GSаLa(\ *zd= L,47=:pEu6y>_Tסz+K0ʰT Y9hޗTEa62Yc?5n"t Yw1GجAZ'm$Xb Z0TZ(k!LfïZHg~Y1a-j.VϐYאɚԐɆuSjdy2Y^p!%IyeS~jt:EMVr mN3d2 , I^+-9XoiL Gu \w'q kX)bpEeܚUЖTfmjՏ!Տ!÷Gf ,/C&;Gɫpӊ6ɹě\4d2 EC7)ȏ=1d2 Cd,2 ے\ddwlyMAt9b 2 Ӗ 3Pcl־Ș`wbX ۖraEcFM_'n m πx`:Y c0WU ЀJȘ]z b(qp39%+ w+VT?"^c#1AڕMڻvmm9/Z}a=ԺKfڏe-2hVahOýo ֲ[אɆR3OtO#3`]G(NU* MoU CުL)-im˝hP 3`i7}޹ /j}U8d ~iT}T4+=w'@'qC_ɽ%7<1(Wd-rGN Vf*{n+ʾN}"߰=ZE]lyAm A*7(~̞J4e2֐nW ڂ[UhVU*=A= .oγĕ xBAޓT5E(} 1J\]ܼ9Cr",\⊒sr.hocBՅ-bN),RKPTTz!wu0.IY0 [ސF*=F!/k["X}-Ӊ7KB;Gx>ʯCK}>skD^н^B}UJn>*>G<5{ S|92cͧmk` A 7p }CD ;6n QސSmpw윣\w+[vs֑_*1obh/#7:=ʄEOaJCb*^¾_V(L@1 0Ob|n|N ټ/FNwAUޤ UM^Na" B >Л-^,`FZ{,p%k݇U[ #YN3IPRK?M)sC[nc6/xXiEA h7#6 K{552+9:TzE ?G^SJ֛7_t׾ _|@ZK P+<␒//ki8tFkPL+ X>;aE+,s)܌\8kԹBqI5`[]zaO !F:6j @i[MV>Z-i= ;`~edW[C&[Q+Vz_~dnԨuXϡƧ52߅7ѭ$aRt[> ! OV}y5ZQ={?&'Sϡ$Xakذ5l>F [#^We R17Fr0Y"ct.u[+V0>X@]+)F*کخ?>nz1dm҅רJ[Қ l^Nw\w|RB=#^XV `;-|!>*n L$jFVs2YsJ?cdvezlK9Herְהc]/ ?LRbC%nkQpϡQӍRp3h7mWC%CtJz M+"HW>'ǩs "("(;VK콋^"UN.  z#:1z\sw_zVz߱pw>3[ky[_M>;!bB"z"`Ac~ :\p-R"+ȏ+N@G B) /s=䏀+6A3Wq°D܀B.詊v)BW5]0Y=JRܬ!v+^Mv%oWWv36VX:)[ق6%5mg Vt3י\gT;J*>|U;}CG6y3M{lY4fQ!3E)1N/|ܜ+ٌM`f njǢ|ϓ~K~:BU'~H))]Skomw=pQ"'`kS*U h)?=Xgu b' ne#tqo\GhWl_R.<}f\ /!y|RȸH㕦o-j}YseR#>dSmaUtEͮe.SS0n#!uڇx@\si((?j_ݫkF)CNcb;ݣ]'5CǶȘV FEo/}~Wbo~RrF]: F߿qt4|sP/ cA_^%$ә kGD~W=CM,-/^}oP2 $+DLF:74k8|5isbf<޿pPkp3b=A:[ y Zj(Ȕĺ/>l[@xݥwȲHvr}d+@S} կQ>F_-Ƃ(*׀>Se.rvX**sW3JmjZ.`6Da|[Uy]ѫ5w|m|OW?"j̕ak5`j̟akȰ5dj:4i<Ÿo]JCnCt]>2::~'8%|]J#\wOTV?`yZ E$qY'5WCE-ix5ŰӸQS"a S.(H\J6ݮ+~OՍ{Rt/: /D0 ni>I2  ϟz\j!1JkZ|+w݂_ #\NVPq_b5+usݺ7_@~+0ckxkL/sƇ[鴏 >e:]Vw`%YG~|bF.vr:wL-3g@ i!1fPX1ֿ>;jF::Fgq'7E.?E^zZ/YS D-Ϣࣞ|Ҩ"mmNnv?N8Yqs!V*OҧذWi94Ľy- 3Q~[5Pe>qV(;q =՘1րakؚ [#V\EA7.\M%QNYF}D;aXY$% ;WcO Zo^_@"a.8"sҷE>~@\No/s%,*5c:oDhHjE#2c9) MGߋ6MCi:M?ї1 Qck@g-@t 6hhlGȶ 'i;e.*|ZCV14{G Q@iymq9gqJ3 dE&݆hMJnv Iȇ])mqR Miý6Cv ?a 2|e _ mͦ [㔸@_UaMd/OOv/^zѩGM^4p?qڎF_͚±eПQDNjNB_tkݸeF?@"~@8$^~@z7a'rjA=(1)۰Y.|ԣzqTUbyVđqm߼e7qQsޑh6[6Ni< rHgysg>Dgoȧ? _*s1dS$FYg2tJ.; I6/}cgbG+R[Fgh Ga 9Y/?#Yz!R{Ę6N},!-sܔ 2p-TWLr(%D;z<^ԽUЎD=>956y Dށ-ǢG=KS֘f_GN_WNSug6߷EmmDM)G)E5F/~n)ֻU@^R݋3>DV9zzNq_tkNMlU3W?Ԟh( q+'t˸4n4~:k][7Ocl=/_V7cAxa8 gIxtu(a N‹BTya i"u2y6ѻH&m d{E W} {Gm!oa@^Q { èu@"}M^EybM"G'*Zo3}_iDqP>Wgl[GqO | ['CwEՏ\ VZ4[ Kaۻ'CÂ7\=q @eelXEV2`}z[dZgYG80sWh=Asݤ0k9T榅Ћ>6+@"G`.|ruVQL2Sw0:W`Eʡ1x/; C vF'N6>#qp?b[U&k@bl! A" $!^)csVIF2"1d542Y\XS1P/-7EE 0F9Ws6qfsxMK[(|NXK> ߪ{̯XxAF%_ A Krlב*~kF+]w3:p -X x>a<*1Y^_q4;ukvc_N4|IViF.; _v_Nk|uiڅYU5tf@ҠX]T.}e"0F:Ub3cw~;n ɩRw~k66hζ&RJ=;^e.VGyV0#1 d]+֪}oCѵ{z/\OȻUp8)RJOh/KV}تO'EZb%xn55wOF}U^X~ _qkye݀3$;"g`!"_n뾁- E>Bµq1|9.1Z;U<`s:5@CNczw{4ENWw}hHA`2 H+'u<zoE܄]j"w ]'@Vtk;Ic[5:S;E_O%CDUb(J~O1--]2y[)ZS"ԓ0we.lUT!+Ejڻb}dF%*Y8JV}u]X>EO}>|Xէ>cZ?\OUp8)RJ=zoE<툂 Jt;XsQrDյק4~`UljA .#e.G.\][hSHm kWfMf伷n;ȡOoE01Ԗ3#o4#9 V~h4HxEyS9 VIS~jK~D䙑7u;ȡOoEGEDj?9ρD,*6@}s En~Sb$G@<}ty~u.O^P[ꢗ.r E]ypbyl@ \-\Wmݗ?]:yuukӸ7'B6P?k#h\Z/~4tQikZhi32nׁO. bhK,CBzMʪvc-'S5/{qV\:B,JOu 5Q6XjOْ*rlN6uB? S v @c.#CG$!ҹ17- EKV 14[|n3W݃M!<#Uch 1*򐹎[Yp 1 {j:}. 47TYeIJxzKDGe.z>Gǐ$fE^"@CQy 9",1@vև|hLIcgf^aΘD@C>ZfnZ6jg1NkqX:/5j#4f";@[7<:bN X~(\緛*j g["}40WUeD9y JtuRv `=њ$ɖXQqfRWO礘c[:0Ǩ$ [ԈL^ߒp ܜIFo~*fa<; D+Ï@tت NR_DMC dPQlrҾ5>t zןпQ [WB{Ao*8M }袿Ucd@F3jO UDO"wӛ58 ֗]d,*:x:QƁ b1 5#__ue,8Ҵ$gaݚ3-Cs"&z鄽Whj{(~S"sQZE߆ د|[v˒zE_ ";p]v"g`˙y'{)ZSP9%+e>kailBˎӰH1jyv5Y1iijҿ;F~l\CduKe4jd,j:cdґL:H'akI? O1+󵅰#DBUd_E~^(&¾@VWjKTV:75-k{id;1iahfE —8FB*st]w!7DoU]HAVW1u+`Onhbɕ5AukZI `dD%nu#::=nq:Q5nR}]57l [Opʏ֦L\c '>V($:j;@r[DO$8?I:neEҿp t/3o}m3בAEj=V^ 2֖f=,#+'0*~ 3EvD(P+}tǴy1dew-kuvk↣n8A[i;Bh dj+N{H<qk3$f35~TֹT2….xI +'Bydl:f00saJMbsǠAb4p27LcpC7UD\vkX <5`zE qU½\Ԙ74vB)rvx9]ࣾ^4NvQ]+xbm9y clip>Q]zE[" > +{(.lY;N9~ &ޏ.2WD\1NTwV.cI l37U`Z&fsnD;fX+s}E\l26'_]$_ '\}ĉT\%xF!R5 VIZ(}KG!4 qy|CVi 2VKjϘrvJ" UA/aD37Jz27Jè27 4&~ |EނjWڏ0.095ԅ!Wm1sT,[Y3Nn+'\f"]D) +*{Y{Nl9{#?ʉayQ+5ߘѯqvjq~ /sBo rY]5s D5e}Uj* ﮊ2CAAI]sJLn Հ4I0Rri98a{x[~Q"[0|~G +")Y=İ2JnN@ 4u|܅J5K_2#ĉ_=h2SŶIT"s_knF_;W*4VVH`~M+ Di~V4zr7thm8؞?HWqAGn?te `~MI<;3,]hyJX]=aҼʏ@ >A|Y=|>ᩦ2 ?gzg,8I8HdK\|;<$R~sQI3jz$jepkosB37+tmQ򓖺6Ս1op˜4~A,)k߻'_Z榅N'\N<.U`:S,˿(4>8Ý܆5AjC5%#_ÿ037-1p[]ۈp#zW!S$_=\l}?]SS]-3Q״as&ނp/f=PRp%4sʤWB2שgΫE?iD2^h5mBp8FmWE8ebLM6K"ܬGUcx=m680s3B3wS0Jd9*gu_!enNHV@W=ObuFHxܜPW(ΤX.%_ՊUE< .k֧_ 5wIs(2<+,%9B1UBɤ* qML۟xVG15Rd0ׁLdnNdJ&bBz5M(.CE_ouMi/㯋хGD(ƣ.=pmlev2;bx$ɋ;e^w[~YtVg1wxe.Vi'M1)_W_j2tCJW Ľ$+XqowWq:bOf0,aWݿT;AU/}#͸+nS[0s# ^nD)X3 oDڏE|ů29+8Ζu2&N9CAE_g -Wb|Lx*SGpV^A-.Ur7׺m1^L~:e. ۝2=_&}E".Xӱ.K>V¸8H.r|\b=L"(g& Nb))pimO3W]"S*[\V`s=w+v{hkF#gwXܺ ܔWrr;0wҾ"W'@co$SB*nA#5<h3M@_Ő_Mx}}%Ľ4* ٯUr"u>}JMMIAr\6\,m(.E##K16,%GuMwkkaS}~@_1r.*sN)q%g%{1Pſ]l}VO]{I `榄2%iih~jx-L) l P~ûl.u tFGܨTfʥqTv^*|X3V6`klfK ͖`T1z~7E^x/ ^Q*EWvR;_qzľAO͏|%G Q#̃ q}~@~^4c*>MޠBXj<`j&27%Tsh_pk7Pfj|^Mq#Mj(27#37+T9גЮPDžkZmPC `mPu7d$v +O +<]K҉y5Ywy 7g_nW@?5=m{U?3~/sB9mw /sB&HBM w 8o{NcmNy ث |]. 0s3Aeb:.1'>y~W,M ^榅Ծ&vM/sBWa7x1'$5 Q X37/Tz5c0K\bH@C Q^m%D@J}Ѿ;0:e.R5+)߱}] yĭHROM273W]4 SlD,c4VeqOdZ %jwMBĬդ+4~*aqx3L;U{4 d.b "K322k:UQv?%OqW11}*hS4iv:BsşDٗȞBSY:63Wr(kB:T3#*4 JaS'l/;ZEm,4fe߫V6 f_~>OhHD`WQgB4hy`UEbB B{HHD8 {^SUyGMƬlg# iH0h;d铍h&*?uګh O+v9hT]*>T#" JYd"l;ZEm4fe;sWUE2OQZ/>AiHg*{i"Y 5ёlK1IN{Tqqu\Q?!ڵ Gȼ瘧\,}3u.txD_p3"6EƬlgnZ[9_lNC6"k*O}Eg1Њ_Դ^st$ײSiV-Ne:pRD?G@5ͦV`D Q៸[h*؊[]j؎kd[V  &}@ytz)^lj5+:ɶёlF=|u+KVvϱf4z+@c%D. TiN.> W꾋媮Ӟ#YYCNڟ@ap9./{GWO23=ٜIOD‚\"K)A"hxADp|#0@A25X 0RF\"N̜$ySOUu]]>C:ֈEP)V&\Y-Cq;[Va6NDw(/+O*6J#2f?WT^4YT|KktW O?g:FH+"ԯ#?2D4e<\LO)5-{ZWW5hSs0`Vmp):`XYϖ 索̕=*D| +K>^&!e-N>.*{ orW)sIsdbDN؈b`OؔdնFef򷐟s=/63m 2qS/gO : gե YǎAC ğ6֎SMLV|jzDvf]&ڴM51kQgPXnYդS2"a4kL'l"9χehd"41n>.֬;>hši&ҚMLDXo[s7 & ID8aɥ>$iM5tDvfM/cZi&ҚMLDؤo+ؚDhV`5LHMJ& H&MLDh"ĴO&5k"|5ML{7Dhb'.}s h5wЬj)~_0L6Iԇhd"41n>.֬)W+ML{7Dhb'!e[s7 & ID8aIw%ܰe`ĴOzq?W] mUM5+ } J> dw d=akI5Ѭj)~h6 yb`yĴϓ&:71'&5kj}Ĵ&:a41S{W 5wIѬd}EhRr8ay@mE$iM5tDvfMBM5BCM%ؚDhV`u)~_0L6I\3fȶcR_zi@f [.`%e|c>R >.Q9G{G2QvV& \#ĂǨdĠ{Zǁ_i&SB 11桄CLjj^ +kfh! Oñ"koF+j2@PV/ϲ.b/ 12 s|nBIO1 ܄ؽ]c`;P5A3Wӳl.է9_+}/`(see~Kw[ڊE|J\DIԆ}1VFAs/_%Q\$cuXtP_iQʪZF{%WV_rfT)DžɒUnjW4K+U~[9ʤMT1:oA_ȅA["h*kEZbZG{L͎À[( eZe>(~^4FJXG&|x/$z)z/8KNA &}$Tks'/KWVNDgMKTK"}.7]mml, LmdhzA Ә~ 7%٢R~WG(Ⳇ~C[e.!JO4¿Y,#P #POLm|ܑ $vrFHkbڏmajݿ30fi/b84⸵K>ObĴV֭BZD#M̥ei ۂZ00Iwhg\dp>&^{WP5Zo+N (8ߘav$R3υWn U6P9%(pu-ԔʍJKثvTnHvǪ0 I=g,i%` G=b2 d4e#܌7gHc\./{/׀A\*s^r*s#Se|aM.bO\4CqD3̤BfĝkjxB0c2 d^mhf\Xإxj@uI6#Ĵ0gumNTC=.F.$ְakذ\%4[ХFQ-QC!~%e6н /ZgccI邑8GW/A,"$CLbCoK&qs cv^;P%"]0hVdU2ma1040Y6I"o`i=1^33ͩ#Seuo%Co `eu00Ir58=hY(*1R)}00I' _B#?RO9|o`۪'>/b2aؕ,^T17%Z輫+Jz-"ޭTXZ4TLj".xYcGqV?,s3;G+׽1r,Apf-CE_$(-2> \ <@By ,Tw! |ӕ*ߩO$?|z]!%a6LK'1'i5l iǠYS>PywlYLMcr6Y Tac DfK Pr9nU7{KۛTC{C/v-{9[d?rcJXYV^\HGMѮ-qvįou+@_C4s9p @ Զ5MN37-{lDAuP="] mPGn(wƓnnj6{LzOvȞCWkfC?7x6şf\%A|?e>S(52t҆y(NcRD[fq۽]FJ͋W+ee JlAHQx=sSbe?D27ՌzbRnQsbF25睋bjeH{ʜw~N8&}j10li ܔX^BU1= ?/θխ{dL쓞hB>JUK??܄qDN9L쭞]Ǵj֟HWs^W$UkQ]I%V(@HKTJOc9n?QVV}V$߸W)XR,cR<X+ޣ]m]vr9sb u.$e8?3CQ4?.^3wCXq\BbOg8QV.,  %T@UCIPU6 %TتG`ЖdƿSI|Kcڻ:_!ShQ> /\ǔPP ^jҟ%Q'#'z3Tq%BG\$Qh$tI5>*,  >M,^C4s3b/37#Vxxycܓs Y Fjغ.aBܧB3"24s =VSF_n8QB1E?G(DZqJ.eHJv0(PJ%HGUB^®$Sc4#/;u?UBGnB)ڃ)5~Eȭv+/\1B(%uEwCc:ĀFSvH{m7nܢB3W} -P"N7іML4іY| 5!{=*50D10qE}d+ľDaHHC=~Vo,sؚ)uM,n@#"7#D[40I-|cQ >2J=x5› I8H߇P#:Drq(scK{ڜheͺ&DQѯ]G\k{? O%; ^n5t%K}Jn)>Q#mzxK({Mߦqسe.ߨ 2Xm#_2zO__1 ܤD/gnR\֮AL2ƕo˛͊8obݫW$7n%!E+h%X w3  H ]p'2Aze.eJ>-](*Ic`k*s4RlEHI;^%إ \T$~1?1O\"e.%Kt$bKHF䓐=Br$q 0*sj:Z!74LvH˫Xہ~V^vj%:IPCO/`2uv-0G3pԺn]4.b2 =RŴCdgS3Wuj6Q#&y`Ij`;cX,yqDFkסֳCoKaSK@0] SP^IF)^)/"RTi?_Vu/libYlj:EPcnUblGbŌe&}uG>P15خ vmuj4f&.@@^,s1!Ȗ M'}9zƭja&iXh֠w5St=2W\]f; ժު!1b&?.se>ks<`Ƴg@vɲbq,~wĨ ^AF6؂+^;-$C3x8z.@}\AU+^F^1`FSt+)se"|&armէ\٨ i}W(seCDZj^oH6j@xEgp`ڸȌ;TΔOWz̕Wm-z qY|DYbeUG< 팩KN WGPOpk{SFhiwE+jGQw|N KͧQ5cLjLG){cC@ -`q҂. (\ K巐e{b bj ػR} \1sB])1"o$.Au`]<YJSL]ZU<=PcuqY@NV O! -;&5wCP?`e|ʰ 3&ikh-_zӣӰ5;qNK1NhYnTr 1jb FUVrG+{ E5ˢO}"cYyl_/!۬7pLQZC`sZ1ʒ¨-`R|?([ZvTvN4sؚZ drE&9N? es^ekW]o"f*XWK,gwFXBkHlRrFKxGٻX};嗐6hb\4!V.Uwl8ĤOMI?sbe޴U N/n¯W"_4Uʏҩy@CߘT|kTlϺqDRIƾ9F/\e*\]l9Z4hd ;ib3)+*d]Q :b) 5}b<<|N+~.s巑1Ac|OU6:sT@4sؚZr jMM0;bkjɩj29<呁IN}_53ڧ]*TbP*lM-,c[SKm'j| Q2Ԓ!#O6bkj:z$q`&暝v CN̕@gL_L_Ζ$HC9{,s3b !u .7(Myk,o\!fnL.l 5[ޘd7u'0c3֕^eOy![SK"FbkjIT#%[[f`z7i(ې5J=^.sRuM%؊D}N`co Q0*[;8}1؉oIrݒ[eޓ`7W%BIzm̕'}LBby-[SKf d/- L2C[пTebQmѥT9toocTw10840,40Qʭ@x(se_ ,S#/ИT Wmu}7[SK$ I50Q+ 5N1bY 10I51k{ 6(._Mn,q5^G; 'bѲ6L>5~a #נ#uwه} 5:KQeM,4]ʪ"'1 Z0YG/fJ/ N~aXHtcrM5'MD,3 J{u1сGPoFD=YZ66^BN8S}R5:!吾*900q΅?.B(se#0Vx' b(X;ibS`ʊw-2ؚZrT`*[X M70IS L2q(WV{L?: b(2.>)6Kbl[@37!\<.l&ԒsSԞA9%*+tK ̜M? (-eedaZ6m=zQLFiaT@+*fnBlM-׀ BlM- Fu ƺf[M%\Mqs8D0Ԓ <@Կ[SKrB5,PG&0;`zf̕ERۈ_ecG_ ͕ yj0SF9?QuZ:ьgZ -V1L:M]AZؘ6 I5CcL Dog#Nf dNVjq_-N27!vᏄT{6gnRlM( Z7eFiCo3s#ћi}'NZa%C5 ܄9Fxy~{wD5I4 )5tr7mW_IHkZa%W:3a 5DmPK&D0ԒoBldn߇f[SK1py)5$*,ۣ=GC<4sbkjI6sbkjIPKP\!V[@3W%Ѿ\enJlM-Zc>= ܄ؚZܤؚZ퇉Za%.P ⅭՖDEh 5$ڏ3ixD5$*;uʶ-lM-1}B5<o` œcP~({ q2K1}!ίA}cdV2W~9&}#FWCܟ H*S[SK׀ I55Mj!:jP++._QHsXFfJF{VU&w|$c2-[Ȗ>[7?Vwݍ]oϥFoE?C6!-9iG}ʺn15[rYZA&}V 뼁aWgbN[#^>U +#kٟ 9x!*?QgJC UԬsW7g>3W%ȇsnגLZѓ^y+pMLxi"_!&չ̪$MLsajZ]4g\pYqƍ..a cq$a20lSyAy5C4g~H_yf(:B;.AP_P˟& f/3w~2OkuTWs#e-e9&?BUWnM2ǂb|ae2j!d+gn!<q%tЏ]?RlQ _&KJ>d%W|u>B0K)KML!@ÂZ"7w;ҫWV4gva^=5θLd^RK,CfM|P_ GNS/-P}ơ?R_ ЁX@?s !WWmϚNYU41߽ b5:l&0b:?8k_/C(=B3ȫK\éH2[̫ KPc>v1>G}퍿\܆̼̋+1q4K\JfC ͈՜U'='̏OUe.S ιϫ \}#|^,."?\+^]<=?ÎZȬЪ䒞T7o0Cݿʖ}:OUtڨςkPEär1̫=䰰ֳ_û,wah-c݁s &˂ ^2אCP:La0GW絍2`p^% ߤ}̫HtL]7S]?;lC93nu/yŐPxL?G2Wc1u}nU'w_4.+aRfzvbclzhSh 5דH~}&? d`uQ] ]G*;㌅R] chjto3sjo;􏃫E^S&[PNFus4Rv-4sZ7%?⚲Օ/$sdwғm` 0|r0w@ٿ嗢|w+y2^Ɛy:yc +44mj.f`5h _N .`yhU 3WZҌ+܄ؚF7Mz ͶziD~r_P%փ0x{<he~ؿ 1 4w{Qs7ќO571Z?:Gs54_6/E&WFN׋s4θC0 5Q3]0j1&s:^8sbkz^yby .֗57w[%1>_?.+PYy;c"hjGEUY;?u:5]ؓӃ<ҟ]~=aC+h ޷/PZ;++"sSb 'wyи%lk\\OLC]0:VԼ>ѩC~h ;p9{.E_',㎲븣lwb~h00O&}ճjځ[ JaWcudFgDj|@M=&irj5cd`Ej1 ~M e+8wK6$Ǭ8J@=!~-e.S׫SfЭ;gR.6G m]<_Mh 39 G+>G`'s /@d̕o̕MTwe.NhPL긁dVttПfnjsA-]}f&dUĐ% 첻,I/ w 8ZXS% U%*֙ ARQQGrJQQQQQB%%!qku?gN?9]O?~>}>sLtÞAaVsEwEj=@}Z]Qg$5ZjL`hfA3jt;lbYͩERE-JhVSԢԎGjuE-J-;0K婭"M9Qj!N SR{?RK(sZMQR R+jQjفԚ!m!pۧc曑~U -ck*6ahTٽT1SE"WA7̩NL՜vW%&8Ĥffd{NL՜n?2otJhbRV;i򛠉O/1eML 417vPuwPR M+( ؚ+W d 9^c_3(nUƩ(ڳ l E>2gKv0AOP%2 DXŷ^j+[VK@f i~?Ybh{M+_Hf 3ok ;TT.\Dޤ4ݸh1|,"m"mcIY킚;݉ˢwl߉4[ǡY"=DD!qʪ Meԥ(i%PeŪb6|41)lFٞ<Sc5 g"9,/t*͓*Y9 r7?m2cuqb$&DQqil*?^NaܱΕl)sOi%h.=d7 e&>9</k9zI$h;7qĤ>y؎}?(5_~ܯeσ^1}{gڨC~8FZ e5pzPBorU -cr0UC0 lUTa;Ĥ?#Plm.m= r:3ڴ\{C-Fg{3,nbϘ,lk^+ҶZJ5w:ЊhbRV_&w/k;'nK3Kvgf|+Zw3Kж=Ybh=G>kcb'eObҢiGݯ2$UsOMO+SΘo:XW!J1V@g:/CzF3K_hV@Msj򒘾Ē]|2K~[y|$Slmә%66@Pڳ.2U2BMLo?u X-dZf,8zg VBʤ:(^bq}ENhbjr]qxMPܼ& ?#lr#Kmj;I4d ]PwUPq7{@{d3K~Og|dJC%rl(fv`tYȷ7aɐk_- *CTQωBXlT'T13)% Bt!J!VGhߪ((+wk%O%C8iPg5,9~6V{bd:*Y=X[Pfe2K~ݏcʦR!i8UfKZH~XjAݥTD RPdiú ~%BW߈ 3UK]S8@YT*i`pǾF6xm.ʔ`MCG*2c7+2ϵSc>1=2 1P@,Y+7Jٯ|,Z+q7a^b MGDBD=l~N}Ȥ^K|@?g'Ŷ;})2vD{G1ZWsv"_->@5_Lsv"__Rd"_ى|O}P͗"ڄ~NkSkB5_Lk9;Rd"_wbDE62lUa5,1<%8?N6YA@Z ul&vA} !pD 1cTf!I%_$v^`(2ьbEs&#f]Gf3*15V'W/GfrӺMM89=2Sb!)41}>JKX7 JYeNܕfJKJD\&&M# R_ ntu V򠴇9 adAJ>;ԚjjE/#cJ*BԽ{z_q/_/C;r #yUL ͯپNuh~w )Sz $MmuEMAUΕstMBT=̅PŎ*.:,trBVvX_{xuWv{Y0ˠPYP,A~̺MAޥ[?-Mc2&i?k<'ARڽ#>cdщĤrl 'C&'*ϛƗ LA_pDIOcy<ҏWaKI1L5jؗ"7/%C%VCȤW m3ȰmMlkvA Q]0,-ס0|Ahu v ERv_t =~bۨ2LeBkTEm\yZZP/1Q=UV,Nvѕ[,&&ef4 E`:(/ HfEaH3zf%wGY.4,N:˵̒|2K~8-e VA4d%?ed砀h.42K  'P>}FdxU:о 5P%{WfxC3#@xiD , (,]׉CP C~V,bY=)N)#y!}PGTAϙhU,(ˀvj(Lu+M\wqI,gM]4m1K~~3KFns'dmnWeO*[Q'$Es9=d8EGыqAUviDd"~#iG>9@ebGLEqA{!'R&A$(Vs2ܭnv2m~U,)wx.̠DGq]#3iE @3๽,45 ev@ `?ea.SఙM0a+s<`y,kAT[Yϻ/H5ozhbj>-Ҥ^Y-P g,}˻VO뱮I܄r bNfA !v*~Efɏ4qy K~xɄD2 T'C',%:%TLt[DY#qʵ>ѻ3\-)"u^ ̑|D}T WA1d{ifofv]^EB(zGW+w3$O%`!:Gc{O̒X7g$;T ?@YAM*12/w@Ȼ/n-{kߺ7ޖAf ԙN3K{'1@K13B} !:;FJ;Mv,)C4M2_S*e!(S"`%>.cQX0A{%]V<tǠȶ Dg(pQsSbO(Oz!<.4ˉDrDk@݊vTf{+*qs&2qPg<,y܁ϙ^rqo)qSv :ɺJF+h>#Zp*73K$صxc"Jq. Gm^-kNyf-DN_v{Ǡd~H3,pwf2 l1 ro!.ȤHgkRv~DSPuASJSbjn4!i e 6i]2 VGaˑ ?&/'P(z/CeNBhr;vmrY/&QlǜMwOh>4 f7b~p+]"t)#kyff3-isAC9 u{7-E# /e}æ.,+9K*t` @<6]8C~iKޡI~4Cϟ4}bk#3˙7EBj[008!;؟U7pba2CYr`p)+1#~-<Ǡn oe,n˭nX||+6xa?[@["2/`A%EXlLn"'(gIB彟mL|bFp)?+4,`#䧀_x-*PjQåy5,(sGXK'aܥo3oD0GFY΍ƝHP'_æm?"._R֔e"G%Vh݉~ɡrܐH~(2 U(Sϱ3}|mǧ@6hbRVsje"adcif &;3D)~u ?tmEdsoǃǷ3cPI3Kv3KԉLxnPDO0{΋Px qiE(8R'L9`{+)40} dZoJO =fAgfA݇P]uQs爅R=^oDн :)`/esmіQE&xLgQ&& A1qn%odQf:*(˰Ie(id෉1mh.C P͗"j~Nm+DbOIH]uPF1{F(d[v!i.1:{JՍܶBTq[uIA%;xۄB|mPғPطg+O> =UhaT"S$K& {~8(ӊdI([ڲDKω=NQ|hbXb%S1hecBA3> w0%O5 "S{Zi,3}? 慎2K~Iint7@qt@Vn2Ky"-jȆF@7]<]8PU=AE Zfɧ!:"X}9Iz9V fT 4EI, OC۫6 Π5Uzf!+i'X+wf M7ED:YUvudHEET,*=uo8BRUƫB,9SLyPWN`r{$P! z""&b=xtíTw_Nnǿ m&LtD"߹Rq( (F*4۠IY=t4~>Z|lYq= 0윉dc/6}EY%у ^&&y|BsJ+=Иr_҄(tbTy^ߪŖ6zV%溻uBNL՜v7&. M%v`  )ts a< +l QlM%( +nF F dMjЊ2Rp}^\'H&G~$0G[4 -w` ICyq1-<1=Yr-KL8&&e $~sB{~(SV_ZH19YMPP:6~T9+"r ܖE0HQ,##d415Vw5C>(#Pf/x蓔<95C4d}MAsթ&=_p$6U+MwфU̒OY[0m!\v/맫p8 ?N1@^p<;EE&~Pf>|ܒ8D2K~)4P|((Cȟoz 7o*XG.(F/eoq3q1oc>m} f_OEm?3KfG**Z/iL;d ئHՠ'mC`8|$a{b݉)KENXm.%mhMLՠ͎ +Lg?5!`i eZ!$fLSjЊRpAcnyN!pLCG' PAkyw\bB=tH 4m&jЊF "\ж?[]@[P(w24X/W˻D](< Eq E. ҅X&BA}2 ~gHUn̾nTY1Ҷ zٽ`?pUC P?y[ Vd  N;nb5>& އ>++ӰOĢ6L4׊2VZ_%X\]Z}$P0Q4~9i4k+d))F[%?eI4[E|VAtB)J^6.~!)E7Lȶ:E(&41* }ԗP=kar_4aSY4YwGZ e ao.`k'~1 ЮHKcs:'pū1i_}~_J{DCmLg iMg9 >2M8#V(mFPdl7`k"츖ƖchSV߃NL}Uje(KqVW;H9[rYQlcì@Rh 4 aVVTD"Vi8EtGqtw ~_swI})peپ,R` )J&̷9osKFݾ<)4A^ůYzAĢ4ru_!N ]2&f.d-~wtp.n%F *(d/\PfXpUzJtJ?Ue;#x)"2Nb&{؟u2K~@ԮL٭ 20Mv u,5 ˟3hSG_А^ o~#2+qSwGnuO3KS?STG]lG* +]!ig$rǑL[]y6){b0-Iw(꡼5鯬&tӒ6`^dwR Uw{C%:5'ґPAk}` -C ASg5hE* MjW$ڦU9}?N9O|Rvy T%/"AUTJbC~1R'_YP,$dse +Jq!.¡+`F CB "\@~UML/(]ً֧)ʔ(}ne{S< 2Z^Jщ6Ea[,^4E$%Om$>@ݷQ]u'PN|z IbQ< E} @L@3%Jȧ'I(ʔ'(y>hbRVp$0[rQl*Z $0~,_q{EhIEQXY՞),dÇhMLՠ>T0\AVm+Wdc N%%TQV&A\(s2 u41uVV4H WvY⯒ ]"h)J)WhO\9Gc =A ʝ%4]VXDRi'ݢLvјWŚ6Dv@qZI?Oe}XVe,\[C:(<L䏛l(K1+ڒX)\QR:rC WJhuRdfc%jސV>- < A^В PX%{V٭ӭ p-F2rcV(+XEnnfnsRd|jOm+2Ѻ*Bv 0>fDq^cPBV ,x,XoTVt܃ GALB5~vJ: bXܴ0ޱc0HzBmR a4EX ZC WyLn`m2խS0'mп8`K4ڃ>PV3K>?#+1n7ƽ5)I^xH&m@PѶ!VWi]'ԘJj\/Xe׊yuo(%&BAoA'д kKzYjf-+̝N gKЕ*"## 2¡}xm AhZU49Ppw`㾻-}|j?,GhOݳtr!qYhɬ#F~A:S$DgUĶw+Ecv_(tQIEs3#% gXϳ/KiO3;%r|ϙBlQi$2 Csmd;C$^5Wx$s (eA&fU:tti%' aVJ?@>yPb'{%) d5EtM>Ikc78UP̒},C' ~BB1?da47B~Fd-)KjZ!fL-M(Cu7XD[bRV+:C\K-)*Z=-{IN(Cu`}m{d2'V$!C^/znPl'd{\,>.~'p >H";m?wA3|6hbZUDgE41h41G'Dj41ML}uPI(&)&&@ I5@:քkbF1`m~ܑ=4ȸ" ږXH kAW@ fl?pHѱviULĤV4;0v@SümN`wN#xGQu%xrxb˘]:1uU-=%pyU=w l@pk{άid&*N6r 41X^&buFN _G5IT:A. XMLډXzA|3 k'pݸ܌}uT#L (kal%~ kHquC?1)˝XtbűՃfToh6~ThbǤ ꮢ`9I@rdv.ZuwA;oUZ; E=il-o%@M[\a 4=fDb,ϊ\=digVJN)vS[ET H JX"UnCdC޶C` 5t-Dfr-2K>̢!X#5BhjZ#`:Zrv6GCF-9kikDђFMMk:5B!-O¹w3?.|cXuoA5{QAi̺7;?'-J>gcMԮ8SqS+eZ~`I XLY"hbYsii}i='JO~RDDŽ&&eu9ӸVPLbj. s1XTD7As(rƀ8~ZQ>ҟ Pwj+;`K!hka[mRKG!5#I-wI+}D*)+S3v*_8)hRuG)^lg!@Q>l̂ gd.ȷGD`J8'@M}McPfN+HFEDە"=lmGQ=Վ{~6y@t7jD@VI&AsՠU0\A>@4B^,퉨Ί=m*(2T~N4CB5_Lk9;/ur_L)|Dv|/E&9;MYzy)ZQZ;QdJ9' {:۠>/rOA{A0Pma}aKuz~a"oooooooo0hbPF*sMd-ḼT5g >$-1C2 * f\vB -p./e{n+Dc%BArDhMAHR $NW3XYcKîSp7p81Gc ŧ>Zr"4Ilōva@>--#L%C6ޗl#v&ٲB#|o#'ʡx-WfޟLp+<:,ԽIf-7PF7 2É>5/h;EC" ΈKcL{ʶ,|{﮺{nMIH~JBHHJrm}TTTTtr.4FĈZ**j=C=0<02\5uUs9k{}D+":f,yzZ~g{!8hKz#nSs\l2gdz*@Ǡ0(i+<5cq)VZc}P8XК Y$D8-(>U ƕW[:iDv"2kTyrзCFL}XSځe>x77ceByÅ|G"vs8L6g}}8U>~?%Y:)}Qeǿ/)1fcQ%bv]w zcRda!} `!eB ƿĊfkɲ5U)G놂vwA?nj͵isZXUGk?6\up}$uih]G|]8*AF#e]6˿# 3 O֔ȲrmeF/wф8+t,'@[L%m.y$NB+SRXͩl :tIzZj1#isEy4@++Z܁4MkR܁Ϟ3 gg)9cpB 0P.{.<+5dñ!8\pK1ʭOzcwͨuKAmv%<SoZΤXq6PዶsDkbLvT7|~*Z3TfBD_s_I3O.r7qJJ84c t`X41d8-ԕ5ooMD~}; ;E}7p%"cjU3X̬O(֣3JNh;~v~O6L4rD_PDXt5US1Y3YS jMmAQ7K % rfj $x4y7`ufp4sW@^|]rWpEv"I)ȬN%Ha~>L.(LO'۽܏StU& o]JJ8g wG;7ʗOX3 ԚA1%O/B R|AK(7{vPٿbfKDW5UkӇfMmQ2KiQ cjs&ɷnA:MԚ2@"7;d4M(`Ŀ o4M(&wESv(*4z hBi2jMD_̚*-Pef61֔ɮQ/PJݝe ֡wC[CsW*B_XVӄshs )Fݫ~HAf5Р] fX,C#pd*q>(m1WEu:墳S*\% eb!=}9U)]FXDݽNZS%"6kPkdD)QEb21 ogl%wew!/I̧D &?0.?Oycw 8H{Q9<5@G7Q^&TZफwצ$M=fhJPV7!l-4!G=Np뗀^ R?U73",I6?c+z=d" `onnLm^e(\xbTc0svG=Vճy xxZ8b'یcӚ/ɞBdjW2~CVf f| =+,B"+U{Ճ #WkFȞxWXBhM5V!f8\q5fv8֌pMmpnPyu%& 㬱3, eY њ1?览\$Ϡ c<hǎmc+-sƊ+4Liv8E}iB9T TiB hr(tv&+8Mr(:yϸ`^|&4Y {;8=q9mB"$,4)[ iBF8EPkB@gwh2W4kT|<"E+P? Ǫ> 3ˣ.4ƌW>yFNδK<%h=Js̐38_۹{΋U|'c۲}<γrʼnZS]]sؖrOκS+۳bc.Vy)m߷TSș=KW/V8^H*zўŗPӄRЯ1הBf7"P\cH)uqv#ܩS਄ jWܱѻ \qv RܡHz&71&#+mx45%4-'.9P *Nl{~[gc+:]`eBk^@pygwaCH W`1ҝSxf}Y̚ ]z5dy1.Zdhr;[w?#oQ@gbf4ތc쁛e>eqfY`?~.70z@v9 F{-fe,pGʠ0x%66<2|!Pk>Dd2<gAk'3CS+(O'0(/_`Bk&Nñr,p I]YsT95b kd$ʬ[Ee5U0~w#1taQZS%+ZS{ *W2y\(OXO| \/ tw)Tɖ r+.5UAWT!l$d?X0NS;Lt]Dqa/p jM4.R_(FGWsi$&sHВ`n)( ;Q1AFWJ.; T;*w@&]U6N<>Sy"Ra38!3H`@ì l^EqZ5}Tt )P@-^TU֧\m2ZdeBk6ov0,'PZUv@T7&f{9 C#Ix?(^lo^pV2_BA@V9ur 3P S/3)Wq Y]Y_:!~̢PtUN2vuUP vw LҾ_JEOY==e(rg1$C8va@.筤 e4\c"Oki뮋?E M̿afAsCPoߙO NNah>#0+W\ IJF^W*E]9MX(ƒP+' g^Cz[{  y .}y<~ `~Mʡ0&izGH.3oB.֕w^`6's@L=fd䗐Kp*NV[hPۨ"Ŭ@ rqZNxȖ/K_'$Q/xL T<҄i4T󨯁 &>k1ώRԞ, %Ϡo=shKPN;{2z/o<ճteԚ2;ߏLBltl^v4ٗݏi(/5(& MJsL лeRZ]BuOYMPvktciBa "o{֖h]SwK ;t>2M(Ùh͐+_!SP$~dc}aɧh*9de !4ayb7O6?Slлr ih{T e;ɋ7liBsiB17RʼO^@  }зM!P F%4l:N& AoF,tf!l MPV/ a#(ꆪy\eJ("L.=J+ȹ@Un} .s/e)vCJJ)6tb9GϮ@BA&\zZ⋘O%AETd!|P=gG 4^ flo|B)j2^mm9\0>D`r$ Ś1 ~FjLg82Jk{iB]fIQQ.{~(Oqt`^ZS&%򫘢pA4'pL[N>&=1&cyf*tٗ+r) L[S tJ>p-{e5PeiB?[FG bQ? *+Ͱ(22Vb[[}> JE/@)%f,s|&~-+j:U;(NK#?}4×r$2G3נ?/@d@ 8 e޳y4B#5dZL~>4 vTr)w@L̃Un72@t\i~GN?uSʨV:UO ΖJup=RV^@Ey*fTdGpY7lȼPغغغغغغآTOOOOOO-Z0{C#PkJPkJOva)=8^*K\?ܔ@qg PJig@^NV7d]P\tb!S7Agӗp9z !9kΧS G0`: _8eH},q(x g&:yv֚>M*ۑ%eކcE9 җ9Ӟ?h+|SUiR7?M15["kA\O>Vb+ZfL9aњ Þc^"08KHc;w Td}-c&S;6EcNXBW;k LH %m75iBZ̦')`G y{eoAjql Pmԡ9aњb(4sgEk&AZS"ʂLSHfӷ]1xi6L+M(2Sn'FĴ kr%Ehx!}*Õn Ag A7L~YSX A;"$yL$®"oVZp Jy}0iB:rīdMPQ_[Pwɥ(M(݅&C5NEK)7ATp&C)v,!SڎVNUO6vʥ!"{)ɟEp2]R7%;u@3H,pbPD [=Bꇀ>BÈYEH#A7:~w$!`%:qW;TNAp *? |w.hߝ .Xg3Ǚ#>)Ԛ1}H܏P:VG҄UcB#i>ӄ;pމ ;@TH9k)׋ < |J7ENAm(X{ =`$/ɡ4.974ݦwmoj$M(`BysQ, ^JAg5d&K 8ĉT YXGMq= Ŋj+s ucRBǹU_:3S9R?~(b>{ 4! t*笆҄+-⁸lA=5+6CkҎmk[= 'pcB}!r-}G'X}QYb]6zEGoMBC<D>E ݉Z "M|\n!94+4i -M/z&/O02NRBN jpRx"[т)Ӱ 'hr/Dd'g!r-s{9+}! N .±O< +hрByr{Ҏ_f6DM sJcJ8+}_طf,4겸޻)f,XA'?7+1iJ!kZ(hi^®&odr>$gV{!vW:*iL_A}fX]fXToX?ߘLֹ1!yw\F)vV 'E[7Urх"ɹV](87,*W{|瞬CAwcS]ܜ5/zcSwwOʸ})sG zb:J(/)1j1:Cʵf͠8Xez[C4_ĚDT w2nt4ڣr]2/X7Rn4&0#n@a30 74eA1J2@\_AO{ZS%;r۔| 2y=Pkdy$KKPL_2RA/y1u *s`(B~|k(9:}&]@&%WЈ1&.{(4%RythCPkƮ O{2f6Pa}-&{V3B)k, ?x+V+^B`^Y~JU+P*NC R{(OxW . XMg,FL7(~\wLEAElҮ!h'A/- bgJ;B_g76g'+>'h}DkrA!OS@'ȼg>%onEh}DL)ofк ".aapKOeSU߿ׇÁ-Ex XSnqYShԚc֔ Y3>=f| ,L@!b_BaGl-0j)9[ZFsk'KjɆξO6/e \!YRk'!Y_(H{UEj^U{P+h{P1 @7 @&k`DiXa @)mCkEg~@I1x 9.*bwXywIkUοS?  ;+93]r~92}lPQ7PR iB#hH۟xxtP4෦ %A/F(KyAYH?տ-z(׈Hyw'AP(:v5=].zntq>U:R|7;g &Bg Ty@E-TEfsev{\;*0Ԛ9CȔs{p~ɅQ" `JZPaeT9 9UT̮5fu*F- /oC.|9G&QoJ=Э*TN@AQ0ѱkٙ5}GJ.0 F^w 0<t.8G 1>9L)!Z_D;6GYSCO`f({0֔')`:(eX9U6|P~#&{v0)h)6o1>ww/ַSy` b1_QϣЮo djK@hM9++-P U\=ube}֔ҵ)N/XuKp9 T/A0~"$Za҃4  고*;Mxߔle j@dl4MX=ZOskM9oʝn7giG+ 1grIdR =Tbe{+U@H+[- O!NW>LJ:}{:yI(H1*g9YdbŽӄN{9N罅9T"A{ڱ&@AkH?b띊p J;]7Xz1zp/j;(m>g'y>ޜAu=D`bWNhn4auzwٍsKw`#cP06UNC.Jӄegub}r 6i1Q;QLtw8A)UPB9ΠԮB @e- &JFzu;&i=F n[S!4O,*7*j YPk[7*oy5dxñbBkZ3 9l7 @{j8֐EV!kRAV@yHv=cjq/+0.0y 8k>OL'NdyH\Y0["+k$s@\D2&cP%YO1Q/]y\SQ|Eki$WՁuTz T”f,+y6BѭlHy:ރw`$eVN!&!2z,ϑG\ myۋԏ Z3?QAkԚI}M<["ӫ5 TVVѻ6kƙk]'|bZv&u.":15d=`|!c.&'o>J{ fl"A~ 2kFn@$eW("(mxLԎcIj[yD8m}* uU`>oC8ob&T1l=" oNU֔`dLYYS&KF/IѦ-BVN#SԀb*Zє,/Y/yi^h5hPF+frjjTƼqr^bD*̎P^5cҴ26T}yW0wt};ELԈTfeL~2Ȇ?̚ ٮ\t!].! ͚L-]dUn5cdCfw4yz.v\,mZ3N&y5m{`*7Bҍֆ@)݅mYY EV >Pkd9/+kD# "+tkZS^lCA={ "+ V泾eL nkYh@t`'BTESP*LZS&{ zb2)~=iE@|$5%.1dk TK-fv }M>L7Y~s&\_deBk*dg r'FWTv}W+Abfd!YiP:¾@xJ'WZFڌ;ˁ&M}[ .jm1MGLmG,eGoKP2x=\G\ƌ$Un'i@G T =.[DLB}1[JL}Ҵi`麂U6.tq=])ȕ)5%tyfP"uvQ?)_6 (hW0$z]v^_{Ŭ`GR0-z֔ȶt>S'0E@ cZ.#ax`v T>} )}~oKttt%@NA=DcdW3C#@m/="zԚqL4Jv*DL=e . d"lbVOP'r/kaKQKN3LNmF]{_ZDjoV0( =cyT0=<@ 0]mtC"p74w"D{gj{l^Jz4AI/4.u1&Q >Ѹ(f:] PM>P 4&0eU. \B5Pu+ޱ6+c7zk@Z뗠"P4Ss~7f<ۉ>(KZMZA̚!Pg{A{oOY3GrE5mƗ@C^3X3:Ԛ!,@Mg}t sp jh Zy!9/dÅwzY}Q|ӌK#=S[?rE2N7M|&$ޚ YRkvL4Nv0UNf"I(DpK+Q32,}P̀*-LmзdDâ נ6/r/ R;^+?#3œPߓ &M(N~E*V' wbo@wz~N ۠)ӄ}r1Qt B$ eQTLhg iBzT|*wrD5¥a'&BDR]LX`ח9UA,lR0ޖ-esе7ɗ^҄ehZ>4Hs(y]e24 *g0%xKldi؁`{aI2XMYƝ iY\^8Gh4/`-)])eg䫡 T S 9yä@^m]ODW}e[՝~jԨFZjԨF5jԒuJw @ (!] @ !HQkAԨU jA 2AdP 2Ƞ}ss~S.>>yϯ։16`T&ngx5sBҗ1p_4N@;ƺjͅ/cྌs𛠉s3\2_I؏Ot<}\2cƀW)ke,9 k۝rjrJAD~T0 i: C:3PcWq62-&k-U|}TKmY;s}V!u~毃&.cvN\rI'%.c ZA1K?a˃A;P^%2OJ!݇VL((,W^ $~l4 do&1hhls# N>Z"MϪ IZuk27FԘ[zb iA7lG00Յ|h` @_s ="վ.?]TKeTY jLL,Z ?#`Di40̔auƤ5 Jl  }m2[|M,wA7::hF$ GC7[g\1&چL% ԟ55jMjlbx%ÆL=/߂>V,#dSxXb־ŒL}j[,c_,^#}6i$U!u]Pc̃*k},.$tq_خК)OIrdH9 <5Tx乩ܰ˴n~,i%KAW)!bhv-N]+V#JvdBS(ž{*]<57&*rG?hsJK9|'Q,z)GՖ y9&yi4q1[c BV8MDhW702K[oQK>y@+'TQd=OY<̓woq~  26I"˴Š%kzAfшkzR,cS$|qFH!s_ĽO(]fʍigyyzCD3T!='HT! )q̖nVK*{+ l%לddu %O>č2;R@ɐӽ>L /Y<}y[OT5C+)\IaC\_`˯mTX{" {bQM\vlgblS̼]蔢NhЕD)U"DY t\E }/,FyJO'k`y$!W \k(Z)heڟYyz'PHgq.Eb"Z/XҸ~^-nMT ס**Xc~)`[."=-"DY P q,u dB<%2Ph"Ȇ⬉+Z˴zs{r 0B)(OaYYWXG82 5TCH'A>D:)os34~YJ,\ElҹQ{B&n$R]V:=I[KZږń%FD)B;v i1a zZ2DԳtzN>BC` Kd:D%2a=~U1+ڱL뾋%-m;pv;}GRp=+Ң:h!RҾ#4REhwDJ;"쒖}G}˴?XݮX?DjX8rH3p~4q̲\ LEos)!JDzM}b !Z9$wk&2&Ɛ7[tMwJ<̀,+[]C XMeZ/)u{ːeZq,i!SfjToJN\,XLjfe4=ՙ*K&nA,зE4x`6|ߛyĽl0Fi18arѿDdDi 5,L.*g0,7sLߐdiox]a>\(o tgN(2F I([0Hԛ|& rty)-!؅lI`fyQdIL$ȡbMVM`J :x^+9ut4NxݖR :0K[X(y?OYfܡENdL!"CtZ ʧRQr]i2d*~IOyːl2[ _S }Pv-Kjʐ2d*.2=,Уyw1gٌͲcT2&#P<b|t,_q{S\XM8b_ɉ >"]ŗq+q<%} }nm?F)w2H4pKFuQHfAAV%5DfZ5D/kme5 ѐm/-YCsxُ ;=MjϷ71~a}v ې+:rN@+s*j@Lpt:FKzu_yk;ZuMЗ>W$Ýu 8f2ǠF,:m-Bs˘=Ԋuv*4q۠˘=-:5D`:@_d@ Wgv2f nUh2%q>C(,0d6[ ]Pc_F'Pw13).p<),W؄2ӞNg|ޓA[zfQg ?K,pXe K ɘl^b B3X99 s,ƃ.XI-ñb&ЛωBEW ^Ջ4:4PE8SDKOeCz!}PTw$;j*q*q4h2fH5 j4]\ᬪ**6q^muj@N>Ο]8ϕcS+/XKtS!R5Sb /O I"]GHlBB#`D2pCIjX~?]X<% ^PHd S{AR *Ç5 j|4,@e ϱ5ceyZ'98+fz2^tREղ3Y)$` [~Wscm\HPA&leXO)ODΧb>XKDf<q&e4+89/4]C5}';rίR,xlcqy؋d/ rZ[CoK\lUs>s.6<-?&d%҃#<{'T C&Xcec8@&g[ W) q 0.Yp*lGs pA3p*jTBB U4r!J7ˡ?Z/0sI#{)D*G ڙU{~cy  v?ETO)T0EBh`cW<i-eҒ| lRĘ&e.ʍM=ڦAlWPy[Y*LxҎBͰw<<gvghB "֤ ~OMdH Cd~<p1([ϟ޶N/cu 4qufG:r5Op`̮P3@#\,B=:Z/C-kVfXh6ј-P젰x%LLFL+/OKl BAEX]EC2zh!bVYX↵Z{4hǭǮ鿮!-R!Q)~P寰B/h{eam*d ֠M@q4>(AmS8!:ߌ)Uf4V̂[YX_[D{[%:\\:W4=@|V@ryB` z+"z@A&rZH캞5b3yh2fKFf\H1fɐcXNTKI{e1Z*hq+:";nE3r;s*O_oacuڛxn0jE`hmNg0tgm܋~Pwb 0 umpHS`=5_lr!2B}Cl`M\}e v^+Z!&V#Pc+,=rE{*IshMq˴*t=X ˞# e%.BqaԖ0,qufW9xdAE`3KEUdS"MJqav!Ժ@:р>P#b ۏ$6yT{7ShDMgOnTfgRڷ+N ,]!50g'A^`"^W4n@ty^0BXM\PcHu *Eg`k"Uyy:i};`&.@tjF-A 2<&.cddDͅ'V5b靖}4YPs^P>d5-;M8.n^` m'd@ ls̲V et #$!4aj%6x_'ihbYwz,'SPyfa"O'p*6Hݤ'OlsE8bcat*z8ڧ!,'z7֗w MB·:8i]Lz5G{ʓײ*b_ٛOn";*5^HQmk0 fZXkC` FBf1ӏ#ő9PS5J@$.+A7dݡVC4W}0;*a+η=O p¸%g.Xh*WM*wGQ)ʋAF+itM,LGWv4$Lc"3Ԟ5c))i_jTvߘ^ƙ M1Ox:Y֒k%u!?M(4j}p⻠Fi5+ȱL ֙!SL{'a\J ?yS`tԈ/,}jȺD jԺkf9 6jݮTvX2,CK Cb˴5:zM8r5*-A²BSUՍC";T=J(mB1hƟ! +FV7 _v{,4I-fk\ˮM-K2 ϱ%Y`S$ Eƙ], dBZ@#A7,QBcw3@]s $"&4q d Ǵq `ՙe'%nYz}5}3q̲ xq5UTzHPc=`~,OYP;O#҇yJlN^,B)R8a.b`X%DEb*}`j@.|_M Z<%Fr_A6>̋qfGrE@} iNSs,.~apyd4/&ɓp0i1- 8wY6˱d`ZØ=59V.SJb'}8Nqci8m|rW[eA@ZzŽ+;O 쁑 &pDgbrN*:tBz{3D1cѯNc5'h7'F8e|1,uPcp54˴_zp j<3 dwܿjj,%4z4q㦦ڙ}lg"Ҏbaˮ! %Y؁-/9,04^2i @rPY崾AnCw< 7)GC<}R/ߢ H?_6b&r *hM?54⁳Ač0N&!? *D=lwhj<%YY%FAB:FGsJ H,$'aDYZ4bNϨ5pߦS;MϿ("7*Qi#gYXÿoZ+Xy'z-Xc7(PP'tʲ!^9G 5N^GF58H)EpJ-/6YG `xm2K'a쾭+,~_x|U+H8(i#VQGcR'(,)KJs)M`l.~b9uXgQ~ڭ.n؀e.Peӓ{GZeJgQ%{Kd!ljK"}tߧf[Œ\5ū8γpq'@8ί|XuP0+~z)j_UTJh _L%mnU,۱LkԲK2/rk. zZv D)v =+T"rNa@cUw+#xwZA6?S26!PK[}S!Mm 2NQe2h)"6 c" 0䘭!rP۹z](}3Zg׻:xC;|p:+*c&30BĈtV-P PH8S` Uq^x%eTH+?5"6'<%[)7͍R'a&$.c:Cv*FaO+&"f>q=*?Z|0s<%2 N#MM!$0 Fج!Nib+J,9[F1(5.{Ma;;POX|6zB. #ˇg!`a~o6X3%"7j² \) @!`O< qҍKA3q"erѼj}5dlIg-d@ЪF&9IH៰ WA uZ &hzAKS 8;,9,|dl@Tz y =\ !eZ{I0s.8We.L B`JD: qk#P#T!2 NQ)u &h~~H)K¶jmˍֺ/^ZE0B_Y})MB%/xWƣgh ˝'mx~Y#e˴[,i=sFKm,2m,B¯?ij~ 7 ^v_ PPD~UmfhPOz3mu?P qmTI3Pe @t xY>6eP T2 %9՗u,[*s"%zxBT}[O  }r{ЃQPU> Y[3Iݕ]yvҚI왨? B([![s,n<[s,yԚdؚdW &< ˸F$!*|7Dd}g| 5Ғ"-j)ʆw|Vo.4cfFh]9\FfʋV%y@/zS.L%Z5%Oq[Os)p)zfA K yߢ}jޙ5{O@(GJw00uԚg`Q&k{ j5ԫjXoxkmV~u 5PP)( e0y ՙ UBFc Tv3[3IV˞{jM:m@g;X!$3.TZк0޺A/|}ܝ"¡{c6h.qz{%rDsnLpI1\WAskIDN!TYB"gAlyCW= ih@ %E]FA "B)D.7wB I(v%N-2A0 K6_lA \ y;J&_>ZuWP%{KAD M,!tQ0"rIg`j8@>D^AiՋN b}D!r/[XJd I ̃[ygDǙEZ9~%&h>yKI>Ǩ<s UPMt]UɾYFc<dML="CQϑ=ⶴ ~B{Gtt 94u 1"$7v+4vYA, Z7f<:(LJ5W_!Ԛ9Ӂ HF}r ˠTmV~m~ co,<A ,@ #l̝I-ǣw'm[T'^:1a^ 7&>7&iɘ0zcS2&܉mޘh%cpɘ0s?%c!7&S1aWɘ0덉Ӎ 7ޘ(/"ރzc ޘ(KƄyd]oLJƄ/q(Zɷo?^ }Ą/*_~n*_f_)mr_Ly7]|Q19PS;%mx3**k?ikӼ{eVo&%H_Sv3g[ 8sEֽ[+}%D Բ5r_CiZL 5ԥI2-2CzP?Ƴ@;B7c>"Ð@:% UhFfCysE +{OYBDG=m ?U6TdC)|vo^Y_^`0287K;YYS{lv zTFU.!D^@^Ev! FD us&Ũ+HA |Cc%+|JΒ޸vCEʭ*cg:u.O9 K9H!p(ݷ쉬AJ>ʒ@VvDD?+9")9N1Q?0N,JprӐ&/|5&4hEg 5cd>"ނ~Tz/֤dܔ.t\?%@%}=U>$cH8=d?0SQ"]YV>R^9ʲ j Ppõ$55ѳ! T m#5̥;E41k *ha\*;QH?76Th TnXmx&qrQQY{܉\K_63<%Ю_[ƽmg']>'d3-זَR~h%r;psOc$K,Ad Hvת~Pf ׺YP` Toj"PelAdMcl.*iAkf_y]P9[cUPaT)3yДJ^%fW?nZUtS_]3e5)B1fO5$nXR\_ʞt LJ`_*Vr߂@/-#+P3% j%   q=JE[/r&KMJt` KPk* ̊[YS(+PkR94I*R94I̬Iɶ$99$Jɞ$J&(5d;r(bAIɞ$Y&%˰L5p`g CYn$٫J;+&TWJ8—\;/4?/kk'5)٭'R%?slB_l|[X|0kR}dO~(`U򬓲ýDg z,!PkRW{ކ6>"қ#5ѻVތ ˘gKmؕu6VB@ee?fMJ=$7C5)~@{ P9[D_[Pjwi@ D+W*D"*@"vի7IN-T9a u]wMY-kk;HmU^Ԛ C9d_Đ ̚ GD|:oYC)Y7az6e*nxpXe.NύBCN}>IBe\B;D__wkƺ>fR(0yVÚrdOPA0FYPkR "0*(5dQ^)r^k ?QR(dR={$jv5tjPpYJ'^!kO]y Ԛ|E#q ߧ'p螮"rHYq7 ]@$K%$rL{WnWgE2iE)k`ZkյP~P|㔋pܓ^|P3ݲ1́2+{l TB)vݠS.mgʆ,7@˅XixX㋯4^[M:`O۽5dCW D80ȅHK2Ƅ :ъD# <9,[eCbyY+Z<,1CU2юbL<*' /P#jwtkdQQy\\샫~P{%@WX 1L%D!MlXx AEd˽՗kL&C(%WD0)@ 5zJ[&tYqWN@/!z LX/kP7 {{DcӸ#u{ʽEN(:Q:PVѥ[f ?®mF֌{ l7Yщ~hU2-hyNNYvVUjO˹JtQPfm[5vzY񺣗νEۈETtm8d jMvT9gҟDyuV+񓉳GkTmjMJgDݠMЖԚ; j&LULh[d`%F5i=*YWrA$ DO/ң`v '֌-Tq{/d ffqCKx E'ګu!"X3ҸNTNr,ˠJ9r(:db,zr(:QԲNr0m(jYyTF;mUщuGe׸N<*uQ(jYyTFkUщuGeh*:QԲNf@㨊N<*7DQ:ͣ2lWE'(=1@]Dc^UU*:Q:?Q:ՠRtX) ~XD`_bÁ 5MԖLҁ~ Y\Ge:0:Gj02]B=0G0 eQC5k]S[i?Dщ&I!.PeUݴԗJIC<.vX|H;'F~/]t 쒦]:vYi=ɪ5^YqeMzNT|6<*V5bLf a^L8%\^sP;.vdӸ:^)֝}[RmӸ>eMm(:)4Q q#n+}5z?qAʚ*(yӞݘ25))$].n=ƚ{Ha똋c?v(q1b*˸ݸeMmu*:up:w(!Pv ,(a1[6KSЦ~zX~ \<L7`4Ad)w tSgZS!˪)?#xנʤRPkƎf,5d/]h⛮Ðo`Y7E' FE+4*k!;YWԔ5_z& L>%}xC~5)WkKyvPJ̫O5f W#dB;u`"% Ns;$b {i}UP/h@H F77"s=4F`$o/ ;Fuh!3H ]\Biۏ@8:.3-"Ӑ{'|V(K<*L\&{dj|U'O ,lT+ SP ny|YCN :0P 6;8K[;D^E{MO #xc֙drd,0 y _$"p"&>ThU S>d' K` C$Is yPKOyazJć m 6hS6 X`MB8NA.=iS">Th x]:t)O,COAp @a4t))ǰ=%r InCV4hS6uXم$7 |k^TUU_eܖmB`5?]Nh&/!֤dyFBW|;%~߫hf)dӠ"Cˠd@I\%(KNfj-_*NDbH}Q/eH^< )nm/{ G`6:$wį>Mom%>>'feok+Xm۠< Ksm~"W ]d>Lp \fa=q4C#"{'">bʡHJmYHHp-oX%y{XGGcG a= Ďٻ Ӏj(C*8z8(8z;zGG=>!&k#>FhẆd!d1]0k*Үe k& 7A6$pZ3djᢁ0܏g47EÛim2PhxsJL֚*Y:,cF*6ȷa!M5UFf kdChSan<=bJaa.ڠ}@_SQTZ}h:D;D(:l4:YȚ_"Yug05I Da}}]cW\h9%e+MQc-kjq3QS-kq1`d4h*" 攑#_mNs֤pN_tӰ?z5Y9x%N4>)g!WSw"djHMޛv4K?ې/7T#\ý*Gv ?AqQ&bxgrJ|bWȁVvjB'j Dwo{W&"qC DeN( CQ.}ܺYzc,KPh݈Ek[-_APky*3Sn.rj\.i YrkP\nYpgTm* VA]+ŽPJ3{'8>:9jk̨U*?~%390HY9,t7t] (3v@`to=͒3skVBdӡfe@~37s$TKo\<4Kv=Vf3Y" wtϸ@J{?z'Aoo\$>w@c|C}3.Ё%诃jǏ.5?W#p[/,ŘؾkDt9S(؁!x_6!NYqR**Ch1DgL V‰ǜ^2εC|Tysl9*򝠌8ĸe z%+y!.m 3p(Zʋx& aM NMYE^_tKItjn* %mycX(C&hJv>SvyƗk<oKD-w@o Z3N8=.0= N3)Nscdq!wE/ ,Mt]2:K?ڍ=ZnWmжdr!yt* m\\gn %T( !}.-\\x5cd 8z4AIqn.RT&:<-j2hbdYB\Xz%/6@s{;A o>˒D[V!B<ߔ*StZE` mBoT98keU!7ȢM+"{VV:.kNA*i M}"g2,Ƅ.~c&|?oڛXCn3PI 2 ,S?)9t'A>J>kPEsȫUSTQyyy[6ҍ3TQiZmkYS}S[r+{kEqD57iz Mgu>[d_5)@kI {~% D!S|ǘʥhsKj'di'vvnPD yPk>!HL]:ٛ)FyWpyq P9%hr!j XZ+GUkMN"ALk|ƺ畯2J^i> aKw=Dގ(tv.+Ʌ ' Y:#ZcH,!Z,!:"Uf QL *&̚d >@8rĔ<TcCI+wO}U.^@4/#,7^Nh/ '0؇t"XnJGZGZGZGZGZGZGZΟx&={ *O1FԨ/JݠJZ :b|^:TBjqXY6#ObOrub_rv"j:WGB[ED~1E1=xYcnodsqApP:{-p>R8s]bh [@4f"ObhV"Y"rgx\\u`,`,E_~$c_'֚Or&8 EwLڍ?k\Y֤di \9g\nȝte #1Xpy )0I6vyͨՍFnh:g+:3gq/oV}W{de,!,7+ӉY8"/|s}&[('||\ {qA2w}C{!l- :) U.FK/OpMp3'-Afdg#C^zKbøYoQ[{UӤgk*div۬J2.:\BV˼:̣O.qGrh\ `wpшΖN`Y/7ޜ'rO[3N "ɜä\y໇ ̬ T9wCxKWlug陛{o—0PD0>'\Qν7Q½QcUQs#FUG5jDzԨQʨQFMIeuk7<gիW{N<ϴ?A_ie7?MS&Dk˳4,,a^#.#d9…g/i*nBRG}tP7̒m 4mk)nY5|.>ifG0{ L{(j\8oeB2KXnV2OŘ$ h(܂|2EŗDhbj̲Wkdʼn!LeF*n+0i+Nm,> .klvK&t[&l(^p 2 ꂖA+cڢs[Bn5Oxf+xKo>mUS/} ~o ޜ,gPxøf92KFɐ,^'ErH~8ֽ2j*/"fu3/$u(+(>ه/gn~ng-7/jB:fw{lRDdTY@TA3PѩeA+xR/'w&zbj̞53?x /!, 72{S_,ށPn{ˠ9!/Jm,2 SR6q4;+?tf?Yb7 }M̉ cyy[<ʇ%-%P;cU3K f a];.T@3Xż&{ĈML ]Ыn42axc-MLI@;܃ՐQr|*q杅x8O%&e6|pF!4Iw3q2nx% bv/l\˾'?>43`!I5,]G3 /#Y6(BID:\o"dBX{bO[DK'} D $Dz 8onMm D!5G\ Z} #k/ ؼny/O["?} !ϡۍ|e>> ^G Pe<Ğ砉I}ޠd[7`f |)J*~ƙ5/p6tcЂ6zAv0G5ϵgqJ*K(41cOUN4ys(]yRԔKj4Uэ*BY9Xh415fCڽ*eY%(٧9d 87AQ=EU|lG)A=JuVQEG8JAJ c?V_R ָ5TJּ41 HK.nA\bg }_dV,e70:,9<2WLdD>Y]ye,-gxVoSU*cn۶=fCh0\BEO {W3X^/2`U(*e %!4dG\EX1]yeTۄoD g&T4VJ. %eں)hbgIP͑A~O@ql&\tl=%_:lWr.tAyHaL^ߟ=KX:0F{\@tfxY'_7I3kKE}#B㭱SP.*id/9̒O>{K_'ZwKAfK^;#X c..̶В"_|8U.{ Zm !Є ;ق zBwF$)I#{ЛWDfV4I 3à*;^]5Τn D%w 1%D!|kD zR2Kx=]9qfBQ7j~H9CH:Ry׈NBGhMo*98ڎ~>T$Qmu&2 pHq`p.PjcaFRN@Q4`Ԉp1p\s&EAq?4`|nz}DJ"dYv5PSW3K~8H P-Pe<ΠWA+!zXkCJz Uj<k%8 "dS *2UY A ChaE-:@yI=9dxM̽[8z-(Մ2ͼ>%ELh&]UF[<$&ekUS?ee* 8~SSBKK*J=PR&\kԘ pR %T2|SYel1u|WyՀ6"o7@-M(@pQttx$`\ czl:5ebT[ U?E(+{Ԙ *e[Fg1uU&>8K[Y8!ipTՇդf@R3 W֚5T֐] NLL#C*c{!K엂% ҋNJʺ;hbj̆RѺ[p 2N/.L2םԙuvmZƥ2:kcnmgZ DlT 姾WfgwA7N "'(";F>j%ޔ7ԽJx7nAe8|aОt4D{ 郤'w v|S ѐnzV&&e6W Q l}<9 aԘwWL P faʍRgp4,:ʎℚ,`Pg ̲%M$H2UF祆uة>^"'N_h~4T\Әx@s ;1.&,,*si@]';!p\%º "Nr"iKH˰K+=T@ScF^1̡u H:PLEŒSqh`ZuPX%{V:vP>qD P'KCοr[fycuCj0?jz%2;W=s T9(M](qf' u4vpD7t6~}^, u/b {3Kt׈/e6gD,,^쯗3n 4C>uq)$jn?m %$QvkW:?hbؤ{٧TYj{`M+!KLl. k;!hbƙe5cSMiʆfU@Uo-d[\YmAFo;q21u.q`'-PmY'H@H!2V0˰`sNgbkR kU/j~Rg:J0&!zTK %TK:b!Pw r ܆^"{k^Dh"_ȿGdWHCM9-@̒_`OCִn)ҡ)N9ro edSv(hbRfsprR$? BtGRs}'V3K~ jfoaPR{H DC4`C!pT̠L\ i6$VPsT9nLPIY: >{vjkөSrh6۞v@";J3Yuw>qp]";;>FӬ|,}TjG3ڸw݈$( ; :]ЂӄY4y2pX}v0YB+PGJ3K U|TCTtW`HP,8ds %)UD:(Bm,vC{F>3U,~f!pX3ht gΏ4d/sycPm&GϦASe6w-/&r2KA6=W nAL#Ù||̥l 8W׆<(L]aG)p ["Cچ(ȶ2Q)sۗkM$%2 D+jŐ!0TRE3[EZ`V$@xmzAjf pfW 8YzH(8K3Kv0G8F( @7Gв841Uf/a;_MLF2Kօt41UfPt B,]+1ɲ+93DE=UfL)'7lsGE];*:ѹubdꪙ%f1pDf/4{bܐ VP7颥{J`w}A :Mh7ȝe k}-ŕlG22Kh/dR`$Hr6RHY?D7 -&|1mˉӏ'$CtWbRfs=ɹQML\:K@YUxJLECzX.ԘeN^wwm|nwavE6 % +Wf lB`Ef"jv]ʇPr[Ĝu+=lU)AS@ֶkVz%T$E'ZH~Bt@Bl_hbRfGPX;^*( ؏/ 'A1*> <u)>vIxILlXt@ sG %c@NU`ekNjB41),3!Q-ݿ.=Pel3TeMLmaPh(:ќYIi3P7z9 Q:YV;: [(kM)vbVy AHOzDzg7M}=O%6.e<|b BMb?$,xF^U2t&1*Z?-v8D 4dH3K~8ԇX  RXnf8(,} ypIRr6/fvNkeLH|;#P޶Dv aXbmP6<>}c%vc85CћhBQV0ä! hbL܂\d-4 hb1{ ֯+sot\pL#ᵡթsm]x6Č7dw@3l%"7n?q A(l2tۇ1fY7o+cĩ1* Z9Ie%n( ä@H0UAT͙酉\duiۨōw% N-(ᘅvEYKcYr):kjVcVx-`.rBS^HUh<uDԝĐ${r7's01s^OAn'Úr6a0=YPp)lY *>taoF` 91. Y1HU!Mc}0qYDDfY~ٯ1YrJx>+Ñ";WSgB PX%lM}}i",'Rt)e12WH+' oW@qK[S?t;In|C{c%o'þHtktmSoy4<E/$H%~ξ7ցTDoܾ x=Y(́Kݘy/D*Cb.08^??"&{d&),Iyp^,!(9y G됲gGq 15\}w ҔpSn|)" Kw7}7ERy7:ˤ3BbŴC: x0ԋJ6rHRͯ¶!3yČ1ۅAT>V&X>1),εa2wq- w sF?\WsG@8:fGԭh2{/D n2',n5STkp9:]L˕|$j[ QbuS/Z!uFHcaJHv0/8&#= k7<ɊAz_B`YE9E>"W,p/sYf^c,qj߅gJQa,*gT!U#h41#ȴU x+ i MMa*]VPVTW4 -T<\sgf2u,vr,"LDYSFE;R:)͂I٩y]Qo_myt ESZ:uh0)CԼa y@v@Se^1YӦ5uQd&eYz" Әeam,m9` :c9!ĤN/"u^ц؋q0la?#.>vjj^~P7Z:R3tffƝB6u.(W%T(=bESCǤ_p9iE'zNZщV"E'~ \qVf(/6DaW_֥NT Da.c6D>a˯ץDuN2vlWϊN&l^; %TPF(NE ;\YNԉbX}.Yщ|Vt"bWf~ D(:Q|bWf~~z?N䏢GщЏg2;Y(:?NE'?.'։gQtb;(9؉u^qx?N/WۥDvX~(:h^⏢SRt^(:?N4ObWf~~q?N䏢GщЏʗ2;uE'GщDv_쏢ЏbE'١_V쏢Џ//GщQt(:HY?D6?ɮ2K~8oAPw-d["tG@]q/ *ip[.8o 5I:~1d&⒲Kt(k -2@DA>羄+%jN6;u<4F~@ <"ߍZj[,6.Mڸ| p,hԍ+Jz Efȏqq6. ?E 2:e ңءln-U:(Jv 0J)pwX, T'(>π&A7G<?-NU9P~Cx xr%|:u݋CrŢVy `۸~ȟ{Khz} 3PCOO![dwI6.NgUNr8~6зIQPE5XjTŔV; 42 <iك}PtieW!fhaaTy +hDR C1BS)lW?1E71O?GrjDA£)6.ߔ"7x7K"YTf< E< % 1U,AlӠprɥ&}>Azޡ=ykL АEX':=N?Zi^bST֩SlV/F)(֡ye;v(;D, 3Pw=_#j% g6)@CH'3)T{}Bщ2àڞNdg@hh/9_TRtIa']щ|naP/(P~TGщۅ P/]( Qt";(߃~DX*:^DCc:@qCvvI3K~ 8,̥)jd+i p 3PLL.uJqUщ:9;QX)k}ԩեDum|NTe W\59;Q]Ml*;QUNT˟b;N;et"ўg$Yp3Q,qvZZ~@Qt"Q>g'j%өTŔӉZeע2 芩O"u{tnxukёFщVEl'Ev[ԩv̓(sBD&H8u. Bl@ ul|븲u58s>S{"X`~1`oKLlΙ);}8ȊN4h+:@ ?joUAԸQ첢D.+:ŏAPv_]wx Eܿi)Fn>}ļ,j?!]A=$ 010˺xRAAg"d٬̓ϫϣVVUwGaY$1l]k3RщF uB2?xSl!; 8`~ Qs7^/2o3w,e>h 9h0/n gۚ1fs(ƨ9<''RW 5ԘG,ݰ\Fk T9PI7(Jlfq[N'2K28Cڇ8A(]ySxmraٷ(:$Աo A]$̒]h7Aq{s&DZ=8C @KCb RN,')S{O* .|`Z3:u.?eZ@CrE':݆O2]5.>SABj =K3dZX{а h(~IN%v 2e,D7_k@e )I֧JrFG0.RМHtC*2:?El&f]5 F=2>Ed&@}E`Ws.bӐ9Yf A$}%2bu+=4 EΨ!iXO@1$PǰmdNYB!*d]b(R8IC*Ӱӂ;.@~J #voe˛~f!#6Y/ JI\hsFCh$i>*9u 87SȼNYB}Xo4ԗ]KIJsBqO[kCFtUxF)5%~˝jsP<@ 0zԝ)O=\ŕ3,_F] }zF3KDmd\ g֗Y su㊴ Kb&?nt=`[ }##BxNe:9*1T憋Sv ßᨸiCuqmQVDǠsIcXYNz)kY}N}gj&֞FSt,a|aD;$TA+& Zj?4Kp}24̅3XNS),v\G'XȮv[&B7>w&"$i83 dsi%˳W.Ac5Dn#ѝ1g!@M3K` $4d#x| |fv \ %P!]PΡt\>U0'ASc1 U4,! '҆^U`XF%NṳcĤr*]5(/:_\Ã2H9Ƴ2^~enh]r.):ѩ[Rlu)명Jc%;̒u_7fXf L͗\S|E='0`D5fZh (V,E}{i/nPO~83>h w]4!KtIA?SVxjs^F=r.m#9;>d))BScvջR&!LT,K_5h:w>Ip3qR7\ٺsw]Pd% s@hQCHD9 ; d[O.2K)Ə>]u ds?orDZ컆n>.(BgY}:( )EȮf7'!M m V +J0 i-xK0 .6BTyD+%Nyi/,hOR+ v@}b=,q߅*]?hPٙ#PrS;PtD9(tYRlu)Gc4d ,L`~Nī"JO0ŧLliN{p%&eHOW>؉&WS.4#2afb 5ѱz!AY87|@%` Oh=o6A1~ncYnl#_w'fn/tבNkO0_쬢#àZ%v [E4Ȯ{&fㅜv&@կmDVaa^Y, Gϥ2MgXNQfʺ^T/3Y BFdrLf-A&! 2@(璢d]ɺ!UN,ThIQ%N*q: ŵ:u=:5&xzcvFJ/nD#A0t A.&4d2t!$js$ l&^gqKs)Y ;E_RvXg埂*./6s%_?gf3ssMM۴ͯMi6횶Y 8s[A,, {Yd1 A0 A` ` bYޯg;ߥ{e9y>IESNt%,[VSdBF8{*)J-JƵBp$B/7Bo{%\) ة폏W&O#2B$6o.Z?IJZ[|(PVlEbEwY/'A1L2[kkU6?F.Hrnw*iܬv[i?*vǭ}7i[Oݛt":^R":jjh[ 3ʼĎkm@,6 <%@ h^F>X$;EGl4Cq~hBdROtX 4f%ʤ$vXG|ʝڋWd!Y(.˺Oy`7X,upo]%Jj:Jwuz#wws1&״Y1V?)W}0KtʏvTJurɯm jmhJN[?mNl}N[~Cf׉~ ihsPS"ã>p+ЈƱd?Vp\\m"ۃɤ6+jޠiXhvezG6 ަdRdcͦ&6+j1 MImnE/R1]`碝ڪ=6ln̝*j-as.b Rou:Udբa SK^XxmfSդ4Ц*h[~Y)Ts?#ˡ'B- rI] YER$vUb^N܉H]'TUۇ KIMYAj[^Y)\:s:ޘB1͡t"1PyĤ+xFg;UatFpT}7C;s<4rz9[ Wij"{ oČOe[ C$vS7٥Cr%[ %dɊLD/8̾Yj©"RZd#|PKU]URCmh XTUEmˏUXvE$y1kk?[كɄ6\64u܋6~a}!HM#sS&hQiP $orr@ebGXd6c*Պԉ/ye1ٲ~ -Ǫ:8Ј$dyIw5cb^7QC͘C~ [;*26NE&I[M)m^>&ST^\yXŒ\L{7L웻NvF)J;s\x":M%{U 2r/v ~o[.}ymv[!R%rWi^v!NapeFaǠX{8KܓE&=c&vqUJ7\\U,L _[֦ bgMTAE/Y߉TlڹS4/J^o!4Mrm.f-m,<Ӌv9_ uoLO6x]&6$[1s1&63I'3nM|󼇀!!'1!#H*? (Gd$,,Cϭ)&B;A CP-1JЂA ~6^ZͧAf4萑zkAWWPe}CR>+$dAE&Q`_p <+T`tJ`_` {1 GٱIH|o]+2T)wY]wXc%Pc:oKkTQGyav~]5ɭb C$D#$aAmD !1?N AYE N K$bj"{}{)UeW68Mf* _%q(A38[.Rql Y8x+ d:fses[BelzeD6yU$?#OBjl?6Oة* D4[E~j^L~ҕnt=A?7-{& LIla}ʾ#zDn7o!RȪiz PFXs'ySwnC-vs?LS}!jM8PdFLID)8q^́Md)K؋@fFa?GU"r!Oyp"-V#6ypPx%Z'z4%VLT[Zy]v̋LEl>W%k|h|]64 oq;fboLe{Egs.P:.{uDRz(0W}"bWWI5D!H[G;3E&l ] G)$£fؓ}>93({ R7YdO-uEà(ۜuZNC$.[cE&l>u"V^``jͼVdbĵػPdBC?W~^s$[;EG%oy}c`8/BF0 -E|8;Yd_E G}4ɵy L>4Ҧ|ZaGTLd;O%Wg9Ŷʢ[/I cc(cDlB5FgਇV^M+؂IJ]AIJ#~#(%}6 u"oVA$ ܇ulIMFawl v "ooXE5}P;wرEEW%]H0[)  quc6nJ_m#wmmKx+"؄/!Wl΀)H;Gt"aR4]cSS akx C-(dİ }h(4RikSa?3ܩc j?ji"jmu\%}桕}Aܫ-6mGno``9 Z1{ER;S[6Zx+:]m$x(XeO՗-83#Vm90 y`CĵB܋Nj _Ye4]_t,@31_@$X ӒVƘ`cL@AK 4M%@a1RyH{ᵆ1,7A;/2//&뫶,$z?l/x˼Xςa՛E5a= ;bGPj$CEp>ܟ ZB.['V(Tf-AjRnmll@be?bYBb`tq ./5ۉJ,nO5YQIgۭڄ(b o=gy9m( Z/V{ffڰݷ+鷠\n;RYZ^db$tK7@4O-@(vXgz1q~ַţ#`yºn# `7}ѹ 9WNf4.o['9 +b{i^hݫ mN;PBr{gDu`D pxUeUFK:v#V풙0H~c&cV9PKTv͚*298akQj7{Qh(-h Q~l^ C yb$+c /@˥в4Foclx2z'>vO|u(;U`M=P=Xy{ Ŋ'+{"V}۰Szr&Tԋz={^TyTDNԮLo$52{WC 3P:O-`u^H!nNETl8lvoKJ{A3.:]OX7 24,ԘCnn~D غA`MWQpRG5Gè!pa"aT4Aqc} į;& ۪fXYlґ:{BdReU]BT#~?[ߪ4l56i2aMֿo9w}㩻,2zі dn09 >ʷ'˥:' CŎk ~1alaU2&*9A,+=! 1)|Ŵo[9(2!v-džt&ڹR?uk4V8ʸ] 3abeECp@J\٣ OԜdh, ԵCSuCS.JY@,23Զ Q"{xŮ+OV3`V#gR?GylUax d>!sLqKXw_Y2 zBVb%xW00idfL}>bʷlX a& zBVKP\eh$W4R1G6Ƥ {LX`Oٱ E^i WlD2u<:AŚ*Yt^:]m"{\"lp~"A/*5MP/2rt>q/^xw:ЬUK75KI}DNBH.3H{cJa:1Cd: ^Z:يBfOإsBњP]%(oAU6M{&V1L2v" KBsgoK0QdBd[o-V6wY M\H" eiթ5}=e%TnAm7ȋL`^7ZwOT7g!ٰ8P .U+ eOTH͆z[gUˏaX 띵wŠ<2ve#Z73!Dx{Xďۨ(0!aRn|+k.C#9 ،C^d{ ( [AHv Ey, %2nC}qP)sy{CĖ/P*҅SPɫXYF$G{$$Ԍ}28\&4>uk472ᶠobk~& {TX?=%'L:^,iYp7*E]%I<^k.6':Ԍ-݇F@#**)47M& :Y hrQY5cYO8*43l1M4NsK{Ӝ܃Z=K`ؘۋYBbL/ Aew6`F~Xl (ыͧ*pɶ5S %=bOtw'LlN;Żd9BZHud_ZXVGAc: S|![ۯ+v EDKPky+EQ+G~ ]LE̪ WнN `g-(cY}`tpWb5UJwl d]I@tK8BXusVJWllӍN4r8 ~"c爺w hDF݅?:ܜP9M4lik5? GTl^DjdP{P~q/Yܗ͝l Gk%Ytrc9ح nPwɋLp=#iJ6Cd{ֿ1T_V42=rv͛,2O;_|Fh}v\wLt? ɗ]1թ5V>a#9(PBlBT4bl/i{24IZ;l 5c8څF>CԇÈqMM0Ns=be=iuB#-QY5cY4p4#*UjY&P9j|$IJ4g}M\Y`Q-H"0e/WR3̊ϕ[؃^lLl iAi^'>QtKOuKlF l^AF%k6G():m#Y럝 (4"??J:^RVs;aBt J]iMpǶ: d穏 Lʹ/J&2/|q(;`F@ Zm`QFK⟃4 6v$D=XvUSjA 0t$~\硱ω.fk,+?bW|^1I~&2BFT@#*]8>.)+9\)o(1Nsnjy+ik~Qۃ83G}ʼ!vE&~pJ\龅/w17Kd[Ygm([l6ww5G(YɶNёlߟ Y pd[trh཈h J]ցM*8b7BoajfGbǀN9x_G%hj[?-طBޏ B `/2BN;xNtq7C^d?۽BcR7vchQA#*#rhD GG݅?_N9J甜y4PF8l5cK+X 8h fJ7Q:mRϛD):s6udl'+ekcg+nAIv3i^d. ,J,\o>(Oꋽ~5R>aㄙCIy`=Zz%WQ|ƾ!V=NP[PyB42?ԌMh8z8Q/ M% (B6sݷ>6:^sVAmq"{|>Vk(d/u/nwf枛=%SKwdSt$-lڧ"KW/Nёl~ wZ);Cmhj(,vX;}p줐3)zdLw eJ\J|9hLiSu;6hE~I C(>v'LϦ\{]9Ȅ(?zd.2N^s(3K7]dzu"vLu*\İfN~4rt{QF#*5.)ףo4ik'۵>.24MrmVu1aDl XӉe3]DxA緖c$ҍ _]K9ߦ%0iD4׵/vAւIM3j{6͊ wQԯB7ʄ7"Lůjn3L&6EھQfz_2n]jn@|SIgC#~7fZT pl~hّn\-P4bF 憇:ͩNAw; P4F81/8rZ#( w|Kw_K /@ʵ#ҏ}ohv;NiRm{xځ(vM;]d4sgT=>R7wDqO ZA* tbC9zfbZ!2t/>kKö;pFk^Hݥ}(6𛮆 Smw; (,@M~]!Ѕo{7muDEVwL6#em{z084"Af[U(W/a>vgvy?G=Y3?k^~B7z+P# Zzb]&oo  McE&xiCA˴+)x[= JZ4M*gT-}i&_GҶ FVQFĽ4rQkQ9hok&6&7df8DF1k^""܉Fv^db_tؿYdB*̉B &7{Q4y:r&. =?)F~6Ɩ0rj)F$f^ B&7<L\c5cm􏡑CI6?c3w7:OHzN|:kUOF6ͩة34ɷ0zS'+G ѻ =~{;}Ш"ʱOVJFэ|Sbk}{ @+eɈg;zEKDKy [X#:֯PbzZ?|QbKCtc":5_ԯةRQ/QFkx= #v*`pI#qM"6/0V(Y_96vUۻ`iksW7]yiY^`b ٟ.ѦLsp.c-#LxE(3[݅ V؄yL;<aDG)K\=$0MӦ9?4֦VBmW>nGrWӓmĺG"A$CozCP԰ *0%يlE|">kftbw݄h5Xh&UzUǧ eD7fb-?b}#YNN^6=A Zeԫͮzzt k(sWo&3vTdvd&p{Ke 53ЗqB#dOU'ȣ lɶ]YbK/dGϠ'˥ya߻4Ml>I"7dž@# tƑb>!v?Fxք)酺)v~pѩEyWk7-"{^NilmllKd j sPüD EzHڸ;!$Wx %TZ|,ZkSbDtjul GV)vEK{(Џ )g!q)2Awr~]@_(Kh2Ywnn Q2='?gROrY:+#E'*O ]R'ҷ@$b{ǯ[MOqw,XBFxD6}C$=ǀi2@gQm+,W{(KviʿnV^(oV} c i˼ U|vĂڑ{e%U,Y":F}a(b+ {HBqC7Ʀɴ6կb{i2ĦDnI%ѩاʿۉ pMaTr33RBo!}ۺ @S]=Au_^]_>.H;bLӼ>^Y`{ j9B cI9b(b(b(bvڽd{jV^db7O^dT_X) b5 2box"? (v"oǰ=xJ_z"Cʛ'ҜCA#!:A[pUm(,j[\:;VI3fn.~z;pQ6◝@bVy<{iksȞ D42bXYuL{x"sPBH EYяeCSt$[J fG:y~НRj:\ d}!nΩ(t^v*Ta\׻*lBc,":u#"NLh3&3jp|FKX<-IMyIϨ @|F׉!Mrm*?`Tb=/WdvSƎ|_+S5}ן=gjY-,;p&Gl>FfHkûeuk}D-2RBq!vao2zȄIE`)E_^ˢHi;V)ei2cn|?4Ѧijږ4 kja3#PUWˁd_P9%B\ 'Pւvj,CCCDT סi2ͻ@{mɤ6MLhQmw&ڼԁ&܀FM*'aBk^d(ڰN4kS:Ҍ/dg ɤ`L'ůfWfﲄqu`[7B$7z[V,C(f0r2:1-o{rnyÖl LmO 8[ߵ)ƈg|5 Go,3C!KH.XkN$m$ WEVVzه-%B6t 2M.@;UԓEk&LCypT>߾MIm.w\kM֏>XcnBe rY"};*X3s{&r  V{^6,\6Η1|,~ޏshLhsWۀ ơi2y9\0Ve=2cS>PŮ fC"AkESE&^QT NE.WL7O>Vv"{:ܡGv"v*2;pnӏXGFY9I9mœ)86M?j71ܠ×6/2:ԜG/:GՄƅ}+ϽBU:Ft<fjP[CP`_+ܧ @*rÃ,/Lqn)=c_.Dm62 ܢ<*jbfhyu<^8 Ft>fY/;ѷ{0Yil9UەDxJnRiIˠ}9kU?MK$I|':%ﯶܶG3W~q'89J$JrD+u p@{GI 89N"Oω^hsZxZxZhZh9Uvz^<̐3Αtm|M j`goŤNUQUJq#McȮMUo.5/2Gu]ᾤڣyL [4 QbҸCq0hZټW ) 3*5K]ߍO鮣j=Zhg1~Su~7гT7;< .x\ê{,ULyrQi}'Ƴ12E|o饬&GOfU驺:+}dx5N&$с.! Eֱ&o4}Mp]U_²"ǧ8!c5dVYDgw.%_PKU)mtXnv|7;穄]jQUJ<̲>K<l87F!R9}J {M*O/_}G6HbVA܈IE3p7TڦpEqnvfߛ7_0Rۡim{b1n64;BI3JrEsRW$y=?ٚ"[JٳnᾬjrHpU' p_V5./\OU?t-$Y~qƹd]Xk&2~,)jw i/r j|77P\ſR/~wށv:p`$Krp9mR|a0s)IcicٟNX{T}Q%Ը0hZѮ@_R(#޵%e"]ޫJ5YZq_x\Lg6RޭD>q]ĐL<ƛ$IĢxpQ#fe5@%7o-iiGuDkod8zJ  Ry,YQ ٕS_U^:^J-~C2BVKq޽&Yu;lU֨'mhz8"E\EžDQa}x#u4(" +27ͷϹoڤZUydl@&~8[=\baFPq_bh-xxM$2zZ+mg.и-܌V `ĸ޶a!5ho$rݥvW߼@YqDA[X)$ 6%mhJbR\1$؍" ]b:OIhtK6hu(bjvOq6c 8 z -ͫVpN@}dGc>gn^€qbh>Rս[HU,:F6S-lh`ݢv?zEZn]R-=HC yI?EUS9((4נ}NQ*n@.#F2AcKE<+#&ˬffFojX gy pUpT߂WOayXԟ! Q]5~y -ܴrT]nZՆS˪R2&p ulL@b*'pqR C}:8!%=/WR6Sh{!"ixm/V\aۘt~XKv]~x {3%fH*nv 6E?Ƌg,!}IzVFf~+wul2\XVXn2P]5P,@ ם%mރ#Y]d wm' -MUE /*J{˟3LoD"+P#jXsY{!=]_͐d+G[MWREhDHBVژ3Ծ<p]Uݲ;c? 5F:PcCZCj!OvN*J*P-mL_o~6jHڲ-Ls j\~>r-g m+mL$ȑ*Tȋ.7KZ T%A֤ xFQ-ܜ =C{O'k G~>TiUte3o;h]P"qnn=Ikt|=#?K)X4#GkȔ!g.Ǭ˶66Gϡ$ ޯUHC XUJr7GFDa7#f:9~ 7n-K?+5?TuTK>Dz{Ƶg|V{1 auX'­gH,r1^ڱ4e1TbT]L3M_6FZ{|VYkﯲR=KӪ/1?&R=$X<_m*Ք>ߏR\EqR_.j8p7&kWʏU Rݏ6q-uT'3foE֠e(:6fR]$: Q$$?OE ڸyV%)Uu T~7~~YiNo?CYѩЛG<ǬѩD3Roݪ\yj>o4_OԯS ega+\wbcxaB yA-[ ̕ߍ>vh]šQA*~]U*+{)p=闲snsnG&c@s SU<|?r TpWߠy*[ϑ3MGH(\m1h~i$MAI#(۔aۦ"qD'U5oI%W-V80rPcxᯠ<"ͭ: hz=nQ]w]hzTBB>+T~շ ﷳqu2-\gay -\G3'00|@iͪcg7RC$4SyXl8אvZ1slP,<;,vLxk8{t NGXGA8Cl1F.spnA.c+;~̖ZCڧRm6yc\au*h%0㻋ĺ(ujOM%&;e@Mvb7Ykp68d $x.:54ܩJq~>H;2H}8;LrYwF~i1v V8H¾:(t g> NTβS~=WVv v(kQp:#-$gI,Gc_cuC + ?XG3fI@Qp:2vaZ}NE?<+=AaCLK1rxN $o+n KACK[!20c[KhUmf=O*ρ, 7:,OC 7?==L<~fp0 {l1k ԮOSacC PcP5 ).;8١S)Aa#ǑԆG%o3wio`gVR1zo@j*| ;\%/>C4tln>@ >wWz˯_e U`FV*Te#֋X-'p7->SgP>^0@ QU vf->1y%}nLCyx-h:^1k7h4Tʖhw[N:%;5rI~U#^Rt5#z 5 CQeE45 5j"Xy3[j>`2.c&S)0ܽL2@yX\mݪT{>p5a }K(^40m<{%f9[[*GY&ZQ LgW6l|jmm9&;.)z$;Kb/[>0q|`ԿÇ-!Zgqٵ[ L6? Կ8D({S͸l8DTY%f[ 20YDO:T7&RYB& :Rv(;|ʼ2?D1h:kTۈ6u QZR|mM*xUb߅G<,xGf#;zE/udPx=AQ=u[>,#)S|_?#r75~*PP-uUJQ->p]UekK(սpv7c+/F-VZ LVX]uT}T߇W'} ̩]_T+UY!ͪ+_-k$ͳ`N?nk|7Coeh`Ig`207{z򊱅 ̴0CO\Yc5賓W\TwP?fRMɫp^o/,ܬ ʚ]aA70`4b`2= 3h=bt #}=hcz賃.b*g=T'lN:0 LK~P]W< \$ =?MU;驪T pe ie }ګJ5wS܇rt$1W g`g`$lf(3z%S;LPR>lV̼'B^UyS0 dzTf bl!V;1[j߇\؂>p5)X ݍɎ&;BKh5Afގ(߉j. J.!Ȉg I_ cZ; q4k Zـ1w3##{@>%bGΌfD}&R, VwzGܜW_b (C/) HnV.,yDKLE9Y 0S>bԘRu}^knlnln&j*Rb;yU>`̓\y?~G%!Ca94nݪCޔ#?UJfB/xlEb +b":"ߋuz{J_Njx9߿oOFJ2&I4fU ^}ߏфH+l*]DToΆT5)& hj`SfeXޚʼ@Ag?[dd&&&&}c.5@h?Q ˆ8L'xVGxa*9F JR4 X59g~oo9o;#\S=%HňLRi#3n/{8TҸsM2#|Cj{216Yk L30.dJwaY UxM1ǴLUPVթUe?2USZx*{Fb>S5mZd*{y-AZ:VfT]YETgWdSnXʗ1AURyU1C{(zݮY[T~†*Up_Ru yDnNLj 7j#Oտ*>VU*Go(A>Rehȑ}]*K$ Y;_A`y4 __|b#zm|UZUJ ;8O8q*Ƃ~-.]o'U:um64#9ّ,G"&Β20| ̇d*%4))GO_Cs]NU|- jqP'@|}r:6G$u<4ެJ1t-]p*sm*.C?kU)5܀gI}nCh-hY( #aU@Rm|my_7kgɫ6r9#N<}jc7ױC88C-^8`_E5vzi;sa~Gah8hsW8s$ibR^ #E~j;ELm#&  ^CD暁~h18ˍe420;hQ]=߳K9nxaivh6@[Mݧ-kF"M>@*g\qknU=*%ÍɉX |'d*|[qEy}ƥZ} UUב0=NBݭJ1"Ɵbį?5}z|ZZã1J9SjʭT|lUA)y&Q1pHQl#_U÷è2~<s4@6~whxqG6Wk=[0G8Z)Mº>?*%),H r P?gRM\[URK;^0}"dp3jYeS6oۉ &o!A 01Nb- Үfo~.ZxMbl*Ք[EV:*p3,܌ ?z mrV~98cATOF@k/$] W0T5 a,BXx췻;^!VAI`+jBEyG棷sUw,Z YĢ8`UmlKhNjosw>aJ1%ldr674GwfOSd*+h~0 5έuGdu&{tt+h:6Tgߴlg&sd.]|NUϲ63ѷuTmXj̞߫K/:蛙s=Y;^@o~.:@jQ37>U7Ѱ'G+ m/|/Y'myh^f)W !PQSVڢ~W 1PTzAQJE fiC;{nUqAZS#$z*ZpshtX#kDpy*]|bD '?@Sj<©yogɫ6r "ibQrpӪj lZ9kG :n1!حa$4Xil%b#H?"9BK3$uR 9d(ςXcҭ^b M:lŲ~ Z_X65x}!"[r95T~yX4J;E nsS5a_yC.:bm[U)/?Ubˬ_a_Ja,gOc7x /vRM ]v gF5DuŸBx Sb=E4DaTU+,3 bR9{iֳy1Q"(o l/ vc izqXM lg<۸Z).m(7KTp/\򥆷ܟD5ۘ&-=s\v9s}-m?Osy'Z+99ɽC?C>CjEEPEREP䡬("˺3{fҞܷufdf~\s=[3 dTlwuBCT|y2݆(NU%{ 6Ebњl`uĪ-gX ~ľ͹Lw|qu ^㓉ח0M#S,s!"f RǑBnIGLA)?B2%;5 mR P7|n/Gfר'ZN08zg G2 JU%0g63$1'$RUI,40]b,&(:6>adzUI7' LziHaR=DA7 G8;#* ^H$k-ՠh>IfLs`\&kjxbSe8QL,fb03/\k3LM,S-aʖ+Ya= V\%ʚ Ue.֠p8g#X!ֺ6b+mjBNT%XKJlaVf:zzp3_gA3932iu—W^N"|`wqrSYsf6 S3sCj5BlJ;ء.hgejRwUSUIt۳xB\C/SJ-q-w,| -b\e2-ʍ> ZhfRFX7,{n _"Fnu!r]NƖ/uYD~/TETKyeͱ{!͙.6z`w- t7]FK}5jnˀ90<p ^$b ˘|#pdҳ3+TZi7aE -,* _a@˾8vх'> >ڔjRLܖ҇TS,*o;s Gz=2Bvw+S﹥m 7 cx7b/,aM0 Hb2Lg:Py %D0H]DaוT+RXѼ[C$Ӛ_@uVΡ8lCĺ sK +\A/b>s_A=YbN㸅<,,Gߗ1ltn:F%\2Sr\5K܃z!&{|\531d/dѴ%C0ĩy.)mFW%PR#lll^ :; ԌU07bރ/F[|ߎ[܆P,E؀gАH W%MpvC K}?>ss HUBWU =gb0i˰CwH)|QAAG`>WU%n HC^D]sįCSOoLﴜ_gxcIf~?3P;DY"$˖Rr/# =|݋*[d=26I!A6LZ$2!ICwUj=uF[ZF2!Ɋ&DR}-15Sy8Sy'-d~0ȲAxbȅI#1m3lOW%AQWI473$D4"Z$Cj`R5'N4c[ޭqv^ b3HnаX U;E8L ۟L@=e"`dT=FG&EPd)e*ڏ )6K\a|f@Sϛ1dbP.k2W%AF$ mSX码c* PvU;$6H \D_S3k`UϮ#*u(k&|uH(.aD3cFʦwH {(@ڟ 31F#eXi SfTUPV^CSno_Jסa0u'^Jb d jk#Hc>u}=9R˘.Tآ'Un.# & u8mCU\ⶵ^p cy.άpCq5u*p2{Z ҮSdk䋪$J% #蓾=P8oc6j⌂8PְI )L\,&|8LO0n ΋ٚ` S; ?*=@޽Bfel. 9A s0Kժ$ 0k$BE|$g|!qjc6<^0}OGûM{x$;]'lOՉOo 9OOШ->&q'RE4UAdƳ-_MX:w [0 bjn^#ZWo:@*]b 3=m5z|n߃/O}E"µP3;J+Ȉ)nձҺ4?bI021dD;cG,K 7Ti_-$q5$p>3\Dy;O&dSS ;ځe ab,ò_^t!_iF\0SW(~k2`ۓm{BY m SV+#UIv==uZB!.wr7CtcC|E~*t#%z$[cUI8I1H܈ EBC|lCh揙1 b l\rOt ,ϯ)gCԈUIx4Ά(-9Qx"W{٫u%ș7ڐ)?* YW~Ӣqb_EZ-HU 7~Dž`fLO7qLVfP>-@lvEvNG |-1 2vOƱcgh@y#U;2aCw-Ǿ?mmmg;2.s-$GS[\s~L9n'sK 9˺/Kk{"yI*[2oGj}`wǩܟx Hg\䄐瓺 vNʹʐL ȥBn2i*w4BCv]8F WF&(i~1<=B}"yK V%Tb*E̺Is<\ 1[!:˟̘%d*YS-k[v[(ʎgЪ͐1Ifub/XԆd^%n*\nbwHj̲ %$! ;1K熭L2l/"T$צӪ3x}Q]>D*7) v&4HS=L?l;[60J?zHkB숶w&w YoDss 璹c{d۴/eMt,6ytLx=ɲǕmz*Ԉ68H6󺫒K$z/[$dPyOk+Wp3+iBgAШt$D$4Qs Cemӗ<c{YcUI`D`m+wl-^\,cX(KRcB A 2jxjg]җA+cew OΙ|sكcƄ;A6J랕1j2F+#fVxx ’aڱpCq%K_\sL>+ V%聙c a&Fm1ՏDh0A+w9 ,1`00ȹda!L-;@8{ykjT2FR;upv]~!]["L+=nl({t%i_"ɻ8.tc{ نp  '&ۖtc28Km^`'>V}[a{" of{G\{DgD/i_y}* @㴯~e_xO-q~G ܉ ^Oh MvLm W51M휣EIh|fVU.=U$f S5O|6)gM^7{'~P7;0\®'6&q&i[ڊ"J`EBA=M|#˻?j"w?W_4BOAu<9&y'=-Gmq28%7Ot/X7o>@'r/! 7 ۙʭ/ܕr`(ir5z.y+ )_+[f+9g;s7ӪqH`!OXn_ PT>j6ExhU%=zLFc=z4W^{ڰ//$8a\mI_˸Gd\vG}oܘVLBx R BSaL Oh&FlH AWǪMCIw~Tգx/&8:70RR޸_>Fߚr(}Q⠠8k V ~]VA*'LP6"j* = )36!v@qBo{9mtӓ㪜 U `>0&׷QTۯ$2eͳ0_$)5Od*#Uu?֍Y[5GjB}I&rLmqP@uYw_%e@| lG;Nzլ9x%ט'iBfW9^p)\m ~(,``lޙF. 9i? BZ 2IF0/w &],K7K8 {lU%-07f@T-܁*)Yrg%wonθ~M*)(z=H+ h%5sc, 3- {f6|Ϙe4w oEQpjZ+wzeqr#LHFș {n[gW8]aDbՆ~UkP ri|fU SH檒?KԂ-t\U-@b*J $Dϼ@$^DHn<, (s)a-@3ؗjHnV%^@ )JHP$6@P$6#-@܋ ERh b#- ${ MAHLGjI K^+fW e;]!Mbѣ?qLd 1!H_&ZX&IoA s,jJw tXdaS&-ެᤳ+UnthƍGS sZ匋bZp U(Nkm  Ƈ=1̊[=dS ZĔ:~)uAX$Ώ |v4C\Xtaaٌd3z_ W'Dlx3Жwfe }\{Ė Mr##ncayyӊ#ܜ1 <'Ğ'5&ۃKķ@XڕqnCHƑsǍPba@ͪ$z,&gUE.tNbˬCֱ"{P 颙Pǿ> 3& |w$zr27Ƨ84 nwq0,݈%se?ϵ窒TDET)!GZK:IjjcZzG[XxXE}ph-pc H:@vxYQ$y~I; N&:FuhwYcT x 2ʀBt,y?F־-xl8Bm>wO8bRolguf*1Gu"iL^ 3WU?gM=SMh$35;*Hك_K_RE--p`E<ᖾiWo0Hcr-Lo21s1L̗Xn^Qinumo62rwľU'և*ܧ }+I%|~Z k]Glz~\_Q:>2@Yo#V)h Ifg+{n ;Ii3xY][3(zĖvĦ [>0sr΁pW rXOrXFu"/\A%Kv鋮hZgR@/`(+F/>$}61n4B}Ha$3)7ȅ +qfpG͉%so$/XpC nPգ[~ ]3Ļ8)n#vVUĘ)3B@o% nlU%0Yb18L % F4;Nu` @qz/"\3sH'4„|kI1mjn),|&%QLh sFys.MB|cs(* 1H57i8|T]enF9PQFYL"`gfk܀_?& ~tI?Dh}Io(mޜɭ/e>: h~ݿ,i^DE YvH[agAjovkeⵁgDY;`e^:c ]^_%c`;U]5L3e Xbh/^p mPc! o"Xa9%&쨅;hfLA@Uazffx]'~{k1sn+5[UIقa;?>W% , A hx_r"!VC!֌O/A<۸8]Mkzs ^eD,|?Kid̵A_N+zP-Sm0b y7kj'}V[@Ŧ(o|sP{~4g{6>ҹ[Lr{^weL!YZ1stZed=k.#s_ׯ`qR,Z؈=|wU|UIO&Yiye߼\Ls5cܝRbFRBn]S"B@Ie;7*iŃ!2ϧc\bގyO,,";ᖶ,.W0vˈB%^@ʦg!ҁ2@g>kl=weR&r{ ?sL&f:?eW-+iuvS<+ Ҟ3).Cܟ7W7&_Zm[j:#.\nH\3L53w *@^ c:kDk"5NIaP>JVw?*ۆ,wZ 2=Ƌe3j E/oE0,=ĖA~&YKF:3 kegnynk&g܅8Nu4cn {hݦlmmh2f bwi}`#~k'U8yGr*ʰ?3qXf޲"K{׈s.aV Թ:[OCnAF;2so~Z m$n(AȾ=p#BqQ%8ϻq-CӪ* 7`լ1<[* %搿=ek18WC RG:6+ȋg 7y!ۄjnr 7WC( pcìr"@Z{PSgA^<@b7gh ^ Ve(.^OKc%$Xc̞yn}$y,&4&4΄k% $JNhu$>fVv~r(dX""l~#~>d5>jΈ*܇_T/\xϏ"`-*ğό|yKO17;J NtGYZ8"CJ P$L8399+8UڐoR/Vĩ-:AR^,ԅ ]VB]ni[^^JhϥN=VsABI󼸃*,Gw~EaUQ 8 _~`gǷx03 ~=}`'9yA-XE)U4J{D+IՆ`Lѻd|Yo% P~ǃpa|M|[lYz*y:~ܮ;Z>}[UIp9YKs q;' _[$qj& <}|HXk0^R~/' ɒ,x۷[XXObJJ{ JgJ"PI_~ˍUwN#[2V3lA|l\Jyy*oEJ@=K$b3kie,N}Ek=VUlC+?9y]^tJ<(|cwK ʚAA5fm>|ixpc >Vz@&+ jY@/g$ـYAހ/|ĖZ%ckE=,GռL[OobФqܮ/Ү01vH~l%d)p9q"In\OZp #yqWؖ͢=XM?AfM/ CF({zr#̱(ǎFqcEq*f1g~55rLS?DsKIMdd^?s ʝ3=9&r8F SF&Y?r>ᖶ!~Z n#<[`EI~¯EU% uWJbqJ68脥øc[KGQz&.q4_:Ngw8KJԜ .)Hg~mQ Ԣ;{"U`$!V"wt{c*I%,*j.fӕdm4R$!N㺥EϰLc4ҧ3Nχ˗W%Eh\ː}Pzd~]Пh$v {O =YI ]>oTbb k:,vF&ᒝ+< V^|* Q$. j%(' |v{iQbNVz5h3nh7h3n\dQc ~4-PU67˰@Q̂=J0bQW'/}kȡK}ZﻩJp^slCq ϐiN )\kf}/5uk]"؋U 7z5{=RVRܪy2./{ɪb (ԙN0$XJX$. 7;:r,ïeމ<P[_֒zٟؒojeUIľ$Xݨ 7B=dMkzD_N߻pbN$L͹]upAK7e0v/ٰSy ^VDXq>'$]45UH:ށlm"V\5Q9^ >9n]6A[/ȧy$>svE ItBOkxwYUŖ?+/;q5~GnRHy][ăX@@fS9=y^gNO3 gw;ٰ%sOHBO9U !Dv;҄m܅~`ҧqZ\#q+0^pnWjc;8(7gorm:~(xYsL(o~h F_f~_sOlr܆w#ܙLNOrkϥO 22[22[6+#ut22. n>D_A:&?-~R}%#htGk22223;8LW'$y2r%/kϥ$ <{Hw,Vc J~gﮒ8^$Nb 02000Fg4;~Y$JUqY>WJ@@@@@@@@@`@[{R]%}9}woӧB?kR2ʼn; |o.gj`Y捰ɖH;j5'bL =`[Ի%QM FoӶȫVʪLʝGf;gI+xSy]qxU&dYcy]wbE^럵yv]ʝi+]AN'ف{\_8=VϛɈL>ml痯m%u5𝊼T^5f8+OCdr,I*N/ <*9_@6_sMd5y7ʛK*Uqӈ!L^ \pNBZ_R)W7m>7~§ Eo)Mo(J'#N*OFq4h&"2.lNkIiYbNV8k%m 24 xAڔ7mdy lgئM=W.9}B\/ ~CO/իζl\ʝ U׭ \aSnj(z"SzOp3Kdɟo3eM(:W|.[w*j CLp#-ҮZM,Ai߂ GXp=cr9rIzKyX9#pk4) uIpn{"(&.\ U_&m)956/teq|&Kja&lV؞B¶k4tWŌ)Mk4< UY '#ߪ\$MT~'hyjiKy]}a2.p*9R}s'#o\:Am' U-+S2a2/ ܶFv"RAXbnOFSqRT\gU!K⾬\9VxNI&s4b.MF!6yW ] Qt8Vhr 7T1 []7==Ik&!QHj#&PFvßyj< ΜyOF\pnYȉzw0w;~i.OJODm<[_v=읝(IT QzYbYEV 0| s3J}e n♗1:.Tꘗ:e*[jy<24$ a1P(Eo[_4;U8(5nOf ߤ#&gdR+tVW*z`]}aLoPI?Ӯq]tX恼H9TE/4Zy]96#;@.tUUL,:qHşɈXVׂgR1;I`Obv{F^:Ӷ`8g8R{|(=qqաT$}#JcifRgySiӟȀ>clN鹚nW9}'S(7?]ps?%j]=wS\JcX We`^J٧{JO5ٰuv2h7i;RDͪSrfN%gMP@(˴8SmB nuJ՘C 04V@!POMKۦn'cn.fvz~jv*3K/ n*w h۠9{w|)96H6uѼ=R!2NT.a>ו;MyUʵ*ӛ1͈%쭞 r0fRoSwıDrjìZ82eKΥΦ'# Y(m_S0M9c}*{9W<ҟj4]? ۱H qSfj:VBͽᯋuz`}MKFf:&t]d6%bBaxuϊC0wh\CW(#V6Q4xxo2v}n3hҦ*hRAF߅G[j9!NC(D5߁n+եS zV/E,8S/˖O$+?'#N p{2|S傯K3嚔JnA{ϬW(蔺|M.cSxڴ+FMD8iŧÃa_}5zwkjm:pXy3Dh>S\?QsWwutrE9Vt( :bэsn3ӅR}tpNB|?i(З#K7]jCڥ t5Ne?r1[ F^ #uʝe(tMS89j$|yt c30.cӔ2\tmSL෺qtnAS=܂gTsaڬ4~`VgڪEjwhC -#W]q;g.jCꨫo9:jaEZ%!.H`]~mBZݕLQqau+{ʝDq[w]}Ce>1TкZ\7E[o7%U[ 15~^~! UWQ#8Vuc)N1=I#Ags"=W\‹"=Stū" FSA!a^CȁaY#҅ôuñKjO9/Uw)Vt,}Rlq]/FA9D`] ?Bm}Sк&ñ9<Gt}s*A S2)AЀ] ΨZuA)w$(Y-\WqXE[XWQC ~!73Lꨫ9W[z܊md}Ίt-D _&¥/$b>qHw puں]M=?.bbwIz|c!4bzwU LS}z~HϸD UlT |q͵PAdrf)aTiJ795_Abnɇ)#rF~^' l:$9" q+ -U06bF+A)5(Ipn,N_)PL["$~BDqQ)w@]4y ?p= qI[es9u@]`L]']#Ø{йڗ5BP焸#7R=]FOEN;|8 > d?/@yxG*t+V`T3h"^_v0/;sJì.KT0aYJ۴:ߵXЪ5n'mz`%Uzl%>L2ڴeA'%NT@Ʃ&h+[Ⱥt`%m) M& mBP-!%19hۀp@[F0 @tQ~h̀@tJ:55 :6[td@th@lwK|r3NktۄTF{Ue]zh1m@ke@Drt4 +iÀZкmYК=S3 nz)afۉ'9؀,Сth@o@g@,h׀N-hǀ>XЖ=kM:gAtɂ f:~1͒N ؀nYБZо_Ӟݱv ,Yuj%mf6 評a@lIZ7VҚmZЩy蚞'7i4if98\) kU96r@GDeЀ@hπp&ZkێS'lۀ,mДi@-hÀ f\;. in\5LҪ]N5 :6[td@_<Ѐ DPO-WJl7r%'e]zh% 65 2G*|bGcR꿦fns+,xi1f_0a^wI b#v?"XI6ھY?U#) Y_KoV ɱlʂ [Y3U$eϪ7K]jAqӖ]6 L2Ivbv=@FҒǹXЪ=4W"K:O''fLcVfo 豭Ѐ(?n߀YI{aA>8Yu;e%m+ 2 \ij6 ? n@li iՀ-̰>+߷2{Pa:~Vz])R2N6%\U֭$H&{'_,Uer˪|1>T94rf$jleNU}#mDU@w #疑cbu 5 ]~mU-)& i<@Z+Gb<0wZ`_F1۾.p'R|C1XL~F ܳrt,rg v|5:r>H7rg^\!qݵ7?q 1RދȨk!F Xw%{" 1Rf#_ƎiڅE&7N #~)p?#gbty)p#b6BY/$p܍p'8gt¾).pOb\VʝǦ"-)w!1ߚ^#1Rފ#n\9/1}!Fäw).GR#a=2Op WT-Nrg&{bԅ5CKyYm΃FNF obEF "H})p#1R MW#N/1]Ur. ʝpߏ.kb^^#nvttTEpŊ.pG1R>#rh F H;vUܹD[Au~!b"B_F1R>#b!B$w)K0v#1| ?e,}ZFrM@)poK{;B ;bt;mj}/1RfQu)p'{: d1v#bt&5SԙId:^3 1_ N)p1RfZ"KC!B.p_H;AHL8I/F ~]f/p/G)f^ H}C> bz>P:R@ҸknFcI3z3jo `SRiݭ3Gw1 8]ۊM^v%ݶ&c5X"v\mE$[Q/Vm2fc.%]YKVdlB/v;ʘ88f9Nj+26Q θ\t)16 {"HLJ8F-eMf.^ocJ.F@.KshUQW(skB³i2M7e@6 /CE4UDd *T*XI@ /t(OEUV .Ue~ ZTۄGa96A"@Rݧ 7~>U @W@"PQ'.H)}!f9H4ӛ=1|ڐ 2?(= 20!JG‚#ĘK1Zhg,(́+,7[|.ܞCAir;et9 ]voLX1 @w ӄ܍N$-fQK( 2Z:7pN1 6Y S/<iKb$,KقG8VBVQ!-\lE-^]1嬋qa,(bb<-]hKͲhC})#BnMYܟHȋyӖ{ӇzDwE#Ժ]ZzUB6릫׺H^|SZi4|E!] /fM^8xuGWtGqBuWܞwv!9&|"H] ns)r{Eu axX#05( W 8ֈki@L5{b:ԯhC@NAEՑrV:3Ür*3LȺ=2!dݪ5T !+9mla'I! Rc@`0RFڬժS !kB^5jY`4Y(Tj&1$0aOuT@`- C X+:l * -Xk (=˪I`L3- *nq- T\k Tp >oS\~q(wMSVИ/=Lqi5O 2^wh";1}? 0FrWj_'5Ew"3;1}ߍ%|Řub\^t(  5VcS/z9AFӤdI(@hzb5o БѴe5 4XMK~;P1uS@.!"4<9!f Ih7tFPz:Bδ bl!kZKEPa "¹:A-dUkYkTB1pOc Y/TB1 u*l1 b V?blc+A-dWkkTBG|ݭBV#BsGbI:0XRe| Y 3 [(!iJFiF!|SO#L`NT8MY5 1R^W߃ s߁5%kPs)=!v掀5*j;.yF1bm*̝k TKJ51Rz;Bk`=>*%kۋ1R(B`TKq5+ķb̥1Sރ sɺ 2k3:BI5jYgrwvoAzTh!kBp5jYƪ!dUC"VCzT !q5'!dTC6FL[b \86{m@ 1~@̰a֑c֑cRSs.~el65sJ3a1ƜŘ:\slḇNF {!jѴ1:N:3A6(G5WA`-u( 5` cbGZCij&=^hc BP"0XZBKc( uB2X+˜58:P|ꄚ cd!1/Ny.0fP13Dz7bvG`efe'ySW&<>& \ђjӎx"SGY ef0s {rf#P3'Ⱦș>EGٴb ;X·UᏂnUc~\QT/1ĘX"NU{&0u^%n km%qHrR8F9A} `-5-;gu Т i1m"0MۏC\ђf|8V\ks k:1y yW tg;P:cZG`L 3a4s FY}i!𧠙k0Z<P~vϿ%9ni5-?7h| fhI D_B9Gk0Z7 7%=#wǠk0ZZ.M_fhI~c/-?(g}یq۠;WX#wENPk=~ᅘuZ͝ϋy1@[}9|zF($ ? 'E$ 4Mᚻޤzgexբ*yYqZ"3wRX7}׹F7j4"gP侾5b{n{y1#AkI6d~PLҮk3MnoNjmCt:U EM!2NghG\ŰXȌ`vB.ڂY-no ߎ9%mpd+fz) Zșl_i <{)ڷ2e,2s-i_Nf}sY`P/"g>kOE>IhE랳b:X7]+EN3Z|`.8{ Ka = PLkAi7\s1WwVW-7mNEfnR霫s~-~4\3ch,<rF+rf́u5/|1~y @[(e"gfq(3M no5ь>{PHXd0Zj5ӌTm~:bTf\(rf #$ݾ|f1ˡooMߌ~rU̙fS8oA}#|VLk>iv5|DvVW-3@)Z"3mu9]3Ea-oV@}oOxF!2W?;4@{|[Y+`t3?.#r"'cy9kPX 0h "g94M-?6 z0Uq͛&VZ"37himk <ۜ`[ݰ9!Jmά1nou?ߞ}^d:9?7hlI?fșlsi }4s FKrM3GQc~ђܞyK>'6 -K|>i~%#]g]-(` '9r^)隻_yseqٶ9KXԏ"gQ4M?5/o SUZ"37hk^l}rս:^(0(0؉w"oys;sP#ilkw<rF ~)XOĬDYXY"37cn*nY8swű2ǯ*fLq0*KA@3,嘼 6rLSg8)KS.L K&R,0m-UBl(cI 3ՉFB-k `rlz\%!33s̋_- r>>kQB'OS tPb @S f_\Qz.o%$?èV^܌&ʾg/N;FDQ tVI~ӿ?̽5iz YmGJ7:?_0c9D8̘[l$"@]'*r&74g;?Rr o W(+ή8?(S;laF\q}p#5)r?N^IKA#{ܲŹ5̤7eT !-D;N~Apl2|%܄3ϯP|7lKM'@sdٞ9V w"o62} E/@-3+t-[HfƲD Yh! - 0)lH>':)>'zBGq;1r/BlѩV;V[ ;1˼`tesEj"LY^ = b=04zh }.0f\`̏٫cTx5 mPy3P2tD"0q1SPa9XN]RC` ?oEm[G]݂\-u * AAXKbo~Kୃ0;KS5蘒28 u@'дVGIuu:4皗_01LYzo_0B;o L Ś + &֐)^u ꯲|2oMLL#Sm5`B}bwr &0#nc{%hf=YXg(]|b EP1Ԁ<3P1$a(n 9XSPZ* ZmFI3)l.QjD@9P3Y0 yX Y% NwR;+0:IE {T5ԟ!JKh@gk0Z{nA3`Ǯ}eFOUsL)oXPEMi:ifYYYkdߏVAՔ *\/tIPIr* w2m6-kNOfZutM4Qs"L[ ~T4s_ťe,&2ϊW]y1h=̮`P9ߛԘgćb#ƨ_&7p>hq“6h=MOhGEո@%yvո ^k)|%Tcz43!vbg/%|kK2 [(.b ‡~wAdtg[T[GN?쩏Kzë93V\<7EmCzEhOcQILa88s2Y,<Ռ*0(1m%0fF̨9Q}gO;iVLN#0M 8:L@>L#ڙ>@>L!pO.LNo]E/}`~Nvݴ?SnKGQɵ ܧN,JH GAC:C &N3M 8۰p?PGC rF9|+&(. AЩC9Fؿaƨr[(KM_Re3YulKavԫFݿUbh 4sn#J3ZRaS`!Yв/15K%\?Lm ~ (FKrFNnӠc_Dxq D`fOr(Tt.αXk(y|hx9F!`d~PA}hIry5Pr%#ZR)fђy%1So;fhI̬Yf=*0V}UˊkԌpTulCE?5vL-(D7Aw)P_y_n^}miG!7,ݷ(g4s FKř݊qGS!PkX oQoo+P&G1f FEΜ'\gșu>xҽU3|YK2ks ) {*j}e}Q~&V(L1}^`(0FVm@d S1WTŽ'k0Z2JK?}RC@`LcKCYk0,vR~4s FKrF :AۨR+`@_E$f76w-646![y*>XG!Pzn[up.X bLZvJ c(cmb<uj܇P *0^qPW{GdT<){kXC89kÒhp$m^ >XǠc)V@fu#0fu3 ;Y? Ŗs 4s FKrpa$f~(#WA3`TYFNA`-P鱆z뱆znth[Gm>3PNf+c=6;wO`1I'&'M$%#3ȢXko?`bhI٥Qv e砙e$.v@͇.6?. h$e1Z`_;0PQ"0Qr;|T=Z`1!B y;@W#\?Q!T]*X@8v? 9ݞ \ rB+ q6S􊳝#oS]@6_`w?tq=jR {uTM@w@=UI`LGbi7teto6:R'Fv$mc3 zhG=cK`7~2ީ~jhtӽĀWQgR=PBn9 D _ 9NLuYU.;GLu+@⏯1jk9ӛ<@ ,w/);16RamjmԲQmWo|\xe3ܧ6?ʙu~0r@\'dbk0Jm,L,B#Џ11gysν"g>XI9|/q/n -#2v-rv1|}CNa:^Py1?1x|W3ށѮ69#Bmmf]k.ysegȢCA Suw ӴwarcP1}C{cP>WșCv5WuB]v9MW69<0kz(|X_ș ~IY;`kcw֍P.hINJNn8e}ʲsm}RU):V%Qu$%/"qdYT] @= A h^A-hok}w~gwUg-i?g?{9<lTPCj쫸Vb'0vC1a;J j C`m߱_x jk!M0f\'qͮm\LN!jHމ:t4nutLGFkf,d)!kZ;\i+d!M-*qF Wf]Uo+{ 4q8hfAe 5P^ѥWTc)7>[ *#(hG$@1J=kGl9;٦?H\` ~DGYh򬔧~$oꈌ8 8GmB JD^g&dL3L)02 /~]F6 _H['}p m"t~E8J^V H#`%uTӱST){TPQB#sP8-3\J 9 Jq i/-50B>TC5܇os()Xy9+E']9n`bO_R6k_g:i' B8:1ҝ`1u@ eߏDUaPi@S լHe-(b5+а<*$YO^Jܗԭ_F+DXS$X۠ b"G}ju$@ PtRCڳFaJCdѐ$7J-FdeHb-d)pkU^!iyJl< L>da5Z4H ۺ)#ڐl\AADAgnPk[B ׭Wgue@z!m?p k]}61$[TDae}F-Đl ~\]j]}jI …!P\LȠPCt˼/Hfĩ- 6oE;/O<7(iR/"uЎ Ϙ{E}P`-P4}ț6GWzx4Ex+{f/.,@1:Kq]FC4L̀*\ ]};x &A:ST$ b}rq3ehVÿyHTYEEbl&E"Z>> \Բ&EӠ`tyj`LVRb4#e"1ۤh!qZ,odd8lѦQd-b-u[0 Lˋ.s0R} S"7a'6Զ~H'V.iW *1XBˠ=A|TF" Æa~_ <4Z -R @W(g QT@]>GP{OK\> zl6k; ʒV|NRw뜳=F|TASB0 hװ?l65z!M`* 砉bxYٙCj &Afn} _ں aQxT1,` zQϠ'\ 5J/=o SGBWemaPǀSW뺺+B>}5w]>˫+eG>%vKY #4iWAN+aIE;V<ƪ%NjDr: |WEg B8.rјG VAl$`Vç7氒z؆\F`rޠf`چ=mQ]#NmB4z^To(_"˷"NmT!z^TGMj>ODw)Cw=kHwւuIXX/=:(2%ڋU4pf\EzjmLԳ4b-B^WȚcB T8Iv^ܖ=RXL_\貴եL *'?`#ދ%S+`X5Ĺ#X'J*1o]uߕ`;`?`C"+i\ @G=6@^ ZÐ^M}4ǠICAn$}~tS <yk8A_uX_c>0wh; ?w;r-񿣓ϹWӗ XD-C1rĿ<:nYPYGA=EP"qS-P#qO%z/(ԃGHzpUr ԃGHzp~H%@=K z\UMlz0,g~M\u@= .vij;z(]Yz W|4/q'.|&A`Xk;Α''gU4?c2^H.>@OPGHWGא| sP_V#!3y i2 q&GS| PL?gvA` T+)"'\ww c2O ESayi ˠה*lPzUkzkSleV" h0 b{W#!9aXØj.W[ĽaCn/{ #Ľ}P^xp4qSݸeV$2Lc+SL܉ sg,6Cdjo]uC&xCMtt\qM7_<:B2G >j$nӻwcOƞF+1WZž_&Y WAn\w2ݸeʡȃbg&蟉{/bOߋ=&l! bgWq60F{Sd"lX9sU)c!~S;F6y'nX{{x01`Y2=\VB L Ր.۫_ab`*!|w>ٕeTT坃3F.mDgT)7W! NCx,ځb FeFGEX!<@ߥỳ1dCS9S,*,cՇW~PL12(qGy4+TBpUYj^oEL-͘\ܪmyoQGr0du Fk (ZBjp"i,pW?3,g=JwdS#3-]eE\N|.HM ?W19A؝<%t^w'O)wnG;Jb"Tb,/Н< ' b!JC|ΟXPrd@\;e8-sAነ枧ЗeyDXU:maL]T"pJDS ͣe(枧ՃBSAκ4^NRcH/R37GBTQ0;e6!{A,Rz55o!/- wpa5ד+Z'.2I х?-[OƧB)%8mUj˳s-_PwKlI%ͦ*˧yc%_2gYn㓤q>x:nSV6@h:Bc2MA+np"׃RӀ8w]Q9@e;hAR}P19m o[6Trp{.xf">{4țWO<(K>O<} sH-yhi|'.cN3O^` ԟ2?8}+v T#A=@!'Xcq'{Aw`h26}jٿKKΡ @7bCXгwaí+<J8lDIFcyJ;pXhg6O ,w)2rnk]6-AlƏ%=^KƓ ,kLUo)Ӵ:9LQ\0/jh@>k]MPuP93 Pi]%CĂ!N.`viE'`\Z,yq'8Ɨ7gn貜I@{cf|&ٙ[Y-J_!,J'cjI.;>O)'"kʉ::jtEWaҸ8 Fib*6C /:wu1X22!5Y8^xjj k,(ëUPc5EV"z X1iB ):\?O[-QOt뗶iHl/ "ѬDAfKFF2Q0+jdyA[”gmbJ,"ľ\B.~:FFSPzI|bXA, z'yYKYM]FiFi鲫Ϩ_8;fC0 AHN-;!*T#S[0oEKKBuP1s-P|lqN=ͣ,mޏ!2 11n砯&5-Pq5PT*Co9!܄1P3A,^ӳ#0i*[b"MP_P*Ez`*7hE~F1'L6I`PL"b(߸kAAAI Te=I(EEA>ۆ˕y d/gUӁޖ"yvl>ߑS'dAl@(hPii҆`ACCY7IYу尊Ԇ};ġͽh6ξg2!,LAW0+Fp/o{Nďb[}U;.Epa][= 缩M~s5$÷?McDO:\jϹJPDW@F3?PCs@K" ~<@/;c Z{h#U]Ds)s=sv&emAɑZ4qCCYO|^b͗zB~,!j躻}T~APz]ƺŏ=4rKvcIq!P5=C";ex/BCʐ`j,;>Ag 9qړpQ ˿lYd$q*Ad]|AeHc0b#  $j|WU} ԃO8`ǒJNzp\k*ԃ7ӠtC'|` ԃSAP#1 à\YQpԃϐ8߁$!1=\;3 WU5Ԭ~PA5Ԭ~PA5Ԭ~PA5Ԭ~PA5Ԭ~PA5Ԭ~PA \Vh4qF ]zaUB}>q\Ӡ-p~deјC}\zC9ՍGH ]89.c0ɨO zPxz{U7^=f}^]?=DðU7X}C&V&n. l_mUf3 t0O?-`;l٫w\u_j *+K"Z6kQqm@ѫ79Va-7؅vqa_1-eD+J --Qm)7[,BwsP !(* aT(>vfM %l!A[S@E,S&ߧhl\.hKuOuc EbZL~ 5ڧRZ胿à"&$ժzA[۵ƱN1mh@y9<̃c0طD2\w"0~ erp=KZsMUpMԃ`Yj0#:1ꋼs ˯ !Z01W#0jz`4qgL /+' z{_cbїg`b 4qR[q/ƻ֕&.c+$QiAo5c>ǠFmvvj:(3|1 *p,D70KnjdC@)d4/yu2 *c'C^M0=mnCd_TnѸy OCZ-,-G6bHId ;zd* mB-[hA77VZߙ#3yPéH!yvSJ[W3Hw /%_NQm%;abr0+oҙ~fj`\RmP KC&FY~NǑohT(Ea\C$;@d"f(lk-rD^g>/gͫ(XzRmGIۖ섭^Ptn&G7'AA(̨!>5Z"yWX&Fwː~Nyː:F^;Q^ TE7Z2wAxaԸCA6y#o)dyLDe1ZPݸ۠L*Vt躊/~<"=GQ^= 1+*^_LNnʿP3}lo"vuBX^u4>T:E3#cZ D;S&?pg.Fi$nQvTq]j^/ti-7·dQ^!z xt1%]ɿ-WEn2/-P'jk@6d ! 2aymːt Ny̡V^e3P CS畚d}2),/U-ži>' dfu)FVry4Z:A'TS8fN@7hЊ mtvC`˚ŗ8\.?ջ zUqv@نQ+`=MA+6 !r~9.砗$Bv~ h& Zy9D4򎞖j9M\#l/ˮ&@E0, k>nQ1(!Oa5D& ZQa ~=j7(h*K i6=/30D8|Q/ >o` )?v}AdIǟ(-L)!F0 ΀Lց`MjYb~[0`Ș;4N~y^-ǘ+'UF%O\™/ԄXoekڳfFGuUGYA)ԃ Gw%~_Jz>֪u2Q-2U׃i1 Vfʪ ?*#A# s!5mU!eeDyGE0ਈ$A3yVf!`YДQdӐEsl&nbhentHtޅrTc0h&-Sy4sV[{V2Q.$c'H#z*bVAe֯oexĶ{/Ó=dG@YUҢ |\E0=1ŬF3dFzA1ɮUyӷ@Q[ "cƵlx gAety"p4|ffe5!5 v6LTtvǐ1d!oZǐayV/(!ӎ\\LT.C& 22؉e8 ԯ?kDvA=Ss$@53>[uhDu;u2AQ&LoQvWZV)2Oڕ2=c?G9B/2/ YQVG-e+(Oi2e cRA7hЊ&40܆ȧY=G(O3F(!cv\CA+߆6D&4Q-ij7|EB^ʭc}kD=i* wxgo,Bk`>꾜-%@[:u#'wT5Sy$ݺ* M){`f(YLOQLɧѝN4u3d!=2Qjmg]G49ey X+@O!MQctF jAu54{M+$O lC Ƥ\DXb3 6GCk0!WI;2.O #퀕ʏ'㲈=#EB4Sc`x=8 <%2N#u5騮91|Bf~_=DjpCק748BiP~A֭Ő*אb{eDy2mybr9J3`^<%o&=X^ɟ@d3Եl/+f5!U!U! >p~Y΢SbnHˣs`fQxMw~I)4KuX4!Pf{mqXeN*$[S#3B"Ӵ~+jݿ60Q!H/7݁@*cSKzo>AJkC!qwU=Hph$2IȣQx3jlo&'YgOc@IĪxZ' pC0km]h+Pдuu2hVf7]X5y;*[7n)ӓNΞ-M@ȟ"J,?{^P*wCP5zQCeboD㷣(X75|[_:}o%`ɢb<b7uc*a3GFd*[8DW6"RhSBAJ](I>},X+:sD9F&5ii`#@Қ*"NY9W vҕeZ{UbN# We9%KJB76guP&X#Xf2̳+E84r)*?"!`(2!lU}@rL-XƯ@6>ck},qCF=z4q( h-GAd7rZvAç[UB9rFc(sE<<%$u6sstDQnAF(GuםsιK;{ؼu={%goD(%"d0`D^%D.7.RWE [+.RH"uE )\p )Rp"E 43ߚ}n>s~f\ΚUd |UG)J2f<+K{[`Q!/rh?&bOGOXxuju/ Pm= Ʋ X`zDn|1+4gFb% ]7=.r].y0$w-\-;~Uz#W 7{}`#=v75ƹGKOO'^:) yJV$jJ.jMLI_U q~`n=;Aur#q%%fbGjĖ&e$dEDPY_?4̕IIOr=({s]u/Inbu^$sEHR8?փ),9O$f}܌svM#G/ѽƼ<d9B{$褰J$Xw X}P4x6 !+{G>F-),ɇۂEUd池_55'BԤ /vjѳ~I2y *H| -ՑTz#E;bnEM U!M2+%c >ҹ|\hGF]?$G9kY`zD3G\hG.Y:!O)9VT$U$4 .1A=TH 3bnhY/&9"0Fua'kZW`b`e 3iE;[Z6&&+7K#W>i+T R^߸r uR VGc1q=SU\(KnAXЏ<2G}W1H76XφgS֛@ĄI3T̾}Mr=Oed-w))/mw2x|!?3V9h:z ȝ¸U[hg4iaZO10̃3n/{j n G)ZzFDЬ'^I_ ?//RF^7bkFH{Ȗ\wYlij,hT(,|.B]Fvi({X)ÁD=TXg@GcѢ a!=l4_UAQDZT y[hG٦fqth GQfqZ1$ :^S(B8+9bA<HA(>C͎t=('W8U^o*Px1rg z~ZQrE-TnAِ^*V V4K4Pe2vv[_䌞!.S>ѣm 96mk+ER>b0 be}Q o?+׵̈(a]{H온q]K;`ҷ%o9=F *IM§+XJ7>$u*X%cMR+A= I5_ 0T7Rij3QXEyF;^陯0@*`T%yNATRg =)V!H!g]OZK ]5u!,2Sҷ{t3O@cK~тwzlLjԌDE[)r\/'{~ ~Un3G1{~#qQA 2KLpګ{pq9KKa:/w~_󛩠&cGUL}BMYy..C0[cRb5zX^Qԣ3yPΠ=vKM ދ5Iywl]nn e/@.0kSiCcEQm}b7A]X LҿഞxrcqlTkY#Ep%OBVn\H2Y!2~.x.Ɠsr.X{ػ-4͖YJv%]E삦X S.Eo(qIol+By,3xHI{8CxlS$N#ZA}[ MMc'\/~-yk<X/ZBN>ԤWZI 's75P |~PQ^.NFW|ٿVy7L4Zkoi-^QRx asb>Jp5qh{`nH4\xnhX$ ߺE?6X v4".\P94&;ߨQ~*~]8K`'T*(5wTy-[xArUlSzQl7ƌJg@M|Yn fv7\s-w0+*,,EeۘQ]A]# 3 ƍ &Z?֠|ePÝO^ԂeAV=.e2\W+ \[@Pw`;ԕ{ uCKwbTXY!^*7KR֒ЂVG|ıCPG{(-a,: 'WKqq9 m[$ dx'rEn j>U_|&h R"Ȍ_/`auIehdvF,K)9Z(RKT^hF-XT*}HM8'AkzE/oɹI裂ƯnFv=_Y'$WQْ@9`xZ$X9fE4D7$MΧ;׿FT>=^('7`q4`(V$ُz.ܺ,Փ* TuQ{Z08iDSyjw?1)L(^_Bg_  ,vm= zGYUZ5%h=-xHbSv+hDž<1Ai65im>ljP\ځi\o;iXʼurWBS~+_[h稠^ Z^$>Pz*ٰnKЖLI;,ddASDžRyުk.?E$$+17.6#ݹ}\_7lj/6=O*AquSys~Ę^\h%ޟ1„ 窢ekIHi/oכIE)RYy¨ly99Y$+7TN\PmN Vn5聠Ztû٦&MκH]}F2/ o$vԝIR^W _U_-7T˂ "Ui1{إ6^n uI<%蟀 bhQH0bW$fOV&xX)H-Vn(6M0d4x_.O^XDg dLg.<֠yߺPM b_ iJ@_UaJ%cliu#c#]v$woF?';xɻx+w$wޥÒ㱠н$ 4I9,rWZjJ1rO&O$Es-vUAbL%H4 V4V44BzҲ|" . #Rx ].cPZ+ ޓׇjoERƐ[׊TQƦ}zV' %Kq@l9Ķ诅QZ{" Vw%0<[X) RVS pzȐfӬ$#Nz4G)?1pY*fDuH4)*K=A(>8ݝ4x-9X8)+p;)? pZSyX959Ӛ7Ly1Խ~(W&p] qT;j9DAR](jlމv$H*+}1bA|C~ǁC'DAK@:byv >rMMHh~>{ゞ$/zMMzFxZ$w/8S]p}>Yn9NSg9W(Z5AcIn"|,XOB*QezedGx#B:`D9Ga)^e[P[9H}JPoI^: @sMMzχ_ڤo Nx&K4%|tS-L>=ໂ!\T\4~Ց9,65Iul3b3 ŶnIp*EY!yCMta>S^)BuGqYKLjcr rns~MR7 Vn~F9+7O8Yx.M=-3A\5u'ps(DЌBϫzid! UTnersD8r$v(h',~|/oO"5c+h-zr8/մ@VVؿ06DDIwy~?5lH{-?`DwL[Q4 +/ lSO{zGSh$O:Eo (´-岰"ҪOy>I^ӎ8-Y/+@!W'4\u*=A$񇟝_y/Fr D;(\q,,sNk`p Ն7");%, #= 9M]-vAߺx˒D^mo4NV9z+-vGK7"nA"&/@ XRw? -=E 2!N)kE[{pAW| d) )%@#7N颠ך+ګEaֵ&/KH~ Ё~}*-WW_ |QE Gr"]$\yvz[|@bF*DlpT? 3>l_)^US|.X9cÓ7bY0y_hj(NsFmZ0ks-~u[zxoŠkfx+\!\x#觔X w"mkM HKA? AeăzT[/ Llr᪠ 75'BWMMκr([ԿiA-o\/$}FͤJމH2I\+7GtU K {{ZYyhld*i/ēi?HlYy|1o)⿎=-W܆Ĉ/_աy oϴ/`Kx$Ėp~1(/z4}SGc0_DiMA?I$`U4i+Q#)!/>z) /t/0כWwB'y G&,t曚4vκ7@52'J/)c1U,XNX}@4/p{?GO95J(H2w\TIyMM sMM'|ѐr=HHO鉠qE^O^ސI3YmIl47{5r6U:qDVn(rD"uJ5nsOd-.5`BtW6+w#yZtLXx*PqZ̼x,QFSnZ6]9k> #! qA s̄(16SBL"`VEiE V09(Eb<LҊ\`&J+Lm$)BpV(XkOœSU !P"+a p| M rHc ӶԨbț Fb =5">j@7n2!-CZJa5C}rU.=4\qIOPs.p$'B8[B b 3) g!u˂Psa,aSN4qVk) hg9yZÚ,z20 I |zFg!u- CA|B>X\xbs}4mRPgvU{ _x\1X>wL$~²>{yS0>35|[P `v%ڊ$s1<Ú`4τ@ӷMjOF|Rk(ugIk?yMJ^[m:UQZ ,m.ڜIu)"T Sbl.ZAܓD)碴"\ |vaqM ^H"9uV$JnHESES6}I9IbWWBS_UBKQ&Q8ќze Bku܈`zD6vƷkBm ZbOQG9}1}8 O'uM vv`_+a,oa Kf;dFJO>슾-uWr׈ -~RhӂNq(2w*wO:*9\69yvfTWhVy#P'1~r|Ԙ>oQ&E wIhf%E"-PtRѵRQ!_'B%TRtYhTTԒJ~_IяS0R(iJRQ71?TPVs<ёuFiat'br^iM&aKssBihVZi GKsy]' "ht tЍ["Ž9u\ 0C˯܏1w%,crKD`QJs?aOT܏C=c*ca`Az_cOaJۂUrE1 cV˟*gD)i );3+~]T3iE1j4 ~pN'FGI8 I`1ײE`<3מYmkױOe/552 xKM 'G.$oDߣzAWSM+}A^61UDsbSB~og&jyH[ u^S<:55]K`D^_} q3R{/,55(,#[(k_$mj0WD :PSrHgooܭ a_ -haEXOFx!B6z$) 5mdfBΒ my_Iv[Pt\҇->x<}&Rf ϞڡL?<@%#2X7.!ƚʴ8 QɠGp%ybS儠? (* fzDzGJb|\4f+",X8R)YmX¡? n݁?5pwRǼ:a\2g^.R;#ڑ+Vp'r2-ovyOFoM2&REJ1BSx#[}AojMyQDmm΁_;?.Hs=salORι҆ih855-x`7Ά`jZ2hr}k~߫ #o)E>sQ4 S*>?65x6# |m"ULڐB8HT%J uLdZἔ;g9anSdo&*W{aNAY?-*8p̑}١6NZVyeVeN‘:O:zC!|R6g>>P2ϊ#al}n#+m  3T7?0%? u2$xC1f:e,|_|.VpNx@ H SEȋͳr׉&EJEź̟LjF M@喍j^lNo$ H՚H[ =C(gewYrDT܏$;w~bQ%ٲ 촶~ @{:=T^=f0miD#0joީ2'Ie4r[}l;7^uw#!wQ2W{$4䞊r#>C#1)!f'b#=Bry}<9Oo,рAr󉽥`ZLV,'H3[eo -W ^a`)flJ)òvYjZ޼^S|/t9 @JAY'AS M0Lf_"[MLȬѠ)bx) "Ѥ,E7ꧨ~,7&jO bJuO- eMr}%X]E VnQQEJ)JYS|mm VGr(m4TZpP.Xh;1[fLgZ+(Z`)! ;"=$^iȽ~^Ĩ6r3"$ iȽi__! 9N^5n$עFZ~wzz݋}L))2m @Ó SdJ)Q-!5osS 2.4A!4)h9iQrLA@Yuޢ䲓*/;3 'bTr9>,eGB>Faꇅ0 1Z:m3sc"c-zfe@rIs]Ӊv0CR *,Ĵ=d̜u&" 1R3P ؒtb: <:Tb"QbD Dt 1bCIc]c[,b!PFDd!Ed̵8 1Z:ԗ-3&h;`cὭ}*k7/1R!fjCqJnׂЛFf{ܽ&7Ή|C+slaPC&PK9d^ ʛ 70)Wus@iAӴ4rMT&k6 K| V^`C զgۡsS~A9s$ ʐ>ކͦk]r䭌O`LVaoCy P,1Q'{tP4 L5/8f6LM4turdNҋ2F^`L{&+^0ڔ^)עN(h ކA4ɐqQut啺1RV佔f 1{i5!OAbGY?YD+׼u0&*MqOVy Kxrt3.b&Z#'y3e1`4{(<C :"@tQ;<̼ۘtoV *OTW)6țhcIlL:=sN$ivH9ZeiFˊ"-wtWԁ|-ԆEmspcjԂ6Lp@N5miri WS CN:䒤ٔh*ȲSM?ީ#2O5maP{ͭ ci WS r9մri WS Ք]5NYeQG]u F ͙^p02+;cFV AlhƸU٪&bf r\\;[nu F %mF^p0j16MY>W9. GVfb.CNJ퉨Sd `Ɣǔ{Ley䒨e^AbpŊNPP$9=^Mu0&gLda.j>3`/ {Z@z?Tk׿.1=,v2G}PocLvGFjoUݚm(j%{Q';G >$mnj `9$WN/<^LL@`Y{S*YqSZz38XZ 1r[C5%h m$ӎIZYLs\ɼT',y&-[ YZuHWb0 *負1lzuN^ ކfTbg6jކ.Ѻxf|%jҲ΍^"(6-i^)7]qLjxױۈ.)K*b+괞Pm*՗kfXZ7꺸^+j`Ta oCTߨUm/Ry[43xR}VmLKPmx$kjfI*/F-oC]kTboC^j{GpoCNgP|su|m٣+1ې{jJ;ZǷ9xLah xKg^[ܮ:]uS4aŋw΀f"/r W8@yNH˅:g/VH?xtᔴl:[֥i<%JYJZZ3ZoEK KJ<%=V٥OjŬԿ$-k-fAiyXwi,-j-fqXZZь4i䎨S(詨SA['+c&T;'f|L<- ,F(]Q-h.PԹb虣l ZԩNUA۫ZE?uw^A V &MT<u {YJVNwKPmF%3# :5(ybU`v7ˊ8nKX l Ʃ_yPeP 'ޭYx_Ԭ>͚57GgNJn:i B?Ũ>ޱ57Ggp / S!Ih }Gj,yH2mw/eѡZ<^abћ~Ju-1hB4^"a{f;EO(3xԊzx,3':ݯ!g" 57iNkҝ!Er\Z^"mͺl~Y6dMG[CCA-f3/ȍZ魖ɕ+"ͺj~Uy;/;eA&rHvYay}8x2J4]_1-f:[H—A% jg܆UP[nwjWtLi7QѼU E34>uj>8*$ GyJ{I%wz`BWhb;~)C&㈔( Ib 3)q@7vwiLfG~`\S+8cx&: tDf68%h?O1u0s8.:漕j ކ5݂/=4i36re~_F:c m:&]_) ~L{D㸘1.UrNWR$} '<ץ9_*+. *@nM"0@N ՃvH_Uk{(8]#!q'^PsjuK=C#> A`S@V/'UAD:Rbx8!E)L{s;\iOml)X)Z ^,DFmoX=<(V׃-6|OX}ꆃ=&8\"]$Uߕu%7$d׶&ps]80H198sH7Y E(CmKhm !D9V! e!Z# M7dMQݬ5?IVP^͟$>ql#ޠȶT&ӦQU5m\#ϪTvS:caA,*芨YQ-QU!~>Tf7׵8rlq{Ry˜\;+v{ZԑF\O͛[( =5# "ԏSe[vŹ$C=T^m>"CoCN ~E4='oČkSR. E"=oBP\tʠ؀-9 ( 8c3ؾ?-Zk}Y; @I]%+v>{mimo\1WCU _e~FWd6²6LLΤ}cuhEc}͵LvRKyf\4^nxM~T%-7- E5u ʈw16_bk Vz[Yî NkPDbzmM55|BM6?*3 )|~BnݬWx> '5Q+ʍۢyOOXk , { w0e~^0HŸu1/UB<UU؟v\yƽ~!k`Tp㖅`Fâ4џc")4Xhc<+"=k5uWTmbRN|w+m!3IjnCyk 5th#p GT# ^4]/tL;ߒP }x2yWY;ìwW 6Ec-Ickߊ:iI_Mc#s>!4 07% h‘#A o*?t䂂8\CZyA]u0ok)Q!y5glpcIo:!UQG5u T (=U2==mkj3MVdʯiؖqs#tuM^yikcFA?nJiƴD,Q]ٽw/ۘA*reQ߹{1ʻW21'z mm{dtKA[빨c7P!+h*oċavZ3/DY/_/- S%9Y0 jAkjIv[T˚r3*;!UyJ#iQǴ# hBAi?G5/C'Q*mݻ*EYwoS7'EtOԁ SUHa1V:ՆגJUڀYfeV&; RUƟ2\WMkR+:Nt2uMtOtg܊<^6қgV^Ro,r ݘu Sw zv3Mav5aXop⾼L 8/R'ϴ)z-vr-86=r@5is;s`?ei13;Œܪ6)m^{&ibpqYѮ+IU"p+9(MY΢2XTB\\V Jhּo𨗟aJ&)oL9M&-- Sg v:\)^J:/`-蠦AAU^1Afv5mf%A< jdvPru"KPX&ԮZ[Í%aMW0:405QZsaliv^ka2]1{(L.lݺ:wb߻v֦ĶD.C|NOY).R@9q"u OtvP0KO*R=I)ٵN֑b.ja\DN)-"ulrK\#\4f`sN)'.e>U6L5enPLM"ZLڸSFm`?69LȠaY ͨ_ӣt<bJ9e e#tqP.pY}yKŧ+ Il#0n+`B$a0K:%F'd=`o$'ʕ]a^{_&^VRadw!1ƌΛ6:6gN(:(5 \ԪW yf"枕:!|d,%я]@c9v4.@Xw`8䐂&E-tDy'4ej3h#Z dγd)MmBc8,(1R^ryqy֊kc0ߤ ,t T,ό)y(^aj_SzͿ+ۃ ʐbu,&uпW]ژUԛH98ypCRyFtɬh*2/P7mfE'"s݊QtXYIL\ݒTNکGbeE"s ]&!l,ާ5k0B:m͚f{K+c{f{Hu!Y\y#j Ha4Kcu$Ic:vͩM7u;$x1|b8"^^h xIB 'BcXKb8"ޜ@fhi4Nf $xIh#HU#$@mS 1M7i1'uS:I*qT5v"Nɺ$It/`ڨsx1.xQ?7)(t!wlYWyO9ډ蘤sDl<u"ZW3Q'W Q1Q'E]u"ZVЈ6u"zu204U/GȠ=2Xwij ^|Cc^ڋ fwHor˚aA Bєh =PfbNC/{XjึYNޠ8? ~A0zB~˒2X|!hiP2W1+(B>0ņ627/3zo)$5EX} MiN!i8&ڙMOwgܣ9jc79dԁ $l1˃c 3NL}bֹzA=auAY y{Vsw4q+lArLp(O+X;w"%O/)H? eH 3@O3ɻ(w]#,9@X2ަJgPiJ2Պwje$EX}Ӡ8Ӂ=UV9\݇v\4>^"pj^zx> +?̂U +pBm ~C'-Ss"L;L ڶ-1÷\|0g"ûtOIZ'-$Y(U'ARK&([cm(LJckh tjPP ? Uo${J4()opܘ+q8h>I3/mFt}n\p6EAeZ~OXiP{^*E *ùAz [XٯiRHe,?Kq]JV fWe\)2q2z T¢6D^|2f\4U'͢(XFL#2\Ǒ/ ~A{Y)VnP>iP#i69x,f{/OZV+'IiA;r΁Wu%8={y]#tv[V}/ԄIN =6.9^ܸEj{Z/ B:эWFxj+F 0z@7'@)uWg,jzu@ecbPh߄Ҷ^`7!$YJ'oR,/AM1x k⠾zUK a܅* ywNϦ$<jR-6W(+败!U3>J 9XU ""4ބҒ^yrBAyi IpUo3+H }"0;2KT8dt-r>!kidq@+y xɯa~1cu\BK}YpX]>'XU{©a7 lg ie!8c ijaQ. }-w_<u^n 1G.I$e54#*RTYKr8LٷϗAh9_Trf4=iba|uP"iV@c77`n jUV'sf9dmP82s}5k(˾z^agvT1c{ҎA#EeZ'7 Ee!89ȊvkWh9t:}XѸBE:./B{ʁR|ǛvI~P 7*VJ5~l%% :HSz]AqnP#%%!ၗw)V'})TQrpa fFDd\^/$l x(>6Mtr*Ȉq"F#f:GX;O8l _%OvUre+6 :8,k'뚯 RԉXÙG2cP8sU^<\fA1\x/ݗ0 7ͺZvόo=&9 %.om|jtBc8Փh uooY n)Oؽ÷u /wK*F.3cX@۬oG0 \`>JR 彥8b8rجt]AX6{t3̧qh ߿P4YRY)Yu_Dc h _˛u[Y˜u/ ȂgR¦YYw]CL6pOe=)7@q3bf,((LAsvn gYuM Rb迕7Oi-qݯ+ܼsf7sʓ1\! A֎^!9>'HŹDxdC>i-(ӹàiCVd3Jc8P snL;6uqr2%\oQIs8U'-'Cubzkh'-6;$"3HІ*RdF#EE"2̀РSD÷$.Kyc{1;n;XεN;C8,)r3XD%--%Q !lj ;|n]Qˢ"7?;|TDȏ-'/;hwwh'5%N*|^qM4S΋|nL<5Ob}丿śrgk)bo2+C̣}=,efF2t=xgT,ekdy j,Zy 1NɣƌL 5Bx q ej1`L`13cL=f1eLcųiW{2O$&C3 VvsIV4Y&rV;*7ޏL:4fi&L4liL5f銘Rl#Z)ӟ3~p_XSØLsf 1 I 1 1Y`L^J˄\d^-CLX6,WdU9 1M 1퀠Em}^K=|t9:nztDcIwk ^ _U{f''|IחnirtωpjI8B\#qR-7a0Ϲ9'eYr_49o~~#g)=1\ v7e2ϳ~VmY=ZKM&[dN qn|YUˌ }#^ߺr3}.߁P#z 71R9n*FR*T)T˧R?#t ~i,cr.+e*:/R答/B5LvADc8" r2[8$E+eBXFN*2=.{2> E#%w1rF׀L?(ϽMxt6U@vNRIq3k\U@v 41\V›2mg4%ER&z#<;H6WNI5ywnum˹A}Z /WK¿MKg io.m%H6ho6by;_+Cc8,N 联1KP Q'ĂHwI{>/T"0(P)0p*Z]c60oj~SgnyXaa>Q`3Fx/M&E^)C!KrE 1UF*d3SĆ ^"KD ^Hg$Jc\fSb)ᩍ?Tc`x sx)48&p/bQDl 11,Wp F{g26Cﬦ|:ܫ#7raUlHVjJ1RFI3T-6& .Y,uZl,uJ$"$, T5UnV-yc0Xul N3!gh(OQ83?N+춶^7`ޡ)omȴi i1m1Sh\Nb5p-&GStj6* 7WF)Y7 j,t bJSwDcVjyƤb䑙+[P0l  ǧ_}9j,NjQy[3\H9M2T#\^_ۜ7<N6-h>gզS9/|6ssVlfRm6 93\CAM:Z(bV8` F>duȈ|hѺLPP.j 1Z:uvf]56F_gmw9ǼV`Oӿ`' * Bn%t4ƌ.C= [2l xeyr/mr ^* g:^ ,hE#a|Z=P^ʙʑ|s0f|`.W1d`16ckPgs3:8MMݤb:8^^64{x ҚwPrkM?'?P`naEuCu ]qP(m07%<(V6Ao\*X>xH䠀[ ./` 1U)@E2L|) s[1%v\Rx+>?f呈OY(׻#c 㣰*(;2[uzx]-TIO K_*_x |l|HFS> \b7ʅ.9VZJbjߠ,j7ySgV;3Y5e{+[|jwչyƈ bA=12#sI: %tߠыF k Vz&hd-=&d%d8fb^f&3g۹>㬕|U﫯Ϯ]vm渥]O0hbeHlZy4D\m6\=*W(GS2 |6UKK eTfWx6.FbJ 2k&0Cw%O x]8S[?l#̳7֏(}LGڸY\RKiޑo:wP ϦdrL*2 *32~6Dh-?MԙF6^a\ֶrbUڀB{~CgP|Vba'~3W87މEUO/+ o՜ͶA'$ M0h|6Rn|Q([ERj'no/RK^A ϒcTdbR,2>U594{lJ9g)2n:qRhb* f5'% OE1iҳz$ 3exDne, QxMțvd"{PT=Qz;_[{baW/=|Zb00><xL"pu%Pƹ 31>cidf?69n?#<&1%'=4ew>u3+{ex&ҺL}U*AU%ُ<IÓ,eJ-jo\7 NKLA% l)CU.]3 J浊L4gzk?u]ZFcetIM-F:P(]>asf|EB 1.iFqn}m7O-!?f#6{M}ZjZZdmȺ%{E}8[6"z(ϏtTqPˉa)g6fL8y(ŌW7i"zRGyLk7màgO]> c}>.Ome7$4+Dq+t LS8{8-өl5&4Mz[&мGeǀ ĝ2<9SEyS+M(VK $>}ᵱ}+= zcn ۔AnjgMboCAoOjH zʹ% 1雠͊ _|Z5yڦ oobh0^oALr2.e\L䎋DլpS e:d/[c&cLYmۂ=۠2rw!n5)8#l&`k LʣU֍dMD-95S{}[ -PvTX: *¹RD-$͵8904ρ} t`hßbffffff^hk)hb dStt3wj_Ƒ[f%S?yHr} wy{o|ZW]ƭOiEc&CVMEZn9ѝ*2ZUtT} k`5@S@T)'z7>P\<̋gؠkூ& D ko"[Fw[˩%B]S?W'('-R"sRoGW.~⥢v_b?Hg(6T2PrS#BimڪDsSE+a× gR&]]ehKdvVnyKG(StOuy{Xں')3XCꐥ0QV;LJ5 K2!ӎHwE&hChBi'vd"{NwgGdcDȨ A!.X-2 dZf~*}Z"ǻo4ͻH "Tqӽ[N-괎D3F{DC~`~*+Ӈ_& z:%ݐ.#]UZkXbCImhh#lx{x3&aLNLE&q(2_5?KvL=8I5>Rs`̓JS/G9 e)pt]D@QZ ~d/@ZQd PgM +_SP.c8GR5,+~;(CΆZD_& U)/:|#A~<@Sa.SeFL**|谜ŧpTۇŴMQ \I-, oWB٘gL}Sv4φXf $DypHk+QڏvcM=I\>a0oNo=x{ [0D펲GxgɓyĪYStissqUPYBÈ(88 .) ɡAd^ASb0gɉfɉff!ͭf׋[1:݊qeRU!y ^h>J> ~0sLA>90ܣ!wV ep$,f4p xFr!q|/M"Ía=Z"yTZgWˏ@e!,!rJv\;h],q\XmJEY w onS?C=8tK3|,Q@y^c<7v<"@>,K}pfc :.hZ"t YTKAp|1AD,Xe0QmNMLA 0Ea;v`ViŊbI|=I/A4kpMʝ|KZ];,փ~ȸ413 2u({H~S å\Ri:[J`K"¡1}2?Kt*5BeH)@ڢ0dSap &y%+3Ksć1A<(FFFx%P3?jSvcp0~P FTE&dQGLhd^&+@pNU;!3T|HkeVT#Tkem Tq&ASKZE^%P%v*Y,!P߆PƆ e0)3 =~#}6΁ A1Rk攝?Q"ԐisFlGF4`hn=f89FJPtSo& 3PWeML\ͷaKw1qvS{RKFϏmi&4/+[o!'Kd̷Ur2!cˬ^r&*L s)-RKPT*/G;- R9C!(Fʩ%s1r\'8a/=K-|!X-]?@{^( 2҈3ԌقǠ08S}2YU`r`Od‰)1S|(w߃ePw>D2=̐YS..bƙ>2&u{# >cy% PPe1 |!#te'GfV5d |=+$TM=?X9[ {ZBS`&[/$07uSZ/L`k)DqNc&cgz%9&'JWECߞSPhlto߉!Ǡ)ӯ,Û^~ 41 O@3xqO3=` 41{~n&5 hbw|遯 )u< &fz-LNx LO"x41ӫn&fk|>PyyIL/#x*@^BTAeG(_7Yk|W7?@[-kc&|blL6ڰա\0.Z;3Z"pD s(-В~d5*̤Q캏|IbOAeYZb;1 /N,Rq양gEtgWMLe =J/z]T{&2>4*k q̣w:NePT6&!*S}(" w4AS>G;KqcPi -DOAJjCn5<8ʎBi#pup?yNG™q# $au T _J-8m'fPJ38A oѰ~)4T_FF.(7` ۸J r 3z >dAT>%Vq! PsM؜/ kbl;!x6*hn#{`.O.+thU 9P~SB7I qH~Kٕxm |ļ Bτ"\1aF=jjLDzA5ePqRϤɉëq>>Re#K*3}X&R̈qΜ(2*+ 3Pex8([ΥE_Νsg?a R8grL,体w"/ļAT.>Ifq Ihd0HLW%\ySwcR_( mwdhWs qFs qFwq~'[DxYզOp=eLBڶB u au"e N ^0`F;og+UYC {%[?nW/꼞"%HN@y:ͦ'^dt2(A)❠i%|5j~Nֱ ̒ϕoCXD6|z !ޒSF5KVBFXΰ/NMh2KaB,-/,BWS}ro-PF Xol}vfK}1URdɀⰪay?4JjR8,-E ; `8BsJp:NyLPD8.wFټ~9px 8ΞxMl ٓ*GC41ѭGE vBzlR8MSK gĸ kVkuf j18DyF9,ibp_'2I!U(Y\6i7HOw̲f=EXbv/? <G$% ,JUm&=aZ~\-ؾ$u>L1rdbϠYG2h ep"f, fp=fd 20/K5C Zf†T,xbdSeO4,xb 2[ecJ2Ȃ'f^t-JX&D6#_6"-I-˜1"6CxH$`#˩eTaLϐ yWȐ׸a> %=)5J.J+QS"q` Cdnwtש:BK(D[塕aXCAeS(#Ȣ8~dlY#'`v'*;eK\o_j+: eꆤ4AZ2%ݐ.~QwulLYS].r25JM-_D92)ȩ~x,A @2[Jw5wZOSfp` eoNiztNq@q(v#0| TNAek S;ձ'u1kqA崥zytV 41 RaC%012U#иԚ"]lCm(| ~*1ɅGԔ+r47 5R[y=t0YN$uكS0~\2z⌟e@e(Ac0Wܨ-E/*dDm(HNq'ƝsUZ/3^T3JZO 37F;gtȦSKr ӰFvTw +`XyE""ฏUܳBB̰(46F=`8CdH8]>ퟌS+< ReKp >ĔjZ xc&!+Mh p@a^YX&.#rxֽ2ǀWT_ܗPZ뒔]7XǛLK̊g\v<^/l\b"SHIw)˰{7 pO6LpB,|CkL46#8EV.*?;:5Qefry@Sf0,A41%sɢ'd5]EB 9M1[mP4ZFᆼ˳/"' jLFI ( B.4JvTqn4x5Pd-b{ΐ4>,6'u%2 M +y[U%0V/K%2KkK%4ˉ"87='CvԙڰwTQyP){ɍ]0V{^!̤E}u& aP12"0{qsKq,BK3.(S;qXL,̣$ltayJEP1bct 0:Ʒ3ܷO_/nȍ)̍R_^)b(ۇ)>>MV /:UD$Kk#l(Sdnݢzf jjA]_FØ&6 ||/ Kr@#lyoAԟ+hU_FtV1T9Dc]toUy;{}鞀t6W5R:"l5]ƽ ޫ潈段9AMhj+Yty !ۉCgF4=U ۀhb\REKa XMIxh؛/ r~ $%T8DX[yϱrXaQ֡Z3VBԐ.(bt0MjD}E7tH(ӝfJӢꛨ2E&,)~H|db]M,4+@LBOL;Y3dE&rkZ8׼_hbJ $w[UƵFY55I@}Y45Lsd1*2sBOTĔne0MP$n^P9 Qd"܇%PY䩤Qw蔻u$30CyoD@e.%hѪ(.ֶML#@n#gSa\X훐0oxsʾ=wx2RV2w>`d`b 2]J0aP2ah$Ĕ| 1BO)VTagitHo֡.E&*OuP KLVv S:=AWgN7!v QfH-aKV_ϊZ-)Z-oG鏮гKP3?=PE{e5+2Q hGv_ex|R#Kk%Td*2t5)mZtR=U1NVoU+)F/]/֠R-^3p?huD-IܣDuȴW;zb{PX\vƯoT͓M*j|"*j|_'0=3ƒ%Pn!sDz@QSJ2 h[b[t|rSTYh.ꄢ>P3Z`X3'gRK%%Sa"uޗtDX\&*v 9X%wD.&9mr9mD&2mP%9mH[!Q-l&0NI{tmB3j|',xfB<̉xh$=O K\ILu@LkCO_i&fWn0`%#@L}*4Yg,[;ۑyMz} ׄNGC0֥K*dֺ%^ObJ f²Z:"DzX1"J_^,ZJ, /՛"9Eo`M.vDxz"iʷx\}'F)s5o7pTbY"9\/&p2T=TdV𦲂Z{&x[J1yWmѿRk|IA0>SC)'fnг,U` @tZ``:VM-\7f D̟D"r&7Z`:˙2mԌY :Y_iEA b{4g hfmΆCgh8=o41Ui7 =ǣjSv,BzѦE~o|a;0xvӎjj׊LtWd~@PL_&|lұ>%)~f|iN^ e: aP(65Po5@H;P vc=QF30 T{(O7 l4~%fZJxkAZ÷Cm d:Һ" =ŧMLYn30?^ %ˠys6?PmFZAʧ)1SД5"ekPr9eۚH&P (l價gq`%CٓZI_>C4%jʧj *$3Z2`GݛۤO_Ewet0+^u73;GoUޕE F;SxϷdָSKd~P| lԽ4ZƟe?<, Voe^rpn7m9*LbTv0|o~ uk隠rM(cs10KOݎUtUd7J7[(]YI׌?|WA- cr]^I-gݙZs@> {!U6Ez"(h 0>pr(%|?Vg}ΑL!rq- #uT!.Y[}ުT(Z_^2,ٸW C 8Svo"u.qq);Eɼn{MUAW9>n *ӰX@Sbpܷq~2kd d mdlnL6 BQ<(Sͩב),)l9d8Ԉ+vX9};γZ=ߝՑ_5|/Ⅷd:!\ rnJe!VZ^o\!wM I!r-ݙcg4e"k\! ^|4=L@-PFe.VO4FPdG0}uf}(se^SNcd"YWX_-)F-֗U"-2ū5{]ay=]ŖW{X9\n+T<8u#g?u2WX1K&3QB[ڒ7Q%Z|^2> N5Ƣ7Zw uguMkh6f*8wʵtwP1K` dd/4ҥīUD {[cA/;2C̃ɮ|i}VYGN4?su.h6Sh4h8U"/i*s+QvD=tF\CŊY2Qn&UCdMu?uOWђ)~[cXC'YEλC ۨwϋs{UT^ъdő_%mk a`j?HD+$?P"ѕ:Aש>T(lCEG7ք$Qib_AlRᡞOΞ/aM\<=Q9\D5Fk$?IS q-RKo ő׳.ܶd!{5y _]vDl4>Kd$'D530 W;cVAV"o֡Nf}OAD߂M lVӰCe> =mya@7\-uHuRnS&\ . 4|N%m+'=_EtPT0_BgQyFxؤ'AWIfyz֮P"ƞ$hwƞld'Rc1YKie"y"$1+UŅ @tCuM˛jrÝkti}w Uձ8 fnRK- 0sM`&)|MSQ,M^\w0 +6MxŚu ܤ-㯏Z]C3WR\3WlR| fb7Ȱ1O6 ZZb#0sc5DqUfJq\GQ QEs§sjęGR8Xj3~iR+/xcoZscT^se޼xq 37Xb~>.(sa5AMu}\'HκoFe!C` e/^]oSsRG?ŊbءVSgugxbkK #[^QF3$#XW8Jsk]E?*i ۋZHSEK`E L0Źe,vNq3bFݦu>.ZwI=y5¨l/fFu'|[(\Reb[]⎡x2 C.EK_I0s `Y~r[;6tz|ۅh\C]XP*20pɮmA#OLNkxI2}[̌if5T 괓V=( f ,zhnljAY/d7;;W/Xg0s*ހu5o%O-R)o:횷уMRT=ͯUH$2cntuL?3Wx I; Tk`fIC\rѺ/ϫ k"a?[ޤ nE*J?aOMG@ʴ0kIf|w:V5T܄eݢͭ([3[Nq;"g +$/(H=ǁs.~2"NUتNRv)d bEe%̸;UH}?0s*5L;{'aR鼃rxAc9xfb8`Zos?";,".g" vJTĿ?O@nt.5U(gv:$q2DP}lz$"6UϺ#0zŻL@ww>=_ePq^~.^V37#XS2nn"19[37benqx!.s\#ד/ߊmmDwAc!h,3ACehb!r4.hg̀F}G8#TL1=Xjgyq&RaBw<h~A ̝BCM3=4_]WYi1 *ɥ>Z7@NJi5B{@41v\tUl 9aQ)'sfnZQDe !0\|lE:\4+qXSI؆NtXT/".C'T6C'9m?"qo"ky??B/)͔Xw,Sǃe.v7Y`E-?Cr*Z97E9:?)~e}J;a͔xm% UVSm+qnV k[$Vd/lUQd kC'ֆN2dX0s ULt/v`UQt5?(bfW(n^M*U~,9o?NbŐ6BԮ]TQ<]]AMRQM z"iI(a_~GU%v3WlQm%vwfPQvt%aS"nPQm??JlwD^pZ?L82@XTOc5r5:鑬y0J\핸8WTVn~0mXIBq0sS*Q坶Z4oow髧ҍbvwHM*AQ<5}E+ a/"aˋ{?PEu?*(jOAպ}0vK{)=(s}CE>` /E.ѷqMXGD{[5^q2S]/8q^7̔X],?ԡ*Ss.PWy|A ԇg|+NV(TKLl%P7иjp~g֕zsc͗ywL]WXl踱sqJQu-7npHLmƯ798 Y7mB+ y'Kޯzu[`*%su7Gq"~qx>vg~SHYocp4.S1&*+zb4{q:X'2Nr"3ƉPOr"c>]0s ڜ kL5h[6:4fT_U 37!"snPBz,N,kp:0tQ%t_` hY﯍^@ccN([cPJkѯ]]E&hHզ>oH+rgZYTmMD]s8]4lፃ%HQVFr|]nl6}2Iw3D>惷CleAWUY=-[xVg]sOk!{2@JP-gFP-Y=upj>e)$}e.r"EG]d;e.^/L_ \'E@VE97k.? 2 ߛB`vN[LDMHcиQ]"H[ q+G8wq ݓBToEIel]E]kX1{>tT1Kn)>Bq1A?2y 75[oG 䤥c6UokU m0n{]EO˷3WXۻV*l3#MXĮ{-CHD &bfU\u5?~MDڏ%e/RovЏ2)_|8 J^WFqZ޹0 RrJ?geas9BE?zpUنaЫM˰,*=KůYܽVV[lD§Jpa!QЫMvGE3B>\Ŵv&Rޠ٨f_ F*V2'; g"ae.z'ۏ( x[8qMժKV W_]3s ^q00Ev "`t:_Q~Ee4VJ@j `}~DCaD`أ\"`)(s7.6lu`K]t]zry/~_F 3`-/~* {2#tTs-4OF*.TT, Z?-G6wǽ< LE) h4R1hL{ֶFvQDQ_~fx4Rh4Rޯ:q[?:ɥ]iG+֨G3p*>FgoSe.RadWzoxi/d*szN:-hQMeB)e M {c6ҽ͗ խ>ZRـ#9%5Y" o>_-2 7*jlz^0zqsk}bϬl1L"q AX{Ĺ2o\+s!~ͅ74~+Hc4 @[Aa^NbēeE,VKUطw;[bl-Q|X;H_=^ػ뚱9.#Hkb!>n,1{qcqݏbw!>n,Zb/#>n,۶k7&Zb?B|ܸfb-!Z`bcdfJpqY.<"M,W;n\_mp?"`ٍ2}>Ue;x\27:JjϜ*V$|57T&v:J9s3*V;LX{*̽b qUʙGRܬ4,2ʟK]v'9x}%K\"o%^0lw*47d :2t 1V5).]Ϩ3V@ş?ς7խ@:DC(sBqjiˌZj\~S_P);,G%[濡SFӠX ?\#D;-5`)0ĕH\ o b.Dk.ӶਭnG 4qjW7A\zY:4?'_o]2lֵp9EUXuV o]Kk>O@dx'?m,e(@6gI?7] KsAM]Nȸ{!H<]?WtӀ4'@"ga? Q9_\ao@n+]qEc]=2]%qLx[oFwKt ՕF+3z'&~ 4tFQ-D5Tewk~#y펨kX/yγ}"uXj猌g9E[OL:+_jPcE'ÆN*<c*:㻔+Ս=@e]UtQSИVr3;Qd;qljjM}驮uR,S9PiR lZ.N][Y_5}ʕ4Fq0syx>|f%`Կbfwީzڿ58l]?7b\G{ f {^%]E0sU$*`>U?3wm!J` QT6;j+Ark-T,56킙T Z%ڰ=p{Wǖkaͻq0s eH*VK9so8x/G,L#\Iոqq붗9;37b!xh Y"Y'\AWX}NrO?3P:ٍ>7b'A,?=/Lʖc 41zDHḋb+<؟O[_smA(ߌ^YyaxBNŚ@ţvb'V(:f'8ŠCD3GtQaw# *ބu5K3+ܤjiU.̽\!{SŊE/,D~ɟOU2׮!o33(侲PraoN"|L-yv#v}TEe: 0+9 δܛ۰v̽Cjs<3ʖzIn2HzQ5T.O%{9,O.QH:žh>w1|d։&ɋآ"юVS(83֔SęT>S.I/5tn҄ރbur:}P| TDwrziidfvfI` $oY -s yd;Ja[,hD}oTjKظ,h!Cljܿv N2R>迗H:فsa>s7aYSwCи b*V\']Z5''z_CseQ[%8xX!zH~{1S$D$dnRD/ԭgnRUDRO]p{}C'}C7+#lܔ϶ h6؊^'q#j1]"*@~"d%ISI(WjI11 {F $?Y}E'3Kv ?i*r&?Nʀ Qd]K@6fnRŊY2rPX\%F!yІH+ItiE6,52:uCx{ά 'Ɗ.n\8AjnlC'C'4.zoGʬ=4<~z8~Мo{hI?>Pc*:͡D(s #ɶHzyѲL=}<.ҨfsjuX.x8}~q4 :yWo=JC],k_s{:khvho]jo]]vfȤӹ^i >휽M1=#NfިI5v& ?7I9ihV!WWt/Qإk6wn &}Pԛ?ma5%+i .\$5W`Ik/Rxd0lWh2>FQ>N;#a"ՒnbGM8%o 8]V\8u]50mR Yl)ّ]4O*f$p?ğ3l.;P'Y~9չ.C'IRK\5}ri]NWN8Anyv;Bq( lX/zb#8s5e"ށ^$UIa[h=SæL3 u:, oguT٘"st:XhSV%8]x Δxs+1~0s8DcNΣ^{KJ"$f|a MPQ=I \Suώyf- .g}N:G65:I}7P5 G݊8*0# E֢H|?e~scWAjv Ӡh:Ekon d\/z>3z &acP'cPΐ tn8./N'/@bj\J3,,6!HE/b%Vtŵ2|4ntt'W_,G|f"\=UD [ǻEogP7c&:WM7kdֶG V Z5Ov!a4OCiv "z,/*sGB=%~@=dMD۠t܅~.s^zx-XY ^ٳ~r?Ѱ~x)M:4Iih]ZM:ɺI.8Qk0^gO䨮tґ"Í~:6-ͱ>+o}H*?@k$z\k~򖴗?(믛*iQ.* -[1q0WEJ&\n Oq[̣uK{@p~.95 de v5[wDthooR#? _au1 dQh vor4rOhSЏEbkE9T΃ r1_bA/ieV:ȟΧ;zWZ_w/#Bo է"Jwıl%=CfOxh:9fhl49̿BJvC}Aje.| ~/"]1p1twF1E^^v^cbwe.RqZ3AZbz <*Ƥsd?P^ z劯$O>W·8;aֺN{Yɹ'ШUVZ5jըQ `$=7  @i`$$QZ5jըFGQFjQF59s{.?y3zU\Aezъ2x \SxO@hoE$<}NAT-9ޘ LO{~ 'к+ F5Z="-]:jy #]@]*ZM:5 IRw,3jFP^p2xo\WއU〬 K<~}V"S/z=&BIN|b)>Ϙbt3nA(6~̟ !%f=S5JY$tnOVؽg5EYGR( ;0 .춞ʵ_Q]fj$Đ %TtrN<$G %>~1]+s%hlމGsjܶac}b%5,6ѱoww̌(y}__̌,{Bpva- ΀vH=tkК=18 V2|Ҡݔ+)OXXPǟ־kq{7ɽel%ʕwxŴ8wo1Z]yyfIhkvA.\c^SRL CRm͇+HX#e.R-87A.uxf b!!qfg0 46cl@K%v{B%wcޅt{a$__*.lbCIb^D%} FZ]@7꾟)33U;PrN9$.Bd+S035% qvG}X)=ޖ g2{3["rn4\Csɞc9jD%Jp;LN6t;/yð90z@zI hR},HvuheZNRP WJX}A9hMݥF?}>`bծZ9J\vdF^1kS0j ~<6ʿ? hC>SbՌ'Mi2s؟,s1G_QC,SOv:vb.Q%ɼ]DjO} KV҉)Z du2$$]9P>α5Ƙ` ,tͲ?֠ů0 L/Q⎟v&yun=+s&Q8G(Cs 103__g꡷oF`fFSo{iyoBI峏\ fPr}v{y: v4Z_WiG\qT4eT0>^Y,$CoK#O[#e.YaMs(.{"8uT J%_pX'a*IAfћ, 3f2OCZt|?蟶%{eZ6F=@ӢZ 6Ca?ElnZ Pk%hFNnzkUi꠯:UɳSw}|uF]hTWPb'n{a`WWYb>]f{"ᅴZ6z!ZK)?(R9Eqv^DtcH`^n|03*^׍h%|/RgU33Jn 7;Üa^E(s[Qz]G\cL*Lƹ_ؿPɽmC} mAz~ތǧlZA>.i hKީxKU\ QqQz#$>VDx <,tL}f1$H[H܆V[H~ߦ-ͨ=qڇ>cwn !ZQvc>\q$~f#zT |Y*Wй_tٮ>61[Q/q:7iZ9@sk#O/F2_uoZ-~gF7H =Q>7hX騾q.o|,ԇ Co~->UMt1?a=72|/};bL+`bLa= ~.>e.q]Y\U&8 HTnMhoDGQ8R Y`CZl d/;/)sɏ*X(lz  QK<~}> 1FWNa_ =6J;6#qbE\gZRE !&8 ]oA7v؄]Tv/10$B/>e.5:׷[j@6mKXB² >e?g%_-I֧7v薃%|/qgLuJYp9Kce.d!n1B{Z2?k$FSQ }yG\ꢌ\u;O\+sC+㣶/r03|^ĉ=ZG=XFsݐxsKԩ:%v=09eҟ /0^a]jЦ p{i}*a}*seV8(쀙)/S0}7_Z+s~C;%[7uL T*=3S(ْo!ѯ8?`we.)k򬛻7ĩ4 m{ *Iܟ| aM Bԙ6ގ S3R>q3YE͢?ge.flo Jgenu{5e.Ҕ>N3F3۩e.rehϮV g\CZ t>4X"{W`Mm2Dq[(a֚!#"5Z3Cܧ к &1=ʨDuS+ fՌ*Lay$B0ɦ*͖ЫW~NE=%V:S0AZR ?;mW]]~6u/a}QW~ m:h/M-H+ _} _} _NBljFϡgQá:itS,w|=|^7z x;+&ll26K7\**l/4lYr0}| $ARaxÒ1x-cze]1-1j^?R[.hoӿu`f %ilD/Ͽh˻V3;(.}/{>zʇ%1p(ʇz mگ}xs$[ (ftWje&jۣ yt{D.;b-3h_w= SȷwjhCYu!ydx'|TɡM -S8K*@'\m/ZRLa𺭍=ѳJQp8e)f8f#/n|a_ֲ8 H,'].yMe9wQ,3AU~  1sLShWHK>V/~}k^q^g.sQQZs(Fmla:uPb.B>~Jcu4~$2"hhK줫sw~eI*'.`;u^D {qi'23SSr;4@˘F~~>Kc8B-q Z x9sN䏕#u}~/zo݆^1r1cT[P6b!º뿈nU*ҙ Lۘk#ygQo$.& ;ʩ Ro/JVOt H]EKcBK~<yFRM;JVDZB̸]%AjkS{ T3 %Q5.xUFdo&sX46E  &s,D`2y!E% o?qkyjم1&/Hg!}l޻IzxJ8)PKd?RV><&f#&|~h%q(SMtODW46I`fAB)Xg VIwQ\r!\.םzQ"UfGѰiFwwP&ꠉf 9J6,'['X qנJVl%ƍ;e.N*dEښ'xӨ* 0WA hw+sjD[k\((}h-aS3Xkb Xn߉2d3SSRSmdk%[4M6g p/|^s5y~Ne2bڴPCctMD'73SSrޢJnCFB+4:hVHU2//x#>1Ω%C)h!AvB= &v\TLq>T&ANОۋB׈\T?f&1h^M<92̨ ^1YUT+b|ʫf"h}%ZK*D̷0S`of*4SɜqbnP(,,}Qu?i?g#m,sΛe.y6t!b~vFfoi!BnbQ km6HNSbo./-d*ZFszT1"W|X$P'A U큙)y |WcoSd#.Ԓx4XOs( t7D5 }[,3[g\wAwa-kbq&r*QQ]&'E4 ci,aU)7uT~L|ě? f+&~TB&t*{u<yXͰG=\[{jO s 8u)1Xe?iy\XJ"__"_)<sf<FCe._V`mg^!u0q 0p*5D!{eLVuj͎pW6ѱE,dq ht)ʏS[:ܐ<a&mgK.{nga"TyWYj60j̈\Pp||rAh]M&O% ?'UFobLb% ʋwg(sCК1G7uEJf,#z)F}ʧdK($ˠ= L9JwDN-u&v}}RuDKmڿc03x+]A-h x*U~[;CI%z٣Z'N}F\_r^_ ]=Ct%*4Z撯czUKޠek.iIsЮZK^'n`\ 2`wɷ&]0a] ~ :%xwaR S-u}OtjV*5a?p]$Fy'_jin6_3ء037<%')4qh+P5M~Pc6Y$pMMTXmcK6$@uL}5?G6TzW]ȕ&O+.a"nKh%j3 g)9e7˗#&!dH9șZI%P>/j aei:h?^/U"l//LJ^6ɽju2沟 ?dvA.,qpx m_{hVl޴?r]/#V`5 [?z rD/ALKPMgqP. !CW]H+sS@lL _)WEK[\EY:@rK )sɽᅰ-y ZAXV^3SSWS[`bri|.{M03*iݖ>n\\ٻHEyYV@ h :ɻ7br#Y-AvxZn$zKn*.squ;uG\ ~@76+,T;NutjlSyA:N΢Ի#F7xFt9M8Qet3S(e~&U-&fgkqvaW~O^4{$~3P_iI1CR _HKTܞ 6-s1p4쬎V=f05)/6jO;>i%vuT`DQ75^33 c*U7r/­XH(PQ0 U=!O6P評-hWHށǼ*nZL4U<8UŅI&Z^ o mڿ63S(R@̯)|>g?KMmD[1PYLcmIfhL6AƽhPK>n$뾅ZJTvK9>jOh5/қ0LDpk aH܂n_>T (3S"Qmb|Vn]/ՁIL/Y5nM8t{}󆧠wRHaͿ{Pd< LGrRΗ"CDz\0=|+`f %WW9foL5ȿ&Lh}0qR"шH͎ %?WzLF&sx9I'mhL 0a܃?(56z@-~ͽ+pMSH"~7zqb7`J j.杦)x# 1 vQeußw ig3n'oxiXl詟Q~)IAC D;|[7D#+ ] sT!37Wgtj cJ82SDog'aj]0W[bLdKx?MuŤ+m4G#d/t'˘b pew[/G@jJD˖o@;H΃)(eLUX-6"P= [l eI0rYeu{}(swV+RU|ӞyAVmaw YM0qYͫ23bI^8Oާ燈5_lyj͛srh a7 P }!035%^I(b'Ϟ*>a?|)01g԰2) Pu^%" m_LX$+F|^C킜PI bT}]?L21`dԪVMT>TY _OoF`f %Wg24[O)Y`/xyWO~ RdPRQW& &D%)s*5NoeW63S(9C6t]g |3<&,X^yLMm6UHbw~/"MM²&L3{J~-3 ^;೼Bɖ|QU9F-_\-Q%ZT!GdOztAM0Oh %@qr}PDb5w0Cs`fjunpT(sEKޅ/e.nzwx&{R/:8_tͰlЦ ehB&B=6IT _ھ9Cx/fx5)hs󘙚 3N`? ȠehXKޮx: _]+nycVAYG4'σ)ncw.׎EK^o-8l.\vp$B;#e.^mEln)HasDnKN`} ;oIύ‚ wHn|Ȼi 6Y̌(XQaPL>'К|VuJɧ LCB+n[e.ݒfuaur/(qZ1Jo˦qlxg5,5}ˑ>G`fF\"_} kGBI`f6Ao-֣|70WIۈ 6@-6|C4Qʳ94Vq f[qj7A$݀.4[e.JaxwHMי PpE"쭻TsdxZ͊oSJށgSUԵ2o*s1-&Յ1>1H %@kI>덈9ڞyL2o2fV)s550152a3~XwA%>{ȰvBilzY]|a2ƒ+/:lMxbzyST?+ bb*A=ES [e.FO;F^'=\ %c jZiXT/i.<rv:|ʶa vUeI8%ɳv*%γ^t{QJvnaZBWnB-qZ@~b&tnOLj_'Qiib{{aǗx?QRyUJDD |gAy;#T[vRGoG.s}hp'VV]Vm{w*QPC>eLMI7ծcpڗZ6%Ц2u9a]hrj&Ds5 Jbe±1~t-21]pg+bиiݷ T.{@L'_uO2ϨTMj-TJ{/rN>=Yv+(M^L3r_32!S,ϲt'Eb%Ԛ<_Jew6dHQ=%4TćZ.E'_45;u!qZEHށ(!%A}HKbT1gW ^+sנB٘.sٌ*,} C0h L| z/n m?){:{K)єHK&o]O L\Th+>tIyBM Hàzғp,M^׵ k`fjJA'ڃ+_03-پ03J֡l)-&M&R }sqL-6 >P+a]7ѵJ mRO}؅MfjJd`b(KODg IЦR|!0=^>\5 O駠\vB%J+`f % {ڷyޒGGJk?|KBKMIm1:b;4Y+KQm Lַz}@MZEs+*J}exw-DdLdTKEΆd:I=:L{-+$l@&VՋ `f % oIL:ߋń[a;hAKMA~'3VR=eO hH\onWݭL6P#Hw'N^|n/25?=ܞ3}dw.ֹ(s(sɚ͜-~/hd!á6N6%)LValDy!hIV90&hs!9wNgdKyF/oUeL>S08jDy1ݾ՞Cu}Of@[l$WZLbBIPl/*"35%[E/ ϓ )Oh-]w+%%?]quoC5 fPr*F,KFd`iRSs)=E{3B. w_5>v7#Geya4m;sX|W̗KkeEoȄMt+Ohr٨;2OD`b9\A V b :1gh\?ܝ>~1{we [s͘w1=3f,g:rT#ÿ=f w$yGBKtەw}J̨}I+1J LpP=K̓SH Nh Zj% dV?0ţTRo@ƠDck? .?jDWE.~`fjJ*wna~d-q?}%/s [zk`b-~՚Ūt6gwA2/C#_%F1" ljU!ro=Hm7|w#% W`]"ax2+vGíJ2ɐICe40~~Q?ѡ!3bBv?B7=1 ?JP[Jl[5N˾@oпo1'#hZDkxieLj]GcP?@VUbz9A37<쬶LdghMӆN|1uhZ֔}$U(cՋ|&oM8QEG(Z[*֚S-Wʽ Tz Goه IÉqރkvk) '>[jܬුХȘFME[c\G׸=} jS?rc\*ĉ7J1{i'.Atw> 5y4 5d7dP1/u;6U/7Q hT$h!#AMk9ch=sz݈L1Ø] ByW 0q9]./MR#Dv*n>Nl e"Wz_g|6XɧҢtͼ"ߜLs̡D(9 5i.1*~oOod-\3z)cSӢ͒)oV+PS!:Ex}A@ME^"u)m1_piL doE)ztm^bE3thX~n]%UЇ/rœT%Be ›c&̿`ӽ 34[K?@)yJ3DzWnTE>& %ut7EJҖO ħ{?KHr4):@*U8g]j =vud߶ <<>]H>f#u{lտx뺈ԸHL \lHv Ga$Bj=g6î.ϐRC)ӓHLADwVg~lտ't̃H C܇H/)GFVuGF=QӔX=|1АIs$Nid,˿ Osj2K~C&> S= 2҅iV!Pcy3\8M:(H{ɮ ~cQj(U2? hXWwQcd1%/]V2{ZCҐIr,m8R7m! ; Q2oX_Ԫ!Tq5=IltPkΐI=#7ju#(oԔTިQ_!xz5=R,c2/ԓLrӋki^GJf4ҩ("gzLeQkB;H@Og~f"S (FG\9܎G/D"s68 ~H ]b0wΎp; +zt<]Zsh=𖡗 g mX8hאP`  ͖eτjP_Y&lQr ^B/C :XoA-0b}FʑiEoٯy- %4W(;[K=%=o}#sӊ6oRd32;CًVُ).e)>+IS/]SҺ#u1CeĹ"W)_s5Wg$/Zu*r{[E~ (wE%pHnC#WP`%|Y#Wr X*= "Wxvq&P5GR3X0VW\=8qɭ" FUQTVf">2sUa(|;X**58Wu`5+ ,qwW1ĕG\}`GWV9.Q]qf0jo.-FXM_Gf }[nvo~]j4'Na~/XdBS)w"WpH1]Jŕ;ť""ؑWA콯D勏u fm ߆3aCQ8LJ<~R3<bdkB"Wz~2 yDF j(C*L|-ƯA`J.)}Eb\,r!p#  ؆{B\+]vb!UGF?YͰ}H4ss)3,A}FHs%)R<*NN}@ "Wp"W98*[f~n"WzJg]8H/A=d]JI"|gx HuM>!T5iQf6s^'4"WzK'8,2B3J#QAaǰiV4~Ձ#;t+yy\apNN-M{6j\silmRjfk7xH׋5\*p ]e%UUقY_cY?O?ΠF"4=^zFGS(CC#`l+ E%K8%rtȕ}й"WF)J|TB fҧtLJ8qsR 8R~.rqZ%jw9 3~_]}~(i]^s|U0܃WE$'"#3g؅rLG  2Ϋؠ2Wa 7'` nnUJcx@P9Ti9LԮt;kJj5:;PN%.u:`~zjOFzf!kI6 3o?1ާFQwcpyw{tG9Eh4/lŜBȲVȻ(!ydyCW4 +djpjU)q+y%GJ^ G*}짰1,܊ϥr8:ZM/]fn h݇fn)sѾSnB?EP[",:b+)%](JfW#.\i5XAkx7V5ڿLYCc:~lg*=n,'IW+mv+܋.rkJ^'W&ĕG\`y@ս7pCՈ6]`Tl)SQWEaD:*pLR È18rމXi/xJwA3lԕJUȣRdb  hXN͵}8=|QX- CȘJwxV:/?P~wSjWkwMik׋gP7I 4sK?]> \*4s5Ua =(YEOJJ*dZp* ;a8]bhS+ sCu_~M])mudC&Ȓ9ç^2 ER@ڊ>9(V|RU>S\~3-@[}] o2:,%&+k u@Q6XTBcUP+`^>UTޮeSEeOSBefl&Yj"Wѯ/"/@9BkT 3to$QMd {L0eO QW G ѺBaP- be5e]0:(~7ބfDry澡 o#sP}#Reʑ}SQU2QUvW#hѦُS@B32/d ?p!Z5MD}`b,#P_U p$e ta ZR8TCE̐aV!Ǧ-r%ll+= B.%GK8TMrzY_=UŠCr#e5pӞ#D ?n ︄Is iFށi2VtkmLUUcN#',SK4=B M riEY侗eߍհLy5=,x=VYLRsʪIRj^\M޷:Q'7Z+4n)zl3~а -uXgrȅ A q9"[PB`zM밪LBZ%W"*r -f Ϭ Z'l?}m{Ş6;$y~[Im q&\%,e~/Y74N&eJ-Mҫ%Y(-,Mj=tQQSfPxW>`ޡ ̵} 4.9EeV@]'2ڢPg2T2+ǜ#qzKenNQ'<*!K27 rqLVgr8Q!#taj᭏gxN.rrw=]24DK xj^M!Lάe6._hƨw1JzFpE.DM~9ޔzƇjRc ڡtTsXxd5Zû:ޟ ejxc-HE RhxQE.L. lXvZ QvF6c~ߚ2/YEGBVWZ)QmvkXcm}v>f!?] l349XPc"X5[jl5M5<ݖ<*{(k`V>̵=2İN̵ͫlK8͜!֕0EG7 34B"jʯt*w]j=C} Ufc rWv+yrlO"v>u({R8TwHA~J \y4UƝfBm˰TQC%"oFAj1,v>e/b8V84H 1ί"T+T;jj gS6`uf-C9`L rf\iEUo?W27W27bњ*4TVRF[qѮ*L7O #( bR<'i)(JHUbx^ SD^@ v8u3EÊ"WzA<4Ԯ߰kȕ^NHu(7;ڣ/jykW<W>.Уx ^#[LS.4s Ub"{~ȕ^M^C1 ΫP ZƉF7ͮS 4shsvolP6Zm<4k Q|Zᗴ g"/tm+U :gW Z\ uz+TfwLJchQ)njU3f?=MLZůPqe {*.'(b9^⪧qg"STJܜ*ċ)^8 /d7@[%D*mORåzȕރxUd @Q&LV!uU @Cd }J:J#^]ثPS!U 767#DN~>h<#VJMښxeh -*V#uUA?ƵFuҕ㥆\p4IkU$Y*WZ׽x$YҲPZZl"n$Y*WZսq$Zl~כ2 wx`1yCjU`5.`;]ZޥPĵ9cq4T *<TS9pa YmӼ^咬1Jk[# ea?w$ӻи/k):PL7k`F5؃fhM{2},lXL:WJKe16D#g,붼הAvL@3Rt*d)q-SghdiZִ';A@yOi=ymŖ$̒)p׿_!xZEnBeXgVa*.U+*AN eoV)ۊJeSҟlsko«ϋҍ]pfV*_ /Ug"! Wa PkN)2]A]^ BWrB-r\9UR5XzN(9uWZ¤߹+3bXJ?Foa5՘poU–x#,S&j0p^IPYaLTz \KQҫ/k)Z˖sZ{ 9# סf -fϋ<aoV+8<鴊\iGz!9 eXb}Gᷔᯪe1,qZpFXI#d NX9X$ LW1YS$k)DmX*F(·4Ӵk ő_ c]mViߍpxMU2>xOhz~Vr3__-+tį 'PrDV:Bűj\W1a)=Z9!ȤIo}3A{ J^ YK| `F>koiOny 54om(}%]\+R?.g ty#$1shZv-l \KQeF*|k_BTH!?=hZֲ% oN eKMm{l|C+ֲ%Y Z)AK6D[ZR}[ZRg}IKjOuGS>2KMݿe[S[?2KM;oI[K_RުIjKStl:}mMI˶nlZeHJf_R6]讳I QƁubM?2헩6*y9F/V%lbP8 'pRcҲ%TaCaWR2|o|^ sëa#v֧WΡ}XOx#;f; Z6_V#Dv}9ǟV>W5ϡE~O]4H?^tk+qh z5'HPw` 8.dNxY%wW]!T.FE>2*;IU!YKxƶ_@0p#? 7xuUxp~%U\ j*r!**r!q;O@NJjہַ7g.WJ>kcKE^RE~&xL i.1*ßR6e?%&maZ}חӢ͒6nS?ju:E/K$ݟa?nNHM_;v6Nj|Zo~ObX bG}~m7='ߩAJOP4ESMZ7mȕpm\˵tٱֺ 2\R3$!eX74;K&cĐIjjzTee Hvw PCR`H~:XMt#%֍p9]nJ4ŻolJEUU203du2 ӽIk93o™V-y{̌& PZ50k) #ƠL8OB;u&vCD3bodaߔ˭XeRmB ms0xj^MXukt[ AǤAXWFX622 ,I:eoo㝗@!Nh ˖,_aE.hV֧A6MGp:r A,W فM,OSMDe +Ƣlra%']?AѝʰNn7t(~Аa]tchjqeO0^Q`qڪ1Uf= E8QWԀ\渺_k0rȶ7^V ZfiL~*d8PNG)Y!]hx ˚0:,DsaqNtkBypb&̈́ԭpJVMa\]Uǔ]٥PSro^,rp}x^ !%Hyi <2Ŋ RT^F WZ|uy 1\|X1Wn!}Ưܴ@ϯ}mRԫuhtB9hqZ)ɽoȗH V 2k\o1}2J ^Uƌ}r[KF1#_ⴛ`")ZJHA^u_?av_fR*ʿuЫJ͋!3 FҧzȬ$O cLUvo!I8#bP*r=Xw*r}d2zb_bUFN~X{݅Amʴ)s-Exm|ȧS&@373nI.}'$CVdXVd}^e}w) |XU'Pݵ|^ Ҡ5 t&ǥE.L-ݑ&4 k$vh:W*rsخيM#@:\ +@A- 5KM샙Sϓ.Z6AN+}a뤀;JVQ{@) 2*z^ r Վ|a]Z#w; ԥY0}t:IQYplIz0 [%T<閾#|l ?J<ϔTQ}/i_Iu~PN$c+FɄ-dʽO=A?r)9,>c y&'p f-]X|jA4K7dzTz TkeAШ/ɜ+rrXϷ|_ xE. (O`G|F}'sUne2T\*j2/CSE o!q#i<ɌSD, }GPSEP2IQȨ5hJ_tGMw'£*h4hoӚҦiqbSz]O;|~k"x=OudpJG%W[RMG8fe?!Q;`ƊOQ]KklXiR;Lt6P= \#~%Qg JG< W {*+ l[PJ_ M[3I݁f "g7Z;PK!_TKxn4V޽!B[{SǢ U0t ]zV({2VTdv!ɒZ9Gr]WNe?RKg.A3Rtl13%(NGVJP!Hd 4, , &@r zj1 k3_Yl WŐ jy^F)x N+%Æܙ"WZ&|gk'KDzPs dt2o!#jCtSlCTB9oBв,B©u@P?# #[g\tsB&AeY6#ׯF(.U hMKA[XF%[UC ުp[I/B[^"iP~E<?Espĕ:WzoRZ鳙Rƍ,:׾Ɉgidp"u95#{_RT9QA!ZW[0pn"D6n\ (Hv~_.*kc"PcJ_-[aɩҲ_Z3<$~/`ކ57Wu1h*3rbʦ:4Q TQYvm5 zc*c qC?k,!" 'sUxaΤ}{}ϫ2R,l~9ZE"0Y1 $V|_<ƫXk$USfbEy\Uhʘ3 Ip{̵NA^r#9Ak)z9 [PՕ|dK Wz{"z'ZϐIn274NMĮ O#Z3"yU}dt 6!Ί_\Ku /q(6ՙhMUr}*fnNQۼ*9E1>snМ@^x*S:"zc3wk"3w1QDn# 06=Ϟ^,#+SF/w*(durR!;*HfT27hߩ0SZdt9>zj4ZfnZњdBwqfnVZd(!zşenZѡQZUؔ5+)*u_[)5Ls\:М^ P0o\3Q/Y_ btGF0)'Bvd] rh>sܴܬ/ͯ+>Xk_Bş㊨Pjo]檔%ĕ=|lvl6e7W䷋]~/d-t[4#C!CfB=(f[MwePDqUH [ E уPÐ!C /Vutu{/@Zk\kʏ{U=11PH ILQO+A* Eߩ%uAA4"FQyRX_pj(y%Sx0'цXA\ŬCER|=1"L)ʗ_L6{\tSBBq~ܒZA)b[_U),Y?X?"qc0$˶ˡNeQ !݁vx)zJ@ eoƈ iKhqfQ#nv?91|$y O -* γ'F2L-mrx2]kS="*8ݥ}PJjZӭJ&H# }NT0:ȺL):s6 2(Kf+GShQ&_SJa0T$4AiMD;eߗxI"¼r~$ FR7:hbP;p26RI)HSɁ1ޮ%z(GQTϓȧ 26)WV|J`z<tUVNW*ؕVى%U}p:.rHoGDp:,ZX(M|fM&]Ґ(:*TJRĮ(xؕ Z +(~}}io\jKnlp*-S 8wIR%Gؖ,voonTm[,ZԤXIzP0eNUx]'&&&Dmؤn NZ-][*lg2NL;JU 3u0sϔ%ftU*M}43i9e:nmJ,/o®2oADZ&)QZ0U56:U:X[p`RzX;OK+eE k+_Ĩ]<dGQNo%Q#1+I3LOgtXLoI%31K7ꄍIZ6quxX)Ó2z]tٞrJe#YL=d-+bGɿ hQ 4!@=䄍5&th:hdaJIԒĶ u"MG#`:%GGԏ "0uL%j.Mw1U|E0sFNJ5(*QyqZFL+n6]aq~qJ$~ys4 g8`.Q)EA~JYA_F>%nL6'*:IW\QDyJ< JrsR;.Ona@syi!E[CT:+i.%7(!EWTŭ2+s+ae;\6a)=E[m>Mرqh(DžQ3c1 L¨n*SѣRi#aO Zȯ9~2J!w '}2{>RBk NMӎWxB-- )V&N LœAiejN2 J+P: (eF]^ͼ%P( I0:I(5W#}_7sUBr Jd0ϡX&J(ӔI 2*X{6]BBt.6`Fݿ'ƌv֥w -XBu ţMLU 7+# /S{܄SE4\/1V}E˅2cGWE!C.FA6A [ "dyIJ۰yMWߊ{?zG#i|7?N}";gc:YK}]gBSorJۋp?a1U`6n_.R8NrFpY󓖀'Jl,o=)ɠ$LrXhx"+ꉎjixE6`Y'JrQW%#SbJwAaNіv 'a2:̶њ´nfJsjPJȣ|*%{UJȘY Y9E[,V fa{U0Pr0 8-RGg  {JV,jªꙁ׭J!۸7Rmu[?+;&*}O 61|ªhB>?,*׭☛W-ǹG}Piil}ߩJa2 ZnjS>sզ\ἳ!gل܅زD -KH!oCl)N2U) ?pۜgT7gx1W%F _m(2QmL& cU>'@;RrJ}vJB:EwJ_GW <(hIݛ}Ɗ4@dcƼ*wxX͖Ó5 tق特f+BWё&=En2rMM:;N=9<ߒ3\ە l]:#S"9L1R1ȶO6f(~mZE(F&,Ͳ6NA\3ywRI]9RAjJ 5lFMa2N;)R|]m{0$# 0,|uh/̏ƲEE;I/+~ ^ uSNF,sJ0GA{ TfS6=7ur}:^#ϽO5hbff3AWB=&ss`CN"KZ#1dJRT6g"L+l@ɂ*SX$aQ >eWO6"t]LIqsP%wp܋vx2l3jҥIlԡ$V`*6xsxQ de veqkc}P\.G7Rm4^3xod6Ox>d+Ι"*`NŏnP x )8f ˌdڒⲧsKeΥ>G-Ӳ>6 7m1cڈcǴ3;<#=E**QI^#t 8Cz ,BGQRXQP FT]IEfŌlYmZ؃d8"L?Ʀ!4%;fJq^iVdÔm6OLY;B>\& lpu5p|@g(݆%{8o`ytpgu-&?":|@^kx|Z^*3NujT_&׀E(q9y"YjH!@&ЩW|gڪ{Gor)仛@[:bBJ,YW4!#Rb4In.vxxx3ah~ɾ/L9Ɏ:ȊH{<'Ó\jAG'C.+'䬱,BWQ-|J,JgK&aCQ<*Pe"iyNUpF®Yq\/lM<ǀ#πtBAeZ[i:jSKRR+Jl%>-Ü爬UnbpE J;"kSM~MV`m67@- i h3Zg,y 492J#nc@ý!~8~ 4\*aS|;5 vX'%YhP.5#bOW5E(:,St!A 99*QB^(wGN%YEVqEN%+jW˖j.fVꌙEaNѻ jv>FyJڋ0"^*{ X +fE$ Fh7уJhCN '""*T{Қl.mGͦU2Vj(-T]FyJ.#fTmO k+BGuInXWx=**P df*B jrޙjNqW/v7ԑ:FTf{_W+O5DjʶYJ'8pt\?*E~ۭ 6xL4}3IF{4VvUmSٷ[Z(-T a -[Qv*o6yp2GU0|c [n4i]V"ʹ&Z6SzۊRFK7j$bT )f%TgeKRaVQ=;/ Gm-K9os=+7oc#eh(qحt~IέCXٟ0 WDU)7F`Cm-auKLA֬Hr;r6'ؚ1 Sra`=uM/t+r;lnӿpX!?*Fgryy-+!zM3M]]y?tWWjLѨw4hXVʋTS hp6~2Fۖ٪ٮ7FN8]ܨL[.q5IER.tEVy.W9EXq)[ME ݪ\Wt!oBFcƐ{"Eo JuNqa,;СT&q5sIav NQ.B_g hY.n/Sۡ "Ϲ, yta(&%hˆrrvE/SRgo>` (,`A/snngn @=?7TP9;R('Hl]lB݄n.X:C~2_ŝɉsf>U>gwrzw6ٸ^]ljڃrX˗ mʭJ;%TE>UsE2jRaQDe;R1pEV&*P/t=n])aWgkN]Ma@[Nmʷ囇!=GN:n{&Zi~ZCYhYU)S#VWrb}JªQtO1:#<\aU)_rTbqb[D\JWgzy;DyDgP඗mQfʗN{ڦc`:rۋ -Ӓ"|^,Qy ;##<\aU)_JRP&ӿRcU%#Lc{mE:8@t Qt٫Imdv[KQ%[i?xU|װWH:LuJύ|J-ve):U+J`Kz7w5{ Tʕm<о*3\*STzd˷n_`-du5=Oq/D2Ba4~IBx^U>6fJKP4s 6%yCdPIX۞|RBÖ)"aVQŞuOP,o]DBsx29_aJіvdk_FSzJp g@̻  #Oܑ'WZ8ýEUtA66Les*K:nko*GʚKa])E'A2*.sle)j+i oϱGUl[Fsٷ:OKUFEZT"t_L%qbq&H-WAT ی^IvDgIvƴ73ݗe>ڦC-Fh׶$uw 29nc7Ybu"tA~S.H8C| h8şhYœm {&l볏0}:xe | t<t<dž#խV)vRl9OEbi l̄D ^ 2&BkZ.o0E,-9[A?t\1ڦڲeT;\Z^㿩RXOpρpGO ᶈ W[c۸c۸c۸c۸c۸c۸c0R@U; `"(BVT~Ò3觰 k`D0G+XR.y PXKfCr?7DUuEƁ%r%Y!"En%qttmtgPgځ^ߩaNyE|hQ'4<59_pďHh<)8999999ey,BWzP&*BwN;AyX| Xnr#+kESH%3o=`~~k@GHg'nJ\LO3o3@MCSG3TSRPqpX|G@{ h῭n3.w@?Ιc lj66666ؖ=]P yģlXUT}1  d-AQH gHo+DlmM(zIh@nr^4aQLsJ\"h{<ٰɆ8M5'drGk)B|AMa-ŧ^kk|0}@灻CS`:µD+o\;@B\=ga䊸t>E;p-R*^F; lNb BiM̛baÅP~SB=HBʲ3qhJ;Y8'f\-Z2 J+S&(]7a^BLB([ ]CXQPY3{MфW F #_}E1#ݪ\TLŻ)E%[{0?YPCYo7SNM|[ mUr׶Id)on".?>9<ه-iZ.\F'8&5e@-<4].t;]uX2h8P!B$_Og }ɷy!nC(T*rcT/xE5aҿvt\|h}`*,n ϙ;\f^΁7/=Ol :̽C?)> 5΁@e?_.S]u_Vm}⏀ 4\h]h B-OaCiJr}`)V6RyF0o4Zf )N8yL+ U~x1_o]:tր_ټ*MqP5)9< 5)8%NA/| 3 `A$y#$WxS*SJ @齆=8B1^bah XrHEu95 ">esfS8QW5inH^1TM];lWqfKF9:G%sz~ &!dk'"tm~*yԮ{:|B؜86㜆aHA t[yI,CZ:&A: h-l<m,nQ0RZҲ˼:WMؿr1jKVGSCY[9\ޚFz9}W hw)/Rzh4#p5)B҈j#WoDGS|)>kiB 4x6}-#ݒjNC ;󉜅R6Ҋ0}@hzQ#>SUuTu:2Bxe}FW\6ZW ¨-a22UKɲ:H,¬ri-DNYjE(w8VKO[^ka}~_:/%S 57#n D ynts*!q%HV_7:XQW/0?)‹5s\qXDOE0s;\ rȾ{d09A?'tR\r^'q*:,uARx W6U۠5)ۭ~+W ! C҅9q)9 LU*=_[6?'q!~6 g`?_{Z? WRzAU)%WP vh>kf23#%4 |wJ$ <"Wj=~CfA?T'0\ ?īU)\M͸7m]'J8o uUuTX[UO17rLc8*XWP!:tW.#RU&`+55^TATE<VOa&_keU=D!U* 6}mQ Q0qSJNZ*W߷74na(-XްpȄBCКP]I]< v9kߊ5U'`strGz+W UVihS-6Rgbn8I.c R%PLED} +J] Y(QU+(Ͼ(JTPWT] )L"Lf ي*'ktLƕ[5m v%o{뺈aU)Mצ 1q=)8L糟#dXE5wdvÿt,4dPR9㢿XFȫpC`Uv;"3Ur擽]noUQ]1>bUc7+T~p}~izxDpyz &M{f9X-dvbsZS`sygQ!a\+": $CISnh ˯B"tm ,ˏ=Efe=!"te3@3}2L)92o'0*ڵRoz xKr r査h@ǹ/ %3CdP7WV۴Tr(khիQrFz9=G EeC|L9T\)E[6|{lַ +O.oFWh}LU %FҍޢM'dBPahHU(P*]*P%*3qHe5: DIzQZw-'yqG; dҦ}К* &7%i^cQs8yIaYt<7\ ˊ= 7-JUv;&Ca"mhNU*)[bƶڦ?y'yzuœu%A*]7KO j_B^VP[T]J7oLU壩L*sR_SxCF]AAQ)<:C>tU*y :6T|v~ Az4ŝTreSJ!;ASJ˽_>y)%[Bp5{{`33#)eMD}~gV8]1P٪ ;ũF6'U){_n")נ79ETWQ_9EO7(RU)'E'V!3 b4HA Ef/ "(*KlE\EQT&;SXXx]i,)?پ%td6Юȡ0鄼I:Y.93u9yL%ux yL}z(7Rx}(rr&/8)rX?i2Fd2^y9k4]}?SS.)F0sT%?bv.#{gfΞgd  }7sNS 6mm6gNi;zAD;r1%A  ֺ?yy֛})e]Wr{^zo=uf)Prk粴<iwˡ*: OČDǵ U~B?+Rsq_\z 5e'.7Wۄ=bVk+v5 #Vɇ K%" %F+F*B9;Y*쨐- VvC"0Fg,?ʱuٵ_xKwT42m ~Cu2! 4nhfxy놇_il@.vL,ᗡf\W,¢櫌UX^<}t[(ݯ]#$+~pJĶ/MdYKωJ3;5\"ia|-]5;Кf?O=BNp@2$9S4AZ+kfDx0B ء1jII? B`ԇXnwx\@i "Muuc,UfsҪN‹I`}ǭ)E'»Y*C1cY*^b{RWQ#cY:/܇zx咱y:ٻq1[l> zb^&.&PXM]{N &i|~<640 2WB4 \_mFeX2 YE2[g=o[ޖ Z:Hl# ҍJ.]{~x'Kkv? ]1-Rqf"6~G{ƪGz䲢(BR}abCQi&4 bN ֜St RPc !kpXZ$EC,UčUčWčUC?EqNB##ڞU'A-M~^$L_oX,,7]uϬ܂&P=dа6&6{EC{ +Q?}#>r2:@|=]I)*^'j^7NcBN \V ].GYf 3bkzذT:2X"m`}ꏘ,^s_y(h:di"0`6%r< 8|-}i\-Dtڱ!dIX{o"Ak0YC_SIѢHᤥEz8xi|(`܈ը: 7OuB^pL][>¡uV^ͬg6\N'nzF>y'jfFz/$4'%1qʪݬfz1MV{nǮX:Oo"o3y]QOiKldwYX8:fpT5߭3\y `5E<<<\ ea SDcOHnz0D꫿RXCie R˵OV{UZ`I/!k/B ÿ߮/%d٬mZY*~\FdE?dY=zVo0T )df ٶ/,,\ӷ}CLܢ[wPmVq,YxjY*V]`'巊Nёqٵ?ު6.mEkOQ7"(ԉRVu= eR\z#*=, >K/V?k}6_H9F;4rHsfV8cic3]1}n3q{&^chZʪs]H~u&n\R16(rX/勤,QNL\ 6T\I.lZ1>'UΗU{ԪNGU{ԪNBr %|bhf-~F<}-(oŪVX|Zy܋$3Xj~Y(YUW۩۫{DP.V6R޺ BewOxŸؔSwwE݃ҩbUS5_ ܺs.64q eU8hg56׭.kkO8w%Fb{R:#Sf![VOt`u= "Rԫae4$7z14z,K(Dc>rG(*Sksh9R 72ƲuRN5ŊEZ4*`Ax yVPwZ ~p9®"7Y*hчMd ,Z}%^)p!6û`aϑl J7fk^O,rAaJ #f"a. hŷ,!Rk3@)4rX<ùu%nL- ? #FF޴/vwwW1?t{c~4݂FT~`PkYv JO=|l"M3 Ÿy~B8n䩃Y*v8kv~/(jDݓușV7`"K.EYkAgؙXX/&Hʞr(d|jȾgPB(Xz@ϠRBZ@,7}(qMesMe5$)s<%V7%Vb+: .~C. Mܛʎ J\SzSY͈k*{00 CR/5_,]&Q E +1u]v" C}Y*vXEwlO'n.uڝ_unPg!HUtd艽  Z'v8zCO:U,!8U: x3N|W9}EO9W/=IX>WJƼ.RQGހ=bguXVRbrbm@e-U,%8UtoQMAl@K6V.#):q/Q{z$"^fm%~-ֲ" 1C ptTcIY"S)M+KȪv:1T5g?k\2 Կ\o !/D rٿRABC\b{:f-$AZEfvLA>RBn#2+EZ e(P2"=-P}r܆}pE=C#ϵ7BPv=A 5U1Bm_MC9Sz3K';Pdo@RWwf2(](P`[A?t^hXt /S(mK+^?\e**:4{C6=xO^"~?Raݼ= _ۄű,:#4?`XIgjzkLUL %k U%f/@PϹ]'/+XO>&s= XJ>&l7s}5WV45HիPoEVޝs/VYQ?bʻs%_A%*DquX6<ъܥEč!x2Tķ~m+<3č) diR&d)sMe_s+175ϡ eiT0'=3-=)m,K^a,Kūl7Y*HUTĢQ8q6H˝GBsY+XRJtҏm؞ Ss&/UPe/k7cnfا3țY*^ uYdOZ||)V#Jfo2쨵h!o1ekr:N}"KO^س$ۨ%_%hd/IDRv5>ZM)C_b8~kH aI=;@vUB1vѬ"Qʱ) /a!td5񯭪^XZ,+܅,܏ڱ,[MEzo>\44rU}'*|߾y4 W B#^ rݼ:6U/ >9sEZu X}^Y1T/ wZOuw#єegh @#^h^> HLZJdӫ 4qMeekBEj.]@ TSH7qʖSEkDv[kV ˖Tw񝏎kF[Fssh*IF ^v'J'оRIRVVl!-\HKe"-!r/:WH粴ݟW&U)exi+*, d@bYa +*njX "{pY:I3qMe_ިjK- vng2KK@(P(L ?y]9SP>a/ ۖkpӧWKㆠWv4"uh|0rՒsuePKY᷄++MesF5-=Lyo~Z.7/)"UhXoTRAv3K#,+/sńߵ4,4yGofe\7]|Y4ytFZ2(H#֦"g+P]V [/̚NJGRu}pԏaCQ `U*1Q{XQ ,u਋,uWQ,u)Ppix5^W&qB%`Psԯ#!{M\Cڐ e~ J"͡kj\k4UR65iS6n'b47yKܺ+fL\SY9~C~&1h2bI=Noǡπ5h<7ƘL܄VCF^7 cqoiRSЈ!¤jA#y8ڌy&z4J4V% gA~ "sCP.Ұ*KixKU Z>l~Sb4r^%=64q_/\x۰gȌ44rM!ڂ&nY{ϙ_JkiǞVu:tv,ۋwTS,$oE4E][ª?|q3,7$ =|qGJF%C}Q7tQ߄wxݨAoB#A/\1+k4qT(\UZW1(#' .]{V.uY֨Ra"A7!gd2q b# eкH, M\n3 :rkk( ι[ԇtkRORGGST! ԊG~nb|R FKI!Q٦ia¿ݏ<9{eg\ǝM,hf-`=#,b2y~U3v9.̍9~sPhBB-BZVƇx"Kvq7!fl=>Pe-=zl3*C|R(TV10WTŤC$q) SVML&,uS^&RdHַySh *FPMӥ3P?vY*O <{m](}| <{/ KPeU(:#(pCH2qcݔL(YJ2 ~RpF?4bLF h2F~Ի{(PJo`cϡrk(W4=h&=7yG|u畊"oW8./anRLWB6JWWR7\ۀIxyz>^꫑y? N b'Uxu"]?] (`ћ/Q uZ(OB/5?ޚ)zȗ )jB"AܦnnZ-Z64 ?ZՈUj3N]6j&Fg]QSLG%ˏ} ;Phbխ1^ kڮsCK?TϢ#_"w'L'?NHg dsp_RK<+zы 4.A%Ϟ G۔."߫&2OKCj\_6K6c:H~uJ"՗ ,PChؼگ/ M\SRjD,'R!,|ٝ\r?>oKs:&y%5P_&âج`K&P*XPCbcX9=mhՇOzUtCvRDJ)Į3QbׅRÇրLW9=pUMK5}T82]3YoAy%v8R˘dXfUKPK)-Ohk ԇ^U3̷[P~샟ls4[m`[mL:,mQjxߪ:;xGvPsr2k]QgI,4 \iBl}-vqYtT{jM0xt< SSDtj %T3;S9}ttgMܘ@zH'n|oVȪyӞTrS@S $ NAR4K~! G̅T!W77zR!j{ R/_X5%\uLdy 2b-ˉSV,+,Qč"x ߁CFnv+L{;reGNlj~,FOWGgR-T#J>ڱb͗yBIvbP^͋ۗ eSRR :Ǣsz,"ڧU~s7mf0'Mm `5E؋ձc/VG}q VALG˯Bfb; 3hYcFU̪flEoDvUJYhnW"l7bnZY*~ܿ8mCiX7ms|"T5c=] hاϮ5B-|*dI`/6kj׿@KU¶ BPS׸zK=\=D4!fA9b{Prmr!CP<+ Qy%ǎ_k͐ X5f6GiC 6GiC 6Ԯ"ma(҆H"ma(҆H"mHxfRUʖFQ㹗QqeKezAסǪ}J'//|i`w+/c{{@uMΙ379B6(C`/fm5o{ ߷{S( 56:(">Chd7̳[5]̡{d/*N\K'@;_m_ckosaL4nTAdLJAۅӺߓ7Uk7; BpR9niπs>D0C]4|?ws9nׄo鋿K 8]\K{d ξ:2a  ;ƳT?ƳTvnN0>O@ƲT* %( {,1-rC'P;orV40 \B摄[cDo;YvR z8? V GvNET W uIm>%q,`W |0 dB$(o  v:}i<ՒQZ&nll6Q˗jEtAk"2Ś !'LvR7 /J{*QuQ򾏙}q&nA#O &MARfp8x>NkM@mAjl}hȖ=AGͯ%hMPFE` k 7LyȩZCTλN-\_SW,WCfG4yn_vgN7#xj܋QPfD4;yJp8D޽ɗ]Q>tI GQJWbx޵OJbK%C,u:y9"M֧U:S<| JUb   պvye+QXQo6e5UK; ,uV4q ebg#\ū,?kΗqXdCRa1\׶Twl֧-huP"_ DTXṊ6`"rH\Ai0kl R\Z.!UeWvyλ #_[vwOʍ$TT~7ء,NzJFVc/ 0<LC#gsJI^lT"d% *h틭%[9d_ j{/2cP?S}J·)7)W%k=kAsc%X:24,4k.⑅g/Au,~k(LeJQI~fc+_e\R% ՕRU36˝Eg+̹5hY.s E,&T}U ٢/f]O S]qW#K.F΋ GP14(<X}ep><( i24r-7Q\5(T ڡD,$^X?d ?ϐV VLKՆ斒f Q]qTEŃR !iN_c^Dz>n`dKǨlCy (V%;MN;ۅ2O-6<'( KCpJiv}#gםz?aV @X.(LտEKtR?'$t$ {_mGUcD ߈f Ƶ&4,.-ݘݘ1C4r5րah6`~5پOVmO/:Ј#TetwEtyAXNv#?=@"/|5TDP"WDJE9JU!p!aĥV8P z1o+uuz7M(Z;j^6}hi,bǟNYAu:Z]EQ{G͋ofu ¾:X#KS ybe]O>evp ?/ZY*vXQ:w04q7NA7Q!u%sS7)PdRJs+vnt>7E4;"M}w̳PY>uR;=r[ً .vϽ"uu&~N슙M:HeB.H/:w) PīUWl$Uu:f0.,g=p2r;)y+Y6u-@xB#s7^h~ . 1I$a t-h y%7f +BUQ6sXYW1/ڪ$6+0i caIDscYW"LAh ?g"AS0&2$xi"A OQHe]X׾z,:כ4q eJj QrǸ_ dq Qez,-WT\2bRn 0Y8.dJT?Srx[;;~[L6 qrC & Dž@Uv͹X#:'qbU[fD%8UQ?mѩ5n@i)`:u?q9797y^ٶ]Uuޛ_uw-]7BP A:7^"/[~Bt' AP(;nABAAP9>s+Nn{c1s͵\vWF F8#DGʾqd]:I 9|,ADJ|Z: #ا]O]?bER@VςcM*X #)2Uxs(fĞˌ!X):JN1noځZ:ȮAij"uc"q4/#)v؟N M(bK]pWU( `_qԞcvIֿv6iΤe7\ŖlZW:ɳ7Ӂ""]kc CjG++,B Qj*Ĥ[ۿ#PIψY4"&*QR_wvߪ8tQcO6WMkTԘzU}w6Avz.[@aqSzF8M me*v0r%X2/sk@Bѯ]Arܗs W 6@_oH4{VV?"g Quw7w(BC'鮙|܇b7O!Q maBRӔy6vaģPL xAzd~o>mGVV.³2h X؄ґbw5˛_3Pgob[/k Zևrmʪx`Fzɡۨ7jKڳGPέ^&d[WO|ƟpJc,Ufy&ќBݰQY~SK}RZr hZ`h6`lJנ.v ߝRpJOތ=9UT=jǷe.2&\@rw/ J~yV-B[ GV6}@p~C?N0Q-͆lZD d]EXZ`7tU𛴭eEY_m;e.Ŀ4kƉփy5N x8!8#qjޭ3t-Ɖ]V?m8!Hg4nOF@[٤7+Pq#Qq;|6fkZ잆Nϖ7%QrHp_1>X|f| O=نzp>uqj8|Z>=eC[YcbtwTVƘ;y2r e_l9*Qp2ԸpsP,q)s!&HHšr(~3e.DCxLmQ*n#`_:: n Ě4C7  *Ux|{v2#XQs06>0; ź1`YƒuX{2CP=l `+\3$2힅r V}w2um#3\Z]GJEg;P, Q.}_o;+e.`4 9Lu%^x&M==<>{Se>Lx#PZ%XυֽNݻ#&\fB@q#*5`ou̟oC9T ʯ;>7ԁҒ[BI{Jn,5؇PW@F-77\%:*s\kOX_K,kP} ,oac4ziUᓧw]e5Yܥ,]`ؒo͑g4?1=\0%-B4?29QT:Se.1XSe.~CXg`@] e.vmwqxzoPgy^&¿-~C8s}uѹ'`aٴ{,mޅ:B`7⟁7[s_ eM$NYoiϣ<*09U(m,s+aBp*s-a<[ӽtl\h篾O:WN*tR;PBW/u P̟I|$I }N6Od?0ӯ'Pܢ>֔+ڳPU22)W Sn+z\wK|nP9 S4>ߨp %lc#dEaqhiX34נTt*.SsiL@V,?W!ɱ#xBk[Y[!sî2|Jb5畺?BCqF_Is|X9KZӯP7KL`OEEE(q 42vVH֌m$w& 5C'R $EFz,vheKQQb5gv{*v 8,Se.`'e.dIng~}Sۦq<Ϣ3Da(}+vX}+8}+z[W}+1o]M}շojԦܷC;Ȇ7P p)s!Hx?|+OcH1X}'>c8`sG>'p C-s!c>"sxmSnد㻡w{ {h[U GP;HX]p7GS>I7qϛ C,6ǼƔ>pƔKOWY=`r_q79jzi0͌{M{̓I),vS/3^`?ŎWY`Dů8NN4fƽl$yPq`))p5l!m$r,8ϐm7ʀzi͌{VIc 'P_}inpK.$g\Zn̖Q׉Ѽ+gt7do : e.thRӈ5a8^ͺX+Q݂,sT16^Խ P D'$dUxO0" 2?3>|3(  {aC'Tَ4}b22n̸b^*\8CJx%'79rl `v7ABX&85CoBi*~8ܗ@8tk U+d.P@Mxm}0]i} of2=[I&!CٝŎkw?$!v$W2l#cq oZ^mox3^aj 9tAuIOc]rנh0!Wt#k%aQ"V$B:H%P8:'d Bc]rGWL7KءPZ.ZMEg&Wd럅N&`brb$_2t/ҋ:,ܩ̩9il@[YOpgևz?A-v؟MDǛ,2"goWe/ ڜ^N,),ȩ=cTNŪ?z$y67+,C{̛>s o~ PڎCf)E)o~bIy98N\m-<.*^Io A"~? mOʄș1eBbe0AC[Co$kˌ>R<8W{5(|do!r֔ﳴEy ~̗+saTk]yɇdIBmP8 ~,xC"1OwP:e9X^k[ǡoPq@λ9QtF".cb. !7H,y$LA!j;ۘtr0o}.oڲRDR*];ߔ7t'94R^ǽM.U>!4C}Dd?#HPW&T~.Ƭ.)s)] X|q3 ǻaʿy3S[C)=JP2NmCnA]A,k2;HnmDu%!_e} EeNMD\UywJB.!yEƳ6GPצ(V6uɢ4.Tsqhh`-!uzXۚ!+o'$¸^A eG6;f×,o\:sahcmsgߣvG\YzpFm`>v,;G:>v-]G:S~(L]ae_<bgbMC'Y"܇ 8kG+Lubh:=t$[#Ye!愇xY>:PwT؇>yE_d}y.djV0k_Ď˅iLA D5f{<,BI{Lڤ]ՒGnNv e+!_&)s!rϸC5UyVb {J,VV++'I6Q?78P6u0 ajPr(VVCGWP|5X%3CCq*~ r^OfD$[Μ XugD7mĭsO38'nǪ&yqܮH7u|7Sƪf(*EFG_BmeS[v0ު6Q1.".)C'})C WxO Z1/!ہZ:`Ϛ3d9HXf::cUʈٰ2bhrO ^Ǡ)߇:C2!v؃c ǎc(,K'VV;#m槄\BU3E|ԻIcpuPh*V=t45Hhڿp 5fiMnuOEp1[^̅G T >B?K)A ɿ)]<.RC3͝!..Cs]lZkN]!kVVxnRrq8w'} yܟ9Á Vt_•zbǛ1[dG]h++PwG]*}Y R두$p}h++T쪖9KB.C[Y.-՛wuc$'NrbNVm:k21tGc64ij 9DP)bW)ju/xY Glɦ똧 RzCBE`ѶBŮzch+k?7:޶,?1o"܏}afu#XrwB/V[YDlR.Sߗ%K{VVH1!B*Գϡe e\<7n&UnVa$ 7nҡPclj5v_kl %&{P|5LNrxEJt2`I|vjh6NoZ %"yǝtOuA1ad-(wNʀs2R6# w"~M+헍7Cfh6G&PwA=D$נ[ uXywQ`l̓v>[޷[cEh,*n?60c @+.{z̅G6w/b^5C#DVw+s 2l 5<\Y S!4WмVF.'>vT E_枎:c8me*:-Zۨq n+R7jQv\:dq05nc @=Y7Mɿ!(ށ6*0KBFV(}K,mxhb7;l8@ ʻ5:t>͡n$g''sN:=_wC'W;Pˎٟv%PI.PNKome$e'U|[ hmAY V6YwJgOc@{5meS*˖%vr t[٤]j/IK]վ-v鶲]վ5]v/v 9Bt$IGUu!cU%nMW;-:V"҇ծ|G+L \V~nAMk_#nu+CcA^ixyk11[I& / M\dWlREs*}$˖?rUX+(UU+wz4S,w5B߭J 8P~DI*`}'AW#bS(s<ư(HǼ]DE]iE_j O_cK30భ`YZٻ*ȹlFP7 5 dy;ϖyw&ԃ>ibz`)ie*>l;Ca(ߎ[k߄@Q,5\+gGݗI\6E?؄<$lB4/vq(xe]` 0^jE!et A:h? J"d I@ig7u&t]xx4uK*Ca+ס u갻CAތ8F8F8F8F8F8Rm #ӏ\!HF ebYwvz~ ]I4,!q*{jOP}%Z6A9HM`A; sijUxyAxhfRmLu5印ܶsϪ.Qo̭^iZ1?&6<0N[bY4tV:\`j|\Z Tbաtj+dMa{ch+k?XnzMTja)NcOV~A1jR7A&V cޣ]2.-N,/AEP7++R"5{1%IJhIzB2[v3\Q&WtQ}NR8@y==&V6yu)slQlREt>[^H^#mh+Q^ uu_7Fb {\>|Ne.*r(Hˡkʉ̅,"N/34*00W~)(s:`jOR?]B4.f 'Sݲ* ,oBD8ϖ+B;Jq%_ pu W!.#VCQz( @52MW)\%Hj ]\jesR6v DAԪ-$qUzٞ3R ^{>peFmqn:v^O]㗹m$Uo@>(n [Wٷzu5#ޝ{x'dBnNA5DYz4 !n,!$UoLy2?r.s RMgkkuz_dށI !pljI/rF&?eYe̲GGwӝsNus2ɗ0V#FdE'?O=3Ab&ۚF44+hA"hA ڌUUo1V-:Nh5ꂱ R~ N@eYN䣼89R$!Mڽh{c)1c+U3ys!BQێ1?"o(1)ant3ƭ܉MҍhPg}a80>CȫjJŴRxCE/|;fBq\ѿyo';:}&/N@v0WLDN;bIy @VT!: HD{[q'~ &hhppOf2aOnGg ;Q)TBTE RCE5ϘK#wDJJ֪}}| 3th47Pm%T:(N"58HTri.%|ݠ0Oh8+Q&p 3)ᥳ̴SН$˝6 ՙ:8a3HD(F-Jpg ?5}hXϝx=o@"賻]QV;~%O QVa*#)}#C)KDDCRD!"|ОB̝ܕm3H9RFEAG?Js`5s^+aUmsIv(~7CO1 P:sl'z/Igs't𬔯NXx%RM-)Էͳ*%WtlZNmB-3emdtىWVS}UhEЗoMtهTtkǝV%Wu..Ub&J܊,,+-o8U__iPXϳď"茉>Һ/y ?s[Ds'H; 0>$J'aZ$j'# Ã&Vf B5uYVYD6;W-r*EG1\&" c$!P#tЉf-B3V%,xV:~C)f)k Ტ e= @t93jEP3 +CDA&ÌD:fcH&ˌSrHv$ZGJЩ%Y"vDJJgUcA2cZdGNH_X.bF礛.uj.1(٩~t w];[:5w ; 0ץkNF6sV64af[2cJc%;x}䠆; =NF60Q RAOi*lpq}?q/k& l`F.ۓy*M T<U2v&@٨FGs6(Գ^v:&}ɧKjf_ʾ} 7sZj+AYg" GfHj Y~T/jj8]I[ :݇ɢN|mȄ~vKXiNbFD["po$&KԱqÕJfMUsHL10Cձlr HMV$"ee/eRҔE-Z;7UoY[Y8Olani9 Cv1tj~&jZb*se^p`x^&ׂ RZO%Q~) ˊbDMJQ:Ø9*#tELmhpAZ8ЗD|/'ŋx;,] G~6q*jlUB'VZ: 2&3W2m &tY6\5\tTsK iPڀ6.Z1Я$hZ4J^%*YE ǴJ *]s Uʤ"c(vYS~%Q訜F6oLZ4Pcw v}F6U IxP/ESAͯ5`n, s?r%a9Udg" Wz105^U^&JꘓF)g޼]]ᯎr?ɝg^Ty)|3V*}g/!Iϥ%EH#wQCacRx!(JC/VݗGX'Z  C4JAc R)&1/H^QC;^vB3k)]` (QM6:sђyN;dW?DvpG43ADfXO6` K!)e Vݻ&i>QaI㥰ERD,0ʼn28]W. S Yk˗'IʲAh[ O!QsUPm49^lPPzak:C;j= P:XP|˂ShxZϋcF|?XqL?Wq :UPnhOd?} ,<{w®훹0kA`,=NvA0@P8; o{'s'~ <݄},+QE:U*Y+ &Nl;_ATw^#Nש[ OΖ V'r'~PS+§ >Ecg责E6ܴwVkxXn>IՍ\8Q/٩v>xG@.y=48ZP"z Cٸ.+CAh#kRAPI3wb1N3w;º )lj2ndF=y ./%ZsAC}YMN po@))xUbgOh;Pa ؁*J'[&z&P1ϡK1*W'}CERTtyAlJ8!)z1)!z ȚVJ* Bk?5)*{7POBH (9{ rG]Um+cdHdo:~l闂7H)8Vj~Β~ Yk!Uˮ1^ S$md7(>c`)GF_O /I?6=y ɩёysG :qfL=)Ō)T}x?jQ rbpf8i*wZ5E5Pk.AYS@F9dhb}?.+~^8jTKQcXe NYVR͟mC҃1}deņQۋ Fm/6^l0j{abèņQۋ N YgsqKi' [C)Tu'q #?-1(93.Vx,X8wyYS%ۖ^d.p};}m2NkUʪ 7Zduv Vv%{sĠJɈ%s3wg ^B_N0Jşs#SyZ[qG)ֈ#/D7R!ck pԿPZy[=)5KfͧmU+_ՔnӒR}>}o̝؇jx|6L #P&ph~ 2Tr{SԞAi.bG(Pӹۀ [rFv x2ppGyC w< p^0%BOjVDMz3܊ X&ʸ)jfì6<"lAAL?''p?-[YLd~et6P+>B- Bcaz?jioh#Gf #G} -+N  ɵ,'Rq 7)y05sϠysLNpb0O,@}t( EZ\ȝ6ښ uؑ1b\0 uq!h\0rBeʐ&vXsZa쵩u]*xSt&6y!ɾ^ b Q_%SPڨ @p-k/X}*sj@~)$]j50^HD/lBĦ5^߆~vr' ̝uܩŖ`Ks'tv=:QҽvĬa#ХzlǠ`o(\sȚ,p𢞂^SMh1 Fp % 4@ garkcG(=aQROcBjXF;}\t'i0&xhjXDUAsK|Tt.>>GK}P,PH?+'r?H$ϡL.?H*T}ġrzJ2f$AQwBو&MAG"fXU4J[zW\ﱱz\o@=#VpX\B=R00000000]FCYSJƻ͏JC1\ N'[LC 7p)c~fՖbnoȚTF_{@93 Ï@Q; ,u5kN,i`J1R pHO~!@,zϯ'I7Ko'g# =@YSrEVJa˨;"3DjbKR9B4(\󿯜;Zr"i"߆#D덋~K}7_A%JdbW=i*D&BpzH\L&v8]&0.'cH]Y i܉]a)]V_r?LN$?5;!: $vNYI3wK Pz3wB'Ëx!m&z̝ypg! I-!H qnN3!܉1qȝ鳒 9F̝3ƚxVґ;!;IB^iᕬեP{L%II{l}) Ǫ~zl ǒW1       FR8GbMVrQF.VaŋR(˱)n!E!*r,a$Ԅ/-&p!ʝz91aEwucyR?*!lVR U6(Y%DKJnZAVߧ|QCA @d-5VH{P K.d9q0<~ j87Yb랒JT|D}yyќSXq)H IwA!ѷ /柋f/F.hL?w! 2c"[;AwEoN]JE_Rޅ%Ic:6A=XP-q XL5րakU[PzV84e,ˏs'H^ǂ 2J~܉_/K)Ơ%hOO)4nNBig-^U'7s'v^mGE1)㘪R ɆQ3j1ZrY/w𑝨15V$.oL=F?Uw oAy{c.4>RԘD(yO~_ahYh*~ ٛ[PhXiL| U+Y.-k SM_4|?$,EA"dֽd4wBFS찐Gĉ6Rx@zlWF̝x9M/S #we bN^1_ĎbX'JaE}8V3w,`l v8 iezo,Z㟡SEC6'̷F?ǴS04rQUz3 ,S7xp ׳֑=6tEЫY[? u zYx@Y oO='rzIKz7Y #*@;*t=.Dhzw#=ab 8;-^ '`)/QP%pC+C~hP`yns[>>ϵSưh&ubn0| O!:͹41VRF(nDF6/=Ei ڭ&Rn U+Ya.uSM;Y'A<<×)0w"wry"wjor h%S6u+L/@yӿ݅28LdO*Ha#r' 0F"_\l~317)ց?YMs&-5lBJ$DpKŻ6@]i4q]*Us)Fa+Pc-Q7v%p:XHm܅(H S(^OC1.yvl@..0[s'$kUȘgP |$F6.iZ#9}e#YKa&Dm)賽od}Pc/KDP+˶ڸ'U- dCbsHlXVw,ʺ~&=y `Apf_Fa`nHxa$0^l /6GWC.,(w:ET +xnh614 Կ\ _MN,Yxy>?vٻl*wEe[EĐZUP)N!uz&wGO|!}\: Tke3RXEh %kBC$n5D)u$`"@XFRo,n6?I~<*0uÖ?ste-v(-B9AEC~'sP+"~5!؝B=6\'"KaP46) S!+SW&bP(6XC4Wa+YlMGFǠ 8Q 84gϡ˻27d6Mt޺TuڋV_}]}%c##ODJP/IJe[3cD2TlfyS{L>lZh0-F6RTnRѮfƯגƻj' ֢MjGf5/oV~VȚTd-~L!F4ήO/{ Cp=L3s'L hSN(iLC璇1C=owQn? 4,tNN]pԣ} 57 B^@KS+aeV2ћsU%ڐTϯu/+RPOMZJzE.1G4eG p =Ivp5- fHejXQ!g`K]=Zك6GHfזהBR Bd4w~"ײ Sb D^Ҕ>M߿R=TחPM?[0OH"HJn (|^GR| }:HS9İDe;~= |$|*3gh3wbg(u+wW'LqRb1|eȎ*r?>=7?-4 Gտ kO(O @n z0F֔s :R67XSXS)^+-]TjT:FPcz{QRS[;"vϧ5׸ބzH.c\+uR00000Ҭ}IB\\~ш1 V#T^BË͈Y۠l܉oEi Xꪪ* /OZ~@K*aMknj6Zz~_ ۩!(YTZz/wo/q}؋zPyMw5k6 bSb1I\FG{/9}h~$IlXI× w"?%H Ch Cٞaޜ Efa/ Ӎb }dg!Wxu!SHJ6SVZk[hM(YbΟu7FR9FRY*J6.+e9̑MdZ4dRCbe -Weo|BNd_KeZz=p5֑8{ xgk!/cHv.H2:ۢP9}.7PVTjdM]O@%cNHij!)CIyjP^P:EkeG8+yPj8&(.ü?Ej!S0 Ď+ac¦\TV?O- ,nBkPAj~%UתVD5J _W_9Z;t H#^$YϚ}v@!kCjG,<_M 4b[Px>;/|%Xh#p:sP֐*p+ č"~VMLjT|aMN=b/AjkP ;ju Ԍ/2'V1CvWmKc>nVf^r8eJpQظoߗ죯CibվρrP MR3]=((v X-8%B8An,7*oiQ~27rQF61Fbgਗ xjֺA,[4_H[PbXc)xg/۔>sf03$$!z͐ !VBsp I0ގۜ>ncQQQQQQQQQ[E$BE,E+|w]/{MVZ zSO=c׮ڡ7<ۅ Wx `W8 `5$Xy,f<DkSI?7ψQycJF zMCx F=Vxes-}Ɵ"lUhN\h jYL?쳓')BjTpKͦOޔ}>|(`AaL!iz(h[:}4xóZ)}[L {? JTPMaVj+tAwW{^\ a˭ @1e@յH:uknqM U-|&R@8)`jIiw[mvANB9ڍ۔Flp؁JlpUΠ$S뭒"ojZI$j+QK۟Ao#CM,ט3o (( 6el&4[ؔÏlas̿9(H3`u W'eכ4WP!7TKԦoSmh|d^uZ^=oS˫ĽT*qU@=3L:RIjLB6$tjq*J+rX|*(CTzKjkniteڏOP,UbNQ W;[ ʷXQ+U5 &\y#h~iː#fJ 4sHЎ(SЉ4s߁ C365l\nD2[B=h IԍJM~b'IPA_*߉ gʷ2',rMwLeV Z&F]6ջ8nNB37hSeONѦtgiRmJ[=RڈmJSKshmJUKzYuk?i պP5 MChBekhqTEJ^6Eտ"4sc6['5mJ\KAoB3P)b-̍*ڔ~ԹS]L)LB6Xe^r Mu8sÊ*kniAeDbR6BTM$Q(UjTKDEM6ENi6xJT]sPW &/&GD_j3cTJ+R6xX'\& G Ĵ"G귳vDЬ~SDYRwaESrJ'aE#&8r ܧ+S=Ttjo,4sߥv . DjDrMLy򾢝ck(K4ShUۥO+]B Eڵ=eoSn 5jsu -vE*u /}RѦdsI_&k(ڔzd;]©HBbjDgU$jǛzZHtDU$n"ѳ*~%Z>JhORBJ~^03Sh{3 : zbF3X zb6+QDϠAO̷hČfHt lsʈCJ\hČ&DڸV'I(?P/lR ZJ6ANRtK,{zb>#h3*Jm=?7_JL( 't# Ck965%fxM$:A*Hߡ(hrֿ(t5E."ɋ9&Si\oZsApK |MB='Mjsׄ΄΄-M1$lu%lu%l~$؄n:Mm۪l6az%^RĐՕՕU+AVwVwVW]yurW$tjG[ԪQbx@wc}Y7呝<8v6T``Z K{2b/꿻VK+)TnQ5m,HWo1#|j) S[L݁^*P4pOP}1j//ߧ3=Z"$~s!5^ /i3h氇N:eEP" hQBqI R77zj4+A>'d I3s#9[!!zQڊfADz',9s{N<~A5pwShkniVۨG`z^,0X]M Aj{4R"cuoQjxLT1H:ol/uFٔ-K\`9pO'L~߲E-GF¹au.D.4U_6U}beӨ~Ft[f+BS6'R 68{I`&S#1Vk]`> 25Mr0 ,ˆ%D7+7' ÖWH :@j:\cYT;ZT&^R{p05ʗzl1j|J;kk7wL{3Gchᖦ5c cL[;{mA =lyUYyU͏I$C8%RMK%G}I*]zK7Kҝ k۷sy T[@U#k ߭T/J.0 !w0u#s*EbS%41 *^`gx~LU{?L`4S=syoj U͏ ;TQ2ppp?B'fڅZ1=B S*!ϐ>f,L}3H &4ѕVEZW嗕&04szKB_j.qUsa_B3P5Pꭵo"8 :\e"(RW1cg'ϑAd *rHX!GoeFN*Sbu**X >P23wy_jKg=5}K{${/=V// %3RưgP<(@&:8P} ,U+2X"Tv,,*YGZlͷ^&4YP#1~Ϡk(I6Ks/CC6\V~W5S~waP9MhŒ)3UoAT5oj[ڣ_'%:m|]r&te'Gژ0G5ًA.߆k24LɧL5eӺեS~?<:,rags]/qCNE.X^65cNj, HkJmM9U78 m"zܿ#IiM$5Ʉ>Z)< 2 [.eEtTtVI2+~-L~JLԞs^41%J!7N0rӺaeBA. ╹,*ad̽At x#O+OSOkRT jGd&MΞ< LA)Fe/򘬖-y2؄&T-Bن ᆋ\~?û~+fx}g^oCb=M?JVd޻E(^},/įy!~/n{TfbF߁KQb{C4\]pG8v50>RA=~z-Г;\Mj:Jĥ.곸aV4,ajڢI\2jz'[NgΓ PqLaԇ _ rkTi( cJ*w1hmJ6xqj6E MT4@b՛/ Sn+ }BƩ%tW~2Щ#~U=(à/#%nàqpAby JF.gr/x%B:~~0|!ˀI,̍vj?B14sΕPo*N~:\{KnssW !{HNtM36R t@t*V|ßJIv/Oؘ|登*㧛ԕ~:*Eπ1.y5EbǪrܐoJ'4s Mj'r5H7 MǺ((caHl^J~5B:2Uwl%͈JQ ?[rGR6#)oВuH B /,Ɓa(5-v8Դ6foE6-@X}j'ɺX@_Eu[h)2Zag)d6ґG:Ȧ).ё/Sv$ۻDG$ ۀt$࢔d,"핔Yuj󒪝˟#񚿅 DnM!@ez? "Ƚ |INH>RxS55HKĄp 8߄E.pf4\8WP<(jbWupԣ= NizN]C#ĻH1C"]w"AcŶg>G+)1-xh{Xc*F"= m [Č1H4юYչ4urE8 [b8[bF93s : zb:q;Xj 9{$s8MG̍(*xpJ׎7qכ"EŃ^8Ix-suQephVb#WuEȅ5bBլSR[1|.PUw%O\C_/ 5Ʌwsj^5} /6*r}_ 9FROItsIlr@4i W_֝7jzWq4(ց}$eЀdMU/ I(wjSG}v"^CI-XoJѵap঳_NNz 9G,J|Mţm#W#0o1L`?}Ӆ/&:N?$c E.|K^..0WuiQ_텢 rŸ"/ #oaW Ԧ9%,l.41-B3@CFyTSz K ـ&kGU&^t]1^iE,,SM dS4Ze`mA9Ҝ"A*ebZ %i l&ʯ?miʼnF8K 29cBTm#gCS(*mTM otgu蛶+G>MC^ ct h¿GNڠ1'"um2$4s{FCL]tVӼ{\dqIɧ~N#~}q,t'­ji ~&"4˫i!}P@OQ zŃw|iK0QRy S O\>a[ÔW`1*ZV|# qJO=$琸wL`˅kC E-U)E._TZo{ ^AQa+(yThA7=߳I3hFg ႂTj=Gvj. 'ysI0e`P(i.u_~^Uٿԋ6-Thz' -#nM}ii 0a„ fR}Ǧ.;~v^+P]Xzȅ4V_1 06 BZ>Y!ݧ E.DSȧgfSE.` -io,lSߢtAKa&f1FT]K|e_Q0,q{C?otBtv#.&U7+V;/rmJ!HbXÇmo0%-\:76:'Yґ",m/?-jnz)](M6֞YJ"~aD]fjUջ]j۹)v{]I)3 [g-}㻍fnxW@fCt%ڔ01@ g~.%px3$a74}$:L_u:g$|6т!=h9Au (45c1lS(tgūoEA;ŏ<_2ڡR74_bhp U_XҰmOJBfu!? &Ev}U{q A:KxSX :tB_"mrT+DtC$~)1_"ڵQ⟁ >/a?U+}(bπu?%~hY6beUx wP(rU1%Zo6X{RBq˅M 3${E `(~ŎpڡԲ`ղ^pPoVs l` [AMgKzaES*Kzh踺.\! o5]1B}E.5D 8 "6ej}fcȅ!Q2s,sq/~ys-?8KMŮ[g\^fbX'b(r!ϑE/3bhc_kbg~mD͑nJz*QN [AASb\1/58Nޅ+3E.9e9 {CqQ)yRB~q/3$3RC1.6DŽ/ -#Psxȅl#^pv,}RBwdL7NR߆b\l7/mp(8c_LrD.zYtBŸ }P3~ȅy{PV7)%?x!rq%q*^IpQEzHb?g&+cb7Mp\C-u<^ \xSdp=4=eu3@))`rI UzqsHT 5f\Hx䢗E, 3߃R/bGU/xc>ԫ5\NHv%` \OvW7l?/r.p*/U Z?>K?ܐ@v):paE7VJ _enXj(چSn)4ѭ_#V84 ݂&\V?o;[EO,L#^fnXѦ7LNGQ7bPǰTר\~K’,&{9(Uʷ {w$_}4EN(^,/ˢЄsr}s ڵ&Us`SH_8*_,pW#(hjR/f,i5pbj>u܅VRIdyF`A[F?B6`:U-\}Fۡ{EýħO>3ŶrJ&M *J,lZn(ww}P7`'R? e!#(NuTyXX5*czuE.|Z&p &2CIRw1|j k"8~_G=ǂFK˄NmT?hvSwGڹ|%hJdOvvlEHv͟z`Z1t "O &7 QB!)FNƄ")^_7W6V8c BB7A~)=2%=^BV+MPT؃t²6^@}m=(<*x v ,v X5L J](~`?QI(VVa7PpǬ簝P7| v "p_ߦC@@N\:ߺx&^(7+ fU 0CI.1pWK?lyC)`۹G{ $ΟDf)^߅b[p"~(v4F~]p s̍()sCS!?!%Bh\s66ȣ9 slb"B{Y{XB|8BX nvZv pП]'ކ>`+?L^db'bUx p /q .CC⸻E,hqgOM:/ݟ1K3[FnFk(ڔnE+tFm Kb:&vmZC5DÎ@5D-q9qpvhyhP!֎ԍ*OV/C3!z-5\kyx#vXވ_%~%F{{9C[_t/p:mhJn%\}@KB}%j$H(G/ -oaX8Q1(e; N.p C˲ f/X]:ğ3*4s+APп-#BQ3"$/B3PO?o^ކU߆aPT4;vAeCC_BTU7=^Ԋ&pWWLr݄]^h{u|]L;;t [! - (E3FP6/|xPBKxDUR-|y[)!틩 ᘂrm#]:KpWx}TuK-qj=o?ў/ŖР~j).X@ $[\ W-p݇=QF.bAy_3,u'tj/[hU%}CˇrD CFabW,~J} ?7NnX! GDÈ(0k  ?x !H96TV *4sCvPw~4N@i%j% 4؍z#ia]_w&y&/l& UEGJ3mwUx}^X ?pSL*>5BTuZ7 4s=o+R s OPb*yi_٩WAQ]5`9!~ :>*Y2+~fW5(fˬ}pݴPm8-3 53j=PjM=zٺ?bCEU}T\}ݶG&kooY+lMIl!%.K<.~3bo8?!.r>?7OcK>(%n hN(01 ;{ GBX WiD5 Uj(K?egol!E׀RUL_EG |r*:g;-FeZ*NaCVvnk:S1CC}M 0([}dK #fPr+hl\[n4߶g7=^ulaEg%CRYA37h1S\wPW{foNKCBֵ:ς˛Wf;U+ :1S<:?<(r=oFXk1H K:hfwdsI"s2$Sf0UqDoCScL֦:srjGf-s\c3s qm?4 4x'Xn9J3hwއf{;&*%}O^sKWTky\C&c[UܰYƷ[+»Ha/S&µ ӰW4$إ?KZ-z-US eco\<qe1C #ؕ!F뙼kp"TSLb8g??=j?AkpzY e ,`4(-7Z_y10>CVmK-낆"脅x·&a&YfnXg5pL?lԗe`55pU lc?3hr, M>0_žV?5~\!ϡu` 7Q)y԰| }x)Htx0|z8f~ѻ'To"€%Pԭb2y%!o Ot 'HM$׊_qr_ sϡ퇋\l'p\mp+=q;[2Ƌ][}a!DW-$au~?b}Oy@6Lz*ʔZTuZ/VY4Y-_3-5 13PT惞%a G5knI1!po,ޔ$rZF{'<*Uj˭NDĄ0_3a{ȅɉOp8h8[ln8]u`0 ~Io!iLXd^pJbˋ ? tE 7}]v;& PTon vU;ihO+T&74P گ_C n2] .ee(Ӗ58$Fo =I&g/sL)J jx4\1dC,z1F84$42V04D N) 2|ؘ1մ;EgV'2(2Xj"zխ eZdBLlC*xо0S.C+ѠVR\g>nLFr EW1סvZ*370+h%j1G?BZr3(b璡$OlO31ej;8I V8܊HqV$8|)jhbWMZhDk%J4&>4Lb!Hm %JF|1ߢla7ŭ)` M ؇2ߛDY! ŭ*܊IqV(x~D<%Y`E?>Z_/Aq+vXnůw+~ N#@&vX&N ėPլh "}?|B3d PaUf.,~R+ݫ^t,vrfd;.;ك I,Lf_^ Z jUHx}$/I$x)a'~}*wr.,y 4]jِZV'Z&Q1ʹ=9aU 2rF4JD^l j;[#P 1']Nz'f!I^B+ЫRۄVJTњ2]>)h%ju/r@-m07L*b5Hqܶxm:)]l Xŏw2ʠ .FX7t\mr.a|/7br#(#$; ,7⵩_-ܻwD3!3q( ; F.s4%]p>Q?XNx]vOC9sOMԒX|M @$oLJ$RC`xͬh.[iNF]+~ol~˖i(Fe>Oe_ӞB[Q&"Љ J864p |*- bGU/l1Je;o % `E~ 2Ua_LX톔&jWP Nm[Vj U~bؠ* vU.+ѠV]Nk \i7Pk&VMb }>$l0QJRMoEGX+l;^f?%`9q;{9KؘyX8QlVVG?9-0UD5(+PO6 eP`0$bͮNVl>NF[M:O)f`kJ5ŷ*4i$9n }XT:?HJgؚ♞SyM&)D<<3#0U6]7oBus)HN3Ǒ͞Kb^&q u(?|uN19m3˽uK\{Oc:tyo:hP9)ԧf@n9#ٝ G:~}Ŀ)ҽ^7#yδ,q]ԆM!Mwintı: ̞&3[ ;,#=&*1ބ>yHbފ=/[<cIz ċ[W }} N0dB›H]wX!7%H?D- #:Nj*(va7C!p@6ɛ^XBQMbq8wy*fG(b/^0BrYν_&BP{ cy-83' (u O پ[H.Cwo{5K,ow Vl#WV(vlP:]O轢"\ 2z3UE8O>U{׾sRl,t?#C$9#tt37s)/Bg|oN.=(=VFRg$>L?˳P;vVjGʓlD&ۂ&v`V6Y# 1bmCd?l hv$bW՝ꂺjI,vΊC]lvBCSѨ|Vwű5z;wMe셺I;1ЇCI,DAD͌-]$. .~3;MXّRKX(֧ l{b˦m9Z&x5o{Aݐ&X~&ivcT?#C BԱoEԞɊ-o%6(- Nq?~X VEPRA1'ǀKCah%zUJ4QղJiG/ih=% h%j3fWak<H>`^& j'D&W! l21sRսg$Yk Z4幤qWPf-F|w{6ī uVA k_ :Ů;$NW%NNI{ÝPm~S|F*-~/wpЮ? Cî٢'4|uNbw#:O*>`.X{5vd Xcy ^*D *TE驨Sp jZ.P6J(ߤoBN6mB %=`E>c:/I*\i[<(Y-ÑmKbakF'p;DN\>zmv"_yC$uw|sJG/`1*'PaŶ`+}1SMb!_5t/͜}[2^Ď/)^g]OX2 l#qo:p=%Q)G/F~oun 3J;VA* ԚHXH/h!Т9C *vXA+\\kQJT@]F>Ğ ۑ {KNsuWިɡxEWD_#C+}_E: ! N D76}׮D֠h3J44vX݃WOJ-LA+cVJTfuv jU((U^8ѴpԊ[}V^Zϼ9Q+JTܜUz݋kh4hGIʽOq@5UO%Vs'J@ h'{ KsdB62m%2N2B>~C^@eկyhP-لpeJ{ 9^I:젋}5MkPV4) ߅V܊W!pcil[,;S[})vy?bkr+~4nǐ?V܊Ji3P܊[K)v|[r+~3noCq+vXnx!#(nŞ˭@~ ŭؖ^?V|[{lcl]Ϡb'gQ/nUģP6bem?Q>M{}[E̊_u*}C'4}שDOY]N&ԒX2'p"7|53VPm>P9uC5beQS !@S^V!J{SJ4zQل v-`[Iba{t_i V]Ɖti%aWt#zP QsdMY$. v{&*orJbc8Eqe?~ԊWh>A+9>bݏ~yW[P8gv$_jg1uP!vXwX)v. ;TƇ=NۃF%sP^K]|+}\2A }pЂ v{̈́I$w34AɁ[M:N.VUwR\:p6݁Z>\?LqVx:LC9`59`5W1 <a#x Q36WE꟯|dw?MJs'=nam:h{ܓE 8eyY- eF65 ь☠81pLV͘6e< )}eĉKtW[^|M:wM8xΆXtVsfttf߻adh`(cPWoWXD)h9od]$dck&VrT/p==fabJ<"~!hL܏~׼w.~ ,% Ż-`y޻pw=AScbY/L!IM,#L Qc$X㞔A6~Oz ^݀>(#{=ڐ+I,X4'56hklgVˌGmua=}9{{l{$ X+7'R mlMV!VafZq*$}~ F0DZ}J jaՎK1r=`w{WPwbYmcwDU^b[o?2jր5ϥ5p_!U(n.D{|-Zn&` /eٽMH52Xw(n7!WH83YՌbq MϚ poGvI,;䆒X:9;.&щPX]vOH\u(NHBMT9>04#zᝐ$z"0e0JB98Sנ+, *hbUE+XG+r؄Iuœ$Fٓ$z1$`w zB垤H'&?GxheR܁VAJ{- z]#uzWjH@tw؇V!AN>849 ]Nx:D$Pg2SMdv@%T(7h&=z"_h0N:q"oEfl{V|^RԾ?)'ʴ"ض'I,^ A3_HP hr3VMbkvC&wc GdJ7;'2oBԊWm_~QML~ˤU–i~ r DU=ZǼ3hnZ .*٭C[m55g}1CMy2zvd #rsR}6|cCNNgȍd-~(u(4MNsϺqs\:NRi!rP;XcZͦ,- Qn8rsR}6I=43NRiFӿ %rCm>2zvd#rsR}[rK @JVPҙj:40KH%@ȍd-CIg~D97پSͲH)Z.Fnj@>2;!-mdfd?tA$r'Rv=Jg@ȍd;V:CI3`>7x@e.G֟.olgӅNgȍd?]?t@ L(҇F!%6tJ#73]? uh~(҇F!PQҹI+冭Tlhsls?9(rsR}&[: [*H}B3t뇒J#7K "zV(e=;2 őugn9>--cY4r#?J:5hQɍBD~OJ#73J:ӃԬ|۸:gi>-E:#45P14r3m$p,w>4s~'RVyKg .Fn0W${8QG,7BqLm9>G-(kh`F>$7 Q%~hTybgk o&l u<Nn9>-~hԽ:Tg`vΪ\UZ񶬢uxړ #&$ YrqZL]/DQM5J ܆("h@JfzG=/D^)^쿠.fepC:mYD97cґ,:tHG*\a.7lb{~giAοx6-Aqd-w1''?QsNaL遹-C݇F^n]ysP{NfY~!Q->?^&}?ZŜˀzcǚzZ@+Kn_^i&Sm (ޓr-~)tZV@G/~λύR&Wsۥk+@mՃ9zr˥v]zk(ߏ7KJg^Y[-5iݶ5)YgoIì}09Z粼- f*K+5sm9Rv,rK7>+IxaԾo/2$p$4hnQV[Θ:/M>:,$J $5$355XSfXr,8Be<^r3(yݮ 3 9YX%2Bf*OqPiw~`uC̒2%ba4]Xspǔ?Up&I, j732LW.E[ne-Tnf/eOYt#I_@VES[&F(`e ѱo}-(D4O׫$, -XCͷ@)@*R*HE{i<X6V! HPC2!E\&pL [ڠ/@]#]CІmrмH5lTX@;9f&V %  Y/P9r Π뵍R9t/Af"7R1X* [tTQ& jV7M @MLdy-$(d,ܲ1merĹ0فIE <׍$4}ߔY7%Dg . L IMfKy4/(nM҃66@V^Ǚ+-:y"F:C`AB&>Mb!OSR%[#LAKB3uA3ԃN4qSXLdyNI+|[9قo}$΅ jz~ `Y50Zw y j%!HRR8m!:Fұ y6!ǭ>дNXPk]pAM N$ @gr1Baj2!ϑ&n0X-j=hA`AO.]ԒXYj/\yo ],sJJTժ̂,ޏt+T& .uۄ~hKg|Y>*4ԇ*u@8 utNRU58s[fЗr%z՜iN(:"azl'vܼ ·栁ߑȍdw9J*ܜa.7,3|Ze?YAqF~9>76ԳiLY4r#F!>g̘tFn$[3W?T\nBbwk, l,LBqn9> [٢yJ#72`nbdLk.̬t{4pBp7Q~KsN}#Fn0F؎hSAf٦ rő.\~olpY]^'Pn4r#F!ƾg̘tFn$3W?V(79l#qR\*<\nbWkMf٦R(Y.zhIg@ȍd/߳iC'J*HS?tꇒJ#7K/C]WX?Bf.@}]i|sWzOn,S8+mAE-_jJ`W/}׽-ӗ024<-EcECm25>Rzn-5gYRGIM/}D tqKJݙyIioB~}L6# &Jowc,Qn25囙i&{8ֿWoa _ݽ!C"ʛju#I,h-0gMNQ\9C6{"p"y C\CGH&B(K?s * XC`Ad!bof"$t!;{?-okl 9IIGHV%eՌTQ@ jy @@Ldy4M}j.B&jRSAkoҼ)f\[Pm\v$|3!S8KMYPGX@-T3,@U$.C\ʦ:7<IJޜ!`tT&|3!<ͤOp{ldMҎĥcSjZMނXPMB&Gf-4RC 'iC!NljBd&B5 3uS#j>KŦQ޷us$iuZ:f")Midb:+s-Tvr /P$ ~I'x Ig)T|^sLfV:m\P}sfH'F'P14r#&nB:PRiFqPRi kPMb3U9d*wt sUN& b·zOPTr{o.S˘AJl3$}ze@OE߽(*TQ@ j" $|3!Yn3{DPS xwDh*4" 6yto%(]-*v(]VF<-a"5بy VSV4!4gr$4O}v$I1֡ƧM$΅ z(, Ѝ) j732Y43>a_ F5ߪE&(,{duM IVN$i:Ky⫐f4Z| lA+ѓb[4 @k BƑvZGi;Ou%BHQ) j!qAM @f&Bt\kI|剠XZ_[Sl IG|jloM]=EXPB#5xof"$5i_Q,O<5\~>C3t^v|o}G:Ph:m\PG|J5MDUJUYN:m^0j864n& _P:w;~{Q֡R8Tp>\[ˬ囯|6BucI,6y/7e](ʡg4;S,vMQd/ŜT˥A ۸: cz$νN{n$JI*W:8D ?*>JU @P$* @T8A 0/L?ڊ>JΔ5V^ezzz:ڻ✦;bPf93&+ á6;>>)>ÿ;*ճs%zTN33Drpe^}m>>(iOOPpWuNZOB64K{aoCgȼx{bA&2/XoKzh5N.7S ,y-,yMs^ʿj0½X?Z?U%+~_Gz޵~fi?+ܮ+V6Kа Fo_81E; ++ C2 xBT1&v"O[r~rn`C #1w TALfsX0 x, 1o@ R$ґi1H,ŦrΠ&@P9}?{CjhQ&M 8* Igӑ"YmhQ|u~/t9qifH.36e^!b]Yq_yPG|}R|hpWuNoRbA%tj[3==ne^]`zVoBH!;Hqpw\P[(`M #GN*HDHQFzT@*iAEXZɖXl[sz+YhbR^Q&,aGr{錒Y"R9eƚX!֐& ϊ!dj44WۇszcY#%!͓[74QgP!u4aEN/7mOG5a|~ǟ 7Ӈd|=@?3OʆSx^w6p݇a| h\CoBsɭ-Bne#NY %&uYr2gb7T>D VL!|BwvՄYμRgn6n ;PO(LuЕ(Tk8AMDsІSE- bF)jRKЫ }E63'%]~#Tl $<@ Nw;i2/lщ I/ʜ COagn8ž!a+*Z?j1Cl78U%o֖Ջف5wEaU/iKQ:]z:KL;dܺ*4r3gёͿV%@RI43#$*؜xϩ4bZFۇsV-A(Yͩo$4ܼo!H[d$B# Xy&ղ,$(0kryT"$OR/M~oe @&&SΠHЄreԠY9=EC#chBE4 _/@7^Njo ֿ$v@GDXɵ v&f=s}n} : \B3rb]W/NﱺӉyCq?GW#.UJƾu5qyJ$O3/~Zտ(yЪ3h܃Z}UZ5WMY?47!`A(Rh)BF"%,:&tjhB6Vu-m8?jB/0n>M!:^]]a6R*Ұk\KDvWjS&'3/-T/cRxq;b[ʃK.\ Tl׫j ᗡXwaU3٭uk>ή ۭ5ELnߐzZՓ#aBXEhCc6CTc1(^ЩNW$tzOt:W^,Op=N(jNAλomf86m6 w{5hغ-F!O̍j>\n1X %7(04I]4y!*%_q[[}lq%ţRZA Ya5r5(VY¸*84̋ߝ U*B߳)y[NRf얡3Y7L(ԗLr'3 9{ŵ%rRDO㱛nl%CRkPәB" *TE<+l%ZLWfɮpU-dAk؅Dl'gZ9=gX*Y,Tu~@_wMHtתOwקU.a:y5UsPpCnBrkog GP4D!/ \U}IW|5Txm =#ֶm+ڀ*l\6=Ǭf7PzثT`C:=$> T5S7m MST6S|^kjڽYצU?n\]e9.XMtr5UD!{P/dp1c >R>C6'`A\GRjsTr ݪ'XTuh)GA*ɄՆ򂜛 /? }/>Xqș ,;}JjUU6$&bHr"Ʊe]ZBf+GQV.,ᩰ^$ FC(ppNbMe^ HY-tm[q]dd T$ ɑ YFR!h,S . !H&. T!Q3@b$1͡2M,]jݥ*LA?PrP~"@WNXȗ&(5-:K S)RUaIk:U)RۺQn1YG# %q ^18 8\φBTlHg8VC:GJ?I|Y8kuf #jL[,:4(ef{VV,"d"hQ7.vPrBaH8y*K3;]Rj+ ZoJ?m~C Ů%ZVUiN4iͩ{޵M)E鰦t݄ڧϢШj%,-Ei,JgQ:)AAnLvP{]X, }T6w T R9 't{g^"&2/l,kfa_.BQd:N˄SX*LϤ%w;26VobHPK|"UB6$0uZ2]Aԥp:}~#1;Yh/"o1<] Xk괔fɆ):-VD;&[ =m純[liJ3ȱ7Ȫ {#X*Y=O^*xgm_- B/BP<2䔧8sul֡n\> >4h bIcs"OY:%OO!|$(+mbw/e $&Dce]6ZVuN@U/c+U+IyraH #f}HUb~6܇:+] glK:-[}tZJ\K.?i=G : ZQGdŪd 5lxb'3/@\ abv/. B͕̋U1IWڸ2ݑRݸp j^aaVݣ 7axG" \nĊX{ZTZ)2/,:~la(MtAm& gN#{sO&)OvŸuf^ۛA—NK&sRnw\!^VBwd1@O/Iǐ DZu\,򓩅hb_Qkס ԩ\N~J{WbuH.fmA_WD֧/Fϗ}-#intG.M1.\|vε뼔~Q!WD7Se|k|ʮzë\z>8y!7\ '2/@2[2Ox|SN|gV? Buk,'*NDσ_ X B.A~b.Q+T3A6M2 ML Sˤڀc nĂn@-Gkv޵jAp3ԯ%:"ګw ?(7qKгEnwyZԛ(@=u3;i+c m#N*nRsCu4M#y2I*Ozd:ѽ8$X!G"K+B${PUЉ+hÍ(vuh̋-̋UnlO3Qŏ'cYu-<?gyE}ZNqbcgxQ4 L%*xJX{Vdokcv۝,Ԃ̼مoX⤽[Co>\ ʏDD43mLgn>5 K,0"+\W.C:V91}qDg%K)NBKډk v+s ۂ TT9!̏ @ sGDZLQ>ދB]-a0m4la&P{԰kq$|O֟?[·o jC s)pM~x0&)^ @n!І<4{)hbz {M㱘- GsEojºm:_ !_T ZBOL'5g^Uޏ_ 6i]QRg^lY ^Cz"O=KVccdj u G`3A$HuD "A]҃Ǚ.%F\ ߼v܇j+ 梓E!C 8" " S.|5mWB!f]MJ25'GL#ݭͰ=P ]-'3/T%,iWd>$41M\c&T,@.@nLj6<J3O ZL¦PT1upa7]GA,US(ᨃbC׬2NtxpAgL ,XR''qR(@<l/yiNFSTrfL)_> ﯸϨP@mI `A5Nv0 U;A-% mf^+͏$BvI#ef_@-Ic[-5ƒAhw|"24aOw n `#\p _H۟DT'DB3ERj"& S.ov=yMfEaRb5ےz+ t>kpuf6}2$O"@x;˧uUr|.p#PXS+qrz86Vs-mdѲ_؅v#a+|%~NuKa-D0ƣ'Vo._jwh3qƝޝo;MsFfC Ƹoj-J@c~A?ڮw2/Vwg3ë60]A,!+F2<5^ Ƅț3 FHIlf֣ zJg +D )U=]nj@ºn >źlX(e APo$Hp'W\I6K0BWI!B"%=dAcbރX7h/Z77Ve^""xx?-vX [ʍؕx /mcNe^Ud(I&2/D/e.eCS`EQ.QX+ep+6/vww$XſXKq41 Ŭ؇2+~6ǣYOvܠMh5ujjךs3ՋO*]OO  8]EW!}< v uӔri x]%Xur$^UK.zHWqkZv5Ε+akb5ҽ7Q(mF`51OQ6CTܮ':O3XB?~h-+SNAd.S?g}K'd\>)dFfkuBLii<]q6KI, OE%XF]* `=͕%`1\se~Tc|bMhϠ 7WP Z<[q~!eb2/`~J *ϒTldKyRD [J"*qPԌ+BDU G.,,Yn>=@g^_0x2ɲ.`.0|lLwX[=s}h}.֋515(IW :}]:=zr)o~uEu,b=L] lvֱݧf^:2LYqPmh֩V݌Gbp/bU>H:B~˘ zb5 (I~LaL$]Gg~V#Gأ&6k`rk'oEnk2̋`RN%f8pfSh+@%G@^. %^WRAĔDRA(x]?r ((?wb5-̜bI}TC.=ʼުÀ6}1I`(~ݰYMvXUϪGh~b0UY[|>A/X$?Npy;ow۽Q5Y;¾Ӗ 93_TGf^*=\owֺuG=TL73/VOmD{˝.n/?2=h> L3;jgP>52sLN{S >\*$#h5ckM2b&݇8Vp*CTp-v["ݦXH8`PLqUS /1BЄ7 CR3b$uk>8&W5(9VWgrmcu.&%Q\.ԩcS/"_}| ("vXQpk=Ԛ{ XX >y*ű=y B)ػ*YqVSԾɦ)Zo_k;XF3uWЩcpc}om+[4S%JJt#97G/nL׊FupcfȬ| ,2Mi2MgPyFІ9Z88F@nB@\ Z#߾}. DQ4S!H>5H^סtUCϼxJ+vIbxRf<S @S TAdFT- &.}rRV,boA/AeLK"x,cw[D?/&13/*p;b&"&#}&Ƌih³'֡!^M&Ԓ *[QSϼ]ı.t&* =&ϒ)rxb0 hc w kħPBg5Aˏ}85Oo=$֛WuRwƜ7 i|{y-v~7Bb '"Jx> mNe?|\L7\S%Ek1!(bgN'ee)L*xQNS8~r'&pRۗৠ̋WxHJ!wqS P.b}=Qvb(~.+Meֲ}&|A4KH $7QЛYJaya LyAS+.~rʤS砉>DPn43/VA ̼xu@i.K5f^ n*3<&* jE_/tqKQ.4QD74T_񉰊%^9I?_CLcC-H4(PB/ E>XV:1P:눽 Dz , `_+J t_BT(Ta0e~8fW`%&Wp̩}6oD۷#;=Q3cT:rھeD+Psyj[i[=x gP6@Dl߄*'1{!8Pq3جC pD=D}(9}.h">~@aXJ1qn &N{BW5~kEZmKdZK<> WF}:*WEY/ >P*YWdPrzuQJePQJ6Q6 8(J%lN/ɍBx$4/GyqT5 i<mx |w1||P>KcP#bW5؉0AgN^q"BqW|cYC2+~&f/C#KD[Prw `ZcC pMFkTINLwd~Lێ֛ ܃7.>`̋_6[{XZL}[5=JfֶZ,|wLmN7l;0j:bA(Wp <]^qFXSpKvZ Q1Ź,ʪ)˪Z3(Q>5 XkQ慔MAp(U'ǧP`uE߻qNe(Vr<*~2݈]H 4-bM"đaDG`ڇ%.Quu7*ڇ}Sa['SPb.!b. m,+u([/@ѮVa,@^`y/^>,6aPscЄQ+q"+(wbwB3Q橐.(jb{̋˳s#=Ѩt嘯 /ie[PEW1FDc%WN~ Jת-MZ~ +ҏ˞W ЛHr`E`=5WOϲZz %lb#WMH) =B&~ MV3f4,!ҝ2_& 2}2e]ݤL/N &S^'iuTfa2[-sCI.VW7QWOb3O"^_zb9MlWqfn![:N}(uT쎭rl%TƩP"*vX_8mOK3 !b5 $lgbWdXzU]1uUf?_K.zG9᪜XG~(+W+a.?7\SF(4ˢ>:mFQ*ChbFcQ-jq+(ey :>4]h5u>̓߻e|O/x ӭuN`j7(M[0mc2$\՚ *M~:PJMo }ddůնTDc J+CKg2o+ 6+z OAPL@Oz-&*M(G}`)K^Aoxm~BW<]߄Zϼ=>yoQVJ-vOr dCo0~Ū5yDRa# B%jgT;{U2|\v.jLA!X pԫU%|X2>!,PkC0s1lkͼ"2KkhS[JB̀r14) Q! B#ɓ $ ?62+j P.bΩ/@jbWfsj|nFBE6\SJfĪmfM(.\NE,bW%?1b;>&F$;.*%vͤe懢%xI{T`w&:zL.2/~!xeu5jP6Kh!⟁L4Jb7G3P̈r<ق O2/~v\g*vX2>Bv~ywe^\Gf >:GIUviR7C}^&Qg3/p7ڏZ7UߺcT=}P&di+Pآь_!w=ߐ:v#y̼k4pYanq:ۇn?ŎkkLd~55Py-{_ZHU9G|ۆy|XV]joQV~?~t' [W0|X]Bآ?]TAY֠v|r?b,)?2VߍPcW^7+;ĠZx!qe w{xqec.~mҋ4*}sιE\a| E@@ +X1lV '$$! o$$ IH@ V #F F@ +bŊ׷!TԙsN>*xTӀMǶG!Ms_#lu A]{>gM{S̊H WO=m!wH$x o >f|i{d:2',l0&VSH vȻc Rk)8ˋhRPb,HeEgy$c ѤM&D,#䳼p vpMzH) ]m x*y̟!cLERPT%(2j1FAM<%mm#NC03˾gHFHL>!$י#nQf(HRDNX#xtio̪r#? *| -­n#Ô<)4n> NBl--Pg h2ۍ!Sh 'UlO9fuԒ#m; {6TX(#sԬU,wc+SgU~3+DDR?Rf۽ce+H#pd6z_Qd75݄̱kPmD5 ?IGWx6 xĪ)Y[Ms @u](L#{Y8}ȤQ,KNЋIdELQP΍bܸOeWErcwB殑L 8`_ѰR]V"N((ϭ\PrϹU*y2c_֨bۈp.f DĂ ;C ʼӧ䞼{GU䝺sϖ,Dg">RP"F9`C|juI獝4SKukZd͜0HE Ԃzx_n//[D2 Ckm7lKͿ<W彰Lȶ{X Q#8 -53EOKxM.|y>NN# cuo^}UmhYDޭނd A^pZW#=dĎ.hY.5pGD԰)JᭇT6*wq!b0I]1FcԐBE/^vXԷh{$ *v^!n6E[f *2&5 ñ#OEV| W5;Ǚg4(7rH62Pt$d]xϑ?y'bIJҾ7H{jnWjz,#qJpZ}EW_?!|2)d(GEC>f?2YeRZCa hu8sfVѲ}.D[{I-νS.SN9W?Ivrkvr:WVs۲Lԟ+z:*k{SD-5ﶕS5N-]R7ׯL!+zj[ZLIB pxorZTT~OQIQ񠢇hdEEE[)%&)J .}z骳7gs1|ERj1ZmIhb?L X'8"T:O4(5ܠ {J(fx/7cWx{Kڸ/>SDGFq6GRx"}gIxEVKT}&16Z&)}# >E>)q[<m>URX񌫘ߡ zڈPo3V=4II`X*6|.)8f0%+)01L` hcO ]q a3h ϐ^ b mI 7x3?SjC73?$ (%$-Ǹ xlI a8 ?GOцS}y6?AaX@ϕXF>))Ea F$m'5Lq/(&џpH' P* b'8Fvvpc\62_()9 ׸I%pE6Іzf1elKJ X6IKJXvpQYR:6mDRrX 6ϖ, la'h&pSh#s$%qJ5pD2Іzf1eIJKX&qcJJulbhFmV\5цS}q'667F06ƤOqQLb('1TߑzO>M;81. wxFp_φ޷n޿>|wU\r;<`)bܿ1 >N;7irf|nd=6v|.T6܇ hC_}ѷȀGbsDWXe{6]رshcqT]{C ,)62>S-yoI60@;Ve,ƚrWQ.~H`z^ZζcL}6fomGr_?Lp?%E﫻$h#/oLPm?RR26%) ceͲXHR66r?@8fF5~zbFz^ݑncVIo,Xrp@јp,Y~M0}  x <sܯ.`[s '7az}WzrzVIq?48>ܗޗs?1Is,`[eDZC|5v1u?N;8 5>²KJ8AE1Uc89. WXz 7t<)8&0i`{8' |Y_#X.q{<Ro(fu7t}ǃ^g8 f0y,`q{<`(KX G$bcs%D?X>ц|qegzNhÞ/wbAiwfGanf{8*G叛^\oT+6ʔaN/ݺݵ6^~@ǡ0/}C_9zU{?ͧ߿ϵ\'^NsT"]3$};dž#׋3E]cw̚r[5;*Ɇ |GbwʘrS-;H_bwH-DIo.qwȲP؈T$-b OVI1Kڨ3mWa#B;lo O]>wȲ b7NYO 7.Yqmo#~W[Z`۟ h'@?hc$e fIc;ljB,1[|wMm