From d744c0c6d9a557bbaa2a23571ffb3acabf19c35a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Tue, 20 Jul 2021 16:25:36 +0200 Subject: [PATCH] chore: move docs to separate repository --- docs/README.md | 3 + docs/contributing.md | 81 -- docs/contributing/architecture.md | 64 - docs/contributing/building_from_source.md | 104 -- docs/contributing/development_tools.md | 69 -- docs/contributing/profiling.md | 1094 ----------------- docs/contributing/release_schedule.md | 35 - docs/contributing/style_guide.md | 360 ------ docs/contributing/web_platform_tests.md | 133 -- docs/embedding_deno.md | 11 - docs/examples.md | 23 - docs/examples/fetch_data.md | 58 - docs/examples/file_server.md | 63 - docs/examples/file_system_events.md | 40 - docs/examples/hello_world.md | 79 -- docs/examples/http_server.md | 88 -- docs/examples/import_export.md | 120 -- docs/examples/manage_dependencies.md | 73 -- docs/examples/module_metadata.md | 68 - docs/examples/os_signals.md | 83 -- docs/examples/read_write_files.md | 108 -- docs/examples/subprocess.md | 99 -- docs/examples/tcp_echo.md | 47 - docs/examples/unix_cat.md | 36 - docs/getting_started.md | 12 - .../getting_started/command_line_interface.md | 145 --- docs/getting_started/debugging_your_code.md | 145 --- docs/getting_started/first_steps.md | 146 --- docs/getting_started/installation.md | 92 -- docs/getting_started/permissions.md | 96 -- .../getting_started/setup_your_environment.md | 329 ----- docs/getting_started/typescript.md | 4 - docs/getting_started/webassembly.md | 43 - docs/help.md | 18 - docs/images/debugger1.jpg | Bin 5532 -> 0 bytes docs/images/debugger2.jpg | Bin 130599 -> 0 bytes docs/images/debugger3.jpg | Bin 108836 -> 0 bytes docs/images/debugger4.jpg | Bin 114528 -> 0 bytes docs/images/debugger5.jpg | Bin 151098 -> 0 bytes docs/images/debugger7.jpg | Bin 113573 -> 0 bytes docs/images/deno3.png | Bin 17540 -> 0 bytes docs/images/private-github-new-token.png | Bin 67173 -> 0 bytes docs/images/private-github-token-display.png | Bin 32634 -> 0 bytes docs/images/private-pat.png | Bin 11359 -> 0 bytes docs/introduction.md | 73 -- docs/linking_to_external_code.md | 110 -- docs/linking_to_external_code/import_maps.md | 53 - .../integrity_checking.md | 85 -- docs/linking_to_external_code/private.md | 75 -- docs/linking_to_external_code/proxies.md | 9 - .../reloading_modules.md | 33 - docs/npm_nodejs.md | 59 - docs/npm_nodejs/cdns.md | 186 --- docs/npm_nodejs/faqs.md | 55 - docs/npm_nodejs/import_maps.md | 112 -- docs/npm_nodejs/std_node.md | 100 -- docs/runtime.md | 25 - docs/runtime/compiler_apis.md | 4 - docs/runtime/http_server_apis.md | 258 ---- docs/runtime/location_api.md | 76 -- docs/runtime/permission_apis.md | 186 --- docs/runtime/program_lifecycle.md | 79 -- docs/runtime/stability.md | 32 - docs/runtime/web_platform_apis.md | 97 -- docs/runtime/web_storage_api.md | 39 - docs/runtime/workers.md | 251 ---- docs/schemas/module-graph.json | 116 -- docs/standard_library.md | 76 -- docs/testing.md | 169 --- docs/testing/assertions.md | 263 ---- docs/testing/coverage.md | 36 - docs/testing/documentation.md | 39 - docs/testing/sanitizers.md | 69 -- docs/toc.json | 120 -- docs/tools.md | 14 - docs/tools/bundler.md | 51 - docs/tools/compiler.md | 36 - docs/tools/dependency_inspector.md | 74 -- docs/tools/documentation_generator.md | 31 - docs/tools/formatter.md | 29 - docs/tools/linter.md | 150 --- docs/tools/repl.md | 52 - docs/tools/script_installer.md | 90 -- docs/typescript.md | 10 - docs/typescript/configuration.md | 206 ---- docs/typescript/faqs.md | 136 -- docs/typescript/migration.md | 71 -- docs/typescript/overview.md | 159 --- docs/typescript/runtime.md | 270 ---- docs/typescript/types.md | 290 ----- 90 files changed, 3 insertions(+), 8520 deletions(-) create mode 100644 docs/README.md delete mode 100644 docs/contributing.md delete mode 100644 docs/contributing/architecture.md delete mode 100644 docs/contributing/building_from_source.md delete mode 100644 docs/contributing/development_tools.md delete mode 100644 docs/contributing/profiling.md delete mode 100644 docs/contributing/release_schedule.md delete mode 100644 docs/contributing/style_guide.md delete mode 100644 docs/contributing/web_platform_tests.md delete mode 100644 docs/embedding_deno.md delete mode 100644 docs/examples.md delete mode 100644 docs/examples/fetch_data.md delete mode 100644 docs/examples/file_server.md delete mode 100644 docs/examples/file_system_events.md delete mode 100644 docs/examples/hello_world.md delete mode 100644 docs/examples/http_server.md delete mode 100644 docs/examples/import_export.md delete mode 100644 docs/examples/manage_dependencies.md delete mode 100644 docs/examples/module_metadata.md delete mode 100644 docs/examples/os_signals.md delete mode 100644 docs/examples/read_write_files.md delete mode 100644 docs/examples/subprocess.md delete mode 100644 docs/examples/tcp_echo.md delete mode 100644 docs/examples/unix_cat.md delete mode 100644 docs/getting_started.md delete mode 100644 docs/getting_started/command_line_interface.md delete mode 100644 docs/getting_started/debugging_your_code.md delete mode 100644 docs/getting_started/first_steps.md delete mode 100644 docs/getting_started/installation.md delete mode 100644 docs/getting_started/permissions.md delete mode 100644 docs/getting_started/setup_your_environment.md delete mode 100644 docs/getting_started/typescript.md delete mode 100644 docs/getting_started/webassembly.md delete mode 100644 docs/help.md delete mode 100644 docs/images/debugger1.jpg delete mode 100644 docs/images/debugger2.jpg delete mode 100644 docs/images/debugger3.jpg delete mode 100644 docs/images/debugger4.jpg delete mode 100644 docs/images/debugger5.jpg delete mode 100644 docs/images/debugger7.jpg delete mode 100644 docs/images/deno3.png delete mode 100644 docs/images/private-github-new-token.png delete mode 100644 docs/images/private-github-token-display.png delete mode 100644 docs/images/private-pat.png delete mode 100644 docs/introduction.md delete mode 100644 docs/linking_to_external_code.md delete mode 100644 docs/linking_to_external_code/import_maps.md delete mode 100644 docs/linking_to_external_code/integrity_checking.md delete mode 100644 docs/linking_to_external_code/private.md delete mode 100644 docs/linking_to_external_code/proxies.md delete mode 100644 docs/linking_to_external_code/reloading_modules.md delete mode 100644 docs/npm_nodejs.md delete mode 100644 docs/npm_nodejs/cdns.md delete mode 100644 docs/npm_nodejs/faqs.md delete mode 100644 docs/npm_nodejs/import_maps.md delete mode 100644 docs/npm_nodejs/std_node.md delete mode 100644 docs/runtime.md delete mode 100644 docs/runtime/compiler_apis.md delete mode 100644 docs/runtime/http_server_apis.md delete mode 100644 docs/runtime/location_api.md delete mode 100644 docs/runtime/permission_apis.md delete mode 100644 docs/runtime/program_lifecycle.md delete mode 100644 docs/runtime/stability.md delete mode 100644 docs/runtime/web_platform_apis.md delete mode 100644 docs/runtime/web_storage_api.md delete mode 100644 docs/runtime/workers.md delete mode 100644 docs/schemas/module-graph.json delete mode 100644 docs/standard_library.md delete mode 100644 docs/testing.md delete mode 100644 docs/testing/assertions.md delete mode 100644 docs/testing/coverage.md delete mode 100644 docs/testing/documentation.md delete mode 100644 docs/testing/sanitizers.md delete mode 100644 docs/toc.json delete mode 100644 docs/tools.md delete mode 100644 docs/tools/bundler.md delete mode 100644 docs/tools/compiler.md delete mode 100644 docs/tools/dependency_inspector.md delete mode 100644 docs/tools/documentation_generator.md delete mode 100644 docs/tools/formatter.md delete mode 100644 docs/tools/linter.md delete mode 100644 docs/tools/repl.md delete mode 100644 docs/tools/script_installer.md delete mode 100644 docs/typescript.md delete mode 100644 docs/typescript/configuration.md delete mode 100644 docs/typescript/faqs.md delete mode 100644 docs/typescript/migration.md delete mode 100644 docs/typescript/overview.md delete mode 100644 docs/typescript/runtime.md delete mode 100644 docs/typescript/types.md diff --git a/docs/README.md b/docs/README.md new file mode 100644 index 0000000000..9c52673a93 --- /dev/null +++ b/docs/README.md @@ -0,0 +1,3 @@ +Documentation is available at: https://deno.land/manual + +Documentation repository is at: https://github.com/denoland/manual diff --git a/docs/contributing.md b/docs/contributing.md deleted file mode 100644 index 0ede5055cf..0000000000 --- a/docs/contributing.md +++ /dev/null @@ -1,81 +0,0 @@ -# Contributing - -- Read the [style guide](./contributing/style_guide.md). - -- Please don't make [the benchmarks](https://deno.land/benchmarks) worse. - -- Ask for help in the [community chat room](https://discord.gg/deno). - -- If you are going to work on an issue, mention so in the issue comments - _before_ you start working on the issue. - -- If you are going to work on a new feature, create an issue and discuss with - other contributors _before_ you start working on the feature. - -- Please be professional in the forums. We follow - [Rust's code of conduct](https://www.rust-lang.org/policies/code-of-conduct) - (CoC). Have a problem? Email ry@tinyclouds.org. - -## Development - -Instructions on how to build from source can be found -[here](./contributing/building_from_source.md). - -## Submitting a Pull Request - -Before submitting, please make sure the following is done: - -1. Give the PR a descriptive title. - -Examples of good PR title: - -- fix(std/http): Fix race condition in server -- docs(console): Update docstrings -- feat(doc): Handle nested re-exports - -Examples of bad PR title: - -- fix #7123 -- update docs -- fix bugs - -2. Ensure there is a related issue and it is referenced in the PR text. -3. Ensure there are tests that cover the changes. -4. Ensure `cargo test` passes. -5. Ensure `./tools/format.js` passes without changing files. -6. Ensure `./tools/lint.js` passes. - -## Adding Ops (aka bindings) - -We are very concerned about making mistakes when adding new APIs. When adding an -Op to Deno, the counterpart interfaces on other platforms should be researched. -Please list how this functionality is done in Go, Node, Rust, and Python. - -As an example, see how `Deno.rename()` was proposed and added in -[PR #671](https://github.com/denoland/deno/pull/671). - -## Releases - -Summary of the changes from previous releases can be found -[here](https://github.com/denoland/deno/releases). - -## Documenting APIs - -It is important to document public APIs and we want to do that inline with the -code. This helps ensure that code and documentation are tightly coupled -together. - -### Utilize JSDoc - -All publicly exposed APIs and types, both via the `deno` module as well as the -global/`window` namespace should have JSDoc documentation. This documentation is -parsed and available to the TypeScript compiler, and therefore easy to provide -further downstream. JSDoc blocks come just prior to the statement they apply to -and are denoted by a leading `/**` before terminating with a `*/`. For example: - -```ts -/** A simple JSDoc comment */ -export const FOO = "foo"; -``` - -Find more at: https://jsdoc.app/ diff --git a/docs/contributing/architecture.md b/docs/contributing/architecture.md deleted file mode 100644 index e1416a3659..0000000000 --- a/docs/contributing/architecture.md +++ /dev/null @@ -1,64 +0,0 @@ -## Internal details - -### Deno and Linux analogy - -| **Linux** | **Deno** | -| ------------------------------: | :------------------------------------------- | -| Processes | Web Workers | -| Syscalls | Ops | -| File descriptors (fd) | [Resource ids (rid)](architecture#resources) | -| Scheduler | Tokio | -| Userland: libc++ / glib / boost | https://deno.land/std/ | -| /proc/\$\$/stat | [Deno.metrics()](architecture#metrics) | -| man pages | deno types | - -#### Resources - -Resources (AKA `rid`) are Deno's version of file descriptors. They are integer -values used to refer to open files, sockets, and other concepts. For testing it -would be good to be able to query the system for how many open resources there -are. - -```ts -console.log(Deno.resources()); -// { 0: "stdin", 1: "stdout", 2: "stderr" } -Deno.close(0); -console.log(Deno.resources()); -// { 1: "stdout", 2: "stderr" } -``` - -#### Metrics - -Metrics is Deno's internal counter for various statistics. - -```shell -> console.table(Deno.metrics()) -┌─────────────────────────┬───────────┐ -│ (idx) │ Values │ -├─────────────────────────┼───────────┤ -│ opsDispatched │ 9 │ -│ opsDispatchedSync │ 0 │ -│ opsDispatchedAsync │ 0 │ -│ opsDispatchedAsyncUnref │ 0 │ -│ opsCompleted │ 9 │ -│ opsCompletedSync │ 0 │ -│ opsCompletedAsync │ 0 │ -│ opsCompletedAsyncUnref │ 0 │ -│ bytesSentControl │ 504 │ -│ bytesSentData │ 0 │ -│ bytesReceived │ 856 │ -└─────────────────────────┴───────────┘ -``` - -### Schematic diagram - -![architectural schematic](https://deno.land/images/schematic_v0.2.png) - -### Conference - -- Ryan Dahl. (May 27, 2020). - [An interesting case with Deno](https://www.youtube.com/watch?v=1b7FoBwxc7E). - Deno Israel. -- Bartek Iwańczuk. (Oct 6, 2020). - [Deno internals - how modern JS/TS runtime is - built](https://www.youtube.com/watch?v=AOvg_GbnsbA&t=35m13s). Paris Deno. diff --git a/docs/contributing/building_from_source.md b/docs/contributing/building_from_source.md deleted file mode 100644 index b02a650fc8..0000000000 --- a/docs/contributing/building_from_source.md +++ /dev/null @@ -1,104 +0,0 @@ -## Building from source - -Below are instructions on how to build Deno from source. If you just want to use -Deno you can download a prebuilt executable (more information in the -`Getting Started` chapter). - -### Cloning the Repository - -Clone on Linux or Mac: - -```shell -git clone --recurse-submodules https://github.com/denoland/deno.git -``` - -Extra steps for Windows users: - -1. [Enable "Developer Mode"](https://www.google.com/search?q=windows+enable+developer+mode) - (otherwise symlinks would require administrator privileges). -2. Make sure you are using git version 2.19.2.windows.1 or newer. -3. Set `core.symlinks=true` before the checkout: - ```shell - git config --global core.symlinks true - git clone --recurse-submodules https://github.com/denoland/deno.git - ``` - -### Prerequisites - -> Deno requires the progressively latest stable release of Rust. Deno does not -> support the Rust nightlies. - -[Update or Install Rust](https://www.rust-lang.org/tools/install). Check that -Rust installed/updated correctly: - -``` -rustc -V -cargo -V -``` - -### Building Deno - -The easiest way to build Deno is by using a precompiled version of V8: - -``` -cargo build -vv -``` - -However if you want to build Deno and V8 from source code: - -``` -V8_FROM_SOURCE=1 cargo build -vv -``` - -When building V8 from source, there are more dependencies: - -[Python 3](https://www.python.org/downloads) for running WPT tests. Ensure that -a suffix-less `python`/`python.exe` exists in your `PATH` and it refers to -Python 3. - -For Linux users glib-2.0 development files must also be installed. (On Ubuntu, -run `apt install libglib2.0-dev`.) - -Mac users must have Command Line Tools installed. -([XCode](https://developer.apple.com/xcode/) already includes CLT. Run -`xcode-select --install` to install it without XCode.) - -For Windows users: - -1. Get [VS Community 2019](https://www.visualstudio.com/downloads/) with - "Desktop development with C++" toolkit and make sure to select the following - required tools listed below along with all C++ tools. - - - Visual C++ tools for CMake - - Windows 10 SDK (10.0.17763.0) - - Testing tools core features - Build Tools - - Visual C++ ATL for x86 and x64 - - Visual C++ MFC for x86 and x64 - - C++/CLI support - - VC++ 2015.3 v14.00 (v140) toolset for desktop - -2. Enable "Debugging Tools for Windows". Go to "Control Panel" → "Programs" → - "Programs and Features" → Select "Windows Software Development Kit - Windows - 10" → "Change" → "Change" → Check "Debugging Tools For Windows" → "Change" → - "Finish". Or use: - [Debugging Tools for Windows](https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/) - (Notice: it will download the files, you should install - `X64 Debuggers And Tools-x64_en-us.msi` file manually.) - -See [rusty_v8's README](https://github.com/denoland/rusty_v8) for more details -about the V8 build. - -### Building - -Build with Cargo: - -```shell -# Build: -cargo build -vv - -# Build errors? Ensure you have latest main and try building again, or if that doesn't work try: -cargo clean && cargo build -vv - -# Run: -./target/debug/deno run cli/tests/002_hello.ts -``` diff --git a/docs/contributing/development_tools.md b/docs/contributing/development_tools.md deleted file mode 100644 index 5059284674..0000000000 --- a/docs/contributing/development_tools.md +++ /dev/null @@ -1,69 +0,0 @@ -## Testing and Tools - -### Tests - -Test `deno`: - -```shell -# Run the whole suite: -cargo test - -# Only test cli/tests/unit/: -cargo test js_unit_tests -``` - -Test `std/`: - -```shell -cargo test std_tests -``` - -### Lint and format - -Lint the code: - -```shell -deno run -A --unstable ./tools/lint.js -``` - -Format the code: - -```shell -deno run -A --unstable ./tools/format.js -``` - -### Continuous Benchmarks - -See our benchmarks [over here](https://deno.land/benchmarks) - -The benchmark chart supposes -https://github.com/denoland/benchmark_data/blob/gh-pages/data.json has the type -`BenchmarkData[]` where `BenchmarkData` is defined like the below: - -```ts -interface ExecTimeData { - mean: number; - stddev: number; - user: number; - system: number; - min: number; - max: number; -} - -interface BenchmarkData { - created_at: string; - sha1: string; - benchmark: { - [key: string]: ExecTimeData; - }; - binarySizeData: { - [key: string]: number; - }; - threadCountData: { - [key: string]: number; - }; - syscallCountData: { - [key: string]: number; - }; -} -``` diff --git a/docs/contributing/profiling.md b/docs/contributing/profiling.md deleted file mode 100644 index 1aa1554b68..0000000000 --- a/docs/contributing/profiling.md +++ /dev/null @@ -1,1094 +0,0 @@ -### Profiling - -### Perf profiling: - -Tools that can be used to generate/ visualise perf results: - -- flamegraph-rs (https://github.com/flamegraph-rs/flamegraph) -- flamescope (https://github.com/Netflix/flamescope) - -Example using perf on `micro_bench_ops` and visualising using flamescope: - -```sh -# build `examples/micro_bench_ops` -cargo build --release --example micro_bench_ops - -# run `examples/micro_bench_ops` using perf -sudo perf record -F 49 -a -g -- ./target/release/examples/micro_bench_ops -sudo perf script --header > micro_bench_ops_perf - -# now open the file using flamescope -``` - -Example running `deno_tcp.ts` in combination with flamegraph (`script.sh`): - -```sh -sudo flamegraph -o flamegraph.svg target/debug/deno run --allow-net cli/bench/deno_tcp.ts & -sleep 1 -./third_party/prebuilt/linux64/wrk http://localhost:4500/ -sleep 1 -kill `pgrep perf` -``` - -### v8 profiling: - -Example using v8 profiling on `micro_bench_ops`: - -```sh -# build `examples/micro_bench_ops` -cargo build --release --example micro_bench_ops - -# run `examples/micro_bench_ops` -./target/release/examples/micro_bench_ops --prof -``` - -Example using v8 profiling on `deno_tcp.ts`: - -```sh -# build `deno` -cargo build --release - -# run `deno_tcp.ts` -./target/release/deno --v8-flags=--prof --allow-net cli/bench/deno_tcp.ts & -sleep 1 -./third_party/prebuilt/linux64/wrk http://localhost:4500/ -sleep 1 -kill `pgrep deno` -``` - -V8 will write a file in the current directory that looks like this: -`isolate-0x7fad98242400-v8.log`. To examine this file: - -```sh -node --prof-process isolate-0x7fad98242400-v8.log > prof.log -``` - -`prof.log` will contain information about tick distribution of different calls. - -To view the log with Web UI, generate JSON file of the log: - -Open `rusty_v8/v8/tools/profview/index.html` in your browser, and select -`prof.json` to view the distribution graphically. - -Useful V8 flags during profiling: - -- --prof -- --log-internal-timer-events -- --log-timer-events -- --track-gc -- --log-source-code -- --track-gc-object-stats - -To learn more about profiling, check out the following links: - -- [https://v8.dev/docs/profile](https://v8.dev/docs/profile) - -### Debugging with LLDB - -To debug the deno binary, we can use `rust-lldb`. It should come with `rustc` -and is a wrapper around LLDB. - -```shell -$ rust-lldb -- ./target/debug/deno run --allow-net tests/http_bench.ts -# On macOS, you might get warnings like -# `ImportError: cannot import name _remove_dead_weakref` -# In that case, use system python by setting PATH, e.g. -# PATH=/System/Library/Frameworks/Python.framework/Versions/2.7/bin:$PATH -(lldb) command script import "/Users/kevinqian/.rustup/toolchains/1.36.0-x86_64-apple-darwin/lib/rustlib/etc/lldb_rust_formatters.py" -(lldb) type summary add --no-value --python-function lldb_rust_formatters.print_val -x ".*" --category Rust -(lldb) type category enable Rust -(lldb) target create "../deno/target/debug/deno" -Current executable set to '../deno/target/debug/deno' (x86_64). -(lldb) settings set -- target.run-args "tests/http_bench.ts" "--allow-net" -(lldb) b op_start -(lldb) r -``` - -### V8 flags - -V8 has many many internal command-line flags: - -```shell -$ deno run --v8-flags=--help _ -SSE3=1 SSSE3=1 SSE4_1=1 SSE4_2=1 SAHF=1 AVX=1 FMA3=1 BMI1=1 BMI2=1 LZCNT=1 POPCNT=1 ATOM=0 -Synopsis: - shell [options] [--shell] [...] - d8 [options] [-e ] [--shell] [[--module] ...] - - -e execute a string in V8 - --shell run an interactive JavaScript shell - --module execute a file as a JavaScript module - -Note: the --module option is implicitly enabled for *.mjs files. - -The following syntax for options is accepted (both '-' and '--' are ok): - --flag (bool flags only) - --no-flag (bool flags only) - --flag=value (non-bool flags only, no spaces around '=') - --flag value (non-bool flags only) - -- (captures all remaining args in JavaScript) - -Options: - --use-strict (enforce strict mode) - type: bool default: false - --es-staging (enable test-worthy harmony features (for internal use only)) - type: bool default: false - --harmony (enable all completed harmony features) - type: bool default: false - --harmony-shipping (enable all shipped harmony features) - type: bool default: true - --harmony-regexp-sequence (enable "RegExp Unicode sequence properties" (in progress)) - type: bool default: false - --harmony-weak-refs-with-cleanup-some (enable "harmony weak references with FinalizationRegistry.prototype.cleanupSome" (in progress)) - type: bool default: false - --harmony-regexp-match-indices (enable "harmony regexp match indices" (in progress)) - type: bool default: false - --harmony-top-level-await (enable "harmony top level await") - type: bool default: false - --harmony-namespace-exports (enable "harmony namespace exports (export * as foo from 'bar')") - type: bool default: true - --harmony-sharedarraybuffer (enable "harmony sharedarraybuffer") - type: bool default: true - --harmony-import-meta (enable "harmony import.meta property") - type: bool default: true - --harmony-dynamic-import (enable "harmony dynamic import") - type: bool default: true - --harmony-promise-all-settled (enable "harmony Promise.allSettled") - type: bool default: true - --harmony-promise-any (enable "harmony Promise.any") - type: bool default: true - --harmony-private-methods (enable "harmony private methods in class literals") - type: bool default: true - --harmony-weak-refs (enable "harmony weak references") - type: bool default: true - --harmony-string-replaceall (enable "harmony String.prototype.replaceAll") - type: bool default: true - --harmony-logical-assignment (enable "harmony logical assignment") - type: bool default: true - --lite-mode (enables trade-off of performance for memory savings) - type: bool default: false - --future (Implies all staged features that we want to ship in the not-too-far future) - type: bool default: false - --assert-types (generate runtime type assertions to test the typer) - type: bool default: false - --allocation-site-pretenuring (pretenure with allocation sites) - type: bool default: true - --page-promotion (promote pages based on utilization) - type: bool default: true - --always-promote-young-mc (always promote young objects during mark-compact) - type: bool default: true - --page-promotion-threshold (min percentage of live bytes on a page to enable fast evacuation) - type: int default: 70 - --trace-pretenuring (trace pretenuring decisions of HAllocate instructions) - type: bool default: false - --trace-pretenuring-statistics (trace allocation site pretenuring statistics) - type: bool default: false - --track-fields (track fields with only smi values) - type: bool default: true - --track-double-fields (track fields with double values) - type: bool default: true - --track-heap-object-fields (track fields with heap values) - type: bool default: true - --track-computed-fields (track computed boilerplate fields) - type: bool default: true - --track-field-types (track field types) - type: bool default: true - --trace-block-coverage (trace collected block coverage information) - type: bool default: false - --trace-protector-invalidation (trace protector cell invalidations) - type: bool default: false - --feedback-normalization (feed back normalization to constructors) - type: bool default: false - --enable-one-shot-optimization (Enable size optimizations for the code that will only be executed once) - type: bool default: false - --unbox-double-arrays (automatically unbox arrays of doubles) - type: bool default: true - --interrupt-budget (interrupt budget which should be used for the profiler counter) - type: int default: 147456 - --jitless (Disable runtime allocation of executable memory.) - type: bool default: false - --use-ic (use inline caching) - type: bool default: true - --budget-for-feedback-vector-allocation (The budget in amount of bytecode executed by a function before we decide to allocate feedback vectors) - type: int default: 1024 - --lazy-feedback-allocation (Allocate feedback vectors lazily) - type: bool default: true - --ignition-elide-noneffectful-bytecodes (elide bytecodes which won't have any external effect) - type: bool default: true - --ignition-reo (use ignition register equivalence optimizer) - type: bool default: true - --ignition-filter-expression-positions (filter expression positions before the bytecode pipeline) - type: bool default: true - --ignition-share-named-property-feedback (share feedback slots when loading the same named property from the same object) - type: bool default: true - --print-bytecode (print bytecode generated by ignition interpreter) - type: bool default: false - --enable-lazy-source-positions (skip generating source positions during initial compile but regenerate when actually required) - type: bool default: true - --stress-lazy-source-positions (collect lazy source positions immediately after lazy compile) - type: bool default: false - --print-bytecode-filter (filter for selecting which functions to print bytecode) - type: string default: * - --trace-ignition-codegen (trace the codegen of ignition interpreter bytecode handlers) - type: bool default: false - --trace-ignition-dispatches (traces the dispatches to bytecode handlers by the ignition interpreter) - type: bool default: false - --trace-ignition-dispatches-output-file (the file to which the bytecode handler dispatch table is written (by default, the table is not written to a file)) - type: string default: nullptr - --fast-math (faster (but maybe less accurate) math functions) - type: bool default: true - --trace-track-allocation-sites (trace the tracking of allocation sites) - type: bool default: false - --trace-migration (trace object migration) - type: bool default: false - --trace-generalization (trace map generalization) - type: bool default: false - --turboprop (enable experimental turboprop mid-tier compiler.) - type: bool default: false - --concurrent-recompilation (optimizing hot functions asynchronously on a separate thread) - type: bool default: true - --trace-concurrent-recompilation (track concurrent recompilation) - type: bool default: false - --concurrent-recompilation-queue-length (the length of the concurrent compilation queue) - type: int default: 8 - --concurrent-recompilation-delay (artificial compilation delay in ms) - type: int default: 0 - --block-concurrent-recompilation (block queued jobs until released) - type: bool default: false - --concurrent-inlining (run optimizing compiler's inlining phase on a separate thread) - type: bool default: false - --max-serializer-nesting (maximum levels for nesting child serializers) - type: int default: 25 - --trace-heap-broker-verbose (trace the heap broker verbosely (all reports)) - type: bool default: false - --trace-heap-broker-memory (trace the heap broker memory (refs analysis and zone numbers)) - type: bool default: false - --trace-heap-broker (trace the heap broker (reports on missing data only)) - type: bool default: false - --stress-runs (number of stress runs) - type: int default: 0 - --deopt-every-n-times (deoptimize every n times a deopt point is passed) - type: int default: 0 - --print-deopt-stress (print number of possible deopt points) - type: bool default: false - --opt (use adaptive optimizations) - type: bool default: true - --turbo-sp-frame-access (use stack pointer-relative access to frame wherever possible) - type: bool default: false - --turbo-control-flow-aware-allocation (consider control flow while allocating registers) - type: bool default: true - --turbo-filter (optimization filter for TurboFan compiler) - type: string default: * - --trace-turbo (trace generated TurboFan IR) - type: bool default: false - --trace-turbo-path (directory to dump generated TurboFan IR to) - type: string default: nullptr - --trace-turbo-filter (filter for tracing turbofan compilation) - type: string default: * - --trace-turbo-graph (trace generated TurboFan graphs) - type: bool default: false - --trace-turbo-scheduled (trace TurboFan IR with schedule) - type: bool default: false - --trace-turbo-cfg-file (trace turbo cfg graph (for C1 visualizer) to a given file name) - type: string default: nullptr - --trace-turbo-types (trace TurboFan's types) - type: bool default: true - --trace-turbo-scheduler (trace TurboFan's scheduler) - type: bool default: false - --trace-turbo-reduction (trace TurboFan's various reducers) - type: bool default: false - --trace-turbo-trimming (trace TurboFan's graph trimmer) - type: bool default: false - --trace-turbo-jt (trace TurboFan's jump threading) - type: bool default: false - --trace-turbo-ceq (trace TurboFan's control equivalence) - type: bool default: false - --trace-turbo-loop (trace TurboFan's loop optimizations) - type: bool default: false - --trace-turbo-alloc (trace TurboFan's register allocator) - type: bool default: false - --trace-all-uses (trace all use positions) - type: bool default: false - --trace-representation (trace representation types) - type: bool default: false - --turbo-verify (verify TurboFan graphs at each phase) - type: bool default: false - --turbo-verify-machine-graph (verify TurboFan machine graph before instruction selection) - type: string default: nullptr - --trace-verify-csa (trace code stubs verification) - type: bool default: false - --csa-trap-on-node (trigger break point when a node with given id is created in given stub. The format is: StubName,NodeId) - type: string default: nullptr - --turbo-stats (print TurboFan statistics) - type: bool default: false - --turbo-stats-nvp (print TurboFan statistics in machine-readable format) - type: bool default: false - --turbo-stats-wasm (print TurboFan statistics of wasm compilations) - type: bool default: false - --turbo-splitting (split nodes during scheduling in TurboFan) - type: bool default: true - --function-context-specialization (enable function context specialization in TurboFan) - type: bool default: false - --turbo-inlining (enable inlining in TurboFan) - type: bool default: true - --max-inlined-bytecode-size (maximum size of bytecode for a single inlining) - type: int default: 500 - --max-inlined-bytecode-size-cumulative (maximum cumulative size of bytecode considered for inlining) - type: int default: 1000 - --max-inlined-bytecode-size-absolute (maximum cumulative size of bytecode considered for inlining) - type: int default: 5000 - --reserve-inline-budget-scale-factor (maximum cumulative size of bytecode considered for inlining) - type: float default: 1.2 - --max-inlined-bytecode-size-small (maximum size of bytecode considered for small function inlining) - type: int default: 30 - --max-optimized-bytecode-size (maximum bytecode size to be considered for optimization; too high values may cause the compiler to hit (release) assertions) - type: int default: 61440 - --min-inlining-frequency (minimum frequency for inlining) - type: float default: 0.15 - --polymorphic-inlining (polymorphic inlining) - type: bool default: true - --stress-inline (set high thresholds for inlining to inline as much as possible) - type: bool default: false - --trace-turbo-inlining (trace TurboFan inlining) - type: bool default: false - --turbo-inline-array-builtins (inline array builtins in TurboFan code) - type: bool default: true - --use-osr (use on-stack replacement) - type: bool default: true - --trace-osr (trace on-stack replacement) - type: bool default: false - --analyze-environment-liveness (analyze liveness of environment slots and zap dead values) - type: bool default: true - --trace-environment-liveness (trace liveness of local variable slots) - type: bool default: false - --turbo-load-elimination (enable load elimination in TurboFan) - type: bool default: true - --trace-turbo-load-elimination (trace TurboFan load elimination) - type: bool default: false - --turbo-profiling (enable basic block profiling in TurboFan) - type: bool default: false - --turbo-profiling-verbose (enable basic block profiling in TurboFan, and include each function's schedule and disassembly in the output) - type: bool default: false - --turbo-verify-allocation (verify register allocation in TurboFan) - type: bool default: false - --turbo-move-optimization (optimize gap moves in TurboFan) - type: bool default: true - --turbo-jt (enable jump threading in TurboFan) - type: bool default: true - --turbo-loop-peeling (Turbofan loop peeling) - type: bool default: true - --turbo-loop-variable (Turbofan loop variable optimization) - type: bool default: true - --turbo-loop-rotation (Turbofan loop rotation) - type: bool default: true - --turbo-cf-optimization (optimize control flow in TurboFan) - type: bool default: true - --turbo-escape (enable escape analysis) - type: bool default: true - --turbo-allocation-folding (Turbofan allocation folding) - type: bool default: true - --turbo-instruction-scheduling (enable instruction scheduling in TurboFan) - type: bool default: false - --turbo-stress-instruction-scheduling (randomly schedule instructions to stress dependency tracking) - type: bool default: false - --turbo-store-elimination (enable store-store elimination in TurboFan) - type: bool default: true - --trace-store-elimination (trace store elimination) - type: bool default: false - --turbo-rewrite-far-jumps (rewrite far to near jumps (ia32,x64)) - type: bool default: true - --stress-gc-during-compilation (simulate GC/compiler thread race related to https://crbug.com/v8/8520) - type: bool default: false - --turbo-fast-api-calls (enable fast API calls from TurboFan) - type: bool default: false - --reuse-opt-code-count (don't discard optimized code for the specified number of deopts.) - type: int default: 0 - --turbo-nci (enable experimental native context independent code.) - type: bool default: false - --turbo-nci-as-highest-tier (replace default TF with NCI code as the highest tier for testing purposes.) - type: bool default: false - --print-nci-code (print native context independent code.) - type: bool default: false - --trace-turbo-nci (trace native context independent code.) - type: bool default: false - --turbo-collect-feedback-in-generic-lowering (enable experimental feedback collection in generic lowering.) - type: bool default: false - --optimize-for-size (Enables optimizations which favor memory size over execution speed) - type: bool default: false - --untrusted-code-mitigations (Enable mitigations for executing untrusted code) - type: bool default: false - --expose-wasm (expose wasm interface to JavaScript) - type: bool default: true - --assume-asmjs-origin (force wasm decoder to assume input is internal asm-wasm format) - type: bool default: false - --wasm-num-compilation-tasks (maximum number of parallel compilation tasks for wasm) - type: int default: 128 - --wasm-write-protect-code-memory (write protect code memory on the wasm native heap) - type: bool default: false - --wasm-async-compilation (enable actual asynchronous compilation for WebAssembly.compile) - type: bool default: true - --wasm-test-streaming (use streaming compilation instead of async compilation for tests) - type: bool default: false - --wasm-max-mem-pages (maximum initial number of 64KiB memory pages of a wasm instance) - type: uint default: 32767 - --wasm-max-mem-pages-growth (maximum number of 64KiB pages a Wasm memory can grow to) - type: uint default: 65536 - --wasm-max-table-size (maximum table size of a wasm instance) - type: uint default: 10000000 - --wasm-max-code-space (maximum committed code space for wasm (in MB)) - type: uint default: 1024 - --wasm-tier-up (enable tier up to the optimizing compiler (requires --liftoff to have an effect)) - type: bool default: true - --trace-wasm-ast-start (start function for wasm AST trace (inclusive)) - type: int default: 0 - --trace-wasm-ast-end (end function for wasm AST trace (exclusive)) - type: int default: 0 - --liftoff (enable Liftoff, the baseline compiler for WebAssembly) - type: bool default: true - --trace-wasm-memory (print all memory updates performed in wasm code) - type: bool default: false - --wasm-tier-mask-for-testing (bitmask of functions to compile with TurboFan instead of Liftoff) - type: int default: 0 - --wasm-expose-debug-eval (Expose wasm evaluator support on the CDP) - type: bool default: false - --validate-asm (validate asm.js modules before compiling) - type: bool default: true - --suppress-asm-messages (don't emit asm.js related messages (for golden file testing)) - type: bool default: false - --trace-asm-time (log asm.js timing info to the console) - type: bool default: false - --trace-asm-scanner (log tokens encountered by asm.js scanner) - type: bool default: false - --trace-asm-parser (verbose logging of asm.js parse failures) - type: bool default: false - --stress-validate-asm (try to validate everything as asm.js) - type: bool default: false - --dump-wasm-module-path (directory to dump wasm modules to) - type: string default: nullptr - --experimental-wasm-eh (enable prototype exception handling opcodes for wasm) - type: bool default: false - --experimental-wasm-simd (enable prototype SIMD opcodes for wasm) - type: bool default: false - --experimental-wasm-return-call (enable prototype return call opcodes for wasm) - type: bool default: false - --experimental-wasm-compilation-hints (enable prototype compilation hints section for wasm) - type: bool default: false - --experimental-wasm-gc (enable prototype garbage collection for wasm) - type: bool default: false - --experimental-wasm-typed-funcref (enable prototype typed function references for wasm) - type: bool default: false - --experimental-wasm-reftypes (enable prototype reference type opcodes for wasm) - type: bool default: false - --experimental-wasm-threads (enable prototype thread opcodes for wasm) - type: bool default: false - --experimental-wasm-type-reflection (enable prototype wasm type reflection in JS for wasm) - type: bool default: false - --experimental-wasm-bigint (enable prototype JS BigInt support for wasm) - type: bool default: true - --experimental-wasm-bulk-memory (enable prototype bulk memory opcodes for wasm) - type: bool default: true - --experimental-wasm-mv (enable prototype multi-value support for wasm) - type: bool default: true - --wasm-staging (enable staged wasm features) - type: bool default: false - --wasm-opt (enable wasm optimization) - type: bool default: false - --wasm-bounds-checks (enable bounds checks (disable for performance testing only)) - type: bool default: true - --wasm-stack-checks (enable stack checks (disable for performance testing only)) - type: bool default: true - --wasm-math-intrinsics (intrinsify some Math imports into wasm) - type: bool default: true - --wasm-trap-handler (use signal handlers to catch out of bounds memory access in wasm (currently Linux x86_64 only)) - type: bool default: true - --wasm-fuzzer-gen-test (generate a test case when running a wasm fuzzer) - type: bool default: false - --print-wasm-code (Print WebAssembly code) - type: bool default: false - --print-wasm-stub-code (Print WebAssembly stub code) - type: bool default: false - --asm-wasm-lazy-compilation (enable lazy compilation for asm-wasm modules) - type: bool default: false - --wasm-lazy-compilation (enable lazy compilation for all wasm modules) - type: bool default: false - --wasm-lazy-validation (enable lazy validation for lazily compiled wasm functions) - type: bool default: false - --wasm-atomics-on-non-shared-memory (allow atomic operations on non-shared WebAssembly memory) - type: bool default: true - --wasm-grow-shared-memory (allow growing shared WebAssembly memory objects) - type: bool default: true - --wasm-simd-post-mvp (allow experimental SIMD operations for prototyping that are not included in the current proposal) - type: bool default: false - --wasm-code-gc (enable garbage collection of wasm code) - type: bool default: true - --trace-wasm-code-gc (trace garbage collection of wasm code) - type: bool default: false - --stress-wasm-code-gc (stress test garbage collection of wasm code) - type: bool default: false - --wasm-max-initial-code-space-reservation (maximum size of the initial wasm code space reservation (in MB)) - type: int default: 0 - --frame-count (number of stack frames inspected by the profiler) - type: int default: 1 - --stress-sampling-allocation-profiler (Enables sampling allocation profiler with X as a sample interval) - type: int default: 0 - --lazy-new-space-shrinking (Enables the lazy new space shrinking strategy) - type: bool default: false - --min-semi-space-size (min size of a semi-space (in MBytes), the new space consists of two semi-spaces) - type: size_t default: 0 - --max-semi-space-size (max size of a semi-space (in MBytes), the new space consists of two semi-spaces) - type: size_t default: 0 - --semi-space-growth-factor (factor by which to grow the new space) - type: int default: 2 - --max-old-space-size (max size of the old space (in Mbytes)) - type: size_t default: 0 - --max-heap-size (max size of the heap (in Mbytes) both max_semi_space_size and max_old_space_size take precedence. All three flags cannot be specified at the same time.) - type: size_t default: 0 - --initial-heap-size (initial size of the heap (in Mbytes)) - type: size_t default: 0 - --huge-max-old-generation-size (Increase max size of the old space to 4 GB for x64 systems withthe physical memory bigger than 16 GB) - type: bool default: true - --initial-old-space-size (initial old space size (in Mbytes)) - type: size_t default: 0 - --global-gc-scheduling (enable GC scheduling based on global memory) - type: bool default: true - --gc-global (always perform global GCs) - type: bool default: false - --random-gc-interval (Collect garbage after random(0, X) allocations. It overrides gc_interval.) - type: int default: 0 - --gc-interval (garbage collect after allocations) - type: int default: -1 - --retain-maps-for-n-gc (keeps maps alive for old space garbage collections) - type: int default: 2 - --trace-gc (print one trace line following each garbage collection) - type: bool default: false - --trace-gc-nvp (print one detailed trace line in name=value format after each garbage collection) - type: bool default: false - --trace-gc-ignore-scavenger (do not print trace line after scavenger collection) - type: bool default: false - --trace-idle-notification (print one trace line following each idle notification) - type: bool default: false - --trace-idle-notification-verbose (prints the heap state used by the idle notification) - type: bool default: false - --trace-gc-verbose (print more details following each garbage collection) - type: bool default: false - --trace-gc-freelists (prints details of each freelist before and after each major garbage collection) - type: bool default: false - --trace-gc-freelists-verbose (prints details of freelists of each page before and after each major garbage collection) - type: bool default: false - --trace-evacuation-candidates (Show statistics about the pages evacuation by the compaction) - type: bool default: false - --trace-allocations-origins (Show statistics about the origins of allocations. Combine with --no-inline-new to track allocations from generated code) - type: bool default: false - --trace-allocation-stack-interval (print stack trace after free-list allocations) - type: int default: -1 - --trace-duplicate-threshold-kb (print duplicate objects in the heap if their size is more than given threshold) - type: int default: 0 - --trace-fragmentation (report fragmentation for old space) - type: bool default: false - --trace-fragmentation-verbose (report fragmentation for old space (detailed)) - type: bool default: false - --minor-mc-trace-fragmentation (trace fragmentation after marking) - type: bool default: false - --trace-evacuation (report evacuation statistics) - type: bool default: false - --trace-mutator-utilization (print mutator utilization, allocation speed, gc speed) - type: bool default: false - --incremental-marking (use incremental marking) - type: bool default: true - --incremental-marking-wrappers (use incremental marking for marking wrappers) - type: bool default: true - --incremental-marking-task (use tasks for incremental marking) - type: bool default: true - --incremental-marking-soft-trigger (threshold for starting incremental marking via a task in percent of available space: limit - size) - type: int default: 0 - --incremental-marking-hard-trigger (threshold for starting incremental marking immediately in percent of available space: limit - size) - type: int default: 0 - --trace-unmapper (Trace the unmapping) - type: bool default: false - --parallel-scavenge (parallel scavenge) - type: bool default: true - --scavenge-task (schedule scavenge tasks) - type: bool default: true - --scavenge-task-trigger (scavenge task trigger in percent of the current heap limit) - type: int default: 80 - --scavenge-separate-stack-scanning (use a separate phase for stack scanning in scavenge) - type: bool default: false - --trace-parallel-scavenge (trace parallel scavenge) - type: bool default: false - --write-protect-code-memory (write protect code memory) - type: bool default: true - --concurrent-marking (use concurrent marking) - type: bool default: true - --concurrent-array-buffer-sweeping (concurrently sweep array buffers) - type: bool default: true - --concurrent-allocation (concurrently allocate in old space) - type: bool default: false - --local-heaps (allow heap access from background tasks) - type: bool default: false - --stress-concurrent-allocation (start background threads that allocate memory) - type: bool default: false - --parallel-marking (use parallel marking in atomic pause) - type: bool default: true - --ephemeron-fixpoint-iterations (number of fixpoint iterations it takes to switch to linear ephemeron algorithm) - type: int default: 10 - --trace-concurrent-marking (trace concurrent marking) - type: bool default: false - --concurrent-store-buffer (use concurrent store buffer processing) - type: bool default: true - --concurrent-sweeping (use concurrent sweeping) - type: bool default: true - --parallel-compaction (use parallel compaction) - type: bool default: true - --parallel-pointer-update (use parallel pointer update during compaction) - type: bool default: true - --detect-ineffective-gcs-near-heap-limit (trigger out-of-memory failure to avoid GC storm near heap limit) - type: bool default: true - --trace-incremental-marking (trace progress of the incremental marking) - type: bool default: false - --trace-stress-marking (trace stress marking progress) - type: bool default: false - --trace-stress-scavenge (trace stress scavenge progress) - type: bool default: false - --track-gc-object-stats (track object counts and memory usage) - type: bool default: false - --trace-gc-object-stats (trace object counts and memory usage) - type: bool default: false - --trace-zone-stats (trace zone memory usage) - type: bool default: false - --zone-stats-tolerance (report a tick only when allocated zone memory changes by this amount) - type: size_t default: 1048576 - --track-retaining-path (enable support for tracking retaining path) - type: bool default: false - --concurrent-array-buffer-freeing (free array buffer allocations on a background thread) - type: bool default: true - --gc-stats (Used by tracing internally to enable gc statistics) - type: int default: 0 - --track-detached-contexts (track native contexts that are expected to be garbage collected) - type: bool default: true - --trace-detached-contexts (trace native contexts that are expected to be garbage collected) - type: bool default: false - --move-object-start (enable moving of object starts) - type: bool default: true - --memory-reducer (use memory reducer) - type: bool default: true - --memory-reducer-for-small-heaps (use memory reducer for small heaps) - type: bool default: true - --heap-growing-percent (specifies heap growing factor as (1 + heap_growing_percent/100)) - type: int default: 0 - --v8-os-page-size (override OS page size (in KBytes)) - type: int default: 0 - --always-compact (Perform compaction on every full GC) - type: bool default: false - --never-compact (Never perform compaction on full GC - testing only) - type: bool default: false - --compact-code-space (Compact code space on full collections) - type: bool default: true - --flush-bytecode (flush of bytecode when it has not been executed recently) - type: bool default: true - --stress-flush-bytecode (stress bytecode flushing) - type: bool default: false - --use-marking-progress-bar (Use a progress bar to scan large objects in increments when incremental marking is active.) - type: bool default: true - --stress-per-context-marking-worklist (Use per-context worklist for marking) - type: bool default: false - --force-marking-deque-overflows (force overflows of marking deque by reducing it's size to 64 words) - type: bool default: false - --stress-compaction (stress the GC compactor to flush out bugs (implies --force_marking_deque_overflows)) - type: bool default: false - --stress-compaction-random (Stress GC compaction by selecting random percent of pages as evacuation candidates. It overrides stress_compaction.) - type: bool default: false - --stress-incremental-marking (force incremental marking for small heaps and run it more often) - type: bool default: false - --fuzzer-gc-analysis (prints number of allocations and enables analysis mode for gc fuzz testing, e.g. --stress-marking, --stress-scavenge) - type: bool default: false - --stress-marking (force marking at random points between 0 and X (inclusive) percent of the regular marking start limit) - type: int default: 0 - --stress-scavenge (force scavenge at random points between 0 and X (inclusive) percent of the new space capacity) - type: int default: 0 - --gc-experiment-background-schedule (new background GC schedule heuristics) - type: bool default: false - --gc-experiment-less-compaction (less compaction in non-memory reducing mode) - type: bool default: false - --disable-abortjs (disables AbortJS runtime function) - type: bool default: false - --randomize-all-allocations (randomize virtual memory reservations by ignoring any hints passed when allocating pages) - type: bool default: false - --manual-evacuation-candidates-selection (Test mode only flag. It allows an unit test to select evacuation candidates pages (requires --stress_compaction).) - type: bool default: false - --fast-promotion-new-space (fast promote new space on high survival rates) - type: bool default: false - --clear-free-memory (initialize free memory with 0) - type: bool default: false - --young-generation-large-objects (allocates large objects by default in the young generation large object space) - type: bool default: true - --debug-code (generate extra code (assertions) for debugging) - type: bool default: false - --code-comments (emit comments in code disassembly; for more readable source positions you should add --no-concurrent_recompilation) - type: bool default: false - --enable-sse3 (enable use of SSE3 instructions if available) - type: bool default: true - --enable-ssse3 (enable use of SSSE3 instructions if available) - type: bool default: true - --enable-sse4-1 (enable use of SSE4.1 instructions if available) - type: bool default: true - --enable-sse4-2 (enable use of SSE4.2 instructions if available) - type: bool default: true - --enable-sahf (enable use of SAHF instruction if available (X64 only)) - type: bool default: true - --enable-avx (enable use of AVX instructions if available) - type: bool default: true - --enable-fma3 (enable use of FMA3 instructions if available) - type: bool default: true - --enable-bmi1 (enable use of BMI1 instructions if available) - type: bool default: true - --enable-bmi2 (enable use of BMI2 instructions if available) - type: bool default: true - --enable-lzcnt (enable use of LZCNT instruction if available) - type: bool default: true - --enable-popcnt (enable use of POPCNT instruction if available) - type: bool default: true - --arm-arch (generate instructions for the selected ARM architecture if available: armv6, armv7, armv7+sudiv or armv8) - type: string default: armv8 - --force-long-branches (force all emitted branches to be in long mode (MIPS/PPC only)) - type: bool default: false - --mcpu (enable optimization for specific cpu) - type: string default: auto - --partial-constant-pool (enable use of partial constant pools (X64 only)) - type: bool default: true - --sim-arm64-optional-features (enable optional features on the simulator for testing: none or all) - type: string default: none - --enable-source-at-csa-bind (Include source information in the binary at CSA bind locations.) - type: bool default: false - --enable-armv7 (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-vfp3 (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-32dregs (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-neon (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-sudiv (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-armv8 (deprecated (use --arm_arch instead)) - type: maybe_bool default: unset - --enable-regexp-unaligned-accesses (enable unaligned accesses for the regexp engine) - type: bool default: true - --script-streaming (enable parsing on background) - type: bool default: true - --stress-background-compile (stress test parsing on background) - type: bool default: false - --finalize-streaming-on-background (perform the script streaming finalization on the background thread) - type: bool default: false - --disable-old-api-accessors (Disable old-style API accessors whose setters trigger through the prototype chain) - type: bool default: false - --expose-gc (expose gc extension) - type: bool default: false - --expose-gc-as (expose gc extension under the specified name) - type: string default: nullptr - --expose-externalize-string (expose externalize string extension) - type: bool default: false - --expose-trigger-failure (expose trigger-failure extension) - type: bool default: false - --stack-trace-limit (number of stack frames to capture) - type: int default: 10 - --builtins-in-stack-traces (show built-in functions in stack traces) - type: bool default: false - --experimental-stack-trace-frames (enable experimental frames (API/Builtins) and stack trace layout) - type: bool default: false - --disallow-code-generation-from-strings (disallow eval and friends) - type: bool default: false - --expose-async-hooks (expose async_hooks object) - type: bool default: false - --expose-cputracemark-as (expose cputracemark extension under the specified name) - type: string default: nullptr - --allow-unsafe-function-constructor (allow invoking the function constructor without security checks) - type: bool default: false - --force-slow-path (always take the slow path for builtins) - type: bool default: false - --test-small-max-function-context-stub-size (enable testing the function context size overflow path by making the maximum size smaller) - type: bool default: false - --inline-new (use fast inline allocation) - type: bool default: true - --trace (trace javascript function calls) - type: bool default: false - --trace-wasm (trace wasm function calls) - type: bool default: false - --lazy (use lazy compilation) - type: bool default: true - --max-lazy (ignore eager compilation hints) - type: bool default: false - --trace-opt (trace lazy optimization) - type: bool default: false - --trace-opt-verbose (extra verbose compilation tracing) - type: bool default: false - --trace-opt-stats (trace lazy optimization statistics) - type: bool default: false - --trace-deopt (trace optimize function deoptimization) - type: bool default: false - --trace-file-names (include file names in trace-opt/trace-deopt output) - type: bool default: false - --always-opt (always try to optimize functions) - type: bool default: false - --always-osr (always try to OSR functions) - type: bool default: false - --prepare-always-opt (prepare for turning on always opt) - type: bool default: false - --trace-serializer (print code serializer trace) - type: bool default: false - --compilation-cache (enable compilation cache) - type: bool default: true - --cache-prototype-transitions (cache prototype transitions) - type: bool default: true - --parallel-compile-tasks (enable parallel compile tasks) - type: bool default: false - --compiler-dispatcher (enable compiler dispatcher) - type: bool default: false - --trace-compiler-dispatcher (trace compiler dispatcher activity) - type: bool default: false - --cpu-profiler-sampling-interval (CPU profiler sampling interval in microseconds) - type: int default: 1000 - --trace-side-effect-free-debug-evaluate (print debug messages for side-effect-free debug-evaluate for testing) - type: bool default: false - --hard-abort (abort by crashing) - type: bool default: true - --expose-inspector-scripts (expose injected-script-source.js for debugging) - type: bool default: false - --stack-size (default size of stack region v8 is allowed to use (in kBytes)) - type: int default: 984 - --max-stack-trace-source-length (maximum length of function source code printed in a stack trace.) - type: int default: 300 - --clear-exceptions-on-js-entry (clear pending exceptions when entering JavaScript) - type: bool default: false - --histogram-interval (time interval in ms for aggregating memory histograms) - type: int default: 600000 - --heap-profiler-trace-objects (Dump heap object allocations/movements/size_updates) - type: bool default: false - --heap-profiler-use-embedder-graph (Use the new EmbedderGraph API to get embedder nodes) - type: bool default: true - --heap-snapshot-string-limit (truncate strings to this length in the heap snapshot) - type: int default: 1024 - --sampling-heap-profiler-suppress-randomness (Use constant sample intervals to eliminate test flakiness) - type: bool default: false - --use-idle-notification (Use idle notification to reduce memory footprint.) - type: bool default: true - --trace-ic (trace inline cache state transitions for tools/ic-processor) - type: bool default: false - --modify-field-representation-inplace (enable in-place field representation updates) - type: bool default: true - --max-polymorphic-map-count (maximum number of maps to track in POLYMORPHIC state) - type: int default: 4 - --native-code-counters (generate extra code for manipulating stats counters) - type: bool default: false - --thin-strings (Enable ThinString support) - type: bool default: true - --trace-prototype-users (Trace updates to prototype user tracking) - type: bool default: false - --trace-for-in-enumerate (Trace for-in enumerate slow-paths) - type: bool default: false - --trace-maps (trace map creation) - type: bool default: false - --trace-maps-details (also log map details) - type: bool default: true - --allow-natives-syntax (allow natives syntax) - type: bool default: false - --allow-natives-for-differential-fuzzing (allow only natives explicitly allowlisted for differential fuzzers) - type: bool default: false - --parse-only (only parse the sources) - type: bool default: false - --trace-sim (Trace simulator execution) - type: bool default: false - --debug-sim (Enable debugging the simulator) - type: bool default: false - --check-icache (Check icache flushes in ARM and MIPS simulator) - type: bool default: false - --stop-sim-at (Simulator stop after x number of instructions) - type: int default: 0 - --sim-stack-alignment (Stack alingment in bytes in simulator (4 or 8, 8 is default)) - type: int default: 8 - --sim-stack-size (Stack size of the ARM64, MIPS64 and PPC64 simulator in kBytes (default is 2 MB)) - type: int default: 2048 - --log-colour (When logging, try to use coloured output.) - type: bool default: true - --trace-sim-messages (Trace simulator debug messages. Implied by --trace-sim.) - type: bool default: false - --async-stack-traces (include async stack traces in Error.stack) - type: bool default: true - --stack-trace-on-illegal (print stack trace when an illegal exception is thrown) - type: bool default: false - --abort-on-uncaught-exception (abort program (dump core) when an uncaught exception is thrown) - type: bool default: false - --correctness-fuzzer-suppressions (Suppress certain unspecified behaviors to ease correctness fuzzing: Abort program when the stack overflows or a string exceeds maximum length (as opposed to throwing RangeError). Use a fixed suppression string for error messages.) - type: bool default: false - --randomize-hashes (randomize hashes to avoid predictable hash collisions (with snapshots this option cannot override the baked-in seed)) - type: bool default: true - --rehash-snapshot (rehash strings from the snapshot to override the baked-in seed) - type: bool default: true - --hash-seed (Fixed seed to use to hash property keys (0 means random)(with snapshots this option cannot override the baked-in seed)) - type: uint64 default: 0 - --random-seed (Default seed for initializing random generator (0, the default, means to use system random).) - type: int default: 0 - --fuzzer-random-seed (Default seed for initializing fuzzer random generator (0, the default, means to use v8's random number generator seed).) - type: int default: 0 - --trace-rail (trace RAIL mode) - type: bool default: false - --print-all-exceptions (print exception object and stack trace on each thrown exception) - type: bool default: false - --detailed-error-stack-trace (includes arguments for each function call in the error stack frames array) - type: bool default: false - --adjust-os-scheduling-parameters (adjust OS specific scheduling params for the isolate) - type: bool default: true - --runtime-call-stats (report runtime call counts and times) - type: bool default: false - --rcs (report runtime call counts and times) - type: bool default: false - --rcs-cpu-time (report runtime times in cpu time (the default is wall time)) - type: bool default: false - --profile-deserialization (Print the time it takes to deserialize the snapshot.) - type: bool default: false - --serialization-statistics (Collect statistics on serialized objects.) - type: bool default: false - --serialization-chunk-size (Custom size for serialization chunks) - type: uint default: 4096 - --regexp-optimization (generate optimized regexp code) - type: bool default: true - --regexp-mode-modifiers (enable inline flags in regexp.) - type: bool default: false - --regexp-interpret-all (interpret all regexp code) - type: bool default: false - --regexp-tier-up (enable regexp interpreter and tier up to the compiler after the number of executions set by the tier up ticks flag) - type: bool default: true - --regexp-tier-up-ticks (set the number of executions for the regexp interpreter before tiering-up to the compiler) - type: int default: 1 - --regexp-peephole-optimization (enable peephole optimization for regexp bytecode) - type: bool default: true - --trace-regexp-peephole-optimization (trace regexp bytecode peephole optimization) - type: bool default: false - --trace-regexp-bytecodes (trace regexp bytecode execution) - type: bool default: false - --trace-regexp-assembler (trace regexp macro assembler calls.) - type: bool default: false - --trace-regexp-parser (trace regexp parsing) - type: bool default: false - --trace-regexp-tier-up (trace regexp tiering up execution) - type: bool default: false - --testing-bool-flag (testing_bool_flag) - type: bool default: true - --testing-maybe-bool-flag (testing_maybe_bool_flag) - type: maybe_bool default: unset - --testing-int-flag (testing_int_flag) - type: int default: 13 - --testing-float-flag (float-flag) - type: float default: 2.5 - --testing-string-flag (string-flag) - type: string default: Hello, world! - --testing-prng-seed (Seed used for threading test randomness) - type: int default: 42 - --testing-d8-test-runner (test runner turns on this flag to enable a check that the function was prepared for optimization before marking it for optimization) - type: bool default: false - --fuzzing (Fuzzers use this flag to signal that they are ... fuzzing. This causes intrinsics to fail silently (e.g. return undefined) on invalid usage.) - type: bool default: false - --embedded-src (Path for the generated embedded data file. (mksnapshot only)) - type: string default: nullptr - --embedded-variant (Label to disambiguate symbols in embedded data file. (mksnapshot only)) - type: string default: nullptr - --startup-src (Write V8 startup as C++ src. (mksnapshot only)) - type: string default: nullptr - --startup-blob (Write V8 startup blob file. (mksnapshot only)) - type: string default: nullptr - --target-arch (The mksnapshot target arch. (mksnapshot only)) - type: string default: nullptr - --target-os (The mksnapshot target os. (mksnapshot only)) - type: string default: nullptr - --target-is-simulator (Instruct mksnapshot that the target is meant to run in the simulator and it can generate simulator-specific instructions. (mksnapshot only)) - type: bool default: false - --minor-mc-parallel-marking (use parallel marking for the young generation) - type: bool default: true - --trace-minor-mc-parallel-marking (trace parallel marking for the young generation) - type: bool default: false - --minor-mc (perform young generation mark compact GCs) - type: bool default: false - --help (Print usage message, including flags, on console) - type: bool default: true - --dump-counters (Dump counters on exit) - type: bool default: false - --dump-counters-nvp (Dump counters as name-value pairs on exit) - type: bool default: false - --use-external-strings (Use external strings for source code) - type: bool default: false - --map-counters (Map counters to a file) - type: string default: - --mock-arraybuffer-allocator (Use a mock ArrayBuffer allocator for testing.) - type: bool default: false - --mock-arraybuffer-allocator-limit (Memory limit for mock ArrayBuffer allocator used to simulate OOM for testing.) - type: size_t default: 0 - --gdbjit (enable GDBJIT interface) - type: bool default: false - --gdbjit-full (enable GDBJIT interface for all code objects) - type: bool default: false - --gdbjit-dump (dump elf objects with debug info to disk) - type: bool default: false - --gdbjit-dump-filter (dump only objects containing this substring) - type: string default: - --log (Minimal logging (no API, code, GC, suspect, or handles samples).) - type: bool default: false - --log-all (Log all events to the log file.) - type: bool default: false - --log-api (Log API events to the log file.) - type: bool default: false - --log-code (Log code events to the log file without profiling.) - type: bool default: false - --log-handles (Log global handle events.) - type: bool default: false - --log-suspect (Log suspect operations.) - type: bool default: false - --log-source-code (Log source code.) - type: bool default: false - --log-function-events (Log function events (parse, compile, execute) separately.) - type: bool default: false - --prof (Log statistical profiling information (implies --log-code).) - type: bool default: false - --detailed-line-info (Always generate detailed line information for CPU profiling.) - type: bool default: false - --prof-sampling-interval (Interval for --prof samples (in microseconds).) - type: int default: 1000 - --prof-cpp (Like --prof, but ignore generated code.) - type: bool default: false - --prof-browser-mode (Used with --prof, turns on browser-compatible mode for profiling.) - type: bool default: true - --logfile (Specify the name of the log file.) - type: string default: v8.log - --logfile-per-isolate (Separate log files for each isolate.) - type: bool default: true - --ll-prof (Enable low-level linux profiler.) - type: bool default: false - --gc-fake-mmap (Specify the name of the file for fake gc mmap used in ll_prof) - type: string default: /tmp/__v8_gc__ - --log-internal-timer-events (Time internal events.) - type: bool default: false - --redirect-code-traces (output deopt information and disassembly into file code--.asm) - type: bool default: false - --redirect-code-traces-to (output deopt information and disassembly into the given file) - type: string default: nullptr - --print-opt-source (print source code of optimized and inlined functions) - type: bool default: false - --vtune-prof-annotate-wasm (Used when v8_enable_vtunejit is enabled, load wasm source map and provide annotate support (experimental).) - type: bool default: false - --win64-unwinding-info (Enable unwinding info for Windows/x64) - type: bool default: true - --interpreted-frames-native-stack (Show interpreted frames on the native stack (useful for external profilers).) - type: bool default: false - --predictable (enable predictable mode) - type: bool default: false - --predictable-gc-schedule (Predictable garbage collection schedule. Fixes heap growing, idle, and memory reducing behavior.) - type: bool default: false - --single-threaded (disable the use of background tasks) - type: bool default: false - --single-threaded-gc (disable the use of background gc tasks) - type: bool default: false -``` - -Particularly useful ones: - -``` ---async-stack-trace -``` diff --git a/docs/contributing/release_schedule.md b/docs/contributing/release_schedule.md deleted file mode 100644 index 3fb4ba0e26..0000000000 --- a/docs/contributing/release_schedule.md +++ /dev/null @@ -1,35 +0,0 @@ -## Release Schedule - -A new minor release for the `deno` cli is released every 6 weeks. After 1.9.0 we -will be switching to a 4 week release cycle. A new patch version is released -weekly, as necessary. - -The release dates for the upcoming minor releases are: - -- 1.11.0: June 8, 2021 -- 1.12.0: July 13, 2021 -- 1.13.0: August 10, 2021 -- 1.14.0: September 14, 2021 - -Stable releases can be found on the -[GitHub releases page](https://github.com/denoland/deno/releases). - -### Canary channel - -In addition to the stable channel described above, canaries are released -multiple times daily (for each commit on main). You can upgrade to the latest -canary release by running: - -``` -deno upgrade --canary -``` - -To update to a specific canary, pass the commit hash in the `--version` option: - -``` -deno upgrade --canary --version=973af61d8bb03c1709f61e456581d58386ed4952 -``` - -To switch back to the stable channel, run `deno upgrade`. - -Canaries can be downloaded from https://dl.deno.land. diff --git a/docs/contributing/style_guide.md b/docs/contributing/style_guide.md deleted file mode 100644 index cd1578e6c6..0000000000 --- a/docs/contributing/style_guide.md +++ /dev/null @@ -1,360 +0,0 @@ -# Deno Style Guide - -## Copyright Headers - -Most modules in the repository should have the following copyright header: - -```ts -// Copyright 2018-2021 the Deno authors. All rights reserved. MIT license. -``` - -If the code originates elsewhere, ensure that the file has the proper copyright -headers. We only allow MIT, BSD, and Apache licensed code. - -## Use underscores, not dashes in filenames. - -Example: Use `file_server.ts` instead of `file-server.ts`. - -## Add tests for new features. - -Each module should contain or be accompanied by tests for its public -functionality. - -## TODO Comments - -TODO comments should usually include an issue or the author's github username in -parentheses. Example: - -```ts -// TODO(ry): Add tests. -// TODO(#123): Support Windows. -// FIXME(#349): Sometimes panics. -``` - -## Meta-programming is discouraged. Including the use of Proxy. - -Be explicit even when it means more code. - -There are some situations where it may make sense to use such techniques, but in -the vast majority of cases it does not. - -## Inclusive code - -Please follow the guidelines for inclusive code outlined at -https://chromium.googlesource.com/chromium/src/+/master/styleguide/inclusive_code.md. - -## Rust - -Follow Rust conventions and be consistent with existing code. - -## TypeScript - -The TypeScript portion of the code base is the standard library `std`. - -### Use TypeScript instead of JavaScript. - -### Use the term "module" instead of "library" or "package". - -For clarity and consistency avoid the terms "library" and "package". Instead use -"module" to refer to a single JS or TS file and also to refer to a directory of -TS/JS code. - -### Do not use the filename `index.ts`/`index.js`. - -Deno does not treat "index.js" or "index.ts" in a special way. By using these -filenames, it suggests that they can be left out of the module specifier when -they cannot. This is confusing. - -If a directory of code needs a default entry point, use the filename `mod.ts`. -The filename `mod.ts` follows Rust’s convention, is shorter than `index.ts`, and -doesn’t come with any preconceived notions about how it might work. - -### Exported functions: max 2 args, put the rest into an options object. - -When designing function interfaces, stick to the following rules. - -1. A function that is part of the public API takes 0-2 required arguments, plus - (if necessary) an options object (so max 3 total). - -2. Optional parameters should generally go into the options object. - - An optional parameter that's not in an options object might be acceptable if - there is only one, and it seems inconceivable that we would add more optional - parameters in the future. - -3. The 'options' argument is the only argument that is a regular 'Object'. - - Other arguments can be objects, but they must be distinguishable from a - 'plain' Object runtime, by having either: - - - a distinguishing prototype (e.g. `Array`, `Map`, `Date`, `class MyThing`). - - a well-known symbol property (e.g. an iterable with `Symbol.iterator`). - - This allows the API to evolve in a backwards compatible way, even when the - position of the options object changes. - -```ts -// BAD: optional parameters not part of options object. (#2) -export function resolve( - hostname: string, - family?: "ipv4" | "ipv6", - timeout?: number, -): IPAddress[] {} - -// GOOD. -export interface ResolveOptions { - family?: "ipv4" | "ipv6"; - timeout?: number; -} -export function resolve( - hostname: string, - options: ResolveOptions = {}, -): IPAddress[] {} -``` - -```ts -export interface Environment { - [key: string]: string; -} - -// BAD: `env` could be a regular Object and is therefore indistinguishable -// from an options object. (#3) -export function runShellWithEnv(cmdline: string, env: Environment): string {} - -// GOOD. -export interface RunShellOptions { - env: Environment; -} -export function runShellWithEnv( - cmdline: string, - options: RunShellOptions, -): string {} -``` - -```ts -// BAD: more than 3 arguments (#1), multiple optional parameters (#2). -export function renameSync( - oldname: string, - newname: string, - replaceExisting?: boolean, - followLinks?: boolean, -) {} - -// GOOD. -interface RenameOptions { - replaceExisting?: boolean; - followLinks?: boolean; -} -export function renameSync( - oldname: string, - newname: string, - options: RenameOptions = {}, -) {} -``` - -```ts -// BAD: too many arguments. (#1) -export function pwrite( - fd: number, - buffer: TypedArray, - offset: number, - length: number, - position: number, -) {} - -// BETTER. -export interface PWrite { - fd: number; - buffer: TypedArray; - offset: number; - length: number; - position: number; -} -export function pwrite(options: PWrite) {} -``` - -### Export all interfaces that are used as parameters to an exported member - -Whenever you are using interfaces that are included in the arguments of an -exported member, you should export the interface that is used. Here is an -example: - -```ts -// my_file.ts -export interface Person { - name: string; - age: number; -} - -export function createPerson(name: string, age: number): Person { - return { name, age }; -} - -// mod.ts -export { createPerson } from "./my_file.ts"; -export type { Person } from "./my_file.ts"; -``` - -### Minimize dependencies; do not make circular imports. - -Although `std` has no external dependencies, we must still be careful to keep -internal dependencies simple and manageable. In particular, be careful not to -introduce circular imports. - -### If a filename starts with an underscore: `_foo.ts`, do not link to it. - -Sometimes there may be situations where an internal module is necessary but its -API is not meant to be stable or linked to. In this case prefix it with an -underscore. By convention, only files in its own directory should import it. - -### Use JSDoc for exported symbols. - -We strive for complete documentation. Every exported symbol ideally should have -a documentation line. - -If possible, use a single line for the JSDoc. Example: - -```ts -/** foo does bar. */ -export function foo() { - // ... -} -``` - -It is important that documentation is easily human readable, but there is also a -need to provide additional styling information to ensure generated documentation -is more rich text. Therefore JSDoc should generally follow markdown markup to -enrich the text. - -While markdown supports HTML tags, it is forbidden in JSDoc blocks. - -Code string literals should be braced with the back-tick (\`) instead of quotes. -For example: - -```ts -/** Import something from the `deno` module. */ -``` - -Do not document function arguments unless they are non-obvious of their intent -(though if they are non-obvious intent, the API should be considered anyways). -Therefore `@param` should generally not be used. If `@param` is used, it should -not include the `type` as TypeScript is already strongly typed. - -```ts -/** - * Function with non obvious param. - * @param foo Description of non obvious parameter. - */ -``` - -Vertical spacing should be minimized whenever possible. Therefore single line -comments should be written as: - -```ts -/** This is a good single line JSDoc. */ -``` - -And not: - -```ts -/** - * This is a bad single line JSDoc. - */ -``` - -Code examples should utilize markdown format, like so: - -````ts -/** A straight forward comment and an example: - * ```ts - * import { foo } from "deno"; - * foo("bar"); - * ``` - */ -```` - -Code examples should not contain additional comments and must not be indented. -It is already inside a comment. If it needs further comments it is not a good -example. - -### Resolve linting problems using directives - -Currently, the building process uses `dlint` to validate linting problems in the -code. If the task requires code that is non-conformant to linter use -`deno-lint-ignore ` directive to suppress the warning. - -```typescript -// deno-lint-ignore no-explicit-any -let x: any; -``` - -This ensures the continuous integration process doesn't fail due to linting -problems, but it should be used scarcely. - -### Each module should come with a test module. - -Every module with public functionality `foo.ts` should come with a test module -`foo_test.ts`. A test for a `std` module should go in `std/tests` due to their -different contexts, otherwise it should just be a sibling to the tested module. - -### Unit Tests should be explicit. - -For a better understanding of the tests, function should be correctly named as -its prompted throughout the test command. Like: - -``` -test myTestFunction ... ok -``` - -Example of test: - -```ts -import { assertEquals } from "https://deno.land/std@$STD_VERSION/testing/asserts.ts"; -import { foo } from "./mod.ts"; - -Deno.test("myTestFunction", function () { - assertEquals(foo(), { bar: "bar" }); -}); -``` - -### Top level functions should not use arrow syntax. - -Top level functions should use the `function` keyword. Arrow syntax should be -limited to closures. - -Bad: - -```ts -export const foo = (): string => { - return "bar"; -}; -``` - -Good: - -```ts -export function foo(): string { - return "bar"; -} -``` - -### `std` - -#### Do not depend on external code. - -`https://deno.land/std/` is intended to be baseline functionality that all Deno -programs can rely on. We want to guarantee to users that this code does not -include potentially unreviewed third party code. - -#### Document and maintain browser compatibility. - -If a module is browser compatible, include the following in the JSDoc at the top -of the module: - -```ts -// This module is browser compatible. -``` - -Maintain browser compatibility for such a module by either not using the global -`Deno` namespace or feature-testing for it. Make sure any new dependencies are -also browser compatible. diff --git a/docs/contributing/web_platform_tests.md b/docs/contributing/web_platform_tests.md deleted file mode 100644 index 534726db6c..0000000000 --- a/docs/contributing/web_platform_tests.md +++ /dev/null @@ -1,133 +0,0 @@ -## Web Platform Test - -Deno uses a custom test runner for Web Platform Tests. It can be found at -`./tools/wpt.ts`. - -### Running tests - -> If you are on Windows, or your system does not support shebangs, prefix all -> `./tools/wpt.ts` commands with -> `deno run --unstable --allow-write --allow-read --allow-net --allow-env --allow-run`. - -Before attempting to run WPT tests for the first time, please run the WPT setup. -You must also run this command every time the `./test_util/wpt` submodule is -updated: - -```shell -./tools/wpt.ts setup -``` - -To run all available web platform tests, run the following command: - -```shell -./tools/wpt.ts run - -# You can also filter which test files to run by specifying filters: -./tools/wpt.ts run -- streams/piping/general hr-time -``` - -The test runner will run each web platform test and record its status (failed or -ok). It will then compare this output to the expected output of each test as -specified in the `./tools/wpt/expectation.json` file. This file is a nested JSON -structure that mirrors the `./test_utils/wpt` directory. It describes for each -test file, if it should pass as a whole (all tests pass, `true`), if it should -fail as a whole (test runner encounters an exception outside of a test or all -tests fail, `false`), or which tests it expects to fail (a string array of test -case names). - -### Updating enabled tests or expectations - -You can update the `./tools/wpt/expectation.json` file manually by changing the -value of each of the test file entries in the JSON structure. The alternative -and preferred option is to have the WPT runner run all, or a filtered subset of -tests, and then automatically update the `expectation.json` file to match the -current reality. You can do this with the `./wpt.ts update` command. Example: - -```shell -./tools/wpt.ts update -- hr-time -``` - -After running this command the `expectation.json` file will match the current -output of all the tests that were run. This means that running `wpt.ts run` -right after a `wpt.ts update` should always pass. - -### Subcommands - -#### `setup` - -Validate that your environment is configured correctly, or help you configure -it. - -This will check that the python3 (or `python.exe` on Windows) is actually -Python 3. - -You can specify the following flags to customize behaviour: - -``` ---rebuild - Rebuild the manifest instead of downloading. This can take up to 3 minutes. - ---auto-config - Automatically configure /etc/hosts if it is not configured (no prompt will be shown). -``` - -#### `run` - -Run all tests like specified in `expectation.json`. - -You can specify the following flags to customize behaviour: - -``` ---release - Use the ./target/release/deno binary instead of ./target/debug/deno - ---quiet - Disable printing of `ok` test cases. - ---json= - Output the test results as JSON to the file specified. -``` - -You can also specify exactly which tests to run by specifying one of more -filters after a `--`: - -``` -./tools/wpt.ts run -- hr-time streams/piping/general -``` - -### `update` - -Update the `expectation.json` to match the current reality. - -You can specify the following flags to customize behaviour: - -``` ---release - Use the ./target/release/deno binary instead of ./target/debug/deno - ---quiet - Disable printing of `ok` test cases. - ---json= - Output the test results as JSON to the file specified. -``` - -You can also specify exactly which tests to run by specifying one of more -filters after a `--`: - -``` -./tools/wpt.ts update -- hr-time streams/piping/general -``` - -### FAQ - -#### Upgrading the wpt submodule: - -```shell -cd test_util/wpt/ -# Rebase to retain our modifications -git rebase origin/master -git push denoland -``` - -All contributors will need to rerun `./tools/wpt.ts setup` after this. diff --git a/docs/embedding_deno.md b/docs/embedding_deno.md deleted file mode 100644 index aa8cd58b1f..0000000000 --- a/docs/embedding_deno.md +++ /dev/null @@ -1,11 +0,0 @@ -# Embedding Deno - -Deno consists of multiple parts, one of which is `deno_core`. This is a rust -crate that can be used to embed a JavaScript runtime into your rust application. -Deno is built on top of `deno_core`. - -The Deno crate is hosted on [crates.io](https://crates.io/crates/deno_core). - -You can view the API on [docs.rs](https://docs.rs/deno_core). - - diff --git a/docs/examples.md b/docs/examples.md deleted file mode 100644 index 450f600ab8..0000000000 --- a/docs/examples.md +++ /dev/null @@ -1,23 +0,0 @@ -# Examples - -In this chapter you can find some example programs that you can use to learn -more about the runtime. - -## Basic - -- [Hello world](./examples/hello_world.md) -- [Import and export modules](./examples/import_export.md) -- [Manage dependencies](./examples/manage_dependencies.md) -- [Fetch data](./examples/fetch_data.md) -- [Read and write files](./examples/read_write_files.md) - -## Advanced - -- [Unix cat program](./examples/unix_cat.md) -- [HTTP web server](./examples/http_server.md) -- [File server](./examples/file_server.md) -- [TCP echo server](./examples/tcp_echo.md) -- [Creating a subprocess](./examples/subprocess.md) -- [OS signals](./examples/os_signals.md) -- [File system events](./examples/file_system_events.md) -- [Module metadata](./examples/module_metadata.md) diff --git a/docs/examples/fetch_data.md b/docs/examples/fetch_data.md deleted file mode 100644 index 607225a2a3..0000000000 --- a/docs/examples/fetch_data.md +++ /dev/null @@ -1,58 +0,0 @@ -# Fetch data - -## Concepts - -- Like browsers, Deno implements web standard APIs such as - [fetch](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). -- Deno is secure by default, meaning explicit permission must be granted to - access the network. -- See also: Deno's [permissions](../getting_started/permissions.md) model. - -## Overview - -When building any sort of web application developers will usually need to -retrieve data from somewhere else on the web. This works no differently in Deno -than in any other JavaScript application, just call the `fetch()` method. For -more information on fetch read the -[MDN documentation](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). - -The exception with Deno occurs when running a script which makes a call over the -web. Deno is secure by default which means access to IO (Input / Output) is -prohibited. To make a call over the web Deno must be explicitly told it is ok to -do so. This is achieved by adding the `--allow-net` flag to the `deno run` -command. - -## Example - -**Command:** `deno run --allow-net fetch.ts` - -```js -/** - * Output: JSON Data - */ -const json = fetch("https://api.github.com/users/denoland"); - -json.then((response) => { - return response.json(); -}).then((jsonData) => { - console.log(jsonData); -}); - -/** - * Output: HTML Data - */ -const text = fetch("https://deno.land/"); - -text.then((response) => { - return response.text(); -}).then((textData) => { - console.log(textData); -}); - -/** - * Output: Error Message - */ -const error = fetch("https://does.not.exist/"); - -error.catch((error) => console.log(error.message)); -``` diff --git a/docs/examples/file_server.md b/docs/examples/file_server.md deleted file mode 100644 index 57a6d710ac..0000000000 --- a/docs/examples/file_server.md +++ /dev/null @@ -1,63 +0,0 @@ -# File server - -## Concepts - -- Use the Deno standard library - [file_server.ts](https://deno.land/std@$STD_VERSION/http/file_server.ts) to - run your own file server and access your files from your web browser. -- Run [Deno install](../tools/script_installer.md) to install the file server - locally. - -## Example - -Serve a local directory via HTTP. First install the remote script to your local -file system. This will install the script to the Deno installation root's bin -directory, e.g. `/home/alice/.deno/bin/file_server`. - -```shell -deno install --allow-net --allow-read https://deno.land/std@$STD_VERSION/http/file_server.ts -``` - -You can now run the script with the simplified script name. Run it: - -```shell -$ file_server . -Downloading https://deno.land/std@$STD_VERSION/http/file_server.ts... -[...] -HTTP server listening on http://0.0.0.0:4507/ -``` - -Now go to [http://0.0.0.0:4507/](http://0.0.0.0:4507/) in your web browser to -see your local directory contents. - -## Help - -Help and a complete list of options are available via: - -```shell -file_server --help -``` - -Example output: - -``` -Deno File Server - Serves a local directory in HTTP. - - INSTALL: - deno install --allow-net --allow-read https://deno.land/std/http/file_server.ts - - USAGE: - file_server [path] [options] - - OPTIONS: - -h, --help Prints help information - -p, --port Set port - --cors Enable CORS via the "Access-Control-Allow-Origin" header - --host Hostname (default is 0.0.0.0) - -c, --cert TLS certificate file (enables TLS) - -k, --key TLS key file (enables TLS) - --no-dir-listing Disable directory listing - - All TLS options are required when one is provided. -``` diff --git a/docs/examples/file_system_events.md b/docs/examples/file_system_events.md deleted file mode 100644 index ba61d92848..0000000000 --- a/docs/examples/file_system_events.md +++ /dev/null @@ -1,40 +0,0 @@ -# File system events - -## Concepts - -- Use [Deno.watchFs](https://doc.deno.land/builtin/stable#Deno.watchFs) to watch - for file system events. -- Results may vary between operating systems. - -## Example - -To poll for file system events in the current directory: - -```ts -/** - * watcher.ts - */ -const watcher = Deno.watchFs("."); -for await (const event of watcher) { - console.log(">>>> event", event); - // Example event: { kind: "create", paths: [ "/home/alice/deno/foo.txt" ] } -} -``` - -Run with: - -```shell -deno run --allow-read watcher.ts -``` - -Now try adding, removing and modifying files in the same directory as -`watcher.ts`. - -Note that the exact ordering of the events can vary between operating systems. -This feature uses different syscalls depending on the platform: - -- Linux: [inotify](https://man7.org/linux/man-pages/man7/inotify.7.html) -- macOS: - [FSEvents](https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/FSEvents_ProgGuide/Introduction/Introduction.html) -- Windows: - [ReadDirectoryChangesW](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw) diff --git a/docs/examples/hello_world.md b/docs/examples/hello_world.md deleted file mode 100644 index cb45e53932..0000000000 --- a/docs/examples/hello_world.md +++ /dev/null @@ -1,79 +0,0 @@ -# Hello world - -## Concepts - -- Deno can run JavaScript or TypeScript out of the box with no additional tools - or config required. - -## Overview - -Deno is a secure runtime for both JavaScript and TypeScript. As the hello world -examples below highlight the same functionality can be created in JavaScript or -TypeScript, and Deno will execute both. - -## JavaScript - -In this JavaScript example the message `Hello [name]` is printed to the console -and the code ensures the name provided is capitalized. - -**Command:** `deno run hello-world.js` - -```js -/** - * hello-world.js - */ -function capitalize(word) { - return word.charAt(0).toUpperCase() + word.slice(1); -} - -function hello(name) { - return "Hello " + capitalize(name); -} - -console.log(hello("john")); -console.log(hello("Sarah")); -console.log(hello("kai")); - -/** - * Output: - * - * Hello John - * Hello Sarah - * Hello Kai -**/ -``` - -## TypeScript - -This TypeScript example is exactly the same as the JavaScript example above, the -code just has the additional type information which TypeScript supports. - -The `deno run` command is exactly the same, it just references a `*.ts` file -rather than a `*.js` file. - -**Command:** `deno run hello-world.ts` - -```ts -/** - * hello-world.ts - */ -function capitalize(word: string): string { - return word.charAt(0).toUpperCase() + word.slice(1); -} - -function hello(name: string): string { - return "Hello " + capitalize(name); -} - -console.log(hello("john")); -console.log(hello("Sarah")); -console.log(hello("kai")); - -/** - * Output: - * - * Hello John - * Hello Sarah - * Hello Kai -**/ -``` diff --git a/docs/examples/http_server.md b/docs/examples/http_server.md deleted file mode 100644 index af239dfd3c..0000000000 --- a/docs/examples/http_server.md +++ /dev/null @@ -1,88 +0,0 @@ -# Simple HTTP web server - -## Concepts - -- Use Deno's integrated HTTP server to run your own web server. - -## Overview - -With just a few lines of code you can run your own HTTP web server with control -over the response status, request headers and more. - -> ℹ️ The _native_ HTTP server is currently unstable, meaning the API is not -> finalized and may change in breaking ways in future version of Deno. To have -> the APIs discussed here available, you must run Deno with the `--unstable` -> flag. - -## Sample web server - -In this example, the user-agent of the client is returned to the client: - -**webserver.ts**: - -```ts -// Start listening on port 8080 of localhost. -const server = Deno.listen({ port: 8080 }); -console.log(`HTTP webserver running. Access it at: http://localhost:8080/`); - -// Connections to the server will be yielded up as an async iterable. -for await (const conn of server) { - // In order to not be blocking, we need to handle each connection individually - // in its own async function. - (async () => { - // This "upgrades" a network connection into an HTTP connection. - const httpConn = Deno.serveHttp(conn); - // Each request sent over the HTTP connection will be yielded as an async - // iterator from the HTTP connection. - for await (const requestEvent of httpConn) { - // The native HTTP server uses the web standard `Request` and `Response` - // objects. - const body = `Your user-agent is:\n\n${requestEvent.request.headers.get( - "user-agent", - ) ?? "Unknown"}`; - // The requestEvent's `.respondWith()` method is how we send the response - // back to the client. - requestEvent.respondWith( - new Response(body, { - status: 200, - }), - ); - } - })(); -} -``` - -Then run this with: - -```shell -deno run --allow-net --unstable webserver.ts -``` - -Then navigate to `http://localhost:8080/` in a browser. - -### Using the `std/http` library - -If you do not want to use the unstable APIs, you can still use the standard -library's HTTP server: - -**webserver.ts**: - -```ts -import { serve } from "https://deno.land/std@$STD_VERSION/http/server.ts"; - -const server = serve({ port: 8080 }); -console.log(`HTTP webserver running. Access it at: http://localhost:8080/`); - -for await (const request of server) { - let bodyContent = "Your user-agent is:\n\n"; - bodyContent += request.headers.get("user-agent") || "Unknown"; - - request.respond({ status: 200, body: bodyContent }); -} -``` - -Then run this with: - -```shell -deno run --allow-net webserver.ts -``` diff --git a/docs/examples/import_export.md b/docs/examples/import_export.md deleted file mode 100644 index 7eaea31ba7..0000000000 --- a/docs/examples/import_export.md +++ /dev/null @@ -1,120 +0,0 @@ -# Import and export modules - -## Concepts - -- [import](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import) - allows you to include and use modules held elsewhere, on your local file - system or remotely. -- Imports are URLs or file system paths. -- [export](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/export) - allows you to specify which parts of your module are accessible to users who - import your module. - -## Overview - -Deno by default standardizes the way modules are imported in both JavaScript and -TypeScript using the ECMAScript 6 `import/export` standard. - -It adopts browser-like module resolution, meaning that file names must be -specified in full. You may not omit the file extension and there is no special -handling of `index.js`. - -```js -import { add, multiply } from "./arithmetic.ts"; -``` - -Dependencies are also imported directly, there is no package management -overhead. Local modules are imported in exactly the same way as remote modules. -As the examples show below, the same functionality can be produced in the same -way with local or remote modules. - -## Local Import - -In this example the `add` and `multiply` functions are imported from a local -`arithmetic.ts` module. - -**Command:** `deno run local.ts` - -```ts -/** - * local.ts - */ -import { add, multiply } from "./arithmetic.ts"; - -function totalCost(outbound: number, inbound: number, tax: number): number { - return multiply(add(outbound, inbound), tax); -} - -console.log(totalCost(19, 31, 1.2)); -console.log(totalCost(45, 27, 1.15)); - -/** - * Output - * - * 60 - * 82.8 - */ -``` - -## Remote Import - -In the local import example above an `add` and `multiply` method are imported -from a locally stored arithmetic module. The same functionality can be created -by importing `add` and `multiply` methods from a remote module too. - -In this case the Ramda module is referenced, including the version number. Also -note a JavaScript module is imported directly into a TypeScript module, Deno has -no problem handling this. - -**Command:** `deno run ./remote.ts` - -```ts -/** - * remote.ts - */ -import { - add, - multiply, -} from "https://x.nest.land/ramda@0.27.0/source/index.js"; - -function totalCost(outbound: number, inbound: number, tax: number): number { - return multiply(add(outbound, inbound), tax); -} - -console.log(totalCost(19, 31, 1.2)); -console.log(totalCost(45, 27, 1.15)); - -/** - * Output - * - * 60 - * 82.8 - */ -``` - -## Export - -In the local import example above the `add` and `multiply` functions are -imported from a locally stored arithmetic module. To make this possible the -functions stored in the arithmetic module must be exported. - -To do this just add the keyword `export` to the beginning of the function -signature as is shown below. - -```ts -/** - * arithmetic.ts - */ -export function add(a: number, b: number): number { - return a + b; -} - -export function multiply(a: number, b: number): number { - return a * b; -} -``` - -All functions, classes, constants and variables which need to be accessible -inside external modules must be exported. Either by prepending them with the -`export` keyword or including them in an export statement at the bottom of the -file. diff --git a/docs/examples/manage_dependencies.md b/docs/examples/manage_dependencies.md deleted file mode 100644 index ed5df9710f..0000000000 --- a/docs/examples/manage_dependencies.md +++ /dev/null @@ -1,73 +0,0 @@ -# Managing dependencies - -## Concepts - -- Deno uses URLs for dependency management. -- One convention places all these dependent URLs into a local `deps.ts` file. - Functionality is then exported out of `deps.ts` for use by local modules. -- Continuing this convention, dev only dependencies can be kept in a - `dev_deps.ts` file. -- See also [Linking to external code](../linking_to_external_code.md) - -## Overview - -In Deno there is no concept of a package manager as external modules are -imported directly into local modules. This raises the question of how to manage -remote dependencies without a package manager. In big projects with many -dependencies it will become cumbersome and time consuming to update modules if -they are all imported individually into individual modules. - -The standard practice for solving this problem in Deno is to create a `deps.ts` -file. All required remote dependencies are referenced in this file and the -required methods and classes are re-exported. The dependent local modules then -reference the `deps.ts` rather than the remote dependencies. If now for example -one remote dependency is used in several files, upgrading to a new version of -this remote dependency is much simpler as this can be done just within -`deps.ts`. - -With all dependencies centralized in `deps.ts`, managing these becomes easier. -Dev dependencies can also be managed in a separate `dev_deps.ts` file, allowing -clean separation between dev only and production dependencies. - -## Example - -```ts -/** - * deps.ts - * - * This module re-exports the required methods from the dependant remote Ramda module. - **/ -export { - add, - multiply, -} from "https://x.nest.land/ramda@0.27.0/source/index.js"; -``` - -In this example the same functionality is created as is the case in the -[local and remote import examples](./import_export.md). But in this case instead -of the Ramda module being referenced directly it is referenced by proxy using a -local `deps.ts` module. - -**Command:** `deno run example.ts` - -```ts -/** - * example.ts - */ - -import { add, multiply } from "./deps.ts"; - -function totalCost(outbound: number, inbound: number, tax: number): number { - return multiply(add(outbound, inbound), tax); -} - -console.log(totalCost(19, 31, 1.2)); -console.log(totalCost(45, 27, 1.15)); - -/** - * Output - * - * 60 - * 82.8 - */ -``` diff --git a/docs/examples/module_metadata.md b/docs/examples/module_metadata.md deleted file mode 100644 index c58c826483..0000000000 --- a/docs/examples/module_metadata.md +++ /dev/null @@ -1,68 +0,0 @@ -# Module metadata - -## Concepts - -- [import.meta](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/import.meta) - can provide information on the context of the module. -- The boolean - [import.meta.main](https://doc.deno.land/builtin/stable#ImportMeta) will let - you know if the current module is the program entry point. -- The string [import.meta.url](https://doc.deno.land/builtin/stable#ImportMeta) - will give you the URL of the current module. -- The string - [Deno.mainModule](https://doc.deno.land/builtin/stable#Deno.mainModule) will - give you the URL of the main module entry point, i.e. the module invoked by - the deno runtime. - -## Example - -The example below uses two modules to show the difference between -`import.meta.url`, `import.meta.main` and `Deno.mainModule`. In this example, -`module_a.ts` is the main module entry point: - -```ts -/** - * module_b.ts - */ -export function outputB() { - console.log("Module B's import.meta.url", import.meta.url); - console.log("Module B's mainModule url", Deno.mainModule); - console.log( - "Is module B the main module via import.meta.main?", - import.meta.main, - ); -} -``` - -```ts -/** - * module_a.ts - */ -import { outputB } from "./module_b.ts"; - -function outputA() { - console.log("Module A's import.meta.url", import.meta.url); - console.log("Module A's mainModule url", Deno.mainModule); - console.log( - "Is module A the main module via import.meta.main?", - import.meta.main, - ); -} - -outputA(); -console.log(""); -outputB(); -``` - -If `module_a.ts` is located in `/home/alice/deno` then the output of -`deno run --allow-read module_a.ts` is: - -``` -Module A's import.meta.url file:///home/alice/deno/module_a.ts -Module A's mainModule url file:///home/alice/deno/module_a.ts -Is module A the main module via import.meta.main? true - -Module B's import.meta.url file:///home/alice/deno/module_b.ts -Module B's mainModule url file:///home/alice/deno/module_a.ts -Is module B the main module via import.meta.main? false -``` diff --git a/docs/examples/os_signals.md b/docs/examples/os_signals.md deleted file mode 100644 index e49c3eb76c..0000000000 --- a/docs/examples/os_signals.md +++ /dev/null @@ -1,83 +0,0 @@ -# Handle OS Signals - -> This program makes use of an unstable Deno feature. Learn more about -> [unstable features](../runtime/stability.md). - -## Concepts - -- Use the `--unstable` flag to access new or unstable features in Deno. -- [Deno.signal](https://doc.deno.land/builtin/unstable#Deno.signal) can be used - to capture and monitor OS signals. -- Use the `dispose()` function of the Deno.signal - [SignalStream](https://doc.deno.land/builtin/unstable#Deno.SignalStream) to - stop watching the signal. - -## Async iterator example - -You can use `Deno.signal()` function for handling OS signals: - -```ts -/** - * async-iterator-signal.ts - */ -console.log("Press Ctrl-C to trigger a SIGINT signal"); -for await (const _ of Deno.signal(Deno.Signal.SIGINT)) { - console.log("interrupted!"); - Deno.exit(); -} -``` - -Run with: - -```shell -deno run --unstable async-iterator-signal.ts -``` - -## Promise based example - -`Deno.signal()` also works as a promise: - -```ts -/** - * promise-signal.ts - */ -console.log("Press Ctrl-C to trigger a SIGINT signal"); -await Deno.signal(Deno.Signal.SIGINT); -console.log("interrupted!"); -Deno.exit(); -``` - -Run with: - -```shell -deno run --unstable promise-signal.ts -``` - -## Stop watching signals - -If you want to stop watching the signal, you can use `dispose()` method of the -signal object: - -```ts -/** - * dispose-signal.ts - */ -const sig = Deno.signal(Deno.Signal.SIGINT); -setTimeout(() => { - sig.dispose(); - console.log("No longer watching SIGINT signal"); -}, 5000); - -console.log("Watching SIGINT signals"); -for await (const _ of sig) { - console.log("interrupted"); -} -``` - -Run with: - -```shell -deno run --unstable dispose-signal.ts -``` - -The above for-await loop exits after 5 seconds when `sig.dispose()` is called. diff --git a/docs/examples/read_write_files.md b/docs/examples/read_write_files.md deleted file mode 100644 index 8c1eae1eec..0000000000 --- a/docs/examples/read_write_files.md +++ /dev/null @@ -1,108 +0,0 @@ -# Read and write files - -## Concepts - -- Deno's runtime API provides the - [Deno.readTextFile](https://doc.deno.land/builtin/stable#Deno.readTextFile) - and - [Deno.writeTextFile](https://doc.deno.land/builtin/stable#Deno.writeTextFile) - asynchronous functions for reading and writing entire text files. -- Like many of Deno's APIs, synchronous alternatives are also available. See - [Deno.readTextFileSync](https://doc.deno.land/builtin/stable#Deno.readTextFileSync) - and - [Deno.writeTextFileSync](https://doc.deno.land/builtin/stable#Deno.writeTextFileSync). -- Use `--allow-read` and `--allow-write` permissions to gain access to the file - system. - -## Overview - -Interacting with the filesystem to read and write files is a common requirement. -Deno provides a number of ways to do this via the -[standard library](https://deno.land/std) and the -[Deno runtime API](https://doc.deno.land/builtin/stable). - -As highlighted in the [Fetch Data example](./fetch_data) Deno restricts access -to Input / Output by default for security reasons. Therefore when interacting -with the filesystem the `--allow-read` and `--allow-write` flags must be used -with the `deno run` command. - -## Reading a text file - -The Deno runtime API makes it possible to read text files via the -`Deno.readTextFile()` method, it just requires a path string or URL object. The -method returns a promise which provides access to the file's text data. - -**Command:** `deno run --allow-read read.ts` - -```typescript -/** - * read.ts - */ -const text = Deno.readTextFile("./people.json"); - -text.then((response) => console.log(response)); - -/** - * Output: - * - * [ - * {"id": 1, "name": "John", "age": 23}, - * {"id": 2, "name": "Sandra", "age": 51}, - * {"id": 5, "name": "Devika", "age": 11} - * ] - */ -``` - -## Writing a text file - -The Deno runtime API allows developers to write text to files via the -`Deno.writeTextFile()` method. It just requires a file path and text string. The -method returns a promise which resolves when the file was successfully written. - -To run the command the `--allow-write` flag must be supplied to the `deno run` -command. - -**Command:** `deno run --allow-write write.ts` - -```typescript -/** - * write.ts - */ -const write = Deno.writeTextFile("./hello.txt", "Hello World!"); - -write.then(() => console.log("File written to ./hello.txt")); - -/** - * Output: File written to ./hello.txt - */ -``` - -By combining `Deno.writeTextFile` and `JSON.stringify` you can easily write -serialized JSON objects to a file. This example uses synchronous -`Deno.writeTextFileSync`, but this can also be done asynchronously using -`await Deno.writeTextFile`. - -To execute the code the `deno run` command needs the write flag. - -**Command:** `deno run --allow-write write.ts` - -```typescript -/** - * write.ts - */ -function writeJson(path: string, data: object): string { - try { - Deno.writeTextFileSync(path, JSON.stringify(data)); - - return "Written to " + path; - } catch (e) { - return e.message; - } -} - -console.log(writeJson("./data.json", { hello: "World" })); - -/** - * Output: Written to ./data.json - */ -``` diff --git a/docs/examples/subprocess.md b/docs/examples/subprocess.md deleted file mode 100644 index e5956e1af5..0000000000 --- a/docs/examples/subprocess.md +++ /dev/null @@ -1,99 +0,0 @@ -# Creating a subprocess - -## Concepts - -- Deno is capable of spawning a subprocess via - [Deno.run](https://doc.deno.land/builtin/stable#Deno.run). -- `--allow-run` permission is required to spawn a subprocess. -- Spawned subprocesses do not run in a security sandbox. -- Communicate with the subprocess via the - [stdin](https://doc.deno.land/builtin/stable#Deno.stdin), - [stdout](https://doc.deno.land/builtin/stable#Deno.stdout) and - [stderr](https://doc.deno.land/builtin/stable#Deno.stderr) streams. -- Use a specific shell by providing its path/name and its string input switch, - e.g. `Deno.run({cmd: ["bash", "-c", '"ls -la"']});` - -## Simple example - -This example is the equivalent of running `'echo hello'` from the command line. - -```ts -/** - * subprocess_simple.ts - */ - -// create subprocess -const p = Deno.run({ - cmd: ["echo", "hello"], -}); - -// await its completion -await p.status(); -``` - -Run it: - -```shell -$ deno run --allow-run ./subprocess_simple.ts -hello -``` - -## Security - -The `--allow-run` permission is required for creation of a subprocess. Be aware -that subprocesses are not run in a Deno sandbox and therefore have the same -permissions as if you were to run the command from the command line yourself. - -## Communicating with subprocesses - -By default when you use `Deno.run()` the subprocess inherits `stdin`, `stdout` -and `stderr` of the parent process. If you want to communicate with started -subprocess you can use `"piped"` option. - -```ts -/** - * subprocess.ts - */ -const fileNames = Deno.args; - -const p = Deno.run({ - cmd: [ - "deno", - "run", - "--allow-read", - "https://deno.land/std@$STD_VERSION/examples/cat.ts", - ...fileNames, - ], - stdout: "piped", - stderr: "piped", -}); - -const { code } = await p.status(); - -// Reading the outputs closes their pipes -const rawOutput = await p.output(); -const rawError = await p.stderrOutput(); - -if (code === 0) { - await Deno.stdout.write(rawOutput); -} else { - const errorString = new TextDecoder().decode(rawError); - console.log(errorString); -} - -Deno.exit(code); -``` - -When you run it: - -```shell -$ deno run --allow-run ./subprocess.ts -[file content] - -$ deno run --allow-run ./subprocess.ts non_existent_file.md - -Uncaught NotFound: No such file or directory (os error 2) - at DenoError (deno/js/errors.ts:22:5) - at maybeError (deno/js/errors.ts:41:12) - at handleAsyncMsgFromRust (deno/js/dispatch.ts:27:17) -``` diff --git a/docs/examples/tcp_echo.md b/docs/examples/tcp_echo.md deleted file mode 100644 index f016b8bd84..0000000000 --- a/docs/examples/tcp_echo.md +++ /dev/null @@ -1,47 +0,0 @@ -# TCP echo server - -## Concepts - -- Listening for TCP port connections with - [Deno.listen](https://doc.deno.land/builtin/stable#Deno.listen). -- Use - [copy](https://doc.deno.land/https/deno.land/std@$STD_VERSION/io/util.ts#copy) - to take inbound data and redirect it to be outbound data. - -## Example - -This is an example of a server which accepts connections on port 8080, and -returns to the client anything it sends. - -```ts -/** - * echo_server.ts - */ -import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts"; -const listener = Deno.listen({ port: 8080 }); -console.log("listening on 0.0.0.0:8080"); -for await (const conn of listener) { - copy(conn, conn).finally(() => conn.close()); -} -``` - -Run with: - -```shell -deno run --allow-net echo_server.ts -``` - -To test it, try sending data to it with -[netcat](https://en.wikipedia.org/wiki/Netcat) (Linux/MacOS only). Below -`'hello world'` is sent over the connection, which is then echoed back to the -user: - -```shell -$ nc localhost 8080 -hello world -hello world -``` - -Like the [cat.ts example](./unix_cat.md), the `copy()` function here also does -not make unnecessary memory copies. It receives a packet from the kernel and -sends back, without further complexity. diff --git a/docs/examples/unix_cat.md b/docs/examples/unix_cat.md deleted file mode 100644 index 0ce28d718e..0000000000 --- a/docs/examples/unix_cat.md +++ /dev/null @@ -1,36 +0,0 @@ -# An implementation of the unix "cat" program - -## Concepts - -- Use the Deno runtime API to output the contents of a file to the console. -- [Deno.args](https://doc.deno.land/builtin/stable#Deno.args) accesses the - command line arguments. -- [Deno.open](https://doc.deno.land/builtin/stable#Deno.open) is used to get a - handle to a file. -- [copy](https://doc.deno.land/https/deno.land/std@$STD_VERSION/io/util.ts#copy) - is used to transfer data from the file to the output stream. -- Files should be closed when you are finished with them -- Modules can be run directly from remote URLs. - -## Example - -In this program each command-line argument is assumed to be a filename, the file -is opened, and printed to stdout (e.g. the console). - -```ts -/** - * cat.ts - */ -import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts"; -for (const filename of Deno.args) { - const file = await Deno.open(filename); - await copy(file, Deno.stdout); - file.close(); -} -``` - -To run the program: - -```shell -deno run --allow-read https://deno.land/std@$STD_VERSION/examples/cat.ts /etc/passwd -``` diff --git a/docs/getting_started.md b/docs/getting_started.md deleted file mode 100644 index ffd6cee895..0000000000 --- a/docs/getting_started.md +++ /dev/null @@ -1,12 +0,0 @@ -# Getting Started - -In this chapter we'll discuss: - -- [Installing Deno](./getting_started/installation.md) -- [Setting up your environment](./getting_started/setup_your_environment.md) -- [Running a `Hello World` script](./getting_started/first_steps.md) -- [Writing our own script](./getting_started/first_steps.md) -- [Command line interface](./getting_started/command_line_interface.md) -- [Understanding permissions](./getting_started/permissions.md) -- [Using WebAssembly](./getting_started/webassembly.md) -- [Debugging your code](./getting_started/debugging_your_code.md) diff --git a/docs/getting_started/command_line_interface.md b/docs/getting_started/command_line_interface.md deleted file mode 100644 index 191c1e7568..0000000000 --- a/docs/getting_started/command_line_interface.md +++ /dev/null @@ -1,145 +0,0 @@ -## Command line interface - -Deno is a command line program. You should be familiar with some simple commands -having followed the examples thus far and already understand the basics of shell -usage. - -There are multiple ways of viewing the main help text: - -```shell -# Using the subcommand. -deno help - -# Using the short flag -- outputs the same as above. -deno -h - -# Using the long flag -- outputs more detailed help text where available. -deno --help -``` - -Deno's CLI is subcommand-based. The above commands should show you a list of -those supported, such as `deno bundle`. To see subcommand-specific help for -`bundle`, you can similarly run one of: - -```shell -deno help bundle -deno bundle -h -deno bundle --help -``` - -Detailed guides to each subcommand can be found [here](../tools.md). - -### Script source - -Deno can grab the scripts from multiple sources, a filename, a url, and '-' to -read the file from stdin. The last is useful for integration with other -applications. - -```shell -deno run main.ts -deno run https://mydomain.com/main.ts -cat main.ts | deno run - -``` - -### Script arguments - -Separately from the Deno runtime flags, you can pass user-space arguments to the -script you are running by specifying them after the script name: - -```shell -deno run main.ts a b -c --quiet -``` - -```ts -// main.ts -console.log(Deno.args); // [ "a", "b", "-c", "--quiet" ] -``` - -**Note that anything passed after the script name will be passed as a script -argument and not consumed as a Deno runtime flag.** This leads to the following -pitfall: - -```shell -# Good. We grant net permission to net_client.ts. -deno run --allow-net net_client.ts - -# Bad! --allow-net was passed to Deno.args, throws a net permission error. -deno run net_client.ts --allow-net -``` - -Some see it as unconventional that: - -> a non-positional flag is parsed differently depending on its position. - -However: - -1. This is the most logical and ergonomic way of distinguishing between runtime - flags and script arguments. -2. This is, in fact, the same behaviour as that of any other popular runtime. - - Try `node -c index.js` and `node index.js -c`. The first will only do a - syntax check on `index.js` as per Node's `-c` flag. The second will - _execute_ `index.js` with `-c` passed to `require("process").argv`. - ---- - -There exist logical groups of flags that are shared between related subcommands. -We discuss these below. - -### Watch mode - -You can supply the `--watch` flag to `deno run` to enable the built in file -watcher. When Deno starts up with this flag it watches the entrypoint, and all -local files the entrypoint statically imports. Whenever one of these files is -changed on disk, the program will automatically be restarted. - -``` -deno run --watch main.ts -``` - -### Integrity flags - -Affect commands which can download resources to the cache: `deno cache`, -`deno run` and `deno test`. - -``` ---lock Check the specified lock file ---lock-write Write lock file. Use with --lock. -``` - -Find out more about these -[here](../linking_to_external_code/integrity_checking.md). - -### Cache and compilation flags - -Affect commands which can populate the cache: `deno cache`, `deno run` and -`deno test`. As well as the flags above this includes those which affect module -resolution, compilation configuration etc. - -``` ---config Load tsconfig.json configuration file ---import-map UNSTABLE: Load import map file ---no-remote Do not resolve remote modules ---reload= Reload source code cache (recompile TypeScript) ---unstable Enable unstable APIs -``` - -### Runtime flags - -Affect commands which execute user code: `deno run` and `deno test`. These -include all of the above as well as the following. - -#### Permission flags - -These are listed [here](./permissions.md#permissions-list). - -#### Other runtime flags - -More flags which affect the execution environment. - -``` ---cached-only Require that remote dependencies are already cached ---inspect= activate inspector on host:port ... ---inspect-brk= activate inspector on host:port and break at ... ---seed Seed Math.random() ---v8-flags= Set V8 command line options. For help: ... -``` diff --git a/docs/getting_started/debugging_your_code.md b/docs/getting_started/debugging_your_code.md deleted file mode 100644 index 04bd711cd1..0000000000 --- a/docs/getting_started/debugging_your_code.md +++ /dev/null @@ -1,145 +0,0 @@ -## Debugging your code - -Deno supports the [V8 Inspector Protocol](https://v8.dev/docs/inspector). - -It's possible to debug Deno programs using Chrome Devtools or other clients that -support the protocol (eg. VSCode). - -To activate debugging capabilities run Deno with the `--inspect` or -`--inspect-brk` flags. - -The `--inspect` flag allows attaching the debugger at any point in time, while -`--inspect-brk` will wait for the debugger to attach and will pause execution on -the first line of code. - -### Chrome Devtools - -Let's try debugging a program using Chrome Devtools. For this, we'll use -[file_server.ts](https://deno.land/std@$STD_VERSION/http/file_server.ts) from -`std`, a static file server. - -Use the `--inspect-brk` flag to break execution on the first line: - -```shell -$ deno run --inspect-brk --allow-read --allow-net https://deno.land/std@$STD_VERSION/http/file_server.ts -Debugger listening on ws://127.0.0.1:9229/ws/1e82c406-85a9-44ab-86b6-7341583480b1 -Download https://deno.land/std@$STD_VERSION/http/file_server.ts -Compile https://deno.land/std@$STD_VERSION/http/file_server.ts -... -``` - -Open `chrome://inspect` and click `Inspect` next to target: - -![chrome://inspect](../images/debugger1.jpg) - -It might take a few seconds after opening the Devtools to load all modules. - -![Devtools opened](../images/debugger2.jpg) - -You might notice that Devtools paused execution on the first line of -`_constants.ts` instead of `file_server.ts`. This is expected behavior and is -caused by the way ES modules are evaluated by V8 (`_constants.ts` is left-most, -bottom-most dependency of `file_server.ts` so it is evaluated first). - -At this point all source code is available in the Devtools, so let's open up -`file_server.ts` and add a breakpoint there; go to "Sources" pane and expand the -tree: - -![Open file_server.ts](../images/debugger3.jpg) - -_Looking closely you'll find duplicate entries for each file; one written -regularly and one in italics. The former is compiled source file (so in the case -of `.ts` files it will be emitted JavaScript source), while the latter is a -source map for the file._ - -Next, add a breakpoint in the `listenAndServe` method: - -![Break in file_server.ts](../images/debugger4.jpg) - -As soon as we've added the breakpoint Devtools automatically opened up the -source map file, which allows us step through the actual source code that -includes types. - -Now that we have our breakpoints set, we can resume the execution of our script -so that we might inspect an incoming request. Hit the Resume script execution -button to do so. You might even need to hit it twice! - -Once our script is running again, let's send a request and inspect it in -Devtools: - -``` -$ curl http://0.0.0.0:4507/ -``` - -![Break in request handling](../images/debugger5.jpg) - -At this point we can introspect the contents of the request and go step-by-step -to debug the code. - -### VSCode - -Deno can be debugged using VSCode. - -Official support via the plugin is being worked on - -https://github.com/denoland/vscode_deno/issues/12 - -We can still attach the debugger by manually providing a -[`launch.json`](https://code.visualstudio.com/docs/editor/debugging#_launch-configurations) -config: - -```json -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Deno", - "type": "pwa-node", - "request": "launch", - "cwd": "${workspaceFolder}", - "runtimeExecutable": "deno", - "runtimeArgs": ["run", "--inspect-brk", "-A", "${file}"], - "attachSimplePort": 9229 - } - ] -} -``` - -**NOTE**: This uses the file you have open as the entry point; replace `${file}` -with a script name if you want a fixed entry point. - -Let's try out debugging a local source file. Create `server.ts`: - -```ts -import { serve } from "https://deno.land/std@$STD_VERSION/http/server.ts"; -const server = serve({ port: 8000 }); -console.log("http://localhost:8000/"); - -for await (const req of server) { - req.respond({ body: "Hello World\n" }); -} -``` - -Then we can set a breakpoint, and run the created configuration: - -![VSCode debugger](../images/debugger7.jpg) - -### JetBrains IDEs - -You can debug Deno using your JetBrains IDE by right-clicking the file you want -to debug and selecting the `Debug 'Deno: '` option. This will create -a run/debug configuration with no permission flags set. To configure these flags -edit the run/debug configuration and modify the `Arguments` field with the -required flags. - -### Other - -Any client that implements the Devtools protocol should be able to connect to a -Deno process. - -### Limitations - -Devtools support is still immature. There is some functionality that is known to -be missing or buggy: - -- autocomplete in Devtools' console causes the Deno process to exit. -- profiling and memory dumps might not work correctly. diff --git a/docs/getting_started/first_steps.md b/docs/getting_started/first_steps.md deleted file mode 100644 index fda5bc47b9..0000000000 --- a/docs/getting_started/first_steps.md +++ /dev/null @@ -1,146 +0,0 @@ -## First steps - -This page contains some examples to teach you about the fundamentals of Deno. - -This document assumes that you have some prior knowledge of JavaScript, -especially about `async`/`await`. If you have no prior knowledge of JavaScript, -you might want to follow a guide -[on the basics of JavaScript](https://developer.mozilla.org/en-US/docs/Learn/JavaScript) -before attempting to start with Deno. - -### Hello World - -Deno is a runtime for JavaScript/TypeScript which tries to be web compatible and -use modern features wherever possible. - -Browser compatibility means a `Hello World` program in Deno is the same as the -one you can run in the browser: - -```ts -console.log("Welcome to Deno!"); -``` - -Try the program: - -```shell -deno run https://deno.land/std@$STD_VERSION/examples/welcome.ts -``` - -### Making an HTTP request - -Many programs use HTTP requests to fetch data from a webserver. Let's write a -small program that fetches a file and prints its contents out to the terminal. - -Just like in the browser you can use the web standard -[`fetch`](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API) API to -make HTTP calls: - -```ts -const url = Deno.args[0]; -const res = await fetch(url); - -const body = new Uint8Array(await res.arrayBuffer()); -await Deno.stdout.write(body); -``` - -Let's walk through what this application does: - -1. We get the first argument passed to the application, and store it in the - `url` constant. -2. We make a request to the url specified, await the response, and store it in - the `res` constant. -3. We parse the response body as an - [`ArrayBuffer`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/ArrayBuffer), - await the response, and convert it into a - [`Uint8Array`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8Array) - to store in the `body` constant. -4. We write the contents of the `body` constant to `stdout`. - -Try it out: - -```shell -deno run https://deno.land/std@$STD_VERSION/examples/curl.ts https://example.com -``` - -You will see this program returns an error regarding network access, so what did -we do wrong? You might remember from the introduction that Deno is a runtime -which is secure by default. This means you need to explicitly give programs the -permission to do certain 'privileged' actions, such as access the network. - -Try it out again with the correct permission flag: - -```shell -deno run --allow-net=example.com https://deno.land/std@$STD_VERSION/examples/curl.ts https://example.com -``` - -### Reading a file - -Deno also provides APIs which do not come from the web. These are all contained -in the `Deno` global. You can find documentation for these APIs on -[doc.deno.land](https://doc.deno.land/builtin/stable#Deno). - -Filesystem APIs for example do not have a web standard form, so Deno provides -its own API. - -In this program each command-line argument is assumed to be a filename, the file -is opened, and printed to stdout. - -```ts -import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts"; -const filenames = Deno.args; -for (const filename of filenames) { - const file = await Deno.open(filename); - await copy(file, Deno.stdout); - file.close(); -} -``` - -The `copy()` function here actually makes no more than the necessary -kernel→userspace→kernel copies. That is, the same memory from which data is read -from the file, is written to stdout. This illustrates a general design goal for -I/O streams in Deno. - -Try the program: - -```shell -deno run --allow-read https://deno.land/std@$STD_VERSION/examples/cat.ts /etc/passwd -``` - -### TCP server - -This is an example of a server which accepts connections on port 8080, and -returns to the client anything it sends. - -```ts -import { copy } from "https://deno.land/std@$STD_VERSION/io/util.ts"; -const hostname = "0.0.0.0"; -const port = 8080; -const listener = Deno.listen({ hostname, port }); -console.log(`Listening on ${hostname}:${port}`); -for await (const conn of listener) { - copy(conn, conn); -} -``` - -For security reasons, Deno does not allow programs to access the network without -explicit permission. To allow accessing the network, use a command-line flag: - -```shell -deno run --allow-net https://deno.land/std@$STD_VERSION/examples/echo_server.ts -``` - -To test it, try sending data to it with netcat: - -```shell -$ nc localhost 8080 -hello world -hello world -``` - -Like the `cat.ts` example, the `copy()` function here also does not make -unnecessary memory copies. It receives a packet from the kernel and sends it -back, without further complexity. - -### More examples - -You can find more examples, like an HTTP file server, in the `Examples` chapter. diff --git a/docs/getting_started/installation.md b/docs/getting_started/installation.md deleted file mode 100644 index 781d6f9802..0000000000 --- a/docs/getting_started/installation.md +++ /dev/null @@ -1,92 +0,0 @@ -## Installation - -Deno works on macOS, Linux, and Windows. Deno is a single binary executable. It -has no external dependencies. - -### Download and install - -[deno_install](https://github.com/denoland/deno_install) provides convenience -scripts to download and install the binary. - -Using Shell (macOS and Linux): - -```shell -curl -fsSL https://deno.land/x/install/install.sh | sh -``` - -Using PowerShell (Windows): - -```shell -iwr https://deno.land/x/install/install.ps1 -useb | iex -``` - -Using [Scoop](https://scoop.sh/) (Windows): - -```shell -scoop install deno -``` - -Using [Chocolatey](https://chocolatey.org/packages/deno) (Windows): - -```shell -choco install deno -``` - -Using [Homebrew](https://formulae.brew.sh/formula/deno) (macOS): - -```shell -brew install deno -``` - -Using [Nix](https://nixos.org/download.html) (macOS and Linux): - -```shell -nix-shell -p deno -``` - -Build and install from source using [Cargo](https://crates.io/crates/deno): - -```shell -cargo install deno --locked -``` - -Deno binaries can also be installed manually, by downloading a zip file at -[github.com/denoland/deno/releases](https://github.com/denoland/deno/releases). -These packages contain just a single executable file. You will have to set the -executable bit on macOS and Linux. - -### Docker - -For more information and instructions on the official Docker images: -[https://github.com/denoland/deno_docker](https://github.com/denoland/deno_docker) - -### Testing your installation - -To test your installation, run `deno --version`. If this prints the Deno version -to the console the installation was successful. - -Use `deno help` to see help text documenting Deno's flags and usage. Get a -detailed guide on the CLI [here](./command_line_interface.md). - -### Updating - -To update a previously installed version of Deno, you can run: - -```shell -deno upgrade -``` - -This will fetch the latest release from -[github.com/denoland/deno/releases](https://github.com/denoland/deno/releases), -unzip it, and replace your current executable with it. - -You can also use this utility to install a specific version of Deno: - -```shell -deno upgrade --version 1.0.1 -``` - -### Building from source - -Information about how to build from source can be found in the `Contributing` -chapter. diff --git a/docs/getting_started/permissions.md b/docs/getting_started/permissions.md deleted file mode 100644 index 0a8eda6bff..0000000000 --- a/docs/getting_started/permissions.md +++ /dev/null @@ -1,96 +0,0 @@ -## Permissions - -Deno is secure by default. Therefore, unless you specifically enable it, a deno -module has no file, network, or environment access for example. Access to -security-sensitive areas or functions requires the use of permissions to be -granted to a deno process on the command line. - -For the following example, `mod.ts` has been granted read-only access to the -file system. It cannot write to it, or perform any other security-sensitive -functions. - -```shell -deno run --allow-read mod.ts -``` - -### Permissions list - -The following permissions are available: - -- **-A, --allow-all** Allow all permissions. This disables all security. -- **--allow-env=\** Allow environment access for things like getting - and setting of environment variables. Since Deno 1.9, you can specify a - optional, comma-separated list of environment variables to provide an - allow-list of allowed environment variables. -- **--allow-hrtime** Allow high-resolution time measurement. High-resolution - time can be used in timing attacks and fingerprinting. -- **--allow-net=\** Allow network access. You can specify an - optional, comma-separated list of domains to provide an allow-list of allowed - domains. -- **--allow-plugin** Allow loading plugins. Please note that --allow-plugin is - an unstable feature. -- **--allow-read=\** Allow file system read access. You can specify - an optional, comma-separated list of directories or files to provide an - allow-list of allowed file system access. -- **--allow-run=\** Allow running subprocesses. Since Deno 1.9, You - can specify an options, comma-separated list of subprocesses to provide an - allow-list of allowed subprocesses. Be aware that subprocesses are not run in - a sandbox and therefore do not have the same security restrictions as the deno - process. Therefore, use with caution. -- **--allow-write=\** Allow file system write access. You can - specify an optional, comma-separated list of directories or files to provide - an allow-list of allowed file system access. - -### Permissions allow-list - -Deno also allows you to control the granularity of some permissions with -allow-lists. - -This example restricts file system access by allow-listing only the `/usr` -directory, however the execution fails as the process was attempting to access a -file in the `/etc` directory: - -```shell -$ deno run --allow-read=/usr https://deno.land/std@$STD_VERSION/examples/cat.ts /etc/passwd -error: Uncaught PermissionDenied: read access to "/etc/passwd", run again with the --allow-read flag -► $deno$/dispatch_json.ts:40:11 - at DenoError ($deno$/errors.ts:20:5) - ... -``` - -Try it out again with the correct permissions by allow-listing `/etc` instead: - -```shell -deno run --allow-read=/etc https://deno.land/std@$STD_VERSION/examples/cat.ts /etc/passwd -``` - -`--allow-write` works the same as `--allow-read`. - -### Network access: - -_fetch.ts_: - -```ts -const result = await fetch("https://deno.land/"); -``` - -This is an example of how to allow-list hosts/urls: - -```shell -deno run --allow-net=github.com,deno.land fetch.ts -``` - -If `fetch.ts` tries to establish network connections to any other domain, the -process will fail. - -Allow net calls to any host/url: - -```shell -deno run --allow-net fetch.ts -``` - -### Conference - -Ryan Dahl. (September 25, 2020). -[The Deno security model](https://www.youtube.com/watch?v=r5F6dekUmdE#t=34m57). -Speakeasy JS. diff --git a/docs/getting_started/setup_your_environment.md b/docs/getting_started/setup_your_environment.md deleted file mode 100644 index 769528b744..0000000000 --- a/docs/getting_started/setup_your_environment.md +++ /dev/null @@ -1,329 +0,0 @@ -## Set up your environment - -To productively get going with Deno you should set up your environment. This -means setting up shell autocomplete, environmental variables and your editor or -IDE of choice. - -### Environmental variables - -There are several env vars that control how Deno behaves: - -`DENO_DIR` defaults to `$HOME/.cache/deno` but can be set to any path to control -where generated and cached source code is written and read to. - -`NO_COLOR` will turn off color output if set. See https://no-color.org/. User -code can test if `NO_COLOR` was set without having `--allow-env` by using the -boolean constant `Deno.noColor`. - -### Shell autocomplete - -You can generate completion script for your shell using the -`deno completions ` command. The command outputs to stdout so you should -redirect it to an appropriate file. - -The supported shells are: - -- zsh -- bash -- fish -- powershell -- elvish - -Example (bash): - -```shell -deno completions bash > /usr/local/etc/bash_completion.d/deno.bash -source /usr/local/etc/bash_completion.d/deno.bash -``` - -Example (zsh without framework): - -```shell -mkdir ~/.zsh # create a folder to save your completions. it can be anywhere -deno completions zsh > ~/.zsh/_deno -``` - -then add this to your `.zshrc` - -```shell -fpath=(~/.zsh $fpath) -autoload -Uz compinit -compinit -u -``` - -and restart your terminal. note that if completions are still not loading, you -may need to run `rm ~/.zcompdump/` to remove previously generated completions -and then `compinit` to generate them again. - -Example (zsh + oh-my-zsh) [recommended for zsh users] : - -```shell -mkdir ~/.oh-my-zsh/custom/plugins/deno -deno completions zsh > ~/.oh-my-zsh/custom/plugins/deno/_deno -``` - -After this add deno plugin under plugins tag in `~/.zshrc` file. for tools like -`antigen` path will be `~/.antigen/bundles/robbyrussell/oh-my-zsh/plugins` and -command will be `antigen bundle deno` and so on. - -Example (Powershell): - -```shell -deno completions powershell >> $profile -.$profile -``` - -This will be create a Powershell profile at -`$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1` by default, -and it will be run whenever you launch the PowerShell. - -### Editors and IDEs - -Because Deno requires the use of file extensions for module imports and allows -http imports, and most editors and language servers do not natively support this -at the moment, many editors will throw errors about being unable to find files -or imports having unnecessary file extensions. - -The community has developed extensions for some editors to solve these issues: - -#### VS Code - -The beta version of [vscode_deno](https://github.com/denoland/vscode_deno) is -published on the -[Visual Studio Marketplace](https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno). -Please report any issues. - -#### JetBrains IDEs - -Support for JetBrains IDEs is available through -[the Deno plugin](https://plugins.jetbrains.com/plugin/14382-deno). - -Once installed, replace the content of -`External Libraries > Deno Library > lib > lib.deno.d.ts` with the output of -`deno types`. This will ensure the typings for the extension match the current -version. You will have to do this every time you update the version of Deno. For -more information on how to set-up your JetBrains IDE for Deno, read -[this comment](https://youtrack.jetbrains.com/issue/WEB-41607#focus=streamItem-27-4160152.0-0) -on YouTrack. - -#### Vim and NeoVim - -Vim works fairly well for Deno/TypeScript if you install -[CoC](https://github.com/neoclide/coc.nvim) (intellisense engine and language -server protocol) or [ALE](https://github.com/dense-analysis/ale) (syntax checker -and language server protocol client). - -##### CoC - -After CoC is installed, from inside Vim, run`:CocInstall coc-tsserver` and -`:CocInstall coc-deno`. Run `:CocCommand deno.initializeWorkspace` in your -project to initialize workspace configurations. From now on, things like `gd` -(go to definition) and `gr` (goto/find references) should work. - -##### ALE - -ALE integrates with Deno's LSP out of the box and should not require any extra -configuration. However, if your Deno executable is not located in `$PATH`, has a -different name than `deno` or you want to use unstable features/APIs, you need -to override ALE's default values. See -[`:help ale-typescript`](https://github.com/dense-analysis/ale/blob/master/doc/ale-typescript.txt). - -ALE provides support for autocompletion, refactoring, going to definition, -finding references and more, however, key bindings need to be configured -manually. Copy the snippet below into your `vimrc`/`init.vim` for basic -configuration or consult the -[official documentation](https://github.com/dense-analysis/ale#table-of-contents) -for a more in-depth look at how to configure ALE. - -ALE can fix linter issues by running `deno fmt`. To instruct ALE to use the Deno -formatter the `ale_linter` setting needs to be set either on a per buffer basis -(`let b:ale_linter = ['deno']`) or globally for all TypeScript files -(`let g:ale_fixers={'typescript': ['deno']}`) - -```vim -" Use ALE autocompletion with Vim's 'omnifunc' setting (press in insert mode) -autocmd FileType typescript set omnifunc=ale#completion#OmniFunc - -" Make sure to use map instead of noremap when using a (...) expression as the {rhs} -nmap gr (ale_rename) -nmap gR (ale_find_reference) -nmap gd (ale_go_to_definition) -nmap gD (ale_go_to_type_definition) - -let g:ale_fixers = {'typescript': ['deno']} -let g:ale_fix_on_save = 1 " run deno fmt when saving a buffer -``` - -#### Emacs - -Emacs works pretty well for a TypeScript project targeted to Deno by using a -combination of [tide](https://github.com/ananthakumaran/tide) which is the -canonical way of using TypeScript within Emacs and -[typescript-deno-plugin](https://github.com/justjavac/typescript-deno-plugin) -which is what is used by the -[official VSCode extension for Deno](https://github.com/denoland/vscode_deno). - -To use it, first make sure that `tide` is setup for your instance of Emacs. -Next, as instructed on the -[typescript-deno-plugin](https://github.com/justjavac/typescript-deno-plugin) -page, first `npm install --save-dev typescript-deno-plugin typescript` in your -project (`npm init -y` as necessary), then add the following block to your -`tsconfig.json` and you are off to the races! - -```jsonc -{ - "compilerOptions": { - "plugins": [ - { - "name": "typescript-deno-plugin", - "enable": true, // default is `true` - "importmap": "import_map.json" - } - ] - } -} -``` - -You can also use built-in Deno language server by using -[`eglot`](https://github.com/joaotavora/eglot). - -Example configuration: - -```elisp -(add-to-list 'eglot-server-programs '((js-mode typescript-mode) . (eglot-deno "deno" "lsp"))) - - (defclass eglot-deno (eglot-lsp-server) () - :documentation "A custom class for deno lsp.") - - (cl-defmethod eglot-initialization-options ((server eglot-deno)) - "Passes through required deno initialization options" - (list :enable t - :lint t)) -``` - -#### Atom - -Install [atom-ide-base](https://atom.io/packages/atom-ide-base) package and -[atom-ide-deno](https://atom.io/packages/atom-ide-deno) package on Atom. - -#### LSP clients - -Deno has builtin support for the -[Language server protocol](https://langserver.org) as of version 1.6.0 or later. - -If your editor supports the LSP, you can use Deno as a language server for -TypeScript and JavaScript. - -The editor can start the server with `deno lsp`. - -##### Example for Kakoune - -After installing the [`kak-lsp`](https://github.com/kak-lsp/kak-lsp) LSP client -you can add the Deno language server by adding the following to your -`kak-lsp.toml` - -```toml -[language.deno] -filetypes = ["typescript", "javascript"] -roots = [".git"] -command = "deno" -args = ["lsp"] - -[language.deno.initialization_options] -enable = true -lint = true -``` - -##### Example for Vim/Neovim - -After installing the [`vim-lsp`](https://github.com/prabirshrestha/vim-lsp) LSP -client you can add the Deno language server by adding the following to your -`vimrc`/`init.vim`: - -```vim -if executable("deno") - augroup LspTypeScript - autocmd! - autocmd User lsp_setup call lsp#register_server({ - \ "name": "deno lsp", - \ "cmd": {server_info -> ["deno", "lsp"]}, - \ "root_uri": {server_info->lsp#utils#path_to_uri(lsp#utils#find_nearest_parent_file_directory(lsp#utils#get_buffer_path(), "tsconfig.json"))}, - \ "allowlist": ["typescript", "typescript.tsx"], - \ "initialization_options": { - \ "enable": v:true, - \ "lint": v:true, - \ "unstable": v:true, - \ }, - \ }) - augroup END -endif -``` - -##### Example for Sublime Text - -- Install the [Sublime LSP package](https://packagecontrol.io/packages/LSP) -- Install the - [TypeScript package](https://packagecontrol.io/packages/TypeScript) to get - syntax highlighting -- Add the following `.sublime-project` file to your project folder - -```jsonc -{ - "settings": { - "LSP": { - "deno": { - "command": [ - "deno", - "lsp" - ], - "initializationOptions": { - // "config": "", // Sets the path for the config file in your project - "enable": true, - // "importMap": "", // Sets the path for the import-map in your project - "lint": true, - "unstable": false - }, - "enabled": true, - "languages": [ - { - "languageId": "javascript", - "scopes": ["source.js"], - "syntaxes": [ - "Packages/Babel/JavaScript (Babel).sublime-syntax", - "Packages/JavaScript/JavaScript.sublime-syntax" - ] - }, - { - "languageId": "javascriptreact", - "scopes": ["source.jsx"], - "syntaxes": [ - "Packages/Babel/JavaScript (Babel).sublime-syntax", - "Packages/JavaScript/JavaScript.sublime-syntax" - ] - }, - { - "languageId": "typescript", - "scopes": ["source.ts"], - "syntaxes": [ - "Packages/TypeScript-TmLanguage/TypeScript.tmLanguage", - "Packages/TypeScript Syntax/TypeScript.tmLanguage" - ] - }, - { - "languageId": "typescriptreact", - "scopes": ["source.tsx"], - "syntaxes": [ - "Packages/TypeScript-TmLanguage/TypeScriptReact.tmLanguage", - "Packages/TypeScript Syntax/TypeScriptReact.tmLanguage" - ] - } - ] - } - } - } -} -``` - -If you don't see your favorite IDE on this list, maybe you can develop an -extension. Our [community Discord group](https://discord.gg/deno) can give you -some pointers on where to get started. diff --git a/docs/getting_started/typescript.md b/docs/getting_started/typescript.md deleted file mode 100644 index 5ece3d8738..0000000000 --- a/docs/getting_started/typescript.md +++ /dev/null @@ -1,4 +0,0 @@ -## Using TypeScript - -> ℹ️ This section has been moved to -> [Using TypeScript Chapter](../typescript.md). diff --git a/docs/getting_started/webassembly.md b/docs/getting_started/webassembly.md deleted file mode 100644 index 307aba452b..0000000000 --- a/docs/getting_started/webassembly.md +++ /dev/null @@ -1,43 +0,0 @@ -## WebAssembly support - -Deno can execute [WebAssembly](https://webassembly.org/) modules with the same -interfaces that -[browsers provide](https://developer.mozilla.org/en-US/docs/WebAssembly). - - - -```ts -const wasmCode = new Uint8Array([ - 0, 97, 115, 109, 1, 0, 0, 0, 1, 133, 128, 128, 128, 0, 1, 96, 0, 1, 127, - 3, 130, 128, 128, 128, 0, 1, 0, 4, 132, 128, 128, 128, 0, 1, 112, 0, 0, - 5, 131, 128, 128, 128, 0, 1, 0, 1, 6, 129, 128, 128, 128, 0, 0, 7, 145, - 128, 128, 128, 0, 2, 6, 109, 101, 109, 111, 114, 121, 2, 0, 4, 109, 97, - 105, 110, 0, 0, 10, 138, 128, 128, 128, 0, 1, 132, 128, 128, 128, 0, 0, - 65, 42, 11 -]); -const wasmModule = new WebAssembly.Module(wasmCode); -const wasmInstance = new WebAssembly.Instance(wasmModule); -const main = wasmInstance.exports.main as CallableFunction -console.log(main().toString()); -``` - -For files: - -```ts -const wasmCode = await Deno.readFile("main.wasm"); -const wasmModule = new WebAssembly.Module(wasmCode); -const wasmInstance = new WebAssembly.Instance(wasmModule); -const main = wasmInstance.exports.main as CallableFunction; -console.log(main().toString()); -``` - -And for loading WebAssembly modules over the network (note that the file must be -served with `application/wasm` MIME type): - -```ts -const { instance, module } = await WebAssembly.instantiateStreaming( - fetch("https://wpt.live/wasm/incrementer.wasm"), -); -const increment = instance.exports.increment as (input: number) => number; -console.log(increment(41)); -``` diff --git a/docs/help.md b/docs/help.md deleted file mode 100644 index 85d4d7ac95..0000000000 --- a/docs/help.md +++ /dev/null @@ -1,18 +0,0 @@ -# Where To Get Help - -Stuck? Lost? Get Help from the Community. - -### [Stack Overflow](https://stackoverflow.com/questions/tagged/deno) - -Stack Overflow is a popular forum to ask code-level questions or if you’re stuck -with a specific error. -[ask your own!](https://stackoverflow.com/questions/ask?tags=deno) - -### [Community Discord](https://discord.gg/deno) - -Ask questions and chat with community members in real-time. - -### [DEV's Deno Community](https://dev.to/t/deno) - -A great place to find interesting articles about best practices, application -architecture and new learnings. Post your articles with the tag `deno`. diff --git a/docs/images/debugger1.jpg b/docs/images/debugger1.jpg deleted file mode 100644 index 176e971ab8e82e513c89541da3fd401035f23acc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5532 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

-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 diff --git a/docs/images/debugger5.jpg b/docs/images/debugger5.jpg deleted file mode 100644 index 3cff06bb2dcdb0104463e6bed72e28ea0f5aea4a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 151098 zcmeFYbyOT%*C*Trcb5dGad&ru2Mun)-8*=YKyYmcuE8A|cL?qT4~<)};2KEaBlq6q zKF@RC`PR(*Gi%noMJ;-*s8^740bwE+!u7GjcN0XCx#P)U0$ARLnpU5_&!cW_Av4ZfDxBHViB_%tJ4L z_z~n2*q?BJA8_z6un12OA8)E)0iM9XK7oaUM?!*wgF}FUhj{`EfWwBz!KLItz>`p; z;#4;QDih}zo$^>$v?(zX1$SL_2{Bd&qlnY<# z0SZ8aeWb#M#RiB0zFoE+P9Lf%<8{Y~pIWNQ-=sB9*D+M(;Bp7jPn3b&zZWRY z>_BinDNhk}?Ryz%F+xVRz(iapl^yjllsq!yb#`d(mxBiY`Y~l4r-U!bIsF7`h_>h& z=mB86LF_7^1;?3z^#G2yXWex%ch}B zs1N*HDxCE`b@&rbt8BJsWrvy}C@?9vwdG@ad`FYCR+$Z<7OnpKEb%^f;Ju-Np z&ub{{ODM_+)rAp%?B|k7PH)xv^hP_en8ibh&iAl(CQWwgxX!Ox;F&*-IQ484u23Q4 zW^0O|+b$cb@5}h@G1+3JimGsQO%01l^8=}a_TxEWMEB2EftzL>`fsY18m=o28pC_X z`7V}gla4!rvO=KpheuYDtt>NKTjw8*^T=%;)yQjaeOpnbc4X{RSQ||1X8b%JS%M!p zN9hvJ^=a;h)mXCUe1#eTu3wU~~YSj9jY*Ip2Q;sXFwk!GIrQnbyQIJ*Ym3J9 z)0a-zaN!fBSt0d~l{vOlUa!BIcLc|}Sg+fdBL<5ijlk~TfJBcO2iu}lu+q*J>eXzh zA~W|jUz(bUb|FjQP zXJs^G?#mpJ@yyoy@*21wPZt7V_C;_9RYAmMzL|B&^VQI9?QkYI!vR>@7LD1>m^`~?@L^&Wpd_M{aEF5q>ABntzE+lQ{<$xb2 z%cnLtj27N&e@mBcZVuoIk{EO>+&`e|tT80u34Q0#S6f~^^tvQ@XHFzIwFOJ!Y){RJ zbxY9C!RZiJg z>4xNa_PL*hCf=gg>D>y3uMEGV6{(%UZSJD17qzx?`l%I;Fr->&YXijiM$W)I7AP^% z=Rn<1yTo7^=dhYEF~v_*#eh~L!9186!|Y^#G1OJ2DAdf|iY_02#(K`!y*oLG3KHPI zjygXpnYJ~MZ&HjUn?4^)Typt)*$3OHGw2UZ|*v=r*@&GVhsE*87iQ0s$6Yj?=s z%^r@o?DF7+oUua|#T^JNG}@Z)SJr*?N2$vMUz$z&x$AZrd2vKciM8qwBWwscxFR~Yw0~ZKcj#?A6>_Wl z*Nh#+@xZiW*`}KCESm~gdboa8yiQ@W$?-R~t!@T(x54GtXZczUqb}s%6@&=*H7AZ8 zu3wiiTv|2HURs3Q;-%m;sMnU}R-U%ny@rb=Cwom&xetvSzB*GbNy%fZT-ep;zYl3) z8q;;KKU$ePBD?jej+YC&SYkT1I6r}ly_;jbgtz7yWO1UB2IrXz36PGreZ`{C+oGk?@hr2}Zo7aJ+OHX-{^thY3>y6Fsb ziwo;+6o%cuYZF;0))tJ8cQ&t$=Sif|S|%+*3J|%Q=)uDW4baq`NiZJ9^U@z|Nqoew za(jInQ^t&_m&A0lqFb5A-sW0HhP^>%qyq=Lo$c$@%)7JAH0fb$)&zMT4p-LJxO>KX z3Fp8~GPj@Yk-xm4kNgGuaJa0ri8(k#++-cB4XwX?H>ciTg*Wep*5Dm^;IZs#_PElArMsv&Plb*N^7K5c8u?3;n5jwZOhnltxbh(nS*_K>)Z>r zqf0oFt(#9EwIJ$LwknhQuqqsFq}CV&rPtLW@A;Cn3187I8bsDlxMgrVrU+O*rS#e) z6}%|lpEoVrkiP>o% zfL@d>(vxZGpk|?Kzw(8){+TKKizt`pb`O9u;kNJe^c5BPEt}56_Yt&-HE$60CRkAuS1pDC>c&}TdBY$zHVGKar5sSgEB zz(i#H$eCBTKIPfBwDUX;&X2_JS!V7PFqYXt!6R`5Y+aHvR@G^Asw63~KJ_MI*-jc4d@?5a}# zZDhU_+&o(iQhwrTW^qA`=y2^!A~TyscwLwl2M`IWOuv$ICa^lu9hea9cFz6);C=u& z{DL(bJ&&M>>b2PrLug|zgPlYXfEBBgZ9T*D)L7)=S<_$Or~f9jFF@$vnIG->KK-L^ z)9}rx*qGR&7GzJLCUD>GKnKTn5iWg5NEx%Vu)ZVNtph)V%XwP5Pwh!9X=}t*lvnJY zgyAp!GX7G-)>Owxo>X!m3)c}iie?!|`0U_| z$-T`z)TOe+lKe~dVF_e!eyTO!-2-FL`J<_+#y2v9GLtE`zWTO}IW5HyCbAjoc#&1| zw>g!+fEt-MH%HKcb0U!nVrWFkzu9VhQgmX7@XTT$EEP-ye&r!Jzha8LTD(=&_7Cg4 zeRaQcKl1><_P^--G4Z1`rUjk6rmAH3xXfVRUC<$*nIN2J(v{4#wILv)7r-vhPqNGN z0Qd)8S?}`uxy>22uWQqlYAVk=e%3qapKqeGoSvrv$_gM25!F-bXv?!DqWbzvn3;UxC!80Re1TM<979z^Kz{HA!2u-w%^ z5X3*r_t{_qesIB-Ssm&&j&c>Cs#nUl#hMV78Fy#Lp*D{WBm2Ht6l2ZwKN+9;j6)Yf zO^Yf+u@3huxPi{7*h9^(!hP^6zhwRbQ4-RlIUx}IKWev z(=bXJ3RgWyDtJkBjyN3H`FBeE%B7k5nih}GNz+`(40ST{OMxml#38`4? z(;=>HwWFS{i0cxV{{`*AnBc~+*Cv<`Ne4I>kO+6N6A>v<_0NHG!wDu9w0Sf>{h7bHKN=`_y8{=jBo4m^qIghYK^hY|7Z8l$!{o zf0U!5Og2?Of*B~Fb!e@T=6r8@Rqrlw)q{|9&Jl(m$9a4T6w^*m^~>hJ9iK{@?SmYp zXe0O(V`lj&actc7=$vx4H>)(Hwh0#uCPZ$;-ii7z%0R_)$|vxf#Rt=eKmlF>h*RMn_6*J}W z?#YYDr;LDo(3PsxuY#idS1GJF6HOMzVlGz;Vt(;tD|_mRYzWuL*_fxG!`XN>F%y^z zedK9)BlZ^rE(yf{!rb|KEZ-q@AuG?NQ%y{FS0c$dqSicr0LSyvi7QEJD%z^hUTALX zjDM0%9bo*Yy$jl-mz-Tz=G;P)_t4DQM9s35z3_8`MDA3_otu$+COn~Js^Gm&nczS?CX!OX`40_{d7j<@}Cj7GB){z+k|Zab$nF<2N=cbXw;RelwoLyr4t#2Y`PTS0pvEyn& zh(kCrr7l!${^5X{_s?$rIa}#MZ5%+>j`_`jPz*XG;nsG#ewW>#^$k1yy+%9k(|k-e zz=mwNV)6Bsr>girc+%@GrJK33eBoW&jI2JqxyY$&wlXI;OP2XOjJ3rlD!V#(cCBiC ztlh>+h#^Ym;jl?!H9_n>AM-0H958~5l~ZF@Bo}of@Ql0Y5l04``y}mbCiAsIq&Wh{ zQNVR1AW=iv{y@Ip=D7BlqPE^6W;U~h<+zZM@49$1R6Z5->eu~WE-cY%s99N-b$W6X zFBQNQ`v8!ZZ<^-U8WZMAnrDo{?xm^8zu4+B_vwST`Uh!M(aHd0A5CVrTvtur^R76- zI1b%s7T+?um>pky^dP!XYQhvYD}W>W&uLzLYWPTQD_%%9m1+>2#3^YudZYDas)|n% zA~{`G9UjQ2&Dfh%x%6&d5O&v*cR-33U84WoXHN@;L+tfOm zTZ;X9>gk`O<=$B1heztLoR#R3Kfp~;I$s5NFO7T1f6Bk>3>qQBADpkZQA>Q^WU(vb z$}~QArP3Yfp2-|1!=h%5BDSqnXc$Gb$8gO%8uK{tu1O0gc-^4mrvmBv3t}i3)mMR^ z_uXHjW`YYwrxYPiCEzuf%(4y0Me7R(bnBnJR#o9lg(72TnNXsz%g-d|b4VU^+*t>Fu~+N#6F2wq!RZ<^2f_l!EU>uvHpkHJq=K)XY@H8q{3 zaSdQ9K=ll*kg^Tt7`)xkpHw+91ulmJ}tyk{Emn zXM9%4*R=cqNX-6bnc08*z5D?%!cDH7Tu+*uu3jf7TEk6DDx|{~i=sbV<{oS|LY2cW zAPYkbYj*>}$6@{CZhLe)q3^3FgzI2a+{Jy>2+n>zArSSXRGZlHslb+uu&b!mlH&tl zc;b7l@}|eVmj8AdX5p&)_<(l8tLgbVb=^LYooN!EI&&NUjY6BwNvW;}uL@Fy+2o4N1?d(!91IWQAB~Cq!KBeM*5;N~)@r9c-4=>MPa~(qHQS#UiKa z(*wZN{~GfGA7o9zSB)C41xs~`bYgIRS6U_$s8had9{%YRxrc%5NjdKynef8!1Ee)$ z2=ru;=xDP=Mt!U)1m^8Qtn3KvWEF2?i*ImogQ0}smdyj;1-J>@NgBl~>IO8B2_pXO zS3!9Fp8G54ig6o8ux+HD}nj)B+CH zB#5>RLVkxPOuw?ArzJ%9XPCXT^PyXph}d`FX{Bzjj@Xc#vw@=-e3?=ZwS_(MmH&ii zSPa^!?P|Gkgl&@33~hm*v0C_3g`nI+j54dz?hWK8+*}s;ngOXgXpjeh zDsX@#wxxOaj}r1n2BK-k1i7In)jPQe9ftFn$Eh5FKWX~?wgT$1&?^^Ttd_Mt`!Wj6 z2-1kCVQm-WK)-R%J@v}Vrevk2#=tKedrMwP^10$@uLQ%BM#P%H}87Qh2b5R(z3a8-YLBMH%J(C8o$$(J;2 zJyvCzS?o}+qVkY3{6o6-FU4Zm4CE$1BnJ)nR7yGKQS}IQ>Yk}Hwju3VpK#m9CtC{a1>zzK41E## zUY7E=B_~%8?3mL&gq*!lazT}j?xFusd*OGe;9%6Rc*FWqm0i}sgS(1IW^{O52m5V| z+2jSpAnCV9F>+V#wnem{<9r^qKKPA^8YI%Y=l0|l)u5wNQsrHv{g>lG*h#%+Lx?ow z07k)7Tp`rT^`NMzSjO`|ro28Tq2G0e^>rk~$%0C{gr$6pu83sUhyj;OLWLc)zNvM3 zpl9Iv0O;l>IPH6F0kfHmhElu~@eU*B%;|~9<-p%1W7n~s*z0i4`WQ;0hlHLBL~9J& zYqU9-=iwz)e9d z`)}nbaJ+)1d3IhlE#~MYX(^WVN+&z_s|yElmIW%aM^p@eR$bAg0Rc><#;f2f-kjx1y*j`!Mug z0S})oaoBjv5zbTlkHG$;@C9lWxi+R1jCDIKQU|})gkp*|4fT7^DEv#sQ?LEoczFNP z$^5HZIsTjA{}C&ZH~E2es`T}Vpnmw#KZ_S!JB@BV{}VlyMf3aM7+6$31D3t<1~2A4G3jV|d;R%O+d^z5-p(wzIrQLK!iW)jMVjY%)_0 z3!BdhzJN)b54@wm`YwfuH1uG4W^gyk(Q=X{sLratbg&ymJNl^=?@;^w5 zVE6h3yk`6pE__QsJxbBIJ5T(cR9gVz#T~tXBUC}}3*6ML=On!hE3RZMn0SVn3mRo! zdYd%6QB-AfZ0b9db6+0S^jSuov^S?3E}N@wJ<(O6;*=ovogoQksy5_OOjAGajc}~A zh+<4tl&#zRgn~qO-Oj2>1l?2Z9)@}*=2pk-c0TRD5|ZJ_lA4;xMC4G&EbBpg7Rl1~ zhChve3%Mz?6|57L?N!W;qLGgN;~tx|W(i`Cq+>4nhVejcx}2)InO>6sp%)i60hp}^ zJao7U{n3XgprHQt_h~f6K&@>ay`X9lQ9>!(IozfhlQG_)z3w#inW*2?WZbbW^a0Sp zjXzr>rv9qr0kFknXdgS1yzl=F1rsS6SW1=T&aVkeoz0khrd;p<_o*&T`gmtHon0>pyinYa|JdCsdxZf3Ur>` zW51H_oX(k+9@RQK)%>b9n!43H+BVRd_~t7a+5O__?G$&xHGV^YAoQArHhPm(X=J& zCaSM!UqGc%Xb{+YOrR3NVg1&WUyrSL4AI=PnD8Of(dBbf`V~DbJ>C`?VM%83yb4t@ z*?HXL+y%ZLg^)iFT|NL3d^%RPeU}TcMJ8>MgDHEX_KU0DWAKt-gGY_CWNQ;_ioWZE z?uq0aXeURnsuj5_AOt!yho%ztkR|=DN(2OH#0i^M3WtrBbxcMRDsCV44p4QLB=A4R z>n43+*>$azrpt@(!Wwj$PZF3%&6mY%#9hB>4`c;5wDrBuiT3%K2V)R9j&z#xN^@{UNgGl%OU==oG%Q9OrLdRjiK2tbiAicbvDE( zx(gmwLJhYRG5+m}O|w4Q=KYiJU|Z?X&)*HR!ibtZz9~1$R3Ye>?LJ+)z__f)ypF%} ze0(K?Yd-@!{#i34Jc9x}3B@<57U8%{2 zRU~m9QbZ+*%Q3fo9H8)a71)s&RL_4Uv0QaT0eu+?WSv^*$9!=!X^_~qK~thKF?7A<9YO|n_b|5GC{-HfORalB3uG<%>F$X5RaKV?8*`AhRCGw z)pWYF*H|G-tr~LZ7^(!*35m$Wta_*Vf)@zZeNZ8kwoDCkBXjVl0ce?@+ z+7=>}sV=1x{Wam3yFjHws{Y*jqaPOK22M@Nv z5)ul#j^)gLQk?o-@V%d6}V3-(QeeFztKRC$!YJ$3wwIHfLlc(ILw& zWH4~&1EN;hqHgk*C5R4g-&pI8PVvHvx!*_*6I;7F%NndzwTiwb5n*bWdF@Nt%6Ltn zC6`>S_fdFpJJCXN%lyzuBJPNY(N(~$QfA1*km7Spkx)vgAJ3-&~?wB<1VbE}> z-3?Onme5 z513C5)Jc8~7Q{%kpvpJY>qBqjEYAbw&|n&6+B`l9zso*{eE^IH3j5`EzI*@-YPBqo zm#{rPu|LDFe5+7rq212dg=MgzMQLK(aC z*}7)#vRbs5ij2gMJB`BOXJc?E3-E2%tm;VSiCsfFGmwF7#(6_>3n%V7p>Xpi@J4os zII~Q5TWk_&I4GmQvE^uay)P#@P=Mim;K1r2%CvZu5^-)BCuitWby>Be^4<*r%~3mw zmzh-=b@l^L!xWYX{gKt&&~94DkW5q^Vp*kctOE=d=Q&Sd4g*2g5rc zeWXfEx}2Dnh)A|68u38y9o7WCydLAVoDa^lc&%N5Vh7QxTl@F>xyzrfPZDzh!P7h;%EpuZtx1NR{h zg&kukk^8VFKxZ$g*!P9&PASbOmg8*t)6B+&vaDm*HQv`hd z$>G=oNPdcQE9A15rSJPHL|M4ZX*ey^^O*E@C%VxIH)0X8opDjzOg4D82mTt{5$H7R zdd(Du#KJNX#C_CT3p0x0ckfl9RBY6S3~M-U`T|divU{@-u_bTI2Y6g4TO)dlEXJ^U zpL{R4bJ1D;gUS01WFlMCpiHefV~0!5HIQqM%$6hgRsh3jfBvU{)JI9XoM*xnEwWbj zFi8UZuz)vAV^+TbTTpv02|Et<^eLl1lQq|{GA-K=^uo-A{HA?e&;FEZ{wO}Dk4fMc z@F2YM--yuEYyTduUg4MxGAt5*~QwS89QYNBbBF<6U-q|!T`rQi~K5dHPAPa}_ z4)AJhT~>QG2i+@7(|2RVBRMk3GWPoR428&vwIVl(p4Bo!py3pUkCEJFcnhP60y`_D zpvc;-_$aSg$>@hw`10m^gN|)00apw!0+Bc0ZLL6c4*nH9-Gc0q!J-}(~KkF=~|&`*V0}q zGk05Yp+rKvjOKw+U`j`WfJrkU{JLa$eENH-Kd#^FBlqm>mpAF>Il(?qbSw3mi19nk zj+XjJ1b)jVE9tJTF1p8sXl2>aj?KNMSa_$P$6u;^Qk~bgy2J0hv-`n__#2m^{Ec-n zBu5hfGf~tZ=xU%uB%UDmfjsPkPISc~CU6jRtzCR{WNL1GL?aoctI$j=zb^~s$46}E ztIqb{QNCE|_I&_k!iUW`C2dzqZ+B&epyf(6#WK&QvQ=(V54j1&e+;)l9wK>rD=mJk z^p$S)+w`BL5>{uGxmwbE*EANF9~0YIb#^AQSv7I$SSFYFWC}o|Po$OYGC80K(X3{M zYf8lH)g3fCX4y>@@|isNt7X!RriB@ftR{S?@X%)~zVY^#%^}1dR!(vKHXzYRwCOOV z+2NyJ{$4YuRB9Z*=)Ar1(_34;?eWH@``t-JYMk=w!PCLE*~u{AE>(NQ^00Hml0qBv z$;p=egn^f3&UN7gwMyrCk++kH=;Msr@FjJHjwbfmiyEZGDd8D2z+E$j(YpSk=8WN{ zduKBnnL9^fO*0X{!1i#N(6kTo_5JHVb^WBPSn_IAh2ZMTixR08Ez$6O!3%zp_Suw6 zB}p7Kk9mgrC+IcR-7!H`3g!Q99h%h4kyZjr0qTr+JACqgw>DhFHE!6JHhop>vdQ4g zFCY9Rm>^UQY)IW0BczLW=HolON;3a`rYbi}KCit=*ZgwX!g%Z=-QV*nclM~z z&SeTn$tXIWNS1f~2b5o&!K#j8MypmA70Z7iott8UScW5uo`3t~1ewtq=GCgMZC(Pk zyf&3>GLC=>Nt8aXk+ty=$!u*nI(Fd7H@;c3{NSjPrV{>ruUXValz3Du}rw|`b_nWL0zTdJRXg{sZ}~UbqCe^cd=_|mXJ@;*!d%9JsQ;%|eua8qzmm+Y zajxP>C`y6$>-;tBK*5_B&7x@fcRjs+*baSsq|JL7UjGO>rIJ_tQ9Oqq*ZrzE8}mj; zn$Na}+h`7#EM9oLWYAbI(M9UM11=vGlm2@MG1GRoH3d^$W=gB6oW$ z_6P{SO)9-DhA_ERM2R2!PRy(5iI~+fPwMIC!#PWZ_4PgM!m{27p@VmCgCuL%B{5uc z&UQA3>&!QwZomAO@!105UhcL@SNrbK1x;Wm$2*!B?cFLqLN3Em%O-GsTmUMckraOC zTk_iLG-u$I-?@rF*!BWO`Ri!yt+H^MqdndWrV#!<+cnv*KfYxAggrfOD&YRyedX(C zSUP?({D{=9*oC{XKSgHrx_%AS(u=7$3oa-pU7%WHT^{yz8m>F}$ypiBZ(_w}hl8Y* za;oqTS$|)ldc@6tR<1Gr$Cy7j3V#76n+pyJnEGC_{RceS9<3u@TzVV59b$^1;patj z6rRt*(lWnWW3xGG;u$jzcVTw4|EB~lu4WI@(E;j&cqP;S6wh+8GOuD`OOb_f-WcDU zU;{gNCQ$4>VNExCRXC1@IuSxFAZmUy^C#YaLHAF*|9!>g|EPWJp0{dA;san;>?)Zr zh6GEMEQRXT+YwZ~aQZ9l z9DlYGiuQzRNwpkiwO56(3b6h-;O5m4)hdA;yfAu_3Vj1#h437ZY-EaB0DAb_`PcHo(wW>y^!DGvM?N;h#s_%8YF2fAjhQ$sPcV?8B+cq7( znmb0;P(wzqm$Y&e*y+6#<#}4ou(YpF>7v(*xw(Yba+Qo&}5})!YYZyYgJ6Kh30v|Q|xX@ zRF|o2*RH&RIzn8~XdM<8ES3*PLODbuV7yuBGMw9KZLzle(aFle34WyeYj}G@$`DiF zsEWvdz{G;CNN$=uk5*G{T_%sfU2pMvmpo@L9<(dU$ua-#+%U`iWv%O*aEH=~;?Me0 zpw7Vf)??RD^ng;o^9`o{f`!&YTH+GNQH6$U!|4Q)!9@=XFOXrA0RLt3c<$0Z$Z)TL z0EgL>n3W>>J?VhYW32C7Xg1pTNRZ{xCOg?4iZo8DO(FSG(Y>3!lIEHS!+DxqX$ z!g99EEe&W07{80*%y~Pqx`&d9X~k;M+WfZC!Q|*_4@4a=1dsGlZkH?jh3mj%+Q?Om z)tuucu9+n#_;oSMhUzeMQl-j+k|(#P12m&^FfG^ z+}DX#pK7%XV`Fd8`*xci&+LPH;_~^Iola+|9#)0&%q}{HxwR_nEL>P0U`Rwgx53$W z8;v%;X<3_^A<%1%=Lfx7lH^f20g_nG-Zx}YJW38OH01}}`g~PNyF{4PfsAg2wVbvP zqg7aMwfFa_DTy#|hu5OW4BA9y>Rq4P*4{5xK*n+%$oHsv6r&7ZDRFZu+E}4NHW?z> zVx@Ip<2=mbc&Mf!X$>DfWSYW7iH}f+6Jh8kir8Zn$Vvt1;Kt|{a~!yms{4$jyo(fO zfdlt1iabe|L7sSl(Y&WmSjTeq-1~I{!E`AnNzl@)c{?eVt*p*?}RYK9|HBrAFBi__WcoW4taKC^dR_*K>w-0A3&#Nn(j z=syGnMpJ!&4;N=wG&iFo^_mgzk@nyzSgw@?D3{|A<~{P;BvZSXg-Ph~iz02p{6? zq6sa`WCfQfnF#fsOG-9}*T5R%aDCwlI!35yWvlGTcMmi)-CK3df2ZG{s=M%(m?&Y$ zRboOk@yVh=7W_<8oW8+OF$2zs3)zmOJk9$Z@X&!o1M9fKNPfkwfnMAvk**++3kne5 zEXoW_<|_(KaQb{Gxes0OqZ370fnGodf4dn!l0LQ)%$=$@3Cqjk@?x<|JR; zE$ONZAOja=JcsSK-j6=(W5E@EC%|fU>E+l(wg&H2HF2-C89KZ9{b@0GLkWCeMOU+E zWbec~Vz__?4KiDaEzD%SUP0K;2jIQ5D2_qLH5SyseF?@zIYb*o=YAsJ#8TGT)jkrA zu!`a507lK~eJX4RM_-iKXzNJb2&Qw-BxKxt77}^9ih6l8KHkIL+ZD5%lJXy>zMWbn z+>y^mH1ufBk8RBKt--^>jc7pCp5mREyAUO>kbbs=DmFS-bzW?#+PHX0(1sv9+>IN4 z<+OSm1g+s3t$3x*YD(r-<4nxDN;~<-J`}o4g)NI@Dn5|^)pcwT%@fTNz|>IH32yUV z@=)-bSfa_-R&oIZ%4%@3yJ=G6a4JN_=nM`Pd!#wc2FPS_^dtxis0HP14uwdRp~g%v zFUfQ*>Xo(T$I^E9rAoji;56+_6P1p%9+d6DE*r>mVWclo`gVC@<`xK~-=qx<&-W~o zJ-(XZ{QtA(Z{cflF~`JofLREU5K{bM-}&->qrx<}(4kCI@700DZT2<3lM`eAXJ>aD zu9*5We`}{0p0CHTwT=ZviUq5Rc3ePihq^i|MwOzZ=S2 z3Y8SL6Dges9wM}Ziu+I{YpYG879qi~m57Pd# zp6zI-t;OY4GdKRKm6b7}858W@w!E!n7&I@Epy9H6@mbjCg_A*w9B*MPp1RDq-Q8-A z$3i2mlf2xNh38`h6=<=`vm)+y(ZpXKllkpuwO3AVXIeCcToAE6+n|W(hyxB}w|$2< z)RN`?kv6+o8-MsUMT*FDzeMd8yt_w5d3Zhnj<<r2E->@t%X+1WjW>4dNcqsyP_VyHR4LR zLV?V=MYHb6#t(NH5hmR%*D99+hU3IPikcmlXpt68=Y%RZr7>0B6?L5qJabr=2M5TH z%XTL67)E#rag|FOJ7o<8S4&Vj@B89#Wx%E_7G7B%YfWyo*9yz4`w=1n%#BGG!(j)A zO3vKVCRfyfP0(9e7g*~bR@tw#kFT|&$+f2`CdrjMk0X?zONfoAYly&vqx<)>?vzEA zJSCLzn$@o0B&~~NiYm3Jtp~trH$=>mC*A9CJ^o{FGI|61Q+>Lp{SsZ<6WQRh3dII? z!}fBp{_r!@qcb%~{d-rE^Ler(Od@J0N~TsE+rLG(VYR4Vk}Hj#%R5@dE%_FT0>*tD7IpTuW`DScNY_y43G=wr2=9 zEQoG|ugJ^H51g}(t3!%xPer+9{EWJr?XO(-O;M_Inx{Fll4YaC(@5^E5$*T$&&ZD@ z@wBWo#ua1Kj*n{sO^en1ZNuQxL~#+9cxNv!uZU$ri{m4EU>Z`sPe|gXHA?VeV-=_O z9YmXtw0!Ck*}zcB3r}r%zzy{|Uaf<8lYO?w>QP19)yg2E4a*UMOp;YMV;n3Rn{bTZ z>sjT}NXNeYb0rtNPhn*A{AJDWLq$=L_;-RPdIpLsJ)>|i)eJ3)Z0fda8|s^54ovsX z7KR5)l?|$RhV}yN68MMuUDne^4?dZ`FR)Pf=ZfHe?@BP=fnMPZL#N*C@d+n}aM(|o%Yd2{39pwR^V$_txA2lOS-; z0+9L;iGpI8x2Ca^Ze2a*m~t7}4LN(!zGl>=-1AKluh)mrzzsy^mOW z?duPKp41l-XClrpKvHjP?W9k8&{vMRF|O^y4E>&=lo$fAM_R)75qn?jMUtFZ8%v-D ztIW0atu!-MCiJ{GJ(ONYAAw1-lUkItuXqYPZe!Y5?AZ$Hn?qQh_t_UrZPS9oY`FH| z0oCd-Kw-#ufucXs%!rL(@H=c$@ge^fb2Vm*mnjqF9ZeLTS??zsCmhOmT5(f=D->ZP zbnLu26u1+6`2Qb!Zvhoo)2#_NF2Mr?*A6bh9RdV*cS3Mz8n+ICAi*7iyEG6qxF>i+ z@P`I-YAQwKzdQN}VA zo^Jhc7&x9cSb&vCHz6qJ_$}1 zD_Uv!32|L@iwUaWu{Wcbb7J)I*|2N%qG{Bi_G*H1u>TF^_ScN!UG~cg86qh4mD7*H z?{c9et}C5VE^&cE5+q#H)ghymtz}BWqI=RY!I;K)A*r)-E5`%1w5my(>$!M7g&F%E z!+j(UaOOC$Sv8Dvb`eT~Yp8$_tvt#dWJ+%&FD$30iJM2!f zNTNrSI->>V#8*a~n!C`BPF)t}8ozsH)O&RS%7=OFv}`%y-Rw-;^Boo1`fIu8z?+5rm~Fe6IxD%e1%zUeJh^`+fKYy>sJCLF z+UxF#tncvQb?LF6ATlprMg@|os2VxXTh@{{ znOO+xzOH%n@08>J+42uJ{rlC1MsxHU)}cY^IO*D$nv=IN4WEAWzu+hyEky=}1TmV0 zrr-dQFg3AcEnQZq_?KerI#weD>wnc@ufL10<5lyTwRFgmOqYbZv zThYwry*WPjYFGTO5|0t9$D-R~wuw=-(sJ(($3cI)+Nf$}(%DxJp$N9i0-p}1V=p8V zObw93xX>o*y%z2a=XR(a>f4;kqEw@j`G75^^_8p@OEI?nCvem$w)uL~*{^@fcQJ0C{>cC|qh zvQGPWTKcbBX(WCY>8oYB!~W!Teu-SU+&$mu%X$n6JeRRtGG2#$?(7l zm+F>ZCoV6ay(2SIh2Y-iE|~l}A^lB+Ew9hWuEiRDljm=;G61u0aUOg9_v8E;VE;ds z4hJ5h%&n|>&aCc}4AifGeUo%-pb>P+r>fhH_o$$8>E-C)R}A~N$lOmr{jZr1N89;% zc$2k6z+q;RxAC?eJplA18=Cnd9kQSE#no{Xo-XHx2J}VIY>3 zm2nAsuq6VEd*CtVV+!C-5$Gs{NotK2YS>Qs9%3{5+R!>Ns3=_3y~Gw}0Zj2URFGkt~fr6#P7&HiOP zSEi2H8aZ!mv6l?I)>9s{?w7^49~iW>gTaLE`HQQa_o{RR~L_9AR+$L8s zB1P%`trr}su%H?tH@Di?@E@Algi~wlHCudqtcyePfh9+kG5XEc%X6*G0bD*3nWhqE z5=N_TVES4V>Md7S#L)A#KwJ);k1jtfW-j?)EX+9h(iGeE`p;SYB#)#XSE?F9JZb_j zK{?CrrH~9~3nf zGewGx=|`f(TasJ}A|j+AzqjWjW2~P*_5JJx^;zNAS#>KRmj@SzrW~W_(|AAL#Xzb} zlO~cQ@(1L{^Dvv|0@8EL6uV(mUUWWvC-b|hYpZFZp!1Ovw-2>5n&%ov2qE@rP4y!C%F)({lExzw$4FIOaUQqu?a z_qWRtJX~thR`4r(^|6*Efm^|@E$id!4)kb0A}qeWHnc35W%IB(fA?5*evzk9Mub!U z(|oP4ApP~aN!H%?9ANKx)rG$=3bWvJzz>2*l<=3K13lF9}T3TEw5uz;z$;8-fd6!YoDpMSIHKm5;0opMnQ>$Zn-O| z6Qrpi0iPdi(s0{OglfA_!9(lonX?BL81G$t)B@$MK9fqFwyF_vRbp=mC&^OKblizm z=Px+FWY5_)M(;)}6>^L>d*yDWsG*{auplQ2L|KM#9<-~mK4zIIq%^Wd8%g{Z|9rpANf{pmCX5`Y7!uAyBobY$Eld-p3Do%_Q6X z&#Q2@K0eh>OmxaAN!JGnVVutXpq#r<6b=D;pDJafbKo|LcGv^> z)RQVn2~}QTF1#)Qx6~aabfLfO}Q`Vfq2-ImBPKr46H@m zp?`EODl=Q0gfe6$^Bfgt8wEYPM}k8EV~lxE+Z}KIc4n73nlzTU^NuD!#^-@UF`@Xb zYqOV!N7)$n6g3-j6ldNcOP{7POg{hho{#r~<<|}Ia}N`a7pS}wsM~=iMR_YBPl zqm~}KNKq`IT$GjrTn8>{?r@!~scT?O=Aq2|~uM3&WyVoxocgwgZvXfl`da#4}{# zwEBYo&NlK_JIQ}7Z{qsi>PK44sLw6dMd2X3Djw_StJTj6e`pxL>lz`t-uoonns5~g z4&d;ZRxloi5F6L!=qTsX=EJ=ActPhED=$vh4ezqe_fuYWy)3LXgf1TVrRz`}?R??J=NOv%}Z`b~3rDt`I)f4951x86adHMVE)S zwss?wea9hTS@=n0F`;{1QEQmye)H13oY6zG(Ws~DYNKWW{tZxHX4=Uw=DY%1pU!Ii zn*1`ZiOkB10v&u9la~#b)5bW5QQ9GZ=i%2zGO8}qs=7!M(!W|;x-FF7gq`B*ytgkn zARJ(02)+l<#Drw8F3%p>dA$wwG%Dcr1<55*knjtPIn=m1&5qTQ&C|T4FTD2LmQ8l; z($2{}2E4(^SDMVT7FulOOmfd0zBx1zVcgl^f2WALei{ckt7djHE9;?76{WXuL>g=U z1IVy|ci;R2Qz&b?;$9Rq`W8byOsOrS5~QLtP`T6ySvV z#Ui1)C~bZ?Y9ZnTUywpo;8-m>Z3A?oVEhEdB$@4UI%nJ!hf}YnwHow&@+J@$K-seT+_F ziv?{AEJ|P!R^(8t^WvE4D_tcw$0?jz(*q0mm(k<|^9Zb`@vfTFOwL9|PHvJGM|?84 zn;^_#iKL?oNJ6BPhH`F4^t?f4{~+J}nJ+&Wgk#@ud{~Ant_v@qK8rb_Vh#`06;DbS=hf8HD+J6niJqe+rg#+P4ACCch z6Dq0T_);*|NC`YE+hA$0^8c85_`);s;i+#sRbr;vr({#T40K!Bb z3y@Epjo`izQ3JxlPvVV@86|0jgFJCs=9X8_qL@uqS$x~dSzxjzGFjLL=6}9hu1Q^z zE=_sb>wbbmiyb#Wabs+0b+pHqDBkaDq%I;NZms2amX=FADHvxIy7n1CYQu~&gfrpp zRN|`FRbcxo8EJqP^7xvmKh+-ZL@ciAfux!FL*8a8 zSKi4@-19Fx$d$w_&1~^}8otuz+vB!Bka-|@FOva;7GpVt;s|Hou2s=gIII9$#?JW<)J1tzb~Joy7qVp@<{eb0c+V^vQNV^(QA8ePJAs_}qm_LxiSy!Nq z{aicfAVe>+qCo$pDjxiGA<|Xm_G92_uptQNR;cxR7c%Ea)-i$N6@ZSOMlxKXd@?fV zROkNT>KrEMzejcuo&2(;7WLS6(3gO3QkH~aIk)4W z9dqC3!mpe3D5iewTYS3p(iZF%wYZ9z*YfD5+EVKfr;Pl)+bZLihk&+uhD|JGj@Uq%s?Yr6WuaGo}&zQZhbSwM%- z5$~3$PZlq>i(%9@wEd!cnG^ipjvE6yrnka3TaT{t06RRvNmK5A{)-60bS-nk8j+@? zUP&WDQsH_N96BUb`=@HSc-q6P%-fEyo@5r_MTsRx1UN>;^vF$gf?%EPbn7w0Rvgju z>>DY1nacfJ45o3C*bzB_E*INow!t(t0;=?j^RR?G&g_p|samtZmIN>U3c6H98!P1z zyz(MiKD|lD2w!|=O(LS+V(jlD479jNSK znQBHYK4e#o`Rl~~xBMUL3idzjiiM%=c-WL;`w7i#uSpn^7?RjWmWJu^LUfFLFBjbx zwkK&0ArDxdjMlr5)Vvox-_6FkhwBHmCOR{(W5AIRf6IyIOK&2T zi5FLQWO`)PGiKxBEY^{3#0{AI?$X&y9fwM@%LcFfgpY@nd;9Ui5+~Z1ykzh?W_0LD zUm9Fc+2;jTj@bISgUQ)MlZeWUoX99g7`E&Zq`3&;1D8LlR-Xa%<~q2d z(!#zfy=#whWo-ra3nr(?KBP#9WG+tz+@%StbsMSY_OH4!c~RZ(&x$P8=TA@?o)?1! zO*@!w!&W{j$H3Vxj_mo($6fW^E_~l^a9l7meBGk=QBGB?KW=|zG2%gL2p=wb{beKk zL&Z{3AY;ONr95@h+7eWL`IkOa^;{oPAED=$u3gr!9IQoPLX_RSL9OoF4k@<%U;)}MMup}AnN!8+TwrN zG5_^a@?Wkm|I>wkHE6C99`FPqy{g>{2S({wKjl{p(XnAu2ToSX7IyZ!AE?NC8!tn%ZH(l{Gm?E@PhROJO@BH6{r z&q5k)x9`ZhxxPG%jHj)hB%cEx5;Nb6hl%d-3v4Hw=r0|^owMT`&CC(ZPd-E$JbQAX zol-K525=RnyFujD%%zw-{NgwXEOzN4Zdm}_YxjH?-GjzVrbVT~`6~Wi`(9-`OV_dV zmvHo*xn|@N5|lF0a^y@=!5XpDN|1Zr-hR0|SIsM-!tpM>!)y}I)I~k1Y1^Vz?BS%k zO+MfZwZf0yudij?&BKLRpcg2oPonfrs&n?@S$@f?EDJ42I|OXV8DIPns2qqP@g!?S z+-pMXX+x{pqJ|-eXYZOh!hkqaF;vmuQr2CBh;PHW&g1$8heb7IErOOKK9J;mU#JgU1-j|eUfU~Nz-$WMYY%(mJPUpCGflG zS#l+l+^e?=1^~SJ5$S`<_SUw>Hc&tX9Zu?8!jr}R&q7tde(AGy+OJM2+dTfNPXTp6 z7O^9xP5OUzw$6R*M7?2P$wE_h$iwni_vIvZuFH12)#{KL>Y@f$1&aX&BV|f=x}^>^ zl_1&&{BniF!CHF5J{3#IiW*3H6=u*CJ$zr{g396tSd*q6BN3x7?xL03>+R!5ZCgqy z@fFB*9r8FHS3(4?;<_RS7jn7KuCkM7$D|U5Wrg+V`JC>}I`>!HO)CtgVjRFFV3UC= z@t5F#)yJXzu^R>4z~7K%0GCJv_ee<}TnKSO}#nqn&#=_jjkilHnA%HJP; zJc6AC>x;%aQ-lL~hVvWIho6>CxqxmnT8@tx_>S%!Ady+99w}I9ignM-i`-vTCfx&X z3BZ4QPcS*$FYg~D?rXOqC09;p5LEHw7hL}rAM8)Sr~fd|{${B~Z9uUGpr;O_7{3ws zjwUa60>+V%*xIx9V3HD7YP1yi_)(@{w^oRf#J+6j?->u*C$(Hjk$7#b{N?jANSvLR98oN7DCRDCP zwhkd~%R5p~y`epBX_-5-^ot@W!7nLx?No~v0LB15ROmHfiBb-|;1qBMb2)q8X%5k< zQ~Mv+0kbeKh*6bU=cq@}2^>(n7yVnlExR=~w$1WvHa90m3uZ00qlr=;K)lHirq0?! z=`%G)F-~?YDL*hc>IADN_f95DWvP9?;Vyv!mut2Y@C}D(x%NlNy5wvL?0vLNGQ{vG z>Ve3;ZKhjMq`J~SSFvfEkPT6Yuu#&9drFDVRo;lr7snbmsaYtlP(v<}K@)a9Juy-h zFtv#j;F47O@B0WC=&Q%P3 zY^PwxiKDM=qWaCGn(ScX^^z}Uj+vPw-PH<1XEp_b@ zAg`N8O2B81+MfW-{hxr>HA*e;C)w4$iC*^0Q_ye->?@eL7@E} zP8_8TD$<|IyxKnktS~VJ;&w$(YK@v%gm^yfr!;olT`6^^O9b-3`zVP=Uk;e_)5LE* z=PbCWTN&z*7!S}&)k|=48$<+N#}luMd>40NE<(GG$;G>AKdlYYpkgfBKOYRdui-uD zZ!2TbgM@=q?xtSYcU$i1Iw>PVN0$%-wMFm;R_;dYTZZ{F3|l1-7$d?S=^(b?gN2XWYEsyeQ5t+oS!GFMo)R7Db#ukQro^pWI> z*D^t|Vhu)LOG>qF6W<#&fYR>4r1(;z%k$ ze4Hg+Ie^`+EzKqQi4mYhiRdkxK``ngaetcm2^>~R;AT?wuYgb^r*ilg!B`77?K#0r zBq7T)5X3cE1)U?Ia$$o+Nhes7Fij-G_ zLpp=A4n6yV$1{fWhKW~D zG42vx;Q9HXR~)av80PgXSQY$0A$yo5(H89Lwxbr2|Ijakc6P`^HQn=!31>OF4iqEqRd&$2qG_g z!1?thERC_1|C2JX$+&a?x?G4MONXA|k-R33w6oqDRSRe}N?uQ9j8AS8p1#psf_U$b zW=Y>7Hk3;VrDm2b@hqDp@OOn=jw9Z8|Cjlt$Cy(kZ#G;oke@_WdZ{gaj3Ovr*IkY!DY&(Lru zp?r>BDO_vXd&z8+HQllGZBm6q)ON`B#XKSL3-7Ws#r4&G`1Ly^coY3FJNnS$C!pvh zN9ZwJd19AqAmzpQQ^eov$OenPxf$6PRNf5@T&YoNmA02KRaoRmD3ZgkMDLqZ9kDu+ zFzHYtankw5$OE#l%&WalD@4VXJI>TaG{V{BXh7&amIr$L%p_*!1I zM-uieD60ahSztO_>q0UFTF74jpz6jtSTp;tV9y}zXef{F}x{i?6&mm*gLa@%q?WL2O7a5|J6R(2jm0fN-t)3{? zgUJ<-b=h(1bgrdjWzh>wcRqMSoP}#v$LoIH7AQjj}%3OOu-_@32ixeCsdh3hlTP7blBVa<(9Jilv}fElcm zyU*T?!Ivz!q9Qi7I3y1$%dNzi0eC4MsmFD~9fO0#i`7oVNO;mZLRjYBnu1zi3u&0b%^McK0-8vLz4NC!5lXxix3}kgBLSu9-L}|b-?(K z%dz*bvQJg(O<|5|mUCZ__JkQ^!uUUP;MG-2XAk}szQHEae-m4P1kcovy+ey~B|y2r zV!jM_Mo5E$kO-x)ahHS@C;cW5<%4e3Hw;FhJqfB<)7c&HFJN$CY_#y43632YhDHbQ z{5qxY{_tD*rQc2Y$MYMh%e3Y;ukcVqQ7jak?Oh|`#k}IhVpY$r%!1@QlS%PQI;f*V zy1eidi$ {aZX+l+BAN1BEh#CNp2~&|?^dWXt6w$4A=6VLQ4v(Q1#Zyhi(>7B9-3 zdBC4E#UvT=*9-*fkwNnas zpz*&$`Wx$KhR+HM&777+s`>eCBtld8%xvCfn^E%2yAcS43XEOspH?Y18ylJl46##n z)o_F}cmeBpTUU)Eb?ZYInmH^PiB*8;!6MHQ^~gQt3OXnIH{5MMVfukZk+H?L!Vm5% zo}qKZgkL{mctmGuUma0`>%Q>-y|1N)l0uaG!l>nai{p-s_mXYvdX#X%lT9S#{kpKO z4ZhtPKdOe~-@{AcrfgqA4H+8iXIMSBVTIpF9vo=MP4#S;C0u0E0R8WTq_1jHoLkEL zm*T1;tbUYiD@yHt-eP0ZXgX~5=EvW?_Zo?i?+txMnKW>V(hDvJ+zEj}m9U=xqIrIS zhW2#4t?jppQvJ|?Z<>hxgJK239=;|!=IoJv*=X8uZkvQfH*Klcid#lrh)ATb5=-tTA_oTg`-jfYYP5ILt1Phm+Py~!7$&GsIjbg z{Tm1{(Ql~e;9Ycc)XnKqp_|7clECX-+TJ5rMfv8p8TW6^zc^|L1?$Wr$Lo-EL;qdy ze@-4kqR*o*l`bj*eiQZV^g&%@vCOZ)0L=SW0dC*?-vg@WkhzyvOy5x(AOC~Z{Pa)s zQsK4Kz`UN|%rIPe*(Ba_&onJBFD}_!qkb$rcu|XsknyT@G>}g zH{Lqi8;?ps7khXDvE?)5oc+22`tN3&KVm#y|KTgg)+r~^*Eq<@#2<6V>bk8QaD-<> z7q^G3d;4v^0axCin^1&!o}7|BeLxtOtJ^2lA2iW+3VTAlLx|E$~US+5z}^Sgco;BHB(=<+vShi z2x9UoBxkZQHqNt_NiSB{hRMwq!Uf|Ew|PpaUY*u-5mCf$t5r!n;?Sd@pd6WujQ6^r z#6l-tH~Zq|>O(!^#>?VV`%ofZ@jyfAUxuOl?=SrS((c$*550LN_Qk{VGkLbV&1&RK zN))4NhpzyhvXoLvTvMLtI|+2kRiF@)c*BzNE`WeQWmN?e`6JA z191|7dHSp}`(OAw9R9%fPCSSI6XnD|;iZs9uD={*`|Nnx&<@R}iEbuN$eSEQ=qXZiK!k-_-VtJqF$CrX}itww$PAyVYhJ zB?D2IHuc;M23TC3-JWu1i7zsCLLY6?b=6Gt^t`YFYOeM_P1er|=-`!Zts-sT_EqNI3-YX{{?@ot!Es`; zXuoOSe5)i%x1%NU`^%cp*U?aLFSDB@{=3AEu92D#-c@gkKb9c(Y))k`bmfTf#EvrO4BPS z#!0A#3UO@*Yh$WN(^TrWTpxNTtAQBu+AAsC%|64#@iLiBq@Do7CGMS39!?6?S;Z|E z?p1|+2U)`JU3dD!7Y*BV(lrT8g2p^+baw3~KJPk6-q{sSt1e+QU2Be_YcT4x9Z~k2 z3sq+0>NZ48tP`v8i30FaWn+xmHXsGIjwWw4v63id-0Mhjbz9`|GDxbmiy+j+b$YV3 zY5T-m?#U$*bTK8s`D_eM|Hd|9urHI1YfaPpU}=3}Bh+5EIR6$Wb=B=iVE_r>aF}?q zoKFL&uBO1r@oOGY5e4{9rzOX{Wen*>_ri=BJ^ zHPN`nk-RAEk)FxKHpBMyltl(gpw7F^_Z;eH#YqxFOY|w``op*8v025^oMX`TU%SYK=_oJn>A*2Ruea^{>LsX60*3-3jM3)CZ-B)iUjK;nZSceU= zn{`&-O}=x_={yxRSNB|v+uR?-%tn6q^sDftclA1s=aM5+L1Ku5n934hx-|emP&(_N zoA5#Tp(X(~^M?4ZU|rhvE%@rosnixY9I}<0*aeW{3 z*o=8iV3~&fa{ARlD&xdaaVPrx(%KYcf4L;JP6ZLO`LM$2R! zucO^Dr;O`wASsZ!mm(=SedNH>-tmw}fuy$c|0C|Q zzclloJ!cI?%Y978_M!kD6+!Csn{8qPI|eq~Hnb!>W3L-c(9BBHmR}ljw;K)=3iM0K zNYl9!bA`@mwAvL1PaB%kJ6W<{UP!iwunHBoy(K_&UXLhY#5sC`(q0{wcE=<4xZqmh zt%~KiUF!PWfJU9`zxe8OA>}5@DOSCoP{!z*U%zWp3qo!Cgrc(-`dI3*D3T28*YFZS z)(=&B*}j1z8s?v*Ozk+a_J~lcqZ?m!U%Sv74c<#!Ya}I?>p9s`fayAACgbrkqOn>#(BqEz zUXv90uO&}EZ-6DSNlL<1XgnJ2Y|t5Ck2PPusUvF|eDq4)+Lc(8uyOk9T=y>*;-Ds7 zaiGo}2l+4G>-s_6M|wE&LlA~@EA>0728plvBj-rgvWVv8MT7bzuD!YP|+`QcG9~# zV`h}!dpB*me=JgB9<@r-(Amv=GH%(@T$Z0fe?xs%8$_$BMr)~dXaQ|x>FYVe!=9W8 zD=2IC=iF@?vs-!Rez@rr!Nf}5dX}Mp<>2k)!*(40ImOA-FAKMntMkcY5)@Y8vu@X} z`h*uRP)qAMFH-CRsMu2%KfNVc)QD5pz%)1x!TDn!pWMi zIJ4yoFGpoO0#>R?@B#^s({V}}FCX^>zQSHM0;vY)Mx4v+?{BWdq4qX22+j8N@r!Sa z`pp>JjNW#*G$U#FlW#;>nU{4sr38I%E~^{GxtvuVPGD6&&#r#6m{v+&JbkpHn6QDu zyAMF89c$aZ1WD=%41ONG{1apH^lZuRI}>V@m5 zFd9M+ypmp99twwj-S>SjDqCpDe*_91+@k@3_t#7Fh~7=z0~<25pwLwaaq4_t9?C2J zbfD$oyzd=1NV35{8nO5Yjb!CJfd!%JcumWpCF!zU0Lbh}`j~E?h$L@r@9ju^AYDMJ zM5MXvMTCGUG@Ee|lyw{)H;ujP-*@ssrg&SR^*S2%R1Ny1>+?iac{S!4h1F(5C00ii zy)sE@{DRK#ITC`i?6D9#H}B@X#AcEW=i|zSFvk@?^Bh2K4fA&Ix#2FWAv4~Spg1SD zRpgd^^IGwi%d=R-3j0SAzF~1*r}SXg=+7lH49&@0u{oer&Kr!c!7Y<&pDB8G3+N0g zSL+uqKh9oFe+tURdBRgC=(L}lRM-fB(R_2r5RVe%R@&MOnpRBz=3b^UO?mZvN&l@q ztc@x;RZX;2YF?z?q$OT531&T2WyXcqi5|w`hsB%;44WUGt6F#Q3FJ`@($cs_^Xckh zCbjY0j58MA2@M3mHwi5i>|ADmwbe%`G^=b$7hL8gI8) zjmB=1I%P%B%oHx)IP8qlY zdw3dD;i6|mCq)Fgvr)eJVWbGnOTm|ZL6leC!bc?ugNn@c4Q*L9_FqUweek@Lgm)I* z`=cNji==D2==OCxt`koY@@}M5>@Qyv+ZZ!P3Dmv#gjF(2@m*3${M+uZz>DCHxB08j z(o!QF9=ns$+$>DW7*T$m&9jl~{=9wC9x{o^&djG-+nM&^m{QxbJb6edoSB=&-`9Q8 zXWlV?2&Ok<=RISSPb+8mto&6^tC3tzU(j_;+&RqBhiPIF_FbzMfv|8&#bMbrE75Q{ zvYr@7XMMxcHUA_KrH=cV=Inll{-Smq0`{=@1H-5N z_SR>)&+3t!K(KJ9<>ET)4P!2sT`zltN&XJ@c0wR5A1)d{WrY?>s71BgG)}&%Gkr_Mqe5moPvA^Wf$z`y37uaqYHP58@JL7J${iFweML4=G+t1rSqN^Ffy^2 z6z-$_Tfn7Bv7U=>yU-U`X$JGY_NPKTGtj~Brjq2L!Yb*?YvGUN$$DJ8CNPci#j~?Y zU!;NT%Jy4FOB*$>K@b5!U2znO^^M1xD-Ow66*r)8C|1yv6Wo`7N6o*fEP|VdoQDkm zgL&3tPpxV!Nw4kDw$qyV^c&z!ZMS|xV|wB9drmToXQ+TID^p>^># zPEuY|)j{n+;A`6Z-!tckG^rL?JJ+A=H_>6vL?;T|%_~-8ba0)@aTQHhaJ~0L zjg`AJss{~5tM#sZ(FiiqmN^q=Jv(p&x0HADt2o54Yx3=|KaOMLhfaQgmx;72{x!J2My-7X0; zUobaxE`_rZ6$TV21cjnv@rlZ*Y)LV7eaH6^AuQdyQ6DF9oPTiYG*^hqluH>`H?Tb> z03LdN)_YcqnwGw*5#c(a;8tmT9g8Pj$M|-Gzl$%G68m%eE`?;{7+%~inE^0c1x`@F zUYr$Vy@GDR;?6&rbfp$b6M(vQD%)q zWw3QQ_t>Kv8tE~|{r<)bt@kt%?P1I4p0v!^FX-ft1|PPk@CUJoK=k45gM4 z8Sc3uO&y=AMg>src{Xry4{r-|%fo^;Z;M>2aQ^dAonWh4ED1xpGB;c}72DT=8cPu! zttq*HW9^OXtm)IG{qCIZ%%y$318_y9wXt=EOMr2`!jAA3O7ds{FRluRraLUwYd`c@ zqLJaAAyf)xe|+g_AFC8YA>gPN^}feZa2~R- zB-lRP1bvcVhaVtWFKKQ8=U^~b8Vvw=l77qH2>5;Pr`gx3+8R>TPjpYHbcB~9r`@rK z&$b|UXdkM9o#W1n^U5>FmlPMVmVC{P4CW?$`xyN+IlUzpQ0W~8(0c&cbcbK7bTMk4TlXsXof?s%TW~^SO zf?c?5o53tQ>pXZ2AI8e$;@{Ujq1V)O)(B5XSd0&!YG_K4a+c+IY=if<)Z;!=A}^dK z@ZMAL;|!VY?H_1*Le%l{dMV`D^VaedF{0~{)=XRZk0B{4H%^V3eRF1Nw^EFDaPN;` zxy6%-)5XfxsDE zuD#olyk)#6RDNc;HX*{&MMxY`G-hzRY1-DjDbvV(5FYo&dIc|0f;|eF74bomI7y*C z*mWFyQDb&NtU!}4JVR#YdOXUI{W-m2&Lge*!{b)-8wFt@^F0> zvaOo-wG2@h+vy#K|8eVYuZXPoshP#W1K%?2XJ!z;&={0Y)$->z1VJA@z(CxQ)SdQX z%*k8qxa-ucXb@&sF)N#b_d+Uvj=#Czzau=s>xXkgoQ@@-VkuI+Si)9>GB3>`y3}6W zuR_%nV$@ZUjNkgiYs$NnbZAiBKbuqT)BY{`W$={g0t_-_bljOt$3J(HS1u7qE_(9) zKyJX!=3ZaJ;%OPLcY@+Xpr#l>@cD#uYzN}|!22GjW!K-{fY9S3Lp64aC;NcrMBDX= zIcB$_ggmd&T18NP&GPS0_aEc>52KIFpJP8Yv`9Y`TN_)NrUL1U`o+ui2OCpg(DVfIbnJye`{hjY-I_N_%nm;6salFWSrCR2oR z2pq>mORhp$=;Fk7XEXM;&9X~4)7l@{k`d0P{S|-j?Xyr68W_(jL-0{qXQn*5-4@4q z69k}g8&Z36Km+|ouiMbtC16Hrn_{ayjZI_&Tnp}Pz>@JX+CT5LS;FD1cB?6D>;#p@ z;TZS^m%FY7YMVJxp4BeexQeH(JYA`owA~8bxms2=EfW>t8*Uh;A;AlJ8`S=6_*{xJ ztTajYU%Gt%$=Unbgmf4>Mcgji%RDMg=Jmi)qNxReZM)uA`@S^8E9ukSQ5!`MbDEyw zpq-)to;)gPT-cTWya7f{^ODJgM5ll(--aNQpo6)MrwuxfR{>2x1;>nOw2$cV;+&$f zHSv>B7otas#z$h3BPW%YYzouyCVCFVlnsv&-I|y|WK-ibItL%Frp#)p`f26~1##tg zW$-+?_=dfJAJGK09v;d;nHXN{&GMXv{KAc4R5?%k?eWen48r-da5C7|@M!RC9ri`5 zg=?sW7+YIx!>#=FC3A9kJXJ*L@eI$wXRoulG<)$*U;E)=sZjX)h{BdFkHCWUHJ?gd z=808rP5D=sxU>X7E zaQeyt4tPXm*%nn~sXoJ3JS=&i?rET6=71dwskat}FP_pO;78g^I~%8fl25W6!;K%V zCB=w>Q4I9{2YYWF)mFQ%{f6R2iWe^soIr611X^hEqJ`iTw-7A2v`BG>qD70l1%kG? zyA}z>wK#PmY?lv8DcfLa#D)Zr;)wKVQb}f zv!rSDdVxZ^x)Zq)F64H92!HB<>bbAiA_~tooFE>sf@AS;o!8Dj_2sLM`vv;0ELg!~ z*v41tq!{0J74|d_?mIWy7^WwSY_J0L8?TK#nv=a__&4bm%&976H|fML!CW|kM_P}~jg1fT zb^5K`^P7d;_K-({6B>ZL_}@U{i6j)Ohj`Sk^{ z-8q43YqGY1YGMT7v%x%ANC&?%H}#3`u|ns!lX7poJP?JWcn=}=Y6MYuY=~fJ55(%r zVo&AiHwL(>vNmXpZ_OsD#RsJKnXE89h?ct4s3~OBpas<&eZj326y^7x6B}^*toNed zu~CE}W5$S$OIzBT{s~O<=UWdqszm~NY-8>B|Z0{zxrMzl-u&nl=!>TU%0CR!`>Y-BGkCbl%|L%wJl`>sPNC)h!D?6DL= z`&)SfRmbfb%{Sr?r~n+_v$gk@WD*$GW2mg>cA!{<7;Q<@k8J6 zYZjC{Q3eIsjXp%*w83S|Q z9$HjHCkOz^$_h!u6~VM z=uDFeXIf`QIF%AyuV!iOMV)RWH=3N#M?^?k*M2uMok^= ziVOBr%oiE18hgA?Jji^r?<#uK64KS?SbTJhiOSZjB2zcaP5uCsrax)uBzg2wg2Y+$ zs8K3tKo;8>a3wk5W~u{&LKkO6j%GDbA{s*n44W%{!d2N_(w!iS0Fje&n#JZzFZbPk zF}MEaMm~-+L-Dvv0ZPeLrEs^qxoOlx=FBoR1P9Vf;;|d;XkT5u&8?y^FAuIkqYNN!;n@mtP&}r@I|5fvUPHs7X${ zx#*4-2U6}~?y=GTXTQV0^DgLL5Jt-e^y}_lnAyd@W_do{k-x?=tooCaa&eAX`+Ek3 zb^s-s$%*o{=_VOIq#MR(v22U-*RK8WFy%!Y6#_J+47fYWnF;rd`H#Cikxm1w9n7Ng z;zb|Xx*aXc)g9mV@2Sz~RvtP&%1?$@eu4|Lh8gLTO)?sA=#E{E6;zkt-aR~F%_v#V zO@7r|g11_0tAq4cx~V~r%*D7&W*0R+8l;9g$AWv-?bzL!nRpvM#uFB8MGY2S|k|^%NY?i#1-Cs7vT%R6&m)Q{@jiGpiAQ zC+68RMGnmA)jGv7kYVRdRmj8JjY6V8H%}V zIX?4lHd(Jx^t(Nh!|>(t=G$77->N}A2(I+tv*2A0=J;h@pKR(T!!nDKWT4*cwNn9n z3cM#uttDxjFF_X_4a_xP4f2qSMXkAl!CXo5)+LKTOo7MOZlFo$eX$WjKGsmG=f~O3gwd)@iXPc`+Bh-Z5 z%Bqw&sXDK!Yk+C;^xmFdiznThFrfue}S~E;mj8;}~ zg(uy|$kiCRujIg7=yiLb_uC7XFl*B=sFn#HtvTd%Rs&ONdt9yb@qBSC#)fIWsKsvi z0h#BP@DbNuzO(tjTQhnWz4A5G5hFFUwW0(kkk z|Nnpee`qwIn}`s|)8DDD{;50Xua+D~&klR1YC;9Bc7=`KVYLC=zrwz2>FZSaXx|Z? zmEM11@tTTyu9BJRb*Q<^&P?Y1KKJ>HIyx3-Af$D1x;tKIEBg7VhD0vU(r^BD-|Z}aY3XnYrd?S! ziTyl)pQLk!_RwB_+1Yi7Pfc8}kx<{ zGQM&sK38TP2|)BXF0dY{~_?44V%gBTTGVKYQd$lgPq6<$BwkTX@S-%$GcxF`F6 zJNCGqyn}!3&Glcs@$dJEzi%?@6W#ohT8k84?stKlCi4W_IX2bMD%JYdAoZIIs>l5G z273z0bR722qrZAx-S4u>1oozCDQ<$PNBF{6j-4Y`-JmMflQ?x}Ea9}9q&RBr_^wwC zDw9FyXZczFPXG%#G?`)VaX5PKEm5S=$|w{L%yq}q8Ta;fOubd^?tauhmyU!IdV$Vg2<1%MJyH_n9qAeQ zeC@9{=S~M#>x0}fRY?a-Kb1Ng`WXSpH)!C7bfb_=>>9|wJocfj<{Tl7=x?Uzh?t;qQLySLs+-r?Yv)0g}PQytIb&8h7bww8}%o&)WuhvJ|UhmY< z({6clCs%SfjBty&NAwsIiVMrTja(|Jx)h~c z>6fm~p!;FyCKpS)-(*XZZTUmp+qMP^f*SGyt}?ysc^|86j`6C+GLgx@ZBcx61DYUT zeTMTBN#i)bPA`P2y34Dkx-`Xj9wO1$Q2r*}`oT~4-SmyVV7lYxJ=$SvWyd?fS&E-*2tH=q*SgUOn?>X={#Xe{RDk`u;`Uf!yZW;Xr2DWYMA5&2{nf zDM`;&;Rh{u395OpN{6%V%7-)X?~7WI)k(TYuRYlmlI=RleZ<@k=(HO2(t&mwxe^0M ziI|S_zJA*-uB+%p%?pl0%dzaC^{8R8&79K~vv}|A=zIEStcB09a|+(SPaP%@8D)N| z<(%H&H>M9g^Cn6YVH4j8K5GwRXEs%I4XDsaUs_V#u08f8{>7v6NfTqk0(IKGH$uC_-?l9 z2s=xb(0J~b*SvLb`+UvcB;78!_|Th=x>9vah!zSu#G>0nT5s#iKwTZna&lW|?1H!T zbDUW{-aRJiNd@CDb%j9MJZs9T{-x&lzxkrvUr6ezzdG#jzQ55%Uq9q1$dDzIsf~$Y5vZ&ER5#&}NAi_6I?nNeuh-3^@W% z`t?P`PTycUspC)fI%)UTsM)*eOshx*-9j{3_$<8!zKP~;p!sQUL~I6GZz7{60B9uR z_bsk8n8HLH)p9ku^KBVxla95wz_vy6C6-8T4i@$V%0Y^{>9~|a+x(Mj<$NzpTf z#fGx+N4^e#wk94=E)uS_=l0%k=_tmaNs*mBt(tss6v8+YnAi{G{QlluoK(29?-8~^ zMn;YrB_(CKW3g(;fN?OPd|pXXp-CPY7WjMg^{sWe!{FxgH;Nn^A>KG#bO-StZzIE0 zo2B@wKTaKROt&a|0Ute0>8H)X8L4i$dnpa zHDVcSNXPZT3!iwyaliIig`803i^8$SvkX>t0enGssVV(`Ck_7hx4{S^xiEsr{JFm^ zLq&_ZLHwUAkbeNuV$S%T%IZwnmX^y&M%Es8H63*hV)6?@s-DKI;VftQ-8 z5uXi~yRw@8+Tlw2q`bxgFyJ{98H)G3thsrV62P;zg-N6Er_JX*>bGMafn&(f7y|5iP^A2 z>3gskAD6wS`(XARYYIg>l`Nrl;8n~VV>b4f zKJc$2k^Xb+@{?2({wJOpJ^p0zejkIO`fIP%-Xc}a2;R_~{L9;(kcL%NXSQ|cEf)sy zZ|GcunvY_eCI)WHyL>4)8}#eW84{pJB11VJZ?_7yE_i8liJz{b@jK=thAyRhtXjgA zi}l?kLDceoOG870(_3;=!;nFpG--deuGv9APJRlkXZ4p==p^lg+e~YemXh1+5HoI* zV6LWv_&0FnK#EPeU6qn(?kxqcR1}=G%^WLbYh&G!f?Kamt2^k0vsuKfnPsQ~rq>PA zV!iH|*5Ja8Q<;WOOGj7M)Iea}l4%)5hmHs6vH!$1y2=gty{Hzu`l<#qm{n=ZRZSyY@!Lr)?^APSVyxW1K-C-_W%VjO zi4A1rKW@2(E+Cx)t$lsZ2Qsq8#x!P;YA~YA9pjtlPg`|v@R)rs34VOPKVRAF;1ZxS zoLaC<3bo>%T=@KH=EF)i$9&H-ibfGe3*GvgY*No-Cuf^vg%Cnp@_J&c*zCa7HhsxK zh>7}XNseq%;emc&CfwG3k>33UDv6FkMA|CImodn&&h4xJ;p^fh7{lw{)mQIjna~~L z4aI$GEGjo)CQTR)k;!S3ZwB9uT z55Vi$+hM(X6IUHW&5O8&kBYS!Y+j?%SB&|K=GN<5VEXOxGujOZatnq8&OzYf;6zqZ zpm(up-cOmv_8-E#)M_X@^MjxE2@Fj!A!}n8^oTmQ|Y|t>#5JF9a(UNy*Sn^Zvj0NNl{Af z)61d-tCsVc6(Sk0i&aAga>lpbR*xTsouIe$=3Of6Z!5f_PX-Luu784)6;XH^oTq9& zUBftJhy?nnESh?bvF738S7Lq73E7OjL78-Pv_nHU(U_)ZF=U`RX!#s@)YK&Z?1i~` zP-qB|6%$4mU!g`c6#G+6Wwt$$6HUj+=1a0>cr&F`YyhLTm~r`j&rDR4UY&Tw>m2Aw zT*}Pk=NoD`g)FQ-f-bveJR9H=rbZ(H2H8Frcp+`6Cl(ZAoA}<5LZ2rJ3=%L^M|^aO z*}oz;|J!7}zjq}TbN?&E9uoQ=LE494v(3bQUgee%L5n<3pK@_=_gCoZ4(G^zLzJ>> zK5rWM4y%$}L@F#YGv}EHePM5zn%|THdjt5j(@}lYB!AU|FJ=Os;FFDH9(hZ(@D@uv z(p|>iBS{yGAC%CZPKh8GmyhKNfmPUGVfLOZGhWBw2Mwbuby1ql@jirTl`A1Tu{njG zkG{I~LXKyOk)NrTXWdB$0pU8sYaWtzTSTlKQ-GV%)_ieH3+f(C+HmTJcPFb)ExR=# zB%3*mmcG5~Au2QRJvMjS0Gxi#^EkB6XM*)19!ov#DN4gju2FC^vq= zt_akM-P9$mq&p*)_p&yvc|AzbBNvJ;S~S~n>)N_#P`)Rxz2I_}mJEdYweh{_x} zHCzk39$;Z4IFfAhZ^;G2Y2vx?!^U2+C6qDOjbiMR18hCn)WI8*394m4#u{sZTYDL-XlESMEw_*Y~!h|I&9|dDGG%U zo}W`&QFli6zrJ+{boAmKrQ+VS5RnQ^cO}?MiT8z6fIC+_N&2AY&!+`lD-1&9CLt*= zPepw!QnZzG<>99kYchQZl24gCi_?z+eboi{)NR)$P7Iuh)VtFpO@m{%Nv&gjzS|Xp zp&@QYTook62TeI8WD3AK;4FHSB^2{5V9Soeik2Jw6jd+2R)_?*0F*>9ZjKH)CnvYu zC-8M+`|b4KZ0hYjd3ph#zu&K|ao>}n*#6{TuIpnZ%=?zo1_hAv*+S2BnjX4%6UG&U z%gnf$CNef+I!;w;Ni2AQtvqkTY$1ODJR`A>ufmj56k6il$kHA`iT%hMGjQrh_ar*fQXFpF-*g>>Sy~hImQQXYF+hsi0!OI2w;eknPgF(-Bk>jvbDmAWrJ6^AeuFP9 zFKFK|stX`ETwAPC;Sf<$=@#OPn;UXOBQLCi*Q1i3x!(kZp zWjn52y7(ArKj1V0=NyY2D;81x@>-rx#EpNqXknrL8C5}16C1`gi>MJ2ul4=z@bUKs z*AS|@Mm3!VzLlUITCfhJLVnc2cR0go)s5i6y>TYyi(l*DAYK+Ip80N3!+sUq( z$sB?tB&5%3Z6Dhf$Xu+BB`SaTyo}^fR(!T72_A-A5bW~3=qyNkzCpymy}tQ;mnt^Q z0;9T{1d(oP_~uD@NR=K0=FK)Sao%$o(@)p$Ac#%ckS`m3eWOFCIUBr{RleXcH&d(7 zrg5=@EtpJ6S+KX?fbng$tCi<{9$4Ukibh}E(XmDC*yt+`urnuLIOhoZ#gckb>dkY` z*8tOWmHV_oLLcnz$4pr#Ynm0!=7;{X$-qB(3$QBH4Rz@BK;rrpm6;FsDa}yP{_p|g z)Oa2?Uz;d7*7{%+qzl-0Ib8EvTrbHmQ7VK`M;XW0y(W#HbK%g~5Ew%9n7C%T7wC#k zXHZlbf(+P0-b7kCaB9e`Iu27*?cR{+2mIn6oh_BsD@P8+iT!-Yl-k(npo%s$RUUe;!3@5ajM$}n^6dd{ z&a(5&%8@v9YFQ2>aJp8D0???1L>H&ymwwQE@=$Ez8F`k^CO+eTWRm??D!jtW z3obBaq9WwhA|PFL{_Um>>t+$$X=%wd@5y^a#~OXjW9L8(H2+fgv~PWnmR&D#9-g1{ zo!?cj)~b~~|7CDHFoijwUttE>SaH**5~7aVxT-{Fa_+U>kN`xvoqvNZ)ECL7RH&J= zi;Ujm$@p-g$V>G2Q+&V=G6>kVgfqe=@J*4?Gk0M0?(~iblGa6` zh`r$iEE_KT;Dvkjtzww1w0=?F%==NE4T&I8W1HFK?gpw8qs(fnrV5g@ALNZfM zp2q%?W;j`TM8czt14~Ttc!F}y24~&1LWj*gWB6NcGdv&2D@YRhCX0M822L{0sP{BG zW_n%b;HXAZLR!TPMw#kV0C~KPuYcv3H@)&KjReZd6TPkTeWy?0e(p!2B>gcXE+c0i zN`_U|RgC{qi}a+$fUL}Yh|kDv8IqK zG~^_z8x(Mrt#`@>109mV=E@VR^~_FuvBkKP4q^n4Ypb`KQes>%=W3PvF<;;3jurfj zQOaw}W-m?s7}W(OzeFV)SB$JE@c~$!Bl;n z@+by7H}8G|+>U?#C)DwtI(vxVBOp#TqLSf@Le0%IFTbO1tO9=rr97)atTO`+9}RvI zKA5vfvwYQre?7%Q!o8}25rN}8AhVWqSMh=#=jNpf<3lo4HmwI{K(L&9udROpL^RU#@4P7ZuUFkBFyBm>l{E zlW6;Tv(WJL>}d&9DOmyC8XbbK^Ymy6z$-aBJUvmk25*k~&Pd925NNv6d?!nHS$4*z z=0@c%8AsRCn1{ysR)yfNhEHY&!W@JhA-?8mFg0Ihb^;Xv$sle$bT|`$N$7N3<%e%O z8a?TX{Nhoh`b1eIS&htl+inmaBgUe1cyW`ova&KxXFeEE!(^y*dav+=?yOo#sl_;x z)hkY1VL)IzxRJ%KB*4!yDS1j!O^&9r7bSjb=K_*fOcrzh15k)DNTkujEyIGsm!VMLw$de&P%HSYEE)2zZ@2lAU!9)4p&UL4y zzLn6N)&WFpVCJ~wR|IIuvwGZv)I3DOH_g`++g9IXJv$}7G;z=&*SVGfqNo)Avb7M9+pYw;IGdD8 z@z?ZK=`8JN8mx>wsoDD>)jvM=m=ctfuFF5a$TjV@9ssFmu6nJ|LJ4t)Xv4X&m6eH& z=dsfQ9++4$9=#eyoI@cchTC$J{Zez8Uvx89zrr;X8(|1yL;D5s6nr;5mf%HZX1#sK zn|t2rPQJclV}h|Xk@u`>*WMu5?sx6R+S>^rWj)I-9}LvJN-rWUh3oH z^27_(cGPe(*n6#FNPe17KVg#%bVf4=y??dShKHcL7`^5vM^b zL){M?GC4@_@Imynx7Q+^Tu6zcpEeE(Stm}})XXt@VpFTI4Xsy)OLt6S(`H7-&Dn%n zKOhZgoLWpco1cNvEPE`{H1F;Z72Oa|4*({0y2uZc#(aIJUg|_7^?S8>TRREdJ%*Ky zJWkqcZb>~sm7&54ZSPl!@68MbPXusFR_JZ#q_@V8j39iiZ9AX)`#=3^lPCgbY+grP z%Hofd)LOXYt`9O7ltLW(DKu(!fcDp?&?}KVWe>)gQ?ovn?DCbD=- z>_n^-w97Ipge0v7cC_c?PiOC>5oHdTcGO$~e)E*@ae?cr`n*+W*IV20HA|^@ezZJq_m>WAgbczcRwO z)#$x6rHCi@@6+q;)Y?s-)UvdG43{NA`6!w0m{1ebS_GPq=P?KJQjf=K9YAkXSiO^d zE!q8wSYD7PK9Cu#Z7;^Tuh;7Z(=ugun3medoGZotKfsdV*BU;s@ap$mZay?p9qxF7>r34r@^ub0zQ{)n3@pC z@T3t_Uo8H+ z7-n>POX2p))r2y5lx`w$zEB&brmpBiDQ)FMoIRyb%nQwQPWP+MLAGv;N-2Jplmua6 zYpLt>>3xfRN$3I#5SQ6U~}_}i2xBZd^=~!gto(JbMm5)jm#D&#tlqj z48|{`?H^Bi3cEGCx9f$%V*dwf`O&vl2nk)v#pw;}X>(cp48?;m2(*=7=gO&-^gex~2w= zGqx7fRW+~F`_1ATL=O&(sy{>D63^jZc#ZxIX8#x22JcQ1x_i5Z#}2~qd!>Rj_zLHx z#jGqW_`A}!rUrFLg`XZI1Zo{%OU+|4`a|GP`Huzcp67o6?7zR?7}cQLzuFk2sXD%J zu(W>#vnr8eBDkb(P*d4Nh9At5O^nqyD;4R}?JV}`O*%bvt|j{eu>GKK-XZ_UbYxTx z`LJFICmli5XKUgl{q#$2C~n&yfaQ;Q5yRty5A*bi21$@R`sy8?I(0%M*e0ZTl{g_^ z6m@^{@_XNUwR)nRLJp_$rF84c{NL&{hQnKjuY8@lA(ivu=0+2$A7>gnZ4e&iw{oxR0MpWC!IOnVl73MkDl8xA> z$)x}=E%bu34gO49zhR!=YJLkX*4ZwZ>@$j;M!{p#mDC(I0Zs~5XKQmNMa=2rQPWQ^F8&o#*rn{+WrVqaBwN6)QZ1eGqb3Cn9*0i{VSN`1OsVQe7Cydc>8!E-AnA*~O%R;@T>^5&u6 z(%PCko6~m9{To~20n>zi_J$aG@uW;4cI_bb1iEcFu)IyB4{FPLeuT}kC-*0#so3E* zaH8BNEiF0@5BcV;6JFH+)G%8sdgq@Ozi?@vD~Ml;+(ry2EyaFcK)?2v&hff{5g74#rAAk( ze1c30x`LTo?#7{0))Yl#%D@b^W))92;bTkyhsYL5=F{UT;L@BEKvsUQt+Ewd?QxF> zNbbZ(ByFp^gc{GmYiesgw6ejzZ%6Np@NDvB*X@F>zsKqYa)Z|A;KxYmO3C$itLS4x zYdZ#N%&bBo-6ZSWV&*rr{Fa6>9p_7ct`3ePU8;=M7@jgSAgiX>D&6$-mDp;vG14zZ z6vU2F3=$r&LPp&Wp(PV6OfOn(v)-$AXj*WAKdutkdPfI(YTypWB{p^#)KU`<9LU$H z(y3o28J&w~PhDlpw`FJBBfMzsOZ1dgXkjV&W9 z#=LN0Z2Y}e{{hII5btMpB4VO&;YiJ{vm<yx zTAYACyH3Y^;@p#{f@`bmdLU{7i;~6Ul49b>rdQ04e)=2|I z)J*YqFZ?6d(ssy6(Int; z)o_4Kvq4b^r}fhq9{v{YeW|UJ>QBJ2y2Hny>#1S$ky_$pi*1hPTkMbdA;`VZC;lsYAW+BEU(zhi(0Ki#4|>>cX9L7DZ~$os^>Kxytrh(y=qhMH4$Yk zTx|s5XAbP*B#>suS#7rxN8_AjEQ@f_QX&Dah*23|kNj^g<&n1Frnfy43BA&hI-LZ2 z*_RkdxKytaq?%DkD%09$`KkN+AIuR_^r4eDu2l|HZuK?< z2A6*T#x$fns5h$T9EM%**E@)3Q>N}r#Rjg=Ws0i3YcbGKwn6YjzGXjl?zn)o{(46) zaH5XxePJ0dVX5XcL7VcY#!t7CQjcDJb&{Q5^dZfKu{!;5eYDh8iurnI=+sq}N}-8@ z_%O4m23_JvcSsmM6TzejX|7nQPP3ZyZZN6*2gW@xhujn2{7jeHVVEQTR#R{fsJ@rI zJ!T;J9_>8>{PMj7$~}XWS1rklp%{P(AN{Z($w!3*2D!ZitSRDkJ#}vWS)_NAv??(4 zu_wpqy;7W(<qmB8QFM1(AL`P{1f|-`B9V`Pvgu63R7AL#(Y`Af@cT3QY zDd>Y{8exznAIlM)mN(OJ%U)jIv{t#Cm28u@=&i?=wY$SPyOuEaG;JLhSB<*S@Ct0k zn#^FyxTwR5-L3N2JKcE?Y&AJed&aCch5;JL)V2qjeR-KRGGcg~vmGgz$lIXmZ|2<)9H?6Qm#LMtW;Q+86F1NswKGNG4(1$eQ zvl*851vz8ETbS561y>T}mgr_C2A3Z=98_y=Xf#l7`na^iU2&u@=*=qknp^h%w6*nh}YV?xy^s5+5hBtFTr}+w7-toJQnWmO9tN7Gv($#_WS{V zNN!|wO94rwpgp4t!gnd&#y7d7s|Fgj7`(M$>q3g>JSa10_WOqE&|j`Bm$MctA9VAK zrfz9iX3KV7)l*?ro|pmuuz5l@U_wxjti?#Byby@W~{bMlZ z!%e~4@j?_DY7zGzum-JQ&esDS)?<>z*IN>#LLB?;Ub_6DV`O-~v6Q1v;4gJTeq%Th zQIACzXRQ>}s9BYWE9yZiS89~8k0^6Hd0Rb|B9-e_x~W`55l*Ikd@PdKAPv&3?7T3! zV%*rQ-f{RFsx&XBn-sS!1dVm<9y`!3QI@T;n*OlVp%`awPSsfH{&M%N#3tXZFM2euIst3r`8<~rF^#NFM@x6N z0KnY$s;f*lKdUWLDX=-wHRm4kdF#v2#6YLLf0n2*S2*OVZWYE$galp#3K1f zT3S6Dvg+(Z^DuGfgLeL0t8_M@4b5|^l~u8v$`#rfv1aoXD%O#$nF)8zmy?|3<#K_f zA9a|_HZo$ypC1JDTp$PNBp`1MaFD688*sU zD86++;K)QGfR2L?M-i+Kd+rS%kh`4Jf;ftC^E-C4<{X|*;Td%&UR z-0n6Ox}~REjPpZGKTjX7=)bgdURNTJ2V)8tNaOy>s z>uTdvYzWmoQb$~F{w5L+N19WD8PRsrKBns_DvOXo!1gzELV^BBVS=`7+3!@m(g%Mo z-_aHG$i4lQyYegYZzyuu-=O4Ee|a=%IV01QAG2gpqj{C9Vq&*L6NOBlca|+q6AhOr zMuXGrF(|@s69>2hcXzV5_qI zg%6wSE3eGVM7>UccB|2aKtK@Q*4Q_U3CeW0XttZ=o#Yoc8Iw-ummk}dE@JRC<{5UY^pM?D{Xv{lSk>8Ff&hPxb?TiIrE*=OrnQ z_w}wnEzM1BM77`0E3v@WQ=zzWt8vLp0V1RO<=4N`>pB}}3!^WrJJaS*cFgd0Jtyvc zIH3dMr$-Loyi{CG<%Jg7r%AoNo}S=RUb*))3~?1YMn07wr0vM_kNseOH~uXCds}@7 zmBou_rsx770xKCm7vhLUvi7~LnyC_geu1K3YGA9qMNC5KCn|v44LnI|`9Sy35T&#L z-d%wyZwGh_*>G=|=^GV+J=XfW6<47kC0^purEi!@oU?N#n;9+C044M|+XgX83*Ot% zn=x)GT3k4hvk#V6dKPi7bg<^_N6NDk8qqi_<*k;L#E;V}lk6!QTFe_K#hooF3_G|J zQr0b^QW7cRtRg zY>7F=R}_P}V4zw_=2Y*v1uS)Q4bk`c>3yve9et2r96VYE)=mRZrUdU8AAe&|mQ3=Zz*8Wj6H6IK(AAc-4zik}X$Y@?B6@Qc|v!WR2d|>baCg=R>}wKsisCy43cH9DiSjfVVcqTPxNe zm*=qw&)0K9b1a?59Eq0cL}7Z-Cp&7#WMgry`d}_%`D`9(mC3e}!(UbOZ`(ZTjYbC> z(xU|gb_{La=)MJ&wQ9*7rA$^Ur66gJYS$do(q76tZ?-_=POwvb^@458Lle=7QWr-P z&2e7n>{f@`t!z#>znK@AiTqx2GQrg^*3sP6q#dKpuM4%Z$zsaK&x~l-w0`QY>XFih zO>ANvji&lfdHTz+pqu*N-8^=4;rM9PN{*{!T0K-~{o~CuotMZ1lIkWT^aUFV+1{i+ zYn>$ilX5>E)_yz~hGTfgU$tUDwB&S-wQ<`}DEZ~k25XgY5)>U*wttiLVwC!@uf{O3 z3NgqEr5!S_@=D5$pk6q<{hcFWXO|SK<7kv(B-699Dzrn9olI=5=tq2Sb;6I-!}P;3 zmEU^fy=ATIJCuouYJ)nrWS6b3NpNWF_9bLrTyyEpw;e7JWywj_?`{q;+}e~RL8hYX zRb+`456X;8!-|i?t7fA5`-@RNQK?;K8qv=LW;AQFL!@+nh#iXytg6*2xp*VUTTitW z$LfSX{`w5b{6wEgn`$a zP_0Q%qt}IEw-L*(uj4&GRG;3dl^;qu(MUXeiMhG@I?$fGFEKPOGE>K>qZpseTbY&7 zq)A8&Sim2V^-`*{tm2XT*6%GcA7;Mb86`PdSl|{pb=l~G+)hl$0N8o$ z#c)RSe`N~s-+cYQ@Em$HXYyxG4GvrXPc*FIOp@3yC$D!N^USW19em(Po z&Cps8BzG>^)dl%|*tE8#W_ltzo|eA=6Sd{u4L8Rg=UXh^zb4G-;y(1;jg&3z0w6 z`zYkPS=K}FlYrow`iF5+ebzNdv@G%ym+^`mPJkS&E7=y`2X~YVyu}0&8C!T@@9dML zTxVQW2|_5Zi`&>^a$yWMfmh@pd9Xz34SRisDq$RfQ!|6ZF5X)H1((?FsRm3 z^Wm7;)R;BWub#OG*z_sL(6FwZ*Bfb*OH!S!*tdh2`ZiQ12D8E72v`NImFJYtzk;3# zX&+dnf!&XcG?F|((rb9*+3GFem25l7!KLg4T7RjzyQH^d_!L!RUE-$i$O!jN&-xuA zw3DggMHpS^fr@&K;ZQKR`|_eX-OFp?8d_|plx5NRo6-)%?w2j>D^=6awBQ6al`a8qellijqJZ(Z0^iJ=pKfvtoCC~U@q|aF<+G2PCA#F zTG5~Q+r3}he!i=;pRd6=Sr>>`G?*vXX4GC1>fLL3jVIBeAnaGb-KL9I}_Nl3F_ z@YHwc`}Wd~RtL1UVGx6sIRJot3ys$LTPXKG^7tRlua19nfR)3L;r|QU*S{*|IGz7b zeX_L~OFbxwg)<>mnuy^*CPuuq!pYnPE$~9UaUE$@9L|6(^V8jBlqjqlGS8w@#sFa zDM+2@*vVrESio%Ap+DWNJQ&YI*(tf^Q(~*1be(L~s{)5d6UlBKM-0cX?4@|po(;Go zbUdBs_`m%+y|+NX+RDb&67_&?9Y1mRGh@&MU;-DRTeD)N7U?3|PI3w(Mya!9EK3g! zjF*<<8nax`vK2|dYRxo&#ztv|n=P@4gI0?7YGsyyjPZ!M?~6~2{}VZ>WL#hp#yMsz zdc>|gR%*Y=^iyH^E-D};fpI&KddFYiBW+W(vC+`K&6w_52tl7Hf9d37ezB)3TC%9t zo;x$_<^&JVv0}s-`YEQ*YC1qvW3Zk8025zT#m@{`g@BPqJa4tw0d=mQpQVC{34nPo z?6|~~RGnrt3g3vAmTCICp<+aw%?knkVT#4Pf0HEs{qaA6mFf+(Q=gG_g#lT9<%;?H zoGE76Y(8@V2Of@15zI#dD~PdUzn$OlCX;e8%MwwiyMFF&Uf)Z9@}Q(Dm&D<;dL>R2 zMfw0ww}oWLvllz~bWhIC!3EA-P^D@fmPV9cKy1-@Z+yQZ*N~m}u2FZfZqTL7(Y1d> z)K-uAspO7vL4rx{@BfRnw*ZRkUDJI#xCeI#1lQmW0fG~P1h){}x^agD2@VZ3ZcT7^ z=x#I+T!Kr0hT!g+K*;~}-ZOXZo;iEY+;eMJt)^B{)l{?As{Y>ZeV^y~d62{Tyl}X9 zJlZNSE>{Z#f}OjczxHFzOMUk4_n1N%>bYyT98`5-Tc~lf7Lv~~KkfDC$dJ`j06bib zR{6;CUH3U_^;40U_YKAwYXW)NG8vOGi1mN!tAW_zKYDZ25HU6(2}YjKDv!Bm+(Zjw zYSTcFk2hpucbBZV_L^>2e!qsrTK3gJ;?N9zBh>tt+f)Zb;bFUMDRQzxRdftc$gWsL z>qWXZwFg$Zo@_^CwMzfw*W0B#%GyiBK#5;^)8%_~6o#pH;%?g~Dza88E&1u(`;R40 zSD{^gf$y}X@XeO&+K(CYSw9O#{c)rS2PmFzF{`5&2(3EDt+7FU68FHEpeD@@=SOLU zmp(ype=gS+%p5^`;5D~}eh6{WP3ZQA>);8ErM-5jO8FLK=YS8C3HXXy*e+m*M1a^O_Wsq2S7 z6Xxb6kZ+YrO~b(cBg%e*VfUKy7+KfQo&;}EGY<#gGl%2T8M+G(*19HjRx7gx1~l>5 zt6E*>`!unq?Wn1zOxot_>RNL71W}BdY%ki1K}~u{@MQF~g^9xd zrE&3}6IcG(ANi*i$0GQ@g9K}O-v@X{o}6%GKk0Sc;(hYK$+C#B4+_}I5sprbsJvv_ zHdqK-%Dx$U7-LVV1@WDj+Nrbbo}}aD4G(G(ee}_s3wm0yY^mVlI^xA*QaZkqZEb9l zSExAtomF5+H+4fnQ><*JcBZtGxOQUoi1FB#e%rQy7TLZM-!YcWdtwJU^CR;;2Y^1m zkABfzBf>v;Xxd!`oB3)L#^2F$YVkyc{yRXsM4qPSn*kw}u47-kP0Mob`02a3sAaSI ztb+ykko~U=J0GK@H#rkL{x&92tXAd_ajbpg`p~_E&DPaJhSQ0OAMK{ER@3T9sc$>m zB**gZRcb^DDJhz!9cH!qXPh-gpQostGKFMOU&(S)mKMJ|z!D6?`<&`Ks7|SDT}~j* z#lm#MpllBmUd?Wq^mcKHYR!$Qs^3qybKMA|X4*o!1mEX17jxjTDiQ;A0x%{7Q_m{& zE8;nCDj`N`z36S}J9@ocXn$am*Y{qgtldH@ym|^`LQKkO8Ax((29G;^4INNWMrud2 zl3k=P=H3C}K-<+FG^>*I(2b?Jwo|ZKxmViH%N!upxR0q&im@}#x~ykxogq}wLFdjG z+9MMqIbcs{s7B@(j>TWVDqT=pZkXIYf#$3#d0 za`!*~0V)m}3^`7b~;<%~;5kiYh`xFabv zq0Ub!0^^}SDfTwZq2-m|s*p8THO`}90D1XA^$U)PLZg}U7MP4dX-8j_dc3Lqv)58} zInq@n8Jj)oj#f|oqoZCGTC=RQ;n2Y;WiFjzE0*vs$my026gg66-ueyF2#`8qwt4N3 zWjr~EFf|HkET6WScm1FaSAk%+iZ!Cu`$xF0L~VUt>F{@j^sgt;#xmAQ`_5=yRhiZh zfocm^ggEt|#5we!t*CKS)={P{l?RC)PA;hfQ54cyVBw>|IH+mti?k`r0ruosJFOD}~5DUIe?0rKd<6%T)3e0cGc)^K?;|U!oCTbGs?dbzxzif}N6{mDscB>p_$o7vPNMz9Ef8(;aFrx)uu@Rk z$smrzu4f=PeZt6W*>YI9)Y*s-tI#n6*OPC=&({%G@sJ*aBMWY>nu|5YWXP}d22K2u;d9@K}&R_eQVVNw3WJi>Zt!dJ8 zk(n50%E*tZ`Q0hh+evj-N$Ze&5gP;!NRDmh@a zf4ExE*b%!4(aeQ~ws!<#JLe~q$`4O?;vSu%1RdU2zRz^xZl!HI8*+um+;|&@SD5@4 zgQD3~l}C1<(Sw~Ytj|j3SX!e_C+r|&UuvdlX#CCMu5l50;4t-veaUts<Li;WZ0=Wbv-u%v>Y$ z(z1sIvGIw&Py=4%2cQVJlw`b*#CEodR}-5oAHFN#=!SBf0hkin+pfExBNm*xUN)bF zaIZzsZuz|fu!Ly$n@{O$+i+b@ywM5jYW~>*)Humu)ig+f>9~VWNG2K)H5hWruX^y5!q;gMq&SHP%)dB zhi4DlL*kqo<)LL^C@+Hut~r?M>y-~!B|21yl&PHp0c<$bH}g1hk|Ph*CbRql$sK}3 zM5{|{9k4w**q+2B?-qpwn*`r+tVVO&G>G>a*3m{smym)%P+rwczkbPro^n-jpONcV z;!OJe-K*ZVc)D44S6ej6a8*Sv=Wjt7HH+wcVf#sm<(=vguG?%WWOOnh>3jQ-f|uTXI1wankS~wyNUM%Aq#1gSi=8D} z)GR0{m0Zg8FMII+o4w}0t*-z3I;%mm!29p(>@}apNZs*v7@MFl@vE>rtBBd-dZ-g9 zg9{gN9miBB!SjL684m{7{RjHyo&CxOp6O|D^+5-= z7Xep$0LH_HIz{cULcdja{2qbA`;_ae9o?E1Eso#nY+Nl zM_aQ$Oi@v?i?SzflwW%+JSa`rHX4P563{%6osaakagk1Svbh=H(OE)ApshuXMBE!q zQab4*sMFM8cBQW;9U(2Bf)Dx&3WKe;AOmwjnTYMgzRI@=UPp0zhihjoWEM^{Cbgxt z?c>9OC3>8A4{CbCPXj7sL z>;SeTgx5Hg*hi53dIdE?9Ug`8V+|*@|ffv2b^`OdnuSx0WMzI7!X) z*UNDWIO!-ZIusyzc~MEy=j2d-@VybjaMlXh6jR1_@8dTvh#l}rczfEen%ZjAbeQ~Z z1hZMh@Wj=cdxbR-eo7$j0KJ+@!Yj>QP|u%XjWvlSDP+?RK*8m&AB$x8Jo-pI4zFZ|)tQ=_!|x4SOcMO^sOMKh@ecxswH4lGN-dR;&z){HX)2}F zsEadr%*hEZ9@j3KF4R`5z~EF~NG>Zw;Yp6Zbd9!_X4>Fz=@7_}6TxqbV@+WS3>%4| zQZwnNe*u1Vr~CyFXr1`(Vsboke9=MT z^vWvRJH98#H-bq--S=zxMS=&!P9vq?KSk+Ejb-~?2z+jQWEWBd8xJK@eBj-o{pi{v zjS01bcfP@Ff*g~uxvRaSCu|d)v@pSW;3;1t zlwnbJjnn>1#;rXu4VJB9LWdtg87}oiz)fuq+?jX9v>DOR2v*}g&X^HEs>w6QyIDX$ zmWbW{Ey-P%)KY8(Y-fhnE^WOzKBYa~a5Xlycabe(l9kNuPd1-+S09TyG&XfMi!Izy z-UZ>8^mb92pI8}$VSwaLL%6%sD08B!Db^CpoTklW6o=JJP%{!0Ph2J-H4TI0&5>4+ zPV=1Gj3z#73k*yitE>vm(;NE$f7CLvPi;PBn~Ef9^SUL1bETG z7A-aZ+hn%QPU@Ifq5_S{BvQSSQNbN=4c_6C-Byl*w#Z_kHB zyOB+i5^kE)tPKo=ehZEVf1rsD;QTMmdd{%hTXC`5g*)6K#e{l~b^#RBWm%Tr!pn?p zp|(H|K8KmN>0gpKEY4K81eSLlo{%|wIda>lEIxRs%bEJ={W<|?Fa)?Ncv^a!ynx!u zETu{21v*mEKbN<|___1OMS7(Ew@rYx+`H+fSraoKm=TPhdGlVO$4#4lF4Z|28i>E}9q-l$!37oCfIU(s&3tPr)UBajQd~Dkm>f%pnlQuXWl2{xx*vvHxl7LiJB%+_cM-= z>7tCFFfX2LKeS#oCIW(|nzCB2=J|ncqBP}A&0@Z1iODnx9g=_$mhtWF$JQ@~Gg~uA zMf>d2Cw*8E&LrTfrR(VL+;XL5s|U27U{q7*AnUy&jJnk506LRv9W!B<~~#=2JzUKXu19PI{xjKH1nF> znYA^u*aQi}PbyYI3h1m)#{K7QBMItk42?&m4RSrud&t5HLaSfH%g@Jh^ww0on;lqr z2keA~o_C8uP?~B<#+b`$mSq7rrI)H3i);tPHb>`lR7LC*k4O;OCQ52KdFXDE+r~Gi zSVf=0P5K0I|9P*N>tK_|XVL+5A~Fy4S&>G@`@~4Wh1&KahOf7s7e$YjKddXw)jwRP zBrhuK5KH&}elc1eL-flG6MXG ztN;=0l7A*FV+cyiU5VI`Ms=5vzjZ)yURV=vGEu2Jf+ zgPIG)%lg`*-DwR7O!z`iT$je-JAMQG@4%cZzM7O(KaW-uoGFgW7LwwoD^S2F2Wqar689k%EgEUT@>Nk0d-*1ILuP<(qOp zL7E~H&lPxuR6LS}Q!RI9cQuRgxLiB9N#&8`c?HFpmT8+wUa6^O8wHO_rLR-pWZS7N zVkRi6u!Z8`4w-L_ZJDyda@g@MlGT}>`b(6Ua?JBZvjz3H>Xo!cjw;zY_UNV_5nM{h zG((HJ%$ElUTt_54>G`pwfY>h?^*1B)B%g~5mT2gump@N;0Tv?H4!DAxJ5{#S>DYJZ z(+%2ex1kQnm-X1n1>0F}{S73n3E^@=plx!nS(A3@EDiPELO3kl$>;NrgJJfr2-_!L z+ravsk||SUn>BJNao;8q&gxamoO<^HKG_p*b6M}#MogmDVjA$+o~r{r_&Ud6#(Bkc zUQyT>hCgeqgFIN?R1Mfl2YlGa2=>ymXX)@RS@Xe3t9)U9;J`5AKib9ux)~mn5k7n1 zA+&K%h?@>IK0$Zi4o;F&MLK(^wolNf{BHgW(3Nta_qid*X@-4;#$9c#$CGi>#oTa` zZKk(Pfg=}-0C4z5HMx2KoBL79Z+})J!7r6+N>cLGF`Q4a8Vbi>E zpMKeH*3?N$`(f2GI@ zrIKF;)fWZ$)Z%_V)RR3dg>BhU(FUs_^n0Y6p*9%a-!Of+-m*6*k_jSNVB0!E*fni3 zSL*@#*)br*iDPz>l9YaB4O`s4d?~BVtV_fOH27CY>-rKB%WmV8`^mMMB*r=kxLD3W zqIlJTNG&_I=Gw7TQ%lYW?8`@+1;!EL+$$(+RmJ+rmYwT76e{W9#Tc=XdTX#5juKrW z&i>Fkz2*1*W%a?BQ|(FolktRvtDV~!Eis=C7jMqv&P!HH=%3*BpL1LF9d9=-`^Vi! z8MtkIS!)ng1o-B$Fme=mJXEJ#$W#tsSasfqT%-IcX{9`G z*m!(OJ1kaJ(I_w{WH}5TzK0dSN`sTU_;$8+n3jOds!kVt2j&=uZk@=VlaP~kd9e5)ZL>>c^;;LWI7ha_ik^B_O$@D*kW0?J0 zOh%Xqpb>zkz743+&zDk)f7=34!HX3VCR<0x!+5I2R#y34pnOH+wc_=I9YvSdL(9g0ry$Z+!cBv8wH zKe<;Vm2?Q56aUF=GN#u#^hJSG)WXp(-d(2Xx2uB zFOn1gW60RtEh?qb?4%v;UnlOG)n;%VxaW?2T0wFw^n$!0iN!+~g56&0=7aCjY)7AJ zuEw<5?i>4xWH^+{Pa%nHOM#J)dpE@3dVkbIcZsG+F@c_}fOjGC6?OZogsSx|3thp+_CdM7Ua5j}o9i1;09rk2_9yWI^!~klxq$|dg*c;p>`Z>j+R5_r~S^UUz zOg3ZCk-##ZML_43L!I{PkX925tjJ1*5+~Z)Q41AO+$}SICPAvvOhaEQ{W1Xo;naes zw0ryH9I{UTP%okgWC#v!6{ez>@l}V;aE|p_$Y{<@Kmzdi#Y$wCD+K#^f z+COw$Y>B)2$H;^H#I;Vz1Fl#@x%rmYeOoj7`>Y^VlCpeLQ+}Ip(xf)RUs0pHAfq=RF zAW_*tIA5NF*ab3+)>@xY75YSGLUP^6F|WCeYn6jzF6qdZ(ga(v`o}eqCAV6|U~z5$s*Y0i;_@?%&HC!eoU`%~<>!E8uipVkt%v zyYd*@1@1MgPJS7N8JR}J$Ke;6Ju6{rPkOhXzJN6j`JWC6T`*WCxEpI@_8T==kS7bO zEhx)?1DoQ;O|#<-5ZxpW3G8&@-fJ~dTYY}3TI_@Pzv}dYQUGxaCTS2^b_3QIFNFl( zzG%@53b77Sd*Q!uQDdAMjJqP3>Bi8yQe{P-Ue{kIQ@7#*N^BiWmiB`>4_5w=|4?!05oiaZ*cpo*N&tq4&fqq2Orgh|MrY-U?s8M7ja6(&6Yf98-7Q_*?t3FuZhmnj_rKFQi35U(d zvl)jAIX|CtpvYfEv7B%8 zBClp1bYSvc;l#@mlg-5a?d^^DqmsV>kz=>{IaJE6%j1!+JcPsb*e3oKQ#tv^&F>{` zR2MJ^T`7Yo&urqC*ufphT0lP#^&fW5J9x5ai@#oH=)o8gA`1AeP)T-RPB#Z5)r9m@ zLHMe}=D-eeB3sqE8%^UNmX(|1q)KxXp^Hr0!4b%Z3{R$cohuonntfH#YP)Q>lzCm- z>xk%p1sYEX!eu>GlM+o2^0S)S(rr5DNs+nz5v&!DbSjfyvabLEUL}^zGh`gmBVdVI z2KwJ#MayFtDH#O4Y1KBU;6Sjd)DN-ZAvg&lSK7cB*ZmX0hf~>kthAi|iJ7)D)ARo8 z*N89TSnL~^j%p<9mpD>fC;$T{lE;hhtIGayxfL%RL15mxH^$Zvor526Ih zbHwxzF51mexc1|reoj5@`Zr$btTVk=R%uotjQJ`7v~{H>B^pNkw)IZ8kJ22izxg#p zJI)C-8K*f)hqvjs{>;N<9S4sGSB+`#*Wppv#TR%VMypHTSlA&h0*d^|?iG!@rHRQ$ zj7@n@j}WN^-9>uo6*1rmv98)WF4NoC>!<}*T6#NIT?2zyw;5tt_C7Bf$sJwqhjWGj+xVj!^>?K z=SgQYx)AF*$JlAQS@^K6;3C|4iGUgyN_hrRM2 zcN%ebpBjl6{av2lulk|AJX5QiW(gH}JxP!|AF*!3l&m50Z~C z**U_0w_Lgt{?TvM^t9Y8*1r(1jj^CKS-T^Xds;);TAHnCZMs@xRt?B54Sb`eMF6?e z%kW6-yY3IAW63NMau1-bMiog;2O(~xPP@`f%`0k_CjQaaYspMDj9|b3sKC_8H~kY2 z-*ska#-!NF{`L9F;tvD;&-=_L^kVQuaRK9D%>FT9mI)$iw+W)@vDt@CFWooQPQt4r zUgb1UGyQO~H5&id71dvoue;3G=e7Rk3*;bFFuVX6vOjI9ffl?|b>lbhM!CDPYqh1g}7r7kX`nK25WA%757c2^= z7q88MV<73V0q}Dn&JgiFcFZX;TEJ2M|6|xP7C853ZmI7K>BT*IOdla+exrSjYebe z_z$-F-+HYGAajtYeKK>1Ntqual^0D#l6(E0L)MeKR*k4M(;YkOsz$FmXPUJc#dp5o zHT9{ma|a)900!lmY*WJn^{Yby>9iblI!I8EPO|2h1)ZuRM4nW-mBM5P#VZZ`u{Tqy zK!Tu}E0L$dWG_xiN|Ht5%}M?qi6ZiD{K7_sml zXH#4ns}6v+u5dJsSQL=Y-*z)XOS5(EjJHT|4Z1#=JL6jBHH7Jz5apThJ z%U=M_xj&{Z{clBI-cM{@Eo1VO#W!W#h10l-inqa>SmRVRRgg8+9nd!@E^f*9%u%PR(=3d?e_D41W@duq(r0}$m1b)m<|lH!O*#29<~KGP za8}eMtlykEdtLuB64urD@5;3QTHPuD!c|n$)l#f2$&U5tByonGg*YZit5wrxc*+}~ zvlj6B&sAD=gEuAYU@2^JCHC|V`{rJsFG(q&w#-7$aH#Wq?u6fS$O~~_0I!5NDrCGCK2B69O%OY1qh?KzqckWH{;Z^Y8*|%GnfLNKt2Gb z{7ZQPnh=!u!8QZU8rDXT{gu zEq|YhnVGKHwt{zx-xGj`lh#e-SwnK82cwqlS~QF4a2S?FKce-ZsrE(>Mi}sfvq8=;k6&$YnV#CGs7!_ghuV}XZM+f$Q?7DVIow&Lg z`o+f;ns_AR46`tyT8W;Lv{!ELz5Lu{&XsJ{1p8O!(4qbhgwEkqs8r%4(C$Ik*CaXH zWK7fX{!>cSgisLG=UL_iEkQOX96|?Zi9xbLIuL5u4~Bk{xSOX=%x1UkIRhm;zIVFZ zlW-?j+hR0t7PH?@Fx@u~*TpMAHIQ#%K z?UDe0`wlOmvp>>T!ft;AMK?0vz*?5V(4|3>7T?d$Z(LS)=1XpUJHv9kfV>heCj>1gQUV*4g-e|1KMT>YDoD+nlH1r6&DLn~&dEt(agpJty6PRcaJ6yZM4A6Ek~ zen=ADii`9D^5r8J;J8hW7R4!^L<`s$o_BEr2ftya%RlQ82LdZ>%dbID<0l#RnDm15 za>2j+FL%t|y?tTJESSG3M|pyTZ8K&a4HN8ruJskOI3E7?yhOKdmo4p?pPr1`o~|)q zo8JR!QnE2`J*ZJ^B zHAJ%c)kj7EA2n7u99kvTqu!&bL55Q}qij>)h|x*|YyE=fn1LTAoSi;WBw=wNQhiCK zvwncqfQV{h#Ki=U49ThuidN2W{k!;Vx@h4MxZt=Jm59tT)s_$&&6g;(W)y&PdilVj^sA_@mjjM*o!M5=PS>zNF4Bn*80U{`{YE{t93U$`_Do?o-St^uE^~q{<1k zihv#aOtu$VXs>YyVJ;)^s`J(XfQLw9&81pXy2#KK9%;oZ4kBCk!)#PY6LZYp_$A)8 zjlQa8IZlOUq9)8F7l!Ivic#7+4C4YrjP>vQq?CEc5Sl*|vU&QP_DfJ%Cbu?5otn{c z^9Fpo>l!oTDHy3sY*}7aakH@+sqf!=Rj#p>7GY;c2oM|=n&{wsAA)Ygo!0xF{T)?g3m1vAhg;4~NI8B&OrzXWa@5j8?%;YShj# za;l-Ye06N_Y~L}mG@oG!ru8dw+5~f!)^B2Vadp1ts=7B=>ePqI0n;^B zb3P<)UY>kgf@;4NRSi_EB!4AiuPC6U&%Lm3nXOtg&9}hN!PkTAxc@dxc$sv1=C-k? zQ#iHR_GRIuux+h9SXhfZ0z-qvUG8S&-a|qCAH8V*x99(kcZ&Egm?sn>n`)gR=O2-} zK~Y9f`mlwV&!3Sr~-gMzbC={Fc+4`E9)Ad5~*5tF4*zNchXZGNr1w>}ZiTU zZI!=`i+>I8RP;K7U&;?b6w#L-!nWrQrM90>x`;2vhIZHkHuiAacy|{gUmq4`{9GTt{<9n zEaP<9Iu-uY@eF;ks&bZ$49*HsQwNjov~%_&`usOP21p6+WxY_T45DhI25}9&s75@` z!Qh*mK(YPPl3BJkJMUJt=Us`a7@X|SiMGbF>7!o~EFkzTCtD~XNI#6E7_5CtF`c%f z{p)*esp+Z%--cHu-`?}qWS(aZ^cpOGRe3cjfzFecW9}Px?85Q7HKwx~?e)WU0wofccR5qyY);>kA>KX4`W3SpmR4{->*{#uOnlLC zOzc?$#hT0#racBf$ff6rgk)17*1g#uS6UfOtCEc zLWvPLo`e^3VJg;D!PYiAP;8cRpia5E%V>r>boL-I1m?#6`Of(4>tu(Dod8|p*G=JP z1f=+Gt1SfKQa9Dr;JzU{wg-#VRbDZBoNdb6uYQL95zPVwXho?B+q-Z{zx^$0(Zev; z1>Nsvrmtbj`TRb^^SxUj>>@rWX|5TmQl_ox#$-%3 zS)Le@JhoPJhC(}-OSVGH2}!4>_&aRDeUR-N(=jNI3BljOfj2<4G6Kut@l6S z9UWDZN$;LE0ZKQ0d9LlieK@!*)|h8m>5gvx`E5I6h^L}e&~mwnShl!5Mw4m@cUS9* z1&Aa*62W@@$z}n4zQ@vdHD{A;Bip>6S`~3jNvNM zUAGp2nX$AxT>!S=r8o=1wXSb%J5{i{Vle?G)@%m(sr_ z8~y7JETe^ITGmb74fihObQ_P#lXED7NZgNqr&+e>m^t1bw~KZy_fk8Rf2UX}vXQyi zS|~PgX855i?lm-svT+HN^Wq>SiE$=WxflOwv5X6HP-9lSl>Az8A?hMbhCo%z{X;%0 zw~4G@G*by@K83ySX~RHZ6ueGj4!az1Y*{FRK@PqZQ{*o_v=3uQNcM2*@6qgpa|=1% z)k`bJk_mD8zL&8Ba4^D7x&mxOvs$!N-ZN`{oFASRa4?YW8PUNVk=w99G>xDAmiDmE z{_#@{=ux1dsdA<<-T$6mIb2p2DEwr4Fbr-r3 zRy1@(t-g?6BfZ8-h-B82Q9;AxU`aX9bvQ8>XZReg?_!34QcJk-QgNnsY~O>BvNb4O z&dTgWMV!TUp0&y+YNea zVsdGbEf2Unzeb?}tG^bSn9_}fQTr$ZnuP_Z(X(ZSzd2`9u=^-#M1-ni-+R`&oAM0p zPizGmuO3dV-hR}c%~?>+86IhRFYvv0#bXpW5lC=~%44u;xmY^7SE+Wb7x!)euWoYK z&#(wKyq%nMmpF7T-jjcByNpCt0yS|EyJ4fz|5ilZ31DWNFRf zf%2A<@)6!U+Uj?A9zOR?abnTdP)LT~&hX`tf!J#DJlle6%K?O%cK=?8X3K7w&V~5Z z`xwd5h>lE+>1XynJh@}>L89Rs@9nVk+v21A=sACMfVS4#zG3ITvdq<)#Vm<2fL@v{ zA;q~^-HYdkcmcuMH7>NpPCVrY$p^!x2k&15xN8!g4l$!aUpeliEOf2hnwhr4A^tVs z;Wf2kClcd!g7!#ON+y3m;4|(UaR+wTRLzakDPO-4|62GrIthgq5dIfl&wdJY7B?9k z$7xZ=>-hLs+g2(x7vBibBZ4q=NJ7@g{lWR-!IgcU^ycL3xnqARX4i7%Dr+r^gSRaO zbNG7FDh1kc9s8>b&Y6c8{EEVsWg+m2m_VcJEW zl6O`_L`4(qc~Ap>=7r2L*e5RYaYVD-7E_dvys8-a=;nk`SJ&kFgvv^h+LnM}EF$mM zvx1K14r$2v5NiRM5y|aa(~MIWgJv{i6N)=6+PXa&9cmbLvL}E;v}#uUNBN;R96Y7$ zh+zf1hWbv-_1;q#Fm>PK(ndSq5NdqYl-y`E{y`&Xs**SyF&vgMQ*pSk)g0Jbmec+T zwe%-=j3G1n(J`K6$X1^9}U+o|11ZZRs$b)QBnDQ<^msbZ7 zDiTU7%~1;N{<+2nWf^Y_+e=>X$}_G%&8nsjVqiIHFUwuq_^<;M8F{YB_{;`K2i_#( zpdnB|uT_8_?~Jt1*PQmkI~rPC!m|m8W=ayk#>?s$K^0smc_vC||Nrm!|Eg84l=6{90 zfaBfrP~`|)C)uh-vyKw)5O_7E-2Z$#@?Z8M5wK~|ME)Od8Z~pXVw5adgLO)h zNDA=w>pC0?k$2Py1GOjk&)yu1B;|Ro!T|(C##i-;Dg$;Z1_ZCr$P*%N{pU}%dTE_9 zV+lKV?y805Sqz!L6#_)Ui$lltxqkunR4vTDj52!nUOr`KM{Y|!Kag+(pMY8p9_Qg4B`p9{;g;^D)K$QYSy zCmL+>VKkxgp5z|b+^G*@u!6V|IYy4oLg^NW2-tI6ont)bO2cS2W_AXa zY0%O><9#Gu&6T71e3&h6o&V?3SUOW-pB^(cr4pQ-X zQL?}BemPS(Q7}(-^@oWA4`=vg=~uX4I5yOf3@4m(NNB(;Lv6og>h)g$vK3fIr6nwj za{15q6-^AiPgXeQ4OUr5jZ-5a7^5IEF_1YGt~Upq>^TCUiBOMm~7l(Grd?7d~<`E|d4&y8;dXDBMzdGzIPWrWKC zKj`>*E>+YiWbqTM51xb8-l+M(iZ%F@I)huYPup}iphm@%p;>8stCC4$r$ z_01!87ep1U)hl#@%aWpn<(7S7`w32N6|Qu;6uy$*{kT?AXX|*9OR+7eKy0)|UMVk_ zZ6OW`-&fCxFX((1EXtWkJ;EjF4KV+dxYc^^OW0wie*pxVApOA)jT=Wc#}(wCkJ(PH zFI{NuKlADdJ0=b4r#eB^sca#(PnD9fq_!AEseNlzooYncsjd`2W#XD+Q0XSI^`FxE zPnBa()I33rr+OHqh?vGCk7Z-4l#P@<%YPJH{OcOV|5LXZHhr_??Gn@)E-f~Rc@JMT+ySdD>7t*SMDGLn4>#VL^s#I?w+m%tj7!|+r+{vuw^c8X%~S&(Vefo zXrPqluw*F$i261brs-E7%R^X{c9{D$4B?0K`(71G+9XU4Ct9FnWE(0fF?0cVOo$G|z(SAx7{-4P`J( zOI%#rgphIAx=Y=qsw!{?T(EWD#kZ}haq9W?c!WojKAv5`n3E}iK1sB8G%R(-u!8j!2r1vhf|M4^lvhwvnT@B+fU!sS`|M55KZ5Q(;Gp(+*|P-TV0 zfk23i0`MRN3Kh#zXn&3v|X~r4878Orq!s$(S5fP zJ}|B*cP#7vc}x1<>nN$Il`J({mw_(cc4JOeOZKpR%Q=N%^}qrtU2P7EXL@EJI98uM z@PE+dHgC(Sdb_L+?n$7>bjL265l&7^U|bDp+^!bP&3NFO)m_&7sC^AUjBrR$V?6sD zVbWsTa%yed>S^gG_;QJMK`9D9njeKdNTh-Wq@-Tkyrhjc^u2%gTWh{{?Pqx$cDC62 zv=hZgg?)KymWg7sgGF(jmWC<`^ZZT&B6lJ8lI_b&3O>rLm_>V()yZV-2nKI39(A>) zx=kKH8+O2Y-gqr7w#P9vGhq4>q{p++);wz}%r*yax&VncW*6I<6BnbxywJ1dd?t`i zLMsQbyE0=u&D0i+$S52J;nc;k%*22K^=_D8?E79n9Don2;Nxt>eu2k;y_4e^#?15@ zWrjsLrO~p?k^LZ_*y;w!MT13Nn*+96k>?-Pc?uSl6K_-5Pq%_*7PTGbcQNBe8ck1C z=}Z!A1-2za3BB(Bsdm?XaD45xQD6}#@3AofKzNu`Si{iGu{LOoOzMcIJ|P`i;>b*XTQDrRSwe0{dx1+JAx|Sly(8WRZ{kZSoN@Mlp zhW~n^FEvWBBz5=crYLg<=hVBdmQ<0b<*_cyk|2t8)Te)v0DPrw}sWJ%$de0^b}l)5ZL4l{PoKxVzSm}+m9kzZfyN%HoS!pe=8>LsuQ|bKs~RV z#E&bW8?Rz1lL?zyP~wQmsbBV+9VSl$JS-#tOY-`vNQ$WJ1*n#=*yBVOYKN31MqoqT z1Ck|uhHDoYvKIIpU{PlBtZi9lgVo&P2aSA0S-j_ z6!3;&9im-id3EXXW=aL3;4m|D#7Z@)w7@FtUJH^YM6*3L~7so zHX{(g6dWZ#YBz>;H8Cr%y~$PG*=ES0kT6OCbkfw2@J))X`+&$j4nKbgK#vX$;p99p z@_kHMC!B3c^ZPY~tl&pO5xEO=Z#?AUIbs2u`w?r;~g7>?srPHKIjArO~ zw%vs(7-)1Yh)DbUxM<4q8>J?>F!WNrNlD}FIPXs`#*Y|ZtR@VO8 zJLW;Gf&=vN7Z99ea;CTAHn78QglX*jX>JxbP4gfr!-q7B_G4!uBQuYMgS_++&}pDe)vt=O5NU|yud4$%eMP#GuwlcLE&g22-8ECKslaq@6!6qM~R z-nV78DKc22$DBPMtWFKZ7er^hrWyGhrqLGNl(X6|G{%t0Sps1v0sSy&?iWu#d9`jU9`W^VWFBAjKEkXE!B3%3ss9o zV!Nv(CyLoQ>RU=$YxQO0R0Yv;A1HPS8A_*b%mzc64lb2yLc^(rg`hUWkw0_r+W$N4 zz`yI2BrSBsY{VVjt z#)Ku8J(rA!m;P%GJa<7qMh?$|>3^)byc61Lo^B~E${LKm(>NVk$*G%d`FVP?FLGdK ztB#6}HyAkrr+-*p$O$z6xbHSv!FMA*d(&I7!Y!>TtQIb>CNrsfyZ8b#_%=JCV{w8Z z*iN8dX>;L^-u|Su-mg-`?5X|ftW4JwzP;UY+xA(3Y8De?z+ixVp{cLwn*J<%fgV25 zXB#y|Q639@aMo{9xxjMJ)R`Cn@E1GPrA?85>mCO zV=pDD-XqwXAY-#IE`Q$5q; zj@t%FLwmf$T_!zIPe_`JtsM);e6a@=FlD06%}4zo9~^)?(u4GBe62pcuXKeB3uzn| zeoAo7^UE{EF*>?53k3Tv9uWCSe2S-@B8aOJa|#hKD8a_{r;bMJ9SRJywV3)4#F|X*cbnmv?~cauqzr8d%S;!}zWmQ7c>jd^|EKy= zcICcJWRF9`F$1mS665*q`sHkD4@}{z-KQ*ly=QGW1G|+JVehT*>!4P`9Adh}4#oC; zL@58$v>)BybXeXk1e@vo8gr&`NRHX^Uxez*q{vrDe9KyzZ+wr)u~rK*ma_)-3}J(* z#`CJa6|w)Am1-V!I9$B&0N&vlyvu{!j56W<#QyFGH2BJ%0yc337W9?bE*Y@^6pkXQmMWOiAAW;b+0odLjd;S>`o zQIYQ#gYt*vLK0Kft?<~H`FZ_!M$@j-+;K8-!s(Cmq+X!?U!`a~zll1*E1dn)?1#^y z))Kc*yRgs){f_XiwJBkBge-QDl~5STsrx?*xNnENmB8k}S$WUM%)>VB`Y~g{I(PJ0 zBPy?vO4kwBmwk|ZWSlV=a|7ZC53w?kN#u$mo*QnoJkcA;f za)9+pq6+Uu+&W{`2Tg|Glz7Ul_Nnvb>654tM7xN9p`E-{;#{fV=uo0gx`x`>fUt$6 zW?NKRX&C=6qY~1s@d|zvY%ZUxvmi;uQ_W%{b#Lu9SuJN*;t2q)-c?_+U#|(H^;!?I z>(FY5q9BK`Emavvc5mn81o;)LgV0%H#{h6pZZWX5$ot@JqzwJE&Fx&%t(;Gldmsvy zZM9My;t67Ne)wrk7TIc-VMs8bnW#0@u3P$}tdyzr7sJ*}o}Xk%>bt&g8hFR#m#xQg z7WT(u*abiP`Ab^nYp8UfbNpu0$AqHU@lKY~t*5|0&}34*YqQJ%IZAlL=9|<}#*E6A zvhT#9H%z0aWlG6!Y{c6>kc6g-J+7nU(-AQ?*O-zX}QxpP*EqV&B0J3d-O7~ z`r!Cf0bgKlG8D*MTB(g!%&6zbLn-r3si=MEX&B>HLTIa_#C!(Bv70&uD+>D#KM&_j zjQfHw-|t@Ae6L=v0h)WgHB$t2W0nhcG>yff`Y!XZ=d63tx=Oa@;NH710wr@kt{;4V z7`+=eSqr&KB|pNNIq zY~mtx!SErA{k=!7udVA#)6dENHvBKLEoO@9BQ~`;iNV8Kri7)j()a~25ASzVU+E!P<-IR9g!DE)laK#7pGAA%}t)A4v`n?jEI;JDlq0dD6 z;f##2Hve<*j5&2Zdm8h;}H-F%* zF)G^`kvREaq%ZdQj&K+`{)=a}&8;Kv`Y&BG?0TJ#10~VQr!366BVx>(g&yKh^ZgkHJ^IL53p9v9iRu1=jU`qi)@2`CnIhavX5~ zNP^$e*2BD6H}MRu{Q^Q#LL7bh9N+ER)qqF;@)9?LbH|J^Ce@}((8kxV>l5sneiR}- zrf?OU@ykwat$h6sq4=*c0e?9Rq`6p*2YkkT-vf7hU)8{__Bi3`xY5M9Oogz!*;h_G zz)%1qA6iT!eL&4&bb@+d?q$Tx7GciFpJzqqhqu->S=N)v#N!ag?$3+NU-0pfW6fZL ztKYLzwgMnjO zJSD&B6U65&f@b{9r@iRs05K(LSgXCb9~6fM8UG}i)?R354eY~q?Kuq};p7_<+$RP= zZB#w#+^5Ql84UtI!0M=PK8!>v|9FItm6XW>G?2Z{L*@2O91syUFBuQ+aQ}rB6QhCs z!f{+a312C|e+O_DM!P+K`rA(7IREgza#?Bq#@vpk1=MCDsVkzT*E}^uI;C+f;E120 zwA^!AXEjjg0WQ7?b!}cdis9tcaZ0G58wkVR{2owq;RQQ;Ce;4t3De(=m{bdr?iz}M zecx+f`yN+d@!({W%VvF<6M8t>NBm5Em?R>pA5GJF01>&g4idO{9@7 zA!!~A;E~hX!^04$K99Z?eDRycdm0e)(t6*|60_LyCiWfh9@aGI`ez@{sH1rAYpZ4Q zKZN<89*I=ani7*vuSY}}JItb!q9;d!gy$NNT!k83yRMwtIgW$7^7V1^lGCVFwQVz{ zjDyX8+_MXkITNQhI*FY)iSH$`Po?FP+uFli?HXtN7qef5wq~g~E+t0XIVkUsJi76{ zF$oS}c$Y4II5UGTgYv&3hCTi43{TMy+(kkdFU)-H&cY}~Fnwz6`i~h$|L+^EJrrpB zjl{qR%HKIP&Zxp4|M63}hLq41_Su#e-QrkPEv$IviRrBL=|H_!w(-+JOUt1#4DYH? zL6JIhBz0<4J;DE~I`>~=WP;cXcCy$sKHlQ1N`M+X=NlFjx-mdRAOD4=hX81mYGk}o zd(a-OsicVM!Spbz9E;6K^}omEW!t;D!=L zxR#>(HHK98DRZ>;ZeG{pzgs7@c}JA^cRN)U6SbrLGYs!^-D@s{G>aau-Co@Dm(B%T zwI{8wclgQLWx$<@OC9($Io8*Q;ks2;<2CNaBUK+G59Tb^gt*w*`^Zax+t*IM)uSyN zcRWI0KOSt{|2;eX0ruhAF3d$qYX5ja@yV5cNRH9bE3=RTu4$M`bm zwPV3sOwc@&Jd1Ujxe;OwZapae!%T|=#Q!q$$@Y_n7z61$Rh0)_O@_R%t=RYUSKcFUU1N=nq9`#poRwG-?wAuOm zqPW+(H)(g1T5H`qgMgB?JGR#K6hM_l&3WfZ*zp`eubyIe?J^bJZZdN-{kWk==uK-T zagnKinlj2lHpSa#5CbF*{4byu?V-V-T?(Yb^SuD;2QBRxVi(VV_w9U) z4TAf3ajG)!=ogurpxwsW?_sZU=JuN7LtlI1(m-Qtwl}If*3)A7a}uL6ig!m8B?#Oy zqLE#vA8|lOC)Vh(CG;3Zsyx7FGy&S29_@=!g9#WRDI4k?){})vmA7PAWb0)V6uzqP zJS%V6gLW3L+ahH(1Nit5BFolic=`m$B4KR8u-iJ;K`V0vG?q}B+%#_0<|mar(ij!N zak-d)!1gE;YG>vJeBK+Kaufd{J9MZudZHJ1GxM?y1Mlh>`;>02WacON>t_Wma>2+w z)DlG^Z9`NUD`3cj71E6}57rNRd$8LtWbIpzK#LhXql50XgMm6~QAV0I9`Ba_qS(-jx9*(J$=#umcJ4uC@$>$rROo(q92fmka`M zNpZPtqcyNLrT6qhZq0tqUuEcr{dVp+I6O~5(Cmf_-hYW1+V{TpysDqamqFSQrj{R` z?oZHeHfE%1w@`gpqP6$B3}cs41GFI*x zyp4lrzlfY~q-mK}_gj6&17W?4EKqxt8rkZZ&H=$mbAGwnOv7O@S+_n_W>lsDsWG;} zBczZm8k`I-&Kq}++;}Qi>kP>> zHB(niq2u!oCYL8A36d2mT&0-~FEdMyBY@}}UAMS`WCBJXM(3j#UNacy-Ax_rTo`F4 zxfQor49wdju?CiYI?4=?>7?R&mP9p9xK(5r>Eb>kl$Ro`Pw7vx45Z4}W&G??#WvB* z@DalHfpMTmn~Iw*W{}V?nlp%aZd6IRwWB#5J@4G0EKt}Y1aL?l@`H*+P;`F@sJtMGt%a^S5J7bX9kT{7x|7Y0Bl8>{%<41-G6(bLn zySoo_9HQujYEX)m=aB=>nT`;{i~+id3QYXK(3so>Yto;WgcK8zQV;Tq=|chf^;;>$ z#DtPQEfqaggY9xvdKi7Rx+n9o|AtyTANgUVFN5@6`9Rg4+|za-GEz(`5 z*((t*#bo&>X@6l|+&2USmN#8z+|ZZMJ6CHmZGZDAa|6dxvYH83HvyR#`gWK2bC2u6 zw$B*7*1Z-+YJVec{a_k%_7>DQ9(?rzSh$zF*CrbuwflqS^^Y@t0bEd*ZS_+nmM-u$ z1mMGWPihl+wShqLCyX}%hZYDlbouax{zHF4GVUCApZba)JDW{OEMZQ|OQ=%NEOC}U zWTmu)lHDSljN+Z5&0Ewgm~e4PTx&7%d`x+~I}7qUZ^Too<^@Wka{kIc%hfX}ySVhd z;j(6Tx;ASNh&s&EUeQr525AJZDw}c0Xp}U24pHb_nrcIDtX?g!IJ2Q^Ov?A$vmrmwVi6Pv1I z`j_`Q+Fk__$q;t4r!rG3J7_5XY92>rzdOU8J-Yk}+oplxz6Plhj1#@DK`2l7A!E;| ziL9o9XqfoOA?>l*-1URqgr4ic+TjtzQ~X){vfx<-w|zPxZuyjY8(qbkf~>{IR9@4xvGl z14AC=0;;dn$b_!!RA`Zc#nM`z-|Z?|U%CIT_}G-;t?YXfnC`p$2o%)#$P~|@sw(^( zcT+}UXets^C-MHS`FoagJ-q(e9c^Yjd2zZnXHH({8~4S=-<3a~=p*WbTzLgXghSoZ zr3P_QM}dI(Ks~iAVEr#U45v3Rlrq?qQvto>rHj zJKSIg;IjqmzN`fI2He({oSroVKL+F1#w={83<@r-)uB!vW0tQYK%h~^}}+S#Gss@o(Jl^FyRvvfRE~nETph2_%T5Al zFr=q_ib!14((3NfUs#9ie-2hbP(bXH*jMaY?Uu~v^31_Zj4Xt+(hecbR?}e)l$ik~ z4NvsKyvZwkrR!2k)>xjg;ACBd`2@RtTc{rAzMYMs>g%<7Lnja&w_@Y@kfNc7f1NZ?@l+{3}@%2C=R zF%I!m1hz7>|%uyKzw-Bz-Pgh0r0C|2pu*2_svp*NfEu?8QIURO63g_qIlsM_aMg$zfAV3l!K-?cEE!fLPEi0iZ031Gt;8r zTxS+I$^Ee(k+tmORRaJtjaG{R>G&FlQbb!%k%EV36=W-%&99k5Dd}H|fNp4XDU#hw zy9$HWzv`An`hB<29N{8s`3q}=CCp;mqlQrgO}xbP(m)Hu(}l>wcj!u(64JWsW@$3B z_4s;5^rN=Ww?6jPof%9=Hy|qZ{pUurosB^l*`uUv`pg$K#%H1y2~?w_jvYDy54)VF zP|j?zQn8WUyFL%}zk=IRhgbENmG*m?C$8M@61Tsnl)*S(l$=A|WJ$|e$+0e^>%4nw z4PLEG-K~|;ee$srcv5+OaiHO0W!)h7Eyf?#m|_j?KRq3%k{*{gj}XWm1#bP6d>-*0 zG#^8VGv0HG0Yi?mi-hEepothlLyuX0X;gYUiDIlUa&I&kZ+FvuF6R>LhUf_b7`pgZ znj21X;cM8DZzW(S$64}t(`G7@jXFY`OZ^JQzPI<)BP-T)g;1qb_VpL8s1~%Oitn;doXW9l=f0c-+$ zrFKvm29+D(ix69m^ zbxI!J-55qMToE-}l0LG`=E#_~oi?0xY^JHM0>nHxT3BTtSbb*Iv|qi{OaQX=(6AWO z0t_|;hq(v6P67tE&28QT+s&Vxf4eZ5mLSqqm4KIr^4faBc=wMhr}nLC0^MW}h&Y-= z#=Et11}O#!eG&p#1FFz30UqtDB#nz|fK)MC)#>GZ)3lq{MINu&8Z!(u0b2H&X0JU z+Qe<6zjCKq+P=tM^YkW@sJR6vk9)&!N9)FXbUpgk`%X;(_2VGq{rn?fXcX~h2=iKG zY-$GQmC?rAgYDx0ehh=*i6O$-oRvE5i^dx<8v&*w56iOjnSEjLF?yR8!o~T1(p|;a z1IF0tw+t73V@V=^A7sS)e)$uKHGqjM_AjhvHMcVIv;=_H0JhW@$FsRnq4T?M{B~3O z->)yUg;&9JBf?m_WYdKF$8YE146kB(L^|(0P-e~jza}T!HVtMBXFsB_Wj@!rq*k%MN0WoSr3|jY*)XS+Ky0=JPT``nT-&e}oza?l9i*H(S zBuVM&l9z8YYwlw~cv!=GD6OCm*9H*g{$x?0majbZxVp+E`e#8HZnl%nVTk( zcrDWzK01@;Ndv)KkL#BP;3!oXl7}orMo9G`?I+)dnqOD7k1_d*v!sF*L+{%7MC~Jd*-!Zqx0HwtF5Ia<8skHOM~>+Gdo&b-yWtnByQ6u zW%Z5eW9rjFu#yzr-t;Std8~v;D9*&iMYRHl&GEf`N3yQ)K*j?)vwfo8KC?^n%g+Nx z0l47?x&E`pqGkcDzpa~GES3 z;MC*kzIVVb@eL*TD*f`mPl2U=-YeY=er?N&%2Y(lYhEvI>T}!!&tS{{5$%-!yTuBb z|G%04uYKdP;i7JqrBZzmiNx8f`$vZZ+W+g2ap=Z#nzpOjB}tcGKfH2>V2MBPAH%ob zbSo{JR?}d;@Ln78`38}M#hSlTYul1k-@12oD~AGtx>mQ@d0Zm5Xm}==4DLQ?!cPCg zuOTpI-nAw4zb+;G;qJR|;BplaXup09pHh85O2C+`sL>4gVZFRKE>A&6N$eweg|(Zf z*lUGGZ@1^#M@S7WeDu>U~C2IVD< zE?oJ{_rkP6Q|yR52GJHlAL>3#GS18i*Ioz@8&kSAU1}T87W9hoLH0$bUyGbyi_Ac< zEA_s=$1Vl!hUSK_a)Xm6r6`X59S_zOQb)bvE{p(fXHWz2@%adIdw=|^vOZ$E!!{0ob+t%M=}_F?nF)JyK8 zpW!0O4aGA*JXI}*zyc8_zUri{JoyodC*`?1#`C$R!!8_c>T|U%AecCql;|T=%x8}= znArDru2sS{+bHt)2GfS*!$E1XsF941LZ*ZSTy2OX0uDDWNF@8yA%|crzA@X8L-Hjg zXfC2OjWejvkK^N`+%;-W8d@2n@ns8>pgO^#xDDnLB|I|?EPWha!#9B!R~?l!C0|Y- zsOWq<|3dteQyK?%vzNuItwtb}qhi_C0O-@x6a>_piF7MAGeub{8+Rw9V2?>2<8E@u z3Sg{E-N}apOEGdEMi}WfBANI=irP+hdV73w?9EfQ5%A-=GyD(teOeSwq>^il3AM7D z8CIWA!;cVyIUG?&eA+njeY(`ORq5!HUPmqv1^i#4P}JQ$8PJ zmXO@64=ZRk6}7-yW{n{zPf|tH8w%GLn7+DicHC&dTqcS@s#vBj$&jw!#*KIt?7Tiv}enNt!ad!!30# z#}Y*MKQ2|C2?Cw868oT>%JIIqpjU_FKATgKNp)OvbB8MRaT}rOGyXp_VGAj;v}50S z9TpgLpm+qk>qcuw*X7)jvL+$c8OAWp-?2m*kgeJ~CH6e{QEv2bW(vkPDF9)+{X zJHrzZte_zo2f~Q7#qr0KyJ(~IE07vEabIhP7j&ah3dxvc2zCU29WLyFl{nCDH$Nk2 z^pK%;LRso&ERo8PYn@^|BRQIu)7p>F(_21*)N^c-S3I#_M2xYyLULT`7!OFlmi~&b zUEbeNW$){CghZNzkL154C`faxwX(#ftxsEz-Uh*X5Lnd_$y(^kh;I4teaomO3NDCt z4NAArOQLO<3svYOpv~Ws`7k-Aiq8;$tXk-Ib|thl=xfeSVqAJamo&Nr_rH|!+s>y? zbFHn((BNfHWY5~z&?bhaNDfEnZ1Hl?9wsxVjT=W5cg>17&wG|gM&AugE!e+SJIWq> zIoXX5QScT^=CI!8eO}qP$~ku&N!g%flpDY0tjvhvy;Yc0icl@LZ8bYMC>WQtYqrI$ zsrAfMdfTzZAoZ==LJz+!k1|5#Mdd@sw9NWnmrB2K72E+gzo#$Oh>EG>sLmkyiXDp; zqRNQmt1IQDjybXuJfWb;-4Ccfm^3JNyR&&e&pj~5(dld$sjb`i1Vx*afW^7{pwdmJ z*7^T!(ThHFQJB$hK9YaFKNZt4j(T*j&~i`l7TdCh=ji$`tRwZ?hc1yO^m&Cq+N71c z9Zn`18B5J>`X2!>lStC?5ak16^v@Z3!$+K37vld^6aJrH|FhN*5UbZ`O|k^sbXjR{ z9HE|GQm?R9%t{{(pkCyRKwj$I*zN84iy7j&B+s!I3b%(F##%q5lg{L_!PderKy9CoMrZa_i<1=cp;a}0kzUI zmnL~gB2^Sxth1x);dd7y`lw8)#KMMPp%4sqv#R=ncLwxglZp-yqcn@5DZ+EbOyDz= zGe1_;LlgI(JWAKMKF1SV(+``K+*L(OT+O6f?}v2u_poZ60|t-v@kF)8Uzm#hbZs!4=+3;d`Uy@Ha{2Clv-N9 z247z+EP?^)?XB@Kg7@vQ_$9qq6zN;7gWKav9=)$a8dhMbZr~zxMo2esHP}uVF($+O z_JH7VwGDq`TOO>6E5QuR8VjY%kL*)MY(5*AL@IWf*2_r*bD*k5@PFxb+&oH`PiJ3m z9I0H-3F9bzD8c77L?6@mq|VVl-8!~aSc>?8H|dch3^XquQEbygX(RakyT7(~7HXs_Cm3Zk zOPy(54h6bi<9a_0=DcQu{jXa6_fHCnOZ{c*oIw5&T|kv@TInaPqnt0cl)1(BAB1mW z<%EaOe_u{&i#MltU;Qz{_YK4Yp?{vD@mO(}3tzCre-vL%rvXU0<1q)H7OPsv%|0rE z{A3X}p}3B_ApKBdt&EJ)=}KpIj7dKp8Ijq+ld=Exlz;yv=TyMc8uiPpFq9QJL2ltI zx^V+t+Fjd{$!0CvWv*#2idrQ@7!J;}+3oR)eayd-X#$#h84op$^aLKZvIGcOY-7YRin3YS+$sVI+B`&|{L({L)X3$o#a20erxL>DFxM)~U77dC!Ar~iR0g2@z#)QefMKbYChDy~ow$;X0q^nSO zH@~T5B_|WIj=7zSDn4+S(rqkTA$mPTCWQ^>#mA)?z$4=$FsYV9^9qV5${EI?U3Gie zKM|M=3_fAqt*e!Zv)MDBYYBuqpteth*eQwL9v`yG$ipG22fG{`>&lioUu0=&pQ%Hp z>OM^BvqrUdop(wB2YgOoZ3eE*f_5);p9%_z4QRPwiu;vY>odBylfvF4J~ZV+w?7Nv zGTB(%uHpQO@AKP=2G{?p6KAAcKj4vnqG}s#3vO=oBe%Uafuz?^Uo6KVl7w&NMk5+& z-CPg-t=Du&oV%y-++qtm3dkcLv2Rp1^{i;N*1xX>>QN2$_y0hYua=X7|52#vZwH?L zvA+Aia$0-+??C+_Jh^tH7_eMJ5uFtlVbjJfHqNZzt`J==m{;ay@x+Cc#RJGG%(@ma zc(LVS+WBF0x#OaT0>X-<@-ie1-aL}1MJ*p6J4T8|EUi89F5U<>t@-}q1^A!DkA}bq z*h%8nBl*-C2kE?nx4g=!?cJ`do6D)2Qvy=glg&piQ~HO#cpR2rhN1_1sb$Xh0o#+N z0pqEKpN1c=f0hqTA|=H;a{Vncs@B*Py)$;L0k#BgP*z|8Iecr$&de=yvS)r_lG#mT zdIxXcT_N0WKRB-WH%hjy?rgXC-&|JXpx#s9>hc(M+Ig`|So2!*eb`bExSf@r78=b6 zr647p`rk~;4sHxWZL};kUW};#zpd3f;}VAy*5oE4c)8uAoOH(HzeI-ES6Tyb1X$sq$V^Z0O5xSBK;FR{x>Ux@@X9iy z$ios}v2cAn#cstrRF=t&t^k~G8c@h8hfe$)0ex^R!;0Db9?2Dw)01R~<<5>5chKto zcKGD1ac%A5u{Dikv~E;l7&ON%F6nTjW!tm_bNkDmzO(a$l1jnYV)O$YAE>ww>OiD3b+%&K7IkzP3q~7 zf?hZUs667t^7ToLn#c>-Aff-W!wr2ZT4kx_YRXwLVo#MCG5>h2rGDgVV?}(+m!4Nl zHC8WcLSgZJLg6vqnHKL2b6V1dIO}&UKK_M8UJ~sQ9G!n>F?>eniX_MV#26wU>z3O% zj?d(go}t?jrQ0%7@)20t+n~<9zAt)3JEpE?D%7JPsxOm67F+Y>5Y}$Pa9yp}g$V6& zb!Wn7HcgujvbP4BGB%Kk+&5Qi&ozzmH=3PUTQx5a&4kXAaId4+D+pL7WsEI<68j&T zJel)wa!lyj*BV*>6z(nK%Xxb{vof~#tjy^I9F~?LeBUfGZ_-U|x}_v!6ro$@*`1PO zLZfbX?+tubKrT@3#2FylgRNSbO#yr*4oegGJo-x8Y}HsZZc0zXMrFTPE^`F?Jq`{N z!PvV{`Fc}&c(G7jwT(MfI42^d)o9Xhg3Oz-Yq%MHx`WLcEZVsG*asEqK8HWf#4{+;9>kcBMCFxQ zYcJ&L0jKr=e_{1%4b?ACTJYy^h=RCqf~ZDTUrH#B^t)A+L4aWKtjz59j;-NEHDU;NkoV42Nifa zTE2rQ#yX-Yjbr*U+M84?;pawVdKwUeh4e_|->H%7F3qn!ehNW-jyuaXp31dS9P4J;5m>b(I@;l!==j0 z{@{U_;Lfm}sS%%Wi5oLFOEVqVou!rziM`UitdRKU zd%-BL4l!m$v3h>?zppJK{yW;$~wly#?jSk zk=-6H^B+8V?IUg*5EhF#A=NnJ`6_R!+Fqv<<*HBAJZ+&T1do^hE=6SJD-SF_h46*UZyDet6KU&5eV_ ztpZ9;<6}8Y)0X=_OD{b)w06vosCjKu8>Ke^5&)4bj8RSfYcn516Lddf;P zS;1<=#?F;}=mPkvp~@Wi#LxFas0?2@OSECS5*U3iX-Rh8u0H_vx-4QBe>@+GZYw_1A}DhP?z zrgQ#;comuewk1L|pRynqqd3#1aAk+2V@Od)TG$sSS=I&&okB|BrWWFT-p~ZV>xwBJ|kZD&C|zImm>h%SvRvOajCf$ zC;^lHl!?p_U+T{f#1M=>Uq%P??~OD1c;D3?-FuW1txH^u740zGp3qnb7Hi}PsE8&M zb{makhz;gbna=$#o|^i$Vt(RqH#c{HlJ0YNd@GU?E!fV%s0xY7A>0;XU$Y(|U0agk zNBB!ikJ|lMEX{XlW>PM0%JPUUYKcj+w5682fszJNMMMq$44$)6pKC6xK)IPsbR063 zLKoX)zGV>irC{%mzGXh}2uaJU^e7vm%N0VS9h=i76Fk|lv7&IFEHqDtG%|x zy#e3)!CyA53x1r^17VS3^8-Z(=18L%u6Ac^|F5;EU#dtRFUBDrDu^MH-rvcG!*-jqOkh6l zCl%_RKp0!n@zeQ)9h{to3udnAK7%=@z7j`I3=a1_jGY;7qr!_^TxH^93v+f6H% zJ^3n9^bxIe)g@X#M|?H~Hvf)ZdFqy3Vto^QD0Mtu6#_imv<5zv6MWY^ms=cnjymb+ zCwupVCh_r8!osZ$bz&T0TGk7h!9l!ET@;YzmwG@@?wzjgJ?W-5jF4kM`gKI=G+UA( zBV({%tOuaa|ZvFZt!A_o!D; z_|jP>g-HUq>~k`pb~?Fy*-p9?|6P?wTR>jCOQfX`sC1IG`FPv3z-|gp02v4-DNmPg zowI|tnS|s#G5S>~+Eso2>6?jlpJdv4d5PbAoshD}?j=SLllQ~QYGI+rw*}9%5dqKg zBh-uHEbJjflFHaeC6zTRc@#g9(iakP7G1W~?YE$$93t?Htop$?yqUSxF<7hkiHU2a zx!exrVKxQ+Y_~W4P}k<_lDoj9JMWu@9xr-{ z0S*GwPtruw-Fa%aS!=w?Ka!^1qDK-oPQD6dOXk!Q%txy>rflCh*(<#WU~LdeU+eVq51|DrVpVGNTm)#rF}i7rhrMp)_F2 z0b)vPnq~z96c-LcnrDBH<$?~yhbOcs&1f$TnS*&!kjb)J`_D^x|Hnf)?ds#SMNM6e zVpc!i?K>ksjMWl#QA_V#e13%zIqWeFO0iui(JSza2EE($!@#}I7%RG~sw>3XTOp^* z)!05S;+&n%#sBB7i*3^gRmDoYGpCp)hmgEZp}pdih*`au2zhgCX3YC|8)Mo4+i)ubog_N3EP?uN_{m zi#eCQ5JqYBj1fp5$dJ*Wc@?@pd2LHj96Pi}vgYfiNa$qF&P-w*!pGm_*)WdAo@S{=Om`QugfbVp)>KE*TBmB?I z0Tf3?Hmo+$DK8pNoiuQ8Ao5+*JBPX*4NXmLh>uQB;%xDjNKZ-0ScAiwax#+6(}#lQ zwk3i7@}+5@o#lkoqIZ%kvcW>88>UB*frJ7MRiB2<<}B18CchT*4uifv<`l*MqR;B`Z1aa`pb~FCWnhKSXK0+Ph9n9c=D*6WESTcFadABe)$l%kSuY<(s&o6*5 z_K^y8@xT}MJ_-$0Pc}k?3ZM#%zVdgwy`{k(KT2n}y7Hbl2V1?Q*Lu8_bJxeRZ}y}U zGACZ`7hJJ$il*pJE6$U0W`O4@C(EDTVPLwhssR0Iq2%(jQt&#T0D`1*R)0FlI^Ln2 zu@UJ~c@>if$cUbuu(mE8!TTghn88W>bPN3Z^I0{6pu^-8pt>NQ)609J0Mhan65nIC^;&o8PF)#I9)P1bCjz(^7Ek) zY)UGZ#`1w?zIIYDSwjs~BPu6L=O7XnAW3ShnJ2#5A_tG`h6)E`XD#r!9;;cIcn?h3 z90)9NS#mhNO2N2+OUo=_(vU2Aez7y?AwYmsaC?@gW6XB=`B0@5sLcN`Or276$`%0j zzOS#><#kN(8?+7zs3cpkagnP)qb9*a48yc~bkAe79IPd0duU}i@H&;8B|aaQwLnqQ zE4Z4FlGa!w)w@>T#o$}wi_$Wnn5d@8ym>wR=xQf>36wA&N}NhmO7v;ToTztf=?kZ8 z9=?ceY7<3SesQ0`V#mI3CVOg}G>ABR&}lJe7e}s*G)lECz7^}HiX%N0$p0K$R4u+Frc z%}Cn$e#txbK75PXsZ^dNMTxY*(*fE%S^?N^)Ec+*-T4MeJ}}o#k279On5ud_YwyZ1hX1$|kcXQsxXsb7zX4?eOaXO=)s{TVyj9b$*qCI2q6^HtYpH9_J23CCqT<+_=Y>I5Cu#qukhvB&%UzA*T&b#N&f571+;bmLx_m2BW2j5-N?-kn)s$ ze&;alg-%=T1YW06);15(s^ND!#R8pg@I^yH_axO}rKNM#60nZquZvAsqr!p7!NwR_ ze&F+06Co?oySbQ>>&xG=*N;4fO7o6|h%hxZ0}nuE-7o15n{c4P!DfvMFcaGw{o`nT z{GcVC1mw3dsWU0yVxHx=)oA($uD-Ss%E3y7v|{VTqy~NVzUiA> z5PGwTpt?*kue5Z~_}Fr5KprfN{94BcN55?@x89#ddT<)MKbepB3B10LhoIF^1vKj2 zBUCMUBHu4@VoLEfE3YHzQlsPXH`peD{Ca@;9**rRbXYP)xb669m1BKyYi{&@rnKyuVXIP`}Lya;X*y zVDLYhtxW@_yMA7_(duQ+BdmIc5Ym6MxNQ3Pzm@y`cQRni=l`8wV*Nje_J4|2f5%`b zC=>ruSW9g=V@EUL9fRoV!bjbDBD6I<1ebeH|Ovi~H(eEDdWzN+3f%^ppyTdt91 zEfPpHYF>+lpU;*bW@;FLAmhA*-cQbDjfa#zjEWT!DehiCk=M%fHY;}lYAXmrNiO;*X0yhR z!W-nC-h48;Es#-a4wSXkGUX?vzrXc!30$;ts{N zNO3Rj!3kDcq)^=5-CcqNC{FO=l0b`Vpm+fOAc}f-KX>x3?$>pUmilN}B$QYfTzK%=DDpYTMq4Yulz@OT-OV&ys(z8EkBgQl zIm8oA+o!V6?~*y!FJ9mE9*0nr-*W?6neP2spHC}g)0vR5N(Vja^k0V7=`RicJ{x*X#9cC4`iX~> z7w#YD-DcGs_Jrpx*ho|G$8JY*M5?%7h>|s9NFtlcYhv)i*jJU2zJ*h#iTTFT$L5|w z71zknTBN>5EM+EySoT_W{RwbVsC%e8%6Xg9BbC@dWMkN_MAAsc|TYIG{@^Fp>!w!d zf&$&lT4e^CHr#H#{PG7}Y**>s)l7Y4X@$itOs_*-gMy7gJ$>PWJn8Tyv5IkGNq>k6 z(ldomcEI4KwKIt75fOnHV;Vify*3U70vn|&3pMrEghmq`8je?JiFgb(n5k?yX=FG5 z0u*79;n z#-docnmaAM3~4@f#wGMww;9Riq|L)Rrx)V=u%k9to%oJPY*In=*QPP zr6I`Ja#4HACD|ID7=e9)5w!oXSIHmOs8(KHDeq_QC(ZQ?LH{tN)`I(`fMf?-t`eC&PZKdRJp2N@jln z$I}5FOiyT{xo367|O7deBG0%w&v8poQF<{GAd~$-*_qcJpOy|i$509Uwxga-vkE+i%~Yk zI3$W`Pmwpn`2d9wXYRg2Z*Pog>Y`}k`B|nSR;qral2)go`EJ5Yk1?>-Z{lfh`6F^f z0MBkm$v~r=2Ge`jOYC}Yp+2CeyRBemhBN3H=9l7U>Z1-jqyco5DLZh(%K3707Ag5y z>@kRWo*oi_ALszOH|I-E3?`0$FZ!zJK%j(;xGd6Lk9W4TkZ`+MsOK)yzN6s#f~B=O zd@nn!%vKCXI^&7#^`f8k*~}Pof`-vp$;P` z+8~dXGQy$>V{MYn;_JkyKkW@P)Be84d9`=*_L=J+QnnXJC8S12Rrf)Yp`a87eOH?d z;dD#Izw(J9u@`4Xd?MZ%Ip6Iet{Ax=W zm68e|FGbRGzGuV9)5NI>sVayxE+u6k*%wG%cptb^sO9UB33gYX=<95sbEv)TZCA$w zM-&poz~||CzO4q>x*5^8suz6j=3JyJYjxW+Jvn#b;%ob5Jhw-R0_CL-CdfPuovkz} zEmZ66P;j#9hv4%bt61}60D?)CLq~!NmHMC###Y+!y0a2Jdu_hF5HInVJc?U~u+8z` z`77VP*ybpOZ9}}!6!Hz&4cC&XXgq$rC@CGPMKr_*S5DiG^~`kOepdsoPSgPys*$Au zqHyW^M2h5KK1M4H+{BDzJ*%!p{=h=C<({$fx9Sc-kR*DnXvHpT8NLi=J609|9!+V>U4coiZU8wFUI;#nR-`NtBOLx)$Qs(==-^hVxD4h2!y*v! zE;jUq8)m9r@Y(Fnx{|nhh&!ZKc`{slg&4V}bn~l0VCUJ(@iv}8l_P-e=_>~D_ z>oh!6ERDFH0>lDHHQ#-gtf?qtP9Lg;_7@vf^9%$e6xm)$Z@oDYFje+9ujgqe5(X=c zI{Jh@ZW^ek0eKy?)sv*FyGCBSVun?|QhX8$E0>4k%%S#7{hD$ivHr{!%UY3Z)3@QdRv5pmn90w29A31B*CG$z8 z_*l&M#o7cDLTauwCz*R-@Ut266%Tq=*H5%RNuG!o+9B9ZgQV|$#NWjN*T$WvGHGnA zcmE_+ATtNXgvWS{YVsviHIy#D56|2}n#Va?TJS`j@h~}gXJsGdZ1GkoWy&v=TY;Iq(xa!X#NI{T6O2WqD*_jy+-HhR*!-u992T%$?cVfYR))T-4#O)A_t0^5~29rbBlDoEbJsPPrs4~ zBU2{+0!r2=RA+?af{rPd!KJOstYM5qXBGR5gz8b>LYg2Lvmh*tevEx~yEV?A?VUak zEg4ncb2B>$TT0{vGAB}=@G4vM)V|mvGH`h~31Z9eX@|K8aH=HZB#{EpvTPsO4MoL| zGMDGJ=R!*Au@S=SkTna{>_uLq0WN*KNq`3)1|Y||H#b%-jMBENJ6O$eCq?veTczVZ zu%6;}9W@&=8ldgHSQ`L)S!cRwY9du6fSj<3*0FsD=Sv5XlEuY^$JzIo-}>n_#{@Wp zqW6=RuSvS;a<|!Xk`f2lR29{hn~$y0d8yh*yLw!R#;2DnPNpMCZ0|J^f|OJ)$f*(P zPm0ZtJ4h+F6BNU+Fj$PW_@(-JRHeU5I&wN0c-?-`joD=XfyboIq)HQLdL# zwv)u5pVu3+$hc7Kpf7TTlypK@r(uhK&U3oe)G3*uGA8-OTktWJta&{KX}o5t#M+xO z+4nk@!!=$c3HRN%I4rT*_&4V3>ULhYR~|p2u`^ssV~1<7o72NqAAVCG z3*v$z*4Y#y^?th)S(iC*&O$_NlBRLQ)VeGtTwZ#T@vV8&Apa@rO^;D+wRa3{{?2Qf(;SL#jTdl;|taBhZ&(AOk^afrt zK{(!1OBminxB9?IeVf%S-71vkm2IP)kT8Th!2|z zTM-{7M;>K}|KnDn)$16#m|~zeS_)2qr1QkV>yCEeOASx)$Mp#C-C8#M^z85*u``rE zmMNR88(oA=6cpevSpVJ-x^05fn&JrVAUAeE4(Itwc!nlq6|Lp~0(by94k{@kZ^--Z zEO&sMoi^kKAsicMd6@n1ft!`V^7`M!eJ<4u-N|=2I&MmS#9b2NK1XrZr9CKb?$c9% zldKnxjC!~%#ed1}!R!?uxuF^9P*wmv>sozstmLdf&2>jH-=;|KxUX_sSEYA`dFlGC zK*lm)QJtpLE{MEe*H9@Bx!C+qCQoGFNFH?@Q@`T@W?ra$VU)1H3m*BmA$tyo3M;`s1RrJrN zEz@fh|G9qtR%^U@X&iiSS5NOvT*{OTM%M8=XN%hUd^N0(rd(`|onY5{1}nqLNYh90 zBEuQ3A-WGB{hp{J^BE)aY-T5$WZO{!EX=3j$%lzg4N`6&{fHf% zw%z>7TwXo)2iLE)!^a_)GmY%M(CB@Z5un32XVcK|8NwPpZIg}b-fI}}WPoorO~>7pzNv&Pqzo-im$U3aaR z950my`5K#B8~QNHZe@&>VB;|1{4p8n3-!4h2a9e+#_tk6HCD&MVU)|G*n3_*FFE|!Q|m#-qyS{%DjDQnd_`Wz)X$;T|2wy zGW@FzS{YJ3%U>7cp<{1@)ipKF)J=JQ)MY+*%+m^-2OZH(#WGM_eP5RpAIO8k$&A8}>X2WZ7&JLC-qT$RqK5oj_lgIRre98xrHcD-lbMfj@j>@Ipn1J>xn$ zW){NIEHzi$7jd3*tgomTRUCKaI#$`U z!fEjsC^zhceXp1C4L8@vvt+cAat1*4psAtqrTuNPZ`R8x7Ar~*ZRtTjb_-=3Ob01R zj#=kqFjCAGZwReQa(4i$KN7WF}j zM3wdj^BMC_IX)c7fb=aT)|;qY{`v%qj?ekd(9?~%p3ay&RiIB2#AG0#^65W zO?#2@Xnf6en?CLcbe|wG#fCD;)!8X>k=WfCU^R7Z zXjRnN>*_B38IrVr6F40#XXc3b#A-xM<=xXaaG&GM;%;2B*$hYLD-w0rneh08N3ym()!Q5-;c$aov3d+X`IfY|ug0 zz5)1=nB7pob(*b1JvR4)F_@wtS+znk)5UWA1DP3ElZMY4f|}W;4D&v3d~@4J!{%Cl z{XjL++kR|;3G3dmZ19La3<=LZ2n*DI9Vi&C`nfNQggf6F4HUO6w>lJ$2^oe{e@V#rh^}z)W`S)1{Be}aeJUzz z#zTsUU-O9;2SF||(#+(@di{-$8>y3n@wa^4pguevd_Ga27^d%tzH~XpEoAUZ{DP^4 zy1=L`f}^DZPx^iI4fa?A|q&uJ=dp)}$Ae3?P&m5W*Cf=X-Ua zy@T>i6P{a@FQ0)DxJb2D!>|puTbhF(c%Kwu3tv~|e6{r@V)0LB5&(MGNYEL7oM!;% zq9Mh02}ASr>R&bm#_yLbXC`EPC=Ph^U-3E^=&v0@G2DD9XOsf9m3mQfX8G!{)%NZU zlOYG(os4ga^vDJe5w}&z?t*rFmU-am)S${b*utqlZZ9N^0gZJ$mfq+fL|~%shJN_% zT5lb1_q50D;P#$TohmqkgFHXiNg|Y`p`d?w#WsK(mJZT)I~H^8Nf$@b$N_C)^VQEI|l4UI(! zJLcOss9L7>XLJca0*@Z1D!^_ozd%B6vspVEkGl|OuwVPj4^`(KZ8_SuM!$ts`upGP zdjPOYPE5*jW}1DgR6?o!;IeaigdD#^&~Ekc|KAezf0j138v7l8+Uk`(^e-UuAH#n& z1T+3Y@Gn67J)@e)>B4W>9}$>rt94Zq#Zi`W$w}{LsSkOcmYIvYuvr#3eT*?faG=Z5 z>Cyy~1V57OEg%25eQP%MBZ{MOBM$KXe(yZJvmAu<5<*;15s$-GN9R@+HWFI}pKVhR z-bYMX^V*OM({X1gA_D|CXaRUHKJ-;LFuDZQ%RT2X;nz!}q#_o7f}fUr!tzIkC*Lis zCc~xOz%n2N&s`;$s!BrsKiS;Z9a?9*f?{M$l(jF>*xf!cpiLd5d)>Tzvv_u+ zTAG1c$`Kt_Ar(?opc;(O2GGt%V5No9Zp1OX?v&jgwhvY>82`Q%dgGIVEtcmwTIko!4PxmO_XJv;KC_BYL2hK z|Kj8gxE&{Kd)vH!u1uf&VR5Yg+2IjWK*ZEDQnHoOICu8HatZf z8DTrh-nRRAeiVASF18c%82Ob5U}azLz`BCz=8dLj7(M8Tw0ZruhX?;B2mnfK}XF1SFy?#QqN zZb7LGsQC5&aU(~p|9gQ-dvxy(?Ag2I`m*tA<44vyH>`lwv1ju0qej(ta{Uj;b!ov|q0gzLT_05{8%Q_N3aJ=e?cGdsn3gX(`P1S{@+EAeau=4E>6%Mg~)67D=%4De|*%)GZ1F)?BO9N5;TI})Wi^xiB5 zb{oDe7OFRIqCqC7O0GvsLJ+?yMT|T+Ya|)Inrdd*nDP+e#n^V9Zux*Y200L%wr9@$ zlwg`|8_7fVdM`z41d1L&SkQS@KgpzA(PK4`;-I7FFsDEJwk-L3-CNT!7Y{2{(cAzE zI71->@8RcS{j1jdifY#t3P_L2QcRewK2N_JM^Tbd=qy31@sH+p>!4e&bKG_C`l@qA zX5w=y@V@Hnpytmm7;)crL>p>e{*v|I@5tOepJ&wM#JdVVsIdD(VTGcle&We77{x3%uxh6t>Gd(;eFkSv zWutSwfq>2ByCHQ74aa0|IBEPm9@XUOs5-HY8{b4_8YL3CkYn8Fw)V!tg6&LP?qV%`w z;5&79x~+5C0#TW38=7FE5n0Lgn#Vxs|GCTfwg0>ov^~Gx2T}07*3Wy?PwcHSWUk$# z7jQA{Xz@i6ySC=7sfil(J)SkK@sJ>xwQdbxVA5k0$D;kb?e{;-#*_bPHhxvMN?8p^ z>D3g7OYoijV(!@8n~>?^pK7$BA%rAyyHxgRj*!#K!=UlL_RPC}#H56`AqmujJRQ{r zDrcSO?QSd#tml0$U2Qg&i=1*OO6#zN4YrnywOirMVbjM|Trynm00*X4r!&o-*6zTz z-%pPCy7dg*C?`>JezgAIw0(kWm#=@e)uwgiPziC%`CFjs%LACUMzgdW(Z_ITl|b_~6YdDB>LGMtbU+@=$1^s;oUY!qju3fiHRrafepT@Nyn zP!6gabNN7<$@A9MFM27Ot3E5rRy}$8xyPX?hZmsjmZUDy1 z^G<|J^^+>|g*gh-*=YR*5RI3|OCQ8@)k+{~+9k^LIi%=c)E@CY3bpH%7u(5~eQ9(V zg_keniCWxPG)b8v9>YrxGDanx+t|6t2va-&7qtZW7{)CfF0s8Ve{i4Clx3_f89uW5 z<9wOI#jm?Zip08LbWMnL{X%ezaF&qTi?0=U_^LVDTV-6oCe3YxGB$$7?O> z%YhluxQ%x;DWaQBI&6!rFf4sKRVgf^lUs@$gL>|W^5G6_WL8D;7dC!$c`%i9;)3kr z$Rn=tgz(&(K5b6ZM6QQ3siwb5Z<{DPI0PUTdRFy(eV4*KW5Gw%E)o^W?FSNjQTnw< zjxv#7wSUxegRMEX79ypa;lz*XY54Ta^TmnuM1ZZ4tueJ0<7CNZ}**C?V(W9 z5kI~*?^&;gIdYHP_^Q%uy+71tnXUJE1{YfWs-(uG%p_AO&|4~fj)X>-7t@&q$Bf(IP0$XqDOXs8~21s!${Y<(cqH?wfuot zK47LrpHO>{Ur+hca)Iq4V^C(8ZJ{+#V=--A6|pttbuVC6zE^hpJk`XkVtmV+Hnx+l zju;odXAtP%z#}BZboWL*)@UAKNx(hqXrA31-W9oN%uvwTU(^gkrFEDP1_p93l5*FW zkal2vd?SOIwgv+cK84W>88$jo++|WM-^#+`)6h53hp@h@3nYIt&Q6?*xq9NzE_U6R zwv0*P@E(-nqk&K|0!-maCNgl6-hR-Jbg~K(*;e+*n5r2_Bp=`?#mVlM64y4+sXPu8 z`jce+yr~Ay&(${FR<~^{QZG3vFrfr`nBz)awxT`F)hq~UnMsJDl2znB@`h7V?iJW- z>(AHKwT<-5wX1Kk8*_csd`6pXd`th{GX3Eg`Y%U~fP|Bo}_d|J`q`&sax z;kO|MF8|w#|F3GP{!fx(1a&RE=Ip5|pbImC{$0&wfX_qUmb<4PK8SHD-u)Se42~rGwlhW!4zhBv+h9qd2}v!b$4xidrMJkU9JuFa2 z$kU{pMJf~wOS5{Gg_8+P-P3R8v+c46rDTJC+^ZXUI2z1X8HGZ6YrvdB-|SF7PIss2D6?@U39v8$}lkGIRLk=*_L&g>xxta1`M)D7F0 zZi&tqwBgux?*t3ws;cj|zL^FI6PJ5Tq;mF3_}`j_=p($us%K=5uJ!W_q8IpbQfc1I zH=uk(&jl~%%m>Cq9*eX1F8~*LZZ94Y z(n2xm{k7vWj#F?*U~Y#SrVTxIFa5|dA4}1l0K#<4Mg(0s_>{oL18AMc{^-QO$f^;W z&~NX{rtQt{UGy6RB~6o(6AzRS!Kx7Lp=04*W17C_kD~nL%*yg#cNFztzBg`ja4mmK z+ce6V=SgCtcw;8`&IWLxvAteE3b~YR5}*D(B=aB?6TZiZ4_VSWXR_jPvd-Hmh~_a=la@oO@%Sdoj#gS>>A`CR(!hgWdZB3 zv)vl}umTY96b*uAjPk8~)y>uNj?`PMh5hDVULI43&bI7?MKsuVrZsEV?P*)dN`^gy zKRXJlv9DfJsejNFPPD0(XPIB!OlfTZh*~yZvA*gi@=@kfJN#thi&nSk)H3UWv2N;D z&77XC`|0rN#`|F?8E`2rS-Vkbeb$&vPp7WQq|4AT376=PmlxBLFPahC$r7Yp;w<|M zz&sw3(=hLJ!I0y@PY<4aDvDGw@B4+WDYo4PiIs1ki%9NRwC)l>C<-tT)6AQlQOOAZ z^q$QsDk(zMJe6QnEY?oOU7W zp8-Ps+_;c0mR-?QLZrI zNgGi+LfnB}nG;#KPQ9RpxRjD<(WPP*xFX%!&(499Mp!Qbm?01zcRd}{^o2%yzVYSu zBG(ra1-l$}(a?|?z(%Y6z7+OpVLX;1XXX2W6Q>HmXnH9uV;R07>*vmi2}ex2u(2*5B#CQ#`_%fo zg3p3jy#tezeI0yafoHoH@JbANtE9hx=iS9fr+tK0OOJ@~JVE`B7%>4*kfs#hRzc~M zw!**Q&UmzM$ez7e8N2y(Q=LxyAA>Y1_ti7$nm>&CH~+8wZ`}=c$7h%7)Hsl#v7v-I zjt(*LBVt3p;lD{2zH)Msx|u*ASbiFjK4XYzt*17xS*?D6=1;oy-m-`Zn0pi_#2rIjTrdF(JT zu@dhwr+!?6xgAG>!@H&nlX8|WFW+=}9=v={PlzDDJtI0yP6~Kta*8s!JYqD^AK#zq zxAZRvejjrb%VV^}etzHiNMS82-$oqG*Q5!&{;9A1L4jBHN5Wf0XP4h|-MAOsSRd&& z01TP+#4D^*`P}k(| z4?YhM_fL(^qJzBY7Avftff~Ga`;=GtCeQ1f&S?#!1?$j<{jyX34#>5 z{YxG5mwB!8L5x{;@>te-Nl%!tR0~@Im)cJuUh73&Ui}I@KrWb)s;fu|-z+Nzd4lc5 z#jNj&275FpMN{>}oF{jEWT6c~84(>c{VH*Tl{6&Aj&?28390;v?@s@nRL&BQn_U>C zRnlP1yh;Zj<)R4lZx&RSG=^AtM%4LbUgk)B$wE@}PrJ@8j^xmN({E@((}wqB&Rni% z)O1W3T+Im6wY!c?FTpn`YjWW@H#@*?f&5qX#$Pfi=1LOqqV9=t5R$ziJ=r`tU2U7! zqx@@ZzX3P_wOG7K)`5e1LCtbUnxY zqR8l>%wkKZ{F2F2)~@6>hwi0j%yJNRmrKyhZ#M-5nHm|}rf`10B`v!2eM>J&F~2<` z3^96Vk_OQU_puvP1ntEYL~gobkPv&$7WX&sbd!B?rD=_=%Gbaeho z%R1I%DNgiTdRykd<&65eu>Ih&?!<3l*|&*cgEVumfV_?jG}d8SY4vAJ3k{^8Ch?%r z6}9OhzEdokNZ}5C)q!zoaz&oZAmU8yN|1!>0VIK);EC!d3*%Wt%!-|zch#n%lLLXe zWF>Cw&dx2N_iO~###d*Z?a}=SPGYhrV63vY<&(-}Zf0SSd&R8XyeB0UtYDkxIr+O8 zq~pw2&BEv6?Oo=bGH_ik!zuFF?h$lgLWj+teZJ=01Mw zws@N4Sr!anxm#w7VQDLLy^KL+b}XQDn}IEvq&#HCwBR&3&#US_G8s&qSh8WJvk~F z4Xx`2t?QTbC8Bv{`|eZqhe6XaU3IRxv_i{hKVC-D<^593@FRoTKU3;hzqHpjn7G}gtTmaDtD1`M~R>l-D^{tpP%=LxyiEuNPsdVm~T=O z`raK^1b@&-J2LnS0I99}h9<|6n%{d14)E_qf`7pvp!>jL{au&)Z^7k9z& zdXTqdHNQIT0Dem?fRbDybAgq%FK5=_T2<(`frMZICCOe{iYggc2G1G|2zg8zL-ik+ z?w;=68Ft{6am*6B>SG{>hP}uH!1~^w{{na%fo3PzLBT9Y*(jgGiKvY`JW9BEZqcY0 zw$z48krXU}PKl%QmkR-GpSo()-HNw@28FLHI?P zkWp0wMF~wxJ5?&2s$&i;tifXs1jIgw&3NBx(a2=}Am zh)Gs)IGHxo+qHDL1atd5ZCBhvWPnzJ{ICnzpl%B5MHJioMN^nyfY z{~v+T-LUz(wi7A#hW#!Pk(dtBF=`%QNGn>HmN0`uzxO|ao9Tiy%wL%IETp*cBjDQ7 zyjt^;zc{)>)efK7x$T}#7c{$K_UIR=>IQ}-kIEp)@;c5P06XdOxve?vy?K5*#vMcx zfSThOg8OV4Kb})BIMqJ{hJOK{cuw0n*@RT+n7XnCC3>3Shyg$&lZ>U2E&aQb>CsTZ z?%Q&!if};#ukN;%?$Kg>=$XAWneD?Nd$qy$TN}fIV;4QBtS4claKu5pSrZkbUK97^ z+H^o{Yhc^D$`Y_0`^)HM< zc8%S!c|={16LYujyHO)H*!G|SsD%EogMNB!gL=u#@W~qflj6x=z{`L0i@l$9|F=4dTa=eLy6#CdK-5w1?!LcQVsmo-Zpy^sS)fXz%r_Y?|O?t~GC z`M2dOjwf%9%c(87P*Yy%_VKaFUEYy1rw7>=_1qF0szH)v&y(C;pOBuI>UHJ!8|x>0 zRe8yeQ@CKFxv`SV*Wu0;>{}H7?*tT`t9eDY;gTJ1Bw zRjpM040QoFt0=yBYo`#2HL@_YgG98gZ|p3!T(g|&ggh-szfU@p=*XX5Vq>o=ziP7^ zCX6nVx;!U+i`Y0-bn(THJ>u;LeM?c5(u$W$Usg3<21RQr$azSE3j2C=Qk@ER-udY$ z+X+<>3}w%)CQp%X#C>>L{ef$u+iOi3^UWv~RTPgO`JsnV=y^X?&AJXZ@6>$jhPaf0 z|4p2cSaR1Fe*Dhc^sQNbBg$bY8|{F==XTC4yY&qvhEO0Rm`N?=7H(gE5=F_$h3k5YyJ zEI*3P&|rwoXi4`RXQWYdbjO*THSxUE`KlG2#OWvTLBY~%@a*_~PP*s1`F&rlM@F)i z(+8IQuy6D+YjThz*%z8(IYs5xtJ@1*M)^FYDB4NS51vBl<-;q8kJId_OV-45?W5Q- zcMm6qlXtShxJ3lW_$W%ZHyPXoyEl0vz2daS|7O@2hW z${i{4_n+f7y5{bm24IENHP15!N1m9A=LuyzszdjzbF?e&@!n|-Q9V5<{k^><hS}?K}G|+yfjY0BIZDY+G(3T(K@Rh=tmk`m7qr|WIgF6 zzAU&BV+?Rfd)$ylVe zHrb|0F(dU;hB=-rEQmdbKPn7-K0!OCX<;ZZH6$o9@|~!^=+AA;A)DbHhU8TJxs#4J z!bt|AAO5g+$R-89oTrlFdH1uB(5q%b+ZPYfYamv?X9UKOflnTaNYyfZySHGnKMG%< ztjaX6fjuh9Uc(~S*H@1^&yGmEq`;dQ`=H%NK*|z18;@)Ib@S)0?oY}KSCZftgxOG~ zx^gof&}$fC5;tkT){V*2vtgljKjDBo=#@) znN7331fdkiv)U*!n&h}F1{h`bbVQJjum?xzU$<32u^t_wBnz>6b%P_lz9?%_P#7NdC#Jq=0PH!Q@ypl)u^mJ z{>K#xZ6D%#1+2mVIDFOr=K(+ehvWC|$;r86&BwzKtNJB04;k2by ziV_eo&R`pNHlq!mD12f{I}KjESzfH4=m<2Xak~+rib@jyIQCMyrv|sxJ(c?VHEEp< zVI>t|K-@09S(o>L>h%fCF~_)=osvU@lvkZFF5vQDqLMf84zTzDiH79I$) zrB_&s?x6Kd(*d^;)(aB!Sb~meg%#w*tf!~^^pF6cZuyKEDZredBS14OAw0$n& z=$Gu&DB8`in>lakTDuPVSm5&!Pltu`Go!ktLlP@%X2^6v;_K|XitZ%Wcj$`un$vQ^9%G3rH=5l5te5RSM)jN2uO!g{~pKy#CWUaE}( zncLQ=eDeg=aRW>el}9*)Hub!baopiVGMx1F( zK5+{12A8)pYo}C?p?BFaRHy89xuF{#TYvcCH{t+kA)Wid4ac0iXRugU?P@~@y}b-( zX!r|HkM}}v1o=%TY|TmakeVSOuasu4eXZKWs_gpvSp!rl_(Onq1keqxm7yma;9|6RqNH za_sdLwkQYB@l`|*J(s&ox>njIT|f&Bbp|`#o9oe^sKQafQ+2Qqz>a&;iL7VPIvvlL zQS(nh3mQ`bMocZRchdzP7b-Jx98}syA#b7%!sU}p>HAO z6$6O*r!Gw9m!mh{uc8pBgD55LoaaaQTXc=yk!IH+9J#BoBqlH)TkrMw}1RckMRQHa)7RLk0#c4A*;hq4P1Xvdl$FWcfZ4zUN*z zZpD}r?{VRF&qLWHt%lO|*M6IK5vuzl-^Uyr$*#Y0D@ig_6ly4z>iI7DI^`{o(so&r zg8YEzf+%aga~rB#K1lHLXo`%B55e6&MpPUlxh=J4gc2JEVkR$l;cNSbL*JY)*$1&d zPOK@0{cpcqw`Ds9p2g02FlaZbmu&N zKFi>(x%jO_rvXa}zY6InT|k_-F8roCr^E53P}Yum7K%hkm6pIZ?&^v|Y)PMuOECYn zlRM-W8t1GFb2r`URwj+Q&%q>+wtHzm9w9jA3V}_us z*VTbpJ{xyJtqV&ixMJ3hG016CFGFlF^2wtIfWylp3-f6r(D2ocZ>;wGnN@R&uH~tJ zrgvSccnfN+hv^bS6wbE>nUH!ZCrq-c)|%^7#INk}l&VlPIgQ6SPI@VR>~M|i_Vwu*3NUWD6@K#r??uq z$=m~(6pR?=BjmvN#xa9vUym=3gCq}CX3Yts-@XyB*;KoFrJ+3^zUVfm(gGy+WlT#% z=d4?F_X&OrZ8|m#j0$>2MmpX1oNI(!zoefM2`PBrDBTX94=;-~ZdtlPpiJ9x&y=y& zX)KLAUzD&I(&#ye-TAMGsA>C5ujks$Z-;%=a6H>tm?>a(iHARp<{1!<<3kQLa{X9@ zC2U}SK8LP*#yB;6>xO-mzF>@9QlwE@y10;f41X3+qXXqvN5AyxXlt^CHp4{XX&24| z%DM2k29(1>#JtAhgXUrS#OXX0O$ZC_-Ycb_rsX?89<4f?A#|fZ=b7o=WJRdc&lk9B z8M&P^cXoSjF9R{6JFWZ+BF&2WY5Vu)YhJV+z$mTTw*CTsnH){{XRnJy`i+Wrl<{rB zsvF*?k-EOLTWGX_MOZrlL7`k$D_LVgl8GkSwUDqY;{?I3ggH#x?{7#e0`m; zA=Smvj63&!(w^HE)8dT;D$lkK&37$)ll2yk8?748mDP>7K+oC9#zzvqF~Oug&WgQ8 zyhAe{7eC*}yvo&MXp1Aoy6dgZb7=mas!bl7<%0;eP9-Z|h%Du$koO-Eqjn;meHtoe zVdAl9Kk;#aTAq#E!IumIabaHXCwAFom*4ePINy)-nCef3}X!|VF)r8Hews(M~m3!JcI>R=7JJ+j6XUr-VGH4RxRXR~s z-3us`9kiRRd5G{!`4^+Ic;PSrUY8%%ZI^=(d_D}J^Lg$JY#>2IUROa_HsQ8z7D5BW zB<`~KaCEomdCa=>V!mi`>)+1dg5_+y|J%~`4|CgJz`yZLu>M7OKh3SvpQ2xKY5%cX z#eGv1Ku*Ac&EV!1zUl0mV;MJy3UKew;xq1*>PvhR-!;3YUAk&(!EQybv|S2%;%jDh zY_LLPU+?QGdVLNFQBNMI9Xcr--(7_VByVldxM< z0AV<(63i%oS zE%)!uu)TAb|(btH#8#+T$tRK20; zv7n!6DEjQi-WK2BcoT{hPK^kt*jUA#o+1uim^WIIjlS25u^ z`zSmwc0O}XczvSX*uc;ov+)JaqLRTXSL$BEm*jnC-7Zw8tf&~n&XS}|1_tJBY1`&` zOV%il=X@gHJ`<5tFrUh!m`LR3gB$iT{cu`OF&F*|kOcuMwbe+T49Db_ov=GOaFN0< zy0Yz6KN9f4agqs@3uN!#9UE{;?Ty~{d?4i5Y35bxW1YZ7b9v zW7#L78LAW)Ax1?hC9YrN3{AB1CZ9{Ohoo=Iqc@DXZxU153~`2u>DB($SthWHr#IdY zGSzcjB_=(^Mrs`9eLLdN$DIwRt@Qmtu)k{b)z0yJ@#Mm()=|qyAf4=$FTHibo$2 ziymckR4WaL*1~joK~``co@g}vg(BB02Q4D`!WurQE;^ozl=76avk5 zT4+!Qd*#3<&Lm>(oVm+uAQmr796Gb@Rrc{{S;_9Y7ILbV-mTn6Qh~{TmY7A!mE7PE z!#k`sz&&~3yb#NU!gEMVZ5$eyI`Szy;5_hb88Rx|%wCx6E%|wHMkUYO z(NMgdEjZD4Gme4qCx#gieQ;a2E}3|^=yVF&i&VlY$zN|v=3VKSI_AHhduF9Hk&%sr z4mch$<+97etl6(i7I#ww7u$5)1Y>I-RSibZ7% zM30*Th#It+mtMHXhPSW+w&j1TE5ZT%hsbaCi)cqbjGNEmJ#NvMxk4z-(LQ*-;e86E zQSppqN6uh3HcRw^FeP9Ha$WFQfeiHd&}&YwU=YGifxjgu{aCJzgnSM#3OL48EU&m9 zqkcVE9p>(CFS*ZOIf!%QCbqsM$$LlgtQ=BIFsp$mP}o7Uoz}KsK?kB-R>I|;pqnax@ml&Ar}I-MeuYwZkI6Tt zxp9|a{UL;l56bgprWzW$>`L7H#1x=7kM>@Pn2YuODD~|23(UVx1V{d z|J5!j$@xC=;7``PWEceX5zw+?nF{_%4Rku}P>IQq5ASjN9XPEkT@a~`N)d?nG?dG4 zgcjeZbY9IA5-a#oDBr8uTP!b_gNu$j<#=iaSEi^keh5TSn-fIphKo;2tY!#hKrOFL zrE+Cm>TA14)8#+&;-)Dt)5jhqR}=Xr?QfcQ%}UBiC3wM)I~h$^=yUEH?vFaaBpqq~ z%IHnc)DHQkwqn(|DB#G;V2~vooZr8?2(OY&Gi?7tO2oOTCzKfY; zO~iUHU>|mCJGS9K@%Kmdp$K*DUOErdoBQ|I)Jw3=G)RLl-X4;`6GAaPK}ybx_-*Kb zVd759cY;7t$yxAnJ%go|tGCx01_JgRZ2782pkzJsi~mz4sZj~EcF3*Nbgtvom*axm zaXL)kw`z}fbEJZ2RFoX}MRBYd@^K+13Hc>eLLo?VUwD;(Zq+|oyZ-mv9{K$B@p%Id z0a^2JCuQhYBfdY(&L1?_-~W@cebl@~^HSNf;<)VqbK_2E_o39*%qt=35*ILZUb!|x z+q7u*)(;Nz-cKH?uuDZT^ZKLUTaDXp>vgy#lHoj{ZjAM3ASaLH~;tsSU zmI!}$=k~NEA44u>5elhRTP@H2y~)k(vxcE%JYjF1g4G>qG4Z_Mm^ZL5V%fmq&}eei zUyOH2Gd|m7^}X$~cK3Y`0ULme{(T$!*=J4}8W~($!$XWx=_Y83GCm;B!KD8d`i7#% zBIs{;EL**B9d?LRM}B2GMwPV)k3p5_D$xI`3-^@_Y`%3k^tL9>b)TeQQ%+QO$`o6? zY;yFTlRXXMhq$y)+DYz2a`NG4D{!IhB7eY&0``;q8oP7ia@>JP)OMk(DPQ*X=BZE- z)kHM#DZe|4D%NgZ+eNV!GoqYZa$jZM!r~Ia+%G@ypQSM|0$h zkv>poOHnOxpLP2z_wjqHM$@@Z)rzqAC|UEf7Z=mXrtihO-`|@U!F%-B%qUPDg6z=( z3Q<~#+6~ZAW&FDo;$BM~3YBsR%oIzHB&O9lJ@2d65jRg%cx*8HY`61l@j>(bA!?E; zQ(`tPJTWm+V)@_h`X`tgZ_6)34<=~ny}J`k25zg&5t!*X(ppPt2T2_>!xU_veUf#M zYw_xndV<49QliA9jQcJUleI2-p8RS{*D0n+b>MaL6AxbUB-kGP_8*%~9hh0%+46wi z+-}zytqENs+bkI#G#fqyqEX zGNb$Y0e_zDSOsah`M>`m{Ig5o|M02*1I6lh&%cRi|JT|7 z{TOJxO+buTUzs0_mnv)$5JXg|@Yz55%Xtj(3P+wYA(TfhieXPNvHCy93wm?6cx}a= zKB6-Iz9IDvNnA^cWMTH*R2CJK__2tpSn=h^p*%1&YGE!+Fj|OH7c6-H_J`Ti)6~HZ zJF?}OPdVmg=}l1m2Dug}{V?9}x_WL7|ATg!ZYMlZ?XYJZ&gd z@9fM0zZv7_U7=@nc>c^hU}X`|x?RxJ_}zNa8_+sz=1@j#s%Go^<&u~Y*d6*}C7ncz2Yx}A-@ND&rUf{RQ(Ob?7Er0>a zk)252){ijb)rFgG#p`u#k|+#Q@Ee1A#CEFK>p$Ncy$VVa^OvlFlDc!|ka63M^Yki< zB3^$ou?odj4xF#NMz(l5eEy7wN}U>2+&V%%Tqld)p+u1F-iFHge7kl5@U_i$)J{qs z_ftH#_|#3eIA{GZxNHlt4S*nGwvz`-oJ(Ia?!{jyGNvs(f# zXPmLPKEAqLBx(fO{E$`k@`k-5WbNLYpl_{O zhy@4CeB%${Q-VGD0}h-L{Xg{W|C!7GL2th%C-<9oz3OZBa~t5B263b>@pH$29ND&l z4wCJ^=bhe7wmrbptZM=dJLp*3wx09vwSfQVO70vI#>0L=5BMmLvbBUy3kJ_0Q_MDI zor*)IInF1_lZP3G@s>}Kf;eG@9)Gr0B1MlkU5;-!}PLUoVhvip! z@-KQu%Ay~FO3dT|jcvp4nd?0|=5d;sfSS0H8OaK!O!w8`9xLI=m8cbD^IOZQ^2UL% z5vrvgEtnYEHy=s6QbZ)DWH9lQF%styYrW5s&d}ZowUwEI?V}HC1G|Z^i>9sGGNMyQ zh5crHoep05eqz9+t#qJs^-uOCXIww#k!Qn7Q?+9lQDqHgJfUNsypumtmbZWRTTOxE zLRIC3!f8SeC?Q>6d&Uzw(f#5Mm)40Sx;VaGS7pmtItvaqUjBN8{RUsAC1I$IhGipgy~Q z@K8)p9F!_3SA62G?xO7#!(Ss$WSPx65Xh|^h^vnKI-vm;8L~Fa`#Fk{Ig<4X6vBeb zOUi^71kd|x)kxHSakZm?hP8ZFYOr#qN}?Xjcy+W_=YU~f8wOUUYiGcW&5WXo94@D$ zzSmk>&WN+TnNWG{+!5P)YW=Y`{H$+u&jJs9@2C&i6TNiD|0=W5wZP1&ajUb#9hF&g z)5NGVuri=e`TV_KW%~vFA*O4EiK!TL0I?kTXjs)^&WlHu0cOR+lOLc#8{v%FluzwzYUPa~F$wSioJ@2|#!JSypOsdU@4X!>3_XSHsL5urs^qjH9c z1x=I|g$m}>5+MxCSBv|%J{;L(Njsh^X(O!8IE|iVqnvpCy1IPYa$QwV52>YV25Uwb zXBXfYJR?c-SQNo#7bR?s6ejdeehciM+KdF=bum7a`o9AKb+(<@R0~&mdcJx;#gL!9 zhi&so9Cl#Kk}^RgZERp_Q4*GS+V6C`>3rPyK9T|i$u#^LI-Q0$KzP&gN&5PRjhiQb z_R1q_)IWT7h@PCfDR_};@5M^Xg-9tOriqs@L=+S+oD|WYq!N1Y{|1k-=~LpQkeo>u zFN1MJ9n05mB@I5P)f75HT+RF)KPb(TZO^C#vAj}2pqF&K1maoU*&Rz%8TmDn-x6>^ z2v1mHY^_mK(FNIZMzhcSL)cQTB~&Hs&Bt+2RTT}g2N@zhZshl}zqlx5p%#*Y#8bX~ z$j(qN>W*8YN7ESk^#RDDB6XBevjx*??Y)J8cgR;%X6h=5bn*)cu#Kd#^O(|7|AUaC2Xi%nmKwrBhEq7a_}08NL7?FRF41IwIGh5S zs~EDYJU!cd8pc(lM^Q5;K|5WYmXfK*_?XR+Nq3K)o-^*iH>v=AZFq_jcW!`C@Md%8 zIINY8Fp60BJU{B9*&fkiySgu*|LgBH493Onk0G`&x0ZVysFZ=GW5`g=yTJ) zNuScrMpTNYafTdP;dh3|+LF^(Wvg66~ki^S-ycUPocDL5!pW^~%} zjs1qg4p(-PZPTuN3Vf;TCRe6K=$MGv7eQ%C!5R+vYO z%Sla#Us{CNJ&x2Hi-LoVsRMG6XY1$i7zrZC@=E z{tVO3P^-mu4i1{K>(hOHjtlq*yrds8cEgZg>x4(IzW z{bnF-B4T1Pb7{pl6y{Avo`=*wAd5X+a~ZVl_K5SRhFtnT_efdEURPe+m>wo~lzKEa znQGa&j)2I?;>Rm;be~-87o67x2ACPm2}yXJ!!Ba$tX^cqQb^P8_@dLS_6nRGD?3lg zo6>8hFy4XXWjS1s*zh8PY#*r$FWV9*eIrc4s>`5J-P0ANkvN6H1np^(ndMz+PyJuJMI{vjrLjUN(TKWpr6GI5&5^tIyKdx?)S_ju!_~M6gbg{E)S6cTSV3eyZcL ztGgF;a#J&Df1S%mZ6Tl}R6xMUy~m{>U%IwG|CE1;>x8agC@*iRO{m~>m66{!SU!f5 znDy&U2t`p{+qd@Rs+6MK8`^%MbvrB<$Z<^!mBoxs6B8pc8+fcIHW*7F+9$k8ybQ*} z0V_V%(nGb#eN=?YH{%I=2)Exwpk#_JlY6?MGP_0dtLza}f-38cpPu^uacpP<1j8(h zBNnJ5D7JUQ&`d7VzooSDS2@0xMdjG9sEf(FIlgs*qM}8m%7o7Lx-u~IKka5J^{a^n z{Kjm>@SBA_vfy6MFEe`uB$Iiac%9RR@l-~<@Cg`pM>GGp*Er5`#Ni8AY7m~+1c*k@ zw6LWtFwpNFJM09Tu)C)ChZXJ{ju9scn!@>~e0+oq7rUKzFVr%haexPtsUFPbaDFh5{ zw0oT5alwfMsankUVJCmGt$CaS%$r%^Qsp0t^P!~tGF%aMX&QvVI~V7T2X@8XYQlEhQ8&kdHUXqF&hUw z4bHn*`=wght1Ra5ENLK!YyFvc_ASEAk+>g0_jEyL)%4T+N7@BCpIlJSLo*H$50JJBa6PZjk`ELVB_i}o zy-Q#(#j1#5RqnL1a0CWK-`EI0w$SOe(IIOVN7V{^bfjw5PE}7M225(xVQ3@jPRT#y zb7wO5PDY;Xz7cw;gOK89j>9^?7S<}IQ27|3N%7aZerv=d&ADd~ZO`)~h0XZ*yq9Fq zuLBv5k;7O5G{dej9g*D$d6HP_oL-HVykfXWV$!SVfv3N8U{_^5r$P;w4A%sO-Xw}; ze_`4g4NgiQhtWTF=Xd-my=aNdQHKKc^ijO_RvtWCnBvj-f643l&o}%}3}X7H&6YxH z-dwI)UV_@f93G{VKEB@@{$WPS=`O0+HcEPQ^}g?B=3+H}Ywwliw+K4YWmcrLAmU=^ z$w4BPR0Z7iI=ICOx0-#%7%TO`G5S`hO*%B2bDa~FN3=Rx^uOXjEax;)86j+H2}y1Y zdAfyo3JUV4=a&rwl`nN~9;C%eozOx#>Iiuhv?z&Ht(}&5DjHUVx?jC2U4^@yNQhVa zfc|{lKHDFdI?cPqUYZhj2rlYd^#o}j9DHNw{_~iI>q*FuymI4J{QXh2wuz?1bkznFA%9x+3eXYP!<$Hyd{8i=-#Eo~cD@y9KW z$K)rI^EoT2_;(*^+P2LSwI)GZI341*nYM0tIig+09`wX-H!0%k<4khLeBe1#@+qnq z%f9L(uk6H{`ZhKMG20%-RkilBin6CQi+|iFc0|NSnV_cnn{>rZ;hb8>WP@eI$zuzK zCT`OH(j;_$KRT2n)4^|l_B}xyVbXTr&v~@FhL^-&%|v5jD46bn}hn?hieb$_wZl?zhJ`b z3;LC?CW*< z#OElX@zZdr*ALPo_`&>wI^8lA<^xcMzP(qRn9&pExwSJe9>a2CQx^~5GV{vsc&Y+| z+ug%xdZ^%;nwwN~^`bKODu-&VwS$iQ^Yy-T$Xq3>_I7r!)u~9rx44bIjkmBSMU$L2 zMXw;;Nk1A?_rlHSA`WSX9pAYw)47i0=){0X;Qmz2>w$vuj}VDC25tw}M-TR-O-z2g z6S1#P1*F@&KN)UTI2|eqj6{1=78ngHCBCKi+&N`EBWAtYx60nSgcMwAXwg0DTtx@T zXD*oX0X1U0Eg zc!0Z8?M;F5E;sik^g@JI#NIOq4(f|jlHN1T1aw`F#H!7O$$VQDdagZ>d7*{%+3Cmt zDifx6;)d#kfXnX^RJx4-OP#+;T?t!9Lgf9#!6L9$0y~N)&a)o-xys|cx~$EwAI+Hn_YcGY_YEJxv>hKODP*WK(s^PJdq9PnGDlK+vqLTM_8`D zh%+rt3V&h9kwn%)7(IfS!tZ;+SanL4T7M{gj7Ol8vL^FhC@t7reo7v~b6TH&7c|o4 zd41DnsRNjqBtyCl`qFvn#}AV*?5R3SPK}ixQ5}BbrLS{55(b7cM03}*NDu& z1}grAW5EsoGQ{ffTHqB(Wr)ICv5`4O@W+Sv%61Vo*P+`sV%BV>x-E0ixYj)B_sK8EiBwW zV0&p9StUQqsl>)9Ahm@zMNafap$_>@%N(K;*ki45buQA0Pv|k2LyE+(#ZS3OUL&im zmJUr@U6Fj`F;78|4qx{699v(;jiRVhw%Ll5iKD$KNV%JgsIM5-0ZsD9uL9^JueoEm z-EP_Oq2Tt-b-BXLg_<-3Q_r$uIoCOQ z-Z8RYjXAMCf`75Jy3T$E>J;|mdd`P^7%MvUWZ3N00??=nbdH`;OtpOee-^c+dY9== zH$brU{Xx}`{3K_3Ict-s=c*3SCjOG>b*p*SuCqWXwaMf+^1S)OWJzG>@LV&{s$$i zx+?}BUu!bifO_{a(UjFK0aA^Wd1^WWp_VIV-F11h=Mv#e?|y!-@B%%FCjKB_!}jle zTH|9h+WnneFgqegDw4+3HRc{E=f$$Tj&hZGeoD03kHv^jCC5%v0=X+i+dLoKY*K3m zpzGyb>S1AMvnT|Ne~By!pF_s+WxHg1yR2hVbF;Ez7-#EBo95X$)Q6Pmx!@nm?pe6v zq#Lc7Y|)KbU?5mN@ThHyVSo~BZ_1G#DIy}K%v3Ahg-r=uH{5W^T@HE}6q>^zQ`m}p z`zc3sTJHC6eusjOC98R<8jy$S?Al(0d#4&(G$x9vj}|^(Fib0cs9p&S)9##ow)QYV z_}giLABV+@r|*@=m6G0c?tt;LB4v$HO=GT~xCy+ucFbJeoqaB_V&5StDrq8RNwiab zp;Vg%(d4-}%H^>}&zYg*UMVR;7|CR+5$_u*wF`N4>~M8xvvul0b)7M7nnSL6>alnQ z4tT|Y+y@E`{P6LGKYHahA1DqgG)&>l)lXcLJ1zwNOo?5OrSdsEh$I%a-LKgX@u**v~4*_5fL;VrH+mi_K_&+e@or|KIB^*PBs zA%F9RptJ-SViI0}_``iR5|wfuoC~?RMVSm^p{31>tJVrg=v58%t*6^w*ptMcmYh!d z6ZzIF3Fcp)vx|t7ZCug}=`jxZa=LA)f%pOU2=GETF3S!&bQeZyT#@=!?}mcHg@&+` zB930v8=lq`Ub>`vp(dVxu5&|b1|(#SEG--CSV+9Ytm7htCaM{B(Zp4{^LId^ltQjq z9lwb}AAoX-!=u&g)YSC42*t0~)(sw&Wu`#`v3+SQ*;bnCGok9w)E+fEPg1dt_CF{6o? zKShbIQkL3562223KvybKCp)LaHC6zMUID4qQe;>*BEJe0XdZJ;%qJxvvI5VHUV|Ri z@7RaB@2**{rk!>`WZ+>azJ@c-oWty$Jgd6oaflb4-F4UH{#oVnNh&T9B>gkZ)z9)| zRjG|(@uI8UQvOsjUqnIxD;XykN|-^ydNvZLuBRB#ZmcEI(JFO)0lHA4Z%w0&kOF+K z;K_a2U6l9(x!&ew3cGI6s!{d*+?zu+M6C=98688}DE6u~G6cG5k}I1UJS*rS0|~3wT)A-$y!c4Jo7@p75pfT*Vv6eQ>O~BuPf>hjuDuO&CmEN$*rC95J#X1uiznrr8^iZ50dWwH61S2wCP=*8vl{EK zTs?~!S^%_5End1w7Dw!|F$`L&PV8yrpJ*0GT0AvhT)eOdo@eTT?|lwl6UeiF-e3wc z$mS%7USg>0df_e}UtA(G$RT#h8B8ta6R{*Y{~^5^dtCvquR+6Bug-l%L_AFW+KC7j zmc>zhwh;>~^D84uC10!#&o%2VAdtVZW8{5Bojh9b0ByVn0xo-p)*P;~YM-3^(PNX_ zFWuxFb=uymQGu2pI)XVqfYeiEyHF=iZzR#y+;b*b*qa$opVW-Njf?@_a$V!dE{`3+ z7a!xMO!F_EIn$udnZ_T)5o(U?YaU=$-n$S_gOWE_O};Y~f$D}$)npAK$`=y!RRIO$ zlgYUb0fkNb9IJ2R2&AbMl?O{|TvlAJLN3R4qdW5a$tB@h3M!M8-Pw$fL-Mmov=pWC z5_f7x@nZn{Rm5DHw~8Ik6-S{XqdDi6;PCFE0a}rVHZAkN5udlG_sL$4g!p~@Y=?8vSqVtMjnx}991v-N-J8@xQotvE)p|UrX zH4ZAH+p~Uo9JPG}1BW#a-8fE~T?F@i)_K-n*m=DAC7hgEW&HH_`RUB5zeUZ`VZ+Jtm zw_?yYF6abgcQY#{hL@&8Di$glD~UcN3_VCUW)+o#c;^>NTVvE z*QJA|C%a0hvsI)sxh-6|f8=wkw;e3VTmJhC2My7|m3e}a;5%}6Br@kLAewNU!=GU! zPS2*OZun-#z4ywB$0ZtzZCgP{;;J$h;O!kx?>=D3P z5`1j=gPfylRn04IKdhCZJ5s5dg*E5z8(@28DY^x(69?Dy_tYn&4C4X->E~BJol1LB z-|pX*_Wu3YVY$}tbz@K%!h+e9da@O{ai2^3D@2y~_ImdP{4lX$KCX@Vc)t47)K6 z{$>tM`4QVV;(Ajl|IjqKqFXDQTzJQ@EV-^6L{~a@H7_G+F8HkASPxl1E2XQ_m@do-ue@SsiFu+} zaNFk)HJyJeAm5WyGWVxwZ$`W;N7y0Bas@KHiSP>Ikio7!#pA2CQgg)>7_q4_Ca*t) zJwW{L{9k2QH?F=nM$CGB8{sb}8O3f;%lA#`xS0s|gT!=!MUN7yetrlNtxT5vaoT6? zw)N9O-d*ASGD?kKa59d3@L4-iibwj=oEhWk><$}_MNyd>;ugK! zIh#m7o(Ma|MR=<7QUW~h^ev-$rsoVSE8(-ZQs?<*O2~o6dA-~kw(zU1g;0|Z8GEqW z=Xh)AN*bLL=(M695O$QY-X7Y4rJf|J3Ep48nK;fCohA4K)yP3rkG`89zQ$M+9x6GT#n8gh-0?hKXi-XsuS=R-kT z+0LtL%8;7r_u^-@GuI!Mnb|RG%#xUkT;7bOwZN5X}ZDO^@hquyS@0r zns^h<%HelQkg?kZ$Smowc<%f|%TvPbvE?a(ze$fuiyv7xB;HA|q0!%%%Lqs(=UilEWRGubn6&ngbkBtS&ZD zuk%4YSIkMvc0Dt6<$iR`Uym2-yEpjbj$iBA%v`J84RcOv!hj9RYo)Yu=vsYqq+l<* zSR=>Qgk9C~WKQ8qRDMXDO-aY$VVIEsDrKk( zwtlmZ8yJaWs@xg>%5ONhXcMroag)sehkR7!HJ=e7!B>C(u!zDreSfy|5bEL>Tx2(s z*g`BnWM_;bq92oCka_x88QQG%L8}4F%!nPRj;7^uvNy+19`T(P&rBtoUz-Zd-4O^o zhCMmS4HvUnvtz2&`MNjW7t^_)?KzJUlsHyU6b~XR$o^`^D{MyvY9Pf!{N72f4!n1{ zqvNdiMbJymkvkzk2y4LoL-?LINDb}P&q3hs&r?>mpx6sQFg8?GW$MrGQlT`0=*tZ0 z$+2zV2eSTp5wIW5)q$^#7s^~48iUj8zxTV+NGpnW1W|RhP7`o9dZ0L%*OFcQEvk8dJ{O}4XeRE?@9%|Io9fm7q=U0yuMF8fj36_DTgmT|CINx^ zS4nM@;~M-Lfc`q!e|DSvFMD$jaZM4z)X4kyw=Iu(nwOMM^h6E?QhyI;H)TD}ybkle zX8(P!-CS?!^waJZ?(9Fexc~7x|4QpM{I{fbWoil@7R84&xjtX}5gYrt&mVngSPh8n zNmTFg;;3B`MOmZN4L$`bPAnL^HM7@us&U@ip?(r_QID#B=Zg8v7U04{z8jw~$dlJM zjLity*&dH(Ynk6c<(PTTeKshu5PkxcpO51y)qTMjUl`eq^;-cJ?em2G{JF60CIYUJ z?y^~AXguUB1d*sM`w&O&Vrp04hcp)u36PE@>qUQ~fBJwV>)+?QcJ;1eu3{_o z(}ah<_okn;^LzihlMbqQcLB=M~3%J*bXCS`SydCdzO~OX5BVXk}{q9$}V~E z)yCNLbIS0;e#W&)*6F6B8?hn5+p3ccm4;T-)L(J~SBAXydV`;uv~`-?fgHslj~SV(@Q2p^V1Ffe96 zCA%&Qn|z&{Yf2{obM_VLIX)VDoNc#1VI2RX*OckzQ>q~f(siH3SKQkUoemrWy!~8e zShg;Cx;jFa8X(bQMh*U`vVwKE4?GGfd39<2&5U`v>n0(r`SH8{wLtG-Y0twVze!h| zcRw)3!et}5!+k4fM}nhA`e2lvDCDA#(=4XZ?ZeNP%(_>rvCBN$NXkb-OH=&hyxe;A zZf1r(NXA&~Echwu8aV$QHw>N;f>WbwE)bm#!KEn&xWAt1tMjLkI1-8+?}rec~j1LuibWcFppF02WhhEd{>g;t<>RVP89mzcqwQ9cspm_(A=O{Fm(UtYXjI1;w_r@$bs8;r8Unf8=w5c z;DegL#YWoq$P9QDl9ro}3ZWM-BlFW#=pT3;0cf4X`zK)y(kDu%5VgwxbKYT@CSX zbgi-;lTUj;I4nsv!J`w&Qc@E5^B2Z$_E~jUtcFTq;6u^$g?o=ns^SUCo7z1xXE2^Q ztIwb7oh?fSGBV6{a=be6y@74+2TnwIh19kOW>*)GE_o#-2>QwY9UNxFOy@1QJ+W0+ zsDmKttQl??=x76!FQFx8ydJZx-{ z9TC`&Mcqq;5E7&p1w7Z2edk<_U2lKqZ@QE`RIE={MB$+{c2WI}<3r|6`kYPuL!AIm zA@Vk%9p8pVP7qULk{I3q^T%A}4SBc6tCmu!%ynP0dn~j%78z1@N9xeM#gq5vJK zcA?&J&GQ7B(Ax7|BhCd{@P=PzP3(i($DtNHwQ}KIP#UYU_P;N0_IwS$dE|`Qo2E%L z;M+22SS4-a*6dQFHa_`9~{V<2({9|2zIv52msXr5j zh>`-&jwVD=C%fMp4sT8Ns)wao%QcK8+Q9t7@uYodQ9OsM{i(|3Yj?9=i-NUznM6>0 z2|xK%1(y-e94px^u<~b8X49vz_4&;=a_{oa*i%JC@~Mmh|AwbdkgFYV=dRNYx_pmj z)wnzqoo2f>c@t4QzcXuQObJ4G0V*@}7`<1DSCnnR^zxC_KVfFulO%00PU(kkMQARmM7Tmcf%|A0gzf~^@~|Lzb!XRZqVx<%*)W*9-LcFqG`7%s1>*h2t6z*icUf9$fs?jx zFEGXixA$pt)v4{Rfv6=rI*FCpCiyfN$+hU|TK(pKICdAt*;|I3hqh3vQfrb?p${c8 zY9Dd`>B-v(26*19unruzF#WFbj9}6OF{2|i>YNZ9wZ5Rnl7qL4L$!8qt7ec$)bu~A zabuN*B!%)0l3av;-MNdCKgJekV(fcplRck4bw|~7#ee_2?d!)xnv@D*c2PK#-K|QJ z9zMfd?Co99A~PI&j6YLXr-`;sS0wG19~x{dl<7`RSL(T(*=$&iNWch}`!yr`YO%nQ zHvz{ux;aZ(RZ2}T!1_hpl(iI9%rkpaGVoP2YIsA~Nz0Tw^I=as>r zqEQ8AjUFE;(N(4isJ#9>>#4@Gz?xrzaXmZT4NJNOu~J!iUVZgYdQ`D^(&TgPZbH{P zhbqsET9YQ-7X99y{99)wa6bozX?H9K`wG_*w(;vZx-4=)8xmJEGo<-gZ#j!%7N4*< zdveK1y8|?5k7jje^@PnyDgZh1{=gq?vi@~-hS9e=p;Ox(1ZG`xl`hat`bKEy1G=~; zyn^~Wb|Fa=y{>dFLKUYpXVqB8;AU!v4DL>*`SD6ov!%!gj?@<^#ekKJU;5o z(talK+M+~r=6oX`uf1xG;)cq_j~E~okD_X>OD=Aim~3Z996i0C2)PeK0ac;x_)$5) z-$yA~%w{ffb}a3c$%;%2w(ojxioib1W;3jyL>iTvu^|`K=?j=!H=^9zQP9uLbebT6 z=h1+0U#k`CF5Ht~eg3M+FN;|sq5?^`C|j0{16Pd+p0JX4s^2Oy_+h(wp-BODyH=C` zje__0>ex{7$)|Tr z6UvIEK^s>4e5U9kK=4+RFnq;5L@=*kQCRiW+m!rK8I}^!m@B`!V5~ZOmzqx{bK{r0 z6n@x|@=pUMrdNaz#K7UUP*Ty^RLCR7hfmY&v-jcyn>ZqZ>c9aCz&-mZ;YXR;^G>tgIcG$mbi)_-lr#p) zRllU(mlV)mteiV>YQ=@Apur9n!A9aui+GWJ6?_Li;lK2~ywEm7ReCj6XrgXa!L%%& zlc71LTpY`IXTys_k*00G^#*erx>_|^d1fE&gpB<-0rzaVk zecIcR4fhPpQ0I)Q`T?K>t={S4?`UuuuNrks3N-|FNA!sN4e#^v5Z4z|>ed9~?IsaG z009rdcnon%K?2U!B7i2<&P01%a3;4gKy^-Gc_} zG<|VfL^OKBUQ4t{NprBM6LWl{p&dUx@p>^+*Sb7z(jHC1dc}IBc)$JKyT9Qb-U=Si z2yd(OMz(zAv}=D5g%q(Jq$DA}(X*WV7!v^Fc>rYJ$}*+e9J|UAVR#rdno?<2zRU#A z8+)KickqIr62Kpm1_JL-B;8GhzJmvePC1D{P`;g`^iotU#H{pweFP=GHl?c`2eHg` zh+Ij`t`nHbhd#P%I!*+Zs%YMrdri3vSsr7?`oU-3@)J1MlO@&cq7R!XkM1#%3dvPc zv{71o{kR4436TOi{4`5wCc94SJ6F#GE##J*cJVO#CS`6Gj0}_`)n}U|dvygK8b(_X zP`;GGH*Vd*=Sh=~Hkwyhn0lk`{*`7uFJ4B7-LzFn(Q)u8^X;|60qe*r8P@u%-1(vtEEyGd z0&Pwv8hE|=R~0m@TDT(0+c$(9j%DtDFGjV6hF?reV)1t^1H7icE*~Qb!dX{1GbKE^ zhJM51@FIaKZ^{*bF^gC?g=u%^?oWt$CcSpZK@&%3$YMgig{+tLosxns-gI}p?fiu0 zfSaLZzkHn0GYXweg2zR-f{!@9l_6VZPxRa*b-0ga;*+dN5~p6jm=S2%kNUJgkVn(3 zabnusco^~5%;UI;V@8qiQDcXVSbq6lcCnBLNvjowzh4A&HZ-z#`ke~80Y=z-`Y#v~ z_UKbygtbCAPDLS9&fK|@K%#sYnhpaqE|nTQ4p z8UL{2+;=bQtyw`s20Is?82^U0dP-feALs$Dx5DrE&E*PR>}@j7*#f@96y;o>=f#ay zZ4Ot(frnQclN_$fb_FUTIJ6Nb9-%R-YLb7j4LH67Z_=|z0x2vHL!CKW=!eCvcC|AN za;&9h`!mGJ;cc34i8()FW2URi6mKaK=UPE5n6EC~#p9ViXKh?90shNfM+f+XR~$Y& z?hAjzgF>aHD3^LLFzgC^*7D{3443$bGJD=J;FS7%AVEQ*oM#x#a4}bJaRZ<2H%?I} zGpn{(`PDH3f{bV)Q{+5rUq?NAFw0=YKG{ zLyBc7@ARmm&>#ZbZ%zHQx-kO?l|0fN=loO9GVdvT`t#J=SH4xQ#nqI@*5W?a&!EJ? zseE!7RbTA(H$216_V%oG71ok_O&t7EPec_R$G+EsWPiHu@Hnr|RF5z28txK~jl zHCW$kX9;>#D^ekEu7j6@kF5X#NkXWKo#GY^2Opnb+#PXORZA607<4Rjj8Jps2J{qu zKKnBpP9L0j1FQADddCc8qZ;v;)i_0QTL6+;FRn~L3L{g9XFWx4b2fb=rdsf#jX#gEz2)%$7`)} z9AOEao zo^PUFl?K5@b7uktFs}#1|9%{)ThYTbRtEKa+DzamaoyHGVG?^L3g;tqAcN7L*Qs~I zJy`@yS_J~za^0K6nbE0c&dOKw{QoF*pn4>?GE_8EaG4|F|7q_nfa2=5bEWdSvDS`EdrCtuy#PYOw#FX3G?D@I zC)4UcbOoK1QB44u!`k~f@?Vlncv>FcJ1Eb99*AH_pHbvM;)$X3)9ADhQ)sabd0(3HvI%Yk>HjsnXMGM*P2$$C)JiCqq~N;E4Y zOS1F9EkAy5oQdo0?&@Zo<9{(yQwNg_wP#235Tn{RYMkULm|6Y}Fr39N#N1fvW{lUI zu6r2e>m;S3PiB`UgUQV{YW@a5icJgIC@U%>nEcN0Rx&ak@a&pb#TTB5x_?YHtC=P4 zvr)IVW#Qn(t7~%&z_m@arQGq1i(iArJ6}m0VN_4|y3j2?JGek{BCNEE;}P)R%^rXL zABvwK`I@gZ>tL$d z)5lyxr1`A6lp@arYW61>69Y;l;8}2kWk|1=V9{YTuizph(t5|k+ z(4{_U-c6)JoVhwOFc==6#QoJ!(S7;w!ztvfa&MiKiwhQ>|R{`C~Zo@Jj#N$M64EHbrpOw#o@>i&iI<0#f%4_PBg zl>HRcHybF|WO8c%Ug+qbk~{5gzjKkLE}Z1`aj4-8eV1zf2Xn*c??fRe#(x%w{?GDf zv2LuQL>{7^%?a-V&nCDHRfE0|4pmYg(QR;N$!h&jT8&4_u)b;ySP-O+hHBU4*${!GHLcawY5MI|?n9Dc|@uEs%C0j?{2;PjZR4w2Xg_<+t)& zL8*~-EvAt{(dKD$4OMeuTkg1-PH0~IC6X=V%h5I(=vQ2vHBu)pOct&GkqD?K)Cu@E zC_T&>QaIqVbo^75*GS#&GM0(|igOQmu zj3oV%Z{&&G9-m|_JQavfkI%7*_p zXbw|Z8U+i-4L|f8R%p9N-%`jR)t*hbUdfcSK7?OBn)=slLeY@GDHpB)E;Un68*5J* zyRYHlNs%`Hf>U_G-JNIk7#-)6(t%(SUQUO&e!?G`!UrvyQy8tS_Ra7o#R>)+YQ!2N z-}}P0*>eK?XBFmv0+zTj#hF}rf*D8}d~C)rqtc0PcpLY1-Oz|q5w0Dt$LrPM#skzjZ!JPWjwzFb2u737QeHxvB z;*VZhMKe^C_X}?;d9Q}2r;oPik}Wv=X*?u5#XxU%?`F3gY<_aHDSJw~EeHeT1W)D228D=hDJj>lPA9 ztEX@WVSyyw;uPV!=4NF)IcM7V4U#uWHH4qqamANl22y>6{0W7$HT}x#;tK`VUOZoa z@b|1BB$3*|j#T4xG!S>8sdnOoO^@4k$We-wL;eXPit z?VHw61`?x86Lym$M6`U6ZoP}>_1ZH(5QRb5BuASLC!@WaRz2--j_K>bf>({sGLDru zBP&$)DHCxJ`$UgWPrhK`Wk0L8N#?TBzNRu%OJ2Mr`^qR|R$>dN1{&G$WZxv7-j z6EA40k64LHc_D;QvF=EJ(-QXWK*H)#e&d|UjN+`&PSV{%O#AybPI5`lb5z>JKqd-!Qyq)amMSr0Un{C8 z-))T8<)NI!NR!vnT_C=QP+Od-9h4c48>uKcByRsil`$7pP^TL43}Y`GGZ{XEt}I_~ z{+x~PO;&}!tbEo!dQMguDP7L&8Tt>g$L;vcAPoWT47oHETsK!jMlfW;(G3zL1uk#D zTj8Z@>Sd2_nrcSJUt;H$(-uGkY=sXv2|w|{UDTaYsjq(nfsEh@GVf2j2e2ls#FbWs zH>~}k9z64R^)Hqop3`bW5J;1BHyoHD9jHHk}I-XK`iMAUXNF~0C zJ;8sY?QR}|5&#;$CsJirknHZSI5C_bPJNSOP8g}DAz)@^IY#ZODlq&>wq@5)hHZ)U zX0S$%i!3rlB&&?f`ml~ROgU{vU)12(IjCeMpOu+APAl0{4)t%UpmY>3!c|UwRUCRV zyhadpk+KPVm0ihB=Ua*gV7*u~%gU-Ec>TBu-iUR95bcXX*gRi2pg}^{%*GSq6xPY7k z=p8MA(ub8*;{lAh0u7Iv;lX2pUeQ4D9Ya6O5Tr0A^9ii5*Q~0NeW+L~<(nIR^+#XT z+Ej;Mt(W5x1|uPT%F;!zo!a74?(L&g=GRw2^(?XNeDQ5pfcQ|=J#m9#meEt+l4$+7 zCzV?u2bGjf)8w0$IN8ewL4C66MPChfAwI!OAP3*jqB$s29U~Qh_}TeO+5YRCKU=W)^0%Itre!$^Gx5=I_Lp^>07<1Gdb}v zm3Mg_oj#9{#H7sP8#^!ewS~;_8%^K7gS(ynK~_W;wqJtcF(*d`%S?-9BH@bPcOXN&93iDflQ_73DC(!vJ*AdL9@?vPg?6s1ugY>pxi%OOcOxkZ zp*c#BF3Vo-iSn;eV%<7F45h^TN+0s-n?X!N5L%&X$wX|bt zu;+P|*->zBo5wI5_PWH^)!4}Fd2^KddpVreh`t8)$9C3rezwV=Xp8VjplrZZP{~$-UEKLcrscjtMS-_;#Bl9^!js;In333<=Llg5Z_c= zrn~x#fukKry-cHns|c5yq6IMzhwMV#C zTr)77XV9<-|Ho3zbn~a;#4JOMK^!iG!8}c=8DRv(7y6Ehc=_Bh2NXCf37&teV>)D_ zyYiL) zLvJ{RgQ|(qjxm2&mmIp)P9U(?z@4{}y}mwfy|+u~iNf?{#@F5)<-aiI=R(gB1?C>g zIC`xh#qmkxaz|`}dz&m)=>1|r!cGE_S;>f6xU)4Bky`-WkL#VkUZ>q_&bgTTQ}UPK zvH4gZ%$iI)CGmZ@4yhc=i`G~G+Qih}D^KkzNKri^6PdEDf!pB4E4SRak!W#g4iqu- z>>{ZYU!gBHNGy%@Z+duHR)jYrt*^&0h4(lFm^NjS`5W-kEez!L#v02{7MtZ~VeqYE z(Sfh%vdNlONd+;yg;u~2sgCv7=jfGc-wQ>|udEsGT?RtM9lhzpA9CyJ-HC$1!IHs0 zf0DO+EiSM>9re@Ah=u0e_fvPE!rWNtllK})~*E6(zwrv`< zU$Dtk(bFvKdn7$SgT5ueE1t!kl@+RoSwEd~8U40poi>KZ`x{3G2R8YYC!UG)~Q&byZDSSXdxahDp>&P z5|VObzR6i)KBLIjWu5D-0isnRDR8rJRjOSW1?_>IQ(cBBF&mtfIky!6(3OX*YJ!wo z=56b8%n|xton#oZBsuBm*N292!u7D=izDBo%J2SGGiN{%UEGnFVq+vNKeOPl(Ipk? zZn|6Nh%FkNGY{IFL{8dS~Bc3bG87gI@h)caefPl6DH#q;Z6KLJ z0_7c2og%Afk+y(Yw~&S_w4@J{HdKl!Cs;smMEYTVaxk_dIdb&{`=}3@AKtj+fIqxV z?_*6`qP0BL6q;%ZDbv-E^p9ZSBXbG+7Wk6|kAx<>WE^Q(|6GsK0ZZR+RIdq#2wbOA+AMc_oW=S{7G<#Jc`3eE#sVR2XPk)`cSvMru0T zeK}G5isA4F3;pYnKIGn?60Jw-k}3Vne2vUjEBYH^HjD*R4&=bP#R2a<6DP?EC@EEW?jE3 zZ*vtyL(uoVxHEB9YjLpf*}Pl37dh?g1zU6sww_3zE4~zrf6L z^$uP)31JAJO+t%COy7An!~GmSSWXn0IZ+r4k;79~mW+f5sXq)}CAXW^>QoC3+$yVrLu_{Yd=0JSAq=T58K*^wpsii^&~Hi zM2Tc|vHP(HG{dSpXRPZZKZ>M8q!3ej^ho4dPU#@vuY=g7^(!GS%N?Sg@aDmld{@tF zL!T5{x$U44^J(!utKyoXr{-EwpCjN2(g}7sI$IV)zdvmVHG(v5*pJH=t#|82nk0 zeZl=qmtRo!luDOHLqR&M_i^d zf2eD~)<(bOD}>Oz;uANt_g$v(tyU&kboMZLo8h0rI)~_EF}m^NwgQ0OdV{XB^m*U< z6#K?K91R$n3u+i|KO-CUDC8niUR6@U5^|)H@@O6B7%pz0fmaGPku2e6oQXA4q^Mk# zGV{~#nHP0vbpF&84CQ1|U*>rE_=QFeL>y?<%+@KUa;0vg+lnTBxjWugDR5nX@0;ew ze<<-Xf#(Ksx|f4%OG_i0V+hsdjYr6G%V~rJC^$>UnJt%f+M;ZL2O&$Z@*DzRdOT>}73^g?K~+Mr zAaZ%vqcktsi|?>DHl(VbA?8f!F-)KrMyNBo2fZ(0Z8j~Bv5QmKQc>OW9Ma;Sb(|o3s?l`PqaKL23|<`Z@ojtz0ljU0hRz_>d@q90}sZORG{26n~M_OL!eB(VqovYjmB< zyD=T+YEiBvwAW_M<+@i1y*;#Voi3_Rg)E(iq+}G?V9qNKjr#9K_G1r?%jIpkom6o< z7**MB4o+3PS4EGsqVi76iV*`HEBcX0efSO7iX59SSgYc;Ctg)v=kI}1lRHIATX151 z{$ha;E^%I{J)#iJ49Vclqh_MT<2g<46(wKk@O7NSN)|f^ob+g@{^%^StkH*1c6KhL zoOms&GkiHBz=vl;lzJ!-iG~s2WoyPdp5O`2UvimNCB(d3V~*$lazIP0#2^3tfU7(> z8`hui!E=g?Z|Y|;0$DiWV%Ix_ydNuqxUT%Z=Jf1BvPWVcG?}^`vE0sY&iaFws?skQ znjY}r^YA7O+*mgY+!DJN)cn2<8=>U~m=8+QlN-+Fn6YSULses7u+5~htx)tQ4rbQD zE_o~t5XEU#$e*>ke-#8((+%f3Cj3}y{1;C*{>85k`$vSmT#Enjc0VC&TJ~*hi`oS6 zkd%kM>Kap-ZWw9=Z-Q|Ls1~n4DJeumdiDH_B%xR^*Ho2^^Z6MK&oV)_TM-?EU9fKc z8wN$@mkP(_!JlfuU>|R818>fWut%#X%(Oe3O0H`p7R=yDg7r(d6EYvy-GxEuvb|QE9A$1w9giB zN08`CiTTJ9CyFufYqb8(A>y}y4C35=iXPIp6=zZuDSZ~bi#;*_jAdmw0?dH;ZX>&%$taPnp8t2iA^RGmaJ=%5@twKmf)OlF74&?2PLsaTO>(#@u_! zh1H2tznR!Rksw!OfqgRS9}ksGDhxV5%JwdKAA_31_v(pE(G3B}cYAH$B3DPX>O-cA zM{U@O-1s+%ouBLsR>-q$lug8r2)5?BPqEPyz2M8H)_*_W0}&th&Z350wK~3g2O}#K zcoJt`NDSx_+n?08=N#jb8urg>NH7Tbwaaah98)CNME+K??Tlsrykgaod$O%U(L%`p z`qqvZg*Hmu=YCe=MVMr<3|oueeP!??U05;kUp<-s?iQIS3yT{%zSFjOSA@RvGv~|C zn9qQUd6GM@`!|2&-k&95{dU0W=^9iCdf=OzpPW^ zg3Y?^QXo5Ae1FxYN#HGW25B3r=o2xP0LSi1miaYe%2Qj;+JcX6lxjvI0tB*@yEF75 zFXEWQ#lYH1H7(rW#=!h=2iK9JEF5=#=FF z^dltELf@hYyN$n`)Ai<=hzdu(^@5!NSk?vuBf9Un-uvM_TD@J1hs& z+7T@vVW?rHF6Zj=Ow$cKN|FJ*B)aWO)I*eynB!@iXlZv_QTfCPiiAzPi2AU{6Kzerz zjq`kTBfPpMR&w++T({3eyt~IO{QQ?J0hs0;glR?F#_Bh}0r9F<4vD+X)|Sq?IKUjj zjEid2Lk3M#RiI>wlK&22D55DGnix`@UhzZX`~7dgGqWbY#|7dj#X__kR-RdVgGQ>@~{EqbFEkiw1zgE`U;;SKAG3 z`g3bXd@WI2Bcx54cU*SH7Wy8$!(1p){n!(H7@m#H!{h45P(0T--}-v-?y?e=)VoKu zG}-dK&&Tt@Q#>)c?>C#LK#G-SFR+{>PQ|0Hney@9(`lW zZgqdPt4Vd@F@AF@38{2GWh-@rfEEPJRb9tg_4=?AL4kObJK5{cXpgf_r3>uKj|Gkl z95#f9zHq-#Dg(NrL^36AE@YtQH>JL6^Rj&J9E9MfX`+|4&DfpXhu%}qtv=-^I!oPh zpQER``BlyP+TMaD=qX0Q6g`af=J;SQj-tNB*a1>opwN}IPl-l59$*j)Orf&i&?$gY zmILv~fF;1r+4O~%>FHXLG#aJ2K#Npr&O9#{_VD#zN z3?OiXY1b=USu}9!GUF&p$)8h_iAV;!&>U`<#xk|ikjuJ-k?$VFpWU>+ERiW%3+U&z zUpYJn-MgFZf03j9hbgS6nqK2+SQ1gO@n5WS(_YPf(*wEp57%#G27ez(k9e^*!ELp} zHE2XwlR4+W%<}vct?#ORvWEhn(U#IunKmg3@ck*hl(Xe_s^1|Ms%@w{txAsiM&c6r# z%D%_#RXFtEd-=X^W>b;1J5NW^&$)JiUv*+d_68SwDEq^8KG`~zR*ez~OJSIVcxDbO zRCJG!Sphx6b<)x0Js*s}m{_RWgMHAc6IKN}vXk{gu1lL1=n7g-#hQ|IK53Y!N|vjx(~8}+mRfl?5T$MohnL$MxsVB4)M4tbEk%WmZbXD}IC7 zI+AUu3;yUVjO2}GBaZby^E%?I!r9M4316VBU~4SvbGY+7@{4u(-Yj2VqqKHx=ZGaP zem#a|xtvX-#rMU9ywua(&mKSZ(`h>uT0d4E!V9|-G&E6U)G@Ua`};tBD&5I zg)<$(J(Ao3mF-$5M>*qgUv4^Q!ilP*J?iY}s(*Qz1JB?zRxF9F8%@X-iB(&ccr#of zY{c{%Ky)|VS*GmNl;x2xi_1*9sGL@z{L9uX`fIfDdH?ra@cPY*=>F}dpBdw;`yT_g z8a`FNX7O`oolU{*{U zT3MzR1N<#HU)(&oAK`Kgz?DLT$ze7=l1AB@Yf?o&v*(MshT~j=nt0zv#1`30hC{Gu zVgXi;=OysWUIO0tx=;CXUI@xFqmwgU6Sk0oek5@gl#<_httx`bDtjVD1<@VQ28pq_ zzaLlFH{AKgH|30V@2%ZfgPC9sagH#NJkFJ{FdQV>=T(wPTWUkH(4km>9&!8yPlK(q zKBM(@YW&qb^?m|uvgw>{*&1v7V*Cql2iL;TJ%Tx8-?Pa!=6%GX_pcnYU&FAD?K(r& z<7M*cV}qGh=g~1g>XlVw1c)3x?t|F7cjCA8R6yyYlFx9-1f?UVoB&{oBx+h8FgJz)ySX3pixPHH#)wVEr{yDe<*3+%>C_1UpfTl&x~BJf ziRxqtM&&UnY;Qx0Or04%XKlj+eJWfeB0I(!VsSN1)KkTYpP+b25I72(*d(JqcMr{v zT@FB-{7Ksv6eO9RL9QME&Dwm%gpq_857*!{Yx5b^K&7-37%hsBBiIa6)~XkNFD0;d ztQIZT^L=(T)epcj8UgzPEhDQu+_U#Gtj(4O@nz680-V%cwhAAf0M%yvc zULVVq!CEVMb+(n7VJ2GIq>Rl|`xaFdyY>7y@5)u)-zCdg*jeo#NUZeh;Zw2*x9*5i3@o~meBcrO}_AKFOrMU{I{ zkn*<1=_x}3MpbMj9hTxkUex)UlIPYc^xP@F_3oV8$vc7j12D7YyAO+ZAd|+iv;e!- zbErA@_hLVmC>kkDmd7Y=E=pkN`ufz@nLm1yTl`q*7z|!IHkc(l%SSZmA@za%6%C=h ziTOGMOz+q|S+@I&kFxV>!Yy(9$|~-)*DccBBHR??>L3X!Nd5Tu4LdwL!-@Omh7h4Y zI-T@c=qL+Ya^I<+!^?c{48Qw%CFJ3lVTZ9ujB+dPCN{pDLE&^`TXO6_o3f&XXxVme z-d6M&aMbT6v**_O@Re$)isB!m#L{B_h<$7_{jg?hOv?DUz30TQHom>*-103GPq!Yq{omB+DUw_SBCS-1Gx1__Art>1jInj_ zXV=$Ar^?A+W!pb%zrq_PxqKSS*9LV(BUPwI>nd!wdLPZG)m|Gdlnv~F<9~hX`PIg7 zR@tPqpqX;UHB|V8g^g(q#%8IGB^mzaPG3W%xgNg7v8(S!%h8$+no?YyR z1_T|U)U}bX?W{a!{I*WDvb#_e_)YrWPHXi{WYm+y<2}LanUUNj1NVRgXNUXrdAL@I z^YpP+F!Sh;0KbpZo6S~Abo}-7i5xDUyAF3DZ`RLr>P2l)i={dA-b0#LI-#Jlx_zZt z9(Tn1<>wA8r~2{PUylsaBxc)uu17D5U_EMC+33%WL!gQJRUl}~j9CECv+$cRjbyBk zeQE-&Vd`Z8=bO0A^iU<`@PPTkmRf3(Wua!e%_0&jd4v}lo}=%p!0nSt?SI3pOEw2Y zyti!cUeTL#=@@z6Md~@GjVe@n% znJ0>#_Hr<@3?lNAnib3ibAD}r_Z;^pZR-M}lI>yo$C4_9BiHj$S;YB3+|?fE*m=jH z!#B|mZri!avD=gSbr%%7TCji4yif$f3Q(1|9X*0Y`|VMFIW8Ub)vu!C&QSs9JPV~8;DMwN`3Ym z+y*I}uU%U06H3L(kWYX{q2Uqg_6#>me~eGzU9hrwLuTYPY%47#&X8b;U1;^Fe}|97 zS_|a!)v&m!C6N`j0kw6tUc$x#Jxoy$AMC`? z6Yg5mP*Ky(%)2x7`;Lu}uqrf_{OThnnUOEunG znujXA&@XbAmGz4g5D4uIP`P7CULrXF;62fkjqdVagjOKE&jwt7(7MIx{*}({FOFxV z3p(iaUx?lQ)70gEWLNxkr&^9$#X-Mcji8Wlo!)1!N%=_qR^~?}y3?scqM|pgCTVzM zp&5f`S826h2svvbkqL`+SOtmge7~1EaUfx&a^;orsv?+f6nYx>EP^#kYiWW00e?V$ z9{-|^q{O=Z2^)>6yR6cAv5aaZ5%=_(nTFQ^wZ6D5BWMU~yx!a1)8R!Dk`%`)D~vKI zX4mA2$i45~)-Qg|v-MTWey(26Auh56szp?f0(O91Zlt{pblXqQL7{&SjmdjPT8|!q z2=aVQS?uTT_H>)9>>W+ee=MJ=)3jI!!RKEFNGUoE^4tVWE?VG1T_NlwP$&i7*}&9% z_`qL|Bt1Jl?fYTVu1eDbRAv^C$P%dO!dgc@e%fpH`Kml3@2`3qht{4FmBuW1voKK37G_*8WHH%zzj|!m27|Kx3$Tk1R?@dbo ze^xGMBxeMufAR{MtcieEiRX zZHt_Brw@t7%uryeB-Ojn#pCd8Ig-EiS?u+GTxRd-zUiS{!9P{KU~JAg(xht_Q2RQ* zI9ofA%c%|lp$W>dgg`Adu=fBg-j`hrL~?}xblAV>>0ebHbH;yLE~*jm5PT!Y@K0Un z7R0G$v8asikTfc3F{N5O5%S|`-~MIu>*d*tfPo){$0{gR^Qme`S9m!@_bF6Qiw{i(7-Z+-ii_>h>(`@ywkVm0u5=}JybVp7<6x|2dRtgXe{9Jy&x`; zC5ysERj0Sj_+HLcVLVW^X30)tzpTRWinE{j$2ZhP>&*$;*s@0ktxfCm-ljn>Z5wn< zDNWEps_Vv|DgORP{unayCEzD7ZZX{W@pP z$^7-0ymmB+swMRov+Dbpw+GQ?UVC23CUHKL3%ZS2h!IjCZNAYU6*~YeiMqT9eN7td zMD38hi?Qw0naHIQYcTjz zHKh1AAi2_~PDaHTz+U$Xns>+YMXHw<@jcSUyYzy zOI=ElDF>`VtdR0DPRyFptE5QIETPx#7IgI4AeO|ami&N+-Cq8O(L7^y%Vr#^{8bn5 zbU@-m5tb8ABU^Lh8-=Fk?jwx}rgeKHm+#vVF|?81c<)NyW*&_3T#Uw5uL1iyGyxdg zx)1LwgHizA71`jv(4m}9^~zX(qJjK#zGq}TsadM^`S%;abIon*mQI0IGbyV6&$slV z%T!F65@lu*LyiiFTO#xEA4IHr1E9$=rC%44RSrDm7J6JxIWIPwXLo~o=uS>4A!Vq) z0oZ%%Y3aunPq}SdYg1^%5Isd@G{NPqcb+@wN%ZMsUV4XeD?<=4q|^i{`l4if_Eo?w zhL|FfTvnQPG3z(rT!%3zpkb;+I5Pd6>9~B1?DO)0hV9;jfy2ux&36=OP)V=}c(ISx zkfaYit|aeC@^+2{N{$bgb~D15yP>n$s$*!)PeR}vdO@)I>-@IL;T<{k+(N)?5w;d8 zNq3}o7V{N@^HK0#`Qe|K`X;_U`Up7(8rm$_L<0)f{Z`rWs&2bLVQsB3Q8*VNssuGb z9j+MfOO?_2p+_DHDVi5igooGGPsH&z8)joptb-O3uQi*(gxiRgpp+H@$vsp*FORam zWp3@kKEhRL00?p>B}}d4YEnA;#yIB(T@AnDemC;v01+()P;@+p^+NB@=r6{Z%c4)J ztz9xrS@74p(OqlJd-;yMj35_iJ!C^ZMOYfk>R^A@E>n>(9S;MM4Q{zqI!wwmIw@}d z+sbwo#y81E#?83T<2D54aRlhXS-w83Nf>gd5o`^2Te zkI)B)kZtjR80#V%2Jus==J)(!++^#-hTO_SF$ohqjVq^DM})L{_opJ&o=zGy-?D|5 zWKQ~Vs~5}Br45xnX(a;qBT(qmGTe+VODBpCvv+NR_?V3KOvNK@Ri%h!zaRuKJNJ_! zJt-&z%-R|vh)YWN_=jY5?jOy`O@h_E+E|kU>l3G6fQoGtfP>xMT${VdAUL8;?jubG z_bE#X4VO3lS0&O~#;af9MV@QUaw|L$m>0bd!EJ{JcR%MtC`Sw1;@y7!2wS4PjGKZ8 zw@)vZJI{-~*A6o1MZ2|ie_A|!ya4ke&1;*iqQ(t2<5XCxXP=S%@~L3p@Ow1urIxeP zeI+Rrwba{VO5rh|Xdb4X6a1+Z#Kt!C!Y_j ze+|E?^}aT+yg^c}*<)EOhh(vbvDU4*4>UhkgG}jn0i|@H~;K#V%BfbpjqdH)ygp7gK#*Cc?yI4NjL9JJZ~D=Ww=}r8_^R&PBsdDzO#OaP#OADbiAvejC@nEU zd}HIGyU~NEBja^^h#omz)@;Q|V^FGxMq}ez!~Ci&Zn|hGN{x7y*ZsDzJtR2)(7b%w zu^CR}PFJt&$5S`_BBooB8|^_kl}QZAxw($fT>tbkX*dhl-NAC30fuG1lwhejb<$T4 z=IgDsq^k0L2IM)RooiAR07r62u(}^ z@6Gcn$v2Rbksr2K#i%PwXFAoBgEZ)!%-d82S3>=YAPZY`xO< z|5NpUuEZZR_8)UXKVb2j0l}<^BzFW-Gc6Iw1$<{!MT)99Ew{U?{r6Tk&>os-O@X?s zFcv`gMc%1Tu;R;{6vT$qDHy6t1 zff3#l0*V}_2#@w{G>5<)>rmS3O|t@Jv{pY7LH;2&Syh=w*PTsw_P_YQY5Vf~Mr+cg zsB66oQ)m*^Zc4ZHWiy0k0ugRA&5Zk?+H;}#+YajO+Uvs$7rNa`SBUNlL6t})2Fa-2 zOG?dx@s_iHx;4?)C$*dd+k)pBmsPgLv01}yqZ10^Ifj7FShO`7FX%tpKi@D768H_E g{87doibILFL2sOQskTI`c%}O2lih}H`0u6v3oz=1ng9R* diff --git a/docs/images/debugger7.jpg b/docs/images/debugger7.jpg deleted file mode 100644 index 2b242a2e1ca23f184af4f0f298e55fd4eb64f2a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 113573 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%0DqLJ!0Yq+CDAik z{NvJam{ENv-aI3D){3}uhEX4NqEdc_b6=?#$>yZzQm7{A$O9WLw847M3eK3@Tgk4{&lOx!e3VHY zDIDihL|q;Or;o4C+eB7|@3V^#tFl86D9uB=)7u~=JnF-RgUIV2hNRnkEtlr1k~ZzX zb2MdF;dXI$a(3+hsP2^ez+>E73pcgv&@}CGBKP&n1SxifZ7A;AW+m|2FiW!=+Qic5 z6eSPJV(loTJ9{(qK+F4%b~DILcqRpKJoiA$FsQ~hLBhRBpgmt=)zpa^?N*THk`b~b zIT1hlpBSntjL`_9d*<*9^&;d4ph4$X}}Q!y{Y92=+q z+6ToIygp$QS>frk#p3hiTs0`UEi5en4+m)-Qqu%PvZd4}W^@%^Z%(H8T1?UX_B{tT zwolo`YHF5UH;OdgF193gPO|)HVj`}x=FlD4a5>sD*0)M3!4@gyo@>SFMo0=2>JIA;mQ!pYsV&iFKJ&W^(;t%T ztVM+6rF$CJ3iuSrCX-9B%x>hq z44K?mvKC03&+JEUg0zlJ-yKX?OBlWx1_KB1uXR`Ul1u>b-2lkMFJ}0XW!GVEe?+5z z_Ho0)nN(?ep{GNTy)T=POGPhUhH}6g0ZicozF$127FCh$t(o?^@2izzToRM%@qJOj zu%n|G?k^EMH`7Z?yKW~YIxWUZR=gG0gK0Dc3U7-|d)Pdg8MGvmNrlJ^4jh0;-=ghr z@1^EfsK58hw{ovmzChJ*<(UH|)5nA0eGz|AkIcZ5?^Vt^`v;IEUs&tKi}EBl7BBQ@ zA9sG*v5`(#ur(fGamwzzPZn$e%687K?_G|Y>8xNcLKMetce_GrH-)P2S51$%Ff~4 z5~&CLxubJB_VGE9TwxJBJbX>}0W{#qUHnB(j8wLgF;16YorTiMBKb({ct)?bRO%6o zIKwXseZ{Rdh8}(5*;EVx34dudpt@_y>grtz@G`2np@v>z z<1t}vVnTaE;nJ!~jobLGp1zmBPMXaHPmsYewzYvJTz=*}wqSOed`jbr2yLKB9akEw zIxq!Y8Cf1X^XN=UNSPTBTkyE+xvq*>Q(2Wq*4>-Tqh~!TC9C`>-POn?+7k#*9S+RB z(YP?PA#1E5FX!>AV-%zsM;pJMhf%e<#cm95VjccJJcsa(_OM+h3bXsZRQCInrvEU@co|`yG-LX$5X*6HX=+jlG7-oWmP88Mlv@& zl8cjIkx$h_edq3Dk$R+&KbF~!<%?XnnB$)I{Ydxcwd|J;-0#c!%B^p{{+D}+PS^j$>UbNzsSry-B0r>uxgfH&Q-InBQ###E>YC{K>7CnN9Nf3!a<;T{*TX}$Vt>WLS|(qQGQ)W!F9 zJs(IXz2eFVdL5fO{ym2Bkg;^_#UPKnmgIK$(_RP2I<6ng$a!RSrqLwIvljjSy$y)_ zGL9uR!o_dw%K`u-e7-?Vx#)gS;+bLcX(vD=-4yn9mHC6qDZLO8Cm)X-EnvJqDJc7i zSFEKQUV0AKBB{YskEMVuEC1}jXg>V+n2>_$l5s3GISofEVWAA9abblDUZL<0h}He?-InZLE09^M zM7!CCVlWHLsIh<>^EpD(f<))({(j5epNA^TJ7ec`1N3}jIiPt=I$HP9x%3c&FX@nAA$MAT+{ka^*4kekCnTTi`c=#I zBql_xEz&T~%E2yqV7$}KbN}w$V|ghpm)KBGepev!wKtJ8K!aabK9uQ8e8bjXek65M zpI4A4kj`IfnO=246A4c3Ic#0~h_%QS^$Zm27ZjJDWa!}gh+{85wKG%7z;}+NZrY2n3WR~{*ofq(W$C-tC#rXB9XnMqaV780t z6&rFg3}~a)&V$GGYLpF*^|09udAq(vI|-lrs66)_Uy(G=zVCzO%j%&yhtRaED1Lfz zbcBs-Q$&LIgA>Yz?G_c)h7{@V$Rk3HP4V;~e#mufm~}l`y{Rfeox z-!)^V&}rHyl|`Bbxg*-rKyjKGJAIhXJDtAf%+k;$mO^E2=`RbWBqlgw)=Yzjo5IY( zCBvai)>h&~Kt>eco<)0W{NcFMqfr*wc|_7_-3{l({fDyTOkMERjxrEvTwAQFXl+MB z&OiEbfVOe4B)j@~J=tWSUr%A-Hh8}+FgPtF6-)I9aLYgmaNRQpU*OKiU&J_&!viAMSzWHR==yGGbgVxCC1GV0y3CS_1hwT$WDh&@a|Q9VOP z^ICs7dnAglEZvB}6gk3+v|t77Re1Twx{E6d6S#2{J;^YNc!7~cNYey;Tx`xh366wDf6 zB#1A__O!~na%xU^ZcW=S*DN{2IArBhMIj#Phb2?ODm=DDM&oU1S8r5p|NmIi+~rT% zqd_#{mHi)Xv`6Y#B$erQCDGsRmF=zr9KLfY$|H-K5J^0&Fn5^JM?-;T^FsqD%$>ics&n(kivQ{AH6aqc-9c;c6xYm%AAkA9iL-!MxjpW>YSHIZk>0bwLga!m64&=XXQbLpyf5J#+MlK=%blx?+#;oopdzu91okKDU0 zEt!3*;^yvzQ9ARm$FN}MrX{e*v42Dg;RyC96BYL^58n?=M4``CVENp3euU`qfUMD; zb9}h(LMG@CxOXizOumwgJ=Vw(w@;F+A8gS^jyLV!S;$2zRO{oxgvuW!%D%MZUvW0Q4 z$yr0*vP*eKgDu9(b{$TdBXHl;6{; zCwF-z9v98KD>au!R}7ACOh<0`T11CtvADC7z5GSfkZGs@EshM;OP-T;&cb5HF3+}q z`SMAHUQCvesCRcQv^4e~W}Qz4??@K=T+;@?#qtJbxWK+>x$6Bg1`rMM?`LE#f872d zxKv9+P@ShYNu@yVdc?+y0XPG zuW2nTDQN@~kvKoqr+f@6=4iUz`BqO7CdOR9)s=Kacs?&D2kq&M)DqVa*@x{KrLH!0 zRDOX}_eKh<%#4fc$HbFVURf~07?E^=7r6KS%m*Ii%ukZRUgCfm%lRzij@VP$nr+DI z1~j+Y6I*F+3v;mCnh|Ah|9L`691XT~Z~&WY;+CI&dt%W~QnKUVp0F9o&dk3>pb&qJ zY0xZ#O8t%PRxlvdCJu&2Uc6?bs)OP$f8}r*4c-NnGwTH4yc|dLVbzTpv@vrf39^bG zi!mFJA$Ap$@dAeuU)ur-=5gb7hag1Ug=(oG#bcMfkNS6jmaW+nlbM5|^%`io4Z+ab zi~ey<4kP+6;aVTcA2zqJGL99krt=12mIys@0Npdo&ff^s<98fSbkN#ASOa}tFsFNt zo7U`D`^%uL8}snfo1ZSCm#iElQflcf$Ha-vh?BA)@}PoGVPJoP_y`(o1p9&ye`Y1^ z=!SEib_lZ`Y>@LwF#(yr2GET*X zt(uvx@LNIGCYO3ID&B5v2Chyu)&EQ2&c7~T|1BV%I%reB-KT#pf*dA)Qj4;> zarzUrSYFU`vG_|Bj!y4PEWoQE(df57eg>^5O zouCN!REl+SvY0xZd8>^*2Tx6Ylf(N)^>gq|!z_G*&Z22y)bIIUGch!gLz;sq`C|=} zKHoyo*T>gBjxAM{3siALaZD$0(EaBdK6qWu1uyU!$|fgUZ@Iy%n3!iQ*`K^5V?0H8 zI?$ijvG2tJ)@qj#>FtdOf25Z=-qx+9*L}^js5r%g;ei2RR6srpRr_2Y*wB#fq*BCM z>>N z-N(&`F=ozoep7z6xg+jNO#u=-vRHs~!%qCbmUNiG?4(|poI6gRY2n_`zhGhHEP`s? zV|DoVuGS_Lj>o)(X~`8!49#e$a%QoERM+P^3jaE|{>Ary#LVzlQ~ysTwQz%+d3Bat zC01S~=c+bf?AF{e$bZXeQOoHVOoSkddD=NF{QJWBgeP}tD`(m(fWhka$`$G}aVd!^ zd;_VSv!vDNubm7egw71gPk9+5HFgyGulZS-|DG;|XHb&pMSTsA^7ftab0Fo`% z3<8BvLW$hgy)1%ci{A;7Q6V0L7g`fhf~S6p=K=oO-W3;=W}ZzSDOhy?g`qA}wjAVp zt6yT5ZUW*jNgPz*MrWMR2`3Xy9!f%)YjO%ot47*y`x6t}tVWZ6DT%dS#5W03)+W|l z=T|+n_pGpfQ~`G)ZJUZu1$2l?m4~8 z8JfjnWtxv&HDWi(M8X1Y$h<1odH6x{7y{!B~T~UcJ z$#>IZO!0HSmc9Vr1)pL|L&Hn3Bhv9gclYx4N_jAcMT&oW;VKs{dTs6Yt2szw)fG40 zf-Iz-a4(`kB%8K#)5ffbhLX4gjK(19EY|L;+UebV_b$+Br_y>b(K%iw^Vc;u zJ|%ZPs|6!vo(KmOQE}CR{5A%0ZGoUPI+6V|OBt;3*9_@V+!W>Ev95ewf+=39NXtwO6C071(KxQh<6s z{E%zBY{{MJx!7g{5^mcmol2#vtTWJJ4n=cL4#4eX?v$=*Y3}yBAl41HG(19~B7YkZ z=xN=qvND+L5p7}GV;2-wle3HwJLNYYvURhb)3NeBv+I6GL$OUivLKYb%@m;Cw zflJ?&NnS1`!87lrV+GP6N|*PcW5|v9o}RncPnJ0v5>=^|qu(#^kL@L;u8J_hBV#gg1{jqSEn@@Bi zo$lIHAEuHuD(Xv=ws=uiWWy`K-6PF|`{|Oqm+a@>3hCnX7avkRpW?tEgFwKMO~S0} zq^$|Is5b;>g!adug~rPzRmP>{~vqr9o2NU?+v5Q$k=c! z^x~-W5~O#S!2t#^bP^#16bMKOfk0>pFpixngd+VQ(whWHfKWtAAfZT&AwZ-{s0l*o zKACgZy=U%v&ik(Qp8Gs&y?3pfztVR7?ce_Gy}zIGCgXe|eo`+CUc2KQFV~ay>Z-f~ zPS44)S(DTj4XIxLEJe<B-_jS#WDv?JeG`b3iGmPbeWwBv`ISe5TX36 z^8#Ny9TvHx?jg6?UoYFmj&a=b>jG?PNk2(Q)^)6haF;%LteDe~VYS+?tJPz05G}-z zsgh!gF3uNJj(M2(FFqIkw`Bj+B=Yb7`cCst6$-sSz53q&Z^`~IeIZW&JDvaEw9wyQ z`44{MUzjS%B{zst4odNoZ&vaSRq5?(gZFNpE-othSX)r$vu=Hwwy6!=&{d>IpNU`t zOJ*~&9`u=$Ex5=on$#@s`^YHt?auC}XFG9CyPhm$RZjlNMoD_q(Lq}>U+vJBkt#*~ zbF9TR9RG(WnoHuddF-jM=xFJZGf$VSWg|W#s6!E+beF*T^O)yEsHTOyIoKeZDKNfah2c4|zBDf_eVMBPPtjY5~2Mqpl*J*cbDl>6%HE`*Sg?>=behtD< zifO;EJ6YweAOa}gZ=@+mrhk0wKE3hzbfAXZurFossiAZTAntLAT={&C-NrsKfYErB z>j2f=gK~^FoX^g)@up8Jx7cDvSg8064Uy58w3Z8$CI)7zrN zb>?M9rG{|gvEiovrt+N6pqhfrevhq*=m14B+ZM7mNn|v<{VM86uZ+!;v8V22G$oxr z2!ppC?4EdeA>xaw)1`RTigY7yC)HM4AJYrlCOGN<8N2xYZx?d4EV{`( z{f{Wcf#sPE7FIS>Yh(z#wU@)??}~&x(ebqEo4A>f)Iq{%W#> zMc6y{9W5685KnE;!EXDTx=(*!YvoR%m%FPQoD>ROviGNYO@b%S-+N$f5#q}pVIzIH z2EMSJ(3vUBp73Wbsxa)FRfGdQ8NNyCE-O-y&R#r7vCM`MLxepTFLA2O3W*n{fF*(5 zob+YMMnc^wF^Na^L(F}9%>i8H9eHn|AZ@~Sjy+9^v3R@uo(I>=3CWs+Yu6j=+s;DF zqOb0_{iyOY_m)3VTi7iep4ouxDyNl8!GO2-sp{jshMc*co>bTw?OyF(gDgL=$Gn3GvURt0 z*RiE%%1hmpP4h4uwq^C8_ld z)f2*g;PP3I1sYsPjagldVz{g`URdV!u2DQHP!0O7+*8XM35~#CEczFSIiB;=lbo4# zmG>eUE8?Lhn%iOqt`6+bIYzXMV8_%hda&Ydbqi>fTzM&_AKoU*UF%W z%=6&3@=30)3P_w48@Jv&;R|7>`0C?#FF@>^)3$+N+42=fmX(Wr-n1$j;1zyyApa!` zbr!H991LnZI!dxv2=vSH=dG72Ojen#|b5-7PEnI`sh%P{Z-LtFJ#t9js{&v z1e}v2R;215N*tuV7a18J%j%~McSE6LO(k}D{avIdM{wdHIw_TTH>BgHXe~`qFV*c7 zai!b#co+@e^M~&2d}2v9)#U3Yf%XRtUB%5hoXF(mtcv#)H(r?bI>zv=SGdS< z(e5$XYQGCkducS4`1Ew+CNybd3Uur~F{=9b7{;Ay3rT047ze+Y%*mQlA{us)^Z?Gf zEYIn5z7n92S|_=~iC@og2+DjYr-ux_2VcryTqrz5zs4FBr%$n)Q1SFbLgXX3kOrQQh8 zG1lufBf(||{)6x^bO)!ZP|SB0WNxCI+=8%8*a_cp(PkS|= zsgan>(*S)OZkhDR0z?y%KENV8EdSqCF0vfvTx%b3v*pHC$aZMSh78TS>$OwfHXp0o zi>A)Us@@l!R&UBvnseXuDVjfs)d^>H<8LJ-qCcpnZw3azgCR!BYNH`ZnvM5$Zr{8t zNYVv;dG7M`=oc{$M$5>#6Y<*G0khTbMtAo6*RDPLgC4xvl!cl)CGGSopj@sv8+QJcOPSwz z;7=pd{9XhZ^WpQ)ZYDhgm_ZfEJ$=2oE4ta6GVW<~39;{IH#0E0J6(Hf@7ON(jn0g>+gevoThx}4!p?IUo!O%c5RuKvj z`1Gm5qNmKfB_$5SIgF=V;Rn=h%5~I^fZQImUQUHS_VxLt`WVp?mYNo-&5|{*%4Q(G zpNQhg|H$P2bhZ2~-~hsqq64MU)#uqQRZSNi^2gbJVH{HDyaukPw(R zrY1zzYZosx?e`vmK1!fQ{Jmu@8p}vIuV*=KR~FI+$^vO;j9u*@YU3o^M0u--G^cz} zz9%e9B%K{>b%}9c_gm+fD$$iM8IEs{ql7p>1 zv6k&ds*sQh*})14%GCl-4|jZNV>Rzl6@IdAh|U$H@V;6*lCD_zeX?YMT#y-dvN1Uu z8YSD_RM}vnJtp=Hm_KHguU#_Lfpa1LzLkXfCEIUlS^trf>dMcR^2Jm5=}`vd5YmBOe!@G3Qhr8Y&KVM})x^J?7`Z0bZt}PwWzs z(+@eHr;t-``s8a>0pz=5BU-^2ebHcR#yqdqke9|*@fU3;-VWKe)8-FfC>}C{?n?R^w4 zYOuaf-I)~AITSuImW1}&ZD_6Ar^DNt>z|caYbt#>jNHje+Qyf1N(N_o&ccq=tZVFW z4m)X}+dwMs>CqivYqWTme~yobMZE%-w0V^ZHdG>PMsrP5Ot~w(b8XDQ@B_<-?8Eou z?;5XE)0cF89L5=ARpyjuTb_Te-v7(5{~pWp|Ae}`I^t!rJ#t4%&p##pIzJH`)qCQ- zAzAft4opzkWOW3hK3GrH^G`r^k&(VCu@F21c`C(1nIN+3c4t!Y(QJIiBPq&AU0^uc zRqCr;R0b?S?ojJyPd8B@=*ebaYJqT<7DIqwJ@0zo_r9T5S!TYALQlQ!=gGn!jBh1w zkRH4ta8d^2{>E8=poDe)fsL^wy%i9B4l=?hx8&$uHxV~4vSeb~aQ*4xJ}Ju%9} z5yeA|ZEFp3Jn=q>5Oj~Ahf@r-_9S5NmhDoL&u3iL zvYrHTEiAYZA@93iA!!)dVzE%*n$QM*^@sO9#UmR(U*y`E(8a_dzvVkeO8{Ef z)!9P1pq2?}Z!5dNP*cFlBc=N_B?rW|i9??_F&4^I&4wWZb6i=euKlXcn>aXkIw^aH8sUX@x^H6>NSBD z@$d)fx+^y-TPeC;HB)94^t_FR+k!XxG7`>uD~$M6*zVJ-kKJDW_&fLZIcf2LApK9KlE`dRw=r=KEUtjaJute>JJ^WWa;Qo7@-u)TjQ~fIx7OIGeUH>C4 z7inh^WCy8H-@Bz*Uq8P5DpP0qHn?^}vUTj;+P1g*W=80=stY4~V5sd_r{o*YHh1g7 zxlzxdrzOKUG%iHP%04G=9k`qG0a+cCBRQx2Zcer(EBe9PS`Ez|-Gk~D)fJT$oCCFd z0DM~xnX`A4n@^kPKo9%+T6E*9lYKsImTP}qp#J)%Vji1n&pnpsJ{Fc1y#jYCi5oKq z25_#hwwC16!k4S0HPBQt@Pf9ZUJ=f+J$Sz@xr{6gmC??GGaJ&5c%wFl3!WBamAy8% zOthVVY!J~LfalI^hm6~oH68w-F@4>evb{)5{!L|@D-tmLf^uflv?33=e%VOf5uM6J}ZtXHSK zy{(e7$bqhSK%~R#xW+YCyTet=Nb>sN#$Fade6E-6va_xah9c~iS7gR?f;NK;C6w?C zgsLA(jJ{l*joZML?*u-sgqsDdCErv}u=akFmtEw^@B%rogM2GA#xQKDE-Es$Sx_zj zA9Wz@G^!#{msX&&;BKXc?`B3+k=j9DmaCNg;@t0CBIhNGU6`O_4_Kc=6ai4%)3~? zmJxLQ)?%<&_MGmL=&D^A+$D8-)76sF^02L7!Fc-RoJGH37EHUIugc<#K|XgzoCl9c zB}6wS*^kIqXX76|Nwj0dIB6an8r_tioUGVL*qNv6-QV$+!_RF-^U~FD>ph7knOYWK zkO_&1SR>xgr=MaIoC|Gw>xA7x)o-l4_F3hib<~N&rfChYw6~!d0q4WQQ7&Jmiq4SH zNR}lrqjRfvfRbq0>jXw^VCxcCMtzHYm2oi7%2t|QC`bp`YCt4xom?k4st_(u_&k9| zD=Ot&-*L!WUTqet%(0yarmpDD+*0Jb=?Hoj0Oj1PHIZ(O*0UGn5iLPn&$&-AU7OpiI zbMd99x_f2xtIwv|tYWAG%=4$#O3%-nZ8h}YDM6+8(nd0GY*;WX|EF{}$Plp}NzLXXiWmTS|cbQ8@^Ulr{c z*d$N{$7#)$nFEw|-2A+8 z>w29fwSKzQ1){8+LchmiOC1t&K!U)8o0Ey*hFY)1fp?6Xg4Y@&E}@r&SZc^K*)g`s z9k)=;##z|GbYh1wzWEb^_kGkt!-BWF4Sgf=i#G*Zio( ztP#BtpKC1$OsGrySX>Fuj=y$Mb9iHlgR#_!G&S@p$S$6m0*@&3T z#ZpRdx4nZK+``W%5Lk7rC-7w~GIq7rQD?~tAYM#?1jRv+u4p79P#p&2pYhZ38M29o zK`*7E$1o%4W9j%@>6Oy4AlPk8Ko1Fa^k%w0+FMA6dJif$S|B?BxKiyGKA_zGx=WVQ`RA^CTl18wK4(q+edjl-H8$) zfMDDBrb;%PtKX3RRt@$jS%E(Yr}nraN2+x=4x-Vt_-g*_1|MT^p{}f2&t!ctXu5|X{VsU;wk3%OWj{6!Bl-(;2b^`~;WM5OR3+Yr#NmDORA@~V#H`P8o*V533 zVZF>8KV3iXJe9w5x7DZD%*ROm7t?33b)%iw3Twf4jn*NB5=xEVcz#rUSou|_xyR8J zX#d(FG_j>P)z2lHt2`QZ#V5;308}OdLTQb(OLOe1ft!>@jTszb^0bh~*EQX?V)?@Q z89Kn~8VCf|T5bKU;!#O6H42Nr>hZCm3U6L7KHV$Xh=2d)LeUUy!+#ofiS)##5vsJ4 zDmgtk7;T+=+onBS_)<+}!rR;+9PvihY}`89@U#3WKjROHu7)98gC#An5GoL7rI3Ti za9qF7FAT~sM|2mKRgJe634XAT&p*wEaM86|>!$`zF7o9o_Dp$JJ<i^-a1WE z4S_u=c+Dn&BX_JdO$Fq)b1*+sPS1x-g!C-Td&$m+Mwpg@vTf6<0!E^3w|{!y)73{= zZ46KC7S@D|%DbqR+s)&bcEH$EvX|#=75yt7WLr4`+t(KJy3?N}39#Ag-Jmg3{RLqs z@s&Aq|NKYXNIBnHT~$-4_6ITRXd$JP-J8Gjh>Ey?0&=tCXukLf=3Lo_YvYYUfTdZk z9ktjs=O8RlohqIGaPwc7wt4;?L2GE!P>})*tL6|g8KA?NgO%-5FHvJ{+R^(*X8&hC zpKNLK!SJ2oqUX|=JBW0*vO({<&FI4zn;YM?Xu)|tq`g$&PX-cP8&>bofnx>+Q=rn?H^^S_sP48hrewjn8{RB+^n9G0jqbX?#_zX*iPN@g-*^s0oMRjrFKbq`n_qJU7tsggpR!m zAy1zUyFd1zpSinV;g}-^LDVte17G{imnYt+MW*?>SU3_0ms5PI4s}$YOHou(JEE4T zrS=IAADZY!cGpiq$LEU{`tj-PDFme>ee!t|upC^*B#wMwFu<0 z=M08$;0@-)AhPkM|p?Z zRA!<=7mg1d)P-ko*-$mf{31^^1xlEzW4yM_~ zr+nF`!D?!ft69*9Y38e~SB#WO1H*FOvfWe5LytVE>ZABA#`}IAf38*cA%t~5wxSpX zcJxb%{{Bo*@IrsfQJ3QC^aP6mZXX>w8$Euoxtqo#xT(hMB9UKn-Bn$UV|_IPH9l}Q zXz2otcmk+^mhrs}bIvY*C)@=*PS0MN_TZmAU+N)rMcL+-cL#0LSsrB806GB*U<)8Xp3oh!!w?UYfUEH2tS|(7mV|8<5W^US%$7jYjb#9s6+1ugtBN+8@IzZ17-nds2RQ960%U3w7tNOXUztI%T zJ+(-Ka8Wsy5!EPh??lLr@}+WW+wOd{SauRe^RN=WZ&Ps~p< zI>|g?@F>T+Dyu6q=%8QL^IHVU+D-~FweHhk&8k+uQ&>cRAbwix81~b5jcUaanwAnJ zj!H*&b%NAerPH(F;m!f@4Zx3hW>eD)B+3_KzK4V;tNq0DCsPLhudI-GPStZR9~B)6 zw@)0rh#o#Z|CxsuAwzd+=c=V8kNmMMJ@c)c&{1Dyu zdgRpamH_}0KKTiys=?K=_NrrEdJt09d@2ddwnaGVYIN++JPcw#m{} zg9BEOf8G1xny>96Un7C2AVc_v;D0oD)2Xq2~v* z_#yhd=W0NRhhR0AnBx0jLM06wE8bHly8NxGm>CDDq`qGo`G(41bV5_1XB` z$WXn-!ViPMzW7SaEvpwYGWY{7GeDXf-d0dQoWR{o@{;%!kTR`7E`CF8gg5X%ob<&7 z=FGViogEHNft0TAK=y*A!iD25;`J@Z0SBlf$Y;h5{?pmd|K>A3QE5`K`P zN4z3)O=`|92@WpCmInrmrS{;I}6C0;GYL?1&N*vj;h!hqq7uh|*nhm{fdR zAT|94?;VwKGwD$&A?}4)054a_7W4CSanma)*m#I7gaVsvnfVa(*lSKo7||i!Xh7WI zuH3b)8np*h<1->tXgRX$s`bON`> zyIYkA^f3J5(~`_2(D#vsSNECn^>nY>jD3nGZBu5)gRpqO_`~5Hy@E6rxQ=(xpkn?U zRZ@~Pk0w&IbHoHdf*)E0*LAiJ6j>>iI;hR*dDH^!VyuX+fQC=gMB;*H5GIah~g zF}BtLZdW|sMB)L_=L_f_nPI+Zsa$QH(NWHR)jI+sgVLNB`SgPBbY>aphTw-%dr>)? zlvM3|Sj@0>)~45@%2yOwrRj;hu2J>{>vN(;604DHc>L8#41*=_NVx6 zXW><>d6Z|~Mhx(Aw>maay}P%wrz7Wj@*QUC=MsJ?JS(d2-^qf#eQZQPt)PZr7ye_Zu{eI;IIg#2%vYMR4A-!mxKjCNQ!{_$oDcChjSH zgEBY^B6p@m7VUr_;4UUNV!i?>( zSaVvY;Q3edu_++gY@iH#>xSyuu*O+LdA5oo2-*e~Z=?ilEo50mIiY3;MSKqg zHvd>^(l`i^&>dds9JR|+hIIKaV-wl*bULDLG0_|Q(5f&gTH4gmfZT{$=O1veuue(r zN7O+NfA6Av=xJ|s#M)QGgCq~Z`2~iVk6clN3V0f7Q2IIIpevlxN>#OF?KBaD!d+4n%72 z?RI1t$OJZ5BBtkCQRk>#O16tL*V@GF`Ja}2SGntDcKI$|VZI?%bCH_=zBaD#E}Jbk zuoBc1D}}*7T`MAlsb``u+I8GjpQXQCNo6U%1_ctv2nOTFJ~cPG0Ts`lGf7Wo&GteY;mfBRtubvqZ#`=H0Mp{&;s@eF=|ztP#o7gvAY$IIlld{trc50(#FI5R#~ zTol6(vO`E2MRGv#Cr^9390l7Y>G_Ps#@(yPTGdaTedx zPN9V1=bLi1Kkbd%#!&;uC#9$wZI|JO8z#3Kj`N*esIw5nlJ>LSX7@o=c14moaS@n zdPIo+p&;WW8&~32T|SvlE7n(W`|i8{JU9MVKIypyDNney=ZM!dWUMKF9^etp6-0Y4 z5Q2*o_1dZ+8y72f8o4-;`?*wjYNPIIj@autfUrihTV(WSgFJ!4q>#C!3#Ny0Dw}MW zKJAw>6LtK|)cOvsH6~e7vdAkB zJ_SZW_h_0OQM>+lJIJBvsZhteZ4+m+AE%;``*h@i$>jOc!8fmbn{(}`qW%FoNlfK3 zz`Fm|m2nN7HzlQu=F(YKdxm~lQA@qdiL^vOFqm$`|+ z5_rEiJyauvkyI?EW0K6?MP$rMUmo*2v2E&8gxt>VOIm-Dv=c5wcVMez*p@#yQQoSnLEO7*cbk5|hn>gXX4S zAiy$MMsVwAIBY8I;n0!z82r-?r6$JC>T(b=accS^!q_m)lM&FC3Cy7BR@84A+XtvD zd~QCU6JHrmjGWA_Z0g6);;gI@eT#JeRvHAJg6lO{kZYmuzSZVA!EEByD<9SHQ(4l6 zir)k{lJTRdsXFRZ1C9aMbZwNq`OdO_&(rG5N~+n($*L(_oOPu+WkowGDfHl4=FHNf z4^2Fp54ub6r#hJ=UZ(8^G^Q{rnVC8$*u1Y(`us4bdPO<4gm)c_uIafr{0?rMlbGYP zS!1)TM849CO#B=5yO`3t+!&`L#7%qC*5-zI?i)t|O;Ofbc745R){zTQ?CeLJ zfW5Gv42;YIOX7wCuu)RLPrK{ksh^g31)Ev{wvgR7*`Kym5^FO?s@zT>l{wW)219R-8Ne4j)7$V&+8GQ-`C`T8s_d^p;9%E9a2< zJJiP+7rnzMj}QRy9s1yI z(fno@IWraBLNL2y~J|rEztLwaB`GK-TtR; zyCuR|VD%cc^P}Sob7UFR^0cDlMvI=>6&sRETjgL6K3xvTe}u{0Qjl>iJSupwtE1YduXJ8?8gaR6UAQk9GLif0C3(~l>JXmt%xycA-r-^CHc)e|u*pE#=#4sE zi7!v&ZQiG0j4C~8MR_nIl=MgEG9Te#f|$R7hfViuz0EPJJ2TwK)+(0X%ruaq7RJ{W zRxvG}Nbr@xte-t2!U=Rlpzu8&-onWAn6Cy-bY%EJ@H0V((r#ouCF-Dsl%uy&#nes2 zMS%scfjf7@@${(Xol|3ePPY;j<=1rIcx^JFP{jVTZNV7B4MWq!THiS8d>w*3Qw3Jk zkuCrW(18JaYlJ^o`W|B_K{J~zcCNm@xEmB8A&%$jMLf^*vd7b1fm5*BARGn}Q8Jy) z`WcttMOw@Ga`ZXJ9LSUt(CPp=Kp%#tD8m_tpr)4bjl1C+M+i|fg1Z@$NXW%#!bsd%qVzc)bm#`A_{7{57qKs zaB^tWwpv#I#v@Js{lD@E|M#?zJZ1irjB98_!xApq==N<*fn7X--fJ|P^!L9jTs~B2%E`(N4J^~PY>_5F_K=$f0?Nj? zVAYT;Cb^1QI!8XPHCY3ng_JDy7wtWqL(9y4700snCGyte7KVyL%lc8cfpCqF89My| z+18Yhp)k8I?!zd3jLRBWB1^g2F46MQ%xoNugfM(?QIKYI?Qg63Ngp{8xhHakzxwR% zR~zh&zuV8_l@Ri$XJhu1VmV*cBAG<%vD)CWwI92iP{mDU78Y`AvxKP6;RC(9N4%bg z(a$PLU(#seQvE|9N8j+bsZ)u{K5)Xb#fXpcJJzHxdfYlH@%$fss}Rb~7p1FMUjk!i zTY4@GX7uHp0CW5B7jBaZ9-R2@0q#=jea!1O_!Jky?w0nSjeN&b@$c>ZpSS;Z-T(j5 z4<)cD#{j*Je#4CyC;Svv+hUJlHryME>!rzCy4am(SY2A82lq=0beYUQZhnz&8}Cy2 zYu~8cBm0{c)mMF}V-e(v;wc%uRJAzRyttM%-W5R7jle9zk@fev;R zn=mDKEXdoOoP5{3yKr0JuG6_2L9+=~gidN61ABwJ6aPRcC%-29)1yUi%~u=#zvs_UEd+O$V*egs&6<2f^CQNj8RzKUT zN`g;GCro#Jfb=0Ykx7~Jh(lMq*{PzBA;=BoqjL|r`hok_dl7ECQt)e{SJZ4OL;+!4 zP+2OkowX0wm^J34C`;yo>7<2+9!wPG;s9c&4+hKwSw!Eptom;}1%XC;`R3nvlohxn zm#DwwCLIbA0P)8P-`yFJQyRwc>D7cTMTmHXDya}}Uc6CWG^H~>yocK$C8CRIn=M}f zyx(}#mW>t`Vm>GRr#wrP)HGuYlevp1SIrf)I8Z6Sg)KAoHb}+iLmMBZ2m}o9aY;#; z0ET1EjCRl791HDtcKc5m{Iyb2P@|JNj`Qsd_)bL999__2xBkN`$UoWbUg-BteDROK#92 zy7|0m)?z6x#RDx&)l~fcQi~t<1y6BR!M^6R*=?J@ZC?;sh1+R!fuyMFQegY-2S{Ta6O{-y<&Q#x>yXTU2&*9r|Gj-4>J?#vz$vd3@RJn zE!uRI(YYI;4U%Wqt`)-r3O!vQt{952he44%*YLRN%8eFL1wHxfFDP=obB>t9Xf~sb z0^1VyPBiH0_O6o^C@JIJY4s4%WAhL%lB(m zw&={gt%aVfDrK7{3ypj8{jE~(e6a`m`OhBtA+7F`BIIE<*I>fNT%un*md4es%D?c_ z36FCElYOtopn{XcC6S*Nq{R2$y->R(sBj6R@JIhATm*F}0m!yV#Xp|e9tC~l@c}Gm zM6eIf_c?*Z;vvkmw)|LyT(MO$OK6|fr zS*@#(m164$1E_b|yUz!O*Q9Bi)qnPHnmb9p&vGV7sR5n_H`$o#JGh``*auEKum8g1 z4ZR-3HCWk*x!xwR1J6JEx3+*}EGRo6vt37Fl6v;hw7gz$jQG*nQ(}dH&Q4O`DabD$ zSE;JX)tcpLj;tV!CM4qlsg1OEMW59nOaXLj57^uE@{VW0HR_qvB*+WO!SFtqkM~ssQ z5_v7{9waZV6zq%(*HL-&C@Y|32aH}{=cJ8kk~5(qi_AC+?ly!=YIRrbMw_eL`YeD9 zIqcImj?m5+5kC4m&uD)0dufRTkkI*T%GtR+0$IZH8L|7W<=FNUlDiVQ6ei zjp=tgPI^_j_yKzyoNUJxI6HJ&Q_thtT^^mO6Te$nVY391|BOAZM#gj1lVNjgv&U=v zXxI3^C*@t<%a!|b?AlfYrEcE8-#uAID$gHpwML2KH>~rHrnhcFmIbgiAzoCcwN=Hf~^2^)KxgheY@SGyro9nc`F}>qs zXziie)TCUH@bYNVY5RNT}aku}X4#RizyRPI<4=fkIm!1Z594=N_U-it0Uv-Zt5 zubWHGzxG|Q5jry<#MOipd8V-Def8A-9IH+qSBTpq{34NRD1d?CSRCrbnxxo z{>C#Albi^BT3hbu;#XtW_xMJthY&+D1=_1L5cz7r5$K^JFwtG!a@%5vKjQAk@X)(B zetb9InZXwZ`H}RV`nZhq^twW=X94-ixq1!WX`>Lg)bTYWjT5}CzcG?UIJDO~ejQV~ zAIzQjW4*rdj9PE&(=dj?QElt+35}qq$NACx4!)m+cI+_=FN@B2x-wT*AYA&nM!#Xy zAxFpg-O3mW)997}y7M;ty1de?m7A^qn}Y@1Ci_-v&RE-QX503aBeQ=L^o>VUAv51C zhDiU!?D|#t%YGiJaRAvSLOSn#`>A7WJq*4Tn*l(#aQti2N|sZ`%@DlIK+R3N4UB%J7B6{FL#}z)c9CXM zrpZO`i>djau#D*lM2QAsw-|BsE0;#}*Mi)m1?664e&uiu+D;cb-&h%A;+Bki$5o3e z+y^Q)OI)RXtdGh~rv!ZA_-CNeX>1Kt*l)P&ieL1#Ka(2(wSfUlNR9Mv+wFlPor;() zwHT(%e$qdRvh&!?G>Zxj|P72yV_<&Rs06Yd1i9Y(CY za*K_p%mk{tk`WJ5*C1P|&OvSy4DU(TLeNMp5+#br1$9T}^CRO^bFReWaS8_z#Ktji z#$WTiX64IZ-C^v%I4(x+`r{h%7%`b`=R}6YvtB;tx>feu9g>5Ut1;SjPhz8BDG(Od zlnmFn#ro7iDt2m28(n)W<-ZdOQA$B{;Yk0y)_V7!7HjFdQR}Xxt8sKk3dIbQXH6-- zfhB;mpl&yNmr=?cQVGyDlENWNDAQyq5V04wp9Pw6kArh zi{xLfKI*}|DmgP)4e&ex^KL5Yidk?6#l5|~^X?HstPdkuI z=r#sS5SW~y+W{J6z~mr8o17$aPTfwJD4S?Wa@8 zz6wlDiN^HQ58$;XMjv<}{?VBKR5qmI!Q04Gn1v^*xv4cOW)8JxHleHX`1t>wFh#=X z>OQ4yt??r9!uxo0wIdnE*TUL|J3Bki3q12owZA$T(i4Z4ke|PSNx8T(&o=J4b??k_ z;8_%hpOOj-)yG#&GSwIvjNt9uV0onH2L+iidCwQu=ngkz3=OvP4Zy3LZ2KcHecvf?-Khyglr}U4FO0*t6SG!&06-`YX$^?`x?~F5ffB_B=g`q8jo|{AlI9HZFxwp zvdOUFq~~EP_^_K7eGg?v-@3_6;J}gTNQK^pWdvU$h4%{{vq_3D?gS0YQ4^}d5@ zy*uggvsQFT~<8ZRmLL~;8i;nDO^$C&&~lAul3qm64~RwIQi8R>n6}0uSobQlt@gLZM7k2 zlYE*njV{D?_q>$XfL#XC++?QT;D()5am8Y!mJBvjdP5;|k`I{_kmARxl9)t;4~Oqu zWO*|3E#9z<0Xnbrg?w@p-=la;eX$=6uNcXS;p}lJaBaeYW=NB5S}{e!A+vfJc9UI2 z;rYzf02m+6&PlwWVO@cAO+Fc4Kz5;x-i>dt$`7dc3om3RU(DD~4U)&@E^+e8**Y!@ z)d%{e1aTXsd&2N<3L=D@6KAse&A@wYz__bDr;?9u8BOjc9!s`09^7-fP|DxP;@fql zNmoBd<}+>;T}hjWQ=Xahc4aPNt%}R184efLy!uvDZO^>V^JDFXt#!%eY5k(%wzlV{ zN?kh4an~Yn~zVo|rwhz#q1blPtDA?oXiiZkT@%o#FXFi4i zLs?A;yu)|+DC@G;$WPU7{SW@qzzX?ea0ewA}oDM!lD^3MaCmhfGlI89W z8<|uyhlhlkkN1eHFxS){G%~P$5dchhq0Nn9V2u6dl_3s8@pk00aD}u%Ns8g}4hO;d0jf@Rhc`y8{U$<`qKJ z9j6N!xn6pjX_Qjud*64%O$Y0)Rt~h~7%H##2Tn<+G5dU{K671GRK4L?_ldQ(SC3Tv0D& zTo>AJouZw5fp~2l67h(12j`3za}&Ga;AP^DiY{F8nDla9`g&Y$j2S8{XP$oEMaIjm z+O36G;+!&SvT$h%_kO5UU)KTO*duhYV)?}WaQ9eKabW}-WfaYS_*hFh$NfR3?+mZR zwPy3E*3tEK4LI!g1HJE3xm}klWN|V<1%k58?aL?C91cC;v@gBV#noe&r*fJG-HHj{ z84)bAu+PX(L-?grL)Il(b}JgO?sk(2-F*tbli1-jD>eKW@w!-nH)&?bnWfW*`d2&nb-6K`*g za-HJm382n=1^KGy=cjPt{qpofE$yQtg8WX2P3LV&mZD@6$B3F)MXLJ3BX)yyytJ2 zt=oyTj)4>f((``B4gM-&EAaP&O+a=1FIvJ~TPi^GCtm&tp+jmE81p?#xyOjm4j1ai zt)|omHiUh3ZJaiFc(@;SBNtNLbbhr5eM2}{%TRv72;-e&v&7DD9j7hj?(QX5sLc^m zWZ(h|>zo-Q9|Bg%KRXM8rfV+t!E2HVqA$g`qkO{V^h+0!q#y?&UoXV(GdT<|*k?D< zetuVhWwznF^rw2NkFssQx0TRRPwZ1 z9Q4$U^D`x}<~uP%BgAJBvI8<5 zi%Fk$7muxu!5`4jB;0dlPF_skjg^`Ty=u{-p7)_gra!vK408P0Rw3R?E>6PKHTDkO zC6xWr37TN_0KLLf7mBE3A2dmb2uIuNX18o++Dd_+zlt)vVrDW0)z2YbKu*=*bT2B- zoYm8IKQ=i}Ss@fI;$=4$+D-@>+CmLutJ|NsoDwhTe+M%ndiOR++_VB&_&$R{TNMIN zhDCVe=G?lIt;>z~-PV}!Yc5a{zE-G>%o{f6-C4@lJOOc(6~Df{lUoq@Y{Q(lSS>a22mfYin>H)Zo)=&Z4VBZ4Zke7EUQZI5Ho+ZtlzjX}#72Mk$KUsuXOodjRmqwD4l5Xm#^|A72lK0j zO?1em9Nv}NRnmJ`l3^X=lX8QblSRCC#ClF-E>E@(OgtbRDCZ@1eFro>kEZSMzbW(< zk{{+z_K>M|J~~P_(NGPBi3`Ybi#5$r_$)63FmAK621`%+{leCygR|vsi0WLMC8xrm z+=$Q-yJz5{ozk>5dfMLC&aCD={@uBmnf~UX1d_d5*i}v(!K6Kh#d*$yF;u;i1djQ-5l54_iu-<9D!16xRr(3WUC2bAF36y8 z#$&U_X!|OS!WdO8Uku6qF~7-kAQ;xSw%UowEL%#_C;JX}_RN$-o3aECf1!u*=2C)o z1-&DiBErM>Y%*+(0ScMWnugR+V~34&id;ZWkK~ZVNJ|hgg};ZqR8+^@goP`6Yk%9> z)#_(aK1t3sAovY~q4%m?tTRXK^Ye2n;W`P{(bDCWoz>NS{@s@$C!n_IL#XCfnHrWP z@FF{b;sQ*vH0;ryu;2A79M18xT)Y(VX5Z48!Pz-NtX+qw;ghICdHbx9doqFfC69wQ ziJc}g?hy;?3~0ZNMDf`2`@Tq08z z(}=u!LTxsO;WcHVEzcdg6|ICT<{Pr=@RN%vpUqnF53;w}!t~()*uZ70e9;f^|72*KUfO4;qzCvy#d4Fb!Q(|UT6St}lRJCiTc@G1g=8Wt6 z1Njk(lh0B(PT%IFo9+>h!xu7-E`iQGd=@D04?fUSZtkYgT13TB434+UeP6Y{;9+3D zTJVRl&Wmkih}KayRx^gwZ+NgSS~knxsA&+svc$9M$sT8$U~UaXYQGNNSRk1v8RuEh zFjfxtJ({A9v&Hjb4dkvg*^QqXsSjSRRUo+Buh5a&;2;^61mmmzgXwO;F^Sw)a+ z-$iS~)vC-+TnzQtF-rD+zPsOx`mt`6V+1{pNo_DUj(2(Z%}mdI{Dh z?G>hY~srzJpVA;3eCJ#j`Me}CBk{bM3V5q&$ zK+$F0#E(UyrB{35j~c3H28Pm7vK}lK8vbE*aA85!KJ-;oJ4-9(C^!4nvSh+FjI*;E=Sm`@NxxE<@ zht>0Yx}`8Vp6YJgQAUUs2N#j?;7VUc?!kw)R75~52(qhvnwwiJ5>@aE?W|FUS?^Gq z0mkTi&fYE!=&|ZsdCUYg$)$du34FLXCj8yQ<$sou9fFUr?}!NV=m zR_D-^&3UsiMGFnJEO(xZ3Y+0>cPj+$WQIuWP=Rr^C;|;9$--{izCkl)8McOf_(oS_ zYB*Ce{6Qe-0mOn7VqN9EG5lOAb6ZU+aMsk+Kx`5dD6VD#x5IwiM8!z&E^Ji5$^O+n zpXQBTcbA#oHXSn+xPs;}l9h19?XNJVD2WG(4}2tqY2Vl06XCH{F%<|)4u$ew$T~hE z2Wk)&RkS~h0br;58x*IDgUjNsU18#qLsyxz`{7p{Mq7M5a-xIZ^hm1;ThRUNk6b!i ztR`DTT88ASzIJjQ)(*K^F1xGL)&N4pDdwNu zsg*ciE9tr8)}1{*5+fgGY=9<&3}?6WwvXRY>Jm&g(&%M<4gVRWx%YrSCkuQ5UN^Tsj{n!gI-mV+eiaoUeeUhYHWfE zSs;+E_z!2TkB_|Up)w8kCqngNn~Js|d9UDzh1N&4t9Ib!TnF0l>&=HRDw3*NWPE?9 zS!@!%QJGwJS!6}l9!G!eWJv;$lv zXTq#+_r!1v%Y7U4>5v-KPK2{R%Ym#oJmyb96v$aFA^=k1$M&LUCzk3CTJl_WnmJTg zCnkOo`lh5nFzGf+p?;fJSnQ#d_(*NvN(bzAEnN&9VIpGjzI}W>Xl>2IAy|o~h)?L- zTXN3L0@|y+9Xozz-7BlaBoSQpu?cPg- zXR2j;H|hZ;yWcdc1DCr>QGtoOVfjn!pssfvz13Aq+(y(fOTOlAkbj4vw1?cZRoA%E zGQgTw^M+x)hMS}zk6XYx3dP}jHqwa|GrFgEN-V(TN7@5+v^jF15S=u9C|!7RQ$8>C zs`f(`r4s8TGoozhW&tK{_=FBxb8Ae@rn5P=i8$NQ`nQp{t6(Bf2@(0b zM}^!$(U%Aw^o~Np#^lD^UMx=3EzFj`eU)F&Na={E>@oWAFxYl+XKrrD9G7YhylK?z z-#AT9r*md`FUBQfK(V4QL(f!xN@wR8azQp_j#f32Ah2=e#id6*&u*0#sh4LRNzx$7Pr>|zBW%A??@Bdgo#{z=K9P*Y+$<1)MPh==u6Ofe&4$~Nu_K^!8Posc^xtVj( z4Nfp=fz0gqkQ`;RD#i=oGx0Qvx;|u^fZ0^EeIL+S!z@$WDQBszZXD%e-II)E<8zS# z4w!vD#oqX9sw`&|CuwX`dw0`7bdd3BqR_zsqI24)iA}yH1%}`VZ-gYq-p;({XEN<; zODwI*Udyras9v%sK7L^luh=NFj562BQfhi&6za&xB{e`1Vwbb{(B*5PLPGJLw5Ul2 z%ux%F>gwXUA!%+!?i_0NJ4P5awv2G+X{nnR8C@`XPss8KAy|OCaVGACbWzn) z4qX*zczIR12~k2rEDs|Zh}O81ErD02Pu<@((v(w_kTxaOps0{gMES{A4JQPUj^oMZ z)feW9kP-MZm*o3hJ@oBO6K&z66n(P>^N?xsi;@i?OF(*b3G6y@ffERGNkC875=}8K z7W)}$hFn^Pd3}#YCMNoYPEFmykJ>sERf0IEa`g=`KI(mU1`_&l!qLZNUbd-Xwx-2% zF$;J~s=2$r?Dh5}Onj`lIU-s`d1rC>GuOl6IBoW^54yrIXJmAIaEbG2!xacDc@Jb5Dfq$N~+T=^vndYzOYXbH8p`xKg&@vjTUL_{7HNL+Zd$Q^IQX9hbz zp_&mMZl7UKACD!PE-(i6-Nn%JjAKy%V6lnWt!n-9mqN{`m2*nzGk)pwhshCJb&oO+ zLi(xsZ)ed~_H(sqeoM+6HsWEwuhVO%`;#i)6PL?t;0%aa=8>_XT|~hIQ7mS~p zr)P0}w-Pd$?>gyxxMwZ4t{^*p8+O_z*I4^wJ@O;fjfhL^Q`<~55<{94BhR8EXKI^8>xEt2@$K$sH z#-5Sbxp~|dMD2R@2@AEZu+7PPT0uC&BUQPY#I3nZW%VR+(lU6C+QdV&CC1>y26cp*pw+Gs>#h3Jwec^H`5QMYI&?mSA9k%?yZA znM6|p*(R-7!2=fsX+fe^;m}WA8StLsdztC!9M?jklkLe5Wyd!=(IOi81qywgaG|$(9ygbn?%rW!O^y^gBG zvqw{*=YpSF_V;$D5!Y7p3;a`Q9^~ljT~WuhUJ}kQC6bMMo$}PawxYW3O19awd4uP= z7>!WWyvZMPlcb=?fyW;nC|4QmvldJMe@XS${R&fx^~eM`$%*$)t_S*rXk1^7Ob7X$ z1NZIihNsIY>)=nnC4ETMK8Zu00j|qS*BKMKL;Az?LL4-vi*HDP4En?fd49Ow&C^-% zs!k2Q=DjTqdHEk_EFtzLc~fQ_-meCwrHZS3V=WW=E?K2R-*8d?G9UD*-u-hy+Za?J=^uJo{T$@Z3C4A?70U@lfKcqX;I4nCg4aq5Q$!5R%VQF+6AudXi zu`sx`@%xhPPLGQULVhf&GB*e9un`I+XeqquX?(c51NDp5VGk>pOkC8#lmvMz zubz<=pP~k`kNUI5S=bOX?pc1=o`9W|^2Y-4_KKTTmcD_~QwkvEK>-ab>CQ!0Si${b z-^}!$lss9<%^7N}V^q`*&uZ1WkQOqpnHnG%wG&a!iR~ip7F~WY3iLzsUUGGIBe{wx z)%IuD&ttSPVtwJ!56?piwLf4{9COfZj`@0Na{tb1aTTdU;Y}T>BCpiEVy4@cf6W$& z;E}N*OK?b!T5#!<)q1@HuewUshKrw&w-xv_7UMUhb-1&sw`;g<-vi&4`q+KFJMTw^ zy^EMELN4|edNtNV`*xk81h2suBqhsQOKL`wIjFv>+7KHhxZWR*x5k^BTp)OS=F)Yv zohZ+AJgp=Cfd6$rOwy>s8+{qM6J69YNLgtchO7+VtDJQOeK_V7$9hOfru6rf^=nd* zlUugd{$8z)!rYE}Ia=I&Yqs3QF%FZt)QmCoY82bJ^nC=Iytke)u#=duIi>5d5T%W# zzSa>IqwHtQGI|oJuCVJz^kxint70okuFC09wHE5M6HAWA6Pg?JPr5%aGxpsVy2ys> zh{8n^hAfjkImw*q6jE!>S+Uk7D%b=TmaMJ2BX2FUmNIxHTX&42UbsuRjRD>xKF+C` zJWXue$!H1PT<9edKXdKqq-$H*BRABlIvwR5hz%Qu(o^);n|jZJmw_R;lDw+z@K@P8 z2%nYco0y|e@x_CUF|YSyCUv^OF>z-bwr;$Yufw6OFB+x;-nTo+n zZ{48$&4Y8M7iQXVOfjs#8klo#gOgQ7Lu*wnxzM{1T$k%G7>?GcGWoso7dj z2&3Y%7~(u96Hx|Mpg?BmgJFS+Z7%UPA9`*lq~44Zk-JDVD$n(4fAOm>IbPgtbg6-4 z_RYC+{tuf3by+vVXH;ot+LlrPJM;l_Flwvf`v^W;3kME1&H$#u4er6oo2TJc@6|5H zCCtb8pmFVLjp<&?hi@|6gqlmnkH$aI;f`ZX4+mr-%#Ds6&9K#>GxjLMreQas>;U-a zMVS?I5do6S!E!Hw#d!LLIFk-q|Nig-u6d00@Zo(-_cOO-<}+H9)(}s&yQ3J!45@5> zuA>qohgR1`;sMm%-!IG%PU(vBm@!y@Oo*3n-ovrszA|q$4TxYy{heh~bEhNF4f~)Y zx)}S1t=w_F7=LnBnY|Rzjn`4kSV}82K)mew6g@gmQGMWH6jtvAzl-vecHFsRVV-`k z7h)7D%iwu5MA4A(Z3BwE_CFVz;N0Qp^shX7$l#> z2HET02&15+Cv~h7Z5|$)k9j>vK*dTbELt;sZ9Re;%2+}U3=Q<5 z6<;J&gld~jgi(m`C~Dqo*6}pDa{2% z78b!tA$E}ujEyzzGFOGYpQS}hnP4Jrjl?Pu6AA=^Vq2AiWAxbN2JFoI9oGUU6RWp- zpu9qQc1_Q^-!L$1aTE3srb6k~E(x?G9amhZ%LUT22e#}A3tm_G1nUtV3-KsxdZIF$ zLKr?Jv=T90xi<9@hBmm0%Vx8XWp8$v|8O>WkwstdCv4QN0JUB2K^w&y-J%vQAtwYScYSAV|VJ*9;9!W2as70X`h+U(@E2P1;|1>*|4eap~ zS025InlE6ydjQsi#4$UA)Sb~edttW zVhRXJxP_7XvJJ4IUrJi+A>Ij;dlzjsUM5^3?__tawM>jKWTfwR%gyIXYF@lmg1K=> z8(P8igp)d5a8!bc4pZf4FEg`}y$0A@2hgI);m{*0U)j}2RuZ1jp_ zXvF5$E4Q8Oj8a{SY^QX%rEa?8FXOg$W5YSr32#fL4#juoceKlks@)z>2Rq#m@NRbU z&8!vcy1l*Pk7f>T01WxJNl+*KlG&NcDI~)hklVltI1v`<9b*lcc&P1pzG*HJF7!d` zta51%(u@ar1a@Gbx!kcVq2cQA-P;d1#5rzkH2Y&~v3W=?q%8EgMOF~%_fIm2NGt~i zM%G~!Oixo*A9GM=z#>)>HmQ`KE4?;}%RSG^%h@HkaRRtG>rljBX>lQRu>6QX94|6t-~Zu#zXl z{6O#%K5_g~Aof*#fReqoskN~7-Jk-qv}n1X{kt7^k<7Uf1Ug%HUECw#fPtT1qjJ74 z>9VF3Lo`(h4fB-XQO1{ZZ5w`v(i^mf@dam}oZL$v50YjHc#UR~{*{9yFInb}%K;>U z=5w>cO~d`yH`DHuw9j0#A5SJfbE)=4rOB$ZXZeQpl=cbCVX{m%|LrQZ#-boCSj-5I*w1DZ^S11Xb)bE+ zb#q#fZ@N851QTP0v6qEJWj~E{KUcKx0Wry|Ja_fsb}l%VB(Q}b5Pi|#&MM7Vh+4j_ zZEc=TJ2Y6G!Q3kgA0H`#N(UnSLLZg!F~Q?w=r}7-G=~*ZFDz5m?)r<9IH@0h;!geh zSJQu3iEE-)D-It{|NZssWC-L7+((=6xM6exQvqq*3>pwdpP`JN>?us5;yM3 zaFKM9iHuxSTH!1q(oC|B(6T)+#L8vr z%)8kd2kL9gWpAushD9j!cEUwOZ`|Y$$e8gJ6Fb{2=cTTa)#uxX7XfUAXvtH-?5X8+ z;eCc(ZLQT@iwr{1Nm4w;AUNpTxoMJ~mGbs{UkAKc(mz1fNPB!~E~s)V_E_;uBPBh> zogBhrZ82F8#OW^p+EG&;&p*BB?J^kp{nn86u8r>2wYXnm6f=*9+EWU2 zY6fmyD=sJIyv|F4k~_@HacbyX$8DbUqv7T~g&3hh!n3!vi6PsG_6{Mswq1p~=@=PGM|mGzlx>kPtOt+M&C8iM)JlM;7u&cE?S;JR0DgWL@s z-j7SLx{P!b5D!jg;sF$ZHt#?tKkuAVN|K{8JE?%^^TNPyy6|`j{Cu&UZ)sRQF1IFR zpcj~Urz2_8MoI27*N*@nfHo;ya)0N%?uYLyrya@`sPR!xktno(RC%tE^1hNm*Rxy#i%N%xj}tI^Nko;U!xL|(KdQqSqOHkiuIIn$#s%89 zABxM}j2QG}mT8@L*4@m!=34sYSStJE%LoU7{`cK&eXcIXN8#OJjJrk@dq>(42jNY- z=-aE$-WxJg+Z5%4I_ik(PP89CbA2#9`T38!OD1A<>RAJYF>i*L71UsP5TsW}h#`)m z=qzyNq1L+|-<=mhteLOXA8w2s_{f1dI@N;XXu8fHm0q#Ews|jzdRW7|J-{Q^5a9eyKVEktn>aJ|+I!CJHa%=OXqqYgu$d)6hv&s@JsLH;KxytQs<9Q-TvXReLk#&o4MTn@5&$Z3}1PgLmBs-hgv zT0dEUvg3K5T%RwXTW4zB`cO;l;7#x}=e}xxxEGXY3l<|yFXK<{LbooLBS(GU?UY?a zyZ*t&X%)uwuMZ^h$MLuf2N6Ikj_2v=pSj-tiIn(1c?#Azk{lAw$tGR?RWI^SPeuzp zJR;m%tSS4<)$vqA6K zs?ryja~?mVv^Wx*mKVQbVOd?>U0u~Yn)cs1i3sLWBLXmfeXVV`{-ntl*Hm0)Jgn8X zJ&#qhX4C7=xJ}|NiF^|I)AtPjJ8(}&NYEzW@*jum)SoDK;U6C2fsd_E47?r0Avg2? ztAoqzV#C`_27ml3gPSzIDcD>PZtNKIB83CGdRC!Or7RWaUAb-@EWZ z?}jM8sd~j__4j`b|D3J-@2~%l)%XvTrvLa3bEI50wZfEs?}f24&vAD@t>uGgErDkc z!73c16g~TAW_x~pG7js-G8QU?T_|1pgkAR=7b%FPq-;|$)myprJT~1K;a&y(#of!&`T^-~ z4M-Y=P$u71O!q=hR?q+~svp-Sn;VHr?JZLlrClEI}2|jCYFLW5bvZ~Ef zhH!TM)bM_3V-vziDjBFQDZ6WuJ8OjTn~eBHf-ff_{gOe4xG0IWt&>i!90@5vn^lKd zcFO!vxorsYJwY9=;Q?sTI(s5(q^>iQg0URRK3|WNdYWPd-pSadiA|^Jzd0RgL((vL zzn~aIUs~!UE=JB5J^gtM6bjzLPBfgJD3&TyDN-ZE%%T_iARdeAdrDrBsXRWtiT$i* zkB6dw<{QyOpFw`ERyAf}n|)LqU>OX2*gLu=uPl~+=BX?5%ze%pK7BSIs;Png-Wz+Q zY@{n*WvS*68r28PJ|BPPJZS$!@2rp-PGf(Cx;;~j@E}#O#+gL^ZcKM$#;6IaLq29| zD+K07e4Z&?(?8Hv4}hcjB^u~OSHKXwq7tt!c%sKFY;`+Qt00c|!034ugD9!@oEvNW z^)o~oJrN{p(0I&!r=bz7YQ`v=cSwn`vJ4Xx<-e=IAy4!RZLwWw*9fqnJ4xfCBCTr{ z)%Fe`IzsB+d=VqP`OBtLy&JR@yad4&hXUq2FNzLq60CVCd7J7xpMm2j?D~gyP;(SBk9?r z52$Pg`{Twh1!@cmenWAAwuFql2LrvX^thWmL@7v+vWwQbZqON@tvx}LjdeVem)L%w z0D+v)$7R1nvG!CJ@TrHH-}RjBX;5Es%b()F?Q>CI{bN)4Z`S&kF}MHCR{oD%{Fm9- z{Es}{-xT_X&D?L%?LYm^qW{E;{|N!`pD6qPSk%8vMF0PBi~m^#|1j0hEtmB8PCz9j zW>cfI+lH&Z_y$N>*@=0yymP2idG=>H4>V=_UITUc;Fn+7D(D_0?qR_o*B zS!n*d%D;Q;|AxYx%KQTqxlHkGb1|`oS*L-&>@fakO^?4K=aTAFyUSJCNx@!MV#mVi zePb!pwCG%~-SRxWj-C%3zR)J2Nxr50MyAAgNMV0$50p339`|l@zPxCJ=48>GrN{FX z*<56$G%fBDC*1C4c_=t%Kd={h=V{dKj^?%QuYqpYTGF(S-fla1-1|f-5W>G`@x1NO z?wwdoLT#kci;~#UZQq3314K;60>K+x?}__D>a7Bz9j}6Qlkp9^ z4oBiI%d4pR7)hhLT|1tkIE(VlpDtwMID0tNGe? zS|2v4@`<-(7a?Jp4#*mHdL@#lZ$c<6(7vl=Fl()BU%O_uv8~U?VVj*JrzAaOV|yAO ze}(gCZT~c1EBk~MdG|eCM}0jVUIP_tKSOV$4G(mEYE!8w4IXXrBttKg>DFSK;6QG1{_C@6aOBSRG?FkS$iP}n;3h9~GJH14-C`wC%Y zAM1=iom?l$3@Y@w>K+$qA?jsKBD&c0RC-ZZAtF|(0UK2YUrFoidiTPuuWt=;Mm*0+ z`1iW%gQLoqG*w!(YJk$c^%CcIXoN5%6>{R^JmjGlQgfaYIBJY-28r>haAI=OshA^^ zQCNC~w{4_OtKg?OazZwk*O3)c3BT%Z1niJ~WN^59Co5;vNaYCE1h{+sF)hz(4P{#7 z72{0(IVfN)_Of66H|zNCScyki$LopV0gPTc7!LBo#n8F~4tjtLA%xdPTN%%q^P3LwO6+w6Og1 z{&%{@#M^ja-FF?h3s9YWd(6AJ8inW zd9G_6n2~;f-~{4*xZLyoL6feDwkBYaM3w1*iv<#%dmAIlMZj{^*%Y?CzYoU;ee^vE zR-rF!mcr9=wzXMPj{rt9>0RibgfEJ~XF@)68F*SPS&nZP)`?Mt`Kk;Nyq(?Ia`6kR zTAWLZ#NrPFH?}Z-Nw4!XAD^LHtuLHe^Qy~^3m5)Iq;bhoGazsYrJ`49B4BB_cdwde zs98O6FlmCzak4_TBrQ!iAT5?`wl}Ngmy;6ZT7$fHAxFpWVzn-lwtb~Hv8K;9qkMyp zfQUY%?VT!XzI*P?;StTd90pYP)&-Itw{gYmTHD*8=XoWQNRQOQp-2A7lVL!J19ks* z`)ay2)z;1|fo@=b9q;dcw3fM;>&18;yh`xg!|M{AGXC1x_$gau_3sAFvYB(%Bt%Eu!$p;DanBA_TNGUn*rQHwC4e4;H>PZpX2KC+-!jHJ7U-)ydl1`&c=HK77u`PLy% zr1vv{woYzG)|*m4{ry_@->&hy^23ihZEJQSm#fVZy;Rac+C|}C#J`LAU%w}28O$z8 zbzPNR9g**f*AAGHxAMSZNZKyf?dUTf{$+oHrOfx#S$fRw{Ec7vFLzN~#cLwp{Q~ae zfQ;@n%xs+(`Q0CWm#coYB-CBIT%VL~0H9t||B{wVcOh{P`qi_ZpZ)&UVm{ACYVY(T zc;=2%SDZqX-)~5PcmLbn{tpPaq(60P_4H3%rnMujIw|^~>Y6f%l(R!i7LJ46Uk6e* zseS`!i@HVkGO?J9nVDI0w?Ruo(~`2m$}TWIQqM8H3RLQy;bF-)WU1OBM!Q8c(oF;l z$dleS78pj@$w+7@NEKK+&s$?3Wl?*A_v_*$dY|g0CN4(2?e67J@m5?}25tzhR;k~E zrzO!I?1nYG+ya?kt3w1D0(mmlYkHC9wIT2)(cF>}sFgPR{_L$zje|^wJnm+Ffk~Tg z?4*TH19)^{21z9c3d&}<&$zg_=;iy|E`fW6P)?KHBJIu078X!c-_r%!SKsyL2g1j| zbq~?!2P#2sz*HgoF*p7PI#GTzQ}?lo&$BhMin60|j<;6dKmTB8o_}lXmz}5}Q}8v! zqMk#6t29g?Kf)QveeJH?i)MrJi3R*spH{X(skf!^it_xzJ?>h-y2Xq|nOoK1AOcjo z%N%xVSU;uz@KY?e-f3+Lg=`-3y1I{io;aa0*nuBh!DAHJ`uE<-|G2SGNs~D*T|Z|l zK)#wUGd=T!4)Md_WC7?-e zmq0fp^Tj%ykWeY>_9X_DmVO1=onmkwE%7BE^q%H}vW0Ld#()_7aOiwA26AqUgy=6f-)v%3H) z_y{CA+9chWVwk@iPL}qjKex$)a-g+yH%|qb#}jQhSPt5D5%4drOU+b1;iOXA=M}v|AqPjM` zHr#6OmDwI-s$0^n6l|494=2AF@5clHFw2D;vZUS%s9+cF7I>gUPH=Gb+R|VUi->*^ z4ZDP{Zm)MbE35&w=xQR;xTo#?~CG~ zF9n86!ui$)`}@bhsh5;SUK_oFM^GJFK(a#nzz}qHf*qlFq`99YdKx}Xbt^$92w+>**%lDwn!iWCi4rs&vcnApZOJ%ksh5b)C4*WINl#(5qwdDTc zVawU-PeUnWukbLIy6M1Jz!Itv4*d!eFju-uWA6iAij7V{da5Jrd=Z0)=Z5GeLuG;+ zGUFHA)YOT)Rawoj#)=MWDcJUTisjd7g)7ZrKn!^8l(pff=d$x66BZUSvK!j_siDY+_WK1alIZ1C{Rpw*R}Q)6JRQhvIC-J%3c#e2y%Usz}sR= zWowOv#2Sbq1N?E9;yX9>nJaDe+ExSaWzDOiR}GQ!CFc2=m_Vd?;L}uU6B3w2crzC= zG6}dKU2fC-HbPx3EeVJ~NE*K{ilk?RE-bY5Ome4qk^?nIBZ06V^}jeu5mxb-1}4I*`YfgG zvadyUb?kcWm7_u8?h8IU-U?-OK^rU^$(H&BCaF$HU>}*qO#Se*E%&j@B2AQZXI+}L zzKH2=hD;H%ljb9yhLz^FD7S)CO)aYnjq+pcig+*MVzNGSiJm=A`E7N^v(ZM_tDCpD z^%K{BU%~%e-T&*OF9vhWQ_>PmDJrQ^4uz)sU;oCYC}T3QyaDYE#c9DdzWJ(N*QcRh z_uKz<>Zc1=cYZx9gc!bk^pfk}m;T)w|AM+<+ygc?1IFIM#JWoSA++epe?1xg`6d4C zeE7HX;h(Qne_7&RfD`)51^)-n{@c&^|9t@E|KRZc7196pGd>`n5uX%oJGlq1`v~p5 zIPJL|a`^Q=Hv;dh`;FqyFcNuLe@+8?{PO6hq0>-nr+SfBtfd{%jZjrh#1!DsS_ z98r5Ln3*kI-J3Kz89DTkOiGT<-Dy#a9*~$CB8^KqNcC+St*Zs-@Eq-Ie&M?~J1pgp zSVc}vOAepf$eNOyI^0o>1pb_qFmjSgd+>Y2BnPRM@*pVhpoKnI=(?4;MYyREDtrCF zDm~LtImW@PwAOK!Bwx=zF7i1W*qCQel<0>!=|WJ$eqrae|r#6l$4TUzqY0T>5Bh~UzOP9=F_Kr zgx~5%2jgrSu8Ih^RJm-M7o;H*I5;e3*;j)Wh6_)CZ*EL*(nN~4;_Q2eiSnC)cY>}< zBT}igqf90pQ}y%6ig08BKj}xJVDz9=g!B#Z=ttG>XNJQDF>im{Let7MovIs$%Pl&{}f^zc>% zm3yM~uNoEJe;n^&3rdSR_L$y}&Us$U;EFc*HAn zqVzh_7n>sbLlp>E(qEi9Cc(2CRVEwz0N_$;n@du1p*rg50B&rD?~&H5d5%Kqcn(mB z%w>;quUsogLc%3YV`7ugI+{>RYtO2s<|V}tf^-5#HIz#|X)ygdox!^Z>>*&`cGt@G zES}l>-+y)8boo-EKIzE<@WlP7Y5f3~Hp2zDce|%%xnrm#c z<7Tm-QFyo!^_gpFH0O2sCrfwWBCkWp0{C1<#o5+8dOJR9KBo6Wqs9WF zlUEq`t)8P;0Bt=4VxE|9el!u6yQY;=AWZ^v7ntV@F61^~*}UB~24ZM!6i61t?JC8_CDKl*r3LqxptVx z+~3%g-at>d78DkyRYN~Mc);-OO16p__#6scTCm4tEg4~q1-G! z$D-*sN66p7C-HaP=5H3}@$Jj^O*7OK9~u7D&T&&S_8_ith^wfH!W4P65*ndD_uZcz zczV9-ZZJov2Xtj>0z)!gXPm;4;>W*0|ItW7Cn*H`s%uD%Y_-H|>{>fB=M27YCGX_U z;|@_;y?<&zxdf27PZ-x&G?kJnf6g1S&(n=vqAjES27fmH5$32ZF_G3{$w!Z`iBisFmHDNvbnKzmK=A%$6x;NSBnrg z*&`!XukG@EWrurL@^fA8B3K^Lkpv5sXSZOI+J{-IJ?#qg&s^~bMC6_1HP;m=kD{$V z2ZFQ~9pj`ECHIqX*dHIn$LsiOQizPwANkxxOHmB=_pCYjeWRc7IR@}w# z0Hd{!NDolbQ+m05oB5}zHXc2Yi+ zQf@kOq*b?g8o+0ZZmt0~tQS78mtHC3TiwPWeAnJx{t$U@R9i&OkQDHC^LiTY>iOyn z&rEM)OkW=uH9}D);Cd5$4s_hpFNun(Slm4pPmY+|Hp?~#TNy?Jz&MkTK}h(WGx!&H z*pFUvKftu-?xsk{zMR`uNJLR9_-~7$7G-${ms2&AtI58R%H^gv6x?h2V5-7*vZWva zAT){^=d&>%t`KcMS#v|oUEJv7W`@0()c@1mnMXB|to@%EXLMA=nGr+*VHA)xK@nsT z&?^GNE@3AD99CHpmJoJumtoC72$6j-LVyq$KoXJwnNcA?SY$VZ5Vo)c!V*bXb>7S$ zzjN++&+p!U-h0oP{;RvIyQ;gZtE=m&=lOi=B4Il1ur{MF`1+?JjwyjAuDBi=Zikdx z{`ARhcS<2{v27B?X(go9uLy%;EPEDOPMHA$I*vbZ7qSFP3^C6^PGTnl^d1qWm(@q` z^0*$-993#s7QO0M2haL-cwzd$^f2|SLa%{m!uN~Ec_<^eaY>h=gkM|&r(&=R z+9&JaU7)aa*0kw{SUJA$;q|6{)rNa>Ocbih+gqQoWI*gm?)yt9@ISx&E$u>HZ%3M% zXHnXryW{!}tEo+pE8ZLB4-#CqC#APy*r(kX-Tm}c-7U3jH@yIMiG4j3+7oRQ7HsGr zzvJ;d$lXe40x&Zo8*bGWU{xx^T|_B^X{kEqS44^ZA3ROv@>{g~Z)mv?+$C*)TVUrQ zGg`tis`GzJ;N~R{&8oa!^l_(qGLAP!;V_A{Vtg=^Y?@~c+u2hrNPKX+Qp32VZMW;` z?pQudpmbUdY|Hz|eVqkS;^|GT)i0^n#V1XX8AFMsLnYp0uiLU^ok>SD{$PVLF-O=b z_iJ=4k)Al)YYxk?nB12k!a!dPD*Rf&7J3k6qi;Gg2{0XWtsO#I;)XBWuA#tZQAlUv zIa^JaiBSu|lMul4>VsI0#9^coZgJ&B=?|o9x8J^tCnK8|-)5c%?Uuc7*<9cCe=`rf zaIj-iUy}-~83|L=(`xuKz1r<1=Cmt_^tutl3mBr8>xvOZO=X4~C4 zyooreU|cfcSEDw_(<@t@8?+iqaNs4H*Urzo=hlw6gm=}u3QJ6!_dhzNtg8z@jJ7)~ zVGCBzA>IP~f_+c;=uR@6(@yfpQP(?&Q>4^eskcv$M~+{1h%H2+ktTJOlYSdCha5fF z<66h(PWCl=dl4kKW=w+9aQLYkH(cIzQZ)&dy;?ReCglC9;aMs#^Fpiv;*r9my>#8K z#@V)dn-;%@>1kFO%`G7jX|8*%rB2;{(W&r6BVmnKD2D25imYJ;tg;7}R#tZR12jUf zPy8tn$_Z3`H@(F+a}2=5OE*V0#jMrLamO?p9y{E{B(g8J%W0L@@ob&?R${Rz1Ei## ziSd%X=$;l=%FsN)U4|q-=UB|PDvufuMBHPh;+QogO|LT)5cPZgtq*lMBk1H|OkB?w zdq3QCq|;m|9Z2vaoO2~`moqk*^nEo1j9s61u#3fE^({hoSxURzz9UhY^5{KsRMlkXOH#%{$Cr=)o^w-etqaL{YRHcpiWsHD`Mm=x}CquW6 zd^E|vrYvv!W>hgP|yV*|U(K+He#9pw@5&NS)5kmbHKN$_Lu(DC)%1gNXvR0qL_3ylNLt0uQMdsCr;HxV!w?+EHmW4cpATb+JR< z(&lTEwom3tCvYIjzW4jNf*uPCMmg{kmY4N*GUhfH{du@L|KfS`{pH(Y97T;v$B*0I z3adghtnw>4#JL@Rp8i<6hF=#BsH&<-WWox18se2Oe(wcMD|9z^Ffr4nc_@cOluwI=v&Ivv+de=R=fo_*evkj^&i-E&sC-U#(Y(b!Dd13Eo zz%FTPeRJp0-np9~diS$WDnpc;CU#c1#SjE_W;sooJ4&qVB(4w&rUoLbJKC*o4M*wK zMhsoM!Yi{Y)6Hw?1q?)&v1)X_rU89sZt5K6@0Q9x2Mn~^8hbi{W*&DTzbfLStwzO} zK}4pX@tHV(6Sl4%GpJBfR%@c(3##M9#;urPc{I*Q!+ywdh|X zU*4lV)>&ykGlsA;Zo2>M+h=_G1@B}nw7{Epydz2J<%;9AlelxnZc?T0@9)yHRw;&z zGGWBHusGt~!fw)G>`s{@R+^n&`pOp{VpO=zGBh=t+=za5!+PVj+sY?sv6#I{B|l1g zGz4|Nn>}(DuSkLN)J*XHpw*OT@Aeo|!NKwgPb*+G%=Dhhe{t!|I%l@+*}+> zc!DB?q)?Vskx5Tor>uJ+SH;wW_-M{x?y~-*U{iZs=xtUj5GDi;$*N`HOhQ#bA(5uT zN&K^W>+MGby&=t)_m``_FC|*v{x*Z%Lu&ewS$?M_v}N}`am+gbp5`g6gM9bApKJuQ z4li8Q+czdy-E{5qa?2*f##_lM9=JMXEh!P=PMemo88Fd~WpjZ8X844v8%&iQ^mLa( zl2`3?1=qlR14$GSG3n8sNa>DHdnvhbDP23UK1RDRz*5HZ=GVsnt)$IMUCSK=R5|AP z*1X;3pAyr-DY;KI1ktD@_$G_?yKrRC^Md62Ce;eM2Zbe2j-Ir3H}a&~Tw!Wh>yz>z zx!4-l%*qwhAL!T!pcw6F^@j}Fi}Hf%7>(^~XJ=2phM^h!nLV%grmbck8}uj-?k z5f{YTY!NX9pKrytm1V4Yls-0?VV=CUFpqQ&%dv+}Q|G6tA~Rl!?C5sM{RQ6>;g!tM zUXLBi&XcC;ksTldU4gz`efGBB8dwlMO6cjGX*!b<@QN$Lnf7^R`|{(6UffBw&T9XK z(1g59SBoy&(7(du<48+_e=O=trH9G+ND2f|tFB{jCoIo)IpZ?dwmMD6xykD}JPHhL zSy`B_d9?v^3I^3MXnqjf9%uG(!acqCSzQcA%?uybRRFXzW}I=#U(z4r(^5Ylb%6O; zJ~+6+H;Q8-L}8%lrXCnac=bphT`u}vnWHM?a>Zafi5A!Wbfm`#=kR-Heu+#r$Dfr7 zO0qb_)a)Pi(a)RE_dd%9W>8F#&y2?W=+>?+AzdGs#C7|FX|ezFZ;fJI;&eAt%;>CS z#(r<{=h3*Z2SvflAH3}NE9+^w3dc;&ue2~VYDt7YCGL*%`J~k8=Q_4Rg~NgD?S#qE z#=5Tge5@U4)#VkD4TQAaX#YJyHd{YUpYHaR)!I5=%^d&9N8jv2qB{L`<4=ekG0Dh{rE~QYL-+mFp-~QZ^RkLZEl& z9GaZkIIpo2S-sXSA=s0HxdD$VLVvT#>NK!xMa|7(B+2pc^Wxpt%hO83zo#?id4ccB zWsgik+KieuZQV3}A>yWzI$w$jVZ5=ij*APq~~pmI+| zJINF^^MUcoxPWJ&luMO}@edW=Av;Fa7+OWq{HUT#d@gaqyyr=Mckgw#B5;@W+Q9_y zb6{B}8)J#8-M|u@ts5s4DA=&9nGx9cU^rxFi8zJyeDw3{_(7);*x*aNo*koc3$FOF zD?d<{;ynden4O*ZbkjNom_FJEV3fKI$>e{WJjjw2^c0Huo^3?LGU()Ttmm^d?7c9l-KC%zX5}195<-Ol zYNf`}&{w;$$s$|!hURwM-60${h@Dx*aC}*Jc-&{LH@3!#5Rn=MR&CyUv?wM}Op2BL z=uEBER^tK2gn9i8D`nS!BiPtcxEEvKHrl9+%4Vt_JLd1G*`nSVM+WTp7QWt2f&VGd zsYq%L*h;xLfjHDjtDWa$W>VAA-ad$H-KzrIf4a0n_#gmPC8mZ~sJD+~7BL$l6~mSl ze&!9@Q`JrsyC|?x-AMPQoP#L9_@XDzSmsgK#8w0CY{c2gXlXTL&R3JQ;5Cj~n3-;P*G*F7_ISEX1<>>yV;gH0yj>@F zMzLU*5`4)9Dl!5(<#SlB%3c6T_)xvZqIECk##R;vzR%1GM+>4e!h%qoya1WSKv%nv zhRe&Y@-jnD!$UPYd#rWBIMcTzNX50Ga;PT*1L7Xy-~ytl{Pf#6Mk~@l)06Dn;dFP7 zDR!ze6+fcsomdrq;akL5ivaQ+SLkkLo5x+ZI?LNHU5D|lfCGlcTzYc3 zG??AFeo(wbD*W*aUW^%fF2qoJo>}D^h_>&iz;Q0XCCcg#C=hE5P>43m4W<1U6y(1Y z;K#&-6NrYQ-tVBqL#5}3S-*W<)S|$S2%bAlh?1(Y*m-iZr#0Eqmw0mWm zq8r_lvF|uZNoEn#P7=Od<3fn>yblmpXs1k*4C`>RO^paB&ot^B*Ei8%n|PaRrcdn< zUD@hnnnCm89!-2t%X+DKBKaohAYKc2FzO!Ca6N{7feh^;v7t@OJ>^pOS7Q0QexuE< z?5lLT$F|Gj;=FWOf6qtMwEg87HwFPb! znBwZMrNHJE`yN;QDXsDpevBoA5VM-97Cp zjVmW?<82%h^mZ0li=qup2_ToZpHrczFm+h>A}VT=9rKFBf{G$&uscSD&i#z$OCf3o zVo}a@Td}S8eOY^*Cz82TyJVAdOp37JnD&fN#7gCp!y{X=9SlvMg&KvOfl{8uv|bm? za-bQvPF@{_V^MB)@MsyK#cir<)7(=KQ)Pz@ActGKHPkpg)7ET}tlbJIim_Z#*E^Vy zI)G2Tl92UjtZ7qxBUB)z6WQhzh*joC=aM12UareV!pGQI2Su8Nr7 zE$nx9q!*YeR$`ELW$QBD>V!j)BT8KYII}8ORyZE3a99Fs=GPLU=62fK9P>jbbAaB3 z9(#MP0iHC^a6n%E&Qkvd^|1Heah;B};-y%NW+Jnldqah*aZ@b#Nc(XKQ9HoQ9oM9w zfkbevi1j4p^S~5wT}xa5Z@-{WUincuDqG%cvT8#5vyYl#QB}ngv`HOgDkGxoFxK54 zRIm|8-CA07k?`7gyh##$W}#RHoY#n^)f>bE@CLh^$9H$?8OT8}nb#OdCdIA8@KEuf zp}R_=9bLyO?9pzw0`AsmR6>XIK;DDJ8;hTVr~2V;qxZAVQwn@6oRX@+;!69-?D$h6 z;no*H1lt=*)jW8#*4ny5*~tJ3N$2%^GnbabUSJxpHx%Eg?j3_SRDq-1VRyK)Bz;PR z-@`B09U5yE{ocxI-R-3+Dh1&I`7ep<3ryeF9A=V^cW|)ts&T#AADzT0a9jil(Eaet zVxX;#G9l_No0e95r>&&hCmoVlMAJenl)YlUcjuWM?p2Uzgsc z6-Q;Nk&-TVt{k;D@op+Y7!tYXmdGFQ`DKEreMYcaKkbal7mX1=3dZddo5yYn4PJvJ{ghubhoe`K}qJ z@0z0tHXT2RTN?<(piDX@v@-)ybozu5$qe{um%6j_%R{y90Y;ybr;+>guUvI}cr>$T z<1*=EGN)Me_pz2!n$ZPEVV2j*CwX;IbGv-bw6la)GiZ?F-a9o_$hfEqM>nN}dQU<2 z_#2m=+Y5)F-%`3q!W??%FJn!qB=5n9FMl|iHZn>3Y0cLrDAq?&5!Zk@EyarD(_*JD zblOBmbgdd^uHgw!>IaUuZvC;-$)7II{q{(N<;sOg3pe0#j{2CP-xeDv8K*b;s$z;| zhut2i`EcX(uu%#MriiV_9G!;T;FDTk{hLnoZ)qb=l=QZ`enGY;s<*{>z5d%!M;<-6 zCkbg5Q&;rlaY?>Bo1SW4L1=2`Qx2vPvH%W+!e*j0O(UVg>VMqa+y3}qs8p!kmhIlD=)~v zVqJ}w*$#Ctd|gYTonYOBlIxrT_C_x7f%)rd`sLb{GVLwc(~HnTp@#t5g$2xz-+{0b>r@mCFQOKH>0QZja90>Fta8qU<~FTmRENeI zb^xIr;1((i+Gni)F~$eUsa`b(mZqb8U@~q@dvSc=c<(8rf0#$8s!%zAo=u88F4p2k z2uWG%j1*oFHGU^#zG-pl9v67mDPw7F$M@L6?6BnIzKxJK=ER7jmVlB^bqI+EYa?Ma zashrNHgQy_z~FWDN+Ek%2?>Tti*r&fUn!UrPnp|Dp+V@9gx~5nbS52T@fklFO zTesV%^p~2&bnOtaEbYH}!T+yGf5QfHvIx0aGxUAnBMWp^fs9H`bzIX7d!yY;_a?AOve1A4N`98ghK`5TopODqCoynyJnVAIR1)oK$F5yV}>b1V) zGGajV<$C*;C7Z*#aEBhWf|Yjq<{LL7y$RXJ84iw9N53)USWz^7Zt2(2G-@rXFAs8Q zthXVn)VYe$?yCLK8&|GUv`VW(e(4|4#u{ys!P$3qDD|mVk~!SgbN6_?ORjnK-8N@3 zC!O+`xP_ta|7$(|`}6;XLlVeH-5cB`_n@&G*l)IOzYw@N{$agSz1vQ1CvrP@CQ~e- zWX;0DU`9{$0@2BqtU8qk$+L+3y8W7S-_Xa^{@=+XxuCF+XveTZagremE z{yl#yB9lGM3sMqqQEa7Vd!g?;heP?SbNX{C$sPH`E`cGXbvkkT3lAj6Z&lD{wu z^4{Ak;Br0q9ZVyKh|d284(p%ag8zq}ee(C2^Ox0I^STzTYQfY}gy)P7gz=1aHEyoq z2FstYQX$>CSJ&TlH!EEtyCb4!OH_y5f?_DVvPA11UC?%TmJ9PjOs_ZIF0d4M6cT(@AK6tf!-nh7> z$04I48+Iog4ed()juX(w%}$~xoG8Aau}PKoJ&_9DQ6dbqKUnekg`G0sB~z5bMm>MW zi<;Rl^>Reba#Aqmt$BFm6Om1kTg^>+fjITvlfdeqHY4@*4O>JcPHNJI;D|um_#&zl zX;C1&OYDB*7HJe&CE^73^B2-1MjCSL$L1$uEnIs;uXh!y8g{O6Nr{ICnHS{5rf-7M zpArNyEv8*@$#)!aN;CVCp^=-Dygr2KQ2}V(jaVoz+8@M3DxSKZuyK3;C(yJSWQDEP zaS%a^V{UT#a3*1^Rc8l^m0ipIV5c;amD2aCs@DsoD(?U~JmM!0$^!2;@+CbjjH*Zn z@?`Pfqw2&`O8n&L27Qq9> zPubYqywt3?592|ry1_k>HUQi5IAx)Bb{NR}+KQhiM%^z2V-g=_CO63wg~X|CTpS9- z)ZN=o(q!KjmY#qUi6+;&$rkkcx1BkwP_^bw@T1w7_G8L-M*(lC$g{m$YwdWgB>p)P zaS-+?YbiUC?kSZib7~WBsC4qLnyFtHgGLP}-GR$|dg27)6T4WV*-V>gTTV~>Wv7nw zdnqzRcZQB*eW|L2=gA6~)E#Lz#VL{0^?-amJ8AC!> za@@{Vh7vSGI@1(g!(cXUVv#dJ(t2vFh|Qn+=XU;|TmKt=G5)%_FQ`nw!NV`aKazXO zwQHr$Su>)jygW9H2e*kz9>q!6r diff --git a/docs/images/deno3.png b/docs/images/deno3.png deleted file mode 100644 index dcd89492033111844729410054f7c688ddaf7520..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17540 zcmXtgby!pH|2HB%kQ$>?Vsyuc9^H)Y?hXk_WrVbJgS2!?DprD}ODJ#ioqo6zkKfSOpfGY={!vVk-Y)>VlS12eT z;-}X$l$<;=;Nr7a+KMtLbw8>0fgjKuVCpawl*adakw-omE{`nXm5tJS>vGlYI3vZ|dsQzxw6@ z0jRIn1Zz}HD}@5M{&wdlE@4@8sk)8l7${LprR}>^S>fwq z>x4W)Dp`4Q;$cuiAFp}ZGc%7g1TrgD5TUBW?cMwDVeMZ`&%cLLq~@EuR7Y1=@agA^ z#Mh@^Zu;w~PJ8}I)*Ia)d%Pk35OQr)-LvUp@i*rdN!ru?b9~msL*neJ{!K{!>3{F) zDcwFL&%fSG7_`rIV-{Kqe${x~x)e+8zpUljG|Y?~wRmj$jy)ys)FSc`493*0NiHg8 z?KS4+Tc6UD!W-PUnzJAs&EzJn@4l-t?C`d0eoIGYM8siwM*HuK*81;p8)?3%FA=qv zAGqtZyKCNe&TKHl#67$0mjK4M+x07TQl=PS(4OU(@EezsQU2ML`p2qYZ_b&)WyV(U z<}u)`Ywbbf^Z5vSQQ>b7dDLnQ_VQP|KZ_OL(^vx!Mi_L|s0bD3tYsJn-mayXHE9W| zVy%Uvf;$NzGEJE?4^kidAZ5W}{7H$!v>je!)XePTP?d})G*9=*{(3dY<80+L)PTyf z_nCFuiXX_V8VujxJu7QSdyP(yo#@qfmVEiW=kbc0d_a8b;bx8d9WFUT+oCf&x#@CB zCOi)FO_1f__mcOL#;d^>Klq~2hkJ=qS$Wij^f)uq+GWe>7&(&YcIa8ua~OlJ4w%BT zWQrgmIf|B*-%nP$MlZ&tEHEIsxJboG{wZ5l4kqQ~f=Dz~+l3~(^AuICWZ1Ga25-0w z=h0^>*k}1f3PF{hxx$(l?W@B&cnJ?SiE#y&*NRB z@#g?Z&xF<`cd>xG{g0!h=CA3&uJ|=LiABYw0}<=imH3Grlf3_Kze#O<#h2oEFM`DC z*odNpI2S?AdO2|>C(o;@>rzg;|JGghvMuPo($zi>K*W`BiO{4Z1^{!q9f3`}^+N0j zUV(0;j(JvL^Ik&#XTF$0==FlbB=3|hxdrP)a^ec5+VO5dkOqzavX^&Bf)Lv@vU=xv zW`#+c`}y5reWuG?UHXfSMRHCR=iGIMJud1_;pGSW@dD1Eo0I&%D2LB5sR%ImSTypW z@9=304(ARw=dI&7x8@sdwrL-KW9}#EHGR@|#$QPL(xD)VO5br<*Cq4e3-pR1j+EOy z^Z{S|x3u%PiG>9>CO!>E(B&R|&t(~R+4W~PYKw;hgY9U-ms?eO)upmSF)54ELg;1& z%9!wfp1b+}BO3XlcHKO#_(<$n0d#bbMx)REybnPwtg zN7gx#vFYdUE~hj{3nYRd-QdujvFsmjNRcVC7e7Bp_52CAfI<(RcI9>!ug%sw+E6HU zgG$D%iZ30tou_%omEJBnDE{nuF$(@TI zCa)lh^V$2I=-;E}Z464+q`z@%JMEi^VmbeYYS1EaRgK4UFX!FbR%8yRVON}Uwnp6+ zjJBz9%__`q#U?NJr?!QbTy?VIR(IAtbi^;l_$wtmw9q4;ANu?%gq_#6t)^fbF;!2a ztCaQ0<)G0{C#{dFGQeo(dfP}bX@eWcM136R&uS?C07Yc-UgAM zmrTi!&Loob_mX!?@xX=v{z8_|e+D94d~#}E2!hRUT>{m!uS$e;niv zC2Z4rZRR;vYdXc`B>P)$sD_*ViZuAQcdELOR{^%j@u#VNzeMqG8e+$3)f|zbxRgRQ ze;#hvfa*V8V8Hzaf4L4=n6=@EZ!h1A^BrMR5!db07Z-vjWw2L0MSlWAiKy>G60#J$ zE*9BN(;4{i@7`g9qO--OjOU&GVQm{EK;A!K@>8kLXaxm!o%-1?S^UVbkeUoKPxaI( zS{59o4Yaaz1q*g->G+7=!xjIvW6qG_*C6!gHRrM24TMsH=)Z*POh-R|O&fZSFAg^i zxtj5s8pV?br^{fgY~#5TWYEz}ebmH%UavNDf&Eg7#E?Bez70;0CZO}J1r-?p6pT1v zJ!;gLb?FZjdKPPw!LV27UF2|i>GS<(jT~ZVfhtwhwV5mRc=rCs+O82?^6_?a=aevw zgHNJ8Y9?tv1{sD)gVikU@%bz&8Ya8F$c+|BkhYGO&zw_!X>`_yNgLfA@;BC{{);{u zOgkAv{3B3AS_z!q(p9u4uy&4?;7i`9k5bU)I=wxt@97rV$+8*HH*sT%9UA5C;Rw7w zVg>f*OKYCaCJdDnhTI$!6WNObjwX&UJqD>iTdBVV#qah?%s;Rbgn6dWtPITu`TYEE zmrSY^IHrD_l900o*4_oz9%PC7I$vB&7RL7UT{eb|Qb;CZqkb$1bY`ocyXs?}8ct>T zmLDvlzLjTc0!hyBj+?z88&_6=Pm%Oqm~|U1MEMzNvlRqIz?G7Q?kz>e*PK zHa_O4cPChDs^f~4WQx<9W?~d71N17*S z@zB57Yd63KoM5X?N8?kKjl#v|)Swl=n$|%An}CEi^tPx0O>0=sWOx}UD~mn9 zEdP*s{n^fZHz><1Y#RU@^f2UEyWbIx)J(yOJqaykf-0NRNUXlS%FKwA8Du{Z;N%J> zLD4Q>11fdHTrAVvcdFxu;mE@8<MHXi}q~pwMPFY=*T_1cPGT znKvcp+n?PbHQ1xH2X^$>8WMexL2>=a!MLy1YN|KyS}u~tU{dL7=<-6ol{xGjci9zL z*b-{zQ0BtZ-7~Ye;!{HUQJYki88fV0G49>ToAB|sfl2DZE7P})oVCNBkaWuMQ#|XG zAqcu%rD3c}zT?5i6sO&`8cuMm&w(qA^sDvHgKEYp<)f)`a37aG=54ixKZ;U!$?dnu zxIv(GqQ&4)pU^3lUmBIAo8JjpeDm*NFj4FTihNr^6>>Sz%DOE&VSDVLV2{uq-otGO zzzyRSy4yBVL!mV^(saVXiJMY@Upg-^@}|9@9`lF|q(VC^#e&2pCNL?YU%VQZVCe=r z;W&}8d@*4#$tbezj$>*#8<;l=+FzDu1ZV5v_)+S~=P4BK_)X#mzIQ**_Yer^fNy}S zv!Sv1y3qbK!w~#(EKQxCZIwmx4bD6gP zx7hIq8V8sO+U-x(cGPS|Y??qRYZazk3rly4bf1Vmq^P0Gq=;Tp{f8>dY^D@k1AUAqZH zFS-gEA^1afd`e)iBdQQouUmd%-wGN ze4w_eB_VuI#o;)k9Y7(9&sEfv;{2^zJo74hnJ9Bcx_N$vxA|IO>Y#QzsLue7Bk)F&N8cJX_>c_-42hKa8xGg1Fl0K4$^I%p{pb*NQUhWOo8R zvLOHyV%^&TL!uR!wGUzhGyN#E@eymjIaxSE?_eemaV=R#An; zbZwGp@!*YkZybU+j|~;5kVA3SW6R2DSF8dqZM^|~xh|kG7#XDDj6Q*kmqClQ^+bP* zGYU~yA;W=M#*C10g^|7!L0Id|NByY-sVw6rt7jzK$iFWtof*~t)`~w0)MUn?1WMAO z!Sn7ndq2fa!99O|c&KUaqP{w~6CqAh30-Q(d@jafP-94+^820CebJx4;xB&bXVaLH zrb4Aa>i!mLChP~mClDjb2>j0ryHjT&D>B0jkuFQDiB%3lJHGpq^7oH7J){9qE_*Ce ze`0>*eR#&@qGM_d9pX2L$!7HO1p`>a=~2>y3%^1Q-(NP>+2~|7kcufW()u}bhdccc zP*+ESF+bWyk^+j;}0JXvf(Q;M5M5QL`5(P<^bQf$&PDfgZyqvl zS8uvmu2=jmmI{|e7joJuK~vUqX8w3C8HOBUr=OdlL{6l?tpdC`4VT-$byO7kZk&^S zi~)-0$}du1^d8MY6hqu{5UNX)_(2827c`#r3aEC^H1dJ*D5@ zw{}%;)aRm@D@pR^4b;b~A)uSX8p?E5C}g)kSyuj$rAa%*5Q z8L&VF-gu;l+V`3iLY6ww zdG~wfQ}KWI7f1lTw(RdW)})DWjiXq#KT8suKbWbG%iraOzn7CEatuA;&mdBS|K#}(n^r8*7quz?-~STe z`s!9*`NHT0T^OK&*MrklF>#Nk<%4cc#oWJY7I_!fttn9F^eA{~IjTOHkjcRsmjIw? z9oX5DZp{Q03i6B2-#f#jyqtDQD_n1X>ZFs9Bva>OEjekX^;FGRN=IFB(1u!=>Wp zQfqQ>;5MJLb2q%fqHU##&n8g2KVK+!e&(~A2cOALO(k?;lVQiI(^H06Zwlq>(-Ejh zsH4eiQZIFicURlRob5&W1calscOJfk%I}>Sr%=hDL#$!~r`BsKBegwVn~OBCJJH3; zSDfTA|8?_$@v^#4jh-59NrK9tt~$w&;uv;%jb!lo3Qb2!dZCf7 zY)}Pe{Fe;0K}WpFU}K7^6koq(h4hGTwHfGWgS%$rAnCHci@ozC!3hr(c_nJnWbxVC z-wT=_Bv&qdUg9%p!(9=L;HHl6T{Z~z>Tspdv}()4^CVWdUd43OEf{R}IT-Wp=G(|( zOi{NSVTXjc9Pru}uUpNlCAYS0Ki_J8?4LP?P+7d6*cRXxmb%`>XNU+b23UsTRf-@X zm`g4_WaH*FP!OQD{h;yJ?lF+v!{7&b(1 zkt-C?244rLYe5NLC0)-}GZ;2aJi`q3b4MhS$P8Z0C$WsK>&vN^#0+`I1?>(m%SsPA zZpmyvsH&EunQ(Zv{Y8_VU~jg%QZ)sZoNHB$J5U-F#3E+|O=fMXbTDrS#HxKl|wwoT#sp&UIoN2=j&DL$1tg8U{O9bz>T9^U7vzpFwItFVrA!6OxHFU)o$Gb-$(^XaE2Oy6JB(=|8~Mt=dn;XSd()LV zTODj%*4oSVAS3##PL~xKR;Lf9fUJt{Jb>0T36@lZ}x$?$|szO~HLk5?d zMlAcWEPB`V=S4K(b*@@pgd0NN(pB#pYUn`sw22Q?fq_J;*>Yd$jB!TKbQp{!VgBgn zSpB`Wmc(uA1YV@_L4{J6pV1FpQO}MI279fha^OZ6trjD7yGm!MEus4gg4;&QKA5C0 zSj-9I<+5+~@|V6+?jv3C`bNDZF(>5f`g}HBC6mE*nM?oHchaVvzCIz#8W6|ot>S2<1=DAf5|ATs-AZ!?Uk3C$jLtk#kGSm zjj++kl1u9%p0lf!Meh5Q-xXR~olBh1hB-@8I%~h?_WY0ViUXr$m*j(u!8wXPiLWwC zzE8^Ve!Ik>fSyrLLMlVioesL7+d4z}?|6`u3Va$Y0SUv0u{wKE@|JO#bw-4*{dYZY zgMU`*5yB28$#hbeWVcq22CYmEd-Gft@IABmIx&fox;m?;Ny(?GNaYpr#P|+W*LSl` zqP2a4!zD?J%-6O`XB!;7|NcjiCi~()Ms2u~72&O2|a4{Z3=0T~GA=67NE3!L`= zc9%*&@xUU@z!Q|E0(eC0+gI+4%kcJ8-ZWhHawXYz0+m>1b*-2Pfub5@-m9P3isw!A zlh)5ItjUaG%dCIB0B_n*ZyW6rhItcYT`%N$PQ*I5k8Gp|UT z$Mfu)y$RV;>=SPNy@H?t*R+vJcA)8@pmX!*eOmKv9c9jM-U34dL zjNuh4)DS8zTu+Y=!O8e8`S<80#tSO4oGvXyF6Qe~=-dvOu)FCVQDaxmrOg6dRMKe3 zxt$(ZMbhv>Ns;pEe@6A`Z{lq?`XhhfB_MkhBq4l~Z*=|Sv2k`g3qHRis_xRvfZzxU z;lA6|7!L{pBp6Z|HDd&NjF^H6Y z_}DW^W8DTlY#g~`cx&X4OqB-RF;a*tOETmx;xEfBC3n{m-$ci&-DS-ae)KRJetR{? zgjGN(um(nqfN3!7=j$kHw1caEPThg*CMgM~G-Hd5N#z48bT7k}rf50~+kal}eX*OW zlI=^A0Qk$VHN&ZzlH@~5=aQ!E*aN5<5?8v7!GFBHR($8u^@gKtSC%q!Ypuvb^H+aL z_fS*BV7vE^q_fLw>rxGt8qeA*yys+_lBJFvr#C?38wYrOo@<{`&Nkhvf~48P>+L7} zVA$%KEwUNUKO%%pXe;5FAn4FoTW%y)gN`n>CeN)orG_8rS!Gdk_#j@0771GYCW(i0 zOF$%d8_QnjdD2RPhqSyj?{i}g%4Al}W4ii8D@1iTuvuSBs9uw zIp>F)8N5|Ep!E0z*$RiKq!oG!Yk7fb5yd&w#EiaL918F&pu@nskt2w|w9?Z9eJU*s zjl?xDHo}8oWvCcK05XiUk(YP_V`hs35qOo5KKd0oWa|^ALQRaDu-I35J>MW=_J)UR z^fU%j;&<$Hkh(15ZA;GKAS&Kku zS0*Jyc!BQHx*2~5RXp2BV5VE7ah~G^t@`qe4+hgfP?;vVzg%iN_8X`k2y?b8uhUHC zW+4YZZxm-WRn)#zU+SvL|8_7^&mTbG9$WqRA}i03l|y057)+ax;TbS(#;9@74ybU} zeF*f8v3zk23=Se)EFCM8Qm=}c7bivZSNDq8vB{CvOYx#Of+q}YQzdi7?TIA~W)?sz zlz=Ar4=B7W3h`uw8jT;9mw&BsIALCMHnLPKE}? zNU9M&Z?k2EXZR)yye_2N=B}4yrk^(7OG$F5Q3^WiW(^h@;<-dpw=)fk+^&azHPmHg zQ@8yOT;LhLvGbj$vIK1qYT-;)$h!mR&iFkFM$pn*-JJ23!rxXC@-I|3feH{K{(-vJ z)?*K`>TM|e@BOb|g%ynCD!L=Hc??q%%+qhlUzFh|5ZQntLrK|Y4sn>ET9r0P&MLE# z_X__bfz2|Y82B_)?m0OUL4LUsd|0MW*pGn=E6>^UYvLwAO7#BuYYrwLvA1_H6EtS5 zX!gpt(mfPFG~9a2r?Zf`b5<^Sx){fG0I74?uh8wG_#pignRzP$Z>gVn}$WQ}&cJlm85^_k=`pvnISE%vsqanw^&Aa#TfE;>cwd7LH!EW%I^+8tUbTrp0Cd zMW>IE5WUfxXF9Z`@x`4f%x8A~-qYpU1_aBtaSFB8sVjEdWO~DQIqEX#9Ov17LF0=3;h&txdtEZ>67?;e?BU2 z-0sW)dG}fKzv&8ozxLqtf7&)M5)OW8CE9Ag_q9cQ63md;Shd_%G0QF4w54Q3SCRt0eH{c+FV#@w_F8z*(>JTx4HPa95N z!xIW=08B)PUj9n(eN%;f#UJ{m41ZUD+{2(joUL=L&B7YZi=FU^ z{3fgN7{+!TwDz|E%E}cl{UfOQ`BGzztE!f*8KzBmW8rPY&>R{AE7%2pQILpAh+I{r zgQrLHlzfTeh>+Dp2ttW^H;tl4?DOn1;E(9vF*}GdK{;sOq@1WW;6^~RY1s|xa4i7v z6|yM7t;9M)_kHo?KeJAs_q7ePd} z{do`OIyn9=Lh95yTx#epK}k$d8KkgAj#l)1h;lUglqdiJn_JQVXPGwa&vjc5^+I4%siCL3+;N`@rC#d?eah#8 zQ4x$P7{1UQL`vprL7iwDHDG}$F1@oP2r57vjcl`O&$Tgvg`!fXWs0(DOYaKJ> zRSiwGGy^jV8))(~#XRpsVtT0bu~sq@q$z08K?xYbziLdi zyOWhID({kIZe;>SlVxYeT+O{q+0TjYL4v);HXtVMgpl9Lte!7dC=I~#GbRHYGfeiL zCBv#1_=gc*1x_8}*5W>W=Rk0qQEw7+qB|{ERkX2$7<&nAJ&eeI@61&yHTkh=a5p&~{F!VecUX zmlRPtwPOhw7XPqnb6)}GtFq7%XYu5bgOw)UyH>D`Wizl*it-!0xO}@q+SiER$p*zM zZmELqlGmYv(c%aY@hh+LYwbC3(53h^C_fejU%u`2j?Nj5{Y@aq0;Sx2A!nKSr=DpB z&u*_ppYZtWb|Vk7KJb2fpHC<~GP02r{(8|!e%l((m*t9kR z9B6j6jfGi$?=?{~o}Z{qmrIyt2)fKh?6@v-UA-4SSGvgikaAEqizcrqdhncjW=ySQ zVt#u8Fe1rQ{Q4TfJgt?1*&p6T+y+7C?Eq*VIc49AC&VDE*X$(IMQHHFkOK*KNkC^h z>2E=YZQw^&-M(r(%t|iN;$%>b#S_j4PCbKZ)B#OhH7(IRZL7v1iaC(EbjffwG=zdx zgaW$JEZsji zUukg$ZA6l0oTahZ->mp^-?%ds0@^zBN6rlZ9A)H)7wde~=ogO0_DX=B74sy#G8^!l zzu>VR!19{WGq7tas)DXl?39sI;2F+o4W=;FhEv+{Rr1pv`8pk)zb)EN#o{tVLbXWW zR>>yloG`L64=j;H0iu`|C4W5ZYQfxlILn0LCsCUIK(@d^K7CZ9rIx{-P zO6yP*qEa&aviN$w9bxp1`Gmv`R}C$a$Td}z;-nWB^Khc%-D>~@xQH6Y^-fal0S2Pb zdHrOs+NV+>pLes<@bv|;fq6g~6sKKcCehgpr8M45pi&|FYHjJoA=Zd^s^Ssg?yAHs zx1Z&eA-pn0vmeHi*E`dec>V9;hLW_8-Z7q~EL;?ZG=`BtG_rW;KPlW@9RgSl8Kb{K zW%`xZW+)o)fWg3F#tm?v+hEi7Q;34x%YWGDg95&487v92F&vJu$;E*~ND6vUtw_}; zC!xq*VfX;hQZTA*e6<8K{-}9}M+xaJcaF@O0SIiOPCm4CEbZL;FU!wL>=k#>(V8HX zTug(yaKw!tH3*%eghsA(nFpDR#bsZ>&c-yh0{+0u#-oao*?S0_u(c*zycKrALUok`kexmz$Daka-ys6 zr@^~o{ld1Md#Lh96bpyi@66 zj1xPN+ThT;nrEbvN858e0c|y_~7nAc<8{w^CL{lEHJX&ZAUn z!O|z_75Q1Z%`|9D0~i);>>~NijDc~$1R(jvpPZD!2Ah)Vm1X5K?d{6@3(X(* zD?gB?tut6qa>NgI%jS1F}zU5?w}3u-kUn7fymc*?ilY7Hwn`G zb*MV{m2nF`Q|hu|TIE&lP2TS|ilrGnpZ&=nd)e>1xi(p~w|(`3N(7!4dbe*iRQ)|W zCEssRIW4Pi*IlH}AA7Or@nhMPre&*!oV1CA(9E9*v4-Jxcx=5Ia3mVLkr^XU=+LMF zJdPqNtjq{$$;DqcsE6m9%HHEzakm-B$?AQ!!Y}m|&&@#aX_BGY6M|24CE1nt<78|L zy4vH=l{j%2SMp73e+MwED^mNW-EQE&F?{V(Dp*m1{CPMfSOW>XIdKa-5M9`qMPnk0 zjkxs;7GjY>!D`n=oXWr}x=@g0+h)#Yfma74kOx9aD}#U*L{Ln%5eSjuBV`;C@@2pB z&=7hkH_JxSoLq}*nAF`Bb5TUh&*K%OM)!I&SM9#ICd)K)qD1kX30{?v8rbR6`gfcf zZeKT+4y%;GZDt$klBy)VPmrn)Ot=j^G1jtFgEOtKP;+(1&h7u~;hNh%sTf-9WbT99 zjMK1=b|dXu$N99!S8kfd#Nd)k-WDvbI7j1fwfF2G^g;7>&!Tp~S^2qzg)TaM2t#G= z^e?LOc%Ekfh|*Mvq2VpTg^X3*=s-@ zfDI&)JNlW{@vzwdi6P<*UbLPFS)l16Dkag1{iM{<6I#P{p`U#g4)l2N~>@mw7%e7V&X0n~A;03<3 zyNwWIStyOil%{Od(Zo9$|n+XQ);Mkk-A> z>+$+Fx07H0=Hc+i+PBJTxuq|N__A9+Rcpnx?L~>iUKpe+$7)r{aqBp)VWnAn<1c@EJG4=gi zj~+`0)Z78Pmz|4fOnp-}G4NdTj$$h&2}f#Nuhx zOoW+3+vtE5T;ACjF)wMEwaOpGirOMg=$B{VJ_@h? zj|R!=i&=zUqmF47aOd4!TUHFrc-`VL>VMTNd~?^MAWBX={#7K~wL1ZO0UPcdvOM1! zwsHvWME*s+c>(h>6E|Q-XxFZs5)%6AG+XWcDk?v;H=o94=5tIthFv{*tv4uwgT~q_ z;@%EQFL)M+j{iliPUxB98FYw0a5gyBtu9Prv)>hIu23&x{$}kBEA=8|g{GrIO4d2D zA++$9guaB9MM*}Lv&Br*dZ$Ry->P3Z4os`4>xkFHwwvGP9#m+R)X>P<)mRbQ+n5Zx zik2tlXeCoVZ`hMRpcv^dxvon(w@o$Cs&Y>4&5w>e?VOEVGXbrPd6JkJQ2gz;H^rMn zi!3Z(-!UY6rhrYM1M8UGVjS~SFz$>B;MbC*aYqT!aJC8(^4J)>R^4D`p$K1nB@b9X@8{qq+NoD3MUp0a`-P{ z`k&bFs**~-*rxCmQdfsYXp8X3B?6EGQTZ;^ep3JEZOa^Df~_*6qR6GaFNs9)x_%2L zoYVK2uuPzUSWuwbkhIS5EA$zuzz7B{PHV>7nveTW%l(@?{j!$M*_^jlKaVpD%vuDtv>ci6H~& zsONBBW#RG~ABuYE)3Dl>EX_xfnrAr|k+(pX<(>PagccGB-Wd~uO+b+~a6z>DMh#qk z(;BZ5wg74uSYxAhmfxw%l%-39QzEWXONRd8?>6ng(?yC4!Dgt(JPyujbG>BWv6ap| z1YO2^h}S)f%r^t$;&*)^3|FlXqt|o& zekn4G&DfZkP@4vr^MqRjsB2GS_YMKy^q?T#y;V^XwkIdF1$j=e)ZCI6$46VmWcqS* zD52SD9y}@UfU^5pI z5VGEHeYEydJJofaBhzLsVC))VCB~=cd-DtMkA9wuP7>uRj_k(*anT?d z%FAE>dwj^h;Vwd#<1~a?iv66q+Dj1-0ZNtIfy0TCb^hD988_Fm-|z5%-sBbyR`jCG z@tMHljnygvTwgvz%oq?9Inizl~fHu4J&+T>O9LcT%cMzhOx@aE!0W%$`m z2Z4pa2u~zAwNf#gT_3~CblG{+YJl7cfx$Al+baNj?ft2Z03=8Z5{u* zar|8udz~yHdgL6Qk@=oo#z!|(O>#$k#HG}~KjVXda2mnsP!Lf5!*F$9=s}~{GvE6^ z9Wo5ZY=ONJA$dGv?xx5TyZS_9LgEJBfJs*i&nKc1Xw7j`@DbzqgH zdGQwO0lWDQqK#uXCztXy89%}!wNpyp)D$5)isZR$VL{szfolL zzx~cOj%Qp#qIVJblS#f(nZ^s_;e}ZkTo;c8|I-c%{sX-L)BI+DhKcYv{c2w#Haj;< z%_w7)6?Z0Vi6>iEX>CZe2fij4?q{_(`+Ztc&4ugS zIBOyg)0Izxi__eIr*f*vznRoPal`kcIa80@(H##Yne#pXO&BLw-=K9}L2^4+P6bD%eY1ca-M#%uc*=+IgWvFxh30M+dMW5i4 zeY)@zAyIF1*gOC}bT1F*#&@h%&8X#_i5uDE1%}Sj^8HthmI2nHW8X!_0%x+*@P%Z^ zzVPbnmp&oRWkx=;SvdaYlJ5a6lPpd9?Na*rJ zaJkR0&&J7h5|Gli%q9~uhY0*2HrpjFGxtzFiWua0@w07hudFD>Zkby-= ziwJ-n1ljeZ8~{$$54&gw)P7E)pgrI}bH$1j7~6anhleBz@fZ8C`p zyeh!Y+Z?IqWOdLTdOpm;;6@;}oJS)OI4|yMPjSWUmJICmLdmj;OIyj{$zk1Tdl+!& zN(Mswku^LCq!TW}>g}@*KXUAr*jltiTzARdsnt_)DlIwQkrkh3y)}x)3DGaiK`)#A zUhsPilH^vKJF)!-puk8UOAJ>SSg^sH;sIZXyW|QmOVAJ1YOcn`8KJ%Z%2t{#(tF)8?Z;2b2)Q+75AM z1Ts*@#-yGpDyug;T`=vxjt*}&t$out96^R?9E7$@-zZ=;__o!o#^*VThT6b8$k-gO z;j(q0ugglp0ue*k9oYYV*Vd5Ja3vi9Gj!&j9g|jmHQ~tM?7f__@ zM&5s~kZKcoDT=&d%jW;352^Xji$}d>PQ+l^~m4P?J}UL1Ox5MkN?SP;48KFk{* z*||*iqkx_$tA3KBAK3tV;x<9CtYt*mVH=WcgAjIi92}#vz9TaRJqb-#&NqNw@D+wlUvP<8oLM0Hgi0)KJn+z2W%_8^LDhkv3nGz zm-Qp50e#%Dw%wiWN1~0~&&!(>a&2-11Mcst!66N11j0Av6AMmbB>=F@#UC!G^jMkU zSPmWM3dV!F>ra-{EU7o$Q_sxaOI#a@z?JoWD8NXA1R1Na+^Ag|mqIB%fF$g>dhX9X z2UO!HsC8oLm?K{{;8NJ)u7=#0EdWb7_@i24nQCTK{bof;;>eL;77Y-}YN`=@A|mQf z_n&Oum*`)M=M~^VL7_+kbhj< zX6dNQ({ zFcmwc!JpTjZExe032sGHHofVqx(Y+k9Rory#EhTuqA1|-=p7~8FYYx>Vk z&p$H^)QrHSnd|nyCtY?e=i_f4b$({^E7JJ^quv`N|g_C6D^@5jUsSFKkN zGc6DY6Hp^I>B&={VsRv#=2KD!sj~e-G!Ye*g%bdX$-(pGF zZ3(625SKkqCd_SMWgQ7V4#JM?)_cReuMTGT=uK1YK9^RY(XKjX_o5@7@@ZDeqRGL@ zvV@)iTYB(EAYnZWu#3`?K(X+?{k`E0_)9gmAEcGK0qSuS2!E+CN4W5`xnZhsB)u@D zGii zef)c>iU}l$1GTg%l`v;t*-Gw((GwI(i5TlB20%2xz_AcWwNWG zf87FxnKC1oyP@;_)ve*Ugnug`T&855wlA#kjq;(aP6_MCip&>?R#EVG!rtS#dW-gd zvS3$U$Wy5nmXg-3h46Q1JQ&V zFDwx|iL5KRDX+hmpNBNTs!MI!e>s`20KBk2&~R6AWvFi6?g;m=K1G!sfCzN>dc!4( zOn(bJ<3}c=Y+!W#9vV4)hwDO918m$p=$I+oRkaB6O8*;>&wZ&Wx?c*HLvW;C%CRys zg(ek5qBod&#<}-ATzej24C>Fo*O17Jt@@{hiV1~wu^}fu%$a1x@CnD9BZAkbfv%DK1C7l?(RG*ZlC^3fVga`W7LQl zC02(o@ul%ca2lF!gq^f!9z7NKTedVIxef1!r|ACD+M^ISYiLN}Z2#kjScd-#;{hE0 z!@MMBKL^2T5m+IjXV0FZTeogvi!HVgDNzcE14==0gly`*HBO`?ED9=gKltE-u(Ljv zOc3Z5FTeb?4VK4t+ifShcI_&O}@tOG%qF z2FD$ubZfj(3Q7uSR?7jR6qmF?I1rJUr8VN8QczMR5Ep{D9GSU9H2@;Qj$dYAFDb2& z^e6=-BP#U`^`c2!yr-XQ07PS^XbP~-D@7z5NVd3 zQwmA}sl;ED$f(Rw(M6_FG>He+2LaVGm|8$eL8&4tmQ0;!5*I8PB|Lcv_%@1vXJA%W z{=c+5s)$lhYJ^H$hNFY_b^FR!B{+4Julmp0qEY*PZRJouTixPkjiqSR2LB(p18<-T SF2!R20000;?n`bP5IxDEY$KI|jUfI(?NC z0jZqCKL-A=HUUVR%FBb$0PkTyAV6_JApax*eg#1B{=Js~{R{&BmmHW+s09ebKWP+z z*FPUA;P;Qt-&e3)u>Yh0yU7Lr&pqhWpQPB$EIq&rti60A1x3*Hy+@vjft}Xv73#xtrL$MKj~j7c!2kR#EhiG zeO6BF|}8k_Qb6_fZ!9r%l%)ZE$Go`;dq)zy{3 zm6gHH(TtIqo12@FiG`7cg&vrK-pSq8*}#q7)`{%zO#YLPn2D2-qlLY*g`F+&pL`7r z?OdGsNlE_{^zY~IdOBN}{t6hH= z$M+{Qp06fOcGfO`YNcvx;Vi(y_g5MJr})2>;G#0&y#;N`56E7*8lY0-$V146gV~laD0sajWrxW*Nloc^HDFq=Au`rpd3;o*Y+n_j4gL?}bP=UCPf_S1ig&Mo-)g06lxQ||$`uh6NSp47+s{WxIey3+fav^!jzXpQ| z%&|g3xI(y&IlNN4qtdS-CqtPD<~Og~((I7kuLKjweC|28zZ?H(3+8CSk)EFZ8zi|@ z<#@L0!<8rs4%J^zOh{5)U0l4-?P{m1*rzn*@A0~Z2W?@)^D&Z$#(}TG^+5;@|7QXK z2Ov%oW_aJM&p0|PjERk{e{^o;PT}q4cC-c*P9~zmnQM6v6tW2qfJZyAw#9k%>@{K)5$lOG|QWtelGrzkF~}ch2_RpJphU-!E^*Fk!hXc%AEQHw7pu2Pc+I z9*@2hpWT(ID^o6$N`H}d=pX*&A}>FdM4g!S_$idj@koC-ap?8=lkIeOx#}thCFM^I z4ULEMjgGBTJQVxLG383Hr;^#Xlg;8PBiFbq!_eJI&e(5O7!w zd|q?rOw_8aDk36==2FAyvqk40uCX~(L-vKEsvZw#S`C)${QT>#UoHXy1Cf7k2KoVn z6|5n}gQ;SPK0Kdlt74k~giGQp8cj{sE929{muHzx59jOr-X~&nnRZ@-BsXae9F%t_ zR#q79Z#>s0UFwsb9zKsKV^uPQ2`(oYw@343j{7vY85y6dbk|{WBby-~G z<>uz*P?RgRTka+qj+|dgl$#N>XCXX;#s-mvdbynrv1rxk$jF>}*0{sN!=>11tc+PV z8bt;oN-Zsq-XeWEQyHGU-?K*H4oc0QhJG;py)It0!QeDKp1Bu}yth%&GsaRGXsD?T z3`O6SsT7;70aF;-?ba;?&{qotZA^&v?g0Iv#tP{BGjZ&xJGsU>QT?Ot_bgOa*Ph-3 zHF^~Hou!&+28Hsll9J<67d(`2Y0Pi;6`6DitAyM>wdOU3RlR);E@FZVg#Hf~`Ovp# z+38m%)QHTr;v!I#AYO&LyStGlj5hje=j$C>;iweaoObk@^`E@gWT2 zY_s9>ctnZ3y}k;(nN1$MB>qm75`A`mv^-||qaq*xOc0|Ylfz{+KNPuHYEfRRRJCgI zthT$O&42dnthRGTl(Ag9O}D-D);aWe7C5KIBK$ty`y>a92frTd!R`hI1_B7(rI2tq z@O=%h+ry*q1;4Q=vph=ke!HO8s>BzB+Fnrm@g+hphW|&A`t8w(@^Fj68Sa5F!kz2b z0)h2WYYumv&zWTb2NSDSqhT`OhGe{3pd%q6F<$unySVA|r@yw}?kcjlw)tXl_=B2~ zLaV0pG!K)ohOL|dYum8s=)0S%9)4F%P2B5PZ1$Dfbn}I)8}6xyKHHvo<)%tl_)JdA zesRqP>tH5IAL)jWF(Z{mx}Wn?)YQYfzPlcd_r}WYZs8bZ3y$uN=;33qE})i(&KX+o z?@X=4J|TVhKNs{nU7cJ)So{z4zXxvQmgM!oiF6oQ%76Vj6Mec^sn?d0^oGuy6ylo_ z;n^rsA&dyxWGAdC0j0Uy9vsPqlTxWYpc15B)!V_xuRrHc8a!9Sv3nq4tmwGG#Mno`0}O-+qLd8q(mEhWXyT+w7a;+TR66>d_t zkV`WR;;w|@*-jL~R?MrUCN@t)E9&q{>g3j36bh}vvxkNAl$8~Ug|^?rD49@=z}x`U z;SO_OsKc9Mw)#{J#WU~2Qx??4@AJEOk=qpkS*V7&@ z@`UuigwV6;f1jS8HA?9yFdJ^?XZ7L|<6=a33; zK`h@ICPVEqEjDC5D{^3Fw~Cl+t}aqsW*NH5mt^***P?C>zt|{yc<=B$nYV)}!?@1< z^7e9Xm|!%?Ykw&foxV6;Rez~J=8#)g-sbc$v8;q*5A!#%;`RprNKIt zbJK5YBpdJJN5sZ$`vxz|y*uQi5o&3;oMfWE>U3_#-2laGFJgF=Osg)w^>kC+Qb(Y~ z&8bL++6eR0eU5{}G~L8*8!AYKQZcK$gnc-6UPx_}Zk1-Rn%K1Wu_jA1aQ!JJrh0S> z(l41-b&x@Y!J25}BUag}`gGU({dvA@_@@Q{t!zk@vt!9Im6KV>H z>BP4^DjZy#n)PSIaix>2HeSB3^K8~rfOvl))sRK2%< za3?#B%zipQ6#V7hfW6Nt#ii%&ba5bteae9Y%P6kGuUBZF%MKJP9E8sA8^917WA!t>V@a-pGNC&{2-kUm!vf3L1*Sg8V`;K9l7{(0Ck1glPm zY#u{-WmQ#ij-Ln)PbLp^snKBnY)_FeUa_X&Uw%_6Zg_4HJ7Wz!!B~?5x0et*0GpAZ>&Y~>-9FF@n1BGWlS+KA2T_;2kXoXCQlaxz1)bn zYrI0vUXILts4*qTwY4>%81B5sIk}Y+zBZF%cJoZur`Ij5QKyi9oEK0l^ST^I*e0k2 zNe{f*73}+44kQpt`O?A1iuohd3ZEt{9GgUsioA@+ldI*bRcRZT2@)9QF9HpMEj{7^?@j@upU4!kzjc6T_;0c?K-}vS}jz>-~Nn$j?@+} zJ02aq&3ZfRMtPb?YL#X*Rrn(d1qGGC2rTnqhZrsUtKJAIMgB&|{<&2Szb90cmQ$oe zlihmnTo`0I-uoiE%KX+d92(@Bg8XT?+?%j)>|?T22)r3%SlED-WrT6}HD=>=B)J;w z>HyE;Wl!Mc@7vtGKFj$^`dXpSpSMiCD-sje3#657?a|p0oCvBEn5hI5(J`oc2K|@T(-4pOSrgw#9pUw7( zM?hZI3r7CpWa`!|0MM+;%SfAorulB^PE6&O%+`?(UGsDlq>u+lpYkicG;Bu6{d|E!bQ#;H0TDyQ8AYSlF zdS!(IZzONLfe$TasA0LYH{vElfVQ2RCu%026Ox}aw>T6L3;6WAR*EvjxKv;6uyP&n zniP(fE+2OG?Pw|7N%RxlaBRIfo#R_if_9ayPO}|*4Be2xbg71}@NmR9vnKJ=e=&=Fg{Sl=4VOZ~<|}m=J({f7f#<&!U*UU(_Lg zduH$Gpe3j1*D!3eJ~Szbamun~ni|Szq1SZ@`g3x2s;&s|*y8U5&d5 zT1@H=VC6B&I|epoxqzUcR23BVqsH89`;Fx70U z^c!yR-%JHOjr%9Hq;8DdhlH&7yRzL_VRL&R%!-5At{)7IAsH>h<5WZRsavfy)}`oG z2s;#mErkdmZkK_%SrL6q`-75JKtAK>x(&zX2+a04yodjZ1+@Zq**Q)S9Y!`xgC7H=` zzX3YdU8sVBM3mo}2>C$~k1ls~@X?v#&)!~+rsIlWm>|*5)@!|~QjosjCGn{@O~}oz z)Ok`}<8#w}703;5wOL2Pzy#%Ej*0E=dxvoTJuh$_=k>q<_hj(hUnZzAUm?yq=WPu? z1XOQc6!pQ#j)}&|e0c6tzpq|wH?7yp0{!P0v*E=yYva3Jmp&Mfi31zn^cO6l3Ri~; z-FzsqeJIv3Ijw)-hdPK(U-pQR=>70-XS~&m$A&CM@y!nnnQRV$Wq47bmjgXS=Yi>v zkp9VIoh?Hhz88dicuGnIyIw9DerB+y+8j08>z>>!0q)=)AZtpG-#>FLIJcFI8^+Vd z_ai~)L$0Y`{YEuyn^<*?7*~OVE3Z-7LL%bxdv(j4d~`74uv_(aGiQ~{Gq}?ikU(V# zQ>8U}*t^=b{|d!?B>iZ_{R{s9hBTj8aAfhtYih%L8WJ9p{@{^SNt;88y~mWUKO|dX!eCBW4M|Gu1dB>%Xn@ z2P}eTq-AiJo2%uCK(-yvE>>zb*iKlA=GQ)kfE#i&H(zH$O=YgPeS?V*i~na61tKyg zbv=dny(T6RjR}H$&tv0v)+P}qer43UKf$V0?;Qa@7rH%7@5gZrJ8^Zt9|At{$xl@A zJ)XWiwy2L@D-ZO>SLyY21f~ic99UrN|i?^ob_iOG1;(+qEqS=Gjc&} zM6XtJv6EoC!LAW73HN~rO`GZoN9*_f&wq#~sMKmY}8y7b_$ zsA(k1W#nb=3?$=kUUwNY#kNCK4z zr{%Q)ua^+Oiiid7y+2-(m`D|KXoy6>)$H`b0q{@)KXo9_Ba%eI150&Ep_fd!F#7TG za2%cbT5HO3hWYuD1RjTwZ!DG02Ol3{0$I{v%pPWVmW=OOuN4H6z;r^07UgKVhE;$! z*zc{L8bD)mLT!Z`g;xG9U+r64SJ+Y5S zM1lY+^(>%R1F)19|3m$JXP*@4VgmuiJ2>GVz z_j1BtzkXF}jB&ACvlmrFG(>*;8^GI|LVYC2m|(QYOEbNZjTKKu`^%~M1MazJ`DvGZ zac@T?C;YqFfB8Gue_&Vgzi$6RRv|-$I`yJ^srp^&8@6wH+^;dSCiDIW#%&>wyI{}M zZcMHHZ_beEAQciAdmDv~e`6FNpB`6%nDI^19alr@Kd`ZoFeMO+6+YLo#QUdo|E_2t zpzEs@tL*t7@Dbhk4{rSbXY{{)L&xL}9N{u?3~CKk$wM&L>k`&Y8Z3LLh*IwUfO{|qDwC=M`2 z5Dyxf@L#yzO9BYjdo37{GyF3FKuL)MfpuWnQbPS#5;p~`XyO!4R6oVP?J-6no{)gT zmm&RE0&L-o^|eN5eDmM?qYy-x9|Eur!+xUD|4M`e$bd6W;FJmVKXVY|Q=G6L8y=4R z=kR}fa@Y)5(UJeJI%`;??u*jbxnIB3l+}lFB1&bxTj~KJ%mW4h;HO+VAH}>Y{LN|x z&_-r;FI~S@wQ_cL>C)0%h8&8j!x3;y`pw7vGeZk7p2ZKn%mkB4r)98Qj??S?d`HCP zCKY4is}>TTSX6I2i`k&jU|wTBQk$b%k#(n1ssf8L?bY)d43DLzriLk(K)`MDEC;3h zt?@N&G&+5gvOOb%rj5_1PE|P=q|3eBM>6pyBM1mI1AX+*3n=-u5@ieJw5qN3fY*yP z40O3hkibwRtxii9a8}mk+KeiyK0ix& ztYVBho)I7d7~4n>0%|nuyBBJCf9%20(lAu zklm0K1_Kd$M2u)zo5fCk1$-$*M;q}$A)6IV9+ zD(R)^afBum!&0xvlnVLNMZ1-9cU!zLJn&F%r@PyTgT`EAAK@PIItOMh-%uo?FD;H3 zI@x+I55okfQ&8o+-+q%i3%`rkMP)@NKZMwgQ8q25VdvMHRA@HhvKb$RE-lR#DU7-! zj6#8}d)|gcMhZH-0(5h~)E2z&%VK?KFnv(LHSMP6##_k#q$Rr&Y?WAd9iK;S}B}qtxnfp zkP!&Dh?$w=RTq7yg&>^oZuMK9ZjTdx8`am?+G$pO9}Bswt=r#MsR2!K71Qb5Bf?N+ zA2#B(aQx~xb6=tLNg*tDiWl|3Rr>z-iu=n?UweCdTfDDzYG-OTD_J}auYI9QYbkF% zuUzX)M)$|dZ_uYBT?4)YbYy~v?(CVssKc*cKdhepy*(#AJY0_#2r>}ItAW^Vg<3~Q zKtONg;gs2mVsxyc`CRkJtN6#`bC%t5sl277Ws?Gde(A|_TWm(g%HdRw>&2SG?Ip=v zU@h%pdDYj3(u9PW)h4@CM%{iWhI4s`^o8j;I`v9zQ_}-Tz0KsYR8qn7Wc6|lBXi>* zBjKvrrp#9w?GwJxFYIRLUUUt{#>PRxAuICVAD^6PXpW~#Zl(?TA~9)Go}X@#X;and zbONMae=5}3ZTz4xg^?TQZM5a~JYXZGRju6N^7Tn)2{9k2$b64Hm>QeZlB(toh^G^5 zG@Ep{0M^{%)a^;P+vRd*AhKCCfZRhol9Gx-=j}mnL4rXL3}`9nwe=i7)iJGJaRekV zO`0iWpG=paEe#G0Ok~*-VLqdqn81L~9_@ z>@ZJk1bQjYo+-PDQVcrjOLD_hFa*u=n1R7TuF3BhxTLrd0isyFj9N9NwmN7OCMHp< z!8eBj&AvqGCQ(`=pdqi^-^KVn9|-wP*J^-ph&2R7JjZaM^e{}A&6}6E#`u!Mt^lRa zEze=kRIZX#&wvfUnprBPPqsa1M?K`p&Q@7?rvrP-t+)-Wn~3B zy^>+_aBYedS)wg4KR+eqn}kPe*GF_P{6XGnda`RrPP4VGp>`^!* z5x_+?TewP=gTm<|Gi*&H(H0$`xjCtj_%=1<8qED4H-_8vk@o zK9h4Od9N=N8T$UWK`Nx&sM7KsaL+Jukn zXE9+D2|<-9u7x5S*$lEaVPiGXH&`wrHG8kFj+GgYBv^59vF0G#5S(Q+SXva9wdHVU zC*8s}m5!%0Ti;pAadZl70KI&NoL1A0x-|VY2Hq;BK4H}^*9Y5%lX(JsaT!h>>rz_Bi5;m9F2InLh6yZ@+VK!PN2c zK&3-wl3|aG1a{|vzs%0e*f)7UZuxI*4FM$63_0b$e7U+ELHqRSlld+XAANeNQP|tt z$;irLvuf>Nlg2)@<@e}*cI3Q7I$D-XBbFDbyiT3U5rz6Kvd!ytMC>eYLy%1>{@yk2 zKk&s=V8FN7FggR!+Lq(}bZrtGfx+v7Spf=b==H`EKwVz0X*~ODc7BqhuUFbCFtN5)z&}+(%Vb zp4TRqMPkrWss+}Qgx;W0IT;%lyri>o`Db(3iWu2Fzq~v>0xcV)l5)bho?HqUvr_wW)0awT^#w+OPK3MGfsxuRyK&9om~_W)}nka ziOrEhhP8T^u&AEiMMs+}C^Zi}`>;SbIW!=KD&8eDh6By|V!aJsW`-QNH$YMt8#}hq ztF?2z9!_QnB*&$h&(~5g@D>Z(H}8Z<>gaS-xOjdGyC>lJ`Li&*ggpR@b{Smp8XeOL z45C~&|7YlnhW3$tPPOxsjB%Vql%Cp3p=jK9AjaSPiuqNkTbz-C!hH@qlQKpA3m&E8 z^zb-M&|`m)n6|}JsJ;OrqDz#qDR$ozOh|KZpSE8f@1!Z;wf-HPse+t*nk%rDX3O=< zexQMWLXhxeUztttM>?}Hv#JXaUECoOIbe_p_%69AC`d>M&DH{69vo43e6yY0Y8NJxqcXBrHZDmO7eWon4V zBP%JF9gK4ruo{p~-WGG(F}cuuM$h0fiEzJffJt-&5=R^$LtvkJd>1jK zTj(nR!II8b7}-e{#|1jIso3A6R&@qL-4jg{Zd%$x27TQsaFJsriBxIfyeDT`=1k8} zg#d-|{naL0VeEX&Rr$(FWTK4+E~i$F$dnxAuX*KLJLmhyH6Fo75-3;>OH{4SXCbr% z-|`?3aOQ{}5DzC?>{ebk5s3Ic3#=+3q_R=k95U!^ii_8H9+1anF3>DZ;tTeE(u~Eun z6Wtz>jJDb=LzPk5YB`w2>eL*-NRZ+^1cGg}DH4@S)OcF0X$i683mBtlX)HCk`tqLM zE1hY)?+irlo+B>g8w5g$%m*JZe1;wK+M5rQrL<>Rt z%B0WhgJ1uZeET3@p7(TjCZ_TAJD+1YX8DAwjn^gg?Zw?1GDv9 zh_JLxzK?}2%7S{Q&rf*5A|^uP<)IrKs#uQ`$uvlA%aU8casx$6>p2`O;2oibxkp!` zhnn%=&Nv0+`WQScOyDKFN0p06j}#*ErEHpxe_rZ9K|+N86Pqai{_=3%!!$_oGQ8bK zhrGH_VHN?B^5Zcc#>hWk`{|kvb--a=EOg(dZQs5N90tSAOiig*KlC&LBfrD# zUL%Hc_D?gx(#mI+bH%}0SUq`>H=j&l4-xU~?;dWhI4Z3I(xva4lkxQfLlBc4PWgRx?>!?Ojw&%OzbPDwo?egZ)l^#Jnt7|0zuo2VrB-{nGo9X zJ}y1`$XGlky0^Zs4Bv=*BIjp|Vj-*CW;ChPsJ=PuRL|lcP((rW4^vWVfD1~*Z4Cc1 zvft#g*7seq;(TwOhSNDn=vNh0RfBSy^+p2QZOi%6U{4Wzc!`E4yN#%cPSo?28Um;-VbM?) zr%w{5T^syq%vGvo9L*lp*3b`U{GYc^sJO>~t}%8H(Xwhv9h2TOkeeWklgK>U`>t1| z>kUy~FaGd`iHS)hNJ(nH`|M(U71$XCYnNT;B-USM_3`d${~<8G(3~xjkQ!?CEkz{F zgt<9yu5P`!__G8Gl#Mo)eF)jc=EuqOHrbGTno@z(Co-}xQT0R&q)hYr70{z-3s@1D z^l+-M>0>GMk(nw$A`6y;x;69hPC{s#lN#P+C2&CzNAZGKpP7aIW_zq@fL$Ac;gDoX zz(8LU@j)P-G}r-Bm;fe1`*d|Sjc=w$Lh+h`*q;}dWMq0->I_2d?WaY5@*b*TtHo|% zUM}Aul^mhRi3y?P>pNgtSX&3+gq5&|UEN-G&oB43f5M|mxE?ExknJUpma+E_^zfIG z13warN+f7|aCC2OL&F4zHijrb(>R!U<2$}tsCX+Qzyi<#%&aHLfkw(T0FD-XW~{JXm`m2>ftfN zo$0>CkP+{aqvG!cp#J!N@i;IrP{XdhmX=oqBx4yPEb@Xj)l3HD1GHSlXzwpxKHMY< z>LW1{AgbKLu&fDop1KMYbDC%IM?r5x{il+;~YlEQQYAJ6RO9L?w3d;=o^Rw9X%DaD|zT-ND^h3V8P zj=cff!uG{uWNG!np94|PFL_;$L-qyNkbwci(70gsF72l$FwdM17H&g#27Y?P>;RP> zX{F2lPf`7dt8S~(^yQj6gDgNo($+nFIZVE08V1nj*XQX~MSq}@Ltq0nwH6g6YXnk6 zQ{+dFxLyq=4X>C1^pPff%Cqiwjs>}2DlFZaI*c`eD67jg}@iXDh{ zPM}khd#z~sLot_-&bE8=jztXd@vBza3WQ8xl~%}V<9lsqF-|~6P3dz4WMZ= zC(Vj~ht#wUHn@Yab=%~tL;K}AD)>fSfVHme|GMxxARcmof z9{KhS8ktBuel14JU4fJ@Za65O680-3bW3iKcAF!{@c5q2M6DtzPTyVkMu&`y%%y+b z`84PWW7=gb#hD?6(H3lDj2>0*F^*p4JWO9iNCoAjA~lv!O>ID1z^(qVr0F}3$62XV zp1Ruef#EO&N_k4;9>ZdZ#Yd{wu%8dp!j4#oVZG;vaO24khOp2|5QWX3Ny!%&#|YjF z(CkgC(k`UI?97`9FLZ1h8Tk>TFX-miy$xmX&uk2;4OpK2A#GI7Y_NaTUPNV^WA7SN z=|2mZ>9^H-dsiKt8@5~9_pPp4H|@X4<9PLSAa;+0g8@SW5(2IFk4Gua)* ziQ8`dx{2EO)O|9L8vp|8tyZDcw+~sS0CXCG##)Jk zk?esf3G75sJIC9i)7{LluX)gmz=ZI3DD4_>?;z0eo}2bVM!2hw^YV=jjS zx=a9>URMYPv?Gf+bfZ#GjlTbTnGxw%ovT1quN5{=w+{$t$R5z0oM8CeL{dWCPfFGf zMkGsFqR{u!jSh9IgTHA$y8MY4R{a^QA=J$#E`Gd|ZlF0H1!z?FeeQr=ZRLcY+e z-4;k+e|U5u!peN6Mo|CEe#feSwoh%e_+4J&pl-&xrOk;d{_z*vmsS~X=KCL+$8g5}B zHy<-j#kDz6ffUlwXV%1P0BOPB#1GUd=;>^>qz^*(Yqes(GfnnTMvchPfwyzz!6M=S ziD{7;qC=e)a@CU%H40`sAA(0z4@*8KCeMa~+3RGTx* zj3*|hTB{t+Il@3~RY1UzM_8Ky0`|Efj2-RqR~*WH($?QX5qC z_AS}W1VVvk0uyMv1T73^(XyELO$lCeq5Y)Nw+ObSd|+bK~aQQRtB z#?s9}G93Pq!k^qN53WCw{MtG2Mgn^p5NY4iyglzv5G85&lmlJuy0HLshk(p*fQ|%5 zGuRwE1~&?yJO1m5Dnyc`n`ie2(MinMpuCXR#!VJL!EbSrGhqvFTfrjvaNhaJ{sUvcqm~xj^1F zkb97xgV-g)9g07Gou*ms6ES32z0vA;#^Xa#+cyLC-I%&~tl3tx=>i4=5x84J#RYw! z4313lzqCD^1XE#MzM@0XN8wjfi7xlX4WfudE^RheWC~-mh$8mVGcshax88x+Xs@+o zMnDzmYd^F|;ehg0M~u{(RSCF_8|`a$X2`c!C@@iy zP!4~O)Da5q+eEX3&}u8%FMtd1VfPpGR&EW*y!%sWkQmxO?}~&Pgp{#SsyvqYf9LBj z(BXkNcF*FEG?_qTz}voyZ5w?HjhRg6MV1^g$UQ&vWB$-?`LicZecQmqEhX<&htQlG~VtIqMn@x8ehVp9g zv->s7so!N56XDS5aIH{2Ab=`HpBxDS+LsR&Q~-+@UdP>rBjAG4f3|RJa00** z3c(cA+`_Z_6&MV0=@bg<$0cECdlW@BAi%QvG0bE;2Xh4HrUJLUx3^dLL1+9^eWQ0E z)lvzLlNN|h_mAzXRp=nU@$8MDIfJ;O8*c$^&;3%XCPFUpt56L%Wd53ETt%Z^ou87i z-`&tLm$&Hac~)i7@5%X~g401*aY_ToU=r;|dd2VSOndv_)4w49K7@hcI8+ew)5nX? zc_CQovTNQqxI&z@nyggab zP)ZQlWPAQNB?v(EsnFUI{0&_V+HHg48xDK*I5t|T8ATH*=5B! zmuEGY06n$q{)|^HjSH69dYqMPsGCF-B`}n+IY7yL3p6^Id(E^$uMLWahtN{U637U} zWw)xyClYjQRz75yPNr2W@8?5nIbceI+x!+@8J$ zIVdQd&bDF9V!<{8IvF$%kz6|vk)~TfVMrb@GocaMZgbuixxu7wJX?#NyG&(VtkQ`V z0vydAPJQ2Aa2Sb5cB={4`o}7Y68;?BINRD#cPW!#jYhYSEe_wgIjL9fa=Fy#fT$qfQVgk6Yt`{Yt@d*fWr|U14VBdF-;Q8prb-O7k zbNdip=vQ4yk>B<6x-oQR%U~9%13Pan6lF<+%D4EWXnKb?=mhNT+A$msDRhuDk58dGvr0Iw0@KC!YiT~On2 zP|r}!FME=t2zK(;1LWvHbDO-217Ad02Rzl20X1Q3pZ1zfGJ{-O)zBY5_|q7&HW0e> z!J=?fO1_~A`-G)I*S~WGJt8B-a&}|ZLq0OTi3Q#pQYhOM6V?CLQIETa?+AF4Q^evg zW~?BzxMG1K>kZ=p2c7xpR zU^jec3!vX25}#y}cyBv$UBhLd4K{#~Ds=YK(MkP902*%1cs#J*9%k30L2)$bYI}`xOgg50N{&*8I(;f2*fp!CvmYQOMl< zvuWMfaZk5IO5KtmbwwG<{T}Rg0^9R|U^ihi!g$0Bs$jlHq@A2($*KU2Xu=!c zRs;;K*s5v6Tg9q-brnEGr0A7pil9neK){a-C;@@~DzPuBIvO1?jgPxSWONZv9Cd&Y zy_%P3zD-Z(i60?9$v8?*Q$~}6;ABQg1zJA#_j{haKRZtO$)NaOkP|Pu<}>wFt!_n4 zP1Rly?)IUbn@v?u**2LkuK>>ycx|2z=LJ4`sYkCgTs6#JB<*`fBH{*Jkj5Tuwo!e^ zpS9hetA9~Do~?WN?hP#~&W>>_FRLkzBp|9ZkSk7BqOFOsa+L{7yhs)lysQM^bUCM{69_%51I zgz4Z-q?VHw2930=LRh=E_GEzJP;!wi58pfw zuZk@v_0i+&A(mK9lu6h9sje5|PRIT6)iyHN+OzLFcF|AO+Pmu)WTZ)$uGY}8OFXd6 z;l$*0{F{@MF+as$EiZIdu)7O|r>>E(o#;Nhajz^|lb16b<=z(l14Tzz+$p1sfj2Ko zdrMxUz`2U)pT&+>%-;5J#;943Er537w1MW&v2X^2OEdw>PRBdG|FQv?AVl~&zrMV% z<1N#vRRH{vd&m@XI^PhYqZTSLy<-st&B@17U-N&^Ja>1T6^uN3-QHLHDEaLFkeszI ziz#|nqPp5_Ql>VhR*uV3E!cSt-T-x<>tdz0*@Xq@>ReueMa$A&Z*@JUD^2ndl-N>7 zCRr0ww`OOcr~YoiAxQcAL)I#lJtXAz|^RtZN+=2r28iQap4tY~IH^r*&Wn`W0?X(>If>#qpPqHN#)KCpjPqdA= zA6s!p;BhQIPv-VM&~P}2MdYM^4uq921GJhLb=x5h-1La-zPSks>Um8~jkkYFv5=EH zVbrNHEIkVXvU_&M4yM7|y%@VWsvV!cc9tiXsX1h|fkdhSkM`!}DVnXwt17AReLIN) zhJ+N*czmAe&bQ3u>iS57cVC}OMzMEvcAIRU88ZZtRhQ*+HtH?vwsNBBIFNQt$MRH8hq(oizrodm0ut16Bi?^0e*mO#tSV+l#m-|esu>Psuuo5QKZ#nGcdYNJZ&$@F z&kkMu8=x-95o~Ma%5f4LtBMXb(8)Yz!rNqix!mqMh-T2fDOy?R7v8k4dk^Yymu1JzwWa#LnI@l_Pku(E_elECEG#xZNf- zU%KcQ$M{_^$3l=@KmhdWac;97hczPgGbrpbm2rz`wcqJadP7kd)e7x8LcLYBuU|c0 z?$53VBGZs27y*q}ekbdP)K=zZKfSzsOb!!Se;~Iko;S4vRL905JIm|XGCXMLxzCT6 z=c9`vJ-RH5j#XFWud_7$=amcl*vg3vkYYRuk1pm|S@{vK3gvjzPI)Bj#GaCnRMYJ~R4nS$(;4m_T>E59J=f42#kOf*`Ov+rdqvt5=+R?}eb+qO; zoSU^IEU(Yx1H0yC2ZZa4#ls%1pM6Y;dV|z`#}&>TDVYK&#k-pKXBeqDeoRD2mWoFh z)a1WCr-EjNNoTJ(Ah99vbQuOtv*(jAB#x?<8ijkOK2P)g_T6MS z9V6bqsQDEpO`c1sJp>~q)*gnEk959X7BJBjlOnS1={)R@@kK?AnV_b{?d~8VVzkD9 z^TL`S{X6NUgAxIm(eUf*ObVQu5nCh<#Xy(@nUBVC&aN&*rzbg2*T&k7l%hiU+(KiR z&wf4mFR8fKZTmY38(Q5$X%dt9{^6mA2e|;SFLe*3qICiSb(Ur(1^F;Mt!ft(SXdki zZ;!f4jo+;LbT@e{^=G8z%O2fdN{>fA1l80eG}p#FfAwH}nQ9B|jO*_%AY+4_LukK~ zv{7f&q@?AiKR9NO8v+qZ7$K$tPrQetv81l40#^Ie$BDnK`>cerf{xBFq*`VHic8GrUWMw zli$c8ki0TqwrIazi*du2;sy-JS7+I80{Oo!4!b-8_-z}@1KqhvMWHXdTe+qa6+h*3 z!ufc3S~XXAfM?8gI^B9^*R%Bm;b}kn)XgxaZ%Z0htHtabKh}Dd9=%K*U`FSz_RK@Y zKicASj?#)&^h5~^*y0{k&r&IhiHX%WG=}`}3&_a86-UBsZ%+t-&@c6@Tepw)t#)3Ki_5-X(e3LsCSLPU(; z1QA&0{D0VctAIY5C3-MeaCavV+@0VO2=4Cg?oM!bcXxM}Ai>=w!QCanVTbSDFS-AH z+oyfl<+1tAOixdD_35fQr))2f4(K%4T63ufS0YTjxsNm1dq2R!e|_zU)cZR0sLI-DZC%C{_v7c>P{E;_HwIOMUcMFo+nsm?bbq?+Bm-Fo0X zJ)NbSw_Un>ZJlv^6fp{?+QYsK<)sZlwsyt^nW|bN)J+X>VOe07OPHHyq2~4GlzL3$ zqZmQ6{c32*>vnofOg;4!-E3@nm{P;W70JcZ%J{=je`>x_VXCQ4s~1tK-dH^i|1#v2WxUdM|YA=6IO&7+>?g zVio0tkk)EBtmZ#_KP3i};k$L9&eJIk?Q9PVnrQdPqDpHcwP-SQi%5f$2Fq??pD|QW zrq--Ftm$7AkeRIXHKueX5+*f*Fs&92!&bkcm1~!>EaBVn)r~C9QeKz>Wqd~|S8r6Q zorf$x;BIbKPcTVu<>BbaCO=-!C8{PYBqt2d3D1-w#ce6uEVT2Zev;mDdX9S5vWeaz ze@S4J4I2&B9zS0~tP^T~QW5DrIbxvhy08DnF!A?b=TLy+8&f}CBsd^GJUnc<_x*;= zJCBxpWa4zSg#qrJ)k^V&R@Lefu+b3l^4;6 z)9sjJpG;&jkEYAn$tJ{5zeDo4hm2WkG&P#f8Uu-C6;$br`P#tp>(yTc3yuyQ=>Ogy zGT^yhWmIn*PZsWojFn##*lL;?U+)wwedn*W|NYnT@j``P9$Dp;Kwprtp&=Y06BHHl zRS!r>rjtkUFC9F51pK9LuVakbI-;VgDqfR?vGf=A7#8y})zPAHq@`vH_AZ=go6jT> za8fks_7Hu&f_i7Ybjq{3Uwjvcp{Y0yrW3^S&K&r>%&&iEc0T^r>ePq$+6{x4ZOV*s zSuCBk)MbH4BdKb*W1fUjvYrDH$JW}$>*>0_J$7hJtL`l=7Ptq33VWni)Kb!HGd&;+ zvf5-(T#?6Q5yW$?l-7NbT{NB^K2O6IaB~x;T%tNXItwO9Oip8B!Or1yxMFpFrll#c z#`WG3JF4AwErGASB`50*!3`crqN37}nHUr8uIq>S4My|s+pA)|tD54~oP*WM;O!-{02Fn(IgT2F zAkotbuWED+&H$d{2-{Jyx+)^m$1VhsveqK$z&(;wVVL&2585X!=;|_}A+EsY4O==% zXJyvRU6R*mH74?Ua*`)?L(D4mOqkg?} z0@Gxgh=(dyKB>>D^*m`Or>O*`OSf3P`ZAt5n}hs(ps!Z{Q{cnN}cO04b zI%|f;iH2ML$=78++Zw&|A%UequFQWHGae-XnsY0}l7agD84lqsQw*zAv*2@{k}wsG zaz#xJ##ZZlFruUGYfhtMVrmsya609}OXhAVzyuIoo$}CcgHSg}C>i087|l{D;8Oka z7h>M-J1-_3&=U|3;!}9R$xtVysx=-t;4(zwR^#AB1K0{t{1a*L7~(103;{iDLV&$T z?m-9X2K=47v13b1;0jy{7BTCyePC&kfo>!m_=s36Sj@-9&5`gpES^_8cJA)(nQcz7 zgWlgIm6;{cpn5F7(o)4{RI0IAGNyZvDdVfcmF>oL(Z91AyPZL=q8XzC+@-a!v!cle z3k<8O&F8v5OJbEqlVY$jXy}SndxlC*fCRP_b^ih&LCE=hIlK|7T{fcs$^byD3I}eI zmEX>qXwxr)zjnXQ=K`_>=?u953AZFkhv6>PG_8N~pZGF5m12yc(_t?}5;+YG+=_YP zh|=W-){Q8T=0IXgZoN zkN%p}gwX^fKd@TNqeS{zVp{gQx@E=BSt3oo`qDaga&xQgJinglxneDr_D%Y8xjJcq zZFf<#NF=FDPX*-)s%fz(+W+cngC5PkIOS+TiSqRSj;fqG5QnYl)Sr0s}K2)0x`4RWD3WY!Fr}VETN98&yZ3 zQp^HY9dcZ+(^J8sZ>WaPev-{Rt?PMjBu_F=5oEsfei)Se9#S$y}in zQ&Ll3bk`dM#l>yg>DE0z$E#_pR`d(XKaF~zYedYmRTNf~sf9xTWYd0hVHnNejB!6z&*}~J71*5#f|$*Dr)VV|5osWYoX@Fuh9DiQ1C`DAKU8X zgC+>&uq$*bT`iFdD5{YWv%^D8l&nrcRVAg!0o|s(xR$SBWmGJ<*2%CZT#n#L5rE## zrlY=YOpq`I9rUpwO-34-><0<)30@Z1?G`{GC~f&z9Lk|5KX2}(-6gs_36=s)-cZl9 zf#%(~*-Z#QV2!L&C`M3DcK>z8?0KMDqA42rh%`tgDJpsQ^y$~>Dmzl*y4O^BOIjhs zTbe>buZA)|d`xOK;ZFwD%`&OYWPCzVdXjBx1rU!gqlkP8;JoA=2JKVQ zDc|0=s~zfakkBlBseoG5hX}~dmN4hNEi=BfZ#naE$AsCejp!w{14%p)l@4mTcq|Q_ z4ucs1?IUiF$g2yHG)^;htR+-7%sKG-5&ytP^2{vZzmEhz7*!W1dy;bg*cJHmleqvluoOc>6Lo0GO+io%)P5D3xy@DXR-fOMCOPkLFoo*!Dwq6zO0Hidw!S=(OSXgu~>%OF6!#76Jfd+!EF zWpOpfZPaRWMP~daATaba*$W{V|Fzw^c58qXvA_BiGq83B91*2<1UDs>RuY*Nh;IPBm{ zXM65K29HA;k4-m_zsd{?J6y-4KQ=a=YQp&Bn&YBW72_O%mHdNd3Pky zU#_?+l(KDpXy`)e_x7cwUF1AT({7M#kJPImDmkmQ<*=lYYFB_e+RXtnpU-lU5M!vj zOmz??{O^bv_%79nnc28a1-NdQ3i%IwNl%*uqv!$c5SSQnJ?x@ zy51P26pZgti2ZM|C)=@aox zFJZ4WQK@UB@fbAbsCEjyfspVbWW||4JJqVAZEaa3VYYS{mYZR`GZCG(mIk37gmB?Z zk(RD=TU&$E({XT!nOZK0M+y8H$7O8v5^<*8>%0*yfuMw2=1Pk`#3{CZBvv9D@LTA;r&`4xTA$Z)hT+ASV#5T32S)mx!K1D7PMKIgpHX5nX zB;b3&L0$K{-j1uS4QPY5x?XVSy1cdPE_06eXqZ?OjAG>ZRDG+#gt z*rpjx%i%jl5kDXY0SjxNXYx{_u>XsmG1Y7hIrm2#DP-2*=Phk;-OFCX5Yz?t98Oyi zWK*n*T7K_|%xjBKo0njn_3$s=I1#Jxo#02J-laOiI15yblS2hwP|}OSv6K zh7UM8a3D6SI<^l>($kT{hTvloP+j;|u9&@74kYR@wG;0Zd{>P_v#eyvD*YXI{~|~E zDp-^zAd&GH;;U=jn7MCvn=|ywGyrk^er#;NejE^~>mDpl@@qw|{`B<3)Ju_thbx!A zFDP`)YihP#YBF`vtb?DCs|A8=7*rG}z7s2Tr3y1*K0w75pn|lt^&`SK{xgooPUdV0 zysy1--zKy5noVMmwwdyR=T+?jHGwZT!5x*pEOt};&YftLdP>xk!hHLuExSq-){36u zj`^Xvew#B$swTYf*q|>*9K7@|KMIxF-rqEVGH`rCt9t|zK@fHQY;UiOqveO$5H_6$ac#^w zmikG<(T5Nh*MdtAPhx-*YR%$8x&!R73(Jf#n^vu5$a_IDxb-?_AE5u)76^asPWmky%@v(ou^m|pd9x{<8PW@4rJ>0IEYEe?y!G5*JNgVa;kG!v@Tz$ z3jT?DwIkMev_6)95>gSVmI}%i1cI z0YCILIGrIGZ3ImZzPo9Cs)JsVz^lwLu=u|;Nj@}dHs$pRNg$F?Hah$@Nts0)(-wtB&i zQzNd2SxulALtl%m-vE7%Xf*XF14k!f7r0ZvF5<71Dcuvgit2B)oJV|<8dYEyuJz0P z{-S}0TS*ptNs+5z__y6&3W{L|n}r-Or>9>*zifI6v=CQ6BW|2}x{}~=hrO&CP=`%g z3p&4-(^x9$XzFc?{XrR@OMH!(p?G%MG=P_sxj*`S$R3JddyDS~&IOg@35OLowj6W0 z_Nc1TGJ3H32*Iw``luMOnH^#4gpi)@ya#n#HDY@$(LN!Po*cH%qAVs%-Jg-GHeC7% zkI>2GQMIL}2M?myfW~zbG2l`)HLlDQ{^kq;mwDAcf;%l5^V+bwh>UBrgq1O3(FI(e}p(i0H`+cMmAfQQAOYTS#16%`_8VC%jeaQb7=KN&`VHxjpD zW2df-4Jrjf7AMZJ@R4_I12?_Kelc|Qw!OCtjx?fiv(F1TXb0&@eg;ze-ed6dl!h`| zN`(#Zzk|<=6SLJuRwzYBOHhKjE*9g44wQv?pT5h$8t0?qqlpt} zWXO8m|1yG2hvgq{VOjNnfC;~>@~%o928f-K#K67J|hob{Se3w3J_fpywai;)%`bmeV_Jj+49QiHumCgRGJ;!-ka?x{iH$Y&s~sw zxg`NoKlj?Fk2rrR{1R_!04P{S|D#C2@W$7--H$Q-b31-IXn^Q1p_`ETC!jsl_eRC< z%M{A{8~1Mg2ypo6eC3?~?b&A{L{vbM0MP{@ROC-TcHW}nt>7ZdfAk0bKhrV$1xvI< zv^PDx-DW{4DfHMUESSH_9G^F$QSU@_kQ0n=QtSw{e**c=+r?SGF9bjGi7;t4nm69V zz8)^OHyff1{F9*YAGL-J6(oSIq4x#gtK9*LbFFbeSV0|NWj3EpQK}SDF#q|~{NP>b zUpvy^5vC^Eya2I)VG=zf^Uio?Ne*62dO}|3JV2my$beZdFS3#rbayoQ_Ue+kQU!7I zO+*Q-F7wm=E{9L9p%U8v&M3kUMAgREn?f`Q^|sSny@9ad_%_!~nE(q#NnSoIGSt^> z(0N3$9E0{}w@-FPMnncSHa24|V>T~oss>A%K6~Yx!Ym0f5PFCSPQYc1Yxt{N@k9gy z(9x%gWx&qCdn{ac)101!lBjilP7P7;@O0W#6WnnD{BC)G(C>D0k*l@Z^x+9`(D-^i z25`G^+uvY8Km=y4HpAm`+sbzH0`XX>bk=PZVZA?76YvSVJpmWb`0PZDp--_~yHlq7 zWlb(!l}-3=;Clb^@)8PfsU1?oU%n8K?d>VCR15I9J#@I)DV17nqNbwi9RnK(8RdUV z75P^;2*2|929G;8%-9Y0Od2{`L$j_6_xW}$53?S5dU@#m@^mt;P%DK z8@d2h`x~k}Cnx7gPqZH)nb$*sS_^}=D=Gnj_F_NyrS|@Wp2w{=QIl$_{m+9YAheBm zTMv+KC)1dlQtvG{i7;#J|wU)#1W1{mFSvGge6zgMci zU8&xs$n|G&UT^^x_L|FVw)StAbtHf*bw-oT|Jr76a$ikPWQF>gqO!8Kx;*(0!ZX3% zCWO;(R}C3}GcnIHGs`O|#PO2uG7gL40Ud)GE?lOdqO`EEC@wA}{n)<=E4#MO5c-dp z(gyv<9N;gnEU#2fRi)ZgP*BiV@Q zql;+a-XgxojS>z9rV76_=qC%di%K!^myae+3IAkRU8o@U>>^_hcb5&%sS?KwzNKOG z7-4m>x^-axM+Ipk8mVVj?nV>h`R#R?!2xr6@e!>RZa?*fSm3Qm1N?LH7k5n-n_tjk z*UhLgLiP8n$a0T=KZfU<3ccs7(npFvBOgNoYb>L6>}w zo*j?}pmk@dldH>IE)zVrYv*t_6B!<73W|z1I?O~&32%#4HWECgdN41~{3NCg&=tzT z1Ksst0~FljcOX7;}lOqlba!D@u$gSnomHm$4u0_ecA;#Ma zZ4{&QERuA6^eKa$`vf$sBT=l^508w+#UvyotK1dg;{(s)2YAY@dcb}SqLR3r)9UW7zTwpJr@}DQ0lYd>qp){iu7A7^rP6d2pTlx>m z6~8U`@lilF!9SxbH3nus??q&E0IMh>Af+Wl^*%PsMtuh4pFXJ&%PIz};YbR~HSDRh zm9Zr01ogPMvUQK8m=V3*{-5oor&|1L9)0&wVxir?Ch3kIg=liG+jZV-?BAbxD}nAT zKb5H@egD_gY;=o$M2c!4`=3Y=}RAF^;l&YcJ zL5roVney?^S_9DoAGx;tESy}W4mlWTwO(7lT{nNcYq-1AN6BoAh{vQUB2xC{yz9yy z{h_(g{pPH%m8>x`B3BBi0+3>7$zu~wApJakw78#$iH>>vbF?(J5#Oe;$G%><@_6B~ zh&Ef*Y}XSMog0tctjr)Iu5-&xk5ACSFr$k_&)>qwzPYp684wT zFoC)a=?j&EP3+|+QGz_-ai#$!B|$~Tx;^B2We^LiY}R>Im#hbQ`Q^#!@$rBZlWbi1 zj#aOcec)Dao>O_!&+h$!c_?ZY>$SNG$w?8_zVk|z#i@%H*R!m}$}pA_K2uR?>E8?R z7E}EbU8P;V0>bLCaQ_`?Ktn5r|301w1cVTXHchKaYQj}Xnv09`IE1rTYabjRZxhPg z@7xL$^mCc7RvCa<;D+$Dxg`H$mOP$2<6`?~v`rw|OmilFoL%R607{ z_o$z5@Nh$@YrS04(sFltoV-}=+Vgc8_5}(Wro?8NUs4h-agnawr?GLz$A?A-o(9X6 z1h;*bJQ@(7t&?g;V5+OLMbeTcfav@#mBwl@U6+%?FQKtNDRrF1!da9m3xVJ`%nh65{!^;qNo4tgb$?w1kFu_vm6hUu6Z}>2$m> zIW{&l^70V9hLf7s)|&Bzhc(rd?+=jE!5{ERJo@+h)bg4;PpE>-*4T=Y~+Mo)IfwMALC-Z_d)>j zrAa5mMMYitycu+dpgs=QO^39!q$KQo%y7RvpNvDg8;_H^Ve2t zb~Pf5R9f@gJiF`T9_wNO91m0~5qEr28VW8dyaW>cC$}3UxR;yh_5K2B5?qY{&z!-b zA#h*9TUe84zPl|XJIv3;NP2?Uv1RWgD|C2oMec|DAYWd*@0Qpt^z@c5KqfVplIb@u zUbpn~P~%ZF8joXAkbJfu&{@Pdy&YF7TEj-fDf;~FxST*Cta16=$}&27U$nUF9UNN3 zss1khb%`9$$@e%0dHEX)DRZTdy^qiYohkCQH8s786ZOT>tuJwLC~_0S!@juSh+w-D zQ9n-8Surs&O^o_K3x{zW+Q4S1(7T+i{8*czA|+kk?)~H(cBB#89UUjpL5v4LD+zJY z7carj1%B=gjg3<U3T#%q-wD>oG+aP{^cG61!e+wKm7bGA0SY z6Y!e%9RaqJnD|Lb99mHnkx7>*IbrB?#N6CmUVfgetg@1n#ADh(L{36Q#o7UMe3R8r zRYld9#MJwf!+hZL3!Ff*xq6tt>g3bWPgdYdNQTT#O>HOyemronrqk&aygxdO`8yxA zL3j6;`SZK85!cdAPAr}AXCbq1htLFe$oS4J;PM@-XX@%o`sZZi>}rLQt1|fY^gdh} zd=}@1YeI>Ba)V7yNlzzHM7=viJ@&M{qDZjr^+=*lE+^;Wl335d@OFXJBkxyt=lmr^ zz^I(H$XbqhF`YfXeSCekwE4`$R0jr$C@du^DjTkBwOJ@OI@I$?D2;hhOBhDByu3J? zut@+XQsGqq>RwmA!cizgIIp&fpfZeVJjncCIOs{}3o~HJQ0O-YtQUS|7gbe?q6|Mi zA0CT~Z6 zZK0~Ck?hHejAZ%}twmY?SkQNbAacS=R$XP{+@D!MSMKWdg@p(DKZnC~54Q@$qvSJEWy<=)cYvXyE{JEsl_8xfTt0V|DA zR&`HGPge{pZ>obpRA8RJN2d|7{X~YbtaVdqaxQluAS)^|$mF*w}#j2hq{dlarJ5?V)CwZ9X(= zMb*`>K-Oy==^@RZf#C`~J_>8{Hx~PbpH#bWvaJ&(AUe!h23m zMMZ=Cc-!0@T9V>zR;Nf5PGwP5R%YfiP*#eSIysq)Lh}1?>G>2g2>^IuU|@J5-;bp; zw`+Gkq&HaxzK4c}p48ALI6L!jKHWjfvmbwmjI5}X8yX+)bliLbNl{*$ zijB+kHOsOBqeoVe^(^YgQ)sHj4i>Fk!S4?B!I zW`C!LIhya)wIzVo$B*Wjnb?#S6v9J8qkv*V9p0xvY#&Pm$aZ{HZIe`%reh)&6jNKC zn`=J2^A5u_05^NlQs7 z$;kzdr7u=*=^G#ta>)&j!Tq8f9zMdssrkrFgSL85yS?#^$O?)8of}>C=eKX)p0^-& z5b-(fE3CDcTcj=mHUmcNpgS_OaMZH`Lfww5>3blsUMauKFud znfE4BBkNNS51q!2jt&mccJ>jE)=hMEibv0q8SEAsHKJEUMBW3X8JJ6abUf)iTJldz z7`HhBZPq)^HkVofKc*;FTx_h_VlGJsd!KqEK;3-!^y^Ja%6J{A6`R8qDy^in)PT=t z!X}VMD;YXJX!z1-p9AyB5|@N{mlR>Ot+j+B&CqtUwlbtASm zUt|NR4~xN8H{1JJ_Uo-bk0#7Xt5gc0^hReWoy{5OWo%5A0oMdw6w}h=83;&p0!7U% zW)ez;f}^3}?sh!4`X60vf+Mk@Yd1DF=H^(?oGl+w3DJoBy-Y=+KtEBmWN=T{tJw5w z$r?8+kVoZztpcP^=R1T)-^1flC2>&O+uPGwo7jn~sX=(aI>4Uf=jFk{!D+5dd`JSj z2TFJuL}DHN-zKpE8v|x+^!5IPG!|Ez1tw&GB%nm*Y!zU&G%r6q3<$cE-VvPvYKpzI zx%z{Yk|LU#c%W{rtre=mzgJ(^?6;Pt0|HzjARsi_zx$jmg`OBwQhrDE3-rVRa;oLx zv$F>m_IDZaFIV1MEGx9OM!@y5U0q#S!gFQZ-Ep`I`}$_fezKYYuhwYZ*!hq@l&i3h zTCB-HJ^(YD_1CO_dUG;FeQIC3XbW$^!qU=I4G6_5`dV4SLB@%*3uxF$Vll&H&r>I5 zIygi|L~P(^F<|c;^TXK@od^#MIG=Obp6pPLz0_DOUm#W!B%G$Rz&|{>4dsCF;Bnn| z`2?o{!hl_#mv|5WOPvPu3&`>axt8XaD1z&gQg(z$sjdYVXG07PQZh2#N#K`UxnHX) zD=X#hHjYQx1QdhtC&o$@5KewLoF1_nQfRC$X}6yIEH=6Q0QR6~jbN=79EG5RKK=T4 z_rwv(d0H-MuGYc5IcjuW4kPGvH#qxVRm&3*-0jCOJWrj>$lhRkIm33kLXx6qH2+Sl zrP=z&27V?3_M}DfpiBl6klSowf$IeZMr(E29{_&v`GS<59x*m0pFA@&8vpvLZQLxq zUDr1#h^$vohJc5K!H}%?iSO>-`$E_lt|&&jJrfodHV_uHn&KnJoqxBDvT;#H2lr85 zUtet=%vIK6mEB4khchdCv#h+lyquD7&{QXvHndo%sh=<2C+{mj!b{XoglKSnSJBjV z>Po3R_xELfFyOYdx0f{CA8`1dpZAx`St18MqJ#VEq_w#=ma)zxra-=2*(yNk!ZDlC zi3tNqZ!-??b6}u;V96^ij2uqm^UjVQm?8U4R=L_FB_%Q7N215n#oHx1%37%aX$_Ad zL`qIRp7jYIhaVDEOcWz%Z>?hukleHF_}T5T-e!fn18bm!hQaQ2;nr=|*XH-+$EB@} z&*>cS#SfdfKdz=B9hwFm)5GmYFELp~n4mP`Oc+nK&W~;r#0Ge5HoRrQ+p{$@Q>)0X z7=aF_SrHvVLY7vCMOY~Yd4*X{sIi{Jdxz1zCqF;n9N^*MQGlhP&ZssvgumboM=&QZOA4N`S$=GTJH2J8MO;o){D1qI z^TeHwqi;%@W(TlFo~Cq+-}@w#ptKVy{lRfPG9NB?C6wovW#BW59{&BIrd597P0gx&F?f>YA0MLYEhduPS z#%hi{6o3pVvBdt?DU~I8Ya*co!xs4S07V!8&QU>-Q2wpEY7P!GnfDtJk^FsA@ecrG zE!6$^w{R+dBoWXQ*#c(>{`a*g-*6^cM8V(SMF}!E)zPx3s3?o|3^*a0dBCP$gsuG% zm+=}v{(Y%ZP*#4i`keuv-b__q(qOUfJ-_nHC%ZgirstbbP$ZTbcA9xu6mq_Z%~A(M za#s6Bl9X4An zz5whHVA*$6aymOQG}o;(8gSW=>Zqw|@YafRCn(R^FI{9QsH(;!qg@>AzQ_qf+-vSe zqf2thM0>f=p7os)T4*~}ve2$#yQJ*+=4OQ|@V)WwE1d4UmZr z7*^nUn`_cQDNPi$KzL(qe9u2+@z%6&mJzp@Hkk6 zgnTZ)ZMFv^9)hg_zif(7@dT}UV+Fxuc`GKa#%e)-|BILVdY4muTKkLI4=4K*bpxC8 zi!T%Ozu|nm3v8r@(H`o~h=|-;s-n$Q3s%yZ?T+93&W%3iWo;-+P{~ ze4e01k54e?T~|})N~3v^l^GQiGdeVM zxyCrLyPNN*dj0CE&8uE4-WW(~j_G!NSqnAzqQ>*X{RWT6nC1wO)17E*ZE4F8;n9E5 zXgZ&ppBK)d;O6%Hma#lMELOqYtkYTk2V*;xlDSgBW%z3M;o-fTo7-fz zTeW%@oW8|^6%snS)sLdeecEbo>CW#F*;B0!$=W~K*=(lm@5|;1lIfg|r-jtjIax_} zZ||@Dcp>wWXWUz=Rb0AGWr-S@y~04+0tH`@4I*uC_kgZH*Nj40pKA zPioa&pG0tQP_7<3mP<>`Vg|Xjx6<>SeO7@o+h3FWe|1`1bBNWnQb!F|aC2TTX6z zf6}*mGBqV9NQno)dd<4zuLab{wVp@(w6jL-sm%^<7roy z?t!{X^`b{@MvIIo2BkXSV01evfA^>^QTI=K>42bE&hZ1i zN2(90IA_;;7cCV96f9`*F%9@WqWRVm$k3%XCDG?HW0KJ?ArEX4XT<>>o<8PuMsS&yeQobRDS#mz$S+RVQlBHq$PjB79nMQ9V+SQSWvy&4S0hf4RS2dQQqJ zg613dP3RD`V>RKamoL{$JxYpV(Mc!6d!I{Bgt?Dw#x6QE?93w<1qYJhVL1$!m^{ z02ujc6*_^i-tA!r`u*X_R?ram7Al1fhtJt_dozV(1`~R8+g(cwa72QEh4D^j#*}fN zJ74kWnHf0(1o7EV5xZc`{E#M1*qX^TX#sO6NZRdf{?qo!;Ixdab#c zY2Zj|e7tF9^=gqE6?Fy_sOEimY&2W7K6_g46BJyNW?sLu#aYvo*#?Quz{OVEBbAhv z#<&-f_If1FxZe9kt;%Jz!ZHUt*XR80jD&u?w1@oKwmTsy>t~e^aadTGAaVe)ODu!WhTsiS>5QnqdN*udEussR z{EKA>wy|y0izm*!AU~|t#In};Y#iV%HDfAB#1}~ldx!RjPY|GK%Czt7?GzLi`lU}k zHb>&Jr?Q&R;h||3g@lAmL`5;1FrF8Uj8KJ%k1RAb-2zN{?_HSc_rKAsQLw<`ZINBh zmPcWr8sa;VwD8(Lut3%H($H+b2P14L2x0hEp2Z#LHvhfJdo)SC(IWpUYS9W^X})sx zRsUGxoIZmKFy62-I6_@s$4PZ{GeB~XlcS^ckCvCM<@$$T<1U1{uJ-AAw0%G&5EBy< z+6+F#L?gJen;)c>ju}^Vuw~yPFAD-9>h!?UFCj1YQEiPB1f<>l^?c0dtbE;PqvC

Gk1fj+6j1^#ZGyX4xfnZ-SML@9yE&WU18uZ;mz27iM!7(7p5NNnQQUq~ zqx8wng4Gi0o8q9Zh1%1=L)@XoL+(!L;P0LQ?ge5h8RohI563 zHi%Jkd$x`Ls|8>-;LU}q5|a#KBQ|_tF($Iu)Z7xFI2CzHxp^MB5@nno9vT)dHr#9c zTUJwDSyEnIP@Qw<=Vru#%)o#!;g3aKniDl1uHuNLo}Bdd{sGd;!Lv=+r?1h%uk(~2 zs@JnK5;M`JP5Tk1goIqFI3wGHJ6rMW_rGS8d8hMP_o+i;4=i-+sLYfTZZ*;$4G2qx z{~q^gf2YT2=7y#F$=0glJTnKED>rvolHCl#DMSB9QNzWp?_%?C*%1gUQdKX>MpR+oZ*17*BLe%tX9(klS~AzW!|k zxgk0{GLylXWn?g#;AgFej?l4)>k@8yimP^ao6)w&+h^e?kRCF^Cx;jx7J8FYKPeCoZs0*D9`@VP@ZlaXI82r;)zyf_sOOD<$fQWi!2Er}@%^<_ zdh%q8rI&r65{7|6o}AlWFX_&^Tn76wQwlt0eU7P3+iSqP#5snU&3~su z+>1=r9`Ly&jwKeTG82J$vr3C}7Cs{MSyiIy232u?q_d zfc0&)dt`rf@ePcEq`;Rad%3L4+-OZ#Kp-1)EYn}vth6*lE|*?)*Ykv950CHeAxB$8 zB8dqU7iSfcV|6Sm5)yHKq->#Xi^DeFFYPk zRls+Ix5e~c>EVnj*~jd<0oOS;P5~u8VZQM&bQl>Ng~-1ZvBQ~9b&=rwOrY7>Y5Blp z#?4)DBmNHYR=)RV9X3I!o=v(WU#0O13l9~4p|TLS(dB{gYCtq%nj|K7VPbaTm18=p zfqw~BF9ZGWNXe%Yd`AzN=1k|b&4UwK}dG2F0JvQDE8C$2H#3$&W`0tyz+m#nl9L=XvUD2=HzKN3)d|2zQR)5 zvh7ux_~+s#I*un;sD+PG@%&t)CB0!ia+uXWa!x0&%!_1d8rt7q&rIAuvBN`vOJB@gY+iG{vM3JMDT zem@@1+u!hOI0=^@@2+-X{hlZm*_-)?3>SI#^n&0gQ2-Yf8bhO=#p2!7FI+-TugTU{ zo@;M)`(r3gtr2YKy(bwFC-*M_)AAMd%9gx z=X{< z#^79nJZ|;+uuiZC`nHPCQV*m+}PDVsp0MI7&#<{ zoJxpE)CarHIQ+VB?H5nb^#e;ZE2TVvgiQvvoq)7;%(2z>NBS}6<&|Ztr8=X_x?N2T zw3-%Zj{*hT#Cr$`OYHMq3R{@kyMgs}89_hBmWW8FFGRAcvO{6dDOq`W)#JIqW_oNO z1fWF^BsBrF{#*x>7Me@D+7d{@lY##J*y_H}S_r+1%bg&8@hg=$EDn8jM#gE^Hj;+l zJC`KrM!VmHfPG4|$}#XzS28v{(Muqm z%D}Z8bkZY-VXC*xj^!e>x9ii1oin)n3r>04APfnC_?W&9Ke0VIDRvKE-I?vWKQYnZ zjLur4HVE2Vm)b+N@SM&!-#`g^^)W-+)+ucw-wA;fG;gSZU!Y+pnu47+>bc;{z0aky zu$TY0^jO?-^+qYM*$$m4>@1;wiG`gYAcrqB+$@nw9uC% z$LRf}t3ls=@%j`N4uiaknrv7F#m)C~m4xwvlIpzL{Q2-oq@|1upWH?BQDii%vlNS` z0om7w3nbJYvc}|9K#Z~!+CZc>4g@6o!V(D`wa9 zGRS+*C=<+Nd;s3-^RngJN3AU*Hdl@$!s%oOv0b$U47^_&)Oh^Q*K7fm5>gBZ@T_5X{lvy7@E+oE-F zJ-8FxLvVKu1lQp1uE8z11$VdLkl+&B-GWPS*8>E%SM=#nonFC!L*fRp{Q8nJj#{%;9Fi3Q8Lo+F$(BJqo|V@f9hF=quqR zulAvfHklIa6@gi0l>&lC95%`5+w?|5HmeQ1u6e2Z$G1trcg+{PE{dHYmJ|)0CvnoF zNzI~WHdPHSTppl;QH)~5t3fw2v-|99iDtF(I1l{r7%o?%9rTToc`t-bF1ihS#R8kj zFO}-F2;tSH$BXlLr&Y(0%I1j9wca{=kxda6TCO&%SBd^UYhk#u*T|dBgBB7H?a|>q zGm|ZF@c}F;Gf1H}VK73SfwkfO3d}FT0Y5(wa$4ivym9)f+`UGAhL}Rv^+N3CHCRfx zYg$OYP0dL0a@X%#As@==o?MhwREw}XDMpBX+lWbf^eK>Nxj5z-{=j~v2D`LEqqWxM zLEilxP~_>=9FpG)g-K%Y|pY@j36+Ni3&cNqR$#^2nK0dxrJl&;q`ncQ~&m30Lt zKV|ZJ?Wugz@{<-<3U0@ve$b45o42OCyxqWefor++%^{!Rt7D+kUM!o}$|8*Ya_Uf- zv6_OO9t1*j1%}<()>dHB`;S$9?D+i5;qkO6>u?o1wQ5q~X+7N`vLeJP=UtEj7M!;7TQdpQh?y~Y#q zzg80c#So!V;Zh6B%UoT*Bfq&k6phNt;cGiMpk>Q$(a4Kx92M=ktbF9VITkZwjg2Pe zLwWwJh_;1kAR{BE-Qmh%wvPrIc!7u#VH?@jIhFVPL%{3zI16e6Ys1aBEMwekl~6UR zpOdn*NZa}Lmc~f{|77&h8aWa4)gY7FBuCFg??&jYjl^@GRnH~ikF%=>#(8_zH=2B7 zW=YfN%hKz_2#oM%saG1gN{u|8=G4W~7)G~2!D$2Grb#C5Gj?3C&2?dHWFtv@!2!Q- z15;Ic23$u4`M)KI>UF1yDTjGtq%83CbLOX`RI($rS6*HS47694h%s7q$vpbtonE z^LmrPMS1&lycR=;`7ncc-HdlEC+bK!Fu#@mWCv19OAuT?P&?PjRLIAW8m^Cus%}zPsVSrd+ePAx@;ThnUU;AT^9AEtfB0a= z3ya!OPp>|vefyAKIN}fnv{pp&+p`@^ZZ0K{v)@y0LI^`VZ1$M01^D6gYL$)_1KeDF zAJ$5Y#h4%m2CXqNTUX_MwCilbQIY%KzI{so@2=Mp!JpUe^H8bRNE|BS@2}0t43h^2 z+za*QFNp`TZ;%a%W%mrR7AQ#YOF3^1KBJye$Q+)Qr!dK==VPC#jRwLRq5@V3pgUrl z)d?@{-Tqn3fhfFllRKf4=>pm#51RF~VxXhpfgs^U+WSFywpx2)e#o(qY*stw@A`9P zo8(H+xB`s2;=U8RLX8xb)a%nU6?|KmTPRB0e*Kk_6M7D6va+%-8chbX5vCnXT3=T@ zGJ%#M=`6OaG^4I8w!@V3wR`h+3o{*V6A{P}J%Dy~OC?pIHK4`AJ*K1Y9Xxuw&YhzT z;3+I1;yr{c?JAZ{sgsdJkPq_hV_5w>1&eptvp>J3&r_68M$y67d6$@DcQ9oW-Eu|S zKOcV8R;t%XHL-$zm@21u0XowiOI+ibh*wptoHi}8nCD5wL1_AU_u@g^8c*ImN`DZ# z*mt)oN?vOiX?WXt)NMrnUd4Q(`|Dsz3UhHtPwVLRUJERl48hJo#!t>1pX#Z>EE@se ztx&n6bH}v#`xrj>@|nOTR6U1d4S~*JTHIS&eD?K}$j5lJ^ z8pzyG@#_gA;n9YNx|jri{t$zZnWoxNrQH4`E=|3qQC~*``N9jCA5pf1%|ftNo1Cnc z8h3Mfv-8m1_XoNt3h=ew{#kz_CiEo?Dev$(gYfM!yV2)E=L!27u{jOJvYif8&W#IM z=AmJ}Ns<-@%INF}^d+;XQ_&QYg5ho!W_MdT6Ycck(w(k=k}K(1=vj(9v=t7wgggd9 zGoo|^Q1;dVsdu*O8F@qU(e!;n3`C`lcsK0ri3U6UYsQF1jT;0>-&_lcR7J_i7(J4W zPTQkKejDVTT>y0%DOtnnRQMxKnC}h?v9{_DsDD28292w#JzGy)RrSNDgcx3CR>Iit z{3eLla>cl#$OdeDEOYIHsf~0a*6^eBg!heKJn(xh7tDodz7C4$sj=!)jT>FbvDg)5 zBFkUEA?4@)8rC|lDXQUsXOFQCsGp3lk%qilhtrLP%gBfuM5u+CiHwxlGcUfFHLhp- zWy6BrqdxICg3$SHTRnry1PjY$j3uzgjOn}{+jVe#>?3WZil}s66*HXX`)-1Z*~kbP zqan`&c0EI5Nh>ytn5L0odE<=~*o~u)^j67pQ0lVspSbw2{TkL%p&y*5G2KIvW!zEk zj=zbKgMW}JDoqqA!}fS^Cgn#Z&Uiy+nyXyOQ6YtQcBH)7TdeZnd0F+3-4O?>?gmm2 zY(6Ri8HSZwfTkT85m5n{^iy&aa+|m*D5f6{5_0SjGy#f;=b@=Xj!5<5qwOnvtX zc6M?_Mt`fQ#YAfm!avo1@%0?QBxXA!G$n8Qw=n^zYi7Nc+U1vK{+Evd4%NRN(rW+q zPyD$={?$=HV|xfZk^l7%lxV#kV$lEfFPA6HtEDr6^Xh+roGdGI1vuN$@%=t6e|N9D%+9ySK9E9l2qw@Tvc@z3wx*V zn~8X@IQ?qGzd||W;23x;?7f|xZ^h4|t+NxRC+J32Zx zdrJK;eDoh@gfNiNRg;iV()=JTO-@ZsEyUD;T)+9N2GKOrOyS_@s7Fa!Hf(~4mR3FW zZwmx4Gm6d7>;5KYCSl=HCFSLXg+)nut&jYKvZ7>KDsi_8_`fIV{x5o*QnkEY06J*~C^|swzOglg<^PuwL%JUKvo}#TG`5p#M1F-N@pV4IAav$W_p%~%$@LlUa9x7=5gXL?ih)0hk_gE>u-189V^J~?%PC^dDd4{ z(zJa1b}&AG(l^le)bSnm=>^VWp7dx43z!&RSpVTaHq1|nX=BLwg{6ZH*|LVC_;ILH zvKw%mKxP1lWkqm3>fJ?HQxByJudn`IMm<|CMM$Qlqc1HhRga?rv#t01ZgS;er@V#x z*>vD><)tkp^%1C{4i66c+V{Lm5^D8BEeFo%Y+F7f`s&dZj-pbu%pR-i|H?J(oAXgR zday5U)IFvHi|4B5(I1sa&}e&~}ymZ+m%p>Eq+=3na$(y>#*~ zQUczmE?X66r(%S-F$7dI}bnJR4&&9*cbkIffI!ulhxSWFp6r0Wkby zrr_~^Zi)*pO-nFz#z1ZWM-Ak8b#V6Z%wX0Hc$oD%ynQe4XE{%J8%`$C#|KD8 z)P!Q4eKMNd6E?i=jPL4^u&}Ta z@i6EdxHQ+bo@XWCw0ghIf{l%TzO&!uqoX~SiaU|bX}?I2lt(7QNTbl{)F23Wfw8g$ zJl<0?7TFtwNj_{Jbo7Z!>ht=+cK>2!b;fyg?0XV55*2;v68og8n$}Sf^Sn2nJvTi| zD3G1jM!;c5?oGF69LggIxH_3~yu5z@>{{$BiBH}jWHN(o`FvLRts*l!dDmn1_u52E zl7FddRK`as86e%4<0^>4ZDD6;I8{hUk(rfr_2;}t67@7sSx?V*Fl_3l=lyNppQ_1N zHpcPhW}Ye`=5@?xu!p6XUTz3++e0po9c<81G||dhrMi9H)z1Tj9iq3q%UrhO=^LJh z(4(F7iuT3N$smG=$VeJ0>Yv%XX=o%!QcJ-5;noyhRV#a}VvhV>4Y?alq|Vzutkn;Z zvIgy{BWqY#*i@91HYWr$l+^7WPl)=?E!RX}v@dU`dOADbAjyn$xU#LC0YzK1qs;|S zQYjrBU>a_@X1M}3z2j+I`XVA5Lt6tt(T203VcGTgU59%7Z6kVYd}4e;lChA3xIueB z0Qo77>)Xvuqb32c4wILL1-IkyXH88W{%t!Cy>ffIskUOwbYw!FrG>h2j+jVuUERdQ zL>jq_aA`|AvmT1enR5zX!Ly8di^A{U&kuK;o4DO!N%-ns#>#QY^U3!cvzuqHMp76v zU94C0KaFsnfE9&+a98#pG0ABE0@6uJ4OYuTWI8%acQdZpYXtgn8m_@4cWxd>)fKZ zPc2+Tye@#dGVuPi?cTz|qMOi}&!xLc?PRwSZ(dGb4`Mz&rhysc<-54IdtRk;Af){V1NHDFUppJ za2aTPToWhCKSC_W^h_VG*VE9q_syyM&aOj^ZHzHFEfo=uYAKVzU-X})J)S{AwvucBmJoY z#2>nO8eFfd-f?l+@6E|^!(^x^E5Ci)f{#Z)`VNzD><=CZE|QGZEUReU&`xjM%#3Oi zJcyu^uEy``5&wr-V)MDH>oE$=*%J1y!qwr9jM>!~0|TL_mr(ykLg=4R|VsWGO?a=+YahYtk>J^eds*wFX;&YeG#WTt|ag|kyQ`5F8P zNMlIRR+PV!XD33 zi_e+q99UtF?KYrB5$o@_G()-%fu#i!!bt)_!mbT(W>(yzWM!HCxV)ap<@Mw)%O%4W z*&A3{BOD>nRi>t9#pAqh#jSFOS_5Ta6L;$ibhVk02Tms#&f%*H6M;^S_Vf2&(DkP>2=I z)8pHcH6f9a9n?sE_jv0Ia@!$$S7U^8Vl=zBz2bfA!&Qkuv^q8}5Df+M4xe-154R=jk-2G!ibz&kTY6fb9tbT zIoaSH4kNt0rInQ-H+=cv;PAQB1+kTdMYR-}meyBq5k0{(&Gw7hVuhbKPBr!R@hK@c zJnNWF3EB;|sBq`e^PpC!(HCR<9DbB)YNUtCqj?hqCoJg^KLpes{gvITau0=S$M7Pmq}uP8f!-Xrc}I7pEyj$%SuWz}~c?{s~ELiM|4R|l}i02Vl;b1*F8qtp=T4;(*{QL=o#H2eka<)x9Kk>KFa%^&ta z5}qJ^=^hp~%#~EGMO+$u+VgNT=ySMKfSdW@jfh%(RF(k!QbQXQd>~E2Nd7Qz+B9zV!z*nbcYDlRHAXzfn_%Q*a^{JMSU>Oi1U-t8cS zX_Pqa(}L(SN?v>^m_A0=TgPF#_qiLMmG`;Nr>3DXKPgLE(V{UCt+SX#yaMP;&b}G` z-EA#yEQUfB;8-ByktAN*@yMB^c_gyTq_Ey4z{D^2fJzV%M{W-#f}2g|mvupVe|@7{ zmAVh^YNL>d?o-$h!6VBoC&pFccHEv^2v3MZ31GFW6nk(h0G~vKBdW6SJtoR~dh*`; zJnnZDc)2O{Tm`&;`-!98P9Td}GVtS2A5h{X3EwaQ*luiPgCfMdM(pnm^S{QSe;=nw z#iVLO+)w8j5Ra#pdji3{=XT=j3nIUz^ziC3sD4w{9=wwviAomU@t(4tv>KNrv6huB zGBRzkWF<2*#+StA`1lX#&&|n__GqMtn#bdz3pk67IER~>`x zL(%@Tz=@1`CLorlB;kvSQL+JPBnY&LgJQ<|p1LFClq z8K=<}%!)&A*vE%x5Fo&*x1`7Q9cku`l030oQ_cKI#=FBqfz10ZWX1Jn}mGg4)< zxld&@QZq9lGt>vIAy-in;xW+7_A0+!Fe$vDw?K?UWRAJirAUg469K~#+S8l-42zU8 z7-F$6tYZB&dwGcj#=<5gefN%uCKTxYpi)?7Af@LE(Hg64-d-xao@bu(T%OGM4go9t z)8wGNYU0~Olgp1O4N;8%ry}=0l6OmhQ#vQTBQyqJzoHt5Ic#ciNE;E$M8w* zKwA7O+7kNp&4{FSZpg2|C#^tDAs86$idI}Cyz0#F0SR`Z9McG|J2wpf8i54qutn9W zCg2hk*|H6rn@1-Wz_#vLJLP#jFOdEuUfg6j8U*r|`o(p~>J-QLqwrX`DZWn5pgTlJ zhK+;`fk!=(=thR&?*73$_KL?Ftv)lP^Q*pH#mi5dilmvpq$XQIcNR!9o%Anq%}q^p z9#nW86NJwaG_Ncd#Xy8ta!Z0|DUk5YOud~B{n8p5yFT$lueI0fw*prPGLSWvC1s;$ zJCvcEGgEi&5Sr9ga#T_lHFCGG@P&9PeSRZk1!P8q@1TdTWvxzaRPQJ#UN7xGYQTDj zWbW}|iL?gc)tZ|NKbWlcAK8EeNOg>%3KvlSEd>aJUgOH3Hs=4}Y5vk% zz)*nHbO&KE^RJ*s-mCfqkZni*(T9A$08)j}o2c~viBF`E9IrWQjz8V8ntz|56BP|$ z#K7e$Vg5bj+>qDsbBG=u>p#NPEd->{oqq4k{QSvu3jid`XP%x`R$=<7AO1Dp??f4o ztn44H>X{mxAVAo}LET^f!da{;C8j%8>K60c3pJTn4EygBzd>K80VkLj1bwikq@*O! z&@3%4?bb7;qVg?2Nc~$dBZUlre>9nph?SDf3a_q?sBzL|V>5(QeIcRD1tiO%YQoml zmzjkDx%8!Km6Vs6Sj(!{Gx+<7=2Cld0$m1{w6yS&Vq(sO@U^k)b=#e;iYon*D<5x5 zrvaZZop#8$FB8PTXLKNBzgrYi*)^r4cmx=(*8QR8zw4Npp01t)$e6aoL{(AI$L_mJQ8CfnmB9sf zpkVHfAkjf0csriM*HThd(hxV5>bTWtyO^1tzSJa@&?f^l+@R|@`ssEv9#U_O@>bBw z#weg6yYcLOD&HPp*QTGZuwAO);jgV29R(fD33@#4FO4l@#K&j-{A@Y>T^Ds=99X`j zBqwLHxF9ZXwFib4%VlHz;XxD00-Pyb-!d~ZpS)c4uN|1&T3<~4C87wz!^3rX{rUmQ z3(SYUuYZ6`YGDI}4Pb%p=y-nHv@ktBprWFzxHgqnYnx!^Zewm@(v;&2LPQiTY;OLL zatd6fqy0AzJ(ruCOEJ?e>an-He9}@ffZbUCs%d}kh~gdN+;VA$X<*1?c*gM6%uvv+ z#z!YYe%Q~5jkzTywCmG=jG+^Wh-5Idp4S5`W(`gLBb-!Cc9)6#5PSl_B%E~(bnoA{ zdLIOQ>XC3cOwY@^DS*>!w3n6{8P#oC*!$fA8%2=Uk}}a|sJ)DWqKH9&;eFVPz7m^I z{DKo^_vkGdlY>ks5tR|90?1m<*NL19-M`9gL!$xh1|Z`+t$&{fLf63ep4aV!jDaE{ zB_%YSCWiRyTfV#o^h-pDG~izk5AlJ_bE|0&ff_@ASPaRE*XdL5WR==WR}WTFBA5nz zk#-|DQLfXWO8SZin309#FycgK)gxGkE_3m6N8(t z)Qe*J!*huf6dGKq(Lnj0-}`#S!_4eTBP|*wD^ua^T8(8vX6EDgZ?8NZWof60=fK5@FDxzE>oihxasrB= z$5em^0D(JRtyPaqt{l&D)Nb>Jd7IcLlae=kcDcLG0_%sw%B`xVrlk6q4$VMC2NPIG zNyW~=v9ZYS>EL(xEj$NG5HQE9$hJ!8AmQn-aXpwZ02}&s=>Xg5T?S2x&}ckUt>RM- zRBrxaY%Hwv8A+dMpp9IE?aO^%t;#^mH%b~15eJI8ri^y+OYFv^!^J+?@dGOH_qx5r8U zP6ZM}vK0b!CG-{4tHXIWXF*u5?sm(|-O8mVUXl)&Isa+)8cH1xRt5jRkN z=(=_sIwHW>(c6N{Qzn2-t)7mK_wnR2Fl5r+g*LafFJBY}P)UGr_Woocy-rVg3S%df zjFeP}thY`kz&oOKs9~m`()GF_mCxILeqh5gh<(2h(eyi^o!QS+D_>H%G-9Q&0y^h08Zw#2$ z=^sFSmpJBU2y8a53XPn>7T5i~ySdAk&Qo2!Gfxj6@Rf+BvMA)*8NgwKyFTrL<5;L+ zt*!FAyyv)9XYyKyqLGr5+q$bQj{fbrKDB@O?Bl3}o{dAx41%_O6@q|AV`%ha4u^9H zDSFvM#v2_pBHiC3xD(-6xD?)o#>)#wMa6(lMEv4r_Zxr@VT%_OWwc>kJB0_(52-n zDXW1{5LfGckhF(R03XK&MCXB&tgJBABX&O-8a4+jXS2)Y{W906Zd_6ti&?jciwmd$ z+dCIndjbJ@R3et$U(IY5K(iC2wQglG6$&zcr2t|0d})!cF7N`eP;00=vET`>>)hPj z?lT53>Ba?V`Yxgt?|A6qW=Bt92!MBGP%U^vBaLGOx96h=PqQTInYI>3FD+V)XljId zNYeH)#XT)uxDb|QkOz2!PbT!Q4`M zY@;n&v)cu=pTRFC+ip}7#3Lb~nc121664sRF|k+@IMix6sLEd$f1N4h z1^b+ardftlZ9fNzrPW|LUtvo4iG!n;=g%JyKsD&h^m5_@XZ!YU=jIOITsYi-WupN?EX1X^1xelO#;(DKl@9MO_q#Q1a$C=eW`-{#NHP4!uGS%H7XoY}Rnw%M)q!?8(HNW`4Z zwe6Km8Q(p|cp%}B$C&TdmHLu+1H6TBXrdA$E~V-pF;pd=ls*~Kqto8Mc*N=QHEbEH z{SY)8o4mf3n_$v!Z#Q&iRW(3Z;Ia&Xj5k>5QL_bju(S8wJX}qXA7@bz%zjxgn--K- zg4Cf5d7@sJNJZf*T^T5XoZEv!4YeGA+CT-Y-3$1X$eW$Lo~XqQXo-XgLB=lRyo3*m zvLZD0wHgE~5zbYtZvzA^$7Rxme(FD@d$24~fIgxTFiI$EDWa^RjpVhWe*fZD(Y*Uf zNjO;nAGSbJypq{`&-GATc%6m^f3X=UC6TkBsst@uFx5JcGxI}QQkUvMgWS>jIYl<~ zu~M9p!?QG3F~MIGJVpjiaOMNY&^WwbU!kO?at_rYzzpM<_%Yl2VQIm=_pNQzKfnLWmRJUlLkk4b-aAxL8yh_~`O>Sj51wBnD z+-24>*WyG*3KMe%G!L{5ud7p#I%3+nO7RV0uTB8!*&3Oke zMWyTYCqN~jSMS@{(!!!~H8vuMU=c{SN(2QLFfdYya$Mpv%>J5*4ue;alk+zowpP^8 z0OFk+1^wjbZ%?~t(rUFEZDW`vWItnFsK+KC>3giN8v;d?L8A@Z+ldkUG<-!PTkDBN zc7@!o(jhu))a`fS#G=T;dMEtABmT#uR>!E+_q%I!vGDi9C!RL!Y;F-1T)BAfLLE;b1!90Ut z-Db1j`d&9%!F;UbMsuSFv2|5d?99xa6o)dmDI=$+KKEDFF7=@Djm=QIUy7xfz?uC%{)2yO5U}3e>!xdO>?kFy zoNP6)SI^r4JGKUD?`miZZm`=><;zBHQ*-9_{RarLs2;eRXgnU*;jfF_;_z_vWs3im zR~E6%-VgHDVaT2ys(=mVRj7ZEWMAy4rBsxBad1LR1A4TWdlg<9Sm0S^;9!|=2s zV8t068fpZC1Iczv**n1YtfQo4XSZ7L;I_>7xuMoRLQNy@>hw1s7GR-&U2dAZN*V5x z$@OXJX)rL*iBw9L;~OC2BbUp|3qyick%<=l{-wf!7?Kj&a%##8J~a36iQ!?B;Ke*r zjKCWwI}LXv03@|DR@J2nlYhT5lLWL@+ocBMt*7U{q1wd2u!)92L2nou8QDp%ijP&A zpEN1%abH%xYk?|_{Vmsab{cuXh$zRDL1I0mPrOOW{R}gV1y@&xoGV4DqBI|bDKR-}Ewmgb92mEp9rKutu@*M;nGt8B zQBGA=SvjEPjw~i>EN-u!WRkU(m98fw1tIBGAPs+20(_lDiz1qOC6H3#JH<-sw4tCD zf)Mm%Zi&?k1yH^FF7Ih?Pl#4`ZPGmU&zmHVwXg+Q;1kuxX~aTzFoe?`{NcCyd~30B zQ(Ub{JNLSBVFj%ZhB1V$2-U9$cSeu%-rN*!r@x$FUUHNs_WTkAm8<1;WsX4N`%c8z zs_Bf<2eO`#nLAhtuF(C50c1r0;b^HDTw|-OqOKtSXqIHTc)@XE<0~TAp3>Hqv%76F z&%QiJ{Q6e?i*dZ}g^+lX_L$B>s3+l0A>?=Z-X8RNaer+i(ERn2Iu-N?ugZ=7q0IuM z?BG|$0fx^-`fq!OD#ELk1)83Y>h*c}ONsD(g?NgD*qvAu*3q;7Zm=!0yK!|PK9e5011gVzgt14 zJE^GdeE8e=W;L)-K?(HV`FOSW+`>O@FVY%L5g;Ih!>XwrT9q-YYf6PrSnyK*eeGdi zgdv3%Ytbz*-^qQA`jnV-l%9rwc^iHOl)KHx^=%dg@4amC*z6v!v;2JQ>Erj{O91)X z=@|A$O8MOZj4|dkQ0ssCg6{*1Y`6IH1eN{Uf2ATtPXF}%#r=Z=OKZ!n)0cWTDhHlI zU7d$^`=t`fUyP zgJ8q#UXp(6=ezW^c|W}@eYuRta&5^_Mm1a84y_oH+|SO5xH z9e~4UV%dGEkr(js(G_U(qkzme+5~tz2F*SX@-Gq(gn45C5mWkIW{|y4G%BJ@gv>jD z#w;^3BS|=f1{w5*47`J8f#vTbZh;(yjGpJAu4!qtL{Kp1^ZYgk6@_r^n`B_XS%1IQ z^1}Asjt46K%)qQm_qU;l2x)sg+|#Az%Ri-P61zsd!FIpBK1xfsd*2y7ukhf<5Q{YX z=WUef&#yCJJ^{|B(JX=TL*1lK`8<=YWLx)%?`37YggE`fA3sW0tTiouGwbt-P3Cm& zuZy^dFr`=HuwHG=&xgFHr>AGi6lytbTw9<N=uOhPhLltKj5#8KAi7wmIGHM5dfV!G=Xd2zrAJmJ+2VnPy<2 zpwQ9Lp*vSwfgM-pv$15%=}O!Dy1<7bK+%6-zb^U>l_YG$myuAu1}UH6GWsC&dH7PPl>b5aFQp(rCe^;{Zp8n$cBiQ zczLt+dI0a(6y=pK>j(g74rGDfNK8rUTlxCaf$?o)(fBPH&7M@P8Lag1F!Szc>H2nW z#|Ls2Xr{9b_+7)#6V5qAyj7@T8T?Ov&CSgslBi;V0B^p+Lnt^4k?}`~1L1o3Zt@)G z*=idSkK@Y9ui>Ubgk6)Fdiqo|G#oRr)7s445WscgG~tvTlFfhqN9y`9Ck60uesQf7KgD-1U7rl=?=-#gf;tf+uw`y#xqC{Aro7y^AR9Kzo6aj!LvuCg4Fa8 zSR9d%oK;j*&;aZg{KAa6jRrE>adl0@>Q=4w?8T1l=%`;R8xuX7^H6>cTWyWmSTHbtJZK`*sSLe-UVygW$519 z@C2Rv>lTO8<6j>-uyAmm>nsqwb88LF6F;fi*w~Qf{`e89`l0vk@(j+R*7Ghx2AATe z>(OeXeh0ucgSjQKnyM+xXn_j~Udk=L**Cl&HkFZ%kfD~{uHfyc)QZb^KyIH2@NiaE zJ`KEN;yvc&HV_Em3Yo3*k%a4aIzune!fWLB!9a=WXl;c|{sdljb8^_9+ZwOj4{Y~B z)Z6ijAqXw5D4m^g-gmIzu9}B4SNO33Py;nA9wqJQQ^vfI}pG=s>+LM?n{cq{SseRMqrhc>w1=* zC5&<4Q@r^<7C`pOvyb4)HGFT7B%U3J-~B7?rcG*TT61Nk&*|k#Zs(hQ9wH3n38}Y5 zVHCF74_D+&OiaMGqUF0C)XXf0>)8U1gF}aJ?Jg0Y+s0|S1@O#~LJJ~6Mvve>WlXVR{ap zy@79?X40=GAdX4@$vYQbnn2BbPN=KfmMt%jwk}lFNvh@i=VRy8n{mF+A3W|_VUX~v z)he|^vjklz4q+J?-dFy-+V28ao5`ke6GLE&YmSbNX6oKE{Ja{dtEvkB(-zP!_&DQn=C?2N9N|~vJ)Ymic1H5(Z(WvR- z05UWJr|xg{rDA{TMZinB;=~|XH449MP$mH~N zZJib;gp^D%@!rnK{gp*FH)9@!Z{M0MMuUc|tPZ)p>wowV7andY?PRpiH&R46IiDj6gLU8Ni~T~esiD#?S+Vl zB)lFkKw0=rMo#5gu?2mV#U^0x~S0NHnF zq*&;qZv7wJWCiHIKG-?v{t_FDolpi@gxlX7?vyA-$4cdJ0Hup!5F#|ha(t+7|B&_b z=7Z6;7l%w(S|Lokcl8XAXf{zkrMYo+>_QyYUzu*zbS{zh%n@($YMf)Rurv4)64uUr z;|K$RpP7`1kG1)wFlA3yW zQ(B!eaoO2Rh3u=65Zpz@C@wC3ROL@JSdgyswIY*W>q!Q+1toKd09urn`!k@NeBghB z5C;&x4Wi#5v(dgUx&0!cx}|gv6{4xB*Hy6(DDA2!{9s;MErEk3la6U@}My-o#392`@$EC0Ks!Rfk0GJLFifUJ*x`vT{q{K4VA%l z7>q&h#0LWAN!XcdagBvt-kK|+Px0CSIz}im3NpR`Yh7opu&g^}-0{(5GkuK< zI4ZZ&E_lT@Foxs`Fl6q7l{%Rp9Ouwq0{cGLH^GEaL&HOeuIErp(()4`2Rhm%Vqq^_ z-C_dmXOkm7Rr-;bpEl4+^;0Q-*f2B~ChhijK77J*;Q)D4SaZxu7?8YeJ*Ai=uev!N zh#@mDnb}-QqJImjly&SszjefE&viSyzXX%{h4f@^kX6?eCF5WSA5(<^-FS}nXMXCy z!;=+%K_<9uZ}(c)_2HUS5m6d)ThlwG?%wCML7UrN8*D6J><*kkF!tWF6Nnw;CdPa7 z$dSSM;TOnT6JHa=z~D{>KT_JUmIvjY!Nn%b4QGf-MYU63o^px&a@Ys&J;PC_qoWHf zf+7$u3khLi}{AgKV!ZJQ#~W*AQ)V-XLmat{#q}#!fWF^gtcFbPEg1%~9FGeZsi!cErFYnsy=J(+Xnnl*&)ZjFNE?GvW4cXY`eLTDe9YL`*lE?d6-{-CTYC`8MA}>t zGSaCTnm_aPMxA5V+65lR!o`4P(vx4elLc{GIf{imbm&cvo<(pLP;2%6P zAAO?1Z02ZD`gNc24^{75JaXmdM!fK*C&!G1Z-@m(#~74m0>l-Ros3jJQ+n!jI8sD- zy(P+uZ4?dpXuyQllfEHf<31pdGI%ihy`9^eDVzg4^$Eef0qvX&X%)gFf;u2F25ML@!<`dUI(LWr9P1? z5vRk=;4gSl(nWuzPSNDWK?H`AB31z2J{rdDmweaTzaq+sU`AoEwJ-vsM`zNnkR|94 z#+4fGc=J^YZ@K;~%t>oP1Tc$ckus9S;o-tj`P?_>#p8aU0r-B6)%87Q^k_J0oOgE~ zi)oq`k!V=FKn7FHIf=H>uQt#fUsf6vhjmK$g@E3&~O9Y2NSjBCk+;`c{`TZ(o_ z)WKpsc4_k+WtAcxv@xs~NNi=_SDL&W&5=9t4=>M+rJVsh4IyNSphO)k8#O>(q3 z+Y^%=lZ~!U^aKzXlAiiIo8uv}DutAcl#pj4O3BCw_Y^fR@P7|j0k*=kgD*l} z5Q6=(6$kY3L$smrH;i|^x70t)e;1fi;;KTh2%A?_T?&Y)CnN35q5C8yFCC;1_(R=W zgz46iQ7y5?t&sMc?oXrH-4i}A!y_fo^X%(EH*a@Q@d=+>fiN88sC=OthkfC6vFyFG zIs=Ji0QN{SD?t_8NN4Ay`41-cf*{Dk0c4UC(zzeH<-b+U|13Bf4=8jJ-d!^Q{Y?_^ z{bSb+W^i+ayrP@MQ4pc|gi&;_=1(gRtxy;iVE_E_<*6v!q%~xGdP2!n^E@FT#2w9u z^#8JU8-qgB(rNi|!|5vDPN&w=+}z44gzFhtFh}9B5f`{?E7z>KafJbP;gYiQZjl3u zcM%~a<08XQIpFDH&ub?$@3?Qhw+nnMfU`L4CKn5r7=JJ4QZAm zqO7buXiQ79F z5Th>-QsIMR2ZsmG&88HHd2hX1WHWeLT3cIl*RhSk!Qe@eRSLh@ot6rc7&=n zOp*V*0VIXRMLv|;lA3(nWUn z^*5BQh-+BP>6(Vg!tG*mno+iWVDr(;SrV^kfqUFJNHafPz6hs1#DC_bPf^O0)N<s>oWeW$| z`nf@;h(t_I_yV$(^Ggx<3>Pv<3|geC18Gk0+^vftWGFmvht!A7dxrbb-}upkFj>=2 zG!^tnz_S3Z+{rhrLgx|bU zpW0Tu{r`;OuOV&wVL8Xdpgz~ENpctlG3oyd@{!#e5AhS#w)(}54$tfQZGBe%yR$%4 zZ+qE($cCuc*fGdmJP2P33&e>UjfZeAK&3H`hS0u z6uO-h(C)lN9Hcn@_veJ+y-i=0y5TP>ZvQ$7%zyqZYoB5OC zKSO*y3DaxpN*_%}S?)ih`%50e2V}%{*7X^pf1N}Gn&9?D;^5E<)xk|g73*F3ZGBtHKv|yBw*~%>_gY&Xc z_wwPMZn`M2W4&1a`j&VdmsH+ZSXfiDIYma_y)CLM)pKdGy`U#Iujeip4*3Gm96*n& zJ~{)ksiRDjikWIfX27yDHX-2w8tPeUSz$jq{jXa@iss+n^l^WG-@?+Wd*${P+F!zt zb$YTS*k1|hc~?S$K|DR|i~jF#1aKX190>rz-FG|cN;x1+WViO!4*7a!09HGMjoH11snZrK`qRTkRKWN~yozNP8c0tKB)>(E<6QcL7L+ zXyFkAe3X-+XJmYCEqKap&{zL{n~RLV4*y?GZnFMWlOvzl4b;d2AwA`e&SQO)lJ5;Y zP|_7skqS;g|GwAtyCGZdwE`WU>a{u$OBklRSKs#HJoSa-UDpe+OV#)sK!L)E>M3~KD zd%>rpxqbR~hyC&TzPqP8dwnudQBjgHc(7(9>hlN*)b#J(B>}FQkj#~z9+-`kTt3|3 zgHaS%O>iZPY_$hH0_e-&_5ab*-W;xX_5gf- zgY@(UM^_gWRb|i1dlwB02Pb8W)RSXA?kiWIGlA#Bwe9{;?zbR!bQUEyR0TF9nf=j; z5k8j2LK3iH_H@eQU`V-)>$762Ej=hI~ zyf<3v#=!o>;d}Y#D#ODQqyqH73uc*8iW)2TieZ1E1YQe%T#!-utNQvoUqP0j&0w5`>vN} zVq-#VEouEqR(5V+0Jb^sGdsk~%+NSIP$NEGis&*aK8Dlch$1@S1+tOl%v2}50V6=2 z)#M6VFBU?CAB7JRSy54+uB^uUkk37y6ctVsY7P~}n-U?`=LuhZ%zUEK4$)l*MWzF0(6%y|2$!Pf|kqhb7uZN zMyypLml5pkkE>bg8qV*kT!4LcM^NmY+CQqO_2T|e=_3-%(K_afs2+oia|$j_cp}do zOEWXGgSMA#c~MdM$(}9;Z}#?r+@0q`8;mU`nv`OT3rWx?z3ZtLB3s&GSyS8FKr7$_ zhc|)Itxw+l#2#W`TxY(BT4zm(NQKEfSKJ%EYK)9jyI<#2U1@`>-_s(8v{-F(Jj=(n zFjG<4xe7*TU~7`33XnP+?9lLRMCS}5C@t*J@3;XSrrzy%6J^Zy@MwD8h!fe2ykSf93*dA%iPx z@;zXJILb30M_W!;)!TAmwL<U=o#oMt*Yu&w6Zb`S$}h; z3`Kb^BHLmHWiJm6sSlCTaIJm6H=23nnP&H*zh|K^H){`ix%dft!`!9eb5B9+b_X1( z`oIbU&dej(fUh<2!+E<{5HDNkM{az2WQ^lXPk~y^)@x~RKmo}%x12ytfLe7I>OGv_R*^68yjNc!X@42mSDERkrWV1 z_O%KY0*YmRM*jQUcj3j9P?QGr7N{{Dxi7Bi>w7U0KXFNnU%TE>La@*?@?ZDW7Q~{$ zR^c3@@nT!jT4$LBv@3-eH1kI;)1@)$WZ4S5dcHvIlraL$*x2?$c57Mk$Z&11 zS4nmoJ==DEHC;+dYKr;t@p@hiHe+y`7svSb#jMde;!;M2j@|wS56w2H<00=z_!j~T zx^NPlO%rRH!43wFNEdT!(=1S#@G+4~fgdl}doF-JU3ihLfH&ssxjl zRA@^i&J_rJo7-%VMT#2Tce~Dhaug&#MS`#lr#3sl2&uE{{{;9? z8p=33&*wQg<`O2f5#@Tb=YxCR9}&+RBNRy#*c8?ZbR{H+y_QL$F1nWo3XQevO5Io9 z>8v)pU(`6^y*|AVef8?0>h~*;q*I%8zQA`M(WKud#l(Dy3ZzFf3x=B{36_O^KyKO< zL`1x5YGMmd_CO0okH<6CO0GZrF?g!(Y9AY@{|Ej7^J>l2=%cJDE!Z~cp%aQki_b%cVw~p zbmDFFb&ih`H1A0T1tg2ZFRC4zxw)Yv-1e=4sZ&jsk_b8vVF7?OW- z#LgaN7dp4a9EF!W8hyK$<)r^f>#6;EMg|?*uS0U~jFz5}5e(OYAkNC-wvX4`r>~}E zUK_ne#@UMai*`(@Z_y4V&Hn@K(5n7HJKhgo7-&&^JoveulT`@sf*UL@t#Va4On&$5A12yIOHZi9^z`YEN={Z$S4Yr|raH3bPl8tR#IWhiF^!4wtIBdQLPq6g->K}rGYkT7t>f6!_< z^>7Ot`Gp+Q#lHWut3D{4tY?gWY$Z$dghO3$N33C?yLO;|cZ3en4;6Q6v78)JuC+kT z)`5iH1sABTpaU{15A*SM$@y>Yz=&oeWM5uCp*&FZ5C9>o=|&sD2R7nj_XUZ1UhJjP z?C5wz|Hvgr!`-A>;;gW!-ulqs%*_Rek(qCq!Oo(BzKk!{OZygGsLj{Wdj(uJ^N9E4 z%F0c?#(hQq7B7}2(#<0DINLapygjteZZIb~IWI3BAjwSNC9)aAPI85(w(H3|R;7rQ z$5j^74)E@Yi72lV5;wLoUL545G$t+X3NbLV2^`6W2IrzL@gu{~mi-d&KW8JZ{JRW zhAz>Z;2w> zyNO$?wgR5QcS|2Kb$w6YZkRYiL|RQ&oGbF8&2x%B^~T`;a2Wwp5B@tlgZ<0j(`eqC zq118K1oRERHSd}q*MIPZN=s8Ss5$2S`=^2g6rRTccmzGfs};+OA^)^8$s)AV z2|yh^t5Ka@VI;Otxs!NwD2JJE#4vJ^3!E&tjr-nO${wF&n=&ScW*l_sBa+ST3@Y12 z!oor%F^{_{s&hfY7;37&nO?vthR@n==HUDXp4-E|`%|QA>mgLHLd)|{g9CH3a)D_n z*sR(O!E*cor=46EO;rMSdM>cveanRi!ReWHUVK%O?R2Jt73+kz=nh%<2S!T%c^yua ztJ$gC5>x_5(Z8r748^CeTmid*J3mrS)cE%B{s*X3`v9&n-({br@OKdb4R8%p%D)RO z)qXe6`dXe9`F9blaG>2HoIliL=4J+w&AP_ui@%HBF!BWCzbs?t_f5L2djGN6gTISH zDcFNI6#Dj60E~9JNrTO}e&WFYyJ)&_O`cs)z~3?}qo5!>8SSF2PD1GZOVaR?o4;*< zLEtZc0cU^g&8e0mwx^al-96*u%KY$itJ$Uk9MU?mzn8-w!A}VJHu%-i+4*E(a9mkM zFFPuOmjB7$pGl4K3p~kpg|8zsyBnG_Qm+XSiPfsZakLAkr>~U6 zuJeyTH!pCC9?LxqJJAYMTRu_NKK#-RAANf^FlC8*oyM(-hIf07$B2Ep_Rd0xcL5Gi zFUraqYa51$n!kDlx+i&b@4j9E!v&ANylj&a&`(yJ4rCF&de-+h_fz(+lH&~{Lrw{<0Jq3m+v3un@bZj_r5!E zw{(6WcS~#-Z|iz42!Y~(!NUy&g&dq#VXZ3yUg1M%5&`(|Eo-pj^AV{p?ZVEabFl`BZ?epcz z^%Wt4xVU$R|L(MT?-|EFksZ7IvwXdi{=r*bKIh+ajj2*LU~U`Oc_fY%4&siE8h?#b zRnXaOMT|lS@dk}?a&v!xDL^n(9C3j={p{AQv!qM>aKOLf;wD4ZYp*<;0`A;d;Cpsx zZ80w_E}jEYT|7IsAafj-lVg>nJxdq^<<u+sp^1V7+`9 zOpHh1c)Y_=Ug|F^o!^dz+u$CFDY^C`Dk_El`twQ$j}m*o+Nmp0=oi%bd*JVz^k=?O zCg?V~AhuIuVXJR928PK`4Es~1etLU7InqA9o&O<^^qE0LRXB?Qc|2)EIK>{2t&)MU z1e!7&N8s(~C8yu!T zc4Rgtpus-K!)w{|7fzJ60`|P{aE4P>Us+76WS8(pVPBnH02~N${uSqP*7Yv#HD~a9F~a< zGYp*MOh5b3O&Y z1)o@L42`ealU)A?C~?6L4b43?Gw9zUY)dmK^C*f^ z@xOEfU3n%;992988xxynh4IlNKIB=nMjF|e6PB2i^f?G;v)?o64r{*ldAMmn zd$C8i!HF|xICXm~smQ{>C>h`2lS1#g+MRD*Ph>2AZ-Q}JJCD86K9p$L$5J@|8;mj}r1|C&b{)gv(Hn3o zZeNs6u$%rDii*ZBwNTw6wwBMUya_$@?*6 z|JxK|Ny0=+j*ro|vI>bApY9^EUp~mwgNlgA##L}}{=bNg?ViB|!(l%;qosNr(X-oM12jD22RiUt`h0)PRK)!}sC0Z{&@QZ6Taf)h7#r?BH2j2^bMypo)(`E-rU~3|6F1viF32TaA ze^GRhfEUZ-C#wQ+-?@Gd3_PJL(P_<&Df$g|`3aotE!#a|1!|KFup{qggIzfn$eXgV ziDDgbdk+r}6wvjculotlBTErT4gG-2#hX?eKWSHusknDa3qPp+1Eo?V+Ka;e=w|*j zH-3re+AYJ$SrCuwytsfTO&j^d$MfoNFAhVWCapvkvxqP@v5GelyP;9AOJM@Nu23>m z6Ir(Ja%GN%MO}C?c?VS9^cp`&aOPn*w5RW7jEGip{=(kfa+{`A7$^c{&n#WQDJ@`sJw0e0g15@U7C~jAFFf72G1MM(;fnI3 zOaOgy%GsOby&lQp*V(t!ukB$_gxri5h9*X8-^|o*C8wqoXdRft1NNW12 zIXEk9J+Ce_BqJ$uC^R2rrKi7RR#Oe+5jzbpB44Dx5pC*lNfvl}Z00GeFs+wP%PD-w zYF-Ng|4J0z+4UWV68W*{I1Z>G$C~=0e`wT36RlzyC*2l?VND4=7*YJDXq5fhcxWAk zGvNLqM~W58&Pb{AyW3AfArd5PEfYVll$KYhx8%mH7eAn6gM1QQ&>mGRGvpJ?w~2|3 z?KM0nfi|G(WOo0n>Uh1X$STXAW#(mj_za&Pq^R*a`9Yt}9!>s2jIN6E>iKnNP~#G? z5W3&-r9}wdX+WqQZM+oeuKCK`%F53h`)+jV>PjdDf3YDWnijCSiM{p%CE{2DXwtH0 zmBm$w`b|1c%Lf>_)`-d^KXfNH8nP0*WPczPbbR(ww^cf{K8OkFmy~?TFVHry=L>8)oK5)oj&5c8`cWEvt}x&ZaId8a4+WS9HRKa*elqbr-^o{wO!65My;2U8J$6 zd$VtO^v8oXHh->ScXJyf>)B$3)BSV-)J~Zu^FjULO1ZmmQ~T*T$p4emwdu?L`)zVV7S7wB2)lmRg=VBft1AT6RP(6IsSHwBGyf@)a}XvFtF)o(J?@-E;4R zMX`5NfMdKX{PYezANsVIPP4CiXO6 zVUDg_ua9OZ07-Lzq=u6z|B#aHZQpS@)NA3>{i7M&Ud+XGzXpjbs11$jX4hT8!QHo0 zr-4&%1er&=zN@Oq9S=PrzhmyLPzak|5`y0`3|f!WBH%WNYgliN2+)*tSm6XjjVeb_ z&w1y|S?%wsdJ73)s_L|hKeq=sr-YR5Q&Q5w+93H5%^Z-%9`0Th^n8wN~D;{zj1L#griUeSJebmMI1#PTPLNC13$EUFmG* zEl^uut!LE!UNoA|Puy8=D7`Gr$iVl!EBBd-BPE9T#B{P=6rA&0yoh}2_@hz7r`*#& zMar)@^I^HOPb^=vDj2JYoGjm2RD|M~!kH*gQ%`qBMeF@^v5(FUH)$lApci%#f1Gp;-bhbSu7+x~osl9L1Qv(;#$6D^vjRd}ORF+=0 zX)hfZlCqs?-%x7WmW+#4t=`?%wD-L0&H+afy)DPIM0m%24222CCT8a696gNKm*~36 zmJoY=M>RP&mpnV$<~m!1y8K!jU0FqKwRxbwucrlW0qLjj=mf_{yN4$(b_&SX_qI_< z1sq?3BkDX1$YY~c-SpI#70A$E0w=S!! z=R3VZ{(!3g5TG4!XS>as0gwQSa-1sn;tH~Idki`Lcu=?R1Azt@BB)1}DAOo8k?HAW zQHoLo1o}w2(c7aFoIi|$>k_&qHb0&%iMO=%)micJxr0t46%~nZ=Fd3l?5no`!1Z{g zd8K--HB%$0bl;74-@+Oz>5rEJCwWXmetR8qagoAC%16Lsbj<${1jG(W+tohgdCmv@ zgHOzRQbE8+m?j;Zy2(a^OUA3uo&7+!Fx#z}`SC%+(Xs2nIDWa8ug+2(=9D!h)Jlpu zen>E1hfWVXDf&E=bg9tjWw&@-t}85Q_q`#2jI%jWw?T>KJ_jnff1J1__}4Ifd|NZY zL>`p`P@o0`GtKo)(P=rK6xGzk-7^)U-E?3Q2t~B5P2d{07BZYHe*JotkdScYo~E!&(DTDFhsEie`tmB{N&%|BjV8tpn5|=Yi^t{yz2?Dk<4JIy!oPrYbNA zOT0j!xR`)JMpaq)?S7r@#Mk7{asl3EdZsmd6Z0ILm0%YaML^)0#8+QfNMV+vL_-6% zxBdvq9_ze4nY!~=)>}%=sgV#W8!JQm#fw@#Ha5Y5_>Iy2U67anso2IOFj;e3z%tlG zNN+f0RzL#hJhMotWX|3*NznYH6mEi4Wp@d6F3vP$1;itkRp;@Eopo2H1R8QU>}y|w zpfk>NTRbK@tjVzZD6K`vQ?e^gb7TbcKYe?=H5(%pt6HKpSDbv=H}5H;8Tv#2EtufC zjIxB_WAi(=SXR0wh%sv-l)w(}9sv~qGPwb4KfpO1mkK6-7`{w(Y)_?UHcPbi#?DS* zVNnE-kQPyf{=Djt&_YYkx&Dj{T3Z(!e>+%XLrjc{H}K6@S~9NyJpmao#G#7X^hgk& zFHiamP&v#aDlE{^!otvck*mdiFh5&mJHPJW$5gGkO4e%Bn# zCNwqHV|wzW(S4+?_uF;srvxM)YySIUqN1ROiRbE4fQ1?h4a558ubf=}_={(cIe2)P z-_02RE7`EIeYt3WVO_6=XrUiC{IZ&8qGO-Op@LsO6vUP0k#2dJX?*oL2QKKe0;O0s zyH0GhpCQT_2Tqrmm?#p?eT28@W|IF{GnrulU>LHe`j6g`WnSJqg=Gd~*jtxJ58o_6 zwn3lDCSauJfDA#A^o-@12e#?a0(VnHL84uOYT`u6Yoi=@LH2dCqj!cr7oe@}X!-iJ z1M5*$Kn!+@;hA5>vIK5HL4p0uLbZ)E-#Ly;4$04%Y8w$bRC@Z3@;`FvwFU~A7}wqZ ztIe!Og2uLbV$Dvgdq7&C%F2;G_YBO9GbLx=r&ymJ#FcT z*WJ8=dV}@kN}>ndIT2b&ZY z7tgJi(;Xc>ktxba5eaIK^p)gsdy5@ZfT({|T2=O?qKemZ<-<^_W~;-sHTBmWvuDm5 zc&@+qfQrF3-zArV%AnQqPASK*s(pl)*r~44jC|sXa%llHogSBd-UAMv{e8VYLOhTZ z8QHJjfO`eziX$Tdt*3U#-VX`c_SoSC6kcCZ!J(j_z*mp6uuxj{W$=ZZiRs$o;S>K8 zH&CmR&i+{T{vrHvgCP1xOWIMCs(4Lx#3TE~&taMgppVo3Btre!zY#kg%@-O^o8{rg zkeeIgHBd3dZi)kleCaEzD-TvW9?hvNm8Hlb>DGMcP*l@8FkTDYj#ss&q*NydH+GB?Y9xPKLQ_hLxWM^= zsn+y@7!^$nN!jOFU&`=hZsZ67yY*QB7fkL^;Bv2V)gbU#{QF|uU1+q&+Obg;&yi) zWMvycS$Kq8IX&-b?bKn$%zgTZa-V;|2_>VfftEXnAi{kY7K?#I)8p^`5}YG<_S2s1 zo!zr`J$Z%{7G&&pE=$we{d>mwF)M2~rlbwAnrClr?#8gwm6rOeJ`c#hP-(HsM{=gO zuV3Y3EalcQ<7dm0REl(&WhN7pw&rlT8J(Xc0mBK>%!vTVa8AtCmYo4sX@{(;{D ze)3J8EYWVEOWE$FG=#2_4LwnZxm_P9W(1K_O9)6;7J$!m3-I`iuF^@4x`>k&d ziDux0&)MLERDg-0_3LDab2W}6{9*2HyAUB!gF)Aw1pXZ!7V#vJoT0W+vZ>sDymep{ zl-*JdpXSR^C^!TMs|VIKL0q<_#7{%Ltfx+3#~R?EnM>BHO;`ym z=`w@-e2Nkf#>^oPvgXgAE0NGb?~YEcx5YcwrabeTrj9_zjxqoR2i(yux&|MA<%uo+ z#X;(%_Dq?{)qklJCV`N`2%eWxg~YL3ga!+5N69n5CCHh*O|-$@;okJ}xIoS=B-+(`uG z(X>7Bm;8QT(Ez*sV~d2gNPp+}cxRX+5>)Ld`h!V5cR7v+aegd_{u!P;xW%MVlB2YOkSB(q_!LH{yswQpa5!{ip%$ z6!uT7wr91q1$lWG9X=9QGd2E0K5F~Gs2NNkO=}>QDzm3j)1vicf3u0gAW!p;sxj2XfdMQY z9nb+{X=^S3)AyI*gDgd*sM^DwZviEDp%@BNboBJ`B*a1QGXyT-3z6P_Wd=1b;WCi? z`1%E68SJ9X&BC@eBtoA>>o?C~d#brhzHaN2GpnEJ9}UCU*$MW&PIA8llUG8mc^$h7 zS!Un1V0Z^;yYbMv2Q=VYkMm!Lybnp6uPaI})Uq0bAd&>J%*rbe+OsFjK!@8xyDbo4 zvd7!7#cp?c-T*&16xSKz0>hm-o&>1OJ9_0NTFJkm- zI6vSWy(+xL+!ouYTqpIcsRW*cNMCw-7J@U0D4ZQ`$wXF#IoyOECtQ&~soS5_f$Z zY`>TerX6>!(ZM7hl$P4(*S#0fYO$lp(ioR2d-)+74UQPst~2i`F$LT_zMsq~dSxYx+h)!M zXSd1ocVEB`J5%4!seV$i)|!yAT@WP;C9xMb!%T_;4H*~kD6N=-$L-HLxWSwa9}Qmc;nHSWU4&R+!Ym@{0$vV1u)G1s#NV zFf%Wb_q)Z!Asb{Y(ZgccLaip@S2`GU;j>u{y}`!ces#W>P)$4ch}*;8pGdX)|i z3^J#4*DV5BGcFyI{dHj`okC-}Q8TEPL88XBS4Z~8FF1gwaUq45JHu|a5I1PjN~rto z!Wx@neGRreG1Sn!w{wSUJyM_5;`^O&T>l5eM`j_x@2xMEowdxt!(yY<;4#gULDzF5 zMaIYFI2l(_^1gz-?fLkD$d7i4@F%PMaEE@B4h09b*MbeX8-@{8v3J!)A+Fi7je;Cb z1fNdzAgBF8iJAON0Ayz2`~IZ&scN++rR#T%&F!mX6-~{tgR#Z$X;zmp6S`5Ah-V6_ zy4Qg)!*r>e9S#HD36TL8_MzVN)QqOOdI}EqB~y29dSSLFhR;w4LY01|1ICn&wczr; zlkoH{Pk{utR8y7X@obi~gx0zeq?QchISQk5JV%k|9YZgojlO-7=|ZEz0m45V>NZ3g zdc(y?TOX+WWnjZCH(aa**Sn7KFP|E^Nm8ZaNh|)BkAr;^;ljQ^$aVWK(Dwh+3yy6F z8Z1$9aFoW6@&EOR08bH0(@Bv5h?ieE68*owp-bUYhs^RZ>}(0w``Lf2CGf?kB=82j xVVnO7{>NnkIW(S|9GYEl9`b*^F>~|_Djw9F^rPR?(+J=pDJCmg{9MoX{{tJ9E2IDb diff --git a/docs/images/private-github-token-display.png b/docs/images/private-github-token-display.png deleted file mode 100644 index 289f802104f33241eda997f650a9e48398ef6dc6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32634 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

R%)?0ku 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 JF7Vsue*vQ{mXiPg diff --git a/docs/introduction.md b/docs/introduction.md deleted file mode 100644 index d494cacc95..0000000000 --- a/docs/introduction.md +++ /dev/null @@ -1,73 +0,0 @@ -# Introduction - -Deno is a JavaScript/TypeScript runtime with secure defaults and a great -developer experience. - -It's built on V8, Rust, and Tokio. - -## Feature highlights - -- Secure by default. No file, network, or environment access (unless explicitly - enabled). -- Supports TypeScript out of the box. -- Ships a single executable (`deno`). -- Has built-in utilities like a dependency inspector (`deno info`) and a code - formatter (`deno fmt`). -- Has - [a set of reviewed (audited) standard - modules](https://github.com/denoland/deno_std) that are guaranteed to work - with Deno. -- Can bundle scripts into a single JavaScript file. - -## Philosophy - -Deno aims to be a productive and secure scripting environment for the modern -programmer. - -Deno will always be distributed as a single executable. Given a URL to a Deno -program, it is runnable with nothing more than -[the ~25 megabyte zipped executable](https://github.com/denoland/deno/releases). -Deno explicitly takes on the role of both runtime and package manager. It uses a -standard browser-compatible protocol for loading modules: URLs. - -Among other things, Deno is a great replacement for utility scripts that may -have been historically written with Bash or Python. - -## Goals - -- Ship as just a single executable (`deno`). -- Provide secure defaults. - - Unless specifically allowed, scripts can't access files, the environment, or - the network. -- Be browser-compatible. - - The subset of Deno programs which are written completely in JavaScript and - do not use the global `Deno` namespace (or feature test for it), ought to - also be able to be run in a modern web browser without change. -- Provide built-in tooling to improve developer experience. - - E.g. unit testing, code formatting, and linting. -- Keep V8 concepts out of user land. -- Serve HTTP efficiently. - -## Comparison to Node.js - -- Deno does not use `npm`. - - It uses modules referenced as URLs or file paths. -- Deno does not use `package.json` in its module resolution algorithm. -- All async actions in Deno return a promise. Thus Deno provides different APIs - than Node. -- Deno requires explicit permissions for file, network, and environment access. -- Deno always dies on uncaught errors. -- Deno uses "ES Modules" and does not support `require()`. Third party modules - are imported via URLs: - - ```javascript - import * as log from "https://deno.land/std@$STD_VERSION/log/mod.ts"; - ``` - -## Other key behaviors - -- Fetch and cache remote code upon first execution, and never update it until - the code is run with the `--reload` flag. (So, this will still work on an - airplane.) -- Modules/files loaded from remote URLs are intended to be immutable and - cacheable. diff --git a/docs/linking_to_external_code.md b/docs/linking_to_external_code.md deleted file mode 100644 index d440d39d2d..0000000000 --- a/docs/linking_to_external_code.md +++ /dev/null @@ -1,110 +0,0 @@ -# Linking to third party code - -In the [Getting Started](./getting_started.md) section, we saw Deno could -execute scripts from URLs. Like browser JavaScript, Deno can import libraries -directly from URLs. This example uses a URL to import an assertion library: - -**test.ts** - -```ts -import { assertEquals } from "https://deno.land/std@$STD_VERSION/testing/asserts.ts"; - -assertEquals("hello", "hello"); -assertEquals("world", "world"); - -console.log("Asserted! ✓"); -``` - -Try running this: - -```shell -$ deno run test.ts -Compile file:///mnt/f9/Projects/github.com/denoland/deno/docs/test.ts -Download https://deno.land/std@$STD_VERSION/testing/asserts.ts -Download https://deno.land/std@$STD_VERSION/fmt/colors.ts -Download https://deno.land/std@$STD_VERSION/testing/diff.ts -Asserted! ✓ -``` - -Note that we did not have to provide the `--allow-net` flag for this program, -and yet it accessed the network. The runtime has special access to download -imports and cache them to disk. - -Deno caches remote imports in a special directory specified by the `DENO_DIR` -environment variable. It defaults to the system's cache directory if `DENO_DIR` -is not specified. The next time you run the program, no downloads will be made. -If the program hasn't changed, it won't be recompiled either. The default -directory is: - -- On Linux/Redox: `$XDG_CACHE_HOME/deno` or `$HOME/.cache/deno` -- On Windows: `%LOCALAPPDATA%/deno` (`%LOCALAPPDATA%` = `FOLDERID_LocalAppData`) -- On macOS: `$HOME/Library/Caches/deno` -- If something fails, it falls back to `$HOME/.deno` - -## FAQ - -### How do I import a specific version of a module? - -Specify the version in the URL. For example, this URL fully specifies the code -being run: `https://unpkg.com/liltest@0.0.5/dist/liltest.js`. - -### It seems unwieldy to import URLs everywhere. - -> What if one of the URLs links to a subtly different version of a library? - -> Isn't it error prone to maintain URLs everywhere in a large project? - -The solution is to import and re-export your external libraries in a central -`deps.ts` file (which serves the same purpose as Node's `package.json` file). -For example, let's say you were using the above assertion library across a large -project. Rather than importing -`"https://deno.land/std@$STD_VERSION/testing/asserts.ts"` everywhere, you could -create a `deps.ts` file that exports the third-party code: - -**deps.ts** - -```ts -export { - assert, - assertEquals, - assertStrContains, -} from "https://deno.land/std@$STD_VERSION/testing/asserts.ts"; -``` - -And throughout the same project, you can import from the `deps.ts` and avoid -having many references to the same URL: - -```ts -import { assertEquals, runTests, test } from "./deps.ts"; -``` - -This design circumvents a plethora of complexity spawned by package management -software, centralized code repositories, and superfluous file formats. - -### How can I trust a URL that may change? - -By using a lock file (with the `--lock` command line flag), you can ensure that -the code pulled from a URL is the same as it was during initial development. You -can learn more about this -[here](./linking_to_external_code/integrity_checking.md). - -### But what if the host of the URL goes down? The source won't be available. - -This, like the above, is a problem faced by _any_ remote dependency system. -Relying on external servers is convenient for development but brittle in -production. Production software should always vendor its dependencies. In Node -this is done by checking `node_modules` into source control. In Deno this is -done by pointing `$DENO_DIR` to some project-local directory at runtime, and -similarly checking that into source control: - -```shell -# Download the dependencies. -DENO_DIR=./deno_dir deno cache src/deps.ts - -# Make sure the variable is set for any command which invokes the cache. -DENO_DIR=./deno_dir deno test src - -# Check the directory into source control. -git add -u deno_dir -git commit -``` diff --git a/docs/linking_to_external_code/import_maps.md b/docs/linking_to_external_code/import_maps.md deleted file mode 100644 index 881c3cb74d..0000000000 --- a/docs/linking_to_external_code/import_maps.md +++ /dev/null @@ -1,53 +0,0 @@ -## Import maps - -Deno supports [import maps](https://github.com/WICG/import-maps). - -You can use import maps with the `--import-map=` CLI flag. - -Example: - -**import_map.json** - -```js -{ - "imports": { - "fmt/": "https://deno.land/std@$STD_VERSION/fmt/" - } -} -``` - -**color.ts** - -```ts -import { red } from "fmt/colors.ts"; - -console.log(red("hello world")); -``` - -Then: - -```shell -$ deno run --import-map=import_map.json color.ts -``` - -To use your project root for absolute imports: - -**import_map.json** - -```jsonc -{ - "imports": { - "/": "./", - "./": "./" - } -} -``` - -**main.ts** - -```ts -import { MyUtil } from "/util.ts"; -``` - -This causes import specifiers starting with `/` to be resolved relative to the -import map's URL or file path. diff --git a/docs/linking_to_external_code/integrity_checking.md b/docs/linking_to_external_code/integrity_checking.md deleted file mode 100644 index 3de2a5fca5..0000000000 --- a/docs/linking_to_external_code/integrity_checking.md +++ /dev/null @@ -1,85 +0,0 @@ -## Integrity checking & lock files - -### Introduction - -Let's say your module depends on remote module `https://some.url/a.ts`. When you -compile your module for the first time `a.ts` is retrieved, compiled and cached. -It will remain this way until you run your module on a new machine (say in -production) or reload the cache (through `deno cache --reload` for example). But -what happens if the content in the remote url `https://some.url/a.ts` is -changed? This could lead to your production module running with different -dependency code than your local module. Deno's solution to avoid this is to use -integrity checking and lock files. - -### Caching and lock files - -Deno can store and check subresource integrity for modules using a small JSON -file. Use the `--lock=lock.json` to enable and specify lock file checking. To -update or create a lock use `--lock=lock.json --lock-write`. The -`--lock=lock.json` tells Deno what the lock file to use is, while the -`--lock-write` is used to output dependency hashes to the lock file -(`--lock-write` must be used in conjunction with `--lock`). - -A `lock.json` might look like this, storing a hash of the file against the -dependency: - -```json -{ - "https://deno.land/std@$STD_VERSION/textproto/mod.ts": "3118d7a42c03c242c5a49c2ad91c8396110e14acca1324e7aaefd31a999b71a4", - "https://deno.land/std@$STD_VERSION/io/util.ts": "ae133d310a0fdcf298cea7bc09a599c49acb616d34e148e263bcb02976f80dee", - "https://deno.land/std@$STD_VERSION/async/delay.ts": "35957d585a6e3dd87706858fb1d6b551cb278271b03f52c5a2cb70e65e00c26a", - ... -} -``` - -A typical workflow will look like this: - -**src/deps.ts** - -```ts -// Add a new dependency to "src/deps.ts", used somewhere else. -export { xyz } from "https://unpkg.com/xyz-lib@v0.9.0/lib.ts"; -``` - -Then: - -```shell -# Create/update the lock file "lock.json". -deno cache --lock=lock.json --lock-write src/deps.ts - -# Include it when committing to source control. -git add -u lock.json -git commit -m "feat: Add support for xyz using xyz-lib" -git push -``` - -Collaborator on another machine -- in a freshly cloned project tree: - -```shell -# Download the project's dependencies into the machine's cache, integrity -# checking each resource. -deno cache --reload --lock=lock.json src/deps.ts - -# Done! You can proceed safely. -deno test --allow-read src -``` - -### Runtime verification - -Like caching above, you can also use the `--lock=lock.json` option during use of -the `deno run` sub command, validating the integrity of any locked modules -during the run. Remember that this only validates against dependencies -previously added to the `lock.json` file. New dependencies will be cached but -not validated. - -You can take this a step further as well by using the `--cached-only` flag to -require that remote dependencies are already cached. - -```shell -deno run --lock=lock.json --cached-only mod.ts -``` - -This will fail if there are any dependencies in the dependency tree for mod.ts -which are not yet cached. - - diff --git a/docs/linking_to_external_code/private.md b/docs/linking_to_external_code/private.md deleted file mode 100644 index 7ffadef041..0000000000 --- a/docs/linking_to_external_code/private.md +++ /dev/null @@ -1,75 +0,0 @@ -## Private modules and repositories - -There maybe instances where you want to load a remote module that is located in -a _private_ repository, like a private repository on GitHub. - -Deno supports sending bearer tokens when requesting a remote module. Bearer -tokens are the predominant type of access token used with OAuth 2.0 and is -broadly supported by hosting services (e.g. GitHub, Gitlab, BitBucket, -Cloudsmith, etc.). - -### DENO_AUTH_TOKENS - -The Deno CLI will look for an environment variable named `DENO_AUTH_TOKENS` to -determine what authentication tokens it should consider using when requesting -remote modules. The value of the environment variable is in the format of a _n_ -number of tokens deliminated by a semi-colon (`;`) where each token is in the -format of `{token}@{hostname[:port]}`. - -For example a single token for would look something like this: - -```sh -DENO_AUTH_TOKENS=a1b2c3d4e5f6@deno.land -``` - -And multiple tokens would look like this: - -```sh -DENO_AUTH_TOKENS=a1b2c3d4e5f6@deno.land;f1e2d3c4b5a6@example.com:8080 -``` - -When Deno goes to fetch a remote module, where the hostname matches the hostname -of the remote module, Deno will set the `Authorization` header of the request to -the value of `Bearer {token}`. This allows the remote server to recognize that -the request is an authorized request tied to a specific authenticated user, and -provide access to the appropriate resources and modules on the server. - -### GitHub - -To be able to access private repositories on GitHub, you would need to issue -yourself a _personal access token_. You do this by logging into GitHub and going -under _Settings -> Developer settings -> Personal access tokens_: - -![Personal access tokens settings on GitHub](../images/private-pat.png) - -You would then choose to _Generate new token_ and give your token a description -and appropriate access: - -![Creating a new personal access token on GitHub](../images/private-github-new-token.png) - -And once created GitHub will display the new token a single time, the value of -which you would want to use in the environment variable: - -![Display of newly created token on GitHub](../images/private-github-token-display.png) - -In order to access modules that are contained in a private repository on GitHub, -you would want to use the generated token in the `DENO_AUTH_TOKENS` environment -variable scoped to the `raw.githubusercontent.com` hostname. For example: - -```sh -DENO_AUTH_TOKENS=a1b2c3d4e5f6@raw.githubusercontent.com -``` - -This should allow Deno to access any modules that the user who the token was -issued for has access to. - -When the token is incorrect, or the user does not have access to the module, -GitHub will issue a `404 Not Found` status, instead of an unauthorized status. -So if you are getting errors that the modules you are trying to access are not -found on the command line, check the environment variable settings and the -personal access token settings. - -In addition, `deno run -L debug` should print out a debug message about the -number of tokens that are parsed out of the environment variable. It will print -an error message if it feels any of the tokens are malformed. It won't print any -details about the tokens for security purposes. diff --git a/docs/linking_to_external_code/proxies.md b/docs/linking_to_external_code/proxies.md deleted file mode 100644 index 2186aa7225..0000000000 --- a/docs/linking_to_external_code/proxies.md +++ /dev/null @@ -1,9 +0,0 @@ -## Proxies - -Deno supports proxies for module downloads and the Web standard `fetch` API. - -Proxy configuration is read from environmental variables: `HTTP_PROXY`, -`HTTPS_PROXY` and `NO_PROXY`. - -In case of Windows, if environment variables are not found Deno falls back to -reading proxies from registry. diff --git a/docs/linking_to_external_code/reloading_modules.md b/docs/linking_to_external_code/reloading_modules.md deleted file mode 100644 index e745996b1f..0000000000 --- a/docs/linking_to_external_code/reloading_modules.md +++ /dev/null @@ -1,33 +0,0 @@ -## Reloading modules - -By default, a module in the cache will be reused without fetching or -re-compiling it. Sometimes this is not desirable and you can force deno to -refetch and recompile modules into the cache. You can invalidate your local -`DENO_DIR` cache using the `--reload` flag of the `deno cache` subcommand. It's -usage is described below: - -### To reload everything - -```bash -deno cache --reload my_module.ts -``` - -### To reload specific modules - -Sometimes we want to upgrade only some modules. You can control it by passing an -argument to a `--reload` flag. - -To reload all \$STD_VERSION standard modules: - -```bash -deno cache --reload=https://deno.land/std@$STD_VERSION my_module.ts -``` - -To reload specific modules (in this example - colors and file system copy) use a -comma to separate URLs. - -```bash -deno cache --reload=https://deno.land/std@$STD_VERSION/fs/copy.ts,https://deno.land/std@$STD_VERSION/fmt/colors.ts my_module.ts -``` - - diff --git a/docs/npm_nodejs.md b/docs/npm_nodejs.md deleted file mode 100644 index c434b36396..0000000000 --- a/docs/npm_nodejs.md +++ /dev/null @@ -1,59 +0,0 @@ -# Using npm/Node.js code - -While Deno is pretty powerful itself, there is a large eco-system of code in the -[npm](https://npmjs.com/) registry, and many people will want to re-leverage -tools, code and libraries that are built for [Node.js](https://nodejs.org/). In -this chapter we will explore how to use it. - -The good news, is that in many cases, it _just works_. - -There are some foundational things to understand about differences between -Node.js and Deno that can help in understanding what challenges might be faced: - -- Current Node.js supports both CommonJS and ES Modules, while Deno only - supports ES Modules. The addition of stabilized ES Modules in Node.js is - relatively recent and most code written for Node.js is in the CommonJS format. -- Node.js has quite a few built-in modules that can be imported and they are a - fairly expansive set of APIs. On the other hand, Deno focuses on implementing - web standards and where functionality goes beyond the browser, we locate APIs - in a single global `Deno` variable/namespace. Lots of code written for Node.js - expects/depends upon these built-in APIs to be available. -- Node.js has a non-standards based module resolution algorithm, where you can - import bare-specifiers (e.g. `react` or `lodash`) and Node.js will look in - your local and global `node_modules` for a path, introspect the `package.json` - and try to see if there is a module named the right way. Deno resolves modules - the same way a browser does. For local files, Deno expects a full module name, - including the extension. When dealing with remote imports, Deno expects the - web server to do any "resolving" and provide back the media type of the code - (see the - [Determining the type of file](../typescript/overview.md#determining-the-type-of-file) - for more information). -- Node.js effectively doesn't work without a `package.json` file. Deno doesn't - require an external meta-data file to function or resolve modules. -- Node.js doesn't support remote HTTP imports. It expects all 3rd party code to - be installed locally on your machine using a package manager like `npm` into - the local or global `node_modules` folder. Deno supports remote HTTP imports - (as well as `data` and `blob` URLs) and will go ahead and fetch the remote - code and cache it locally, similar to the way a browser works. - -In order to help mitigate these differences, we will further explore in this -chapter: - -- Using the [`std/node`](./npm_nodejs/std_node.md) modules of the Deno standard - library to "polyfill" the built-in modules of Node.js -- Using [CDNs](./npm_nodejs/cdns.md) to access the vast majority of npm packages - in ways that work under Deno. -- How [import maps](./npm_nodejs/import_maps.md) can be used to provide "bare - specifier" imports like Node.js under Deno, without needing to use a package - manager to install packages locally. -- And finally, a general section of - [frequently asked questions](./npm_nodejs/faqs.md) - -That being said, there are some differences that cannot be overcome: - -- Node.js has a plugin system that is incompatible with Deno, and Deno will - never support Node.js plugins. If the Node.js code you want to use requires a - "native" Node.js plugin, it won't work under Deno. -- Node.js has some built in modules (e.g. like `vm`) that are effectively - incompatible with the scope of Deno and therefore there aren't easy ways to - provide a _polyfill_ of the functionality in Deno. diff --git a/docs/npm_nodejs/cdns.md b/docs/npm_nodejs/cdns.md deleted file mode 100644 index 36b26199fc..0000000000 --- a/docs/npm_nodejs/cdns.md +++ /dev/null @@ -1,186 +0,0 @@ -## Packages from CDNs - -Because Deno supports remote HTTP modules, and content delivery networks (CDNs) -can be powerful tools to transform code, the combination allows an easy way to -access code in the npm registry via Deno, usually in a way that works with Deno -without any further actions, and often enriched with TypeScript types. In this -section we will explore that in detail. - -### What about `deno.land/x/`? - -The [`deno.land/x/`](https://deno.land/x/) is a public registry for code, -hopefully code written specifically for Deno. It is a public registry though and -all it does is "redirect" Deno to the location where the code exists. It doesn't -transform the code in any way. There is a lot of great code on the registry, but -at the same time, there is some code that just isn't well maintained (or doesn't -work at all). If you are familiar with the npm registry, you know that as well, -there are varying degrees of quality. - -Because it simply serves up the original published source code, it doesn't -really help when trying to use code that didn't specifically consider Deno when -authored. - -### Deno "friendly" CDNs - -Deno friendly content delivery networks (CDNs) not only host packages from npm, -they provide them in a way that maximizes their integration to Deno. They -directly address some of the challenges in consuming code written for Node.js: - -- The provide packages and modules in the ES Module format, irrespective of how - they are published on npm. -- They resolve all the dependencies as the modules are served, meaning that all - the Node.js specific module resolution logic is handled by the CDN. -- Often, they inform Deno of type definitions for a package, meaning that Deno - can use them to type check your code and provide a better development - experience. -- The CDNs also "polyfill" the built-in Node.js modules, making a lot of code - that leverages the built-in Node.js modules _just work_. -- The CDNs deal with all the semver matching for packages that a package manager - like `npm` would be required for a Node.js application, meaning you as a - developer can express your 3rd party dependency versioning as part of the URL - you use to import the package. - -#### esm.sh - -[esm.sh](https://esm.sh/) is a CDN that was specifically designed for Deno, -though addressing the concerns for Deno also makes it a general purpose CDN for -accessing npm packages as ES Module bundles. esm.sh uses -[esbuild](https://esbuild.github.io/) to take an arbitrary npm package and -ensure that it is consumable as an ES Module. In many cases you can just import -the npm package into your Deno application: - -```ts -import React from "https://esm.sh/react"; - -export default class A extends React.Component { - render() { - return ( -

- ); - } -} -``` - -esm.sh supports the use of both specific versions of packages, as well as -[semver](https://semver.npmjs.com/) versions of packages, so you can express -your dependency in a similar way you would in a `package.json` file when you -import it. For example, to get a specific version of a package: - -```ts -import React from "https://esm.sh/react@17.0.2"; -``` - -Or to get the latest patch release of a minor release: - -```ts -import React from "https://esm.sh/react@~16.13.0"; -``` - -esm.sh uses the `std/node` polyfills to replace the built-in modules in Node.js, -meaning that code that uses those built-in modules will have the same -limitations and caveats as those modules in `std/node`. - -esm.sh also automatically sets a header which Deno recognizes that allows Deno -to be able to retrieve type definitions for the package/module. See -[Using `X-TypeScript-Types` header](../typescript/types.md#using-x-typescript-types-header) -in this manual for more details on how this works. - -The CDN is also a good choice for people who develop in mainland China, as the -hosting of the CDN is specifically designed to work with "the great firewall of -China", as well as esm.sh provides information on self hosting the CDN as well. - -Check out the [esm.sh homepage](https://esm.sh/) for more detailed information -on how the CDN can be used and what features it has. - -#### Skypack - -[Skypack.dev](https://www.skypack.dev/) is designed to make development overall -easier by not requiring packages to be installed locally, even for Node.js -development, and to make it easy to create web and Deno applications that -leverage code from the npm registry. - -Skypack has a great way of discovering packages in the npm registry, by -providing a lot of contextual information about the package, as well as a -"scoring" system to try to help determine if the package follows best-practices. - -Skypack detects Deno's user agent when requests for modules are received and -ensures the code served up is tailored to meet the needs of Deno. The easiest -way to load a package is to use the -[lookup URL](https://docs.skypack.dev/skypack-cdn/api-reference/lookup-urls) for -the package: - -```ts -import React from "https://cdn.skypack.dev/react"; - -export default class A extends React.Component { - render() { - return ( -
- ); - } -} -``` - -Lookup URLs can also contain the [semver](https://semver.npmjs.com/) version in -the URL: - -```ts -import React from "https://cdn.skypack.dev/react@~16.13.0"; -``` - -By default, Skypack does not set the types header on packages. In order to have -the types header set, which is automatically recognized by Deno, you have to -append `?dts` to the URL for that package: - -```ts -import { pathToRegexp } from "https://cdn.skypack.dev/path-to-regexp?dts"; - -const re = pathToRegexp("/path/:id"); -``` - -See -[Using `X-TypeScript-Types` header](../typescript/types.md#using-x-typescript-types-header) -in this manual for more details on how this works. - -Skypack docs have a -[specific page on usage with Deno](https://docs.skypack.dev/skypack-cdn/code/deno) -for more information. - -### Other CDNs - -There are a couple of other CDNs worth mentioning. - -#### UNPKG - -[UNPKG](https://unpkg.com/) is the most well known CDN for npm packages. For -packages that include an ES Module distribution for things like the browsers, -many of them can be used directly off of UNPKG. That being said, everything -available on UNPKG is available on more Deno friendly CDNs. - -#### JSPM - -The [jspm.io](https://jspm.io) CDN is specifically designed to provide npm and -other registry packages as ES Modules in a way that works well with import maps. -While it doesn't currently cater to Deno, the fact that Deno can utilize import -maps, allows you to use the [JSPM.io generator](https://generator.jspm.io/) to -generate an import-map of all the packages you want to use and have them served -up from the CDN. - -### Considerations - -While CDNs can make it easy to allow Deno to consume packages and modules from -the npm registry, there can still be some things to consider: - -- Deno does not (and will not) support Node.js plugins. If the package requires - a native plugin, it won't work under Deno. -- Dependency management can always be a bit of a challenge and a CDN can make it - a bit more obfuscated what dependencies are there. You can always use - `deno info` with the module or URL to get a full breakdown of how Deno - resolves all the code. -- While the Deno friendly CDNs try their best to serve up types with the code - for consumption with Deno, lots of types for packages conflict with other - packages and/or don't consider Deno, which means you can often get strange - diagnostic message when type checking code imported from these CDNs, though - skipping type checking will result in the code working perfectly fine. This is - a fairly complex topic and is covered in the - [Types and type declarations](../typescript/types.md) section of the manual. diff --git a/docs/npm_nodejs/faqs.md b/docs/npm_nodejs/faqs.md deleted file mode 100644 index cde1c593a1..0000000000 --- a/docs/npm_nodejs/faqs.md +++ /dev/null @@ -1,55 +0,0 @@ -## Frequently asked questions - -### Getting errors when type checking like `cannot find namespace NodeJS` - -One of the modules you are using has type definitions that depend upon the -NodeJS global namespace, but those types don't include the NodeJS global -namespace in their types. - -The quickest fix is to skip type checking. You can do this by using the -`--no-check` flag. - -Skipping type checking might not be acceptable though. You could try to load the -Node.js types yourself. For example from UNPKG it would look something like -this: - -```ts -import type {} from "https://unpkg.com/@types/node/index.d.ts"; -``` - -Or from esm.sh: - -```ts -import type {} from "https://esm.sh/@types/node/index.d.ts"; -``` - -Or from Skypack: - -```ts -import type {} from "https://cdn.skypack.dev/@types/node/index.d.ts"; -``` - -You could also try to provide only specifically what the 3rd party package is -missing. For example the package `@aws-sdk/client-dynamodb` has a dependency on -the `NodeJS.ProcessEnv` type in its type definitions. In one of the modules of -your project that imports it as a dependency, you could put something like this -in there which will solve the problem: - -```ts -declare global { - namespace NodeJS { - type ProcessEnv = Record; - } -} -``` - -### Getting type errors like cannot find `document` or `HTMLElement` - -The library you are using has dependencies on the DOM. This is common for -packages that are designed to run in a browser as well as server-side. By -default, Deno only includes the libraries that are directly supported. Assuming -the package properly identifies what environment it is running in at runtime it -is "safe" to use the DOM libraries to type check the code. For more information -on this, check out the -[Targeting Deno and the Browser](../typescript/configuration.md#targeting-deno-and-the-browser) -section of the manual. diff --git a/docs/npm_nodejs/import_maps.md b/docs/npm_nodejs/import_maps.md deleted file mode 100644 index ec78d6c115..0000000000 --- a/docs/npm_nodejs/import_maps.md +++ /dev/null @@ -1,112 +0,0 @@ -## Using import maps - -Deno supports [import maps](../linking_to_external_code/import_maps.md) which -allow you to supply Deno with information about how to resolve modules that -overrides the default behavior. Import maps are a web platform standard that is -increasingly being included natively in browsers. They are specifically useful -with adapting Node.js code to work well with Deno, as you can use import maps to -map "bare" specifiers to a specific module. - -When coupled with Deno friendly [CDNs](./cdns.md) import maps can be a powerful -tool in managing code and dependencies without need of a package management -tool. - -### Bare and extension-less specifiers - -Deno will only load a fully qualified module, including the extension. The -import specifier needs to either be relative or absolute. Specifiers that are -neither relative or absolute are often called "bare" specifiers. For example -`"./lodash/index.js"` is a relative specifier and -`https://cdn.skypack.dev/lodash` is an absolute specifier. Where is `"lodash"` -would be a bare specifier. - -Also Deno requires that for local modules, the module to load is fully -resolve-able. When an extension is not present, Deno would have to "guess" what -the author intended to be loaded. For example does `"./lodash"` mean -`./lodash.js`, `./lodash.ts`, `./lodash.tsx`, `./lodash.jsx`, -`./lodash/index.js`, `./lodash/index.ts`, `./lodash/index.jsx`, or -`./lodash/index.tsx`? - -When dealing with remote modules, Deno allows the CDN/web server define whatever -semantics around resolution the server wants to define. It just treats a URL, -including its query string, as a "unique" module that can be loaded. It expects -the CDN/web server to provide it with a valid media/content type to instruct -Deno how to handle the file. More information on how media types impact how Deno -handles modules can be found in the -[Determining the type of file](../typescript/overview.md#determining-the-type-of-file) -section of the manual. - -Node.js does have defined semantics for resolving specifiers, but they are -complex, assume unfettered access to the local file system to query it. Deno has -chosen not to go down that path. - -But, import maps can be used to provide some of the ease of the developer -experience if you wish to use bare specifiers. For example, if we want to do the -following in our code: - -```ts -import lodash from "lodash"; -``` - -We can accomplish this using an import map, and we don't even have to install -the `lodash` package locally. We would want to create a JSON file (for example -**import_map.json**) with the following: - -```json -{ - "imports": { - "lodash": "https://cdn.skypack.dev/lodash" - } -} -``` - -And we would run our program like: - -``` -> deno run --import-map ./import_map.json example.ts -``` - -If you wanted to manage the versions in the import map, you could do this as -well. For example if you were using Skypack CDN, you can used a -[pinned URL](https://docs.skypack.dev/skypack-cdn/api-reference/pinned-urls-optimized) -for the dependency in your import map. For example, to pin to lodash version -4.17.21 (and minified production ready version), you would do this: - -```json -{ - "imports": { - "lodash": "https://cdn.skypack.dev/pin/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/mode=imports,min/optimized/lodash.js" - } -} -``` - -### Overriding imports - -The other situation where import maps can be very useful is the situation where -you have tried your best to make something work, but have failed. For example -you are using an npm package which has a dependency on some code that just -doesn't work under Deno, and you want to substitute another module that -"polyfills" the incompatible APIs. - -For example, let's say we have a package that is using a version of the built in -`"fs"` module that we have a local module we want to replace it with when it -tries to import it, but we want other code we are loading to use the standard -library replacement module for `"fs"`. We would want to create an import map -that looked something like this: - -```ts -{ - "imports": { - "fs": "https://deno.land/std@$STD_VERSION/node/fs.ts" - }, - "scopes": { - "https://deno.land/x/example": { - "fs": "./patched/fs.ts" - } - } -} -``` - -Import maps can be very powerful, check out the official -[standards README](https://github.com/WICG/import-maps#the-import-map) for more -information. diff --git a/docs/npm_nodejs/std_node.md b/docs/npm_nodejs/std_node.md deleted file mode 100644 index 38327121c9..0000000000 --- a/docs/npm_nodejs/std_node.md +++ /dev/null @@ -1,100 +0,0 @@ -## The `std/node` library - -The `std/node` part of the Deno standard library is a Node.js compatibility -layer. It's primary focus is providing "polyfills" for Node.js's -[built-in modules](https://github.com/denoland/deno_std/tree/main/node#supported-builtins). -It also provides a mechanism for loading CommonJS modules into Deno. - -The library is most useful when trying to use your own or private code that was -written for Node.js. If you are trying to consume public npm packages, you are -likely to get a better result using a [CDN](./cdns.md). - -### Node.js built-in modules - -The standard library provides several "replacement" modules for Node.js built-in -modules. These either replicate the functionality of the built-in or they call -the Deno native APIs, returning an interface that is compatible with Node.js. - -The standard library provides modules for the the following built-ins: - -- [`assert`](https://doc.deno.land/https/deno.land/std/node/assert.ts) - (_partly_) -- [`buffer`](https://doc.deno.land/https/deno.land/std/node/buffer.ts) -- [`child_process`](https://doc.deno.land/https/deno.land/std/node/child_process.ts) - (_partly_) -- [`console`](https://doc.deno.land/https/deno.land/std/node/console.ts) - (_partly_) -- [`constants`](https://doc.deno.land/https/deno.land/std/node/constants.ts) - (_partly_) -- [`crypto`](https://doc.deno.land/https/deno.land/std/node/crypto.ts) - (_partly_) -- [`events`](https://doc.deno.land/https/deno.land/std/node/events.ts) -- [`fs`](https://doc.deno.land/https/deno.land/std/node/fs.ts) (_partly_) -- [`module`](https://doc.deno.land/https/deno.land/std/node/module.ts) -- [`os`](https://doc.deno.land/https/deno.land/std/node/os.ts) (_partly_) -- [`path`](https://doc.deno.land/https/deno.land/std/node/path.ts) -- [`process`](https://doc.deno.land/https/deno.land/std/node/process.ts) - (_partly_) -- [`querystring`](https://doc.deno.land/https/deno.land/std/node/querystring.ts) -- [`stream`](https://doc.deno.land/https/deno.land/std/node/stream.ts) -- [`string_decoder`](https://doc.deno.land/https/deno.land/std/node/string_decoder.ts) -- [`timers`](https://doc.deno.land/https/deno.land/std/node/timers.ts) -- [`tty`](https://doc.deno.land/https/deno.land/std/node/tty.ts) (_partly_) -- [`url`](https://doc.deno.land/https/deno.land/std/node/url.ts) -- [`util`](https://doc.deno.land/https/deno.land/std/node/util.ts) (_partly_) - -In addition, there is the -[`std/node/global.ts`](https://doc.deno.land/https/deno.land/std/node/global.ts) -module which provides some of the Node.js globals like `global`, `process`, and -`Buffer`. - -If you want documentation for any of the modules, you can simply type `deno doc` -and the URL of the module in your terminal: - -``` -> deno doc https://deno.land/std/assert.ts -``` - -### Loading CommonJS modules - -Deno only supports natively loading ES Modules, but a lot of Node.js code is -still written in the CommonJS format. As mentioned above, for public npm -packages, it is often better to use a CDN to transpile CommonJS modules to ES -Modules for consumption by Deno. Not only do you get reliable conversion plus -all the dependency resolution and management without requiring a package manager -to install the packages on your local machine, you get the advantages of being -able to share your code easier without requiring other users to setup some of -the Node.js infrastructure to consume your code with Node.js. - -That being said, the built-in Node.js module `"module"` provides a function -named `createRequire()` which allows you to create a Node.js compatible -`require()` function which can be used to load CommonJS modules, as well as use -the same resolution logic that Node.js uses when trying to load a module. -`createRequire()` will also install the Node.js globals for you. - -Example usage would look like this: - -```ts -import { createRequire } from "https://deno.land/std@$STD_VERSION/node/module.ts"; - -// import.meta.url will be the location of "this" module (like `__filename` in -// Node.js), and then serve as the root for your "package", where the -// `package.json` is expected to be, and where the `node_modules` will be used -// for resolution of packages. -const require = createRequire(import.meta.url); - -// Loads the built-in module Deno "replacement": -const path = require("path"); - -// Loads a CommonJS module (without specifying the extension): -const cjsModule = require("./my_mod"); - -// Uses Node.js resolution in `node_modules` to load the package/module. The -// package would need to be installed locally via a package management tool -// like npm: -const leftPad = require("left-pad"); -``` - -When modules are loaded via the created `require()`, they are executed in a -context which is similar to a Node.js context, which means that a lot of code -written targeting Node.js will work. diff --git a/docs/runtime.md b/docs/runtime.md deleted file mode 100644 index 4ae2315c4a..0000000000 --- a/docs/runtime.md +++ /dev/null @@ -1,25 +0,0 @@ -# Runtime - -Documentation for all runtime functions (Web APIs + `Deno` global) can be found -on [`doc.deno.land`](https://doc.deno.land/builtin/stable). - -## Web Platform APIs - -For APIs where a web standard already exists, like `fetch` for HTTP requests, -Deno uses these rather than inventing a new proprietary API. - -For more details, view the chapter on -[Web Platform APIs](./runtime/web_platform_apis.md). - -## `Deno` global - -All APIs that are not web standard are contained in the global `Deno` namespace. -It has the APIs for reading from files, opening TCP sockets, serving HTTP, and -executing subprocesses, etc. - -The TypeScript definitions for the Deno namespaces can be found in the -[`lib.deno.ns.d.ts`](https://github.com/denoland/deno/blob/$CLI_VERSION/cli/dts/lib.deno.ns.d.ts) -file. - -The documentation for all of the Deno specific APIs can be found on -[doc.deno.land](https://doc.deno.land/https/raw.githubusercontent.com/denoland/deno/main/cli/dts/lib.deno.ns.d.ts). diff --git a/docs/runtime/compiler_apis.md b/docs/runtime/compiler_apis.md deleted file mode 100644 index b4a9f43779..0000000000 --- a/docs/runtime/compiler_apis.md +++ /dev/null @@ -1,4 +0,0 @@ -## Compiler APIs - -> ℹ️ This section has been moved to -> [TypeScript Runtime APIs](../typescript/runtime.md). diff --git a/docs/runtime/http_server_apis.md b/docs/runtime/http_server_apis.md deleted file mode 100644 index 0d20c49eed..0000000000 --- a/docs/runtime/http_server_apis.md +++ /dev/null @@ -1,258 +0,0 @@ -## HTTP Server APIs - -As of Deno 1.9 and later, _native_ HTTP server APIs were introduced which allow -users to create robust and performant web servers in Deno. - -The API tries to leverage as much of the web standards as is possible as well as -tries to be simple and straight forward. - -> ℹ️ The APIs are currently unstable, meaning they can change in the future in -> breaking ways and should be carefully considered before using in production -> code. They require the `--unstable` flag to make them available. - -### Listening for a connection - -In order to accept requests, first you need to listen for a connection on a -network port. To do this in Deno, you use `Deno.listen()`: - -```ts -const server = Deno.listen({ port: 8080 }); -``` - -> ℹ️ When supplying a port, Deno assumes you are going to listen on a TCP socket -> as well as bind to the localhost. You can specify `transport: "tcp"` to be -> more explicit as well as provide an IP address or hostname in the `hostname` -> property as well. - -If there is an issue with opening the network port, `Deno.listen()` will throw, -so often in a server sense, you will want to wrap it in the `try ... catch` -block in order to handle exceptions, like the port already being in use. - -You can also listen for a TLS connection (e.g. HTTPS) using `Deno.listenTls()`: - -```ts -const server = Deno.listenTls({ - port: 8443, - certFile: "localhost.crt", - keyFile: "localhost.key", - alpnProtocols: ["h2", "http/1.1"], -}); -``` - -The `certFile` and `keyFile` options are required and point to the appropriate -certificate and key files for the server. They are relative to the CWD for Deno. -The `alpnProtocols` property is optional, but if you want to be able to support -HTTP/2 on the server, you add the protocols here, as the protocol negotiation -happens during the TLS negotiation with the client and server. - -> ℹ️ Generating SSL certificates is outside of the scope of this documentation. -> There are many resources on the web which address this. - -### Handling connections - -Once we are listening for a connection, we need to handle the connection. The -return value of `Deno.listen()` or `Deno.listenTls()` is a `Deno.Listener` which -is an async iterable which yields up `Deno.Conn` connections as well as provide -a couple methods for handling connections. - -To use it as an async iterable we would do something like this: - -```ts -const server = Deno.listen({ port: 8080 }); - -for await (const conn of server) { - // ...handle the connection... -} -``` - -Every connection made would yielded up a `Deno.Conn` assigned to `conn`. Then -further processing can be applied to the connection. - -There is also the `.accept()` method on the listener which can be used: - -```ts -const server = Deno.listen({ port: 8080 }); - -while (true) { - try { - const conn = await server.accept(); - // ... handle the connection ... - } catch (err) { - // The listener has closed - break; - } -} -``` - -Whether using the async iterator or the `.accept()` method, exceptions can be -thrown and robust production code should handle these using `try ... catch` -blocks. Especially when it comes to accepting TLS connections, there can be many -conditions, like invalid or unknown certificates which can be surfaced on the -listener and might need handling in the user code. - -A listener also has a `.close()` method which can be used to close the listener. - -### Serving HTTP - -Once a connection is accepted, you can use `Deno.serveHttp()` to handle HTTP -requests and responses on the connection. `Deno.serveHttp()` returns a -`Deno.HttpConn`. A `Deno.HttpConn` is like a `Deno.Listener` in that requests -the connection receives from the client are asynchronously yielded up as a -`Deno.RequestEvent`. - -To deal with HTTP requests as async iterable it would look something like this: - -```ts -const server = Deno.listen({ port: 8080 }); - -for await (const conn of server) { - (async () => { - const httpConn = Deno.serveHttp(conn); - for await (const requestEvent of httpConn) { - // ... handle requestEvent ... - } - })(); -} -``` - -The `Deno.HttpConn` also has the method `.nextRequest()` which can be used to -await the next request. It would look something like this: - -```ts -const server = Deno.listen({ port: 8080 }); - -while (true) { - try { - const conn = await server.accept(); - (async () => { - const httpConn = Deno.serveHttp(conn); - while (true) { - try { - const requestEvent = await httpConn.nextRequest(); - // ... handle requestEvent ... - } catch (err) { - // the connection has finished - break; - } - } - })(); - } catch (err) { - // The listener has closed - break; - } -} -``` - -Note that in both cases we are using an IIFE to create an inner function to deal -with each connection. If we awaited the HTTP requests in the same function scope -as the one we were receiving the connections, we would be blocking accepting -additional connections, which would make it seem that our server was "frozen". -In practice, it might make more sense to have a separate function all together: - -```ts -async function handle(conn: Deno.Conn) { - const httpConn = Deno.serveHttp(conn); - for await (const requestEvent of httpConn) { - // ... handle requestEvent - } -} - -const server = Deno.listen({ port: 8080 }); - -for await (const conn of server) { - handle(conn); -} -``` - -In the examples from this point on, we will focus on what would occur within an -example `handle()` function and remove the listening and connection -"boilerplate". - -### HTTP Requests and Responses - -HTTP requests and responses in Deno are essentially the inverse of web standard -[Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). The -Deno HTTP Server API and the Fetch API leverage the -[`Request`](https://developer.mozilla.org/en-US/docs/Web/API/Request) and -[`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response) object -classes. So if you are familiar with the Fetch API you just need to flip them -around in your mind and now it is a server API. - -As mentioned above, a `Deno.HttpConn` asynchronously yields up -`Deno.RequestEvent`s. These request events contain a `.request` property and a -`.respondWith()` method. - -The `.request` property is an instance of the `Request` class with the -information about the request. For example, if we wanted to know what URL path -was being requested, we would do something like this: - -```ts -async function handle(conn: Deno.Conn) { - const httpConn = Deno.serveHttp(conn); - for await (const requestEvent of httpConn) { - const url = new URL(requestEvent.request.url); - console.log(`path: ${url.path}`); - } -} -``` - -The `.respondWith()` method is how we complete a request. The method takes -either a `Response` object or a `Promise` which resolves with a `Response` -object. Responding with a basic "hello world" would look like this: - -```ts -async function handle(conn: Deno.Conn) { - const httpConn = Deno.serveHttp(conn); - for await (const requestEvent of httpConn) { - await requestEvent.respondWith( - new Response("hello world", { - status: 200, - }), - ); - } -} -``` - -Note that we awaited the `.respondWith()` method. It isn't required, but in -practice any errors in processing the response will cause the promise returned -from the method to be rejected, like if the client disconnected before all the -response could be sent. While there may not be anything your application needs -to do, not handling the rejection will cause an "unhandled rejection" to occur -which will terminate the Deno process, which isn't so good for a server. In -addition, you might want to await the promise returned in order to determine -when to do any cleanup from for the request/response cycle. - -The web standard `Response` object is pretty powerful, allowing easy creation of -complex and rich responses to a client, and Deno strives to provide a `Response` -object that as closely matches the web standard as possible, so if you are -wondering how to send a particular response, checkout out the documentation for -the web standard -[`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response). - -### HTTP/2 Support - -HTTP/2 support is effectively transparent within the Deno runtime. Typically -HTTP/2 is negotiated between a client and a server during the TLS connection -setup via -[ALPN](https://en.wikipedia.org/wiki/Application-Layer_Protocol_Negotiation). To -enable this, you need to provide the protocols you want to support when you -start listening via the `alpnProtocols` property. This will enable the -negotiation to occur when the connection is made. For example: - -```ts -const server = Deno.listenTls({ - port: 8443, - certFile: "localhost.crt", - keyFile: "localhost.key", - alpnProtocols: ["h2", "http/1.1"], -}); -``` - -The protocols are provided in order of preference. In practice, the only two -protocols that are supported currently are HTTP/2 and HTTP/1.1 which are -expressed as `h2` and `http/1.1`. - -Currently Deno does not support upgrading a plain-text HTTP/1.1 connection to an -HTTP/2 cleartext connection via the `Upgrade` header (see: -[#10275](https://github.com/denoland/deno/issues/10275)), so therefore HTTP/2 -support is only available via a TLS/HTTPS connection. diff --git a/docs/runtime/location_api.md b/docs/runtime/location_api.md deleted file mode 100644 index 6e73418285..0000000000 --- a/docs/runtime/location_api.md +++ /dev/null @@ -1,76 +0,0 @@ -## Location API - -Deno supports the -[`location`](https://developer.mozilla.org/en-US/docs/Web/API/Window/location) -global from the web. Please read on. - -### Location flag - -There is no "web page" whose URL we can use for a location in a Deno process. We -instead allow users to emulate a document location by specifying one on the CLI -using the `--location` flag. It can be a `http` or `https` URL. - -```ts -// deno run --location https://example.com/path main.ts - -console.log(location.href); -// "https://example.com/path" -``` - -You must pass `--location ` for this to work. If you don't, any access to -the `location` global will throw an error. - -```ts -// deno run main.ts - -console.log(location.href); -// error: Uncaught ReferenceError: Access to "location", run again with --location . -``` - -Setting `location` or any of its fields will normally cause navigation in -browsers. This is not applicable in Deno, so it will throw in this situation. - -```ts -// deno run --location https://example.com/path main.ts - -location.pathname = "./foo"; -// error: Uncaught NotSupportedError: Cannot set "location.pathname". -``` - -### Extended usage - -On the web, resource resolution (excluding modules) typically uses the value of -`location.href` as the root on which to base any relative URLs. This affects -some web APIs adopted by Deno. - -#### Fetch API - -```ts -// deno run --location https://api.github.com/ --allow-net main.ts - -const response = await fetch("./orgs/denoland"); -// Fetches "https://api.github.com/orgs/denoland". -``` - -The `fetch()` call above would throw if the `--location` flag was not passed, -since there is no web-analogous location to base it onto. - -#### Worker modules - -```ts -// deno run --location https://example.com/index.html --allow-net main.ts - -const worker = new Worker("./workers/hello.ts", { type: "module" }); -// Fetches worker module at "https://example.com/workers/hello.ts". -``` - -### Only use if necessary - -For the above use cases, it is preferable to pass URLs in full rather than -relying on `--location`. You can manually base a relative URL using the `URL` -constructor if needed. - -The `--location` flag is intended for those who have some specific purpose in -mind for emulating a document location and are aware that this will only work at -application-level. However, you may also use it to silence errors from a -dependency which is frivolously accessing the `location` global. diff --git a/docs/runtime/permission_apis.md b/docs/runtime/permission_apis.md deleted file mode 100644 index a71558526c..0000000000 --- a/docs/runtime/permission_apis.md +++ /dev/null @@ -1,186 +0,0 @@ -## Permission APIs - -Permissions are granted from the CLI when running the `deno` command. User code -will often assume its own set of required permissions, but there is no guarantee -during execution that the set of _granted_ permissions will align with this. - -In some cases, ensuring a fault-tolerant program requires a way to interact with -the permission system at runtime. - -### Permission descriptors - -On the CLI, read permission for `/foo/bar` is represented as -`--allow-read=/foo/bar`. In runtime JS, it is represented as the following: - -```ts -const desc = { name: "read", path: "/foo/bar" } as const; -``` - -Other examples: - -```ts -// Global write permission. -const desc1 = { name: "write" } as const; - -// Write permission to `$PWD/foo/bar`. -const desc2 = { name: "write", path: "foo/bar" } as const; - -// Global net permission. -const desc3 = { name: "net" } as const; - -// Net permission to 127.0.0.1:8000. -const desc4 = { name: "net", host: "127.0.0.1:8000" } as const; - -// High-resolution time permission. -const desc5 = { name: "hrtime" } as const; -``` - -### Query permissions - -Check, by descriptor, if a permission is granted or not. - -```ts -// deno run --allow-read=/foo main.ts - -const desc1 = { name: "read", path: "/foo" } as const; -console.log(await Deno.permissions.query(desc1)); -// PermissionStatus { state: "granted" } - -const desc2 = { name: "read", path: "/foo/bar" } as const; -console.log(await Deno.permissions.query(desc2)); -// PermissionStatus { state: "granted" } - -const desc3 = { name: "read", path: "/bar" } as const; -console.log(await Deno.permissions.query(desc3)); -// PermissionStatus { state: "prompt" } -``` - -### Permission states - -A permission state can be either "granted", "prompt" or "denied". Permissions -which have been granted from the CLI will query to `{ state: "granted" }`. Those -which have not been granted query to `{ state: "prompt" }` by default, while -`{ state: "denied" }` reserved for those which have been explicitly refused. -This will come up in [Request permissions](#request-permissions). - -### Permission strength - -The intuitive understanding behind the result of the second query in -[Query permissions](#query-permissions) is that read access was granted to -`/foo` and `/foo/bar` is within `/foo` so `/foo/bar` is allowed to be read. - -We can also say that `desc1` is -_[stronger than](https://www.w3.org/TR/permissions/#ref-for-permissiondescriptor-stronger-than)_ -`desc2`. This means that for any set of CLI-granted permissions: - -1. If `desc1` queries to `{ state: "granted" }` then so must `desc2`. -2. If `desc2` queries to `{ state: "denied" }` then so must `desc1`. - -More examples: - -```ts -const desc1 = { name: "write" } as const; -// is stronger than -const desc2 = { name: "write", path: "/foo" } as const; - -const desc3 = { name: "net", host: "127.0.0.1" } as const; -// is stronger than -const desc4 = { name: "net", host: "127.0.0.1:8000" } as const; -``` - -### Request permissions - -Request an ungranted permission from the user via CLI prompt. - -```ts -// deno run main.ts - -const desc1 = { name: "read", path: "/foo" } as const; -const status1 = await Deno.permissions.request(desc1); -// ⚠️ Deno requests read access to "/foo". Grant? [g/d (g = grant, d = deny)] g -console.log(status1); -// PermissionStatus { state: "granted" } - -const desc2 = { name: "read", path: "/bar" } as const; -const status2 = await Deno.permissions.request(desc2); -// ⚠️ Deno requests read access to "/bar". Grant? [g/d (g = grant, d = deny)] d -console.log(status2); -// PermissionStatus { state: "denied" } -``` - -If the current permission state is "prompt", a prompt will appear on the user's -terminal asking them if they would like to grant the request. The request for -`desc1` was granted so its new status is returned and execution will continue as -if `--allow-read=/foo` was specified on the CLI. The request for `desc2` was -denied so its permission state is downgraded from "prompt" to "denied". - -If the current permission state is already either "granted" or "denied", the -request will behave like a query and just return the current status. This -prevents prompts both for already granted permissions and previously denied -requests. - -### Revoke permissions - -Downgrade a permission from "granted" to "prompt". - -```ts -// deno run --allow-read=/foo main.ts - -const desc = { name: "read", path: "/foo" } as const; -console.log(await Deno.permissions.revoke(desc)); -// PermissionStatus { state: "prompt" } -``` - -However, what happens when you try to revoke a permission which is _partial_ to -one granted on the CLI? - -```ts -// deno run --allow-read=/foo main.ts - -const desc = { name: "read", path: "/foo/bar" } as const; -console.log(await Deno.permissions.revoke(desc)); -// PermissionStatus { state: "granted" } -``` - -It was not revoked. - -To understand this behaviour, imagine that Deno stores an internal set of -_explicitly granted permission descriptors_. Specifying `--allow-read=/foo,/bar` -on the CLI initializes this set to: - -```ts -[ - { name: "read", path: "/foo" }, - { name: "read", path: "/bar" }, -]; -``` - -Granting a runtime request for `{ name: "write", path: "/foo" }` updates the set -to: - -```ts -[ - { name: "read", path: "/foo" }, - { name: "read", path: "/bar" }, - { name: "write", path: "/foo" }, -]; -``` - -Deno's permission revocation algorithm works by removing every element from this -set which the argument permission descriptor is _stronger than_. So to ensure -`desc` is not longer granted, pass an argument descriptor _stronger than_ -whichever _explicitly granted permission descriptor_ is _stronger than_ `desc`. - -```ts -// deno run --allow-read=/foo main.ts - -const desc = { name: "read", path: "/foo/bar" } as const; -console.log(await Deno.permissions.revoke(desc)); // Insufficient. -// PermissionStatus { state: "granted" } - -const strongDesc = { name: "read", path: "/foo" } as const; -await Deno.permissions.revoke(strongDesc); // Good. - -console.log(await Deno.permissions.query(desc)); -// PermissionStatus { state: "prompt" } -``` diff --git a/docs/runtime/program_lifecycle.md b/docs/runtime/program_lifecycle.md deleted file mode 100644 index 72e21c4f4b..0000000000 --- a/docs/runtime/program_lifecycle.md +++ /dev/null @@ -1,79 +0,0 @@ -## Program lifecycle - -Deno supports browser compatible lifecycle events: `load` and `unload`. You can -use these events to provide setup and cleanup code in your program. - -Listeners for `load` events can be asynchronous and will be awaited. Listeners -for `unload` events need to be synchronous. Both events cannot be cancelled. - -Example: - -**main.ts** - -```ts -import "./imported.ts"; - -const handler = (e: Event): void => { - console.log(`got ${e.type} event in event handler (main)`); -}; - -window.addEventListener("load", handler); - -window.addEventListener("unload", handler); - -window.onload = (e: Event): void => { - console.log(`got ${e.type} event in onload function (main)`); -}; - -window.onunload = (e: Event): void => { - console.log(`got ${e.type} event in onunload function (main)`); -}; - -console.log("log from main script"); -``` - -**imported.ts** - -```ts -const handler = (e: Event): void => { - console.log(`got ${e.type} event in event handler (imported)`); -}; - -window.addEventListener("load", handler); -window.addEventListener("unload", handler); - -window.onload = (e: Event): void => { - console.log(`got ${e.type} event in onload function (imported)`); -}; - -window.onunload = (e: Event): void => { - console.log(`got ${e.type} event in onunload function (imported)`); -}; - -console.log("log from imported script"); -``` - -Note that you can use both `window.addEventListener` and -`window.onload`/`window.onunload` to define handlers for events. There is a -major difference between them, let's run the example: - -```shell -$ deno run main.ts -log from imported script -log from main script -got load event in event handler (imported) -got load event in event handler (main) -got load event in onload function (main) -got unload event in event handler (imported) -got unload event in event handler (main) -got unload event in onunload function (main) -``` - -All listeners added using `window.addEventListener` were run, but -`window.onload` and `window.onunload` defined in `main.ts` overrode handlers -defined in `imported.ts`. - -In other words, you can register multiple `window.addEventListener` `"load"` or -`"unload"` events, but only the last loaded `window.onload` or `window.onunload` -event handlers will be executed. It is preferable to use `addEventListener` when -possible for this reason. diff --git a/docs/runtime/stability.md b/docs/runtime/stability.md deleted file mode 100644 index 9cdc1eea8a..0000000000 --- a/docs/runtime/stability.md +++ /dev/null @@ -1,32 +0,0 @@ -## Stability - -As of Deno 1.0.0, the `Deno` namespace APIs are stable. That means we will -strive to make code working under 1.0.0 continue to work in future versions. - -However, not all of Deno's features are ready for production yet. Features which -are not ready, because they are still in draft phase, are locked behind the -`--unstable` command line flag. - -```shell -deno run --unstable mod_which_uses_unstable_stuff.ts -``` - -Passing this flag does a few things: - -- It enables the use of unstable APIs during runtime. -- It adds the - [`lib.deno.unstable.d.ts`](https://doc.deno.land/https/raw.githubusercontent.com/denoland/deno/main/cli/dts/lib.deno.unstable.d.ts) - file to the list of TypeScript definitions that are used for type checking. - This includes the output of `deno types`. - -You should be aware that many unstable APIs have **not undergone a security -review**, are likely to have **breaking API changes** in the future, and are -**not ready for production**. - -### Standard modules - -Deno's standard modules (https://deno.land/std/) are not yet stable. We -currently version the standard modules differently from the CLI to reflect this. -Note that unlike the `Deno` namespace, the use of the standard modules do not -require the `--unstable` flag (unless the standard module itself makes use of an -unstable Deno feature). diff --git a/docs/runtime/web_platform_apis.md b/docs/runtime/web_platform_apis.md deleted file mode 100644 index 0a1015b68a..0000000000 --- a/docs/runtime/web_platform_apis.md +++ /dev/null @@ -1,97 +0,0 @@ -# Web Platform APIs - -Deno aims to use web platform APIs (like `fetch`) instead of inventing a new -proprietary API where it makes sense. These APIs generally follow the -specifications and should match the implementation in Chrome and Firefox. In -some cases it makes sense to deviate from the spec slightly, because of the -different security model Deno has. - -Here is a list of web platform APIs Deno implements: - -## `fetch` API - -### Overview - -The `fetch` API can be used to make HTTP requests. It is implemented as -specified in the [WHATWG `fetch` spec](https://fetch.spec.whatwg.org/). - -You can find documentation about this API on -[MDN](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API). - -### Spec deviations - -- The Deno user agent does not have a cookie jar. As such, the `set-cookie` - header on a response is not processed, or filtered from the visible response - headers. -- Deno does not follow the same-origin policy, because the Deno user agent - currently does not have the concept of origins, and it does not have a cookie - jar. This means Deno does not need to protect against leaking authenticated - data cross origin. Because of this Deno does not implement the following - sections of the WHATWG `fetch` specification: - - Section `3.1. 'Origin' header`. - - Section `3.2. CORS protocol`. - - Section `3.5. CORB`. - - Section `3.6. 'Cross-Origin-Resource-Policy' header`. - - `Atomic HTTP redirect handling`. - - The `opaqueredirect` response type. -- A `fetch` with a `redirect` mode of `manual` will return a `basic` response - rather than an `opaqueredirect` response. - -## `CustomEvent`, `EventTarget` and `EventListener` - -### Overview - -The DOM Event API can be used to dispatch and listen to events happening in an -application. It is implemented as specified in the -[WHATWG DOM spec](https://dom.spec.whatwg.org/#events). - -You can find documentation about this API on -[MDN](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget). - -### Spec deviations - -- Events do not bubble, because Deno does not have a DOM hierarchy, so there is - no tree for Events to bubble/capture through. - -## Web Worker API - -### Overview - -The WebWorker API can be used to executing code in a separate thread. It is -implemented as specified in the -[WHATWG HTML spec](https://html.spec.whatwg.org/multipage/workers.html#workers). - -You can find documentation about this API on -[MDN](https://developer.mozilla.org/en-US/docs/Web/API/Worker). - -### Spec deviations - -- Currently creating workers from blob URLs is not supported. -- Currently posted data is serialized to JSON instead of structured cloning. -- Currently object ownership cannot be transferred between workers. - -## Other APIs - -- [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) -- [Console](https://developer.mozilla.org/en-US/docs/Web/API/Console) -- [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData) -- [Performance](https://developer.mozilla.org/en-US/docs/Web/API/Performance) -- [setTimeout, setInterval, clearInterval](https://developer.mozilla.org/en-US/docs/Web/API/setTimeout) -- [Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API) -- [URL](https://developer.mozilla.org/en-US/docs/Web/API/URL) -- [URLSearchParams](https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams) -- [WebSocket](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) - ---- - -## Typings - -The TypeScript definitions for the implemented web APIs can be found in the -[`lib.deno.shared_globals.d.ts`](https://github.com/denoland/deno/blob/$CLI_VERSION/cli/dts/lib.deno.shared_globals.d.ts) -and -[`lib.deno.window.d.ts`](https://github.com/denoland/deno/blob/$CLI_VERSION/cli/dts/lib.deno.window.d.ts) -files. - -Definitions that are specific to workers can be found in the -[`lib.deno.worker.d.ts`](https://github.com/denoland/deno/blob/$CLI_VERSION/cli/dts/lib.deno.worker.d.ts) -file. diff --git a/docs/runtime/web_storage_api.md b/docs/runtime/web_storage_api.md deleted file mode 100644 index 34a119067e..0000000000 --- a/docs/runtime/web_storage_api.md +++ /dev/null @@ -1,39 +0,0 @@ -## Web Storage API - -As of Deno 1.10, the Web Storage API (`localStorage` & `sessionStorage`) was -introduced, which through `localStorage` allows persistent storage, whereas -`sessionStorage` is a non-persistent memory-based storage. - -To use persistent storage, you need to pass the `--location` flag. The location -for persistent storage is listed in `deno info`, and additionally passing the -`--location` will give you the path for the specified origin. - -To learn more about the Web Storage APIs, visit the -[MDN page on Web Storage](https://developer.mozilla.org/en-US/docs/Web/API/Storage). - -### Example - -The following snippet accesses the local storage bucket for the current origin -and adds a data item to it using `setItem()`. - -```ts -localStorage.setItem("myDemo", "Deno App"); -``` - -The syntax for reading the localStorage item is as follows: - -```ts -const cat = localStorage.getItem("myDemo"); -``` - -The syntax for removing the localStorage item is as follows: - -```ts -localStorage.removeItem("myDemo"); -``` - -The syntax for removing all the localStorage items is as follows: - -```ts -localStorage.clear(); -``` diff --git a/docs/runtime/workers.md b/docs/runtime/workers.md deleted file mode 100644 index d39a8b130d..0000000000 --- a/docs/runtime/workers.md +++ /dev/null @@ -1,251 +0,0 @@ -## Workers - -Deno supports -[`Web Worker API`](https://developer.mozilla.org/en-US/docs/Web/API/Worker/Worker). - -Workers can be used to run code on multiple threads. Each instance of `Worker` -is run on a separate thread, dedicated only to that worker. - -Currently Deno supports only `module` type workers; thus it's essential to pass -the `type: "module"` option when creating a new worker. - -Use of relative module specifiers in the main worker are only supported with -`--location ` passed on the CLI. This is not recommended for portability. -You can instead use the `URL` constructor and `import.meta.url` to easily create -a specifier for some nearby script. Dedicated workers, however, have a location -and this capability by default. - -```ts -// Good -new Worker(new URL("./worker.js", import.meta.url).href, { type: "module" }); - -// Bad -new Worker(new URL("./worker.js", import.meta.url).href); -new Worker(new URL("./worker.js", import.meta.url).href, { type: "classic" }); -new Worker("./worker.js", { type: "module" }); -``` - -### Instantiation permissions - -Creating a new `Worker` instance is similar to a dynamic import; therefore Deno -requires appropriate permission for this action. - -For workers using local modules; `--allow-read` permission is required: - -**main.ts** - -```ts -new Worker(new URL("./worker.ts", import.meta.url).href, { type: "module" }); -``` - -**worker.ts** - -```ts -console.log("hello world"); -self.close(); -``` - -```shell -$ deno run main.ts -error: Uncaught PermissionDenied: read access to "./worker.ts", run again with the --allow-read flag - -$ deno run --allow-read main.ts -hello world -``` - -For workers using remote modules; `--allow-net` permission is required: - -**main.ts** - -```ts -new Worker("https://example.com/worker.ts", { type: "module" }); -``` - -**worker.ts** (at https[]()://example.com/worker.ts) - -```ts -console.log("hello world"); -self.close(); -``` - -```shell -$ deno run main.ts -error: Uncaught PermissionDenied: net access to "https://example.com/worker.ts", run again with the --allow-net flag - -$ deno run --allow-net main.ts -hello world -``` - -### Using Deno in worker - -> This is an unstable Deno feature. Learn more about -> [unstable features](./stability.md). - -By default the `Deno` namespace is not available in worker scope. - -To enable the `Deno` namespace pass `deno.namespace = true` option when creating -new worker: - -**main.js** - -```ts -const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - }, -}); -worker.postMessage({ filename: "./log.txt" }); -``` - -**worker.js** - -```ts -self.onmessage = async (e) => { - const { filename } = e.data; - const text = await Deno.readTextFile(filename); - console.log(text); - self.close(); -}; -``` - -**log.txt** - -``` -hello world -``` - -```shell -$ deno run --allow-read --unstable main.js -hello world -``` - -### Specifying worker permissions - -> This is an unstable Deno feature. Learn more about -> [unstable features](./stability.md). - -The permissions available for the worker are analogous to the CLI permission -flags, meaning every permission enabled there can be disabled at the level of -the Worker API. You can find a more detailed description of each of the -permission options [here](../getting_started/permissions.md). - -By default a worker will inherit permissions from the thread it was created in, -however in order to allow users to limit the access of this worker we provide -the `deno.permissions` option in the worker API. - -- For permissions that support granular access you can pass in a list of the - desired resources the worker will have access to, and for those who only have - the on/off option you can pass true/false respectively. - - ```ts - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - permissions: { - net: [ - "https://deno.land/", - ], - read: [ - new URL("./file_1.txt", import.meta.url), - new URL("./file_2.txt", import.meta.url), - ], - write: false, - }, - }, - }); - ``` - -- Granular access permissions receive both absolute and relative routes as - arguments, however take into account that relative routes will be resolved - relative to the file the worker is instantiated in, not the path the worker - file is currently in - - ```ts - const worker = new Worker( - new URL("./worker/worker.js", import.meta.url).href, - { - type: "module", - deno: { - namespace: true, - permissions: { - read: [ - "/home/user/Documents/deno/worker/file_1.txt", - "./worker/file_2.txt", - ], - }, - }, - }, - ); - ``` - -- Both `deno.permissions` and its children support the option `"inherit"`, which - implies it will borrow its parent permissions. - - ```ts - // This worker will inherit its parent permissions - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - permissions: "inherit", - }, - }); - ``` - - ```ts - // This worker will inherit only the net permissions of its parent - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - permissions: { - env: false, - hrtime: false, - net: "inherit", - plugin: false, - read: false, - run: false, - write: false, - }, - }, - }); - ``` - -- Not specifying the `deno.permissions` option or one of its children will cause - the worker to inherit by default. - - ```ts - // This worker will inherit its parent permissions - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - }); - ``` - - ```ts - // This worker will inherit all the permissions of its parent BUT net - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - permissions: { - net: false, - }, - }, - }); - ``` - -- You can disable the permissions of the worker all together by passing `"none"` - to the `deno.permissions` option. - - ```ts - // This worker will not have any permissions enabled - const worker = new Worker(new URL("./worker.js", import.meta.url).href, { - type: "module", - deno: { - namespace: true, - permissions: "none", - }, - }); - ``` diff --git a/docs/schemas/module-graph.json b/docs/schemas/module-graph.json deleted file mode 100644 index 07403a3a87..0000000000 --- a/docs/schemas/module-graph.json +++ /dev/null @@ -1,116 +0,0 @@ -{ - "$id": "https://deno.land/schemas/module-graph.json", - "$schema": "http://json-schema.org/draft-07/schema", - "description": "A JSON representation of a Deno module dependency graph.", - "required": [ - "root", - "modules", - "size" - ], - "title": "Deno Dependency Graph Schema", - "type": "object", - "properties": { - "root": { - "default": "", - "description": "The root specifier for the graph.", - "examples": [ - "https://deno.land/x/mod.ts" - ], - "type": "string" - }, - "modules": { - "default": [], - "description": "The modules that are part of the graph.", - "type": "array", - "items": { - "$ref": "#/definitions/module" - } - }, - "size": { - "type": "integer", - "description": "The total size of all the unique dependencies in the graph in bytes.", - "default": 0 - } - }, - "definitions": { - "module": { - "type": "object", - "required": [ - "specifier" - ], - "properties": { - "specifier": { - "type": "string", - "description": "The fully qualified module specifier (URL) for the module." - }, - "dependencies": { - "type": "array", - "description": "An array of dependencies of the module.", - "items": { - "$ref": "#/definitions/dependency" - } - }, - "size": { - "type": "integer", - "description": "The size of the module on disk in bytes." - }, - "mediaType": { - "type": "string", - "description": "How the file is treated within Deno. All the possible media types that Deno considers are listed here, but in practice, several of them would never appear in a module graph.", - "enum": [ - "JavaScript", - "TypeScript", - "JSX", - "TSX", - "Dts", - "Json", - "Wasm", - "TsBuildInfo", - "SourceMap", - "Unknown" - ] - }, - "local": { - "type": "string", - "description": "The path to the local file. For local modules this will be the local file path, for remote modules and data URLs, this would be the path to the file in the Deno cache." - }, - "checksum": { - "type": "string", - "description": "The checksum of the local source file. This can be used to validate if the current on disk version matches the version described here." - }, - "emit": { - "type": "string", - "description": "The path to an emitted version of the module, if the module requires transpilation to be loaded into the Deno runtime." - }, - "map": { - "type": "string", - "description": "The path to an optionally emitted source map between the original and emitted version of the file." - }, - "error": { - "type": "string", - "description": "If when resolving the module, Deno encountered an error and the module is unavailable, the text of that error will be indicated here." - } - } - }, - "dependency": { - "type": "object", - "required": [ - "specifier" - ], - "properties": { - "specifier": { - "type": "string", - "description": "The specifier provided from within the module." - }, - "code": { - "type": "string", - "description": "The fully qualified module specifier (URL) for the code dependency." - }, - "type": { - "type": "string", - "description": "The fully qualified module specifier (URL) for the type only dependency." - } - } - } - } -} diff --git a/docs/standard_library.md b/docs/standard_library.md deleted file mode 100644 index 36006d3ee0..0000000000 --- a/docs/standard_library.md +++ /dev/null @@ -1,76 +0,0 @@ -# Standard library - -Deno provides a set of standard modules that are audited by the core team and -are guaranteed to work with Deno. - -Standard library is available at: https://deno.land/std/ - -## Versioning and stability - -Standard library is not yet stable and therefore it is versioned differently -than Deno. For latest release consult https://deno.land/std/ or -https://deno.land/std/version.ts. The standard library is released each time -Deno is released. - -We strongly suggest to always use imports with pinned version of standard -library to avoid unintended changes. For example, rather than linking to the -default branch of code, which may change at any time, potentially causing -compilation errors or unexpected behavior: - -```typescript -// import the latest release, this should be avoided -import { copy } from "https://deno.land/std/fs/copy.ts"; -``` - -instead, used a version of the std library which is immutable and will not -change: - -```typescript -// imports from v$STD_VERSION of std, never changes -import { copy } from "https://deno.land/std@$STD_VERSION/fs/copy.ts"; -``` - -## Troubleshooting - -Some of the modules provided in standard library use unstable Deno APIs. - -Trying to run such modules without `--unstable` CLI flag ends up with a lot of -TypeScript errors suggesting that some APIs in the `Deno` namespace do not -exist: - -```typescript -// main.ts -import { copy } from "https://deno.land/std@$STD_VERSION/fs/copy.ts"; - -copy("log.txt", "log-old.txt"); -``` - -```shell -$ deno run --allow-read --allow-write main.ts -Compile file:///dev/deno/main.ts -Download https://deno.land/std@$STD_VERSION/fs/copy.ts -Download https://deno.land/std@$STD_VERSION/fs/ensure_dir.ts -Download https://deno.land/std@$STD_VERSION/fs/_util.ts -error: TS2339 [ERROR]: Property 'utime' does not exist on type 'typeof Deno'. 'Deno.utime' is an unstable API. Did you forget to run with the '--unstable' flag? - await Deno.utime(dest, statInfo.atime, statInfo.mtime); - ~~~~~ - at https://deno.land/std@$STD_VERSION/fs/copy.ts:92:16 - -TS2339 [ERROR]: Property 'utimeSync' does not exist on type 'typeof Deno'. 'Deno.utimeSync' is an unstable API. Did you forget to run with the '--unstable' flag? - Deno.utimeSync(dest, statInfo.atime, statInfo.mtime); - ~~~~~~~~~ - at https://deno.land/std@$STD_VERSION/fs/copy.ts:103:10 -``` - -Solution to that problem requires adding `--unstable` flag: - -```shell -deno run --allow-read --allow-write --unstable main.ts -``` - -To make sure that API producing error is unstable check -[`lib.deno.unstable.d.ts`](https://github.com/denoland/deno/blob/$CLI_VERSION/cli/dts/lib.deno.unstable.d.ts) -declaration. - -This problem should be fixed in the near future. Feel free to omit the flag if -the particular modules you depend on compile successfully without it. diff --git a/docs/testing.md b/docs/testing.md deleted file mode 100644 index 6f3fd555ec..0000000000 --- a/docs/testing.md +++ /dev/null @@ -1,169 +0,0 @@ -# Testing - -Deno has a built-in test runner that you can use for testing JavaScript or -TypeScript code. - -`deno test` will search in `./*` and `./**/*` recursively, for test files: - -- named `test.{ts, tsx, js, mjs, jsx}`, -- or ending with `.test.{ts, tsx, js, mjs, jsx}`, -- or ending with `_test.{ts, tsx, js, mjs, jsx}` - -## Writing tests - -To define a test you need to register it with a call to `Deno.test` with a name -and function to be tested. There are two styles you can use. - -```ts -import { assertEquals } from "https://deno.land/std@$STD_VERSION/testing/asserts.ts"; - -// Simple name and function, compact form, but not configurable -Deno.test("hello world #1", () => { - const x = 1 + 2; - assertEquals(x, 3); -}); - -// Fully fledged test definition, longer form, but configurable (see below) -Deno.test({ - name: "hello world #2", - fn: () => { - const x = 1 + 2; - assertEquals(x, 3); - }, -}); -``` - -### Async functions - -You can also test asynchronous code by passing a test function that returns a -promise. For this you can use the `async` keyword when defining a function: - -```ts -import { delay } from "https://deno.land/std@$STD_VERSION/async/delay.ts"; - -Deno.test("async hello world", async () => { - const x = 1 + 2; - - // await some async task - await delay(100); - - if (x !== 3) { - throw Error("x should be equal to 3"); - } -}); -``` - -## Running tests - -To run the test, call `deno test` with the file that contains your test -function. You can also omit the file name, in which case all tests in the -current directory (recursively) that match the glob -`{*_,*.,}test.{js,mjs,ts,jsx,tsx}` will be run. If you pass a directory, all -files in the directory that match this glob will be run. - -```shell -# Run all tests in the current directory and all sub-directories -deno test - -# Run all tests in the util directory -deno test util/ - -# Run just my_test.ts -deno test my_test.ts -``` - -`deno test` uses the same permission model as `deno run` and therefore will -require, for example, `--allow-write` to write to the file system during -testing. - -To see all runtime options with `deno test`, you can reference the command line -help: - -```shell -deno help test -``` - -## Filtering - -There are a number of options to filter the tests you are running. - -### Command line filtering - -Tests can be run individually or in groups using the command line `--filter` -option. - -The filter flags accept a string or a pattern as value. - -Assuming the following tests: - -```ts -Deno.test({ name: "my-test", fn: myTest }); -Deno.test({ name: "test-1", fn: test1 }); -Deno.test({ name: "test2", fn: test2 }); -``` - -This command will run all of these tests because they all contain the word -"test". - -```shell -deno test --filter "test" tests/ -``` - -On the flip side, the following command uses a pattern and will run the second -and third tests. - -```shell -deno test --filter "/test-*\d/" tests/ -``` - -_To let Deno know that you want to use a pattern, wrap your filter with -forward-slashes like the JavaScript syntactic sugar for a REGEX._ - -### Test definition filtering - -Within the tests themselves, you have two options for filtering. - -#### Filtering out (Ignoring these tests) - -Sometimes you want to ignore tests based on some sort of condition (for example -you only want a test to run on Windows). For this you can use the `ignore` -boolean in the test definition. If it is set to true the test will be skipped. - -```ts -Deno.test({ - name: "do macOS feature", - ignore: Deno.build.os !== "darwin", - fn() { - doMacOSFeature(); - }, -}); -``` - -#### Filtering in (Only run these tests) - -Sometimes you may be in the middle of a problem within a large test class and -you would like to focus on just that test and ignore the rest for now. For this -you can use the `only` option to tell the test framework to only run tests with -this set to true. Multiple tests can set this option. While the test run will -report on the success or failure of each test, the overall test run will always -fail if any test is flagged with `only`, as this is a temporary measure only -which disables nearly all of your tests. - -```ts -Deno.test({ - name: "Focus on this test only", - only: true, - fn() { - testComplicatedStuff(); - }, -}); -``` - -## Failing fast - -If you have a long running test suite and wish for it to stop on the first -failure, you can specify the `--fail-fast` flag when running the suite. - -```shell -deno test --fail-fast -``` diff --git a/docs/testing/assertions.md b/docs/testing/assertions.md deleted file mode 100644 index 5fca77832e..0000000000 --- a/docs/testing/assertions.md +++ /dev/null @@ -1,263 +0,0 @@ -## Assertions - -To help developers write tests the Deno standard library comes with a built in -[assertions module](https://deno.land/std@$STD_VERSION/testing/asserts.ts) which -can be imported from `https://deno.land/std@$STD_VERSION/testing/asserts.ts`. - -```js -import { assert } from "https://deno.land/std@$STD_VERSION/testing/asserts.ts"; - -Deno.test("Hello Test", () => { - assert("Hello"); -}); -``` - -The assertions module provides 10 assertions: - -- `assert(expr: unknown, msg = ""): asserts expr` -- `assertEquals(actual: unknown, expected: unknown, msg?: string): void` -- `assertExists(actual: unknown,msg?: string): void` -- `assertNotEquals(actual: unknown, expected: unknown, msg?: string): void` -- `assertStrictEquals(actual: unknown, expected: unknown, msg?: string): void` -- `assertStringIncludes(actual: string, expected: string, msg?: string): void` -- `assertArrayIncludes(actual: unknown[], expected: unknown[], msg?: string): void` -- `assertMatch(actual: string, expected: RegExp, msg?: string): void` -- `assertNotMatch(actual: string, expected: RegExp, msg?: string): void` -- `assertObjectMatch( actual: Record, expected: Record): void` -- `assertThrows(fn: () => void, ErrorClass?: Constructor, msgIncludes = "", msg?: string): Error` -- `assertThrowsAsync(fn: () => Promise, ErrorClass?: Constructor, msgIncludes = "", msg?: string): Promise` - -### Assert - -The assert method is a simple 'truthy' assertion and can be used to assert any -value which can be inferred as true. - -```js -Deno.test("Test Assert", () => { - assert(1); - assert("Hello"); - assert(true); -}); -``` - -### Exists - -The `assertExists` can be used to check if a value is not `null` or `undefined`. - -```js -assertExists("Denosaurus"); -Deno.test("Test Assert Exists", () => { - assertExists("Denosaurus"); - assertExists(false); - assertExists(0); -}); -``` - -### Equality - -There are three equality assertions available, `assertEquals()`, -`assertNotEquals()` and `assertStrictEquals()`. - -The `assertEquals()` and `assertNotEquals()` methods provide a general equality -check and are capable of asserting equality between primitive types and objects. - -```js -Deno.test("Test Assert Equals", () => { - assertEquals(1, 1); - assertEquals("Hello", "Hello"); - assertEquals(true, true); - assertEquals(undefined, undefined); - assertEquals(null, null); - assertEquals(new Date(), new Date()); - assertEquals(new RegExp("abc"), new RegExp("abc")); - - class Foo {} - const foo1 = new Foo(); - const foo2 = new Foo(); - - assertEquals(foo1, foo2); -}); - -Deno.test("Test Assert Not Equals", () => { - assertNotEquals(1, 2); - assertNotEquals("Hello", "World"); - assertNotEquals(true, false); - assertNotEquals(undefined, ""); - assertNotEquals(new Date(), Date.now()); - assertNotEquals(new RegExp("abc"), new RegExp("def")); -}); -``` - -By contrast `assertStrictEquals()` provides a simpler, stricter equality check -based on the `===` operator. As a result it will not assert two instances of -identical objects as they won't be referentially the same. - -```js -Deno.test("Test Assert Strict Equals", () => { - assertStrictEquals(1, 1); - assertStrictEquals("Hello", "Hello"); - assertStrictEquals(true, true); - assertStrictEquals(undefined, undefined); -}); -``` - -The `assertStrictEquals()` assertion is best used when you wish to make a -precise check against two primitive types. - -### Contains - -There are two methods available to assert a value contains a value, -`assertStringIncludes()` and `assertArrayIncludes()`. - -The `assertStringIncludes()` assertion does a simple includes check on a string -to see if it contains the expected string. - -```js -Deno.test("Test Assert String Contains", () => { - assertStringIncludes("Hello World", "Hello"); -}); -``` - -The `assertArrayIncludes()` assertion is slightly more advanced and can find -both a value within an array and an array of values within an array. - -```js -Deno.test("Test Assert Array Contains", () => { - assertArrayIncludes([1, 2, 3], [1]); - assertArrayIncludes([1, 2, 3], [1, 2]); - assertArrayIncludes(Array.from("Hello World"), Array.from("Hello")); -}); -``` - -### Regex - -You can assert regular expressions via `assertMatch()` and `assertNotMatch()` -assertions. - -```js -Deno.test("Test Assert Match", () => { - assertMatch("abcdefghi", new RegExp("def")); - - const basicUrl = new RegExp("^https?://[a-z.]+.com$"); - assertMatch("https://www.google.com", basicUrl); - assertMatch("http://facebook.com", basicUrl); -}); - -Deno.test("Test Assert Not Match", () => { - assertNotMatch("abcdefghi", new RegExp("jkl")); - - const basicUrl = new RegExp("^https?://[a-z.]+.com$"); - assertNotMatch("https://deno.land/", basicUrl); -}); -``` - -### Object - -Use `assertObjectMatch` to check that a JavaScript object matches a subset of -the properties of an object. - -```js -// Simple subset -assertObjectMatch( - { foo: true, bar: false }, - { - foo: true, - }, -); -``` - -### Throws - -There are two ways to assert whether something throws an error in Deno, -`assertThrows()` and `assertThrowsAsync()`. Both assertions allow you to check -an -[Error](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error) -has been thrown, the type of error thrown and what the message was. - -The difference between the two assertions is `assertThrows()` accepts a standard -function and `assertThrowsAsync()` accepts a function which returns a -[Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise). - -The `assertThrows()` assertion will check an error has been thrown, and -optionally will check the thrown error is of the correct type, and assert the -error message is as expected. - -```js -Deno.test("Test Assert Throws", () => { - assertThrows( - () => { - throw new Error("Panic!"); - }, - Error, - "Panic!", - ); -}); -``` - -The `assertThrowsAsync()` assertion is a little more complicated, mainly because -it deals with Promises. But basically it will catch thrown errors or rejections -in Promises. You can also optionally check for the error type and error message. - -```js -Deno.test("Test Assert Throws Async", () => { - assertThrowsAsync( - () => { - return new Promise(() => { - throw new Error("Panic! Threw Error"); - }); - }, - Error, - "Panic! Threw Error", - ); - - assertThrowsAsync( - () => { - return Promise.reject(new Error("Panic! Reject Error")); - }, - Error, - "Panic! Reject Error", - ); -}); -``` - -### Custom Messages - -Each of Deno's built in assertions allow you to overwrite the standard CLI error -message if you wish. For instance this example will output "Values Don't Match!" -rather than the standard CLI error message. - -```js -Deno.test("Test Assert Equal Fail Custom Message", () => { - assertEquals(1, 2, "Values Don't Match!"); -}); -``` - -### Custom Tests - -While Deno comes with powerful -[assertions modules](https://deno.land/std@$STD_VERSION/testing/asserts.ts) but -there is always something specific to the project you can add. Creating -`custom assertion function` can improve readability and reduce the amount of -code. - -```js -function assertPowerOf(actual: number, expected: number, msg?: string): void { - let received = actual; - while (received % expected === 0) received = received / expected; - if (received !== 1) { - if (!msg) { - msg = `actual: "${actual}" expected to be a power of : "${expected}"`; - } - throw new AssertionError(msg); - } -} -``` - -Use this matcher in your code like this: - -```js -Deno.test("Test Assert PowerOf", () => { - assertPowerOf(8, 2); - assertPowerOf(11, 4); -}); -``` diff --git a/docs/testing/coverage.md b/docs/testing/coverage.md deleted file mode 100644 index 0899c7cbd6..0000000000 --- a/docs/testing/coverage.md +++ /dev/null @@ -1,36 +0,0 @@ -# Test coverage - -Deno will collect test coverage into a directory for your code if you specify -the `--coverage` flag when starting `deno test`. - -This coverage information is acquired directly from the JavaScript engine (V8) -which is very accurate. - -This can then be further processed from the internal format into well known -formats by the `deno coverage` tool. - -```bash -# Go into your project's working directory -git clone https://github.com/oakserver/oak && cd oak - -# Collect your coverage profile with deno test --coverage= -deno test --coverage=cov_profile - -# From this you can get a pretty printed diff of uncovered lines -deno coverage cov_profile - -# Or generate an lcov report -deno coverage cov_profile --lcov > cov_profile.lcov - -# Which can then be further processed by tools like genhtml -genhtml -o cov_profile/html cov_profile.lcov -``` - -By default, `deno coverage` will exclude any files matching the regular -expression `test\.(js|mjs|ts|jsx|tsx)` and only consider including specifiers -matching the regular expression `^file:` - ie. remote files will be excluded -from coverage report. - -These filters can be overridden using the `--exclude` and `--include` flags. A -module specifier must _match_ the include_regular expression and _not match_ the -exclude_ expression for it to be a part of the report. diff --git a/docs/testing/documentation.md b/docs/testing/documentation.md deleted file mode 100644 index f0a2061dba..0000000000 --- a/docs/testing/documentation.md +++ /dev/null @@ -1,39 +0,0 @@ -# Documentation tests - -Deno supports type-checking your documentation examples. - -This makes sure that examples within your documentation are up to date and -working. - -The basic idea is this: - -````ts -/** - * # Examples - * - * ```ts - * const x = 42; - * ``` - */ -```` - -The triple backticks mark the start and end of code blocks. - -If this example was in a file named foo.ts, running `deno test --doc foo.ts` -will extract this example, and then type-check it as a standalone module living -in the same directory as the module being documented. - -To document your exports, import the module using a relative path specifier: - -````ts -/** - * # Examples - * - * ```ts - * import { foo } from "./foo.ts"; - * ``` - */ -export function foo(): string { - return "foo"; -} -```` diff --git a/docs/testing/sanitizers.md b/docs/testing/sanitizers.md deleted file mode 100644 index c078e52342..0000000000 --- a/docs/testing/sanitizers.md +++ /dev/null @@ -1,69 +0,0 @@ -# Test Sanitizers - -The test runner offers several sanitizers to ensure that the test behaves in a -reasonable and expected way. - -### Resource sanitizer - -Certain actions in Deno create resources in the resource table -([learn more here](./contributing/architecture.md)). - -These resources should be closed after you are done using them. - -For each test definition, the test runner checks that all resources created in -this test have been closed. This is to prevent resource 'leaks'. This is enabled -by default for all tests, but can be disabled by setting the `sanitizeResources` -boolean to false in the test definition. - -```ts -Deno.test({ - name: "leaky resource test", - async fn() { - await Deno.open("hello.txt"); - }, - sanitizeResources: false, -}); -``` - -### Op sanitizer - -The same is true for async operation like interacting with the filesystem. The -test runner checks that each operation you start in the test is completed before -the end of the test. This is enabled by default for all tests, but can be -disabled by setting the `sanitizeOps` boolean to false in the test definition. - -```ts -Deno.test({ - name: "leaky operation test", - fn() { - setTimeout(function () {}, 1000); - }, - sanitizeOps: false, -}); -``` - -### Exit sanitizer - -There's also the exit sanitizer which ensures that tested code doesn't call -`Deno.exit()` signaling a false test success. - -This is enabled by default for all tests, but can be disabled by setting the -`sanitizeExit` boolean to false in the test definition. - -```ts -Deno.test({ - name: "false success", - fn() { - Deno.exit(0); - }, - sanitizeExit: false, -}); - -// This test never runs, because the process exits during "false success" test -Deno.test({ - name: "failing test", - fn() { - throw new Error("this test fails"); - }, -}); -``` diff --git a/docs/toc.json b/docs/toc.json deleted file mode 100644 index 51245c3d02..0000000000 --- a/docs/toc.json +++ /dev/null @@ -1,120 +0,0 @@ -{ - "introduction": { - "name": "Introduction" - }, - "getting_started": { - "name": "Getting Started", - "children": { - "installation": "Installation", - "setup_your_environment": "Setup your environment", - "first_steps": "First steps", - "command_line_interface": "Command line interface", - "permissions": "Permissions", - "webassembly": "Using WebAssembly", - "debugging_your_code": "Debugging your code" - } - }, - "runtime": { - "name": "The Runtime", - "children": { - "stability": "Stability", - "program_lifecycle": "Program lifecycle", - "permission_apis": "Permission APIs", - "web_platform_apis": "Web Platform APIs", - "http_server_apis": "HTTP Server APIs", - "location_api": "Location API", - "web_storage_api": "Web Storage API", - "workers": "Workers" - } - }, - "linking_to_external_code": { - "name": "Linking to external code", - "children": { - "reloading_modules": "Reloading modules", - "integrity_checking": "Integrity checking", - "proxies": "Proxies", - "private": "Private modules", - "import_maps": "Import maps" - } - }, - "npm_nodejs": { - "name": "Using npm/Node.js code", - "children": { - "std_node": "The std/node library", - "cdns": "Packages from CDNs", - "import_maps": "Using import maps", - "faqs": "Frequently asked questions" - } - }, - "typescript": { - "name": "Using TypeScript", - "children": { - "overview": "Overview", - "configuration": "Configuration", - "types": "Types and type declarations", - "migration": "Migrating to/from JavaScript", - "runtime": "Runtime compiler APIs", - "faqs": "Frequently asked questions" - } - }, - "standard_library": { - "name": "Standard library" - }, - "examples": { - "name": "Examples", - "children": { - "hello_world": "Hello world", - "import_export": "Import and export modules", - "manage_dependencies": "Manage dependencies", - "fetch_data": "Fetch data", - "read_write_files": "Read and write files", - "unix_cat": "Unix cat program", - "http_server": "HTTP web server", - "file_server": "File server", - "tcp_echo": "TCP echo server", - "subprocess": "Creating a subprocess", - "os_signals": "OS signals", - "file_system_events": "File system events", - "module_metadata": "Module metadata" - } - }, - "testing": { - "name": "Testing", - "children": { - "assertions": "Assertions", - "coverage": "Coverage", - "documentation": "Documentation", - "sanitizers": "Sanitizers" - } - }, - "tools": { - "name": "Tools", - "children": { - "script_installer": "Script installer", - "formatter": "Formatter", - "repl": "Read-eval-print-loop", - "bundler": "Bundler", - "compiler": "Compiling executables", - "documentation_generator": "Documentation generator", - "dependency_inspector": "Dependency inspector", - "linter": "Linter" - } - }, - "embedding_deno": { - "name": "Embedding Deno" - }, - "help": { - "name": "Help" - }, - "contributing": { - "name": "Contributing", - "children": { - "building_from_source": "Building from source", - "development_tools": "Development tools", - "web_platform_tests": "Web platform tests", - "style_guide": "Style guide", - "architecture": "Architecture", - "release_schedule": "Release schedule" - } - } -} diff --git a/docs/tools.md b/docs/tools.md deleted file mode 100644 index 22a0695127..0000000000 --- a/docs/tools.md +++ /dev/null @@ -1,14 +0,0 @@ -# Built-in tooling - -Deno provides some built in tooling that is useful when working with JavaScript -and TypeScript: - -- [bundler (`deno bundle`)](./tools/bundler.md) -- [compiling executables (`deno compile`)](./tools/compiler.md) -- [installer (`deno install`)](./tools/script_installer.md) -- [dependency inspector (`deno info`)](./tools/dependency_inspector.md) -- [documentation generator (`deno doc`)](./tools/documentation_generator.md) -- [formatter (`deno fmt`)](./tools/formatter.md) -- [repl (`deno repl`)](./tools/repl.md) -- [test runner (`deno test`)](./testing.md) -- [linter (`deno lint`)](./tools/linter.md) diff --git a/docs/tools/bundler.md b/docs/tools/bundler.md deleted file mode 100644 index 10df9c8bb5..0000000000 --- a/docs/tools/bundler.md +++ /dev/null @@ -1,51 +0,0 @@ -## Bundling - -`deno bundle [URL]` will output a single JavaScript file, which includes all -dependencies of the specified input. For example: - -```bash -deno bundle https://deno.land/std@$STD_VERSION/examples/colors.ts colors.bundle.js -Bundle https://deno.land/std@$STD_VERSION/examples/colors.ts -Download https://deno.land/std@$STD_VERSION/examples/colors.ts -Download https://deno.land/std@$STD_VERSION/fmt/colors.ts -Emit "colors.bundle.js" (9.83KB) -``` - -If you omit the out file, the bundle will be sent to `stdout`. - -The bundle can just be run as any other module in Deno would: - -```bash -deno run colors.bundle.js -``` - -The output is a self contained ES Module, where any exports from the main module -supplied on the command line will be available. For example, if the main module -looked something like this: - -```ts -export { foo } from "./foo.js"; - -export const bar = "bar"; -``` - -It could be imported like this: - -```ts -import { bar, foo } from "./lib.bundle.js"; -``` - -Bundles can also be loaded in the web browser. The bundle is a self-contained ES -module, and so the attribute of `type` must be set to `"module"`. For example: - -```html - -``` - -Or you could import it into another ES module to consume: - -```html - -``` diff --git a/docs/tools/compiler.md b/docs/tools/compiler.md deleted file mode 100644 index 5b3dfd5ece..0000000000 --- a/docs/tools/compiler.md +++ /dev/null @@ -1,36 +0,0 @@ -## Compiling Executables - -`deno compile [--output ] ` will compile the script into a -self-contained executable. - -``` -> deno compile https://deno.land/std/examples/welcome.ts -``` - -If you omit the `OUT` parameter, the name of the executable file will be -inferred. - -### Flags - -As with [`deno install`](./script_installer.md), the runtime flags used to -execute the script must be specified at compilation time. This includes -permission flags. - -``` -> deno compile --allow-read --allow-net https://deno.land/std/http/file_server.ts -``` - -[Script arguments](../getting_started/command_line_interface.md#script-arguments) -can be partially embedded. - -``` -> deno compile --allow-read --allow-net https://deno.land/std/http/file_server.ts -p 8080 -> ./file_server --help -``` - -### Cross Compilation - -You can compile binaries for other platforms by adding the `--target` CLI flag. -Deno currently supports compiling to Windows x64, macOS x64, macOS ARM and Linux -x64. Use `deno compile --help` to list the full values for each compilation -target. diff --git a/docs/tools/dependency_inspector.md b/docs/tools/dependency_inspector.md deleted file mode 100644 index 80b747b3cf..0000000000 --- a/docs/tools/dependency_inspector.md +++ /dev/null @@ -1,74 +0,0 @@ -## Dependency Inspector - -`deno info [URL]` will inspect ES module and all of its dependencies. - -```shell -deno info https://deno.land/std@0.67.0/http/file_server.ts -Download https://deno.land/std@0.67.0/http/file_server.ts -... -local: /home/deno/.cache/deno/deps/https/deno.land/f57792e36f2dbf28b14a75e2372a479c6392780d4712d76698d5031f943c0020 -type: TypeScript -compiled: /home/deno/.cache/deno/gen/https/deno.land/f57792e36f2dbf28b14a75e2372a479c6392780d4712d76698d5031f943c0020.js -deps: 23 unique (total 139.89KB) -https://deno.land/std@0.67.0/http/file_server.ts (10.49KB) -├─┬ https://deno.land/std@0.67.0/path/mod.ts (717B) -│ ├── https://deno.land/std@0.67.0/path/_constants.ts (2.35KB) -│ ├─┬ https://deno.land/std@0.67.0/path/win32.ts (27.36KB) -│ │ ├── https://deno.land/std@0.67.0/path/_interface.ts (657B) -│ │ ├── https://deno.land/std@0.67.0/path/_constants.ts * -│ │ ├─┬ https://deno.land/std@0.67.0/path/_util.ts (3.3KB) -│ │ │ ├── https://deno.land/std@0.67.0/path/_interface.ts * -│ │ │ └── https://deno.land/std@0.67.0/path/_constants.ts * -│ │ └── https://deno.land/std@0.67.0/_util/assert.ts (405B) -│ ├─┬ https://deno.land/std@0.67.0/path/posix.ts (12.67KB) -│ │ ├── https://deno.land/std@0.67.0/path/_interface.ts * -│ │ ├── https://deno.land/std@0.67.0/path/_constants.ts * -│ │ └── https://deno.land/std@0.67.0/path/_util.ts * -│ ├─┬ https://deno.land/std@0.67.0/path/common.ts (1.14KB) -│ │ └─┬ https://deno.land/std@0.67.0/path/separator.ts (264B) -│ │ └── https://deno.land/std@0.67.0/path/_constants.ts * -│ ├── https://deno.land/std@0.67.0/path/separator.ts * -│ ├── https://deno.land/std@0.67.0/path/_interface.ts * -│ └─┬ https://deno.land/std@0.67.0/path/glob.ts (8.12KB) -│ ├── https://deno.land/std@0.67.0/path/_constants.ts * -│ ├── https://deno.land/std@0.67.0/path/mod.ts * -│ └── https://deno.land/std@0.67.0/path/separator.ts * -├─┬ https://deno.land/std@0.67.0/http/server.ts (10.23KB) -│ ├── https://deno.land/std@0.67.0/encoding/utf8.ts (433B) -│ ├─┬ https://deno.land/std@0.67.0/io/bufio.ts (21.15KB) -│ │ ├── https://deno.land/std@0.67.0/bytes/mod.ts (4.34KB) -│ │ └── https://deno.land/std@0.67.0/_util/assert.ts * -│ ├── https://deno.land/std@0.67.0/_util/assert.ts * -│ ├─┬ https://deno.land/std@0.67.0/async/mod.ts (202B) -│ │ ├── https://deno.land/std@0.67.0/async/deferred.ts (1.03KB) -│ │ ├── https://deno.land/std@0.67.0/async/delay.ts (279B) -│ │ ├─┬ https://deno.land/std@0.67.0/async/mux_async_iterator.ts (1.98KB) -│ │ │ └── https://deno.land/std@0.67.0/async/deferred.ts * -│ │ └── https://deno.land/std@0.67.0/async/pool.ts (1.58KB) -│ └─┬ https://deno.land/std@0.67.0/http/_io.ts (11.25KB) -│ ├── https://deno.land/std@0.67.0/io/bufio.ts * -│ ├─┬ https://deno.land/std@0.67.0/textproto/mod.ts (4.52KB) -│ │ ├── https://deno.land/std@0.67.0/io/bufio.ts * -│ │ ├── https://deno.land/std@0.67.0/bytes/mod.ts * -│ │ └── https://deno.land/std@0.67.0/encoding/utf8.ts * -│ ├── https://deno.land/std@0.67.0/_util/assert.ts * -│ ├── https://deno.land/std@0.67.0/encoding/utf8.ts * -│ ├── https://deno.land/std@0.67.0/http/server.ts * -│ └── https://deno.land/std@0.67.0/http/http_status.ts (5.93KB) -├─┬ https://deno.land/std@0.67.0/flags/mod.ts (9.54KB) -│ └── https://deno.land/std@0.67.0/_util/assert.ts * -└── https://deno.land/std@0.67.0/_util/assert.ts * -``` - -Dependency inspector works with any local or remote ES modules. - -## Cache location - -`deno info` can be used to display information about cache location: - -```shell -deno info -DENO_DIR location: "/Users/deno/Library/Caches/deno" -Remote modules cache: "/Users/deno/Library/Caches/deno/deps" -TypeScript compiler cache: "/Users/deno/Library/Caches/deno/gen" -``` diff --git a/docs/tools/documentation_generator.md b/docs/tools/documentation_generator.md deleted file mode 100644 index fa8b09c9cf..0000000000 --- a/docs/tools/documentation_generator.md +++ /dev/null @@ -1,31 +0,0 @@ -## Documentation Generator - -`deno doc` followed by a list of one or more source files will print the JSDoc -documentation for each of the module's **exported** members. - -For example, given a file `add.ts` with the contents: - -```ts -/** - * Adds x and y. - * @param {number} x - * @param {number} y - * @returns {number} Sum of x and y - */ -export function add(x: number, y: number): number { - return x + y; -} -``` - -Running the Deno `doc` command, prints the function's JSDoc comment to `stdout`: - -```shell -deno doc add.ts -function add(x: number, y: number): number - Adds x and y. @param {number} x @param {number} y @returns {number} Sum of x and y -``` - -Use the `--json` flag to output the documentation in JSON format. This JSON -format is consumed by the -[deno doc website](https://github.com/denoland/doc_website) and is used to -generate module documentation. diff --git a/docs/tools/formatter.md b/docs/tools/formatter.md deleted file mode 100644 index aedb6bdc9d..0000000000 --- a/docs/tools/formatter.md +++ /dev/null @@ -1,29 +0,0 @@ -## Code formatter - -Deno ships with a built in code formatter that auto-formats TypeScript and -JavaScript code. - -```shell -# format all JS/TS files in the current directory and subdirectories -deno fmt -# format specific files -deno fmt myfile1.ts myfile2.ts -# check if all the JS/TS files in the current directory and subdirectories are formatted -deno fmt --check -# format stdin and write to stdout -cat file.ts | deno fmt - -``` - -Ignore formatting code by preceding it with a `// deno-fmt-ignore` comment: - -```ts -// deno-fmt-ignore -export const identity = [ - 1, 0, 0, - 0, 1, 0, - 0, 0, 1, -]; -``` - -Or ignore an entire file by adding a `// deno-fmt-ignore-file` comment at the -top of the file. diff --git a/docs/tools/linter.md b/docs/tools/linter.md deleted file mode 100644 index 0f742be406..0000000000 --- a/docs/tools/linter.md +++ /dev/null @@ -1,150 +0,0 @@ -## Linter - -Deno ships with a built in code linter for JavaScript and TypeScript. - -```shell -# lint all JS/TS files in the current directory and subdirectories -deno lint -# lint specific files -deno lint myfile1.ts myfile2.ts -# print result as JSON -deno lint --json -# read from stdin -cat file.ts | deno lint - -``` - -For more detail, run `deno lint --help`. - -### Available rules - -- `adjacent-overload-signatures` -- `ban-ts-comment` -- `ban-types` -- `ban-untagged-ignore` -- `camelcase` -- `constructor-super` -- `for-direction` -- `getter-return` -- `no-array-constructor` -- `no-async-promise-executor` -- `no-case-declarations` -- `no-class-assign` -- `no-compare-neg-zero` -- `no-cond-assign` -- `no-constant-condition` -- `no-control-regex` -- `no-debugger` -- `no-delete-var` -- `no-deprecated-deno-api` -- `no-dupe-args` -- `no-dupe-class-members` -- `no-dupe-else-if` -- `no-dupe-keys` -- `no-duplicate-case` -- `no-empty` -- `no-empty-character-class` -- `no-empty-interface` -- `no-empty-pattern` -- `no-ex-assign` -- `no-explicit-any` -- `no-extra-boolean-cast` -- `no-extra-non-null-assertion` -- `no-extra-semi` -- `no-fallthrough` -- `no-func-assign` -- `no-global-assign` -- `no-import-assign` -- `no-inferrable-types` -- `no-inner-declarations` -- `no-invalid-regexp` -- `no-irregular-whitespace` -- `no-misused-new` -- `no-mixed-spaces-and-tabs` -- `no-namespace` -- `no-new-symbol` -- `no-obj-calls` -- `no-octal` -- `no-prototype-builtins` -- `no-redeclare` -- `no-regex-spaces` -- `no-self-assign` -- `no-setter-return` -- `no-shadow-restricted-names` -- `no-this-alias` -- `no-this-before-super` -- `no-unreachable` -- `no-unsafe-finally` -- `no-unsafe-negation` -- `no-unused-labels` -- `no-unused-vars` -- `no-with` -- `prefer-as-const` -- `prefer-const` -- `prefer-namespace-keyword` -- `require-await` -- `require-yield` -- `use-isnan` -- `valid-typeof` - -For more detail about each rule, visit -[the deno_lint rule documentation](https://lint.deno.land). - -### Ignore directives - -#### Files - -To ignore whole file `// deno-lint-ignore-file` directive should placed at the -top of the file: - -```ts -// deno-lint-ignore-file - -function foo(): any { - // ... -} -``` - -Ignore directive must be placed before first statement or declaration: - -```ts -// Copyright 2020 the Deno authors. All rights reserved. MIT license. - -/** - * Some JS doc - **/ - -// deno-lint-ignore-file - -import { bar } from "./bar.js"; - -function foo(): any { - // ... -} -``` - -You can also ignore certain diagnostics in the whole file - -```ts -// deno-lint-ignore-file no-explicit-any no-empty - -function foo(): any { - // ... -} -``` - -#### Diagnostics - -To ignore certain diagnostic `// deno-lint-ignore ` directive should -be placed before offending line. Specifying ignored rule name is required: - -```ts -// deno-lint-ignore no-explicit-any -function foo(): any { - // ... -} - -// deno-lint-ignore no-explicit-any explicit-function-return-type -function bar(a: any) { - // ... -} -``` diff --git a/docs/tools/repl.md b/docs/tools/repl.md deleted file mode 100644 index ac512ec93a..0000000000 --- a/docs/tools/repl.md +++ /dev/null @@ -1,52 +0,0 @@ -# Read-eval-print-loop - -`deno repl` starts an read-eval-print-loop, which lets you interactively build -up program state in the global context. - -## Keyboard shortcuts - -| Keystroke | Action | -| --------------------- | ------------------------------------------------------------------------------------------------ | -| Ctrl-A, Home | Move cursor to the beginning of line | -| Ctrl-B, Left | Move cursor one character left | -| Ctrl-C | Interrupt and cancel the current edit | -| Ctrl-D | If if line _is_ empty, signal end of line | -| Ctrl-D, Del | If line is _not_ empty, delete character under cursor | -| Ctrl-E, End | Move cursor to end of line | -| Ctrl-F, Right | Move cursor one character right | -| Ctrl-H, Backspace | Delete character before cursor | -| Ctrl-I, Tab | Next completion | -| Ctrl-J, Ctrl-M, Enter | Finish the line entry | -| Ctrl-K | Delete from cursor to end of line | -| Ctrl-L | Clear screen | -| Ctrl-N, Down | Next match from history | -| Ctrl-P, Up | Previous match from history | -| Ctrl-R | Reverse Search history (Ctrl-S forward, Ctrl-G cancel) | -| Ctrl-T | Transpose previous character with current character | -| Ctrl-U | Delete from start of line to cursor | -| Ctrl-V | Insert any special character without performing its associated action | -| Ctrl-W | Delete word leading up to cursor (using white space as a word boundary) | -| Ctrl-X Ctrl-U | Undo | -| Ctrl-Y | Paste from Yank buffer | -| Ctrl-Y | Paste from Yank buffer (Meta-Y to paste next yank instead) | -| Ctrl-Z | Suspend (Unix only) | -| Ctrl-_ | Undo | -| Meta-0, 1, ..., - | Specify the digit to the argument. `–` starts a negative argument. | -| Meta-< | Move to first entry in history | -| Meta-> | Move to last entry in history | -| Meta-B, Alt-Left | Move cursor to previous word | -| Meta-Backspace | Kill from the start of the current word, or, if between words, to the start of the previous word | -| Meta-C | Capitalize the current word | -| Meta-D | Delete forwards one word | -| Meta-F, Alt-Right | Move cursor to next word | -| Meta-L | Lower-case the next word | -| Meta-T | Transpose words | -| Meta-U | Upper-case the next word | -| Meta-Y | See Ctrl-Y | - -## Special variables - -| Identifier | Description | -| ---------- | ------------------------------------ | -| _ | Yields the last evaluated expression | -| _error | Yields the last thrown error | diff --git a/docs/tools/script_installer.md b/docs/tools/script_installer.md deleted file mode 100644 index b5046719e7..0000000000 --- a/docs/tools/script_installer.md +++ /dev/null @@ -1,90 +0,0 @@ -## Script installer - -Deno provides `deno install` to easily install and distribute executable code. - -`deno install [OPTIONS...] [URL] [SCRIPT_ARGS...]` will install the script -available at `URL` under the name `EXE_NAME`. - -This command creates a thin, executable shell script which invokes `deno` using -the specified CLI flags and main module. It is placed in the installation root's -`bin` directory. - -Example: - -```shell -$ deno install --allow-net --allow-read https://deno.land/std@$STD_VERSION/http/file_server.ts -[1/1] Compiling https://deno.land/std@$STD_VERSION/http/file_server.ts - -✅ Successfully installed file_server. -/Users/deno/.deno/bin/file_server -``` - -To change the executable name, use `-n`/`--name`: - -```shell -deno install --allow-net --allow-read -n serve https://deno.land/std@$STD_VERSION/http/file_server.ts -``` - -The executable name is inferred by default: - -- Attempt to take the file stem of the URL path. The above example would become - 'file_server'. -- If the file stem is something generic like 'main', 'mod', 'index' or 'cli', - and the path has no parent, take the file name of the parent path. Otherwise - settle with the generic name. -- If the resulting name has an '@...' suffix, strip it. - -To change the installation root, use `--root`: - -```shell -deno install --allow-net --allow-read --root /usr/local https://deno.land/std@$STD_VERSION/http/file_server.ts -``` - -The installation root is determined, in order of precedence: - -- `--root` option -- `DENO_INSTALL_ROOT` environment variable -- `$HOME/.deno` - -These must be added to the path manually if required. - -```shell -echo 'export PATH="$HOME/.deno/bin:$PATH"' >> ~/.bashrc -``` - -You must specify permissions that will be used to run the script at installation -time. - -```shell -deno install --allow-net --allow-read https://deno.land/std@$STD_VERSION/http/file_server.ts -p 8080 -``` - -The above command creates an executable called `file_server` that runs with -network and read permissions and binds to port 8080. - -For good practice, use the [`import.meta.main`](../examples/module_metadata.md) -idiom to specify the entry point in an executable script. - -Example: - - - -```ts -// https://example.com/awesome/cli.ts -async function myAwesomeCli(): Promise { - -- snip -- -} - -if (import.meta.main) { - myAwesomeCli(); -} -``` - -When you create an executable script make sure to let users know by adding an -example installation command to your repository: - -```shell -# Install using deno install - -$ deno install -n awesome_cli https://example.com/awesome/cli.ts -``` diff --git a/docs/typescript.md b/docs/typescript.md deleted file mode 100644 index 4d5fc4b3a2..0000000000 --- a/docs/typescript.md +++ /dev/null @@ -1,10 +0,0 @@ -# Using TypeScript - -In this chapter we will discuss: - -- [Overview of TypeScript in Deno](./typescript/overview.md) -- [Configuring TypeScript in Deno](./typescript/configuration.md) -- [Types and Type Declarations](./typescript/types.md) -- [Migrating to/from JavaScript](./typescript/migration.md) -- [Runtime compiler APIs](./typescript/runtime.md) -- [FAQs about TypeScript in Deno](./typescript/faqs.md) diff --git a/docs/typescript/configuration.md b/docs/typescript/configuration.md deleted file mode 100644 index 5d62c1604d..0000000000 --- a/docs/typescript/configuration.md +++ /dev/null @@ -1,206 +0,0 @@ -## Configuring TypeScript in Deno - -TypeScript comes with a load of different options that can be configured, but -Deno strives to make it easy to use TypeScript with Deno. Lots of different -options frustrates that goal. To make things easier, Deno configures TypeScript -to "just work" and shouldn't require additional configuration. - -That being said, Deno does support using a TypeScript configuration file, though -like the rest of Deno, the detection and use of a configuration file is not -automatic. To use a TypeScript configuration file with Deno, you have to provide -a path on the command line. For example: - -``` -> deno run --config ./tsconfig.json main.ts -``` - -> ⚠️ Do consider though that if you are creating libraries that require a -> configuration file, all of the consumers of your modules will require that -> configuration file too if you distribute your modules as TypeScript. In -> addition, there could be settings you do in the configuration file that make -> other TypeScript modules incompatible. Honestly it is best to use the Deno -> defaults and to think long and hard about using a configuration file. - -### How Deno uses a configuration file - -Deno does not process a TypeScript configuration file like `tsc` does, as there -are lots of parts of a TypeScript configuration file that are meaningless in a -Deno context or would cause Deno to not function properly if they were applied. - -Deno only looks at the `compilerOptions` section of a configuration file, and -even then it only considers certain compiler options, with the rest being -ignored. - -Here is a table of compiler options that can be changed, their default in Deno -and any other notes about that option: - -| Option | Default | Notes | -| -------------------------------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `allowJs` | `true` | This almost never needs to be changed | -| `allowUnreachableCode` | `false` | | -| `allowUnusedLabels` | `false` | | -| `checkJs` | `false` | If `true` causes TypeScript to type check JavaScript | -| `experimentalDecorators` | `true` | We enable these by default as they are already opt-in in the code and when we skip type checking, the Rust based emitter has them on by default. We strongly discourage the use of legacy decorators, as they are incompatible with the future decorators standard in JavaScript | -| `jsx` | `"react"` | | -| `jsxFactory` | `"React.createElement"` | | -| `jsxFragmentFactory` | `"React.Fragment"` | | -| `keyofStringsOnly` | `false` | | -| `lib` | `[ "deno.window" ]` | The default for this varies based on other settings in Deno. If it is supplied, it overrides the default. See below for more information. | -| `noFallthroughCasesInSwitch` | `false` | | -| `noImplicitAny` | `true` | | -| `noImplicitReturns` | `false` | | -| `noImplicitThis` | `true` | | -| `noImplicitUseStrict` | `true` | | -| `noStrictGenericChecks` | `false` | | -| `noUnusedLocals` | `false` | | -| `noUnusedParameters` | `false` | | -| `noUncheckedIndexedAccess` | `false` | | -| `reactNamespace` | `React` | | -| `strict` | `true` | | -| `strictBindCallApply` | `true` | | -| `strictFunctionTypes` | `true` | | -| `strictPropertyInitialization` | `true` | | -| `strictNullChecks` | `true` | | -| `suppressExcessPropertyErrors` | `false` | | -| `suppressImplicitAnyIndexErrors` | `false` | | - -For a full list of compiler options and how they affect TypeScript, please refer -to the -[TypeScript Handbook](https://www.typescriptlang.org/docs/handbook/compiler-options.html) - -### What an implied tsconfig.json looks like - -It is impossible to get `tsc` to behave like Deno. It is also difficult to get -the TypeScript language service to behave like Deno. This is why we have built a -language service directly into Deno. That being said, it can be useful to -understand what is implied. - -If you were to write a `tsconfig.json` for Deno, it would look something like -this: - -```json -{ - "compilerOptions": { - "allowJs": true, - "esModuleInterop": true, - "experimentalDecorators": true, - "inlineSourceMap": true, - "isolatedModules": true, - "jsx": "react", - "lib": ["deno.window"], - "module": "esnext", - "strict": true, - "target": "esnext", - "useDefineForClassFields": true - } -} -``` - -You can't copy paste this into a `tsconfig.json` and get it to work, -specifically because of the built in type libraries that are custom to Deno -which are provided to the TypeScript compiler. This can somewhat be mocked by -running `deno types` on the command line and piping the output to a file and -including that in the files as part of the program, removing the `"lib"` option, -and setting the `"noLib"` option to `true`. - -If you use the `--unstable` flag, Deno will change the `"lib"` option to -`[ "deno.window", "deno.unstable" ]`. If you are trying to load a worker, that -is type checked with `"deno.worker"` instead of `"deno.window"`. See -[Type Checking Web Workers](./types#type-checking-web-workers) for more -information on this. - -### Using the "lib" property - -Deno has several libraries built into it that are not present in other -platforms, like `tsc`. This is what enables Deno to properly check code written -for Deno. In some situations though, this automatic behavior can cause -challenges, for example like writing code that is intended to also run in a -browser. In these situations the `"lib"` property of a `tsconfig.json` can be -used to modify the behavior of Deno when type checking code. - -The built-in libraries that are of interest to users: - -- `"deno.ns"` - This includes all the custom `Deno` global namespace APIs plus - the Deno additions to `import.meta`. This should generally not conflict with - other libraries or global types. -- `"deno.unstable"` - This includes the addition unstable `Deno` global - namespace APIs. -- `"deno.window"` - This is the "default" library used when checking Deno main - runtime scripts. It includes the `"deno.ns"` as well as other type libraries - for the extensions that are built into Deno. This library will conflict with - libraries like `"dom"` and `"dom.iterable"` that are standard TypeScript - libraries. -- `"deno.worker"` - This is the library used when checking a Deno web worker - script. For more information about web workers, check out - [Type Checking Web Workers](./types#type-checking-web-workers). -- `"dom.asynciterable"` - TypeScript currently does not include the DOM async - iterables that Deno implements (plus several browsers), so we have implemented - it ourselves until it becomes available in TypeScript. - -These are common libraries that Deno doesn't use, but are useful when writing -code that is intended to also work in another runtime: - -- `"dom"` - The main browser global library that ships with TypeScript. The type - definitions conflict in many ways with `"deno.window"` and so if `"dom"` is - used, then consider using just `"deno.ns"` to expose the Deno specific APIs. -- `"dom.iterable"` - The iterable extensions to the browser global library. -- `"scripthost"` - The library for the Microsoft Windows Script Host. -- `"webworker"` - The main library for web workers in the browser. Like `"dom"` - this will conflict with `"deno.window"` or `"deno.worker"`, so consider using - just `"deno.ns"` to expose the Deno specific APIs. -- `"webworker.importscripts"` - The library that exposes the `importScripts()` - API in the web worker. -- `"webworker.iterable"` - The library that adds iterables to objects within a - web worker. Modern browsers support this. - -#### Targeting Deno and the Browser - -A common use case is writing code that works in Deno and the browser, and have -the code "sniff" to determine if it is running in the browser or in Deno. If -that is the case a common configuration of a `tsconfig.json` would look like -this: - -```json -{ - "compilerOptions": { - "target": "esnext", - "lib": ["dom", "dom.iterable", "dom.asynciterable", "deno.ns"] - } -} -``` - -This should allow most code to be type checked properly by Deno. - -If you expect to run the code in Deno with the `--unstable` flag, then you will -want to add that library to the mix as well: - -```json -{ - "compilerOptions": { - "target": "esnext", - "lib": [ - "dom", - "dom.iterable", - "dom.asynciterable", - "deno.ns", - "deno.unstable" - ] - } -} -``` - -Typically when you use the `"lib"` option in TypeScript, you need to include an -"es" library as well. In the case of `"deno.ns"` and `"deno.unstable"`, they -automatically include `"esnext"` when you bring them in. - -The biggest "danger" when doing something like this, is that the type checking -is significantly looser, and there is no way to validate that you are doing -sufficient and effective feature detection in your code, which may lead to what -could be trivial errors becoming runtime errors. - -### Using the "types" property - -The `"types"` property in `"compilerOptions"` can be used to specify arbitrary -type definitions to include when type checking a programme. For more information -on this see -[Using ambient or global types](./types#using-ambient-or-global-types). diff --git a/docs/typescript/faqs.md b/docs/typescript/faqs.md deleted file mode 100644 index 5db02cb7e4..0000000000 --- a/docs/typescript/faqs.md +++ /dev/null @@ -1,136 +0,0 @@ -## FAQs about TypeScript in Deno - -### Can I use TypeScript not written for Deno? - -Maybe. That is the best answer, we are afraid. For lots of reasons, Deno has -chosen to have fully qualified module specifiers. In part this is because it -treats TypeScript as a first class language. Also, Deno uses explicit module -resolution, with no _magic_. This is effectively the same way browsers -themselves work, though they don't obviously support TypeScript directly. If the -TypeScript modules use imports that don't have these design decisions in mind, -they may not work under Deno. - -Also, in recent versions of Deno (starting with 1.5), we have started to use a -Rust library to do transformations of TypeScript to JavaScript in certain -scenarios. Because of this, there are certain situations in TypeScript where -type information is required, and therefore those are not supported under Deno. -If you are using `tsc` as stand-alone, the setting to use is `"isolatedModules"` -and setting it to `true` to help ensure that your code can be properly handled -by Deno. - -One of the ways to deal with the extension and the lack of Node.js non-standard -resolution logic is to use -[import maps](../linking_to_external_code/import_maps.md) which would allow you -to specify "packages" of bare specifiers which then Deno could resolve and load. - -### What version(s) of TypeScript does Deno support? - -Deno is built with a specific version of TypeScript. To find out what this is, -type the following on the command line: - -```shell -> deno --version -``` - -The TypeScript version (along with the version of Deno and v8) will be printed. -Deno tries to keep up to date with general releases of TypeScript, providing -them in the next patch or minor release of Deno. - -### There was a breaking change in the version of TypeScript that Deno uses, why did you break my program? - -We do not consider changes in behavior or breaking changes in TypeScript -releases as breaking changes for Deno. TypeScript is a generally mature language -and breaking changes in TypeScript are almost always "good things" making code -more sound, and it is best that we all keep our code sound. If there is a -blocking change in the version of TypeScript and it isn't suitable to use an -older release of Deno until the problem can be resolved, then you should be able -to use `--no-check` to skip type checking all together. - -In addition you can utilize `@ts-ignore` to _ignore_ a specific error in code -that you control. You can also replace whole dependencies, using -[import maps](../linking_to_external_code/import_maps), for situations where a -dependency of a dependency isn't being maintained or has some sort of breaking -change you want to bypass while waiting for it to be updated. - -### How do I write code that works in Deno and a browser, but still type checks? - -You can do this by using a `tsconfig.json` file with the `--config` option on -the command line and adjusting the `"lib"` option in the `"compilerOptions"` in -the file. For more information see -[Targeting Deno and the Browser](./configuration#targeting-deno-and-the-browser). - -### Why are you forcing me to use isolated modules, why can't I use const enums with Deno, why do I need to do export type? - -As of Deno 1.5 we defaulted to _isolatedModules_ to `true` and in Deno 1.6 we -removed the options to set it back to `false` via a configuration file. The -_isolatedModules_ option forces the TypeScript compiler to check and emit -TypeScript as if each module would stand on its own. TypeScript has a few _type -directed emits_ in the language at the moment. While not allowing type directed -emits into the language was a design goal for TypeScript, it has happened -anyways. This means that the TypeScript compiler needs to understand the -erasable types in the code to determine what to emit, which when you are trying -to make a fully erasable type system on top of JavaScript, that becomes a -problem. - -When people started transpiling TypeScript without `tsc`, these type directed -emits became a problem, since the likes of Babel simply try to erase the types -without needing to understand the types to direct the emit. In the internals of -Deno we have started to use a Rust based emitter which allows us to optionally -skip type checking and generates the bundles for things like `deno bundle`. Like -all transpilers, it doesn't care about the types, it just tries to erase them. -This means in certain situations we cannot support those type directed emits. - -So instead of trying to get every user to understand when and how we could -support the type directed emits, we made the decision to disable the use of them -by forcing the _isolatedModules_ option to `true`. This means that even when we -are using the TypeScript compiler to emit the code, it will follow the same -"rules" that the Rust based emitter follows. - -This means that certain language features are not supportable. Those features -are: - -- Re-exporting of types is ambiguous and requires knowing if the source module - is exporting runtime code or just type information. Therefore, it is - recommended that you use `import type` and `export type` for type only imports - and exports. This will help ensure that when the code is emitted, that all the - types are erased. -- `const enum` is not supported. `const enum`s require type information to - direct the emit, as `const enum`s get written out as hard coded values. - Especially when `const enum`s get exported, they are a type system only - construct. -- `export =` and `import =` are legacy TypeScript syntax which we do not - support. -- Only `declare namespace` is support. Runtime `namespace` is legacy TypeScript - syntax that is not supported. - -### Why don't you support language service plugins or transformer plugins? - -While `tsc` supports language service plugins, Deno does not. Deno does not -always use the built in TypeScript compiler to do what it does, and the -complexity of adding support for a language service plugin is not feasible. -TypeScript does not support emitter plugins, but there are a few community -projects which _hack_ emitter plugins into TypeScript. First, we wouldn't want -to support something that TypeScript doesn't support, plus we do not always use -the TypeScript compiler for the emit, which would mean we would need to ensure -we supported it in all modes, and the other emitter is written in Rust, meaning -that any emitter plugin for TypeScript wouldn't be available for the Rust -emitter. - -The TypeScript in Deno isn't intended to be a fully flexible TypeScript -compiler. Its main purpose is to ensure that TypeScript and JavaScript can run -under Deno. The secondary ability to do TypeScript and JavaScript emitting via -the runtime API `Deno.emit()` is intended to be simple and straight forward and -support a certain set of use cases. - -### How do I combine Deno code with non-Deno code in my IDE? - -The Deno language server supports the ability to have a "per-resource" -configuration of enabling Deno or not. This also requires a client IDE to -support this ability. For Visual Studio Code the official -[Deno extension](https://marketplace.visualstudio.com/items?itemName=denoland.vscode-deno) -supports the vscode concept of -[multi-root workspace](https://code.visualstudio.com/docs/editor/multi-root-workspaces). -This means you just need to add folders to the workspace and set the -`deno.enable` setting as required on each folder. - -For other IDEs, the client extensions needs to support the similar IDE concepts. diff --git a/docs/typescript/migration.md b/docs/typescript/migration.md deleted file mode 100644 index 451177f2ca..0000000000 --- a/docs/typescript/migration.md +++ /dev/null @@ -1,71 +0,0 @@ -## Migrating to and from JavaScript - -One of the advantages of Deno is that it treats TypeScript and JavaScript pretty -equally. This might mean that transitioning from JavaScript to TypeScript or -even from TypeScript to JavaScript is something you want to accomplish. There -are several features of Deno that can help with this. - -### Type checking JavaScript - -You might have some JavaScript that you would like to ensure is more type sound -but you don't want to go through a process of adding type annotations -everywhere. - -Deno supports using the TypeScript type checker to type check JavaScript. You -can mark any individual file by adding the check JavaScript pragma to the file: - -```js -// @ts-check -``` - -This will cause the type checker to infer type information about the JavaScript -code and raise any issues as diagnostic issues. - -These can be turned on for all JavaScript files in a program by providing a -configuration file with the check JS option enabled: - -```json -{ - "compilerOptions": { - "checkJs": true - } -} -``` - -And setting the `--config` option on the command line. - -### Using JSDoc in JavaScript - -If you are type checking JavaScript, or even importing JavaScript into -TypeScript you can use JSDoc in JavaScript to express more types information -than can just be inferred from the code itself. Deno supports this without any -additional configuration, you simply need to annotate the code in line with the -supported -[TypeScript JSDoc](https://www.typescriptlang.org/docs/handbook/jsdoc-supported-types.html). -For example to set the type of an array: - -```js -/** @type {string[]} */ -const a = []; -``` - -### Skipping type checking - -You might have TypeScript code that you are experimenting with, where the syntax -is valid but not fully type safe. You can always bypass type checking for a -whole program by passing the `--no-check`. - -You can also skip whole files being type checked, including JavaScript if you -have check JS enabled, by using the no-check pragma: - -```js -// @ts-nocheck -``` - -### Just renaming JS files to TS files - -While this might work in some cases, it has some severe limits in Deno. This is -because Deno, by default, runs type checking in what is called _strict mode_. -This means a lot of unclear or ambiguous situations where are not caught in -non-strict mode will result in diagnostics being generated, and JavaScript is -nothing but unclear and ambiguous when it comes to types. diff --git a/docs/typescript/overview.md b/docs/typescript/overview.md deleted file mode 100644 index 038ea35b14..0000000000 --- a/docs/typescript/overview.md +++ /dev/null @@ -1,159 +0,0 @@ -## Overview of TypeScript in Deno - -One of the benefits of Deno is that it treats TypeScript as a first class -language, just like JavaScript or Web Assembly, when running code in Deno. What -that means is you can run or import TypeScript without installing anything more -than the Deno CLI. - -_But wait a minute, does Deno really run TypeScript?_ you might be asking -yourself. Well, depends on what you mean by run. One could argue that in a -browser you don't actually _run_ JavaScript either. The JavaScript engine in the -browser translates the JavaScript to a series of operation codes, which it then -executes in a sandbox. So it translates JavaScript to something close to -assembly. Even Web Assembly goes through a similar translation, in that Web -Assembly is architecture agnostic while it needs to be translated into the -machine specific operation codes needed for the particular platform architecture -it is running on. So when we say TypeScript is a first class language in Deno, -we mean that we try to make the user experience in authoring and running -TypeScript as easy and straightforward as JavaScript and Web Assembly. - -Behind the scenes, we use a combination of technologies, in Rust and JavaScript, -to provide that experience. - -### How does it work? - -At a high level, Deno converts TypeScript (as well as TSX and JSX) into -JavaScript. It does this via a combination of the -[TypeScript compiler](https://github.com/microsoft/TypeScript), which we build -into Deno, and a Rust library called [swc](https://swc.rs/). When the code has -been type checked and transformed, it is stored in a cache, ready for the next -run without the need to convert it from its source to JavaScript again. - -You can see this cache location by running `deno info`: - -```shell -> deno info -DENO_DIR location: "/path/to/cache/deno" -Remote modules cache: "/path/to/cache/deno/deps" -TypeScript compiler cache: "/path/to/cache/deno/gen" -``` - -If you were to look in that cache, you would see a directory structure that -mimics that source directory structure and individual `.js` and `.meta` files -(also potentially `.map` files). The `.js` file is the transformed source file -while the `.meta` file contains meta data we want to cache about the file, which -at the moment contains a _hash_ of the source module that helps us manage cache -invalidation. You might also see a `.buildinfo` file as well, which is a -TypeScript compiler incremental build information file, which we cache to help -speed up type checking. - -### Type Checking - -One of the main advantages of TypeScript is that you can make code more type -safe, so that what would be syntactically valid JavaScript becomes TypeScript -with warnings about being "unsafe". - -In Deno we handle TypeScript in two major ways. We can type check TypeScript, -the default, or you can opt into skipping that checking using the `--no-check` -flag. For example if you had a program you wanted to run, normally you would do -something like this: - -``` -deno run --allow-net my_server.ts -``` - -But if you wanted to skip the type checking, you would do something like this: - -``` -deno run --allow-net --no-check my_server.ts -``` - -Type checking can take a significant amount of time, especially if you are -working on a code base where you are making a lot of changes. We have tried to -optimise the type checking, but it still comes at a cost. If you just want to -hack at some code, or if you are working in an IDE which is type checking your -code as you author it, using `--no-check` can certainly speed up the process of -running TypeScript in Deno. - -### Determining the type of file - -Since Deno supports JavaScript, TypeScript, JSX, TSX modules, Deno has to make a -decision about how to treat each of these kinds of files. For local modules, -Deno makes this determination based fully on the extension. When the extension -is absent in a local file, it is assumed to be JavaScript. - -For remote modules, the media type (mime-type) is used to determine the type of -the module, where the path of the module is used to help influence the file -type, when it is ambiguous what type of file it is. - -For example, a `.d.ts` file and a `.ts` file have different semantics in -TypeScript as well as have different ways they need to be handled in Deno. While -we expect to convert a `.ts` file into JavaScript, a `.d.ts` file contains no -"runnable" code, and is simply describing types (often of "plain" JavaScript). -So when we fetch a remote module, the media type for a `.ts.` and `.d.ts` file -looks the same. So we look at the path, and if we see something that has a path -that ends with `.d.ts` we treat it as a type definition only file instead of -"runnable" TypeScript. - -#### Supported media types - -The following table provides a list of media types which Deno supports when -identifying the type of file of a remote module: - -| Media Type | How File is Handled | -| -------------------------- | ----------------------------------------------------------- | -| `application/typescript` | TypeScript (with path extension influence) | -| `text/typescript` | TypeScript (with path extension influence) | -| `video/vnd.dlna.mpeg-tts` | TypeScript (with path extension influence) | -| `video/mp2t` | TypeScript (with path extension influence) | -| `application/x-typescript` | TypeScript (with path extension influence) | -| `application/javascript` | JavaScript (with path extensions influence) | -| `text/javascript` | JavaScript (with path extensions influence) | -| `application/ecmascript` | JavaScript (with path extensions influence) | -| `text/ecmascript` | JavaScript (with path extensions influence) | -| `application/x-javascript` | JavaScript (with path extensions influence) | -| `application/node` | JavaScript (with path extensions influence) | -| `text/jsx` | JSX | -| `text/tsx` | TSX | -| `text/plain` | Attempt to determine that path extension, otherwise unknown | -| `application/octet-stream` | Attempt to determine that path extension, otherwise unknown | - -### Strict by default - -Deno type checks TypeScript in _strict_ mode by default, and the TypeScript core -team recommends _strict_ mode as a sensible default. This mode generally enables -features of TypeScript that probably should have been there from the start, but -as TypeScript continued to evolve, would be breaking changes for existing code. - -### Mixing JavaScript and TypeScript - -By default, Deno does not type check JavaScript. This can be changed, and is -discussed further in [Configuring TypeScript in Deno](./configuration.md). Deno -does support JavaScript importing TypeScript and TypeScript importing -JavaScript, in complex scenarios. - -An important note though is that when type checking TypeScript, by default Deno -will "read" all the JavaScript in order to be able to evaluate how it might have -an impact on the TypeScript types. The type checker will do the best it can to -figure out what the types are of the JavaScript you import into TypeScript, -including reading any JSDoc comments. Details of this are discussed in detail in -the [Types and type declarations](./types.md) section. - -### Diagnostics are terminal - -While `tsc` by default will still emit JavaScript when run while encountering -diagnostic (type checking) issues, Deno currently treats them as terminal. It -will halt on these warnings, not cache any of the emitted files, and exit the -process. - -In order to avoid this, you will either need to resolve the issue, utilise the -`// @ts-ignore` or `// @ts-expect-error` pragmas, or utilise `--no-check` to -bypass type checking all together. - -### Type resolution - -One of the core design principles of Deno is to avoid non-standard module -resolution, and this applies to type resolution as well. If you want to utilise -JavaScript that has type definitions (e.g. a `.d.ts` file), you have to -explicitly tell Deno about this. The details of how this is accomplished are -covered in the [Types and type declarations](./types.md) section. diff --git a/docs/typescript/runtime.md b/docs/typescript/runtime.md deleted file mode 100644 index c672dafd8b..0000000000 --- a/docs/typescript/runtime.md +++ /dev/null @@ -1,270 +0,0 @@ -## Runtime compiler APIs - -> ⚠️ The runtime compiler API is unstable (and requires the `--unstable` flag to -> be used to enable it). - -The runtime compiler API allows access to the internals of Deno to be able to -type check, transpile and bundle JavaScript and TypeScript. As of Deno 1.7, -several disparate APIs we consolidated into a single API, `Deno.emit()`. - -### Deno.emit() - -The API is defined in the `Deno` namespace as: - -```ts -function emit( - rootSpecifier: string | URL, - options?: EmitOptions, -): Promise; -``` - -The emit options are defined in the `Deno` namespace as: - -```ts -interface EmitOptions { - /** Indicate that the source code should be emitted to a single file - * JavaScript bundle that is a single ES module (`"module"`) or a single - * file self contained script we executes in an immediately invoked function - * when loaded (`"classic"`). */ - bundle?: "module" | "classic"; - /** If `true` then the sources will be typed checked, returning any - * diagnostic errors in the result. If `false` type checking will be - * skipped. Defaults to `true`. - * - * *Note* by default, only TypeScript will be type checked, just like on - * the command line. Use the `compilerOptions` options of `checkJs` to - * enable type checking of JavaScript. */ - check?: boolean; - /** A set of options that are aligned to TypeScript compiler options that - * are supported by Deno. */ - compilerOptions?: CompilerOptions; - /** An [import-map](https://deno.land/manual/linking_to_external_code/import_maps#import-maps) - * which will be applied to the imports. */ - importMap?: ImportMap; - /** An absolute path to an [import-map](https://deno.land/manual/linking_to_external_code/import_maps#import-maps). - * Required to be specified if an `importMap` is specified to be able to - * determine resolution of relative paths. If a `importMap` is not - * specified, then it will assumed the file path points to an import map on - * disk and will be attempted to be loaded based on current runtime - * permissions. - */ - importMapPath?: string; - /** A record of sources to use when doing the emit. If provided, Deno will - * use these sources instead of trying to resolve the modules externally. */ - sources?: Record; -} -``` - -The emit result is defined in the `Deno` namespace as: - -```ts -interface EmitResult { - /** Diagnostic messages returned from the type checker (`tsc`). */ - diagnostics: Diagnostic[]; - /** Any emitted files. If bundled, then the JavaScript will have the - * key of `deno:///bundle.js` with an optional map (based on - * `compilerOptions`) in `deno:///bundle.js.map`. */ - files: Record; - /** An optional array of any compiler options that were ignored by Deno. */ - ignoredOptions?: string[]; - /** An array of internal statistics related to the emit, for diagnostic - * purposes. */ - stats: Array<[string, number]>; -} -``` - -The API is designed to support several use cases, which are described in the -sections below. - -### Using external sources - -Using external sources, both local and remote, `Deno.emit()` can behave like -`deno cache` does on the command line, resolving those external dependencies, -type checking those dependencies, and providing an emitted output. - -By default, `Deno.emit()` will utilise external resources. The _rootSpecifier_ -supplied as the first argument will determine what module will be used as the -root. The root module is similar to what you would provide on the command line. - -For example if you did: - -``` -> deno run mod.ts -``` - -You could do something similar with `Deno.emit()`: - -```ts -try { - const { files } = await Deno.emit("mod.ts"); - for (const [fileName, text] of Object.entries(files)) { - console.log(`emitted ${fileName} with a length of ${text.length}`); - } -} catch (e) { - // something went wrong, inspect `e` to determine -} -``` - -`Deno.emit()` will use the same on disk cache for remote modules that the -standard CLI does, and it inherits the permissions and cache options of the -process that executes it. - -If the _rootSpecifier_ is a relative path, then the current working directory of -the Deno process will be used to resolve the specifier. (Not relative to the -current module!) - -The _rootSpecifier_ can be a string file path, a string URL, or a URL. -`Deno.emit()` supports the same protocols for URLs that Deno supports, which are -currently `file`, `http`, `https`, and `data`. - -### Providing sources - -Instead of resolving modules externally, you can provide `Deno.emit()` with the -sources directly. This is especially useful for a server to be able to provide -_on demand_ compiling of code supplied by a user, where the Deno process has -collected all the code it wants to emit. - -The sources are passed in the _sources_ property of the `Deno.emit()` _options_ -argument: - -```ts -const { files } = await Deno.emit("/mod.ts", { - sources: { - "/mod.ts": `import * as a from "./a.ts";\nconsole.log(a);\n`, - "/a.ts": `export const a: Record = {};\n`, - }, -}); -``` - -When sources are provided, Deno will no longer look externally and will try to -resolve all modules from within the map of sources provided, though the module -resolution follow the same rules as if the modules were external. For example -all module specifiers need their full filename. Also, because there are no media -types, if you are providing remote URLs in the sources, the path should end with -the appropriate extension, so that Deno can determine how to handle the file. - -### Type checking and emitting - -By default, `Deno.emit()` will type check any TypeScript (and TSX) it -encounters, just like on the command line. It will also attempt to transpile -JSX, but will leave JavaScript "alone". This behavior can be changed by changing -the compiler options. For example if you wanted Deno to type check your -JavaScript as well, you could set the _checkJs_ option to `true` in the compiler -options: - -```ts -const { files, diagnostics } = await Deno.emit("./mod.js", { - compilerOptions: { - checkJs: true, - }, -}); -``` - -The `Deno.emit()` result provides any diagnostic messages about the code -supplied. On the command line, any diagnostic messages get logged to stderr and -the Deno process terminates, but with `Deno.emit()` they are returned to the -caller. - -Typically you will want to check if there are any diagnostics and handle them -appropriately. You can introspect the diagnostics individually, but there is a -handy formatting function available to make it easier to potentially log the -diagnostics to the console for the user called `Deno.formatDiagnostics()`: - -```ts -const { files, diagnostics } = await Deno.emit("./mod.ts"); -if (diagnostics.length) { - // there is something that impacted the emit - console.warn(Deno.formatDiagnostics(diagnostics)); -} -``` - -### Bundling - -`Deno.emit()` is also capable of providing output similar to `deno bundle` on -the command line. This is enabled by setting the _bundle_ option to `"module"` -or `"classic"`. Currently Deno supports bundling as a single file ES module -(`"module"`) or a single file self contained legacy script (`"classic"`). - -```ts -const { files, diagnostics } = await Deno.emit("./mod.ts", { - bundle: "module", -}); -``` - -The _files_ of the result will contain a single key named `deno:///bundle.js` of -which the value with be the resulting bundle. - -> ⚠️ Just like with `deno bundle`, the bundle will not include things like -> dynamic imports or worker scripts, and those would be expected to be resolved -> and available when the code is run. - -### Import maps - -`Deno.emit()` supports import maps as well, just like on the command line. This -is a really powerful feature that can be used even more effectively to emit and -bundle code. - -Because of the way import maps work, when using with `Deno.emit()` you also have -to supply an absolute URL for the import map. This allows Deno to resolve any -relative URLs specified in the import map. This needs to be supplied even if the -import map doesn't contain any relative URLs. The URL does not need to really -exist, it is just feed to the API. - -An example might be that I want to use a bare specifier to load a special -version of _lodash_ I am using with my project. I could do the following: - -```ts -const { files } = await Deno.emit("mod.ts", { - bundle: "module", - importMap: { - imports: { - "lodash": "https://deno.land/x/lodash", - }, - }, - importMapPath: "file:///import-map.json", -}); -``` - -> ⚠️ If you are not bundling your code, the emitted code specifiers do not get -> rewritten, that means that whatever process will consume the code, Deno or a -> browser for example, would need to support import maps and have that map -> available at runtime. - -### Skip type checking/transpiling only - -`Deno.emit()` supports skipping type checking similar to the `--no-check` flag -on the command line. This is accomplished by setting the _check_ property to -`false`: - -```ts -const { files } = await Deno.emit("./mod.ts", { - check: false, -}); -``` - -Setting _check_ to `false` will instruct Deno to not utilise the TypeScript -compiler to type check the code and emit it, instead only transpiling the code -from within Deno. This can be significantly quicker than doing the full type -checking. - -### Compiler options - -`Deno.emit()` supports quite a few compiler options that can impact how code is -type checked and emitted. They are similar to the options supported by a -`tsconfig.json` in the `compilerOptions` section, but there are several options -that are not supported. This is because they are either meaningless in Deno or -would cause Deno to not be able to work properly. The defaults for `Deno.emit()` -are the same defaults that are on the command line. The options are -[documented here](https://doc.deno.land/builtin/unstable#Deno.CompilerOptions) -along with their default values and are built into the Deno types. - -If you are type checking your code, the compiler options will be type checked -for you, but if for some reason you are either dynamically providing the -compiler options or are not type checking, then the result of `Deno.emit()` will -provide you with an array of _ignoredOptions_ if there are any. - -> ⚠️ we have only tried to disable/remove options that we know won't work, that -> does not mean we extensively test all options in all configurations under -> `Deno.emit()`. You may find that some behaviors do not match what you can get -> from `tsc` or are otherwise incompatible. If you do find something that -> doesn't work, please do feel free to raise an issue. diff --git a/docs/typescript/types.md b/docs/typescript/types.md deleted file mode 100644 index 02257ff3d9..0000000000 --- a/docs/typescript/types.md +++ /dev/null @@ -1,290 +0,0 @@ -## Types and Type Declarations - -One of the design principles of Deno is no non-standard module resolution. When -TypeScript is type checking a file, it only cares about the types for the file, -and the `tsc` compiler has a lot of logic to try to resolve those types. By -default, it expects _ambiguous_ module specifiers with an extension, and will -attempt to look for the file under the `.ts` specifier, then `.d.ts`, and -finally `.js` (plus a whole other set of logic when the module resolution is set -to `"node"`). Deno deals with explicit specifiers. - -This can cause a couple problems though. For example, let's say I want to -consume a TypeScript file that has already been transpiled to JavaScript along -with a type definition file. So I have `mod.js` and `mod.d.ts`. If I try to -import `mod.js` into Deno, it will only do what I ask it to do, and import -`mod.js`, but that means my code won't be as well type checked as if TypeScript -was considering the `mod.d.ts` file in place of the `mod.js` file. - -In order to support this in Deno, Deno has two solutions, of which there is a -variation of a solution to enhance support. The two main situations you come -across would be: - -- As the importer of a JavaScript module, I know what types should be applied to - the module. -- As the supplier of the JavaScript module, I know what types should be applied - to the module. - -The latter case is the better case, meaning you as the provider or host of the -module, everyone can consume it without having to figure out how to resolve the -types for the JavaScript module, but when consuming modules that you may not -have direct control over, the ability to do the former is also required. - -### Providing types when importing - -If you are consuming a JavaScript module and you have either created types (a -`.d.ts` file) or have otherwise obtained the types, you want to use, you can -instruct Deno to use that file when type checking instead of the JavaScript file -using the `@deno-types` compiler hint. `@deno-types` needs to be a single line -double slash comment, where when used impacts the next import or re-export -statement. - -For example if I have a JavaScript modules `coolLib.js` and I had a separate -`coolLib.d.ts` file that I wanted to use, I would import it like this: - -```ts -// @deno-types="./coolLib.d.ts" -import * as coolLib from "./coolLib.js"; -``` - -When type checking `coolLib` and your usage of it in the file, the -`coolLib.d.ts` types will be used instead of looking at the JavaScript file. - -The pattern matching for the compiler hint is somewhat forgiving and will accept -quoted and non-question values for the specifier as well as it accepts -whitespace before and after the equals sign. - -### Providing types when hosting - -If you are in control of the source code of the module, or you are in control of -how the file is hosted on a web server, there are two ways to inform Deno of the -types for a given module, without requiring the importer to do anything special. - -#### Using the triple-slash reference directive - -Deno supports using the triple-slash reference `types` directive, which adopts -the reference comment used by TypeScript in TypeScript files to _include_ other -files and applies it only to JavaScript files. - -For example, if I had created `coolLib.js` and along side of it I had created my -type definitions for my library in `coolLib.d.ts` I could do the following in -the `coolLib.js` file: - -```js -/// - -// ... the rest of the JavaScript ... -``` - -When Deno encounters this directive, it would resolve the `./coolLib.d.ts` file -and use that instead of the JavaScript file when TypeScript was type checking -the file, but still load the JavaScript file when running the program. - -> ℹ️ _Note_ this is a repurposed directive for TypeScript that only applies to -> JavaScript files. Using the triple-slash reference directive of `types` in a -> TypeScript file works under Deno as well, but has essentially the same -> behavior as the `path` directive. - -#### Using X-TypeScript-Types header - -Similar to the triple-slash directive, Deno supports a header for remote modules -that instructs Deno where to locate the types for a given module. For example, a -response for `https://example.com/coolLib.js` might look something like this: - -``` -HTTP/1.1 200 OK -Content-Type: application/javascript; charset=UTF-8 -Content-Length: 648 -X-TypeScript-Types: ./coolLib.d.ts -``` - -When seeing this header, Deno would attempt to retrieve -`https://example.com/coolLib.d.ts` and use that when type checking the original -module. - -### Using ambient or global types - -Overall it is better to use module/UMD type definitions with Deno, where a -module expressly imports the types it depends upon. Modular type definitions can -express -[augmentation of the global scope](https://www.typescriptlang.org/docs/handbook/declaration-files/templates/global-modifying-module-d-ts.html) -via the `declare global` in the type definition. For example: - -```ts -declare global { - var AGlobalString: string; -} -``` - -This would make `AGlobalString` available in the global namespace when importing -the type definition. - -In some cases though, when leveraging other existing type libraries, it may not -be possible to leverage modular type definitions. Therefore there are ways to -include arbitrary type definitions when type checking programmes. - -#### Using a triple-slash directive - -This option couples the type definitions to the code itself. By adding a -triple-slash `types` directive near the type of a module, type checking the file -will include the type definition. For example: - -```ts -/// -``` - -The specifier provided is resolved just like any other specifier in Deno, which -means it requires an extension, and is relative to the module referencing it. It -can be a fully qualified URL as well: - -```ts -/// -``` - -#### Using a `tsconfig.json` file - -Another option is to use a `tsconfig.json` file that is configured to include -the type definitions, by supplying a `"types"` value to the `"compilerOptions"`. -For example: - -```json -{ - "compilerOptions": { - "types": [ - "./types.d.ts", - "https://deno.land/x/pkg@1.0.0/types.d.ts", - "/Users/me/pkg/types.d.ts" - ] - } -} -``` - -Like the triple-slash reference above, the specifier supplied in the `"types"` -array will be resolved like other specifiers in Deno. In the case of relative -specifiers, it will be resolved relative to the path to the `tsconfig.json`. - -### Type Checking Web Workers - -When Deno loads a TypeScript module in a web worker, it will automatically type -check the module and its dependencies against the Deno web worker library. This -can present a challenge in other contexts like `deno cache`, `deno bundle`, or -in editors. There are a couple of ways to instruct Deno to use the worker -libraries instead of the standard Deno libraries. - -#### Using triple-slash directives - -This option couples the library settings with the code itself. By adding the -following triple-slash directives near the top of the entry point file for the -worker script, Deno will now type check it as a Deno worker script, irrespective -of how the module is analyzed: - -```ts -/// -/// -``` - -The first directive ensures that no other default libraries are used. If this is -omitted, you will get some conflicting type definitions, because Deno will try -to apply the standard Deno library as well. The second instructs Deno to apply -the built in Deno worker type definitions plus dependent libraries (like -`"esnext"`). - -When you run a `deno cache` or `deno bundle` command or use an IDE which uses -the Deno language server, Deno should automatically detect these directives and -apply the correct libraries when type checking. - -The one disadvantage of this, is that it makes the code less portable to other -non-Deno platforms like `tsc`, as it is only Deno which has the `"deno.worker"` -library built into it. - -#### Using a `tsconfig.json` file - -Another option is to use a `tsconfig.json` file that is configured to apply the -library files. A minimal file that would work would look something like this: - -```json -{ - "compilerOptions": { - "target": "esnext", - "lib": ["deno.worker"] - } -} -``` - -Then when running a command on the command line, you would need to pass the -`--config tsconfig.json` argument, or if you are using an IDE which leverages -the Deno language server, set the `deno.config` setting. - -If you also have non-worker scripts, you will either need to omit the `--config` -argument, or have one that is configured to meet the needs of your non-worker -scripts. - -### Important points - -#### Type declaration semantics - -Type declaration files (`.d.ts` files) follow the same semantics as other files -in Deno. This means that declaration files are assumed to be module declarations -(_UMD declarations_) and not ambient/global declarations. It is unpredictable -how Deno will handle ambient/global declarations. - -In addition, if a type declaration imports something else, like another `.d.ts` -file, its resolution follow the normal import rules of Deno. For a lot of the -`.d.ts` files that are generated and available on the web, they may not be -compatible with Deno. - -To overcome this problem, some solution providers, like the -[Skypack CDN](https://www.skypack.dev/), will automatically bundle type -declarations just like they provide bundles of JavaScript as ESM. - -#### Deno Friendly CDNs - -There are CDNs which host JavaScript modules that integrate well with Deno. - -- [Skypack.dev](https://docs.skypack.dev/skypack-cdn/code/deno) is a CDN which - provides type declarations (via the `X-TypeScript-Types` header) when you - append `?dts` as a query string to your remote module import statements. For - example: - - ```ts - import React from "https://cdn.skypack.dev/react?dts"; - ``` - -### Behavior of JavaScript when type checking - -If you import JavaScript into TypeScript in Deno and there are no types, even if -you have `checkJs` set to `false` (the default for Deno), the TypeScript -compiler will still access the JavaScript module and attempt to do some static -analysis on it, to at least try to determine the shape of the exports of that -module to validate the import in the TypeScript file. - -This is usually never a problem when trying to import a "regular" ES module, but -in some cases if the module has special packaging, or is a global _UMD_ module, -TypeScript's analysis of the module can fail and cause misleading errors. The -best thing to do in this situation is provide some form of types using one of -the methods mention above. - -#### Internals - -While it isn't required to understand how Deno works internally to be able to -leverage TypeScript with Deno well, it can help to understand how it works. - -Before any code is executed or compiled, Deno generates a module graph by -parsing the root module, and then detecting all of its dependencies, and then -retrieving and parsing those modules, recursively, until all the dependencies -are retrieved. - -For each dependency, there are two potential "slots" that are used. There is the -code slot and the type slot. As the module graph is filled out, if the module is -something that is or can be emitted to JavaScript, it fills the code slot, and -type only dependencies, like `.d.ts` files fill the type slot. - -When the module graph is built, and there is a need to type check the graph, -Deno starts up the TypeScript compiler and feeds it the names of the modules -that need to be potentially emitted as JavaScript. During that process, the -TypeScript compiler will request additional modules, and Deno will look at the -slots for the dependency, offering it the type slot if it is filled before -offering it the code slot. - -This means when you import a `.d.ts` module, or you use one of the solutions -above to provide alternative type modules for JavaScript code, that is what is -provided to TypeScript instead when resolving the module.