From 4f0c710130c71c1124c314ebe6acc0762fc0e251 Mon Sep 17 00:00:00 2001 From: Ezhil Shanmugham Date: Fri, 15 Dec 2023 18:14:24 +0530 Subject: [PATCH 1/3] feat: added webassembly --- .github/workflows/webassembly-pr-build.yml | 101 + JS/wasm/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/assets/wasmjs/wit/arakoo-geo.witx | 29 + JS/wasm/assets/wasmjs/wit/http-types.wit | 41 + JS/wasm/assets/wasmjs/wit/http.wit | 2 + JS/wasm/crates/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/crates/wasmjs-engine/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/crates/wasmjs-engine/.gitignore | 2 + JS/wasm/crates/wasmjs-engine/Cargo.lock | 1205 +++++ JS/wasm/crates/wasmjs-engine/Cargo.toml | 17 + JS/wasm/crates/wasmjs-engine/build.rs | 19 + .../crates/wasmjs-engine/package-lock.json | 6 + JS/wasm/crates/wasmjs-engine/shims/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/crates/wasmjs-engine/shims/.gitignore | 1 + JS/wasm/crates/wasmjs-engine/shims/build.js | 55 + .../wasmjs-engine/shims/package-lock.json | 567 +++ .../crates/wasmjs-engine/shims/package.json | 24 + .../crates/wasmjs-engine/shims/src/buffer.js | 24 + .../crates/wasmjs-engine/shims/src/crypto.ts | 297 ++ .../crates/wasmjs-engine/shims/src/events.ts | 7 + .../crates/wasmjs-engine/shims/src/index.js | 375 ++ .../shims/src/internal/async_hooks.d.ts | 22 + .../shims/src/internal/async_hooks.ts | 26 + .../shims/src/internal/buffer.d.ts | 36 + .../shims/src/internal/buffer.ts | 539 +++ .../shims/src/internal/constants.ts | 45 + .../shims/src/internal/crypto.d.ts | 232 + .../shims/src/internal/crypto.ts | 484 ++ .../shims/src/internal/crypto_dh.ts | 202 + .../shims/src/internal/crypto_hash.ts | 235 + .../shims/src/internal/crypto_hkdf.ts | 124 + .../shims/src/internal/crypto_keys.ts | 384 ++ .../shims/src/internal/crypto_pbkdf2.ts | 64 + .../shims/src/internal/crypto_random.ts | 410 ++ .../shims/src/internal/crypto_util.ts | 118 + .../shims/src/internal/events.ts | 904 ++++ .../shims/src/internal/internal_buffer.ts | 2279 ++++++++++ .../shims/src/internal/internal_errors.ts | 492 +++ .../shims/src/internal/internal_inspect.ts | 2454 +++++++++++ .../shims/src/internal/internal_path.ts | 616 +++ .../src/internal/internal_stringdecoder.ts | 134 + .../shims/src/internal/internal_types.ts | 97 + .../shims/src/internal/internal_utils.ts | 182 + .../shims/src/internal/process.ts | 65 + .../shims/src/internal/streams_adapters.js | 730 +++ .../shims/src/internal/streams_duplex.js | 479 ++ .../shims/src/internal/streams_legacy.js | 87 + .../shims/src/internal/streams_readable.js | 1757 ++++++++ .../shims/src/internal/streams_transform.d.ts | 344 ++ .../shims/src/internal/streams_transform.js | 147 + .../shims/src/internal/streams_util.js | 997 +++++ .../shims/src/internal/streams_writable.js | 815 ++++ .../shims/src/internal/util.d.ts | 102 + .../wasmjs-engine/shims/src/internal/util.ts | 256 ++ .../shims/src/internal/validators.ts | 189 + .../crates/wasmjs-engine/shims/src/path.js | 61 + .../wasmjs-engine/shims/src/path/posix.ts | 3 + .../wasmjs-engine/shims/src/path/win32.ts | 3 + JS/wasm/crates/wasmjs-engine/src/main.rs | 235 + JS/wasm/crates/wasmjs-engine/taskfile.yml | 23 + .../crates/wasmjs-engine/wasmjs-engine.wasm | Bin 0 -> 5492465 bytes JS/wasm/crates/wasmjs-runtime/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/crates/wasmjs-runtime/Cargo.lock | 3915 +++++++++++++++++ JS/wasm/crates/wasmjs-runtime/Cargo.toml | 35 + JS/wasm/crates/wasmjs-runtime/arakoo.toml | 61 + JS/wasm/crates/wasmjs-runtime/src/bindings.rs | 194 + JS/wasm/crates/wasmjs-runtime/src/config.rs | 181 + JS/wasm/crates/wasmjs-runtime/src/error.rs | 103 + .../crates/wasmjs-runtime/src/geolocation.rs | 308 ++ JS/wasm/crates/wasmjs-runtime/src/handlers.rs | 159 + JS/wasm/crates/wasmjs-runtime/src/io.rs | 97 + JS/wasm/crates/wasmjs-runtime/src/main.rs | 98 + JS/wasm/crates/wasmjs-runtime/src/routes.rs | 232 + JS/wasm/crates/wasmjs-runtime/src/runtime.rs | 70 + JS/wasm/crates/wasmjs-runtime/src/server.rs | 81 + JS/wasm/crates/wasmjs-runtime/src/store.rs | 45 + .../crates/wasmjs-runtime/src/wiggle_abi.rs | 70 + .../wasmjs-runtime/src/wiggle_abi/geo_impl.rs | 22 + JS/wasm/crates/wasmjs-runtime/src/workers.rs | 185 + JS/wasm/examples/.DS_Store | Bin 0 -> 6148 bytes JS/wasm/examples/ec-wasmjs-hono/.gitignore | 2 + JS/wasm/examples/ec-wasmjs-hono/Dockerfile | 18 + JS/wasm/examples/ec-wasmjs-hono/build.js | 14 + JS/wasm/examples/ec-wasmjs-hono/knative.yaml | 14 + .../examples/ec-wasmjs-hono/package-lock.json | 554 +++ JS/wasm/examples/ec-wasmjs-hono/package.json | 20 + JS/wasm/examples/ec-wasmjs-hono/src/index.js | 42 + 87 files changed, 25664 insertions(+) create mode 100644 .github/workflows/webassembly-pr-build.yml create mode 100644 JS/wasm/.DS_Store create mode 100644 JS/wasm/assets/wasmjs/wit/arakoo-geo.witx create mode 100644 JS/wasm/assets/wasmjs/wit/http-types.wit create mode 100644 JS/wasm/assets/wasmjs/wit/http.wit create mode 100644 JS/wasm/crates/.DS_Store create mode 100644 JS/wasm/crates/wasmjs-engine/.DS_Store create mode 100644 JS/wasm/crates/wasmjs-engine/.gitignore create mode 100644 JS/wasm/crates/wasmjs-engine/Cargo.lock create mode 100644 JS/wasm/crates/wasmjs-engine/Cargo.toml create mode 100644 JS/wasm/crates/wasmjs-engine/build.rs create mode 100644 JS/wasm/crates/wasmjs-engine/package-lock.json create mode 100644 JS/wasm/crates/wasmjs-engine/shims/.DS_Store create mode 100644 JS/wasm/crates/wasmjs-engine/shims/.gitignore create mode 100644 JS/wasm/crates/wasmjs-engine/shims/build.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/package-lock.json create mode 100644 JS/wasm/crates/wasmjs-engine/shims/package.json create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/buffer.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/events.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/index.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path.js create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts create mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts create mode 100644 JS/wasm/crates/wasmjs-engine/src/main.rs create mode 100644 JS/wasm/crates/wasmjs-engine/taskfile.yml create mode 100755 JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm create mode 100644 JS/wasm/crates/wasmjs-runtime/.DS_Store create mode 100644 JS/wasm/crates/wasmjs-runtime/Cargo.lock create mode 100644 JS/wasm/crates/wasmjs-runtime/Cargo.toml create mode 100644 JS/wasm/crates/wasmjs-runtime/arakoo.toml create mode 100644 JS/wasm/crates/wasmjs-runtime/src/bindings.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/config.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/error.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/geolocation.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/handlers.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/io.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/main.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/routes.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/runtime.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/server.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/store.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/wiggle_abi.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/wiggle_abi/geo_impl.rs create mode 100644 JS/wasm/crates/wasmjs-runtime/src/workers.rs create mode 100644 JS/wasm/examples/.DS_Store create mode 100644 JS/wasm/examples/ec-wasmjs-hono/.gitignore create mode 100644 JS/wasm/examples/ec-wasmjs-hono/Dockerfile create mode 100644 JS/wasm/examples/ec-wasmjs-hono/build.js create mode 100644 JS/wasm/examples/ec-wasmjs-hono/knative.yaml create mode 100644 JS/wasm/examples/ec-wasmjs-hono/package-lock.json create mode 100644 JS/wasm/examples/ec-wasmjs-hono/package.json create mode 100644 JS/wasm/examples/ec-wasmjs-hono/src/index.js diff --git a/.github/workflows/webassembly-pr-build.yml b/.github/workflows/webassembly-pr-build.yml new file mode 100644 index 000000000..92b8d0390 --- /dev/null +++ b/.github/workflows/webassembly-pr-build.yml @@ -0,0 +1,101 @@ +name: Webassembly PR Build + +on: + pull_request_target: + types: + - opened + - reopened + - synchronize + paths: + - 'JS/wasm/**' + +jobs: + changes: + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + wasm: ${{ steps.filter.outputs.wasm }} + steps: + - name: Checkout + uses: actions/checkout@v4 + - uses: dorny/paths-filter@v2 + id: filter + with: + filters: | + wasm: + - 'JS/wasm/**' + + wasm: + needs: changes + if: ${{ needs.changes.outputs.wasm == 'true' }} + permissions: + contents: write + pull-requests: write + + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: '18' + + - name: Setup Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + override: true + + - name: Cache wasmjs-engine + uses: actions/cache@v2 + with: + path: ./JS/wasm/crates/wasmjs-engine/target + key: wasmjs-engine + restore-keys: | + wasmjs-engine + + - name: Check if wasmjs-engine is cached + id: wasmjs-engine-hit + run: | + echo "cache-hit=$(test -d ./JS/wasm/crates/wasmjs-engine/target && echo true || echo false)" >> $GITHUB_OUTPUT + + - name: Build wasmjs-engine + if: steps.wasmjs-engine-hit.outputs.cache-hit != 'true' + working-directory: ./JS/wasm/crates/wasmjs-engine + run: | + npm install -g @go-task/cli + task build + + - name: Cache wasmjs-runtime + uses: actions/cache@v2 + with: + path: ./JS/wasm/crates/wasmjs-runtime/target + key: wasmjs-runtime + restore-keys: | + wasmjs-runtime + + - name: Check if wasmjs-runtime is cached + id: wasmjs-runtime-hit + run: | + echo "cache-hit=$(test -d ./JS/wasm/crates/wasmjs-runtime/target && echo true || echo false)" >> $GITHUB_OUTPUT + + - name: Build wasmjs-runtime + if: steps.wasmjs-runtime-hit.outputs.cache-hit != 'true' + working-directory: ./JS/wasm/crates/wasmjs-runtime + run: | + cargo build --release + + - name: Build ec-wasmjs-hono + working-directory: ./JS/wasm/examples/ec-wasmjs-hono + run: | + npm install + npm run build + + - name: Run ec-wasmjs-hono + working-directory: ./JS/wasm/crates/wasmjs-runtime + run: | + ./target/release/wasmjs-runtime run ../../examples/ec-wasmjs-hono/bin \ No newline at end of file diff --git a/JS/wasm/.DS_Store b/JS/wasm/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..91ddf954c7a28ef954417fe3cce41b028c58a56c GIT binary patch literal 6148 zcmeHK(Q4Z;6uoM*#9kTXp@lvQ_8Mr~W;CHMCd+UL>`>6@e<7+jOW=mY{y2LK%t*e zQV}nTX`HEeW3>x71)Ku^n*zLdn-o!j--PP>_dcFxX;F5&KgG^&<3+R8@>_eY%kZ08 zgk@CDi(xeT%%cxVW${Blia(~4#kjryR^?@s=98Hwq{#$JEUU23YPQn%+!oFG93PtF*#xulD%6ulHsQ_$G!Sa +type http-headers = list +enum http-method { + get, + post, + put, + patch, + delete, + options, + head +} +type http-param = tuple +type http-params = list +type http-body = list +record http-request { + body: option, + headers: http-headers, + method: http-method, + params: http-params, + uri: uri, +} +record http-request-error { + error: http-error, + message: string +} +record http-response { + body: option, + headers: http-headers, + status: http-status, +} +enum http-error { + invalid-request, + invalid-request-body, + invalid-response-body, + not-allowed, + internal-error, + timeout, + redirect-loop, +} \ No newline at end of file diff --git a/JS/wasm/assets/wasmjs/wit/http.wit b/JS/wasm/assets/wasmjs/wit/http.wit new file mode 100644 index 000000000..36450be50 --- /dev/null +++ b/JS/wasm/assets/wasmjs/wit/http.wit @@ -0,0 +1,2 @@ +use * from http-types +send-http-request: func(request: http-request) -> expected diff --git a/JS/wasm/crates/.DS_Store b/JS/wasm/crates/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ee08d573de2a7630721826d045a3bbdd975395b1 GIT binary patch literal 6148 zcmeHK!EVz)5S>j^600i80i+&R>NTiosYEL-RwzG!D>wj3?b-r^>#br3AEHP;!w>N# zd=GDSm#A$Zx1zS1k!IiQ?#!O&bj0h+%E&$F&b$B%3Rm0jZt zRrHK9D(TaTw+!4x1~_-y)KHAfUC`D1<;Y@|R_8@xOo8;SbNd!e%fghLboP9FW5FrS zuvkqww#bsEx=ad_!0%^rS>#nc8vRn8jqc{7UN7iv^*%Zb_ zxlo`BRldYfE*#_9`-L7`hc29yFFustS@{Y@+1;_ew(g`thtdiI!oYO~He7eW@Biz6 z*Z@%&L0Q9G6wSsZY1~By4 SI>ZP>egrHH(g*|pm4V+ZYHL3L literal 0 HcmV?d00001 diff --git a/JS/wasm/crates/wasmjs-engine/.DS_Store b/JS/wasm/crates/wasmjs-engine/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..2f03b3d979dcf70c9fff72e97564bf667521662c GIT binary patch literal 6148 zcmeH~J&pn~427Q;R$6HrO3E~QfW1M4*b{I81QZ~FC`R--I?s+9hON;EJxk7uop^q} zVloC`tJ~ohSOEBn6Kku&Bv#0Tqdp)4@8jtI_ED-?_5CIVo z0TGxGfjGo@{(n#Cne-?kAOh1M;NOQrcdeNjGabfx^b*wK32IGkU74X- zb`O@N7Hx>qlW;H~E2#COlz^um$KmY&e|MmZ) z5``il0&hmZ=IhOR#h1#n_38CIzs;=A8=V^4IXwIXFz};zNe|r2wyw<3^dk@$ KG>E`U3ETm`+Y_At literal 0 HcmV?d00001 diff --git a/JS/wasm/crates/wasmjs-engine/.gitignore b/JS/wasm/crates/wasmjs-engine/.gitignore new file mode 100644 index 000000000..a404254d7 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/.gitignore @@ -0,0 +1,2 @@ +target/ +**/node_modules/ \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/Cargo.lock b/JS/wasm/crates/wasmjs-engine/Cargo.lock new file mode 100644 index 000000000..36caa85ca --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/Cargo.lock @@ -0,0 +1,1205 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "anyhow" +version = "1.0.75" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" + +[[package]] +name = "async-trait" +version = "0.1.74" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a66537f1bb974b254c98ed142ff995236e81b9d0fe4db0575f46612cb15eb0f9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "bindgen" +version = "0.64.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +dependencies = [ + "bitflags 1.3.2", + "cexpr", + "clang-sys", + "lazy_static", + "lazycell", + "log", + "peeking_take_while", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 1.0.109", + "which", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitflags" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07" + +[[package]] +name = "bytes" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "libc", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "core-foundation" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "06ea2b9bc92be3c2baa9334a323ebca2d6f074ff852cd1d7b11064035cd3868f" + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "errno" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a258e46cdc063eb8519c00b9fc845fc47bcfca4130e2f08e88665ceda8474245" +dependencies = [ + "libc", + "windows-sys 0.52.0", +] + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "foreign-types" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1" +dependencies = [ + "foreign-types-shared", +] + +[[package]] +name = "foreign-types-shared" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" + +[[package]] +name = "futures-channel" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "164713a5a0dcc3e7b4b1ed7d3b433cabc18025386f9339346e8daf15963cf7ac" +dependencies = [ + "futures-core", +] + +[[package]] +name = "futures-core" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d7a0c1aa76363dac491de0ee99faf6941128376f1cf96f07db7603b7de69dd" + +[[package]] +name = "futures-task" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd65540d33b37b16542a0438c12e6aeead10d4ac5d05bd3f805b8f35ab592879" + +[[package]] +name = "futures-util" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ef6b17e481503ec85211fed8f39d1970f128935ca1f814cd32ac4a6842e84ab" +dependencies = [ + "futures-core", + "futures-task", + "pin-project-lite", + "pin-utils", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8947b1a6fad4393052c7ba1f4cd97bed3e953a95c79c92ad9b051a04611d9fbb" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "1.0.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "951dfc2e32ac02d67c90c0d65bd27009a635dc9b381a2cc7d284ab01e3a0150d" +dependencies = [ + "bytes", + "http", +] + +[[package]] +name = "http-body-util" +version = "0.1.0-rc.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92445bc9cc14bfa0a3ce56817dc3b5bcc227a168781a356b702410789cec0d10" +dependencies = [ + "bytes", + "futures-util", + "http", + "http-body", + "pin-project-lite", +] + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df3b46402a9d5adb4c86a0cf463f42e19994e3ee891101b1841f30a545cb49a9" + +[[package]] +name = "hyper" +version = "1.0.0-rc.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b75264b2003a3913f118d35c586e535293b3e22e41f074930762929d071e092" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", + "tracing", + "want", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "javy" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82bea151527df24f765b795a87a80d144f8cc35ef99acaed99465f1206a4501e" +dependencies = [ + "anyhow", + "quickjs-wasm-rs", + "serde-transcode", + "serde_json", +] + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "libc" +version = "0.2.151" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4cd1a83af159aa67994778be9070f0ae1bd732942279cabb14f86f986a21456" + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "memchr" +version = "2.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi", + "windows-sys 0.45.0", +] + +[[package]] +name = "native-tls" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07226173c32f2926027b63cce4bcd8076c3552846cbe7925f3aaffeac0a3b92e" +dependencies = [ + "lazy_static", + "libc", + "log", + "openssl", + "openssl-probe", + "openssl-sys", + "schannel", + "security-framework", + "security-framework-sys", + "tempfile", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "openssl" +version = "0.10.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b8419dc8cc6d866deb801274bba2e6f8f6108c1bb7fcc10ee5ab864931dbb45" +dependencies = [ + "bitflags 2.4.1", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b501e44f11665960c7e7fcf062c7d96a14ade4aa98116c004b2e37b5be7d736c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "openssl-sys" +version = "0.9.97" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3eaad34cdd97d81de97964fc7f29e2d104f483840d906ef56daa1912338460b" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pin-project-lite" +version = "0.2.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkg-config" +version = "0.3.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" + +[[package]] +name = "proc-macro2" +version = "1.0.70" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39278fbbf5fb4f646ce651690877f89d1c5811a3d4acb27700c1cb3cdb78fd3b" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "pulldown-cmark" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffade02495f22453cd593159ea2f59827aae7f53fa8323f756799b670881dcf8" +dependencies = [ + "bitflags 1.3.2", + "memchr", + "unicase", +] + +[[package]] +name = "quickjs-wasm-rs" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "174a4fb51c14dcb82f1f98ec1ec3c2f26f2cd6e40f200d86c5f6eecacf40b409" +dependencies = [ + "anyhow", + "once_cell", + "quickjs-wasm-sys", + "serde", +] + +[[package]] +name = "quickjs-wasm-sys" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1af9a5eb35f2df97dc9816b711e681b0c3cc8f5c18fdd7df0021ec4f60bbcb4" +dependencies = [ + "anyhow", + "bindgen", + "bytes", + "cc", + "futures-core", + "futures-task", + "futures-util", + "http-body-util", + "hyper", + "mio", + "native-tls", + "openssl-macros", + "tokio", + "tokio-macros", + "tokio-native-tls", + "walkdir", +] + +[[package]] +name = "quote" +version = "1.0.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "redox_syscall" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4722d768eff46b75989dd134e5c353f0d6296e5aaa3132e776cbdb56be7731aa" +dependencies = [ + "bitflags 1.3.2", +] + +[[package]] +name = "regex" +version = "1.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata", + "regex-syntax", +] + +[[package]] +name = "regex-automata" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax", +] + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustix" +version = "0.38.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72e572a5e8ca657d7366229cdde4bd14c4eb5499a9573d4d366fe1b599daa316" +dependencies = [ + "bitflags 2.4.1", + "errno", + "libc", + "linux-raw-sys", + "windows-sys 0.52.0", +] + +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c3733bf4cf7ea0880754e19cb5a462007c4a8c1914bff372ccc95b464f1df88" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "security-framework" +version = "2.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05b64fb303737d99b81884b2c63433e9ae28abebe5eb5045dcdd175dc2ecf4de" +dependencies = [ + "bitflags 1.3.2", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e932934257d3b408ed8f30db49d85ea163bfe74961f017f405b025af298f0c7a" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "serde" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25dd9975e68d0cb5aa1120c288333fc98731bd1dd12f561e468ea4728c042b89" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-transcode" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2" +dependencies = [ + "serde", +] + +[[package]] +name = "serde_derive" +version = "1.0.193" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43576ca501357b9b071ac53cdc7da8ef0cbd9493d8df094cd821777ea6e894d3" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.41", +] + +[[package]] +name = "serde_json" +version = "1.0.108" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "shlex" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "socket2" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f7916fc008ca5542385b89a3d3ce689953c143e9304a9bf8beec1de48994c0d" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.41" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c8b28c477cc3bf0e7966561e3460130e1255f7a1cf71931075f1c5e7a7e269" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "tempfile" +version = "3.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef1adac450ad7f4b3c28589471ade84f25f731a7a0fe30d71dfa9f60fd808e5" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.48.0", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03201d01c3c27a29c8a5cee5b55a93ddae1ccf6f08f65365c2c918f8c1b76f64" +dependencies = [ + "autocfg", + "libc", + "mio", + "pin-project-lite", + "socket2", + "tokio-macros", + "windows-sys 0.45.0", +] + +[[package]] +name = "tokio-macros" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "tokio-native-tls" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" +dependencies = [ + "native-tls", + "tokio", +] + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "pin-project-lite", + "tracing-core", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "walkdir" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa7760aed19e106de2c7c0b581b509f2f25d3dacaf737cb82ac61bc6d760b0e" +dependencies = [ + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasmjs-engine" +version = "0.1.0" +dependencies = [ + "anyhow", + "javy", + "regex", + "serde_json", + "wit-bindgen-rust", +] + +[[package]] +name = "which" +version = "4.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" +dependencies = [ + "either", + "home", + "once_cell", + "rustix", +] + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.5", +] + +[[package]] +name = "windows-sys" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" +dependencies = [ + "windows-targets 0.52.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm 0.48.5", + "windows_aarch64_msvc 0.48.5", + "windows_i686_gnu 0.48.5", + "windows_i686_msvc 0.48.5", + "windows_x86_64_gnu 0.48.5", + "windows_x86_64_gnullvm 0.48.5", + "windows_x86_64_msvc 0.48.5", +] + +[[package]] +name = "windows-targets" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a18201040b24831fbb9e4eb208f8892e1f50a37feb53cc7ff887feb8f50e7cd" +dependencies = [ + "windows_aarch64_gnullvm 0.52.0", + "windows_aarch64_msvc 0.52.0", + "windows_i686_gnu 0.52.0", + "windows_i686_msvc 0.52.0", + "windows_x86_64_gnu 0.52.0", + "windows_x86_64_gnullvm 0.52.0", + "windows_x86_64_msvc 0.52.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb7764e35d4db8a7921e09562a0304bf2f93e0a51bfccee0bd0bb0b666b015ea" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbaa0368d4f1d2aaefc55b6fcfee13f41544ddf36801e793edbbfd7d7df075ef" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a28637cb1fa3560a16915793afb20081aba2c92ee8af57b4d5f28e4b3e7df313" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe5e8e31046ce6230cc7215707b816e339ff4d4d67c65dffa206fd0f7aa7b9a" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6fa32db2bc4a2f5abeacf2b69f7992cd09dca97498da74a151a3132c26befd" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a657e1e9d3f514745a572a6846d3c7aa7dbe1658c056ed9c3344c4109a6949e" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dff9641d1cd4be8d1a070daf9e3773c5f67e78b4d9d42263020c057706765c04" + +[[package]] +name = "wit-bindgen-gen-core" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "anyhow", + "wit-parser", +] + +[[package]] +name = "wit-bindgen-gen-rust" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "heck", + "wit-bindgen-gen-core", +] + +[[package]] +name = "wit-bindgen-gen-rust-wasm" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "heck", + "wit-bindgen-gen-core", + "wit-bindgen-gen-rust", +] + +[[package]] +name = "wit-bindgen-rust" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "async-trait", + "bitflags 1.3.2", + "wit-bindgen-rust-impl", +] + +[[package]] +name = "wit-bindgen-rust-impl" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "proc-macro2", + "syn 1.0.109", + "wit-bindgen-gen-core", + "wit-bindgen-gen-rust-wasm", +] + +[[package]] +name = "wit-parser" +version = "0.2.0" +source = "git+https://github.com/bytecodealliance/wit-bindgen?tag=v0.2.0#cb871cfa1ee460b51eb1d144b175b9aab9c50aba" +dependencies = [ + "anyhow", + "id-arena", + "pulldown-cmark", + "unicode-normalization", + "unicode-xid", +] diff --git a/JS/wasm/crates/wasmjs-engine/Cargo.toml b/JS/wasm/crates/wasmjs-engine/Cargo.toml new file mode 100644 index 000000000..07bf9c246 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "wasmjs-engine" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +anyhow = "1" +javy = { version = "2.1.0", features = ["json"] } +regex = "1" +serde_json = "1.0.108" +# wit-bindgen-rust = "0.13.1" +wit-bindgen-rust = { git = "https://github.com/bytecodealliance/wit-bindgen", tag = "v0.2.0" } + +[profile.release] +lto = "thin" diff --git a/JS/wasm/crates/wasmjs-engine/build.rs b/JS/wasm/crates/wasmjs-engine/build.rs new file mode 100644 index 000000000..506027b3f --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/build.rs @@ -0,0 +1,19 @@ +use std::process::Command; + +fn main() { + Command::new("npm") + .current_dir("shims") + .arg("install") + .status() + .unwrap(); + + Command::new("npm") + .current_dir("shims") + .args(["run", "build"]) + .status() + .unwrap(); + + println!("cargo:rerun-if-changed=shims/package.json"); + println!("cargo:rerun-if-changed=shims/build.js"); + println!("cargo:rerun-if-changed=shims/src/*.js"); +} diff --git a/JS/wasm/crates/wasmjs-engine/package-lock.json b/JS/wasm/crates/wasmjs-engine/package-lock.json new file mode 100644 index 000000000..706944852 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/package-lock.json @@ -0,0 +1,6 @@ +{ + "name": "wasmjs-engine", + "lockfileVersion": 3, + "requires": true, + "packages": {} +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/.DS_Store b/JS/wasm/crates/wasmjs-engine/shims/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..3bc38448aab6980b8732c9e976f6fe3a8b601ed6 GIT binary patch literal 6148 zcmeH~JqiLr422WjLa^D=avBfd4F=H@cmdIE1i?b>=jgutAh=qK$O|OjBr{>zSL|#= zMA!FWCDMz?3~rRAg^?-pP6j#2Rc^!ecs^V%=R7k>+8KB+qy5|_r~nn90#twsP=Oy( z!0v6>Y#wB!0#twsJQc9-LxCG>vIYIqf#4$m*rDu(wa*e@u>x3=Er<$CqZN!+^)bZi z-VT;LSCcIm?V>q+Xg*nOih*ggixwm>tquk%Km|q$Oe62@{@=ns&Htkorc{6m{FwsU zZFZYAUMla_x7V}!KC8BFaL|t { + console.error(error) + process.exit(1) +}) + +// Build for buffer.js +build({ + entryPoints: ['src/buffer.js'], + bundle: true, + outfile: 'dist/buffer.js', + format: "esm", + target: "esnext", + platform: "node", + treeShaking: false +}).catch((error) => { + console.error(error) + process.exit(1) +}) + +build({ + entryPoints: ['src/path.js'], + bundle: true, + outfile: 'dist/path.js', + format: "esm", + target: "esnext", + platform: "node", + treeShaking: false +}).catch((error) => { + console.error(error) + process.exit(1) +}) + +build({ + entryPoints: ['src/crypto.ts'], + bundle: true, + outfile: 'dist/crypto.js', + format: "esm", + target: "esnext", + platform: "node", + treeShaking: false +}).catch((error) => { + console.error(error) + process.exit(1) +}) diff --git a/JS/wasm/crates/wasmjs-engine/shims/package-lock.json b/JS/wasm/crates/wasmjs-engine/shims/package-lock.json new file mode 100644 index 000000000..7bb9dc38c --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/package-lock.json @@ -0,0 +1,567 @@ +{ + "name": "shims", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "shims", + "version": "1.0.0", + "dependencies": { + "@sinonjs/text-encoding": "^0.7", + "@types/node": "^20.10.3", + "@ungap/url-search-params": "^0.2", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "esbuild": "^0.19", + "http-status": "^1.7", + "query-string": "^7.1.1", + "sjcl": "^1.0.8", + "url-parse": "^1.5.10" + }, + "devDependencies": { + "@types/sjcl": "^1.0.34" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@sinonjs/text-encoding": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz", + "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==" + }, + "node_modules/@types/node": { + "version": "20.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.10.3.tgz", + "integrity": "sha512-XJavIpZqiXID5Yxnxv3RUDKTN5b81ddNC3ecsA0SoFXz/QU8OGBwZGMomiq0zw+uuqbL/krztv/DINAQ/EV4gg==", + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@types/sjcl": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/@types/sjcl/-/sjcl-1.0.34.tgz", + "integrity": "sha512-bQHEeK5DTQRunIfQeUMgtpPsNNCcZyQ9MJuAfW1I7iN0LDunTc78Fu17STbLMd7KiEY/g2zHVApippa70h6HoQ==", + "dev": true + }, + "node_modules/@ungap/url-search-params": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/@ungap/url-search-params/-/url-search-params-0.2.2.tgz", + "integrity": "sha512-qQsguKXZVKdCixOHX9jqnX/K/1HekPDpGKyEcXHT+zR6EjGA7S4boSuelL4uuPv6YfhN0n8c4UxW+v/Z3gM2iw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/decode-uri-component": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz", + "integrity": "sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/filter-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-1.1.0.tgz", + "integrity": "sha512-8rXg1ZnX7xzy2NGDVkBVaAy+lSlPNwad13BtgSlLuxfIslyt5Vg64U7tFcCt4WS1R0hvtnQybT/IyCkGZ3DpXQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/http-status": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/http-status/-/http-status-1.7.3.tgz", + "integrity": "sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ==", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/query-string": { + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-7.1.3.tgz", + "integrity": "sha512-hh2WYhq4fi8+b+/2Kg9CEge4fDPvHS534aOOvOZeQ3+Vf2mCFsaFBYj0i+iXcAq6I9Vzp5fjMFBlONvayDC1qg==", + "dependencies": { + "decode-uri-component": "^0.2.2", + "filter-obj": "^1.1.0", + "split-on-first": "^1.0.0", + "strict-uri-encode": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, + "node_modules/sjcl": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/sjcl/-/sjcl-1.0.8.tgz", + "integrity": "sha512-LzIjEQ0S0DpIgnxMEayM1rq9aGwGRG4OnZhCdjx7glTaJtf4zRfpg87ImfjSJjoW9vKpagd82McDOwbRT5kQKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/split-on-first": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-1.1.0.tgz", + "integrity": "sha512-43ZssAJaMusuKWL8sKUBQXHWOpq8d6CfN/u1p4gUzfJkM05C8rxTmYrkIPTXapZpORA6LkkzcUulJ8FqA7Uudw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/strict-uri-encode": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-2.0.0.tgz", + "integrity": "sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + } + } +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/package.json b/JS/wasm/crates/wasmjs-engine/shims/package.json new file mode 100644 index 000000000..6d90997f4 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/package.json @@ -0,0 +1,24 @@ +{ + "name": "shims", + "version": "1.0.0", + "type": "module", + "main": "bin/index.js", + "scripts": { + "build": "node ./build.js" + }, + "dependencies": { + "@sinonjs/text-encoding": "^0.7", + "@types/node": "^20.10.3", + "@ungap/url-search-params": "^0.2", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "esbuild": "^0.19", + "http-status": "^1.7", + "query-string": "^7.1.1", + "sjcl": "^1.0.8", + "url-parse": "^1.5.10" + }, + "devDependencies": { + "@types/sjcl": "^1.0.34" + } +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js b/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js new file mode 100644 index 000000000..1dd28191f --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js @@ -0,0 +1,24 @@ + +import { + constants, + kMaxLength, + kStringMaxLength, + Buffer, + SlowBuffer, +} from './internal/internal_buffer'; + +export { + constants, + kMaxLength, + kStringMaxLength, + Buffer, + SlowBuffer, +}; + +export default { + constants, + kMaxLength, + kStringMaxLength, + Buffer, + SlowBuffer, +} \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts b/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts new file mode 100644 index 000000000..0d504c138 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts @@ -0,0 +1,297 @@ +import { + ERR_METHOD_NOT_IMPLEMENTED +} from './internal/internal_errors'; + +// export const getRandomValues = crypto.getRandomValues; +// export const subtle = crypto.subtle; +// export const timingSafeEqual = (crypto as any).timingSafeEqual; +// export const webcrypto = crypto; + +import { + DiffieHellman, + DiffieHellmanGroup, + createDiffieHellman, + createDiffieHellmanGroup, + getDiffieHellman, +} from './internal/crypto_dh'; + +import { + randomBytes, + randomFillSync, + randomFill, + randomInt, + randomUUID, + PrimeNum, + GeneratePrimeOptions, + CheckPrimeOptions, + generatePrime, + generatePrimeSync, + checkPrime, + checkPrimeSync, +} from './internal/crypto_random'; + +import { + createHash, + createHmac, + Hash, + HashOptions, + Hmac, +} from './internal/crypto_hash'; + +import { + hkdf, + hkdfSync, +} from './internal/crypto_hkdf'; + +import { + pbkdf2, + pbkdf2Sync, + ArrayLike, +} from './internal/crypto_pbkdf2'; + +import { + KeyObject, + PublicKeyObject, + PrivateKeyObject, + SecretKeyObject, + generateKey, + generateKeyPair, + generateKeyPairSync, + generateKeySync, + createPrivateKey, + createPublicKey, + createSecretKey, +} from './internal/crypto_keys'; + +export { + // DH + DiffieHellman, + DiffieHellmanGroup, + createDiffieHellman, + createDiffieHellmanGroup, + getDiffieHellman, + // Random + randomBytes, + randomFillSync, + randomFill, + randomInt, + randomUUID, + // Primes + PrimeNum as primeNum, + GeneratePrimeOptions as generatePrimeOptions, + CheckPrimeOptions as checkPrimeOptions, + generatePrime, + generatePrimeSync, + checkPrime, + checkPrimeSync, + // Hash and Hmac + createHash, + createHmac, + Hash, + HashOptions, + Hmac, + // Hkdf + hkdf, + hkdfSync, + // Pbkdf2 + pbkdf2, + pbkdf2Sync, + ArrayLike as arrayLike, + // Keys + KeyObject, + PublicKeyObject, + PrivateKeyObject, + SecretKeyObject, + generateKey, + generateKeyPair, + generateKeyPairSync, + generateKeySync, + createPrivateKey, + createPublicKey, + createSecretKey, +} + +export function getCiphers() { + return ["aes-128-cbc", "aes-192-cbc", "aes-256-cbc", "aes-128-ctr", "aes-192-ctr", "aes-256-ctr", + "aes-128-ecb", "aes-192-ecb", "aes-256-ecb", "aes-128-gcm", "aes-192-gcm", "aes-256-gcm", + "aes-128-ofb", "aes-192-ofb", "aes-256-ofb", "des-ecb", "des-ede", "des-ede-cbc", "rc2-cbc"]; +} + +export function getCurves() { + // Hardcoded list of supported curves. Note that prime256v1 is equivalent to secp256r1, we follow + // OpenSSL's and bssl's nomenclature here. + return ['secp224r1', 'prime256v1', 'secp384r1', 'secp521r1']; +} + +export function getHashes() { + // Hardcoded list of hashes supported in boringssl, node's approach looks pretty clunky. This is + // expected to change infrequently based of bssl's stability-focused approach. + return ['md4', 'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5-sha1', 'RSA-MD5', + 'RSA-SHA1', 'RSA-SHA224', 'RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512', 'DSA-SHA', + 'DSA-SHA1', 'ecdsa-with-SHA1']; +} + +// We do not implement the openssl secure heap. +export function secureHeapUsed() { + return { + total: 0, + used: 0, + utilization: 0, + min: 0, + } +} + +// We do not allow users to set the engine used. +export function setEngine(_1 : string, _2?: number) { + throw new ERR_METHOD_NOT_IMPLEMENTED('setEngine'); +} + +// We do not allow users to modify the FIPS enablement. +export function setFips(_: boolean) { + throw new ERR_METHOD_NOT_IMPLEMENTED('setFips'); +} + +// We always run in FIPS mode. +export const fips = true; +export function getFips() { return fips; } + +export default { + // DH + DiffieHellman, + DiffieHellmanGroup, + createDiffieHellman, + createDiffieHellmanGroup, + getDiffieHellman, + // Keys, + KeyObject, + PublicKeyObject, + PrivateKeyObject, + SecretKeyObject, + generateKey, + generateKeyPair, + generateKeyPairSync, + generateKeySync, + createPrivateKey, + createPublicKey, + createSecretKey, + // Random + // getRandomValues, + randomBytes, + randomFillSync, + randomFill, + randomInt, + randomUUID, + generatePrime, + generatePrimeSync, + checkPrime, + checkPrimeSync, + // Hash and Hmac + Hash, + Hmac, + createHash, + createHmac, + getHashes, + // Hkdf + hkdf, + hkdfSync, + // Pbkdf2 + pbkdf2, + pbkdf2Sync, + // Misc + getCiphers, + getCurves, + secureHeapUsed, + setEngine, + // timingSafeEqual, + // Fips + getFips, + setFips, + get fips() { return getFips(); }, + set fips(_: boolean) { setFips(_); }, + // WebCrypto + // subtle, + // webcrypto, +}; + +// Classes +// * [ ] crypto.Certificate +// * [ ] crypto.Cipher +// * [ ] crypto.Decipher +// * [x] crypto.DiffieHellman +// * [x] crypto.DiffieHellmanGroup +// * [ ] crypto.ECDH +// * [x] crypto.Hash +// * [x] crypto.Hmac +// * [ ] crypto.KeyObject +// * [ ] crypto.Sign +// * [ ] crypto.Verify +// * [ ] crypto.X509Certificate +// * [ ] crypto.constants +// * [ ] crypto.DEFAULT_ENCODING +// * Primes +// * [x] crypto.checkPrime(candidate[, options], callback) +// * [x] crypto.checkPrimeSync(candidate[, options]) +// * [x] crypto.generatePrime(size[, options[, callback]]) +// * [x] crypto.generatePrimeSync(size[, options]) +// * Ciphers +// * [ ] crypto.createCipher(algorithm, password[, options]) +// * [ ] crypto.createCipheriv(algorithm, key, iv[, options]) +// * [ ] crypto.createDecipher(algorithm, password[, options]) +// * [ ] crypto.createDecipheriv(algorithm, key, iv[, options]) +// * [ ] crypto.privateDecrypt(privateKey, buffer) +// * [ ] crypto.privateEncrypt(privateKey, buffer) +// * [ ] crypto.publicDecrypt(key, buffer) +// * [ ] crypto.publicEncrypt(key, buffer) +// * DiffieHellman +// * [x] crypto.createDiffieHellman(prime[, primeEncoding][, generator][, generatorEncoding]) +// * [x] crypto.createDiffieHellman(primeLength[, generator]) +// * [x] crypto.createDiffieHellmanGroup(name) +// * [ ] crypto.createECDH(curveName) +// * [ ] crypto.diffieHellman(options) +// * [x] crypto.getDiffieHellman(groupName) +// * Hash +// * [x] crypto.createHash(algorithm[, options]) +// * [x] crypto.createHmac(algorithm, key[, options]) +// * [x] crypto.getHashes() +// * Keys +// * [ ] crypto.createPrivateKey(key) +// * [ ] crypto.createPublicKey(key) +// * [x] crypto.createSecretKey(key[, encoding]) +// * [x] crypto.generateKey(type, options, callback) +// * [x] crypto.generateKeyPair(type, options, callback) +// * [x] crypto.generateKeyPairSync(type, options) +// * [x] crypto.generateKeySync(type, options) +// * Sign/Verify +// * [ ] crypto.createSign(algorithm[, options]) +// * [ ] crypto.createVerify(algorithm[, options]) +// * [ ] crypto.sign(algorithm, data, key[, callback]) +// * [ ] crypto.verify(algorithm, data, key, signature[, callback]) +// * Misc +// * [ ] crypto.getCipherInfo(nameOrNid[, options]) +// * [x] crypto.getCiphers() +// * [x] crypto.getCurves() +// * [x] crypto.secureHeapUsed() +// * [x] crypto.setEngine(engine[, flags]) +// * [x] crypto.timingSafeEqual(a, b) +// * Fips +// * [x] crypto.getFips() +// * [x] crypto.fips +// * [x] crypto.setFips(bool) +// * Random +// * [x] crypto.getRandomValues(typedArray) +// * [x] crypto.randomBytes(size[, callback]) +// * [x] crypto.randomFillSync(buffer[, offset][, size]) +// * [x] crypto.randomFill(buffer[, offset][, size], callback) +// * [x] crypto.randomInt([min, ]max[, callback]) +// * [x] crypto.randomUUID([options]) +// * Key Derivation +// * [.] crypto.hkdf(digest, ikm, salt, info, keylen, callback) (* still needs KeyObject support) +// * [.] crypto.hkdfSync(digest, ikm, salt, info, keylen) (* still needs KeyObject support) +// * [x] crypto.pbkdf2(password, salt, iterations, keylen, digest, callback) +// * [x] crypto.pbkdf2Sync(password, salt, iterations, keylen, digest) +// * [ ] crypto.scrypt(password, salt, keylen[, options], callback) +// * [ ] crypto.scryptSync(password, salt, keylen[, options]) +// * WebCrypto +// * [x] crypto.subtle +// * [x] crypto.webcrypto + diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/events.ts b/JS/wasm/crates/wasmjs-engine/shims/src/events.ts new file mode 100644 index 000000000..938ed3c44 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/events.ts @@ -0,0 +1,7 @@ +// Copyright (c) 2017-2022 Cloudflare, Inc. +// Licensed under the Apache 2.0 license found in the LICENSE file or at: +// https://opensource.org/licenses/Apache-2.0 +// + +export * from './internal/events'; +export { default } from './internal/events'; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/index.js b/JS/wasm/crates/wasmjs-engine/shims/src/index.js new file mode 100644 index 000000000..9c29c339f --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/index.js @@ -0,0 +1,375 @@ +// import { URLSearchParams } from "@ungap/url-search-params"; +import { TextEncoder, TextDecoder } from "@sinonjs/text-encoding"; +import httpStatus from "http-status"; +import Url from 'url-parse' +import _queryString from 'query-string'; + +class URL { + + constructor(urlStr, base = undefined) { + let url = Url(urlStr, base) + this.url = url + this.protocol = url.protocol + this.slashes = url.slashes + this.auth = url.auth + this.username = url.username + this.password = url.password + this.host = url.host + this.port = url.port + this.pathname = url.pathname + this.search = url.query + this.searchParams = new URLSearchParams(this.search) + this.hash = url.hash + this.href = url.origin + this.origin = url.origin + } + + set(key, value) { + this.url.set(key, value) + } + + toString() { + return this.url.toString() + } + + toJson() { + return this.url.toString() + } + +} + +class URLSearchParams { + queryParams = {} + + constructor(val) { + this.queryParams = { + ..._queryString.parse(val) + } + } + append(key, val) { + this.queryParams[key] = val + } + delete(key) { + delete this.queryParams[key] + } + entries() { + let arr = [] + Object.entries(this.queryParams).map(o => { + if (Array.isArray(o[1])) { + o[1].map(k => { + arr.push([o[0], k]) + }) + } else { + arr.push([o[0], o[1]]) + } + }) + let iterLength = arr.length + let iterIndex = 0 + return { + next: function () { + return iterIndex < iterLength ? + { value: arr[iterIndex++], done: false } : + { done: true }; + } + } + } + get(key) { + let val = this.queryParams[key] + if (val) { + if (typeof (val) == "object") { + return val[0] + } + return val + } + return null + } + getAll(key) { + let val = this.queryParams[key] + if (val) { + return val + } + return null + } + has(key) { + return this.queryParams[key] != undefined ? true : false + } + keys() { + return Object.keys(this.queryParams) + } + set(key, val) { + this.queryParams[key] = val + } + toString() { + return _queryString.stringify(this.queryParams) + } + values() { + return Object.keys(this.queryParams).map(k => this.queryParams[k]) + } + [Symbol.iterator]() { + return this.entries() + } +} + +globalThis.URL = URL; +globalThis.URLSearchParams = URLSearchParams; + +function atob(b64) { + return Buffer.from(b64, "base64").toString() +} + +function btoa(data) { + return Buffer.from(data).toString('base64') +} + +globalThis.btoa = btoa; +globalThis.atob = atob; + +function require(path) { + return globalThis[path]; +} + +globalThis.require = require; +class Headers { + constructor(initialHeaders) { + let headers = {}; + + for (const key in initialHeaders) { + let value = initialHeaders[key]; + + if (typeof value === "string") { + headers[key] = value; + } + } + + this.headers = headers; + } + + append(key, value) { + this.headers[key] = value; + return value; + } + + set(key, value) { + this.append(key, value); + return value; + } + + delete(key) { + let dropValue = delete this.headers[key]; + return dropValue; + } + + get(key) { + return this.headers[key]; + } + + toJSON() { + return this.headers; + } +} + +class Request { + constructor(input) { + this.url = input.url; + this.method = input.method; + this.headers = new Headers(input.headers || {}); + this.body = input.body; + this.params = input.params || {}; + this.geo = input.geo || {}; + } + + text() { + return this.body; + } +} + +class Response { + constructor(body, options = {}) { + if (body instanceof String) { + this.body = body.toString(); + } else { + this.body = body; + } + + if (options.headers instanceof Headers) { + this.headers = options.headers; + } else if (options.headers instanceof Object) { + this.headers = new Headers(options.headers); + } else { + this.headers = new Headers({}); + } + + this.status = options.status || 200; + this.statusText = options.statusText || httpStatus[this.status]; + } + + static redirect(url, status = 307) { + return new Response(`Redirecting to ${url}`, { + status, + headers: { + Location: url + } + }) + } + + get ok() { + return this.status >= 200 && this.status < 300; + } + + defaultEncoding() { + return "utf-8"; + } + + arrayBuffer() { + let parsedBody = this.body; + + if (typeof this.body === "string") { + try { + parsedBody = new TextEncoder().encode(this.body); + } catch (e) { + return Promise.reject(`err: ${e}`); + } + } + + return parsedBody; + } + + json() { + let parsedBody = this.body; + + if (typeof this.body !== "string") { + try { + parsedBody = new TextDecoder(this.defaultEncoding()).decode(this.body); + } catch (e) { + return Promise.reject(`err: ${e}`); + } + } + + try { + return Promise.resolve(JSON.parse(parsedBody)); + } catch (e) { + return Promise.reject(`err: ${e}`); + } + } + + text() { + let parsedBody = this.body; + + if (typeof this.body !== "string") { + try { + parsedBody = new TextDecoder(this.defaultEncoding()).decode(this.body); + } catch (e) { + return Promise.reject(`err: ${e}`); + } + } + + return parsedBody; + } + + toString() { + return this.body; + } +} + +(function () { + const __send_http_request = globalThis.__send_http_request; + const __console_log = globalThis.__console_log; + + globalThis.fetch = (uri, opts) => { + let optsWithDefault = { + method: "GET", + headers: {}, + body: null, + ...opts + }; + + if (optsWithDefault.body !== null && typeof optsWithDefault.body !== "string") { + try { + optsWithDefault.body = new TextEncoder().encode(optsWithDefault.body); + } catch (e) { + return Promise.reject(`err: ${e}`) + } + } + + let result = __send_http_request(uri, optsWithDefault); + + if (result.error === true) { + return Promise.reject(new Error(`[${result.type}] ${result.message}`)); + } else { + let response = new Response(result.body, { + headers: result.headers, + status: result.status, + }) + + return Promise.resolve(response); + } + } + + + globalThis.console = { + error(msg) { + this.log(msg); + }, + log(msg) { + __console_log(msg); + }, + info(msg) { + this.log(msg); + }, + debug(msg) { + this.log(msg); + }, + warn(msg) { + this.log(msg); + }, + trace(msg) { + this.log(msg); + } + } + + Reflect.deleteProperty(globalThis, "__send_http_request"); + Reflect.deleteProperty(globalThis, "__console_log"); +})(); + +globalThis.TextEncoder = TextEncoder; +globalThis.TextDecoder = TextDecoder; + +let handlerFunction; + +globalThis.addEventListener = (_eventName, handler) => { + handlerFunction = handler; +}; + +const requestToHandler = input => { + const request = new Request(input); + const event = { + request, + response: {}, + respondWith(res) { + this.response = res; + } + }; + + try { + handlerFunction(event); + + Promise.resolve( + event.response + ).then(res => { + result = { + data: res.body, + headers: res.headers.headers, + status: res.status, + }; + }) + .catch((err) => { + error = `err: \n${err}`; + }); + } catch (err) { + error = `err: ${err}\n${err.stack}`; + } +}; + +globalThis.entrypoint = requestToHandler; +globalThis.result = {}; +globalThis.error = null diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts new file mode 100644 index 000000000..4e97d10a0 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts @@ -0,0 +1,22 @@ +// Type definitions for c++ implementation. + +export interface AsyncResourceOptions { + triggerAsyncId?: number; +} + +export class AsyncResource { + public constructor(type: string, options?: AsyncResourceOptions); + public runInAsyncScope(fn: (...args: unknown[]) => R, ...args: unknown[]): R; + + public bind unknown>( + fn: Func): Func & { asyncResource: AsyncResource; }; + + public static bind unknown, ThisArg>( + fn: Func, type?: string, thisArg?: ThisArg): Func & { asyncResource: AsyncResource; }; +} + +export class AsyncLocalStorage { + public run(store: T, fn: (...args: unknown[]) => R, ...args: unknown[]): R; + public exit(fn: (...args: unknown[]) => R, ...args: unknown[]): R; + public getStore(): T; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts new file mode 100644 index 000000000..a78e2a726 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts @@ -0,0 +1,26 @@ +export interface AsyncResourceOptions { + triggerAsyncId?: number; +} + +export class AsyncResource { + // @ts-ignore + public constructor(type: string, options?: AsyncResourceOptions); + // @ts-ignore + public runInAsyncScope(fn: (...args: unknown[]) => R, ...args: unknown[]): R; + + public bind unknown>( + fn: Func): Func & { asyncResource: AsyncResource; }; + + // @ts-ignore + public static bind unknown, ThisArg>( + fn: Func, type?: string, thisArg?: ThisArg): Func & { asyncResource: AsyncResource; }; +} + +export class AsyncLocalStorage { + // @ts-ignore + public run(store: T, fn: (...args: unknown[]) => R, ...args: unknown[]): R; + // @ts-ignore + public exit(fn: (...args: unknown[]) => R, ...args: unknown[]): R; + // @ts-ignore + public getStore(): T; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts new file mode 100644 index 000000000..d387b6aa6 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts @@ -0,0 +1,36 @@ + +export interface CompareOptions { + aStart?: number; + aEnd?: number; + bStart?: number; + bEnd?: number +} + +type BufferSource = ArrayBufferView | ArrayBuffer; + +export function byteLength(value: string): number; +export function compare(a: Uint8Array, b: Uint8Array, options?: CompareOptions): number; +export function concat(list: Uint8Array[], length: number): ArrayBuffer; +export function decodeString(value: string, encoding: string): ArrayBuffer; +export function fillImpl(buffer: Uint8Array, + value: string | BufferSource, + start: number, + end: number, + encoding?: string): void; +export function indexOf(buffer: Uint8Array, + value: string | Uint8Array, + byteOffset?: number, + encoding?: string, + findLast?: boolean): number | undefined; +export function swap(buffer: Uint8Array, size: 16|32|64): void; +export function toString(buffer: Uint8Array, + start: number, + end: number, + encoding: string): string; +export function write(buffer: Uint8Array, + value: string, + offset: number, + length: number, + encoding: string): void; +export function decode(buffer: Uint8Array, state: Uint8Array): string; +export function flush(state: Uint8Array): string; \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts new file mode 100644 index 000000000..8ea27b939 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts @@ -0,0 +1,539 @@ +import {isInstance} from "./internal_buffer"; +import * as base64 from "base64-js"; +import { TextEncoder, TextDecoder } from "@sinonjs/text-encoding"; + +const hexCharValueTable = { + "0": 0, + "1": 1, + "2": 2, + "3": 3, + "4": 4, + "5": 5, + "6": 6, + "7": 7, + "8": 8, + "9": 9, + a: 10, + b: 11, + c: 12, + d: 13, + e: 14, + f: 15, + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, +}; + +export function byteLength(string, encoding) { + if (Buffer.isBuffer(string)) { + return string.length; + } + if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) { + return string.byteLength; + } + if (typeof string !== "string") { + throw new TypeError( + 'The "string" argument must be one of type string, Buffer, or ArrayBuffer. ' + + "Received type " + + typeof string + ); + } + + const len = string.length; + const mustMatch = arguments.length > 2 && arguments[2] === true; + if (!mustMatch && len === 0) return 0; + + // Use a for loop to avoid recursion + let loweredCase = false; + for (;;) { + switch (encoding) { + case "ascii": + case "latin1": + case "binary": + return len; + case "utf8": + case "utf-8": + return utf8ToBytes(string).length; + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return len * 2; + case "hex": + return len >>> 1; + case "base64": + return base64ToBytes(string).length; + default: + if (loweredCase) { + return mustMatch ? -1 : utf8ToBytes(string).length; // assume utf8 + } + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } +} + +// @ts-ignore + +export function compare(a: Uint8Array, b: Uint8Array, options?): number { + const aStart = options?.aStart ?? 0; + const aEnd = options?.aEnd ?? a.length; + const bStart = options?.bStart ?? 0; + const bEnd = options?.bEnd ?? b.length; + + const sliceA = a.slice(aStart, aEnd); + const sliceB = b.slice(bStart, bEnd); + + let x = sliceA.length; + let y = sliceB.length; + + for (let i = 0, len = Math.min(x, y); i < len; ++i) { + if (sliceA[i] !== sliceB[i]) { + x = sliceA[i]; + y = sliceB[i]; + break; + } + } + + if (x < y) return -1; + if (y < x) return 1; + return 0; +} + +export function concat(list: Uint8Array[], length: number): ArrayBuffer { + const result = new Uint8Array(length); + let offset = 0; + for (let i = 0; i < list.length; i++) { + result.set(list[i], offset); + offset += list[i].length; + } + return result.buffer; +} + +export function toString( + buffer: Uint8Array, + start: number, + end: number, + encoding: string +): string { + const slice = buffer.slice(start, end); + const decoder = new TextDecoder(encoding); + return decoder.decode(slice); +} + +export function swap(buffer: Uint8Array, size: 16 | 32 | 64): void { + const length = buffer.length; + if (length % size !== 0) { + throw new RangeError("Buffer size must be a multiple of " + size); + } + + for (let i = 0; i < length; i += size) { + let left = i; + let right = i + size - 1; + while (left < right) { + const temp = buffer[left]; + buffer[left] = buffer[right]; + buffer[right] = temp; + left++; + right--; + } + } +} + +export function decodeString(value: string, encoding: string): ArrayBuffer { + const encoder = new TextEncoder(); + return encoder.encode(value).buffer; +} + +export function write( + buffer: Uint8Array, + value: string, + offset: number, + length: number, + encoding: string +): void { + let loweredCase = false; + for (;;) { + switch (encoding) { + case "hex": + return hexWrite(buffer, value, offset, length); + + case "utf8": + case "utf-8": + return utf8Write(buffer, value, offset, length); + + case "ascii": + case "latin1": + case "binary": + return asciiWrite(buffer, value, offset, length); + + case "base64": + // Warning: maxLength not taken into account in base64Write + return base64Write(buffer, value, offset, length); + + case "ucs2": + case "ucs-2": + case "utf16le": + case "utf-16le": + return ucs2Write(buffer, value, offset, length); + + default: + if (loweredCase) throw new TypeError("Unknown encoding: " + encoding); + encoding = ("" + encoding).toLowerCase(); + loweredCase = true; + } + } +} + +export function fillImpl( + buffer: Uint8Array, + val: string | BufferSource | number | boolean, + start: number, + end: number, + encoding?: string +): void { + let i; + if (typeof val === "number") { + for (i = start; i < end; ++i) { + buffer[i] = val; + } + } else { + const bytes = Buffer.isBuffer(val) + ? val + : Buffer.from(val as string, encoding); + const len = bytes.length; + for (i = 0; i < end - start; ++i) { + buffer[i + start] = bytes[i % len]; + } + } +} + +export function indexOf(buffer, val, byteOffset, encoding, dir) { +// Empty buffer means no match + if (buffer.length === 0) return -1; + + // Normalize byteOffset + if (typeof byteOffset === "string") { + encoding = byteOffset; + byteOffset = 0; + } else if (byteOffset > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset < -0x80000000) { + byteOffset = -0x80000000; + } + byteOffset = +byteOffset; // Coerce to Number. + if (numberIsNaN(byteOffset)) { + // byteOffset: it it's undefined, null, NaN, "foo", etc, search whole buffer + byteOffset = dir ? 0 : buffer.length - 1; + } + + // Normalize byteOffset: negative offsets start from the end of the buffer + if (byteOffset < 0) byteOffset = buffer.length + byteOffset; + if (byteOffset >= buffer.length) { + if (dir) return -1; + else byteOffset = buffer.length - 1; + } else if (byteOffset < 0) { + if (dir) byteOffset = 0; + else return -1; + } + + // Normalize val + if (typeof val === "string") { + val = Buffer.from(val, encoding); + } + + // Finally, search either indexOf (if dir is true) or lastIndexOf + if (Buffer.isBuffer(val)) { + // Special case: looking for empty string/buffer always fails + if (val.length === 0) { + return -1; + } + return arrayIndexOf(buffer, val, byteOffset, encoding, dir); + } else if (typeof val === "number") { + val = val & 0xff; // Search for a byte value [0-255] + if (typeof Uint8Array.prototype.indexOf === "function") { + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + return arrayIndexOf(buffer, [val], byteOffset, encoding, dir); + } + + throw new TypeError("val must be string, number or Buffer"); +} + +function arrayIndexOf(arr, val, byteOffset, encoding, dir) { + let indexSize = 1; + let arrLength = arr.length; + let valLength = val.length; + + if (encoding !== undefined) { + encoding = String(encoding).toLowerCase(); + if ( + encoding === "ucs2" || + encoding === "ucs-2" || + encoding === "utf16le" || + encoding === "utf-16le" + ) { + if (arr.length < 2 || val.length < 2) { + return -1; + } + indexSize = 2; + arrLength /= 2; + valLength /= 2; + byteOffset /= 2; + } + } + + function read(buf, i) { + if (indexSize === 1) { + return buf[i]; + } else { + return buf.readUInt16BE(i * indexSize); + } + } + + let i; + if (dir) { + let foundIndex = -1; + for (i = byteOffset; i < arrLength; i++) { + if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) { + if (foundIndex === -1) foundIndex = i; + if (i - foundIndex + 1 === valLength) return foundIndex * indexSize; + } else { + if (foundIndex !== -1) i -= i - foundIndex; + foundIndex = -1; + } + } + } else { + if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength; + for (i = byteOffset; i >= 0; i--) { + let found = true; + for (let j = 0; j < valLength; j++) { + if (read(arr, i + j) !== read(val, j)) { + found = false; + break; + } + } + if (found) return i; + } + } + + return -1; +} + +function utf8ToBytes(string, units?) { + units = units || Infinity; + let codePoint; + const length = string.length; + let leadSurrogate = null; + const bytes = []; + + for (let i = 0; i < length; ++i) { + codePoint = string.charCodeAt(i); + + // is surrogate component + if (codePoint > 0xd7ff && codePoint < 0xe000) { + // last char was a lead + if (!leadSurrogate) { + // no lead yet + if (codePoint > 0xdbff) { + // unexpected trail + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + continue; + } else if (i + 1 === length) { + // unpaired lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + continue; + } + + // valid lead + leadSurrogate = codePoint; + + continue; + } + + // 2 leads in a row + if (codePoint < 0xdc00) { + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + leadSurrogate = codePoint; + continue; + } + + // valid surrogate pair + codePoint = + (((leadSurrogate - 0xd800) << 10) | (codePoint - 0xdc00)) + 0x10000; + } else if (leadSurrogate) { + // valid bmp char, but last char was a lead + if ((units -= 3) > -1) bytes.push(0xef, 0xbf, 0xbd); + } + + leadSurrogate = null; + + // encode utf8 + if (codePoint < 0x80) { + if ((units -= 1) < 0) break; + bytes.push(codePoint); + } else if (codePoint < 0x800) { + if ((units -= 2) < 0) break; + bytes.push((codePoint >> 0x6) | 0xc0, (codePoint & 0x3f) | 0x80); + } else if (codePoint < 0x10000) { + if ((units -= 3) < 0) break; + bytes.push( + (codePoint >> 0xc) | 0xe0, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80 + ); + } else if (codePoint < 0x110000) { + if ((units -= 4) < 0) break; + bytes.push( + (codePoint >> 0x12) | 0xf0, + ((codePoint >> 0xc) & 0x3f) | 0x80, + ((codePoint >> 0x6) & 0x3f) | 0x80, + (codePoint & 0x3f) | 0x80 + ); + } else { + throw new Error("Invalid code point"); + } + } + + return bytes; +} + +function hexWrite(buf, string, offset, length) { + offset = Number(offset) || 0; + const remaining = buf.length - offset; + if (!length) { + length = remaining; + } else { + length = Number(length); + if (length > remaining) { + length = remaining; + } + } + + const strLen = string.length; + + if (length > strLen / 2) { + length = strLen / 2; + } + let i; + for (i = 0; i < length; ++i) { + const a = hexCharValueTable[string[i * 2]]; + const b = hexCharValueTable[string[i * 2 + 1]]; + if (a === undefined || b === undefined) { + return i; + } + buf[offset + i] = (a << 4) | b; + } + return i; +} + +function base64ToBytes(str) { + return base64.toByteArray(base64clean(str)); +} + +function utf8Write(buf, string, offset, length) { + return blitBuffer( + utf8ToBytes(string, buf.length - offset), + buf, + offset, + length + ); +} + +function asciiWrite(buf, string, offset, length) { + return blitBuffer(asciiToBytes(string), buf, offset, length); +} + +function base64Write(buf, string, offset, length) { + return blitBuffer(base64ToBytes(string), buf, offset, length); +} + +function ucs2Write(buf, string, offset, length) { + return blitBuffer( + utf16leToBytes(string, buf.length - offset), + buf, + offset, + length + ); +} + +function asciiToBytes(str) { + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + // Node's code seems to be doing this and not & 0x7F.. + byteArray.push(str.charCodeAt(i) & 0xff); + } + return byteArray; +} + +function utf16leToBytes(str, units) { + let c, hi, lo; + const byteArray = []; + for (let i = 0; i < str.length; ++i) { + if ((units -= 2) < 0) break; + + c = str.charCodeAt(i); + hi = c >> 8; + lo = c % 256; + byteArray.push(lo); + byteArray.push(hi); + } + + return byteArray; +} + +const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g; + +function base64clean(str) { + // Node takes equal signs as end of the Base64 encoding + str = str.split("=")[0]; + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, ""); + // Node converts strings with length < 2 to '' + if (str.length < 2) return ""; + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + "="; + } + return str; +} + +function blitBuffer(src, dst, offset, length) { + let i; + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break; + dst[i + offset] = src[i]; + } + return i; +} + +function numberIsNaN(obj) { + // For IE11 support + return obj !== obj; // eslint-disable-line no-self-compare +} + +export function flush(state: Uint8Array): string { + // Create a new Uint8Array object from the state. + const buffer = new Uint8Array(state); + return String.fromCharCode.apply(null, buffer); +} + +export function decode(buffer: Uint8Array, state: Uint8Array): string { + let result = ""; + for (let i = 0; i < buffer.length; i++) { + const byte = buffer[i]; + const char = state[byte]; + if (char === undefined) { + throw new Error("Invalid byte"); + } + result += char; + } + return result; +} \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts new file mode 100644 index 000000000..88ec50573 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts @@ -0,0 +1,45 @@ + +export const CHAR_UPPERCASE_A = 65; /* A */ +export const CHAR_LOWERCASE_A = 97; /* a */ +export const CHAR_UPPERCASE_Z = 90; /* Z */ +export const CHAR_LOWERCASE_Z = 122; /* z */ +export const CHAR_UPPERCASE_C = 67; /* C */ +export const CHAR_LOWERCASE_B = 98; /* b */ +export const CHAR_LOWERCASE_E = 101; /* e */ +export const CHAR_LOWERCASE_N = 110; /* n */ +export const CHAR_DOT = 46; /* . */ +export const CHAR_FORWARD_SLASH = 47; /* / */ +export const CHAR_BACKWARD_SLASH = 92; /* \ */ +export const CHAR_VERTICAL_LINE = 124; /* | */ +export const CHAR_COLON = 58; /* : */ +export const CHAR_QUESTION_MARK = 63; /* ? */ +export const CHAR_UNDERSCORE = 95; /* _ */ +export const CHAR_LINE_FEED = 10; /* \n */ +export const CHAR_CARRIAGE_RETURN = 13; /* \r */ +export const CHAR_TAB = 9; /* \t */ +export const CHAR_FORM_FEED = 12; /* \f */ +export const CHAR_EXCLAMATION_MARK = 33; /* ! */ +export const CHAR_HASH = 35; /* # */ +export const CHAR_SPACE = 32; /* */ +export const CHAR_NO_BREAK_SPACE = 160; /* \u00A0 */ +export const CHAR_ZERO_WIDTH_NOBREAK_SPACE = 65279; /* \uFEFF */ +export const CHAR_LEFT_SQUARE_BRACKET = 91; /* [ */ +export const CHAR_RIGHT_SQUARE_BRACKET = 93; /* ] */ +export const CHAR_LEFT_ANGLE_BRACKET = 60; /* < */ +export const CHAR_RIGHT_ANGLE_BRACKET = 62; /* > */ +export const CHAR_LEFT_CURLY_BRACKET = 123; /* { */ +export const CHAR_RIGHT_CURLY_BRACKET = 125; /* } */ +export const CHAR_HYPHEN_MINUS = 45; /* - */ +export const CHAR_PLUS = 43; /* + */ +export const CHAR_DOUBLE_QUOTE = 34; /* " */ +export const CHAR_SINGLE_QUOTE = 39; /* ' */ +export const CHAR_PERCENT = 37; /* % */ +export const CHAR_SEMICOLON = 59; /* ; */ +export const CHAR_CIRCUMFLEX_ACCENT = 94; /* ^ */ +export const CHAR_GRAVE_ACCENT = 96; /* ` */ +export const CHAR_AT = 64; /* @ */ +export const CHAR_AMPERSAND = 38; /* & */ +export const CHAR_EQUAL = 61; /* = */ +export const CHAR_0 = 48; /* 0 */ +export const CHAR_9 = 57; /* 9 */ +export const EOL = '\;'; \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts new file mode 100644 index 000000000..6fb967959 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts @@ -0,0 +1,232 @@ +import { + Buffer, +} from './internal_buffer'; + +// random +export function checkPrimeSync(candidate: ArrayBufferView, num_checks: number): boolean; +export function randomPrime(size: number, safe: boolean, add?: ArrayBufferView|undefined, + rem?: ArrayBufferView|undefined): ArrayBuffer; + +// Hash and Hmac +export class HashHandle { + public constructor(algorithm: string, xofLen: number); + public update(data: Buffer | ArrayBufferView): number; + public digest(): ArrayBuffer; + public copy(xofLen: number): HashHandle; +} + +export type ArrayLike = ArrayBuffer|string|Buffer|ArrayBufferView; + +export class HmacHandle { + public constructor(algorithm: string, key: ArrayLike | CryptoKey); + public update(data: Buffer | ArrayBufferView): number; + public digest(): ArrayBuffer; +} + +// hkdf +export function getHkdf(hash: string, key: ArrayLike, salt: ArrayLike, info: ArrayLike, + length: number): ArrayBuffer; + +// pbkdf2 +export function getPbkdf(password: ArrayLike, salt: ArrayLike, iterations: number, keylen: number, + digest: string): ArrayBuffer; + +// Keys +export function exportKey(key: CryptoKey, options?: InnerExportOptions): KeyExportResult; +export function equals(key: CryptoKey, otherKey: CryptoKey): boolean; +export function getAsymmetricKeyDetail(key: CryptoKey): AsymmetricKeyDetails; +export function getAsymmetricKeyType(key: CryptoKey): AsymmetricKeyType; +export function createSecretKey(key: ArrayBuffer | ArrayBufferView): CryptoKey; +export function createPrivateKey(key: InnerCreateAsymmetricKeyOptions): CryptoKey; +export function createPublicKey(key: InnerCreateAsymmetricKeyOptions): CryptoKey; + +export type KeyData = string | ArrayBuffer | ArrayBufferView; +// +// export interface RsaKeyAlgorithm { +// name: 'rsa' | 'rsa-pss'; +// modulusLength: number; +// publicExponent: Uint8Array; +// hash?: string; +// } +// +// export interface EcKeyAlgorithm { +// name: 'ec'; +// namedCurve: string; +// } +// +// export interface DhKeyAlgorithm { +// name: 'dh'; +// prime: Uint8Array; +// generator: Uint8Array; +// } +// +// export interface DsaKeyAlgorithm { +// name: 'dsa'; +// prime: Uint8Array; +// divisorLength: number; +// } +// +// export interface HmacKeyAlgorithm { +// name: 'hmac'; +// hash: string; +// } +// +// export interface AesKeyAlgorithm { +// name: 'aes'; +// length: number; +// } +// +// export type KeyAlgorithm = RsaKeyAlgorithm | +// EcKeyAlgorithm | +// DhKeyAlgorithm | +// DsaKeyAlgorithm | +// HmacKeyAlgorithm | +// AesKeyAlgorithm; +// +// export interface CryptoKey { +// algorithm: KeyAlgorithm; +// extractable: boolean; +// type: KeyObjectType; +// usages: string[]; +// } +// +// export interface RsaOtherPrimesInfo { +// d?: string; +// r?: string; +// t?: string; +// } +// +// export interface JsonWebKey { +// alg?: string; +// crv?: string; +// d?: string; +// dp?: string; +// dq?: string; +// e?: string; +// ext?: boolean; +// k?: string; +// key_ops?: string[]; +// kty?: string; +// n?: string; +// oth?: Array; +// p?: string; +// q?: string; +// qi?: string; +// use?: string; +// x?: string; +// y?: string; +// } +// +// export interface CryptoKeyPair { +// privateKey: CryptoKey; +// publicKey: CryptoKey; +// } +// +// export type KeyObjectType = 'secret' | 'public' | 'private'; +// +// export type KeyExportResult = string | Buffer | JsonWebKey; +// +// export type SecretKeyFormat = 'buffer' | 'jwk'; +// export type AsymmetricKeyFormat = 'pem' | 'der' | 'jwk'; +// export type PublicKeyEncoding = 'pkcs1' | 'spki'; +// export type PrivateKeyEncoding = 'pkcs1' | 'pkcs8' | 'sec1'; +// export type AsymmetricKeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'x25519' | 'ed25519' | 'dh'; +// export type SecretKeyType = 'hmac' | 'aes'; +// export type ParamEncoding = 'named' | 'explicit'; +// +// export interface SecretKeyExportOptions { +// format?: SecretKeyFormat; +// } +// +// export interface PublicKeyExportOptions { +// type?: PublicKeyEncoding; +// format?: AsymmetricKeyFormat; +// } +// +// export interface PrivateKeyExportOptions { +// type?: PrivateKeyEncoding; +// format?: AsymmetricKeyFormat; +// cipher?: string; +// passphrase?: string | Uint8Array; +// encoding?: string; +// } +// +// export interface InnerPrivateKeyExportOptions { +// type?: PrivateKeyEncoding; +// format?: AsymmetricKeyFormat; +// cipher?: string; +// passphrase?: Uint8Array; +// } +// +// export type ExportOptions = SecretKeyExportOptions | +// PublicKeyExportOptions | +// PrivateKeyExportOptions; +// +// export type InnerExportOptions = SecretKeyExportOptions | +// PublicKeyExportOptions | +// InnerPrivateKeyExportOptions; +// +// export interface AsymmetricKeyDetails { +// modulusLength?: number; +// publicExponent?: bigint; +// hashAlgorithm?: string; +// mgf1HashAlgorithm?: string; +// saltLength?: number; +// divisorLength?: number; +// namedCurve?: string; +// } +// +// export interface CreateAsymmetricKeyOptions { +// key: string | ArrayBuffer | ArrayBufferView | JsonWebKey; +// format?: AsymmetricKeyFormat; +// type?: PublicKeyEncoding | PrivateKeyEncoding; +// passphrase?: string | Uint8Array; +// encoding?: string; +// } +// +// export interface InnerCreateAsymmetricKeyOptions { +// key?: ArrayBuffer | ArrayBufferView | JsonWebKey | CryptoKey; +// format?: AsymmetricKeyFormat; +// type?: PublicKeyEncoding | PrivateKeyEncoding; +// passphrase?: Uint8Array; +// } +// +// export interface GenerateKeyOptions { +// length: number; +// } +// +// export interface GenerateKeyPairOptions { +// modulusLength?: number; +// publicExponent?: number|bigint; +// hashAlgorithm?: string; +// mgf1HashAlgorithm?: string; +// saltLength?: number; +// divisorLength?: number; +// namedCurve?: string; +// prime?: Uint8Array; +// primeLength?: number; +// generator?: number; +// groupName?: string; +// paramEncoding?: ParamEncoding; +// publicKeyEncoding?: PublicKeyExportOptions; +// privateKeyEncoding?: PrivateKeyExportOptions; +// } + +// DiffieHellman +export class DiffieHellmanHandle { + public constructor(sizeOrKey: number | ArrayBuffer | ArrayBufferView, + generator: number | ArrayBuffer | ArrayBufferView); + public setPublicKey(data: ArrayBuffer | ArrayBufferView | Buffer): void; + public setPrivateKey(data: ArrayBuffer | ArrayBufferView | Buffer): void; + public getPublicKey(): ArrayBuffer; + public getPrivateKey(): ArrayBuffer; + public getGenerator(): ArrayBuffer; + public getPrime(): ArrayBuffer; + + public computeSecret(key: ArrayBuffer|ArrayBufferView): ArrayBuffer; + public generateKeys(): ArrayBuffer; + + public getVerifyError(): number; +} + +export function DiffieHellmanGroupHandle(name: string): DiffieHellmanHandle; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts new file mode 100644 index 000000000..088a1d7db --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts @@ -0,0 +1,484 @@ +import * as sjcl from 'sjcl'; +import {Buffer} from "./internal_buffer"; + +export type ArrayLike = ArrayBuffer|string|Buffer|ArrayBufferView; +export type KeyData = string | ArrayBuffer | ArrayBufferView; + + +/** + * Checks if a number represented by an ArrayBufferView is prime. + * + * @param {ArrayBufferView} candidate - The ArrayBufferView representing the number to check. + * @param {number} num_checks - The number of checks to perform. + * @returns {boolean} - Returns true if the number is prime, false otherwise. + */ +export function checkPrimeSync(candidate: ArrayBufferView, num_checks: number): boolean { + // Convert ArrayBufferView to number + let num = new Uint32Array(candidate.buffer)[0]; + + // Check if num is less than 2 (not a prime number) + if (num < 2) return false; + + // Check if num is divisible by any number up to its square root + for (let i = 2, sqrt = Math.sqrt(num); i <= sqrt; i++) { + if (num % i === 0) return false; + } + + // If no factors found, num is a prime number + return true; +} + +/** + * Generates a random prime number of a given size. + * + * @param {number} size - The size of the prime number to generate. + * @param {boolean} safe - If true, generates a safe prime (a prime number that is 2 less than another prime number). + * @param {ArrayBufferView} [add] - An ArrayBufferView representing a number to add to the generated prime number. + * @param {ArrayBufferView} [rem] - An ArrayBufferView representing a number to take the remainder of the generated prime number. + * @returns {ArrayBuffer} - Returns an ArrayBuffer representing the generated prime number. + */ +export function randomPrime(size: number, safe: boolean, add?: ArrayBufferView, rem?: ArrayBufferView): ArrayBuffer { + let prime: number; + do { + prime = sjcl.random.randomWords(1, 0)[0]; + prime = Math.abs(prime) % (2 ** size); + if (safe) { + prime = 2 * prime + 1; + } + if (add) { + prime += new Uint32Array(add.buffer)[0]; + } + if (rem) { + prime %= new Uint32Array(rem.buffer)[0]; + } + } while (!checkPrimeSync(new Uint32Array([prime]), 10)); + + return new Uint32Array([prime]).buffer; +} + +// hkdf +export function getHkdf(hash: string, key: ArrayLike, salt: ArrayLike, info: ArrayLike, length: number): ArrayBuffer { + // Convert key, salt, and info to bitArrays + let keyBits = sjcl.codec.utf8String.toBits(key.toString()); + let saltBits = sjcl.codec.utf8String.toBits(salt.toString()); + let infoBits = sjcl.codec.utf8String.toBits(info.toString()); + + // Use sjcl.misc.hkdf to generate the key + // @ts-ignore + let derivedKeyBits = sjcl.misc.hkdf(keyBits, length, saltBits, hash, infoBits); + + // Convert the derived key to an ArrayBuffer and return it + return sjcl.codec.arrayBuffer.fromBits(derivedKeyBits); +} + +// pbkdf2 +export function getPbkdf(password: ArrayLike, salt: ArrayLike, iterations: number, keylen: number, digest: string): ArrayBuffer { + // Convert password and salt to bitArrays + let passwordBits = sjcl.codec.utf8String.toBits(password.toString()); + let saltBits = sjcl.codec.utf8String.toBits(salt.toString()); + + // Use sjcl.misc.pbkdf2 to generate the key + // @ts-ignore + let derivedKeyBits = sjcl.misc.pbkdf2(passwordBits, saltBits, iterations, keylen * 8, digest); + + // Convert the derived key to an ArrayBuffer and return it + return sjcl.codec.arrayBuffer.fromBits(derivedKeyBits); +} + + +export class HashHandle { + private hash: sjcl.SjclHash; + + public constructor(algorithm: string, xofLen: number) { + switch (algorithm) { + case 'sha1': + this.hash = new sjcl.hash.sha1(); + break; + case 'sha256': + this.hash = new sjcl.hash.sha256(); + break; + case 'sha512': + this.hash = new sjcl.hash.sha512(); + break; + default: + throw new Error(`Unsupported hash algorithm: ${algorithm}`); + } + + if (xofLen !== 0) { + throw new Error(`Unsupported xofLen: ${xofLen}`); + } + } + + public update(data: Buffer | ArrayBufferView): number { + let dataBits = sjcl.codec.utf8String.toBits(data.toString()); + this.hash.update(dataBits); + return this.hash.finalize().length; + } + + public digest(): ArrayBuffer { + let digestBits = this.hash.finalize(); + return sjcl.codec.arrayBuffer.fromBits(digestBits); + } + + public copy(xofLen: number): HashHandle { + let algo =""; + let hash = this.hash; + switch (true) { + case hash instanceof sjcl.hash.sha1: + algo = 'sha1'; + break; + case hash instanceof sjcl.hash.sha256: + algo = 'sha256'; + break; + case hash instanceof sjcl.hash.sha512: + algo = 'sha512'; + break; + default: + throw new Error(`Unsupported hash algorithm: ${algo}`); + } + let copy = new HashHandle( algo , xofLen); // Replace 'sha256' with the actual algorithm + copy.hash = this.hash + return copy; + } +} + +export class HmacHandle { + private hmac: sjcl.SjclHMAC; + + public constructor(algorithm: string, key: ArrayLike | CryptoKey) { + let keyBits = sjcl.codec.utf8String.toBits(key.toString()); + switch (algorithm) { + case 'sha1': + this.hmac = new sjcl.misc.hmac(keyBits, sjcl.hash.sha1); + break; + case 'sha256': + this.hmac = new sjcl.misc.hmac(keyBits, sjcl.hash.sha256); + break; + case 'sha512': + this.hmac = new sjcl.misc.hmac(keyBits, sjcl.hash.sha512); + break; + default: + throw new Error(`Unsupported hash algorithm: ${algorithm}`); + } + } + + public update(data: Buffer | ArrayBufferView): number { + let dataBits = sjcl.codec.utf8String.toBits(data.toString()); + this.hmac.update(dataBits); + return this.hmac.digest().length; + } + + public digest(): ArrayBuffer { + let digestBits = this.hmac.digest(); + return sjcl.codec.arrayBuffer.fromBits(digestBits); + } +} + +export interface RsaKeyAlgorithm { + name: 'rsa' | 'rsa-pss'; + modulusLength: number; + publicExponent: Uint8Array; + hash?: string; +} + +export interface EcKeyAlgorithm { + name: 'ec'; + namedCurve: string; +} + +export interface DhKeyAlgorithm { + name: 'dh'; + prime: Uint8Array; + generator: Uint8Array; +} + +export interface DsaKeyAlgorithm { + name: 'dsa'; + prime: Uint8Array; + divisorLength: number; +} + +export interface HmacKeyAlgorithm { + name: 'hmac'; + hash: string; +} + +export interface AesKeyAlgorithm { + name: 'aes'; + length: number; +} + +export type KeyAlgorithm = RsaKeyAlgorithm | + EcKeyAlgorithm | + DhKeyAlgorithm | + DsaKeyAlgorithm | + HmacKeyAlgorithm | + AesKeyAlgorithm; + +export interface CryptoKey { + algorithm: KeyAlgorithm; + extractable: boolean; + type: KeyObjectType; + usages: string[]; +} + +export interface RsaOtherPrimesInfo { + d?: string; + r?: string; + t?: string; +} + +export interface JsonWebKey { + alg?: string; + crv?: string; + d?: string; + dp?: string; + dq?: string; + e?: string; + ext?: boolean; + k?: string; + key_ops?: string[]; + kty?: string; + n?: string; + oth?: Array; + p?: string; + q?: string; + qi?: string; + use?: string; + x?: string; + y?: string; +} + +export interface CryptoKeyPair { + privateKey: CryptoKey; + publicKey: CryptoKey; +} + +export type KeyObjectType = 'secret' | 'public' | 'private'; + +export type KeyExportResult = string | Buffer | JsonWebKey; + +export type SecretKeyFormat = 'buffer' | 'jwk'; +export type AsymmetricKeyFormat = 'pem' | 'der' | 'jwk'; +export type PublicKeyEncoding = 'pkcs1' | 'spki'; +export type PrivateKeyEncoding = 'pkcs1' | 'pkcs8' | 'sec1'; +export type AsymmetricKeyType = 'rsa' | 'rsa-pss' | 'dsa' | 'ec' | 'x25519' | 'ed25519' | 'dh'; +export type SecretKeyType = 'hmac' | 'aes'; +export type ParamEncoding = 'named' | 'explicit'; + +export interface SecretKeyExportOptions { + format?: SecretKeyFormat; +} + +export interface PublicKeyExportOptions { + type?: PublicKeyEncoding; + format?: AsymmetricKeyFormat; +} + +export interface PrivateKeyExportOptions { + type?: PrivateKeyEncoding; + format?: AsymmetricKeyFormat; + cipher?: string; + passphrase?: string | Uint8Array; + encoding?: string; +} + +export interface InnerPrivateKeyExportOptions { + type?: PrivateKeyEncoding; + format?: AsymmetricKeyFormat; + cipher?: string; + passphrase?: Uint8Array; +} + +export type ExportOptions = SecretKeyExportOptions | + PublicKeyExportOptions | + PrivateKeyExportOptions; + +export type InnerExportOptions = SecretKeyExportOptions | + PublicKeyExportOptions | + InnerPrivateKeyExportOptions; + +export interface AsymmetricKeyDetails { + modulusLength?: number; + publicExponent?: bigint; + hashAlgorithm?: string; + mgf1HashAlgorithm?: string; + saltLength?: number; + divisorLength?: number; + namedCurve?: string; +} + +export interface CreateAsymmetricKeyOptions { + key: string | ArrayBuffer | ArrayBufferView | JsonWebKey; + format?: AsymmetricKeyFormat; + type?: PublicKeyEncoding | PrivateKeyEncoding; + passphrase?: string | Uint8Array; + encoding?: string; +} + +export interface InnerCreateAsymmetricKeyOptions { + key?: ArrayBuffer | ArrayBufferView | JsonWebKey | CryptoKey; + format?: AsymmetricKeyFormat; + type?: PublicKeyEncoding | PrivateKeyEncoding; + passphrase?: Uint8Array; +} + +export interface GenerateKeyOptions { + length: number; +} + +export interface GenerateKeyPairOptions { + modulusLength?: number; + publicExponent?: number|bigint; + hashAlgorithm?: string; + mgf1HashAlgorithm?: string; + saltLength?: number; + divisorLength?: number; + namedCurve?: string; + prime?: Uint8Array; + primeLength?: number; + generator?: number; + groupName?: string; + paramEncoding?: ParamEncoding; + publicKeyEncoding?: PublicKeyExportOptions; + privateKeyEncoding?: PrivateKeyExportOptions; +} + +export function exportKey(key: CryptoKey, options?: InnerExportOptions): KeyExportResult { + // SJCL does not provide a direct method to export keys. + throw new Error("Function exportKey is not implemented yet"); +} + +export function equals(key: CryptoKey, otherKey: CryptoKey): boolean { + // SJCL does not provide a direct method to compare keys. + throw new Error("Function equals is not implemented yet"); +} + +export function getAsymmetricKeyDetail(key: CryptoKey): AsymmetricKeyDetails { + // SJCL does not provide a direct method to get asymmetric key details. + throw new Error("Function getAsymmetricKeyDetail is not implemented yet"); +} + +export function getAsymmetricKeyType(key: CryptoKey): AsymmetricKeyType { + // SJCL does not provide a direct method to get asymmetric key type. + throw new Error("Function getAsymmetricKeyType is not implemented yet"); +} + +export function createSecretKey(key: ArrayBuffer | ArrayBufferView): CryptoKey { + let keyArray: Uint8Array; + if (key instanceof ArrayBuffer) { + keyArray = new Uint8Array(key); + } else { + keyArray = new Uint8Array(key.buffer, key.byteOffset, key.byteLength); + } + + let keyBits = sjcl.codec.bytes.toBits(Array.from(keyArray)); + + let cipher = new sjcl.cipher.aes(keyBits); + + return { + algorithm: { + name: 'aes', + length: key.byteLength * 8 + }, + extractable: true, + type: 'secret', + usages: ['encrypt', 'decrypt'] + }; +} + +export function createPrivateKey(key: InnerCreateAsymmetricKeyOptions): CryptoKey { + // SJCL does not provide a direct method to create private keys. + throw new Error("Function createPrivateKey is not implemented yet"); +} + +export function createPublicKey(key: InnerCreateAsymmetricKeyOptions): CryptoKey { + // SJCL does not provide a direct method to create public keys. + throw new Error("Function createPublicKey is not implemented yet"); +} + + +export class DiffieHellmanHandle { + private prime: sjcl.BigNumber; + private generator: sjcl.BigNumber; + private privateKey: sjcl.BigNumber; + private publicKey: sjcl.BigNumber; + + public constructor(sizeOrKey: number | ArrayBuffer | ArrayBufferView, + generator: number | ArrayBuffer | ArrayBufferView) { + // Convert sizeOrKey and generator to sjcl.bn + this.prime = new sjcl.bn(sizeOrKey.toString()); + this.generator = new sjcl.bn(generator.toString()); + + // Generate a random private key + this.privateKey = sjcl.bn.random(this.prime.sub(2), 10).add(1); + + // Calculate the public key + this.publicKey = this.generator.powermod(this.privateKey, this.prime); + } + + public setPublicKey(data: ArrayBuffer | ArrayBufferView | Buffer): void { + this.publicKey = new sjcl.bn(data.toString()); + } + + public setPrivateKey(data: ArrayBuffer | ArrayBufferView | Buffer): void { + this.privateKey = new sjcl.bn(data.toString()); + } + + public getPublicKey(): ArrayBuffer { + return sjcl.codec.arrayBuffer.fromBits(this.publicKey.toBits()); + } + + public getPrivateKey(): ArrayBuffer { + return sjcl.codec.arrayBuffer.fromBits(this.privateKey.toBits()); + } + + public getGenerator(): ArrayBuffer { + return sjcl.codec.arrayBuffer.fromBits(this.generator.toBits()); + } + + public getPrime(): ArrayBuffer { + return sjcl.codec.arrayBuffer.fromBits(this.prime.toBits()); + } + + public computeSecret(key: ArrayBuffer|ArrayBufferView): ArrayBuffer { + let otherPublicKey = new sjcl.bn(key.toString()); + let secret = otherPublicKey.powermod(this.privateKey, this.prime); + return sjcl.codec.arrayBuffer.fromBits(secret.toBits()); + } + + public generateKeys(): ArrayBuffer { + // Generate a new private key + this.privateKey = sjcl.bn.random(this.prime.sub(2),10).add(1); + + // Calculate the new public key + this.publicKey = this.generator.powermod(this.privateKey, this.prime); + + return this.getPublicKey(); + } + + public getVerifyError(): number { + // This method is not applicable to the Diffie-Hellman protocol + throw new Error("Method getVerifyError is not applicable to the Diffie-Hellman protocol"); + } +} + + +export function DiffieHellmanGroupHandle(name: string): DiffieHellmanHandle { + // Define some named groups with their prime and generator values + const groups: { [name: string]: { prime: number, generator: number } } = { + 'modp1': { prime: 2, generator: 2 }, + 'modp2': { prime: 3, generator: 2 }, + 'modp5': { prime: 5, generator: 2 }, + // Add more named groups here + }; + + // Get the named group + const group = groups[name]; + if (!group) { + throw new Error(`Unknown group name: ${name}`); + } + + // Create a DiffieHellmanHandle with the prime and generator of the named group + return new DiffieHellmanHandle(group.prime, group.generator); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts new file mode 100644 index 000000000..1ce519c6d --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts @@ -0,0 +1,202 @@ + +/* eslint-disable */ + +'use strict'; + +import { + Buffer, +} from './internal_buffer'; + +import * as cryptoImpl from './crypto'; +type ArrayLike = cryptoImpl.ArrayLike; + +import { + ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY, + ERR_INVALID_ARG_TYPE, +} from './internal_errors'; + +import { + validateInt32, +} from './validators'; + +import { + isArrayBufferView, + isAnyArrayBuffer +} from './internal_types'; + +import { + getArrayBufferOrView, + toBuf, + kHandle, +} from './crypto_util'; + +const DH_GENERATOR = 2; + +interface DiffieHellman { + [kHandle]: cryptoImpl.DiffieHellmanHandle; +} + +let DiffieHellman = function (this: DiffieHellman, sizeOrKey: number|ArrayLike, + keyEncoding?: number|string, generator?: number|ArrayLike, + genEncoding?: string): DiffieHellman { + if (!(this instanceof DiffieHellman)) + return new DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding); + if (typeof sizeOrKey !== 'number' && + typeof sizeOrKey !== 'string' && + !isArrayBufferView(sizeOrKey) && + !isAnyArrayBuffer(sizeOrKey)) { + throw new ERR_INVALID_ARG_TYPE( + 'sizeOrKey', + ['number', 'string', 'ArrayBuffer', 'Buffer', 'TypedArray', 'DataView'], + sizeOrKey, + ); + } + + // Sizes < 0 don't make sense but they _are_ accepted (and subsequently + // rejected with ERR_OSSL_BN_BITS_TOO_SMALL) by OpenSSL. The glue code + // in node_crypto.cc accepts values that are IsInt32() for that reason + // and that's why we do that here too. + if (typeof sizeOrKey === 'number') + validateInt32(sizeOrKey, 'sizeOrKey'); + + if (keyEncoding && !Buffer.isEncoding(keyEncoding) && keyEncoding !== 'buffer') { + genEncoding = generator as any; + generator = keyEncoding; + keyEncoding = "utf-8"; // default encoding + } + + keyEncoding ??= 'utf-8'; + genEncoding ??= 'utf-8'; + + if (typeof sizeOrKey !== 'number') + sizeOrKey = toBuf(sizeOrKey, keyEncoding as string); + + if (!generator) { + generator = DH_GENERATOR; + } else if (typeof generator === 'number') { + validateInt32(generator, 'generator'); + } else if (typeof generator === 'string') { + generator = toBuf(generator, genEncoding); + } else if (!isArrayBufferView(generator) && !isAnyArrayBuffer(generator)) { + throw new ERR_INVALID_ARG_TYPE( + 'generator', + ['number', 'string', 'ArrayBuffer', 'Buffer', 'TypedArray', 'DataView'], + generator, + ); + } + + this[kHandle] = new cryptoImpl.DiffieHellmanHandle(sizeOrKey as any, generator as any); + Object.defineProperty(DiffieHellman.prototype, "verifyError", { + get: function () { + return this[kHandle].getVerifyError(); + }, + configurable: true, + enumerable: true, + }); + return this; +} as any as { new (sizeOrKey: number|ArrayLike, keyEncoding?: number|string, + generator?: number|ArrayLike, genEncoding?: string): DiffieHellman; }; + +interface DiffieHellmanGroup { + [kHandle]: cryptoImpl.DiffieHellmanHandle; +} + +let DiffieHellmanGroup = function(this: DiffieHellmanGroup, name: string): DiffieHellmanGroup { + if (!(this instanceof DiffieHellmanGroup)) + return new DiffieHellmanGroup(name); + + // The C++-based handle is shared between both classes, so DiffieHellmanGroupHandle() is merely + // a different constructor for a DiffieHellmanHandle. + this[kHandle] = cryptoImpl.DiffieHellmanGroupHandle(name); + Object.defineProperty(DiffieHellmanGroup.prototype, "verifyError", { + get: function () { + return this[kHandle].getVerifyError(); + }, + configurable: true, + enumerable: true, + }); + return this; +} as any as { new (name: string): DiffieHellmanGroup; }; + +DiffieHellmanGroup.prototype.generateKeys = DiffieHellman.prototype.generateKeys = + dhGenerateKeys; +DiffieHellmanGroup.prototype.computeSecret = DiffieHellman.prototype.computeSecret = + dhComputeSecret; +DiffieHellmanGroup.prototype.getPrime = DiffieHellman.prototype.getPrime = dhGetPrime; +DiffieHellmanGroup.prototype.getGenerator = DiffieHellman.prototype.getGenerator = + dhGetGenerator; +DiffieHellmanGroup.prototype.getPublicKey = DiffieHellman.prototype.getPublicKey = + dhGetPublicKey; +DiffieHellmanGroup.prototype.getPrivateKey = DiffieHellman.prototype.getPrivateKey = + dhGetPrivateKey; +DiffieHellman.prototype.setPublicKey = dhSetPublicKey; +DiffieHellman.prototype.setPrivateKey = dhSetPrivateKey; + +export {DiffieHellman, DiffieHellmanGroup}; + +type DHLike = DiffieHellman|DiffieHellmanGroup; +function dhGenerateKeys(this: DHLike, encoding?: string): Buffer|string { + const keys = this[kHandle].generateKeys(); + return encode(keys, encoding); +} + +function dhComputeSecret(this: DHLike, key: ArrayLike, inEnc?: string, + outEnc?: string): Buffer|string { + key = getArrayBufferOrView(key, 'key', inEnc); + const ret = this[kHandle].computeSecret(key); + if (typeof ret === 'string') + throw new ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY(); + return encode(ret, outEnc); +} + +function dhGetPrime(this: DHLike, encoding?: string): Buffer|string { + const prime = this[kHandle].getPrime(); + return encode(prime, encoding); +} + +function dhGetGenerator(this: DHLike, encoding?: string): Buffer|string { + const generator = this[kHandle].getGenerator(); + return encode(generator, encoding); +} + +function dhGetPublicKey(this: DHLike, encoding?: string): Buffer|string { + const key = this[kHandle].getPublicKey(); + return encode(key, encoding); +} + +function dhGetPrivateKey(this: DHLike, encoding?: string): Buffer|string { + const key = this[kHandle].getPrivateKey(); + return encode(key, encoding); +} + +function dhSetPublicKey(this: DiffieHellman, key: ArrayLike, encoding?: string): DiffieHellman { + key = getArrayBufferOrView(key, 'key', encoding); + this[kHandle].setPublicKey(key); + return this; +} + +function dhSetPrivateKey(this: DiffieHellman, key: ArrayLike, encoding?: string): DiffieHellman { + key = getArrayBufferOrView(key, 'key', encoding); + this[kHandle].setPrivateKey(key); + return this; +} + +function encode(buffer: ArrayBuffer, encoding?: string): Buffer|string { + if (encoding && encoding !== 'buffer') + return Buffer.from(buffer).toString(encoding); + return Buffer.from(buffer); +} + +export function createDiffieHellman(sizeOrKey: number|ArrayLike, + keyEncoding?: number|string, generator?: number|ArrayLike, + genEncoding?: string): DiffieHellman { + return new DiffieHellman(sizeOrKey, keyEncoding, generator, genEncoding); +} + +export function createDiffieHellmanGroup(name: string): DiffieHellmanGroup { + return new DiffieHellmanGroup(name); +} + +export function getDiffieHellman(name: string): DiffieHellmanGroup { + return createDiffieHellmanGroup(name); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts new file mode 100644 index 000000000..160fd63a6 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts @@ -0,0 +1,235 @@ +/* eslint-disable */ + +import * as cryptoImpl from './crypto'; +type ArrayLike = cryptoImpl.ArrayLike; + +import { + kFinalized, + kHandle, + kState, + getArrayBufferOrView, + getStringOption, +} from './crypto_util'; + +import { + Buffer +} from './internal_buffer'; + +import { + ERR_CRYPTO_HASH_FINALIZED, + ERR_CRYPTO_HASH_UPDATE_FAILED, + ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE, + ERR_INVALID_ARG_TYPE, +} from './internal_errors'; + +import { + validateEncoding, + validateString, + validateUint32, +} from './validators'; + +import { + normalizeEncoding +} from './internal_utils'; + +import { + isArrayBufferView, + isCryptoKey, + isAnyArrayBuffer, +} from './internal_types'; + +import { + Transform, + TransformOptions, + TransformCallback, +} from './streams_transform'; + +import { + KeyObject, +} from './crypto_keys'; + +export interface HashOptions extends TransformOptions { + outputLength?: number; +} + +interface _kState { + [kFinalized]: boolean; +} + +interface Hash extends Transform { + [kHandle]: cryptoImpl.HashHandle; + [kState]: _kState; +} + +// These helper functions are needed because the constructors can +// use new, in which case V8 cannot inline the recursive constructor call +export function createHash(algorithm: string, options?: HashOptions): Hash { + return new Hash(algorithm, options); +} + +let Hash = function(this: Hash, algorithm: string | cryptoImpl.HashHandle, + options?: HashOptions): Hash { + if (!(this instanceof Hash)) + return new Hash(algorithm, options); + + const xofLen = typeof options === 'object' ? options.outputLength : undefined; + if (xofLen !== undefined) + validateUint32(xofLen, 'options.outputLength'); + if (algorithm instanceof cryptoImpl.HashHandle) { + this[kHandle] = algorithm.copy(xofLen as number); + } else { + validateString(algorithm, 'algorithm'); + this[kHandle] = new cryptoImpl.HashHandle(algorithm, xofLen as number); + } + this[kState] = { + [kFinalized]: false, + }; + + Transform.call(this, options); + return this; +} as any as { new (algorithm: string | cryptoImpl.HashHandle, options?: HashOptions): Hash; }; + +Object.setPrototypeOf(Hash.prototype, Transform.prototype); +Object.setPrototypeOf(Hash, Transform); + +Hash.prototype.copy = function(this: Hash, options?: HashOptions): Hash { + const state = this[kState]; + if (state[kFinalized]) + throw new ERR_CRYPTO_HASH_FINALIZED(); + + return new Hash(this[kHandle], options); +} + +Hash.prototype._transform = function(this: Hash | Hmac, chunk: string | Buffer | ArrayBufferView, + encoding: string, callback: TransformCallback): void { + if (typeof chunk === 'string') { + encoding ??= 'utf-8'; + validateEncoding(chunk, encoding); + encoding = normalizeEncoding(encoding)!; + chunk = Buffer.from(chunk, encoding); + } + this[kHandle].update(chunk); + callback(); +} + +Hash.prototype._flush = function(this: Hash | Hmac, callback: TransformCallback): void { + this.push(Buffer.from(this[kHandle].digest())); + callback(); +} + +Hash.prototype.update = function(this: Hash | Hmac, data: string | Buffer | ArrayBufferView, + encoding?: string): Hash | Hmac { + encoding ??= 'utf8'; + if (encoding === 'buffer') { + encoding = undefined; + } + + const state = this[kState]; + if (state[kFinalized]) + throw new ERR_CRYPTO_HASH_FINALIZED(); + + if (typeof data === 'string') { + validateEncoding(data, encoding!); + encoding = normalizeEncoding(encoding); + data = Buffer.from(data, encoding); + } else if (!isArrayBufferView(data)) { + throw new ERR_INVALID_ARG_TYPE( + 'data', ['string', 'Buffer', 'TypedArray', 'DataView'], data); + } + + if (!this[kHandle].update(data)) + throw new ERR_CRYPTO_HASH_UPDATE_FAILED(); + return this; +} + +Hash.prototype.digest = function(this: Hash, outputEncoding?: string): Buffer | string { + const state = this[kState]; + if (state[kFinalized]) + throw new ERR_CRYPTO_HASH_FINALIZED(); + + // Explicit conversion for backward compatibility. + const ret = Buffer.from(this[kHandle].digest()); + state[kFinalized] = true; + if (outputEncoding !== undefined && outputEncoding !== 'buffer') { + return ret.toString(outputEncoding); + } else { + return ret; + } +} + +/////////////////////////// + +interface Hmac extends Transform { + [kHandle]: cryptoImpl.HmacHandle; + [kState]: _kState; +} + +export function createHmac(hmac: string, key: ArrayLike | KeyObject | CryptoKey, + options?: TransformOptions): Hmac { + return new Hmac(hmac, key, options); +} + +let Hmac = function(this: Hmac, hmac: string, key: ArrayLike | KeyObject | cryptoImpl.CryptoKey, + options?: TransformOptions): Hmac { + if (!(this instanceof Hmac)) { + return new Hmac(hmac, key, options); + } + validateString(hmac, 'hmac'); + const encoding = getStringOption(options, 'encoding'); + + if (key instanceof KeyObject) { + if (key.type !== 'secret') { + throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE(key.type, 'secret'); + } + this[kHandle] = new cryptoImpl.HmacHandle(hmac, key[kHandle]); + } else if (isCryptoKey(key)) { + if ((key as cryptoImpl.CryptoKey).type !== 'secret') { + throw new ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE((key as cryptoImpl.CryptoKey).type, 'secret'); + } + this[kHandle] = new cryptoImpl.HmacHandle(hmac, key); + } else if (typeof key !== 'string' && + !isArrayBufferView(key) && + !isAnyArrayBuffer(key)) { + throw new ERR_INVALID_ARG_TYPE( + 'key', + [ 'ArrayBuffer', 'Buffer', 'ArrayBufferView', 'string', 'KeyObject', 'CryptoKey'], + key); + } else { + this[kHandle] = new cryptoImpl.HmacHandle(hmac, getArrayBufferOrView(key as ArrayLike, + 'key', encoding)); + } + + this[kState] = { + [kFinalized]: false, + }; + Transform.call(this, options); + return this; +} as any as { new (hmac: string, key: ArrayLike | KeyObject | CryptoKey, + options?: TransformOptions): Hmac; }; + +Object.setPrototypeOf(Hmac.prototype, Transform.prototype); +Object.setPrototypeOf(Hmac, Transform); + +Hmac.prototype.update = Hash.prototype.update; + +Hmac.prototype.digest = function(this: Hmac, outputEncoding?: string): Buffer | string { + const state = this[kState]; + if (state[kFinalized]) { + const buf = Buffer.from(''); + return outputEncoding === 'buffer' ? buf : buf.toString(outputEncoding); + } + + // Explicit conversion for backward compatibility. + const ret = Buffer.from(this[kHandle].digest()); + state[kFinalized] = true; + if (outputEncoding !== undefined && outputEncoding !== 'buffer') { + return ret.toString(outputEncoding); + } else { + return ret; + } +}; + +Hmac.prototype._flush = Hash.prototype._flush; +Hmac.prototype._transform = Hash.prototype._transform; + +export {Hash, Hmac}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts new file mode 100644 index 000000000..3c48a2849 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts @@ -0,0 +1,124 @@ +/* eslint-disable */ + +'use strict'; + +import * as cryptoImpl from './crypto'; + +import { + validateFunction, + validateInteger, + validateString, +} from './validators'; + +import { + KeyObject, +} from './crypto_keys'; + +type ArrayLike = cryptoImpl.ArrayLike; + +import { + kMaxLength, +} from './internal_buffer'; + +import { + toBuf, + validateByteSource, +} from './crypto_util'; + +import { + isAnyArrayBuffer, + isArrayBufferView, +} from './internal_types'; + +import { + NodeError, + ERR_INVALID_ARG_TYPE, + ERR_OUT_OF_RANGE, +} from './internal_errors'; + +function validateParameters(hash: string, key: ArrayLike | KeyObject, salt: ArrayLike, + info: ArrayLike, length: number) { + // TODO(soon): Add support for KeyObject input. + if (key instanceof KeyObject) { + throw new NodeError("ERR_METHOD_NOT_IMPLEMENTED", "KeyObject support for hkdf() and " + + "hkdfSync() is not yet implemented. Use ArrayBuffer, TypedArray, " + + "DataView, or Buffer instead."); + } + + validateString(hash, 'digest'); + key = prepareKey(key as unknown as ArrayLike); + salt = validateByteSource(salt, 'salt'); + info = validateByteSource(info, 'info'); + + validateInteger(length, 'length', 0, kMaxLength); + + if (info.byteLength > 1024) { + throw new ERR_OUT_OF_RANGE( + 'info', + 'must not contain more than 1024 bytes', + info.byteLength); + } + + return { + hash, + key, + salt, + info, + length, + }; +} + +function prepareKey(key: ArrayLike): ArrayLike { + key = toBuf(key); + + if (!isAnyArrayBuffer(key) && !isArrayBufferView(key)) { + throw new ERR_INVALID_ARG_TYPE( + 'ikm', + [ + 'string', + 'SecretKeyObject', + 'ArrayBuffer', + 'TypedArray', + 'DataView', + 'Buffer', + ], + key); + } + + return key; +} + +export function hkdf(hash: string, key: ArrayLike | KeyObject, salt: ArrayLike, info: ArrayLike, + length: number, + callback: (err: Error|null, derivedKey?: ArrayBuffer) => void): void { + ({ + hash, + key, + salt, + info, + length, + } = validateParameters(hash, key, salt, info, length)); + + validateFunction(callback, 'callback'); + + new Promise((res, rej) => { + try { + res(cryptoImpl.getHkdf(hash, key as ArrayLike, salt, info, length)); + } catch(err) { + rej(err); + } + }).then((val: ArrayBuffer) => callback(null, val), (err) => callback(err)); +} + +export function hkdfSync(hash: string, key: ArrayLike | KeyObject, salt: ArrayLike, + info: ArrayLike, length: number): ArrayBuffer { + ({ + hash, + key, + salt, + info, + length, + } = validateParameters(hash, key, salt, info, length)); + + return cryptoImpl.getHkdf(hash, key, salt, info, length); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts new file mode 100644 index 000000000..aa549f57d --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts @@ -0,0 +1,384 @@ +/* eslint-disable */ + +import { Buffer } from './internal_buffer'; + +import * as cryptoImpl from './crypto'; + +const +{ + CryptoKey, + KeyData, + KeyObjectType, + KeyExportResult, + SecretKeyType, + SecretKeyExportOptions, + PublicKeyExportOptions, + PrivateKeyExportOptions, + ExportOptions, + AsymmetricKeyDetails, + AsymmetricKeyType, + CreateAsymmetricKeyOptions, + GenerateKeyOptions, + GenerateKeyPairOptions, + InnerExportOptions, + // TODO(soon): Uncomment these once createPrivateKey/createPublicKey are implemented. + // JsonWebKey, + // InnerCreateAsymmetricKeyOptions, +} + = cryptoImpl; + + + +import { + arrayBufferToUnsignedBigInt, + kHandle, +} from './crypto_util'; + +import { + isAnyArrayBuffer, + isArrayBuffer, + isArrayBufferView, + isUint8Array, + // TODO(soon): Uncomment these once createPrivateKey/createPublicKey are implemented. + // isSharedArrayBuffer, +} from './internal_types'; + +import { + ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED, + // TODO(soon): Uncomment these once createPrivateKey/createPublicKey are implemented. + // ERR_INVALID_ARG_VALUE, +} from './internal_errors'; + +import { + validateObject, + validateString, +} from './validators'; + +export abstract class KeyObject { + [kHandle]: CryptoKey; + + constructor() { + // KeyObjects cannot be created with new ... use one of the + // create or generate methods, or use from to get from a + // CryptoKey. + throw new Error('Illegal constructor'); + } + + static from(key: CryptoKey) : KeyObject { + if (!(key instanceof CryptoKey)) { + throw new ERR_INVALID_ARG_TYPE('key', 'CryptoKey', key); + } + switch (key.type) { + case 'secret': + return Reflect.construct(function(this: SecretKeyObject) { + this[kHandle] = key; + }, [], SecretKeyObject); + case 'private': + return Reflect.construct(function(this: PrivateKeyObject) { + this[kHandle] = key; + }, [], PrivateKeyObject); + case 'public': + return Reflect.construct(function(this: PublicKeyObject) { + this[kHandle] = key; + }, [], PublicKeyObject); + } + } + + export(options: ExportOptions = {}) : KeyExportResult { + validateObject(options, 'options', {}); + + // Yes, converting to any is a bit of a cheat, but it allows us to check + // each option individually without having to do a bunch of type guards. + const opts = options as any; + if (opts.format !== undefined) validateString(opts.format, 'options.format'); + if (opts.type !== undefined) validateString(opts.type, 'options.type'); + if (this.type === 'private') { + if (opts.cipher !== undefined) { + validateString(opts.cipher, 'options.cipher'); + if (typeof opts.passphrase === 'string') { + opts.passphrase = Buffer.from(opts.passphrase, opts.encoding); + } + if (!isUint8Array(opts.passphrase)) { + throw new ERR_INVALID_ARG_TYPE('options.passphrase', [ + 'string', 'Uint8Array' + ], opts.passphrase); + } + } + } + + const ret = cryptoImpl.exportKey(this[kHandle], options as InnerExportOptions); + if (typeof ret === 'string') return ret; + if (isUint8Array(ret)) { + return Buffer.from((ret as Uint8Array).buffer, ret.byteOffset, ret.byteLength) as KeyExportResult; + } else if (isArrayBuffer(ret)) { + return Buffer.from(ret as ArrayBuffer, 0, (ret as ArrayBuffer).byteLength); + } + return ret; + } + + equals(otherKeyObject: KeyObject) : boolean { + if (this === otherKeyObject || + this[kHandle] === otherKeyObject[kHandle]) return true; + if (this.type !== otherKeyObject.type) return false; + if (!(otherKeyObject[kHandle] instanceof CryptoKey)) { + throw new ERR_INVALID_ARG_TYPE('otherKeyObject', 'KeyObject', otherKeyObject); + } + return cryptoImpl.equals(this[kHandle], otherKeyObject[kHandle]); + } + + abstract get type() : KeyObjectType; +} + +abstract class AsymmetricKeyObject extends KeyObject { + get asymmetricKeyDetails() : AsymmetricKeyDetails { + let detail = cryptoImpl.getAsymmetricKeyDetail(this[kHandle]); + if (isArrayBuffer(detail.publicExponent)) { + detail.publicExponent = arrayBufferToUnsignedBigInt(detail.publicExponent as any); + } + return detail; + } + + get asymmetricKeyType() : AsymmetricKeyType { + return cryptoImpl.getAsymmetricKeyType(this[kHandle]); + } +} + +export class PublicKeyObject extends AsymmetricKeyObject { + override export(options?: PublicKeyExportOptions) : KeyExportResult { + return super.export(options); + } + + get type() : KeyObjectType { return 'public'; } +} + +export class PrivateKeyObject extends AsymmetricKeyObject { + override export(options?: PrivateKeyExportOptions) : KeyExportResult { + return super.export(options); + } + + get type() : KeyObjectType { return 'private'; } +} + +export class SecretKeyObject extends KeyObject { + get symmetricKeySize() : number { + return (this[kHandle].algorithm as any).length | 0 + } + + override export(options?: SecretKeyExportOptions) : KeyExportResult { + return super.export(options); + } + + get type() : KeyObjectType { return 'secret'; } +} + +type ValidateKeyDataOptions = { + allowObject?: boolean; +}; +function validateKeyData(key: unknown, name: string, options : ValidateKeyDataOptions = { + allowObject: false, +}) { + if (key == null || + (typeof key !== 'string' && + (options.allowObject && typeof key !== 'object') && + !isArrayBufferView(key) && + !isAnyArrayBuffer(key))) { + const expected = [ + 'string', + 'ArrayBuffer', + 'TypedArray', + 'DataView' + ]; + if (options.allowObject) expected.push('object'); + throw new ERR_INVALID_ARG_TYPE(name, expected, key); + } +} + +export function createSecretKey(key: string, encoding?: string) : SecretKeyObject; +export function createSecretKey(key: ArrayBuffer | ArrayBufferView) : SecretKeyObject; +export function createSecretKey(key: KeyData, encoding?: string) : SecretKeyObject { + validateKeyData(key, 'key'); + if (typeof key === 'string') key = Buffer.from(key as string, encoding); + return KeyObject.from(cryptoImpl.createSecretKey(key)) as SecretKeyObject; +} + +// TODO(soon): Fully implement createPrivateKey/createPublicKey. These are the +// equivalent of the WebCrypto API's importKey() method but operate synchronously +// and support a range of options not currently supported by WebCrypto. Implementing +// these will require either duplicating or significantly refactoring the current +// import key logic that supports Web Crypto now as the import logic is spread out +// over several locations and makes a number of assumptions that Web Crypto is being +// used. +// +// For now, users can use Web Crypto to import a CryptoKey then convert that into +// a KeyObject using KeyObject.from(). +// +// const kPrivateKey = Symbol('privateKey'); +// const kPublicKey = Symbol('publicKey'); + +// function validateAsymmetricKeyOptions( +// key: CreateAsymmetricKeyOptions | KeyData | CryptoKey | KeyObject, +// type: Symbol) { +// validateKeyData(key, 'key', { allowObject: true }); +// let inner : InnerCreateAsymmetricKeyOptions = {}; +// inner.format = 'pem'; +// if (typeof key === 'string') { +// inner.key = Buffer.from(key as string); +// } else if (isArrayBufferView(key)) { +// inner.key = key as ArrayBufferView; +// } else if (isArrayBuffer(key)) { +// inner.key = key as ArrayBuffer; +// } else if (isSharedArrayBuffer(key)) { +// inner.key = key as SharedArrayBuffer; +// } else if (type === kPublicKey && key instanceof KeyObject) { +// // Covers deriving public key from a private key. +// if (key.type !== 'private') { +// throw new ERR_INVALID_ARG_VALUE('key', key, 'must be a private key'); +// } +// inner.key = (key as KeyObject)[kHandle]; +// } else if (type === kPublicKey && key instanceof CryptoKey) { +// // Covers deriving public key from a private key. +// if ((key as CryptoKey).type !== 'private') { +// throw new ERR_INVALID_ARG_VALUE('key', key, 'must be a private key'); +// } +// inner.key = key as CryptoKey; +// } else { +// const options = key as CreateAsymmetricKeyOptions; +// if (typeof options.key === 'string') { +// inner.key = Buffer.from(options.key as string, options.encoding); +// } else if (isArrayBufferView(options.key)) { +// inner.key = options.key as ArrayBufferView; +// } else if (isArrayBuffer(options.key)) { +// inner.key = options.key as ArrayBuffer; +// } else if (isSharedArrayBuffer(options.key)) { +// inner.key = options.key as SharedArrayBuffer; +// } else if (type === kPublicKey && key instanceof KeyObject) { +// if ((options.key as KeyObject).type !== 'private') { +// throw new ERR_INVALID_ARG_VALUE('options.key', options.key, 'must be a private key'); +// } +// inner.key = (options.key as KeyObject)[kHandle]; +// } else if (type === kPublicKey && key instanceof CryptoKey) { +// if ((options.key as CryptoKey).type !== 'private') { +// throw new ERR_INVALID_ARG_VALUE('options.key', options.key, 'must be a private key'); +// } +// inner.key = options.key as CryptoKey; +// } else { +// inner.key = key as JsonWebKey; +// } +// validateKeyData(inner.key, 'options.key', { allowObject: true }); + +// if (options.format !== undefined) { +// validateString(options.format, 'options.format'); +// inner.format = options.format; +// } +// if (options.type !== undefined) { +// validateString(options.type, 'options.type'); +// inner.type = options.type; +// } +// if (options.passphrase !== undefined) { +// if (typeof options.passphrase === 'string') { +// inner.passphrase = Buffer.from(options.passphrase, options.encoding); +// } else { +// if (!isUint8Array(options.passphrase)) { +// throw new ERR_INVALID_ARG_TYPE('options.passphrase', [ +// 'string', 'Uint8Array' +// ], options.passphrase); +// } +// inner.passphrase = options.passphrase; +// } +// if (inner.passphrase.byteLength > 1024) { +// throw new ERR_INVALID_ARG_VALUE('options.passphrase', options.passphrase.length, '<= 1024'); +// } +// } +// } +// return inner; +// } + +export function createPrivateKey(key: string) : PrivateKeyObject; +export function createPrivateKey(key: ArrayBuffer | ArrayBufferView) : PrivateKeyObject; +export function createPrivateKey(key: CreateAsymmetricKeyOptions) : PrivateKeyObject; +export function createPrivateKey(_key: CreateAsymmetricKeyOptions | KeyData) : PrivateKeyObject { + // The options here are fairly complex. The key data can be a string, + // ArrayBuffer, or ArrayBufferView. The first argument can be one of + // these or an object with a key property that is one of these. If the + // key data is a string, then it will be decoded using an encoding + // (defaults to UTF8). + throw new ERR_METHOD_NOT_IMPLEMENTED('crypto.createPrivateKey'); + // return KeyObject.from(cryptoImpl.createPrivateKey( + // validateAsymmetricKeyOptions(key, kPrivateKey))) as PrivateKeyObject; +} + +export function createPublicKey(key: string) : PublicKeyObject; +export function createPublicKey(key: ArrayBuffer) : PublicKeyObject; +export function createPublicKey(key: ArrayBufferView) : PublicKeyObject; + +export function createPublicKey(key: KeyObject) : PublicKeyObject; +export function createPublicKey(key: CryptoKey) : PublicKeyObject; +export function createPublicKey(key: CreateAsymmetricKeyOptions) : PublicKeyObject; +export function createPublicKey(_key: CreateAsymmetricKeyOptions | KeyData | CryptoKey | KeyObject) + : PublicKeyObject { + // The options here are a bit complicated. The key material itself can + // either be a string, ArrayBuffer, or ArrayBufferView. It is also + // possible to pass a private key in the form of either a CryptoKey + // or KeyObject. The first argument can be one of these, or an object + // whose key value is one of these. If the key data is a string, then + // it will be decoded using an encoding (defaults to UTF8). If a + // CryptoKey or KeyObject is passed, it will be used to derived the + // public key. + throw new ERR_METHOD_NOT_IMPLEMENTED('crypto.createPublicKey'); + // return KeyObject.from(cryptoImpl.createPublicKey( + // validateAsymmetricKeyOptions(key, kPublicKey))) as PublicKeyObject; +} + +// ====================================================================================== + +export type PublicKeyResult = KeyExportResult | PublicKeyObject; +export type PrivateKeyResult = KeyExportResult | PrivateKeyObject; +export type GenerateKeyCallback = (err?: any, key?: KeyObject) => void; +export type GenerateKeyPairCallback = + (err?: any, publicKey?: PublicKeyResult, privateKey?: PrivateKeyResult) => void; + +export interface KeyObjectPair { + publicKey: PublicKeyResult; + privateKey: PrivateKeyResult; +} + +export function generateKey(_type: SecretKeyType, + _options: GenerateKeyOptions, + callback: GenerateKeyCallback) { +// We intentionally have not implemented key generation up to this point. +// The reason is that generation of cryptographically safe keys is a CPU +// intensive operation that can often exceed limits on the amount of CPU +// time a worker is allowed. +callback(new ERR_METHOD_NOT_IMPLEMENTED('crypto.generateKeySync')); +} + +export function generateKeySync(_type: SecretKeyType, + _options: GenerateKeyOptions) { +// We intentionally have not implemented key generation up to this point. +// The reason is that generation of cryptographically safe keys is a CPU +// intensive operation that can often exceed limits on the amount of CPU +// time a worker is allowed. +throw new ERR_METHOD_NOT_IMPLEMENTED('crypto.generateKeySync'); +} + +export function generateKeyPair( + _type : AsymmetricKeyType, + _options: GenerateKeyPairOptions, + callback: GenerateKeyPairCallback) { + // We intentionally have not implemented key generation up to this point. + // The reason is that generation of cryptographically safe keys is a CPU + // intensive operation that can often exceed limits on the amount of CPU + // time a worker is allowed. + callback(new ERR_METHOD_NOT_IMPLEMENTED('crypto.generateKeyPair')); +} + +export function generateKeyPairSync( + _type : AsymmetricKeyType, + _options: GenerateKeyPairOptions) : KeyObjectPair { + // We intentionally have not implemented key generation up to this point. + // The reason is that generation of cryptographically safe keys is a CPU + // intensive operation that can often exceed limits on the amount of CPU + // time a worker is allowed. + throw new ERR_METHOD_NOT_IMPLEMENTED('crypto.generateKeyPairSync'); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts new file mode 100644 index 000000000..40772a90c --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts @@ -0,0 +1,64 @@ +/* eslint-disable */ + +'use strict'; + +import * as cryptoImpl from './crypto'; +type ArrayLike = cryptoImpl.ArrayLike; +export {ArrayLike}; + +import { + Buffer, +} from './internal_buffer'; + +import { + validateInt32, + validateFunction, + validateString, +} from './validators'; + +import { + getArrayBufferOrView, +} from './crypto_util'; + +export function pbkdf2Sync(password: ArrayLike, salt: ArrayLike, iterations: number, + keylen: number, digest: string): Buffer { + ({ password, salt, iterations, keylen, digest } = + check(password, salt, iterations, keylen, digest)); + + const result = cryptoImpl.getPbkdf(password, salt, iterations, keylen, digest); + return Buffer.from(result); +} + +export type Pbkdf2Callback = (err?: Error|null, result?: Buffer) => void; +export function pbkdf2(password: ArrayLike, salt: ArrayLike, iterations: number, keylen: number, + digest: string, callback: Pbkdf2Callback): void { + if (typeof digest === 'function') { + // Appease node test cases + validateString(undefined, 'digest'); + } + validateFunction(callback, 'callback'); + ({ password, salt, iterations, keylen, digest } = + check(password, salt, iterations, keylen, digest)); + + new Promise((res, rej) => { + try { + res(cryptoImpl.getPbkdf(password, salt, iterations, keylen, digest)); + } catch(err) { + rej(err); + } + }).then((val) => callback(null, Buffer.from(val)), (err) => callback(err)); +} + +function check(password: ArrayLike|ArrayBufferView, salt: ArrayLike|ArrayBufferView, iterations: number, keylen: number, + digest: string): any { + validateString(digest, 'digest'); + + password = getArrayBufferOrView(password, 'password'); + salt = getArrayBufferOrView(salt, 'salt'); + // OpenSSL uses a signed int to represent these values, so we are restricted + // to the 31-bit range here (which is plenty). + validateInt32(iterations, 'iterations', 1); + validateInt32(keylen, 'keylen', 0); + + return { password, salt, iterations, keylen, digest }; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts new file mode 100644 index 000000000..64c0a58a1 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts @@ -0,0 +1,410 @@ +/* eslint-disable */ + +import * as cryptoImpl from './crypto'; + +import { + validateObject, + validateBoolean, + validateFunction, + validateInt32, + validateInteger, +} from './validators'; + +import { + isAnyArrayBuffer, + isArrayBufferView +} from './internal_types'; + +import { + ERR_INVALID_ARG_TYPE, + ERR_OUT_OF_RANGE, +} from './internal_errors'; + +import { + Buffer, + kMaxLength +} from './internal_buffer'; + +import { + arrayBufferToUnsignedBigInt, +} from './crypto_util'; + +export type RandomBytesCallback = (err: any|null, buffer: Uint8Array) => void; +export function randomBytes(size: number, callback: RandomBytesCallback): void; +export function randomBytes(size: number): Uint8Array; +export function randomBytes(size: number, callback?: RandomBytesCallback) : Uint8Array|void{ + validateInteger(size, 'size', 0, kMaxLength); + const buf = Buffer.alloc(size); + if (callback !== undefined) { + randomFill(buf, callback as RandomFillCallback); + } else { + randomFillSync(buf); + return buf; + } +} + +export function randomFillSync( + buffer: ArrayBufferView|ArrayBuffer, + offset?: number, + size?: number) { + if (!isAnyArrayBuffer(buffer) && !isArrayBufferView(buffer)) { + throw new ERR_INVALID_ARG_TYPE('buffer', [ + 'TypedArray', + 'DataView', + 'ArrayBuffer', + 'SharedArrayBuffer' + ],buffer); + } + const maxLength = (buffer as Uint8Array).length; + if (offset !== undefined) { + validateInteger(offset!, 'offset', 0, kMaxLength); + } else offset = 0; + if (size !== undefined) { + validateInteger(size!, 'size', 0, maxLength - offset); + } else size = maxLength; + if (isAnyArrayBuffer(buffer)) { + buffer = Buffer.from(buffer as ArrayBuffer); + } + buffer = (buffer as Buffer).subarray(offset, offset + size); + return crypto.getRandomValues(buffer as ArrayBufferView); +} + +export type RandomFillCallback = (err: any|null, buf?: ArrayBufferView|ArrayBuffer) => void; +export function randomFill(buffer: ArrayBufferView|ArrayBuffer, + callback?: RandomFillCallback) : void; +export function randomFill(buffer: ArrayBufferView|ArrayBuffer, + offset: number, + callback?: RandomFillCallback) : void; + export function randomFill(buffer: ArrayBufferView|ArrayBuffer, + offset: number, + size: number, + callback?: RandomFillCallback) : void; +export function randomFill(buffer: ArrayBufferView|ArrayBuffer, + offsetOrCallback?: number|RandomFillCallback, + sizeOrCallback?: number|RandomFillCallback, + callback?: RandomFillCallback) { + if (!isAnyArrayBuffer(buffer) && !isArrayBufferView(buffer)) { + throw new ERR_INVALID_ARG_TYPE('buffer', [ + 'TypedArray', + 'DataView', + 'ArrayBuffer', + 'SharedArrayBuffer' + ],buffer); + } + + let offset = 0; + let size = 0; + const maxLength = (buffer as Uint8Array).length; + if (typeof callback === 'function') { + validateInteger(offsetOrCallback, 'offset', 0, maxLength); + offset = offsetOrCallback as number; + + validateInteger(sizeOrCallback, 'size', 0, maxLength - offset); + size = sizeOrCallback as number; + } else if (typeof sizeOrCallback === 'function') { + validateInteger(offsetOrCallback, 'offset', 0, maxLength); + offset = offsetOrCallback as number; + size = maxLength - offset; + callback = sizeOrCallback as RandomFillCallback; + } else if (typeof offsetOrCallback === 'function') { + offset = 0; + size = maxLength; + callback = offsetOrCallback as RandomFillCallback; + } + validateFunction(callback, 'callback'); + + // We're currently not actually implementing the fill itself asynchronously, + // so we defer to randomFillSync here, but we invoke the callback asynchronously. + new Promise((res) => { + randomFillSync(buffer, offset, size); + res(); + }).then(() => callback!(null, buffer), (err: any) => callback!(err)); +} + +const RAND_MAX = 0xFFFF_FFFF_FFFF; +// Cache random data to use in randomInt. The cache size must be evenly +// divisible by 6 because each attempt to obtain a random int uses 6 bytes. +const randomCache = Buffer.alloc(6 * 1024); +let randomCacheOffset = 0; +let initialized = false; + +function getRandomInt(min: number, max: number) { + if (!initialized) { + randomFillSync(randomCache); + initialized = true; + } + // First we generate a random int between [0..range) + const range = max - min; + + if (!(range <= RAND_MAX)) { + throw new ERR_OUT_OF_RANGE(`max${max ? '' : ' - min'}`, `<= ${RAND_MAX}`, range); + } + + // For (x % range) to produce an unbiased value greater than or equal to 0 and + // less than range, x must be drawn randomly from the set of integers greater + // than or equal to 0 and less than randLimit. + const randLimit = RAND_MAX - (RAND_MAX % range); + + // If we don't have a callback, or if there is still data in the cache, we can + // do this synchronously, which is super fast. + while (randomCacheOffset <= randomCache.length) { + if (randomCacheOffset === randomCache.length) { + // This might block the thread for a bit, but we are in sync mode. + randomFillSync(randomCache); + randomCacheOffset = 0; + } + + const x = randomCache.readUIntBE(randomCacheOffset, 6); + randomCacheOffset += 6; + if (x < randLimit) { + const n = (x % range) + min; + return n; + } + } + return 0; // Should be unreachable. +} + +export type RandomIntCallback = (err: any|null, n?: number) => void; +export function randomInt(max: number) : number; +export function randomInt(min: number, max: number) : number; +export function randomInt(max: number, callback: RandomIntCallback) : void; +export function randomInt(min: number, max: number, callback: RandomIntCallback) : void; +export function randomInt(minOrMax: number, + maxOrCallback?: number|RandomIntCallback, + callback?: RandomIntCallback) { + let min = 0; + let max = 0; + if (typeof callback === 'function') { + validateInteger(minOrMax, 'min'); + validateInteger(maxOrCallback, 'max'); + min = minOrMax as number; + max = maxOrCallback as number; + } else if (typeof maxOrCallback === 'function') { + min = 0; + validateInteger(minOrMax, 'max'); + max = minOrMax as number; + callback = maxOrCallback as RandomIntCallback; + } else if (arguments.length === 2) { + validateInteger(minOrMax, 'min'); + validateInteger(maxOrCallback, 'max'); + min = minOrMax as number; + max = maxOrCallback as number; + } else { + min = 0; + validateInteger(minOrMax, 'max'); + max = minOrMax; + } + + if (min > max) { + throw new ERR_OUT_OF_RANGE('min', 'min <= max', min); + } + + if (callback !== undefined) { + new Promise((res) => { + res(getRandomInt(min, max)); + }).then((n: number) => callback!(null, n), (err: any) => callback!(err)); + return; + } else { + return getRandomInt(min, max); + } +} + +export function randomUUID(options?: any) { + // While we do not actually use the entropy cache, we go ahead and validate + // the input parameters as Node.js does. + if (options !== undefined) { + validateObject(options, 'options', options); + if (options.disableEntropyCache !== undefined) { + validateBoolean(options.disableEntropyCache, 'options.disableEntropyCache'); + } + } + return crypto.randomUUID(); +} + +export type PrimeNum = ArrayBuffer | ArrayBufferView | Buffer | bigint; +export interface GeneratePrimeOptions { + add?: PrimeNum; + rem?: PrimeNum; + safe?: boolean; + bigint?: boolean; +} + +export interface CheckPrimeOptions { + checks?: number; +} + +export type GeneratePrimeCallback = (err?: any, prime?: bigint|ArrayBuffer) => void; +export type CheckPrimeCallback = (err?: any, prime?: boolean) => void; + +function processGeneratePrimeOptions(options: GeneratePrimeOptions) : { + add: ArrayBufferView, + rem: ArrayBufferView, + safe: boolean, + bigint: boolean } { + validateObject(options, 'options', {}); + const { + safe = false, + bigint = false, + } = options; + let { + add, + rem, + } = options; + validateBoolean(safe, 'options.safe'); + validateBoolean(bigint, 'options.bigint'); + + if (add !== undefined) { + if (typeof add === 'bigint') { + add = unsignedBigIntToBuffer(add, 'options.add'); + } else if (!isAnyArrayBuffer(add) && !isArrayBufferView(add)) { + throw new ERR_INVALID_ARG_TYPE( + 'options.add', + [ + 'ArrayBuffer', + 'TypedArray', + 'Buffer', + 'DataView', + 'bigint', + ], + add); + } + } + + if (rem !== undefined) { + if (typeof rem === 'bigint') { + rem = unsignedBigIntToBuffer(rem, 'options.rem'); + } else if (!isAnyArrayBuffer(rem) && !isArrayBufferView(rem)) { + throw new ERR_INVALID_ARG_TYPE( + 'options.rem', + [ + 'ArrayBuffer', + 'TypedArray', + 'Buffer', + 'DataView', + 'bigint', + ], + rem); + } + } + + return { + safe, + bigint, + add: add as ArrayBufferView, + rem: rem as ArrayBufferView, + } +} + +export function generatePrimeSync(size: number, options: GeneratePrimeOptions = {}) { + validateInt32(size, 'size', 1); + const { + safe, + bigint, + add, + rem, + } = processGeneratePrimeOptions(options); + + let primeBuf = cryptoImpl.randomPrime(size, safe, add, rem); + return bigint ? arrayBufferToUnsignedBigInt(primeBuf) : primeBuf; +} + +export function generatePrime(size: number, + options: GeneratePrimeOptions, + callback: GeneratePrimeCallback) : void; +export function generatePrime(size: number, callback: GeneratePrimeCallback) : void; +export function generatePrime(size: number, + options: GeneratePrimeOptions|GeneratePrimeCallback, + callback?: GeneratePrimeCallback) : void { + validateInt32(size, 'size', 1); + if (typeof options === 'function') { + callback = options; + options = {}; + } + validateFunction(callback, 'callback'); + + const { + safe, + bigint, + add, + rem + } = processGeneratePrimeOptions(options as GeneratePrimeOptions); + + new Promise((res, rej) => { + try { + const primeBuf = cryptoImpl.randomPrime(size, safe, add, rem); + res(bigint ? arrayBufferToUnsignedBigInt(primeBuf) : primeBuf); + } catch(err) { + rej(err); + } + }).then((val) => callback!(null, val), (err) => callback!(err)); +} + +function unsignedBigIntToBuffer(bigint: bigint, name: string) { + if (bigint < 0) { + throw new ERR_OUT_OF_RANGE(name, '>= 0', bigint); + } + + const hex = bigint.toString(16); + const padded = hex.padStart(hex.length + (hex.length % 2), '0'); + return Buffer.from(padded, 'hex'); +} + +function validateCandidate(candidate: PrimeNum) : Buffer { + if (typeof candidate === 'bigint') + candidate = unsignedBigIntToBuffer(candidate, 'candidate'); + if (!isAnyArrayBuffer(candidate) && !isArrayBufferView(candidate)) { + throw new ERR_INVALID_ARG_TYPE( + 'candidate', + [ + 'ArrayBuffer', + 'TypedArray', + 'Buffer', + 'DataView', + 'bigint', + ], + candidate, + ); + } + return candidate as Buffer; +} + +function validateChecks(options : CheckPrimeOptions) : number { + const { + checks = 0, + } = options; + // The checks option is unsigned but must fit into a signed 32-bit integer for OpenSSL. + validateInt32(checks, 'options.checks', 0); + return checks; +} + +export function checkPrimeSync(candidate: PrimeNum, options: CheckPrimeOptions = {}) { + candidate = validateCandidate(candidate); + validateObject(options, 'options', {}); + const checks = validateChecks(options); + return cryptoImpl.checkPrimeSync(candidate as ArrayBufferView, checks); +} + +export function checkPrime(candidate: PrimeNum, + options: CheckPrimeOptions, + callback: CheckPrimeCallback) : void; +export function checkPrime(candidate: PrimeNum, + callback: CheckPrimeCallback) : void; +export function checkPrime(candidate: PrimeNum, + options: CheckPrimeOptions|CheckPrimeCallback, + callback?: CheckPrimeCallback) : void { + candidate = validateCandidate(candidate); + if (typeof options === 'function') { + callback = options; + options = {}; + } + validateObject(options, 'options', {}); + validateFunction(callback, 'callback'); + const checks = validateChecks(options); + new Promise((res, rej) => { + try { + res(cryptoImpl.checkPrimeSync(candidate as ArrayBufferView, checks)); + } catch(err) { + rej(err); + } + }).then((val) => callback!(null, val), (err) => callback!(err)); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts new file mode 100644 index 000000000..5f52cdedc --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts @@ -0,0 +1,118 @@ +/* eslint-disable */ + +'use strict'; + +import { + Buffer, +} from './internal_buffer'; + +import { + isAnyArrayBuffer, + isArrayBufferView, +} from './internal_types'; + +import { + ERR_INVALID_ARG_TYPE, +} from './internal_errors'; + +import { + validateString, +} from './validators'; + +import * as cryptoImpl from './crypto'; +type ArrayLike = cryptoImpl.ArrayLike; + +export const kHandle = Symbol('kHandle'); +export const kFinalized = Symbol('kFinalized'); +export const kState = Symbol('kFinalized'); + +export function getStringOption(options: any, key: string) { + let value; + if (options && (value = options[key]) != null) + validateString(value, `options.${key}`); + return value; +} + +export function getArrayBufferOrView(buffer: Buffer | ArrayBuffer | ArrayBufferView | string, name: string, encoding?: string): Buffer | ArrayBuffer | ArrayBufferView { + if (isAnyArrayBuffer(buffer)) + return buffer as ArrayBuffer; + if (typeof buffer === 'string') { + if (encoding === undefined || encoding === 'buffer') { + encoding = 'utf8'; + } + return Buffer.from(buffer, encoding); + } + if (!isArrayBufferView(buffer)) { + throw new ERR_INVALID_ARG_TYPE( + name, + [ + 'string', + 'ArrayBuffer', + 'Buffer', + 'TypedArray', + 'DataView', + ], + buffer, + ); + } + return buffer; +} + +/** + * 48 is the ASCII code for '0', 97 is the ASCII code for 'a'. + * @param {number} number An integer between 0 and 15. + * @returns {number} corresponding to the ASCII code of the hex representation + * of the parameter. + */ +export const numberToHexCharCode = (number: number): number => (number < 10 ? 48 : 87) + number; + +/** + * @param {ArrayBuffer} buf An ArrayBuffer. + * @return {bigint} + */ +export function arrayBufferToUnsignedBigInt(buf: ArrayBuffer): bigint { + const length = buf.byteLength; + const chars = Array(length * 2); + const view = new DataView(buf); + + for (let i = 0; i < length; i++) { + const val = view.getUint8(i); + chars[2 * i] = numberToHexCharCode(val >> 4); + chars[2 * i + 1] = numberToHexCharCode(val & 0xf); + } + + return BigInt(`0x${String.fromCharCode.apply(null, chars)}`); +} + +// This is here because many functions accepted binary strings without +// any explicit encoding in older versions of node, and we don't want +// to break them unnecessarily. +export function toBuf(val: ArrayLike, encoding?: string): Buffer|ArrayBuffer|ArrayBufferView { + if (typeof val === 'string') { + if (encoding === 'buffer') { + encoding = 'utf8'; + } + return Buffer.from(val, encoding); + } + return val; +} + +export function validateByteSource(val: ArrayLike, + name: string): Buffer|ArrayBuffer|ArrayBufferView { + val = toBuf(val); + + if (isAnyArrayBuffer(val) || isArrayBufferView(val)) { + return val; + } + + throw new ERR_INVALID_ARG_TYPE( + name, + [ + 'string', + 'ArrayBuffer', + 'TypedArray', + 'DataView', + 'Buffer', + ], + val); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts new file mode 100644 index 000000000..f7b92a65d --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts @@ -0,0 +1,904 @@ +import { + AbortError, + ERR_INVALID_ARG_TYPE, + ERR_INVALID_THIS, + ERR_OUT_OF_RANGE, + ERR_UNHANDLED_ERROR, +} from "./internal_errors"; + +import { + validateAbortSignal, + validateBoolean, + validateFunction, +} from "./validators"; + + +import * as process from "./process"; + +import { spliceOne } from "./internal_utils"; + +import * as async_hooks from "./async_hooks"; +const { AsyncResource } = async_hooks; + +import { inspect } from "./internal_inspect"; + +const kRejection = Symbol.for("nodejs.rejection"); +const kCapture = Symbol("kCapture"); +const kErrorMonitor = Symbol("events.errorMonitor"); +const kMaxEventTargetListeners = Symbol("events.maxEventTargetListeners"); +const kMaxEventTargetListenersWarned = Symbol("events.maxEventTargetListenersWarned"); + + +export interface EventEmitterOptions { + captureRejections? : boolean; +}; + +export type EventName = string|symbol; +export type EventCallback = (...args: any[]) => unknown; +export interface EventEmitter { + addListener(eventName: EventName, listener: EventCallback): EventEmitter; + emit(eventName: EventName, ...args: unknown[]): void; + eventNames() : EventName[]; + getMaxListeners(): number; + listenerCount(eventName: EventName): number; + listeners(eventName: EventName): EventCallback[]; + off(eventName: EventName, listener: EventCallback): EventEmitter; + on(eventName: EventName, listener: EventCallback): EventEmitter; + once(eventName: EventName, listener: EventCallback): EventEmitter; + prependListener(eventName: EventName, listener: EventCallback): EventEmitter; + prependOnceListener(eventName: EventName, listener: EventCallback): EventEmitter; + removeAllListeners(eventName?: EventName): EventEmitter; + removeListener(eventName: EventName, listener: EventCallback): EventEmitter; + setMaxListeners(n: number): EventEmitter; + rawListeners(eventName: EventName): EventCallback[]; + [kRejection](err: unknown, eventName: EventName, ...args: unknown[]) : void; +}; + +type AsyncResource = typeof AsyncResource; + +declare var EventTarget : Function; + +export function EventEmitter(this : EventEmitter, opts? : EventEmitterOptions) { + EventEmitter.init.call(this, opts); +} + +class EventEmitterReferencingAsyncResource extends AsyncResource { + #eventEmitter : EventEmitter; + constructor(emitter : EventEmitter) { + super(''); + this.#eventEmitter = emitter; + } + + get eventEmitter() { + if (this.#eventEmitter === undefined) + throw new ERR_INVALID_THIS('EventEmitterReferencingAsyncResource'); + return this.#eventEmitter; + } +} + +// @ts-ignore -- TODO(soon) Properly handle the extends EventEmitter here +export class EventEmitterAsyncResource extends EventEmitter { + #asyncResource : EventEmitterReferencingAsyncResource; + + constructor(options? : EventEmitterOptions) { + super(options); + // @ts-ignore + this.#asyncResource = new EventEmitterReferencingAsyncResource(this); + } + + get asyncResource() : AsyncResource { + if (this.#asyncResource === undefined) + throw new ERR_INVALID_THIS('EventEmitterAsyncResource'); + // @ts-ignore + return this.#asyncResource; + } + + emit(event : string | symbol, ...args : any[]) : void { + if (this.#asyncResource === undefined) + throw new ERR_INVALID_THIS('EventEmitterAsyncResource'); + args.unshift(super.emit, this, event); + Reflect.apply(this.#asyncResource.runInAsyncScope, + this.#asyncResource, args); + } +} + +export default EventEmitter; +EventEmitter.on = on; +EventEmitter.once = once; +EventEmitter.getEventListeners = getEventListeners; +EventEmitter.setMaxListeners = setMaxListeners; +EventEmitter.listenerCount = listenerCount; +EventEmitter.EventEmitter = EventEmitter; +EventEmitter.usingDomains = false; +EventEmitter.captureRejectionSymbol = kRejection; +EventEmitter.errorMonitor = kErrorMonitor; +EventEmitter.EventEmitterAsyncResource = EventEmitterAsyncResource; + +export const captureRejectionSymbol = EventEmitter.captureRejectionSymbol; +export const errorMonitor = EventEmitter.errorMonitor; +export let defaultMaxListeners = 10; + +Object.defineProperties(EventEmitter, { + captureRejections: { + get() { + return EventEmitter.prototype[kCapture]; + }, + set(value) { + validateBoolean(value, "EventEmitter.captureRejections"); + + EventEmitter.prototype[kCapture] = value; + }, + enumerable: true, + }, + defaultMaxListeners: { + enumerable: true, + get: function () { + return defaultMaxListeners; + }, + set: function (arg) { + if (typeof arg !== "number" || arg < 0 || Number.isNaN(arg)) { + throw new ERR_OUT_OF_RANGE( + "defaultMaxListeners", + "a non-negative number", + arg, + ); + } + defaultMaxListeners = arg; + }, + }, + kMaxEventTargetListeners: { + value: kMaxEventTargetListeners, + enumerable: false, + configurable: false, + writable: false, + }, + kMaxEventTargetListenersWarned: { + value: kMaxEventTargetListenersWarned, + enumerable: false, + configurable: false, + writable: false, + }, +}); + +// The default for captureRejections is false +Object.defineProperty(EventEmitter.prototype, kCapture, { + value: false, + writable: true, + enumerable: false, +}); + +EventEmitter.init = function (this: any, opts? : EventEmitterOptions) { + if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) { + this._events = Object.create(null); + this._eventsCount = 0; + } + + (this as any)._maxListeners ??= undefined; + + if (opts?.captureRejections) { + validateBoolean(opts.captureRejections, "options.captureRejections"); + (this as any)[kCapture] = Boolean(opts.captureRejections); + } else { + // Assigning the kCapture property directly saves an expensive + // prototype lookup in a very sensitive hot path. + (this as any)[kCapture] = EventEmitter.prototype[kCapture]; + } +}; + +export function setMaxListeners( + n = defaultMaxListeners, + ...eventTargets : any[]) { + if (typeof n !== "number" || n < 0 || Number.isNaN(n)) { + throw new ERR_OUT_OF_RANGE("n", "a non-negative number", n); + } + if (eventTargets.length === 0) { + defaultMaxListeners = n; + } else { + for (let i = 0; i < eventTargets.length; i++) { + const target = eventTargets[i]; + if (target instanceof EventTarget) { + (target as any)[kMaxEventTargetListeners] = n; + (target as any)[kMaxEventTargetListenersWarned] = false; + } else if (typeof target.setMaxListeners === "function") { + target.setMaxListeners(n); + } else { + throw new ERR_INVALID_ARG_TYPE( + "eventTargets", + ["EventEmitter", "EventTarget"], + target, + ); + } + } + } +} + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._eventsCount = 0; +EventEmitter.prototype._maxListeners = undefined; + +function addCatch(that : any, promise : Promise, type : string | symbol, args : any[]) { + if (!that[kCapture]) { + return; + } + + // Handle Promises/A+ spec, then could be a getter + // that throws on second use. + try { + const then = promise.then; + + if (typeof then === "function") { + then.call(promise, undefined, function (err) { + // The callback is called with nextTick to avoid a follow-up + // rejection from this promise. + process.nextTick(emitUnhandledRejectionOrErr, that, err, type, args); + }); + } + } catch (err) { + that.emit("error", err); + } +} + +function emitUnhandledRejectionOrErr(ee : any, err : any, type: string | symbol, args : any[]) { + if (typeof ee[kRejection] === "function") { + ee[kRejection](err, type, ...args); + } else { + // We have to disable the capture rejections mechanism, otherwise + // we might end up in an infinite loop. + const prev = ee[kCapture]; + + // If the error handler throws, it is not catcheable and it + // will end up in 'uncaughtException'. We restore the previous + // value of kCapture in case the uncaughtException is present + // and the exception is handled. + try { + ee[kCapture] = false; + ee.emit("error", err); + } finally { + ee[kCapture] = prev; + } + } +} + +EventEmitter.prototype.setMaxListeners = function setMaxListeners(n : number) { + if (typeof n !== "number" || n < 0 || Number.isNaN(n)) { + throw new ERR_OUT_OF_RANGE("n", "a non-negative number", n); + } + this._maxListeners = n; + return this; +}; + +function _getMaxListeners(that : any) { + if (that._maxListeners === undefined) { + return (EventEmitter as any).defaultMaxListeners; + } + return that._maxListeners; +} + +EventEmitter.prototype.getMaxListeners = function getMaxListeners() { + return _getMaxListeners(this); +}; + +EventEmitter.prototype.emit = function emit(type : string | symbol, ...args: any[]) { + let doError = type === "error"; + + const events = this._events; + if (events !== undefined) { + if (doError && events[kErrorMonitor] !== undefined) { + this.emit(kErrorMonitor, ...args); + } + doError = doError && events.error === undefined; + } else if (!doError) { + return false; + } + + // If there is no 'error' event listener then throw. + if (doError) { + let er; + if (args.length > 0) { + er = args[0]; + } + if (er instanceof Error) { + try { + const capture = {}; + (Error as any).captureStackTrace(capture, EventEmitter.prototype.emit); + } catch { + // pass + } + + // Note: The comments on the `throw` lines are intentional, they show + // up in Node's output if this results in an unhandled exception. + throw er; // Unhandled 'error' event + } + + let stringifiedEr; + try { + stringifiedEr = inspect(er); + } catch { + stringifiedEr = er; + } + + // At least give some kind of context to the user + const err = new ERR_UNHANDLED_ERROR(stringifiedEr); + (err as any).context = er; + throw err; // Unhandled 'error' event + } + + const handler = events[type]; + + if (handler === undefined) { + return false; + } + + if (typeof handler === "function") { + const result = handler.apply(this, args); + + // We check if result is undefined first because that + // is the most common case so we do not pay any perf + // penalty + if (result !== undefined && result !== null) { + addCatch(this, result, type, args); + } + } else { + const len = handler.length; + const listeners = arrayClone(handler); + for (let i = 0; i < len; ++i) { + const result = listeners[i].apply(this, args); + + // We check if result is undefined first because that + // is the most common case so we do not pay any perf + // penalty. + // This code is duplicated because extracting it away + // would make it non-inlineable. + if (result !== undefined && result !== null) { + addCatch(this, result, type, args); + } + } + } + + return true; +}; + +function _addListener(target : any, type : string | symbol, listener : unknown, prepend : boolean) { + let m; + let events; + let existing; + + validateFunction(listener, "listener"); + + events = target._events; + if (events === undefined) { + events = target._events = Object.create(null); + target._eventsCount = 0; + } else { + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (events.newListener !== undefined) { + target.emit("newListener", type, (listener as any).listener ?? listener); + + // Re-assign `events` because a newListener handler could have caused the + // this._events to be assigned to a new object + events = target._events; + } + existing = events[type]; + } + + if (existing === undefined) { + // Optimize the case of one listener. Don't need the extra array object. + events[type] = listener; + ++target._eventsCount; + } else { + if (typeof existing === "function") { + // Adding the second element, need to change to array. + existing = events[type] = prepend + ? [listener, existing] + : [existing, listener]; + // If we've already got an array, just append. + } else if (prepend) { + existing.unshift(listener); + } else { + existing.push(listener); + } + + // Check for listener leak + m = _getMaxListeners(target); + if (m > 0 && existing.length > m && !existing.warned) { + existing.warned = true; + console.log( + "Possible EventEmitter memory leak detected. " + + `${existing.length} ${String(type)} listeners ` + + `added to an EventEmitter. Use ` + + "emitter.setMaxListeners() to increase limit", + ); + // TODO(soon): Implement process.emitWarning and inspect + // // No error code for this since it is a Warning + // // eslint-disable-next-line no-restricted-syntax + // const w = new Error( + // "Possible EventEmitter memory leak detected. " + + // `${existing.length} ${String(type)} listeners ` + + // `added to ${inspect(target, { depth: -1 })}. Use ` + + // "emitter.setMaxListeners() to increase limit", + // ); + // w.name = "MaxListenersExceededWarning"; + // w.emitter = target; + // w.type = type; + // w.count = existing.length; + // process.emitWarning(w); + } + } + + return target; +} + +EventEmitter.prototype.addListener = function addListener(type : string | symbol, listener : unknown) { + return _addListener(this, type, listener, false); +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.prependListener = function prependListener( + type : string | symbol, + listener : unknown, +) { + return _addListener(this, type, listener, true); +}; + +function onceWrapper(this: any) { + if (!this.fired) { + this.target.removeListener(this.type, this.wrapFn); + this.fired = true; + if (arguments.length === 0) { + return this.listener.call(this.target); + } + return this.listener.apply(this.target, arguments); + } +} + +function _onceWrap(target : any, type : string | symbol, listener : unknown) { + const state = { fired: false, wrapFn: undefined, target, type, listener }; + const wrapped = onceWrapper.bind(state); + (wrapped as any).listener = listener; + (state as any).wrapFn = wrapped; + return wrapped; +} + +EventEmitter.prototype.once = function once(type : string | symbol, listener : unknown) { + validateFunction(listener, "listener"); + + this.on(type, _onceWrap(this, type, listener)); + return this; +}; + +EventEmitter.prototype.prependOnceListener = function prependOnceListener( + type : string | symbol, + listener : unknown, +) { + validateFunction(listener, "listener"); + + this.prependListener(type, _onceWrap(this, type, listener)); + return this; +}; + +EventEmitter.prototype.removeListener = function removeListener( + type : string | symbol, + listener : unknown, +) { + validateFunction(listener, "listener"); + + const events = this._events; + if (events === undefined) { + return this; + } + + const list = events[type]; + if (list === undefined) { + return this; + } + + if (list === listener || list.listener === listener) { + if (--this._eventsCount === 0) { + this._events = Object.create(null); + } else { + delete events[type]; + if (events.removeListener) { + this.emit("removeListener", type, list.listener || listener); + } + } + } else if (typeof list !== "function") { + let position = -1; + + for (let i = list.length - 1; i >= 0; i--) { + if (list[i] === listener || list[i].listener === listener) { + position = i; + break; + } + } + + if (position < 0) { + return this; + } + + if (position === 0) { + list.shift(); + } else { + spliceOne(list, position); + } + + if (list.length === 1) { + events[type] = list[0]; + } + + if (events.removeListener !== undefined) { + this.emit("removeListener", type, listener); + } + } + + return this; +}; + +EventEmitter.prototype.off = EventEmitter.prototype.removeListener; + +EventEmitter.prototype.removeAllListeners = function removeAllListeners(type : string | symbol) { + const events = this._events; + if (events === undefined) { + return this; + } + + // Not listening for removeListener, no need to emit + if (events.removeListener === undefined) { + if (arguments.length === 0) { + this._events = Object.create(null); + this._eventsCount = 0; + } else if (events[type] !== undefined) { + if (--this._eventsCount === 0) { + this._events = Object.create(null); + } else { + delete events[type]; + } + } + return this; + } + + // Emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (const key of Reflect.ownKeys(events)) { + if (key === "removeListener") continue; + this.removeAllListeners(key); + } + this.removeAllListeners("removeListener"); + this._events = Object.create(null); + this._eventsCount = 0; + return this; + } + + const listeners = events[type]; + + if (typeof listeners === "function") { + this.removeListener(type, listeners); + } else if (listeners !== undefined) { + // LIFO order + for (let i = listeners.length - 1; i >= 0; i--) { + this.removeListener(type, listeners[i]); + } + } + + return this; +}; + +function _listeners(target : any, type : string | symbol, unwrap : boolean) { + const events = target._events; + + if (events === undefined) { + return []; + } + + const evlistener = events[type]; + if (evlistener === undefined) { + return []; + } + + if (typeof evlistener === "function") { + return unwrap ? [evlistener.listener || evlistener] : [evlistener]; + } + + return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener); +} + +EventEmitter.prototype.listeners = function listeners(type : string | symbol) { + return _listeners(this, type, true); +}; + +EventEmitter.prototype.rawListeners = function rawListeners(type : string | symbol) { + return _listeners(this, type, false); +}; + +const _listenerCount = function listenerCount(this : any, type : string | symbol) { + const events = this._events; + + if (events !== undefined) { + const evlistener = events[type]; + + if (typeof evlistener === "function") { + return 1; + } else if (evlistener !== undefined) { + return evlistener.length; + } + } + + return 0; +}; + +EventEmitter.prototype.listenerCount = _listenerCount; + +export function listenerCount(emitter : any, type : string | symbol) { + if (typeof emitter.listenerCount === "function") { + return emitter.listenerCount(type); + } + return _listenerCount.call(emitter, type); +} + +EventEmitter.prototype.eventNames = function eventNames() { + return this._eventsCount > 0 ? Reflect.ownKeys(this._events) : []; +}; + +function arrayClone(arr : any[]) { + // At least since V8 8.3, this implementation is faster than the previous + // which always used a simple for-loop + switch (arr.length) { + case 2: + return [arr[0], arr[1]]; + case 3: + return [arr[0], arr[1], arr[2]]; + case 4: + return [arr[0], arr[1], arr[2], arr[3]]; + case 5: + return [arr[0], arr[1], arr[2], arr[3], arr[4]]; + case 6: + return [arr[0], arr[1], arr[2], arr[3], arr[4], arr[5]]; + } + return arr.slice(); +} + +function unwrapListeners(arr : any[]) { + const ret = arrayClone(arr); + for (let i = 0; i < ret.length; ++i) { + const orig = ret[i].listener; + if (typeof orig === "function") { + ret[i] = orig; + } + } + return ret; +} + +export function getEventListeners(emitterOrTarget : any, type : string | symbol) { + // First check if EventEmitter + if (typeof emitterOrTarget.listeners === "function") { + return emitterOrTarget.listeners(type); + } + if (emitterOrTarget instanceof EventTarget) { + // Workers does not implement the ability to get the event listeners on an + // EventTarget the way that Node.js does. We simply return empty here. + return []; + } + throw new ERR_INVALID_ARG_TYPE( + "emitter", + ["EventEmitter", "EventTarget"], + emitterOrTarget, + ); +} + +export interface OnceOptions { + signal?: AbortSignal; +}; + +export async function once(emitter : any, name : string | symbol, options : OnceOptions = {}) { + const signal = options?.signal; + validateAbortSignal(signal, "options.signal"); + if (signal?.aborted) { + throw new AbortError(); + } + return new Promise((resolve, reject) => { + const errorListener = (err : any) => { + emitter.removeListener(name, resolver); + if (signal != null) { + eventTargetAgnosticRemoveListener(signal, "abort", abortListener); + } + reject(err); + }; + const resolver = (...args : any[]) => { + if (typeof emitter.removeListener === "function") { + emitter.removeListener("error", errorListener); + } + if (signal != null) { + eventTargetAgnosticRemoveListener(signal, "abort", abortListener); + } + resolve(args); + }; + eventTargetAgnosticAddListener(emitter, name, resolver, { once: true }); + if (name !== "error" && typeof emitter.once === "function") { + emitter.once("error", errorListener); + } + function abortListener() { + eventTargetAgnosticRemoveListener(emitter, name, resolver); + eventTargetAgnosticRemoveListener(emitter, "error", errorListener); + reject(new AbortError()); + } + if (signal != null) { + eventTargetAgnosticAddListener( + signal, + "abort", + abortListener, + { once: true }, + ); + } + }); +} + +const AsyncIteratorPrototype = Object.getPrototypeOf( + Object.getPrototypeOf(async function* () {}).prototype, +); + +function createIterResult(value: any, done: boolean) { + return { value, done }; +} + +function eventTargetAgnosticRemoveListener(emitter : any, name : string | symbol, listener : unknown, flags : unknown = undefined) { + if (typeof emitter.removeListener === "function") { + emitter.removeListener(name, listener); + } else if (typeof emitter.removeEventListener === "function") { + emitter.removeEventListener(name, listener, flags); + } else { + throw new ERR_INVALID_ARG_TYPE("emitter", "EventEmitter", emitter); + } +} + +interface AddListenerFlags { + once? : boolean; +} + +function eventTargetAgnosticAddListener(emitter : any, name : string | symbol, listener : unknown, flags : AddListenerFlags = {}) { + if (typeof emitter.on === "function") { + if (flags?.once) { + emitter.once(name, listener); + } else { + emitter.on(name, listener); + } + } else if (typeof emitter.addEventListener === "function") { + // EventTarget does not have `error` event semantics like Node + // EventEmitters, we do not listen to `error` events here. + emitter.addEventListener(name, (arg : unknown) => { + (listener as any)(arg); + }, flags); + } else { + throw new ERR_INVALID_ARG_TYPE("emitter", "EventEmitter", emitter); + } +} + +interface OnOptions { + signal?: AbortSignal; +} + +export function on(emitter : any, event : string | symbol, options : OnOptions = {}) { + const signal = options?.signal; + validateAbortSignal(signal, "options.signal"); + if (signal?.aborted) { + throw new AbortError(); + } + + const unconsumedEvents : any[] = []; + const unconsumedPromises : any[] = []; + let error : any = null; + let finished = false; + + const iterator = Object.setPrototypeOf({ + next() { + // First, we consume all unread events + const value = unconsumedEvents.shift(); + if (value) { + return Promise.resolve(createIterResult(value, false)); + } + + // Then we error, if an error happened + // This happens one time if at all, because after 'error' + // we stop listening + if (error) { + const p = Promise.reject(error); + // Only the first element errors + error = null; + return p; + } + + // If the iterator is finished, resolve to done + if (finished) { + return Promise.resolve(createIterResult(undefined, true)); + } + + // Wait until an event happens + return new Promise(function (resolve, reject) { + unconsumedPromises.push({ resolve, reject }); + }); + }, + + return() { + eventTargetAgnosticRemoveListener(emitter, event, eventHandler); + eventTargetAgnosticRemoveListener(emitter, "error", errorHandler); + + if (signal) { + eventTargetAgnosticRemoveListener( + signal, + "abort", + abortListener, + { once: true }, + ); + } + + finished = true; + + for (const promise of unconsumedPromises) { + promise.resolve(createIterResult(undefined, true)); + } + + return Promise.resolve(createIterResult(undefined, true)); + }, + + throw(err : any) { + if (!err || !(err instanceof Error)) { + throw new ERR_INVALID_ARG_TYPE( + "EventEmitter.AsyncIterator", + "Error", + err, + ); + } + error = err; + eventTargetAgnosticRemoveListener(emitter, event, eventHandler); + eventTargetAgnosticRemoveListener(emitter, "error", errorHandler); + }, + + [Symbol.asyncIterator]() { + return this; + }, + }, AsyncIteratorPrototype); + + eventTargetAgnosticAddListener(emitter, event, eventHandler); + if (event !== "error" && typeof emitter.on === "function") { + emitter.on("error", errorHandler); + } + + if (signal) { + eventTargetAgnosticAddListener( + signal, + "abort", + abortListener, + { once: true }, + ); + } + + return iterator; + + function abortListener() { + errorHandler(new AbortError()); + } + + function eventHandler(...args : any[]) { + const promise = unconsumedPromises.shift(); + if (promise) { + promise.resolve(createIterResult(args, false)); + } else { + unconsumedEvents.push(args); + } + } + + function errorHandler(err : any) { + finished = true; + + const toError = unconsumedPromises.shift(); + + if (toError) { + toError.reject(err); + } else { + // The next time we call next() + error = err; + } + + iterator.return(); + } +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts new file mode 100644 index 000000000..1b3d68e8f --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts @@ -0,0 +1,2279 @@ + +import { + ERR_BUFFER_OUT_OF_BOUNDS, + ERR_OUT_OF_RANGE, + ERR_INVALID_ARG_TYPE, + ERR_INVALID_ARG_VALUE, + ERR_INVALID_BUFFER_SIZE, + ERR_UNKNOWN_ENCODING, +} from './internal_errors'; + +import * as bufferUtil from './buffer'; + +import { + isAnyArrayBuffer, + isArrayBufferView, + isUint8Array, +} from './internal_types'; + +import { + normalizeEncoding, +} from './internal_utils'; + +import { + validateString, +} from './validators'; + +import * as internalUtil from './util'; +import { + InspectOptionsStylized, + inspect as utilInspect, +} from './internal_inspect'; + +// Temporary buffers to convert numbers. +const float32Array = new Float32Array(1); +const uInt8Float32Array = new Uint8Array(float32Array.buffer); +const float64Array = new Float64Array(1); +const uInt8Float64Array = new Uint8Array(float64Array.buffer); + +// Check endianness. +float32Array[0] = -1; // 0xBF800000 +// Either it is [0, 0, 128, 191] or [191, 128, 0, 0]. It is not possible to +// check this with `os.endianness()` because that is determined at compile time. +export const bigEndian = uInt8Float32Array[3] === 0; + +// Node.js caps it's max length at uint32_t max, we are very intentionally more +// conservative here, capping at int32_t max. +export const kMaxLength = 2147483647; +export const kStringMaxLength = 536870888; +const MAX_UINT32 = 2 ** 32; +const kIsBuffer = Symbol('kIsBuffer'); + +const customInspectSymbol = + typeof Symbol === "function" && typeof Symbol["for"] === "function" + ? Symbol["for"]("nodejs.util.inspect.custom") + : null; + +const INSPECT_MAX_BYTES = 50; + +export const constants = { + MAX_LENGTH: kMaxLength, + MAX_STRING_LENGTH: kStringMaxLength, +}; + +function createBuffer(length: number) : Buffer { + if (length > kMaxLength) { + throw new ERR_OUT_OF_RANGE('The given length is invalid', `0 to ${kMaxLength}`, length); + } + const buf = new Uint8Array(length); + Object.setPrototypeOf(buf, Buffer.prototype); + return buf as Buffer; +} + +type WithImplicitCoercion = | T | { valueOf(): T; }; +type StringLike = WithImplicitCoercion | { [Symbol.toPrimitive](hint: "string"): string; }; +type ArrayBufferLike = WithImplicitCoercion; +type BufferSource = StringLike|ArrayBufferLike|Uint8Array|ReadonlyArray; + +export interface Buffer extends Uint8Array { + readonly buffer: ArrayBuffer; + readonly parent: ArrayBuffer; + readonly byteOffset: number; + readonly length: number; + compare(target: Uint8Array, + targetStart?: number, + targetEnd?: number, + sourceStart?: number, + sourceEnd?: number): number; + copy(target: Uint8Array, + targetStart?: number, + sourceStart?: number, + sourceEnd?: number): number; + equals(other: Uint8Array): boolean; + fill(value: number, offset?: number, end?: number): this; + fill(value: string, encoding?: string): this; + fill(value: string, offset?: number, end?: number, encoding?: string): this; + fill(value: Uint8Array, offset?: number, end?: number): this; + includes(value: number, byteOffset?: number): boolean; + includes(value: string, encoding?: string): boolean; + includes(value: string, byteOffset?: number, encoding?: string): boolean; + includes(value: Uint8Array, byteOffset?: number): boolean; + indexOf(value: number, byteOffset?: number): number; + indexOf(value: string, encoding?: string): number; + indexOf(value: string, byteOffset?: number, encoding?: string): number; + indexOf(value: Uint8Array, byteOffset?: number): number; + lastIndexOf(value: number, byteOffset?: number): number; + lastIndexOf(value: string, encoding?: string): number; + lastIndexOf(value: string, byteOffset?: number, encoding?: string): number; + lastIndexOf(value: Uint8Array, byteOffset?: number): number; + readBigInt64BE(offset?: number) : bigint; + readBigInt64LE(offset?: number) : bigint; + readBigUInt64BE(offset?: number) : bigint; + readBigUInt64LE(offset?: number) : bigint; + readDoubleBE(offset?: number) : number; + readDoubleLE(offset?: number) : number; + readFloatBE(offset?: number) : number; + readFloatLE(offset?: number) : number; + readInt8(offset?: number) : number; + readInt16BE(offset?: number) : number; + readInt16LE(offset?: number) : number; + readInt32BE(offset?: number) : number; + readInt32LE(offset?: number) : number; + readIntBE(offset?: number, byteLength?: number) : number; + readIntLE(offset?: number, byteLength?: number) : number; + readUInt8(offset?: number) : number; + readUInt16BE(offset?: number) : number; + readUInt16LE(offset?: number) : number; + readUInt32BE(offset?: number) : number; + readUInt32LE(offset?: number) : number; + readUIntBE(offset?: number, byteLength?: number) : number; + readUIntLE(offset?: number, byteLength?: number) : number; + swap16(): this; + swap32(): this; + swap64(): this; + toJSON(): {type: 'Buffer', data: number[]}; + toString(encoding?: string, start?: number, end?: number): string; + write(string: string, encoding?: string): number; + write(string: string, offset?: number, encoding?: string): number; + write(string: string, offset?: number, length?: number, encoding?: string): number; + writeBigInt64BE(value: bigint, offset?: number): number; + writeBigInt64LE(value: bigint, offset?: number): number; + writeBigUInt64BE(value: bigint, offset?: number): number; + writeBigUInt64LE(value: bigint, offset?: number): number; + writeDoubleBE(value: number, offset?: number): number; + writeDoubleLE(value: number, offset?: number): number; + writeFloatBE(value: number, offset?: number): number; + writeFloatLE(value: number, offset?: number): number; + writeInt8(value: number, offset?: number): number; + writeInt16BE(value: number, offset?: number): number; + writeInt16LE(value: number, offset?: number): number; + writeInt32BE(value: number, offset?: number): number; + writeInt32LE(value: number, offset?: number): number; + writeIntBE(value: number, offset?: number, byteLength?: number): number; + writeIntLE(value: number, offset?: number, byteLength?: number): number; + writeUInt8(value: number, offset?: number): number; + writeUInt16BE(value: number, offset?: number): number; + writeUInt16LE(value: number, offset?: number): number; + writeUInt32BE(value: number, offset?: number): number; + writeUInt32LE(value: number, offset?: number): number; + writeUIntBE(value: number, offset?: number, byteLength?: number): number; + writeUIntLE(value: number, offset?: number, byteLength?: number): number; + new (array:Iterable): Buffer; + new (arrayBuffer: ArrayBufferLike, byteOffset?: number, length?: number): Buffer; + new (buffer: ArrayBufferView): Buffer; + new (size: number): Buffer; + new (string: string, encoding?: string): Buffer; +}; + +type FillValue = string|number|ArrayBufferView; + +export function Buffer(value: number) : Buffer; +export function Buffer(value: StringLike, encoding?: string) : Buffer; +export function Buffer(value: ArrayBufferLike, byteOffset?: number, length?: number) : Buffer; +export function Buffer(value: Uint8Array|ReadonlyArray, + byteOffset?: number, + length?: number) : Buffer; +export function Buffer(value: StringLike, + encoding?: string) : Buffer; +export function Buffer(value: number|BufferSource, + encodingOrOffset? : string|number, + length?: number) : Buffer { + if (typeof value === "number") { + if (typeof encodingOrOffset === "string") { + throw new ERR_INVALID_ARG_TYPE("string", "string", value); + } + return allocUnsafe(value); + } + + return _from(value, encodingOrOffset, length); +} + +Object.setPrototypeOf(Buffer.prototype, Uint8Array.prototype); +Object.setPrototypeOf(Buffer, Uint8Array); + +Object.defineProperties(Buffer, { + // By default, Node.js allocates Buffers from a shared slab allocation + // as a performance optimization. While this is fast, it's not ideal + // in our environment as it could potentially be used to leak buffer + // data across multiple requests. We always want our Buffer instances + // to be distinct allocations. To signal this, we keep our poolSize + // always set to 0. + poolSize: { + enumerable: true, + value: 0, + writable: false, + } +}); + +Object.defineProperties(Buffer.prototype, { + parent: { + enumerable: true, + get() { + if (!Buffer.isBuffer(this)) { + return void 0; + } + return this.buffer; + }, + }, + offset: { + enumerable: true, + get() { + if (!Buffer.isBuffer(this)) { + return void 0; + } + return this.byteOffset; + }, + }, + [kIsBuffer]: { + enumerable: false, + configurable: false, + value: true, + }, +}); + +function _from(value: BufferSource, + encodingOrOffset? : string|number, + length?: number) : Buffer { + if (typeof value === "string") { + return fromString(value, encodingOrOffset as string | undefined) as Buffer; + } + + if (typeof value === "object" && value != null) { + if (isAnyArrayBuffer(value)) { + return fromArrayBuffer(value as ArrayBufferLike, encodingOrOffset as number, length) as Buffer; + } + + const valueOf = value?.valueOf(); + if (valueOf != null && valueOf !== value && + (typeof valueOf === "string" || typeof valueOf === "object")) { + return _from(valueOf as BufferSource, encodingOrOffset, length); + } + + if ((value as any).length !== undefined || isAnyArrayBuffer((value as any).buffer)) { + if (typeof (value as any).length !== "number") { + return createBuffer(0); + } + + return fromArrayLike(value as any) as Buffer; + } + + if ((value as any).type === "Buffer" && Array.isArray((value as any).data)) { + return fromArrayLike((value as any).data) as Buffer; + } + + const toPrimitive = (value as any)[Symbol.toPrimitive]; + if (typeof toPrimitive === "function") { + const primitive = toPrimitive("string"); + if (typeof primitive === "string") { + return fromString(primitive, encodingOrOffset as string | undefined) as Buffer; + } + } + } + + throw new ERR_INVALID_ARG_TYPE( + "first argument", + [ + "string", + "Buffer", + "TypedArray", + "ArrayBuffer", + "SharedArrayBuffer", + "Array", + "Array-like Object" + ], + value, + ); +} + +function from(value: StringLike, + encoding?: string) : Buffer; +function from(value: ArrayBufferLike, + byteOffset?: number, + length?: number) : Buffer; +function from(value: Uint8Array|ReadonlyArray, + byteOffset?: number, + length?: number) : Buffer; +function from(value: BufferSource, encodingOrOffset?: string|number, length?: number) { + return _from(value, encodingOrOffset, length); +}; + +function fromString(string: StringLike, encoding?: string) { + if (typeof encoding !== "string" || encoding === "") { + encoding = "utf8"; + } + const normalizedEncoding = normalizeEncoding(encoding); + if (!Buffer.isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding); + } + + const ab = bufferUtil.decodeString(`${string}`, normalizedEncoding as string); + if (ab === undefined) { + throw new ERR_INVALID_ARG_VALUE('string', string, + `Unable to decode string using encoding ${encoding}`); + } + return fromArrayBuffer(ab, 0, ab.byteLength); +} + +function fromArrayLike(array: Uint8Array|ReadonlyArray) { + const u8 = Uint8Array.from(array); + return fromArrayBuffer(u8.buffer, u8.byteOffset, u8.byteLength); +} + +function fromArrayBuffer(obj: ArrayBufferLike, + byteOffset: number, + length?: number) { + // Convert byteOffset to integer + if (byteOffset === undefined) { + byteOffset = 0; + } else { + byteOffset = +byteOffset; + if (Number.isNaN(byteOffset)) { + byteOffset = 0; + } + } + + const maxLength = (obj as ArrayBuffer).byteLength - byteOffset; + + if (maxLength < 0) { + throw new ERR_BUFFER_OUT_OF_BOUNDS("offset"); + } + + if (length === undefined) { + length = maxLength; + } else { + // Convert length to non-negative integer. + length = +length; + if (length > 0) { + if (length > maxLength) { + throw new ERR_BUFFER_OUT_OF_BOUNDS("length"); + } + } else { + length = 0; + } + } + + const buffer = new Uint8Array(obj as ArrayBuffer, byteOffset, length); + Object.setPrototypeOf(buffer, Buffer.prototype); + return buffer; +} + +Buffer.from = from; + +function of(...args: number[]) { + const buf = Buffer.alloc(args.length); + for (let k = 0; k < args.length; k++) + buf[k] = args[k]!; + return buf; +} + +Buffer.of = of; + +function alloc(size: number, fill?: FillValue, encoding?: string) : Buffer { + validateNumber(size, "size"); + if (Number.isNaN(size)) { + throw new ERR_INVALID_ARG_VALUE.RangeError('size', size); + } + if (size >= kMaxLength) { + throw new ERR_OUT_OF_RANGE("size", `0 to ${kMaxLength}`, size); + } + + const buffer = createBuffer(size); + if (fill !== undefined) { + if (encoding !== undefined) { + validateString(encoding, 'encoding'); + } + return buffer.fill(fill as any, encoding); + } + return buffer; +} + +Buffer.alloc = alloc; + +function allocUnsafe(size: number) : Buffer { + return alloc(size); +} + +Buffer.allocUnsafe = allocUnsafe; +Buffer.allocUnsafeSlow = allocUnsafe; + +export function SlowBuffer(length: number) { + return alloc(+length); +} + +Object.setPrototypeOf(SlowBuffer.prototype, Uint8Array.prototype); +Object.setPrototypeOf(SlowBuffer, Uint8Array); + +Buffer.isBuffer = function isBuffer(b: unknown) { + return b != null && (b as any)[kIsBuffer] && b !== Buffer.prototype; +}; + +export function compare(a: Buffer|Uint8Array, b: Buffer|Uint8Array) { + if (isInstance(a, Uint8Array)) { + const buf = a as Uint8Array; + a = fromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength); + } + if (isInstance(b, Uint8Array)) { + const buf = b as Uint8Array; + b = fromArrayBuffer(buf.buffer, buf.byteOffset, buf.byteLength); + } + if (!Buffer.isBuffer(a)) { + throw new ERR_INVALID_ARG_TYPE('a', ['Buffer', 'Uint8Array'], typeof a); + } + if (!Buffer.isBuffer(b)) { + throw new ERR_INVALID_ARG_TYPE('b', ['Buffer', 'Uint8Array'], typeof b); + } + if (a === b) return 0; + + return bufferUtil.compare(a, b); +} + +Buffer.compare = compare; + +export function isEncoding(encoding: unknown) { + return typeof encoding === "string" && + encoding.length !== 0 && + normalizeEncoding(encoding) !== undefined; +} + +Buffer.isEncoding = isEncoding; + +Buffer.concat = function concat(list: (Buffer|Uint8Array)[], length?: number) { + if (!Array.isArray(list)) { + throw new ERR_INVALID_ARG_TYPE("list", "(Buffer|Uint8Array)[]", list); + } + + if (list.length === 0) return alloc(0); + + if (length === undefined) { + length = 0; + for (let i = 0; i < list.length; i++) { + if (list[i]!.length !== undefined) { + length += list[i]!.length; + } else { + throw new ERR_INVALID_ARG_TYPE('list', '(Buffer|Uint8Array)[]', list[i]); + } + } + } + validateOffset(length, "length"); + + const ab = bufferUtil.concat(list, length as number); + return fromArrayBuffer(ab, 0, length); +}; + +function base64ByteLength(str: string) { + let len = str.length; + if (str.charCodeAt(len - 1) === 0x3d) { + len--; + } if (len > 1 && str.charCodeAt(len - 1) === 0x3d) + len--; + + // Base64 ratio: 3/4 + return (len * 3) >>> 2; +} + +function byteLength(string: string|ArrayBufferView|ArrayBuffer|SharedArrayBuffer, + encoding?: string) { + if (typeof string !== "string") { + if (isArrayBufferView(string) || isAnyArrayBuffer(string)) { + return string.byteLength; + } + + throw new ERR_INVALID_ARG_TYPE("string", ["string", "Buffer", "ArrayBuffer"], string); + } + + string = `${string}`; + let normalizedEncoding = normalizeEncoding(encoding); + if (!Buffer.isEncoding(normalizedEncoding)) { + normalizedEncoding = "utf8"; + } + + switch (normalizedEncoding) { + case 'ascii': + // Fall through + case 'latin1': + return (string as string).length; + case 'utf16le': + return (string as string).length * 2; + case 'base64': + // Fall through + case 'base64url': + return base64ByteLength(string as string); + case 'hex': + return (string as string).length >>> 1; + case 'utf8': + // Fall-through + default: + return bufferUtil.byteLength(string as string, normalizedEncoding as string); + } +} + +Buffer.byteLength = byteLength; + +Buffer.prototype.swap16 = function swap16() { + const len = this.length; + if (len % 2 !== 0) { + throw new ERR_INVALID_BUFFER_SIZE(16); + } + bufferUtil.swap(this, 16); + return this; +}; + +Buffer.prototype.swap32 = function swap32() { + const len = this.length; + if (len % 4 !== 0) { + throw new ERR_INVALID_BUFFER_SIZE(32); + } + bufferUtil.swap(this, 32); + return this; +}; + +Buffer.prototype.swap64 = function swap64() { + const len = this.length; + if (len % 8 !== 0) { + throw new ERR_INVALID_BUFFER_SIZE(64); + } + bufferUtil.swap(this, 64); + return this; +}; + +Buffer.prototype.toString = function toString( + encoding?: string, + start?: number, + end?: number) { + if (arguments.length === 0) { + return bufferUtil.toString(this, 0, this.length, "utf8"); + } + + const len = this.length; + + if (start === undefined || start <= 0) { + start = 0; + } else if (start >= len) { + return ""; + } else { + start |= 0; + } + + if (end === undefined || end > len) { + end = len; + } else { + end |= 0; + } + + if ((end as number) <= start) { + return ""; + } + + const normalizedEncoding = normalizeEncoding(`${encoding}`); + if (!Buffer.isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding as string); + } + + return bufferUtil.toString(this, start as number, end as number, normalizedEncoding as string); +}; + +Buffer.prototype.toLocaleString = Buffer.prototype.toString; + +Buffer.prototype.equals = function equals(b: Buffer|Uint8Array) { + return compare(this, b) === 0; +}; + +Buffer.prototype.inspect = function inspect(_recurseTimes: number, ctx: InspectOptionsStylized) { + let str = ""; + const max = INSPECT_MAX_BYTES; + str = this.toString("hex", 0, max).replace(/(.{2})/g, "$1 ").trim(); + const remaining = this.length - max; + if (remaining > 0) { + str += ` ... ${remaining} more byte${remaining > 1 ? 's' : ''}`; + } + // Inspect special properties as well, if possible. + if (ctx) { + let extras = false; + const filter = ctx.showHidden ? internalUtil.ALL_PROPERTIES : internalUtil.ONLY_ENUMERABLE; + const obj: Record = { __proto__: null }; + internalUtil.getOwnNonIndexProperties(this, filter).forEach( + (key) => { + extras = true; + obj[key] = this[key]; + }); + if (extras) { + if (this.length !== 0) + str += ', '; + // '[Object: null prototype] {'.length === 26 + // This is guarded with a test. + str += utilInspect(obj, { + ...ctx, + breakLength: Infinity, + compact: true, + }).slice(27, -2); + } + } + return ""; +}; + +if (customInspectSymbol) { + Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect; +} + +Buffer.prototype.compare = function compare( + target: Buffer|Uint8Array, + start?: number, + end?: number, + thisStart?: number, + thisEnd?: number, +) { + if (isInstance(target, Uint8Array)) { + target = fromArrayBuffer(target.buffer, target.byteOffset, target.byteLength); + } + if (!Buffer.isBuffer(target)) { + throw new ERR_INVALID_ARG_TYPE("target", ["Buffer", "Uint8Array"], target); + } + + if (start === undefined) { + start = 0; + } else { + validateOffset(start, "targetStart", 0, kMaxLength); + } + + if (end === undefined) { + end = target.length; + } else { + validateOffset(end, "targetEnd", 0, target.length); + } + + if (thisStart === undefined) { + thisStart = 0; + } else { + validateOffset(thisStart as number, "sourceStart", 0, kMaxLength); + } + + if (thisEnd === undefined) { + thisEnd = this.length; + } else { + validateOffset(thisEnd as number, "sourceEnd", 0, this.length); + } + + return bufferUtil.compare(this, target, { + aStart: thisStart as number, + aEnd: thisEnd as number, + bStart: start as number, + bEnd: end as number, + }); +}; + +function includes( + this: Buffer, + val: string|number|Buffer|Uint8Array, + byteOffset?: number, + encoding?: string) { + return this.indexOf(val as any, byteOffset, encoding) !== -1; +} + +Buffer.prototype.includes = includes; + + +// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`, +// OR the last index of `val` in `buffer` at offset <= `byteOffset`. +// +// Arguments: +// - buffer - a Buffer to search +// - val - a string, Buffer, or number +// - byteOffset - an index into `buffer`; will be clamped to an int32 +// - encoding - an optional encoding, relevant if val is a string +// - dir - true for indexOf, false for lastIndexOf +function bidirectionalIndexOf( + buffer: Uint8Array, + val: string|number|Buffer|Uint8Array, + byteOffset: number|string|undefined, + encoding: string|undefined, + dir: boolean|undefined) { + + if (Buffer.isBuffer(val) && !isUint8Array(val)) { + throw new ERR_INVALID_ARG_TYPE('val', ['string', 'number', 'Buffer', 'Uint8Array'], val); + } + + if (typeof byteOffset === 'string') { + encoding = byteOffset; + byteOffset = undefined; + } else if (byteOffset as number > 0x7fffffff) { + byteOffset = 0x7fffffff; + } else if (byteOffset as number < -0x80000000) { + byteOffset = -0x80000000; + } + // Coerce to Number. Values like null and [] become 0. + byteOffset = +(byteOffset as number); + // If the offset is undefined, "foo", {}, coerces to NaN, search whole buffer. + if (Number.isNaN(byteOffset)) { + byteOffset = dir ? 0 : (buffer.length || buffer.byteLength); + } + dir = !!dir; // Cast to bool. + + if (typeof val === 'number') { + val = (val >>> 0) & 0xff; + if (dir) { + return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset); + } else { + return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset); + } + } + + if (typeof val !== 'string' && !isUint8Array(val) && !Buffer.isBuffer(val)) { + throw new ERR_INVALID_ARG_TYPE('value', ['number', 'string', 'Buffer', 'Uint8Array'], val); + } + + let normalizedEncoding = normalizeEncoding(encoding); + if (!Buffer.isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding as string); + } + + const result = bufferUtil.indexOf(buffer, val, byteOffset, normalizedEncoding, dir); + return result == null ? -1 : result; +} + +Buffer.prototype.indexOf = function indexOf( + val: string|number|Buffer|Uint8Array, + byteOffset?: number|string, + encoding?: string) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, true); +}; + +Buffer.prototype.lastIndexOf = function lastIndexOf( + val: string|number|Buffer|Uint8Array, + byteOffset?: number|string, + encoding?: string) { + return bidirectionalIndexOf(this, val, byteOffset, encoding, false); +}; + +Buffer.prototype.asciiSlice = function asciiSlice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'ascii'); +}; + +Buffer.prototype.base64Slice = function base64Slice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'base64'); +}; + +Buffer.prototype.base64urlSlice = function base64urlSlice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'base64url'); +}; + +Buffer.prototype.hexSlice = function hexSlice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'hex'); +}; + +Buffer.prototype.latin1Slice = function latin1Slice(offset: number, + length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'latin1'); +}; + +Buffer.prototype.ucs2Slice = function ucs2Slice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'utf16le'); +}; + +Buffer.prototype.utf8Slice = function utf8Slice(offset: number, length: number) { + validateOffset(offset, "offset", 0, this.length); + validateOffset(length, "length", 0, this.length - offset); + return bufferUtil.toString(this, offset, offset + length, 'utf8'); +}; + +Buffer.prototype.asciiWrite = function asciiWrite(string: StringLike, + offset?: number, + length?: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'ascii'); +}; + +Buffer.prototype.base64Write = function base64Write(string: StringLike, + offset?: number, + length?: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'base64'); +}; + +Buffer.prototype.base64urlWrite = function base64urlWrite(string: StringLike, + offset?: number, + length?: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'base64url'); +}; + +Buffer.prototype.hexWrite = function hexWrite(string: StringLike, + offset: number, + length: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'hex'); +}; + +Buffer.prototype.latin1Write = function latin1Write(string: StringLike, + offset: number, + length: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'latin1'); +}; + +Buffer.prototype.ucs2Write = function ucs2Write(string: StringLike, + offset: number, + length: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'utf16le'); +}; + +Buffer.prototype.utf8Write = function utf8Write(string: StringLike, + offset: number, + length: number) { + offset ??= 0; + length ??= this.length; + validateOffset(offset as number, "offset", 0, this.length); + validateOffset(length as number, "length", 0, this.length - offset); + return bufferUtil.write(this, `${string}`, offset as number, length as number, 'utf8'); +}; + +Buffer.prototype.write = function write(string: StringLike, + offset?: number | string, + length?: number | string, + encoding?: string) { + string = `${string}`; + if (offset === undefined) { + // Buffer#write(string) + return bufferUtil.write(this, string as string, 0, this.length, "utf8"); + } + + if (length === undefined && typeof offset === 'string') { + // Buffer#write(string, encoding) + encoding = offset; + length = this.length; + offset = 0; + } else { + // Buffer#write(string, offset[, length][, encoding]) + validateOffset(offset as number, 'offset', 0, this.length); + + const remaining = this.length - (offset as number); + + if (length === undefined) { + length = remaining; + } else if (typeof length === 'string') { + encoding = length; + length = remaining; + } else { + validateOffset(length, 'length', 0, this.length); + if (length > remaining) { + length = remaining; + } + } + } + + if (!encoding) { + return bufferUtil.write(this, string as string, offset as number, length as number, "utf8"); + } + + const normalizedEncoding = normalizeEncoding(encoding); + if (!Buffer.isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding as string); + } + + return bufferUtil.write(this, string as string, offset as number, length as number, + normalizedEncoding as string); +}; + +Buffer.prototype.toJSON = function toJSON() { + return { + type: "Buffer", + data: Array.prototype.slice.call(this._arr || this, 0), + }; +}; + +Buffer.prototype.slice = function slice(start: number, end?: number) { + const len = this.length; + start = ~~start; + end = end === void 0 ? len : ~~end; + if (start < 0) { + start += len; + if (start < 0) { + start = 0; + } + } else if (start > len) { + start = len; + } + if (end === undefined) { + end = this.byteLength; + } else if (end < 0) { + end += len; + if (end < 0) { + end = 0; + } + } else if (end > len) { + end = len; + } + if ((end as number) < start) { + end = start; + } + const newBuf = this.subarray(start, end); + Object.setPrototypeOf(newBuf, Buffer.prototype); + return newBuf; +}; + +Buffer.prototype.readUintLE = Buffer.prototype.readUIntLE = function readUIntLE( + offset: number, + byteLength: number) { + if (offset === undefined) { + throw new ERR_INVALID_ARG_TYPE("offset", "number", offset); + } + switch (byteLength) { + case 1: return this.readUInt8(offset); + case 2: return this.readUInt16LE(offset); + case 3: return readUInt24LE(this, offset); + case 4: return this.readUInt32LE(offset); + case 5: return readUInt40LE(this, offset); + case 6: return readUInt48LE(this, offset); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.readUintBE = Buffer.prototype.readUIntBE = function readUIntBE( + offset: number, + byteLength: number) { + if (offset === undefined) { + throw new ERR_INVALID_ARG_TYPE("offset", "number", offset); + } + switch (byteLength) { + case 1: return this.readUInt8(offset); + case 2: return this.readUInt16BE(offset); + case 3: return readUInt24BE(this, offset); + case 4: return this.readUInt32BE(offset); + case 5: return readUInt40BE(this, offset); + case 6: return readUInt48BE(this, offset); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.readUint8 = Buffer.prototype.readUInt8 = function readUInt8( + offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const val = this[offset]; + if (val === undefined) { + boundsError(offset, this.length - 1); + } + + return val; +}; + +Buffer.prototype.readUint16BE = Buffer.prototype.readUInt16BE = readUInt16BE; + +Buffer.prototype.readUint16LE = + Buffer.prototype.readUInt16LE = + function readUInt16LE(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 1]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 2); + } + + return first + last * 2 ** 8; + }; + +Buffer.prototype.readUint32LE = + Buffer.prototype.readUInt32LE = + function readUInt32LE(this: Buffer, offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 4); + } + + return first + + this[++offset]! * 2 ** 8 + + this[++offset]! * 2 ** 16 + + last * 2 ** 24; + }; + +Buffer.prototype.readUint32BE = Buffer.prototype.readUInt32BE = readUInt32BE; + +Buffer.prototype.readBigUint64LE = + Buffer.prototype.readBigUInt64LE = + function readBigUInt64LE(this: Buffer, offset: number = 0) { + offset = offset >>> 0; + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8); + } + const lo = first + this[++offset]! * 2 ** 8 + + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 24; + const hi = this[++offset]! + this[++offset]! * 2 ** 8 + + this[++offset]! * 2 ** 16 + last * 2 ** 24; + return BigInt(lo) + (BigInt(hi) << BigInt(32)); + }; + +Buffer.prototype.readBigUint64BE = + Buffer.prototype.readBigUInt64BE = + function readBigUInt64BE(this: Buffer, offset: number = 0) { + offset = offset >>> 0; + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8); + } + const hi = first * 2 ** 24 + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 8 + this[++offset]!; + const lo = this[++offset]! * 2 ** 24 + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 8 + last; + return (BigInt(hi) << BigInt(32)) + BigInt(lo); + }; + +Buffer.prototype.readIntLE = function readIntLE( + offset: number, + byteLength: number, +) { + if (offset === undefined) { + throw new ERR_INVALID_ARG_TYPE("offset", "number", offset); + } + switch (byteLength) { + case 1: return this.readInt8(offset); + case 2: return this.readInt16LE(offset); + case 3: return readInt24LE(this, offset); + case 4: return this.readInt32LE(offset); + case 5: return readInt40LE(this, offset); + case 6: return readInt48LE(this, offset); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.readIntBE = function readIntBE( + offset: number, + byteLength: number) { + if (offset === undefined) { + throw new ERR_INVALID_ARG_TYPE("offset", "number", offset); + } + switch (byteLength) { + case 1: return this.readInt8(offset); + case 2: return this.readInt16BE(offset); + case 3: return readInt24BE(this, offset); + case 4: return this.readInt32BE(offset); + case 5: return readInt40BE(this, offset); + case 6: return readInt48BE(this, offset); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.readInt8 = function readInt8(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const val = this[offset]; + if (val === undefined) { + boundsError(offset, this.length - 1); + } + + return val | (val & 2 ** 7) * 0x1fffffe; +}; + +Buffer.prototype.readInt16LE = function readInt16LE(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 1]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 2); + } + + const val = first + last * 2 ** 8; + return val | (val & 2 ** 15) * 0x1fffe; +}; + +Buffer.prototype.readInt16BE = function readInt16BE(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 1]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 2); + } + + const val = first * 2 ** 8 + last; + return val | (val & 2 ** 15) * 0x1fffe; +}; + +Buffer.prototype.readInt32LE = function readInt32LE(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 4); + } + + return first + + this[++offset] * 2 ** 8 + + this[++offset] * 2 ** 16 + + (last << 24); // Overflow +}; + +Buffer.prototype.readInt32BE = function readInt32BE(offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 4); + } + + return (first << 24) + // Overflow + this[++offset] * 2 ** 16 + + this[++offset] * 2 ** 8 + + last; +}; + +Buffer.prototype.readBigInt64LE = function readBigInt64LE(this: Buffer, offset: number = 0) { + offset = offset >>> 0; + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8); + } + const val = this[offset + 4]! + this[offset + 5]! * 2 ** 8 + + this[offset + 6]! * 2 ** 16 + (last << 24); + return (BigInt(val) << BigInt(32)) + + BigInt( + first + this[++offset]! * 2 ** 8 + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 24, + ); +}; + +Buffer.prototype.readBigInt64BE = function readBigInt64BE(this: Buffer, offset: number = 0) { + offset = offset >>> 0; + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 8); + } + const val = (first << 24) + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 8 + this[++offset]!; + return (BigInt(val) << BigInt(32)) + + BigInt( + this[++offset]! * 2 ** 24 + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 8 + last, + ); +}; + +Buffer.prototype.readFloatLE = function readFloatLE(offset: number = 0) { + return bigEndian + ? readFloatBackwards(this, offset) + : readFloatForwards(this, offset); +}; + +Buffer.prototype.readFloatBE = function readFloatBE(offset: number = 0) { + return bigEndian + ? readFloatForwards(this, offset) + : readFloatBackwards(this, offset); +}; + +Buffer.prototype.readDoubleLE = function readDoubleLE(offset: number = 0) { + return bigEndian + ? readDoubleBackwards(this, offset) + : readDoubleForwards(this, offset); +}; + +Buffer.prototype.readDoubleBE = function readDoubleBE(offset: number = 0) { + return bigEndian + ? readDoubleForwards(this, offset) + : readDoubleBackwards(this, offset); +}; + +Buffer.prototype.writeUintLE = + Buffer.prototype.writeUIntLE = + function writeUIntLE(value: number, offset: number, byteLength: number) { + switch (byteLength) { + case 1: return writeU_Int8(this, value, offset, 0, 0xff); + case 2: return writeU_Int16LE(this, value, offset, 0, 0xffff); + case 3: return writeU_Int24LE(this, value, offset, 0, 0xffffff); + case 4: return writeU_Int32LE(this, value, offset, 0, 0xffffffff); + case 5: return writeU_Int40LE(this, value, offset, 0, 0xffffffffff); + case 6: return writeU_Int48LE(this, value, offset, 0, 0xffffffffffff); + default: + boundsError(byteLength, 6, "byteLength"); + } + }; + +Buffer.prototype.writeUintBE = + Buffer.prototype.writeUIntBE = + function writeUIntBE(value: number, offset: number, byteLength: number) { + switch (byteLength) { + case 1: return writeU_Int8(this, value, offset, 0, 0xff); + case 2: return writeU_Int16BE(this, value, offset, 0, 0xffff); + case 3: return writeU_Int24BE(this, value, offset, 0, 0xffffff); + case 4: return writeU_Int32BE(this, value, offset, 0, 0xffffffff); + case 5: return writeU_Int40BE(this, value, offset, 0, 0xffffffffff); + case 6: return writeU_Int48BE(this, value, offset, 0, 0xffffffffffff); + default: + boundsError(byteLength, 6, "byteLength"); + } + }; + +Buffer.prototype.writeUint8 = Buffer.prototype.writeUInt8 = function writeUInt8( + value: number, + offset: number = 0, +) { + return writeU_Int8(this, value, offset, 0, 0xff); +}; + +Buffer.prototype.writeUint16LE = + Buffer.prototype.writeUInt16LE = + function writeUInt16LE(value: number, offset: number = 0) { + return writeU_Int16LE(this, value, offset, 0, 0xffff); + }; + +Buffer.prototype.writeUint16BE = + Buffer.prototype.writeUInt16BE = + function writeUInt16BE(value: number, offset: number = 0) { + return writeU_Int16BE(this, value, offset, 0, 0xffff); + }; + +Buffer.prototype.writeUint32LE = + Buffer.prototype.writeUInt32LE = + function writeUInt32LE(value: number, offset: number = 0) { + return _writeUInt32LE(this, value, offset, 0, 0xffffffff); + }; + +Buffer.prototype.writeUint32BE = + Buffer.prototype.writeUInt32BE = + function writeUInt32BE(value: number, offset: number = 0) { + return _writeUInt32BE(this, value, offset, 0, 0xffffffff); + }; + +function wrtBigUInt64LE( + buf: Buffer, + value: bigint, + offset: number, + min: bigint, + max: bigint) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + lo = lo >> 8; + buf[offset++] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + hi = hi >> 8; + buf[offset++] = hi; + return offset; +} + +function wrtBigUInt64BE( + buf: Buffer, + value: bigint, + offset: number, + min: bigint, + max: bigint) { + checkIntBI(value, min, max, buf, offset, 7); + let lo = Number(value & BigInt(4294967295)); + buf[offset + 7] = lo; + lo = lo >> 8; + buf[offset + 6] = lo; + lo = lo >> 8; + buf[offset + 5] = lo; + lo = lo >> 8; + buf[offset + 4] = lo; + let hi = Number(value >> BigInt(32) & BigInt(4294967295)); + buf[offset + 3] = hi; + hi = hi >> 8; + buf[offset + 2] = hi; + hi = hi >> 8; + buf[offset + 1] = hi; + hi = hi >> 8; + buf[offset] = hi; + return offset + 8; +} + +Buffer.prototype.writeBigUint64LE = + Buffer.prototype.writeBigUInt64LE = + function writeBigUInt64LE(this: Buffer, value: bigint, offset: number = 0) { + return wrtBigUInt64LE(this, value, offset, 0n, 0xffffffffffffffffn); + }; + +Buffer.prototype.writeBigUint64BE = + Buffer.prototype.writeBigUInt64BE = + function writeBigUInt64BE(this: Buffer, value: bigint, offset: number = 0) { + return wrtBigUInt64BE(this, value, offset, 0n, 0xffffffffffffffffn); + }; + +Buffer.prototype.writeIntLE = function writeIntLE( + value: number, + offset: number, + byteLength: number) { + switch(byteLength) { + case 1: return writeU_Int8(this, value, offset, -0x80, 0x7f); + case 2: return writeU_Int16LE(this, value, offset, -0x8000, 0x7fff); + case 3: return writeU_Int24LE(this, value, offset, -0x800000, 0x7fffff); + case 4: return writeU_Int32LE(this, value, offset, -0x80000000, 0x7fffffff); + case 5: return writeU_Int40LE(this, value, offset, -0x8000000000, 0x7fffffffff); + case 6: return writeU_Int48LE(this, value, offset, -0x800000000000, 0x7fffffffffff); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.writeIntBE = function writeIntBE( + value: number, + offset: number, + byteLength: number) { + switch(byteLength) { + case 1: return writeU_Int8(this, value, offset, -0x80, 0x7f); + case 2: return writeU_Int16BE(this, value, offset, -0x8000, 0x7fff); + case 3: return writeU_Int24BE(this, value, offset, -0x800000, 0x7fffff); + case 4: return writeU_Int32BE(this, value, offset, -0x80000000, 0x7fffffff); + case 5: return writeU_Int40BE(this, value, offset, -0x8000000000, 0x7fffffffff); + case 6: return writeU_Int48BE(this, value, offset, -0x800000000000, 0x7fffffffffff); + default: + boundsError(byteLength, 6, "byteLength"); + } +}; + +Buffer.prototype.writeInt8 = function writeInt8(value: number, offset: number = 0) { + return writeU_Int8(this, value, offset, -0x80, 0x7f); +}; + +Buffer.prototype.writeInt16LE = function writeInt16LE(value: number, offset: number = 0) { + return writeU_Int16LE(this, value, offset, -0x8000, 0x7fff); +}; + +Buffer.prototype.writeInt16BE = function writeInt16BE( + value: number, + offset: number = 0, +) { + return writeU_Int16BE(this, value, offset, -0x8000, 0x7fff); +}; + +Buffer.prototype.writeInt32LE = function writeInt32LE(value: number, offset: number = 0) { + return writeU_Int32LE(this, value, offset, -0x80000000, 0x7fffffff); +}; + +Buffer.prototype.writeInt32BE = function writeInt32BE(value: number, offset: number = 0) { + return writeU_Int32BE(this, value, offset, -0x80000000, 0x7fffffff); +}; + +Buffer.prototype.writeBigInt64LE = + function writeBigInt64LE(this: Buffer, value: bigint, offset: number = 0) { + return wrtBigUInt64LE(this, value, offset, -0x8000000000000000n, 0x7fffffffffffffffn); + }; + +Buffer.prototype.writeBigInt64BE = + function writeBigInt64BE(this: Buffer, value: bigint, offset: number = 0) { + return wrtBigUInt64BE(this, value, offset, -0x8000000000000000n, 0x7fffffffffffffffn); + }; + +Buffer.prototype.writeFloatLE = function writeFloatLE( + value: number, + offset: number, +) { + return bigEndian + ? writeFloatBackwards(this, value, offset) + : writeFloatForwards(this, value, offset); +}; + +Buffer.prototype.writeFloatBE = function writeFloatBE( + value: number, + offset: number, +) { + return bigEndian + ? writeFloatForwards(this, value, offset) + : writeFloatBackwards(this, value, offset); +}; + +Buffer.prototype.writeDoubleLE = function writeDoubleLE( + value: number, + offset: number, +) { + return bigEndian + ? writeDoubleBackwards(this, value, offset) + : writeDoubleForwards(this, value, offset); +}; + +Buffer.prototype.writeDoubleBE = function writeDoubleBE( + value: number, + offset: number, +) { + return bigEndian + ? writeDoubleForwards(this, value, offset) + : writeDoubleBackwards(this, value, offset); +}; + +Buffer.prototype.copy = function copy( + target: Buffer|Uint8Array, + targetStart?: number, + sourceStart?: number, + sourceEnd?: number, +) { + if (!isUint8Array(target)) { + throw new ERR_INVALID_ARG_TYPE("target", ["Buffer", "Uint8Array"], target); + } + + targetStart = toInteger(targetStart, 0); + if ((targetStart as number) < 0) { + throw new ERR_OUT_OF_RANGE("targetStart", ">= 0", targetStart); + } + + sourceStart = toInteger(sourceStart, 0); + if ((sourceStart as number) < 0) { + throw new ERR_OUT_OF_RANGE("sourceStart", ">= 0", sourceStart); + } + if ((sourceStart as number) >= MAX_UINT32) { + throw new ERR_OUT_OF_RANGE("sourceStart", `< ${MAX_UINT32}`, sourceStart); + } + + sourceEnd ??= this.length; + sourceEnd = toInteger(sourceEnd, 0); + if ((sourceEnd as number) < 0) { + throw new ERR_OUT_OF_RANGE("sourceEnd", ">= 0", sourceEnd); + } + if ((sourceEnd as number) >= MAX_UINT32) { + throw new ERR_OUT_OF_RANGE("sourceEnd", `< ${MAX_UINT32}`, sourceEnd); + } + + if ((targetStart as number) >= target.length) { + return 0; + } + + if ((sourceEnd as number) > 0 && (sourceEnd as number) < (sourceStart as number)) { + sourceEnd = sourceStart; + } + if (sourceEnd === sourceStart) { + return 0; + } + if (target.length === 0 || this.length === 0) { + return 0; + } + + if ((sourceEnd as number) > this.length) { + sourceEnd = this.length; + } + + if (target.length - (targetStart as number) < (sourceEnd as number) - (sourceStart as number)) { + sourceEnd = target.length - (targetStart as number) + (sourceStart as number); + } + + const len = (sourceEnd as number) - (sourceStart as number); + if (this === target) { + this.copyWithin(targetStart as number, sourceStart as number, sourceEnd as number); + } else { + const sub = this.subarray(sourceStart, sourceEnd); + target.set(sub, targetStart); + } + + return len; +}; + +Buffer.prototype.fill = function fill( + val: string|number|Buffer|Uint8Array, + start?: number|string, + end?: number, + encoding?: string) { + let normalizedEncoding : string | undefined; + if (typeof val === "string") { + if (typeof start === "string") { + encoding = start; + start = 0; + end = this.length; + } else if (typeof end === "string") { + encoding = end; + end = this.length; + } + normalizedEncoding = normalizeEncoding(encoding); + if (!Buffer.isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding as string); + } + if (val.length === 1) { + const code = val.charCodeAt(0); + if (encoding === "utf8" && code < 128 || encoding === "latin1") { + val = code; + } + } + } + + if (start !== undefined) { + validateNumber(start, 'start'); + } + if (end !== undefined) { + validateNumber(end, 'end'); + } + + if ((end as number) < 0 || (end as number) > this.length) { + throw new ERR_OUT_OF_RANGE('end', `0 to ${this.length}`, end); + } + if ((start as number) < 0 || this.length < (start as number) || this.length < (end as number)) { + throw new ERR_OUT_OF_RANGE('start', '0 to end', start); + } + if ((end as number) <= (start as number)) { + return this; + } + start = (start as number) >>> 0; + end = end === void 0 ? this.length : end >>> 0; + + if (typeof val === "string") { + bufferUtil.fillImpl(this, + val as string, + start as number, + end as number, + normalizedEncoding); + return this; + } + + if (isArrayBufferView(val)) { + if ((val as ArrayBufferView).byteLength === 0) { + throw new ERR_INVALID_ARG_VALUE('value', 'zero-length'); + } + bufferUtil.fillImpl(this, val as ArrayBufferView, start as number, end as number); + return this; + } + + if (typeof val === "number") { + val = val & 255; + } else if (typeof val === "boolean") { + val = Number(val); + } + val ??= 0; + + Uint8Array.prototype.fill.call(this, val as number, start, end); + + return this; +}; + +function checkBounds( + buf: Buffer, + offset: number, + byteLength2: number) { + validateOffset(offset, "offset", 0, buf.length); + if (buf[offset] === undefined || buf[offset + byteLength2] === undefined) { + boundsError(offset, buf.length - (byteLength2 + 1)); + } +} + +function checkIntBI( + value: bigint|number, + min: bigint|number, + max: bigint|number, + buf: Buffer, + offset: number, + byteLength2: number) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength2 > 3) { + if (min === 0 || min === BigInt(0)) { + range = `>= 0${n} and < 2${n} ** ${(byteLength2 + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength2 + 1) * 8 - 1}${n}) and < 2 ** ${ + (byteLength2 + 1) * 8 - 1 + }${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength2); +} + +export function isInstance(obj: unknown, type: Function) { + return obj instanceof type || + obj != null && obj.constructor != null && + obj.constructor.name != null && obj.constructor.name === type.name; +} + + +function readUInt48LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 5]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 6); + } + + return first + + buf[++offset]! * 2 ** 8 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 24 + + (buf[++offset]! + last * 2 ** 8) * 2 ** 32; +} + +function readUInt40LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 4]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 5); + } + + return first + + buf[++offset]! * 2 ** 8 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 24 + + last * 2 ** 32; +} + +function readUInt24LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 2]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 3); + } + + return first + buf[++offset]! * 2 ** 8 + last * 2 ** 16; +} + +function readUInt48BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 5]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 6); + } + + return (first * 2 ** 8 + buf[++offset]!) * 2 ** 32 + + buf[++offset]! * 2 ** 24 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 8 + + last; +} + +function readUInt40BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 4]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 5); + } + + return first * 2 ** 32 + + buf[++offset]! * 2 ** 24 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 8 + + last; +} + +function readUInt24BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 2]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 3); + } + + return first * 2 ** 16 + buf[++offset]! * 2 ** 8 + last; +} + +function readUInt16BE(this: Buffer, offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 1]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 2); + } + + return first * 2 ** 8 + last; +} + +function readUInt32BE(this: Buffer, offset: number = 0) { + validateOffset(offset, "offset", 0, this.length); + const first = this[offset]; + const last = this[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, this.length - 4); + } + + return first * 2 ** 24 + + this[++offset]! * 2 ** 16 + + this[++offset]! * 2 ** 8 + + last; +} + +function readDoubleBackwards(buffer: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buffer.length); + const first = buffer[offset]; + const last = buffer[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, buffer.length - 8); + } + + uInt8Float64Array[7] = first; + uInt8Float64Array[6] = buffer[++offset]!; + uInt8Float64Array[5] = buffer[++offset]!; + uInt8Float64Array[4] = buffer[++offset]!; + uInt8Float64Array[3] = buffer[++offset]!; + uInt8Float64Array[2] = buffer[++offset]!; + uInt8Float64Array[1] = buffer[++offset]!; + uInt8Float64Array[0] = last; + return float64Array[0]; +} + +function readDoubleForwards(buffer: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buffer.length); + const first = buffer[offset]; + const last = buffer[offset + 7]; + if (first === undefined || last === undefined) { + boundsError(offset, buffer.length - 8); + } + + uInt8Float64Array[0] = first; + uInt8Float64Array[1] = buffer[++offset]!; + uInt8Float64Array[2] = buffer[++offset]!; + uInt8Float64Array[3] = buffer[++offset]!; + uInt8Float64Array[4] = buffer[++offset]!; + uInt8Float64Array[5] = buffer[++offset]!; + uInt8Float64Array[6] = buffer[++offset]!; + uInt8Float64Array[7] = last; + return float64Array[0]; +} + +function writeDoubleForwards(buffer: Buffer|Uint8Array, val: number, offset: number = 0) { + val = +val; + checkBounds(buffer as any, offset, 7); + + float64Array[0] = val; + buffer[offset++] = uInt8Float64Array[0]!; + buffer[offset++] = uInt8Float64Array[1]!; + buffer[offset++] = uInt8Float64Array[2]!; + buffer[offset++] = uInt8Float64Array[3]!; + buffer[offset++] = uInt8Float64Array[4]!; + buffer[offset++] = uInt8Float64Array[5]!; + buffer[offset++] = uInt8Float64Array[6]!; + buffer[offset++] = uInt8Float64Array[7]!; + return offset; +} + +function writeDoubleBackwards(buffer: Buffer|Uint8Array, val: number, offset: number = 0) { + val = +val; + checkBounds(buffer as any, offset, 7); + + float64Array[0] = val; + buffer[offset++] = uInt8Float64Array[7]!; + buffer[offset++] = uInt8Float64Array[6]!; + buffer[offset++] = uInt8Float64Array[5]!; + buffer[offset++] = uInt8Float64Array[4]!; + buffer[offset++] = uInt8Float64Array[3]!; + buffer[offset++] = uInt8Float64Array[2]!; + buffer[offset++] = uInt8Float64Array[1]!; + buffer[offset++] = uInt8Float64Array[0]!; + return offset; +} + +function readFloatBackwards(buffer: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buffer.length); + const first = buffer[offset]; + const last = buffer[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, buffer.length - 4); + } + + uInt8Float32Array[3] = first; + uInt8Float32Array[2] = buffer[++offset]!; + uInt8Float32Array[1] = buffer[++offset]!; + uInt8Float32Array[0] = last; + return float32Array[0]; +} + +function readFloatForwards(buffer: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buffer.length); + const first = buffer[offset]; + const last = buffer[offset + 3]; + if (first === undefined || last === undefined) { + boundsError(offset, buffer.length - 4); + } + + uInt8Float32Array[0] = first; + uInt8Float32Array[1] = buffer[++offset]!; + uInt8Float32Array[2] = buffer[++offset]!; + uInt8Float32Array[3] = last; + return float32Array[0]; +} + +function writeFloatForwards(buffer: Buffer|Uint8Array, val: number, offset: number = 0) { + val = +val; + checkBounds(buffer as any, offset, 3); + + float32Array[0] = val; + buffer[offset++] = uInt8Float32Array[0]!; + buffer[offset++] = uInt8Float32Array[1]!; + buffer[offset++] = uInt8Float32Array[2]!; + buffer[offset++] = uInt8Float32Array[3]!; + return offset; +} + +function writeFloatBackwards(buffer: Buffer|Uint8Array, val: number, offset: number = 0) { + val = +val; + checkBounds(buffer as any, offset, 3); + + float32Array[0] = val; + buffer[offset++] = uInt8Float32Array[3]!; + buffer[offset++] = uInt8Float32Array[2]!; + buffer[offset++] = uInt8Float32Array[1]!; + buffer[offset++] = uInt8Float32Array[0]!; + return offset; +} + +function readInt24LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 2]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 3); + } + + const val = first + buf[++offset]! * 2 ** 8 + last * 2 ** 16; + return val | (val & 2 ** 23) * 0x1fe; +} + +function readInt40LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 4]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 5); + } + + return (last | (last & 2 ** 7) * 0x1fffffe) * 2 ** 32 + + first + + buf[++offset]! * 2 ** 8 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 24; +} + +function readInt48LE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 5]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 6); + } + + const val = buf[offset + 4]! + last * 2 ** 8; + return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 + + first + + buf[++offset]! * 2 ** 8 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 24; +} + +function readInt24BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 2]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 3); + } + + const val = first * 2 ** 16 + buf[++offset]! * 2 ** 8 + last; + return val | (val & 2 ** 23) * 0x1fe; +} + +function readInt48BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 5]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 6); + } + + const val = buf[++offset]! + first * 2 ** 8; + return (val | (val & 2 ** 15) * 0x1fffe) * 2 ** 32 + + buf[++offset]! * 2 ** 24 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 8 + + last; +} + +function readInt40BE(buf: Buffer|Uint8Array, offset: number = 0) { + validateOffset(offset, "offset", 0, buf.length); + const first = buf[offset]; + const last = buf[offset + 4]; + if (first === undefined || last === undefined) { + boundsError(offset, buf.length - 5); + } + + return (first | (first & 2 ** 7) * 0x1fffffe) * 2 ** 32 + + buf[++offset]! * 2 ** 24 + + buf[++offset]! * 2 ** 16 + + buf[++offset]! * 2 ** 8 + + last; +} + +function boundsError(value: number, length: number, type?: string) : never { + if (Math.floor(value) !== value) { + throw new ERR_OUT_OF_RANGE(type || "offset", "an integer", value); + } + + if (length < 0) { + throw new ERR_BUFFER_OUT_OF_BOUNDS(); + } + + throw new ERR_OUT_OF_RANGE( + type || "offset", + `>= ${type ? 1 : 0} and <= ${length}`, + value, + ); +} + +function validateNumber(value: unknown, name: string) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } +} + +function checkInt( + value: number|bigint, + min: number|bigint, + max: number|bigint, + buf: Buffer, + offset: number, + byteLength: number) { + if (value > max || value < min) { + const n = typeof min === "bigint" ? "n" : ""; + let range; + if (byteLength > 3) { + if (min === 0 || min === 0n) { + range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`; + } else { + range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and ` + + `< 2${n} ** ${(byteLength + 1) * 8 - 1}${n}`; + } + } else { + range = `>= ${min}${n} and <= ${max}${n}`; + } + throw new ERR_OUT_OF_RANGE("value", range, value); + } + checkBounds(buf, offset, byteLength); +} + +function toInteger(n: number|undefined, defaultVal: number) { + if (n === undefined) n = 0; + n = +(n as number); + if ( + !Number.isNaN(n) && + n >= Number.MIN_SAFE_INTEGER && + n <= Number.MAX_SAFE_INTEGER + ) { + return ((n % 1) === 0 ? n : Math.floor(n)); + } + return defaultVal; +} + +function writeU_Int8( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + if (value > max || value < min) { + throw new ERR_OUT_OF_RANGE("value", `>= ${min} and <= ${max}`, value); + } + if (buf[offset] === undefined) { + boundsError(offset, buf.length - 1); + } + + buf[offset] = value; + return offset + 1; +} + +function writeU_Int16BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 1); + + buf[offset++] = value >>> 8; + buf[offset++] = value; + return offset; +} + +function _writeUInt32LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 3); + + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + return offset; +} + +function writeU_Int16LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 1); + + buf[offset++] = value; + buf[offset++] = value >>> 8; + return offset; +} + +function _writeUInt32BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 3); + + buf[offset + 3] = value; + value = value >>> 8; + buf[offset + 2] = value; + value = value >>> 8; + buf[offset + 1] = value; + value = value >>> 8; + buf[offset] = value; + return offset + 4; +} + +function writeU_Int48BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 5); + + const newVal = Math.floor(value * 2 ** -32); + buf[offset++] = newVal >>> 8; + buf[offset++] = newVal; + buf[offset + 3] = value; + value = value >>> 8; + buf[offset + 2] = value; + value = value >>> 8; + buf[offset + 1] = value; + value = value >>> 8; + buf[offset] = value; + return offset + 4; +} + +function writeU_Int40BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 4); + + buf[offset++] = Math.floor(value * 2 ** -32); + buf[offset + 3] = value; + value = value >>> 8; + buf[offset + 2] = value; + value = value >>> 8; + buf[offset + 1] = value; + value = value >>> 8; + buf[offset] = value; + return offset + 4; +} + +function writeU_Int32BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 3); + + buf[offset + 3] = value; + value = value >>> 8; + buf[offset + 2] = value; + value = value >>> 8; + buf[offset + 1] = value; + value = value >>> 8; + buf[offset] = value; + return offset + 4; +} + +function writeU_Int24BE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 2); + + buf[offset + 2] = value; + value = value >>> 8; + buf[offset + 1] = value; + value = value >>> 8; + buf[offset] = value; + return offset + 3; +} + +function validateOffset( + value: number, + name: string, + min: number = 0, + max: number = Number.MAX_SAFE_INTEGER, +) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } + if (!Number.isInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, "an integer", value); + } + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); + } +} + +function writeU_Int48LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 5); + + const newVal = Math.floor(value * 2 ** -32); + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + buf[offset++] = newVal; + buf[offset++] = newVal >>> 8; + return offset; +} + +function writeU_Int40LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 4); + + const newVal = value; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + buf[offset++] = Math.floor(newVal * 2 ** -32); + return offset; +} + +function writeU_Int32LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 3); + + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + return offset; +} + +function writeU_Int24LE( + buf: Buffer, + value: number, + offset: number, + min: number, + max: number) { + value = +value; + validateOffset(offset, "offset", 0, buf.length); + checkInt(value, min, max, buf, offset, 2); + + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + value = value >>> 8; + buf[offset++] = value; + return offset; +} + +export default { + Buffer, + constants, + kMaxLength, + kStringMaxLength, + SlowBuffer, +}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts new file mode 100644 index 000000000..5a6b40f0c --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts @@ -0,0 +1,492 @@ +import { inspect } from "./internal_inspect"; + +const classRegExp = /^([A-Z][a-z0-9]*)+$/; + +const kTypes = [ + "string", + "function", + "number", + "object", + "Function", + "Object", + "boolean", + "bigint", + "symbol", +]; + +export class NodeErrorAbstraction extends Error { + code: string; + + constructor(name: string, code: string, message: string) { + super(message); + this.code = code; + this.name = name; + //This number changes depending on the name of this class + //20 characters as of now + (this as any).stack = this.stack && `${name} [${this.code}]${this.stack.slice(20)}`; + } + + override toString() { + return `${this.name} [${this.code}]: ${this.message}`; + } +} + +export class NodeError extends NodeErrorAbstraction { + constructor(code: string, message: string) { + super(Error.prototype.name, code, message); + } +} + +export class NodeRangeError extends NodeErrorAbstraction { + constructor(code: string, message: string) { + super(RangeError.prototype.name, code, message); + Object.setPrototypeOf(this, RangeError.prototype); + this.toString = function () { + return `${this.name} [${this.code}]: ${this.message}`; + }; + } +} + +export class NodeTypeError extends NodeErrorAbstraction implements TypeError { + constructor(code: string, message: string) { + super(TypeError.prototype.name, code, message); + Object.setPrototypeOf(this, TypeError.prototype); + this.toString = function () { + return `${this.name} [${this.code}]: ${this.message}`; + }; + } +} + +function createInvalidArgType( + name: string, + expected: string | string[], +): string { + // https://github.com/nodejs/node/blob/f3eb224/lib/internal/errors.js#L1037-L1087 + expected = Array.isArray(expected) ? expected : [expected]; + let msg = "The "; + if (name.endsWith(" argument")) { + // For cases like 'first argument' + msg += `${name} `; + } else { + const type = name.includes(".") ? "property" : "argument"; + msg += `"${name}" ${type} `; + } + msg += "must be "; + + const types = []; + const instances = []; + const other = []; + for (const value of expected) { + if (kTypes.includes(value)) { + types.push(value.toLocaleLowerCase()); + } else if (classRegExp.test(value)) { + instances.push(value); + } else { + other.push(value); + } + } + + // Special handle `object` in case other instances are allowed to outline + // the differences between each other. + if (instances.length > 0) { + const pos = types.indexOf("object"); + if (pos !== -1) { + types.splice(pos, 1); + instances.push("Object"); + } + } + + if (types.length > 0) { + if (types.length > 2) { + const last = types.pop(); + msg += `one of type ${types.join(", ")}, or ${last}`; + } else if (types.length === 2) { + msg += `one of type ${types[0]} or ${types[1]}`; + } else { + msg += `of type ${types[0]}`; + } + if (instances.length > 0 || other.length > 0) { + msg += " or "; + } + } + + if (instances.length > 0) { + if (instances.length > 2) { + const last = instances.pop(); + msg += `an instance of ${instances.join(", ")}, or ${last}`; + } else { + msg += `an instance of ${instances[0]}`; + if (instances.length === 2) { + msg += ` or ${instances[1]}`; + } + } + if (other.length > 0) { + msg += " or "; + } + } + + if (other.length > 0) { + if (other.length > 2) { + const last = other.pop(); + msg += `one of ${other.join(", ")}, or ${last}`; + } else if (other.length === 2) { + msg += `one of ${other[0]} or ${other[1]}`; + } else { + // @ts-ignore + if (other[0].toLowerCase() !== other[0]) { + msg += "an "; + } + msg += `${other[0]}`; + } + } + + return msg; +} + +function invalidArgTypeHelper(input: any) { + if (input == null) { + return ` Received ${input}`; + } + if (typeof input === "function" && input.name) { + return ` Received function ${input.name}`; + } + if (typeof input === "object") { + if (input.constructor && input.constructor.name) { + return ` Received an instance of ${input.constructor.name}`; + } + return ` Received ${inspect(input, { depth: -1 })}`; + } + let inspected = inspect(input, { colors: false }); + if (inspected.length > 25) { + inspected = `${inspected.slice(0, 25)}...`; + } + return ` Received type ${typeof input} (${inspected})`; +} + +function addNumericalSeparator(val: string) { + let res = ""; + let i = val.length; + const start = val[0] === "-" ? 1 : 0; + for (; i >= start + 4; i -= 3) { + res = `_${val.slice(i - 3, i)}${res}`; + } + return `${val.slice(0, i)}${res}`; +} + +export class ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY extends NodeError { + constructor() { + super("ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY", "Public key is not valid for specified curve"); + } +} + +export class ERR_CRYPTO_HASH_FINALIZED extends NodeError { + constructor() { + super("ERR_CRYPTO_HASH_FINALIZED", "Digest already called"); + } +} + +export class ERR_CRYPTO_HASH_UPDATE_FAILED extends NodeError { + constructor() { + super("ERR_CRYPTO_HASH_UPDATE_FAILED", "Hash update failed"); + } +} + +export class ERR_CRYPTO_INCOMPATIBLE_KEY extends NodeError { + constructor(name: string, msg: string) { + super("ERR_CRYPTO_INCOMPATIBLE_KEY", `Incompatible ${name}: ${msg}`); + } +} + +export class ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE extends NodeError { + constructor(actual: string, expected: string) { + super("ERR_CRYPTO_INVALID_KEY_OBJECT_TYPE", `Invalid key object type ${actual}, expected ${expected}.`); + } +} + +export class ERR_INVALID_ARG_TYPE_RANGE extends NodeRangeError { + constructor(name: string, expected: string | string[], actual: unknown) { + const msg = createInvalidArgType(name, expected); + + super("ERR_INVALID_ARG_TYPE", `${msg}.${invalidArgTypeHelper(actual)}`); + } +} + +export class ERR_INVALID_ARG_TYPE extends NodeTypeError { + constructor(name: string, expected: string | string[], actual: unknown) { + const msg = createInvalidArgType(name, expected); + + super("ERR_INVALID_ARG_TYPE", `${msg}.${invalidArgTypeHelper(actual)}`); + } + + static RangeError = ERR_INVALID_ARG_TYPE_RANGE; +} + +export class ERR_INVALID_ARG_VALUE_RANGE extends NodeRangeError { + constructor(name: string, value: unknown, reason: string = "is invalid") { + const type = name.includes(".") ? "property" : "argument"; + const inspected = inspect(value); + + super( + "ERR_INVALID_ARG_VALUE", + `The ${type} '${name}' ${reason}. Received ${inspected}`, + ); + } +} + +export class ERR_INVALID_ARG_VALUE extends NodeTypeError { + constructor(name: string, value: unknown, reason: string = "is invalid") { + const type = name.includes(".") ? "property" : "argument"; + const inspected = inspect(value); + + super( + "ERR_INVALID_ARG_VALUE", + `The ${type} '${name}' ${reason}. Received ${inspected}`, + ); + } + + static RangeError = ERR_INVALID_ARG_VALUE_RANGE; +} + +export class ERR_OUT_OF_RANGE extends RangeError { + code = "ERR_OUT_OF_RANGE"; + + constructor( + str: string, + range: string, + input: unknown, + replaceDefaultBoolean = false) { + // TODO(later): Implement internal assert? + // assert(range, 'Missing "range" argument'); + let msg = replaceDefaultBoolean + ? str + : `The value of "${str}" is out of range.`; + let received; + if (Number.isInteger(input) && Math.abs(input as number) > 2 ** 32) { + received = addNumericalSeparator(String(input)); + } else if (typeof input === "bigint") { + received = String(input); + if (input > 2n ** 32n || input < -(2n ** 32n)) { + received = addNumericalSeparator(received); + } + received += "n"; + } else { + received = inspect(input); + } + msg += ` It must be ${range}. Received ${received}`; + + super(msg); + + const { name } = this; + // Add the error code to the name to include it in the stack trace. + this.name = `${name} [${this.code}]`; + // Access the stack to generate the error message including the error code from the name. + this.stack; + // Reset the name to the actual name. + this.name = name; + } +} + +export class ERR_UNHANDLED_ERROR extends NodeError { + constructor(x: string) { + super("ERR_UNHANDLED_ERROR", `Unhandled error. (${x})`); + } +} + +export class ERR_INVALID_THIS extends NodeTypeError { + constructor(x: string) { + super("ERR_INVALID_THIS", `Value of "this" must be of type ${x}`); + } +} + +export class ERR_BUFFER_OUT_OF_BOUNDS extends NodeRangeError { + constructor(name?: string) { + super( + "ERR_BUFFER_OUT_OF_BOUNDS", + name + ? `"${name}" is outside of buffer bounds` + : "Attempt to access memory outside buffer bounds", + ); + } +} + +export class ERR_INVALID_BUFFER_SIZE extends NodeRangeError { + constructor(size: number) { + super( + "ERR_INVALID_BUFFER_SIZE", + `Buffer size must be a multiple of ${size}-bits`, + ); + } +} + +export class ERR_UNKNOWN_ENCODING extends NodeTypeError { + constructor(x: string) { + super("ERR_UNKNOWN_ENCODING", `Unknown encoding: ${x}`); + } +} + +export class ERR_STREAM_PREMATURE_CLOSE extends NodeTypeError { + constructor() { + super("ERR_STREAM_PREMATURE_CLOSE", "Premature close"); + } +} + +export class AbortError extends Error { + code: string; + + constructor(message = "The operation was aborted", options?: ErrorOptions) { + if (options !== undefined && typeof options !== "object") { + throw new ERR_INVALID_ARG_TYPE("options", "Object", options); + } + super(message, options); + this.code = "ABORT_ERR"; + this.name = "AbortError"; + } +} + +function determineSpecificType(value: any) { + if (value == null) { + return "" + value; + } + if (typeof value === "function" && value.name) { + return `function ${value.name}`; + } + if (typeof value === "object") { + if (value.constructor?.name) { + return `an instance of ${value.constructor.name}`; + } + return `${inspect(value, { depth: -1 })}`; + } + let inspected = inspect(value, { colors: false }); + if (inspected.length > 28) inspected = `${inspected.slice(0, 25)}...`; + + return `type ${typeof value} (${inspected})`; +} + +export class ERR_AMBIGUOUS_ARGUMENT extends NodeTypeError { + constructor(x: string, y: string) { + super("ERR_AMBIGUOUS_ARGUMENT", `The "${x}" argument is ambiguous. ${y}`); + } +} + +export class ERR_INVALID_RETURN_VALUE extends NodeTypeError { + constructor(input: string, name: string, value: unknown) { + super( + "ERR_INVALID_RETURN_VALUE", + `Expected ${input} to be returned from the "${name}" function but got ${ + determineSpecificType( + value, + ) + }.`, + ); + } +} + +export class ERR_MULTIPLE_CALLBACK extends NodeError { + constructor() { + super("ERR_MULTIPLE_CALLBACK", "Callback called multiple times"); + } +} + +export class ERR_MISSING_ARGS extends NodeTypeError { + constructor(...args: (string | string[])[]) { + let msg = "The "; + + const len = args.length; + + const wrap = (a: unknown) => `"${a}"`; + + args = args.map((a) => + Array.isArray(a) ? a.map(wrap).join(" or ") : wrap(a) + ); + + switch (len) { + case 1: + msg += `${args[0]} argument`; + break; + case 2: + msg += `${args[0]} and ${args[1]} arguments`; + break; + default: + msg += args.slice(0, len - 1).join(", "); + msg += `, and ${args[len - 1]} arguments`; + break; + } + + super("ERR_MISSING_ARGS", `${msg} must be specified`); + } +} + +export class ERR_FALSY_VALUE_REJECTION extends NodeError { + reason: string; + constructor(reason: string) { + super("ERR_FALSY_VALUE_REJECTION", "Promise was rejected with falsy value"); + this.reason = reason; + } +} + +export class ERR_METHOD_NOT_IMPLEMENTED extends NodeError { + constructor(name: string|symbol) { + if (typeof name === 'symbol') { + name = (name as symbol).description!; + } + super("ERR_METHOD_NOT_IMPLEMENTED", `The ${name} method is not implemented`); + } +} + +export class ERR_STREAM_CANNOT_PIPE extends NodeError { + constructor() { + super("ERR_STREAM_CANNOT_PIPE", "Cannot pipe, not readable"); + } +} +export class ERR_STREAM_DESTROYED extends NodeError { + constructor(name: string|symbol) { + if (typeof name === 'symbol') { + name = (name as symbol).description!; + } + super("ERR_STREAM_DESTROYED", `Cannot call ${name} after a stream was destroyed`); + } +} +export class ERR_STREAM_ALREADY_FINISHED extends NodeError { + constructor(name: string|symbol) { + if (typeof name === 'symbol') { + name = (name as symbol).description!; + } + super("ERR_STREAM_ALREADY_FINISHED", `Cannot call ${name} after a stream was finished`); + } +} +export class ERR_STREAM_NULL_VALUES extends NodeTypeError { + constructor() { + super("ERR_STREAM_NULL_VALUES", "May not write null values to stream"); + } +} +export class ERR_STREAM_WRITE_AFTER_END extends NodeError { + constructor() { + super("ERR_STREAM_WRITE_AFTER_END", "write after end"); + } +} + +export class ERR_STREAM_PUSH_AFTER_EOF extends NodeError { + constructor() { + super("ERR_STREAM_PUSH_AFTER_EOF", "stream.push() after EOF"); + } +} + +export class ERR_STREAM_UNSHIFT_AFTER_END_EVENT extends NodeError { + constructor() { + super("ERR_STREAM_UNSHIFT_AFTER_END_EVENT", "stream.unshift() after end event"); + } +} + +export function aggregateTwoErrors(innerError: any, outerError: any) { + if (innerError && outerError && innerError !== outerError) { + if (Array.isArray(outerError.errors)) { + // If `outerError` is already an `AggregateError`. + outerError.errors.push(innerError); + return outerError; + } + const err = new AggregateError([outerError, innerError], outerError.message); + (err as any).code = outerError.code; + return err; + } + return innerError || outerError +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts new file mode 100644 index 000000000..99ac8ecbd --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts @@ -0,0 +1,2454 @@ + +import * as internal from "./util"; + +import { Buffer } from "./internal_buffer"; +import { + isAsyncFunction, + isGeneratorFunction, + isAnyArrayBuffer, + isArrayBuffer, + isArgumentsObject, + isBoxedPrimitive, + isDataView, + isMap, + isMapIterator, + isModuleNamespaceObject, + isNativeError, + isPromise, + isSet, + isSetIterator, + isWeakMap, + isWeakSet, + isRegExp, + isDate, + isTypedArray, + isStringObject, + isNumberObject, + isBooleanObject, + isBigIntObject, +} from "./internal_types"; +// import { ALL_PROPERTIES, ONLY_ENUMERABLE, getOwnNonIndexProperties } from "node-internal:internal_utils"; +import { validateObject, validateString } from "./validators"; + +// // Simplified assertions to avoid `Assertions require every name in the call target to be +// declared with an explicit type` TypeScript error +function assert(value: boolean, message = "Assertion failed"): asserts value { + if (!value) throw new Error(message); +} +assert.fail = function(message = "Assertion failed"): never { + throw new Error(message); +} + +function isError(e: unknown): e is Error { + // An error could be an instance of Error while not being a native error + // or could be from a different realm and not be instance of Error but still + // be a native error. + return isNativeError(e) || e instanceof Error; +} + +const typedArrayPrototype = Object.getPrototypeOf(Uint8Array).prototype; +const typedArrayPrototypeLength: (this: internal.TypedArray) => number = Object.getOwnPropertyDescriptor(typedArrayPrototype, "length")!.get!; +const typedArrayPrototypeToStringTag: (this: internal.TypedArray) => string = Object.getOwnPropertyDescriptor(typedArrayPrototype, Symbol.toStringTag)!.get!; + +const setPrototypeSize: (this: Set) => number = Object.getOwnPropertyDescriptor(Set.prototype, "size")!.get!; +const mapPrototypeSize: (this: Map) => number = Object.getOwnPropertyDescriptor(Map.prototype, "size")!.get!; + +let maxStack_ErrorName: string; +let maxStack_ErrorMessage: string; +function isStackOverflowError(err: Error): boolean { + if (maxStack_ErrorMessage === undefined) { + try { + function overflowStack() { overflowStack(); } + overflowStack(); + } catch (err) { + assert(isError(err)); + maxStack_ErrorMessage = err.message; + maxStack_ErrorName = err.name; + } + } + + return err && err.name === maxStack_ErrorName && + err.message === maxStack_ErrorMessage; +} + +export const customInspectSymbol = Symbol.for('nodejs.util.inspect.custom'); + +const colorRegExp = /\u001b\[\d\d?m/g; + +function removeColors(str: string): string { + return str.replace(colorRegExp, ''); +} + +export interface InspectOptions { + /** + * If `true`, object's non-enumerable symbols and properties are included in the formatted result. + * `WeakMap` and `WeakSet` entries are also included as well as user defined prototype properties (excluding method properties). + * @default false + */ + showHidden?: boolean; + /** + * Specifies the number of times to recurse while formatting object. + * This is useful for inspecting large objects. + * To recurse up to the maximum call stack size pass `Infinity` or `null`. + * @default 2 + */ + depth?: number | null; + /** + * If `true`, the output is styled with ANSI color codes. Colors are customizable. + */ + colors?: boolean; + /** + * If `false`, `[util.inspect.custom](depth, opts, inspect)` functions are not invoked. + * @default true + */ + customInspect?: boolean; + /** + * If `true`, `Proxy` inspection includes the target and handler objects. + * @default false + */ + showProxy?: boolean; + /** + * Specifies the maximum number of `Array`, `TypedArray`, `WeakMap`, and `WeakSet` elements + * to include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no elements. + * @default 100 + */ + maxArrayLength?: number | null; + /** + * Specifies the maximum number of characters to + * include when formatting. Set to `null` or `Infinity` to show all elements. + * Set to `0` or negative to show no characters. + * @default 10000 + */ + maxStringLength?: number | null; + /** + * The length at which input values are split across multiple lines. + * Set to `Infinity` to format the input as a single line + * (in combination with `compact` set to `true` or any number >= `1`). + * @default 80 + */ + breakLength?: number; + /** + * Setting this to `false` causes each object key + * to be displayed on a new line. It will also add new lines to text that is + * longer than `breakLength`. If set to a number, the most `n` inner elements + * are united on a single line as long as all properties fit into + * `breakLength`. Short array elements are also grouped together. Note that no + * text will be reduced below 16 characters, no matter the `breakLength` size. + * For more information, see the example below. + * @default true + */ + compact?: boolean | number; + /** + * If set to `true` or a function, all properties of an object, and `Set` and `Map` + * entries are sorted in the resulting string. + * If set to `true` the default sort is used. + * If set to a function, it is used as a compare function. + */ + sorted?: boolean | ((a: string, b: string) => number); + /** + * If set to `true`, getters are going to be + * inspected as well. If set to `'get'` only getters without setter are going + * to be inspected. If set to `'set'` only getters having a corresponding + * setter are going to be inspected. This might cause side effects depending on + * the getter function. + * @default false + */ + getters?: "get" | "set" | boolean; + /** + * If set to `true`, an underscore is used to separate every three digits in all bigints and numbers. + * @default false + */ + numericSeparator?: boolean; +} +export type Style = + | "special" + | "number" + | "bigint" + | "boolean" + | "undefined" + | "null" + | "string" + | "symbol" + | "date" + | "regexp" + | "module" + | "name"; +export type CustomInspectFunction = (depth: number, options: InspectOptionsStylized) => any; // TODO: , inspect: inspect +export interface InspectOptionsStylized extends InspectOptions { + stylize(text: string, styleType: Style): string; +} + +const builtInObjects = new Set( + Object.getOwnPropertyNames(globalThis).filter( + (e) => /^[A-Z][a-zA-Z0-9]+$/.exec(e) !== null) +); + +// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot +const isUndetectableObject = (v: unknown): boolean => typeof v === 'undefined' && v !== undefined; + +// These options must stay in sync with `getUserOptions`. So if any option will +// be added or removed, `getUserOptions` must also be updated accordingly. +export const inspectDefaultOptions = Object.seal({ + showHidden: false, + depth: 2, + colors: false, + customInspect: true, + showProxy: false, + maxArrayLength: 100, + maxStringLength: 10000, + breakLength: 80, + compact: 3, + sorted: false, + getters: false, + numericSeparator: false, +} as const); + +const kObjectType = 0; +const kArrayType = 1; +const kArrayExtrasType = 2; + +const strEscapeSequencesRegExp = /[\x00-\x1f\x27\x5c\x7f-\x9f]|[\ud800-\udbff](?![\udc00-\udfff])|(?<~]))'; +const ansi = new RegExp(ansiPattern, 'g'); + +interface Context extends Required { + maxArrayLength: number; + maxStringLength: number; + budget: Record; + indentationLvl: number; + seen: unknown[]; + currentDepth: number; + userOptions?: InspectOptions; + circular?: Map; +} + +function getUserOptions(ctx: Context, isCrossContext: boolean): InspectOptionsStylized { + const ret: InspectOptionsStylized = { + stylize: ctx.stylize, + showHidden: ctx.showHidden, + depth: ctx.depth, + colors: ctx.colors, + customInspect: ctx.customInspect, + showProxy: ctx.showProxy, + maxArrayLength: ctx.maxArrayLength, + maxStringLength: ctx.maxStringLength, + breakLength: ctx.breakLength, + compact: ctx.compact, + sorted: ctx.sorted, + getters: ctx.getters, + numericSeparator: ctx.numericSeparator, + ...ctx.userOptions, + }; + + // Typically, the target value will be an instance of `Object`. If that is + // *not* the case, the object may come from another vm.Context, and we want + // to avoid passing it objects from this Context in that case, so we remove + // the prototype from the returned object itself + the `stylize()` function, + // and remove all other non-primitives, including non-primitive user options. + if (isCrossContext) { + Object.setPrototypeOf(ret, null); + for (const key of (Object.keys(ret) as (keyof InspectOptionsStylized)[])) { + if ((typeof ret[key] === 'object' || typeof ret[key] === 'function') && + ret[key] !== null) { + delete ret[key]; + } + } + ret.stylize = Object.setPrototypeOf((value: string, flavour: Style) => { + let stylized; + try { + stylized = `${ctx.stylize(value, flavour)}`; + } catch { + // Continue regardless of error. + } + + if (typeof stylized !== 'string') return value; + // `stylized` is a string as it should be, which is safe to pass along. + return stylized; + }, null); + } + + return ret; +} + +/** + * Echos the value of any input. Tries to print the value out + * in the best way possible given the different types. + * @param {any} value The value to print out. + * @param {object} opts Optional options object that alters the output. + */ +/* Legacy: value, showHidden, depth, colors */ +export function inspect(value: unknown, showHidden?: boolean, depth?: number | null, color?: boolean): string; +export function inspect(value: unknown, opts?: InspectOptions): string; +export function inspect(value: unknown, opts?: Partial | boolean): string { + // Default options + const ctx: Context = { + budget: {}, + indentationLvl: 0, + seen: [], + currentDepth: 0, + stylize: stylizeNoColor, + showHidden: inspectDefaultOptions.showHidden, + depth: inspectDefaultOptions.depth, + colors: inspectDefaultOptions.colors, + customInspect: inspectDefaultOptions.customInspect, + showProxy: inspectDefaultOptions.showProxy, + maxArrayLength: inspectDefaultOptions.maxArrayLength, + maxStringLength: inspectDefaultOptions.maxStringLength, + breakLength: inspectDefaultOptions.breakLength, + compact: inspectDefaultOptions.compact, + sorted: inspectDefaultOptions.sorted, + getters: inspectDefaultOptions.getters, + numericSeparator: inspectDefaultOptions.numericSeparator, + }; + if (arguments.length > 1) { + // Legacy... + if (arguments.length > 2) { + if (arguments[2] !== undefined) { + ctx.depth = arguments[2]; + } + if (arguments.length > 3 && arguments[3] !== undefined) { + ctx.colors = arguments[3]; + } + } + // Set user-specified options + if (typeof opts === 'boolean') { + ctx.showHidden = opts; + } else if (opts) { + const optKeys = Object.keys(opts) as (keyof InspectOptionsStylized)[]; + for (let i = 0; i < optKeys.length; ++i) { + const key = optKeys[i]!; + // TODO(BridgeAR): Find a solution what to do about stylize. Either make + // this function public or add a new API with a similar or better + // functionality. + if ( + Object.prototype.hasOwnProperty.call(inspectDefaultOptions, key) || + key === 'stylize') { + (ctx as Record)[key] = opts[key]; + } else if (ctx.userOptions === undefined) { + // This is required to pass through the actual user input. + ctx.userOptions = opts; + } + } + } + } + if (ctx.colors) ctx.stylize = stylizeWithColor; + if (ctx.maxArrayLength === null) ctx.maxArrayLength = Infinity; + if (ctx.maxStringLength === null) ctx.maxStringLength = Infinity; + return formatValue(ctx, value, 0); +} +inspect.custom = customInspectSymbol; + +Object.defineProperty(inspect, 'defaultOptions', { + get() { + return inspectDefaultOptions; + }, + set(options) { + validateObject(options, 'options'); + return Object.assign(inspectDefaultOptions, options); + }, +}); + +// Set Graphics Rendition https://en.wikipedia.org/wiki/ANSI_escape_code#graphics +// Each color consists of an array with the color code as first entry and the +// reset code as second entry. +const defaultFG = 39; +const defaultBG = 49; +inspect.colors = { + __proto__: null, + reset: [0, 0], + bold: [1, 22], + dim: [2, 22], // Alias: faint + italic: [3, 23], + underline: [4, 24], + blink: [5, 25], + // Swap foreground and background colors + inverse: [7, 27], // Alias: swapcolors, swapColors + hidden: [8, 28], // Alias: conceal + strikethrough: [9, 29], // Alias: strikeThrough, crossedout, crossedOut + doubleunderline: [21, 24], // Alias: doubleUnderline + black: [30, defaultFG], + red: [31, defaultFG], + green: [32, defaultFG], + yellow: [33, defaultFG], + blue: [34, defaultFG], + magenta: [35, defaultFG], + cyan: [36, defaultFG], + white: [37, defaultFG], + bgBlack: [40, defaultBG], + bgRed: [41, defaultBG], + bgGreen: [42, defaultBG], + bgYellow: [43, defaultBG], + bgBlue: [44, defaultBG], + bgMagenta: [45, defaultBG], + bgCyan: [46, defaultBG], + bgWhite: [47, defaultBG], + framed: [51, 54], + overlined: [53, 55], + gray: [90, defaultFG], // Alias: grey, blackBright + redBright: [91, defaultFG], + greenBright: [92, defaultFG], + yellowBright: [93, defaultFG], + blueBright: [94, defaultFG], + magentaBright: [95, defaultFG], + cyanBright: [96, defaultFG], + whiteBright: [97, defaultFG], + bgGray: [100, defaultBG], // Alias: bgGrey, bgBlackBright + bgRedBright: [101, defaultBG], + bgGreenBright: [102, defaultBG], + bgYellowBright: [103, defaultBG], + bgBlueBright: [104, defaultBG], + bgMagentaBright: [105, defaultBG], + bgCyanBright: [106, defaultBG], + bgWhiteBright: [107, defaultBG], +}; + +function defineColorAlias(target: string, alias: string) { + Object.defineProperty(inspect.colors, alias, { + get() { + return this[target]; + }, + set(value) { + this[target] = value; + }, + configurable: true, + enumerable: false, + }); +} + +defineColorAlias('gray', 'grey'); +defineColorAlias('gray', 'blackBright'); +defineColorAlias('bgGray', 'bgGrey'); +defineColorAlias('bgGray', 'bgBlackBright'); +defineColorAlias('dim', 'faint'); +defineColorAlias('strikethrough', 'crossedout'); +defineColorAlias('strikethrough', 'strikeThrough'); +defineColorAlias('strikethrough', 'crossedOut'); +defineColorAlias('hidden', 'conceal'); +defineColorAlias('inverse', 'swapColors'); +defineColorAlias('inverse', 'swapcolors'); +defineColorAlias('doubleunderline', 'doubleUnderline'); + +// TODO(BridgeAR): Add function style support for more complex styles. +// Don't use 'blue' not visible on cmd.exe +inspect.styles = { + __proto__: null, + special: 'cyan', + number: 'yellow', + bigint: 'yellow', + boolean: 'yellow', + undefined: 'grey', + null: 'bold', + string: 'green', + symbol: 'green', + date: 'magenta', + name: undefined, + // TODO(BridgeAR): Highlight regular expressions properly. + regexp: 'red', + module: 'underline', +}; + +function addQuotes(str: string, quotes: number): string { + if (quotes === -1) { + return `"${str}"`; + } + if (quotes === -2) { + return `\`${str}\``; + } + return `'${str}'`; +} + +function escapeFn(str: string): string { + const charCode = str.charCodeAt(0); + return meta.length > charCode ? meta[charCode]! : `\\u${charCode.toString(16)}`; +} + +// Escape control characters, single quotes and the backslash. +// This is similar to JSON stringify escaping. +function strEscape(str: string): string { + let escapeTest = strEscapeSequencesRegExp; + let escapeReplace = strEscapeSequencesReplacer; + let singleQuote = 39; + + // Check for double quotes. If not present, do not escape single quotes and + // instead wrap the text in double quotes. If double quotes exist, check for + // backticks. If they do not exist, use those as fallback instead of the + // double quotes. + if (str.includes("'")) { + // This invalidates the charCode and therefore can not be matched for + // anymore. + if (!(str.includes('"'))) { + singleQuote = -1; + } else if (!str.includes('`') && + !str.includes('${')) { + singleQuote = -2; + } + if (singleQuote !== 39) { + escapeTest = strEscapeSequencesRegExpSingle; + escapeReplace = strEscapeSequencesReplacerSingle; + } + } + + // Some magic numbers that worked out fine while benchmarking with v8 6.0 + if (str.length < 5000 && escapeTest.exec(str) === null) + return addQuotes(str, singleQuote); + if (str.length > 100) { + str = str.replace(escapeReplace, escapeFn); + return addQuotes(str, singleQuote); + } + + let result = ''; + let last = 0; + for (let i = 0; i < str.length; i++) { + const point = str.charCodeAt(i); + if (point === singleQuote || + point === 92 || + point < 32 || + (point > 126 && point < 160)) { + if (last === i) { + result += meta[point]; + } else { + result += `${str.slice(last, i)}${meta[point]}`; + } + last = i + 1; + } else if (point >= 0xd800 && point <= 0xdfff) { + if (point <= 0xdbff && i + 1 < str.length) { + const point = str.charCodeAt(i + 1); + if (point >= 0xdc00 && point <= 0xdfff) { + i++; + continue; + } + } + result += `${str.slice(last, i)}\\u${point.toString(16)}`; + last = i + 1; + } + } + + if (last !== str.length) { + result += str.slice(last); + } + return addQuotes(result, singleQuote); +} + +function stylizeWithColor(str: string, styleType: Style): string { + const style = inspect.styles[styleType]; + if (style !== undefined) { + const color = (inspect.colors as unknown as Record)[style]; + if (color !== undefined) + return `\u001b[${color[0]}m${str}\u001b[${color[1]}m`; + } + return str; +} + +function stylizeNoColor(str: string): string { + return str; +} + +// Return a new empty array to push in the results of the default formatter. +function getEmptyFormatArray(): string[] { + return []; +} + +function isInstanceof(object: unknown, proto: Function): boolean { + try { + return object instanceof proto; + } catch { + return false; + } +} + +function getConstructorName(obj: object, ctx: Context, recurseTimes: number, protoProps?: string[]): string | null { + let firstProto: unknown; + const tmp = obj; + while (obj || isUndetectableObject(obj)) { + const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); + if (descriptor !== undefined && + typeof descriptor.value === 'function' && + descriptor.value.name !== '' && + isInstanceof(tmp, descriptor.value)) { + if (protoProps !== undefined && + (firstProto !== obj || + !builtInObjects.has(descriptor.value.name))) { + addPrototypeProperties( + ctx, tmp, firstProto || tmp, recurseTimes, protoProps); + } + return String(descriptor.value.name); + } + + obj = Object.getPrototypeOf(obj); + if (firstProto === undefined) { + firstProto = obj; + } + } + + if (firstProto === null) { + return null; + } + + const res = internal.getConstructorName(tmp); + + if (ctx.depth !== null && recurseTimes > ctx.depth) { + return `${res} `; + } + + const protoConstr = getConstructorName( + firstProto!, ctx, recurseTimes + 1, protoProps); + + if (protoConstr === null) { + return `${res} <${inspect(firstProto, { + ...ctx, + customInspect: false, + depth: -1, + })}>`; + } + + return `${res} <${protoConstr}>`; +} + +// This function has the side effect of adding prototype properties to the +// `output` argument (which is an array). This is intended to highlight user +// defined prototype properties. +function addPrototypeProperties(ctx: Context, main: object, obj: Object, recurseTimes: number, output: string[]): void { + let depth = 0; + let keys: PropertyKey[] | undefined; + let keySet: Set | undefined; + do { + if (depth !== 0 || main === obj) { + obj = Object.getPrototypeOf(obj); + // Stop as soon as a null prototype is encountered. + if (obj === null) { + return; + } + // Stop as soon as a built-in object type is detected. + const descriptor = Object.getOwnPropertyDescriptor(obj, 'constructor'); + if (descriptor !== undefined && + typeof descriptor.value === 'function' && + builtInObjects.has(descriptor.value.name)) { + return; + } + } + + if (depth === 0) { + keySet = new Set(); + } else { + keys!.forEach((key) => keySet!.add(key)); + } + // Get all own property names and symbols. + keys = Reflect.ownKeys(obj); + ctx.seen.push(main); + for (const key of keys) { + // Ignore the `constructor` property and keys that exist on layers above. + if (key === 'constructor' || + Object.prototype.hasOwnProperty.call(main, key) || + (depth !== 0 && keySet!.has(key))) { + continue; + } + const desc = Object.getOwnPropertyDescriptor(obj, key); + if (typeof desc?.value === 'function') { + continue; + } + const value = formatProperty( + ctx, obj, recurseTimes, key, kObjectType, desc, main); + if (ctx.colors) { + // Faint! + output.push(`\u001b[2m${value}\u001b[22m`); + } else { + output.push(value); + } + } + ctx.seen.pop(); + // Limit the inspection to up to three prototype layers. Using `recurseTimes` + // is not a good choice here, because it's as if the properties are declared + // on the current object from the users perspective. + } while (++depth !== 3); +} + +function getPrefix(constructor: string | null, tag: string, fallback: string, size = ''): string { + if (constructor === null) { + if (tag !== '' && fallback !== tag) { + return `[${fallback}${size}: null prototype] [${tag}] `; + } + return `[${fallback}${size}: null prototype] `; + } + + if (tag !== '' && constructor !== tag) { + return `${constructor}${size} [${tag}] `; + } + return `${constructor}${size} `; +} + +// Look up the keys of the object. +function getKeys(value: object, showHidden: boolean): PropertyKey[] { + let keys: PropertyKey[]; + const symbols = Object.getOwnPropertySymbols(value); + if (showHidden) { + keys = Object.getOwnPropertyNames(value); + if (symbols.length !== 0) + keys.push(...symbols); + } else { + // This might throw if `value` is a Module Namespace Object from an + // unevaluated module, but we don't want to perform the actual type + // check because it's expensive. + // TODO(devsnek): track https://github.com/tc39/ecma262/issues/1209 + // and modify this logic as needed. + try { + keys = Object.keys(value); + } catch (err: any) { + assert(isNativeError(err) && err.name === 'ReferenceError' && + isModuleNamespaceObject(value)); + keys = Object.getOwnPropertyNames(value); + } + if (symbols.length !== 0) { + const filter = (key: PropertyKey) => Object.prototype.propertyIsEnumerable.call(value, key); + keys.push(...symbols.filter(filter)); + } + } + return keys; +} + +function getCtxStyle(value: unknown, constructor: string | null, tag: string): string { + let fallback = ''; + if (constructor === null) { + fallback = internal.getConstructorName(value); + if (fallback === tag) { + fallback = 'Object'; + } + } + return getPrefix(constructor, tag, fallback); +} + +function formatProxy(ctx: Context, proxy: internal.ProxyDetails, recurseTimes: number): string { + if (ctx.depth !== null && recurseTimes > ctx.depth) { + return ctx.stylize('Proxy [Array]', 'special'); + } + recurseTimes += 1; + ctx.indentationLvl += 2; + const res: string[] = [ + formatValue(ctx, proxy.target, recurseTimes), + formatValue(ctx, proxy.handler, recurseTimes), + ]; + ctx.indentationLvl -= 2; + return reduceToSingleString( + ctx, res, '', ['Proxy [', ']'], kArrayExtrasType, recurseTimes); +} + +// Note: using `formatValue` directly requires the indentation level to be +// corrected by setting `ctx.indentationLvL += diff` and then to decrease the +// value afterwards again. +function formatValue(ctx: Context, value: unknown, recurseTimes: number, typedArray?: unknown): string { + // Primitive types cannot have properties. + if (typeof value !== 'object' && + typeof value !== 'function' && + !isUndetectableObject(value)) { + return formatPrimitive(ctx.stylize, value as Primitive, ctx); + } + if (value === null) { + return ctx.stylize('null', 'null'); + } + + // Memorize the context for custom inspection on proxies. + const context = value; + // Always check for proxies to prevent side effects and to prevent triggering + // any proxy handlers. + const proxy = internal.getProxyDetails(value); + if (proxy !== undefined) { + if (proxy === null || proxy.target === null) { + return ctx.stylize('', 'special'); + } + if (ctx.showProxy) { + return formatProxy(ctx, proxy, recurseTimes); + } + value = proxy.target; + } + + // Provide a hook for user-specified inspect functions. + // Check that value is an object with an inspect function on it. + if (ctx.customInspect) { + let maybeCustom = (value as Record)[customInspectSymbol]; + + // WORKERD SPECIFIC PATCH: if `value` is a JSG resource type, use a well-known custom inspect + const maybeResourceTypeInspect = (value as Record)[internal.kResourceTypeInspect]; + if (typeof maybeResourceTypeInspect === "object") { + maybeCustom = formatJsgResourceType.bind( + context as Record, + maybeResourceTypeInspect as Record + ); + } + + if (typeof maybeCustom === 'function' && + // Filter out the util module, its inspect function is special. + maybeCustom !== inspect && + // Also filter out any prototype objects using the circular check. + !((value as object).constructor && (value as object).constructor.prototype === value)) { + // This makes sure the recurseTimes are reported as before while using + // a counter internally. + const depth = ctx.depth === null ? null : ctx.depth - recurseTimes; + const isCrossContext = + proxy !== undefined || !(context instanceof Object); + const ret = Function.prototype.call.call( + maybeCustom, + context, + depth, + getUserOptions(ctx, isCrossContext), + inspect, + ); + // If the custom inspection method returned `this`, don't go into + // infinite recursion. + if (ret !== context) { + if (typeof ret !== 'string') { + return formatValue(ctx, ret, recurseTimes); + } + return ret.replaceAll('\n', `\n${' '.repeat(ctx.indentationLvl)}`); + } + } + } + + // Using an array here is actually better for the average case than using + // a Set. `seen` will only check for the depth and will never grow too large. + if (ctx.seen.includes(value)) { + let index: number | undefined = 1; + if (ctx.circular === undefined) { + ctx.circular = new Map(); + ctx.circular.set(value, index); + } else { + index = ctx.circular.get(value); + if (index === undefined) { + index = ctx.circular.size + 1; + ctx.circular.set(value, index); + } + } + return ctx.stylize(`[Circular *${index}]`, 'special'); + } + + return formatRaw(ctx, value, recurseTimes, typedArray); +} + +function formatRaw(ctx: Context, value: unknown, recurseTimes: number, typedArray: unknown): string { + let keys: PropertyKey[] | undefined; + let protoProps: string[] | undefined; + if (ctx.showHidden && (ctx.depth === null || recurseTimes <= ctx.depth)) { + protoProps = []; + } + + const constructor = getConstructorName(value as object, ctx, recurseTimes, protoProps); + // Reset the variable to check for this later on. + if (protoProps !== undefined && protoProps.length === 0) { + protoProps = undefined; + } + + let tag = (value as { [Symbol.toStringTag]?: string })[Symbol.toStringTag]; + // Only list the tag in case it's non-enumerable / not an own property. + // Otherwise we'd print this twice. + if (typeof tag !== 'string' || + (tag !== '' && + (ctx.showHidden ? + Object.prototype.hasOwnProperty : + Object.prototype.propertyIsEnumerable) + .call(value, Symbol.toStringTag))) { + tag = ''; + } + let base = ''; + let formatter: (ctx: Context, value: any, recurseTimes: number) => string[] = getEmptyFormatArray; + let braces: [string, string] | undefined; + let noIterator = true; + let i = 0; + const filter = ctx.showHidden ? internal.ALL_PROPERTIES : internal.ONLY_ENUMERABLE; + + let extrasType = kObjectType; + + // Iterators and the rest are split to reduce checks. + // We have to check all values in case the constructor is set to null. + // Otherwise it would not possible to identify all types properly. + + const isEntriesObject = hasEntries(value); + if (Symbol.iterator in (value as object) || constructor === null || isEntriesObject) { + noIterator = false; + if (isEntriesObject) { + // WORKERD SPECIFIC PATCH: if `value` is an object with entries, format them like a map + const size = value[kEntries].length; + const prefix = getPrefix(constructor, tag, 'Object', `(${size})`); + keys = getKeys(value, ctx.showHidden); + + // Remove `kEntries` and `size` from keys + keys.splice(keys.indexOf(kEntries), 1); + const sizeIndex = keys.indexOf("size"); + if (sizeIndex !== -1) keys.splice(sizeIndex, 1); + + formatter = formatMap.bind(null, value[kEntries][Symbol.iterator]()); + if (size === 0 && keys.length === 0 && protoProps === undefined) + return `${prefix}{}`; + braces = [`${prefix}{`, '}']; + } else if (Array.isArray(value)) { + // Only set the constructor for non ordinary ("Array [...]") arrays. + const prefix = (constructor !== 'Array' || tag !== '') ? + getPrefix(constructor, tag, 'Array', `(${value.length})`) : + ''; + keys = internal.getOwnNonIndexProperties(value, filter); + braces = [`${prefix}[`, ']']; + if (value.length === 0 && keys.length === 0 && protoProps === undefined) + return `${braces[0]}]`; + extrasType = kArrayExtrasType; + formatter = formatArray; + } else if (isSet(value)) { + const size = setPrototypeSize.call(value); + const prefix = getPrefix(constructor, tag, 'Set', `(${size})`); + keys = getKeys(value, ctx.showHidden); + formatter = constructor !== null ? + formatSet.bind(null, value) : + formatSet.bind(null, Set.prototype.values.call(value)); + if (size === 0 && keys.length === 0 && protoProps === undefined) + return `${prefix}{}`; + braces = [`${prefix}{`, '}']; + } else if (isMap(value)) { + const size = mapPrototypeSize.call(value); + const prefix = getPrefix(constructor, tag, 'Map', `(${size})`); + keys = getKeys(value, ctx.showHidden); + formatter = constructor !== null ? + formatMap.bind(null, value) : + formatMap.bind(null, Map.prototype.entries.call(value)); + if (size === 0 && keys.length === 0 && protoProps === undefined) + return `${prefix}{}`; + braces = [`${prefix}{`, '}']; + } else if (isTypedArray(value)) { + keys = internal.getOwnNonIndexProperties(value, filter); + let bound = value; + let fallback = ''; + if (constructor === null) { + fallback = typedArrayPrototypeToStringTag.call(value); + // Reconstruct the array information. + bound = new (globalThis as unknown as Record)[fallback]!(value); + } + const size = typedArrayPrototypeLength.call(value); + const prefix = getPrefix(constructor, tag, fallback, `(${size})`); + braces = [`${prefix}[`, ']']; + if (value.length === 0 && keys.length === 0 && !ctx.showHidden) + return `${braces[0]}]`; + // Special handle the value. The original value is required below. The + // bound function is required to reconstruct missing information. + formatter = formatTypedArray.bind(null, bound, size); + extrasType = kArrayExtrasType; + } else if (isMapIterator(value)) { + keys = getKeys(value, ctx.showHidden); + braces = getIteratorBraces('Map', tag); + // Add braces to the formatter parameters. + formatter = formatIterator.bind(null, braces); + } else if (isSetIterator(value)) { + keys = getKeys(value, ctx.showHidden); + braces = getIteratorBraces('Set', tag); + // Add braces to the formatter parameters. + formatter = formatIterator.bind(null, braces); + } else { + noIterator = true; + } + } + if (noIterator) { + keys = getKeys(value as object, ctx.showHidden); + braces = ['{', '}']; + if (constructor === 'Object') { + if (isArgumentsObject(value)) { + braces[0] = '[Arguments] {'; + } else if (tag !== '') { + braces[0] = `${getPrefix(constructor, tag, 'Object')}{`; + } + if (keys.length === 0 && protoProps === undefined) { + return `${braces[0]}}`; + } + } else if (typeof value === 'function') { + base = getFunctionBase(value, constructor, tag); + if (keys.length === 0 && protoProps === undefined) + return ctx.stylize(base, 'special'); + } else if (isRegExp(value)) { + // Make RegExps say that they are RegExps + base = RegExp.prototype.toString.call( + constructor !== null ? value : new RegExp(value) + ); + const prefix = getPrefix(constructor, tag, 'RegExp'); + if (prefix !== 'RegExp ') + base = `${prefix}${base}`; + if ((keys.length === 0 && protoProps === undefined) || + (ctx.depth !== null && recurseTimes > ctx.depth)) { + return ctx.stylize(base, 'regexp'); + } + } else if (isDate(value)) { + // Make dates with properties first say the date + base = Number.isNaN(Date.prototype.getTime.call(value)) ? + Date.prototype.toString.call(value) : + Date.prototype.toISOString.call(value); + const prefix = getPrefix(constructor, tag, 'Date'); + if (prefix !== 'Date ') + base = `${prefix}${base}`; + if (keys.length === 0 && protoProps === undefined) { + return ctx.stylize(base, 'date'); + } + } else if (isError(value)) { + base = formatError(value, constructor, tag, ctx, keys); + if (keys.length === 0 && protoProps === undefined) + return base; + } else if (isAnyArrayBuffer(value)) { + // Fast path for ArrayBuffer and SharedArrayBuffer. + // Can't do the same for DataView because it has a non-primitive + // .buffer property that we need to recurse for. + const arrayType = isArrayBuffer(value) ? 'ArrayBuffer' : + 'SharedArrayBuffer'; + const prefix = getPrefix(constructor, tag, arrayType); + if (typedArray === undefined) { + formatter = formatArrayBuffer; + } else if (keys.length === 0 && protoProps === undefined) { + return prefix + + `{ byteLength: ${formatNumber(ctx.stylize, value.byteLength, false)} }`; + } + braces[0] = `${prefix}{`; + keys.unshift('byteLength'); + } else if (isDataView(value)) { + braces[0] = `${getPrefix(constructor, tag, 'DataView')}{`; + // .buffer goes last, it's not a primitive like the others. + keys.unshift('byteLength', 'byteOffset', 'buffer'); + } else if (isPromise(value)) { + braces[0] = `${getPrefix(constructor, tag, 'Promise')}{`; + formatter = formatPromise; + } else if (isWeakSet(value)) { + braces[0] = `${getPrefix(constructor, tag, 'WeakSet')}{`; + formatter = ctx.showHidden ? formatWeakSet : formatWeakCollection; + } else if (isWeakMap(value)) { + braces[0] = `${getPrefix(constructor, tag, 'WeakMap')}{`; + formatter = ctx.showHidden ? formatWeakMap : formatWeakCollection; + } else if (isModuleNamespaceObject(value)) { + braces[0] = `${getPrefix(constructor, tag, 'Module')}{`; + // Special handle keys for namespace objects. + formatter = formatNamespaceObject.bind(null, keys); + } else if (isBoxedPrimitive(value)) { + base = getBoxedBase(value, ctx, keys, constructor, tag); + if (keys.length === 0 && protoProps === undefined) { + return base; + } + } else { + if (keys.length === 0 && protoProps === undefined) { + return `${getCtxStyle(value, constructor, tag)}{}`; + } + braces[0] = `${getCtxStyle(value, constructor, tag)}{`; + } + } + + if (ctx.depth !== null && recurseTimes > ctx.depth) { + let constructorName = getCtxStyle(value, constructor, tag).slice(0, -1); + if (constructor !== null) + constructorName = `[${constructorName}]`; + return ctx.stylize(constructorName, 'special'); + } + recurseTimes += 1; + + ctx.seen.push(value); + ctx.currentDepth = recurseTimes; + let output; + const indentationLvl = ctx.indentationLvl; + try { + output = formatter(ctx, value, recurseTimes); + for (i = 0; i < keys!.length; i++) { + output.push( + formatProperty(ctx, value as object, recurseTimes, keys![i]!, extrasType), + ); + } + if (protoProps !== undefined) { + output.push(...protoProps); + } + } catch (err) { + const constructorName = getCtxStyle(value, constructor, tag).slice(0, -1); + return handleMaxCallStackSize(ctx, err as Error, constructorName, indentationLvl); + } + if (ctx.circular !== undefined) { + const index = ctx.circular.get(value); + if (index !== undefined) { + const reference = ctx.stylize(``, 'special'); + // Add reference always to the very beginning of the output. + if (ctx.compact !== true) { + base = base === '' ? reference : `${reference} ${base}`; + } else { + braces![0] = `${reference} ${braces![0]}`; + } + } + } + ctx.seen.pop(); + + if (ctx.sorted) { + const comparator = ctx.sorted === true ? undefined : ctx.sorted; + if (extrasType === kObjectType) { + output.sort(comparator); + } else if (keys!.length > 1) { + const sorted = output.slice(output.length - keys!.length).sort(comparator); + output.splice(output.length - keys!.length, keys!.length, ...sorted); + } + } + + const res = reduceToSingleString( + ctx, output, base, braces!, extrasType, recurseTimes, value); + const budget = ctx.budget[ctx.indentationLvl] || 0; + const newLength = budget + res.length; + ctx.budget[ctx.indentationLvl] = newLength; + // If any indentationLvl exceeds this limit, limit further inspecting to the + // minimum. Otherwise the recursive algorithm might continue inspecting the + // object even though the maximum string size (~2 ** 28 on 32 bit systems and + // ~2 ** 30 on 64 bit systems) exceeded. The actual output is not limited at + // exactly 2 ** 27 but a bit higher. This depends on the object shape. + // This limit also makes sure that huge objects don't block the event loop + // significantly. + if (newLength > 2 ** 27) { + ctx.depth = -1; + } + return res; +} + +function getIteratorBraces(type: string, tag: string): [string, string] { + if (tag !== `${type} Iterator`) { + if (tag !== '') + tag += '] ['; + tag += `${type} Iterator`; + } + return [`[${tag}] {`, '}']; +} + +function getBoxedBase(value: unknown, ctx: Context, keys: PropertyKey[], constructor: string | null, tag: string): string { + let fn: (this: unknown) => Primitive; + let type: Capitalize> | "BigInt"; + if (isNumberObject(value)) { + fn = Number.prototype.valueOf; + type = 'Number'; + } else if (isStringObject(value)) { + fn = String.prototype.valueOf; + type = 'String'; + // For boxed Strings, we have to remove the 0-n indexed entries, + // since they just noisy up the output and are redundant + // Make boxed primitive Strings look like such + keys.splice(0, value.length); + } else if (isBooleanObject(value)) { + fn = Boolean.prototype.valueOf; + type = 'Boolean'; + } else if (isBigIntObject(value)) { + fn = BigInt.prototype.valueOf; + type = 'BigInt'; + } else { + fn = Symbol.prototype.valueOf; + type = 'Symbol'; + } + let base = `[${type}`; + if (type !== constructor) { + if (constructor === null) { + base += ' (null prototype)'; + } else { + base += ` (${constructor})`; + } + } + base += `: ${formatPrimitive(stylizeNoColor, fn.call(value), ctx)}]`; + if (tag !== '' && tag !== constructor) { + base += ` [${tag}]`; + } + if (keys.length !== 0 || ctx.stylize === stylizeNoColor) + return base; + return ctx.stylize(base, type.toLowerCase() as Style); +} + +function getClassBase(value: any, constructor: string | null, tag: string): string { + const hasName = Object.prototype.hasOwnProperty.call(value, 'name'); + const name = (hasName && value.name) || '(anonymous)'; + let base = `class ${name}`; + if (constructor !== 'Function' && constructor !== null) { + base += ` [${constructor}]`; + } + if (tag !== '' && constructor !== tag) { + base += ` [${tag}]`; + } + if (constructor !== null) { + const superName = Object.getPrototypeOf(value).name; + if (superName) { + base += ` extends ${superName}`; + } + } else { + base += ' extends [null prototype]'; + } + return `[${base}]`; +} + +function getFunctionBase(value: Function, constructor: string | null, tag: string): string { + const stringified = Function.prototype.toString.call(value); + if (stringified.startsWith('class') && stringified.endsWith('}')) { + const slice = stringified.slice(5, -1); + const bracketIndex = slice.indexOf('{'); + if (bracketIndex !== -1 && + (!slice.slice(0, bracketIndex).includes('(') || + // Slow path to guarantee that it's indeed a class. + classRegExp.exec(slice.replace(stripCommentsRegExp, "")) !== null) + ) { + return getClassBase(value, constructor, tag); + } + } + let type = 'Function'; + if (isGeneratorFunction(value)) { + type = `Generator${type}`; + } + if (isAsyncFunction(value)) { + type = `Async${type}`; + } + let base = `[${type}`; + if (constructor === null) { + base += ' (null prototype)'; + } + if (value.name === '') { + base += ' (anonymous)'; + } else { + base += `: ${value.name}`; + } + base += ']'; + if (constructor !== type && constructor !== null) { + base += ` ${constructor}`; + } + if (tag !== '' && constructor !== tag) { + base += ` [${tag}]`; + } + return base; +} + +export function identicalSequenceRange(a: unknown[], b: unknown[]): { len: number, offset: number } { + for (let i = 0; i < a.length - 3; i++) { + // Find the first entry of b that matches the current entry of a. + const pos = b.indexOf(a[i]); + if (pos !== -1) { + const rest = b.length - pos; + if (rest > 3) { + let len = 1; + const maxLen = Math.min(a.length - i, rest); + // Count the number of consecutive entries. + while (maxLen > len && a[i + len] === b[pos + len]) { + len++; + } + if (len > 3) { + return { len, offset: i }; + } + } + } + } + + return { len: 0, offset: 0 }; +} + +function getStackString(error: Error): string { + return error.stack ? String(error.stack) : Error.prototype.toString.call(error); +} + +function getStackFrames(ctx: Context, err: Error, stack: string): string[] { + const frames = stack.split('\n'); + + let cause; + try { + ({ cause } = err); + } catch { + // If 'cause' is a getter that throws, ignore it. + } + + // Remove stack frames identical to frames in cause. + if (cause != null && isError(cause)) { + const causeStack = getStackString(cause); + const causeStackStart = causeStack.indexOf('\n at'); + if (causeStackStart !== -1) { + const causeFrames = causeStack.slice(causeStackStart + 1).split('\n'); + const { len, offset } = identicalSequenceRange(frames, causeFrames); + if (len > 0) { + const skipped = len - 2; + const msg = ` ... ${skipped} lines matching cause stack trace ...`; + frames.splice(offset + 1, skipped, ctx.stylize(msg, 'undefined')); + } + } + } + return frames; +} + +function improveStack(stack: string, constructor: string | null, name: string, tag: string): string { + // A stack trace may contain arbitrary data. Only manipulate the output + // for "regular errors" (errors that "look normal") for now. + let len = name.length; + + if (constructor === null || + (name.endsWith('Error') && + stack.startsWith(name) && + (stack.length === len || stack[len] === ':' || stack[len] === '\n'))) { + let fallback = 'Error'; + if (constructor === null) { + const start = /^([A-Z][a-z_ A-Z0-9[\]()-]+)(?::|\n {4}at)/.exec(stack) || + /^([a-z_A-Z0-9-]*Error)$/.exec(stack); + fallback = (start && start[1]) || ''; + len = fallback.length; + fallback = fallback || 'Error'; + } + const prefix = getPrefix(constructor, tag, fallback).slice(0, -1); + if (name !== prefix) { + if (prefix.includes(name)) { + if (len === 0) { + stack = `${prefix}: ${stack}`; + } else { + stack = `${prefix}${stack.slice(len)}`; + } + } else { + stack = `${prefix} [${name}]${stack.slice(len)}`; + } + } + } + return stack; +} + +function removeDuplicateErrorKeys(ctx: Context, keys: PropertyKey[], err: Error, stack: string): void { + if (!ctx.showHidden && keys.length !== 0) { + for (const name of ['name', 'message', 'stack'] as const) { + const index = keys.indexOf(name); + // Only hide the property in case it's part of the original stack + if (index !== -1 && stack.includes(err[name]!)) { + keys.splice(index, 1); + } + } + } +} + +function markNodeModules(ctx: Context, line: string): string { + let tempLine = ''; + let nodeModule; + let pos = 0; + while ((nodeModule = nodeModulesRegExp.exec(line)) !== null) { + // '/node_modules/'.length === 14 + tempLine += line.slice(pos, nodeModule.index + 14); + tempLine += ctx.stylize(nodeModule[1]!, 'module'); + pos = nodeModule.index + nodeModule[0].length; + } + if (pos !== 0) { + line = tempLine + line.slice(pos); + } + return line; +} + +function formatError(err: Error, constructor: string | null, tag: string, ctx: Context, keys: PropertyKey[]): string { + const name = err.name != null ? String(err.name) : 'Error'; + let stack = getStackString(err); + + removeDuplicateErrorKeys(ctx, keys, err, stack); + + if ('cause' in err && + (keys.length === 0 || !keys.includes('cause'))) { + keys.push('cause'); + } + + // Print errors aggregated into AggregateError + if (Array.isArray((err as { errors?: unknown }).errors) && + (keys.length === 0 || !keys.includes('errors'))) { + keys.push('errors'); + } + + stack = improveStack(stack, constructor, name, tag); + + // Ignore the error message if it's contained in the stack. + let pos = (err.message && stack.indexOf(err.message)) || -1; + if (pos !== -1) + pos += err.message.length; + // Wrap the error in brackets in case it has no stack trace. + const stackStart = stack.indexOf('\n at', pos); + if (stackStart === -1) { + stack = `[${stack}]`; + } else { + let newStack = stack.slice(0, stackStart); + const stackFramePart = stack.slice(stackStart + 1); + const lines = getStackFrames(ctx, err, stackFramePart); + if (ctx.colors) { + // Highlight userland code and node modules. + for (let line of lines) { + newStack += '\n'; + + line = markNodeModules(ctx, line); + + newStack += line; + } + } else { + newStack += `\n${lines.join('\n')}`; + } + stack = newStack; + } + // The message and the stack have to be indented as well! + if (ctx.indentationLvl !== 0) { + const indentation = ' '.repeat(ctx.indentationLvl); + stack = stack.replaceAll('\n', `\n${indentation}`); + } + return stack; +} + +function groupArrayElements(ctx: Context, output: string[], value: unknown[] | undefined): string[] { + let totalLength = 0; + let maxLength = 0; + let i = 0; + let outputLength = output.length; + if (ctx.maxArrayLength !== null && ctx.maxArrayLength < output.length) { + // This makes sure the "... n more items" part is not taken into account. + outputLength--; + } + const separatorSpace = 2; // Add 1 for the space and 1 for the separator. + const dataLen = new Array(outputLength); + // Calculate the total length of all output entries and the individual max + // entries length of all output entries. We have to remove colors first, + // otherwise the length would not be calculated properly. + for (; i < outputLength; i++) { + const len = getStringWidth(output[i]!, ctx.colors); + dataLen[i] = len; + totalLength += len + separatorSpace; + if (maxLength < len) + maxLength = len; + } + // Add two to `maxLength` as we add a single whitespace character plus a comma + // in-between two entries. + const actualMax = maxLength + separatorSpace; + // Check if at least three entries fit next to each other and prevent grouping + // of arrays that contains entries of very different length (i.e., if a single + // entry is longer than 1/5 of all other entries combined). Otherwise the + // space in-between small entries would be enormous. + if (actualMax * 3 + ctx.indentationLvl < ctx.breakLength && + (totalLength / actualMax > 5 || maxLength <= 6)) { + + const approxCharHeights = 2.5; + const averageBias = Math.sqrt(actualMax - totalLength / output.length); + const biasedMax = Math.max(actualMax - 3 - averageBias, 1); + // Dynamically check how many columns seem possible. + const columns = Math.min( + // Ideally a square should be drawn. We expect a character to be about 2.5 + // times as high as wide. This is the area formula to calculate a square + // which contains n rectangles of size `actualMax * approxCharHeights`. + // Divide that by `actualMax` to receive the correct number of columns. + // The added bias increases the columns for short entries. + Math.round( + Math.sqrt( + approxCharHeights * biasedMax * outputLength, + ) / biasedMax, + ), + // Do not exceed the breakLength. + Math.floor((ctx.breakLength - ctx.indentationLvl) / actualMax), + // Limit array grouping for small `compact` modes as the user requested + // minimal grouping. + (ctx.compact === false ? 0 : ctx.compact === true ? inspectDefaultOptions.compact : ctx.compact) * 4, + // Limit the columns to a maximum of fifteen. + 15, + ); + // Return with the original output if no grouping should happen. + if (columns <= 1) { + return output; + } + const tmp: string[] = []; + const maxLineLength: number[] = []; + for (let i = 0; i < columns; i++) { + let lineMaxLength = 0; + for (let j = i; j < output.length; j += columns) { + if (dataLen[j] > lineMaxLength) + lineMaxLength = dataLen[j]; + } + lineMaxLength += separatorSpace; + maxLineLength[i] = lineMaxLength; + } + let order = String.prototype.padStart; + if (value !== undefined) { + for (let i = 0; i < output.length; i++) { + if (typeof value[i] !== 'number' && typeof value[i] !== 'bigint') { + order = String.prototype.padEnd; + break; + } + } + } + // Each iteration creates a single line of grouped entries. + for (let i = 0; i < outputLength; i += columns) { + // The last lines may contain less entries than columns. + const max = Math.min(i + columns, outputLength); + let str = ''; + let j = i; + for (; j < max - 1; j++) { + // Calculate extra color padding in case it's active. This has to be + // done line by line as some lines might contain more colors than + // others. + const padding = maxLineLength[j - i]! + output[j]!.length - dataLen[j]; + str += order.call(`${output[j]}, `, padding, ' '); + } + if (order === String.prototype.padStart) { + const padding = maxLineLength[j - i]! + + output[j]!.length - + dataLen[j] - + separatorSpace; + str += output[j]!.padStart(padding, ' '); + } else { + str += output[j]; + } + tmp.push(str); + } + if (ctx.maxArrayLength !== null && ctx.maxArrayLength < output.length) { + tmp.push(output[outputLength]!); + } + output = tmp; + } + return output; +} + +function handleMaxCallStackSize(ctx: Context, err: Error, constructorName: string, indentationLvl: number): string { + if (isStackOverflowError(err)) { + ctx.seen.pop(); + ctx.indentationLvl = indentationLvl; + return ctx.stylize( + `[${constructorName}: Inspection interrupted ` + + 'prematurely. Maximum call stack size exceeded.]', + 'special', + ); + } + /* c8 ignore next */ + assert.fail(err.stack); +} + +function addNumericSeparator(integerString: string): string { + let result = ''; + let i = integerString.length; + const start = integerString.startsWith('-') ? 1 : 0; + for (; i >= start + 4; i -= 3) { + result = `_${integerString.slice(i - 3, i)}${result}`; + } + return i === integerString.length ? + integerString : + `${integerString.slice(0, i)}${result}`; +} + +function addNumericSeparatorEnd(integerString: string): string { + let result = ''; + let i = 0; + for (; i < integerString.length - 3; i += 3) { + result += `${integerString.slice(i, i + 3)}_`; + } + return i === 0 ? + integerString : + `${result}${integerString.slice(i)}`; +} + +const remainingText = (remaining: number) => `... ${remaining} more item${remaining > 1 ? 's' : ''}`; + +function formatNumber(fn: InspectOptionsStylized["stylize"], number: number, numericSeparator?: boolean): string { + if (!numericSeparator) { + // Format -0 as '-0'. Checking `number === -0` won't distinguish 0 from -0. + if (Object.is(number, -0)) { + return fn('-0', 'number'); + } + return fn(`${number}`, 'number'); + } + const integer = Math.trunc(number); + const string = String(integer); + if (integer === number) { + if (!Number.isFinite(number) || string.includes('e')) { + return fn(string, 'number'); + } + return fn(`${addNumericSeparator(string)}`, 'number'); + } + if (Number.isNaN(number)) { + return fn(string, 'number'); + } + return fn(`${ + addNumericSeparator(string) + }.${ + addNumericSeparatorEnd( + String(number).slice(string.length + 1), + ) + }`, 'number'); +} + +function formatBigInt(fn: InspectOptionsStylized["stylize"], bigint: bigint, numericSeparator?: boolean): string { + const string = String(bigint); + if (!numericSeparator) { + return fn(`${string}n`, 'bigint'); + } + return fn(`${addNumericSeparator(string)}n`, 'bigint'); +} + +type Primitive = string | number | bigint | boolean | undefined | symbol; +function formatPrimitive(fn: InspectOptionsStylized["stylize"], value: Primitive, ctx: Context): string { + if (typeof value === 'string') { + let trailer = ''; + if (ctx.maxStringLength !== null && value.length > ctx.maxStringLength) { + const remaining = value.length - ctx.maxStringLength; + value = value.slice(0, ctx.maxStringLength); + trailer = `... ${remaining} more character${remaining > 1 ? 's' : ''}`; + } + if (ctx.compact !== true && + // We do not support handling unicode characters width with + // the readline getStringWidth function as there are + // performance implications. + value.length > kMinLineLength && + value.length > ctx.breakLength - ctx.indentationLvl - 4) { + return value + .split(/(?<=\n)/) + .map((line) => fn(strEscape(line), 'string')) + .join(` +\n${' '.repeat(ctx.indentationLvl + 2)}`) + + trailer; + } + return fn(strEscape(value), 'string') + trailer; + } + if (typeof value === 'number') + return formatNumber(fn, value, ctx.numericSeparator); + if (typeof value === 'bigint') + return formatBigInt(fn, value, ctx.numericSeparator); + if (typeof value === 'boolean') + return fn(`${value}`, 'boolean'); + if (typeof value === 'undefined') + return fn('undefined', 'undefined'); + // es6 symbol primitive + return fn(Symbol.prototype.toString.call(value), 'symbol'); +} + +function formatNamespaceObject(keys: PropertyKey[], ctx: Context, value: object, recurseTimes: number): string[] { + const output = new Array(keys.length); + for (let i = 0; i < keys.length; i++) { + try { + output[i] = formatProperty(ctx, value, recurseTimes, keys[i]!, + kObjectType); + } catch (err) { + assert(isNativeError(err) && err.name === 'ReferenceError'); + // Use the existing functionality. This makes sure the indentation and + // line breaks are always correct. Otherwise it is very difficult to keep + // this aligned, even though this is a hacky way of dealing with this. + const tmp = { [keys[i]!]: '' }; + output[i] = formatProperty(ctx, tmp, recurseTimes, keys[i]!, kObjectType); + const pos = output[i]!.lastIndexOf(' '); + // We have to find the last whitespace and have to replace that value as + // it will be visualized as a regular string. + output[i] = output[i]!.slice(0, pos + 1) + + ctx.stylize('', 'special'); + } + } + // Reset the keys to an empty array. This prevents duplicated inspection. + keys.length = 0; + return output; +} + +// The array is sparse and/or has extra keys +function formatSpecialArray(ctx: Context, value: unknown[], recurseTimes: number, maxLength: number, output: string[], i: number): string[] { + const keys = Object.keys(value); + let index = i; + for (; i < keys.length && output.length < maxLength; i++) { + const key = keys[i]!; + const tmp = +key; + // Arrays can only have up to 2^32 - 1 entries + if (tmp > 2 ** 32 - 2) { + break; + } + if (`${index}` !== key) { + if (numberRegExp.exec(key) === null) { + break; + } + const emptyItems = tmp - index; + const ending = emptyItems > 1 ? 's' : ''; + const message = `<${emptyItems} empty item${ending}>`; + output.push(ctx.stylize(message, 'undefined')); + index = tmp; + if (output.length === maxLength) { + break; + } + } + output.push(formatProperty(ctx, value, recurseTimes, key, kArrayType)); + index++; + } + const remaining = value.length - index; + if (output.length !== maxLength) { + if (remaining > 0) { + const ending = remaining > 1 ? 's' : ''; + const message = `<${remaining} empty item${ending}>`; + output.push(ctx.stylize(message, 'undefined')); + } + } else if (remaining > 0) { + output.push(remainingText(remaining)); + } + return output; +} + +function formatArrayBuffer(ctx: Context, value: ArrayBuffer): string[] { + let buffer; + try { + buffer = new Uint8Array(value); + } catch { + return [ctx.stylize('(detached)', 'special')]; + } + const maxArrayLength = ctx.maxArrayLength; + let str = Buffer.prototype.hexSlice.call(buffer, 0, Math.min(maxArrayLength, buffer.length)) + .replace(/(.{2})/g, '$1 ') + .trim(); + const remaining = buffer.length - maxArrayLength; + if (remaining > 0) + str += ` ... ${remaining} more byte${remaining > 1 ? 's' : ''}`; + return [`${ctx.stylize('[Uint8Contents]', 'special')}: <${str}>`]; +} + +function formatArray(ctx: Context, value: unknown[], recurseTimes: number): string[] { + const valLen = value.length; + const len = Math.min(Math.max(0, ctx.maxArrayLength), valLen); + + const remaining = valLen - len; + const output: string[] = []; + for (let i = 0; i < len; i++) { + // Special handle sparse arrays. + if (!Object.prototype.hasOwnProperty.call(value, i)) { + return formatSpecialArray(ctx, value, recurseTimes, len, output, i); + } + output.push(formatProperty(ctx, value, recurseTimes, i, kArrayType)); + } + if (remaining > 0) { + output.push(remainingText(remaining)); + } + return output; +} + +function formatTypedArray(value: internal.TypedArray, length: number, ctx: Context, _ignored: unknown, recurseTimes: number): string[] { + const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), length); + const remaining = value.length - maxLength; + const output = new Array(maxLength); + const elementFormatter = value.length > 0 && typeof value[0] === 'number' ? + formatNumber : + formatBigInt; + for (let i = 0; i < maxLength; ++i) { + // @ts-expect-error `value[i]` assumed to be of correct numeric type + output[i] = elementFormatter(ctx.stylize, value[i], ctx.numericSeparator); + } + if (remaining > 0) { + output[maxLength] = remainingText(remaining); + } + if (ctx.showHidden) { + // .buffer goes last, it's not a primitive like the others. + // All besides `BYTES_PER_ELEMENT` are actually getters. + ctx.indentationLvl += 2; + for (const key of [ + 'BYTES_PER_ELEMENT', + 'length', + 'byteLength', + 'byteOffset', + 'buffer', + ] as const) { + const str = formatValue(ctx, value[key], recurseTimes, true); + output.push(`[${key}]: ${str}`); + } + ctx.indentationLvl -= 2; + } + return output; +} + +function formatSet(value: Set | IterableIterator, ctx: Context, _ignored: unknown, recurseTimes: number): string[] { + const length = isSet(value) ? value.size : NaN; + const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), length); + const remaining = length - maxLength; + const output: string[] = []; + ctx.indentationLvl += 2; + let i = 0; + for (const v of value) { + if (i >= maxLength) break; + output.push(formatValue(ctx, v, recurseTimes)); + i++; + } + if (remaining > 0) { + output.push(remainingText(remaining)); + } + ctx.indentationLvl -= 2; + return output; +} + +function formatMap(value: Map | IterableIterator<[unknown, unknown]>, ctx: Context, _ignored: unknown, recurseTimes: number): string[] { + const length = isMap(value) ? value.size : NaN; + const maxLength = Math.min(Math.max(0, ctx.maxArrayLength), length); + const remaining = length - maxLength; + const output: string[] = []; + ctx.indentationLvl += 2; + let i = 0; + for (const { 0: k, 1: v } of value) { + if (i >= maxLength) break; + output.push( + `${formatValue(ctx, k, recurseTimes)} => ${formatValue(ctx, v, recurseTimes)}` + ); + i++; + } + if (remaining > 0) { + output.push(remainingText(remaining)); + } + ctx.indentationLvl -= 2; + return output; +} + +function formatSetIterInner(ctx: Context, recurseTimes: number, entries: unknown[], state: number): string[] { + const maxArrayLength = Math.max(ctx.maxArrayLength, 0); + const maxLength = Math.min(maxArrayLength, entries.length); + const output = new Array(maxLength); + ctx.indentationLvl += 2; + for (let i = 0; i < maxLength; i++) { + output[i] = formatValue(ctx, entries[i], recurseTimes); + } + ctx.indentationLvl -= 2; + if (state === kWeak && !ctx.sorted) { + // Sort all entries to have a halfway reliable output (if more entries than + // retrieved ones exist, we can not reliably return the same output) if the + // output is not sorted anyway. + output.sort(); + } + const remaining = entries.length - maxLength; + if (remaining > 0) { + output.push(remainingText(remaining)); + } + return output; +} + +function formatMapIterInner(ctx: Context, recurseTimes: number, entries: unknown[], state: number): string[] { + const maxArrayLength = Math.max(ctx.maxArrayLength, 0); + // Entries exist as [key1, val1, key2, val2, ...] + const len = entries.length / 2; + const remaining = len - maxArrayLength; + const maxLength = Math.min(maxArrayLength, len); + const output = new Array(maxLength); + let i = 0; + ctx.indentationLvl += 2; + if (state === kWeak) { + for (; i < maxLength; i++) { + const pos = i * 2; + output[i] = + `${formatValue(ctx, entries[pos], recurseTimes)} => ${formatValue(ctx, entries[pos + 1], recurseTimes)}`; + } + // Sort all entries to have a halfway reliable output (if more entries than + // retrieved ones exist, we can not reliably return the same output) if the + // output is not sorted anyway. + if (!ctx.sorted) + output.sort(); + } else { + for (; i < maxLength; i++) { + const pos = i * 2; + const res = [ + formatValue(ctx, entries[pos], recurseTimes), + formatValue(ctx, entries[pos + 1], recurseTimes), + ]; + output[i] = reduceToSingleString( + ctx, res, '', ['[', ']'], kArrayExtrasType, recurseTimes); + } + } + ctx.indentationLvl -= 2; + if (remaining > 0) { + output.push(remainingText(remaining)); + } + return output; +} + +function formatWeakCollection(ctx: Context): string[] { + return [ctx.stylize('', 'special')]; +} + +function formatWeakSet(ctx: Context, value: WeakSet, recurseTimes: number): string[] { + const { entries } = internal.previewEntries(value)!; + return formatSetIterInner(ctx, recurseTimes, entries, kWeak); +} + +function formatWeakMap(ctx: Context, value: WeakMap, recurseTimes: number): string[] { + const { entries } = internal.previewEntries(value)!; + return formatMapIterInner(ctx, recurseTimes, entries, kWeak); +} + +function formatIterator(braces: [string, string], ctx: Context, value: Iterator, recurseTimes: number): string[] { + const { entries, isKeyValue } = internal.previewEntries(value)!; + if (isKeyValue) { + // Mark entry iterators as such. + braces[0] = braces[0].replace(/ Iterator] {$/, ' Entries] {'); + return formatMapIterInner(ctx, recurseTimes, entries, kMapEntries); + } + + return formatSetIterInner(ctx, recurseTimes, entries, kIterator); +} + +function formatPromise(ctx: Context, value: Promise, recurseTimes: number): string[] { + let output: string[]; + const { state, result } = internal.getPromiseDetails(value)!; + if (state === internal.kPending) { + output = [ctx.stylize('', 'special')]; + } else { + ctx.indentationLvl += 2; + const str = formatValue(ctx, result, recurseTimes); + ctx.indentationLvl -= 2; + output = [ + state === internal.kRejected ? + `${ctx.stylize('', 'special')} ${str}` : + str, + ]; + } + return output; +} + +function formatProperty(ctx: Context, value: object, recurseTimes: number, key: PropertyKey, type: number, desc?: PropertyDescriptor, + original = value): string { + let name: string, str: string; + let extra = ' '; + desc = desc || Object.getOwnPropertyDescriptor(value, key) || + { value: (value as Record)[key], enumerable: true }; + if (desc.value !== undefined) { + const diff = (ctx.compact !== true || type !== kObjectType) ? 2 : 3; + ctx.indentationLvl += diff; + str = formatValue(ctx, desc.value, recurseTimes); + if (diff === 3 && ctx.breakLength < getStringWidth(str, ctx.colors)) { + extra = `\n${' '.repeat(ctx.indentationLvl)}`; + } + ctx.indentationLvl -= diff; + } else if (desc.get !== undefined) { + const label = desc.set !== undefined ? 'Getter/Setter' : 'Getter'; + const s = ctx.stylize; + const sp = 'special'; + if (ctx.getters && (ctx.getters === true || + (ctx.getters === 'get' && desc.set === undefined) || + (ctx.getters === 'set' && desc.set !== undefined))) { + try { + const tmp = desc.get.call(original); + ctx.indentationLvl += 2; + if (tmp === null) { + str = `${s(`[${label}:`, sp)} ${s('null', 'null')}${s(']', sp)}`; + } else if (typeof tmp === 'object') { + str = `${s(`[${label}]`, sp)} ${formatValue(ctx, tmp, recurseTimes)}`; + } else { + const primitive = formatPrimitive(s, tmp, ctx); + str = `${s(`[${label}:`, sp)} ${primitive}${s(']', sp)}`; + } + ctx.indentationLvl -= 2; + } catch (err) { + const message = ``; + str = `${s(`[${label}:`, sp)} ${message}${s(']', sp)}`; + } + } else { + str = ctx.stylize(`[${label}]`, sp); + } + } else if (desc.set !== undefined) { + str = ctx.stylize('[Setter]', 'special'); + } else { + str = ctx.stylize('undefined', 'undefined'); + } + if (type === kArrayType) { + return str; + } + if (typeof key === 'symbol') { + const tmp = Symbol.prototype.toString.call(key).replace(strEscapeSequencesReplacer, escapeFn); + name = `[${ctx.stylize(tmp, 'symbol')}]`; + } else if (key === '__proto__') { + name = "['__proto__']"; + } else if (desc.enumerable === false) { + const tmp = String(key).replace(strEscapeSequencesReplacer, escapeFn); + name = `[${tmp}]`; + } else if (keyStrRegExp.exec(String(key)) !== null) { + name = ctx.stylize(String(key), 'name'); + } else { + name = ctx.stylize(strEscape(String(key)), 'string'); + } + return `${name}:${extra}${str}`; +} + +function isBelowBreakLength(ctx: Context, output: string[], start: number, base: string): boolean { + // Each entry is separated by at least a comma. Thus, we start with a total + // length of at least `output.length`. In addition, some cases have a + // whitespace in-between each other that is added to the total as well. + // TODO(BridgeAR): Add unicode support. Use the readline getStringWidth + // function. Check the performance overhead and make it an opt-in in case it's + // significant. + let totalLength = output.length + start; + if (totalLength + output.length > ctx.breakLength) + return false; + for (let i = 0; i < output.length; i++) { + if (ctx.colors) { + totalLength += removeColors(output[i]!).length; + } else { + totalLength += output[i]!.length; + } + if (totalLength > ctx.breakLength) { + return false; + } + } + // Do not line up properties on the same line if `base` contains line breaks. + return base === '' || !base.includes('\n'); +} + +function reduceToSingleString( + ctx: Context, output: string[], base: string, braces: [string, string], extrasType: number, recurseTimes: number, value?: unknown): string { + if (ctx.compact !== true) { + if (typeof ctx.compact === 'number' && ctx.compact >= 1) { + // Memorize the original output length. In case the output is grouped, + // prevent lining up the entries on a single line. + const entries = output.length; + // Group array elements together if the array contains at least six + // separate entries. + if (extrasType === kArrayExtrasType && entries > 6) { + output = groupArrayElements(ctx, output, value as unknown[]); + } + // `ctx.currentDepth` is set to the most inner depth of the currently + // inspected object part while `recurseTimes` is the actual current depth + // that is inspected. + // + // Example: + // + // const a = { first: [ 1, 2, 3 ], second: { inner: [ 1, 2, 3 ] } } + // + // The deepest depth of `a` is 2 (a.second.inner) and `a.first` has a max + // depth of 1. + // + // Consolidate all entries of the local most inner depth up to + // `ctx.compact`, as long as the properties are smaller than + // `ctx.breakLength`. + if (ctx.currentDepth - recurseTimes < ctx.compact && + entries === output.length) { + // Line up all entries on a single line in case the entries do not + // exceed `breakLength`. Add 10 as constant to start next to all other + // factors that may reduce `breakLength`. + const start = output.length + ctx.indentationLvl + + braces[0].length + base.length + 10; + if (isBelowBreakLength(ctx, output, start, base)) { + const joinedOutput = output.join(', '); + if (!joinedOutput.includes('\n')) { + return `${base ? `${base} ` : ''}${braces[0]} ${joinedOutput}` + + ` ${braces[1]}`; + } + } + } + } + // Line up each entry on an individual line. + const indentation = `\n${' '.repeat(ctx.indentationLvl)}`; + return `${base ? `${base} ` : ''}${braces[0]}${indentation} ` + + `${output.join(`,${indentation} `)}${indentation}${braces[1]}`; + } + // Line up all entries on a single line in case the entries do not exceed + // `breakLength`. + if (isBelowBreakLength(ctx, output, 0, base)) { + return `${braces[0]}${base ? ` ${base}` : ''} ${output.join(', ')} ` + + braces[1]; + } + const indentation = ' '.repeat(ctx.indentationLvl); + // If the opening "brace" is too large, like in the case of "Set {", + // we need to force the first item to be on the next line or the + // items will not line up correctly. + const ln = base === '' && braces[0].length === 1 ? + ' ' : `${base ? ` ${base}` : ''}\n${indentation} `; + // Line up each entry on an individual line. + return `${braces[0]}${ln}${output.join(`,\n${indentation} `)} ${braces[1]}`; +} + +function hasBuiltInToString(value: object): boolean { + // Prevent triggering proxy traps. + const proxyTarget = internal.getProxyDetails(value); + if (proxyTarget !== undefined) { + if (proxyTarget === null) { + return true; + } + value = proxyTarget.target as object; + } + + // Count objects that have no `toString` function as built-in. + if (typeof value?.toString !== 'function') { + return true; + } + + // The object has a own `toString` property. Thus it's not not a built-in one. + if (Object.prototype.hasOwnProperty.call(value, 'toString')) { + return false; + } + + // Find the object that has the `toString` property as own property in the + // prototype chain. + let pointer = value; + do { + pointer = Object.getPrototypeOf(pointer); + } while (!Object.prototype.hasOwnProperty.call(pointer, 'toString')); + + // Check closer if the object is a built-in. + const descriptor = Object.getOwnPropertyDescriptor(pointer, 'constructor'); + return descriptor !== undefined && + typeof descriptor.value === 'function' && + builtInObjects.has(descriptor.value.name); +} + +const firstErrorLine = (error: unknown) => (isError(error) ? error.message : String(error)).split('\n', 1)[0]; +let CIRCULAR_ERROR_MESSAGE: string | undefined; +function tryStringify(arg: unknown): string { + try { + return JSON.stringify(arg); + } catch (err) { + // Populate the circular error message lazily + if (!CIRCULAR_ERROR_MESSAGE) { + try { + const a: { a?: unknown } = {}; + a.a = a; + JSON.stringify(a); + } catch (circularError) { + CIRCULAR_ERROR_MESSAGE = firstErrorLine(circularError); + } + } + if (typeof err === "object" && err !== null && "name" in err && err.name === 'TypeError' && + firstErrorLine(err) === CIRCULAR_ERROR_MESSAGE) { + return '[Circular]'; + } + throw err; + } +} + +export function format(...args: unknown[]): string { + return formatWithOptionsInternal(undefined, args); +} + +export function formatWithOptions(inspectOptions: InspectOptions, ...args: unknown[]): string { + validateObject(inspectOptions, 'inspectOptions', { allowArray: true }); + return formatWithOptionsInternal(inspectOptions, args); +} + +function formatNumberNoColor(number: number, options?: InspectOptions): string { + return formatNumber( + stylizeNoColor, + number, + options?.numericSeparator ?? inspectDefaultOptions.numericSeparator, + ); +} + +function formatBigIntNoColor(bigint: bigint, options?: InspectOptions): string { + return formatBigInt( + stylizeNoColor, + bigint, + options?.numericSeparator ?? inspectDefaultOptions.numericSeparator, + ); +} + +function formatWithOptionsInternal(inspectOptions: InspectOptions | undefined, args: unknown[]): string { + const first = args[0]; + let a = 0; + let str = ''; + let join = ''; + + if (typeof first === 'string') { + if (args.length === 1) { + return first; + } + let tempStr; + let lastPos = 0; + + for (let i = 0; i < first.length - 1; i++) { + if (first.charCodeAt(i) === 37) { // '%' + const nextChar = first.charCodeAt(++i); + if (a + 1 !== args.length) { + switch (nextChar) { + case 115: { // 's' + const tempArg = args[++a]; + if (typeof tempArg === 'number') { + tempStr = formatNumberNoColor(tempArg, inspectOptions); + } else if (typeof tempArg === 'bigint') { + tempStr = formatBigIntNoColor(tempArg, inspectOptions); + } else if (typeof tempArg !== 'object' || + tempArg === null || + !hasBuiltInToString(tempArg)) { + tempStr = String(tempArg); + } else { + tempStr = inspect(tempArg, { + ...inspectOptions, + compact: 3, + colors: false, + depth: 0, + }); + } + break; + } + case 106: // 'j' + tempStr = tryStringify(args[++a]); + break; + case 100: { // 'd' + const tempNum = args[++a]; + if (typeof tempNum === 'bigint') { + tempStr = formatBigIntNoColor(tempNum, inspectOptions); + } else if (typeof tempNum === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = formatNumberNoColor(Number(tempNum), inspectOptions); + } + break; + } + case 79: // 'O' + tempStr = inspect(args[++a], inspectOptions); + break; + case 111: // 'o' + tempStr = inspect(args[++a], { + ...inspectOptions, + showHidden: true, + showProxy: true, + depth: 4, + }); + break; + case 105: { // 'i' + const tempInteger = args[++a]; + if (typeof tempInteger === 'bigint') { + tempStr = formatBigIntNoColor(tempInteger, inspectOptions); + } else if (typeof tempInteger === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = formatNumberNoColor( + Number.parseInt(tempInteger as unknown as string), inspectOptions); + } + break; + } + case 102: { // 'f' + const tempFloat = args[++a]; + if (typeof tempFloat === 'symbol') { + tempStr = 'NaN'; + } else { + tempStr = formatNumberNoColor( + Number.parseFloat(tempFloat as unknown as string), inspectOptions); + } + break; + } + case 99: // 'c' + a += 1; + tempStr = ''; + break; + case 37: // '%' + str += first.slice(lastPos, i); + lastPos = i + 1; + continue; + default: // Any other character is not a correct placeholder + continue; + } + if (lastPos !== i - 1) { + str += first.slice(lastPos, i - 1); + } + str += tempStr; + lastPos = i + 1; + } else if (nextChar === 37) { + str += first.slice(lastPos, i); + lastPos = i + 1; + } + } + } + if (lastPos !== 0) { + a++; + join = ' '; + if (lastPos < first.length) { + str += first.slice(lastPos); + } + } + } + + while (a < args.length) { + const value = args[a]; + str += join; + str += typeof value !== 'string' ? inspect(value, inspectOptions) : value; + join = ' '; + a++; + } + return str; +} + +export function isZeroWidthCodePoint(code: number): boolean { + return code <= 0x1F || // C0 control codes + (code >= 0x7F && code <= 0x9F) || // C1 control codes + (code >= 0x300 && code <= 0x36F) || // Combining Diacritical Marks + (code >= 0x200B && code <= 0x200F) || // Modifying Invisible Characters + // Combining Diacritical Marks for Symbols + (code >= 0x20D0 && code <= 0x20FF) || + (code >= 0xFE00 && code <= 0xFE0F) || // Variation Selectors + (code >= 0xFE20 && code <= 0xFE2F) || // Combining Half Marks + (code >= 0xE0100 && code <= 0xE01EF); // Variation Selectors +} + +/** + * Returns the number of columns required to display the given string. + */ +export function getStringWidth(str: string, removeControlChars = true): number { + let width = 0; + + if (removeControlChars) + str = stripVTControlCharacters(str); + str = str.normalize('NFC'); + for (const char of str) { + const code = char.codePointAt(0)!; + if (isFullWidthCodePoint(code)) { + width += 2; + } else if (!isZeroWidthCodePoint(code)) { + width++; + } + } + + return width; +}; + +/** + * Returns true if the character represented by a given + * Unicode code point is full-width. Otherwise returns false. + */ +const isFullWidthCodePoint = (code: number) => { + // Code points are partially derived from: + // https://www.unicode.org/Public/UNIDATA/EastAsianWidth.txt + return code >= 0x1100 && ( + code <= 0x115f || // Hangul Jamo + code === 0x2329 || // LEFT-POINTING ANGLE BRACKET + code === 0x232a || // RIGHT-POINTING ANGLE BRACKET + // CJK Radicals Supplement .. Enclosed CJK Letters and Months + (code >= 0x2e80 && code <= 0x3247 && code !== 0x303f) || + // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A + (code >= 0x3250 && code <= 0x4dbf) || + // CJK Unified Ideographs .. Yi Radicals + (code >= 0x4e00 && code <= 0xa4c6) || + // Hangul Jamo Extended-A + (code >= 0xa960 && code <= 0xa97c) || + // Hangul Syllables + (code >= 0xac00 && code <= 0xd7a3) || + // CJK Compatibility Ideographs + (code >= 0xf900 && code <= 0xfaff) || + // Vertical Forms + (code >= 0xfe10 && code <= 0xfe19) || + // CJK Compatibility Forms .. Small Form Variants + (code >= 0xfe30 && code <= 0xfe6b) || + // Halfwidth and Fullwidth Forms + (code >= 0xff01 && code <= 0xff60) || + (code >= 0xffe0 && code <= 0xffe6) || + // Kana Supplement + (code >= 0x1b000 && code <= 0x1b001) || + // Enclosed Ideographic Supplement + (code >= 0x1f200 && code <= 0x1f251) || + // Miscellaneous Symbols and Pictographs 0x1f300 - 0x1f5ff + // Emoticons 0x1f600 - 0x1f64f + (code >= 0x1f300 && code <= 0x1f64f) || + // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane + (code >= 0x20000 && code <= 0x3fffd) + ); +}; + +/** + * Remove all VT control characters. Use to estimate displayed string width. + */ +export function stripVTControlCharacters(str: string): string { + validateString(str, 'str'); + + return str.replace(ansi, ''); +} + +// ================================================================================================ +// WORKERD SPECIFIC CODE + +// Called from C++ on `console.log()`s to format values +export function formatLog(...args: [...values: unknown[], colors: boolean]): string { + const inspectOptions: InspectOptions = { colors: args.pop() as boolean }; + try { + return formatWithOptions(inspectOptions, ...args); + } catch (err) { + return ``; + } +} + +function isBuiltinPrototype(proto: unknown) { + if (proto === null) return true; + const descriptor = Object.getOwnPropertyDescriptor(proto, 'constructor'); + return ( + descriptor !== undefined && + typeof descriptor.value === "function" && + builtInObjects.has(descriptor.value.name) + ); +} + +function isEntry(value: unknown): value is [unknown, unknown] { + return Array.isArray(value) && value.length === 2; +} +function maybeGetEntries(value: Record): [unknown, unknown][] | undefined { + const entriesFunction = value["entries"]; + if (typeof entriesFunction !== "function") return; + const entriesIterator: unknown = entriesFunction.call(value); + if (typeof entriesIterator !== "object" || entriesIterator === null) return; + if (!(Symbol.iterator in entriesIterator)) return; + const entries = Array.from(entriesIterator as Iterable); + if (!entries.every(isEntry)) return; + return entries; +} + +const kEntries = Symbol("kEntries"); +function hasEntries(value: unknown): value is { [kEntries]: [unknown, unknown][] } { + return typeof value === "object" && value !== null && kEntries in value; +} + +// Default custom inspect implementation for JSG resource types +function formatJsgResourceType( + this: Record, + additionalProperties: Record, + depth: number, + options: InspectOptionsStylized +): unknown { + const name = this.constructor.name; + if (depth < 0) return options.stylize(`[${name}]`, 'special'); + + // Build a plain object for inspection. If this value has an `entries()` function, add those + // entries for map-like `K => V` formatting. Note we can't use a `Map` here as a key may have + // multiple values (e.g. URLSearchParams). + const record: Record = {}; + const maybeEntries = maybeGetEntries(this); + if (maybeEntries !== undefined) record[kEntries] = maybeEntries; + + // Add all instance and prototype non-function-valued properties + let current: object = this; + do { + for (const key of Object.getOwnPropertyNames(current)) { + // `Object.getOwnPropertyDescriptor()` throws `Illegal Invocation` for our prototypes here + const value = this[key]; + // Ignore function-valued and static properties + if (typeof value === "function" || this.constructor.propertyIsEnumerable(key)) continue; + record[key] = value; + } + } while (!isBuiltinPrototype(current = Object.getPrototypeOf(current))); + + // Add additional inspect-only properties as non-enumerable so they appear in square brackets + for (const [key, symbol] of Object.entries(additionalProperties)) { + Object.defineProperty(record, key, { value: this[symbol], enumerable: false }); + } + + // Format the plain object + const inspected = inspect(record, { + ...options, + depth: options.depth == null ? null : depth, + showHidden: true, // Show non-enumerable inspect-only properties + }); + + if (maybeEntries === undefined) { + return `${name} ${inspected}`; + } else { + // Inspecting a entries object gives something like `Object(1) { 'a' => '1' }`, whereas we want + // something like `Headers(1) { 'a' => '1' }`. + return `${name}${inspected.replace("Object", "")}`; + } +} \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts new file mode 100644 index 000000000..88659773c --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts @@ -0,0 +1,616 @@ +import { + CHAR_DOT, + CHAR_FORWARD_SLASH, +} from './constants'; + +import { + validateObject, + validateString, +} from './validators'; + +function isPosixPathSeparator(code : number) { + return code === CHAR_FORWARD_SLASH; +} + +// Resolves . and .. elements in a path with directory names +function normalizeString(path: string, allowAboveRoot: boolean, separator: string, isPathSeparator: (code:number) => boolean) { + let res = ''; + let lastSegmentLength = 0; + let lastSlash = -1; + let dots = 0; + let code = 0; + for (let i = 0; i <= path.length; ++i) { + if (i < path.length) + code = path.charCodeAt(i); + else if (isPathSeparator(code)) + break; + else + code = CHAR_FORWARD_SLASH; + + if (isPathSeparator(code)) { + if (lastSlash === i - 1 || dots === 1) { + // NOOP + } else if (dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || + res.charCodeAt(res.length - 1) !== CHAR_DOT || + res.charCodeAt(res.length - 2) !== CHAR_DOT) { + if (res.length > 2) { + const lastSlashIndex = res.lastIndexOf(separator); + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = + res.length - 1 - res.lastIndexOf(separator); + } + lastSlash = i; + dots = 0; + continue; + } else if (res.length !== 0) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + res += res.length > 0 ? `${separator}..` : '..'; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) + res += `${separator}${path.slice(lastSlash + 1, i)}`; + else + res = path.slice(lastSlash + 1, i); + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } else if (code === CHAR_DOT && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; +} + +function formatExt(ext : string) { + return ext ? `${ext[0] === '.' ? '' : '.'}${ext}` : ''; +} + +/** + * @param {string} sep + * @param {{ + * dir?: string; + * root?: string; + * base?: string; + * name?: string; + * ext?: string; + * }} pathObject + * @returns {string} + */ + +type PathObject = { + dir?: string; + root?: string; + base?: string; + name?: string; + ext?: string; +}; + +function _format(sep : string, pathObject : PathObject) { + validateObject(pathObject, 'pathObject', {}); + const dir = pathObject.dir || pathObject.root; + const base = pathObject.base || + `${pathObject.name || ''}${formatExt(pathObject.ext!)}`; + if (!dir) { + return base; + } + return dir === pathObject.root ? `${dir}${base}` : `${dir}${sep}${base}`; +} + +// We currently do not implement the path.win32 subset. +const win32 = { + resolve(..._: [string[], string]) { + throw new Error('path.win32.resolve() is not implemented.'); + }, + + normalize(_ : string) { + throw new Error('path.win32.normalize() is not implemented.'); + }, + + isAbsolute(_ : string) { + throw new Error('path.win32.isAbsolute() is not implemented.'); + }, + + join(..._ : string[]) { + throw new Error('path.win32.join() is not implemented.'); + }, + + relative(_0 : string, _1 : string) { + throw new Error('path.win32.relative() is not implemented.'); + }, + + toNamespacedPath(_ : string) { + throw new Error('path.win32.toNamedspacedPath() is not implemented.'); + }, + + dirname(_ : string) { + throw new Error('path.win32.dirname() is not implemented.'); + }, + + basename(_0 : string, _1? : string) { + throw new Error('path.win32.basename() is not implemented.'); +}, + +extname(_ : string) { + throw new Error('path.win32.extname() is not implemented.'); +}, + +format(_ : PathObject) { + throw new Error('path.win32.format() is not implemented.'); +}, + +parse(_: string) { + throw new Error('path.win32.parse() is not implemented.'); +}, + +sep: '\\', + delimiter: ';', + win32: null as Object|null, + posix: null as Object|null, +}; + +const posix = { + /** + * path.resolve([from ...], to) + * @param {...string} args + * @returns {string} + */ + resolve(...args: string[]) { + let resolvedPath = ''; + let resolvedAbsolute = false; + + for (let i = args.length - 1; i >= -1 && !resolvedAbsolute; i--) { + const path = i >= 0 ? args[i] : '/'; + + validateString(path, 'path'); + + // Skip empty entries + if (path!.length === 0) { + continue; + } + + resolvedPath = `${path}/${resolvedPath}`; + resolvedAbsolute = path!.charCodeAt(0) === CHAR_FORWARD_SLASH; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeString(resolvedPath, !resolvedAbsolute, '/', + isPosixPathSeparator); + + if (resolvedAbsolute) { + return `/${resolvedPath}`; + } + return resolvedPath.length > 0 ? resolvedPath : '.'; + }, + + /** + * @param {string} path + * @returns {string} + */ + normalize(path : string) { + validateString(path, 'path'); + + if (path.length === 0) + return '.'; + + const isAbsolute = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + const trailingSeparator = path.charCodeAt(path.length - 1) === CHAR_FORWARD_SLASH; + + // Normalize the path + path = normalizeString(path, !isAbsolute, '/', isPosixPathSeparator); + + if (path.length === 0) { + if (isAbsolute) + return '/'; + return trailingSeparator ? './' : '.'; + } + if (trailingSeparator) + path += '/'; + + return isAbsolute ? `/${path}` : path; + }, + + /** + * @param {string} path + * @returns {boolean} + */ + isAbsolute(path : string) { + validateString(path, 'path'); + return path.length > 0 && path.charCodeAt(0) === CHAR_FORWARD_SLASH; + }, + + /** + * @param {...string} args + * @returns {string} + */ + join(...args : string[]) { + if (args.length === 0) + return '.'; + let joined; + for (let i = 0; i < args.length; ++i) { + const arg = args[i]; + validateString(arg, 'path'); + if (arg!.length > 0) { + if (joined === undefined) + joined = arg; + else + joined += `/${arg}`; + } + } + if (joined === undefined) + return '.'; + return posix.normalize(joined); + }, + + /** + * @param {string} from + * @param {string} to + * @returns {string} + */ + relative(from: string, to : string) { + validateString(from, 'from'); + validateString(to, 'to'); + + if (from === to) + return ''; + + // Trim leading forward slashes. + from = posix.resolve(from); + to = posix.resolve(to); + + if (from === to) + return ''; + + const fromStart = 1; + const fromEnd = from.length; + const fromLen = fromEnd - fromStart; + const toStart = 1; + const toLen = to.length - toStart; + + // Compare paths to find the longest common path from root + const length = (fromLen < toLen ? fromLen : toLen); + let lastCommonSep = -1; + let i = 0; + for (; i < length; i++) { + const fromCode = from.charCodeAt(fromStart + i); + if (fromCode !== to.charCodeAt(toStart + i)) + break; + else if (fromCode === CHAR_FORWARD_SLASH) + lastCommonSep = i; + } + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } + if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === CHAR_FORWARD_SLASH) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo/bar'; to='/' + lastCommonSep = 0; + } + } + } + + let out = ''; + // Generate the relative path based on the path difference between `to` + // and `from`. + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === CHAR_FORWARD_SLASH) { + out += out.length === 0 ? '..' : '/..'; + } + } + + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts. + return `${out}${to.slice(toStart + lastCommonSep)}`; + }, + + /** + * @param {string} path + * @returns {string} + */ + toNamespacedPath(path : string) { + // Non-op on posix systems + return path; + }, + + /** + * @param {string} path + * @returns {string} + */ + dirname(path : string) { + validateString(path, 'path'); + if (path.length === 0) + return '.'; + const hasRoot = path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let end = -1; + let matchedSlash = true; + for (let i = path.length - 1; i >= 1; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } + } + + if (end === -1) + return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) + return '//'; + return path.slice(0, end); + }, + + /** + * @param {string} path + * @param {string} [suffix] + * @returns {string} + */ + basename(path : string, suffix? : string) { + if (suffix !== undefined) + validateString(suffix, 'ext'); + validateString(path, 'path'); + + let start = 0; + let end = -1; + let matchedSlash = true; + + if (suffix !== undefined && suffix.length > 0 && suffix.length <= path.length) { + if (suffix === path) + return ''; + let extIdx = suffix.length - 1; + let firstNonSlashEnd = -1; + for (let i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === suffix.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + + if (start === end) + end = firstNonSlashEnd; + else if (end === -1) + end = path.length; + return path.slice(start, end); + } + for (let i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + + if (end === -1) + return ''; + return path.slice(start, end); +}, + +/** + * @param {string} path + * @returns {string} + */ +extname(path : string) { + validateString(path, 'path'); + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + for (let i = path.length - 1; i >= 0; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || + end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + return ''; + } + return path.slice(startDot, end); +}, + +format: _format.bind(null, '/'), + + /** + * @param {string} path + * @returns {{ + * dir: string; + * root: string; + * base: string; + * name: string; + * ext: string; + * }} + */ + parse(path: string) : PathObject { + validateString(path, 'path'); + + const ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) + return ret; + const isAbsolute = + path.charCodeAt(0) === CHAR_FORWARD_SLASH; + let start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } else { + start = 0; + } + let startDot = -1; + let startPart = 0; + let end = -1; + let matchedSlash = true; + let i = path.length - 1; + + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + let preDotState = 0; + + // Get non-dir info + for (; i >= start; --i) { + const code = path.charCodeAt(i); + if (code === CHAR_FORWARD_SLASH) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === CHAR_DOT) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (end !== -1) { + const start = startPart === 0 && isAbsolute ? 1 : startPart; + if (startDot === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + (preDotState === 1 && + startDot === end - 1 && + startDot === startPart + 1)) { + ret.base = ret.name = path.slice(start, end); + } else { + ret.name = path.slice(start, startDot); + ret.base = path.slice(start, end); + ret.ext = path.slice(startDot, end); + } + } + + if (startPart > 0) + ret.dir = path.slice(0, startPart - 1); + else if (isAbsolute) + ret.dir = '/'; + + return ret; +}, + +sep: '/', + delimiter: ':', + win32: null as Object|null, + posix: null as Object|null, +}; + +posix.win32 = win32.win32 = win32; +posix.posix = win32.posix = posix; + +export default posix; +export { posix, win32 }; \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts new file mode 100644 index 000000000..63474c628 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts @@ -0,0 +1,134 @@ + +import { Buffer, isEncoding } from './internal_buffer'; +import { normalizeEncoding } from './internal_utils'; +import { + ERR_INVALID_ARG_TYPE, + ERR_INVALID_THIS, + ERR_UNKNOWN_ENCODING, +} from './internal_errors'; + +import * as bufferUtil from './buffer'; + +const kIncompleteCharactersStart = 0; +const kIncompleteCharactersEnd = 4; +const kMissingBytes = 4; +const kBufferedBytes = 5; +const kEncoding = 6; +const kSize = 7; + +const encodings : Record = { + ascii: 0, + latin1: 1, + utf8: 2, + utf16le: 3, + base64: 4, + base64url: 5, + hex: 6, +}; + +const kNativeDecoder = Symbol('kNativeDecoder'); + +export interface StringDecoder { + encoding: string; + readonly lastChar: Uint8Array; + readonly lastNeed: number; + readonly lastTotal: number; + new (encoding? : string): StringDecoder; + write(buf: ArrayBufferView|DataView|string): string; + end(buf?: ArrayBufferView|DataView|string): string; + text(buf: ArrayBufferView|DataView|string, offset?: number): string; + new (encoding?: string): StringDecoder; +} + +interface InternalDecoder extends StringDecoder { + [kNativeDecoder]: Buffer; +} + +export function StringDecoder(this: StringDecoder, encoding: string = 'utf8') { + const normalizedEncoding = normalizeEncoding(encoding); + if (!isEncoding(normalizedEncoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding); + } + (this as InternalDecoder)[kNativeDecoder] = Buffer.alloc(kSize); + (this as InternalDecoder)[kNativeDecoder][kEncoding] = encodings[normalizedEncoding!]!; + this.encoding = normalizedEncoding!; +} + +function write(this: StringDecoder, buf: ArrayBufferView|DataView|string): string { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + if (typeof buf === 'string') { + return buf; + } + if (!ArrayBuffer.isView(buf)) { + throw new ERR_INVALID_ARG_TYPE('buf', [ + 'Buffer', 'TypedArray', 'DataView', 'string' + ], buf); + } + const buffer = new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength); + return bufferUtil.decode(buffer, (this as InternalDecoder)[kNativeDecoder]); +} + +function end(this: StringDecoder, buf?: ArrayBufferView|DataView|string): string { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + let ret = ''; + if (buf !== undefined) { + ret = this.write(buf); + } + if ((this as InternalDecoder)[kNativeDecoder][kBufferedBytes]! > 0) { + ret += bufferUtil.flush((this as InternalDecoder)[kNativeDecoder]); + } + return ret; +} + +function text(this: StringDecoder, buf: ArrayBufferView|DataView|string, offset?: number) : string { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + (this as InternalDecoder)[kNativeDecoder][kMissingBytes] = 0; + (this as InternalDecoder)[kNativeDecoder][kBufferedBytes] = 0; + return this.write((buf as any).slice(offset)); +} + +StringDecoder.prototype.write = write; +StringDecoder.prototype.end = end; +StringDecoder.prototype.text = text; + +Object.defineProperties(StringDecoder.prototype, { + lastChar: { + enumerable: true, + get(this: StringDecoder) : Buffer { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + return (this as InternalDecoder)[kNativeDecoder].subarray( + kIncompleteCharactersStart, kIncompleteCharactersEnd) as Buffer; + }, + }, + lastNeed: { + enumerable: true, + get(this: StringDecoder) : number { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + return (this as InternalDecoder)[kNativeDecoder][kMissingBytes]!; + }, + }, + lastTotal: { + enumerable: true, + get(this: StringDecoder) : number { + if ((this as InternalDecoder)[kNativeDecoder] === undefined) { + throw new ERR_INVALID_THIS('StringDecoder'); + } + return (this as InternalDecoder)[kNativeDecoder][kBufferedBytes]! + + (this as InternalDecoder)[kNativeDecoder][kMissingBytes]!; + }, + }, +}); + +export default { + StringDecoder +}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts new file mode 100644 index 000000000..5fb614dff --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts @@ -0,0 +1,97 @@ + +import * as internal from "./util"; + +export function isCryptoKey(value: unknown): boolean { + return value instanceof CryptoKey; +} + +export function isKeyObject(_value: unknown): boolean { + // TODO(nodecompat): We currently do not implement KeyObject + return false; +} + +export const isAsyncFunction = internal.isAsyncFunction.bind(internal); +export const isGeneratorFunction = internal.isGeneratorFunction.bind(internal); +export const isGeneratorObject = internal.isGeneratorObject.bind(internal); +export const isAnyArrayBuffer = internal.isAnyArrayBuffer.bind(internal); +export const isArrayBuffer = internal.isArrayBuffer.bind(internal); +export const isArgumentsObject = internal.isArgumentsObject.bind(internal); +export const isBoxedPrimitive = internal.isBoxedPrimitive.bind(internal); +export const isDataView = internal.isDataView.bind(internal); +export const isMap = internal.isMap.bind(internal); +export const isMapIterator = internal.isMapIterator.bind(internal); +export const isModuleNamespaceObject = internal.isModuleNamespaceObject.bind(internal); +export const isNativeError = internal.isNativeError.bind(internal); +export const isPromise = internal.isPromise.bind(internal); +export const isProxy = internal.isProxy.bind(internal); +export const isSet = internal.isSet.bind(internal); +export const isSetIterator = internal.isSetIterator.bind(internal); +export const isSharedArrayBuffer = internal.isSharedArrayBuffer.bind(internal); +export const isWeakMap = internal.isWeakMap.bind(internal); +export const isWeakSet = internal.isWeakSet.bind(internal); +export const isRegExp = internal.isRegExp.bind(internal); +export const isDate = internal.isDate.bind(internal); +export const isStringObject = internal.isStringObject.bind(internal); +export const isSymbolObject = internal.isSymbolObject.bind(internal); +export const isNumberObject = internal.isNumberObject.bind(internal); +export const isBooleanObject = internal.isBooleanObject.bind(internal); +export const isBigIntObject = internal.isBigIntObject.bind(internal); +export const isArrayBufferView = internal.isArrayBufferView.bind(internal); +export const isBigInt64Array = internal.isBigInt64Array.bind(internal); +export const isBigUint64Array = internal.isBigUint64Array.bind(internal); +export const isFloat32Array = internal.isFloat32Array.bind(internal); +export const isFloat64Array = internal.isFloat64Array.bind(internal); +export const isInt8Array = internal.isInt8Array.bind(internal); +export const isInt16Array = internal.isInt16Array.bind(internal); +export const isInt32Array = internal.isInt32Array.bind(internal); +export const isTypedArray = internal.isTypedArray.bind(internal); +export const isUint8Array = internal.isUint8Array.bind(internal); +export const isUint8ClampedArray = internal.isUint8ClampedArray.bind(internal); +export const isUint16Array = internal.isUint16Array.bind(internal); +export const isUint32Array = internal.isUint32Array.bind(internal); + +export default { + isCryptoKey, + isKeyObject, + + isAsyncFunction, + isGeneratorFunction, + isGeneratorObject, + isAnyArrayBuffer, + isArrayBuffer, + isArgumentsObject, + isBoxedPrimitive, + isDataView, + isMap, + isMapIterator, + isModuleNamespaceObject, + isNativeError, + isPromise, + isProxy, + isSet, + isSetIterator, + isSharedArrayBuffer, + isWeakMap, + isWeakSet, + isRegExp, + isDate, + isStringObject, + isSymbolObject, + isNumberObject, + isBooleanObject, + isBigIntObject, + isArrayBufferView, + isBigInt64Array, + isBigUint64Array, + isFloat32Array, + isFloat64Array, + isInt8Array, + isInt16Array, + isInt32Array, + isTypedArray, + isUint8Array, + isUint8ClampedArray, + isUint16Array, + isUint32Array, + // TODO(soon): isExternal +}; \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts new file mode 100644 index 000000000..a75b67790 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts @@ -0,0 +1,182 @@ + +export function normalizeEncoding(enc?: string) : string | undefined { + if (enc == null || + enc === "utf8" || + enc === "utf-8" || + enc === "UTF8" || + enc === "UTF-8") return "utf8"; + return slowCases(enc); +} + +export function slowCases(enc: string) : string | undefined { + switch (enc.length) { + case 4: + if (enc === "UTF8") return "utf8"; + if (enc === "ucs2" || enc === "UCS2") return "utf16le"; + enc = `${enc}`.toLowerCase(); + if (enc === "utf8") return "utf8"; + if (enc === "ucs2") return "utf16le"; + break; + case 3: + if ( + enc === "hex" || enc === "HEX" || + `${enc}`.toLowerCase() === "hex" + ) { + return "hex"; + } + break; + case 5: + if (enc === "ascii") return "ascii"; + if (enc === "ucs-2") return "utf16le"; + if (enc === "UTF-8") return "utf8"; + if (enc === "ASCII") return "ascii"; + if (enc === "UCS-2") return "utf16le"; + enc = `${enc}`.toLowerCase(); + if (enc === "utf-8") return "utf8"; + if (enc === "ascii") return "ascii"; + if (enc === "ucs-2") return "utf16le"; + break; + case 6: + if (enc === "base64") return "base64"; + if (enc === "latin1" || enc === "binary") return "latin1"; + if (enc === "BASE64") return "base64"; + if (enc === "LATIN1" || enc === "BINARY") return "latin1"; + enc = `${enc}`.toLowerCase(); + if (enc === "base64") return "base64"; + if (enc === "latin1" || enc === "binary") return "latin1"; + break; + case 7: + if ( + enc === "utf16le" || enc === "UTF16LE" || + `${enc}`.toLowerCase() === "utf16le" + ) { + return "utf16le"; + } + break; + case 8: + if ( + enc === "utf-16le" || enc === "UTF-16LE" || + `${enc}`.toLowerCase() === "utf-16le" + ) { + return "utf16le"; + } + break; + case 9: + if ( + enc === "base64url" || enc === "BASE64URL" || + `${enc}`.toLowerCase() === "base64url" + ) { + return "base64url"; + } + break; + default: + if (enc === "") return "utf8"; + } + return undefined; +} + +export function spliceOne(list: (string|undefined)[], index: number) { + for (; index + 1 < list.length; index++) list[index] = list[index + 1]; + list.pop(); +} + +export const ALL_PROPERTIES = 0; +export const ONLY_WRITABLE = 1; +export const ONLY_ENUMERABLE = 2; +export const ONLY_CONFIGURABLE = 4; +export const ONLY_ENUM_WRITABLE = 6; +export const SKIP_STRINGS = 8; +export const SKIP_SYMBOLS = 16; + +const isNumericLookup: Record = {}; +export function isArrayIndex(value: unknown): value is number | string { + switch (typeof value) { + case "number": + return value >= 0 && (value | 0) === value; + case "string": { + const result = isNumericLookup[value]; + if (result !== void 0) { + return result; + } + const length = value.length; + if (length === 0) { + return isNumericLookup[value] = false; + } + let ch = 0; + let i = 0; + for (; i < length; ++i) { + ch = value.charCodeAt(i); + if ( + i === 0 && ch === 0x30 && length > 1 /* must not start with 0 */ || + ch < 0x30 /* 0 */ || ch > 0x39 /* 9 */ + ) { + return isNumericLookup[value] = false; + } + } + return isNumericLookup[value] = true; + } + default: + return false; + } +} + +export function getOwnNonIndexProperties( + // deno-lint-ignore ban-types + obj: object, + filter: number, +): (string | symbol)[] { + let allProperties = [ + ...Object.getOwnPropertyNames(obj), + ...Object.getOwnPropertySymbols(obj), + ]; + + if (Array.isArray(obj)) { + allProperties = allProperties.filter((k) => !isArrayIndex(k)); + } + + if (filter === ALL_PROPERTIES) { + return allProperties; + } + + const result: (string | symbol)[] = []; + for (const key of allProperties) { + const desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc === undefined) { + continue; + } + if (filter & ONLY_WRITABLE && !desc.writable) { + continue; + } + if (filter & ONLY_ENUMERABLE && !desc.enumerable) { + continue; + } + if (filter & ONLY_CONFIGURABLE && !desc.configurable) { + continue; + } + if (filter & SKIP_STRINGS && typeof key === "string") { + continue; + } + if (filter & SKIP_SYMBOLS && typeof key === "symbol") { + continue; + } + result.push(key); + } + return result; +} + +export function createDeferredPromise() { + let resolve; + let reject; + + // eslint-disable-next-line promise/param-names + const promise = new Promise((res, rej) => { + resolve = res; + reject = rej; + }) + return { + promise, + resolve, + reject, + }; +} + diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts new file mode 100644 index 000000000..d72466f2c --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts @@ -0,0 +1,65 @@ +import { + validateObject, +} from './validators'; + +import { + ERR_INVALID_ARG_VALUE, +} from './internal_errors' + +export function nextTick(cb: Function, ...args: unknown[]) { + queueMicrotask(() => { cb(...args); }); +}; + +// Note that there is no process-level environment in workers so the process.env +// object is initially empty. This is different from Node.js where process.env +// picks up values from the operating system environment. The configured bindings +// for the worker are accessible from the env argument passed into the fetch +// handler and have no impact here. + +export const env = new Proxy({}, { + // Per Node.js rules. process.env values must be coerced to strings. + // When defined using defineProperty, the property descriptor must be writable, + // configurable, and enumerable using just a falsy check. Getters and setters + // are not permitted. + set(obj: object, prop: PropertyKey, value: any) { + return Reflect.set(obj, prop, `${value}`); + }, + defineProperty(obj: object, prop: PropertyKey, descriptor: PropertyDescriptor) { + validateObject(descriptor, 'descriptor', {}); + if (Reflect.has(descriptor, 'get') || Reflect.has(descriptor, 'set')) { + throw new ERR_INVALID_ARG_VALUE('descriptor', descriptor, + 'process.env value must not have getter/setter'); + } + if (!descriptor.configurable) { + throw new ERR_INVALID_ARG_VALUE('descriptor.configurable', descriptor, + 'process.env value must be configurable') + } + if (!descriptor.enumerable) { + throw new ERR_INVALID_ARG_VALUE('descriptor.enumerable', descriptor, + 'process.env value must be enumerable') + } + if (!descriptor.writable) { + throw new ERR_INVALID_ARG_VALUE('descriptor.writable', descriptor, + 'process.env value must be writable') + } + if (Reflect.has(descriptor, 'value')) { + Reflect.set(descriptor, 'value', `${descriptor.value}`); + } else { + throw new ERR_INVALID_ARG_VALUE('descriptor.value', descriptor, + 'process.env value must be specified explicitly'); + } + return Reflect.defineProperty(obj, prop, descriptor); + } +}); + +export const argv = []; + +export const platform = 'wasm'; + + +export default { + nextTick, + env, + argv, + platform, +}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js new file mode 100644 index 000000000..ad3aadfed --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js @@ -0,0 +1,730 @@ +/* eslint-disable */ +import { + Readable, +} from './streams_readable'; + +import { TextEncoder, TextDecoder } from "@sinonjs/text-encoding"; + +import { + Writable, +} from './streams_writable'; + +import { + Duplex, +} from './streams_duplex'; + +import { + destroy, + eos as finished, + isDestroyed, + isReadable, + isWritable, + isWritableEnded, +} from './streams_util'; + +import { + Buffer, +} from './internal_buffer'; + +import { + ERR_INVALID_ARG_TYPE, + ERR_INVALID_ARG_VALUE, + ERR_STREAM_PREMATURE_CLOSE, + AbortError, +} from './internal_errors'; + +import { + createDeferredPromise, + normalizeEncoding, +} from './internal_utils'; + +import { + validateBoolean, + validateObject, +} from './validators'; + +import * as process from './process'; + +const encoder = new TextEncoder(); + +/** + * @param {Writable} streamWritable + * @returns {WritableStream} + */ +export function newWritableStreamFromStreamWritable(streamWritable) { + // Not using the internal/streams/utils isWritableNodeStream utility + // here because it will return false if streamWritable is a Duplex + // whose writable option is false. For a Duplex that is not writable, + // we want it to pass this check but return a closed WritableStream. + // We check if the given stream is a stream.Writable or http.OutgoingMessage + const checkIfWritableOrOutgoingMessage = + streamWritable && + typeof streamWritable?.write === 'function' && + typeof streamWritable?.on === 'function'; + if (!checkIfWritableOrOutgoingMessage) { + throw new ERR_INVALID_ARG_TYPE( + 'streamWritable', + 'stream.Writable', + streamWritable, + ); + } + + if (isDestroyed(streamWritable) || !isWritable(streamWritable)) { + const writable = new WritableStream(); + writable.close(); + return writable; + } + + const highWaterMark = streamWritable.writableHighWaterMark; + const strategy = + streamWritable.writableObjectMode ? + new CountQueuingStrategy({ highWaterMark }) : + { highWaterMark }; + + let controller; + let backpressurePromise; + let closed; + + function onDrain() { + if (backpressurePromise !== undefined) + backpressurePromise.resolve(); + } + + const cleanup = finished(streamWritable, (error) => { + if (error?.code === 'ERR_STREAM_PREMATURE_CLOSE') { + const err = new AbortError(undefined, { cause: error }); + error = err; + } + + cleanup(); + // This is a protection against non-standard, legacy streams + // that happen to emit an error event again after finished is called. + streamWritable.on('error', () => {}); + if (error != null) { + if (backpressurePromise !== undefined) + backpressurePromise.reject(error); + // If closed is not undefined, the error is happening + // after the WritableStream close has already started. + // We need to reject it here. + if (closed !== undefined) { + closed.reject(error); + closed = undefined; + } + controller.error(error); + controller = undefined; + return; + } + + if (closed !== undefined) { + closed.resolve(); + closed = undefined; + return; + } + controller.error(new AbortError()); + controller = undefined; + }); + + streamWritable.on('drain', onDrain); + + return new WritableStream({ + start(c) { controller = c; }, + + async write(chunk) { + if (streamWritable.writableNeedDrain || !streamWritable.write(chunk)) { + backpressurePromise = createDeferredPromise(); + return backpressurePromise.promise.finally(() => { + backpressurePromise = undefined; + }); + } + }, + + abort(reason) { + destroy(streamWritable, reason); + }, + + close() { + if (closed === undefined && !isWritableEnded(streamWritable)) { + closed = createDeferredPromise(); + streamWritable.end(); + return closed.promise; + } + + controller = undefined; + return Promise.resolve(); + }, + }, strategy); +} + +/** + * @param {WritableStream} writableStream + * @param {{ + * decodeStrings? : boolean, + * highWaterMark? : number, + * objectMode? : boolean, + * signal? : AbortSignal, + * }} [options] + * @returns {Writable} + */ +export function newStreamWritableFromWritableStream(writableStream, options = {}) { + if (!(writableStream instanceof WritableStream)) { + throw new ERR_INVALID_ARG_TYPE( + 'writableStream', + 'WritableStream', + writableStream); + } + + validateObject(options, 'options'); + const { + highWaterMark, + decodeStrings = true, + objectMode = false, + signal, + } = options; + + validateBoolean(objectMode, 'options.objectMode'); + validateBoolean(decodeStrings, 'options.decodeStrings'); + + const writer = writableStream.getWriter(); + let closed = false; + + const writable = new Writable({ + highWaterMark, + objectMode, + decodeStrings, + signal, + + writev(chunks, callback) { + function done(error) { + error = error.filter((e) => e); + try { + callback(error.length === 0 ? undefined : error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => destroy(writable, error)); + } + } + + writer.ready.then(() => { + return Promise.all(chunks.map((data) => writer.write(data))) + .then(done, done); + }, + done); + }, + + write(chunk, encoding, callback) { + if (typeof chunk === 'string' && decodeStrings && !objectMode) { + const enc = normalizeEncoding(encoding); + + if (enc === 'utf8') { + chunk = encoder.encode(chunk); + } else { + chunk = Buffer.from(chunk, encoding); + chunk = new Uint8Array( + chunk.buffer, + chunk.byteOffset, + chunk.byteLength + ); + } + } + + function done(error) { + try { + callback(error); + } catch (error) { + destroy(writable, error); + } + } + + writer.ready.then(() => { + return writer.write(chunk).then(done, done); + }, + done); + }, + + destroy(error, callback) { + function done() { + try { + callback(error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => { throw error; }); + } + } + + if (!closed) { + if (error != null) { + writer.abort(error).then(done, done); + } else { + writer.close().then(done, done); + } + return; + } + + done(); + }, + + final(callback) { + function done(error) { + try { + callback(error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => destroy(writable, error)); + } + } + + if (!closed) { + writer.close().then(done, done); + } + }, + }); + + writer.closed.then(() => { + // If the WritableStream closes before the stream.Writable has been + // ended, we signal an error on the stream.Writable. + closed = true; + if (!isWritableEnded(writable)) + destroy(writable, new ERR_STREAM_PREMATURE_CLOSE()); + }, + (error) => { + // If the WritableStream errors before the stream.Writable has been + // destroyed, signal an error on the stream.Writable. + closed = true; + destroy(writable, error); + }); + + return writable; +} + +/** + * @typedef {import('./queuingstrategies').QueuingStrategy} QueuingStrategy + * @param {Readable} streamReadable + * @param {{ + * strategy : QueuingStrategy + * }} [options] + * @returns {ReadableStream} + */ +export function newReadableStreamFromStreamReadable(streamReadable, options = {}) { + // Not using the internal/streams/utils isReadableNodeStream utility + // here because it will return false if streamReadable is a Duplex + // whose readable option is false. For a Duplex that is not readable, + // we want it to pass this check but return a closed ReadableStream. + if (typeof streamReadable?._readableState !== 'object') { + throw new ERR_INVALID_ARG_TYPE( + 'streamReadable', + 'stream.Readable', + streamReadable); + } + + if (isDestroyed(streamReadable) || !isReadable(streamReadable)) { + const readable = new ReadableStream(); + readable.cancel(); + return readable; + } + + const objectMode = streamReadable.readableObjectMode; + const highWaterMark = streamReadable.readableHighWaterMark; + + const evaluateStrategyOrFallback = (strategy) => { + // If there is a strategy available, use it + if (strategy) + return strategy; + + if (objectMode) { + // When running in objectMode explicitly but no strategy, we just fall + // back to CountQueuingStrategy + return new CountQueuingStrategy({ highWaterMark }); + } + + // When not running in objectMode explicitly, we just fall + // back to a minimal strategy that just specifies the highWaterMark + // and no size algorithm. Using a ByteLengthQueuingStrategy here + // is unnecessary. + return { highWaterMark }; + }; + + const strategy = evaluateStrategyOrFallback(options?.strategy); + + let controller; + + function onData(chunk) { + // Copy the Buffer to detach it from the pool. + if (Buffer.isBuffer(chunk) && !objectMode) + chunk = new Uint8Array(chunk); + controller.enqueue(chunk); + if (controller.desiredSize <= 0) + streamReadable.pause(); + } + + streamReadable.pause(); + + const cleanup = finished(streamReadable, (error) => { + if (error?.code === 'ERR_STREAM_PREMATURE_CLOSE') { + const err = new AbortError(undefined, { cause: error }); + error = err; + } + + cleanup(); + // This is a protection against non-standard, legacy streams + // that happen to emit an error event again after finished is called. + streamReadable.on('error', () => {}); + if (error) + return controller.error(error); + controller.close(); + }); + + streamReadable.on('data', onData); + + return new ReadableStream({ + start(c) { controller = c; }, + + pull() { streamReadable.resume(); }, + + cancel(reason) { + destroy(streamReadable, reason); + }, + }, strategy); +} + +/** + * @param {ReadableStream} readableStream + * @param {{ + * highWaterMark? : number, + * encoding? : string, + * objectMode? : boolean, + * signal? : AbortSignal, + * }} [options] + * @returns {Readable} + */ +export function newStreamReadableFromReadableStream(readableStream, options = {}) { + if (!(readableStream instanceof ReadableStream)) { + throw new ERR_INVALID_ARG_TYPE( + 'readableStream', + 'ReadableStream', + readableStream); + } + + validateObject(options, 'options'); + const { + highWaterMark, + encoding, + objectMode = false, + signal, + } = options; + + if (encoding !== undefined && !Buffer.isEncoding(encoding)) + throw new ERR_INVALID_ARG_VALUE(encoding, 'options.encoding'); + validateBoolean(objectMode, 'options.objectMode'); + + const reader = readableStream.getReader(); + let closed = false; + + const readable = new Readable({ + objectMode, + highWaterMark, + encoding, + signal, + + read() { + reader.read().then((chunk) => { + if (chunk.done) { + // Value should always be undefined here. + readable.push(null); + } else { + readable.push(chunk.value); + } + }, + (error) => destroy(readable, error)); + }, + + destroy(error, callback) { + function done() { + try { + callback(error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => { throw error; }); + } + } + + if (!closed) { + reader.cancel(error).then(done, done); + return; + } + done(); + }, + }); + + reader.closed.then(() => { + closed = true; + }, + (error) => { + closed = true; + destroy(readable, error); + }); + + return readable; +} + +/** + * @typedef {import('./readablestream').ReadableWritablePair + * } ReadableWritablePair + * @typedef {import('../../stream').Duplex} Duplex + */ + +/** + * @param {Duplex} duplex + * @returns {ReadableWritablePair} + */ +export function newReadableWritablePairFromDuplex(duplex) { + // Not using the internal/streams/utils isWritableNodeStream and + // isReadableNodeStream utilities here because they will return false + // if the duplex was created with writable or readable options set to + // false. Instead, we'll check the readable and writable state after + // and return closed WritableStream or closed ReadableStream as + // necessary. + if (typeof duplex?._writableState !== 'object' || + typeof duplex?._readableState !== 'object') { + throw new ERR_INVALID_ARG_TYPE('duplex', 'stream.Duplex', duplex); + } + + if (isDestroyed(duplex)) { + const writable = new WritableStream(); + const readable = new ReadableStream(); + writable.close(); + readable.cancel(); + return { readable, writable }; + } + + const writable = + isWritable(duplex) ? + newWritableStreamFromStreamWritable(duplex) : + new WritableStream(); + + if (!isWritable(duplex)) + writable.close(); + + const readable = + isReadable(duplex) ? + newReadableStreamFromStreamReadable(duplex) : + new ReadableStream(); + + if (!isReadable(duplex)) + readable.cancel(); + + return { writable, readable }; +} + +/** + * @param {ReadableWritablePair} pair + * @param {{ + * allowHalfOpen? : boolean, + * decodeStrings? : boolean, + * encoding? : string, + * highWaterMark? : number, + * objectMode? : boolean, + * signal? : AbortSignal, + * }} [options] + * @returns {Duplex} + */ +export function newStreamDuplexFromReadableWritablePair(pair = {}, options = {}) { + validateObject(pair, 'pair'); + const { + readable: readableStream, + writable: writableStream, + } = pair; + + if (!(readableStream instanceof ReadableStream)) { + throw new ERR_INVALID_ARG_TYPE( + 'pair.readable', + 'ReadableStream', + readableStream); + } + if (!(writableStream instanceof WritableStream)) { + throw new ERR_INVALID_ARG_TYPE( + 'pair.writable', + 'WritableStream', + writableStream); + } + + validateObject(options, 'options'); + const { + allowHalfOpen = false, + objectMode = false, + encoding, + decodeStrings = true, + highWaterMark, + signal, + } = options; + + validateBoolean(objectMode, 'options.objectMode'); + if (encoding !== undefined && !Buffer.isEncoding(encoding)) + throw new ERR_INVALID_ARG_VALUE(encoding, 'options.encoding'); + + const writer = writableStream.getWriter(); + const reader = readableStream.getReader(); + let writableClosed = false; + let readableClosed = false; + + const duplex = new Duplex({ + allowHalfOpen, + highWaterMark, + objectMode, + encoding, + decodeStrings, + signal, + + writev(chunks, callback) { + function done(error) { + error = error.filter((e) => e); + try { + callback(error.length === 0 ? undefined : error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => destroy(duplex, error)); + } + } + + writer.ready.then(() => { + return Promise.all(chunks.map((data) => { + return writer.write(data); + })).then(done, done); + }, + done); + }, + + write(chunk, encoding, callback) { + if (typeof chunk === 'string' && decodeStrings && !objectMode) { + const enc = normalizeEncoding(encoding); + + if (enc === 'utf8') { + chunk = encoder.encode(chunk); + } else { + chunk = Buffer.from(chunk, encoding); + chunk = new Uint8Array( + chunk.buffer, + chunk.byteOffset, + chunk.byteLength + ); + } + } + + function done(error) { + try { + callback(error); + } catch (error) { + destroy(duplex, error); + } + } + + writer.ready.then(() => { + return writer.write(chunk).then(done, done); + }, + done); + }, + + final(callback) { + function done(error) { + try { + callback(error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => destroy(duplex, error)); + } + } + + if (!writableClosed) { + writer.close().then(done, done); + } + }, + + read() { + reader.read().then((chunk) => { + if (chunk.done) { + duplex.push(null); + } else { + duplex.push(chunk.value); + } + }, + (error) => destroy(duplex, error)); + }, + + destroy(error, callback) { + function done() { + try { + callback(error); + } catch (error) { + // In a next tick because this is happening within + // a promise context, and if there are any errors + // thrown we don't want those to cause an unhandled + // rejection. Let's just escape the promise and + // handle it separately. + process.nextTick(() => { throw error; }); + } + } + + async function closeWriter() { + if (!writableClosed) + await writer.abort(error); + } + + async function closeReader() { + if (!readableClosed) + await reader.cancel(error); + } + + if (!writableClosed || !readableClosed) { + Promise.all([ closeWriter(), closeReader() ]).then(done, done); + return; + } + + done(); + }, + }); + + writer.closed.then(() => { + writableClosed = true; + if (!isWritableEnded(duplex)) + destroy(duplex, new ERR_STREAM_PREMATURE_CLOSE()); + }, + (error) => { + writableClosed = true; + readableClosed = true; + destroy(duplex, error); + }); + + reader.closed.then(() => { + readableClosed = true; + }, + (error) => { + writableClosed = true; + readableClosed = true; + destroy(duplex, error); + }); + + return duplex; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js new file mode 100644 index 000000000..7b2b286c7 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js @@ -0,0 +1,479 @@ +import { + Readable, + from, +} from './streams_readable'; + +import { + Writable, +} from './streams_writable'; + +import { + newStreamDuplexFromReadableWritablePair, + newReadableWritablePairFromDuplex, +} from './streams_adapters'; + +import { + createDeferredPromise, +} from './internal_utils'; + +import * as process from './process'; + +import { + destroyer, + eos, + isReadable, + isWritable, + isIterable, + isNodeStream, + isReadableNodeStream, + isWritableNodeStream, + isDuplexNodeStream, +} from './streams_util'; + +import { + AbortError, + ERR_INVALID_ARG_TYPE, + ERR_INVALID_RETURN_VALUE, +} from './internal_errors'; + +Object.setPrototypeOf(Duplex.prototype, Readable.prototype); +Object.setPrototypeOf(Duplex, Readable); +{ + const keys = Object.keys(Writable.prototype); + // Allow the keys array to be GC'ed. + for (let i = 0; i < keys.length; i++) { + const method = keys[i]; + if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; + } +} + +export function isDuplexInstance(obj) { + return obj instanceof Duplex; +} + +export function Duplex(options) { + if (!(this instanceof Duplex)) return new Duplex(options); + Readable.call(this, options); + Writable.call(this, options); + if (options) { + this.allowHalfOpen = options.allowHalfOpen !== false; + if (options.readable === false) { + this._readableState.readable = false; + this._readableState.ended = true; + this._readableState.endEmitted = true; + } + if (options.writable === false) { + this._writableState.writable = false; + this._writableState.ending = true; + this._writableState.ended = true; + this._writableState.finished = true; + } + } else { + this.allowHalfOpen = true; + } +} +Object.defineProperties(Duplex.prototype, { + writable: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writable') + }, + writableHighWaterMark: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark') + }, + writableObjectMode: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode') + }, + writableBuffer: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableBuffer') + }, + writableLength: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableLength') + }, + writableFinished: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableFinished') + }, + writableCorked: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableCorked') + }, + writableEnded: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableEnded') + }, + writableNeedDrain: { + ...Object.getOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain') + }, + destroyed: { + get() { + if (this._readableState === undefined || this._writableState === undefined) { + return false + } + return this._readableState.destroyed && this._writableState.destroyed + }, + set(value) { + // Backward compatibility, the user is explicitly + // managing destroyed. + if (this._readableState && this._writableState) { + this._readableState.destroyed = value + this._writableState.destroyed = value + } + } + } +}); + +Duplex.fromWeb = function (pair, options) { + return newStreamDuplexFromReadableWritablePair(pair, options) +} +Duplex.toWeb = function (duplex) { + return newReadableWritablePairFromDuplex(duplex) +} + +// ====================================================================================== + +Duplex.from = function (body) { + return duplexify(body, 'body') +} + +function isBlob(b) { + return b instanceof Blob; +} + +// This is needed for pre node 17. +class Duplexify extends (Duplex) { + constructor(options) { + super(options); + // https://github.com/nodejs/node/pull/34385 + + if ((options === null || options === undefined ? undefined : options.readable) === false) { + this['_readableState'].readable = false; + this['_readableState'].ended = true; + this['_readableState'].endEmitted = true; + } + if ((options === null || options === undefined ? undefined : options.writable) === false) { + this['_readableState'].writable = false; + this['_readableState'].ending = true; + this['_readableState'].ended = true; + this['_readableState'].finished = true; + } + } +} + +function duplexify(body, name) { + if (isDuplexNodeStream(body)) { + return body; + } + if (isReadableNodeStream(body)) { + return _duplexify({ + readable: body + }); + } + if (isWritableNodeStream(body)) { + return _duplexify({ + writable: body + }); + } + if (isNodeStream(body)) { + return _duplexify({ + writable: false, + readable: false + }); + } + + // TODO: Webstreams + // if (isReadableStream(body)) { + // return _duplexify({ readable: Readable.fromWeb(body) }); + // } + + // TODO: Webstreams + // if (isWritableStream(body)) { + // return _duplexify({ writable: Writable.fromWeb(body) }); + // } + + if (typeof body === 'function') { + const { value, write, final, destroy } = fromAsyncGen(body) + if (isIterable(value)) { + return from(Duplexify, value, { + // TODO (ronag): highWaterMark? + objectMode: true, + write, + final, + destroy + }); + } + const then = value.then; + if (typeof then === 'function') { + let d; + const promise = Reflect.apply(then, value, [ + (val) => { + if (val != null) { + throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val) + } + }, + (err) => { + destroyer(d, err) + } + ]); + + return (d = new Duplexify({ + // TODO (ronag): highWaterMark? + objectMode: true, + readable: false, + write, + final(cb) { + final(async () => { + try { + await promise + process.nextTick(cb, null); + } catch (err) { + process.nextTick(cb, err); + } + }) + }, + destroy + })); + } + throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value) + } + if (isBlob(body)) { + return duplexify(body.arrayBuffer(), name); + } + if (isIterable(body)) { + return from(Duplexify, body, { + // TODO (ronag): highWaterMark? + objectMode: true, + writable: false + }) + } + + // TODO: Webstreams. + // if ( + // isReadableStream(body?.readable) && + // isWritableStream(body?.writable) + // ) { + // return Duplexify.fromWeb(body); + // } + + if ( + typeof (body === null || body === undefined ? undefined : body.writable) === 'object' || + typeof (body === null || body === undefined ? undefined : body.readable) === 'object' + ) { + const readable = + body !== null && body !== undefined && body.readable + ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable) + ? body === null || body === undefined + ? undefined + : body.readable + : duplexify(body.readable, name) + : undefined; + const writable = + body !== null && body !== undefined && body.writable + ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable) + ? body === null || body === undefined + ? undefined + : body.writable + : duplexify(body.writable, name) + : undefined; + return _duplexify({ + readable, + writable + }); + } + const then = body?.then + if (typeof then === 'function') { + let d; + Reflect.apply(then, body, [ + (val) => { + if (val != null) { + d.push(val); + } + d.push(null); + }, + (err) => { + destroyer(d, err); + } + ]); + + return (d = new Duplexify({ + objectMode: true, + writable: false, + read() {} + })); + } + throw new ERR_INVALID_ARG_TYPE( + name, + [ + 'Blob', + 'ReadableStream', + 'WritableStream', + 'Stream', + 'Iterable', + 'AsyncIterable', + 'Function', + '{ readable, writable } pair', + 'Promise' + ], + body + ) +} + +function fromAsyncGen(fn) { + let { promise, resolve } = createDeferredPromise() + const ac = new AbortController() + const signal = ac.signal + const value = fn( + (async function* () { + while (true) { + const _promise = promise; + promise = null; + const { chunk, done, cb } = await _promise; + process.nextTick(cb); + if (done) return; + if (signal.aborted) + throw new AbortError(undefined, { + cause: signal.reason + }); + ({ promise, resolve } = createDeferredPromise()); + yield chunk; + } + })(), + { + signal + } + ); + return { + value, + write(chunk, _encoding, cb) { + const _resolve = resolve; + resolve = null; + _resolve({ + chunk, + done: false, + cb + }) + }, + final(cb) { + const _resolve = resolve; + resolve = null; + (_resolve)({ + done: true, + cb + }); + }, + destroy(err, cb) { + ac.abort(); + cb(err); + } + } +} + +function _duplexify(pair) { + const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable; + const w = pair.writable; + let readable = !!isReadable(r); + let writable = !!isWritable(w); + let ondrain; + let onfinish; + let onreadable; + let onclose; + let d; + function onfinished(err) { + const cb = onclose + onclose = null + if (cb) { + cb(err) + } else if (err) { + d.destroy(err) + } else if (!readable && !writable) { + d.destroy() + } + } + + // TODO(ronag): Avoid double buffering. + // Implement Writable/Readable/Duplex traits. + // See, https://github.com/nodejs/node/pull/33515. + d = new Duplexify({ + // TODO (ronag): highWaterMark? + readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode), + writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode), + readable, + writable + }); + if (writable) { + eos(w, (err) => { + writable = false; + if (err) { + destroyer(r, err); + } + onfinished(err); + }); + d._write = function (chunk, encoding, callback) { + if (w.write(chunk, encoding)) { + callback(); + } else { + ondrain = callback; + } + }; + d._final = function (callback) { + w.end(); + onfinish = callback; + }; + w.on('drain', function () { + if (ondrain) { + const cb = ondrain; + ondrain = null; + cb(); + } + }); + w.on('finish', function () { + if (onfinish) { + const cb = onfinish; + onfinish = null; + cb(); + } + }); + } + if (readable) { + eos(r, (err) => { + readable = false; + if (err) { + destroyer(r, err); + } + onfinished(err); + }); + r.on('readable', function () { + if (onreadable) { + const cb = onreadable; + onreadable = null; + cb(); + } + }); + r.on('end', function () { + d.push(null); + }); + d._read = function () { + while (true) { + const buf = r.read(); + if (buf === null) { + onreadable = d._read; + return; + } + if (!d.push(buf)) { + return; + } + } + }; + } + d._destroy = function (err, callback) { + if (!err && onclose !== null) { + err = new AbortError(); + } + onreadable = null; + ondrain = null; + onfinish = null; + if (onclose === null) { + callback(err); + } else { + onclose = callback; + destroyer(w, err); + destroyer(r, err); + } + } + return d; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js new file mode 100644 index 000000000..f0b4473df --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js @@ -0,0 +1,87 @@ + +import + EventEmitter from './events'; + +import { + Buffer, +} from './internal_buffer'; + +export function Stream(opts) { + EventEmitter.call(this, opts||{}); +} + +Object.setPrototypeOf(Stream.prototype, EventEmitter.prototype); +Object.setPrototypeOf(Stream, EventEmitter); + +Stream.prototype.pipe = function (dest, options) { + const source = this; + function ondata(chunk) { + if (dest.writable && dest.write(chunk) === false && source.pause) { + source.pause(); + } + } + source.on('data', ondata); + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + dest.on('drain', ondrain); + + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } + let didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + dest.end(); + } + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + if (typeof dest.destroy === 'function') dest.destroy(); + } + + // Don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EventEmitter.listenerCount(this, 'error') === 0) { + this.emit('error', er); + } + } + source.prependListener('error', onerror); + dest.prependListener('error', onerror); + + // Remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + source.removeListener('end', onend); + source.removeListener('close', onclose); + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + dest.removeListener('close', cleanup); + } + source.on('end', cleanup); + source.on('close', cleanup); + dest.on('close', cleanup); + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; +} + +// Backwards-compat with node 0.4.x +Stream.Stream = Stream +Stream._isUint8Array = function isUint8Array(value) { + return value instanceof Uint8Array; +} +Stream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) { + return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js new file mode 100644 index 000000000..0066ff927 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js @@ -0,0 +1,1757 @@ +/* eslint-disable */ + +import { + nop, + getHighWaterMark, + getDefaultHighWaterMark, + kPaused, + addAbortSignal, + BufferList, + eos, + construct, + destroy, + destroyer, + undestroy, + errorOrDestroy, + finished, +} from './streams_util'; + +import * as process from './process'; + +import EventEmitter from './events'; + +import { + Stream, +} from './streams_legacy'; + +import { + newStreamReadableFromReadableStream, + newReadableStreamFromStreamReadable, +} from './streams_adapters'; + +import { + Buffer, +} from './internal_buffer'; + +import { + AbortError, + aggregateTwoErrors, + ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED, + ERR_MISSING_ARGS, + ERR_OUT_OF_RANGE, + ERR_STREAM_PUSH_AFTER_EOF, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT, + ERR_STREAM_NULL_VALUES, +} from './internal_errors'; + +import { + validateObject, + validateAbortSignal, + validateInteger, +} from './validators'; + +import { StringDecoder } from './internal_stringdecoder'; + +import { isDuplexInstance } from './streams_duplex'; + +// ====================================================================================== +// ReadableState + +function ReadableState(options, stream, isDuplex) { + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream. + // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = isDuplexInstance(stream); + + // Object stream flag. Used to make read(n) ignore n and to + // make all the buffer merging and length checks go away. + this.objectMode = !!(options?.objectMode); + if (isDuplex) this.objectMode = this.objectMode || !!(options?.readableObjectMode); + + // The point at which it stops calling _read() to fill the buffer + // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = options + ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex) + : getDefaultHighWaterMark(false); + + // A linked list is used to store data chunks instead of an array because the + // linked list can remove elements from the beginning faster than + // array.shift(). + this.buffer = new BufferList(); + this.length = 0; + this.pipes = []; + this.flowing = null; + this.ended = false; + this.endEmitted = false; + this.reading = false; + + // Stream is still being constructed and cannot be + // destroyed until construction finished or failed. + // Async construction is opt in, therefore we start as + // constructed. + this.constructed = true; + + // A flag to be able to tell if the event 'readable'/'data' is emitted + // immediately, or on a later tick. We set this to true at first, because + // any actions that shouldn't happen until "later" should generally also + // not happen before the first read call. + this.sync = true; + + // Whenever we return null, then we set a flag to say + // that we're awaiting a 'readable' event emission. + this.needReadable = false; + this.emittedReadable = false; + this.readableListening = false; + this.resumeScheduled = false; + this[kPaused] = null; + + // True if the error was already emitted and should not be thrown again. + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = !options || options.emitClose !== false; + + // Should .destroy() be called after 'end' (and potentially 'finish'). + this.autoDestroy = !options || options.autoDestroy !== false; + + // Has it been destroyed. + this.destroyed = false; + + // Indicates whether the stream has errored. When true no further + // _read calls, 'data' or 'readable' events should occur. This is needed + // since when autoDestroy is disabled we need a way to tell whether the + // stream has failed. + this.errored = null; + + // Indicates whether the stream has finished destroying. + this.closed = false; + + // True if close has been emitted or would have been emitted + // depending on emitClose. + this.closeEmitted = false; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options?.defaultEncoding || 'utf8'; + + // Ref the piped dest which we need a drain event on it + // type: null | Writable | Set. + this.awaitDrainWriters = null; + this.multiAwaitDrain = false; + + // If true, a maybeReadMore has been scheduled. + this.readingMore = false; + this.dataEmitted = false; + this.decoder = null; + this.encoding = null; + if (options && options.encoding) { + this.decoder = new StringDecoder(options.encoding); + this.encoding = options.encoding; + } +} + +// ====================================================================================== +// Readable + +Readable.ReadableState = ReadableState; + +Object.setPrototypeOf(Readable.prototype, Stream.prototype); +Object.setPrototypeOf(Readable, Stream); + +export function Readable(options) { + if (!(this instanceof Readable)) return new Readable(options); + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5. + const isDuplex = isDuplexInstance(this); + this._readableState = new ReadableState(options, this, isDuplex); + if (options) { + if (typeof options.read === 'function') this._read = options.read; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.construct === 'function') this._construct = options.construct; + if (options.signal && !isDuplex) addAbortSignal(options.signal, this); + } + Stream.call(this, options); + construct(this, () => { + if (this._readableState.needReadable) { + maybeReadMore(this, this._readableState); + } + }); +} +Readable.prototype.destroy = destroy +Readable.prototype._undestroy = undestroy +Readable.prototype._destroy = function (err, cb) { + if (cb) cb(err); +} + +Readable.prototype[EventEmitter.captureRejectionSymbol] = function (err) { + this.destroy(err); +} + +// Manually shove something into the read() buffer. +// This returns true if the highWaterMark has not been hit yet, +// similar to how Writable.write() returns true if you should +// write() some more. +Readable.prototype.push = function (chunk, encoding) { + return readableAddChunk(this, chunk, encoding, false); +} + +// Unshift should *always* be something directly out of read(). +Readable.prototype.unshift = function (chunk, encoding) { + return readableAddChunk(this, chunk, encoding, true); +} + +function readableAddChunk(stream, chunk, encoding, addToFront) { + const state = stream._readableState; + let err; + if (!state.objectMode) { + if (typeof chunk === 'string') { + encoding ||= state.defaultEncoding; + if (state.encoding !== encoding) { + if (addToFront && state.encoding) { + // When unshifting, if state.encoding is set, we have to save + // the string in the BufferList with the state encoding. + chunk = Buffer.from(chunk, encoding).toString(state.encoding); + } else { + chunk = Buffer.from(chunk, encoding); + encoding = ''; + } + } + } else if (chunk instanceof Buffer) { + encoding = '' + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + encoding = ''; + } else if (chunk != null) { + err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + } + if (err) { + errorOrDestroy(stream, err); + } else if (chunk === null) { + state.reading = false; + onEofChunk(stream, state); + } else if (state.objectMode || (chunk && chunk.length > 0)) { + if (addToFront) { + if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT()); + else if (state.destroyed || state.errored) return false; + else addChunk(stream, state, chunk, true); + } else if (state.ended) { + errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF()); + } else if (state.destroyed || state.errored) { + return false; + } else { + state.reading = false; + if (state.decoder && !encoding) { + chunk = state.decoder.write(chunk); + if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false); + else maybeReadMore(stream, state); + } else { + addChunk(stream, state, chunk, false); + } + } + } else if (!addToFront) { + state.reading = false; + maybeReadMore(stream, state); + } + + // We can push more data if we are below the highWaterMark. + // Also, if we have no data yet, we can stand some more bytes. + // This is to work around cases where hwm=0, such as the repl. + return !state.ended && (state.length < state.highWaterMark || state.length === 0); +} + +function addChunk(stream, state, chunk, addToFront) { + if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) { + // Use the guard to avoid creating `Set()` repeatedly + // when we have multiple pipes. + if (state.multiAwaitDrain) { + state.awaitDrainWriters.clear(); + } else { + state.awaitDrainWriters = null; + state.multiAwaitDrain = false; + } + state.dataEmitted = true; + stream.emit('data', chunk); + } else { + // Update the buffer info. + state.length += state.objectMode ? 1 : chunk.length; + if (addToFront) state.buffer.unshift(chunk); + else state.buffer.push(chunk); + if (state.needReadable) emitReadable(stream); + } + maybeReadMore(stream, state); +} + +Readable.prototype.isPaused = function () { + const state = this._readableState; + return state[kPaused] === true || state.flowing === false; +} + +// Backwards compatibility. +Readable.prototype.setEncoding = function (enc) { + const decoder = new StringDecoder(enc); + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8. + this._readableState.encoding = decoder.encoding; + const buffer = this._readableState.buffer; + // Iterate over current buffer to convert already stored Buffers: + let content = ''; + for (const data of buffer) { + content += decoder.write(data); + } + buffer.clear(); + if (content !== '') buffer.push(content); + this._readableState.length = content.length; + return this; +} + +// Don't raise the hwm > 1GB. +const MAX_HWM = 0x40000000; +function computeNewHighWaterMark(n) { + if (n > MAX_HWM) { + throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n); + } else { + // Get the next highest power of 2 to prevent increasing hwm excessively in + // tiny amounts. + n--; + n |= n >>> 1; + n |= n >>> 2; + n |= n >>> 4; + n |= n >>> 8; + n |= n >>> 16; + n++; + } + return n; +} + +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function howMuchToRead(n, state) { + if (n <= 0 || (state.length === 0 && state.ended)) return 0; + if (state.objectMode) return 1; + if (Number.isNaN(n)) { + // Only flow one buffer at a time. + if (state.flowing && state.length) return state.buffer.first().length; + return state.length; + } + if (n <= state.length) return n; + return state.ended ? state.length : 0; +} + +// You can override either this method, or the async _read(n) below. +Readable.prototype.read = function (n) { + // Same as parseInt(undefined, 10), however V8 7.3 performance regressed + // in this scenario, so we are doing it manually. + if (n === undefined) { + n = NaN; + } else if (!Number.isInteger(n)) { + n = Number.parseInt(`${n}`, 10); + } + const state = this._readableState; + const nOrig = n; + + // If we're asking for more than the current hwm, then raise the hwm. + if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); + if (n !== 0) state.emittedReadable = false; + + // If we're doing read(0) to trigger a readable event, but we + // already have a bunch of data in the buffer, then just trigger + // the 'readable' event and move on. + if ( + n === 0 && + state.needReadable && + ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { + if (state.length === 0 && state.ended) endReadable(this); + else emitReadable(this); + return null; + } + n = howMuchToRead(n, state); + + // If we've ended, and we're now clear, then finish it up. + if (n === 0 && state.ended) { + if (state.length === 0) endReadable(this); + return null; + } + + // All the actual chunk generation logic needs to be + // *below* the call to _read. The reason is that in certain + // synthetic stream cases, such as passthrough streams, _read + // may be a completely synchronous operation which may change + // the state of the read buffer, providing enough data when + // before there was *not* enough. + // + // So, the steps are: + // 1. Figure out what the state of things will be after we do + // a read from the buffer. + // + // 2. If that resulting state will trigger a _read, then call _read. + // Note that this may be asynchronous, or synchronous. Yes, it is + // deeply ugly to write APIs this way, but that still doesn't mean + // that the Readable class should behave improperly, as streams are + // designed to be sync/async agnostic. + // Take note if the _read call is sync or async (ie, if the read call + // has returned yet), so that we know whether or not it's safe to emit + // 'readable' etc. + // + // 3. Actually pull the requested chunks out of the buffer and return. + + // if we need a readable event, then we need to do some reading. + let doRead = state.needReadable; + + // If we currently have less than the highWaterMark, then also read some. + if (state.length === 0 || state.length - n < state.highWaterMark) { + doRead = true; + } + + // However, if we've ended, then there's no point, if we're already + // reading, then it's unnecessary, if we're constructing we have to wait, + // and if we're destroyed or errored, then it's not allowed, + if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) { + doRead = false; + } else if (doRead) { + state.reading = true; + state.sync = true; + // If the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + + // Call internal read method + try { + this._read(state.highWaterMark); + } catch (err) { + errorOrDestroy(this, err); + } + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, + // and we need to re-evaluate how much data we can return to the user. + if (!state.reading) n = howMuchToRead(nOrig, state); + } + let ret; + if (n > 0) ret = fromList(n, state); + else ret = null; + if (ret === null) { + state.needReadable = state.length <= state.highWaterMark; + n = 0; + } else { + state.length -= n; + if (state.multiAwaitDrain) { + state.awaitDrainWriters.clear(); + } else { + state.awaitDrainWriters = null; + state.multiAwaitDrain = false; + } + } + if (state.length === 0) { + // If we have nothing in the buffer, then we want to know + // as soon as we *do* get something into the buffer. + if (!state.ended) state.needReadable = true + + // If we tried to read() past the EOF, then emit end on the next tick. + if (nOrig !== n && state.ended) endReadable(this) + } + if (ret !== null && !state.errorEmitted && !state.closeEmitted) { + state.dataEmitted = true + this.emit('data', ret) + } + return ret +} + +function onEofChunk(stream, state) { + if (state.ended) return; + if (state.decoder) { + const chunk = state.decoder.end(); + if (chunk && chunk.length) { + state.buffer.push(chunk); + state.length += state.objectMode ? 1 : chunk.length; + } + } + state.ended = true; + if (state.sync) { + // If we are sync, wait until next tick to emit the data. + // Otherwise we risk emitting data in the flow() + // the readable code triggers during a read() call. + emitReadable(stream); + } else { + // Emit 'readable' now to make sure it gets picked up. + state.needReadable = false; + state.emittedReadable = true; + // We have to emit readable now that we are EOF. Modules + // in the ecosystem (e.g. dicer) rely on this event being sync. + emitReadable_(stream); + } +} + +// Don't emit readable right away in sync mode, because this can trigger +// another read() call => stack overflow. This way, it might trigger +// a nextTick recursion warning, but that's not so bad. +function emitReadable(stream) { + const state = stream._readableState; + state.needReadable = false; + if (!state.emittedReadable) { + state.emittedReadable = true; + process.nextTick(emitReadable_, stream); + } +} + +function emitReadable_(stream) { + const state = stream._readableState; + if (!state.destroyed && !state.errored && (state.length || state.ended)) { + stream.emit('readable'); + state.emittedReadable = false; + } + + // The stream needs another readable event if: + // 1. It is not flowing, as the flow mechanism will take + // care of it. + // 2. It is not ended. + // 3. It is below the highWaterMark, so we can schedule + // another readable later. + state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; + flow(stream); +} + +// At this point, the user has presumably seen the 'readable' event, +// and called read() to consume some data. that may have triggered +// in turn another _read(n) call, in which case reading = true if +// it's in progress. +// However, if we're not ended, or reading, and the length < hwm, +// then go ahead and try to read some more preemptively. +function maybeReadMore(stream, state) { + if (!state.readingMore && state.constructed) { + state.readingMore = true; + process.nextTick(maybeReadMore_, stream, state); + } +} + +function maybeReadMore_(stream, state) { + // Attempt to read more data if we should. + // + // The conditions for reading more data are (one of): + // - Not enough data buffered (state.length < state.highWaterMark). The loop + // is responsible for filling the buffer with enough data if such data + // is available. If highWaterMark is 0 and we are not in the flowing mode + // we should _not_ attempt to buffer any extra data. We'll get more data + // when the stream consumer calls read() instead. + // - No data in the buffer, and the stream is in flowing mode. In this mode + // the loop below is responsible for ensuring read() is called. Failing to + // call read here would abort the flow and there's no other mechanism for + // continuing the flow if the stream consumer has just subscribed to the + // 'data' event. + // + // In addition to the above conditions to keep reading data, the following + // conditions prevent the data from being read: + // - The stream has ended (state.ended). + // - There is already a pending 'read' operation (state.reading). This is a + // case where the stream has called the implementation defined _read() + // method, but they are processing the call asynchronously and have _not_ + // called push() with new data. In this case we skip performing more + // read()s. The execution ends in this method again after the _read() ends + // up calling push() with more data. + while ( + !state.reading && + !state.ended && + (state.length < state.highWaterMark || (state.flowing && state.length === 0)) + ) { + const len = state.length; + stream.read(0); + if (len === state.length) + // Didn't get any data, stop spinning. + break; + } + state.readingMore = false; +} + +// Abstract method. to be overridden in specific implementation classes. +// call cb(er, data) where data is <= n in length. +// for virtual (non-string, non-buffer) streams, "length" is somewhat +// arbitrary, and perhaps not very meaningful. +Readable.prototype._read = function (_size) { + throw new ERR_METHOD_NOT_IMPLEMENTED('_read()'); +} + +Readable.prototype.pipe = function (dest, pipeOpts) { + const src = this; + const state = this._readableState; + if (state.pipes.length === 1) { + if (!state.multiAwaitDrain) { + state.multiAwaitDrain = true; + state.awaitDrainWriters = new Set( + state.awaitDrainWriters ? [state.awaitDrainWriters] : []); + } + } + state.pipes.push(dest); + const doEnd = (!pipeOpts || pipeOpts.end !== false); + const endFn = doEnd ? onend : unpipe; + if (state.endEmitted) process.nextTick(endFn); + else src.once('end', endFn); + dest.on('unpipe', onunpipe); + function onunpipe(readable, unpipeInfo) { + if (readable === src) { + if (unpipeInfo && unpipeInfo.hasUnpiped === false) { + unpipeInfo.hasUnpiped = true; + cleanup(); + } + } + } + function onend() { + dest.end(); + } + let ondrain; + let cleanedUp = false; + function cleanup() { + // Cleanup event handlers once the pipe is broken. + dest.removeListener('close', onclose); + dest.removeListener('finish', onfinish); + if (ondrain) { + dest.removeListener('drain', ondrain); + } + dest.removeListener('error', onerror); + dest.removeListener('unpipe', onunpipe); + src.removeListener('end', onend); + src.removeListener('end', unpipe); + src.removeListener('data', ondata); + cleanedUp = true; + + // If the reader is waiting for a drain event from this + // specific writer, then it would cause it to never start + // flowing again. + // So, if this is awaiting a drain, then we just call it now. + // If we don't know, then assume that we are waiting for one. + if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain(); + } + function pause() { + // If the user unpiped during `dest.write()`, it is possible + // to get stuck in a permanently paused state if that write + // also returned false. + // => Check whether `dest` is still a piping destination. + if (!cleanedUp) { + if (state.pipes.length === 1 && state.pipes[0] === dest) { + state.awaitDrainWriters = dest; + state.multiAwaitDrain = false; + } else if (state.pipes.length > 1 && state.pipes.includes(dest)) { + state.awaitDrainWriters.add(dest); + } + src.pause(); + } + if (!ondrain) { + // When the dest drains, it reduces the awaitDrain counter + // on the source. This would be more elegant with a .once() + // handler in flow(), but adding and removing repeatedly is + // too slow. + ondrain = pipeOnDrain(src, dest); + dest.on('drain', ondrain); + } + } + src.on('data', ondata); + function ondata(chunk) { + const ret = dest.write(chunk); + if (ret === false) { + pause(); + } + } + + // If the dest has an error, then stop piping into it. + // However, don't suppress the throwing behavior for this. + function onerror(er) { + unpipe(); + dest.removeListener('error', onerror); + if (dest.listenerCount('error') === 0) { + const s = dest._writableState || dest._readableState; + if (s && !s.errorEmitted) { + // User incorrectly emitted 'error' directly on the stream. + errorOrDestroy(dest, er); + } else { + dest.emit('error', er); + } + } + } + + // Make sure our error handler is attached before userland ones. + dest.prependListener('error', onerror); + + // Both close and finish should trigger unpipe, but only once. + function onclose() { + dest.removeListener('finish', onfinish); + unpipe(); + } + dest.once('close', onclose); + function onfinish() { + dest.removeListener('close', onclose); + unpipe(); + } + dest.once('finish', onfinish); + function unpipe() { + src.unpipe(dest); + } + + // Tell the dest that it's being piped to. + dest.emit('pipe', src); + + // Start the flow if it hasn't been started already. + + if (dest.writableNeedDrain === true) { + if (state.flowing) { + pause(); + } + } else if (!state.flowing) { + src.resume(); + } + return dest; +} + +function pipeOnDrain(src, dest) { + return function pipeOnDrainFunctionResult() { + const state = src._readableState; + + // `ondrain` will call directly, + // `this` maybe not a reference to dest, + // so we use the real dest here. + if (state.awaitDrainWriters === dest) { + state.awaitDrainWriters = null; + } else if (state.multiAwaitDrain) { + state.awaitDrainWriters.delete(dest); + } + if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && + src.listenerCount('data')) { + src.resume(); + } + } +} + +Readable.prototype.unpipe = function (dest) { + const state = this._readableState; + const unpipeInfo = { + hasUnpiped: false + }; + + // If we're not piping anywhere, then do nothing. + if (state.pipes.length === 0) return this; + if (!dest) { + // remove all. + const dests = state.pipes; + state.pipes = []; + this.pause(); + for (let i = 0; i < dests.length; i++) + dests[i].emit('unpipe', this, { + hasUnpiped: false + }) + return this; + } + + // Try to find the right one. + const index = state.pipes.indexOf(dest); + if (index === -1) return this; + state.pipes.splice(index, 1); + if (state.pipes.length === 0) this.pause(); + dest.emit('unpipe', this, unpipeInfo); + return this; +} + +// Set up data events if they are asked for +// Ensure readable listeners eventually get something. +Readable.prototype.on = function (ev, fn) { + const res = Stream.prototype.on.call(this, ev, fn); + const state = this._readableState; + if (ev === 'data') { + // Update readableListening so that resume() may be a no-op + // a few lines down. This is needed to support once('readable'). + state.readableListening = this.listenerCount('readable') > 0; + + // Try start flowing on next tick if stream isn't explicitly paused. + if (state.flowing !== false) this.resume(); + } else if (ev === 'readable') { + if (!state.endEmitted && !state.readableListening) { + state.readableListening = state.needReadable = true; + state.flowing = false; + state.emittedReadable = false; + if (state.length) { + emitReadable(this); + } else if (!state.reading) { + process.nextTick(nReadingNextTick, this); + } + } + } + return res; +} +Readable.prototype.addListener = Readable.prototype.on +Readable.prototype.removeListener = function (ev, fn) { + const res = Stream.prototype.removeListener.call(this, ev, fn); + if (ev === 'readable') { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +} +Readable.prototype.off = Readable.prototype.removeListener +Readable.prototype.removeAllListeners = function (ev) { + const res = Stream.prototype.removeAllListeners.apply(this, arguments); + if (ev === 'readable' || ev === undefined) { + // We need to check if there is someone still listening to + // readable and reset the state. However this needs to happen + // after readable has been emitted but before I/O (nextTick) to + // support once('readable', fn) cycles. This means that calling + // resume within the same tick will have no + // effect. + process.nextTick(updateReadableListening, this); + } + return res; +} + +function updateReadableListening(self) { + const state = self._readableState; + state.readableListening = self.listenerCount('readable') > 0; + if (state.resumeScheduled && state[kPaused] === false) { + // Flowing needs to be set to true now, otherwise + // the upcoming resume will not flow. + state.flowing = true; + + // Crude way to check if we should resume. + } else if (self.listenerCount('data') > 0) { + self.resume(); + } else if (!state.readableListening) { + state.flowing = null; + } +} + +function nReadingNextTick(self) { + self.read(0); +} + +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. +Readable.prototype.resume = function () { + const state = this._readableState; + if (!state.flowing) { + // We flow only if there is no one listening + // for readable, but we still have to call + // resume(). + state.flowing = !state.readableListening; + resume(this, state); + } + state[kPaused] = false; + return this; +} + +function resume(stream, state) { + if (!state.resumeScheduled) { + state.resumeScheduled = true; + process.nextTick(resume_, stream, state); + } +} + +function resume_(stream, state) { + if (!state.reading) { + stream.read(0); + } + state.resumeScheduled = false; + stream.emit('resume'); + flow(stream); + if (state.flowing && !state.reading) stream.read(0); +} + +Readable.prototype.pause = function () { + if (this._readableState.flowing !== false) { + this._readableState.flowing = false; + this.emit('pause'); + } + this._readableState[kPaused] = true; + return this; +} + +function flow(stream) { + const state = stream._readableState; + while (state.flowing && stream.read() !== null); +} + +// Wrap an old-style stream as the async data source. +// This is *not* part of the readable stream interface. +// It is an ugly unfortunate mess of history. +Readable.prototype.wrap = function (stream) { + let paused = false; + + // TODO (ronag): Should this.destroy(err) emit + // 'error' on the wrapped stream? Would require + // a static factory method, e.g. Readable.wrap(stream). + stream.on('data', (chunk) => { + if (!this.push(chunk) && stream.pause) { + paused = true; + stream.pause(); + } + }); + + stream.on('end', () => { + this.push(null); + }); + stream.on('error', (err) => { + errorOrDestroy(this, err); + }); + stream.on('close', () => { + this.destroy(); + }); + stream.on('destroy', () => { + this.destroy(); + }); + this._read = () => { + if (paused && stream.resume) { + paused = false; + stream.resume(); + } + }; + + // Proxy all the other methods. Important when wrapping filters and duplexes. + const streamKeys = Object.keys(stream); + for (let j = 1; j < streamKeys.length; j++) { + const i = streamKeys[j]; + if (this[i] === undefined && typeof stream[i] === 'function') { + this[i] = stream[i].bind(stream); + } + } + return this; +} + +Readable.prototype[Symbol.asyncIterator] = function () { + return streamToAsyncIterator(this); +} + +Readable.prototype.iterator = function (options) { + if (options !== undefined) { + validateObject(options, 'options', options); + } + return streamToAsyncIterator(this, options); +} + +function streamToAsyncIterator(stream, options) { + if (typeof stream.read !== 'function') { + stream = Readable.wrap(stream, { + objectMode: true + }); + } + const iter = createAsyncIterator(stream, options); + iter.stream = stream; + return iter; +} + +async function* createAsyncIterator(stream, options) { + let callback = nop; + function next(resolve) { + if (this === stream) { + callback(); + callback = nop; + } else { + callback = resolve; + } + } + stream.on('readable', next); + let error; + const cleanup = eos( + stream, + { + writable: false + }, + (err) => { + error = err ? aggregateTwoErrors(error, err) : null + callback() + callback = nop + } + ); + try { + while (true) { + const chunk = stream.destroyed ? null : stream.read(); + if (chunk !== null) { + yield chunk; + } else if (error) { + throw error; + } else if (error === null) { + return; + } else { + await new Promise(next); + } + } + } catch (err) { + error = aggregateTwoErrors(error, err); + throw error; + } finally { + if ( + (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) && + (error === undefined || stream._readableState.autoDestroy) + ) { + destroyer(stream, null); + } else { + stream.off('readable', next); + cleanup(); + } + } +} + +// Making it explicit these properties are not enumerable +// because otherwise some prototype manipulation in +// userland will fail. +Object.defineProperties(Readable.prototype, { + readable: { + get() { + const r = this._readableState; + // r.readable === false means that this is part of a Duplex stream + // where the readable side was disabled upon construction. + // Compat. The user might manually disable readable side through + // deprecated setter. + return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted; + }, + set(val) { + // Backwards compat. + if (this._readableState) { + this._readableState.readable = !!val; + } + } + }, + readableDidRead: { + enumerable: false, + get: function () { + return !!(this._readableState?.dataEmitted); + } + }, + readableAborted: { + enumerable: false, + get: function () { + return !!( + this._readableState?.readable !== false && + (this._readableState?.destroyed || this._readableState?.errored) && + !this._readableState?.endEmitted + ); + } + }, + readableHighWaterMark: { + enumerable: false, + get: function () { + return this._readableState?.highWaterMark; + } + }, + readableBuffer: { + enumerable: false, + get: function () { + return this._readableState?.buffer; + } + }, + readableFlowing: { + enumerable: false, + get: function () { + return !!(this._readableState?.flowing); + }, + set: function (state) { + if (this._readableState) { + this._readableState.flowing = state + } + } + }, + readableLength: { + enumerable: false, + get() { + return this._readableState?.length | 0; + } + }, + readableObjectMode: { + enumerable: false, + get() { + return this._readableState ? this._readableState.objectMode : false; + } + }, + readableEncoding: { + enumerable: false, + get() { + return this._readableState?.encoding || null; + } + }, + errored: { + enumerable: false, + get() { + return this._readableState?.errored || null; + } + }, + closed: { + get() { + return !!(this._readableState?.closed); + } + }, + destroyed: { + enumerable: false, + get() { + return !!(this._readableState?.destroyed); + }, + set(value) { + // We ignore the value if the stream + // has not been initialized yet. + if (!this._readableState) { + return + } + + // Backward compatibility, the user is explicitly + // managing destroyed. + this._readableState.destroyed = value + } + }, + readableEnded: { + enumerable: false, + get() { + return !!(this._readableState?.endEmitted); + } + } +}); + +Object.defineProperties(ReadableState.prototype, { + // Legacy getter for `pipesCount`. + pipesCount: { + get() { + return this.pipes.length + } + }, + // Legacy property for `paused`. + paused: { + get() { + return this[kPaused] !== false + }, + set(value) { + this[kPaused] = !!value + } + } +}); + +// Exposed for testing purposes only. +Readable._fromList = fromList + +// Pluck off n bytes from an array of buffers. +// Length is the combined lengths of all the buffers in the list. +// This function is designed to be inlinable, so please take care when making +// changes to the function body. +function fromList(n, state) { + // nothing buffered. + if (state.length === 0) return null + let ret + if (state.objectMode) ret = state.buffer.shift() + else if (!n || n >= state.length) { + // Read it all, truncate the list. + if (state.decoder) ret = state.buffer.join('') + else if (state.buffer.length === 1) ret = state.buffer.first(); + else ret = state.buffer.concat(state.length); + state.buffer.clear() + } else { + // read part of list. + ret = state.buffer.consume(n, !!state.decoder); + } + return ret +} + +function endReadable(stream) { + const state = stream._readableState + if (!state.endEmitted) { + state.ended = true; + process.nextTick(endReadableNT, state, stream); + } +} + +function endReadableNT(state, stream) { + // Check that we didn't get one last unshift. + if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) { + state.endEmitted = true + stream.emit('end') + if (stream.writable && stream.allowHalfOpen === false) { + process.nextTick(endWritableNT, stream); + } else if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the writable side is ready for autoDestroy as well. + const wState = stream._writableState + const autoDestroy = + !wState || + (wState.autoDestroy && + // We don't expect the writable to ever 'finish' + // if writable is explicitly set to false. + (wState.finished || wState.writable === false)) + if (autoDestroy) { + stream.destroy() + } + } + } +} + +function endWritableNT(stream) { + const writable = stream.writable && !stream.writableEnded && !stream.destroyed + if (writable) { + stream.end() + } +} + +Readable.fromWeb = function (readableStream, options) { + return newStreamReadableFromReadableStream(readableStream, options) +} +Readable.toWeb = function (streamReadable, options) { + return newReadableStreamFromStreamReadable(streamReadable, options) +} + +Readable.wrap = function (src, options) { + let _ref, _src$readableObjectMo; + return new Readable({ + objectMode: + (_ref = + (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined + ? _src$readableObjectMo + : src.objectMode) !== null && _ref !== undefined + ? _ref + : true, + ...options, + destroy(err, callback) { + destroyer(src, err) + callback(err) + } + }).wrap(src); +}; + +// ====================================================================================== +// + +Readable.from = function (iterable, opts) { + return from(Readable, iterable, opts) +}; + +export function from(Readable, iterable, opts) { + let iterator; + if (typeof iterable === 'string' || iterable instanceof Buffer) { + return new Readable({ + objectMode: true, + ...opts, + read() { + this.push(iterable) + this.push(null) + } + }) + } + let isAsync; + if (iterable && iterable[Symbol.asyncIterator]) { + isAsync = true + iterator = iterable[Symbol.asyncIterator]() + } else if (iterable && iterable[Symbol.iterator]) { + isAsync = false + iterator = iterable[Symbol.iterator]() + } else { + throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable) + } + const readable = new Readable({ + objectMode: true, + highWaterMark: 1, + // TODO(ronag): What options should be allowed? + ...opts + }) + + // Flag to protect against _read + // being called before last iteration completion. + let reading = false + readable._read = function () { + if (!reading) { + reading = true + next() + } + } + readable._destroy = function (error, cb) { + close(error).then( + () => process.nextTick(cb, error), + (err) => process.nextTick(cb, err || error)); + } + async function close(error) { + const hadError = error !== undefined && error !== null + const hasThrow = typeof iterator.throw === 'function' + if (hadError && hasThrow) { + const { value, done } = await iterator.throw(error) + await value + if (done) { + return + } + } + if (typeof iterator.return === 'function') { + const { value } = await iterator.return() + await value + } + } + async function next() { + for (;;) { + try { + const { value, done } = isAsync ? await iterator.next() : iterator.next() + if (done) { + readable.push(null) + } else { + const res = value && typeof value.then === 'function' ? await value : value + if (res === null) { + reading = false + throw new ERR_STREAM_NULL_VALUES() + } else if (readable.push(res)) { + continue + } else { + reading = false + } + } + } catch (err) { + readable.destroy(err) + } + break + } + } + return readable +} + +// ====================================================================================== +// Operators + +const kWeakHandler = Symbol('kWeak') +const kEmpty = Symbol('kEmpty') +const kEof = Symbol('kEof') + +function map(fn, options) { + if (typeof fn !== 'function') { + throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn) + } + if (options != null) { + validateObject(options, 'options', options); + } + if (options?.signal != null) { + validateAbortSignal(options.signal, 'options.signal'); + } + let concurrency = 1; + if (options?.concurrency != null) { + concurrency = Math.floor(options.concurrency); + } + validateInteger(concurrency, 'concurrency', 1); + return async function* map() { + let _options$signal, _options$signal2; + const ac = new AbortController(); + const stream = this; + const queue = []; + const signal = ac.signal; + const signalOpt = { + signal + }; + const abort = () => ac.abort(); + if ( + options !== null && + options !== undefined && + (_options$signal = options.signal) !== null && + _options$signal !== undefined && + _options$signal.aborted + ) { + abort(); + } + options === null || options === undefined + ? undefined + : (_options$signal2 = options.signal) === null || _options$signal2 === undefined + ? undefined + : _options$signal2.addEventListener('abort', abort); + let next; + let resume; + let done = false; + function onDone() { + done = true; + } + async function pump() { + try { + for await (let val of stream) { + let _val; + if (done) { + return; + } + if (signal.aborted) { + throw new AbortError(); + } + try { + val = fn(val, signalOpt); + } catch (err) { + val = Promise.reject(err); + } + if (val === kEmpty) { + continue; + } + if (typeof ((_val = val) === null || _val === undefined ? undefined : _val.catch) === 'function') { + val.catch(onDone); + } + queue.push(val); + if (next) { + next(); + next = null; + } + if (!done && queue.length && queue.length >= concurrency) { + await new Promise((resolve) => { + resume = resolve; + }); + } + } + queue.push(kEof); + } catch (err) { + const val = Promise.reject(err); + val.then(undefined, onDone);; + queue.push(val); + } finally { + let _options$signal3; + done = true; + if (next) { + next(); + next = null; + } + options === null || options === undefined + ? undefined + : (_options$signal3 = options.signal) === null || _options$signal3 === undefined + ? undefined + : _options$signal3.removeEventListener('abort', abort); + } + } + pump(); + try { + while (true) { + while (queue.length > 0) { + const val = await queue[0]; + if (val === kEof) { + return; + } + if (signal.aborted) { + throw new AbortError(); + } + if (val !== kEmpty) { + yield val; + } + queue.shift() + if (resume) { + resume(); + resume = null; + } + } + await new Promise((resolve) => { + next = resolve + }); + } + } finally { + ac.abort(); + done = true; + if (resume) { + resume(); + resume = null; + } + } + }.call(this); +} + +function asIndexedPairs(options) { + if (options != null) { + validateObject(options, 'options', options); + } + if ((options === null || options === undefined ? undefined : options.signal) != null) { + validateAbortSignal(options.signal, 'options.signal'); + } + return async function* asIndexedPairs() { + let index = 0; + for await (const val of this) { + let _options$signal4; + if ( + options !== null && + options !== undefined && + (_options$signal4 = options.signal) !== null && + _options$signal4 !== undefined && + _options$signal4.aborted + ) { + throw new AbortError('Aborted', { + cause: options.signal?.reason + }); + } + yield [index++, val]; + } + }.call(this); +} + +async function some(fn, options) { + if (typeof fn !== 'function') { + throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn); + } + for await (const _ of filter.call(this, fn, options)) { + return true; + } + return false; +} + +async function every(fn, options) { + if (typeof fn !== 'function') { + throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn); + } + // https://en.wikipedia.org/wiki/De_Morgan%27s_laws + return !(await some.call( + this, + async (...args) => { + return !(await fn(...args)) + }, + options + )); +} + +async function find(fn, options) { + for await (const result of filter.call(this, fn, options)) { + return result; + } + return undefined; +} + +async function forEach(fn, options) { + if (typeof fn !== 'function') { + throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn) + } + async function forEachFn(value, options) { + await fn(value, options); + return kEmpty + } + // eslint-disable-next-line no-unused-vars + for await (const _ of map.call(this, forEachFn, options)); +} + +function filter(fn, options) { + if (typeof fn !== 'function') { + throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn) + } + async function filterFn(value, options) { + if (await fn(value, options)) { + return value + } + return kEmpty + } + return map.call(this, filterFn, options) +} + +// Specific to provide better error to reduce since the argument is only +// missing if the stream has no items in it - but the code is still appropriate +class ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS { + constructor() { + super('reduce') + this.message = 'Reduce of an empty stream requires an initial value' + } +} + +async function reduce(reducer, initialValue, options) { + let _options$signal5; + if (typeof reducer !== 'function') { + throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer); + } + if (options != null) { + validateObject(options, 'options', options); + } + if (options?.signal != null) { + validateAbortSignal(options?.signal, 'options.signal'); + } + let hasInitialValue = arguments.length > 1; + if ( + options !== null && + options !== undefined && + (_options$signal5 = options.signal) !== null && + _options$signal5 !== undefined && + _options$signal5.aborted + ) { + const err = new AbortError(undefined, { + cause: options.signal?.reason + }) + this.once('error', () => {}); // The error is already propagated + await finished(this.destroy(err)); + throw err; + } + const ac = new AbortController(); + const signal = ac.signal; + if (options?.signal) { + const opts = { + once: true, + [kWeakHandler]: this + }; + options.signal.addEventListener('abort', () => ac.abort(), opts); + } + let gotAnyItemFromStream = false; + try { + for await (const value of this) { + let _options$signal6; + gotAnyItemFromStream = true; + if ( + options !== null && + options !== undefined && + (_options$signal6 = options.signal) !== null && + _options$signal6 !== undefined && + _options$signal6.aborted + ) { + throw new AbortError(); + } + if (!hasInitialValue) { + initialValue = value; + hasInitialValue = true; + } else { + initialValue = await reducer(initialValue, value, { + signal + }); + } + } + if (!gotAnyItemFromStream && !hasInitialValue) { + throw new ReduceAwareErrMissingArgs(); + } + } finally { + ac.abort(); + } + return initialValue; +} + +async function toArray(options) { + if (options != null) { + validateObject(options, 'options', options); + } + if (options?.signal != null) { + validateAbortSignal(options?.signal, 'options.signal') + } + const result = []; + for await (const val of this) { + let _options$signal7; + if ( + options !== null && + options !== undefined && + (_options$signal7 = options.signal) !== null && + _options$signal7 !== undefined && + _options$signal7.aborted + ) { + throw new AbortError(undefined, { + cause: options.signal?.reason + }); + } + result.push(val); + } + return result; +} + +function flatMap(fn, options) { + const values = map.call(this, fn, options) + return async function* flatMap() { + for await (const val of values) { + yield* val + } + }.call(this) +} + +function toIntegerOrInfinity(number) { + // We coerce here to align with the spec + // https://github.com/tc39/proposal-iterator-helpers/issues/169 + number = Number(number) + if (Number.isNaN(number)) { + return 0 + } + if (number < 0) { + throw new ERR_OUT_OF_RANGE('number', '>= 0', number) + } + return number +} + +function drop(number, options) { + if (options != null) { + validateObject(options, 'options', options); + } + if (options?.signal != null) { + validateAbortSignal(options?.signal, 'options.signal'); + } + number = toIntegerOrInfinity(number); + return async function* drop() { + let _options$signal8; + if ( + options !== null && + options !== undefined && + (_options$signal8 = options.signal) !== null && + _options$signal8 !== undefined && + _options$signal8.aborted + ) { + throw new AbortError(); + } + for await (const val of this) { + let _options$signal9; + if ( + options !== null && + options !== undefined && + (_options$signal9 = options.signal) !== null && + _options$signal9 !== undefined && + _options$signal9.aborted + ) { + throw new AbortError(); + } + if (number-- <= 0) { + yield val; + } + } + }.call(this); +} + +function take(number, options) { + if (options != null) { + validateObject(options, 'options', options); + } + if (options?.signal != null) { + validateAbortSignal(options?.signal, 'options.signal'); + } + number = toIntegerOrInfinity(number); + return async function* take() { + let _options$signal10; + if ( + options !== null && + options !== undefined && + (_options$signal10 = options.signal) !== null && + _options$signal10 !== undefined && + _options$signal10.aborted + ) { + throw new AbortError(); + } + for await (const val of this) { + let _options$signal11; + if ( + options !== null && + options !== undefined && + (_options$signal11 = options.signal) !== null && + _options$signal11 !== undefined && + _options$signal11.aborted + ) { + throw new AbortError(); + } + if (number-- > 0) { + yield val; + } else { + return; + } + } + }.call(this); +} + +Readable.prototype.map = function(fn, options) { + return from(Readable, map.call(this, fn, options)); +} + +Readable.prototype.asIndexedPairs = function(options) { + return from(Readable, asIndexedPairs.call(this, options)); +} + +Readable.prototype.drop = function(number, options) { + return from(Readable, drop.call(this, number, options)); +} + +Readable.prototype.filter = function(fn, options) { + return from(Readable, filter.call(this, fn, options)); +} + +Readable.prototype.flatMap = function(fn, options) { + return from(Readable, flatMap.call(this, fn, options)); +}; + +Readable.prototype.take = function(number, options) { + return from(Readable, take.call(this, number, options)); +} + +Readable.prototype.every = every; +Readable.prototype.forEach = forEach; +Readable.prototype.reduce = reduce; +Readable.prototype.toArray = toArray; +Readable.prototype.some = some; +Readable.prototype.find = find; + diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts new file mode 100644 index 000000000..127ce7887 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts @@ -0,0 +1,344 @@ +import EventEmitter from './events'; + +interface WritableOptions { + highWaterMark?: number | undefined; + decodeStrings?: boolean | undefined; + defaultEncoding?: BufferEncoding | undefined; + objectMode?: boolean | undefined; + emitClose?: boolean | undefined; + write?(this: Writable, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Writable, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + destroy?(this: Writable, error: Error | null, callback: (error: Error | null) => void): void; + final?(this: Writable, callback: (error?: Error | null) => void): void; + autoDestroy?: boolean | undefined; +} + +export class internal extends EventEmitter { + pipe(destination: T, options?: { end?: boolean | undefined; }): T; +} + +export class Stream extends internal { + constructor(opts?: ReadableOptions); +} + +interface ReadableOptions { + highWaterMark?: number | undefined; + encoding?: BufferEncoding | undefined; + objectMode?: boolean | undefined; + read?(this: Readable, size: number): void; + destroy?(this: Readable, error: Error | null, callback: (error: Error | null) => void): void; + autoDestroy?: boolean | undefined; +} + +export class Readable extends Stream implements NodeJS.ReadableStream { + static from(iterable: Iterable | AsyncIterable, options?: ReadableOptions): Readable; + + readable: boolean; + readonly readableEncoding: BufferEncoding | null; + readonly readableEnded: boolean; + readonly readableFlowing: boolean | null; + readonly readableHighWaterMark: number; + readonly readableLength: number; + readonly readableObjectMode: boolean; + destroyed: boolean; + constructor(opts?: ReadableOptions); + _read(size: number): void; + read(size?: number): any; + setEncoding(encoding: BufferEncoding): this; + pause(): this; + resume(): this; + isPaused(): boolean; + unpipe(destination?: NodeJS.WritableStream): this; + unshift(chunk: any, encoding?: BufferEncoding): void; + wrap(oldStream: NodeJS.ReadableStream): this; + push(chunk: any, encoding?: BufferEncoding): boolean; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + destroy(error?: Error): this; + + addListener(event: "close", listener: () => void): this; + addListener(event: "data", listener: (chunk: any) => void): this; + addListener(event: "end", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "pause", listener: () => void): this; + addListener(event: "readable", listener: () => void): this; + addListener(event: "resume", listener: () => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "data", chunk: any): boolean; + emit(event: "end"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "pause"): boolean; + emit(event: "readable"): boolean; + emit(event: "resume"): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "data", listener: (chunk: any) => void): this; + on(event: "end", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "pause", listener: () => void): this; + on(event: "readable", listener: () => void): this; + on(event: "resume", listener: () => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "data", listener: (chunk: any) => void): this; + once(event: "end", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "pause", listener: () => void): this; + once(event: "readable", listener: () => void): this; + once(event: "resume", listener: () => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "data", listener: (chunk: any) => void): this; + prependListener(event: "end", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "pause", listener: () => void): this; + prependListener(event: "readable", listener: () => void): this; + prependListener(event: "resume", listener: () => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "data", listener: (chunk: any) => void): this; + prependOnceListener(event: "end", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "pause", listener: () => void): this; + prependOnceListener(event: "readable", listener: () => void): this; + prependOnceListener(event: "resume", listener: () => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "data", listener: (chunk: any) => void): this; + removeListener(event: "end", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "pause", listener: () => void): this; + removeListener(event: "readable", listener: () => void): this; + removeListener(event: "resume", listener: () => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; + + [Symbol.asyncIterator](): AsyncIterableIterator; +} + +export class Writable extends Stream implements NodeJS.WritableStream { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + destroyed: boolean; + constructor(opts?: WritableOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error?: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, encoding: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding: BufferEncoding, cb?: () => void): this; + cork(): void; + uncork(): void; + destroy(error?: Error): this; + + addListener(event: "close", listener: () => void): this; + addListener(event: "drain", listener: () => void): this; + addListener(event: "error", listener: (err: Error) => void): this; + addListener(event: "finish", listener: () => void): this; + addListener(event: "pipe", listener: (src: Readable) => void): this; + addListener(event: "unpipe", listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + + emit(event: "close"): boolean; + emit(event: "drain"): boolean; + emit(event: "error", err: Error): boolean; + emit(event: "finish"): boolean; + emit(event: "pipe", src: Readable): boolean; + emit(event: "unpipe", src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + + on(event: "close", listener: () => void): this; + on(event: "drain", listener: () => void): this; + on(event: "error", listener: (err: Error) => void): this; + on(event: "finish", listener: () => void): this; + on(event: "pipe", listener: (src: Readable) => void): this; + on(event: "unpipe", listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + + once(event: "close", listener: () => void): this; + once(event: "drain", listener: () => void): this; + once(event: "error", listener: (err: Error) => void): this; + once(event: "finish", listener: () => void): this; + once(event: "pipe", listener: (src: Readable) => void): this; + once(event: "unpipe", listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + + prependListener(event: "close", listener: () => void): this; + prependListener(event: "drain", listener: () => void): this; + prependListener(event: "error", listener: (err: Error) => void): this; + prependListener(event: "finish", listener: () => void): this; + prependListener(event: "pipe", listener: (src: Readable) => void): this; + prependListener(event: "unpipe", listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + + prependOnceListener(event: "close", listener: () => void): this; + prependOnceListener(event: "drain", listener: () => void): this; + prependOnceListener(event: "error", listener: (err: Error) => void): this; + prependOnceListener(event: "finish", listener: () => void): this; + prependOnceListener(event: "pipe", listener: (src: Readable) => void): this; + prependOnceListener(event: "unpipe", listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + + removeListener(event: "close", listener: () => void): this; + removeListener(event: "drain", listener: () => void): this; + removeListener(event: "error", listener: (err: Error) => void): this; + removeListener(event: "finish", listener: () => void): this; + removeListener(event: "pipe", listener: (src: Readable) => void): this; + removeListener(event: "unpipe", listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; +} + + +export class Duplex extends Readable implements Writable { + readonly writable: boolean; + readonly writableEnded: boolean; + readonly writableFinished: boolean; + readonly writableHighWaterMark: number; + readonly writableLength: number; + readonly writableObjectMode: boolean; + readonly writableCorked: number; + allowHalfOpen: boolean; + constructor(opts?: DuplexOptions); + _write(chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + _writev?(chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + _destroy(error: Error | null, callback: (error: Error | null) => void): void; + _final(callback: (error?: Error | null) => void): void; + write(chunk: any, encoding?: BufferEncoding, cb?: (error: Error | null | undefined) => void): boolean; + write(chunk: any, cb?: (error: Error | null | undefined) => void): boolean; + setDefaultEncoding(encoding: BufferEncoding): this; + end(cb?: () => void): this; + end(chunk: any, cb?: () => void): this; + end(chunk: any, encoding?: BufferEncoding, cb?: () => void): this; + cork(): void; + uncork(): void; + addListener(event: 'close', listener: () => void): this; + addListener(event: 'data', listener: (chunk: any) => void): this; + addListener(event: 'drain', listener: () => void): this; + addListener(event: 'end', listener: () => void): this; + addListener(event: 'error', listener: (err: Error) => void): this; + addListener(event: 'finish', listener: () => void): this; + addListener(event: 'pause', listener: () => void): this; + addListener(event: 'pipe', listener: (src: Readable) => void): this; + addListener(event: 'readable', listener: () => void): this; + addListener(event: 'resume', listener: () => void): this; + addListener(event: 'unpipe', listener: (src: Readable) => void): this; + addListener(event: string | symbol, listener: (...args: any[]) => void): this; + emit(event: 'close'): boolean; + emit(event: 'data', chunk: any): boolean; + emit(event: 'drain'): boolean; + emit(event: 'end'): boolean; + emit(event: 'error', err: Error): boolean; + emit(event: 'finish'): boolean; + emit(event: 'pause'): boolean; + emit(event: 'pipe', src: Readable): boolean; + emit(event: 'readable'): boolean; + emit(event: 'resume'): boolean; + emit(event: 'unpipe', src: Readable): boolean; + emit(event: string | symbol, ...args: any[]): boolean; + on(event: 'close', listener: () => void): this; + on(event: 'data', listener: (chunk: any) => void): this; + on(event: 'drain', listener: () => void): this; + on(event: 'end', listener: () => void): this; + on(event: 'error', listener: (err: Error) => void): this; + on(event: 'finish', listener: () => void): this; + on(event: 'pause', listener: () => void): this; + on(event: 'pipe', listener: (src: Readable) => void): this; + on(event: 'readable', listener: () => void): this; + on(event: 'resume', listener: () => void): this; + on(event: 'unpipe', listener: (src: Readable) => void): this; + on(event: string | symbol, listener: (...args: any[]) => void): this; + once(event: 'close', listener: () => void): this; + once(event: 'data', listener: (chunk: any) => void): this; + once(event: 'drain', listener: () => void): this; + once(event: 'end', listener: () => void): this; + once(event: 'error', listener: (err: Error) => void): this; + once(event: 'finish', listener: () => void): this; + once(event: 'pause', listener: () => void): this; + once(event: 'pipe', listener: (src: Readable) => void): this; + once(event: 'readable', listener: () => void): this; + once(event: 'resume', listener: () => void): this; + once(event: 'unpipe', listener: (src: Readable) => void): this; + once(event: string | symbol, listener: (...args: any[]) => void): this; + prependListener(event: 'close', listener: () => void): this; + prependListener(event: 'data', listener: (chunk: any) => void): this; + prependListener(event: 'drain', listener: () => void): this; + prependListener(event: 'end', listener: () => void): this; + prependListener(event: 'error', listener: (err: Error) => void): this; + prependListener(event: 'finish', listener: () => void): this; + prependListener(event: 'pause', listener: () => void): this; + prependListener(event: 'pipe', listener: (src: Readable) => void): this; + prependListener(event: 'readable', listener: () => void): this; + prependListener(event: 'resume', listener: () => void): this; + prependListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependListener(event: string | symbol, listener: (...args: any[]) => void): this; + prependOnceListener(event: 'close', listener: () => void): this; + prependOnceListener(event: 'data', listener: (chunk: any) => void): this; + prependOnceListener(event: 'drain', listener: () => void): this; + prependOnceListener(event: 'end', listener: () => void): this; + prependOnceListener(event: 'error', listener: (err: Error) => void): this; + prependOnceListener(event: 'finish', listener: () => void): this; + prependOnceListener(event: 'pause', listener: () => void): this; + prependOnceListener(event: 'pipe', listener: (src: Readable) => void): this; + prependOnceListener(event: 'readable', listener: () => void): this; + prependOnceListener(event: 'resume', listener: () => void): this; + prependOnceListener(event: 'unpipe', listener: (src: Readable) => void): this; + prependOnceListener(event: string | symbol, listener: (...args: any[]) => void): this; + removeListener(event: 'close', listener: () => void): this; + removeListener(event: 'data', listener: (chunk: any) => void): this; + removeListener(event: 'drain', listener: () => void): this; + removeListener(event: 'end', listener: () => void): this; + removeListener(event: 'error', listener: (err: Error) => void): this; + removeListener(event: 'finish', listener: () => void): this; + removeListener(event: 'pause', listener: () => void): this; + removeListener(event: 'pipe', listener: (src: Readable) => void): this; + removeListener(event: 'readable', listener: () => void): this; + removeListener(event: 'resume', listener: () => void): this; + removeListener(event: 'unpipe', listener: (src: Readable) => void): this; + removeListener(event: string | symbol, listener: (...args: any[]) => void): this; +} + +interface DuplexOptions extends ReadableOptions, WritableOptions { + allowHalfOpen?: boolean | undefined; + readableObjectMode?: boolean | undefined; + writableObjectMode?: boolean | undefined; + readableHighWaterMark?: number | undefined; + writableHighWaterMark?: number | undefined; + writableCorked?: number | undefined; + read?(this: Duplex, size: number): void; + write?(this: Duplex, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Duplex, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + final?(this: Duplex, callback: (error?: Error | null) => void): void; + destroy?(this: Duplex, error: Error | null, callback: (error: Error | null) => void): void; +} + +interface TransformOptions extends DuplexOptions { + read?(this: Transform, size: number): void; + write?(this: Transform, chunk: any, encoding: BufferEncoding, callback: (error?: Error | null) => void): void; + writev?(this: Transform, chunks: Array<{ chunk: any, encoding: BufferEncoding }>, callback: (error?: Error | null) => void): void; + final?(this: Transform, callback: (error?: Error | null) => void): void; + destroy?(this: Transform, error: Error | null, callback: (error: Error | null) => void): void; + transform?(this: Transform, chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + flush?(this: Transform, callback: TransformCallback): void; +} + +type TransformCallback = (error?: Error | null, data?: any) => void; + +export class Transform extends Duplex { + constructor(opts?: TransformOptions); + _transform(chunk: any, encoding: BufferEncoding, callback: TransformCallback): void; + _flush(callback: TransformCallback): void; +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js new file mode 100644 index 000000000..3abb6ddca --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js @@ -0,0 +1,147 @@ +'use strict' + +import { + ERR_METHOD_NOT_IMPLEMENTED +} from './internal_errors'; + +import { + Duplex, +} from './streams_duplex'; + +import { + getHighWaterMark, +} from './streams_util'; + +Object.setPrototypeOf(Transform.prototype, Duplex.prototype); +Object.setPrototypeOf(Transform, Duplex); + +const kCallback = Symbol('kCallback'); + +export function Transform(options) { + if (!(this instanceof Transform)) return new Transform(options); + + // TODO (ronag): This should preferably always be + // applied but would be semver-major. Or even better; + // make Transform a Readable with the Writable interface. + const readableHighWaterMark = options ? getHighWaterMark(options, 'readableHighWaterMark', true) : null; + if (readableHighWaterMark === 0) { + // A Duplex will buffer both on the writable and readable side while + // a Transform just wants to buffer hwm number of elements. To avoid + // buffering twice we disable buffering on the writable side. + options = { + ...options, + highWaterMark: null, + readableHighWaterMark, + // TODO (ronag): 0 is not optimal since we have + // a "bug" where we check needDrain before calling _write and not after. + // Refs: https://github.com/nodejs/node/pull/32887 + // Refs: https://github.com/nodejs/node/pull/35941 + writableHighWaterMark: options?.writableHighWaterMark || 0 + }; + } + Duplex.call(this, options); + + // We have implemented the _read method, and done the other things + // that Readable wants before the first _read call, so unset the + // sync guard flag. + this._readableState.sync = false; + this[kCallback] = null; + if (options) { + if (typeof options.transform === 'function') this._transform = options.transform; + if (typeof options.flush === 'function') this._flush = options.flush; + } + + // When the writable side finishes, then flush out anything remaining. + // Backwards compat. Some Transform streams incorrectly implement _final + // instead of or in addition to _flush. By using 'prefinish' instead of + // implementing _final we continue supporting this unfortunate use case. + this.on('prefinish', prefinish); +} + +function final(cb) { + if (typeof this._flush === 'function' && !this.destroyed) { + this._flush((er, data) => { + if (er) { + if (cb) { + cb(er); + } else { + this.destroy(er); + } + return; + } + if (data != null) { + this.push(data); + } + this.push(null); + if (cb) { + cb(); + } + }) + } else { + this.push(null); + if (cb) { + cb(); + } + } +} + +function prefinish() { + if (this._final !== final) { + final.call(this); + } +} +Transform.prototype._final = final; + +Transform.prototype._transform = function () { + throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()') +} + +Transform.prototype._write = function (chunk, encoding, callback) { + const rState = this._readableState; + const wState = this._writableState; + const length = rState.length; + this._transform(chunk, encoding, (err, val) => { + if (err) { + callback(err); + return; + } + if (val != null) { + this.push(val); + } + if ( + wState.ended || + // Backwards compat. + length === rState.length || + // Backwards compat. + rState.length < rState.highWaterMark + ) { + callback(); + } else { + this[kCallback] = callback; + } + }) +} + +Transform.prototype._read = function (_size) { + if (this[kCallback]) { + const callback = this[kCallback]; + this[kCallback] = null; + callback(); + } +} + +Object.setPrototypeOf(PassThrough.prototype, Transform.prototype); +Object.setPrototypeOf(PassThrough, Transform); + +export function PassThrough(options) { + if (!(this instanceof PassThrough)) return new PassThrough(options); + Transform.call(this, { + ...options, + transform: undefined, + flush: undefined, + }); +} + +PassThrough.prototype._transform = function (chunk, _, cb) { + cb(null, chunk); +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js new file mode 100644 index 000000000..e9c50973b --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js @@ -0,0 +1,997 @@ +export const kDestroyed = Symbol('kDestroyed'); +export const kIsErrored = Symbol('kIsErrored'); +export const kIsReadable = Symbol('kIsReadable'); +export const kIsDisturbed = Symbol('kIsDisturbed'); +export const kPaused = Symbol('kPaused'); +export const kOnFinished = Symbol('kOnFinished'); +export const kDestroy = Symbol('kDestroy'); +export const kConstruct = Symbol('kConstruct'); + +import { + AbortError, + ERR_INVALID_ARG_TYPE, + ERR_INVALID_ARG_VALUE, + ERR_STREAM_PREMATURE_CLOSE, + ERR_MULTIPLE_CALLBACK, + aggregateTwoErrors, +} from './internal_errors'; + +import * as process from './process'; + +import { Buffer } from './internal_buffer'; + +import { + validateAbortSignal, + validateFunction, + validateObject, +} from './validators'; + +export function isReadableNodeStream(obj, strict = false) { + let _obj$_readableState; + return !!( + ( + obj && + typeof obj.pipe === 'function' && + typeof obj.on === 'function' && + (!strict || (typeof obj.pause === 'function' && + typeof obj.resume === 'function')) && + (!obj._writableState || + ((_obj$_readableState = obj._readableState) === null || + _obj$_readableState === undefined ? undefined + : _obj$_readableState.readable) !== false) && + // Duplex + (!obj._writableState || obj._readableState) + ) // Writable has .pipe. + ); +} + +export function isWritableNodeStream(obj) { + let _obj$_writableState; + return !!( + ( + obj && + typeof obj.write === 'function' && + typeof obj.on === 'function' && + (!obj._readableState || + ((_obj$_writableState = obj._writableState) === null || + _obj$_writableState === undefined ? undefined + : _obj$_writableState.writable) !== false) + ) // Duplex + ); +} + +export function isDuplexNodeStream(obj) { + return !!( + obj && + typeof obj.pipe === 'function' && + obj._readableState && + typeof obj.on === 'function' && + typeof obj.write === 'function' + ); +} + +export function isNodeStream(obj) { + return ( + obj && + (obj._readableState || + obj._writableState || + (typeof obj.write === 'function' && + typeof obj.on === 'function') || + (typeof obj.pipe === 'function' && + typeof obj.on === 'function')) + ); +} + +export function isIterable(obj, isAsync = false) { + if (obj == null) return false; + if (isAsync === true) return typeof obj[Symbol.asyncIterator] === 'function'; + if (isAsync === false) return typeof obj[Symbol.iterator] === 'function'; + return typeof obj[Symbol.asyncIterator] === 'function' || + typeof obj[Symbol.iterator] === 'function'; +} + +export function isDestroyed(stream) { + if (!isNodeStream(stream)) return null; + const wState = stream._writableState; + const rState = stream._readableState; + const state = wState || rState; + return !!(stream.destroyed || stream[kDestroyed] || (state !== null && state !== undefined && state.destroyed)); +} + +export function isWritableEnded(stream) { + if (!isWritableNodeStream(stream)) return null; + if (stream.writableEnded === true) return true; + const wState = stream._writableState; + if (wState !== null && wState !== undefined && wState.errored) return false; + if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null; + return wState.ended; +} + +export function isWritableFinished(stream, strict = false) { + if (!isWritableNodeStream(stream)) return null; + if (stream.writableFinished === true) return true; + const wState = stream._writableState; + if (wState !== null && wState !== undefined && wState.errored) return false; + if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null; + return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0)); +} + +export function isReadableEnded(stream) { + if (!isReadableNodeStream(stream)) return null; + if (stream.readableEnded === true) return true; + const rState = stream._readableState; + if (!rState || rState.errored) return false; + if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null; + return rState.ended; +} + +export function isReadableFinished(stream, strict = false) { + if (!isReadableNodeStream(stream)) return null; + const rState = stream._readableState; + if (rState !== null && rState !== undefined && rState.errored) return false; + if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null; + return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0)); +} + +export function isReadable(stream) { + if (stream && stream[kIsReadable] != null) return stream[kIsReadable]; + if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null; + if (isDestroyed(stream)) return false; + return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream); +} + +export function isWritable(stream) { + if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null; + if (isDestroyed(stream)) return false; + return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream); +} + +export function isFinished(stream, opts = {}) { + if (!isNodeStream(stream)) { + return null; + } + if (isDestroyed(stream)) { + return true; + } + if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && + isReadable(stream)) { + return false; + } + if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && + isWritable(stream)) { + return false; + } + return true; +} + +export function isWritableErrored(stream) { + let _stream$_writableStat, _stream$_writableStat2; + if (!isNodeStream(stream)) { + return null; + } + if (stream.writableErrored) { + return stream.writableErrored; + } + return (_stream$_writableStat = + (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined + ? undefined + : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined + ? _stream$_writableStat + : null; +} + +export function isReadableErrored(stream) { + let _stream$_readableStat, _stream$_readableStat2; + if (!isNodeStream(stream)) { + return null; + } + if (stream.readableErrored) { + return stream.readableErrored; + } + return (_stream$_readableStat = + (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined + ? undefined + : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined + ? _stream$_readableStat + : null; +} + +export function isClosed(stream) { + if (!isNodeStream(stream)) { + return null + } + if (typeof stream.closed === 'boolean') { + return stream.closed + } + const wState = stream._writableState + const rState = stream._readableState + if ( + typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' || + typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean' + ) { + return ( + (wState === null || wState === undefined ? undefined : wState.closed) || + (rState === null || rState === undefined ? undefined : rState.closed) + ) + } + if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) { + return stream._closed + } + return null +} + +// TODO(later): We do not actually support OutgoingMessage yet. Might not ever? +// Keeping this here tho just to keep things simple. +export function isOutgoingMessage(stream) { + return ( + typeof stream._closed === 'boolean' && + typeof stream._defaultKeepAlive === 'boolean' && + typeof stream._removedConnection === 'boolean' && + typeof stream._removedContLen === 'boolean' + ); +} + +// TODO(later): We do not actually support Server Response yet. Might not ever? +// Keeping this here tho just to keep things simple. +export function isServerResponse(stream) { + return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream); +} + +// TODO(later): We do not actually support Server Request yet. Might not ever? +// Keeping this here tho just to keep things simple. +export function isServerRequest(stream) { + let _stream$req; + return ( + typeof stream._consuming === 'boolean' && + typeof stream._dumped === 'boolean' && + ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) === + undefined + ); +} + +export function willEmitClose(stream) { + if (!isNodeStream(stream)) return null; + const wState = stream._writableState; + const rState = stream._readableState; + const state = wState || rState; + return ( + (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false) + ); +} + +export function isDisturbed(stream) { + let _stream$kIsDisturbed; + return !!( + stream && + ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined + ? _stream$kIsDisturbed + : stream.readableDidRead || stream.readableAborted) + ); +} + +export function isErrored(stream) { + var _ref, + _ref2, + _ref3, + _ref4, + _ref5, + _stream$kIsErrored, + _stream$_readableStat3, + _stream$_writableStat3, + _stream$_readableStat4, + _stream$_writableStat4 + return !!( + stream && + ((_ref = + (_ref2 = + (_ref3 = + (_ref4 = + (_ref5 = + (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined + ? _stream$kIsErrored + : stream.readableErrored) !== null && _ref5 !== undefined + ? _ref5 + : stream.writableErrored) !== null && _ref4 !== undefined + ? _ref4 + : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined + ? undefined + : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined + ? _ref3 + : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined + ? undefined + : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined + ? _ref2 + : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined + ? undefined + : _stream$_readableStat4.errored) !== null && _ref !== undefined + ? _ref + : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined + ? undefined + : _stream$_writableStat4.errored) + ) +} + +export const nop = () => {}; + +export function once(callback) { + let called = false + return function (...args) { + if (called) { + return + } + called = true + callback.apply(this, args) + } +} + +// ====================================================================================== +// highWaterMark handling + +export function highWaterMarkFrom(options, isDuplex, duplexKey) { + return options.highWaterMark != null ? options.highWaterMark : + isDuplex ? options[duplexKey] : null +} + +export function getDefaultHighWaterMark(objectMode = false) { + return objectMode ? 16 : 16 * 1024 +} + +export function getHighWaterMark(state, options, duplexKey, isDuplex) { + const hwm = highWaterMarkFrom(options, isDuplex, duplexKey) + if (hwm != null) { + if (!Number.isInteger(hwm) || hwm < 0) { + const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'; + throw new ERR_INVALID_ARG_VALUE(name, hwm, name); + } + return Math.floor(hwm); + } + + // Default value + return getDefaultHighWaterMark(state.objectMode) +} + +// ====================================================================================== +// addAbortSignal + +export function addAbortSignal(signal, stream) { + validateAbortSignal(signal, 'signal'); + if (!isNodeStream(stream)) { + throw new ERR_INVALID_ARG_TYPE('stream', 'stream.Stream', stream); + } + const onAbort = () => { + stream.destroy( + new AbortError(undefined, { + cause: signal.reason + }) + ); + } + if (signal.aborted) { + onAbort(); + } else { + signal.addEventListener('abort', onAbort); + eos(stream, () => signal.removeEventListener('abort', onAbort)); + } + return stream; +} + +// ====================================================================================== +// BufferList + +export class BufferList { + head = null; + tail = null; + length = 0; + + push(v) { + const entry = { + data: v, + next: null, + } + if (this.length > 0) this.tail.next = entry; + else this.head = entry; + this.tail = entry; + ++this.length; + } + unshift(v) { + const entry = { + data: v, + next: this.head, + } + if (this.length === 0) this.tail = entry; + this.head = entry; + ++this.length; + } + shift() { + if (this.length === 0) return; + const ret = this.head.data; + if (this.length === 1) this.head = this.tail = null; + else this.head = this.head.next; + --this.length; + return ret; + } + + clear() { + this.head = this.tail = null; + this.length = 0; + } + + join(s) { + if (this.length === 0) return ''; + let p = this.head; + let ret = '' + p.data; + while ((p = p.next) !== null) ret += s + p.data; + return ret; + } + + concat(n) { + if (this.length === 0) return Buffer.alloc(0); + const ret = Buffer.allocUnsafe(n >>> 0); + let p = this.head; + let i = 0; + while (p) { + ret.set(p.data, i); + i += p.data.length; + p = p.next; + } + return ret; + } + + consume(n, hasStrings = false) { + const data = this.head.data; + if (n < data.length) { + // `slice` is the same for buffers and strings. + const slice = data.slice(0, n); + this.head.data = data.slice(n); + return slice; + } + if (n === data.length) { + // First chunk is a perfect match. + return this.shift(); + } + // Result spans more than one buffer. + return hasStrings ? this._getString(n) : this._getBuffer(n); + } + + first() { + return this.head.data; + } + + *[Symbol.iterator]() { + for (let p = this.head; p; p = p.next) { + yield p.data; + } + } + + _getString(n) { + let ret = ''; + let p = this.head; + let c = 0; + do { + const str = p.data; + if (n > str.length) { + ret += str; + n -= str.length; + } else { + if (n === str.length) { + ret += str + ++c + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + ret += str.slice(0, n); + this.head = p; + p.data = str.slice(n); + } + break; + } + ++c; + } while ((p = p.next) !== null); + this.length -= c; + return ret; + } + + _getBuffer(n) { + const ret = Buffer.allocUnsafe(n); + const retLen = n; + let p = this.head; + let c = 0; + do { + const buf = p.data; + if (n > buf.length) { + ret.set(buf, retLen - n); + n -= buf.length; + } else { + if (n === buf.length) { + ret.set(buf, retLen - n); + ++c; + if (p.next) this.head = p.next; + else this.head = this.tail = null; + } else { + ret.set(new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n); + this.head = p; + p.data = buf.slice(n); + } + break; + } + ++c + } while ((p = p.next) !== null); + this.length -= c; + return ret; + } +} + +// ====================================================================================== + +// TODO(later): We do not current implement Node.js' Request object. Might never? +function isRequest(stream) { + return stream && stream.setHeader && typeof stream.abort === 'function' +} + +export function eos(stream, options, callback) { + let _options$readable, _options$writable; + if (arguments.length === 2) { + callback = options; + options = {}; + } else if (options == null) { + options = {}; + } else { + validateObject(options, 'options', options); + } + validateFunction(callback, 'callback'); + validateAbortSignal(options.signal, 'options.signal'); + callback = once(callback); + const readable = + (_options$readable = options.readable) !== null && _options$readable !== undefined + ? _options$readable + : isReadableNodeStream(stream); + const writable = + (_options$writable = options.writable) !== null && _options$writable !== undefined + ? _options$writable + : isWritableNodeStream(stream); + if (!isNodeStream(stream)) { + // TODO: Webstreams. + throw new ERR_INVALID_ARG_TYPE('stream', 'Stream', stream); + } + const wState = stream._writableState; + const rState = stream._readableState; + const onlegacyfinish = () => { + if (!stream.writable) { + onfinish(); + } + }; + + // TODO (ronag): Improve soft detection to include core modules and + // common ecosystem modules that do properly emit 'close' but fail + // this generic check. + let _willEmitClose = + willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable; + let writableFinished = isWritableFinished((stream), false); + const onfinish = () => { + writableFinished = true; + // Stream should not be destroyed here. If it is that + // means that user space is doing something differently and + // we cannot trust willEmitClose. + if (stream.destroyed) { + _willEmitClose = false; + } + if (_willEmitClose && (!stream.readable || readable)) { + return; + } + if (!readable || readableFinished) { + callback.call(stream); + } + }; + let readableFinished = isReadableFinished(stream, false); + const onend = () => { + readableFinished = true; + // Stream should not be destroyed here. If it is that + // means that user space is doing something differently and + // we cannot trust willEmitClose. + if (stream.destroyed) { + _willEmitClose = false; + } + if (_willEmitClose && (!stream.writable || writable)) { + return; + } + if (!writable || writableFinished) { + callback.call(stream); + } + }; + const onerror = (err) => { + callback.call(stream, err); + }; + let closed = isClosed(stream); + const onclose = () => { + closed = true; + const errored = isWritableErrored(stream) || isReadableErrored(stream) + if (errored && typeof errored !== 'boolean') { + return callback.call(stream, errored); + } + if (readable && !readableFinished && isReadableNodeStream(stream, true)) { + if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); + } + if (writable && !writableFinished) { + if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE()); + } + callback.call(stream); + }; + const onrequest = () => { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + if (!_willEmitClose) { + stream.on('abort', onclose); + } + if (stream.req) { + onrequest(); + } else { + stream.on('request', onrequest); + } + } else if (writable && !wState) { + // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + + // Not all streams will emit 'close' after 'aborted'. + if (!_willEmitClose && typeof stream.aborted === 'boolean') { + stream.on('aborted', onclose); + } + stream.on('end', onend); + stream.on('finish', onfinish); + if (options.error !== false) { + stream.on('error', onerror); + } + stream.on('close', onclose); + if (closed) { + process.nextTick(onclose); + } else if ( + (wState !== null && wState !== undefined && wState.errorEmitted) || + (rState !== null && rState !== undefined && rState.errorEmitted) + ) { + if (!_willEmitClose) { + process.nextTick(onclose); + } + } else if ( + !readable && + (!_willEmitClose || isReadable(stream)) && + (writableFinished || isWritable(stream) === false) + ) { + process.nextTick(onclose); + } else if ( + !writable && + (!_willEmitClose || isWritable(stream)) && + (readableFinished || isReadable(stream) === false) + ) { + process.nextTick(onclose); + } else if (rState && stream.req && stream.aborted) { + process.nextTick(onclose); + } + const cleanup = () => { + callback = nop; + stream.removeListener('aborted', onclose); + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream .req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + } + if (options.signal && !closed) { + const abort = () => { + // Keep it because cleanup removes it. + const endCallback = callback + cleanup() + endCallback.call( + stream, + new AbortError(undefined, { + cause: options.signal?.reason + }) + ) + } + if (options.signal.aborted) { + process.nextTick(abort); + } else { + const originalCallback = callback; + callback = once((...args) => { + options.signal.removeEventListener('abort', abort) + originalCallback.apply(stream, args); + }); + options.signal.addEventListener('abort', abort); + } + } + return cleanup; +} + +export function finished(stream, opts) { + return new Promise((resolve, reject) => { + eos(stream, opts, (err) => { + if (err) { + reject(err); + } else { + resolve(); + } + }) + }); +} + +eos.finished = finished; + +// ====================================================================================== +// Destroy + +function checkError(err, w, r) { + if (err) { + // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364 + err.stack; // eslint-disable-line no-unused-expressions + + if (w && !w.errored) { + w.errored = err; + } + if (r && !r.errored) { + r.errored = err; + } + } +} + +export function destroy(err, cb) { + const r = this._readableState; + const w = this._writableState; + // With duplex streams we use the writable side for state. + const s = w || r; + if ((w && w.destroyed) || (r && r.destroyed)) { + if (typeof cb === 'function') { + cb(); + } + return this; + } + + // We set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks + checkError(err, w, r); + if (w) { + w.destroyed = true; + } + if (r) { + r.destroyed = true; + } + + // If still constructing then defer calling _destroy. + if (!s.constructed) { + this.once(kDestroy, function (er) { + _destroy(this, aggregateTwoErrors(er, err), cb); + }); + } else { + _destroy(this, err, cb); + } + return this; +} + +function _destroy(self, err, cb) { + let called = false; + function onDestroy(err) { + if (called) { + return; + } + called = true; + const r = self._readableState; + const w = self._writableState; + checkError(err, w, r); + if (w) { + w.closed = true; + } + if (r) { + r.closed = true; + } + if (typeof cb === 'function') { + cb(err); + } + if (err) { + process.nextTick(emitErrorCloseNT, self, err); + } else { + process.nextTick(emitCloseNT, self); + } + } + try { + self._destroy(err || null, onDestroy); + } catch (err) { + onDestroy(err); + } +} + +function emitErrorCloseNT(self, err) { + emitErrorNT(self, err); + emitCloseNT(self); +} + +function emitCloseNT(self) { + const r = self._readableState; + const w = self._writableState; + if (w) { + w.closeEmitted = true; + } + if (r) { + r.closeEmitted = true; + } + if ((w && w.emitClose) || (r && r.emitClose)) { + self.emit('close'); + } +} + +function emitErrorNT(self, err) { + const r = self._readableState; + const w = self._writableState; + if ((w && w.errorEmitted) || (r && r.errorEmitted)) { + return; + } + if (w) { + w.errorEmitted = true; + } + if (r) { + r.errorEmitted = true; + } + self.emit('error', err); +} + +export function undestroy() { + const r = this._readableState; + const w = this._writableState; + if (r) { + r.constructed = true; + r.closed = false; + r.closeEmitted = false; + r.destroyed = false; + r.errored = null; + r.errorEmitted = false; + r.reading = false; + r.ended = r.readable === false; + r.endEmitted = r.readable === false; + } + if (w) { + w.constructed = true; + w.destroyed = false; + w.closed = false; + w.closeEmitted = false; + w.errored = null; + w.errorEmitted = false; + w.finalCalled = false; + w.prefinished = false; + w.ended = w.writable === false; + w.ending = w.writable === false; + w.finished = w.writable === false; + } +} + +export function errorOrDestroy(stream, err, sync = false) { + // We have tests that rely on errors being emitted + // in the same tick, so changing this is semver major. + // For now when you opt-in to autoDestroy we allow + // the error to be emitted nextTick. In a future + // semver major update we should change the default to this. + + const r = stream._readableState; + const w = stream._writableState; + if ((w && w.destroyed) || (r && r.destroyed)) { + return; + } + if ((r && r.autoDestroy) || (w && w.autoDestroy)) stream.destroy(err); + else if (err) { + // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364 + err.stack; // eslint-disable-line no-unused-expressions + + if (w && !w.errored) { + w.errored = err; + } + if (r && !r.errored) { + r.errored = err; + } + if (sync) { + process.nextTick(emitErrorNT, stream, err); + } else { + emitErrorNT(stream, err) + } + } +} + +export function construct(stream, cb) { + if (typeof stream._construct !== 'function') { + return; + } + const r = stream._readableState; + const w = stream._writableState; + if (r) { + r.constructed = false; + } + if (w) { + w.constructed = false; + } + stream.once(kConstruct, cb) + if (stream.listenerCount(kConstruct) > 1) { + // Duplex + return; + } + process.nextTick(constructNT, stream); +} + +function constructNT(stream) { + let called = false; + function onConstruct(err) { + if (called) { + errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK()); + return; + } + called = true; + const r = stream._readableState; + const w = stream._writableState; + const s = w || r; + if (r) { + r.constructed = true; + } + if (w) { + w.constructed = true; + } + if (s.destroyed) { + stream.emit(kDestroy, err); + } else if (err) { + errorOrDestroy(stream, err, true); + } else { + process.nextTick(emitConstructNT, stream); + } + } + try { + stream._construct(onConstruct); + } catch (err) { + onConstruct(err); + } +} + +function emitConstructNT(stream) { + stream.emit(kConstruct); +} + +function emitCloseLegacy(stream) { + stream.emit('close'); +} + +function emitErrorCloseLegacy(stream, err) { + stream.emit('error', err); + process.nextTick(emitCloseLegacy, stream); +} + +// Normalize destroy for legacy. +export function destroyer(stream, err) { + if (!stream || isDestroyed(stream)) { + return; + } + if (!err && !isFinished(stream)) { + err = new AbortError(); + } + + // TODO: Remove isRequest branches. + if (isServerRequest(stream)) { + stream.socket = null; + stream.destroy(err); + } else if (isRequest(stream)) { + stream.abort(); + } else if (isRequest(stream.req)) { + stream.req.abort(); + } else if (typeof stream.destroy === 'function') { + stream.destroy(err); + } else if (typeof stream.close === 'function') { + // TODO: Don't lose err? + stream.close(); + } else if (err) { + process.nextTick(emitErrorCloseLegacy, stream, err); + } else { + process.nextTick(emitCloseLegacy, stream); + } + if (!stream.destroyed) { + stream[kDestroyed] = true; + } +} + diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js new file mode 100644 index 000000000..f356c6794 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js @@ -0,0 +1,815 @@ +import + EventEmitter + from './events'; + +import { + Stream +} from './streams_legacy'; + +import { + Buffer, +} from './internal_buffer'; + +import * as process from './process'; + +import { + nop, + kOnFinished, + getHighWaterMark, + getDefaultHighWaterMark, + addAbortSignal, + construct, + destroy, + undestroy, + errorOrDestroy, +} from './streams_util'; + +import { + newStreamWritableFromWritableStream, + newWritableStreamFromStreamWritable, +} from './streams_adapters'; + +import { + ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED, + ERR_STREAM_ALREADY_FINISHED, + ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING +} from './internal_errors'; + +import { isDuplexInstance } from './streams_duplex'; + +// ====================================================================================== +// WritableState + +function WritableState(options, stream, isDuplex) { + // Duplex streams are both readable and writable, but share + // the same options object. + // However, some cases require setting options to different + // values for the readable and the writable sides of the duplex stream, + // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = isDuplexInstance(stream); + + // Object stream flag to indicate whether or not this stream + // contains buffers or objects. + this.objectMode = !!(options?.objectMode); + if (isDuplex) this.objectMode = this.objectMode || !!(options?.writableObjectMode); + + // The point at which write() starts returning false + // Note: 0 is a valid value, means that we always return false if + // the entire buffer is not flushed immediately on write(). + this.highWaterMark = options + ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex) + : getDefaultHighWaterMark(false); + + // if _final has been called. + this.finalCalled = false; + + // drain event flag. + this.needDrain = false; + // At the start of calling end() + this.ending = false; + // When end() has been called, and returned. + this.ended = false; + // When 'finish' is emitted. + this.finished = false; + + // Has it been destroyed + this.destroyed = false; + + // Should we decode strings into buffers before passing to _write? + // this is here so that some node-core streams can optimize string + // handling at a lower level. + const noDecode = !!(options?.decodeStrings === false); + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string + // encoding is 'binary' so we have to make this configurable. + // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = (options?.defaultEncoding) || 'utf8'; + + // Not an actual buffer we keep track of, but a measurement + // of how much we're waiting to get pushed to some underlying + // socket or file. + this.length = 0; + + // A flag to see when we're in the middle of a write. + this.writing = false; + + // When true all writes will be buffered until .uncork() call. + this.corked = 0; + + // A flag to be able to tell if the onwrite cb is called immediately, + // or on a later tick. We set this to true at first, because any + // actions that shouldn't happen until "later" should generally also + // not happen before the first write call. + this.sync = true; + + // A flag to know if we're processing previously buffered items, which + // may call the _write() callback in the same tick, so that we don't + // end up in an overlapped onwrite situation. + this.bufferProcessing = false; + + // The callback that's passed to _write(chunk, cb). + this.onwrite = (err) => onwrite.call(undefined, stream, err); + + // The callback that the user supplies to write(chunk, encoding, cb). + this.writecb = null; + + // The amount that is being written when _write is called. + this.writelen = 0; + + // Storage for data passed to the afterWrite() callback in case of + // synchronous _write() completion. + this.afterWriteTickInfo = null; + resetBuffer(this); + + // Number of pending user-supplied write callbacks + // this must be 0 before 'finish' can be emitted. + this.pendingcb = 0; + + // Stream is still being constructed and cannot be + // destroyed until construction finished or failed. + // Async construction is opt in, therefore we start as + // constructed. + this.constructed = true; + + // Emit prefinish if the only thing we're waiting for is _write cbs + // This is relevant for synchronous Transform streams. + this.prefinished = false; + + // True if the error was already emitted and should not be thrown again. + this.errorEmitted = false; + + // Should close be emitted on destroy. Defaults to true. + this.emitClose = !options || options.emitClose !== false; + + // Should .destroy() be called after 'finish' (and potentially 'end'). + this.autoDestroy = !options || options.autoDestroy !== false; + + // Indicates whether the stream has errored. When true all write() calls + // should return false. This is needed since when autoDestroy + // is disabled we need a way to tell whether the stream has failed. + this.errored = null; + + // Indicates whether the stream has finished destroying. + this.closed = false; + + // True if close has been emitted or would have been emitted + // depending on emitClose. + this.closeEmitted = false; + this[kOnFinished] = []; +} + +function resetBuffer(state) { + state.buffered = []; + state.bufferedIndex = 0; + state.allBuffers = true; + state.allNoop = true; +} + +WritableState.prototype.getBuffer = function getBuffer() { + return this.buffered.slice(this.bufferedIndex); +} + +Object.defineProperty(WritableState.prototype, 'bufferedRequestCount', { + get() { + return this.buffered.length - this.bufferedIndex; + } +}); + +// ====================================================================================== +// Writable + +Writable.WritableState = WritableState; + +Object.setPrototypeOf(Writable.prototype, Stream.prototype); +Object.setPrototypeOf(Writable, Stream); + +export function Writable(options) { + // Writable ctor is applied to Duplexes, too. + // `realHasInstance` is necessary because using plain `instanceof` + // would return false, as no `_writableState` property is attached. + + // Trying to use the custom `instanceof` for Writable here will also break the + // Node.js LazyTransform implementation, which has a non-trivial getter for + // `_writableState` that would lead to infinite recursion. + + // Checking for a Stream.Duplex instance is faster here instead of inside + // the WritableState constructor, at least with V8 6.5. + const isDuplex = isDuplexInstance(this); + if (!isDuplex && !Writable[Symbol.hasInstance](this)) return new Writable(options); + this._writableState = new WritableState(options, this, isDuplex) + if (options) { + if (typeof options.write === 'function') this._write = options.write; + if (typeof options.writev === 'function') this._writev = options.writev; + if (typeof options.destroy === 'function') this._destroy = options.destroy; + if (typeof options.final === 'function') this._final = options.final; + if (typeof options.construct === 'function') this._construct = options.construct; + if (options.signal) addAbortSignal(options.signal, this); + } + Stream.call(this, options); + construct(this, () => { + const state = this._writableState; + if (!state.writing) { + clearBuffer(this, state); + } + finishMaybe(this, state); + }) +} + +Object.defineProperty(Writable, Symbol.hasInstance, { + value: function (object) { + if (Function.prototype[Symbol.hasInstance].call(this, object)) return true; + if (this !== Writable) return false; + return object?._writableState instanceof WritableState; + } +}) + +// Otherwise people can pipe Writable streams, which is just wrong. +Writable.prototype.pipe = function (_1, _2) { + errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); +} + +function _write(stream, chunk, encoding, cb) { + const state = stream._writableState; + if (typeof encoding === 'function') { + cb = encoding; + encoding = state.defaultEncoding; + } else { + if (!encoding) encoding = state.defaultEncoding; + else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) { + throw new ERR_UNKNOWN_ENCODING(encoding); + } + if (typeof cb !== 'function') cb = nop; + } + if (chunk === null) { + throw new ERR_STREAM_NULL_VALUES(); + } else if (!state.objectMode) { + if (typeof chunk === 'string') { + if (state.decodeStrings !== false) { + chunk = Buffer.from(chunk, encoding); + encoding = 'buffer'; + } + } else if (chunk instanceof Buffer) { + encoding = 'buffer'; + } else if (Stream._isUint8Array(chunk)) { + chunk = Stream._uint8ArrayToBuffer(chunk); + encoding = 'buffer'; + } else { + throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); + } + } + let err; + if (state.ending) { + err = new ERR_STREAM_WRITE_AFTER_END(); + } else if (state.destroyed) { + err = new ERR_STREAM_DESTROYED('write'); + } + if (err) { + process.nextTick(cb, err); + errorOrDestroy(stream, err, true); + return err; + } + state.pendingcb++; + return writeOrBuffer(stream, state, chunk, encoding, cb); +} + +function write(chunk, encoding, cb) { + return _write(this, chunk, encoding, cb) === true; +} + +Writable.prototype.write = write; + +Writable.prototype.cork = function () { + this._writableState.corked++; +} + +Writable.prototype.uncork = function () { + const state = this._writableState; + if (state.corked) { + state.corked--; + if (!state.writing) clearBuffer(this, state); + } +} + +function setDefaultEncoding(encoding) { + if (typeof encoding === 'string') encoding = encoding.toLowerCase(); + if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding); + this._writableState.defaultEncoding = encoding; + return this; +} + +Writable.prototype.setDefaultEncoding = setDefaultEncoding; + +// If we're already writing something, then just put this +// in the queue, and wait our turn. Otherwise, call _write +// If we return false, then we need a drain event, so set that flag. +function writeOrBuffer(stream, state, chunk, encoding, callback) { + const len = state.objectMode ? 1 : chunk.length; + state.length += len; + + // stream._write resets state.length + const ret = state.length < state.highWaterMark; + // We must ensure that previous needDrain will not be reset to false. + if (!ret) state.needDrain = true; + if (state.writing || state.corked || state.errored || !state.constructed) { + state.buffered.push({ + chunk, + encoding, + callback, + }); + if (state.allBuffers && encoding !== 'buffer') { + state.allBuffers = false; + } + if (state.allNoop && callback !== nop) { + state.allNoop = false; + } + } else { + state.writelen = len; + state.writecb = callback; + state.writing = true; + state.sync = true; + stream._write(chunk, encoding, state.onwrite); + state.sync = false; + } + + // Return false if errored or destroyed in order to break + // any synchronous while(stream.write(data)) loops. + return ret && !state.errored && !state.destroyed; +} + +function doWrite(stream, state, writev, len, chunk, encoding, cb) { + state.writelen = len; + state.writecb = cb; + state.writing = true; + state.sync = true; + if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write')); + else if (writev) stream._writev(chunk, state.onwrite); + else stream._write(chunk, encoding, state.onwrite); + state.sync = false; +} + +function onwriteError(stream, state, er, cb) { + --state.pendingcb; + cb(er); + // Ensure callbacks are invoked even when autoDestroy is + // not enabled. Passing `er` here doesn't make sense since + // it's related to one specific write, not to the buffered + // writes. + errorBuffer(state); + // This can emit error, but error must always follow cb. + errorOrDestroy(stream, er); +} + +function onwrite(stream, er) { + const state = stream._writableState; + const sync = state.sync; + const cb = state.writecb; + if (typeof cb !== 'function') { + errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK()); + return; + } + state.writing = false; + state.writecb = null; + state.length -= state.writelen; + state.writelen = 0; + if (er) { + // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364 + er.stack; // eslint-disable-line no-unused-expressions + + if (!state.errored) { + state.errored = er; + } + + // In case of duplex streams we need to notify the readable side of the + // error. + if (stream._readableState && !stream._readableState.errored) { + stream._readableState.errored = er; + } + if (sync) { + process.nextTick(onwriteError, stream, state, er, cb); + } else { + onwriteError(stream, state, er, cb); + } + } else { + if (state.buffered.length > state.bufferedIndex) { + clearBuffer(stream, state); + } + if (sync) { + // It is a common case that the callback passed to .write() is always + // the same. In that case, we do not schedule a new nextTick(), but + // rather just increase a counter, to improve performance and avoid + // memory allocations. + if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) { + state.afterWriteTickInfo.count++; + } else { + state.afterWriteTickInfo = { + count: 1, + cb, + stream, + state + }; + process.nextTick(afterWriteTick, state.afterWriteTickInfo); + } + } else { + afterWrite(stream, state, 1, cb); + } + } +} + +function afterWriteTick({ stream, state, count, cb }) { + state.afterWriteTickInfo = null; + return afterWrite(stream, state, count, cb); +} + +function afterWrite(stream, state, count, cb) { + const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain; + if (needDrain) { + state.needDrain = false; + stream.emit('drain'); + } + while (count-- > 0) { + state.pendingcb--; + cb(); + } + if (state.destroyed) { + errorBuffer(state); + } + finishMaybe(stream, state); +} + +// If there's something in the buffer waiting, then invoke callbacks. +function errorBuffer(state) { + if (state.writing) { + return; + } + for (let n = state.bufferedIndex; n < state.buffered.length; ++n) { + let _state$errored; + const { chunk, callback } = state.buffered[n]; + const len = state.objectMode ? 1 : chunk.length; + state.length -= len; + callback( + (_state$errored = state.errored) !== null && _state$errored !== undefined + ? _state$errored + : new ERR_STREAM_DESTROYED('write')); + } + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + let _state$errored2; + onfinishCallbacks[i]( + (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined + ? _state$errored2 + : new ERR_STREAM_DESTROYED('end')); + } + resetBuffer(state); +} + +// If there's something in the buffer waiting, then process it. +function clearBuffer(stream, state) { + if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) { + return; + } + const { buffered, bufferedIndex, objectMode } = state; + const bufferedLength = buffered.length - bufferedIndex; + if (!bufferedLength) { + return; + } + let i = bufferedIndex; + state.bufferProcessing = true; + if (bufferedLength > 1 && stream._writev) { + state.pendingcb -= bufferedLength - 1; + const callback = state.allNoop + ? nop + : (err) => { + for (let n = i; n < buffered.length; ++n) { + buffered[n].callback(err) + } + }; + // Make a copy of `buffered` if it's going to be used by `callback` above, + // since `doWrite` will mutate the array. + const chunks = state.allNoop && i === 0 ? buffered : buffered.slice(i); + chunks.allBuffers = state.allBuffers; + doWrite(stream, state, true, state.length, chunks, '', callback); + resetBuffer(state); + } else { + do { + const { chunk, encoding, callback } = buffered[i]; + buffered[i++] = null; + const len = objectMode ? 1 : chunk.length; + doWrite(stream, state, false, len, chunk, encoding, callback); + } while (i < buffered.length && !state.writing) + if (i === buffered.length) { + resetBuffer(state); + } else if (i > 256) { + buffered.splice(0, i); + state.bufferedIndex = 0; + } else { + state.bufferedIndex = i; + } + } + state.bufferProcessing = false; +} + +Writable.prototype._write = function (chunk, encoding, cb) { + if (this._writev) { + this._writev( + [ + { + chunk, + encoding + } + ], + cb, + ); + } else { + throw new ERR_METHOD_NOT_IMPLEMENTED('_write()'); + } +} + +Writable.prototype._writev = null; + +function end(chunk, encoding, cb) { + const state = this._writableState; + if (typeof chunk === 'function') { + cb = chunk; + chunk = null; + encoding = null; + } else if (typeof encoding === 'function') { + cb = encoding; + encoding = null; + } + let err; + if (chunk !== null && chunk !== undefined) { + const ret = _write(this, chunk, encoding); + if (ret instanceof Error) { + err = ret; + } + } + + // .end() fully uncorks. + if (state.corked) { + state.corked = 1; + this.uncork(); + } + if (err) { + // Do nothing... + } else if (!state.errored && !state.ending) { + // This is forgiving in terms of unnecessary calls to end() and can hide + // logic errors. However, usually such errors are harmless and causing a + // hard error can be disproportionately destructive. It is not always + // trivial for the user to determine whether end() needs to be called + // or not. + + state.ending = true; + finishMaybe(this, state, true); + state.ended = true; + } else if (state.finished) { + err = new ERR_STREAM_ALREADY_FINISHED('end'); + } else if (state.destroyed) { + err = new ERR_STREAM_DESTROYED('end'); + } + if (typeof cb === 'function') { + if (err || state.finished) { + process.nextTick(cb, err); + } else { + state[kOnFinished].push(cb); + } + } + return this; +} + +Writable.prototype.end = end; + +function needFinish(state) { + return ( + state.ending && + !state.destroyed && + state.constructed && + state.length === 0 && + !state.errored && + state.buffered.length === 0 && + !state.finished && + !state.writing && + !state.errorEmitted && + !state.closeEmitted + ); +} + +function callFinal(stream, state) { + let called = false; + function onFinish(err) { + if (called) { + errorOrDestroy(stream, err || new ERR_MULTIPLE_CALLBACK()); + return; + } + called = true; + state.pendingcb--; + if (err) { + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + onfinishCallbacks[i](err); + } + errorOrDestroy(stream, err, state.sync); + } else if (needFinish(state)) { + state.prefinished = true; + stream.emit('prefinish'); + // Backwards compat. Don't check state.sync here. + // Some streams assume 'finish' will be emitted + // asynchronously relative to _final callback. + state.pendingcb++; + process.nextTick(finish, stream, state); + } + } + state.sync = true; + state.pendingcb++; + try { + stream._final(onFinish); + } catch (err) { + onFinish(err); + } + state.sync = false; +} + +function prefinish(stream, state) { + if (!state.prefinished && !state.finalCalled) { + if (typeof stream._final === 'function' && !state.destroyed) { + state.finalCalled = true; + callFinal(stream, state); + } else { + state.prefinished = true; + stream.emit('prefinish'); + } + } +} + +function finishMaybe(stream, state, sync = false) { + if (needFinish(state)) { + prefinish(stream, state); + if (state.pendingcb === 0) { + if (sync) { + state.pendingcb++; + process.nextTick(() => { + ((stream, state) => { + if (needFinish(state)) { + finish(stream, state); + } else { + state.pendingcb--; + } + })(stream, state); + }); + } else if (needFinish(state)) { + state.pendingcb++; + finish(stream, state); + } + } + } +} + +function finish(stream, state) { + state.pendingcb--; + state.finished = true; + const onfinishCallbacks = state[kOnFinished].splice(0); + for (let i = 0; i < onfinishCallbacks.length; i++) { + onfinishCallbacks[i](); + } + stream.emit('finish'); + if (state.autoDestroy) { + // In case of duplex streams we need a way to detect + // if the readable side is ready for autoDestroy as well. + const rState = stream._readableState; + const autoDestroy = + !rState || + (rState.autoDestroy && + // We don't expect the readable to ever 'end' + // if readable is explicitly set to false. + (rState.endEmitted || rState.readable === false)); + if (autoDestroy) { + stream.destroy(); + } + } +} + +Object.defineProperties(Writable.prototype, { + closed: { + get() { + return !!(this._writableState?.closed); + } + }, + destroyed: { + get() { + return !!(this._writableState?.destroyed); + }, + set(value) { + // Backward compatibility, the user is explicitly managing destroyed. + if (this._writableState) { + this._writableState.destroyed = value + } + } + }, + errored: { + enumerable: false, + get() { + return this._writableState?.errored || null; + } + }, + writable: { + get() { + const w = this._writableState + // w.writable === false means that this is part of a Duplex stream + // where the writable side was disabled upon construction. + // Compat. The user might manually disable writable side through + // deprecated setter. + return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended; + }, + set(val) { + // Backwards compatible. + if (this._writableState) { + this._writableState.writable = !!val; + } + } + }, + writableFinished: { + get() { + return !!(this._writableState?.finished); + } + }, + writableObjectMode: { + get() { + return !!(this._writableState?.objectMode); + } + }, + writableBuffer: { + get() { + return this._writableState?.getBuffer(); + } + }, + writableEnded: { + get() { + return !!(this._writableState?.ending); + } + }, + writableNeedDrain: { + get() { + const wState = this._writableState; + if (!wState) return false; + return !wState.destroyed && !wState.ending && wState.needDrain; + } + }, + writableHighWaterMark: { + get() { + return this._writableState?.highWaterMark; + } + }, + writableCorked: { + get() { + return this._writableState?.corked | 0; + } + }, + writableLength: { + get() { + return this._writableState?.length; + } + }, + writableAborted: { + enumerable: false, + get() { + return !!( + this._writableState.writable !== false && + (this._writableState.destroyed || this._writableState.errored) && + !this._writableState.finished + ) + } + } +}); + +Writable.prototype.destroy = function (err, cb) { + const state = this._writableState; + + // Invoke pending callbacks. + if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) { + process.nextTick(errorBuffer, state); + } + destroy.call(this, err, cb); + return this; +} + +Writable.prototype._undestroy = undestroy + +Writable.prototype._destroy = function (err, cb) { + if (cb) cb(err); +} +Writable.prototype[EventEmitter.captureRejectionSymbol] = function (err) { + this.destroy(err); +} + +Writable.fromWeb = function (writableStream, options) { + return newStreamWritableFromWritableStream(writableStream, options) +} +Writable.toWeb = function (streamWritable) { + return newWritableStreamFromStreamWritable(streamWritable) +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts new file mode 100644 index 000000000..400179abc --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts @@ -0,0 +1,102 @@ +export abstract class MIMEType { + public constructor(input: string); + public type: string; + public subtype: string; + public readonly essence: string; + public readonly params: MIMEParams; + public toString(): string; + public toJSON(): string; +} + +export abstract class MIMEParams { + public constructor(); + public delete(name: string): void; + public get(name: string): string|undefined; + public has(name: string): boolean; + public set(name: string, value: string): void; + public entries(): Iterable; + public keys(): Iterable; + public values(): Iterable; +} + +export const kResourceTypeInspect: unique symbol; + +export const ALL_PROPERTIES: 0; +export const ONLY_ENUMERABLE: 1; +export function getOwnNonIndexProperties(value: unknown, filter: typeof ALL_PROPERTIES | typeof ONLY_ENUMERABLE): PropertyKey[]; + +export const kPending: 0; +export const kFulfilled: 1; +export const kRejected: 2; +export interface PromiseDetails { + state: typeof kPending | typeof kFulfilled | typeof kRejected; + result: unknown; +} +export function getPromiseDetails(value: unknown): PromiseDetails | undefined; + +export interface ProxyDetails { + target: unknown; + handler: unknown; +} +export function getProxyDetails(value: unknown): ProxyDetails | undefined; + +export interface PreviewedEntries { + entries: unknown[]; + isKeyValue: boolean; +} +export function previewEntries(value: unknown): PreviewedEntries | undefined; + +export function getConstructorName(value: unknown): string; + +export type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float32Array + | Float64Array; + +export function isArrayBufferView(value: unknown): value is ArrayBufferView; +export function isArgumentsObject(value: unknown): value is IArguments; +export function isArrayBuffer(value: unknown): value is ArrayBuffer; +export function isAsyncFunction(value: unknown): value is Function; +export function isBigInt64Array(value: unknown): value is BigInt64Array; +export function isBigIntObject(value: unknown): value is BigInt; +export function isBigUint64Array(value: unknown): value is BigUint64Array; +export function isBooleanObject(value: unknown): value is Boolean; +export function isDataView(value: unknown): value is DataView; +export function isDate(value: unknown): value is Date; +export function isFloat32Array(value: unknown): value is Float32Array; +export function isFloat64Array(value: unknown): value is Float64Array; +export function isGeneratorFunction(value: unknown): value is GeneratorFunction; +export function isGeneratorObject(value: unknown): value is Generator; +export function isInt8Array(value: unknown): value is Int8Array; +export function isInt16Array(value: unknown): value is Int16Array; +export function isInt32Array(value: unknown): value is Int32Array; +export function isMap(value: unknown): value is Map; +export function isMapIterator(value: unknown): value is IterableIterator; +export function isModuleNamespaceObject(value: unknown): boolean; +export function isNativeError(value: unknown): value is Error; +export function isNumberObject(value: unknown): value is Number; +export function isPromise(value: unknown): value is Promise; +export function isProxy(value: unknown): boolean; +export function isRegExp(value: unknown): value is RegExp; +export function isSet(value: unknown): value is Set; +export function isSetIterator(value: unknown): value is IterableIterator; +export function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer; +export function isStringObject(value: unknown): value is String; +export function isSymbolObject(value: unknown): value is Symbol; +export function isTypedArray(value: unknown): value is TypedArray; +export function isUint8Array(value: unknown): value is Uint8Array; +export function isUint8ClampedArray(value: unknown): value is Uint8ClampedArray; +export function isUint16Array(value: unknown): value is Uint16Array; +export function isUint32Array(value: unknown): value is Uint32Array; +export function isWeakMap(value: unknown): value is WeakMap; +export function isWeakSet(value: unknown): value is WeakSet; +export function isAnyArrayBuffer(value: unknown): value is ArrayBuffer | SharedArrayBuffer; +export function isBoxedPrimitive(value: unknown): value is Number | String | Boolean | BigInt | Symbol; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts new file mode 100644 index 000000000..2821fd065 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts @@ -0,0 +1,256 @@ +import { ALL_PROPERTIES as A_PROPERTIES, ONLY_CONFIGURABLE, ONLY_ENUMERABLE as O_ENUMERABLE, ONLY_WRITABLE, SKIP_STRINGS, SKIP_SYMBOLS, isArrayIndex } from "./internal_utils"; + +export const kPending = 0; +export const kFulfilled= 1; +export const kRejected = 2; + +export const kResourceTypeInspect: unique symbol = Symbol.for("nodejs.util.inspect.custom"); + +export interface PromiseDetails { + state: typeof kPending | typeof kFulfilled | typeof kRejected; + result: unknown; +} + +export type TypedArray = + | Uint8Array + | Uint8ClampedArray + | Uint16Array + | Uint32Array + | Int8Array + | Int16Array + | Int32Array + | BigUint64Array + | BigInt64Array + | Float32Array + | Float64Array; + +export interface PreviewedEntries { + entries: unknown[]; + isKeyValue: boolean; +} +export interface ProxyDetails { + target: unknown; + handler: unknown; +} + +export function getOwnNonIndexProperties( + // deno-lint-ignore ban-types + obj: object, + filter: number, +): (string | symbol)[] { + let allProperties = [ + ...Object.getOwnPropertyNames(obj), + ...Object.getOwnPropertySymbols(obj), + ]; + + if (Array.isArray(obj)) { + allProperties = allProperties.filter((k) => !isArrayIndex(k)); + } + + if (filter === A_PROPERTIES) { + return allProperties; + } + + const result: (string | symbol)[] = []; + for (const key of allProperties) { + const desc = Object.getOwnPropertyDescriptor(obj, key); + if (desc === undefined) { + continue; + } + if (filter & ONLY_WRITABLE && !desc.writable) { + continue; + } + if (filter & O_ENUMERABLE && !desc.enumerable) { + continue; + } + if (filter & ONLY_CONFIGURABLE && !desc.configurable) { + continue; + } + if (filter & SKIP_STRINGS && typeof key === "string") { + continue; + } + if (filter & SKIP_SYMBOLS && typeof key === "symbol") { + continue; + } + result.push(key); + } + return result; +} + +export const ALL_PROPERTIES = A_PROPERTIES; +export const ONLY_ENUMERABLE = O_ENUMERABLE; + +// TODO: implement this properly +export function isArrayBufferView(value: unknown): value is ArrayBufferView { + return false; +} + +export function isArgumentsObject(value: unknown): value is IArguments { + return false; +} + +export function isArrayBuffer(value: unknown): value is ArrayBuffer { + return false; +} + +export function isAsyncFunction(value: unknown): value is Function { + return false; +} + +export function isBigInt64Array(value: unknown): value is BigInt64Array { + return false; +} + +export function isBigIntObject(value: unknown): value is BigInt { + return false; +} + +export function isBigUint64Array(value: unknown): value is BigUint64Array { + return false; +} + +export function isBooleanObject(value: unknown): value is Boolean { + return false; +} + +export function isDataView(value: unknown): value is DataView { + return false; +} + +export function isDate(value: unknown): value is Date { + return false; +} + +export function isFloat32Array(value: unknown): value is Float32Array { + return false; +} + +export function isFloat64Array(value: unknown): value is Float64Array { + return false; +} + +export function isGeneratorFunction(value: unknown): value is GeneratorFunction { + return false; +} + +export function isGeneratorObject(value: unknown): value is Generator { + return false; +} + +export function isInt8Array(value: unknown): value is Int8Array { + return false; +} + +export function isInt16Array(value: unknown): value is Int16Array { + return false; +} + +export function isInt32Array(value: unknown): value is Int32Array { + return false; +} + +export function isMap(value: unknown): value is Map { + return false; +} + +export function isMapIterator(value: unknown): value is IterableIterator { + return false; +} + +export function isModuleNamespaceObject(value: unknown): boolean { + return false; +} + +export function isNativeError(value: unknown): value is Error { + return false; +} + +export function isNumberObject(value: unknown): value is Number { + return false; +} + +export function isPromise(value: unknown): value is Promise { + return false; +} + +export function isProxy(value: unknown): boolean { + return false; +} + +export function isRegExp(value: unknown): value is RegExp { + return false; +} + +export function isSet(value: unknown): value is Set { + return false; +} + +export function isSetIterator(value: unknown): value is IterableIterator { + return false; +} + +export function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer { + return false; +} + +export function isStringObject(value: unknown): value is String { + return false; +} + +export function isSymbolObject(value: unknown): value is Symbol { + return false; +} + +export function isTypedArray(value: unknown): value is TypedArray { + return false; +} + +export function isUint8Array(value: unknown): value is Uint8Array { + return false; +} + +export function isUint8ClampedArray(value: unknown): value is Uint8ClampedArray { + return false; +} + +export function isUint16Array(value: unknown): value is Uint16Array { + return false; +} + +export function isUint32Array(value: unknown): value is Uint32Array { + return false; +} + +export function isWeakMap(value: unknown): value is WeakMap { + return false; +} + +export function isWeakSet(value: unknown): value is WeakSet { + return false; +} + +export function isAnyArrayBuffer(value: unknown): value is ArrayBuffer | SharedArrayBuffer { + return false; +} + +export function isBoxedPrimitive(value: unknown): value is Number | String | Boolean | BigInt | Symbol { + return false; +} + + +export function getPromiseDetails(value: unknown): PromiseDetails | undefined { + return undefined +} + +export function getProxyDetails(value: unknown): ProxyDetails | undefined { + return undefined +} + +export function previewEntries(value: unknown): PreviewedEntries | undefined { + return undefined; +} + +export function getConstructorName(value: unknown): string { + return ""; +} + diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts new file mode 100644 index 000000000..58985a377 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts @@ -0,0 +1,189 @@ +import { isArrayBufferView } from "./internal_types"; +import { normalizeEncoding } from "./internal_utils"; +import { + ERR_INVALID_ARG_TYPE, + ERR_INVALID_ARG_VALUE, + ERR_OUT_OF_RANGE, +} from "./internal_errors"; + +// TODO(someday): Not current implementing parseFileMode, validatePort + +export const isInt32 = (value: any) => value === (value | 0); +export const isUint32 = (value: any) => value === (value >>> 0); + +export function validateBuffer(buffer: unknown, name = "buffer") { + if (!isArrayBufferView(buffer)) { + throw new ERR_INVALID_ARG_TYPE( + name, + ["Buffer", "TypedArray", "DataView"], + buffer, + ); + } +}; + +export function validateInteger( + value: unknown, + name: string, + min = Number.MIN_SAFE_INTEGER, + max = Number.MAX_SAFE_INTEGER) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } + if (!Number.isInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, "an integer", value); + } + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); + } +} + +export interface ValidateObjectOptions { + allowArray?: boolean; + allowFunction?: boolean; + nullable?: boolean; +}; + +export function validateObject(value: unknown, name: string, options?: ValidateObjectOptions) { + const useDefaultOptions = options == null; + const allowArray = useDefaultOptions ? false : options.allowArray; + const allowFunction = useDefaultOptions ? false : options.allowFunction; + const nullable = useDefaultOptions ? false : options.nullable; + if ( + (!nullable && value === null) || + (!allowArray && Array.isArray(value)) || + (typeof value !== "object" && ( + !allowFunction || typeof value !== "function" + )) + ) { + throw new ERR_INVALID_ARG_TYPE(name, "Object", value); + } +}; + +export function validateInt32(value: any, name: string, min = -2147483648, max = 2147483647) { + if (!isInt32(value)) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } + + if (!Number.isInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, "an integer", value); + } + + throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); + } + + if (value < min || value > max) { + throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value); + } +} + +export function validateUint32(value: unknown, name: string, positive?: boolean) { + if (!isUint32(value)) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } + if (!Number.isInteger(value)) { + throw new ERR_OUT_OF_RANGE(name, "an integer", value); + } + const min = positive ? 1 : 0; + // 2 ** 32 === 4294967296 + throw new ERR_OUT_OF_RANGE( + name, + `>= ${min} && < 4294967296`, + value, + ); + } + if (positive && value === 0) { + throw new ERR_OUT_OF_RANGE(name, ">= 1 && < 4294967296", value); + } +} + +export function validateString(value: unknown, name: string) { + if (typeof value !== "string") { + throw new ERR_INVALID_ARG_TYPE(name, "string", value); + } +} + +export function validateNumber(value: unknown, name: string) { + if (typeof value !== "number") { + throw new ERR_INVALID_ARG_TYPE(name, "number", value); + } +} + +export function validateBoolean(value: unknown, name: string) { + if (typeof value !== "boolean") { + throw new ERR_INVALID_ARG_TYPE(name, "boolean", value); + } +} + +export function validateOneOf(value: unknown, name: string, oneOf: any[]) { + if (!Array.prototype.includes.call(oneOf, value)) { + const allowed = Array.prototype.join.call( + Array.prototype.map.call( + oneOf, + (v) => (typeof v === "string" ? `'${v}'` : String(v)), + ), + ", ", + ); + const reason = "must be one of: " + allowed; + + throw new ERR_INVALID_ARG_VALUE(name, value, reason); + } +} + +export function validateEncoding(data: unknown, encoding: string): void { + const normalizedEncoding = normalizeEncoding(encoding); + const length = (data as any).length; + + if (normalizedEncoding === "hex" && length % 2 !== 0) { + throw new ERR_INVALID_ARG_VALUE( + "encoding", + encoding, + `is invalid for data of length ${length}`, + ); + } +} + +export function validateAbortSignal(signal: unknown, name: string) { + if ( + signal !== undefined && + (signal === null || + typeof signal !== "object" || + !("aborted" in signal)) + ) { + throw new ERR_INVALID_ARG_TYPE(name, "AbortSignal", signal); + } +}; + +export function validateFunction(value: unknown, name: string) { + if (typeof value !== "function") { + throw new ERR_INVALID_ARG_TYPE(name, "Function", value); + } +} + +export function validateArray(value: unknown, name: string, minLength = 0) { + if (!Array.isArray(value)) { + throw new ERR_INVALID_ARG_TYPE(name, "Array", value); + } + if (value.length < minLength) { + const reason = `must be longer than ${minLength}`; + throw new ERR_INVALID_ARG_VALUE(name, value, reason); + } +} + +export default { + isInt32, + isUint32, + validateAbortSignal, + validateArray, + validateBoolean, + validateBuffer, + validateFunction, + validateInt32, + validateInteger, + validateNumber, + validateObject, + validateOneOf, + validateString, + validateUint32, +}; \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/path.js b/JS/wasm/crates/wasmjs-engine/shims/src/path.js new file mode 100644 index 000000000..08cce9319 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/path.js @@ -0,0 +1,61 @@ +import { + posix, + win32, +} from './internal/internal_path'; + +const { + resolve, + normalize, + isAbsolute, + join, + relative, + toNamespacedPath, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, +} = posix; + +export { + resolve, + normalize, + isAbsolute, + join, + relative, + toNamespacedPath, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + posix, + win32, +}; + +export { default } from './internal/internal_path' +import process from './internal/process'; + +globalThis.process = process; + +globalThis.path = { + resolve, + normalize, + isAbsolute, + join, + relative, + toNamespacedPath, + dirname, + basename, + extname, + format, + parse, + sep, + delimiter, + posix, + win32, +} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts b/JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts new file mode 100644 index 000000000..03168d917 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts @@ -0,0 +1,3 @@ +import { posix } from '../internal/internal_path'; + +export default posix; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts b/JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts new file mode 100644 index 000000000..440107305 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts @@ -0,0 +1,3 @@ +import { win32 } from '../internal/internal_path'; + +export default win32; diff --git a/JS/wasm/crates/wasmjs-engine/src/main.rs b/JS/wasm/crates/wasmjs-engine/src/main.rs new file mode 100644 index 000000000..afa620a1b --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/src/main.rs @@ -0,0 +1,235 @@ +use std::{ + collections::HashMap, + env, fs, + io::{stdin, stdout, Read, Write}, +}; + +use javy::{ + json, + quickjs::{JSContextRef, JSValue, JSValueRef}, + Runtime, +}; + +wit_bindgen_rust::import!({paths: ["../../assets/wasmjs/wit/http.wit"]}); +use crate::http::*; + +pub enum RuntimeError { + InvalidBinding { invalid_export: String }, +} + +pub fn load_bindings(context: &JSContextRef, global: JSValueRef) -> Result<(), RuntimeError> { + global + .set_property( + "__send_http_request", + context + .wrap_callback(|_ctx, _this_arg, args| { + let uri = args[0].to_string(); + + let opts: HashMap = args[1].try_into()?; + let method = opts.get("method").unwrap().to_string(); + let headers = opts.get("headers").unwrap(); + let body = opts.get("body").unwrap(); + + let method = match method.as_str() { + "GET" => HttpMethod::Get, + "POST" => HttpMethod::Post, + _ => HttpMethod::Get, + }; + + let mut parsed_headers: Vec<(String, String)> = Vec::new(); + + if let JSValue::Object(headers) = headers { + for (key, val) in headers.iter() { + parsed_headers.push((key.to_string(), val.to_string())); + } + } + + let headers_slice: &[(&str, &str)] = &parsed_headers + .iter() + .map(|(k, v)| (k.as_str(), v.as_str())) + .collect::>(); + + let parsed_body: Option<&[u8]>; + + if let JSValue::ArrayBuffer(buf) = body { + parsed_body = Some(buf.as_ref()); + } else if let JSValue::String(data) = body { + parsed_body = Some(data.as_bytes()); + } else { + parsed_body = None; + } + + let req = HttpRequest { + uri: uri.as_str(), + body: parsed_body, + headers: headers_slice, + method, + params: &[], + }; + + match send_http_request(req) { + Ok(result) => { + let body = result.body.unwrap_or(Vec::new()); + let mut headers = HashMap::new(); + + for (key, val) in result.headers.iter() { + headers.insert(key.as_str(), JSValue::String(val.to_string())); + } + + let parsed_result = HashMap::from([ + ("status", JSValue::Int(result.status as i32)), + ("body", JSValue::ArrayBuffer(body)), + ("headers", JSValue::from_hashmap(headers)), + ]); + + Ok(JSValue::from_hashmap(parsed_result)) + } + Err(err) => { + let kind = match err.error { + HttpError::InvalidRequest => "Invalid Request".to_string(), + HttpError::InvalidRequestBody => "Invalid Request Body".to_string(), + HttpError::InvalidResponseBody => { + "Invalid Response Body".to_string() + } + HttpError::NotAllowed => "Not allowed".to_string(), + HttpError::InternalError => "Internal Error".to_string(), + HttpError::Timeout => "Request Timeout".to_string(), + HttpError::RedirectLoop => "Redirect Loop".to_string(), + }; + + Ok(JSValue::from_hashmap(HashMap::from([ + ("error", JSValue::Bool(true)), + ("type", JSValue::String(kind)), + ("message", JSValue::String(err.message)), + ]))) + } + } + }) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "send_http_request".to_string(), + })?, + ) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "send_http_request".to_string(), + })?; + + global + .set_property( + "__console_log", + context + .wrap_callback(|_ctx, _this_arg, args| { + let msg = args[0].to_string(); + eprintln!("{msg}"); + + Ok(JSValue::Null) + }) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "console_log".to_string(), + })?, + ) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "console_log".to_string(), + })?; + + Ok(()) +} + +static POLYFILL: &str = include_str!("../shims/dist/index.js"); +static POLYFILL_BUFFER: &str = include_str!("../shims/dist/buffer.js"); + +static POLYFILL_PATH: &str = include_str!("../shims/dist/path.js"); + +static POLYFILL_CRYPTO: &str = include_str!("../shims/dist/crypto.js"); + +fn main() { + let runtime = Runtime::default(); + let context = runtime.context(); + + let source = fs::read_to_string("/src/index.js"); + let mut contents = String::new(); + let mut buffer = String::new(); + let mut path = String::new(); + let mut crypto = String::new(); + + let mut request = String::new(); + contents.push_str(POLYFILL); + buffer.push_str(POLYFILL_BUFFER); + path.push_str(POLYFILL_PATH); + crypto.push_str(POLYFILL_CRYPTO); + + stdin().read_to_string(&mut request).unwrap(); + + let mut env_vars = HashMap::new(); + for (key, val) in env::vars() { + env_vars.insert(key, val); + } + let env_vars_json = serde_json::to_string(&env_vars).unwrap(); + contents.push_str(&format!("globalThis.env = {};", env_vars_json)); + + contents.push_str(&source.unwrap()); + + let global = context.global_object().unwrap(); + match load_bindings(context, global) { + Ok(_) => {} + Err(e) => match e { + RuntimeError::InvalidBinding { invalid_export } => { + eprintln!("There was an error adding the '{invalid_export}' binding"); + } + }, + } + + context.eval_module("buffer", &buffer).unwrap(); + context.eval_module("crypto", &crypto).unwrap(); + + match context.eval_module("path", &path) { + Ok(_) => {} + Err(err) => eprintln!("Error loading the path shim: {err}"), + }; + + context.eval_module("handler.mjs", &contents).unwrap(); + + context + .eval_module( + "runtime.mjs", + &format!( + r#" + import {{ default as handler }} from 'handler.mjs'; + addEventListener('fetch', (e) => {{ + e.respondWith(handler.fetch(e.request)) + }}); + "# + ), + ) + .unwrap(); + + let global = context.global_object().unwrap(); + let entrypoint = global.get_property("entrypoint").unwrap(); + + let input_bytes = request.as_bytes(); + let input_value = json::transcode_input(context, input_bytes).unwrap(); + + match entrypoint.call(&global, &[input_value]) { + Ok(_) => {} + Err(err) => eprintln!("Error calling the main entrypoint: {err}"), + }; + + if context.is_pending() { + if let Err(err) = context.execute_pending() { + eprintln!("Error running async methods: {err}"); + } + } + + let global = context.global_object().unwrap(); + let error_value = global.get_property("error").unwrap(); + let output_value = global.get_property("result").unwrap(); + + if !error_value.is_null_or_undefined() { + eprintln!("{}", error_value.as_str_lossy()); + } + + let output = json::transcode_output(output_value).unwrap(); + + stdout() + .write_all(&output) + .expect("Error when returning the response"); +} diff --git a/JS/wasm/crates/wasmjs-engine/taskfile.yml b/JS/wasm/crates/wasmjs-engine/taskfile.yml new file mode 100644 index 000000000..69d28cf08 --- /dev/null +++ b/JS/wasm/crates/wasmjs-engine/taskfile.yml @@ -0,0 +1,23 @@ +version: "3" + +tasks: + add:wasm32-wasi:target: rustup target add wasm32-wasi + build: + deps: + - add:wasm32-wasi:target + - build-shims + cmds: + - cargo build --target wasm32-wasi --release + - cp ./target/wasm32-wasi/release/wasmjs-engine.wasm ./ + build-shims: + deps: + - shims-install + dir: shims + cmds: + - echo pwd + - npm run build + shims-install: + dir: shims + cmds: + - pwd + - npm install \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm b/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm new file mode 100755 index 0000000000000000000000000000000000000000..49b6851414c3e9743b378cdd45fd7eef6db47f58 GIT binary patch literal 5492465 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

wjI2Qo+ndvAE;;x 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¥q7HgF(_O?~W}gb;L6WsxjSpqH{q< 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 z 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�&obbd|ZhOU&{Wz!bGVX9@* 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

  • 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%0AR^Y1P@|)_3NDqr!xv9`AE6 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%0AOPudU*FPAcNfJ9ahHZdmh1x;ctqX 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%0DwV{$3z$wp==nozPN~2LsBDa+SS== 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�svU5vPfU9b3d0&!of#Hgey8+`Vx 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 z ^?$w!lNN0ANE!uPkcOcB|(V3(4 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 Error }, +}); + +impl GuestErrorType for ArakooStatus { + fn success() -> Self { + ArakooStatus::Ok + } +} + +use self::{http::{Http, HttpRequest, HttpRequestError, HttpResponse, HttpError, HttpMethod}, types::ArakooStatus}; + +#[derive(Deserialize, Clone)] +#[serde(default)] +pub struct HttpRequestsConfig { + pub allowed_hosts: Vec, + pub allowed_methods: Vec, + pub allow_http: bool, +} + +impl Default for HttpRequestsConfig { + fn default() -> Self { + Self { + allowed_hosts: vec!["aws.connect.psdb.cloud".to_string()], + allowed_methods: Vec::from([ + String::from("GET"), + String::from("POST"), + String::from("PUT"), + String::from("PATCH"), + String::from("DELETE"), + ]), + allow_http: false, + } + } +} + +pub struct HttpBindings { + pub http_config: HttpRequestsConfig, +} + +impl From for reqwest::Method { + fn from(value: HttpMethod) -> Self { + match value { + HttpMethod::Get => Method::GET, + HttpMethod::Post => Method::POST, + HttpMethod::Put => Method::PUT, + HttpMethod::Patch => Method::PATCH, + HttpMethod::Delete => Method::DELETE, + HttpMethod::Options => Method::OPTIONS, + HttpMethod::Head => Method::HEAD, + } + } +} + +impl From for HttpError { + fn from(value: reqwest::Error) -> Self { + if value.is_timeout() { + HttpError::Timeout + } else if value.is_redirect() { + HttpError::RedirectLoop + } else if value.is_request() { + HttpError::InvalidRequest + } else if value.is_body() { + HttpError::InvalidRequestBody + } else if value.is_decode() { + HttpError::InvalidResponseBody + } else { + HttpError::InternalError + } + } +} + +impl Http for HttpBindings { + fn send_http_request( + &mut self, + req: HttpRequest<'_>, + ) -> Result { + let mut headers = Vec::new(); + let url = req.uri.to_string(); + let body = req.body.unwrap_or(&[]).to_vec(); + let uri = url.parse::().map_err(|e| HttpRequestError { + error: HttpError::InvalidRequest, + message: e.to_string(), + })?; + let method: Method = req.method.into(); + + if uri.host().is_some() + && !self + .http_config + .allowed_hosts + .contains(&uri.host().unwrap().to_string()) + { + return Err(HttpRequestError { + error: HttpError::NotAllowed, + message: format!("'{}' is not in the allowed hosts list", uri.host().unwrap()), + }); + } + + if uri.scheme().is_some() + && (!self.http_config.allow_http && uri.scheme_str().unwrap() == "http") + { + return Err(HttpRequestError { + error: HttpError::NotAllowed, + message: "Only https is allowed".to_string(), + }); + } + + if !self + .http_config + .allowed_methods + .contains(&method.to_string()) + { + return Err(HttpRequestError { + error: HttpError::NotAllowed, + message: format!("'{}' method not allowed", method.as_str()), + }); + } + + for (key, value) in req.headers { + headers.push((key.to_string(), value.to_string())); + } + + let thread_result = std::thread::spawn(move || { + Builder::new_current_thread() + .enable_all() + .build() + .unwrap() + .block_on(async { + let client = reqwest::Client::new(); + + let mut builder = client.request(method, url); + + for (key, value) in headers { + builder = builder.header(key, value); + } + + builder = builder.body(body); + + match builder.send().await { + Ok(res) => { + let mut headers = Vec::new(); + let status = res.status().as_u16(); + + for (name, value) in res.headers().iter() { + headers + .push((name.to_string(), value.to_str().unwrap().to_string())); + } + + let body = res.bytes().await; + + Ok(HttpResponse { + headers, + status, + body: Some(body.unwrap().to_vec()), + }) + } + Err(e) => { + let message = e.to_string(); + + Err(HttpRequestError { + error: e.into(), + message, + }) + } + } + }) + }) + .join(); + + match thread_result { + Ok(res) => match res { + Ok(res) => Ok(res), + Err(err) => Err(err), + }, + Err(_) => Err(HttpRequestError { + error: HttpError::InternalError, + message: "Could not process the request".to_string(), + }), + } + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/config.rs b/JS/wasm/crates/wasmjs-runtime/src/config.rs new file mode 100644 index 000000000..69123fd29 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/config.rs @@ -0,0 +1,181 @@ +use crate::bindings::HttpRequestsConfig; +use anyhow::Result; +use serde::Deserialize; +use serde::Deserializer; +use std::collections::HashMap; +use std::{env, fs}; +use std::path::{Path, PathBuf}; +use std::str::FromStr; +use toml::Table; +use crate::error::ArakooConfigError; +use crate::geolocation::Geolocation; + +#[derive(Deserialize, Clone, Default)] +#[serde(default)] +pub struct Features { + pub http_requests: HttpRequestsConfig, + pub geo: ArakooConfig +} + +#[derive(Deserialize, Clone, Default)] +pub struct Folder { + #[serde(deserialize_with = "deserialize_path", default)] + pub from: PathBuf, + pub to: String, +} + +fn deserialize_path<'de, D>(deserializer: D) -> Result +where + D: Deserializer<'de>, +{ + let result: Result = Deserialize::deserialize(deserializer); + + match result { + Ok(value) => { + let split = if value.contains('/') { + value.split('/') + } else { + value.split('\\') + }; + + Ok(split.fold(PathBuf::new(), |mut acc, el| { + acc.push(el); + acc + })) + } + Err(err) => Err(err), + } +} + +#[derive(Debug, Clone, Deserialize)] +pub struct ArakooConfig { + pub(crate) local_server: LocalServerConfig, +} + +impl Default for ArakooConfig { + fn default() -> Self { + ArakooConfig{ + local_server: LocalServerConfig::default() + } + } +} + +impl ArakooConfig { + pub fn geolocation(&self) -> &Geolocation { + &self.local_server.geolocation + } + pub fn from_file(path: impl AsRef) -> Result { + fs::read_to_string(path.as_ref()) + .map_err(|err| ArakooConfigError::IoError { + path: path.as_ref().display().to_string(), + err, + }) + .and_then(Self::from_str) + } + + /// Parse a string containing TOML data into a `ArakooConfig`. + fn from_str(toml: impl AsRef) -> Result { + toml::from_str::(toml.as_ref()) + .map_err(Into::into) + .and_then(TryInto::try_into) + } + +} + +impl FromStr for ArakooConfig { + type Err = ArakooConfigError; + fn from_str(s: &str) -> Result { + Self::from_str(s) + } +} + +#[derive(Deserialize)] +struct TomlArakooConfig { + local_server: Option, +} + +impl TryInto for TomlArakooConfig { + type Error = ArakooConfigError; + fn try_into(self) -> Result { + let Self { + local_server, + } = self; + let local_server: LocalServerConfig = local_server + .map(TryInto::try_into) + .transpose()? + .unwrap_or_default(); + Ok(ArakooConfig { + local_server, + }) + } +} + +#[derive(Deserialize, Clone, Default)] +pub struct Config { + pub name: Option, + #[serde(default)] + pub features: Features, + pub folders: Option>, + #[serde(deserialize_with = "read_environment_variables", default)] + pub vars: HashMap, +} + +fn read_environment_variables<'de, D>( + deserializer: D, +) -> core::result::Result, D::Error> +where + D: Deserializer<'de>, +{ + let result: core::result::Result>, D::Error> = + Deserialize::deserialize(deserializer); + + match result { + Ok(value) => match value { + Some(mut options) => { + for (_, value) in options.iter_mut() { + if value.starts_with('$') && !value.contains(' ') { + value.remove(0); + + match env::var(&value) { + Ok(env_value) => *value = env_value, + Err(_) => *value = String::new(), + } + } + } + + Ok(options) + } + None => Ok(HashMap::new()), + }, + Err(err) => Err(err), + } +} + +#[derive(Clone, Debug, Default, Deserialize, )] +pub struct LocalServerConfig { + geolocation: Geolocation, +} + + +#[derive(Deserialize)] +struct RawLocalServerConfig { + geolocation: Option, +} + +impl TryInto for RawLocalServerConfig { + type Error = ArakooConfigError; + fn try_into(self) -> Result { + let Self { + geolocation, + } = self; + let geolocation = if let Some(geolocation) = geolocation { + geolocation.try_into()? + } else { + Geolocation::default() + }; + + Ok(LocalServerConfig { + geolocation, + }) + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/error.rs b/JS/wasm/crates/wasmjs-runtime/src/error.rs new file mode 100644 index 000000000..944a5eff2 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/error.rs @@ -0,0 +1,103 @@ +//! Error types. + +use thiserror::Error; +use wiggle::GuestError; + +#[derive(Debug, Error)] +#[non_exhaustive] +pub enum Error { + #[error("Buffer length error: {buf} too long to fit in {len}")] + BufferLengthError { + buf: &'static str, + len: &'static str, + }, + #[error("Invalid argument given")] + InvalidArgument, + #[error(transparent)] + GeolocationError(#[from] crate::wiggle_abi::geo_impl::GeolocationError), + #[error("Shared memory not supported yet")] + SharedMemory, + #[error("Guest error: [{0}]")] + GuestError(#[from] GuestError), +} + +/// Errors that may occur while validating geolocation configurations. +#[derive(Debug, Error)] +pub enum GeolocationConfigError { + #[error(transparent)] + IoError(std::io::Error), + + #[error("definition was not provided as a TOML table")] + InvalidEntryType, + + #[error("missing 'file' field")] + MissingFile, + + #[error("'file' field is empty")] + EmptyFileEntry, + + #[error("missing 'addresses' field")] + MissingAddresses, + + #[error("inline geolocation value was not a string")] + InvalidInlineEntryType, + + #[error("'file' field was not a string")] + InvalidFileEntry, + + #[error("'addresses' was not provided as a TOML table")] + InvalidAddressesType, + + // #[error("unrecognized key '{0}'")] + // UnrecognizedKey(String), + + // #[error("missing 'format' field")] + // MissingFormat, + + #[error("'format' field was not a string")] + InvalidFormatEntry, + + #[error("IP address not valid: '{0}'")] + InvalidAddressEntry(String), + + #[error("'{0}' is not a valid format for the geolocation mapping. Supported format(s) are: 'inline-toml', 'json'.")] + InvalidGeolocationMappingFormat(String), + + #[error( + "The file is of the wrong format. The file is expected to contain a single JSON Object" + )] + GeolocationFileWrongFormat, + + #[error("'format' field is empty")] + EmptyFormatEntry, + + // #[error("Item value under key named '{key}' is of the wrong format. The value is expected to be a JSON String")] + // GeolocationItemValueWrongFormat { key: String }, +} + +#[derive(Debug, Error)] +pub enum ArakooConfigError { + + #[error("invalid configuration for '{name}': {err}")] + InvalidGeolocationDefinition { + name: String, + #[source] + err: GeolocationConfigError, + }, + + #[error("error parsing `edge.toml`: {0}")] + InvalidArakooToml(#[from] toml::de::Error), + + #[error("invalid manifest version: {0}")] + InvalidManifestVersion(#[from] semver::SemVerError), + + /// An I/O error that occurred while reading the file. + #[error("error reading '{path}': {err}")] + IoError { + path: String, + #[source] + err: std::io::Error, + }, + // #[error("error reading: {err}")] + // TomlError { err: toml::de::Error }, +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/geolocation.rs b/JS/wasm/crates/wasmjs-runtime/src/geolocation.rs new file mode 100644 index 000000000..72ffdc2a7 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/geolocation.rs @@ -0,0 +1,308 @@ +use serde::{Deserialize, Serialize}; +use { + crate::error::GeolocationConfigError, + serde_json::{ + Map, Number, Value as SerdeValue, Value::Number as SerdeNumber, + Value::String as SerdeString, + }, + std::{collections::HashMap, fs, iter::FromIterator, net::IpAddr, path::Path, path::PathBuf}, +}; + +#[derive(Clone, Debug,Deserialize)] +pub struct Geolocation { + mapping: GeolocationMapping, + use_default_loopback: bool, +} + +#[derive(Clone, Debug, Deserialize)] +pub enum GeolocationMapping { + Empty, + InlineToml { + addresses: HashMap, + }, + Json { + file: PathBuf, + }, +} + +#[derive(Clone, Debug, Deserialize, Serialize)] +pub struct GeolocationData { + pub(crate) data: Map, +} + +impl Default for Geolocation { + fn default() -> Self { + Self { + mapping: GeolocationMapping::default(), + use_default_loopback: true, + } + } +} + +impl Geolocation { + + pub fn lookup(&self, addr: &IpAddr) -> Option { + self.mapping.get(addr).or_else(|| { + if self.use_default_loopback && addr.is_loopback() { + Some(GeolocationData::default()) + } else { + None + } + }) + } +} + +mod deserialization { + use std::{net::IpAddr, str::FromStr}; + + use serde_json::Number; + + use { + super::{Geolocation, GeolocationData, GeolocationMapping}, + crate::error::{ArakooConfigError, GeolocationConfigError}, + serde_json::Value as SerdeValue, + std::path::PathBuf, + std::{collections::HashMap, convert::TryFrom}, + toml::value::{Table, Value}, + }; + + impl TryFrom
    for Geolocation { + type Error = ArakooConfigError; + + fn try_from(toml: Table) -> Result { + fn process_config(mut toml: Table) -> Result { + let use_default_loopback = toml.remove("use_default_loopback").map_or( + Ok(true), + |use_default_loopback| match use_default_loopback { + Value::Boolean(use_default_loopback) => Ok(use_default_loopback), + _ => Err(GeolocationConfigError::InvalidEntryType), + }, + )?; + + let mapping = match toml.remove("format") { + Some(Value::String(value)) => match value.as_str() { + "inline-toml" => process_inline_toml_dictionary(&mut toml)?, + "json" => process_json_entries(&mut toml)?, + "" => return Err(GeolocationConfigError::EmptyFormatEntry), + format => { + return Err(GeolocationConfigError::InvalidGeolocationMappingFormat( + format.to_string(), + )) + } + }, + Some(_) => return Err(GeolocationConfigError::InvalidFormatEntry), + None => GeolocationMapping::Empty, + }; + + Ok(Geolocation { + mapping, + use_default_loopback, + }) + } + + process_config(toml).map_err(|err| ArakooConfigError::InvalidGeolocationDefinition { + name: "geolocation_mapping".to_string(), + err, + }) + } + } + + pub fn parse_ip_address(address: &str) -> Result { + IpAddr::from_str(address) + .map_err(|err| GeolocationConfigError::InvalidAddressEntry(err.to_string())) + } + + fn process_inline_toml_dictionary( + toml: &mut Table, + ) -> Result { + fn convert_value_to_json(value: Value) -> Option { + match value { + Value::String(value) => Some(SerdeValue::String(value)), + Value::Integer(value) => Number::try_from(value).ok().map(SerdeValue::Number), + Value::Float(value) => Number::from_f64(value).map(SerdeValue::Number), + Value::Boolean(value) => Some(SerdeValue::Bool(value)), + _ => None, + } + } + + // Take the `addresses` field from the provided TOML table. + let toml = match toml + .remove("addresses") + .ok_or(GeolocationConfigError::MissingAddresses)? + { + Value::Table(table) => table, + _ => return Err(GeolocationConfigError::InvalidAddressesType), + }; + + let mut addresses = HashMap::::with_capacity(toml.len()); + + for (address, value) in toml { + let address = parse_ip_address(address.as_str())?; + let table = value + .as_table() + .ok_or(GeolocationConfigError::InvalidInlineEntryType)? + .to_owned(); + + let mut geolocation_data = GeolocationData::new(); + + for (field, value) in table { + let value = convert_value_to_json(value) + .ok_or(GeolocationConfigError::InvalidInlineEntryType)?; + geolocation_data.insert(field, value); + } + + addresses.insert(address, geolocation_data); + } + + Ok(GeolocationMapping::InlineToml { addresses }) + } + + fn process_json_entries( + toml: &mut Table, + ) -> Result { + let file: PathBuf = match toml + .remove("file") + .ok_or(GeolocationConfigError::MissingFile)? + { + Value::String(file) => { + if file.is_empty() { + return Err(GeolocationConfigError::EmptyFileEntry); + } else { + file.into() + } + } + _ => return Err(GeolocationConfigError::InvalidFileEntry), + }; + + GeolocationMapping::read_json_contents(&file)?; + + Ok(GeolocationMapping::Json { file }) + } +} + +impl Default for GeolocationMapping { + fn default() -> Self { + Self::Empty + } +} + +impl GeolocationMapping { + pub fn get(&self, address: &IpAddr) -> Option { + match self { + Self::Empty => None, + Self::InlineToml { addresses } => addresses + .get(address) + .map(|geolocation_data| geolocation_data.to_owned()), + Self::Json { file } => Self::read_json_contents(file) + .ok() + .map(|addresses| { + addresses + .get(address) + .map(|geolocation_data| geolocation_data.to_owned()) + }) + .unwrap(), + } + } + + pub fn read_json_contents( + file: &Path, + ) -> Result, GeolocationConfigError> { + let data = fs::read_to_string(file).map_err(GeolocationConfigError::IoError)?; + + // Deserialize the contents of the given JSON file. + let json = match serde_json::from_str(&data) + .map_err(|_| GeolocationConfigError::GeolocationFileWrongFormat)? + { + // Check that we were given an object. + serde_json::Value::Object(obj) => obj, + _ => { + return Err(GeolocationConfigError::GeolocationFileWrongFormat); + } + }; + + let mut addresses = HashMap::::with_capacity(json.len()); + + for (address, value) in json { + let address = deserialization::parse_ip_address(address.as_str())?; + let table = value + .as_object() + .ok_or(GeolocationConfigError::InvalidInlineEntryType)? + .to_owned(); + + let geolocation_data = GeolocationData::from(&table); + + addresses.insert(address, geolocation_data); + } + + Ok(addresses) + } +} + +impl Default for GeolocationData { + fn default() -> Self { + let default_entries = HashMap::<&str, SerdeValue>::from([ + ("as_name", SerdeString(String::from("Arakoo Cloud, Inc"))), + ("as_number", SerdeNumber(Number::from(54113))), + ("area_code", SerdeNumber(Number::from(415))), + ("city", SerdeString(String::from("San Francisco"))), + ("conn_speed", SerdeString(String::from("broadband"))), + ("conn_type", SerdeString(String::from("wired"))), + ("continent", SerdeString(String::from("NA"))), + ("country_code", SerdeString(String::from("US"))), + ("country_code3", SerdeString(String::from("USA"))), + ( + "country_name", + SerdeString(String::from("United States of America")), + ), + ("latitude", SerdeNumber(Number::from_f64(37.77869).unwrap())), + ( + "longitude", + SerdeNumber(Number::from_f64(-122.39557).unwrap()), + ), + ("metro_code", SerdeNumber(Number::from(0))), + ("postal_code", SerdeString(String::from("94107"))), + ("proxy_description", SerdeString(String::from("?"))), + ("proxy_type", SerdeString(String::from("?"))), + ("region", SerdeString(String::from("CA"))), + ("utc_offset", SerdeNumber(Number::from(-700))), + ]); + + Self::from(default_entries) + } +} + +impl From> for GeolocationData { + fn from(value: HashMap<&str, SerdeValue>) -> Self { + let entries = value + .iter() + .map(|(&field, value)| (field.to_string(), value.to_owned())); + + Self { + data: Map::from_iter(entries), + } + } +} + +impl From<&Map> for GeolocationData { + fn from(data: &Map) -> Self { + Self { + data: data.to_owned(), + } + } +} + +impl GeolocationData { + pub fn new() -> Self { + Self { data: Map::new() } + } + + pub fn insert(&mut self, field: String, value: SerdeValue) { + self.data.insert(field, value); + } +} + +impl ToString for GeolocationData { + fn to_string(&self) -> String { + serde_json::to_string(&self.data).unwrap_or_else(|_| "".to_string()) + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/handlers.rs b/JS/wasm/crates/wasmjs-runtime/src/handlers.rs new file mode 100644 index 000000000..ec7a7416b --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/handlers.rs @@ -0,0 +1,159 @@ +use crate::{io::WasmOutput, routes::WORKERS, server::AppData}; +use actix_files::NamedFile; +use actix_web::{ + http::StatusCode, + web::{Bytes, Data}, + HttpRequest, HttpResponse, +}; +use std::{ + io::{Error, ErrorKind}, + path::{Component, Path, PathBuf}, +}; +use std::net::{IpAddr, Ipv4Addr}; +use std::str::FromStr; +use crate::geolocation::GeolocationData; + +fn clean_up_path(uri: &str) -> PathBuf { + let path = PathBuf::from_iter(uri.split('/')); + + let valid_components: Vec> = path + .components() + .filter(|c| matches!(c, Component::Normal(_))) + .collect(); + + PathBuf::from_iter(valid_components) +} + +fn retrieve_asset_path(root_path: &Path, file_path: &Path, index_folder: bool) -> Option { + let public_folder = root_path.join("public"); + let asset_path = if index_folder { + public_folder.join(file_path).join("index.html") + } else { + public_folder.join(file_path) + }; + + if asset_path.starts_with(public_folder) && asset_path.exists() && asset_path.is_file() { + Some(asset_path) + } else { + None + } +} + +pub async fn handle_assets(req: &HttpRequest) -> Result { + let root_path = &req + .app_data::>() + .expect("error fetching app data") + .root_path; + let uri_path = req.path(); + + let parsed_path = clean_up_path(uri_path); + + if let Some(file_path) = retrieve_asset_path(root_path, &parsed_path, false) { + NamedFile::open_async(file_path).await + } else if let Some(index_folder_path) = retrieve_asset_path(root_path, &parsed_path, true) { + NamedFile::open_async(index_folder_path).await + } else { + Err(Error::new(ErrorKind::NotFound, "The file is not present")) + } +} + +pub async fn handle_not_found(req: &HttpRequest) -> HttpResponse { + let root_path = &req + .app_data::>() + .expect("error fetching app data") + .root_path; + let public_404_path = root_path.join("public").join("404.html"); + + if let Ok(file) = NamedFile::open_async(public_404_path).await { + file.into_response(req) + } else { + HttpResponse::NotFound().body("") + } +} + +const CORS_HEADER: &str = "Access-Control-Allow-Origin"; + +pub async fn handle_worker(req: HttpRequest, body: Bytes) -> HttpResponse { + let app_data = req + .app_data::>() + .expect("error fetching app data"); + + let selected_route = app_data.routes.retrieve_best_route(req.path()); + let worker = if let Some(route) = selected_route { + if route.is_dynamic() { + if let Ok(existing_file) = handle_assets(&req).await { + return existing_file.into_response(&req); + } + } + + let workers = WORKERS + .read() + .expect("error locking worker lock for reading"); + + Some( + workers + .get(&route.worker) + .expect("unexpected missing worker") + .clone(), + ) + } else { + None + }; + + if worker.is_none() { + return handle_not_found(&req).await; + }; + let worker = worker.unwrap(); + + let body_str = String::from_utf8(body.to_vec()).unwrap_or_else(|_| String::from("")); + + let vars = &worker.config.vars; + let geolocation = worker.config.features.geo.geolocation(); + + let client = req.connection_info(); + let ip = client.realip_remote_addr(); + + let loop_back_ip = IpAddr::V4(Ipv4Addr::new(127,0,0,1)); + + let look_up_ip = match ip { + None => { loop_back_ip } + Some(result) => {match IpAddr::from_str(result) { + Ok(ip_addr) => {ip_addr} + Err(_) => {loop_back_ip} + }} + }; + + let geo_details = match geolocation.lookup(&look_up_ip) { + None => { GeolocationData::default() } + Some(details) => {details} + }; + + let handler_result = match worker.run(&req, &body_str, vars, geo_details).await { + Ok(output) => output, + Err(err) => WasmOutput::failed( + err, + worker.config.name.clone(), + selected_route.map(|route| route.path.clone()), + ), + }; + + let mut builder = + HttpResponse::build(StatusCode::from_u16(handler_result.status).unwrap_or(StatusCode::OK)); + builder.insert_header(("Content-Type", "text/html")); + + if let Some(origins) = app_data.cors_origins.as_ref() { + if !handler_result.headers.contains_key(CORS_HEADER) { + let header_value = origins.join(","); + builder.insert_header((CORS_HEADER, header_value)); + } + } + + for (key, val) in handler_result.headers.iter() { + builder.insert_header((key.replace('_', "-").as_str(), val.as_str())); + } + + match handler_result.body() { + Ok(res) => builder.body(res), + Err(_) => HttpResponse::ServiceUnavailable().body("There was an error running the worker"), + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/io.rs b/JS/wasm/crates/wasmjs-runtime/src/io.rs new file mode 100644 index 000000000..4058e9f90 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/io.rs @@ -0,0 +1,97 @@ +use actix_web::{ + http::{header::HeaderMap, StatusCode, Uri}, + HttpRequest, +}; +use serde::{Deserialize, Serialize}; +use std::{collections::HashMap, fmt::Debug}; +use serde_json::{Map, Value as SerdeValue}; +use crate::geolocation::GeolocationData; + +#[derive(Serialize, Deserialize, Debug)] +pub struct WasmInput<'a> { + url: String, + method: &'a str, + headers: HashMap, + body: &'a str, + params: HashMap, + geo: Map +} + +impl<'a> WasmInput<'a> { + pub fn new(request: &'a HttpRequest, body: &'a str, geo_details: GeolocationData) -> Self { + let mut params = HashMap::new(); + + for (k, v) in request.match_info().iter() { + params.insert(k.to_string(), v.to_string()); + } + + let url = Self::build_url(request); + + Self { + url, + method: request.method().as_str(), + headers: Self::build_headers_hash(request.headers()), + body, + params, + geo: geo_details.data.clone() + } + } + + fn build_url(request: &HttpRequest) -> String { + match Uri::builder() + .scheme(request.connection_info().scheme()) + .authority(request.connection_info().host()) + .path_and_query(request.uri().to_string()) + .build() + { + Ok(uri) => uri.to_string(), + Err(_) => request.uri().to_string(), + } + } + + fn build_headers_hash(headers: &HeaderMap) -> HashMap { + let mut parsed_headers = HashMap::new(); + + for (key, value) in headers.iter() { + parsed_headers.insert( + String::from(key.as_str()), + String::from(value.to_str().unwrap()), + ); + } + + parsed_headers + } +} + +#[derive(Deserialize, Debug)] +pub struct WasmOutput { + pub headers: HashMap, + pub status: u16, + data: String, +} + +impl WasmOutput { + pub fn new(body: &str, headers: HashMap, status: u16) -> Self { + Self { + data: String::from(body), + headers, + status, + } + } + + pub fn failed(err: anyhow::Error, worker_name: Option, route: Option) -> Self { + eprintln!( + "Error running {:?} at route {:?}: {:?}", + worker_name, route, err + ); + Self::new( + "err", + HashMap::from([("content-type".to_string(), "text/html".to_string())]), + StatusCode::INTERNAL_SERVER_ERROR.as_u16(), + ) + } + + pub fn body(&self) -> anyhow::Result> { + Ok(self.data.as_bytes().into()) + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/main.rs b/JS/wasm/crates/wasmjs-runtime/src/main.rs new file mode 100644 index 000000000..15f5a3303 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/main.rs @@ -0,0 +1,98 @@ +use std::path::PathBuf; + +use clap::{Args, Parser, Subcommand}; + +use routes::Routes; +use server::run; + +use crate::server::{serve, ServeOptions}; + +mod bindings; +mod config; +mod error; +mod geolocation; +mod handlers; +mod io; +mod routes; +mod runtime; +mod server; +mod store; +mod wiggle_abi; +mod workers; + +#[derive(Parser, Debug)] +#[command(author, version, about, long_about = None)] +#[command(propagate_version = true)] +#[command(args_conflicts_with_subcommands = true)] +pub struct Opts { + #[command(subcommand)] + pub command: Option, + #[command(flatten)] + pub args: ServeArgs, +} + +#[derive(Debug, Clone, Subcommand)] +pub enum Command { + Server(ServeArgs), + Run(ServeArgs), +} + +#[derive(Debug, Args, Clone)] +pub struct ServeArgs { + #[arg(value_parser, default_value = ".")] + path: PathBuf, + #[arg(short = 'C', long = "config")] + config_path: Option, + #[arg(long = "host", default_value = "0.0.0.0")] + hostname: String, + #[arg(short, long, default_value_t = 8080)] + port: u16, + #[arg(long)] + cors: Option>, +} + +#[actix_web::main] +async fn main() -> std::io::Result<()> { + // let args = Args::parse(); + let opt = Opts::parse(); + let cmd = opt.command.unwrap_or(Command::Server(opt.args)); + match cmd { + Command::Server(args) => { + let routes = Routes::new(&args.path, &args); + for route in routes.routes.iter() { + println!( + "- http://{}:{}{}\n => {}", + &args.hostname, + args.port, + route.path, + route.handler.to_string_lossy() + ); + } + + let server = serve(ServeOptions { + root_path: args.path.clone(), + config_path: args.config_path, + base_routes: routes, + hostname: args.hostname, + port: args.port, + cors_origins: args.cors, + }) + .await + .unwrap(); + + server.await + } + Command::Run(args) => { + let routes = Routes::new(&args.path, &args); + let serve_options = ServeOptions { + root_path: args.path.clone(), + config_path: args.config_path, + base_routes: routes, + hostname: args.hostname, + port: args.port, + cors_origins: args.cors, + }; + run(serve_options).await.map_err(|e| std::io::Error::new(std::io::ErrorKind::Other, e.to_string())) + } + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/routes.rs b/JS/wasm/crates/wasmjs-runtime/src/routes.rs new file mode 100644 index 000000000..c2718dd12 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/routes.rs @@ -0,0 +1,232 @@ +use lazy_static::lazy_static; +use regex::Regex; +use std::path::{Path, PathBuf}; +use std::str::FromStr; +use std::sync::RwLock; +use std::{collections::HashMap, ffi::OsStr, path::Component, sync::Arc}; +use wax::{Glob, WalkEntry}; +use crate::ServeArgs; + +use crate::store::STORE_FOLDER; +use crate::workers::Worker; + +pub struct Files<'t> { + root: PathBuf, + include_pattern: Glob<'t>, + ignore_patterns: Vec>, +} + +impl<'t> Files<'t> { + const DEFAULT_EXTENSIONS: [&'static str; 1] = ["js"]; + + pub fn new(root: &Path, file_extensions: Vec) -> Self { + Self { + root: root.to_path_buf(), + include_pattern: Self::build_include_pattern(file_extensions), + ignore_patterns: Self::build_ignore_patterns(vec![]), + } + } + + pub fn walk(&self) -> Vec { + self.include_pattern + .walk(&self.root) + .not(self.ignore_patterns.clone()) + .expect("Failed to walk the tree when processing files in the current directory") + .map(|e| e.unwrap()) + .collect() + } + + fn build_include_pattern(file_extensions: Vec) -> Glob<'t> { + let mut file_extensions = file_extensions; + for default_extension in Self::DEFAULT_EXTENSIONS { + file_extensions.push(default_extension.to_string()); + } + + let include_pattern = format!("**/*.{{{}}}", file_extensions.join(",")); + Glob::from_str(include_pattern.as_str()).unwrap() + } + + fn build_ignore_patterns(ignore_patterns: Vec) -> Vec> { + let default_ignore_patterns = vec![format!("**/{}/**", STORE_FOLDER)]; + + let mut result = default_ignore_patterns; + result.extend(ignore_patterns); + result + .iter() + .map(|s| Glob::from_str(s.as_str()).unwrap()) + .collect() + } +} + +#[derive(Clone, Default, Debug)] +pub struct Routes { + pub routes: Vec, +} + +impl Routes { + pub fn new(path: &Path, args: &ServeArgs) -> Self { + let mut routes = Vec::new(); + let runtime_extensions = vec![String::from("js")]; + + let files = Files::new(path, runtime_extensions); + + let mut route_paths: Vec = Vec::new(); + for entry in files.walk() { + route_paths.push(entry.into_path()); + } + + for route_path in route_paths { + routes.push(Route::new(path, route_path, args)); + } + + Self { routes } + } + + pub fn iter(&self) -> impl Iterator { + self.routes.iter() + } + + pub fn retrieve_best_route<'a>(&'a self, path: &str) -> Option<&'a Route> { + self.iter().find(|r| r.can_manage(path)) + } +} + +lazy_static! { + static ref PARAMETER_REGEX: Regex = + Regex::new(r"\[(?P\.{3})?(?P\w+)\]").unwrap(); + pub static ref WORKERS: RwLock = RwLock::new(WorkerSet::default()); +} + +#[derive(PartialEq, Eq, Debug, Clone)] +pub enum RouteType { + Tail { number_of_segments: usize }, +} + +impl From<&String> for RouteType { + fn from(route_path: &String) -> Self { + let number_of_segments = route_path.chars().filter(|&c| c == '/').count(); + RouteType::Tail { number_of_segments } + } +} + +#[derive(PartialEq, Eq, Debug, Clone)] +pub enum Segment { + Tail(String), +} + +impl From<&str> for Segment { + fn from(segment: &str) -> Self { + Segment::Tail(segment.to_owned()) + } +} + +#[derive(Clone, Debug)] +pub struct Route { + pub handler: PathBuf, + pub path: String, + pub route_type: RouteType, + pub segments: Vec, + pub worker: String, +} + +#[derive(Default)] +pub struct WorkerSet { + workers: HashMap>, +} + +impl WorkerSet { + pub fn get(&self, worker_id: &str) -> Option<&Arc> { + self.workers.get(worker_id) + } + + pub fn register(&mut self, worker_id: String, worker: Worker) { + self.workers.insert(worker_id, Arc::new(worker)); + } +} + +impl Route { + pub fn new(base_path: &Path, filepath: PathBuf, args: &ServeArgs) -> Self { + let worker = Worker::new(base_path, &filepath, args).unwrap(); + let worker_id = worker.id.clone(); + + WORKERS.write().unwrap().register(worker_id.clone(), worker); + let route_path = Self::retrieve_route(base_path, &filepath); + Self { + handler: filepath, + route_type: RouteType::from(&route_path), + segments: Self::get_segments(&route_path), + path: route_path, + worker: worker_id.clone(), + } + } + + fn retrieve_route(base_path: &Path, path: &Path) -> String { + let n_path = Self::normalize_path_to_url(path); + let n_base_path = Self::normalize_path_to_url(base_path); + + match n_path.strip_prefix(&n_base_path) { + Some(worker_path) => if worker_path.is_empty() { + "/" + } else { + worker_path + } + .into(), + None => String::from("/unknown"), + } + } + + fn normalize_path_to_url(path: &Path) -> String { + path.with_extension("") + .components() + .filter_map(|c| match c { + Component::Normal(os_str) if os_str != OsStr::new("index") => os_str + .to_str() + .map(|parsed_str| String::from("/") + parsed_str), + _ => None, + }) + .collect() + } + + fn get_segments(route_path: &str) -> Vec { + route_path.split('/').skip(1).map(Segment::from).collect() + } + + pub fn can_manage(&self, path: &str) -> bool { + let path_number_of_segments = path.chars().filter(|&c| c == '/').count(); + + match self.route_type { + RouteType::Tail { number_of_segments } + if number_of_segments > path_number_of_segments => + { + false + } + RouteType::Tail { .. } => true, + } + } + + pub fn actix_path(&self) -> String { + PARAMETER_REGEX + .replace_all(&self.path, |caps: ®ex::Captures| { + match (caps.name("ellipsis"), caps.name("segment")) { + (Some(_), Some(segment)) => format!("{{{}:.*}}", segment.as_str()), + (_, Some(segment)) => format!("{{{}}}", segment.as_str()), + _ => String::new(), + } + }) + .into() + } + + pub fn is_dynamic(&self) -> bool { + match self.route_type { + RouteType::Tail { .. } => true, + } + } +} + +impl Eq for Route {} + +impl PartialEq for Route { + fn eq(&self, other: &Self) -> bool { + self.path == other.path + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/runtime.rs b/JS/wasm/crates/wasmjs-runtime/src/runtime.rs new file mode 100644 index 000000000..ca48e2bc0 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/runtime.rs @@ -0,0 +1,70 @@ +use std::path::{Path, PathBuf}; + +use anyhow::Result; +use wasmtime_wasi::{ambient_authority, Dir, WasiCtxBuilder}; + +use crate::store::Store; + +static JS_ENGINE_WASM: &[u8] = include_bytes!("../../wasmjs-engine/wasmjs-engine.wasm"); + +pub struct JavaScriptRuntime { + path: PathBuf, + store: Store, +} + +impl JavaScriptRuntime { + pub fn new(project_root: &Path, path: PathBuf) -> Result { + let hash = Store::file_hash(&path)?; + let store = Store::create(project_root, &["js", &hash])?; + + Ok(Self { path, store }) + } +} + +impl Runtime for JavaScriptRuntime { + fn prepare(&self) -> Result<()> { + self.store.copy(&self.path, &["index.js"])?; + + Ok(()) + } + + fn prepare_wasi_ctx(&self, builder: &mut CtxBuilder) -> Result<()> { + match builder { + CtxBuilder::Preview1(ref mut builder) => { + builder.preopened_dir( + Dir::open_ambient_dir(&self.store.folder, ambient_authority())?, + "/src", + )?; + } + } + + Ok(()) + } + + fn module_bytes(&self) -> Result> { + Ok(JS_ENGINE_WASM.to_vec()) + } +} + +pub enum CtxBuilder { + Preview1(WasiCtxBuilder), +} + +pub trait Runtime { + fn prepare(&self) -> Result<()> { + Ok(()) + } + + fn prepare_wasi_ctx(&self, _builder: &mut CtxBuilder) -> Result<()> { + Ok(()) + } + + fn module_bytes(&self) -> Result>; +} + +pub fn init_runtime(project_root: &Path, path: &Path) -> Result> { + Ok(Box::new(JavaScriptRuntime::new( + project_root, + path.to_path_buf(), + )?)) +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/server.rs b/JS/wasm/crates/wasmjs-runtime/src/server.rs new file mode 100644 index 000000000..f24e78ea9 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/server.rs @@ -0,0 +1,81 @@ +use std::fmt::Debug; +use std::path::PathBuf; + +use actix_web::{ + App, + HttpServer, + middleware, web::{self, Data}, +}; +use actix_web::dev::Server; +use actix_web::HttpRequest; +use actix_web::web::Bytes; +use anyhow::{Ok, Result}; + +use crate::handlers::handle_worker; +use crate::routes::Routes; + +#[derive(Clone)] +pub struct ServeOptions { + pub root_path: PathBuf, + pub config_path: Option, + pub base_routes: Routes, + pub hostname: String, + pub port: u16, + pub cors_origins: Option>, +} + +#[derive(Default)] +pub struct AppData { + pub routes: Routes, + pub root_path: PathBuf, + pub cors_origins: Option>, +} + +impl From for AppData { + fn from(serve_options: ServeOptions) -> Self { + AppData { + routes: serve_options.base_routes, + root_path: serve_options.root_path.clone(), + cors_origins: serve_options.cors_origins, + } + } +} + +pub async fn serve(serve_options: ServeOptions) -> Result { + let (hostname, port) = (serve_options.hostname.clone(), serve_options.port); + let serve_options = serve_options.clone(); + + let server = HttpServer::new(move || { + let app_data: Data = + Data::new(>::try_into(serve_options.clone()).unwrap()); + + let mut app = App::new() + .wrap(middleware::Logger::default()) + .wrap(middleware::NormalizePath::trim()) + .app_data(Data::clone(&app_data)); + + for route in app_data.routes.iter() { + app = app.service(web::resource(route.actix_path()).to(handle_worker)); + } + + app + }) + .bind(format!("{}:{}", hostname, port))?; + + Ok(server.run()) +} + +pub async fn run(serve_options: ServeOptions) -> Result<()> { + + let app_data: Data = + Data::new(>::try_into(serve_options).unwrap()); + let request = actix_web::test::TestRequest::with_uri("/").app_data(app_data).to_http_request(); + let body: Bytes = Bytes::from(""); + let req = HttpRequest::from(request); + let res = handle_worker(req, body).await; + // print body of response + let res_body = res.body(); + + println!("{:?}", res_body); + Ok(()) +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/store.rs b/JS/wasm/crates/wasmjs-runtime/src/store.rs new file mode 100644 index 000000000..744576cf7 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/store.rs @@ -0,0 +1,45 @@ +use anyhow::Result; +use std::{ + fs, + path::{Path, PathBuf}, +}; + +pub const STORE_FOLDER: &str = ".wasmjs"; + +pub struct Store { + pub folder: PathBuf, +} + +impl Store { + pub fn create(project_root: &Path, folder: &[&str]) -> Result { + let folder = Self::build_root_path(project_root, folder); + + fs::create_dir_all(&folder)?; + + Ok(Self { folder }) + } + + pub fn copy(&self, source: &Path, dest: &[&str]) -> Result<()> { + let file_path = self.build_folder_path(dest); + fs::copy(source, file_path)?; + Ok(()) + } + + pub fn build_folder_path(&self, source: &[&str]) -> PathBuf { + source + .iter() + .fold(self.folder.clone(), |acc, comp| acc.join(comp)) + } + + pub fn file_hash(path: &Path) -> Result { + let content = fs::read(path)?; + + Ok(blake3::hash(&content).to_string()) + } + + fn build_root_path(root: &Path, source: &[&str]) -> PathBuf { + source + .iter() + .fold(root.join(STORE_FOLDER), |acc, comp| acc.join(comp)) + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi.rs b/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi.rs new file mode 100644 index 000000000..f0fbdddfb --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi.rs @@ -0,0 +1,70 @@ +pub mod geo_impl; +use std::net::{IpAddr, Ipv4Addr, Ipv6Addr}; +use std::sync::Arc; +use wiggle::GuestPtr; + +use crate::bindings::arakoo_geo::ArakooGeo; +use crate::geolocation::Geolocation; +use crate::wiggle_abi::geo_impl::GeolocationError; +use crate::error::Error; + +pub struct Session { + geolocation: Arc, +} + +impl Session { + + pub fn geolocation_lookup(&self, addr: &IpAddr) -> Option { + self.geolocation.lookup(addr).map(|data| data.to_string()) + } +} + +impl ArakooGeo for Session { + fn lookup( + &mut self, + addr_octets: &GuestPtr, + addr_len: u32, + buf: &GuestPtr, + buf_len: u32, + nwritten_out: &GuestPtr, + ) -> Result<(), Error> { + let octets = addr_octets + .as_array(addr_len) + .iter() + .map(|v| v.unwrap().read().unwrap()) + .collect::>(); + + let ip_addr: IpAddr = match addr_len { + 4 => IpAddr::V4(Ipv4Addr::from( + TryInto::<[u8; 4]>::try_into(octets).unwrap(), + )), + 16 => IpAddr::V6(Ipv6Addr::from( + TryInto::<[u8; 16]>::try_into(octets).unwrap(), + )), + _ => return Err(Error::InvalidArgument), + }; + + let result = self + .geolocation_lookup(&ip_addr) + .ok_or_else(|| GeolocationError::NoGeolocationData(ip_addr.to_string()))?; + + if result.len() > buf_len as usize { + return Err(Error::BufferLengthError { + buf: "geolocation_lookup", + len: "geolocation_lookup_max_len", + }); + } + + let result_len = + u32::try_from(result.len()).expect("smaller than value_max_len means it must fit"); + + let mut buf_ptr = buf + .as_array(result_len) + .as_slice_mut()? + .ok_or(Error::SharedMemory)?; + buf_ptr.copy_from_slice(result.as_bytes()); + nwritten_out.write(result_len)?; + Ok(()) + } +} + diff --git a/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi/geo_impl.rs b/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi/geo_impl.rs new file mode 100644 index 000000000..58fefa2ae --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/wiggle_abi/geo_impl.rs @@ -0,0 +1,22 @@ +//! edge_geo` hostcall implementations. + + + +use crate::bindings::types::ArakooStatus; + +#[derive(Debug, thiserror::Error)] +pub enum GeolocationError { + /// Geolocation data for given address not found. + #[error("No geolocation data: {0}")] + NoGeolocationData(String), +} + +impl GeolocationError { + /// Convert to an error code representation suitable for passing across the ABI boundary. + pub fn to_aradoo_status(&self) -> ArakooStatus { + use GeolocationError::*; + match self { + NoGeolocationData(_) => ArakooStatus::None, + } + } +} diff --git a/JS/wasm/crates/wasmjs-runtime/src/workers.rs b/JS/wasm/crates/wasmjs-runtime/src/workers.rs new file mode 100644 index 000000000..fd8fd7b19 --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/src/workers.rs @@ -0,0 +1,185 @@ +use crate::bindings::HttpBindings; +use crate::config::{ArakooConfig, Config}; +use crate::io::{WasmInput, WasmOutput}; +use crate::runtime::{init_runtime, CtxBuilder, Runtime}; +use crate::bindings::http; +use actix_web::HttpRequest; +use sha256::digest as sha256_digest; +use std::path::PathBuf; +use std::{collections::HashMap, path::Path}; +use wasmtime::Linker; +use wasmtime::{Config as WasmtimeConfig, Engine, Module, Store}; +use wasmtime_wasi::{ambient_authority, Dir, WasiCtxBuilder}; + +use anyhow::Result; +use std::io::Cursor; +use wasi_common::pipe::{ReadPipe, WritePipe}; +use crate::ServeArgs; +use crate::geolocation::GeolocationData; + +pub struct Stdio { + pub stdin: Vec, + pub stdout: WritePipe>>, +} + +impl Stdio { + pub fn new(input: &str) -> Self { + Self { + stdin: Vec::from(input), + stdout: WritePipe::new_in_memory(), + } + } + + pub fn configure_wasi_ctx(&self, mut builder: CtxBuilder) -> CtxBuilder { + match builder { + CtxBuilder::Preview1(ref mut wasi_builder) => { + wasi_builder + .stdin(Box::new(ReadPipe::from(self.stdin.clone()).clone())) + .stdout(Box::new(self.stdout.clone())) + .inherit_stderr(); + } + } + builder + } +} + +pub struct Worker { + pub id: String, + engine: Engine, + runtime: Box, + module: Module, + pub config: Config, + path: PathBuf, +} + +#[derive(Default)] +struct Host { + pub wasi_preview1_ctx: Option, + pub http: Option, +} + +impl Worker { + pub fn new(project_root: &Path, path: &Path, args: &ServeArgs) -> Result { + let id = sha256_digest(project_root.join(path).to_string_lossy().as_bytes()); + + let mut config=Config::default(); + match &args.config_path { + Some(path) => config.features.geo = ArakooConfig::from_file(&path)?, + _ => {}, + } + config.vars = std::env::vars().collect(); + + let engine = Engine::new(WasmtimeConfig::default().async_support(true))?; + let runtime = init_runtime(project_root, path)?; + let bytes = runtime.module_bytes()?; + + let module = if wasmparser::Parser::is_core_wasm(&bytes) { + Ok(Module::from_binary(&engine, &bytes)?) + } else { + Err("Invalid module".to_string()) + } + .map_err(|e| anyhow::anyhow!(e))?; + + runtime.prepare()?; + + Ok(Self { + id, + engine, + runtime, + module, + config, + path: path.to_path_buf(), + }) + } + + pub fn prepare_wasi_context( + &self, + environment_variables: &[(String, String)], + wasi_builder: &mut CtxBuilder, + ) -> Result<()> { + match wasi_builder { + CtxBuilder::Preview1(wasi_builder) => { + wasi_builder.envs(environment_variables)?; + + if let Some(folders) = self.config.folders.as_ref() { + for folder in folders { + if let Some(base) = &self.path.parent() { + let dir = Dir::open_ambient_dir( + base.join(&folder.from), + ambient_authority(), + )?; + wasi_builder.preopened_dir(dir, &folder.to)?; + } else { + panic!("Failed to initialize") + } + } + } + } + } + + Ok(()) + } + + pub async fn run( + &self, + request: &HttpRequest, + body: &str, + vars: &HashMap, + geo_details: GeolocationData, + ) -> Result { + let input = serde_json::to_string(&WasmInput::new(request, body, geo_details)).unwrap(); + + let mut linker = Linker::new(&self.engine); + + wasmtime_wasi::add_to_linker(&mut linker, |host: &mut Host| { + host.wasi_preview1_ctx.as_mut().unwrap() + })?; + + http::add_to_linker(&mut linker, |host: &mut Host| host.http.as_mut().unwrap())?; + + let environment_variables: Vec<(String, String)> = + vars.iter().map(|(k, v)| (k.clone(), v.clone())).collect(); + + let mut wasi_builder = CtxBuilder::Preview1(WasiCtxBuilder::new()); + + self.prepare_wasi_context(&environment_variables, &mut wasi_builder)?; + + let stdio = Stdio::new(&input); + let mut wasi_builder = stdio.configure_wasi_ctx(wasi_builder); + + self.runtime.prepare_wasi_ctx(&mut wasi_builder)?; + + let host = match wasi_builder { + CtxBuilder::Preview1(mut wasi_builder) => Host { + wasi_preview1_ctx: Some(wasi_builder.build()), + http: Some(HttpBindings { + http_config: self.config.features.http_requests.clone(), + }), + ..Host::default() + }, + }; + + let contents = { + let mut store = Store::new(&self.engine, host); + linker.module_async(&mut store, "", &self.module).await?; + + linker + .get_default(&mut store, "")? + .typed::<(), ()>(&store)? + .call_async(&mut store, ()) + .await?; + + drop(store); + + stdio + .stdout + .try_into_inner() + .unwrap_or_default() + .into_inner() + }; + + let output: WasmOutput = serde_json::from_slice(&contents)?; + + Ok(output) + } +} diff --git a/JS/wasm/examples/.DS_Store b/JS/wasm/examples/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9e45dcf7c9a2522634bb2115dbca5f78c8a62612 GIT binary patch literal 6148 zcmeHKyG{c^3>-s>NJuCp<^BK#f3S+e7w`i>f`m}uiYTJJitpmn7(bfRK^4(NW67Rf zuV+s;#rX`t*2mo)umZ58JL1d3-2B{qW*3z)BAs_U;edC%G2YIqe@{5~8ZX$A@j2nY zV!#K6-C?_b9)`Ua%A|l4kOERb3P^#I6{wcFygK { + console.error(error) + process.exit(1) +}) \ No newline at end of file diff --git a/JS/wasm/examples/ec-wasmjs-hono/knative.yaml b/JS/wasm/examples/ec-wasmjs-hono/knative.yaml new file mode 100644 index 000000000..f41c6f2c1 --- /dev/null +++ b/JS/wasm/examples/ec-wasmjs-hono/knative.yaml @@ -0,0 +1,14 @@ +apiVersion: serving.knative.dev/v1 +kind: Service +metadata: + name: wasmjs-hono + namespace: knative-serving +spec: + template: + metadata: + annotations: + autoscaling.knative.dev/target: "10" + spec: + containers: + - image: tanjim/wasmjs-hono + imagePullPolicy: Always diff --git a/JS/wasm/examples/ec-wasmjs-hono/package-lock.json b/JS/wasm/examples/ec-wasmjs-hono/package-lock.json new file mode 100644 index 000000000..cf6c18ec9 --- /dev/null +++ b/JS/wasm/examples/ec-wasmjs-hono/package-lock.json @@ -0,0 +1,554 @@ +{ + "name": "hono", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "hono", + "dependencies": { + "@hono/node-server": "^1.3.1", + "axios": "^1.6.2", + "crypto": "^1.0.1", + "http": "^0.0.1-security", + "stream": "^0.0.2" + }, + "devDependencies": { + "@planetscale/database": "^1.4.0", + "esbuild": "^0.19", + "hono": "^3.9" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.19.5.tgz", + "integrity": "sha512-bhvbzWFF3CwMs5tbjf3ObfGqbl/17ict2/uwOSfr3wmxDE6VdS2GqY/FuzIPe0q0bdhj65zQsvqfArI9MY6+AA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz", + "integrity": "sha512-5d1OkoJxnYQfmC+Zd8NBFjkhyCNYwM4n9ODrycTFY6Jk1IGiZ+tjVJDDSwDt77nK+tfpGP4T50iMtVi4dEGzhQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.19.5.tgz", + "integrity": "sha512-9t+28jHGL7uBdkBjL90QFxe7DVA+KGqWlHCF8ChTKyaKO//VLuoBricQCgwhOjA1/qOczsw843Fy4cbs4H3DVA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz", + "integrity": "sha512-mvXGcKqqIqyKoxq26qEDPHJuBYUA5KizJncKOAf9eJQez+L9O+KfvNFu6nl7SCZ/gFb2QPaRqqmG0doSWlgkqw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz", + "integrity": "sha512-Ly8cn6fGLNet19s0X4unjcniX24I0RqjPv+kurpXabZYSXGM4Pwpmf85WHJN3lAgB8GSth7s5A0r856S+4DyiA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz", + "integrity": "sha512-GGDNnPWTmWE+DMchq1W8Sd0mUkL+APvJg3b11klSGUDvRXh70JqLAO56tubmq1s2cgpVCSKYywEiKBfju8JztQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz", + "integrity": "sha512-1CCwDHnSSoA0HNwdfoNY0jLfJpd7ygaLAp5EHFos3VWJCRX9DMwWODf96s9TSse39Br7oOTLryRVmBoFwXbuuQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz", + "integrity": "sha512-lrWXLY/vJBzCPC51QN0HM71uWgIEpGSjSZZADQhq7DKhPcI6NH1IdzjfHkDQws2oNpJKpR13kv7/pFHBbDQDwQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz", + "integrity": "sha512-o3vYippBmSrjjQUCEEiTZ2l+4yC0pVJD/Dl57WfPwwlvFkrxoSO7rmBZFii6kQB3Wrn/6GwJUPLU5t52eq2meA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz", + "integrity": "sha512-MkjHXS03AXAkNp1KKkhSKPOCYztRtK+KXDNkBa6P78F8Bw0ynknCSClO/ztGszILZtyO/lVKpa7MolbBZ6oJtQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz", + "integrity": "sha512-42GwZMm5oYOD/JHqHska3Jg0r+XFb/fdZRX+WjADm3nLWLcIsN27YKtqxzQmGNJgu0AyXg4HtcSK9HuOk3v1Dw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz", + "integrity": "sha512-kcjndCSMitUuPJobWCnwQ9lLjiLZUR3QLQmlgaBfMX23UEa7ZOrtufnRds+6WZtIS9HdTXqND4yH8NLoVVIkcg==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz", + "integrity": "sha512-yJAxJfHVm0ZbsiljbtFFP1BQKLc8kUF6+17tjQ78QjqjAQDnhULWiTA6u0FCDmYT1oOKS9PzZ2z0aBI+Mcyj7Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz", + "integrity": "sha512-5u8cIR/t3gaD6ad3wNt1MNRstAZO+aNyBxu2We8X31bA8XUNyamTVQwLDA1SLoPCUehNCymhBhK3Qim1433Zag==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz", + "integrity": "sha512-Z6JrMyEw/EmZBD/OFEFpb+gao9xJ59ATsoTNlj39jVBbXqoZm4Xntu6wVmGPB/OATi1uk/DB+yeDPv2E8PqZGw==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz", + "integrity": "sha512-psagl+2RlK1z8zWZOmVdImisMtrUxvwereIdyJTmtmHahJTKb64pAcqoPlx6CewPdvGvUKe2Jw+0Z/0qhSbG1A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz", + "integrity": "sha512-kL2l+xScnAy/E/3119OggX8SrWyBEcqAh8aOY1gr4gPvw76la2GlD4Ymf832UCVbmuWeTf2adkZDK+h0Z/fB4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz", + "integrity": "sha512-sPOfhtzFufQfTBgRnE1DIJjzsXukKSvZxloZbkJDG383q0awVAq600pc1nfqBcl0ice/WN9p4qLc39WhBShRTA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz", + "integrity": "sha512-dGZkBXaafuKLpDSjKcB0ax0FL36YXCvJNnztjKV+6CO82tTYVDSH2lifitJ29jxRMoUhgkg9a+VA/B03WK5lcg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz", + "integrity": "sha512-dWVjD9y03ilhdRQ6Xig1NWNgfLtf2o/STKTS+eZuF90fI2BhbwD6WlaiCGKptlqXlURVB5AUOxUj09LuwKGDTg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz", + "integrity": "sha512-4liggWIA4oDgUxqpZwrDhmEfAH4d0iljanDOK7AnVU89T6CzHon/ony8C5LeOdfgx60x5cnQJFZwEydVlYx4iw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz", + "integrity": "sha512-czTrygUsB/jlM8qEW5MD8bgYU2Xg14lo6kBDXW6HdxKjh8M5PzETGiSHaz9MtbXBYDloHNUAUW2tMiKW4KM9Mw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@hono/node-server": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@hono/node-server/-/node-server-1.3.1.tgz", + "integrity": "sha512-eQBCDbH1Vv/TiYXNP8aGfJTuXi9xGhEd/EZg9u6dhr7zC5/WKKztcBmbrOTtixVBvvV6bfcay6KEginwiqHyXg==", + "engines": { + "node": ">=18.14.1" + } + }, + "node_modules/@planetscale/database": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/@planetscale/database/-/database-1.11.0.tgz", + "integrity": "sha512-aWbU+D/IRHoDE9975y+Q4c+EwwAWxCPwFId+N1AhQVFXzbeJMkj6KN2iQtoi03elcLMRdfT+V3i9Z4WRw+/oIA==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", + "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/crypto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/crypto/-/crypto-1.0.1.tgz", + "integrity": "sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==", + "deprecated": "This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in." + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/emitter-component": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/emitter-component/-/emitter-component-1.1.2.tgz", + "integrity": "sha512-QdXO3nXOzZB4pAjM0n6ZE+R9/+kPpECA/XSELIcc54NeYVnBqIk+4DFiBgK+8QbV3mdvTG6nedl7dTYgO+5wDw==", + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/esbuild": { + "version": "0.19.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.19.5.tgz", + "integrity": "sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.19.5", + "@esbuild/android-arm64": "0.19.5", + "@esbuild/android-x64": "0.19.5", + "@esbuild/darwin-arm64": "0.19.5", + "@esbuild/darwin-x64": "0.19.5", + "@esbuild/freebsd-arm64": "0.19.5", + "@esbuild/freebsd-x64": "0.19.5", + "@esbuild/linux-arm": "0.19.5", + "@esbuild/linux-arm64": "0.19.5", + "@esbuild/linux-ia32": "0.19.5", + "@esbuild/linux-loong64": "0.19.5", + "@esbuild/linux-mips64el": "0.19.5", + "@esbuild/linux-ppc64": "0.19.5", + "@esbuild/linux-riscv64": "0.19.5", + "@esbuild/linux-s390x": "0.19.5", + "@esbuild/linux-x64": "0.19.5", + "@esbuild/netbsd-x64": "0.19.5", + "@esbuild/openbsd-x64": "0.19.5", + "@esbuild/sunos-x64": "0.19.5", + "@esbuild/win32-arm64": "0.19.5", + "@esbuild/win32-ia32": "0.19.5", + "@esbuild/win32-x64": "0.19.5" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hono": { + "version": "3.9.0", + "resolved": "https://registry.npmjs.org/hono/-/hono-3.9.0.tgz", + "integrity": "sha512-MSGmerYD69jwDkBa631lY7y3xtEwbKFg2huFZ0TruzCdfJlmPd/rFzyvmMheePKsiA7CZp/KqL3mflBOzEmjLA==", + "dev": true, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/http": { + "version": "0.0.1-security", + "resolved": "https://registry.npmjs.org/http/-/http-0.0.1-security.tgz", + "integrity": "sha512-RnDvP10Ty9FxqOtPZuxtebw1j4L/WiqNMDtuc1YMH1XQm5TgDRaR1G9u8upL6KD1bXHSp9eSXo/ED+8Q7FAr+g==" + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/stream": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.2.tgz", + "integrity": "sha512-gCq3NDI2P35B2n6t76YJuOp7d6cN/C7Rt0577l91wllh0sY9ZBuw9KaSGqH/b0hzn3CWWJbpbW0W0WvQ1H/Q7g==", + "dependencies": { + "emitter-component": "^1.1.1" + } + } + } +} diff --git a/JS/wasm/examples/ec-wasmjs-hono/package.json b/JS/wasm/examples/ec-wasmjs-hono/package.json new file mode 100644 index 000000000..49e60ff54 --- /dev/null +++ b/JS/wasm/examples/ec-wasmjs-hono/package.json @@ -0,0 +1,20 @@ +{ + "name": "hono", + "type": "module", + "main": "bin/[...app].js", + "scripts": { + "build": "node ./build.js" + }, + "devDependencies": { + "@planetscale/database": "^1.4.0", + "esbuild": "^0.19", + "hono": "^3.9" + }, + "dependencies": { + "@hono/node-server": "^1.3.1", + "axios": "^1.6.2", + "crypto": "^1.0.1", + "http": "^0.0.1-security", + "stream": "^0.0.2" + } +} diff --git a/JS/wasm/examples/ec-wasmjs-hono/src/index.js b/JS/wasm/examples/ec-wasmjs-hono/src/index.js new file mode 100644 index 000000000..9b747676c --- /dev/null +++ b/JS/wasm/examples/ec-wasmjs-hono/src/index.js @@ -0,0 +1,42 @@ +import { Hono } from 'hono' +import { connect } from '@planetscale/database' + +const app = new Hono(); + +app.get('/', (c) => { + const geo = c.req.raw.geo + return c.text( + `Your from ${geo.city}, ${geo.country_name}!` + ) +}) + +app.get('/hello/:name', async (c) => { + const name = c.req.param('name'); + return c.text(`Async Hello ${name}!`) +}); + +app.get('/env/:key', async (c) => { + const key = c.req.param('key'); + return c.text(env[key]) +}) + +const config = { + host: env['PLANETSCALE_HOST'], + username: env['PLANETSCALE_USERNAME'], + password: env['PLANETSCALE_PASSWORD'], +} +const conn = connect(config) + +app.get('/db', async (c) => { + const result = await conn.execute('SHOW TABLES') + + return c.json(result) +}); + +app.notFound((c) => { + return c.text('404 not found', 404) +}) + +export default app; + + From e76f77d3c37e8382fce67be6e8bfda869323dc6f Mon Sep 17 00:00:00 2001 From: Ezhil Shanmugham Date: Fri, 15 Dec 2023 19:27:03 +0530 Subject: [PATCH 2/3] feat: added webassembly --- .github/workflows/pr-build.yml | 2 +- .prettierignore | 2 ++ JS/wasm/examples/ec-wasmjs-hono/knative.yaml | 14 -------------- 3 files changed, 3 insertions(+), 15 deletions(-) create mode 100644 .prettierignore delete mode 100644 JS/wasm/examples/ec-wasmjs-hono/knative.yaml diff --git a/.github/workflows/pr-build.yml b/.github/workflows/pr-build.yml index 3eb582d1b..80e26dffc 100644 --- a/.github/workflows/pr-build.yml +++ b/.github/workflows/pr-build.yml @@ -115,7 +115,7 @@ jobs: continue-on-error: true - name: Run Prettiers - run: npx prettier --tab-width 4 --print-width 100 --trailing-comma es5 --ignore-path "$(CURDIR)/node_modules/*" --write JS/ + run: npx prettier --tab-width 4 --print-width 100 --trailing-comma es5 --ignore-path "$(CURDIR)/.prettierignore" --write JS/ - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v4 with: diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 000000000..1f2c2b602 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,2 @@ +**/node_modules +JS/wasm/* \ No newline at end of file diff --git a/JS/wasm/examples/ec-wasmjs-hono/knative.yaml b/JS/wasm/examples/ec-wasmjs-hono/knative.yaml deleted file mode 100644 index f41c6f2c1..000000000 --- a/JS/wasm/examples/ec-wasmjs-hono/knative.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: serving.knative.dev/v1 -kind: Service -metadata: - name: wasmjs-hono - namespace: knative-serving -spec: - template: - metadata: - annotations: - autoscaling.knative.dev/target: "10" - spec: - containers: - - image: tanjim/wasmjs-hono - imagePullPolicy: Always From 07e883ef6134b6c858958d6fe4f77894da6d2678 Mon Sep 17 00:00:00 2001 From: Ezhil Shanmugham Date: Fri, 15 Dec 2023 20:14:58 +0530 Subject: [PATCH 3/3] feat: added webassembly --- JS/wasm/.DS_Store | Bin 6148 -> 0 bytes JS/wasm/crates/.DS_Store | Bin 6148 -> 0 bytes JS/wasm/crates/wasmjs-engine/.DS_Store | Bin 6148 -> 0 bytes JS/wasm/crates/wasmjs-engine/shims/.DS_Store | Bin 6148 -> 0 bytes JS/wasm/crates/wasmjs-runtime/.DS_Store | Bin 6148 -> 0 bytes JS/wasm/examples/.DS_Store | Bin 6148 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 JS/wasm/.DS_Store delete mode 100644 JS/wasm/crates/.DS_Store delete mode 100644 JS/wasm/crates/wasmjs-engine/.DS_Store delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/.DS_Store delete mode 100644 JS/wasm/crates/wasmjs-runtime/.DS_Store delete mode 100644 JS/wasm/examples/.DS_Store diff --git a/JS/wasm/.DS_Store b/JS/wasm/.DS_Store deleted file mode 100644 index 91ddf954c7a28ef954417fe3cce41b028c58a56c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHK(Q4Z;6uoM*#9kTXp@lvQ_8Mr~W;CHMCd+UL>`>6@e<7+jOW=mY{y2LK%t*e zQV}nTX`HEeW3>x71)Ku^n*zLdn-o!j--PP>_dcFxX;F5&KgG^&<3+R8@>_eY%kZ08 zgk@CDi(xeT%%cxVW${Blia(~4#kjryR^?@s=98Hwq{#$JEUU23YPQn%+!oFG93PtF*#xulD%6ulHsQ_$G!Saj^600i80i+&R>NTiosYEL-RwzG!D>wj3?b-r^>#br3AEHP;!w>N# zd=GDSm#A$Zx1zS1k!IiQ?#!O&bj0h+%E&$F&b$B%3Rm0jZt zRrHK9D(TaTw+!4x1~_-y)KHAfUC`D1<;Y@|R_8@xOo8;SbNd!e%fghLboP9FW5FrS zuvkqww#bsEx=ad_!0%^rS>#nc8vRn8jqc{7UN7iv^*%Zb_ zxlo`BRldYfE*#_9`-L7`hc29yFFustS@{Y@+1;_ew(g`thtdiI!oYO~He7eW@Biz6 z*Z@%&L0Q9G6wSsZY1~By4 SI>ZP>egrHH(g*|pm4V+ZYHL3L diff --git a/JS/wasm/crates/wasmjs-engine/.DS_Store b/JS/wasm/crates/wasmjs-engine/.DS_Store deleted file mode 100644 index 2f03b3d979dcf70c9fff72e97564bf667521662c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~J&pn~427Q;R$6HrO3E~QfW1M4*b{I81QZ~FC`R--I?s+9hON;EJxk7uop^q} zVloC`tJ~ohSOEBn6Kku&Bv#0Tqdp)4@8jtI_ED-?_5CIVo z0TGxGfjGo@{(n#Cne-?kAOh1M;NOQrcdeNjGabfx^b*wK32IGkU74X- zb`O@N7Hx>qlW;H~E2#COlz^um$KmY&e|MmZ) z5``il0&hmZ=IhOR#h1#n_38CIzs;=A8=V^4IXwIXFz};zNe|r2wyw<3^dk@$ KG>E`U3ETm`+Y_At diff --git a/JS/wasm/crates/wasmjs-engine/shims/.DS_Store b/JS/wasm/crates/wasmjs-engine/shims/.DS_Store deleted file mode 100644 index 3bc38448aab6980b8732c9e976f6fe3a8b601ed6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeH~JqiLr422WjLa^D=avBfd4F=H@cmdIE1i?b>=jgutAh=qK$O|OjBr{>zSL|#= zMA!FWCDMz?3~rRAg^?-pP6j#2Rc^!ecs^V%=R7k>+8KB+qy5|_r~nn90#twsP=Oy( z!0v6>Y#wB!0#twsJQc9-LxCG>vIYIqf#4$m*rDu(wa*e@u>x3=Er<$CqZN!+^)bZi z-VT;LSCcIm?V>q+Xg*nOih*ggixwm>tquk%Km|q$Oe62@{@=ns&Htkorc{6m{FwsU zZFZYAUMla_x7V}!KC8BFaL|tlA49C} z?O@64YO)2RT{MRe%{!}2F))pG(Sih~)xkgosK7*lF7m<7{{#Hn{6A@7N(HFEpDCdI z{-s>NJuCp<^BK#f3S+e7w`i>f`m}uiYTJJitpmn7(bfRK^4(NW67Rf zuV+s;#rX`t*2mo)umZ58JL1d3-2B{qW*3z)BAs_U;edC%G2YIqe@{5~8ZX$A@j2nY zV!#K6-C?_b9)`Ua%A|l4kOERb3P^#I6{wcFygK

    %U!@ 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 z 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 z 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 =+KWUdwWH$lAT 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 z zZSsoAtoIg_uKaM3h5VTZppcJ=ibIjv7-FKrQ4|c9bWi>>ncT;0Gs;7Ip4bCN3 zw<(=mY%-7Xx!6F}i?g~hwC6RB1aX$HQU!%|3aPjkC98f$2B@*8mkNe4u8>GC6$~RY zB;vXpb;jIi(;)@C$hak%BEK77)=I?6IcEB5EGiY1A~QS_ z!~9_0gsY<@u4iBNEY@L`IOPZ1d!}VxEBV22#*rsK80g58%L`P=B&XOGH}$KKsBw4=MIxuy?DMG zJh(e_TVZo~$qb1UXYU~pfT}k+xx8eaOy}#`dssKHCMUO+%o=NQa%6e^rN)|^99c3e z8DHnDB4U+H59X|r`ARnEcs^$pxA%=GFBRx0pR)>d^>RAxb;F_C#TvBvvCM@J5`W~DG4Dytq6pd3Up z>mdQkLFB;UWGqJy<#zRQ^nh-Ta`b?%qdYvI!z>REZCJewkbF8aZ|wPWoMlv`MWZV! zGAoi;6!SxwRx%@_m>-$--W=tk+2^%3_F{e{q1(dHgXJ=-*TmiTK3Cx;E*H(-6TeoH zoC1Ml9+7C`h{UK~j!TV8VC z$UM?{EcklJp6E7;1+R`WJPRk1dE+ap$ko~~iwnAqvPZbCvE(*?kIXuX8M>6>(CenS z;3Ciwq^Kg-bweprv$w2eRwORC&vm0qc0u7p`|8>Co?XzL7MY^T>%^2qwjOjby%(ksx8tYvgP%62uyLjbzqJ3O9EV z!{Z22+!E*zEPM%c74jj04#9j#pzAhQlE-Y1Jh_rUH@-Ydpu@A6CdZAHObHazB(sh( zK)O*Q^VO@PG(#6_7)Uq1Vw(2A`AAnxljJz^Uug{wNZxO8NG>R+oK;W3=ZTUT66ug` z;>Zk%7TVlXB9I$Hs-z$&nIRD`<+_p?&Elo*7*GV48isp~n; zX6rqTl0R#2OkSI@RBkPq^`2tMt@S>CEUA?Yth`$?YbACouu5jF#BM#v#x!jV@!37L zX#!fs(UxTYx~- zJM#=w^;1irs-If&idWT-6G8QUCIhHejv+y{a-7HjufO9x&_*e#$Z^!3ySmI{B~abo zTElSfx6?A926mhQYGB71Z2Ks2ECH&On|20&zukO;LgFSGRLPrDC-arO>2p9|?>9G~ zus&4)s$O%`og!O`8?8%I8&O^@$<@oN1-g2#t zBVF-Tpa$KHy|3rxxw5&cWK)&PN@f+#9sot96Jp!2W4=6Bpzv%`^IXYnm}eG%!t>!DNImf zZ>oxSa#JJ(o4DegWH!u%vWHh}#;@C4L7=ObD+qMG7w-f*tU1F+iQ=6E$W-CBu)m%H z&FcfIWK*0=$E}r@d06MY@s|2cao!tH9W}Q(YIqCkC>iU)7MV9kw&RCVQ*3`56!Oh& zJ{i|z8f_D2vvnmCC!3gqnlXEept?`hz& zQa*PVN@r~U`uH6q<9bixx{~C#=+gXIH!E_zTY?64B}r0d>sU{_@TuHT^4@@M40&%r zRY-B>uiU&uNmv2k<24O0aD(Kt(Bzey}_Gj zNBIy;s`Bip9TKfheUL$BZMHh)*%6Ob$=0eIJTmLASt;yEX4R9U+&$vBLOzk{!4{d7 zjPeCRdE)Xq%J~Dj9&-MGZpMm!GUiHVR^r=@<=_!v zR`n>KO9xf!s0qlIBeUvFKyS0~rByO@*b^->E1BkdPh9pWiz{LEm*nKqk$H6K&Xgyc zYqO;%?~Q1;=o01g-pD+D$$KLbuBIb-QAHm1xyEwTfDW@9%S>?p>=<-Q_P8?8JCl+~c$WNHX<+)}A5r#{Y z&ox8DF0;TK(1~GzIiTauJTx4u*KHme(2b}kML;*Vxn=|=9&&ejATk?ft9H+Sc(W_IG)KkK$gFxgtB@L*(X**4q{c}>#A*%CIU+Mkw1yW;BeUu) zAw3)7jj*d;WDV%Xm#YMHbjdjax?$!Hu~bzu!Rv~b%$uCNBA_ZHe>q32ZPkkliouat zy|iM^5t&s_E9MpPy^kAMUJ=lZsE8a;6%x_hAwr1jFV@HpBD4NdmH9z@X)#K~8hJis z-aL5Yed;35N8e-|bhDY~!!lj&H0p{|Mx$5kXRger% z$x2E#KFKCW@=9)ePOC;G$#`B;^|M1jqqU^!r#wJaKVD+!RQ*&5sBUkC1=ag85vY2{ zM2^L(cf16u-l-B$c%Fg>h37F5i>i{R;6Y(_Yy+x?(=Uv!dbqtdsDa&f0Mx*ai9oe- z%Py!^PTR2AYUP*+RPV<pxR4b>KK=po1Gj^*EY2mb&D<%Verv*u z2V%BXq$w^CNappPJB3Mm{pC&pRiP>Fo*Hxa5X_GPx`7q*1FAw(Tocm4@p3` zx*SmjXC zD2J2z1{Ohj{8eTplkofnc6yaewDSg z3%sLo(~+Y9bhvbPO0dB7mxln z4J0+4g3o*KM=!!kD%o^&uS#ZPXga!AWe41#n}=KqGAkL=7A)f8&oR;a;$v5+WJaY} znB98_rXUIyv8z6Y&U*l=NDQ6#KxRWZXSn_M&59*M8ia_{!$U@2^A@hh_ ztO=+wG@Cglcztei@<@O}srk$Kz#~*EO;v#;GD9Lur+5(WRGY-1iH?=DkZrGHW^m`F)?P7!|@%h1+F; z>MyzNQjyGhXu@-gkfz4agcqYCvyPhZf>XSqTo28AkJZS$Db7~{s$Q#F!70MIsuwfl z7Lge)aY5IJ{>VEbsmFqP-pemOy_EmS+~t}aVRp6v$~7~3hTta;1m&bjkf(!Pu|E3mzW{{i_EIW3|(7t zg|zB1L!l}%tDY_>Mnz`TTVZ>Xl`gJ&3O-Mb%$vGo&@FHUbQN;S{84a<@lk1yo}hQH7&es&1z9xPWRp4$0$U8LNkQqL34rm5d7tD-jl1 z?`i$qDKhJ}na+=5F>KJybe%ZvH^Ea=M)5P%AfapjtUW2UYR}9aNiVe0dDMdZ)`lA#u|P8VMv- zI9piEYGXL#3sjMlTL#OhE2;O>*Px1=Y=RofNh8yy{%+34)& z0#))%V$dOxn}U^A$z~-th0L3k{1c#hZ#r^QFzb#W`6od2-gI;)$-VWuJ#7lALX(rX z!sC4Peo_UhLbFmVhs=7vJqa`NrZI;Gs5YCGJQ+;P+H5-VWXP=PW~KLVWH!t*sRTDy z?*s^R6$o8W*?w#YqP1!+2O#ip)_MTJ7gXgbRCGz9TK-1f~wHOtS3-(NkoeXaUOcz777Bo=`R!nba)mD0=nwC zXzW^!JZ>0ne0gdl*SmXsWnS<3ZTxn~_q;6VkngIHW7t|r)8^WdSu3$kaV0WqB|*>a zvK+z?BaZTXH zp1cd&52}>}y_gfn%$1BoiaC*4g#bRz2_$a9o9vX*mYiGd4@p!){GTN;=aSpLtZ1$O+fA*bhiur7 zSlu52U7N*@fQ}&dm1Gq%RdNuCIjCfm?-gB{^`465^1P0c4o<*>A~|mk_9-q&Rza*HxHEmptU} zaWSTPQNHUyG8;pzUz7>A#*MZp6VUb0bs*4HV2_Lhd3Yo@=$@$oy&^a0{5>*n(8Z(h zm>hyRdO%fZIw!|6- znZtWiz0^~|CNis@SoAF&ne~^lD&|BuN&{tnT;>$C=dmW ztKI~3^G9YKWk}?4kr_d<+4H#Y#ofH;cmdUI`Ybn$%*K~lkvGPtkSduWksC&42qslI zUikNJ#`3s;u1Jm-(4mz7g$wY8k{bq8y|i0y7@0@;yfL7goZK+@>xR;6E}%oO;1*Eb zCSygl;KVA#6M17~)LF$*)P)Fx7nwIJIafT4T}SE2?g7bcD2ZVaFESfS7DO)(d*3NyHSal4 zWY$CTo&$vswvMtVy6Ypel1XvC60v26b#W}9>mknx=rGH30=nv5`2ih*UHReVtzLp& zaEr_;B;f_Oa0DM_Iaff(JvmoENAjF2psKg<^^CFit3o%+BOi;*@QfJ>Zjl*+spg_u zTx+a{G(*>VWZrD{fgP$Y1XBt5Ut~7Ec%tAIna4|cV?ebMPvn&0;SSyOb-^t%LpME9 zIE&2CjWr5q@nx|}#u_sm5>`oW&_K(%nc(mlrnJ&S)s!tc`Bh;6`2hs4#^F} z1;3J#ja@QaBr7S|Ir3YVL3P#vB0gQ|BkEoL&zZf-%9ytxI{(M_tAt{!eSL7{ZB z35qVK^+EM;^6sFbdZ+wB)w{U`Rqv)4RDUP^PBu2vlB%EdgF^7c9#lss?*cw6d0HP- zN4I?h)zM8c=sL>7W9`0ry?E51G@fl^jPexcWVIXNZy?vP_5i*530X- zBJU3)q3ZEO9}tpRy?COFKr*X-x`0)2bSZ!Zbo18}HlQ13_klpwi&1*QhBZ>RF^Ugw zjL1c`Nb3F82T;}Hm%K)-n5xG%`H*BDt@9y)LgEZ-P_4v0y}rx{s@s^TyFxOn7ZY_m zh@Dh_aZipVne`VF6)7XL$%$=>lwn^*o>LH@dWd@pkzsp9&$y?zYh;FCOwdRwJ;udT~#W*2uj6db9>q^;<$fRgZgeNO>FZ=+YB5 zpsL3<#oNd{f)sD#Y_AIOOIMU+)=_NJ6(yO~OR?moawgdL;+Fz+WL7=J(n~fnLpS}> zEhcA)Rlk)4bn}<%3Up*Gh6hyd@k`g2oIy6ev`wEcl6kV(^(E(%ku`ql`jX7*#V@(8 zWY%9wr#nr~HA65p(`6=^jW4$8)n=I?7~ABtavoas*rr=dGOM1_$#o_3s^_|5@!za; znF)00=D`9To;j-=wchx0R)Ma+oK>KsXD``+su%a^6P=3$+) z3Uov+MhR3asi5Aqu}`U$)~Xy?GHWHy%8@1WSR+T4jZGs;A$4m?W+Z6k>RlU|jVQg8 zTT5oR#Ams+JZ~8;@mWz&GQ%Z4%jG3ATw=F^q3o`jj@GzhqGU$hn6Ec)WJZ^iRd3$d zl{KPxFz1-eMidX`9Fy6I;=w+vEwd4&!8{!>)tvuKQY$I4!mVW1O8TteE19(tf4Xyi zt;C;Q*0Nu0MDb@XHkpm6wXskv$M!d(9B!baZh={#YbA#p=y1vJ20H5Iesk(yE2+Gq zwPfCia?OEmj`Glf4woEtpc_#SWqY3VM%05npjwGB^U#Sa2+ugONG_T65J%>(lNp|= zysm@UK-WX8Sd^E{s>g~&dD&xEGOo*|C$o~VTP{7Bb#xnPoAT<#S$zduW`oXp%Cl$R zUdh(Kg1ux$`PRSOeKM<_5!Kx?!4y$G?N%U|%&Mo|x?3i*>Sr~BB6%xb@nF0Lmsubf z=fPo?D-d+^kVg=7B*-xcx~B6Ff@&q6$Uo>slAE#ogPF9gf{AP!l zUEzMS*DJYt_E$lNnN83^O^&TbP$jbjayGjEbyyeW1v%+Xyn1f}@-p)1l^Iz{`qhi9z5VQ+pOBBNU2v0Ge~CXMC)JiSu(F=@mZR@dB{Hqy8dz#f^GtG402W8 z_;UC0SRN8N_&}A6x;gludDJby%3Zq~U(fe|>b8X_@14vea`95!pHb4Dm{M|rfcl+XTd^P zu>MjIIjdyW=J6-?ToK9Il&lrWke95aWOU)^uH=y%H1bF`21zAPZG$!xEMJA&BY$Rd zA<#FL>c2cLWNz%{cmWEpZtN-*M^e=={|iu@ZDj_Ev$`=i457reXi5&KYG=#>CBY_T zZw`~WKFSTl3R(N=@SHMaMx~jWQ-;j&rZKq*9$r&4#|xP;*eJ;H!m7KHIbML)zJi5- zhET8&&}zv4!ZICR^ESr|nG;Bk7of>Aj|=hBAv81!2qH6t218yIGAH@mDID>|QnNUB z3Yl@%DCnoOFc~6N_vaSjXs~LxRslsU#o0YDGUGGFnd^g)?sZ(TKR}VLr}KG`nLuWP z5&T_|dXuLc9hkW=IFXEry0OP(IG?PB6leFq$gE+h(O!xna{|fvfJrpGoDV=740#=Z zhMv~}Xbk3Vz=jI16)$%Knd3Tl15oI7Tz&?Ot}&mV0jT=wxUP|rxz-jJ1Qfe1gE=2K ze+{q6oS%WrN;Zr0GjK$^J}OuUCo5hl+S9|l3#<&_)Jd_KRUeBeeMmesDzi*oR@>l*lpP4-e5NupQ($&t;no>sf)ZE zWL9m%CNBrOz@(J&$k{<=6}2$r>|mo04 zq}o$6L?=xW4XFaNC=xG?EW&nHq;-X$nxLqpZHR6uvmR@J^=s?|pww|Gov!7v=M6o3 zzDJ+Q47~xCH-^BKiJ;IgpyB0|0a~>^J_IxoLr*vi5D&79B>B zwY}&tpr|z5I1U^_!!2hHu{2T1tjLQ)<{Dj88Ml|hYq%9$MrL>ow_H19R(o58g3EZH zrZ&ur3RD{!gGHQ?SsNOI`GUxd`37GxX2kq#^b~3a6kbbKxBAG8`Ha%y&$x3{8!}4s z6OmaPGF7_VM`q{^zPv`<)e61AR~Qg8#k?^*4+l7J?HJW4A6ck)W=DHCJYb-SiFnoeyw=QNKTxMOILke$EMe4XN z;t|1hnUPLGFxrQnW+*z0Ag@@eSMp1d8D1)(J9j(;UG1raoKvd#a$@pxQDP)Wgv$2#Ti>IbnZH_FU$+JK(pes3IJ$6K`6J!x!K&w5s7ElOv zTy8Bg*V+QX;C52V*98=M-B>&rnNg|Za&mErFuXeMr|Fxoi*F&c{m<7$?A%0`uM4O) z)SJ1ykX21-Zsz$SGnSg0#e9(&di`F^7cvgLe$P2ZX6Vh$LchpN1a)}#@p!tsk}3b* zE+Vt0)YAomkr{gZo^Op;t?IbCzx#M(*67xN;=#xi{pZ)}h#pjqBnMd@$mWqaTu4^F zJ9-S75H?PL!rM3j3Vq`QC@M2GfTA*`PncqOo8UmrgM zMbijCRn(9uehf{p`ugoNpw*WP5NP!kM#k;iwI~-LPRlgza?$0h6C1lgTOpsH=Wbmx&Ho~Wd4 za$}MiUTP-)C7HFhfl|a6OKBw=C`F8sSw-oWJeI^;*RT{zF=Av^a!U>?agwk5^FxwZ zk#tDmU@X=VtHbj{l9`n1+x(EM=POy{7tq+v0SPqHIUrf``&N(TYb3KGX@*>mSOt?= zzDA&lJYOTwq?E4_!=c)n{rMWn+?dGa2sEw>-2w`|MI%2Xap+O0H;dUKvue`?IVZ^s zJzY@D7WPW$sf1#-$c%|}LC#4`no72IbTN@Ly^YUqBmz~WiJp&=%!oD73#=kgzLIrn z5mjWyb(6V>D$WU$XT6!@lFUlhsW~pOvc^lUN+8Ay4iC4*CJ54m9y37_Br+f3K&md2sHnPx;>871C|;Z-Lh<6xStwpyFoD!(CQ)(92t~yyBNP>Nq)=4UkwBX4CQ!kCa1@yE zjl@x~g^u{~zklYm*vjgs$~z=D0Hbbx72ZJ#u)hk5|5Gu4sh2~q&kHR}aOc zNjZ~va12>Q9!L(4nuMs9#F1fg->BGcw7EF&sYgYZ3jqg&+|EUTM+Bt&DdfoJd=}(T z1Ldh4?}sceAcC(eZ?CfZfJ1hYqkQyNQYP7w`u}+k*sQ_~bgY-tcmGa2yB9`|qFM+^ z?icEfTWVp8!&m;=Vkdk@eEgNz9RBpVGkO*f*HxuvVwF1_oH2xxo_g6ujhdXW_o4`Y zX(NAW3xDC9zm}Z)k-yZ-W^MV7G!6xA-DW?3mC_us{8iw{9o8L4d@-RS6KXY~hzZRw zxsuc@1REr2zcC^dm9*cSf@Ve~?Kh{OnNdmm?R73P(|)_cDHJbhzeQY`882zSIR(v( zm$ct}gJh=txJNZU(|+>}`YkGHzrEaL=BUh5h;~i;%~L2eD)STytwr+`3QaC^7z#xt z?YFr{X4-GlQE1ZTUWJ^^VQ3PSwBHGShx@ z9|}b!?YHq|X1t{R<~}rYeKhwWP}*-3N+>F6zs*fEqmuTU`_Rm&r2Q6AMrPV?&P1W4 zoA#SC(aiNxQ){OothgJ>4psgS4u25>f2o(hAn+Fn@Rv&YYhPfo$^l8x+JUJGEi%^* z5~yXy@VEa%IU9z*Q06a``3o`rLJMQYi8sq8!-l`Zl`H-aSNt8WT=Dm2sgTGU2|SoYB_%lLG?|%z3uzRB6O*W<1h>4H8I_daek761Ou${07NR*OQAr8T ze{E*Gqy*=`HnSF`1oxglnJK|JwT0p(6L8n4&5V~!zy(cmn3oAShquspnZsLXRJQ&J zjhFeog(erGsAPTtl_vHsNmLweLQzQx&KYjzc-ixJLQzQxVvh_jB{)YpMN)z+a(#=J zl;C1DEfSTK;JoK#rUW-$h2kY8IPbZc@sbkUcqKC>*mwo1MJd5u)V4^xqy!i0X=ZY1 z40579c2k0Lw_`tP!)Y4OOcO|(AS{go+8_jJ6PjrPgC>Vp5xbvE?L3pHxCRQ*Op~a% z1`0*R?iU)BS#MZ|u7M__GV4ufRA#RUjmoSDp;4KA2;>@Q5*52&XuNDIEHqwr-$`h^ zY)32i6&8T{Sk_a zs!J#;sxG0ZsJei(-%O&S{U$Uj3%_9Owk)Gg8?+EJ6JjP1Gl3XM+LSF^5X8)cm|#;H*LBfA{C04Ov=6IXlA@*QnJYyv9#%aa>Lgk*CLJr{I;hGOvVeY`7%cZ$9d4G z;N1>di*`^2UfL92@V=!@cV6YUsI;Np`vqo3C2fjJad>IdonBF-4K-_I-=flnde0bG zBr0js9b%E$h8mM#c$t(K8bMLXq{PxGGb%I15MaD)^#_Vd+H_Ie)Q~pa$(B%5(x!{) zW(VWUF`-%$sx?87CLowltqFo8ahRIW9VS$35*3H3P*fbILQ!$%2t~zV3gj>~iHb8v zC@Kz9p{O`ag`(ol2gqS+5*3H3P*k={1d58o)NfH~$G@9`WI9YuqT(5AE3(tS2-o^MDDB%3}6}MrAR3LTk}(3IeseU+A7tR2-&4QE`|GMMbSI z6cvXlki*nuE!s^%p{O`ag`(mx6^e?(R46KHeISRaNxWpF?oOeZP{BIflANzvh>|AM zXF`1@SCaaKsLzD@OsJ0}1-K_T7_F`EyKEpNF%pT9NQ^{cBoZT$7>UF>l{JBR6ImjO zO4@X%vSvmlZMp|J%#2FfbZ@4TnKs?wtWdn9P4|MTnemb~-H9!kY15t93dKv>bQd4Y ztVLwUT9h{3`K_4~vgfx1m`$0ItfzL2Yvy`t zwX zuNgw(kT+>^IOK(pt_jtegpe}bJyk}}-O`*d-w zWTs5_>k2~2C1tuOS2O8UlUkHA-4$CN0ZExI%2jB*EXq}Aa+%9dXjEox35}Oo{6Hzw zg}w?!C1tvswq~wHi+~jxFME(rXnnLmSfG^Y0%3*Lq6NYVMI~jruvjzWC1r|rZ)>s3 zOX4MEiiPV$*p&klzL{*M?f_4S8ca43c8(`R4UW%d$Ch`X%iMI|{UM4>nUak3N1Az| z3w|5v{mzn*3XCKwY3AK6B6G@=Bq}kuhj9EBl^ER1#b!oj%CtZRGH05SL}eR&pow7d z3>K+HQ>H*snYRnsdAPl7#_a1wgUz;{WxZRDv#NK)aTfLL=~>fQ2B69A?C4q13j~|#Ji{5+ z9$)1Qx14`098bHE!z|evPO`;n$J}PFN&BfIp$TS(-m{r!G0$G!^I)@;XP3+>nN2c_ zWcJ9ck=Y`%L}rJ~3Rz^>ERY!$H|d+BUWf*oARQA(ljQAK*pJXg%nnzq;Sj3Gc|{Rf5}mmtln9Te zA~bWOV%`<0Y;5gh4X8Oc?}||MHRtACF>@WUN4yzL+su$qyU=}G4SUkt%+;_M8=&ma z#n=cn2hw&6wJ|d)GaZ2@@w7?rO({>BI5sH_z-Ck@mGb(Ajy$DWb!*206 zLh+K!7Jp-Ayd<+7-i&h{kXiTdH7B7-eqlI5QAyh^49CoXEgHwnsAM}X8i&km$K5m( znsgVGBNUZv#|7n>8I`o%f^x`A+wI<=P*k!Vckj^5_0gV&5{gQ;<05s)%y!%@M4_nM z4kvBL{*&c<#v*@R%4aI_7g_Qb6#mj5tOfh)(o9ZRbP4~bW)=mlfvw8?WoYns6lOVY zMJ8vsj!^zT+!>8qj9E`s`z*%A5|XppXD;qNI&y~Vu;l-%cb4LN455n-3Fc2G~}5R=zcGd;2Z(S;57 z`9uH#JmIH@<1V`K7vi`K;h4XEUBn50#oBWg9Z2%muRHGOpn<>QvPEXi*@+K-sfE7` z9sZV28~8sZ`AaSQg%0Z*a^Wwv@E7j+JKU{mJ47UBxLeqEh)B+G9d;~^!&MXV|KU0s z`2Xs4H1Pk`>p0;5!*v|6rViI}!2gHqn#BKy>p0;5;!Y0ywdBHX_-n}p-SF3v3%TL1 zwJhL3MzgA?E00p{*0F_VHuN(M zvN>heok+D?KfI_S>pdp-!1t?&w6fchDzEJ}x5?bz@_uoT!lyAIz_A^FcfL>qoZUq> z!DkI?`@N$9nAc!rchuf`2a`bUtv67GAZbFAOrU52<0jBFL0BemNz&eWBUT6wO`2C|+_@ZX_!S zikQ^5SwK4-F_Vf+sK_KiW&!Pdn#?SqosI}aMbQbtu1Qp~fac>hvvHOMG#@XSTVoh7 z<9aHKLEFxEoh!7qZ_o-&g6ngkwSBfP8;a>z5;GxbcaSIo5(P;jIwbqH9)q$qkSJXe z&^0qD;>jMFCNVEUH*q}_r=U%s0-iOv0tq1FZ3jDaO+#fd#tsHP-vrNX<77yZwocSi>a_ff>R7_}($*8bk1%<8_;+qSA3A~$xrw$SdPf-bl zu2BS}YBCAkB}OPJssf>?sAPmfx1)g6E+%XHMiOmr#BaYOG)YXQ2tmbUy}o^m5X49t z@!PiuCCEnnS^4wc(?!{~3r7`#T@xxYfn5_SGNB?9xHh38l6DpI-V0F?8@K*KivL52 zzYyXtbodJy{z8Sn5Mhr;%lS*g`8(XLF>`y7Gu*8)^LddoTp3_%I9yF@{y$u84gSA+ zx7N-@=jP(CxN~yxSKPU{_-nlzz!YV zzqWT?E&f{Xd|K>Z<#`@0{>toi^-_$6h;UtOmM%M@Xe%5MGT~jO(13hF_RFSl|nFK0uv+(ibP47grGEp zDyckx6o^Tr6@yST6@*ZDs(GRCTpEGYlqS`nViyX}HBl%$7egS|J(EhRQ-NIDOd{q? z5xQ@oJ59)Ro|sg`=_phY=K+ut!6cTP1VUG2RC>aIVZ4&Pm_Z!LcqBg5z8$g!*qTTQVK%CZW&TYPg#j zyY+29&f8$;o1@(%bjQ0;wb#@AVlSCdaS5kLeLJ%UdqV^h*foJ&6A(<`+61miW&w~; ztq|3kP_0Q+W&r?2#ew3tsLTT3CNxZtsRdvXm3e%DqOxTaC@S-T07b=R8oc>HNTT8Z zGc#V)%R;rt;U*L>>Sm#+IO>45PLM=p>jY3#woU*=W$Oe`RJKmA8H&n$AV5)>egTTg z^b1f_reA=fGW|jr=cuG#fJP<#0yHY=7obs@D#1{k1wyhG?Ua{H6^lt!R4hVKQLzX` zWjjis@iH~Tx9uoNqOu(&P*fb=7KzIC6hM>iUTyJPyg15%=J6$o7e~37QJD_}C|+)` zJC+=#)L_Cl6KXJlPZMe&N%zbU7or9eYA}gP3aJM{$qd~=L=gv(3C%PK&(R}PwT>5{ z)Kl+nv`sX#k`4`_7))nzD!R;c7S4~LYDjhUE-3EY@KR*Gw87SKEcMa`&?@Ss4WQN6 zOB+CAuopzzVB&pgCF!@P+gFmAmg<#IplGJ0dPalHaozKvSl2O;Uh21}$*lIes#ikE z3@;VbyP)`_E1A;4`cnjivXx8{{Xh|!>*=1#0IEfGac^X>9}c~~?Ntmit3d?;>H2n& z??A0NJ%9mJ4RvZyhmslB^=&U-;5Co4`nLB($*iJg{}x(@Fz6&Mv?efU(kS2V3J4*a z*<4AtZrL@HW|~AL-MT|xGSjVFeTAZuZrvhmCXF_UO1kws-MT|xzNK4t=qnVJbn7v)9acNw;oACo|nT+gAwbn#4=Gb#QcYtgI(q46>+K`1Ke))@;=4ZlZ>q2C*iO?e~Ks3cnm@rvIy}m*S zOC>Xu=5C}&hEngX0EL&m)N{GSylhVQ!V1t>>POLmsxPytS95WAg^<03T`^wLM69NR zvWb|SK@~|8(I3l91@%%2zl1~g!)_|5CsKf7Hx<+qDTLunkiCrp6kf|qzs*HvT&Icp zi7w)Hl4q+-59^W{gDo~avrFc>qbE{;Vj?ZID0KMLMlq@OI(*UOWY)z!kpfiP>*8KY zAv2mz3*7ScbkC;%jdaha0Ii0ePXSuP7C#PN=5nv70EO2m==l^fL%5;e+CK}|u?uMv z7&K|d*^NRlXaa*I>DC##LR4ge=uD!LZk?fPW>nIxbNZ2)Zk^LlC@R^lbNZPXFWIfL zHO!2cbn9#lGP7G}YY4?lx^+%JGiy=0wOgrV)}nN4w^A8x@se&uYpr4F)^4Rzq!y)H z=eVYZ?AC6j0!1a=I;+GYwJ5uF#)+A=D7%$th}D!(ydgW$)#JVK%%ryNdwn^wRDk2q6%Y>dS2E5o%)iLQhL^fodf)i5Ke)Udn2*-ay$) zT(n)u45fv2`>l#Hf*00JX6k8S-9puudRkbwnN{nE6pBjfi36Zzy4v$CBZ})4L5Vyg zsz-t-5_%eJ@!a5LE-#*2C?+zOceZ3^OtfSX$haEPXT%Z;5e!(ewiAvQG+qcl3R)Wo z-3gk=iJBRdQ-<)BpwL^~ILI$E^ac?p$IEPF5nd4#=|&Hym&=>s}~cvRh}}n@Pu+L?zw2hw#YEZk>@YREyHB-FYPw$@?uT z>DHP2W+s<(Yj<8*ildTl?anKiQOR!Y&MTQoH@mevuUsTcF6q|pypow*(yiTjC9@W# zTf6hh(w|(?t=)MgGr6Q&yYotBEy^d*omVo~qVBw6K#Z5}yaJ6%cV2?!utvLy8R7UYQO36d69Y zWoC8Z&};2rB4cYB6ne%NTfQ>G%g$OTHGHPQ7D_D?pD8P}|M0S< z(6~VrNlT&L%8YatbuU{H?i_-;hiC@ZI1_j=K}sYF*#ve?AZ-Folkij?K(0V0A-Glv zh2TOYR7oc~kQ3dcYMtmpk#>d)g`o8W-yv6rNKQ$UZU&&*ep^l1@sY5S)}it}7-X*keNBISqwCz)Wgi)tzi0 zN}35vCLoxAU_wPEhet(1Fi4Va?M^mORMM^ZK`RoK>{eWfWkx04iZ^bV=~nzu>DFyq;4Hfp(|ASFt=OnRQAxLA=9L+hbSoy(GSjUr2|=|e-HIM9 zvlitOKou=B-HJ{KszvG6uG02fA@G@Q?J6yQ<0akNRa)|*l5XuPEt&C>ZtW^9nemct z?J6zTa+7YlwX3vb)}nOlHb3x^ZtW^9P`spDyGjd3%CTA)d{tF%DlrK_|+ zlS@}=X;4(st$R??fk}NPlq8XB6GUf1MJ6=b1j(DM|tn%>j6+=G}`2N(=9jlTe(cg?GD&%=GT!`GqRtEEcMw`eBFcWTtR;x=t8LYyTck z5dzNyJQLbrLN}76Tf6EFwAtTPZ=lWFu6hGSCEeOpZ!)8jZtbc!vpy>6)~vmZ}wJ6=X&6b(T zCEeP^T9ni@Q5S20YEinii?w9dqI7E)Yssud>DDgR_7g!=l-;@=m{7cAw{8b!X1t_Z z_gX8N`2@OH3luN;1hx^gNWA0|*hb9Ec*!TQjTo8f)-KipF+R&P{u8{AqBw;@cXA1h&qe0} zrLPH2+P4(Tf}s2sUWVX;pv(+CdvGCpWM&rbmb_3EWe+X}j?C1|j(CMCk_EW4T{1KM zcBm^i5a+z6c)A~EOB{QwRgIl4blnUDQTr(%#UC#w-McBcu(0XO}a)m-~Vc3bS znV~lr7TH5)tHnZkgkrZ*u;?8!>;6UW2yNKx?yXP=4Thb{nwfMP3_Fgc^BW91hb2yY zx*WX%*TjOWV!3y<{R7eX=mM4u=QImQ18k?`j!*03Y<5lAK8~Qu#?pCe78_1b(zJe$ zf1suv&;&oKBZ-5bHwL$<5Do$p1ZZzEW-ZA^SctF)TFa%c244Xsgp(m%F2wE|z7AI> z!mXgf7;rGKGOFEJzACvb2G=zvB?gc6;e)lAoNTPM#cOZ@LMmL9pqWI(wVd_PDreU6 z!g+=D;lXea_4*1c+}2Izxumxjp=wg}FHMu`1jRHa33%;PK^gUwCM z9$SlZlF8+1;JT`lNlsv7mx*JqppPtqKSKoW1tCE%=qU*fTVx(hWF{A5t$|QMGr2e= zXI;BwRJ*vbo{wwX45E{{&e?SlN;*5ZS(ib;bqvrsA(RQ0RKKy2QWxN@9o`PA=uJm5 zhRV8%v#3F5KrS-CVY;!qAOIk(Q4{zy*}UChK2REEzqTR-pC%Q_V%bSOnaa~d21#Jh zM9xUU%YfVwD4D659f1mko>jRcP&30z+iXaYnYP)bR-r2rOYJZ>iiG5vuo5RpZ!Dt0+*>fz z*Qwn+L%XF|X1+4x2B9Y;Mu-F>8CAUL%WWZtK7Pmvd6t#ek7=Kil1wJaJPUaHY&1t= zQsFegvCF2;B6S?*z|=On$Jx)2Fu})cqd7dLwdldETr7>^;V6|Da~aX`+`~L4Tnh$) z8S2_WnCiv^k4;)Tu>*<#-yaYYbo#m@5mvwLvQQxsJ0-w=Q6baZM5lFu=9$Nufo`kB=G7kjmP?WmZ}0KA?-5&17JjNzx3+ zsM+Bjndz4W3kglSixL9LRM{b&(AdTIJYuVe%xE?~cSuLcw9O9bgql@p8y+_tdTM5; za}-Ij>;z7zin2;}Ee9iXiz&%kv@@MBO<8nbRR8p|`y39Kmm) z*Zn(3AhZ3-4iJQ#BqRx>4&RZ1nbnt6f(#JkP3mqww;Ai(hP!q``rG4 zQEK~`PBPD^kr*CXOQK3_7&`^ICic-8z@1cBLN84rvB-d+WxLk)>n<$))_`FR6(OVi6KM4oAMEN%n20P(mxR z<0m1TiLYOok%W-$*@2UpA>>V)o1V<{%iQ!rlgoZ`38Mvc(Aaqd2$@iKRx(4;$e zpHMaAn3%hd%p4PQ_X&-&x%+^eVq^X2(%jh-)0C_dZO&51|m=Iz@z&U={n(|+b1)L@AX@yroi0!RXnvGxSkMH4+Q02bq@aAq#C?i^s{Q3L23d=yj? zTuD=cEFG4_(_#%QwjTE2HDGN^jPoB6*x0TEc6R{u^*io5 z#DkvRH}=Eps_pI3jngP>ljQ{~Ms!~NGhskm151^p*;$&2(lV3EZ7rJ~`>H3Qkw}GP?9PJ>lvOfku~0>_L-tZSnMX7IGT*P6 zQOVYrx0lSU$~~MYbVXW~Tc+ay4 zC5gJ22;AXq*UG)mL|#uXbOD5R8hZs!sEXQR5SKahY|Q;&7eyKcjccIlYt7laZ>%KK zHdxyuRvbLa#*$bLFu`5RxgJq&&IfLz$S1Y}38Q?QJN9ZK@Xv|B;hcCcx?w+)1cK`y zI(fzku0z|$5@05$oD$AnM`fR+gUAbzV%vc9VUPtTZ-(G9Mx3-~y zSvM+sEQri3mf3Fj$1~RVYLL^{Zp4764HTS`Be267Jk%hwXmj}7YQgr%lHGgZ8uFHT z3?_L&-%bRu4}>{M;wIE@H_rIgBF78NLz<1SLki8h_4XVZc#y3fnb9jyoM(ZBOo$DR za={O}4&Q?(7{ptvP)KH?i)9c~TISge$P12qo5^%i}`_ zBu;md@TSLr!rL4H3VrGfXqDrJ8Q%8F2%y?$*#cGjbR3Wqha@V^t-2OJNVU(R0*Z<4 zqk*bu<`S!W-`2xGF*tMS#wo z1UKC)S#R#`Gw|xvJ$fb-LcLiq1qH*a8y7`^=Y9i)kq_4x9-0iOx|vyM7i(vi120Uf zStD%RA&pIAqw(R{6tv$Ge2qd_<%$5?%Oc;McJcNjt!00+u0?~6u;rPG{HhyeVv(Mr73HyCNuE_Ce{soG`SEmhZtsL zcITZMPeJf%?d(pBX1faf2_&}$Cq2W9CO%F1#D^7FH&joEu98k)jM1rNMw@sfN|(eUBn}jkb^qRA5Rw=pzbR7(v?h`n z`gj2fJ#ABv5SgJjdiL-h#8N?p3;|X9OevshpK$>c`W8{X&W^{uTjmKQy;N`!-)c&FsZ$6hxI=>^(WRH>Ff(&YL7_%Gd>Ef;q9TsS zteIPYfa0@-vWO#e$M7&KNxL(h^eq5t-4f^dt-ntlik5KQ-QFhpa>@-TRz!1gXgAB&hVvC5^1`4YeNlcqrt&G?Sr9N6^#jx z7@&#w&GiUHZQnBErq6Juz^D3?7NNH1A;m+cK=34(@C2RJqCAAyA=-9y`JiqR;}C)u z4vg#vkJiWMyc={zexBX7VM9CplE%bxYtfj_Lee%`2dfN1O)5+kdkjyR2?&1U%8v=P zDo@x}1f9n~ah#zvlmwdHM!W4KVH(*h)Gh)}4x56km9FZ|8ZH(%D;tNi-#FScVK&)5 zIFwH!76$ENH(?!Po>fLZQTo)N;V++=4xXUJ=Y|buxr!Wr3)K<=AlI0?6CHa<8-_V< zwKU#uTs^g`&^gx5etDW+V3AX>>S&;)_X;Dt`28^t3b z(*$BBHiblCk;ob9bDh&!B9Jumb(knflF(B#c_PS+%CtAyH!9gg#Vz@I(9q{}0IK$M zPXSA)>x!giIKv#mshO;xf+_Ieu0^cW7GV`H8D}_ZgNDwM614VV(hbTqqA@|CXXx&| zIcR1Y6|lq^Yk29U%?FCK5V6}DmDE!KOMI*LwA8%qAT;#PkihdYymVG)5)`Qotw-Bn zidP#_WEm%{Ux^?^wx3&~Wb0AG6euRrXM3ZHBB?G0%xZ73DW-{4u-aQ?id({USlc&Y zf#SNsP}~xkiM;OLNT#BC8k1lZP0g^RMy%zfXe4&INRVY=EIIu}=-mRg4$xjl`XQY^v=J57&V(@`Ny7WS7}%4eX1o!FYB{?#KpZwWR=a zSFX8kCIX?rb`JY>M;0_~3bRAbFuJTA1H#%Nt?2kQg0(hpG$&wI1ZN78gYVHyV|EWn z!)#L8O@5H`C`63o><#F}Q=$&nKA4}7clwLUOKZ&4MdwTbGQMO2jj8DHRN82s8<7dz zmo~cRm6^QG4q^^AW$?NxGj>9gV6hlTNn+G)NxI5rvO|Q5>R!@0Sdn1z>}naaLOcSU z5D&@h9?mR9;FI4F!F0iG(fQ>GG6~R7N}Siq1jDq6kS5wYNGw??ow;U&AZB7ekl14+ zij`zF>`4-!)XX>&nsgUXAQXDqW^a+08G1^mr3brHL6U@?wkf=T%xX{D6w^d(yW@pq zEh@ALD6X@9i)kV=^wiA81bEp?g*M#*BT49)O@%g*8G6=J)(q3BYO{BnTsOl>l2WE^ z5l)3xP;DxxKqsI`H{1$zdi#Ly%-+JD$Xt&V{R9+V%Ti%8m|_VeBX}<{P+#h)KqsIi zpO(7A+{MRHvh}Ea4%?lzuRt}R^-6(GK&!n7CsaWt8wKrw$Xve{qXM*Q_c8)wyq+%J z2`FOiWqK-!gD~dpxQae(F zrP0a7FjGoElIA?dnS)2ces5N3>`9COA~<8Bwd31KG%9ZvCswFkjL_^APE{@GnYUCr zk>r%iY0q}kwqxZ9vCUcLG#{L72xDp5B2=Xb7Nb-!=;Rv9N(OOHSi|@I-uhg|I0Q$N zK#57PLkxDBV`;k(6`2jg>Q$atj%#$kqJDd394no_7b8V5iqvbB1}~?GxpdFP9XcqS4^)7i$iWDPb4Ix2jg;T z26Z|~)PHo9Ba5?mGx4a(8Q~q0W)?aaSVjGIM__nkYy(OhCeW>!?wefVS&~?$^-KK$%=J!5Op}E-gzyN(n{1W~S0p+h$JWTaSd+ImOknN?0F>e3DeMJ=b0;FteGH z4k>&IVLR;7-9~6rq=4? z)Di~qBuWgEakdnFDwK=HjWiGoxdY7IwVcr)sc;H!qJN5nwUlpAnQp~uqFSABLzwSL z1R<1%2+TCP!~L7gqYe=d)}12+2B%7h_)_GU#PW${>!790ihxL<@%hBMJuI$ttHnoY z4RB-)Xn#m!lgun+HFOlPFq`n~mf~SpOBzLH?c@ouXSUJot1XG;=Qnh}nVd{W8XvRu zu@=Z6$KjS_!JByY>nB)UV}i&Z@rd|JbPf$fHwBLqe0WvFAW}+r2INd;D9N_k)`ATc z1){Jx9G4{wB#2?G&n?1Pphd9ftPfX^(&eOYC1iZSCAK z8N0i`jupGv&*Zr7kQf@)0nLC^5=eXqMUUdzmI}cQ>$vTwp|aVC;FT`JbEBZhAqJ+I zBr;DTI!95>xYW$9&6_FLBq5|}eUd6_ zLtOL|k+#*BHF|reB7^x>wP`7?;f~Lip5ml1SgNnVKuBXn5=diWw|-%wG0}z!D0wzC zcI($7&MK0quKM*!^>iA?L9DpY zzZhVT`IRb5fo5*I_)hAv98klP!W zUX;YFJB_!ky?#D3FWh%=qWBJGf)VQhf-4qG7@m54v-ZstHds|Y*;UB|Cuo(N8->m> zv%peal}d^DJJH!h*aj9QhbIcxis&l2rfdC1w7pHi_Oj9Jd4;e^6&*X8A@sUpFEDV( zwmm(89M)j)6r^!&LyUE3)(B!|F`YZrOBP!l22%b=4e5DkSy_3Fs!un#A^z zSOZ5O>#BnKfD}1N=;^VJ8_5hkb(VhT=p^*CTAmg%qmouD?vKovNVygFM`lc9Q5F8j zmZ_#>QO&r3rF?ir0RqKKsxET^|4_VSZ54AxX1ruA@5gZ=mbIKi2`GW2_;zcTB5i>R z!~#l?nP){{aZr@xQ+2zb3to2Fo=6g^(P_Mbw8*T{O_Gi&Ic|#26yI*#f!;Q}!w8`G zOyd=@#o()}Qf_GtGFL-ES{z}G`GT~Vu#-}LC7^~>c6HHNWRB~mHc-SGC`D%xY7)&X z>7uj99D{e3vFI%3%DjYZI;n`c;^K=fG=0VvO$eP29`3<)I2M`HsdbhEfE{-bc_lhy zNM6{LIVmwJXbSe@Rvru%SmOUmNnNm{U`M8d=;+u@=J|&($7V`lT|1UAj};`gn?*P} z5rO?4^})+l5VpL^h3$=`5xn169b^}aZwPcQMKH`(`_8G*Qd1YGYbDP<*diz*JDiO$ z39h`&aIT<9g_v*U!uG}*aE;kal$8jaEcuP0WWtWpF^KJD+p%Sb(B1%F6YOHPwj%6E ziWb>S;&(Ed^ZDWevIaCd-{5^c#vzNu?gkG2;7K>@2dT!(x?iH;u_3m;=hi4_A8XP~ z!iPjhAIUDe#t~a295p1!3;}FKt3~au(HHC5PKezfcsOC~4rHdRY2LO7j3`CNZj5h? zkR~NMQv@`x$=d zMHI=DD((-cBB_#&ML9c;bQ-0&KQhOBaeqMJrAmtXBQvg3CA)M%eeLv$`vVFuRWg}b zq()~-6=lWgs+~hpwJDaJxSF{^n}ghQSW14)rqM?tP2BQx}^UqGQxEirnO97#+#2!x{2lFChk=PwnGkb z!V|3)Cn1?^t#`J=#&BHco@D~Si#7(#GY@8zu+6s!u6|p@5-z*!U?Jw&4&Tr#6FI(9 zc)|Rb9^=eQDw;ST;MEdB*@(dGlcuT*2xjEd>w6X{@SKgM-`IDXNpHwJF6fmuYlrvIcBXCBf0E37shdR{0v; z-D_O9b`E;T`p|eXSdamYTuI{LY&#wcYiE2NX%U#_a>kjNav|hVVvL3K(IjXiMDM;V z=8ml20l=z{%G4lGRHg=jqB1oI6qRX1pm>=!)E%;Fw=@Dp zWy>v4RHhW|h)UL?DMd1C(IkNgYtc+^pjtHD2$WoA9RNk8ja#y2w2znK6M@D{=LSII zWgco4;&f!uia=`-{V0R`nI4nS(~&ct%p4QNE&`2-Viz%usy*dc*aVqt!yMe8&yXXT zBz7cWX0@jrTgfrSCJ8LEv6POy!`K#PibN$XwIPi;7aldFF*EsqlEj80P*i3o z0mV!D6HokV-`r$Q!iytO&e+#d63K16V3JZT7RL-Lb}PC$u8c@NvZ40 zsM^V8=V7=JCuG=_Pn^k;CXpthwhi=~4MQHb0aa&3XnWaZ48aoWddobUvN5<3!r0q< zr}46cU2V0vz=cqQljog2q{MOIZ0vTPiGx%o_`BMh4;<{SnH{QPV@UHhpa(rR z1#U%8v$HH^bQQ8i@Pq=v>1Gk|WQje!=;&L~5vUch6|r_K4mrc!DIR+Ri*VIuotll0 zfjZG`S54opwK#+n4+GQIk{q;V7SKrM>TAsbvRal+Dp$9KZrYv-EV2%;Js%l*`V$)|C|=T^92t}uFBvYKPBU?AAD8ezVBH%p=s`1C^C8Bb zQ0B4jlmvYu6DX9ex9pi@o^Ah_*bJvgvoV(_*C+jkX(JQ(Mx=?U0WWBxjcZ&^*3JZ1 zE|`%bP*Mon#1@fI5k0%v&#gAagO)Or8%dI80g`K^BQZ{MgmAM$i~*%Q(b`#Z*(mt@ zr~#EXqm4biMKCobZJgAS3|5Y=`G%AnOZXi8Mi`Kp#6ijg>bGyRIE@dW2wOs#N9({K z=tE#iubG8t!kO~K?`bAsJ(ffdE~(Mj*A~HcmKbNwGRQ%s2xvSi(&kgFg?G^1J5NDM za)trnH)4Z;^kxbb+n^d%bR>2MYqzAqS1vdu6&>ec>#B`%sI>9kX`F}sA`po&A?G{d zAX)J^L_lYB+nbo2>yFux+E;Q-N1I@7TZ9Uf8ObDpV1wY=OxsQ}(uEfT$vjEpI{jHp zCnGE>=}*?6m7GeyQ#_Kjwm?sysH8><^u!k%mDFf~o@B;L&BRU^>Fm#$9I%u&T>zd? zRMMu!dy*NIv?)V#RMMubC4_JbP5)ra*X;bE0P*hT*jZY9lZ;#I6x{{4@$OVO${aJu0x-q;A z&yE=}tg1G}xhP|IUZJNr(P5*R;w&VHhJ;S8EZ7GjkTBtSpHIH=48g^uiXW=fibM~!qA8NTH;I>Uu1DbX=iq=|=` z!9WdLu4$!sY&6HB zL+FeLiO4l}pe1SMzFoY_o*UHRsa)vHL^skn0mLh?jYh9_n3ppIKPo%eVszH9;?1yk zZ67CR)Q3=~9GQ%gX6>;eVs+#b1#QB_v0-oq9vk98*ofA^s$_k=8iHP^!<+9Ic{0d) zVuIh&fx@;!Dk)ral=F|}Y)cOdrYsc2!^oX@JffUvXG$vS#Wsr5WWMVDImCR9TBZeI^UJ7yr3Vr@{hJN4DSp|l*%f^~GN%S@q%41x2?ZHJ{KJ!G8jO(3FIhfFizFQbS1A zU1A|~%`E;4Xw5ACi^X?MDgMj7c}4ARtcaq=~ANChmNB;RcQ0 zP<(!41+fN>n`{x4TZH%nAvBjIv7ODt&K>D)#NfcRK9+D>%kvhis1O29pVsJ%SsWQq z;cCGaFrH))fd<(t7|)}bX94$_d@?YtmX~?gad$#kBtNkRR*M~vtXZ<=7C~o;$2MSX z$fCwMLPZ|NO9eqr1Q%MpJuHfLOAm4x%_&^B;~>x}TaQqRibr3>lJ$ErzzA+D9xLQ( zpAyjB0EBKGpXaoI3h3y_S=*2t6fcZV#eXU+6X8ksSXHM3z#$=T2(A#9lds)p>B zZB#6|sa^0PkWylCtkJCxg=>&mMJ)_PL$o^sAy-7Nr8!wfB~!ZB(#Wi$mVzEe!>*2{ zv`rC-WG2rPeDSjkt(ub3DHxZ`X{l`=VIo_2RsvA!u=p>aDoUjn_@!wjpFOEdvLZc0 z1vGZ&m!e1-x`;2J@zRqEKx1MdHI|HKU0lQ$Iv|9M*^~#F)sXpG#24G6Nxq0Lpb4^< zs(>b!d!j0*3_ek7N69(II2;#&ts(U><~I>IG@&BAH`}#xiEq^w@qp&D(U@nBNR$9w ztnP6Zb9I|@cF6^q){+M;u;Foe#5FuqhQsI`sjySK1wIT$Xh_8lti=Z-wZ5P>t4 z)!zP{Hp?f|!HPO!LYvNvVI7)SyIA<15z92{jt?fvHV2r{QsH%{s7!~jw$;Abd|dVL z8}Y=@#FSqDaT$Rkv|;)hKe-~n{iz60XXC6p1{`TA0uNB|DuawSnF;c;Byp(_b8^`$9M6ow1!dC3TYAv&c0Vo?i_qU= zX-^{=$7LpJ)TS`36#)kv)`u2$oFV^l)|n~pNI4^ZLAfxc*GKCBIJ;q!)m$hQ9!nWy z5IE|vZLNXiAo~^wCQPiBWGyP((6g{*ZYcn&WEJfZWDqhu3pd2m5<-S2KL<7Rt(1JL zhHRp{A$AUigv@57+EXRPR3PK1WF+3=RxluA-1?0;CLQ8A5u#Sg7_S@X~g*cqgE7-K%Fn&75Ri zgcH*v&NBI5-zMvu#k(K~>117m6Hs_bz89y+tiCjRyTLp5AW1GWjesWW0-b=ut5*ti z>U{*Nt&a+H0;<}&sz4{F>I9OFITHuGY|LJ&0!o52{b)K=v<^+MK2Sr2kSyKR^3?Q0+| zc5f8)tTQZG13J|NXR3Hyq*=8)eAZG`E^JI)Nq9?SPyvdJy;Zxbt|;+$@}oS7;jlh- z-quHyxXcqwAr+2N?d}A_*0Z9>+sx(;AS$77hn@-euFAqQ&%5q_(%i>}fKblQpy1U&K)-e(-X;kPNy) zjTn8l;Wj@cHjG4;NR$L&Fv^TX=1G(pNhP;70@b%O%;;j7APH~60;-~!(z@DKWMf{( z&7k>MfU0Ox0t#;<8K{aj7#KxL$-z`oeKV!WjL+#^pr}mNKsBs+R2&2wom$k{#GXlj z^rVXoPz_VD28gV_2^lE7=~lL~E15f!scJ=NJclrEpV4T%TU(E^Ll`a*>$V#6wvrpI z1aDXo69?v*M>V=Ti`bU5mJR0mft{C`oQ>2VO+9=hRACW(q{^DBDZ@KUb%*PE7uOFv7RMf+ z5fa_DJaD?4DYFYataSk<88)# zHam_|OXA0rYrI8P#P&!k#8=5R{stR{Sd|O?tt22efz-Nr6j!BuvPemV z$Ba#IzmVv)9fNEnfb>~fWUCr0`PKl&g!SR`kok*o$M0e$%5+ldHB>gqt6{q(7UYJ; zx*zqs8dwaaLSttQE65c8DI?SsH8j!2{2r%%n;HV#RBM#*|)qZ`GUwy60_ET!b^D& zlRt!%N5}p*<4CS#4Xckf24TL=*+xYu>2Cc48Uhnv(pU{8hB3ERgt-M1*bJJJD65S@3_;tDEo4O( zzl4EACNyUO;u!QBp1{#8b`k|x4YO^yTOtCURck2n85?Eu4;Pa1#3HsL7A{LdQ@NmX z)|4HL=~<97hM|ru4ID9=zAE zEjFzA*3Pu0K8ER*c`jp`N&JJn;K7#{L~iYPNM(sUix6zEZ+F#oKk%+VloFBkFo@<; zRa&jQU^vRBw9V}17N=IyO#PBYaiQ~GAFD#11u7iwH7EU>tdj&%q(Ql2|X=EV@513g)D+X*q)MAxQbFwb2?F9 z>S-$;Q0j@9H1yQd^=6AHMIxPTgX~sv!_;kLP}R0tU=uHM%e+QyP*l=A7>j0Zl$(qu z!>-IB(2qeQjiMhk+nbRxVralJE0VUMfy+#zbok7k!Y(GM+O&Sh&16cY(V-`h9SVY;D%q7Zp?FDc7h=J} z6%!l!Kx=JbwLr1ke80O|y$^)yndI+caKDa*k1JwHX?qf?O+0&077dg(ZD?S>451$_ z0~&)p=>s%g+M1lDgL0c#JJ1FSp~Y3NRm>`rvp^Uq}1aoWL87kw3k!Rn-gnK zrVs`(vG!If#fA(@M&?M0#DM0I^p0xprSSwd&?C4^LFi9+J8weC$7ImlU=%8wE z40cw|Ub*@|!;T)`b}2s!`Q z>ux^aPDY-3T81zO7%O;&*|ufq&y6!;vL#J~D2+xztl!U)Lj}Q^r}%YFW4DW!jCB#% zoFNc>IaY+dBm!DTu1PJzKHB!-Xq9U$v9-1r1DLmxMnNc6&cGzb(TmJ8l8;Wjdl$xcbV zrxHW6&=l{(*&>d@>?72f3C6mdaglM~x~W<4xDkK!3M z+aXGV1Y-2&8pipuRE$U`p$SV++(2w1t(HdE{R|Yp8AwLLHeO=*IIWfy*4A=_vLqKi zzGA6x{$okT=OvS8N9M!|jopsSfvkvRC3BcEZe*9FlIenu%*l*cW>dc&#@Y%KAhcKO zg&v?vHqkrDK8H6hYR3yn6=kA!IhIV?=QoEiNt~q>JHo~msz~#_AN(RSgj8iO?O-m| zhNkxR7SPNz>RcNrKDSaL-dJkBcalwJ!?dNR18wF(ZD{G~2@^77BFT4>&8BN5d&$Ht zm<{VC6Oy&B-&JCTu4En1*)`VPq}%zl-m0OeR6Ce945Q4+<$gc5H%R!l_7zcwaahTG z7mG%Nm-KF@fj}YDIeEo+4l~lzOF(g5uXK}`d0Ua@bO(QARSQx z5!1`{h$%X;Vw)(5dsl<4p2L)(Z|C4fp(2#Wb_~QcNrh8mGToeqx1n(tyKyMdBCR!f zVHdwC)74xoMg+p_)0ky4Z~7u6Yd|b!GA^xwTOKmOY?cbS!)v?{Dz+9CF^Cxh6GRfU zS)Q*1%VwrD+hd6_E+xhxh>b>-NDSAU36_c-z`YeqvK*1gerjs~71)$>ZsJ3*TJEW> z$9C?7TANt8%+5D_0^81^-zT%3SHaLa9KE7eOkbmA&cs=xxr(D8G2JJZoPTH=2OoB) zA|T2~=IP-v-}wqGiNL9<$-RV+ny@J-cI(4Zku$Cz*_&ARQsLnvi(rX6)o{Z34gVeu z^Qy8UAQHrq_=6Pzp<=d(1&Kt{*80%CB9-tAc%Y+&0!BJ(8HPEyHwY?t;iVl%~h!Nx&v z$vS{!RC*i4g|lxX))6+DquCKQ(73*3snnknj@`XF-++v8jC zvJNMSbjEBO0QPU8r%~zvGDFY8?XcTz$e2&Dbl6R%Jw_5jTEFK!$gI9BtB$_e22@|# zrj?S+&|3rUM_xPgX1G>uDrk`;)K^cpZUTj#>DL<{PQY>IP7#E9y5nu2`lvOa18w#q zaaKNojWNkQ*+xh`0i&pjo7XIjMrUhH)9mw$oG2aGZ?MT>H?NqU#M9&GxDDvx6Rk zc?dY}-}J3vY$?|(1^J=Nr;v7$S@)pLysZ~}$~6Zg*3Ra|`Y>kJhVD#apGk~UmNB>$ z7W5hUNQ)MsV&|sduv^igoz}i4C7jtJ3>_1;;nWBAtXSTZSa)FwY5IYZ7W)!zE-pBa`?eF57K~4HXl0Irps2*MU@pUK&CAs zu~$fBmwkIBQ$d}1lX>4Fo$l#z4`RSWxZ1O3Iu_?!cqyGu$FaIYNa=J)PG-EMdoaw$ zOS&gNG({9EuMURZ=DcS>$lNICq!6eUrGj>qL%h&aI@ubyC#tp`dk=pQxn2!U67VuS z`-v~0M9{{lH$E7HNxpSuBN@EZ%$>Mr5a9WcCW+OO$R~+3N$fEa`80sHMAAUvZ43g1 zur9{?Q^{EuK#^Xj0x3w65YAn+F2<;d^m-a7ys0Ok@SF&sufs{=Y#olQYKz!wtNE}$EyC_fJi5qg5w8#v z$Z5!K0P$el-8M-)_G+7WC|tjxMqxr1o9N6n@vu#4pZ-W|XC+X`928oTZPn^4G#Kkg zCWs8SBs-gNJz0Y{t;n?kMSv=>c7n<*0xcy7F~4z4Vzq3*WeKB82+E2Fjbv-l&{j*o zAp%OStME&#_MH?u-z}*d06eZSjNM*3!{l2Vb{e5FUbS~X(zykh)}H@GAFf@6B}WbF za@*(n0z|bNS$jMb<{RE~$=V{Bz_SxCTP^MdIQGK|84G+2X2KC#VGVTgM6jP+rkR^+ zSb$~{?_@LWx$!cw;-*j%gd{2#OhuNdtNc3CM<#NQE7attAP4ng}TLsUV;brh;%uOsq8% zsQM-zpemZ(qw`{SOB24p;!P`!%C*5ien)>Sz#0A$8Q z%4!QAHEdf=5|xxy4`h&8MQN#BssP=26HxVSb>hkV8r@*%$pJDa zvmy$BCbJ?6fI{Eu#D(e58w^DhkXd~*iGgBwgB?F#Eov0>tN@wT&`o5L*+keFW-^dL zXRkGl$v~kWn77j?cnO7YD8a6=vLc{~U=Y>SDl;d#6Txa3kQC8ZIlT3>wwpbT)w@Qg zMh)5&NziS|j2hNsEa+pYQz-PUR8R?^J2$D;U8Hzih5(|zV`3{89%m8o z?D&l_WWwpMZ9w&i$NpGeQ2vM&ba#U=v9%xf3$jZ>5&m_0N73{wyxS0KJTi*Sx3F~*Q3Sqa8OJ0d2~1bIK`)3FY=^GI(U!${ov z2fDS}oe*PZIbxfetcK$ZEv(E?Fcx7;VsFyJwt=079mjna2Ol6z&_&Xuv5sBUi=44V zFd=>-vCinmYp2ZkBr(ia2Q72NlE$@@;CB%s&}j_L|H8~kFBNZ!eXOiW><*HRmjy!! zjoo5gfSM#Jq=L5aGuUX7(9=srypS1sdZ}Fqj%Q^?BD*B3y-*h**fldLHQ0BSMP{mt z(X=AzEP60#TrX(LlH)V~3$hL&lM2ZUA!Ri`3J57HrsKY)rRr&76(XHUg`2-3$P>Jj zRq+MLx~61H6<9!K==K8$DXU%B1xi`bb^F!=#yk$HVQDFLa?9LsBTli3HgMYuvuYbJ+f&k_8{REoSTLi~ zcqt%(v%P9>*bvQ8k!sJM)!4=6Q`WG8craC}51jyn?s3dBOQ^xqh|K^dA_zDupvl0P z50G7wq&aVr3Q^cL1$#h|-z)2^3(M?^8Ag{ZaR8wRIIc3`YzQjM)TwP;7lUSkyW^7y z#w=8rZ`&2Hh?d1pO#aY<#Ol7n^y9-NdmA;j6NC=7D%@|4caPv$e3f z&dJK-Vw=QpXUQjvjC|_eB7um+5b|o+ql<>5Do@s6Cjxf4T(d#3MKnwao~24}Sf48` z2`kWQZ=H5quy0vN5CD&{Yl}FSmL(GTB#|_Uq)BWF$)@4fccJjoV8vMxb`f5Rj8+V9 zBZP0Ew^J;_hRii{(OS^l5=o*UNkUJ_F=@)I+O!)ZdYSDTn=35rp-(Qi%#&1mx(;E7 zSM6;dQTWSDZ3-|~ zJelF8`B8`MH0xkkx0N6zd zObcr>iqJyDF_IM##4Yo9AWLSkuzFe%_TyTc_lIrHYFOZe8q?Z2Hv$hP!t3fXZ?{RB zcG?Eiyu1*FCOXEpQo`FnCf3Aer%1yt*c214-z{HFMh?wA*y+ucX*UD>%*xtpsx_Y@H!pP!ZqaB_-3=hZwEcO@r(ODQa)?-=YgtMQIQm zAZu8vqhAz*cl&`PK2se99Fe(di#wuuE7_SWP~TcrvOBo2JeC^3Kov>yy(D`+ev)y< zC0=VU;D}@l-sQSoGxXayE8qwyygH{Jbwbn=UExPaeEr@P44}BKANs{6GUKxj$W~)p zRLPWmF-de-ETzzU)Pu}eN|P6UM4wje7J1G(oxH55prb5A#{ig#$PlD<)Weo_%p7ZA zBMUmV#e|F{Br#^|W?$i4DH((M{Kn2u(r8Udb5TeU;BxRAn*ha%8@Sq2e^rZ4bqEu@ zL=iSVo2fm4;nA}Q?7!uOQCG=n2{x&S$9*ClpkE=*GKNrTXL*_{) z!Ge))D?&1w=Q=7TiQ&0wd*~X-t|D0t1=0bnqTKnY!4Oi-TWUb4SLO~DI)pKwBMH43 z>GVX;&68P?wDeh1J5GRKGCBAxOm&Iu)4qq8E5b0RambV%V&OqEKe#0z&K zvy$13g*%a1MXB_no(LLEth1zm!b`yy?$j@=`htQR3ps`!H6PLWzFC^i$v*_&$GQ+Ej3xy&x^w#3L)zdQ`1jVk= z_u~lLE;689k36z=Fkn48UT7>0(^_)OyPvX1PcEYB{KouquybB6P5d7638M-GgTilU z1QSe4_#~N1pdLpLDhocbFKb`FA%^KBIwunH!i2Z>UI^h}a264^6W>q?lNmwg^1{)H znY5&)Y`kz$)^C)Q81ohhGKn|;Fmn|hjTaC1v2DQ3y{2@~$BD2A?B!RoV=;Ub)__%R zN#?W+(pZaNHd!A|J6lUAp<1da9Rx7n0kJ_A>1If#y8uxnzA=b`TwRp4BB>-%}QoKGKqm$Y^KOyT8RDq+OTVC`c&i-k=r7|a{Pv^4HFEW zZ7@g<;+vT;LDF8g7iEAdk^xz;6~W%pB(YkO^-;ee2BcU?qM7d5odz;nDT}25LIh@p zkR92rT{7ck%yW@#Bdef3pb*kM#rBceY|NS|s*8oF8d5s#a>$IcjLQP5*b`Jkx~G6D zGOK7a6)3z6&w?75h2f=_`nfPN!)wjy9JI;IzP>$chp|AD;N0YX8@uzD2~G0T1ww0I zfmlS;ui65!fYt#;U;%}f!CD{|CiHsjo=_+ri_Gv^mbxBH=9-!B4ru+*VJsGS)#l_a zR*THIZlDyFMWA%`wLll0MP?-%A$N_0Yl@D7Hl+BptbwC4>>nA!1Xgb+X1u#kW&y_)yJcrL%TI`)mU~5fjdZt&d|W_|ztn32bLG zsc=vy!khv*H0VCRF~cQ>pABA&lkgjwebu%^rXaBLS|2)fLboa&29^nXLaC^YNjhDj zVG|^m=PiQY(S$=o`(0C<1g&AOV38{V7HTu;DT~l=Fd<2W#kpJPTWs)&$R{!FqH_kQ zAi2jO*EnL=qEtG)153InrGh0bgN)<}WD7KHA4?deGJ)N>KH3diPChnJ@JU(`_M=pY zM-b|2J921g?I4VUCC3D2^V+b(QKckjXe7IenPw3dO1WlW+7uGIpG0;^?wbMuvRV=v zW+G|Csdz}_g(NE3QazPJW>nh#7cWR==j!l)Z(1rY+RqTc@l8ba@r6so{5 zO@sA52~b5gr0}*ytVOD6NapzL6&GxwisXXrnG!OqwzaAsVj?rV6jISytlg7Y@mM$r zCahj70b1J&!~%-5db0>D4kkjV8w$-74i^wbwNE=(A@HSyF%p9}~dhoFSHWb+=!31{QrYMdz5HQTL2iqdD^>R89c(-xA zi+(s~?RQM7*+kf2!)rT$LG9ec>aqi{9Bt8EK_tL%wfFO17`hX|y?E5+L1I}%#|3Bm z*s%%eBy)DaDGAn|4P!N>1~WQrPlZo=v*3#?v=q4eb%eYTRh zX9=Seo#+nvB+h%^@~yF9Xm(7uvRYU>pVr!GH`b%ohqWzfbh6*D=ad90QUq!p*WDXJ z2M948OxQ!LdwH+ezJI3j7Z-!Lj~^nizMo%PH5Wf!vosZmfGenU^o1Vqh5 zIm#LC4Kg_d7!}MWD(ucy-vV8TG@3%f*q1bkVr5fjKj5d{ zaAQL)UY=%7?}TWHZD4%Xh7?QN0o-nVOTV@?J zf{AD(N{+C{=t`~| zfGRmH1C%6MXA80-Gl5J^-~%8g_Qov9NEc6a zrWDC)=%p2)HKkJroN1F%Ay+^S9+Fj5tQAlQ^=+|M?2f8v3kgsNTTg&QU^1E62?5Uf z4Jk)5nXITArI>4sXB_x;>b=!Q#J@#YHsOqTim3t?I_hKI<>|~k>(+`#)z-)2fh7r3lk6k8BW~L28 z2go2skP?J3iLsZk2Go)?@u5luO+K;i&=(Whk?cK9sbI!S6TLq4ZA|sL!35P#W;hg9 zLm{i4hw%;Xu$f%5Rdnb-6T%2+7{r#a$C9*%T_m`)t&c;Kq`UTUr@-Mx2Ut770#-{f zx-}pdX;QmIXpv39qgp@MBAPM;>^Y0@dXfptx=hdkBCu6}PvuDsEEyda&GbgmPI=Q| zenZAGsFPCkew~7YHtR#rDl-(ySn7oV)*9P~Yitr^`v^MMg_O1KXuh#Ekr&=Dv(XGp zi;#dolF}*q4`_W<^dC?Nsh|-PA@qh+(SI1*;cZO>3NOz`#yy!Z5BhfMB-NgJ%C+5L zKSfecg#-dA7m`W0kU*fA*ht2?zfn*~AW*!dy7(FAq2H!pBZMN=KC71_7oKT#vj0e`Hhos87MY1)LkcJ+ws0{DqLPv;VvEeEoOYW7 zlFTu|#IPcUL&-{>7p>)%Z&z{^6`aN1WfjdM1bRx2^?Fq1fFyIWW}KH9m6o$2wzvor zmFDzfQ+$6@1nS_$lk*HdjK&YGHoEh6_3W~s{+=k(D0P$C{iw!m^cbeVtEfFoUgjf|h7N^M>_w1ZEhhI$=p-^hLiRs{~oJfDyC^vS`rv@A=N*ExIva zBk7{(^#ly}4nJ*FpOc4}$1!mhH zD|$8Sh@PWunUe+t36AcEv8)8@65+ArG)tu7M1#)L1<$A&gu~smHNE^EJkotS`7`r zLfhEWbPMH}BkQ-Vww88OVBK6R%DNtaf(C1MJXOJBMWB8n@H{+dg^| z!&8A^XN?MqZ;5P#$--Kp&Z=|Jb=tx?JW&u%LqcmeCU8})4MfX~3cGNG%!-q`&@nU@ z*=Q09I=~5B24;Q-FVYm4u> zqmt29fFRK?@siQznIN^N`B*QkHqEC`d*7mx0@U$EVhXSrLa>_RTmh>osl(o9BC)3A zk1CY#;#U9`XM3>P4Rshup6yeee@j%Jow0Hls3f?@W4TnNn;&v!$raWGW*hQAfkh>a zS#;N3YXihf8neD7F<#P`9`sT}iqkU*u*MndwY;P_dlrgs3Zz{YSiGb^I{;vvwO2AS zz@n1=BeEm2ftn1BGK5nu%4Cb~8K#Od|t#@QSl1T*JsQ z>2gB9rm*8*ef%BGi}v75o^J~ioLsOf2DsC+;ygLCMzf0_P1Mvd;=wE6&J=IM3NUTg z4?A!o=WR4O^pN>e%|@uLeWSt}FwPi5tB4){Y8(Y@M5-Zon)@pPnq zB8sOY@m5)b%Mx3tm`GI`+f2?>r5mbY8UAB~bV}`FqSQQ#Ws0rGzJ)ZNu*G+KOEhipC zx?|Bg`?fg>73|i1Lv!sL%56QyK`kv}!*@%Td}0LA2DGP(2HVF`A)aod2TeOBW*ZG$ z^qM9I3~G_F;gg9RyV!0kfFU>05$I$aI)%XWTSXYUG?Q2;6$@&9SVNz+W77#GH}ULj z-2xhyQx~=3(`d5FOmu_*j2LHg3DTjTcXFprtB*lIO3DYoCtbN43-;ve3K)63gno+v?u&-B~eK?8il@u0+*+}Dro#YGtUaW$o zi?%}lDXd~i+p8@W3YrX}n~n0xFl}6?IDJcyv76#7E*Wft7BD6NlM-N@0oGbTR8ph8 zS_kE3YHGCeCK98P#hJT-#HeI(cI}JAH4`6DRMMtwAWDo%+7zcpiBU5jTVDSqQ#3rMJ($TfJ_vM3Z_8XmVrs7h*U7uXpy>z)20-d3Ko^r zXkmaP+LXdn!4zv@s$lVw;aRjQePdI4n+mMrS)2u}-sLzz#nYedQ|Z%~$l~nOgv6+% zKT`=L)|B*Tze~qhNFeD?H5lSae-_>fmOyeZ7UfD}yre%1c4b7xi<$@{eGOypyBfIv zZ8M7sV_Sw?m_W`(3<$n0@NZeL0M;Ei>V~mjoyey|$U;#3a-w4WmQ9PAvOvDByU$I~ z8@%jrVN-^u7NEksRRv+SjTno}zA>v-!#%)`epxxXeZpdLt{k%$c~U?l_*S*W>5Q}D zop3L$+}+FWJxlDRiH=XMY8-n^W*l9QG^%pncn4!$#mOmcz$CVI)Zr4*E99iL4lwr9 zW8#z?9)i`5IkB9iLX1tXbBqn{Dq_dJ0vx>Bc6t;U7nX0H@+3l^2^PXiS36{bH6yk!}yMd{Ce-;u4J_-NQXZDhe1YCd>z9A}D- zL8cKxW-_V=@wY;HF0XOM;p}Q>n9*ol;f^JioQZ%vm4vbfen53 z=5EsP4_ctmG}v4lAR;JC2P1RLqg-vY0jB6SO}|_%v+~9+=ctsUcHIW-R@Z-ckH$59 zx{A18Gh!G+V}dEYL}Gb|akfiNl#VlpC6&&>>(?$){~3-6NwasArEcO7zqyK#z#7fH z$uWV~7t-i!TZ=4GD&VRG6qr z_q@w#Oa{@IM~^wAn1Emy)D!FW7yx`+l;dUoF+TtkfKAbXzFproUJ6OX5*rhMaZLpj z7@)v_4Ra|U<~%Au5o|I8SiI#0E4Bj7{!Rl)EN8Rh4BZafu>7j1Y2RB|Bvw)Ly%PxY>M<7cEd0~!VwWuYepKrq=j-@nF z@r@)V0@Vdr9njj*>vMO<1h63th{1dp1(lIlxkd> z&Q8>mBIIEW#z`&FHgx!bAZnkRiFqKQg07+|D9ot>^n;w8;dpm-@WCQaHpv-zor+@$ zP4a{eDBTWJsCDde#$y{gkKvr&#LghmHLHmBjWc%ks~sn!S=O}}mg_gbbmFYt5@%k4 zX=|hKByu;g^F|VN1`)Qy8`W5D+J-nMCJ(^6fiNIRcSud?4G^}zOJqy28fbb#s&B5t z=rX_AF5KK@Ng3+#m_ckuw-9hrw+4}DPK;TxNF(zwo9=-t6z#tB*LuO?oyjsT*DyfC zT3ZH;;!8vl0~;XhK;d(M`UciT0O}ividzG)wH*)@bsJbzTu~WbQBlQ#MMYZ%EM8P` zU{TSQ0gH+Xk8N;NvL@PNkr*#3Jg|6iF9BAIS__S{fKT^(fLf&b1B;55H&|2}kiB(B zV!UX1vs}hY3tfvRiBVBCf<;Bu2o^7@MmFzBR}BdkFIwJUQOU7$Zyj_af^Sh#ZL&v- zN;XiBQb<%s5HQ$qLKoWO5w;jAf!@g zCzwoMOkiSiHd55oHEaV8B1B$3`pCj1DM44Y(I-eM#z|B`U(Mvbr`(@&{)P& zmwD}QV$Z55a~#b2?)P`S#7CB>q>DM`msqDj=ofkMU~w;4j5Lmq4NP>u#4@=#BBgWq z>-@vM>6=Yi2m$4|>bU-6{Q_WkyNLjk-JV1xr?q=$Z7ZarD^d(~wn2md5f-3zw%A4N zOsFsv{KlF8Xzu)OIeU=2U(aLB*iZzdV!LHe@a~G^N`vcxF$kcm1{&9C(|!Pw#4!PA zT&GP7M8*>rm9*)dYZZ^ow<=0;7RiXqVtlg1RZ(-Zqdkmzi6M(+VVVS_LYIfh1Z@(l z4aHL6*6UjgdgTo&F<96jSTs}jg$GVAN97(6yy{HG3Gsjq7Y7dQRLpqrqpH%9&g0%46*_%aY;U=vqso0{kNUZjBYtdO; z|Cd+?(O_orfPzin>_9r$DT6zZZ|wG_lQ*DOj$QxS$NqWs0ZPo$FJccL0F#+-Hkz&Z z_ynxcc*)lfcmygZ*I?1ix^_FfESBq1D{eCjIKweM+gx>V6~Dqn2Ut@8*3dmvJnxe3 z<|$Xb<+|IYU=?Tw)U{F^u@S48-5|wPU!qGnST(eh=@uR#;4$c608<1#y8{*z_B)P` za@yfwn~i{ICZ%2qMi=+3ZAwq_vlFciNwBy0Nu-9EtrP$_vS`UfPNe&42aFhg;}UHq zI(57NMiVfB(B^Ww+T*QRQ;5(su_IP4XiBq#Q%>P5*SRETUefG%1RvUp16D1rw0#3x zYw@V99EoL7OF>-BK&}ov9_36k z6!pYOMg`Igy@y6(H8^a*swj0)xD!Vov6QuzvxvlMNL_SbhwmquWsw!V#94{0?Y$i^ znJ8Wf%-W59;Xt>&YoSSay(Lym64?3{V70{^aWAbbtxgS7j$x`Vox*zNOEo~OYL~_R*ntg_ylMu0rri0;F{HajmD&MqY0q< z!M62cJH6K8S5L1jwH3LFQ~?dF-6*uUJ5w05obw%;6V|{u!;V-pu_~;=`3^SmP+tP^ta?~9 zweB%B6qXZ@0yd1qH3h8Vn#*u)IVS>ClrHv%wL55+xJJ)6El`kzV_Aa{HGGS7v0;3x zfZGA~^wwZ#3*lxO!M)zHa*f?gj)H?Q;5Q-xP#Gvo8ifZjN~8_@wyxsDlZFjcAj{+8 z5DEa|+vTJU7Mn`wHs;vzZ0*fFWI|q@If4DYT5l+zkc_4y(Sj)CKkB z>gSts@f4Pv`58Q+9ab~bQbc}PUs}rD*|NlLT8fw^v!tbp+2KepDlI((MU*AxGgu3a z;MA|;8La0?FEoO0wW0NhLp`Z9dN@xDt0^r@UXX^t#!{gXU{Pr-wf2)(k2R#Q=p^Qb zYQZ8K`pRWP80G5I_Z7q&U%E2XNjSF$IasaIz+Gf<&E# zIgcngKu={dObmRcM#KNh4PHl?IS%V0(N4e;xV5jYgu%Y#Tbn#cGPrq*TNSj<<-ZHOL~LIMG)_L!ZP*yM@A$FE5zeGNB$mfJG$*Sj-NIQAr&ZvqPe@Bj!1Zmls@~ zt50vtfV|)}EKw?nfN%1G=geBvHN zNQ{@v?B1IrQMuH&VDXY&SLYO*M^oC=7rFx$FIjol9fj`jEh<@g7?QRqW3SL14k6+t zHCpHniSd#e&0U0k*w6q(r42uty2PlYMpGW-j7p{-on+3mX@L@W!;)@heSs1r)}pj& zff6Jp-Hd$SXn>bi<~#1~MLQDXC2e|F9}{`WAA)kUY$9 z#Tu~DC{aV6`4>%BZFpKU0oIon4g)mOE+Ke2{gyx|zJ@_lUa*3P6{-L@Oq#u7g$)%i zSwTg(hxx7VQacgP3?BjClz7Rz)e*9^Jy$t6^#H z0wwM;JKvH^&Gf0?ok1y{cI9lOHhQr9WU%8`c2L&d&zXVAb;rHzo$Z_+=wSm^Ij86z zFp`*t1PwdVffV4qUE#qZyRq`i16wp1>vWRqCSfkOtZ=rZmuIlOtJOst@AYy*Z1s?H z++yt_mL1|vWSoqz-`Mu8J}?v8l7NjgqjWR@YdT<57~>NzV59*n4p@DF(FBYbASx-- z#t?~7$(p=}p1CDufs|>(j6oWelxaUmOJcmFOpD`TqRC5fJYe$DCW~S`kk3RRn95b`x&Fo%gK`e@(mma{XuPNQ{HIXQvy%2{0V=!SAG(%$bC7#06 zNQ|Wxnc`{?ykc#vgH`6{sSe=!)kX+g<+U9bUcin6lb4)Z>^3RRrqf+6 zyK2g@r(ZJ%Mw7#PiZ5gb46va%0B1WU**B~$+Ay#z3%(f8;@EC;1=u+WbfsgXZ*c;+ zO(phe1pp()CMj&412*M`rN3!7gMT#u#N3==;zz{`F?`#y36Lc=I~8{ufbn|Y#ysYu z#JXvYWolwgfo9kQxf;s3MHH+W+*a+PLOIv(+iqB2jtnx|Oid|r>cL>4VL&9tQWjNVKqN-2`QD3Pm?qVp@l+TPiRDbU_SzXrzuL2tivJ-oDWw^D?TmGy zoGnC!0g6TFK2F#z}C0>wzdN-mkWZN6;Kc23$+F)PWVDO%9NSy_-E%OokT@=NdGXjoZP0z^7Utl$(dtIb>nb53V~fH7Y1**E(;{0Ea}zwroWi#qiO zt3bM-cgGk}6;O$TRf8LEFh$TSPehu>Sqh?8o=B{?3LdQb)bn6AtjC_fs$D(LU{w;C zMqp9VmI8~3^b0fAW@>pbo-3Eq>6IrEE8tQ9R)M;>cb%93m8-+M2uxzqt=~IvAhF^u z49t^Vok*CneGS%3?M*U*VEpFeoqTIf-}`8Hx4iq01SFPIvkA*3rVy90^@wk3DNNJDswlDxm5>ZLf+#p(F%&Qz1v1DRxC=`bvqt(9X z%)U(oi)S#g;?B)wsUmgVj>62M%ytGQrptKeTw*R0tVHEh$mrO<*?*Y&(lpe3QL(n6 zXe6A|wxMv$d8|j%*pC70!%R0(ArlL;if~O&$Q-dAmfTn>4~ClxZYB=?gqiCui0Nn4d;u<3?@YLRmFLxB%qiihWZB%S40G%nww(xTCmJnThEY(>x%gJvdU4<3OFcZp22Q2Y&j^>&xPzm5Hq~l0b=>YoXd}r!N#UC43xx=Ee zF-W2|5kAVkIUDg`Zo&d2-BW0I^kl+Ez4_*@9ABfvdaM#mDye&XjZx7V$F-OVi!hC- zsBpnb)J_JgxXK^rqztC+@k1&XcWzKgtU35Ni?EyzXrNIP9nlj@1lUI%UH5BTBx(=d zl1FjOA?-?$*;!BK58jLYqVpP_=q#V;~+DyY6-ge~3z^Z4p2u zMkRe_kOGCXaJ%*e7L~MH4<3z~UwSS)>x-%u&g(E>elaTGWs#Zi&QrNsSh_L}D$5)m(TN8(bpaM|Qt~X` zOI&90xR?;qF%M8fqb;Oad;s_RmJ@?zoyyFn?Zd_dE9)9f_%vAnj%2`O4VaVw>oLIk z9Z&%WCjO|(InFpp@mo&{axdQE1+9Wjka(^n-P#By&0+(=#wWc`7L1V<7#O<@f{BMg zP@<}mK@g_o84G2xS8xLKO|ddEqN3hqWK39q4L2g2CJEvKOe~Zi*N4QCF3MD5h20Zc zR)MNbhRZsR8muo*23e}z-2`z6eM>y8 zu;_P1=apz`(09T6Lrt01_X6q|rp>VoI!7cUIfJf%Iy#KO4_uD z2i`c@00UHQreCihkr)--gkVugn-=zj&jPVhJZ)O^6Ii@B2En3|HtlI765}OpS_}sV zKk(wtjrboqB3xU66g&kMm3$BdPm!oV9J^Gz2{aHB>Cd93c;~v}>CYla zNUV5{i6T!(jEOb}`T(Js{w$&jOo0?p1s0X`=UtxeF(kglOZv0Gs-C`prkbeVdE=a- zY2n3qFkO!*MF)HKAX#W1-*lWYPMok9(M#;HUrZY~Ba3cO!uTqXM)6mm_@+5R7K?X% zg+bt)?u{ZwhUL(m}BV;8^C4&VEqoLfa3)$Dy|5G zo|na;0k+-*tbMr4*LF+6m<19M^pOcDSp8d$FYCOW`6hdsrF44}S&2^moF6lc*^Bvw4dS-cZNuo<4> zEJ};SsAPtE@e7(M&R#(Ri;3K)UZE#TinCBZu&AUsITw(#?9ZM*B1>(^{w$)3rxt3; zR!V55F^i}IOA={Jo%YKTl{97%Rm62fCB<1F7l|>E;`Fx%DDHp;NTrA>t|KefBC76k zGC;8wQ3WP1MO1+)kRqyh)CeK6m@3Yy_J-&&TEwj* z^&qOQZ*J~L44YiYqS-`Zn3I`EoU&+?az@Y$Q19|B(#;i5*`VSklv_QB2Pcf$jUWYD z1lBC}-a44}Ct%+=Y1mAC^F}u34da1GhgCqtf}e5$vL_!$Xz~)Zs0e>RI!m;iq48jv zXC&UY%DJ8Hl?t+`1Hdeo8OhC}=_(E{N>t5r%n?@eu(QpgaJi8brj5v@!3l`~3k#r) zhjlK-kBlh@H0Kht>QUu3r5ls1BNorM!q4R$78REj5@oQ>H8-I8rWr{M3f`rk8X~Rv z0;Z_BHzZB>VPnGL?Kg-nP)ePgQ=i4Rkw^{9pVVg|egxz+QPZLxOF#CO^(dZLi|Xi_I+!jrbP?!V;yOV zr9}(zBQYvzQNo`ro)#^Fjtg+{k`^t*k3=L$MQPFALIOiBON>h9XAxEWs6kXRKZ~d$ zF)At3BC1G?O3Ji|DiUi^%GA?CDoUB^QyW%O(xQb@k(fZzqMTiiL6_+P1yU##n4P2d zZQo=06WtiG52mw5`HYgu#X9NV-sU3=V2%H=N?jn8E2fVt`eI({)(@V*;n^W@91exSj1d z;w)$w!6{B=d|MXJ%EtU3FT{7R$Jp9!NMS~-a~ON;aKgbRat57=_g0W*D~XlE^fQaA z3nMX1>zn~uai;|_TazbYER!|Evz(53FqtSil2N)I1FYXEAeDaCk1=a;Ps#YEDFxUV zWb0Z1jVG{jDr+{!(R4Z?_-M8P>(!QiGmN1=adNM0(gCb*0Pr`U;0p)hgkAX;4uk}0 z5c1ce#n&g6&S8;|m~KIiL+mNQ!G>45bqVA27sKEOl`m^=Uz8DR3jf?l@+);F2e15wEc#qR7|R5C)b*-DH` z>Jzia#MCGDM_9b1J{{K7korVfl_e^vPn3X(`9hh0VNpqM_QGO6lLE1f(1I)5HjtPR zT5u&;#oM;$u_7^nv~4fc5?To)Cuk9uB*sL8r@+g0BvjPyy{Kd`n^G7i9N82jBzA}( zmF_fyDb_+X!Q`bI&R|hVeHO6EcE~O+U=z$1c^(bvoS@x>22-rfWdvc1n$loVNqu%* zx}6MEGD5pN4HlJ*(5_M=&RUfEEEbf+nv&jBX)tz|2++o0?1pWalDIJl&`!dYR-*f; zDKfulx^Zx}a)3=4yn=_VI2YUD<^2bZLd+b5OIms_0~3egW+7k|@NF|2S7t=4j$=3E z$O&#L)wm2W=N;cHZh!=dj(m8qKrTP*DT(z1IyfP%h&o2Ih)JA-a?AGJ#2EAxl`Pu4 z06D|rEK4<|=WkDgVKEQGU))c_11*{yP za_P-3A&^+{^k%CcPKJu7H~U3j5-XnB*&_lZ#zbakZwa7|Vj{g+_%n$yk>2caC=%C9 zKvdei>v$qDy;;08SWU_7Y$Yaff&@e*v(vB@5;HqnrNL@ZW@q;zNUTMfoxM*$V!UK_ z_F4hDv=(J{_Gkf#wJ7UT=L^-QK6`c#Oz9RPdvEXq<9L$ zc5!9|SX8n;3!f#?78O1Vrd+Z@z~UwKSxhbKK~z$oz3)O|R8pUuZ%oJq+5)1I^;y_0 z%SlwSK8wEHVFKl_3-%4mV+{kWMS#9J>TvF_20)33uBAls~Z~7d-MvP^TidG$V1>9-#-l$Bt*;%5+z2*Wo zl{Zkilw&VPGFqEsooW^qPU1QT2U2q^HCl9dUZs6gN*V58QAwNjsw9a~$^7g&NzAKt z0HETjQDe}Sxc&pI-vJfR{M4sKVrsOfCc&bT8tth`5~GqDEz}%4uBN0$3pFP(UQ(ky zJV|0rNsaoBE7fL&>c0nbssWJau&88(7KTn@RI)+~LnpBoWrg-@C)kux$qMcES1vI~ zr$2k`5p2cvld-+f`UI?W?y`Z&1F%^E7!QES12CxqBvRNqChR5$ASzCGu&Ag$!J?x2 z1dEC~0MmC;#q^y70DW`RVC+_{st23bY74N%ktfX_zQE?~n|lJRT)r__n?Icz&?n9V z)+4{UPp4}x(WzPRCOs79X#<@>!!T2uBO1hD8h|8Pyoeog(&!nq2cptM?eKuGNjYov zB$Cs%w-|!0B0O6w-UB26r!9%(1anH`y+T-o47x8Ru>!V;eZ4t*tsPg`n4rL_m^1^JqG5iDkw4sHCdV~MPPtcTzdel z;wmt(imSlb^*LzWi$FyM28an27+6fGz`&fvy-x;K!y5VpO!Ag2Qi7NY3=l6(dzP-g zMMcAdEK(^9gsrEND5f%xHjeWYSuvGhQYo|&%oY_e!X&mug;s*eOW`A6@=_EDSX5GE zg;tUnFDbHKvB3`?6-^tksAva*MMYZyEMDqxU&@Agx6y#8q#O&$BvI)Wk_o0<3dsbE zm&Oa%6DPVNGXeHdk(ppoan%KL=y%S;tbknx%?v<*IuhrZS=`a=8*SK_hbF)?0p?GM zqe-I53J)=D08`C$}f*^Bj1jscgs(V_*~Y5(AU?h(t?c3tHn3S{1Mf*gngN z@40WP0yM$Ok=VCmOk!NaSQENFMR1b4cQA{4AA&?xE5?$=+sosSo?2p!DbdBENNNh` z_r-53^UiE?s(K(s7lC8Ji-(ee3fDI)8tsU5S z23&y+NHpc97$BNzHL$X{=BHuF;wS~|8{@Lcp&7_B+eFnG1RF8Hm;f}zvlP)pNIHBPK}(HaDciq;@lyrfLAYAlz^Dw+|u zg1i)Dh<8Cg3nawJAhBWw!DOPh&cI}%m_hsyk}hTtOi2_h2)14UL^?qhX@%n=nu(`K zE1dXMTic7DB5K*D6aWPl*BY-lJSvdxFV=~~>T}l*R)MsAzyF4ZBtBE~1v!yu&f=N4 z87}Fzl3;yHPZz9&9x6))XB$gwH3d>Y5?EPM!UZIes9bu~2~2hiNCK-OM=J-AD1rT^ zSX5HGZ9zMn+-O|^43$+2SOL!N!kR!u^w9)zvhmd{0BphnN_5`RpeY?d-&6u@pI1AZ z-6f)K16m^-PpklE-?U+1#IX0J(mfxd6{bo6D+i$8u^X(9XoZ!-0Hg*IWr;*OXV?<) z`B=`GLt=(w*T0EtSVe$nI&28Cu|9u%o^My5enhYes2q7rX6%wE=#C7QV#Tu&IoDqn z^!|X$J0PRWr4h^xDF8m1(XM8Ibt>@}_CxRAft6V2_?#VCoZ$d+k}kk2X+T6&;xcj zf-FG)`%PWWrR?Rz#9tqw%10V!>srem>d(8=~iqe?5bxEwERAt^>{G4%?s_dOG5-Xm;S@009(5g+_NGuqCW`ip6`w@ZzEfsJ?nrrw`xsLIZ4OkNbd?v)=3} zBhHv>QEOuX4kTXAn5Z{>y&KZ4ab5}rtB+Wr6;EqGF$sLDMJ)vdBj9hYDXjZ7(?1et9>-{ZW@1Ndb6xG^nC32cKFkY$y_tB?&6)q{YIc@7Jyc7PTEj@Y;!Ru<=9 zQ4b_$V{(FQ7Bvx9!dINZGh)1SvEqcQ4+AtsH-y1d#;m&Inoy$k1E~`TAWVCSDZO$u zVIl`Bi?fj_z79YmOlF;RElZfopl4Rha`!cWbtaC5h`6j^T2`Ghp0}pMVOada}7mtU&rb3!Fn78O#C)t9Ys>L!3kz%pM1eN~TRwE_fxP z(*Ck27ZPJ4yE7x5Ct_+}JIai7605e=rN99at0*JA-~f)7CUQU`$Pmv?;>;-~T2Gk$ z=4?GF9Dpn}B@4V~l{ln|rIZvw36{%qQ2+p0sxMuovkxXxQXKSIp!I}^3HF&z40I;3yr|v3{o1Fl*>MAFP}Wh7R)CZ!3@v@)@RUJ0lrl zm>mZCAb1kNCTqat378-O>S7#EV;3-DfVCE|W&&0%u_V%TVP3omO~ImZWySU-=X-y? zh%L*c!|co9ShP8FarptO6+m@>&B=ihvkm_ymN9G(DMMc`Z!gD z=>flaum`4I=d5tG111RKwI!|p9W3*z-{RqPaNjr_u|ECbU>#(1NgZq~ab#G|*&TSM zrnv@IJ8J~}2FQKf&y8_NSWcPebkG9*iVg>XGDxfjpq+lBm$g%fDIl11pv+pzy=-H*e|gx>SDgF+i3~4102?1<#e#}{DfF48U0M{ z)6bT>Yq)NUI8Mw{Rb&aHbesWb^nfG3SQ0wbsZuNn*oXlT$Uxy(~R9+i}vV;(B$xK8Q8qLPm5 zl%B)(c*!0^*pg1wA%n15)DFEvcMcy)OpkTwPNL21w4K8WyRq|iFbj0P4kj<1uY=j5 z&e!oG+D9mz)ouXWfV_0R4yIDyQ6Tlf0qI}S&p(z@3#-;o%VhLpe1!U4C39lRL^ z6JV+!ycuEIcqGC+-zHDaz||q#!J*pS!7;JWI&R%i?T))woCBAAx_0wg4aD|s0s%~{T=JQ$ z0VO(_iCLO>P}Gsu-lTXmr&##r_+;{1PQ8mC+~o)mO~*A@R9x^Vu=epRPQWpUTh;;% zOnv~$8XB0WNO|cEzJ4xbkyd4Ko#h3N4F-Tz>RWsi*3kKEPsNj^HWZ49$-Q!zmdnW- zJ2Zs|%uPdVyBTByVi{yCRm!ZW2Oc)DzTzXm zS?Ck1pbaZRfmgJoS!@BXXie4((^U&NY@~^K85O_^0Gb_Xz9K$I9BIH>3y4a3uuTNR zEGp^2&eut7rltowUnemt>A}v|NsO2DV0)0(D(XuQcFYbIFX_QHG$hud^k6@A&vd9o z>A{ZKNo=O32Rmjbu@;?_(t{ndqk*E59&CR@VpP(D9kaLE!)|)8V|FxGa!C(%%uZr* zNe_0+PGWM&NA*#gf{xiqOfD(TPTNULF76G!H<%bDx&{G81TaW0AmF(u>eK{FjjaCa18=P#d!c06_qJiR8*#5QBj$KMa7|uNfZ^8DWkN}owCW7 zf*m(vJh!!S*cN8#eiYwK%;ABlr4{QO6P5DqY2!NSkteUMe(3kF5@CAjl@VdRWzD8Cdg#yH8Zek zXma#peyHh)H7oi(c@mu!y=?|o8`|^qE0aW0RA0lo-xXo+5wV7KubGh;vBq<6n~`Yo zet3`23!CY|*oLFz09FHF z0s%Cx?HpE>)c`1`V#OvY(E*KVQgJl`7E0f=jKHc$jR1Bzt4NJN;@S=vpIA2I6A%?e z2No4Y2No422o}3a5KJohMzD{hl03nrk|4pPQkV;vRQe%9u&AUG5;9iSdIb=bR6-BP zk!Xt&IatNh1^s3W)>&DSEjsrm0oj6qEsFnh(bSQ@Pb4v32S3@j?HJYezStOAP{Cl^?}Xn|vd zM#VV>78U0h*r+gCmj$qIfN=&GO?K^lYe7$RBv!5^JZBjDsB)$*5)X+HYeh~jn2}Y~ zmZXym5}TAQzCA=toPRl6Zfi7&(M*-pKK5`KE%%Y| zbNc;6Ow;j#Dz{k#mV@B3V+(L*Ax;bB?jG^i9@GpuiuOD*|@eF z!5Y_Tz8*1TbF~@(;{~v00xFlTizVWl)pflb2UbPty1JjlsHE%q?MM>Wc7U}v7}&*4 zSOBTiOfc1Ufly%b(m(-|O7G9HLy(tzwqQ|7*Yz45i51W8@m2-(rRy3?_+(eDlsal$_5{M)|!&4B&^$K z;(co~(uzP9YrhFw3}C13``L~0(sBF1Y5+J9*j9v%K@vwAFk&6W4~$(vRMG_n>XBHv zlt2-BZ1Be}pmHgJBJ@bC_LM+xCz2SIlz{j9DV`GOr8=-`&w45#ip1KGN+=+T#M+Qb z=%qTm4Dpgm;8&1jFqKe16j_o))>8pdBqoUzL@(9htB9AZrvjo#jF;9bZ^ zt*^BTGb1c2DV>frxnB^KRxTFDa@L}(bPRM8(@Utiuv(Or&ZV;wYf)BuPv78Lk(V}_ zcv$46m+HWzg5Fqh=2bu{#deV>FTGU9DX+ZrRt}iFv?T?LN*niHsv~hNVhc3VY}fW%(j=2Pl?$8lvM3jJxn*(Pgya}xF0TMa z?15E_4p=$BY6px@u0pPMHU(kUfVmqLD*{^$7{AMjN?vhPa+oXZx5&Um7e%nLI8X=> z8!^Jg)nnIRUgqp8_V}b(X1yFtJ zEMm0AL}6S26$I;oHN4ZJW+hON6<=5u1vqD44S>}S52HfZ&=LVlBzkDP08GpkODxe^ z1Q<=geH%@%aR#t>=P~m`o2Xbh6|bBsXistYP31u#>3Wj|-DaL)mX`xp|9Am3=5r+# zx`?aMZ(XGX8-svyra!w_N#fWAj9tL^1dKsEl~GB57WqhGR8phGL6R7iv}tjWBt|7Z zi-Y83FkX)9v}xgxe2YrjwA*teMkQ_9OLcfnqmnl5r8*KPIzUu1u!^4~F)A5Yy;R50 zjY`_IJ9s2UC2d-yC5g!;ZQ4t9oNlgH08vSs7L!S0RMMuown>ai+O(JI@byL|pGPm% zk+{JJh)UYD=uHx%k~YmVj;lB-Y14u@NsLO`v{+6O>uIMNm~!dCIu2^3l1ClPp4RF@ zBd1NfM+hdB9;^e4O4^i}H|Cjn0jXfh4a2kwlvt1DV#70J$8~awXQ<(wkn^UIXp3^A zflU&Ow$%p^ONleumXoMkzctDkdu4I3b4)*8h{&Cg0b_~8F~LZzoVA0kwS0@FTT8GC z*f~6;ICdGc66<~?Scz&4u%kIiP~dWwXovIiq7`*)!LXK>E_H+TO|f!H5*4Q}-)tD+ zjgofuGgV};SU_e)-|PUe3MgcVUCwAaUXZ|HwxQ>`caz%-^`Se;Yg9rCwa@jOga+3oosibu?;&9`c=|BCLRr(~jN z8z$q3F+Nuguy24>3z(Du6Axg-2oI=08`J`qNgNY^sAP>6xJ+VH(xwG2b7B*fv}x}n za&S}anRf+ha?}&^RS?JxAOq7D$4dQ zsFL%kSZcNC6obSn%INMXDW1!&4XK$9I!LUUEev-bw}49yyJE1Vpy#4UtU&!x_$7(T z)1zyo)FA2?A;D@`>ZxE%5^GpmzXzhY+*^HV{T_%SF$t#bZ$1={#gthy0TTfuIgou; zKpctc5H8@C#o5@~GJGr1HIAWQ&L&B*S}au+Py}SDfFp|)Yn*YlKy}e846IQT59-Ws zojtQ+$yvc0ELCA@Q*7Y1VLwtNPy`Dz1!JqWZ|qjb1Yo4`KbPpL2IjX`8L&~o>$>7Z z>8v8$(Bqn4MITFin~?F(_RZl&;<|(2puRa_!LC5XH8Lny4KmN}I81v2XSNI$S&f%B zCX^EXZgVz|_+}fLc$70|GXU4G)iyBkciX;(A_4r?kRHTyTsb#|e7kbCAq9v7xoVyE zM9WtonHA8;FAvE}L5uj9El`*u&gH&om|-7Fng-&&SpY_rc zSmn}ZT~HxBF6NVUy+Y!;io^7{PD}MT6NyPFEmasMiB}+Y(^5@)BJUDbma4ZwAf2V! zZ>fSMvvgLvfW!N0PiGaPNn&kCbrqsXVr_4rv}qzSURt?|)FcuhUK%e&YLZxs8aCX@ zx9vAORgwT5|fLAh&Z6+l3iC6D2efs#w@^%#CU1n zUlb^b@sj@JrjRX4jr!~Z(#?xn6ew6!@}l-u6Nyntn-&GijgMNCHZ9nW#9Gw8zbH@= zYf=0DqCkmdikJ5N#p97!PiF}B%p!^Pbo+h+KW#(Wlz7arcuAWQIaXr4q)myzDluMe zm^$OQwy?#h9UG;3m*eMI6&112TDl||_?ZPzO-n`KefU=_EStfggDVdN- zjF=Wgual5yudus{iTKRz!(MBN>^cJyWAnLc0VBq<-fJy}F^Md!=})g#;;&Yo0E^cv zywfoZu-*i$IAFv8;~KDL0-ULMfx=cTiOvq9aKzH4MK^OY8I`mtQ7UDLO4`)JOQ@tx zJ;MY`o3{ReMI~+Oz+9H7q)m$@B{5#orp1zSNw^lJO*uJ|2{%-Hi%QzGx0*x=q)l6BNvuU_Q@o9mPMfwQ6AzhO(xw>_B-Wy|X|bdv#!K3?SW*(>C2d+PDJQ(~ zk{7jDQWE1OZCWfTiS<$16iZ$PbMRqchs8@9>7H!DJs&UGrVTI><0ada1<>MY(_%>p z^h~;G(_%?UOfG5DVo5o#h?le}JtwiWX|beaS&P_Nt|Gvwum=rm2pRX^UDgy< zm%t?|EY_M8XRR57glmrqU`(*qOiEluGqD{JOAd*gU2XIXz{>zs2JRcxf^DD-P<)^Q z(^8y(Z8`xq^ao_3$NgC^t+tp_ZcR+&te0cyVga~3F?NY&UrzRf`^K*bEGMo6zqQ?A zZxH5ch*fV+CCItm2Fd{C2IN|AFW4k8unyql#`YN_xI~-j55j`2!v}1Uk(9%1m~nt$ z>&*e%Zsgyvs@-ZhESg&lQKA$1fHV#H8)k9OorYP?V|cKMXP^SpFT*O3kd5wJV&&>a zEmaa{Q4dsZ(j8_SJj@5%AR6df{qCElOWZgs#A1LN2G%)%wdkXz3~r{aHOt`UVfQVG zt-F_)RA!kDt7~c`O)#;xQh8WZYO9gNl&h^iB{nQ7vrNIJO9$$Bw$PJPlW^p4&z!JGpCBv-2;8C!|gWJs-YOV2}e5+xG zQ!b~?^e2gj#Zt01xN?bAn{*AXBr&lXV>!%b8n80V_FZsgP6|wI5;+P=d*&YigFzCt zXt{Sq8^B!TNxW~6##LoG0DU{m*7oK)SXr_yI_+Q$95F!OG8KA|fQ7Md?l19d)987E z#vs6NT@7NL>zg}!u)b+G5{x?ru}qNQV&=rMwXr@JHq;)m&OTUr&EjQ#zO`n1oeC_P zJs!Y%jL1pM?b7KAZZj*oMMCfVHqOh*mcRk6OB55d!RMAGh+@v%@cZrS9*u?`?xv0!gAxjN2ylPlfW~dB{ zmnO3@S4)gali9FO5?k5~`y3XP7CK`amKZNBbcTH{QC@Ue5Hr(yXV~X3sTj^ROkNE8 z9Hv|h`y3XP76!d2B(^XZ@iojA8T~m-UfgC5vqeUKg0(Oh{W;9RVD#s(sI)K`{kg<= zNlO_wMq*mZJ?pTjv@p15U1BY2Veo0NCB{n&gAqI=rmPI>8J1j9R&IxvSc_U1j6hyu za%o{O`jf;om=ktbElO1y9JIt*w1t6l-L1X@5Ccre1I&&A8a4n+0}vaaVFR!<0I`9n zOv!;w$OBQCkcUNOLLL^CEd|4(G9eF(%7hFyH98QL33*slCgfpJ*=jK?Dibo;R^NfB zZ1o)$l?i!RR3_wMQQ7)1EGiQ+*rxqJRHjCUMP))B7L^HkSX8DUz_ybah{_h>VNuyy zJS-~HA;Y3F4K^$)QxITN5Cc(}f*2N+S;E7jG6gX#DqG6IrXU8QGF>+;DpL@{qA~?B zEGknF!=kdS2-p`-bY=~c ziZQOkY?0n5uj}c<3RzOr#tzc16wSq-O)e06B zRV&tRyr^2iqM~XAi;AihEGnv2u&Ah7yBi5Fs#ZW$RIOl9QMH0aMb!!x6;&%o9`T}T z1&fNR6)Y;MRt15Kq)m;ZBQb5NXL?vv(x!NXB$hTc z;%-@@k~U?hVwSWiA>?6EIq{@T*#z~i7Nt$uwk{D&72V@} z%QU@HKSKhS7?rfCzdf?VsH9ExnJ>{68AS`0&%!9$VNpq&>T+LVR5DEsGhAX+(xyft zl9)EtD?h9jrA>{ZU1BXtn;Jz+V%pSGj$z3qZR(?1VW( zg<0j&4}e_)TGjyrj&glr!)WvX><&=T0F54yijIY0QAxMzW*{-$>h;%QQAxMzAX{Qo z(ycnkNKCitr5L7$)?GF%D(O}|7)y*wx>XMbiRo5v$qb81x>d*85^GVqRVT+1)$_X9 zz|yTcGKNJZ-Rc&7iBUeg6dRMM@!Dnz1YDQM%QA?Go#wbgTQ?CDupjR`<0erd!?D4okY}R`<0_OuFe-?+cNbZgpQftQMtP z-=$mK*X~=qq+8wBF0o0{`fgnJhG}!G&6085OKgs%O^xebV#U*@M(vWAHuXGf7)=>K ztOHR=n;O@>#HeJO8rMx?wkZ*GmP?x&*S&91Nt+tiO=7CjFm14Q<3_Tfu~KV>O%GF9 z86gdpMdk}mV5tkk+lC>}0oz~*8(8~Of8}Xd-t)x=g34;aYO+Tl6FunM$j_^t(sEgA;5 z4vVvv34`mFXgM8ptN<+&#@G#$GlN@)S=>iOhgGhH!4N$XGqa6&9p(tpl{d_W>B^%$ zt^N94hBeAt`;7xxV)HiL>UG;CHgD6d`d#?NnRKgumtk-{;EdDnG7RPioN@YHhS3H< zx>di+FnQ7MGAt_TR{btZj7qvyzYB@!R{bu+qLSUJ-(`umNWaUlsH9udi+5|xX$Zo$&6`dx-aCEe<++a*RN-RiB|B}OIP%A-$;C*7*wg)He- z{Vv0zl5W-Svc#yQTixc8m~M5OJFGrRx4O+;Vttfub(_1y`Y7G%HkZV7tJ~aR^-;Rj zZSE42Zo1WNE{W+@x4FZTOFly*vKglB_zV*rMwWplLNM%JoauqBUq?>)1^%=lAEGikLhOCm9{b{V~u(Gsh7^J$y zYN$7j2Pd($!ywgRmCMvLs&0u&-k@Kw))hnThB+8~`)rsZ@aIT}F5l5W)vv&4AG zCt#G~64gYyVZhR@x?zSzCEcnUW{FWrx9WyjVpQ@8=!PLNpMY+dVMi%LELH@!==kBrJ17L|0Xn_d#rt!{dUMJ3(prgw=^Nw<1`b&2&+ zy46iDiRo51y~FCGbgP@*B{o_!Ck_t!QNR5*zbrA|tCw z%qB9VdKmH?sD`UO^<+pj-_laPdOM819Y7KTm1~o25cLwPHf4o--<&Bc9PDASo3g?= zU1IH<9RiiCCp=)o@MHz79Vb$lRB+>jNd-qrm{iy*ilxZdx`johO*Y$}5~GqnGh~%& zH&+It(gKE&Vqyyz_CZ)w(sit@CB{oCkLhn>nvby`R=IT69Yq>mx`>!+PjwkyN@Cj& z!%K%nrSW2T=@P5G5n?1MiS0Cu9UXRAVlY$M*wMW;PPLq(ZWjVrkFl_Bpe*VSuwhD; z0a^rT?bj(Ytl8hbN~g>cE0=CHYH*2B*?0j_e;wXm2|64ndOX1x>ctP z$Gq9Cc*R#vr_6v^cuBYFlv!fDq+4~$keF`ODKjiy(ycmWmKZPTR-H0SjF)t)P8kx@tvY3f z#Y_HHoia;IF8N!%+Pp;j=$tZMZ6-0FfLq{UwJ5vQE$|X+QM%PFFo_$O1I(j=T9j^e z3%tZyly3D>>k?~Gy49=AByPt?tm*n_V51cPF9T2+fQbRx0N5-ZD9cU=!6w#$icg-y zkitbsf;fE~M4Sw+(SWfFpuoPtC+?c{CQ(tF2qccdfpSiH;Jlfhz7vE4vh4cy@6+p<){nBV=d73V_k%CX0WU23r3iN#z8 z0OD-@PN;!7FOeCOMq&SB}}(*#u~L6(BY$Ur+M9T zhrQ|KfqlcaS$&x*)HgLlaKS3V3A0H#Fq#0rshYty#|ErO{Ry^a0yaVhC{Am2z5`Yt zr>P?iSi=g98StAwCNgXl5hOe+fYksPX~0?wu(;Q$hFRQ@c7vstWj2B>cU&H(9FFJup+_JOEmw|WtAiBZXJ_3Hf+qmpj*>OG0aQo2>|&l2M$-Rjl* zCB{p-RnHJEl60$A?}y2YSMP^O#jE$jY>_^sVe(=qHdtp_I+lh-CA-y&&P%jKUUVKN zFJ5#8%Wm~)q+!a%i_XK8uFk4qQAxMzx>{nqq+9i1k(h4vEu~>maXNuTrL!!rL@!HJ z@(JkcA~BzUF0Wxx$!^u{g#*T4Hj^ZuK{I zNKCitMjMuNvs>||{rL4CzPf*Z{OPaE%n#rE=^uaj<)@Fo{_)RW{qV!)+55L2zy9h6 zmB{k*U#h_!yZ^2+gbeM!>W8;)_uqNaaO3!2NezSJyrMlKu~O z_(%Fb;vyWS|F7tGANv0&epjA#D82~OHxD^R_x}?o3dH}<)Mn$-|Dl6=>i^JTN3#F- zGTe**@4WlPx;pf}M!O$=d0qaFzmq^`;IH!8LHKKBr{$T}=HHlRQu}{Z?Kkr5nG1?x z>8`+pF7N*i6*k%ZAD+1!>i^flTrb)G-S_h3bN{C<0#^Dz?IMcL|F2I7S>OM)jX4>S zP`Z+n5x;B#5f$tg!e*c~ubl*Z4;__iGYYo>t0Kc~=7cNfCJ836f+#cwSJwmcTb*2> z4BxK4@rXN1Dx9FMcJ@;;<}t*Ki^FKyjEk^M3ov=%bYL}L0rYK3bt+QKdp}H$TCUrU zSN9W&t}^ah-8ZS=n6;eSGL{UxlNEVqj>=41uv$cfR1-m-}6n)0@q$Ek{r9j1zKIeZIQ1cf3}P zYcaHepeJc!Lv5tuX7Agy)Yjm`mJ`b%Y)d3|j+_y12A@Pb^-Wzuxab38w(OMy%Xz8? z7EMp}2qm=*M5ZBK=E>#U7~D!;xs3_1I5P~8<~b&aOxs)|JZm{2so{gsXC2@g3g9Um za7baxG@|yMrVO`tz_q*Z(_0t#R5#yGIf5gW;g9^YiNQ}vVnjNTi5)wBruz8asDa*$ zjN!@-d?o>Sy~UZP79uxG@4KEy4luu0F8j{#;UqJ~1U}&pzxL^P1Wze(IJz|){K21B z+&KdMaQty2Z{IoejbHE3a+M&-Q(hAnFSybkzV@Q~ue^`2vph9_Xo&5>d1tS30IR{g zAGVS{jIBI=uKTXH2t4gJMkhb;%{#iS!AHV_CV@ztZV7P zuHSD?a~3=mwoO9(u&dlcjx|+zbm`iINm6+Z82wJN^e`_*k9|SkF$&jSHVE|x{`lob zMb^Hq?`-Yn2pTn?!;MC7Ksq2YX)3-gS%JY+MewjPJffXl?^wp=0Eu5 z&*Vp4UH(jYws-aq`L)zp25cYr<|Fj7AHg^Oz|*dHmS$bf3*~&k#k8&6+)=d$LxS-% zzf|olENu>|zGKV!ojY{4ALD}dvTtu)+4K0L4{rYqhad3w_WyADZ@A+ZT+bI?fJc2> ziuiu*=lklzFHn1lf*#J+r~JLL4u0)pc+r2mked9!#~<6FNBNC6@bm-Id%Ga;5BJ?8 zJ)R3XBa`7~c?dc_-~62jo@=51|I^I>``>=W^YJ$Oo*6aI+rWk@s-7NTHJxG~fZp`+ z#J~~1wQCcDZPP{;r!XUKBNwm&(=uf6|MS!A|I%|4ILyp$lAx~7fufsR04fjI{i{JR@pSCW;{GS}!p>`W!> z8~FzyG3H`GKi19}P*GO1^#&7*BK(C_{vrkbQV)MA)rBJd!UblV>6(7t@xgQ>51WA# z(-=k{_;+j@W5Hi4n82v{mw*2J^Kbi$fj`pT9O7OT{PI^ZD@G23_I1OOzx@A8Yoyd< z?TO^XIzk>HqsG=)&tUocJ2hr16@SwjpwA4-vcBoc_}E{MYFJ!WyXPQ`7&)0bhqE_7MYtIKf%mB;{(8>Ws zx0!}S258Cvj1D*poUp^bXf#kDb?=GnFp3YzgeS7YWWp0!u&Jein3(l5EGBeXgGFVI zkbSc$p2!ZXDeGJ?-P?eute2PQWM}COi^_Uy-#)Y3$?8H4sQgCF5^KxO3&1wZ2WrbU z@5AC^=LN&!Vv1{6ROa#+7L`pIuo+SVQQ5X=SX5lp!J;ztv~N*yK}T;xA7HuYz<@R~5Nnr7ET6mLa zS)$Ua$5rkndIC2fm8@|vTjUAczR8OYjbT#p1a4SV+(qF^ii(R4SXA0!dgwxd&82~; zxEleBihBcAzo@vA0E>zz6=3n=Neoz2b^-@Ywh|1>D5~1>`!S(s+ z5Zc56xG4q1_$JO0tFj?#tmzVKenZq)(O^3yJL)2K)CD#0gs5=W1 z8=@Yx4U3nCs0SHKOo$E9&Q?fFhz(H>GRS$RV?)$~j3vfPL)3$eCB{ob)PoEX8=@{Y z!{VhO>Osa5OsaZrK=@0Oe(J2!{o(-jA2T*jXq|JedIv~ z-x{L6*g7mK4N(s=mMAYCWPmk9b*K%qMIK}fQ!XB446~1|DY4&Kyscc%B)JDPfqy`SkjGdhcXW5#=#UdQw@rcMek zV)7#bSP3&=e4y>~=Sn%ff0>VQ3y_;b?_GLw>77e&T>5g1w=F%y^rof1KIkn=UyJdE zrMq>F6T_>NU&`nIVt!5vHmW-DW`FDdH%Yj$;ol8zZ;X+$vFRNx z{%&M?LyPMdQc#U~J&P16sKdOQMT%urU<6yQtm=zE=>6aI)e{2#Z&@{$+jvqetJ)%F z()^p81Ty-U>G0o^JhdnjRU!L*Yg8ucLGO2Q!cvO7sS0z*dBY1|ffRJH`7#VC=69L) zZWk$*b!X~(F$ z9EwqNiO>hQN#jJ&MB)^d=yQ2|)454b+P(r*HbDJk(N#e?sdy)pvrXM501J2(m7Ep8 z)v~<=~1B>&p?@9I*z+XO$!$-gM z05(@x_(rVET#2lvGC`c?SR!6QKHG2YHv+iCiEA@E4xdP;!wT$zN}EUbXQ5M_oSW!~_71hNHgrypw=#}^~U z3lGb}d#7V*;kPi+Gs1x6*{_PzJ8KH^nXFl)hAn;xzyS%xImMhGk)y_~T!3LLwL8tA z4a$=nQ)_g`CQz{hxEnrsveHwIWq9i!mDX`uC=i~aOKZYnnA&z-;V{1r z*e|?{T@Ef+oCmB|JA=UXc@W8S2LxXs$CBFEE4})}P)V%DlgCO2yn9q}^2Ngll_QW`>S_a*MhBgh8nS+S9 zJloKZ5)hBIrtl{1Y9Km%ETII(Cu4TyIHOs8%;J4xWKCE^ZLVAw#|eRTs`28`I$$A+ zfWpg|4$2ej$rgF%iGCkxjvXf@G=sH6+7>l)xWr{Y7#2yu+DutOksQ06Ppu-nxZ`tG z08l<_ErAH@eg@roDrBu?`r3wOBav>)!exXd z;!_@H+};@AiTZsb?q@7v#jTl~Fs*h3Ghs1G$wKXG5n$yw1GjGp0GQ;tb4?avH`T3- zuT_MUH+nd(oUCc*Nb~xzH5iLWaP!*E!z>$-3~wha_a(;*fpUO#{{UttEFqO~hV^Y9 z#mf|#ZTBUF>9dJ|JCWw}1tLVy+r`-%w zJBO!gmdH~)lP(W#2>NLXemG|p(YKQ)$6SisUlU}}SjWMFnwCdKC&7h=4|qHdM`~!U zK&(F2#8t#0so+)w->u>eowXh5C^OXdM8LAPYN=q=GI&-WGzDHgM1G2np*sn3wy~UW z2G@*1*OmL7Cth$}IbK*%)`ko+nI}4gtghn)%C)^mF4C`7Xw2fBc$c?ejbbwGSa+Xv-(&9RvcZvW)kTGyR>VA zj~-LIan*uv(`OsPJb$wS^yHo@3To) z12LwG#h1d+u-Zx7e^J!lZ%1=EuvjcclVI90fi!P|>8t>P+;m_8g9!%Y200Q_+1!s5@fbdBCs2Oo8QEt6%;FF; zew$I+n9a1oa*4|9UQjEJ1+I!rxM=zDu(cb2u_e%`M?=aAx_4Qy zp!SWY``4%F5fhC^!;p6I1gxTdDvXg~^Z3b1xMdl)9G$Ul==UlxOkC?3`SzP*{KNZ= zV=7lFsHS~l*FbfwEvtZ~+C-KlIAZe6Eyi--g2SDO$sH{{R{DJxi~t+U`$lU55#VbA zDsD}{9-1JiXy3SqGk}g?ae`+yBA~Jw3cbKbxD_8ouBO7C8WZfdEFMM&j|pOcmx$6_ zi_n@-p;N4#fxn*Op5tmjORr&EgP5%Pu`R3?w@MfqjtIlf)@{p4D_4$r1BT+U7yEe= zED>i4LvGFF70NY*UE4r6S5WoZ8`y;7jNtEaMi1LlUM|B*+TxC}>s-XnAI9+C&_iTn zf_qPE`|dpf7=vPH!C^)}Y@CcVi~EF(=W<{j2p~{#EEONTWyJ1aD3ZvQ0E}ifC4I7o zxKCG77@I&)e)fuQZ_?ozSxAd-Y!gNWy|o&8*cRX}nh+Mh8PX5)+Ec`ZnCQhfY&*3r z`z|GDa45{X5YvC-6Dw;4rltX0)LFw~m-QoE>TmXLHF1EIg`oRkOz)A#UKl|B8w}V= zV2lEnLbUGWiDIB47;3xA0w&P1Fby{t zSYF2&=BA*Zpoi9qW8y85Z39$LM|we+Mr#8!?2?!Pr&%Rejq%E8s>aiBAq%x((lX3(6?IO zpWIS9D(o`H5^ohKEMEl2+O#_Ww1F|7`QF&YK#5p8N$$C>ct6OCIEOKGH_kAbmb14J z@PNBca=mTULUf#60bZM0KVYeiL8LU%F`_nlkd6iVDRLC&Ff@?zY%&w`v+h92ja~kZ zH2p43pGapwDRQ21T{CeRK?Ri{OH=nt^hF~gY%Pw-yEb6NJ6_mB4pUfI1v)NxgJD^C zFJbj@UEHCVF@kq!1?c^?0Yi^(+pIur=N6L^kETpKYwmzYG-zlWy^RTpTRj1f1tpso zyL%$webW`^zK9**FH;akZErF#S096K04KxvWKCP6u^J~j-acKU`FS*$r;i--n7;eQ zOAc<`N#&s-cxscoB&EFlip6?VvD39#BR`IHjP2IGBbF`x0pa8G7F2E|Zt z^x*Yc8@NWcwsS>#jmC>LURnlGabjqxwSi5*IAi~0eQABRIxEgXJIVJe4FDA`Cdz66 z_{|+JovN@nl2qh(1218nu0wmT9NRXtH0HUfxE3M!bqAs!6R5>?z&x=5F`r$as}u-e ziHs?G%(tf*M7j~tifc4ebEF|Tnyf=6HW3JWTybK)_YEs=Ea3uBbV;7u;>*JFx$ZzE zj~F{NfsPV(r`imR`7w{ja5-@qtQ^Mja`p}r+RfDvK~C0>jUgi&jEl<~6LUZbG#Odh z;cO?iP+_Amr309i%>a`MU!Ip^CN=ts$L;0=D~=0iiA>@FuDNY! zF!olQ1$`CuI3cRa(aJPj4fxoX1#@HoJ88tw==2ebS^b_s7{L<=mgD5fkf0*`GcG-7 zt|j8Kr5qE@3B)=?0W6MISZ!|WV1*6)TO*5qdNK+-pvj)jUTal?r zPBt7`I-D0wtk?`=i61ALT$n5CI5gJ;Li@%b?$HfC_Er0~9ovAv%*oQ2ny*~^I?i&ilHe`7qfk^_h z(zg4HN84gZMIqDcdbC-Jmy<>hV7rY9+oSbL$3B>Mvdi{};#+KDS4kAH&HQU`;kFU| z>Hd!;m1eSrJL*`3R|AWpEVZe?{X2Og`T>TwExO$?N`yqTlLb7?nPbfYdBXq2-nlDT zm)mAE_fx18JDBtLx%yRH4i(s`-@nT1TZ=t2zHZ1VE7N`VLg< znyFgMh~Kb*)R{DOJE2;;1JlEXH%xeCvgu&p?KSI_4XLy`OjMJe=y1)lh|=pZRAu@P zu~VT2qk%2bKDrJVLrNE=!;(XgqF0|6j!uW&!0a{Xnc&tGSRN$jguleXAOuR(u))5A z;u~i#4*VP0P&}$VD_ExN21ANbjfUpKj3t$P)b6OmzOzW$u%<9o_6;U563~4^g2}%g zgP?0BLgEO*t@7lfbGEcHnVkLDc!wam#Y%zMjI7)!Z2##F!nAM=AjN8+VfzMW7zxr$ z7YJE96IT9$MPh}`l2kCPvDpr5hL*F+Td~2!PGyH?DZ$o8XHo!IeP|dfjG-i+XTI|s z0g(uYMtZ_%JY=|V`_R5IdzUX4`N`gEJIv9bZC4g}QZhmgOJCnkDIDn-(W57#)OwR{ zEYQ-0G_sV471WOSBNNAhzM>J#_Km>+b>ST@>`cnxf{eIkW{!fMb}6N2ATz8fFu7HW*h&%_?a&{a0)i(DLF{zH8o6+h zXf4Z*dPF1(`q8ylG)vaF&FrIt(9uT%M6IBF}~*tHsL1mSEBDM^d!P9n*h!viHC@xVF=Y8NQU&j*e!hqPQ<|3evu@vMd7| zMFi^|0*pW_46aSUu(3=AmNgVi+FL1E(O9krq0Wt-sJ9Eya~8>ZX${A|4O3r5szPuE z2Q7TpUO5XpQpWNz(iZeUC@X^qHfXW`4uZzeb2iNl6t2y*Xpd};-H&weo_%Acj-I>s zWI^v+vkI<7a6q~PQ_z|3iX1TiwH-Uykf-Ps#=9o=rv7wL$@va@Su^2kBP&|xn!?mB zU)fd5h*HX9(69Sh&{r5Mv32cd?Kg3Lcjp4zzua22r{FKGGPQUXLH3^EO% z$1NpdtAV4H-nTF~<;Ews%C8iVA4FNJ2qAv~lK9%d><~d%(I79E!=T}a#B*bW#DXz& zk!h9^k#8x{lGi>?*lYs9*VdHX5VYW!9vj{WpmnO853yho=C*2 zmhIX#jQO*a?DN=FnS~L=hXmW^`-Ygdl$ag|!L8Q5-F9Os_7URCkWa>(?Pg)pJGDIU^REqM{UUWm8~nU<}!I zrWFvH^B~NN`$pdmC0N(8cNG`$GQix7RDDGFwRU9S z)eiGtwHS?-k`-i;sK=|F{kj4OwP**08w)n*glO3CP9fQ=w1Ke8@#yJbLu z-Zv!9;eru|$gMIbAaaIzpeb%6GVFe&!x}o8vCQlnE8WP0bhlx;$wB}s2J(4QI1OPX zD+TVo?D$G8!!cmu3A46ixLz|+8HN&@64U?_aG7TjwOS8#Zv9&l)_wx|U6zjJY6BDQ zYtcs;X+LtlJ}dg$A|JnY^JJDXFk_uox@VOEiAfM^0|N5;ok1|<(N{(ShMBGPv^K-k zNy)0TBdSEFV z6I*>(7(_2v@9a1^FvAT^s zNUB4L^-^N7MGn-pG;ANqp13=0xG?J0TJ+it6wI`wWU!y{qBsIZOTrMeDO}|Sw42l@ z6W0q6oc6hI7;lFlyH-mAGlc|DQ|5sVGlHOq4Ks|5YZwF_5)3+d&uL<;>7cuJ>sj)r29!iQ(RM#G}pH(*zUd|4~(qrNvy-^Vq265hma?ATk#lXwkR(?$SHzabXnNt zgDf7yWiBcNiJB8UR}o93m?<`~bj!;*S0J(4HAb5k%8P-SGt975i>{JCI^JeKLwJL4 zBKRtT^;s=61VXwS$x+}&RwNz1Z8aQ(g?ueyimoDx5mH&+Ah&k6!stztp!=R4TbVgz zumaidu*yZUg*nn;pj&oU=GFH(K7<~bhugR!z|}}X8=NbM2g4fPyr!`IyMQIgUU9*M zE2?RrWUrY_m1RHzh@Nr{c=5gwj7qTB)qub=TC;slqo?q%nTcXlstE(5+Io`(a{*S= z)y@*K?9gY~XFgbD`zy$4OF7YsV6&M3Ua+E(%cN3T9U8;Fp=7NT%qT;GV0hBuR@C~3 z1Ry~?KC$Z7fAG{blg))?hjA_g-Wp4Zv7bmR)`|f53;=E68%nV2A&8JSl+d7zl=qBr z4nee}^%#2N1_MyU zP=2+u#0^4#SPiU(%bwP{rC^lcEiKXg_IY#d2bo1OrB^h)xxz@X>~!uRM(qN+e<_h8 z)~PI21e=Ykk1@EW;8DMZAt)InrNc}|f@yvPV^bsHYW2eRvFsiy8`7T}gR#=G8|}tuTxalE>ZLc@hi>dT!tFDBL$vuC?^r0z`M4$@TzH z7a<}OB{}B44nq?nD-XtxE)K<}L|k zts;byRm57nHXtwUTYbb>QaE9}*+=a`BPTBES}r(36$lv4rt_cp_@}?MPP2 zXHY(LHOjCEJ8zjCq+~sJnP~TatHm&*Q&$m=ovW5TWV@;ror@z^17pbcX~=@1i~&w! z0VNhCbxK5s<>L$k-?nZpfNg9jvd^(^RK76*QylW__^oKTy-+SI^z9<)VFyvm1nh9o zuD&JcoeP#F2LqH?!=TF$++ZR=VA>#p%7d`itbMG$!x||@TEo16kbV|qBV*9WR54+Y zj|Ev#6LD!xVR2iTh`Sq0yOx)Lt(#$nWqqB4nzR5T>V^g;leL!VI}$K5mXblRfEABm zENEp?$}+H*HHai5!L+Sq$R5H3H=p*pP3@HlQ(a1?iiPFC60J9LMi=Z-qdZJtM22)L zlPPM@_9!aYQnJjf25z`o2KeU6MA?GmtQ?9zSYKByY9CjV;Z0g+K&81jlF$J=h0;RZ1(;dm)ZiLXe0qYEPY3WG}a zyE6cyo;4ulr=1v@zEJ=@manZhkZ`=fNk$%;vKkmuOF6bkz{r$5kP-+Lj{s4_S%ubP zQ{0e2igb7*;n>A`qcK9r%#mwNnnz)PO~1 zz{hs5+S!C(?Rc#VHJOl$mz`br2&ak-@BzHiu{qLSi2JOc>pf?_=EedJ*_Y{(MOzG(Ek#NS0) z3_;p&*&Jr;kZFIfRBI+8-;i&gf*!NzN#OgI1qmr)DcLc#(H;$e*0K(c{*Ahr2UZcg zs7r|hED)^G6#$+(N>K6;Y(E;o$dQHBbZwv|%fN%*t6}%?6JXXg-*LUyU^!7?{l`39 zJ|>*i=8A!0vJA}jkq#4_1j$>2HE=~kkC6_)VpGPBkWf|_YQvhs99wqunKcFGyADS> z8-$1_b-m7**{HHgnbz03g}|{4TP2qLSjapdgz!4{2XV%&XDX(T7+J%UMb=S=7_k}{ z$kyJbF)H042(lK@yyat7t>ajFX$qLh8bLQGQBR>ByMP=8J$9wApbiNrzU(YigT{Oo z$V(>)k30wrO9FQr=`f70MMSO!>=^q7ZyZW62x)zeN2Fu%Or(9(0TEg~2r+O(X1!Z> zdXq@jRT~DyM>-~)K|3$7I#N=Dvlvz|2+796w29GUBM5`l{!0L-OhqX0-3Wn9!12N}A3;~J@F-xzJ{X?z_G;8TOtPu9NmCYr*KXS5Gb_L&AzSfp!Z*6=uz zjRbVj+K0V`luSeCCWiyo2KG!qmu1kRv1tuTjHi7XBGBcA87&$vm?PFOx^q|~=`Rv7 zXDz}kw1Abzis;WlO^c`JO<;{n!B86In8QPiO?RQ}GZ?`JZ8vU#kEBzzEkR-!(g^zd z#*iP>t|lsr!;^J#m2{W!ES*hKT}rsatNO6xGp2_qnmwpF{9&|eyDV9CQ1 zM!PnHw8K+}V8)P*h2IWqDqL?M6Rmc-akZnX8n_KJid)zbTD@kLnJu@U(n*F%5X;V} zBcKz(WoDh>3A2gfjuTc?TdUvR&T7~cnKumD$p{l&eduXx7>254VAOyh?Qx3+v43qx z(q4VDq7bl!v=*T>Zb%?&EMQ2ieaNRPg-NkeX#1)~GuW6#h+lx;R(+%rj>UKRa57y! z7T*z)!-3Sm2(mB?fa@G&lx0UqUeQP;Bw>-M8*_z$U07|KsYsL7?%oqcyVxIYh|<37 zxaO^BuJv6TSiWp#hCHN_MPmGvJjZq4Lw-oRqZ~73gurOBggxEL;H*}rEhRH{)kt_*axViy_9zESUCK@H1<5P9QZtnkX*x|v z?zLzy3N6T31KRWk@``IAgJ9q2ehQ;&T|iK#MkRz0E6TFP&YI24y%+LBkeL?OQxe<)Qo26B@zT-&3qzw&h#MK zuPMk4B$>5rt?jtoBw^d&RqgbV`7%R5a%<-yrIm@Ay^3fM?c4lW!@zJI0P|cD#>+-9 zpeAe2C;=Z^Gk1^ng0^%f z_5dN#E=Y)(0=1OWFc!3z(-sT7`$%poSLi3!-q{t@SDT`RgK_3?V>88mND5(H zm7n?s!3;;%`3x`U)B+9LeCTC^DMCvEQ(Gj;%E-eWI+S1~UbV_99r91hW728r$yZx@+fR8lTDS?cZ`tizBx4D2}II2QdhMIgdB<}P|MDe zvobkSunh3&H5x0_8qMa`veQ?~&MVHA$-V{<0=vk!jKPS8AVO&MwTyKj3EhLH@Ff#P z8$1Xes{sW;Drte+s9Vu{_KX1Twt#9$x#e%QV}KwMHY2)>YmmUe-00!#3rSe|rEWfQ znDJI7s>DVsSg$@z<|~tpKvQZPMEGeG=-Uc^IkQ9N0iReYXK(DR5-gCm0bVkcT;-<> zj1q95;et508d&!T7?G6%JV-C*E&U@TQ<{JwrN|8*+<0LxjR3ORjoEgYW40FUW=&yB zbWK4+-ymXXB*P|vm}wYbrE^i6Hcken!}3A+AqdYhWv3F6)rLIU{;H+>X*AP9$|FFG z1k|^DxP?k213-^ctHdhO7JsVq(n=j z6=qV=*x9jYWCbchwMuEx2c8-Zm7J6qnN}uNJrJZ|`<)$$)rVnnkqq+n7&d5Ac7+P# zk|dLiMgnAnbqA%4JggZTJ&0vuotX#mY8{6-u>kL%6^1QxH82g=T4eeKh_EY@V(fQ? zi!r280vX+o>!K1QzNJLsv&>`~e7Qy!0x76gwe@Iiz;$VqXCHq=j$hBn8kL;(EGWy) zy1oF;Wnmen5lO|`=kq4Bt$hsL^(`9AzGc@&&`}O&({2?JtXdXR3PUu}jsbUCi}LT> z4#wz-@5&-kK^CyUQYMCB$Kb4C6ov(2Wy0g2#ALR$9hJU@sZPQChZ*ba`T<$ge$dE7 zixl#31zaQqAv=M1;wi8USn3zaylDjMJe6v6lq@n>7pr&H5el)f$Z)Ih45UVc#;QT294;W1 z^5Uw^B05eB$+td$b&9OJgwtrOy+s(qp)`Y`RqZk`sa6BF-Zh$Gy=g(yS6_|_aEZ7E zoPvCe;Gv7&F!HcJzDUO4BJ&a7DmwBsydkF(Zzfgqxi%s^4KupRwzu<$yt-=P7UGgE zhHXz9CX<`2KJrk(0_d`o*j^2ELuL_{OTi}AT8vAQz!!tI{z-y-{1H^6gc)`>#)@vx zVp}91xt5)lYmVxE9w=Tg{~o^9a8QK#avm*nzEE4g2BtT@a6d64HMP`L+IDU<-NCaV|K$z5qAZ4v+=KD}O$`5WF zi$qIWz6R}xwMaC#5qWHCNmy_R*p6J8jF6$kp^Rb8My|NH1v1HT^&wp>5{K2L#0`hS z*o|^PBjN5F!DbG6gGDzRVXAzazPXAp_SqtJ1ZJG98G_J;|I0m!e;;`n3tMEie$fpJ zAPX$SK|nyi0i_`}Krp&Vct;!GT$~6tuvj%W9mqZUvzVD3FQ9d1Y8>^AF(9uvTymzP z7facC*(pZ2+D0is-;|xfs7M7QM4=#uHIM@fCwB8G%&<~z@W3C$ni(|c?5e*o*XYUZ6(duHY3gM`u(jzo$SY#ql|9rvL(66@_O`)7aD&$)S<;G>l;t0Tn4L=_nqN_6lNkDb-<+7&gve zAtN%uMkK-dkHw`@S{ma$EjfI1>;joVDYsfMHWMQq4T(l9SEW|bgHDLHs zt45AkR}qXn7#&0@RSl@fs%;yMCCUtKA#xIrwzKBeFi(`As%c*!5KlK=roY)}tYfPv z0SU2A%&Ot+0z<2n?b+Z z%orecS?i0RAxDZ&m@>%$z5Uqhq2$LMd7I94>p zK}v~`2f^-K!l)uj3b8X!luv$r46N-BPTmnE4?SZhXjncsn zKnn1Qtw3^pk~jw04_HNAe9Z1okc%lP#Us?4Tu2f|1>60nHx8*1(Z7TUq)`g}aE*(R}GE=@;v9?G3(+npkmcQNj>IVx?edF{Oup z7#a0#d}0=?m6CaofL=iyk96K~!8f@+f$hr~1?@Pf&PlgJ1-6+TT>+9M zl)&^Mp4lN$&Pw6{LwO03OEC+rC>>~9`j+A-Ae*INb}&+r0~3biX^Ntb2iYA!%fMPH zJ=>>8#;|=kMuS-29Bx@?Ab=f5U`3f<;1=dfiNOXaF6lrp4cm~l0r5p7+VsNeU=8Qg zNYfYlgw#D3S0+g8nvgZDc}q|YA)iVESn6NZ4jh^ErjZPq7&&BK=2EZm4)Cf73i+AM~T4&#CZ8QArj^e^=r)JZ}@GpYi z>NFQpN!JW#zui)rzW4#zhV%}gzA4PI4N;j5;nW?H*hlB$i+15L=oZ;9ZM7%TMxR|4 z-yQ~+IyLVxFmqgMtmj)p-*Y!Wjh8c-*%4dEwdaYQD6CzNurdy7M(OG!IM5o+X4EJ_ zuW)3;*ME1>I!B$lUNe*OT88nzG zqtbDTV5*c-1_;D>*>=^24GW&%bPC7XCto74BG#8BX$>bRr3{`;_#g)ZMo{r=Dd(H* zYjY0Bic%_&-2K+h4Uoi2#Q?I}G!4v&L7IhGk!@e<0H#0dYqiJZQ7O?yf4D8$8&Y`o zSv#g@A?M$*g%ebRToE&hEjq^Y4(1Vgs z#tjq&d(;8Qrlgu6T$E3C&(5Gw26^uNvZ7QIO72_RT;~kQOU_P85sbgE&1enhT9M;A z64PO4!tUq_NDSQ$)2?7;1I@M{k1sq5M#0Q5>^(|W-C2pO``wfU3ePkfgsxIH1CB37 z*G`f0loEnYZ3+_!H#;X^*^~@65XpWx4mRhSd=82Xv)ou9r)8cqPMykTYsoSbe<;PK zWK;u^1ip?zDa!g#x5zrK>#F!x?G2)C_CuGnXkQVS0BBP@1qamh&9uWeG3%xwq(U2( zlNMWh7TpF8(xfT%*Q6BJcN}ahI_hSk;ajDIQbr)gkn>i*(q)%C@m)5BtjM>}kxAR2 z(&c23HMC5SvV4(F??I9%50bJ{WZUe7h{QSQ*jpJW*A?dE!pJB}aaz9BKDjUp^9m!$ z2uZMSIrJ=8K7zif_yMhGcHYY8g2~>=(B&Jr%;&KTas~{ZWspbW@>NO^1gbve5GLH3 zLQu8h2~-9d8Gbfad#*0%ZWB)Go20{AoB#{bEP|)y#u9;Lwv`1`5|=@oXhiqiae-oN zhEU483!$X!_B1wFlc2sXWr`S)CQ0UFJI$u(u{W1$k;t&bHyf>g71?VMlDvgEq~JNC z}Y+@>}8^ z{>Mxf*Q~_MDHo_3GVSoKlnxYB5?j<{#<_ok2wCAo+IF{~ ziBwi3Ff#EDpDPQ~;RTl5K6so6sKR8bs5xSW!nqnU-+;Ak&ybAZ5foYT%R)=4zUac< zzS&*zm`#?cB!`+Q2SZ>H`8KPuyGZLc&4BtQV?jg_!FUK#Oy3j%fa)q`Fa#YjON7I7 zq;C#k?7`+sk|U+xj)w&dbm*SrTW6ar2L||qwdZ;OWWGc=4#10bHzu&#Wur3*0a;&6 zhm?+&d{^-dmLQp<+3m8FI1wlN$|n!OI&AH^FLB)8Z<&j5CbUd10l=W3Dujq>WO5cl zo^z$ce+YRZf8NaNFc5sKB(CUW7zL5wY)W34)OsMP+bLr1qAk)zilY1GWCm%=OwIzb z4VjBLxM&-W|7|Y1cuGiu6jbC+$)i)?d{@Of-z!p9m|Ti)b{y_3>%aEEaD0{o-8RS3 zL!ksLv~ep+Xd{DIXJ$fn-ZxbA3X|8Nw;Sn+4@~x<;t(XEXtr5~_gUYXMzK1)v&1hp zNLeMR7u$KGl#;k?B4n?51S1mibdW0@vi4fS#_8}oP8%c{60F&!lx6i65=rcDQrf4v z7qfiTN|z3HCf19ra4UszHC)JNWFAT^duB*Z!fi|>^73b3^sRhxN-~IG=dWqX8cjZH zXd4gl|3G5q#W*vG+USH5^o&YrKxPZahH5jB3oX+Lht<@=VwjA7OGy#~DuX`7&5T9z z&5E#KnIT-VzF`SE6_unhp}Q}(-c1}5MC*hueEY0OWf$eWQP4dp3~o`%BLMrceVYc1 zpduv_!GNrC(jxY(?3BZPme6tRY`X zRJ&3(KJz&svZCwvb58GESQ%@@U0Xt?9pk+lRHM%s)68`^iBtP*E0V_x$=LI#zP8+8 zhGmzN;NT=m?Wb{~@<3wUwi*tU7M6t#OS*LNbkywXWpHYIC4-drTs5`VV`;KLX6TMIdQr^IiQ%+PoFS}1j{xld z4Ji*|12yB~lz6L+1gPdK1ykcX70BB2%7YLUc3k`vI7w-Sjt4@WwU3JdjLZy%roHjW zM)b0?ob=6x5jk2Dxu$UX-;{YA5!p9+7TXoWg-9`rhoB?{sh^Uh+8qoOW|_%e$jla< zK!$KGE^WpmT?g3#*ieHUL|76;H(x@m4AmfOro)8N3HcVf@)xA}T5I>SyCQY7(_vo~ zm&|S~g0>;`j{$O^4I5HgO4=NdHFWOXu+OI!{$WY(JGu;lgRy@-J;W_1#^8wlYaUuZGZO`nS@gZ0ePG=8!&T$0U;n>86 zC*OuV+UBYyNr7_{x24sNSXOq$3L;k#%A@%*+aMHLben8k&bsk}SXNN&F##g2AqP>o z(}AoZhaN;rF-zA1s%TXp#6Z8bn+}gNJ6naTuZ=r)Ek<&JzJ*!Z6-O{cJ_QU~mBghL zQ=IuytMH7sqWlzrM56hJ0^GN1$nFBWmRNZo;+S1wkiU5p}?3xLW{MIFUO3%A-t01S_!)H@|8>V9ii4!b2ZV}-2)n#CM< zuv44bEF@*9-`k_Zg+nBg1bXTN(M!GrWcHSFPM4Y;jcCYcaN(S$kv_DARx8)Xm}#%H zYICQk4eLr9eBq^1Y7UTv<%EroiF84dSPfZdC`>2^DcrS9(rVA?UJGkU#wn$5)zIRN z7p}EuGDbHLie0c{YX7w_1|-(4zMS!}==Q~cq(qaFb+&H}#k^qfo3{2=ZCv$AB2NbD zn@a)vXtpRrFs@=DvH8bXop?8U4Ur2V&w{><%>b?1MV4~QC(yX!f&-Ou)FpECB-ngd zP|;(!K#I~Nfi6J9Ws&8Z;KCmMrsx7QbdCq3kM(JV;oAlZ!KA!FecPBHROBc)sKRO( zPWVQy$N09fw7}ZsQa}^ou#i-{O2wcPS;|e4MV5WjkbD~`L~bM#OaK{VeQaV1g(n-1 zK_!Wv@)t5}t`JOI9#r-*0iex(f{CH5?omm#WstS2TL9ImGMzyps8{qLi&kF&s#CT4 z465i&JfJAZ`6Ho?K_Y8|UOqrmR~J-!{octWJg~~J*+`OT#yulJep9SKZ5eZ%_F}a< z6abA!F6i4C7IE7U-wq`SIj*;?YZzT8rItsKzR#Bl(rs5N9u~}fX+L(bF$z7O&8?|LBhwyEy z?*b9@1|XnDD-Jq-Ysz?E8{fi3`w%<2^)&kGQg%@=VzNl6p|C`4q2*iiPj4Mm*ZSRi zIf3eTU3h>RpWREw>=m<)Krx9$zH5lEQdqRSZeBAY(XCMA>szx!O@kzjc{jwCp(NvA zK;v!%TgnOQ#*W3oErtY|!o~|N8eMSR36cfDNtQ2%WPJLESiHDotBmrK-X4jHS zl91OM31~|)fjvzyx)520$(T&~NWjn(lJn6L3E~btqC)6$p^!-&XP9&>#p`G&MOqVB zUy~WgHn>9%Td`B&u#ztO1lpBIbQ}w4^hEd-7sZj~v)V5E0V+czIIhH*FgQ*p)}EIj zUkJLT4{D0@BaO+^@C>c);F;k9jj`U>%_e$b#XNaVW<1flXkHq)Jb_~j%y>XUZujE=5@y{d%5K0( z>0EKUALnm5CZ#xt+@W8jls_{^Gc=K>_GuwN5z@UcDvE+`)C0|uNKmhw8*LTL7HQG$ z>;pB3Vpc#BQacLYlu_`usj#ZmD9uc1>}ok4!Qg_72@az?(?#BWWd3U=o>4kjU4Oif@yKdsyUp|NMe9RyS!3G2J$NGq1xWHGI z61io#z;lK?a!VPUM|@iwuzVCKn4t-k(rU?PnK3{dk%uQqDq04JKe9EPL!&*OK%_{> zD#@Va$cC0hcNY(`P=$qrMxdSGuP|99Ni2m?VYSY1A}s~iXCoCWa-$~uESCr|E_HY^ zn_WGQNEccR!9_ZOh^sIM0}j7s4|z9N$rqmSPs$P(-KhEI@J3%0m&B&|77hs}zJar9 zzM(=68=x9i|G`ZB=F&6ANTCo+vLdp=>OVa;sUd=B83Ixs#Pn45gXgK%*^kcTK#7+l zg$5~u0onFsFxDYkK|7s@5aG zn4>gt6Igp(ar>|dQ;D+K~h3(5GX1oHUUXw4`%FJr8wW|T5H$-!ndY{?ovPv zsdGn;cP9`TW-&(~`$*dicDBC7G1;oHXkEJ56lh3!^TwQbMM6U|P~GUZ8jzz76Ndeu zGZT@nTm*Jw%yBl^5yaaB7Dy~LQ)F~`7Dhn3qhsip=**ybm?X`2jX;C!6%|yV#=Krk zKrZtHWp7CJELG0fBx$@P-p$f8%&_|uh(yd0p~S9=MZKvJJ;1a^VisaF^lTxOD zFR<-#MIc+Nx{BDM42HI|eA5^WoYNDHgNl@SOgtnK6I+pX;{?~GboYKi`Q#`}REyTI z#5a4BpbTQY1>WoqsV&Vyjx)Y(ps>soD6j&JSoMraN1FQ=R~K zlbn&&b1bB^VJVZjrLQpiK}+{;D6rbNB8!FX(~M2Z24;FAj_Bp9eeppeB~LdSAf#8H zYX^+U3~@JTEad$GqqzAzXa;mDY7A;kBk~)vwQ)>#8bmj>vkN#@n3UJHO&7U7&{Niz zn8q3<<>P#O6VLAX-qk+qIJe2j9?g;mS-(nIQ`}`+N|D!v0I2SW(=swfL43KzI>`}_ z6Ki*4j11O?VL@7ZG2t%#DM|HdBO|gQ9M9VQCgRx)PZK7I{jQq;Ma$9|d)9uQC~#|^ z!WtpzusNv{S(%s;#oAeX_f|gA+scGI(o18F?ljNI$VxnnSeN$=C3H<77&)=^7Mzlu zVoZamg`wp{3Z?V%(1(#Jt(aui*zUq7a40d+%BSwbw=zhp z{Lq)uGBcmy3~y7C1IZv}xU#Njt?dMIC!q4F4>Of*v@T5~QMo44X6o5Q8)Tm-q_xO( zh=x^z;tNSOSg|LWFMSvjl1V)O%D0gmzN~xfSbpf_b3EgtF1j%=b_PW^0~W@&N@=*c z3qR&tk_NOJ2a7Caqab;X!o)0L4L3Y1awiP)qiZQzzxmQS@m~;6-7rZ~r*?@_8-7H( z9OYI%$Qs-ZSO$Aq_f4QWT$4XgLqBN?T+HV_06o^s>C!^HCqk(fd0K`f4L3LV*Tp8$ z>j_Blg}s&{8$?}&Mr32+)UJ4z2RX}$yb*72^XX7UWL?z*?pQn=*F7x5jbD;SfsB;( zUpMKJ(q1`lvv{0tNh-P#(tY1-B01`G9bb~wz<4gw6$``ax{9E0>ZdHMK_UUP40wXC zeXPA>EI{i3f>p~tZ;-u0k|CHU_<{;kW5b5C?&x*X1wrxxe7~(B>5hxoEV>;7OhA_D zIUe#=pDqMI;iAJ5Pzd&DEXE?+cW#`DyAdh6`g@W=Zi5+lBq#7&q8onUBIvFo-y#SK zl_?!4$Q=?SnT>65vGy1c8RUZm6|D^c@uMVlN8%asib;@ES2R+kfinQhc2E_ui1S8Y#B#A--PL-nD z&2${~mjt@slBAwaAcIMn(gT9Kj>sC~ZaIV#Df1vW-^4mw9FgLgS)UA!5Sf}-Y9Ga4(B5ry z_AlsRDOtQYyJUTO3*gt**zI0r2-vq;l#Pou!-{lzB!e2INU0ni#vVC_0K z4zfNaE2IJ^N$%mRc0C4Ez7WjDmA5x0oU-eI0Hij@){td3nY$C0Zx!8S#@1{55@Yb% z7SC)>n2ODwP=nX@$V!GHT^O(!+h|bqo2-N}TT1(ZWm?juqXF6Iw&O5O+py+4khnC% zG0Bv&reyhNCATnLxp5Ja$zkU%^5Eh`CsHKN-TxlsCxccBEIJZWM+73(0tv#!wUOCW z_PWv2{iJk_!=u~Qrs=V(X6;%2fowx2f8>@@HnKco0vD`T;u<8eTF;&E&1s0rWGU_R zaSM{8H9o;@0FwN?xt=|rd2Wk57qyeaWl&Ip71(33626I2%!5;SeQOAJ11S!TWp|MR zDnoS9=YSfVYWO@>t?Yt?rc6-;vJ{W+AqhMGaux?t;h+$SoW{o9qfp9O4%$EbDrY0Qq09=$>3E#;}!*?~#zL>7c#1}s`zwX$Ytyut{E8NphF zk5`fQG-`C;L=fh^ULha}R%>S}ow73F=;lkI#qc;vps1T6i3P!U9f14TT0}4e+1nY( zk)5q5Zi82}+0(gDs!QV117w-;9u)QRIc$LZhO@)Uj0NS-4CIQ= zN)O-wSr5S~ComtLB!e2=1ZxmM-y{->UXd;xKxJ5CXKS~H200wkYFmoC(VD^>dj#v# zylEGdQo$JIakR=`m%uI}5YJry>E|HVOS;?aD7MR&YYR%JxFlW!jb;QTkynvYSm?jY`AUcT@_ZNpopbMB87!+Pp5N-pbg6|!FGy+ z!GpllH$+~KL?F36dpc&we3=h0-!zvJ*c1;Q5ZQQfi)XT|-H{r=8e=ILNU?KDNSzij zlU8jjBAJtFn{~o(KoSn!xNCE)g8c=O{pvDT(u)JIwr+#WHVUwoT*xEmndQD9P%*;+f~%4P==< ztjBdN(bJRPKyu8yg?E*UEou!0l638$uq@cV_FA}T%-U16@eej%sy2?nrc8tevcr4B zi!DTPX(`6UFIn5l0J6R`ZXg>ShsLki7A03Rf~!G}!XUTI_yp@#Pz`Gj7!O;KhfgJ+7c^2nZ$Z_Uusk9E*CBoFY->{$&E_$6}tDJbzG zk+}dbFwt$zC!y%-$Gq(ntIco;R4MgXk^_+;5xVE~q1X&I&5)3{b|o^ps^S3<=ne|& z&2XUg1Hsnt1@suf>RaG9_bc#qThR-QlwII7F)qAF+D9-By}+Vn2_zYV*v1Ww23l7w zU>*^y0|>UNEeINUfW~(hhzlpWg{GAex#e>~xQy~ZlM)sLO;y_!_Q-+{M>s$h~Rg_>8eSy{LYO-%-*gyf=&{$AKVJ7dvN>D{gEI^z63rwjqAkanu z!Bp4<2eN2=?Oj1Yj2H9x$NP#vD38IoR%AoR%83S!aUl3GR=~Y5x<3+EMLAFnYfkk-ylVJR1 z0cFx(WBx#!;RIV{2sUL1Ci)T79XgNz)p2gP0#$>e0~?Fg;O@mB3sauhrlVNvYd6Rm zlrDfGkIVyTBNByjJ;o_ImkHVh1reRco-lNcW+;stk$)eTu3xRVC~#5WqQFIgivkw~ zE(%-}xF`?><|dCo%#Nz|IbIDN)b%MiSxk(_s5JQ1`O)rrr?r zt(!J*$MIXpbluIVe2ZeQ)Vw;7o-$2Pl>`lrz~Q(YIVeVnCRKE}x+vET{m)68jQ#{{aN z-&8EwRh(s%Q7#G4zK0pw_j(0;UV&qRD>;TI!D>erFQpV@7vK=2Z?j|UlDl;Wo9E_p zTXNUhnXl24GXrlO&2q7mA!|ch_?-TjZ3M_cgaObbZVK$Wu~XmZ!VUp#pgWv+ZQkzm z$FkFlYag>>)wbdNJDq6~+1Y{Cz*^7iOY!Ga)6KHLP%MCMF-)d)fpQ3jbWZCf+^qX9f>>Xb4HbngR z-L9aqO9Bf5!JW8R(R(# zj}~-0-Xd2YjBjOPsvkY^Mlg~i7((_R^e|tWv5c>hh&;n=RKnw+V5-58()A(9pRyluvs+DXlMmBMg9kYx4sC z14Z~Tokw{ za8cl*z(s+J0v81?3S1PpC~#5WqQFIgivkw~E(%-}xF~Q@;G)1qfr|nc1uhC)6u2mG zQQ)G$MS+U~7X>Z~Tokw{a8cl*z(s+J0v81?3S1PpDDZ0va5CY4eV&2yA)a~Ii3$Gq z%)^c_^1o*uc4mgdAeO&#KK$=_i5;H$pUy(;5a_acVy~CVIefVz8`lBb9sYvQ1lIxE z>wxWbz;-8VVJg=FTaLe82W+ncwtFpOXDY7)wp_g7nbGTj?T*_{diq@)u>G}gdi{S< z;G)1kItBjipa1C(=kJgI@$di1-6B8!_%DC>*MD@fTz3Zi|Db>`0(e)6w*mPifY)32 zXt{4~dByjW>sK(B_;|86>HoC@*t^1flg@YM{@U!n$MoLT?-Mt-U7+Dhd>DjK_--?Ns%$IqU ztgn3?w`XFF+s(ya7VYh)z9=|W+B>$s^Xb!W_WxETuGd{DL)9CYy*J$}wKs~o^3_{l zy&-u#nA_j?0|q_l=f$|*EIW@FF3jD}W`_4Wdjq%kH+#3TFUgHW-3jdLZ`Yju3Ods)kA?k=Dd4o|MF4m%fVed?``n!VRhJ1>dOq@xDdpdYQ*%d;2 zNSMe8fCOr|JUBwNKuW(nN<6uopnSd}L#>kz3CcGG6$MB&15`vwlMRt6AUEG*;b|C4 zxlL%~n{UJXLIq~9$ z5bymi(l?k1>ePF!1fDQbJ{nNY#2C*0AI5_3e3j?7m4!lHM`9Hy`eeUEiDMTSNHnqdq{DQWy8u)lZM6 z@1wT+$Of;PHG#e#H>=T)I{eX53SQt??LIrdK$1V2)88+p)zjxSG<iUF-`Xl-b<$MUX*duQwkNh_}M6b*0;Q)Wy<>YJoCmoT1GaRd5;4`h>z!;OBf&EgJZt;2?(Z!&9?!1YJ&Hz#M!|W2&gZh>Uzv$|845^r zdH81;c&V#E1YZq(U%TO3gPoVUOj4tJQ3}p%GkZ#kXSVGJAIl+M9L%@32bHq6zasL> zcei*as&5SjUf{7J&0W0VC6#=-n^KzSuL$yrAg`vyt7-9SF!Y=muX{UTedL?$EgG-L z!&^P8=p8Tkex|Pl?A_4kfiROa7<_+lFZmT&hreg0B{DA6D|kRfhUdFM`>v193xMy~ z@4LDAX<&XdWpQ}Pe)u%_zK=3B_&#-jukx@OMedd1QUu%pEwHg0g*gdxbZ?TN_;4F z0NKophQGW*Sq%;;=ol`_Znq4X1XbJlyF``Sj~bm_8mN2-Lg*; zgjpo`;ahripSUEk0GThrg@@T}?N^OXaN&7HE8_XK)sS#PP^44lrj?m*b!r00jknUw zpgo<(-h!MYHy)+*TU~YDL^lClb$Q@w0K=bCA5? zXSJ>2xOrL;&t;CfJc()041Y$fXCwLP0*&Bbc9&!vBg-Dmp7lGBf$V^H9q_IL@Kd#hn(}V+_@o|X)-a!=1FA(W zw6~sIC6HL}$l8OpylX2#^h5ap`xJ?fuX6&OZ{pJPp*RXV7(R{imR+>K@$lpSO~(g->DNGb)%QKXG-N#0A%Mmmpx%2%iIZnNLyXB1LOS2dt2ayesvvNGj$ zNB|BL9tAdgB={jO*wfBNMuIkudD^+in%N@EUZ#<)#rP12OSS|cTiXH+RLUsP0?m%6 z=zh5x0+l3!w0J`S5zNj2WC!rt>JW6dc!AB#z<`M*B;?oMk6XLRxJ4hxe69UJbf!H268 zkjOt|qd@jiuXZz{B#*DvGQMgUFJG^|tOo=osSQ2z&7Q1CBu`-KDv9d@-Xo&R+qahD z;>PReRT~HM0a0p*gFPC%SqSi_C|`Z_R0hMV!cKkGhU5t%rFDV?)4^u;)HP7w!ulCg zeKyW`l607*#_x^nAlu-p!F-FwCOQC>#6=j$rabGFr)x1nb4ipS@b$0_>GnWnaH-?L z?V1wJUbX1^MfP~et67zjw>ROu8kSf8s1T!H@R0|f&_sr z>OFWoA4(a5JrDlNqx5#_e|wugBEMsD@0h?lKL2jmq^iU5s|ZJ1 zxbaBOHVM9tn-C++lrk2)5zXF`%;Ia&;JYO0(*%}6ej^>;q%29@-<2CE-bKpm_L#aE z>f0}w2OeNH<=%+QKF{)AWYuPMCsLBPZUR|YDfh^OvzZs9}Km=uof~|3QXB8RNt#L#;pi__8&XIJf$1D$_)I3Td zX7E`1tC_;F3WVTjeeX#3Zh*B&?X~ySmnusj67R;@yV=3@6DEmRnU24F zT%LTPl+p`SVU5AmT&9uPTb6*ttYry#wQsJsU)h=ooVTq`JQiP)#-NYcBgDorJx&2s zi$3x4G-0IPDyn@c#Mr;2L~9k0ee|heDZR+Y)mQg_v~hl=`@#yAonXyGgkJX(tRjNt zV;k=TBP8PWdXu0ej^sQ0NJfeoe5DN18un7rQt+PgN>E{Mi*ftzJ?-`4M`lecTzd4Tx#50u?NCYz-v(GpxvCmjV;fWQfNC}dHN|N$PGgzeG zQZ!+aenV7RK7;^+$dd;t?6V|M>D!0XbsC;(`w+Ly=OjThsW2xAyPP6;T*XruiLA`X zn!*TYF4D1!HB($z)>bsjQ-M^{uaro~AUxdKTXTTQ7lJ8wckb^odlZC|2|4PJF>M1J zsYsFkijaEvQjsekK`gtV%m zu#4cULG)7GB2tuE+>lMm;2MYLbA>gv+m6NMU94OGfJCXiR>qLTdPUvr!i=aBDY0Hk zYebf>an@cd8wcTX+Sf!+4Ma{VyGuC^3?lJXK({)QvThF@Q#sXdFGpx zXc5Ny!jvh6K$eo?$Gj6y&o5%+aQWo=F>7!61d`UNdQ46GuT>Ptfs$F7`C3JdtTt|m z6qj~v@2#l>RU4k4ctI=dy=~mbpH?zvo}of8q>);O3c>mf+s{xTSlRPC@c9Aj|ZC9|kDpGNfyf zPwzv>wqfjHuINn01ft8{ppjvn`uAWj%gE4eVJ1?Pyh?*oLePsgX7`djtzmyGOSSFUgW;^AgcW@C!fVoS5=4hLaUv#{1+ENeEUH5f>Av)#h2 z%cr#nZf(kr@c>DzmSP-vtTunHhevU+&&fgvtgodQ{lqd`e1ZDrn8l!H!&-HL#09Z; z%|zZUumf64@yjtu7E+WQi*Az?3!o^qvI5zgNLDMQol^n}ODAOEv4&i*fGXNmiOoup zXp@vZ%ThL4S-C8;rm#K;H6l|DS;Z=>ftgPD@Qew#$SDcJMc&BezGY~%ww;Pcl*D3g zu7)hD1VObnTWS{*lBD+KX2qte*=e=e)i5xSif%iuKsK|L6`%~tLc~>(yn|0c4bv7; zmf$ip;~pWOF3AlQ!LgZk-HRrTtQL(DGw)7lD7?uB5NDcGl8tOb@tIV zEK7b#8d5nyVe1VEIWrA%Ogt3?fE*erk+_eQy*4~um57u)c}4+MtwI8_g+-@QvR5s- zt-1&t=4-jd(j26w_h^A7D6%2dI*X!yBCV)Z7gshhYw-oDqB^I=_t82_7lo1Q#(rNK*HhAy_4HJYI8QWwii*`+Q}6}j{v%J$7^!3-^* z{Dp~XVfbgQOx&#uoW6KZ6e&{$GGFT^a&g}r^FX$tJyv!}Y+triye>+qTn1DP@>U>Q zl%Lcy)t8{`E+If=sI@J$@RhK3k^q%Kz6(^D4kB1jwaWy6YJ+_DnMIbM!kpnSDWSZk zfGj%aDIm$pHub2~I)-XcWZl@NEIUL+I>2xjH3N2$<-_<}V6U`qOQg-jGSN5jM0gOA zU9jC0E>R*AE>5TAa~=WN_SA5+m9p3UDcl|in7CR2TKKA;*_qqFP6r^Tf$TD)e& zy4_eHo0;jCt*=dOJZh}A{Z|-!k@a-q0p2!No7WWF-iEdD`t-ylrMSxABipwIZCW*o zmq@g*KQrhO*!DI%F-lrPCfp|~=`d>zf414ldQy@GO0G?;E~1O%Zw9$3I-Nzg*@=bI ze3@y1L=X{h8QR`N`zuM4B(?aN6BI!yn*ljMvq4y7ecO`E+E%p<_LN;Ls?}G&w_Fox z$F*EP(|HLhv%%g1{mi_JLTbmgPE(PMX0ELbshe17i&S-Dd(vv#$z+$ZZ{hNc+oaGw z+pQ#!1|jp$YiVN7*d|dAYqF#=u)JGwd_))11yCWD6Hd=-p@-Lnt!i& zPs=VQW;->fV<1V;ZYB8jO+g;>v;CL96ISTHDGcGc)wigd^DvR2TT`+JBZgQ*tMBt2 zH%*g8D3OA#u#m+TwS@^JLE6a#s+5|NUW*iCqu=#PPEc$Gm(oQFr*H9m$0J*Ii7a2^ z<=qTu*`-r#=3C1g#`d5Z)0$F_BxYMWsF9Vs z6hfECX9z~|eExYalD)6vpbys!UL%JQAyvg?U#AN#th)mf032+cBcl-X)T>O=+ckVV1UN z2MXe~Ey^2-qXt#$iuZzsrgYc<*$;UXV+AW;ZDK7|-aBwAWgWvnRm7}hGW z@+gMGman0Im(9R$ZCEQTY}c;Joe0RLc-21WhIL9WuB+zDkLZ=sOJD{pA!}a_MBPt6 z#}k{Ge=%xRNt7dj#M(!CNGVq&sD{Q;24o_uASy6+i?Nr=oPh=_OHYjdVsZCP! zH=EfS4kVE~IK+;kLn;**74JYLiRq;6;*(n`HKj$ENNZ2`MK!dUEy+M3(F{lv#-+E& zux=j}2jB8F5n!2XW(R->{FWpDWPPp0D4%_+4Jo}umL&e!t}0H$C$gfI$T*f`Kllm} z^|@BDz}gR~xj>RN7vxtCMA()cXD^vQkTmNA4~nqu%Z?0WeQyPMR%?rX*M^o|3Nb^g z?<BN*kOc!9NJ$6xyhN@Di|jjVJ^kxn%%5kU@9ph|Ia zVVL~x`H2O~CBj}sV3aB#c;*7rR=GaxORU8Dch7Q~^Uq!G(wLo@GD;JRU z<=2C>TuKEAAe(ZJN^O}UNmr4w8$3V?dO;M1am5M((anZSl5h##bVHt5tCU7T4n1r) znXdyfKw_5qh>1*G^6OzMN<1HG1srX#hBiroBu}eaFTbJ0N8N0=KqZODX^L>JYN$mm zZrI|gs1|i%7Oqx(@>ZboH5>C4dSgIaH)ic6sJqS4rYEm@cqtpP!D$hSxl6xqb< zcq&_a(j_}BkY%PY0@>PBM3kkVhHy(3k!26hj>}-bEHbjDBC;+N8R;_6;<{sfnPlI& zw-QJY7{!o>H5AwsX0woj8OuuF;#ofVM}}r&>lpUZ^3~I=M;taik=5?9M5NShSz?V6 z-A-KNSAU)q@{dfUFmpOWXl(3DR*d(MJlCZtrhE>eSjP<`KP{9?ocpG(s1Ld zi8Z>_3B*Phf+Zo?H?~+;1HoEEP^6O!HMI;52DH^6#~`-i)s8FF+DA~CjzQdZ*FM(g zGB`VcD%#%saD;V9T9ybbtZhdYbhD?&aSyEsrp^KNO|pJEUrMm?i3DJM8BBpH(=Nt} z9TZBbYzPS=-yu*SQObacAJ@hU0)(}0uvRbUP#hWW%yY0+mnRgVDWjwV}O8_P;AL>VDriSc}rtFf4?wg8}Ks_GP3568R30 zFiNFFDjS0}NJ#)l(q*J%1dCZK7bCb*ToHbL1g@s!4}`Z{Ny4*TOLhz#46R&D0HJJ^ z%mXvDav`h*DTg4lNr|*9pz_u4SuT<1Y&6b0BYDaefo*T)0^cafNpWe(Vq?U9?+6Ew`Pz#_;Iw^ts{)Bc zs~WC>wjpaMP-Ql}+pfg#p=xVw=Q{9$D6(EjS0mCkba)ik_=;|vrLw_+!bRZ{s0z983|f2akVUElxRbglZe$2^Jq;a zveq{7u$+x9`6dzgt?M8-V<45<5QV=7H3~XMLZsDZpaqg3t-jneVC@|)0TSz$WFQII zo+*n(NW`d9ABhZ?NRZyhdQvIP+gy~`xGS=@XRgK8Xg{PrVsf;G_Dq4Sy#*RbtUL0` znM_Ak$6A57-JgNEWro~rEDZ8K_D`O z_2x8ZSvF`F1Wj%Q+B&^}G8dF&Z2;P2UQm+tEzpMdf)iQFtCDC)*V0_rVA|Eja#(1jn4&sQ{(`u4T=>&V>1MsRST?L>0(gd zHtK*j&K8`=D%z|fauV)>>I-WQh8wwcg>M@~3(CHA1!&!|z;EuZ;$jrKN+m#JqYJD- z;bf4wXfpLl3Hkh~-^eOIcwNORF@IW3fm!lWi7QW*6;pbgFNYY5CT` zRJH+XV5*!0jg2lSWi3*+A+n*Ut$C1`bvJGoW)ZnLwxCjKihHz+wC&xG3uN21O7pE2 zDFq>xO=ehN4XW`#b+K+*gDgyK9%w5iL92xy#PK`Cny9?3>-8RXlRL4vIa3yQ1_ zia$g)o%DPL8oO9feOm?xRc51AKWHMGYTBVWiWa+2e+Q~5x z;uBtVMPxI_Q%FF~4t=+PVqM#l3#f{mOvE?G88(C>U8H(*g>SZqpl|jci~V>V!SE#Ln|u)4L*HZq zKvnA)#2~S5L`W!~OAouvWw7IbOhO};(wnjfYD4k_$7jv1ft_y-Hv*C1PABu#Fde8# zB1ecrM`lA4J`xM~rx3M3>;SdbZ#An25!x-rp#F0v`w z{3)gW)ASEiGkt6XsAjs84Kyp`g37GNwDJ>K`*idMs{axzfE*}2p@3)_@~0^>7R+Fx zq`&u$V%sq7D1#hJ?p*^Z79!bNikDvyIdj7TG4s|7pvGBJ0yed3Xp;1504|A=PLl~4 znj{GeK$RJ0I%R(`be%GKc>yVn5)>Iq9)9AR9E`wT(JZn^%hYchNP&l-?4j#UHs2aV zE&9xn@`bME4U#l8G};3xZ4*>qGeElrrm;8}E~cZB$DIfwq(%#%koQW9L8XkInkk5k zA!*PD3PF!M0X1*km>wj$I*9=_7+TnY><3T%?wft9-!@QVzV)3W6?SneIvl~lrzwKL z-7MB3G00MINLl+dOc2x}4HJWGk%oyuWvG2xB#3M>YkU}F8{7{V`LX zt&1eN08!}qvI+kl%@Db+=RD#g_vsFV&cO#XcnYgFygj39LF0HAPjR^hr;21gx> zp&8uTK+ROdVQDmpyBI{)h9rUR+ghY$y2lP=R}omPF5!#Zcp)gIERP-Y>Z`SGypu!* zNFW8XNMI5uyKI~FS%P>yCK*(~393)#!S?$G1A*l62980M>2$)dV3H&OAZy45v0J~E z-GfyGPA3A9&)l$!rA$))WoJNSutgadfGV?YbPt8X>bUF$7&62<5df$fWC;i!BH!9i z0^sL8YuavL#?! zv0)hzcF%(KxxV8D?|5;agzSwoFU1;EVf91y0`{B4OiwkC4fz&*ATy-O{?OP@L!uc+ zYgVndUM#S+DYh7KB#2wse5+c|0J9ksvC?mMsA8pfiitpxgTOYV?E+bmR(_I1NGAvisRiFG5$Nq3>Fr@9``)EZigFt3z z{X@1igU5vF?s$(5)Ig0^ZSX*iR?Y2$M54tF1D2hdn#)0g%8c8j<`QXB(r+2TjtR}} z6c+DkjRUef^xfLG@+r75VdsB-%l4JtCbDWhy*sEf<=0I94Jm@PonZN31;d(P=n^ag!DvlT61n%x zlSYal3PYv1+RrTJH_^oyR4I;KtSi;vpq(AYl&(3jp2~EzVjC!*>k685=*oBDPL|U0 zf|e$_Eib4x2eL4Ix7fCo@1jm@5KZwgaM4HLEizovB8e=!!U^)^Nn$fSjY}zxR)UQ) zWR-Q!1Q>(xOjBh2v?-~Guy2djy^BM!q1*ZZd$VC4_SrQ^rF6xEuZctp1CSM^DZ-zu zJxvjwP$`bcF_EE^$(cZOb$uo>%D037RbMSii)0E^Z5`lYA2hr=fX-df^kacVLtddq z4~-Y9VbmC8zv~D__Qp%PA!=h8WO+cPRL)|pv2R;Duv=GH{otJ&6c)N(uL0yzhf}pE zwM+on%vK8^u})J&O|?w!P8pslj07U#Szsb%30({YRKqercR$o3%PucxO%!YW$oQs= zNe~jXJ>xVNlh}4$%}Cjlal;;{PVM1DAW5F~2_4JlDhd?3GDoOd+Z&NtrJ=Fe(?waW zZM0rxP`vq`f{LbI$_8z^DC@cdIwcgyreuI-vF}^s(=B@Xtx=$J88tK_(?x;G-oVWA zOt;%2eatopLNJz~A2pHMKMAU@p4P{V`cw`GYSFETVY18oyN_y+qt2akpm?%pni$q0-^vW+SjzIu zkheQ@O4|gmr(2TQY_Warfb*?>NC^chWo%8ya+1XIyqyCmbW<#Zs$3S7GP=k}u#wWt>YT#UBkV6Aj zw=%o3YC+$eus}lsjyGaqA}hP=3ecJfi`)<eQj>v?VHmHNIbJ3bK6tjYP2_aP>OmnL8Yio07)gCz)9j_!@^be`c}7ZzB$Tq zhu+{L*f_)COmq_ufFw@>0Upz#REu=8+bU?$X^}t{h77mD5Z(-2SGcOGNLK`wO)EkS zGD%&GtSVG9S^9!(AH@mPe~AYeZL7WU*)}zi;t8uYgRGh3z7?jJhLyK68<=UBoL34L z*UfI`VzsV)>6<_%VLq+sY|R8>odm&}Z|z>DOp@A1x0s=ss+S($WR3u0)}jw2)-C!R znyRqc;2k04la+Kq7f@p`%QH}g)m6Uav?P`3(nGD4DPsYW5+0?R7-FyJZ4Ts0Nnn!X z0?tND0)5X(QpaVn#?jDbW~!!rc8)i5ky4?Cpu!q;2?R8~$Od1^IUDuj*&Z~IL{2<_ zNPVmS5(sc?toGWcC*Fi7$8{nAkfrE}$F~~RRy1ePL^pu|$Yy%|2q~3<2+H1!%ZyDI zS#8RBmv>D{laPAU0mVF0&Jo?p&^$^6;OyIpwEuLaBVT>wr6Pl@J^dZY&y*?dKz&mq zVw{M)Zgxn8O}uQ|3?3^=kYM+slyzL2)@dG81{H2>1=xzVd6 z%{WeEZRn@lBcWDUB;XX3-sVRfUYv``cpnEKZZazN`*2h@y900EK``oZ(f zHJreTGHNqbY_uMAB#F&r+XgCSW4DcPCY3GnG&LENa0zT!)@-(V>~Ifxk)+|BhyxT# z5yXSjBx&C2LpR6)oiqbfhK9FSN0TJFWJKtCFl77~QYHl;kx#_ou0Byp!~yDCeAjc= zQxR-KvJDrBN%;&6Fb2D-?QI}wmbn3_!s0dwF5UWthN0X_up|WQD)`C?)-Voiu4sZG zNU)*_MgoHJIpa7PQ>2R%;{&jHJ@+qnSmCtp$ zyThnf6&TN<>Z^SoD&w0Y3kF>c@=qX%oK%93QOMV5pOhe9jn2dk6iT(-Gufzr${_@P z%asn^FS=PWfTU7J3pO-GFmZ(Cp>NtJaBY&-NghBpGiyZ`icw#E+-7#J^B)&+yNa&G=Q0~oLnOGM>LWl(r z*whOoA9f?;7Cc6lN)YMF+;?4fL!Iul#Sw&D&NEJT2av@mupEL@Y6IckVx|+xy8Om3 zfn;+zSg)xoa+88IGY=n`<8)h{w&a13AhWrg-I<|)gkT6B>X`1wA<`r5vvORBa|>eB z_G5-DVsiM>h*=JS?VM}zFxuV?hw6@WkMtM>^ciLeRxlu>-daroV>`j=({ZRn91_EY z5Twei`bS83u~>nS&}vl#6esGt%=XcqBwPqj0@or3LZVg+8Mx`7G;0>1Vo_z*EFh$u zauf=CPtSKbDPu^(VPV0($`I*!WSId-a@9t%kG_F2McTZ}F1DbkF+qE+LP&l0>IBhE z1!N0O&5qMd$-26XNNLFJev2VN?L%FNd@gS6dL0ACg-_jeMgb$)XS)cw1(UZ=b8)!i zI?Y>c8t0b=+&gxNpDYf26eID)frDC#1@Oi8pq(NO z;){L2m(w)hI9hU~7B>j7&Z+HyJ#?Xf7GZo5GPvkrr}0JV!IzsAfC#xgaec_ZPSZ3* zNX2aujx#Jlt?Osdlu1^E(nyfm3>#vyviQ&wVzS`08XF-sZ83ai;&G_Xkl2~B0XwWv+F!piCv}^q}B3;~+ zZ0jjpTXLkC=#0`F)MGDwn9a0gh}^*$ARQ>}aLKu9^ggn*f?e z?w@z9;J2lu;dwF6&n&;7FnZ~ z4b0_CpI&UR$hf#W=Hq5Win6={*eQx+%n}YJ^mod|4vR&C1~xLT<>1!SG?C7Ob(}@+mOB)PhfeVG*wW$;B45 zL|TFHC7Q5J6hdmxXTn%ZRj0Rz2sx*b?A;)A{Vrfc+R_P{e@9Aef(5$EnXTD?+HSOX zIG}O&Ru5)tqFwo<1Ya;i^5za{%IQ@UX~MiWcL=FHn?GUcSEp_F1RHmC+SW|aFNmP6 zs>Uz~GHa}%ZBTE$$Fnyr0AUs+H_sb4>E;=#elZ(-5n6n)5_}Op45_mSK7^bmW`hvH z#BjTuSSv!#A`S#Wh0x-Qpy11uiS;1loI*A1_uQV=6G%3$S`>^lVgO$*F4hBu3A>Ij z=hU(ZQOG&P$`K+~@#UN%RumAp-UUM6qT;r9f(Yd__ucAiIKXihZFZrOaTfR1md}V3 z@IIb~1g4Hziw%$M>bq}XA>`ujyY<$%h9E5I^#@qeXiV|toLX5CG7!duZJ{9Jsbk(f zLez6Zp?{joh;$Z7lh7c!A!ErJZdiv1XSzX-){PL|Ajcx6mB;?Q5YmLhmkQWG3O1Ii z(*guSg3~%}cwlf&qreB?h;$Z7?znrQLA4x#kPvAB!rs2nth;GB0wEW7Z>`$4w=d+B zW&mHVMJxpOIoyKe2!u2^zH^08$f-IlPS_zBPUB1k7AIglqprX;>|)sLpZ(LTUjjd1cYcV~1d<#eK*AN@o)jyxYW7i=7ZOe_28}f9rNjFYKMQ(ZygJ-0!)6>cOVVsyc zi?QpCFe23z%QP_Qb=6v&5YiaQaT)3~Wm%>{NQm@C7^kqV+7rlz;fQn=Q=QN2aZ|`G z7=wCL164}`x5G1N7j!0pFJaIdXsBm}0;}#3QY}{9BP2Mjx`!7uHS3)-^ttMvkMv=( zB{;ohMo3ul$v#3Z=lN%~J`9*$wdu@v%3#jyaz>Vw{D^dM<4kw((G_W~@a3+U6ut3A zq#@Hb2O$l(cjIuW<^m>6OI!A{hB_q=z>3;gOqiCv>~#%Uj898qxE-!eTOdP7z}vVF zAwi8T6sMDS`1lfbEtf(0EjWEf0RL=i)&dzq&S|t-1jGGvb;Yt5iXL)Se9y5OPCiT|Pg6kmf92z-*R)Nar+L^AQ7#0o}S8na$u~8tB%& zfcd1sKHtEqOg%P{N5~DCY<%E=PhrW%4G6he$)s@o<^rB-Hke1GM%scSjw_VKc7v!Z zgaoHWMPyM6K52k0g^Qa#*Y zqA4PULEBBh2-L86qRST$YLSeBp=JN@Mbd{&3oFAY5*8d35!d))ahw+^P0p|pQnUDS z7U2^iq7DPCIxPtxM4aJEwb-Z{MBqq?#0a^ZRyAxe9MY!FPSj9b_yoBKPMqVaPHp25 z$=-s7oF*QEkh2J%AS{C6X^Ov7h}TKDlZLN0D%@B)T|KDQw032rr9 zK->l)7clVN)8j}G;KCpyM0&t|+Kh8Tf#hRmgwz#Zn!=P;Wxnx@`!VV?9CQ=qzVVE$ zq>CGaHaLR?vTHG6djE~HM;F&>h>-eV<_}wCQ2_*VR&8Z3EU;9-XTb;wOXlS;%TfzA zF+<3enG}7O3BJt)ycsplI-Nyp6^x>VGh2Nl6w+Kkj2ahz+=7Y09NG@gAZTibi7!EI z^D{6$foqd)gaocxGx(oyW-bgisH)9=5ppf2WIarQ7PRlcm*#`ddl3?xKJP_H;F>k# z*w%G=#>v+TYVlCX?MS439yGEhM8*qfwG25eqBviFeco7n0R_oi@8+Le_PB@hj%Iz}+A=e_F zg`*nRBHoISTh}55G7BM+DMG@h4}n2@u2Y19kU9oCc;>Y39bYPEt1w6$&fQ#iRd(A(6-|^yK8oD$ z$Ob9Rv(e%Ku1<;ge7PA0+Jf35fW5AvfQiTkUKbBp_@6hILl+ z$j9gi31@nL1LaH;UhVB!4UwKQUhQ$z?cx$~5Yk9{%Z8BpU^6nD8))FX=-U+=Dw70= zFQLx1@mS>zglPgDO`V|UqBtd&}n|59KV1Nd{H3am(xfL3;`s5ISW@j zgveO<<(yn)7;+Y(2O&-%ez_J-5`-udF(>fJkYOSBX2=bZ+aN?iiC@mbS;dfAkVYPd zw`9%uBD>(1vPhSX5P1O>9(PQJ;Rv}aTD1`(LGw!>$p#!D!y;2~hE%m2jUZ%@bbSmV zjvphPg(S?70F;YXW>JsioD3lj9KN{a#uqslztl~s%^3=5u8gx7tEPua8)Aegj_^yp z)rOcM70}v`kVi$^V}v{$vfyG!c#)!^Pw zmB|X5Aq|dpy9jZ`~JiGVof284_gDn_?^} zvG7ZSDupRRW+hUQBIIc(O({caPYP3pT+YC2lZ{9-7HzT_5-c*MLdZibO({ZDuJB7E zCQT_r2FWv3#@LAT@XO07L+Y)TYlhTKt=b5AY^674$ly|BM95QHXX^+VFY-LbkOoeM z+6=j49%(Jf5QxpJv?L>B($|vAkf7Ge%#c9RNjpLmkoo0EY8DXk5Nqd+kcnNZFGGS_ zK2H&H-?h7D$dyrqV+eJQ&W?`Wf4;}SdknnCz=>h9Te8TPypRjntCyej#35zp)!b}dI zurR|X49xHe>pgtJ%FItL`o%?jsw@rn@LOeR0gT@&OS5tOR$1Ed;bxKAr6D7Jt1Pc} z;J3=so)5oOmWFNkt+KRk!;_6FOIvIFR#}>O;dxy4Mr(0Kk_7U-F zk$Avw#S=@YL9h}3s7GZvQpn@J7%G<1T~!#rGe-AXfC1JcTUNvvlSl=|P}Z+z;#0V# z^(1}^x3nI{Z{e2KrueOKp)ny z<9&sOw#jydqw6FD7hZlChhg-sGu?sKRS-@s-?h;N7~KvMOVP-4;N`T&*YSl9dfAUdtY@kSayKp(y=$GPG=f9$?) z4g`O$%%@8tWOlmxr;C5O0pLr2s*00S&R*q8NB95afKLyb$_Jl3{^>@b9La|l%7`3N zj;hUD_NOZ$Obw z(S5vM2}J0k90}9D1vINkn9i*`i>6HR4Y6=>a4~T5Z(YIAEH`E9!Wb#jZgpv!tqY~0 zLX{H?i8P%e+SJVt-N-a;lDU~Sc`eYiNr(&Dq=|g!8rzclr%askvXqHa?i6$-Rm7?5 zsJ@I!t|V8yB2K-jn~5{jFS-)ta2YXma%nJi@`i}1Qxif|N0z7?GNA_1JlFS3o_Z@c zlc!u0%lnkbb6uDe_h6fH@i>b-H-9_isjFPNMJQp1$hXfca*%>L*>O4J^i#r;ToT*V z<>e;Zl-NWfv-2#jsT5L+l3r+ocen7JdBY*lF{JPfks3v+&8W)3yws z96Q}B#3#pHmkaT!vXV)3vk>Avr?svZ;*--_&%fZ4G^0o1@X7AV^BZ;oq#0d6#HY$? z?U0XxHsoatHV`Z;PjL8TS>0L0C)<_p0(`PvIflb0+m#oCHM#r2C;O}IAU@e&c{RW% z`>PEiKG|Pwoy*qW_ID@I-~7#RdRzenV(}^D0CVtC1+3dwmF`JrDMYSI<-<(xbIFBi zLG7r7n3tx*`#Q}AP?o&o=nB2un@LEPj~qGMm75&7H^ip;^1P-8Wp$H(C#X4? zz!H>XbhlrAe004ZN)5zO*pV9_-R_qsA6@X5&tSN+U@F_7w4}TK@**s^ZMyT%9(K~_ z_HTwhJxF?oCGX(Yq>qz2E^XjMoZ5Idh*J;9W)WFFc6IY#Pqs+2uqOSRIGz?~@jL3? zv{4pm>SZ~RrrZI&E!XJc=D%j0n5*QBQu^VO+#e4a>64sPYCwE)KFc>MK9ye^069iQ z45zo8*1#n)%gQ$@KE?f|F4F_3h+$dzjmIY$jojJblkLi<4L-GEaYKOLY**e?OPt`z zXtAoe(e0${wd=nb(w5FFZ|daTIBfoiO;WbJGsxn z95#Q%Eh$^>9=y|`GT8e*(!F`N{WQJn-5B$spA=r9W=*qK*oR3?5BHe>D803O>=P6Yz3Do}DOr<1+tkC5$8=lZa zYe5ykI7-i&mZnV-iky+IOGhCMu2g2+JX?87IXr77;87MqDJA5WO0z>Qm^2+URe2;M zk1V21=_neS3A+}j@MAxvYFBK7a=kP=l=HfY^S7fjgJ)%Q(N32o5(Hf-s0E%j&{J_v zcnIe5MDYkNu@H+i3=6zyps>{vq!Bq_hi49Ekb2B|QW6|ob07mgF;sfi4X!gW?5J3Y zWY4IXb;_qEY6i6+hQP@M2jWS=wT@SQ1Et~>wXSJ~NdL5;idSx9<(8u*Sv zMsAQX63yg9Hn`SJibgmXB@ayUl`%Bxy+!5-R5&jOAn72HVur zB$hy_T9D7QPOeF8>k-BVZN3-}w^t_I76mg7n~d0;qBQ%^yBERWLpwC+EwF|}a}ajK zW){)>f=g^|gh9L^#_?Du;XhcVSk`tB!308UCLAwfg5#4*EX99h$BGnGNE~5qS~MkL z8^VgB4GW4vOO0ZP@uvW_CM8(Dpn2$5P;0U=Q4JJ}5Q7@@f%&iry)^oT9_*HENu@e!z>~j##n+u%ig8U zv$XQfG|~!&U&0cnDGo3Mr%YI)sTL5ActNhc3(U4k8A7w+?4NWtVE9D8vT{QJsK6ho zGFW|e&IX+25NSHc0qu*HiCFwrZAy(Nf{O7lFqJ5qXc7jIDzLulhO!l+~el zAXOq>^x&VBKgsb?6T#2`Q#yxNWQN5+y0+pTOL&W-2Suy~`uw6gEWk2zLSH;faFYF7q4eh$pf zy!Z|9@G7g6ZQ)H;ik5i7N9}T^;J0ArVhR_=!n5{I@wryvilQY_RhEk>Uu@N<%91I; z>QZGn{qbAzv?}x#lsw6n!{mK_oZ`LZFcxD{^V?buM_vt5U6Z6ySe6A^l^N13 zVohrohhMg4CRh9hc=!a>;uBL2pCDt1zM}5DFrsFZ#U}PEj*<{THiuEbA&9!W$hy5GDAv4FOOqhFrucrH6%`aUA3s}55tg8T8q3Ur)^#)apKp0AEc{9{{SKvH-395g zN%n0JSml$>{|DR#@r<8wB?PF{*y*^jxb$HazjT$>>Cd?SG1Kk?6|?{08EA-tI&46g zGqQCD6mEbB!ON? zf>_O!-)eW)ErZBz4Y$l)^V0Z%|64$Z74gRlQaNOT45K zIB2M?JhzJ5$JxH3Z58^A18wV)r607pN4U7Ho4GO@f$E%VWKbCELbvbzTFD-D;go5u zV7~Opwl(xtq+4enRO?)_A+=d{Lj%A8$Pb^6!K#B)(T))$7%KHU*L++-Mn+5N*1E@g z&ctnHdnJ_ODM!U~Q41DW!9t3)UDo#M7rVJl&io{J%X$ z)$1#ae*FQzKe%?SHyR%f_KwGgXGeqSwLeXVqw(m+>9y0r`RU4FbTB>~j-FjR8tz|< zfz=s^0TAye*Y-OqnWempf^383=dA1+~Zzv__Vit`toEjej2LjefZgD$T>P3 zJROb(hfBTR|30LwM&uyoL)X2#6g#y7yMe*^V7l}qx7X{<&IKei@v;}HSiaI#Z3OtW zI@#;RUiOBg2mR5r!Ezsn7>@AKKQBR;3{KA`BPR7e{jAq#cl!K=Y;&qSI66BVOxKtD zlS%*O)!y)QaNJR;Qdb4`{in;$MD(q!HLE5aJUtqZC+PQI`=`%W6^OY~UmlIW#Nc4; z`jeN-9}{8z+BQSVVkXyA*qd? zJsRJ^#QAOvi>T?cqsopEGgDyYp)$t|88D`gkUm{K8jPNuKCe@TNV#4|ogr%XNsjyZ z`S57aTORg4?TyNYdp%ZtpsEj^_a}t%*6H#v^(W%-03~53yR${EaM1g_hr9oq8+BE^ z-r4HO+4TAHK~?;9Z*YV;$I-wBbNxCA?|>wTIzO9R&lYTQH)hr)XzIGQHr95UFtJ@= z2t+gLt@PHK$qDFoV;D_?{;HreB7`_QY~if;F>22!XGYUt>h&ReeK@n%%+IR(s2T|3 zTDZ}y&pGyy1C`Cl5k`R>+5%9^nChP*>lOUoZvhApdmn$+OOusA@NY)f=b|f?~3c)ikLBmXVzL^o;lG<@AJI*xvnq|8Yq=BY0Ao^A97{0gV05@Qe!2&4 zJLn%HTV9Y7NEi>KEuW5G3`Wxuq|@ia>8hhqa`(yV6uX1L>OueLDCUk$aoI?jS0@83 z6Vt(RLRUnCn_4}Yj8DguHBjxVgvDzgeUyIpKI;7`E@u1V@zJ0^dfj_8ITHs(pH{|C zS3;kj_ou!6!C=&TK0IA5D!7(@Bme!UZu*lXEi9KkO#}B~*^TBh^E#7D1J-|gj`sUl z4uL|91lHmHVUGlkNP~G52paUB4kuHtn#wj}R00w`4jno^L!SLXSj-29z5eL1H$B^* zLVCoad-M`1$K#&{hgX?WR!}3RRnHjhO@1Cu2PK-y@(Jamv*Z22Z^4;BHSL^9*_?lfelZ#gIVoDMxmUrQH*y#6=u{;b;n}iQ@&)^V#qx(8zdlIG9|; zD1#ZJ=z^qC;xy*z%QR566Avz|{JM?(R|L}<)0uGG1_rWkYJ1BF7 zsPCwMAzvzqA@zcM`m)3a+27QMzFd~{P~@MS?#@Qj=fkI`VS!zB;7UzIT>^PYd{rHF z(KK>#NlsfuN(|g2Lf|g5Sj3!l(Vy{?XOm_~aBCj3_*ovzr`1naWw#+FX9= zI(q}|HS-QK@$kBS?z^-_iQGQ+A_+6nLPQw50c*iPw#ckK$>w0!s+SEil$) zH*vU{p>07CdR536F-u5UPy`B7>!BpH*HJ(qyg^ogvSuHmBqbnhuzMb%!*Z&o`5D*r zeP}0otU`-AOBdn_mVr=pT}PC~zL>qlq$)EiG0_vffm84=KnTLYW*+XdxFe=&VK5q> zJ$v3e1XcA0=ff#9Z&)k|&Tw>ccG|2abf5YM5fD~m=+RD&2Ix(0U#@7S)IS~o%BAlgeTDj~>=`4Cf=kb_ zk3jcWj=U#QKrUX0Sib~f_@+h&Dh^I&B}~IZ936#1O4aj5e>E5pQTJ~Dm913yi|#US z*=3cTH^>Lm;dFe|KOK(NyZVI0_+mmA@JJm_R&cd_M%nP#LU&On&T4dTZpo1P32vL- z>}vU_v)a(h3UzZ){qTP5dsXJ$pnIbW@PzJ}sY3V8jIu)7tfEYum1cxqkVzuD}>0Lp3t%qq&nS!o`T3sOBI6)#wbpl{Tp@-`TTx@RAT z8XZ{ePmjkdH?Mb2P%(LSe{0ZHG$#*dCX2jgw>~&H?qjCR8W+#9&Q&vw_|{4%a7B72 zbWGc}q&)X=Uh3McMDwri29`r}k;okYi>gEa@ly~y8{`6qj$pAG3o$5@eo7Xy5y1Wo}B83{~ z?t*!ybdfYurG4xqc%*v$oKcjC-QdKH_64akw{AzB1tlDIrkqVzW@5V_s7{;*f?9tg zf@+j{>nYJGQWibvOb1d$_Ik>}aqeyPs?! zkSZv8Un;)dl`+A=b6h2x&QNJS+sB32&IMPC!HsQa*zS}(W*2_8zc;JikhC(Z%1$kM zSX^$*pu}hUFBX>zzP|mJI&*>lOCRDt+sD=ajfPfh-X!QOu#mw;Ag1H9qtl^j>5fOX zw>%xf4r};yI5@mwQ#qNS{8|LIKYZ4?&M(%Gyy2|* zb0E=w)I@nP>B7mu6kG}KsNi;ew;2;>NO#e+&FS21yuj5GNEr3pAcIKf+_ zKdnO7wr=08OT0Y{U3fBdN0)}~n|BD^`3l@KOje@bg@uP}Ub#!L%;EH4aCC&_e0(O$E{=xI?oZ_H=I(Rmoyew_KW8CVTaxtka*Gu58 z+T69>oZ{;;!AQKc;|`YD=tFGgkHt9HAqXcAt`epTHu+bw(8e{`3Jpx~jfF-+x=J7) z5_e#5Ek6lg!2yGArSP_(lGaPmbz3q-7vKeR^U`)a8I(KsZm9GLZ`73eBAwLm2$sQw z&}7^EE`Zp-P&NAPwvt>sRu+-p4c;=%qFZ=bPMg-`l7x3k zf-jUZdvtmc9A4bB0~2@(nR2(h+WQiIHeQa;cyk_C4R~j5IFetGL>#dNczW?A-!Jm* zpwb~g7@67LP+3u2bV=@gi3x$MX! zf?Mm|S%!z_k+hbV!VY$2LdP%D66d7EVQv&dCl46#5h8~NsAayR1FU(Imu%?pyu-(V zQg^REp{Ij@ffDKD3km+1Hv_}uuAVyQS{i=l>%3_Sldt}Zvc5k2dI#TZq4LGZJVx0(wdUTW<671Uc60-f@rS|Z7z}8guAP~ zd5c_}Rb)wxzQ@|?2}eEAg?Ob}$|&6%jrXM50<>MR8NW<@W8?;;!duKTytdMf&^r7K zeFT@0H{TSu9neOM1Ya^~(j z`}S*4L%5e0ahj;?5q61R`sVezZ%pbYH{6X?4qzl+F7swNCg}9EKRTdyxUz8NORROV z`VKtB(0>WMXC%KXEotfxqruOAsKg~n=z!kebfacZXP~m`5@+v|R-a=}!DdgW7NzuE zyHay>!f$Z;knV3He=XzaUj1H>*=M8@uwvY+lfJ)-Y~R&At$xLrYN`&w+SjzgQX(k~b-@q-Z&i-R_cHAHWAzv@MGJQ{y+09Iy;nui*S*Ra4JKXT zN}xt`>W8^PMEM0Mjy)|^4ZYqayJR~1h5K{i$iI`WBtrRxhbOfYNlx3bq-MziW9(Hy z6ziFuRzbAp>}mOR%=)riTXe3xTJGuCBezXL5B^zI&b)anr=If7>eynTmfxk@XHTCF zCN&+}We9lw;OE}=*v@U+Lz5~fR>rW)xUk`+eYLSf?TUebfrYBTOoE78`y| zcRQHJ6FCnihWw}5{)rYctX-YcGC^Ill_(F*lvpCM$BbnM0A*_(v@;bfT$z$d+#0X! zmXMSP*^Yh)h4M!3@!2Vyz@Yllohz$>7yuK5Ty^yFg>|sTCNs+&7b+>+hOff@Vd)vp z`;L$m>sRGuu3XG}y_Ocn(4d8C?BF;=9%ek%Ni+XiXsR8Kt93rYx8Oi_kW&TLf&<$@Ppy&~+y+wMlo@V2O1Y27 zWWWD640$ii_z$a5z@&{HKbLFYY1Pcc0N0znOgCw*#!1|;e>D8>L10hjXY~vtvcri0 zJcaKDH#QI?eR7Gj!Soxam`~^n6wXr9rb6=H6>8?@c%{D1 zVveMWnwoh$zJ0Uh6gsl-%&=uWv2ewH-<9%Y zVIicZ!PZnLlHnt=IZ?tinyZa)p13z`2?pMgV8j1K+#^DtQ|THqt#S3nZYeP29M6f@ zs`%Uc-#&bF>)S7HJ@|4D3aIhVHdYkY=`RX<@`~NR6Lpi7#(+^?xd7-q<%_3n&K#EQ zOR8Tuq3Ejr@(LKY|DgcD3H4kROl&1+c!Wg|1bz0sGbKztuK`x(jlg8YQy%sXHqk6p zqCaRs)08IXBIUI7i(s2eSWe*yYoN_cI4Z8Fg(r8)vHEj=GFo0LxPel@LJv-H*hnwg z(0%?qJbj*eU`^Onu2~1q=_lHZzH}uiu9{Z(%(n>d3|&sj9XM>nmr<8dIakdP_#(9$2RZC+jOD4KlU{Qy%a5@-Y=yM%e$%)sc; zk)ZM`=rZd{q7?8p+eVeyGgdO|AV&FRVf(1zJonV~1VVUco|B9o})ETt)fis3fTaQ2n71#zKY|bf$ zcW>!u?)(-Qo46tW?eEzmX9!5@D-LTj0VD3vs45gMZDnU(YaZ&h7LsH8&^B^l1s8n;DJY}<7;5uOI>H@Py`w-&e zDhCe!;u^bwqASc*HdgI->#Ejv@Z2Dtee9^L1HAS_L&}tm2Qac4vfuYMim?~|@;g#B z1bXlgZ}E0Oz@8@xK)xEgtX0joX>zN0P>b0bLk26s8CA7u_{L6+$!?M=>~Y-QOuVcW z28GNTwgl}#UgtxWc!u~wylhr4sTIw)@v^zu>`aYfv{ua?R;He`@v_-^+)5c6Q>{Bw z7rhkrbZoU_r^M*R=4#1vi&8aPt}_u2P{nCWDw+#St;S&|r)v#Rd+fVVQ^ZBqTMv#h z)a{$!c4TXhPsw|U1M^vIX7mz_x>)hIMRA*Dl$o<{eY=EE-M9!oWva-c8G}dAU@8^4 z%T`5L%3G{r%@@%)xXnCVEs8iV4mI`1<+@tUy_n7ewbl7{=Ef{3;OHWS07tGSw~&N| zI4p5p?NMmB8@&4msi0gN7Z4gQTCp=cWyNN-IZayJYW40!@~ky7ybg9J>PkyPwa$ui z%Na{?%+5x1@ULUmGO^^nxj5HYJ+{2rUTN{H1|E@Yy}OqzWY>181)+n-m+h=y-$X-x zcdkYybvACPst>Yrv@yr3Sa#)tmh`9~ItEX-_}5}wv9W4$m5psy>uRJqvKP{ms2W(= zEe472)@{MoQdRS9IzwJriidrSTgNFt69=ptub0*j_{ECR7BR%PAxlJHYeFjozi5ep z1nW>0zwd3;Z&F4SF+;~}jV+~i z(m{GSr@3VP%`HT${=_>TLT_?3xD5oxGBW&x4Rc2?-T^0}j8_kOC6>H3_h3)F;&rl& zrnt-=<@t$0bnka1iqd*`yCPr0T4u+>(mw7CV|~FUeQl3fPWzw3 z_oMlD7{__$%j*>n;lQTCoue9Ny!VW`?^P{fOk+iOX10`%(&Uc(CSM*Xu}e@syx?9~ zA-TKFIKlJX!fE?fVZ5+dwied#aJ_LgyjS99wdZ6%^{3b5K(r4R=$(*aOSssZu} zW7FPrEFs-)S-*3Y7p+*LHUg~%C%)?hwXyWX7jSH@bV*Q_D!0uk56?53tYJ%I?P>z? zymiZWgOrDEFVu3W)6T!~a(u!}UTEm%8GI=pvU#X*FgC@O*$bcOFw4;Gsb5K)0d z^;nFKP&MNNWQ=Z3w7{^sB=X3lNWim~Xtuu`0We(B&GDExMhCcB@rKK)ye43=Y(jp< zDglbgvCHMF>ScPzpfLG@rMc{SEg+Oo5GfIkvMU9pv8}vRfL@wv38S{wMR0?FE2>S5 zG-}eiUtM~<6ZcKL0bMK*1Oo3$FDGD)(|k4RIz;u@k$}*Z-sZNhO|A1?@|fse)&+y0 zw7K1AG0jjnU!pYZAY_jVob1Nx-S*YGIctk6AuJF7FGC$1*mBgOIM5i_ww}dS%q5Mm z^I?u%Ky$T|QbjhZbrhP;i#nUghkA#td;Kp}Y$UKi);5~~%EB}sTv zMai>^(^N&dcD0KqRfA?VuHCQm*5uYEj{3J6y6iS8ws5+zw!U?RtiMTUU}++>29wC( zE~|f;wd{~7`9L6E^=)vJJTuUjR8g3#`L3ttZ7@4^TcmZac*Q&R zU3<+I(G#5w@QJ^&3z5k*FtivcUy@y10Dfq*Nw9=ibip$^Y;3wV0KM&vtx8GNCX<<5 zr%9j9_ERUD9H*Sfi{LAXrmYdjQwXNPhCKY1oxaqvj`ArY$lz9=J78p z?xei8){CSmP*7cE+nLatp(+_f2ff~a58{nZDhM+F+`Td@jCkdo%FRlhKtk%QyV_DW zxt?bGcU|5eE|~6wCNdGSe$rSyC~hjS;ipIA?DVF0t+%!V(VE-+#t9;c1nv)qM+J}i z7v?Te>zWhqb$%RyY|P@lfyj3W4EIB937l(ciSJItE;48lMM1w($)BBQuectu zLB;ACCqom1*NH}moA@kmE+uCZ1qN3_Ex6Wyop<|Dia$%7#-`TiG*!WtdlrAWm339^ zR=OJ4=xm^>I>NHq>cU0~?l`p7GGLsEylVR;Cah!VA%(OGY?vO~37aZVVL96qh!yKv!nwRiL8dNH$|A(p*yQQ7V5v&wF5&MCWrJ;0oHx3(@S z+iJI5!b}IHpzv0L|Gpf}Bz9yBkzC6bf-LaATI#Ro!%P7_&0VZ>oM`nF4lJTMcgyiz zgk_~gBNnXqdUL5MIPC&_{UYX_>7t&M9W+xh@=kGU7O#AVRuEB=3DO$J=VBp^ok<0w zBwTTtFieZciv?$I34G9TT0|-7gsp2S0F&NY>qOk5?RLoBr6;!wrS5uV2%Wx2=5CQ^ zfEEH2(SI4~iTRuK98r~;$)eMnRNoYXTGgk?1&`)`{;rw*aH$yr-gh_0+{Zp?zFL*wki4Z3Jw^ex+H0hGj_ zc}q+K(oO;>m{x8uP7O;5IUe*|i2qDw@w`$Xy$Me(WReh}IE|v@C6Ly2B6Mf|A&{tE zBg)gA9c~4ql9lYX-Yl{+Qm8C{*fBo15gR=r@=k0RyQP|Cw;U#vR0CUune3oOH%F~u zv6~RqZ17^^SJqYzQ0F3-s3~yRS$73ezFcDod)Z&M`z}8X}f zBFY1o{Rc>CT1cA9+T|9KeXA(C%zXp53ZUOWB9EAS%WSjFqF(Az&6;@Feg>hLYvV@Yu{H zOm{lxV1y;Llts%oY@sPGwpvKiCElXps}t`+!h{D<*aCx`UKIp<>*1Yy_dda0sv_FzvGgbKvUj7M zg2U7VN5Zz{hVc9bWaNN-+|x#X&>i<{RXqX0`F93F^JJ85%F{>mA&)qbMLaX5OsY@5(vm(hnz1}5BBv^K;=P(TH zC6ScI7Q#W3R$JIF@gReYk`)GArMa=d2&Kj;U@X#ltuG8WSSxbBXfjlpceJk+IyI4K zWAd)L#99~WQX0(P++0a(+W+wBQWMR_#?{`=jSeHoH=Q_9nX$oh(SQC?Pa?~2Zq&)K z-ogCNYtYQSE?HsDHe*FdLSBY71X;_D0uXM9wc+o-AZp`BdOX%0gUOcrP>W&Y`56G+YReGdS6!8x$Skda}JZBIX(QL9##SWx# zieP;}+_83Hm)lM^h1tESn?Q*awzg_T8;L*GrSGXV2`#AR)OoX^Tb*{~n& zs58p1bF0Nnz+O9V|6sCSs>p$k3-R$yQ1W!OW7Ki;!GV}R%PywGY9N};g=1;?cZ~<6 znO2H9(Jt7T4V2YBMfsw;y80BvO|oPciX6Dy)?&Hi8NNQJX9lVzSp z?zVYQb2>E$DGM7-ORcmd&+i*)C=mPZI?gxfYiVoiNjZPw2#eg>qEjWfbajaqkyV${ zcodCyY0t>R3z0E&q*0qr_nMu}dBk+(nY$_SLCXRzm=P$$`n4M!ksTh!0?NWUgY|Os zDN?)CXkxB8*iFnBdm`{V@u<20yTPUd47ms8ph@j|0a~;w%(JLshFra_y<6SXh{VQ$ zXe&SkGI8kDMkb!~qk%({stxU;9ZwXS!6>^9rr4&^*12J-q&_+9EZjajOr_EFvhDVW z&+b&$T;VEO&6SGvwXRNO1pIo_zaHi8VgAhHd_fPx+gSTdI9b#6K!QI@v41?SL zCpekyVh07Sg|)IdE#G=9LcQe-Ni#>w&BoT;<)+v$G%X~3pj>MUn0>~1a-A^}1a}DG zj!;1nNlb{dIUgtEEOv#5u`7T6?lRVj=?J$e6GhCVCW90Qi^#Wa>dS_s)K*hTVv7&K zHcJ$|hnQX9-iK=1!<(|d!sU-fTcqaJ7Qd0FwT}#R5Rg9WcrB7a6oAr3vL*U7+Y?L` zdkZbj5_cLEbatwk6m|AE!i3WjZnEs?Fte-6w)fa3 zyLcGFt<^RxUTkYcNo^xrU>bY7i3-yK!@4a}#wkD_RIe+vAYeY2Y~x3aEoS=De|dbG2rN#G|UU z!;lCY+Uj>B<$~Fike88CBCI*tS~h`{G}8>6b<>&|%38|- zW?Hl{=7B33S2~kzMwt z#L*%wEUhlFV2kxP*QEl~1z7(twL$J2npv!K?nb6#r#It{em7Ni%&*ptB8)`6pXeyq z-c5v(jlD!kWf`hPED>{V@FtV8Y!FKt>H_TT1zpkf%s1tm?Ke4L=Xh6p?A)`8Ma9Jj z+_fnuu5E93W^Jug8*8(cDc0T=D^YRTA7)C+rE|}|r5*-cYC!OpV!4`gW4$$tvsju~ z$z_DnI9AQMAA6PB3k)4H>07na6faxtB(4OL%D+5lX1^Ru;&8x#{>9{1kVK1iIt8{O z{TG)&%eF2peHMi~J5o%uoHY)kB`Ib})4D_I%;nk=XUXuqNN?S^>=ok5H4bdW+t6he z@|Lm~y0Y?O(&-r|VIYcl|AcZ_C$nyfFzq3oc|o?KjAlK*f+!@W)8vJhV>s6h~_*w z#C*q^`-Uwvm(NxUX|;v7&YuR8(>pkE_xBgVE}N$Uuw2@Th7Hp#tck(MEf8CqM?fYw8+4&PoMREGqWv(2Z?x!;91?Ly3anwNXAaX+0Z@*qzW^8ye89bE z+YYz$C77xv(MT-b=wAt1iLyqvK+0wA22%52B{C`|5PL_IXl~@JdSYa4t1&goR`iHU zD@O-7wbC&4A8ui{Hr8=^O`TlVD^7v7_3{I-D^+1JOILa~aK#SB^K_QAuDidfZtS8} zc|)2k(b#b`w-8qaBdRatC0f7aB#cU@1T-+g4hb)7?MJ1GaW97{6|cu8Ag^X*wOuL6 zqzi~@R0XjwFgvoN(7xWe1C6a}FRT59&`n>X)M@L>|=tqVK#22I6I zUDQ+@lHR|6j~C>>9ALf;4rAd6V6mQYHe7JbW#r`r_%bfF<kEdH*1p_J zYU;y~RAZ5{hWTirJeOOHEuF8Nf!tScotX4~8Rj%^#OF-pchg{VVzwIO()ghtdEYG` za$kCq(cPI0?p!_$9xHCu7a*8bUrG-3g>ZVLjP;$qJQ<9i_KwGgXGa6S9fL<>!$@!g z=akjK`N?>4IxWe)PC*;53L+}t|D@O1$?|qRa|h_^+^Gv?Zq02x>2eQ%o)4zEgs2b+ zE7AxJrb|x}L=CQicT_@;xDS2h2UcEx!0!*PUF(f7=l0yc>9s#ihokZ6$LY0GK)Djz zxTZE%f1G|mE<73h*V%9~*khKxm<1@=!&|<`$K%nTAL?!MrOQ;j6hXWi1|cG!4Hj+0 zwqsO$A!g?IRAUoMtroEn*^ElVQe_OWLa$JpaW|bD05_+D$*6yH?d)`Tw0deB@%LWD zI;aKZ_Cgrj%$#;rgmmkhZ}z@>aR0lz4<6mS`|y+A@|E6apZDrmxq7(&?Kl6iclX=x z|9bbqt=r$+jX4|9%KB^oMbZc+1!o7R(z<~Ofx>@ojf}` z9*j<>_xFDs9KfrEAxGvqA?BX+U$&~9q{vpTzYPaJmvyF`ObEHBFGmMoosAAohhuo{ zNbQ%=&Ivzw_eQ5%o9bN7Sw)vQn_Y57$EJMWgBH80EaF4n@fc$Ds8wkh9dn)!4!@fW zkB6tjpArcTr?)q|`zM(;5J<82z;oEc zDm6xiTw3Nh@uw&KgF&-rf9*GUOq$hxTf{nFnE$z^5Rp>P zUsh@7FP-vW@a*n+(S3)V_Ha!RTrDzVt`M1XH3^NGN=j4s&Qbrk z4O%P7wf@_n|DvML5Rp@>QDSNssTW_J9X%Z$9Ssg+|8opWzxWRJoWOWW4Pm7{7?8IY zMPo!rosQ2Y2Lqz>-e`JKECVkd3|eU{gZHO@0t3H0!g%K8u8vK@Qnla%gIb%`9+SbuvDeex0p570?dxambf2dzmjCtyo zh}cVm)>)teWPbv(c8fwx@^)Ue{(Nv=ck^HG{<|W&dms(v5(`D76LS$4jE{YcYJnyg z$#HrGMt^!R9Cl#A@v+XT2u5gSkpZa+mE>4LF6!=VM(UHxLH7NfhYLaWCZv)k(_+y7 zf_QBXZ1PNBA$%Y6dTX--e<7h0=SNuOM{6}*?hi-($;*z4LgvnjZr^%%_tLF@bL-K) zZyT-OzW42|2mf(#>z5wVUmZWqVY?YG;8(*Y4LrD7#qcqC*0!K`W#l~e5DRy)h?o|K zYZjZ>o&^>(=N)h%b}_(Q{B0oH>4ePVcs4nzQDy@C{=qjFA}v?Y1zb*@gSdtxz-mA{ zNH_63jzM7IKaGcnbfi!&!6!#U$mpZN^3iY#Lk}rj4CB-Bq__M>$3RWI*88-_JYiW5 z2_Jv#wTdabD$HY#9Ad#I?3Ie1j8CXIc`bELt!6+eKt`>LlnVd$;NBx@8W0UPpeZ`5 zAdmnZTS~Zd|J$$bef_<(6G(y|wv@y&dqsV?uF15Af4TSF-or-^?tT09LzIBkN{;=H zzuvz84P)0r=HV3ki@{`g@XdJq;_L(|)T|__i#vVn%B8_r{;7Y27kDdaCMW=ll<-c; z(n#BurAT#gpjbukbD%`#9V*xRJ8w79JVHTJiq`%mC|e-uEq$Ukxpd&vYI=%MpTct_ zU~NFZs|qwK%uGrOS$UpsBIzJg=V?-?o3f~erc`w#5e$25AZ9=V)g7(S;cf^~U*&Ey zvXi61X%BC}6sEL{8I}=|cuBMpBmda@_~T*OD^*}{53v2>3Baw>9 z0Df<7GZ6ZNV@~o*Bz?*R|NNZq)26W?1}@dhe5fA#dr|T1!NMgPtRfUosDv6ZlkP0_ z+VXh+$E!W;max@uXNcqe(GhmhK|=?8?`nuwS699HTy{u?a1OA7 z#x&a%;G#UIycoR1jer_yv0mpm989qx>vdx9OQcPPCs4L{EKpk@P6F*^Y$l^t)q7O%4ixw)6`W7q`PxBVfK3Fho zdDeHCBA4rPI?Rjbf(tg4%3W$$?!^O^1zSP>aNx6efpE;TU;&)gES@tSnk`zQ>o{@2 zvc=Kjq9uw`#s!N+aZ6iGi)?e)3UZ&nT(D*zOfHxiM_`NRyyO_PjxQH&sW{18v`BHN zxnPle!nt69d_;Mf0_7RzCCXiH>JhZd&Ao6qx*$a1uyn!PwT;Yzg=zzig$h9~53?v( z?sSyu&~3U{vg=u_P<{ToSQ#{Qr#5-&D7UoKxdp<2`Ye~5)A}rTIK4A@iT(dy23;IM z`~=!rIExz{(7Z5Zt`xk(DT;^nV{Z-*qIdJTng|h)xD48SX7OTX-ShR|qQ@oxGE?vjXDICQj7mJ}e z1+We~FMiC=78ih&Jx0tc*0mCc3c8Z!R8=g@uAqpRQ!FqE7YTv++0S35%;zuXWX0;~ zjQBA>TSQdK9wX)zYnuOr!p-P8RRlKgf+280_SC1q^yg%^q~Xf_droE$;=oz?Yfi?} zkSX-I5D4ZKEQEkiu!xycurv~L!7^q}!Q17o#U-n#c|~P#S#q?}gmO;7!cvU;Qn%WO zoKw8o1O|{x+t2w$i;Z0>Tg1&NTyCjcw2Zl^VAxm{1w+i7f@#C!QYkpUND#bInGl{| zD9B!^PzcW{l%-D>%HcVMvIOcvIebx}QVK1~meChfQQ?IRUyK;$sxVVT%x^%7DMhB?!)Z(OV8&KtGqY!El{HM>&~znHsO>5y)K^SY z<;l`S%1{Xj&QwK(jI}(#e05C77T14fh`&RUtR;t2F8}TWe#K>p*^6Mz(6wMIYga-j zR4mfWS_DIeup~1vF4cwyAsXW<8cVVxu|6@1%T$Uep+-Us#th8`Q{|hHA#+$HnI$fs zZYC^;F(J3_m5=dZJ#>Dqa*X761f*EUm{hHFp)dGAx&lwml|{DgzG3Mh2dHxuF`=$`^pt9!_(pOfDHOD^ad8vdCOO%4{{L zj45C(f_&Wo2WyY+e|dj-Iv$U%u${Z--d28qgSXbP8@7SNLt61`zv=CpPyy~6cdobx zI_^>zjLD?%jIu_1>fZ`0nm9P{TjAz#-+|?vkrp zy4qXHL&{L(noCb&UPGjUI(nz&L`Q#syTP-;#8`5FaGh*8LZ>`uSO0qN+r5XkzPbwt zAKm@>?gJ$E&x_<+|6V0qO-K}+`s$$ZN%Nd&F%%E2FF=5Lo(f&{n1;UC0^-8}q9#x7 z#taPK|Nhb5{jc^O-1_$GyUU^S{s?LaVE|YZq*Vik{Zkz&p4|Q{$W8<~E9-8XDvX97dITpw3d};Uo3GYzxiR6$CwgNJk=i#?A z!x&`zvsfl_wM%|st0j0l4mGUi0*y+duH-WH#4@=mn)B1xV!>Ksc2=Ni79)sU4-Y4O zyd>~phMpPJ?_`wY;ilnJn^MQR4Y$NX%dRAX-km@42{_aX)>DfSw}-evd!57}CRfvf zr|HW2+UCto_;B9bj#D$m1Y54akcui2m)XIY zZB73cHCPBQsUg!qn|TGB+RJgGP^g@{m9b?cOwZv(K?xk;a-ejukxo#;hG9`y_N@p@ z7H;)mwdAibV6oJNh=C#c{ih`?aD>CCJW?Ne{W+P8Psbd!)#2#i=nNK&s|Q%8mX$j; z6ERk-+Ji$ZlFcf991lk>9_YN8;TZaIRUguOhAPr|4+64`=pq?a=7pGKKm6f$uYP*{ zhaWK4A{E9fUcofB*P{fQ=SmbcVE8v3Q;=LbhP_&Ef54VuRQgG838wX0nFrzV#Mwgu zq4@hKt!Ylu?2q*(p|&+y?#Anb;G_Mk$rFMxYJ8@vhKDgTz)X=bj<^1F5m9ZqWHbiv zvGT%Loafo|4W6SeZ@HJ4*)!ef<4|I(| zyOu~`mt-8VnTxr*rfdm~c3|Jg_8)W^=tL5fXLrzWxJX*`7sM8|c@3BfaVL;8?gU`D zH3&5;O0)WhIIEAwBkUlt1Vc8{PRGSw|IoEGx2fBs*gdzozYhx!cKj_xs{~pSe-wlG zJLDe}WKl)4|7Ap2MXD(8?u*LeV3xU3>#;>da1&bQ@oHJdSmLi@xJr}}=Cfstg}hFM z$S~@nqj7L~rMf?bnne8rd$mDrWlv_xBF)KN{Eow+i&fHb4US*(^vn%qlQ z2*k`b9*s>2kNVFls4vk_up~dtH5E-x3j{pGz54|kfkrta2mP3$SlJ6m8wsZiRtXLM z1y!CuJnbL6*we^<3w4+g1|>`p|5wv?MLoHXg_jF?ntUk(dCjZ6EJl~`s*G%HsVIs@?bJq&$WeVoTda5C6lnC z8NKMSiq$Y-&54_NiA#X5jO4=3#p@i!l@6qGZO7Lt^9Vh4ld2|UNh}6(Pn|0bkY}c^ zFa&oKrc!{i_{9g#?t}5sc;fR6l)d)&?E3Y!{l~kH4<8?XaeVDrK?{??F~;K#^G}zt z(=loTPeFKfGB`Pc!x#7iO;v)rdBeis?w{c{*}dTWhYB{{M!{sDmbQ}v5Gm7TJ2rdt zd^o)lZ+4*oWNt7nXsNIL=kBeQ|NCUOzw+PszP_^aVV%r1U{Jc0-P9yN}PWUtf8A zzV`I-`TEVr=Qj=>pWl3nh@GcT{=WP8>~NdOXNUVwpFUas;zPz9IOZv0uKa!Zi%%6< zWV_PHbj<_Y1%=3b@@v6?IY^9l0YXPb4>7<}{Z>f%M8E0~6Sb z++dIF;G^G#p|naQ^Sb|BzW(>!HRRY;wks(gt^(UjRY`Hz9zT9kdKTPe#PaILUtC%K z;xh%VkX?$W9$~R5+j%_wc=tb-pM3PimB-VMUS-M}p4@@wLVAwNxtAYbdwgy6qc0wh zK&JTp(emow@f#5zJ-(Kjc=1>4Ea1u0(-@=}Z>qoG@ioG6%EcpcW-)Yho)nx8Au>$1 zW4O;lXcz2Z=`kml_Q(3UmVd72pBwq-X8w62|J=$yZ|Wz`D9^9obOZY_@ihJz#UJO_ zZ^xfcoi;Y7p{-xIAkzLUwo4O|Ksk8#o)(~-ydK5Kfho7dGvn|p012e|7-H{v(G>Me^0Jl!F`9=6|5|j^}Wa~7oEfY;92tuHr=v^L-^%` z({uQw!99rabb1Gl4d5%++YT#|vH3vNl&|^v#!LFW`=p05t06#PwwAq>m}GIM2Qi#U z`svsxkTcr9L%i;dhfSATt3>tOW)Rb3lL|VuDX=q39hdS!z$qm7kg<$(&Pt|dt|G!Y zl8DdL5OB&gi2F?NZ^tL8p9vx0l(zKGEX`Qwh0_lv())NARSXKOlB_T78r!rREOjeT zE@8BxLg(8+EZviK9-B?vfYF^}=;*_)3v%IX)DJ%d#z zfw;r556*21)k>NNJm-QNFO8{ZMzh+eTLx%BW8#SvK{e8-dIM%-o7w;;#~B(14h6b( z2394lXY6)}izOZXx){MiL4v&XttD@(Bgn9$30~1X+~`%B_xopupiTHbdTn~66ROcE ze9VnU-~4oh!)-@T2i$t^2Ggzsyv>DNUwQ)`vqTOOK>l`ohnkE~J~0iL*L7|BSMwI% zB?4RN&fLLhx--sUJu?cF{3*j8m{E6`q*QSJnib9JZ=EZZEP2zMqGdLhEjZS!azz%G zNldM~U!82OJ8LK7>&|)sE9@@RWR4{h>_=Y$@!$wZu21iqzU7(`OB-jlz3dG_1BXy1C(x9BN-}2W)uQ@~Hx(>H?IJOJL;?Z== zby!++1PWW&9i|Q%g`vHZcx1Brygx0@9BfX|Nh(*ln(0gi-$qGbNa28q-Qyq764o&x zM89LN$kY>Nh`(a}Rh_kVK2=!fD-g{bkwpB>PyQqB*@8#iXI>gHvr}L-fd6m9)92!- z1TvPYxrjj15-)0GHO&mYd+-H?rzT%EYAG2?cQtj6s-Cb`ffkPYr+?$IwM9=YXn1E! zI_xl7!E+G$Rmpu;yZ`ZnFz~p~0`&~IuFkUXE}DEoL*5M+UGCe=6o<&K&{eRM;La(n zrJc0FK5LzWXw-aD3b4xR%>cwyvd!I;-BM*n4DX!kTcqQk$7H4=ehkNeb zHN5-0u870oF~WG`Gla2Ix^*<{OB;>jM$`evW$jnY)z|Z@Xigxnn8muc>RB zxoau)jyt!RJC~CFEp%@)cQ2$po#1?o!*T@|>aC!^sj zqajlRM)D=z(IvuePlnH)laMg#{>`!(QK78HKBs47g>+Lu&X5rnGLQ~(az3^;CbC7DlEd$4efE-S;iCq|g--RlopU0vdA!orR30eqJKaZZk6I(26xak(;+ z*~PiU(mY1pnXz6HIM@`8PP=ndYYp?}m1MyJ)k?HrnY=`G7w|$UaJ(vZXA8?P^W}AR zp{!n>yR$ZyOxE659$795H56zE+*QmFYAEXs`%peCkwZzv5AwpRHHa}+RNVgX8OEp) zX9Mdxl1n+~8@RfOj`UA48DYvxs*Pj9w@a8~;6|sqR9Z#xUIZcnZ#8IGMm`CCpII?j z-y>co1d&0ta_a#u6#gp~gd;8rSQ4I{9YI5lH^v~kO?6cYLLH>sqnE2FjC3TS1*{#a z-7lmeBFQ656({K*9{zu4W46$xu>>CIgPnnf3i&DadlSdrM;rX*r9b4$TO7R)tJFU% z{h?6F))lVcbXt4Nylt%uFa2N*Y$Nt}uX2l!qAMU*aJa2H^+|ZjbZT%ncJk7(5dI#j z0auGfL&UKN7Rz$w#+mpzvXSzqy&D5*Su!9tV?rM2fB|jZ7zdhd%$=flqCxdIH^4WU zlf67D4Wt{*wyMs+X$l0X6Ge)NncTr!c2Tm@=6geAGUS zka;hyetrx?J37;=ef6zElinaW`xM1fA& z&(y*?-!RY%+zFs{Uf*p%q%t3W>^?D|1`AKzj3H^2-+{z{`fg;3oeC>0Uh0ZE(1|AE zDxy@fh&DoU%S_8-C=9TCYj(N>?^Proip&*D*WqQ-ka;bXm_c(n4}}*VMPdwUS!6fm z75RDQLrCdR28Z>FdYPgc3rDUdP%tY|bXiFlg}7+K1n>4PmMzw{d;Q7l~ z)3H&TkI+JS=P7OCm7645pO%IEvVK%**(|`kLtSxx3pKbBhhmd=uy71D9XuMs$~8dq z9VDr+dm>G{~wwaHq$7egyC_3OihkF?&SL)@9hrw6y5D2D@2)5=& zYoo&n=HM6$Qw-pg7O)q=0vMh=*NGKn6opPw-%?~^yOBQzf_!M{v574A#3SeuL_i5)5ufH9H>CzOjwoz)QlojZf1iL?xq2{v)5 zbhbspVI>^!5{tdh^8r{~*g~6FKG4YP-lun91bs9(H(wwHf1bFOVG;W8XexBVwC>^0 z-SmJbLZ|@3lIi4XP*azxwz`p(0RP>quox619yKbxo((V}?Nw(Mg^4#wG@Mwktcki_ zUwNGo(8Sg6UKIc;U%_o>%ndQUW2hx?u0XC*q61N9rzdB@x`(_ko>fXh7P}MMg7uKp`Y!crYaB^0kk8f7;vo?)wLK_x5@p;hpzz%Oh}-hE&W^ zL~ajC z1%^3tyP}**+%>LCidvMGSaYOH_NQ2hzvx_q7Y8FO;XEtDDd~6dXj6kC@-G)W%$&$_ zNKS>Mlkx-9oTa!hk|Q~la)`(cg{v-dye+<#eK9{V4g4T6bsfT~`taJp_2VB>Jq@bF z)iSXo7gwR2RWNvjGO77xJ4%N^Cj0o~Jp3CdT<}M%X5USq&^x#Fnu+Xc@3j96FK*#Z zKTjXISGH_i50KAfPKXT-e??@nfNNmnOJmyXT?F{`@OxCFL5fN9-!IZ|u`Y+3yc~s&*BDBRnTIdF^CkwbC8ovC!P#Z2ac_DzodwxUClCqXt6*(n zKHg3Y??i>XgtMSdcCtx{cTRB&7n}7+jRm=jD`c9CvlXj>HES1fg`z-*4Be!)oV%Wh zu(b_ri47ZbOMznQ?k&RFfS6(?rqu-RUVxoyBYcjN=yJ_40@T;Hk@Ur_ZI!gVg!SwE zWp7uygC{yo@}Z6Qw;r*)YW1LJlG2TJ)F!4(lA_s^<_*iP776$5Z`qy*GzLH8@vOA! zqSv_@CEym~@CaTJYOJ6QscJf4S_v=(o`}PkGdxZ|wi-I@4Fw`mt{;HgKYY7~juHck zh@2ssRC+*$`C9e4bE=YLxY8?G|=Ph zYA{Ukwn2oIm$XYrO^JV=!n7pAVHeuyy8i;rc;Yc?R*Rv8NUj{H63~bv!d6Wm90Gr( z$6qN4!!OOC$JY~kKF!5x1*~<0(jmESfc~);PQG~(T=$Jc8Vf*Zka^8?93Gfe8~xGC zEOt^u0NhXEUK2WVwSO?29O&rz;Q8R-gOxKjm$~THRn8nnv8FEbBLd2S4((+scXA-Sm@8c) zNwOM=rs5ZW%S$KX8_QqBd8F;4G%`nb6u00NZs{@XA$mW2fWzY65)<&8s{4(sF9lyE*5+2a4t-kWwuc_izi-}_e-wR)c}86-3z1WlWT zu(0U{!A0Oc-ntx7l1flU16w5-*gD$3{XS0&nUU{MRbsH+?b~a$DZM#G#*~qfk&%gY zsg6rk4H{FCId3<+PjF*9XFrMc;pa%1iDYaSc0Cw8HzGM$MN<&nmP1D*!L_OlaDs+5 zyP_M}rlu1~BCRa;QT%OrA1os{(VPu^*?hHi-*NH{{hPq+#Y-go?V5&(W}4hRQq}pa z|6Z3Dp-ss!g^kf*gHGL6_%&`3`5Wt$ojY)bPWik8lp_evu%cR^38Epyv3s1Ur9<3JY2_7x-3-?3`SHxfoC= zlM@q!llY-;!pxj4U47HJ?DPI>Sw}g#=?K=QCUG4>`z3u7^G~g`v~Nd9jq1*z9?L5i zh_R{F0L-;L-%PRTtAm<|qBGKcn9p*jkJ~5!yUVF_+RB!=$g8BOo?3dfofBlvN$%~V zJL9%EF58mF|7fC~$!7=g3kkahR4S z4zPL7L6x2sCa)Ccwt(FIBe_#V*20az zw5+i5+~}ReeaLUoY&dFjFlVlXPzuFAr}NNMZ_&mwhxv?%nOv9BgNQkst$KcZRA4~3tx(MM;i79cx%t2ditJe{Im?~ToM{p#L_QT2B(3EPAZVbwx;1O@;&!!- zGK}z{ao+_P2g0cOfow>ED*NGpXyf=u2>mo2C@0-*P9>*x)AYAEeQead4rd<6{!+xy zu^H|0(p4vPns1LRL!oXC@@>I&oQzGfuqwJJX=W^EWkuexeeiMYAJ!?#wWBMInY$ z@HmS#MQur}M6q)BR#p;)tD53cNnIN9fkwRh$ejcbkF9g+!7X=yzqHAF1Kq~>B4Wy^ zVO&kr)imTKw3GwUtf;=insB8wEVDI{m*%F`AZkJV{X9`3YCR#oo^&S0pJF8`mI{cJ z8_VfLDLE7}WBy~ZZI=RkV4=$fS8ZF3(-bp(@pmv8CSbQUCCXahS2 z_E#4NLDt}9=RE0~K(TE5<)O+xV2F-2F?9RXow+zqW|M0V&Wso;HrDMHa^mmgI>Fd! zIv3eW*8bxxAcu&15wk(;!R+gxfA<#6}(249V?2E68)3X82@s8JQ11`o3lhl3euiXa3-q!aW>9` zogP4|oNCsoY&5jI)6HtuCX=@~ATv;t34A%6%Qif@pg5*X7dx@S1=SEM$;H=negmEK z(pR2XjqU7p#5Q7W$mKX}&^G!Tz3*^CEzk{I$O!4Ua?ZfnQ>j%_S4jnHx>oDq<`X^r zjQ#mqei>S_=R9GOAySg1Uy+VkRL4xRN|v zjv+Ir8*_1RB}XCbm8acne591?^H~B~8c^uP1D3wPf^T$ZZchMmC%##IA2ccdORz&4 zxxhm<1NGGDc(|9{rIe_;4Ivw1h0eJ$AmX!@2;)ahgI9N6y#aJ9!C#^t~I{-+KLTJsB$AW*~KR#ecF75=k01GSn^MR!)9&MjS-#i+eZ)$-^g)ZiB5?>7Z(! z6BUIO86)O$IKEmN1erKP)EI(AH4h`E9^11D5u}0G(m+mZcwmzAJE9T$DL=Au4tmuN zP%$Zr))QhwB`V^K2`wxgT;TuWZgLqVjzRT*Iu6vf94)pECVAeNI1YEMllR=IWsoSJ zlC018blDo)e#GvYln`Sf_v4*sgM>kpGFcIn9$fp!xbO*Kir2CPhNPTi(WB- zaN$DT@Pt}p12R0)alKA(WznB(Kac5L6%QKbQ?-_3wi5eN-fZ;C(dv^P*GT z@R{yEPux~ngUY6E2UM*!;+Fp>uqvB=f5Ekx=EHQrolWpch#u@JrnQn7x11&>qO`$6 zD?LkM;f(vt=F%h_Hv2e9qS!M$y*{3EadrR%nZ(_`lo`ay=#cq64!xyqQep`gX65kB zTrM+``nW!1hDZ->$8@0rZT(&2y*opqVj$sM)R=||PZ5`^18VpcnZ|wzW%YMPtNtCe zsD2Tp3vvq@m6n<|*O*-Y*donJP5P1^1G#~xt>6wxFHTqwSHZmQx8g+E$(a7&a_~M_ zo9vc8fRKxwZ@xitJ?95@X7Msu>DYi+G%bU1izpt5yL(jE1U(W=qCP6I8aSA{@gQZ~ zo?Udj3C?BD(YJ!+wQ%`HzF|EWSi$eVdnVpu5_QOtvsM)qgUk zdvmZ%=w53XE=8IxECNQ2@T&`^pfd~paAc1Sj)A~x1TT{GSe>C&t50!l`1;||>9_%; z!o>ciR_y*IB$~(WtWW2pFjUs)IB0&^00)l#g8BrHa|r@btt(?QMDWRNI|>dx%%f zMA@Rum{A&~S1-7^l!noLK55W&PfVa9OzbDF9>kbj7nUVUJs*Of5;j!?6*pCbnaq(j z(h%`&kB;9DPVRHd#WVU+=HJm4WrjD7WC(goS>D zHtJu|ZumF)@ZM6Ww0wuE@8WTW0t|zMl{41`&7AqNFukH_KRDVW+EO()#za73psr7#n_6v^qWCf?0%JTX0k#s9mF(qYSeuf= zunk0{{cwLMPh@-Rz-LV^b|OJgkQ*a{w|{avVk(_&oE)TPYN${X@XQ6?ki%}lH~ zgU$uTn*`qY6=j^L_O3Xm?T{QmNWLY8)C)#S#}~xElMBrKfQLb9EvjtXXE* zgI}-CGK&SUq6CYT&xd)%JMJVA z?Zf>MWR%4!nwizLA#8o#f!Xl`@>zDJoUIy2Dty}sdCt^Y!d?&U>^=s~cI^*Y<*|`L z$zzD|9G>a!1;~etk{_KKU~FV}`mNQsu)~gcIuG!X`V4>QTQWOH05`G^c>-*YDlxwq z*+l%UJ|3*$}$k$I&+j+JP^o8X)1|IEzRnFrM7p#Ev!xSo#FWc%s1&3F z9R)?c39`^@1#enkS+QChO-{(Rxqae%OoUYIpT;#R*VC5GvLLk-e`Vk5~V(xysP6YrrN;vwoYO6FLH4G|Mb#h&D$M)u6c_u+0EjCI=n1*8!w%9&X+Ixr!)41 zvp}YH7uw=+yKQYX`|=wB1dq0Ql2l+n5ikI(V=J~!PPZ1srIq9Fl^k9_kVF_N$Dn!* zBC)`M@`?(R9kJWB?UuU%-V=mUu7Ok!aY#g21+}+~OJZBUWvf&uo~tM)$(%s*LKykP z1T}d)oTmvRUwuo$Nf*`*KQy(pb~XhJC`pR7wys0`UF)h20{7>f#Kp^TT{a4&bXLft zK2iSN8C|sqei07&2LnH`wO8*f&RTf>AWao*#A+qXm9kay5IB;>>QQnFr4UWGrTc6s z6D(;XJoLb*MH!;|(wn&`==sCnw14>nI~Ad#D<1-+wN(9QNl$wb%wdad@XBK69O^^= z7oBL*LA>1)F&K=1!~V(Jjr`uRB8qBPJEriT4i4Wv!WRm^ShW1emyq>Dn_%;cns(wV zHfyPuD^cU67WUY&%B_qQ_Bb}5G$=ewtYVCYL7-GqPr8~?#V?!a$9BP=6F`9mAfb-; z&JI!lm%`rAZ~lZZ(V!fNO%X>kSd*j?R!la7QGs5-WNWjrSifLlJv3dtI# z%&asDyeKA*?rq$%iH4gde}vT*6c|b8QdzNVFuZ_!NvR@35I0>}uDiSgh@QyBh1-pb zlDOTj2;U~&wq`lorWC(B8_}IW+d~Z|r+@@ZrK?>SXb%5BK0#KusRz^sSn*t#!iZkR zNpVO=)g@N`Qa}iyX^AM5)fdG{4a&8x1A5^%l5OIYL0)w3S!>XfQsJ zZs%Bo_c%&y0`g!m6GtiF(gAHPzuiX{-B+R)2Jbg*nUQ*Vjgvo7cH;Z00Hv6dPt`_< z&2k&cxQV#7qu|)ZIdr=FRxQ%%ej;^jZ8=G*g=)IEw3QY4g-Vz1efCtZIHZzsI|7DA_%T!BED@{@Lj_T!sd??j~64+e(-*p_ZP z1l5BfB@4L?*Z=wlk2HNgqczYqKkGLAHT-koW4b!c8rolKSsd!J7v~f7B+yt*F394M zg>E5IE5&#?P_qWY9>VC(K5?+wStpFK|G-YvHyQN>cta*B#P9YouoAT+aP(qd!qdXJ z@U-yNLK$2^ZScJSD0C${o}S)+4)@@p)ix4@668Y3YvZF3?a*4kMx1kTMz2>pqhcCb zkvPnhxWk%$n3_MQj>#5^lK$@LS^wa1pWz(2V$&ELA=mzRu^NuMA>@saWh zmxefx>z&-qx1Afb@$<+?$gq-@1_SXO_I)4jBXanM0bfO-B3higq4TyXc!&#@;2K^- zLZNt>M*oGFhCI-0!M@ikyc7G{K_`Pf#fbW=`X7ppmawhv=K-_br?5cVogE$}IOy#H zw)sCevmfr^0lI^aa8{503$E+|b0MA`;0e4zXYZu{{%EfA&jHROBoh)G+L$w@fOH0M zeWOYrSGZ0&_uSzr^O<)r?KeOT|9uaS!d&M$UU6cEAf^(+FntNfLOvgM1Sca?`ygiC zp~&6AnB09s);LA_&r#poYllz`FIU%LIIq2l*1V*t+q*850oo{47<%w?!!B5R*I@fb0`#PiHAc~1&7}9|0 z!!D012yl2^*XJl8?jIZlhNc!9%N znSbS{R?K0JUZ84HN3yDt3sX*=D6*NPgoL6PJH=eTWV@wPJVs~Z#RvZ zG>R_^tXULbpxjFFpjJ)2CdO@AgqVaZAZBZb_mOo+nMRNJ72DthPluwCI=q8#`(1x; zllH4N;FRR}M{KDwCNUtZK)Vt&VXH*GVu?pXU>xaLpry@$+<|;Otd{mLSJ0=#;1)bj z3ILI7V`j2`l-`dgGDWZ*!x_iQb^6~#|Ar|kw+M4JF@UlyC;_zU0){0B-C(&^{`d6n z+Kk3 z*hgZu0iN}P%<75;JMF++AYyl^@i5q%LuNJ`B;{w5zlG4mtEP~i!=sc3;^mO7A4-EO z62gg)!@J;4(d5S0e1Xq?VgpBLlyuBh!=7K5wkU`RQHC~L`A3r3lR z{=C~+fUO{lp6Qh#AFRV5x&t1 zutN)!jSqCEa<}{p(4c9`n&}jwGQ@b)LjPY9yCqKUlz(7UR+D=ZMAvpY+m)89p}gN>3fr z#|s#t*ar>a#APVHwPln!;OLIJ7`@wN@B5aK({7e%z-(_H=k>Z?%fAIfD+^NzTtStF zA~gam#&0-6BnuaQ1U}6t?U0nzJ{&=_^E_+NTE5Jvb~6m3640&{E*O3s>$0W_hoKk9 zk@Xq2@zJggE;8&QM9%>#sX#gdNe$6#%KsK!O2~Z$lPPb=WZft$Ri@$VYBA*|b)v1o8I=x*2SS(t+`v6_MO1QsWvLwiAiYb3Mqq?(9rJlRZOZIkHR%CyDI71E0% zV%hD|%KEBYISxgY*0qV{5Ms)kn9Fi9k|iu!(!!CROVas@D+$5~@Pb;jFv$mIj%*6E zsp%kAzWe?(?8{WNW=nwO8LRskE?-%VSgIo@r0$|Ct=)Fg{e`zkioO9nArW~ePpCz$ zB@fPc-NwFDkvKwpOH9K|_RjF4VJ{Bv5Z+*-D**wn@95?bONn~o>}a@)?R<6`i7yCl z+4l$z6;4NcZlB>b+2h8q;+@QyrQuvbJt$>(j=Ujab%n?A)>U~=ZJN)T_Mri z$HSwrKL+TP3dHFo?*>-4o4AO%o9+G-5lzd%NZdf>(sk;ogjoPx?YnD6QZpIaE;fwOxOB)b_Hx%0;NOI{5xK$ z9mEh6R6vOpHx~h``4165pUjabLQR(_Qm)$&pD$$5`yFUq({LL&;174fY;zUTP%>_f)1Gl)HS4^j=#Ed9?``0lTJ z2YMLx79OO>CEUHXM;xdM0+$F|;FGbm4%fh?oBC>so=yo48kqB1K2C8@4|hbeBUYB> z$QaTLU;Y(t?h2n0AE+^;&~#S0#VfHK&{uB2{#3ul`v6jf8^IU_PI(Ib`n$6CHWg(r>^Xm%|s> z>8`4_5=A9^=&Q;(+9ep|I<)g}7jFW?Y4>KZHzUD){#KMETh2@Y(n{a9XTVtqaW z*a#_XG=QX2Sq!HPZw4PW85gRCg2H}{as0_~UiOFU7&2$md9Wt^M$z@&-1*|g%yn*; z|Ga>8WDfh8Lw!i1&cj77&?Dt2gt|^)K^G@N=Z*z$ClZ?*g(;OLZ8ePQOywOFM|Vr8 zb)V0qAQa?ffqA@C2<3#qp@Be!n)#$O&OB1Se4reoSO6b@ULb}rgyE4B)?!#qC`;Ja zA2@&qN$S*vO{d)nU)8Z}W6gRzh1O6J!6PF|J(ZF6c0MG7^WYUYv3T z2LN&HCVqT1iV{Axu7%gHs%a@lbtbbTtvE>Hu}@Va)b5%X*e~B=dI;Gu`+9r$`Uoz- zy>^~~bUacI?PXX)2We-GGrtp{@~0zYPE2f)?fL{q=yaf=Qx9afrY}!K&W0Hy8TsSJ zOp>5tX>#u%9GyzY4UK;AyyUt;BSa|X&81=kk%0MY=jv56@7yd_cv?)ynl9%) zKm@CC+cyP^Y$Y&w)Z4}?oP&2JIw!rJ;pPRuawQK@b5L^Fq2mszxc9tWk+a367vxp?xUrJ?Vgl^Le-=k*c^GFyt(gMFpr5;Zg4S zg}fv4alWGllryI^7mtq!8-Yl+I_XP_Co?viuwO>YHcZzUViGeT8{elh0~-6anP+Wi)lK?quDwI>^o;FP5>#lupY zL^P_KY6B1Zt7(~}JzCfEy2f>VA}S;+74d~6XbMYFM~ObGuu2$gvgk&1$sDQG#}I@{ z1n1(2+T`~9Ei-`fO2ZX4vCLPc?IuaRa?h3r%gFs2(OFX{CT4{CRk;ZB z1^-lLe?5kRC%HjA)^6IKC0>41Gfb--i7o;YPh`W)X3Y%YJlVhyt^|Z#)nnJprM}xz zU+55#mS$ z5#9i5yICnl!(solL3SJF?bhV@R!vj4$)!i6qV{OdR%hm69u~moKm0{$*4pZBaT}lB zljgVPH>Ft;sbY``_dhnXlJXr3PoZ!KDVl)N7__cc8xJW+8+$<}mMc z3?Hec$WV^{6bRAxbo#gzLN@Q8B7&WXeZZDn(xwL$=MqD$!qksR>P*C7}kqZt17c%Fh{)8hj*t*^A?7ClW*d&giC{c-%qMCcRf&lN;9 zN!~l1GpOzq=@B%JOOT7(N!DTWgXh8Ac&biu$8%c5DgyUTtJOp;`K`}Iuh3>`-Rvv( zw(PSN`ifX`mSb%vU)6$!4|97q;N#bb!n{k{ovJ^qq^aM8+qn4ml!Ky*mHLmi~UqSVUXSOAbKvFEy3#s-P54)bpe#8=ecIT+m5 z(3A@fM1kZen%=S@Oke4`H{9O`Jj8M>#0ButO{Pb93MpNOpbMW=U1}vWEFyNRbp zL2G0lfnGp^alJ&tnh?eil{=Mi8HSjs>kLu#yaMgAVb3#SlG8katw4`+`S{er$&XA1 zG;GE4L4RjJW|4}cq9U-_{eEx?HGLgA3I9lhrG62PaodpgP!I;gzHB2#yb+UPkF|st zWOaarPDgSfJpRpHiv%)(%GK{(G?MEU30~H=?8Z&?F{QFTPx|auNTx$RloI_QpzCR~ zBT$chT)NEIX;CI_ce7a8UHZbn)gxpL&zA_?QIBpuA;-mSgy@al!Agem=)w1UaG=qo z_;=<)zVXb3HA0r1Ky`B=`>5UH9qOiTo-g52_J`yXSCBcNv<0?+mDFcDHWD0Up~@2C-Y^2`XN+a!iUS{yY(qr; z>6;UrSt7xzXQz^|m%B`;kg^Ee_IOd2UCewNNY#k?Fg+W!Wpb(ljNFcI?UHl#B`LF$ z5mlv+tplqhISO)N-hq0T-7QrF<%u8rEud*=m;dWnCfyJ;5Flqr5wSjS4M}Wvl;g z@Ibfe$UcBI6>KdxI0EX0rxQ43P6p02LA<^Fj#*5%x07sIkKL`mq_V$QdeMBIFGS0W ztIS@mR64$jsY|ph$NbzWVp@%J**rao0Wu`_(wf#OBetk^vvjr9PRf7bG?bTy&XNTdCP+bTHQ$8};w zHZ7@mXWc`nY#KFXq zN+bcN$h+i7yTZSr;QfMvCL#>Bbfb3!{FhJ7*#k&w+fd<+5w%ab+S%Szsh+W__mMsL z+67Q1j4q&_$m(vu3fLNArfHZ%8E!L$tHvt9<`094DG4k{Rjrx9Rd=uG&h_+g39T#d z$u;#)DZg=>g6n!^kOC`3dtr3jeLUBsq3bBm#@tmjva zcsUsq>Iq-Kqsn|E@Fk}E(u%gr$a#d#4Fl$T8SFigTa_6|%>n~0R#-D+hAXi_g9ZCw_ZfHJvG4@S?2 zkI(xj*vw&`_%HkmA3ip_mSWwyjY@*Y8pKJt$+CHJL#Y}}nOzk>q8_8C(U=vajNKIbCKxh#8e zfMP89SdtLDZsnq+E(E`M zJ(o021Z!(9H)oQFi{Jm0C3Z)dQDGU)fj!0fq(Evb&A&%8khfCzhbN=cbzc7F#UxCF zJ42>m#z8!kiC(0xgSUfF>U9ha{ltss}~ z2anb5Atn&Mk%Ook__uB|5R~sZ5YZ?kpQrUFzzPdhfI(F-13GJlKF`mH)ZMyoFQ4f~ z&R1eM5%69CdJ~e>k8pap{|wS2W#Tz-?Rr3>2l+^YrNntiEdYmaPn}xVa1{?tiam{b zT|ygN5SHWu)`h%@l}Ca;86vxey>(fu+btVo2|Vv0|G@Eku{_<;D@-sE=CZ4H*freI zUZb%)8nEBr@lDev{Ahi>wQK$mf67MKR!wj{3AJAC)~?ER?(%xOAgYpu2+fO2b?CDR z;~JIeQ0w)&aZuYeJAtqXYU@GDzaG?qPZDo6(n;7-b%aO=wE}ogl$^%WQ&EWB%>@f; z3V-HQwKVn8hakSz7vw8nj-&vnb;l731E?l$(q2`BDhS!3r?QW7ACh2&n% zZGjWD=2D(!Aq1U{siq3@LLid1)P}#PQ@c_pgw#4XD$M?uviAJS?Mg%9O_{H1LXEb_ z-?fn&MzX#U^I655$}z{l3Udjuk=kUN&thBj@`+-T#;>@@9h>|&W3G$P?d~TqUX!?E zWTYDrUc^s$XG^ZDk)xz?ZDLu6gzmPaB%rB19eGd+f@uJ%FMuXKS z?SF4L7tjRj^6NLm`K_7?>+||%cp*zUAgJk@j&76ZrJGf~HPXwWYKCe88?%TZSv4-o z#xfIv)j-0kcse|C|C+Pwo@Q>Xj@(o^YIGW$J{~PC=4lJ(BHH^{@TEaqzGC;*(y$n7 z`Jf!Km}F2TZfG}{_!_hTicNvj_MuFo6=MBw6(Q*Y2eS9&$IE;-rLkPZQfzm}pwi=z zxJ_usWa5Gh41d`pB7L0gH0(>%Kyv4*EV;g?u#pI;qTNZMt~_lcwlxZ10`vWKU%RES zrt{(TmICdriUC6oVKzSm`Yrq-!_j{ZPL3tvIyY}m=~2Z?<9l|pYpoYMxFhNDI^PZZ z@T$tAf4J~`@-_~+x;U>Qt}ZXjfR2Ne8}p0HaYp#CCJ@p1nCd`gZ&yFZY|urxl#azFSl;pDku*3{-!XOX4wZr@Qn9RPQHbrM33a` z;9X2H|LH71ru6)10p+URMvv;zA=X9wclhqd=l7LKGR9Mi)l_W`*O`$p8~I;)-HiwL z)%Pu)2oRXP-WKxbghq#`m3j8{a=#@2ow$cmE&j&nqn!O=6xs z{QieAO(-va|3~Lpe~<5PjyjvjtfrT`v7bhS`0l|m9t4m&k1V*cf3(+m3`Tep`FvsF z)_fr%3yZ7ZbJrYHf(wgFH+&uwI_B5}>&2125{#Dvj$fbj-@O@i5Cv3T;Y4eg4@IC5Xfs5tbYCH;ehK z+*n8p4)vW1D!GY5t$)=)TU^at1f;CoSh~4Fq_{k-+yJl%`_9uG&m0}%UYfQQa4W)DwRVA4;A zSSyUF=RYj$FJTRu?eN!){e3_R@YfHIK{1>M$mf+*VP%;W90M4yLUqXAjax2i6Xj@) zw0utH=${0>!i1j^?l{uYLWQP_D~k)ud@c#6X?{jIez6dp2pdPvV>Z<@h_wKxulR3q zQi{LR?Ug=69#vQ#4(9j88T;t?b$PC&>q)tg=vs#{NlV5%W!u1t~LSU-H{>Poc_k&Zr(G)vYyjkqo15e3p;R;(_E9lCJ z14&_C{%Ql+5%>g(1d`;YVi3O%1qxMqiP;_5tUg|9E93deF;u7Zl*);NDzA8#S3JMu z5C%5ywqXNP?O-Mbb=IZ;(3KMVxWCn_j4eAdf_}vc<_5@B|B*onq-w2a+rU_5(v9&A zZ&`ULmsr)f?{)nXHHM=a>0+f@)QnWMK8;wy9U?yIKm@v7zY>vt-0lMqA5vN{kt&eC zk6u3;jE>Jvb_YCu?;#5@wmio;+J^Kpl_enIEvI)(2UHyWDic_Q@adc32qy6n6yh28 z7jmla1d`U+xz0x-cxOfAyhI8!a6VmL5$x+wxJZdtBB&)LEc0QJ51}StDX~8TG;Z8y#>5edTyF}J{JsPi8Yzf0|Pq) zuy1q9_%4xmRWNUxG)V{5a|ihdvuYEk4M-z>G@GGx5N3~$@IaZ77Sf3(3OG3=vaDzb zV{ut@@{(^c`3PA|bJVC++llJzOzXU|+M#kXdb)~#Mr0x+Q$ieR3;YRF7@h21higZ| zWYUjq*dOpd%)tz&R@{Y8&K|&B1d`*6*z>cuUVbxk_0QLJAN!Wt$x{G$hyszGBLd|w z5S4EO$?s#0M3UdW6l#e>&Gw!ES*qDdq5M`(>HZ08C1KsbhJT&V-`jzfgExm8JU9b5 z1>Wk!)mm)*SV53Y)0eU0D$O-43{JleZn~u|`NFjPA=NBx?&5r+Auk$is_E+>W_Cy*TvYmG zsw^q=yHw5*6%^L+)`(nkVMN~;#0lO*-bf;*ifJMW%$Y%X249Af^ozrjyPg85j%z$z zn~WNhn7oGFzeAb35*2E!;B>+qd^NzPfw<%UKAC91RSjX3LFMo&-+wOsQqOsg!sAUe z9FMMso_=L)ITbp5|L_zCj95j7$glXCpqUQPCnS+SRS4yOfrRCbzzg^ikN?IFY|DQ` zHK|#0IAT0e_c@*q=<*xa0?NP~wGuapNS%#y0jzjOxRL7Y!B+4>CIz9=8WXqZLU;u z@@1O(4eJ%&yF}&+z+-9V#Ns;UiwNmkurAbCf>q%-^T`uMx~k-hAyPS^2Lc9INBU5g z6d@S>(J`EmgGa~j2PgLt=+*Ola>0iiSGBoQyw+%@ypIg>_$)%-#-+syjO#+2S3@nJ zmxc-_kvp?{HzB!;B2Ci>>122*K~kyP>S)8VBUYnXoL{a9hA9 z5)>(JN?AxHuE1k`6?0ojL63;?R$`r3#|Rh)f!UGq*T`OmhFLOmfqlyfzOx^{ zniGgs3@=;lOeSaFh5_Ufkn}4ZZ25f{kR{4b0I~#-?L`KZj_s7BBT<>4j=t1;ms1qU z(e9>UjTY8v!++*7@k&)`(C33`Dw?E)*orEs(~;s_^hKJ`tM>i^=31~;ph&b)_lX2eGkoc~Ywc%Q;HR9P=5!Z!8G4S}cr}v@8vw1Oc1wj=yx4tunOWS~~ z3WukOp@k^Oq#8w=XzTfqsWlO#3o0AeIssDIs{lq26cWg68h~9mG={}O`@`UX7WMGx z-Px&1v@$&Y#KuUSNgd@nw~;!}^u^;nVP91A4UKXH1s$v{J*xM`S9-axAm7DkaRpNE z*Bkf%Qhm}WuBZ*#G>zzQp`EV)h|&yB7zZYy?Ny#;gOFj?vEKloQ>Z?xv@uj{^J;=^ zgl8A9H_h{-0|nB@*RzXFwLs2h?)}!6iu1NMHFBRQ9-p}3GfRb7{=qfr&-@k$>Rw>0 zo@|c#6vEo!B)*VL6Atag3|a>lY<{h)e~@2jgpr_7ai++H1c-9zJui-9-rA^;CBauAI!syw%tDd8B1m2pMWA5COM^;_bq)b{;nKRtc^ zWPAPocRy@D-1za{qle#ZKYg+G=;8hCf2{w6LCZaG+6xH727XN265Z@}C-+Uw_VjEA z#)r7n@L)Qh*24UTdlDx>R?_2Fc$a?h3qTJF76gc>3MF=j+=K?mc|;CE+T%C2T+RM{hc3?|8!q zq2qYvZ46)!H|{@q{Pf=Qhii}4FG*qDcSAF~aMnp(?H$m)dUzy3?>IR|u#6{+zz=kU z2fipOO$c;e1QTvQS^N9?{pZ`ye|oxp3F^X&bJjnAFYtrvq;XIy-&e*`;FTenUqp4a zo1)r13{dYMQ}Uk|a}5*o8QpvKy-a2M8R93JCzRa+H8E2n_&~VdCA0LosnX$^55b*c zhf3@t%uf7MBC=H=i324SUUF<)gbjcuQdT=_B;IqZywS4;L$mOx{f?)~07XPZ>;^Xu zrbsPNow?E)dRHA()hb}W7wezH4`9+WNv_c!iQ}>hZEDm?7kZR8WHJ1d?Y=fo3os^X zzik5?SxLAG?$^e7rbhu@(WBu$gTI(&_zS*(aWRdHxopgYmH#57UOXM3~@#3@8NWwibRYe7@)+4Js3<@RN+Krlq>#aP~A9{xaB8 zW~a4o*A0dvyJO&+64>mLTfM(C@=xheHP_ZO+qFN;pxNl$R5!iMzQG$+-?r4QLxmxV z&U6aC%jV7r@Evu&`KGgkf8dyqF>$gx+e@E=_iPH-edOfR(G7TL3IAmGNXQN&pmeQx z?oTS!)}FlB_^uhcnuaN@2p2dtbmHpNG(uXSNHlEKUS$urs)o@J3Jjp@V>O+f zW8~r+NjjT*$iIn)1983v!win>5sm`!#5!!pvr}nRG|^{n+KFMnZDL!~NRu(M=8G}y zvv%@?0n(&jt;r*69eH!cg{lvVA?gdExtuo?CAzGu$Z2j@Q=P#bEZ{L6PWV0Eq z?NF5%6{&0P7oc^YG9&xx8J=>MAm++m@!k#|kZwM2i`H=coY_uafloORVi1Ui|G&r6 z(S7!c?O!FF$Go1J+(8_78ahDF66FsxwXg;$^vENhE)OG_Sc8vuR82Z=%6eUE&1w7b zyZ2}sRu#4ipiLnI8T2L3fjPH(Yfqj%r(U$>A*$hSMxK<4QcdnRJYP6CIYh+BraBOI zNzWK?#bsMp{bpYwp25AEqhkm-TNs|aAwcvI#X~6H8$E$c+SQ z^zSjygY0|n@!G@hUp#rSxs9#(3%*-+S><%Clis)ud*^z;)KIiBv4DJlVd)2`v@rX) ziS+smLD_Qv{bSSO=Suq7I`q}X_NQ!V%xET?6uB1NZip*k({OoFST`pMfR#=!xWwT^ zS7`tPgVB{x6Eathhv_E9-+^)Y8os?hpEt{vcl&XK2@Z4|1Z zW|%yfyK^pc&)b)L=I{PwoD*WQU?fl3qN-Ev*Y~)hg3?}JGHcOn>0flsIAs%Wd5Bjm z49ixxj7&iLyPZCsgL>Cvmos+CC+Cne*f;Sb8cG+Y-aT&$;ByQEWJ#8iudBMb4!AU{ z%|#LkgOc8;;>xXbu{gd9TxPHyaZsCj9JO^>yG3hY2~yRy4sSUT&1OPz{?;M8=}YS&wqIG z-S)sLD)hCa!LkNY2m``+W~ z^*|%0#atZGnowf3Gvq&?J;Y(!y$8?v-t5L_p7R+eRr(~13Y&5e0_@u1dHMp!jt0(? z2NQH|)U@sBD!U{!iWH3zn=!s#fAXLmsuvrZKRkT!+yUEwZ|TQ23%A)CX$P;R?*Ql7 z(df-^{}hM834tBls9{_pHEOw0>%V?|GI)(c%jfTp1r&Np@ua2v#^&%0LM*=(BI@&8 z&aG>%p&=69Rzp)N&2<-78alayxq-y42M1@ZOo@;oFv};!UgQRG@leYQy@NsI@k^hy z%&fPSThYhuGk6)N@9$sOfanWR9I{K!jpd7uYuh4JQ@e%-{coAPTFzgFefE&RI0Uw!l|L+s#(jIfIzGQb{wNdI_yX+gT*#}DcK9)3ux zHT;lP_whqoeTN^?Y8^kM)dT#vQQTO~uVXWz0o+);!J-bW%=_w>!-YcqVKo!S8rijd zh(mGzg>ZiA<43%h=RJtCALkbu;g=u?4O#}tU^}M;n@a&vf0F)ACz08kl=eivANh-H zm#u!X<&!BKgEh6%wT{jS0&}7P);7m{cqsmXzrd$s9s+F$T1$>mYNc{_rR4#ID#P@J z;z$SCA!P$5;nuzj#dwQ@20b9S*y`fzodWa2Oszf&>L#5s6W7|2ln4 zS_5!$;N0Wc=|1G9`e`eL>eco8_?gvqndE>#RHvU})`T}R$Xx_# zW2ZeCgUY_zi}L^&rYBBJ|1eXAZaO`2rde>AGpqKA#X4VIl@Oj2Tp>lO|LnIFt*p|~ z-?T_Ka|Pd>voA>bD@<+G*0Ev6Llx?ZMkW4@D*eD1T63q?p?xVk+^KXZf1}DytwY(` z-=pxFJ5d3|9v)rD+NuLfy*1R^v3fc#ChqmqCobqu--wdX>b(p%=oIzw89f!{XGlE~?!(U#d6M(^Ir)~x$d<@PNsy$yE zKH!}9V{wCbR&tVY^p7a}P?SlLu`Fm?u*nhfr1uVnBb?P^DtIYGp;Xk``S)o_>HOax-d0JkpS%3xQ@Ig1z~&}j4?-n#^SIww>LDJ3$r`Zos<{iSce z{D&S6k{MI#w7jP0Q^{U;ZQ@xX&syZLl4Fn^8_6x>lJp>4JlZ6;91Ql!D?@f*Q5wV7 zZ{(BpO-G)VTBOXTIGZX4cz~Pczr~tKq7-TREmx6Vs&(`uDzQ5qo3QPl zdS)k3jHA!aYM}~appp`BQ^P;(OeGOKu$O$B%rooc6@<(Sw;8WkQ(PkxUXej&=5&$; z$HCMz)qUX3+X3W5F7 zmec<5;NT%#z>!hMtr}t_P$^L1+KvSxr|xUJ0q-ln=t`OtvYhDBh$W>kAaI}}N*HS$ zDx#;LaAL@nYCmr2cuu5>J8w48j)y`7&|*Go=7`r8_I{)6U)Y2BLg^m~vxb2<8i`G%=I5nCVwjO-^v%L7PsYkh-O zFkbG?vQcD&$$i@Kg6QkC(G6^sYbuWN-HUGtOB1?Jk;RvbCd$}~Z3i2mR5LgEH%!7AI6x+h= zW@u=WGRlN+$%Zm31y6(}nmSbZO9y%RiqU-H1fFEaJorCb4VAV~1xUSbC84iMS8h?X zp*xvHm9dH*h3dtC1t^Y`st!>1MB*`uWRlkwk@T+CL=%)!9kGJGO6IpsNDWEsFn#Qw zob*3Fw5!L8@rfc=;nnIKD|$}n$p8K?+zq?I#)W>&TZxcjz?6UrrpF>Av}yY!{p>JJ zXk2%i_o`)a*G-&WB)EvNFg#Ee(v6#rLzAuHqA%dl5J_`F733o7@4Y~1{ld!HdT+Q0e_ra? zgv}u;?4}^s{Jzf!T@f*`m!m2fPkEwhkR&AG&#PB6vNYfH&apBfFqoZV;y6x{+!&v@U<9KgsOq|B`C8}f2m#%S68QYx5*>6INP2gENCrP&2Ig*rXIMcYv%vu*XA_C>j(OsXN=#&!+mfK%cWBy|aXz51 zLr5^>F`2&mK0uRa!;}Yzs9f_~<~6=`gNHTwIq792F}MNSwMl6C8Q`z2Imy;3(x4Od>aBk1HLpBObZU` z$h@<{Lo1y-cW~<4(Ol3X3($l%jjPBMePd}w(GW;hbd+aHWQ<{#2{Toc7F`2q7qBY7 z0_erG39OD2tjpOmY6d zIx9$EAQ7-DSV7OC7KF=tCmn z81PN=tQ|Iy4{Zs_M_^nx`4>bpHD|@b>`GNO^p!VL?8?~e(kgtL`^YSv8W;U%^eF6@ z{UeDYuPxI>|5ojK-fpDsbCJN0IdFj&vm+T?w6DO2+NN+wDinOk6jUkWe6|!Mxc6{w z|I#)GT7PF^eOkcYhBLtkFvIPl6Uc`i(%%_p#xerDVhTzRdlTb>s~vHh;%%Ngon=VI zj?Xx^3r1BfFhIv~wv-?$9L2AJKkw0L($faJP~At2kl+p9&>d~G^y^ zj|S8W{GIB8u8pn#)-+ejPRIHw#`(e=qF zsgZ|=08C;ow+4{0F>{X4_S8bZ{)_Q0qS6?u|YHS6QT_0@1{%Nxy)#c5iciWf`|Q zFx2&}|8w;^vL)Y}{m=gFf6s2eypFVJ$@fy#9%4LWDmEb|c0BEM|JI#B>M6pXi?9G5 z_GVJ1=i1PSJl3_9I3#jRVbJ*`m@!&w0xUaK5B2^7%CZO#NJB$Q10q5baDmc-S&$UU z)fh5OMq`WSSj50CejU!}>7ffdPiIPrj`VoPzpTn!E>|MxnX| z*M!*&i@C&O65Q%6Rs{U5vC2C?7j56G!N6)GpjD%cgT z-ke`ug+^ub$M^pC_6xixhPS8Sk=FDh*7l)AI-_7y9uUB@8vc#sW%FGGF~f``kvGAajJCN_S*#N z;l}1uCM@IJ)_!`v&igbs3|%4%eLPi#Z|9I$)_JtP@%{53ZU&!VpFJW)iJb3LP9KRst5oex>tp$XB?%@VLHWO+nHrLT^?0j?4fKAG z{(?^#?;~<%z6&v3j(cs#yDyGL{e4ej;Fz@v+kWWF3}96N1351K)Qn_9SjO+QK%@K> zu#IgWTjjb4;mL1z@ZlR94G97;RlFpz_7V9+_xsS!*W?w3xu0=2o>Rt3FtSs|k=`!H zeLg5}+%+HJ@j9=ByPDb&vtM+O3by{2DupfNC9(l%oH%5I)#^Ja19Yx{{J}u{O|i8N4T4a5jdhE2GWI%1Qzk>=o?^!5&!v3U4rxY4l~RErMh z=kV1l_^Z_UEt2>Kx^Si4xxv$x2)N^Q9D7p*y&y(>GOaTYDb?{bH*h$9U_2|DGK!in z#rZT{fFUu9!xR$;-SVp_xiBS#A$df0L`i00yP&>RyYM#!3wDcYsS0RYY2AC-1fLuo z>CPS6b{}~q5 zEbBSH3XEl0W?j>=)o^t0=%W}(#vnRYV2l7wsMiKk(3n{l>mnu-e!_)Je%+n351zH2 z;CLN_l;=$OlQrZ=Us1eJ79Lv{=xmIu5{HESo6_?5^b=DD`aQvlIc5>aQ%b=47AOZw zaQqguy7ibrs8TL=*R8Ci9NnliSd=Sdirp_{H2nwfSo4+O)Hd41M&$Z*s-d-e8{j()y zxWnnTkN<7t(po5g4npEV6?jKe_L;8yS*^G!#z13HQ}fvau#i2*qlwpE2F(a)Fy-KT zoyw>Zjc5!VWU!9Tpi~NDH4sDblAEf81q!=Vi^ssxSdS@6+?47wVu^S5$jT(5GFf^j zdv84lKc|oWEyYm@LlBxPre+~lsZwf|`brX3a!fUaTiJaE4)z_~GjfMzQ*7lPlA*~SuN?;e1*Q{-faClOf-_jI&Qn&=09C!%lvENq@?`(1ekqPlZdGhG zV8#pZPNjKQIDYd{;Z?273PrEssi4aD)TzVImZgw1&p}6W-%{t1Mp%_b`YQvrOEXcr31k6pWrq)-fw!u8Ni~dx0KyiPx3@5B19=BU+7zz za_23MJwu(pcHSaJOlX7Nw%*ch%wqiF)J!;06k$X{MqHA`C$|xF=hx%iH$)oZN(n+B zT+JvEVTj0^)+!QS#QnGq+$%!c0d&<3j7o%WU5F&1VOS+mQQ4|%(2!`ERnGBVQ{YtM~(k<-lqgd z>H(xV4y$7a;y8jbp)33-Tt%kf-o8q4bNtBcqP3x{Xp_#oEuXcG_o#pUHL-uFvWe^8 z)oO|1Sg4F|T1shY)6nrv^N8itETg%X=miLC6<(OrS7g!2q%JBhCWUS>U1z{l67Mf7wyuRrZtunBD*d5cwwepD=) zI<^lt=$2g+rbjdb-^JYp+dK6OJyRcUC*gV0a68isw^IzKfh0S{!KYXfCJQk)f{23R zU~$e0fM@5Lz(~P-cHL62s?FTXbjzp~sqAgNAnv#4$;QbzUN^fwsXPrucK2A;8W|LT zn*Yc;1I!D5EcwMBo!2jm4LAMCj#tE3O&f1swV#?mtV}*IPx1fF{4lfi5(UzkD^(80 z4~_(y{^gZDRaEL=klJ=sRof%zijFy&k(ieCa8)r3)o?d}r8%QOu>4E)d=&9$+A`u#_+ACioDLv{8Xwv zn4rnKl<32{Lr%L(f|aPC-@`se^}Sjwlh{cci;_$~gLW3dRtTw{4FnfQ{S$->yLFb4 zqDd_!9|7v6k9A$;6c5TiRZ7iLUkMBKA`DadKRj1$y{c2Ao;s;9aguR|&N?tETr8e$ zfH6-gflyO@Mmj2e8gdTBPiH3w)sC7(2(Abdb!{AzCp3;9@*X9qJ(pAE0=~7+JfB#; z0hP)Vd6CJjK#=?gChyB-vbg4$qGVwO_0oEyU+hRo6%vIKC;d1C3aB>~kL%%!B4;f- zbT>o70|>o^m9*+hiWK&Y3mN*=rp|9-4>rRrK@0`VON*C*xe_$hEUOXbCFXWfGcdqx zU#Ejv()txJuPk2%=GDvMd1bi?X8SrBW>3Hqxx>FLCR0ZOm^{Ny(!=hPc8-x{Be95& zeY~kIM`Zwb<^qplX%t^-n!*HL#GZifKPGE~{#yNZhn9*!#=ty%B~na}a9c#bV@C~M z_qqn9#$grKg4X`OX2JNzjh6qd=3=4NWkthj_Dn^OWbuQDyN?=Ocd<6w?;_24Ypr0x(F zfP~qRq4i6z+`RfGqNj|BLNRw+U_u}PW1?cO_Gz)VjrWkwPDX?0%w>~*>1h({X@bByWr-rV`(#msf&w(S0Sq0_}(YY9SS zH#$zbwSdur$icuvN32G!$d!V7lVHH2e$_!HefZx~or?}0-x!NSEI_w5}_bBvY}keYn)?w@50D`4zx9q|t@j6YtVK87u1f!Fg%``T?DO{sQkk z?#;ec`}%gef|`p(B6bl148|s6w4|O|Z9`>Jpi?njSNVQ5sC1>?=rXv3*+VVRZl-#3fDFq)jdx`g0wL7) zKRBbjY1l2zoz?bctNh}vEa`p8#k}4KAbM5h9Rt}xbY>8 z;<8#9SXLVw7KGG6iyn%JQs4x-u&(>)p=|PmQ)Qrcgc!8l!Q@G^4Pa~;T1ukwo-}pq zE&-6Ik8#YdPm?#{HMuYasCd%IGWb+w22co&BUKiC^s687LqBO&&)d*Z6e7_;Oz?S| zYd?vMQKP#8;dcjTctn6vB;|>xn=VQMH!BFfq^fwbKdy=9RA^QSJ|slce+K{I&Jam1 zu)rf0uzw(n14i00*KsS5m4sKWq>{TF4QJ>jxiTDOfs=;AXqm%=+eAOSg$Z4CnmFcxpj?yPRE~Y!;|Z$fYs$F=?13D&?t&DGf5RMG#d%!@ zDbXT-0uI0rjY+n!~hBUddXZ$M1iaGFmFnwGh2%^$md4!@##-m<$%Jofk;Z0 zk1R9ONXoD1Rx2knd3WU&yx7IpT{j1=NTQJ2AXVR+F+Agxtj+= z1kVSQ<*#-bJ_WOh!3j2&BXc`J&?pzEdi`OxOl2{zv{5SwZS+U24R(Oqo2(JO!j^6t zA6NgyCB4+Cz|UiQEa!E4s1LO^>G1hqbJjY63Dbs8xn<^F@~=F3dd%C%4j)Br=Kk$p zbI$a-w9Qr@e5g%0eE!#*vprJNpdcJtu9JT)4&v+|)0Io04T^~b=l2rIAq$xOl5 z4;*ZRDg)WVt^LTMD7^>f*v6V&1{2WzW)?{9mYyc_O@$%dJ>}k};0x7S1T%#j)~p%7 z?u@C$pac3BKF!qeW6^Z>ik`z%(-vOAYMiJ~B|x2e(`LbaYZwXGs$!&g)kEuPFBAJ$ zEY$FzeYCqNuni&h)Qf6>HRkDS2SB}%`d{};UUAYoe#Y>ZlHMIOHU7F(R7M(>)2f{7 zt$S#3-EWtC)0cG_7Sj?;ila?_nf%Cao1^?TlF08mDEQpAH9S53`=&gUo;-v4#Uh^! z7G(so8Uh8}BP)aP7V&L;Z!-9_NA#VkM_YJ*8<+6pGPigPB`_IIs761OG>tnL`2Y)3 zj(BkpBBLCeJz^RnJoi6zc@Y`DYdGN)^XU zGt8`9K+F$~@ZM3Rm%z&Wh*!?cByPZ~G)}V7*^XS!jKpRA=IbxWnS-_yZn|! zaUQ`uS_cGm52zF)$&(Z(amZhj&ma>3`K-?YFp(dYr1Gv+DgO0Cer*U}uOBe^j#ktt zap!TmwQ+$~#@8B#0#jeo2X-{*#ilxcW*E1lk+^WIBBXvFi&m>pW7x1T{6=V9`Z{RM0sj@W zia=exsuJ=tAs7U1F2S9Uk`{~06NxcFW|kJEg3Ap5Y?GO_;cJ>vD_Hqk>B~B>rL0at z;!u>VCf7`g0rYA=cqvDW(@$4fpCDB?zYh6Vld3a`W)fwWtY$*5j%R`9Mq~!JxFvIQ zrCJ+TO&Bc7z7Anr41$8xc+`Cc(Dv*vBzk79c>4=CaWMH-bwQR8jvB+HtRoyHb(%RU zE%{k*{Gm8XsI44jN_uhmQ#h#337MlL^>>A%K6^0o7Kbp7YG)$M##l-+jJI+WIHkU3 z%g28`LmObb4Hs?Z)?FOx2g@WjX)?1>`_uMtXc$)NI82j~joO#q!LiM+yMe=qb@d`2 z{~&CWG-#w}E88@0f5gYoy7dP(XkXCvc=FuE4{{|Ni6` zq-;m3F&M$k#l(m@tS=NTBpx?>0b$E5T0oS5vM~qwT8>4nL~{7dJq}-q zQO&LQ-!!Dc&Rj2h&C*u$|Ark`m65rLx0&vRPS$bbz%AD@~xXIHy7rCJA?2m_yH82VQT<@mV-k|xeA|u z?_8N&Ds?PhiYv$Tb6Kt&)79m=dabMxS%3n*C%)2sE_*!uq zwb!^Y(dG~ta~{{Eh{+MZ(2XQ^?L3gi7T$jqBnz9#nH@ zi~+Uk@JLt{eLo)5?Xq$ksD&6#f_D;XtB!*J0)%aPc*jU)72ae+zCSs|4#*F+nPH^1 zJRc5^t}#cKM!)R78SK8LzJKVDdAX#p&eq3GS(GH(D^G+q*M+u0Rtep9^#WW{9phUF z&ef|-v!t&D%i$dU<1h983bl|bO^zK4ura>Djg#N$C-G)TYec%kf7&MTcK0L>U|mNV{ksE3d)bCKk6+`S#M#Q zdbv))0T_nCO$}KRMBz{kV9{!ge@T@f{8f)zwait6`H)hGURq!arPHirp>*ay>{tGG z1TE37ZqpRTXeA}!$~?N$A4P}N16o~6Y0I^5_GVLlDD;_r7u|l!wr}g zR&i(*;C85BkN|)-bIXb*!Zz93nw|f!I$!=zjF+32wZ89Arb2b&LCt01Zs28up`sJUV|xl%9Np7Qv4ux=kKcWa zyurUyerZjmyQx=>LqcF=o|f#u>wXKF7oRE_Vzq6{xoo;c{?!E46%xFf<`Fcy?hP|Aw#PfRdZ3IazW6 zOM$ZtOZXfwDvyIDGzqYTuL%~?B7Eoji;wU9@9h^4H=ff6buPzT(+~CP4if0+4*1$` z=sk_9-@p(}sj_lmBvkr}ZM*c7A!k2R5-IgkLkqc+ZWO;zo@#z7O3)z&X+=nNyuc_N zQUCN5)YODJZe_<==o2eVDn%EcA@|whN{A zfZ#bvh|ec-duY(Cwv6hM(V@|z#eYgvLrmA{VK~-uXXkqgUnlVIY|r1Z{fLR%_Pt#z;lTMiro9EL8H5+Bz0M z>X}D?#Pl)cN=bOrPC55WzHw814RCxOW>tmhnsOB4^irPRm)pgAdH@=9iqGq*o+e@m zti!KFlFUWSO(ae4zzMiYbx~IGOkbw{*psk=G;-Wh5h|=nC4!qz8y-+Z+wzTL*27XQ zeBfCM9N4`nIsjSG9RIC1#(JdlVKR`wQCZke@Omy1Z*8lKLCjTOp=%0Z4w5PS*K{! zI5&dS@c1HzO7<+P;O~$@U!)+t;8m5(Xz~7d@6n6(UKh+An$7o+ z5{Yxl8Ide)x>7Dlf~`wR5-dzYm%fyk09%TYl~*%0+NYo$Z?A428nZGJ}AbS z7^bc{Y$*7-1jk}IImsdq;!;INP*ZAwJQ}QzUhDxKF7RG3=^oBpr#?83eJKRSo@aP| zod@xR9|*ypcRDzHcPQ1gkknDS=AulMIs6sadv%dizk8&wVi7v#DLd_)^p9TK%U2vG z4vx_*aFCT*>OG3?^gq$n|0DnX0AW@u! zE`a0qXhKY=a_QLOFOm>WCnY@CO@b9(h{F3{uol4&$|WX?_=-mxAg4#WwBJ}xrsC%- z_5cHxe*6i07u8PAc2AE_#uUvR^$!OV%PCkKN@^DXdwvGF7YoVqC=xKxC9ZyDkrd>q zJowG8EbuSMTv{l1d+@wWiaLSp-jH%~yERSffGE-y>66ReL=BN&A2kyAEeMX?m?NXH zKqBuOOC&a)YBcm#X46=ue8~mKB|K3V*d<|~xv0>?Z;AcouY!FIkfk7gP3#MAj7PBq zFaO3UUi>O3UP=mUS`UaNarw7L@vo{648@JK%+*}fs_&|YZqTFqgOg9TgwQtbMQf%g%44d*sx_L6p^3g&-Y%V!I|^qz zIdj(;j@wq{YI+iQ#wbNCV z_}b~J&NIwbr81k9yhG|JoQIuNv9c?tz&g+$m&pW$W0>p`)VKtVFTpvN;KxgF`6XmW zgW=0GV*6v5OhQarxC~x~MpgqGUqzYhig~#sd*p%!yoRhftWg;pZLO&Zjk@sk@MkMVPAU%Jdjey>IqF<0TFRE48g# zzXM_`{9hU?m%#NUD0m6JxCFOdf`?Ty+KHVK2jn;`#cZQUPva~9k|xR*%jBbT$|g$A zEt@sO(xRFuqQ@In4=l(k50F?Ro@YK31VD=#KJ92 z=9&*%G1nS`HJxyusaw@kCJSjEd&-40H<-APdeteEkXM~TwRu&Q_;!7j(N|YkzXSYD zq3?aBmq5xTP(6*l$ENI$;4jwAFPH){pj-SF2d8h|{TPEzD*Xg z0>aX{3B*da4hZxoFP~$#_v7~VR)&rJujJd*gk8XmINY0ZV3yA1i8KJ(@}55vqupuR zNC2ic`HcziwO#v>vxzjj4r>|MgdFbS3!KbIlnN`ybeg{fvHl2d>PRdVf#^6n}2DHI69N|AzP_iHa6JXlZRqiauIY<#!bOFfizix^YbHHbO1u$%;sd}TxxqE15;!vfk0E}N4F<3zOT7=meMj67RNaD=czeaW=%m50z*m+H;YVhuJ%?D3&ox5Q z-Zm7WVF0Dv;Ng#}M_k)k@ruUB&J9N!{f!))?G z({hAfdpT}x#d6n2wuL_G{0D@Y5pweoYd+u^bQ!arXcV#4&NC@yE1Pb+xDJgxA(NBJ zk2?R)Bm@*+rtuuctq)N%SrAKQQE0jpIIVh((UfH*C1UDjfP@1M$@NC9=}(H+&CjzH z9qB;9no9=zLJOWHAmLX+^_03&=a%QCXE8>jw&YV%T$^|?=}Km_-`Awor`9-W&Pr!5 zXH^WMo`{97U4Me#Ohj1HKK#D0JchN1pY`0H3vX&d!LIU^Bz$P%mK-H$xhv$}` zth%O@rz&eTSnZz`cb@sVJQ?q-RFdyBeE(~8P6KF%DI-8Ec@?7*7@I^5a~Hyl}^*s_1}m( z60i6B((C`mDlU62e>W#jevg)Ub%|;+6?8{cH8KjLtB|N*aHShozZ-Ju%3LwH5_ziVNCoo4 zZO&}t|7P{80|(Q>2xZ3tZZl3pE=fm+o_`HT$|vqd!tVa}C{EL0ImbBsZiJ$`ME}ZI zu3_z${)wDJoE-HJw!x5y-P<-FAY||yd+#;*c-#J6r2k)Jx_@*k$rau{?tgeRIC_2h zhDC2TPfvzNuZwS+c&1HzVTR>D;qkW7$?kO>Z0_gLp9n+a(3c#i0n&2l!H0Lp$Pbcd zwb<#8Y+?jH*RIX70w0?&+NV?WO4O>B;fC zT#OIHqXEASPEJ31wbz5wC-0B=^}E4nH`mVJS({}i!*{q`U2nI66BMK&awy7%QW)A` zpwr_g`$cv6Mhoo8zSn%y9~o4+<~ufJwYgjxXR>>IczAsD_f53u?e4(xI7WJszkQpN zCT?$^4F2nEcrxgzMP%HIdNi1NuoicBwzjwP1O#~WHM2GU^5smg$C}{cjuL)!yK{cg zxtN)=KXpX;uYbbo>N7HC0c=Qzf+4PT`Ui0D13vQ4K5nhUJ$=%ltp^E`LVWLl%tpx6 zj#aJ!3UqRt^|tuoB@?=w9S%4w!AMf79{b#eIA5TbEd?7y9M?l(j?V#taT`2Osg|6J}J!uyj2$ zBl9(Dd3!q(+46P(X7nKE8SIH?eG0rcERdzO6P`eFvI6J4h1L~xUFmW9z)XaVJg->L zfoC{h)|<8Ho*n~#ZbaL%<3PGpeY=rR89d9eg2BP^v4*1N_UPF3cpfhK&290_m0K!?;!1L)!rndyjGl^`DP`lrL4;lc3qBZnGv zz;wKQ##%?mr#Q{%09@?|`BDZb?BjI_D5sqP(vd-Z;*reL!5-5I^*i@n+@$K+2x=N% z*ZMnygIVpvM`TaP7%>7P93sQb++eQL-QFIIfQhq%L03lL_%aGIhs^*zZ!jQ!YDZmD zj$Mw-`K7VDm^`CFVIi_(_dFX4&D3346$@~G)MM&+1#!k^Rn=rR8pFvkULkLhAU;q8t9 zn}@WVV%>Xd_rF_z@cj=D|Nf6hk2jt?{ePZqK7aA!KmYen|JmQ!MPIMq41a!maCmh5 z?!WLl?Ab5xKYaY}`Gv)$N!fsIUWYe?@mtK*jf$gohG{Fd~y`=)<#A2sfs_J%X8KGceuoF!N8&UVWbX{@_q zL<2xx+-Z*a}lS(%ZN5eVI^dV;Ac2F zL4-^9;Sr=}xF>9Q^m?v?v0&eI4$tri@6G^P0?Wg)C!^>_T1|askO>c+#%l9rSkxKO7(I4NgWnLavNnSRE`j57Aym zctR?}%rgy7&rXgyTV8gpQ|Z&Ftwc;{578oxsHgl#()e%{d;q`^ERja$u;Xb7H&I*RAA?mC}C@nm!y?`u?<7&Z|ykIpKC)Tt+ zS0+|mnn_a7A?~*fbGj`i=r~bFN(aOV-nikYXs@|CRmGw+m2lOMRl?AAPN|Sd#3^w( z89_uPW|s6(%akq!X~@kvHKYs3w>BNsmnT*v(J`mQqb+k{h{UIp$rKP+rBSEBY{IH^ z`uuoJ47MJ2ST*HkOFN2$xd_Y(&fSsHO4ocZSZpaEH`W@+r$&$@vFYIco3o?0y)%S- z;whAn#!xnst{*De?)dEV-PtLG*G;dm?S#xDK{FF|n*1Y=rHg+^t>=uOBX126EkIf4 z6!3H?o{e3FA#k;miYet%MX+*Xv0jWGge#N2>vR;(xp!xyH@zwWFeS}c$T_;K84<1B z&&No4{Qt3cZmE_o%X#g};ebIPgx0*zX^?RP+ygxr1P3D!lE5|?++(o6P_Iv8>9ck1G4uY{uhCbs#!Bq z-~aHt<69lq0*>1DljRQMclX-B|1v-5?_l2T{bO9p*lumgyv(cn(*%F>n@NA8tA8l# zKgRuYaliZBze>y4`WJ-gAISwU;a~qLasR1lb%31yiYfUEz5aYp^u>P59aP_6P$=>B z@6Wn^IwyZb>v1^U@N=S6n`(yN95Snr#QTr4^!va2yWjs9`9rvV^IM~TLfl`_%SVb2 zbrW@dn(nWE_iv*5!dIm~bi-N6PqKfrLYDJWW#H!ih1Hy@Bmdjqza;(%)3k~I%Ze=U zqn|M5&tlX6OeFs=|4eB5KVZ?{eE*K}-~Q7-{=?sX7yc&i`w##9Pvh3__Wyd?k=g%i z`1=1g)sN7&6dO_hw{ZW}w-5SP|Lvdt|NgO;zvmZEAHV;Pzx(@t{-6KEk6!%x z_ZJ6#ao`sResSOz2Yzwj7YBZE;1>seao`sResSOz2Yzwj7YBZE;1>seao`sResSRc z2M%0bw-2{6m(Szt33z?3H^KYHozUg=dh^EO^8C6zKETiWcB%1hpXc@S5q_R;5j<~S z7mJVUL-4+a;eEY};q$n@21I**U&434e=g#Eemy?+dVFp#CwP25kBw@g*Y*9j`ptbh z;Pr04&*R*reESExRhFD@%D@2^HY-uDlk=yDD39b##{z21>?f3j-I_t*6UdDrJf zl-KL^NokvZhrBLN zC#N=qxBE-Hx3_(+&-)9qZ_w8YziwZV{gT1g&pVFZ?*Xto@^XKC#iYmM*;=1l`Q!G! zx*d-%$KK#I`0rouSjQ|PzC53ohx>5{nGCqyUauH&`#h5ZHkZLj#u*H_L5#$`UpKnk z?l%QRR!KOO^5b>?5?n4$dgHHTg5~Po=$stAf}G^yp@>y*XJuL?hjcE6}DX-Zx_Q}9X{QhAK_`n+g&`* zD?DJ5$16#IEzX4iKIzLf^V6YBc8iHm*>Sml-KEb-?MyMo3!CWc?n$y4DsJ~L=eykR zleOo==Sns@{p%^>%j>~LKpU6V5OaMam+SLG{{B6xAhxl+0w`nvc?ytAS7ZcmyTG6o z-8p6DK&8Z9G7lh|6b#sOQ6A4AH^6Ek|Jn+WwSa@cS)J!#+U&~v^_!4ngc9)e2^*rPx`O!`StBTA)d})#9h(2 zcC6~+qVFEWtF+&qj*#xV!kPNGJ3VU4e;AuwB1OL;38H_H+KhC2diXym(EjEB|2<0A zFPi`D9JpZc(r_qO#d8?1kGDeiTl5@*D{_L+dOYu6SLN>ZLi_)5zYBUS+xh4$UcZu8 zK$88Hi-8%?G657+K*#RuQMHG+aHt%Psqipd@dg4P zPcC$Nk^qjwe%Z#`>W9rXsd0+vW>D%>jsSEGBDWUY30r0Mb*{6hWB(lfLqkMb3RWmnUIvv2m zEJ@Pmr5AF$eDox4*Q>N#=fq&?(;b&DeYD^1;cx%{_PXY{%!E<8IOX-DLR`Naenhl= z*@S2CwD?CjaHpuce?>hWl{)m!9zzc-4-Nw#pVxyjtpcQvtpVO%4jpdx zELz}=d+_;a2iAmLkLjO>YV!uMO^+WWFZd5sco1qsoh>&O$$3Nw`_%5UZwkTJSB@S) zA^3t>0liU#btQIO1h)k1>prLUqZ^Aqm-ha8UKoyL$-W_94Y*4&V(n%sm*M;*bYGt# zV^wy!v~LjZ?EEV&7(m)&iCr%DOC^?7DHr$l)XSkQ4sl?b_L;%NZ)y4P$S$YnbI5R7 ztBfQzMFw9ot$?+?bUd&4&2ATR;TrVeE9I-)UUBKdR*p`=b3QI;T-n(!cCcN)L8yC! zER68uHxVExS~y1S)MftC^ZxC(&ISAAjI*(>0f0};c7LIx9D7~Va{ojy>PcQa?;FDr znmc#->exKq(ZNQIkNCzh>&}^D7)mgfpt~UVHea0Gedns-l;=C&9(2nCev5h^&3`l!KpYBobf z?k~zQNB)tLWhu}3=WO!WmRCgtktc`fd0IJ$A4&K=$@k;Xaa?J95{W?FzzxQIWy z;#B8F5@+0{_CeT_z!NK2W;gTYE(;Eyk3vT<(0FG1T-tARy>^6!p%vg1`V+q1K8u0G z;{kl+;~6g{U>BIBFc5o6VZjT03?VKZl>A`zW2O|3&0S-o50@XRhtrF>$MeTK6?mUh ze18|iJqhNL#Aiz*QYlQkArBA%->1{=pWIc1C*Az~ywY(Z0fM&u(6Rqzd0KZSe8qN}p7&j~L&Abv3Eh#>1gGknXwv6-be;9ts1nRmGSly9?X z2#;8>YzuEchAU^8M8&f5hGj@5pXnUzOW70L3*q(MiAQifAGh0V8J>bmeZ0Q%K5&^_ z5tlY#0;sSb8Iw-)6JeFeYuXL_ zHVI$)1bdc)Ldv0qlm#INk^&@V1rcVT4SARGV!M?m{L>jok_1hLlu^xj&!^#7x%uQX zpd8mF?Tcd}Q)!EdXb9;y0Ta_;sU+Z~vUu>!bR|t!c2Vs2dr>Ya6A|H&Ie-EbTuEFx z?v;X3qbN%NyO5ob9CB%5`N|qz$q6~HSsftyHPwn=rBGw2pxjE&;=`Paq-Q^m{F4`c$Q1dP&bC%S?F`AX4Z2an$@gE^5Y_xG19B?;zw0Hu=NxK+&jWDi&# zo}FvHeReiJq^m43iJ;`)<@E;&?BgtKuDlK}l`uzjh2F`jAwWv5X4r4oc^L@*T>1M; zZM3E0h&nlWj;Ro&pDu`{i=a*g%nCay9Lq9@?^j_BsW+KSYBqb!wl*au&yi%Ep#O>= z(i*iTU_z4I0yGu1*H2yuenfH3hn-*~g5dt*juQY369npl=2U%fBf-FV5k2vu;EMz+ zeavP#`9X+7F9Huytsl<}8faRCw4ls5*_s#T(OEewG5np^g>=o;y>=3yQwHE3xN$c$ zocI~xcFHsHe=T_kHz?toFV@VrQ9K!e6iKE7;2Z}@MT3fNBiLxS6PjfPfkVE?d{@l? z1BvLew0B}6`S~mJl5* zo62&X92+Drkh!E94z+p|ky{3Baq2y5|3Ggty^A`liI}@So0T3g#7exljqVW_5CB9j zwf=aOltsen!s2Jnv1pk^q}P?d3bxM%avG!u7dS5)BO_LhS4VL!Ft$OZV@xvQ${4^2 zM{*ABiuqX3ff@w^5poP-@wVc%Ix`_~olw+r0VCy!N3?g5z#cdaX#g9M2paMGa}HnV zAz6)Rc8D3mG+PAnUgCfQw9A<%!4}hDUnB(!k|x1P0xxXLQX*%WcMhF>(QBY*NRAK$ zdOj&Af2f1U{8)StF=F83?_-|(Q46>S?j?*6e7Ktt>^6g|CGp{Zz(LeXHvRE+f?`yW zjdO~KLr3*?V(~UQo$*|!L?t#&G&mmei`C0TjP5r5v?X8o7LGF>6J*V>kcDFeW70&9 zI0mrDN^-^Ij;IY%0O%ICi zJe!ooc&C4szUR|4&}l?-Rw`YQ2-sa#Lb z9>;08=W(NDlwQuVJHZK(l{eCDP)dx`tqML&wI?D%U*%b%93YbaFQ7L-NnCD_D-K*M zFfKAd>r4!=Pt>BeMjzWEooEB+Gq!;k!0~E0`xdcjfg&ih5R0KQ>B3`^Q13q#A+lVd zpZ|kn8@ldMXv;JJqZ;CwT5TKhQZMs^-|xH{ zk{Ye)GiPh@2$Z4qU$mgA6HkEr;d92Gcpsi-Nb5uC$ zqC;W1_ZWO<*2iiVuF(|*j+A5(wz&i|iyITK@e*1mU2WxXZAalXTL6U~bu#G%16=Tn z31O`=pA|ikg9wN|a#M66{74$fqse028*9-U(KkniVoaq=POu(=2L*F2;0$KbUZqem zyoGjzDHD4JwT$eX!Am5yd6=$bRYzZZc+rsN^++xk>LE%?e$sc|1%}vJdD##jIMzxG z1~?ohCTYg0D$F$Kq7@^qe31@Ni2#%!^zJUFFZjbA!3Fs2$x+>8G^mD8j3M*PFvsFy zTSRf%3eBtz!?3InFe+cmS>Bf8K!9T$$<@w2>MCCkze6_Tm?n<|o9+QKb*MNlLJpp6 zz>{9a3!OC)M;K)#x<^7VbN2cm`HsThm+K}V>Z5;*@7tD`g;3sz5SHr7`r-oQcr#I< z35fOl7^MDmEYl#mOAb8HC@mb_JJ|I+gO?PD8~kEgzIaukOOIoeRxD|G9pmdEF+?- zK4dEw8!X#~OH?Ss5zD!Ge7Iww7yAP(OtYnx-tb*QtX+`7@smpgBy$K4LUa_9b6^rb zLL_$#iB8v{+++t)y`&(%0C<$~!;xy{Zubza<#&K-3Q};2=7aD6gs?12NBlAe9?c-T z`8V^5e6N=rg^{HXkYhV@Q<8&&txS(#s_MJM5!~MdT<|fJyqOz_l}^(w5lZGc1MMY^ zZ5c2WM+$H6Vd#>p4v-u8iut_A^+`|VyqLOZ?%h(MaugEQ;GP25X#jWw zwhs|^md&z?JJU${yN>s}e0HjS2!3!l_Y0JQgv#|#v zKeE9XTF(sbmqT#0-JKJFKQY#E8&xDp7_^MdeG1EFd-JYLsUVt2`2m~WYK$0>_l1U~u2-U0Hun1Sa3kckUvT0=RtIWCAD%lgar#(Mmi&;FVptbOYWIpwC} zH4gMDzRjLY*cg zxV*B3x;YJmh~njJcM7l|PL8pj*TB(?ee6k|B^%U^pG$p|RcoJ4<&=w?Yo|o~c*A7z zoPVsvJ?|6~;_BQw7)N?-iCE>Qkpu~S zmY>RXDaWehwPG#<($bD^-Db4!&w|;#lmcni~!VF7Tia?ZZgTWm~TiT3U)sC7I?}8B-NuOf^4S4 zi0A^Rwj2hiJlnVx5=oz=lf}1pqISKkx)1?Vk?T&`ora&CMii%-POC5iQw*F5g@&68 zbuA#r1#Yy4tUHwv!=`OuIY#XGa$o0yic1A~eeT4tJWPcy)5>zQHRQ`=!Y((9qb95M zs9P~~)m6qb!V@gTV#TIL&a4~bl@|i6+%e9UyMT1UXYwURf&xm&qFpH!>3o*M#buQ^ zY;jo(-9%=_S;+%OkPXg|aV|8Z?>q=%8?8p(3Qy2gd5j1t6jFUwjMkPKC*MLATUTg6@USeTuOm;a#Xg-PdfYBP z>@Yr(pS0QRp%lWZ&N7bW2<~v;c{nq4QR(v;F>rF^7-@h4L~{?+B15f_;ARSn^s;Lv z0LcHuQ*g1W?QrpKO3c0h5HvVdilKeBu}t&3|#p=R{#b zB6}6(m2DW%&MpYA$DLqIoBxIH>GXI+$^u6~Y5;R($^FVhoS&%S-BtVJvr4<+XoM=` zPRc2TqS|RUSs_cp|Ly?{Iz{=Im{o~o*9L&8}$8^X5^2brZ zGt{<+wJ;)E>2Lu41K{lad9FGRJe^HHt(R z?s|DDQ^2YSnUPWua4?R_I!eixN_Hz0<^F2=l6!>4s%mkkJFCXME)CCPYuRO}Haf}1 zZ;(moKF5-&7l2*TNdDW0haDZ6oso1pG_w0CGtQ)3GO^hNd&@p%#WIit5H#Oj(baCfw3Qdy3nUQ)0l-_TK*uqec=thnO~ z7ZamBrr3>ZJgzhTuR>tRVlQab(ZXBkW(kn!;rI?UNr8aU&!ib7H)x?YmrH_z3sv%6OiDaWAubnPsqEO$l3IC_QxOMI^OG}aC4aYw7 zWma?7K7r}kwo!xj8dEi5iM*xK+g!1jhX4@c%Lr^_OT(^YfGJO&pjM>XP$%Ia$SK0P z2@;k@q!|BGo~hlv40FA=Xw?AS%T%Qmq9MqWH+9^ib zNa{>!M0r}&DctEK4y2VGDpXYz zdpJil_?&_fNWv1S-@eLxBM#Iy3!sfw`aKG4r zTwx^GdA#<48vGpuCt}+ll@AL=nhNv~o=UrfL?gF73+K6k@ZhNb2fGBQt1{FH zNp_2~pUij*Xya5lWX@T_xHA?tlo6L2F>$r#GWaeveF@C4us?E>EzH?Rzk^brC*IR9IMZv*wRj3y-QMJ6)I@=kwaIzspIXKT!GMvLl$MK39505V<#fs z)*O$9+m0zBGN7(fgVwTgUXi$#!{ZmNxBX)!jZk)plk(M`u$GLTzh*ZVHiA)Z#dZ({lk^Okis~l-2 z$fg#(6U}@(Bq4jZgcM~r4Wk^15|w7`j!N5iyY>qih@A|sj*0jnhl4#;3;QN;OG&IXO&V06?l-HD~V5LzFDQTaVSmAMyY{ z(~TjgAT9VL&W*z+8czGzR3aTF=EC5><}08U!H0HfF(_R|qUe|F$F|A=__?`vSUFQN zZI1`og%IE>x&+Q)n+#nRk%48UXa$pQr%OVuF1$d0&<)Ktf2sEw2=}Zu@sDiZiz(8N z9(RUjQn^`IJGv*-3Rd!*W4Y5U>}ed^nd1$C(ntU`G|^ITPw7hk==7DcPE&lk|+6!;bCq2;Lz$6BD^Q za^!g%aB=4FJiO=F%09e|cKf{kCn}nk%cCH7n)F;uN1W|OHlTnE_2LrQi@6`2KXV_@ z;pw0+yV#mc1j-#uoPcu{=wil1o#?S}j^GwkE*M`nqGzvoIO1`k@C}&8$;|lKxT_WTt+bkrf`#fn$0HdEG?9&b#UM5# za%Usg#qRTpBWDQzAyP23j^P=I#dGpBfHDVW zD2RaJ?X`)Tq^u%p)M}rB#nA5vnN!f|AfL1;`VdVcW;d_xlN>x>IZm`UCu$v+~M+DibX5VABpt@UIxxyfjs$hA-n73P_kO8*?;oR3Jlt>Uut z#$YW4-2!>^+RE^!BLLsWwV>&@r@dGshFAgs5wsVsm|VggKGEymrk!_XHkYF|Ps|h~ z9Az=C$Na)&L%b3h3%>I>7&p2hosoNTQF9wH;0uU}924c8QFeT6!eB@jJCN%G`=p+` z1f`jqm?aqgz)*%H{&>!3fqAg(Vg5cLZ$zc;IJA=v40xi|%MgOggqNqoV&L1=R>#~x zI2Hdm6A^^Z4Yx71lMp0ZMEJ|DV#x{)SF7OE+KDv%QcwGKS^F<0Y+Mom2B#sj5uM+A z+{cBc;2XVLAQWYWu`^LiD4 zWP04t7|RfG`DrTxy$}!OAa_Xh=BjEUC}XqAH?tUL!ttDCBg@;&`0z2B)YMMlxrIh$ zE3|$#)Ut7HVTv(KBylZecOO)MhFvR%MNV51NFa%mnC%-bYU9%@+<9S6?wSaDSqhNe&5Q$5HSsGw(R$&%X?7ZOzyI>N;ZatU1ZU=hy zsL4IFKs~vY#3Qk6KeMHsr*h8)6{_!mU9nMzGb`I%s)X|sTS>nv##7)RCsq-G zlr02=L7sp)3MVqwa*hi2NM^WBT&uM9;$1&Fb6)g%jf53YN2fk2#=_@ja2{mM{5%}P z0Vyrg>Ht&C)R-cw+`iG7T_E+XGE} zN|5v2JMdPOqxLk9c zJSlHGx(Vf|sSjzGcHq%TNu4dn?XE1^@ErmZ!32NZP4)Z7^-iZY3n)%hpbii z&fRpB>-3Hf%KTK@4Y}~NLz>D%T8fJOECZeq@`4?7Cj^$Bd3kuB9vMpwNQTrKAVa`n zIw^k%+A8zN&|S^21UiSgo;`y>HO(03{gFDzY8~yi93JvLuX-Uq zDQIN`FH{lZ0|-&iQbwoQ~o?3~6lzRlfI+ zg_$NwSz>Lb5RC|FpF05G4GflLVjKV3Q%Z-4U`8aU8?Pi~(4eANEk-Tq7$4( zIZ2Qh&gJGf5p_vT@E|RBi#M&Z9#bo`FjvgSxjzO;EsCn$4COs=y=VW<&XsmD-6(3L zM_P!=Tqf7QqBav7=p^DXIuSWrMT?lRo@hqb*UbY&H#(E-}P+Ut!4_nFSFw ziYb7)bqyJ9%yBtltUfsDATrY2rak+XC%@oV{I*iqOs- zkfjWXozrmS#S#zrEyHMZaa`8OH$wB$7XbI zn@#{gk!AN?Kh-(*=pdOy^?o1#c;e3`@+g<%Mp%Y)m#chh=Vlm&Mkx=(4r~G3mAEY0 z_eBiPhl(0u7v0Q*x%b|l)`@_5FptaBNQ2SF3X^%x&AqgWPx-7y#W9TZXZ|FqfMFpc zQ*TZMqw#L$oRSY3QVdn2_lNT{< z;O`b=!HaD?$?TAkLu(QsWz=Ba7>9DL9UUB!!>jXQI?APk$+mh3VfbF1BF4FtQcgXF zPYP*1w2|R*l22cQ@XBa@JqpKlkmIv6$0jB~ww$-h;&}*IE`>|hdB1!AJa4Q&M_oGG^f)bdwVAp2QW86jA3(xvBH zCXPw`<+ZZ7y{7N9k);#j8M-=>bS;j!+07$rDN@8?$YcPw9Xvcx`Y0E|Akby;yh}+c z`KZffvrC;etUJ{xsA(149w+1YjO5Y+MyVY_uJx=Zxj9C&+R-$5;_lKZcn7bj=I9>5 z*?LMYdwF8f+z7a^9aSRF5TQ86g=Qx zw2XP|Tr&40lLV`4WjiE``ErxgB;$Vx7=z;}fxWM%IZgpf?GQ;P31qXS7lPalj^);l zVm=H^J+nKf_+9Oyy+WFl;YuoPx@bxp?knLp}By7p$XA{)R|{-%YJ zO8(k|Mk=XuM&~J8l3z@Wi@9oosOY2lNJ}<|JYS6EGQBy#6;iI#+)}iX+kk@B_R6u+ zD&&)ylI%w3kc%QalQEcGJ!#7MWaLTu{KM3*)H{@!(5RUTh;8Svu1;XJM9<;yDN`H6 zH!UMR7XXyG5Qt?y89IFK&H1qrCUA*9V%%D0DLC1&?>Kw>+yHCv^<4``MkEVvoZ_qu zlJC07wMwSZ6e|^s>e)Y}(c{97bmRzuGP#`jsDC3P3_fI$Z1Wf!-nngDX@!clBqycq z;yXk1dE5rXB|7+3$Rl0dq~SBC5rmLwrrh3G%pN zQf|mw-V5>H+4;nhtXKLLo0w-&_5koF&EmbZRm@Y9E|ul+0ginq)eS4gR-)APTV|F?5>*lg?b-S0U~if+n(>}x zC=F;I&$-d%mR_U`dlD=*G77$Lu_z|M_=khN905_sAHFRFpTq7qvu+>(uM)*BAJLip zLmzk0$)6}frd7r1J2?qrlx*duPL2`(w?g(SGPwkgLr3F!E76kqVPlufK}hF$&n|Lc z3Yvt~vM0E|PUe?6L9D80!Rt!!l8Q`zNt?$(-_1EKKkX*VxK)%Gcpxzt;gaddX$J_i z4aLx(z45i9oj>P|&2Fd73_vH@hN5^%okT>)<3LfO5uP}M_){d{%9axl!%S`vT^Q=N zBLnpRL#T ze1Hb0D~s!mZb)&Z2c4NHB7XS&ed5CvmEDMOa{Q!$jmEm}$aD&zIv7M1!@X8vrknlSJ zAlFDAG`7kbJ*Cm`g&OF*e9HXnUQ)i>Xc!_WJ|N6e=y6_^NHZ0*p)B@U8Rthvp^Rb- z?=~!A%|*bOJd0?fb5A$R_8>^(~R_v_2)wc-rhL#x%J|qMbdy3 z?poHdo3ZB)Jm^R`$UL?Tn_1ooi!nKeZ|tiKE0cppbCV(Q``k$+>Ax1dTU^fz1F-JN zD`@FL8io?{>jV4aNgahb*Q_wRL5L$7ev@sdwsa3dp%@THWM_R_96sDN`0yRW_sSZ# zD|Zl~$P42-Ip2O)W>ApBiB8ODVIXpg`7*0bM0F^VL_%?eYgbo__?+E4A11KJ?aMN? zx?r~Zxr_p|3V&LCIZb`rc4Kh}uDoQBOh|^tU_{h-P7ZE!M_Oe~SSBtipV0?K@0ZPP)-+$#8S z806D4q{FrwI~f>Gil%0^**hp?sLCC{NfG1tvTQcTUG|B$yx8yKvaOj>?&WjMS(s-5 zDkThCoh|1e%?;t=*s-Yhc*Pl}2qUQ%l37xKOb8-ghjKnfu#x@A+axj&1xiZ7F{`S7 zbFyG04334IIvR;4ltU65N*u&1$R>%bWWOE2+Z=mBDOjlLDv{&l6qL5!^cR(i)4qPt zm#)jn>~@Rm5%E;uosM6580b@#4H_!P1xv=fC~z5}iDU})CQ0%^m!)1#AgsOee8q7{d7I$H%KwrP9Hf^RapM=yZ)hep|50gnMhME+3rVXRp{0)}p<)@cCy zHJT%C-0rz3yi^&+{g~r8jWKK@h_pc?tBE+C+0umwd%tUmBjR#U@Nyc5RW#gQI+2l_ zUH4~WmY$*H`p@jVN%7PZjRM$gkB!9B1J&5&7mB3Hx6fE0J_8zmtO zb*KZI$SP7gO~@bpuxRT--j;cYMKveuqN1V;9VEdgq^%=whiyqq_|DKh!@@h!&N>e3 zatOSeR-O<*7e=H80&Ghbf-IH``~FG?-whI(Kapks95D}wm^LlXL2Ey8Wj$&pJ?sQ8 z6dpp!xUhRVykfYgrvO~4fC3z*Tn$W;`$O`E$}vF4cq2GaKiNXI zjCoPm1=ok2I0SANdeT)bKF8832s({2X9+ttL#=gKOpew5%kM(2_K1^JVg&sxMTXk0 z0SVfwrQJUtD9R~Ktb9>0UrB&X&cw_4bh{KeWcpjbuDP5oo0tQI?*KANDFNDKBv~2R zihHk^_}Ytk>7NHiFgwyxT1qEo%DOX<({!t}icVGhV!ep^ekNZ^}tDyKsL=%3Z``QwBIE;KPMYJpH(z5&@%K z$QQePT-R9w>u8jzglbbzMe!)1PCSf;sI&b2M4ImfL5X*fn2@#tB}ZgWe$Q_a@=D4* zC6aTcG&%z7H1?@lXiM8+o_}(CIeoTrK@_*NP=@Jf+2jU9M%GCA-=hHSh$76M%vtn~ zLUt06cJ%8=VQSm{rJDt9F=F<(W$~^oSPzVs_e;+rEyd{XQ>(bB`H`%9sg3rHf%FM#FRw}0O%k} z00IAoyZcY~F>LKSYSckTJfs9)iy`w3xhSnhwMGpH@qA$m|3W1->tE|?G_X7itiGHk zJfbTKj(^K8k^(rwXPtwHS*G>HE z7R*GTKo~)wq=QKoBm(8`Uc~S(&E$FIVjeWkF7xuQJ-b)oU&rYK0o^|sIs<9cZ zwDpOKCub}~z#0T#bnT~-;dFP)1shNbKu3i9Q@5)C`k9S_ZY$|$$(;s3m5D1R<%DK^ z$i&f;ggSNnD<^xU#J^0>zYO7D`P{t(|0>tz8u_XuAXb~ue0~)lcz7zSxn3SJA1iE{`LQ} zQT!`yWg7Xn{?kOMCl5#alp?dlNW{QF0%#L3y?~hokS$2gG|hXczuQ~>1t0&i68;4n zcTOPVUvTj+sQ4F5h*IttfI3U35{#BWFMwi!(f|Of0JKPr`yil;pmkIUb?%e^ECRX+ zP8YCP+ES+~qJ_#G=V-AsEIZE8V&$;xa6}80M~xi&sGhTO3{z`Z8ZG)wmWD;Yi;~Jg zur^s}>9mbbxk#mK6l?|=X=yW>>(b?KrC77U9z*wV15d@K!%y5G{U zC}foMB>V8ScOpF<>`hx~s1hXIWcB1Br@KcTgb57mWXRE8UG|-8k3c)0{n|pGL-n#R zpQs<@D>y1n>FcKwOI?8VmZ1BEo$O4K-03c(-zMrUeDB0cWpfN{WhESL|A7~op+0u# z^-te}W58^%v&%-QE6xCSLcllya|u|R03Hfhp8y^TKqLT_U|44V_G6{zYf8YdbP;l1 ztpSE*R=9gtupE-QT08fcfYDM0lG11?Mx!(=T0Mqqtp%fHPS6r)WT=KkMMIZ4Iw_DG z_}*r9SKAwfo}RGBVCP>sR_M#Wpk~|Ua5)P8byr9j^e?pW|A~QTod0jEr;7h?tY-?D zaeFxP{oB}l3~r#SX{?8dK8@9$A!Lo!!Yv5o-^Qx1`2WUw+W7y*rl~ps3nu=({EKxf zyU0}!>#*dGlC@^#2(z4)t1?#v zEe>b@;$WcwCC{ATR5osZ=msR=B>P#HahKR}rHw0ZLB4KXCN`uP>{2305SG5DRzf0a zzr#ssJ#{JAoU#_|Q5)V5He4^e;p_OhZ%z)dKZyxv-QNfSs4EmKS2=qQI2&CK&npSr zdO{^Q8!Zj&u!I3b4R9iW$jG0Hnysz0A1O35W+eeSfbCQ0NSrvFeX}R`A$9>cEt5L~ zez2&?3ORtybU2{OUG{lNKqYRr$b8@v2nzxw7A^xEz84In5fU>JVJ_wT9@Ty~iWFNS z&tv-9dQ6XSH!YXBq9!FGx#&%am?8uuHQWL^A9hwc0hRI*yxC@c1y&RvxvkS+}1d}PNf?Y4*~CX%$5CW40V;U7Jn9k6k6f>Hy@`zdXcsL5ql!3fq= zRwqU=YxsUgj%yQVAQV0z3F(6#1S}ngoUO9s&U}?}^_04m5^KcG+0DibD9BtQNi{cJ zE)y-|>|A9uu9T#0tLzX{az&(?1N)wi0d4?o1L+4!QC)V|wx%r%pcJ`OZuT@6+RYL` zI#F&;OW^KA08taTS1Mhn=u77wQzGm}Eov^ipvRmKkdo?4IZEk26j*KCw%cV~;vhIJ zz==2yGKBMB7Ya@Ua0Y-ga4f{a39t>(mt5Z!4cL>CJppw&A8n4ih`uu*>@FJMIAnex zP03SsvFuZ9vcOAD<_Ia?4(BjBErLAI{vqYA;fVK6z|Fq{N$8`#6M$GiKY-hfWs$`I zw+-N)5D$3_h>OJtP@Kt-dG^UCxKU)tR1d@^nn_|4H_>B9Ng$6f;PL?=AJ80x!h(MIY87^hC$yUzkDY*tJH(YO(gVu^*wQT@<;*7ch z0DIz~*0bo+lC%J%3{cPUj0H7dmXx$grAa5JR^omB8i-3&t`vJ{6B#G^00(dsT@gSc zIOa}EsV=>zX4?z|IQxkdr`>7E0SBg^F?*HvjGOcAGBK|QI2^V(1Hhh3!U@)vYUI#6 zJ3tn2Q)EvLy_EnthzlbYfCOR$9S(4r*h1&y!mR;)N~&Hsl`azlX-^EKSoR(cy{U<_E}m; zS9HS3+_7j<1nCe+vkRjgz}4Q`)Pkfkln{U>kt~8cEpQ?Lbdt1J7YJ5TF`LPEIDMSf zw^{+UC#7@`Kss?=?8)VeZM)wFG!Fghe4HPN!0VSGC_dSY%!8 zcqfMeIcb0mZz-N%doH42_iNj4OCoeKnaTs|SsIAS_{lktOLTE5RBrgRcX=T-rh*Bu z3qU#nB7@9I^YJLvbC3V9HMR8%rut4!1ds*1r&(Jb3JEc}M5T24{Xw9O+oNx6Z)ToS zU3QMp+9LbDYM;v6hs$t!-dUHYDr4v4qw)rj*zBDLaE5H=3^P&N zyaWt`(_#^v*2ndMKAT(Hu|RD~K;!m{50u;-yeE5d++91D^>*<&|A1?!(rNeGHe5Ehc0RbU3&|6^kTr1} zKr8^)4sZroPMdMSO4${>WpEk}D71jO^n{nvobLH4+;0Io?Ok@*3&9M zJ@-`&7lp1C;O3wx8eYDcQshz@5z7NoYWOyl3&v(x0+-T;7q9OXfH*h9QWjeZ5^PU^ zl=(h3(Ed@9FWjCv5ha)D6IsDrBhI}z0acF4oXU`Ol>tBI0_@j^;ErnmgpBh`iS(Qk z@yWk3;p4*rv7Fxlpt7FJf}yJ#fZt`8u0a3=aDKUMWseQC{q}0 zfX4B<%hJ--T(e6qFT|Q????IFs&$EV$a7ux=8v}K>l10lWi62PCYp=Gw^z+KnWxR+ zJgso;I1=_Gs&)pzD%${5vqbP3pf2e2m86;vOjemaq7=?dbym<7V67x? zEHYklxjulLAhEW#_MIf{N-1he>sf00e8|XvRi;=_3}KmS=Gmz0Lum}05O`hY0rChi zl9rUDXQh6hmvO_{kHzEuWbJwS<>t^c(A#u-M#OTA7{y9Une43?!#nn1v5f#+lJK5f zA3$Wp;qDmux!QUmgcDV!87D}7;=Z^(-fA{rie(?~m-OCh4EviKb*DF2g>3D-7HZbx+QQP8(* z+id`q%*TOIzYwTjhQvjO4X#0Eq`U4&V&f8rQIob4f8b5r;!Y?pHJcQ3j9* z#M%LrLdH6>RIka(U3x@f>koxlC)G|}x6DD$CtQ(n)`ijH7d2ofB=xSwc8 zlDPATh`zL;Eh9x+mHRbaKla_YNZPMa&_%5QvQRI3K+jdqeVrNwXSD3wUd9dC2<&Mx z9^gE(kxQb%0r(XXsCzLWYOY-+0#CxFn353m8c|TsX-rBD@5l4FQIE1)SGlMXhoNSi z2OusKi-b`+z+U>vR?_f=+LYuOdZ@}t4QDu7CK(*_by+5<&np>_%?HR<#L_MpYq8+P z$g@4$0-VauBtf!t?v)v!qe)4=&~qSu?va{ZTnfOY(9`*78|bJ|+3d@nF5<>PY8-x& z^RaXXkS~*2xR&CiBu+|B3s_srq_hFeKu=dhDyS}VV)>qFrM%Gn${jW)PViY#sC%D9 z<#3Mkv^8IEI%!)*X!nEkY@)sR;N!XI>|K|rTgo<$m&;+9>&@(^ZPRAS86Yw|qd;i} z9Hdyz*IjNE=^>X1a3Zpwt_T+;uxuDVxG7HF_{wAwJ8Nsl`02Y)Ze0S+^qlEO!6rM&z;R31Tgl ziU^#Rn8;FXWmD8+5GYt>Mw=3-QFR;F3DAdP?E+S-D;3V&vQVlmBT8F72InB0b0ElL ztV+9?S;|BAjMWMx0^mff#MJ^EFxw_@eanjI zvo(&in3enONPw%Qqiy7#9Bv9qpwhQ+nw*D{8~}(JhgKRqaf0lf9$!e1>ngQkdTgQW zBR{-4^#h=tT1J3Uo(-UJeSK}0h$w|XN#kjyoC8EeSq4;8wD|j{w4vLa7G)^$IISyr z?(pOEbL=7(+6G!C16&c6l1tCp3U;W>)uT&T_TiJBUp>_Ubcumfp7|u6i4GC=#C?=N zd>>~3hz#ITxT13aCsjN~=0D9n`t(z<56JmC&t>BJ);1>N z%s3p|=0t?z&JN%N2pqt@wOvrjE0qEuQDsjm*OqHS8p);5=5T-$;f}3mnH-Re>aq(r>MAXef$@#oA8Mej z;rnaIc(kWf7k-UL)JxI=lw2HQ*8p$^9)b?c6W%xSBw6i( zDuVx`R&XAUojnbbWl2>l*NjS4#BxaVvWQ zoE_i*fNKCaAK64Jxu117((M3l=2l9(aW(1y?(iG{2XkX>ocTj{hyW0O`M3KiXi7?m zUCw}0Y7L~HH_q8f_E;hz_`UtH$Mp3b-Ike~sWZ!1ZI4LBbuqk8T~muRch zkEP&G=cw)q5wCMzdFgR~YeG6X#Lf;%aq|9SApZ;}MXG6&PJpx1Wt9aclr}u)kdn+| z+(G6HR7xkG^E9r&5>L3u0)Jd`0rl*S0j2y^&ePiRvyAlYxu0s_L6arq#xB@6*+a?M zDXlV`2!+HW4bDz!J?DCFVGJ0u);EJGGO32p+R&1fa_?~K!_p&d-nGRuKwWm1P6DFg zWdv}G^8j&p>(bkPeD1mBwl`=$}7>1)PavcB=fs>yNATViYsc4*&Z#v^wSl#^%nRx9^<4HD zg=pK}Jp&}(pFjcNoVfP=5EfuA|B}hP&It8he&F`NUAmOfVZg?DM5$cFu!}lM(Xtok z;B3DA9w+aX5e5cig#80zD-Fx&++`eCoDcWj;Q+}6xDQi^JTII$?s4p=GfGEQ0$!P-VH zr#@thZz(lk7s6@}2kc=eptcDLTNIYPG@%q_i`=+|Zrpx`$)Cy>%f2t+ctrL1=|QTk zP2ErU(KCMuAg`&EAw)akDj`l zjIul{Dq}L0k<`!e`@@hc#a3o$4HF^;MCaa|a#3(fBO;Z~0QtiA4Yo1N;oO5sHDIMI z0=iLh3H0sBIkyY1za)^)cUD{sC#q4el!<&7=&J&6e*uoe-k`~oXc|g*zBq(4xT{cmh3QqY65hFK2VbP;H zO~fYQUFcVpCF=AhTtYEbppl-SRbIc17Cyr^to$mb0`&Q>TF+!*uL4d0T*oC7hWt>-M$DLVa&NJt{ z%1*ys#A0eTkb6$$N*)BeI6LEpQ~5NY3MbhPOZ~JgvD3n`{WYxfqkF_o4PO!+=R(x* z2U!9{5}Xw0a)$z!LKlR{k~0{43HWcIE?hvYB%ONQ0fmUt31af0$;GWLvB7O__&!9W zXQ)dQIIbD?Q{Ie|c>Vf;=v?^7d{MSr9l{-j7G>iA9ubL!n72}iaw{Exwig*Crv*s- ztS>-gYGqxP-p8!CB3zpW?5YRME44Yag{9x~@E%4i0I}>hNep-F!Zo;*0Z!X0+fBMO zt_RO{aR!{`2JA`F@^wT+g-J6n#z%6OlIx=+PSSQF1Ju@UXMr(ZlZ$ivcZKXu)w7Qx zDJ9TUhGi_EQgQ*(LR%B%x?3rG0P>n(YsfY&KPa`f=Hted66(cD9;jH!PjxsEkyHR# zwlwyTXLTYXskL=Fs5~WU!E+Z2VUpvx^tBBjxwzgArz9f*r;7}sB%O>~so04ZCK3n` zHDB>N01&c%PzEUrH9wyZYF>)CjpSYrP{oqSb;kg?2OMx_=Mbma*G4ISet(9HQqD7# z;IwT6vIvAN5NLeF!VHWcNnj;_HE=VMfyQ1!Jbr<*3*Za?p9vvhR^|S_5ow=>^YNfv z+7-Y;uYM>80nP!LcC*y9$snc8o=i9{BKC}uCrp)g_s_VsWia;}kRprD-P%*>Y5|9q zChBLIt!xdQ03#x}OSqFATSke}f~Gy2pwi(0k#YO$aJ-fq*%35J;)+pZ z%8g*(P!p3lEx?{st}SO49Vcak7Lo+03l62FeL;gB4Cn6S(1W$@^L>2%P|pLzy_Q@+ zSmptuFdML^r#!H2zI~mDTfS1#Lt8!f6S1^K(xPPA+*_`>B7Toz(Y_8KQjkE-q;13x zj>Air79J_CvN(tBtF0?<+B!~vhM!N#_E{q1oR8GSX>&znDTXXR63>5K+5k|m%VLtf zUSjyV6vOfp7m>Tq2q;BhdLD+)hwkwiSvTk58NZ_eb_6&9FGWN`Nm=lZyR33uI-zuF zct37svZ5|~@wi{%#~;se#6Z^8RXLT5H4XDE@6&}%6mpxfz zqR|qsDXp!OjZ}vk&DZcn1KD+urHh$8A~@T1Nxd-c%;2I~!@4Yn={Ldr)pprR=438>2gZxpO_63?!(bHJZka|ZH)V!^Yi%Wg9F>zG!$ zFnY=!N~fnAz^j*mIM0Bl-FGxRY+`_60K)~0!^h7n1R!9RYTE~TSkKc1l57JRxq1(R z0IC7QGM9*@H=x`KUaKJqerkRMx7w9TXN8dHeX8LQWK?*up_&<=}(VgPV$<_X*wLSmIz7? zCmN6z?fbymlq`EnAj6%VE|r#yK_DyfL*%y2%f{fj28?IOdW!*zwO<0U5K5ksvr{RS zJrl4^WR%<-+Qb5o7Wh-CCv!vwL)H@sf4M4Tdu6rjekzq#z@mumbSdr1W*2FE7Z&RM zBEd`}KFmnslT(M6OJ&?<-%SzYTFM@kv!|8zp(M04uD2hI+iH_*N^LP;G)pd@YdJeW z8AP28qYY&%6V$ffyQfX6 zc>}P@W}r(r_ok1wbxCY?-7n5i?_QIOBGp|o+W zmeMLaPL!k?TQx8&cvx0)cNWM4=Mi)>AR=o!T|&*l2uqShFz0Fkwe?aK>sMIJt$mgG zq{Ms zAP|tf1&EAFCjvBJuXeHI5J**q54RvJb5-yFSTt?&<{rcUFvA zq?4;>m&u*8^8p-Ar9HWwmUw^@VJB9~YE!CmVHI0#8@j`BB;O>E2;%^8@&d#Gd`45x z`4hwxwe7hzj=LlgXRNZlB^qeJK8hn62emh+uqvwxK|+|*XDHG_mNsPb2g!*w zuGh)_Sr`Z41g&S}l5Sg<1O+TBMHz3WHqkB>@Zp-FgGbNWc1eQ+=rZxy9S*Q3CVU`9 z64SY8_EZiMnK+!#VwKUt6`jLz$m9g~b}j|5QZhl?2Fy#}2OQuWvVs`8xITa+F?^s~ z2zstilZ8<^I*tmWDN~tcpC+0JNCfeNzKbIa6=WopJwJN@M!xyPDpf&Wf9XQq*b^thi zu)>OPp0h`k7-tE}1T5MvrzcpfWOe~`vNf(&01dlsZlu*?277{J-NkE^ox2)gc-`q@OD9~~DwFAwT% z!_9J;t}~E-=E_!bc7vIL4QN_%TiK^p{E&fC4#*kO^{`a-hRP%hhoXs=7RKjj_#vt6 zA_L+z<7!)SSw|#fxmzGxseQorcB=qV29Ro!uFlSl@Ja<+BxGeBKrYdxaT8i9B_6PG z$u7g|x!*A3Fp7-B=r~ID1UN0g;Q(hKg(rbH^6S}dGOnK4RNVULBnEYvBsm(s?{cYh zT0k@G&m8XN+b=iPGdGlsS2OgpK(uL=92XJ0%b>I_qjT^0b`Nf-a3%`p`CB=CXJh~% z7Q71E(Aut@k^?BY6fBphDY*uKdkbhB(rXE+55zOl*7Zajs?33;GMsz-M)o??y+gsR zPnH1T%x+rQw7rz~+Nc5hyqc%EwUr&l6l6ZJ;J9I3b4Sj8fJRzzlS8tE@c8>aye}_ab&7 zM`9%a7O0uU$pyXR{1j)v;Y+*#+z#6uM`>*h$Ck28D)S3ygG-c3SyEzslw^oqhB{|q zU!)lvgp915UG~Ch-=|T^==+wVHo0q;Xqm%Gmq?oHKn}4r>=zzPWICYxJ3#E=Fp7+r z*EWE|xjkNG{uw1F(&z|wQ-ncqDQLMW_kN60WQgTK6mdsm^dhW-C_|eB^ z-xC5p-?xpwJ}fQ79j=c`mqJOL-2K;uSHPC$-f>36f`)azUC|nFgk^V8lq44yEM&W` z;w{=rErsBv;d|Ub4CCxv?2FpJ=PV$LKH!SDQW`i>LGB%Hk67p_YK)9Tu;wZ!!gQ(f zc<^&W@i80#a6aC`h?=ltr5s&wxgC7PAQ3oE639)t$apF3045L%Pf=GH)ja4}scod^ zx@alwIb;QQw5{jd`aQm32G`ECwe8Ia3aN2>CBmhS+~vbN3B)as7D|pInpmjwE;_hWkb?{u&UyFyf(LhE!&Sd@Ss1ZEg`16yD=OzIg+OxY;sEqtJtu?wJV=$@8sp?IaM*)7l#NuASdbQg z%LG(ewjS3#_XouQW%%V;86Kds#gsCURMs}bz-}-c$2yCE?_JM%qxjblPky$n7#?+P zySC@8@+lp_`f!jlyGyQEaw2|q13Ce6!h|lw3szDhDdntV0xFfCAPkF6yk-gHEUzsa zu%8yQGA#Wdg##j@=vr600sFlb;uP45(N(hp=KYdBU!^@^61xJ(^;5a7ZI!LTkL^~u zaruLclL$~Bu!%fQgs!C*>9QG$WjKy?$vUYp!QZ`&QoJT_y~-S2D&0+bZg`Bu zy>?puZ1s?NeCbl8L1mQni4k#kd&KiivEYo#m;G#nKsu>(MRW;g2Fyz5GTM_3Y%XEOqDAi@BgS={}+X zIJNC%+kWuDE~nDjc|0lycU22W6zM7Pq;H&kDH?$TsC0IKSOBsBEnM4@0hAh7RuiYR zqlRxPW&DPCA2Ve0p-DGX+V_`~!m`JpBo-weP-QQ_NH}NCNJ7XEN_JTi!IG2#96)G#fVAKp zN+*?#o1?@VFDb)X%Q_U9wBQyx0Jp#alpMfg7MH@cZ*6HzOOB&$U2<`766=!r)Jb#( zKwb8f1O3pry=z5xtW>12SA9B=(XyA_42YKH{5d!)k2}a!#tBfbtqt&aIACrs+B7V)K!kWs#2tuTcv>jW z0MY`GK-xqNuqXVmZ9jBi$u4}aVVM(o9~4>TDBDY@wgGvg zcvRtB%9#+ap0m?LUQM*DG^L1G9KbIrgeCKd>sK~y0k|K0xy=1ZVL*$<4RIoX3j;_e zU7TSb>j2885zUDj;C%RQD-})fWKZ_+U~nLo)AL|y+W9?uDJae++OO#_(Ml0dAQhI~ zj^huyc8-J70>rsc-O}2cok~ff(&2zpa(%R&;cf?><3P?3FaIQP-|PT}a~~k^s|g|N z<)2-olgb0aLTb>;af$o$rtO(Aj%VV{7BxdZ(njUn*X~X%nyp0mHd9l-D?po+Ch& zIHk4$piJMC`SdCWveP)1cA*iH02xIp#X_Ys0GyV#(^F(ro>JuQyDG+2n)`$CXGJLA z^_;hjt6>+SWr-mDVi(k+^WjbojJtFo_;fy)NmbBuTs7vCDc!E|n|gHKQNI z$+c6%`4Kxy`}GmB*sENAaA{Y1o&heCQplF}q2%nmKyLQ^pgEP5`T;SGg(ZL!VL_aM zw^S~ZN{3VF4ExAjAd>-3L>^MU5C%G&Qk8ow%O@4<()x%E*Cm|$+(M2^HEm8rrPCsb zmFC90=A|!y!_$c&+|)`ZmG&eZ;u^Sy5E&&WqNkKmDbC$gSXpU*TLvsHj7kBwj<)gP zfmq0Dt+FVK%C+Sk($g8};`;V*NpOa*El%*9wk};s;yo2qkPfNm-a}Jam*s`|$+nf! zAzb*eFubSq5&)9CD~CVegS%)z$a*hKFqj9(rMHzN`VO$CT?6Hp{MO47<_5r*4tC-C z!KLhzY(O&r#Ii55ZIcC5u4jgUY;?o>p&xFfmbw}X2p?+OLt!#WB15`e``!!z=CSO@ z6)8z4{)gju_bHv&sDU&)K}c9;z-S8Dj2k^&5nW^?ZDHBN2}-Ms6Le{!J-EQP8J4_5 z+!5CY2-!Y6<22cY$4m+)KlLCd0IO`nDLDWjYQ78<3pVkT>e)>bp2obH-3DUxLw53D zOB#{{aM83KAn^o#u87~Zsx-H7KZk^6>^xACJ^Kk!!0DMAN~N@raM|$K$}NjC(B{JS zcNGEcJC$o|!}l%-!`i|CwxLQKheC2%-i)l2lvAn;Kl`*cXQ$HDaxW@-0CmCjurv|o zsY+Pp8u1vv0sZZ5{D9FiCkh+oIGhE!%hl3Kx20hs44uNg2~MZW&hQ zY1~2~jD@ri|51rU;4%SPN`O&;fL*a|B~JkEfhSy0Wp6Tw4US(RU-S~dB47X@4+7h7 z<-#36YIMnWOZKFV6$vWsck<9HD{c6G84s%s5!jz}IRHAf;m)qV9LPr@ag9un3(B|w zYTG+beuLHd(7tvdr{hEzZ#V%caHnJ!VgqNO1hdSzI1$fjVS%RH;efjATP9AZ1agSi zWw(L*oqsCBxo@DbZIXl;3(Fpi^5j8U_VNKMnhD_#`iYa0vy(GCz-hTnkTNPAN0%y> z)?%DQ(B=%tWmxv7+0gy9Es4j2U&oPCm83oY1+)fA&OpiGdlDe1az>HThPOU?N(&bp z0~tlSNCaC8n_FeuoUMHXz>= zTiCe;(34V!Yd^}4g)QF139hY0Q<+8quw#~>%+Etq3FKWW?NvOb#`XM{w!%3Kf;|DO zPm|1|vA$V!em7E_0I~3+kkAQ`$yPR?zxT?h6cWH0_S_hdLZa00-V592a89qt{N6Co zLljERN1LcQ*;0mqmL%H5LfeL`66|sY3`=^D%9XMRjN9-S;t_CMzx4o!TwV=?rC*3) z@Ve}3k&;9}h2%1w$N*viI1xZ{0g?nb15QbX?6m=)NQ(TIU3iP(a5RF*IOz7o#0BO- z@D+rpxgg$v*1&)>ytc(^Jj{_j+zm-5zYrpw`vnz1`>>B4t#q~gG}Z>R?+l2D{oyT? zhh6XzoMAe|lH}6n?05;%iOsKap&l>PoR%xvhGWE63d@WXp1>L4e55hu5+Iz5OhIBB zz)FBC!b&)flBjt;C~6!6hXY&+;8Z#v9>4)1+jsU<)^lc%3;vMpr-~^xV7HHyLbksq zitTqCT1t`#)uaXB0GR8d@hYSfvl3W*OWV4{GfH7un(6uo=79AH(3Y(c1m*22 z6&QKUwp|kCrtV1 zY<^WtZjH(GL1a2}Ndk}rPjlF&!OS%gJ0(H8ht=id=$;G=pV-2*)L{%R17a>%lPPE6 z)CZvVm^iSBXbV&(DP=N5DvZ%kjJj4IK=yfL0!0&|Q6G640g!=7LkuTM4FH9aC?%gm zd3eZT%x;14EoQ|*84ArBq{{v`e z)K#BAnE)&UG*|&fvYDhk6e_O3lCBPvgez18CZEBJKx+#UHPF@(Y>fwqWJfv}e&ur# z2sAEv8W@buDm%ld27<{4kb$8<1_n+=)1MEFq_1PoJuwb$h}~s7j_^py5f`PfTcRTN z@51Kf6Rxvh9K5xb0BYwIIw|o~%)|c}sOE`0DidG>kS7B(c_6QZ!D_1zZX}!6W}86l zsb|FTj1&n_2>nv!Y?-N*%Yy?gxo8vBaab;fh2SAvV$L>vVQWk(Buc_~WFk8+DgsE! z=p-NK(6yQ^7tQ5ZU6iv0_oKuOb-PGFbg`lUG#7Q+2}tI4ZopEMC&qB*(g|QQ2++VF z;fT(VwM9s4CKn9IWaR2|=j%rbBUghB06XdGb^?|i4%ayFZHVo72;Hi$9$+3oVT@H& zG9ZtiK}rmON!Zm8iR&dLKn;5#gpnkNn)e>1gd1~BR5XbgAy!`TQhJi#k3eDU%E`cC zB=r%lDX(+oj5*c>AYsgfNTDE&2mt#8n=>WOFJqV&WB1QWW|RqQ!_QF$eeMFu2RO_I z0JHfS3~gyJjAyjiP_SoF@TX-UQPBWflR;cQ@=9#mo=8zCQi>&he^SYF3X!Rmv&xfXlR^5F~R^#bJM`4z1OQ!T@UluQf5atjE2L^*F{ zceNm?nB>{LVX)2^NyGrMv+FdFXo3bxA<=@d=`qld45krGx>gV4N_?H1YEkw8@=fo(Y+|#NIIW{I8*}?*78}=1# zQ@`_J>H)K_yXT0Rcs4Q!A}PAdh~Vf;Y`;Y(V*n%!1$~78^8g5A(O@e&Fo^L*BU6B7 zOiB7&4inTWqU=}<1^EHnAY>>QR(*)cz~WB^ycf#O7|_?t^A;*%7*hj466Pc^K56wa z&RQW9%vu7Vj}Nsm6=1t@2Ob6!%iBc&oV4;fXw9ctMdGJepA=S^0JM9j!45*;&^&;` z0P53v!QPhUo0O8!h=31HeE?gNlg_e($$$+?0rX97fe5BPesWRK0Qq$j8}Q^O%3MY>(FgG9FOgHh-BCwUdXD22(WR^`!(ane4<|;fGy253#=N?@t2By@ zv!`_c%iEYkXQ&r2lR&}&7b!6;Y_SnA718ciGNZM508IkOz(OW$4ifFIN&AH-f$TV2 zQUaFOqKrJX1I(j)DtZ&MK$&z68R#{Va5GFJ0OrwA!e$GtAIa`a5p$J~W0WN>fWfJy zu*I^8A0mYjY%8t?2r&5o4y}w}HY33H)3u=}cB1l{pY24p?Ggnr*li#YTqlx*PZfRi zp2i+Jk$D6x1#}`wIJIOSWT`u_70}LOF}P7Zj#4tP}cMjJM_y z1*xNKNM{VU>KItiM`x>+046dPD3k35zf>ArnSh$V(^58g*tVOt+erJhmY`b9V{i1D zQ4KVsQusKmc|HzFXurUgBD)RiQRNzEK|6$0$qn~(^&EcueT4yP6NoZ}q^=?CaM-^t#y)?UsnSUkw2J#9m;acuf<`t=fr~RWW-yiqkzA z$RQ8;0OkRzmyKC$VOVESD3c-Cyv@aemA$S=x2d$8P=kch)@?WjDAp87!Bj-OZxzu^ zOXdKl2|;D=93@SOTlU}%85S01822>m(Vo+`Mj;g zg9_C<=2!%Fgy5#C>w+j)1vWKeSEXF*Q%YN({a{G|YQIHoVH+OHCfTX;|kyt0LI=6VdQLW?h)Z=+EdIx(kioa;%FHHPJ5P#9ZUyR}J zC}|pA>%-XnnicalR&5c=-*^p(Z$9U5yjBDMj@N>+x}r5%;PG$%?%&Aa-`K!k= z=oT<6!@vO+hfBB`Kp;dpk+(h@x}h@ph)g6Jixfv`Fh3%+>;Bn|aquZvE2DmmmD}0c zAut_*lu`f>yWiBDL2OcN2r)`3m=s3_Fh4HAr1(*aO^V-`*rd3!6q^*iJTNO!Fez0V z*re!gnKvo6tJtJCjEYT)GbNZ6DVQy*Nc_qrPKxupB$Hy>i6y00c14qv=4r8PY48_I zN;863Qkqc2CdJta%+Xu02KO@)%N7nW49k{!m3i6HqfcOdZGuU0gb zi$ko~Y_X$*`MC%t#VJH=Qv7hioV)=}Zh|p5yorrr9jr%DO`O_wu-<()aZ>!m!Pdcg zcu{Op*1@{yXX2!+gSBoqaZ=X7x`RgII#}0v#Af_DSdjq}R|V@}Eh9)=2Wt@{wi2y_ zwZ&@Us$dtMMDVwI=~OssmzgAmJ>p2iiM6en7+b+E4bh)v2mSjTTo zoGt5M9nCdyQr5w`>rdi3SeJ>!R-!ss&khjCu|xGB0e{Wz7ohm7if&f(Z>{Z!GJn<5 zRV+^A*qgeY#b530)+T=~YcnH%XuobGVdv8|8@Cm10$Q*q6WY z*8e(<&8v6mZFK9HFDY5x&{phnZ<3In<&AF55G;JtUe9ZGAtmi~yH=Q_q`f}Z#V1ZB zWqBR0?LShoyxzuHGOewzb+wd#r?-yQ#RKe7Z*ThX7hd*YDAx`T@Ku%`Yy25qmyho8fBM)PUNnSc=$4`h>yk9~=O++1VFY4M3TkD;i%K!0gR{ ziSFCk5kL|fdjTV93?%?Q%En2eSQFL&NjPto)eFI-)cg9krtVxui-(@5=xFCoL+Z3J zp5hldOms4R&!8cRLL$(wl-P{AJuYk_rvcT*Lf#^yI+AT(;`k|&69LL&zNR|#RRmP@ zF<_;g)$+h@9ufKU74E=&jA1WTh@nsSQDB1!a-(z@6~=~)iR^sS7@U$U0t$r;cm$H* z6j}!2KLdWCd|HvDb_Y|g+jwB27TNG=a%{J?kg_Rlrm3Eg2 z33Dlo%bDuqv>X^=3o$n>DGCn+<$$w#m68SEKt}9@n~54hg{Y4O?y&Ujyc>ym^W<4Q zfKjF$_G*w;Dz6?wV!fbapwwqpZ=1&2m6Dzj*nLB~qB5y#i^*xS+F_@ovB*MG^^(vN zY(e_QRantuS3fKYQUM3o%8ksjhLJ~(Q1G)2}r6IplBXC zh_9^cK{CGDeGex?Srvet6dMl86y3xBJ4VQdr!4^Ot0xsVNy1eY~mx&qOeBPY8EA8 zEH$KLsiA1j)@v@nG5|*60tBpr!LYnO5)#L-Ak1b2615u2CnmBB{YM*>6GHm=CiG8DzIi{TuHnauh;qoPLe@oN${bfx4j zo3;QBQ!Se|)*y*$04RDl+xTMYw49t(G*~42(7~u=f?+llplv0PuofZ?xG*r_1(;yX zV{SCjEwW)~HxWBc6f8a`z)nEnQ7|b1ltG{r@+hW2VE{?+Lsi69A?0J*wD~Dk!T_=Z zE>Q;dyJRO(?R&{cpcH_L09GBPwa&Jm1ehCB$W3f{eNLQ5A2tVssU*G{oILv{47S7e z+yNWCcjykx_Jbs~i(-P=nrv|`Zw~Ud!rAGfC`y?kSIT13&=*H@l(<`VtT4ki^0Dw% z5kM&b`B)VnX7jUwq-f>`wF4|4Vb-uhZq5%DY%c@};%nUrR`rmmTCjx8H^nVKz9lxE zxzLQ#ZUcjUqo&k1C8a#%%rx5B(VnZy)+PD9zcfex&i9Y05t$K zkS{dKLYU5YORR@5WvLyIl>H(TLwOAAHbg07*sunc5e;kbHEEETNqeB1BS$f;&Jboz zFd?L2o&XF}TMt2sRR_t5&iM66VtOVrQ_8-*dO?Zv2l3U1^~Hgyk12ehZxaR$1gHoS zH4w$SL`zGeCNYMaxM%$V^#VRI+mDi{h>y|oab#T$X5hC6-06~w76RtnaK2Z==iOG6JQ*(*`; zS4lE=kAom3TlPaq7-4C--l0rx5NHyUwj}JGs*f36(agS8c2z+ ztEgx=eBKC;o&QxO~6FE!p<@?qZyjYJfyxFpRJEV?tLgz=~wxOT)fK5@VPvMqXGCn7QMh z+PzT1r27*4FZy;bz*}W-!1ARKy~OETy?B`>61@^A9eZRrTLkQ% zDg|I3z|sO_V8AqwGvJB_XcEAJ0i@&ysFVU&-nnp92#3s+g6}57-m(-}1svwEBKfG~ z16-nt!0Z#W4SWJf04)RIMxTk8D;Q;+2olUCaXuJ@2y6a>4|B~MXpDpbeIz#40mj}4 z#>R&q!Zs@e>chdJL;@)pgf)<$s3zfA4eN8-n~el1&+q9|WBHzxjagtZY=Y)7CNSb3 zO*X_mEg0u_HE?&w!KQYLP;Qy0wkxINWjsqu$`FimnTJ77%^-m*j_4s6|j&!?^77@IW-KP&cb`LN8Kud!FSxF#YA->;&< z6b8w_{16=F5;Kr>%P6xG2CXL128U0pc~XB2S?xuXFi4b<|S+*x^A<3k@0|IvJS;qQNMfdZ69IF9i zEBk;XV6p=gO%Ilxh~B^)r3GPWhA3%*NU8}2o3IWO=%yv5Va82ijR$BhyTQp^JcLhk z*j%{1k-W!;pser0kZ9)l*k=+E#jxs(um19^^1WmPsI#-*tS#)8ng_5ZaH#@Y$MMUo z!!i)e3gG~TY6+rhH6hhuRWc;W+|>p063s9dvRxC3lA?JRTwt(7 zdlp__Q7HiJBv2EWxqR6Q!-2H4eBjywh<$Gi?tmpjR#m`pSq)^Nn3Qe}gH1zW5j?q? zAHGpeL$B(}mo0n$8onvYUqZBH*bz>^T*jOsu=*~ERsr!Sn*(7Pzc3o?m7$GANlwv` zO!T>oS%zb*b{u0VcRExc19>uVIBt10BY83qiBLORo!SDBf#OLC&6;%mbRC)ja9UsyYNa3abb^~NQRy*{sJoXnlJ<(;l5JC8tK9yLKZ z4Fo965S?I8!!klxT0kT@HOx(Us(e{8G0HwXNL+zQ zX%#>@-~tECp;8h{3zlU&S54xPq=Wh}Am!Pjot)ei z1DFSpfri#<8rqtmp=IZURf!FGV19APs#TaGwG5zTe2fa?(qmX73YasViBfX*(!4!; zFBs-B9<1d6iK+$DK)~gdIDNYg&0JV7;8=$S?p%jJJ`!aBP%t)N&dG0K%TXp|;`ujb zkq0FtP4j#|%WJaP$4p)$3IKDZjA2ip;sH=0ByNeZ&<8RpEr|_z@L`gCiQXm;+LN-k zOgQ8)Oyk*M-_m5`64)hDk>oW+5)q=%RCr-!&N#^qCJ8`ABo1u(v3r&Ky(O0>QF8cQ z%5CcIHnmT;U!tYu0f?k*Z+ADXNo;oFLU?NDCnF`3`qfZKw%pmhd1TTx|$X_fDJ(OJ7LWF!(!hr8+b&WMAiXH0a#gl;F=3i1K<+1n%%V+_$f_%atMngmICi)S%Fk8e)?juk<9 z>@jdjAigaew%SF?8906UeCV_4h$@%2ts5L%D+?ecKz#s7Sewg$`(mAeSumdZ56p?8 zOO%IaZC+=!0IddDYbAO|PdL*Q-*&5aOAN{_IJN}}d)gO+*n4D<)b0q&z(p2FJIV}f zf>ziP^UvTLw)M)^hWt$mF`>-u>p-niaL*4|yI>ZK2Q_2>SQHk*V63?M{um!@Ki)7= z7{EH)t7d?j7;q$(oq@<&BH*ba7SJXF6is4M7IP#~wFFUBSP*!qf=ZEm5~rKx#0A%#@V`=Q6^&5+v0JH*Ll}AqA;WpkaVnw3=IwBJoO@ zx} zutb1dZ*CCL?qZjSxnfub$YTVQ$BbZNgA^cF5r85vrz$~wyZ1XU#>6AZmO1IokP>v!r3iJig5|zyGv<%`vl4(Nm28&lvIzv@-1E}unL%sv;|D5jBAd(tv*hL6Ly}30lM{k+kRHLMqCl8)8v1y-2xVreoM1Lp9GXWooSygdG-{P0RaFi*^UxlPT59KjTZ9@qR787BU;*jSOFUs}S{qTnC(h~OzP+%65WlB~T z&Jr6*O$?S1+X90j(R;$1b+ATI$7&~RDkU*S*;)K66A;E~M2u~WK<&WBzQqJ+HDj?- z7WBhut8K&$sVZerRArZ6z805B|*z%&<< z_%>#7h$7K!5t_$05U2{k%;O4z3;>&-m4%5Me3pTTmufjj0zhI8Cj%x7EF1F?88FLR zG!u-?d(Aj2-gF!XOJ%3xV{OKcJ* zjAbox_-UXinUm6EXlV~gGPhV_7jKkpg|N;XR)Am|y$EZ~1m6_pgQ3BCA+e%t7amFz zy?PL+me{aRA1e)wAb1+s$px?|cenw{<+UUMOW2-L2eXz~3aQWaQNm8c)Gn;C%WRU^ zs5o8LJm9oj25gzyLKk31IXkNf7e-N5S+LKRYL~pptR^_NXyi@jo9j#Qwd?~8er+$2@*c|O1r)bHp=NM zHpT*dwiMe0YgNE`!Sr!FT}3@BVV>2>I@ml`z5)Ir#yWn$N(R$-fb1-_%In@Qbba9f zEd#{R*$CI|C3Z>LcuN`nCC)7LkROe+h@ z%CH|(B~j7ze66Ol%E#BFcDACH*rIj6D8kDmH8}fP3IkIZTUhb!%Yj{6I5$0E6`I5p zEieSTmhG3Hm10f6pz-95a+dAm;)_|{!1j>$8!7NL7^7h_FZNK|5+E=UpG`ZN_>{ux zw#1EtV9RUmw8$#ke+?e2`Yi*i{uowS?4N2btDS`H03R_Ntp>!fxEfDMF1K2$*0Q; zu$(Y)C-5K{R{1y}Gm;`#yoi#N9kyeR8fBdbeap)v@{Tg?8vuF9%`zZm+G`vV?Gu0* zIOF%z9>^R+;~9Jt)~E=>EL%KduS8?6)e7an#WM<3@-B|mLl7W+TlDhG`e6y%5|~$A zMp=D=rFN74eyHeSHG&bqoyxm{Q(+DYlI)7$6OcB(XIV$>ME$z0Lii^xeCK>qO*b z?k<-=l9aoEw_o!k5t9fM+#_+nTJy~5D7q!5Xl}1#8H+6 z2UnS3mJc8aK$+xel4sKfM!DTe4l0gB4Ny*43u4%h&oU4*jN zO9ZgA96gSGzfwYCQuc!#VCmcajO~cP;7r0ozlsD5bG9G~;Ftxdv|wttPc88<86X*D zH35mXz;Jo0CGkL%d~+tU5+6wB)>XzEmY5NR^`W~p`eF(D@Q48=r8plXvuw|=fhDC~ z5AtdN7mkYF54=Eo{l+Ep?dGH|av?rIrlksQR4QWr*aii(qySCx}D?X5mZ z99DzFewJ0}95ao#zo5ZFGpcDBAZ#m4Mm$SPn86wZgzb9=8)db`5UDU2Y$HIza*Y^d z9LP)@Ng)&1H3=|=X>UW*UE>(`Te?KitR-xSeZOD=W`$r;M(hQCungS3JA9KeTec?; ziB&+}C};dO@hS6UR%c+cvx3r27Fp&2G#8*reC{Pu^~0jvi3hF>l-Ofs1TE@d0PBSi zhU~;H0z5h=)+sxIe1xGbEm!R=AJ|B04ls=%lA(bde~7Y$yO>6hmz1U@6T^BZjGkC0 zVvb7Y#vT$a3cXZHI*4`>pHKss8UTk$2^QrBYA7{{M9l>&uT?oQ)bT9{3zldGA1OOm z2PlvX&?G=4SQFNeKw=uYBqHC~D<+tQ2FSpoM+5P?hSkKJNwN&Qovsvs2J*z6iU6wR z*Q5dqN8^Vmh0|Fk;w-@D@QGSLtKEAol|&SgcqI9eVDL#vg$OVZkn6{&jV)qmFmE6q z1->-wm=#W*qFJg*0x%DY6b1;}kuNU!N7-8v^rYNEVjfye{f{yuIHg0`i9zJBf>8x9 zpywvU%8F{DA5r{lLc0YXMlhBhA*lA9*Cv*4kV3@wD z4m+(Z5(B&L%Q2l~?i|Vv?Qj%emMv-omJz$Q>!_oYy}3`QIel}w!E6V1$_H9cLz#xQ zD9p>G`~B$s0vjZkc%m!OZk(_Up1Hi5I<@J$2I%CMwp7V?QesC7u_db)y<@vxjGnJ( z_WfjFLQyS1nam{GNfbbREdPi3^?N=e_Kt%|61H=SYT|8-xAixmVl_tWinoB1i*z$jC3+`^mw^$wl zRt+R^pw$`Qi2CqlPs)*K5|rA>$GF5kJU&KCyPqu+3~S*Ic2cZeC?|Tx6Ot&g)e?c= z@%6=Fe2Nyl#gw$~C@K?QrEQ|+jKidKmltd$+D}HYb7N@%ie?i^TL^XxtGjWZQPB*o z<KlV)HUk6)ICEnZp8C3+nbESW4~6}EUC^QLW! zlV_m;mXE~o6|qK9YIkt~4Wq2#IO33Hd!L3=7h`YTzquG;4UW4f!z&PdzGxU_p9PqW z3Yen$AndcO&H!KaxjSqKtC$NKV$$&~u}(z!#?Utgb|fj{Iau}Gb;HFR37J?h;!5TL ztR;YUvO#Qx0F((RZvkPJe=+RWuL$XA1R#n*eoq;<= z%WJq`E7D3PdOFG`H%Qb#-Vz%J845<(^d zEY!x(CXf1NXP-6ekNt~2A3W?SkZitocnoRp$b&L9mjWG#fqq)zqBuK0 z#-`aw>Mt;4=R%~M*Iiz{4$3qvED4s{r#>K#bX1}a=n$f@>IA4I{^IBjXuSe}(nLg? zczK96aSXY(L~5d(+skz|dXMW`${>iLKqOe6Dv1eeyf!fn3tE6Bx+oQamz;HCE6Hqg zfq+em5fbCuZ$l7iNhWlV!aTziL$v0tYrjXi8eopt!$u-VQ*EC4w3=25VUgXmTk+g9oWSTL$ys{u+OQ6p%wz@GE4 z{Y`8<1Ngmr79%NLG8c<|3serBr-*ksq$GY2X#K}JH_^rX2~$iFgO((FHJSx|Gj8ZnYtw$nw(oakZ+MEiz0bRn$HzzNvw%sV8p5EL6*6|)<3 zsvSwOyd8@rN>rmFW#-o42s@KzyyFt=i&^a#h+LB{aiFiCwCm8#!xdtVx7Uhyeb*YMrBBj zy~P~?6kPz87CP2|6oHl46Wbut18gbQCx@kOLnL{bvbVcfldFdXjW%F&vKGk&E05`- zyhaiZ!AH`rDg$J~D5NqO43pAsm)Iq03xnZ-NZOl~-FgIAbU@|W?HsTuyT)boCX$7h zc8iZyRrQa*s%R3`2hc$LPRkCk?6|F#feS`z;AWAc0i*1TAx~QX3G2|KB&sDb_WT{O z<129yj9r-{NLU#Fk+euA6jap_zFcA-D%jW?t02kT9l8R$yd_q3FjT&l{e~#BbH{WD zJc@C5-qL~%)T4-0F0Tp!Q#3$fP-+suvIDFaz~x1`*cg*_B)lXhNzT0>(Y?dCij-^AJs|J5pT5q8gEdQ#n7MpoGVp((K@pj$U0)*43PENJ#bm@LbJ4IpDu+xd z=j#EgI)HqD@-~yRdaw+fNjhK^fGLx_QDz_u6K!GDp`9$FBk92%7S7c?Ach^lWHDeB z@LHjiM70o&u}+kHKCKBkG6V^G#;q{eH$npekCwNb#)Jbyk)Q>32aSI;)Lb4686+Ge{N<#DZDGHOr9bf)`|wN zL_QML0JgmRTz?p2c_V4{59Op(6i6%|iAOoCwFrq83{T(oW4AGq-Dmdj*x>@hONfwwHdhRB3Sx%j}=Pu_!zBSE`%x*APHl@C0a}{W$yRU1m#hMOH@0F zv2&(IY)3!$Itn0}J9kFjVQHV$?5<2^YgcNAT4Erpalp(2 zs0g4fL|QBZv78cjppHO`MgS}dp0FB-sHzXJyt+4jvE?H%DeGDI(~0gHC3$^SkSwtk zFrrV`G%Reh=e>}bExX-;13nEkIHITB0ZFx|eFnD1#w#CtT^RN;w5CUGeESR;@ic<3 zLMa$6B{z9XGBBmux-&4O4qDUAqNHgg-; zF>obnphe2mR(3S33{@*qF7FtUxf?%BO3DPNmhnW(08wrl1Ct$KyYn9T80shl0Hq|a z^5t`bHFoSbO2MjY_)de`Nz_0nvuxp65|u(?c^fe4tR=3rU^W#X64sJpxcmcQ+qK}E zili-MNc!plY0sGFD&KCGf>i}OJ;){PMDOJj^3t%kRmiI*b`+7kiLU*Kxh8WS z2ba5(vhSR4i#%dDG6{q2 zf-&EfSMXHK5&^6bKvK5B3l@8!M)K0f>>lO(c(B;_tODnv!gg#PEVa8$0+#5lnK)0C zExY`(Cn#Br)qdoqVb^3x%-k)O*Z`%UF-FzIbP%Nwft3Vcov~YJy|{flOe4rsJ9)B` zH&D+a?cYgy%Ig&?youVKs991N+hy1hF@VJcB(r54-LgWn)mh$R z(mM%Gw5acoxKhG8LrP)|$H<)M-Pj^A1%N6!CzUrDZKqBC+4F@$or^ zHOE1c%yx5R7-io(Qc}x@A45gi3s45BGGbQ{!J=FY91>d$kP*F9C6=Oo5rxpxG~_3P z&9V-`5If3vfaL=y44^&^GHM{ef|00Y087MUI3>2th%eemG!GZ7zC=Vj%66ShOeW_F zWbZ^U0i+5>UW(Sl2(u_0d(V~~h(q+SS`&852g!uZmM#LAX!Rg-4D~D+hBd4aea`sZ z6P$YvL!a7QciA;!jIF5q?_y7*0 z4A44)1aR}j@!%lAJ1aB;fSrdEa;*0Xl6f?MiRc3yUrsQ2SY{qF0j)d0#?YDshWIYn zw0la#ujFHfR38A#04>t!iJHXdWFB6jd7M6?Cd3rB>$+k}**RYmM`^zn8$;!TWQixb zbrl1HcH%shw|nc`St2oCm^^wbSOGe~D6M(<(zo01U{o@R*0rEAZ21mfw(Ma^u&iFN z5X!Kf#9iY8I*V9U$pCsE5hLmViq2;WhTy#)Y?mIyFK6%6)E zjC}{`81FM;7w=dF#;{j(=zTUgAcoy40E=Nk00LN64}Rw;YXGoJYW9^qwOd=jkeyqO zV}p4BH4wQ{7%v*Af#IdZ?e>E$anUJWx*DbClBYg^MsNezI@^6>hWC0815t{0R)kSz zn4gpP3gcT4VK;M0>_Y%pEWlaDy zf_0xoArvGZibraBpN-p&b}TSrCE3T6Rbj4Ys`c64(jTK<<>Blrh}Gwr+#=k<@p0 zM;V4j4UCw~#wD{p5d>ev@s#sZg^~wZTcGjl~M}2AElS3T2n!Y+1m^Fd0@l|MqO>}`^oOG*|RrQRo zH7U^*<@61!;mDi0RWin(Wvha|V(gq+{c?gib#Ef@@`0(HIJcs~G#AV|gXFM*>Wn-! zke9FpW*JaQWLak(OSpmf@{o-8M6wf*VClObHEE~Z!wkvX9c*GU)&%=LOVl0lQNFC+ z*aL<>12%{TozQMbGJxL=JwR_ekcPmmevn^RAb0Vb`*@l};;_sm@$%$zt1n~$0{ z>l2{WdToOC?{G@07eFK(LNhU|yBdwZGrm1ZVI9Cu)LeZ4jR43_-Y^FiF|FpXPYip2 zgW*NX0Ob|`1iNrbotCj`B$LwJUq~hluRHd-29)XB^Y)NfpL2#}(4;RN3n4B0+ILXh zVVSvAF7Kev%qkv+=~-cSaR-t16FTDTtG6L+Qd+}ME^UBBc7S<+B^IqkN;S7-Bd5w$ z%fKAi*URcXMZ25Dsy``P0ut&?W7QUSma}8yI@Ge?x=z#nii0KD}1D+w%0`sU1ZA+jdD~j;}^ptZ^G)(D5{vd z5y)Y+6Fp%MzA36>atg1q?@e2TjiE0NTdKMpU`1G1zX4$EK}CdaEha$+^9Xcm8PjEn zZ3>Ag6QB`*BhhLC5^5(gVLOlrW@-1LwIE@w*bMoq2p~IAVT-~lM|QCC+Vpa1ry|yg z3S%}pFp`>|JS`(n%fJFVoyCPf)$ZLm$FV4PaB^E&B=-3NkZF(ub^*2ktO5@5v;^84 z&x9x1VC2CfEHhXEB_JmjfPp4bFeyi3=aXcVIcs2&a8wHo0xTnRQ69iVPPNLg6R&{Q zQ^rx2I1-0SNiI>D9Ew#fAgqUyAjxCI3T*)!pTz{rH6>JXSnP#q2|?rz63C!>2(aY% zgGIU3qsx!wC39;@NHS@gh(s}E_iSyTlm8Eb9y3p-d?!dLfAQEc96uo6Z1@AtX*_%|YU@zEncgG3*&J*6qn`Z^%`A=I*CI z*zG^8dReTIHLu3A@Kz?#XzO#)XdU7uwgx3pK7jfFRsnlnk?b57>=u(Py5%iSuzPT9 zb)Sai>2g5nOo{eBbin0J!`AH_ZJNwP?*(7fE^*8Eo!laE+Uw8=8&-v&efp|FraEg0 zhJiW*BrAKJoh?so0jP*cDzHHn%!&laz&SeW1xodis7w-%FDVzi zuHs{8SBH*YPX?rD70K8U!(Jf+OHn=w3`MvBRx5nz%aLF#tt$dz*y~qdQF3`nhF!@7 z#MdPh6GyU8!lIG{0U$95Kuxgh&$}Q9FiZ_3wi^VXM3P)0g%&$X)Or@9#5s^)F>JPH zj*4VkSzt6HtLQECx6i?{p9Wy{-})Pnu)T)}mawf|!6*upxj%sA*)^C)a@qh21DLld zS)jQ9I}zTKQiu;&1)Mbq+aYDJgcXTrW!PeCKNJOK$23s`!K@JS23qcrn9OZVvZ#)- z2rvg9a$lKqG?1BHN)E_K0#Gf9Ru;Fz2Wle_)j~3m!-|wK36G4s|S+tZK1h44eq3kWO)uVP*yJ(F}_+8DHGQBhY_P} zr9l}^v~`X4@fE#+@``e0UxgHpLc{o~a@3C9;fejhTS3=*c+|A=twXc244caj7Q;3z ziM^(ME;v~F+5%%ey`n7i1UAZ5U8mV0sef{+q4I5M0%ex%8zYvzyt)+HtHHe%Lte$~ zBqYM>e2~-}ZKRR7jefD4(xW(kIyOY;gKwjF> ztDSox32?%)h0}}X?R*ZA4=D-8*tURSeL0N9QZh1IX!5LN5(Dh{h!vt1r~yzOr(wic zBn~9HjWiMqwQT1GtS$u@!;IMV6DVzBz+}#rj-tw!cGmjSFv@x)d6~Pe!TxEY7dE96 z46D15S7|p6l9#YW(>S@DhCPGB(cX%(hi~v4#Q?Gc*|j4A44JeD79=q&)&-V<3%aw%lfIn` zLG-YqTVT^(*`Yism0`D?NX+WJhQo2u*cU$on-NVRP!6kWkT)Z0X^dAU*Ll>3!xGlf zWw9kThvUN8VgPNyQ&kF2WgIAPUpSGBr0iidUTsOro=_tq5#`Qo?L|9IQ8YJlc+D~Z ztX4pZHYM*RJQLN23nwKXj*9Rqq-6WmuL__(PAiV2Dkss(+K;pX8fgJBtm~5(!@d9l z8pn|6eMc~)otjBlodNeOY(q0KkN6g0WkH*P8|&!7Y1mZG8ZExP8%JLsR!f6bhP^Nc zmJy5oz&9xt(^$y?6p5i7V4=m3DRzlSF_A(G=o8E_b{k2;+8l7Uj-jG3E9v(Da!Pq1 ziS{FOk&_P~56lKI5q(5V{2n;y+3JiCpos)oOmz2S80LcI-jR5DSSIB_elmF&C}oM0 zNnlpBECA!X0OQH!;Y|vStJ+Rm3_>VSvMA;9jVrIZR#N z7Vcn{9T3S@`b0;f?DaARJUhzguWn+9XbR!W(snR^=Mzno4NO@?H&jldd|)Zq6*NYr zD7!Pyz*>j}pkV+D#GsajJvTrvJBAYPA(_1}O@KVU)c}K9B=Z zI>yHeq5cJ^413gukdrkCh;NUpZ;s-~jiaw1(Yqqa;a$tX*dN%1EilW+CZ1|}?npio zEfMQ|s}5|5JHN1(tw_`sWR5Qb!PLj;;_=nQBpzilIq8|qddRMh!cf7GX`R6k*p)DZ zoy-)inB2G1YJiq;fz1*DhSfOaX#_xaj$#kg8Ne=2MPL(_c1{?n2w|EF`#^zb@?z+L z0Y1zrYO8>6_kmeHFbfSxZ95xc3EQakoecR+D>T3(g-T2q4O?oJ1C69*D9j8<^j}4qA~%>v?_)j$?>TH5{(B~ zS|}67`AxBfvjB%lLet7elxSF8pU{yS$djGEaF~2hssW&7Z|VsX)qs`X`uH zBYKH_KTN{%tYW>V{v+X^8-5IgRgQix9o)>}EfQr>zN zSY=-~69uTrXr zwe>*FL87$_P%U`_eNH5*7WPT0l1WqpiRJNCi|y_Oz$zeUo`x;ez(!KlaldRN4P-E+ zZ>u?kWXo=ykvG0#POR__%a(lscqP_6Ad~i>D~A(IWc{TuFf{-)37{0lMvVZ-$JiJN zUy#@ul>kj71eQvy(1dcLB#^a4s};)eRiCh@Xd@Vtb_^YZ=A)>3SdlETt_YU7i^+h+ zoZD8t|={H3!)2Y&N7sQnE#0B3lHS1h&M+7ckk` z8?Z!R>H{07?05k2?Z=r|lv_Pqyh_SmTjJndBzyV?th^rcV^uwD5Bajjj&i4-2;fV} za@s^NMFYZS66c(>3=k!288LQqmuMFT(_Ba_Ccug$F)0gKzD_Ctr&`v44C1v9HYGU%N3GxPNKS;C%U?Q7< zswG^fNdPtM7?OF4Ch;gOA16n&1rTM^wd)+!GAl*0cSuQ$WKZ`pBd1{xl7Lw~Fa&l0 zg^T}@?2HN+GO5i*eYz5Asm5C^HHVW31FMIEerzcrjBU}aLgovDQCbrdwiyTvJ53xz zpq!LCJ0#PP|3cm=(&_~n0r?sz zT4L3TqT`EU%Q@I*QqC6!j-d_>gVh7bq`rPNWXtaNqT%eU40C(Ai;@%uG}${Y1*o#X zVqfRuh;7<;$Q-N+*;(^Foh{!;YAO;lX&oA2mp7SxaY&ikzG>JqejfsPm3@aZVOJlk z7o`AfTaL?EB7lkj7K~lPVRc0kDQqaq+wK#2Dca5yn8idx=58+oti-+efaLNPp8%_T+lXNrOwoRF0{g_6 zNYucbp%ezi68q6&6BS0HWd|q>e^mnk19Xg z*tb{)OY~+nNaSNtVImLMXfD7u0>}p#Nz)nFQChoTS`Dy7oI8pkk5eqZT@okAsAYge zZNV3~;zXcF_CQW&aC1W3uWH>{--iJFAZHHMZ>@Qu>XfjsAR2G6ZUIfvc}fumcLixtEU# zL@9t_quj4_kf?SX_@h(<6Hg4=d}PW%7~XmDF94J{@Xd7i@rOmyr(#}-+wEsd1CwwD z&sWzZT=x7A{Bi1&YMd0#VTKjmAn`CN1d20f`CQ9T9v(g|TKfk%ct1B(}sR5-|B#NFT5Ypwt!;k6lG1Y75K7 zu$`mit1od=4)v&kk`5>nOewzOJYXW@r6zG9SCarVl|Vj#43KC9Kn?f-!*YTknUqXo zVWQQ5C01HU)Cc>(e8h$`;t8iO%Md;GhF#+1>D$ZMyiSs3d)}I@(#uQcj<2v|y2N6) z{Pap?*qxjG^a{RZa~oKSc4z~vvhU^&q4bPj6O&hIHRw*kin@A9gUy0)V8os(G2W8Q3B+-?6{%n@09G9qmAA)cz{=wsLwU6( ziKA?eLb=*WR1rXP0b|HANUTr1(D*iY<99|fw}){|cD6D!371W^07-Bdm5Jk5Vlf#p zWiF&6h;J?t4IRV2Tbfn_L1I|XqMsyszbXiWg{DW1Z^CvQ2tJzwhO}=Cq0cU{;R3!1 ztAjzGEjwaF-dT2{XG^o#Xi+4)p$VoD%oYb!1Qto* zGu*-Y3pc(~v=}T{lnce;OvC7ngq~XJimm|wZiHQcz%Z^dTu#^oir>! zz(f+?mZD5&iEdWIIc)q~kV-7RB3EFoR+;fKg34Cywo}PVU#>UKnnnN=CV&B;|6(38 z#VD=V^6cIw4rmgXeNb?G$3WTTLpv^?9aGOQzWf6GIURUG>@8k&`BGF2NGzEx*u_Ta z_zC7ntILN>ff&;#`V3!(wQR)K%Yy)z2#^Fo`2=VXD20-QwO|*cDD;RTr1(i<04V_q zqkAg_?@&Hs%ovZemuQ?`^Eh0hJ}?;o6k4DZ@+gYYVX^H33RJ|HN@;cB!~jwfq&T1y zR(NWl*C-n7fVMz6_Ixm~QChoFst+$O(1s?hmj=vKA77J{*ryZ{18o;YMIq6GG4L&~(UiO;&c#{yg+vR6 zW2Rd8hE-ayB{ppDB_|rcffJDE{QwB=Pudrn;pgZwaFYgDQuui*H7w{rVzz8D1si*F z2j}Y*y`Q5KSRx!Hs{rhP>|jT!J}?`cN3$#gC-_U8$4M-%#2x_CZBid#iSx*| z5b<&OA}n*sOA6sk6L*y!`!orold>2PSQ<8?<0pyX{#bPYrQqqP9T3JmSKao zphua261UyI!BJNwlAYNC(dch-A?l{1B@Zpjv==Jcc6!z%l^h+t{;fjclV| zUi!c^iTiUF438x#tjoljEd*h6f;reWtS06NoJHXcv)Gxe!fI*qECYEXsm@5uz&)Ud zu&{-U*;$HxodIllIas(csof)Z_+7ILWNy)N39YmrP z343MVLqcFt_STRWsIUy6TL{nx6T?6OY5_8cEzkI#7>WS;Zh|G=F1!suqE-tIOJ-pM z5*>-m!$5$AHgQt?8cjSfb_XjwBzun@(t$`i>4J;n^r_zyLykO{{ZscRJ6n>1*&G7& zd6ph2I5kbQ02GN~5>AbS75+uIdbz>yKUzHsoI~^p9jR!EC8Z_v!pj|*s2;>7O z6UW6o4#7|_`Y(r323(Hv0O|uQ(Qg{e$;L#50b~c5h-a%2_)x=&S%FCjkP@I}P$~>; zz&>cAib&KJFtr25;F?5CVe~yQfHHAFRLkK?r2tC2_osFNgsoi^QB{i!?Nh_aC~+e@ zu|E{)fS_H^1MN5&Z3h6%1E4{0d8ie`Bs~w*(rH?m0w{`De0wRCO|mFAQ-Y}-kj$+q zIWnnCrhbhe);p~E9ZU_3c=F*hD2$0&O1>B>M4&zb9jHgV#Wo_XDAJ<o{C6325o^-I~fCx(t2V3OZz-Puv3&R8--yw z4ar>h#+KtNuR#@IE6Sc;L;Ldj0>F~VwJg-`@j-zm0TjkmY-<8E5Fr`}2wPEDttu1A z^6}u&us#wJl>&u|0Gi7*80CV7+%%75p+NE!O`?i839e;;_}G9A%RpwlOH3G7S4Ww4 ze9ci>b)2k-55H-cC1T%|NzsjvGF#efW;4g;7DUn(0hp~I7^Pi^d20r?ed;Whq5@E2Be8D9lG)?$toobb zmgwT2vI`*Lyj?3;&Q%}`tci|lL71~2!kG3V0Z6j(%ZW~mP=!+1dQv8Hi+o__fi1Dw zmI;KSFppTf0?H?l1Rw)|$`Vi$%rVWV02%noWv8L#V`l;ehKly`s3jPf4+?Ps%mZK< zqkJDdz&^()54-C;)C%lu0NDZZ0njIqfdZn|p+B$*guz})Hr**LpoJwsDGcb#%k2bP z;^OgjBL1{mAx{keO@jUSv7 z55PPIbjwGdjbz_G{Zc6m%#rMZ3W@P?S+u&;{Il#(k&@&VMquxa@i6V(m~>vb7AO;Z$RF0m>Ai?1IbmL!>bnw`N= z?Hq?o-^O*Y*jII|0xa!*eFl%cHsa)*l?8}$A(GpT17umZAZ17&W2&Eh-k<-u72&|E1Gqk6zL=v1FlVxWnaH%!aS8~bV3Y7;R~1_~{9eAE*DyN-inUF^9S zV1AT>*mFA>!5aG6ERLZgA0*D)4idAsJt@1e#ppycI-Vg~a2N%1{~9A0&ooJZ)eLJn z#0+cZF|1*P$fTN%%gskdwM|!3@ai)-qs}>8>(xD=RR^r87PzmWQRwJ4(zYPYseRZ=rzpj?KeBLFTr5BsNMv3vxCVv_4@h zuvG++^r?YueCbVSB-;5r1A|PxAQ<#}U|@l7Yr4*-RU9DD?#KXxBZJk$>L#qAQin%M z-bSGe0!rk_piF?2oIg1 z1}L%E4_{-|1CS4(Oh61gi4uN@CP3N1--|i;Z0$v?q z16x#zgAY+ILe||~^8ET`xV%haTiPVG)8NnfpFo%2kydDz3u@$fnuc#s& zY9%W61GZI29U9Ex39w1HS26eyX4zf9=^&hmsAa+|SmeYB#)p6rY^ONZF>v|a+OO@H z9DAT(_G=UA!jx8E9zbCLwA-)i$%QtV-15um$@T&w?-b1G3=#nh^y@rh`n4oXOXktN z1&j#jqtoW_0EVfS#0D#FB`R}oK+^f@8UQH)=FuZ%z{j8rcE!UeExoP<062cX zTJ5cX5{s3Ul^rbZ_ZqTq=h1KM+dPp@v^Kbds;R`Wj3NT)< zKC$tvLmMP+Mcd&EG1Ll-y~i+5EN`Ee#(7S&KB9m_pmq zh!!APASGcFdjUrPWWcGh265r6R)AGb6I)pfR#q}?TVivE;W8;{Y3mHkJTNJNCIZB0 zcSQrNWPt6!@T6#fd4Nll1h>Klpcj-_+|uSZ5nv)fN}5zuYfNNE<4FbYtWksnQ8&nF2IW9oHY7~f1I0k(?m|<0?yX83;@}2qO_Wt z&+470!+1*zC~r?vGx&pP?%Lr-z6|86w+2yOZ`}id4AeLA9BZyo zsfgn)Rx)lRRnDN@M@h%hKs;OWyrM&iI0H(3;6_kY{2N|83#ix#E!X-Xg$jWNJ^ULh zp^V;9mVYmOa^kgep`3*1?cq@NZ@U5i9%Z~%&Kw)K(rAP5?^!kabU9{V+x}gyJ~ij* zYzaOG7{Dk6cSyEJ zr;`KfLwcCNHiWgr6yzwvX>BW35kYAD3b+SW{EEq|GX`AjDSXKuNk-zH_2F_FTG39U z7KIbt3MCBJv1;y#Hk$EJ2FL$2yGLFTelIr{R}WRnqmc=4P(~`E-|O%ZZ0ZFk*V%_< zVW(p70w{!^k|o7KCy(hg+j&>EDkB_Zw`7mra${8P8K@ts+bDWL{$#4(1=`y#(Nj)*!@mVR0C(Dh_jlQrVTYYIl$Y;P(Y^@MA?FBUqh=^+9>X&dAI8;NTJp zsf;w?+*Y{O=QREm&&BDd89n#tXU{mcz4foPY zWJNp@YqkClAnaa8q;6_CYRFtXZO0bm)zR!&)&j?ks@?+Kte@(29L%*gnaShmO&r>% zVjC*4lA)~{`Kg%drmaXCYu%l#3B*F%ti{vYmIai<#X!FMeI!gL^_=1^e5Wn{=&UtU zApz8^9`_S&+!d@vDU{HgZ#D^2x$+5?)LHN~qoPKwZN6p>5k`wTAO5v6H4W?hso@ zKbrwC+}RvZ$ac(fz676JF=ap1z7v-As^s!Wt1AX_ z3r0v!6&PUuaFEt${JEt%k$_ns4pcO>F%_znuP)iBpKA<)cezf1CzLhEVnfx0xbu<+M_cS z=8FI-+pS!Iot-#~eiz-SgWwLL5)rVr+>CGbb`quK#7C16el`{vm6ns1Z7|u108(ec z-kArpDChv-6x8S0RjNNTOj-u2CPBM{g;_2IbXQJnmBMRpH@dM9Q+Z=PU9qqosNWCO z>VR&yb;Klfr^(vkWjNUb{J1t$8GC4}qoOmKV$hljZ5l;H{S5_sDTM>NW#d%Y1$^4J z3aaTDDbmZDebYi-8~vlIz$!_pam$4>*xHZZO0er=sujc(T-$6o+0|tlx!ArRnlp%< zKFbMCSp_==i$mRK!Y@-|7^7d^nD5HAp=zDX(6ZnDqfsi3TYvzH=u88 zM<^;tA5S^!W+D4TO$Q{~#rE8^9i+*K?w6~_LbK}0jUxnU^Rr!*U`CO~P}VIrmc7cx z;yry>7?t*T125!R(Ug7G6jNc4a^1jT%{h2GZtdvRP6fk?waDVrw(>lyRYLqTNz5MA z#RXFF=24GrZCx-9rkxnJi7i=BZgVp9RANS9>(n0zNzT@#BFdyddblO$G_zIc*lYb04^cOOdZt5F?R4Qbs&N-o3Z{nhwDjA-HpBi;ytFc~5 zG3R-NRL*80x)HgA56Z=7s5bb`FM0Npm5iwsiBUmg>0dLJXIDVEuU|=O2`5GbF<L&kyxopX8$dJ5W${+%1WfK!fJWSRryTPWS&CidqAQzCCCvDwHWEX3eZAMj` zhEfq(-@D+*Ij^geDV$@OYkhKlx5T#Psj*x!GOIX7CL72(z_M_<%*N)Eh=nZzGJTfLOgN?GGi^r4 z!gB#zJ^SrzqLQQP)G@Bzd_8BH^u4Mrg(eE93{(|B9G`TGDIV< zu%Pkc($yuXTkFqRuKuHME1u_L2Sl=-&sLCI_xfp=j3E*;xb0hOxy=YzY#qq=1{DKH zwZuGMV-)kDoAt4=yi6_Ik~51vlz8qm1-A=A+bPz`t)T7r;?_yaINV@CM{0B+teGTw zpVd$K>V3=?c54=L0JPf}dN!5ADcRIcp;N4UX%1af69}^MIfkXB^sJ2*xbEt~b=L^0 zb3`lEx&S*kmKd+zDy9$V!_ehjaFN=&i*aKX^?)ZIP^W=_d3C@xIDqXj0QdEipA=Rg zD_&hNw!>>)pPoqBF6XckuxsqNH6V|ZnzxTFd@UGO!#nwE@@`vmC_;A5-POTywy6O( z)$8YlPpQ(RaR|-&U^bP5k!u`9z(_5y&xl#uGx$xwdLk8LvV*^kBecoRTcDM5JTbH8 z-5Zze&05n05-cq@FUZ3Os#_AEgWvd$?Zwk_9(YC&dajm+N6iyY%y082&(&QZm~ zX~O3Vsn|4uG>bayzz63xH-++!ht0s6y5$cYYiNhHrAqfEE5Gpb7n=_ z;JkeV+P7cDrWf`lR5{i&&m~y6on@dj1y6)c^i*MAAbZ?tYVc-U&Q|L;MV+nCW#1sa z#^pXvEytK^&F-~y9?R~O8ffke0V-Sho>b692&=a<3|<~~`k6R0+=A&Mag0b+GoElm z5+8(xAc0h}xF(Til!Q#ak-=8oxg&@%; z@JvToJE={A*h8w07_;B z{zqdC)LP9+teiHMUsfE!-##}6+0^vzCzBIfNz!&rnaao0N1_lW`e8v;Piun$tU*$@ zY^7^8NB_Q?D!AcQ^IpE;Gt_c|+9qU&ByPm894GqCF1Sxy=3BnD!-!vOeC6w=eYSLFPuz!9fNs8 zjq}O#pC8}7zyCh`c>U|s-~W90~8b`!BFvW>-NgmnVuI3R%J=j+SMfBltoVw@_(W`&D9Fgv7R zLhWf{V{ix-n|j;LU849n#y>2ZXo_L6=Uz&gzGfjX+gC6?KLD}uxwIBbZRdsFRjcd=6cL zNm<9iuUldj%19sPLGUl%F#A<67q7iqhe#C3{XT(KjWhV_lEnXsUCS{GDkMyRm0f6gU&YyZys ziDg8KF|lN}M-8@S+)JZileuQxW29^`RgpL|DO$r3z8W@L)?#}N2!@%o79;);xTHnnR%*1#p|1Ch68YzZV*MdreQZBQs6CAQK! zQiAD*2qtCCxSQ<829`HrPF_&1{R&Tu&A>I|Zf21z` z+0svJ4Er`)p}%b`DKZBC+P@>3Vk`W{_}xZe^-)9MmSpeRzq48}to@4_iq(~O)qo}X z>UDEN!30P)MdU4s&H7Cdg%C*G6wzWGB&`pP(C)|*4zl%(=eF(a8R8yhgK#ElKe9yTfK6g#_vnDK3F z_{H8GB-?W8SQsADtykB69?+Zr6zbRdGAeGz4x-$sjys35v=InUDnSTRJWva8)iMeK zfg(<`cN{ggTc%usor%~!V?>r>UZF#(J@3;YrI=F)^N6SvdXwLHIn60rghJT8A$DG< z!l=f+g>p#OF)dphMf7Ue>gN!tDZ`@ZBbr3)bipC@QHHskjyM6EW1cLF1-@k6x&Yck z6L5agLmQk$+#Z@_3l0mhH(P5T!e{odb^a06M|*_Lyt;7H~rBxK4JBHta;fp$Wf(1&3D3mc)l9iy+A7%jq}-{{K%;SVX3p_zB-h!_|eq5ZvPbR=Ec=1Vyl z5iyh@ZKqOmeUya~iG&X6GxlOP)m;{R-bjlYi0F;vKxGIY?U}3gvXGP76kvJ7I9KE) z8>)GY4vl^1m)>m2?r}NB4a@F$2~noq+;T{vOo|xqh?8ksFlC`WLViPJVrRB(c3Cz8 zB2Gi=ig{G-H?>or1-(RMd=}<(h!Ce!k1aE2DnM%8#a!(Kd!?B(?F958^3uYEn;a3J z*WCi9A~Ie(f^$82s z{1A3JwR4>jO|IvzJfvC%YH@)_R38J?*G^UuJGEfHve1xDtNTqw=0)3eE{h4#;9U?W&+FtDu@zJaW#y3@-N|l^s zCD)%NHx4ByOVjTghmy0(=ed_)nA$|VqD!z(Z9>>Lk8bvUYEy!JFSJm@@nlQNs*0&r zh=kKHpWLkMX;=x-rdlCamMdS5t@uY9wC=oYtt7+Xs zm-vSx%1McKK)3oR(SqX-k(v^1_qWwFwb_Qvp-Hy8i4LtIzT?o^$7$T^UCzDULaTk- z#qk+;PUDcA#(m)_Wno14fJ4~#D#{125##&~5yD8j13uzZpAR^1!3KO$oE2?|il=||H-2xngo8Ln@*3Q2byt&7M~^VEb8!O4*z@XPi-1(Iws@Cx52VY?fO-^S>MYJGS1|mMn&=WBt zE#NyYa!gLjz)hS(QBLE|KO9j`^9#r8@;PpB@>Z;9%D_L|Z$zRD{KFB6L^b$_b6H|% zM7W6~Vy7Xz#SyX7kXAsemWH$jfe6o*EYzX#qc2UsUu{XVY^50_wxsFq5u3J3R#Ov3 zX!16zgVtNkr=XS6Y-flqX`%rsh1&5w=dV=?edBwMh@GNwIv1v)_V-ybk93SgqlH<^ z3A43*-)AKnEzAJ;4FfIYiq4~~M<^qYbVM@ILXPQ(YM_if(!K;+htkO%GCHI_I=OR% zN5sxRErK(mIm}Lz93r5}%kEEzNJBZMLk5XX?!e<^F*>x6N4Z+Hffnw-S~Nf>p6s-+ALhI zGO5kth(gq6VOfXt1hwIvj;It$#7P}dPtc_ufs5T+Zl8xeL>4N=a~)9|yzF?c(;97H z?YOKXs+P6e-NThhr545)qEg)1Aze6U#OeUnMT}5b6NKsjE~DYGzPxv(7Khcx<@5B-)3C=*>S87 zc(6lj{O<0#9U)TCFkb3T_pFzBsY4hT9~W7)FC+^s+JV*z^X}W>&Jexfmkwc|FdWhm z)z0edLtu|B^R{&3RNGP-XzIkF9g*0SibK1ds}1rF4J9Gn;@%D^g^KOu*=11*rQ+Al zFc~bm#i1SX%c)7U$<4NzuxS&&cF5>bBQET=&!+B+o~v4FRFLdx;X*9iDf43Etqx5q zIGx*XTf?}SGm;Q1!j&9x)$$sLCZ|K}nbXzIPaIlL>~5;6HO73vA=MgcUf(wM6wTwZ zc;wsdQ-i_f{LNCY>o|WyYv0b!$6&-be?!=f*aC{nV#Id%;}AKG*lrLy;>LlSIHVNg z$4%S|V#Bd;*BA^Vr*TMAj3%dXM5P#1zT*z_D20jOJC3MDhM4a-qCPVr;yZ4qQEd1uC}f%drUv&d<+TMqFEM_k+afJ5Xo_u%~PExh4(2WW_7)MgQ*RYYyLf*m7@ z=n3cU4Jn#xaQF5~*9E4<^Ygyh629R0r#GCy%?vcq)S34;qTcc{;r)$>&&!1Ox6Ntn zUM9T15jCD}xX>%&bb}MPDF{Bg!3pdDV12+CERz4RWhOT66Z`EyS9<}oH@GF&TNgen zxrT*q084IIO0HogCt%6-d6T0PutX`F-h`AgWeO=}9_5fywkQiJWvbN_3*TNhA=S<> zHSbcx<}M)uPQyY(+BC%(`$XDGyF@9|sgU|+gPOf5b2dmAbbPZxCFI=eB7|=m)^rcw zG%Q5w8K02WZblMP%4Q@XrA(KaEh=TkC#00AR7fe)rI7Z`>NpOUoYSQe126clZ zkhX6b7E;QrPP0=3H_ZwuWv`i#Ql?-bZJ6?e)&{=cCbw$?-*0Gb;Pefxc23_AKKjDj z+oTu+Md9X+h>xOh^G3u@QFd`i%U_DZzZ;sIf_p<4W|*39lauyzZsU}e)3-!@TegSR zOFREn7AhsGH?&^rl;PMZ*si9#oJyf*{K63lLEUzCxSX4-lqhAEEVKdV9u8>=<>MZ1 zd7yUc)^U{yLC*vQmqmRPj0?E+1U?ETQaB=ZnzeIQNp`yQWJ=0Pdiusc98n+8H~!%k zFjF-C;Sgac8vk%a!tC`H(s=r|+aYps?DbZ%apXG=O$ff@&`RMu4y_d7#~t)ch_{yU zHpekRIi1~)kQ7YW?#wteRpE(lX|{IqM2E1mXu_8xl8|BBY12yClD=d^Cz!bfo_6ki z8q!W`+ku!H`5l+Ogb;hXwjw0NUa}!V&{uBlh#Mqs?T~6|D1UYfO7&4q!ORiyQBA(? zh}hXhPVN?>d%SiyG69*ueW&FR1{%tb-I7&(Y#%>%L<2}e_hIAM89ff{5I#z{W7C&~ zoRp9Qy9g}(!rF0QMfW#k{>#>0pNfRtwn;MTWHJ4u<4yVN8Gsv#CSq#_ngEOf+a$YP-{-fTUwbFPO7 zK|?sFBPxZW?1b&*R0@6JvCefcHFXDjXv4vA9a0J##$)}Po7GEH%Z3Slj<}xhw9k5i zqVQkml~554;iJw+p(%8Nt2!bfXaOH}L_J6g1TW{?kdqehQAgDCv_K4V#IbW#=L{*! zn=RqMj$=*Y$Igo~vBf!u)=hlXAvwM6IH~iuthYF+L(>#a>d@rnq%L4k(F_HDwA-+X z8}xoFko&rqTRP_r2KHic&W|mlF-7*SG#bN^U7;JuLSFo)^H`Yn1V{7^Y@Y#A3XRD> zf~XYw({y)4hNf2)q+`4hYZRgm^1|=PAa8%Kk|b|REqZ_KX^p4utogf zIk)s3^()?LwNpRt@UoDFGIEDUBnzD^uxETMlNjo*4$&`ElRG>jKFY|eolkAm@@j`x zU;F!4CI@!@w$;Fa9a{T1sYC15c3Q`!`ZWrYs-xxYQu4z z^L69UjMi@$OwqZj%QC5(c`eK7(wi-5?t?=W>>ICk0m@`Dx8E&EwS^M$YKO4X#a>h^ zj4pC#mt{S|o!v2c5;A(+*%8&wk_onss4FPw?rN&`vt*Agqr`mOF{*+t^L0nmK+`J0 z+7WdnUFP{NI$JyGa(UKHO3d?pw<;iFH_77pE(dnH%nu$>DRh}1Jfc$QGCz1F(;vDl ztUIF4rpvtI5p^0}<`vHuug{q|Uh#<7DY1C&h-#<3;<@wTuXfJy&^nTHJhV3Ok%v}0 zA9-j!A)dRAP>MO4ck&1@^iPa<#C5qC@g9fC!s{MdDL!ry z8vCw9xbqNe3Xgox&pJdHcxWTGD~8@|30HoM>onJaht^zy;~|35Q-R}cT&c-AL*RHs zrLeBH03wpto8C@954z@3P&)w;vC~Xj01?&BtZpaZv1QbDAH}KHsI4u8kOop)n+9DZ zr%BY-ra?q~&ydMTCAVd~(1DgifQToGz+8>CxXFzOuh`99CjzETY187Ge zG;!?#gvKDKydBHcU`HUdUa~O|T1C6fqi7OpCz?F8hS?_Q;0`|eCX77dIz$+GNVOEr z-a)Sfax#JT4kF^CXm%1Js*efW?Y(zGNVRmyhC)Q_l*mp(d$5|x1d1k)sC`V}F1D&n zx@4Cjq*~h3l9LG(INsY01EXh`Afle28iK=n0cr}J_=B0-ZCKSu zCu|n9WvnS)pu)i;o-DmMuauG-@RC!hlIxI?FU!fl0GbR4hc^S)XP{N|~mGlrr54;oBml36yS{*$K%xvlCL^UYa3% zGeV)&XJ?@K*SgSNKxkcPOQ1>FY7pxkTA6~pLvqf-^r4VRExJ22S?mRb@KHZ|0j}9= znZFf6$wrmiKSU&Y$L$}H)U=4BzX_tEsgKC-h;q^*uKnha(;}|@kostm%RHK2%0fki zbw^YK72(W}s0QQCncuurqYXGOend?%-~zcLVmILXxLiG9zQO}w&i1?@m*Lp;9QVkyVi0c;~_NM!qNl^rjMs+QUbIFG1%shvpkR!md7-Cgq7 zGL}g+di?8qLFFyHRvIsUXpP{^4{gXrlZPgZF!D~`t`XwLL-^P!f#VTX#7^<>x3t6O zZRwhmh}hXFAMJMCVGc;DDX2U&)#Ta_tOscK-6auq9rfY9kBFW6aNiddhMf%)ejZW7*f3u#jHo}^ zFpmBf!1|Liar8&TPMP@oBVwmhV$xeUV`syJrboo?6}InE+;M8`USZvtelL9S>LqJ~ zc=gb_PS|>AJ;CcAS}DB#E!34lm%4&#WtwE!3Mk8D5xpMTz}XQ9tv_uAwA|lF+XD!x zmbL3rpB2s8iBK=*PJL8r*FV=HDrI9JL|juYSDxfaP!Yq{Eek7}edFfO%b;N_8jpTN z{lb(Lu{J(7j4QuO^zpG_?b|I2%@Vy{79vq1?)v-~a#AAh`iLZ>HXQU_qP_v=nGb2o z>C2lf5yc)O>FJax_5u}2Pp8DKM>G)hM)-LSm(|<3!)qW9eaUhPI1jCz{PjgWu4w-H z(3;lCSHF7glthK5r- z|EG$)m^j5F;-fZhH|dgF{laYUe@9%uaCPTJT^F?6JXu;VN>*5FtReP-bGwM-HM*6I z-zE#^cE2gwgrphmvUt#&VM1y+MR~I&O_s*!@o#1Vsh8de2haJddV16QaXA?S9_$>$ z*ck&J?1*HdBAK1>(G9NaJjtY|6kOL4^$(@!X&K)s#be7TjyQ1F&Nc)TM;v%alPC_K zcaCf|u`qnz5%mZQ6XS%TO?=*EA+Hr1pLaiLE+fRt9Z^o&#IGHQAY> znfR{rtxqIQ>(G>n(>k;oIIR<9Et-J1lMx|rWD%8^&C+tOcK{~M5QoE0@d5jz)qz&nmEMAcHFUD#i1Stg{oa%BCCcCy7XG zy1~udMMnC7oe`5Bak{Z@^41o1hPOGSxm1L=Im@8$=mu|d#76G1WhO*C(lM%nf#RQT z|4aiZl_>Uz1f^7b*Aev(b0tvy-wRZ4_w5QPIdMy_mrAaXl2f#j>!p$_q~ylG?Yirw z66|{~hVX4V6~ZtL3*noFWh(Ja!$PXvJ2Rx(O|C*pnF$LiW!l#+p;9)v3MpjEx+m2;Wq(R|vjMszW+?W-5elue^|EP8ECS;F~Ij@NEJW!nX-j2;cOpmz1%c zeuebXj8;e~)31-w3Zklr%>E**)e zWyW7@d2^1b54Utk7K1Bry!ptA=8q1oNgUCk3CaWAlx2m9{|>Et`J+PF81CRJKS58QGRk)V6qg{Em7*&(HDlGJ2O zbEyhPcEpXRi183vC=P#iM5Qn^{Mk+E$im+6XGbIpv$JnH<&t4`__Lb>;$vvIr6a1A zg%K*=G*M0#h9f$n8rT#UWf#n#TNx8R=ZMN=Ohkn@+0+H>hN$p}`iwG(11}_E%I|iP z&}89H4y|ZD>3rAeTID}hkjE_Uu7Z8j7r3^g5p*4jk*r$ogLPL0hLv`z$E#WPWW1YrZ z99mcK7Kcb^?!sx@GH4?wemsPoYKb3@h>uS39rt-R4P;>Wjw51cV7QQd2(FgVH?ifd zw;GSfmN7z{&M|JxIGsZq2~Ot_L20O<@&bnlN<+DzBNCLo;d^e?Hyz=04(S+L$oCvk zhtk3VFK$-Ww!Z|sw;tbfzY&m5w)Bz{-JkWO+oN5p4-f3Gl_R?4>}nS=9$KThr9&%)TROD1b4!ON3%7I;SV}R0cJoO@3?|S# z$Ss&Remuybb&qKBR?+K7muQFNq*E?1iKtrdCxPP~6DKv**q7AmKdQl59KuI6gps#S zU)PBy52=r8@E}Lj28zOi+`?XKSuKv_h}h|i>r5hIrzqmba|mGf(sFrrMC@K#-6(L1 zB8H-!`7B@SPAG-7W``#3 zyxDKIgvUEZ5;AN8$Me1@n?>W}jz}gJP2hM$qR~Y@?g9oii4qDGkEkNcFkbB(JL`H^ zo`g2={MaE3^lc98$ClAa-tC-5dWKH&ZbzIthzc*3krcGB2;z+rE#%fN3kJrEcRQl- zq=iM7j*s!;>n=W0lh`o6?uc4O3k87Z&LRXYpKq%NX#uZvh!C_uBz8m<(Sm%klZBxXW}VAX7KSFD-m(~Cw{92os%V3n3rZGz z1~pI35p%pqR#6@hXoH%60$R`KJ%Bb;t;2`Bm;_em_r&fs#Z?^4-`(;4RTs zm;rCC1QEiNiN`vZDj{eAk97`KvM?}i+m5Ids?of7WwJB;*JW9U@Lv}NtQ7jfe;rXN ztd1z@h+0H@dR4FJ)0a0}!kt~bu?8|p9M}3qgUht=V^jz|i2MtpQp%W_gQ zF6)RI&(3gJM^q6z!)2XU8oRfh!03pvKemjb3Z9Np|58+;)Lq?etWB##R7cbm)YgqF z5wX)(fz=f0dLW`Ygn<^iraR&Wf;&8<6k5m~UPmZ}7K*QqsF}1-m~}+r(n9yPMAT?H z=?d?55XfSRF6cTUSu7&C$RlbrCFC1#G}Lb9#VH<<@XQ>icmeS`nG*7iN7TubkT*Oc zIcXnnc;l@iuQ##R5jE56ji);zcD9eFyFC%j^m^mzj;NU|Ay0Qi&75ZaF;92ub+VUS zAtfhD$;n=Fg_N8qCD-(lE2QK^NiA>ON|Z7+3n^u47E;R8ETojFSx70fhbgyGrgR~t zY-S%)%3g;drA!k;N|`41Y$#=#7*fjYVMr;nhasg*6GKXwCU%RFQuh7~DP`}^kPev& zhIGhOuw5t}ve#%xx1I_{b{A$|UIHaa2ZAdB8-H=kIyCJ1a zg|i(>nF@!rbGjSSTYFQ7^w!?gA-#2){MfS1>9SG;ozjO0x;b5lpi}w~L8tVYHGf>S$$w{T%8k7B8MSSa_iOaVhT1A}dZ6{7Z zPW6zAXs>|ri0Y%gE{}<*TH5RKm<+XQX|G`Nh-;=`@{rnTuVC^lJ0WPVJ7gk~Wp*^A z6iO_@JmUIVpm{F_rBGsl<`I=bLERw}QHv<3u=9voL_zuad&_7M1r>`Pkt`HcEP6z; zP*8gSy`A%geHp^_K;GjsU3v2rm@pc zTL%#*gd1c+>sH$Wz1Y_jH^_uGICcj@>kzvGA*E1Sy8{skL22y{bXl8H*jn2H5wX)& z+X4}>Q&U&R^evFu@McSF7Q~@!hS)AahrqOq^4cYcsDCK0U4n>ugu04zZ>nQhsH;2F zBkB?AYO^4sVWF;K*qb7$ox0jVi1^+zDs7h`Mh&FW?pKef^Qg3__fEO#duG)&>k+9D zvnu#KqE<7jwk4X&X*ILz`<)TBnspW59&xqXmT2;~YHdq|R-fI8(E7(`JVW@Xtu2ct zjjO@M=%GnwlcJgAdeUA+NJY%5O^S%hq=ll^yAN=E=0ci~GAW$>h^D2o&>P|EO;XiI zZ^Wrb)FSrHWU=Qb{RtW7&f~MO?=g0i0vyxB#R*yiyl!82Gzbo@gvGK znxfAm%E>YbJ8w>{vsfn4=Mk}cEebSm+P$1M6ha#g5$2&uW?vz+iiDPT4s!b9M)VLq zGdSH$ zB817A@bMNBgl7!8>hh+ry!EXv)MspY>m!oP1J6HStd5+XbT_(0)Dvb--1HImAaK)% zbfmEr_uVo^7SAS+e2W@2csBXqBi7nCE6G70hX#6ZdFG2P+6eH>hbA`9d}z((nQt*Q zDMW*Z*4d)LLlfHtFQK)}r!QN5slgcY%tutTF&5NafRh?-jNe+ummlNwfJ;9_G|#_i z@Q7_4)tN~|yMB>sPce)hurM2{jGd?1Aww*IRqG6#a!pHld z)!4b_Lz9zhKD55(nh&jZKKUZd@G%i$$|J7pIO9XB&-LS>wN`|AtM5IXobe$Q(HkE2 zh!~iEj`o)8_~-;jdqnJJA3W?4*R4G4ovqd|lVnlk5%GCZ@V6Hpr(qU#0>&e17@ZI> z9#MxdEds{#AgG8=@SaE16HJSs@SF@PVp_V|;|vsEdWrg27~b<@^f0g~{N)klq$vF5 z5lKchI!?c$>4Ym%I#B*)(aFpPXLt^eF$fqBO_#X8Lt}9NNj{ND&EXwdnS#PY8-Pw_ zUhVweB^cNXcbr7rIPijplw$bZagw`5DTbeiJYtf)*^LE?Ca&iGmMD?*HJnY3&>JbVfG(2MUJ+_Qei5riR zXmm^5c(IxqPn$U7BNE1oN^E!zEW)rpMKQ0_=$1(FvKSt^s=UUHg!h!l_buho3q17i~Jnx(OC|p5CtDVB} zyO(8h^0eotQxOXzL_DGzC=921fvwZYVk1^2h2d21H%&1!;YQEtCnwXwQy!5>6h`28 zL?Tfbe)F7#>N9KMH;c!aV9!qUL^@v()(%QDo+DBiw z)^k;o#Y>B8JtA4mT{+4ls+PXw7+zuYMf`UTPvX)SuJHnWCt04iW5}T;nJjsYpcT#i zougDvMu>|$qAXrFt!T$b8GM&A&+1ys{T)&Rd&A*fe6gZw0T*|~FDF?HKW}#aS!L3K zW`nDi*%0xa?{><-e;r!C@Lz|p8-79E#WNG$fV(XuqMQbt<2oXd4EX%lZ?=SwJ4dpb zCma!!q-w_QbTf*^OY&LeUD<1EN*eMK;cSP)` zFpn)W=~?{u&;K-Jm9mF%Mxl#XO{ zig`%Rvr>oTyw_Uj^z#x7XQd9Q=*-h0eD^*Jon5*_MW?2R@SU0-QtjELL)cGELuZ#R zQOc>{A*I|4?2uAU1rI6ZRPc~eP6b1!f|n@eRPc~e?saxZDW`&mlyb%@beedHQf{Gr zNGYd@hm>-fct|OyWrtSEqQF~;(X;uc53Q6%fgf5ab5S2!DT@L>q!fBKPjy5JHW&3F z>=bOC>LX5wg@1=A*e*Ibw5H5&eP~UY-}=y+vWrd*DTUVkpmp*lGBc<;tbFq~C9q?xpC-sp(5Zr7e1QYLkq|M`eSqHaI#Z5WZ(&GCGQNc3#3<|FDz z3N{~eL<%+^^P%c{u_TvOBPihyN;p6C{iY^LI6rhmN;p6CA?&no4(KCl8SR?`IwI|x z=lPHxp?32;A5l+IyLp~l^52T?l6Cz&&u=Z8clsDt)4bD%rWNx}ADW=^PKT)Gywiu) z_X})4w06!reQ1KtJAG)~G`Dn!PR=cT2p?tKeJe-AKnv%Hjz|l4-^w9U)53Y6kBILk zY9Y!vNAw}$o?qaQYT3nIv~oo3RC5vO5pVW(33iG)U-J=l7V|jI^AVLoU*~y_$V$%h ze25UNZJkJp+@nY8xk%g69?D`Qkg+pQ^w*1PjRAHvS) zEi67Fb=!sLhqQsZ?Lzb;Duuc&NdAa=g4WGb9nouevGRwsf!57$eMCJ$>*l^bqNXs9 zb6-bf9_P0{gpZyrI{t|G=-IAWiAc}>b$a$@OLi5@F={7cx#;>MYA0j4t5_mZ(A~Ly zNISi;=Mz67dFknHWH};v>FHeK5xuc@ANwJCLu(g+e?%ikc^82H*0TB3bEQ)7xz-O& z-nrHft<`g_A6iWd*$+|hxz-O&Ip$$MG(i`Ke`wt_*LsL9&!>J!eRO%T_D94(iRV*~ z$S%%(erR2|==wt#Sjk1#M`R`EVLzlI`nr($BWe*voxeRIMcs8Rhcv|td>61E5uf+? zeDM)!=pyG2sgFV2r$>)SYKpo$T#mSbpMySR+BnbrAp_v$JeT|tF;KMK;S!Oe6^MUE zeUbB*sE?w}K_8J$%|U-i4W@td!5>k7vV>X2D>GG-tnCYSk7(R?2g{+=J_mcq`*1Pu zhy2D)&50h-?0=r|L$a_;bBP~uvdkqOVv=@G${~^&+xfyHddn@m{g5o|&0OL~T%&g- z%Axh=eBmK4v<0*ulGDJ=C4NKguMTTll@HRw@*u39|)~$1bA6m6@f*%_DeBmL_^y1SG#rI}Q z<|sc7rFp3Pg32k(eBzg=*Z9xV9nouNF7A-w+}o4 zA=Mh=-GUO)q-9R+L#gs(%RIpIe;=bpcz|~eN<_1kxw;P#+ao(ycSO(XK9zZBPtxMP zL#D@z`#z+dhIO&s?QF5p^J5i~Ar%?9xwDTrMV%izz%||4s zhjhN?h#t~?j`9#b&+1&xM>_cA?(I>_ghCaU!3Ro(3-Ls?L#DEoEMdS#3{o(#~}kg&+#E5 z8TZ{Iazv7O!#v1k@mAiqDi2|x2J;yoaidxg%xlZ$UXGE* z>?49AAn9jW%(FAO+<3lR)a-Zw?h?+ui+NW93UheY}mxbM!d-xE^sL|r0 zBT}QqMIX{xUha#1{`upAo(pK0YLuMPmwd#NJ#;0P+=%6%JO4n*NmL@|%zo%bx&+@; zBZO}{kz?;<$gziS!xzFg(;m8}m*CqJI~O3yHi{vo?C}q&Z?EqVz71wRLwp;|5WZRe z5WbCRNVR(jxsHhvWn^$Xu@-K_SbKQgU2)C>f_@KDRU;e{1|4ULvrpB4Xu5=njw6%+qqQ9 zV&HbuMFJYCh1!OU7(Zr+xW|#w$uy&$dssV->Rg^>nTapaKgO6JvrfjaM>M2K2A&@?qH2vlKW0SL z(guFahDysQ#oU>XE!!+0el^ji1=}V)rJ9qoH5E1DxeSeg=Q1>z_$u>;PZ%!C&=j1@ zGPH47>}+MyrbWvhno=!V_Ru*7z|;c8vKJ1)kh~5-kK0>3CCba+i3`=UqtO=SvdV7>NEPn>6gVN1bx}f z8r9&vIq7axXBCfMJ|GGeGin9+b#!m0J z`$B3sBb2EvcaS{WkVmyH&np(z!XVah+jKs(z>w`dby1 zaP;j)Wuea)T=LaZwkxrGmwe^#x0##Ed9{_KFPBu|B~@}sYO`1C-Ywf!Dstwk+lsZn zW#~}%iS+x;4tBhyD5VPP?+L%o?EZ~v>74(Sdr54UB#79n{vOLd@YNzLddsDxb!xrk zTSo!_Ga!zBfoBAQ`GO6Vv4wdhS-*2C;)n!Ml>=M%-p5jnN9or?qyF=q=1Kcp0IL*DC%gkaouW6PUW+r8jdD0#g< zdB2-stI4v96Fj1tOtg5v3ntJ%%-I6ME7MDr_dBFxn6usZQWoZnOFXnO+vP6z8wTc# zFTDA^4mIE65|5}u8Mj4=$9~4GXuW$x=VW!+M1Q02TebFAn*TcT_Ial)L;J}eb*2O zitPU@VX=uBgnB3hVzXezzX2Lh zD0W884ok$@L^~`Y?2Ot@8&nvhW``wIe;%=}z68U&{n~J5VobSgzl0jaBd%=QFQHXo z!zI0M%*w)4*-Qyd`kgws-zLmX9fX*w9X>dOovE_z5>b6j)s7-uPNgtIJBsi!qA{9| z?TvY8y}eTlhty;`W=kicnoP&`=#-QFvd|+o{%o& z6SBdR^FU6kf$j6e$EC2V>_cY!d+rYcroO_$V@mn7LGjoc+)mLxk=wU^YsOH#&? zo5o$DlzT-UQp&v|4=Lql4~LX;Dt2h4Y$8@8&nR57QZ^Agv{E(^JG4?Z2RXD-Hq{H= z%kUDVoN67KEL#O0nk;Kb4V$tJ%?7xUhkpPo=cQ++H*)L_Yyp$l+&I=O1TAQ=>NEz1t2c<=%{;)3ZyIa&N{%O1XE^A*I|4@{m%__Jz*&U80mT*@srj zH?`TM_4G4_64uVnVW=98SPhp{^d)jyS=v?1Zi7d>OEyvbFq+o+K z=PxH4WCJpUkMY@gn6fZFb|pia%lK@veOWY~@!5?1i1oo^%gnQEXXcP>SmQU{+CiE_ zs$jfqZbsD2W?l9;TR>qq>$1lgQE#(o_BbPIuJ`J0v#KIyZl4!Eq`6+Nwm~D3g=1sq zXf7vNI5u{iCgP?T1prn`KDkq>OOoZ1O1Y#VyChjIsg&Grr)ifoWS7*UOIFI>i-%Uq z-iwD;%EA&3Ddj9$=+y5LrJNQXnk;)~9-1tBXC9g?duN8uqFtht)3-xPIg56PEN9UU zk>!-|5Lvc9&-JL3vuOQxx_F6FP8Sa;9M0r$awf~6WNB&0O3v4Cs1{u^b{q3;D`v?hPK>~vJ%cJ^nWGPN2~ozLjSM! z>%_k<`PW}}>)OHz7EG}F))q*xgJ=sP=u($fr)NhOOt4Ubok3eP!Oov;wYra4FPLEQ z0gDb;Y``J|78kH1Xgh%Rs|+vyFG^rB0*esX)oQy~ZIJ?t6WEcog$nFA+QJ0({pv*u z>>9O22`oln5dy92Yt-jWxc?faJOuZrF5bthUt~*Zygqkh-yw>~SP3zSNSzrgktPx8 zqq&?&lXfBN>Pq2x+sVU2^wE-aCl8NEA5Hi60h*j!OqZCF(5e+o5*kDIPQB?!rLlS9 zPC{$hl;(b$OrlUiYs<8y-XdBI4uo7gG{(55Jg_ zHe}aZLQ6uA+Mi73g2GQid%}gEgjB&wi9+e}BoeYx)3Hinr39md^a1lE7^Mwh5;9NI zx%f`&F3~_%YPxqsrI_FeRO!f!Qtnk-7FKF!91khQ%x(_!8dApoR!t9!zZF}{PRZxi z?a{d>yY<5Ty;WsRyqqoT`ny|0`ditq0EsIZ`djDp_vl-_#C6Y6E|mLwQzbW4^y^By zC1$@~ne(BR2k&yuy4VtEeZ3OMd9v-Yk?KOZCvz_7{$7m>cKjI zhL7cPytM;hS5e7TR8rSna(pGnS8{wM4cjG&`_fxwogFJV(Mr^`xm!q0TiS-yv?*Lj zP1^!3UZY`-{q*G$rEGc@Qp!wSNGY41g_N?DZQ&kD*~&Jgl+&!roW(1N{jp^;j&Z1B z#<8<-3f-hFqz`A~Li%tvuAmdb%;y%uHyals(`;Nw4Kr>VrJoTQQb=sKR`c;C@P?bA?w($@UELT~$G73%?S-ZE0B+ zzinw5`uLLl*sJ`KWWPjprv-<;ik9@495LmWq=aR;9ysF4>?Jkg7GenjZP{7Cg=)8o z45{|Uy;8P{EK%)Nks&o~6`40K<*TBtk4nb3c%~zg?4}hJwuNSi+PBaQspxd!vZ!ba z_xf{1r>^^L3-^c#*zEnw|CKz6dQVQ2c?N2_EL$2jC|{e&eky;>Q^5^z=pL0z@NNAa zQp47Z^{U?48niO8Z(ZBg2fkC%mq+FQmZwK@uho(SJ5+;8W+F?H=uka&No~F)i7u&m zmn7yT^>oRWrzQ9{#|z=x94~}#mNNA5seOyp)OZh(XvENJ7mXNt?2q1hY^!73q1EIV zcWCY0$GpnPZWe)fjc}T~WbG8&7+O1><_=9>k&ZoRKI7a}1T z%=G(hq?3?Qb<{gVP_}hflwKCiWjDo5W&;SiNo9zjtmwWT79V4}kBA*o$~Is_@;St+~l zC8^eGgSiYk)-QZ)Nm1LHb(>{jD+m zjlTs#J=Wj2`&&c$JKoLg7Hbq`yr&@jKidGkY?|9e7OyMZk**EvPRG%FYJ9F9M^7+YUQuhL`7$$WW-yS02W}VFw>Xs(`tY;G_ zXf4~M<9@4yFB#vSxI+^y3%TD|Mv=KqI+VgPZY~i6%UB0tSOZ-q(6d-6FK?!bVLkWw z9#WH8rvTrGA!jG*fW zl1TrUSPJ)znBFE5>({=)(Am3!&iZrewNQ`kpKkkeyPkV`nu?r7OYp@PZ@X~au)?=v zx2?w=htGB~TJz{0itmzYxTFSOk~o*#b5v3@E@^-+Nw^Y5Yfj%oN@28i8taHkVYKG^ zJ)%+=t@(8$GFtQN9wN)8g(0PEHWW&hJY`ka-}3c0k^5V&{w8pL<*B0nPud(L^-zC% zTKYTQo09bZc(+hqWNMW0-ow`a082I1%6iI%8m;dN-{G)<(>? z=*!EJ_?JuwQQj$gWxhT3BEf}b=4dfx6A2!gykft5vezU*-=Xz^*zeG!*t?}tn3DD5 zp*r%ChVK$(vKnH)GZSmzzN%Q3Iq6E&$7;A!B4QOiwv2&s??fhO-7JJWq-=IZ2zf-J zu`~NPW5TdABFRHaG3OFV9#P9!oo)0VpB`a@{$?5R96ygHdgv2_17hpeo3WY;vq0ubFQJW!(cV*Ktsg(BnDQ{Eha`e zA}i>4gK<5gqS-yyk2DlDI483?ms1L%743L}(faE)`L$w9!JJ(Pt$~g(gw{YO8A1)h zF-#^08Vp`UZxBZq4A&9mWCfj4FkJn{{5hTwQjz7Pa|sa}=5kt2I+qZtUmsg$n&s?5 zjH=+jbA%xx2`xDtVaU0of0;ig86sk5{v2qCh@JU!n@Q8TjlAOxA$;6;&NW2D=bh>r zljeV_rD@wZsPQyS#Cpgevo%{2rTAyNFYy@6j~DV_Gn*6svUnt!%?W=*4->PwHbi7L z*M>tLCT4R-G>+(zWHxsrOGIXKO*vFgTtXIRb4@uSS-z$)n+v}0H)eAIxrda(Y;GIo zh;{2FN?|q^gMUOVVm7zm5|P>5p2s0AVm7y(b3`q&YTph`eiakoh1nmPEDN(gv{JTH za%i$_H|J18e92^4I9|xAecL#P)-T&iIkXmSBk9m&+1AP-r7)YV!B#Z0nUR3V!ffsq z_V}31Z3!Jx3bVPzZbW8tJ2QtW<>l%6HP2}&eP#hSd=XhdXD33Hd_<1}L+I>89iImG zn+c#}5{BrA7_2(ovJ=g=?Fw<&z&O>p+@7fOfsh(>c>4|>;GR{@Mr(W&mL}! z4o#R1&Y`bt!k7*=NnO3BgJpsUV^+A~=oe*#i$ z7H?YiZXF$kh;ifML_|mx=7>L8M<*g$brO_ybV*Rev@e-#a=0WYq!fNRR|ZAYP3DMh z4r&RjxA^52?onY(rqdFky>;9p6jF*gqCoi0y%K`0Tp)Z7+_Q>Zq_w~I)b9Gz{@!!4 z&754m^=tnpZGZ29+o!(zTP68*SHjHdwsfN0qqYs5{*HGRwX2IpZ(O2}ch+>bqB?rt z-|^0pZfhsX>YW+gb*NFsI~%&YQ2$IX|32L@|Nc&@S?1la8f8+=EZ3N8(QNZv_PMp! zC!5dCU++qQ{;pSNl;^9DvOd{Fw(C2toY~_!?fZWtvN>$GR_xc+wF&Ip_2pTAZuUA~ zy^90-d%Sbh|NVaWwS+Y9nth2Uj5+(s`{vX{hpXutbLP}UL<(zqVH zIhixZB}9H^vd!xpg$S)8M4z|1ZDAdY9c;1&QXYv`WQE7AjEuL&g%QK*8EB@ ztLdS05+O}8^>Z>J;>Od-h(bAMDmy~3wlH80Nc5X-X1QF16;b0^F2^N`=)}%)?KD-g zuv`vL2>Lvt+F7mzeMU6dbD|=o3mGuiVMS~Ner@YN|NqkiFFkPDMdcVU7pjR6?l;pi z$09-$o&nppLoN%2H!X84BL5$Sx6SI1L`3YYnv2*Xs@){b$%*c+-Bah}L}&`Xk8C$d zJ>&M)GG{H~n00b>TWIn+a*>BpO=fP6Ttu9p&QXLWp>q_S{=;DA<_5QjvrhXwNfI(= z&RFF9oEhAgNcxQ(bDSbH!{<~*sEQt2WgChI zmp=F>&p$ozYY(KqH{HC1ZnIp@FGTd9+3Iv+q0I(4*(wJYBGP8IY9FYnOfxVS3x;Mv zoL^|yYNa^85Sog+W-zoz(P@UzG<~~WE$hw>{n~;*`@gIvVva%B5j&!qOvD_6h`4q- z4H4Qi<)lNKD(fF79YV7it|<)RGXry|p+lM&m@MZPBFf46<`_dnJ;DzC`&LbV)|y}G zHG+|Hd0~jWY?aFkI~=NiStn-{BI-)k$>D_V4U&^}+V^g%fpu~?Aw+uC$#H}Zoazc@ z$yJ6CgZ0((6Ts&5Zd$NY(aacdr+J$2;pN$oGpkrZFa+DXb+|vE(`scU06I& zeyKAgZ!L2tW*jrIjwpoG#PsY)ONBB$MdsWS=A=RiLD?fG6(VA1kJ?$su;BIot;p}O!AS+09R*FBfWa*OFhNqtHBdP%Zeg8lj>bp3J( z_Os}RWVvRBu9=r$xT!$srUIA9c?*@$Jy4g7FNf8k#a@=2)|Z@uU$Tl8g&4YN^(8B8 zk%l2nS)^fzoC_m7wDv82@DTQU0Ueqwi}(uN`u>thw&1RiHY_^p5C+4snCFOR6x!oD z&-NuNWzkiKCj0`a4o&LCMTO2?bIHnFKvd`!HkVA!MKXnqd;8t{O&8?BA39AgixJCd zG^EjsBJMY>ZH>6!G;WNH+hu_f&tZ0n-;7_DVnh=(ha6JVvh*OBpt;sH zRKs$WZ)R2!-=XTeq@pi5zLMH-Ni8bbJgWr53}Q&m8N|?+vlbnLinb;!!UW%3Tp@fj zZ=v{}tYldgIulqdO2bl3HxQR-#7tmF6*GEWU?I!wTSz;%7z}CW>|00;Gg`&Bs9{Dc zq=p%-kQ!#RLK?qWS4b&0@Q*Fq1g%IKg3hpo2)gBCh@dlbA>BN0SfMx7R3FS6R-%-x zDMLz`?F-?XwJVxQ184L?8aQ7@NPRPbA$)Ubblr#gwoC}AVcv_7oHT77=OR-*h^fUX zYQrO`3qz+=msDQ~3*(FB?QZ*xbzO8$S=iHs$3p{34ed)N}@O73?9EaAF`NYdqD}Ndd&bN78t7Q%gIVQVGvRZE9rzmM1nGwK08;W zpZ;MioiK=qot1RLAR=~Fa&v;mmNAc;J|rmfxaq?o?PMOsjTdjIf$ZXD5#?kT#f^tZ zxH(}+H?fl9#tTh!lXaT-8Usj6mEf+Mh2XXhql+&X=-(`rg zoYOL7_P9G)LgtIVvp&99T$ITw@~z>l)hhB?;f$8w*tgx(a3)L^bKc#w5YhB#E{a3- z%O&;aB}%zL4YA+56(PhtZWS0}l6E*Gd+0s0by$cM*;*;2dpZhnWp0&o$vSyUkPutz zL#v@l?PIE$+ROR#?#C};X!VqQ=!6cP&_z?+*c45X@|0|(O61(aptzSCjgk|kSzf0T3P>geJ6f2bEOIiS#qy2FfEI8E z5u4@Q${-1u%;IU5g~==w1yT`{S%?NA0ncPUwv1Wbs-p@`EXATb7#?NHDnd>@hanv_~ohe)R z>!C3;Q@<89$Cj-2%=ysXd`)%NAq(2PiLc)n*~Mo@B(>>x7uT-n^yW$_kZy_Eg_pHd ziCE`u!Cex=Ax{;X*~0sXtzad4;9Dm`V`ymx$;mD@i5!t#+=;zPVHcgP2-VDpC*UP& zFwJxzC8CPVHhV^2ZAqa@=<}TsHQw^u z=Q|^+mX&mxqI$41mQGVd)G{;5t@_@qq{9{IzCtayebh4|nb^fCanf69J5^C@jSGV) zfIT8UlSkL|cLc?_u!O?dBkDqyP*i(F>@1Xa(uMpHb%keVv5x60 z3uA>B+7n@+S9IYX?p+a8PEYPnGmM1--r_HjE=h%G+$RyiF>XVMiG&vU&uot;wD*(ZU`~ey9x5pir%Hop*iYG zR`jlLJmTcs-Hjnu*;F~S4lz~kGl~W7W$su#34|pw!@q z7+AulG$XQvdzF=iKe7kXZ;e1icFp055LxaKzuzkQv1Lr4lNFtKQ@!=GBNY)9Y8EJh zJ)&-A`{u!_Ub8@f>>&+g*u<=7_jLusw$laiF>J2(4{4wms?hb0-Ayu~>!FS3jum7F z>5oA6&^nZ>EDa5vqS9;=qTTlu(VU{wtjpqQv1%*`)q`O&vHhzUn7LiQ6=LRge^!XK zv#=~&wLXi;%>6MFk>BiWW=T!Cq#?WHYA?Cxs!�_5g>@Qk2NDiCbZ=*!MVxuA&m` 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