From d2e2465e4d7d403abfaa691661d4d2edcaaf155d Mon Sep 17 00:00:00 2001 From: rahul007-bit Date: Thu, 18 Jan 2024 21:39:59 +0530 Subject: [PATCH 01/18] add wasi modules for jsonnet with external vars --- JS/wasm/assets/wasmjs/wit/http.wit | 4 +- .../wasmjs-engine/shims/src/arakoo-jsonnet.js | 6 +- JS/wasm/crates/wasmjs-engine/src/main.rs | 50 ++++++++++--- .../crates/wasmjs-engine/wasmjs-engine.wasm | Bin 5161980 -> 5169658 bytes JS/wasm/crates/wasmjs-runtime/src/bindings.rs | 66 +++++++++++++---- .../crates/wasmjs-runtime/test-vars.jsonnet | 6 ++ JS/wasm/examples/ec-wasmjs-hono/src/index.js | 48 +++++++++---- JS/wasm/types/jsonnet/.gitignore | 1 - JS/wasm/types/jsonnet/Cargo.lock | 67 ++++++++++++++++-- JS/wasm/types/jsonnet/Cargo.toml | 1 + JS/wasm/types/jsonnet/index.node | Bin 0 -> 1200520 bytes JS/wasm/types/jsonnet/package-lock.json | 46 ++++++------ JS/wasm/types/jsonnet/package.json | 44 ++++++------ JS/wasm/types/jsonnet/src/index.d.ts | 15 +++- JS/wasm/types/jsonnet/src/index.js | 5 +- JS/wasm/types/jsonnet/src/lib.rs | 35 +++++++-- JS/wasm/types/jsonnet/src/module.mjs | 4 +- 17 files changed, 290 insertions(+), 108 deletions(-) create mode 100644 JS/wasm/crates/wasmjs-runtime/test-vars.jsonnet create mode 100755 JS/wasm/types/jsonnet/index.node diff --git a/JS/wasm/assets/wasmjs/wit/http.wit b/JS/wasm/assets/wasmjs/wit/http.wit index df2a5f05b..78b4a54ec 100644 --- a/JS/wasm/assets/wasmjs/wit/http.wit +++ b/JS/wasm/assets/wasmjs/wit/http.wit @@ -1,4 +1,6 @@ use * from http-types send-http-request: func(request: http-request) -> expected -parse-jsonnet: func(file: string) -> expected +jsonnet: func(file: string) -> expected +jsonnet-ext-var: func(name: string, value: string) -> expected + read-bytes: func(file: string) -> expected diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js b/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js index b64160d75..30a29b98f 100644 --- a/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js +++ b/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js @@ -1,3 +1,3 @@ -const parseJsonnet = globalThis.parseJsonnet; - -export { parseJsonnet }; +const jsonnet = globalThis.jsonnet; +const jsonnetExtVars = globalThis.jsonnetExtVars; +export { jsonnet, jsonnetExtVars }; diff --git a/JS/wasm/crates/wasmjs-engine/src/main.rs b/JS/wasm/crates/wasmjs-engine/src/main.rs index 6ccb308f0..92861f98e 100644 --- a/JS/wasm/crates/wasmjs-engine/src/main.rs +++ b/JS/wasm/crates/wasmjs-engine/src/main.rs @@ -162,11 +162,11 @@ pub fn load_bindings(context: &JSContextRef, global: JSValueRef) -> Result<(), R global .set_property( - "parseJsonnet", + "jsonnet", context .wrap_callback(|_ctx, _this_arg, args| { let path = args[0].to_string(); - match parse_jsonnet(path.as_str()) { + match jsonnet(path.as_str()) { Ok(result) => Ok(JSValue::String(result)), Err(err) => { let kind = match err { @@ -188,6 +188,36 @@ pub fn load_bindings(context: &JSContextRef, global: JSValueRef) -> Result<(), R .map_err(|_| RuntimeError::InvalidBinding { invalid_export: "parseJsonnet".to_string(), })?; + + global + .set_property( + "jsonnetExtVars", + context + .wrap_callback(|_ctx, _this_arg, args| { + let path = args[0].to_string(); + let ext_var = args[1].to_string(); + match jsonnet_ext_var(path.as_str(), ext_var.as_str()) { + Ok(result) => Ok(JSValue::String(result)), + Err(err) => { + let kind = match err { + FileError::NotFound => "File not found".to_string(), + FileError::InvalidPath => "Not allowed".to_string(), + }; + Ok(JSValue::from_hashmap(HashMap::from([ + ("error", JSValue::Bool(true)), + ("type", JSValue::String(kind)), + ]))) + } + } + }) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "parseJsonnet".to_string(), + })?, + ) + .map_err(|_| RuntimeError::InvalidBinding { + invalid_export: "parseJsonnet".to_string(), + })?; + Ok(()) } @@ -227,19 +257,19 @@ fn main() { 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"); - } + 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(); - context.eval_module("arakoo-jsonnet", &ARAKOOJSONNET).unwrap(); - + context + .eval_module("arakoo-jsonnet", &ARAKOOJSONNET) + .unwrap(); + match context.eval_module("path", &path) { Ok(_) => {} Err(err) => eprintln!("Error loading the path shim: {err}"), diff --git a/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm b/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm index 0dc549c5661b5b5930ad318b2d56bc8065879cc1..fa3bdb0e0038f9c8399e6851fb23b8eecaf6c42f 100755 GIT binary patch delta 529426 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 delta 528074 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

ceK|hFrS$g`d^3Z16OHA;?MgkkU1l768N0(| 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

_RQ-!JVeGR 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žMTIw@2G_TD}& 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 +export function jsonnet(filename: string): Promise; + +/** + * useage: + * const extVars = JSON.stringify({ + * a: 1, + * b: 2, + * }); + * await jsonnetExtVars(filename, extVars); + */ +export function jsonnetExtVars( + filename: string, + extVars: string, +): Promise; diff --git a/JS/wasm/types/jsonnet/src/index.js b/JS/wasm/types/jsonnet/src/index.js index 66874ec6c..97606b1c9 100644 --- a/JS/wasm/types/jsonnet/src/index.js +++ b/JS/wasm/types/jsonnet/src/index.js @@ -1,5 +1,6 @@ -const { parseJsonnet } = require("../index.node"); +const { jsonnet, jsonnetExtVars } = require("../index.node"); module.exports = { - parseJsonnet, + jsonnet, + jsonnetExtVars, }; diff --git a/JS/wasm/types/jsonnet/src/lib.rs b/JS/wasm/types/jsonnet/src/lib.rs index 70aa202fc..03867fd06 100644 --- a/JS/wasm/types/jsonnet/src/lib.rs +++ b/JS/wasm/types/jsonnet/src/lib.rs @@ -1,12 +1,10 @@ -use std::fs; - -use neon::prelude::*; +use std::{collections::HashMap, fs}; use jsonnet::JsonnetVm; +use neon::prelude::*; +use serde_json::Value; -pub fn parse_jsonnet( - mut cx: FunctionContext, -) -> JsResult { +pub fn jsonnet(mut cx: FunctionContext) -> JsResult { let path: String = cx.argument::(0)?.value(&mut cx); let mut vm = JsonnetVm::new(); let snippet = fs::read_to_string(path).unwrap(); @@ -20,8 +18,31 @@ pub fn parse_jsonnet( Ok(cx.string(output.to_string())) } +pub fn jsonnet_ext_vars(mut cx: FunctionContext) -> JsResult { + let path: String = cx.argument::(0)?.value(&mut cx); + let ext_var: String = cx.argument::(1)?.value(&mut cx); + let mut vm = JsonnetVm::new(); + let ext_var_str = ext_var.as_str(); + let ext_vars: HashMap<&str, Value> = serde_json::from_str(ext_var_str).unwrap(); + for (key, value) in ext_vars { + vm.ext_var(key, value.as_str().unwrap()); + } + + let snippet = fs::read_to_string(path).unwrap(); + + let output = vm.evaluate_snippet("snippet", &snippet); + let output = match output { + Ok(output) => output, + Err(e) => { + return cx.throw_error(format!("{}", e)); + } + }; + Ok(cx.string(output.to_string())) +} + #[neon::main] fn main(mut cx: ModuleContext) -> NeonResult<()> { - cx.export_function("parseJsonnet", parse_jsonnet)?; + cx.export_function("jsonnet", jsonnet)?; + cx.export_function("jsonnetExtVars", jsonnet_ext_vars)?; Ok(()) } diff --git a/JS/wasm/types/jsonnet/src/module.mjs b/JS/wasm/types/jsonnet/src/module.mjs index 8efe8310e..962aaa90a 100644 --- a/JS/wasm/types/jsonnet/src/module.mjs +++ b/JS/wasm/types/jsonnet/src/module.mjs @@ -1,5 +1,5 @@ import parseJson from "./index.js"; -const { parseJsonnet } = parseJson; +const { jsonnet, jsonnetExtVars } = parseJson; -export { parseJsonnet }; +export { jsonnet, jsonnetExtVars }; From 33f5c9437ce58e140ed7d19750566ff5806a370f Mon Sep 17 00:00:00 2001 From: rahul007-bit Date: Sat, 27 Jan 2024 21:23:17 +0530 Subject: [PATCH 02/18] Update dependencies, remove unused code, and add wasm version of jsonnet --- JS/wasm/examples/ec-wasmjs-hono/build.js | 2 +- .../examples/ec-wasmjs-hono/package-lock.json | 13 +- JS/wasm/examples/ec-wasmjs-hono/package.json | 2 +- JS/wasm/examples/ec-wasmjs-hono/src/index.js | 11 - JS/wasm/types/jsonnet/.gitignore | 7 +- JS/wasm/types/jsonnet/Cargo.lock | 722 ++++++++++++++++-- JS/wasm/types/jsonnet/Cargo.toml | 29 +- JS/wasm/types/jsonnet/build.sh | 122 +++ JS/wasm/types/jsonnet/index.node | Bin 1200520 -> 0 bytes JS/wasm/types/jsonnet/package-lock.json | 30 +- JS/wasm/types/jsonnet/package.json | 27 +- JS/wasm/types/jsonnet/src/index.d.ts | 14 - JS/wasm/types/jsonnet/src/index.js | 6 - JS/wasm/types/jsonnet/src/lib.rs | 80 +- JS/wasm/types/jsonnet/src/module.mjs | 5 - JS/wasm/types/jsonnet/tsconfig.json | 15 - 16 files changed, 872 insertions(+), 213 deletions(-) mode change 100644 => 100755 JS/wasm/types/jsonnet/.gitignore mode change 100644 => 100755 JS/wasm/types/jsonnet/Cargo.lock mode change 100644 => 100755 JS/wasm/types/jsonnet/Cargo.toml create mode 100755 JS/wasm/types/jsonnet/build.sh delete mode 100755 JS/wasm/types/jsonnet/index.node delete mode 100644 JS/wasm/types/jsonnet/src/index.d.ts delete mode 100644 JS/wasm/types/jsonnet/src/index.js mode change 100644 => 100755 JS/wasm/types/jsonnet/src/lib.rs delete mode 100644 JS/wasm/types/jsonnet/src/module.mjs delete mode 100644 JS/wasm/types/jsonnet/tsconfig.json diff --git a/JS/wasm/examples/ec-wasmjs-hono/build.js b/JS/wasm/examples/ec-wasmjs-hono/build.js index 83f669710..8b3f4c5ae 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/build.js +++ b/JS/wasm/examples/ec-wasmjs-hono/build.js @@ -8,7 +8,7 @@ build({ format: "esm", target: "esnext", platform: "node", - external: ["arakoo-jsonnet"], + external: ["arakoo"], }).catch((error) => { console.error(error); process.exit(1); diff --git a/JS/wasm/examples/ec-wasmjs-hono/package-lock.json b/JS/wasm/examples/ec-wasmjs-hono/package-lock.json index 9678ce984..bdda0de25 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/package-lock.json +++ b/JS/wasm/examples/ec-wasmjs-hono/package-lock.json @@ -7,7 +7,7 @@ "name": "hono", "dependencies": { "@hono/node-server": "^1.3.1", - "arakoo-jsonnet": "file:../../types/jsonnet", + "arakoo": "file:../../types/jsonnet", "axios": "^1.6.2", "crypto": "^1.0.1", "http": "^0.0.1-security", @@ -20,12 +20,11 @@ } }, "../../types/jsonnet": { - "name": "arakoo-jsonnet", - "version": "0.1.0", - "hasInstallScript": true, + "name": "arakoo", + "version": "1.0.0", "license": "ISC", - "devDependencies": { - "cargo-cp-artifact": "^0.1" + "dependencies": { + "jsonnet_wasm": "file:./pkg/" } }, "node_modules/@esbuild/android-arm": { @@ -397,7 +396,7 @@ "node": ">=16" } }, - "node_modules/arakoo-jsonnet": { + "node_modules/arakoo": { "resolved": "../../types/jsonnet", "link": true }, diff --git a/JS/wasm/examples/ec-wasmjs-hono/package.json b/JS/wasm/examples/ec-wasmjs-hono/package.json index 08f95e85d..1029d599d 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/package.json +++ b/JS/wasm/examples/ec-wasmjs-hono/package.json @@ -14,7 +14,7 @@ "@hono/node-server": "^1.3.1", "axios": "^1.6.2", "crypto": "^1.0.1", - "arakoo-jsonnet": "file:../../types/jsonnet", + "arakoo": "file:../../types/jsonnet", "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 index fff2d6b99..da65ef5aa 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/src/index.js +++ b/JS/wasm/examples/ec-wasmjs-hono/src/index.js @@ -1,6 +1,5 @@ import { Hono } from "hono"; import { connect } from "@planetscale/database"; -import { jsonnet, jsonnetExtVars } from "arakoo-jsonnet"; const app = new Hono(); @@ -9,16 +8,6 @@ app.get("/", (c) => { return c.text(`Your from ${geo.city}, ${geo.country_name}!`); }); -app.get("/jsonnet", async (c) => { - try { - const result = await jsonnet("test.jsonnet"); - return c.json(JSON.parse(result)); - } catch (error) { - console.log(JSON.stringify(error)); - c.text(error); - } -}); - app.get("/vars", async (c) => { try { const extVars = JSON.stringify({ diff --git a/JS/wasm/types/jsonnet/.gitignore b/JS/wasm/types/jsonnet/.gitignore old mode 100644 new mode 100755 index 05dd501fb..9b621ca9d --- a/JS/wasm/types/jsonnet/.gitignore +++ b/JS/wasm/types/jsonnet/.gitignore @@ -1,5 +1,2 @@ -target -**/node_modules -**/.DS_Store -npm-debug.log* - +/target +node_modules/ diff --git a/JS/wasm/types/jsonnet/Cargo.lock b/JS/wasm/types/jsonnet/Cargo.lock old mode 100644 new mode 100755 index 6f64a6f41..42ffc6ad9 --- a/JS/wasm/types/jsonnet/Cargo.lock +++ b/JS/wasm/types/jsonnet/Cargo.lock @@ -3,23 +3,74 @@ version = 3 [[package]] -name = "arakoo-jsonnet" +name = "ahash" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "annotate-snippets" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccaf7e9dfbb6ab22c82e473cd1a8a7bd313c19a5b7e40970f3d89ef5a5c9e81e" +dependencies = [ + "unicode-width", + "yansi-term", +] + +[[package]] +name = "arakoo" version = "0.1.0" dependencies = [ - "jsonnet-rs", - "neon", + "jrsonnet-evaluator", + "jrsonnet-gcmodule", + "jrsonnet-parser", + "jrsonnet-stdlib", + "serde", "serde_json", + "wasm-bindgen", + "wasm-bindgen-test", ] [[package]] -name = "cc" -version = "1.0.83" +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "block-buffer" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ - "libc", + "generic-array", ] +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + [[package]] name = "cfg-if" version = "1.0.0" @@ -27,93 +78,325 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] -name = "itoa" -version = "1.0.10" +name = "console_error_panic_hook" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" +checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" +dependencies = [ + "cfg-if", + "wasm-bindgen", +] [[package]] -name = "jsonnet-rs" -version = "0.17.0" +name = "cpufeatures" +version = "0.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82b396bdfc3ae94965555c9ec3efa2214e5f3921545a943ef9fc9873ff5e4723" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" dependencies = [ - "jsonnet-sys", "libc", ] [[package]] -name = "jsonnet-sys" -version = "0.17.0" +name = "crypto-common" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02347cbdf34234f30f0d92f0f8f678a15883bd5e1e4b3def4ed4a14f691d9add" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "cc", - "libc", + "generic-array", + "typenum", ] [[package]] -name = "libc" -version = "0.2.151" +name = "derivative" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] -name = "libloading" -version = "0.6.7" +name = "digest" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "351a32417a12d5f7e82c368a66781e307834dae04c6ce0cd4456d52989229883" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "cfg-if", - "winapi", + "block-buffer", + "crypto-common", ] [[package]] -name = "neon" -version = "0.10.1" +name = "generic-array" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28e15415261d880aed48122e917a45e87bb82cf0260bb6db48bbab44b7464373" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "neon-build", - "neon-macros", - "neon-runtime", - "semver", - "smallvec", + "typenum", + "version_check", ] [[package]] -name = "neon-build" -version = "0.10.1" +name = "hashbrown" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bac98a702e71804af3dacfde41edde4a16076a7bbe889ae61e56e18c5b1c811" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" [[package]] -name = "neon-macros" -version = "0.10.1" +name = "hashbrown" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7288eac8b54af7913c60e0eb0e2a7683020dffa342ab3fd15e28f035ba897cf" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ + "ahash", +] + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "jrsonnet-evaluator" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0951f206ee982ef3c61ed49c2779b3649858d2b7c6748943e4c7f36f6df55f9c" +dependencies = [ + "annotate-snippets", + "derivative", + "hashbrown 0.13.2", + "jrsonnet-gcmodule", + "jrsonnet-interner", + "jrsonnet-macros", + "jrsonnet-parser", + "jrsonnet-types", + "pathdiff", + "rustc-hash", + "serde", + "static_assertions", + "strsim", + "thiserror", +] + +[[package]] +name = "jrsonnet-gcmodule" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11fb98940a7f8b419619e98ccbf2e094671a5fdd0e277f05acd373071186d57" +dependencies = [ + "jrsonnet-gcmodule-derive", + "parking_lot", +] + +[[package]] +name = "jrsonnet-gcmodule-derive" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bee774b7ba86fc86ee84482cd6732aa860ae3559f9827c65efd75c51e66ac76" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "jrsonnet-interner" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d2332eb6c0bbd27e81ed8ad488a70e448437dd17b54e90cf3b8974b82c3c379" +dependencies = [ + "hashbrown 0.13.2", + "jrsonnet-gcmodule", + "rustc-hash", + "structdump", +] + +[[package]] +name = "jrsonnet-macros" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4b4d289fa4d4992f0a791de2e9fbdae7100005d28fced76fc49a2d70b5737f5" +dependencies = [ + "proc-macro2", "quote", "syn 1.0.109", - "syn-mid", ] [[package]] -name = "neon-runtime" -version = "0.10.1" +name = "jrsonnet-parser" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d403645f250bdc8f31a2a142ebd4608f9595bdad1a89db871ccdfe81c427957" +dependencies = [ + "jrsonnet-gcmodule", + "jrsonnet-interner", + "peg", + "static_assertions", + "structdump", +] + +[[package]] +name = "jrsonnet-stdlib" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99d7f31ed348ea5f7dfb379ddc65fe1773d82cab7698a8dbc4d2d72013795eba" +dependencies = [ + "base64", + "jrsonnet-evaluator", + "jrsonnet-gcmodule", + "jrsonnet-macros", + "jrsonnet-parser", + "md5", + "serde", + "serde_json", + "serde_yaml_with_quirks", + "sha1", + "sha2", + "sha3", + "structdump", +] + +[[package]] +name = "jrsonnet-types" +version = "0.5.0-pre95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68522259250172a8aa3714e2f99466641cc450b5c758fbdaa05265f86c1e0d97" +dependencies = [ + "jrsonnet-gcmodule", + "peg", +] + +[[package]] +name = "js-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "keccak" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4676720fa8bb32c64c3d9f49c47a47289239ec46b4bdb66d0913cc512cb0daca" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "libc" +version = "0.2.152" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7" + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "md5" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771" + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" dependencies = [ "cfg-if", - "libloading", + "libc", + "redox_syscall", "smallvec", + "windows-targets", +] + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" + +[[package]] +name = "peg" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "400bcab7d219c38abf8bd7cc2054eb9bbbd4312d66f6a5557d572a203f646f61" +dependencies = [ + "peg-macros", + "peg-runtime", ] +[[package]] +name = "peg-macros" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46e61cce859b76d19090f62da50a9fe92bab7c2a5f09e183763559a2ac392c90" +dependencies = [ + "peg-runtime", + "proc-macro2", + "quote", +] + +[[package]] +name = "peg-runtime" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36bae92c60fa2398ce4678b98b2c4b5a7c61099961ca1fa305aec04a9ad28922" + [[package]] name = "proc-macro2" -version = "1.0.76" +version = "1.0.78" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" dependencies = [ "unicode-ident", ] @@ -127,6 +410,21 @@ 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", +] + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + [[package]] name = "ryu" version = "1.0.16" @@ -134,19 +432,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" [[package]] -name = "semver" -version = "0.9.0" +name = "scoped-tls" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" -dependencies = [ - "semver-parser", -] +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" [[package]] -name = "semver-parser" -version = "0.7.0" +name = "scopeguard" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "serde" @@ -179,11 +474,89 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_yaml_with_quirks" +version = "0.8.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "47c5983eba86eae2d0058c35fb1065ccffb23af7f8965871069269088098321a" +dependencies = [ + "indexmap", + "ryu", + "serde", + "yaml-rust", +] + +[[package]] +name = "sha1" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sha3" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" +dependencies = [ + "digest", + "keccak", +] + [[package]] name = "smallvec" -version = "1.11.2" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "static_assertions" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "structdump" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0570327507bf281d8a6e6b0d4c082b12cb6bcee27efce755aa5efacd44076c1" +dependencies = [ + "proc-macro2", + "quote", + "structdump-derive", +] + +[[package]] +name = "structdump-derive" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29cc0b59cfa11f1bceda09a9a7e37e6a6c3138575fd24ade8aa9af6d09aedf28" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "syn" @@ -208,22 +581,150 @@ dependencies = [ ] [[package]] -name = "syn-mid" -version = "0.5.4" +name = "thiserror" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea305d57546cc8cd04feb14b62ec84bf17f50e3f7b12560d7bfa9265f39d9ed" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.48", ] +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + [[package]] name = "unicode-ident" version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" +[[package]] +name = "unicode-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasm-bindgen" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bde2032aeb86bdfaecc8b261eef3cba735cc426c1f3a3416d1e0791be95fc461" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" + +[[package]] +name = "wasm-bindgen-test" +version = "0.3.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "139bd73305d50e1c1c4333210c0db43d989395b64a237bd35c10ef3832a7f70c" +dependencies = [ + "console_error_panic_hook", + "js-sys", + "scoped-tls", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-bindgen-test-macro", +] + +[[package]] +name = "wasm-bindgen-test-macro" +version = "0.3.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70072aebfe5da66d2716002c729a14e4aec4da0e23cc2ea66323dac541c93928" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "web-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + [[package]] name = "winapi" version = "0.3.9" @@ -245,3 +746,98 @@ 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-targets" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c" +dependencies = [ + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", +] + +[[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_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc" + +[[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_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406" + +[[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_gnullvm" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi-term" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe5c30ade05e61656247b2e334a031dfd0cc466fadef865bdcdea8d537951bf1" +dependencies = [ + "winapi", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] diff --git a/JS/wasm/types/jsonnet/Cargo.toml b/JS/wasm/types/jsonnet/Cargo.toml old mode 100644 new mode 100755 index ea90e9942..85865f4ac --- a/JS/wasm/types/jsonnet/Cargo.toml +++ b/JS/wasm/types/jsonnet/Cargo.toml @@ -1,20 +1,25 @@ [package] -name = "arakoo-jsonnet" +name = "arakoo" version = "0.1.0" -license = "ISC" -edition = "2018" -exclude = ["index.node"] +edition = "2021" -[lib] -crate-type = ["cdylib"] -path = "src/lib.rs" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[lib] +crate-type = ["cdylib", "rlib"] + [dependencies] -jsonnet-rs = "0.17" +wasm-bindgen = "0.2.84" +# jsonnet-rs = "0.17" +jrsonnet-evaluator = { version = "0.5.0-pre95"} +jrsonnet-parser = { version = "0.5.0-pre95" } +jrsonnet-stdlib = { version = "0.5.0-pre95" } +jrsonnet-gcmodule = { version = "0.3.6" } +serde = "1.0.195" serde_json = "1.0.111" +[dev-dependencies] +wasm-bindgen-test = "0.3.34" -[dependencies.neon] -version = "0.10" -default-features = false -features = ["napi-6"] +[profile.release] +# Tell `rustc` to optimize for small code size. +opt-level = "s" diff --git a/JS/wasm/types/jsonnet/build.sh b/JS/wasm/types/jsonnet/build.sh new file mode 100755 index 000000000..79935d6a5 --- /dev/null +++ b/JS/wasm/types/jsonnet/build.sh @@ -0,0 +1,122 @@ +#!/bin/bash +# Call this script as `./build.sh ` eg. `./build.sh false` + +set -e + +# Remove older build +if [ "$1" != "false" ]; then + echo "Removing older build..." + # check if pkg folder exists + if [ -d "jsonnet" ]; then + echo "Removing pkg folder..." + rm -rf jsonnet + fi +fi +OUT_FOLDER="jsonnet" +OUT_JSON="${OUT_FOLDER}/package.json" +OUT_TARGET="bundler" +OUT_NPM_NAME="arakoo" +WASM_BUILD_PROFILE="release" + +echo "Using build profile: \"${WASM_BUILD_PROFILE}\"" + +# Check if wasm-pack is installed +if ! command -v wasm-pack &> /dev/null +then + echo "wasm-pack could not be found, installing now..." + curl https://rustwasm.github.io/wasm-pack/installer/init.sh -sSf | sh +fi + +echo "Building query-engine-wasm using $WASM_BUILD_PROFILE profile" +CARGO_PROFILE_RELEASE_OPT_LEVEL="z" wasm-pack build "--$WASM_BUILD_PROFILE" --target $OUT_TARGET --out-name jsonnet_wasm + +mv "pkg/" $OUT_FOLDER + + +WASM_OPT_ARGS=( + "-Os" # execute size-focused optimization passes + "--vacuum" # removes obviously unneeded code + "--duplicate-function-elimination" # removes duplicate functions + "--duplicate-import-elimination" # removes duplicate imports + "--remove-unused-module-elements" # removes unused module elements + "--dae-optimizing" # removes arguments to calls in an lto-like manner + "--remove-unused-names" # removes names from location that are never branched to + "--rse" # removes redundant local.sets + "--gsi" # global struct inference, to optimize constant values + "--gufa-optimizing" # optimize the entire program using type monomorphization + "--strip-dwarf" # removes DWARF debug information + "--strip-producers" # removes the "producers" section + "--strip-target-features" # removes the "target_features" section +) +sleep 1 + +enable_cf_in_bindings() { + # Enable Cloudflare Workers in the generated JS bindings. + # The generated bindings are compatible with: + # - Node.js + # - Cloudflare Workers / Miniflare + + local FILE="$1" # e.g., `query_engine.js` + local BG_FILE="jsonnet_wasm_bg.js" + local OUTPUT_FILE="${OUT_FOLDER}/jsonnet_wasm.js" + + cat < "$OUTPUT_FILE" +import * as imports from "./${BG_FILE}"; + +// switch between both syntax for Node.js and for workers (Cloudflare Workers) +import * as wkmod from "./${BG_FILE%.js}.wasm"; +import * as nodemod from "./${BG_FILE%.js}.wasm"; +if ((typeof process !== 'undefined') && (process.release.name === 'node')) { + imports.__wbg_set_wasm(nodemod); +} else { + const instance = new WebAssembly.Instance(wkmod.default, { "./${BG_FILE}": imports }); + imports.__wbg_set_wasm(instance.exports); +} + +export * from "./${BG_FILE}"; +EOF + + cat < "$OUT_FOLDER/index.js" +import {jsonnet_evaluate_snippet, jsonnet_destroy, jsonnet_make} from "./jsonnet_wasm" + +class Jsonnet { + constructor() { + this.vm = jsonnet_make(); + } + + evaluateSnippet(snippet) { + return jsonnet_evaluate_snippet(this.vm, snippet); + } + + destroy() { + jsonnet_destroy(this.vm); + } +} + +export default Jsonnet; +EOF + + cat < "$OUT_FOLDER/index.d.ts" +declare class Jsonnet { + constructor(); + evaluateSnippet(snippet: string): string; + destroy(): void; +} + +export default Jsonnet; +EOF + +} + +update_package_json() { + local FILE="$1" # e.g., `index.js` + local OUTPUT_FILE="${OUT_FOLDER}/package.json" + echo $OUTPUT_FILE $FILE $OUT_JSON + jq '.module = "'${FILE}'"' "${OUT_JSON}" > temp.json + jq '.types = "'${FILE%.js}.d.ts'"' temp.json > temp2.json + jq '.files = ["'${FILE}'", "'${FILE%.js}.d.ts'"]' temp2.json > "${OUTPUT_FILE}" + rm temp.json temp2.json +} + +enable_cf_in_bindings "jsonnet_wasm_bg.js" +update_package_json "index.js" diff --git a/JS/wasm/types/jsonnet/index.node b/JS/wasm/types/jsonnet/index.node deleted file mode 100755 index e8b213e8b6a297bf3370062db870713a92f42b7c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1200520 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

ceK|hFrS$g`d^3Z16OHA;?MgkkU1l768N0(| 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

_RQ-!JVeGR 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žMTIw@2G_TD}& zs_R<#-)ClkJ#fGQ20=j?aL@r!Nn#RBlZqy7)tEFP>3iA`leTJ18{70=lbVW3TZ|-S za%rWJR$@sD1XI#W8q$Yb(Qtc7LVK~HE$!ttXlRR(Cd85!Qw+cFI>X=*NAR}2&p*$P z&u2JmpR?9}S$plZ*M3`jg|d7uWD)P0D9+WeA7(pyXI_wev3Ew!0LXcS`dRKgIUgYN z=5i)L_R_53-EQ{HtXO&7mKx?_B;Omy_sis7V&>sn={Z?PTu=UTMLzky!thz)HG~C! z#md4hA{)7va~_#;T0U~bPZ=`GIwgL}kkda|dJMVE56P?35WQBBdx^*?@_LT!y?b2t zR*cK(VXY)7-{sgNdGS}Qdt2^*kTr_M?5$elDqNnW zWt}^oxuDp)4fwjk!2b;WX{O;iS;liCGV)VocQJOAoX>v6h`W0Sc%rkcyCjr(@^Qux z?)hmLkUf;lA1`~7dN@cu{Ej{VzjAjoF1S_pckV|HMRpp=!xQ9T^Q^SX zq@NHR7dRT<>xYo zOPQ`4MPFv!|NJ$o^zjh<;Pcn`mezbm1@1^tb@wiItNC-?tcAMU3vbR{6o2!I6t!g+ z{Bw5@KAdoKY{R~ywfKEyTz2>Kn~at{)|-?ycW^6J9t zZg#)Bq^N%E(C1{We}Hoa;d!>ndqY>SjI)z9EZILN`ywwNeb38sud(Lr;70CY>FkoT0Ko|7|9LN7iC>;C+um+#)Rp=A^Jn>Gbn9G3j!tGp<*=WOzR z*gAXwF>X3~fO?fX@C@pGIdT~eBX5t&yQQ{w!hdU>xVx9YGn7;TQ8@pVP_D!O!5Q4qEq4qrca~d#MixV{=n<0>3rz=X%P@dQ(vN zaU=JSya69QTJMoFDvA91X^Y>%N8kYMq@Q_?{mOGvv7Y+7`?s{>FII%sq8(y(jwqOIqY!80jnIJG9n*n6*2~9vdW& zKbN*gIgdcIP&@Xp7Tr99{789C(uoHjSqUztydGps@+;+hl{!A+o`J7lXTv-dvu8VV zS8d3ce`~0m+nLbPvi7-bsB){Y;kq2l%EbW2A4NKPRqG8;GY3JoegH>PqHO-Skx}@Vi<}c~{_v z^_b{m=2dAUmd{bKHQ0~3JP%zOYv5Z6J-&kPkE2(tcYK?8e_iO@v-FQ^+1oea!!(Dr zad;%_67V3HyK>!|o_T|*v;@0`4f?Wa`XnOyd{$$mcq%~|wuj`8yy`(C&9J0}V6 z#g=>j8|=Zn)`4vv@)1BE!aQf;^4E}WE;}tU+52__?PPI0>;9abk+V@1_%uPU#XU8? z_ie>WwFUpy=j?sM9zJjHn?v-MwfD`K*!%V|d?U!2_3#;WOAf~Oy6vGZFPJy-^}n6B zrBmeXuE=?N?*A6w;-|>lHB;s7{{r8B|Hg&ubY|qdosP&i_DEeo-roFMy~swwi;F)42W+V_CVcV$O(;7ZM&)XaZ(zxgWj7}9<>=I;6V3!d+t zdf`Vsr|KX6{i#@d_TT-rokiu`4IusW>zUO>PvNhB2JP{Um3cu~i%#73!am^Rnz}vIucH5 zbdmlR{ZhH{rr7)M4%yiFPXF8X&x%bi<*?}C``^0%wu8J(-hUfO2gzK*0DA@{|0mE} z?yDWQY=U3t@ATXU6K{D4zUA$RO<&8s1Df$_9DL*MA?{(@v{mk)+_W*URmKLH+^cXz z>|y#(H}?#POt0A(SSIIrLvt8;L7~sRzj*8Tx2;k}KfFCb`ZKNpL`7}3jx&qml$DD}tH=B@+7mdLIF@JNLm-&_Pe(LXUoBsnDkvfuch>XNu zwurYV5oafBU4atbuV)}4MMpkdk zwPXal0$<>HL7`s_oyZ8^pu;wX$0DOqtdT^Lk=?IfSm!>+J=kMT@oS6^w&$^x>EAPh zp>wXej1k-qy3_L>G;i5$mBF1pA*<|343Lk3R~=h-leXkv#?O>ti^%y4ypyx4uPw0h zxlGO{hiSuf^+Lz@>GJ;(EC1JGBZhn<+w&_n4f68bYtG!fwcN`hHtE7A9(rsuvK{8x zevxs;Y%(sn2O0kd{idHt6Y z(yv9f@7y*c{Z91W`Z7=YDrDQw*z4Ml+_`lZdT-VJ>$mPiwi*8&#gCOG+vUjic4VRs zeu&;0q`VTYM@H^JMm|Hj2OmsGKZuMxLi$f0Oh~^Q87ZfZufPB9t*?`xmp0}jBk>K} z$7Q1&+1P|^oaEc4jrq&ue3js@1%LeAR^j<|jBj2ez4tKxdIH{LJ(zjRS=k8PLE@Z( zufo&32d{gX`H>-w+}+N-GQvX{6Wk3CUxJ4(!NVuvp$QM~p)68{H%NO39yY~! z55BZ77ascl-5l2s@#Fd-!O{<}8nJsE<9!Dn$}RoC9lhuWkHy2a@Nk8Vhf*d93lA5< zL(xxnKWL`k4G*Oc+xUc;j_vc2$4^Qwdurbf# zq2O!q$KP!Y$z|+#yNZq2uKx9p(ypeI%hSl?n+rd%`#0nAh#$1P;Q#CLn2WzR#vMh- zBm1(YKMTp@?Njhm`h+~%H1fzfbxR(tHvRvwJdX43tSvBO691%+SM0O9{|xhg{=)j~ z@o}D<=@PwZXz}N*8)%V_%a!Wq6mi|4K7+eS}eS^%qmNW0`W}eK9TDRwh`!}~7ygB8T zL(B{Qk#X(8to~5`NJ~#7>bIT6$Q^vf*AnjND0SnA|6Kj5M&HWp=i}wRB zOBi`#Zil^^AEmG5eeBIDX@LEO+YS9>7U^Y^{`Ji7+#OZ;+}+S1N6li3O~yS;da2+d zSM+Hi`eNuQS5d5ry?&7RSA0C~P2Z04$5{72%39e_`J2g{>0-TuJUq-<4feCdWimf1 zdY`^LxSe?w8Q+TzVlH7~PWgcFvBVcVMx5*5p%sR&QYTsP?0vjD_uRA55P1B|Ud|a> zYZRgLDso=ZiSMnI%%dEsTk7JRI^X5ns;{2GFMzipFk4mLNL+Gu-tKEv=2&BE3h~Jw zYt7%uyz55%axCP`$@blxHDKOyJM$rJ=>5(27&q_V!FnWRV(q5u;0+6dk8tkj`}jTo z8S`3gM&>U!FfSqfzk@Y0&f8mS!rAa``Ipb^mGe%S>ObE{fi>xVHI_8P9AKX-izvp6a0Ee3WoDi!6Ml#e&_3daCj;n!z@+;7ol=$Ji&gBx;rBb3 zvkuv^qT@uybDIiTe>N?>zHW3JIwJlBoy;%sPrzV&mD!TT2|_X*B9ADbs~t7U&tWpOn7Imwrw z{2h8OGTJ+_AvEvh&j#<%7MKWjHNzSi0q+9V=3!y?v|3aa*Xeh%J&rIlQQflPrGj|{pbp* zD|i@7U2USSHc?l3)Yay2UGeQM>S`tY-qYo}WVhkEej|0&kIt4dt{AVYP1My|>T2aj zHjeJ$yjR4!g6EU#>S|kEndJW@JhsR6(wTn@FRx>bY979j-1Q-zt|BjCo|ePY{mA%% z2t1WKl=^e4p`ZKU0p}2wa8Jbr>vD4W=-($~QSPvq+;821j-RUE`U?Ay!~IqzI$Zj# z2e|90CRO^asqg>JF!3YfG@jf=xx^;f@vE`DMesP}b5J#;;B)E#Ye{QHIotFmcaSnp zKE&SLhD#rMEHi5D$=%fb8e}XJ8Ps3qT^8$#=wLVP?IGghoZ_1wU~hc1f-`E?c#yH!1fHQc1S*)5n#Af}ShxiNeRg~Ib z5bygQJG0lfn7swWFJZY4;*;cC+VKwh;M;ZKsX)~3#{$?Xs^2w3_AF!>g=ezrdAIhpZ3WdOK&s4p0W44}C>H?6w+A?1 z5lea3a@Om5_`#iUFG-m-XH@dA5jEie?TvMtA53>AuA4hub92-)oHu_tb2<6QQMX=B znVu0njr|$ekUbL4i{vYupP9(pU!qDLP2=5Z_LRsxnBPU)nG)ZJz-wI>5W<%w9QLo3{wRTZVe5aN~wi z1;66iXNt|jSsZQc`$&M_0+$;JvL^|=%@cS(%TmD`SaUgOwEgB_V%u-Z<8QEVZrC`u z?2qg(D5MS~PPwG^&mWA{9C9lYOjW0qQe2wS%p{54L_pd%-1oz@w|dctc6Ur%@q;rA21 zf$;kY-$3{l!Z#DXh49UUKScNggg-?11B5?D_#=crM))IyZzue5!nYItIN>`9-$D3J z!gmnXRggM{}I{yO2kguhOBAK`Bj-beVGg!dEv7UBJbzeV^vgdZpT9m0q_+JS>P5564KTY^q!p{(Xmhdx#{}18k z2>&0#&k;UE_}>U0BK&W1#~rpkxfvw!`C`1xA-gG}~)t^D=at#XcL z58pOETKet=^+KtB0OF%DsEP!Tx(Rkkj#43cB+_ z=!m=Mn>$tTS@xyWy>so$ZggM(9WX}U^7f@=kEN(I&W_+`2mL1g+Wtykb{bv0fxE)g z3rDz@XXn*#aVOT>PW(b_chz5wA6(IkkHLf0&#R+vmfJ1ibb!iHBuj1%RZL+O@U==;KK>VNw1+}H!k1|+y`R! z`M&(6gV~&4Fx;$e8{fK`^ZQ37?ydOLKg~Y3!mkyMhST{aeHv+__-Ni%%<-M`4-4EGG03Ic~?FC zP+F(jIE00PCD+E+K8V{?gPNzZD?Gwh9G=4 z;q#v;oA7q>xL`7_0j}78Z%5#@QlT`pE<8QJ{@>&9qJ#X0?JGrkVo$xX7yAnS^^NZ} z8DJhjdt^*`>X?bRY91l?UR2GQKXu{uqF_D}On*H-)gqHuBz3SpRwQnCu*R)?Nll zSLW4zOdbl674exZ<4>`x&id`b-xKoq)_)iHl$%*I-=2Ldj zuD`14*_&_4S>1Qf>^*mUry5F-6V-G~=h$0k z_DZ{X3q2I`=QDd(tC1_-;hh1zgMNp8;PfbA+4K13TW8MmYyXCg{x85n|2j`_C+G)( zh5lFs`d9cCPX7szqh3WSK3;iQJ!JVKl2NwDr5$Lz`ElmGaV4?q#(8_PT{eH-?*kV4ck={yg8ph?p}!;o{Sv-~>8}J9`o%oKouJPL7W%9R^qG7M z(=PxP`nf#8ouJPE7W%{p^fUMtrcVVH`UIZfPSBgcLT^N%9~(YPA2Uw>4)4I7pdTeH z^luJFX#Y0)zW_`6uk!?Vf_@NK=#NF9e}!-1{Qm)1=zq%-+zI+#V4*)6f&M@F7N-9d zu+aaEC%6;zoxnnWI0F44zJ=-k16b&P%oE%R`c`0}e>wvF_xTp4e->EipW+Gb1brj0 z&_5o5em~#B^xp#(`fu|DcY?keSm=Wh=)cCdF#TR&p?`!YxD)i{z(T(x0{wQrh3UTv zEc9OzTKR?BKd{hmi9r8ZzJ=-k8Cd8)!xP*I`pv*Xe@6uR+xZrz|1_}Be}X5t6ZE$M z3;oRz=-LYj}jL8H~$o&{oCmO0xapj&J)}T`axi!KNf-h6~2Y@{|8{9 z|1D2&C+K^Dh5l#+`v2rxnEqG5LjN1EiE64xUU;*vZ^ifjJ`;>sD1>x;w{!IrETw+}?^GZ-e!* zv+IXm#%T9(-mHQ$w6Qkz!vpH*vpYXA@)yQzb&lIdWG-LsPVvFRG#mfcTV+mb5Wj{N z|Dbu+kvTFz{@=3r>b1_Y6;r1BSih6;@a^zHo*&_PA>S|WC0<27#Lqo=dp}G**6{3O zy!i>9Qg_$Ndw!xn+er5Y;F~4Pyt&xZ|H8Vuj1d=;&QxW-1)Bd!nRCDwp9ho6{Nxm6 z&K@sw#uR0C6K}Z8;8|rhc}khHcuJY0d8YFVm)QgCmGGo8zj^AyynW-;*>oJx3U5#G zPSS}XEa?mqHYDD0-u{{J+x#Y{^Q$S+3EzYA^_}YIH>e-E7i6y`OEVk9@3ZiH1UWm+ zHykoI4_Mzq_pyka&9=!|2Wby**Mr>WE^^i44^!cBs*T5= zwbDwp>PC1R=H*+7XL%{-Ql;%~nxfu6L_A^MfoJjVqdbLol7{f^R-POAg?aZ0;Pn!o z#Jd#{c$e``Wc};q{dv4Xm)m)DBr!6t5~00VKD~WL(m9_`Pe$O=U(Q64o>FF`reTA705kh0Fn~E;VWdUx(&depBK6j_*%RgVW3RC-_a#pLJyw z#s)wB{m|S<4!EBNuHt#2Huv8*y)z*udS zdS`+UR@r-INx#{ZH8d;KZ{D>ecqF}~=(?%PVD-uQu$~ zd)!@jdS?fZ`|&k39bW0|pd*L-JEz0b>A`I9W=)5;H9fcrycyHsWn=_*f)_O%UPVUm z0C<0;+*6j%AtDX})4jyMer;g7*H|UsOQuN=`;kC{UW`p-bhx^v4DHu zro$`G4rYV5YdSpdyx=PE?w<~?c3yBjc%PjPZ>c}H6TDAOhga(l9suuS)8VD%1do7s z^K^J^Il<%Ly>B|alKDYLprq)U>F|c<2eZMuY&yK+1;JI|QuhllRU2Cs8EJapG8@QzG}hwfSr zUdwcN=&qgMJvAL3y6XUVwbS9DyN-bO*mQX4uH)cUOoxZ=ax5+>`pR^8=&o$=woQkJ z?pg)j=cdC$cdZ9+!*qD)uASh0Vmdr@*8%WuoemG(bp$;24B6%MeECCn9S5&)Iy`ij zV@XNT71QCNyRyN{pAHY*wFG059>%mK#4iDY66TF1!@X%ccz;jK9hweH8-rEV& z@DJT}9K50F@X%e30(`rGH+f9dbvyQ7Vd3ecJjLddvA-&I9sSmSpV=$^Q6FbaQYYj3 zRjkcfdwEyYfA{ux&Kq0(SmL>rJ4fvClo&_b|1c?@51x&ul6Wp;m-21GF8wyJ*rj{M zZ4#c8&c`C~Wh;1U9cN^Cp5?D`^w=*Z@#V&|e7SLo{PJxgzaIvc{Jv*A?wff^ zesAFUA%5Zfz7O~&2~W!Jk_h=-2cE(wj>IvMU+S@Fay?r9Vq|YOchF6d-(|!z6Zw+y zHg}g=_XUZJ$gK65-B;;`~QmuG-qIPYn|SrQKC9XXVF1x1>X#^3)vhdT#tb7`sU zZ?Mm$724*~Ho_~l;}avZX&2$Sr7YyVhH<;hr+IlFnomnU$)1y2OQanzpO#>?x6t16 zKYwUt{mAX@);-3P?Sf*??u^efR>(Z#U!KG+SXKDkp?FnkG@jXeDe+7}GnD1OH29j( zaHrT0pcw|vvCvq$9EKUkvE&&5)tqCCw3J5M9MJfK37{AnzH;?1)n0_ z&ryfZ@q7*Z$@=P(d~2f)>rTD0Yyps^Tdgu7q$P>H^*WKgDPPp#& z^WHu;A^SvZd2dps?~*b$W!1eaG-mC1SMc~k?0<`HVorES-4z$I;o8j*FVdoeM_%1k z^zgZOU8*F}j@NZ(Rbue?&Aae1dk)W-CzynnF*CTncW2T4)8XYO1=s&{XVGUT<88ji zo^HjRRhI^jWbG>Y zQZ`wxjyV?xS1YS9TTsWHMg<`RN}2+7V zBQd2#@5D`N;}>Wj!;|q=dnLZ6tWaOnbtmn2=dX7ay>>2Mmzs=6`(5>$T}6G<;n98_ z|Fx@#OKZ;Qzm;MiG<#It^2E281>nB14#x+GX%e`fDJ@UWTZ?)`J&y) z+1y+s;U#&ulXI5|oCViL!am;ZOW?j3Wwc$hgl85{_6J`xgY!*3o;bWbU3WQWcIK>p zQNKsO=pK*vkHov5xDLqqTqE9!_Xy{w;)%E1h$r6oeGd~~3Gpo+k9P<0Ju)8eBA)tk zeO|mLiFdV8_ybwnI*uKjYs6V`AID~jwelQG+_C#O<74G{p)JpxJGSzi$5U)1_-5^+ zW&d`?Dxdh=b~pUUEw-}RaQ2;Uc!qa&pDF(^9!H(!v5G1@n2=a_dI`UI?!tpkw>rq2 z`)T|jp7uqlga0EQ6K|NuCB*wMaV{Q@cNg(KLY%B4Sn>Xkd2Hnw-+RPs@tJrR+VUJn zym{ks%bFg1JCDbAMBwpl!sA`CN8HIC0`Z?7Rey%F&f)dO747QH4b<^={Eybt?#kvC zp5D#Ac{y{KjqC>4GcEUP^rh~f{b%-B%QwN1??=Fw@3Q~fTDwJV2Eln~r(x~2-p(B? zY7X}%eRiwsM=nx~XU{7_1H1h0_$j?czlYr0w* zPV;Xq%kaXpWvLr4%Ms3YgyWrDmgBav^m*hCRnEk-@A+Z!>4vZMMecpM$MDqy&u{0> z%C;H!t)ZUeu5Noh2`|ERRD(a$7j5PA5e}F0Kr+1Z{{7|rk*%Dc887F~Dav`kR?ZsE z#>)Alh~-0;r!60Gb=u2Ec%ppxcL>D){pH(fE8i6tQ9h~TuuRs7UcONIko{@PM|-uG z?=bPn`3w8K+~NDkBk{0?@$htMlrY~B=9z=MmvQDhETey`>|bu<*$H4po?oV(tiGf$ zgZ^cvbvFaPyerSXlY8Wo8!~t|=9K%H9rbU2+R2=Yi~Uql=)!1pVGO>-&eeqj@MJr> z8hQ4Y>s3(N zkL))%2F`ZQ3a^A`Z;=n{{50`>{r4;Dui%_^HvaA9%uKQ^o(@OZV|ARlsXDHLA0o}| z+&Amv-15wm+v`8ZUYb>xeG?ifYf3|ujcxjko*XC5vN_1~-@%i78&3v- zFNP<(ZDpE@CpGBdNIbdUMt?CpDNa0>C(?)5c~VR`%#&5zi#i~>|L@?*A9Byi$@j*2 zvU3_axz1K5;mPU?$ce%iP9&Zzwb4(<6DhmMhn#l{>*GTDlrRtEzO@eX@8iLDZ9MqY zMe+c9_MEnIAs)!wb|fDB3H=yuYkvz5R?_c;`jGdbQ{RhjeGfYJI&|%|^`oB^pDvD& z|Lk#{BKDWnCm<_p#&t>_I>cvh@`5(;%!{yz!I{z~c1*U3SN?4_F?q06REW{zoJJimNspW?UQNI1EQ{og+3K=K*iKgI7m%-PIiZbjy6 z8u=xVzU0XyPu5*N%;D@OzFqhJzQT{2%RPt}hKE5i%Z-ul!YyMf4Tx069bGc#pmwS*! z{-xd3+vGpo?!)qb2>IVlyAR2~d7k{QqpW%3<-KvdydwYM^2)oFQs3kA)rCB7!2Uz_ ztu~)O-UjxcBmZapHrVBVZdi^j+13rS!{HK<>yZ4Xgx^^>A^G=&-&yja8%)A>{{+87 zr{E{2LLZ(J#J5Ggm1c2P@GID!Kj}-J@KqrCSp1dbO`^B^H?e5@vLLn~zn)-zHFix&(atZ$?#p@*KS1L? zUgVwTt{3qGGuhY6?o07Ugr5iO=?OnCh3LB){HxsBey)FtFOB2kFYS$x^t6vm$--?J}}@9c}HixYoRKX{?xp;Pq@p?cUI z?cMVlb&-uPrj@pO&{5py#JfoKuwaUMIQ9Iw^^kE9_3(Q~gnDqPr&nD>dECv9{Cs1< z6Q|a^`=wJSqHVIZHiB&N?n1J4>XHk~*1t_E(;vohr;@FwBb7<~9$iG4)~tE-=ezy& z_||GamAmF_nI8K6123f1FRzZ*FGZ@Sf19FAWs}PEgNrEBHYtgC0}X)p zIr7zq?_wYAIl1JJ5cMP5QK3iTbUL3wE zh(AWlzifv?J!j<~-6VPa)60_A(0s7iAcZ@}_HHM?ODU)LFOqp#$?xR+JoIHbi*>&3 zAU=+SzS%18S^6(ozCcqN{uv!Hd9RuHjk+4%3$Ie(Ny$5JbsTbpd@)HLn&G274IT19 zbvJSSiM-0Y$$QMku60p=3Cyj`V7}VJ*ODN8c&_5< z;CU@iC(lBj_?wGb$yk6Q6L<@Po_VwKz5V33~p-daR@a_-ZTtuNk08Q;(R(T&`z z<+9|1`JW=eZ86UEfwgU%e`)YOEbH`56{;;x?g?SuXvHt(nTg*knd1)Ml^Mppr)JFZ z`3esz^o~UC#w~eN8@VHq;*c=|bHk^tZ$5J(e&+p`%REy!Zn-OX^s}0IFE{gFv6Lf@ z@|e_F=>FjTuZ8>+9b2HD6ZzI{hel3(M+KJ}+kYT_sh%S*%U?Bvm(wOGZ$;WJGnfH< zCExypt-c!hma)vhg2LzOSWlF-ycfPS&>?HHHO$ot&IWwf$vSQyYYy8J)SGQdtUX2- zJ}P$H9jvdu4UOE(u{x&k(Lb?HAny+|zL&eMYaABOxSLp6_hk+ws>|hG>=NgSUt+sg zWEI8)hiFS-+*GUlq3`Kt;ps1uKWv_#U$uE`?_Vijm{$Cdt@fyA!r^oiKZDLIM>fnF zd3JT2Iy&~MTK?DXur@>9y5IRx$L-GKlg0Gg1F40lJKn}uo>ey+M`R4Q5}&JwmOFpZ z2j8B=?*AF%pFaU_ScUJs!-tm5RwYTR9qPml8rz58*>{u9b7^Cy3X?;u^>QEH zuFzeHZS+sd;|^lqa*sfM@Nis7(Qom?%y=Z2oTY+)T_AhbL$afbSudMMnZeb^Qpfwa zDCy&xLVa9xz1$^DAJ>)T!#6*9`fuWT7v+zXPCMV0N;~-nrFDe(e8flohV;th3+B(d z>zaP_hv1X1AvNj;^VHWN=@BuaBi?<`*2u3X$QlL$M(t? z%HVgYPkiM0x`p13KOxWH4}dQ^w3|5JCawQ%TYJ&tAsenPf~~#o@VR!W*xFfP{3&eh z6_W2=XZ=9RILqqevSytfXO*M}KSe$Kq;Jl|n8}CS%DAcP|3bOnXuEK^6C#xR)iC}P z<))4&`Y>!B^rqN6=<;1>_R7AU@P3_Re5*qb>!%&TdiQ8Lv zzJojQYdG!?k2}h(y+7eNumkEl#>Tod_rQnzC|bS|=>t9Ea&2&bJ8@il);FTqUy?_= zJ!;hpciZo#pUS2G93bt!uNw8DQwDBP_cJaIE_(nuu-UK?Y4#ZPWBBtuh7Vt%SqP2D z`nBVAdFG4kSE3!)#H_ILlq>Ov>|fgAH52x)*u9d^U*X45WdCC6c9Q>9D#@~&(W6D( ze+zwah+h0+;s!lKweu$k8Bqu*zAO9BMno@1AHo;W-Mces?+HTgX-s z-!@LR)-If8s=G% zje|8B|EQ@Y*9`0$=La%4umIiuJpMe##+q{9M2;53Sp2d0l_=k}b@%(g0=LXXAgA8o zZqk-LK2~~L0>J@WUg}22o;fdm_&N6?c_UcooI6tU zJpPBB(GAxMKbc#3q zcZsaJ8uBIX=g;~(wPYn6Z&+65*<|I8v?*mJ?SC5Iv8m&8{ZHe&W7d@U8+u20d3H=I z`pl{W?yLy6YZ=dm^@NOTrClF~E^N1FyfU`;UgW^Tc`D_|{G|m)+hFF6C*CL6;3ON& zI_(6`Y#Yp;#)V;NRNd<2LyBHuyCg{JIT3WrP20gWtBn@7Q3+DoakRdWp8du{Jot1}E9z znKpQ~4W4U*vu*Hv8=Pl@7u(=VZSWN~_$nLxZX3MH2EW$^ueHH9+TbD^{6QQ1Q5*aT z8@%2If64}LvcaFR!Jo6i57^)@+2EZv_$xN}AshUN4Sv)Hf5QepW`n-ihXhq)`yG(Z)s;~)jO{uYcWlY%_s+CF4 zR!>@wSM_+(hP`UoV|II0X<`O&ZDM|(S9K?vL&>T?v0x-wRV8IqC##kuPZ@sTlU?n} zsyta&B^%Ajx-Hr0NY;bNMptsaQlrVb(`(dub(hy@@-m?A_v#_9G2+$TDMoFI?nyBk zQwo&YE_so^F?Q!?6q+4Q99Nl5PBr9kwPXG{b(_;@brRz^=GeXz!{c!+RbIbR%k*la zkeQ5&`8HhU5==kE>95Z<4%L z8AgSn8ktaQbec?c4LfyLqH1%Q%}J`$)xjiorCSdssdoM+s!sQ9O4Y^6$Cg;#!Rt7) zHc1V~>9Qm>8po2k>h#E)evjakCi?pmRcoTa9f=gLJ5l!~8oi0@h$TsvBpWSBx;@Eg zOM-zz){Bv(vs{q;-D7-O!AgF8Mq8Zfj`DNXY9y+IqO`?m&T)0bkfmC!+v8NHHu>1Y zM6GIb3)t!224$>}jK+Ff<5YE=ysnGmuCM+$Jrrk*kaN>0F>Q&SFJFs{fU2cvwJts4 zQH`!4t~aZmq5D0mc18~w8TIJ$M59y+7_Ps`GCF2ts_T@x&NJvxn>{TK)o1uiovOm& z?_#;Zaj(>i$ivb=xl2{JbdAfXa@peB_a3UYm9$z7vm!=y7}dc2j@7_T&OliV^=6jD za1E6?5Ur}C0>E8S>jtA$U5svtF`8oRam_K()Q6S&u&dNix8*Cvtw@#_*l}_U-#T5( zHiTvpDs#9x9ID(=NcB2&ufyne*m36=GgTG*A;)zt_@ldAMzhN|!3`-JIQ`BvutuGH zsCMZ_mr-jgAvnlofw@6ly*dP6r?;tfcZJ}qT_0A3w7v7|<_pHX{=2$kqzsg~((q8` zb|a%PMpZlf)iJ8gp@DlHx;t8RJI$tOHRLqe3Mn~=Q7tZcUlQf-fm2al;%STWgEJWA zuZ&h5(Yhw;W5m>@@kUL&Zj3it z7I7O*8r|xzs96JD4 zximXqT3seztD|&Vlu;W+jcixQ$Hd=1G_Ld8(1P1EBhI_bPN%A|bnAezbks@h`gvXE z^aD3Kt+q7Asc@?5Y6M$dx7Es@C4(Q;|n8n)!MW1t%F#p4%H^<*yhhDsw zcg@Cq*1LT-7;DsOrB=5X16&5`SSMP?k01^?@=+a5f16A7I{l33|+NMv^$5m;@fJ5~do0V#J_yGGIzEGYrRiRRao?eG4Mn+VZ z;U9L85r3P5#yu`yzjC2xpfvQzyVQVTcD+k=ICST`)S$zxeU}<>+(vij)YX7abNDJc zQ$2W<8giNKSE=?W-FlT8h%zg$QZ3QC{3_KOZT2r$jWN1+x$25Bo0r34-MCz}YqNB@ zs&ebmWvbO}b}v&EvAS~^TEVPcrpn@U^)l5MXAZMCX6nH!Rjp~ZU#Xf*G`nh!*KJp- zo_MqBO4T1v<#r_K$}3g*3_W^CT%p=#@VeHcyRJ|j9<%NW)$JkMO^LeZ3N@Ul ztFKViN#@Aqbk@c60?B&la@Ck@c3iGXyt?gjRqHjYE?2`|U2(apN-+nPs(}>Uw^WtS zG+UOcs+n{$Lo;>LQdOC1mMv8^sk|6T)g?<+b(-08nW{^p#;a%P?#oo$EVJ=4)j5m& zG|kqvm#OaA=IEuWZ#Ip$CtZ(Rsz%ezu1i%}2Gup3p*t>BRddXmOI7WhZA#V5)zz1( z_POTpC8}#KlGl={hb~dWnR@UNRqZo7F5$K+X##Coy8RN>pJi5G!cGAw2eWn6C8}bc zIaHvk=Si>H;@5)(s@HF}7pMV0DE&FQwLq24H!BNN<$NL^ov+IaRLugje~Bs&=)NVY zDPXoNQLO>#EQfM+(-KvgXO=BdHF=%z>F`Xiv{f)$cUhXVL_`BdMw)%2Sf2nxitR)5wz9m#V6@ zpKG?dwON^_`VoHKyVC|!=@Nawm9e^Yrs|BhUTi41n*YVDulADyepJpDvInCx$zqpG}1 zo9C!*ueWiI8uH%MK1a2scuMD}o|M3FhANqfJ))X2Jk@hmM@C=-oD6i5m5;a{hpus| zKG8MwRU=O0k4_~rj1I2MQQg>zIjYK`TXR&6qmB1{PO~o;Rpct2uew}*T9Qk5}GfNrC2oYDxB#@Fv;Y6HvX$p3Z<8N%nSNlzTI3bK#k%ETF1W ze862Pp7wwmO7T?9S7kGGO|Gh#ncuQNwa&a6cyy+}Wg%+F-@ib$r!EB^N%fD;M;mG2 z&b0id`KoD_r<$VA@{BA{qqEGi1*&?s?wzlCX6IMss^;{x&IM{H-7`2}m1KC^=d0Qb zPuYBGMpwYnjEun?HE6+=b3D}x&`zHI`Ko1(uAnS)3To%8Aq%dWtA~jpb9HT=>d5qW z&R2t(*8#U=>46-h)bHzEsOtQl!GLP@djfMPq&I~r~#Wo zU2-UXqP@*`PF(Ry-lerbQyh+ulV4nLtZ!0R7mVj25}nuqY3Jm1Q?VY1R~z_%Y0@1} z$6870dK@i|z67*|uPZ^dMtOltqIHEB(`h9Ms>Xub-2RpX8J1QhsP43k6>y11w69?@YTDWUGuLna=!D#InF zR~ijnDt1@7VDNoru`YLD8@c#a;t;q@Os?>^5ku8lrt=_1kD-Q*@V7KYT^HyIhq~HR z#sF7i6W=F8^s#-5j2z3B^I!DnhkS!}(#u$*#=!j-0%8lmWoyo*g!*33X0h;FEKaqFtqAUdP@F9eRbiM6k{OJ^v1Y@Bn;nLW{B{~; zk_F-E2HkIZBlyZKZjyQum4sVJbj{vVr4G#$DrlnQe^|Ols;rL8>zJfK*6nm_JkT zbY4gniS;Ilv{<(rjA)vrc&=JQl}i;$x&4-nZxa27O=90*_820TNG)Xmy-HLccs^z2 z6&WC})Nid}4jUp5q|i2wGj)B88JFG~7<8#^2wk@kXlD+@D5R%#cv@Ym%fW03YOX+r zGmP?>{c)0~P#&k_!-7!W+O51{g)|ywjYEbcaIVL2l{lCeES1P82O|Wa626g;L0`d? z;h>W#Ls~_dBcs{L&}OR)uLPmaDc_o$us~?@)drFq2J*da-nv0 zMU*OW7W6T?BSTTD#YqKNadX02%uLMAtx^RgGJP3Jvrwr*v)52}NtJI7r+J~g#H}kF zb|MbdV&swM8k#3b^f)rAnb5RKQtI-JCNk?MY>7&%L*+)5xG?qHVk%e1nyA^%*jp`? zZqivancnUs)fev?K>a3|!%37{D6E?NSKSXRE4cwFH>*akS5-NWdZwn)qla7LtbUM8Zl>3}z6Zlt#_=RBIr8`{e zJ`5|(*s7Y>49+24C(j_$<2lPx(QuMPlYa}IOLoH){N`Y>Gk^T zP&-3|mK&mvYAk(JXA~>`;8DhEsj&@GRgKJOG7;z8&@2^(@P>E@$JKyC79WNkv{`7T z(;)~r#Pkv!qCc8|Lut(q=@x7S^j@vho=NRto6*w^89uNp9ASMu^EORxE2N*G1_kb( z=;M-Ap~x#ayiMkti;*KMUo&oHA{qUTcx*$VTJO@wr@UO0vdKvgRPOQsR=d)|-=(ov z7%tMOG_Vi43=^=I`D}}R&T3|Y;184a6%G@zZgF%QNPf9X=t4Ltw@PPlpIK*hb%3=- zLHOIuM#EL(pd*r`9Ue+u?Z_CXOI7|{*M5TihB+ejSR498o~A1M4#!emy%_P(eG3_F>VbUK?9zStYB);w z0LSPqV68iVV|5#FoNfV**G<4EK46co0Z!Caz{$D-*sIHcXX+B*R6Vj#HP6yR3)S#! zJ+M$!W@HR4QoR|z!9}WWj&ER*8kytoU!;cTX0$9)t(m^&MXJo_Yg(jwe7;6-vV3)m z)M%Ekc9H7J_SGy>HS>Jc;Lr0_F|*?LRW4FhIlhWTYB0xFzDTvr_mwSDl?!~Oi&Xyt zU&$iX9Po|itI}NGNWSXH^$q8%#ytN}zUs=OD-83l8-8I%AzHl#ODs` zz7c*Vf)@!F1D*F>hO5K{M%zRj>9l#I&Tv^RX&JM1mI~+&%XV5FRU1XS?}wx!$~DZ< z<)~6fNNWzZIAeMAtH>W+pz5(^?)#jL!2C^-AF11(MN+rbR^8T8CoWx0okZzM;22#F ztaT}HtRAI);`A_e6|V<@6LdeYM>AZdZo7e5E(P{#W)Y~{R^U|K3_MFW0yDK|)h#tf z-BM%JEj32nQe)IDT&Hf~I(0ipJ@|ac8g<*BFLjH=QMbMMQn$z*b=#dUb=#FMb=#RQ zb&CvAx9#~-w@4y&+e*#@KIDbHs&pm#Ai4*m#NRb(`hPa>jb9mZ$;dg_-w^Gl6TF|6Qy)6ZGgJ zCZkYTs>);1oSHmoOg6T7buTPW(KM~LnI0Nd-%L%ll%;wq7ptCBlgepM^HeNR-Dw^g zTlp+c=@L~k+pJuox@MbHT2;E1W|rPY%zeyH(X{56G`7;YX*9N`xfxVWRi?L%2AS!h z;q_&jG_!u6*}FuQX6cS4sw&Gb)23PIa3)_pqXnvIUO``h>YE2Ehvs>hfi3kHG!>|3 zKQG$-p2h;z<1eUYHa3SBRXLuj0@avPPzFhkkJ;GL`M&BUs&2knzC^Xm_cH_AJ0Hdm z%@+|LonO#_pf7;3b%AGivFch-z?5uBfEN`3PxoR~8z^XBth(hzf56kYSd9bv< zK%{k{Mq7<8B(Cy&52~gnzW@>M%5UW)N~n#7*7fr(InV*dzy;^S?_U33iTIifv&_kig4A#*?hC~;CuBF)vE(enth;3N zaG$1s+9vW9qPobo({V&0;kO0t=RWs}bv6+F3k) z$s8>Hm*`3+&g7kpOPA^m6XR0WoeE5So!hJPqcRGa*m6;_VoZyzY4qF`hEIy)1?)6D z{YIQMj;3#Y(D9(591mK0glLtCdF$avnzS17i!BG2v5PRb)$f=5t>LE-oeo{wK zH_7e<664PbZ)QRx93C_BdJS(03fAH2i)Q#}cGE{Xy0>Ms8y?N3wYwRUYtBkB4zF}G4rgrI!kz`U8jLY3+^SCdT4UK{BIG?R zpu}1OZw{CK?elLBnq_OV{#`?`>ot7CUmQ2eXm3*ji%9}Pi5G`8+=n_hzJXM;- z8c%JEvnNWI#W>5N^Lf)8&7f;ET1ZP{06SxJUksZBT=W|KF|NUwr~%pXVzEme^0#%j zC2!+>$u@Nzg`=!9tofy4np34ArUH4(F*1s4j7kn2%Fr8|f@yu|f_JejF1xF?X3(lD4QbN6pR0;xZXMokL)I$|P4(9r0ebaLV;!V|gF-4~@Z)M) zC{s&ytgA4El*d|(z{n~~9#u}w;z+YomMvH=<~_S;SopvO>t=C;w#nj1l)N8`^44J& zMVnYJmC+{lOht@|J>FwkXk|KW09toiO}=V!`@8a0ZLGf}Uv(6D0FRe3I)h3&zxh%oxuKB9e zYqqm!;?=Dzmw0v00@da9vS`B2IN;_Kp&dyvdvjIeOx@4I4dz9F#TT<{0gErXgXNf1 zZxf3nX_|$Pjx=2rPjq}xr1rIR-$YH6)JCvh()4lC1@uZuh0oHzXFN;1IdWa>Y zj5HQ~x-GajV~{%OnCq%q$m(wfcI@C>8cuVj*d(2qfsuSQl4)X`mif{!OKW^yKKgVM zOE11ac^;Q?m~{&U!qUa(rqN+GFijxV{^oOmibJ|RuZMlS?4N>nu;1p@bu=W zni*!fp9R--Z7lbB%+V}*o{Y+QsyxvgoyUrATJJp7%%}yfCh88q8em%v(w*dOCT~ds z4qgR>^eTj5u16e>fCqcY0i3Yx{QYNO3YKRe(2jq_A* zjIPRNUEZw7W+RGjhfg}KB%8%xfot8CY`TS)9d5I4o*HzEgtAiKNj$L`9hAd@YvR(V z?Jl;8W~+fXvnE?MtW}facs-KEnwB2OV&{R0EOeov{Aw^EfV@}E5V$AN9HvxB8Xk-$ zml&hjsxn1W5tTCwdZ>t*-r9L;c&1rBPgSStas)fIpq#8*aL;Vbk=3g7f@+`YNJk}9 zWO$H~x{Ltps9hOwv_E56i(ggGVU~wQ+VU*bF()wKgY$5)WUi;5)aK^5Wy5)1bj>wk zYwui74;XXvYkjIF(^pCGyrWSUWyAH*2G?2tLeYcCUk! zha8p_>kRZUnddaAlU8Rzd6XJ-^0CCST`OFH4%u?2TcX(BgoQX>i&ozfd5(y+seIX& z#u^3{%~mh$=@wb1>o+`1Z;u)QCSq$H#iDaAJWqe2xTl*-oV-tBc4!U}qn$ZK?D@&- zJoi|AsO;k1&_~(WKUK|ity7Q2sV*nmbFtyf9`^1!H}j@3%Iq;!Z4z4D?3gUbj$>?wf9OOnZPvhIG-QmX=k?4extZOT5gub+rW)Tc%z@VGNM;+ z7E?g)2Cd2I>E0mPWakE=IgI8F+8BYEH=-#l9=%aUb<=vnITkmr$BJVNtw+Ke1M8ub z2MFUyp57Y?Ky`Ie%M@eyMgpl958X(hhf%X$8z)})CS?1RiCDAagEwg- zbJq9Wgc-pl!Ep0kLz#qEc)R)ca&O}Xt#-ko%9{|4uG$R2*t|JP<(|&_iv&7X2R!dwRnS^FZINjj23p;4(Qln+P*1Fu)KrPE%MB)uD zcaPt|$ByN`Z>2GMgEqL*OR!yangrW5q`Ag3we~c3_YGRNy6;V+YqhQnPs2uSAj4m| zQLA3X_^w~&?!8%SS>f>o3+Z-{t;Tv$5geB)t-u*v_29xXq9V7s9ob3 z-k>$F@%L}g`Xpg!jk}Eoukkl#YE5fNXj|*92hX*BLIB6sqDR(T=O*f}>AI9E;sCEB z$G~-N0su#^^N+668m=dy<$CwXI<511|G+wJL=r02x%<~?wd?$Z1$L}66$-|71IGl= z4i@?ZeX&+0e5=CYsV7K`wVwx_!ZSp=W8na?UkNT!uzdB;g})Xyd(a(x1dnx2amsEA zmvfNlsi`jFsoJNyTIV9|UG2nHO?B1I)dr@z20U8xY$tmv2AMzSY9q|39zMpU!o!l& zJBW=)W<2&Ji$AMB*-yws)ts@2&0~i0^~T47#M(Y)C>7enS~(iCV#y)Y@vw|T+$;!} z29~_m*!r*dIxX49L>=$*viukbl8OGsji~sS?sq&Noc{{W)Aw$~;8CMDv1}K)?ladc zh2plG4w~&D7af!>CI=G^6=4tYut*xx z&E>h7-bnhn{wPacGMAK#o2kNHhh5C~Zu!(|R6EC23;U#nVGD0r=VA`U{*A4gxdF>D zYcFiZ*uSwBWB>9CjNo_kALl3(NMTAAGr@4msGW4`sIHqa3Y{+SuPG(jS18!nMt4JO-T>Wls z+}MJAp5f|qYh5$Q!FssYP0TCcn4)^zEE|NYS%lkRYTZ zPD*BNUO6gSI%{Je`JG&$%E7Jb|vxk}V zaV=(xz?zMUR{h9-59Sv1`myE6ayO!82)88y$KerUjKej$9C6|4TP{jQGx4nn9*j2_ zx_Xzhhl4)ta7uVij~&8Yh4h+YR3h!BxUp*W zO)-$TZLCaJAOz}kgdwJA#P9eFPc>#R)J^~qcY~P?7v*w7y*=H_CDx{Cxz;_~jo2KR zZ6F?-lRcG~<&s?k%eAp&PX)qxj;nt;yBs`SK$znqCU; z+cK?puBUT3vBqLZs+#AiTdpT6i&W@>0%C>E;Tg~kx+SGq8~wO{3_Uas|B<*EWVpA*ko>tYXHx$ebc z*BV%CbYbXP?7_HLv4pYNhDN+h>saD#$8Na9gMzxm)xeaq#6#qB)3qs>`+BcUq5Sx@ zXpPlN-M!e-mZo$NTr4iJ{-thAful=P8i=J%VXZ1Z#>4am{WycZ%CXUW{=acx(qYAV z15Ia#s4vaB7iU_hn0?vtL~2z6vJZ=#s6q+ZX8s`CfW|#q-4xf5M{AhkL2JgX(CN{} zrucf$wOt1LlzUvpu!mi$uFAPu<8;{~P&La-sfJmDh^NZg-frH`M*0#4@9glvn$+3s zk$oEN9t5fU=(CeMQgCLlgv5=}mVhiA1ed97MDpXzXmr9GZB92{?QW;P+r{=V7v7DU z#Jza62NHRS=F{$C%_!c8&Lm^l#W>tJ$mcPp@RALsRX8c8_y_TAPeH0$b!KSPep(H<$+MXZ_&pLGYGLU!ih+e=4BHQ0jF>2To- z9&;G@y9rCg8Qha#wBq}98jb0+K=$K|ImK5#G{ucixyfbprD2>hdf9EmZc6T_8r`H% zGw?MJPBS{$kVDut_tTAb{Nsjf+8H#AR`Hb^Y}y%~VKn29o@q4UN}gpj;_04cG~lOp z8@QGG+~QTQovl3Jvkg4sb;;sr9!Qq0K1~?N(^%vh6+rM9M==*Abn!0009 zLZdZR_8H)L#_Zjep|xM(u3D{CU+Jz`jh}r)C#nBxS9^xmxX9I=p*1gRg&_v6@%3bA zy-S>}8AyeNbnX&Y-zshNT4zg!Hg+w2*0|Ilp<`)f!Z3TPR=8?bYXd7}2iDLElp3vi zrO`?HN@F}j8(L`$QEH_dkkzT~jts3K)u7tuR5-=rgWtf4@NIj7(eoRfNWD>dx;@ER zKdd9uCD^ims=I-Q;iQV0bDn|9>K~`4z(ND%r}8k^CKO*N|$e_2a$ZSNl%A zjz%@t=tlp~09vEtmebnbqx)5lzZdlccB#Wj*A3)`S{**ns^3Sv`%h@pqi8H#N4fTM zt*FywHmze93QwJNdLMIP{fBg;iBioU#<0@&GF5&=cX$4j-us9I3syV^LiBdcW4gNs zGBiAEMs)-a)#r@nZt1>tifeX-facbblS!>W>rsLH%_f*BOWnAJ?7o)I@3*Fxoy2 zEMRnfT=(=swlQ+G(FYZu5Lk_$V9oz3xjv!$JGl;h0;x@@u}@H=VB4f4_8Zah>M7IK zr2DJ54mIh{F7O;_qG!lm@kxD6J=fMxO75;t(o$gce^U3iaIOB7nY)&2C8at)rF$E= z4si1C0Hubl^pQ_V>B`56Yk_0y9@o>WxOP1*t?GGPcUF_PpX(5K4O-75*7F!wfi?cP zj+m=sxz;UwMu=oBqpYu4_YaJ~K~J#y(dwTd-j%nFPw1Y0Qv09K{oP!vJ}qw>K23Zl zZ<{`?ds<2D`?T(^`cGQ%8QtG6qUke|tLHPckz9SB(LF8Xs%_Ez4O~Z9I@fa@YZ2UqV09`+v>|{2ZmYc70BIzxQ*rksj*%oV0j=rv{#exYlzW z{+v*!;z{O6T2%EU^}^O|PwMVkM#}J$#2o(uJX(psMP2A%sanr+4b@0?h zeLY{){jFTbzbI6xB{sH=GWBh`XP7d*cptjCR(wg`)_sXsZr(P03Cfb%^ChSN#EPew z{ejW+lfnZTb(W^kv;$$#wk8y1(nkVZ1iuDiQ{+VmADz_tG?j1GEa=qtL9@%B~f;;H_tx_^+K>H4a`=>Mv|v60@a|C&6t zd<}m-^>=)YJY0vrCfHZ9r0f@NW@~E)ec9dtP3g;#4&C3uwfnY%u<`U&sE&yOyu(-e#^{JTu9Dowy-t8~M7PK29$;K4$@{#Nt$!XV$y3wwSn7b-M`|_vTHOU@kjQOalB=tW zc93g~r)qLleM2N$?>BT~fII`=(7pX!$G#!$sD1$sA#d#qx~Gb~oi89sRJhq@)#IL`A5a#emy_cW8M z^;^2TLEe5#_t$W({kG(4`ZnAQ&$aN>M6Q8v(|(ccFY5kbuAMI;v!GVji;}zlMJ5q) z5AxJV?%Ez|CRbMvHFF)q&>*?Tdn9+wcj#Yo)qO|z^igBicj#YwfBZZ2FW08;3f0>9 zx1L-*-_`xqT*tpF{ZRWoBE@*B{~p)_x%+$YJY_0+8JmoSW)%|L*$XAe)r|$UiCp8X zz6W^Q@_qP>>%jM!u%N;4_XVGdmlz@Bs(OiW4y?A9baxxG+we=ezlm$z52WUnAE1eo ztL+E6ryCeUKR~kZw!TmIS90y@lUxIR$P8c%^^r@;{!n*!FebZyh^*&2#xs2X@3ajV z4gXHtxOVdl75TS{r%_VJDBJKONp0cZQGx#>c#7-jj|Ar`HYg47RMXF_1>BB)c$+al z+RyCCwc*El`;{o2ldMsR!DNCT;xHJs;$ROXHq0Il2XP>`FiNl}8F2VfMynITKu|D# zspqg=q8*^%Zf|n5Wan?=P8aOHjOGly?oxUQe2Gyfx>Ou^@ z%~Pe`+Ud?N46@S;kr;-vlb9U|Xw<4_N^;FiQK~t8fzZ+ZSrYHu=-!B>chK#{8eE;c zkf_t9*8(8>XA+Tz$@^asF)fN=LtK5X7_V~ObP|OFAfvdZ8?whV@qoRQ& zUQEPeOQfQjrE=f2lspY73%PAs=7dAG*$~jR zLQLwtE2Q!LD+IfN75z|5`Yo)j!=~sS#RY{9HitE!yJrqQ1WycPpD(>x-|Om_ ztA)Ldb6F>2@&tjZ1Uzt<#rsH_;==1zJ4HCBZfcdzi{@#)4o)q=zuF4{X1X}jplK#1 zPEIgzb>fwqZPekXOLlh8)oPNRU2|o5%6*f%$I!);o$ST1&?mRU$u2AnW69~*9yrpY z0^i=8#aJ3Jb^%b%JmZXybZFn==>|8mE#@9`FDiR9F4)=w-hmUmB%1FKwqMCta*?$C z?B$dFo_;xcJ}Hr2+{Y6kJdLLABnAUVwQj%I|(6`ZJDIju!faAR^0X{ z7~S}(#M^-fo~Vo_=MGKv@2Xuc4rnOxR&(x@!)QyQsEo2fc4j4EV4-Yvq8oQ-Lt;9i zsXd8jDJFa|OSxMl5V+d(mXU_rhwdblwatkQ#9vR`wn!{OMF`Lyb4cKJbAq4I(-)On zH|%vaB*8{RoM337qEUotqMW+{F5?cPISI6#jY$$$2%>|;25<&eBEreUW5pKNIJ>gF zm}}0~gLs`I1)ord12!PKx{WQL4nH9fH3`x~;JAIgY*IbqZDucFIeeshL9q#l7~@zW*rf3`*>b{F1_FeO#lnVL%L zC9Oih3B0Q|y2d%P$BXx|JdaL84Rk;cKVz}ML3YV=V519?WP2f6c{*AEXP?neEE1B$ zd07FS9MWA(6;KPC-3U=TPGgv0`$P|PZAf%8VI>;<#Oow_SsL~x)~MG zmZ%katH42DgTjCgf_0HjW%CamoCs4mo7hI{bdNd-D>m8_*`p%tXSUV9M*4QY^lhP^ z4q`b-CvaelgryktYCDTdanOjk2mdX~FI217$fg2c1+_Xn+}Ana^#O-(m?5He6JS|{ z2ig+Azn^mr**uUS%vz_a22RRek%Z-51R+atmd~|G?(u2FmJta7Gz0Gv z{gu2+6fQQ~KTGYWR7|M1TXW9p9db}yiFYIk*Aj!VlA~!j4$k3cxOO?lAVf!^Q8`5p zdKiWQ5}O1XcrMr?yT0+tC|jLYIQEUh~UtUshGCY>)BGpaej(U z;Dvb97ZM>=;Wz}c4j)2r%mJG6p09Sx{%#bhiYFg-da z8?k6ThHJ;V3T)dl3TqNv-BS=gDNV%DCwRuEAQ3%m(5fZMj-6OecReXiHwUWJu;+~v z6&dMMa9VpBrywa^4O588ch``T|Qs1>9BaD#|X5Tg_oTHT8;vkq#@R2&UsQ2&H(>a2Zaq40NdWFNuruL2mC!5Y26P=t;QkUdp zQ~RjP$u{@q>CPSw{+!`Nm#UcM=_2PW*8sc#!asmpGw6NQ3Cp*{&2?|QqhG)xu z_|e%;_QQ|Qmfi1_$&y~3EGf0gl2V^6`5TiZXH)WVh1X&w-`y>Uaz7s2Mp+WTrwk%i zT-a2{b%c_%4-qb6+{u7$)?4X_8Yb1-{i3ZN#8A?cDB4?@|V}4=hVIo65g;|!v z?PSEKsQCc`*=5YOry$&DAw!&f{0$tHD|J>6Bq{d6(@TbO{ykfT!X)vMM@#&S#t9Y31!qIb*GErnh;Xa)`|%M8;h=kMqntRrAE1UO7*zndPnE zgtu7>YruJyF+Nuto#h^$i#+hKT&Z(=SjRNGy{uL^T#&U+uiL}Ytzx#jnN`VbH_?M_ z9Ea&)wPN5CZBBL*ZAh$O7kdgH%^XIDE8Zgqfz@#g-5hT% zr##Pb(fe~;Encn4<7)D1H6CV2`9W{@4g+0^wI%ajjgFiqEp@NE1^rLduqs_9;}*sy zldo8BdYc+_iWgZcH#qQi$T0x1d{(WeG{QUx92mn<&V47E+gw@4 zNIFO0&PStI-!Pv|KF2I!|kw;f3>hXBfl6 zVQx6Df{+Z}&XjZanr3?8yzZGshj5r1&KsNQX_&`Zm7e-}c)z`HUdOD3P4i{nQZ3x+ zcEf+QZqF#3UXxARdI*nww~Ft@NG(#b#7;}dqj>h6c7AR zvZtR|)nqv}ynzD^;lDXv1sv8`uKk)tX}XYxz$e{Tc!}`h4 z@ATCq>f@s1M*Gy1VItD=>h(rBI@((yhl?BBk2}n{Y9XpJt{SH-T3Vc*KGER(jk0u! zz-J^#FnXKFIM#qs`15wSnU+dqp6ccRBxz2odP_Tq2!ZA59b+=T)^Zjz6OxD9%0wT7 zrYX_MeRJYMX#?^RdmY?ZK?G2gCso@-W9k(}L?6(%MC+D)xPIr}2>;4lf+fERaODJ&nVz;m39pQv)Qoa3CGzTPSNfYZ$?+UZ7< zt4#Ex$+aXh?+(hQOZ0pX+CqJjzZ?BONwiJXYJs~!U&Z7oh5|WJq+KtONmb7HXm@O+ z8e$=xM0t2P?Yfe9d^xcjgsjq(e@(}{LrA3o#ze6VVKmpP%-3qZjH8gsKTpLGSE+Dj z#EfbqQ>Ea-KG;J>jZG4@cX^$W9if@fM^@F9h$T$2_*^hx3z1E@>*Xw4;+Ez39Ve{X z8SUG7Tikf-od72cCV03VPw+K4 z;cO@OjZQd0)qBbL3hNwDxKiNtCrC)mXo8QSQs;DXPe{5AucXdFHCA|yhug6PpUUA> zwcGjp=2>pUqKGHBTO|4s7$AX8LPPU)VMcK}xo>fz7tl|ail>RKQwj#Yf9g=-2>QGd3ubO}7|OF8Url0x1chd-X#jvb;1Zoq9t8+M7vy zp{p88eLSP`aT?5^xLT~Y7k?+lJnTe_!M;l^_nN-skg}^7Xp)7CSx<2QN&-wqZ!yEL zrXSNqbyB#ozZi-jgm9n-fM=UntjtBW5PsY!UM?2dWRP=ZW7*X`woN@P62G`PVfPT7KcRg;l`k+ ztTWa8Sc;m(B-fFU!qmgz?wYJ!uz4aeJ7l}rS%v$&T~46v6|NrV3l>i7G6SkE+BMzu zq4YV(D(yU`F_jd$SvoT$SR%8osO0<;WHrZ~U=>8*I_Q-_#|~E7Elx>jce=;LK57hN zpG10Mt8}_qH1)9FX79dO*@hAgl(f-AG1XNkp~$JauGQ8PpDg?FkGpE8(HkyKZK+~O zE1_<(mg`JtCPYN#<(wpgaoXe%u?wDT#6_hWO>p-y5jY|2sPhmz@w*e-cu#z3FVn^p zt4%Jiv0qzEUr>%fe8|v;kr>nxj`y$#~Rl4;wYVnf$ZBlIc!nZOc$2s%)q3GuyX-R88g9qa_D+) zyX^P2{C3gj)ebSfndRi9QxP9xx*d^VZYv!V0_pYm;BmtW|Im&%CNHB7fgxvL5>9Ht zHK$fFLw4v?XyNdG@ud&~x=-D~G5prH0ml0>eaRa0Oi#Kld;}{qaq$l5X0$l;28Y}? zIv6yMm~>>0nCo{|=vsOMltq`|1W%@m$a~Ji_hZ~kN1Dr=k(^El{F)ss)t%>_{U4W? zZ+S~!KsFCBG}u0@Yt`>|Kbs*^8?= zFgTf_z;|n%q;<|-%r_r~X45!+7bzc7tiL)QxL7Y8d(FDF4!#lN#G-Gs!R#eQ`2dFll?Dn`?S82U`kAZ)^u9{U^RCbAmvGHW&_$SJw4PA4fn zPE-=TSEgQDuE_i}K#>8*;$i0Wges--N#FA+E5MEtx#q&G&6>}w16k*D7i#Iqx=Fut za*_8krWtAc$;Q(TS%FfQeRk;~RNh7h;)t{vY7OE>7e1bC)y>#PG@>8YVI@>+$xerk z*Co;%6K^CadQ^pjg?&W=c=A(qbdcV`oGsSuLn_VQyM7$?tk)rHH8byYG*0x@D$)DQ zvbDUcb-0yo>L*QPMxJLJ=c!0DQJ=)n8No!!@^v2Og5zGSxG4PfdYqg;@4Ex~9jwm) zNx(jS69ye$U*i09QMly3TFhanfDKbn_&oS*YLvgOIcaeR&Xy!O)xLJhaR%)aqs66H zxvD|W>};U{`=<$>Qc6y%MCp>|^1JzF)Gn)?A^}+g*NKv!BJGrK$%yJm2puDbUC)E! zc!PXR37%RK64Dvh35$7GqYepeNOUzP>g|cfK%(B22nZZN6-hd-fe0R~#gm$oTwT*_ ziby?k^_lXWptH=4>_bM`jgfouEgvCsjV|oag!M(&SsBFTS;7ax5JzX_Kjq#gb_tm5I|C#`VR+7{winQF#01XlGs44Kh#pP~bR|Ac55=RI$h32kzDnu&@SQ zPHMp2mVoTy;5BX=hljw)j7|7osIBoALviedlS;z6MA#7JGCaX0 zzWXXyW0p2{wX^4_*6Vk*97V<-;=VH7=sv2Aq`Uf#YSq`fnvZH-nXaazT2H2ws#!5_>flA)L3uHD zu%t3itGxS2ORhF}_j>Ld?^(!w=RI4vuRd(l2eih+D&??I5zu-MZ{%&=5ie9~J>snf zi6dT+9zNpj1?i&;TaRk(M_pY<_2HwgiafpYURT4tdiA|VYfx{x*VS{cUYX_LzB$X? z7Sso`Tq9X}OSY>!TW`;HkzN^a)dcj0fU6~-cLt2Q9KAKiL(Z`rqd8aa%N3aYd6Kgt z=qJ57=(al?W`&3G6gm+B9Hh@eZ6rw+Io9~b?!a=&iNm-yVWW(@&IJ7{30)5V*mguq zlcR4Z;=`z55}#5Dh{owo=H#a7qLcK_*fp@7xT$8Kb*IeYJOJD+fclNElt@so28Dg}i)gyYrg$)m!+cho^EI-}HdxE0?$%w`%oEjH<2L z_>x{n^H#ngZ}66BmYhAyva2_1UCZUZVTG%CGv5vpm>nxn9<>p_3!Exfx@tCSO)KTT zWhFQ@r?w0F0~tpKHf!yxddOM5##Oaht6!5sdhObj+RfVd+Af`k&g;X>W9wXXTR1jC z=In|a4-L|w8~1i@*P7PLtXg&Rxa92Hw51tktm$(Ya)*frza|p4(PkbIKpiKHk83R=>L})0}I#z>Z#^DU$0TIfN#rq zxo`9Os}^WOUZdf14mnG2x?F3XZ;as1nD4B*TpOM5s=QnupU>28W2N}rwV!W3WqZ{< z-;RS=%zf~3D@e(Zkg;ORdpGjlT$`Bb^TI~Is956tZgYtJw@Yj=s*IZzn5@FGnW-y8 zoCAk=O<=YY@k`X1EVIxdxb1PQufuqdK+%o_H@7_r$H^~r@JHoxZlJI*nCHvhQxYyH zF3QX-D>_{oC`nnC?JF+w1$^1Ni;IHUzEgq1vS39dHI3sg6TPH z*IswSs@1F3uDv0+I&by5wfVuo+Q1E~Gcs1C6&B=_21?JQQA2TVTBtNPEw`A;a;2hB zT28n$7)(1EC`k(zg-g$*mWBeMP_R^9`tkz>AeHGW$Se1)_if&^chlyb`|tkmsK2N< zFF0w{!MtO^)Z@W|W5>h34I6x+U}3)fxYCz#E~+#ywJ=zevP^R4g~H~;x%no8tB|nj z0{ANFYxAeNo!bNIvDi#Z*B*@gs;s*w)b$1PX~@i{{)HXX&t+X-vwqg2Ru&AE1Wy)+ z0;R#C;IT7>CyVon0;R=yp2%jklhSI>5zS|crEhsv+=TxvX zzp(i98&u(aq2i*VV0dL|NUFU)HC zS~urO&I*=?vrYv{LpGWJhlXKM;8ejesBgE1wZc=fa2WAsqJ8P?TKxAURb zsvlM^^*JtOy!pd*gv#qR133!_VdxJ%JkZ5apZcxoIJ}ZB~ zx1}IdQW!YnD>zwF7!+Xf{MY9Igbw&b8QmUv zmmuKOfR7h9GOL+VAyiaQQW6Zmkz?jO0#Bil>9Y~P1d(A0A?vcWJbV`-C*Wi9g>QqU zMS((#)CEPp-H2KrlC`Wb$OL?$*Z=cfs3>773%+o%FR%D?QEng<_Q`|AXPN`^>-5=k z=3X{`!4+3sea(`k%T}yR%UHek`WtTCaPy|kTet7L?e;x)>^pGq?!&V*XOfZZy>jvL z^y}8&vSauDd$RKjOUoaweEa`=Q?q48z(5QmG{i!t@k!E)e8r|5pQMO61SctE z>Y4Uv_hn~hNALY;q@}*>qvs|)6iq6~LyknsD6KW}l)Wgsz?@`!K_&U^ry@0xnE(2U z%fi0md|zpx=vdIsP*zlsi=OCH|CAInC~}L@S&IvOLZ$%IRH-lJNLf0+m2%10w#=6= zv^$4bX3I|m&-hNFOZ#$y5YSAs>ryyp`XX3MUbtE1v`}P_-d|RXs)W812>W88`-FG%u*sw3QjD2-*x&u?)(LBa?$)A)V>7^*URegiFhU z_C2fNo6Y;h8_nz8=5^z{%xl%N=JmcYb*-pO-K6pBNzPT*${#$cuEB48ORm1G2FER2 zhfeLdUapVTUVf76##idoALCkcWoP?KT-RLt`xC}ytzzK%GtX|?tTpt#<=~oA*c)~q zJNfkEo3#z^&K^AU)6E;JKVN>uXXb9%`|8Ut4PJiRmiK)B_M{g_Dz^OL)}KD_So!%a ztsng1na$&h9+Y(E8-k%Fpf$b$z5E;BRk#=ufwuY;zWUq(5!fmft-yIQYxlU2|K0cg4Mfb-NbSmwc@3iWhgi zJCOg@g3^TBfB&bOf0?jn-R-4g@A_G1PSNe#|8m33FaPzi+vh*f^_^v3`N8cUuFKpO zZl19_@56(ScfI45-5Z|&@k>vop5ATT@UPVce{SCWiOoO$!Ry{T_dh!J=4^3}{oCB%?|tw<;urM8%kMaO;Mv(fEziEA zYx$bH=093{#{+Ahe*7ox-?*dj=|kU~K2N*z`QN5~^x;^NPMN1%LV2_wHQ0JLPL1eTQq`6M_Ht>FQ74w9k0x;D27WGPG~cktc?Zj(uWZ z?vs5vWqfW&N@Lk_@fA_=Jy54=)-)f)Ro__1s@7j>rc6WRIpYO_FJg4pV zA4xx0@t>Dn8+sw{;K0xaU!C>W_aChO>@&Y#c2m#6SC6g^wchSLbYiVmb9LZ`Ltno| z8!h-!@u4p-t62B)_da@P`I?63{=KX3(ArHq%4h#&=G{-Hto-$_j%>dBx20nrTe7D7 z?kC=LYF65&Pv6}=|5F8D8G8Bdn;Sfx!;f8d&z`RNzyHKLZog;M73qK4ar({oJiPeq z^$X^H@tzN@Je-*G@5A@JdHm4khg^#efAq$*+WNQOb+~%kjbGZlvik6&KkwXkYyH!Q zH~79VbR^*qhi`BC*`hU-D~_b^{Pw>#tO^`C`=d=?-tox49yxqx@~`oZoP??DEgAJ6O?sG&%5c(#eLY_db61 z_QhMA8}EJTN7*Y6B!=(pPX1E)r;vL~~Cn>F>sPk#K1tpEJtH@6=A{uSAycYgRCcYW;6?9VQJ zYijfEw=z0XG7m2LO19(CyDLwv{eRidju$WKedgN0=wH5>`nJ%KK>0&Ae`Rggy8|yB zd6$24=5qmK&69upUe{j&Z`FDps63jH^GU7p{janJb9%K`Ub}M92XZQXuV(H0eNWEE zhJJN@)2hVW7ax0N>z$8e=05$F&zyMgyGn9b9s9tx@+TW}|F-d#Lw61QF!#g9m;G_A z-<|i|GrtROzJ5zy`IG5)dbXa)yKA65|L*sFCht1qx`97_LgzX@)b{;si?zPBjf`1a?%&|P&f|6Om& z8hq`(cjo`8<;%bMNzOC*>ppnjuO9u&AM*csOX4dJJ>@^vd+Rly`IphavA10@e9!0Z zf8ViRFaE@DubkO^Y|d%d!SCVr`9bXqe%G(p9-oo<*Xv&ho;bc^%inT7bk#?W-}C*i z{N*jjzJL6)w?6T}v8SgMd}eoZ^FZ6if_rj)@B{BJ!Uez0{ML-0_&!ze(w2tf@7O<3 zVBFPp%cl!G_r2@H1K*opx%0kI(%n0JuRL;}tMU4kYhHcwzG?4#%R2qnL-*|(`S?FS zz2vGB>35}!)}7vW;>#yiWju1A>cpp#9{KBk-1pTJ%kzrw{ifr0C)RG5e%-^*E-ies z@h{IFZ9Q7}o#)s6+fy~~DSYlv&u#qWn&%6zZyT$*#_`v}YeFB$yzA;!Cx5-?mTx@% z$^4T)|Ji%KJa2#f$&zp1xb|OKzjM-f=IzgX_Ufdfca^SOedVWaEPDU3@t@pz>-|NK zyy-8G{-XY4ML!Ar`JtQ5}sT(Gsc_MehI@5*_gcti5y`?o&S zQrtc7I2bo3=k5&VB8fRi8C}8eadk&?7(IGq-H|XZHT2_oKI#9Xt7+>A{az zly$gH@BZ71t!2M`!SnK86Mj|p(%*JH@$fCaQ`I*$9J+Gf{!?kYyMFV^vA3Q2a^Qjc ze)9C!PR)I&`mq&1{N1U0>eJqF>cy1PCI9r7mHQL2PG7s~EA^h7_nvNfc=*}(XLg-F z@}Xa>*|_s>r~mYf`|7U$TvguoyZy^DKY6VDW9grIvg*AbEI)SdttD&Eez#oz!;$V= z7EC$w=GEax=DfWAOh!Xf+O8R;XEt=b=f)4$eEiJq51gL%{F?qVCCzWoA8(lbK=r|u z6*o@Z_CWCy>$2bejt3tI7G87qy6Zptz$4rJ3!HCx<$-(e{^QkKe}4IcKYBEC?XO?l z``~vsyv_0Rgtt7n?VT(B=_gyBdT`gezkGK3iIE4hk{>u9h-FC|-?mqkH z{V$$)o2%yRy5-M4_xQBVv(Jx)+U}b1r?X?ft;uiRoA%I+k6zw!;yt+!P1|sFOVa7O zhjvvjJJMDA?T1?a`2HLIx-jA4`Z8Q|gV#Tt@LugxxBd9!!!IA+cYxA`FnBTUT`-|SLQaP^V-)UCf^;}cxJ$L{2slsNN^@5O>s@NN=%z>%$Par{KYT!{`@8X zA#d#7!4(_-n>x#Tb^3;lo44)Uwdc+QhYlBLiBqO&&M7ms7~4s-NWhm<%$n*n3qfv~&H6kXJjP-=JG!pUHcMdyWKF3S$ELl@yvHyht49G{mK(;N zWo0WZ2o#0wm)O_kFEMPxH(bd$NTGqg7o$t#Ivgj_zShcQs4zX3pmjTD zmXl>CeWfr%K`E?l;)M%J89-9SvypWy7|y~56vQSI#HVJZh?yhuaICO6CtyD2BBH~= zti0kfJOe6&m13IFB1O~?z%o}Hg<>Y1TT+d$tkVVI<6^u!7Cs&UV!oM>C`P_8zPVu7 ztiCu{nj6dt7iYy_kQ+%fnNZ~nA7^}BTBTgqP(nJEKj9bh1h2Ccv+qRl>t*@ zBq6KB^c6%(nhk>om5Ev<3wIRftJ_?hFTpHj$`fx&)^X*%$qI@4MrDxeMc9A}X9>w$-F+mTd6-~EljcK6dG#}5&71wFPSp`L*usGh#W+BY7 z>;VeFgrESEyi#9Wf@#OKdOj9TX%LT_h-sA=dCKB$LP}YYot76Y3^D>E znN>!qGLm9;l1djM=fceQmjwz#D#ap?-SAl2PWnEEj>sO^wzQzc8hPd@3WUxSE%+(qO2#@D%bz2!q5@AWMVdX^o_**~D*IuC2L6QyEo9 zo3nJ}IX5TT>C#hBPn>v>_p#6UfpDPEm%NQ1-x^ z-uXIow7+*M4TbYej|c=#D~3xD>01i-ATG>*4-}m!LZWRc+;`@r`X`bg4&UGw<@XI* ziMyDWcA1eb2SdeW$jsOjE7SI1_;%$|GhNJE%MYHL63x1|v^aNDULJiGB3sOpm1P@| zGgg%`x7N$eihDNiQ*O?l`_5Xr(%+RE`U>%1wVg7H4)6uq}fZoC~JS5YC9nH2=;yntAOL^9`f5bSK z*`9$e#QWbi*rTgFhDtC-H$>H!6g7APd3jk(G=#Q25LB^(yNkmRcYm<-B&o!=sa%$% zkW&8$qN|mJMRlRPt#VyL2-E>qCR@cv&U&RFFRQGC1)>5cOUyS2cPmV3LhR)mJ^f5x ziy6yxu1)7^6&RDAO5e%~K4qE2Mei#<8MMc{6&J@@dgjl5Hg~mYniYRrkz~EMpY1q3 zD=x3Xj?=Zv+i`dH`{@(lr&`bH=Cy*5bM<34kNhff&8rr$t~u7V+`1N7*L>?L7cu27 zj(L_g*ydeZ&LvpyZTq0zPP=_}+@Rean=UrJCbWYEf%&uBJAp2m9jBOV<vjPA9{jgo#Tk(0mq}9arhEPLtdS*Eukdg&54gDJd-e% zu-tjT`A+AP&L29H6R%4=l6VrBLLZ5^6vN&o{$#MqpQMYCQhq|CGX8{SHeDqRSqUcQ zpBm)Wdx2HJpS+i!h`IaulRRPmK*w#&!$!C$Mc?q>c9TG42Jf zfOdWfhXmpyug+A#^PYpLEcF|X{*4qag%!FC;6m4X@}ijyI%!I$tPt5zWhl( z`3X#EuMJo7N}64UTTS3doq~h(zun*5M#>BPyZDQ(UtkI@Qm?>}tBuDg?xmis{0UD8 zTq!HC?LHSAByD0Dk`#XOPT&e0`AI&hPtt`RcDkg=y}*?`@{@bPPwKPr+GX9x;!2XL zLtqM>CM##-D_3cU@R;1&_;9QEQt%Ku3Viw5xJo;PXKZ|9%id|F+qh0_n>TqUKC=?x2c2(^q|jr6b=ut)fa08RfV=^6mz;6JpoG5{NKfqx3UQ+($>*g! zvp*-dAip4&78M;U3mgmjjum4!DN;@<(IZ3RbO?c3-ZT|@sp9BE=QbyG+VZq%)6$mv z_DdJ?zd*m$+~|S_jq-ugJi;E;t}VZc+hh$IR@sR64TEmJ4=-H!I3b-7PmvQnS2(}| zlRC|}od2l-^Q+1eLPzqU=@y&{`c4MJ$Jtrr3xs^9*@5Ag@Yr10EEM!vZV~|{SSgVO1r&@>Sq?Nx;SZY(D_z2Q ziC?$Cnd-d)86h({m-#ZGtSSh9mBRUOJ;o7XLd#+q6R_=P7>0dPqcEB39D#A8LO8Al ztA7NI*eXInJgj-Iw+;p6{FO*6W17KmVMxEuW(bV98b}bwZ~7$xM&7cF714#PWYJq3 zB@}Q>xN2AuN1w8EDY6*yoeZ2Xw?olm@>HIZZoMEA#mon8@M21*F7vHa-MVZU-D|T} z!7^Z#9xk9ugi1$wDeQz~Lw1RkBPHPX<=9MM@stGBB?~d#QWj zGb>Rrwb%@}7QT_G~d5eCPw--cIGO*G1Ty!VYeK^z3c`>9fi1WFGkYKDyTWQy0ajtAti}a4& zEdnlnz<{MaFeVufN6m3yQVv;wS(yph?C%_m%R+$@UntH*EUY zv-qTF3Qt>j+WGPX7;Fkhsv?NcIDBO4vSf+R%&{^)!wO$Ux|KoAZ!v)4s4y9zxC|2j zO{_FRe6t6Abd>DGNB5NmD9O*5H=ov3g3I7B$&Fbs~k<;77O ztje_Igrq~@}$}Jfvv7-Q4YcjNA<()-}lkKq)H}URMCC&K) zgtuC|NJUnuRluc9;4y>C9u@%bU5y&Ha;XdpOuDizutrCwZ_$#_BAWtM+tp+v0#a#j z6pQJym2pGTl#m(e%Ty=DOgC}4{BTAL5%%QbUsvtC1P$j6B15#{#Zo)_w`4k?^^2C8 z{W$^Qbuswv2$uiPV9R#3KpxAflYzqXW14ZDi7MNZ5eD=%V&GEvOBh&{c|)~Fi-~hh zwJuV{-={t1#w&JeVlw9r;IpvEP%7R)uuHD`_sUq)2Fivt%O)QTp%WK*C;Ouuhs zMhuDLU!nY|0ue3bLPI)2as}fbKzFmAe+2O_T+^lZKpgq3rAU;CjGX2x8l&7r$T<_a^tV3o|D%o7XonI)yL8t*ghWu?@hrg4D~ZNi=E*b14~F-V@o&?&}N z>}6uA5mK-Q6@#5JkCMhCp%$EavlJs3wlW(%WlYLtC$)-RR2Dajnt^;-RWFrSc1cmI zOU-^~tGO6nmxha%#x}%yo23fF8< zi2<4!EjMxGMJO80GGRQKeQ1V?LKo;B&8n)3EO4zJ74DEbPG{FntL>=an4ffq)X zxA1h#n6roxqkv7UDW>7E)C3Y!qM~T*2(~-eVm;xa4I9WPRK*%{wrFC_S5R<3)@%a77D#4i=ayIlI*a8A_X;F$W zr&>jo$SuPEhU-Os=c>o`9GJB_R-YD>Wi^&!zF+BEz3Lo{bIpn(O^w>2N>U>APQLuG ztV*g~yJUI!dfO$Zl$^I^*R73h*$o*NXxNI^+pw65FW58{SDqrH4EBu7AwsLD)dADF zX@N7@J=O+i3rcfpf;X@SrkuuSz$oERjBq>;2&cicF~UbGip)b&&J+}IRLq#PO~M7C zP09crlkaex>`}ofB84%zC{!#Zk&O=OgtF*C9M~rWlyVx0WMhC?E13wJn8=#Mi_${1 zD&Fp*(6Q!babBe;IV655lps?iVF?jH!IF4-h)pF*4(7(f;^GozX;J%@OfiqQB*1BG z%wFQ}3g%gadCqs_{1rpw3N+sL&AbCvtgTg!l zh89c!LP|Ucp`5u+h*H2DjAq3OtWY8XR46h5swBmO&4^^TFq14%7-o&8*W{eqquE4p zjd86+2t~h{*gX`d#My4jrOX3n! z;BX5HGl;a8f~LJpG^P+%9OY?J=7bmogp1&lR8`Krm6DeB98vk98)gb+w-+R^*hu9H zIs5#XICFiv)FZFs8Xh+wqg1lhWqSz5yrI!jC?u>eQz1ux(I_CRSxdaK)?mXx1VZ4J z336uTmMtr#L!nS~ zk;qKP8upZMfsK!XK~Vo>PNs;D7B`dSJ&7d6dzz%N>hQH<6V3%Fb`HJN!U^lOIJqL_ zEXJ_t!yXq7*<=7N;rO^BYf(m22WL6qc!#e;@g7a^T|tUSrZ`V0NRysw`fJ&CtH@$@ zOw?t2waFjbZ2z2)E)HoEsT3tE01|7yiA>8jy(h6bD0tD9ib`Nrxk>2+il-pAm3SUb zn}|fLZ6|^SpwJA`ED1IVE{Y{55?ys>oM+SGC&?YJFi2Zu5U>!n6if&rKFggl=e{B2 zjX?YV1)ZbVoS)$TU350hQ0I{Pw%{3y&_p=Ih`HCx$I>)ly>Vo=f-wZE*tuo`=i1dy zN>4LpV-kW2(C8Slq{V~2!zYerD$jb#3BR1=$FrPiSL!>#^q>U432|FNurM!_B2at} zDG``o7zp3~Mo0t;&>KKTQx0v43WW))U8#vUCY3?_;IRuGdAhVw8>M1&adIA+BS6&> zJG$?71pX#_wa(nAj-d z^s$L{T8hN+F9sE}ls!jD3=cw_e2mRFjo->)8cofrt%aw=>BLkYHMvXxDkN8yY7_c0 zQH&#LG;;!GCPkMY$ zE{Qmaw2QXdXiwU}^OI*H7+N|hFjG~WbOw#V)1r#71}CDQKYU5JY!X>R8!j+NCU!!E z%djTNsf)^{q*`jzQRr;1J}zGR@X=`HHgm{M7T;3Up7Te1nQFeW3!JB6Qn?y5a?oW+ zDYMpq5fsglex!(4Cnx~<4=-J6#bo3KgC)0$txZT1)tt}+i&nb3Z;!JQCPawmDRh!fgA;8a4Mxh-J4Y*KRr_fHj(9g=@+bdBj z(hwipqzYC>B45+eE&+zhVoE9wn9nl((5O=!c6=<0(^5@SrkM6sP6nUp04azM0RwgA zbH!u8slpQOX|_p)YNT4GA=^Q5t^ zN|!|zA@O}H*;qrGEPNg$tp=)$(a1Gb(DJOv;4{S#0{P zVyc{Eh3oS@=qt#iZOTf1Dw8#oWn~e#aZtsMh=CkKvIR13xvapT$N@rGtbn4jP3-qv z=EGxFa9d25UqUBXTyfvu#T66zB9^=n&ba0r(#8?MCK4nI@aY951bq+L)UYgH5n$ME zVkGrB)QkZpPPmIfiw{w`5VXQz{zY+PqP#@hav16-E{5ESO9od`SQeTbS`3?-9I03- zh8yF$0!FhsL4|_)l_L`c*_>WY5?Bvb3#=y-0rf!Forg#BMTzF1o;)+S6&)ffo9N%k zt8Rd>(38s-Rp(5?)JbK~ozpz6g}!OM*h!Oq@b75ts5yf^z7Rp~(6( zZVHVyD0mSd!AnAA>m@_E04n(x0g``7sBF7rC>KCwqE~EU2OYa4RJLCPl_-=8ppttL zAi0->3f{>Ja$M+=pe(rvlqDB{5}7lsCEo!~uFEYxR>UcSd7|Ffr%#%0ZE@ES zZ?53t%ET_}1Yl}`6^>|^$v+*J|D5T_1aM9d>Lls_u1m`f!x>?rWs`HRz2L`pQ6_OmWtdKEYmZt{UCgv1 zp8>*97vr#xQ(CNr6TJ?$7^`iLjakr49O^b}65JE%?#K{R+EEmUFD8f8lv4UyeVoX| z3ezy|^}L`N1blAXqPg^lFw7(XE%S;^9}yRr4kHoEaSDml6pF*!!V1%@6^9%ZHIv%+ z?7rS6!M)~|a&_Wqi11(Q-Q?x$f_z6ZzpT(#7Ul~@;esHW!1)Gel7l)dXO^IB9KrQsG}L zIKoTKQx&2ug4DtXcEiBltj*?Y?Az*NYZAi?6HE@-&TJoeAQ07@MmQiwBPveiG=vyl zSZ1HE!Q@V$pxscQBlsd!+F&I?ZN$4E5~-ZFU^UMqkJKTyL?LLg^u7vCj1Wy3!eUw# z=@kU9>JQij_Q(4G+sLOMQA?KcAN~kByhsh30LQS0cuAz3z4atiY@=-rCN+o(;Uv_c z(-H(fp%*!9LQ;ihA$IfIJqGe-n1&ZEkt(?Pg6!>&-puqN#=9xq4d|Z~H28(RFa!5o#jvkja88N%TxkkXhSw>8Mc;$H-m> zvsbMVDJV-!Qo4z=DZ$O*LLh&b&k!E-%UI+ed(@b>W=9hDB-UfUPdbtbQbdSpspYUs zK_fajfHCq!FqJj}O?Cv@I2W1Uty4plf*jIqPFNP#V)vxo{RSF3Op5ETKh=(WlfP`u*xQLdsFFOU9z=giFa*hd%&xBtlux7<0;#wY-2#_sw1a!}n7a!G~dUDF;4& z@PGn>`*E(2D#IEqs)oke1p{=xiz3A*|i>g^wq2a5a%9_f=;5_^ob2*Sf#U)Qz<{@8V0JgKFDd-h%{r$n<_(&BT zFi5=!a)r1Y#c|psK}L@_;Gh#y7bFohy{y1nUf``L@KzRhs|vi;1>Tx%4ib>a=KoAMBIVOgqop~P&Jfi8xui{ zJw4Efwj@;~6cEf$XatcyZ0CbP>=u^j;q$?UN^(caQDzd0?8H)8K~fIO-qxj#duRa* zl$J(t0&IHZBpF``lxA|Al#F1c=pmC_S+A4`D~@IZ~+%IY7y>*Q|yd3nh{s z&BMa73OrZob^!ehq7b)5OSsN)Lra;}N=BDLhaA)7tPJu#Q8Axyb6_KYKH@c?9DyJQ ztD3}V&Hg3m%!m^z4pVA9lvG*=S;%(u;HqKN&Ei$)AvA~Ul@G6F^kN{k*H5*PU4dQF zq6(94n6hf#lT(NPnX4g_%l;~;$;MuarS-t@+zek6PU)X$2plw$x^giv5XisZS5CJAeX zQ6y`1Di7+|4i?k&gqhE#=NRmG4#yv6k4n0T5BKx{v|`pQ()QCdt|%&E8qi4URR6EA z6S-MKusu4J7A~Tq_0xQoH1I-oGc7B~1Brv^WnFM`dk78*L$awF0JXQUthC%oXb{5d z_Qc@-F614g+p=lBAa&b(B-%mGlsli~b?Z44!#kI?4kT1jhsWboO-qD`7W>I@@$!2rTMpp5Y{C$40Az@gfC7U_Xz@%?=gh zqB9{Sqy}mB*Ccz>yoXFLQQ?@-WR!Z;gYkm-LPAe+dt|F>l00Htej^#FO$)L1pnA&b zntl;%i zNx{TiNBB&;QR!X)bFSCTSQ zzjKi5m`Rw1$4r5KPg4WQL9iuuoPJ5%%Ku017i-0UK1tJV*)wT7M!p_L7dR4*(GiYx z>AOQFV|gZZhsp$U20KodMG~0wKYo{ynEU@~mze`?OoAL&$L{#Qp=0GlWJ&Qu3TbcA9c29z{#U3wo(f2IrrgyC%AFIaS|DRn7m}(RBAD4Dv}nR$;%RE!0A%oITPB|{@a!NZQb$c1d)O7pH6jd0Irj~UymG)8wJv#kV&M}x!ane zy_%VPK>B41O1_$b3AofDIY@$np`U{=G-X+OuVm9k>Ji^kr_L!wBW&Enu4Sa&Ax$IW zmpj9|D`m}amY1(?NmD_obTL(Uj#iKbWH_iS*tjSz5(Y=dB{kFL0Mmx9D&@J$9momH)?TCynJH#A#hPIuz!r-Nb15u5p+?`N?cc_nWTnH8am=zvsApOH zkX<5Ms$0>A5-3!ZY>td^- zaZyi2ncI;?8;x2)jWkSYG^Z$CIg`_sfrU9y_8O zjB$*St*f4bDS`~CpS5!l5CROcYzhxY5tzX>zoUe_Aujhux%a5YNj#GP+q!mPO-8fd z7!YlhHX&+12sQ#rSBp-{gp&cNgsg{j%!Io&r2jg-`hn54b~+-7i!4jX6PZe&-1C5g zhi$f#XbR%V1~SRcd`#j^fNMEB3y+|hDkFA}2rlVH9On>-_7ecmDJHoIWnVZ^PP3)G z_J&aU6L0D9MB(?@a1*N}`Ju&d1;Y&|J6G3GC7D_i<(5RW)Ub1o|Yg);YKvmNSZp5EVonaDawpo51W568V8Bh(A6DB z9qc}b##0Fsw3PAmNK`ebOX(0Sb?a@HBA5jOyJ_7VSp}*=K*&UOU`ney$3m~)hAbX> zrjKd5hNtoTVO;K#aCI3BELMBF>@0~kF-(4=3RN>p9s9RIKf!_jq+-<8o7ba-x+{`15+Tr(sPx{mFc<(2=HuYfn1bgdS5wr|J*KnyGP#oQ|P( z{HBB~yxNABDyM6#ava0y_yr|<6-5Vz;D=SxA$~HJBq_m=`~MpZ;7%;=O(zDrdqaH# ze%QSN6=#u24Z0SgjihN3l`my>`P&@C)SDwfugs^CFbpe+yet$8Uz-C%@Fnx|9A+|n zsg~x|vR6=58uX+_fxrUSXo_t6qdl;pYVME1Uw2ejRSE}PvGBg2bZ|yLEkjQ#gMFOQ zQNT`f=*V0UMTR3}KEyxh5FurTJ4s7oLo*44P1v&Ma1b!b0-bd8*lOi3x)aAe81gpK zsmh;ZoS#svC4&=*npI2(%&PCUZSt5Z6-))}Cg4>$g1UMdGl#jI{H909`^%me4^b;o=FJMCF;rS)52xpzJ0X z$Mwf?m!(D3ph_&pNGpxY+-$rWimt6&7waXto)=Woty`1R;+euyV&bmk#9isqCK`mG z5orQNy8rvA6{Bg4#OqfG1xtjc4T+&lqLD}b$k}V!3M6=>Tsf6be|g6pbRKr ztUEUqXS9>q#(lWPnh8zQ8G*K^(1a+ts{KuUD9#ty{%uKgv2U@n7Z>|LqWHJiMtNrM zXv{1IBSl8?_^+K*en8AL#Cm(xRkDBE2KtsHlHQUfDJf64jhZAclT0!1$-eKxx{Hz} z_BdNLJElYKPM%TF;hYECc|1|lo5m4Z&9i?}nkCegT&Yu#NB_hdP-tzt2WGY*I>_6t zQkY6RupxFcPvX6^kA3vWjs%hyIIZ-*;~dufEM;ob1lJ@GY;^bbCZ;7+nNI7W&vk;Q z-2}VJmg*vNwDW+%z2D9p^wK^sB#!lbqB*4m(WI7{NkG&Zq+<|wpwPCeM!IaFI%baeZw%cCFZ2H4i7LpBwYZ;5 z%<>dXxV}zIgBCL*O0qt3N|Z8|uYeNT=WZ*V<5#EIpN_}QNT;o~a57A!h|OY2jWo~F zZ!1ZDx(Ygg5<`s=KV_sHzZRwx;edh&>q1LJN()ZPxKZI`v`WT#U=q6r{Co2}GFK z2mAkb`oLNKK|@pQP@C&TY;< zu(eM1E-P>OsK&5)>AN1J=6tPYL>gG;Wi`5B`B0x2Ofb{on>^3n2?Zm$R>5sL*ewk4 z`7ZQ2O(I@m&=`qB-hI4m_MTg}p#>y?Ia;~N(3N3OJ41s!sSifz^l7AMN0I$rFiJ`% z!1zyV;B}I*nmNi7URaYK4025N>?4v(NEsi%{i|Tkl04&) z-ku^Wvoo7G^x>d&UDu^~V!xhd>9GL5-``W3OU_8h7Sn~Zp+CvKU6P%*c zXa%aeBHba{0j8Kl0In{JS!Y@aeT+byE9>3~|0Kf$l(rvkL^_Z~d8R|&I6L=XV|x=Q zZ+608i1Pd){p%zk7WEEbg@&C67&8uHAGCjmb)-+0u5q8(D=Dq5xUzOk*hL(wW~{$= zpO4un)d;;EkTpBUcT|)KFG}{!h^x&aMZiQFM}2SBukX&iKA1P@NGY z9Zse!J&vp(Im94Y7+W~Fs2tRaSZa|^rm-61oZ`n2@aPq1Ci$!Q&EHMd|)%k1{m|A|~fu6t@rFv2E%5=p456dL==p26q z_a`Iz{|e^9%cUe9G1kH(9rs9FVH}@(jB6#4hL=F=Y+r_skC$*`l{`6)g#(lpkx-x3 z>!hZAxpu&MDj1G+^Ift**wL+~`Ashgez%~FTNgGLdJ(qL%C1ua@+*>Vz+4!?NO zf^C{q2X|2zgR+UUzQV#nMZS7@Y?3IX6ZsYbGj+ASU|KDuT`9@iVn_l|`z;D2ElJT# zClVxEKv_jaMN|`J-Xs`dg@$~(P^C!SV?);%>|M&RN?@>0ZBS$C>qEIsb}?QRv0Lf- z5=*8n42zhE;EqF?CbjwYFO45C?|+h4{9x4rBPo_`6;$V}l}g!U+W^v?1t7GZv3HNg zRH^KSJ*C_ay6(t)py_=$0b%CTtsi||5ldH2%YB$=cXQR59 zJ2Fa(ptGgadHOm`ji)1BlD^Z|1Oq6g8+D{i)OGq=;h00;VkuR+5+i4k8XKZ(kETsY zeYkU%#j3*DJY`uHU#>O`|>(6!MD~X+S6HLjyK9A-|Y;++<9n-JAz8li&MH0Heg+^szt=k0PV<9cKK0NRseuD3m&an zP$={jOf>rsBs5{qNI@PgN$u0x4CIg$>tM#@O?QnB8 z5R=^GPR*h?O}?|OgdX$4uTI}800(9jJgNpb%^E6^deD9$m~JN2g}znAIvdiOyW7$x zPflp8cawM}cafFl!6CYP960jT)vs%4Y&vay^XX@_Y-nxUc;=?|j?HJCea^XCLS5as z#(c-l=&s$pef_b4^I={#yl3yoz6(kMrDf$6l~vU>D^N7>X}+@>g+4a^yQQ?5BA9ih7$||yY`V|*ww06(6Y0VmMDb#Pa z)PPdzZ5cNd^wFwS-f|}l-|E#ihZz=r&^VlIAYWRjJ1}9ot+pXrW1;jP2Mci5XySE+ zU1{Z@Wec+kCtmE1Gq$Nu8RO+8jPV3)0psN+#*YVI!wOU|;uAX0cj9e_XyjZQOec;fm_N7xb-u*LI;mx!bXaAej;nqA3%5Nc@py`q<>=B+lbM^=Emz+6l=a> za@|I}yxdMoJR{gS3kIB?9vsA}ip5z;lL=6Zcs51J01rYXld9EnD+q>%j)W|Bb*8Hp zMvLTC@JNxe?xkoN%|l6bx8|W0r66S|5?9#w0#pmi(zl@O1Y1CrTjrG^U_W446Q34UP3ptY&}N#3B52DdA^lXwXlVH4IhRu@6S*Zkh;OxAP zP4rQWgVgn?SP^x(A>?L|)|2AC7kK zHq*fW{~&ECU=c`u+UYq}vVhLtHLZ?@owen>?MZ1&QaMhW%w>_SwQS_(6f04_8WT3o zqGe#XGz7{_mvrXi=pJya)m&|s6p+ro5|A~ci+&WsZMY>QI`PZW<0|sJFZDQtZwPuk zIQch-&#|ad4X3Lv)bzn8ODxG4OAEp%EinL>DhpypZEOoORmJFzo#Ozq29Cf}Lb1At zP65k)Bn?$3)tit)JH%EZJ`Su>IVMARx8DJJ1sPjnxN0T2wzN$pA<%knm-AVd*)Exf z#w2((j>6)cp~DZoniRkidqYk#-~;O9O&|8aox5r+KFQsHF4{$m6eTCj92SOP%FhIlz)YXakx<`O#(vK8Qh&|@@u{Ie1Q!1 zlw$)tSG4)zAIl5N`0iNWKril@9NNbXvY~)05y8m_%oqMnI<{yQ1xNERiQs7nb=lmH z&2jDqMP1f3f{L`Zbu`xEDl58g2K(gz2E9IOQR1Z1-5%PG)5}tDws;5eAr>dWK|yBpnLXCbBrHpszr|eM2}egXbtpKQ-akdJuSS?9o2m80n25_`?QakM3EN7-j9NsLxo%>J=S)w-)1qCJweCXMM6?kOk#?C!Sp2`!k$ z(ThNO+R^#9=}kMj9GIpWey~pbTMRpU^~T+sJOytgQzidU2vQ!TL|BL8V2X9rlz6>q zVb`hZ=wLj*)3pD3*J|kx#{E^XT{)@=rHq<7ESqoOE)ISxR_ZZ!lC=2156!>Y~dUTsEofGc2Q zmJ)Gk#R993{f+MU{w(l-i>U;<97z!@*jjCbJ|Paasji)3oEN9!h|wun?TQf~L3B z|0Za9pvOGPk);3aqA;OCl+IZxoznrzA!d*WWFPnzV(iIE^gz_rAj~9Uj5^ULhezse zFj;ou==5vaq57&Wb0k)sAfMU9bs$lt14@#hIthwkJF#=ZU8c%Rf&R4pCR;@pp2*DT zzLk)JdQ@j3OaaYVU1~r=mFba<#!jF!P0C2sqa@@LyF?=By<)w4h~@9}_dr#k8J}zy z#-18s@+1UO_=@#G2!bp%u(TylF-wm}F}q?hNvj9QKou*)29?ru0Iq1D<#N^_8efOY zH*rc4YFtyS0eOH8rE*_p$E=;E^=bY@(y`SOudr@bcys1$lU|bEPi7PUL^*QsDJG|@ z;#?ZDDU`&3-SQ#C{KUk;5)4j4(nx+v3n^7k1=&0h0sTO&S7!|&rbj)^*|;Dxg$n`Y z#Y3_)vv|Um>Lr3A!5pv?Z-{579+)V$4|id+fFvQJ4U?{b1Z9KRE>B`2frA69JueG{ z-Tz30)Z^-!+%CHH7Lc(ym%se!s?i4f*&vPo`zkW#h?TLT7e%_d5&s>06o;GUaP%}xn~kQ0Z?ttX367^x^Zf> zBmmJnZHtM}6<{fg*q_j4&Iu){c1aPLcJZkZj_RvJJ`%@dAy#DfPe6=!PXMYrSho_w zaM4gg4e@r3`PT7LYF`uE34EX%@xR%Ta>#=#=#I3eOzKR;baz@WbeGD!@X^y^G8IJp zNQgoxr$cNfVZtV=qHR$$P33mbgM{1NH?WBe(3qCYhLEa1fT1E=LG!ofN<2}hOo>(u zB+STH3V})D4%aSG$gyGD%;zAV#>X9rMm6DH^n;Alk*HQYcfy z*a7Q%(zDwVDaQ*YW>SN3K%ttDCm&vRy-!%!5(7;o)#yaQVZ)M0^gymCt84ENfr?Z2)j`Gl#(hlNF z@Ca56-+p|(`1ar%!k3w@xR6~wS{m;I2^#2(o)-~Zz-g7 z)OLH{6d>-!m+}%^4NLbO;fc!f;!F9cZ*@OYdL8%TH|5!buYOO@C{1F$b)QqZ^YNv& zQaUP&>PMe8e7o@7g)gO}`cYY4d?_uZqpvROL}+eHYmFWYgMl(!%|OGViFKHb8)>j? zYHc4X3kCy~d*GfbHrN~p$j;?7t?i}3nh;LUb%*F(dwH-CpIwcC8kUBmL&HN6>S#%J zM300YYOBT>;f4BFw}aYGBUR* zU+Pcfk>S)Y)YHE_LT#xsKI;CcTL}99cz;MfY35AV%%sosw9gF#nGE{hpg;422tPL; zr1)V=p7Jdq2=OKWy^i{eKepKL zJoA@)=luV4A$IQ`ExqBq6u*^S)42i#S6wNafaA}Q7|Gd7dMH|ibut_#J`AF z#T(+7m}D$43XGM;>BhOnPGhg}VdLY*-Dvk@;S~kKaIF-li?cw%L*f!~BjwxyCZ1!l*Mg7+a0FF>2gkeA@Vm5h&p)u^vamLHL1co*12zfv7fTt;*&;I!r5S zWQY|Mp_`J!X~E#eP&_Vb*1>KJ${GBm&!3D5uCICM?_uMZvC?&~_?pM>`gd`jxJ@ia z3(qy4H-2sW%!nA2W+&3_LK|*3zUSiXE99qR-JTVZ%T>e?tfW}EaWy{tAHtaw8Sh7C znvLZ1RhGF3#nmT!7jp%K*ox5p+ozuEklxdmJ`{HGFZo;ZL3+-EUZo+PNgsMnJcvH@ zn|Mq~!WU7;XQGNtk>O}wLVUK0d)50a70*_271hBg@jd!X!}lchCFD;L3+8+oU;6tl zYW8jM3&g6#_eHIkE6S0g1TxmO;`5+VO0ypS{|OX)63=?iV+7qI{v;L||0cdW<(UaH zjGHI4iz~#03C|jp;!{SyI6UF2;u<5<_$%mljhG}J$Q}D{t{6e}GP1Yiru*|{f99lV z*{`C(KhC4SuNeo8PZ?prf6BFQ;+I`dxbAY@?|R<#HP`K~EAfQ>ZgO4by4EGu7t{)o zjedUDlkP7f>M|}B4M5D|3HDD#Z_~MAj%S8nEIHrt*>ZlS$UdpT{#mfB1m!%1`Q)&e zDJEd-ULvj*S%~ikKIwC+F=^5k^$}vr7W_;6h%M91M>BJ`Y=Kf#ede0a)BHGj%VPaz znfg)7;ps9K+7c1};{Lh&RrhP|U%UUq{d@Nt?mxNz;{L1q1@}AdV{Vrx!;|fq;F;u^ z>Y47D<(cbQ;PHA+@htP?dkQ?oo>EVRr`j_Ow6v1{r(b`+zmV~_DeDEa_J8{iEa-&) zg!p8dzw-@xv)_16(BEYk8Be%V|7|l;KmXuQU$sI0rTYCV+cPTR*DC%SgugX@Z-|9+ zO6#XpWiEXepO;1MN%NOttdxS=G>CTL6YE8Ws4}I5UkaIG!mN|0BiZzF7x6Z6%JSk0 z3b%!$B=d&zLfY`Fm#GwAm*wEhw!ywP`~~XJ|*?kZ3<=%X!a;Nm(-}z50-> zq}L_{hj_W>;UN{LXY`xIJL0b-Q)=0g@=~1U1D%iH(7chjPN2L5hvriHQa*cm^q#(2 z{v~)i4Z)|pRIW~kpQ1HT8a%C~t-h`$7;Fs&0wwDsp@BvSOhfw`Q@@nUg`}4iSgUsL zZcKt$LjXH=4)^0-Vqul^PA(+VKn;{rl9ouQCtZSSuJ8zUSi*YspHxt386|SaF=@bY zZCUC`0ul%?klt8)crcRumJuffd?11Qljd*2H+|_teM)^xU)}%ICt4Pukn#{sP+Hx0 z_{n`oeQl>DdOn`DNIH6={6t4YCj?j1%?|vgPiu95Z)_(HO7~ZWBV;2M2*4O60u2x; zB!Gg%_cf7`?#KXnGfMF?P#PN^3dVYZta3*Jxeg6fb>Si@ttAaYS<#y+b0rSdgnFal zAZszOI8BwPgjA$yYZnMW6&<(U%koQ0g2DJsQXSz+P&5r%4G6!@No^}F;RB|@uHl{@ zpdb_u4M3mL*xK$`FqiRyITa z^v``vekSX8#wm?EKJwuAkG}WPS8v(VQ94Cr%<-6 ze(@#og!mqKyZ!Ii9Gl1gPZ56<|80AlVazZV8O6q{;zrl+#D77mnrRdn^;jcqGjiT$soS`J>zAgN-Pq;GB$|67;hVwicHre*VW=~5pdPI9u$qP zPFK|RA=hK5<4h5Eo#@|v++V+QrTY^i@lEoRR4LM>`b|PfGM)85{jy?q$nvTE$%*}@ zet*rC?l1XW@{`28lp8$^)yonGJ-8`p!7&JA{VzFIdX;Qm{>pY$dRk@^u}9{;D7qNGXuR=jpU_A`0bG+_sG15 z6bK5$7rpB#+{zIGPJK<0Baex1J@swhcYMN~nIrNr#3zgC>VI+m=*3rjq7~RNKl_CF z^ZcrFh#{r=TqqV*HWs&FNwPz%-q;SshQD>I*e=A1N^fOlWvQ4re__d5kv(PllqpkA z5t-9wOq(`sndktm)QA=&jDx4#49Mq-Ek+Pu`rCzgx7cSy@ufe^gr1`l&_Bd@G8} zs#cy_-*kHGrn9!3*VVJDe{jzQAG-L%AHDken{NG-aAi#sC(W8OZ^6Pvr!4j5uP7`I zlvPyKtXzF+-MYrpn$OtKb|w&VZs)dOsQaXar-+kK|0RBK>qXP1&t4#AFDss5%$h5V z#a)Kza*0VNi7C?n6qN;*@*K2X+AkCj4#$VOi>pf`fy$EVa8IZ*QqomXQCU-3R$5U} z6DbRqRaf*xLKUH!vOu7;xHsB02<3TkcWf|H93Sj1j>d|+VvteyLa2khRx}ttQINbB z!Z0C&^{NX!io4*>EK=Mb+7sP@eN}+x7MlOD;@=Btmv-&DV#EDmncze#VYUkz)?!$v zKC_O6waKB5&~F=pGn<;3Ts5g2-U(1D6-? zjdr8Epg=}jpdiN8Tv#~35|Xaes)d_?uyiy6ua)E|f#TRjhG9T*+E`By47R2B0VGw? z6G=@ap$ICu)a*}_c41KfkEMyUi(_WkTTrxXWfE{%gO0*o#=Kmj79oxyFx-#rc=%r> zmpX~5K46<@@^8|A{lk65eKEKNl7nlkDu?%m25A(+c~aN#j$o*(3rE;>Bpe>p zKY3-SQ*{r+uQ>LR)yrsqPfYz}3`kJ)lN>MUH?eN(S8p^vq=7jg55gOU?VXh!zpy|h zTGIK3oRyGvM9x<1)zy+UG^4VXR+Oq{kEtq{kE~jmkGN*`m{q&Iw5YdzY-AH-V^7dc zS*e|F`apBBVs+V&v)7K3V@DrI7de{c65LzYd=7kOkT(EWSHTHDA0HR>?gVv429J}7 zZe^kowqt1LI8vrdf`J6nAKs%@bxNp9JbD59R!pd>hL@1qS@VRK1gg&2QVAW$`C~C0 zG{=FHM7R;9kAjy3G*^<;@q0)WY{Rs!iW8m_eL9VWlhkB^tG)+Ii71Jq1Qcap>U5Gq z%2ZlAgQPatS|z}b>bkpO9whfz$-6aqof!(()(*kGFodvsco23XL;ig2w;Be7@hGvt zP!DQO7HarXT3=jQ+J{3!A@U{%=hooJFl87TjO~kr^=uFD%oJrV#fo~6r2F7*AKAfO z=@2zv9z(VDHaFC=0~z-J92waO-`+zJvR2^Frp@gg!TP#&XLM|Wph=I=3b;ZAH--xh zm?OfZ5}Gx30*WV_JDLisDHW`G`l3J(CPdtDgX>t3u3w5DFmLQ3XWIRdp}n!e-S+9k zmM8=P2=!1!P}WG8`WBr;_R;{LW0WMc2eU4rMgtAU_V#xT#&!eo1JMBzG{~7zsF#|& z59Xi5KFQ3JU6*_JvUB<_n2qdaXlNbK4JF+^c>fMrG4nAuo#cvr1h9}Dgu`|>65j{p z_2E1>h$l7}+CjV}93Aeny@T6;0ZM?mfeRrN_0pjoub=!qd*k~sY4-014aElX;foy< zrW-|2Kv4bR-bhrj4OX^Umbv;dkseVH{5}s4?Hz>9k>|{KB(j^t)!}~n#iT?qZM8dp zI0m96HE0CtXfDuX62N_Ico1H~yN2WYA|sLRVd>V7Q_-{TL5zvQaAXezBXaJKvIf!H z#6t)O6tVmGaU3j%9poYg7bIK&yt7#S!IH<|Fcg$wRCRcOcIoM-c_$?aQy8ICvJz9l z!_i%=-j%}!cLaghcfOC9RLN*x9T0JE%A+)Kb`PrtZRTX zP-GtO#iMPx@m1I_>IV;6W9vX6jz0c%TU?SXJ9`JI5+49b%f_o!M6M&2h*e(OafhXt zGd7`7;0x#vn32=(t_X%A<{DHAlR~;2is(@vx_KV!QCz#r?0{Fjah@_0>%pb$24SKu z^|6sv;eGwyy8eA@fCK94@EV`2$ZqQFA+PSrv>g`Mj-|$)D5f%!+pwe_j54d@B^-`H z!PY-y^PtDK2#PptHHavpAt4XJ05a2=-M=Kjs` zh|1RhlB(yqb|a?RIyuKS@)UbEO|11auL3|_gPv8JAf^8;GuIhIKsQhf2`?g@YuNZa{m;nlESJR&b`AnMl8r8f< zk2_+q77~rIX69M19ur)nIq6Xfda{nDyhyx(=e#)bY``Sff~ik0HYg#Df;u(jwP400 z(3tPo--n##He0jYW^M6Hrlz|Y@gKZJ&ui6GoKG}kBh{@3>Qyf644T^LZHQtyHPVR<8TxgebAg2huUcX zZU7@JF{r7+T3Ycuowkov=VF_lro-ZJXb`gmn$QNVBx(w2o_^4h5T_INL}SBoTr9+^ zLpX@W$uBH%lJtnkG!zM9_ynx{L$$& zTwPyXu70k=Sqb@cehpve*X8Ks$O{$w_DvAU6u(!z{q-~;lb z({qDjKBNdg10rFuN|zYOO(Z=1;4>DCeTuQ7-WdziBs>(uX5^0OP%W-k4Z}YqG#0d= z-U-i{UccsrWtI8wM}0??Pv%6?@Cc49uB+Qvx30P4+!Jlbm^)HHBAS$3bR@hZQiMe= zdjrLpNV-fWIXyPf$om2KBv@lOJ|rVH6r|poP>OvAd(2j!X*063XX}VPoJWz9 z=LxS^Z0Ns2^;=+bT0gTw0lOYCFm%DtLqqDbcI~E3;tR{fsp8LL{I$V8^v|%q`!j6R zQ>7E)yW;0~lV#9b;uw<=(*N{b%1`ApdQZRn`5&AfW7z4jDOgXGF4AlgeqeC&_8(A{ z-oV9Nb-YcmMv{VgF`}0eG{QE<;%!hM^x$r`*2oV16Xyrx(4P-+9w61R1I8P{(1=0x z1qbF(TnCCu%Xlr<8`%-+-e;@UIQErmYu6Rz``4^mwtQ{T_)FSTf>O5k^kLtR>$p8` zbKrnOkXnyT+iavv!(KKgZqmA*?E}O8`-s2oFFXJvLTJ0ku_-v-baa3EU~O&BV5~1V zJk(R|$60>p;`F67So7};VT(py_z15ls370{7{_&$ETqxyG>)ZJM+247veIZ}d6afH zhO37ImBVGF!f)96Uv@Q#h7YbRj!FKYl41Y@`L_i;`%rtmoosBbiv)-GJ-85_(k$#=pxxEI~c>EFb zr%YL_BT1p(Bc@JWJT=9qfSy$fog*`Q%9LCkv4?pSnGAcgN!h}aE2b`-OJ5jiW!k^1 zV3syTOq`O7V^-}r1ivbf;@O>c*_SdZ#rxV>`^wN`Y za5P|uZ~k_IxUmA`>YrnO{O~DU_Q9ivF6*r8EBu2V_;_k8-1T_)_tpKszxm#uzWLWv zf8%a*+6PibW6j5laz630``zjplZ#&)I^}nNe*TBqFL|E)>F2+Hc+N#-_qdlW{7tK7 zE?iRT|BMTZZt1-Ihu;{y5V_%Jf^^K|T zyvFfW?_6~4LknN{Siw8Lt-AON?@Z@-)md+EsJwB?H^2AJ ze2%x>vc5X@A2(h5@9!+(__u2>Ui!VuhW=H&Tfp%*Z+`sd??3s@xS~uIPsjG2S4+pcY8U$>_5Nt^Bdm! z#h;G8JH+wFMvpyk-$P&eQto>fa{S8EFYL_-c3r;oy-PXXUh>c7+m9Xo&Z+NR#qrI{ zzIxqNm$lxs<-Hp@{`C*#4=maH*O!OhyPf0LJoc-{?)du4_gwSd-5kI1z|a-X2k(FD z{`U@X{Q2ANyXJ<0hJSkUy+=8|d&cC)-+Ckaqc6XAnB!j#1R|T4e*XJ^eeX$*AG&D& z3s3*z)K5%5_AJLUSFTw8_Ie|7jn$9~80XRp{8%X#+jRi8NaCdUgRbAEBotgrmwkz?<0ocbJG==SH1 zSqx^%XJ35%^N@n)Z$}<-Gv^ZG(wrOL8mT$;;K^b>=X_*F)_3+lck>g~?2!S> zx~>1Q|GCl+UDM7dCE({{^fwRQUHvaV>fkexecP_y6&+fw|#77(ewHy&OM%@6lU7@tM9)*OP5HK9}u2@aX=LoIh?gF68*$ z+5fihuGcyq-HS6L^!esfw{>3s;m!|VZ(POk)!S}*=Bf6IXAT)Ra{Q4yZ~pJCk1qfC zw~gC5{>$K^p3QjdS34-13>hTc7^ROxL6Q{<&}b zrlbAwm%b8k9p?Bi>K6ZT)}P+FqQ&(j$3Hu=^@q1T=Y6)v^(@C(> z^R?f)-sJe)+t+^i=+zHindyFq;{}(Veb1Dm3t#ZUYXUvU4_x<~U)??Bww3NYj(;-m z_PgG`ZOX4VyQjrl>n`B< zHOCsxE53cl)lay~IbQeJRkwd~R@sX`b+6+1{quhL==DFF^Qk|(8#sPs@5^89fBdH3 zPWH5LJmsXCG-vF9-?QPdri>L{$#0>+@x!OqDsN>#S~}S5FP-+W$xM6^%@knrZ1>{N z*MjUg#K&YmB=MFs#3V3HPi~@NOEP6LM`T)KcR2~3`%Hzcxj8- z9p?t2pMy;(RCT-~-y3BUKe8N?Qt0+h+(uPaxotZ(c3JspZrM2`28U%xeiAaUcy}x~ zL=m;5p6$susFj2^gu>=7TbWz?aEr});|J|4cj9a9u+#Q^Qi<|4#N|ZcT}YXlv$ z;h|=DVD;)ntJ$3%tY#cb066ucg+Z-1S3aj7>WQr)wO%ar3-DiVLGA(X0ly!iz}du- zktA#o{vr7)T$GfQ1WHOv%1X*hDoQF#s!FO$Y62yY&r1Vkf$~5_pfXSusK&K_C8dGV zQXCK{$Mu<&rB$WXr8Q+GWr4ENva+)BvWl|GvZ}J`vYPUe@<4fMd0BaRc}00;c~yCJ zc}+!0MWCXzqO7940;dcrsw%20YAQ=A1C^zfWtHWX6*yj0RasqGQ&mzGs4A^0t17Rm zsH&{0s;aK4sV=DwRF_tlRhL&+R99A4RaaNn)S!wrD82@uYmlu5k8HRQXwwJ!*kK7) zqu8Fvp@3a4n9WP7&?gb(8!SSl^%Id4$OwkGDlSuVPFU?>sYl8p*zRz|RssgGJQRSH zD)dV_+n{%NfZ|$b&U&L14toBsj~vxLp@?hDk39Be{qLcVt(+w41|zc_;jpE&{Uo!f zZER3QCmzUF&%d4Sf7AVmVNUxyAy(u`wt(X=E6MpLUSXe>O8a#st?S&lF>-Yg)!hQ>Pm< zT(ewrCeF`TkiF1YV(jwlc0KI=g6lB6uKd9DV&0E(e(d^J*H4XCGG2B4+Vi^W58gLC zZ@K>4{kDW=+a-f+{WzxdS;e<3p~r*ie0v;OqL4?NRnS5}>M_C*hT z?%}UjyfW?bk6isJ&%{Ynr{xFAYa5%IPj77tN49?XEA!@OW#>+qKC7~(_P+anawMnf z+UxGi%3ZmpCwk5GQ)9u$|8R6m*PHJgYwx)AwxVL6fAc5ryz4V}-+SLfUp@R}=7hW% z3u;eoJoBD=pZ)%wS##ztUb^PgU;pmtv8SH)cu!fn%wJYri$iD|+c(SOT-}kL-8jy6 z(MRuo;Nj0d@xtdG?vH)rhVvHh&v1JR-92ujxM=j^1@6G)`JN>?Cugk4Xz)y0KKelB z63-HkKf8QF>$-zgIWu#!XRmCmad&6ul+4Un-Bl^aw^@m z8FRBdd088qtI8&pWff)T9$dERj1}3-XU<(VfBLMPRus@MaZXll=K5@3&hUi#HOn(s zX5?m`nQ3H9ac7KP*>&>z?A+0N&Rg6#Avbg4Nwt}|l?9$zqyMxj+@7~SC%36_-umqJ ziOpHLqkn12UEn^gxyn5$J2$f?EB9dKoUE1Z`DYoEODA4(ThH)>(I-FJ(mnCgk|{H< zdEnyH?)s;TYqFMmwq`ENZOZj$oOJQ$J0oX!YOPeRh1tkLf+&Al{J819UW%uH8SW_DK2)ZFHlJ+Zpe=-g6(zd1z$cl^^?b z$=T;zdDXS^|83IbGg{t$r>OYUt=odXxb$OJUw8feU-;_Ro_hK_-~IV(zd9y7Owd)e zD_1w4zU|Vh@$%8He(mY+KKJ}n1F1_xyPk!gQ=O<3huU*;Le0Jy7 z^Mc{X$F92{S)TgN%dh?Fjfqnmo5PXOOTT#d8;}3!U*Gu8OD?dGv{WWo3$dNDYw7_+HeOZ6nN%lPH>MN!mHxI z2KVUQ*{j@>-K(;yvsYwXd~E9M?Bc0~?nRRqO&-07fob2A>IX7qY zlG*cfXXdncMn9VQ;N5w%Jb}AB2Ym zho4xlT;lPH>oT^BZ71C+rp@v$%=2zvc(mZo70XM!1+jZxDRAAlz3}9>w-<@`yp^9i zw!QLQ(ZDmbK-fjc@F_>&&*;qD`MXeAg!N ze5gJ0gS*$zHNiSoCdsX)G*@m|Y8Q=!XaA)PZ78tdZ-II+Z zxvsf}%TiqLD=fx?NAN6~?y~ z3HQg0?Ou@?bqSA=>ve5(fy1Kib6gq5&91rACK}7K=S(Pam!NGfm(N%S%)4B9XjidO z2BBsd=~J9YoohqLcp`%sGOXScILVR zfSF~ib}z{=vey`SuJRmA8%EGgs031sPa5v*8H`y2XPhTxxih|%O^umFSVdn^I>Yr_ z)GZU?JlE!Ida{e~fwvKOLo+hqSkd)o^gJlSxEAGk3~#PKlY1)D?HY9XS02slH3PCpOoNSl$*2++`f)tuHK8MKPT8Mf+j#iW@Xwc!v`B`C3k?{g&^=7> z)ss}>W_f173oo~*vGi{%N{UJZPP+;7Y7d7SCb7 zO>LV*Qi*(JiZ%z}jdp!jO?sn7HKd~{_O45X73~yU2z-p!wYN8J>L9o9{+%STqujHa z+neiK8tD}BBAnZa47L*-j!KIqj^~>oTH4m33y%-M%F)!^*wPSeZs1HfafW&*bW$m> z8yIBY_v)F-hnm^*X)Kwg)1|H^9AT>|mjcyLs4reb+x60*sDv9tTc9}Pv;(;A3t0tO zSfR?`;&2Oa3my8gTVLReGxm}}uVmD`w@B=P?ZQwavI$0>JU^@n$7-oa;ntK%K-ZBb zrw)@qwdO<&^@eIiQ!I>Au8qAB+P4+B+!Q2g^=V6UYh$pnmC;Lfqe!EHV$cQ5j^n}7 z-qGCAtopC3Hw2@1YAs`jXdPy^I+_3qkD-3lbhNQNc(?Y$v3|mQ+9xA|;`B z0j}8-)XKy`Yq9~@yyI9S`6Twrb7e7Dz>l4LI5D+ftQPsgx?B=eMI0Pu9hY__pvkb(d zRm4OcwWXs~FazjQFCA6%t)(IzAQF;`KGgyPq@ zSYSkvFL7APNi2|bydW=Jk|ewWHugC9M7H5LR!Qa`upw1fYxGCYK=ivS0PFcr~(*&?ww9wZYI-giX{fi^y>>TPUmvccmCL^lKo zWH2aGtmBiXqz$1SCrv0p3*ofuAoV1;DyAt!$l?kq2nS4V&_{BABbh#lD-ZrfM1dDd zbjZRAPdxw7vAH3>Nn|he>0X?z+MyMs8lN=5;EF*w^v2nW!3YsCDin>Q=kRYl5F&IM zlC0I^{n3E|zDY9`wBq6TU@^O_D^_I}3Vy}|B=HR>fc3WWP&Mr3q5p$Im{4`PoVn3S ze6R&4s)lyrkYPB|69P2_eSsn#B3!6`&oaw1EeX|$)m7z=*AjSd=6XU7+6EM(_{hkWBB3> z7KmJNKt86)$n1s9R3uzv6;VK)xzZ}fEPIGgZi^IeG&6^_?f%7L@d120@!f`R0lrJ{ zEyCB2Z$7>&7mMbGMj!+8|0dD8c|$#dwvCOO>N+3~;Wh!BnSjAV>uD{GI@Zv(86u20 zt8r63dS(Nt#GWYeu}ZBH)kCB>L)cCyC-tS4@nj3BFVPLmNSWZ!4?wcn8}Lan2qt6V z1u9dLHgIMHvjrUt2Y(ac;Q?4Hp#$U)p#zhENsx$LD6Z3MXHK>X770n`Nt550Wrpa& z5nMaQeQv8CPQwm*I~7l58K!6~40u)hExw70D|ZG$3ft6R>nabu@57?1oQ*+o=~CjT zJH`j6#axC#9O(u1rAi%l0ERRR=|!eb1D-S3;CDuFX(-=PVZ%nM-cps2GN#qhRu@xE zG0bZVytVwre=GPa|HJVXr1y3zal4NK#8q|yn z?R$uNgrXkW=jrZ+HwsKjvc-~6lZ84>=_GTGm~>ATd=RwsuAz20AU5LSFXEDPtWdil zkTO7sy`6-u$9fWwd`q;$Ji1qUy})5=IWh~p#Au}8j-umno^D}48tTJhvl|PhReU3X zcljDWBEfu-{ElxcNSA;ITAIxCZk=Ozq)EtPYnl@3rI4IDXTm){X+Yo@n7;cbO^OD& zD%K8;)1`uoGOQL;SA{KL)4Xfay_`C0vz({LdI^a(4eVy3sF&YO*_lw>C({hBh5QG@W*^P9zv5~94V!D>@<)!^4&{mUeY~1>0S}m$Lbiq zj3!NHTd1tE3b##zlt;7#23>9b4l8Iwr*>z)VZw zGM%%(Z5Sgu7&pRrK#oNkvaqoTM5b_%iI&>5FA8+~)?v{B7ZxOUkxM+@TlUKB2%JyD zIa_(=S1%}fC1#7nhEOl2Hge6AkjY&5VF72|u(~rcQtS2EiW)}|y0*tnN{}0*?;4y? ziuS-o6;bG1Q9NzsrYtD4rj zo`e>*Mwd5|+LD-qmzVQHSnYZPQUKEehMMh6wK2*trC`6vH&-KmK_^G(;wz=1VR2ZY zhgwX^kz~yjJA~m|FhM>ccoEsxhZEo`n|Bo!p`_GVB@(sQcx2Xn6&f_Sy9p@ri8kUm?3WjwLK_3g8FM z=tFjdOordQY&Hi74iHgcA(hEyxrD1iDXA*i8d8?i9y(c};OV1GnsJ!$)q67F9aKxnq zuy_(EJIYKpA@8$QwN4s!SXp#K9i#OS6473q&5|lPbMEEwC>Yc1oerZ4=Mj(`{1-et z^@YXiDpBZ8I{5t9GIyF zoW3u}xA=nHutF+`L#2}bY3bG%7C4XzFJekPE?q{lI(qA3p9xC7h7mA1NQ8!l4x3U)zV{+YseD_9eP%6t zutFjo8toXBV+lF})gw+O$CGm5^y*-YoI86ruV`3TQc_feu&JpjB_wB(_X$f@iHfOK z#nd-7!7jF>gpB`87RB7ris4nsNT38YYDy{(;!&5>z?dSD(g~0nH{Od=mPvUq-r-%d z*QPz+yn<|0y?!{9%QsssB_cNa+&WC}#|tRn^|!aJPY)V}ynxC9sI4P?jmpOhr~-gm&rA=fV!VJVy?%HcO%JGYynw2_{`$r-y1#0?fT{tg zJ$;3$iTiEs8ZWdOuYdg*2(Mvi*g;f$O7n{}G+yWRw=|`%TOC8Q7};^4)qDMCjZwGy z@z!dc*WWZot=4g^dd3T_!RueQDSaCo7~0@?p*7NAP7kedyl|QTr#U^GWX_hl2Ls?z z4K0mn0R_g(r2^nm4eJ8w0gabS1;C{m)|I9QG+r(h0GDc5SC$^oc)3&nT&iJRd3r$O zTwcw01T>e zL;4EUj28}AQ~TyIT2?n+K;TM^?d#IlXuNDGKx`>JBM+<_Z-u~+P8$PG!+7C<6>S;= z&Ujf-0IX>97;utVQM9+WQ0bxAX*VQF2%jW7n?jnP<+QTm@eTW=Y^#>ldTx@@mDXyF z=To^6rWG~2Bm4Bvc!UAN%uRFcuH;Y6?w( zV3P8^EC&9cXt9bW1ycZ)X@Y8-mv9!8k2sSBRxf@?#Yt8dy;vryX4uwcYQwS{8&>4F znf0MS9h50OSj714XWYg>Hv89D|C7u-SuiOnT_>g4jx^P)(2T!^Uqg*8!ct5{^&)nK3eiGb2(+HKTH1n^9kG9Ix3@>!^JD^sDa!Vf1 z>?|q39ar0+rXB&Bz>lO`baLq>?-WQj2!S;E z?O|#n$)ba_aPpYCQmE;z1Z_k|%EJN6AOQ3ef)^-uBhIeN2`-9)o<)#TMQoD5m}_tc z)SxPHo0ZafWqZbKg^y1YqNzp6SZpM9 ztYkpS1|7F}ByK{qLc^3Q9T5Y&N22)#GbHQ|6^Zzw{XUa2wWT=Fs&&~o6U`b}g23mh zfspZn&^w>1bAUFxxh{IuwAN$`K+=)1pHP*aRZ1c#c^=F`<8enM2uIf3So5jU{U*k( zgxY{nz>^ypm0CPqsj*4%&ny;ZK`CFV!H?H)C^WZ4Z*e?v60YY8MxR>>LC0oD|g z?me;3G=L>XNS9IaGQ3UPAYo=FU3%e+F7J0S;z7Q+xkxq$-hXMs!DbD``)a15A7F=5 z9n7G?l>!brJi&t)>FHsw3I(=gOtQ9QWT;F|Ox2#ficnlz*S=Z1?(EqMgi6u}0aTmu zurh+(jx^I&qdk$)Gl?e;5IWJUfTYY}oimqA1RP1u*v!Y(BnJbcA|W5kR2r0?D!6c& zK)O)S+)FT02o|aV#*1dNxsU{-k)~KQ&<#Sc>%sL*!Te1Zs;4$CRMpT~EuNNOilRoL zN|R8tM8-qCr^+ihCA_FrCN{mq~ucvw+MawZGOIAyrl!ef389-ULytxQ1rYgwdip0{A(h))a zYv$uS4c{=ns`FO5)>ntJi zZpsxcK_NCGd@Cfxc7(Tg!(SG{CnE6UgYeEM@*{j@7kvBNoGVHOgjj{}(m|w0xPFfi z*CKoi;q3@};R*0Qgy9QNABulSi1J%<#W|M)4#Fi@2=NZWcRmU~ou5FxuNLA)gy&o% z#N7zj-vB>@2t9CJ^%}yhABPY0TaoToIBr4s=xt~>!X=*-VwB?dpnQZS_XCdz-+U15 zM)=qvVDh$H(eRKEUWBjx6Usw)=rB43;Y+yHX9VF@&kAuB!W*9#;uVCq{0#L(xbauO z&+WP5!q-tQ!pE`-BrksaQ4T5FN903HpEthL)W4`2w%S* za1g$7Bj6ys{U+20;f*(=eF*Qo1#s>IK5j#M5FWZ6`4N`iVTcEJTgYcD~;h^xLT=A2a;ISW} z|L2BiKzQjZs0YF)Up2&~2-m)5h`SMr*Fh%;xBeF8ARPT2@Q3jAKLE}{=;t@kZiE;9 z5%@>=`d-J2s;X0 zVk5$lVwc#7aJ0fDMiI`ga)~<;mejh$VT3QPa*0QON#~EKb_d`G5f*pJo`T))iKn`Hv!@8IT zE`3E8eUC%0kD+~F)vzwcfKy+E9KhOd>Y{E8dVE3`lfdck=wcSw{5_Nd2Y#T7=(oY| zMO_p>0lRuh7Zt#nU!pzW+D6^2LvORqFUGo@P%kpf2A3^5Lzyc+btx=$El1vq{kzSj67&|hze zGGH`ih&Zs}X6OSrdkf?QMm`BS32!&V0I>K|h8P33b{k@j(s!Z1z=6lHIzNs1Gy(a3 z48GroT)>#O zh$ZTPrQ28{2{boYq7AqJ>;jH&Yl(hfU(^yK!1nDd_%!tIJ(idQR=w8}%fO-S!S6TF zSFt5pfphP-L?^IxXG@F$Q!z`d5$(CVSYXe zy#U2ymS_Z;U$aCCSTt&hQQ-8q(GOtLIQsi%wDSY>1GosR2TuRQ67#^uXDn=N(Ecp= z0q1^?dcf*eEYSok`xo@`7tE`-zz^7<*`nmHpmS_73KRvlmx`!BY|6mYy5{RS>yhJODY?X{raz=ru%#Vx1FJt_i&bFzwUGOD*za|=s03DD54nNS8*R}7EKWfVVE;|%KXC45 z=%4ToTSWf>JG%${1xD_}_yOl1KzqQtep}1}+rJ2Tf#Z*&{u=r_1bKnxuq_h6(r=(0 z;Pkg_kpeC}Zi`-E%M-8`L?6ay1a*`fm2_#<1?0K1>I zMI&%*8hQW@JOlZG=9(>f-hdwdiSY#XzhR3RVCqd?$>%inXuQ zJ>b%8o>&Lgy#@NWFkXfu7J$_UJEH#Iu%}8#v;Z3pbwnp{waO7=K=C0*%m9;hj#vUN z107K)mQQv>8L;9UM^pnR&vkI|Stue&M|1&K&v(QCu=GMli~@TucEmhz;Sxuz04pwY zL{uvjGr)3S>*bE91$KPQ5re?ykE4BH-DXEj0-ZKT%mG(!M18$bRNv}|II!$CM>GN_ zKjnxNu)W(6!@!k09We#0xEuWh*7Z1I4cOG{h(4oG4BYRCAzMvKM9)cZxOu0-rQvxnGieqXWsSh*0Z<)U0%r*|mx|NG zW#Yr-mkZHwx!6>W!Irgz-84P z;^OH$g_yfjT+(`%Xdb*vTv~y%hT6NuWeazU%X{t-Evxs4D;n<=R}S4PK00?FzQ}dI z(AMr3AM5&p__*_k*j$0LhMq@6Tl`Dns)ZqObuG>sTD~l_Vc`6i#WnR`!FkSCM7wxQ zd?NmsxOVU{ab0v+bhHl(ZE9FtpZIT~_5QcGVdAUe#?lcX;v*u}0~{U^H?0GUzb3S* zuZf#`zb0-e{)W&RzacuuM#ZhkZ;DTjepB35`YqAb`z>*M$K%lDyZfIIJ=0H!duqRfbCU0fdl$xq7WuBQI=?IOs=g{Ug;xJM&Ry0--r$-jD18I+y&>|u zfWvQyg7S4?P8MoTV??uyH)u}x2F>g))y%{mnpwW5mOqDBy_aSr%QUlkZ_Vo6TeF+@ z(d^lMG^>1H&FS4&Gh53wvvNPpoT}8!u_H8d?MN*zbu_MJkJhxlqcvmt7_FeMM$?9C zw7mLbHKXk~&50bZX|dxqr?pm#44hnppmnrU{(C)ODkecWGvQpJt8rX~y7#INNwo)5agv z^wNIKYU|guE}W-0pVQ3A0WEKQP_v32(Tph0P>Q~!X=Pv1jJiiPXXa7OZ2q!lEPMrL zOpj^i{MR&N_Ul?CI;v@G_Cpx zOh?&3UbxbzTZwbP_gr1?PU`x|1-f0=r0cC0>-z8|x><9XZqI#8 z&#(Eoo?pIM*Akm`XJxalmtL(~vsdf+z1QewZ%Wq|Q+j^tCf%sKS=T3T1>GIG*>$(> z#CvpWtVhpJ+ylAq(d~tMb*HIUw}CrblX4b))+4x;^o_ZjAjyH%8WUefFQaw)9Uuzv>NLYkWhu`hk;g=;qv; zx|n}c*H+%t^Q!)(o1^%qW`||y<9WDd#)mg&fpfrRe0Q@q-!LW$45Ke%=tJ8WX3hSF zHNL-LR)5eiMYWONSZ(OehYY>!2*a$48%FI>hEa92VU!(X7_l0|h#qU?l^ut&TBFc8 z5xnXQz48=X!=GYkb*C74wWk_-O9E#M2}A2l7^oh?IcGKq#V`adw zdmlz$zi8+kgND)ah+&H_8Aj`)hFw1dK0}7+`LdyRO&Iy>6NWkd0zNAEqLCMU3Fjie zHuUz_4P$D}FnbKsXmw1hG~cva3QcolPqVjs(9~xiF(b2&nr6@cn9j)eO|x~{G>e}% zjp(dtMt*G;bS#*5lzK4AY)R9Q&PV_x|3r+x}qM^-HE*`A0K<@Xw~c z@>kQIT|wQ~Ota&4Gt#kUMrPhH?cp~~yK5cw|AqG7GVSGmn|1<2Gj3bvM80KD6k3s% z4VGC_WNjGU(K46bXBk~PTXz3O%O2U)vPVlTdudP0?AjZ7`&ef80hZZxpyezbWEqPG zTZN@nmJvJLDolRJ(ua<+oaUpgg8pMIW2M&8Do+I8O_tTR2_HhNxAN9bx3tI^meF*k zl~>kaIU^00HrZgA^%q!qGZ$J`Ym=pQHdzJB7g>2L7h4X_1hn=`ENkTw%dWiCGR9gg zD{+P8#6N23W384se3fM_UuESjwp;eVwN~EPb@={jhn3fNy=5$=ENwkyne8`QR@E(* zR(Fe4Saz#bAa1iZL_cLk7VfYLr|!0*;$F*2-fNkWJ}ZBr&(c!^mNoUTWejXK+D1t+KFW;P^*-AcJK0vtPPV;VVp|P6+xo&TwpF~*&TrV&&hOjZ z&Y#)C&X1JYcFR6?{&2Z%_3n>$Dr|k|AX{Iow4K_+Y&~(fZ8d(t*1JDwTYc5GKJ_8n z8au+)=a00lrMRsZA8i}s_#kNQv9?uzoUL~rZ`(_?wl#{ggQ*j2Z5dd0qHQ;wWE;(= z*ml*aw%wMn?cvk#dy}pA*4tL(blWaE!?yd*wDs8rv~@PFZ_lx{!E@|_=y`TtZPL~n zlhD)owqDs}=T%-}o6e=SIoD#FwI8?jwas?H^i_6V{WZ4M_6gfeT@M+rxAV(xu$|r; zY*XB98||HTVeEF>DDAejsczetztgrS?y?J-du%&#kL@Jy#aYF@w$^d4try*ITebJ2 z&HL@bg$Has`k=jC$!BaG=K$L^eAd>xK5y$i1CVdPb}ApX3rD|T8%=|@=pRIXzGD}( zf7iah{ztac_hb8kxgXm&U$Q^lJ8k!k{L~f;Kee}62Cf3dGxmccxTYU{#{Nvxv-U%M zGj@N+bM|Lvp0hvK_%r+SBR{hT#-6tyPR-h182h>X#ndnC!Il^7M@r{x(J*I!X?f0m zbn->;f6*SQe+hXn*cEYGZT&4W?icM|!J&ZW@USSj$ffjKbv21%` ztZgqgHSB;q{O(5_!tXW2WHD%W6h<%NI)2x@Piz`{pD?=LFE%Y9iua=*JBdvx#0f;) z_})~7yrvRij3KTgrglcZ5Q}yZMl<3PV(~^{G$0Oc6r0SLFsc#p?4B_ZgRXZKo4W9o z-KE{crWIiM?qXBvZjcMHZ+BtLB9@d2qYkkHaTswPv2+h%v?C59&Lc+lL_hX~%s~7N z8KV}l9dQJ439+&a^oV1KONhmLqYh#UaSSoCkJx13*4jpj38AO<5ymLuB4WcykZE6G z3;@>YlPP3CIs`rD<0K0*7t`tp(P3r|XCqlZSFi%AG$Cv=?fa^d6y&{78NEdCR z(zU=vq}zZc2f!{i;QXor{n-}n0S92Pr3VV5Yr8zr2u!{Q=S{%)d-KFJu&gLgmKeVCG~ z7ub*d$!e9J1I{B|g!8eILm&?@h58e5$c1$CQF&qzxBy%R()rmO%IW;9?8DH1jp9=c ztUeU=fE~b*W6@t=>v5n1mK~4&9tPV7HUg(>(O=-e3Ft4d?L_pq3jI3?e1NOKHsEMo zo)`vpo(z2g>AbET?RK7)Cn`UHdS~Z}7T~}YkP|reanu90U!5n)KPZfK`5>_FK>P{IION57WD}6iB@?H^-{D+x z07&PO;tb4joJ*3u()nZq(sVvK0PH!+5xt;`9*uKGVCyleUOTY#D73@rRbUg+$>SU` z4vZh~h{(~9>qO)O>729pOtFd1IU9iOIOiNiKAm^=A-!~pBUX`4BqV=x{WM2Z9wUsI zO^#>-uGHiF5g2c9#3HcvY?Rkv-r<~d1@v@I+Sed9(K+b~a2DsJvOmE1S@07V;`|iY zagpNR1)Kyuou9@&0^fl1(`Mj$GtO;~g?(SD=v#oDNYlCM2+HYPbpc4{s?oFIH(MPs zi}GrmuOgUq&f1K8I%gdLt^nJPgWNc8C3)!Fbp`o!?iy=^yw@nY7T_@ICE6Xa3~ahy z)$ak;9glf@1I7WE!a40Ma1Ka;&TW(6L+7>=z!jibi+P3fTl`U^O^d)fq*J#$q8~`- zxpCyr-T^%#P3O8jNXKxlTYduS0h@peKm?u6duLEi=e@<}icKXr@1^{>LX*yaQ^+s6 z7yLn2bsyvd#&8~tVA8p8*?Cx>fkh``KH_{hi8P%Lj{)g?IGTiy#`$mqaNsrQ3-#!n zcmnBKd@6Gk=@~6wm?vQ#;@r6VeAq9r@_hIwoEy&|P3OnO7hwE=2>6D4zQ9|+Mi;Ob zIA!IFX<(17%9jgJ|3dhW!hBH&td6Ms?rrkLIMVIgs`NOpxJekvXufCw#&AB}1Eh26 z#U_j&&ZpxSVO|1Lz}a0TomsM5zL>uVbvj&V_41chfN;d%GNVk@$bT_aS>CV0L z#R6~@Nd0j3$rrIpgi#Mn0AmNJ{7T>e(!~enixpt98s*Ix-*~4r^Tix6 zdIt2;0zV9F05+b5c7c(Ppk3fFu;L1=L+9s z0j7YRcgT9?ghHL}ClqalpTqrxCSb>1icdFi4E5>$!Z7mb{=zD7<=%X;hWxT#$n$a7 zBd`ltbAP^=0yY8>%msz|3NYCQeSI4J0agv7|G@ZHL4OtW`Yq@mSo$6G6F4@G`yW>e z!}%WQfRPE%0lR<*`Xq1x>FFOp@7G`+J*o1ifC;24Csn%qhv+ZTJ-`v*`cse_7)qxiR=1Fiteu7{k9XdhVjJG2k1`aR?Z z*8Bnbx&iwtAn9QS*ot)NpH;dFxPWy3GV0xkdVk3m&A^tws`A=b^2HF+L$9fHNRLKwPaHV#UX?#yglC;@f*o&}HIAG4A~VJKm4`Qow-{dR72_erG(30vy@}_ttNLzBi&CuxeMd z3vAy_wKu5HTm+6GpYC%t=n7}c>(?FBlZvp3oY*5m%y8j$XT4WS<02XpeVZXJw! zjRhEg+z&%A>AqNV6zc}=i;d%&ViGvJBl>YD?(r65d=A6C&YfZB!2Vr8SEcA?fg0$Y z!@&#~J4U7Jfy8$Zh#ietQBxqc1@-|cU3#oa7aygWIkjl&J6~A#H@$WuerDuVZu0BJhJAss515&$PXDU7` zK;kpppwja|>TmokmEQtoQv0#a`@PbhwUz>>pZx7Xs?7hvgixR(xG1x^B|I`C{Qu>X2he-YS;{R`dC zjAOr3i~E^H*oV-4%{lCICR0cshxrAp0n&ZWDXi0Tw}S3MjPoZIpBZ2Tey!^^m8Sck zkxsFxA4vVD|DyCCf_CkPh1R}{7L9Ba6-XB&MnC%6zbRBw1qwAAVzrT-qo310tKVnz znvIc-vDyvd8CYiAOf3w3@<#1Ytt8^YdRIqa%<(yc!WZ5qqvwZOqFqqK)^a+n6yL18sad zug`ff|1$*-74}C8j3GU;5p~>#UYL9FrC-k1;I=e{Fg+!ZPkLIoR<()8I#sCI5U=w! zRiF<1U?C`Pez;OPm6l+sDwV^mnuF3xpZShLFo0Ppw^$# zeJL^esAYSqRP%j%pttCUrtp^zq0>6#J(Uv``Ix zZHQ(Qj~jkdaQ02}%GXr4tLy%7{SSVd-QdvyNX!H^P`D~5uD#X@AfIP z{U*=3VI=$sNk{ZG&`Xl};W-i+oX@BECGfWb)4noOMMD_Z`b-TKG-T(2Bl)#q@Q$&) zrG4i~>304j-%0$*o=2Gftn3B!^5)N6y;S(;y>iVMoC;_KQ>=nrfOO26Ny&-y-U9xm zDP>D(y+4-bpQ-nZanIH}$vX~yGdzzv<<<}KUXtdwpl#XD7v)7ZqK;qvo}VZFCD;tC zb}M-!w(N#*9!>L~(6`LL-HdERopAnP>qsq{p!wK+uWEB%HA%iGrw!@DL32?=BtPl6 zwpZ~YUoOKIcopb_L1s0D!5n5&51d4tW&VqtPkuA#$H*lV=&<#8+K0U`N1Xj>rVsH) zx26L7hfdZ{dJf$7oNJ^1(HtNVNN=5p&AjfZBM{it!Ra<;wqjR}SjbT4?T>o}+M|BA zurABlhd`G}cP%lBz%?n?64X?Fkmgj={c3y%WiI~1`jb6R+p}h5C8~BKPBHxie#-#+ z@Y5IQeXxM^`YzW!8u!Els@*XrBOA@6>&c>9N8N!d)KI-$y0CddvXj2%A5=0FdHM>- zFqI)gIcO4yW1mrUq(2#a``I?v!=r%erx0hkejLAL@YQej)hC%K_}0>=uV>pOyNV%} z^r^Pfw!7`K|5t36`jSFyW?2VWC(i#o*u%W=HhTWoO=4`NQ?Gx0NC~SPI(GKZy;bGM_t{+r@jRk!R zZOgo^k*Y@H)_^$pMMY1(N(SG2>hR4bvL|X|itDec+BBDvnKs=Gs?51Cfx4Z8s-3q> zNBvtvj6b62;-39x`OX4E(7rhBINd!^6=>pLQuJ-$B}3TUM@Ri@Gt~>R(_QhXro2X@ z`4K~0;&C6x8c4x;d^&AMM$SE-Q37F8Mqtxd1A3CN?ej|BeqxB=d^OE8Yg`MkxcUZG z8Vk*#am1DZ#V6_7_#J6J1KHP)b&-w8b?pzk6-@B~zMjk|kiNeJJR5mj>Rp>ZGtGZw zD{KB7S$nQEzaFx8fPdmqC4Ys>f2TD6WNy{=f^{;WSujKhn?qH|r*SU&vTADpzh$6n z>`bGEqLHN(B=t=8NwT)T3tDO;#J;}Y&h`~Yc?>bttjwtszbQB${E2H{fotYk?}|;i zjL`nZ!Gqdecue*8oz5wc%4-XqR9BrxBONRQ(=R zJ8KOu&}+O&3>^@i2|J2^ThURwGWgn|bD4T~ZNj+>g^+RC8?St4%=`8s#dAbb&>Vf* z9hdBV1uj+mzJ+F%KTUQ-I-F&m^qYcnNt$Qoo}Z3-+><2qlg46{>a!iL5HW&taGL%< z+V2s6+B*!e%{ZoHk88mxx6eIWneSCNd_f)8yJVgf5&t&uul=gh=>!fRDLDU5^PkxY z{|K%jP$!&!*u1X*e;Vh+l3QaX}*vBXMDr- zTZMK=zw_g&t#tg@jq!JZL2lW$*mez0?0_%1G{wB3IlWGcS9(5zue_zqH zDXJ_#A+O1yCjT6ysw6K3-@f#~%{;zjqcOw*?oWD-edkB+9QcpsSRHt$5G%f`WG`{Y z{PHya0X=kIYLr6>DDy^~#+&%fP-GpB<2ME8_%y%PPa780psPWQVH~Pix9+u< zQ<&x#*8j2K(Q}xs(72KAE1y(-k9*^tJ!f+4^BRbL^4*O)wcm#ryFd-)G=9qvVygvu zuiseZ)G9~iImBV6_wB=5-Rn}l6>8nogK{C@AB-R`dQUxQZ*@kLwby`g;K}RsxZt} z$v4sXjr~mVY4Z3)YuF_h&@p_ph9;!zdgWdufx11vRCMhgU0`j;KHOb#KpkQ$pT#R= zaxdcA%G5K8XWCZYJDJ;7=z8I8oJG={AX`~yebL!J1?NXky1X;@pGG^}kaq*29(Bo9 zs#s5xu0MM$P2ZYx2{S6et2J~DBe`fVGB~UHJc%>~=ejiCOt~;OJgL;)wI1|kKUehK zid;D7rRldg9^_YhLEpyo^`>Ir9GRvM_p3%f^(o7-hS?bPk;Z-gMI|GAg9?H5Pp)I_ z+3Q#s&p0>`&o$;bs5pkNjd}=E)F<0-L~M9T$u;Kj2>6ZcGp%0KEjm}3&fBF6>xZkG zNtWT=t`(C!58J#xWc$^SJ;Ih`a^{s@7J07Fxrpmq3XCy~zdD$#DTIGeKV|D-JS$K_ z<2Cpz#k0?oGs8ahl;*Y{D<3fAj39j$X zE7C#mEUJL^y-D9u1L&wdT8~O!&g!qHLp11WkYuCaTSITXG`JUMUL!mn&XfP+`mSW? z-p8n-G0K>uVPiwOp!O$ztz`AB0U2W>Z^`?7IngB$mzk~^zhwwqbI9vhADye4k_FXX zolDo~JzoH?t|(9zqMJ+6R>t+K%c~--oA0^0Nok?Vq5JMA%G_p3NysO(A+E7}WiHQK z(mca`qK*O0bcqGn;|8)IxNL>S+I!}L^ho_2{EgB{PlPMM-g2!g>am4r1Y?}Bwzzk* z!rH0ecIy77+9~5^{MU&IpYExcbU|a3cvaC1@Y?66DWJZ`uxX<+iwwk`OQv&Ry0Mx< z$-=wUA?FaShwZDXU7vk<_u6Tb$hX=+{$L)JNHAEp~4^NLe z_^&r>P>p1rV!ibd9R<*aPX%l${P&}Imq+uoAF=rFs=smkmci#UTYWy0>Q5t8lQLifIy*Nx|oDVP0t(s^5WV{!_KFwfdE)JB*m*`i=N4gO5L*FVcCR&z;L_ z=|xnmdsDSTI%m2Zde#@|EIy#-Fh76O1pz-FW7#^n4d=pdyYqKs3(ur1&~;melgu$L zqyw6F^W2vq)f3WjYv%De{8_8#97xxs-@0|B1Dby__-z@!%C%)`CxzI`^;>0S{1?3U z1bg<~dXjtAF;p9R7j!G2TVT2+uf0IOu=4u)73F&VwWk0X7Pj%%4VJ%8%M=MUBIL>%Gzb@(lV&$iQMjRLAa zia5>nTV-YZhiewsH_^6Ftv%{mg62Tv->NS(?_|LEXV?w-GtX?~c+$P61k;gjnJ#1R zg{IsoCyU8`=(?}=9kxgMrr_IW?u^gL%DoiL_ZVUu^Q7xS3eLuFxpOQP?l)=Ijw09R z(Ni9HbSIFrML$@#;SKpHXk504|9oo<9R&H0A82f7{OYzPRwo^-m4;?t0ePkMr7vLXG_`EVQ4lO4+7o10Qk8Dgk8O808}n2!1*L!IXX(j+J# zo9RUTVXoh)YRft8pQGv-x4_2Dzl~!$;x`L^jT^J{m%R^^&Vo&Y9+u0&51#}Tz07Z7 zi}JzN{2NPuis@*c;M1KVv8$4g^ejV;xkckRi2C(hKj%2KhnoY@FM__6>C-;5Hv8Em zI#Tq+S7MQ!mzvNi(=V!Q8lSgo=XIHeuNY9jJHWShH>C&Ciwpt#!ic+8E{kb=M?u%c zbSckoq_+4hm=VWyH>!C4kRBzMzTUK;qpOrVZSwe~*OUUI476%h;cd92s|H>4nk>4w zyA~xuDN9k^uIL1Q%Mf;kVbCqd%tH(s4}7vxtam8-B7PQ9`n@eb16gB* zD8TIx$wkjqj@_IkSN8KDQZDc6hIr6;)`7m2$7Mx!3jg`-TA#{XG*C=*ouDh*UD?5S zC|z$T9X^#PhMCT{cS`%o0)5Q29=Dsay;aaPma6uAe%nVk6iQc)d&cWbx8TX?*$FLh znPwu}YXaTi9;&^!D<|1`Kj`ZBRCKhjkO6z%Ee^B3j=f^Q%F%n$^D_7~?4|gvF*}Tp zPkxL~i2S7v_Jn1MZo;GU=?i{O&C;}mi#2gBIu&~C_23MsKVCHaNtkFPH;$$O7Q6ERP&@9YmE#wxPJ8} z{x}>4(&TJZ7ifO9fUfhCiq0p0_WY91dHSzb)jSyneerEs?Y3q%+v;mot*?01PxRNQ z{`>B8=e{?h&%uU*S7xf4)DL>4t?YQk51$KGfv&s#3wD8Y5*cSTRFUZ0Kwn;`=xGln zL&$nkK(-usc7fQNDNQJOraV5`{UN*X7U-kMSD`z}&+_*Rk% z0lEUCVmpseJqJ|{y7Frj9X?C%(j^l2X}$XW#slW3tv>s~yw5n;2%8(k^Rqwy1wE7} z7ew-(9iTTm6#WFQQDg}0{|k&>!|#Y|y@aZc|0ltx<3{G=Uynl%){PE4CpeIKFrwC_ z2>L#Fi{ev?J)#VC8{)NYf8>o6yuRubIomrs)Zxa;n(9_fVI3;hfxhc@Mc?7AYcn~| zK#dw~6Hx5GCgEmFf&Jju{)pn|+h>A2U*@ z#)0a!pV}^@3l;vx?u0>UHkx z?GFDIiH?;N0qJ?3k|5#|xrncN)dPy5qTxOY%7pt?+?Xf@DL-9?*C&{q2>kK2cZP=AYBZ%=$I?;ZJ z;y32ayYS}<=zaDi-Rs4^HS_TTy)83GidByP*TH}0P{qGW=Hfq}|4q8Sma-Ac@!j?E zV^#eW(lUhX+tqm|?!|a}_q1UWpEmGmVm>~9l5_qU6>yW8^G{w!jDt_-aY~*x76}QzxH88KkLztWZw@q zy5tz9Jwr`lCFmpXgADbGKIYK}t_xS(SwYu@a{q+yLyET36&*f(tb%VI$?M7VWRhgk zUvyA=4T{e3=yLBD3do;@X&4WhJuQqZ2JbA+I&*MTg`w}HP;k>0;)t_|hhxj`h7SGkGXJ)*#A|(540l(yxil6Ts zW+2Nx`H_dTd4iVY9|rvb_n*=-_|8|cqfocxP(bDLs6U^ruk^EZI!@+Y0%`vxXrooh zmr&d@)&ptBxcBWI$kWWHe${|(rA^T-dUPT4jt)qX?Yd4dXhi)^(Dz=Y=!?AThzYz; znz^34-?Q-EX*H%zda*y`l~$I6)|*A}Z@X6UkGOW|8+X|+7>#gtadxKNeJz&J*6e$3WpbsvPDHVKYDjYkXU=b65N<->eR`xhNcrqV5Rit>KcFS%K@=d+ir_T+kN zL@;lY_R`2*o&XX3<_1>xImOMFI{mYxW&)ElJ|15zoMg3vWkKd)} zg{Sx2<4BJH1c#A6;u6dQ?`p(I4DI|y@sE1@p)CIz{Kg1K)&3XslmArozU#l7`#PK{ zz&0{Bc4{}F#-|_r*56S4>ZuV5K7U8Ap}Ef>xWBLkkiqvX#d9CxXDP_$Vu+clK4q zcM-oSIRALnl`rip!p^8`JQJ5{q%n;`w&vFqKUas&k8<#9&SXIJ3D9>ieK!e%;M|v{ z&#(>oV6D5+h6F_41Ny08`i_Om;c>_kjO0^LKr?^Z3^IV?*^e`LBTgp0V1-CA@H4GzGIRr_`bH{ z>OF&R(5}dimq6e0PbJriOaFX0{o9p`_{L4Fxo;@GY5(xh7WiUC%IGeJ&YvdHsK0&S zTeq(Gc2FjQb84Dz<~)GQan~xE$YiH;pr84dqEEjQcR-pxhn)_;t%0U~v-w=dm>3o~`mljUZpr#}e%m z`ChQQr*SSx^Bu{34NC_kBlOJ)> z=@VT`RUIe2#_1V{Bb9t{z9w~UN%Ko>z-$HoaZG9eC9>1K*$(bCXK${ymXFdB6ONYiC>0 zb8MSj`bdKB;$IYB@|BYBVQG0&Tb|EG3vTA1j$h_X`=HM+Ctg+jt6lrZOY`4~+#{iK z(>y80{jd@~^KEta5xb}PrgA((+fU}4@eD0^kzL?(v!Z%;wKpAh`Tg0`Z`l4%eLpDk zaJB%;WoC{#qn-l)u2RLn&$Wv$rum2NsUOPkFTnQ-U~>Kqrl;Q;$Q{FaGQFqb8*#_) z#x&oNj5Bn3)+TSjAzzIdaciUggHO*sicgQr=hQTxo~-W(Je1e(6kwe|i97nltAM@& z8q6~m(T6}L+N?%gK)daSt9HAQrr^A??Amp}-@$+STpZEIBG@kl>7RXj^fa%Mpzr*E zYJZ&?M{vHHrq5}g@_B+x7sIQK^5bLR+sbFW?!6l4a*uDgJ<&VNLF-ZWc9tS zF@3V))8Nj-lYD%_2c{l!O#~eW$u$6e>-_!Qm@C(N)BJie=AYWQ&QcfsauJ^;@EPE< z@`TIhmw$4{A>>S9DC|4LjwkEZ#gGN0+92au4Zbd;=K$Q`k%fsuF-OZtX57+NCWp!M)r|VB_VV#_UGeNmK zu<1t-I1Zmh-G+YV1m!W>-fyo z`E#0nYx}$g9J}V+=aGC};6L1=SRPFR(FH6DsZQ38sY~?zk%?Y_F=`J{MeKPppf2=|do&65|PPN&rs$|^ErsXZPYW<2dqTh*OJ-Z`!xto$gDv?gM8)G=5EpZ7kaiepB$RU)en5H*|PL zso_)i0719TeB85c=YX^<>3e&`KTJ=R$S1nht>}r~?R3>dyofG=So(XV2iJ$;JU*U& z{#;+fc~i#Y=aP=hs++0A9et50#t8so6ey1AS0qOaG5$9tOELDd6r9a}aM!Y}_)7ZRW45m(9;BxZ#Pzon?{>;W@bk_Xdzha8 zeQtLQEB~$N)BEcq)3Sx^3zyLM%=J2K3|$*;73=aIRLWGcL6-x*_eTbBPJ%S8do_i$ zKdeJ6wiFHhmZ9F8drj`lLjl#N{?~H-V$TNC=Zo?acWQ#m??4Wtex0rOui>{00lSjl z6veIqu7SSp)vBO27o;Z>c0=w$B-zsV(6z=ax7Vs#BRkI0E8VyC)T$~{{~AGGoEOlC z&!@lzbMKVyx>3K9>rZ<+&%IwVYO%!)+Z`!>^WZmGsM=q|ZyC1mjF;Ls&|J^9*+vl4 z^Suq*D1NnAtC`=-+xo6|ET5hW3V8@Zt(e5W8~o$NihtAF>VMe1*#e^nvo5F=8qa0$ zuPIUddpvy%1onv-7G#B7KbB*!)Vs5yUyz;0f4+OY^kpFbvnq|K-xE{y-Rp9H{Q~(6 zjeB=kF(m)j3%Zfr6kSqfXZcUMMeZ6bX^`gIH0b7-&fR~Zy^QNJ^`3gVck;8@aXb#x zjJe6VvPI%of-z_;RdW2_;MW3v3wtPj)1LmfEMGkY3z3h;bDZScOYtlB_+`yc(v>$q zmAz5_)$W~;|U-T=}| z-mR@WP|*);k)DQ@WshnYSFS!AF!HE19Oh6Bfre77$!Ir&+sj4Vmsi2o34bl(2Tid{NDR14F$lM3WzeIvO)h_9VLR3Mpl5~l5(PG0>8|*ML5Dv7#SBT83Qf7S?VofNGzTW|cnnl>MQ5 zQSHpH&EuDSUXi_A$?Fi>+YB>3jiU^{eI2&jGnMAGW@$GF4gcZbI>Yw4ix5GB)!l4e^29%NU&=dsRR zKIf(RWbc{ew}<^cPuZye?P`+8o_&L}Z<@~*o@p_r;U_{LW(k{9WZyIv6KrQ~EHmsZ zu&yommo8~v?Ef;x~e|TL!!vww3)&?UugvO=C>=I(u$ad@H?mI%6Ib;IF1*QqwZrL_adUk(!@$ zZPanQ;zM(b<;#5?DxZJ$IcWEg9)vWG3*a&FDaFq{r-1&_=YV)c)tzCko0W9Mu&=p0 z6rJgwG}*OCc>o!W&PyzfSnx&8RE%UX$Rzr9*s{z-OHK&|Ho0xJ zWc<@g9^d+zr7yiJTR|j8E9gu66urAf!9K(7K)$n)VFprc((@Sj)I6y8EO>Sh>L=85 zKf#k3?>-sH<=~oV_94Zu-Q$Z|hs?o~GkWneGmrXD{Kvq5i*=8Z>>HAWXOuy{WXYB#?NsN4YE2%0{`y-%l9aio8`V;!jx7?2U^g-jW0{ZIz zQuMW6`|0(O#sRWtj6)0RmEpRrhw17)d)~^qP&4__EPE(0`eExK1uRcJknRb0jVL*N z=PIH7r1vW`x9|n@vEs}u@GM7M0pH%QDZaE9l)?A?X74mcjW<0HS^srae}SvRpM|}< zI7G`>ddT2ds2@qt&wNACC$R>}K>mKq->6uV_jj^1r^v~!$H2Gg2a2zWF_i)Ptgv~Z z{7bVF^d;o`D3Dz^5!lv@;#cX-6W=}&8qGW|m-ZY7-NernUB5?{wH_82rM|tII+!DS zPJzB;R?*Wv0vT#>9^pSoC@|=JG3z{l|vInd3$3%V%ovsS;P(f|~3$}0P zPx?esl*}u-(r~)f&EFfQ9t^LGUGySRRXXK(5H@-v=H zK>Qa_f8^JSe>|){eY(?EKZ@rFCl*wF-}REmzbdnS9Q7Ce_wDf~J+-2K<8M`cpZwlD zlk+5VqPgcHzH^VAvHg?h9%bMeL+q?o#~d`LC^*MF?Vfw2WmhH9lu|=9rG_b*QtmvO zQtm050&j$9N*$9&Q|dA~n!-{l^Od`arr=6tTDg%ZO=X#e=}Cm@C8Em`ql|cTPp0vx znnXOJC9#N+9zmk^ake87pP`Vb^bk$qGX^rP9{-P~@EW^JmoVaWW|_w8yAttQti%}O zu8g}e?#@`sxCi5&jC(PXu1T)F8TVn_myzs^%J*a3pYZ_33dRE&)njGR)WMu4`yl#5 z7!PGUjIoOGaK;ZXevna(eKdvlSrMYCBN&flj58j^cr@cNjC379bnR!*2u4L$qrzi3 z|2W3u8P)zFnmU2gCo-PISjTuW<0*`%GA0;LWBf4VCdPWk(;3fTJd?43@hrxVFrLlW z$aoIpxs2yACK=CXynyjS#wNy#7%yhLgt3|NQpU>|FK29Fyn^vc#*Z?#GJcHl#ka?_=y`yr1y_#!oZ$F+Rxn8OD_x9sG)lhdABO_*ur!F@BzL zfbn6*FEDF8_R?(!+(SSo{kOkUY8gR?3N(yWLr7IJwImrjJH4+x;in+#WHQ{|o4ueDGS`Fs^2zh%UPH}t1_)Wpp+qiTDQPCkCLsaxg zM-ml{+o=9XGSnx3Np=v--#T4Vu7#A4-%Gk3lwHFm{aN60R(mOJi zG7fOPgE;*`#yZCH7~2@HXY6FWm+^CqUt@fRu|hhyiu8RRS5G6-!9_)@ba)JwmR?Jp8CKPnQ^p=XcRgmmQCKS;;!jn~&D|LpOqV?L@?Z@k)=UVo30>%ClI zdrrgM$xtH~h-^9fGHqdw(R z{W!~spE9_1S;6uJ<)Xg>unlSk+rOLr{8zSDdI5VG8g@`=*PchX+_keOIPJFk9Zv7e z^mCl1IYi<2oF=Xm{wC8E;$oE)FM|>FE13Tq6EOzf-DZvT6^+#S!#XF(LQzlzBGsOX-i@~Bvsd@7_*ryOz{2O(B5J^5-1ZaXzI zl!}U6{FAd=E^pXMdCf~(rXS(*!}e2pclC5OI!=0eiu2v^=tSOuh{5{JsJ}1r>-JZC zHsd#iZzEDpSpIIvZ;rK6&R(XHo}yEyW^s%Iad+Py-t5!(St{$T!2 zoWGgtyZv(Q;_saA>f!HP|H=yD@2#(Qa@v*Seonjg66A9T>vQvg#3w4QV!V;@PR55A z-F@Aooc<=`B;#|8?!NBVoL*x5Cu8Iw)!wd*`!F8JcqHRVjOQ|5$5<@&pS|BMW4p;! zE_mE>l`rtPOs2uqXIr2Age%){J zBgC&&|Az9T!YvQ#cU010AIbDFs*d2!hh{E!>D_!6E4NbK5NO|}b8&{tyAM(0>+Wlg zh77wRzRLL*l28bL#lY+d4CcR*BmX8t*~t(o0q1HXZ=oG0D!$C=Z*sc*bXsM+{N)_^ zZ&_HyKp(8XnxlTi4zItSqki4Lm3%?|O*!(f&XM04$ankS&G~Ns2Ltuo{M~ZMU7jPq z-U#n!Wsds8Iodrj2cMZ7^_z0kpUY8yDM$Y6Ir87ikzYhRmJmCr$dO-_BmamT`RzIS zbxKD47;ILBVm>cky9^Tnc07JLVN4a`f7hNmTU2?MM6Wz~rn3L>YgKvVx=i{3o*&gW zsq(l)kA8;B>+VqH72TQiweETLJ*vE0qDNoB?MLJTcTv$M(JLQd`q>8+{hUOvyqM|7 z=)#2hFVQQXVfxY`RX!-uEAQg+*ng?=Qi)!9tU>8#_UqifM6bM^+n@i2DqoQ3l~*zS zvV0&bDpn+V@j(wM#!|XKLVArc z_NYqt(?|Z0zrdLIvP$y zm!5Hrah-9A>y`btsz1Y6`c;)~XB2edi2jUmdX~}Te21~=aYg6)y9rIr=e~1Ek1<3J ztoPDiE52nCV{WN%cwDFHf*bA5Nc76PcwQ|2UX{20fzT^o;_}fIRX!%sE1%%@8`e~L zqeQQ~!nIqWgD=KgqE|k~{Kud_GX#!~LmhSM=2qJ^CRoZ@pHPw@LKM=eWH2HdS8UMd+0$x&2j{4|`|))A{Hp z^z&E7R~cVte1q{VM*RX+-)1ae+`#xA#+?~U89&IlALBKQCom=%&yjyDB`U6D+|2kT z#wQp*!FVy_&5XA*?%SZ`e2CK{j2~val<}L4_c1=q*vay^_7JD_+NaN@^WL3b8Q}T# z|BGK)WIq%1E2m0*MuqY#QQ_)&Wg9hauK(F)gG!5JrvHh{G|q3&qN@mxejl#y(jT3J zKEd>}cPe`4E`=^#is_lddQQ3d5zgA%)2|$-=u3}R80>$P>kaO!$`|RQt&lg^ z&X04n6TMLNvy2{&23@kjPai{`3SC@pY_lq#W?W%>Oje7g);aBt@1MBcVOj3!caHgq zHpQ=$v5e83#~9m@hQfi=fFkIUt(NlTwz>gTw~n7Q?*yXxFh5LtM=Dfj$r%l zx_8}`O1`TYZ)Uuh@yZn6h3IG`>DbFTIAC`!(jdi$ftWr!Tb}Ezeh;^ zUC57zAfJbj7sh8a zNB&2!EezAcxyYxp;~@W-7T)f*$bWxGeabHl$v+f&2$TN|78h`HNiTZCw7s`<30DC%JpiQv~yWgz~)* zZ`xVar#?}54b9N~z+nClk^i2M{5gyR+3z2j&q?@A;U3r*jdPF>jVIYlIet_42Q+M+U`7v=Cep86-)r6R&M|*`xI8HDA$zL+ zldqu==d>$Vk4#sjpCfr4b;yr(@;s;e1{9t_JR0#^T%X36!t-Es2r!tx8Iv=H{Fk`B zz3`htu-;XuNBYbF8<0AOi*3`%svY`7wEameQr{*J6}F zaQ&bu?K&!E&sX!rod;E_TDsl}`>$25_agIe;Ch#oDLZ;Er?2HSc|QuNK)Rpl-T4rl zKaX*J*B?x9+TEW8%b($LvQ-MdlxgodlMB#LKJs7VdhR;3$KFcr4@fG!2VpBeCGMY(>cALDi$|$ zntUpSpx)g6#AT@`=PJ*O(hHTmW0FsWd|!;JUJb?5t}$reUuXa9j#IFFndQMWm*Evo zyYuNbwqvqs3Q@KTSKoi<`tG>r>W`~$7uUEybNqa`i*EnjdM++<{Y9?t;y=rkzIRjN ziJkVNw70IDh>nr$)iOUO*8r+|N}ygh@@P(Xb3IyHD70|Bm`q{61SEdn=6Z*6{wrLs zmeUK^IM7^4?XTn^-%Ww+;#kCBKKa40`iCQ*=1}_qs-Ld^{enza$T3H;xD1ix{~6cY zn=%oC^)5yp)q9icx%~{*Yvg)+R;YIA**pqOGF>5`8KN}xhxBnj*K_6jH`gnpN(kG* zK*;8U`ScAPqCe;hl{D@O9-+dn=nD4%i z5zKer$0#{e$?MwbU%{LB2lFpN|LB>sVEzrruS9;TEWCgHds2Q>9C(;&CxH}&FCoh7 zSz~McE&%S1*vWEnwt%=YtnRJk%2l4cU6pq+y-Vk! zv(J|4YxYv*x%4u|dU4Bx`<}tu6nz8pX_azBv-20`h1^_D87_x=A5d-oqu z_uT(~{QPQbTiZe-gf<~$+SX{UkZIN|Tee1sYOAfRt!!soW9D$h4jLhZ5JCu{5kd$d zgt$ToA%qY@_`crfaX;9xUEk|_eLnwv&zaXwx7YLe`tg3ff1LM8?Xca4n`i62QDD7w zAGWP}>-w{;dh5Dry(bCmr`Xh4?|lO6OH7^h-Zij(m8qM!oqFrFBQSrpsk7c21=hPw zo%J3quzsVd+t#?&_s90#M*bF4x2^eHWa{T^BmZJkXZ?(A;J8-3^%@sgf4!-*uKR)Y z=b1X|nh{uEX6p9YM*Sx0zhwXV&tL2H$9gXiSZ~c`TlEKSr+%)fw_bk(`#IUvS+8M% z_15}W*T2B}JDM}L0_%@A^%J&H|AeWx_G@7Np62>%y{-nxdhf*zi)2szrgxU zrrw%sV7>M4u^hCG`WMWGTlME0rt{g_Z`Nb6Dc1LG1M3S-owdK?eb>ck^OYWfc?->U zTHAB1?>Gv#&FA?Po|p2x!T0m&;kF-r>l|*2^X-ptTRhLZ`Q{aF8zjC9_UDbn4xV=m zh!4{)jQTvrE8uz0fP8zBXj6YD_5SZ?6`OqPnsL^V>Sv<)+Ipm! zV$CS9-n#d;>Z_BLZ(Ucc#~M?t`2^Ol-A?_wt?G5HG*z}Ux2li#T|=$$(#-uH9^x_1YC!zuwesYo4XssUL0n*;f9T?bKVp&#|riGfchp-Xd^5*89{Gw^9F3 zQ@^eGTlZnx+TOXQe$qDjvA*BGt@(_lzT+6}NB{l7*`^QcdKg%LhpDsr39P?!JN0*M zr~aPp)Ze?EdTafyb0BbBYyQ^p5LlnQo%*}C(|`ST>aBlQYFpd;?sn>}-#6P<{xoym zZEOD4{}0>N{EN0z|BU(Ev|62FL)}z@JYo3Aik8P*^@$J-~ zWBRv_!^=~x{-b^W-j4ag_Oj3MzSktn*PFqt@phV{Jk!kg*cb1Jld)Mw-y_iJzUxyo zQS=rISXRns8hA5n7LM;(H$}?}87**6gfDV19H!`=bN$1KS6#*NNo&_lJMJ z{?`ltyoaCF`h-2N=OXJLkv8)`!`J@L{ak2jt-1H`I`&P#aqz8KOzVCsuztGf&bluP zte-svjV%8%*U>ySE-;;0MYg&&nY3k29cCE)g_yEy1|2QlD=l>r% z#?0Fqdt3F^eL-OTj1jti2G%dzPJIFO7y8DH_T6(^Q|UcX^Yq{ECI@Wi)#UrnmnuBQ zYHS|2VCy}O_2{BM|9*X*xEbE}_`mh{3iIJ zdR+^wx6TUdp7zd#%D2|mdZe3TeH~bzW$LWCyhpy(ul2CL7h$bIVEtlKXI%q-@#X8D z*U(mP=ILKU%fUx*1%fLOT!G*U1Xm!q0>Kpsu0U`Ff-4YQf#3=RS0K0o!4(LuKyU?u zD-c|P;0gp+Ah-g-6$q|Ca0P-Z5L|)a3ItamxB|fy2(CbI1%fLOT!G*U1Xm!q0>Kps zu0U`Ff-4YQf#3=RS0K0o!4(LuKyU?uD-c|P;0gp+Ah-g5u0YHa*4N>-z~^}ClLF#7 z*#DdwV1Iq!v%mk0fd2gT+spUI1D^x)|8Fj0T>tp~=Thp+0^+^fsjr~En&D+mTw z+26naxt)6db6|bo{QcYOulMKs`|qMZf80M`e>?xPKOXozK>O-9wg2mQZsfTo;Mv`! zJP*(1JSV-Y`qY5u44-Rk9xMDmc=&%u)cSV>%Kpsu0U`F zf-4YQf#3=RS0K0o!4(LuKyU?uD-c|P;0gp+Ah-g-6$q|Ca0P-Z5L|)a3ItamxB|fy z2(CbI1%fLOT!G*U1Xm!q0>Kpsu0U`Ff-4YQf#3=RS0K0o!4(LuKyU?uD-c|P;0gp+ zAh-g-6$q|Ca0P-Z@c-uuM4QbnF(uY%K2O^``+w)!d};H44sxXVI?<}&;rra*Wb-M; z$z%OhHtRF3{hzCC<=d=y%b#(pU#CfOnhzFso@~lRrqr48vMJ$qn={#z5>skSX)(oo zxVwGWlthQkZa!GuzSwEA51Dd|%Vs~%lm|`eGiA3Bn|*;P<)*Zl;uvAGrz0Q=GqfDJCD@U8UF*bXZDF=kv?3JecW=g?WoBd5wQpefs&zf??c$>Z6l%2zE zc8@8ao074E&HlJ4hwNyx-)u_wPB!~SQ;vw*&g$Jvw42plwMOt>|wJ{H6`7Y)AumzY@VylbDJssrtG+<*$1X% zno?#;iz%O&Vm>L{InI>bOxf3zsiq{GGS8I7rWBb{Val_n44X1J+Qdy+V9H`sN=!M^ zlnYF$G^NIrdrWCIrQMWXQwB{5n`m?HY|6f-9Ae5brevB@V2az6GE*u{x!IJbOldde zXHzCkvN?}6rPP#KQ{FaZ^xkF;rj(d+gDLH%beZy%DYh6BH)T&#;!R05CBu{=Q#P1V zZpsa&+;2*=DKEs>>~EVAyN}Jj!IXPUiQCuaTxCAZJ3D*P%5{Y+^Rj2=E?MqgmAfSW z&#ILCqI`G$tkNaKPP>wv^nW>RxT~xswypa z<+3%o%kmeNR!g)8#2^H;4ZUX`$}AlE%>tx5Jpr)6hPnKE^8 z?&`uN*{j{F3Rf zS$~~;Vqx*>Y%^&7A{>x{Vld&?!s*UP+JH8(&g0n#kqOexvN&?uFqbX zzb;!-GCgZ2FLZA^;V(V>_Xoitxg{m}<}mnkN&Z**(m}P*{Xgk!_3FZ9EB}`!_D5g; z3ll3`xjKK9d)A8ojU}5=vSxLGIcAqEpXEO!|NA8~M~pe%ruz@L|9M9%R+#=0{^$Mu zuNwSwC*YX=51Va&G;@ct-O>Jjlj6G>STNVRqY1dlSvWP@T$^U;4uDsh z8QIyZ&23M9UiP~D+~wIzip`DFl!WZ;RpwUF+!y$2w?1XI)goZ-2}{g3=`f!D1W?qY5w zXZ`gQ`b+g+58aZYZTI^3eQDi;2JFR*?2P#Aj45U}rq5k?NVa*onc=@A&B*uP+57j$ zLiY@J{;Cy)D|6lXzHQH#GfxZs$JQUZG`Fy5&8mFg-pQB~c!Ou1rmFqx-JQR7+qYT% zs98mGlV;sP|55YD41F~jOlFGzeEj$4vZnY)qeSf_bNZVTScJ6BHwk&&<+j=LMy`(f(JIfp^ z*?-+nin#Mj3$3?rJ}oxy=vHQ%H%3be{8i?bcrmG6|bkhgwi?h5mU zV@d96-zdH}9#&vkX=!#z{;Ji*D|3qq-Rra0##^|s>FPmx4tMZ+q}ieE?i;WsAd=B=bFgh>&+DM|6aRxMQ&c+s_fN8<}%}t zsvqCg(p0&N)@GYk^DR*B;$rJS0@9Sl@>=m5*EAm$?Sz&s&o~;Jvc}4MB)3^D;T+Pk1*+TR8nw7q1 zP0RY*w>~Ass|!o5RI~q=nfaC!uQPv{1IO${)5a`&c3!?Y{fkY{TUT4x{J=Uh$>o7{ z=H6~w)oWI6qc+#=UbUU^e4%ZO>8m%}X}#k8IrOS^R_}lBiuzS%_xyFHRQu;-ZM@AK zEau28G%tO=FLj~y9dWBymY9p8d#NpZ^&eljSNRs-x=>o*6fq&bvYMN(&3kCyv)eiZ zjNQdW=792jvBvt!cMz{zRcIZ7z9+q)oG@=nyme71&0So$cFL4P&DTZd!jf%mZFZsg zUePRbf}EVOb=p+ZWOd;-Gp+C6{P{w*t#93I>jq?sxiPTL?>ygkxK>&3d(2Cpe+s@C z_+R;^Y^%LBN$V_LTwLrnn`{n8|HGcWGPk7AEcG(;PR873m@{NeQGWK?DYj@U#bs;W zY<)kuEMvf)&^@8gIpl0}HM(l;d9@DLfW6b6*Y0e0mhDs?)@@H3u=m@0?e&gYdyBov z-tUZx3XdGHN4hEiD8|}%hNv-yT3cJVdoe|ou(PO^uaMikcoMzVc;gBISezUV9q{7q>n6E9j zJL+6LJLOpHbETW6%^^c0GlvbWE~}hF+Ev!>>KZ#_Z+1jju{LXlzQH4EL(1(H_HJi` zBi(Gbquep*$aF@v>!@@l z=j1dw!oovC!@?pWL&L+v%@<)|ksXt3&GFZ6H-Ebt9QBSWXTLoyr)orbh?$^k(2)}w z8D2Iywr*5u`P76;dwNz@Pe_%$#?|KPcjWchTS9ZH9JOW%s;%SKQ6Ev%XOF3|H@Y%2 zTkM`4)2r=`_KK07F|DCZ_R=czpQFs#>gacPrkEY%XgjFh(GXj{Z$hS76nmL-$UbDR zb(meA9IKTd4r_C^xLgsgh&pGzqsv+0s6MLHvumq8tKRJ4TGz0B!2B69#hOL4vngcI zEXJ_u#5xc>&PG>qPMfRVk>2F$cIfyhH!E9ZHZ&sAw-#ZwlhbR>c^W(HNGVA!EvT?( z)Y!vQ&H7Z^JM78ksLe=@3ipgpYTlv8oGcCIPq!(FJ!ZP*$gr0?Ywb1Ws{wnZeZU+$ z)%J+6@JMTw&7*9xyXBxZv&-t8&C@$vZ4-J%HQL);t%r2~VsCSJT+Ij9xLPLEncY4- zVZhO2@3r@sKi$4R)>l3D0ayEoUT3?jdxXc;>9QjIW^+Bx-VyyH%1m8-NW++lk>p(CssK+Mnnuda&jWN&9TvMuNcwc>>JtS z%BdgIX|EaIXwOOLbtZ-;B${K>-sP%yRm4<|HK#${uB~Q0+DCMZO{jHv>@9|^PIGWp zn=7PeL}f^mvus4OIUEw&LK0jNW^Xz&BD(Amm5#2Fo#v2i3C%F)rK8fG=XDG@5)wVm zgha11vBlNmYH~HZddzc9hIu4*Ih&1pU0zqYqrt3ogV`6gzUNwJxzlp5qbMgLCd?J% zGKXl{hz@g-H95+i-HxOrubF^RNSQ05-&96qW|n03nCW#oJ4OzSZg6%wz0Mj}d1zuu zQU8b`SKX+x5w-S8vt4!0KC^`8T5V3nkc5abXM;7ouXr61<}&7NaE6A4MtUaqI=gqO zb=5eMV`5^$%_ToPG_uWJ?J!4Jn9CK`V0Sgx8%>89<@OA(qs`uAO20YM%*obedN(7O zmxu;?W=dpMN|}9w*SvPLI})-=V#0gv;W2UM^fy=aK9k#H{_Zp& z(B!CghBl0jXm+@pTy^%+HghHEuqV`-zpR&_4s+mJe_DKhth$yF0}=ImSB-8N*%DG> zz3$Y84Le$=*SqR>@P?Z)95pVlvpb|aGNRX9UOMar10xzjDxIDY)yK7kw1k%1n-i)= z_Cz;169>#eUln4Ou40tOvhwXhPq0?DojxO(rK4+ylhuWOc z4UR5XnAg$asCE>&TFv-1_R3LBj^uu`)ahZ(_OcNm=UYqnRL zi%Nw#8|&;jIiaB~j(&TLxpLGx`s{I$NghXY{?N!y=g_eguBr)MXNK2a&|!}ZjVfp{ zYu#XPat=DHtkrOsmtxjYZqOCr+RN0}GOww-%J zE1cGXS2!}dTsfU)L)y&+s>;#rsv1#mHxmglFOYW6*j`85sESeLA$_jiF>TJWkhaM5 zB=e${8WZk{jEHEmSJ{)yF*)oAFEd9}ldH+ROu8e>?4d4m>FwOryK}?%#?VS%?$6QA0%;6l@6Efrq536>ykKE8Xvc}cz3=dE0GOt$Y z{pPRK@Py70W`_-!W2D>O6FThb8(kMtwqu{OVPvCujjML{hq!v}3DxH6<^NMGakf8L?|A6pyF8*$Uj7`Ft+mh50&4;y))#v zofVHulF!09N61fM*OBtvU6fydN1Gpbu=+1gR{Wq{#KS*Woto++Xn?ywccOkK`h?|BiSio^pWl zy(<(iHn#FNtdu)&bFqA|IZv#3JnzUh8C&xyTc!AKxX~?V#3`P!M!r*a4C0XoDeiY3 z9wL6Xu{B=oTDAWg$Kk}u%m-h9Q*kFA!uuSo{GxU0Z!OL$m0!Rm_`rDOH>_9uA{=w3 z{F$+}{dst|DRR+9#TOY{^N+hg{wMK1JdBezDV{P_?bGqCI0NrAP4P@T7sq(j{!%=A zk^DOD+$={WsD0Wc@RQdZHBD*h>FUMXScBtYlmn&X|6Rwbla4J42 zQTeV)#h<|OSIRHp1pF>e#9!hhJZgs4I~gy)DY(Yi+Fx0C{9($Eze?jR!6~>IXW~8n zq5P_=mA}E*>MyKHeh(L1D<5WF7p!>Wb@CawwN~C@Y#kplx5}drmxu5%#=iEqDgFrd z*2$BOP`n>k;P^Wf|H;_ufAB6j{z$p0Ue3WOcgt1A)_7I-$sgkI`{e_Y75CtEIOYMx zpTXTY{3zy!XX0Uer?EA^h(@&^V_wHBXKayA$8GolV{3k0c=w~}AFst752^jXa5s)g zQUC5H#jV##tG_z@EKYb>@!xS8PM)RwUc3%hKC1kW@DR3Mcdh<&niano*W+hoNB3ij zJ7@dy|L{=(J}1DB1^AZ$&q&?6zjXoL65#IwJY~+-?TZ6^cYwbL@czec-F{hsZw>HA z0iHN_>-O0JzCOV31bEl9t=pd%;41_CdVqI0ZtM2*1H3uFF9vwjysg{M4)FN_emcPR z`CGR?GQejC_|X9W6yQVCx9)FEfFB6(HvvBQ_^sQo2=HA2{w%=zE!et!et>TY@CO0j zYvI=IPnB){^XEEa>-yn(Lg!OI`TATdbKjSt_I}p}IBe0@@znu-J-|~=*gF4`0DlqS z*(YwDe@lRe1H346>-@W9K6lM#`wi=J*KD>$C;9Si`usKXbJ-=*A{C0q+W^J8+QGh>`ZT|6Ro~nF(&X~=1Wq|tvJo~h*^KT8XJ$vi; zsR4dCz!P$|&Oal-?E&5|ckBFf1N=^ar!U?*|Iz^W1^6iQzQMd+IQ;8zO@O}+@T@#v zzU_~Etk12p*?z|QygHjLGhh9eaemw<+x#BCRQ>7m>TI^9Sf5*GvptFR`E@qiuFI6) zNPnwjM+<(5xZeo{8egAhXR}=#;16Y+KYm1^`q$^y*=*MPB5Qqm>Hk;aerKJoe0@%x z&GrBu_U9X0*N5_UT_28LE{DA$-;EQn`9E#G{6zd1uEY~oD4x=x_GcJdulK#L$@Mtx zb@@A7f@iK&`wh4fH{f@Tt^RuOzQuB8r}`_#Ik?H#+P(rDU84LVoQ+*?sQpzq1;2*t z@aQwtKH^Q~rx;uPZ@^a)*XIG+Y` zTjOPPY5e`&%Gc)#n&SuS^960TKCI6fwAp5@QGONeFEzIMYkf=obrFw!TmHvd<)`2> zV=KQBzeKzN@4QZN+dFE%*4Wx#k@yuHh3Awio`lfG8ZYWy^*4V#`S>>3q0db; zIcF;F_X4cXQMB3a!a2169yhG>k1hODc?nL$pW__7>YvK@;w?C-Pwijw z*_?m4k9f-nvxw%AT&DJABjs}3gx~SmW=joKe8&08Z^KvkY_p~Bq;4v)Q1`LQvIm*6CP11`r;;RZbZVzrOoSM4X`w&`+;v2}dq z93o#uJStIs23KH5x%#V^r}#xUW4^rCX2wgG6L2^7;N;^Ke*@<&kV`I6`{af4-M9+B zi;FT8pLMD7yYMMEev#sL;wqd{p?voVig)A06J`5linpI8ABCF>#I{w+x4!RVou6(zA2+O4d?n6VBR`9~@%OlQt>W{pR)3+T^5r-gzmBW$ z@m0$2T(A6I+%J0K< zIO$x)AHvD_S)74?!=>jb|BPz&H;kXg;r~>;3&)kopW^rngk!QBri|3%z`Kfr_d)VtJwf1~nG#{+mBc5PAoX`KF` zJh@)&OPk~iaOP8TBW}Wz?pA)?(~8IAdVBZ~{>XvtIWPRR~&&IL% zeH`rs9UZv8-xcu@K6AIkgV4txae#S3vaX_` z#b@J^Pvu-}>ysbE-Ji+(G^u^q7xFTkg@44Je#OsxSoz&w%1_|FujGtJ6wexvufvVF z2{++4a68`RQMTtBwYUDif^|J9_*Ndk8}RsM#p}OQ{6Jjry_|~sevq%knM3l!I19gv zOYqFc)PL>I%CCA{P8pWJenL+CRlcu9F2l2)l%s79-|JyE_Tcrn4|n5cyYf$ZO6@!F zmpIh=2O-Sk@~0Iq!8hS*m*T@Xe1yEYRr%?m@|U=1lziYbiZ|mYanESQlb%()Ym9sw zP8uuk{hZ<*ZBkz~L__9)tJ6ariKtfal|6 zoQKo!dYpqV!KL^X?7>aA0>6xFa4&AaKjS7G{-WmJiuc7GI0<*-1-K6vVB3ybpN%*I zR~uXBOZxtb&uy382g=W3Z=5{lCB-uik{`sS2g~DMR=j+Qdr#gT_9{w&hQGLiuxWQL?;yr`Eq6 z$Ky^s3-{xb@h~pNp+~8|&BoSx+cM={->__cUIU-$v&YtvrTF{AQ%{wry{Y+Rtd);8 zw)*qpN*uLL@sNKhUW9MKZTRRe&W}>%UukUh=Q>ONm3TEi?k(jvpRIVcu`k~vN4+hV zoGYJ)J8|bbiZ`C8__%lF!3*SWoUuuM?LEbdyt3zgx#A*uau5BL%Xi@POXNi#DDJM1 zzrqcd$(Mbo?Mbba?=rTwr~5j2*k|+opK5vZN6L@CUf$E#+J71NU_6ME$&am3{*Au4 z$L7Irkl%&BCco+?ZA*w#MsiR=k*a!Q=9NpDVxq3AqMG zJ}H0xh1%CVC6DU2^3Bgzye038o8FdJ8e8LaydziOs&D0&aO-#S$S;*YIMQie4bAsa zjjipm?Jl27JOST?%ki7!r|zlzIbW&2rad|5Nim8~`bOjB;5=h%yc&ESZo{A9?tRq$C)|TaeXI6^cvoX%W5W~F?}FUpT7mS+t!UWq*FSH@cK)o*7Y_1 zR^>;A${xHN$K0m)TX+bEj#7T~?TVj(tLx-7xCdW_)9+CHF;yb^VQeM)8C35Iz!bcuw(b+}b9u!UfOEm*T+}X3KG?pNg`ocWrZVQjjv4dOx^`nuv9aRj~s$KX1ggdf8x z_%)n{KgF4N80X;~!Zn`~yf5B>ldu;rz?FEpv30(ef3Ep&CT{ye{v5a1UB3IHBX`hx zg*xTeu=%}RU;LIG6>kZVKR344t8A1!ZYPbmAzEIE+b78{;mU*Lks+N|^j3ju|U2+e7)Taq^qE2hTE- zwbr|NyyA_xDqN1)OYzbj>ohrGKgC<8%eUf^M0xjE#iNgqH{*t*kuQ{@*AmSY#o zlcvZqOXS?C>Mw7Zy#F-C>zB*P#@6vyR3tx&Yl`Kl1jPqe$*DNeEk9vw%`f_Fxf7S- zi0O)lZB)Df51%7HhQmGb5H2`ZUU`Vx$DJpCVQkH}5zjwVZo}u{O!IHtT93PM=VrMb zhh8FoiIebciR#ad!)C}{?8O6@s(n8mtdKJgQ+~l^@>_TV{uwvn-T$HdL7a^fuTc9} zar0I3AP&7+-X%%xGyFbWPPs<$lW_C3^7Y2n{%W{Uo_~b$2XGzkyIJv{jjjCJTKU5x zmEU};JUdxVyGTJf}E#a*-HbvO~`~b zJcPqCl|QLe{pH|PT!k;iB_}KYxb@1f&yq)*9KaQ9X6>sKp3 zty(^%N*=ymz6W>QDF2ExZ<2SpM){?;$X6O$+h2CO{0{MEyz{lnkE>IB5w60G*j2Ci zuXw{f@>$oZear*$QPpzngYwC^9q)6!=F{_#;`id#CVAQoiWfa1-)wBHZ^onYi?|yP z;=E?X_qtK}1^8H8gzqr6*29C3u8||3Q2UE;8vYpP;AJ-{zqdvCZ{moj<>@yo9^ES6 zhSQ&wN8X}%)^qY&T>iZL2CjTTo?5H?I{Z(Z_@d$;8e8kr)GjC7%J#o3&%q`5G+c^T zV-NP?DttYz!Hvdyn(?YWR{w2y!>985IP)9%dw={p`5(7we$|8WbGRFiyIpbH_lhsV zF}ND1;*W7Ao?NH)ZoCdx;1*ni$K0X(27Cf;!i~5C_u;A^G{2}j)xPmZc^+=X9^8rV z$Gv#mU1~poPsfA!Sv-U%)hpjMr13W5Mm+9r#hdVrxZo${A9;`B)j!McW6v-0Irl2w ziT7=gbA}b~#EtmE`xI~fRq^Ee<+9)8A93^V@*@urw~h4O@1NZ$m)PZ_w#cy#IpRS% z3x99k^q5OtXirf`NO}Bo%8%QX_PBbIdTlmSn}R#RW&n zZ{r@k+l$Jto2mH8IPqxOIjL7XyA{=pwVUXJfj`@vJ>({arT zxfVCAl0U_z=JU6#N5ZRWpSWHw$91>|r=F?!^w*T%hcCck=PLdI_MRv2`MUDcu9x$1 z>5cLoIHpei3CA_aiJfZix=${}dH2grxU5nB6^A`2&wqpYHpy4xlxO5`aVAcBQ~Ax$ zD!vg9x5=%z{dxJwet`;z=6&ghWix|q+a@*2N8<&SXLFY;b*DL?Huc_l7) zg!=a1gE-PDe~dHskoS07?fawUBAhlwzS-EiUvf>8L*9{-a00GRP<%1YJVdU-1BvoC zco3I#t3TV}ioa+)&Wu-alzjBNa`;U78C-I-eC&IQm*Qt}KR)7p#Ru_foO6uY--458 z%kSdIW940X)IKLoo{jtQI$V03;{E7swCef5_|p~t9Cu*Xr|Pd{x#Ba7 zt?hM{$mPV7&X8}!8}I>rYG1HQ@diAA5B*I2C9hWeVVs6{`dsbJKj-N?-_mi|Iynm$ z;p>fk`@dB2A)I%%yyy$o4>#cIjf#i&EABZ*&c$8$N!*JkeyRBl;6se9@srM1`{n*P z{s6~rQherD%J0SNjII6Wxlr*s;;k3SKM?P{SU%}%<(HPr*Wl>Q^3T|V^9M9u4}Kl@ z;e>D49=ySLoS9GjrRwix991EY{8stN_;8$tUof`XM_jJ_9luk4;uZ4wIJ#2452xWr zjji^1c+{ZU*Wh)=R=nm)wSOFEwaMeYS3IL#o@Z>WZ|uwRWyEW~li$Y;-^&O6p!TV@ zQNH8vY}{d&J8+CcKKe)XUyo115l+Qd7+dr0#Sao6#=8!wz00NiO*k6=g1z{#pOoJg zqWp7l#R$0(Cy$iBz(b+(-al(T{iEd*aoHI8R%2_ulEUQZU*z(!@^Qx2_LPp7ufmo1 zO8S!y|4TO zZo)_YuKYgi#Y6aYoU)(V?`3oNwm%au#3iwcpN~Db6_?=;l!5R1f^LsNF_rc>>{xl9k!s&FS1!Qy$H`5&Yo0vP z{2r7w-oSi$7EW6r{}bmelApujC&**W?@3wh8}WRcb&}#&;INbBf8lz(i}}4Ot9@Lq z;-}$?#qtd}bD2Dh`m7~Ix?=6)JjjjC~c9wh{&e$Zs zMt&_m*8HBAmEVKwjIHr=E>!+F^Lt-b+>ICEW_*RQmEVJ(!2|yG=J&v?_#n>0VHc_Y z1{{qe!j+$Z7vp|>m9aISvWwNe1GnJg%KB7EXFm@iN?upTw@06#rdz)Z-a@sz1NoxbJ1< zHyB&%6Y+}tBOZKJK58$;i#p}i#@7DdfM3F1{5`IHQ~3u+t9{Aa@;YOyeLudPc*}c= z_u-x%`M`<3d`I(#a;|Li`w8Oh#J?x*_rggUubcR09Ql#@djk*PJ@!`qaIfMg;IxnB z>v7^IaxYH#RE~;K`*OSiSL0`K2OhhR@?*YWJe-Jcz}5YV_u=v{O|Oh`YwgZ8&ng z?A%}N8^h(JaLrD%mmRhEJK}zyc7WP@Bb47FJDPFyfr|U>ksX;6l;1<#@8mdNzGIO1 zO|s2zhxxr$bG$k#c2@f(vd!;S;&HnuzTaf!`|S?U7sY@Kg4QS$dVeGmDhsfyR_DL*DV`u371PE*|PO|m0# zqT*i=_xtz+jbA!R@oRAz{s>p%$BMtz=nUmA$EkQT_TqbS8-CT_{xHV#x5pEbSZ{nNZo?R>UOW%C;WKdP;c8#$Z;v1Hx5sb$+v8vT z?T=9V=pz^(AC0|uDQ?3T;?N`2zTV#+zv6F?zxB7r6OPn)p~-5Wh*R+?*o!yfHhh!6 z{ZVS)>Ti!f^|!~PlQmu&J_v`-RQq(CidSPVjyy{3JMm*U`e?QP2xs6?GnKyqAB=19 zc{n~r?ccyvIN@lukC~?kV~$mSFX3|hJ#NI&sp_u}&&A<$)qX8b#5ds_ z+>X8YN8ErX%~Ahd_&97!Q~#wn7T4l*+<{B+Fs{L|$EyD}oPh_h2S*;K@#=9h?!pDw zHCO#r;CS4Gvv3dg;?Q~OzY)jd9-N88($v2PC*nGshdXcu9>UEydcMZ%!>KspIQ3tG z55cuK6Sw0t@gT0oQR(Xcah!sCa1nOQ(|DCQ1~=nla4#;zVaKcga-4wg#aZ|@T!z2L z^*D0A#_z=cz{B`79J4^aA58;Cs zD(*c|`O9!Kz7Y@Lf8mHs<&V!$`$Rk&XW?^j8GZ=YVvWs(AD%8qa&0 zoQgBDRlE;-7R%vT>i>)-asrOdle6$ExD0R1SG*oiSt@tpU6#p1 z_*Wcts>b`MK=EY!e4(6&?>k-g;;Wa-_4te;xdYE#ArIo+R?3m5X}r&H5^gG1JO^(o zk<0K2XUKJUpH*@@9>fFq>D7uyWNW-ix15Oc*T`8oVXf@J&UJDv-h$h4VX5MSc-QrE zRF1}b9;e{-XDVKV&pJzP!PdXCW4)gnz|A;1SN(mD%NEO%Hz>bviCpY=f!u(HSIXb` zy;|P;Y_*SFD=)&sc#}WAUh&6q0sbCW;q;B_ujowW--Tn&l1H4Q_#n>3Z5tGC#?@!b zKN?%_-@5Q5kJ|TQH}-5){l5_#E7eAHZ>5<$sKG@We9pSB>Z6PP_?6T&VUh;tV|Ue6_E| zDYzMLG`5bnPP~P9*hT8^TO4z-yzd3-&x4C_2X4U8<+R5oIAN38*Wm)=apqU2>#tD$ znYbC3a|lIP5C*dGIk+CL#>qD-{{kFUBVU8#a6N9sPvBPk8g98+?LWqycnJ65G3DC6A-pGc-J) zKX5&shud&2?!solJaa1#C=XW>zoYI`d29=H)t!992u zj=DqrpM=x!3Y>?}#dY{f+=B1GUHCCPfM3P7J2l?NxDNk>TkzNlZBG}Th$HS&`{_6i z&%vqqRP4cL;7WWx4zE{#*Wg%uH%`G%;ynBYF2kSUTKp?+#XDTa_TYW+5T1d<@78>d z!$~+7XW})u1Yd~D@b$PB--lcAGq?}Gg#N8n~0i+gYq9>VF^cE9Gc z7?)x<_To*rtWo*b;tG5>uEs664!@53@FzHIi~9QsN8_+cZC@hZ3#a3$xB$<>9-N75 z@p9aQH{wBj8FoFW`PAYJ{1Eoy7jQd%7gs%`_5-*MJFnFCG~u0bAKo9QHK~0PZpHI) zCtmDtkJsYxht>Wf9QlY`jpOk>I0Ls}PqXr0$9<2>pWw_E`6t|f!>-cywc)++AfAfD zo>co;I0k3p6ucZ~;EmXgFT;Jf77yWvaQIUi?*$x#-@~c+TU>%iT&?Z#;@xmZtNNRa zOP`Tv;&OZfuEM9|db|<03wPV+e#$KsVZ8J~wU@m074--*5Waa@C6!%g@T+=YL}LwMXZ+8*2Un%_hm`huK* z6Y*@Ej!(t~cm?)g53a^n;6{8K?!*t{e%y{jU(|eha5Nsoi8%CHZBIIm!UZ@Um*Es# zhcj^tF2eoTgG1XjpGq8!>u~H#ia&xAa668CMe+Cj`S@EL-=VncI&Du5-Wj*!Se*Q- z@(;tMI1Q)1uJ~!V`CYjLx8w7$?LEaSvHN}bcHEC2!I?dZzl2M0503dj@$YaV9#O6B zOT)Y392|$;_(<%<3ve~g#|^j?x8jR&7rp`aF=beq4^DK2?7=;&^;NF2K)VFYdxM_zT>G zf5VA=>VJnDwSAd*AKZm!;30e*uJ}ytb8!=1<8O~I!~^(x9QnE0--l!IGdK&sg+2I7 z+=%TpntvajfL&jx|NU_?J{)J@<8e36$F_d8Uyoz)W}J*~!g+WL?)*~ipT~XpT^#k5 z;@{v#9CDMkrycK#lLnN35YE6y;XJ$um*GNOgU`mT_%hs!Z^gE6G~UBF3crL?@dr2u ze~&ldQ8#OQ%JCk!22a7wcovTMR^y+9Gw=#rg3rZe_)1)Z@4yZCG2DV*#ohR0JcNJ3 z5#MP(V{g&+#NmlJ15d{r@Elx=PsQ!{3_Og_$1#H%?;4zn@5TlAN$kaM;ClQSZo|Lg zUc5uCw#W9p#@h!+;Tbp;ABRhDE-uGwa2>u7x8dt?H@*)K;%9Kg51P+gI01i&GqC+u z&A$jwz+SvRZor4*R(w1T|54-R<2bw?C*jSw4&Q`3@fO^RpU2@t>i=CFg}=e+IOI0A z2k(kK_#j+~kHU?35$?o=xF4U5T|a3)m*Gf!D~`tx;}rZ7&cYwy68t^(;!(G2dn$g` zcu}|pAB;QjOgw-W;bB~Wqkd6;XW>|U2~NQ`;T+tEH{j=R6@CXd;;(ThcGhWo2JtS~ zHmvy^h@{5bnk=;(q)-&ihsK`wmy)k#}f&I`Qs! z7$1xqepCCSaSuKbXZ)`Ca$JPZ!DaXg+=Oq(9r#h)hhM>=wlTh+Xa5Mt;vaDm9&@L* zCmrvF^YAq6#j|k@J_R@8V%(1ZiM#RDcmUsp!|j^y6F3gPj#KfcxEB9{oACI%v^}kO zZ`_3s#c>XeHy0=4Y@CHxV-Mbh>+yBC4L9H({0tt#Z{tL##{U{uVOPE8Ux#52XDdO;(q)a9>k*`w8rq z?RWJTgY)n|@LD_%m*G=zIbMlt@tL?DdvOP@#9jCf+=rX-5BPcf8}7vswlLrIKja~8 zUp(FsC*nQu5%^#{56{3YcJ+6sv9*6vopL+zV{sSGz+d7#>}=9}O7VDOtG^DH`kO-h zRXmIM#t_Aq5&sRZ$6+HBzXDIfH{&>bFHXQu_-wN!@TeWbj{V`|@ub8$Pq6?fy$@DM)uakY<6R)1@Zt=FfPqvU3Pe75{FF3pg4 ze?sktae?uk=GHIzn6bX|^Ddl>zrs0qN{jNl@ESaTAI71x)!#5q#YaA=_Br@G+=8FM zT{!e9<;NeZ{*J}zxEy=%%eV@MKdtsncmWPiQ-4?CX#BQ6A4j#Sz2|u4XX6HZGcH}A z_{TnbY^96judx@8c*g3_W2?bC;wBt}J8(Si!^dLV3F`ku9EtOAJU$Dj;!AK2z7Ch- zd$1Qjf@|>exCy_BJMb5{5C4K~Cu+W5zJ{amdpHsI;dJ~xF2TR!3LNpAw!Z;K;|?5$2k?S@k@D;cN--ZWp0}ek~<3Eby@vAr;&ur87Rh**y2XGyJ61U;kaUcF1 zhi0k0>v{DTi}%5)I0+ZvdDx2=<0@Q?oA3tQh0E~}z6M90s`)hHMEoSq#4r17{=MAO zl>Z^F!{6e*Y{eZfnCr3i);mXz!QuEA9E%s@WV{il;~Q`RejIyoFRsC1FKYZIdM*Wv4N3w{#!;ZJe+5{)1BGRG^Pg46Nk*o(izHF)AHYTt&B$6fdw zW9xVs!1v(rJdOV*j>onRt3UJkv*#;5&9e1YqD4O2@2BMFa4g>8Rplq+Q;f%%_BnVx zuEB3vHn$pec+zWf%l{$oZQxzGuKLgmF^wrEF^K^~9OA$w3BepRqZw(`XNo`Wv3=~D z*U!HgL zdmQ~kj(*J1Fa8z#{Ns-Pa!0@4(Le3zk2v~sf7L#JX^e=+`tQQ_Rk~sQr z9NlvCOW$w#*Eo93(RVren?S$dQsmFk?{oB?qd(y2i+|F_|BRzI9Q{#8-{wWuJe8qc3*!yB&S0qyNUyS33H0e%;3ZDo5Yx z=$fN{*wJ@68e1ifWc=r@UjRQ70-vAp|CH$nbnnO*z;7$~C+Cs#eDb4;CjThzYjE=- zz3%aem-EYco;mSC^LgTV^CC^W<`XaHo%8&2;)UkdD!k?sFXyB4ymaD)o`%3q1|5`NTir&d29@`@{=94X^pc%X$1fpPzW41#f4|BM9{TC1~wBY^tHJ^C#Z$N(s#0xF>h+lB=gX!0N;>8~V z{UZ=BG@obspTf%L~^TfXiH!sq} zYd-PfpMm}wh!>jASH-XS#EU-%`gb5+Xu)61FSz)@_%)w+@&7=75X1}3=NZ4>|7bq( z;xB^!BZwDT@Cm=*;s@i`d=tO(FF}73CVoc?ejpo=FSOvF_2Soj;>F(x{f`hYwBY^mU-O9<|0MKRLcGv|_xn%H zCtm!S(7y@sLJR&5Fa4TNy!bz%KNRAH7W^>}uldA_zZCjUAzo;~`}x;=;>EuT{jCr$ zwBYab;@5oQ#UBg(vk)(|;QjP#KJnteh5lTK7h3SI^WxWh;>F(!{l5?|wBYac@S1Pp zcm81LFUG|0XuB7kE%@X7f{P#P9-nye zS400b#0$;mkK*?GKg}mz{M*pq4e>$?-hcm^PrUfUp?@6Wg%G_D{Q(g#wBY^xYd-PfFNpqwh!GKF_p2i<=i|;x(Um@n1xLM#Kxv=ZSv=H!sq}Yd-Pf z?}+}7h!>jA6aO@BUZjcFeB#AF68$9+FEpPg-XFg;pLp@7ME^>}3oZC35e6^Pj9>GK z7ynE2$3(o)e7-9Enoqp=Yoh-q;)NFcNq)h_55}+g#EX9?`gEuf{cRC1wBR4$7hL>c{F+a^_~W8~F5-pe z^Nimmzrbrg@#4RW{=A46TJSZj$@3!3_%)w+@%KglU&IT|=NbQHxOtH#Uh|0;|6ueN zM!e8`p7^Wz1s6Yv*L>o|pBVj%5ic~KCw_#R7ir=(pLp>6hopCtm!;(SIEALJR&q zUi_L*y!e-+zd7QC7W}(Byyg=x{^;nRj(DL3@26k$i5LHM^k+xB(1Q2-Z_OuO{N2(2 z9q~d>!)reA;vbLx@`x9D8ea2>7k_&6uSdMlg7?c`^NAP#d-TUgywKC|noqp=>!bfZ z;)R}u*L>o|zaRbm5ihjh{r9K&#EU;b`UfOlXuo|e<1w{5-+siuX&!WfTY(w zzKP%Y8>Ih16ThPczek$@T!Md{;uA0a3F)tpc%cRVj!!A$HJ^C#XGs5s#0xF>%f0bS z^NAP#hxCU?ywHMwkC%VVCtmy|(tjfHLKk>%{Lp;j#lIr`EfO!Z;P-6yi}KTa;>8~$ z{WB6TwBR4~@S0D&_-~{?N8*K^hSz-J#or_SKN2sr;E!7OxkdUlpLp>PNq>>V3oZD2 z`2`n0);&J);!l$PC5acB&vX2F^fU1f7ir=(pLp>~Y3(e<=zsh@mnoqp=tEB%* z;)NFcJ3RSO^NAP#mh^W?ywHNb*u!f+@!}7Y{xOLcTJZk-N%M&p|C#isNxaa4zl&dR z@nhZN6EFTY>3@@Wq4_+^?@F)yG@p3!&q;rs#0xF>`}qYIKN!E}6EFTe>EDxhq4_-H z|9}_2<`e(4^Z!YIpu`I;_&ePK6lun<`NWIAQ2GxgUT8kg_>Cv6EFTt>CcpSp#|@cKblXx_&cTlQ{sgd{Ar|t z7ip$n^NAP#sPvagywH4}>EHAEU(F|8{HfBvD)B-K{$Vfwnoqp=U!^}*;)NFcTlfVR zKbU^aC;n;Yua*8=i5HsBGyO-r^lQGsJO8fq_iFHt7W@ORU?Ai8pH_V0#UCvF!xAsF z;9-VX!fQV9;y;%DWQiAA@Yh^a#%n(D;%}DzXNebD@c#Or<`XaeY3Z+)c%cP5rIrq4|~gH+y)^Ctmy&(|p#|^jPc)x+@wfb5hZkD# ze*BtGy!dCPzh=fSwBWbA`lI>8i$7=jcP3tF!9R&I;6-}f;}b9bpXm>pc%k_`%MWIT z<|0kJ<`XaeqUk@Hc%k_`@i%#R%_m;`OVi)9Nx$HnJeXB40L|0r%=e16^I6EFU;=`Wjjq4_-Vr}+gJ zKZw_S;>Djf{c961G@mEl@4qykc=5kYf84|iEqI8P=HdtA*L>o|UpM`C6E8HMXZ%<4 z3od>TuldA_e{cHxCSGVhPyB{AerZ1O;t!nu!HE}I@E3b{%_m;`htr=p@j?s!X@0@Q z52j!9i5Gw4^gm9#(0rch_vI(eCtm!M(_cC9LJR&Te!;~L#;^Iri$8PvHz!_bKF|0c z;}=}~AYSu{7yswGdEy_$ z&5Jbgnos=WciaB>4;^0UX?V>ie(xTOzv%aE{6Y)g%-TOey{n& zUp%t$zxWSr{6Y)9A0R_U**NG`NY53;cxpRTYf?d{t|w{#gBFMJZa(|_}4c6 zhaFyM@>&1={A)h(_kEScU;2!VUuePKfiQTHX8f8@{QDg~b$Fo#@7F)gC;lmi|8a*G zdKzByiGSANU;f87{Xz@=xcB}vpZKf4#^%4_@InjzohJ9={A<36-{J3(_#G{HzyEqx z@ri%c>uvnM4lgwMtUt&2 z1s6Yv*L>n1eWS%ci{#l2Q{>-%>M+^QMe!<0$b@e=H;%nb%Q+Th#3r#-XpFe(T zKJiz)+2ViR;e{4F!{9}l@oPTu*Esz1|J0c?n+giNEqK7XLL4FSOwO@kjHC zKko3~@9;tk{&E|A5x?dWpE>-GIK0q;zuLoVKJgDa{3m|U=3i*Rn}}8ZHQ(UB)#m@K z;2kaaM?#wb((8;*@rl3lF^hko|A07SEv8@R$_>5n0 z@nhZN6EFVj=+BOLq4_+^-^Xh{@#61}{_ltvTJT3a`9t#!{g zji3JhO#F@({6zeUZ{k01@$?U9;&-&*uVLi4iue_uc<~=de}cpdE%=&+7kJGlUi=Nx z{~+-~3*OJa<`Xae3F)tpc%cRVE-!w~Ctmy+(!U|`LJQtsf7N{A#s4AwArddN;QjP# zKJnr&k^U2j7kV0A^NAP#iuAWgywHO8#}CaXUi>lAKO^x%3*I09HJ^C#-$;Ls#0xF> z2fXsveB#C5BmF-TFSOtv^YEHay!eNtzewVR7W|zaUh|0;f0FbsNxaa4zmi{Y@nhZN z6EFTJ>5r0lq4_-fKVN>(eB#AlCH+?tFSOwO^lLux;@^_~E{PXf@Nc>ZiNHmg=@&lF zAA1G*R(<{$X*qw4=W)CO=X1z;96V3rN(SUEo+ojo5cuTz4X@x@tvg?V=Qohn=Qohn z=Qohn=Qohn=Qohn=Qog^c7DU3dgnD<_kr^H4L#6R=QkYvcsqVR?#54{Szdg9_v7Y8 zn&qeYEdO^n{Plln$8Vtpf7+nOc+DsNvgg_OztrJ{7X0HLUh|26%Hg*iUTDGl@~7~5 zz8v4ToG-`cGyZee)&H|xejSg#4|G*|Uh{mLpLhP1Ef1k3J^p&U<}*JZx!B_W$l-++ zJj6_M@nc;*PgDPSX-{tThc6gx$Uo+@2Uh|26+Tp+W?`-;o7Cf4exkxj9%_sgN4u8MH z3oZEL9$xc_KlVzS|6g)=p#^`Lhu3`K?{N5+9kKnH(1O35UvTk*>DPSX_g-b=-*kAP z`8?mBpMT9K{yvBQ8iyBJ@b2{&@oPTuuXFfE9bV{Zc+DsNeuw{rkF)s~dKzByiGP#B z|4WA#TJRr18So;#uAV1t(*Jq3{C>dUU*~AS?-7hk@S0Ej2i^0}`*@pvp#|^1f6XWU z;#b@Fzr^8%7QA2oG@tmB4*$arFSOv_=e1wWC;rMWwDG_Cc{cq*3*Jw^<`W+|`~waz zwBVoO7gc_mPyFS9jsLQXZ2UqC{w8~TZ&Ci5PyAh1Tl~Lrc%cQKdHL6T;vc=n;(yKI zg%|9us|;Nl1Inos=u*Dd~C4lgvHC*B`FG@tlqZ?*X6Uu@GawBYab^g)_W z{P7bOzv}Qp3;uFXAEx=lXSZ4WS3A7Wf`13{z>D;{dY&}#m)>siKjrX3lh6FW9XBu1 z#A`nB?{xT2`b3+5p#}etmw(MC{?0G8@!#t3LJR(36Z<%R%_shn*IN9yIK0q;f6&8g zKJo8x_+NE+p#^`Rrw`J6;;%|={Ga|$ZT^K8yvUfO*VXf+iGOp);=jz{g(jcn|JX(N zhl@1vnos;4r!4-v9A0R_`}UBUPyEyOSo}vFUTDF;$$NjAPyA@d;x|6Y=3i*RpZ4&Y zPy7emhT(5@c%cRVl&8W3E4llIe{q+RRC;t9(7JtPhHvK{i{&imZHJ|uP zzQW@B4llIeZ@R?1zT*99KJh1CZ}H#Z@IniI!@>)^<`e&RhyO)~7h3RFdw9(!{z-?w z`IBw_g%*{&Z#NYJ>oBoF!UTE@Je|`B!^QCRzu_MFZEYH8b)1%)Fx@!J4 za`C_51+M-%TH?Qnf#V|0^vm<4nf^!I^S3#?(Bw1yym^r(Uh{SOzwXI$`hV4`yz4%S^lLuxA9VN^ywH}P(1Q2%0h&+zC2zFv z|4xS&TJZk+*L>oybohrIUg&9f%_lx`_{*^Ha#YcR_w~8*Jo&^wGKf7M$o{*x}V=@**MGyaEg^Afz~6aTowf4##CE%=dz7kJGl z{@AzL_@8ljp#|^vADU16oeuw+Pqpb6TJZk+(|nWuueIw@5C0z)|G1+C@3()=C;tA| zTl^<|wZ#i9ct8D`ulxTW`mJ*Rf8@8z^cA2h`+t}JZ*lp5($NzC#a{VqKGXlSd;S+3 zUTDEz7n*$5 z-zPlzN%M(M-fr=~>+nJg-nrW<;@5oQulYWU|AJ4q`4?L74?iD?z(tzr*L>oi{jV1P z6%H@7;3M|}1h4tTAN>)Ff3L#}E%>+a3ogNHKJo8*#NuCmxlO;&g5U7)nos=2@3#0a zb9kWz54BDye$6NTlJ{8rn;l+g!QX4)Mfx?L`1>9H!wxUB;8_QFkzQBNlP3Nh4*x}; zVe>CE`NaC|SM!N~)ZxFw;e{4Frp4wW&Gn1bNIJ9ywHN*^3t#Q#7B?1{5!nRf`8V- zYd-Nuf70T^m)QIZEqK5G(|qEua`>LZ3oZD}i(m7Jf3w5?tiuZ}_$_|H#gBFMJZa)T z`d*v<`V}_)LX*$>2eHmvq>0yj;xGAWi+{l3g%`!fQV97yX=#|HmC(XuZ8VqQHJ|to{tt`)ONSR)@aH_d<`cj5gvDR`GFyH^3*MK%HJ|u< z9e(KWLJQvSe>9)?`yKx09A0R_qgj;luldBk{a0-IKjiR23;unc{#5gc-}`lo|H3P6 z{)HC2-~Ke8_-7pctiuZ}_$R#hHJ|wR{DzJHKRLY6g2&IL{A)h(Pd;h!PdmKOg8u-& z;Nr)+dY&}#kNmd9r!Tkp7n*$5U;q7UzQ%w46g+}37sF%xKK^|!{tr34(9`1Ae8w;I zk4?e5=!^Wz^9-N(54iX@KilSCXo>%77XWFdU-OB-{C8~meZ9jAE%^6)c+DsNS%?2+ zhZkD#m+%WNelUK`C;p>P+4x`jIX3-5^Lf6%4cxp0uld9u|6Pl}-Qk56{4*9_;5DE4 z`^NCL!{&t5KTJSPQCB3em zCr$hV&)E3C%i)D4pY`Wi+`LE=uldBk>5nb`X@?hD@J|wqOYoXc{MMgX{7YY9^DngE zKVabnUh|2+=}#^G4u=<7@ONEg10c=xYd-N0{e{KN1Cnos;i z#);jLBX4wgq4_-Hzl>jS@q>8HC;svm+V~%Hc%k_`@el9|E`AWN`NY5TQj34y=h^%V z&F6`K#;ZS?PyB-~w)kruUTDEzgfMuKX8f8@{M#M=FC1QI!9QitW4z{T{2Qm>9lVI& z$KQXMP5+m@+U8$qiQn%(HJ|Z6;_z2~zQqeI_y@f7Yre+6$HlMtEPuHe-nxp9H1T(Q zs!jisE`FiOC*F@=^ELjyDR=~7E{4bWef$Sq{QvGMn}4CF#jp8{U+8P5;9c~^`;+Gx zKJjn-j~&-4p@{0pn`e){EkhOhD8cY*jzr=-eYnO#i)~Y4KrT^DngEA(oZ!nosf7rr{_M`d4 zZ@kpvKjiR23;qs%!Nm`zU-OB7h)yzbeQ9XZFEpQL|8ot$;Nl1Inos=GFSGcU*DYRX zK2N-_|J8hr|4|pe=2!KfnooT4avT32x%h>a`2F;2zQ(_P3LaT77sFdu@sTF}+-KYP z|3zf;FEsf~zpsDLeBxi{@Zaw6LJQuXKWIMjZ*lnFad@Gp;WeN5w>$hwY|}5a;IBa* zc#&RL&yyzpDTm*3c%jK>{{8x=`NTiy*1wK@wT)kB!5>2yyht;C%{TEo{8u^rQ;rtA zKY!DF;;*{jzP}%Ic%cRF%MY4Q{9O+JyACh3;IB5RAE#gQiGRT1U;a9qf1w4RczDex z{t1V_)!~H}{52k4^NGLg4L1L;cX*+v;WeN5lMes04llIeH@x^YpZK>s{PVxY)jvlI z-d{hF=gBAj5%>HthZlMpUh|26!r}k5!wW5Vzx*|y_)Fes%kPIAUTDGl_M4hd{L!zo z_&;}ep#^`ZSALpL{Cy7pim$chC$!-G^4EOgA9wgIhZlMpUh|2+@=Z4V4?Dcj)9{*4 z{GP-Axx))Bc)$ELpZJFyK6<^)ztDpB`(NSz`XhEf(F0#>pLpqyTKZ8(r;dJ~qyK}W zKj7#;aP&tU{e|zg_}Vo#ynWDDx_8HqM}&W)<^P1E&z-dNOMcAaKk8`uuhw|xM|3F+ zk7C6O@#7<3OX|pxm*58JX1iz`9(|)nw>^5tqyLRZ|9g-AVUPYrkN!iC{%eo^L?l+H zm+i#<;XzytkG{{N;l82tJeJ=}^lctZJ&F$h+dcXRJ^JT7`u9Bg?>zb?D0v-z;?XBO zdg#$_@#rT#`U@^9hkxFq-|NvYhTcb~=Pr-_&mR3(9{tZ@cdYTR_vlAF`p-Q26|h^- z_`Wrm@ z`#t(`kN!Q6{-{TPCfum&_^!*qrbzW|BI!I^t{vK|BT1~fJgtSNB^}) zzX%f*lt&T%t33J!kN#4R?s@bXkN!%J{%VhYgGYa(N59phztf}tlSjY9qu=e(zvj^& z^yp899}-<2pXSjo^XON4^omE_m8di1~d=>N;3ANJ^XdGxzI`lmelS3UXz9{m>{{rne|-``6-I`rt9Ji6=AU*XYj z_2}>Q=%4iH4|w!%d-NZB^oKqAZ#?=FUR=)K3q1PMJo-wHzRIH`kG|TYS3UYxk3Q+q z|GP)O1@GrualaM!x8Z&pZq}i1$Ne3+AHe;cxW5bccjJB#_rJr;r?mdKZE;cala4u&*Ax`;&3M0QU=VUyA!vaK8xmi*a9u z`%`g$8tzZWeL3#W!2OxH*;cN={ZibYh5Kc=uf+Xw+@Fp6b8sKU{kgbbf%}!XUxoYg zaK9S&=i|N#_ZQ$^!Tp7}Yq$g4Y-VenCRHk2m|o|B3rIaQ`OmCvpE4 z?%&4!JGg%j_wVC=8uuUI{zKf0*3G{JhV}EWaQ`*#{}t*f%XXQ%3fz$^kF3xy-|O6XUw=U zA010a>4|*nx^$=j_n`^waTl=hS|BD&O48yZv6j%aBSBoIomfcQ!}q zU{w13WPWZm5#@=rKdegPiF~-ft&+Bxk8V6M4i2PA>1)?-*&GG+!T!#uzn!=9!C-d~ zojsk7R?pyJ!>za5K@fJ*VZYlRjt2dmQ)}JzP5jn9oetV4vi@ke)?Ho2Z>@A|Yqy(@ zb_e`nHR_>YSG(I69#TB03M$r#>g@OCO;;V+@bcGcw};41p0&^B={@c4E(#<-&QIl| zc4n%;lm$&=&ofgH@V6M0F*8VVW_fUmKt0&esYwfU~t?Ild{oP?3Y0eu6 z7LaioTDep*UHEu2!Pf36l)HH^*N3Ycw{%T_;DlTG&Z*I9%Q_agu*lfmAGLRT?E&gp zt{LUGe0`upo8Td{ZHcPPR6&NdPMWpT!5}@~-pS9lZITeOtvs8f>IYN^%U7;Oy0@33 zdX0X;kL!J*!eBmoGBZ z7}U2|D%^z!w7re+q6-i2P-<$rIhnh>>=H|<6zuH6_bcak*hht) z(R#c(Jtu5>Y><4W#x^PZ7$M`tEtHfz;b}8$qi!;4T*IthrnQ@l5&%& zLU?J9x{w=mG!f*Qk^Uj>Ql5dZR){J#Jx-wU+Dak6)KQyq?FzWC0N2?pUB^A85i>wY-bp>g;y0r@dlLhIEoPNL68tpm}byYVZ z^|P+Jdt23^PQFXZw%%Jj**;lopA7ICH*VQ%v@zVYq)QqLbMihYH|B%w{!Ti|P2Nwg ztg$$Z-_ji(d+f)ckT%(ko4N zc5}B$EI^5UkLV%LhGz8>6-95NzkNNZwcFiu=h9C9Ob|5jeJdRf+l4f4BP>4_0y6AR zd(xHvBKf&p3Sr!pEY>GTDqY+cUM!V$;P$FIkZsvkw{wzKu${x&Av?bCS*&gAb%LO%KHne8;o2JPV%x;Ek3aLf!5KaIA|v{7odfJk(9cSoq= zDdJ8$yPU$O-Q6Mn5Bn%<%=PiV^RMy&lmgwYU1|@^N7hH8%!65fxX03!zW+$O_+^-H zr+cS&2YI^-VQvI$1&fo96y;LEI*YkF7+WslY|9mOw#DI@oZ)#?kNg}G--C_>{~_Zc z@qD4?zv18wAQ;SHyJztTJ}H;&?wxnv(ZkvKFvbM){nU~6w(DHB^X=|7Lgyy|_}tz- zgRt=hBMLr|L;T<0F`qVB{BO!2>v*P~PFewH*b z^G8rwP*eLDe$7|glbaeh+}T5~JL(;24~s9Ofhm0U#8miz<-QS)@0iD%&k?Ht=+W*L zDwO%M&u^v@pB?mB1I>pW&>>z7^7`Ir5XBkl1Joq#y)CFijvhaG6x~ghx9>(W z?zQVhOwHy*Oh=Dz95uCVWd$il2febgX+Do$KRp#EHjYY4^0d}T(pui?rcs_WS51Vm z2@wJaN+R!48#s(RD6~A<+0F7WsNDo1Xv^f(#jT!PSuu~Utnk^Dm390-k@r|C2R^%< z4(`bZD=V+rA0hd-;JzLA+_2+$+GD;J!K`Md>|1GAeF3UgcYlDobPDe&sHJH)&XPP$ zYu!BS*wP7V88_hVXB}o(o^(?K#gu$^Kf%MU`(K)hgPM8-` z-%AIOe>3Px(drReBkZPet=Y<>X15l%l4U|ed&p1a1Lh~IHR@>`CRq}+^2Ewk5H?Er znU=Q5rVZWY?hd*@1lLLtR**H)TF^>@%vGNGf@^XZMX!fol3FKjA($izf-I`LQZ6ce zP^(SUdN#e4l>xNATcec~YJayzGuvIcF_?Z}Wo4D!fvGUIS%zV~izXO`tyU||)4DC} zaYEu~{)CLOm6cMXIGqkpudE=)D=RnQ>ub_ICiv)y8;+vgqQ;Kj!DN@=v8N=z)@x+F zdK%QjW;3q$oHn*depr!w6Y0td+i8D$Z)>=+!bI`w(fzPy(`4DIz8Y2!C1)O)Go#X& zH>JE8Y|#YJ2nqfN^DltC(uLfZev+tWSX~WUCqE|twN?sW3F-psp6t5MI~@DMa>4Gas-pwSGIRvRKDGY?vEJxbH0mST9Y<aPnw#{HZYk})mk=@Ia8{Es_)2cl(bry64k

r_##xS<1uB*yC^-&*Ac7axsJJ3OFE5ut=X%ES+f=T z9ZG;c-xqw?%XOd-f!s6fLXtI86o@4Jej}$VEIFMA1sJ4f(U+%ZPo|x%d~Ih31LO5a zXYx4&@PR`1LjSej>>M@!DE32tfbSW9z`t?*u6MgV3|(n2PvW!|O$<4$#&S8Enc9PM zvp2{w$mWnihL8(bRId5Dj~lmkJLwklF>glWZcD5w4x+{j2J5!z6h*^hUNPIlcRj9~H5vJfTI?M6YIv^rVl0CXx@1E89r0xf8V7+a~ zj>oVfb&5gNK_Z~E9;3gjCs8l%)PjyQn8gFid#wmnztL>uIVP)8H=?2!pPC|QM7GlN zDox#5o<*%*GY+GigTHRXNOgT@e>=7bEF`yy9I_}yX4^Nt%Q(+*2jL>i-7rkzTJFZc zLU25Msc5R0((CmhHgoQciR1oOA)w>Mw6d_*LBC817bE7l`ZqC5)f=s_)~sRfm4r20 z|HsLnjBO|9#GGmgbS8GXeCwHf(A(NQ%VI}t0V+}}$y=>nBWi|OD4iN)un&k>7lfLmgHte4F*B#E)(tyRJ?~*w*@$ZHjW%rMaGiZ+SxmHu%1WFd z{G{GX(ySiUdp*%FK$TpbdKdAmVwo@EAi+oz=MdkzanS1Z4l1@LRU|w4sCBdbynQ=p zfG!e zVRd>KurSN()dFZT5}8pqCS_ZvxS?dlFpIXOCQV9;GX0CRFfHW!`X6uNWAs8Y^--m) zVi7JXQR@sRNlreCSVf^3h@w12#~}T}GF?m_V^O5hNuzq&ih5mFDz*)wip5_-^;gUE zw$PRGokV#v$)IpaI~hhLyz25)1a)mfv~U%>G%a?zBD}zr6+IxkXVDYPsnbH?xVD?2 z6X@ho-sxgw3|k$kgkh}})|-tQ)H98sSr6(#t(@i%Lhz(GR0v^nrCVy={NjriX9^K{ z;p`V`GKUlFlE`$Jcp_=VhXkdxt<(Q>F0Unx)KB*v?63a%^R&wua}7iXsW{7j4bhWC!zcHh8EMn$HPj{2=Xk-(oQ1` zvraQ|$u=cYp-8vk>JG2eaRjyOJo-JD8J;uaAEt2;rf^{t)==t&>@%%C@}2MQw4I%6 zL~G!BZ+|Di3)|Yln%z00Z-IngYeCTyhiS6|Rg*NRxKYD&4N?hSLcNtlkbq1-IbW!q zS_hNr1Ru>V)K!HDuwbar4xNSioZT@}Zfi2?ZY%7y;$G0{K@3JsTr$bkfn&`j&g;Dp z%_0n=?7);qi%$w#y(Gx~@ky5+(t()qzYa z*s!=3RiEsDRGZWCbhp)NcV$H@LEVs&CUs1y zQAR-&LzMJoivuPk6#+I|SUl-<(ln3LJPG`AKOjI~g2QW=7$Ho4W2>W^DDmnZ(4TsC zTF@l)Foa^>*z5gc=~|z=xrObNqI8hnv%725pqNR>i~{ed8HLcwG-?o$vtF|!lD-EB z8g32(Lx55H4A$QO%>uyEUeZll4X#Pq-aPQ2(RSM3VP(J=T(8%Yw1eq$)^Iuln8aoE z;rU^syNgx-ogj28_gLP>I9%(&{=-@h1mP|D`C^(FL|B!_c-1rZ`V(CWEdv#j1Rgg!_D%8 zg*8~f5Mp!+EljBDn3>o78C6BUUo9if6!8y^=CCCEsWI{WHL(5ztB1g;3JQGydE>?C zn}>Eedi9)HkshxSiEhA-4$!=MYu7dy8wb~j#lpgdaQ)FT{}|R-XhLRcFl*rr(CXSp z-Ap)vPS;qSp;kh17S!S-t|$1Y_ng#l$ivm_I&mQqd~m=N;kk=>_S|81yp7tzlcHl2 zy5EM8&qL@kFxN|KGV7gIQ5&|;mIWLoc-ZQ*+qoN^KXjjFBiqW#1_W%FMxN&ggnE#9(}VQ~W=-9ilZY{K z!Psaz3XJiVf~v_G>{=QYU?tj6c6(UcwjmgIY1^s!CF2}=<`ffv92$4Cpj8fN!9ES< zL)|b9vG~?SpWc&|iGzkdx2&sW*)^JF*p9LmCRjX*FxBcc!$z+u^B@=qG-^>CN8m#w z39wpV5`V}o-G;gNoPR>%?Lnk`H=|15{9GD(k>4O+4d*7vtNFg*+VJD5cEGh@PzFtV%*6-*;c zYLJs4FF6TkiAJH#W?(mhEH$W^uD3dRY8+9y)ZE5qjooY*#Q9Da);8_^Q7^&9Q7*1# z%_c0SqPUr1%_Q%*a(11aE@xVvV$Eo)--T6Un(3mRe9SyyS}ZL37~^T!?B>I6y2nM} zUZdA*wt7(=;yYTh({wd#vziPH^6&gHCNv(V;U?ngV&L!8sY1e%Zm;fopu>qLsPEbV+ISeW)`-( zX5uz2d1YL~RZUo~40cap6$~j3vQ{09&J4#Pw5~QJtFo+P1P&Uv=f<$B7=h8Fo`acs zW`=Uw^J5(!t7xq>!;Av<0?ke>4n%cpM$Teo-!nRhp%iOGty%{r$ygee8C?@fLCX6O z_%YBlphmQ|9m|>tz=#66Mi_#ousG|~MB%f{N>;6wMy+}dt11}##id?=v)zi7EEt{D zvFO!GfJtEo=66PmX~HJPdn+Wu$OFsw=w)aO(@Y`=1g#4mj1H2EFF1lZM!O}npjqC8 z#V|@5|7r~piS)2JZQ`$nP18Zz=agCiyV0oKu;$yHR#wkic?Wt@*vll+6~tZ6jN$d4^PW?WEF6iSzQBgmVuNemmXMak<>_qwUO z*S@^QTC24h-5Q>bnpu!HMIn+jLo}`kn&UcZA7|>JsThZ+pbGPDy#woudH^H!ED>`$ zPB|tOC(W^L%biTZJ`P$e1Q0f(P6vhqu8&iTQV|F1)+Tq>+=g#4Of`&2d)8=nL$s$J zgpp>gqocNKVFnlx6Ch@8nPeF4{hhPewS<^6Xnn9w40Cu)b+GK=T0hh72at@gqJq6( z>`bF(n#7P88c8pxx3Go76lv2|06W)m_9ZtD%@V(s6iR&TQ#pe$-3}2f37LgD3i?>M z*=Ag@%xPsX$Vz+IdeP~+JT|SESqkgsA*2LU{tJl=%QmeTvoRQ_p+IF_U|b%FL^83m zh^{+NA<8HDceZxZ4CxAYhtd8{|6KEUzcWY&=gmfG7FN9@iZNb`t^$<(~QrK1ISR0Xr z%z5K(q-n32q&aNgFstewNgb=G*w>Lkrid4;=jaa`7{6f94ns!t>kGz> zAq25wDI<{QUiCy^E#(tdoqlOwNgh*>YBgel>-C3sz?q zdt>#q17W9G>vgbzg)wD8G@1yyG;ABhDqFm0ZNaXHIG~kNrvn)xSTJr*BWsNaJz@_- znJ7=^tu0{#LQegkoiExe!fKsH0x1k(u=#0G8Mzig?xre~k8zOxUnFnj@ zjUY)Ed}DY^c@OHD9^^$#fEFByYOs}r5paZIyqk2eJ87YrMGfL*6V`AsBmk_%FPL)J zk3c`(YXq%MH><-O!p1#moR@TPbR?!n!yQ=9&?n3)u3~epj+u{o2`b32lKy1*bBQMbe1&;eTx^kDW9;( zGdQM41D#R?Gr>j!TH#hGhFTTokyGERji%Ngj*AIrznD6};=&q66HA3P4k>v@MzlqX zD@bf{+2zopkTQ($JqSivD~T}km7ag$&}|`kfyY^lDhkaWc0XYWKt$HX1GmSJ;vAXt zJKgr#-N8L57qovgC>&LRL8I0X+ueoBJ!pLSe!icV!>%_|SV2K;Tn}MmRY-0NC%oYj zK7jZ;fHI%@8#FDb-Y{ZdosGTNlGQS(Q|Gb2gN5n-j_LIAi-R37n-_s`;Y8Q% z0XuDL9e@<)7$z{g$8G^EmLZB|Q(R+;Pnlh-EQhF<#SPq$cp!GjD6(jBO>eVamg&LVF?ktjUWvp(LL$+7Ya?!X-_SCj&PJo9ilXJDov=^Q_)Q<96C3w?`~nk zI>tbhwHX8`V?ivd(SmVY#HGvW?5^LUtt43hLwtcld zH5?`0$|24NST}maeg!P&@UAp^-2RUsK^{a%bJ@z6sA^l<@Gbv8HTDY1ZXeWI^T*7yhNQhNFEcC+& zI)#N#YgySNh@?r{K7{X)vr?=8VnBplNwHU8;Y3H{`bR+oA)BU%^&Rv{u-|SiT|-RB z+yywo7Id?rI-`v~CXkrfHX%zaJ5j;`5iqgAR&9&|+wjbQG()W8Iwj0PI@oH{Sz0`( zk6)pEfiaH>i)t{1X+qL%EgvvmAZ3nBI#zBqgfgjk^&uc(1Thlg6@0S z33>~G7VRR6pb$pDy)JAoYU#35!O)22c0{4*gyBW;jWBUSK`(FgWH-;^<&1R+*o%l_4n-Vetv-bEx!Vc5IB{m_ZduAg1)X47 z8w;HYHtM4L=q)?8;`}4qFN+9frO2WR@<_{|mZQyJE{APy%NBXSnFY>lcc+>}*p?6d z3~WbWFNvkkrGw>2I1V<(;bYi>kcN;Tqeiiay6^zoaD`HgEbK#YpdOZYBP{=9|E99zqID8*!3gVITdH zO&|^1A}S7}U33M}t@wxIZPAEHhOn=menuRsL>C(>aClCL1uh(IQgdCM-86@dEQvJN z#tl0RIkKDT8T2^ZGb5^}SB9ti+vD@+5H@Vgf; zdtqBy2S)|Puu|$47N&M{R7DW0<|NoDwwc}uVFvDT$+;o31aYTcg3!eqC#Pn(mxmS-Ez{Y|UyKMOoi013@(lbyFO`oV%HdB@b&o z%-GKlaj-f!9OFPA=i@DGxJ^_v2_ND_b^5Y!Jftc@e;vcb9h+%kAS!47FgV!TWA*7C z$Xo#?!8{4y{BU3s!XgjWSDP8^<#U__CDnZK4Xiko2nTiGq^7*Vt+1|tTf*cRssSw5 zK(!C4254kw1<1ORjo%V#Zz$pGxZLs;uVcP-kzqUu*1<;qQcvs*f= zh&j}(kE1U9~PRE{LUVmB<2v6TbrvFY=T zhJ~1;HMrNH)y;Uu5=?7rb)2O!ZRyj&63X;cVI#^;BMKYX3m8U_lsm2IW3t2I)Rj>R zTrYr4Ul#{sWLO?TyPq0oeUzT!R7GVn3o@KfS%bxRGYqH4IBh`>VsUAq7S_Z#NxFu0 zZye(elijIFnHr#7Arz6t9vv`*B&!9{4z#Q|vps>W6bx{d&^$*r7TB?4aIB6ajgqVv zV+RVhX?9>*wQNqB;@hV>8th2vVRBzbx8`u)vJV#t<~w1IbLT z?OJ!E(?Gva$H5A)BEW{DC6gaCIl1ryrwKM{caq_RO&oMQz3Z4({TlMxp!JBM`Nx4E zFn7TQ7n{r_1{!Roz&T$jR9-OJsms2zB?7`+73XnaQ!u8Lb)1k}>=j1$ia`NtR_KYb zhovD0XD&WW!=V873S`(NR_kE%r?VqjBCS{>$JswEn4DrS7A)(RE3+%Z*GBun$S)+7j9(NPMW)KEhIaaQ5vbJmzoAORtR&s?%wz5*lWRUU4 zG8wk=r*P(i9jTZPOgVheAo(DKI(Zt~OlVes)(Zn2_Bk}EtHCtRiAc|B%*luwi*X(q zqR-F(L!8Zq%{W~wxlix!%xHy^cut)G3eFl}umM987_{dY_ZRLJVy~BsW7r&L*i(sB zj(}(HPZM0G^#rl$C2{1NRS2N>qFTI3b43_ML-Pka)g_i6T(Cx!&oB!$GY2bWf8RImdTZs3fQ6BGj0GobUtSv@cT%P{|6 zBB^e0#K}h)^uC>L+RMtj1jDrH9aFPS{D+WlHZ0vu-qK!6?sH1sykZ4Gj zH5hnIFG3qa7#LGOn*h5T*eTCL?6OK=28MTxUC?6hHEu6?}mP)YoeKMhy#~`%eQUixZXHf^fAX;)3f!iKm5l2bg zFrUhx2k$nJ;Tj#7?ZVvB$u3Kbk2pgF;|2E0(Fq79Wwtz)2ngq`B-l`c)!`7kM8u|I ziGX@BPW(cWV0hW(l8H;v$84aTbktCsZjMF{L&Ug=^A)g}7B&;H>l}+oHs&_IehGr@ zE>vxmhi}`nSHcVjTf@Ez+bwV!zZkPVcV~B-0mub!+Z&onp-tn))C*eV5Xr})wEACkCO+!v=PZMVr!R&<_Ibg;GJu1{)woWvyT)Ai*GddTH ze6S7gw&0!%wGU?_nWA!M-4yZ6ES-t8_u@tazMld}@!Xo>hJ~gJZG29-({tbyai{}R zcoc%T+7y%i$;Wvh1BPtc24QYghY}SV-?85r+tO^R-Cs}wuN24t`?OEHTTi3EHQu6lF{$TAEF#D^#js@2> z&)`(VTCGuXc56b#^Pa=lN(Z*(NV*KRd7DiRW3;JhnAAjV_>3(Q(P(cr@iVUHC>ceu zTxdEPIFAE9tk#114Z9g!Z?4+Kv2xB$iC1JLs2|7KkUX^o-m6aK;*U72xmtm>_5K#l zHlTmFE$!RaEBs@8xn=jk$M6=*iQq5rxn8{0wPQQ5=hhJ`r-QD&$&a z$U!V`5ssD^gG%{{jXJa9qH#?ss%TUA&G!nu4)5B2PU73QSI>>eagFLa)2Lc(RQSy` z?d#f`*V|U*XB~d{Y#MLqZ{@3%sjF9{4!=#Nu0Az&bxGZ|CUpr@hu>W4u5E8J)$Ya6 zuQ4n?tfEq!OY?>{y?aZSYdVAgj@2 zxL0qwp3U`Ycbf`g{d8euJ%)i*hTY@r1&edySevH|0`t@&+r!!rqOJaLv=*P-y(iy6 z1y`N72nMcFjZ+r8LN3aAz~M1H*}1(DpWuwKs3zfBd{rYJB5N*mT5e*uZoSy@Q_u zDd4F|h)YFf1;UN`?dbr+SZ4#lnI2-xPFC>Su^st0BT-!DcEyd7Jhg$-#J8^xR?UE1 zyz{9^3QI|fOsSaCFPCN!a@FhBjem0#z@>y7{f(WJtSPJ&m9I3uc5iR%{Gq=~)CF|% zD$PxF`8S%pb@-BRXrqhu-tq$ZofP56Rit5e)u03SYKM6rkX>AJrC-;6*UaqjvL>D` zUYsWwL+G4SMwyI9x`p*|YOxdDiE^wpLkh2@Mx=_cBol6irZ8>aGY-zRk0~$pz~)ia zLN{z{gCte;PFLMKg&=rc#XI#=mfYYRaU4#K+q|}2S<|f4*CE@y^@+MRPFG+~CcV|1 zX}r48uwVRQ4b6nX^8C)TRq?aK7t;#+S{ioZd^lNG9cM8ZSM{Bo6&wp)_vBJg)I*_b zj&B|gG$EXFt(;?OdVPpCC9Tb(DP`y9y7?Zbr)}fbbxaQ_j!x|)OMRrN`V^|sbVh^S z^YnCy8CccK-idAVg-a#I>Ot~XX%28;hQe06s07DsYR$a-L=Inpmx~<|Nja!1+S_bEs{a!yGpolzy2ZoI%Ui88lrbznXaWcG;im6T8 ziVOrVO3T@%7dlw*!eb^Ke!xcLZaUo_=du%FPnNJB#sP_&3}CG2ass^wy!MRk!;+{^ zTpP7-p+2lE#uwtXjm>m8o{UyVT~mAPk}e2BCSt)rV}!B^)mo*X)^N?pif82lC>o5H z)MGLXdgDpC7I`nxblr>eEM6ZzzX~>l8iO95+nw`m9-#sk;8dxsZkwx6$X4qx7Kmm6 zH3oMr4{_=Y252-o{6~*4uX;&0Dm~mTT|O=Pr8f4;t0mp^g(R}5Ds~2Sc$L{sQy{sb zQe%KB`o(n&(`#13Tcu=+zmBQHHUVCGiW*z)GgN4$4#$W-7bLPx3we2AZCZ#6h-pO- zW>DF*BZ4b0k%|32v5?aJ`QyQT(=6>mA*4^6krZ;GH(7X&lCcq+5on^5wm-|jRMe_+ zHCit}RXKd=R$Q%`kR}nVKzfS9~tcW_PR9H&cV^lm`*c6eMdON$qw^2&YWWQmA z(IQ7SRZ|<&0g|g7iI#3j(?h?IW;8w21=^6BP}oem^(FuJgC;K&v2Vq5um2i%uK45d?qBOHL1{P|P?8_=2tF}KyX0e*#!>cRO zWp;`_)ApSBZwG9%?o-qa8+}nR967C46jM5@q&T#>E-H8ItKax~@ngx7!M3 ztVhiH-7VBdoVYf?lzDTV^Vuo0W}EKAD{VGQ%#h2oW~SVqHrtd#fRdEATPooQ_^=XoqO2O4NGIbel4l4hx3Z8M z1a^7phJL=4c?u>o5gzL{#`Yw)LV&YPPor(S8V^ZRRcxgp$SpKNom$Qjf1vWVLeDBo znkLOdw+`;tKb`@Cq#z+^s>Gx0jAiTg%!rw>llV>pP-$d$_mN#}<5Z2qEk;R3*WJXsIwwEh!S| zDKJaOD&QhBLzw>4imR|afF+&SRl-XXPTcGF+B>^;1+b{B{t}qZiZw36fqiDNtX)`d zZJ0`lDZN>_IvKW482iqX0d0IID?WxyWG%AetaQLrYk!qw4f)vqF`S$FS-#ron95jg z6O~2;lXCZ(QCd?j$H>V)Cw-S*Mlq}`*dI*Jn*BBrM6M&g&Yo3!Sj}V7qQj4=sD%@Z zC0mUVhM+Al@7xyD!Rm?P&FiY>)qT^eOeznmmSRh9%_c~vXP(%sMsrFJfK_zzi#{L- zX@LNv+QCLT90v8CHWFWjQC7)n+_r`iBtFxJr%jlB#n)L|aIwjl@oeMR?$%an-659~ zP=w~ysu_V5f}dRnn&(L?`_6h&kNY#8GoADdK8IqmUt49PbD;y;>Uz-H-0uuW{n7p? z=g_pd57*f(`$Ep`4X|A5MsB~+TG_;xCjCLR{O&o+*Tbq<+?AF-CkC~k?l0rst(S4V z0fZf*v9>Pvgr;*e-M3DFS+$;TL}{+=n6f#%>5i3F%({tr{}MydDHT6RXH@(!ZAw`v z8vOTi;2=}=Vm5-B$+DT`Vpuq6#XvuPc*TUdwv<%)mD)z5l2{a+PDmkKmwuE2^eayg z%bY2*5=?BGSmk=ceD!7`#F-^i5-UqHEhAaT%Chv~sO&`osTeh;s&;vQBHnT7_<1af zs64W-t9fsA0ZbVnj4)IT4~qs0GpgZPSnu!dkJ{b-pu3N5-pQ4ACyg&`BDxbsL2oLA zjV|yXDrLr(NN0=ehpN-E)`8Uu?J2WbzW@(5)CiG#*~P#^v6T3JvoS8_tiRTt+|X4= z9WwhM&G~EgHOX;Z}l5k-5oBFZ7e$k*{uWLjH`viV8668L0?^dkq zsuVexHhK4G7R5C z#p044Rb;KEuyMA1xl=WHMG_9rJlqNzPGM}z zazf-TqV;8MCzv{UbSzC+VPe`GW*L1=rAdx8o;biH$4`~jAx+p59+apmtHy(tw`_5; zYV2`dc^aGBy4)T=#O6GDv>P{W^t)bPW)_cG-u|Hw<3k)axU;BqdIbjBJ#O8H^)qI& zi1ff17(r_nLo+Osv5qocU65#a`UIk}y#~{h^mpN#A|2+d<+;Fg0k2Tu*rPM1?354N z7*7zs+bPfKfb5hnwP9nt#LdUt^t4*Bf4y!7f8Br=5Rxii1X88CUh`&TQTPCf^T56T zvoc~g;y=e3DPGRUG$$Y9Veb}>dniuR-IfNv>oD-$dfUn4YwN4W+Be*`e*MX{Ti4sQ zsvm=@AH%92>s3ESRX@g6KQ^j>{Yu|YM*6Xf44%OU#r@cn$-5QpxbocgjtC;_!pjo4|QIEOR(Yw*zxltQ!-xEBi zbP*WMP0wI#44qQ6JbHU7C5++h?o5<--(5)LqJUz0CS#uS1Rkq(O2!iSl#$&_((Lhl zVM%Mg;_jcg0p42I7Wq;k#mE*Egk#rM^6&S^->g&DZ`KL7j&fdY=XaCd= z>pXA8!TpTWDCD@sYlLn8lvCpx>n}ssI>&f$I zAZ(CPp3LLN1(YC%p0#T2MUkBYG!ZuO$kYr?1Sh9AnWnmwCSutfAFO96PAIBc@pny3 z%T~*#gtfvuv(A?9Ea}LWtZGQoae93k0$0MDovk%&yII=+dA!di!$YV_lOPF=^|9RA zr}Y0i7B>(ST8D9b4HX|{kM?WVgPJj9B>ZT{9WN8tAS@#JF8l(6tSv)tQ4gxB`F9}p1{-F9c-r~ zOc*_Z=K@cPT(=4oD|l2iJ^tj5jx*XKyxEHOAJn$;bM2k|?M^t8*`^3~0@uy<7(i2SM&YJ1zyU-Ta(( zHVb!)(^Gf%2_uLv-x~MF1$WuZF82JJs#+UDGfK7 z!@N%)r8>JLDvNRRX1q!kkl{+{)4QEnrrkUaHrB9NetIBSK#2Q$sf)7&I9qp2Ze;!M zA9{8o)&l$fmw3mnsrc{k(6wfFV*0B62ej7$%@PU&xLWR=2seq!?MvEWn<;Ik8Jc z^>1q4fCO^v;qjriOSD5K+tg~SFls48r#0AxLf8!@SAa`pn0O;-C(iECZF@B*f_g^O ztX>=H7}&B(9Fvxb*z{hEuAm3=Cyr#4~SM zHphc-JKx?NoVTt^aU_vE;nw2DKR6c+78UdcyW8#rq>ZuLhZz#!oH}mx!h*=Ep87qz zl39Jm5{zZIQZ32O&!9Z$0BX3?-`mSaCb?lUjonW7&#CldGKSZ@(O<_XEiYxg9VDv= z)pRi9h_JTG9bhWGC1vbk33GU{+H7ggS1*>gtQS*{Fh4d!_%q$$tO57f#CoinxGs@m zV<^g=Lp4(xx}n%R1j8LihW5zcD8I6nnroykKvTghm5(;RDOThTJ5 zR6Z3zmD6&%GW4q4c5C$5(7{dGw6MoUH(~mYe20$Zu^D&mj^UsVw-a#Nm!E@u&er)h z)|auk*59GkPO;sVzF1-o8Tsm&)rhVmRyn_PhjNs)B77Yeyl5~@@H1)%U+jAhrZ9)o z#%8Vz{sVGuA!E3;HGsPsCkKe`Jq$%K*x!L`4|w6Qy6=qDHmD2Ju(U%OH-Ra;DyZ6B zZK{7+m}uY-eK=ByO`xkr^|wSbvl8p{;KRg(f6_XG+2T6XJ^5&O>%g33;cWXV6Go4p zJimFT*FPr*{oB~InzAI7ST@_oTtX<9$4c^*E0X%&?%u4Fwa7n*?Kg0cVxzRv45y-B zAFoe2Q$>4{iYI&*gZxw(zCJ00IA;#%X0+TsB_BaxN^rv+dynZ%)ww7bXXccNPjt)_ zcWQd6t+Og>Qy=_dXsj6l=;lKz2Lz)%NlX-pAAQS4kDmMQD+SJE^>FfUl(}Xm?M_Y} zpT0O{*PT;HEjMyo~*L{gY=qiprO$;|v`X@bz7Kv6NFycpZAdq&Vu zX*lC`GqY5>G1s|_3)r^yqJYP(zj#FbRBZ!M+F|Qu&B%I7WR3e#&DI0-B`Pj za=*uo?KxR~e|M19wW?K}5R>RBeOqN-Ln}ept&u14?G%b`_}IMO zU|2UTaAF(ouq+2Gl|j>=S8M>a#+Fu*Qd!DX8$%~XxTTV0yD~I6j{8t>PEDQNE@t(O zWx1r>Px$B1R<$XA`P{v&>W+e~!ZZXn4AmP<)I_tF`EW|57qKQOPmB)doJ#h3o^(J9N?$zS{z|h!SN6tMwR0oKl-s$LUN8XPD#D9CIm}7NkXH^G z$4X{-P9Z0o5YaJ1^s?f(J1&8z$@{hMz&I-96QDRk>Qvj2dwd47j=2y*oj0^XP8C`N z?V!r{+2PGrSfVr2Ee}i{Tw$|k9S(}3vNE+rUaPqxdslO%94eY~$soK^TV9qg%=#>T zstJ1QWZ! zD^h~0IaxwQXW}Z8G@OrZ`LWI`TYZn(5#a+M$AYvnxKvX7p_8KrG$qCTD|b|zOj^elH&sD@B4 z9FAA_BHDi_!sB!0UjSWDxf7_`zf!$zxa!G;cDhV%xvtzBT)8!P+NS5i4970v89mT= z>rDB)R%h2f;b?e5&sim{8Y!_HUOdEF)1=O~qRZsKpcSxoMY4 z|6`>lmX9l93xXccR)^BV#95M(D;{r{rzoBPaq!umX(@kGh3(2VD-|AiS36pmqLJmWO+GoBbL-e)`{C&SKo z#P(gY9x(odW<20#TQi=RICON@vsH7o8PCr+L~jPljpj3+(C5O=c+9HjD<05?C65KS za-Rg{#a1q=^n+&QRWoK2Z|nN4-JP6=Y)`b(u@Dk>`OuneSVqT*34w(d!h(CoofbU% zA&3%o;n<#yJ^Nw1W;^>CSBnmK$f|txLoJgrY_lJo80U6e;I>E7D>@XSHC@$}*fYqS zn!_z_22gW|Ud2BwtrT8x{q9cIr|w7--iwb*C593!DVVMlid3$?6=iy$LgF z?C-zPHo5ZD!7r_YQpI_O-jv1EFS{vgN}`QcX2zy0&dI0;DsRdPV8duO!3|)ge`aj= zu{LAJm@OA`97);!&8ucb6)lY5V50+%#@OR$#Oy<;Eyj`|EVg62@bh6e-OCRxc-6vO z@+E?4lh=ys?{8i8G)VmBjtYPS7uoxK zca|}F+L~S0o-{s3)ph6_@WhR6>@Q>s#jtw=?Cg!n{p~oaYZIF*RyR*N_s(VOfgo7h z!MO-~1MFTIU}RC*_cLDi*F=zU{8lxztX8-+oy;tA~b;qJ{*|%2d-LeUuFvBS&*@lQ=9pG zqu^473>qElnCLawfM<+jCYwglzQz6#GEi)``JtaGH3EBffj-vu0#A{7&8)_>dV{o( z|BtpCw%1sv3w0FGh|D2?ElTX(-7B5L36>fE}wZ+FvGw}Tn*u%F%M-l{s4 zbE^6gVh{l_MBexz3QACeFd`%b81fMqhY^i$GdP1p#6bgssDlb9nBaW>Yps21Kh}9v zb$6xvGJ)Gwb^U%>ow zFabR045sTg)4c#L`C0VWFuKc=n`hY_X<%p3U1(0p^V$C4cs9$-=t zpOin_e$g;_`ZUy@p`e7B9v7)g8fJ8O}^OXPjrM>|hhQ;m{N`Q6FeAbo00}fU?+h z{Z;aMDsS)HI@*6p8K;fuM2zubZEiXHZBNxlP3 zsO1fO80be22CU*#7?wI*8)84R2*YxDmI%2`tl~n?CMgl0b*31W4~CR%sE(gh!k$m- zCtW~4(rlN4S3bwr_*i;=(ucA8hQ1!Pri%f!Rw69@|2q*=@PjAoBe*NOoVRPaPQe=* zlht26tz|n6EU?ff+4GOB@8XqPJ!skGkInM9E6qi5g)nR!pPQpVnYxrG)8xAw58w48 zuCTpIL8&zEG~+a}UR~XpcdoI<0WgdWX?X(tk@0G5w!y23quOjDTo?KTQb9FroGLxX z&fre%M$80om8Ps^$2pq_CX@gj3Om<+4NWSG15{tIY7~lGL&0D!Xq|ddb+?XEv@Q|W zdt6+?M8GtO8LdY|oIp;Q6qyuBC02;3UUcUnI2{a;#^>a&cz+>|m9##`v1+h**BsO_ zfXS}1500wobTYlaf$G>cQ({@uXmu&fHK?FMyocC?iz&Oh*OL|CY_AX=NS&-TT-M$a zTn=@KBJx|m;E7+!dC2s)U)B+>gM#)<4~dGL6+ zb6(W#y!AkncGC?FqjlbBXO;AY??nxAYUE`*o~A0MC?nTVdBRT`F!j#iI}tQr_el4b z&TSKwu1~pm-A?-6>)~PoTGj4&Q@Gw?)$3m)clPQxxnWk8TeVer zGTKxVZq=Mp@{J{Sr#=5x0>;Ce-^#=GAc=XJlc)}Zx)7J07X3hTTDrTxE4hSn!RqMk z3%9C*v)Y$h6mVXT#dOXu0kv(uuGTi&vXgUU{b89b-0a6=Ocd}sSdJmgNnz=uE zoI=nEbi}Nwyl{LOa^e=Mmn44jbuVyMgMLZ~DuUtMW&q<7EzZJgyX)pn@)tqgGY+(C z(uAg=v1n+}s-?T9-NN}Jzy$}5s8O736|Qu$nsi3>3Pv5bpi>tzYL(HuEax~r#!y`{ zYwp39Dq&_w*=?iFv%Mgqi~Hk?`!L5&BoT3cr7~qLjow~21%EB#%CepgMGqnu!54U=(DpVph%P`M+pP#oaZWu6gZ_6ddBCSQtu4K{c%Z+4P zY=cg{Tj?_ts>4O+vIu7&n8Dfi*jtR-sDHWW{?Ro;|U>zjv%nbR?iti|?J`sRW;8>VAi*El*2P z-e$ZHhUgIhD?1xzGXDO)R346b2m2x;DJ5R>XSOwbo>j z$j~PGJZayK?zw)I!(+Lw4aqrYJ00b`$C=mfB%T^y-rnAE3E8D*;6=PsS~{9pA$hyP zfg_JAIdbi%8xc@2?raB4CbxD{hLUJZ)ai?)ELc~#m0gg|$GfRO_S66xbz)#D>STfF zq6Auo>i1|ksj+tS^|fQwR2Y0)TTy4#WJbvaC4$?XX?CD+%Bg26-|LE|q#!68-L>b` zhvYvQvskjfJGn*3{XVY$Y(}1$gniSNnwc2t=yQIi)bG8`gcM;tG((1#-@R9IdS#qJ zR_>0-=Ne1wdYQFWW(ml1w_or$64%lS0ztuH*et+jW<$>FVPDxT1tiJW>_%Xzy?$mcgq zoH_UwDT&Y4NkCEL6ITJ`9?(y3$Hr2tw(&YcJA;*-lXgBHvjolB$$nV8_Z~FyY_w~3 zUw$2{c9(XK-dN}KG~Cab5wTa5ql3fg*70^Uib$`Krd~`eoLnn!1lt}C=ORm2{7lA6)#0wHF!JuOWvF)g`H*x<2vzs#l8 zXGxFH8p%!?NjQ}bVOPbq23-9SVxev_%kEOm4tWyGDH11m3$Qj=sLHS&$+so7>zZ<4 z`cXtr#UMBH#sNQV?AF=*i2>$PDS(wNMKViIjo^gVh{UASktV(A0DMGAJ5l!v{#X) zK&Y@RyIED)*{-8Wsw!Nmone)aJ478`#!KY;GtfXlDP~7o$NlIZ&LJ@$J(Xl3>vU7G zCd^r9qpYvsnD)0GD@NHr^pE~NlW-RfyeJVprNBA1vIs-ySy@1?Kw8oILD!6xcZC`O z?Z=#mwdQuUxu;HJPYSZUu$~mOvR^kDA&TtJ4yQ-O;V3&CQPW(hEx~A%k6UH^nEmD4 z*}S~xFk0nLNjs$hy;zk7)FlDy$@ES(EteMsOr)x(nytA^h&U}K2lsHxV*9$eUzKx{ zt&FI#C0b}fT!@TH&Ov|JJ8IOQtxbJAAwGd<^w~SkXtVi{QDA#}OqrnT%?>k4v1&)K z**%Zn8FL->T{8*0K>X-43jd|*p0cezu6xPVdnubvvwM&2R)Q^+BRvKCM(S2->&Uqa zgxWRDbJk_=_O?)FdGvR;>)p!sOG?42+OA6fi`B0v1j2iL6aSK5Q+nUk29ZiLcd1Em zcxyVjGs?4a)Ho}Y$~fop#sXk&gLv@ZoOp|$Xsn-e4*21fuf_P-2-tei%`JAU@ApPH zQl2GL4Y|z*PFS0EHBheR-XyC#MAbCW4xoh*#{$$fk2p5e=4PEqYUn6Gs%soeD`s$f zW2<}lK4v0inXNOy%_(8`3QldlH+quOicy{sot23WV@}{_^p$Q z{-MrZ$k|KmXOE{B1hB;tvB1|RPF{k5nmBpUc2q?}9}ZNpi%C8o-NJ@zLSIKntjJ0? zXHv=YSuyL)gIH-*8zW%f&o4^Y+_VM7@*yk%N9u}%P0H)sIMam9M`%3=6nbD;p9>aY z`wAODLX%ZAn22A~suJ~nq(OhL@iiH@gqD9PLaF1~$ z)ai)W<*EI2$c|$u9)nZUlqrr%z&6FKL57yD@bwH+=6^#6zmd)K%Zk%~7-spfc|db{ z>+rzNy22!cf^B|iBCb}PnX{3fG`}_hD0;0{r+%#~X^XsbUy`=Sr&fWfC7ymbv)WcH zA+tB6T3=A7NSX>rQO8oJ3Rwk4tqNKW+#@b%Rc{ahp&timgdCT!LKNTev3c{M+Ykml z&efec6J0pCg+V$vup|*zC4@fo8MOLZJoffOjVAwVf;BI#*w{#Bo_jE^it5f7H~g{5 z{!mVBcz8t0!xj=8avV3@mF;Vzt!LF`CtqtY6Jc|W7@(?#sMO^J(!;R`Cj!F7gR5A~ z*RgLk%hunQkDYz%db!M~_4rRu3FnJ!c8~q^B=KvpN%FCu-u1gL@98Py!OMC5?ww@) zIw2&wK9IW(GhY7aK&Dv!cZEB+Fr542o#ZIp=q4fwdM zkw|5a@xsXPUlz-N^!PY0gG5}lFjF4a(;!mrW4sIso#AD$3?hv`#>*hXe>t26oz?m{ zF9hC=m&sC~-#pF>!SI)!h;9P*1rL{z4jt=enLme-eC`78#=3U05&QSg;?%?zfFpf+ zBhS%UtU4xV)MSL?%Mnl&5+9w>)()GhCB=3VAqQRC8?>14jUNWb@^PAN<6~|G2N^kZ z!9cM|wz9j3A%pO9`|!i-p|Mgvv>wFYLwG+4{1Zc-PH>wF9e@s_%0$Z^;66djm+GheRpn|3C8!W8>xoprjKI{Vpp9&8Mv4)$YL>rw5 zc(uAh9@%lH`DC(Nkr%vR;GQEHg4uL@cx$hcirP(x?}wZCrM^A&3N$;rdq5YSL1lY9 z!7+53V`wS=Ee4gQB0w8wN!61jr-WmucEp-PoAb(bpKtD~NBvN1zxgFij7NR2W!1Tp z*NqoBlgR9g-aN$C46?gbdRS2!(oj|B&@5F8HuEWUUpA0@J=sg)yL!kivpc{f33663 zo)$;D+0;aQD;Qx(uNta!^)vMwMiO({?G!y#@KW z&&5gKy7e_6)-nt4HT_=8c+#i*102T*mgZrE(JompMYzRbu}?1vi&eGAmxaVVJqU?= z2;qSbq&jfYNPjxL(L_0}pv~1Kw7DvKav5!|o`^Qb;U}j%up$I+33wgHQDYWI`WHDl z{oT>!jM3KK!DM=PAuDcGH?rNMiZ|pK+Mz%x_VY}OERs0TL{ihEmbI6W<(WQN?tkW_ zW@y+xGjl@%rm;YX&=nIB3Mnbz)h#rUQL27@ZoFR_&4Jfp9mcuUy&O99TNi3q#~8N} zC$9rJdCfn+y+cYo++aP}SH!UayVNrIlGa_1JPtO)cH=qj z)!e2J|FQ~<+SQL(M7j=j+@3l(grD7f$aZI#$8zyqBLh75%Qj(;1tqXOK&e>yun) zmC!g2!0g_z{R6)O1F~f?lbFuPCaCvTwdSB0J-)l|EV!yK$|kvtGCesks7uMyQH_t{-sml`a*=Vn^}MkyOeV+t#!`Pf-)vc&Qx+Z zS#+FMPTwsi6vDY&Ww)!@5VCgl>pJCqYrm{4wTA~w)m=%oY`tx~f^+t`1&3xW7V1XL zIB%n1Q}os{SCOG#Y(QJ*EKkmh*q54;bwOvXG}iA*D)m^@LT&kBb1KDimKm%#Lr3#7 z6u;0qLM=8lXBzx+O6gx%rMgm;Od(u}Bq?3?;N-%Dj7Qtu@_*UOKvb?Y7`!5X~|VH7L&AgRW zwlfmkjZG+XX4DX#f8NUT2Uzh71ghcfHn&~(7-OQKZ|@$GV^x_8WKo;8N9RVKF4yjJ zDJ{mbT5SnPEAJ;!)SCKHYuyRUR8eIcQ?ljSJE%z?8EYomjj|e87>3sttgzG~3lN{#+PaxrVoCotfs2 zSaWXJY?|cHoGPoM*)BK?2if5*(GIX|s@1!G-W@$x^a7Ohgj+jp*yCn8Pez!}Mk=D& zo9^lY-JL#c+qzOGn9cR)9^!mV<7Yb~>yddd>!X_P&Zc*ikfBzw3nhu3=rDDxWwz#r zHZy(Rk8e7w9e3qWRV$J)O8V+?vZ(c7t`xKU>CyfcSz$)P8x(OGh@(%8uD-BydF#sN z#nGh~u3XsJx_V{g*gkY^A9}VAecOitLx1h%t52W5jNSGqA8n0p?`;6mrDo(me=$tZ zb`;dSA)=AOHy9(_)Ieyh4$j&G7ys~`6F%CL!iIGt%n6V{1F=PvJ@ zD<;!wV`FkK+t{H0oBXb7w98jVGr;iAy>{o^xg*axm(A1<{rqfqT<|D5TXlD1V_W`G zI)S`)?kLR9@pf3AQ!mp%s2+6VTVYmvVV;Ij;?{nW`PzQq>!I*Yzn^UX-p0oH{d>|- ztTN}uCC#MR-aW_31FuT*%1ut$Oy;DC7gbRbyGa$)-YJ_Y!=Q-5(DAY`jY~Js%>W18?Og(6v$6=5qRd(uz z{3Hm9G)t4Hc3n3LPu)=91Ww@wagjS-QDwPlC|FISF`kc1Z2&{1C`uwXkCM`ho!l?d z`)H~xL+<7{53)SX6VL3UK=!zF<^z%(I%u%Y<M*q-axZQ9&#+ibDg^Q*Xai@dCz_(8T^l#Z8FWs*8UTxHn< zZM$~Mw2ZSX_ktw!{IWf63O%?^Tu!kgjQ2+h?L=;Y*~b`lXyMVU$tjWtkUeQR!xp-`S07Jjq}@s#e;@2E`_JDgQ^%5Eou9 zuoW8{RF&D-czTE5pU)1|#TNzVE}XkL-rF5>D^?jZ$?|+!-R3S*KgXH0AcHXj@@pq| z9p9;n*zpTzFd%5wClKX9r{3;(p8;H$pnlvvl&(9SqSIo$LUT};?WX!m-LS1R z5K_t-hyW`ma%1DF`nl}$E@K)^;RCaKd-+5vKW%Ina=-`<$aHL?jg+a8=pj(IkAs;R?>@+|YDJrCd4EdrS9Iz7)`yrn>GwdpIJhpP~dr9p3UL(lP z&t15X(dU!96@2^Y$z9nDN+&rZqPGJzRx!(Vm~(+vlX7pB7s<)TRT@cNT2X?4$r5?FU|*R!NOoG?+s?WHy?! zAhQrUgj%eA$`o4rNW1$9+a65qK``~646-?$qGucn9fgxr4wK2E!i~#hAao?|U|AM1 z%g!yJg_5oPf*5Owm%5CQa&0=nKDzh7r`fv|%wo9_8be(nZ3b~2lmmG)In`n{0Js|) zmrUKh*#n=Ctj>yMb7Qae%CZcClxrk!%mockvxs6x$($}Bf@bMtN#VQLK6;mrHzbSE zNZ~_K5IaGMfx^iObb7b{ZX6DFi)B~HUbsHF^WX{BBie^+5BByWbgPmq%~K!3m2Qz$ z9bFUt?G1U~xy#qiox9F|TFgnxpo&FB%BwI*s=mbFCqvy}5$9QSe2rMtyYm=^`C`t7 z2mAd@IB;)mO`i{4$}~%$IA(7MeO6jUX%)p)fM_4ON!q_10&j3O8p^7;CQP8}r&;ls zI~}Dr&oeJ{!=isoEv+e`bUfMEP`Df$8}sq80b%2Ako$36I8{|UeSTq)l6CMyqq^#- z8c}Wae#Gh-yRPS@K^f$g*S|I_?WxfLB(5~!YuWy|cw%C8Df2O2SPKP)J&%OKR4;j{?yJHEnFnyI}mOF@Haa_mnv_W4Bw?ywg62FjrkN5PAxbn-$izBCss;u%m z25nigVTWqT4umtkgxZc}uevG5Ncmu-D=18n`tYq~CKB~pc5io*%~@C&2XS7zc>+a? zyx-wML3*eg%$Mqdwt(7rx*==k6)7`K(Zd8(9&90c~s? z?T>MP%DLr_1ARk|_Kq;-LYG}Wrb#RxGq;qScPdCmhDSy?Ka{tcC*q$OF_0^jZZTUZ0IZ$B3Z#jl!onlZtZcDXgj6n zCvoNQYuP?r>$g#-PQs>e5x<-|ITbys*r`LOPSMv=*R9)v$J*nlqbTDtPB4!-Z{Cs(0O z!6t0IP~h11abZMAf^}IgIM&H6f{W$otvu0qHY=o-%5`zlxy0};D~u$m(95g)#b!)K6Yt_%A+Y;zzetb4<}p3GWi_4;|Bko*JCg5LBr8L zE=L*<^AJ0t$0ozLfq7JOY~6SuqNy8Uzm+ABJ*HaFCJzZ{l)*Wv7sj6BV~nH$!&%mU z-;3c(5vK8~^26FUm+}eT&mu3vHiP%I2)Qm!I(}3)0%bDvL!bMiiG^6df8WP4lw-vy zkXQ32`eOa}!w?}C?Y=DFGlgpyjeb9#W_Lz7yZC0jKc3wh-K3ZoG*7COTdmGeHay%4 zMk4RMlU~p67$4buJMQu1;{$ja#8Xa-Ne<@jzK5=W6F*gr5bv?(|r!TPObi5o{L z=Jo=Cq6zUj_1Fr>&4U!@Z~+6a4c|U(Yc4S|gbY;p9Nn@=jhuhl*5pD#f=&FYVE+d9 zIW|;7q53-iEdIg>E<5%k>qT+=9r3vwQi*s#kMMvgx1*hKvF%Un)FSYo^} zCrjDY12LxsV&`_r+>^MC!|6S(qJ|26my=ngxbl+>l{79%VsCic;C+qO%k4TH=V%+e z86+h~rb>#sNJ2sYhdraa90KjD3e30P^z+KEQkTfEAj-YiSZ2ajpZd+&OXCCLc1@Qv z;Ugs}a=17{grGVPn|1BKnVfH4l1t^fTuGtAKB0*k@uDt@n7G3*aT+gOzjMzMVvVcW z1*AJ%VofuyBX=6*cA%s*M${r)nG=xvku%>Jz47?od^{@4L$`L}+||0CRfp=rbdSpH zFw+1nLfaS})=PY^2ofi#7tC{YyU9^9Z?nvtI7PUR>VlBLdck_FZZkas1*@SZAqse% z>llqYMjA9CX`hR z3(QSvRE#btoN9j$i5tikf~e>NXp9anEXPj?#~p0gP`M3UU&c6Jai5fHUM|sBkwNO* z4XTp(&_yo?7n=YaH7(bb&P@ubY?xTqASZ?{55lY%9#<2`oX8mF@y>b&H%FG(W-hFN zWyIWAW(})6-gJ>RCVP&ex{fEC&&T!kw>rQ~4pmuYPDW&LP`O2rHpaKs8giq{f<taxCS;5l(R;^ zhs`1b`=!~nk&YQQ#-sIAmSLDP_kx!Z=t|rRR%J73lh~>*4`yB58sDy59|2u{dA{1q z*#e$n>f^il_$F(Rh8}U?sQ-~8@nPl`S)-*nxx%7?G5H}%aft8Q>;hX0o~g&4&&mkBN?WeSZYT!E-T?8SkRh#VgX+sM%5Ecs^Tf-hq_nP z2SS1<4G1kHZZwJ=w=zOP>MPZ<)3tUyiy75~JS^HvC+I!TveHco3BE!&_Kdim&ds)R zXd%>;>U6t8s4{U77TEJ4!P!-4$lZEAYDJ8y{g_Jnywn#|8XdO7ItYEFhSZ&_yY1Jp z8+6#Hn<(ZwqSml#WK`anFb+a~ip+6~$j{uo4jZZ+j~k}bZ3q!v2GT@Yj8HO^6%_uz z(%|8e@lezdsPrY)Ye=P}6K&HuheT|rC{SVOlB$3Vp)Y{rDf`al$wVUh`0>(_3i1`5 z=raFZ(mF902}6}HWdU3_P68}2P8=01M8CN}qM6}W|LpAe*TXLJWt zH`+m#&yoKsw~G8A%?DEomAQU?%(5`%e3j?{gqnJe5xtIQF^`!?(BVkU1s#uBXQYkQj}LjQoS~E=*tSFa_okiNxi^cy8>QE6g&CRE@%1;DJk23IWD! zJ-V;te;dQe(Ub{;3N;o1B;=CBDPATRJV-AwYb8&6^~_ZacXSA_ zs4_qy2oTT4TRw7X>R^V7ApnO#<72yN{ zF}ne&KK$w%A@QO0>jtW0G2c-0tCF;}FyS7!UOUh-d1}KNLWA4V<6ybNvM12n`&yeFGcbXug zq2p9;8dVNv{A0>+JrhRYrUKVGcRh0t+*7hz6_!ZEWF%r9Lw;$!$Hj^e;9MYz7I72| z8aJd8{V1va<&Spv zsj>^n;xT833`>H*0}Oo`=Bn1ssz@GOlV$VOMSnniK~<0M@)mJ{DGH1i)d|u~W0{(h zT)h>JUYsaTR>ESELP!Q=TIO>Lkvt3#{5+B&o$sblg)z_zQQU+o6%eP!=AAZ@zpL~V zMW5r>ErAdaKwq~{H;H${QeR5X9I6Kx0L3G)gwc{s_ZU7zG$4;?!{L zejBc9f>p*C=-i-@g!PAvgu9P%gmHpv6bh+;Tg7?R6Y`Pp&GF5B>RhuKSVr3jw2;m=NXef$rcVKsDw;#dA6hG}qkx zc2WkNOM8b@Sypj;;_epH34+S*(Vo~Ma=hHcZD(9fet`Q?PcmwqtG<3MxJrv|y&m31 z8pYU*D#GA%$)PeDVbr>9d(z0T-C~d2@oO0&b=mIb8{|IqsyE2E9j_{5OtZN62})?) z3_dq_q(d29&v0R75pkV5gUjjPz2~ZX$7ZDfhZZq1W9bFcIPI6%KZuP7yM&+|rx6r{ zvF{b*KY9(C0f_It{Rw-o>~RU&rTgaXd9< zBP=g@;pN1@3*<>p43dcvTP9#D8Rid~2$&N{im{^Jk`+H0fUt`s4c1%NyKwQz$9+skAYaYcM$@wJckxECqB>RV9(Eguawm zcniO=tKN497WX}s{ceR#}9*MkrI~73Ir{)^L&e}ZYP}{?W+c5 z(`0oh2Ai7O5_3`GnD32D*OxG&HE9iElakymSOkeIq;aNA7;E=M4922Z2&CZ@hRs_D z9uB^BHz8XjBrZ$uao4e*BQBuT;p{D8tl8xA_P#V2LvVv8qF$%QL^?A@S>kDjP+N@eA5Il22($*bTu&1M=1FrTc@Q|N4hD4pN`##YL3c!eU07Qo@ z#Snun%DUUO2Q8mcs1nD_ga`(gm<>Fwcv%v749Fq{!JRFi$U3b>Itxu(`lL0VR94Zv z6I353G}q>8a_g~~*5aAQNs>K>=H&Q3Jc}?@KU~YE;O;zgee*nU_*X7n1%j0ee|*@K zaiB@u@gSnbi6Hrr+F&L;PZ}i-XMmR^<^goY4z7n*Z1h=C!2`P^oJQo&HYNh$Jn|o1 zCK>vAP$eOO5Xgz@^lHUjw^B&8t|I|y)Sr?|2pd)3sS_)46_QV;drQP%A)P^WF%QRc ztHj7OBwcz10p|&f+5tSnZ@g%l?+P-Y!X?39r4ry;JhhvYC*l>@SpW!$sCm7rWkxW@3-#bsXyMe)EeRaNNL`_L;@**W+%#UM| z0KmK>u2Svv(}uf}##m!xW7H}3>!`8rYkhhiHG)_miE${6*Cl960#U?PKfIGpqCSN# zR&!)=Ou!CTgV~tJF$Xgs9D$9005^Mj)7T zF>jbqC?|3Zyqso9QJLZD@?Gv%a)z6jiTV5CFpIYntE6KETY*wD({3FH1(>E`MBpIN z5{4SRW$kT+up}un^cXXSmb!uZ?7g#g767^waRcJj#0-MF@%}be0i>ZsW+3_|INF-6 z-HIaAq#zQmh0ixLIb@s-j}&n1;W?4;L^RBkEQSqu?FNkW0)wrIEvEoSRNXtK940U$BRRd7*$$a=GI{Kh270R`fS zJg0!jL995M=B}evMcslvQ?tp@l;E3<4OR5BCN=94)ju!oi^WOBL*3tDMEWSA9DT(X z`&wiCIt?Ihni6fCXTI_WH-gM58VXnj1ec-KvG6)rR%_XN92`_{? zhM=3YMr2P-)f?;KeL zTkQ<2>O&o~q}#lQqI6FmlHA%OOo#t$Bn8PRkQ@p z96)Cg9fVjZ5GLdsVp~cG%xid-4xJFXoHPS7Wta%ds`kdxXsq78 zAwW(Lw$da(w8v+sXKtj&Rm59wYm#uA2N>@NMkNcOp@RuA&|N6A9T&71EW|oC-L53G z*(MY89&Mgu9h(pXanNH;!qizN0hT#Er9=xMt^PD8yucD_VDnDi>N=uFs7fiZ(p+#w zhB%DX7VAnAIx_5WK11pBG*dMBE#y-a5?xw&BqqB`E=9g=GB;yAQ!zypY{)%iEFhFO zcB`9N0Z8mc^U09ItIabE3?QsXWak2JF7A@%RxxI}elNEj;y$GI=Gx6yF=72RzQQ~r z5welR+@RaCcbjwcOm+9lI49bJa7=NC7-1hn7sLSm+ILIfw6Vhi)Ma+ErJYD|01_p@ z)gSGf_9Q_(ig6oY$p!p?C|12~mb~wXf$b(%!bpVgFd)AIMv5P)0&>7u6qda1m*ZKs zM}Yp3#K_P>m5{5ANrwn|fJK`tYHU-qYuZjNQ!Kj zWQv&F1rpVWJ6`x=d`&!bVyuwFFA1gA@gMv`Gm^KBz~^N#$#afxv?I&l=gs)q<0q<* zmR`ua36a;+IF>}@a`6-vH$m(ip}jz?)dY{tp}S8s3UHi=O~tdSq_xHCt5#O3ugO}h^M-7jV^0XJ4r{o;~J9*LEcJ4!}?o^b04E=8HPpe zdXhoeB!w(#E(HcBm$zk$A;MNU!eNGag#>$Zf3Ewsggp_*PLMYcT8v=zRtYp|X4L`H znaOtJc!Fd`Y9Gng@UBy}5tSH>YBIivGC`Cx41UQhFeEGQa%&vK4B=ZMH4bDWBK=R* z1_;0@r1VlaWE3|S+sVdJmc(6=wcr#U;ZY5=$FepYJr_}DWj`Re`NTYxq}Gt*V>H=i z@5lQ6n-%fv7_+je9N!8vH5(tZ0pP$$Xsegj3`0tC@IGl-7~vCK8d>CkH*uo(S9$?m z0w@wPLQC9=H7@m)t@|w^jrOv8c{NfVO*3gZm$-=u$tWuy2aF4}#mY8Gl~tRlythBX z9Iq2?C_=#|!tOxQYT`Bu*YNI|vn&(m0Pux64)`x%-#BKX*ei$xT|ElJZBzrJBYpJ& zFYIF3%sCW3A*8EYAxTTkMYl2|1roPD!J1-i^Adp+NNN(#DAZCKS-8KWl18xL4YK-h zjO0{Mp=b%vruIn?>%f)Wdd;U8f;fO+DK21ejhv>%+3xL+Oi0wjTx(h9NqS2bj>SqNy-tzY>0Wg7Q~hWolviPPv`9Dj{=v#F(xM&Un*wg_8Z{3 zVMOcej{~(vD{Q1M;6o(dJ@r7sZ7#C8CTRiKRKbNHy{qgUrDGtt7;71-A6aAAml+rs zxrX~a6vaxr>GZ73kSK0L6sPz~<>yJ1w+xRQ29k_eX0QR0#xAAWJvm}TjUtW$h!4Pu+L6&N#~x~3dRp@U2= zY@3}#-XPoQpen9ZcebQRknB)@#s`Gl-w_9qa8-czNaf`cL$e?d$`IG6h++&_!OJB$h7VkgX+IF!U8B(E`6 z8Lqi_kZmfq&T_x-6{g}ksVgwnd?$ccnJdKUCmO-B8`=(cbsx?5ifk=_ z>rymOkXKZim=hXe z0XfQ&qYw3NLIAD$H{rY(pS(>}M&<){0o0;Ei1yw-!97|8h}I;15Dtv^X1o)63K&h} zdiRj%;38okWEeZ{F|6$7WIx?I+8rH$MCC9T95VtjK}aX3$8S=IR<^-eP{<%U4T4}) zn!;NJE+FuLgl!>Hcc`*tIP()(-6a^6c5t2gsC5b0ObD}$w`cK?!kg3a>dj*SCXr$xn@_kX4nPRU_C?FHi zNiKl3EP=TfPFyaMY#I+tfs*j85Kz#@ci*<07o_n^wHV3X2e9=dVi@j3BqxyBeR4qn zd}>ktL3PEn1b1uK^W-t%ID8jGyKI^u2xR5;_r0yl+oxjz)w)o&>}tMs$kF2X)< z5(p(l3c*~$p`AB&uU3EUH$#bVk$pqvdw>F*M5KCP!EGeawv^kywTD->b>%^1C(sUS zC;7@~KziuO^Mzbb^`IGAD4#0Gx9kXU1EHR8rWYi_)waeFtKPISDH zq-YsYSKyS^?}vDD0CR}E!%9>&4*iaAN0B~10{MaHe(9rZRBQYBv}@Er%VIarxd@2q zs+wK*U^?pE+?2b)a3~exFio&kJBzw^m^5>7UA4v89!JF?m?YJ%@JNYdO{=13@yJbE@7HpriS# zB#Wb+QSD6Jj%9;Mw(Qm80TV#t#T9VzXq5niwwa=GE@Oen4sra*4|5ld_f-9L!T8pf zCL~W&A~%W@1u^hIvFp#9P;cI6M=WSYrC4g&f;ez=iz3H(O<|4(5OF>ki?=&MJ_BJ> z5~Bqc-t4uo!`!5b@A>J?qdm#*Ui)NbE~W;!Eb$=3uQpM&$75+i|M3K|W5LLXKqqAx zd#j#aQu2y8We80a5M5ow9=gHd&?@pU^g*U2WMSPmJ=OJb)-&Ow&@3P!Il^h*WbMpH zdOQMPpX7uAIEO+5Y69gFU9cw?_e($)0lj7drTFqxv>qB1HfXpujwB34#wuv(&~x=r zhfNSrk2MuVRWNxyw-c1bDL)=_2Xw#*36#ybC_tfwn>ANitUUfkft1yr(|o~d+gW5u zurR@y1O#9xMi^O0myW$GLBMw~kP_`ov~p;|oWuJb6I5WW@VJ8ZiXo1?_L_~ha7>a@ zD{&3Te{fS-K3ptVdKYG4r!6wxu2K zxE;7TaUnQ!63#5?G7HB8>Z=;hp|EBl0Vz>fHi#L-g#uq*_@c+?gaqov!92*vAoQwq z0wNqF)axY8w5GxC08F-~&NAizV(=C=173(4jd7}x2;n9i915m!!!^Zc?qi$uE?t2l zC}W&mp68SVcA9Z%fhC_zbYbjH{DcxLhOq<%DbodsD4;kc5+G(;YT!gVMz_|PyC}02 z1B3x5Vl1RpMKdoW(k*FcARN*Nkxc{uv!w})Xr?B_(33v^VFHdXB`@X{C=L+5F|7IQ z8gdugV!uYiZ-R>h9W6{EK6&)YuE#mXe-)L)jKyT^H+o!K;x*-mvsp35{;3s+^YX_c z;tVE5A#+@9I9ouZi?gD0K3T5BSfgfIk{9zBXEOo47JCBeO2j2)U4e<0O!Q4qPRKhV zRDAAn_p(CLy@_gYLu&PQ*xLL(Qa@M~^QLkOitLf8QURn0phH6r07}SJ?eJuw(hDjEHY(iu5uU6R>G`3bZw6;7SB88$75_JHwkW8(#8dg0d5{!13oVVwx1dB{_M zuPOGx+$7qP$V+n`)TW_7H&sh$GRf*}ygQ=42+nw_1o=sxkXQ&ZVkhh^CN);{%2YWD zr3ibdY{Bvt(RU>A;4X4Yf*RW78NTIuKv2!w;O!W+c|ei~sKtB*Ze4q*SQ;V%V)&6f zJ-+FCcQFAOOOq!XB8v&9CkBpWbIJNz@v7^{yYn;vBGbvqMytfZfre{r0Q#<>M^B&m zd1&8}?+L@PSUzxZ66BRq=Oh8ctceDmH)J5v<_&2!rdD0KjZw2Mp|7%c)bT-lQ9nsp zkp7a!(87G-ORyy|+^T7x6lAa#h>f5sNLDw|NplLV82<|g(gWUpxKv5itZJ+?A39m>@lH z1Sk}2Ti_FRV9ucFpa3q44k{!p1d;}6vAY6`JFu@nX9h%z0#66}j*m(PK;6k^VC|qg z1N^EWIFpS;_&A7f9R}8{fsX!Oe+`<`Y>0%mEP@DRBD9-2ekYrQb(sxkG93W1PtXDS zXh8I7+BK~=b6C6z)(%WMjOl>*&6G$)ToRcF-?K7`6B23eIx$@ku_F;%l=;jEo9vc9 zYv!=H3+qCUd+ShQN#wQ)OY{ch!M+}>j`LzNS-a@2Lrv0Yfu>D?EXd?`uCrziC+wiR z4j7C$$DHN3Cg;3CN$VcB6B4Pv4&Y7^sY@VYRta=$=YnhIpaoIedC)R=`^M=~2=o;X zD_w={s3Hxsk;xlLdId+dwBB1{>P`@gmT(ThOmiyRQS%vh*b^+YJizqkSZ$q4t;4hv z&H~v(Bn3wjb!p>Bs*96d%%&uC!!bZFj0G_&u1N;y82;r6A=4@P=rTS50zv#QJp7h^ z-YNNYAANN9D+gJeb9lf~k1%4}W>WLenL5@DW%QQzmg=8tiqeJ@d7>Xm+~85N@YmB& zt0OAqgo08^7b_TmltUBPd__(+lm6kOq#Q{k9zplias$iF%tUV`37S~9Fc^ipxQ`PD znL5Md*AV{X4b={ete`d|So1Z(6lO%HNv*=3MQ)Q=jPnBInD)VGbQIS!D$Yo1dw67q z&C$OJ4Dvj*1;XJmCN(e*iuKvwc5xtQ2e&GL`)&^&on)SN{F zObBd5kPLLb`g)zjs*~|P(GBBrWCD7L!Y2zEAnXe4GV%%aTC6$j1Y<5~)PV5c)HZ1q zd=8&aapYmB5H`@rZ|gPbVc(V}aYQIDK`VyQC%OrL8hUp~t%?Q@W6fr!noO==qXn1axECM(IzfTR!4Rt{p%Um~3({riQwIeFF_{Rm6URP-Y z=R{ZPnpP5!NoygAZ!E9WI>9MH;cl}55CbsZV6$fNWeXr)uA9a!fEH2?%yY4$G#yG6 z09`bfPF>`TO8!SSFOi<@YxEdq4oJ@#?Euk;aY5OY0#^)65>-kSFhZM$++xH8LhR#i@n*?bjp9)E#D$A3;VGfrt`_j@K9Ta@}o%=r%ud z^K8I@pPyNjsL}GD{tl%)Du~ThAz~EZ268X(@Wx5zT-dAtClE&o%BPo*X{yR>suj4; zj zBQPpDiKff85a_vpCX{4)U=ExI%Ls}|>n&V1^GeUGKjuvEkrIr{U<@PJsP*?8;j{Y! z-;AsKkc=4k$nM?-@ulU4Ix0(_@MI~MKH;x?LUH7!ZGUyiG>#e4)x0<@%YU+Bcsq3w#uD6=H z-fHT4tEua)rmnx5y87~5dRG0_)b&?W*I!Lte>HXe)ztM@Q`cWjU0+f63UMN{qnp_j znU33C{i>=LUccs_-`=@)W&6+{ja(@~yLDyT9|?Tbj65?8;3QmZ73worIbXCne5=^p zln-@kiR8k{C!3q$jlIpghw@E8!tZQr`}{~AOaPRU&knNjbn7`j+z1Yy2%{`pT1^4OrHo4W{xNUA9x&YcV7{HRVM^QQ!sI&83koWcu zP#LQI8KSf#rm)!8pIbVR?fx;nIA$;uND?2ZIi?rKa{SsOluzWdV6?Rz3Eg!^$&x7# zwpY8oZC5w4YQ{YFkk?b4jo!BD4V}3{jX=PrH(z{lu#c`VnIY@rvkpxa>vP*QP^|9? zE`+yj1NchZCHyjO%y-=Z%hDf5m=)=4(Bl zL34@+%g|X*t}0nY7PH5b_(1NjqUMp^I9liX}gP`OZ9Vi51QNK z#E)v?xSie?w5qR>wH{T%&6TwtRYJ~sk1Anjy+@VMv)-dh_*w5!Ed;GKEv+Z5*Q~28 zHtV%}f(6qm)S6>B!IEjEYRz^}uxMJ%TC?2~ESpxm)@xU5U~4{mf_2k6*_!R1;G}6S zZOwL1aMrZmwr0C0IBi;!TeIC0oHwo8T}dxU^;cn`0d`#*S6udlK3mJ4&?~d-34M;1 zJ)u`&*%SKAEPFyzeAyHFd@OsysC3IHrWEGoMAc_tSwGs?v%Hnnbk)Y5<*lrytTy&6 zZ)G)YwXtV;E32t%Sj{rhX=BgQjtpa2+RAF`8aA@DmDSWWOk-&)tEp>P#L`w)Q@3FV z=S4si%K~|8u!b!IaJ{*C4Qbf#s4FhYCpuY2hqCBT(RtmhY3M z0I%h{cx!+Ah(IyRSFQmUUNtb+Q7voireriBLsExfBowFewf68<3B%cd_$fbAwW&yj!=W(S)fmLJ|*GVaca zqk7*V7?+|P?@ZL|3_980ols?Ff1lV7WjGam7L(`PstS?(kx@R?@52dVbsd@+h8EWR z?!9t5+VX4^yGr;pj7^=1AD z4_fMCkaJa5Dv53RQS=hI`9`zs?ntVw33!f3e;V}nk+^QCiKwH;zzmsgV%x?QDPjj6 zsd+7!r8lRWcBZIWdwI<4F<3lDN-*m(JCFTFw9LhRRXm>SV!uHi{kf#F#WJxcJnlPe zIFrYAe|b8xRoA^mYjH-g#&tVH={XK9$**B&*xbCjGs@fg#B=@IHI+PFh4T0)Xg~*t z-JSN>3|DWb$7Z;iBR%57t==GUADbQfW`FxW`b^aA9@y*U8mIK}pJo1QVU`#7e=W@N z`rTg>vs7`IEAP+8|76}f#cDpfie8tw_M{;Zfe?V&@=t&LUJf&}i?WZ)%;Z9R8772vPOr zv_Adm=+#+fguxl}VGm01U#fcM-$#AK+HQ2IBlkb*V=k-p4WEy~t~eg=h&RiANIKv@M7`=F`n*Tk%X=-NYCPrb^|79l^!a26>(T8DowY`$8*G z^w`|+99d1oGGW5!e>!$BCbG#Jg_i_#coW`!W&48Uj$R~aaC5Z1HGftTOeK>}<>RP_ zwy&BmX~_hnZC*UsaoQ*1GQm!h0~5XjT;+Z?y?6DXr7H8l(fontl%yht@A%ATZD^N1)r(QSMp91`*c zN{gU(kS{n=BcY&U5LF(iCj!I+3``s6XuSqhMHn{+z$mIgux!HtuGc`Bm7r08g$xK; z5p*DYS`8$(*eYhsfK~vrQUNs!evcowA<-7R0hAp@YjX!=9SYcXaH$r(0h|eVE`Vl( zhY~jBa@C5oKq&@jD1PZveI9()06_J;gDAA@wHRhr`g%s=r zzZB%7yfW}l52R_Zbpe2ksOOa>G3YTGgXMuVO^G6>jKdfV%an=}4|3E%=u(B6vJh1c z#7giWN1c0h$QlMzSt`n~!Os>Tlj!gkXTD5!)Q_!FV1x-CF~uO^0Ko2oW#Z-_r(~s5 znPVicQpa^tkQg6k)a(*8--1d3fbLLbn8JF2Z=i4FQGa%C78MgItl$PSsw@C?Y&e%k ztEBZMeGi3hcmJj&9_9Qo6?CncyO zaD&1W{2+p8_12a4TE~>IAHb0{cC;IVZ~Vq;IvLG&CwGK*3s4h4@Rdt3osufYfU_HD zz-}`>AgfnapfCd$1z;3~cv`QtDHBZgizQFT-WSNWB~47*b6rgk$x zX|phcj5f*QQLEBB$SY_=1!L@4NEfH111hmR0+YFKC7y`=yri*IZltu-;9CTkzg5F)B_m!Zzvy9aC zcB6#NTn0tp7wukJ`ww_E8Rb5x=XXdyH}8VfS=4nZ#at`5i@$sPZm3?Bo~ZNW)^(6l zVk8eccjfWZ)Xnbn#Ctxhs0JXn1e%+gmTeLqzeh>*&U*}1LiYd?P_^p89QVQKqQ+w4 z1WwTa2FfxVx8a&u=2G4a#vp|#>E8vrHA*Q_M%k$#Oxw7st#|dW#0>85PYx+#DP-bh zDn6GHrK&P27H9lxT@cp{9+ar#(+LhEhpx}m03JNvaz!Lyi~u`kJ{%}-&rl0A zA(W`@dXWZ%pB++lg%0^>v|H_~cAyi56=L8zDIeqJVcx01(rG0yu=4D|K^smHCmv{j zl(kGLhup^F?zG|QHuU=wu-B+;KvIE>0yJg{HBqi7cEhx@T5!^7q;V-c`Q3Eip!YQ` zfHO}?Y|3i_pb>GCw$@wTat#$KiQjDAp#ULg)&Xj-j;L>f;QQJO7XSz>ssrj22}++k z_#_^D;tW0+zLgH289qefjx_)$3gC>nf3CSkuVG6x4A4L%u8FBv>T^5CGM;RuFg z8NOy|+aI<)d~ewH@U`Jv7Qzi1B00Z5x#1`+%Qyvo&rR=Wu?Op@SW;dI&?34~ID%0GMX|rh%>Me>CiWxC+C!Y$UL( z!th1gA+rqKvc|)8AThQ-8&J>sACdSv_-IH_P|OBT4aWrp+2E<+AS_f4hJy%(g9wI$ z2!_pv!>2;aQ$tEb!$CyDK}5smqv1}9hLnhgixv;tiia=8!_g2gY-T`_HrNd(X1R zJ$pS#A#3!qJ8sU^q?7YT202uqn&(Sys=&pln1OE@wDgP0Qh5kJJ`&g~J|g zqaQwH5joat-ok34;YqeIns`VF3+qXSyV`Q?xd7|;H@fRsW;u9jco>F*w~2|vvtT=G z!`3Y~(dlKv;kLKzC5t3vS)h1GKpXR2_as{wt$mG#6r%3qV3l0kaem-J$B^X#tBAQwB9Se;tB(jJVR*~2u22k&DFj^O^yZ#I)3o-o6GI{)y z!{;oQiEH7sZfxn-B7zOq*|L*{A6aH#8S7y5!-m%Be@NBgMj7rC%ls`OiEZx>hHVwc zhEEOWVl%`IXLIUX z^<+4DiM{m&$Evn&~Lf!BHTlj@VK(O2usfEE=bhEYX3Raze$V{w^)pAHE6gN1% zu0{L7RWf|evJ9?e9b605@q7&1vsl1fiwTT~nBlt?;n`hRZ?|3$77l5V#$Agk%uR;d z)2{Om4~}cuRW@_R#&=8is4`S_#tQ3gU=g>8uo>(e z&&JIx>q-H{;k&jmTh`HbYJH0;=G%+}@sRd`MV$^T^9?OG1d-2!d4!hRAhJk7iN!ER ztnZ+`#KKh)%f2EMa`>*rvyfP%=EQQ66AS$k%jr%mw4&DXa4eP^F|p_~iDeHFpEYPN zwQyjnmkyt^?9&SS4gBP!%ZrITeG6e7g^D$9e+k2gHigy*Cri4Yjb znz}JE5`51r>Z&FhV%$d)4KePciE!maqOc%+ARr3c$%5PqlE5cCn1J~*iK^Ny<{Kj< zu9YBfp7T9FO@atbMAKqr6U~Y&Zi2ehkspwalv5x#^n)@kefx8)hcL_lHG|*BnQ>Y#dT$t6Q5qyms|hPBR%MsYq&6@9p$QVQp%1 zZ*E^We{GX4liWj-qHr^*DRCZ|Nagkb)eHVJo1ZODr(P8#1<4H=Sq-ry#;E~Tevreo zNyH%KEsyIwA<@Mn+T0_Unl!eJz%cSu66)ZLa=&HT(H@Mzrr%Wirwu8Qi;m}2wAWS`*kqvBA7qhC(8cP@@DT)n9N z+S!)c6S8A>w%xF)v|8$9TK#c&{@`HuUh}(vi|XG^NfPsiPDs^%xZ%^f>~&Lm#C+VY zRAOGcIN9CJrp@;hSvVXQs=$K&NEd6@zc3U`1E8ViDUZHP~{e{+llL4KcY&-p01m*_FInHbx%tMj~R=lP>%j)Ug1Xn z8Ex$ykf5mlNcA7=f742*=%9IKUX4orUQM_M@x;zH<;dD4K05V0^th}~=sjW1Ztn?Q zq{RMRE5+U3`Y>tU{+y~sa=FUtWg~GDRbJ%oA%Mh{;U@NRdA>Z^IcdupR?|=wlkCm8 zu4-;~GCP`93m#FGQ}i}(o*1CaxvEl%PUKtkPz!Y3kZRD3H#s^SP3qA!+rK#^GfMDQ z<>-JUrwRlG&fnH?jTlpb#Um;9fSKh-bxr;hIk5)}Ou!3TSP7;Q=>pO$XkyXRp6<}} zG$IxGa6$oA=E%|BK);qBO>H5a45+j45@avn2KEl33+Jz#zy3$KI7<|cI4G+iO_Iz> z+fV~O?%NUQN)?5QUtkXsm$T&(A_oPI3 z&5JU1+c}`i+Hjp_GG0O}z5{kcfNEQ0VOV>5v#%b>ycPUJv=YVvrV%#`60#=AVq7(! z@aA+pJEDl``3ui%UK};cQ&lOlI2o9s z-G_;!(T4A%31b*QV_Re{T4^F_XtCHtva*TBG_be{v`i2Hf}q0ZkYXcG3rv|cmaja* zj_5dzbs>miCw9{q*N)>;0g(K3v%^=~X&MFg^mdv?XFGihjmmcV7K~+Lv889Vk)_!a z_hBFjo87&*jg=-3!*Q%8k2MVnhFw@S;Psja8|&Rdn*@eDzs#x}j2-+cMdFrjR=I^= zI|STd>}yOnL~e(vAB9Ppq*0t=nHBRin()?KC*HE_#9J+$c+2gpDttTFlDBO2J#{B- z{dp^D>Cbd()1S9Gl|D@yE&ZAA`}*@%OMl+#s!3aIHED}lhFXK(KGy!Wdb-nAM*-hz zDUVyaWV{}dYttEzJ7}rs47jhNHsXy- z;Tv`RMtebS%=g2MIiXtfxY61T{61g%8^Z;=(W2Ci?t&o0XW4px8)>(IWqqA>s3^u?G`x(En@Z{cDwfSh#c7W-+XVlml8b@|+ zwE4n~_9?y5JCHZp_N*J$g1zb--DsbM8&QX449y`oj%y(6Q`rBzXLJ}EF1D;sw6*#h zy(ij+i~ifozUvz``tA0=@3-w*jTwWd7MMl`&n+~1^q*W|^yoj{H+uBHw-`MJj|_|+ zR$8?zEB){FI%|HU)Uuty6GPj}&~(r@nhc+Chqjj+0}I4j53SLc#XtjOqpE$o&_Huz z)dQ9}EwJENCbr;7OPd2*kEOMBp0UzkV9FX=jV#^S9(u^8rDnMvn(b;h&1JT$;W~MX zZC4^|4z~8P*84|p1taM{?k?bDgXb1;GGovIJj??E(0gHf>-C$X=g(h%Zu2^(jH-69 zh*YT$jAmN9#s=hi`xQ8!!2XFBAlT0i#z_wR5>BpJ+Sos5p?vNJSI%GCqNOAPZ;Nno zw=9zY%}LvVPS8@&wB&%T7rHJWopn(L%D*d~w)MvpH7&({Q50dG0N7W?L3Hvlg-uIN z5_?q%>SF*VSd?gs+v~6R&tD9a8erGm@f$%G-i!~jQm7=?@D=c*+K_-4DC-PFuFdSGKOaHXe&6;yawH&+yQ31*wd+r-o50^ee)u1MxpNqAkW5xV}zks zZyKZB30n;>?p(bt*0rpx03H=cz^HcP%52FVF}wJRm#cZ z`3JZ&orl`GJ8b=AJJuZ2!2!76c9)%mVcYj{B!-PW*t5}YpKEz`s6lwOvvZ_@OsDt( zCr7*Z0R>o-ZLc5PpO|N7x5j%TkZ6wxEfI{uIkP(6XTdX9uRbR%9mvltiTo^$NZLpY zMC39SoV@n()u+2Wn0COk1lZ9@f{b9x#54ESvYR}_XY;}}UJb~s;R-0@D8o^fD39Os z)%0dnzIGR+&|Qh-IP1Ulm43WU(k|y5y|Aq=#6X}m^U7!7Y2lWg3(h@s*(AuD+23*iD1zdfyVqiH}IbPC|809=^U~6T?G}>*m zvRUC&NLNu^*It-s2B}w`v%yTq>M~V=Vh-FVE(oM3Br_ZaTD+4NU4n_tkVey4I=i=* zPedFFZ;tnN$KizxTvpdr@XYzm63^r8kTKNmj0myF@bT%xTBwFbl0 z%iNOT@x`ZGzgaxwjj4=$@_SEBpSJhCN2vB!8&z4d{D{+e1(m)0tSQzW%##WEc!a0p zQwRMP>~l@J<&U(#T`-$2F`p`{gV|Gi)n0LH`lPoJZa6*q=&v?hm?fz50K)=@i$n9Q zDPu-R0RaL>(|{xe#dbAK7Ja#N>^3^67V_WT|})H9>znGNE)Gp7*O zds1__&zdgX(L7lZw*gK)s|8Lo3ZbUY%7=vOteBFGTp|(Ypo8xVrGgEwN2&SO8;J)( ze}uM+qUsR4eAZN&kL1Y!Mbk%#D@biAD;#f%A1(QQ{?&p>bm?*m-mT!-dz4e3ZNxY7|dm6^LT0Hux3w1yVQD6kG7!vVq?>r34(kM=1GdBlKK9Cr~JG z01L0uGv8e@h$p=uh_Ml5MIHIM<5rqX_OF(VdQPM#)c=0vCqDLXJn_W25AerF=ue*b zcs_dtpZ((}Uh(Umc;XfO-xE(9@ZV?a??2*Go_OVJ-u}t2c;aKt^UHty#{8Yl16<76 zG<#_>8NE20?C)2H8|6Jdd*by+Z~ow4diG;J=>7P+Hoo=${FLqg{`K$u9pC@n{ZIRV zTYka63i4n2YhUo~-}Tv(zxA{A-}rSu`o8zQ^opyW{pp#5fC%)lBpZW{m^?85cLpS1kANV)d>hJvn zum1PHZRZbt>L06q;oIN(wlDd+pZ4rq|MJ(p=i@JZeD$s0^7}sH9e?s2ulj4n$9?dF z|MffSA9?fNe`B#Tec$JO!z;h>SEA31fAR<4_{8Ua?{|IE7yZ&Ve#t+)`K90Rmo7a$ z^AF$t8DH`z-}+78{41~gwD396;_kZbykNe8M`JRvYGoSObzhm#qfAo($@j0LOY5&iwKl;bs@sVHn zb z@Wte{nk|A{~NGoSkESN+iVzkS=A-u?Z5^EckU_U4;cK4bSI-!pp8Xa2(Pzv;X& z{r=DT#5etmpMCag^W<0m(d94y$uIoj;D7k$?|I*!`yVg7>KF27{?Z@bea#>Km!I;~ z7yQM4_V<3W_)SlI=j(sw)+^uknh$)^KYjlzKVk1}AN@lg`4R6q{4;O)8{WBJ{_-#T zp?Ce#n?LyT`Ct9#@BUwY;%i>*eeH*w?|$cp-WgmSeeOSe^OM_8e8F4a_UFFo&;5>{ z|N9qy>pOnuZ~uWm|Khhk{fdA0n_v9yt#^FizkT8Be#>jV{42ib-Cw%@mi>+IfAz=Q z`HJ`x-#xwZ{_p%vU;5Vi=8gaPhu`)4{>xjlHq%5SH1tMUwGfYe9g5FedrUv?sxv!_x-yc zzWRqYf9m~TeemRy|N0j{)(a`fcfd{mGs8yzv{(|J6VH zZSVc<|L~K)<=bEN!{7b4|Ii=(7XR5l_1?etTVC<5Pn^E$kN>lG{$1yLfA|0Tu2+A- zo8SGbfBqx?^ytri$CDfX>0f^SH+}ru-~78i?nBRh!Y94!|10epnk!)dWL|7zV%wP5 zwryi#+qN~aoxIq#ZBA^P`|U5-!=Agkt1o@(u4)KDXBBq1X|p3Kz+-lzjZJkUgbM;m zOv^GXp8XEy3~m04B?IGIREL@#@{cbAUgO%|i4JGY!8w2~C^+~Ja*{*Y*$h=iE?rGi z>rP6&KFHwyvIcRK_0t3lK;HcR0Zx@`P05^KLmg5w%dwx$@KP_Q2DH6kyHnbizh8J8 z-N$E#0uVK-xFqHgO{qU4T>h1CL#%Kw_k?*G$Nx>w-b7Kf4D9kA&jp)535)E#6Cf_@RxYE*0ioJdaNx za~?iUP+$WVa3v&xD%eIRY;xWlwD?bOc;+~kYi0S=9Sh=2qa>3`>gL)7Ef%$+W>hLf zQb3nVlN6C1sgGFxq(`!#O&>%Q8KVr#(a!Nm3Ln;WRn4s_=9?sWZaPTyuA+X=YcL$| ziLoXE6Kdzn0A2}vfQ*s&q?FUBI_5Y&mvz~^Xw0Q z35hx=`f98CMFfmwI6C$@IE=15zTVy01bis$6kBug&4V7Jyt&?>7A%yn2-x-J&sQA9SsU_*e;h$;lh z=-N$(1nZ~^cz35RDXm*z@wwA{Fr6#*bIbxgdB0y$VpV=3RaNWVyxj=btvxZ9ULb(X zyz8G)Oz*qAKpI)H-mk$XVLzMQ5XSOFXa!u|c6lZlLPO4qh43uQ)z0Ul%yn?nlkz%X z3+ql!8E}2y*ze*5gGt2RSvi^6{p$)q8MSXkHhbxYf$=@L3C_Cn7{IlyZW)b&UZj1y z4w>a>EBZ!s*DdgUO2oqu;h}4+EvhoJeoo_hA(|LjV`RBWfr}&RLsdbz^0~%qiF!#v zvTjfxEiQBkTS~{eN)bxc!P%*)v8v7K`A?4ymx{Bt2aee4<01fJCPcA~_v=@U?;eXq zY-)8ff-okn+(Q~vfgDJ2X9*RQk05&|DQr`)_9jmbAbq;+1l=2*C74VeA#EuEjMB;< zMZ2VMk8=fR>$e~jpK-7cA!}p7MMzvL*4Fq)%)(Z-OJn_4VmR=}NwL`Rb)eD|{bf5{ z3lCZB93ouRr!6S<6(q0O%qk{Tg z4!dmUwJ$(<>{5y_$^x%8%e5&PRxve$AMS@ zbQ){+#tNfv2}j!ot2$mwhfDSsb%Hk;Az@O`)Wwu|($?-OtK6Q6lR&SeR&GhrO6DG6 zr2y1iipTAjJ}Jh`a_t{LLW--yjL1;Y^r``&kyW3`{?Xe8r}*)`K!Be@zU+0U&KP~O z+ClnkuB%Mu$reE(S%J3j*4JWU?+2 zSTT1_V*ILF#d*^9QNNfTqvGBaEddHIDm4mDxBhih5=O4)O<t`n9K zPsQirviJ#rcEg<#!i+dJ$DcU6Q#mOum!#=JILzuCM!vRKdpqq|CT&t)>Y(_>yii+r zhpU?76MCNiS zbh;PXBg-WmnOBQ-{dTSqp}1hpOb(H`x4G9u6v+zaj1K(DX$Or&xrI;ydi(-FH_yR8 zG{ynlT=tw7;S&+@B2VeI4=k~h#ty3ri%{A`dD}nmm{A4Ay9P@4y;_mRk#4^j`?-&% z$mx%L1N-_Z#QpfeSz9Hmlax*_;4MW3=?lY$a9H8s;U;?jyATvSRsQ#sYLKxL?ljy( z5(J6;WWT-n6EFW5L?R67xs6Ex?&Tyd|FfTFn?&rpVju~&^4{MNg%2vf$aYyWe{onZ z4@h2%fwX8YwtEeNv`^CHVaB-^kDK`lCE<3w!ye%3-z^j8D;$fq~&k{Sl&oQt{#zQZq1xO7u%;r?17(msxkJV-pYg^R6KP{Dl#kAt~%=o12-gP*y z^?$LT{&9PKyj6h>Rv_5D^Y4aJ$(&bmyf~E6%9)phZ^Y)-`H>MR1Fz z@JYcmhFhI*K-YGN6s;~J`Y|RT)TT3;AK-sUbKI>6cfS(%nUWaFzpPas6XL7u5}{t3 zY3Qrgfeh^zOl=d{K#s_o!7#>Z=xXkC0;?73Zf7 zU|rtsw3jhmIU(ZZWM0;D)|!@`6C~~pI5=ZRNZ`p?1lmJj4Y+!wINdw19m$^lhQDMZ zXAsNC!lG)+`MnX@!uedHtg|kiQM_9u&w>$-ImzikA0UE_T8g&OprBD)w)EsE<_y8p z1HtOo-_L{x`zOE3W(VQT%r-3;^*luT*P@I)#=~s>Ao1$j#=C$$1Lc?=v>thpUKR&U z5z56}6YLviq{W#4IZ*#q5JX}Ta7f{m$HQ_QVuKjWCLh|s{fTtb8lh`iS7kP^aD7tjmmJy|=5^Rd%Fb2`x#3m3v^sjChaT!pU~L5( zCNH0&9aP6hw>E5=<|OQ`Z^A{Abi;mCXo^enKy%%>dNMi4tc9-RU;f4ZtGHVsGKdwYc_pAY#d zgi3D`3irGL5QPeD<@~TuXOmf zXB4o6E6Z2YQ4foMV4{)QBUc^JvuhP)E&aD6v5euGB;8EjCB@R#!+%Pn)gKWgQ=09- zN7cMn3G+cb4GCMlnFO9zm7L3rnzm-PjL3s@Ik3q+bg z{51)aKG~HpbP@yY-d9ezsuDU!x=n0hx^Sd#M3n#wy)wNptxP?tH(4#@yjQO*U4=IQg#5 z%x%1j3s^`-J?Kb?BfuHTq@h?c94~IRU_nKk#zT|J8MuFwa%%J`&m5 zt2Gfv^OH{NFkNF zV)(|Ha&HXxpnJvIeEcfD?|xBP7%9rlhy3M|C(;x2*y8O>2;v_b1*h^B>=o1Wxv3$`V?;^w+nGCaeZ! z|2^oPe)#Zs7UwNzc}N9y)?f}DJQmyq%M&Ma!1$4;k=R|a3v@Z7iSGq)eU3FkU0T~& zRvZ+M$B-!2R9$n5`B$gs>}cFgSNeTdab6jpv3Rq{p^s$*Cw{(J0!$>^U+GJaFc5gJ zaa(2gkH^^ZDvS$uDp{D4wj9llINmAv2HQ-KjiHb#u!b{fZQs~HqmZ|xY$ck(;TUQK z_NF-*T3H!PYhRfCqYUBiDwO#1Z1STmWj9N|${FL^nAe9RbFa!ZK#dev9KD!);;Z*^ zKH-5z>l*Hld(!E!L=YUbS6b=J%EM#Q=R#l2Lj>cx5Ee)$4iqCdTBw(wjNeyqF>B=J zF%(CCIp;VraP$<3jtPaQy9;!}`;w1#_KeYL)aRVr(E86s zQVVF8gQhs^kzuf05>8na-9= z?KMx5$7lb2Wf0V}uHUSC1$t>58sqHDcFH8$gO5k`F%sC@;9)kpmW*g4Uf50#;&{c5 z?)C97RMK+s&@^dWnn9Cd&MnKH+5v!5)(dL*cP^eT&(laLrPMuMi_o6C z#{Z(+5h$^-usGNQnOrLK1+tOYQ-(+t(nqhezgH!c1@?rdmSe8C3?Ve#Os=@hM{HJi zj|An+QUV!IFu}a(V~&15?)2&n{?_D!<>NMK_Z9JIU9i*o)R&K+d1_+GhMN+?@6ayFQ@+NBH@HEjqlnVVQ-BT2vQ(%A8DKzTJh8Q$I5;9?vY{_Mz* zKU@V4xE`Hnk!&U?Z}AP~m4m8E<;Tkwal-#Zlpd>Kh!Qk|FPWf$WO8QEUcp`XE0_%j zCf|-3A_Ci!IBHj5?w!3fxh?A*zi6%2i7{jM{Th=rKwNU>ue(;G7KTPV$l_?bN;+Mb02Hy}FWyoJ^8Oz?Q-XmnouM5XgE&(3ZD=+y_> z7&VU0gWX4yVps+Lrt+8PnU4;S*BaB8Qky{|yc?(c=H|hNV@B2`l~zhvCnAW{kD$oJ z$L^6}n`<@MtfEX}4333Edv&(NvKYr!dpQ&w{s3*G=>or}KO4gL4*a460F`hzpN(y< z7ZL0A(x;#ooix`)znu}8{j`8qg2rnzsi}mD4--v1DwNnc{^jA3mC9*OHUND&#MUV4 z%sLYMFaK4tQ{k`tp)`cCC(P6tyhkvmbbaa8sn!cG{Hl%M&{>;?SVsS11;f(%NR$8> zP|RIRL6dzQGjdASqXs`W2$*J5H5`JBdsBnTII#m#!-a#D^I6h3{;;9Z4=f&Lp&Yq& zjyo<`FOf98Rxx&x+w%ngjpX9L=nqId?kJtGAYFrVv;*q7x!piWYAo{mSm<)@2nUJ z<^ya5F)(F6_&=j&RT7zb3#J3WY`p1qc~}DC)`@_%oXPvo-AaZID z8QRb&~HR0{j zeaT#AjnLM>JH5AHgT}yfLxl7Xh%>`I!kT#tPW{pdRvuN1(4|k9>ce?hYCtMpwwD2W z$Tu}XE^=J&&Q@ixz?IABNO`5`X@7< zm{Dv##2Q+m+i`ub8me_8p2O;t^XO$w(lI=ahA&0)`~$lRcc&pyCCjWd#HPtJeXBLnt=Tr~1{iDIjxj;jNTyY2CqxlPB`2@(+~ zlDB2XD^Kr;IS!}7A!A>e9{R|y=plX8!pfcHHX<^s6-6p};MI6&M=hSTZ(c9_SzC|E zYI)GiD`=Q!OZPdbZPM3d!$(FMhsyOP(oUR?6_mLbA_|KHRJ#b*sQC#s*yFA;!KAd> z7KTz%+2-DCv8FA+;kSOdL3lt7_49Z6Sz7xLFnYT?!=A(lP*fglbindV9BLgTz%|G- z_eRFW<3!+Zh3D9Jr)ZakNtfVG=uo$TmNw@QJFIw`@oP-QU~fqZ5RFKQD|x@T&MS*G zf2})Ef)AhEC&SY*dL^rHq|ACwnAhl8KBM_?sPlGFM6;6U`Vo0tUGWK(VU(Y4di&W{w z&x~!s-)Dj3GRN*WUL(v?7Aq3HUURinK^(u(A-ZJ zen>!Qr5_BepNiZ;nZF^SgmcpS08XT(OMQkQDuRD*@q7RWWTr4L2qSR z99$u2=f-M{zDjF+OFOw@9S6-(5S51H4exyNg~?N#5gr$h8P-_Hhrlq_pMVA3Rl!xs zk#mrXm4_PADJ+UA1VZXVOVC4dpTEagUX2+t9ECLvhiicK_{d>W~%;32OccBuZlUn4!Fh5(KfvF{TdtDfL_40o1rNoipleN+wIWS9MO1?RQ+HQMpCHpK}b2ZC!cYx!~d!jTYHWE z{2u?4mxz?QcpC9%isl6nx*QlK5B>X^s85|}WDS$*?QTGa;aal#cj%otb3&k}F7F^A ze}q6!PtYZwWMZbsG#4(;i z1Pv<(@_{dS98~nnjG>_hHH~)2Ao^WsOJuuX0?rNa%X__=T=FhV$s^1fJwAbbXOo7> zZ|Ed8owGmyH*wCjsT>ld@llQO#}Py3tj|4mnhu9avv>*C#*Rirar?j^r#^@X&yg6#^A0JI*c~ zuU^%bAY1bmhBcbH)qWL>Q=7uma-g||w zt5<2E8p{47xeEBb*g^#;Qk-; - -/** - * useage: - * const extVars = JSON.stringify({ - * a: 1, - * b: 2, - * }); - * await jsonnetExtVars(filename, extVars); - */ -export function jsonnetExtVars( - filename: string, - extVars: string, -): Promise; diff --git a/JS/wasm/types/jsonnet/src/index.js b/JS/wasm/types/jsonnet/src/index.js deleted file mode 100644 index 97606b1c9..000000000 --- a/JS/wasm/types/jsonnet/src/index.js +++ /dev/null @@ -1,6 +0,0 @@ -const { jsonnet, jsonnetExtVars } = require("../index.node"); - -module.exports = { - jsonnet, - jsonnetExtVars, -}; diff --git a/JS/wasm/types/jsonnet/src/lib.rs b/JS/wasm/types/jsonnet/src/lib.rs old mode 100644 new mode 100755 index 03867fd06..fa28d67e4 --- a/JS/wasm/types/jsonnet/src/lib.rs +++ b/JS/wasm/types/jsonnet/src/lib.rs @@ -1,48 +1,50 @@ -use std::{collections::HashMap, fs}; +use jrsonnet_evaluator::{apply_tla, function::TlaArg, gc::GcHashMap, manifest::{JsonFormat, ManifestFormat}, tb, trace::{CompactFormat, PathResolver, TraceFormat}, FileImportResolver, State}; +use jrsonnet_parser::IStr; +use wasm_bindgen::prelude::*; -use jsonnet::JsonnetVm; -use neon::prelude::*; -use serde_json::Value; +pub struct VM { + state: State, + manifest_format: Box, + trace_format: Box, + tla_args: GcHashMap, +} -pub fn jsonnet(mut cx: FunctionContext) -> JsResult { - let path: String = cx.argument::(0)?.value(&mut cx); - let mut vm = JsonnetVm::new(); - let snippet = fs::read_to_string(path).unwrap(); - let output = vm.evaluate_snippet("snippet", &snippet); - let output = match output { - Ok(output) => output, - Err(e) => { - return cx.throw_error(format!("Error: {}", e)); - } - }; - Ok(cx.string(output.to_string())) +#[wasm_bindgen] +pub fn jsonnet_make() -> *mut VM { + let state = State::default(); + state.settings_mut().import_resolver = tb!(FileImportResolver::default()); + state.settings_mut().context_initializer = tb!(jrsonnet_stdlib::ContextInitializer::new( + state.clone(), + PathResolver::new_cwd_fallback(), + )); + Box::into_raw(Box::new(VM { + state, + manifest_format: Box::new(JsonFormat::default()), + trace_format: Box::new(CompactFormat::default()), + tla_args: GcHashMap::default(), + })) } -pub fn jsonnet_ext_vars(mut cx: FunctionContext) -> JsResult { - let path: String = cx.argument::(0)?.value(&mut cx); - let ext_var: String = cx.argument::(1)?.value(&mut cx); - let mut vm = JsonnetVm::new(); - let ext_var_str = ext_var.as_str(); - let ext_vars: HashMap<&str, Value> = serde_json::from_str(ext_var_str).unwrap(); - for (key, value) in ext_vars { - vm.ext_var(key, value.as_str().unwrap()); - } - let snippet = fs::read_to_string(path).unwrap(); +#[wasm_bindgen] +pub fn jsonnet_destroy(vm: *mut VM) { + unsafe { + let dloc_vm = Box::from_raw(vm); + drop(dloc_vm); + } +} - let output = vm.evaluate_snippet("snippet", &snippet); - let output = match output { - Ok(output) => output, +#[wasm_bindgen] +pub fn jsonnet_evaluate_snippet(vm: *mut VM, filename: &str, snippet: &str) -> String { + let vm = unsafe { &mut *vm }; + match vm.state.evaluate_snippet(filename, snippet) + .and_then(|val| apply_tla(vm.state.clone(), &vm.tla_args, val)) + .and_then(|val| val.manifest(&vm.manifest_format)) { + Ok(v) => v, Err(e) => { - return cx.throw_error(format!("{}", e)); + let mut out = String::new(); + vm.trace_format.write_trace(&mut out, &e).unwrap(); + out } - }; - Ok(cx.string(output.to_string())) -} - -#[neon::main] -fn main(mut cx: ModuleContext) -> NeonResult<()> { - cx.export_function("jsonnet", jsonnet)?; - cx.export_function("jsonnetExtVars", jsonnet_ext_vars)?; - Ok(()) + } } diff --git a/JS/wasm/types/jsonnet/src/module.mjs b/JS/wasm/types/jsonnet/src/module.mjs deleted file mode 100644 index 962aaa90a..000000000 --- a/JS/wasm/types/jsonnet/src/module.mjs +++ /dev/null @@ -1,5 +0,0 @@ -import parseJson from "./index.js"; - -const { jsonnet, jsonnetExtVars } = parseJson; - -export { jsonnet, jsonnetExtVars }; diff --git a/JS/wasm/types/jsonnet/tsconfig.json b/JS/wasm/types/jsonnet/tsconfig.json deleted file mode 100644 index 352ec0c2f..000000000 --- a/JS/wasm/types/jsonnet/tsconfig.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "lib": ["es6"], - "strict": true, - "baseUrl": ".", - "paths": { "arakoo-jsonnet": ["."] }, - }, - "typedocOptions": { - "entryPoints": ["index.d.ts"], - "out": "../docs", - "excludeExternals": true, - }, - "include": ["."], -} From 9d163843175031849ce368256dae202127415c2d Mon Sep 17 00:00:00 2001 From: rahul007-bit Date: Sun, 4 Feb 2024 21:47:48 +0530 Subject: [PATCH 03/18] revamp wasm compilation and serve flow --- .gitignore | 9 +- JS/wasm/Cargo.lock | 4186 +++++++++++++++++ JS/wasm/Cargo.toml | 20 + JS/wasm/crates/apis/Cargo.toml | 17 + JS/wasm/crates/apis/src/api_config.rs | 12 + JS/wasm/crates/apis/src/console/config.rs | 51 + JS/wasm/crates/apis/src/console/mod.rs | 187 + JS/wasm/crates/apis/src/http/mod.rs | 13 + JS/wasm/crates/apis/src/http/shims/.gitignore | 2 + JS/wasm/crates/apis/src/http/shims/build.js | 15 + JS/wasm/crates/apis/src/http/shims/index.js | 301 ++ .../crates/apis/src/http/shims/package.json | 18 + JS/wasm/crates/apis/src/http/shims/yarn.lock | 199 + JS/wasm/crates/apis/src/lib.rs | 92 + JS/wasm/crates/apis/src/random/mod.rs | 37 + JS/wasm/crates/apis/src/runtime_ext.rs | 35 + JS/wasm/crates/apis/src/stream_io/io.js | 31 + JS/wasm/crates/apis/src/stream_io/mod.rs | 68 + JS/wasm/crates/apis/src/text_encoding/mod.rs | 102 + .../apis/src/text_encoding/text-encoding.js | 66 + JS/wasm/crates/arakoo-core/Cargo.toml | 20 + JS/wasm/crates/arakoo-core/src/execution.rs | 75 + JS/wasm/crates/arakoo-core/src/lib.rs | 84 + JS/wasm/crates/arakoo-core/src/main.rs | 103 + JS/wasm/crates/arakoo-core/src/runtime.rs | 9 + JS/wasm/crates/cli/Cargo.toml | 50 + JS/wasm/crates/cli/build.rs | 79 + JS/wasm/crates/cli/src/bytecode.rs | 79 + JS/wasm/crates/cli/src/commands.rs | 72 + JS/wasm/crates/cli/src/exports.rs | 48 + JS/wasm/crates/cli/src/js.rs | 317 ++ JS/wasm/crates/cli/src/main.rs | 56 + .../crates/cli/src/wasm_generator/dynamic.rs | 193 + JS/wasm/crates/cli/src/wasm_generator/mod.rs | 3 + .../crates/cli/src/wasm_generator/static.rs | 143 + .../cli/src/wasm_generator/transform.rs | 47 + JS/wasm/crates/cli/src/wit.rs | 35 + JS/wasm/crates/serve/Cargo.toml | 18 + JS/wasm/crates/serve/src/io.rs | 61 + JS/wasm/crates/serve/src/lib.rs | 245 + JS/wasm/examples/ec-wasmjs-hono/src/index.js | 9 +- JS/wasm/rust-toolchain.toml | 5 + 42 files changed, 7206 insertions(+), 6 deletions(-) create mode 100644 JS/wasm/Cargo.lock create mode 100644 JS/wasm/Cargo.toml create mode 100644 JS/wasm/crates/apis/Cargo.toml create mode 100644 JS/wasm/crates/apis/src/api_config.rs create mode 100644 JS/wasm/crates/apis/src/console/config.rs create mode 100644 JS/wasm/crates/apis/src/console/mod.rs create mode 100644 JS/wasm/crates/apis/src/http/mod.rs create mode 100644 JS/wasm/crates/apis/src/http/shims/.gitignore create mode 100644 JS/wasm/crates/apis/src/http/shims/build.js create mode 100644 JS/wasm/crates/apis/src/http/shims/index.js create mode 100644 JS/wasm/crates/apis/src/http/shims/package.json create mode 100644 JS/wasm/crates/apis/src/http/shims/yarn.lock create mode 100644 JS/wasm/crates/apis/src/lib.rs create mode 100644 JS/wasm/crates/apis/src/random/mod.rs create mode 100644 JS/wasm/crates/apis/src/runtime_ext.rs create mode 100644 JS/wasm/crates/apis/src/stream_io/io.js create mode 100644 JS/wasm/crates/apis/src/stream_io/mod.rs create mode 100644 JS/wasm/crates/apis/src/text_encoding/mod.rs create mode 100644 JS/wasm/crates/apis/src/text_encoding/text-encoding.js create mode 100644 JS/wasm/crates/arakoo-core/Cargo.toml create mode 100644 JS/wasm/crates/arakoo-core/src/execution.rs create mode 100644 JS/wasm/crates/arakoo-core/src/lib.rs create mode 100644 JS/wasm/crates/arakoo-core/src/main.rs create mode 100644 JS/wasm/crates/arakoo-core/src/runtime.rs create mode 100644 JS/wasm/crates/cli/Cargo.toml create mode 100644 JS/wasm/crates/cli/build.rs create mode 100644 JS/wasm/crates/cli/src/bytecode.rs create mode 100644 JS/wasm/crates/cli/src/commands.rs create mode 100644 JS/wasm/crates/cli/src/exports.rs create mode 100644 JS/wasm/crates/cli/src/js.rs create mode 100644 JS/wasm/crates/cli/src/main.rs create mode 100644 JS/wasm/crates/cli/src/wasm_generator/dynamic.rs create mode 100644 JS/wasm/crates/cli/src/wasm_generator/mod.rs create mode 100644 JS/wasm/crates/cli/src/wasm_generator/static.rs create mode 100644 JS/wasm/crates/cli/src/wasm_generator/transform.rs create mode 100644 JS/wasm/crates/cli/src/wit.rs create mode 100644 JS/wasm/crates/serve/Cargo.toml create mode 100644 JS/wasm/crates/serve/src/io.rs create mode 100644 JS/wasm/crates/serve/src/lib.rs create mode 100644 JS/wasm/rust-toolchain.toml diff --git a/.gitignore b/.gitignore index dd8d39e43..850157278 100644 --- a/.gitignore +++ b/.gitignore @@ -33,4 +33,11 @@ build/ .vscode/ ### Node Modules ### -node_modules \ No newline at end of file +node_modules + +### rust ### +/target/ +index.wasm +index.wit + +.DS_Store diff --git a/JS/wasm/Cargo.lock b/JS/wasm/Cargo.lock new file mode 100644 index 000000000..606b8ad96 --- /dev/null +++ b/JS/wasm/Cargo.lock @@ -0,0 +1,4186 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" +dependencies = [ + "lazy_static", + "regex", +] + +[[package]] +name = "addr2line" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a30b2e23b9e17a9f90641c7ab1549cd9b44f296d3ccbf309d2863cfe398a0cb" +dependencies = [ + "gimli 0.28.1", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "ahash" +version = "0.8.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77c3a9648d43b9cd48db467b3f87fdd6e146bcc88ab0180006cef2179fe11d01" +dependencies = [ + "cfg-if", + "once_cell", + "version_check", + "zerocopy", +] + +[[package]] +name = "aho-corasick" +version = "1.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0" +dependencies = [ + "memchr", +] + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "ambient-authority" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9d4ee0d472d1cd2e28c97dfa124b3d8d992e10eb0a035f33f5d12e3a177ba3b" + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstyle" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2faccea4cc4ab4a667ce676a30e8ec13922a692c99bb8f5b11f1502c72e04220" + +[[package]] +name = "anyhow" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" + +[[package]] +name = "apis" +version = "0.0.1" +dependencies = [ + "anyhow", + "fastrand", + "javy", +] + +[[package]] +name = "arakoo-core" +version = "0.0.1" +dependencies = [ + "anyhow", + "apis", + "javy", + "once_cell", +] + +[[package]] +name = "arbitrary" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d5a26814d8dcb93b0e5a0ff3c6d80a8843bafb21b39e8e18a6f05471870e110" + +[[package]] +name = "arrayvec" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96d30a06541fbafbc7f82ed10c06164cfbd2c401138f6addd8404629c4b16711" + +[[package]] +name = "ast_node" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3e3e06ec6ac7d893a0db7127d91063ad7d9da8988f8a1a256f03729e6eec026" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "async-trait" +version = "0.1.77" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c980ee35e870bd1a4d2c8294d4c04d0499e67bca1e4b5cefcc693c2fa00caea9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "backtrace" +version = "0.3.69" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2089b7e3f35b9dd2d0ed921ead4f6d318c27680d4a5bd167b3ee120edb105837" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide", + "object", + "rustc-demangle", +] + +[[package]] +name = "base64" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "better_scoped_tls" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794edcc9b3fb07bb4aecaa11f093fd45663b4feadb782d68303a2268bc2701de" +dependencies = [ + "scoped-tls", +] + +[[package]] +name = "binaryen" +version = "0.12.1" +source = "git+https://github.com/pepyakin/binaryen-rs?rev=00c98174843f957681ba0bc5cdcc9d15f5d0cb23#00c98174843f957681ba0bc5cdcc9d15f5d0cb23" +dependencies = [ + "binaryen-sys", +] + +[[package]] +name = "binaryen-sys" +version = "0.12.1" +source = "git+https://github.com/pepyakin/binaryen-rs?rev=00c98174843f957681ba0bc5cdcc9d15f5d0cb23#00c98174843f957681ba0bc5cdcc9d15f5d0cb23" +dependencies = [ + "cc", + "cmake", + "heck 0.3.3", + "regex", +] + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + +[[package]] +name = "bindgen" +version = "0.69.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a00dc851838a2120612785d195287475a3ac45514741da670b735818822129a0" +dependencies = [ + "bitflags 2.4.2", + "cexpr", + "clang-sys", + "itertools 0.12.1", + "lazy_static", + "lazycell", + "log", + "prettyplease", + "proc-macro2", + "quote", + "regex", + "rustc-hash", + "shlex", + "syn 2.0.48", + "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.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf" + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "brotli" +version = "3.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "516074a47ef4bce09577a3b379392300159ce5b1ba2e501ff1c819950066100f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e2e4afe60d7dd600fdd3de8d0f08c2b7ec039712e3b6137ff98b7004e82de4f" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bumpalo" +version = "3.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + +[[package]] +name = "camino" +version = "1.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59e92b5a388f549b863a7bea62612c09f24c8393560709a54558a9abdfb3b9c" +dependencies = [ + "serde", +] + +[[package]] +name = "cap-fs-ext" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88e341d15ac1029aadce600be764a1a1edafe40e03cde23285bc1d261b3a4866" +dependencies = [ + "cap-primitives", + "cap-std", + "io-lifetimes", + "windows-sys 0.52.0", +] + +[[package]] +name = "cap-net-ext" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "434168fe6533055f0f4204039abe3ff6d7db338ef46872a5fa39e9d5ad5ab7a9" +dependencies = [ + "cap-primitives", + "cap-std", + "rustix", + "smallvec", +] + +[[package]] +name = "cap-primitives" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe16767ed8eee6d3f1f00d6a7576b81c226ab917eb54b96e5f77a5216ef67abb" +dependencies = [ + "ambient-authority", + "fs-set-times", + "io-extras", + "io-lifetimes", + "ipnet", + "maybe-owned", + "rustix", + "windows-sys 0.52.0", + "winx", +] + +[[package]] +name = "cap-rand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20e5695565f0cd7106bc3c7170323597540e772bb73e0be2cd2c662a0f8fa4ca" +dependencies = [ + "ambient-authority", + "rand", +] + +[[package]] +name = "cap-std" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "593db20e4c51f62d3284bae7ee718849c3214f93a3b94ea1899ad85ba119d330" +dependencies = [ + "cap-primitives", + "io-extras", + "io-lifetimes", + "rustix", +] + +[[package]] +name = "cap-time-ext" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03261630f291f425430a36f38c847828265bc928f517cdd2004c56f4b02f002b" +dependencies = [ + "ambient-authority", + "cap-primitives", + "iana-time-zone", + "once_cell", + "rustix", + "winx", +] + +[[package]] +name = "cargo-platform" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceed8ef69d8518a5dda55c07425450b58a4e1946f4951eab6d7191ee86c2443d" +dependencies = [ + "serde", +] + +[[package]] +name = "cargo_metadata" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d886547e41f740c616ae73108f6eb70afe6d940c7bc697cb30f13daec073037" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.21", + "serde", + "serde_json", + "thiserror", +] + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cc" +version = "1.0.83" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1174fb0b6ec23863f8b971027804a42614e347eafb0a95bf0b12cdae21fc4d0" +dependencies = [ + "jobserver", + "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 = "ciborium" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42e69ffd6f0917f5c029256a24d0161db17cea3997d185db0d35926308770f0e" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde", +] + +[[package]] +name = "ciborium-io" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05afea1e0a06c9be33d539b876f1ce3692f4afea2cb41f740e7743225ed1c757" + +[[package]] +name = "ciborium-ll" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57663b653d948a338bfb3eeba9bb2fd5fcfaecb9e199e87e1eda4d9e8b240fd9" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "clang-sys" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags 1.3.2", + "strsim", + "textwrap", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "4.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e578d6ec4194633722ccf9544794b71b1385c3c027efe0c55db226fc880865c" +dependencies = [ + "clap_builder", +] + +[[package]] +name = "clap_builder" +version = "4.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4df4df40ec50c46000231c914968278b1eb05098cf8f1b3a518a95030e71d1c7" +dependencies = [ + "anstyle", + "clap_lex", +] + +[[package]] +name = "clap_lex" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "702fc72eb24e5a1e48ce58027a675bc24edd52096d5397d4aea7c6dd9eca0bd1" + +[[package]] +name = "cli" +version = "0.0.1" +dependencies = [ + "anyhow", + "binaryen", + "brotli", + "convert_case", + "criterion", + "lazy_static", + "num-format", + "serde", + "serde_json", + "serve", + "structopt", + "swc_core", + "tempfile", + "tokio", + "uuid", + "walrus", + "wasi-common", + "wasmparser 0.118.1", + "wasmprinter", + "wasmtime", + "wasmtime-wasi", + "wat", + "wit-parser", + "wizer", +] + +[[package]] +name = "cmake" +version = "0.1.50" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31c789563b815f77f4250caee12365734369f942439b7defd71e18a48197130" +dependencies = [ + "cc", +] + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[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 = "cpp_demangle" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eeaa953eaad386a53111e47172c2fedba671e5684c8dd601a5f474f4f118710f" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "cranelift-bforest" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7c22542c0b95bd3302f7ed6839869c561f2324bac2fd5e7e99f5cfa65fdc8b92" +dependencies = [ + "cranelift-entity", +] + +[[package]] +name = "cranelift-codegen" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b3db903ef2e9c8a4de2ea6db5db052c7857282952f9df604aa55d169e6000d8" +dependencies = [ + "bumpalo", + "cranelift-bforest", + "cranelift-codegen-meta", + "cranelift-codegen-shared", + "cranelift-control", + "cranelift-entity", + "cranelift-isle", + "gimli 0.28.1", + "hashbrown 0.14.3", + "log", + "regalloc2", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-codegen-meta" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6590feb5a1d6438f974bf6a5ac4dddf69fca14e1f07f3265d880f69e61a94463" +dependencies = [ + "cranelift-codegen-shared", +] + +[[package]] +name = "cranelift-codegen-shared" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7239038c56fafe77fddc8788fc8533dd6c474dc5bdc5637216404f41ba807330" + +[[package]] +name = "cranelift-control" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7dc9c595341404d381d27a3d950160856b35b402275f0c3990cd1ad683c8053" +dependencies = [ + "arbitrary", +] + +[[package]] +name = "cranelift-entity" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44e3ee532fc4776c69bcedf7e62f9632cbb3f35776fa9a525cdade3195baa3f7" +dependencies = [ + "serde", + "serde_derive", +] + +[[package]] +name = "cranelift-frontend" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a612c94d09e653662ec37681dc2d6fd2b9856e6df7147be0afc9aabb0abf19df" +dependencies = [ + "cranelift-codegen", + "log", + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cranelift-isle" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85db9830abeb1170b7d29b536ffd55af1d4d26ac8a77570b5d1aca003bf225cc" + +[[package]] +name = "cranelift-native" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "301ef0edafeaeda5771a5d2db64ac53e1818ae3111220a185677025fe91db4a1" +dependencies = [ + "cranelift-codegen", + "libc", + "target-lexicon", +] + +[[package]] +name = "cranelift-wasm" +version = "0.103.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "380f0abe8264e4570ac615fc31cef32a3b90a77f7eb97b08331f9dd357b1f500" +dependencies = [ + "cranelift-codegen", + "cranelift-entity", + "cranelift-frontend", + "itertools 0.10.5", + "log", + "smallvec", + "wasmparser 0.118.1", + "wasmtime-types", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f2b12d017a929603d80db1831cd3a24082f8137ce19c69e6447f54f5fc8d692f" +dependencies = [ + "anes", + "cast", + "ciborium", + "clap 4.4.18", + "criterion-plot", + "is-terminal", + "itertools 0.10.5", + "num-traits", + "once_cell", + "oorandom", + "plotters", + "rayon", + "regex", + "serde", + "serde_derive", + "serde_json", + "tinytemplate", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools 0.10.5", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613f8cc01fe9cf1a3eb3d7f488fd2fa8388403e97039e2f73692932e291a770d" +dependencies = [ + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b82ac4a3c2ca9c3460964f020e1402edd5753411d7737aa39c3714ad1b5420e" +dependencies = [ + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "248e3bacc7dc6baa3b21e405ee045c3047101a49145e7e9eca583ab4c2ca5345" + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "data-encoding" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e962a19be5cfc3f3bf6dd8f61eb50107f356ad6270fbb3ed41476571db78be5" + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "serde", + "uuid", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer", + "crypto-common", +] + +[[package]] +name = "directories-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339ee130d97a610ea5a5872d2bbb130fdf68884ff09d3028b81bec8a1ac23bbc" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "either" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" + +[[package]] +name = "encoding_rs" +version = "0.8.33" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7268b386296a025e474d5140678f75d6de9493ae55a5d709eeb9dd08149945e1" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "equivalent" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" + +[[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 = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fallible-iterator" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" + +[[package]] +name = "fastrand" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" + +[[package]] +name = "fd-lock" +version = "4.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7e5768da2206272c81ef0b5e951a41862938a6070da63bcea197899942d3b947" +dependencies = [ + "cfg-if", + "rustix", + "windows-sys 0.52.0", +] + +[[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 = "form_urlencoded" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e13624c2627564efccf4934284bdd98cbaa14e79b0b5a141218e507b3a823456" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "from_variant" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a0b11eeb173ce52f84ebd943d42e58813a2ebb78a6a3ff0a243b71c5199cd7b" +dependencies = [ + "proc-macro2", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "fs-set-times" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "033b337d725b97690d86893f9de22b67b80dcc4e9ad815f348254c38119db8fb" +dependencies = [ + "io-lifetimes", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "futures" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "645c6916888f6cb6350d2550b80fb63e734897a8498abe35cfb732b6487804b0" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eac8f7d7865dcb88bd4373ab671c8cf4508703796caa2b1985a9ca867b3fcb78" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dfc6580bb841c5a68e9ef15c77ccc837b40a7504914d52e47b8b0e9bbda25a1d" + +[[package]] +name = "futures-executor" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a576fc72ae164fca6b9db127eaa9a9dda0d61316034f33a0a0d4eda41f02b01d" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a44623e20b9681a318efdd71c299b6b222ed6f231972bfe2f224ebad6311f0c1" + +[[package]] +name = "futures-macro" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "futures-sink" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb8e00e87438d937621c1c6269e53f536c14d3fbd6a042bb24879e57d474fb5" + +[[package]] +name = "futures-task" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38d84fa142264698cdce1a9f9172cf383a0c82de1bddcf3092901442c4097004" + +[[package]] +name = "futures-util" +version = "0.3.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d6401deb83407ab3da39eba7e33987a73c3df0c82b4bb5813ee871c19c41d48" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "fxhash" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c" +dependencies = [ + "byteorder", +] + +[[package]] +name = "fxprof-processed-profile" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "27d12c0aed7f1e24276a241aadc4cb8ea9f83000f34bc062b7cc2d51e3b0fabd" +dependencies = [ + "bitflags 2.4.2", + "debugid", + "fxhash", + "serde", + "serde_json", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", +] + +[[package]] +name = "getrandom" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "190092ea657667030ac6a35e305e62fc4dd69fd98ac98631e5d3a2b1575a12b5" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "gimli" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22030e2c5a68ec659fde1e949a745124b48e6fa8b045b7ed5bd1fe4ccc5c4e5d" +dependencies = [ + "fallible-iterator 0.2.0", + "indexmap 1.9.3", + "stable_deref_trait", +] + +[[package]] +name = "gimli" +version = "0.28.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4271d37baee1b8c7e4b708028c57d816cf9d2434acb33a549475f78c181f6253" +dependencies = [ + "fallible-iterator 0.3.0", + "indexmap 2.2.2", + "stable_deref_trait", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "h2" +version = "0.3.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2c4422095b67ee78da96fbb51a4cc413b3b25883c7717ff7ca1ab31022c9c9" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 0.2.11", + "indexmap 2.2.2", + "slab", + "tokio", + "tokio-util", + "tracing", +] + +[[package]] +name = "half" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc52e53916c08643f1b56ec082790d1e86a32e58dc5268f897f313fbae7b4872" +dependencies = [ + "cfg-if", + "crunchy", +] + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash", +] + +[[package]] +name = "hashbrown" +version = "0.14.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290f1a1d9242c78d09ce40a5e87e7554ee637af1351968159f4952f028f75604" +dependencies = [ + "ahash", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d3d0e0f38255e7fa3cf31335b3a56f05febd18025f4db5ef7a0cfb4f8da651f" + +[[package]] +name = "home" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "hstr" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17fafeca18cf0927e23ea44d7a5189c10536279dfe9094e0dfa953053fbb5377" +dependencies = [ + "new_debug_unreachable", + "once_cell", + "phf", + "rustc-hash", + "smallvec", +] + +[[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" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ceab25649e9960c0311ea418d17bee82c0dcec1bd053b5f9a66e265a693bed2" +dependencies = [ + "bytes", + "http 0.2.11", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "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 = "0.14.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf96e135eb83a2a8ddf766e426a841d8ddd7449d5f00d34ea02b41d2f19eef80" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http 0.2.11", + "http-body 0.4.6", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "httparse", + "itoa", + "pin-project-lite", + "tokio", + "want", +] + +[[package]] +name = "hyper-tls" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" +dependencies = [ + "bytes", + "http-body-util", + "hyper 1.1.0", + "hyper-util", + "native-tls", + "tokio", + "tokio-native-tls", + "tower-service", +] + +[[package]] +name = "hyper-util" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca38ef113da30126bbff9cd1705f9273e15d45498615d138b0c20279ac7a76aa" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "hyper 1.1.0", + "pin-project-lite", + "socket2", + "tokio", + "tower", + "tower-service", + "tracing", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7ffbb5a1b541ea2561f8c41c087286cc091e21e556a4f09a8f6cbf17b69b141" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows-core", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f31827a206f56af32e590ba56d5d2d085f558508192593743f16b2306495269f" +dependencies = [ + "cc", +] + +[[package]] +name = "id-arena" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25a2bc672d1148e28034f176e01fffebb08b35768468cc954630da77a1449005" + +[[package]] +name = "idna" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "634d9b1461af396cad843f47fdba5597a4f9e6ddd4bfb6ff5d85028c25cb12f6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", +] + +[[package]] +name = "indexmap" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824b2ae422412366ba479e8111fd301f7b5faece8149317bb81925979a53f520" +dependencies = [ + "equivalent", + "hashbrown 0.14.3", + "serde", +] + +[[package]] +name = "io-extras" +version = "0.18.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c301e73fb90e8a29e600a9f402d095765f74310d582916a952f618836a1bd1ed" +dependencies = [ + "io-lifetimes", + "windows-sys 0.52.0", +] + +[[package]] +name = "io-lifetimes" +version = "2.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a611371471e98973dbcab4e0ec66c31a10bc356eeb4d54a0e05eac8158fe38c" + +[[package]] +name = "ipnet" +version = "2.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f518f335dce6725a761382244631d86cf0ccb2863413590b31338feb467f9c3" + +[[package]] +name = "is-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59a85abdc13717906baccb5a1e435556ce0df215f242892f721dff62bf25288f" +dependencies = [ + "Inflector", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "is-terminal" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bad00257d07be169d870ab665980b06cdb366d792ad690bf2e76876dc503455" +dependencies = [ + "hermit-abi 0.3.4", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itertools" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba291022dbbd398a455acf126c1e341954079855bc60dfdda641363bd6922569" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + +[[package]] +name = "ittapi" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b996fe614c41395cdaedf3cf408a9534851090959d90d54a535f675550b64b1" +dependencies = [ + "anyhow", + "ittapi-sys", + "log", +] + +[[package]] +name = "ittapi-sys" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52f5385394064fa2c886205dba02598013ce83d3e92d33dbdc0c52fe0e7bf4fc" +dependencies = [ + "cc", +] + +[[package]] +name = "javy" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a19c120cb4edb704e21f55d5b10b9ea3fe38c51741f2bc10403d02add8d34921" +dependencies = [ + "anyhow", + "quickjs-wasm-rs", + "serde-transcode", + "serde_json", +] + +[[package]] +name = "jobserver" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c37f63953c4c63420ed5fd3d6d398c719489b9f872b9fa683262f8edd363c7d" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a1d36f1235bc969acba30b7f5990b864423a6068a10f7c90ae8f0112e3a59d1" +dependencies = [ + "wasm-bindgen", +] + +[[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 = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libloading" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161" +dependencies = [ + "cfg-if", + "windows-sys 0.48.0", +] + +[[package]] +name = "libredox" +version = "0.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85c833ca1e66078851dba29046874e38f08b2c883700aa29a03ddd3b23814ee8" +dependencies = [ + "bitflags 2.4.2", + "libc", + "redox_syscall", +] + +[[package]] +name = "linux-raw-sys" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01cda141df6706de531b6c46c3a33ecca755538219bd484262fa09410c13539c" + +[[package]] +name = "lock_api" +version = "0.4.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c168f8615b12bc01f9c17e2eb0cc07dcae1940121185446edc3744920e8ef45" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6163cb8c49088c2c36f57875e58ccd8c87c7427f7fbd50ea6710b2f3f2e8f" + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata 0.1.10", +] + +[[package]] +name = "maybe-owned" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4facc753ae494aeb6e3c22f839b158aebd4f9270f55cd3c79906c45476c47ab4" + +[[package]] +name = "memchr" +version = "2.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149" + +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix", +] + +[[package]] +name = "memoffset" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a634b1c61a95585bd15607c6ab0c4e5b226e695ff2800ba0cdccddf208c406c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d811f3e15f28568be3407c8e7fdb6514c1cda3cb30683f15b6a1a1dc4ea14a7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3d0b296e374a4e6f3c7b0a1f5a51d748a0d34c85e7dc48fc3fa9a87657fe09" +dependencies = [ + "libc", + "wasi", + "windows-sys 0.48.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 = "new_debug_unreachable" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54" + +[[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 = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", + "serde", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec", + "itoa", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39e3200413f237f41ab11ad6d161bc7239c84dcb631773ccd7de3dfe4b5c267c" +dependencies = [ + "autocfg", +] + +[[package]] +name = "num_cpus" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4161fcb6d602d4d2081af7c3a45852d875a03dd337a6bfdd6e06407b61342a43" +dependencies = [ + "hermit-abi 0.3.4", + "libc", +] + +[[package]] +name = "object" +version = "0.32.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6a622008b6e321afc04970976f62ee297fdbaa6f95318ca343e3eebb9648441" +dependencies = [ + "crc32fast", + "hashbrown 0.14.3", + "indexmap 2.2.2", + "memchr", +] + +[[package]] +name = "once_cell" +version = "1.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "openssl" +version = "0.10.63" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "15c9d69dd87a29568d4d017cfe8ec518706046a05184e5aea92d0af890b803c8" +dependencies = [ + "bitflags 2.4.2", + "cfg-if", + "foreign-types", + "libc", + "once_cell", + "openssl-macros", + "openssl-sys", +] + +[[package]] +name = "openssl-macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[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.99" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22e1bf214306098e4832460f797824c05d25aacdf896f64a985fb0fd992454ae" +dependencies = [ + "cc", + "libc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c42a9226546d68acdd9c0a280d17ce19bfe27a46bf68784e4066115788d008e" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets 0.48.5", +] + +[[package]] +name = "paste" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de3145af08024dea9fa9914f381a17b8fc6034dfb00f3a84013f7ff43f29ed4c" + +[[package]] +name = "percent-encoding" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e3148f5046208a5d56bcfc03053e3ca6334e51da8dfb19b6cdc8b306fae3283e" + +[[package]] +name = "phf" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ade2d8b8f33c7333b51bcf0428d37e217e9f32192ae4772156f65063b8ce03dc" +dependencies = [ + "phf_macros", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "48e4cc64c2ad9ebe670cb8fd69dd50ae301650392e81c05f9bfcb2d5bdbc24b0" +dependencies = [ + "phf_shared", + "rand", +] + +[[package]] +name = "phf_macros" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3444646e286606587e49f3bcf1679b8cef1dc2c5ecc29ddacaffc305180d464b" +dependencies = [ + "phf_generator", + "phf_shared", + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "phf_shared" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90fcb95eef784c2ac79119d1dd819e162b5da872ce6f3c3abe1e8ca1c082f72b" +dependencies = [ + "siphasher", +] + +[[package]] +name = "pin-project" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0302c4a0442c456bd56f841aee5c3bfd17967563f6fadc9ceb9f9c23cf3807e0" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "266c042b60c9c76b8d53061e52b2e0d1116abc57cefc8c5cd671619a56ac3690" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[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.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2900ede94e305130c13ddd391e0ab7cbaeb783945ae07a279c268cb05109c6cb" + +[[package]] +name = "plotters" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2c224ba00d7cadd4d5c660deaf2098e5e80e07846537c51f9cfa4be50c1fd45" +dependencies = [ + "num-traits", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e76628b4d3a7581389a35d5b6e2139607ad7c75b17aed325f210aa91f4a9609" + +[[package]] +name = "plotters-svg" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38f6d39893cca0701371e3c27294f09797214b86f1fb951b89ade8ec04e2abab" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "pmutil" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52a40bc70c2c58040d2d8b167ba9a5ff59fc9dab7ad44771cfde3dcfde7a09c6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "prettyplease" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a41cf62165e97c7f814d2221421dbb9afcbcdb0a88068e5ea206e19951c2cbb5" +dependencies = [ + "proc-macro2", + "syn 2.0.48", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2", + "quote", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2", + "quote", + "version_check", +] + +[[package]] +name = "proc-macro2" +version = "1.0.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "psm" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5787f7cda34e3033a72192c018bc5883100330f362ef279a8cbccfce8bb4e874" +dependencies = [ + "cc", +] + +[[package]] +name = "quickjs-wasm-rs" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2ac26c035fca8cb3fbbe2aae881f5630b1570aebb8fe19d30a320320913d00d" +dependencies = [ + "anyhow", + "once_cell", + "quickjs-wasm-sys", + "serde", +] + +[[package]] +name = "quickjs-wasm-sys" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d96c8767ef96ee1a3166330bec6ffc7670a6cf8abe9d0a4f7974906db16f9cc" +dependencies = [ + "anyhow", + "bindgen", + "cc", + "http-body-util", + "hyper 1.1.0", + "hyper-tls", + "hyper-util", + "tokio", + "walkdir", +] + +[[package]] +name = "quote" +version = "1.0.35" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "rayon" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa7237101a77a10773db45d62004a272517633fbcc3df19d96455ede1122e051" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2" +dependencies = [ + "crossbeam-deque", + "crossbeam-utils", +] + +[[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 = "redox_users" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18479200779601e498ada4e8c1e1f50e3ee19deb0259c25825a98b5603b2cb4" +dependencies = [ + "getrandom", + "libredox", + "thiserror", +] + +[[package]] +name = "regalloc2" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad156d539c879b7a24a363a2016d77961786e71f48f2e2fc8302a92abd2429a6" +dependencies = [ + "hashbrown 0.13.2", + "log", + "rustc-hash", + "slice-group-by", + "smallvec", +] + +[[package]] +name = "regex" +version = "1.10.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62dbe01f0b06f9d8dc7d49e05a0785f153b00b2c227856282f671e0318c9b15" +dependencies = [ + "aho-corasick", + "memchr", + "regex-automata 0.4.5", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-automata" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bb987efffd3c6d0d8f5f89510bb458559eab11e4f869acb20bf845e016259cd" +dependencies = [ + "aho-corasick", + "memchr", + "regex-syntax 0.8.2", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f" + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc_version" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +dependencies = [ + "semver 0.9.0", +] + +[[package]] +name = "rustix" +version = "0.38.31" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ea3e1a662af26cd7a3ba09c0297a31af215563ecf42817c98df621387f4e949" +dependencies = [ + "bitflags 2.4.2", + "errno", + "itoa", + "libc", + "linux-raw-sys", + "once_cell", + "windows-sys 0.52.0", +] + +[[package]] +name = "rustversion" +version = "1.0.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ffc183a10b4478d04cbbbfc96d0873219d962dd5accaff2ffbd4ceb7df837f4" + +[[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.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbc91545643bcf3a0bbb6569265615222618bdf33ce4ffbbd13c4bbd4c093534" +dependencies = [ + "windows-sys 0.52.0", +] + +[[package]] +name = "scoped-tls" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" + +[[package]] +name = "scopeguard" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" + +[[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 = "semver" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b97ed7a9823b74f99c7742f5336af7be5ecd3eeafcb1507d1fa93347b1d589b0" +dependencies = [ + "serde", +] + +[[package]] +name = "semver-parser" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + +[[package]] +name = "serde" +version = "1.0.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "870026e60fa08c69f064aa766c10f10b1d62db9ccd4d0abb206472bee0ce3b32" +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.196" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33c85360c95e7d137454dc81d9a4ed2b8efd8fbe19cee57357b32b9771fccb67" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "serde_json" +version = "1.0.113" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69801b70b1c3dac963ecb03a364ba0ceda9cf60c71cfe475e99864759c8b8a79" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "serve" +version = "0.0.1" +dependencies = [ + "anyhow", + "futures", + "hyper 0.14.28", + "serde", + "serde_json", + "tokio", + "tracing", + "tracing-subscriber", + "wasi-common", + "wasmtime", + "wasmtime-wasi", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest", +] + +[[package]] +name = "sharded-slab" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f40ca3c46823713e0d4209592e8d6e826aa57e928f09752619fc696c499637f6" +dependencies = [ + "lazy_static", +] + +[[package]] +name = "shellexpand" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ccc8076840c4da029af4f87e4e8daeb0fca6b87bbb02e10cb60b791450e11e4" +dependencies = [ + "dirs", +] + +[[package]] +name = "shlex" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "siphasher" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38b58827f4464d87d377d175e90bf58eb00fd8716ff0a62f80356b5e61555d0d" + +[[package]] +name = "slab" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f92a496fb766b417c996b9c5e57daf2f7ad3b0bebe1ccfca4856390e3d3bb67" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slice-group-by" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" + +[[package]] +name = "smallvec" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6ecd384b10a64542d77071bd64bd7b231f4ed5940fba55e98c3de13824cf3d7" + +[[package]] +name = "smartstring" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fb72c633efbaa2dd666986505016c32c3044395ceaf881518399d2f4127ee29" +dependencies = [ + "autocfg", + "static_assertions", + "version_check", +] + +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "sourcemap" +version = "6.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4cbf65ca7dc576cf50e21f8d0712d96d4fcfd797389744b7b222a85cdf5bd90" +dependencies = [ + "data-encoding", + "debugid", + "if_chain", + "rustc_version", + "serde", + "serde_json", + "unicode-id", + "url", +] + +[[package]] +name = "sptr" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9b39299b249ad65f3b7e96443bad61c02ca5cd3589f46cb6d610a0fd6c0d6a" + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "stacker" +version = "0.1.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c886bd4480155fd3ef527d45e9ac8dd7118a898a46530b7b94c3e21866259fce" +dependencies = [ + "cc", + "cfg-if", + "libc", + "psm", + "winapi", +] + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "string_enum" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b650ea2087d32854a0f20b837fc56ec987a1cb4f758c9757e1171ee9812da63" +dependencies = [ + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "swc_atoms" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d538eaaa6f085161d088a04cf0a3a5a52c5a7f2b3bd9b83f73f058b0ed357c0" +dependencies = [ + "hstr", + "once_cell", + "rustc-hash", + "serde", +] + +[[package]] +name = "swc_common" +version = "0.33.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3792c10fa5d3e93a705b31f13fdea4a6e68c3c20d4351e84ed1741b7864399cd" +dependencies = [ + "ast_node", + "better_scoped_tls", + "cfg-if", + "either", + "from_variant", + "new_debug_unreachable", + "num-bigint", + "once_cell", + "rustc-hash", + "serde", + "siphasher", + "sourcemap", + "swc_atoms", + "swc_eq_ignore_macros", + "swc_visit", + "tracing", + "unicode-width", + "url", +] + +[[package]] +name = "swc_core" +version = "0.87.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b3e389aed344d9d738f7e0901a1778a8402f10e459556c6d3a7a5b4501bf4cf" +dependencies = [ + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_transforms_base", + "vergen", +] + +[[package]] +name = "swc_ecma_ast" +version = "0.110.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79401a45da704f4fb2552c5bf86ee2198e8636b121cb81f8036848a300edd53b" +dependencies = [ + "bitflags 2.4.2", + "is-macro", + "num-bigint", + "phf", + "scoped-tls", + "string_enum", + "swc_atoms", + "swc_common", + "unicode-id", +] + +[[package]] +name = "swc_ecma_parser" +version = "0.141.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4d17401dd95048a6a62b777d533c0999dabdd531ef9d667e22f8ae2a2a0d294" +dependencies = [ + "either", + "new_debug_unreachable", + "num-bigint", + "num-traits", + "phf", + "serde", + "smallvec", + "smartstring", + "stacker", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "tracing", + "typed-arena", +] + +[[package]] +name = "swc_ecma_transforms_base" +version = "0.135.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6f0efec63cc56f3f2b93d1367d16e684d1c6f4a6cb85436db2c91448867df2b" +dependencies = [ + "better_scoped_tls", + "bitflags 2.4.2", + "indexmap 2.2.2", + "once_cell", + "phf", + "rustc-hash", + "serde", + "smallvec", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_parser", + "swc_ecma_utils", + "swc_ecma_visit", + "tracing", +] + +[[package]] +name = "swc_ecma_utils" +version = "0.125.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7cead1083e46b0f072a82938f16d366014468f7510350957765bb4d013496890" +dependencies = [ + "indexmap 2.2.2", + "num_cpus", + "once_cell", + "rustc-hash", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_ecma_visit", + "tracing", + "unicode-id", +] + +[[package]] +name = "swc_ecma_visit" +version = "0.96.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d0100c383fb08b6f34911ab6f925950416a5d14404c1cd520d59fb8dfbb3bf" +dependencies = [ + "num-bigint", + "swc_atoms", + "swc_common", + "swc_ecma_ast", + "swc_visit", + "tracing", +] + +[[package]] +name = "swc_eq_ignore_macros" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "695a1d8b461033d32429b5befbf0ad4d7a2c4d6ba9cd5ba4e0645c615839e8e4" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "swc_macros_common" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50176cfc1cbc8bb22f41c6fe9d1ec53fbe057001219b5954961b8ad0f336fce9" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "swc_visit" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b27078d8571abe23aa52ef608dd1df89096a37d867cf691cbb4f4c392322b7c9" +dependencies = [ + "either", + "swc_visit_macros", +] + +[[package]] +name = "swc_visit_macros" +version = "0.5.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa8bb05975506741555ea4d10c3a3bdb0e2357cd58e1a4a4332b8ebb4b44c34d" +dependencies = [ + "Inflector", + "pmutil", + "proc-macro2", + "quote", + "swc_macros_common", + "syn 2.0.48", +] + +[[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.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "system-interface" +version = "0.26.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0682e006dd35771e392a6623ac180999a9a854b1d4a6c12fb2e804941c2b1f58" +dependencies = [ + "bitflags 2.4.2", + "cap-fs-ext", + "cap-std", + "fd-lock", + "io-lifetimes", + "rustix", + "windows-sys 0.52.0", + "winx", +] + +[[package]] +name = "target-lexicon" +version = "0.12.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "69758bda2e78f098e4ccb393021a0963bb3442eac05f135c30f61b7370bbafae" + +[[package]] +name = "tempfile" +version = "3.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "01ce4141aa927a6d1bd34a041795abd0db1cccba5d5f24b009f694bdf3a1f3fa" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall", + "rustix", + "windows-sys 0.52.0", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "thiserror" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde", + "serde_json", +] + +[[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.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931" +dependencies = [ + "backtrace", + "bytes", + "libc", + "mio", + "num_cpus", + "parking_lot", + "pin-project-lite", + "signal-hook-registry", + "socket2", + "tokio-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-macros" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[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 = "tokio-util" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5419f34732d9eb6ee4c3578b7989078579b7f039cbbb9ca2c4da015749371e15" +dependencies = [ + "bytes", + "futures-core", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "pin-project", + "pin-project-lite", + "tokio", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3523ab5a71916ccf420eebdf5521fcef02141234bbc0b8a49f2fdc4544364ef" +dependencies = [ + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.27" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "tracing-core" +version = "0.1.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06d3da6113f116aaee68e4d601191614c9053067f9ab7f6edbcb161237daa54" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-log" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee855f1f400bd0e5c02d150ae5de3840039a3f54b025156404e34c23c03f47c3" +dependencies = [ + "log", + "once_cell", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0f048c97dbd9faa9b7df56362b8ebcaa52adb06b498c050d2f4e32f90a7a8b" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "sharded-slab", + "smallvec", + "thread_local", + "tracing", + "tracing-core", + "tracing-log", +] + +[[package]] +name = "try-lock" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e421abadd41a4225275504ea4d6566923418b7f05506fbc9c0fe86ba7396114b" + +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-bidi" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08f95100a766bf4f8f28f90d77e0a5461bbdb219042e7679bebe79004fed8d75" + +[[package]] +name = "unicode-id" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1b6def86329695390197b82c1e244a54a131ceb66c996f2088a3876e2ae083f" + +[[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-width" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "url" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31e6302e3bb753d46e83516cae55ae196fc0c309407cf11ab35cc51a4c2a4633" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "uuid" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f00cc9702ca12d3c81455259621e676d0f7251cec66a21e98fe2e9a37db93b2a" +dependencies = [ + "getrandom", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "vergen" +version = "8.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e27d6bdd219887a9eadd19e1c34f32e47fa332301184935c6d9bca26f3cca525" +dependencies = [ + "anyhow", + "cargo_metadata", + "regex", + "rustversion", +] + +[[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 = "walrus" +version = "0.20.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c03529cd0c4400a2449f640d2f27cd1b48c3065226d15e26d98e4429ab0adb7" +dependencies = [ + "anyhow", + "gimli 0.26.2", + "id-arena", + "leb128", + "log", + "walrus-macro", + "wasm-encoder 0.29.0", + "wasmparser 0.80.2", +] + +[[package]] +name = "walrus-macro" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0a6e5bd22c71e77d60140b0bd5be56155a37e5bd14e24f5f87298040d0cc40d7" +dependencies = [ + "heck 0.3.3", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[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 = "wasi-cap-std-sync" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "154528979a211aa28d969846e883df75705809ed9bcc70aba61460683ea7355b" +dependencies = [ + "anyhow", + "async-trait", + "cap-fs-ext", + "cap-rand", + "cap-std", + "cap-time-ext", + "fs-set-times", + "io-extras", + "io-lifetimes", + "once_cell", + "rustix", + "system-interface", + "tracing", + "wasi-common", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasi-common" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d888b611fee7d273dd057dc009d2dd3132736f36710ffd65657ac83628d1e3b" +dependencies = [ + "anyhow", + "bitflags 2.4.2", + "cap-rand", + "cap-std", + "io-extras", + "log", + "rustix", + "thiserror", + "tracing", + "wasmtime", + "wiggle", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasm-bindgen" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1223296a201415c7fad14792dbefaace9bd52b62d33453ade1c5b5f07555406" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcdc935b63408d58a32f8cc9738a0bffd8f05cc7c002086c6ef20b7312ad9dcd" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c238561b2d428924c49815533a8b9121c664599558a5d9ec51f8a1740a999" +dependencies = [ + "quote", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bae1abb6806dc1ad9e560ed242107c0f6c84335f1749dd4e8ddb012ebd5e25a7" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.90" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d91413b1c31d7539ba5ef2451af3f0b833a005eb27a631cec32bc0635a8602b" + +[[package]] +name = "wasm-encoder" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18c41dbd92eaebf3612a39be316540b8377c871cb9bde6b064af962984912881" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2f8e9778e04cbf44f58acc301372577375a666b966c50b03ef46144f80436a8" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.38.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad2b51884de9c7f4fe2fd1043fccb8dcad4b1e29558146ee57a144d15779f3f" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasm-encoder" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e09bca7d6388637d27fb5edbeab11f56bfabcef8743c55ae34370e1e5030a071" +dependencies = [ + "leb128", +] + +[[package]] +name = "wasmparser" +version = "0.80.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449167e2832691a1bff24cde28d2804e90e09586a448c8e76984792c44334a6b" + +[[package]] +name = "wasmparser" +version = "0.106.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d014e33793cab91655fa6349b0bc974984de106b2e0f6b0dfe6f6594b260624d" +dependencies = [ + "indexmap 1.9.3", + "url", +] + +[[package]] +name = "wasmparser" +version = "0.118.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ee9723b928e735d53000dec9eae7b07a60e490c85ab54abb66659fc61bfcd9" +dependencies = [ + "indexmap 2.2.2", + "semver 1.0.21", +] + +[[package]] +name = "wasmparser" +version = "0.121.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "953cf6a7606ab31382cb1caa5ae403e77ba70c7f8e12eeda167e7040d42bfda8" +dependencies = [ + "bitflags 2.4.2", + "indexmap 2.2.2", + "semver 1.0.21", +] + +[[package]] +name = "wasmprinter" +version = "0.2.78" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e32c13c59fdc64d3f6998a1d52eb1d362b6904a88b754190ccb85661ad577a" +dependencies = [ + "anyhow", + "wasmparser 0.121.0", +] + +[[package]] +name = "wasmtime" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e539fded2495422ea3c4dfa7beeddba45904eece182cf315294009e1a323bf" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bumpalo", + "cfg-if", + "encoding_rs", + "fxprof-processed-profile", + "indexmap 2.2.2", + "libc", + "log", + "object", + "once_cell", + "paste", + "rayon", + "serde", + "serde_derive", + "serde_json", + "target-lexicon", + "wasm-encoder 0.38.1", + "wasmparser 0.118.1", + "wasmtime-cache", + "wasmtime-component-macro", + "wasmtime-component-util", + "wasmtime-cranelift", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit", + "wasmtime-runtime", + "wasmtime-winch", + "wat", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-asm-macros" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "660ba9143e15a2acd921820df221b73aee256bd3ca2d208d73d8adc9587ccbb9" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "wasmtime-cache" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3ce373743892002f9391c6741ef0cb0335b55ec899d874f311222b7e36f4594" +dependencies = [ + "anyhow", + "base64", + "bincode", + "directories-next", + "log", + "rustix", + "serde", + "serde_derive", + "sha2", + "toml", + "windows-sys 0.48.0", + "zstd", +] + +[[package]] +name = "wasmtime-component-macro" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12ef32643324e564e1c359e9044daa06cbf90d7e2d6c99a738d17a12959f01a5" +dependencies = [ + "anyhow", + "proc-macro2", + "quote", + "syn 2.0.48", + "wasmtime-component-util", + "wasmtime-wit-bindgen", + "wit-parser", +] + +[[package]] +name = "wasmtime-component-util" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c87d06c18d21a4818f354c00a85f4ebc62b2270961cd022968452b0e4dbed9d" + +[[package]] +name = "wasmtime-cranelift" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d648c8b4064a7911093b02237cd5569f71ca171d3a0a486bf80600b19e1cba2" +dependencies = [ + "anyhow", + "cfg-if", + "cranelift-codegen", + "cranelift-control", + "cranelift-entity", + "cranelift-frontend", + "cranelift-native", + "cranelift-wasm", + "gimli 0.28.1", + "log", + "object", + "target-lexicon", + "thiserror", + "wasmparser 0.118.1", + "wasmtime-cranelift-shared", + "wasmtime-environ", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-cranelift-shared" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "290a89027688782da8ff60b12bb95695494b1874e0d0ba2ba387d23dace6d70c" +dependencies = [ + "anyhow", + "cranelift-codegen", + "cranelift-control", + "cranelift-native", + "gimli 0.28.1", + "object", + "target-lexicon", + "wasmtime-environ", +] + +[[package]] +name = "wasmtime-environ" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61eb64fb3e0da883e2df4a13a81d6282e072336e6cb6295021d0f7ab2e352754" +dependencies = [ + "anyhow", + "cranelift-entity", + "gimli 0.28.1", + "indexmap 2.2.2", + "log", + "object", + "serde", + "serde_derive", + "target-lexicon", + "thiserror", + "wasm-encoder 0.38.1", + "wasmparser 0.118.1", + "wasmprinter", + "wasmtime-component-util", + "wasmtime-types", +] + +[[package]] +name = "wasmtime-fiber" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40ecf1d3a838b0956b71ad3f8cb80069a228339775bf02dd35d86a5a68bbe443" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "rustix", + "wasmtime-asm-macros", + "wasmtime-versioned-export-macros", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f485336add49267d8859e8f8084d2d4b9a4b1564496b6f30ba5b168d50c10ceb" +dependencies = [ + "addr2line", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.28.1", + "ittapi", + "log", + "object", + "rustc-demangle", + "rustix", + "serde", + "serde_derive", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "65e119affec40edb2fab9044f188759a00c2df9c3017278d047012a2de1efb4f" +dependencies = [ + "object", + "once_cell", + "rustix", + "wasmtime-versioned-export-macros", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b6d197fcc34ad32ed440e1f9552fd57d1f377d9699d31dee1b5b457322c1f8a" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794b2bb19b99ef8322ff0dd9fe1ba7e19c41036dfb260b3f99ecce128c42ff92" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "encoding_rs", + "indexmap 2.2.2", + "libc", + "log", + "mach", + "memfd", + "memoffset", + "paste", + "psm", + "rustix", + "sptr", + "wasm-encoder 0.38.1", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-fiber", + "wasmtime-jit-debug", + "wasmtime-versioned-export-macros", + "wasmtime-wmemcheck", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-types" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d995db8bb56f2cd8d2dc0ed5ffab94ffb435283b0fe6747f80f7aab40b2d06a1" +dependencies = [ + "cranelift-entity", + "serde", + "serde_derive", + "thiserror", + "wasmparser 0.118.1", +] + +[[package]] +name = "wasmtime-versioned-export-macros" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55c5565959287c21dd0f4277ae3518dd2ae62679f655ee2dbc4396e19d210db" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "wasmtime-wasi" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccd8370078149d49a3a47e93741553fd79b700421464b6a27ca32718192ab130" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.4.2", + "bytes", + "cap-fs-ext", + "cap-net-ext", + "cap-rand", + "cap-std", + "cap-time-ext", + "fs-set-times", + "futures", + "io-extras", + "io-lifetimes", + "libc", + "log", + "once_cell", + "rustix", + "system-interface", + "thiserror", + "tokio", + "tracing", + "url", + "wasi-cap-std-sync", + "wasi-common", + "wasmtime", + "wiggle", + "windows-sys 0.48.0", +] + +[[package]] +name = "wasmtime-winch" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c6f945ff9bad96e0a69973d74f193c19f627c8adbf250e7cb73ae7564b6cc8a" +dependencies = [ + "anyhow", + "cranelift-codegen", + "gimli 0.28.1", + "object", + "target-lexicon", + "wasmparser 0.118.1", + "wasmtime-cranelift-shared", + "wasmtime-environ", + "winch-codegen", +] + +[[package]] +name = "wasmtime-wit-bindgen" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f328b2d4a690270324756e886ed5be3a4da4c00be0eea48253f4595ad068062b" +dependencies = [ + "anyhow", + "heck 0.4.1", + "indexmap 2.2.2", + "wit-parser", +] + +[[package]] +name = "wasmtime-wmemcheck" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67761d8f8c0b3c13a5d34356274b10a40baba67fe9cfabbfc379a8b414e45de2" + +[[package]] +name = "wast" +version = "35.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ef140f1b49946586078353a453a1d28ba90adfc54dde75710bc1931de204d68" +dependencies = [ + "leb128", +] + +[[package]] +name = "wast" +version = "70.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a3d5061300042ff5065123dae1e27d00c03f567d34a2937c8472255148a216dc" +dependencies = [ + "bumpalo", + "leb128", + "memchr", + "unicode-width", + "wasm-encoder 0.41.0", +] + +[[package]] +name = "wat" +version = "1.0.85" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "afd7357b6cc46d46a2509c43dcb1dd4131dafbf4e75562d87017b5a05ffad2d6" +dependencies = [ + "wast 70.0.2", +] + +[[package]] +name = "web-sys" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58cd2333b6e0be7a39605f0e255892fd7418a682d8da8fe042fe25128794d2ed" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[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 = "wiggle" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0afb26cd3269289bb314a361ff0a6685e5ce793b62181a9fe3f81ace15051697" +dependencies = [ + "anyhow", + "async-trait", + "bitflags 2.4.2", + "thiserror", + "tracing", + "wasmtime", + "wiggle-macro", +] + +[[package]] +name = "wiggle-generate" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef2868fed7584d2b552fa317104858ded80021d23b073b2d682d3c932a027bd" +dependencies = [ + "anyhow", + "heck 0.4.1", + "proc-macro2", + "quote", + "shellexpand", + "syn 2.0.48", + "witx", +] + +[[package]] +name = "wiggle-macro" +version = "16.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31ae1ec11a17ea481539ee9a5719a278c9790d974060fbf71db4b2c05378780b" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", + "wiggle-generate", +] + +[[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 = "winch-codegen" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58e58c236a6abdd9ab454552b4f29e16cfa837a86897c1503313b2e62e7609ec" +dependencies = [ + "anyhow", + "cranelift-codegen", + "gimli 0.28.1", + "regalloc2", + "smallvec", + "target-lexicon", + "wasmparser 0.118.1", + "wasmtime-environ", +] + +[[package]] +name = "windows-core" +version = "0.52.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "33ab640c8d7e35bf8ba19b884ba838ceb4fba93a4e8c65a9059d08afcfc683d9" +dependencies = [ + "windows-targets 0.52.0", +] + +[[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.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.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.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.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.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.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.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.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 = "winx" +version = "0.36.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9643b83820c0cd246ecabe5fa454dd04ba4fa67996369466d0747472d337346" +dependencies = [ + "bitflags 2.4.2", + "windows-sys 0.52.0", +] + +[[package]] +name = "wit-parser" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df4913a2219096373fd6512adead1fb77ecdaa59d7fc517972a7d30b12f625be" +dependencies = [ + "anyhow", + "id-arena", + "indexmap 2.2.2", + "log", + "semver 1.0.21", + "serde", + "serde_derive", + "serde_json", + "unicode-xid", +] + +[[package]] +name = "witx" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" +dependencies = [ + "anyhow", + "log", + "thiserror", + "wast 35.0.2", +] + +[[package]] +name = "wizer" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f1f0143257faa028962616998d9bcf456f2b92b41d923fb630d0c62250f1fc" +dependencies = [ + "anyhow", + "cap-std", + "log", + "rayon", + "wasi-cap-std-sync", + "wasm-encoder 0.30.0", + "wasmparser 0.106.0", + "wasmtime", + "wasmtime-wasi", +] + +[[package]] +name = "zerocopy" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74d4d3961e53fa4c9a25a8637fc2bfaf2595b3d3ae34875568a5cf64787716be" +dependencies = [ + "zerocopy-derive", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "zstd" +version = "0.11.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20cc960326ece64f010d2d2107537f26dc589a6573a316bd5b1dba685fa5fde4" +dependencies = [ + "zstd-safe", +] + +[[package]] +name = "zstd-safe" +version = "5.0.2+zstd.1.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2a5585e04f9eea4b2a3d1eca508c4dee9592a89ef6f450c11719da0726f4db" +dependencies = [ + "libc", + "zstd-sys", +] + +[[package]] +name = "zstd-sys" +version = "2.0.9+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e16efa8a874a0481a574084d34cc26fdb3b99627480f785888deb6386506656" +dependencies = [ + "cc", + "pkg-config", +] diff --git a/JS/wasm/Cargo.toml b/JS/wasm/Cargo.toml new file mode 100644 index 000000000..b0b56e72d --- /dev/null +++ b/JS/wasm/Cargo.toml @@ -0,0 +1,20 @@ +[workspace] +members = [ "crates/apis", "crates/arakoo-core", "crates/cli","crates/serve"] +resolver = "2" + +[workspace.package] +edition = "2021" +version = "0.0.1" + +[workspace.dependencies] +wizer = "4.0.0" +wasmtime = "16" +wasmtime-wasi = "16" +wasi-common = "16" +javy = { version = "2.2.0-alpha.1" } +anyhow = "1.0.79" +once_cell = "1.19.0" + +[profile.release] +lto = true +opt-level = 3 diff --git a/JS/wasm/crates/apis/Cargo.toml b/JS/wasm/crates/apis/Cargo.toml new file mode 100644 index 000000000..b31e6a2e6 --- /dev/null +++ b/JS/wasm/crates/apis/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "apis" +edition.workspace = true +version.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[features] +console = [] +random = ["dep:fastrand"] +stream_io = [] +text_encoding = [] + +[dependencies] +anyhow = { workspace = true } +fastrand = { version = "2.0.1", optional = true } +javy = {workspace = true} \ No newline at end of file diff --git a/JS/wasm/crates/apis/src/api_config.rs b/JS/wasm/crates/apis/src/api_config.rs new file mode 100644 index 000000000..0b0955adc --- /dev/null +++ b/JS/wasm/crates/apis/src/api_config.rs @@ -0,0 +1,12 @@ +/// A configuration for APIs added in this crate. +/// +/// Example usage: +/// ``` +/// # use javy_apis::APIConfig; +/// let api_config = APIConfig::default(); +/// ``` +#[derive(Debug, Default)] +pub struct APIConfig { + #[cfg(feature = "console")] + pub(crate) console: crate::console::ConsoleConfig, +} diff --git a/JS/wasm/crates/apis/src/console/config.rs b/JS/wasm/crates/apis/src/console/config.rs new file mode 100644 index 000000000..3eb2152fb --- /dev/null +++ b/JS/wasm/crates/apis/src/console/config.rs @@ -0,0 +1,51 @@ +use std::io::{self, Write}; + +use crate::APIConfig; + +/// A selection of possible destination streams for `console.log` and +/// `console.error`. +#[derive(Debug)] +pub enum LogStream { + /// The standard output stream. + StdOut, + /// The standard error stream. + StdErr, +} + +impl LogStream { + pub(super) fn to_stream(&self) -> Box { + match self { + Self::StdErr => Box::new(io::stderr()), + Self::StdOut => Box::new(io::stdout()), + } + } +} + +#[derive(Debug)] +pub(crate) struct ConsoleConfig { + pub(super) log_stream: LogStream, + pub(super) error_stream: LogStream, +} + +impl Default for ConsoleConfig { + fn default() -> Self { + Self { + log_stream: LogStream::StdOut, + error_stream: LogStream::StdErr, + } + } +} + +impl APIConfig { + /// Sets the destination stream for `console.log`. + pub fn log_stream(&mut self, stream: LogStream) -> &mut Self { + self.console.log_stream = stream; + self + } + + /// Sets the destination stream for `console.error`. + pub fn error_stream(&mut self, stream: LogStream) -> &mut Self { + self.console.error_stream = stream; + self + } +} diff --git a/JS/wasm/crates/apis/src/console/mod.rs b/JS/wasm/crates/apis/src/console/mod.rs new file mode 100644 index 000000000..eb75d3427 --- /dev/null +++ b/JS/wasm/crates/apis/src/console/mod.rs @@ -0,0 +1,187 @@ +use std::io::Write; + +use anyhow::Result; +use javy::{ + quickjs::{JSContextRef, JSValue, JSValueRef}, + Runtime, +}; + +use crate::{APIConfig, JSApiSet}; + +pub(super) use config::ConsoleConfig; +pub use config::LogStream; + +mod config; + +pub(super) struct Console {} + +impl Console { + pub(super) fn new() -> Self { + Console {} + } +} + +impl JSApiSet for Console { + fn register(&self, runtime: &Runtime, config: &APIConfig) -> Result<()> { + register_console( + runtime.context(), + config.console.log_stream.to_stream(), + config.console.error_stream.to_stream(), + ) + } +} + +fn register_console(context: &JSContextRef, log_stream: T, error_stream: U) -> Result<()> +where + T: Write + 'static, + U: Write + 'static, +{ + let console_log_callback = context.wrap_callback(console_log_to(log_stream))?; + let console_error_callback = context.wrap_callback(console_log_to(error_stream))?; + let console_object = context.object_value()?; + console_object.set_property("log", console_log_callback)?; + console_object.set_property("error", console_error_callback)?; + context + .global_object()? + .set_property("console", console_object)?; + Ok(()) +} + +fn console_log_to( + mut stream: T, +) -> impl FnMut(&JSContextRef, JSValueRef, &[JSValueRef]) -> Result +where + T: Write + 'static, +{ + move |_ctx: &JSContextRef, _this: JSValueRef, args: &[JSValueRef]| { + // Write full string to in-memory destination before writing to stream since each write call to the stream + // will invoke a hostcall. + let mut log_line = String::new(); + for (i, arg) in args.iter().enumerate() { + if i != 0 { + log_line.push(' '); + } + let line = arg.to_string(); + log_line.push_str(&line); + } + + writeln!(stream, "{log_line}")?; + + Ok(JSValue::Undefined) + } +} + +#[cfg(test)] +mod tests { + use anyhow::Result; + use javy::Runtime; + use std::cell::RefCell; + use std::rc::Rc; + use std::{cmp, io}; + + use crate::console::register_console; + use crate::{APIConfig, JSApiSet}; + + use super::Console; + + #[test] + fn test_register() -> Result<()> { + let runtime = Runtime::default(); + Console::new().register(&runtime, &APIConfig::default())?; + let console = runtime.context().global_object()?.get_property("console")?; + assert!(console.get_property("log").is_ok()); + assert!(console.get_property("error").is_ok()); + Ok(()) + } + + #[test] + fn test_console_log() -> Result<()> { + let mut stream = SharedStream::default(); + + let runtime = Runtime::default(); + let ctx = runtime.context(); + register_console(ctx, stream.clone(), stream.clone())?; + + ctx.eval_global("main", "console.log(\"hello world\");")?; + assert_eq!(b"hello world\n", stream.buffer.borrow().as_slice()); + + stream.clear(); + + ctx.eval_global("main", "console.log(\"bonjour\", \"le\", \"monde\")")?; + assert_eq!(b"bonjour le monde\n", stream.buffer.borrow().as_slice()); + + stream.clear(); + + ctx.eval_global( + "main", + "console.log(2.3, true, { foo: 'bar' }, null, undefined)", + )?; + assert_eq!( + b"2.3 true [object Object] null undefined\n", + stream.buffer.borrow().as_slice() + ); + Ok(()) + } + + #[test] + fn test_console_error() -> Result<()> { + let mut stream = SharedStream::default(); + + let runtime = Runtime::default(); + let ctx = runtime.context(); + register_console(ctx, stream.clone(), stream.clone())?; + + ctx.eval_global("main", "console.error(\"hello world\");")?; + assert_eq!(b"hello world\n", stream.buffer.borrow().as_slice()); + + stream.clear(); + + ctx.eval_global("main", "console.error(\"bonjour\", \"le\", \"monde\")")?; + assert_eq!(b"bonjour le monde\n", stream.buffer.borrow().as_slice()); + + stream.clear(); + + ctx.eval_global( + "main", + "console.error(2.3, true, { foo: 'bar' }, null, undefined)", + )?; + assert_eq!( + b"2.3 true [object Object] null undefined\n", + stream.buffer.borrow().as_slice() + ); + Ok(()) + } + + #[derive(Clone)] + struct SharedStream { + buffer: Rc>>, + capacity: usize, + } + + impl Default for SharedStream { + fn default() -> Self { + Self { + buffer: Default::default(), + capacity: usize::MAX, + } + } + } + + impl SharedStream { + fn clear(&mut self) { + (*self.buffer).borrow_mut().clear(); + } + } + + impl io::Write for SharedStream { + fn write(&mut self, buf: &[u8]) -> io::Result { + let available_capacity = self.capacity - (*self.buffer).borrow().len(); + let leftover = cmp::min(available_capacity, buf.len()); + (*self.buffer).borrow_mut().write(&buf[..leftover]) + } + + fn flush(&mut self) -> io::Result<()> { + (*self.buffer).borrow_mut().flush() + } + } +} diff --git a/JS/wasm/crates/apis/src/http/mod.rs b/JS/wasm/crates/apis/src/http/mod.rs new file mode 100644 index 000000000..37a0b2e47 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/mod.rs @@ -0,0 +1,13 @@ +use anyhow::Result; + +use crate::JSApiSet; + +pub(super) struct Http; + +impl JSApiSet for Http { + fn register(&self, runtime: &javy::Runtime, _config: &crate::APIConfig) -> Result<()> { + let context = runtime.context(); + context.eval_global("http.js", include_str!("shims/dist/index.js"))?; + Ok(()) + } +} diff --git a/JS/wasm/crates/apis/src/http/shims/.gitignore b/JS/wasm/crates/apis/src/http/shims/.gitignore new file mode 100644 index 000000000..1eae0cf67 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/.gitignore @@ -0,0 +1,2 @@ +dist/ +node_modules/ diff --git a/JS/wasm/crates/apis/src/http/shims/build.js b/JS/wasm/crates/apis/src/http/shims/build.js new file mode 100644 index 000000000..6e463e218 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/build.js @@ -0,0 +1,15 @@ +import { build } from "esbuild"; + +// Build for index.js +build({ + entryPoints: ["index.js"], + bundle: true, + outfile: "dist/index.js", + format: "esm", + target: "esnext", + platform: "node", + treeShaking: false, +}).catch((error) => { + console.error(error); + process.exit(1); +}); diff --git a/JS/wasm/crates/apis/src/http/shims/index.js b/JS/wasm/crates/apis/src/http/shims/index.js new file mode 100644 index 000000000..c0e54bd58 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/index.js @@ -0,0 +1,301 @@ +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; + +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; + } +} +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/apis/src/http/shims/package.json b/JS/wasm/crates/apis/src/http/shims/package.json new file mode 100644 index 000000000..afb62cc72 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/package.json @@ -0,0 +1,18 @@ +{ + "name": "shims", + "version": "1.0.0", + "description": "Shims for http", + "main": "index.js", + "type": "module", + "license": "MIT", + "scripts": { + "build": "node build.js" + }, + "dependencies": { + "@sinonjs/text-encoding": "^0.7.2", + "esbuild": "^0.20.0", + "http-status": "^1.7.3", + "query-string": "^8.1.0", + "url-parse": "^1.5.10" + } +} diff --git a/JS/wasm/crates/apis/src/http/shims/yarn.lock b/JS/wasm/crates/apis/src/http/shims/yarn.lock new file mode 100644 index 000000000..f70d7a66a --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/yarn.lock @@ -0,0 +1,199 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@esbuild/aix-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz#509621cca4e67caf0d18561a0c56f8b70237472f" + integrity sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw== + +"@esbuild/android-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" + integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== + +"@esbuild/android-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.0.tgz#1397a2c54c476c4799f9b9073550ede496c94ba5" + integrity sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g== + +"@esbuild/android-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.0.tgz#2b615abefb50dc0a70ac313971102f4ce2fdb3ca" + integrity sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ== + +"@esbuild/darwin-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz#5c122ed799eb0c35b9d571097f77254964c276a2" + integrity sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ== + +"@esbuild/darwin-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz#9561d277002ba8caf1524f209de2b22e93d170c1" + integrity sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw== + +"@esbuild/freebsd-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz#84178986a3138e8500d17cc380044868176dd821" + integrity sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ== + +"@esbuild/freebsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz#3f9ce53344af2f08d178551cd475629147324a83" + integrity sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ== + +"@esbuild/linux-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz#24efa685515689df4ecbc13031fa0a9dda910a11" + integrity sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw== + +"@esbuild/linux-arm@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz#6b586a488e02e9b073a75a957f2952b3b6e87b4c" + integrity sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg== + +"@esbuild/linux-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" + integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== + +"@esbuild/linux-loong64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz#1922f571f4cae1958e3ad29439c563f7d4fd9037" + integrity sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw== + +"@esbuild/linux-mips64el@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz#7ca1bd9df3f874d18dbf46af009aebdb881188fe" + integrity sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ== + +"@esbuild/linux-ppc64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz#8f95baf05f9486343bceeb683703875d698708a4" + integrity sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw== + +"@esbuild/linux-riscv64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz#ca63b921d5fe315e28610deb0c195e79b1a262ca" + integrity sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA== + +"@esbuild/linux-s390x@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz#cb3d069f47dc202f785c997175f2307531371ef8" + integrity sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ== + +"@esbuild/linux-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz#ac617e0dc14e9758d3d7efd70288c14122557dc7" + integrity sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg== + +"@esbuild/netbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz#6cc778567f1513da6e08060e0aeb41f82eb0f53c" + integrity sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ== + +"@esbuild/openbsd-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz#76848bcf76b4372574fb4d06cd0ed1fb29ec0fbe" + integrity sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA== + +"@esbuild/sunos-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz#ea4cd0639bf294ad51bc08ffbb2dac297e9b4706" + integrity sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g== + +"@esbuild/win32-arm64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz#a5c171e4a7f7e4e8be0e9947a65812c1535a7cf0" + integrity sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ== + +"@esbuild/win32-ia32@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz#f8ac5650c412d33ea62d7551e0caf82da52b7f85" + integrity sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg== + +"@esbuild/win32-x64@0.20.0": + version "0.20.0" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz#2efddf82828aac85e64cef62482af61c29561bee" + integrity sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg== + +"@sinonjs/text-encoding@^0.7.2": + version "0.7.2" + resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== + +decode-uri-component@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.4.1.tgz#2ac4859663c704be22bf7db760a1494a49ab2cc5" + integrity sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ== + +esbuild@^0.20.0: + version "0.20.0" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.0.tgz#a7170b63447286cd2ff1f01579f09970e6965da4" + integrity sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.20.0" + "@esbuild/android-arm" "0.20.0" + "@esbuild/android-arm64" "0.20.0" + "@esbuild/android-x64" "0.20.0" + "@esbuild/darwin-arm64" "0.20.0" + "@esbuild/darwin-x64" "0.20.0" + "@esbuild/freebsd-arm64" "0.20.0" + "@esbuild/freebsd-x64" "0.20.0" + "@esbuild/linux-arm" "0.20.0" + "@esbuild/linux-arm64" "0.20.0" + "@esbuild/linux-ia32" "0.20.0" + "@esbuild/linux-loong64" "0.20.0" + "@esbuild/linux-mips64el" "0.20.0" + "@esbuild/linux-ppc64" "0.20.0" + "@esbuild/linux-riscv64" "0.20.0" + "@esbuild/linux-s390x" "0.20.0" + "@esbuild/linux-x64" "0.20.0" + "@esbuild/netbsd-x64" "0.20.0" + "@esbuild/openbsd-x64" "0.20.0" + "@esbuild/sunos-x64" "0.20.0" + "@esbuild/win32-arm64" "0.20.0" + "@esbuild/win32-ia32" "0.20.0" + "@esbuild/win32-x64" "0.20.0" + +filter-obj@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-5.1.0.tgz#5bd89676000a713d7db2e197f660274428e524ed" + integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng== + +http-status@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.7.3.tgz#d6dcc3a5a3fb5b1bfcc6ad2b38af0b7258bc1459" + integrity sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ== + +query-string@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-8.1.0.tgz#e7f95367737219544cd360a11a4f4ca03836e115" + integrity sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw== + dependencies: + decode-uri-component "^0.4.1" + filter-obj "^5.1.0" + split-on-first "^3.0.0" + +querystringify@^2.1.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== + +split-on-first@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-3.0.0.tgz#f04959c9ea8101b9b0bbf35a61b9ebea784a23e7" + integrity sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA== + +url-parse@^1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" diff --git a/JS/wasm/crates/apis/src/lib.rs b/JS/wasm/crates/apis/src/lib.rs new file mode 100644 index 000000000..739a3b931 --- /dev/null +++ b/JS/wasm/crates/apis/src/lib.rs @@ -0,0 +1,92 @@ +//! JS APIs for Javy. +//! +//! This crate provides JS APIs you can add to Javy. +//! +//! Example usage: +//! ``` +//! # use anyhow::{anyhow, Error, Result}; +//! use javy::{quickjs::JSValue, Runtime}; +//! use javy_apis::RuntimeExt; +//! +//! let runtime = Runtime::new_with_defaults()?; +//! let context = runtime.context(); +//! context.global_object()?.set_property( +//! "print", +//! context.wrap_callback(move |_ctx, _this, args| { +//! let str = args +//! .first() +//! .ok_or(anyhow!("Need to pass an argument"))? +//! .to_string(); +//! println!("{str}"); +//! Ok(JSValue::Undefined) +//! })?, +//! )?; +//! context.eval_global("hello.js", "print('hello!');")?; +//! # Ok::<(), Error>(()) +//! ``` +//! +//! If you want to customize the runtime or the APIs, you can use the +//! [`Runtime::new_with_apis`] method instead to provide a [`javy::Config`] +//! for the underlying [`Runtime`] or an [`APIConfig`] for the APIs. +//! +//! ## Features +//! * `console` - Registers an implementation of the `console` API. +//! * `text_encoding` - Registers implementations of `TextEncoder` and `TextDecoder`. +//! * `random` - Overrides the implementation of `Math.random` to one that +//! seeds the RNG on first call to `Math.random`. This is helpful to enable +//! when using Wizer to snapshot a [`javy::Runtime`] so that the output of +//! `Math.random` relies on the WASI context used at runtime and not the +//! WASI context used when Wizening. Enabling this feature will increase the +//! size of the Wasm module that includes the Javy Runtime and will +//! introduce an additional hostcall invocation when `Math.random` is +//! invoked for the first time. +//! * `stream_io` - Registers implementations of `Javy.IO.readSync` and `Javy.IO.writeSync`. + +use anyhow::Result; +use javy::Runtime; + +pub use api_config::APIConfig; +#[cfg(feature = "console")] +pub use console::LogStream; +pub use runtime_ext::RuntimeExt; + +mod api_config; +#[cfg(feature = "console")] +mod console; +#[cfg(feature = "random")] +mod random; +mod runtime_ext; +#[cfg(feature = "stream_io")] +mod stream_io; +#[cfg(feature = "text_encoding")] +mod text_encoding; + +mod http; + +pub(crate) trait JSApiSet { + fn register(&self, runtime: &Runtime, config: &APIConfig) -> Result<()>; +} + +/// Adds enabled JS APIs to the provided [`Runtime`]. +/// +/// ## Example +/// ``` +/// # use anyhow::Error; +/// # use javy::Runtime; +/// # use javy_apis::APIConfig; +/// let runtime = Runtime::default(); +/// javy_apis::add_to_runtime(&runtime, APIConfig::default())?; +/// # Ok::<(), Error>(()) +/// ``` +pub fn add_to_runtime(runtime: &Runtime, config: APIConfig) -> Result<()> { + #[cfg(feature = "console")] + console::Console::new().register(runtime, &config)?; + #[cfg(feature = "random")] + random::Random.register(runtime, &config)?; + #[cfg(feature = "stream_io")] + stream_io::StreamIO.register(runtime, &config)?; + #[cfg(feature = "text_encoding")] + text_encoding::TextEncoding.register(runtime, &config)?; + http::Http.register(runtime, &config)?; + Ok(()) +} diff --git a/JS/wasm/crates/apis/src/random/mod.rs b/JS/wasm/crates/apis/src/random/mod.rs new file mode 100644 index 000000000..e7bbb5708 --- /dev/null +++ b/JS/wasm/crates/apis/src/random/mod.rs @@ -0,0 +1,37 @@ +use anyhow::Result; +use javy::{quickjs::JSValue, Runtime}; + +use crate::{APIConfig, JSApiSet}; + +pub struct Random; + +impl JSApiSet for Random { + fn register(&self, runtime: &Runtime, _config: &APIConfig) -> Result<()> { + let ctx = runtime.context(); + ctx.global_object()?.get_property("Math")?.set_property( + "random", + // TODO figure out if we can lazily initialize the PRNG + ctx.wrap_callback(|_ctx, _this, _args| Ok(JSValue::Float(fastrand::f64())))?, + )?; + Ok(()) + } +} + +#[cfg(test)] +mod tests { + use crate::{random::Random, APIConfig, JSApiSet}; + use anyhow::Result; + use javy::Runtime; + + #[test] + fn test_random() -> Result<()> { + let runtime = Runtime::default(); + Random.register(&runtime, &APIConfig::default())?; + let ctx = runtime.context(); + ctx.eval_global("test.js", "result = Math.random()")?; + let result = ctx.global_object()?.get_property("result")?.as_f64()?; + assert!(result >= 0.0); + assert!(result < 1.0); + Ok(()) + } +} diff --git a/JS/wasm/crates/apis/src/runtime_ext.rs b/JS/wasm/crates/apis/src/runtime_ext.rs new file mode 100644 index 000000000..d64915741 --- /dev/null +++ b/JS/wasm/crates/apis/src/runtime_ext.rs @@ -0,0 +1,35 @@ +use anyhow::Result; +use javy::{Config, Runtime}; + +use crate::APIConfig; + +/// A extension trait for [`Runtime`] that creates a [`Runtime`] with APIs +/// provided in this crate. +/// +/// ## Example +/// ``` +/// # use anyhow::Error; +/// use javy::Runtime; +/// use javy_apis::RuntimeExt; +/// let runtime = Runtime::new_with_defaults()?; +/// # Ok::<(), Error>(()) +/// ``` +pub trait RuntimeExt { + /// Creates a [`Runtime`] configured by the provided [`Config`] with JS + /// APIs added configured according to the [`APIConfig`]. + fn new_with_apis(config: Config, api_config: APIConfig) -> Result; + /// Creates a [`Runtime`] with JS APIs added with a default configuration. + fn new_with_defaults() -> Result; +} + +impl RuntimeExt for Runtime { + fn new_with_apis(config: Config, api_config: APIConfig) -> Result { + let runtime = Runtime::new(config)?; + crate::add_to_runtime(&runtime, api_config)?; + Ok(runtime) + } + + fn new_with_defaults() -> Result { + Self::new_with_apis(Config::default(), APIConfig::default()) + } +} diff --git a/JS/wasm/crates/apis/src/stream_io/io.js b/JS/wasm/crates/apis/src/stream_io/io.js new file mode 100644 index 000000000..8777c80a4 --- /dev/null +++ b/JS/wasm/crates/apis/src/stream_io/io.js @@ -0,0 +1,31 @@ +(function () { + const __javy_io_readSync = globalThis.__javy_io_readSync; + const __javy_io_writeSync = globalThis.__javy_io_writeSync; + globalThis.Javy.IO = { + readSync(fd, data) { + if (!(data instanceof Uint8Array)) { + throw TypeError("Data needs to be an Uint8Array"); + } + return __javy_io_readSync( + fd, + data.buffer, + data.byteOffset, + data.byteLength + ); + }, + writeSync(fd, data) { + if (!(data instanceof Uint8Array)) { + throw TypeError("Data needs to be an Uint8Array"); + } + return __javy_io_writeSync( + fd, + data.buffer, + data.byteOffset, + data.byteLength + ); + }, + }; + + Reflect.deleteProperty(globalThis, "__javy_io_readSync"); + Reflect.deleteProperty(globalThis, "__javy_io_writeSync"); +})(); diff --git a/JS/wasm/crates/apis/src/stream_io/mod.rs b/JS/wasm/crates/apis/src/stream_io/mod.rs new file mode 100644 index 000000000..abdf12176 --- /dev/null +++ b/JS/wasm/crates/apis/src/stream_io/mod.rs @@ -0,0 +1,68 @@ +use anyhow::Result; +use std::io::{Read, Write}; + +use javy::Runtime; + +use crate::{APIConfig, JSApiSet}; + +pub(super) struct StreamIO; + +impl JSApiSet for StreamIO { + fn register(&self, runtime: &Runtime, _config: &APIConfig) -> Result<()> { + let context = runtime.context(); + let global = context.global_object()?; + + let mut javy_object = global.get_property("Javy")?; + if javy_object.is_undefined() { + javy_object = context.object_value()?; + global.set_property("Javy", javy_object)?; + } + + global.set_property( + "__javy_io_writeSync", + context.wrap_callback(|_, _this_arg, args| { + let [fd, data, offset, length, ..] = args else { + anyhow::bail!("Invalid number of parameters"); + }; + + let mut fd: Box = match fd.try_into()? { + 1 => Box::new(std::io::stdout()), + 2 => Box::new(std::io::stderr()), + _ => anyhow::bail!("Only stdout and stderr are supported"), + }; + let data: Vec = data.try_into()?; + let offset: usize = offset.try_into()?; + let length: usize = length.try_into()?; + let data = &data[offset..(offset + length)]; + let n = fd.write(data)?; + fd.flush()?; + Ok(n.into()) + })?, + )?; + + global.set_property( + "__javy_io_readSync", + context.wrap_callback(|_, _this_arg, args| { + let [fd, data, offset, length, ..] = args else { + anyhow::bail!("Invalid number of parameters"); + }; + let mut fd: Box = match fd.try_into()? { + 0 => Box::new(std::io::stdin()), + _ => anyhow::bail!("Only stdin is supported"), + }; + let offset: usize = offset.try_into()?; + let length: usize = length.try_into()?; + if !data.is_array_buffer() { + anyhow::bail!("Data needs to be an ArrayBuffer"); + } + let data = data.as_bytes_mut()?; + let data = &mut data[offset..(offset + length)]; + let n = fd.read(data)?; + Ok(n.into()) + })?, + )?; + + context.eval_global("io.js", include_str!("io.js"))?; + Ok(()) + } +} diff --git a/JS/wasm/crates/apis/src/text_encoding/mod.rs b/JS/wasm/crates/apis/src/text_encoding/mod.rs new file mode 100644 index 000000000..7d8007647 --- /dev/null +++ b/JS/wasm/crates/apis/src/text_encoding/mod.rs @@ -0,0 +1,102 @@ +use std::{borrow::Cow, str}; + +use anyhow::{anyhow, Result}; +use javy::{ + quickjs::{JSContextRef, JSError, JSValue, JSValueRef}, + Runtime, +}; + +use crate::{APIConfig, JSApiSet}; + +pub(super) struct TextEncoding; + +impl JSApiSet for TextEncoding { + fn register(&self, runtime: &Runtime, _config: &APIConfig) -> Result<()> { + let context = runtime.context(); + let global = context.global_object()?; + global.set_property( + "__javy_decodeUtf8BufferToString", + context.wrap_callback(decode_utf8_buffer_to_js_string())?, + )?; + global.set_property( + "__javy_encodeStringToUtf8Buffer", + context.wrap_callback(encode_js_string_to_utf8_buffer())?, + )?; + + context.eval_global("text-encoding.js", include_str!("./text-encoding.js"))?; + Ok(()) + } +} + +fn decode_utf8_buffer_to_js_string( +) -> impl FnMut(&JSContextRef, JSValueRef, &[JSValueRef]) -> anyhow::Result { + move |_ctx: &JSContextRef, _this: JSValueRef, args: &[JSValueRef]| { + if args.len() != 5 { + return Err(anyhow!("Expecting 5 arguments, received {}", args.len())); + } + + let buffer: Vec = args[0].try_into()?; + let byte_offset: usize = args[1].try_into()?; + let byte_length: usize = args[2].try_into()?; + let fatal: bool = args[3].try_into()?; + let ignore_bom: bool = args[4].try_into()?; + + let mut view = buffer + .get(byte_offset..(byte_offset + byte_length)) + .ok_or_else(|| { + anyhow!("Provided offset and length is not valid for provided buffer") + })?; + + if !ignore_bom { + view = match view { + // [0xEF, 0xBB, 0xBF] is the UTF-8 BOM which we want to strip + [0xEF, 0xBB, 0xBF, rest @ ..] => rest, + _ => view, + }; + } + + let str = + if fatal { + Cow::from(str::from_utf8(view).map_err(|_| { + JSError::Type("The encoded data was not valid utf-8".to_string()) + })?) + } else { + String::from_utf8_lossy(view) + }; + Ok(str.to_string().into()) + } +} + +fn encode_js_string_to_utf8_buffer( +) -> impl FnMut(&JSContextRef, JSValueRef, &[JSValueRef]) -> anyhow::Result { + move |_ctx: &JSContextRef, _this: JSValueRef, args: &[JSValueRef]| { + if args.len() != 1 { + return Err(anyhow!("Expecting 1 argument, got {}", args.len())); + } + + let js_string: String = args[0].try_into()?; + Ok(js_string.into_bytes().into()) + } +} + +#[cfg(test)] +mod tests { + use crate::{APIConfig, JSApiSet}; + use anyhow::Result; + use javy::Runtime; + + use super::TextEncoding; + + #[test] + fn test_text_encoder_decoder() -> Result<()> { + let runtime = Runtime::default(); + let context = runtime.context(); + TextEncoding.register(&runtime, &APIConfig::default())?; + let result = context.eval_global( + "main", + "let encoder = new TextEncoder(); let buffer = encoder.encode('hello'); let decoder = new TextDecoder(); decoder.decode(buffer) == 'hello';" + )?; + assert!(result.as_bool()?); + Ok(()) + } +} diff --git a/JS/wasm/crates/apis/src/text_encoding/text-encoding.js b/JS/wasm/crates/apis/src/text_encoding/text-encoding.js new file mode 100644 index 000000000..f8c834d92 --- /dev/null +++ b/JS/wasm/crates/apis/src/text_encoding/text-encoding.js @@ -0,0 +1,66 @@ +(function () { + const __javy_decodeUtf8BufferToString = globalThis.__javy_decodeUtf8BufferToString; + const __javy_encodeStringToUtf8Buffer = globalThis.__javy_encodeStringToUtf8Buffer; + + class TextDecoder { + constructor(label = "utf-8", options = {}) { + label = label.trim().toLowerCase(); + const acceptedLabels = ["utf-8", "utf8", "unicode-1-1-utf-8", "unicode11utf8", "unicode20utf8", "x-unicode20utf8"]; + if (!acceptedLabels.includes(label)) { + // Not spec-compliant behaviour + throw new RangeError("The encoding label provided must be utf-8"); + } + Object.defineProperties(this, { + encoding: { value: "utf-8", enumerable: true, writable: false }, + fatal: { value: !!options.fatal, enumerable: true, writable: false }, + ignoreBOM: { value: !!options.ignoreBOM, enumerable: true, writable: false }, + }) + } + + decode(input, options = {}) { + if (input === undefined) { + return ""; + } + + if (options.stream) { + throw new Error("Streaming decode is not supported"); + } + + // backing buffer would not have byteOffset and may have different byteLength + let byteOffset = input.byteOffset || 0; + let byteLength = input.byteLength; + if (ArrayBuffer.isView(input)) { + input = input.buffer; + } + + if (!(input instanceof ArrayBuffer)) { + throw new TypeError("The provided value is not of type '(ArrayBuffer or ArrayBufferView)'"); + } + + return __javy_decodeUtf8BufferToString(input, byteOffset, byteLength, this.fatal, this.ignoreBOM); + } + } + + class TextEncoder { + constructor() { + Object.defineProperties(this, { + encoding: { value: "utf-8", enumerable: true, writable: false }, + }); + } + + encode(input = "") { + input = input.toString(); // non-string inputs are converted to strings + return new Uint8Array(__javy_encodeStringToUtf8Buffer(input)); + } + + encodeInto(source, destination) { + throw new Error("encodeInto is not supported"); + } + } + + globalThis.TextDecoder = TextDecoder; + globalThis.TextEncoder = TextEncoder; + + Reflect.deleteProperty(globalThis, "__javy_decodeUtf8BufferToString"); + Reflect.deleteProperty(globalThis, "__javy_encodeStringToUtf8Buffer"); +})(); diff --git a/JS/wasm/crates/arakoo-core/Cargo.toml b/JS/wasm/crates/arakoo-core/Cargo.toml new file mode 100644 index 000000000..2c4b24772 --- /dev/null +++ b/JS/wasm/crates/arakoo-core/Cargo.toml @@ -0,0 +1,20 @@ +[package] +name = "arakoo-core" +edition.workspace = true +version.workspace = true + +[[bin]] +name = "arakoo-core" +path = "src/main.rs" +[lib] +name = "javy_quickjs_provider" +crate-type = ["cdylib"] + +[dependencies] +anyhow = { workspace = true } +javy = { workspace=true, features = ["export_alloc_fns","json"] } +once_cell = {workspace = true} +apis = { path = "../apis", features = ["console", "text_encoding", "random", "stream_io"] } + +[features] +experimental_event_loop = [] \ No newline at end of file diff --git a/JS/wasm/crates/arakoo-core/src/execution.rs b/JS/wasm/crates/arakoo-core/src/execution.rs new file mode 100644 index 000000000..11cd32473 --- /dev/null +++ b/JS/wasm/crates/arakoo-core/src/execution.rs @@ -0,0 +1,75 @@ +use std::process; + +use anyhow::{bail, Error, Result}; +use javy::{json, quickjs::JSContextRef, Runtime}; + +pub fn run_bytecode(runtime: &Runtime, bytecode: &[u8]) { + let context = runtime.context(); + + context + .eval_binary(bytecode) + .and_then(|_| process_event_loop(context)) + .unwrap_or_else(handle_error); +} + +pub fn invoke_entrypoint( + runtime: &Runtime, + bytecode: &[u8], + input: String, +) -> anyhow::Result> { + let context = runtime.context(); + context.eval_binary(bytecode).unwrap(); + + let global = context.global_object().unwrap(); + let entry_point = global.get_property("entrypoint").unwrap(); + + let request = input; + let input_bytes = request.as_bytes(); + let input_value = json::transcode_input(context, input_bytes).unwrap_or_else(|e| { + eprintln!("Error when transcoding input: {e}"); + process::abort(); + }); + entry_point + .call(&global, &[input_value]) + .and_then(|_| process_event_loop(context)) + .unwrap_or_else(handle_error); + + let global = context.global_object().unwrap(); + let error = global.get_property("error").unwrap(); + let output = global.get_property("result").unwrap(); + + if !error.is_null_or_undefined() { + let error = error.to_string(); + eprintln!("Error while running JS: {error}"); + process::abort(); + } + let output = json::transcode_output(output).unwrap(); + Ok(output) +} + +pub fn invoke_function(runtime: &Runtime, fn_module: &str, fn_name: &str) { + let context = runtime.context(); + let js = if fn_name == "default" { + format!("import {{ default as defaultFn }} from '{fn_module}'; defaultFn();") + } else { + format!("import {{ {fn_name} }} from '{fn_module}'; {fn_name}();") + }; + context + .eval_module("runtime.mjs", &js) + .and_then(|_| process_event_loop(context)) + .unwrap_or_else(handle_error); +} + +fn process_event_loop(context: &JSContextRef) -> Result<()> { + if cfg!(feature = "experimental_event_loop") { + context.execute_pending()?; + } else if context.is_pending() { + bail!("Adding tasks to the event queue is not supported"); + } + Ok(()) +} + +fn handle_error(e: Error) { + eprintln!("Error while running JS: {e}"); + process::abort(); +} diff --git a/JS/wasm/crates/arakoo-core/src/lib.rs b/JS/wasm/crates/arakoo-core/src/lib.rs new file mode 100644 index 000000000..5a56a9400 --- /dev/null +++ b/JS/wasm/crates/arakoo-core/src/lib.rs @@ -0,0 +1,84 @@ +use javy::Runtime; +use once_cell::sync::OnceCell; +use std::slice; +use std::str; + +mod execution; +mod runtime; + +const FUNCTION_MODULE_NAME: &str = "function.mjs"; + +static mut COMPILE_SRC_RET_AREA: [u32; 2] = [0; 2]; + +static mut RUNTIME: OnceCell = OnceCell::new(); + +/// Used by Wizer to preinitialize the module +#[export_name = "wizer.initialize"] +pub extern "C" fn init() { + let runtime = runtime::new_runtime().unwrap(); + unsafe { RUNTIME.set(runtime).unwrap() }; +} + +/// Compiles JS source code to QuickJS bytecode. +/// +/// Returns a pointer to a buffer containing a 32-bit pointer to the bytecode byte array and the +/// u32 length of the bytecode byte array. +/// +/// # Arguments +/// +/// * `js_src_ptr` - A pointer to the start of a byte array containing UTF-8 JS source code +/// * `js_src_len` - The length of the byte array containing JS source code +/// +/// # Safety +/// +/// * `js_src_ptr` must reference a valid array of unsigned bytes of `js_src_len` length +#[export_name = "compile_src"] +pub unsafe extern "C" fn compile_src(js_src_ptr: *const u8, js_src_len: usize) -> *const u32 { + // Use fresh runtime to avoid depending on Wizened runtime + let runtime = runtime::new_runtime().unwrap(); + let js_src = str::from_utf8(slice::from_raw_parts(js_src_ptr, js_src_len)).unwrap(); + let bytecode = runtime + .context() + .compile_module(FUNCTION_MODULE_NAME, js_src) + .unwrap(); + let bytecode_len = bytecode.len(); + // We need the bytecode buffer to live longer than this function so it can be read from memory + let bytecode_ptr = Box::leak(bytecode.into_boxed_slice()).as_ptr(); + COMPILE_SRC_RET_AREA[0] = bytecode_ptr as u32; + COMPILE_SRC_RET_AREA[1] = bytecode_len.try_into().unwrap(); + COMPILE_SRC_RET_AREA.as_ptr() +} + +/// Evaluates QuickJS bytecode +/// +/// # Safety +/// +/// * `bytecode_ptr` must reference a valid array of unsigned bytes of `bytecode_len` length +#[export_name = "eval_bytecode"] +pub unsafe extern "C" fn eval_bytecode(bytecode_ptr: *const u8, bytecode_len: usize) { + let runtime = RUNTIME.get().unwrap(); + let bytecode = slice::from_raw_parts(bytecode_ptr, bytecode_len); + execution::run_bytecode(runtime, bytecode); +} + +/// Evaluates QuickJS bytecode and invokes the exported JS function name. +/// +/// # Safety +/// +/// * `bytecode_ptr` must reference a valid array of bytes of `bytecode_len` +/// length. +/// * `fn_name_ptr` must reference a UTF-8 string with `fn_name_len` byte +/// length. +#[export_name = "invoke"] +pub unsafe extern "C" fn invoke( + bytecode_ptr: *const u8, + bytecode_len: usize, + fn_name_ptr: *const u8, + fn_name_len: usize, +) { + let runtime = RUNTIME.get().unwrap(); + let bytecode = slice::from_raw_parts(bytecode_ptr, bytecode_len); + let fn_name = str::from_utf8_unchecked(slice::from_raw_parts(fn_name_ptr, fn_name_len)); + execution::run_bytecode(runtime, bytecode); + execution::invoke_function(runtime, FUNCTION_MODULE_NAME, fn_name); +} diff --git a/JS/wasm/crates/arakoo-core/src/main.rs b/JS/wasm/crates/arakoo-core/src/main.rs new file mode 100644 index 000000000..8d15716e7 --- /dev/null +++ b/JS/wasm/crates/arakoo-core/src/main.rs @@ -0,0 +1,103 @@ +use javy::Runtime; +use once_cell::sync::OnceCell; +use std::io::{self, Read}; +use std::slice; +use std::str; +use std::string::String; + +mod execution; +mod runtime; + +const FUNCTION_MODULE_NAME: &str = "function.mjs"; + +static mut COMPILE_SRC_RET_AREA: [u32; 2] = [0; 2]; + +static mut RUNTIME: OnceCell = OnceCell::new(); +static mut BYTECODE: OnceCell> = OnceCell::new(); + +#[export_name = "wizer.initialize"] +pub extern "C" fn init() { + let _wasm_ctx = WasmCtx::new(); + + let runtime = runtime::new_runtime().unwrap(); + + let mut contents = String::new(); + io::stdin().read_to_string(&mut contents).unwrap(); + let bytecode = runtime + .context() + .compile_module("function.mjs", &contents) + .unwrap(); + + unsafe { + RUNTIME.set(runtime).unwrap(); + BYTECODE.set(bytecode).unwrap(); + } +} + +fn main() { + let bytecode = unsafe { BYTECODE.take().unwrap() }; + let runtime = unsafe { RUNTIME.take().unwrap() }; + execution::run_bytecode(&runtime, &bytecode); +} + +#[export_name = "run_entrypoint"] +pub unsafe fn run_entrypoint(input_ptr: *mut u8, input_len: usize) -> *const u32 { + let runtime = unsafe { RUNTIME.take().unwrap() }; + let bytecode = unsafe { BYTECODE.take().unwrap() }; + let input = str::from_utf8(unsafe { slice::from_raw_parts(input_ptr, input_len) }).unwrap(); + let result = execution::invoke_entrypoint(&runtime, &bytecode, input.to_string()).unwrap(); + let result_len = result.len(); + let result_ptr = Box::leak(result.into_boxed_slice()).as_ptr(); + COMPILE_SRC_RET_AREA[0] = result_ptr as u32; + COMPILE_SRC_RET_AREA[1] = result_len.try_into().unwrap(); + COMPILE_SRC_RET_AREA.as_ptr() +} + +// Removed in post-processing. +/// Evaluates QuickJS bytecode and invokes the exported JS function name. +/// +/// # Safety +/// +/// * `fn_name_ptr` must reference a UTF-8 string with `fn_name_size` byte +/// length. +#[export_name = "javy.invoke"] +pub unsafe extern "C" fn invoke(fn_name_ptr: *mut u8, fn_name_size: usize) { + let _wasm_ctx = WasmCtx::new(); + + let js_fn_name = str::from_utf8_unchecked(slice::from_raw_parts(fn_name_ptr, fn_name_size)); + let runtime = unsafe { RUNTIME.take().unwrap() }; + execution::invoke_function(&runtime, FUNCTION_MODULE_NAME, js_fn_name); +} + +// RAII abstraction for calling Wasm ctors and dtors for exported non-main functions. +struct WasmCtx; + +impl WasmCtx { + #[must_use = "Failing to assign the return value will result in the wasm dtors being run immediately"] + fn new() -> Self { + unsafe { __wasm_call_ctors() }; + Self + } +} + +impl Drop for WasmCtx { + fn drop(&mut self) { + unsafe { __wasm_call_dtors() }; + } +} + +extern "C" { + // `__wasm_call_ctors` is generated by `wasm-ld` and invokes all of the global constructors. + // In a Rust bin crate, the `_start` function will invoke this implicitly but no other exported + // Wasm functions will invoke this. + // If this is not invoked, access to environment variables and directory preopens will not be + // available. + // This should only be invoked at the start of exported Wasm functions that are not the `main` + // function. + // References: + // - [Rust 1.67.0 stopped initializing the WASI environment for exported functions](https://github.com/rust-lang/rust/issues/107635) + // - [Wizer header in Fastly's JS compute runtime](https://github.com/fastly/js-compute-runtime/blob/main/runtime/js-compute-runtime/third_party/wizer.h#L92) + fn __wasm_call_ctors(); + + fn __wasm_call_dtors(); +} diff --git a/JS/wasm/crates/arakoo-core/src/runtime.rs b/JS/wasm/crates/arakoo-core/src/runtime.rs new file mode 100644 index 000000000..51c7591c0 --- /dev/null +++ b/JS/wasm/crates/arakoo-core/src/runtime.rs @@ -0,0 +1,9 @@ +use anyhow::Result; +use apis::{APIConfig, LogStream, RuntimeExt}; +use javy::{Config, Runtime}; + +pub fn new_runtime() -> Result { + let mut api_config = APIConfig::default(); + api_config.log_stream(LogStream::StdErr); + Runtime::new_with_apis(Config::default(), api_config) +} diff --git a/JS/wasm/crates/cli/Cargo.toml b/JS/wasm/crates/cli/Cargo.toml new file mode 100644 index 000000000..d0c379b53 --- /dev/null +++ b/JS/wasm/crates/cli/Cargo.toml @@ -0,0 +1,50 @@ +[package] +name = "cli" +edition.workspace = true +version.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[[bin]] +name = "arakoo" +path = "src/main.rs" + +[features] +dump_wat = ["dep:wasmprinter"] +experimental_event_loop = [] + +[dependencies] +wizer = { workspace = true } +structopt = "0.3" +anyhow = { workspace = true } +binaryen = { git = "https://github.com/pepyakin/binaryen-rs", rev = "00c98174843f957681ba0bc5cdcc9d15f5d0cb23" } +brotli = "3.4.0" +wasmprinter = { version = "0.2.75", optional = true } +wasmtime = { workspace = true } +wasmtime-wasi = { workspace = true } +wasi-common = { workspace = true } +walrus = "0.20.3" +swc_core = { version = "0.87.19", features = [ + "common_sourcemap", + "ecma_ast", + "ecma_parser", +] } +wit-parser = "0.13.0" +convert_case = "0.6.0" +wat = "1.0.85" +serve = { path = "../serve" } +tokio = { version = "1.0" } + +[dev-dependencies] +serde_json = "1.0" +uuid = { version = "1.6", features = ["v4"] } +lazy_static = "1.4" +serde = { version = "1.0", default-features = false, features = ["derive"] } +criterion = "0.5" +num-format = "0.4.4" +tempfile = "3.9.0" +wasmparser = "0.118.1" + +[build-dependencies] +anyhow = "1.0.79" +wizer = { workspace = true } \ No newline at end of file diff --git a/JS/wasm/crates/cli/build.rs b/JS/wasm/crates/cli/build.rs new file mode 100644 index 000000000..dfe079d62 --- /dev/null +++ b/JS/wasm/crates/cli/build.rs @@ -0,0 +1,79 @@ +use std::env; +use std::fs; +use std::io::{Read, Write}; + +use std::path::{Path, PathBuf}; + +use anyhow::Result; + +fn main() -> Result<()> { + if let Ok("cargo-clippy") = env::var("CARGO_CFG_FEATURE").as_ref().map(String::as_str) { + stub_javy_core_for_clippy() + } else { + copy_javy_core() + } +} + +// When using clippy, we need to write stubbed engine.wasm and provider.wasm files to ensure +// compilation succeeds. This skips building the actual engine.wasm and provider.wasm that would +// be injected into the CLI binary. +fn stub_javy_core_for_clippy() -> Result<()> { + let out_dir = PathBuf::from(env::var("OUT_DIR")?); + let engine_path = out_dir.join("engine.wasm"); + let provider_path = out_dir.join("provider.wasm"); + + if !engine_path.exists() { + std::fs::write(engine_path, [])?; + println!("cargo:warning=using stubbed engine.wasm for static analysis purposes..."); + } + + if !provider_path.exists() { + std::fs::write(provider_path, [])?; + println!("cargo:warning=using stubbed provider.wasm for static analysis purposes..."); + } + Ok(()) +} + +fn read_file(path: impl AsRef) -> Result> { + let mut buf: Vec = vec![]; + fs::File::open(path.as_ref())?.read_to_end(&mut buf)?; + Ok(buf) +} + +// Copy the engine binary build from the `core` crate +fn copy_javy_core() -> Result<()> { + let cargo_manifest_dir = env::var("CARGO_MANIFEST_DIR")?; + let module_path = PathBuf::from(&cargo_manifest_dir) + .parent() + .unwrap() + .parent() + .unwrap() + .join("target/wasm32-wasi/release"); + let engine_path = module_path.join("arakoo-core.wasm"); + let quickjs_provider_path = module_path.join("javy_quickjs_provider.wasm"); + let quickjs_provider_wizened_path = module_path.join("javy_quickjs_provider_wizened.wasm"); + + let mut wizer = wizer::Wizer::new(); + let wizened = wizer + .allow_wasi(true)? + .wasm_bulk_memory(true) + .run(read_file(&quickjs_provider_path)?.as_slice())?; + fs::File::create(&quickjs_provider_wizened_path)?.write_all(&wizened)?; + + println!("cargo:rerun-if-changed={}", engine_path.to_str().unwrap()); + println!( + "cargo:rerun-if-changed={}", + quickjs_provider_path.to_str().unwrap() + ); + println!("cargo:rerun-if-changed=build.rs"); + + if engine_path.exists() { + let out_dir = env::var("OUT_DIR")?; + let copied_engine_path = Path::new(&out_dir).join("engine.wasm"); + let copied_provider_path = Path::new(&out_dir).join("provider.wasm"); + + fs::copy(&engine_path, copied_engine_path)?; + fs::copy(&quickjs_provider_wizened_path, copied_provider_path)?; + } + Ok(()) +} diff --git a/JS/wasm/crates/cli/src/bytecode.rs b/JS/wasm/crates/cli/src/bytecode.rs new file mode 100644 index 000000000..abe4ec4ee --- /dev/null +++ b/JS/wasm/crates/cli/src/bytecode.rs @@ -0,0 +1,79 @@ +use anyhow::{anyhow, Result}; +use wasmtime::{Engine, Instance, Linker, Memory, Module, Store}; +use wasmtime_wasi::{WasiCtx, WasiCtxBuilder}; + +pub const QUICKJS_PROVIDER_MODULE: &[u8] = + include_bytes!(concat!(env!("OUT_DIR"), "/provider.wasm")); + +pub fn compile_source(js_source_code: &[u8]) -> Result> { + let (mut store, instance, memory) = create_wasm_env()?; + let (js_src_ptr, js_src_len) = + copy_source_code_into_instance(js_source_code, &mut store, &instance, &memory)?; + let ret_ptr = call_compile(js_src_ptr, js_src_len, &mut store, &instance)?; + let bytecode = copy_bytecode_from_instance(ret_ptr, &mut store, &memory)?; + Ok(bytecode) +} + +fn create_wasm_env() -> Result<(Store, Instance, Memory)> { + let engine = Engine::default(); + let module = Module::new(&engine, QUICKJS_PROVIDER_MODULE)?; + let mut linker = Linker::new(&engine); + wasmtime_wasi::snapshots::preview_1::add_wasi_snapshot_preview1_to_linker(&mut linker, |s| s)?; + let wasi = WasiCtxBuilder::new().inherit_stderr().build(); + let mut store = Store::new(&engine, wasi); + let instance = linker.instantiate(&mut store, &module)?; + let memory = instance.get_memory(&mut store, "memory").unwrap(); + Ok((store, instance, memory)) +} + +fn copy_source_code_into_instance( + js_source_code: &[u8], + mut store: &mut Store, + instance: &Instance, + memory: &Memory, +) -> Result<(u32, u32)> { + let realloc_fn = instance + .get_typed_func::<(u32, u32, u32, u32), u32>(&mut store, "canonical_abi_realloc")?; + let js_src_len = js_source_code.len().try_into()?; + + let original_ptr = 0; + let original_size = 0; + let alignment = 1; + let size = js_src_len; + let js_source_ptr = + realloc_fn.call(&mut store, (original_ptr, original_size, alignment, size))?; + + memory.write(&mut store, js_source_ptr.try_into()?, js_source_code)?; + + Ok((js_source_ptr, js_src_len)) +} + +fn call_compile( + js_src_ptr: u32, + js_src_len: u32, + mut store: &mut Store, + instance: &Instance, +) -> Result { + let compile_src_fn = instance.get_typed_func::<(u32, u32), u32>(&mut store, "compile_src")?; + let ret_ptr = compile_src_fn + .call(&mut store, (js_src_ptr, js_src_len)) + .map_err(|_| anyhow!("JS compilation failed"))?; + Ok(ret_ptr) +} + +fn copy_bytecode_from_instance( + ret_ptr: u32, + mut store: &mut Store, + memory: &Memory, +) -> Result> { + let mut ret_buffer = [0; 8]; + memory.read(&mut store, ret_ptr.try_into()?, &mut ret_buffer)?; + + let bytecode_ptr = u32::from_le_bytes(ret_buffer[0..4].try_into()?); + let bytecode_len = u32::from_le_bytes(ret_buffer[4..8].try_into()?); + + let mut bytecode = vec![0; bytecode_len.try_into()?]; + memory.read(&mut store, bytecode_ptr.try_into()?, &mut bytecode)?; + + Ok(bytecode) +} diff --git a/JS/wasm/crates/cli/src/commands.rs b/JS/wasm/crates/cli/src/commands.rs new file mode 100644 index 000000000..ef7563d8d --- /dev/null +++ b/JS/wasm/crates/cli/src/commands.rs @@ -0,0 +1,72 @@ +use std::path::PathBuf; +use structopt::StructOpt; + +#[derive(Debug, StructOpt)] +#[structopt(name = "javy", about = "JavaScript to WebAssembly toolchain")] +pub enum Command { + /// Compiles JavaScript to WebAssembly. + Compile(CompileCommandOpts), + /// Emits the provider binary that is required to run dynamically + /// linked WebAssembly modules. + EmitProvider(EmitProviderCommandOpts), + Serve(ServeCommandOpts), +} + +#[derive(Debug, StructOpt)] +pub struct CompileCommandOpts { + #[structopt(parse(from_os_str))] + /// Path of the JavaScript input file. + pub input: PathBuf, + + #[structopt(short = "o", parse(from_os_str), default_value = "index.wasm")] + /// Desired path of the WebAssembly output file. + pub output: PathBuf, + + #[structopt(short = "d")] + /// Creates a smaller module that requires a dynamically linked QuickJS provider Wasm + /// module to execute (see `emit-provider` command). + pub dynamic: bool, + + #[structopt(long = "wit")] + /// Optional path to WIT file describing exported functions. + /// Only supports function exports with no arguments and no return values. + pub wit: Option, + + #[structopt(short = "n")] + /// Optional WIT world name for WIT file. Must be specified if WIT is file path is specified. + pub wit_world: Option, + + #[structopt(long = "no-source-compression")] + /// Disable source code compression, which reduces compile time at the expense of generating larger WebAssembly files. + pub no_source_compression: bool, +} + +#[derive(Debug, StructOpt)] +pub struct EmitProviderCommandOpts { + #[structopt(long = "out", short = "o")] + /// Output path for the provider binary (default is stdout). + pub out: Option, +} + +#[derive(Debug, StructOpt)] +pub struct ServeCommandOpts { + input: PathBuf, + #[structopt(short, long, default_value = "0.0.0.0")] + hostname: String, + #[structopt(short, long, default_value = "8080")] + port: u16, +} + +impl ServeCommandOpts { + /// The path to the service's Wasm binary. + pub fn input(&self) -> PathBuf { + PathBuf::from(&self.input) + } + + /// The address to bind the server to. + pub fn addr(&self) -> std::net::SocketAddr { + format!("{}:{}", self.hostname, self.port) + .parse() + .expect("Invalid address") + } +} diff --git a/JS/wasm/crates/cli/src/exports.rs b/JS/wasm/crates/cli/src/exports.rs new file mode 100644 index 000000000..19e5eb52d --- /dev/null +++ b/JS/wasm/crates/cli/src/exports.rs @@ -0,0 +1,48 @@ +use anyhow::{anyhow, Result}; +use convert_case::{Case, Casing}; +use std::{env, path::Path}; + +use crate::{js::JS, wit}; + +pub struct Export { + pub wit: String, + pub js: String, +} + +pub fn process_exports(js: &JS, wit: &Path, wit_world: &str) -> Result> { + let js_exports = js.exports()?; + parse_wit_exports(wit, wit_world)? + .into_iter() + .map(|wit_export| { + let export = wit_export.from_case(Case::Kebab).to_case(Case::Camel); + if !js_exports.contains(&export) { + Err(anyhow!("JS module does not export {export}")) + } else { + Ok(Export { + wit: wit_export, + js: export, + }) + } + }) + .collect::>>() +} + +fn parse_wit_exports(wit: &Path, wit_world: &str) -> Result> { + // Configure wit-parser to not require semicolons but only if the relevant + // environment variable is not already set. + const SEMICOLONS_OPTIONAL_ENV_VAR: &str = "WIT_REQUIRE_SEMICOLONS"; + let semicolons_env_var_already_set = env::var(SEMICOLONS_OPTIONAL_ENV_VAR).is_ok(); + if !semicolons_env_var_already_set { + env::set_var(SEMICOLONS_OPTIONAL_ENV_VAR, "0"); + } + + let exports = wit::parse_exports(wit, wit_world); + + // If we set the environment variable to not require semicolons, remove + // that environment variable now that we no longer need it set. + if !semicolons_env_var_already_set { + env::remove_var(SEMICOLONS_OPTIONAL_ENV_VAR); + } + + exports +} diff --git a/JS/wasm/crates/cli/src/js.rs b/JS/wasm/crates/cli/src/js.rs new file mode 100644 index 000000000..c0f47fbfd --- /dev/null +++ b/JS/wasm/crates/cli/src/js.rs @@ -0,0 +1,317 @@ +/// Higher-level representation of JavaScript. +/// +/// This is intended to be used to derive different representations of source +/// code. For example, as a byte array, a string, QuickJS bytecode, compressed +/// bytes, or attributes of the source code like what it exports. +use std::{ + collections::HashMap, + fs::File, + io::{Cursor, Read}, + path::Path, + rc::Rc, +}; + +use anyhow::{anyhow, bail, Context, Result}; +use brotli::enc::{self, BrotliEncoderParams}; +use swc_core::{ + common::{FileName, SourceMap}, + ecma::{ + ast::{ + Decl, EsVersion, ExportDecl, ExportSpecifier, Module, ModuleDecl, ModuleExportName, + ModuleItem, Stmt, + }, + parser::{self, EsConfig, Syntax}, + }, +}; + +use crate::bytecode; + +#[derive(Clone, Debug)] +pub struct JS { + source_code: Rc, +} + +impl JS { + fn from_string(source_code: String) -> JS { + JS { + source_code: Rc::new(source_code), + } + } + + pub fn from_file(path: &Path) -> Result { + let mut input_file = File::open(path) + .with_context(|| format!("Failed to open input file {}", path.display()))?; + let mut contents: Vec = vec![]; + input_file.read_to_end(&mut contents)?; + Ok(Self::from_string(String::from_utf8(contents)?)) + } + + pub fn as_bytes(&self) -> &[u8] { + self.source_code.as_bytes() + } + + pub fn compile(&self) -> Result> { + bytecode::compile_source(self.source_code.as_bytes()) + } + + pub fn compress(&self) -> Result> { + let mut compressed_source_code: Vec = vec![]; + enc::BrotliCompress( + &mut Cursor::new(&self.source_code.as_bytes()), + &mut compressed_source_code, + &BrotliEncoderParams { + quality: 11, + ..Default::default() + }, + )?; + Ok(compressed_source_code) + } + + pub fn exports(&self) -> Result> { + let module = self.parse_module()?; + + // function foo() ... + let mut functions = HashMap::new(); + // export { foo, bar as baz } + let mut named_exports = vec![]; + // export function foo() ... + let mut exported_functions = vec![]; + for item in module.body { + match item { + ModuleItem::ModuleDecl(ModuleDecl::ExportDecl(ExportDecl { + decl: Decl::Fn(f), + .. + })) => { + if !f.function.params.is_empty() { + bail!("Exported functions with parameters are not supported"); + } + if f.function.is_generator { + bail!("Exported generators are not supported"); + } + exported_functions.push(f.ident.sym); + } + ModuleItem::ModuleDecl(ModuleDecl::ExportNamed(e)) => { + for specifier in e.specifiers { + if let ExportSpecifier::Named(n) = specifier { + let orig = match n.orig { + ModuleExportName::Ident(i) => i.sym, + ModuleExportName::Str(s) => s.value, + }; + let exported_name = n.exported.map(|e| match e { + ModuleExportName::Ident(i) => i.sym, + ModuleExportName::Str(s) => s.value, + }); + named_exports.push((orig, exported_name)); + } + } + } + ModuleItem::ModuleDecl(ModuleDecl::ExportDefaultDecl(e)) if e.decl.is_fn_expr() => { + exported_functions.push("default".into()) + } + ModuleItem::ModuleDecl(ModuleDecl::ExportDefaultExpr(e)) if e.expr.is_arrow() => { + exported_functions.push("default".into()) + } + ModuleItem::Stmt(Stmt::Decl(Decl::Fn(f))) => { + functions.insert( + f.ident.sym, + (f.function.params.is_empty(), f.function.is_generator), + ); + } + _ => continue, + } + } + + let mut named_exported_functions = named_exports + .into_iter() + .filter_map(|(orig, exported)| { + if let Some((no_params, is_generator)) = functions.get(&orig) { + if !no_params { + Some(Err(anyhow!( + "Exported functions with parameters are not supported" + ))) + } else if *is_generator { + Some(Err(anyhow!("Exported generators are not supported"))) + } else { + Some(Ok(exported.unwrap_or(orig))) + } + } else { + None + } + }) + .collect::, _>>()?; + exported_functions.append(&mut named_exported_functions); + Ok(exported_functions + .into_iter() + .map(|f| f.to_string()) + .collect()) + } + + fn parse_module(&self) -> Result { + let source_map: SourceMap = Default::default(); + let file = source_map.new_source_file_from(FileName::Anon, self.source_code.clone()); + let mut errors = vec![]; + parser::parse_file_as_module( + &file, + Syntax::Es(EsConfig::default()), + EsVersion::Es2020, + None, + &mut errors, + ) + .map_err(|e| anyhow!(e.into_kind().msg())) + .with_context(|| "Invalid JavaScript") + } +} + +#[cfg(test)] +mod tests { + use crate::js::JS; + + use anyhow::Result; + + #[test] + fn parse_no_exports() -> Result<()> { + let exports = parse("function foo() {}")?; + assert_eq!(Vec::<&str>::default(), exports); + Ok(()) + } + + #[test] + fn parse_invalid_js() -> Result<()> { + let res = parse("fun foo() {}"); + assert_eq!("Invalid JavaScript", res.err().unwrap().to_string()); + Ok(()) + } + + #[test] + fn parse_one_func_export() -> Result<()> { + let exports = parse("export function foo() {}")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_func_export_with_parameter() -> Result<()> { + let res = parse("export function foo(bar) {}"); + assert_eq!( + "Exported functions with parameters are not supported", + res.err().unwrap().to_string() + ); + Ok(()) + } + + #[test] + fn parse_generator_export() -> Result<()> { + let res = parse("export function *foo() {}"); + assert_eq!( + "Exported generators are not supported", + res.err().unwrap().to_string() + ); + Ok(()) + } + + #[test] + fn parse_two_func_exports() -> Result<()> { + let exports = parse("export function foo() {}; export function bar() {};")?; + assert_eq!(vec!["foo", "bar"], exports); + Ok(()) + } + + #[test] + fn parse_const_export() -> Result<()> { + let exports = parse("export const x = 1;")?; + let expected_exports: Vec<&str> = vec![]; + assert_eq!(expected_exports, exports); + Ok(()) + } + + #[test] + fn parse_const_export_and_func_export() -> Result<()> { + let exports = parse("export const x = 1; export function foo() {}")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_named_func_export() -> Result<()> { + let exports = parse("function foo() {}; export { foo };")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_named_func_export_with_arg() -> Result<()> { + let res = parse("function foo(bar) {}; export { foo };"); + assert_eq!( + "Exported functions with parameters are not supported", + res.err().unwrap().to_string() + ); + Ok(()) + } + + #[test] + fn parse_funcs_with_args() -> Result<()> { + let exports = parse("function foo(bar) {}")?; + assert_eq!(Vec::<&str>::default(), exports); + Ok(()) + } + + #[test] + fn parse_named_func_export_and_const_export() -> Result<()> { + let exports = parse("function foo() {}; const bar = 1; export { foo, bar };")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_func_export_and_named_func_export() -> Result<()> { + let exports = parse("export function foo() {}; function bar() {}; export { bar };")?; + assert_eq!(vec!["foo", "bar"], exports); + Ok(()) + } + + #[test] + fn parse_renamed_func_export() -> Result<()> { + let exports = parse("function foo() {}; export { foo as bar };")?; + assert_eq!(vec!["bar"], exports); + Ok(()) + } + + #[test] + fn parse_hoisted_func_export() -> Result<()> { + let exports = parse("export { foo }; function foo() {}")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_renamed_hosted_func_export() -> Result<()> { + let exports = parse("export { foo as bar }; function foo() {}")?; + assert_eq!(vec!["bar"], exports); + Ok(()) + } + + #[test] + fn parse_hoisted_exports_with_func_and_const() -> Result<()> { + let exports = parse("export { foo, bar }; function foo() {}; const bar = 1;")?; + assert_eq!(vec!["foo"], exports); + Ok(()) + } + + #[test] + fn parse_default_arrow_export() -> Result<()> { + let exports = parse("export default () => {}")?; + assert_eq!(vec!["default"], exports); + Ok(()) + } + + #[test] + fn parse_default_function_export() -> Result<()> { + let exports = parse("export default function() {}")?; + assert_eq!(vec!["default"], exports); + Ok(()) + } + + fn parse(js: &str) -> Result> { + JS::from_string(js.to_string()).exports() + } +} diff --git a/JS/wasm/crates/cli/src/main.rs b/JS/wasm/crates/cli/src/main.rs new file mode 100644 index 000000000..d06673fbb --- /dev/null +++ b/JS/wasm/crates/cli/src/main.rs @@ -0,0 +1,56 @@ +mod bytecode; +mod commands; +mod exports; +mod js; +mod wasm_generator; +mod wit; + +use crate::commands::{Command, EmitProviderCommandOpts}; +use crate::wasm_generator::r#static as static_generator; +use anyhow::{bail, Result}; +use js::JS; +use std::fs; +use std::fs::File; +use std::io::Write; +use structopt::StructOpt; +use wasm_generator::dynamic as dynamic_generator; + +#[tokio::main] +async fn main() -> Result<()> { + let cmd = Command::from_args(); + + match &cmd { + Command::EmitProvider(opts) => emit_provider(opts), + Command::Compile(opts) => { + let js = JS::from_file(&opts.input)?; + let exports = match (&opts.wit, &opts.wit_world) { + (None, None) => Ok(vec![]), + (None, Some(_)) => Ok(vec![]), + (Some(_), None) => bail!("Must provide WIT world when providing WIT file"), + (Some(wit), Some(world)) => exports::process_exports(&js, wit, world), + }?; + let wasm = if opts.dynamic { + dynamic_generator::generate(&js, exports, opts.no_source_compression)? + } else { + static_generator::generate(&js, exports, opts.no_source_compression)? + }; + fs::write(&opts.output, wasm)?; + Ok(()) + } + Command::Serve(opts) => { + serve::WorkerCtx::new(opts.input())? + .serve(opts.addr()) + .await?; + Ok(()) + } + } +} + +fn emit_provider(opts: &EmitProviderCommandOpts) -> Result<()> { + let mut file: Box = match opts.out.as_ref() { + Some(path) => Box::new(File::create(path)?), + _ => Box::new(std::io::stdout()), + }; + file.write_all(bytecode::QUICKJS_PROVIDER_MODULE)?; + Ok(()) +} diff --git a/JS/wasm/crates/cli/src/wasm_generator/dynamic.rs b/JS/wasm/crates/cli/src/wasm_generator/dynamic.rs new file mode 100644 index 000000000..a89455a1e --- /dev/null +++ b/JS/wasm/crates/cli/src/wasm_generator/dynamic.rs @@ -0,0 +1,193 @@ +use crate::{exports::Export, js::JS}; + +use super::transform::{self, SourceCodeSection}; +use anyhow::Result; +use walrus::{DataKind, FunctionBuilder, Module, ValType}; + +// Run the calling code with the `dump_wat` feature enabled to print the WAT to stdout +// +// For the example generated WAT, the `bytecode_len` is 137 +// (module +// (type (;0;) (func)) +// (type (;1;) (func (param i32 i32))) +// (type (;2;) (func (param i32 i32 i32 i32))) +// (type (;3;) (func (param i32 i32 i32 i32) (result i32))) +// (import "javy_quickjs_provider_v1" "canonical_abi_realloc" (func (;0;) (type 3))) +// (import "javy_quickjs_provider_v1" "eval_bytecode" (func (;1;) (type 1))) +// (import "javy_quickjs_provider_v1" "memory" (memory (;0;) 0)) +// (import "javy_quickjs_provider_v1" "invoke" (func (;2;) (type 2))) +// (func (;3;) (type 0) +// (local i32 i32) +// i32.const 0 +// i32.const 0 +// i32.const 1 +// i32.const 137 +// call 0 +// local.tee 0 +// i32.const 0 +// i32.const 137 +// memory.init 0 +// data.drop 0 +// i32.const 0 +// i32.const 0 +// i32.const 1 +// i32.const 3 +// call 0 +// local.tee 1 +// i32.const 0 +// i32.const 3 +// memory.init 1 +// data.drop 1 +// local.get 0 +// i32.const 137 +// local.get 1 +// i32.const 3 +// call 2 +// ) +// (func (;4;) (type 0) +// (local i32) +// i32.const 0 +// i32.const 0 +// i32.const 1 +// i32.const 137 +// call 0 +// local.tee 0 +// i32.const 0 +// i32.const 137 +// memory.init 0 +// local.get 0 +// i32.const 137 +// call 1 +// ) +// (export "_start" (func 4)) +// (export "foo" (func 3)) +// (data (;0;) "\02\05\18function.mjs\06foo\0econsole\06log\06bar\0f\bc\03\00\01\00\00\be\03\00\00\0e\00\06\01\a0\01\00\00\00\03\01\01\1a\00\be\03\00\01\08\ea\05\c0\00\e1)8\e0\00\00\00B\e1\00\00\00\04\e2\00\00\00$\01\00)\bc\03\01\04\01\00\07\0a\0eC\06\01\be\03\00\00\00\03\00\00\13\008\e0\00\00\00B\e1\00\00\00\04\df\00\00\00$\01\00)\bc\03\01\02\03]") +// (data (;1;) "foo") +// ) +pub fn generate( + js: &JS, + exported_functions: Vec, + no_source_compression: bool, +) -> Result> { + let mut module = Module::with_config(transform::module_config()); + + const IMPORT_NAMESPACE: &str = "javy_quickjs_provider_v1"; + + let canonical_abi_realloc_type = module.types.add( + &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], + &[ValType::I32], + ); + let (canonical_abi_realloc_fn, _) = module.add_import_func( + IMPORT_NAMESPACE, + "canonical_abi_realloc", + canonical_abi_realloc_type, + ); + + let eval_bytecode_type = module.types.add(&[ValType::I32, ValType::I32], &[]); + let (eval_bytecode_fn, _) = + module.add_import_func(IMPORT_NAMESPACE, "eval_bytecode", eval_bytecode_type); + + let (memory, _) = module.add_import_memory(IMPORT_NAMESPACE, "memory", false, 0, None); + + transform::add_producers_section(&mut module.producers); + if no_source_compression { + module.customs.add(SourceCodeSection::uncompressed(js)?); + } else { + module.customs.add(SourceCodeSection::compressed(js)?); + } + + let bytecode = js.compile()?; + let bytecode_len: i32 = bytecode.len().try_into()?; + let bytecode_data = module.data.add(DataKind::Passive, bytecode); + + let mut main = FunctionBuilder::new(&mut module.types, &[], &[]); + let bytecode_ptr_local = module.locals.add(ValType::I32); + main.func_body() + // Allocate memory in javy_quickjs_provider for bytecode array. + .i32_const(0) // orig ptr + .i32_const(0) // orig size + .i32_const(1) // alignment + .i32_const(bytecode_len) // new size + .call(canonical_abi_realloc_fn) + // Copy bytecode array into allocated memory. + .local_tee(bytecode_ptr_local) // save returned address to local and set as dest addr for mem.init + .i32_const(0) // offset into data segment for mem.init + .i32_const(bytecode_len) // size to copy from data segment + // top-2: dest addr, top-1: offset into source, top-0: size of memory region in bytes. + .memory_init(memory, bytecode_data) + // Evaluate bytecode. + .local_get(bytecode_ptr_local) // ptr to bytecode + .i32_const(bytecode_len) + .call(eval_bytecode_fn); + let main = main.finish(vec![], &mut module.funcs); + + module.exports.add("_start", main); + + if !exported_functions.is_empty() { + let invoke_type = module.types.add( + &[ValType::I32, ValType::I32, ValType::I32, ValType::I32], + &[], + ); + let (invoke_fn, _) = module.add_import_func(IMPORT_NAMESPACE, "invoke", invoke_type); + + let fn_name_ptr_local = module.locals.add(ValType::I32); + for export in exported_functions { + // For each JS function export, add an export that copies the name of the function into memory and invokes it. + let js_export_bytes = export.js.as_bytes(); + let js_export_len: i32 = js_export_bytes.len().try_into().unwrap(); + let fn_name_data = module.data.add(DataKind::Passive, js_export_bytes.to_vec()); + + let mut export_fn = FunctionBuilder::new(&mut module.types, &[], &[]); + export_fn + .func_body() + // Copy bytecode. + .i32_const(0) // orig ptr + .i32_const(0) // orig len + .i32_const(1) // alignment + .i32_const(bytecode_len) // size to copy + .call(canonical_abi_realloc_fn) + .local_tee(bytecode_ptr_local) + .i32_const(0) // offset into data segment + .i32_const(bytecode_len) // size to copy + .memory_init(memory, bytecode_data) // copy bytecode into allocated memory + .data_drop(bytecode_data) + // Copy function name. + .i32_const(0) // orig ptr + .i32_const(0) // orig len + .i32_const(1) // alignment + .i32_const(js_export_len) // new size + .call(canonical_abi_realloc_fn) + .local_tee(fn_name_ptr_local) + .i32_const(0) // offset into data segment + .i32_const(js_export_len) // size to copy + .memory_init(memory, fn_name_data) // copy fn name into allocated memory + .data_drop(fn_name_data) + // Call invoke. + .local_get(bytecode_ptr_local) + .i32_const(bytecode_len) + .local_get(fn_name_ptr_local) + .i32_const(js_export_len) + .call(invoke_fn); + let export_fn = export_fn.finish(vec![], &mut module.funcs); + module.exports.add(&export.wit, export_fn); + } + } + + let wasm = module.emit_wasm(); + print_wat(&wasm)?; + Ok(wasm) +} + +#[cfg(feature = "dump_wat")] +fn print_wat(wasm_binary: &[u8]) -> Result<()> { + println!( + "Generated WAT: \n{}", + wasmprinter::print_bytes(&wasm_binary)? + ); + Ok(()) +} + +#[cfg(not(feature = "dump_wat"))] +fn print_wat(_wasm_binary: &[u8]) -> Result<()> { + Ok(()) +} diff --git a/JS/wasm/crates/cli/src/wasm_generator/mod.rs b/JS/wasm/crates/cli/src/wasm_generator/mod.rs new file mode 100644 index 000000000..186453527 --- /dev/null +++ b/JS/wasm/crates/cli/src/wasm_generator/mod.rs @@ -0,0 +1,3 @@ +pub mod dynamic; +pub mod r#static; +mod transform; diff --git a/JS/wasm/crates/cli/src/wasm_generator/static.rs b/JS/wasm/crates/cli/src/wasm_generator/static.rs new file mode 100644 index 000000000..53a7450f7 --- /dev/null +++ b/JS/wasm/crates/cli/src/wasm_generator/static.rs @@ -0,0 +1,143 @@ +use std::{collections::HashMap, rc::Rc, sync::OnceLock}; + +use anyhow::{anyhow, Result}; +use binaryen::{CodegenConfig, Module}; +use walrus::{DataKind, ExportItem, FunctionBuilder, FunctionId, MemoryId, ValType}; +use wasi_common::{pipe::ReadPipe, WasiCtx}; +use wasmtime::Linker; +use wasmtime_wasi::WasiCtxBuilder; +use wizer::Wizer; + +use crate::{exports::Export, js::JS}; + +use super::transform::{self, SourceCodeSection}; + +static mut WASI: OnceLock = OnceLock::new(); + +pub fn generate(js: &JS, exports: Vec, no_source_compression: bool) -> Result> { + let wasm = include_bytes!(concat!(env!("OUT_DIR"), "/engine.wasm")); + + let wasi = WasiCtxBuilder::new() + .stdin(Box::new(ReadPipe::from(js.as_bytes()))) + .inherit_stdout() + .inherit_stderr() + .build(); + // We can't move the WasiCtx into `make_linker` since WasiCtx doesn't implement the `Copy` trait. + // So we move the WasiCtx into a mutable static OnceLock instead. + // Setting the value in the `OnceLock` and getting the reference back from it should be safe given + // we're never executing this code concurrently. This code will also fail if `generate` is invoked + // more than once per execution. + if unsafe { WASI.set(wasi) }.is_err() { + panic!("Failed to set WASI static variable") + } + + let wasm = Wizer::new() + .make_linker(Some(Rc::new(|engine| { + let mut linker = Linker::new(engine); + wasmtime_wasi::add_to_linker(&mut linker, |_ctx: &mut Option| { + unsafe { WASI.get_mut() }.unwrap() + })?; + Ok(linker) + })))? + .wasm_bulk_memory(true) + .run(wasm) + .map_err(|_| anyhow!("JS compilation failed"))?; + + let mut module = transform::module_config().parse(&wasm)?; + + let (realloc, free, invoke, memory) = { + let mut exports = HashMap::new(); + for export in module.exports.iter() { + exports.insert(export.name.as_str(), export); + } + ( + *exports.get("canonical_abi_realloc").unwrap(), + *exports.get("canonical_abi_free").unwrap(), + *exports.get("javy.invoke").unwrap(), + *exports.get("memory").unwrap(), + ) + }; + + // let realloc_export = realloc.id(); + let free_export = free.id(); + let invoke_export = invoke.id(); + + if !exports.is_empty() { + let ExportItem::Function(realloc_fn) = realloc.item else { + unreachable!() + }; + let ExportItem::Function(invoke_fn) = invoke.item else { + unreachable!() + }; + let ExportItem::Memory(memory) = memory.item else { + unreachable!() + }; + export_exported_js_functions(&mut module, realloc_fn, invoke_fn, memory, exports); + } + + // We no longer need these exports so remove them. + // module.exports.delete(realloc_export); + module.exports.delete(free_export); + module.exports.delete(invoke_export); + + let wasm = module.emit_wasm(); + + let codegen_cfg = CodegenConfig { + optimization_level: 3, // Aggressively optimize for speed. + shrink_level: 0, // Don't optimize for size at the expense of performance. + debug_info: false, + }; + + let mut module = Module::read(&wasm) + .map_err(|_| anyhow!("Unable to read wasm binary for wasm-opt optimizations"))?; + module.optimize(&codegen_cfg); + module + .run_optimization_passes(vec!["strip"], &codegen_cfg) + .map_err(|_| anyhow!("Running wasm-opt optimization passes failed"))?; + let wasm = module.write(); + + let mut module = transform::module_config().parse(&wasm)?; + if no_source_compression { + module.customs.add(SourceCodeSection::uncompressed(js)?); + } else { + module.customs.add(SourceCodeSection::compressed(js)?); + } + transform::add_producers_section(&mut module.producers); + Ok(module.emit_wasm()) +} + +fn export_exported_js_functions( + module: &mut walrus::Module, + realloc_fn: FunctionId, + invoke_fn: FunctionId, + memory: MemoryId, + js_exports: Vec, +) { + let ptr_local = module.locals.add(ValType::I32); + for export in js_exports { + println!("Exporting JS function: {}", export.js); + // For each JS function export, add an export that copies the name of the function into memory and invokes it. + let js_export_bytes = export.js.as_bytes(); + let js_export_len: i32 = js_export_bytes.len().try_into().unwrap(); + let fn_name_data = module.data.add(DataKind::Passive, js_export_bytes.to_vec()); + + let mut export_fn = FunctionBuilder::new(&mut module.types, &[], &[]); + export_fn + .func_body() + .i32_const(0) // orig ptr + .i32_const(0) // orig len + .i32_const(1) // alignment + .i32_const(js_export_len) // new size + .call(realloc_fn) + .local_tee(ptr_local) + .i32_const(0) // offset into data segment + .i32_const(js_export_len) // size to copy + .memory_init(memory, fn_name_data) // copy fn name into allocated memory + .data_drop(fn_name_data) + .local_get(ptr_local) + .i32_const(js_export_len) + .call(invoke_fn); + let export_fn = export_fn.finish(vec![], &mut module.funcs); + module.exports.add(&export.wit, export_fn); + } +} diff --git a/JS/wasm/crates/cli/src/wasm_generator/transform.rs b/JS/wasm/crates/cli/src/wasm_generator/transform.rs new file mode 100644 index 000000000..68023dcbd --- /dev/null +++ b/JS/wasm/crates/cli/src/wasm_generator/transform.rs @@ -0,0 +1,47 @@ +use std::borrow::Cow; + +use anyhow::Result; +use walrus::{CustomSection, IdsToIndices, ModuleConfig, ModuleProducers}; + +use crate::js::JS; + +#[derive(Debug)] +pub struct SourceCodeSection { + source_code: Vec, +} + +impl SourceCodeSection { + pub fn compressed(js: &JS) -> Result { + Ok(SourceCodeSection { + source_code: js.compress()?, + }) + } + + pub fn uncompressed(js: &JS) -> Result { + Ok(SourceCodeSection { + source_code: js.as_bytes().to_vec(), + }) + } +} + +impl CustomSection for SourceCodeSection { + fn name(&self) -> &str { + "javy_source" + } + + fn data(&self, _ids_to_indices: &IdsToIndices) -> Cow<[u8]> { + (&self.source_code).into() + } +} + +pub fn module_config() -> ModuleConfig { + let mut config = ModuleConfig::new(); + config.generate_name_section(false); + config +} + +pub fn add_producers_section(producers: &mut ModuleProducers) { + producers.clear(); // removes Walrus and Rust + producers.add_language("JavaScript", "ES2020"); + producers.add_processed_by("Javy", env!("CARGO_PKG_VERSION")); +} diff --git a/JS/wasm/crates/cli/src/wit.rs b/JS/wasm/crates/cli/src/wit.rs new file mode 100644 index 000000000..027dc22da --- /dev/null +++ b/JS/wasm/crates/cli/src/wit.rs @@ -0,0 +1,35 @@ +use std::path::Path; + +use anyhow::{bail, Result}; + +use wit_parser::{Resolve, UnresolvedPackage, WorldItem}; + +pub fn parse_exports(wit: impl AsRef, world: &str) -> Result> { + let mut resolve = Resolve::default(); + let package = UnresolvedPackage::parse_path(wit.as_ref())?; + resolve.push(package)?; + let (_, package_id) = resolve.package_names.first().unwrap(); + let world_id = resolve.select_world(*package_id, Some(world))?; + let world = resolve.worlds.get(world_id).unwrap(); + + if !world.imports.is_empty() { + bail!("Imports in WIT file are not supported"); + } + let mut exported_functions = vec![]; + for (_, export) in &world.exports { + match export { + WorldItem::Interface(_) => bail!("Exported interfaces are not supported"), + WorldItem::Function(f) => { + if !f.params.is_empty() { + bail!("Exported functions with parameters are not supported") + } else if f.results.len() != 0 { + bail!("Exported functions with return values are not supported") + } else { + exported_functions.push(f.name.clone()) + } + } + WorldItem::Type(_) => bail!("Exported types are not supported"), + } + } + Ok(exported_functions) +} diff --git a/JS/wasm/crates/serve/Cargo.toml b/JS/wasm/crates/serve/Cargo.toml new file mode 100644 index 000000000..0d0c111aa --- /dev/null +++ b/JS/wasm/crates/serve/Cargo.toml @@ -0,0 +1,18 @@ +[package] +name = "serve" +edition.workspace = true +version.workspace = true + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html +[dependencies] +wasi-common = { workspace = true } +wasmtime = { workspace = true } +wasmtime-wasi = { workspace = true } +anyhow = {workspace = true} +serde = { version = "1", features = ["derive"] } +serde_json = "1" +tokio = { version = "1.21.2", features = ["full"] } +tracing = "0.1.37" +hyper = {version="0.14.26", features=["full"]} +futures = "0.3.24" +tracing-subscriber = { version = "^0.3.18", features = ["env-filter", "fmt"] } \ No newline at end of file diff --git a/JS/wasm/crates/serve/src/io.rs b/JS/wasm/crates/serve/src/io.rs new file mode 100644 index 000000000..ee0ea26ba --- /dev/null +++ b/JS/wasm/crates/serve/src/io.rs @@ -0,0 +1,61 @@ +use std::collections::HashMap; + +use hyper::{header::HOST, http::request::Parts, HeaderMap, Uri}; +use serde::{Deserialize, Serialize}; + +#[derive(Serialize, Deserialize, Debug)] +pub struct WasmInput<'a> { + url: String, + method: &'a str, + headers: HashMap, + body: &'a str, + params: HashMap, +} + +impl<'a> WasmInput<'a> { + pub fn new(request: &'a Parts, body: &'a str) -> Self { + let mut params = HashMap::new(); + + if let Some(query) = request.uri.query() { + for pair in query.split('&') { + let mut parts = pair.split('='); + let key = parts.next().unwrap(); + let value = parts.next().unwrap(); + params.insert(key.to_string(), value.to_string()); + } + } + + let url = Self::build_url(request); + + Self { + url, + method: request.method.as_str(), + headers: Self::build_headers_hash(&request.headers), + body, + params, + } + } + + fn build_url(request: &Parts) -> String { + Uri::builder() + .scheme("http") + .authority(request.headers.get(HOST).unwrap().to_str().unwrap()) + .path_and_query(request.uri.path_and_query().unwrap().clone()) + .build() + .unwrap() + .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 + } +} diff --git a/JS/wasm/crates/serve/src/lib.rs b/JS/wasm/crates/serve/src/lib.rs new file mode 100644 index 000000000..1b108342c --- /dev/null +++ b/JS/wasm/crates/serve/src/lib.rs @@ -0,0 +1,245 @@ +mod io; +use std::{ + convert::Infallible, + env, + future::Future, + net::SocketAddr, + path::Path, + pin::Pin, + task::{self, Poll}, +}; + +use futures::future::{self, Ready}; +use hyper::{ + http::request::Parts, server::conn::AddrStream, service::Service, Body, Request, Response, +}; + +use tracing::{error, event, info, Level}; +use tracing_subscriber::{filter::EnvFilter, FmtSubscriber}; +use wasi_common::WasiCtx; +use wasmtime_wasi::WasiCtxBuilder; + +use wasmtime::{Config, Engine, Instance, Linker, Memory, Module, Store}; + +use crate::io::WasmInput; + +#[derive(Clone)] +pub struct RequestService { + worker_ctx: WorkerCtx, +} + +impl RequestService { + /// Create a new request service. + fn new(ctx: WorkerCtx) -> Self { + Self { worker_ctx: ctx } + } +} + +#[derive(Clone)] +pub struct WorkerCtx { + engine: Engine, + module: Module, +} + +impl WorkerCtx { + pub fn new(module_path: impl AsRef) -> anyhow::Result { + tracing_subscriber(); + info!("Loading module from {:?}", module_path.as_ref()); + // let config = configure_wasmtime(profiling_strategy); + let engine = Engine::new(Config::default().async_support(true)).unwrap(); //Engine::new(&config)?; + + let module = Module::from_file(&engine, module_path)?; + Ok(Self { engine, module }) + } + + pub fn module(&self) -> &Module { + &self.module + } + + pub fn engine(&self) -> &Engine { + &self.engine + } + pub async fn serve(self, addr: SocketAddr) -> Result<(), hyper::Error> { + info!("Starting server ..."); + let server = hyper::Server::bind(&addr).serve(self); + event!(Level::INFO, "Listening on http://{}", server.local_addr()); + server.await?; + Ok(()) + } + + pub async fn handle_request( + &self, + request: hyper::Request, + ) -> anyhow::Result<(Response, Option)> { + let (parts, body) = request.into_parts(); + info!("Handling request: {:?} {:?}", parts.method, parts.uri); + let body = hyper::body::to_bytes(body).await.unwrap(); + let body_str = String::from_utf8_lossy(&body).to_string(); + let result = self.run(&parts, &body_str).await; + + match result { + Ok(output) => { + let response = Response::new(Body::from(output)); + Ok((response, None)) + } + Err(e) => { + error!("Error: {}", e); + let response = Response::builder() + .status(500) + .body(Body::from("Internal Server Error")) + .unwrap(); + Ok((response, Some(e))) + } + } + } + + fn make_service(&self) -> RequestService { + RequestService::new(self.clone()) + } + + async fn run(&self, parts: &Parts, body: &str) -> anyhow::Result> { + let input = serde_json::to_string(&WasmInput::new(parts, body)).unwrap(); + + let mut linker: Linker = Linker::new(self.engine()); + + wasmtime_wasi::add_to_linker(&mut linker, |ctx| ctx)?; + + let mut wasi_ctx = WasiCtxBuilder::new(); + wasi_ctx.inherit_stdout().inherit_stderr(); + let wasi_builder = wasi_ctx.build(); + let mut store = Store::new(self.engine(), wasi_builder); + + let instance = linker + .instantiate_async(&mut store, self.module()) + .await + .map_err(anyhow::Error::msg)?; + + let memory = &instance.get_memory(&mut store, "memory").unwrap(); + + let (result_ptr, result_len) = + copy_request_into_instance(input.as_bytes(), &mut store, &instance, memory).await?; + + let run_entrypoint_fn = + instance.get_typed_func::<(u32, u32), u32>(&mut store, "run_entrypoint")?; + + let output_ptr = run_entrypoint_fn + .call_async(&mut store, (result_ptr, result_len)) + .await + .map_err(anyhow::Error::msg)?; + + let output = copy_bytecode_from_instance(output_ptr, &mut store, memory)?; + + drop(store); + + Ok(output) + } +} + +impl<'addr> Service<&'addr AddrStream> for WorkerCtx { + type Response = RequestService; + type Error = Infallible; + type Future = Ready>; + + fn poll_ready(&mut self, _cx: &mut task::Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, _addr: &'addr AddrStream) -> Self::Future { + future::ok(self.make_service()) + } +} + +impl Service> for RequestService { + type Response = Response; + type Error = anyhow::Error; + #[allow(clippy::type_complexity)] + type Future = Pin> + Send>>; + + fn poll_ready(&mut self, _cx: &mut task::Context<'_>) -> Poll> { + Poll::Ready(Ok(())) + } + + fn call(&mut self, req: Request) -> Self::Future { + let ctx = self.worker_ctx.clone(); + + Box::pin(async move { ctx.handle_request(req).await.map(|result| result.0) }) + } +} + +fn tracing_subscriber() { + let verbosity = match env::var("RUST_LOG_VERBOSITY") { + Ok(s) => s.parse().unwrap_or(0), + Err(_) => 0, + }; + + if env::var("RUST_LOG").ok().is_none() { + match verbosity { + 0 => env::set_var("RUST_LOG", "info"), + 1 => env::set_var("RUST_LOG", "debug"), + _ => env::set_var("RUST_LOG", "trace"), + } + } + + // Build a subscriber, using the default `RUST_LOG` environment variable for our filter. + let builder = FmtSubscriber::builder() + .with_writer(std::io::stderr) + .with_env_filter(EnvFilter::from_default_env()) + .with_target(false); + + match env::var("RUST_LOG_PRETTY") { + // If the `RUST_LOG_PRETTY` environment variable is set to "true", we should emit logs in a + // pretty, human-readable output format. + Ok(s) if s == "true" => builder + .pretty() + // Show levels, because ANSI escape sequences are normally used to indicate this. + .with_level(true) + .init(), + // Otherwise, we should install the subscriber without any further additions. + _ => builder.with_ansi(false).init(), + } + event!( + Level::DEBUG, + "RUST_LOG set to '{}'", + env::var("RUST_LOG").unwrap_or_else(|_| String::from("")) + ); +} + +async fn copy_request_into_instance( + request: &[u8], + mut store: &mut Store, + instance: &Instance, + memory: &Memory, +) -> anyhow::Result<(u32, u32)> { + let realloc_fn = instance + .get_typed_func::<(u32, u32, u32, u32), u32>(&mut store, "canonical_abi_realloc")?; + let request_len = request.len().try_into()?; + + let original_ptr = 0; + let original_size = 0; + let alignment = 1; + let size = request_len; + let request_ptr = realloc_fn + .call_async(&mut store, (original_ptr, original_size, alignment, size)) + .await?; + + memory.write(&mut store, request_ptr.try_into()?, request)?; + + Ok((request_ptr, request_len)) +} + +fn copy_bytecode_from_instance( + ret_ptr: u32, + mut store: &mut Store, + memory: &Memory, +) -> anyhow::Result> { + let mut ret_buffer = [0; 8]; + memory.read(&mut store, ret_ptr.try_into()?, &mut ret_buffer)?; + + let bytecode_ptr = u32::from_le_bytes(ret_buffer[0..4].try_into()?); + let bytecode_len = u32::from_le_bytes(ret_buffer[4..8].try_into()?); + + let mut bytecode = vec![0; bytecode_len.try_into()?]; + memory.read(&mut store, bytecode_ptr.try_into()?, &mut bytecode)?; + + Ok(bytecode) +} diff --git a/JS/wasm/examples/ec-wasmjs-hono/src/index.js b/JS/wasm/examples/ec-wasmjs-hono/src/index.js index 65c3be440..716c17c9a 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/src/index.js +++ b/JS/wasm/examples/ec-wasmjs-hono/src/index.js @@ -1,14 +1,13 @@ import { Hono } from "hono"; import { connect } from "@planetscale/database"; -import Jsonnet from "arakoo-jsonnet"; const app = new Hono(); - +const env = {}; app.get("/", (c) => { - const geo = c.req.raw.geo; - return c.text(`Your from ${geo.city}, ${geo.country_name}!`); + return c.text("Hello World!"); }); + app.get("/vars", async (c) => { try { const extVars = JSON.stringify({ @@ -49,4 +48,4 @@ app.notFound((c) => { return c.text("404 not found", 404); }); -export default app; +app.fire(); diff --git a/JS/wasm/rust-toolchain.toml b/JS/wasm/rust-toolchain.toml new file mode 100644 index 000000000..92e761c7f --- /dev/null +++ b/JS/wasm/rust-toolchain.toml @@ -0,0 +1,5 @@ +[toolchain] +channel = "nightly" +components = ["clippy", "rustfmt"] +targets = ["wasm32-wasi"] +profile = "default" From 0aa97b44c299e8bbad0edce484705f662d4cb60b Mon Sep 17 00:00:00 2001 From: rahul007-bit Date: Fri, 9 Feb 2024 08:53:23 +0530 Subject: [PATCH 04/18] fix the response Body --- JS/wasm/crates/apis/src/http/shims/index.js | 3 +- JS/wasm/crates/serve/src/io.rs | 14 +++++++ JS/wasm/crates/serve/src/lib.rs | 41 +++++++++++++++++--- JS/wasm/crates/wasmjs-runtime/src/io.rs | 6 +-- JS/wasm/examples/ec-wasmjs-hono/src/index.js | 13 +++++-- 5 files changed, 65 insertions(+), 12 deletions(-) diff --git a/JS/wasm/crates/apis/src/http/shims/index.js b/JS/wasm/crates/apis/src/http/shims/index.js index c0e54bd58..1e271418f 100644 --- a/JS/wasm/crates/apis/src/http/shims/index.js +++ b/JS/wasm/crates/apis/src/http/shims/index.js @@ -283,9 +283,10 @@ const requestToHandler = (input) => { Promise.resolve(event.response) .then((res) => { result = { - data: res.body, + body: res.body, headers: res.headers.headers, status: res.status, + statusText: res.statusText, }; }) .catch((err) => { diff --git a/JS/wasm/crates/serve/src/io.rs b/JS/wasm/crates/serve/src/io.rs index ee0ea26ba..1a983625b 100644 --- a/JS/wasm/crates/serve/src/io.rs +++ b/JS/wasm/crates/serve/src/io.rs @@ -12,6 +12,15 @@ pub struct WasmInput<'a> { params: HashMap, } +#[derive(Deserialize, Debug)] +pub struct WasmOutput { + pub headers: HashMap, + pub status: u16, + #[serde(rename = "statusText")] + pub status_text: String, + body: String, +} + impl<'a> WasmInput<'a> { pub fn new(request: &'a Parts, body: &'a str) -> Self { let mut params = HashMap::new(); @@ -59,3 +68,8 @@ impl<'a> WasmInput<'a> { parsed_headers } } +impl WasmOutput { + pub fn body(&self) -> String { + self.body.clone() + } +} diff --git a/JS/wasm/crates/serve/src/lib.rs b/JS/wasm/crates/serve/src/lib.rs index 1b108342c..e759a86db 100644 --- a/JS/wasm/crates/serve/src/lib.rs +++ b/JS/wasm/crates/serve/src/lib.rs @@ -11,7 +11,11 @@ use std::{ use futures::future::{self, Ready}; use hyper::{ - http::request::Parts, server::conn::AddrStream, service::Service, Body, Request, Response, + header::{HeaderName, HeaderValue}, + http::request::Parts, + server::conn::AddrStream, + service::Service, + Body, Request, Response, }; use tracing::{error, event, info, Level}; @@ -21,7 +25,7 @@ use wasmtime_wasi::WasiCtxBuilder; use wasmtime::{Config, Engine, Instance, Linker, Memory, Module, Store}; -use crate::io::WasmInput; +use crate::io::{WasmInput, WasmOutput}; #[derive(Clone)] pub struct RequestService { @@ -76,11 +80,38 @@ impl WorkerCtx { let body = hyper::body::to_bytes(body).await.unwrap(); let body_str = String::from_utf8_lossy(&body).to_string(); let result = self.run(&parts, &body_str).await; - match result { Ok(output) => { - let response = Response::new(Body::from(output)); - Ok((response, None)) + let parsed_output = serde_json::from_slice::(&output); + match parsed_output { + Ok(parsed_output) => { + let mut response = Response::builder(); + response = response + .status(parsed_output.status); + + let headers = parsed_output.headers.clone(); + let headers_vec: Vec<(String, String)> = headers + .into_iter() + .map(|(k, v)| (k.to_owned(), v.to_owned())) + .collect(); + headers_vec.iter().for_each(|(key, value)| { + response.headers_mut().unwrap().insert( + HeaderName::from_bytes(key.as_bytes()).unwrap(), + HeaderValue::from_str(value).unwrap(), + ); + }); + let response = Response::new(Body::from(parsed_output.body())); + Ok((response, None)) + } + Err(e) => { + error!("Error: {}", e); + let response = Response::builder() + .status(500) + .body(Body::from("Internal Server Error")) + .unwrap(); + Ok((response, Some(e.into()))) + } + } } Err(e) => { error!("Error: {}", e); diff --git a/JS/wasm/crates/wasmjs-runtime/src/io.rs b/JS/wasm/crates/wasmjs-runtime/src/io.rs index c08511e3d..8d893516f 100644 --- a/JS/wasm/crates/wasmjs-runtime/src/io.rs +++ b/JS/wasm/crates/wasmjs-runtime/src/io.rs @@ -1,12 +1,12 @@ use std::{collections::HashMap, fmt::Debug}; +use crate::geolocation::GeolocationData; use actix_web::{ http::{header::HeaderMap, StatusCode, Uri}, HttpRequest, }; use serde::{Deserialize, Serialize}; use serde_json::{Map, Value as SerdeValue}; -use crate::geolocation::GeolocationData; #[derive(Serialize, Deserialize, Debug)] pub struct WasmInput<'a> { @@ -15,7 +15,7 @@ pub struct WasmInput<'a> { headers: HashMap, body: &'a str, params: HashMap, - geo: Map + geo: Map, } impl<'a> WasmInput<'a> { @@ -34,7 +34,7 @@ impl<'a> WasmInput<'a> { headers: Self::build_headers_hash(request.headers()), body, params, - geo: geo_details.data.clone() + geo: geo_details.data.clone(), } } diff --git a/JS/wasm/examples/ec-wasmjs-hono/src/index.js b/JS/wasm/examples/ec-wasmjs-hono/src/index.js index 716c17c9a..2a36bc5e9 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/src/index.js +++ b/JS/wasm/examples/ec-wasmjs-hono/src/index.js @@ -1,13 +1,12 @@ import { Hono } from "hono"; import { connect } from "@planetscale/database"; - +import { html } from "hono/html"; const app = new Hono(); const env = {}; app.get("/", (c) => { - return c.text("Hello World!"); + return c.text("Hello World!"); }); - app.get("/vars", async (c) => { try { const extVars = JSON.stringify({ @@ -21,6 +20,14 @@ app.get("/vars", async (c) => { } }); +app.get("/:username", (c) => { + const { username } = c.req.param(); + return c.html( + html` +

Hello! ${username}!

`, + ); +}); + app.get("/hello/:name", async (c) => { const name = c.req.param("name"); return c.text(`Async Hello ${name}!`); From e92f05a8e9e0f28977ca773ee7f1b084b7c43bf0 Mon Sep 17 00:00:00 2001 From: rahul007-bit Date: Sat, 17 Feb 2024 21:12:57 +0530 Subject: [PATCH 05/18] simple working example of jsonnet --- .gitignore | 1 + Cargo.toml | 29 + JS/wasm/crates/apis/Cargo.toml | 6 +- JS/wasm/crates/apis/src/http/mod.rs | 2 + JS/wasm/crates/apis/src/http/shims/index.js | 1 + .../apis/src/http/shims/package-lock.json | 161 + JS/wasm/crates/apis/src/http/shims/yarn.lock | 132 +- JS/wasm/crates/apis/src/http/types.rs | 20 + JS/wasm/crates/apis/src/jsonnet/index.js | 8 + JS/wasm/crates/apis/src/jsonnet/mod.rs | 55 + JS/wasm/crates/apis/src/lib.rs | 13 +- JS/wasm/crates/arakoo-core/Cargo.toml | 15 +- JS/wasm/crates/arakoo-core/src/execution.rs | 21 +- JS/wasm/crates/arakoo-core/src/lib.rs | 1 - JS/wasm/crates/arakoo-core/src/main.rs | 47 +- JS/wasm/crates/cli/Cargo.toml | 10 +- JS/wasm/crates/cli/build.rs | 24 +- JS/wasm/crates/cli/src/commands.rs | 2 +- .../crates/cli/src/wasm_generator/static.rs | 4 +- JS/wasm/crates/serve/Cargo.toml | 15 +- JS/wasm/crates/serve/src/binding.rs | 124 + JS/wasm/crates/serve/src/io.rs | 11 +- JS/wasm/crates/serve/src/lib.rs | 211 +- 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/.gitignore | 1 - JS/wasm/crates/wasmjs-engine/shims/build.js | 68 - .../wasmjs-engine/shims/package-lock.json | 567 --- .../crates/wasmjs-engine/shims/package.json | 24 - .../wasmjs-engine/shims/src/arakoo-jsonnet.js | 3 - .../crates/wasmjs-engine/shims/src/buffer.js | 17 - .../crates/wasmjs-engine/shims/src/crypto.ts | 321 -- .../crates/wasmjs-engine/shims/src/events.ts | 2 - .../crates/wasmjs-engine/shims/src/index.js | 371 -- .../shims/src/internal/async_hooks.d.ts | 26 - .../shims/src/internal/async_hooks.ts | 30 - .../shims/src/internal/buffer.d.ts | 38 - .../shims/src/internal/buffer.ts | 521 --- .../shims/src/internal/constants.ts | 44 - .../shims/src/internal/crypto.d.ts | 246 -- .../shims/src/internal/crypto.ts | 502 --- .../shims/src/internal/crypto_dh.ts | 198 - .../shims/src/internal/crypto_hash.ts | 230 - .../shims/src/internal/crypto_hkdf.ts | 110 - .../shims/src/internal/crypto_keys.ts | 406 -- .../shims/src/internal/crypto_pbkdf2.ts | 85 - .../shims/src/internal/crypto_random.ts | 393 -- .../shims/src/internal/crypto_util.ts | 102 - .../shims/src/internal/events.ts | 888 ---- .../shims/src/internal/internal_buffer.ts | 2274 ---------- .../shims/src/internal/internal_errors.ts | 473 -- .../shims/src/internal/internal_inspect.ts | 2772 ------------ .../shims/src/internal/internal_path.ts | 583 --- .../src/internal/internal_stringdecoder.ts | 135 - .../shims/src/internal/internal_types.ts | 96 - .../shims/src/internal/internal_utils.ts | 167 - .../shims/src/internal/process.ts | 80 - .../shims/src/internal/streams_adapters.js | 687 --- .../shims/src/internal/streams_duplex.js | 475 -- .../shims/src/internal/streams_legacy.js | 83 - .../shims/src/internal/streams_readable.js | 1767 -------- .../shims/src/internal/streams_transform.d.ts | 392 -- .../shims/src/internal/streams_transform.js | 143 - .../shims/src/internal/streams_util.js | 1043 ----- .../shims/src/internal/streams_writable.js | 816 ---- .../shims/src/internal/util.d.ts | 107 - .../wasmjs-engine/shims/src/internal/util.ts | 261 -- .../shims/src/internal/validators.ts | 171 - .../crates/wasmjs-engine/shims/src/path.js | 58 - .../wasmjs-engine/shims/src/path/posix.ts | 3 - .../wasmjs-engine/shims/src/path/win32.ts | 3 - JS/wasm/crates/wasmjs-engine/src/main.rs | 324 -- JS/wasm/crates/wasmjs-engine/taskfile.yml | 23 - .../crates/wasmjs-engine/wasmjs-engine.wasm | Bin 5169658 -> 0 bytes JS/wasm/crates/wasmjs-runtime/Cargo.lock | 3936 ----------------- JS/wasm/crates/wasmjs-runtime/Cargo.toml | 36 - JS/wasm/crates/wasmjs-runtime/arakoo.toml | 61 - JS/wasm/crates/wasmjs-runtime/src/bindings.rs | 299 -- 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 | 163 - JS/wasm/crates/wasmjs-runtime/src/io.rs | 98 - JS/wasm/crates/wasmjs-runtime/src/main.rs | 98 - JS/wasm/crates/wasmjs-runtime/src/routes.rs | 235 - JS/wasm/crates/wasmjs-runtime/src/runtime.rs | 70 - JS/wasm/crates/wasmjs-runtime/src/server.rs | 86 - JS/wasm/crates/wasmjs-runtime/src/store.rs | 46 - .../crates/wasmjs-runtime/src/wiggle_abi.rs | 69 - .../wasmjs-runtime/src/wiggle_abi/geo_impl.rs | 18 - JS/wasm/crates/wasmjs-runtime/src/workers.rs | 187 - .../crates/wasmjs-runtime/test-vars.jsonnet | 6 - JS/wasm/crates/wasmjs-runtime/test.jsonnet | 8 - JS/wasm/examples/ec-wasmjs-hono/build.js | 2 +- JS/wasm/wit/arakoo.wit | 5 + JS/wasm/wit/http-types.wit | 45 + Makefile | 43 + package-lock.json | 2 +- rust-toolchain.toml | 5 + 102 files changed, 748 insertions(+), 25653 deletions(-) create mode 100644 Cargo.toml create mode 100644 JS/wasm/crates/apis/src/http/shims/package-lock.json create mode 100644 JS/wasm/crates/apis/src/http/types.rs create mode 100644 JS/wasm/crates/apis/src/jsonnet/index.js create mode 100644 JS/wasm/crates/apis/src/jsonnet/mod.rs create mode 100644 JS/wasm/crates/serve/src/binding.rs delete mode 100644 JS/wasm/crates/wasmjs-engine/.gitignore delete mode 100644 JS/wasm/crates/wasmjs-engine/Cargo.lock delete mode 100644 JS/wasm/crates/wasmjs-engine/Cargo.toml delete mode 100644 JS/wasm/crates/wasmjs-engine/build.rs delete mode 100644 JS/wasm/crates/wasmjs-engine/package-lock.json delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/.gitignore delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/build.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/package-lock.json delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/package.json delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/buffer.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/events.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/index.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path.js delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts delete mode 100644 JS/wasm/crates/wasmjs-engine/src/main.rs delete mode 100644 JS/wasm/crates/wasmjs-engine/taskfile.yml delete mode 100755 JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm delete mode 100644 JS/wasm/crates/wasmjs-runtime/Cargo.lock delete mode 100644 JS/wasm/crates/wasmjs-runtime/Cargo.toml delete mode 100644 JS/wasm/crates/wasmjs-runtime/arakoo.toml delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/bindings.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/config.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/error.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/geolocation.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/handlers.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/io.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/main.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/routes.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/runtime.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/server.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/store.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/wiggle_abi.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/wiggle_abi/geo_impl.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/src/workers.rs delete mode 100644 JS/wasm/crates/wasmjs-runtime/test-vars.jsonnet delete mode 100644 JS/wasm/crates/wasmjs-runtime/test.jsonnet create mode 100644 JS/wasm/wit/arakoo.wit create mode 100644 JS/wasm/wit/http-types.wit create mode 100644 Makefile create mode 100644 rust-toolchain.toml diff --git a/.gitignore b/.gitignore index 850157278..bfdabff34 100644 --- a/.gitignore +++ b/.gitignore @@ -39,5 +39,6 @@ node_modules /target/ index.wasm index.wit +Cargo.lock .DS_Store diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 000000000..ec39a1622 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,29 @@ +[workspace] +members = [ + "JS/wasm/crates/apis", + "JS/wasm/crates/arakoo-core", + "JS/wasm/crates/cli", + "JS/wasm/crates/serve", +] +resolver = "2" + +[workspace.package] +edition = "2021" +version = "0.0.1" + +[workspace.dependencies] +wizer = "4.0.0" +wasmtime = "16" +wasmtime-wasi = "16" +wasi-common = "16" +javy = { version = "2.1.0" } +anyhow = "1.0.79" +once_cell = "1.19.0" +serde = { version = "1", features = ["derive"] } +serde_json = "1" +[profile.release] +lto = true +opt-level = 3 + +[profile.dev] +incremental = true diff --git a/JS/wasm/crates/apis/Cargo.toml b/JS/wasm/crates/apis/Cargo.toml index b31e6a2e6..0711d4b0e 100644 --- a/JS/wasm/crates/apis/Cargo.toml +++ b/JS/wasm/crates/apis/Cargo.toml @@ -14,4 +14,8 @@ text_encoding = [] [dependencies] anyhow = { workspace = true } fastrand = { version = "2.0.1", optional = true } -javy = {workspace = true} \ No newline at end of file +javy = { workspace = true } +# wit-bindgen-rust = { git = "https://github.com/bytecodealliance/wit-bindgen", tag = "v0.2.0" } +tokio = "1.36.0" +serde = { workspace = true } +serde_json = { workspace = true } diff --git a/JS/wasm/crates/apis/src/http/mod.rs b/JS/wasm/crates/apis/src/http/mod.rs index 37a0b2e47..da6b30dee 100644 --- a/JS/wasm/crates/apis/src/http/mod.rs +++ b/JS/wasm/crates/apis/src/http/mod.rs @@ -1,3 +1,5 @@ +pub mod types; + use anyhow::Result; use crate::JSApiSet; diff --git a/JS/wasm/crates/apis/src/http/shims/index.js b/JS/wasm/crates/apis/src/http/shims/index.js index 1e271418f..3c9521fba 100644 --- a/JS/wasm/crates/apis/src/http/shims/index.js +++ b/JS/wasm/crates/apis/src/http/shims/index.js @@ -282,6 +282,7 @@ const requestToHandler = (input) => { Promise.resolve(event.response) .then((res) => { + console.log("res: ", res); result = { body: res.body, headers: res.headers.headers, diff --git a/JS/wasm/crates/apis/src/http/shims/package-lock.json b/JS/wasm/crates/apis/src/http/shims/package-lock.json new file mode 100644 index 000000000..033db7ab7 --- /dev/null +++ b/JS/wasm/crates/apis/src/http/shims/package-lock.json @@ -0,0 +1,161 @@ +{ + "name": "shims", + "version": "1.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "shims", + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "@sinonjs/text-encoding": "^0.7.2", + "esbuild": "^0.20.0", + "http-status": "^1.7.3", + "query-string": "^8.1.0", + "url-parse": "^1.5.10" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz", + "integrity": "sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ==", + "cpu": [ + "arm64" + ], + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "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==", + "license": "(Unlicense OR Apache-2.0)" + }, + "node_modules/decode-uri-component": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz", + "integrity": "sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==", + "license": "MIT", + "engines": { + "node": ">=14.16" + } + }, + "node_modules/esbuild": { + "version": "0.20.0", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz", + "integrity": "sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA==", + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.20.0", + "@esbuild/android-arm": "0.20.0", + "@esbuild/android-arm64": "0.20.0", + "@esbuild/android-x64": "0.20.0", + "@esbuild/darwin-arm64": "0.20.0", + "@esbuild/darwin-x64": "0.20.0", + "@esbuild/freebsd-arm64": "0.20.0", + "@esbuild/freebsd-x64": "0.20.0", + "@esbuild/linux-arm": "0.20.0", + "@esbuild/linux-arm64": "0.20.0", + "@esbuild/linux-ia32": "0.20.0", + "@esbuild/linux-loong64": "0.20.0", + "@esbuild/linux-mips64el": "0.20.0", + "@esbuild/linux-ppc64": "0.20.0", + "@esbuild/linux-riscv64": "0.20.0", + "@esbuild/linux-s390x": "0.20.0", + "@esbuild/linux-x64": "0.20.0", + "@esbuild/netbsd-x64": "0.20.0", + "@esbuild/openbsd-x64": "0.20.0", + "@esbuild/sunos-x64": "0.20.0", + "@esbuild/win32-arm64": "0.20.0", + "@esbuild/win32-ia32": "0.20.0", + "@esbuild/win32-x64": "0.20.0" + } + }, + "node_modules/filter-obj": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz", + "integrity": "sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng==", + "license": "MIT", + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "BSD-3-Clause", + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/query-string": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-8.1.0.tgz", + "integrity": "sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw==", + "license": "MIT", + "dependencies": { + "decode-uri-component": "^0.4.1", + "filter-obj": "^5.1.0", + "split-on-first": "^3.0.0" + }, + "engines": { + "node": ">=14.16" + }, + "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==", + "license": "MIT" + }, + "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==", + "license": "MIT" + }, + "node_modules/split-on-first": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz", + "integrity": "sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==", + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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==", + "license": "MIT", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + } + } +} diff --git a/JS/wasm/crates/apis/src/http/shims/yarn.lock b/JS/wasm/crates/apis/src/http/shims/yarn.lock index f70d7a66a..5c89199f2 100644 --- a/JS/wasm/crates/apis/src/http/shims/yarn.lock +++ b/JS/wasm/crates/apis/src/http/shims/yarn.lock @@ -2,134 +2,24 @@ # yarn lockfile v1 -"@esbuild/aix-ppc64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.20.0.tgz#509621cca4e67caf0d18561a0c56f8b70237472f" - integrity sha512-fGFDEctNh0CcSwsiRPxiaqX0P5rq+AqE0SRhYGZ4PX46Lg1FNR6oCxJghf8YgY0WQEgQuh3lErUFE4KxLeRmmw== - -"@esbuild/android-arm64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.20.0.tgz#109a6fdc4a2783fc26193d2687827045d8fef5ab" - integrity sha512-aVpnM4lURNkp0D3qPoAzSG92VXStYmoVPOgXveAUoQBWRSuQzt51yvSju29J6AHPmwY1BjH49uR29oyfH1ra8Q== - -"@esbuild/android-arm@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.20.0.tgz#1397a2c54c476c4799f9b9073550ede496c94ba5" - integrity sha512-3bMAfInvByLHfJwYPJRlpTeaQA75n8C/QKpEaiS4HrFWFiJlNI0vzq/zCjBrhAYcPyVPG7Eo9dMrcQXuqmNk5g== - -"@esbuild/android-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.20.0.tgz#2b615abefb50dc0a70ac313971102f4ce2fdb3ca" - integrity sha512-uK7wAnlRvjkCPzh8jJ+QejFyrP8ObKuR5cBIsQZ+qbMunwR8sbd8krmMbxTLSrDhiPZaJYKQAU5Y3iMDcZPhyQ== - "@esbuild/darwin-arm64@0.20.0": version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz#5c122ed799eb0c35b9d571097f77254964c276a2" + resolved "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.20.0.tgz" integrity sha512-AjEcivGAlPs3UAcJedMa9qYg9eSfU6FnGHJjT8s346HSKkrcWlYezGE8VaO2xKfvvlZkgAhyvl06OJOxiMgOYQ== -"@esbuild/darwin-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.20.0.tgz#9561d277002ba8caf1524f209de2b22e93d170c1" - integrity sha512-bsgTPoyYDnPv8ER0HqnJggXK6RyFy4PH4rtsId0V7Efa90u2+EifxytE9pZnsDgExgkARy24WUQGv9irVbTvIw== - -"@esbuild/freebsd-arm64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.20.0.tgz#84178986a3138e8500d17cc380044868176dd821" - integrity sha512-kQ7jYdlKS335mpGbMW5tEe3IrQFIok9r84EM3PXB8qBFJPSc6dpWfrtsC/y1pyrz82xfUIn5ZrnSHQQsd6jebQ== - -"@esbuild/freebsd-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.20.0.tgz#3f9ce53344af2f08d178551cd475629147324a83" - integrity sha512-uG8B0WSepMRsBNVXAQcHf9+Ko/Tr+XqmK7Ptel9HVmnykupXdS4J7ovSQUIi0tQGIndhbqWLaIL/qO/cWhXKyQ== - -"@esbuild/linux-arm64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.20.0.tgz#24efa685515689df4ecbc13031fa0a9dda910a11" - integrity sha512-uTtyYAP5veqi2z9b6Gr0NUoNv9F/rOzI8tOD5jKcCvRUn7T60Bb+42NDBCWNhMjkQzI0qqwXkQGo1SY41G52nw== - -"@esbuild/linux-arm@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.20.0.tgz#6b586a488e02e9b073a75a957f2952b3b6e87b4c" - integrity sha512-2ezuhdiZw8vuHf1HKSf4TIk80naTbP9At7sOqZmdVwvvMyuoDiZB49YZKLsLOfKIr77+I40dWpHVeY5JHpIEIg== - -"@esbuild/linux-ia32@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.20.0.tgz#84ce7864f762708dcebc1b123898a397dea13624" - integrity sha512-c88wwtfs8tTffPaoJ+SQn3y+lKtgTzyjkD8NgsyCtCmtoIC8RDL7PrJU05an/e9VuAke6eJqGkoMhJK1RY6z4w== - -"@esbuild/linux-loong64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.20.0.tgz#1922f571f4cae1958e3ad29439c563f7d4fd9037" - integrity sha512-lR2rr/128/6svngnVta6JN4gxSXle/yZEZL3o4XZ6esOqhyR4wsKyfu6qXAL04S4S5CgGfG+GYZnjFd4YiG3Aw== - -"@esbuild/linux-mips64el@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.20.0.tgz#7ca1bd9df3f874d18dbf46af009aebdb881188fe" - integrity sha512-9Sycc+1uUsDnJCelDf6ZNqgZQoK1mJvFtqf2MUz4ujTxGhvCWw+4chYfDLPepMEvVL9PDwn6HrXad5yOrNzIsQ== - -"@esbuild/linux-ppc64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.20.0.tgz#8f95baf05f9486343bceeb683703875d698708a4" - integrity sha512-CoWSaaAXOZd+CjbUTdXIJE/t7Oz+4g90A3VBCHLbfuc5yUQU/nFDLOzQsN0cdxgXd97lYW/psIIBdjzQIwTBGw== - -"@esbuild/linux-riscv64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.20.0.tgz#ca63b921d5fe315e28610deb0c195e79b1a262ca" - integrity sha512-mlb1hg/eYRJUpv8h/x+4ShgoNLL8wgZ64SUr26KwglTYnwAWjkhR2GpoKftDbPOCnodA9t4Y/b68H4J9XmmPzA== - -"@esbuild/linux-s390x@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.20.0.tgz#cb3d069f47dc202f785c997175f2307531371ef8" - integrity sha512-fgf9ubb53xSnOBqyvWEY6ukBNRl1mVX1srPNu06B6mNsNK20JfH6xV6jECzrQ69/VMiTLvHMicQR/PgTOgqJUQ== - -"@esbuild/linux-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.20.0.tgz#ac617e0dc14e9758d3d7efd70288c14122557dc7" - integrity sha512-H9Eu6MGse++204XZcYsse1yFHmRXEWgadk2N58O/xd50P9EvFMLJTQLg+lB4E1cF2xhLZU5luSWtGTb0l9UeSg== - -"@esbuild/netbsd-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.20.0.tgz#6cc778567f1513da6e08060e0aeb41f82eb0f53c" - integrity sha512-lCT675rTN1v8Fo+RGrE5KjSnfY0x9Og4RN7t7lVrN3vMSjy34/+3na0q7RIfWDAj0e0rCh0OL+P88lu3Rt21MQ== - -"@esbuild/openbsd-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.20.0.tgz#76848bcf76b4372574fb4d06cd0ed1fb29ec0fbe" - integrity sha512-HKoUGXz/TOVXKQ+67NhxyHv+aDSZf44QpWLa3I1lLvAwGq8x1k0T+e2HHSRvxWhfJrFxaaqre1+YyzQ99KixoA== - -"@esbuild/sunos-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.20.0.tgz#ea4cd0639bf294ad51bc08ffbb2dac297e9b4706" - integrity sha512-GDwAqgHQm1mVoPppGsoq4WJwT3vhnz/2N62CzhvApFD1eJyTroob30FPpOZabN+FgCjhG+AgcZyOPIkR8dfD7g== - -"@esbuild/win32-arm64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.20.0.tgz#a5c171e4a7f7e4e8be0e9947a65812c1535a7cf0" - integrity sha512-0vYsP8aC4TvMlOQYozoksiaxjlvUcQrac+muDqj1Fxy6jh9l9CZJzj7zmh8JGfiV49cYLTorFLxg7593pGldwQ== - -"@esbuild/win32-ia32@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.20.0.tgz#f8ac5650c412d33ea62d7551e0caf82da52b7f85" - integrity sha512-p98u4rIgfh4gdpV00IqknBD5pC84LCub+4a3MO+zjqvU5MVXOc3hqR2UgT2jI2nh3h8s9EQxmOsVI3tyzv1iFg== - -"@esbuild/win32-x64@0.20.0": - version "0.20.0" - resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.20.0.tgz#2efddf82828aac85e64cef62482af61c29561bee" - integrity sha512-NgJnesu1RtWihtTtXGFMU5YSE6JyyHPMxCwBZK7a6/8d31GuSo9l0Ss7w1Jw5QnKUawG6UEehs883kcXf5fYwg== - "@sinonjs/text-encoding@^0.7.2": version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== decode-uri-component@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.4.1.tgz#2ac4859663c704be22bf7db760a1494a49ab2cc5" + resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.4.1.tgz" integrity sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ== esbuild@^0.20.0: version "0.20.0" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.20.0.tgz#a7170b63447286cd2ff1f01579f09970e6965da4" + resolved "https://registry.npmjs.org/esbuild/-/esbuild-0.20.0.tgz" integrity sha512-6iwE3Y2RVYCME1jLpBqq7LQWK3MW6vjV2bZy6gt/WrqkY+WE74Spyc0ThAOYpMtITvnjX09CrC6ym7A/m9mebA== optionalDependencies: "@esbuild/aix-ppc64" "0.20.0" @@ -158,17 +48,17 @@ esbuild@^0.20.0: filter-obj@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/filter-obj/-/filter-obj-5.1.0.tgz#5bd89676000a713d7db2e197f660274428e524ed" + resolved "https://registry.npmjs.org/filter-obj/-/filter-obj-5.1.0.tgz" integrity sha512-qWeTREPoT7I0bifpPUXtxkZJ1XJzxWtfoWWkdVGqa+eCr3SHW/Ocp89o8vLvbUuQnadybJpjOKu4V+RwO6sGng== http-status@^1.7.3: version "1.7.3" - resolved "https://registry.yarnpkg.com/http-status/-/http-status-1.7.3.tgz#d6dcc3a5a3fb5b1bfcc6ad2b38af0b7258bc1459" + resolved "https://registry.npmjs.org/http-status/-/http-status-1.7.3.tgz" integrity sha512-GS8tL1qHT2nBCMJDYMHGkkkKQLNkIAHz37vgO68XKvzv+XyqB4oh/DfmMHdtRzfqSJPj1xKG2TaELZtlCz6BEQ== query-string@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/query-string/-/query-string-8.1.0.tgz#e7f95367737219544cd360a11a4f4ca03836e115" + resolved "https://registry.npmjs.org/query-string/-/query-string-8.1.0.tgz" integrity sha512-BFQeWxJOZxZGix7y+SByG3F36dA0AbTy9o6pSmKFcFz7DAj0re9Frkty3saBn3nHo3D0oZJ/+rx3r8H8r8Jbpw== dependencies: decode-uri-component "^0.4.1" @@ -177,22 +67,22 @@ query-string@^8.1.0: querystringify@^2.1.1: version "2.2.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.2.0.tgz#3345941b4153cb9d082d8eee4cda2016a9aef7f6" + resolved "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz" integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== requires-port@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== split-on-first@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/split-on-first/-/split-on-first-3.0.0.tgz#f04959c9ea8101b9b0bbf35a61b9ebea784a23e7" + resolved "https://registry.npmjs.org/split-on-first/-/split-on-first-3.0.0.tgz" integrity sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA== url-parse@^1.5.10: version "1.5.10" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" + resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz" integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ== dependencies: querystringify "^2.1.1" diff --git a/JS/wasm/crates/apis/src/http/types.rs b/JS/wasm/crates/apis/src/http/types.rs new file mode 100644 index 000000000..2fff3a22a --- /dev/null +++ b/JS/wasm/crates/apis/src/http/types.rs @@ -0,0 +1,20 @@ +use serde::{Deserialize, Serialize}; +use std::collections::HashMap; + +#[derive(Serialize, Deserialize, Debug)] +pub struct Request { + url: String, + method: String, + headers: HashMap, + body: String, + params: HashMap, +} + +#[derive(Serialize, Deserialize, Debug)] +pub struct Response { + pub headers: HashMap, + pub status: u16, + #[serde(rename = "statusText")] + pub status_text: String, + pub body: String, +} diff --git a/JS/wasm/crates/apis/src/jsonnet/index.js b/JS/wasm/crates/apis/src/jsonnet/index.js new file mode 100644 index 000000000..f0a782548 --- /dev/null +++ b/JS/wasm/crates/apis/src/jsonnet/index.js @@ -0,0 +1,8 @@ + +const this_function = ()=>{ + console.log("test function") +} + +export { + this_function +} diff --git a/JS/wasm/crates/apis/src/jsonnet/mod.rs b/JS/wasm/crates/apis/src/jsonnet/mod.rs new file mode 100644 index 000000000..6206d7ee1 --- /dev/null +++ b/JS/wasm/crates/apis/src/jsonnet/mod.rs @@ -0,0 +1,55 @@ +use javy::quickjs::{JSContextRef, JSValue, JSValueRef}; + +use crate::{jsonnet_evaluate, jsonnet_output, jsonnet_output_len, JSApiSet}; + +static JSONNET: &str = include_str!("./index.js"); + +pub(super) struct Jsonnet; + +impl JSApiSet for Jsonnet { + fn register(&self, runtime: &javy::Runtime, _config: &crate::APIConfig) -> anyhow::Result<()> { + let context = runtime.context(); + let global = context.global_object()?; + eprintln!("Registering jsonnet"); + global.set_property( + "__jsonnet_evaluate_snippet", + context.wrap_callback(jsonnet_evaluate_snippet_callback())?, + )?; + + match context.eval_module("arakoo-jsonnet", JSONNET) { + Ok(_) => {} + Err(err) => eprintln!("Error loading the path shim: {err}"), + }; + Ok(()) + } +} + +fn jsonnet_evaluate_snippet_callback( +) -> impl FnMut(&JSContextRef, JSValueRef, &[JSValueRef]) -> anyhow::Result { + move |_ctx, _this, args| { + // check the number of arguments + if args.len() != 2 { + eprintln!("Expected 2 arguments, got {}", args.len()); + return Err(anyhow::anyhow!("Expected 2 arguments, got {}", args.len())); + } + eprintln!("Evaluating jsonnet snippet"); + let var = args.get(0).unwrap().to_string(); + let code = args.get(1).unwrap().to_string(); + let var_len = var.len() as i32; + let code_len = code.len() as i32; + let var_ptr = var.as_ptr(); + let code_ptr = code.as_ptr(); + eprintln!("Calling jsonnet_evaluate"); + unsafe { jsonnet_evaluate(var_ptr, var_len, code_ptr, code_len) } + let out_len = unsafe { jsonnet_output_len() }; + let mut out_buffer = Vec::with_capacity(out_len as usize); + let out_ptr = out_buffer.as_mut_ptr(); + eprintln!("Getting jsonnet_output"); + let out_buffer = unsafe { + jsonnet_output(out_ptr); + Vec::from_raw_parts(out_ptr, out_len as usize, out_len as usize) + }; + let jsonnet_output = String::from_utf8(out_buffer).unwrap(); + Ok(jsonnet_output.into()) + } +} diff --git a/JS/wasm/crates/apis/src/lib.rs b/JS/wasm/crates/apis/src/lib.rs index 739a3b931..edc7dbafe 100644 --- a/JS/wasm/crates/apis/src/lib.rs +++ b/JS/wasm/crates/apis/src/lib.rs @@ -61,7 +61,16 @@ mod stream_io; #[cfg(feature = "text_encoding")] mod text_encoding; -mod http; +pub mod http; +mod jsonnet; + +#[link(wasm_import_module = "arakoo")] +extern "C" { + fn jsonnet_evaluate(var_ptr: *const u8, var_len: i32, code_ptr: *const u8, code_len: i32); + fn jsonnet_output_len() -> i32; + fn jsonnet_output(ptr: *mut u8); + +} pub(crate) trait JSApiSet { fn register(&self, runtime: &Runtime, config: &APIConfig) -> Result<()>; @@ -88,5 +97,7 @@ pub fn add_to_runtime(runtime: &Runtime, config: APIConfig) -> Result<()> { #[cfg(feature = "text_encoding")] text_encoding::TextEncoding.register(runtime, &config)?; http::Http.register(runtime, &config)?; + + jsonnet::Jsonnet.register(runtime, &config)?; Ok(()) } diff --git a/JS/wasm/crates/arakoo-core/Cargo.toml b/JS/wasm/crates/arakoo-core/Cargo.toml index 2c4b24772..92dc76e1a 100644 --- a/JS/wasm/crates/arakoo-core/Cargo.toml +++ b/JS/wasm/crates/arakoo-core/Cargo.toml @@ -12,9 +12,14 @@ crate-type = ["cdylib"] [dependencies] anyhow = { workspace = true } -javy = { workspace=true, features = ["export_alloc_fns","json"] } -once_cell = {workspace = true} -apis = { path = "../apis", features = ["console", "text_encoding", "random", "stream_io"] } - +javy = { workspace = true, features = ["export_alloc_fns", "json"] } +once_cell = { workspace = true } +apis = { path = "../apis", features = [ + "console", + "text_encoding", + "random", + "stream_io", +] } +serde_json = { workspace = true } [features] -experimental_event_loop = [] \ No newline at end of file +experimental_event_loop = [] diff --git a/JS/wasm/crates/arakoo-core/src/execution.rs b/JS/wasm/crates/arakoo-core/src/execution.rs index 11cd32473..455427f3f 100644 --- a/JS/wasm/crates/arakoo-core/src/execution.rs +++ b/JS/wasm/crates/arakoo-core/src/execution.rs @@ -1,6 +1,7 @@ use std::process; use anyhow::{bail, Error, Result}; +use apis::http::types::Response; use javy::{json, quickjs::JSContextRef, Runtime}; pub fn run_bytecode(runtime: &Runtime, bytecode: &[u8]) { @@ -12,14 +13,23 @@ pub fn run_bytecode(runtime: &Runtime, bytecode: &[u8]) { .unwrap_or_else(handle_error); } +#[allow(dead_code)] pub fn invoke_entrypoint( runtime: &Runtime, bytecode: &[u8], input: String, -) -> anyhow::Result> { +) -> anyhow::Result { let context = runtime.context(); - context.eval_binary(bytecode).unwrap(); - + eprintln!("context.eval_binary"); + match context.eval_binary(bytecode) { + Ok(_) => {} + Err(e) => { + eprintln!("error"); + eprintln!("Error while running bytecode: {e}"); + return Err(e); + } + } + eprintln!("context.global_object()"); let global = context.global_object().unwrap(); let entry_point = global.get_property("entrypoint").unwrap(); @@ -29,12 +39,14 @@ pub fn invoke_entrypoint( eprintln!("Error when transcoding input: {e}"); process::abort(); }); + eprintln!("entry_point.call"); entry_point .call(&global, &[input_value]) .and_then(|_| process_event_loop(context)) .unwrap_or_else(handle_error); let global = context.global_object().unwrap(); + let error = global.get_property("error").unwrap(); let output = global.get_property("result").unwrap(); @@ -44,7 +56,8 @@ pub fn invoke_entrypoint( process::abort(); } let output = json::transcode_output(output).unwrap(); - Ok(output) + let response: Response = serde_json::from_slice(&output).unwrap(); + Ok(response) } pub fn invoke_function(runtime: &Runtime, fn_module: &str, fn_name: &str) { diff --git a/JS/wasm/crates/arakoo-core/src/lib.rs b/JS/wasm/crates/arakoo-core/src/lib.rs index 5a56a9400..567aed64d 100644 --- a/JS/wasm/crates/arakoo-core/src/lib.rs +++ b/JS/wasm/crates/arakoo-core/src/lib.rs @@ -9,7 +9,6 @@ mod runtime; const FUNCTION_MODULE_NAME: &str = "function.mjs"; static mut COMPILE_SRC_RET_AREA: [u32; 2] = [0; 2]; - static mut RUNTIME: OnceCell = OnceCell::new(); /// Used by Wizer to preinitialize the module diff --git a/JS/wasm/crates/arakoo-core/src/main.rs b/JS/wasm/crates/arakoo-core/src/main.rs index 8d15716e7..d974fecac 100644 --- a/JS/wasm/crates/arakoo-core/src/main.rs +++ b/JS/wasm/crates/arakoo-core/src/main.rs @@ -1,24 +1,30 @@ use javy::Runtime; use once_cell::sync::OnceCell; -use std::io::{self, Read}; + +use std::io; +use std::io::Read; use std::slice; use std::str; use std::string::String; mod execution; mod runtime; - +use apis::http::types::Request; const FUNCTION_MODULE_NAME: &str = "function.mjs"; -static mut COMPILE_SRC_RET_AREA: [u32; 2] = [0; 2]; - static mut RUNTIME: OnceCell = OnceCell::new(); static mut BYTECODE: OnceCell> = OnceCell::new(); +#[link(wasm_import_module = "arakoo")] +extern "C" { + fn set_output(ptr: *const u8, len: i32); + fn get_request_len() -> i32; + fn get_request(ptr: *mut u8); +} + #[export_name = "wizer.initialize"] pub extern "C" fn init() { let _wasm_ctx = WasmCtx::new(); - let runtime = runtime::new_runtime().unwrap(); let mut contents = String::new(); @@ -41,16 +47,31 @@ fn main() { } #[export_name = "run_entrypoint"] -pub unsafe fn run_entrypoint(input_ptr: *mut u8, input_len: usize) -> *const u32 { +pub fn run_entrypoint() { let runtime = unsafe { RUNTIME.take().unwrap() }; let bytecode = unsafe { BYTECODE.take().unwrap() }; - let input = str::from_utf8(unsafe { slice::from_raw_parts(input_ptr, input_len) }).unwrap(); - let result = execution::invoke_entrypoint(&runtime, &bytecode, input.to_string()).unwrap(); - let result_len = result.len(); - let result_ptr = Box::leak(result.into_boxed_slice()).as_ptr(); - COMPILE_SRC_RET_AREA[0] = result_ptr as u32; - COMPILE_SRC_RET_AREA[1] = result_len.try_into().unwrap(); - COMPILE_SRC_RET_AREA.as_ptr() + eprintln!("Running entrypoint"); + let input_len = unsafe { get_request_len() }; + eprintln!("Input length: {}", input_len); + let mut input_buffer = Vec::with_capacity(input_len as usize); + let input_ptr = input_buffer.as_mut_ptr(); + eprintln!("get_request"); + let input_buffer = unsafe { + get_request(input_ptr); + Vec::from_raw_parts(input_ptr, input_len as usize, input_len as usize) + }; + let request: Request = serde_json::from_slice(&input_buffer).unwrap(); + let request_string = serde_json::to_string(&request).unwrap(); + let result = execution::invoke_entrypoint(&runtime, &bytecode, request_string).unwrap(); + eprintln!("convert result"); + let result_string = serde_json::to_string(&result).unwrap(); + + let len = result_string.len() as i32; + let result_ptr = result_string.as_ptr(); + eprintln!("set_output"); + unsafe { + set_output(result_ptr, len); + }; } // Removed in post-processing. diff --git a/JS/wasm/crates/cli/Cargo.toml b/JS/wasm/crates/cli/Cargo.toml index d0c379b53..277e50c5e 100644 --- a/JS/wasm/crates/cli/Cargo.toml +++ b/JS/wasm/crates/cli/Cargo.toml @@ -6,7 +6,7 @@ version.workspace = true # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [[bin]] -name = "arakoo" +name = "cli" path = "src/main.rs" [features] @@ -25,9 +25,9 @@ wasmtime-wasi = { workspace = true } wasi-common = { workspace = true } walrus = "0.20.3" swc_core = { version = "0.87.19", features = [ - "common_sourcemap", - "ecma_ast", - "ecma_parser", + "common_sourcemap", + "ecma_ast", + "ecma_parser", ] } wit-parser = "0.13.0" convert_case = "0.6.0" @@ -47,4 +47,4 @@ wasmparser = "0.118.1" [build-dependencies] anyhow = "1.0.79" -wizer = { workspace = true } \ No newline at end of file +wizer = { workspace = true } diff --git a/JS/wasm/crates/cli/build.rs b/JS/wasm/crates/cli/build.rs index dfe079d62..3bd70e472 100644 --- a/JS/wasm/crates/cli/build.rs +++ b/JS/wasm/crates/cli/build.rs @@ -43,12 +43,24 @@ fn read_file(path: impl AsRef) -> Result> { // Copy the engine binary build from the `core` crate fn copy_javy_core() -> Result<()> { let cargo_manifest_dir = env::var("CARGO_MANIFEST_DIR")?; - let module_path = PathBuf::from(&cargo_manifest_dir) - .parent() - .unwrap() - .parent() - .unwrap() - .join("target/wasm32-wasi/release"); + // let if build mode is release or debug + + let module_path = if cfg!(debug_assertions) { + PathBuf::from(&cargo_manifest_dir) + .parent() + .unwrap() + .parent() + .unwrap() + .join("../../target/wasm32-wasi/debug/") + } else { + PathBuf::from(&cargo_manifest_dir) + .parent() + .unwrap() + .parent() + .unwrap() + .join("../../target/wasm32-wasi/release/") + }; + let engine_path = module_path.join("arakoo-core.wasm"); let quickjs_provider_path = module_path.join("javy_quickjs_provider.wasm"); let quickjs_provider_wizened_path = module_path.join("javy_quickjs_provider_wizened.wasm"); diff --git a/JS/wasm/crates/cli/src/commands.rs b/JS/wasm/crates/cli/src/commands.rs index ef7563d8d..5a665a693 100644 --- a/JS/wasm/crates/cli/src/commands.rs +++ b/JS/wasm/crates/cli/src/commands.rs @@ -51,7 +51,7 @@ pub struct EmitProviderCommandOpts { #[derive(Debug, StructOpt)] pub struct ServeCommandOpts { input: PathBuf, - #[structopt(short, long, default_value = "0.0.0.0")] + #[structopt(short, long, default_value = "127.0.0.1")] hostname: String, #[structopt(short, long, default_value = "8080")] port: u16, diff --git a/JS/wasm/crates/cli/src/wasm_generator/static.rs b/JS/wasm/crates/cli/src/wasm_generator/static.rs index 53a7450f7..14440b494 100644 --- a/JS/wasm/crates/cli/src/wasm_generator/static.rs +++ b/JS/wasm/crates/cli/src/wasm_generator/static.rs @@ -58,7 +58,7 @@ pub fn generate(js: &JS, exports: Vec, no_source_compression: bool) -> R ) }; - // let realloc_export = realloc.id(); + let realloc_export = realloc.id(); let free_export = free.id(); let invoke_export = invoke.id(); @@ -76,7 +76,7 @@ pub fn generate(js: &JS, exports: Vec, no_source_compression: bool) -> R } // We no longer need these exports so remove them. - // module.exports.delete(realloc_export); + module.exports.delete(realloc_export); module.exports.delete(free_export); module.exports.delete(invoke_export); diff --git a/JS/wasm/crates/serve/Cargo.toml b/JS/wasm/crates/serve/Cargo.toml index 0d0c111aa..cc31e87da 100644 --- a/JS/wasm/crates/serve/Cargo.toml +++ b/JS/wasm/crates/serve/Cargo.toml @@ -8,11 +8,18 @@ version.workspace = true wasi-common = { workspace = true } wasmtime = { workspace = true } wasmtime-wasi = { workspace = true } -anyhow = {workspace = true} -serde = { version = "1", features = ["derive"] } +anyhow = { workspace = true } +serde = { workspace = true } serde_json = "1" tokio = { version = "1.21.2", features = ["full"] } tracing = "0.1.37" -hyper = {version="0.14.26", features=["full"]} +hyper = { version = "0.14.26", features = ["full"] } futures = "0.3.24" -tracing-subscriber = { version = "^0.3.18", features = ["env-filter", "fmt"] } \ No newline at end of file +tracing-subscriber = { version = "^0.3.18", features = ["env-filter", "fmt"] } +wit-bindgen-wasmtime = { git = "https://github.com/fermyon/wit-bindgen-backport", rev = "598cd229bb43baceff9616d16930b8a5a3e79d79", features = [ + "async", +] } +jrsonnet-evaluator = { version = "0.5.0-pre95" } +jrsonnet-parser = { version = "0.5.0-pre95" } +jrsonnet-stdlib = { version = "0.5.0-pre95" } +jrsonnet-gcmodule = { version = "0.3.6" } diff --git a/JS/wasm/crates/serve/src/binding.rs b/JS/wasm/crates/serve/src/binding.rs new file mode 100644 index 000000000..f354f4134 --- /dev/null +++ b/JS/wasm/crates/serve/src/binding.rs @@ -0,0 +1,124 @@ +use std::sync::{Arc, Mutex}; + +use jrsonnet_evaluator::{ + apply_tla, + function::TlaArg, + gc::GcHashMap, + manifest::{JsonFormat, ManifestFormat}, + tb, + trace::{CompactFormat, PathResolver, TraceFormat}, + FileImportResolver, State, +}; +use jrsonnet_parser::IStr; +use wasi_common::WasiCtx; +use wasmtime::*; + +pub struct VM { + state: State, + manifest_format: Box, + trace_format: Box, + tla_args: GcHashMap, +} +pub fn add_exports_to_linker(linker: &mut Linker) -> anyhow::Result<()> { + let output: Arc> = Arc::new(Mutex::new(String::new())); + let output_clone = output.clone(); + linker.func_wrap( + "arakoo", + "jsonnet_evaluate", + move |mut caller: Caller<'_, WasiCtx>, + var_ptr: i32, + var_len: i32, + path_ptr: i32, + code_len: i32| { + println!("Evaluating jsonnet snippet in cli"); + let output = output_clone.clone(); + let mem = match caller.get_export("memory") { + Some(Extern::Memory(mem)) => mem, + _ => return Err(Trap::NullReference.into()), + }; + let var_offset = var_ptr as u32 as usize; + let path_offset = path_ptr as u32 as usize; + let mut var_buffer = vec![0; var_len as usize]; + let mut path_buffer = vec![0; code_len as usize]; + + let path = match mem.read(&caller, path_offset, &mut path_buffer) { + Ok(_) => match std::str::from_utf8(&path_buffer) { + Ok(s) => s, + Err(_) => return Err(Trap::BadSignature.into()), + }, + _ => return Err(Trap::MemoryOutOfBounds.into()), + }; + let _var = match mem.read(&caller, var_offset, &mut var_buffer) { + Ok(_) => match std::str::from_utf8(&var_buffer) { + Ok(s) => s, + Err(_) => return Err(Trap::BadSignature.into()), + }, + _ => return Err(Trap::MemoryOutOfBounds.into()), + }; + + let state = State::default(); + state.settings_mut().import_resolver = tb!(FileImportResolver::default()); + state.settings_mut().context_initializer = + tb!(jrsonnet_stdlib::ContextInitializer::new( + state.clone(), + PathResolver::new_cwd_fallback(), + )); + let vm = VM { + state, + manifest_format: Box::new(JsonFormat::default()), + trace_format: Box::new(CompactFormat::default()), + tla_args: GcHashMap::default(), + }; + let code = std::fs::read_to_string(path).unwrap(); + let out = match vm + .state + .evaluate_snippet("snippet", code) + .and_then(|val| apply_tla(vm.state.clone(), &vm.tla_args, val)) + .and_then(|val| val.manifest(&vm.manifest_format)) + { + Ok(v) => v, + Err(e) => { + let mut out = String::new(); + vm.trace_format.write_trace(&mut out, &e).unwrap(); + out + } + }; + // let out_offset = out_ptr as u32 as usize; + // match mem.write(&mut caller, out_offset, out.as_bytes()) { + // Ok(_) => {} + // _ => return Err(Trap::MemoryOutOfBounds.into()), + // }; + let mut output = output.lock().unwrap(); + *output = out; + Ok(()) + }, + )?; + + let output_clone = output.clone(); + linker.func_wrap("arakoo", "jsonnet_output_len", move || -> i32 { + let output_clone = output_clone.clone(); + let output = output_clone.lock().unwrap(); + output.len() as i32 + })?; + + linker.func_wrap( + "arakoo", + "jsonnet_output", + move |mut caller: Caller<'_, WasiCtx>, ptr: i32| { + let output_clone = output.clone(); + let mem = match caller.get_export("memory") { + Some(Extern::Memory(mem)) => mem, + _ => return Err(Trap::NullReference.into()), + }; + let offset = ptr as u32 as usize; + let out = output_clone.lock().unwrap(); + match mem.write(&mut caller, offset, out.as_bytes()) { + Ok(_) => {} + _ => return Err(Trap::MemoryOutOfBounds.into()), + }; + Ok(()) + }, + )?; + + Ok(()) +} diff --git a/JS/wasm/crates/serve/src/io.rs b/JS/wasm/crates/serve/src/io.rs index 1a983625b..ad8a3457d 100644 --- a/JS/wasm/crates/serve/src/io.rs +++ b/JS/wasm/crates/serve/src/io.rs @@ -12,7 +12,7 @@ pub struct WasmInput<'a> { params: HashMap, } -#[derive(Deserialize, Debug)] +#[derive(Deserialize, Debug, Clone, Serialize)] pub struct WasmOutput { pub headers: HashMap, pub status: u16, @@ -72,4 +72,13 @@ impl WasmOutput { pub fn body(&self) -> String { self.body.clone() } + + pub(crate) fn new() -> Self { + Self { + headers: HashMap::new(), + status: 200, + status_text: "OK".to_string(), + body: String::new(), + } + } } diff --git a/JS/wasm/crates/serve/src/lib.rs b/JS/wasm/crates/serve/src/lib.rs index e759a86db..da2b0716d 100644 --- a/JS/wasm/crates/serve/src/lib.rs +++ b/JS/wasm/crates/serve/src/lib.rs @@ -1,4 +1,7 @@ +// mod binding; +mod binding; mod io; + use std::{ convert::Infallible, env, @@ -6,9 +9,11 @@ use std::{ net::SocketAddr, path::Path, pin::Pin, + sync::{Arc, Mutex}, task::{self, Poll}, }; +// use binding::add_exports_to_linker; use futures::future::{self, Ready}; use hyper::{ header::{HeaderName, HeaderValue}, @@ -23,9 +28,12 @@ use tracing_subscriber::{filter::EnvFilter, FmtSubscriber}; use wasi_common::WasiCtx; use wasmtime_wasi::WasiCtxBuilder; -use wasmtime::{Config, Engine, Instance, Linker, Memory, Module, Store}; +use wasmtime::{Caller, Config, Engine, Extern, Linker, Module, Store, Trap, WasmBacktraceDetails}; -use crate::io::{WasmInput, WasmOutput}; +use crate::{ + binding::add_exports_to_linker, + io::{WasmInput, WasmOutput}, +}; #[derive(Clone)] pub struct RequestService { @@ -49,10 +57,17 @@ impl WorkerCtx { pub fn new(module_path: impl AsRef) -> anyhow::Result { tracing_subscriber(); info!("Loading module from {:?}", module_path.as_ref()); - // let config = configure_wasmtime(profiling_strategy); - let engine = Engine::new(Config::default().async_support(true)).unwrap(); //Engine::new(&config)?; - + let mut binding = Config::default(); + let config = binding + .async_support(true) + .debug_info(true) + .wasm_backtrace(true) + .coredump_on_trap(true) // Enable core dumps on trap + .wasm_backtrace_details(WasmBacktraceDetails::Enable); + + let engine = Engine::new(&config)?; let module = Module::from_file(&engine, module_path)?; + Ok(Self { engine, module }) } @@ -82,37 +97,24 @@ impl WorkerCtx { let result = self.run(&parts, &body_str).await; match result { Ok(output) => { - let parsed_output = serde_json::from_slice::(&output); - match parsed_output { - Ok(parsed_output) => { - let mut response = Response::builder(); - response = response - .status(parsed_output.status); - - let headers = parsed_output.headers.clone(); - let headers_vec: Vec<(String, String)> = headers - .into_iter() - .map(|(k, v)| (k.to_owned(), v.to_owned())) - .collect(); - headers_vec.iter().for_each(|(key, value)| { - response.headers_mut().unwrap().insert( - HeaderName::from_bytes(key.as_bytes()).unwrap(), - HeaderValue::from_str(value).unwrap(), - ); - }); - let response = Response::new(Body::from(parsed_output.body())); - Ok((response, None)) - } - Err(e) => { - error!("Error: {}", e); - let response = Response::builder() - .status(500) - .body(Body::from("Internal Server Error")) - .unwrap(); - Ok((response, Some(e.into()))) - } - } + let mut response = Response::builder(); + response = response.status(output.status); + + let headers = output.headers.clone(); + let headers_vec: Vec<(String, String)> = headers + .into_iter() + .map(|(k, v)| (k.to_owned(), v.to_owned())) + .collect(); + headers_vec.iter().for_each(|(key, value)| { + response.headers_mut().unwrap().insert( + HeaderName::from_bytes(key.as_bytes()).unwrap(), + HeaderValue::from_str(value).unwrap(), + ); + }); + let response = Response::new(Body::from(output.body())); + Ok((response, None)) } + Err(e) => { error!("Error: {}", e); let response = Response::builder() @@ -124,46 +126,95 @@ impl WorkerCtx { } } - fn make_service(&self) -> RequestService { - RequestService::new(self.clone()) - } - - async fn run(&self, parts: &Parts, body: &str) -> anyhow::Result> { - let input = serde_json::to_string(&WasmInput::new(parts, body)).unwrap(); + async fn run(&self, parts: &Parts, body: &str) -> anyhow::Result { + let input = serde_json::to_vec(&WasmInput::new(parts, body)).unwrap(); + let mem_len = input.len() as i32; let mut linker: Linker = Linker::new(self.engine()); - wasmtime_wasi::add_to_linker(&mut linker, |ctx| ctx)?; + println!("Adding exports to linker"); + + linker.func_wrap("arakoo", "get_request_len", move || -> i32 { mem_len })?; + println!("Added get_request_len"); + match linker.func_wrap( + "arakoo", + "get_request", + move |mut caller: Caller<'_, WasiCtx>, ptr: i32| { + let mem = match caller.get_export("memory") { + Some(Extern::Memory(mem)) => mem, + _ => return Err(Trap::NullReference.into()), + }; + let offset = ptr as u32 as usize; + match mem.write(&mut caller, offset, &input) { + Ok(_) => {} + _ => return Err(Trap::MemoryOutOfBounds.into()), + }; + Ok(()) + }, + ) { + Ok(_) => {} + Err(e) => { + println!("Error adding get_request: {}", e); + } + } + println!("Added get_request"); + let output: Arc> = Arc::new(Mutex::new(WasmOutput::new())); + let output_clone = output.clone(); + linker.func_wrap( + "arakoo", + "set_output", + move |mut caller: Caller<'_, WasiCtx>, ptr: i32, len: i32| { + let output = output_clone.clone(); + let mem = match caller.get_export("memory") { + Some(Extern::Memory(mem)) => mem, + _ => return Err(Trap::NullReference.into()), + }; + let offset = ptr as u32 as usize; + let mut buffer = vec![0; len as usize]; + match mem.read(&caller, offset, &mut buffer) { + Ok(_) => match serde_json::from_slice::(&buffer) { + Ok(parsed_output) => { + let mut output = output.lock().unwrap(); + *output = parsed_output; + Ok(()) + } + Err(_e) => Err(Trap::BadSignature.into()), + }, + _ => Err(Trap::MemoryOutOfBounds.into()), + } + }, + )?; + + add_exports_to_linker(&mut linker)?; + + let wasi_builder = WasiCtxBuilder::new() + .inherit_stdout() + .inherit_stderr() + .build(); - let mut wasi_ctx = WasiCtxBuilder::new(); - wasi_ctx.inherit_stdout().inherit_stderr(); - let wasi_builder = wasi_ctx.build(); let mut store = Store::new(self.engine(), wasi_builder); + linker.module(&mut store, "", self.module())?; + let instance = linker .instantiate_async(&mut store, self.module()) .await .map_err(anyhow::Error::msg)?; - - let memory = &instance.get_memory(&mut store, "memory").unwrap(); - - let (result_ptr, result_len) = - copy_request_into_instance(input.as_bytes(), &mut store, &instance, memory).await?; - - let run_entrypoint_fn = - instance.get_typed_func::<(u32, u32), u32>(&mut store, "run_entrypoint")?; - - let output_ptr = run_entrypoint_fn - .call_async(&mut store, (result_ptr, result_len)) + println!("Instantiated module"); + let run_entrypoint_fn = instance.get_typed_func::<(), ()>(&mut store, "run_entrypoint")?; + println!("Got run_entrypoint_fn"); + run_entrypoint_fn + .call_async(&mut store, ()) .await .map_err(anyhow::Error::msg)?; - - let output = copy_bytecode_from_instance(output_ptr, &mut store, memory)?; - drop(store); - + let output = output.lock().unwrap().clone(); Ok(output) } + + fn make_service(&self) -> RequestService { + RequestService::new(self.clone()) + } } impl<'addr> Service<&'addr AddrStream> for WorkerCtx { @@ -234,43 +285,3 @@ fn tracing_subscriber() { env::var("RUST_LOG").unwrap_or_else(|_| String::from("")) ); } - -async fn copy_request_into_instance( - request: &[u8], - mut store: &mut Store, - instance: &Instance, - memory: &Memory, -) -> anyhow::Result<(u32, u32)> { - let realloc_fn = instance - .get_typed_func::<(u32, u32, u32, u32), u32>(&mut store, "canonical_abi_realloc")?; - let request_len = request.len().try_into()?; - - let original_ptr = 0; - let original_size = 0; - let alignment = 1; - let size = request_len; - let request_ptr = realloc_fn - .call_async(&mut store, (original_ptr, original_size, alignment, size)) - .await?; - - memory.write(&mut store, request_ptr.try_into()?, request)?; - - Ok((request_ptr, request_len)) -} - -fn copy_bytecode_from_instance( - ret_ptr: u32, - mut store: &mut Store, - memory: &Memory, -) -> anyhow::Result> { - let mut ret_buffer = [0; 8]; - memory.read(&mut store, ret_ptr.try_into()?, &mut ret_buffer)?; - - let bytecode_ptr = u32::from_le_bytes(ret_buffer[0..4].try_into()?); - let bytecode_len = u32::from_le_bytes(ret_buffer[4..8].try_into()?); - - let mut bytecode = vec![0; bytecode_len.try_into()?]; - memory.read(&mut store, bytecode_ptr.try_into()?, &mut bytecode)?; - - Ok(bytecode) -} diff --git a/JS/wasm/crates/wasmjs-engine/.gitignore b/JS/wasm/crates/wasmjs-engine/.gitignore deleted file mode 100644 index a404254d7..000000000 --- a/JS/wasm/crates/wasmjs-engine/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -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 deleted file mode 100644 index f950d0ccb..000000000 --- a/JS/wasm/crates/wasmjs-engine/Cargo.lock +++ /dev/null @@ -1,1205 +0,0 @@ -# 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.76" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59d2a3357dde987206219e78ecfbbb6e8dad06cbb65292758d3270e6254f7355" - -[[package]] -name = "async-trait" -version = "0.1.75" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdf6721fb0140e4f897002dd086c06f6c27775df19cfe1fccb21181a48fd2c98" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.42", -] - -[[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.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e3d1354bf6b7235cb4a0576c2619fd4ed18183f689b12b006a0ee7329eeff9a5" -dependencies = [ - "windows-sys 0.52.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.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69d3587f8a9e599cc7ec2c00e331f71c4e69a5f9a4b8a6efd5b07466b9736f9a" - -[[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.42", -] - -[[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.42" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b7d0a2c048d661a1a59fcd7355baa232f7ed34e0ee4df2eef3c1c1c0d3852d8" -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 deleted file mode 100644 index 07bf9c246..000000000 --- a/JS/wasm/crates/wasmjs-engine/Cargo.toml +++ /dev/null @@ -1,17 +0,0 @@ -[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 deleted file mode 100644 index 506027b3f..000000000 --- a/JS/wasm/crates/wasmjs-engine/build.rs +++ /dev/null @@ -1,19 +0,0 @@ -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 deleted file mode 100644 index 42532ba21..000000000 --- a/JS/wasm/crates/wasmjs-engine/package-lock.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "wasmjs-engine", - "lockfileVersion": 3, - "requires": true, - "packages": {} -} diff --git a/JS/wasm/crates/wasmjs-engine/shims/.gitignore b/JS/wasm/crates/wasmjs-engine/shims/.gitignore deleted file mode 100644 index 77738287f..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/.gitignore +++ /dev/null @@ -1 +0,0 @@ -dist/ \ No newline at end of file diff --git a/JS/wasm/crates/wasmjs-engine/shims/build.js b/JS/wasm/crates/wasmjs-engine/shims/build.js deleted file mode 100644 index ebfb9d72e..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/build.js +++ /dev/null @@ -1,68 +0,0 @@ -import { build } from "esbuild"; - -// Build for index.js -build({ - entryPoints: ["src/index.js"], - bundle: true, - outfile: "dist/index.js", - format: "esm", - target: "esnext", - platform: "node", - treeShaking: false, -}).catch((error) => { - 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); -}); - -build({ - entryPoints: ["src/arakoo-jsonnet.js"], - bundle: true, - outfile: "dist/arakoo-jsonnet.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 deleted file mode 100644 index 7bb9dc38c..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/package-lock.json +++ /dev/null @@ -1,567 +0,0 @@ -{ - "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 deleted file mode 100644 index da05da7b5..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "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/arakoo-jsonnet.js b/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js deleted file mode 100644 index 30a29b98f..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/arakoo-jsonnet.js +++ /dev/null @@ -1,3 +0,0 @@ -const jsonnet = globalThis.jsonnet; -const jsonnetExtVars = globalThis.jsonnetExtVars; -export { jsonnet, jsonnetExtVars }; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js b/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js deleted file mode 100644 index 5d9131bf5..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/buffer.js +++ /dev/null @@ -1,17 +0,0 @@ -import { - constants, - kMaxLength, - kStringMaxLength, - Buffer, - SlowBuffer, -} from "./internal/internal_buffer"; - -export { constants, kMaxLength, kStringMaxLength, Buffer, SlowBuffer }; - -export default { - constants, - kMaxLength, - kStringMaxLength, - Buffer, - SlowBuffer, -}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts b/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts deleted file mode 100644 index f176cf637..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/crypto.ts +++ /dev/null @@ -1,321 +0,0 @@ -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 deleted file mode 100644 index 77f7b3f46..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/events.ts +++ /dev/null @@ -1,2 +0,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 deleted file mode 100644 index 2fa1129e0..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/index.js +++ /dev/null @@ -1,371 +0,0 @@ -// 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 deleted file mode 100644 index 6f02fb827..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.d.ts +++ /dev/null @@ -1,26 +0,0 @@ -// 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 deleted file mode 100644 index 968aa2fc3..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/async_hooks.ts +++ /dev/null @@ -1,30 +0,0 @@ -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 deleted file mode 100644 index 6ba318865..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.d.ts +++ /dev/null @@ -1,38 +0,0 @@ -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; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts deleted file mode 100644 index 21fde0761..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/buffer.ts +++ /dev/null @@ -1,521 +0,0 @@ -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; -} diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts b/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts deleted file mode 100644 index 2013d207f..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/constants.ts +++ /dev/null @@ -1,44 +0,0 @@ -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 = ";"; 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 deleted file mode 100644 index afab20186..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.d.ts +++ /dev/null @@ -1,246 +0,0 @@ -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 deleted file mode 100644 index 12248fd6e..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto.ts +++ /dev/null @@ -1,502 +0,0 @@ -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 deleted file mode 100644 index 762f512f9..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_dh.ts +++ /dev/null @@ -1,198 +0,0 @@ -/* 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 deleted file mode 100644 index 296bd2013..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hash.ts +++ /dev/null @@ -1,230 +0,0 @@ -/* 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 deleted file mode 100644 index 7196bea89..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_hkdf.ts +++ /dev/null @@ -1,110 +0,0 @@ -/* 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 deleted file mode 100644 index 488d7b8d6..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_keys.ts +++ /dev/null @@ -1,406 +0,0 @@ -/* 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 deleted file mode 100644 index 3d575b53a..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_pbkdf2.ts +++ /dev/null @@ -1,85 +0,0 @@ -/* 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 deleted file mode 100644 index ac49474c8..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_random.ts +++ /dev/null @@ -1,393 +0,0 @@ -/* 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 deleted file mode 100644 index 9b268df0b..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/crypto_util.ts +++ /dev/null @@ -1,102 +0,0 @@ -/* 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 deleted file mode 100644 index 83f86114d..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/events.ts +++ /dev/null @@ -1,888 +0,0 @@ -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 deleted file mode 100644 index e2487edc5..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_buffer.ts +++ /dev/null @@ -1,2274 +0,0 @@ -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 deleted file mode 100644 index ab8e66830..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_errors.ts +++ /dev/null @@ -1,473 +0,0 @@ -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 deleted file mode 100644 index 4e5c8c797..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_inspect.ts +++ /dev/null @@ -1,2772 +0,0 @@ -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< - string, - { new (value: NodeJS.TypedArray): NodeJS.TypedArray } - > - )[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", "")}`; - } -} 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 deleted file mode 100644 index 174193c23..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_path.ts +++ /dev/null @@ -1,583 +0,0 @@ -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 }; 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 deleted file mode 100644 index 0ed5a1db5..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_stringdecoder.ts +++ /dev/null @@ -1,135 +0,0 @@ -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 deleted file mode 100644 index 5fd751258..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_types.ts +++ /dev/null @@ -1,96 +0,0 @@ -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 -}; 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 deleted file mode 100644 index 6cf8b3848..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/internal_utils.ts +++ /dev/null @@ -1,167 +0,0 @@ -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 deleted file mode 100644 index 522a74ecd..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/process.ts +++ /dev/null @@ -1,80 +0,0 @@ -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 deleted file mode 100644 index 819808333..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_adapters.js +++ /dev/null @@ -1,687 +0,0 @@ -/* 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 deleted file mode 100644 index 61439b173..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_duplex.js +++ /dev/null @@ -1,475 +0,0 @@ -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 deleted file mode 100644 index 1f859aae7..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_legacy.js +++ /dev/null @@ -1,83 +0,0 @@ -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 deleted file mode 100644 index af1d687b6..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_readable.js +++ /dev/null @@ -1,1767 +0,0 @@ -/* 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 deleted file mode 100644 index 7add11339..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.d.ts +++ /dev/null @@ -1,392 +0,0 @@ -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 deleted file mode 100644 index 213c21c61..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_transform.js +++ /dev/null @@ -1,143 +0,0 @@ -"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 deleted file mode 100644 index 91949bd71..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_util.js +++ /dev/null @@ -1,1043 +0,0 @@ -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 deleted file mode 100644 index 6a288b6d6..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/streams_writable.js +++ /dev/null @@ -1,816 +0,0 @@ -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 deleted file mode 100644 index d97761026..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.d.ts +++ /dev/null @@ -1,107 +0,0 @@ -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 deleted file mode 100644 index 13f506b0b..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/util.ts +++ /dev/null @@ -1,261 +0,0 @@ -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 deleted file mode 100644 index f34d63533..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/internal/validators.ts +++ /dev/null @@ -1,171 +0,0 @@ -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, -}; diff --git a/JS/wasm/crates/wasmjs-engine/shims/src/path.js b/JS/wasm/crates/wasmjs-engine/shims/src/path.js deleted file mode 100644 index f5f64f2c4..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/path.js +++ /dev/null @@ -1,58 +0,0 @@ -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 deleted file mode 100644 index 7a16fe830..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/path/posix.ts +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index f67ec9e71..000000000 --- a/JS/wasm/crates/wasmjs-engine/shims/src/path/win32.ts +++ /dev/null @@ -1,3 +0,0 @@ -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 deleted file mode 100644 index 92861f98e..000000000 --- a/JS/wasm/crates/wasmjs-engine/src/main.rs +++ /dev/null @@ -1,324 +0,0 @@ -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(), - })?; - - global - .set_property( - "readBytes", - context - .wrap_callback(|_ctx, _this_arg, args| { - let path = args[0].to_string(); - match read_bytes(path.as_str()) { - Ok(result) => Ok(JSValue::String(result)), - Err(err) => { - let kind = match err { - FileError::NotFound => "File not found".to_string(), - FileError::InvalidPath => "Not allowed".to_string(), - }; - - Ok(JSValue::from_hashmap(HashMap::from([ - ("error", JSValue::Bool(true)), - ("type", JSValue::String(kind)), - ]))) - } - } - }) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "readBytes".to_string(), - })?, - ) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "readBytes".to_string(), - })?; - - global - .set_property( - "jsonnet", - context - .wrap_callback(|_ctx, _this_arg, args| { - let path = args[0].to_string(); - match jsonnet(path.as_str()) { - Ok(result) => Ok(JSValue::String(result)), - Err(err) => { - let kind = match err { - FileError::NotFound => "File not found".to_string(), - FileError::InvalidPath => "Not allowed".to_string(), - }; - - Ok(JSValue::from_hashmap(HashMap::from([ - ("error", JSValue::Bool(true)), - ("type", JSValue::String(kind)), - ]))) - } - } - }) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "parseJsonnet".to_string(), - })?, - ) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "parseJsonnet".to_string(), - })?; - - global - .set_property( - "jsonnetExtVars", - context - .wrap_callback(|_ctx, _this_arg, args| { - let path = args[0].to_string(); - let ext_var = args[1].to_string(); - match jsonnet_ext_var(path.as_str(), ext_var.as_str()) { - Ok(result) => Ok(JSValue::String(result)), - Err(err) => { - let kind = match err { - FileError::NotFound => "File not found".to_string(), - FileError::InvalidPath => "Not allowed".to_string(), - }; - Ok(JSValue::from_hashmap(HashMap::from([ - ("error", JSValue::Bool(true)), - ("type", JSValue::String(kind)), - ]))) - } - } - }) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "parseJsonnet".to_string(), - })?, - ) - .map_err(|_| RuntimeError::InvalidBinding { - invalid_export: "parseJsonnet".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"); -static ARAKOOJSONNET: &str = include_str!("../shims/dist/arakoo-jsonnet.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(); - context - .eval_module("arakoo-jsonnet", &ARAKOOJSONNET) - .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 deleted file mode 100644 index 26ac78188..000000000 --- a/JS/wasm/crates/wasmjs-engine/taskfile.yml +++ /dev/null @@ -1,23 +0,0 @@ -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 diff --git a/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm b/JS/wasm/crates/wasmjs-engine/wasmjs-engine.wasm deleted file mode 100755 index fa3bdb0e0038f9c8399e6851fb23b8eecaf6c42f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5169658 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 z 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

x^k3uAaH-3E~FO93G%zM@6N8ALvlHRH>u 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≫WjE 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�Gs1XyMzo?t>L~An_TeF5S$l}WXgJ$i>(5?m zSbuhF2$R3m0Bq4y=h7ak7loJGw<=inl`8#6E{f|4P;V#me=SLi?VW5%gxlT`dd0T} ztXMm&qS&VgmFFX^ir)%bk<8t4; z^=(^5%f2I}3}fFz-xp3kK-w4H37EK1I*mquc0sn3BjIIhdr|LlsYxk=p(EhXLip8Vi1E&~lm8}Cx3W6cMmyXhBP~f&imBRe zE&h`1UTwb7PBHc)ORs6ionpL+)luyfvsbkFMjl2vYT53|HFj(H=9{+k4yxPvPO)}M zOhO^b!cQUL(VLR>#5_fWZIc7yiL_Ib1HD=-!xB2+_UE!mESEqn4It!GDGBH5y7n+K zoHVw*qZ5e;SpuA#DW7)R`%R|<(Jk(w$^EwK2GCswxxU|}Ka=Eg~+2Ls9>qeP*?S0ep*M!-Lw)p*2IW&7= zth$*cYGk~cONQo%PyQfCZP|sFPrZ!pN?DpQorWw09e9`SVi_z^;1ZMOIlW6~+}sP+ zJ;fR#h!=+Qn0YAfRtT&{&JCLqW>6Uuk}11_D4< z&bF#E+6XkE7x%4-1ZPL6Cb^7}NBi-OHlhfZOwX~OTp#$E5>Oab4Y`B}5xHW+XrJOC z+srw3B+g+q8*DbJ?p(Cp1&97*F$Tag`JR*)n1KKl55D>wh%p6x2GHBbAvWP)vr5*X88MJllqp9^>ZROR@OfYY~aHw`>df$)? z9)PBB@U6TX3WxCbSX082_Mv^+VTap)>ePkbQ)WU3I5xez&9dJbmc&EH`9vumtWYC& zWGKz0c&KJx6c0A*`Hs}2*72ct1erZT9VOGxv1%J)%v00k(OS7m#8_ zoZkkl;vWVns!mL&OoM7Jp4Yfjc79Lo*~Un-g(Jn-Ym5}5*EDwN9R$^c4C>Rq1YxxYf4y8ln>>7l3Th+-y z&^8=6j1uBGHOr3BvcqDwv=}=6Cztc8G|j8U&|2P*>rfWXK=3LobQTGk*5|53Dl|ss zjEBaoW;3!-p$6;}F$^4TDg&ki8=PU(&H+;ppShvFw=zn&aQ+<0icFJ3INTjL;0AMU zmZfA{LM@ri67e|kFvb{ggL^vQz+()S7hqv`U}%nu&BhNQL)2;f3AhB~FH)3Bo=*=} z>==c=c&#D_fAVSlz57HKUVJy-CLeeA)2GK-Z&5{At#|#uqP^1ZwD^~CDx=?!s5zOj z;oC5QA4inl0NhnlNx36lBUT1C-^M`a%dNwBX~^z7Orr5p*h{`K{x4;zbyJoa%@miC z%g*Qd{=v335oK3w-{`|``LL<7VyOpor<5$813gl6NO?_!- zykJQGK<0zvr$JVGb2_|tSZQKFQxQaaO<9Kn=9SW56f+lD=7|$nLnS4l8tJ4lB|~+z zrut7k9d#s>uaO;)T=3-Mz9GD?gdut@@wl&qVO5+GUNY#QjjaHPmq|PpM(BaA!4zmK z62=|^8}u5Rz7@#p+7sqEDs)tapsS(f*HSA4!qX|dYM)=Wta10fVW60D4nNee=HU8SpPO< za;@d9_L&2_5;*M6)YHtnuZ->pI!oyGd83&$O4@oMYQ1xGR-HO~gzYa#G+Pu^i=HDo zH~`~{1ShT~*cZJ+q%+VEN$Y)2ST`o^^r(fSXwH&=A4%MD7kNGrrcE!B$recj-WAzI z8Uf3S=yT^o2aVS317($D}yp2c4S@>%bi0y zwiRA@XkRP}Q)6I`BQuL;jM|^K%X#}nt_s%eMH&rH zndp-Ar*AnqkD_T%(H#gcR!XFdG>-`l)WE7cIX2TXG}8k!{-iRdHGLgD zr;_WVU(Bmh6H(J5G#!!$W_AQnZd0;2B6SlrH9}@J<+oik9}LDeHN{}+Q%f;)nOv%q zP%|Ieft2$4)Wl&p^p(@iOohtA3h~KQO3#q!P7YNhG-CTgS~KjkcVxz5Td5|R@+Bb( zv^+f|P;^i>k&cRCbp#(?OVZLRJ}V`?TJO$cCi;kVH0Lyiiv&s}E;Np|9giMNKF)(e*m^!rEsWIP_8FevV50&yTYDP7 zF4^dI6K&-T-R_=niX`Dt&)pal=xB9coQvjdCMP15HTT~m(50uBK71_b`UFjtImyBc zWi83ru_KLPc6{Hh=O{KG*JmaGPhBsWNr;JARR>iB5~<= z7K+R7Oi*h0?aqk#Jg9yfGUZI2lV>=`a{H&TR5Y+$hwC*sUFqo)|FI`F=7kT2Q9LLZ z?T>5YR4XN7CL(h80C>EOXpwSegngW8Bzt}vdn=jp87XZK3Z~y(!8Gg-j}tROSKE?0 z`e6D4S6tlGb?MQs;Fr%b6?x*I)b4*E9d8RuC!OaMN`d z!Qbyy0@#X!U&;Hu#m>|tk=_mv%W*VKl_qUhkyJ5}zB89d&wy{uHS-RvGbYk=4SxYS z&s2c7svKk{dm??OmPl_1?KW+kdCjJ++dyU(n=e4_yt*%76Ps4MciD@V@JpRdMFw)G zG8siw+6{$4Pt?ZEvSMP|j9LXJ)Jf8oKAhg@fnGLB__vl{HH&M@L#-#bgerKz8J(Al z#mN{8#`tx)~--OqeU4z-^)fS>*`9k%k3qwW=tv4)siub#XcI*TowXNxD^3-FA~6SoQf(jL?kRBN_hjLZR{nO`#X5=zdS6bGD`Z!!3#VR z?%D2D>&kktSy1qiHpj>@UZv}y?i+3H2F^N=NN3G16rcPaQCS72`%eq42qD;49 z0W7YMVH%YRXPM!cN)PNCy<~T`BT?N+_U9(5qdRS9;=`)#;$7_73Su0<)%e@k9;6I# zI|f6+ir3m{a9!hSRR*}dqU}Kn4@9oUwQ_sVz_$ktoU08gu4diZI0zQdH-G7SNqA(- z$c`?B92qZhNAG)JeGg-7Df3sf-UEBZwkGiceJ>eDJ;T0-j>DjkP@Ae;>-!$f^$n${ z{$rfC_dR?teUH>P_8*lo>6=#9_dTBL8!Dz6UbFAf=6!=RUe^OIx-1TSQU3U%eegvD zrmlHXyMU6wtaJGoUZhRz3aans1LR{5xFZb%)A=dGHS4Jbn zGo8o~58oyoZ>dbjt0C($@2t2pDRCzukoJ)I?}%D}oi@`c>(*=G_@M)56)IyI9 zSDSEmx!Qz?cIqt9`q324HDilqTC;I6snoLMUZjDDqQXsS%olSdc0Vb=))qCm9NDN~ zC4SQ>CUKW+MToZMvk6P8rS*E=td>)O2{I$B^I4s?Y6ZbRv?>Mp7Hp&spVZ;OkSb79 znn8)Ww237|~{TxmM+#$8dhS z#wuZIAOPj7_cT-EY>Ajah$`_fyg2ST3fFTesqa)@i_=y6U=MF&O>3oFp;cK<;Uz z^X2)eb7I(zTFQ*=zz&60!*1~`R}(LkNhS--EL=5{m|)@=*6=J3f7TLD$-@QYkA*(F zdjn}1N5Z>>eM+j-(pZUGh;5oH!8146YzddSiDWTu*4gVEOZCSUb2#MBw-M;i?nBq| zDvX}zgeq*&ly+<;uPMpWj!~H}L=UDRAF8<<^3jKy$pmc&5~IqBTx2BDop##j?^@5( zM2~?IK#@`|G}@x2-JOrRo3}|$oMdL#qwX4y*f`lOu^eM-#!vw=R3hEWCop<3?h315 zWHV6Q9c`MwXw%hRP8|qf+=+QcZMqe-(LXP>N_%B0#HGKe(Q+;2GtA(@<|A@V-piZ$ zxz5?>7kl7Y6}m5B3v_A1ra@fWj)G%GvO0h>3nmQT>mtCuMr*`Km|J5d5FkgiNYZw= zM9vJ>8iTAS)q@TlAr$uq{)!ku;}s)FxOU3Jw^uwNQm>thVb-#f%i@3y2NY6ayftr2 zJ*1LwKn2^3dzAif6Omwtf(3IK1bz5J;uLM{CVDUnYXTP*OblAq`Cwh=^_^Z-=TgM$ z@tjRMA5`fJV(~gv5vG6`unZ}_dz`60ifsWwk<8t8vqLwCIF8=}T&tTjQfMGEQEGU|9}>oM z^SXMkcwBSyxVE;#9rX})#Qi{#A3cvPe_2sqnyezyApk^-2K8UApns?^^we3PH zUT%RBt?(-!ns163c94M9MyfJqrN-=!JlJ{Ow!eAa!FAPx#Zh9S%ST?;APAO3j~pyW z--=bbAN!M|KYePpoUrbGyg$8!b_g1|u?tu)hsl+e+&M~A{b5Wt;jh=Cf$n|D52&{9 zx57W8+}zpF`sOdv%nl;JzH|Q!eit6V`QpBzVURSd{4@57b~59~Nz#mKNV9?Iz&Mg6 z&4w<`hLvB+va_kyhUzXQ2#*7Buo7sof?F{*zb}o|Z;kaMF`$k7_%goU#^2cBIUu%ggk38=j9JYDY4T(p|PWgwu z_9}byue_bQLc=vN$*6vKb!C^!<|vx=k)dP>7hN&nJ+-P@qkN6Iy!V&I zIKtlKgg{-3CoSms#q>4a7GJz0US+~nOQlP<_WGUW>qx-p=MC|}2D0p;ohGN)RZAuB z*+BACE>|Na!I}+8MIII?yl6i1%%?CEXC73k2|Wzo>Z~810E#9cAs7Gs0MB8nGUfmKpA9;!YD(9>xacI#jtmo zCxTaw`Wson_aluLRE)azf;P07k1yQy3k{ZLMd~<AFt_PZmHiV{J2yZ(BP8m7v2`%PrG?H!d#mysf7>D)A_GI4dvqtmQ9eRFj-7k%^^1V1r*LKe%%VXQ|CC z(!z@kdN%fdWgRx(YO!Oy4?5qX21Zy49mG$G1@H*+aGvW~u)URbJIAIE1*qQ&MHCZK z*^MWv0-|=C%XT$Bv=e5T9SQqZr|Y4xb0J6CImeN(5NXc6iF0;=8n1G96n-!94|&NPJC_pgkmsO=B}BIc7Ue(5*+rJeGuWw3gepe7wNtx-+j?j{464ez z(`c=y%~cf%RKtWTBS_hScDF^Z*?DU3NBz?E4$~gJw(0)-$1pqod*VZ-!?w0SlDAD= z@?o$#>mGwzb=p$VPr@WcfmCv>4PJKZa0y1A;`qF?s{_bM;&kg^4J8x_-qbi4+= zWHj1bj(TC9O10NM{4J{X>;kQngL$XJw)WSU>~f5`{`Jq*6+W}v?Zl1bi(x5b20pFm z9aIg8Cp?LSkzR7_J&~Ij?UzHkfF4(k=P@Dm3?7!pgeK!8{dCpu7i@IOr{~pgXK?~Pbs5bq=lxb zig*RnGF-m>ohKZA6B0*rf~Mk$ z|J|*im}(}^f!L|S6_x)$8D_*T%oX<>|G2U;3hHjWWEGQp1?|^FdUEO+op68IjN0k;U`t7It`y-k-+tm-WRq>r z>=r3Q+tbqq+R(1#_G)TFJH<526D^eXaJY_ zyhgMfQ#tG6Oft{tCcNp7*ReiJnTU#$`34I{78NG46ze(@3B;v;P{-hGpf4q8HT9(g zE$K^Jg;rK2cSJ2i3sO(v`kJ3bXsN10Pjj@an37Oj%d79IR+6Z_M(M3GISvTAYwDP`?>=pBs=GSjHMt{1~0)K69knTRXJ_^OnQDDhoO zu%`{lbF=429ncmFt*{Ixn@99k_?+z3$;?Wtm7W7{frK%)3CT)Pcp3{bCZ+=X`^$W` z;pn$>%XL!8ouefB#DiNoIk|CgtH<&I5s$r~=+Gh~AX0~p#qqUXr;5l+2S-+!{iGHZ z{U(lX{;i{W`3OH$iKyd;QFlo6N(b1ds#IDyS-E-gkx|@IFo`}gJIe%|>uSuD-Ye^g z%)Tsqi7}1=7AoLeOIaL_CaA2;+B3-;we15gWk_Qmw@*M_q99`HXpi`sPk(M` zrD8fmYmur@2|)#+ZA6hr`#=lnM1#B$qB=Yfp1aT9d#&|f|MzRzsFF4&1dA(+r||Y?Y+|n>hO9Ngjm^_{xBDbk zadIQW_zd8*cDARt#yd$iH@D;5v6&2zH86YT<4w2*yl6Nd@v!;@5CzjzYq}?@^1&u0 zskInc6pZ&DM~WpzKCja1YW2b65j)tN3BE|7FHRmJzkcs~)FV;7Sb2mbXL^8!yQM%? zSbUBsh%+U#fg@Fx`3wJkleOx4eQAe%@&LI~DoH^hu(>y{#`4x71#g1=_LJ=6!Pl31 zqZ-diaJ}AM^J@JmF;YBOn^;X>UBvNNE*&8GNh>`&SJbk_!QZ?Oq~4XruzNK|5ypsp zASpxuHa9FP#BANqdOFgR8*0fXX|AD z!4>Db+Wtx{IHFI1geA}^1Oiu^FSnx9Ln`#^_0%y%^Yrh@czjlYqni~ygip-p=I4T- z!Zpi~;R_12pQZ9DYSZfnqj^9^wlm6m*<^6!KL^EXT6LJ#?7`LHY*xhfwRvee7cEaG zeQT4Ee{G-1Q2V9HC|8KVFR@AaH2T*R+1zYW)Gj&&P`)D~2bX}(!@gdn3DlP}h{yR&ae}TE-%vG&L zC*9gPhSsyX>e&K={i>c-~p&>M?m!oa$JBYCM- z{J>X#f7e~TW6iVA^d1QrzeM}g^sc2eLaa_PeSVpC%wgjUXs42%Jb8S#ncUc%ytCS! zy;&k?OLYf#jgB=ZUte7h-tiDrdYGP({Q6=TrC+FdpRRDC8G$U+XIRHW3ohwzm<1b6 zralY};?`POLb%=URblp?dtu!^uh}bYD%5!TOA2#s-2&+==cAUEcw~3>E4m3TWDogY z>I@L-Ke(eF@ofVaBHODj&nU~aVm1OdHCGO9QJTQ5$=r0Tc{$L7mox6z&VlpQ9`)rv z&@^(rSc@cZIJ?v4iN}bJmMT7pOM?11U0DJFLE`VYN)S`OJ%Q`P=q%==~5EpXDYw@qk;NOB~iO%!L9F@WbjylN$M$; zFbUu=XQ2ZM!|OY58%z;<)c4Oz_A2%-J__Rph7UB1%OEJY0;zy=rQ@84mUIIVK0|_R zg~6ZB+d|CJkuBVWF)Ege2volSO(^_rNJV0w;U1f1zJXrzq0VI4VwxmGo)t#H|9|Ki z#zl1j%g-6C{F?+jqx0%pn0)TT< z&C{J0=(1@?(WdPlI3C>*Tbg)NczH91J>53&Dqchz2^}7&kp=beaSL@PKB)4o6%YD( zr;{6+e|vI927YN#`{4SRG*qCmgAEx)@dn$`4NDWl+-=l``E5PgC=7)he!b8%fLJ&h zQl!L%S@(QCh{thJUjYa27%^(TWViW-M^kIWY^8fR*l}2RdDtDK7WhCxO^|wrrNJM1nQIQ6 zN6+@2;25T;rwtBIo?cTw>vZ$4>6&9Ng?~*?dlzDfRQK}080iWteR{@|ACdUdmT400 zo50~m=(Os90MM|>P}>NPUJ;Shp8p4kp*-MDm|nYQCs2`GKBvKeK`aPHXMkbN-e{43 zn*}q$vq+ofut@8nq!!d20$Sh*%Sb3BKXgDKArX=vSbg(Owf9dtzN{Nw>MHQ?`njFs zy*vggRW?T4#{lNwOhf;S&NNe+r2D}k2JlPgKXq?<8`Uw%l4z?$k4Wf-=Xl&%q=P(|6RWG3b9qclx=~8)!T;0v zGmZ!NCvu101f>p*k36BQcDAH&9O&Q1bW`_D`2V8r1EZoC>&onqB`XirdTBiLduW!# zXd+tW&MO41W<`L9)c{H_JYLXc1d{|0tqyUTmDqkRfor#n>3m z#_sl{7iU!36x5iaH~WO>Hnyl9Zr)dfW@s%@0Fj5Z>m%jW+DNrJc`^`|d$MfK=CS-< z^U83yD0AuMDl`~wUZR(GUWv|EkN+vJ1lW6CDIa;usxNAK^MWL1zsQS>sq;Ep!4~~2 z0w+9VH{u$gH;*PFK+=4lN@y`bXhBCm7}37_k8_4%Q;hHTE=pTFybC44Mq3mJhX}Dt z!@H!KahV&ANXAIT`McuKkGeDn-F#e-ob4e<{3$quG+^lMUpBpKQQ&N%%#04=T%27| zorJ>B_j#?An!^QuMhXebXEJHq=5`ksW}lRdphlB+GR;@SJqz&A8j4Lz|5dp-BkO`@ zqJogwdkg`7K@DFVv`qyC2c(M=;LhIc&ARguTicoi(`3nR@6j4hFY_2v*_`QRL8jrR zZA80`^pco;(qx6YO2ozx+nN%liDsaWd{wTW#gr9gcf+}7ulM<>pv6}b03fUjr35z2 zM)&IpU*n0-5M8DT{^iwJsg1ch%#t}iwCLUzz097F)UJDjQ8s)Ko5ZL)2@IHKl6`Hu zf1pI+iaALbdFEuNNz~C%`gopoM`YT#H+>YZ2Pa|mNC5e0@{t-}tFPwT?)-2S!ofDiw1y{gov|GpOTq}uKogt=}fnhhj zbdJGKEb4%+$iYOQGUw8tmM|18vhOem*BWPa9i{QUYLH91i2^p7pe_MAhab;teR}UmbEtd`l@AWZQ zjwwrFj7npSA?IMn+1f~!?+nyW3fnFP53*RQAF-U-^JoffP z-M|lIDVwAF-ED|>9&eXu3_ENnB$0@w)I3+Z4f$NmUJExHE3A3iysyWXX#-%K3)K8@zqPv#09=*j!|`r*cV|5|APjO~`XxqQRk4Os4GhI$=Uz!qR(f+NwtCUDs+ zf9tm8u7B-5LpRB?(&w-A0rWa>N7VwIrB{w`0RWI2u89$u0sN!wa8nAmz!Or62?zC> zAH8FFF@^aq#9^CPb(;~I0P=^w*{1z-osK|CNnWAK-ecoyf$~;gN$p*jh8F*_snPzaJ z<^K$l=>ETW;@ZW;-6#$OxQKQGLo}lA(9Aw&i3?Ya(BxRVmJ%6@Mhu&0n1O-+2QcUv z(>L7zRm~?{+%zSqd8L|XCX%%=jHd#EN{`m0rCL>X(q4Qb6S18MFP2x9j|6Tl?~@7P zmf&x}kFNyX(CcxZLRXXiK>v!tfP53)F>Ky> z6Qo+&)gJMZUn6Yayrr1$h`aqq1(Dv#TcLMuR+Z+LGaWTYrNeFyHS>|j2(9zyVE4)% zH>3CLNchw{mLkcC98$M9TGl41t2fNI>;}0hmG_CfkgDrgvE9(OZbv_cicIm{m`Bx4 z3Bd92CewL+!3_A^Uu@IDWIN<5G1DEJE|aNu6rvn*+cx%eP+mb8j0J?rr%f>xm{6VV zz!30}Z)qChj2&)ld$qxm?WXeD#SV0Yk}4>6ZAVgVO^@!{j=E~P3GZDJbpF*!+p*2% z)KI1qe13mQO!w?dg%^It4~(MuzXfd8aH(^{MjUG5_TdGedrWyXZ9+IzCC|kbG<*QZ zI341yfQrww1F55&Zy8fm;!JKNb&OOP=WD5>2X9ou6%9RVm|}FOrlfsbo{Wa+P(&FZ zRZqH}!mZ#0pq0W_(aApJJ{AbuMmFy{|**!cQjYmhEKrlkod! z)vz%@E~O@TnIikx>$Hw{C@BcgT~J=~zGyTF(J%ODSOnRoUeJX-H*T4*GnhAKLfbwl zAF$KQrX--3d$Zl+-{O8xxX+uGL@@Nwi)A08Sd#=>&DZa4e^Kmp7<(Uj8^i)%$5!(W zWNAfCt+`;@MmYbZquW4faGpo5^`goh-289Lk0H?a_r7}Ck_1(+Sst+2pTu$3_z-jwBmiIW%IGS)}yp686!P4{)qWF zP1jU7*HB*|1ecTd{AOkdZ63TuMCf3Et%aRECgs>HWG3Hy8|ER1)2i?^s^l^XAk-VO8yxBJ-i3?#ej4xa z2K~X_LWlv=8`Y0fFRU<1z9{yE{uoB2=1&)3_Mh}iWE+NOg_~y1B z5^e!ON(RWC#coKo8%{rc-y&sqamxMJzhF-+@ZusR|0!C$TJ1`3r(mSHJB5>NViV$% zWj)>$M|uS($yxQ)XwN@!sjX(L zG=?o&DPFt9QbwH4V<`pAD?YO1KhlYC^(1Bn%I3IjseLwnB1D6aZeyFXNd72Rv(Z$X z3B{`1n=_(-dDm)ec+p)S+cTEArbf-TA2aWl_+7UhAdpw3GuPj}ccN&(TDlLfv16kb z&c}f#BhN#-KSDir5Sxklcxr6i8~|%hE8JE5s|JHExb14mf~`Y!2*$CEFSp*$onzL7 zCk!jbJ8UlDfmN-n5t$PaFyiBOdqp~84e+U2V(P7|LyGQ$wS9&<)|gMeH}$E>G75IG z9yVj$N{nl>-XZ-eFA=ntgy@$Vd}YzEo#t0F`M1>#n@aR;#einFZ=hy1*WofWzTV`O z5`Eo4(;Wn<&T+?vYK60R#K^ePXC6h=6sQ6&&dDKwDggTlINmCcD7i^vAb!)=(u&N$ zb&$T>Ex2?TQ4X$20Oa0|Kh4AN2u_=a1&zTYD9kR~5uBtEpkDD|JF>m+5Lz5f#IXk_ zLerltYq?olm1NzPbejblz>(y>CEmETvoK+3^Hw=q?G&lcW;_ z;k9hsy$?M4CVzo|cgYuIpypi;yrh5_@Y(|%T(}@w-hfTn$9*F zHYSznW%oX@Bu--_8tk49lesq}Od?6cWqeijj`H<&=qiDNWBOc4jwmZi+lJxkzk0yo&x2l3DtBF~x*s1l<{NC>OuFZ%H;satunFFcItm1e zbILYSrFEunjhp)f9%Xq27kI40aV%-k7kI4LQN(qBPmXiIrzL za719qUmV8-Jn$|wor*iGE$a0PDqSx8QeGAH7_&YuFx>7N_eehd3q02U6vx7XywGF) z&tWXloM>@0;a^`rCd0|3@OnlkJETz&-g1sv(}`)OiT_-{>70qo?p}f47l5*UBf?LS=L?PSU!6#6loTG+onQaUR^5618;a(0 zzm@5Qv-i1v`0Q~Jpcu94}We`fdJ$ zVY_lQ2vgGa&9L3x6S3W)cLAr;MJ=0(NHd#C#B|fb3^FKOxYziJdrfVLxSMPej##JA zQ~?L{sh3fTLZ=3Eu?B|7hB~gCcBHR?=H5!7tp(lE&A6TAg=sL z0`YjZH@O7DWgeVugQdM$qx^A5aR(x{BP#FcaIxkyWa)X^N4S~8#IWUp%&5(*xX>e| z#0nTMoh_@jvt^ODeY=3@7)yOFINqm$%EUCLKZYkDHkc!3Q00b9=(zOMQ-+k!JE3+C zY5`OivF}1~atUNBiJxt)f_2~!2ca6f)%K2p@Xr3n#cTif$diQ3 z?Sy>L5Mp89Y+iOOl;$qYFgXXx=}UBedD}3jXc6C$0fZ$iR#{j~`=_Mh1w4FrF;GBk z*u2#aYZx}FSS{FJ`Ce7e;t?LhR;heFe>g+_VP-P4i}(IYZG-<7`877acti*?!+i0> z<~MU~Lrvd$#dT^_M7dPO^cv;L7wqZ>)D$XCDu)2t!XH`6rF)V7?9QTjmTLN=7wN5A z1CIW_sZUp-bjtA2#2<_*ba;UYNK(R$LvWyb_-%c1pn}Uo_}=*hyD)}K=>0SMtcCx> z5em*<)bj;!pgf1x3f>^GCEMZY#fHUj=?CN%x}Ea^bt)NP7?J_%5pUTubZ1zfWngPQ ztjeK2ha1V~??0Q9zgf&auZh}B2JK7+YiBY@GZFGAMWFppfSZL(dTY8dhKN)+XD7Xn z6|EYp8-f~=*(Ewp$)}ZHI;=~F)1`WBUz%h8Fo4D-*1Mvr>BU34oHq1pS@q!JhC1l< zYFg(wFnw#pzA#$xz2AZ|@Wa-^iOECoJko2@~{3RE?SVjuL|u;wBnyFMozg z0|{?d5F<>Qmw3*2)n?6(l~X`d9BVVJeuf!ZWbo`?5M3~qVHj~=$bs%`t;i-jU~349 zl-5{F`r!p$Y|;wV4NF~}mC@dgSuz)PCqvgVQ^q2?Zc5SWXrgPB?J{dWAp;WG)N5_X zVXz@v{d#(PQH)N&Z(jK$a@O3gpLId=Ou8&-st=osfmO}n26gx{?1_hQ?_tS986%}qnrsD?Tco|Y#nX+hr-h4s%NCYHlZ_6*l0q+(TGO*fHL6i!s zkyhtyx!$;bdTYN!L}j2ZU#BL0HFJ%e;9hqcU6Je<+eH>@LmJ&O*qhiVHJD!LAO?&y zNLC&h+bzM+jkd~+w$>wKkEn!OZCr!J#x*Q98spxuYwAFa0*1P5ly86$4*5b0ExCh3 z-6A+`iFta#`rMk0*tNo%DVi!Rl!2^wnZ3hCTzZe8^96+Ydy_Vhxe5N?LB~xH&>-?p z#3$2Mj}Lty*KYQ=lFZf+mewS&Id;WF2lL*1Xz>*GhO1BYUr(-GXPiB_d=ww)wS3fn zeY5|1e2r)|8LeLz6yG-DHn?n+3Fvln#?K79E+{gz1(5=)ut5bWD;<;uc)Q~u-qZ_% zx+`X@dhvg#(|thPVi-nr@EH`1Y(e5Vgx_L59V{Q;9>Gwz7BIUaoD^ekX3ZZyUu?XZ z{n&HB`%B@YGQKIn`eo^$cuA_Jj*3Y+)tL_Roq)@5n6VXQi`7V8K`2=Mbus%>J&A>+ zFXX&12Za8Dr%bFDu`;e@KI+TqZ}&Uyj4CQSMxsUYv#Q;8)~GK1v(E+H*c%#v(%ix2 zKlef96f!jDcnS0DFjHeY$j;;i|H7zA(j-0uJeVK-cU432gU9CM>S|w0Fdqt^U1@^I z^oBoU<2!zsn@tH9Cog3Uhb{Inva{x5sPdsP{m>_hhIA`{W*Ea`qLjC ztV1c8sJyy=tQlWF`wK&JHKO-@VZTtnh(Y)~xtC_?YN&17CodTd=VjY-hyj~vGZsCp z{;wX>RD&Fg{$NP&zn?1T#ldV1C}s1lyW7)3X)~K4ccys}H>juGubgOJjH1OJDRsPm zjDD*0n`>T@o@W|QqHuAt*`vR}OZ61$Q3=M;;*~B|#Ecn6kA%^}h@a@~ZqqQb+}i)& z1nr^uIo@dCC(odwhX6I0Kd(V};mdrm<`?vv^H)#nH=*jX`6C;gp6K3{nD6f3JHGhR zM~3+Tf?x7WAH_iS+vwQx%YN8dUs?`}J#`3sE>uPX->&`Nd@QiVlXydO^AS3K3Z5OFgRR%tMk+RH~=2f_W&0eH*U zx#0!ILg=1qH&@;X-OjdFx&7YPYQ;YpS4^p|y&lFuGXU`5FTh-(SQQIBm_+lg%uwA>HUGwAx}lC(It8{aDu{mY0_0xbmHvHeq zTiYdoDw}VWV!dIVixrs(CFwH^p)EGN~Lt9#;tG>ow1gf04t}Yn~JT zV)$P3g7_EonF`eT6iT8=NQsQXK?*t{n9A#8Cmx~mQSE~yW0e&Etp^&ynd$!Exq&7c z`M6|Y+8j0WhPI04FwDcqWu}usUWOzt%B#7qa|mogK|1*#z2;QtPW3K16)&|N*vq1u zaoBg>-2D3h92-$Gq-CJf&lKrY!!xCP$S3<^OTFf=_C40{9i-dBHyL@t^2w%xC^*$a z?fP*Dr^sg^UGz*Tk3wPBIVlh_K2p9@>AKj_ctSbMg+BmcaRY?H%!*^z!-H_~_xUj5 zu4c@KF&%NPhn|7Upsmla?(O7m<&6u?TnCpn?EFEWfpiF%$z=N16?%0W(W^QtFu_s&OyOxZl4b5TNp zJD=3KC|cp-w{$LwWVrY*Iu}JbT>OsCMG+7ezo&CiIwTjrw{uZu1;UwVa~eS7N+?0zf#w0XyV-&!Cg*9maakQGP6Yp`e=78n8=xvDz-T!o?< zx3d&+ne2twamE%p&4!OJQ}nhlpRAvwxxiI~d(B+Egy|qxEQcyQ&8>Rq_VVlCRN*OaK!Hefj7d>hR+?X*C5`KcI5VjB0h zxteu(TMBz~1p%0`nyU<&ZJMi!{fbjm#4UOf&WJzW1P$H!E)H|r}`O|vck6Luf;)wMrHBw92{`VH4X*$3&Odkr5{p2b9W_us<4 z;zgzjO{c$6bht{{auq;Vz#44?KEH;}v>6pxX*daz+~NmU^&0w&Br7tf!xy8+hb-omq>K?C}<{Y&;13B#%xxHoP8c zKv%@=!Byd?=h4A!6zZA%x<#4`f5fsl>=7$fz>t|Q9)-sAk0WPbN3V<3&*|7w2f z=oG*GX|)}>7<^EjBaIQ_G3m*cd0Yu8@^Wdh;Yj1kTH94R$XI5D9Zl?>KzRfWg2yGU zkpYD^<<`ISA`wBOdI>FkI@jo$ISZ7DxHC2<{!JE^gmLpQLAPwKx_ht2 z9$R8it{(UZti2CdevlLx^lOdwT6ZbbrN(xr7<19`n)}Qr%|qwo657^(Y|t(T=L{%o zp@&z2QE`|?1{islc|U_bC$giZw3gIY5m-Eg5zue$E8`EP+x*TYJ>Jz{vNE?uJ$A)? zU+{(ef*>V`Mm`7yl8tC85JiHzqKT#sgNOfLM;G~U9=x(OBKNEZ@Xrsb#xc}9zVwqt z^Tz*_=@OrpnbWHN!ziR{7*x9{!qJx1OnMnWQAvsUkG#?JcwcFn_f%~X_i*8JH|KwO zetR%|&ahutdS)39ek4J25K%z6YTANuW*!0l*h|TGi`f}hVDm{Y0OT(SAO{x?hppo* zrr9?d*iZdf2kZ&XuDS}!>=Kc%!`7`So(4P$iJ?Lm+Y0&2I!6Nc)*K0pyHTQmmw%8= z!=bep&)%kVwt94jrld(LA1i|7BPsL-w(;;(@csgwH6qmc;G7NZ%Ep10v@4-`&YU0t=+|%MI-JM%J z9r`lQ-ed@PunA1=jR{NxiVp9vj8S6+qn1!crx%+_JWYf$Nrb}iP9~#3CYxXgGdEi6 zzM^CQX>pK2e2N|9iq3@1u!lBBq{Rt)z$4nz341Wx^r6KbRK-nUPdE)FkS6!F6dAyp zutyj-u6d5T0>*=tJI7`p657vA16rO7%R)kHE*$bw7%)iS?dd~17v5`gabPX*e~V3U zUyI3`D=`_e2{hA7G&5V+m_{?C$gHKA%`nntHqr{3F+C5sk7v&iNfX7AzgoDSQ1r=kgh+v2BO4jC}y8Ck=&(ZC<{t9ZGl~mlx*(G(KQ8c zryZNqbM^|75>U>B9*eO3OwkY^u#ZX1u-~vmWWL>Kk$dBG#2wN%ZNDJU#CZZY_k8uU z_ei`-a2H*p66FI)a%*k%KUvOh6J(JYUAMS3qt!-2)JR*;-b2 zcSeMt$iKM6?=p5{ow=oXWX&8?7ssG^0CEW#vBgQfnLg`LF&|Yy1m(8%|33l zj9Y`d@VIhUps=xon9=fKRScjih_7rwVSMP&@<@Coi2S7z5`hb~!se3r3L+4+`#z@( zj~JRuf)jQkQ|cMKLV7Er?k<_R&8$z*j`PJ?11lR!#g0N-Z$yH}1gXcMHy(@&P=KD4w- zt6h>qNvj2qhOMp_#}_ZsE!vRnvRCwJZijX%4F=rd*H~UX0s=6_6T5d9?}~Sje$KzA zJrXshntf0Rd3)?LD@7?o$*3qDzV{WSjJ->FL!&-II87gi*GT&9oN|84-?Pt%C96?n z2Hs(tRq@V2rSh)oCV)}c!{7H!Qqh|C{LBiY&)tLpyhZaMZ1~>nHq)g;*|OV1N5iq- zvjy_?{>}4?$645#Kd#cT7w_#a23O$5aA_idUhU86;~At11Q8Zudp6eVc#hLCh=t?^ zXFYI&ecp*%oc>H1o&B0EdQ|sYnb41xY991SGNB)kJ)%fo#9)6s^%Q(e^HP;qFD?Bm z4!HCyIj~+z##Neq$5zg#?q|YCj}B7@_3p{kqaD8p=8sO#Wj*QebhN)<_+}BXWbTX{ z7-7}HHS9p}3gFRcNX7K55m;xu!3XlMi>0r@rl0*`owht`e&bpEp8b;S%y>9pF?+53 zNm#Ov!{Y^NSP+~%FFf45|GoT~;zjGe{1oRcd9flaTjHl5(0MUn@g4N6g<-ws*56r! z;z4{KDSwx}IE^S7T!wjf^T`kY#lLxq|3b-cYN6#ji|cNTL29+4s>E5?^Gj-Tvx)@j zQ4m$N4!&`%lWAFWSiJvF!s|kqd`nm5zP|%DF0jfRS zuQz6=euQBJ4c>ou5p4R&zImNSnYXRVEUYzL1P^kSAXv_xqm5tesl{Y(5V|;ll$}`* zQ08bp`0+r}V$bvB(PU*yO_u>!g)&#qD|eVt6>Q(f7HC-60r-qtzKm@U@w#Oy22%!0e@|5TNMVR zOa!c@N|HLU2rV=hA~j)X`TO*Gd2&$98MlAv88AO@Dwoy2b|rg9pr_*3E|Ayg3lYd{ zc=ELMr;jU;Oo5hdWSIg8Uas}Q;Y!IgoI|Q9?DsBHgYyxu7zB*Bxy;zMebL>t6U{+R zW{RVku_{hUw6?&Vh~a&XZe5HA!&t^F%r952*AY5uH_{zPa31n<>KF!T*NKQ&=K&YbhE&cB zWbzsejz&Sp&{9F4svrW;Vg$^}PsFXHNZ%5Kv|~)u7&r_a#f6VYM3G}DFypX|mmx{I zdQ88mB>{3hMj16GdbmzUBWW*uq8>baay^Dic=CcCLq<~2W2&UbU^)VjF7$a*Qe^g8 zyN<&T=#dF4i-z?WGwIr%%P$-^ZS$ zXZAb|x^n%W)`PDk8dW^&n!;_H*)84q;o;JKU*q?c``*Vca@$vj*R6h+?itM9D5flI z8toAn=$M{F>5yAiby|VJ(_Q8q9_Tn>K|(o8B6CKo65jLZzFQT&c-s18bVWCTKX`bt zYNHPD;OaeE`(S>~2(GC$Ym5hse4$|)c;K?(KK-Tfpuk!mxUTdnG`b$YR*Q#*BnhHGg%P6Md$9DdQ- z7u#W=g^#FcIqwnQ*Qf)=p@F2H@f(lYS4W%MQi~d$!m!;AynT8xtBI!d7PBxgXP1ij zY~byv^DwKg-BOCFY?2Btiit3RrPt<3b;v|X(4#Z1>!Nzcf>m9`1A(=KV-J>e(Vcn{ zb2%E^db|kVM&DAT6^bx5xEL=Ogn7PETjm41a zaXhOwww->*hO+4^k2bfVmLfbmtqrvdAo#b@gr-f_VK!~1lQGeyiRTGz<-n!;)-Y*6P?Lco%WW^il~2$$J1jnN7N+5I8e z7MX%I{T)ubMwxPq)JQ;}!+%!T_+?Yd#TuY$iC(2|lo@FDuGua2E4nj`kg3^qzrh|S zhy*Va40J(Bgj4}^qpmf#CcG29fcc~rrJKvFXqBR$@G;-kXaU%A6TVz{#)?I>K;(H`?h@RD))#p$o*3 zvVK5srlh^gWJ?Q?j+75)d550@+wR*nV@h_M-1NiBh*J7TKW0R=NpWt}p&P~j!mK+= z%}`2BwDeZHe3{e!rjogQxg)rIHGgyY@}V`AT9+@T(t2HHue}JMM4P?Yf7r);8gBTE z-{s+%j$hb3#(D{!B4yjnZnrmiOg0Pd_Y7;1rh(kgTR~@xjaVRxf$~Yo4a!*@{=|Tz zg9F*tjW;=sO|I$9K4MmGICrX5!h|kZUgTf-4IV>IbGP^tJ=J_fb59MG9%3fg51ENb zhCJ8Pk~jb*in}gPN2-8xXfYqL*_+umX&1E?giOQQ(FO4r%y%T{&uR*nqGPozkfen* zav>%yum6 zvQ7zIJ!w^pvgaF>^rT|C$)$)q(_bh_`)5;v_UR5aJXC2%O{%B+molDhj_z&;dnH<7 ze%bLLHh4-&LQMq5ga;}4HFvu*e!*|vuJ|fmaz}8c({bU0DcL&%IffjG7)imT3__o$ ziZ3Zsp`0HF)5{%LGf=Kw@;q0PEd?*M!HPYdE!!u~(S%WkDo zG0$Z7LE8zmyuQpvsb>bJ7Ou(GSvjkSZ7opJmf)c70UW)FJ{Cp}t zfB0@aueHx^k##0V@A=Q5L)50plt2-9hk4lvggw*-I1U z9yJRV2mKf&i%p7aGSVJ<&HH{;x=e58wJ|Mp3(0_0o9c3fEirX60}yK-#%M4*Cp!G3 zdn>vb)h%sRLP^DM0V68STfY?k~PZM-ck(i|FExqEn)5PA;>N`bPopnMR2~fvV_+Ixwp2WmOFGGqyQRIWw&uJa^jK7S3|IAP z?5bQliUlj+si5i9zrl<%Tv+3l%n%{kjY0M!b9?q0@lIFih`GvrVrYQ`cEm~&II5wo z1m2kA^g{y6{p)C~AO}}f@0TSynC7({w^~A55?AgCLmjl9(&6+mT3FfiOlt;ET4D6D zXKJb`u&e+lWgtSiE|L1wf(A`?`r*k?Sg!wvC#vJdcmgiV1cVAz21X)cVmx?B6bxa_ z#&{$&lMO)uMPfWke_X|Q0{z4YJ1a5m6>pT{HCI$e7YFcbaCh$4xTmRXGWPOZP2mU) zEkX)gM657#(Ka|u3_%$Se_kA``}#0DMpqcrlC&T>+Yt=<|1pM3R@;V&iVcyovxsN^FUE`LHp`7smAtEL3 zOq=r2Oh%r^`8I0l$ge3mV+-`NC3UKh3WUt&KVMv58q1KQww910>K zn~e8{lLOX2=Fb3Hjje+P7@MdA=tnqa+jt~|Slu8ChTaxBWMJuq&N<>dwkUeGsG;@C zo#=4R+KeE)c)@K9j4cUC`^YryxK79b_a2IRNTu83=jwB3NM|M^Sxz~Ddh^9hv}pLu%_slvuHNytEDqI&z7wb)dI_I4U$?mEd-O+r z(a+2|TXXj2;9Qu!Fudbz^IgEAp1r~pR?qrYbOmAYx;K9VCda_1P)lr^pca1P3%Dlm z1?LXU&79Nm`DY@>FNGfL+L@bJm(A?&?>cqz#PP67`NHn%xrd8y|K_gVH*rv1cxiYd z@}u^pe39&lgo`UvoTG0CzzFtv?skOz8n-}LBO7~Vatmm3&Ci=#VCWgX?iK)Dw7ezD zVS^#58}S4Ujw67PCV7S@&%z8VCmvm2_R_Px=`$-D5j!femi_oDx-Q=?@l~rr5?_!D zIp?b^Ww@5FHZRgTO+Ohl->=h?%d#LyI%vLjm-9bSkb5xX_X7w7mkMxs^6QFZ-#N(B=pB20qxbmN&4Y zC@m%5lYwrfG3UrY7ozC^ns=!|sPE%Bva!D`s-`?Cwuqwfdor_8sN2v3f)NF9`n^~y z!P`I@E*sNsn=MGnvP5D(hiyNHtwjPnPqJz*+La3DB@YaKq`W#IB|@j1{>uwDT-Cgz zw~O`aJ$GNAJTjRia;7A`whcMN-CFJ1MCe`PIK@We>;8G=4}_|SoO<*YdsAtQRL_uL ztgfj8^O|{*CrJpTZQLM+jWT8TccE;TggO*cw~RLm;)T2a&4(MRvq(EI{xf^OxleS+ z3(AZ3X)1lCVB-t-vCfelWHCQ#%amwj-XrabOA`&5v-+htgAB($4Pz=D-U4bwm%O5I za>{#DEQlMvm;Z3$wd#vagP=59YmxE}A5|t6Kms79 z1BmeDWKa=0WAor~<|-yR_80D`=w{2_P4UhafOZLSQ@!a|%v2+Y)xnnb#NM&IoFKeU zS;RChXUKAV|KoBz3bb-L)+dkhOz=mkeIB=AIk<;djfA5bsbSKR2CgM7L6rSYb5Mm% zJ_o0aI0vs;SUCqN;^;%dUnTK>R+ON974pZ3mdu|epkd6kf*Ft28a#_0Er6K0^YKos zc_z9^ZAoXXmL?0-jHZ9G@=QNCL}^;-3g!?9+YVI%Sw+FB)nJu@#No}kU$2nSM}97M z*d&fNp35fdh~XN=39#>|cku{~#?E3isRkm-@`Xb}Ztvjqsd=5PvVOv4 z;oGO4lHKf&AothphGrzQ35jf`>hEhkbG5lc-7+e~ZA{OC15`stj(@djGPRhFu(W4n*+K9Fr1E4Por+ix*f1@q|f zU-C?K1lm#-vqdZ=(8j3zJZN>$geL6NHPTHxr>@zHJ<}%0Gzx+wQTPJf9CL_USEiAo zVn~o=+Mu2=lm=>tSW|41GFmqTJ1K5+51t>LZ}ARG%QA&-Jm2D_Tne#uxh^)TqmcaH z>ocWK(%ti!M#g+piId&`D9_#M6~l5sBTar+w5tw@Pumc*L18xErh%1B)1c*BkxNxi zdq=9OirJpQ02?EQ{MIM}{I-=Mz?!fUpAGt1%+s`YiGx)-oO>V-!AuU1uPi~G!$<@j z0L1|ir%kKd^HgbGGu49UZp9kV<45|eh;y;@4Dl}EGgz2(#XWbh#NM1lP_|9*kbWX; zLRWOq)@Fpj3TrLsBgRWXpCjl8lHW<|gqP?fb-Rsa9Em!O)OmQTh0w_R7M2E(f1@&z za`>K)m|q%QNwx;iS^&MGI$`r=yLEu4(2HW5}X{s6T?PXpd`(i;{xp zXpz>==&SH>Q12J9xy>F3b9YX0gR~Uu!y$29>PUe!RlKgiXVxu8Pg13s=W`Cle zrao>5zY)V4j&~6^XbY=)Cndy9;*(B%vFHdr&6kf3M`e(>OgAZf&5L7Fc$`tUgU6Z& zqfjyAI19gNC3~@VYVBRt5lTEw`x?UzKr1zM8c$D`7B*7osBQ08T`q3b3p}kvh=mj+ zE0OA>!|hcQs=aCgEgZyXQ%^f-ysRB1(WZEG_8c?hqCYE);acm^_2Uw4$~+q35etL* z(^9u7MtX!_toy3PjzpK43U!SFCGH`6Iziv`+X!Tq^9hr2G`@#YcHAfhm;=v%84pXj;4@$CVV9KV zup;BjOj}%5OBOt@wTi+)Fl|R}i~t_|kV=E-nzmyiLYg)IqPte6l=h(=Voh#X^orT( z*)~nWfIJ-en~%yXLqjX$8l4q-1~YS;%WvCt$N9iPQ?9i#V$oq`TOMv=RfL?cIU!al z3ub(LF@O|dQ5;vI#iHuq1lBkIT%XMyP52R%5t8V6Lnb6T(H+QBy6v zQFM@rc$VxfIA$dN9O}_A;|0bm9W&Bv?7<|Bl@i<|wgD`pa^pPH>^fhYSgb+0kxRs> zn`-;H6jnH4paCpIxBlIY=}j?Wy@_Vvrk%S`(iv&-GK$s6%3$u6&D#wutRaYm5Fz%X zy@+;h*Vb6`l4xtV3&1y9YLZH@0mS)F=Df{(8xxsGrANyOFpv%~>D-bWOG zN%jalmn2I9@0*jrlO$0Q7_8l>Gvvg{vD_$sl0A!NIIDQhb$z5bb?Swjw(5@2`L_=6t~nHE}~3a%}oB)@{sa3 z8BoD=DJ9_?I+PBFcR7;Sl-EzhUVV7wT%;!ClaU;@`CzRDaHb_5Oi}_O*M4%V#Jl}q zl?<|kr2%aDz#&s*FGixh$MXBu*y6s5^1Dv$E>_6zZl*y;x68EGe_TWhqOrx6S<%NN zI&pkK5(C7`_CdZnKm&S87&bl!sw+XERa<#+GA>*8^tGEKPoDQgqd{!G2r&#U7Z(Mvh7q|b*Hva?U^$Rx zQf9qrxPvW5Dd8WTEKfj$L4u8FX2gOPf-)AkicZlZp`&ZZaZHR2!nE9ugL8(on-HSp z{cA#$abqZz>^1kFt36^jL}`5xV@ou2Pe-ZF0?m>G6=9{;4K^gvWU3$sG0pK6kYGd| zd1Hs@Y^s10H-X}@Sa+6`B>Z+8g$T1#oqTMxo+IvbND?V!9mDShDErp(juBY<0M9NHW@& z1?NfF2TMZYqtc^wBsjk=AsN?}sJHH-wcaURSt+gDqP#XnG5Zn2jKH~GE@up%4~r7< zYIB+=&pov0$yvhR{K5G)n)Rmo`jW`aagh8Q9b4=;%?AQIWyf5I18vtkvorFpU+SDo zW7j)6GJ;Q+=&&^lisJ|j)8plu&D&QQSMLeaA6b`@E}XtQ=CUBhC{GtnBdiOhb* z!aCN#0o0^S%DIB!sT~{@dZ*%$Oqv<|X3hKKoC1%YQ(f9VdcdGiR@G8W|3sa6LgwvR zI~@$LrYsg4CS!?ihPU@Mf8ZSSHp7o4ZOTf4*!pl;T0BOBRpalCQN-%_bHym^eF<24 zpI6tC@M`tN`9TiJ-Nz(ZRd4ou52QKnNb?jWbc@W1viS>_>aE4J(Tc1nFLM*~=CxBu zlBz#_!_Z1>=?e?I_mtRTaoJ?>If!^zCKGNqqLWUv1ZN3qx7VE14&rldRlKgLIXYkM1Cd0z{}|k>67eK*CDeAT&;uqG-o1 zUvT{S({{;xrgH-9l%ggzR)T-=0p&u*o__TdkL54B7bfie%pN`03t_t>CH}I(jG_ER zGxWs22G^7*v36YoPyqy4u>%*V+A8>PX64}{loZu&Qc$LZcjNXKCz3A-eb?WX)mUTcfR#T?lQ(tb5& zGp&pk^g1^>-SRL8l7VS|8*dHCw)B!Kw?8?xZmc4mejDa*?L0$&bfJDN6^vhQK_pr# z6BF_{g~XNN;tJNZH*+nrrgK&MqC5=uI6xilW-EgR=x8%(s}!TM32Z~m`-i^K?1ERh zqo-z8X-5&S+^d|}k11q57ul5CuL`K(BUw_!R|iz=E$#c)_|f8a+0yY@1-yoAde;;( z`Y;0Y9sdh@`jh|Bx#t!CLkrPYQ;(#PnPxnZii3w%^myZLbHCl@smDl_Kl~Idf(cSI zoIVEW>-M>hgfTjzCn4{nyv{W1zAEZexM$aT%V)^ZsLZPREIf^Vzj^2u*l&;Ld0luD zOr{~}z8+mCAyaQX_Oj;i_tsPKhzYsn{$i+J9UiRsdoc+_Zf($H(8j(Rb892xJUv5KYFpzk=X( zb%(3_^$;Kz^DS{H;5jySYK;#=J=LlOLb-Lxrq%}gaET1N7&!Q`wq zQ|ZfMs4_)pc$Sp55PnU9HxKr(TyhZv)h(@l3*FYWHby|>HJq?^^Wa3=z)VXlSQL;1 zLJm+Byr5%5xgL2Y9qH_ib7m>$2yV{g3J`}EhzX_@?00-Y&Kq&og$c!*;dtE5ys;}K zkg9s?I?xdmQBFl{C&`PK^2QHf(Xyf{Y?C2%cw{TU6bPlJJ)=F_1QN<%NF6!@@MOja zMO)w{?;AoZ@_RtA)@7b_pUmx0OkdiMM_V1w60qRR)#XxWgqMBRgb^%jK(?@2av1OB z4?AMFcSR3I$PdM4kZQn96amofladn1-U3tH$45i7*QQHplEJ=hoGi;Swgb zVEpi2`1jq}=kL1C+N@ae022eJ=_ewrv*kuJXvI2eG!-TYZxClM^c>MU;W)rq_Z&=# zc%yiV2D1hWbRrW0MZ>#PR4@Gnkn6#tE}OmDH2FST!QXVSYECqTK0cc6dXn{}WSA$a zDe6qFntn~51cFVTXsfJR$<0v+J0Ya9Z**1Q;J+vdyZ%{+elkGBbIjXPJ07(4NxqF1 zXJy?hTvJSn4O`)zst@R$sZJEbiVEUCo{gc%zNNi&KzV4S18RI)&8%a$_LBr9yi z7vk@N`N1}&oasbFjBby}_k^en%?p$eVKI62<)cCjpV?u=sp@3mVQ6p@eXb`KlONOs zE)Nq)lo=o1p)h3lSn6OaoTU^Jh?8l0^~TfrL;9TNs^v1*<>uLY=L#i+YCHIB+1vyt z*IRwcwA3_}1BVJzdpd{$EH=ZKR+nG{+K>xe#(~UDL9)?10ovfRQ!)~fQA7+Q|Ad+P zL_U<1LFNSLIHxXbqS1!j!~ahrX$wYVO`*LQLVtxtkM1~5!kFz9gsy-II^0r$n>-k- zCq$#OioBGerNUw76ds}uY~z3h+z_kR4$S2;J#UMiXWYG#2t}S5%j-J402Id;n}V#V zo!lGLONGlw;B&1(jw7?gl-!)IhB#Y(DGbzk7!i9IBdmH9_-2C4wf4|$3a;5E-)~HRFGgQeJ6*D;?rH8|?L6rqek`Q=%G|;F zfTpfV_4D>)$q=aLN{=v1>gv$$-DokXlLpue;+GfPy+pul;N?K>-htKhW=V};U>&3p zQu`*#Kvc~XM1o`tYJ_qd_$H+G;Wa}CmrS*!Ji1r3!R1Q9<&}5Sc&={87lDxZn^hMViga$*}xx9c(=mfkV zu${Y2m2$tebX81GN4iR>Nc4;tTrOKAppYXHD0u$bbI5KrJ`e-C`)JK(=B&_~r54I= zjxtHD6jsG_^Rmpt5_{Q>k z+2sL|M6816M_;d$QZBc(o}D4wZHTaNUMls#q^OY}cAxCE*=rOJvFr?q74i9mz|^$I zDJ|N1Ig&|KV#>hjMrN?$#@0;{U4*uxbIPCWuDL4Fx* zoztj*@VMn7xN2hx*MPTe1&2bQ0JBmsLE$C}IBeR1FRp>+dg&$#ftTk-y>vTL)80N$ z+b|vVW|;AdDihw$*5eR!JZTgq4kfM&zCOYRS%0vd7Q?8xfbGg=4gCeQ*5piz6&L>C zcyZnj)_W?AE#-`0iUA^K$)cAV*X8UP6~1xuj2%NaYsyE?m2}0bwnJBL@`^2V5zcJk z3-lp6qy;CrSD_}0N3H>I`@v{vHgH_PV#XJ&o#tMwJx~{`t*33?)Jc?_YhAjv;P@EqMm4h!_QwNJTDkPmNf72mPlLB$+6% zR+R_Xc7?-vG*nY4??LE>5VCiNg3J~LQ}dS{Sya8|Z+{~%$FjY!iumx!He-zjtHN8G z8_5IGU>)iaVZG{gr6CpCAnveZoz^Uzi6q}Qes^|CM#-k6XC(`!dEWDVu5XiD?NX7R zFrr(Wx(0`1aVk5T%0v6pPgUlDQjULH9-3*WwjBj7E|t|=&x?@A*g-8XI&hf_?=yap zM=-k$C;EFUN&9WX33gH;B^>wsd_d20!7hiPLgdK8)?7>kwaO>X%~)X* z#7Jq*BpwQCSJaYKVUF{IFQjVW3-3yC`q$gy5~BB&25(Zl9b!#>Lh=$bP8g#e-XW)t z&zfDn?HxHrI(8u!aLaXdPg!&O50qh{Gm{d5T;J2QgFTy}(hcf#;D0A+dpWQOO z^CF8~3jd0>#w3efnqC7hme0$`5xu6>ECPr3N=B{bD1j0l(bn1GmLi(rs&G@CM8so< zZ8--Cf6AYZ1)(PL1yYrB46}mJbF{lNHz7W>At+fXaL0sZc+`9W?ax|T%WtE1B(Ck- z%>e_hESjkFkIEa8MKx`);Gk9hJk=q|)DejB3uXB6U!ZOCcL|I3@2Y_=X^^E3g%|te za$XR=j0uN@wZG!dt`(STb4)`J@Z(sPg1c%5;P-Y>oj{0CJvE?96_l~$7;Wl=cgkh;V=gVfzO^(1?q$J}%eA!Oo8PRzOV z&9jVkgceL`!h^#sU**|yfU+SR$<*@ z9T37s$ye&LUxC{~AiftgJdE#*M~&-LQn2xG4!l(YR|kqzMKVsLy%MiurH4(kpgH77U)s zaAMQaf^ocNd!}eN=>wc#V`9g)V+-YQ#ddIx<=XAod!*%>?T9&ydrbzk+JQNVS8sx^ zCQ@6{boW|I*5(kdv8;R|iKKiEz^wIvf+42n<1&i7lGarCCLYqHTr`Ew&9kJPbv#B% zYgOlpyjx#WoW0++Qgya&0TbBnAor{*MGN%odac($Io93V+|jR$TigxddN;^yvlZd= z16wo4&6r@4+A>Y75Fc=BUn|PahpTNqfbalMiB|n>j7@+)N<_^}>N06ozzR z5Ddj0%R!X4NTlR#UwTBMbG47kF|7&U4tX^}n z$FPck8~{kPFM|+V?DdvhAV$M=Q({+@hwf1mMzg=xg9_;ko2RM-01rnmoFpJaUS1;C zm#RB#=#;y}N)4joa|;fvbv@_IP4Iw?=3950e_;&*hpJyN30B>|rxy$SOp(*Mievow zf9*B{sk!5(zE(js{8Ge%1jVZ1KzW^z_o`c&;p`V>xzf?Y(z3Y25}3FNmAko_*UmmD z*{GtZeHYSOy%70_liO=B{j;J{Kj9)K5-(B69+=~%ihE*8|De0#n3YO`gH}9BD<0kL z6*q+3(}LB~y4|={NfXN(*IDmy`m04HR4b0}K{ai!ZL#bqPhW)>FImHuT4A`rW_aIh zl6~aKD&LIPd@gv z|J;f1+IJD386|=rMy$h%9Yi;4ov7T)siIRgpq*mA2dSE}yskq=;D>HT>_U$2N{~6U zz)t7121eSiY6?9trseF$4&6AHcXH=lpoJ5~) z3esKfhlXwnLq+;*bJo9{@ny-EJN6~-e%i6-b9^NkfwQ}*_--^O2SUT(4aY@yOzDhu zMW%x0KF#MY0d}T1#+YjLT{T~GjGWuy4U6sTndsD(#fvCj;%zJpQmePL;))Ekx7#r) zo6Xs~?z$h-8yZ{fHP8PWcdMKcgls=rRU%|ut+H)m#+4kVR%K%;kNnX&ExcubDB!+A zX8oi_0TrJIKJCVZfs88S?$i=97T_^Q;hdhwbq<`eZ?y2N$7eNLlLFa@Ry+I z>rJ8V%;qo+WnOiqQZW*j{F_>0YRLW&H87>ost7fm%OsMxFtHMz9 zbjaibrk3-N;`-Vt%T8MlE13yip#%fVih_pIv!!v{>O}KtA)#aiYbrEqKaPs^Qc9gD zL>-0Q;6(<|#bT&0Ft!6_n8Lx|Mi~HqWc1Md&`a5EaHVWY0@VOcPjKppz06;MU(AWi z^f&Z(dxd%U2hHQDtZOE5>)vt#DQ&Q99!(CKr1PM8As2rD8PCUGB-X>&8chB8SkTfe zt$AvkWr*=HL=lH58x1j(B2dN``H zzNDzUD{?E(D(9q7NeMG*LM@gMYv5cDy2eaCQa-y_*a<0~RbyDKn5Qo(#8pQ5ISHfA zISIU>euN*{iO&_scYpS)!Yn2k6^!W%#);XltR$|v8*$63_Gk7A#*jE5ev2Q=D>KBz z+3-QjXA?S+t9pqo!Dx4bQp*c31f2V;jhqaz(J6@pde^!v071HRwy?x`lLkuu-+(V} z2w!of_3|QkSkVDravo=KEq39Gin@A0d@!NgHz=Lmh#4pg{Z$yyk;jnmnk_}1@d+xOtny}+@>Zv^xvdj7HX~Lfi;~}c{lJQ}B5+k< zPb84gtF!1ujwZ~o-6Hr-#0c3z~p>*SJkJ`SitO@a70 z+!9xZ)Phms5Z8n=}9A#io}3-#zEcybw6zUmzn`zl;G} z^_ekXt{4N}@|%nSQ=^s`u$V7@JM%S*616NTd)j$3KdZ=0bf5_xPdPycs{v+*dc6_! zzs#fK?k6Vg!Bfnfl<5(JA@<&&|Czy>$b2yUiHV_&G?Y;!_cmgAFtlMAz*kBD1gl>& z&_&3TsE_GchYUG$?vbr`F7)WwdM#cEcQe$mdMn|C^@+ghv55-1gSofZc>IFWK!Os$ z)3s7N@rb`of=LMnHq+)yBoi^2*u98Z_6>q&w;pLHctOw`NC5FtIv0cR%xg(ZLM5TP z$=@m*(CL3ZWW0etbx+?cPgDP=(ucRAvN|7l zoLMWfXT##AX>mNn5Zm1$Odn1!F2jp0ieLkixl}PtnYafYV&@=3cu#n(ja-we8AO2k zDk8k%DqP8E0W~|w5SEc-tI!dEGz{5l#y1dDK)Ju(G<@_xlpA&&S`;Ab(bvNHwe^El z7nSv5I}fNkyXy8hyKJxy{aZFW8@kzU=w{qdYf!Vm@9}yVIK<1P2 zLh(ld#bvL_S98mVd5RrQO;v`4*nKAa)Jg_kB1q~c0BJ08nha$2Uc!GA)vSAuG5%Cx zIVPkwzWOGMp(;sOic%g@UKu7*q%n9QL(#|jFj2=P z{O-QHgrke}dBt+ngaAdb92;B>haPK^s}oG|w)lPJh+tjTUcahmWI+2ffVJzC6p&cqd%ud8j%A*qNb+lj7-xXmY1t_f;J1W)BXME0*g9u~2u34B-yDa#mR< z+Wx|;FM|~&-)}b_?1^HABfajUxa)b^@@QRle;E&tG9M_bk8y%}bnuu9o`TrVhO)@$ zxGIz%yDDp~kOrC3S|fO>rBZPeVoYdLL;$U*0N8z^2Ys>)FMXMB!+Xp#iBOgKbztp%0Xw1rq9twgXGc#&Yw#Xazy?cp6b|K2PoVB#PL4cXpv z_7T~`i*QrE=mhM2FN@H`0;&}IpvtG0NMCYf5Dmr%C_A4G3u-?(Vr_j)j?jK5$`Jy; zl$@Pgj>vaw17-Ua<%qs(XurYt>L_4AzfO zV-C2zEJPxlwI%^FYVpJvdoZ**-KSPFc4wKKxubnS>cv(A{Ur1{BJVA2#wQ|gWHZJv zOj55NgoXpQkTGDDJdRx6F6u{z%Pa3F@28v2jK=^?Ll`di)*7+7)El-|}ic+^(jKs&6aZ{$XI%3l|#?w^XmYzUH5OPrdQ* zp8X@*9u}IdbP4BfEsR7B<6S}(yW3T-C`D0Tf9tM9B} zunN)l8g`R6U)B_}zf>}d#j~d0c421WFaP}@aQ1qdQ1gj};qeQ7y*#Aku1EukG-&i; zSa~T&BN2||Ng9}L?>B_30fLE24q%ZtKi6U6l_qe-kTtNMC&{8%q*ljtf!MwD4n>Uc zf~JU3N&T3r|3wzkIWng_sRbRI#1{ZLP}Vo}3@7d5l||pnGi+%R=^>=dr`BS&xTuLR zIgXh@Foy9aj&h56U>5VpE#`O=X0;LF$Sr2YkTgykIhUD{_X|pvmj}SD5MG5DO5Dcw z*UQ>Saz76kym8RCJSDmV1*5t3Bl_-!u5BzLI0@y`H76l3y!ZE)ms?fQxp%a08`N%S zyQLy!JCIvjYRL?bqb;AGGRj?ES3B?=q@`VV%?3SP9Fro<)2~~MzN$Lxrdv!z;(9K_ z7DEM6hi~ziHjk-2OlUsDQJXN(!wPJV0$b_zzKe<$|Ld;1jyB&Nn$0H*_iXcBGC4-C zuoP87Y9~)VP4?ob9=z^5NpE8b$~?6mxx%cy=@2STQ)JH5AQX+~8DS75+rk~sf#8!x zSolp_^626jIKs-0%|83WJqNlcy(Z`WCrPQ zHhedEmN6(llA;>2**gVHuHPFE2;LwYm0>KEPqj=cTj~Xq415#)j6?Y*A&_f&v4BLU zx^%1B=oVlT0@Jes5=$^@-@nR7v%D^v8N%Kf+#Gz?dCvNRkPCA=Ey!d00ajX5As;Fs zR6S#967#!N-xRV6GGM9}0$X70ZH_M`C!C~qz1#XHX!$3OtIrPpWc_l5O9=2u`37JP zX7|Fl6|N=|7I$!L3ez>4)_^3Q9mA-rWZX*hNNHNRz;KTE1sXR9xt=5^Y+zGpdrme` zwPs5cVy%K{^yQY@lf4wLR^~^q`TUs`YFBhNU;##?2oB%0y?R&#NN`MeO8%bVrpr(kr|3G`ayL*QtL=RCzT zB4vx>&i{&n(OCu9HQfF3o+*- zO-r8R@7)KmZ>SbNjHKB`8YAl1CLB;Vm9}IeoHvqFXQLVJ`E#ay(?DxK?HdHMUaUxN z`*=u=4Ia{?k)DV5X}Baco9C6QyR@1$L(12*kHQ~^1U(t+p+z><%?OF{KI6eLqgx-> zlUE@e7=w4F%?o}@JmLMH(a#qiZr=Z1KFmI*uu(51iMvBaO4$MUiC5W2R$??;ngtT5 zA#oL?d_($RYnWsUQ5@X1H8K^r6WZ2m&5?|OUQ>>&{9ehYXX3UAXl5DqN zAfyBz%sEW*r3coiM_T! zl>uz3Hjy{*xK*!!Nw|%BN|@NGcfNx^wPst)DkX!}@68{I#k4J#Px>D`KEkQ{XzAub z(ElPdb{^gf|Gvke&!ncWlWhuwcA`5lSgSj)ux=p1TBS4hi8-~@TB<^!9MpVWz4?@= zosYTH_kJ?U1DPMfutDZs1TWi=eL26_QZj7`<5TnPdZW$qnJdAJ&2vpZGA;s&EEWrqzFy))fWkKru7%eX9ohQ zrC?yGo|qmA6YBfQy>efAQ}Co7nbljW?_kw{uf7jwz|8McUrfRXYnkcSOvPs0m~Et6 zOx>*rI#%389!T4V`FDV_ftm9Xpy*T&*MH{-)vSNhW~LqAeU`wCa;C6kNlH5&2Fc(w z9e=vNE$|T1;catimZ9(Mjqf910}r`Pv2qf$#ir;(5&G}Q3igk(i19aKUAW``cw%i2=9{&})9?k8>kL=#lOAKExU@BpPci zohKWOqfuAW`M~Ks*oNYX;!}>Y#<9qudd$4CSI*`|J!8%UcnYDkzOT2hTX4;db-Tei zoE|f-u+6?oLE}47lx0>P0{;m>8GY+?DSJCqO^?6qud%u(-4JfP7>d3a%DV`PJ_JQ? zL-dCdMO&J>QM9)v5ZP`4JD|6bDEdB$qVFTHZq@fu(%;3R=!@%%q$KHNshw*Xg@GZ@ zx}tR&?%8!je~F0x68Ti)Dwnp5d??iKl@uNKD?f2{vj)Ld-yZFE#7joWZ|jral(+H> zbPOiztayWglUO*(DQJLxpi}d)pU%-OVopd4GF#S(Wa(juFWn1CjbPK6Bg(!?lq&Kp z0C>Oo9o4ky_Sqk(3_!Iu`g0sk)&-@UpyQcSB60adXw}W4=?M7&qi;)}0C6*moTWN{ zIICo%y=n>2ped5I@-T>KF6@3o{<}>Ut|RQ|HJ^Ns;8A#z&0-~k&>_Rr?uzPB za&swRhh0gv>nM%+uI@v8JTD(y+E`zGrlK>YBpfVw?LBW%BV5WOhf*DNkPo&DCd5}v z2`|4Nw51FzRUbL1q20FO)^PeE6_2Ue5vmGxRuO)%WTY3G0D$hWVuu+U?38OBNe8O~ zQ!GF6UoYb)KiZfxUM4gk^OOvDeGe1MP*5dgHqd7^TIBiueg^U#t%VT&(U`1%H2mUO zCG@$|uHapq-tnx{uA%kUdO-Wp1G)!mm*=7Hi%ml#w@H zJU=Gb32>?!d&6j`9#UTUoyfH72?MV=9H*;_?FMzO!Ce13bQ@% zWIfAWoZ5$h9(>mOIxIWb*mgs&j%MNMKq@l`-se?v5ytQ@jF+e_YoqEZiD_}gdLT)^`XAkF*!#+Y-hwfEWi$DgP7y`;@vf99HV%rVCtW6Uwe98=y7=aC^jHhq|m zT(J>6((e5oNlk3xo`Hc!05Z74JmO?%r=$2xO!TJ0R#0G_Nos4Y);8%Q(|#Z~9Y{K@ z)ew$AHrV?1f`si#gBd0~s|1+7?q>Pnj)fB3o)wQw;Amey3DA~u_L5-3Lr+0Jy?C%r zmLkB+pENwf7`G^a{k}PCv`qGjK?+%sQN!4Fiwha3s8=h%=o%IdAaW+h(K(dZ?VR0ra*E2@z6NTpXYe>t5in zcW-?$$D(L{@PKSv03X;5L|=d<(&V%NqdK8+y_RMhG=694%?6fb#Ri#PLT?b=YGS?m zw!Sz^cV~r#89JH)1NX9^f028;cSp-?)UC!s=zDMa!UtgcSS)J5xc4aWj~#}h-qU|c zxY}bN;Tf2&+59~NiYZIRfOZb2&Ac$JBW_@RjU|oFrkS*E;mE$CL)>y!O)XT2IJGcU zo5gWBGL3D&UNh$%aE|t+X@rr8G}l&)<(7n%szeXERBX194$A$&m#5tG;A~I^oM?m5bs*we z{8uKP!~e?=50i78?|gU2=QxzZiDEQ)8Z5+CL}DJ&#Wmd8Y%X0=#H(PHpdB@*JM3`6 zbjO6G)mUT{3R(#y4=Iav1>z9_{j0N|ztPdOTC%0r^rGylV_j@gyZ(JDZktMthbzW) zSk!~pYVnMZ$*hy>+tqPc7QPU?0Ls&dF7vLDcpoIXhCQb8!4(j#WZD~8rB9aq%a3)h z9>qiu#nd%6(k-w4x(~Zu!@~t#;WN?0-kRs2%RKbT{-2pmE-_qTev>gsmMzE|Jxi9l zX-*&?&Mu*Wb+r9>9wQxL`uW9!g&Y*fm<`PH=O(uQSh|iiz?UPZpu<}^EK2V^v-S}qkjhbKB24T_1WLT!eF|WMpYL6Y~sO5vNn)W{|R$(<-*H#n>>%ELp?wRl2RP zFor|LJcR?bU=2Id&(WgU>O?gA4Wm>RfcRS~Im_1!A7Mk|#_zFxsiq z=8mh)j$_*I|E*R=a!g^eIjoYI&;*+?D7=@OE0^F=m8l7lbr}8S8tlhgOO*x-H zg8^S4m472U0Xi?-0{o}-7-qr*>txf(b7`|w2Rbms;Hr|PqpFMKx>Olr?!pVR@1nV(e2}zw1a4^)ed&w4xQTo$_OvbI~?2X685Bgs;VYk=4wgNnq(-{2@yp!6k47X8Nr}Lg{rbz^@!E>X>DuA3uGzGU=ovqky)O9`zg$< zLt6%>ifQbQXMr$#(7-KXTY^8u(03e89m*SL&18x&_X*rFHV9D>OMyp28OLYpjN{}n zm6_I4-E%UZF;9q88OLWD8OPnRf;oX|5RMhxaRkFi)o`#l_slzD^mFxs#MqoQGh572 zO~dAa+%-FPVRYF8ELQvH=OkLiL$1LWMS0h@c)v zD-2eB0If9RXwA)(bbPet-zi#8V4^;4vT!e$OO&E8dg*T7w@ zp%yHai-HjjwjygW2%BlkCoB;T?I9|R*)m~Z{YXHQ`!QmX0X%J~#5beiyeF`yRpGpq zNeqZ5o5Ywol6}D>R;kI#!(_cs2NZYaZazFou@4|2O56%Dd{W+%EN&9D(_-&^(-wiL zu#;vwlC~ERAsZ%C{6q?>v7QD?JXK|Mlcx{qT zkz~h_d~g#B1cYX|l#86Ard}b7-N;}YZahUB&3B6FrQsYqIx1%7a~Ja!q-dPbyhC71 zhomD9*qwu=5JDWxn^HyUoe>`gd9^um&K-rk}sEP}&ZQg>v^!^A)d)dNCCZI=K{bVgxXz0&S%q zqmXN-Q*{p=W@8F@wnia81N5PgcU&Qt&w=xYSc8}`pGcC}a7Lr#o~bG~WxNVYLHlI+ zgbQ2K6X7z?;Yo)jZ00PFZeO#Tq1WT6ptsTZ7hFMagVzNgEQ#fyrF%_;F}MQmt~}Yo zt%cEHtO=W|$TL(fFi!2j5vJ>HOd5pdHYU91QD!qqPRPi5wI8qY{GFa7L5#0n0HnR^ z^Gwlm(9bC^rEzDTbO|jbAjK*Ua1E=h*@9Us>=e~2v5_i5t76a0m+(BQuNTf;G-W(kj{fOq?r?N6A64g(WN!77*N5##$S~ zFqmW}ZBnV$XS2P%X{rs-29JN-S)A`Anf|1#CqSwRw#3#_6{2k`v^qaw*X65p8sx+e zlk$tfj4+Zlr8i3x(DN5%KrA6)VcG#=G=K5VBS=8 z0w7qJZS4)Atyz2X!D*V~rw{t7_N&vD_@o=nU|U8Ow5L9IZB3&3wuC_(R{Aswg=(`o@hJ_}Z=q4{TVXtwa zNkivo?(s-smro>i8K05FsK9X!wT~zK6Ude~O_D84cO9Q-zTr8aUSX2?3dZ*vuqjJ| z2aZEZv1Z`&T+vm)xq{om`)(EUEMMas9EznJ-y4&dw+9x)D#@X@b~9hz+>sg1AB0s7 zO`840vMT@p%*A63P={(Rhy`j*%km47bx*m31^G3~nH35xl*_2A(0ESpHs?!9&}(<( z3@O?gQQ5ZH5kp{PZPQ||-TrIkM24e**>3+eeiMM^hm}02glUh`NlzHk_DBbxZ%0wf zD@QG`HDbz%iF4Fe9qd)8RR>AD=9yOMVI5AsKuhrb0DsruN933@aG`=9xo^;m931CR z@Ox1d3BkqO86J^6F0{}@&AdR819$IKTBf{Dut`{1Z0iELMkikjD{FXaXs`R|a?DUYa08Dp+2VT|Dc zGOOZ_cKt-w=Zw&JFZ=$D;p%67phomxQAhdMXtK33NH5CF%1IsxgH5pjuW77Twt>GJ z2<@>@nYAo}dMwoBYLpto*qiSvZ-41;kuO&xKJ9s2hFJc)28JEvA}t(_9YLr*w^lIN zXsyG~PBuHRGZhH95l5UUui0svADB=EF#JWW#)SZJ9XP(`&UK@F{m#l-DqJ|TxPYdK zqy^UOt}iZnTIL7`Rw31h4~Y_0rGKF=S0%!`+NN(?PUYf|SwGuWzTv`xRKKYdOT)?A z3@3`2c8o&ks*Q2c+%beOEJehLf#KsJZb_xqwuYqD7!n(I04>6haL>)?kYHm>hOLti zL|`X<6EP9Y?|4WA(RX=BRORu8q}6bqEIL;f&dWaI6V1kN(9&BLt`fu6R1L;ke}5; zj{sW_nwiLHs{mU7vbAR9w9JH>(*_+R*l7HqCO=L@)`#KDfB;h+tzp>oKDb)M;zAkJ zff@UwiCU7hs_&Y?z&TeAnQB~g$tHVzZh*|vujH~V6pu2gvT2e%dbv&eD-4bm{^DFU;v`DwaMn>OJBpwdR~I|fZQyTMF0J-)1|H6DDmg(az)4j&t1TWr(~^v-G%xIl>*)6(iBWCFotFfA}tqL?tH; zYc(yxB_0`|q10me?$1Oz5q7Qp$R{9{C_S-(IpwTnStDSLK!FuSa#Y5YLC&0I7V1WF zv?VzT=}IxRu1u7piaJyeypIxyR@UUG3=844CS)x~Ep|ZIv5sqCPf3op8m2d4g6PC1 z(^h3;lJdJu3^5IhNTc$8Pxan5)mG5D{;z@~+FEz}|qjeyTiIRu;B) z7Q>E~0aL!T)mC+;HqUpI@9s)N>c3K(Ikad^%A?x!M1Z!NSr{cfk1DD54cRqbPaEeB zMv!Vdn7@%`O5L-p6v#U=qm@^$iqxHD1qiGSC(2AQV>()x_UMJxw68oUuKVKgW70r9 z0Hm2D6_S9E8L1;2p=t0qbS?|nn5c0dE@+WFx;q%dwN`Sht5kybBkMQ};}DaU^4@z# zn>ka1_T=xIObhv=B_}uTrWU$4nCYiwvPHqi#hG}1FbB@p(Kxl3eW-lxg!s(S{IqeawO zks|w41fo=tk9iT9C>S^fQznX8H&NUfwjA`vc3}5zGlk9kgjcboqH^rBcibsUu?=-# ztQ?IU5D{{iJK@QHcP#PP1+aAAvE(UGsN_Ty2R+q$1t%q17$TJ?%Dnw3wp|@t*ohPD z{*F-ZB0^|h-ovH^id9dJ9@-Pnz>KYzBZ!Vd^k--XM}mvZ}&1fdsO&d25l8#8BJRA;PBVj&`ynP)S`P5LIMp zX1Y#AmOLFLOF3C04@7x_Nul$`baG;HO310e%`Aj5ibQls8@AG{nlT2Nr|1fxAu3M* zT9-_B)5`Qt3r*lWz9-C?A<;1q)1i2Nlls(MGkLn&SPYan3*;y^=rFhRzhOj8DlQQ- zY>}oQuN$?Qu6<`%J+;S(x_z4kwFIKJNy*LtC+eItej~0R>HujVYL671NYvUQQ4@8y z_u@27uMwI2Kz>g;Y;B*tu4uiK-v?dmzZ?DjeBSyd-`h-S1uAvzw0$oC))+H%04je^>9e6f>Wb<(eZ57;qcYhTo(;mKY{d zO^33g8!WZ$n7GnE@8U+PmeG7Zalc0OjZ_0q82FrnN;A~JTBoixO?w$aM;rUSx}V>SpN$)&A*yv zErfOGau9wN3q@}>SbRg^t|unxFklfO&L_tZ0+^$F9XLXi6_TsMGE~}#LW$V*1)S}n zA3+*c#s<LQIyT9fK}(*nv3D#z(V^p} z!+R7(cX7U(A@%r^!0}kjx3!ozy)2w7Bf%9y+LqDVj4vL1?*v9+s~C`?qzqP*j2Ho3 zSycb3;5Z9g@K3yVTT0n(2om~Lr$7|HT0mJ4fI_!_qHFq^Zhim9KrA%E3t9dW*ejnYDM zq+m;?q*Xj=(L(B*EfncX72Q>JPX{^vvDkn5@3e?a=20M@v2~0LRd$n!-0;MBC+(+Mo7vdV3F-#ytBT2k{z;n% zm<9qfjDT1PJ-lcRe4Y&aQNm!?)>x3>C?un$u`Wb#YBDmiVR5*IY>oqW1X{`h6tV21 zSAJq-YE(;n2Bd8l8{WUvBXZ^aq6e7iPG{BbLkhR$k#5$oW&rPBgfs2 z7CDd3DJuM&B6V^~ooxF=X6E6-(3)ol%*wJ(e_s;Nh19{6n} z(eNK&IBA+1tC5>wd<}$<<=g{j!Jw&7-R*lWWnvJaQgn99a8hhn^c^RUlL`i|pzEUZ z^WLEzuhlVSo6=xQHju2}W?h)TmI23OcX>YwUX$62>MZCgLd6zqhiL;`FTezk*gc$~ zF<>G$Oa&9y6-ybu z_Q4BL10~E1##t@QHHaZkmJr8+E~bYWW1pVZjP5A*&6fW70F&}p-wqv_-$bv{{_e`~x3e&h9FW#e z#sF)>iVpf9zOx`qQsmbjgDWrJV-nV&D>4#1)&Ndogkpn*TXE{;Uy(VcF5lz)X?wK|jzPV2_2;OJw#Dh|5ur}&P#NxlS0catA=qhd+fk7eusf6&MN znm+#5F1`U-6x|yh?21KoRI6csOE5vWd(I4vNX`ip#FluY6Qs3vg0#jah^0K#oHeF< z0*h@Vg(>3@iYN8+HhgX85J7w_YDqfAQ4Hi@Mrq z%gtFoBhLoRtI*y$)iRtGLt{(3O8xpfIgH&-7r?`(m!!v3A)I{DQH%u)CG-qNJZzai zLv~z>x~i6}BAvO-cN~O)Qb+_)F>~!L7Fcg_Upd%8W_hP|B4|gUVXtH5Ax8^{TIm0!av;T9NPk5$jN)3(s zSWg_oHVq~*fk%4%SCeq~GvVYSobwtMdSd23oQ;+9SAH29JRNC`k|E^*Gez1zs%BLy z)?+$OS8!iv2ZtRbC`ni)nK(nI-b+U6nDf{`vgMMj@}&Q3GKB!A?mHx$0Km*pujSDs@ZDh+v7?H zs7|OPFcXdCEoQ3ZQNx{^_MU`OAlON^m>qLOyfgWRc_m+LqB{+0}O=y|zb*_r01T(%$tu;ju2G6TpZGdH({%FgScn?0{leOHHJw+|+ zWC5;a`B2N2Y+;Ic3!YocGjh!0cV=U5!E=BJ{tOiYp2{`m1|w~Fri}WpWO~$#`^J-8 zk6-}`p#LqjQA*Pq+8ZUisF2Lcj6J)#LiJSDX$+lIIpq<>nN}FNxJWrSVU4g?Yjwu3PkjXW@bx+ywhAroU@JD&@YJc!LIWTKAb z;i)02isZ3jIIx-XL*_69{HDvmTO zrQtb(I4|r}Q0+Mf($HJx1K9(7Rx%YhFGRDa<_Ahz$Me7sbjrIn6P}~_sACgARzJwj zXa(@OI10-6^1oG{qfxIw(X>2=*=NjQP0}=k0?$m1^QfVdQmhS8HCsk!QOaY5rFDc8G7S24*cMX!TDxPjb zioB`%&?=KJ-Pl9(d$9}dMftJH_z1Ebe}qmKA0-HMD$dK@)*>-=p%>yk-iv9|bj+I) zJCk{5veC|%$rp=dqbCiY{j`QxCobtL?@89^iG3VlhUJdj)2)$v0x3dc1gWyv7W4|P zQ62zbgtVH_E4_rGvc{n2436edp%3BUHV7HeHSg7%=KWN- z4})Gouh1ZaKJoFTT#JMl26z7s&o4$d8utHDrk{GeN~NK77JB_Z_k*1F>&R32(5nR9 zTfP?xTVVf~bWTl68D;-dwX$Lyh`t)<3?@N~`@}3M6>V)YCma(P4^E!Ui6Q>;cliRs zLtUZ-+A@#`ckZWlyX^dQ5oE-E(2i2L~p6h#&qH?FI&?H26urWSF|gaCW5g$wZ)YSE8)nAM`9s>QOS zRDj4mD}G5WscJ!M^jf%(fsk67cLWzi1y+8dlatBu^j8vY1v71nLn20;C1Cr+ ztShpMBT|~8!U}P)A1AB$Rpsa#ccXxzR{22hQxgAW9y z-&011l?jCHSVW02~Z_5Z(G_o5RkP#S9Zh9K_#o&(0P-qByBH^bc-#)`2tp zTRTp+Cj%wAkd&G}7;IQ;#8j#t!Qir{Az5Sy`qY+OFBRaYa9kIHe)YoDvy4htb6A3=2WMJ{#Yph>{ za}t2j@WUj%&$MhunDd&jR6ab;X~sYtC&A{pPo%*LGn!L@feboyJ?J{ekQ(kjiZu4Cc2HVdk_EMsJ@&Je2iwS`U$b=Pl|HxOMs2s4MS-pyrsCj=v6b=bz5 zUTGVn6Giq_(B5E$O*&kQ$Vf}y9fdvGYeL9ObuLygqK!CVhotkGB2CR4kyR$XdY+7R z#zw90+ku2c8C-jfWUQzTJ$V%-=kEPzRq|fkO?fq-kcC4SU?HsFZv>?RW}3TV!x_Ow{fZ3nq-v`8%5{)VeoD6?CS^Kf&OZnT9`AIJb0 zNV->E&W%52Ij%>*UK+DZ2t^aM#P&SG7~VfxyDhTb`2N*arc^D@na zd8K($uANr-euXPA1&CXH+e=M9*KB8lRuezP?5-gdGTkDEIASgo2)UnVZSp40Jm!8f zeA{{G3;HxBiqVEYABwOY^kg;3HwCB=MMu7Mi$wypWH_y6hx7$tF9-}A;{=Z}+ zi%T*hLeqYjC*|BQwLs57){Jr^&gpG2uic3fzYND!7LSHF4hry$4KFWtuX!Oup`Dqh z4S!W}7^&)MttrlkD!G%9(;P{~(aU{c3lekb>>Ku$Ygp-M-?k7|K#A$qO{i{zpKi?1 zRR+5o));l)d+NLBbq=~$Dk|?g-SF%zG8WF!X^;x705Qj-Qjb~!2!2F`Gql7jr5YN4 zA)4of?T;S$LNkLGvtwU`eoIrK-#Ts-K0r3{jE3i^fb28Yb7c>XV=>xh)opq|V>#J} z{jeyiyZs#ux$kt=!b^z==|mjz<_p6IdRr1UMtgA?f~p~J7Pk>P-jI_KYh=jzaJ27r zO;z8qYBh%33{4feS3@rA@7R!w&b!5e@r-%da%TiF{a6euSM9B>J5fIkn6PoKpXOfH z201>hx+!vrDSIqmyc%S1Ez?)%qvrF>Nb@$T?7dYa^@Cj;$tbvS{yYcg4+_@0-7_iVVZ4AVcND?S>@v;&WsN0y zMnsq!p~eWZ_j6?D=OKHqM(Bs6R^0Td1vM~g+o$%0>`20&XEv^%u|({a>INJZN|)%Li~X74 zRi~>o#xfoPGB%TOuT~z{te`)v7-MXdG;|PORLcqRopj9ktTlu%rNVwCm{8c*z7=hC z*7juoIzwKsn)KO*Z|5`g(m-{s-iK$p9?9c}r?f}her+!n#&fL_Ii^CMf|LH+Q6a@u zKvKit+pw*v!t#d(K?e)2TH6!HKs))u%uFM8lWN0FWUr67K?_k8c0R0)YGm;@jhjt^ zi&%a+$hzV54dv@%W}NUa1uYuOb((jTmV@_!4nZvaVHWfph+(pxlSMs;rGp$_#Oqk* zYW>VQ8R@FX00M8d5f!9e5N58l*g~9Zou~w}#niz8kvK}u%nO~u$Pd<|%IOS1G8WV+ zR;X{0oyoVGSJP8i4diiFL+F-uGBRnid}*nfwAUKBQcNSc6l%ylHyAAiZ`ZSt5P%}~ z(Ahbhuk4~^H3hCvKu7@q)kFtKP65}v zC#s$=)-92!S^^R17?we%0%!u}ztUQuN>q($A8Al0s?JPHsS{Oa=;FLTQ-VqIIfD{7 z)9(z(6u~s*ss|_j5tT)(0dF{|uz(Ok!&30UO7$@kNlX^Wn{!YMf@xhe#fr^wEM-Vk z-4;5vTA(g_TqmkV!_ForWr2+Ufnl zy0-F9TCS6;>)?s+J{SFVLY-nS<(Blo3A01%NMpFGF$znwohm&?{EH+OzcU7?O@@KL zDisOOG7k)dxptv0Oi|$10v5 zDxP;$xJ8;VAbj7sV`W%Z`;0I>CsiW}7^=|6*!1AgbbQ>gY8AK2J&&Km77GsYA7gu5 zajg-?mM8n^a2RD2@u{Mb21+9GS$C3ML?etHOXK#ui#L`ti}Pn>t@tPLiTnaV-1Tq1Hw^wP@5sH2n;hu z4oylmVVbUC61~=_VZghB%EN+Z?O7w-Xw2Fn)W*@!Xy*r6dd(N}{~?TpwUm!{zZ+Vj ziMJ2u-}Ur4ytr|Ar@Rlxsk@l}#ZWU=D0(zrbGz;X$0Zm6P3Vdv)4HPO2p5vq3cE&) zFXeM`3>2cN$*pxlYgUsI1|O%UV)p3)YKxa%1GNH)z;@EyN1T>5>u!8?j2!M&`M)#Y^k;U)q}ofGtVlOZB}yKuLZm;Tiud z^*UVqJF;ZzDg32K`De*K`H^(wlOJZrr~Koe{AlW*h!3Rv<4@Vk)O#QgWSdBBJ`R&7 z6kI)VsdtHIzwmdq94XR+VLLYg@+krGnK6a9oh>tf#RkSRa;<6OVzqI}5_{g2#3%*j z7HU^fSt_Yh)wi&F`~6n!v4_fV0YsuZ7wQfI>`4VI4V{0su(t*^W9Qwef(oCe<^C77 zw(32I4QU1)B31zs!`9ETLTFvO)LQ`i_NM=(Zs&e@g34ioHf7hM1 z2dMRKSH0S#E4zh2M>@^rb+?ET)83<-5Ubaxio4!bSw?=cB2^YGtvwSlEZ{{q6Nr~J z;T7`%NGW6i-e*R5cL-knQJFk|d}r7NIuYb|&QG~tP8O4?7-LfJe===pK!%2xFhJ^S zv{-Bz_|6gzIAlWFSn)`oOpMB)UlZclrfPrKl>5VCJe%!{a?0L;o^M-zvCltVo^{(9 zJnj!O2#%m^yUxvCqB^b?TUyk1Ai#F{XWAGVHw!uJEGykyVn=@YrPh)y0PoeSwo^Q* z2*5W`Br(Gk@bcAJg$ zn()C$LTWe@ihAW2^-mn6u}F>vo*3@X#rP%GZ0%m?zuEBM;d>Q^u@r2_)@+&-Zamu| z-W$woozylTsC#XjTaeo@LhnW7+4INc*#neaG=Gfh3+2n$)buNY!J?$#73pq_-1O>% z0Gg>F7&B@MUuq~x`>U$&>``pF20-4(E&Lx5HnyQplG(PvX|iT4C4C9xYtL#El+&u- zOIOE~5%w4=$QZ0?WC)mZl_vG6 zd^QqqsO>D)J!{ryWm9T}^b~tXHlfX&=9Y2a4p1POO64aaYU=HZz#1$7&Zr&b1YL** znHc3GXU1CB&FI;4wWr0vnaJL&H7T(iF~~OXV*DHGK=f}6 zQo3;Z+$)&J_lCYOJw?f`AL?4A?CdG6TcTrkQoBT?wh8Q)) zv`INfbk-&bSS=Q`8rissPC(x=z|H6@pdszOWx5%|yynE|v6wN7Jz>*6@Zw!sli&ku z7xHOGxo=9&@U=NiCT)`hoGN6gjwWmPD#`IOwz&^XO9!B}H143bTo5v6_#g2w;%)X` z-`sFpNg1s_P>E!a8@1+5*SM@sW(^#b7N>wiLfqiISaBMBB# z(NSmDn|Bve?ABNEuB6=eH%<7O<%LIfR3O;3#)1gMNY?%Zd5eqlGcyT6+pYFgr>h*U ztdgJ+MUOo)Nrvpz*hN#_E3cpn-Hiv|7uXL)RCrPmO5}Ta&-yLjY*lPf70dUNv7x(* zdZ^9rxY}^#6`^82kdk&9p8%V@J%#11>G<%l!aBXYHM6Lb=wm+soay!pt`))FpYPqi z`PzL(yZ_SJyM2Q_C3o?{-tFCM_vuB~vcU3y>kYc5oStvyn$Nkq;JSS(3Cj96iDS|| zr8D~8wq%PcT546uIQ0Q|4=XI608z=QYyoQ)rZf@sJ@Ea##NFvYlvSI4io7-hxRsy| z#D!%k6WT~XecRbtoF9yy*novN!#z&Gw2;PPBdC!lXIe0g)8eqe{;yg`Ey zAmLQv1f!fvO_^_1+5$Fk3`>Y;X>WYrDmS8baWSgdjPS^cl^6iT@XUnF!a8%@>d@xT z(NZXjGrk2BRlt?D*a#b=y0V zw9j}lYLpWL$+mmq*2TB+_6s~Lfjir0h;cRY>t;^iQ7PfFujbe3Y4U6D4mRZzvuSmp z!JVh!&WuL<8#r>3q-mDrIc(Xw%Q^*@vmu3|Qrz0rN%-Sf6s%PxYz$jHKv)k9gwwjmGMETM?AVw>f1o8>Nkmsl7J$2YZ)_ zihZs&mjuqXnue^D^}wmJw%+BICZS00lxa;3jCs4#+tws0$K4&1lsBwr)|<#nE2G>R zUfP?{1U5fZ@4Pf^q(jPrmX)Ap5G9!QUt!s@bX#q5M+82;*8?55pzEPD^{ybFQ<335 zFyOOVBWaR%p_rrEi!`V#1K3+_ZAKiE4m6>u{s(2K6VZ-;gBiD^;f=lLoko-HoI0Hb z;}=zP!dL&D+LO|I*^j2Z2Ex)&J|5>({4H5({>$&a;UySA!~k{s?%&sKE(_ZBJ?Ce4 z>z2#q<$dth!$hGR_9u`Z(J`0rEI)bM$8T#te@M)+eJbbwdD%T)NS7R&o9yH%g& zV(lw>k3cG4YZro(D!6}z-zz00cQ<&kaCd9`==F_4cC5R~-X7n+(cgwD!?$ntxAsu$ zBY4fS(iHZ*Tjf>$yHqahj9nEb7j|wO5?i83lu^VyK>;!?wgr^w6~HR|Zq7cc{+*XC zt1VDMp3tKKJ46QAh(gYWw?$QW0Usg~n7c{&_c~_G$NIB2^qf`1<1;mw{Pr&1$nK^5 z$|3)?2(yXq6q?^ztg)cl1zhvWpQfNlGZ3q-B~3+w?v^;j5SZB}&H zJ8cxC*aPV%8l)EB*-6O?`44zfLZZ#tedd_uIE?o8cy$YAc|=|w)TsToiU-j zpX5m37#C4JVFUU>cM%$OPRulS(xF(?s_#&QHNYi68MeTk+P&8>H>2388Q#t;?R++_ z)bh2zr^z8?P^Ja2^heG@+4gghi-lJxsIpzIw{l<|bwpM|FO9K7%jx{$VS6KAwhD@F z954(dQ4Ybk8wS!wXg~*6B|4al>#oLVv(M>^&!&G+1fE#+Xcm99KA=VI;$fitlm3v# zX#iGFUfCSrh^lH0r$@@^*l8?^n9M1z)qN%&l(?6?!^emANQ)A^1Ht7xeOM~=Knnw{ zVlf6J_T`_PLvl1_jZ(-H9z!)z~NXKgVBdfUpEVKw=6n`m1!6Di$3JcJ=L z8cF%!EAeY72u}EGU&Jv;#neXHOyu8Zh!hx2H^KK6RvixSqFYU%VumTC4Fx`-#%RT| zBtl6Vf(9V~=EVbMq@IyD8;DyDl#&2zi&WwS0u69xI$Z&3f#IhF<)Q|oSkS2MGJ+eV zZ|Gu{nKdoK;d+d4XvGPKQJ!Uqt`9~D!YDz67=bzA07W1i(v*mBbh>*5 z8!o7hiK)?<%v0Dv+2@t!W`hxM%UZ!W1TUO_n7RvcBDaI<w%G&>4tvdB4gk0d`9vc&}1a$fc^!BF-0 z^|}*v1{wBRyN4Cph6EvDrf4aljH(~4pv28>+6Z%F4i0D1BU4XJ(-^dD<}nh8vBJXH z7(K>iQ8$`qMt!1LTnc|Jbqk31Tr@|Jg}i~nmnlau7GgXhcnMEfTe2kTCqfC~w3DPR znhp#XbG4K=8rBlNuKT9CV$Vos1%v(RIg%n3txM*Jv6u?2GoO|2)1o)pO9gnVY9u@) zf+)CYS{=Da{4+$#3vzf?c{kdTl5jH=mK7zAI`YkigM2j(rf}ODBs8Z{^V+=pS0B21 zOms+tN(#yvV>PS}r@JxyYpPI?`TqqEOMdvVe)n7%Wx1rin zk2l`H>Oew8C4=So&xWM<%gYbu-eSD~hWt&8>S44l{ zL>SC%j|KzI#!MlTvGz)Kpw*3W}6Yanz`?;S@GxeYWjp=RnJql4(`bIfno)qeZs*X}WD(iP?=N z5@)({)anc^(36dePBjXim2qw6yo}vq<}C4KW!AaASG~cou|B*&*HXtrv%Euz*O}BL zeSw4+GX%Yehogw039bBmP<2(Um0Dp0rSZn)l38o2anh{i11*-2-I{Cgl4`M(+om(K zA)0a;mq%f-sX_ELXBS#Rr>AZzi&}lFj9Pu}T74e1dO)`o*Ewuj!14hCYJ6*nRH2vg z!xrQVIcZ-YMC`!UbB1#2fuc6>6JX+J7GMBFivU_=5s>>L0OEsY1_?X@$^nI1X>s<0 zwvarS2uYPzNT>9CSMvQR4gxB*P*me1&8hEdRl|Nf2CZalFld%x(a-=RL8mfyr|D3h z-(V3Jo4I1KEcJ!X`{*xXHJC2H?|9raatDx7*(aoqm&p%gZRI6w) z3A6~NDq4gA`d}N+Fj{0cHME#ST1+Zh)WTPm4w#V^KF&g5%Yi$92`${kUQmaiMKM>} z3@gk8T9h+z?FtjyHQK25h~-X;7$oBYev}qvZ*T2Fi-s9k^P)v$9UwX_TJsyIF2JPu z0WdTyT4Y*6i)`rBf)osj7NqE;N!krtWsoNObsGwq!-80lMc z>bqJM=~FX{Iguvu9${XH&uNzMMVzu)!ppuPWifmrfW2!lT>r%Sq}oA|7UMxQseV)L zDn(8!BzT8bNPz)?od$iXI51ajg&3B844)>6R0XGhQ7#-r3s{(pq_}QFX`VT+xB6V>N(@JiJz1(jPvQiSx#n;kxWd6 z9iJX*o+j!B)oHaW+yq+ZR)zLOe`D) zK9`Ct3DU)IkQV$EDzl{_168dhah{-<^F>09_QC){8|9u|x3cc*L$OwBx)KtoRpBX9 zg?T%R`mbY!AZn_Ps&KC(t`Jq-m2A?b5K}0_aNEL!(JU&h88a`lCYa^Si;r+&J7elVsOfWH z=9M_Ks>OB<0#t`_Rk$UU-+3?ntIui~mUL)0uVht4bBl7Xb#5LZbp z_ko(`j%^?hH7CI&4LbAH99-3XG~!+Q_#7f6Y&FMRsx;_Ic`>#C6QZbVE(ie{W}1Ly zNgvmt(ITWKq!B2AD4;2ann0WA(3$JdW*W3q1^KpON^VD6(V<1thO}ty%Rq~!9D@_o z1jftG-xRvlJT27?vQgIBRfANA7gM)7Q-&W<TTrcI3?C4~9X;?Or@L zVSLR1PIUxLgrwC)()&V}5Cw0D2o4KdFn*Jk+f;e2UzZ8v3sVlh=~TXHAd%>FLyGXI zwU5CqXSH~~dG2)X2d?xhBrUmGQs2#&0iu7}wpLJ$647E@v=~_m(YTcbH+XXBA-#l7 zcV1Cu47+iDSuroFhN>2I#e+L_PQ3NZUG2Z@g9^0@#eyED=apCz}*AG!*R`5tM}j ztL{TD&>V!Ik*+l)DhpBqt|4R*^(N_sw-cE_9n+3|tzq_;E2(*fE$eQg%)N{^vK;?Heq|KJLuBH=*P*o~e> zHFh;5J%;Z@fZcID#`Lvn4LNIi3<1=AI)onM-12Osdm^oKOfD5ekKx7o z@Ivyz=pejV4e!MpLsGw#Fep>G83GB8-k;5;Q+o;!hz@B3&gjaD zYHb^zGS!~>6RFysrQXN&Lv*W4KbaFDO@*;RY#!1z5)xbO_6NyymNU_G* zqGO~QXN|ZMu=I#DF6bHhXlKKFk!`Dn(o|`566|c^YSfPwSgF!Eq0x*Z*y-AqY*C)9 zr2NRZr5T|HxieLos?}sLv!&(3xs#b~f@8!!uFPyr#|WylpsN*W93v+7&0Z-8A)`u> zHY?Vcy$#HOsI`6(k%%HK@}?e*^#OIt^=LS|JR=P~n!yTsG*U!NrP-ePE=AXe)=?86JXzW) zZ8z5?kI{!0F2ThMT*L`2Sr#>fnL5DWn3AbEPEi~%o}q&=V@zvx7#t~@!u*g?jw2R@ zM><{U%y8BQJejb=*p9+2tHA;1x%HD6a=62|4i>m zKtbuM28G-t{Xf#1Uhi-^a^i3j`=iZe|586Y zE7T2TziQ&sef3itlUM6L>9rF6c?JZifqAorHfpI5W7dC7a@FcYXrnURMqO+~s;d}cH2)9U0fGts9@Gn#JBj@UFou$EZF5eFq^c_RJ8jA%2F z_An4=LA;G;cMvsXQs-X7o4I?e8oK6lLL$&0Nr(BlNm4#p;3O#8Fie&)Ci3k{=dY*k z7;Ke~Bv_CVq@lDP(-By)5t)PwV9+Wc!t<>!>WMci$h6Rdrcf?SIhV|eCyM>Ykv%#s zA9?LugF;uhCQY1N!KEMxk;d^qdGF3FonZ}!ARFY)_i_LS zOz-+5;nE`dmbC=PJ`Qb~t2!`H0%V=-cKKg46#T_r-K^h&_jUW@fInw&qzGCTz>g}@YU-7s@gp}b`;yp zeA540k!1fBdei%pcAkxY5SaxXF*q1mfH*(KYUDwR`SwrmN~8=y@lxd9ZC4J zW5c;Se(sxt>227b_guPhp;x^DS;>K$H8}P)Ro<^Szwp7=x1!Q!<%^e>|BeRI9i3lX z|Dz9o)2kn=uZm<9ov8Y|WBO~~n){mzv#qN;uKR=Z1xLPo@z#~q9gq1h&;GBQU-HI7 zTwc24y7^1*`jDPp{mWm<&-ld0?CGWY^8ud5s&>5O`X7GF2j1~kDtc=A%8k#N`n<~B z{qm>2{&PQ=Y~%8hb6xy`6-rJi7-S^Jzj}j#>Na^(ei)xS#*#}UWdbhH2(@OuCW`vJy zd4nCBsy7iehg7a2i9;(l@$Tl8{foQh{op zO<#vXeJC!!pdO+GC?-xRo15FT!*2PXG?`TF-`E@iVBj_u+DekE)-}?D? z8~3Y5MRE#m;`CO}r31E54W+)Ym7Hu9q2hH|IUxSC!k6(2F*#m9!321%+-%f);6UUt zU)Z{0cHaGz!l(DMY&?^?dnh%UN_RV(7K^q&$=*YQ#CU94QG8b3XlL}Sp-clbGiL4u z8dScO_G&8MIzr{X63@!dX`_&p(-e&JgR=GI%~a|0X|xx;`*S*w?a`zFf{C(bMUFUC z|8yimoC-zqriKvtvI!A1A4v}*cs3wd5a^9U0}qcK`^Yf~nsDn}s4%HW=;2`plEh{mem0sORqA_51&H`&)In^8w#?{|9%zTbJ+u z(hWD>c;kn-)Gn1+L($%`?k|Ub_u~g&1t4FVyK>VdFZ!LWl>V6u?^$`)+*@?{yyB-m z@W(%Shc1upO|IW`@q2YSXX5hXT*~=qcywF~PU)B{s|Td1p*5ozto)`9n<9Tr4uB&{O4pw2aMCJfv%69KwON0gJsiFx$L* z$d&lpKp7O2DJ$a@p0u#APowIBokD6#kqkVXeu^Wk^CZoCfvl#t!H$CJa@ZQTKs;$Z z%yB6=YsoJcRLAT)UpE!txDj>2IMIJYy_;9Mf~9i3y0U%V_c zesKcLG%_Q4Rlepc-})F+&F~{0u$2j_hacf#1;LYkVs%`_HBTZ-!RKMqJ4kAAx(WXM z&z`;e4%q}{dL=i9X}Y?~6#H-g@Y#x)ma~T&`SD^$F1&o;m_Rlfal!x6v6XT zHr0QdsjgC{YunY1k6m!xd%p0ETknLqyyb0ozTqDSkE8U#C%=CA-(Pe6dsbE{4?V6P zSXt@4b=V@@VfPt(TDwDPwA%@?Z*LOf#7-6carI)k;kj(PSA-*}>+u~w`#G34m8_rj z4pAyAMub{5%`i<^!gA79=DD7_MQ@3fCeJw(3nPnVY&650wjfhFBmCtZ_C4#%IRemh zo<@0?>Zw5oWCV;br~38fI-1tu7Sw4er8*w4c*kI!R+;M_ohK9^2fNZu;XF?681!Yh zB$4XJXV43>kApn^=Y-lb=`)?w`AxzGKlv{2@FIuf4Hj}(cJTjGVol4`)@i^(FBMcv zCO&4b9VaqHpTy2H{#h-i?9v~t7VB142Al??cI3$f2UBFW?5OkNhHTJMuM3ScCKY|^ zox)N8-&+a~Rgdu81`8Ck&K7p&+yYOu-UW$gs=kq~vY&?(yo0mKM{*|S-~r^m5Q0uwImE$>2(3emp^WG*dI$M)4y%701b$} zb96!w6bp9@BY9qamoPM3H}=`OvCk023oP@kIZ>w2-RHCaH(JI>VT~J=&?;0Ry0O`A z#4+EX3PzJ{c1Wp*ia4N_T|rQv1XMd7$&sX^a)e)IZ1}cwD)<_$!QAwkyP7bI(1&9T zQuHA!&gj2XrjQDShqtc2K47yre7rF!>Y>CQwyr4dI3PNTe~U9jPXnVT_?7j-$Q6bw zhR09wz!&iIz+G(Xl?!jGc)$w=LmqP+qAD-WU?C@dQGd*bk?&kGGe9(MB{6Ny8_xV7}ncjV>*SY&jRA(bzt zsEvW?!fHEQrbf>|%q`hz)Dr52a=i>6()gCP_*UnL`p1k%4b?;Fw|`9TX=k5EG;(BP2OOOpg)o`Rj45|R{N_rEB16jO|LAN2W+^umOcoArd*J?SwNP@Eh!KQcPD`xWcVVue%w6~(oW7JtdFLb+a{4XT*Xb=1H-07Vgk0`L%%7trhCaF!jI zfY6YkCbQ{Le(F+h9&nt-zcZ<~UPxRc^&WB(kvA`nInOXJpk*i-uA=Z56Z){O+<l&r&Ok|(JzCr4Mt`$pMH$XuUo3O+|c~WC6$7s(IO_*F!SY_FkhI<46iGgp$F(~ zvlcyZCJDp&pN*xN$QdYi4jy7C4V){~nV^+0j5H<9w(*e4GcgNI+48zSh^z29#SBO< zMYyfkIy-;;O@;2$skg8c7QpWI0=ZO~wsWaLvC^jcIV@3O-s1)S$)9 z2`^Gj;RQO6c=qwMGOrPs7e{vLRxkZ;(VB0iS(Z#i<1@Y8q_KYjnLKP%=NL1!VVdGl zI;qYoHuAA3$36%TDw!9Y6EF(gpy=>nrVyFJUi6EH!KGJpGY6Na3Z10_@Bk-9C2CMp zrbQbgH05UaaNc!6sp|WF>1F6x53?%Kf1!)-FZy0)*~`#RI7myH3}9m%8a2W(hS37X~+>qQ}(@TYSy@C z!6V%3qYa|86)yVm!ibtDRlQFW5o_rdHlBvWI^)N6?!f01Kq{v zh1RTKcxO=V;>p&tcAU2pd5LbB!9C zf{GQy5v+y@F(+Or616$d7$)B;J(-|30bI~3HibdwH*(&pHrARVrdc^oQJoqSIS`XR zItekUh!NA2h-s>9lQEacYS^_^;gA*pThlNtHj%cLAKu=YK03GUtm;yD$#3Z8N3b0?APV&+VSt6@$|DVd)qyCt_-IfTxQ{c z`YGT-N46Qg@#WUWmlsa_@7Bw*sJg8u`dn6P-YCm>Z!iG+WXdK#6BxHG-his^`Hi(j*h|MgU3_V)*8pugBqAR zItEAh(lNE$Fa^1M<9(m~75o=y7xV@~*?aegp1bA${46%h#Qt3H6D#rReGGd=NUJL> zil!pfT(~;y9vCJfC-U^MBNu~wv=A?q>z*JpA3dEK(-fy}1B^;Pwa}+&n`EjwNuDM$ zrRwAWHo>VK&%ZqX;g>(?=EtnEmYX?H$gL0>rRvcZe*~Ks<{djbHN|kK+7ka*wW<2M zE-oInfA5PPy~^v(NNqwzhw6*&0gw!QsvaF0bHA8ODm;bGa;O&^&MH?x<4do9#LGYb zxnIE8T*$$A_5E-8`M-PcA7Q@!_+@ut$o@f@uitcEf8DxuFUFh>Y&kW#!wSF@aMoJg zak1IAKR{Uw>6j!E9;czZ_!$bEWvd5PixgvfEW34e6(ip#;PW3<8ZkbPyDGy= zsMEsqPq(V4`H)fivOd`F4$QH_da5CbRm9TrJ~sCC=e^D11HbxLXP@<~;&q2t`u|f^ zh7KIw6ZryHz29#*iXz!7)%7r~z0mUDW#wI;zF`7>=zPFW|2{P`6eU!&h|5$DR&EY$ zb8o&mt8JhATpc)MT4I0X5V?6J+%UKr?*3O)wK|#iM6Uabl=Pf0?~O4G3IPfIIHK?(K+MaO71))J{l9+f%a8uzg|J<; zarM*Q6FtH@yncUYEvS+m_rK&3|LO5(eXSDpN0>ctS{deJq9(u1+#R(MDZ68sR}HR0 z#jw=a;GtDoWU7hx9zfLcuS)`Bb)S_VyToV#h!xtIr^EJWjNiHMn||IM-+K9bR(Cx5 z$)CUW!+&~@T#t8r>b5sL=ug&*>A&>S`{Dn;fX{NrSH=F<9njOr16)nfT^E(3fV~gf zF~VpA!=)!T*Kz_#c!Hl)esYP87UG~K$EkaeGYFDZ4lFoJ4e&fx2IO(n4mod%1a{9M zqc`X)7TCHHze)}pU!s0Z!HU|%-Dv1o2ha1Pu03Q~v$FEh(m23x{5UejSnVG8B~p$L zm%A5jj3^K^)P%*`>w*HU7iVG{h-J1G?E_XbR4%z7x!A6Nq#YxE>bBqB{#Gj|G}OXF zRasi3PX{!M(nzlz=1&rwcMe+>TWlLEvx?KzA;m5Flg%KM#*C!HNh2%?Q(BxM{~1C? zi!4?VoNjHi;%gGMw$IX%O@Vw{p*ZIOLS7Z-7J|uYjg2}*d+Fe{F6&xRD%HwZcOUd= z=)kZ6DdO0pMe3c3^~y#eW1#^W>xBY}j_Q?VlMgJ~3TH^AFI&ex2#_sq!q2{F4EoYOSVF&W(4SAt!SD>8Xn%h)cja?@#8J) zIbT%k1O(DhNjsqOY5nNSEJ;?-+Gn_*Ij}OEIiLxkmB!3U_+2fgkv00dQ9k89rF?oo ztO2EzUWMOPRwKwJ0#pGAg^go^BizU0#U2!!-Yj3*`UF*|_r(^f%ajZZs4gz3!f^k} zHa`aV*iG-{uy($PmBe`1aIbD;D@ArdUdmNd6h0;mBPUu-LeyGY9Zs#vN2b3ja`(qg zf_cMmjd@&1+Db`PhwKk8+-u;dd04hyN!#P)L) zr=09Wy8_fts&8hE1H0Ywo_GskREI%bwfE{ndiS|dlx1uA$?ArcBN81{@Rxx^P`FZe z)Y?9)Hpv^E^|bd+fQ7)!lxLs|&FtigZcQ`$vWJ<$I4daim7DUchv#|nxF%JRim1(9hFjGu&M z&@IG|CgBg?#%AjHFTVcB3q7rBUjFTS9;U#f^;a(5F>LQho_5od&fM{TqoT+^V74|^ zb;qjkFcHrJkzp0+E1J1g8)yhjj01HDaF>F`Sugs?r>Jon#=t(CDY1ygHwjUww1xyK zm{p`)RNMUBanlE{x@UU-`%pT5|Egbm@CSB&RQgZr8^1x|=U;GXRjJ&LCqM45&-luF zDfgNDBd>erMSrAnPkqhswVN*fb6vj1R>Ys^8&eW1TuLb}D(GcM6vmx+x$uP;b70DYW7)V(HiNLPvy9ZqI$eFmMfhac75A-l9YVquh*+vYk{X2z4j0lzka zdn{VK>ZoCgX7X~me=*estlYQt=Md#hb5}HhX#rC)6jQaDik#zgS!$Psdu1AtZEO|; zx74oJw}1REUx5~8Z*&jYGxWORU_t$eHG!&1C2Q*duN(enm=(j>)i~s?GK)@+{14s^ z=T?XFt3v{tT*2$>%{_VpBPwr=6%eLb;IhODh61oUJOh@9La;I<7Kjm=MJG6e=!rS8 z#W@&~)$++$%k5Py)Ui$)1b?_Buz_WVtu%ZhzDfmG1;KT?5@*xRa`pH=RcX^r&yQLI zy1F+!Um4CvW-a{908N-8HhbD`{bZJ8T9V(by#N(n;>A{unuMy`GJslm8>?jdAkbvD z8q{vIYeMP00|h-%a8zOnlGLOW7C^Xmuz6a)+~O(RQEq6x3l>ki4i?Wj@G}HIW{L<% zSZnf39Xo4Ho-_2hGI@5^nmjuVlPA=FaJQK~nf2P~T(BbHu$q0Ea-bnQG^8C?cPpBE zGrddYXt;*?mQp;4)(`2*@;BiQO;IM^s*Q*$vpwZnmL0Qtpm^;yvqC8g1$x5XCv6(I@q(KHzBsny(BUf#3!P&FHmR_ZVo#Xti| z@{EncHl{g5C}7%v5>F($E!qrQqu^z}$t`>+yX)_zP#1kkv2w{Y5i7-5I^Ye@k1a?m zOihFH9bn;eE5eI!J<$Gn!bVtn$RD86*juXFo|ebj-f_7U#uVFqC>k5IBD^^IZ2RYl z8_Vk#C?e~bHkP{SZngIhDW_w8pU}+K@>BC1F~rN2JEX!HjL$qeW}?$zs*t-Of%`ys zEZp!C7>@5Ss=PfqY@~Jq1wWEDn%56w+5K)AtUN|un5UG*L%7L0SR}pM(pHLdg#Y(M ztTXU$8l-FNL5G5gDGLD&_=Vh)le-5~i4HqW6pVqxhEd!^XM3A*=V zJlk{WaBAa$u(#^PkELN8N<3i=46qNqa?q;A&dGxB#B@3+t~;I)cGby&ts^3Ns52Vu z?~dpH?9)E=kr(_kHt#oGfBwpK*R0o4E&Wgb^iQAM@e{h-oImA5!{jd}!C@Kln{NrC+$^=#MPC;|vvjcK?-Uf9>I0ba~d^ zBlq9^sh`*7YxX_w3xD_Um+12T@~s>H@WAhKiIhm~f3)ru+oB^QYzq02X!Z_qFKg?r5kX!H}7W z3;R~aFWqu&%%OnEV)>pI%S{xaTgGHpcOMY5UUeJGY!f}L_-v`3F$A$gdHMTqxl5iS zid6-h?3MMTPir)-<-O_kNMVV~{}1V@ZZUdNrled#s}-;Yrss8pGiWURcr`loGN@+Y)_qwpm#smCcSH z#;h>({}35k3eax8gzYz`P0IoIol9O{>v>)fj1Q5v%+R!aexT@0u1Sb`%yLhh&myxgf*E8i^g+Dw;W=Fsz0ior+ zH7N6{!+PxQ99&iEaA!%!UNzyKzox;5}YFan+&?Wfb(HiiK~7~LA}hyg^dFwiy(un-0e zO-M93kPKS{S<>#o&GUNQq&%wm)_cqdkH`X#0AKKk@>Y>H{Z9j*fG%o2k@g-v@@*@8 z3$iNyf>6K3IE)6q(nRu8;Y`0Xi8Ij;Cd38(_sfLe+c~1W1^$K`-3OXPh-i)QsB_}M zon{oEH;_ZFbcXk+7EAC2ZeWTbTb(+0;#POrc%Xhg%DH}D5c+>riJ3H?a)sLv9g^d%`Lh?*E3c+Iv<_CB>MI5A&qCk6Lp`qVh2? zmz11tr8bP|s$Xs**+H3lWJNO2B&yTd!Fr=|o%J5WoAQ6Wlorne-fhYamz0NfESC*) z|3(3$8yywD%~m3S_&Niz#bb8}rv2ZvCzpb&Y@5X5iq5IGG>6yeYLG(FcE!o0dVm2) zV*!FL*(lTd?W;Uod}NxGH@r?)1*yB&_g`ODHKMBq6kH=tX*!l7tjUAqgoIX`u>;fQTSX=|w_Q6a)n2QUxiB zfK)*gDEQX?Cwb@-phUO{lD+$^E>%$c4v3WGtWG2W}cZrb+I*_#LJU#R4^+< zo_mwZ#toIq_R!%KDBWM>CkV5u$$-rYcD55<($HoZUzEu46h+bxlRl;pddcc6pH#M) zSwHA2CL!*}IF>}|pQ%X&meggK^fgPWW~6@RB@G))Lk8G&g64dbdN|7lBcg22VbZN< zX5h@fGDj_GGiL=YkR{9?&5sj+FseM{C*{dm-(m=z#S1jILSJcP3)R((1}uRqyoP3_ zk1aUm$9yr^e(N+f;{0%{Ic#X_Qp%G^klKusk{FXxG*W;QMzEmMrQv0C<<&ugTg@h6 zCLY;Ys-uB1?8o+Gv_k@dI8aRq+<^RNQU0w1Ei=fzQ>54l@VUZ@r0U~@qg2>Z?Ds0> zki3BileY8D$IZ@1`nVQx>AnFY z9JoW^;b$y@pyBR#Y|eli5G{=@#-O$w-$FY9%5RNDSnDZ2nu_eM(l9wnF4lR;am}>4 zQ-?!}?XV58I)!5!8Q5g}Ym!9X?uGSlo?tO_y^Gty8bJuV9jHxIc^ADP^&B=rpqHH| zJw|_`jbyw0+9uV&PMXNl8<&k~IvX~Ilxk3q!X_&)Z!&VcMZ6d6K1d8*iMXNaENarV|0xBsKNhDt6vE{Wi?WC63 zPG7~GZp#A}pU|mV%f%x*?+lT<`h44nE#gh?S zSPmLBg5OgSaI6J#(5exzEzlE1;CKr}(5Vr^o{9kD5fSuigs7(?1hEJPHA2Eu5kwXN z=8;^BkI4>ryq?ur43ipz&R%!M0DcH(jK+wKVF2<(P{g<(6VOT+8G$Ss9YN2y35Syb zgFX-dQUo!x51A_VKmb6mWj1pXHo`&`!bU31GYH#<)`@{+DDq>3&5ktlfZ^){;lPBp zOw{bXLeP|$xWk7C8t01mp$A1He*_WI5v2ey#`-~$2_%f_1Oj5p1Giw2xBF<4Ky`HL zT5wfz4kmKu#h@JQDFT~^Nkx#eA0Z@=RTX=e_#p=>1)|GG45GRQNuX<(&cG*_h2#oE zr8F69{#p^eGqFUX)kjLq%aLZSAnOg-L>xpRk8~iC;n*exGHKb;RRhp` zXrnsQnhIZ_EC;UL@tOq4OhlAXafth(BsJYN#Vv z^p`mwx+_Em;Gg|RHOA%0HA@+aB5ZULIt~e=dIdT{r9IlU4(=ns2>LkNQBC9GjhD3(FW`E z!KgEJ3p{}xm!PVFKs8VfW5)$5LXOvn=Un{N01Q_bP*7zKzG{Fa@*(0f(nVAthDgx3 zA=00mJ@hen(F6psLuBrfR=XGEr5H+9hmVL5$ij;TN4!LF4Iypm8ifEvAF`Z9G16t;6UkbwnOH$a0j(ngtn z%|jK&m&ubogME1fd1eSM;&I z%>aNg)W!j9iavybTr#t~Nwj+-2)hNSfyV|4h0t*Y&H!v1S2JNA1oN?WC`$_6Pus6B z16UHV@rW(g;VqR3$f-+lIw&UHg7AH}hoBVELdKsgm6S6YHdhPD3Q5EB3gB|i}v z)}=EpvLurhb@e9FQET}`9kBz914b)qg7{T)BSchY1|~<%y^z0+X#+%Nh80kD zKNdqRXS1}Nw$zgOnv)K3U@OR&T7j^E9AP;QUt(1mSOv0MQo5+7=C~}@Q**2bu`_GW zM%_tfIw^w5A==K^visz1ZeOqBkUz#jYt7| z(=G)terN*EYlGdM%-Kamg63%;aH4$*lov^D_lct&BA%5)S(JydW11q8P00e&5f&H+ za!1;SUP5@npaD3@(VI%4107j(lEsi&vX%i_Npll6VS1w9EYV;K(`^vrH0}~8`R7Qc ze6oteVe|r2lCCB|Z$dp3)1FBz*`D?$v@uvkzhU-Z^zr;kXoeyPV!%uEVS>_IRtQju z!$dD;iu;Q}L&ab;G4e$>LJ@&Vjw0Kc3EG4VSQ`mRG>S|~qMu9(qAw(=cT2K!QT3YA zcNi2#F5&coFbXjs38i8<+j@}*f+`7!sKX9a(R2=Spg58#kCZ%#axZ32FhBF5=VbBC;oQ9pTu40-9Ei0Ii)Pv8C5>22Mti8#uWFLYFvEht*x$RfHoL~X&KL(;Rf2NWDJcqRrYu0>(IubZhHs6PDJ zjFqA;gG0~{8S}#&;piv$iQza~wGNP89njREtm}~!th3NwMmD!?DmMmT}BZ1}_0f%Db7SlCo zETjq-14*KiQYCJttz>O@Wg|H+i(EN|KN$C!ku0dsLkLEL^oaf=ZFrHRdSE+OBOa@R z18J_*UX!6iE!j~Ecp*L|iAp1tW*`D@sCXvnS!^;y^}w{=PEw3@Z$nERwqjV6sH5_Q zT7!CH#N4cp0Gv4c2-HubrlPI__4I8b8iWZ7Jp`x3lSK7~d#G0~GQj4iZjgV@V~4#Z zm>OYXDD~;62&tY_hd^u-NN@C@24JeP3NXG9Bo$K4SuG=8Rl^3UXg|e5rcF=-#GuEG zqM*l&BJU~|viGwrXLiYF;cXR{Z;=n^}h2U4R-PlrJsOkz{z7?LZb z)8w#hU3KfC0M)^LeYNqe=tVvJ(J& z1~{0i5M<6F3=utgF$AM}es&BD`GYuMBcTmNKghN~4DqQ#M@N(`VpiP;4?axrVQK;k z7a;#xcQzPU!#6^z+MR{z_E>i|qzbcwx7m<-Wi$WB-Py{ld;w~e<|hzkW_=7mAnFMK zgQ@@s;rHJL5O}RbPZT6R^gUF%+S~W9QaZ@zzg>DIdSGZ&qKCB~^qW?0J-GGIY@8%M zg`EG|V1!ZxxI=9tkf^}yQSz^*5oYvGaf3C1|Eg50BGKeA3ss_F;6@c{Re7?iP=oR7 zK3x;smXtW%YOhT4~m`i?A`Bn}odbm;wfd{KdAPUI>6gCQY z7E9bwrn5nw7FkTy&pvu1WKMc61H%cWkF?`Vi?oP z&L*HSK-M+K92Kcts_-pk9OC~cjiwZViaF^3SgC=YbU=v|ir&mn4E$1CNER5W)GU$< zv5XD<2M45`Vu42`+3Qdf`bpTY*H+~vB(^fMR>%2vIqYqweMnluiX!WXXwOd?C3i!R zs7mb0bpOc{%Cu20hK9GPFkez_vi%R^U#zoiDS7}@1!nixS%&TaBSJRb;7{~QvlW%* z90WM2BR0=XTQp;Dd&Qo69;GhRKc?R)DQ4g+>A#a`A@jYOBou+9XlRG&G+1`Q2)XBw zDaYn*9y9Kk$qo-avJzx9DbHI}4tRYnu?NlTs2s*fBfhdp5#*vnQ|weq|Lxf14`$@lXF2Fi%wfU#9(+5uBbX{}$Sx&K4V? zVb4RH9lM%Le{?~fZdLRPiH=f?Uc%u^A6iafo8PaQER z{cG#cD$>m^Ac6KN@g`8rO1?rGXc2f2J~b7A{HnymPM3m0)|MbndN>txf$}k;)@4*7 z=kcNM@|E6xW$^Z^^wTD|ACcb&R{X^Yg|qE#XP=D+ls{!74s+ z+jw@sF-@qnaKIB=i-iDq#ySS_tk&W54W!qjH_Y}kMg+pV{xL^*45ctuVP5fwjEchp z8!kPF%=Wn>0B|7_E$Mmkn$|v%13HiFm=7fnE!?A#1DyM*0{9~bXgD6Ci$MN|UZP;} z!dqn)7K9)>zgsp_ZD56P?k7%N_zPlX*BzqgJTl)2mP9Rv@5}J(3`j=v)Cr?<)N>0TaGbrDfMRR^7_wDhz}4 zuP(N7A=i174-}&wfn?TNx>vexS1!*4nNnRj>v|${f&%f~F&ao21u1~Y2LQn>%$=Mu ztE_?)EUo3L@$s78NQyLJ^iS&$a^cL8O3y~-AkEWOX>e=JEf@J-c!clM8lWGY5o+x2 zmaDu5n@zIiWZ`l;W!+O4Wi^`eU`)V;YkE7ha%S2-tT$sVC(s>ig#rT`&SDG_<~f=? zP6iDt2D(#WR5CIIaO{9?O)`(n8O(AjBil+N z9_L}GRlwM`!;HxrW>G&!UI5UU7r~05@nbaq`9G?tGOqqSiOtkGQcH&Wh{i6bGXHxO zuvEJ2JnZJGdT5}t?*<9@RyV`_=;o4cw^}+ z?J+1a)^U;dK*F{)5Ln;=Qv4!2yw2I|;xps$)E^$jy4`;l;iZ2SVWb@4+38L1Hs`pq zadUTK7d(g`^M6K2pFAh>nCGZUNQ~VS5`LbxeJ1 z8bAZCuWSHR_kSoF;AUudRf_GL!xS9$qX?jJZC-ktKH`2EWPtH&DS%G-1Z6;B5_)kX z@Q5;aDI5%61yDfr&j^NMxFi6sXRnjBU0*{#n*PNGjw zt%e*#E|)f=z(FCEduR~?nd`N4r5i0rux=nhNd!YwtCT?MQbF(-nZnI9$7rTHRen;4 z9~G$DMzXJ;+EC7X%m2hH=4eM0OWyB2<+4 z)2if1@KKOuO*Qa@6-u2V#O(}rk=s`OPxWZ!0M!5t8`z2YRC8Ex0+$f*6TPKJT=dFQ z0Tld3ynw2}Ss$}AI8lhzMYOgA8^YYSk-bARYOc})Hikt|+O48(4Q6vRcnjwbM#0Q~ z1p8x={5Hdbn&88Ud>E;+1_ExgXaU?*88iZXcVPGeVpA&z4@Vu0B7^N+N$bf-K+fnX z+|o$2>>9TVMvNu=`z@rP$%z`EMRo!gacrjO5lAOnqNa?xK;!#m;Vg2X?=3{%4j*-m z7q)Kcif9lnT3`|*M2f_Gf)OzW=Ypmr#1R5fFuY(;tG|nGhS$b3nO6~dFuV+)tV*V? z`kuM=Q-{hy(!;dP`E5DduoYFaC7XKS6DmuqRb&oEz~O>zIft*m5Rd6I8-OBEzi)h=)9}{W8SKvYa2N7`3lf%pGOuyO-L^t*IM&~#taL~;25fBAD!)CJ7aSDkDT-Cq{JJ$V0_K7(u~6uF@Z6aGDB;IKc39LI>Rt z+mwT{vCa(6AaHy^G@u5b2+^{C5voJ3Tve*$&<`QTh2GZKDJ~A!wHpBlYJoB_=&a9o zc#5t#B$$K~wl%|wP;Mxcomn)t!tr549j<{W+XHQbeYo(9O}$uUFudw1>hp3%YaST| zO#eINZ3)<+V^FrTxFa;sp`ic_Q(+#kOh7tD0Ev}(au)`QDcv#i*Fpfp%~+vqb0{Gb;r6T4HPfvVeIB z5M48faG*0$p9WG3<3#j|fhgmgy;dT!#b~H5b?t#8h9DI?q8Tp%JII!yj8+`8e3Fx(qCnZ6`kw@>L4JZe#MYdNeH1 zOHESo`mTFen1(?M)=n(39r*&ouqD__U=JafYzR?T0WJbKHA)JE8n6O>9Vg*HGxvkIl+*#iyh zH54?8457c|rUAUH>Ck3^Xhlj_o*@r)WC$0nU?;dUR03{>jw5J+;WEB0;|0%FpamR& z)ynRwBAHYXPMIbI7=ZxBoy@QQSx9z8WVgpqill;qP$E~#2^tlJDcA*(0R*y!z;&LK zl=Le{FG%w$m7}I2VS{De%+?^PkQ>hq^5V9$-Qb-q%!$OV#ELR%o=6QRJEj7dA8!@1 z*}fEl&*8h=?&nln%1-uz)Bt=)h8p+|D2MkLq$gBY8we2y&sccVRHpGqMU~L4X3`I6 z809cf(Qh^8&EVZ!`L%)bqxBx!b-=J}DOOQ{oSo2PlR!q`jKoPKGuJ#1sp9baH)u#0 z@5xZY#ty8u6dTgTS1IEJPRcPXRTZ6wRQ4%S5v8gTzJDx2WiEt4H4e6}RWotEQ`3>l zBL19J!iHAPXSq&FkmCm8^cE=wo(b50-47Xx{>#`}I(B+5_V5zjp)zUoTtyI-3v{W@ z|4GfW97g7Rj1e&CPeH1WldMT`k(}mQ55?UW=qw)vG8fdUh5!{TD2J5-3XH8g4|g+I z{xBP9!*vY}Y>mc-M_7VgY2fKdudrb#v^(gMh9!0NU=8VruGN0Aj;vbR>;)TZunk{K z2%9MvG?Py1ilJMcMxy@xd=-rXXA5dQ9d$hfiATfA9Z>3eJST{(>%rSi1R+5O`2T%y zP&9Tzv$N^}8tTbWUW(LUotEbW2Nn=@HfWu?+SvdnW28-?8*I#~J_6g+L89IQQv*mM z7OAIA(27cTW=sRs2I|vG*eXat6|7%|GVqD3hQY3v^`}8vhv7|H?cNZw96nh{tWP$O zjjDqh);S;5 zS=tH!i!HI6EOs|#bws}Z4z8%_kiFSnV~=!aZlGyqjiq=_jEUZl#8WkDlp1qxCx zpB*)$Wt{+ZSOBb0#aL(CXvkQgQj%e)k4ZL6bXeI!MZI#UEj#GcgX#kN37CSlWJOCl ztZZLPh;M8XIy%{aEp|nZIy)YZb#^d- zPW3`fsn*yOSD?`h=g@{iFC3=uK#DNu6x=`>%E*yX!#)xgNm)HrYwQ6G8Imka5j{pH zr;esg{xRbJR4)YSoPCeVCmC;|z`7tf?}rLuiw;n87-}j(?^#+UgyY^pA0Q!yF1FJS zEbNjZhbx;aqxMEN*aWM5OtLuIVP1p1Y^fnh2f;WM`3>DLTPHOjJ5#f*Dyw)triV@; zk*bF@+Z>kFto!ODS&sT-V5c@tFiCs@e00WfaAn|f*c>>|H)s2D(Gxp=dMet9ZmTjL>*?DuK`>}4A<*Zhq83mc5iHbq1PGJiv$4FQpVarZJQ-!TOLPDv4 zAq|@s<9M#BH2d3p*l93oJ|GYc<^=4R{F7SI(KI|Uk4`GZ(!EM55~~ss^?)@jGN>4{ zD>P4|lZHXwfb?MfBPWO>9ei4usjdM5(CjZpA>?TwnOXl0@Gy2k+0O2YEp$vQwa8F1vC!<2{fb_M2Y>TxjvH-9>J57~1*d|ABDG{oi(Rzz>9@2`|fFT(s z->BU&hmFm7RdI+HusyAtUM(vF%>hDC1P6BG$e9Dt!-Q1KiDAMl7o-UbRG|6p>at6T z#&TQ01Uuewt<^a{s-q+i@hXGC9H<%A5Z0uVp+z(#z>Lk%^y200$;JVI1Sn_?kf26YVIhgcI$W$u z()bCJjCri9gAFuLy<(c$EJlVE5AP4p!R}6oFk&cbprtN1IkmEq*n%1`67nbGAIPD} zYPBe~2NyPELLzj%DG_0cXi?%UZGm#IBI6OX73*3OjvbghrkjpdC^<)KkRDA*=>=>T zOY4l0U9P;h({~2uYQTtEkVJV3RBi&a9nk<~NE7~)fznC7d+D)V3cyt-$B3XVYRLBYAQ9e12=p=nkIJ~I@2rM`bqhGC~8!x$$ zQkUE)CT6PRIUAxPN{P)>IAjCF=7A1&rLk1cwC6lcy z$^b(YH2;t2XzXD`rSxRPlMJv%h8|lwA_IdAy#ZOm?US;^4gMGmdUpkSSE3yF;N+0| z0m)Ceuc6K;1Nl-a8XpB90_kFNX%e7AlOto6 z;>s||LWLxu9G9Hfo;NO3)pN&%<`8lKfuKM@oK30-kT3tHyP{(flbI#%g6g8s1Goqgy5z8g$n^nHK zAX%X^S)TK0u=6QH&5CGssN`1!Z#=L7DR)t`ft^=l9ZT8?Of36Giu!mBh6(9rm2c=8 zP>6&Bh=|wigPvqGwF&(F&i`HhzwYdfoH+WB3W~DAWBulYwR?`B5F_?NfFZ1EGcFM zC{wWc^TvdfP}Igh$rCw(t2w6b!0t!^YacGlk6HVKJ-K5bvzAc&?0Bdga&w@^`s|EA z)r54Cht#homUOU+Vx|#kRUA-}%K)DC>IDeOZdwk7haG5F$OpI`K=eY4qIjf~m6e0?G1L@e@4H0aYW(P&S< zRGJ1ZhcfM=_u#aR<&`JTYB6d6;FpmamCCRQsB$f{cqWpFENOFNstKV7ab#ANz?02t$1&TLB(#`-5g~2x7I-0bQ-!U{Y7>VCl*32AZ`O3W2ohsn|7*Oz9FrJ-&v zxorQ;9ivAhQ#`KFjdQTu*f9=Ga_Gw=<^6XVZqu&O~SUn1lqaAG=qobilB3I^%a)iHVKL*eWDmLd4~#nmx6c*HmILJ$qo zH4g3_LAAjZSpl*xu~4a zMtI^eploUh*syhup=A-=F~CsLoG~bzyc8_byF#159H|io*kHnm92^nzG51LqFC*hl`6- z9Yzt)Y^Q$;nZ}L=VTw~Q}ae? zFj_2I-nqmBfpkudnfmPb*AI&n_7$77WWQ%E~Jkj`)o^E9Zebc$o{r-HwbYpLAr9nIWcj zDlEw^$WKfx%^zNrRu~qZDi-96X<}-}g8a->aadYjY39>KW@TkZrl%B_6roV$^*Ztn z!99>?BNJSHX`VQ6WJ#u&RZyCrA!g@`g+&F!vNKR#Mp{Xlm{uYd78GZ*f<>g;hxCv> zTpAJ-4M{60$<7}nmK3FBmx$Rz3iC3DWagKoQEag&v!t{rANi!^iN-bxCp-{TxMJrTq1snBF7CzeELnoo!Wxl} zE0SJNl*!sTzjR1sM)t@QG;A8x2yhEl&W^l0;G#OH;f_j};P%3G2-gW9N5qFDR}EJ- z39VHxn&_*wBWMlVS=}NU;BE=IyXuJ^na&q3psh`M({zc_HPGZaOC|Jch!oypsAEnP43dSV`ufk&zii zX@d&#fzYR$BO_u+T7HSxRE**}XsjHD%(zlq#6QoBoSk1<%wnTWl=#E`N&Lb*Il3B` z`1RR&4=l}!$ji(R3n$WeLF%2-t!?X+7HwO%?cNP()buYY>DBNj2oqhX;lJ=qw5W!8 z5GRHSpIsMJJR*H?W_oUBMoMw%z%bx~suv!SU7S)}FeEc9+?mfv(~eVM|w7%u;qal3&;1o|3chc z>)s;|f>^lIn{5&bew;V^y9d=-_+a9M8b>CVoZ%kUW#QlE@0tJE@hM9KAI7rqx8=2c z-!#YGZ1Au#3(tJFLGAm465j3numuY@YIflB%cl-a%6-^@g?D`RML?|<7xzzo*qw#v z9j>wS*xR|UFMZgLg(s~VIHr1D`S~3WGg$cdb1AO9v(~Tp@?jne*ZlP#mtOz#>YbYp zOIUb&S;aeRH@yG8`O#<=ex=>$JYCAbmuozl#KPU8K8a1O*mbzsqZusRqvnp+W=!rl z@5M)RS@@%|;f2+Q-@9D$XfX@V+WzhKw?DePde);7E#sGNn5FIqe6 z^}-e(?t8SAg>${#_xyRwIQ{aYT`c@TbaZBq8k;}6_h=srmya8D;=t8r3%n|hvar5U zo!a}X{jNn+oMPcG<`icys9yb@wiOpx*zHqp;_dfeewbcyjfH;-@R*Zf{C3yail15d z=+w>yrlY%NEU5U6h3jVeU+wL??c{qE4_KJm9MXI7v5HE;Y+ZHg`|m4A+t6=d`Tn0q zY|t=?54~lY`{#&;&Bli?t~zQOD|!oz;!2%Tf<6`(gdc zgwMYm!o{+1OUFXrnzcH;Jrx!N{c7FccPe^$`Y+457A(AW!=V`onU^+y#Iz5`ozGk! zFw=N&;#sac`@S%EX!5<_{`+oo{aCp7^}yA2vtO9w%4e|fkFOR6WZdA-)#CG5xZUuZ z3m2>yvOJkDVd2TSW44YOVY=OqAI-wU{VtANcCGu?;rt{P-n)NM-#JtIPMO2cVBseH z=N;PLt-+ykel82Yw{-qr{kGPA;~>A7g}+Hzy5OU?TV1-suVmpGGa8v~=LD!L>R^Pun&m&MEOFS1_mq4AQx|JG>WS7KOsp(cohCm&z)(t!3Y%3je_XW@Dm%QZ>Y z?0Z&e>ay^xiWUPR7Y~~Gu_l&ns`X|C0mGCq5 zF)8mlqO5Vm#$s5s*toG67ad+D|4mQiM>>b>W%UPZG;>H{iC9t~W@M8M3nNc_DYK{m z5mXpSFOZ&9!%0tsH{e^rve`}gRCSZi_I(kVQbly9(vw^juYB}S7 z^tbT~(~3%pE3K|r*wRWFyOlH%Q4#g(bWH1*ou3u;bXz`Vvkgfb0s9T<)I7$aZe)9e zKUKM`AtjM=r6Rx}E^c!FBPzOnOl*U=_=JXO1Jg4yvyuzY{Tcp3X$k8vrsWl7re%y2 z2eP-+lZZn)Pvq~w)fvy!mg@ay^h@ZM*q7tf=R75jdM`}N&nDZCI%|pO%=oetazBf# z|LpvX%n@QiX^B{ng<{dqD^3(k24{+>rkGtUiUaY9!g55sL4OHl;Km(NVDrbbR=EOj zZ_>ox1l>PaomFh{)V$2B5>YJ59yGWlRg^nQW)a0?l_a85&EBIkW^lK%K9(=;1ZxED z#FLLFq!db0d{fhOR??;_Y1FjT$5Zh$1K-eO9Kq~@i{K8#6@)7o7y5>xI7+OGf9ASo zJViu^W5$SM!om>jA2s5c&5SM`(e7E~O?hSGBG{v%qN1bfN5w?NMm30vi;9m*h-w%e z6&)R2KRPBlHo8G{Ty%VNLUhCWQT3zi*RLN_Kem2@`f>H+>nGH27!wr}9aBFhCMGtf zK}=jsd`v=2!`P_U=-B$PF|o0+4PxVB<6{$I8#ah)5Z$1DgO~=f4H`6vYY^Wcp+UpA zsJQ63`f)LFv2hLJ;^N}t65<-hN5x0S*N=~hkBx5-9~U1VpAg?LAu1s{p?*S4LTo~V zgt&zGgoK2K4FO_96yFe8H$<|A^y)wS{R(~~yxayuhvJ@gjHgf zzhI<7WLXmZgXRa73>K#%PvW_SxDyO=%uF@}Lfmo`?}_u&?{a#XL0Cz}#BGdokcb7i zpOMA~X#`IzlNZ_f7?a7)5KBw4>LrN9nL|r6^V2g42sY$WEM^rI3{fFQ8p2H??gUqM zetH3or(k48PR<5toOx79$#MOVrZ&>>|HnUo@E`u18(Tc{LG#2Pr9;}3)Szca2aq&nh4L>g{lQ#qL zNcyfHI?YjdN3u!%))$X;DBL$9BBKAm%t07|YurR6LJXsaaB=uxNNFNJ8fi;SMbxgy z!wvUT+^PNRt{@{bval!{Ba8#{GG!e1L%JG>PrO6p1!@>-P{yksQ$N_-OlL3%Mx#kE zW3iW;*2;Sbo;sU{7w;|j3jVG^x?p1{U!Bj<<_eoMTZCQ0ap9zJ%H>PbY2l1;j{jPB zMYyj0UbrFN(*7y@rMb_$)N0hUW2aefz4i8}S6-jD{M{W>w&)F}xF$_|-Z^nn>*W_0 z-?P`acQ$VNsKM8sFHf8Kme$qH!!tZOHnC-^w(UB0%E;{Z!M4C4gVAj9@{MblxOUyy zuT1f?Ut4Q1H)@)dJ!_6fLCT&RH(wn1+k=X3-4`y3h^!UXW69EGD^{*qyJ5$!eR_+F zcW`2}mR(k_Ir`aBgMWadM$=~3f4*6<|A1DkR-(R6Ki~R9{YXWtAQi8UdeYm<&l`Ev<_wPLrq$ zFlb#2o!iF8xW*VFjOOt*ySA@mtnCv}Gsw%=)DZ==aP>Es^=*u`Or@6OrnU8rbY^`Q zJ+HHBbY-s$3~6IDm#rS)XlXI)U2Tbab6j1mZ`p^9GrGC7F_~Mn3~XcU=GxX^F8jTe zIat%WZM??KXx2A0n8(NY8yabXdh+h|T_-NeDz%jDo8BSabyAeoXVyCtS}*%>LPJAs zZ9jcYb1QS0&Ng9l-^}*fh6ax$B8mBb8Yi8uZCZYPe2hCEtasBI$IqCi&DFVTOa|+m z)Yhhw#$~^oi;acetzPnS@p9>9@-KUNd~40*WOwgLokR8dvM=lCn%eoodYS;OFg_{N zBT>hXKT&(acV&NschH)(!bFc29h#KwZLH_DJ#>Mw!g#m3+6ySbR6H^B^a>88Ql=oWGFjQ!#qjP@fw{@uNMq@ zqrv214zl>W1h`t=T->!*oHAxJ`S8A4Ki*#xULV?HgA6P*@0un+ji{KtIvRxX)|YS`C!|gPYxVBfOZw{w?|Z%AmX)*U+${f`~@{{B;6Ubyw^-J;@IC8hIfMntaJv~AD9 z<7X}}Oq%~@)U43YPaUi1*y+W-2BW*RR^*MF`33P!nkBcK{aUv{rH2lmIC=J~>yIip zF~u?AvUWlXW1v>=F}~cbY`rejG(J${Z{)R++E}eY!yEJl4|8XCPeTubMjK={X^a{J zJeo8b7p+cX(erNJx{iiGLob7%_jT#4ZLX;Y@#LX*cS+O+*GLhEXme_m9nwwMtO?Lh zc&O=P@G<$Bh~RScW_^IZkD-pPmAS4Kw4sT%)YS&)Et;}&e2R>IK~uKU*jVGPX>3R^ z*3nI<@bEK6deqa{-R=85~6ug+s9Nk(J#pCW9pzSo33BK(#2OBy-Yj) zTupb}j459Z&0)d2(4d?wq|l_w|(?8?UDI`uUo@&x!As^%1!neQxpNUgQcf z%~lUaA-s5azKsPsmd^y;2?DRJ#)kywA#|x$06p^|f`+$HSceF_m*4|Ui`dB9$Qv|fA%t&)v@S>)hU}56 zMh8kaz?Xt@C6G|4K;a;vA>dO>3Fh1IS{|A6M!pL#7+j14dBJ2cv=su8AJ50T@hDMe z;j5eYEG@4GP=ddp)mX9iPZ0FHJC8|NO|TGxza$)FZ{!7wi3gYQrGkSWrqK!}UavV1 zBmi0iE|`Kw1Wf`yBB3VHC2U`>LNkK|*Jt03r5 z@7jWqzd>l@L5w&K66PU)m48FWX;4dT7{(A+A%9NjtZ8M5){f%i+`~~%vnCpO8u%uf z>N?)o6n@XKCMX#`MMJ0rQurmj#^}v3%kw_Gn?a-dhmk7dOISr)Q9NGw39#vL4-|SB z=?&Zh*w;)A8dV2#Ot_1d2SxC+QJ$8^zB78(QhGrX0fch~AcXJg15l95OL`OloP*k^ zD4s*>#_DwR#OvKTh#rn_rtO0FT!i3@4vR*sGa3a$h;}Yc@YL2f@@~A3j(10{9xO*) z2EP<(nrMLm!w>_PT6T+TlU6)fWG0{pG4RAJ`tVSB?mV)nw74WPBeSqLaxmf#!~jfw zy{L%j*ogY-OuRC3!*Pp|hWbyvagqFCeOKJ6AFGZZhtH@moV~GfR1%!54yMG@&Vp^=-e*J+1)1n(-EGH`xnPg;gljcS^Scx-&CA2U2MvI5tp7xPG`cV(%Vj`!6=gF=4$Kgv0|gQ-%1j3| z8I43ZCa9#bxrumI z%WZ_`s^P{6)4R?{+XVNfxCrKExCrJXTwb^+y@V?Xml{r1-pxST=6G&_i_+3FrEQ7J zh>Oy;dLrCfd3OkD+u*q^E=o(!l(rqNs%fi+)wJ5`a$4fgs%bkQtm5hgJXZ~OM3~+s zA#EqzJL96X^i1V;!PONP(Oh?2M2kIf^}+5xyyaHZm+ zcg-O#3x+&SUmzo{UAN{1`6ZbnO1frdW#{K-7U5l08XSmlIxdyAGVlztXL1r9b&R~E z<;m_p@R*@6n6)$?Bj6a1Kqp>gefs|*k7vzIyA?l+N7}tWI!L@B_SUG~tqL;^h z)NlkEk7!yA+YwGenCXCij(+|64eXcIFTY<=zmoq~L~8Sb(!7lPS|t!YP6;Y|k0pxS zwwkj3l!rsJLEzYDTpYWl;~6&SbE;mX#}{cEd$u!tJ{C zB>y*1X}V0WcsCdq@ibl8xR{3=?p5FCAe@U!jhBaK9@oDyo%dhTJEX!=(lhh&NaHk& zh?2F{kV5$Gu~{?BfrMGPEWox57s*yNya>;PgM3^n9~R)5@G}(G|I}U~UZ)@7qZrqJ z(_XoSx{y3n?G>i%5T>8J2Sr6i?{KU9Liz6`+;qqf42-u+8)TGCgPHaUAx z+x!xl6HD_4r{!mm8)!+|An<7((zqiIy0sX^ErCphbwqxob!Ao-GYT-EOGCd|G}McE zzPQ*)NK>~;8rAjm?~;_p#d6z`hHQoAX(Ta<$XF?c92dp3VvHsihe+Psl8{Em6ztjr=cudk60jU%YxZ}3cZ7U2d?uW3a^FjnOxoQfyEx>nAH zIC87P_Xl{RpDJ&ZmI%dPR8$IQ4aNoeB_v-) z<05PjEF|BmhQ}!HI@hyuWAQu=R~fGHxF+Btn2G)&($dm=m?VS0B+N&5<(DeVkgPnP>C-c^NTCc^Yi8zI9y3(vE0spYPiW32Eoz{st~8m!8#fRhZ}D9hIww=i`~)jYirxabJLo($e$urroZjUHC*=(luVV z2+xagRShpu-u;HOZ{hiETvRSSQ@KlVk?vZKYXz>AxK`m>jcX0AwYb!G>+t*zuJy{h zrMQ>l+JI{#E{ex!k|>FomqZD|oxHe<6BB7z zATe=BT47=$jVQd3R@j(ztP>OEUUgz(H`cqZD=JDLh0KzaA|!?EXM!a$Q7Ne@_W|Hh z@xKkv+j0FTy7xn*ryuFw9k~9Rx;HQC8M>FG94!3I437H@-G{oIMg>d$#a%X(@TzEM7OeT3`jk=3X4L=|_goC4Bd z`Do9|CKQKfV;&z82m`LA#TW%hOoX@fe+5ra7;^!48^B4tW5%V1H{;m{S7UsqAAQr- zm*-vK7m%LYBR@T@6#g$F=8*B8@c2A*%4&ePVMr5>JFV&H2G{M~c&>`KJqW9G_A#D6 z!9{e|59#O!dKPmtp~Z%vL&sDZ93yCu2;b%+jz8{1Q&oQA!Ud20{Jl4}zVeb+<-beS z_2b`Y{z~5U`|E!F{Dpzmd8bT+9eE>OT2;4s&`($60@gRrpAvZMUfQHvgTI;j{-0is zxZVkE?;PA3_v$b2Fa6_yHK*FEAG>v3{c^81n|3X{eI{UPr!!frr0s8CZa5?A>dcYe zhSi>-UHE$6y*u}G&F?J{9xF{H6lMpX^`c*?)@bOO2akt%@!G{DV%1CkAhM>&)Er`5|5US4*Db zvTU*MC+$aGoN#&UxiOsqJP(=;SCBlSC5_Y_THZ!wQu8f-v7qz+kJv(zcp^~w9L~DttsJ~w+8>?euw$> z*R1`r+VB4F?&#BhOM`h$%KL`y82-aPudsnv#?%_Hetyrk9q!M0d5P6^$>76h53j#{ z%k8Bic3*M7`H1weUXD@_xjjfKNAVocYT1kK8n-P?z79NJ?Wa~ghTYTukq{EL;$a7$wjcEP+#~N%{^Hd3-8w~|@o<}d^Mg*d z`CC#4wVdoX;gz6O%l7A#>-3T`9=ruFR{Kfg(?O(SR-2c^Af9Ud1?#s2K?-sb9>;0gX?X*kQ4>3E} z{I#>gyWulaSBH3Z>a_zS~5 zM)hiZ_00A4KkoIg);^xvXTpHn2jXh3E`LY+f&b1`WvvJM-Ob(K<)@xKmb~UQZxW~f zWn}GYC)YSGUmR0n?P-Wzab?!UljB`ZM$dcDEudxI@81U$Ut1H~WX*3a9=dzK)$`A8 zSHpt4^`GChf6n}`tOI+!`l050+D{R;JHKJwb2s4omMae)Z_{yC@4n|QuFibTTg;u9 z_th6e(>Gkb;u{(wd3@&a_J*)2L2tLwYVKsDFAB7r_uJhqck{RUB@Jc;|KRPj+`IJ= z_i1;2%x(8t(KT_sNBpj#BRZVl-lEkzfs=;tErU|hKRIyP`=CbGqpfE5!X-ZbKYW(k z@=`)v{BT3|qm90vpGZEfmZyKxvv=fYy4@)g$#x+mv)}rt9Hh#UUT{!s1 zmr)Cj`>%@|-Drrd=I8f{W=z{U^W9l)zuv3k9lBkLn6<)CyC`h6<+p>oF8ckoaQCWC z4R?MrCFFEJ{rqdT-~Wg*`R^UD_)OHTzfM;_75Zn&iw3X3-?kn3YR$;Y6NmYyes@J@ z6}#jgGvMUpYB}+apcgn>-Fv(9{ibiAI~YBmn@k1{@_)k`wlDd?%6l^^VRLH zG<{9%^3Z$#?-yH)_H_$g9#E0=!kSN8#LwAs;;?7CBiVms9NTE|$nV{`(^mJ8MvZUm z?|k-^#%q2ZS=?;4i{IhHzs8>%Y5H{XZwL3*PikU2pZvp~-}kOvSFpq7t!-I{LcUqF z<7l1Z-Rw2rC>&e2>r%f7ZQm%IRw@Ti#Eh(KE;6ADJj~S6ojn`kE9O^q@ z>8PT(*HX+i-_-y7cD(=PYyR{4{+Z>%1d+v~J_Rd*rJZKDo4Qe9P`0 zqjy@)jh#2kd+y@-GmaZ~1kR5}Mi&mT1l+8gxqwig}g89`^KXC&8;+06UiO7VXG{SUyL6Bo_g+lMdj^WDYS`|5bE z&@@c()&730eD8_}0jE5JCoZnnp*(v)(MOAdK5f%H*>~|b(@#(9?sxa$RUe}vdy(e> z-TIH*yT5uPGWS=PvnBh3aq!)vqG4xt&v1NF*sAtPU+u1rN5b}dR-EoQ=+)evuC}H3 z#*8Rw)a6L^v1dnlri>1GA??w<@WZaAZP6PZNaND|%;S&DwVyh(bbqbtpT-`YU>kmH zMEBz#?ip0zGNieELwxAHq4h4VntL>~PvP|AFZ8i zBl7U~5xXn?v3+s+8Jzf3IQgKgoR@`4cdmkR0<3A#}UqHaoTH6QQU(X-OEA>jf zHhR=XQ@7Xs4(}SY{8oSKf~9l!Z%+Ox$LddKVf zPj!||KDKn*<{O*CmX6zNJ$w0bT0uL$&(?MwOJa_m2-wi!yX!T+{Os%S*+32x(pxs!i}v*zA73K?(u!EA5MS2`}dcI%p2hul>JgT*;F>veLc~VN+tEq9iBSAl$3jRL)o%MspU2pQjpC^pI zFJJT(ciMY?SpUO}Gxv&zc&>V5Mpm8dYI}eDB=Pp%pGO4;UpgH!ZO4RTJ7Wj-6?)C{ z_4B*j-Y~Gist3Psy~>wg^6YabW8~SzQyb0w_2u|DTXe{kyAuz#YB%J;g%|Y)UQ4d! z7f?r|e>=Zdl<%guPOe$h)i(Rm$;L;<)Cj2I7ag>E&W|BU->!*j{3y81wvjJ>GimKk zKd#G^j}J$;|6>2ajT4r1J8b)G>x$2kfAHvPTJ3xC(B!qDD`y8a73}9r4BIa!CBD_o zzq4z*Bm7qHKXj@7gYI8T_F7{$nihp$`ZNB$m%2Wf*uZ+`qRZOXlA~t!*kV)E z+uEB&H{sQ$SMJ^TGdXRKmwRJlS<^*LGOr)({nw&^1=eeIUAc@u59P0NnK}F3?3n>S zR$IB?hkIYVvTeoCq_lHQy>|w6zOrNPy2ke={I(##yTV#0?Y%|&c9b5Rc~bmG|DDl+ z(*nYMa^BeYxy9}J;4K3`@m@A+hsV_6C(ai%4Sl)Rgh3vQ=JXFr+EZ5dyYx4kHal@P zux;tJwlPOzKI-y8tIP_Q);_2Dcg~-6de*0F2I#sRE&SZ0+u`@VY2VAg#a9pWJ8rl> zF=$=l?-NWTTWhY&ud!kfXoYxOJV#`idW3qD#l^i#(SuVdddJyLwHjd8~Ot+l=k zEVOQZJ7dJpecjHL*XZuj<6eh=kH>XRy|t<7sE@X-J8exfd&guYmEGBM-o-x89ub;p`g$=liVO?l!qv&DME$KKN_(E8cB4e(?I)6B9!6s)eV# zF}blv>E`L7zXiPYusmVyqZ`J#fq(S*^4;)FTjqcC`jj_o7_2^ZM-9KbqsGkg`4`@@ zh2*XFu>qzRdx$}MY-}uPVC*aX_lg)Jf zg^Qk^iCZ4D?At$m^@T}pXE)vdG3d~%QMsGi1x?<3qN(l9K!@+CGc|YJ&j02_&2vXe z_kKU#bIOdB2Y&Q@d+V9-R@0WOSsa{O*jab;vS001H?+%qr)>6}cIT@lHQxKWd+sYs zUKsh-9nX@kzYi?<>9dzdw2T}bHot2~|Fr`q>~UDWIFPgF@D$HvziS`1AAB^hvHROo zD-u6<8*CdAJ~HX0x~YC|o_q7PiPv00tJ~+s9P0UAE8A6@TU_uNzYkt$9=>$Mtb_|& zFRXm6-DTVKO}T5cYK?m_)ti7{5Xf}&fZ1}wm?uu&2bP*IwIVn>jzqBJQg_Fkf~BpNlE*rTx} z#;!5e*o{ULYb>$%5_^n#?t9JNfF|!b?^n+G|8uTzUBm2ormb1CX0@4To~I4m+NU0K zK0K$n)6X5h*uUVJuk(P>OYI|zImE{8?Q$-#!<7xs$}V&7)$LSn#kp18e7~vo{Ey7m zF56<8)j2ujo8`5(w(#|R;NW0rS$@d`!&R4e4my52=w@`4o#lJodB0=zrRilVdg;cV zboqS2N8>D&+`daFT~6cmb3cbEfdd>H{{FCD+w$iRoZRrFO32htPyhLF$G!7GtFnIE zo#|hS?U9)|E_xzs*UWytK=W(%q=PezL$Ks|eN{PuX z(YsRBaaSxW>-7Dq_pP;GPB^sF@sH5snQNBRu6W;R-0^|mzFjT3$GI(aJYzq2FC=qW zidU)1QDX+r7!!5cQhnC%V`DS{PR+|7@XBreL#E}E8x>dUw^nPg;GNNr=k{njqM~Qc zFetp{qm7=!JqK0~TXrns@vD@duTPqK zt@|}Ux1YxL4SM=&c*vcc(A#mE_ndR*ell&>fmw&{Pb_i2Vq|su*y0;%EohoFxaz96 zt_@zX->sr?_qyvxA`iHB`03WG`}3SnPCAlUqhi@0$8S!(t8YKde%sZU8QohfO^R7n zr_{*0J>0u(Xym+co@Z2}4y}6j_^yUa+!VVrQ?5moJs2MP-JQKx?OWcq+cWx9CC6r8 z9o^NuceyI3HrvffYu4m++UQ?<{xW&K%hxFfBQ}?MEBwRR7w?`~6z#Aw@It>mWlAp& zc@=QQ_segqJoLHt+&s@5m-_0HY7a(uxpw^hmhbb`yYoiBs`%}r5*rv^<8)!*YwjSL>zZ;j>EtI5|Ef8+WnBml?Xl6S7t=}(WkUEA@_><9OYbvFgJ z9dUE=0++HL!=>x zBPX9)5)|Dix7xMU`M`BP79`XFK=1V z`KwDGHFNLR!MFPG(Az=lzF)O*c&|AtlD_%9vgz{=we@t5eN5Y~e1Em=Bd2>weTF%C zY`!#h=J9DCJib%CT~s~eR|EGApZoQ>bGoPF+*}s6exi9fch=S4zm3@bEYo?3hvTzV z+A7UAcumZjIi;=rnW<~H-CENrmJ<=*^kr(y}6E*p0)@aR@@+->JyR#q;y zY|y%$sUCx3510Pl-g9lcnfcRd&8_I`w{F#N&x|Xf_ z!NgO&H|FM*-_@vIU)RW^-nhL-*Hn*OQM^*k zk^>SC4s4zIbH%z>vc`3HES0`%db7Rv2HpPFAt=f**JJkPFV2^myLEcP_C+riRG3uh z%DxtnM~2un&7XN|U(CXjj`KqEn|b_bcVfa1%R`5j_O3SUaQ*a3C-hDq{FLzdXGb-a zfBdp$&HN^h7h4uBYwprJ(rMs=z&R6wHs@w8?AK>Z>kHLVVy0esUz^f#{JQ5qlyY2C zdEJ*wZtnkRZS$;ppZ?Ud!cM1z1xp;ATx&YGH@$bwvC^FC=dRzW@N4MsQ_g7*;u@ce za2rx%%ZUM>7rzklu6IcH!9mXYp}KxA26m4!RfQU@)7r29F=o=#y^Wf0-nF5Hcgt&T zyUH&5vd_=@(%K`tGe@7=;N0__Th(^;_MY=mg`-=Jte9ed?)0*h`3a5f!Yi$R%|2?BE>7&NEhO%`Pj}R2?%p;>WDWyerG!oA8JIg;rC(T(kV5``4SY!pjY; zQ{`HpkdZqRuJ`{v`J=akrfqT={mfXhNB-!&6V{X|m2xiGq1X2BO4(0bn0IMRpJQp3 zpQ^lP+}HEVh3lSNKl<^~dmh2A)pySQu3EKSiFYbiZ2i&7gASIX#gkIH%zx#&YUS8w z(F3Zs{B>qzOx5eUb6yjEE_HIRYlVT~y>c#UCVs0q(fcju295)KDh?a@*33aS4z|7D zAg->*zV8m?BROJHB3i#PLc+a&b84phwZPCUMSd@LucP z?6vaqrnna^-{|rzzoO+QRonR;-Ql)BL+wXBtJ)F(?!15g4u`_@oD(Ax3`NTCiRzZV ztx92j(B#gS+7y;=G=5EAkFQ+{@?-8^ICjasu>8lrM3y>quK>S89ykAOck%iK{_+%S*jZ+U8@7-%!WuzE^S3MExxp zP~-TOKhA5d<%j%y`ug}e=CkfDL>@Y;SwoT zQWHYfSCaCR#v~7`wsNj(oufa>e5|hX+_S4k^H~o^50m*zdbDBbmIWPl-1qLn`J2fh~zhBdN&iS2vA8|f5&Y7{Q{>8p~DnCB47F+pn?u?W{ zKUApV(CF)C6Xyh<=~ZUyi!;5CB)Qn1c3)NcB}v*8vW_kp=QfNHLAUO^2y?$ zm09^Q=C8EbLXh@>_Pf&37tQ`A34x%ZND3(Pc`Xe7o5Jn zWX9ZItA9KG-eV?>$w&Yi&0f3rUK`lbA^YjXi#wC6t?8X#bqS_6L%juGCg_ChH$5G5ml#*zOmuE z9m8jLba1Y4>)6*0`QDamOIN47y~bsR!=eLKT#x4rx^V2bpm5LjuYNhaWnPu8r6)$# zUcM{+(ey1NFRTl57_#s8^OG{2ucmH%Ztk~SG z(p!e*iB&!~ed2P~ew*9!;Ett+PWMj^E&22_7Z+XU${#;$I(N_y{aU@Xwpe@j>J6h$ zKRr-0b5mNY9S*>LcbebWUB}ScZJP7FgG-Nv4*BZLrF`SIrRTnLTidyA zsk-;Zmhny7)@FZMSNlr=Yj+#d>KzQ+ec$K%300gucF#A5jP5h!9rKEf>Diucm)4gn z?VLLGe2d*}z2B+Wv-*SwZ;xD-)G=*h)e{>m*XKE9-wXe;(#G7TtKNjHnf?Nyy`@9-eZr(;T7rzzMs2pmPgj^j_+)A{P^@wYxYF8yj-GIgn7-l?v?t) zHn|u$cj4JkpV_15t!V7=;e)b2?i}%6*_#7)OsTaz+%f&$gkp~^_YcByjuH+$Utb8h9%zut{? z9r)*!1CQ%nt~Fp^wZ2D}Uaj(DNBc(Z4ZoiD(fdwyQ}$;$G|qEAtSLM5gpEC#ez0FL=8U>)TqkL=M(3x)YNF=y5IiD?AoOrhW(*0d$#*m$4|eQva6|I zbC-9Y*-dcS@yWs1puqKQznkU0cIMW;x7!Zb8rQX^)A~nq?dNa5cdUEX%x|s@zFnzy z&OYae2g}M0kJ$d}g>%9iCUKTi&$U;p>bmH@AA# zzj>pBQ{JTE^^UbGbH4Wd?57KB87hC0yI|e8`{kx*EuYxCqHl1uU-#^aed1a=vFic1 zC8?XQIXd<4``((W`yLPeV2<<7Tk|R%pV7M4h4}*>CPwdZd$eerM{UiqQR!C>KAoxc z@O##*kE7q>ao0+BF7~AOpqc~xtGHBZ`0)zQvg^049{zd#_HQMhs%ojS{81^VXEE8s z{%jL6u(aa`$(2{_N$|g1VSWSODYHIwJ=E{)xsCNlesN@6nFbp|>Q~)X?&kg}4V~t9 znRaDoT=Q8D_YYluxuGl^-a(qR*E*DNy%REf(BcX|t{4}w_@bv_M3uY`-;MU(+bHt5 zZ}^W>=ja?9({Ihoc|J*Vu>a}cP0a?ov>vl)Tuk7a?pxc%I^J+U=WbflEFn9zSMd72 zIW3N4?YAF(!Tt7xsRvtLX&rO6ROCzNnlqCY|Ncj#E3?xsO>K5Q$o+|3&{xN2UAud6 z$BK^imvyx_1dsou{LTwEf6aAY6Ob^(d1%Ybr}lZLYdbq8T_}}4$L;>dVKeJ^hfj}K zIv}!UXi59!Ph1=4<+T64`mxiU>$iH#dHR}JAIHZ0zI@Ss#|?d#lyZA@A;iDirHmPq z2PIr}ZPl#$x%3Z*ZH>D8%Kht4V|^_uZxZVOf=zw|Kh0T#IAA zpY^)gvGV-!)gpZRzq)$oa!0%ORt4U@T*;~W^R}<%_DIazdN1*vp6AX~x|;7dxOv#R zkMG@Dw?8c57Z1OPK@+3KecRskVeIU2trt2rJl9e0=`;KHDl6X`?XxVZQrQIK)+NuH z+)e)czE@y^r$@KeHP)BuF#ea0#iz9$(c9=)Y?*i0@;P^#Kid9hX04yM<0Z`1TMkDr z{ruYp&-eR`&8gaX!r?v_9LCLy?mO^<&Bi?r&sOeqX@9K#xGu*!Osp3Y=-TJ3@$~%` z&(i-aYgqN<=$@7(0GtH)6)+)h>-@I{MYg zwG3Z<)b8@DYMxa}&n?^Ov+mW8#Ej6~O^kbF-+b(ZM_U^&DrH%C?S}tioy+HSf7kVL zYT4}jALm^TiyiFVxc%`hwU_B`o3@Soy5}bo?HzRoGyM_C@F6#@@=g*0Aivr^k*uzSyzp zw^d88PVy}GvYzvZJMA zuO-WahHX3P|9Oua)1JF-SzX@6?cfFN;gO+lT^_ix>XS)c%YC=juRiZ+^LM|V@X*1y zCVP4Vzh_^5IL6~vyKj5B4ojXmsQG|(G0Sh%Ty(!$g{qT3cbm9kd3NkF$3CSKj*fA7 zT=Klmy=}#A3CE}Gt5^D_i@wzKEuDRjHmYAf@P+?AOO^8_w)C0xVtBKL%|c%$e^K4x z#Lg8{OT1Xnu0^|FHa{QP&80$b_x_;`qqJwgX}-K)w{7lw$KE@z+S&J%m~JL)#VEvn9Hp9$v=96Fg@s%x{^@nG>8eKP38Z~F;$+a!3o8$b~ zKb`b$agX@WV$B>sSyf_+XU@#P)-@bcrxrVPtk0a1=9|%t_b&a)b;ln=Cmoo&C+zJj z7eC(Q8eer|!ZDxHj(c;kVa}Sh1$;_7AtOtl@g`PPHGxFVu3M zKOwumzS@#1k*)MqGL|RYt2LwBpXXwmJIt+PH*fFs^t8;uL!VE(I?E;8IHb&$)2{dR0a$C|yu2HG#Ww|&VwYf4mKw%;}V;HR^ke_EE~5;1RQ z?P-HL>>2Xi4!05!-9O5_9N4$oA@jh)t=#QPByP{z|3$d#mBwRch2GRS?|l4w#Gq2Y z&YT^$WQR*_Z@1p7eb0N8K00jlwJC;~nK{+>9`;z~czMUlc!x7~+iER#`ZKgvLc&?Y z*{@nT2Wx#luH4|$JN0h6Y;WbxgSw=Nv-ch;bD>SS?mQDg3_ z3yV&F(*&wrjecFXC>vG-@s%zo*ioxQC1g*6G@GmkzFnfvw@$CtYjhPRu) z{K3#M52uXXn^9@=`ua7s{}Ec^Lt^oXd1b#|5cI_BKZ^WAS=y0_A?<)TxYx~6|z*7Bu&?P}?r z5^A;lsmIpReWG3-a{k6r+O#}l;mDEq_Bmg8QNn$~2R{VYvy9G(JN7bS`Jl%3y(XGs z`@EkTb8X!FbJ|pkbB@yQtnD&kc*+Hzs6BTscXRV>l$Z5cuLUnY+nCg^$GL6QU7CfD zvfDlC>>THTE!;|=|x-ndb#dxJIi-m??aX64mtAEy-&Yw-ym!F^ZM~6s;5kP zcX;bBqTOoM)@`2Uoa{6x_tv|&M$S)M@%5lvJ7xq{{(SP)dfmE>e=?)}7gr69!mAbE zWItfe)^&l6o^7|UvFEnqj_b}d_k3dspS12lym#PNmGm`FZTq9@miD;|{g$j6^NGit z)?OQ`W+!au-mO#fEaL#jW@*`1=VPa;ak0l84m7S(somSrzeUWOKKGNM`rN@z7phKA z`Ker%YkKGDs~u;kp6 zT+*|OGc-Z1{4Htk4lwyUEZ*=WZcF#^bw&v!=9^c$Q`;vs!mhZN z9Xlicmz6>9oH#Wt(0KEZebmiY$D3FCsO*HFg2ooVQo_aa%BzpgSh6PE5BsR@@N=Q= zzueu@cgY8(o~>;W@O)+2p7#50-gTXNsOh=|ol5ol;>VHBo3AYG&~Jy^<;cgQD>rGp z$jy{>Gryj@-`Dq^#UJW9wzPdnMAzx-G=H8-3#hYW*U~c1@#h8)y6m;dVa%?FIqO@O zcdK)}`q^p^yj|-&y+5hzvY6`qt{iRt!2eXFdxL52TYG-&pX& z^{HIF^39rQPZqefjTrCUVb7FmPIn!r&3AwMn{{75nPGlW)#=2N;{zgoD?MxB%sjg> z4KG!iFtz-w*=}V^Of3G1-I5k(Jn{#Q*;eA-m82QJwQtlsdWqxlSvOXeT-JHxtCQJ> zt6q$+R6f*l_O0Vj7Z08^vE-#Hbv(v2f3>8`sF{1CH=Z1p(K67nj>nd%e|9VW-9@iS z@9w+2$2Iqo&!*?aN-V9a&t2BAdjG0>qh7=Z{r209`?L4l9QojYL;raVmyB=wndQ#z zja|F>HF9;|zyIgEckNzX&rfYMwBg|@_d310^k{154|KPJ_Z+U3?6A!AL8qKe0f*l2 z7W+r&*Bf0DN**%C+$c4?Lb0m>uI;_6tWBO*0J@` zzPTN|qXS%m>Wq&+vh`uz($glddXPNIz3XSkbB90eTgCD+Fy_RIPwef6mXBRvN=SaW zIXorm#d_yPzfI~IS@QND1M7EqF}LAWw>{(CJAdQ(^LH7u+P;5zq@VpCzBT%GsQXUZ zhb8WP)M-&e=coO>Kh^gx`*wQCG_C2U7H*GEt?Iuu?#E_h-rBu+_zz!HKh-@ZvdzOG z_4B&SYMtF+hm-yA1)Vdrzx9nB5OOQ3%<9Vjue^xn=Ytn+U%x6Z&-#~~n~~Qw+m+m10@&7@E9q7|`zIP{n|A4Ry;XnHh*KXA1AJ6>mLHKVuAC2S0e5Yo0 zr`OMs|7Y7Sxbqt)m5bijWuK_teXUSRy>n1BT?1pWrHj9j&ouMp-1T1%n#-F=xVV!y zVkOFTh`15UE5p)jgNZ2e5cLF}4rH@XRK<-#rS8r(aX17v8DG--Il z{BNFTXw-4}zsa(m%l^9@dAY!Lae$_CVCTZ$^>FEbwx)B(zdjmR_y~7;@ts|D@ql_C ztRU6dv$O3@9CeL~Err`rlJUB({I^}}CAZ?)3RrJ#!4Z618J2|;`MG>|Cp$Au?iNeJ zB?s9WuMT;y7POfUj0u^V?J)+!xfhWDUgc{GNQYydyZ4kUsv?U`)9eRPmS{D(>-A;vpk^g6;5k*s+VmBaTm#*mCe7 zV{C5~Z;Tk*TKPL&DA!{z2-m4_Djtc!LseruEkff-7=|#lWeo>Y@xPSp0!ZhD!vhF zJEcp6+D4fkQAM^-4n<6sZIcp_kK}t50g-B(BqLI7kIaiy+akv!)pkhvs1(@-X&e38?Cl6Zbr|L?TZ>QYTKe!OrmU8 zd>Es)DYnL_?TJS*{bgICPRn%Jj_BNSk8DFsY1vP{t)kRyZ14Q??UI$1Rs_g!kjh$@W1`T(oQ(EQ;$Q+XZLhs;O;)c(pyyG+u2B42&Nr z+X3Ikt8IWQ@mBYLt83!+Z`o>|xcf)7Qf~fDtv(R<{{2?UtzWCPqqy_iw^nZa$*o_C z`~HX4%5DEgYvr!@OBf<<`jmw8;+~(8Fkam9hZF9KJHBL_p5lf#w^8o*%r?sHKEI7} zx1VTZ6gPW?w%f$L9@191)%&(p?(`LHl^gv+TdVuLopPH;w$q8bd{{f>CSTX?3vrL% zYNy=dp6!)8ymkBW;szhzUb(-wwO4NM$L%A<-CehXpSZb`It&o^_S6pT#jU-sL%z7P z?K&oi8{5z^UEJ3_I_?y=^_-4*;;#O=qjFQf(@D9f8+B4{>D*2S#2x)rr@`WeKG(_W zeokyJZs%r++2U>vd--bOZRJ+(tlY`5os}DTG&UdUKHl6}xs8ACyhGf@ zwUZu-o47-gat}{VQf}d0N#(>H{5(myfwjrX{cB17S=_!ela;&oaI$jqzSZTBxOW4) zD7S7_7oE6s7j$_kZrqbyW-Iq?igMeArt}qeZGK8?anpXCViNc4#T2Vs*5WMg*eHu~ z!w$Dx6Zh+Si*mc(u>^^`)w8Q|vnF&^?$wXFD!1zPt^wjsecW}FxKZnM`&rzlN!`YZ z+w{|JH^p6gpqrDpNsDz??onfR*}zL%!lj~&yL+wtSHUE*%sou=H3FVfx>_o6OcxfQ#nD|h0o^ek~B{*+!$ z+=rzyCW_mzL56Y{_R3Ih!i5>iJ$O2!o^lIjDtBO5rg8)J%M23t-#3{D#O-$}bFgyv zWhpmbOjd}v_eNyJi(79))^%~`-OW;Nymx!G7WZA7UdnAZq1Q!m*X`)_tGMZ&^okSr zT>b2y#VwbdJyzUt)3TR}8}49sS#iG=&rxnSQ_fIvx25GMH{0ACb(2n4!e=3++dpCPQT`7DR)!9@#1D`(l1lo zOa1#Px6;afgT@&k7D{C5x3FE{!PSPw6TALxQXudPZal1%>l|S)ONrh z;trZLK)Hc-4%jX3pJxM<+sAjHa`$u@SVr7D(+4W|&W{7X5w}i>L9@i2<3Ff`xN*`4 zT@d%pyg{eLZF78(a@Uj}tlTt>2YZWqruSgwmRUAt!qGH-TO|zG~ zgyt4g_bk}byO8D~8C!Zk()uFlLrA}0B>fB0fko2q7q^o;gK;h0|Mc%KZ_1*LfAtHU>s!yQAgbjqPxeV#&8ky~_5uesKg~Y;=Di}j5Pm80{MZ}m<4E(FbC$i`3B)H6P9gC3X#_9t|FQ=qHPbiQ z`dx`c+&rSz(XVJ5t_ulg5NBK99)M}jdtp*@aaRH0setGI<=%OFkuUEtQvDuAyOC&@ z0@*=V~ga#1gPxu>ld40ZZ~Z1?mP z9mn}M#`PQ0|EoJxiq^ltcCGLKNB4v`;Enb!zLCC!^koDaJzl}@s|eQ+t`~WJ1HW$~ z+(IZ?{x;Hg5bh$RC&5jE8wAsAS1Q>qZ&M$gw0_hhP!kd-w+aLX!f)o~$y%P?njlS? z6WR81PoGnc@<-V2ti=5ra-mhW`W&KNP2}^SCdXDDA-GEyOHPh>KHjX7+npl8IsxjV zBJ>4yv*0#5I&a{Y!j~2B0TUL}gog%dl5s^ZE(W#0`_dg>d&J#}cDd-!AN?dC=7Gpr zSP<+twpCnwV&mYD7V)vcAz?P^`*&{Pv9r5}`Zk>3$L}`*w`BB|gCUFQw z(`KaM4znbsmh^2Ys^X=i;YZ)HOr!GpXwz z?fRm84V2|!P_A$Oy$K(ggZ9Fa5O(xU zfvfO~rgG^NzcQ0$$xctr5oZ`2lBt#y_zN@C{VTXhsw-~0eEkVN7}7lxw^kInA27p` z+b1)-XVFJR8c71L!{l18eqqy=6nwW3S5)!S2E0zwmST~DOPy?urr=IkTnyV2SBPY# zW|1ipeB1YVEPdh9&B??d)b~vL$Tc&`_>^l;X$|uQXJ2k+c0O+LOe#zjJQhUA*P%$5 z_2t&muJ9V?6FBki};|WMU!qxNzF?yl9!g5nZ*LUV2qs<`V+k@KHYpYIr-_B zu$~&0^TxF!a7Eh&#a1-xt}vT3H8mp(ANYZ9B6TxL5in2&4yfh8Br{?7;zxMi0%e8c;Wzm|eZQ2`j}g>; zoYK>4eLO*)#w#;Nv1N_7ZEg4MtG?MW95MU;o3#!WoSI37Gz(>Th<*_CVCvDf^i8CB zxZRfC4PB3EE5DI1Z_qCe<{PNN^J{2_^`9d~)q;92Q12b2(IE!#H;`Dr`4J1gM1J@q zLSuy5`Raa}qZoh@X5JGcnKBn&nvP-qgqACCzButQJ?z< zgpo9ti?rOkq)Eo*OVDb&SojGvyD@l<7Z>b+a7&<6)y!jQu4Cs5f5W044s~)3@s%meR;`mAqu$S)}D^>-eg$Yt}s>tW1_(uh3+l{3Oq|=kJ|)>m+w#{VpE}W-vnY*&!cHK+GV+tLKL3us)OYB>AyBq)X5WS> z`5BtvjQsZ-=4EhpQ{K0#Xz#rTVf6YZ>+G}x)!vsGF=1?qnDcAXBh@_q%h}R)##UVK zR7fuo1-+ASGdQmo2CGW3-qoH|IDJ518rqLS`*w)A4o09ezF2b|!KTwa#qXkg`Pm!k zKahTo@FxN_Eb{Ib2rm&{A@Gm9nE%QYj<_o~N+lT>sIHt$6h+3%yPigV5QCg!8*i^S z$X@Q`wxX|~CF{0ob|zJ4GG@u~d99Hw)aClN*2Udq{P;Pjtv(cbsuzD>&2Aa$QMZfA z%xywlE~Y@23l&u^q(GI!mAh=S=mRKn&7jD&D!k`8O6hS$o)nf3R$3f-vOcq<1Vf1n z&uEon;SXd4+wSAEwi5~l+*mZX7$|PR>WhkDqOc`UO>0bc#d@JO9W6Yk@OQyOlnCS3 zJ7b}PMB`HVCQt#Cc2@W+0xDJ-*#s(7kY(RsNE)TY}( zp^8&lUK21BbQotkwkZm z6on|7pEu$Cb_J@Co!uqKO0JuQ2;>QcG8&ukVB;EG7+W987^EYmqj`n|!K3PG;taJRE|0ge?Sta*=kH zTw9v0A((mD7CXCdP=@l^RyG*F$pdX^_F1n;n*I}}i=%(?Cx#OE4R=aPW_lv{xvlMg z37u8@0lyihWa0N{qZY#7%989pB6|6cCqM)P)zps!1B?Z#}%ZHj1dM%={ ze24llM`b=JUx_=;4Fh#1rinlDaLOF=(z4dyOjGY-9?RB7U|Vho)Z18=G(_IV_V|o> zEYCJ6^Qj|KcjYsdaYbOe?1R5qj=$NyeIE2F1T8`cLL5RDgx&~a5T+u`M_7-r6X6iT zC4^@PrF+9>NAO07Mi`AS2Vot;4uk^;#}KX{yg+d6gL_61vw>LLUoL?N_8=z@@gFbH7`!c>IW2+I)G zBkV;ujc^^|6++n|z!^d{g!d412tf$(2%Qnq5C$QPLYRUu2jOdk?Fa`EP9R)HxQFlv z!LwNDcWRdR^75+cg%8w}sOIJDRnDtQNj!Mh*~_b1l zYF_hB_!O#B5Qub*`B2j-^jj4q$%_jdR|QYICZ(r>w==WAqv2yy7hpIQ)Tl=GurT!ItWOWX{{s>BC;Sg7locJz27QqaL*<__pW^l<`{|R?o%TL{-g) z`Yu1`Q^a@agYOx_rPwtU>OO2>+_sBj6j9C!;j-#<1w-%& z_l;I`=@Um4L4fF@lymm?nrqSrYM<4UW`X+wUvKS7S7LG|zAg&_h03UgRYXUVgP6*z zCgUt@L5fFWI_beIM1)P-RF9xz`dAfb`PdQk_M)?Db>IRWHveTo>7s}%=#&HrsG&~M z`JhyFl9%!UX_V8yfcTk%#n>H7j9$fpq>we%MS-W*r%=0AG_O2HR=lDWYG1&l%?d$F zIN6yY%B%FrrmYKuIHf}#I3(R^a`W+}!kFyL+)NzfloeaF87s*0-E{a^t$;SMQsEm5 zJRZ&F6ihM~f8j(Eq9RUcuFIs?=a#l`krF-yR*>`}erg{WI@nKO%TW3Fc?cTOGFmhy zJxij1=e)sQSg|0FK4WX0@QkD^tbI5T**qy0fXm6@0@g$f7MUx7UvWgA*8H$bA%$@q z&`#+)2YNvU^kdu5tkhl&{d1gOtbjs(MCibrl;_7snUCW5FPt7R4+@j7ji>N&AGjId z1;xaQK5iW(I0nAlPzWbjNKvo9jaqFBn9lTqL0cJP(WOz~nfHmu*OwGo(qHZ)_Fhp( zIjA?+f)6=oW?)+mAH++>>E+y1tP_|7*xtd1qrrxJ!m_h7GVSb26|r01#_zYG-_dVD zU61;rO@CzCmIpVgl%dYZ=Qcf&<(bEH2?XZZ0^8(sTieuGZNF(Vu^!9Xp7A&PV;`(% z`^|dHvz0IUyXZ4pIa@o-v+1~O%T|{C@i}4VZ(IM=h53y2ZO?2m%d7egkXelgeZiz2q_5Z2ssFY5QZX*LKufI31JGtY=rp; zixIv>Sc|X;VKc%Gggpoc5Pm{9hHwVqGQvHCCkU?)-Wd%)8iF%|8$vaNnh4$qz6b^c zGeQVLGlWQlc!YKc$p~2peGmpB3_}=&Facp2!c2tO2n!ItMc9O}6=5gBUW9`PM-WaS zoJY8XK>M3E2yGAA8?;rp59^Ci9f7tTX^;Lz+9E{*Z5-P1w(>SQwb?GL%kpfKf%YKl zaITog{yY&h*58DIZ7`;7#kN_FG4~l*o-zAlyDZE02q(ut7#UYZ&>^rc`=za9K&Xkp z`gIVP$MQBpDG2yC(a0hs+IR^Xb2$2XK5V8>_B7Bc<2H`%!3j~+3 z_=YY*1B57qB!p~)NeIgkenq&9a3A3XLb(rN8zblu!VwY?auG%%OhlNE@GZj62oDiT z;Myd%;ez-*1b>892&o985#}O%gRl?bDgw*?fw=5=_!|&{5!xbTA&f`(9^nYWHH1e9 z-XCF%2;C4SBP>MNjIbBs1j1c}3KQTjK`3+=4u7J)8MO&8kPkKFffY@cv`oC9VtF6$d`uyQy#DvsEe1bL zP*52S{+h=nMp^oVq@joxemAw`#;UJld8s#__!U36np0EiNpV)GjnDkCe5j?Xrhmax z=J2lzvl3|$<7kEF>(F)Z^W^7_>Oi0a=ENeuQv(XySM6vZ#qc>m?4f1{YN9eTEPpM~ ztxIBhQg+XOmCf1xS9zAcnNaQnHCegYIF$n9D-qjH@TtExoPpjzqYdBNfN!otN5rH7 zhCW5|EqES*bgdkmnVG8QzzNUzi)Eeh+tyY${5Im5roJW@yA<@1;w*;fEqGxG_8~QX z;&(Kj z+1A6qbH>kB_b%#!?CeCt!3hpnO6i^jGu`4&&TB+b)477M3y$Xq$d&O==pW z(ZXjrSy<;5c^E~D1KW;$EGc5C@toVs~e?o1WpXR$TkR{n=K(z}p;m(MT{wmGbU-=5ZB z-JehDLMH`mrFeCsECM^LX&UP;j_vDudHkl1SShld2Wt<@UR($01MTsTQBC~&&(f#u z%$(Z0<92^i8tKOCGxc8VW3*4&;dpFvtQLOPM&L8s7~gv%?S(YiFL%XbWM@FpYSDJQ zQHF$EaBh+O3w*E+p4--PUHp~_1q}7@+ty!w{7$u=(y`!eO&DU_^GOHu$A{hu7l3i5 zqJQ!fR4L$9%98q@e*@146{uUWPhb2_OvGmiQxd!9=4K_*=Y#o3Or%i45s}0+`m~Z# z8gmHzK5T|1*BZfeYK?bz|5CR|O}^u6X|8HvUs;1@(HQL5AdULS6+R}-bb~S~7oX9B zxt~>-t-h@pI9c*?+AU1%aINuPRDrkvixo zH#55HYsKXm7h`l+TS;slS)nQ{nZ>Fs=2MtkbR>LDHZ!An9BO!VNv@~C{uYjczF*+8 z0>(HaU;;ScKUwfoEi1Pk-85YU zS^}2ZRpZ5MIfj7&(;>)YP*9M@Q@zOTNsx(**Ya#`L!5zC>J#_rywc!}<7>$%`q$C1 zVQ+7A%0G5oBQdcMzdn@P0xlYmVOD9lM!;2#aPKrWCY7+$1Bi!EJ94m|Y6xIaZ8vy8mh0~auSp?g;nPG8} z#5AT1DrQa;wo)Py>fy7caFgZ=NM7nUig99V1StjS1AwAdl9#|_rC7EENI2*9Si&}) zUVy;YR}-$hZK>&UtPdw9<>Y4ux)hH*{Jr81!Movngjvb$&LZm5s5oQLHJ`6a!;uMKS+EEV-&7Pt0i&yh)zyncl>LzCAGxv|%H3 zPw_zgb+|rgrx5#`#~P?;i+u`#(Gcwg6eM$0PgBr6X-Pc5fyCeI6a;x^0X1M|)O1qO zMxip^AdoVc83L84pw01Z1Z-ty^vLnWF}K|MmJDpM0ev`ioa}2$;Qjm*91zX%>5(Ix z)XFmwZTUD6CHX?LHlE|f<>vWc=*rWpC>H@{Z7bNzwx+$hrDY~3rRi)L=r0c{5afMo zmt0RS2HOg@vIR9}S*)G~Usd!ZPf>#47$;6FbLKX;5$QXS@0UmeH9E z{s3DK_+*5BdOrc%p9t2O0|cW6gG6YZHMIt#pCHL-G|5;^YUDZIZ3-H&Yh~A(lp%7IB z91n>Pe}f+*t(KkYwK`6e&ZHxfbpD_wJT#d7WlaA5>_KY^K${r8nXPDb{=|^hk5r&H zne}Kzt2Y|hirK_&wMLLBYnTH_F$O=gpFm+S62*Xmd0Jxt2ZOn?;z`f`K|Io<-oSQD zI^Y1E82yD3fEM-z0yLql*5q$uRdl8oB$|j0t-;Sg_}D26BPobyEFJk7xRRI+DD(zD z_NO%%6s?(zCM&?~-rvNAwf;s-1Yk4j*pe;)bg3FBpuhhcw`?$tGFOO5WQd4UM8uK~ zG=fO41%gzPGe=sn#-tLKBJvOsO(YDUNlSXPR^kNkF=PB^E+V29k+lW(%6_aZsoqKN zIwK2meHdhEa@wRRou5ntlS0UP{?g)^L5NO^x@toFvGR-jmJ0mGRRv081tz(CKvVcd z_;s9fT>$?{!-{91hJmD^lVv4EIA{YGqK>fZO{_t<4J1xs9|m?0w#9#_D|87eDgqLK zE&x?}L@^T=zZncv{^R%mjnwrI%>Q)^Xd&=~!-2VyJXMQ2V*rV+X!BSGI?xG-mdn%N zrz73z{lWcTFQ)|`6WM8$wW#wGdPO9Z?I$V*!~i7|A`&VhS$2MADWcUA~RPm;N(g|#Cnil%+nhvCmG2a^rxPqgQR7i z!6Xs`3I}@!n`hIAm}m0mLWXD;DHfn4KE7vwhmheqA_5UgB9e8glOB-bf<;6zt=Ac~ zQp8A|LJy{g9uNgc3Su8A=tgYJ=+C9BHwKW+=uQ5%2m@n^AesHCh3K_rY7%;#jN+9cBwOyA*ynE=n(>&AG4qtn3#O64X9IiWbhN{ zp;3{C8ZgHI4YH8!LyaN4(0Pm;1>~x~5ozQy0`*~P5bOO}Rke*d6Ig&7&VkuXIiRv2 z*9GZjBiW`Nz)JVfgNO_Kp($t(3I2+IlVfh)9QfsCf3w=(wx1ULi>X0lV-#}PW!9a*X)|^bzrL<`lqVqGW#xN=t z(aO95aQ2S>garZ+c|-||XboCPVOWw96<2SfmV-RO5EhJdYZ8G8y+wu(9I=SCq)9af zrBxmZNSG8NSSz9xk;?O@;;Dn)%;^GMa17MpB_+Cw-e0h!#Z)Rd8JU!hi)J`7>vUlT zW!Ciolyd`GP=H(YCKw1LEht7ZQ(C1jnG80)RjFWRQN}T`90MZg#F%bB@F>>RDXYa` z7J$K?hzpZJ)xi={>YUb3mW?q$;J`#FJVG}XWErsLPz_8_Py*fsaP>+T$Lt1(MFgc> zbZ5O0-zSo;p?FJY(4LtF#i3fk*hMsJL9x_x3Ae-n!Z3ge9hVc}H_C9#Ch`NA7^1(L z%xd*O)fF5AAY>Y$WJ^|W)mMbz%u*3itqy#%QKt(Jp3Z+`KNZ1($LTiNCBLojyfobw{MWw1g zqnM6p0h!j`%vzam@OsJ-3=CWWm;(OQF0L|d_JBzv%yLf;DK#sFb~2Bj1m0>p+h!I%?DG|A9lsfd}T z2R#4?;9c=FgIUy75RdR?li6Q*94M2BfC(qlru8G9RKM2VO=_{!S_U73MYEQP zCN9$;c>xWqz!t0Lis2d{(aEwPpQSVK0Ko@lPXPh11G0fPk#Cqxac=;B!n{cHtWJCq zZ%U?tc-RUgn=)_BG*_&{gjGyb>LD3~CQZU~AYa6L0`-EiEfyh|E`_T$o6?Xuct6&js z02wR%MQR1$0n5Q-BCFX1@*|Ks;ck#`io%uq1oBK26u2B@AmRmq4@4LsY*sV`F(4BX zARaGFH|YubsS=QI5=dvDGCan57o7&nijxn21|Wy(BHR~>1(Aw8K_WN=;im&ekOq_z z1Zb%kJlavBOQ=bQS!C-5gIKw6nXn;fWUPP$Ake{a#d`k2V8~HOONdwm-U)&OUm9EC z*ZP=JB9vYoJOzIh)(X9fL=8a&$oY_K(MX>QK^OUHrGI!uNK|@u!YDxS3O=huPk=aJ zNX;ySqG$m0C5#qw(5g2R!B~;P+ynfGQaHgl9z^0w3V>RLo=uno3=f(e$E-K2wPA+4 ziYau$NSuFKe+v?rMV575I)QH87Bbu9RTcL(UU{z#m5*;74wxh6+WL zox{(eSO};eML?Du1fG!rV}!C)uq?%c7~n5v4P0-?gcK8k0-IF}!XyL_3yupw2R%f_ zNLhlGKuMeea4J02nMDhM9wBy)88d)sN*mI2!l9Fse+19WriAw7O-B}JnThA zesHj&D7{$($=V{;n+TEa5{-Iw(qB$hrk9>(9M;tDY^~G6E#3Z1d|m=tXK_f4dld$z(jL8 z0W*;S!$EWrrMprLpdu_fk+cTbL@Z0kG|Ez{FxMoSs}96U5`g|7fMDv7v`#v-SX87u zAq4}^!foJ)K?*)vStqcDq%-I>92OKAc47qU0miZTh24Vpi#-V>qd{O+C>c&8rpR&; zLD9j$I9lRciCLyt1i)D_fySYWh|~c`Wl6LJ^w4{2txkl1y(;Mq8BcgKj2?`LQwG=sQvpia z8^JfxJqKkSjR0ey&c=tFSCAFkh1$qD!UhB)kesk}qrW(1LE$KZ!7FhNi6&wZ)XS0k zi?MB;K&%GB0~J`bYzP^)isc39z|xc@1Jwjj(k4;BiN^q#U`?z;7KQjwMhDm^T7ZQt z2*Ti*3$2ws!vvN>VAR9{gcMgiNLy_rU=G*~+yKl3MIaM;zbJ?P;6p?;NE1i^FN3q% zHbJ0waU5U)sm&P^j4c#`d?6^1Ai_zYB%xiPQ6wekOvF1D9m|5Rp?OphMF;?LeIh~n z13NG(Jr+6$TZDiY{6a@V3igDs1*iv{OCW-g8GAE~)NTg0me?Nj57t1JQqj+96oVBp zQz=ETLlx9&CX~Gmo{sw1P7x>}(^wyh2l0i`6N?bKYSOKFLSN7=SdaD?Bavp1kYbL( z7$Z#Z5eot^NJ$YZbndWe8YzgtrwAbTk&uF+h?0x|CnBy?z5Wi*4}_|Paaluiw)0M5fUWwQ=eiCQWF(mSXH{b3fxXaq|akjzp6u&_GJ z0Rj&J$`L^$VhgHXhqDdEOr=C3m_&QSBrAVhVt5!Xo1B2a6HT z0MZgjVQ>&&I3ooK5ZxTT=&mrdWm@&(EyF``d_h#Il3aUOPO5FCaf8cnyjaVe39KNZ zQV(|2W?63jt*hF?sYu+o^;9Bn2!ff(5gUL!f6-)e&4nOOSD*D08v6)Qkex zm;yk^$%7|di~(%$vn3F#JQST3d_ojNL;@dtQz!!SgAk!>QX|zHJ_X+p_>>}pq#zYV zLLSW z3*z8hRl*3%kn9h72hj}0ROk`LCg%V>$)dt?VT^@GG(eM99xw1LMdBbvq7uA^fI!T# zlo^!ITG022bvhuV4E1B^zA`2BLXh5IAt+auNMEP`qIjbt(LvBKH9u4$|72Zs1JYH_ z0V6ny3>>^y#j-t*%E~DS<(+efTEIVWB!mbWWmzabGIeHfES9mld_*Haid+IpnRtw0 zBP&A^dNGPZ1rfk)92IMhFzKPrvLR7y$Z%9|Vse0*1bxtmWRgJwQdD>yNR|8$Q>knN zMh#8e8$6dFs8vP=mLIVMgG4EW)&{|&&^Z>2kRMDW z&KM|KcpaD<(E+Po4N;aJw(JNl6e;OhcK1M9%D;nHI0amABuyjC12hPfiKK)5q7-;= z2BI7PMZAK(RViW=h!pn$=$M7EQz8luWTo&Ch$<M+7g zL&cMxvD(-d%q&FQSLJlUz?1ob4#Q?3qc}g<&QN(`3&JgeJhBDVjt~W$u6|;HLUj`^ z2+;ye0jUB32Fnztma}G}xrHPc4<`>QlBh*MiEws!d2Nq5ji5xbA510(p-!?udRlcv zFex^r`~-*y8zTW&nUWl-3{9_#;G}-Cn8DpBCR&UP)v9t7C4y;Ff8&M=$2v9YL?m%;iM1|?BH}(DXg4n zXi6vrN~1I(EFL|`DF?*ryai&l?nEHaugAh50-%J>N)7=mhbb6!95w7>;1+s@WHA6Gq}FlZyank7M*s!!pm#|rZ3t6}!NE!u{S%v0q%?T9 z)re&=qbA1$b}B>ym6vG2Go>`ZL}a^I+p-EELD)HjwbB}}GzEQ_6VWU&K{DgkO?@yc z8N1@CSmkUR+fG8_R&5wwJoc|p3-w%9F-&|Jl?;clD0?s)0 zi3t~<9ehrrX7E>&4L(~!R1Di;|ClXN=>x^h2 ze-WIigR@YONfz`L5fO+aQ@r3j#LG#Bb4`#>lY~uR=0&|lY)!);k>}tN5@Rx14Hlh5 z)~DjbKvP`XP%8)|$_RC0@G^I7n&ZW&#YBLp5Y-)N&NT2Ts}YQooQ_gK0Vs?CYl1|B zoeT0>M54F=8!`rw?szD`VA51Y@i9V&1so;aP@nVy154B~tS!z0s1taGzl4?`Bcwo! zEQ*v^I%eg=h003cAdAI|K{XLQLs=0G9E42c3^a}n4Z>$V5QJ&uW6+zJC*W10F@i_| zAs$;t46aRR04dt!=7h=>PYuXX)|~QkBGXn?#>3qi4i-?ND%3iWR#;VRPb;c81dFg0 zkgVugP}Ib42|bIbgoxxSMk#3+Ac|rPi7adtjzO+35VPXW(8EZ1G`MBJ!XCKv#fyo@ z%0ny8LX=YWCmL1j9fu(ZCiE$e5H>Qg1=*}*2DpK=4M|K~L;7&_qL^%=|(3A&<|n1*{xm3~m515b1lsQ_zr%5yp*TP;f7E%rF2%|AeN%!IEuDTR1nx zmU#kzO@kk>X+R~2!jPpakPj);`Wgjv10iM{t^l5}jKrGv!zLd)l9oV`aw>{jw$cK) zGY15%hckgXGWmYcJ=r}pBGLku0HHyoR9P6`#37U)fd=QUWPW(8lEt8CNK+!*;c^m& zLbfBbi4kH*(7)vX40xiHL{woGw|u*}&Qo}nbocoCzJ2#RX3uR*wAP%)d-FU6Fe z1YZ-`G+kPpYOAvdq$HXetO8-yv<_qv5fcFr(QE_j)jAX62ZZ58`T#1`Q>Fgl*q%}_ z)p>P@4k7^lV}Sz4P-S{>wuJb{B#9=BeKkQXfFuFHb0N5eQ;paJo(Qwr9^r{kVj71M zq+zA*;Y0%ghGr#F2%b063iUIYW|5Qd1`ADqt|^K@PD1sdC-P2`v+5iB1V~~(k3$FB z!&6Ky$%<@_kSN2E$l*HRHVT0jbC;W^L<(9Z3DF}(LLirsfn&`en`x2NaA`<`I3mX8 zv5z2i$!eia%UY$~iyFX?ta`wpI1u^~%7)%RB!Ty_E-ak9$?B4Z{ThU5jPqO2i#`+&zNI2Yi@ButzR1i(a& zGzZ$^)L?MZ0``tnHe6Y(gXfZ~c1MA4MHot}2lZN$YWV_-LPqK^h1ziy9LsQ^|FS2V zEGz|BDSn_W$W{#^H3On}03I+20s!710LTF!s?sP0>t0wcuqo`R3Ynop!UvOGpax)s8kQ_)6Jul@2rfbg_AO|F{v&0f)^V;eG-2e> zhQ%_Wzl@Ku*RBXgj&0LwpuC2tQozFUCY0RGWh?YUAcBoAU12DK5J(xWH^@vySAdp{ zQiie5mm8HA=v0Wfw9 z(^d_h;J^w}J>al~B;~L!WV?b@_A{CdCx< zlcQtYy^(exZP_=EI09fiCP<(hwg>N>j1gQ>1_iBJ<`V}TfJz8unISmvL}P_u6;wik z$r1odkXnG8wWwrEPmp39HRP(2bc!dKln#nzV|BNP#*T4X_vF>VIaovN8AQN=f!-C8 zh0`O&e(+2XgVO@+4zE+71}H%}Qf<15(v7g7)Pz_MImyO2Jf^a4aPmc3fayvUW51g1 zaqa}w5aS9Nvdf9#2}6NYunm@_$V?Fd1&Wwqdm>F1PxvA36m?j6Hw+9EMy^#e6paiv zm=GgkaqvPkO8>OVIWT36AOet-o2oyoWA>|FDMbH@-zw9Wctcf;NDv0AQ04=A1m_Dg zAi@?D%zn7-!)3`c2bflnvdj;di}+t)pJ5~r=_;i*A;FP3JgYg69SANw@(4ioK9Jk;65m%cErK!#gK%a&YEz`$aH`$5+)x0k$Hf7QZS@; zK4`)c42pEF0q86$5~T{h9>vYX8-#5{zyMm~JR>5@#9|f7$F`YT#1OIq5(=>!&;VzE zS`;5cnH1W950H=w=)$w#21jXxeN7 z3x~6eV?BzJ;hQBU;SS-zp*~6q^NSQ{m}mt{V6PCNtO*y4AQYQ9(hZat3;;Nh1!8q^ z0W;L=Y3NGl@Tjo~C|Rm=obw=EC_@s~m!JY$AjpM6CXkU$;4!#_pc5o6Q)AU=u-l;+ z5j>zAB?X!cOO#hooD2ttgD?OZW7504VFKNRfFq)W2bU9+;*28)4szp?z*A8ouxcrV zxOxQ$PN{Tb+u4G>Ov<2=j2?hhVYiqdj@s({MG+1U;1k0z%cTSC1F-@`H=aUcC6~h( z**j-aI6Qb0rVN-=qEH>^g62Z`!&hE7a8NGW1Ah_#FlTHJ1LkCd_aGD4kVS;!GXxej zIdFi?d4mqYF5&x@WeDX#GL>Sj_K~3xvjz{`un%sC$nccF!@A`(!BS;ASdl^pkb2g# zEDG8eoa0muVTO^7r{FsRGu|B{AnM!_s7T}{%_!D{Pn0l2?vQEIrAAz09>^&f)3}0L zg>nbDl@vfBGC>%8h}8ce?_QGS%55l$PRS~TrP6?^SK*%L@3jw@dL2)|VKp8E5MSeKA`k6JlPe;(=_sC! zsvmb4X5uNvW1CfT8&0(Z3EOCk?ah|MESpz3)K|V8Znv~nRf1^Awc-2p`OVOZwe}M5 zpN;pH+RC_1pN83Zd?7e-m1o*a#=G8DEGQFol55@Vx$_t5wMGG;cT}rQD78GJssi5n zs@ndeI^bv4Fk%YX!Y8R19Ja(5?N?0;q^rcaFdW$V3Z_N!%q}a8Nf)Py{$l+c`)WXa zp6(m0##CMWE)Qsh3E(PL1mkdx%&t&<;G$A;NiwZ2plw<`55@d}%*=NF((Y&I+_!4m z|5WXFV@mk3;cmscDtal2})Hqt~ zo=3Qckfs;g5F?+rp%!mBd>8Kx+p3S3vDSXK|Luy-%XKNJmKL5{rR&a-i3V&#W_qcJ z+Tz@gjlW_a>}YhL)ru=qfxv3V5*IMe26ix0pf2%NxHz0*RtxPf$FXa#Je=gjU)5Vh z<>hDH%G^tpS#o!qO!my?(XPw5q>5DuvsM)*;RC2iSrNZ7?`TDR*ISE5slw*I`1OoB zw4F`$YC)Vv{jN;M##MzG``lV}6tShY3NvlK>D0zbvgt1-u9sY^$DASl!%VTz#^V}D z=o@)0fK`sls3QU=cehQNNfuQ!jh5UsuvO@1hinuy;JbcuD)tbqMJ%$8?bma7zSX$h zO4Qv#t&)4+IWj{oykG+xOpmv~nSvze%B0(jK5TC)(ENNy0T+}KcdXW$;-az#sx8D! zsuinnX8hPzv8AF$jCTE@h41mMFg%_4M?$H)2~aO&RtwL{`l6XmGS*J^qmo%soQbOZ zbDi^iMB%of7oBepwxXC@n1||0#-E-6e4pyUOh0oS5@NQ8xB!5$5EWOfTH+4B-Rs>= zd-ux9UW~dpF%<%iRWaA&{KAWdbR=?B@QLGC+>q&=Gxx=!&TX`S--g)Eab5Yws20C! zvS4JF7MSa!`m)|x0#UlaJ16)HE0%SCp7SfcP7r^&Qe3dY;94n++K7bdFZ6V8ms|gn zWQ|)7AR#p(8>_re8}G5EN%7{aduPoL%`$UKq}5H>B1T3>EvGUzHS)8=bZBPf7u|H~ zYGuavus3kidB>}W^vs5v8RH^E4nI?-L*Ew9Y z&Z>}>7Eq0DY2$LtTeBor?RlFtn!Q&wPGYWqdUipX*4GbI_K7QY=zbH z){@ql6>`t*a<4DY86~AgoNJUXu^_WgpRTdT7 z2j&M?U;*Nq-eGUeVV-@{o(2dv})$fO~%iv zRYZv{rWH(@5tbXSYqp zMxm7mi=g5PYvUFvN1@g-ny#YPq0hmxWNhF8GvFo+lR=dtB-r=?#=a-m1qie8MVfDw zHM49O*u2pItI~k$X?H=BPf1w!#U^u`b)9?ur~Xp~+O9IU36J&y1M6}fg;mhqwza{U zhjrH{in~;LS1QJT(}Baa%IQk^nqw!ShFViX*D_a@MW69)DdrZ=-V2*C9%X(I^}MaQ zD`tbS-~4ZjwzBMnE-|mmYSk1|VC@p;k(s-u;R5Ie^C))>#?*9+ z@w`8wgRNR`cDoo}Cz~~hjm!A<77tea$g6L$vmv0&E4)@+V`;Q1&lF$Hz$%h;qc$_; zCylo+&*<2`&qBJqZK}HOzbf3)1lvm7ni=1|b;Rr2#+wV96!Xj!T}YbxRHMqPz4>1um5;g9byJ^COw7FaEv{v<&+A7O(Rn`AqkeWqJ zwWncm53cvEf3M{hc1l6o^`308E324}e-m9Kc3>ls$Cx59+q#xL<0#FHRn|@(y1<>e zioU$FTDWxv-r2Xm*sY5j0!~gQ)2xEep+RMLIFOY0#@qc7mYMe!H&yoS%I&x_tvmC9 zxwh7s4Ixf>MKa$F+-5?bAk>VpLb#z&v%K}n+L{#82rIf6QWvrETw>FRPPA z%_io7485!Kz?>#v1NgS0Ms7vo*c@0dy2ze_v@#1RY_y1g4ZEnb(=HfCdlkyv&K7fg zg*FLQX?n^7)!iM=@F&;Cyqfd@+47>Qz+tsOuKk2mlNSHA9)#v$}0vC!Rug;6SRS=jv zV|P#J9a2v?qybmocwLh zS;`7-bS;oKjUzCUU3!+ZiqW;y2+ylQqsgkf01InCW&>N62U3w_hR zajfiXg4Tm-_WK|0ipXJPb9rgW5(H zBiav<-%e`NK~CG$vZriw?;70(0IJw~*DraFy*a2#l6)Ts0N?)e0(tPoxOJ8jdWWmt z+SM3sLuaWAVh^qW&Ppnl{Cg4O`p|ZbstZ|hu-d-U(-GM)ADqWkXk^T0<2qAu&eMHi zm9FxYY>LAs{5gM8DBz@s$c);kz|Ffk=TtoCgj%S^eU})lXtTj`uxb#ZK6nAgu3gu7 zj8I59pRpAOT_s$QsrDZ2UgSnA>$UNC#Y#P+7-y-O9uCM>V!ayN81B(JXC!*r9& z2Bv0h5UTLIb*dZBrOa~a7QQT${cIEAB37?xCUwi`{CX2k69JDR3t1q{dT_12x zJCR~#3Ul8xAn;5E1e+S3TNM3oRuP2CRXD@?l4#V=wZeo5FxanEzJoJ-Xp*uplUdENIx8Q=_{ zOtzepsH_L)KkT;8)!mF8)t}bvK9QIn2UMIHc_)r_UkQMgT(n( zu@2LxgRBX4oK};Xm1+hPbZc)lwy=tLGL@nm8;1^xA{H^Yb@hcQ&nFWn+4GM=zgZtE zO=i?B6^vcWSzS|5az>xS(N(53j5jT3{9FJc=R)X~^U2KN=ia=JjZjb#yTo{9xs}4m zUiCd^&*uh|q1$&WxIU6uYU81|%INu(TdXxR+f6BH;Ht#8FZJ~;j56ZckLvN&%7BS$jl<;QCl&0 z{w8_#Voj(k3dF37in`Ce5GbfDuLbnEs=k%~Hc#jMia}<3yQW&8H}Y#It1h$ax2sdT zj4_KL2c1(#E%=7G4T;1~q^gb!;G6L_x#@57UhMx~%dcCCdTqWnId4hjcdZB_LqwRm zZ_U{i{O13S1S9R7L6bX8y2m_QPH#3jb67aFNJBMUtU>cs@-)@u8sFI|Dz%u*1x{7o&I~QaTS>W}sTSdB_Tj`gBRg+i zr`3WhYBvGb11?Ca=r3^AmS7t1Qm&3$I|*{nBU7l%bVVK8^Esmsj-dlvU3*qqlnd&0p@&;nK$J>mYQtd}{1R@H`J$Ccy?MXvt} zo394DHX0a%e{DJgXVqA8Nz3wcLhSWjaBuV5Zx!tY7gt&4VK8RgW#ws?r`PA{*>gV%IU? z#!BkI?O~1WJ4x~UW{a~4d39~L#AZHTNxC>(x=Y>lR_oNA?(ixivr;w(bvdraw^!OU z?kJ(=w27N6XTF(aV%!2|eJ!`!kMS_{;P$~?sbeRB>!N&?tGgXPa#wb@*b2U}Pz%N@ zEMMCwF+D)dZ_9TJ!FhFt^?6GIm-SC)fz{<*2yU0QE@N)KAiF42R0Y&q@zz^SB{t}hvkS)v0g1omybxs@0)ucj@~99Wk(Q`CXleyUD_J8R@q4`Uf$buC2J8=uRkC`e2&vB32*0zhC!pL=~Am z&K$pN(9l-b8!{UOtX{WQzN%V_E)c52h0#|PnkvJr+2m>LI%(hF$|S*cHiVUE$FS~V zKE3*_HFJol92lWws3o zY=2;zRj22?)+38l$kR9OS())uMVX9NG45@I>M;p0CZCd)NHf@$NUPR)9o(NP+Xal9 zTJ7pbelL6TGd6bBPMy-~-=K38eY+Q9HkIb(ZIv=wea-J!)!tl+c+-QKHflY36=pfy zdQulpr&(UM8T6|DJydY_Ce82E%SDUz2CMLnW#c`KyZ+!p$2y0|KsxAB6(>c0L;ED~WD82$OceLQJH;hbwF+`3_llNjG* zyHUGvk4{lHu#ea}+uh>HX}xe>e3DkummjfWwqTLWY66M|GxStnyVG`>GSitqZ+4$GiYmljeP?} zgle$^HJMKYmy|vsxIyc0@arJ0=UtJl) zP!%aXD6&)sDj=wPJT4c``LxN# z3^m8aN=B~oqFIJ=$Cg)LWNoROfh0c@Je49*qVQsS&DF*-UcNBZcwA)i& zYvo4Fh%G6wuRvW{>l8wli8gFQYy8?pKqO5DpgKg`Zq`<_v1~=#KGf)3DVVrMyQ?gG zlk4~91#*ASD0f!iGC+dF534?lwess==60#60q$!wue&+jt5CeuD$My1B%A$whiU8*||qSml4(-AQTG+l>MmyJ3^@ zC`^qz{4$ZRM2l+X2@u)5kUAG00jAVyACa~&(o6?si7LWgmi~v%igqOTfZSfR<>W}3 zsE{DYgszaT9P@TG%Vr5|Ycnf+if*iPSTBa)-gNy*2drRrY6MtYwnB(vRj|)19ljeA z>0g)CesP=!WKX+U-auP>a%CH81wA5C7j+(6$<@N0)A5ScUY-K8T%)K5@PoGW7Z9wU z=?E;~FwNDlB-K8GHxjP`a*U6|fcmNy(K32X*xOvc>f{jAT;|D2b^CKGZ5<(}vC6rC zoyN!|e^o5T8vVt0ncI3~WGygae$Jw{+Lb{Mx>9F*KOdOLn>4NR+XZ_iL0UDlx;&rm z4n>}see1U}FJ`L|=Rolt2!m}BkXJ>D%2ch~`?^WDz3TUVA%KNltvJ&*Y1KQ?GzKfK znYT<1N~7T^HfvCDyIXiCnQ7+wiTVH)q!aVlbIR!potrAp2vOy&Tz^sW`|OH*nkhuO6|b{~S?M z)I8z7BvmW&*y;nu33*)DbwUeu)GUKp1UG+7!$lGjZdH$;Hi|K31+eA5~ zt+{pCiY+#fFc)eh+K)cx>aO+~cXJjyqo_JwKKr# zgtoJ5Hx^t-!06mA*!Fw1W34~&4~N!~)OOvAv(Y@%G)7kwNlm=mm)eb~V~M z7d8$1l9Z~F=C35paE(C_mD?!*?66B9z~9N<`Dg7oX=``WXiTqrWC>pj%lU>5N|(~K zCWSzruWIp^l~Rs=xtG!c>ssK_7t>TnNKJ75F1jcL@H$t+U@k_5zq)HSr1L7xIJ=5@ zeT!W z3K0aZU78Q-aN}B4FCywnTJrb0$={mbmIxCF4jZK$Oi_>-Snb}87=LAp^Hz)VpgFtr z`WxlWRs4;2*C6~&^VT_k)42mVeTK zSxfU>)W6ePf64P#N&F?vnG<3DlI1T^{*t6C%^d@zg}p=)!-x;CI8bi@NDUCH*VGOH zB!QJvHd0cL{Xkb6;E7bEw_yn@{B08{(>M`;@(YT3~4hV7p7O^MxDPTav1son`FXM7s;W zdtwV^8wTYniNW0;b+Kh=j~#aVXYau+U}Z#Hu}$hb#Sjd}1xr(au7I)y)M0?h0Y(Q1 z3J?`IVYmL>$4cL8O5mjIAmrUz15V1V!aH{*<(agjwResQoGpt$!p@fM(O@T~RS$cs zb>M6{C+GrbB2*`(i3Z6zI-5Y|!0&F>&T4l@VOLMIam_P#!{4gRyxZSKm%mlGgV>jsT+>DBh$koh~_#*{uY-gyo?ca)-B{;mtHTWtF&WqMoBbh7cb!rdm&-|20> z^8fKR+WdcdH&bl{+-Bl`<*(Ik(M3l+H7u+a6}47!F`cb|_Y^`XsGM3958(s%MvHk0%>>#PVH`b zGq>&^I6GTa+4V3iUzP>Z z4lHp$@7KkKC2p-04_IZH3==J45vAZ_BtkxiH6Os54}cl(sJuc8;vA?G!|Iz{>V&D6 zoTfm-6u1i6q9z!ZfhsGtj>;+#TVmIKtHEsrU@dBampH!rp&LRbQ}lBrSG)F(haKPI z7UFeBa@|IVA(91>0+X`$)b)^=bl>5G9c3M3tV((7Iq({KF}#i>%G(vHz-#Di(83u8BpOH&kTCJnL~Gh%_mRRPV#!Fd+83 z!61yVZYB^`QQr5c?z>S!Z0qta(=TtA>2>a@b(ouIA(6~AZ)U_zgur@@Q^53DXR{L+ zHXosrU3~i94)_7W>WP=QovOqQ#&^VdN2NMs1q0G2IzH@9i(E0uq`PSn82erPLz#Bq z_*N6JF)Z#^Z@V6K{c=aaI@V2D8!>gWvEO&(9Gj%UR``MSkUi+p!8XU~XP3C)PT#P( zdiA=))~$87v=@yzP)Bx%l+{kUDyCT`?T#|Ww~%Ccm$*R;t3*Q01NWW|Lk%GBz~%?o ztX_1tys6zb05)?ap7zaLX16dPJ56q>wQ)}okZ2qCVGGyQ^|SLXQ|j#PTAH~cF^{DW z*d(==aZI9$?$v{XgkRs!u3NaocfusmX1CR#8A}K~ddAfe)cCY9_l&~m) zk-SHnSG&4?8g%vw4aBFsL8V2^oNd)T7B4mwy@q`*mgskbo-lS#H-lRrs z*uetTkp;YZ0ICNwN9I}lhUull*6L!U%bO?V!p+0B7{RI>i)=Lps{&vXZFalF=@Y0N zb_>VcHIz5d7IlN2cCT2DZ{VIq8>bU}JrGtOupCV09i+OHJ(9c3CTbJA;hJ_>l(5RCRekls2F>01zbyb(Gs(hGh$oWxyz}&J<`2w~`9047=WG)Mk9wUk6r8 z5)WJT$V-?J{Xh(cVkH7H!Z1%QY$Ur+ZN_LLVC=6;8SSYR10J~f*|In6u5laR71Q$i zK_Ek|7N*aE+Zgtgw0Yqr zR!j?IlorUO+=YDe!iwS;X(S7%nGj~Y#1sK3a$27e@?PSEEdo~FVVflc`C_nKW(&ZG zM!!VEw<(op*Ic8WvqiXKBV6Q8p@j%GhcGP?+%Y)XyS!#Wp^SP6(2^*MP)i3=1h7-k zzPTW9SQB%R{MgZ?w!2yb&7QE$JwSGHUZQmPQr?|!1LHHlrqB4v2wr~`V&bcM?sHBK z0nhJK>=G9sl(=ac80Bm!v8uyB7|J^yUYw}J<=y?Odl!S`e1rvNBROHKa*C??`#K|V zj_?gNq7@~Enjbd48)GQdM0VEsV3Trpa=Zo`-)^ayrRF!9(Z{|>g(+yg4k*#IU7>IG z4y4Z{zQpsYVJ|U7CadM`)}4@d7GFH+d|YFG?HWA$iXlt4LJ4{rSTi(?I^VV^6uM`I$f14@qtk;3?y;&X&h8b zNGgiNW53yZaiM0+IwlYakexunm^tixJlH7j@}IS4dHaHCzEg^Ts=$4k%bSNHAXY6& z%ueoAWjDn}a+kiXy<6sCBe`*8)=t>xsQsqAd$_Eo&pX@UX_N7UEwCJxEuNSkSo8b- z;lnB>EYW7@_<-{6fET!p=)3B;;Elwiyw%>!Q1xIKyAD2VWxr$I7%C=Vr)cG4Up0X} zBkmpA+=V7)ONXkVExSP#^o*6AaDH)N&4I_%?Mbce}8ph ztG2|;TdzZzK1)cVd6+f02|ALyiO@V%kYy!NW=d}r39+1^QYDHEb z$ZA-84*L&`T_kkaZZYN%tDf9mQUa`Q;Tu>3*o z^KDwVmbc(=n05%T6PPP)0ZRjKMlS%iQo>5)!5x?jE*hU`&)k!FE(b6Tnl|n311F{5 zMjL1YY<`|v2Ux0{XH-7}YH6YFdH%ro?u!qw8i)53rQu%L9o9$Eb^ZgDU1DnQ+cplH zS9T9BA`v`^MARfcASpm)2hyO*<+TquZ0ibdnas8Wby{E~yTS`Qr~7<2TNBk|WNrmw zZQVu~@Dgtuaq+IZAy=My38)uf(~JT=DRm9Y-$}V$|IRaGxV+8Yggug3wtLAc{8m`U z&`I&$cHk5_96D?aH;LOxCdFJ8CEqg3fXXg0eXs)?+OXK=jpUqJ5wS_xnT)mg7VoeO~qxHfpZHb zp4Hw4j^WC8%L|67y*u1w9?4b<0ldd>imnXiHBwB_1A1oIMh>u{4OB0!O9PuS&Cp4vn#TJbB&DqWCBaPN;WDdY)2XD<6MCI z`jFbG48VjLzcAss6nXMrpXl=8fuy|e07x9=MZwHfW8im1vSScn8@OI>m$=IYt^K3C z$i@9YjJ1CS12O`r(7^cI?h3nbwPW_obwg~5?*6FnRvpQzPJbTB-T9L@eS0E}Z>xpA zK1Ju^czZQ{*XQNM?rKG4=SW0pSDgmn64wBx=8SL~U?k@B!?M}~lS|xs)UU)Z@w|j> zVvwve+!?e0-fc8*k3eQtBdO-GXCQFcig_o}5^pbRl^e;rzPzJcEx~5eZ6jbuxkh!_ zdnK|G#eRDP@vBHgU`rG?PMDiql@F*U1lBHZ?Jh`r*d}V&Q7$z79x`IM#7!(FhDo`p z*|pKiXVN(Ew!lYn9-vErGwFhoD2JUt=(3@|<~PoV?xT@X8;FFs=?5?w3N^{~LcNoegIpOVD~WQ38HovK1jl=wjU zZdX_0MBfLRsEECI%D{{_>&IsU7auT^oe;t1sov%;EPWV`a&}rfUgCjVa3t;HqO3%M zVwsD*#QU8R6dRku1{G6SDiU60QanUSiu=AxypMzlUY7@CJP;p{25U`axW~Cd%u{4= zRFU@;O<50hTZzDZaj+20ed#_mlGmBO~%06*`xZ+5i$a-M7kUZ+!f^^(=-B zyM@SxmOhl5>o8p2hCM!NlQIprR(V@+iO>JsJdgeKZE(@R>i8~kVM*BWoxgjhwie%! z?8YoVa??GJIDI;~DgfpM0S`+wtkMD*?`mL$1`gZ!yN^!W-Ch9Yd}w#dN4c?*BRDBG z39;Y4-)<+9oO#TMy}FmTMM~Zh?`ygaLZq8+yYnnh#X1 zx@9C5>!k2vsHd6(28sVG22L76^z2R2kBPWweq zZ^z9+8XrF?eTp7~cv+RjwM-@~nXuFXm$zcVj$s;5RwALGk(?9jJ=0-Z4DTy<)|l0V zXGIge`&klC=GDBs>D!%7c^477^FfqTbT>Xco|~P!*OllMb-hWX%TGTrg5k_C1yZ!PB2cbB*(_BQ`0 z&xhJQwivPuc$Bl{LZdvf8F3eIXn0ti4|aU#1nst*#Ld(4GS{QI7+g6{CQyY)%n0C- zBt>4@B_5bRC)!ilt@W`3QSt-QF7g|@_chBiV#BW8@9QUFBe~6s#IfHOI233Mcil)F z3njs=SWQG^hEWu@yhT%*#~2v6#4Xw|qD^(jw-JyJrR)Kv&6S$WJ7s|_Z;PnB`54B* zWS#>dj&UT5Kp{~RQO=~j_~VH!0_6?G^6n+2qu|5l(_F|S_e^O683Ck7Nh&Q6!>w(B z%6Czbe75lkirjOVj%=ri)V?|955pmWiUm}7QvoK%x$SP8D>1E z^{~brKQ2EflBCExuwr7UL=rO>}1xz$h@kBl21CpuZhH+uTXpP+@vBY~X3ClA6 z=}7K9vZ*6sUPYuG7`F2QJETd0R6ZbKrnZXW;;_UzE(3FKiRNG~4gnD63m4C?olgkE zSK?95sdE!-Qtrzp2H1qHgGBlAmUy!~(T`mj=-WbmPvS54TaYjw$<{41 z!AY4bgzxgUB{#g!&cz{UP$3-Qc}rqasJ&J&heW_BEWK*J{^Gp3B>=!CT;mqyoXW$-?d!1J?xxUN0O6JVOZf#4E zt$5l2BOnlibL&V<$%icjAW#*h#LJs&B8*f~2ntdjY~Be}Iu__u;N=b0^cSS4``o00`MH!Of^ z7v&i449Njzlw9W$fkbnb6V{KH9H@Mp<&j)n+gFU_4&0;-yN!&BAK(2@gS@fduOahj zA2t$S<4N=dX@P1TH-NGABN*QPxwZF)#0REq;XSud{1WPa)>JfkOmh)51c1_Z{!78BjL(aOPrV3 zC603QXL*n0U#%zzn>m(r#6V#43xTW8WB~??i8)!=A7Q9%be8Cbu&1iw|4Z_i?KzfwTiL0F?nq zpJ-x<&SzuSyJK)Nci3h(N24(~!;1l!%sZICkb&4M1HOk%^c_B6IALosBqwD%AbHh< zO3FZr4qHF-m6}mL18+`-R6cpr=S&tR4wza_Z|wZ<%muO&NHh=wFv`2Xzr9aE!|EZCJcfs@48qUHmv+IP zFkzvjn7JYWF7f>0MUJ9O-$jQ4W3YUeC=7NWeL_Z~ypJx)8@7+7@Tcdf-Vq|N^Sttf z$NSbqb{fQKCo-Ate;k;9#!1O)dD#i19myqbV*)$&Ift++3*Qr#28r3}InVgEvE&JF zXTcxOTws*DV*s1KYCK)u{H%6*QQoH-Txbf@Zz8eARXwn@!!B_$b&8DF8`2It%5%N1 zU>Hu=%6AK9!m^s7%QH(3n|sHtpOjtFcCT%928`s+(gh&KzK8&~cpe~!cO<*p&*wh3 zeDM|}SCsoEzGJr)MbII&+x*8+wE~l}r&{qHw#|!k#aXsfvHbX?IGL*o#6D|3k)TRs zHN3oS`|k9v#HSVHeRUF-5RP zQo$rvTE|+MD^mYJij?w!673(N6veMZ7VRZ2Zqha)eXdK4WPw9_gmpfv#7i9C{S>Uk zvEQdB%;-~eyG?nO)`iIov>YWGNQ$nT@xG1|yG=zU0>*GVAzop^+~^#`RR}Cf`;HPt zR;m{u(ZKRoZq7rY%a0hj;*>X3|$(+9X9;bWDIs=9+!u^2QVJGG6 zyu&zB(#O4z9mrguqWJPh8gd;EWG5_P^3vcM6WA=fottCm@!e;b`c!^W?tO{jF{`gW8%WDrquwX{P|jZhs%wc=h}}*yeV9HY z98aVjNHma?K2(2TdA4qcjf86*W{e+L;%!MyyJNU(;TJ{`mft1~7{hI-U>WZ?YbM+qf0w?WFciQ+eBLG3BJpTa$R$ z8V9yw-d0waAq=Rr-ZxZr0^3Wx7=++dWp}yw5^ra-uQW)UE#lPKf+TZIJ)^vH3Ru-6 z_FaXTkEUpIBy6)3lIl#}*ssnAo6L({Ai2DCKEh7l>Y5RUt)sBz%-xjWkfgE$({ML> zVKai?E6-~v{>Bbt=n*$$9@kHQBL#%1@TS8eaahO#^=``n4PzMq;Hnp zsgCVVoz`R%gG)q7vF9DOKzWHVnC%k=OD&M`xB3DtrX`N#!uyt$O2oAp!yWaIeApUC z-lXh%9-YG^1xU($lceoVB#yze40w5$xYk56zFl~ZBn_PAG2E4;i`Ur^ZJTtw{94H+@cAVWyW7T~H~}r#ez(CpDlihh6oEv!=*S>hd-^Bt9%#cTcE9% zjOQ1mJ)mCve@lpf*%I&fjf8#1?(twGYZc(OUi(mv4m=0sX1B1ZT_1#<_VtPQX2e~i zbcJcyo&Dpxye*jb4akJe&O5d5+k_c$D;`^>XrE;+ab?&DXh)=WZFjbgT|^0Xo2I)q zAu)EKf;s(-op<@LYS-!SFwa)P?hdFqJv&`;%Q6r9A~BgKOk!%yze~J3Otw2?Sg*5} zx&6^yiiJ(e0u$|Xs`&;$-avq=wa}0O&)CJq=yVr@_^2649bGxwemz-Hj)c@=&>^e&%? zx~0c8{`9=3i-!({HJgT#$V z9|EmJK&1szqIda8k}CQuHw_w!&*|OTtf`AK_Gc*g|=B z1C!$EgGyE_4U#}4E>|gZAPxNgv;)iIP=xJ*XG?$P-XmsUe&D@VE-_mqPV|DPB~ITa z{je$8d}JNDlbikYnB`<%lbB}gx^+gtVz(Q}me%(Jmsih71k|(FJFP4h$wBJb)z7^#zm21;s z_fV28LnD$6SI5-0jz@cPzH+U+S)d%vpL)}qSt zdTxpPW{keK(u%0oCxFWCl20wI^JJNhb$QztA(`l#AYhqmo-fg46FYE;W003HAUowH zjPH~!P8h~__x@~9(kE~13+qQR_QgcYJBCwx&z4<6JDKYYu*zrGa^N(~gKN7o1Fx3u zmp+{vZGHigVndTYShm2bR#?Kg@o5K;sFnDD7WM$qUB6T?yOyo?VihREULq;5Eku9{ zDUVEGP8TpK+u=tUgYRrVkT6&zb~FqGw%!5>lb9l440mhSO3pw@TllyIlX9*K4?v;i z%@5%#jPI^7OPr#8Y(4hNn~x}O+VAEuzNvk$f^UKLm@1Qi^yTdhY^UHPIkiAix;}H@ zNVZY5lB;=nb2(s_H`g1(L~pFLYspSW&lS^|bNYbTB}VCVI^%&9StkzLstsG>ZL2hO zdFGDz1m7~y4&#Ajx&ab{XEdWcf5M((d3W8Kr#8a^?!R9mzThDTmE6cc)I#9V+nQreOmQ zmrSQ+-&4vzH}c7V(-tSAxZdFv4jUl_{*3LVL#B&9^!1MJi^l{UZ#9`!<9BGiX1 zwt46L^6EXnmdLvp06QagTOg9jJkJ<5wL4qLe;jsELLXq8hFw1^Z$|9g9oFb5al-Cq zhQy4wyjNO|akc=FSePr3w*_I&b`sX-fe%X^F(+(Ka5?^_DAyxw(Hn{D zSsaQfy09>xW9-kQMHexwuJJAJg3CD~6E=5?u*234eD9hH$TA?S1zpqbMEJ06wghCW zI-puYGQR7y5;Gn+zV%(~qr7jJ8H@=t7~_LQ38WT?9Y})^UIudHk8-VvZehXynB3i4&GMb zDVogpTRD4Y)CM3ayo&P7+Lav^1FWK0xe^Vl3_xuQj8E?k)9VLTXTsK_)E$;M2U6l> z-sLyZ>xtey6mI?c5-^!tH%pw_-IVXxXbktf+ST0UEjrBQKhgVy7VNekJE4cI&m);h zJD)6ZrM(+!u**A>?j3hO%*c4(RjP5kXBx)uIxGfzgv#yi+YY1wh{Q}8ACU1t`hYC+A~t=- zElb%}Ic3`5fUYzZW?x^f({MhjuZhb_be2f%>3e-wrA+54LsF1z7sZBigRuZ82KTU|S6V8j#dfB|c#z zx!|UAkx0ZyN(59vGjlQ>(8t$PoCC36;035T%8L(nd1JShDyGEw1@hDqY#~dS^1-T* zNKW*eg?o|K=3v4^_>`Ssy!vG1sS5-SQUna=)4;udh&xp&4$Qp~XFyCd2*9FuZqQLxPA zf=$>RSGkLJ*otEFGWNUNU=Nda2m6Wc_nZTw=m#p1Bc%gxS1|XE+mjTOiMGgOgfcJj zx-gO@J`eufP(DTsK>FN;NwjUpVRLlJsyV!3$Oz6;20AHEn48iuP>>W?Q7>^;yU=mi zni1uZv{FWS!nV1Sca-PW-{l(`Dm%5yyE`K$r19M?5r;a}u7`IS$SuegSbTPKhn-u0 zH`_RJvE$1Kl$nI@5*J;Djr|Tf94b_U7*6JS_xFN_J8|qyzesKyaT^sU8^^a@xucM0 z;8D)^<|Ceg>mm9{BzB$2gCNJhEo*ZIa4VM52Cb40RjZVq|XYE(?a;#pxMS$GPzx)!&-#5uYWYfY5L zzKY~tr`FF_pRk56lI=7k&ayo*vhQ9SxxSec&S>>=pN$A)r^HHxWHPsam6$%`JYg=+ z#OFvi5;24f1R?=m;*reU`%b&O6`G?nl6#}T`^j916Mf&ykvR5U4J|K|fUE{8CUAT! zri-GN_yXmt9#=I-vfsDhE{{@wP7yyj4X}*YXJgkhmUxFs?uw*Ol<9$l!A5eUL)>%1 z_M;_y)AbNwl=qw*Hqi?xB3XZtSX~3v8Bg_r>cy|xWRle-5=T7`ORdC2JHH#aw@jiq z%e$Lx_rZrqUSir^9<2uNs1{gPM49ozH)+2RO&|t|X$O)5R0U??~6QI_l z7GFSVfo4o$?COj++VTm^<kD#POY@ z_1_~o7Bd3za& znJd(lOp&Vt=SS|yuEb-%$n*UO6Ta$Gz&itxoRkY=-z$il!Sv3l1uC>CS{mHE%NE{G zR@<(m!Saw4-K8q9=8xg7;N>+~f}&HXjT&lKHKX5Ej7hHpP|~+uM=M zk?(>plkzbq<>qUN4^uv~{QLs0CIex|aDf7eiXw5bE_sR)L%@uu41u%*DFTvdQcM^u z19_aoOvho{?FPoac`0l%H)p|){ovZ#Y>ShkVsrDtj>UJ0WwftqJb#Y zM|t<5gRn@vSBlR$Txx+TQkA8s^Voq#Dr}-9CX-ixV9{P%wPTn!%A=ah3pv~3jq=uM zJFh9as5ERw+&;jU6eeZMC)aP$wA+C9;HzTZPYMGoG&dwgKm`M`6Ga+FWX)SlmSHwBY9MfWuwiVmCcHd2#vr{ny=%5FHM7D(o8 z)x$1t+9hU^#Mps{RX%x-z2@LK9+)%a=3fThn;qa}-U9?*O_;FV{EH+zB|b1ILW3n< zEjd4*+Fdi|c&>YEqG{Mi+9aO)dToScWjLRmt2xT8TsfZ0+Zq6yTJv>@K-x{lG2A51 z)jZ$SB2wZN45)3r^~q}2Z4MmYd4PP($-HR>$z-0d2&?MM?9~J*Q+rRO&HCl>Khx*f zF-0yfR^>qT0;CU!&y~a_?)4IEGZBzJhZrL{{~DGQeKwiqxD3=KQUqj+GxCIqO~>wn z%@QSF;wbk;>qsu~q;QHO(J2OIryB^_>8N$Wwua}TPVE_Zhk{(xwlqd>D?%7yhICZ` z)S8WY^^%*$B-6w^5B_6`d|Cy|o0Jz&h5&Y_hSfF4v2g?}kyBb8z_NT(`tm9dY@Oy@ zMk13*z!pV`Ns*WaAhq%yWx^yrZ06p(DtyDv{jvBfk;(Tc&)eo|L}Is`5yCH#m=@E= zojfpKgX!NqJ2&R%dFi)-JUX+To>?&4D5 zv0vV5!gbn_>`0RLv`vL@$SChVw8W8IT-Ybu4%-~!z)!(=Pn(wjCUsWMzgyzyNu;chJPW>yA+EIVOJ3v9Z-i%VhI38W9nffpP*FX(&*K6r%&CT#bG zZ3gE7I`l44pznbwBOO?LskdHXmK(rJhe#YhRFr#?4NL=&lzW+7UR5CRD7P?(Mvr|T z`f(z4p{uI`+lS@dMPZSogz4Rt{q76_=ds+!6=B)Q|A^1M&+N2D9oWon6EZ2cfXSM$ zTij4qA|zF$yh*u>6R=BMO(2<~yKup`IVtlFxg(Vin6P_xW;8|OGE*JXryi;a;1bv1 zuo!?uJ4H&0HSuAi+({Ep$G&QH%8~|o73_Xj5m>uRyu3B|-3zj?u3$iUrjqzfNU3#a zGIMpvC=vht$Kiwa6Q7V3%jZ^Dd!rwj6a6`_BKD@Y&j>&8WkUBq1tt{ zblBpNT!-{Yj2$+TYaD@vhh-Uc$Erki{Zf?EfTk2r4GfN(rH( z4;tZtCGJj!y}|Pfs+YV3QUVx&c@WnA5^uW$Y#P1bdsvk6lqfLlzLRHOIqcZ)%Xn68 zMp%C~mjmo<4NrUi^1yr)fopw2ENF`xu)Mp+=^L!+Gy6s&rjsIzx0(R9afd}>Z;%F< z$|~ZLBG+kEK}&h;z)0>blM$MM2Jw;HY2bb5U*crm8z^gACRxTNo*F~bK^>og(DB*uqii5J$wml5*PpkGeP{WP1oe|Z%YLt z080Zb_PY`gSmG^;uw!5OP-cq*jssg1kz|BB!6n{BVW7brR*8VL-<5zs`uNa^mN#&H zNuX_ccUH&s9!5o!_Z>2|I)?eC*20Zj03~dL>pseEh24IW6TG|?THnFTtNc?`kh^UFY$qlD z6^XkTv6~SRW}ruDi5oZ%!YhbGJ0L!Wl>x(JU*7H2T+FF@oDF5CFN9?0eL)3SJKST( z5-Y7wV;#fV9m9;cAKo%~M8Zo*!_6UKnJX{tyoBtu<}dNKdTywt))DR4E#ikw$}Lhn zfyag&eB2bB}67j(j?fPJ%IRvo-6$N;S>Ei)BFk$!3Ug9Wk8Fauu zVfU$G*ck5g5jJ7>YogZv_{>t7WUH1fKnyCkLh~xJ)3P#f`&)TOvO0rJ%7vM{{F#({ z(Bq2IL@(}5*t(l2cI@u;JPzy0-sO z+6Gh;4hO1FAX{#a5Ln(lrGm+`-j*1^U|DaA*sgro{E${(b_P^WU?hB;u={+EGj`hP z-gJ0}-B$Mz%4|#LA6LF(-fI7vtgLJP9G5ad1Qe^3(=%cUPb^h zSTw>oQE31YCNWCGVR<~{Fss|Z@mVf8GN{{ys}b<-C}CcrXalNE3zx037(Ma3gXvAS^y022(){CeB3b&kr2QM#p{b$vk*d>^-(~ zg(pf^T$19nBt_2ehMkiyTvx$dysegiwEGHOlsuL4_#X#W^CFMQ1Zn_zF<8k5=9QSN zZWrQ3a(O#!3xxgLXT*6%i3Ad&U#8rVSz0|FJg_a7Hc6e!a$~pU{OcKrLrmWk9Y|qq&flM>khP%;EikWMZ4Zu!ay-r};(R9s$-+|a&57DhQ z>Vfirgqf>UGBA(dBoziQiCvo_xn5BMX}B+hm`UbP``%-exS3mGq9rmSYPd~C zK*F5L#o#hh`h;tiw|nL0oN5A?Fl!+x3bGjis82YYS>pL+rui_Ze^s(sX4nq=nq}zg z6evF6VKo4(<~JGE(lExGEp95f&!X_BW006=pw={r$0u)zJGPft!2&6AK|2j5wMbk! zxQSt%0d|R7$+;2nIa^Prc;NDO-4wPy=$mU}-)H&wLi2io_Auy6fcg+aRzGC~^beaQ@mL?SQ>yxtVv;p zbo$J*RfvLBO8|Wa>gH6ScJl@vLy60~hX9jU>~X=5@AXu*Ca#7Az?|#YCTr=v{sDtpRZB^L-tPVX>Qi zvr}))B%y%#+^sFo`jch%@j76}1IxR^UrSw^re-53#w(mk^Ytu9*{4a4$u#VSPHYCZB|e!5hZRT%6*)#JuUb*4{T*Ep~4+*OTIRCi)iUKr(fW81$M*ybQ|-pgbLA*x91>M{;kb#9ZTZjdF<>z;J76*u}EN z4@ohD-HvM$1S~$FsnrZtGXk|=u8pG9iI%tZxlUBuUSa@4-3CeEb)rZNRr>Uv%{@9% zc>copi0)9VL&wxL}?bU3f!Q2pqkJj zW4Om5`4}_=%JV(S2V#encMYzxF3NDHjm`%n0TKqhIvaKoPJMp$vVLa0j6JY=*PMBGEj`4kuTiZ^pg001rlRn{rXLZ1r&@%qd=WSg)XrcP%oQmK? z2)C+U7o^}Sa7!b*R?2IArL6Ux2S);=m9G}&(60(4Bute>Y27*-RuM3HDxy&z*f@A= z_e~Q>mUnR^`^2lx+dRHmZP(@1YU3H5ip1;lSX_jkNiga41Wg4$haO&dJ__xJu!j{md4Uvm5<$6q%1OOC(f_}fUn zo(|M6oU7d$e^&%7)tD^pTY=4;nDbAgbf8W+kZ)}ZUF8@PblfN2?n3oK2SxHf?x zq+H}}!$vnura@GqXe=qs(y#^*?YVz-V-CK8ZD+J!WA!>aI|8K>sFVRbPQRzint?Tp z0RdJ8M!DOqLR!@(Fk!A7FK>nF%FY;ez!Wyo`dCsH&j?JzrY=}b5SU4G$iq%b%@B4{ zYKSl;4V;u_23UhDa8eqSVJD?A7IsqFS%#gIygXQy7&s}bHrPqY-74>-)UIJCrD-(m zq_k4Ps>s0Eauvz1yu_2z`X0$isqMlhWv$$fW>U6Jhs~Bv{$Z1{6(MX=wxEQalvXEL zvv=ScykQnLTU=l`Y__adl{Z`V(I;4=EpSqrA;L~d9X9Nw)bYa3mZsRSv!#v>Yq$hX zN=r!CNonB1TD*Z4x4O;2_M9i|jK2=H$Uuo#1=qp0jgWX9Y@3*{E75hZ9kG^pRd5|_ zfrS#UBCmtZGnRNAY|oCuu0+?t_W6$zuSD0u_A;r&m1y_SO#;`!_Gyr?N!iuau-URp zu3;+?ucrFk!8dRnZ0k!ft)(jK1kqi+4}`3e^arS)&8HgyQ1uGTJ{vn zjhuSZUT686oqM(EZ)M%e=*nPfB*gW|I=T`N^J@Ps+|W{B?LB%wiB`m zS6w3CRg?L3)$JFTU}Db?)Mi|bni^PpEtV2?Bpbr8`iBdkHM?{1)BwqJuju%u0akAY zPV~mkT>+H1xfeK+&7lI|N4a@Y6zha-f)vg>%hn5FQRaR9x2E2`jBOtFiHcqAyxWjD zE#^~xQPae3rr&4KNK!}w8>M11>F&C4iEaa?%|^Z=Q$3P9yyW;L(v5)RS+7+`zDhtv zKL%FTSt}3r@E12(Jm$$oO{xsBq7N0;;4CIhe3TScjI1;sZf*!0le6v;jOYBkqPa;`KZ~# zgFLWa$J~}Gwyv)5zBY`w{Sey~g z^J3QrO9Ym9ch5zbB-*gu6)r)II_CS4y=?*PXd7w)QUcfmj2HN+l110H?Q^tPA`l6n zV1Z-;46L&!3@8tHiJ7F`Dwxxk_10@Kr!Uo#(}@Es7?SGDHuL2jwmQ4Rn}k&%E<{$5 zwzJc)l_|dJ+H|~lj>d^JqQO*nNT}OOC8aQ+5bKm~JW=uCvvKmOHfMjZcMElUe z_;%C*TNid4@bcDTNRDsqejiRoxhjA?DK#9*DS99NziWgBUbX<)X|N32mKe6F1h~AT zypv*MIbkjn)-_B_!}N_|n{D)z@%f_PB_5ca^{L~_c)Rl`>kR{&Sh@ibw(~MWbdxwR z%KNkoEOtBTiU}M0F4dQqK8efIePD)mGWESG1c<@ru>Jy!wRwL2w)@LqI8Gs{c0|HyYFkIdSiNs^LAk3`@60;iR28?}s+OR4F$)wD=Gj&aa87y0X_*{vL#6`D?0>pQB zRsyMYS>^H;qD7Jsz@*%5W!O<}kYE^g2Uqg4jG{5z!*JJOPUiZ&SurCF{!H>hH%f2W zvITfpY8~2CgA&sKB>G;q88Pd$Zq6neHj*3YFqJGAR#O2xR)P%MMx+TBg9&fI0$ZN7 zvBZwZ4x_z9c9s~p_*{UUz`~=jC;?>%Bt@QL1`-BD!VgW6qeA7gY}WjWHDN&Pz)Ot5 zc~|Tb(|%tv3M2(c5m41BZFP3%Nx-==3%P||-iDL==!cyHVksHl8eCre6GQEAXYRnw z-goH^R{J5D+KXbsYE4I6mv;{G9fdpTQk0~eqISw*r(q*bb1d;*+1X(ZyP40%J4HZJ zfcWf+A6D}_KuWarA?-lr6J{N@kX!3R1-mZ<1;)31Cv4RtF}1J>JKvOB{`f9&^I03s zQPyoRLa1p=InyHdV^gaPg&&$5@H(g_A{N;{k{PNQy9JC4!{^7~d^? zrs0f`cqE(PVQB!W0_;b!dGNxG1)Qg0*GDZOTWBrzquhlsiML4YYcQ}Ab}t$+jQySu z;+ytu$`UrK?@JEyj`FO&mu-YqXd&c^0%Wc}w8ZPsJz6etZ`l-K?a;g567NoxJ~W1V zs)=L_=X@c_2%tKXcVI3ttoDdI#Bir>z&bRL1|S2C z&`~ag*@}0G>min`v;&iJzsO`NAH#JUQOYsgv<90Io7V7c(U3Tk?gQPf9F5`XjIe6L zf-nu|31B$2>mj66bx5A*8Gk)eOs_;MW$brWA6Vk~gM9VFHsWCEvxFbm*u;>5K#Gv0 zK@{&LR$7UfWDYO!KI;#x7Z_r-pOU1=V61$utfxWVfsG@1iI$im;INZkg z6ndC3Y!Oh)=enuGw~1ctQsRc;-9GRH@zgF>3fsU#Qc+;jun-Ks)dYqWZ1K?8SE9vV zBbmAPaS&2w%l%LiBPy-u9m({9Ad@WGkvKa|pA|jPR^Li%NnPUouoi6W_o&5PiLu{n zD>s5N!eT$s9HbMe`3BHlTP1rB+e_jyHzMFrkkR%15pb7RcI7xhouO(ytO;ZiX!pAh7+tR_szG2 zxh_(D@+Z>Z@%<&}nTi zyaOu(AESZ+m$)sk0Kxdqw?TO%%{@^bXz78?mm>NSPv6x`k7-7dSAw#+Cx&NB!1-xX zfbxJ!3&dc;EYBVAL<5-wR4^b)KR}ff;PRdew+eB|EGc}q817q^fvUh|jw;fiiVt{+ zDT37}v<m+`v(;6Cq))#Ph)vV%XL{e9SHHz~)E{^hw-Y2ORrmFb5wE zggdMVq>qE8M1d$x!Wk$inn^sX!#14mn~j2$&+pk#vwfeGo3mhJxCPqBm|)@`TWrKV zE13Jc8F+8UVW;*sp=<@zp$iMGy<{Y(;39JV?$>R(<}eqS;I*4dpmXN%L)@_=fBOEqx&IKRw# z*bIbKAueE~RuDC-g;Wn)B_o;4d%7TRqD^z7Jjd+9lJZX2Mk=hTBXfxtp))I{!J?K- z>t2cszhV10WLV_`vXiG$o!Jl_m?I%?Qm%X+i@dyQUS5^~X~&oL`}j~`dAqCQ$^UcH z=9D`5y1a9u_8Ff@X4xJyalY1?D5q#Qdys6%Xw0KrEWxe+X}@S8Y{k4?9hp;f>pQ*` z^PXl9y@KuQ3G}U-(y%gIAkv}GN_)?!#3dEyo4#H;qh0(CD3_Dni z;KV5JsyCN-?CbM+#*=xsZGER}l)H~0 zZyvRvTm}LOD?}H#Ps5raDlIUQIW^X%d8&q0WoRdMVC=h9s`{G;fmOLC8|8gEK;kGj z@Q}0vi?S*}d7uprtf?}RN(-B1cduIFBboN=6B5JNR26XRhuypRz;%zZ5^g*W5O5Bu(k4f=O^d0ih zJ}LJt6PFwg%Xla3w>7zW3HB0Iq`WPWB0>tS!WUL{$0>GLBtVKJ9=Pqty{o+6TWV`E zN|)cGyhGi4P2H#4Ut*>80fS8KE7+5`h$ns7C@MQ(}s|Grh!#h9%S7eBe$PFPvfno_3(h0#d}K z9sBOG+lAad=gx@i18M-#?+LT&A2#;;WrMD$OSBJ23Q%Pk;F$}g0eFd7?R0GnhGp31 z0!5!mz)0@rAG!6T+b3A+d~Y-%qK4a;0>;!8aC+i=`&*NxFxc41|gH!6{7 zFk1|jifN`CxDBe0Y%cHo35V5VcyD>mb#PXiOvlsdLsIns$2W6H$s{DpyLgrf`uNVt zziUM(ANv?Q5*XiY9B#Ku$}{lv&F7=9suNXS-W}a=aH}jJN+5keB=+Vpa9^r3SOxQ` z|ABL&bcyBhtjpV7EnvGrd##DSt0(R>jqgsY@0A$J+i=_wDE4W;7{q;#49VJ^uo-xf z1!<3R25x~)*d@+C!*|&2S8i|U@1%$c&D@O+YLmh}f1uihRWKjahykc5Ho`DFu8lwQ zL+$4qCJ6(ov-_$UuqFl`No6+?RZ9Y%DYAhs5lFPeNx7J##MBC+PUbv_C?mNCAAu7# z?^k4X*gi}o?_BANB{;&&2<(+;uT&swFhb6hD+%XvgzHL3Rv%v49QO%Xkcxr~1J0tW zx$999Un!^Vq8o~LQl2}%=5uv!HE?lcKSOlbxi)vPL*mrluXkdYzB_}IH{)+{LNR?8 z?}p95xqS8wo1G+{uys#6g-DEs>K{lukOo_=6jihDrp?_4a~DyNA6*=7zBhn8ye#&x%muCMjU9B0v$Wr7AGKd-r=@Oo@+V zww#kL?-*+07NzlR4YoGTb9ZTawz#_$$zoiA@x4cB_w5suk7SCrK1Zo~0+sLLrGcuz zYLqRow8M_%_7sb1b*njHKvKHMdRQh&Odqhs`{tB=%7o3CX`fPM0TX>+WDt>^%mrrU z&ACT1lP*p!7Bda^VEHD2w98ItK0cDE-2-^roVOurHcHD&l=sVYrtM=` z%{!%>+P(O+lUYshcV^j6$vWVOUC&GyP#zFp-F4tYl6FHn<1uD#`=fzlSP;hs;quOE z5xG&`XHxE3rSRO_<}^pbwi3vj=-pc)WvwZ%61h41@@CTAYqdSP#OA~GlhTye7H^c-TknTA z+LtczegO(rF>O<3^}<_);I zV+^bv9PC$2Agj&ANx7gOr*(B^tsnbEA|xKRX$CgFo%do`&FlFk-Y>8Pk_lw>{f=8$ zcES<{s|tX_W)duOk&N%=ESD%I+7V%S#=yX;09KwS2r&RPznw*iE;izPxxGaf)?0h|Cb zOOEIuOc-mm#NnraLoz3&V{mCt7G<_rVi&KRZiTSU3^PE`MlZr#Gr^Z4=U`}9y+E`m z?ZT6D#9ciQSW9eJOdl(a8A0$=(8&cbb9T6aoTa%W0aI8{se`SSSPD(w)<+6E4XG`x z(Pg$}S)(%PTFnDa`^tbVsWo%~b~&@tn%Kg~oK_a>*<$UImP~7cV~caXjk^NNz(73) z#>mMeZ5r4kHH)9q(pHp>^JO`Pi6(94k`}wRfX#U34gupJ5LXn4F*p$?oEgz}AT7-H z!-&|OiF2j8G`|P<((dFL(UnM#qzvY4gP0S7rgb=F9q5c`b-1X*J3_j3L7*pIjdM|t}E zrjfbIBBy2O$5bIsG@d`Jan|wiHBCEPQ4w9V_KPCCOk#txuQg#{6UG*ne0@2v&lb*2 zC(J@aR8fH;*k@V4{5&bE2^eNPY30naJ}$nP(gN)v_Zunj*%_lDnHPJoZ3z&J$ee9< zGVo0bt6PcngJ7k(b}F*U_Me>xtNxXNRlf{X7W=0&m(`BKI>1K^XI2Ab=(r+TVlS}J z5lFJcr!S#FVRfq9b6K@QEQ@XfmT12}WS*im4wkK{AjaotLChg@i&+%r!|E8SiChZN z5sf^e{fc=x6Kz*Q#x*KnmI0;@Fk4uzh!wO2GmGK*rA-QwS4<8fPYQ9i)eED<6amJ- zPd;6mfaS!9oxmeYnC0VuOj(Rv@gj;+I&8-nRZg7E`8HOr(7iZN&5I}t`dU2^>Cz^9r%K~kDfE5$sY~g0* z7yxT3w3?;M0uWbA+zOFBpJ4VHgPj1TnATj1ZKD+opoStzYz>*Ecw4WxZNEr;_ikZM zM4IMyxr8iAxeIvxnjb_=B2eHI96%XZPdU3MOa%Kd3>=^$2QUfX>=%G7L{Z}N=sD|t zmnMi*STEEtp;Jn4sGvu+PC1AIxQc{94aM8QDACfWL27zMp{8ABfthBPzBGl|Yk*~Z zZ*0IY0~xJnHDE?COwTgFWI~);u*n1ycp75kx_r!-md2ziU>1(Z4D)dcKpLEtFrZs! zT}|5XZqD}Fz?9;a4QXqBz?^oN=2mF1l^vkDb{E4=7_AAm4-a5{B3jGv;Smj$4Va}z z0+}c;3lrSQ1Y7w4%L158(q_`mrUlB`ZY2j5%Q6k*OqdH|*pF{zAZBb%16g1$egJ0i zL=J0mtp=<_fR&b`$Flb;B@mU;4|ag5ulpJ8h`_LsgoVBp2?*P0K@?zp7QoViP5XQ* z;$dSTOF69xvdk73E^TTd9xx~0+=#5i1Ilb&wRl5BjWDcFzFVUgOX$NR2BZ|@d}PV8 zo?in~in|`9*#KKOPIN!;LKaQx{c09~rB&K084ViPE00|*<1ErTair+Nh*ptta?-4F z($eng6JnSR4*OYVp`Dn``1uPOR%m*)Sq2bmg-MUM(h_D^4Fbga-oeUgEzw0z7z}G8 zfWn*_(aEeM8?h{gOkkf$fEd#5hURvSW$3qbiK4BRutD~I!31m-f<+q93;bXj*uFb_ zNy(P>8aighByXZwsx1p(X;?I20I`mIamnADz9oStIV~jSF{`Qna%u#p zbSOJ92q&yyQ~?Z5(~3ibxq>E5wcR2k?ewigWHGHRA979+#1$HB2JTYsKzl@-_?jXX zK?i0oX|n|oaSaaU3XG-A6p=Qy@J$~etb*BM5R04?)&eWbX?F?5cE2Wd8j!7~*~#tc zJiB%pRND{V>`7=D ztU5HT3IJ!)%8t{e&#J@DRTe}+*L^vrqs-2sbZCd809jVl2uuUJw!2oC>aLwh_)YPi)8o-lZv&HJUlM)>* zM7vfOy<@w67@j}T?E8&@0cC0dlgUUjbBO{>AItx+ef>M1A-l)HmPM>{ifno*tdJhE zW+&s9Qo7^=QDMdFh#|z_4kL;*sURLXHK{sdz`LBW`@KV4B{P$r5d;_nU1=iRI&*RI zK+FHu7Tn#IuUH-d))@#f;OdNTWcrxPo|MZnlgK$c`4}Vm;qfu9wEb+^K$r`6u#>Xd zC1;{Do{)q@S4#wfXcT$_Ft%dlVF@wu=jBD5nj_5eF^neHu<(#O}Jku^3_Y4BeCA z6$n3HG?dfN0&I;6NRd7WdzR@8@L8YTVMCb3ENF;H#}`p2qI@yG6AL)5N7!&L%)7SNM}X>%+m7slWSPwD0%^434=SIIiS^HbP7%ueI8;`bQFlIGo~T4 zjIhm0#N>Bs0W*-f)EEFOJH%-q#v(EAp<@V(z4&L(MU&G)gDJDlAL22n-6Ic^Iddt{ z0U7X9iA8ZbKgOn6S@ahew6hQ?=XFcd>&U5w!jfRB{n-zQBOR8=13H9gR&@iYCH~?n zgbna8C*%+jP1>Ac0MW}?7N@pEYLK~r4OX+fHN3&PR;aCOnC4+ZLNppk#Bx%4pbN0xW|10+ZEq8Rl-)}ri=(Vwh})Rcu?lS8-$2AQKbR{U za>~$KRZUTuN?A;>DcUn(1HG5eXS=dPTzvv2lQoQ(F;$3j#SzPCX~CulhG_@PB#5VB zHG$|bS15E7X6XT!Wa0!72`-udH1qEDkaN0U4+a;8%rSC7q+eoKAnLR zu-fVDaKhGb7-+$~K?ml#m^9fv7K?#4DpIt%XGaiL8T=l&zjwj{`U_I73Icxplr|#_ z6T+8vTN;KiSNiBXb0xYrxS}M?&xt;64Zsf5fmI#7=(0c@J6XmKHgmx)ZFYjiU^9|s zg@(N}D;aFgt5c(b^xN(ZSh3OSi{hDvd_YuFKI3!UKsv$!`q_EjKYMF&`} zZs&lR(`#Id-k7EEQn&b6RayVcS0@_c^Z{ld^UjqWu(C64T^YDwG!5J=nrJ{d{bER) zEdYgi=y6%57NYFVcZMCG#3C47nIlMO831N+kxVGasv~?E(GL|YcKa%_Xl{qDz%DJK zRR@FRbJ@QTrFM2qhrr`7?#{2YU;#afNM&hO2-rjeCXAdj39zyQRxf}{GiR|e25Ymp zeCMOzbYei!d``nUJjFmRpU=MVnOh+}AWs&(hn%t(%7du6d}B({BgwL+0;o1$qI-}p z4?(6`JUTwnYbqElk%!C|mYQYE(k2=(MSw}+6q3X);()Cv02%s-Sy_}*16i2N7FHed z^}}tfrX|*WvKWw|1DGrZW)iOz&LpB*h{o6rlzcv}2{|%E7WRx?VX$w6FajPfZ#j(# zADGiD?lNHfFxUaBp5=_e87gUIak>jeJ1k2KPK@D;IFpukQsir+kdb&8U}*qKJ1{9c ze=63CIlY1k(a9)aq5<;V6QsSFLHH!1mNBg^r>hpyRtDw+GYNKT383*rf>LY2NLx-O z^$Bx+OwJgr9-i-6TKg&hr;&`PvESQN6Xd=M{Zm}?P; zD;P8VwI92UX6Z%~m{N*otmj;oLWel0`Z_`mW*J(Ia1E{trT4N%yBOL{x%+8&W zc9`0;n%$LTx^|^@s3kfw8wYG@fGGmZ79uSx1F;;59jGJFG9v&h3NztpAfh^bfYNkt z=EW-?M5W|e%%>IYHA>R_s>l-26)>VtSQ-l3^t=}`wWZq~Ou*A%gCjcaE{lHo~q zWoUNaS4@Zj+nt9n)*OHt&kK(#;wim|VOi$%U_bAqWpz5pjNO94o@m|2X<=O&z(VOQUGS@&>Qo1*>ffKJZ2f8*JUB% zG<^iD#z%N{YRNJNh_ehZwJb!-X=`v~E-9LXu+nTdq$JEw1q~|$3=#cQAjYoif~CkV z1onhkkpuw490jo~DfS3hmbrH97+8tyXpxdy%Z`T1V6`IU(vCry-S}ZpnoPjd(x1#S zfH@n+z{U<(yYn7-3_1z{z~v;(@;T=Qv+w9PO2Mpa_)f#LL!5!+)Uv{}5GMtqX?2)5 ztHeqRwx$A@g|*}`ru+f1b}jg(%;FX@S^Vk&YIib2498{!SiWwTf>{Nf9^{g?qI>y- zG&S_L3Tf6vM-fR&wCzXCRhi8=xZJIjzH`1U(um=VVPHAgb(d)TaqDffluuXFDNJj`iGn-9%J55a;Xmb2>Vr^1MIXl_^b z!4mC~7i@f;+8$W-0LDP{WCk+Atze9IrWrgPwh{qWApoVc!3!q4p+?fw$LMa(=J8;% z_pAcvqQp8j52o5~lYl9@H52Elw57{0Z2qaJIX7u)=$Z^^n%iQD4N&}yKFTJ>K_-O= z?6Lq>XY3ZPUbcN3HX}%zcGAX9T0qYt?Q+KM9G@&n+4wNNnFLWqj_Z7HX?H_;*rlxs zSc=HrVHPm$><7TOEv?K8e6)U}ddJtvY=FWbjt^|w!N#|!9UsZM{nDlgzS7obEsG3A z2jMek%UkZktR@H~$;bJSuo=Gx4gegOHA_y*KA|~%a-G+9)@uOL&~XdCpBVg#Su`oE zr^!gumVSAURihTq#8^*hw27F^AZT_7sXkgO%l8(oC`p?hp;LCfsdA zgI_o&vo)~WaS*Mg&PO3kwQfkxB-8w<2{0>!DoEc(5{Q1qm|IQg$yCT0VO{rW!){IV zZBi4}i_2+@NM;pT><7_h+2A%s0}S?)*{je1KT3$D*%J{#nq{1jw*8z3F6Xh>2RH z&L?IKB4uSDZIw)rX(kaLT23~#mlH54q)h|ha!w{`G59qSCo|1gte8#M?nKR$Lf<}y zj)(zPOn@?7#^IJ0nypULib;18oM@5XA8{pxd4?3C4M)$c=x%I5)Ocq|WYN7Ln#HX> z!b^Tm0L$Ry5Tc(wz|y)$1JOzbtd{7<#=wD-3G3`Pz;33k(uJN@BEXCQ%$LX_I}4q# z*j2;>UMnqY35lJOgD4-LqiK$DWKpKOIb)cefXk^`K75H5r5B(Uq%uoa5W&n@44f=$ zF@Q$+Qq?dO`HLuop3>kv87#{@1Vijd;{hulV8Q^?$3ey!2w1@&&N9GC#A7%T-DYGi zYERS*cadVV^x`7VTFhLC%H&*um|r8o$XdKL^}c56Hoo+3XyL?_Hot*QIWU41sO9vDLtR^m}ct~dl?mNr?yrh)!;wM55Y znzx|A?5|n0%rbyEyV%RF^kFhMg`=0TvH+&l3)8i(TJiizVVyrkbXjXSz}Nw1X$)Z1 zvg!d$O4C9{oYnjQe1LVMbkOUw2;lBRXT!$HGZ8PEpGn%-M-=lFq!FpJ5zz-YJ}1GX zofKq}=DLHNF}NmyLB0z%bx(=-)%X}8rw@Q-02gU^B32VbaZ$mnaA}-Aq9y?INPq@{ zO-ko{M=a<3dRPpWk1P>SwCgH5hS|yF$+YgRGxo3Sgh4c-AY4x>LCmC`m0@Ry z1%?&jyPUDR0D!pi0a9e-5%wd>-a$J0dyVMg9jibYdPN8CTfqP_bgKYNhJpYDuvR_H zJIiSUfN7GW@7Pt_+5!gcY&nh%O9M;;k*f*gMT2Redy&{~KUl<~Q@nIl&Y4Tv^Z{lB zH-J}X-6y7d*L&!QRMc4!dYQ0&PPawZCdKcaEE-=wfe~V!GRCW2T@#+2 zOu!TYRz4;{5*coW^(rmr!KaAB-Xo%CIq6Vl1lY>Jy^%0OJ1~^fAOeM5*~v1|V5R9x zU?*$_a;M~^#Bd8+-3IMt(RaI}41>J}MkLdI2`qC90u_mkKWgGm`3^HE zvpd+tWL9VF`$XJyWRLP`b$t&Q`WCQ3G{E^hk1@i>G~VeXA4iz;RxlabO9Z2s1YSJQ z!7UlACUR1&q?tz-21ImbHn!5>XTsvFijH|+Y2zW=FmEw7MFl!!Q8SL(t<)q*tlLAI$%}F;{ z#I-bOt|>X`F0lnam}!p8#6w(2)26eNeZ18K#4yc;cxmI?R-eF=BRI&6hj?IiLX@G% z9vf(@Gc*L8BYk263T}J_1eFA3nW^DuR-!Un1bp|kthtNjUYOh8!--+)Q=Sd-I zK7D{00T?^=6Sj_J*sSKT&-5`X5$n1Oz06^y>3nQpE3;cRds{+2ivkvdAJ-n7FwH7} zZ#77ki260yO#0xl5R_}5`wnE(zpx<%F2@j(DONlTCo-aKipcp1j=0Kgnl)ibaSema z*+7=D1C|DeXtWk7mC`jKr^=^+jSWFxFROPIbvKJuzfxKPvA8m={(+W?7HMkTcP?1}4o;vRIF;j>)pJBgHhINuKdX3>cPzuPing4-c*R z2)55oZVDV&7ShH?$2{$%&3K5HHgmy_p`2DSIag<#(wTwGpw-X<8cbnyl1uBn3qaA` z{vtFjdtq7@ouzG%Ax2^qP}O2is22{IFzRZGsN;jKOC@?7NAVZ8+JKYXckGz^cmq{rWJK%5;|c_NhbwtX@D^RW&~-gCBTG1Jg}lb zoLYW)N50NTg2~qzNw(F*IFz)UPEk0nVmAn;+76I#qYAUg}Gu|$ak#? z7&}qn6@^vK*uhM5(`!q+DPo;CVT?ux%3|}AHp@txWnhB#7Pt^NwY?j+e$1R5oNOx# zqMt7SnG15jK7cKNRRITiTmtpRGvNt07h@5d9LnmGVuBR49iCC6(mCJI($>dP%)B?nOD2Xhq7r@FlEWQt(pkv2_B3AY*N5TV~$}<6H1s#02v6p48sct+JEh8EGzuEFu+w3`?bpnm=Sc> zs~57!{)_bj-({Kh&U7y4ib>k|Ag;{x& z-^$Wf6ei#ib#}6-ueV27_8)@=7MbHNtakRk2($T>2p}I{SJ)WX{aYGf&B1ha!kDfu zCtyZEoPmI{xH=|nQV1u{K)Uo5g?@fADPF*@5n?%8n|r~QEH*goli88U@g>X>k)<>Z zwR8jPhSj%E|4;F30TftOj^MphWQmk%rd|54rMN9qMeANHU`_T;fyTyAsCTN zn*(B)Un(K$RUHds~2)k zAH>OoczjB!+a|3nmKJQ~Bc}}BY}jI61~vef=DE}X6;+Y+9WwL^8JLQSgMevE)e4{b zoJi1@>WTmvdi@G)UdK@_Wp*VKOg=B6EUhes5{gO^1R%?T0NBa0-zg(OfUs$R=*%BL ziI(Mv6nfa@MD5OENNfTLCPSk=W0YCi$^xSqSw*+dZ=Zu@KZR!X?*t2=u--!iQ&?+P zFp5G>r$2zwoCPuZE)6hYfTcAg56oP^oQTPnIqm0Ju!nU>8Egi!I1aej>W88r&M^V5 zmBCgaqy=2=KwPzUV|-vm0jRyT8e`53WMp4X4#+GEVEQ1gvbY@{u#G^bmMj5h#z=|5 zi7si=0N-pOd}_|#(P)^5=xmLkp=#-Mmecvmfb7kzz%;3oE_ByZ)cxv#X#n8R0Lu=x zx(1s}z>H^nHw()VF)NFYBcc_#hdxW2hJN;vt1`DFm7z1MOPdttaAV)LRakt^TOm#u zIZIox5KO1#+Cn*B0gLc-dR{L0lyR)Yk&FBg+u| z?7=j!10h{^C(XWqG_|8wDJ~!3J7LBXgWK8MK1auST0T0odz4t?=*(lgIo(pJe3 z1?>3@GekWw4FJ_*TXkV;f4Xm4j3O` zmBkcpRx_`g5fCSZ?KE?CBM{6qrt+o9P(>1^FwNIZD39d>DB70^Aa2S5NJ`g^2ry_; z5iGLEP^=3~0}Hyd$D_W^g&;aij|5A*WhduJu?*dIf~eKKhQo1D*^8fnWrRZrIm2`f z(lWx9#`wwPI?wbmVG;A_^00`G;mr;gw3sc-R40X}G7hXYIX)pngH%7|j_c`X0Qo!+ zzQDw)t{3eFl;UYsFxve;Vo@BnZm8Kd^j_gS;ca){W`A$%m_{^mc=TExXS8B zS^@U702y+9(q!lhAfRy!itamtLG9Fx!gL0vXJU2D#609H!peeH1MBPXU^O(9vqqDz zcjNH&Fk2eTGW5b6m_`)+fiEd5=3*rWP&5qffE9WeGKU=zDI-$o0epfnW^S`AVr~v> zw3fl5Fe+`{18`Ex14*#AFhfomv)v^7(Sxu!ycnw$>|)`uP0A2AJ_IC+EMYrGXg;h-gl- zOdnwEfGJ{%6uXN97$Ul0Bt#~IHr>~dM;muKg{J2ewAv1;WrL>OcbUty! zv4Kq%Yse{wI6g2HbOnuG$(-Jqr(-q50+?Zd6^Kqv4Lvu2mmPz|dq}1irU{VCR}Ijq z%?aqZrk&AY<}y|sSYaU^m`t$AB+Jwi&k!rPMcS-pp0hG==wdQCEEOo8L7kVjoQwq1 z&Sy{-YYE~MF@j7jx144!w>AZKOC!q8)xOx3=_VOzg;AWFj4wsjU>8D{C7J6R!7h+t zn|7!VVlfgvkF;AN4o-^|V(}OsD+K)uU>SPUhLF>05FlTVt2agwvsmvtpy;kha(H)T zpzjxSVGC^KV-s&`dG2U@5LY7B`>Q&zh@D^PWh;oY1)1?_AlUSAx;Q?Y7~5xipjy{Sq+$FTwq&?0AV%`X%h_?J4dktIs@3HO%Yha z)XoW`DMHxHg*{;4nKT)EV1N%ZMV?6H+x>#Ad|)dyK(+2{3{zOw_UL3Zf+2Z1d+Y~b z8F~zdEb42MldvZYd^hX72T(LX7JvgD7&S2r?E`3EmN4fE93+svpJZSzYFZmctoKZ7 z!;dtDwYNu_irVla?Jyad0WfrEQoE{PR3sDjm1sZ)pTr$@e3TumGPD&;+W5F_yV5oe z4M;SYy%>U+!L4CaOa7S)HqpFmCOZ?zFw;2tBjy~6EHjCT=8WK1+hQo5(R(BiXFNI8 z#~Gt?s?QMa(pJfI6J}{28%#w_g22W=FS9J1=U5t8z@~yYTL9BQ+N=i5B#7}jod=sq z45Fnug(l~W0K~2{fURKUOuN$%+(otQDK3qrLO=~}KMnWnR zO9M>b-Vg~)=Bgs>vK-$ukaNZZR$6i@tSdAO&+-+{0$UcEc6>yM!gPH?N6Sgt*ztwK zrih%=0GMT@1@sWG%M#d7u$%$?6Kqx^I-(yC`eN`q!s$-msugcLBeK)>gP0U2#t6$K z*D1FZLV!SarfZWzd}1JP<@Abac@~&u&rLawr7blT3@UPmVheU{@gyKPA%+7v63N914PsKs)u=W zZeUeF&|D2I)xgSP)p5V9EOultsIS!=LbRn@XQahv%!w7=VcOCcz^r675749@bmefu zh^)UR3~U+zGYK#$^o=tDFh2T5v+yAet5FHin1#TSL<>zQ$D9PRBCcA=8K3nDyNc?; z7_?>Z7&IS+)x(M;qOJ(0xy59_WOqKu0;r<6F9zn9ibu^dT7Oai(+-g6@i^Al2A2U7 z4KQcr<4GK`OkyoDeH>?1N-?K)OL+J~b9we*Rlu`^D=pKJeN`~59l&BY`ptp-ve?NX zWwiv*h*}K3wEH!JB}^}131d!Y7x39*vg2mKig2U!<>((DYgtCa{xyfAPc~SA{c6S#sOO}&$&J&33GM`Hok6Q z4vYaXDS&d$lZQ<$(-70zm*!AkM3+#wE>>@?JO;3_gG6-l3^oS9jOYK$Ihk-%*TiZ! zi5j5Ltj3(dv)El0z|7?uUSJ-%C23&Y;jpE#D;j2L!Da;D(x$yrVa#t`@d0GeLq?pP zG|`LzoA!GBfw2?&SsLBF7*i!M&ezWtq7y57{UDX(T9mYDAXYKafSCk{!F4-XB5t%G zttA_a8nJ!a6E=N-6$M2xSXzh~;Svh%t52k4iz|J0j}+aeEUq+}tlTDywbK;QhlqKe z70fmwXg4X{k{U5So0zoKL?J+c?MIf`0$3WGfKyAjZYBYyp<_r(n`nrabLHdY$ZP?a zvxD+f{M0fknWc9~A)2M9dl`|{(1Rpks~#8x9YEpYzgaq?0)|X#(_SA}LM_#Jt0l*9 zh%m5vFzCmY62jOPZ57g77>v@6sIW#LFzg&L2K)K0Rk3Vw;A2OFdI59J05E4KQOTlA zBSK@)h>nKx4jzTxI%oO-Q^Zv9z+^JPr9MYAXW?D2$>ak+AVar48Of)Cuu{OG2clUz z!Nr(=Srpv`YZz8%q|JC3Xw6B{hytDvFH31w2wAkuP#z3+zr;@>IyMrU90R+l6V1MB zn8rg~**TOx14&zn=&onkPBR523~V_`6Exn!etfeG_RD!hLD6=mFA8gp0;UuX?QFSY z&R&@$syI8*G+}_*0+`i+OIy8=bLKLVPZ;-5O>18TY-#j$Qwtb7edDq)51hGR>bX8efn6vObTFa%K@;J2rxx}6^vcOFkKO% zd>!TBbgNl9@5}zAIopWo=^%bwz?KHgPQXlJX);@g=&8ME44A}DVUyFecArR7Q9Dy$ zD<&E=x4jH7iM{xMWYdaIfLXpaVi*Qh)K5-e-!KM}X<*El6gowT{%G-t69#c*2TU0A z)fosdtyA|bIL6M}Vx?sOTZPa~EDP8e0AmMCL&M;(X$OJO+zT-z8_5 zZi;qG#OSS*)*ZPiMX6x65jn@#t3O*Di~(%6fK3WmS@b#rf-4xnoUM{MIWltrGY~Kh z0HqWY;Ej8U#^>3;(_a7zYwpdap88-Mdq2L>)646jWpA+zrszgBvW$;K#fUs$GjjoJ zBf$6oWpOwIyPT_CuvraQi8yy8gEP)y@^wj^Amc0pD7sZLnCyiD!B!%`@o7sVC2>ea zb0KwEI!VsVL7AO#U~(Ztzk0*IkBVr4G4zHETN*Mrxg1feIc8TD3)Wj3)XwoG#SV#@ zBMZxj&By@j4gvf6M?@H48U`rCh=?ADI4NMQEtu7cZM28D?rAxbx$j}bRWcu3#C2p_ zwwUHzahU90Bw(SEBDX%bY%$GmjMYopok4(Qrw7<~h6e3)9nL=iSUrrgGio|5q@fSP z2#Br&02sI|C}OmAgM<|Z2D0Xv)dLjsN3ZN``LO(espI0vl2`^%fm<6)NH<0XmJ{M+ zflWEsM8X%*br|&^yEmDr(^VND(S_h4D%uB#STHz&XWcM9E|k$I11mG}ftkd3Hz{;g zBLbF_VK2<36U3RsoGS*GPVkj;p95(d*XcZ4i+EyTyE-E>bq=_c>2n`(Y5^-IU-UGP zHenE_9T3r)U|K!nnR(9$Kd=6UO9zd<-Cy0thQ-ztRD5+L^## z&S_xak)h2;h75!;J2(CXASV-eM>^*5hndAsWoZ)I?Pp5^lb8(NT;13hS4PpWX*u-? zNDAjL#f)x1Jd6qqnYKbXtQ8&X%D&H~sVqb4$lI zu#;&~YE;s~oKBD>(N0k~2yR-jD%4spwJlS{<>avUvVcuA*vbG{PKXC)5=0r=Yh!0u zVjFO5@RnwU^l~K~WEu);a`byu-jkI8n;0poZS4c5zLr2_S))P>*tW2zC@lmNL? zcBZ77uW!!Y2~jufIE|M2pPQ4Nb5a!Dw+{ioncb_>AeG{=$uK6%~U8 zGiRY#W|J!zM5T0&nJ2=M;;s(ZjHmBkiFoKSEJby{oDEwV?{$oiC+sE@ATjS@n|LJx zn1$bh7At3w9nxkeQ@&LJ*h~V!?nb824;STDY|JnfgLpzAYdSoucau%nW7!l zms^pOGstSF4P88bM`GZQH4&sn4l5leHNEn6LpD0Gq!o4Vl9z?Xc43-XjKP z64-oj;P{S#vX2k#O!?-RoB7G-yny-KCh!BYyLj1@PesOnhAGnp`>=AZ{{-9juqhuh z2Zk|xqHp1AF_(?Z^_)QfMg%MifbtEXVPH}yiI@xaVH5?AFha^aX&7KR0TYIMPYScc z@eyOjcqV&_X41Pf4wp=L zyk?@o4$KyE#_k*ptemUe<(xidc>*^yX+1Sy=JfG3EhqL(3Pge1#UoBTV2S|8Fb(9q zw23Bd<|1tD#0SOzIBXi2-bJ)=IO4K0a7}c4V3Puv2Eat)*JkNQ*zoJa6n2r$;&e>J zVIY=j>o-ZB$@ZD9R?<<(xjSH8_uEtqh#tm)MMxSe!&30Nb=_`T!A|k+tK> zi%iOFyO=EMYn!>3#m9G9l45;!+Hn&l8SbZA8_t*-t?Ymm1u)B)*P z6@^U*`M7)`rn#gkg>dGGU8TpqnS{|wDFy_lhDLPeNyC`_tm*)h!c1q{0b<-U9Oj+3 zfeB;rVwRo|Weqb$$eMx7xs}P|Mq*CWn4?_Uj7Lf`9cY;~#cnMjY-K>hNeL9S^9l`;#F-vE*z-AI)+L^da5x^`(Z@5Ni_5!L~4)m?Lm23U8Rn&R`{GOOv)TkX9D! z459||GdZT+{6+U>XG!*)0nD5oyI>ll+8*&_<{nmQyTn4Ub~QnowlqIudM4IuKlJk_ zMaz0R2;wRdcFW#FLSW|ft)X3@!ZN_7g@Db$hGF0UY5`*yR@&lw!%zg++-)G@)?7?u z)&LM^^}u1uG;9EIJ<-x+FcLpvQuZ~1Ef72q`#P(MRxLlQGt7v~f?`^xgKgd;gA;kM z`RArT+Ub-ZY|Sx%zMZ8<5tAARS^$cMVIY&5bymz@oQE)fLG7k7%ffth?0~W3AYyDh zfHA2-!)7dKAD|`%#s`>8CN4|k5DfLQ`O9Gxg(-(=fawE7+&2xj!Dhq>1B@LoA~V|= z!5k{gm=)M^0+tgn%g8xlV1fDIh*Jb{wt!7LAcn0;hD{j0Hw-YDOhBfV!TUP@(?%$$vsVABpzW@}20Oim_4|BN845$5;~HVyQ6<73V+VGPX6$rnR~3``$^ zaX}2sAf|x@(fIP0fr$1}q>TaMG%!676lr65G|{9@5!lKOCPSfZjvUNRfH~_;!PHQv z%HTZ)z(g|$&v-`P$z)2q%Ho_;!0s2~%mqv)V8Q_Mwff}D@fe6n&m_PY0MkG#E+^oy zv4c$*K!z%k&vt1Hd}9EJ`BgFhYse~~h+ocJ7B7M>N;Be3Cg1XG;R6q|$0TivARfbP zA?NI*54fDG7sfxeHvyKITnfD-i=&?BMs)O?37KlU z_70{kZHqG0q3^@zGGuJm*~q8hCU=C7mGAL&Mvj#Suwi`|X~QrNuy1h~GKXCn27#?N zTN=e0DCZ_P!zk9W1X^$#-+{QP!qN_;cHX(Pvn45;Ml7ecxYx`mw&or%i(3R>YlVSw z&V?AaGSKbQjbbV?05z;EtJ`79X?11qB&^Is! z3W(Zu{elJ%I{W2h)1A@+Tv!4og$}(mr=4ICi^uCk{O4+gv}pj$B-oFSIvY02cmv!l z&C2^#aEN}xO|Tirui(yju1=4gK7Z_B%L%qD{1U8K3w(}sPagyLDhq730LI5* z(d7h;NS{BMyumUCfNAwu^y?GNaK0?u>6#IA=&K&U(&*4vK77_Jef#+3q|h;&r3)$$ z<>RubY1Rv_t4xB060KH*#coCN>jz5%j0l(_`qGImw6eZ*1*5ND8olRoa;0c|fN7xH zT>0n|ryU^1B6(PEvSVgMs{l+se}H&dl-bklbcWN;aX8uQ*TH13>R1J=wEg-FGj`jE zlXI&qfH@11+-@8|%e)0S2KCXW?z49`H~=4@2%xhNu;#wH{;(Kk?s6VR^?=psSf9&@ zfg@g8*eqLG?5BNJkBEU|pwPpPk6L2lzKO&7I@z6KfbF9kklkq~J(yiTo5eDCn zdXSjC?WA;Ji{6Q5Tz`h>fx{@+_OCI5{%j@r{JA`CS}P{+;)IgDOv7~rt+ z(JxWH5hoKM)>ET=95NKL04uGIrO6#nK~O%1S%U`jL}Fc*;Vpo%111_UcEGd)W-dL^ zFoHc|yciZXK02f^0K_<}T-r3yFHI(3X>?CxXZvPE!1w@T0E_`JMf5MLazL070n%c( zd~__!g1d~b-?|zY1Fg6^qYs&Az;ZHu5#!)P*tA1jQ2Fg~y~K+zXECwqNDg-GE; z_e;f4in0%OZOiWKd;)OT*ugA{oz5`S4y-jP-xc#P**S+o8gGzc%cc$!29Rj%hp*A< z0gMkYnE)ADrf~3a+WAtafe&v|0Fy$GK8*S5*lCopgN*@fB?6l*oQycIEG&J7F@cyO zz=)hs5vzj$BMY9q`UDisGH5U&IS1eyK;N<)(21N7EDfu1zNY-{Zh{r?@(3GPQ7JA6 znzIO*cXvtK*FT0!(JU=2eF$Rs`EQZ*+dwhN~B*6MsKp&n_MI5RU8T$ci z6{16ft$PAA2z$s$Z;mJ^`YHHAa#ycHnP z$lCmq(ysF#z#~@%y5<>AFN|n>sYYcQ6lSZinheuJtO=UG<)eo$h9PqR;|KDI`ZEu0 zKx{?p;frCY9XLM9fWOqKdT4vjpcIb>(C)duyFhFHwHPf8A03&CG@6(~ucZ+^farnc zBy2J-;0VANnAEHWnZm7F0jqMFc$GzGwMwRKB|3I2T(+FF^y&<3X<*9<91$>#cAsd# zDjBeLpnIBVz|sImTo$GkYXH1JqH)VL|A>GQ0n14fPZ3~gfazm7JzD_R(j!tW-ED`MjM!_u6JvG!YPf&bAu?3kkX_duo##J3>J=V5ZHno7&E?^bOIcf9}|F~(|4HHfh3plT?#{d{Rlc-ru z&1-e%=`en!1(^0R1}Bg+w|2OmPXqbtSA!_mTYDgo?s|4|xpaU%vT8|vU>ea|)F{%H zJA7eiY_4wu;5e}N#_Xi1-M9H@V&~<2;8l4;2RB3?6Kk$f zO%cakR>@2wsd74PKS~^H1~RiHZC7+C5obWD9i|af6@SCa%z|8OgqphgfkK6l2R;0a zmE<)4dRhLCo*a2sx#UcO`RC!}^zXR=f0t9DCgQ^yI9e#a~N;`lHYs!fQvnbFWDo}NTz3gxSWQb z=nbPQ3MaZJlrWsfs<|g>Z^lCz9RHiyKJtq2d%4-Ty6B{QX=DN%l#zLQlmo3!o7DlvYwE=%g{6YCG@BT4jWT=9cWyuiO~r^bB+#>b6lf3))Yn?z=#{ z+agyS*pD}(1){H)bH zl_FTXr+`C$d95HC~G~zD)j3s_O_h#X;zMZVL z17Jmpkf)=~u~rKlH?n#!rtM)Ou3uQ2 zjO23oCJyamu@@>?C9~GD8u_Uh>&C4}8Y_2aYXY(4b=2bN?Ue=82cOn;^pP-}=sCt+ z_)cB^;jA{3Apz7>kNt!jcLi-x3N^T!Z)*~U^2sMyqO&m9G#53x+U9GXKsuXMGi!~F ztHe$m(zrvsLhiE(fH9qQ!p_J92eVbzs#NfdWvmETon%=-cS+3FH-1b9cI)A)W9O__ zNz6@V4`I{U!|GrxOd4h^p|X_$dDDU;7VTP>89Hkzp}`(;V(!G#ocS+~Y1 z>hbWN>!t=9o-3ozy>eedXCqD(>%5aXs{5sZS8&WuK(QZcbo3v2G?IzE|?t$yY!R4e(8@FbgKAtpnw}1iLivUyBt=xe*J8_oHyKo~9g0B-@CIZ$gH~rhZ9pdtG;={p+ zc{Ua;Dm_kG*3P680Z_A`cjm!X6m$TX6zKEpD(TO3lPd#NqoD3!Vb+!co35N#D}~qI zu6JW0Hs$vDxT0Y@(0xBt>pJwg?Rre8ohEaKm+qto_?gKK7@u-s8)yz!OaFXx1A#x6~xC?&boP!eIkbg$g94do1TL>7~y_S^;l?HJx=2Y zL9Y4Pu2L|)h-9@z*qc7qk}Cn;x;5#*$}{&&Bq1?yCUVZm zP^H5%mvOt8BT$x%nZ!Od>SV3PdPT*Y=NY7O8ijBpQVAcJ%ACR4;5Wa<(@$2?r&=U> zg&B)~Wh~FGfO22olGqX(7!kyH;n%_}cIBaNoF6cjMRr35a=(;81ag&4OhEB4tzOv; z9u;l-{OAju0y6Tb%{z(gVr5w)>cq`ZDnjdh7aTdxo#_bHt8$LXSrL=1H47ifT#lLK z?BokwS=dY0ofren>)w4DBV))i)4BDnx!k4)G`0@pdm|Seh_%ExZ(|tq!Oi^GSYE1@ZOP1H4@I6k zO~LH~QFn?r$+e*F_%f|qUix7>3mnPbfv~2M@V-?)<bi@5Ba3{%lMl$#KtN}8KsPvm?lA!S`bk#`E0Bt(3(9u5&AX>3RMzDjRswU4j#~qq zaZ>a1vBK8_VK)2*-opX0OIFoH^V4Ldtx#3f)RB0SSTYWH^j)R^n4kKVt z4eZln+V*sQ3CI(vn331{uW<&~WH(!&m7REErp?nHH(exqSrM*I&iP3;hzToYgbWC9H6r zWuP<$PX-<6sY1U%_PEt#=S{z?t*c)ZdA4Fx_B!zzm-{%j9DVL;w%5{mEZb9RpiXB9 zP_32kNrg=j#PoK$!Arx=eI^?jZozbsIC>d|G8uY|VrYf83 z5#rMBqGyXZsi!m6d*8tbKpN*c1ZdnqX%-#N0`B5X2s+n}{*m-^9a7 z!(tC}o z{oLqeRpYy#3{Gq%Ew9&zI;1XQ+`JS7)WLkGsngkXW=9|386^qYBrvH`u*FlzP^9oeE#>3 z@BaMfn_s{Fjhb8G2go>piUEuUY!DeJ%f|0vs2?cjY65KjHxR>WYuKfga~=V4{pJAm zIuPI7WLS#U#=|mVbpp12V1O)t|NGZp|M&m0CT2s$u&kKRfz2TY5;{*C7Q?#WVX0rc zZI?(sj`4?S6HO5&yVJ|%RG*^|*xGj>zI_10;@i@Cm})&Q^j0$8%pGH*;H(pMRKAEwy|X(_H_rtV$UmBnMF)W&cPQNG3}d(!?&($ASpQx^SX#>-yDQ2 z8z=`-w9#)^IX8w4OT%UjVEL9melV=GJVrlD&6qR>N$)&5Q{Nvr)m?>9^%T#OA@iZdn5;-9Gb*a#2w#O|OD*QZ7s%Xj52(e6KZMz0#A(7}ui@-I#}Ho)X9N%8 zMuCC&HaZVWZSBVzSmNeDq}7ZrfreR;PGP|66bwiWtF-GW!8Q#UNJ`DvP4>kGN=w)V zFLKs?hNp*RV9nUgEQm4miMy@A;&DCcfJI?22{Wgmt);1fKG?KAYT_4R@%1$u28W?W zbsz=nOYH_3SbSUkEzPQPtR0rxKG-h2v5c__j69L0Z_}mUuo(I_U7^4AB}T^Jul+ru zIjq9h$9Efn)kmdXK!Yr`zh||ERfyW(WjMqw)&{EA#s-54BUapo2u90tR=s&cXL312 zQ8hI-xDWJLvQ2%_RBzx8Bv{^L)O1*;)hQTR8L`4|PB|=_aw;b>5I43DWLm?A`=}$v zSKrVnLPirA7}LhbU=&caOE!r021W&km9|v@SdQa~fMKe2t~V^1o78~SDd2cv<*ZY1 z{kSZakBTWvw$wLZn#B4BWQQdsr|9esV&bcB=sXY$@YL2RbPx!lP3?75*y`flg&UUD zc}mAoI8>C{9Hzr55R;O_bj$-{Ml`h`ZmhY@DOiMt>6zYlMqgcvtD<4C*U@+y9%9bm zQes$@)zIMf1jL--Lz4(^7mS#`oWYROh-zStIa@pnJYe}eKs!tWjgt;jpC@jISv?*O z1FOGrtvxKh`Wx5zBc?C!>DUZ`Q(MJfG$l*kWnK5`&Boa}-Z!467n@6zAw8 z##fi(DUuO0DGzZI2jU#%tuHakGLDMdbi)S}N37CvCSS~fSU=;_vBNSn*XrSKh*faAo(-1w04J2%O}8sIwM1E!(A zd9ySP^<62jyvYFUFzenZ(J(9Bb46e|j*+`zmcP38gep%8`QyWQySW^>~ zQCLmgZIOavu>pFCA zd4o3!hH1PP3x+AhCGjwA>5wkr_@p#j?aUuUZSf2j4BHDBNJ`y~hY27yXc=J{W<`2n zV^~t^b~>X5F)7VV<_Wej;)vbv7Ooj8ciWZe207GJ$jPY^K{*d2Ea zzs)sr*57neAIvuDfHI>-WyoK;tN^hpsH5p7Kg3MRmpakRXcK$B)X7$eSyt~sfYtiU zm%2K{@T7nG@*f7)U-(kpuWLR~b_ZX@jF-5rz2P~)7P~?Di8Z{aw zyZ4vg`V!x98KZUJ8!uovlP|XnOK4q6XS^Y5lUp!k$$dKV3zkjwGj5wLi*?tDQ!uN- zh|1E^p8I&{1!A3#$DD>`#C+2M z)_HjaX;?+d3%yG@Vii*#=CfZAw;eZ7S`O#SC=d&)a4Xd;xtLMorDa5(<`Gwj^;!m= zhUsu@o6DZV8Eao!>~&sVJ%d>1<&pMb@#S!aJV%T#zw=i7CQ#Or``E+e^V0b+zbh}! z53`tF)c|W?^62QWq_hC@oZg65q-Q3EshuaORw9FXfIN(tyTn|}t?8x3-bm&}?-BJW z?{$JTxi(xmEaU5-JQp}(`s$$gwG$Q9PkGpnEO`i5(M!wD=0)y0lcfof=eLI0IBp^g z%gzQn9}F5XI~(lW+=p1_j6qmbEOzJ7%-&O^+knMBw|VMI;7EnN7FZVQVg2ML z>h&-{vUM%6`0Rtg;?u)eLu8Xa1-5De#9-$GRv{ewcBaiNuHwO}3Rm%9vD^88!S`4) zBRwo(GRDyotU~B;VA-U@fn}4P#+oOabTP2_bTP0RMBf67&(V@?%=nynfmIfL3oJf+ zEwK1>F&0XYNX|w#en+(f)Uf6qZRdK@t8itg~$1Af3z%V-;nfJvicOyVvgSevPru-^vv6Un%FpvXf^vN z#nQBwZOqavXMt%#G)bvX@waeb$bUQnFid+rhdC@MjdO*miSVS|nGjg|>P7rD1^Ap# z12QldDs~zrhh(ie9}uZbF^`YRwz1WC_YSDCglvphaqNC zuECmFzFdO^W>_V1sYE!ls;e*YK=ERnRbAr+D;fFnkb=e^3mOA5B7b2z{@Rx?*-mJh z>PwjJj>xn%puJ2O!_>sAF3j3uJ{6`EW;DvOGsM_)w1UnY z(@6XKEV+m@jG2}f(pzebYkPj5HPiA!I)Kt*$O{Wa6H%^4a>gRk5VI*SEHDi*4LM^G z>3#{83e6|IWHc;&`K0#p@V3i>+ETRlC%j&0!A!Aq#n5TJS5@9Z+0M%Lj6i3}xkwugN@)cMHvnU0P!BkYx z7)oflGCuHwg%r8qugEbyL#)tw zmcM}jd)-{&Y}_-xdb`5e5aY|Uiep2}&ic3F*tm6e=5D?qj)vT=05(|W=5B?oIaMiN zA!{)86{`l5p;$Ga3J&%*<0_sFhfP)l8_c%y?H=}U^0%VYYz&n%4=YLyF@`#y9c|K2q|c;?jJ@R$*~zuu7K0^a?)2WY+5xm*%sF@3CZgQ!h@znAv$#0d0t>Xa-e4 zo1H7aPA?5%b|b0pybMc9ORl2a5R=kKT3nlruZom!70`xwIrR$9@*y*CDz3e|JL_SJ zWCLo}{HG8$yJ&tUMY6%FX5tsosQ! zXo)zcy@Gj$ctBf#Y*lAkp5mKI z6sf_)C*Ov}S7%TVml~WW1hKQYyC2OSVJ+YrYPZ$SgS0cbn+VR=I90qI!1FT?x zRS00t3z&gSj^-kOq&U3+ON!0}mJ}n(U`cUN29^|;VN9{&bGQLZtsN8dt~BUcU>RtS z1eQroQ@Uf1Nlr`vNztdk(&to!*;_K5gLDiUK1U5eb~;>u#ixfc-HT5T1IubVAFxX6 zj07wxc0OQ9vGZZJm=rr7u%tMKfF(s=0;_!bQrF?I)1d@V!|6+4)r-9jSY_9=b8 zF*~i{>~+ABqJx1Y#nA?=GUz;DmZ8`$lUvJB>=(>36!ZmCdqH2Y`0|&cy-bQ@$WaRO zLX0m*Da;Eo_8i5BLs*E0DGV|8Jj;7lSTPpC(_4!-zVTjd1{#JaL1&oeX zd>AZaaVARI*z3_cz6>!7>)5<)iWEmsfKAt7W)^sr)A1Cn za^|*Nh*`^fU3wrR99>xvW`u(*SVrWpg|#8tNQJe*Qk#bs&t^fHzFf1z%n;+tHH&pa zjJ~(qtu)*TX3B5MG zEZLb87Qp5NR`pVER{$GgcIJH@iH4ZkysxM9H z!D7f?`e_c<;>pZIc#}u=Jfv7NS+u2CGY7^jL#Lm6)C7IGMrWbHQdE!DS!jrQh-aa9 z-YhA3NT;5=CAqYWa5e^JMS8<_X-UanidYjmsL=Ij1+F0`r5>#_&=9MoM$SUjgd8%r zKCHvf5L1++6u;&YUyAaOV${SaDoQ?4s2XB5pBEIPhM4xepu@|=Hp-b76r+Y%q4R>y zFhi8RP&L0_LYB9_qyRP?7O6NkQ54PYoHLkpP^=oPoQ-w`sfoAfDFvy)tlomuVA@-d znvhJQ>nMsxLo7?<8wa`PXoaN--o%hMc+UB;Wc4YW>{VJGQy?3mx-CauN~`kfVb~Lt zn8&dB5SElYhWJRtq%;OHBbHc4!%!7g#WW&zK$-|t6`E6ZKpJAUXns!J*y4zUu|B^3^bSc&pUj^tRPhR4F;#Lcp$ z4yrTMdsbvQi)sU`f}+}BmYx0mvXnD_D}YV(O_>F$!OGIu)d6WDbIHuLiabLsXC79_ znPaDxw$smGY0uxhBafZ=TLEaoe2K1WDb@@zbL(0<1WhE+3L&^{QR-6)Ig@66`qCX5 z@{mH#yn|t@5IB{uITL}*u*#l?bU+#g+qO6~SjB97A{-`P<5S^ien`7wy4(YcJ=f^e zGl9#D$Tf;lL(GU=gLsCba}5FuVbw&g!Af0Xu2JB6my{z`lw70uHEBs{>?(fUV;XD+ zHFGMA4W<;)>D~=7Z0_LE_ zu?acTEN{JJv2HlBFkdd#y+_(KG+*}T*)cRfWwOd%H&^7FER{1S zF7i!M<*b|YN6k@GH&+}StXj^Oi-SX~J@e(_;3&w5eA!=mMOeOER2-~IYq?oeoNK=o zC0{No4zae%i3^8AtPFK?o#&<`mZ9J{m~B;X9L$<1Mh>R-V&q_!q4V5SL{ggCcb*%f zMidPPvnC3PgK0}aaZbWphR$-C1vlm8gNc&^nEoE%|Uqz9CjG^|eLVY45bxyB05pnDKdJfpUnIy@9ttIet3hzW4X=uugSHa@G4?#OEdYpVuUqx}_hZR&TYnUXTFY(QLIA6Pxow*UbT<_# zw{6n^Vs+p8v`qtu*;Gf`rUBhl>~*AV8bGW_`Er{E5UY{;)6SODy;URir@oPa)wwjk z9Gu|>wwz2&UOUo zaaGig0GNetM*vLG9V!R2mO50<#-$oMR1T(PZ47`}zV-*ete#Gjb7LpI{H<*Qh%w}7 z9V3SrUyjz^0YgIUb%E_2K+Mh@t(^pjnOhg=>%F@nRQd9yepC!%>^V_83GBgEFLi;P zCWmM@&}nk8`0}N886c)M@9F$FJGteo@AG#_uqA(K&wydAg5@D?7C_WB+9d!>bUxAc z0OMdapHKK27NYZsHVb%5qoUM#`BoEI?7SE_S0R8&0jwPWGZ!%JfT?9{ofN?A1jJ{% zgRNcwvD@H`!ey~b0V|6w4VDInJ_hPU+qPiYViSWU(K5>r*SZ_%BiP- zRZe>rFr++|%mJ0@O`7a|z|y2|fu+d-6)a8mK495v@5AgUDGsP$Nzu2!;&bd|0#!BH z?SPfjK@%)}#!SHCvl9YSUpoWLzpTRc0>G@owgi}zsiCvpV9M-}H&{6x*!ZCkt?qO; zn6|VR02W{F*Iq!+?6J&ug#fTs3;Tm*Qhrz1A7WPLMFskqASOEZ>Et)Wa^^*a_L)QK zMTPdk(w7(YmxP(yT%=$=#5C0I1@oDgR_GeMC_coBQiFGp8)ED=xIZpO zP1N8;@4+&#cK2svmLKeR2J#%E+s0cln<`$X<)6PQkV76@$ zdM4F+LD6?GE%VK8u0`er1=^W+mosN5&<-(0c|q@lK-41(tus-NufC{L;Sl4?H43dm z%+6e+2s=dUr3gFI{fe2RbZ{JER_7>1*dbQT{H25AylfeJ{!+XhV(j@#@%G-pqzdYF zinp`8s3`S1h20@il()X52t6D&V1atDYO9{9Ks_s%G}Y@AsE3%LbvHdz0x|Zwo8tAn z9b7qcyW;f_Q=8j$;2dJro7;8LoE4L9=i4QZC97xZG&=m&eTT|fcqy$YKA43lm=9)? zcbXhbV>(98&07mmOdl-1`l$|%LrhWqR1tobcJVb@_RI;y*z2eI(e9o*BmkLfcBmXo z*DSOTW~CL(2g|^`uqZxH<;GBVRrnsF%~JRtEWUcJ!uPB;GpS*&fIY-==4t&RDhtwT zu+FRSJ;bUm_bGf2G4|Z2@I9x(Vy_SD_&LN1Rv*?c7DB8(>%$84vjDC>bEX3Q5M$4o ziuXf|J)i1KIt%C6>%%&l4l(wIFn^a~*QsM~2;Z9m-yH2Qc z<}Q7?l+Qm?qFk!;>R_4Ml&dFCh$N(_j*V9q6kY#Tn4c&^1*=CZq7SipsVn1%n|$?Q zh4MN07hioC`*vo@vj{1LWl~O5xSlvhIdh`I^$@cxw<$o+BkDGIk$JF+GJkpNOA6b= znDzNoVSC;Y&H8+*Kt06F&Tl$?PQXRI+&f&6iqHeh*@1H~%h`c*PCY8Rcs-cK?XeTE zq~s}F`BG+{Vo3k3WQF~CvOi7rQ-%E@W^ese@1j6VQ!duKC=m5DZsKS~omYDS1eR=& zHUYpYV7(R>Gh}G&?D#n$s7jWL^-2mvtG+D(eo~^U$hX=HfS6^uSbG5wvn;17`p+@Y zOlm0e(G%JuH!8Fbc3CpFsZ()#!eJR$M^kK`Q=}E8KBb3AASR{xa1WC})FjSLt?WhP z0hXv}JeWl(;@&I5bz#2to)8x97@(1fTkI%(EtVRW$AYrmrD zoPEutdWxdy5G_$>#KEkd4u^9}wi4B-Mbjasy+-AMd2OlRD5y@Bq%=> znDLEI1l}ap!xR)J3|gV{7h*wXsoUsv6W+)uOWj8CZ-|O6)J+uCDqy)ecGimlg|WsG ztG_6?&52|S%}S;;jW4)OTB7q1X0&GMLuZB=mWDaXTVKLtNya{ZW+q|j&2KsmPVhJN z^#Y8K=FD%3VDltM?DGB~1+BrJ&P}_;Rg6&}`f87#gWtSB?YG~`4Dl=((%s-7nSv(5@A_rvzg9rKW4$6#sCHHsZ`4MQ(5 zX#Ccf6j+8aX?0LVl=)I^qzWV$zFxvcBvfQYMG-5KX4yyPx`)3uf)qJPeA?k&lVh796e9PbXq}2M> zCl9K#`!*qfH8o)70wx47M*~aK*r96)wcQf4N+SPaf4|~2i(~fwhYC# z!BU%pb)=m^I1Twy4^>07w8gf;l9}7|atWh$YV((3)QsWr)$abb1Iy;xy{AXO;91 zMNM7=8=|Eykj*s8Cg_YfSccZ8^vVguq&V7v>8}N{!7{>05|c6OuA|~$+2RlgmXsW) zcs9grsiP^L&0H=i&dtG+l5cf>9Ab4|w^KYDVz%UPy^g|+FtzzzfoSH3X~^LUL_^ej zJ24KHWzL^D%#aavCdHf~W<;Gyr^1%4KT%wA;y<86guXhA&W4TR!Vptb&r(2`wT6lc2=@z!dkWDOD-sMQUyibS($%)p$H;8j`T%O{IOv#!*|3P^)hp}A&f#39CB z&s3C|g=l@R3c6qW|F427k^ zEPG*TPGBXa8BH&rK#ZZOOc7)j%vMhkWH8IuX>wN47OY3K!OEFW^?(V))HXhKaGY!6 zS)FV6OKQ|#u2HZUEWSFgj*+uYx5_(B4wk-LqX;s@%8;WJL1tlJX>*hU$q-}DUpht( zG4>qAU&X?*x~pQ%U>Tp=6l;c9y)-T65rDO3$H)mJR7=f{J4OyMDUE9#BZrujyoU?s zN@k`ooGhG-2Iqvkg?t-4~=U^+^nYA_4U)zazXZm6JnRAFr5 z9vvm{McqWC}x{0jsl0uve zEi5U_0FI3-UXsGh;Y7xK3RvcFBIN~_wUvTDT7kS|BPY@pWh#fV6#Sk{nM`IQ$Czfd zd45C5d@kQmRg@Iw>&^QRRg@IsDPfr@<#}-923na3Qy$zz+6DP+W3`Lx#3xfXk=35~ zaM)s1P66S^| zOJN%?)!4F;jw*XYoT(ZsXxYP?EY?KY*IBIb!;Oi|Jz1=YjEPnlZ zIZb0{jh8g1UQr>krnJhT-&$B(vs|c2Qj5~mQR7UKyr5P^RZ3!${ThRA9TME=C4Gk_ znX~aXuFxPU12&N{lZ0i!#wEG#4Rx|y6Iol5ux!;lbyCU%Et55obzu^g$(qP23THA| zW0fv@IFremNU~qHEG+896*4wT32L@(p6;%HTM@H$6IoXzw!OGQWZ9F~9IGkB?3uiw z9G-05P!348ZYUd=e>Jt1uZ1!HY9g&R|7s{ZG|M-XwP*RpGH=K9{t8qTC54&1X^FC& zM>SL#0;rzpCene(91c|}!BysPI-*jN!u+d=teLHSxmgn#yGdd1wh&pPlgXa&<^&;L zQqgm|CNf^yL}nrA%)m_b#FVg^+y;vvFaDGD7_ zrHF@6l_DNORf>`bRVhj$bE8s}M5sy;51}eWJcOzgB@wDpltf-Jsub}Ms!{|(s5(Ru zgsMXnK~ACS5SLM?x^*IW1tsLD>lIU|Y7#4i1@8dNnYv{03z>_SzFvI|uy ziZIwwDQ+I1YNsnTRK4X&4OMR`$x!vyB>A#s?kqs57!_-wVpO4ricy6gDn`XoU@b-! zdZZ(n8Gq@9JGjk?~s`jKeXL67|CX(LXkRdW& z#8Ie9Nr>|>C(^#o(VT^$QWD}E&55j(1hh9~h^$2kXm003)}jP7J3p&TElNQ1MJF;| z63~3niHw&7v@-x!C+A~l08sIgoOTpIWV|G&9Sjf|FCs3BTcsp}d8QNDpeBR8D??6B#dwVt(pG#!I5uDFKo4(kTIl%JR}-0hFcmybP56($N8wyyU|U zRVj&SCkPx(mp%FH=zvI>=mi-lyR~Bh7IvG`3o=j+PNxGz{JGb2G`(U+a)`?7vg4LYgiLBMZYR3}jawCn)f;WBbC``cA!9HDMO~*&e5sstdOZw1|rMevY4Ye zYPTsnP=Inc@-T;zv(6QutSHxV?m;Rqy@(D~zBIj#2Z*%iJ03uzx9y!0Kviv{+3^68 z)fdq820B}S@}<;uJV2y<-SGgF4b%3Ib95S8mVBs~NIA=d&qgBV0|TDAoC=$@p4~xnd{%=AP$5pZ#`qQ*AEJo}f5Zn^2X79#8G2DRr} z*y2?5hVc$1GtiTL9Gt3QV|>@LZ24qV4l?OO#ai<}Z*U@QdHu-<$K2BivO!H7? z&omEZzD)B_R?G8?t38`MK^cOGjPXR4FY(DHPh{EK1!jzAFYcgbVTZDr`IJMIA@Rx3 z&aS=sQbIDc6Is55A!l+fRoAeDAuntiGTn zhjAOzXJl#!F(;DWS zGL{@!yooG(0F!Swkz~JY*%7LN(4YTDS-7xFw1uKKxbnAjj87_^gl!@Y~N|_!ss!|3|qbg;qBh=(`L8VMSN0o09IjRg3OsJvM zf>KT}N0niMIjV{VR#21A1!b6Ejwo!RVfp} zQI#?g991a;E2x3hf=Zbrj;fSN;;2d)bd9Q%N!ch%(F>fNSaPOqdX%N;1wP7BG*OST z6urPlRZ4QErJBeDOcV8}vL|3#suw8}x_?6@U_Nv*%BEE&W+ru7qlrxFeD-8iWhQRgpBEWRiQBiW zhD0WH8lFeRQgWuLd69Kw0;Y|b$OKFq^C;@OL6Rk{5eeb9git&5eygU0P&+h{388lA zQDsm1G(a!1mL+`}povWSv^Z270eFR<&iJm0lU>+~{Olh)}` zN`=#F7Rm(Gxp`@1QQ85upYI$B{eHKb;c_uO;)^~kWyo8eat}n8tgp1mdi3|`m zAdiaqWKkFPMOI(3=<6v&hJ;#U>dUR6UW@ zX}4Zvyd-t{$}h71OzM1Qg~-HB^Yy6mg_7E>7g@f*QY$u*t;RmHGKx0bVTn(%EJrm3 zmU`DOvYG-*pJE|00oBQVRK3-TtxbH9jd*hEi!6(5$dXe{<3zS%`yTtK0J@!S` z=LxUxvEQ{!n>wb{1YFblDEZa2KFU^WS|4Riy6i(G;F{J)IjmaPN6Dyu_@nG5P3us} zvNrWm)t4;mYrn`cB*fa(i3}GtpO3N&^{yXPhEP)PdLk2BE$pMJD0$Uoev!2(c+}ob zWcs4M@}p`>66yo&i!5Ifsx6+#7I2?y8C87&qA#y6GOhzeUZorWYoI3x5Ots*Rkewo zCiz8{A$ikfp2${Z-*6dKz5r2k{UT#G(b89*$b?BJ`B8C}FlmEdq#_A2j!#6bz`}HP zC$e$(4VF>Xu7Mq@^-!PpQT-N9X+$S7?O)6IsFH+Cn#31rqcw>`1xdb>GAhm*TW#S) zhBvymk19!cqe*;`%C%3TjH;Q9pSEx!8$Vx08D;lq5+7BDMoh~%k&T#6>!aejq0(EO z$c9SC^ih@B;AjLVvN6&KKB_KnsI-1BvV0Adj_He(C5_-5h%{nazem}v8o@`IT_gA? z`P3E;)tuHAK8k#ISfZhPIV!D5%@9ZlR&4X3v4Q4W$u?NN%I z-s4b>vEJjO9Aiz~qpG$s_7xN&Q(81?kD^~MTh;{D{=JMfq6zFXC`6{UXzCsn+v(Gq zx`}L2&_jHb!>ZpmRO+#Q-=k`0aIQI&-n%mh|QxYiW)i1*^5-tv|~dxfpzL0CG(o2p&Cx#+#VI5=>|LqHQCVe zyg(ISlk+HhP+Rk;_-vADYbG)^KwI;u8kRQTGbD?QmnNx}Vl zjS+8E$Y*m^lkt8lLn}7#HJGGf)Q(J&X0GPsQI*oz`gS%qh}zz0M;>KgYeybs2JOhB zA_*dwd~FB2T(Z^IOuO&3IHP+fv|8W`<_E7G#pND*Fias4^r5 z+Kd+&OOuAXmT6ulV-kZKi}fZk`cv;Wds`1`sMc{^r$?2cJ%u*sMb_Ma-{(b$OjNWo zk5VS}k{(ra0}PGLL?$>K*UD0Yqv?6SRYQ81=4B$=DQG$#6=yB(nvNG)QxY7l#6-5Z zYb734zlIx{hZkAC#7HYKk%^IZ;Zd<9{C}I%GY$=k2EnEy!HHZ#sI{43BZh%)P(-lC z5|mPefEq^x^P5Lqj(NLvy zibC1GteQ~e6Spy`#!Ca|OBXQMQ0Zz5)re)sgo@q9D03!}mFY}_&5|@Y`q5HKgX6at zM>#n9(Ly=X2x>!Pqyz00l#sE$YaI2iU7_(LsAC?kosFs{Pm&1n1ocm2oE?)+E`w7P zswOq?*)fT%+QvUSCXrQ}G-StQsA^e4p*i!iWoiNBuco9)XIr>Ws5El2r%H^nTtb;4 z%O#XNWvj#*E;E@dp%m~;mQaq1zO$5>H0donN}lsjqQT9lv$_xg4FJnn6 zI@$8!XCjlW%#u*{vQDr2tqe{4ERYCx%qL>L@l49*|L;xwOpip?=wvIKBWC_;X#Qtx zB(kQ6=}_fMZZbA9gKAL%qnj$#3g%2JXLVLas2EIO^iL&al9H7Xs)i*gSs9s?%A0RA zlOajT<_J~KCk4Kxu_Tp}6l8kjsKQb*Jwn-9-)3gJtx7wevXm^4fPqcP0tscK zvpGW9OBoxX?4_)XoQYIXi-GTKP+#bim67w3igvk&iiuVTU0BJ`nvk^+s@hu;~-DlZxRpkktxC8HmaF%hI><^!V3H$l0>l1zbQRG6{> zLN)$LQHDKm-?B68L75?o9+b>v(Sx!{8TMEx?3he>Q1(HlJg8E-v0yDJWvf;eJtE5x zviN$&UCT1}u`*R?BBl#1)}^p08z59wBzM^WiHtS%OP+VCl!P%GAd!wsHbAKQAb|4q z3@QqzG6h1FA!N$n(UGQ5b*6yq(GW8`Q!*|K(ah zxeH(<-z)wuiy!!66Sgi<-R{;p+c~mR+y3gu<l(DcNH zMQ1zy(&zAR>!$p1rFk)Kp}PUiU-M2KBYpq3oJs7ui64-zuqqQV6zLXuemk;8(Tk+{ z1gSq+ilHcSk(9Zh>@8|piis?Hiy9XuP1&NB`4}a!QZ!9MRZ5GRp4=229BDXF7z#Xp3srZ>TyZ zIP=99k_2a&#GxE{A9vYrWeCo)g`?lsq3K(h#EGm!1Gh}#M3NnEy@|3$RwnA^jrK@C zo(^7ZId$gpEerm)hB{faC3>MvJEB_$wQS9iOdluImKP=tJ?Az8AX$|volID|iN939 zME3t{9h-3~;&1<7ybtHHJKqG?QIZ?;lmj5p`#^ztx0>U0yfoUfiDz2z*OY@@{tqMk zUHSTCQ|3z0!Ir=Ne;NwL0@CO-0Vcx;f2jog82cLRc^77F(}vIgSG=$G@|P~+uk4Qn zG{mi>(?}^4V;X5u%GTl@O&U?$+C$t5Rt>s#3AvHvkEcQ6Qowu&2r3247l205|bFHknA;}YvoHj(doV-(akB9`4;bN*(Y()xdzu>k1SdV!42iszXDpPHl*cr3B7-Ps&Le2S}5q z1>{=*XA7uk!ASyVqZqjb6t;k#B-j$Upi-v7jH;B$)~HI^5;>|;CSs#3MMaE8PKp*- zii+4MOHmOUWhv?)qbx;L4{D3yf=Zcajgl94furO_&y!K|;%0DEyiCHN2EGd_WsBjc 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%0DCadi# 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�&oeEgck4P7a@%cd=W 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

t2zI(Q!v+BGR+%;UB_Bv$k&@kxFf2>=3DG z*7jvD1FutksRI218E4lV8xqc`)S(<)dKa`wRKF_@b!_+3?WnF@OY7@e~d33Y) zQ=1a(8_+^^$CEATRYgp-LL{7q`N_@lo`#hWZK@T*HyaefHw|kIL8j?c=yan5!;DWz zB{ue5Oxs@BDn6txTg8X4&-jGmd#u?Mt|bg%rf?yZ*q|9A(-ba5rfFJh9x`pp6~Z?a z3+a#c?r^>fM_g-a;#V+r{zecTVGwH}(6%Q+kCF;R6m~-%ykfU_Hk98zO|Bb_aaK zsXiZY-hy@bqBzT17Z)>iy~5p_C&4Rh0k3aFl3oA3*%A)o7|E-1x7A%qdX>94L~Omf z-+s7P$fQ>}k8^9NE(_tN)QHoDZF$DWP;4JGq>s6hL)aOLU4L}1DE)?{$C|Mzi^V+t zRj^IkYs1C7U9yteI7OT`?NW++HhJ5|^lbIyn9fBb7dB=A?2|m`!$95HlHpbAQj`0jz}cB#j%{9NFAsc|8hT=OjTP%ten@Bvup_Q-z;=E$|mYX;<)!-lQmmKkJ&KttVD70gC z_2WA(nSkwQAcaPY#RkD(rFhY~JSsk?2YCZ)mmu5RdY)KOhNG{Zl?>T?1T<9C$b42VE zjnla>4W+-&l6j+ah=;RJO-Ya^C z7V;=psyfiZ9a!s4BN~r#5~;hviw{}EWN&UERYD|os!;c9NFL>qbv(y%Xp(Unht>p~ z#-R!5z;GV=6}!0aGGn!N$mx(=s1Lt##0jyxNbeOw(4w7Ei%5$WFMDX($LAcvPD9+j z(Z;|ugzGu9#^QPoVW&0=mn%RN_tPOauL#zDm?ztTyQqVA7>Q48pm3gT{7#JTHS+pgHEM4#|az?c~|LA{R=w3gW2 zR28d_`G7-;)z!SdZS2XK$7S)zx7()#oy+-~rC!r<{)Se+ot=+Ck8%Enu6Tx>J zQH^vl-*H53WTd%Xb{|CY!)Nd`AM7wYl=nj8_8faoJ~)(@M7-;t`Ixy7K{t$Z77u`P(SG z?so@hh-B1e5u+7EZMcFRBZ}w?=k5*3nrd+OHl%9;)8hGg-)sqAaQxF7PT*z+DroA= z`x{Yf8BBP8BjPid@cy4povB2G6rft!NhqZ^#S4gl5$jKL!LA8Te} z<36!p{&b}mFngU_a;otET;@>@ z$z_YOkX)u(O|kH8xCtqChN*d%5;k`U5pWt7BGRTQ&e$i?R@x=|~TyjpAN_5cHt6TIrm=A$;_Ox3@_#28zPX8xbEx;pUBqoucgGke0s`g?~3RIR*EIFw8JD z-zF#R>DL$sNT?8sZ)kyr(nC9?%tFOJ>wUSNC@h-v%|f) zxk`y#X30Y9aPHxds!%@e;g$zVr*0irnGp0$P;jp(kAiUlx1PX9!9)s2#7?tz&ML`H zm!3>Xuacg=@efDT2K0@8xCP7dR}9FZ^^-a;x*-*!7hE{+XvCF@7Ng^d*GY=-P^q5F2DegrKk7+7Z`D+}a_< z(op{F7L>}Pnu3`l;-i{;-4U^~i=5moME7~^aAX29f%~17Ll|f%KXyx2<*|MI*b#Lg z4c!kL$Ij?+V2AKg!X2BwSI9{TIk1bs(k`qW2X;hq(mo;45fw}Oc%@rKuOa!NL+bzz z=+J5;2)c!~HyJj*=7<>Ri=XCbE$&Sk(w#ilsiL1tRtM3~Atf+nqMu!A5(Cu`3msAr zizXI2;xuHj&=+sEme@JhLxi9qoYN8ILQ!_Y_TH2Wec`drbucw`2YYDU!Eqgu3me8` z{fnE`OBBn734V^amhZIBT7shRU+0xj5Dnp@&PSmtbb_loA|Yr2A9X}6NDBln=iBfm zE#RY$sO4#a80Ls$=c>*b(kpMagabQ{Rf!)vFUrIg=Nwuy@l}VsX|&^{&fl`u;-n5u zQ#h$Zlb4gafI(R^6#UU{!zymj_*NkIH7~bx&KnHu#p0YFYer*=>|Jg&h9kR7*O7(1 zc&71KnDzumGzPZM0Lg{MNuJR(`>WPv^7W0}NIcXfz% zp_<&`5%Ez*UhRBpE0$L~wDQ{DzdSjx^S7-84(!nC$4MPpv$oSZhAs5+%*m5#@jOTL zCJp0q&UrUEML&m>&id?(d_vGS4(I|@WzDqkHAf^a(;^5uPvANy=k_Es6mdECY#Oqg z?ka(Xwg6I-*=yE&l6>szOm(sa<9*wIs`h z8$03}q~(ogYu1(Uc`N1Q~g)Z}hmoxpL%fh-NYHYg9D;`m!(PduoeDT_xnd23Yh@BFP=Z>g!+AE$r zAO1?`91pD_Imbh*10Q*4rSp-8))L~mYY4fRqlxE^I3ak$L+cJs@z7-96t4kS2l3pY zwWoOQkX+30dCDV_#SC9OcRwmG7c+eB^N4Chc{$S~lEuI+);ppa(P6IjI+HAPSjcxo z?ZVdbu-D&8rT8-M;LI|lKwY6!`MRKY{ZEYGv)bx2!tlCJ%G>{1eLdAxf1LMgw{$n20|-nw|NvzLhVG8hgLD$ z1RdPLN8f~zM_hvlBM&K-qS-rWNFXN@Xzw5*K8j{1A)@k_z}?<^CxjGBmux6R#7>Fq zB(w*snoOW*@`&ok1ny$1@}x_48A6JsJzd^$L#@q%lBub{@sKx}K!M|pZWtIny95!n z1l156-T)Q}n*2N)tu8TuN+Dt7(vUPFe ze3Cucl3pd+)F4E(nUoOGHk)hKK(whr2;Zh?A$-$@5WZNW^*AWO}9cyn)L}OX(|>X@2pR=Be_h|LUNgIh45_= z(gaE~&FqA{IkOW|-UiJOz8Rs=%Cj@j{A*2UFCergv?b7_Y$b^G4lPeX-XU+!!t_HS zlUj6lXtLM~2;rlC_5xh9*D`-Agp&0tw||I8^p4v25~v7genchcch3Cgr7Eq%dGRBviVhdZ9TB?@-;c}H z5;~msK14wMzMqY`SMcd~Zu=&{q}Ki1_7O>~!#V1kBd?Em=tC2iYd$nNx#mObTORr* z)zbpr_s}HUo!uRaqy-%9&AYux893S_Du@=iCnVxDl54$*IzF~YRCq*uRD)|hA~~rB z4|~M53lDqKebuBW0>>kgnxgQqM^sJvB5=Hb8tn9izda&$`oiDt4$PW>)!}b%d7&z- z4!3*6s`6$_ceMEvXH?Ap(h@H9NukY?)^`v(E^$`_I z?F5`h)V$PAqh?Pbr&D6mTR3B9!-S?s#BK=N z?^4`xYV3xv?o7V{U%YzB>L6Y{w5Aib9$HKA`iGVauYU`5xzMGqpjw_LS+)XtWwMA~ z53S?u2!z(2wgOu2ucz$+gcQr#b*ay?X6;0%7jvgPDz)pMs}Ys5F%TlIDVHlx@+2sT zVe6KKWzD{E^XFwyF&2$SKcaSF%8FPU9~;J%-zEC^*s%8P_6p4sz1}NCqD0*F`7yjn ziMZ<{l8oAL(07UYI-F-dq$;N`Z?;4fdyJ%~Q=-@lR3tr}61N^vN6;JL=Q&(fZs!iK zf;{vkdsD!9X!Yc;FY0kw^Vf$~U6-ANCE}XimOwu# zp(*H=y?}@$qhj^~B9e?!70tZzjCOqbIk{v;jkxwBlA0RrXH4z}1neeDMG!7C{m(aF zFsWAzKAiFq3D1~_CeMww#^Q|+O$grj(6Z)ncZ+cQPfP^IduRgkxQA9v9`}M**Q~th zp^3ze9+I{G<3^8&UH|c>7yC*imV!4uqGHX9c+(?dXD|eZ7c+~U-4Gle5j(rVsUC4U z!Kt1nQM<4r9Oe<#L5FjgM^qIZ&S4&rENlvgd2UIv=>DAf*Kz#jC2}!n@ta4K3wx9I zcMK*wJmrP|u2Z?lLl_tuPVxMo3NkQpibuppZQO3sCAZpz+2H?;>m`5y`7`D;duw3+HyvWNkvyjCQa1(3@dGN;pM%vn5TI#_02JW&$af z-UtWJ`Kx$()A+bI83P{d9K+Zd10L*%WTGOOo$=8PuIoI>q^A^I*AcZ3rRZxJ-zmjo z%_xpIaM#Y(1r$ddcu18f4xe|9Y$dTUeBKeY2n!SAgrQA*-n~LzD>gpw9;q%P#LFGg zo3x2vJ8o@9sd%zoOr6x9QW=@}uJf%=Bu?wll#0_jv=TV26J<4;x4Iiw3_?87A$)X; z3p%0Kxm?hp)uDU5uhLx5CF?R#=pnhxGZ<1j)#8HA>rY%dB?>(vKB~n9-Nt~@sg{^@ zzcO=o$jF6B;$@B~7bZ!ddcRX57bc0%Iifl+NnFnn*PG(iL(>Va=Q>O-w2$jKqFk6H zuIGqyVUh%@x1E8VN^v$vR0q1`K9h)wr9`{1zuK})LeoQvWuV+=5)mI=5`~_A=`kwB z%N$XU8P_ncHX?A1`xg44loOH8P)b2p{9c=bR#Ar(muwiHMJaaW;1>V(r4` z9KuJzc$p(Aff8{j_l>NPT~88P-8q!~uzhn!8p3xRQaaV(J8rXR4LPUrn=NroNsMx% zB0S1{sr$MFtcT=HH{4GWk=S&Do4JdOv;jLKCOzVGW53B;UDz4k=8)=A5#Hu3gSMj^ zyv-5oxyPEB5b;RIs0ap%f4coM6{J+6*dr2@Qt@3!)IQ9WK=nT?P`%x^%cSJQExA@I zxlBq<(MqnBN-mR<>;Javu9Zr#Z(I!F+jJ^~VHy^~Hx0{F;+uwr6uU7qq}WZaLUNf2 z3&~~L*Dj%4Hn|GPWd1*vgVHttx6oxp$W}-k{@g`MjMi1O_ z5|N-A?LyNuj_i#m#1*>&}88{4ozG>tRG9d}+6J8QsM9MPLPoU^#eG?9!YoW&7WXM`xX+j)xoJLGm>oXjh{V*By5xq$n_=O{`VjRM)HO9vw>=zJ={-q2&!J$=!C)iID z^$HE)2@ch)Z?=TDIF2M4c&r&C#OWO4`i#>#w4UH}4iS`w3Mwyfh@do-3pye} z*&Dv+R(;bEPUnz@p@n?U5j7|+Eb!uHWo`RQup9OGo_j_>I@!|8oA|b*?;JEfs>vZ8 zk$`lPvpFI@^BZ@iv@BIWc8bqAB6f=E9+Zemr>Gp!EoWD{i1E-W%`F{TF5J?g)ty^9 zG+DT%i@=hL3ACF}B4RLs=0R@3y#C`s4y}1aledaqL%Kve-069X!4Nqs0I&mM0KDjJjgBV)t1%bNREh|zPQdLB6f-* zemsW&c7vA7vm;_RXmz8&DT*-il69Og@*D|TiP{JwkEjV)G-2cs<-($Mz#w=O|gz@n(l6?!4J=wuHw!MiMe?0>|^d$eTsu+ zun6My5-sG`?iCD-7w>jN{YeXpE*&4^#n)YYq$;steBBY%j1~$2&z(gGTF3z&ku0>3 zJ3Jy;jJe$55hqKLYbQkUXp(gVA9=*d!c`txF2z0VO*+X(UI6Ec75N=n#|!xmDaaIE ztaqWF3ZjKYN-R$ceG%Mw=H$tgiQtYn^%1k3*N)WGhpRiH(y33Ijmw%1Yh!T81dOY@ z2ve_^U5U#s-c;7?6d!d&b!U<|r~Q0eEl3M^r9*_E1tPH{Du@>3lbtLKjWFw6j$UDC z^6BjrUF_EFf?j2inMA z4O3jz5wRPs1WiYjiw33wW$^u#$y=aocu8xloPf#mkeO z;lJ*cH3JSE6=$h_`>j>`fkX&dXcX$mU7g{L3 zI-+XQLSfbsiAxLJ+Y(Ww>7*;X+d&|UDY~HRh-9&dUFZ0TqY$aO3BGya+#EzC?!|*lFOvzL`f~L-%8{%H4DjQY8H~q z)GQ>IsaZ%avxh0ST&8p(xol=1lFNp}kX)vTA-PNw`!?hp8PXtA!H@=-3bqTSK{kwrH0!D0lPQTq(@#x9N}8<`Pkt`HcEP6z;P*8gSjZXU>?E!?yLQh4eMJiC873~s4oGf+;+Ekt_HVZ<_#q~0wwTrET z&}0$A9+C?+wS&;sGmcHUaDz-}&1zeqfqhkRgG^|hV|O652C+L3k_)A^I}ni& zl-BM*m$k`-t+g!>5j$P|EO;VLdZ^WrbR3rAyWU=Qb{RtW7&f~MO?;K0i|s2! zB#SNBFsaR z%)UZs1qm(h9OU%Hjp!kKW_q>Y4+-Q6-1Qmo#zJrGfO42?U`TLR!Ssk1#0 zacymTAhe3j_n)KMjEyHhLtjLP1vn|; z`uMG8eEBg>54iM0MDzWN29LPPbMUtYR1zKG;E$;C=0zO*5!H;U@a4C5^d_Ugi62p| zDGn!oXL?nhQQ)?ZNEV92U*8JUn-oV-c*O5bS(~-+$+uQjY1V)-gvdM|(u}qym=*!!c@PvtCwR{zY6+%APg|%DmF~y-P5#7w$NTxPIUT56MOMyW=Exi(GU+4|&8Sd$T2- zQ=1etMfiC9>Oxb5kLS@*c?!d)9&sJ$%9D_q(Ue^(UIk4)`P4(IWaZ=nl!(e>OL*9e zr_>@8Mre4%%6qICr4lzDBhl!Vxbb2&Rh~9+#z!QKfl6$64lKg3K1DIF(dd>)@m|qA zbjxkxdAz)7_90R{;`gS4s90f)mnUa@$@n&@R=2MTTwkEA@+pK={g=;-mC0PtwT-eiQhxFdSSaMOx*e3ZfOQs!A*ZMnZgN?>m|yo)cE zH7(%cj`+Pv7TwRAoqtxIw4mAGie)xLeCNBJGVouA)-L?lA?&(ePSxJdit}Zj`&E%3e}AmweBv?4ioJq;f8) zvX`V%B{u=OL@qZF9+Jzc;vu=*Jm`>I&O9BG%Z-kq)6Yxfa{74)-)ZC_45yf(vr?CM z^Az(ChEvQ#3cArPbozM-hEvQ#-aIRH$eTB;g-$;&!EjdUkb=%U9m03xS?KK2B?>w< zJ%sPn^pIlDE*-*tY8pDbbctL}1rN#P2CzeNITbu4ms7z*aybRp>PF61m($`;c5t6A#JdH1UvJPRkB0mqmfM5~FAHO&?k=ivmBiT;`%a zv|JVien>9#Y@X_f6l^Z)L)a{>5DWhfQLtTfa%feV-}=z1GQahqRb>~Q9FhyI z`-#@gZ{4$V0bZgiXB-cah1She9r4D-OE8>OJfxbmZroB#QUM51m# z-Dnt**3I#Jh)DEouI3|ZND4L|b3_U@AM>Hgd$A<x8%PS-6d=Kd7j^DHt+N?uB3UV z4^1oPojx={=ba8w&3UH}t?d`serWZaclyu-op<`snrUw75S^S``VcjA;q$byJ+Qz*s10s(j(sN?Go%1b-v~! zYAoh)p64UVg}%=79Fdir=lKvJSjl;wkEqR9$$6e5QsTv~A0i7Yx!Cn1stUU}KXOC{ zaSr4|gr|!OVLzhs=;CfqiO3Spb9{)LlyLW(ACXQldJAaJ;Y9o9IX<-V<~csJR+{Jd z(AeiW4pFIjjt{MV3wA%W(iiN0NG>#MUgaaMt>;w^8CB<1K12u#Hs|sYSLsE-AHq)0 z76BiTncJ-?ht|6DKOe%*=q)ThB6Zt^=!evSy6r;rBg%!kElB=|T7uTiQytMTyjb}| z>Okw}w?3klpmlR!A5m49$GNW~GLQ3HAHqk^79D>?eDrMBtVE<|zdJp9vn9KVU?D@oxNM3rn8(EG>UV1v$ctj)i?qfehZ)oiT@Q^+PLZA^RZ;KG*u8DaSnQhbHLa@DHt-=2{QY z<@wYPDUU8M*8YeXDDiyi5!uDL&kwB$7hQh{11q`c`iQLLJnV-QL|+#&e?&E+sPnf+ zq^P^D<&dfvz;^-r5%C$v=ZlX>Ll-%JNO=t6etPtXq^795!{vzU_&Ml9rj7H=AJPE^ z=egvMh=HQ*4wr}&tw8)U>WiGeM0pf#4*H06Y7Y8CN-+JK5B`YSlO@bDUY@C%WOZM# zdqn-dJ6H~_^f}l=#>2(DAM%WyniD;u+5bG_hrGfv%_V-s$ugICh)LQ#DThd=Z|4h- zXp~!c`ysEeH*<*}ah2YcD2LXb^M!{DXbWgRMrx(E1@#>#9Yo zM>K(2VEUnT&V1pAgxerUzc z34Uno^M!|e(~D0(6yKXInWOwTQXhZL)icMD2Hla@KP52ebFHS+<_|9y-q;RD_^C=tzC=ITB~ zY@h60-4T7O`>D)B`;r#-9Wp&$-1i~%)UAu{ZfA>)o*(n>+i6Q`GsfLq6aIbsw7Wb4Q1C=kDA-L{4*q zd7dNc$9bL)5m3*~*L*~B`bg(%j_4!Z&ru%2=Ubi2`G{okkld7M2<)@BktVE5skQWARkg`{XUm*MBnd1tq+mR7&|BN z5!X5M4u|ynyu*jcV)`~m@Da(P-{<;`XaL;}Acy3s!{-5xsKX0BKGi6i_tlonOMDzM z{nUWvF1Yk^o3r?m_0D|8hbH}8$A`wgkm(S&-F(J}ylF{MIN9=~4f7!PicxvLRe1;l zHJH!%i0jpYU|wrB_i~IhWO*VoMNo%~;|rZWq`H={^En@JdN7}Jh^3gb z`49#MV_xPXsxHNuvpFKgY1ej5L2(u=eb1C&VLJD6L=&*Njt?ow;6B&!5mklav`@3F z4es+2_X@i)_wXT-QKQ90N2ErJi$0{W4DO44{`sd1dM==0s!?)EU-A)8_R!^Aay^!V z?)(EKCsBzvXZAza(%I`anfB0Cy#(K;*tq~nwq6X$WuJdY zc^ke%_|}>E4DqcqL-=O>L-^LGA;oSG$jOLrpMQve>&%b_Suf^?^yYdoq=a=}&PmnW z2OpBldMb~lhTJC}^5(wV(CSc|UrW@4k`+|LKog#;v%j9{4j#{lE02#eB+r@X-p4Q# z9rETr(a`G0s~N&KyPZpwEIMvCT_m8cTBvPEkMU!Mh^vpdGb74#MmaIPqH`8UTP`|h zzr}cHowGRF(7v=1bq{=N?v1y*ig?ugt`kXdivdk69yQ z*e4oNB^}R?8BwwNpC2=#Vrc_EW?iLblw$78$C_;x5WkXW(}Hc2o>I-p*_w(P@mz++ zz;hXzOnjAj!zT=vWoQb{Wf@w(EOxd$Y15)*4^62SEqiEgg=^D>4ANMRPA+M6_mmoY>@n!?N2S2=y#9nCS& z6h6n0mZt@~OXFUV3oYP!Y^!3qa6N`r+uhCFa(h#PlBos{WN5kYKxPb96&}dYD$VB@ zS}SojhSo~FjO~di$Y8L0HY$(x;bm;UMAjSbLxeCwEQB=%W5VvzIHYuA!U9^4NC@_Z zo3PCnm8Kfpgb}e*4Q|4SYP$ixQwHlQj=>NHs=+@PQF(M?;jIb5mT(M))SZTK`bAVf zmW9(VqBf&1oPJqcLeQ7ptWgO@7EZqqA(#|yzDzW}Q{IQn*@ve0J?F8Rvowac;hF8T7`vzeQF^GYj8UoNS@ODg1& z)Mi8L#+Gd>6*+UoZN=K(Ug%KwiS+xM9qf2ZQA%aj-xGd~+5H=p(mDUj_mbEyNf5DD z{XLfbz*mc~=q;C$)~WTDbFo+2{oSH`Tch2X6rs6#nF^*WfTW!Jdl@h6u)p`tf)$(p zCsBVZs=$-cug6;u?Ehy{T6kV%7Khs3tHB&_{asVe=5``?Z7`|k5~*9X#4*f;QLkO+ z?EHH2uXZ>2bF#U=SI4cc`#av7j`hC(FQ3!cYo;EgT_&|$#G&3h;`i*+wVLdR z!&4k8%OjTOCD;vW3+z53c7qzfanr)ure|!`euwjrT-c%A@_j@?Fh|8ay;`+4g0Bb; z=aLCJRXO4W{n{WeiZ@rm79>MVR>LWT-N3g<@cyu4iv&NkdM*+?#GEZ4{E%FXhP>Ai z3BkDS#+Em$wtK-ZQ}P-=dB2-sE6K8p6Fj1lOtg5v3ntJ$%-I6M%hRCB`yJ9S%-L>y z=@sUTOFXnb+vP6z3?QZyr8ogfzyrXeOCSL{Q}kY^uE_9 zdwTs*o|nS{Z2PCORhfAF5^vuolM$HaOsP;T!O??T5cl)*O z%*2>-*?tMti$`4EwqHUk!iGzFU!U~~Q)M$HH0gKh;GRvGojM3HRXcoe2s=|{+a;p% zn5rE`xHsj(4DBewOOM8AI<^t>&{}(^77i)Nbj+4cL?xMy?bGQ^_RBs`NG_&hwtFI~ zH8W`$o%c_io7-O^m(#FA zWH}8xM3%Ephsbgo7P^7%61kkAJS3O1ZinP@+H*)Qr#*+3%ZB&RY0o8cIqf+lmm35R z$>p@?kX&wo89MuTiCk`hc}OldXdIHuneRh#xv}k#TyA6xot|AHmm3)m$>qkRLvpzR z@{nB4_Jz*&T_Tq=*@u?PH?`TM_4G4_64uVnVW<+0SP7Su^(Ef4vb3w1-z<@O#+2Dk z?2LM)Hw7}=va1-X^dl}$+lis&X&*7STjKT#N2cw>&}7-K1Hai48;~(h><#Q?%7*Re z%%K|X60a~ZQZAR&WtSw&CFPR) z?KJI@y6lo_bjfnrxOix}Y+O9FTo#saNG@m5LZ^P0$mO)~&}7+|d1$h1%sez%HfDy- zqFo}F)3-x%Ig56PEN9UUk>!-|5Lvc9&-EymvuHg#UA#mtr;CT=au)57TuvoJHmh?kX%kB56R^$+9A1Y#@C&|ayfPD*;%wp46kX%md4$0-TE_7OViCj+W z4$0*#+9A1|)*X@yC&dl{M&#Yt;Ce_dr*((qazpJQxt!J=BFkxA=(O$-A5ku5arXBkY6{*o+x)H9u(P1H`6Jfmk2Pang#yH=2&PjgKzlNZFyRvz z5Rrr|=vHsl%(}HT)Ovyi6(-P@j$ByK9Vv@}=@cyxT9*qND2QEuGMzh876a3nLuMs# zx8&x5G`5w=j+7O?P$vCNh5MTX{Y@kKTL%5D68(+6zj60B5&ByN{(Sq@49j7Tp)L2L zEQhlS{l6S)qm_Opq5rS+Ys5dF^N&w=>)OHz7EG}F))q*xgJ=sP=u($fr)NhOOt4Ub zok3eP!Oov;wYnd(UNFJp0~Q^y*nmX_EG}S2&~^arM;TuJzbJvl2rNQiSF7z}wM7an zPGCpU7AmmgXbThA?^iEUVArTEN?#jFk|Rh}4;}5@`~VKAOvkG-(&IrY;wrx1BsZL?10#ck=Lv^wD&0KR}ani|GNkU`j-l;boDK|Dx+(~FPo6_8~$s`ITw7N`Ndd753PY#j7>QvlG2SoPy2_^~2 znw1hv5)mJtznGGU`}oC_v?06J5?T^^)c#~L7ZiRH+7~YTB%}ydN)$?$Cy|hqnvRtV zDdb%7t=&Z>r>mik>dFTVnR~@|+K~cku4bSr=OZt*@5@IZw7-Hd0wA_hrrn-QO#5 z0nh!F+w#8wyK+%huT$VkUs*R+_kU7dZhb@dcgAfl;Ql|})71Vy$xly{dA#${wY(c; zIh;0D-@S9X*#9TVX=49hS!cuhe_Sv2sE2s58s2;Xd6h)lC_AtlVX z6{Ui2RxPB@X4OK|K}CCPq?;!X<=eFZJ)GdW_)FG&e|%#J+WHTOasNNnbvd|Jyr#k{eb_66{bF zDw&BaNuoow*d^8Zk|esM>RpnUm(1Z*#m5zFEr9$EWlyR#W4BM4}Nx zD_t~V=&?N-_1IR&xI-(+G49anxgYcDO?I;g#H)nU+$F20*v8Q6=`?p}@``lqLnAM{ zSwzBeVK?(0LD(70cD@h^!Ch25U$EKeHM z*K;4+Ld|IRb_%}#o;l2N_56Bffm$;YGl>hQn!n!LHTXW?k|a8GxtEklyOFaGCFOP~ zi7vS>yrjmxqED|qKx;nqW@pHI}_aBD{K2Q{XIFiE7RY5e|s|h-TPO~7DZQ9Msa_~ zyEnV$;6&OmPLijRSGr$DGSJ0f=Gvc=`|m(Qeb04^IQ zbr;_rBH?D8%@b;tCjG2u6DVjk+oa>3)xejGZ(rP@iI#=jGnP?gZj%nVu#B5a#K1Dv zKp0j*mkIPOmdne?R5q;VKHo!1GV2uJ8=!VjJle~wGxa08IE=Fq}-9zzRQVEw-;Y$+dlKYNIs>UUC&?O01 z!f4Iudq^&f)=py`Q7(+ue7{GO3!^o^ZbU|Fe%(W4*|abum(7Mk$&#n6;`-Zr{Y~Wl z_EvurxWC@1p#Gncf2Hp*1LV1y?QO0{8TmK*LeQNnu#(N)8{~zyt zLj8Z`-WbvU$2;S>-QB!=d*{@r|L>g{&kZ_Jmj9N>+ttmxv;0q&`u})mJh!21O1q7M zt5nYHg!Joxxv~?lzp?i>_Ws76Mj0&Iw}F!3hzWX0*_5zk)3HPNn6S+ykBET@6C~bO zBu^7K5#RzkV_=^en^ppABj#K5<-L;lmrMvz-YI)|zJ2y0!G&h#Xfb6I2_BlfV!!*c zS0zE;p|ye7@6e>!*itS`$=dNy4S7l3cZob%4YA*uiB)jFs@N-Y(v>KW)o`ao#0q+> z83W_qiA>O%SqOPZ-t3GJ@`yxZXZGWa3B%5aBoE2OoJ%BmL^We|w$XolT7(VyojKPw z`g=x=gqMfNV$2j?9+51@OxI7eZ0j3}{WPsG+AV=fVn37+m((qn#C}OaT#|B>oDi2_ zKOqj)JD14igg7LZt&2i(IX&;$7GVD)#F>yI%H_2FkX*Kc3Xx@>Tu3fwN_x}Y+>FT~ zxoqtjlFOEcA-Qb!5t7S&AMxGyaS2(rI1Z6ztH+QUnSL&|{TPe-W}rtT%ht6avfOCbv-_+rk;^;+A-UXV_3|P8`FBnm%l(qt>ymQ6q}(s@5tytw z*HGVKu$pzCA!2P311snj6TKXf6?D8ozaCN6?4IjK>WV6yli8fhDTUCoc056E{rNh1 zS~jL&&Mt&jK}Q%utDut%p*rChCX)jVIxnIT#1RJFbwqEnf=(&uuAVV}jwgf^WI5?v zLd3ecH!UZfO9<7jk2N#Ra&{p`MeyG_!Vr;!mYj|-&iuK} zr0Lvx-tmSIK5jhc8Y1E|rn<(Y`JZBG+BOcVJWUg^9@5Ed&DKOI{@LzJdH>iP>BoA~Kt+!yz9Nv$-Q0NAyWDo4b)EBD1-w9I7QQAq%s)svMCl zUsagR1>g6K*<3*GA-OP{+lDz}&3cJkn9arDA5o2%&F!~DWHz_waY&7r&28r#QH`wH zw?mU(#RPa^_J=0R!t4(%m+h1snk?JRIaC*4GFcXm7qV*KHqN27%eGPutw!5OIy70f zwQ@)<%w}t_WzB46Bp|Xdo4bWQK4x=ULWktSY;Lg|k=fkN%%O65`MQ35=d_eQvw-Wq zh%BJ96QOcGqR)XLbatYKPlJ1A0_d28E;=Fxt4_D$vVXB$rzh98xUn=ysnLZ))~#9UX;;asA>%L`V_lh(EKAPDHfoBq;0XlAwrb zUozR`a7j=|F8p$?42r0k%n{uj)Dl)}@yjjTqs*90rzJugb=)Hql8ZT_K={tR5`wK< zAbbwovx;4$wZHe(?)uaI-gmOioLs)OYyVH${@w?-pZe-=h2+;=4l}FU(us1P+BS6h zJKkB;t}YtAeu+NbS<~H$>gauc$2&{9t(_<S*?e~XdRGGUcda_3JYRj3waF&3UEgu}%pT8a-~ZPm zo5OZ%#h$LLOhX0P+ryEve~$2&*;U)~Ns=8)!HwJ-67F=s#XzBx6~;cB|Z zoH;cSk;0qTIVX`{hHhKWIwuj)o6MQx5+Xk{+2(bQLWEY3qY$B*=Uy4RqY$Cw{ILeV z_Wxt73rbA(+*TEug!=)9dp1kpC`D*Z;S5Cx`wc+7$<#SR5hAD=pfeN^3CiN_)I@x2 zoTCsSxlm1naL-K39E%81cm{009dfTwc+)b+BJ%%Hc-yQFNkqiXs=0_Q zqS8&$oSf+H+I@9SPK2iL`;qM?sb}2YYUZp(9J5ZYZVOFbM=tVED#^^vk&B2E)H#aK zBy^6V(|;Ju+}z+6an@-+Pm+YpnKKqSKW7H_OC&vG#~h~!&G0!@5vrianwifza*<I~-lP7On1s>*8OPVAb}6B)wu<<{U*xqgk{%K#|W@U6?bs!$nki=FIJI z5wV+kIV+K`S4Xm34oO7(-qgycg)eRJ+dIFtz>h7E{@!%+61vTDIlmCmhi0qOiG?;B zyvbHMxDb&xvsL?nn({OQbFpA(7R335cCD6+^9!M=xN8PO`xKpK2u;(s+tsq}?9h)j z__hD{s)?9m5O&0ls3a3H#~>oEo=!uA_DwnI(5A}T$4Q6KY=&zJL-@?V9BSy0CI%+U z`Gtty3T4cUp$_iem_&eJ{=yw0F7>#o2-o zK8D2Ef{4>*H(ZAHVY=b6(4X0b#RKJ+Iz#eSGk0RfF%#>ELP$wW&yKW|DbrJA&V6A{ zDwGhEJ#tbZB6jwuoplWRP90b%SW7OfQ}IQ6g)7TpgkF&gS5^V;UU|0A1;CGkttyNi zQWDGM+(J9mN@BnqUx-Lv(<{dp`q2crSTydaOijUZ?W9b|^vch5R&hdLmHM*p%FDbKaDHQ^;*x#kI7 z^IYPUTTCBH>PynsOOoXh?AI=#YnMx~pG809m8)jxs(A^9n+k+(DsYK6Z=n*p59*Tf z<*+)m*vpdB`jS)dOIFaL5JNYuzGRs#(lDedi!=<8b76#sR=>p$9>RVD(4on)h_BGC z?=P8T3+@W3!=keeVbC3md5(BSp*^niY+tfm7F~5{!Y`2O(4<~mROs9_mn_c(M1^i) zbIIgfBvVMgx8J>InjjDU&}nk7=&_teLn^%};-0B(Ys5WM&0V0=|eC^<5JTUa)#w-$v^8N7Civ#!3gMf13&r6N6 zLAQJi5p-rQq?zXpEA*z4YJ+*hO60ONWk@cweIb0ac11I(;EY~K1?S5MDQ_k)gl{g5 zuKQ5lmI)yx%zF{?CQX~ixyV!>Vrp@UTK7n5!q6$zC6!mg!uZAVcDFraT^F6xE9~jQ zat>8qiEnPPEQjiW5_WMhDIr$G4~e%quJo&4<UhleN=L-0b*0%T`Oqun2*OH&eJ| z0{VULkXKld?eO;sW9i4c@6#QhiuH7e`S=GmbKAZ>Vdl1dd&rx<_-(aDypQ{m)pnb7 z?avcwJD?#3sw+P3O~310vWodZ=g_3yR#dMTe6|O52%nL~Pb0V0ja{4h736*od}eNL z_X3ZZRljuHZulC@PaKCQ_UxiGbd-4ppz{Wy8taIa zehGFa&_RQAT|t}Zh4ziPSviD{mFrH`<-*GC^uU`fal)YJ?s_#TuF)4ZT@F07;z1`!F$So+zyBK@=vW9fuJMC`1j69y5nvyz(=Jl2eP-1H$q zna52Z4yh;eC~mxXLltBfH;d>^c2V4Th=iLHhBOl^DQ>)QMY%AR!p9@($ZcSSN?xux^rbly89I9O|sXZ@|%XMmq{obtzA?9(bzz~zP!y(y2 zjeTKL23+&T{Vq)aEzRBF<+dx)?%=k>r z8v`cGOiCld*^*1fJ_B)RHJK3zk!4^1A^LoIp3eFzjO-nlJ)$EECHw51TnJUadzNIE zEEgviLd(U;g^*lKEIXq$hHJC<*w~IRL2_YLomD7W7=wxBBJbn7O23&BrxW5J6U$p* z^a^BoolYnqnH213VTNAuCIeb5--rxo0e29wS*axu*m(H>DQEN4!Z<+4>ys@bzNbf14o&kj|iOZExv^k-en;h>dwdKb3 zvpNy+`TmQW+_O#likFyeD8dJk5X^v8V_S-zu?Cilxy96h8R)}0_C?iSvOIS%;n2ig z9DV3!7MHA`h0GsXRm`-DoASz*wJx>m6&jjHp;v(rJpy!OmDZO%YMe%qX|&d$W=b zSETzgwcz%no)O8!E>4M)-b&l4ifXH07(@Z=5%HNkx~9J)DEfsZ6wV$|6S9P&+9P6T z2}QL>)D$eCsPnbX7-_^n> zBC_-gc_>8OBx}(PA*OmaK^|JxyRn}rpo<{;)F0` zuIipKUc1aNb`7!%3qz#d-EW8b1TInD8HJGU*f!~*<+=UQOps~gc0>==f0wLACe_8v zt&eupuV*(ey2P96z8%dY%6gv5g6zD>TKZIh2*#T&*{PZsS;>t| zhva4z?gt|xlAe`xFe5istsDcpn9Bu94UUL`C2UGFB1^cTtXKFW`yf552O_d-4o`&0 za-aA;E9=LaF@a82bmC3%*3XVqM3kvnpa}MenwjmJ2di?;0tK>%RFGj4v!3186b#!= z7sSV~x!OOZf(BHf>m9qBWJ1?N>(3o4$PUsUf$X6*C|6k;8ahR#*(OB0?<=A?MW&sG*(Fzc z$$eLavU+77aOf;WiB~ppE6f%9KIhOCRDyj{7XpiKrYr~DP{G>wX7R>LW@L+NU3vYS z(}=Sv`S7mpU3co)29Xf<+00^I<++(&=vp^#pIkOYZ-7`qrrL$Rt`6qI`Tjg3?p84A z^Be;utC6X1*QBl>GvG!Wd>e}L8BRbh=g3R50GM?v>39)0T5mnlhxqHS} z5btt+NPI*x_021}cG=Ok*tdC8f=^5Agj>%xY?Q1j8|Wia{T*~kX<0M}EkgS&9HIzS zm3t-jODf@#>VC;Syv}J&kX)Fz%6PRU zb42$(6X^6sh`c6>PG2;&Qxb#dWJN^snlJjTiHPJiUv#pfDPf9MLF}Tl6d@HfQFMr+ zPW7hQpJNjd74&W;9j!<=G?zJ{-w}wYdzeQN@e$RUK@09Npi+(vEqBmJdKN-+0 zSNpJ%en221cII*Ouv*-DLkxUqiX#R-G|9xkhgOil_9n+`82{Is*(hVh>wUq3G z+UOi{^OTY#JCu%GGUacJb%+hyq0^qt)|Oz{tgO3*F>KvenECi-#&h0pUR1J=)E-A6 z=qqTSLa!)q$BIJCl@(j4<~ia_#B@0{qh2!0WK$%xikUJO$UXs0i<`lY-L6Iv?0dGG zpBq#+h;)1L>hOzPOm=hOdQ<&OFuR(#CeNX(gx$^^VpBL_Lwm&xu~6gXvN*FAsf6cK z4S91TQrEIi&V^d_rqUN0b7%rC7^dTfn{}3~Sxw`Tb}euI_6xsh$=ccoSlseTFcAK- z+a=4)V6bZ?53R`!eZ@3mXApO*U$2mJffb=GB}!J!UDdv4oCVgp%cma$yM_wTL)FvEJ+zCeVqCP?8-HI}_+PC?euBwez#$jSRk{ zGiYx!F276>BheT==Px2Eg3wJbSR@0uUr^J zhcY6nr{(Z=C1SS@cK#wiPZfNunQ5cnDvyy&%;R=7%G=7>4-d5N*4h@yZrzSZ`cs@3 zm`9=YtxD}g6TtJ7fc_TfCA-1%SE7kXu2g(K3Bk*kKb=c zpo|9=OVPA>_M&3$lPf8cOYT#x(EG?rFw8K8JlmI^BpCK>SN44gCHGmC+y|H>_pv0& zGTWx+p=xr;7(N zTl=p;gv*4yqM*6vdh>Ll-7-C9N|={m0-6%Gy|z5(F}uw+472b#5++1z(B(3F-{A%9 zGs7Y5+QmFEm%}Q?bmlHH9OF-@^&IU;%4C` z727<^tkG{~gevxk-?OqlR2?oU&r7Ob30vuBF+#Qc5wWwC&T&M5NB+5Ldr@CYQ6EZ>Hq;W{rMbqe~>xu(C00bkrk6UIx^!YeZC%>7o-KP1Lb7 znT~oyB;hG`Su>e_G9#p(Os1dAXr8a0Os0b$5#{nemHaRE&Lr2e9JzvXt)ft44YG;M z$kbK@O#}$q{|;n!%tO$q@PP{mm3TJ>pW%FLoQ*rZBX8f+;1Lvd1^uRQ_aP0SRwDVb zJ0fH@q&R0^&_KL4(G!IrhB*pioQNoaxFUEo5A^y8xImn;#hsMdGpD1pulQ z>B`^2C05&A0L-7mWp@GGp%gJ0CGGJ7plL@)MUg`EF;f7)O_?L1BcZC>1BQnvcUr%` z?2!VN+Wi*oB;m2BRfv&JL7+lJx<~VY;!{%sgcy;@`rD;xpsoNgJ;MCD~8!VeDnX8xGl;DNUMDjCq zu+jGY1@`Cmb+=Q1D5-CXftfH9Bq`%vG65PH?!7gC8wGT`1gLuP({7hw@~?+DX!l9T ztYoaSYbAIEqLmcx;YkmPnO!mg0>Q6w$$ihy`b?ThWAV5Gif8sc4WNb;&+M}rWHuG? z%r2miSt|*hT|mK(QS}t=?xB!b^;l=$${@4qiJ5&Q1Gh)jJ-og+viNFOR;b@pDq%3P zM0J|brv#1G)CHW7BWLLM%uR&Fx0e=G19)JKxP{tM%uR&aN0D> zvCcl5K<195ZYThSbh(Pa6NKJj!6`32xp&zUC~_kl*G zTxe7_Kq4-XT*>-F$F+9|w;~grAjdK%JwlcJc5S*2*p|n3NbHYf6&6t^v~CN3fpFK~ zLgDyr22;pbtVycA(E>SxBvs$B0i{=RV+R^83vi?4xE2YEDpb9BmthT|G<6uLB0Edq z7mZ;n4b*Rqub2jyNF9ww1BKa^A7~W{ZQvH$I$G2X#`dPX;B~mpkk6P3RLO8D2px`8 zk#O1bgR~MMET9TwUCgrkG(gO!nIK`pph;quU8Dg5c{3TN3Ei5EWV%5EboEAYU7bNV zu3p0Dd62pf!*BH$>zwVLHe;P#ivgm)ukn(;?m>-ka*NnnIK?x&EQ6bsEy8cfnO&9v zszO|H#|Ti_SU@?pen@PzWyN?{B5i!t;GVn z2?JCYso#Ib^tuAWZ!JM$W1m{!<+KKo7Ty;Z$ZXUp<6Vfsqu2Z-DE7q#GV3ovajp(f ziuZLV0myDKGCBt&_DAA+kk}E4b3jtbneFjrj%4>FCL49K0SQHbBASI{2+<0Dr|4s0 z7ecgYGFsgiEP>)oxdMtDL%|HpK^S! zqwJM|Xi_}Mnl8ow!Jz6f*%_&b9&M#(yaDPcN|FUy zg=x9QnXZSaw?Z5AUMm1<>`Agf!#YhA13B};HXYL=VS0q50FpNJxE+pe=7r3$Ig(0F zLIkShJTpM_K*`C3B$b>@2vo@_&_LixNhixBT*j?{syA+h&AuX@WMATv)QC7I;sMp~ zco68U&#q|K$V;c5vZ|@l>t?6Yzn`A_>MmTu^tR!90_NC_>M6F)x#JQ5DQPq zu_BV{$pyYRvWaR064d>e7f{nR<^|Ls+`aTP=0#FZF|R&?Kpeta=~4mETA3LRA443i zD+WNDiuqgpZBx-r1AHm9(l+V?2V`y=b>RSLxOCwFXt;FYpgVfB837m6!YAZLA2}P4 ze8G&poREcL8`NHQ<@hZTVI~YAdLW6X%)S5=1D;_)X#6dW4f%Q8XXXM!wO2h~1%fl9 zB{K0~ZHdgv

vJv=)jzRvNZpM8kiK?Kxn&If~G{DXP^JEIe-%`!x z-2XvV+DoYqS*B>RssngbYC8a_(4QGhRN*G9f50|xHmpsI_n%R7r(;!_8kPQw6AY3_ z>bmMPUKBQ!Xu?>%m<_J#1gmNN)|0dHavY>Zpt#EGte$46Lk;lU2zJ0qgP8Z0Tk6dK z@SNj@^D@DIi}EiJJIQWJ%`7G<7l`A4?DyU)1(lfI*e5$1;GRY{+@;k2GluOR@jvAj z_hgPiXY^L=Ll-NxLm^3ju=3|(Ts?C zE+Wj|0MkL3AHnk{g4l#+cN9eMagkyvps4$&Aj3imB34L2goP}YLXHM=C28zDFV8KO zk{%1@C}B-$i>0*lKpY`#O^GiBAteqA93sL3uYe?0;3q+#&|!fI`upK~5pt^87WHmp z@zZfL`aSG&OMeBW;|ms*x=;GB`4&#c7g4^I`5bq_4C}a%#nI-~mI_n;le0N52pdxV zkC>qxO?idQ_>R1y9FloD?-+;2-?Y>jLbn3C;Xh%BNUqoCQ7YzLY9{RWJ_Jg@wh01lBm(z_nY93mGXU*UdG>N)Dr;(`INYsm` zSZY8KQ3t|ZUZJSi9g01m(0ZK4+_@1;pfi_;E3S&hT(buE`U`#x$HC;m6K66DqmMCo zyYR-z|99ZIr94?8++Nt4Tgm5~j9ErZIadcIQ!mW5_Y|ehlSC#ejENRb>BrHW`|ss; z9hJ)aF5$lb>HKt_rC)Z;;|0h#@U7zX5NpFcUVv22h7bHVAM<$g5ditiyO9FfLzylT z-(JAWV0d5hKDQDFb)dO;Sc-6P99iq_Eez~`ra<%5qSK8bwl?1f5absOk@7fU9*+|` zU$hN!=5fNvyIs!w1^CSSaIorHTjt*^WI1=OWssIA9`17feh%Y_4Zs^*&f9mgMff9U zV+8o|ZH|xr8~{sq#^uC()bs_;feyQ3dE*IcdIhq{7b!IqPf*iobg=2j;oIi`WX-jS zk?Ag$+FnyDgJ&%2J$h_yBFJ^*v7B{dlyBmFFXxp`mgz-WzuBD`_H*;83 zfUn5)DMa#e4uF*Ovl9PNu_hiBbN+x^8Isf71|N)P%433TIt4i%$h7}D7Io9*B)XJd z*XtgD<-|PSz;&Cuf~!2d*u%Quaj zeaCQ`m!ZSG0w5NX-^J2jNYXL=s?kdZADt#3^J0(>-1-vQCv@WdiLr}v2<{$yLf-PN z5|?kJIL|f(1>qAgaUez(0g(S+Otf1c-0Rnn5nrKko}3*N@r(bJk?(d${4rMP&-l0{ zR^p>C*^=KME`$Z|$@hH(n1r+Tngjgs)OCd~*>msUW03;l-sT-!X3vCq2Yhfh#^)MrT_)$jed!+hdWX%}wc~-d zD&&(5&Uwf4)+^i#dysMc-BeZpK1JbABKko;FYz97J@{!hI!6Xf64T${i=cuj(*3bS zl#a<(Ig9CYU0(E`MvegxJW03nA0z$8FiVY?$W;71o=Ih2j;F+#|0;``*KIYWMtZV- zQptZ0Nv@+NcIk^R8vUNS)QW}8+eK5mTZ!=xEA=%-&eS1NsKBxHU4{^Ii*kAmveet1 zaBLhQ)zfy$`&V%^y)&ri8Bv$a<29e^02p+krDpg5CLY$$t)>JccDr@hk+v{ z`9x59AgpGd+?{UYB~H{*x*NB*{Ukq$CKf&4QaDaWBtF=ly8;}&EaRm0n-6mgQ}CZ{ z6YpHjnV|~Kq?R2?r4s-MapgKv%QIcR z+){%)$j{-@?S0N+JVq|`wlx(=ko zG<` zrPLkTT_ASxk&!=g$-DqCu~Hs(pAZNjm1GQIQ< zXmX@jG->h(5MP2Q5(JH|oB>RK7h`Ue{mP5vVxQPcfO5w(Mt%el<6X|O&CBp7O80B$ z&l$6byh1p1<1t!yv*$ zA;M22bH-B7q%xDn(g2a2G}Z)Tpq?~7AUYiKWX|{wgfvWc&d5U-k)2doG{HAj5*@J7 zj$?k$923}fzplc`l&1cf->k%YEYVJ+c`}=Em11jMfX$W3VQ7m+3_6BKq{%DOHXfl8 zr{?0a5$5|__U=$5Uip|4K9n=F#!6iGfl?n!7&ljoM#K+;5?gwvj^qq<@+!W9SkQ?gv$4FUAL6n4T7EYN_YG~K`{Oc zi7w9$8sm?umG`E4Cj0K-r=cBGWlbtyx$><4EZEZTROS7tisY3QS%f}n>dK6MYEXyD zhf*c_c%(seJDnj}j(Zz~XKG~-=J=n1qqS0cS#B3QwDt6N@xUBPGbOQUmE8sLJDbNY{0L9v|)-|!TRpx!1W*YWR1b?m1_f6l}`vKRAH9bPTR zn~yQVbYC|Cl^HXQCz2$l2acTCr?H~P`ioIw#9?h2lu7^R4^-~jh(*{#eSLp4>sV}C9r)w0Wivh9n#EQ`Ec}oqG zT)(1vv699Lw`MSFw*4Uc4*A5$G~k))#S(2>bTJOwP7@=Gaf`@a%ES6Al<*(>u(!_= zRf{f07XxDKVnv9_Csu?QgQ$SL|Iy;HM6ryb9O8`}ZLeS*I`uU)Lc}}+Z}8RtpQGAV z)c>a#hH!=o?JG)rw~@0F^op+iq^B~wDCc_yi7BXGo%be3;_UI9A0e{HJ{R)?|STAOh7<`C-m9TzUo_o}GTsk10I;i^Pc~$P7 zLn4Sh-5&0I23DaE^Pp~Ko2KMSMt&c`{9E@!f`ag8FXeydhkKbz8O`d&gMH#WJOx;8 z^=Hw~UuEZ1Ubw68!$4tQKn!zB{a5t!iPJdGNA>Fm;9(v0D)WrQj0A`=*uys(>U(~S^k+@b=eO}6SXHzIa z$m~{sOQJM+Mg&nJPhq8w1EY>3`nE)`lw5tQ1PCvxwUC%;mFEETwKw;CWb_a?GE()o z!tgF+^f(AP;!(G6vSacUgtFNn4oDWbOG&Z`1k-`4o1AQye3T?1qM7+N*_JflKqAG2 zq?>XdBT-vc-mQ|)Z3(Z`eTC*Sn7Re7o4z|j(se+EyE1@lg~@YCH}whm^rA9#=jW8B z-UMg`D66wdlFtJOFDZ1{9IHC{U}v%cAq4=@h5wQ-!EaDNEq-lEa) z=1BZ*MAX}R9o(N+S zNZrgv7Slk)WDz1lSs284%ho^1XgJycF#GcqJcy>5B}v z2Hzo_uijT^U)m+x|CD^eeGuHtrJ14`>TM*hk=ym?{ zA>!Un$opTih)U!9{^nzx5)#g{66-f{i(A6YR*dF~^ORZ%-*h!gp9ObWYMc<^@U-=z z#DA32{}K;RRcbgyeH*R+x8b%AOk%|$HIVPoe6tG-V>6L9S&B-L!fXKrZlmWo!SmoUhmnm>;S=W;B z7AZAPhZ|CR6Bb)`Y=c#naUWu(CBV(SQ!AG#wU+Sc+4j)Pl>i$6_TAUb9Cr=#gM{bQ zWQNj>^RDG8)zKYOEre?c*L`5QsV7_TUJ7uHoz9%v3;B-)Dm&dxi(jOe!pYL6?EWV0 z6)~{!iiB`*FjHW*PPfsX z1?~f5val@B(m&H^Awf;r-4ua!8?J(@A<%93NQ7n3hPazHGnidMMxAB;?au=U0je4Rv8?UAQqj#|?GYOzA#Ed_nW9IZG6k!D$ADzll@6s*}gcB#(rI~dA z!vV_ncSUv7L4KOh9cA)gUD*mztNnF$O+By6({FdTm1r{2cVkmS(9Jn zD^52Qqa%?LhG1`b=pAUx9?1`+n-5Ful+^kaj_wniJqWgUI)K?U;RVsOkUFO~g@FR((2ED2hMeY?* z#Nb3xa_<_SLd4MP``nD{9RWu5^ZRJ8A9E|+X;Fk2CX0ogp^(myk~RnsVP{b8(bPT# z`dnfuPJufkg3u1mE3fe>=0Kql6N)^{0n!Wyv)c;W)%VwT1kvA+$o=&g;)$&h+@g+C z$R+AM;UOJNXCs%WV+grKJsAr59H~ztx2Odpf(h@h8$@`EdL|UI5DD)(8-($qhH&5; zHgML9sxMK`4fvFPFZb`o>ufL~XM-@DLpb1U;4Ej#<-e103f$@Nx?=jBj43FH2tq#$ zGA{u1+YD!T(B?p!eHjFV%!Becga0r{fG`DFWZ10b?(_w;BtNHTS?F>EpU7^%8M1Zwwq!>E057 z^IfZ5vOJ1-#bz+9+OZ?amkE9U%)vWiAnNe2Oc%m)3D10GXsV3x0>VQE+Jv|=5zLg zuG)I1g;U{6HaISmL|@~T{hY=4D|Fb_OUXg9%KdF8mWZe)`jxZHdKiJ^5dE;7+B}%W z?$sW^BX&jVW1vM>2aD88Y2#G_1dCL)7Qn1DYIe3&C*)&R8U{8E7{WmV3fvBQ(}073 zDOk{e7F3njQ1cDs+Pc>6pE?IoZ5H4$yGx~f+B1)dv^2$+Zd0dU!r~gJ^;x^J zasvz2fdGTX*qu~rN&|M2iRuF|3!rH_-m&DrsqGb%! ze5?i`epXevfF_(T{9ds;xVzJhns@QHTQ%aEu2}@$9w#|0LeX?}f>OJ)Y0`Nlf{|+7 zVAs0WbR&O*(Y-n^LXxk0b?Tq=#Kn^D276@cYk)NXy2CC7ct!x}u(JU+3P6XI*4!dt zI;=Ei@v=x`HUO9od!a{hEQ(`#?1cfG?Xeewp)tbtHn3^$5DwZ~;An@v3Ro&^I;?^H z=BEDqrEeyOn;|qkb`3q&z+sPdD;S4fqLCbuv_3^6-AdgIqV6~v$!!D4YDnkRCqV2S!gO4gfSIDI4~6q z95EHBzx_2+usx98ohV+9Z^m}q?COoR z>^GU~^zK*nMIG?z!*A38tNPIIIP3?>s3A;ZU$8AQklB3HA(lSBSv}z-zZ9dYt?Ks< z_Q#`99fDF+f48q+u2B=L>KQyhq4`X*^v6Swmi)g_iDmiw(C}U*zw+?!P|&0Hanr|6 zh`{@~C2w`G@0e!zfY-Gi?O@Qti)RO^&gRN zrL{HQ+g8N?5&!AVEUbiS4J~TlLCAiSpTs}!#<`C&O(Wx9ceB*}Ag6IUnE1V!& zh;+^-6+*X`o%J_My+;na9$WBv(1Oz6c0JLp+Mo97wOqpW>_6OsTH9~Xnz~GOB-g!j zxCIaE*)p2g-O*z039p`p2Fca%?mbYq(@37Ed&W|G|HN^CDl2glHrJ3}{qSk*HoPw3 zQjXE?YO94X((~Y5Xzwvwi0JK=m+nB`MA8Y=u>PsE9HiMBSaKaUAfwOG2u$bEmZ>ZD z!$c4wKN&5Oa*ig7K;4$oiH?Ov2EJi~Eq5jGiBTrFv4pi)U;)05028?B@yj&_(njX`Qgu{rF@ps_2 zo!pBI0$5K(zc&OFg3uFD<^vcGhrz&acSyZTcp_mv4_yE-R{)uZCIc)GfO+WnK}@0& zW*+*w7uF@=(5P4kQ04`eV>5-Zq&9)&XyEKT)B**P59c8Rn|UaNgLz2c=sYw8SenDk zLq1IXBX&o6GC7P4G7`&iZ{{Hbhx3rih>mQc_(ngDCy7x9tskdF5L!Q?h(JHCfkxh6 z4He`%5DXo@mWhJI5TYM3gy=^Uq4mQcvibo-e+Ow8(x{!w$WVTvW!0W4firo3w04?= zF6Ti#>A*5Rn!Q_j>LIlRGiL1-zLfMCP@$@V%A5fe80`*@o@yo{cEd#8($o)V3LRDO z-^Ryy3A#4X>y0#*eorZ&ByMM~($TLD9=XT4lqkNJ?vPySC$5d|D8MeBW zjzQFPHXkEj`6NqQqw^%M=`8!lA(OdKiVlKkO)Y#Jb3TZ58#-bp5-a^{m(O!M zCabduPgU>22dVUPe$5DP2ch{k*U^rsK_L2r(BqRhqGE_Awnm5}Dn=oWs8)E$9IJVV zBPxdY%xlE&4~g__O(KpcK}c0XN0dQ?j;I5mkOm6fMFwF^uMiGQF9T;yFYSn$=>?2* z-r|Uwxix2lFq}g;;B4S5XUgRZbQ3}!2q0~w1!@qXKsR{-iN=UTVMAr z<#Vj^Wakh;|F4iU9m=jp@jBNZ=WnPQE@OQTM5h@g?P`A7HNNA2f4k=239H>`*8Lwc z;?x}FSnXzTr0F984redZ?g_E8X_kNFspbl~0=z3Fur0=Tr=gJBA8#=K_sQch^RE*) zj|J4{2ToX=uhijKSrXy&-M}?n4wh)DiaD0LPXMSAQ*l9aJwZpD^9~(P03xpCzU@&= zBs$`m0UWv(fQTvgbGVdSraI!-D{xl`;Qc_c99S@@u( zB)S&)^?BYcUinZKwx=iE0(qRk5cHTTsz*IpV(@(XN>*qhl8>mro*W(|j?qjl%S>m) z_uibrkZ>XdPuouBIe;ku9XdIgmT4@FC0yyImVjSGxKE)~oRM!Uu9AqVmW(_IyOwbK zGmFwU5th+Y?9BGJbSz)W=pVuZx~j~J5Nr_Qhco3XgGjyq(SCoH5tlKZ2zh6cYiD6* z6S;1djH*jAe^8pdlcZ$bQfnHRND0^cns8Dx>EHtaxT9O_-p5!jJXk5I%FmLG$yF6u zM8%J875Lz<-AC71>dIX7uZGLIb&~31qO@d&m(eAeeh_s};{SRRkpG-!9uo@&B2x~auP*@WI zvcmHInzT|K8TjT3o5n;-O5P}503c&bO5TcEZUA|k`2GNJ2NTzI4WCd@%YK?=sjf6&&5}g<3bbPrk)d`deWl2LnU#z4`>XneMbFYY`!?c`xBUfdWZ6AodiAN|UmL4lt@;K~6OZop+v8O5Sy->A=~`Z36m; zt1Y9BvudxP7)LPtP>wE0#(od;-}eLTgh6484~=ZF%=JjVW!Ky9V) z`%&n`Lzo;w*@4lmdeVJ7M+&w>56k`uZi$;QLsm!vhP%YV+gKkk(sk%)+46tlfn`D3 zPQp&#*`3NE_#c>m_Gw|T`GNIk^>h~NvO1pZ6|p?7v($yT09~xI+G#93Nk~7)S@yx6 zd~Zb}$}HAd)0MuJFy%! za7}HF;~sQW7SUX7=ekd#heAPfsOEF64tn!7KzROU3o-JSZc8;!h4g!X$(`IP@i|VB zs`hl!V$-c9ZnebqbhKIbIj~IZp;>1TS*xxm=lX^VNodu9pqu#SmZ#0SC`OEsK~aP@ z>!Jv4)`5r_A+1q_7$M_9$V{LO0d3WR5K)Ilh*0S9H*3~`p~exjE$!?`5A zv$thS_tm3JhwsP@@1MV5`Ry#+vkE1u>ZwBlMxm}6M5wCVcr$s zz%%U10{L*!H6S{Hm^|1?_v^y^^DGEPdNp~+^75D7QOdx1n~HoE>mZO>FJ$o}h!RP0 zj+?d_%qtG|J@S(mS;?PiL<38Ol%}YGLQEni6O*&5<`glq~&1G&o&gkAqjo@24RFB!h!G&92Y({;j+_6DkYuM*Z|Kx z2(ZCclW#0P8m-%lX!57hw>kXU!|6ncb2yeg0@Z6g(6Z~9Artj``}@m{msp9_pYVJV zDH<T}wE8 zb#xPeygHhaS4WFa0N};Zl)O0FAONq8X5=#TZ~%OE8F^@Q;tAMa+=A9ue8-WI%w=Yy z@MvHp5<2V*9Qx~06}6Px&&YpeG?#UgbldDJqvyj!FySMkA;N!T)Jusgc>zr1h0#iR zVRSh__I1(wCCa=mdKKKnhZVjqY7p7iMQ?$G1)l%9=u$e4LHO5u<#EybAZaHgJTB_# z*F_B`^1A3-LBYeatcLWturQd$OM9hv zB8h>8MNtG67RkRgWC=uPr6ByJuYl2Ou$Ixjafy?b&siH-7`2PQx-3^Tpnrx!IHh-_ zbOzD$Hzz&qf-Ky4l#~8&M;{iUwJfSA--uX*Uf|$x9wB8*$4p#zJg#pB*G9I$lzyYl zz7WuPWTR4tvD|O|f$`6Ig==ZYaCrlW$Cwa)w-*9n;Z)97vPzd2<~l(} zzq1SWycDx}IoZ_Rv5&uHUoza5-03Kn#HXkt)NXp82m*~uo{oecf`IyJ zt>eFTov-Jm6o&NX1ISSV&gcVtxin9g@!!6jPUlq44sb_Mh<1NoVktp4A1*boLqf6= zYUUYBdq1H*<(8nx32J=h$NmV}%mY=b!w7t}mouKSg0Pm=m-59*;qz_zB1YW(iIdTw z`TLsmT#7n-7W%I%^J9@ain`2(K*MKPZu!s%g32jXP{CH#e8c0nba{U|!P&qFPc{Em zmwBB3^A;2SS6zz#R4qT&acqj52QW~84@#;&B0N^YPr=et1)X7fAxvl?5|*c5=Kr^V z2Mhd17k5nr7G`PW84?(VvkXI(UO${Mes)l(KdX`t49UXvZQLG8yAkBo*XA6{E7eYy z#X!c7utvgxAK@9op&wzRLErg99VH}x>rD~imA#9v3#Y>0`+z4|amL>??2w>CK3+)2y+2KKf;-Cl}Rdex)?;v>Ee!{y>5oI4pJVct9AQ& zM`tljXE~MbH}ts(NmFVghy{}I5ssUh41?tY9PPNtu>iNgO8>8OA5coMw~U7=s90qzbI>OBz0OQ)=3-6|vVI@mTRtrG3q z-y8sX5qR+-Tlw}4BD)CO0?7`r4;O(sTwNDS+tZehSk?xk5n@@#5Mo)!5Mo)E!X#!{ z#}Hyzw}*m`n_UD7A_>AQ0zFM4n9#CrfQ0&H7l8(0Ot26ROfUmyO)$L(Yzg>eZM&@* zL*ePH3}=(XECLOj5s5wq*O)|O z2$ATEP{brE2r-+CL^XvVLV>;sMNFUuLA5>ovAYlvNYudDdTWVp46+I(Y7pU4#UPA8 zLpWe;;E*x;k3fH{WJ08MFm+XPfmNcnqdXAOMf7VCvKTxEgor$pa10?5jv++CF@y+s zF+8FI=KF6^j7a!;5HSf0BC4~RBBrvpLlKj(K^QrNa3BW*mwVyo1hs_kgORjdC}D#L zC2SCea|j2V4ID}sZh?f~fVq}%aUkI@ME_$V{t=Rxh+_y5aSS0Mjv++EHY=29V0MkODn2BRVA3W=|#48m{@;efG$vy73L^7K&iB0?9n zZ?3d5dN4PLP@*w}NHm5JiN+8j(05@P6KD(}0^M{N{Vyg_F!90MAVP`$07Xoq24U(Q z!a=aBN*~p0@WHUz)Fwbu07)16Xld99(5KV$8A@=_cqx_{0hhtHdjW%wH$my z7xyAcG!6u7A=TW%6{5Q!IS9mP5KX7&Rweh@-bYX``EFW`dmPGeg5)5GK6d-^PpF?k z*z3inRH*`LSSzE(7VeLw?VRm)K zqD9sMB;ImUclJ|iBjL<$7S~b%=p$@(12|gGUe&QONnX{+n}P;$fSpNRiJ*P}Aya4bG&`f2 zxST{0Cd~&0Jjx8>;DAS^LCj$KX}-tK zxPzEUkAalsl4?HC>Y2>Y0S!X0=u)RlWB3$$j@D%60;sEepVyBts+2H3ugczxzr6sO z54IXpqX8xgFxx6h4Fi}9;K`mxs){bL07!2V_NNmp2Z-!-Bv&Di=P6NdDbdSZqS|;7 z3q4`B&MwcKIg!Ex9Q0~I`Mxmz6H4(SOiNd%j|NU3={ty~Wh&em5tzKaO1CSS8w$PQ zGJ*maL{JFro2xm-_svbKL~|PMrbyevm^GqmR+UGflAEMJAJ8}Y!gABm!NB$rdnsdK zX%O0;{( zKv!ZiIT}Pnl5U!{twlwIQ}gGx=eU>CdLiZr{2S*)5cpl(+(;5>R`+gl4^tdz6}c-T z2wj{#D2}1f#W{rH7(}Ev<=z|gjw30L%vO!{Lv%~;g;*KwRP*C@N4@s0L=4T(*#6qP zR{&^p?RQ9H=9)od&9xavZDp<<2}0P*T{k3;B+;#iVB-&gvh|pY%Aw-}tga|Z11onqWv^!j55{)55qWz(W zNmLLrB8Cz*h)|%zp@<38AOeAUDntYlHE_1xTB0KZMxjIvB9y2>n5GKhfU$wIj48QS zE*;=5m@}P92S_b^oMRE9;*TI)IXYTGzmKW7L1b0@WJq=(edt~~8-!7Dt>H0*G)RC5 zsgBXNi9Kr!(fjucpmNS5_;w{8!6_-{J=Z8UrDjq|KL}LgMXbd3&9S+l&K!+cV z|2xEpL`Opslc*qKDsB*=L?=KIktkP*1B9t}2nY2xuvA;@KdG~P)cn98T_{n52qkI| zhI0r9oDCcoXtyUA-?2JEyXit^hvxj8;=>;0{F8}nF34$HaNwg>h?w3*Y#aSpf8uf` z$Cd2Z^giE8eD=Mi?(FG@U&C;^;RQe3y*nTKWw!5{eIDScr!t)Hykvht6W5g_ z{5k7|-!bBx%k-f!>fgJU?0B4s?e;nN-fUvjt(#)2-^e`i4es&QwY=3XF?fPIU>SWv zq_kP@9@b9!D3L+vgCWUP=i;fI>MxWasY;fv-o|~3 zG*iHA2c`*6wYzT@AEDEI6QK}9UVUzXJ32x!^f+EFn7K8@_y}U?zZ0%oOB)*= zLw`InTLoVb12Y%sZus` zIa+W&nX{Txy$5n`TaFeOgw{+sS`b6X(SjI4juu1_`eue8WM~Sn4_*o)PxL=LYoIY8 zjCzM~pxy?KtGBzJ*1HyFRZ`@kJp6ihfDrxdowBOjM$~2v6jVhJY5fX^Mo9kVK#~9I zv3VIxC2ly-Qd55CqTsn!qBYObkA$`SVI>|!D^GiZS8AS$<1ao`skiU_PkiM{rItLR z@xfWko1}aE{W!Kxy*t3Kvl35LT58Oret4(VY>3^j!^(a@NC%F$)Ca#&lFMWwvR^Fb z=Y4*hrh`!_ywYRkN$9Ij;h+-RCS&)o61(2XmwrDc{F0S;>{hN0{=t{9L|Di%PBKwrd4?tJu;>zmsCLWq73JU8WMREs%={ zYFrU%dOnN(bz)om>%4Y4>EIYZQL&q%$kBYBpyK7``X06F^CtzB)$+o%o8|e z+Dbe?@X@$iI3<6X#OG=kOosxp-@ufX_;nRKxa6=`XDe|Yy0@M&buW*X^g^H;+GX#_ zOkwXUi_}*ytFo4X%h zwWeZ&I@?zFrZKi!#P}ahicgO8KlCyv$IeL|hz3tt0BO>$N{wvdBtF0%FR<_}16Tx* zC~#fv6Ivy}TdpfUAz{kgs@)&@0lN?pd|5bz12;&MM+zB$jgx3NaMVd;;D{T9&y-w@ zE6OjOo9aM;HV9B>H|PRwjudDn>=-Aq1qu;CfxHkAlt^H)cT9nf+^RqZjut2;bH6Lq zoUvQ{7{$&{`9~oKja2q-xHIgHj0uT*JkDmw2FRFtD{;?%4?}w&ieKGf|9}H$BeZ(e zT}&QJL{r6CHl9Ng^4`Rt>vAd|x`bK!9KzSJVD#-Dfe>S+$Cnr-ypD@d{s6_GuLj+m(^g;BHwc-1^?N?OsG0_3 zqHPTTJ;~;b_8lVOB%1;uB?#wOg9zqWPlbqJk~MH-k}bZ1y0nKALysDCYfgjy7^p$m zefO&gG}U12-}0=&>k;(^ z@*H$Y8(jeha?xD-^klVG89|r|Xf-_n#K}T&X42Jax*WvbAdH&c3_J=rR8v6&)$p{Q zh6q!SyP>ER7GL`Hcs+!r9{SIo%Ut4A982GIDeeUpy>c-zb?@wn3)>2M^lO3` z{T6ZSIDZfwv^J+XxjzH+L=X&mYS7+hOKaVkj+n)-r_7tyrFr~j1 zXgBY9tNKiI`}sXtJ=7ki@S4)48ScdN}cHe z%opG%t8J3~@B3VKyYbD8* zh^Q>dT8&Udp%A~y5-M7h(yk~KX+bMV{_pR-_j~8gV;*K&{^#|2&)oAl-}61^o_p@O z=icWoU;AnXrI`*;4r^wF?vY=ABqVRk>AK7{A7kThMam`{TN$Ga?%@`L-{0y%WmsQVrsaRs?s#)=N zHwA)~J#p*RKH{XzZ0^N$GPONkHn2$j*#$@)+&u3sIWtuP4=@DA$N_!M*JCnN`PD#@t z$SSmb$yX#;m7%~?#d>{DFt#!G)?pL0ZK@i@e=o;xE7Yy+EFQ)Z7cDh;uCKi1LIul1 zxDUl15&I|kDZeQ0x?pc@)(yNgtpP=R!B#(QAgkMh7D(qn$^|26!{at4ziCwB$EVW5ih z8(q3mi`+8n5Ar8w_j~wdp=%XiOo@invbUF83ND?>OIbBW-w983ccAIQn?jwqDyWDXi+U3ML zTbFYM?Q$a6UC!xoNpCKry-j497-T$1zl$01m0^5SgP-tU@Yzq3O=RA{xxB1tzRa@k zbA2Zn+YyN?w{z<)Y5QrhjFF{7^F8s_0X`&Ai(OOaHa1Kr*c?B*CqE;sNq^ha|4SMlk@M&=8JM=juxEssPpoQR=uB0Ut)|cYMXHI&MLb1EAK?jXQPJ zxYW^$SBbEE)nz6T`HD%he9>hE5&eS6FBBM0ffZjjgCVQixr%f<>w7H0u1?3&@3FXo z`wfx=OstNj-(yKc2#a67$6|fvC0?EIWfSy}H8n!By8H*e3PIDF965?LIkIeesLe)S zF>C&$f^8yumw|~iTI*%L($?Okf_)@!jLCX-7CG9tUL>2(n%vDKR|TYuk@n=y6hVeP zo!x0%XLlOc*_{zH=n9`vgKK^=NXVT!)&*2|I9&Gx!(s0i+3Oy_>FVT=yk<@YA9py^ zH_lnZq3L<$oF#bP4JYxa!{K#wgj9;KhQs&RY0`+uaCneqDbF1a>v;tk4kvLa6ANiQ z)16w|;~}zasEpMiqtu(}eC*v5-Y3AC$Vg~p{&1WZ&lMo$a$l(04BJ~x$##XW zL}F==Aa5W~aN_wfkT;OWIB^*oJDMF5Lbp6pg=NcX#s}hshZ8gK6Z;yz*7Uki&b% z^SI4{G!kPGn4xC;bP|Xd1Wf_ZU~y z7Gx_}Py648@Dn*?e{pUA3B5Oy`TuD|X4qLz`@4cZ?XQA9?XPk7X@3#Q;lh1(TLjK! zv!2~nL4Rr?%?K@}N@f$Dma0oEW0Q|tVNg_%S$*hdS|FQ{Hp>>OlEr$uyx9$OQhdnx zs85$`+^wJrZUsdsM2^~~zK=i^tzqIm&RzRqCJm-fmuuX4y1WFNR@|RtC$}a5hl0G@Mmox8zF<)r;yn^& zC(8Jo-|5yr#;;EZ?_g~SO`6z(bZh2xg+p~cLZ!B`1%q80v;8HHm{dxO#dYYL?fedl z)Qr-ZW+sQGGd7%Lxoh>N z;il~Uh1tOhF7THO&Z2~0obv1)pW|;>jvG}m>C&D)FUO5^BJOcxFcFR$VVSN>l?43) z*kXz37r-_ValZg|h9cxJAYZ-WpLHZi?P0f-`@OHK2mv|&LN(LaXxYtsz4JobBwxl@D)swx6Zo4m%KGMrab3wRIW=$A2ZodwaX0SVKT^I)cPJ@ zX)`p26;_4o6U9Q;bL0>~4)WF)uQKX+1pA9up-)ozK^`OP2y~CHYVa+OVBMG!K8$jl zl3Pz=Y8T$Y)eP)q?jqL#jqqkVUfc}UzcrWc!YA46RT;MCl5y;B3@14 zu)4!qajxBA7ZJBR93-OCh(2UxhqAgvNM2a%3UrI$hmIgkBwd3dV`DYHPAsM&6tXkf6N|gli!-s1j<5htdW+i;TtPd+Nm(uF2%*Vr^|!D$Wg66F zsIP8lDvd0PyV-lN*#TFhZ9Sn|66_Dx^OIt)W!Yvq&wZrr(UtnsYt z#`eW){II)Om9c)oDLl(AHf%~wsyZ?I>UCr#mLbG?E1`l`!j0?2YbQfiCCHt90(I3G zpOL|)$>9Bap+WRYnaWr*s3HD>iM>36%%D0rah*Y3?!;xcbHj z$zaWD{&ETtK_@kd@}&*QCacfaHmrMatm_{l=(LMPKUbEFif{Ddw^dTCt=a!7XKQ}z z557co50IFEX~t1D;?A-hVG)TWhUF7D$BDR~zd4Sn9JlJ~=Wj%iEo^=MW|+wqJdGlC za6f)$mefV(3N8rb6+OM)7e%v$|biUQkO{2cS0pk-$0LJxyQ*ui38EA zU2FeJ(Bn)(a!(UsxFps}Oun4s=2Tg(oD`nT@nJE`Z7*f`dYD5)8o8u7tr@|9dLF^~ zd~L~ZYj9b?a#c2|P!(pyxpwC>}4xtyN=j{671`U^83?pVtOHQ5$4ie-D}sbpcfKF zknN)LC9c%S#+~Y{K~NfK0yZ)V$SQ?obH9MV48iCTk06^{1o2|Z_O>>!DA_iz3ijp= z$>x0(o3i9`H?at^cJ3xtA!`%Afl0P4yaz!lXKi6qHt|9AVr^n;br#F&P}!iYTS6cE zS(qLL5M=!tBUl|kg}YUd^^+BzkI;@nddRcBvce+J;jI2`t*;0%GXJ-Ji;@0pE9_$O zB?W6Acmx}3_1FjO4!((cxof{wleL4ZkhS(ZG0C>}uOWE)H{~Bx6Kn0+u=4SwuMlOv zlkpv6wtPHE1#9{uA5ZcM*0+;HkVbL8o%EyQ*!^~rE9keAe(b~jZ`RN!1Dkw2Nlmf_ zHU{LkahnqVjB^=dWIm3#9Py2c$^2r>4QTes>HHDgI?OyJV{N{0nT?D#v{c5kOh8A^ zVqB2OZTU(kp5!3Vm~7Ija*Q?QLu@M82iYbZe$p|~gX~g4V_BoC=8n+Iz&8W9A z$2rJm5b2Dytd$;QCs2dp7|1d9Hm-GKl1{bd7;6THcm(?(o5J8(SIp%g8=!vAV=p~c z53(B9gY1njGE>K94K}jMp@Q_$Ul6RbJbB}^&m&|#HgH*Ae*bMwCil64*4*2CF@m*~ z<*gLigdLHB+~uClLhf?!ijOktL!OMuCdf_h*JHt0>Ky;&_A60jIB*~2P{F;+{U$8p z#Nxe}1nawCD(EcKjXSeYjc3h5t()9OJASM+9Nm!quZrtg1@-L49nTui@=U#q&<$+) ziFmI-B;z?=MA_3LSjDZRAE<>0iC6ZZ{6)^X%T#AGeNE#s)miI_TT`8_bUrn(raGf2 zLNDIGxXA*YJ*y4g!7dv7e&kQ@==Z!8MTjx&44IS6Y$e zEl+_d#T;oQR)LF|?Ym_f@+IBXnJbu#&)!mOud4#O}XaOe8$>{DzOA)f|M%e_}ja0Co|Cjwp z6|1Mne)Jqpvh7FN1lfo{`uBi^zd;n@|`u^Q+DW>%c`k9hpXFI~*~^)YsMIc_!cIpg~)@9<(E*>E4mhUE8! zsU$uujs8(=G3!T$83>I;ke~VGM}}1h)>O&)jlqpOzcEPM6a$?ry^J6S2AwNeKgAqC zq((;T>tgL&SyZroiV4f_5QFK zw>wblPh(41j~}UEHMb1R*#zlP*#zlO*#zlO892?>p%8fg4~1J^rAPI^BwLRXL3+PC zFstD9sD4;@dz7JqZg)5CbSRBm9ZI%8D=&{9-Q+lOdz1?9z^sCLcH=taJ07ySsyL6$ ztl&46X*b%=qYR(O9{*u%__r6Bf6bSTM;{9AVszeysSKJKuP|}=yezYSQi&vn_7d4a zs10|;{3Yy17*~w47cM4SU+#acjHdS*Es#&v_8C4iVWV4Z}sXp_Aa+q zrxMX#-5=|0z1kJDSBsFXQybw2Sg|ymWW1U$5S9sLMcnBMsp(WUbGh>+qk^f z^eVC&Wiyf8D4QU=(Lu7fJB`e5vI(*meUC-9y-0*?*7H?of%`pqMaXFa^Y{-2yMn-dC3O}o0Z^$Eqk zEL)#YOs-a$I~pXVb7FGqs$64cnHK{WFTwH(mhB(qlM1nRBPmMGzS4RnB+5@!cM_NL zytHfW`)V{U*Vm22YUG%Kg?0Z)T1J)N5}Lsh$YPy;CN`|blQo#g=%3cURH%X{ZhfKZ z3o4-o@zxirtcrX`9vMs0u1ZS2m}0g`{W~OtU!;VOSgu$!CONd4$SDkE{%sT;$WSQX ze(|N*1543O&bNP6(0#y-J3Uq7PEQRzfs?{GkvbQBnKSQSJwkF_U)ex1pR4o5yEN1O1ugC4 z+KGKE!H&zJrjs`=w^Ht=gwH9Fq2Inmx*9`*2;M_Y;ua=kzafSh64E{{S}=99&!|e7 zjq3ywmau$=G&$#Ke06gEXE&Q!LjJD&ELor?CdrrBXK{_MDU*;!d^T}8|89I^a)Ghj zWF>LgLX8uHhGnn@K`POBh;1NoHLyJHL8v7Lw7z7p4oh)h0A`Al3#Hf>!=;WKf&=*H3O7Si8!#MHQsm~Pw|F-;NZZ0?X*P2>GS!3FG_8qXRsjl_%D?v1eHpY?s= zODko?-LJ$YhiRiRR6gyqn#niOb~9O~y~1NyULnhJ%e{GsPPI*9GIwc-$7MM7b||Ys zKeGH>Y&Ga{mfZ%8o8W2CREZ1=B}#kt!%ZEj-;xp`X;Y0$yC#lz1$=4a-b@Z3Ika&# zp4GS`vG6vo#N?c4T_6(K_-H5?^2(lR~_70{54`Sg8)^ES{6WB8_Vf?Xdss&$V+aE>2)Tr2p z7osIK$EFhNC?^DIdnzP;bt%8_6PGM$dsBk#N!NJA1NpgbV&89Eswej}%J;_`F?QH5 zCzDvrLmWiprBID{d2-qLI2!6>e`L({XBK(f{$hEfm5Gbr;FTC8GJ0YeN-WXQ6W-gVj)g_j&2SH}%jaGH$FV8zL(Obi6(L(t$i_P{K z%jwLG!oE;tnxra;4BkegcwZp-ww|0GO<*Oz2_&V{Uu%$97#Gbdhmx*gD_u%l`g5}? z35kPmQ2+}(G$nARK*0A9W6B_r967r$W?M^}Zp-zpvqXaGorgEU7 z`e{GMhJGMV*QPvnKw0{Q5!2{{(gMYr5y_Q}Y=WGUWfSC-YzSH0(>OUL8-q|reaIb9iDVZcs1UpLBdwU?F6*Dk%Et`4lZTgBXv*!Y{uht~>rBps$6wV#8F`3wRA(ed(&THkmfVm z1!@lF601mmiX^{}2Y#ODSlueuS*Oq?1A~kDjHxkL)fVY9Di}!SNt5zLk(!Gn7hwWF zv2)iGX?Xz29FAGaO?B<3G@IUpMs1JN?0)%vO3E)2x%Gk#+I&!qFYr)*ep{);IemYr zM#Ch$$!)KeG?aJiUw1iQ6J^^rztpYMoVtef2jQAyRP)k}vZgs5qUNf#iGL~9{(4Wc7_NOYC=zUhsFjA?6lo@`I zN~BBVAvyoOo7iB9&Er;v7Sw!#M1JrGi^q{NpGebc`9i^wsT_4EhOQz)X(M=qzPG_C zIQ>U|ej|KEHx3$-`(b~gd*|N0WE^u4cGc+w?od?MC$k&|^9 zwYtw20y@rZ4uTEEPM8ufH<)ZI7(pDpqDiOJBxEPT%JEdyqSNiQmm)i&Q){9NP zh!P@M73&)W1huqLkhK$9z26IXc%YPy>65L8f}a9XH>^@LM%`p#f+ zDNi`15}8V*d4qgK!aeCkD{ptYa6E zl~logLW(KmB(lglxoc{#YNjK%mdAADDIFE;RlS5sMPFG}c|@rKt2%~=^@!4VA~UUZ zwa?90$g<}VrEPXD`w=DcBVz8YvB!z%&Bf1AK8IZE?pW&)C0B4CQF;ZFfSBkV>+>RiZaO4hh?wV!%c^$>-aL%p7udpe$IGXivQ3~5Y1^Z?kUNU_d z$AMOMM!AnXcoU~3D#&f*Mrd6scPU{aD}hPX;FBJ~`th{*wp7ZGyO(tC5$Dp>QFfcL zWbu}4od!5zsz!a_Q)CCEsgO^_*=3Z^@9tD+;f z8+S%-jqAvbd#ifO7^$R_$~+*H&Y@>6g>%5Mt9PkKuxe8~yTJXA<+3ZjU{4Nt>O}J3 z%dk9ufoC~7SSv1`Rd79L6U4DsupD~@Tv^8-|I;*<|NCVAY~(D~emhd3cYMYnq*lz@ ztjS!=MLp>9Y|U1ytt$D)CSYswCve$9MqVany-xCkh+mQep~}2jiVF1lncoWhyc@?z ziA%C)dA+uAZO;EKQpGpS>+M(ASZBcovo3k3M6aW*teM(yGZZyM9jFF6WOr63%$hXWY zedjj@o@L8?%f2&-8rd`d85HTy&+cEU>~t=G;Lvxk?c%W*#|7s_EY4m%~tm05L@mp*_hvRWx-%cN`ck^g;Eh_;%$G>S9KVnDr4RW6alVu%`|uV@iuNUwY0nU!aX-!O>rX_!7hQ%4 zzwZo@i%0Ndh2$A4-7SqS;vY!+SfAoe8GXX8n7@?u6VV?uR;f{(pIB@281}7X-M{#N z1JxUH{ih9&q1R?|ON3>^Usc-c$^Jg$jc-tx@cSo;i|>yxno%47bd(LEEEwbzBu<-( zQf^9?jp47&Rt$VunYX{OReWvae5}7nYXvr;Lm7I9lBD^&0%9=reQ zb;D>wB?{gySw5h#{gM`_`LcbVOTn9E#bSQ@fm>I^O>dun0TnCteoM#6VPDLZ*E>Gs zOi!Ndw_L>Z-siZGoe%K=x&H6J67T+dFbc>6^55e#-)B+;eNdV-(*`fVbf*D){c=R#aKlT{DhK%Cl z%$Xd94-wI%b5iVUX)*8J?lW5V#yG*}UACJlV13Lk;Y_ z%Wv|wI(}QE`}+IvC+6fE^s`qOzQtv!Mi|DBu^$_JH8y}R6J>|~@&p!4)E z?K56wpi5}La(zChN&ijYOqh0;wUwPEkU5pT`!xoUUR25(Vf^(!FMH{7`C}FL+*=%2 z7IXYs&X1zmBG<3vI85_fDODfl<)+jsuAQ7R2O2UVmuTT(GTd6{{np+u+rHGZad!6) ztsre1B?W4|fG_2uL@q<%(pQEdXV$mOH)N1`OvaySxA3|?v5TXT z*t1Enwn*UNr+L^>28HoldDvZws|5L-NR4{D;jm^75h}{zB%-pjsB8j_Y>myE7_|Kh zsY%_wZP=Ld{GYEYzmtpPD@O(1q|d|{Q`j^yK6`AJmF+}+Sy>4^p3-VsBiaEn<*R>N z_74*jTV)vI!i+jxNU>YC24*o=V#Zyv_9f>whh-DX{=YdeYNyZWg&}5mUyOWW@c3^3ifqw>Fk-q^4OAx0T;~cYfwvJh5x3lSO%9wUzK^(6Bc^*|+=5qqMyfa)QY?QL zmYcJjpSJ?Ul_b)aNE|=!RAKoHnb>uWIQfZZq*st%d3JgPGtPark`b3ic@uEse>o{G zk>&YPma`ITW!YJYYPV;tL|g1?yYZC3e&Y3sd)J`@ab1TeDSVgsVjcRv%KJ}`5V2OG z0V#28Tv>@0ERP|VyAq~Xkd@f$6|&ZWmA3nDz8A?ZJw|`;y_Xv!yX|6RJK@W>#Z5D% z1S7N64eZ=>b`s;YuZQXQ@!HqVjp+U%DU|8%hW@<_6b1D894-BYOy;8W?f5SWN>WX& z82v9ZNFB1Ph(!?#P4D6}zGRP#|Jql$!>9HT6W@qE-#VrxY-cqlQMfgEoV&;#vf`)v z!VBqXACP!4#l+vwwSnGj6&3Og2!;X=I2L9lObT4j=|mB!MpfEB{y|^qB2s*FiOle& zhHoMFvt#U+F^ap`?`Zt}2%RPKw^hQkF!+Y}mBb73bZhKbM~D-Hqltm#6ek8&oR{2L z*2@?5%)3l?4GHI?gmiBccA zM5mivN7nc_S?lMpcLug3dtkFBoF=2LH8N(+IAtzb*gKaj?43&%_D&xQd*_ISy|YJW z*kcB66e_USXOxyhMJ->UMuj~SJ0^`Bf8`Ka`1kwl-s8*~hfBV_`#lppnKdS_-pVyM z_8}&U$<-%vnr|=LQ^Z2qrij(W!_u*iSDhjj%05NxFY~WtoymoqnOq^A$%PL4l658* z$~Kcr)|p($oyoBeS`#@A7e@R;8@UUO8s|Kbi_e<7nLeK<#-4?nteM;y;_)-~o^K`> z@13s2dnarjZRlIjLa``k-cM1`GKl@^q?D83f$tdTahVK_&Lf~OX5y5|FDE4LIDOkwS(tp{NfdRXH zMmgftf_Uvf8BaX0u|Ti}@$#h0&K5hHTUm_2aHQ(4i-bU$CmzVG7rbIO$DbM)&{K@q zb&@Cc0L9ipV*I0+1k1-o#I0hR*giDw_%JkXyRfocu2~utu!_~VW@$;f)YP=|uw;d4 z{B>G7&K@O3)56ucULY+U*}^|C7Y_|&KYWV0wXcEC$X{tcCpa{*|ES%Stx?6ATF%FF zc-dDx7sFI5pEb4Q^hfspPO`CPvWdgrKgcvowz9kpTf%h6UY)COUNqjRPL_8WXTlv? z^88XEHs^x@Uw9Jp^V1Spna>w4&3VDQRMxkKlocFn4@l$_&L`OaJ!>VEjQ{gS+l~Ku zcFi3;^oFgU0ffLK8Pw-x1nr2OIcs0&)aP2-^cJi<4nLI>xGSV1YNB>T5$T9#%q4F! zA$f}GNGGgG5qktumyQ9>Ktx?-jMHr*W%#WVFI&{yN((zumQ^FPV!9oYS`p(xBm19D@Fk zlbN=>9i#msPJ`H#zK$~Yc@R(Gz!~nX;MB)gU!;vP=x_PbFg9~S=39v(Ju?2j*9~K* z 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%0Aakw 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 Error }, }); -impl GuestErrorType for ArakooStatus { +impl GuestErrorType for ArakooStatus { fn success() -> Self { ArakooStatus::Ok } } -use self::{http::{Http, HttpRequest, HttpRequestError, HttpResponse, HttpError, HttpMethod, FileError}, types::ArakooStatus}; +use self::{ + http::{FileError, Http, HttpError, HttpMethod, HttpRequest, HttpRequestError, HttpResponse}, + types::ArakooStatus, +}; #[derive(Deserialize, Clone)] #[serde(default)] @@ -205,15 +211,12 @@ impl Http for HttpBindings { .block_on(async { let bytes = tokio::fs::read(path).await; match bytes { - Ok(bytes) => - Ok(std::str::from_utf8(&bytes).unwrap().to_string()), - Err(_) => { - Err(FileError::NotFound) - } + Ok(bytes) => Ok(std::str::from_utf8(&bytes).unwrap().to_string()), + Err(_) => Err(FileError::NotFound), } }) }) - .join(); + .join(); match thread_result { Ok(res) => match res { @@ -224,14 +227,47 @@ impl Http for HttpBindings { } } + fn jsonnet(&mut self, file: &str) -> Result { + jsonnet(file) + } - fn parse_jsonnet(&mut self, file: &str) -> Result { - parse_jsonnet(file) + fn jsonnet_ext_var(&mut self, file: &str, ext_var: &str) -> Result { + let file = file.to_owned(); + let ext_var = ext_var.to_owned(); + let thread_result = std::thread::spawn(move || { + Builder::new_current_thread() + .enable_all() + .build() + .unwrap() + .block_on(async { + let mut vm = JsonnetVm::new(); + let ext_var_str = ext_var.as_str(); + let ext_vars: HashMap<&str, Value> = serde_json::from_str(ext_var_str).unwrap(); + for (key, value) in ext_vars { + vm.ext_var(key, value.as_str().unwrap()); + } + let json = vm.evaluate_file(&file); + match json { + Ok(json) => Ok(json.to_string()), + Err(e) => { + println!("Error: {}", e); + Err(FileError::NotFound) + } + } + }) + }) + .join(); + match thread_result { + Ok(res) => match res { + Ok(res) => Ok(res), + Err(err) => Err(err), + }, + Err(_) => Err(FileError::NotFound), + } } } - -pub fn parse_jsonnet(file: &str) -> Result { +pub fn jsonnet(file: &str) -> Result { let file = file.to_owned(); let thread_result = std::thread::spawn(move || { Builder::new_current_thread() @@ -247,11 +283,11 @@ pub fn parse_jsonnet(file: &str) -> Result { Err(e) => { println!("Error: {}", e); Err(FileError::NotFound) - }, + } } }) }) - .join(); + .join(); match thread_result { Ok(res) => match res { diff --git a/JS/wasm/crates/wasmjs-runtime/test-vars.jsonnet b/JS/wasm/crates/wasmjs-runtime/test-vars.jsonnet new file mode 100644 index 000000000..b856b4a6a --- /dev/null +++ b/JS/wasm/crates/wasmjs-runtime/test-vars.jsonnet @@ -0,0 +1,6 @@ +local var1 = std.extVar("var1"); + +{ + var: var1, +} + diff --git a/JS/wasm/examples/ec-wasmjs-hono/src/index.js b/JS/wasm/examples/ec-wasmjs-hono/src/index.js index 583cabd8d..fff2d6b99 100644 --- a/JS/wasm/examples/ec-wasmjs-hono/src/index.js +++ b/JS/wasm/examples/ec-wasmjs-hono/src/index.js @@ -1,44 +1,62 @@ import { Hono } from "hono"; import { connect } from "@planetscale/database"; -import { parseJsonnet } from "arakoo-jsonnet" +import { jsonnet, jsonnetExtVars } from "arakoo-jsonnet"; const app = new Hono(); app.get("/", (c) => { - const geo = c.req.raw.geo; - return c.text(`Your from ${geo.city}, ${geo.country_name}!`); + const geo = c.req.raw.geo; + return c.text(`Your from ${geo.city}, ${geo.country_name}!`); }); app.get("/jsonnet", async (c) => { - const jsonnet = await parseJsonnet('test.jsonnet') - return c.json(JSON.parse(jsonnet)); + try { + const result = await jsonnet("test.jsonnet"); + return c.json(JSON.parse(result)); + } catch (error) { + console.log(JSON.stringify(error)); + c.text(error); + } +}); + +app.get("/vars", async (c) => { + try { + const extVars = JSON.stringify({ + var1: "value1", + }); + const result = await jsonnetExtVars("test-vars.jsonnet", extVars); + return c.json(JSON.parse(result)); + } catch (error) { + console.log(JSON.stringify(error)); + c.text(error); + } }); app.get("/hello/:name", async (c) => { - const name = c.req.param("name"); - return c.text(`Async Hello ${name}!`); + 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 key = c.req.param("key"); + return c.text(env[key]); }); const config = { - host: env["PLANETSCALE_HOST"], - username: env["PLANETSCALE_USERNAME"], - password: env["PLANETSCALE_PASSWORD"], + 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"); + const result = await conn.execute("SHOW TABLES"); - return c.json(result); + return c.json(result); }); app.notFound((c) => { - return c.text("404 not found", 404); + return c.text("404 not found", 404); }); export default app; diff --git a/JS/wasm/types/jsonnet/.gitignore b/JS/wasm/types/jsonnet/.gitignore index 8ea5b111e..05dd501fb 100644 --- a/JS/wasm/types/jsonnet/.gitignore +++ b/JS/wasm/types/jsonnet/.gitignore @@ -1,5 +1,4 @@ target -index.node **/node_modules **/.DS_Store npm-debug.log* diff --git a/JS/wasm/types/jsonnet/Cargo.lock b/JS/wasm/types/jsonnet/Cargo.lock index bd343e56a..6f64a6f41 100644 --- a/JS/wasm/types/jsonnet/Cargo.lock +++ b/JS/wasm/types/jsonnet/Cargo.lock @@ -8,6 +8,7 @@ version = "0.1.0" dependencies = [ "jsonnet-rs", "neon", + "serde_json", ] [[package]] @@ -25,6 +26,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "itoa" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1a46d1a171d865aa5f83f92695765caa047a9b4cbae2cbf37dbd613a793fd4c" + [[package]] name = "jsonnet-rs" version = "0.17.0" @@ -87,7 +94,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b7288eac8b54af7913c60e0eb0e2a7683020dffa342ab3fd15e28f035ba897cf" dependencies = [ "quote", - "syn", + "syn 1.0.109", "syn-mid", ] @@ -104,22 +111,28 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.71" +version = "1.0.76" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75cb1540fadbd5b8fbccc4dddad2734eba435053f725621c070711a14bb5f4b8" +checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c" dependencies = [ "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.35" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef" dependencies = [ "proc-macro2", ] +[[package]] +name = "ryu" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f98d2aa92eebf49b69786be48e4477826b256916e84a57ff2a4f21923b48eb4c" + [[package]] name = "semver" version = "0.9.0" @@ -135,6 +148,37 @@ version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +[[package]] +name = "serde" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63261df402c67811e9ac6def069e4786148c4563f4b50fd4bf30aa370d626b02" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.195" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46fe8f8603d81ba86327b23a2e9cdf49e1255fb94a4c5f297f6ee0547178ea2c" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.48", +] + +[[package]] +name = "serde_json" +version = "1.0.111" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "176e46fa42316f18edd598015a5166857fc835ec732f5215eac6b7bdbf0a84f4" +dependencies = [ + "itoa", + "ryu", + "serde", +] + [[package]] name = "smallvec" version = "1.11.2" @@ -152,6 +196,17 @@ dependencies = [ "unicode-ident", ] +[[package]] +name = "syn" +version = "2.0.48" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + [[package]] name = "syn-mid" version = "0.5.4" @@ -160,7 +215,7 @@ checksum = "fea305d57546cc8cd04feb14b62ec84bf17f50e3f7b12560d7bfa9265f39d9ed" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] diff --git a/JS/wasm/types/jsonnet/Cargo.toml b/JS/wasm/types/jsonnet/Cargo.toml index 0b5163643..ea90e9942 100644 --- a/JS/wasm/types/jsonnet/Cargo.toml +++ b/JS/wasm/types/jsonnet/Cargo.toml @@ -12,6 +12,7 @@ path = "src/lib.rs" [dependencies] jsonnet-rs = "0.17" +serde_json = "1.0.111" [dependencies.neon] version = "0.10" diff --git a/JS/wasm/types/jsonnet/index.node b/JS/wasm/types/jsonnet/index.node new file mode 100755 index 0000000000000000000000000000000000000000..e8b213e8b6a297bf3370062db870713a92f42b7c GIT binary patch literal 1200520 zcmeFa3w%`7wfMi!OhRT7-g!Ylk`R#uRLVQi&`c8401ATf*};&|3m}Z!@E`w1p~dEeW(1K`nu+zrJprfLeh8+H0@9_F8MNz32C*Km4?>QkvplAN~gOSL9Oao609eYAAoZ9ZHpy6kl~q zv0l{sKTp4NevhV9{y?SwD=Are=fg|QFFYdgMU64uZJ8gde~|Aq+w(6cZN8)?Y#8 zP}1Lk@><%%_+C5L_%3wWX_H>m@;4-+eB6yo?tEa$xChG0m)*0x?2fVr$4y_nVA;KQ z-nVqgxI6E-`_9697B9PF+|oOjEG@Zn!MK?>jC-hT$-U#2F2DcICF2$@S$yApcP<^b zwCsVqc|36EJ$IHZxpUkdciz8b+&vZZ%N{6Ow0Loe33d4$%PCWnl=8~_6#5@V8Ba97 zKb+KGWl}0)Dl|5w^;ZQ9R`ZMjDtOSLL~CBppZt3op^!i6Up>zs>80oXZ};>8YMPx9 zCfG2Z(vJJ<&)+?2_4qX#m*1%Nt^8Zu1j^F*GpfK-M}PgZK1SN7PL?}ezwpriiFOm& z5M25c`&SQBQ&Z!XEqOqgAb$(Sj=g-m*?)o0w!^C!zQy!{uV4vz@bU>}4PNsvvYs|A z8_m_bog0=fS$gNamlxP8UP4{rcO(3Du{36x--W;O?;`ViPVSG6)zpBd_iYIpfW|(m&ba#nw)B@*Wu~X+E*NKXx@1w zktCE+-sVtSOZ#}bMk?>Tvn#HljjR19Z@$V;o4y~VsDujMxiz(Q;mCY{c(mp}9Iv{< zqn-Z48LBIbI^@12xRiH)dyML8PgY%_(W)z$p?tp>pz0&>H9Je*J^`&dJ*0fv>3JGD zgU-aj+V45)kI(rv{nY$t3zbj$rbT(Ws(~+sexb7#*wXpRcXmZS^zLkWIUG(77sj-n zS)A-YefJQ5XUS0dkixrR;2G{e>x}VrIvs&eoUXvwOppIkm!~UPdAd&i*YxG@Tn-QW zs^SlR9OXYePIYC1KjnFke+|#E{JqHEWf!T|H+kj_RY%rpPc(ew+>r92^YMnfM0Mm+ zZEeFM?TM7jw8tB69ly3AaeQ6Ml<|)@9CJDYpTMi#ebheJdjox`nkPri@y^rW{msyy zman!RmvP$y-=HJp%n4knx$1_!8?`*NDcTq7^v)ZT5xaht=IQFVQgzMpd;A?!RoCG> z{*s2)d7?d=gE29itH!A#MR~|Toa#C`QFTp;QNAoKX>Xo3tRtUtFSv$-t7YWy_2n_c z>KsQNJ23xQNB#Vc6$jdqlIlc8Zs&W~e?=|-sHQL{82@H&qw{;Y!Mx^ap&F-89r;%7 z4u`5Nir>%>8lbw44X$rk2EFCrZJ+4rx-xzE`ZG><;O7o^M^=m~ewOy#w3n9QUcb9f zlHOjMb6DV`Lbd%G+G)?Y%3qP8{GrjFu5xHrF-AYil7`on(yyI|R~(oI+((6;?PHOx zl)riW!Ve4YcfgzHOzL<|sp1#LDF2JGJvhigOgQe;0#^G69K-jP_lY-YNDPbyuh-E$ ztQo3G>Pek) z>NGn4kQpn{QCs`UJY>wqmLUUo zDqs7L9sYKw6M69bv^^C$n{$o-q%$_~A!Gi@!RgCSF&{p1I&*>dEVRb3|-_Z`fa!c`FYpwA1&5FUMx?=mk!S9-caU+eEb$@~lD@p*;nYK(bw zb7&YmW1PPWUz+DHn*?gpxY;NFX&7OtOT#< z%o!`nJ16}FozoVzJXK5TaF42OSczPRm`{1~Jsd9n=ulx!C|SnF=#x6qoNLX?RHv%! zWIhgkfBJIQbJ4zK=G=QEBWwK*$Iy;5%ujT8ar-!EX1>i}-razV1!Jz(bw>j7+&D68 z{S@c0y*+a^C2+>sKk#*EJZ#pR8BtG59#*H46ZN?|54ewXrI)2=nfvL(ZI29fSPGe>T`3it}{EqraE2ZoL(+ww|KB2m3Hr`=~A5 zYl12B`-iCdMqp$;5P46`)dbGh_*2!j<6zYC(viyljw89_!+6&4cvb9rclz?w%T(n@ zF`lmZe0N8yL2l}~gKmB8=vd+Diq!(^uiY5!oAnAbU)em(%lwW_aMh_8&t?x}Vvz^l9$`D4Cp4lyURenabA{g9`8 zJjS<@aVcm__HFFroj2n-T`~I_j_Do#L~`_;uAg>hn!l9oHYS3|!tMpBC+%Hw9cdyg%2wal9kl)!3CuVfe&(ydO*Y}AY&vB*F}>mAbolr{6uci} z!jjvbAh?69c~hwqV!o5>zO}99YQMDcX|lAD5YXVE*u1Cp??VEY3M?|p8KbSin5%Ty zWBR-Jzz5(S%%AXwTyPyf>FC|<+)7>2sT15L4bs;klx>s#p-0-VVWsVNthSL4Y5ULm zcc-tPw2dwDWX0-{9%T{DpTpTTkB|i#-sBUCJ3U1+Z%gXTug5NG= z4RCA@j;8J~bmtE}{yfdqaS)w**y-t#b-Qo#s{NO$=A+kDRAld{R+aarztON+>$~Rp zXFaDm3{jkg{%B`CN!8pPZJ&mVgE0l0OPSZfVa?M@W4+U4{AInYLU*;Hx5S1IqGP0= z&(P1aD`wM|>*&+9^lcWl&P+dj)$N?!4rs^j6}sD?|GE{9`YMO=ABRs{&xW_2fM>_h z>&xiNN%+|OEzg;@_hS~TN$LGv>aHIQZPA`eMs_=S*9EWTz4dO0vrntMUmgx`&2%>Z z$u+3?PoV)tdtGHy*Q*xQ+7_egS$A58YD3p->!Xec-nO&hVi)+_eZ2c?FLAA3?Qqql zk5WJJbcKsc9j?7H#`EdZtN0?iOgc4RoJ-YnDkI?=jG-k_N?HZr&JG>A-KS zQhhsCGnQUpsuVU1_DI?YH8?dvRlWufR;k!oBDZbG-Psj|j9&r1qUIa&s3T#IOHFEb zMvb{xi{0y1!zSc?N2@GDp3VjT7IalQDM&z|dRqm!A3!~M(nQcRT`L|Y_ndRu5s$69wwC2(g?oU77Ka#p>Y4b;H zgvQt4RXetITZZ_}u0YA7j(V~8JDgDgJC3+d!&3ym<|!Ld0E z)&0o1_{aVT+zpR7>c!72N1l&~?|Qy*f6?QIM;#9Q(^$s%x{5{Fix`(U#_`1#Rk=~d zOWxym&EVab7B#mdOI11tsN%fss?rX`X^)OM1DA8Igi6s^&!^7 z%s91e4zzCmt(v=Il&V}Ar;2MX@;oK@(Hq5TV5P9-54o~XxG(eZ9-(RE#hZFG`kSB|tH0HO^5$c0pjPsnec$!aJ!e^KI z+x}2|Z9}`$F{T22awX+q`q+pZgv~yN>7yp{X7*9~2b|HrD7B4aE(!CMnj*X($!C0{ zj^Dr=vBgF9+~|!AEq^~}gc6E?IfNa~`JMzBN6zgfSa>boC4|xC&|IXcZEkRgz4u4P z(}I)s<4l+)bf3JhpiJoJTvNg!zL)n`ewm|@GO`1Hlmja=@)@~`kf%P#(}~ZKqcK}N z{yO+S7X4Ahyk7~A+{n{qj8ztG?AVN~z=s{%RAmcK`ZBK$9U^ij@+&Y>Z$5gbFZG_F z-o4=K$NRmEbroa16B%8^xQbqJFedjs`|P|Yp56Gs9B7qT(?E2{qWl5FO0<3*vUaSi zxHo&?PBk|by|WTI-fZHl()usjjJ&j>&#JURi$wnnqHf*@LtfBHM-C-#NU?OvyNr>Y zKQmT164t1=vDZG98oyT4=B+7PlTxSR7TsfhuPdud$Kzxud>~^-Js}>K-X$ESp%@J85^v31hBm^vA*xWW77Pg7svV>b3zs1lAr8bV=Nk z_(?u($47av58?yQFvsPoVb{t!Y{dn?k*E@^&-0)`;%#=g2NMnZaPiZQ`qOv+5*tLr z7ICnqvHq@zB5tVp;^D)wXtgzgwvJ;jCieAo;TZm1n?uGhGs3pOmT1kwuE@cz5If^{ z(W+i-i^;@Sw|^QwuZ{8%JaC=E_7J@;wuiKJcExn)E`<9H@o#>Ee-p&!vFcduHBskX=Hdo)m*}#pZzz8zZH=LgHGR~iymXbb zVYR9(!w$0QYNf=#5{O}7liW&NGlad6ikxhuzSsjoM+No(N1_u>+>r0ziY{0h)%nuy zK5Cs6Ba-n<2W|%ZJqZsR@n_QbF7cK>t#fb%gm+$$IEDD02Ps>~TwOX(^H&jrvFioK zMAxeyIQs>J&fw{AvDFvR%bV$2CeIf{-yn~Eo-K3#=f`sYL;w57^1p~j{CCFk?fB1* z<=y8P%Tvsyf7V#ema(jHvQOq>eQ>i*#G+T?&@X+F6JiR5PM_?bh)&344@}l{vCY8fU9D! ztQz}3=1_=zu{P`tk?Wfo>$^0SaL>Kk+zsHV#m2<8T(`M(tnUequ>ZK?p6oZ>1L~T! z)VJ5{^yJ{X&Rw%p<&<2c9`HXu}UTGhd}I z(w5jrV(XkR^-MZE3OLjh>%FwUX{svL@zAG*;FzfmUo#!v;8%YJ&rj+9hGkl%cOrPQ z)l~g6x-SULGRL15AEL&vdrHCE?(l5Sa;oj^6Fe_xO;j(p%l?3~d76h9P$)yoX&;Ne ziMhs~r(C+f6@&--qOdiH#hf5U)|8~x1#5nj+g9`2Tt!SZGm2OP`--*y?(vU-7efE8 zQ{m!Qq<_%W@(JT6@fh2n{{`=>&?C(W=t6vlGWd|mc+|q9AUqb@9pEcEW5m4l zJ!)W%kHz0iS6gTBZq27v2WIh<_4EXLM44J$N<921$FE4mub4kp{5b=ctcR0rxLWWZ zL*Od!qq^RP7E9);pufDjwqfK@RV*@kPfJPm*nWmQZuq8Fxp4^e0+Ys5f8WY`)^Cy5 z4L{+1viY8;{=SX((dPR%c%Njx=UD`P*O8KJT`s-@uM!RaDHB=`pM$2A@ai)(y@f3- zJcK4MvHWw`z3Km6LyfmiXQkY z<0@;LC6~b%Z8Ls!mnHY<_?IV;^S1{QLu9RMAdV_e%jT~ctm=1zTYQ7+L8|xw^jK|I zlPjxs;4yP06ko`50A&Kc1fx|B6p%`mGIGgl8^`HghgV@~j&Db&|e`EjwH1S7JB6rb4sC`kSCxeEdxGpuOK4(97Z@ z3Qx-&Dkl$^oBGjjco=4^q+Iq!gx?yr(nGwLcb(=t-A6;$RZ@QPK!HC2->H7^x$T;G zXb~P07wEQYo`1qoUwhi~l)~S35v$X9spYN0TEPRkXD6x^!edGf4cg-%R{BWFS`@)gx<-@}~%NO=n%cZ{+eN@ge z`d`||JMHX>>sTYNWv!gWnmLoTa|V0zMSj*&-JWt`zt3VHN%wKlZ`QcUc#m|m7Se`g zYg(~%8E4DZRK)MBI@VZAd~3%tbPel3ChLx_Q*GmH%?q(3WnM_%TZly`Qm_5n9%QfJ z<->7m`{6mB<%fr<fOTo>(7C29_2GB7n(=%3`O9b z$@^iHr_3?-mSlan4Ox(Q?Q_Tt_ueE(E{G9_@6i#D3^L*bOP)0A(JxDXEHU5RW4#0C z!B4`^bnpEz=YC2X{lUA2HUzim0%Cu?bU~Sk=QbOjec+L}!;O@!pl;Y1jSbcxIU0aG z4MeWkFP<|P8!Voo2K2ove>a@{xfEhvpYX0P_-gI3w0o~uKZH2iYW{Mut0k6pocNZ+(z2P4 zzao|<_^kcD73}v3zDL>bv&Ygx?BlhY`*>dZ-E8jT-9J#V_rpG)VbAC`$|+(QLGmVo z-^MPXpFcfq*ejt0g~&GiAMKrXGjX9L_8H3OYyKensPXv zM_p#Tu!%nUZG8-yeVhs|BW92gNF;V5d#h(x+<+dMhd!E%Ub-IrG>3I=Hv47bE7Hup(T#`I@;`VCV$TOC4ZsuTV;;lEvLhOcl>ro(D5pCR6s{&ge*2wzJT%* z@3{RszX}~W>}CC}pgGegGA?6qEq%WY7?-SlHh%tuy2Vm=j;Bjx_L;-sZL;>cWt{kn zTw4y2?x}ud=EPkJ4(@e<>(oA#j@-?%~2`&QT~ytbs>0$R!q*u zUs+SZdl!DoP~uertF$3?UPs>B<^3tgr(jR2tAoBu+iu#*I$L;P3^`jfH22=rbaliv zesx2I!1BGEwZI!_m0oWzyi!*!vPR=vyhRn@Lj79li+D5l{>7Qk%%UG0A-X=NE&~L<7d*?h?(!TV~ zh%>Vn@g;JeA489xH|JUCVP4zmxk;Cq#K0V6;e2u+`wstszLb3j*^AirPuhDxS3L9I z*?UOC&bIO%&Ncq2@bO&bGPa#1ze2}o=$f8f2boU^!#!O~@e`J9%J&OxN$9YLl002v z&mo7c*_vz3!-G{93ry?M5vnT@Ubr+{{>F_{^!$xViIw$%L88ZLy?GC?%TXgh%WM?Gx%a{k)uUkur+gp2$CvVP2NB*Yiz5dcqW8dE@ z)8)5DV_z+rn40Dj+enLY%`U;$D`#+dk=zp=TZ=g<#+fzi2 zZ0s9*_PDBdKV88byG)C%%WB!XCzJ9xt?wS!=GXT4U)i%KQ2oZ!GcWS&Uj$6W8?WtI zRK54>|A2G$tg6T~CSnFC^Hm!bPKo~6u#gRFyx(4*h#&shNW-@k*e zCi!4XnA^JDYUbRFt`$4y5#WNKhPS%VpUob05{bUn5S>)CQeX(6t2TC+|$BgRL4dPGb4N^xYRj+ASNj~}NPaiqJKJ$@w z_N~(&d+dM<8g(7aSqzC=w!fhHL&?Mm7~4Y&luG%oQHm)iMFFLZkoj& zjHFlm=_gG(MBiI9GcLu=(7YvrW`VD<;6I1%=b+m)MAjKcook5da;JH^{NR_hTGpNt z_%iD&HrBm%m&`y?dy)fiZlJGTASVrJm&fTKIOdPF+@h&%;l!7H&>|vmv0x2G(j-)QRiZ z#JjQO_hhf--6Hm^7V@rxJ^Zom#}3RSHXes=ld{<1iukdkV>R$u^vj*5xd)6}dE~R`8FsqrrdtceRC+=d+|628%Psd)Y z{E__|Ni3jWcD_IED<1#2^777)wElY*Y5nT%edCQiuY+eDpVzj$sn7W*Xk)K7V9%SI zU*FU3*Kh3UyK>*tE@I|7pYS33WozJ3e&JWs$*}lt`{Vet_;rxJ+=Fhp6yDrR|JM@R zfX=`ocvA&G7w|szd8c3cSq@xgd3p9C;9T$}R(N8*Q_SnkNuKTHDs5`H%A8uU*paaK zUPr=r_=|j3d%q(g>OM!p82%2TBV5!~(H{TV`HloTj&A^Wn)+$L{de}RiCzE0=cvBk z?;qd0E_Zy6O~HB;X;b7wr|7LK>c}}nFIBT{3GZaRxB@z44D|IWLZ4atKEg-wVe^^0 z<(G)Q^>mev@N|XHO}j>b8y|+aAZwN3-&C+Zi>`Z(xmJO{xaJ$4r}LO!yZOF^dimtT zq+fbDc3FI2CHDEdN$6|zx{O)aiQfobdABbW|Bbv;`TTu8%l@Y5^YW3(XW?8;ygy<2 z!cL(_{NS%%Byk6&?}HwsUR|8<%E)W5^k1#`1hnIU4&}Yfw}A6l3%o;ocko>09qKzs z`(@;fEEXMEBe^ifxiiVVbh3Agzh?9yINqoe9O}D^y04a|_}1LED^> zt1)s{B5`%&aec+alj1vM*566}KbA(+cRE@-OQNuodY}6{MLuFDXUoKwK1tg$E|NFX z#+rH8OmgVpVF(}e*a6N>>F=ViYkOQr=pr{ETH+n3(9xx?h?Mz9D*!^S}31;y30XVEC)D&L-&Pjg;H% z;Leii_>d0WhZOmdICZb_P(ux#ln(P9gccc(IL1T#{?CPP?tu@lHuBGfFGB10SSNz? zM`#thU&`C?<64AP;tnz&9)wPZ`A+&#tk*I6VXq@|$f{F89hqPAMP7C}TH7L%;*iY-f{XUOhVj`!$R_Gt%9JVHF(Zgrd<5`zW+%2(1 zJE{@$N%N=a`Ol2sk#@$?2oc4Iy<*Ml` z;JRc)d9<1;XE~QJ_l7v*>(15IMs)gn*hSb{t%+LVnj6oAw>CKpTij~Pbv9*vuG3Xl zTk|iS?>Jl?8(B-Lo&VA)<0Ac>hK^F7h9`Stsy55n6BW(*4#oyOzS$d-xB2XfnecK3 zJS~E^*TCbeiAP-JZ_k*1FTB^~DRa^BY?szKHO=WcE0@RXF-X%VNWgE+T(mU16b;>oB^EQ0Y^QNHv?oY+PCocneRQ!dBJ)OQg z9{LmLM){b=%+y2O5!m~jPl{52_^8y857$`!b8aqqpLwy9<=zd7HZNAI?e zHf*!QobTN6!zuniO>*asA7=9$+9|x1oZ%*(<@BS9K2_mwNtp{d_dAn1{mvnsP0p0g z#u`WK3-~o>SKJJ*Zh~hw!n5=-z2-BL$#nqPx=P0pLL^}P_W zmuqh7WUcDvpU_=)I=t;I#_P3+K2D~OzoR?|-`X;W{o|WF2i{9re?z;BSZgUVFYnn~ ztZ(976856RQ#GS6Rn8YB~SI zU$^V|$Nj5T#U@^gYU`9^%c1me3V@yCua z=Xc+fuwL8F8DQqQi!*wPHe^j|g_cInWnZDwV&F(KaZJWnvg{kl^R#Rny}bp>$5|7d z{$E0S+qVs$FOoKiAq6uGys?6pe6(dIZ7%pDZIk~FKMWY=nGSO!YvW1e)}p&bd}$lq z&q4PQ#^GG_iM<(Vi*ks{i1Q(1CvT2nuDj5SteeQ8OBr!K@wd*dn8CXu^uRUPR))@( z{$h{!y6<2aYn7~_lcA%WHMI!(#J1@b`=h*?vqPoCbA;ECxF3L~3W<5r*DrJ5!7+H% z=+s)GTuLDz57|sMV%JkBFFnibG(0zKWyQ6-ozo}-3(9ld`syQ zblLlKHFagJ$z!|)rtvw|Dt@(;T|rr?$Usd`9LmkuOW!2-^2@|EuK}k$UL!b<&mlkB zjBiN}EOx*?m&V?o-?aHX6MV#2wk)_l(f6KH#s>QmTl`}9F1fHl_NE(^nv|NUDv8Gy zi@h&#zT?al1DD(9>gSO-&6WlGlJ)v#KGA-`5zV@x;~Ai~D~Fn__%82-&f{~iH__j^ zpA*OVQ*8f&(#eL6sZxD1PKOHR2h_at_F!v;BVkH`nb-rd0vc`B!#dgX76U6{yu z{RFn3jlC14CDzIKOPuN%=24R)p-%QWL|*K%Uif49G`jC&Cx9kBn_c6}Lhn^$Ps!;aH9llNQ z>F$rP&9T4T)U)g|eJ|F2p5MIV<*%ImEM+f4aH%MAERh}8yHU$iij$T3U@aS8SzPY-5pQt6yE{!cO|WtSh|jG=6MR^3Xc*jXd~CI$oaQixAJoSDME- z&t<%?XWZv7{%r8C-&(O&PES~rlc*NuAAc2R@v7~3{GDz_0pZ+Ymm6g+; zK8l|`&xdGlcYpFPk(GAN>B8q?`OMfHX<^?}&cCm@#N+pJchLq1_eOB0e6`2|^Djtj zR`%T6k;Sz17Jn^vn99u;U8UERy;c{0d5T*}Z@ZtBKT zSK7yE9Mues>jT*pZiuke5P{ z7v_rnt}07LSl74cHo~)>E{UBv;IDa>(pbxrjkP?4{`uK~X?}l=YW3HQ==5XPv_Gf$ zn--uuh)c9Fm!-X(w*6KszQh_M>-`pUz2CB`afGk!24i1EF^+HI=lxI7cRlC3tT@;g zrSIRNPwW#P6E2yaGTnHa$wxs&<`7HkVC0}#sw)DB|>{nt8 zJ3DeM5@qlV|t$R@-iOQIVL-ff2IBNol*L3M7^iprWXOI- zNvD5wex}*2ww*+79%2th;g~`dv~V|DeK|T|68L3rO|kb}&c0bHXQH0N4wAeQ4IM9Q z@m%VNucXsTK1e2Y!c~3zp>d|Y_{VF`25(Sj%Z1kG964d`NC^v_&`ZwxmaOWLzR+m5 zUvfO<-jpuR9Maz8Q-`kdcM<VCUHtiDMLHZ8MZSyKbKZziQNP%rNSEGJFRa zmo{Se4^v-afnD&bcUu=5uwL4NSJKwKz@~AJk;tO#KgshJ>^1vdl9aVgG<_1{m9qXE zVyzcm{R(~$(P=d52I)gOHnx0u=GJ<9+72&kNaNqJa%~}^7ZfF6(32y zN6Oi6q;042UCvm@8hFrb#~Kq^GrQ%Dd1{xpZF=3Lz>ny6xKQ%a2QW?p8LvT%+hE3z zob(k5=mFWUASVafD$)1cz|u<({E+--OAkoyw&;O`%ya93XK3>iaCt^sd>w{7CXmkq z9pE`5eP*7egXbpNB2KjRIQJU{@%e;j`@t>#>m#}jN(t0bC(+bF5{H+zPmGRi+t^=w zn6_o#ElqDb1$;vSC&;HU@`;89o&eV=-it2lT&($*!1o|FXJ<*YKa8)~w7}6SKH>Tg z!_WMjIP}lc)mFdr=FXR#w{$i;JZI0Kd;Q2uCN_O6vKRZ;SF*ihivLP-+5Upvvzt8M!}yhfKTq}l@>sUN>75+^Dg5aW^bTQyUK735kEV~^|U?Va4V zV>P-ymHifCaK*HfBWFw$dmO=IyK)uz=EP|$tI2&o#5{Qy{S$l+Uq^TfP0zCj`V794 z_(?xsobCUWb0~aF>AV>mN@x^%uY}(7(JJsiXWvL@9%9n_GWp4Zquib^4(*a7zUV~w znNJvR!F}`D@U}l9SDax)t|XrzMc0W(@F`@BKOxqw%NuLQLH||*b zH8kSK&J%h%*>|`EzIWe0W%~Ntfa$e1eU7dO0Bh*>6m)wry5RlEu(W6jVrvVO7Om%XDVsdI;ZZ(diBmZ`5HS5zDK{TsF)Y z&`P`JI=N06>m=>z>*TssvQ8q0vQGYp`l5?oVoZ9`mS)n%I=P845!#*uR@OLt1inuMuhb(TsNWSQ`d(se zQYLVZ0LT1E$THzZS?}n>e}YriNP%6BeI~Lmx<&33wB`iyO?}*DJr+25enQMZK1;kv zp0Xy(Q`QlA+Q(b=5F^Wku1e^VdHUM%@H4V@$ef#rOi4aNlgK9XPvlE<#~*|SVxGsP z96cj_lyZV0-So?x)NRGjnUAjmFLzSzfEVvE#^GI@gR$LJBJ1^c#AZi_zQ-K7gS>X^ z#T!W;!uEai~U5PhmgUic)jI6uAl{(NSa%=hW;MU`a-FS$f>v*<+hZs-`YnI@- z1U!nIEV*0A?!zCWea2>8!ImMuWqJ-xJUYa7r%1$|-)*!nF_0|f@u$1sg{HcQ86WYm zX5OlG-w%O(9v@JTtIjgwZ4wKy<23!-E$N{s-zNI0;MJ5kIQd6nc z_6$yf1OBZubJEtCIcdyia?-%9&ws{L=9u_Qk@&CC$38LOVeGM|iO-(fcgvI*68#~L z)Ro9z5wrzjv{pI4dAP>y7n?);i1x3+zvnbx6>BoF`y**;L&Lf3cguE9`i2qzlh|G+ zXA@*EuIL@#{@sILJld4@yQ90WdiSX83l)v??r-{-vS0s}@-s)3Dmtx+tq>0Ha~&DQ z`iBpe5hXs@I#+e3z6Kt9PT_+&$Y0a&&&Z8tegzAauR7mRFEQI%WXgP1-!tB zK9px94aD0&mxgC}Fa21Dj7QS9j(0x+|36c%f5*P$7m@4I$NuN#davhyUao&cn}1KP zFJm13QMsOlJd0dk^mpVs(UgN_=KWOSk4bDI#P>*vrHikA^nhi(LN+Jdtw!C*FMmJ?F|9BF?Pq=LGf^jTn{|n0J$-zMgrv z1f8>FTmJ#kLlI$nXKhewz#Lu7`(n z@Buj|Tw}!bbi3w*XkQ^`Z5Nb|@lEHsN{!KTD#g#JXAX#;aS9sJI1?u}kPb^;z78uk z5VVO6wA!4%V#^8-T5LS%W74F*gBSWclNVuf*o0nrCugA2#W%rDlQ}MBKiAjHp8g#( zbLT#wJ=1Pnmwr4(w;N{{vo8{1TU&dY=gWh6{^+^)M8?zp|H?cV@_1aD7Lf;|b?3pn z#hlS|c{F=2jImc}`37QJNF48)a!0-F&q+Q?d1x-%k;En+M=gY#yhyjtkSEJNWB;SR86UvN-;r2ma^PLoviIQ07~?e0d79UP>O0%wx_rK2z=}>6Cm)FE*pKZz=b#mQk+fORl_K*Du)Y$rXH- z9KwYotG-kY;S^$TayRn1_9|shR%i$@CriO^(LgSYK8NMK-Y0y&2kD>4Surv7W2}3p z!72Ut6ua$WvE7bq3H?qOf4>Q9`q~zmdn)(O%32sHo5D-kV-C_zEk3izPdTXzNf>bfiShMx0r)_f=t zedhe~xqX+gcl>`Tx37`8^=0;X58eIG+2>tJyI)kVy-J&wUK9D8fgO@H+3j1y-H2nk zOJ=4!uFj*SzU|_U1sQue2eD}$=OxpWZ+yF!Aa;vuTR-NE@y>y-*T8$dJh6Xw`FzUj zt@7%g@&d}Au*%ze%12UOYn5L&pc~Ih;y^2{^2d70=ac*Us8#-2@A3z&^2CANcy@y4 zeyjYt-sKCe@^AK(OS^Yi<=cA71<&nP`G>vBZ?Vcp4eD-J=$vPjSN4<(AFj2^|JYN$ zGsZjbYOB0;a5tWn;PF`H>G3_~*gscT@JsnWm@GG zJ>^3GNUMBXPx(sdA8wV8lHaoFk%uJ8WF|>)e=bqkhkA*q!Qf!|qJGw0qCEgL~4& zZ`AEaaO(CWI4%3JO=5n!4QaHqz-;I1{BA_JQ0`cbVNb-xTJL7fk7ezT!{*?gRj1ss zssfVJBx`s9^Rr-8l9{(4XActt8I0|dx0t_&z#c|N2ER|m@6;U5xY}RET`*3+Rm6!Socoujr^QBch zm>nF|+~CpF)HFv@U8>SL3N8aD>*?Fv4^&#dNPnLej+yc<`ecI^)!`k#szF7m)=}gr zr?S^dEVNkeB`C;J#jiS4-8*ypO0$1hUYaei@2HqXjpS-B()#XQq^Uajy$Hc) z(Y=d%MX$yG+rV!`c)e>IE(Z5|+^3(aqB}g?5%!K2-4Ud3uR5X){8I$~o!Q?mzcc&a zxU;kef4{x&a;LF{*GUe-6!3=XJUO+OsL664o}67tlKmjgr^#7F2WR|a%TH#PXxjM0 zoQI18{zG{BbCah#FIL4LjVthfKt18>lkjyNxviGS*888Qx==ud zWL=~tCE?%69+L2=g}cZ4s-(KQBkyD{Bu~4J-#@5pdndapS{u)}>A&~zcnqNODJ#Y8pub$7}{&Lbr(8l(ox^TmGr{sZNUhV~sZljqE#abw#1t4VUt*3L_m z?{!DwUYF*5svkM=?=Y4$N3!guRo_6MaDzvO5cV{tlgrQ>=pMOky;dFkVVlejx`#hZk z?pVA3 z>v?{_eNG>vC;moze{uAGp%j`oI1@W|Vw-NMIGLU5pv^QsI|l3({=VZ#>1g418P{nk zbz9h{*uoqiX#T#&NapIt(aQHGf49kAIeGZ>+h^g`Ga>?WUKtdwhMl{@iGviL50n;P)=S6!<`{^6;NO$9v7lX*!!orbgtx{jCg?ypd1 zVVJv49F97PyU5x0#;>C*Gdww&3OL`%#BU~)=KxlHKEAmV^cQAfBUBSzJC&2wZ z>Iz&wewK^*;%2_gXb(?uF;`Nl!}+OXvCF;%9J*p(0lFgS>=RhY_x8bR+oQ;nj9)df zA+j&DDP+Lt-;hAL**_O|%ya%?zs#9>e9aAx#122Sy#?=N+^l`XLyTQB`;oFA;l+(Ji^?r_FM1!ZlFx&aY*io5gxJlXY(f>t7K$0i4?_H10_~#aO%p&6((%xAi_V z9*lAMLgX1fJf|JGj|w4`D8SbW_Aob2yNUXnb6%()53fP60kR?0*cx9YY~k1VAEBXRH{ z&@8dDUca9q`V&7Jo2uA_KP|SL*qJVH;%lGfY@nXsD0sZ# z=f}StfqTFHJu$EszRKQrDrf9AF+UV{49GsC#IhuAk*d-viS-t{AMJBP7H8;)$K=TQ zHg|%W=#Ex7`F2>3r*e}H+xLbn&e2)0vB1Y(+Gk=c@OnMB$|Pl?Eez#jYG9thGq49fWrGv=-!p&n{a?%)HO|eQ>}Q>oL3DH&J4~^r%&u6R{iBNevhU|Ns=mVecX*%1 zd$G+FcHNwc`?G%x%%Xn$<`wV5y!RppRZ<^YuZVV<@SW3mmnyiCh1LHuHspy&xJ{xl`j?V)F zwaitiCw<)njZ#;}vMAA$E%)0Wj9J-`o=`2e^^r1j|7P9-3W25^EdMZS_RY6`FOIQqRgeuyPJU{5GCGubU^KTU>#!qCX5BG{N^LKFhq<Zx8Alhq)990jHOL)7V_QshgV1R8%|Sn;4@RCw zi~jpWR{Ou84Hv&TF@`ahd#41aYx3%bBEgHVlxFL@;8h9U1{d>NcqVf~-pfO2D)+>3=qOWvW+~?s;7`_vB+il3)Z7)UnWL@1(3^dD`P*;mC9#ip9_N+wWMpjPeuK^od?nG3#y-F7ktPT780$X}XP3C_ zamG{n)583y1&7F-$l6luV!GA%Sz(+_E%+=8t|%&{ElGwXuIheGDN#RJL368f8wEsGDUshmd6OmLU~Rr%$t+aGu@b@Lbx)-xYAXP288i2Ro0O6ELv z=YHXX@L2jjW>H1={E>MlZKi5&-FB1QK0ANkhZoYf{gmr+>Y2#ANeJA}-T2a9y{uH` zQbJ&aZ7#)_b4h=%jQ2^_`$hxDV7^;(?RqnIa2;h!z#XYS1uoOec}naCu|+eP4=(&e zbW{#J$cdcitLdloU*H+TVoPV0+GIg+oJ$t0xhm`ISLnaU0lFmTeTxUd3E14Oz?;x% z*B7Z~ABIamc^8@c6{$Bep-aZaPLm7$@wqf%$5{DY?)eVGmWG}eOj;zaBDT&Ma+qXH zx+qWOPjtfh^nuh7eO8UEiatBoPh^d|bl|TWdrp4WW9Di#x8yplvX=XnN9r9*=U@Zs^X+}cnB2XOHZsl?0Q`dXsN9gMkzX2lh<#8DLPxfy3J%Qy- zNlAmv;e;}3L4p8-^)7}ZHLb8c%aGQn(0>6^V<0=w1{6#F2Q!A-Nb;G{vAX% z53y#6Ow0Xl2ic?avMz``y$mkt-x_#)7r^#*_!(I< zWF3Rg7OkvhI<31;hbQZ>ZyB&5ersLewiJs-PUBFHCEaxozpsZ=JH{_jF zl^NU(=~mw)N6a0UHBAkU^{(Qc&e%8?pIuq*F^Tz}K|2bjSEh;G4DW0NWRQj z`YCsXqno!BpgX?LZ>WeK(|w_>F7bu76r@eoa}Rd&I}^H&rtk0T{!Dz}UEpK+v+Fl2 z7r?d3+(YM#R~EA65}RD^tKe>nTJEe^hz!LI=Qm=$+IQkiO{<%Q-Cl(KJp(&Bv#;`% z>vG?d6Dxh358YQGSE5HgfbK|N=Y0F=HSkzu)_$kNyXZn|-zm~Z5gr-8jS?ToqCMGj zlKYv?)t=}~jWZg5?{3}=a!!c&!*^Iith;$@;ja}_u*UFd;DZ0;yLk(k&oXu{{7d`Y zys^kt9x*z(o45T7-fg=>=CRY`Z^9OhyxX>GGV2R@ERrK|2sx4bho4#SpL4hE2i(`M z=P5+VzMU&@8vP{S^Wjgrce3x|B1b~xzV*ybW8eB8*}HuSn*J~C-Hu0=o4&-oEK5uO zIeWM9wmF0z?#_=F-(UO>`#idtHm$u|`&d_9>%flJ_{~oBw{&lR-$-=Y||E%TsWQ{lK=lBw>&(%44e+>8>eqO+WzrrWy zRt)$n^#16dtFO>`WWZk`cUYPDuk5BNi!sS6>rXh(>2D|h&&Z>51$J}Cs{NiUP2ZE3 zGYQ6B=f9fiNXQ^pUe@wbmHM`Q4G}#qdbI`rshn}c=F;ywmpD@?w)#kTC-G}Pca!&Wz7Co;$)uVD0IRD^_h8tlyc*da1alpV;a&H}B+LNo(AMCqmzD#=_Fcf>Xxi zJ#tW+m|HI9Ry*|hGxB85ntM)i&Ad+TEh*&AQD7zSU(PicIzCrF)9^I(3SH;ATSwv) zE@%5&b#rBz0 zf~`g0q@SYiU;FJh=P@=p#3h&4_9q?%jv%=OrQCBVxdny|)%*S%OGb1XFKV!1<9V*s zQ^t7_JP~{44%Y47^VSux^RN_HnS-|j?`2#v2Qb%M z*mti#F7fT7AE2G>(#~#R&eu*0@AlHpA@oiNd6GT73W+tN7ewCe_gBl>)rLICxhI)}!lT#U8WxNE@)FK!ZkvzC_gyT{4ku=c3R;f3(J zY-M$>oZ&gj7~G+ucW@eEY_4WaM*Jg?RQ&?z4`a( z{3CggB1ijW-k&!vp@>tmX9=&3JROJRq}R(l5uR0}t4{Ho;K%VPchHw+?0mVudncb2 z^ILe(1kEoIKa};peQZ89=FVJyK=~=}YSjDCJFaK>*DruW_$^~4v9Qa#`I8jjmNq>$ zD7ZJmkC)I7a?hRK9>0bC5O-@zJZch8!?rihHJ;0tf98a-uXKuWlsa4W@$A_@dQ#_8 zVxSg2S?iHLf7c}&^Ea65)5vMM>-L`a_x+?y;1-GvU?jUeC*x;(a#_!x&aNf)GHU*!9c4ye&@^4ec zFI#YZhjqgVeR(!G?N(L1-GVFb4L8{a*K)He{)Gki{T{ga;FEm|tH0GZsp4N+aG@T! zO~9qw;PP)&#lN!Pa))=*w+Z=5w!vw|s+jwcJDX|}3?6Q=!Gg1|4R+%^6V_?MMqSj6 zSLoDiu=#T>yzvI!>w92@)|136tUk5PvGAI(&-aGyu)$W(w(t%%@OJjV7BH6h+}(K7 zue0!)uxTT@=^Y6TZ`oj5W?6U#8F=ro!4l)#V}mW5Y2h_tLpE6WyTb;n&9LweH1J-V z+D*ejXxM6l-FS_K*Mx2Aft^p^{5IJ9s}0!DOT@`!e*8xd>`3VSfep58x(WL;6ZV$0 zZWDuEz2`upR;J_fh_=5?xVNxYF{;BH<++#BfDwX3D3T6gWZ^G!mc-AZ|Q;E1ngWJ zZ2pxd>@yaisrcX6t>rB`? zGJ5(3A4b_=TPB;Z-!@@?)dMSIkz#`_n`FY)n6N`G?#3&y18lGwzuzwUAyj3;F6|8) zWrN)~-h^FY!tU#V9ZBE1h_hPbmj4wK_8}8?(x`449Ke2LgKfLqgk567*7v}QJRGvY zR+ICo)4SM&{Yww*N?`wBgH0!wP={S)!Z!ET_ixx>TgI5Mcbl-6UeZmk;N5A1Ez2@t z7nrb*_P~w=_9YvvmTAJ4STyv&O5a|z!EU_7g#DTc>l)pQhK)AZ{81+C%_i(EJ+MN< zcWtn387AxvChYfn!`9hgt4Er!b4*zBjAdQ6)<}u*TVtG_Zo9}4ojZth*s&(;z%ku4h+e@isKu#w+_*I|cQH1vi&VuQ^m=Rk)|Heo|Ou$#d9UpCk_ z_BVCdcoR1F(ry~&1N&ziY&CmQI_v-wwzdaW@b0t0rjx^?!^WAgf9Zi;3G8oeur1{1 z=&&&+EV*a)dGQMyY#A{Q{Offtjk|$w#jh*V{6i}o{$Z6)zklpff9$9zo=bQ}^L&73 zAD)#wV|d=r(?y)|CZ2AdH}Z_-S=K!8_cn;(_o97^& z*YO<8^ID$qJZJGt;5n0LBF`B-lXw>KOy+qF&mlao<~fw-RXkI8PUks{XCcqwJPUYU z#514g2)~~-`hYmni&i7jd}WF%P-( z_srr~^_VpAsV%OJSNQxtbF})O%l7+s$umddRO?*%)AaKcO+TFMm*2CVf#2Q4{XhPy zsS>AJmyVy+h|ZGV`v@1x8Ic&yG4NXrP6shliBo#`t#M)vv1)5PpXJUDi6In#=M4F5 zp$yY!B`+m3THc#u-h8FpuZVxkJ;2DvG{#)wH+oD!U?m>FeerGF!!Ew0e%F5?_XGD; zlaCGXY`5x)-z)K%ZT9-?{n+2HIBoxJ}I^^ZYc z)z$b>ycfE=xXbA5iXw7eCCAmF-;X0cnA|7cR zTbYY5yHB0DLe8J8TcGkJ=X1*{<@6ndC)MbfS=1fn-~in z*SE>Nt(=^!>Z$Y*;bZ7ndDaf%qny8JEwA26yy7C+TKjLJtpNs_9Vwi;!*s5GyZf>9LkE< zrcP5wY8h+d_4~3~F8|D#IYpdZXp?1pGA89W!mp!I?XQItvI1@I1dw-TVOLE2g?ib^#BY#U3pOpRL6K7iDknLgGlDo^JC_TFpnz4lsbuf6u# zvVCW?=_fsxQ4PHOd`!RKV_;~C@stmGMj2;~=@Ad%J=QJbJMtN$Zz&glhRiZH^jyX) z$~f9B<5Rl~;ih?JaBDc-lC&3tm>49G4jyT5pJ^WqZS@%5p# zVoDgva%-cH`WDT#@0uzlE>sI~p&Ez_6*?vH(L!QJl@U9tjMz~N zi5(?eT)UqSe&n4u+Ea>i{xASfFmkarK;PLh?2o1n?xUGn6!#gwZOyTfPTY3(Z`nJ| zHF4XgfY+3={^_{wFV?WhnS(9aKF5%6WO*rmTj&W>ZU4ot zST(vo-i=pNN_rCevO6Z*wO2viv#9fW>YRd3IAx*A*8W5ezEZ(xh+%{-22zNx?-7i{a039;I<~+rpcUjqW|5tuvan`on}qR zAh$mb(56t|j5ggxJ#N3F8$4yro9O5ueU06{(Uaa=yF2%HL0|o#ugv?t+6VY-J2vZr z3_JD}#8a)2PYwE=;&?myA@gs#_KV3(npmZICS@}ah#V4cY+5F{cXCL3oCEtH`_mP}e`Hx& z2is6K{xDmf#Ri1MTa7+~-2Fp!rVJGyukhTRz3gIt{)!9z`M=}mE!)MVe5PFobL7La z*hzLBwYj!F6w6J^Y(I7V^B{FSc8Nc~>>_{ux%|4T%h4w{lx-bo>k>&`&ZPT0e|648v4XS~Y;@+~ zZODSkfEBKI7#_VCUqSx&LGGmQu{*(9Q`*lOn_y43B+uHJ1I-6h-+8mSA8~9u?|5^p z{DLT>%XhLMD!k7EZ}H3!zB9s4GWKoo%c1P}G<*yDv(_W-g3b`-lkV1U`*jo|kMeO1 z%fcgo+yD>B__{Z&i1x#4*)zVi&`QpMce$|?y!Z0DaTOE~Z3OZnEh|HZh1;K{z3c7u z;lGG!_ur%Gzic?-)p+5y0#}+|N7^yWM2k7JS8GE5*E9Io2CL!-M?M{9_*jhmE-f5L zJ{?RZt>RoyhD@^Z44=}xJyNl~U7H2IEool%k3nf(HVe3Z9ysy5v`iX5I1RUmwtb4< zmRp{9URoyAb-`6r-bWrd@w_fslVi)8GGq;K|8L~X;Rlg3hZ(;2Wiv-~4$vEGi#0Gb zjKfX1u^OL+6S{Pj73hlG{aP89zxSD>)p+baCDxi2(p^6S*H=M)w;8lndW5aRFu$Z* zPJ;&agK0TD+c-Slj1KdRhZ|)PeOur(SSYy<=78;>YNG|jD`Vm%S4t_R4V7C7v6sdr={LcS5qkNH(z{~+A`~277(f<5jzU?z> zJFon_A6?*Ke2-iCiRQD{c|qEmz3x1z%3gPlf$naaHK^Nl=epDOUv~~XUHrFeUFWW) zT>S%GsB)CwI>oCm&@WxKrw@nNv|c+Xt@kXV{XZgZt=D#dF7;GdY>3f|l)h!6Ki}Kt zJJA*P(%#YwY@NY}Ezj8WXzK{zZ~lklQ}5Bggkzu<8pRfYezZaQkv;DQ+jg+pytLjT zneN6XT4N#^{MEf4+P7kXiQ~2~OZV+vPpA`RUl4kIu=|v1H>6_6bES^jtr5KL1AI zjrJ2i>(ZkRgzJ4-xaJ-N*G2yZuJgfl?KiMr2YT{R?1Ro0Fz16cA6>t@@JMGq_pw%Y z;-_e*6=82EjQ+q$tLV#JIGaL|6@J?fPv>`!_@>pg3BNXc27{&Pp_LD@W} zGtb56+?XBR`4s+dM`pZ4udiXOf9Q!=f8P@sV^llXrqhG8lz z?~?zo@PE+YY2z=up}w~h@1s@iLPyjb`WbB!Us76j+q`)+@7z2OlE=jVratl55NXR8 zA6I8H?V3I$JObLQZYT)PWX=ASES+BTrup14+1@Ac(wSHHcj0#S5-!yZTw=zrv0M09 z@A~1l*v8gd=02o+aL*^U%*~u1)qGp)&+qV|ld;E+T>>5MMtg-*nN2wXWw5o`+nJd5WJ?Pve`#_dnE8 z>t{UQL_$Qn0E#aI1_KX=;W!>Qo zZ%jI(E z+21OArPgEl(T5oKH~Mh?mAdM#sB>YQ%TC)#(@V>Z% zi?x#XBdmQc4hwpT!>!=(G&oq$`!~J)6|wtk61d>&ZTc|i8)4du&S~z66E3E29bB^U zHMn4dxx&RoGLC-E=nw1yZhu?~E+_WY9kzCVm_D9q*IA3def?l-joSyksrR&A);o@R z2WQv&^nYIO@LtwCgnD;*#$U8n!T7&&m_7dgPFqvrRie3r^zo;YtfqIpbq=&?ZjM89 z|4yBods*iu>ii#1osDYe!2hhBzwKq6>!|am)R{p`zH&pq{|PNU-phJ_M!nnxm09m4 z|9QQ4_p;vaQSZ#`dRPAE_0H{Oy>--ElU?u5|GeG{dRgxj>ir`1if@I;ljieJ*nF!Q zx}J1+%SVRSR~;P|4=Z)2M=FVhz zg!Tu`e062OW3~)X`JX6uFfmVK*u4y|T-ka?Z1Lg=&9tEn9wXUj`0I^dOxIUZfehnL z@wLcID~EIbl%c)1`NT~PmMXrg&ASV)aAaATd@&@;3Zw6zYc+A3&Y@4297j(x%_4pUJn#+a~lI`gp1{uH0>OY*_k^+a5#1^lu&G(8#BBpq%>9)Ij59Gi9?@vp@9m27&b8yqVfIg-ZFH!1^17bn9{ z4#Eo;x;Py~@4FM6u2jFl3+H)pdO9t8pe69g;(u1_I%LqI2_+M(HJ_*NE_d-fNZ(Bd z&wHG{o8rZj@oj^5H6#1d{dVJMo8}z3E;%ATJHRj0iZ2VnbccP2iLHh7` za0@!LSMJ5lSt~Wed(ya_beyT%ty60zm&b}{3CC<+Y;d<_IkL#kpS`y1>*9Kle)NMY zci9>_k@%`-z9OH@I+%IVh#W}Ei+1XB#$I|rPdHWxcLzr++@)`9q7IL~u~h4A=^KVe zg^y2{O`DC3^6D8I$eWgb2hlTLKig_rimgL)Yn``U?)-;FCaGPno^jHbGUk>$9@%5T z`sac8V{IT=}JNDKzGeMZCmkc!Qer8@YT`XWtBmzA5Y#Jo%ZQ}TDCduYj*jytuy2M za$-jNdTLL0yIp>h@8Wt8elrMM|KZ@(zc+Y2{rT|v7jbTTqw{r~Wi{c$nyK^6Jju|W zySC15yW2;aXAx*6*O_MrT35a5;&TxC{5|-XFlsR^%tfH7~wK`yWq@ z#BPXxBBABRTUw3g}bor5QTE*hQNOT6m9tH#0W z+TP&h8`CXb70w)+3|(kln@vCN+&R0KcvXYfQQ)QV(E1>Pyt^B^i_(8{MiD;*p4r`xu{c;D6Z-eA(Dc`0oP$GY6j7&HI->CKG-R@IP_j zALtJLq)hk=fNuoud)>gco|p-HGO!Dsvg^BnuR0+Uz7Y7E9r&BNfuA`f6Mip!Dc&Dfg9HiZ2K{pu(N?B#-^$N#O~ma&VU-+_Mj{|m? zQ}&SV;74SZeI)S2G0rD$&VKz|R+b6-F>|1gQ?|bw_?0D@@P7tA;q>!vp4sDA_JvIN z-vBQ;s&U!T4gAXCneZ!tk2&yv?*_hXSSI{;fq%<^f1?}tm02`62lzGzUbN_?m)0Vc z-9;}K0=otn_H_+hcXXRgizkssw5W2k>9O6}A9m@n5LoS{3RXH%Tb`{G#fioHFy9~I zm)*ZB2WPhb;|u&oC%?BF*w#Uru>S`vdv&J1?{@=Vbz~;|OTgdZ!0XITHZHA)XTm=U zymUFW=Z0?Js}9SA{~qvPb>L@r1K&Cz6aISOuXNybZYLX`D$XT(dH03DU*N!>*A09t zcfWe!PX@lqf#=SL{mbv4310}j&h4nZW4eKF<<3TL`S_+ZagM^k>wM6D__Md{h5tM7 zlA|hrSaH1#B9(65y$!GAcz3_)f?{44Rjh9+sagGxophA2_8V6h9oZD`B@g3sQ z5))@^eA{=P(VZ&m@R!^)*xLCDd+KfdLeJz_i61NWSvB8_@E3~hzVpqasZYKKaevh_ zw>)Y^q#O33y(;$>bPee)?*J!%1NmFXKjUZQS$qAdFZQ%|uJ2bKWi=hwk3GSQUSiMR z$Nj+C^Yi_$55Adt)mEKDb^Q-=s_-*eZ{d?eo(1>|EVg|Gn}=iR^@rF$od-NiW(jkD5THGOUSi!?d^?{}W=8A0lF&Y;?Pe&eK% z$bF?Kn*?*_!@DhKt9(R@872D%}jIi8oB}Q zR}LH(iQ;3~mpjppAfC~Y==g*1DHu$-dGt?yWM6=@C-_>at#!0JzSdva_J@0>HvjOK z-;Q_Yyx6RLm^Gzg`5MG8Vx9RTep9)kl*2jLxaweUoU=WVIQ^{u+sl2C7gEcoiq>?eQpv;C&e9X`#|1Wq564sZ>89#~ zk<@wIX~VrZYyEj0%(>~}BY*v#mDqi*m0Zo9kiLiTGZwz`-(G&Y)$}QSv3u1db643a z{6Idb2@w~6*lVZltGRD7b&cA0$D7xmX{`?WhP{@%ull|jiU+vx?qxeZxZ@e!pAfV@ z{c+_xfnCXc3%kK3ci@mE@neIL9klHoe93e^-TUnpN3NYleQq0l+{;!W8^~Pw zdxny;p#5rm+^Se>ZK2P$uJVN+W2_$|Zp!B8!{orY%>jzG&D6$6E6&yKcQciG8MM3eHiK&ts@rRq9bL3B^4)Ntg%O(c%V&L*9 z@muA`GqV23X>;&D&N*`F)STffzHMM;9BE)40>*`ZfdAsP2JXn0Y`FSj1NS4rIeC8Q z$#b{H_IKErME|?tATxsMzw)m9^=3d6j znOo&nlJna6v2mf~>y+t*ZDalY={EYEvk8s#6_;#P#+V0(120}ZF%axnMBJB({#`uU zKiZl;6doPgbLX4CqP$6gs%Mg`0ui$Z$~QlE!L$d4N2{Qb*!Ma2M|>pY$!Pm zc^V%r->y7-wDOFPmMu$%L?=>zjJ_C><)d{6ZIzE!jQpLWtt3Goo21K0Zf>XlD=q*> z`m2<=b;|%Nd6xPdyVniCdDDeM#U(cEI_jwpSZi+Pey%#&UU7kyJe7Rg@tK|gU%V|a z{I!v(n)`Ni`kuM|()&L;?T*}s#V0y=Kkw4^k0$yCbW{)vCg>afS`Z!*B;6Yqdq=1B zOf(w%NW5drNlTX1`v-K?4cB?9yd~DoJKj7G+=9^Be9E%(2?Vf1faS@r=aRXXD#SpNw8uk|~-?@Cw@IB_V_}yV&wE10(_jYLdp&YBp%P*_t z3+eDn@-G#i6h9E(RQ`QOTZT{Up6oy`3x!4BPxU}(n=?ff6KgS?4fsC$e!4}?B4 z-=F{5_RqTLW;}F}lT9~=i*E7{N;j3z&BVZfjyQ2+D*6vGbn_eHw~B6Zp_>YRqJxRh z&H$@u$<3l2d?IU+eZskR(cdS0ebJ1>H@KVpJjU{T=qCjIbaF@L4(={m>&rLv({W5r zBtDgUNes=Phf+s;#yX?3h_40VYt4bH5|cO+B^_Dx^b^65HVGY7W8cKPVCtCP&C_m+ z6Q2ET)WI$ZOG`=BoTS z_br%?UNa5-W-5BlCFnaB6Nlv@Y?^(I{?tMH)z%$O8}j$2R&NxqU>vUIzQ{KObN&zbrnuZ1&+naLH7SnucljoHV?h^I3|$ABD2tbdtGQ33?o6vmv7MHJ zqxj`*nW0$IP7!6(Ze&2()(1aXvzRM4GNJ6^h@;>a(Kuf+d)+e(A z;rpn!oo5VLr&w2}{cG3T_}{=iy~3-0U?ery@RJQzq-NiWK;frr7Z<+Ryx707s7i8D z`HP}&6k1K&%g^V2sT?yOx5MA(!0&^1d7E4@sr^M^eb3H@_E3>}G$f-e1^J1t0hgG`J!# zJ+YX)-NCFN*4S#w{*-uJHXR3}+o5x9^y*wO}*%eNYc>% z6Ux*bv@vA(caTqY6XB=yQyut7m#nMDUZrPAYh}=%7 z_4kXc6O9a>jSQ#XyfSzdeZG}(ab>Y&@bGeb3`9fXPok6Lm;FsEfYsRkjPl&^`r>%2 z$=DCZSjoNRlOi+F31=||Te*ii25c3)r3`tmJAmHfH;8#WX|_*iMw8-^u`R@RqW-On zcQ))T%q`*2h|W0&x%CQbH02RKZ-bA%MUbD;<+K-v&1Lmvv|DS29Ns6Q>&nl6A#&|v z^)))rtEL_K33Q$f@+Z(-lkbAjdv*>;>pl2>nf*AoogL%QYZynJiT3u(vy`{z1S|PG zyi#*OG^=wmvd>f&LFXrk_VW`e=W_aD&*s75cJvqZyX>XUvp!V+HNxXG--TDu)_))Mt6fbzHE&G2j4pSV-KOxsbemj1F7SC#_y`Yo+_%vGKXY&r z4Lm%;YD!XJg)*yc;RzU$yg*MAKu#n4bhidptr3&`_Y%%cwRHaURz#3o*@TW zTXt7>E_Hw6)?G|oSIQAC>Nnx{zHl^cDuT9$a0mLZ=q&7QTF;&cZ0iUsJoF&-?qzMI zx;L+)ti{ZO8ee!7biabNZ+xP|BbiG>D6bQK^DI12YumWia#mhP3u`K?#lP{}%vrs! zgw_>Lt#cgm6WSl3eDE!kuO=&Bt#9LX=-cUhz;!Y&m2V&SH8c_p3w>1vrG+~S9*Z6 zOuqxp)pq_-*S>*4$&Pp!ey?ODKi5z%WhR*}G z>wOEZMyI?A-SSFw%q!3}FK3-_8FtqGW}RU4fxC_i8=d~w$Awp+AIv7E<|6Lin@hQd zmrG~p0cI93rRe#0@|3?)pU;YF58Fuy_xTmo%eH{XB<7b zEyz0IhEVcYa1u={zS`d;d!xG+5Z)CIUdOokyz^iA;16ejhwOQ(Pxxp}qW^oDx9+;c z{U#j?UFOsn{6O{|!R0zn$?`Jx1-$jUvi>u0Gje&LD$-$rB30zcX9@I zv~rKd^iiap$NOm3+Jc#rgReg2O>&-YxgGtN56!)DbYij(I}mA;fRS!88eFjtRF?2l zSz4=4p&aGU1xB!Xst(=xta2t(P6hSlkfwbM7oS>iSL`s2|0vFqj-ssVDQhxt!l?oo zq-U80=>L(v>H4wbMQh!iG1d2(te^K@_bd3={;}ge=1jF{UAkZV-cX_f zJN?LOIQx&Sb_Vv?(G{V{mDqG|d3vF->oy`M_n@z%BR!`(jdT7Ms;mI^2ZdTcSvOt< z>g5hQyS2jj|N8dRAY;7L|1Oc7Wg1?ST>Yh^xJOgm44TkJleO?dY`*6 zxhKm$r;@`NmXbTH2zS;bb!MgHJ61$C`WW)M4p{AFN!HgvYuKQY?R=}Ho}t7t_1f*r zpa<2dSQ%Q!cw;IkR^Hz0erwM9y62`FWRI*XCALWBzNK)qSQl?1KC8w<<2w)-!y8H+ z-f+Gx@8ZCieMiPt@T&J1o^Bmy@*f_sAvl@yzt|>%md^Ow_kjKXkq*lLO*$z059naA z(`Sc@4t~O20sjdd9PrMVKyah>-p$y#XScC&j#M)O_A<_`tXreMY5me=f`~E2chBlUzh)Z;v;Ad4vA_n z^>X@V#W43SF?}CuzF)%k*l_RnVdndJe78!x--ny;XR92~cjVcJ)mE|DuN6&}mUZPZ zX|;CRIMPBRv(j4Zv=de4Fny!QJl-gm(> zAH4UxL{TEOx|V)GSKr{;>R)9&DE`;LJTKjoT0N9AOKu+-JR9u#4x_%>6SHv{YH;aC zT5MNpb!I+0Ep;V$j?Ky!v(pkvJ2@+D#V}LmPSRp0Wu;leP1+99YIkPUS8JzjA=yPO{jx9s{`?6f7qZE#lorKP6+yGX0e#;w6lyF+OgSkU8W!!2kuW!JMB4+ zPb}YBk&Wv{_`+J_#_!YpbD`u}%z?YGU%hA6`bE+A;Ry?lu$rzAzxdO+29FkEy$c6d z-`F5L7FlULE_Cszof1j;i#sgrW9{JS;{7u4dlvb^N)z6#o1HYq;5Ve%Wfw-LVh7dQ zr@J;i3!LnS!5>Xdv|+EDi4Q{Ak-DGJAKt*dausS5_P^|T{as|O*@FX4c0gnQ`+{s3 z*dLZV`y%Isl1XA}+IWcf6+|DTzCUlaX{8+=sc-B%w%t&8vCm9mor zS?kBnvy$rLZPaI%Cx7H3>^4J<4ds2FKVi>9d`5d)tUEV&*PX2st?8-2f$s`X{}iXk z+{SkC=nPFnzkf?Njzez3shpHu1BZK1~L&>8M|My8WR3eHj}OZLs}8wqOgL>x;06h{*o) zUJYYV?&4|po%&`Qzs2BUe8fECav$UJF?M}lpo?FBOr09{KLh_FbSAy*Qu=WrNfN_g_Eou@k=ILlC(D)(2$%l+Yx%fWL!@w3S*`pKP6C`t4h18k~-&-_&2K_kokGCRfI&kM+Guel+C&R+(LvXt3=A z_B)}$D`@Ki$}Dp9$#FbIZ|jJ)w|=Uv_o<(!ICvEOD|L!!E#=H*jfK*;q6@wbEpo4% z;V;1n*u|hr;iUGce>Snlr8;Biw&<7GunWS5*E{@t8o0EaX(carc~q(Pw(PtcbYDt0 zwA;=-L9Osp7w$lGT%TjlbJ-uWY57IUZ<|$JSyy76vWGbzKYU8Uoo{W}$W1>&hnjbP z)tqB4sZN*wHIqL{zKSExPh`Vy0KSyDZ^PU3`VrN4_=Wqy{ubDlblLJRE{KMKRo){+ zPc_V&dNXg9mcZn62LJICDl@&fx5^1pEA##7Q|+_^Cr{8l@20~$1Gd%$1*l>Ph(tp2o)W4)X&W z&(h1W(c%jt{+It($tL12A#1!cawOx^w9b!gDzasbhaN|e_NVvHjc9+W^sUtNx0qY+ zFn_fFSA;#enEp^&=*`shV4$k9F_k){h%xih)<$p+Fizqb{Q~}Q|1IzeaJ6Aw%&{&Zmi~?FX;TZhy}21W zpltcAzW$Qc)OMyVuSEYB&=;{|iCd^Ub*Evs#(zw7*Y;y;P1{TBD&zeV<2KFmS8jUA zUx^&B`|KL&6-6BhaC$h)PCCwwvpOMU;7W_;$E#e%|Vt=@lv2450*dZ!6@%>n*?cTM)3h-=$ zr#3RTOPut;6(PhK^-j?qLT0`0{OPX#9MwOC`meH*Uf%b8>IhP{S-ac3bwhQml>RO< z>!eSJ2WquQch8S<$3W9Q-v7XJ9Y4{xmD@1&Z+z1lf1%n2wO_lCao3!!!`7=gyNdcX{;5lCn}+0FvwYT( zJ&%yK+Oo!J%x)%rtNa>OzVMDZ`F1+_#9MC>@1d-JxZlA019Xjad%&lIcfo9NU}Q@R z@DmL77E``g?_1#1^Dgk&cg6^peC~pu4qem@mi+D7qn5on&b$$=$FNUk`?Yy2$lbNUJgm+Z7`ykw^;!A>=jSaB6cg?>B{yV{P& zmk%9@ZFDp~m;*R};rj2(zkW6T&r2vDTi&&Mryu5XLUt31S6nm#87n<8b69+*FEK*7*4qYJDtGe}!Gc*#)N{Es{G zsKLuy12>jo7k!<3!@amHq7H9)?ch5nr^S?~GL+}~!$OtkQU3A4;IzXE^2Z!c9T!kX zy{Y4#p}X;M6fNld!bi;YaHK)mP9MnJNeM+Pqea5oPKK@hM$M1yyFNXKbKC9fwAnkv2ur`d9v!_ctP1^LX zw5>|p!X5y;C_eG9%Emr+T!Hv%fRr46M&n>`fK7JZ2zj|Rmq2Fmp5Od z&faI`Tc>>JvCaNM{Ho5r&-JS+z^_VWRRj{_Uc9sR&1dfn-Iq!Yjiff=Pn!DjoA}c` zSNwy-3*u9YG$v~Qz`P}~cfkP|>5aeQdz-&#N&GKXGV#aU$R74Oli>RC415gxSvTfF zf779z7`T2D*zW2{e41L_UEbH&PeG@DBR+%Jy?2Cu{0RLrf%YZXC%m1$5N?#;a`I39-*BE#S=hR{7N5G4xlm>`lunJw^@hWtE zUs67myTP?{RaKH0fW{xZb4G4uERY+Pzh2Pa@Z)%D+eh+04K^^hyytf6t?9$?39rTf z`&4kM!zWy2#%g@Y&U1aqI?n0Xe&L0t-$V=TlzSE96Mq-``fcM9@fojH)+JNpOnZ{( zZ{Si&S#G;#;ya(J9}-EuY2o*a%w=!44Y^-&N8*K#&E9rFv`GEI95o4;U5{EzJ6GCoVVmn6^W0e9b(O-?|MmN#F%kd3w zVP7ppzotZM^t1YQA!8z+JlRFvxcfinT|O6E42`S**?T`g|7&km{hy%!OB{dvgwy}p z$8!6>1b?FDdHC+)lV9R1= z>HEfn-S=$?yYE{m%Wd<*1TwmY{f$e^Ufr6=H?6UA>O=R9Wz2IF3#xqN!#RDgdXbCi zH=1)^zz#WsF`|5(?Frs?b3$`dbzjcP)D$$nB4J$bP0d%;@&DXsN)Q=i65 z`s+LRb4m}6J9Vs78Pub+`&Gx2P8|b$+)IexC+!hGy@N4~dGpMsUe-SEJ9)MC|B6%Z z+pMRqq3%bp`)D1t8UK$LsaJDKd`)(SKk)tl{UTqU>*#aYl*`IF3!wJl(}S;H@;%^{ zcMCMMm8b2`Gdx;%r0rXCCHabw?`=9Oa)o_XMC;HtbZ++C!fnWhPWXlKc{!K)PC02` z8P*pZI_&a!0ZwyP{v;vF72c1M-s$w+a{ll6y_FPi!Z-ECUvOW19qo*>t~4}KhA%oi za1Lv#ICuwVl6Jb%`rH4H?HkF3X5vK+Ki_<5%e&Dh%$mp0a>WP-#hEK^)>v!ZU_#CuU#8{;Lr#!Uu1m(uS`v{F0Z9R-< zP`qPC@L~2%*HrYiP7yt|?sU#b;a|3jJT@=4;R45plJET<*#YgT{hAB!^OLQuEzidP z0rF^1_CV*Rc0<4TkrtWx@9-tl&(0X!Pe049n1SCXsj+&$4SbJ2A(TupN3ek=Q^>hb zJGoDVyxX9~R6xEK_<6Bj*}{{%V5SPkx&r3V0p{Q zmbnc5&APr0pD*|bWvia`_@-!1n7ZL>`u38(L2r_^;x*4;FR#0OLBi#E4~QnAEt|Iv zk6uo@W50m+>b&Mf@IBh#!g}E@08Zm#5g+O_jVp6N^E)<-ee#736B>!j5_IBF#{1~} z3^5_E0sI2(%-`l!f2l2->?yGFx{}Y2F^Ja|ZjoKo6tv&WR zwFEr(!_|fx0j~0`^tRhOr-qVl{3*qQ%edEtx{W{OO}~z;mjv5y~_6X8U9FWUn{WU2?v@} zsrsWLsZPtxg>8(l=0S{kV(9T$n;s<_-TCk{%I;*WjZFH0@yn7)eZBJmxXur3-v2PT z#MXl|^G!7UHTuyz_TI5w1&`TG8yh7{m-nwUwCMN}$L14vc8f1fi@($S1lCK3cxg0= z#uuv2?^8c_CL!m-*3KWvmw0LLXq>l{0ebdA9(G9lJAEF^_QBS$&V80LT zsQ*>|9F?Cvhlr(9=fqeub@}?H>(U(B?93sJovjxXM31G*g0^4iO7zWO8XMZOx{+VIEO_B=Fs@KIAcE+CI^m%m*qbyy@d-%1)CrjRq()TcB9 zKih^!C!YEq`QCQ)mE(aqn2d>y7VX&bbT0VB)(5a5_cvqSz`Lt64Rz`>{qE>Xs{1|Q z?RhI*uuEqecDPN`1ABpk#r*RF$60#&e&xkKRBZb<+WHa$>I&wAXkd^ZfAX`4Z{Oz$ zYa~3bqTvjyZ#D1!Cw#t|Cwx}m3CoH3=krzZ?t7x-MJImfYc`#1p9SSZnKx z7J6oI0D2AjVsLU2e&2YwlU;qe8&39X3m3jE?{nAn~2r#KZo=2 zH&4qn!PVPyI7ETU3ZQ%YAMOg_KGFVvDgPb6XA>|n8)e&ON#PurEjXCyGUK0l>ZI8XTs&UXIa?>tr3BKJRZ`*+Ge1>W{!=i7JPG-T&aVrI>A-WNO1Tb$-7a!NRTJk5Zn28;BuJY9NFxs}d$*^3(GLyk`U0Qsss-_3pj z-T{s9A@w__iMZlwOqio5f zFDoBB%J2flM!bOWHRILDc!@WeJn)aNn>>BPOEr%0k5|OospI!N^J!ZQUGQ$Dp_84f za!+R;pYntsF{_&1;yyCL{|fj44o>P5*_aJ}w9&MkHeTXsyXK7e#rdkAxuXA*^&g$< zF=B`v$o{)4(4TX${qT+Li@$H5Xae6~Hol^J@i`oZ?N_p=lCo5PAV3@$0F$A z1!aeMpRuiVWdE0d&66%E+4FTLt_8BEZh$R&>X1FQjrwfPQk=zEiW+>7tMQ4g;w;7Q z>^pF%OEATz4f)Y|v_bdUe0oCwxIVz|f4>dmn(V0^zdj^GTov%#S9CrPiI#yl`^&xfY=V=sb5_(NEu)H1Fw;+RlFWqu`fgAI-pr zeiri3_{(BTZ@Dx0@DIS*)@2*ssP$WsAm9JQ_n=k0qz=2;LTvoc^Aqp83>n7$C42t1 zuRt^3>$s1|Zin4}-n*Lg{VYfBsco9G+5^=8P5uINR_%HALt7|EynwQIYLEYB%Dfqx zTa6Ab|8eChv21wx1H1&R-UV9+oZw{_n{LJ-Kl&7Xq&v|*y}=KC1(*+gm`8n?PyIOW z&fU)I@i&7udYli_sv>4CV3Vw-Om}WG4=Nk^xpqnKTzHTE*~UDo8DQ&}r;x9A^Wj|Z zItTpD2G6s=w}$zk*i?RVX3CupM>%b~jkaaeSUxoWT)MB=bG7nK->R=}GJVB4VW+R= zIenF5%Ik{nrSl`Y$1eN+#7_9#E@(-y0bHBMK5&Tjx00+UH|Xw-SYY9VM$dX}l46Er zuh+`uE1@$O^6$%sFXlzX$IV=-cjK=KpZ)JwjP(yC|E4<0(_Ok-hMAARzTv=riD&j+ zu-g{pnML}FMXeK7E?PIi*RW`U)v$1a6;oV-{OHx``l=b9D#pj&ch-1#_by*BaQV?Z zp4sCPoM6Yt5qt$_$Zh<)=6mfILdnO;XVRTGbF0$zcEM%0q2dbeedau(#U5KHVusgbLL{xm-*5ECVt`PlJVG!LQb2I@0DKp?w89S4{3B~BX_9Hb4Y zn*Qb-g!(;(tl!L;AN=8>i#D_W051{kiLQ@@2OC?#TKqT7{3X8rMb^Gr=%jtNKRmX= zu}7|Te0^DKeMa3%=fF|=yt?+7evQ3lEA`#4I>@VamhDrhJGgZQn)65KZ7Ns#ZH;s} z{y&4w(TkJzoY*^@T8vzFuABh`%_|rTtn<9Hzw3! zv}e-X(3;8Uic=PZk`)1K&B$MHXAyE<`z}|_?h{sC7hZn7lLGko;?vv0{HO@x^$+c} z(Z)&S&s#y{M^Vy_91KVPfLsoB~J|$zxE38 zhQ<+RXgm9)6Nw2GuTXrU;)BK)8hg?s%hvjbcT^n9TWwDs-mAl;39i$5E+w>^T-%}KwM3YWjlEl z>oLx|fjO!x&ZF$eg1MM7!x#F(`96O*ZzgjC`qw_{WN5BrA3jAsE2({n96i}{$bnwAU#>HA z@=wi)q%PdC-CTfC3oaTwm;0b3rJhe^Aet`cwTBH z>w%HaO|X?c&JuJl`tCAp@WnO6i$phUz_*}Jf6hv9?%p53zp=hDqPSBZzso)mu#d0z zZM64^qzkwRw6#&*}ulNw+EYK z+D-;sr^W<*cq#RMd@S%|n7i00*&8cIJXZWxWwhX%m){3oKwjw#@~c`% ze=EjBt=1&))Z3L->J^+0+>s%GHEJ;-3$3WR%Hda>t>qRUVG*fpka zL532C%a+r!9poDs`bFAc`-hvH{lm^saxnNwUc0pZ z2JI28n>xrNS#0ku*z_$M`IGGbw41d2=#~7B@xKlEo{f{_^q0`vSqCNaE1|2~ps#nW zWTV#O;AnLJmBh_qzcaRgJ*G~dIS-?wL`{Gj?DC{UL zwWeb?P2;!Cwz2qTvzK13y_w?Zcj1HD zQ`_~VwI;q^y5F$q-=;8EnBTWSH&$N5)UQ*9)-5I&>@!nt{33f#w>WwNzEQijg_0(=CVNy`lgo~+_~+g= z`Mri;+iUVT@Vh!}etk4J#UH=Y$gyf8%fH%YX5otI9v zH(DJ13p$JT7I&3j!8wm$#|YK~8Y_z!(vqL@wfGb}bR%nO;$xe*cZSb6bp9`7*bd@Z z$KgxTjWwr7&8bLiuc5xvL*QHziBEi`a@UibRoRMPVM$f;7vQ6Ftn)Mv*e{OquDKEi z$3o^KIsoS$h>s?IhW=si9s8r_=zI+N?SBC;U$;j2x?OC~3-*JPjk)k*)+yNBleemD z)~xpdt2u_8F=zd3-wXGArK5KhVe^OAUh3%2-y@Ia-GTN-chQ&XbIGdB<3ekSk?V#R z&=0QM*+O54hcBX!g@eI~x%y3~y(#XUM?a3ZGRn3IIXLCnIQ`JstDfn!`9L_S-gMtV z6I)k77xdo*#z^(w)X#o|T_CNW0oMubioPnSC-xUdkJ@AQEy?dBd(4}NH`osbC ztMTMFIubbjSvm}Od}FesPa$*TIqcnZvX+!i@vpAEz<%Tl@vT3n@&BIobMXryu10_XPi0}TS;~PlYH85)IQ%3e%}4EUCgcYSr+K3hW?U% zXK*O*AAWgn>cPS8J8Q`Qqbyg)lWc#7_gvDY@Acs)9aDMTJtDQs)f2tEp^bbRzvqxU zn%94o9s%vd_4JI(OM;^>hw?m-zPE>cq9pr7AG1%i7rUu!@CkH3(Vy0?Pm*7FT^$G| zD_L9bg(i{39|l{?!oeylZ1?~%^ldvzar89ct;MYqe2dpjsO{%_q7B(zSBDI(R|-H~Vv6gnhP^J>sU@mRW0V=WLhw$Gwy(-jV-0wtkCm zedXtn$v@QAeG3k5o5J>D^li1T?oM-;#;Gyd^lj>pKCSO6>zll5oL(i)Q%`#r-hME6 zooLUC+EcCMwd9|7jIGbzJgR4XZaQ%Po<3Jh>`hyrE1qd>%-OkV{2c7C7QDQQvdnoT z>YX>rN}j>H+89rtN7{eCLwgltfV2B=|MUa4oiWt-sqOh8r>*Do+}0t7u&w>vwpP>D zbF8Glhc<+fTZgg@ap>Vtjn~_vE%2*#+CacuGY(%NW<_?4C+IN$T43GSKUW)=*5;S_ zE*p4v`$d|!nxCn|eF^Qe#n43+b8=*9h_!o8M=j^Kf}hshw|$%cnaD#AeN?D3HroQv z#9#m6M{TdiKGMA}BY@F9$`jzGxncI(h-=-3olkph&tDdz+<>`@V-NRm#J8Y#ba9$=m*uW<7r+awcOh`0DBVlmF9Z+2rhPLUR(z3)D1ZTu5yx3Y)PW@0fi zXMM$zD$2uO`6qESX8fA{ zA0PWb+3ri#Bd^6n_vZmCXv+(G*3`$DXY4V%pw&3KXivPV&}rv?O1mwbH8iyA#N9Tu%l|rJa8JV4 zF4|oLjA-{W#yd^B$dlgEZmsDP+yD12%6NyhzUb7N$r{w5(=zN#qEpF=TC-27KJ1xJ z(N(&oQ}mDh=yWu7X78i9^vM{WV)N|Gy}mTfDh{YavpRF6F_Aq=_DRujjQ7GU`SCRM zi641s@4xxhT|F)zg61}e=6?SV_UA7D4fK|E*OG_cI5S}AO);R$()5;zzkA-clzuJ9 z!tZVezwYYE4?1UfIg6{YaN|t7`}aMa;hpD{S<6~v-r-jATRpV5+d3_$PSel5uk&)Z zPUg6H)3hGyOs&^lO?k}YeEPM3d0faHR(-?nx!;dxLx=nx@DqO)UMf3>kFuVFPT_yj z30d#tM}Kh+_nFKHnfQG>PS8HAb>pQ^-%qT+yO$NR-e2i&sni(%k#bhE7sOfFoipiw z&I{oOHU88Xy5A_u{TTnk)u&Z)HWMB22z&jwoBAW8&WgNpeMJI&=&7J%!`ZQl`!c9lOvb;Iu#7thMiSd+oad-L)Bd z3$pfYMuy^>VPs}(u@(LeHmhC3Y+dSOc#XzSv@4mTHHgcLe@D44FP6;tJiPc>%F?`# zQSUDJ+LOHNZdTTGPkGmL!oeP=On)f)+Kkh0$+vcgVzAjd^iO%$+D7m0Q~mj*fUT@;6d5IJ?E&8 zN~G%jk<>8ajyiPG{(TGI7tT&>vBKLJL&b@=?Q6d1<*YS#VH+@ZHS8AIcC{C=zsb(F zQu7VCUC^P{*%#7x?Ubi>iS`(K)_cq~e3P0Ne|f*LX@#HfTW|?&aPB$5|6BeswUnbi zRNiIeReAT*X7dePhjKTXzAfcjPdY=kk5=1~d*7(|pXQI^kG}R%+fwZ6M~uo^^`L(t97Rm&hZ1Pc-53c>R}bYoRZmU*|VIT3@Eklzng? zE%v0Q0^6OBRtJ5fd3dg9W&Qs53C8*}X607+f3+s}&>^s94EAnkPGsC&NX!XjhiJm~ z74z6y!Q(`O$Nv6LuNXW;=Usj_sr9~%d$053hZTTt_F??{Lc{osVH4lO98xUF-O!`@ zMmFqUQHB|N`8hB~Zk*c9==s_+cjMG1>aEHoZOUQ(29F3mqw~s&UHuF4%Wgf1^Wq8g zebaXA8@3NcarAh~oH%#B_E(1t?eJ=*}JvS?&*D(!*}+Wxo`HrHn_Hq zpk*ZsO4Y7{sHJl7!)nJ5OLmSrV!C?m91jy4rv9^jk@}P2@7n*U8e!JTvUN1#TXi>l zNpiUK>853hDO*Xu)t+hL(;^#4el!k#HZAS1k83Qou9y5{l&;gX5OtFBnsxQsZ`&y*BcJDcIb zL&x5|Y*OmZHyis|t96&2#z?Wveod@|)kek)Gxm3#_4y`ke3oysNUI%Cu%sPY{2Jf3 zGgm4C1xu2wPo#s_1%@xNa`Ki0d5)k=Urx@F8NlhT)mqZ!Q}P=1OlH2-5ep&c8?xkK z(a_KFXIN12;=Tp@&x=oQs7lWbH_pIsJh;BiU03ok5PdK=n%<6UjMj4hC-ESp&l9)! zO?cLU?1t)hHW!|%-24c?snhx$Wqqjp+8$AsQBacS6IW?@f@eQseE`8uh_}?1qwI?b26) ztE5cv5`EKLnZ~>7Y9*di_p;OGyFp_3#F-EH#|)l0$hvVRy!Jup>0`>2O}O#rp~%Q& z=*QzY+phI}##Ips6##Q~T|EpvTST{$1Or^|yRarRl67dJ^xfC6dHNdq#aO8*~w|hbsD7gBpoj zF5UY9aM^=?qWYN!+!b3GZOkoNl6QwSvOC*BF>^CP3=-in+{J?!-dmx+anPOmm9<8< zYe(;T!|*9+Kx+-rk9TZEi;egC5081q2xZsMdfegxzdbbUbKz>;<3aQ zbNFlK`tv|E|1sw(cEeZpz%LT;7Ride$k$K0WW`fnSuw=OiXqXPRVOy_nT}1oK5Y*l z8XW`=G;L`ek!cT~+CMT6JcYmZ^!fvL>ny#?C#@(dd%-R1{FS$C);D`RKV#2ffKCg}|n~ZFXT63Ia z#%%v}lsk6FhNoofIiGpkll@eEt?|2B^oK1bIFP-824ZosUK1@}s_*!a*L^|zuDDnEF~XY3zL9$~xz{&ETp&zVpN`-R@@iQUP|_TZ}EH%TB8`vumeKsy`2r zo%VgoGPZl_y_x>o%)8omroQ)Jdv)h|de5ZJ*)#cOi2m<>o&P%J9jbNy8W-p5u{(W} zJFj`4cddiNte$ZY9Udwie&XUlz4K;S$tK}&p|chu9%T0V_(OaM-1TuCaP!y`6s>+w z`Kle<&*>TW?;Jwh=eW32ulAh2%Dc^5Gj;S`iB!>nCgP=H)zl2=|BI!*?;#Or2i^<(SIdb{nt*JhpPW-d+5L4Qir$yT6q^AIf`dbJSe}9 zGiR_r_QZ3ZB>$nB?~e!b4@Frr``;hI;q}Lf) zxW6p&%Jw|`t6W=yOV`@_YcT6IohK=X?);L!Npb=GB|Hgu_4NxOf7AT;dX}BL96yZR z=#>fd%483EWs%V-Cr+xCVs6WlvAh6Asr)?1PH!J3` za4n4f2wmmoYJX)d`lW0SUnif<*E01RS03B*wJ3T9I;ofbo;S8c;;n&~JJ)5Sh%wiP znsLvM-a^`e^gdg!xABzDpMSnXuO>En_cAhI#$5Ya#4Y}uw(t+Z&(NzQYyQD|9eovd zY~;+xTo&8y|7nSWO%Mo3x(V`Lfy> z`1gGe3R$z3qQ~#JiPfeRlSJMn}&Nnt6LL|AG}}Pr}}#)!f#+{xx{N zgT86@Y8Rq+I(xOc^Ir6-x!9Y%TG`w+&!x9}eG2dc+i$P7W#ayJHtFeg?6r$tw3e{v zRF~~`9{rcCTi*s84`4ZT$?Zk z`8o{C+RrUeS(JUC_U2o*561o6L#DQ8`(d2m(eHhf=j!({=<8kDVHgz&~No?CQNK>0mqfMui#yt(sRhWB=htZ~Co;K2{*${c;7{Z&&$LI(>L0n) z-(`Q;0^BVZvW8n^`|NGvecrW_caohw)1NInilg_wohdtxCBNq7zs}5*9i`~NOTbxa z+eniQ%AGUv=aDU8F@4pOzT>tfz2>^uktdh+tpD6VeeT@&yz=B4haPH?U-K@rl2`EF zn{~^DhY*L;T^y?Ib;~&3?QzP~!G8B~s;H-Rz2b{z|7J7ERM_Q?TP=yUn5A-s#r|(qZzVcN1U8 z)#1Er6Vahpx7oqFXz(1K-Rys)@ijUNcd?kgJ^DLiJ=@~nSjiq?dOdq4)AI< z`I3FZBPy7ProCY;gpFZhB{(y;q!Vi)%aM5ZmIQh3BcSCtKWwX?n=CPrJMiTijCF z;^u7W-q%n2UYeJ;G0ts=ciG`u9Xs4j`i>p$6@OLb9KWwp_PCoz_`;`us(_ z^V2%ver$AYo2x3(g)1co>^s(qqcefixb_ z*F3Y|3!=e{^!#X_jQ6~##k=&yuP`1x^D5g;|FL7IPqLm;3=Q?iSa9TErm;zCKI?q< ziF~_N?WZ5q2Wr38MWgtBi)p{?>qXJ&^ufv_LdoVD^g8-sKK-D+DFtpNz8mU?qxf(4 zLHB$o4!rC)n)82n({8){UKoAB=?nY4Ao|;k^!#XR#(Q4$H@vIZ2v<1A$@cAB`kD_TWOQh-Xg6#UE*73988z6 z+i3Va_sMX0H-H~~Pym!Yd9_u{tdf;HT(*Wga zo@bp`N$bMdw$po|1Fv4vmSICFjE;nsj9zm9+i9uj+jCxJGiCNpH#wM|%$?4i-Rmd6 zqYkfrvW|C+;}>|Q)(7wj%EeD+0RA!q@tZjepP<9>2@0@JZ^uQ_ylB%ooU{+*utXhg zkIz6B5DU7IIJS0tvOW=uHCQ|Q`hVdJbqxQs26Vkb;!5bwu+~}lyRFjM)xxOGB$@u5 zVei4l%DMjsd@59Kjb-Bg{|Wf7BD)k*cPnMuv7zlV-MZ`Pm)OeWU$l%mbWZk14uBQqqA_6bWXO;_PGoNcxP`kh#%7=&f&WF zb6+<&=zgri=u7x8%P&!FmCxOqygw*Bh^h4r%2c1t9ATy7{3ElH?>TK(%mv|N$N4Xe zeiIv-aG60qolT6(|MMCfmzbaTTpO1-w#iQX0!>V1{4X=k;W3Aw;#^ny93F6;_#J8v zpF_FAy_xjp#aAa@VJyAAnq`h%WZ!}d8UG8QgY%(>^YEkL{?7FQvrl;?WoWL5ZcgUE z_WSkjJ|zd`Gj3pL=MkJMP@PM3){H(|e7c=K?iue=gI8YkJEZk2pSxd6qDEZ`;pcE8m;@ zS4HY(S;_e$bfy+twE0#YsrxoIfky-3zwlnaNVIxjdw}M)^8a9?tqa-jh0*V2yyr(3 zWxVG_hf%)hbMt97e{f~I>;?6vf4T3DwC-g5{L_1u@ovAQ?FI83IeB}}a&k8H9V!`r zF=ZJUe+%;Zb}M;4@AJOq;BbA8^_Kx>XravdqujkUg z=g`k*b4KK>2>ovR+#uT*QkKe|w2!z2$jUo---az#GJV-5Cyo!eJ;;CA_0|8vNxpf? z*X+bQyn%e8@z*MOQtn)*+zQUwy5|@S{AYGOvkg4Dnv?H0+y!m8 zv3j*O)83yOeq#gD;kaJ4>x93;)a#na; z#`;>awBqkwW2ih263;%6~bszIox_4X+Jmb28 z^nW_|G&uRrb<6hnUT-xp`O%Qlviz*Q{jT+5aQJ!?Q&YIrL2F*zTwB~%KV+{Q9{azP zXW9TRwXE%4)w|lFch*q9Gxc`a3oj>MZ|a|F1dv9dO4TlhiYg`;0 z8FGbiIN4dVpSu5={WQy{}k-}lH zgF|7@IFuYh90s~LQ184#=8$k;ZW=wHU(YyvHvZ7{LkDFUI-*|Lg}3qEogN@NXLqzO ze-53)(U}tQChN$Cseh&n$@)K0rkBUd4%%koY1lT$ucX!&-^GGjP`F+7I#4DY?6<*y$?9IkY6aA^5b;XuD0jF!(k zggA_MaiCt&@+rLcM9ZngI)8j5y4E0cuEFSDdFWvI=(LgloX55j-@7> z(h%1A(p?{+&9W)&9cRa{N;$FDZ2eg9y8FP5y*A9mUMuDtm*&ww$zx(z$)@xz+m6$K z{io5fDK(-G`<-*Z?2n?~*n5^E@s%!^?F-Ykrxg27I*ffLt~feE=O55bWpAp+-lX#o z4+ux>O&h6C^Ut)Cm>rzWOG>x4ZB<=y;%s|Uar6yr9>Q}y`DAZulf9{@dnFHGZ{l*O z2fMR3MJZRf4~R2Qbm=${6jKKO?E4P3VCd^WgjGta!}CI{Y2E8j7A=SBZST2K17 z=va4T{D17dd3@B>_5c5#nE;cpC}w5RBv3U0Yh73}7Mn?M381wiuB|4(=VJrdeu^OO zCXgPXe;}Sit~NG-b?b%Fo{I@{T}^3 ze!oAG_uTir?{m*R_uPBWIrrRiyUfvpYo~t0#xak$M}MYYOy0KbEy?rrhroBw)AjU4 zr!QW1WEp!Fj!nvf(>Yh)#yOjGR1YPXL~K&MqsdB*t=hs@&EIg|#nE@GM+1!C1I>LjK(Y!ui(= z?@K(5UU)-{Ma?_ zKpX4m9_B&G{F@S=4{sti#ip9`h($dtmbij8afY$gm$tSwpE$J%V$F{y)>3X-cy}go zz=^pOWvyv{&J%ikq-Xn&>O9-qvDG9RtoQ^ASz~tjGFa!*BNy?zAAgs!N4WoU_Wr}U zNAEv8z}nfd9#C%oxrV8aoCcq`<9m!C{WR-ACi|i5>#oDcn!B@!!|d#b))FV^5n>4C zQO>#BK8UaG!>f($kC3-O@oG#TJ>q9`PsA#GsjV17imOCySNsQalYH&^08296O6q;O zZfMLS9M}snaqxYmTO1CLJ$^X62`m!_>V4WbJl0CuiNkQ{>dRRBzQ~%FX4o}gAcGBMKaY5k z{k^6gkr*QJE2ag*HS$BxF{bG}^KEIyVA-qY%}5LBy?kyZKNJnPI96|-SJr*5xsfaX znpie{i|qJH=S40jZI-+DGFQ30$Q0gJ|78kuKu&v=d_Q+u_jeT48KD5}()*R%FHnRH zzMB3NJj*_q7n#7fy1&DWi+`nsXK=7FZ5;B$>o@lawWQ(C@;vvlaEEj*vXbr_KLgyW zvAYi?CX3{tM&FPU?LF>f4{^Niaq4v*Y`@3rVxNZGuPkwcMt;x*5B0t*(wQ^d%x`oOwFaUT8V#LRzP<9noc z`$1$@`2ZHv-%op4hlu;W(md0cwtbsxkMwDDnoTw1m@jiDT8nl ze%i`9@AjS4^L@^=z5$;!{^3^gGTX%~wcwb$+1H_WVSmlCbgvOI}6rvQB>3jcc;!y1cgs8e&K?#P?Uy;<7J{{^x1DzS?j%!%5! z(Ku~mU9Fgz7HWha-vYO%iIb=~xGIx5kGag@w`=)LT&b7yZvBjT7t-xsqsbYUwXBbt zQ*_6AGrXQZ(3oq0n{d=w2I44XP4{|3Gok;XD=hztH=&2-zPG^fpZs0NxwNYDh@}k< zZP2A?ZZN!mB=gfp2KXR5T!swC-7g0B)U;(1>yUP$)4g0=RvgNKenn-RqhP!^_?}3e znis33UtVJA!BxPi&Ip>m71i*~pGoi7l3SvBTA=gmCY^`3vu8A|Wy{qitPNu}d#{O! zo--B_yUaHvrg$h(#z^$^KCEwj!_jj&b5qmLQXcN2gf*qq+R8k(O=1!TX==gQNpfIBW(V;WQkaWV0}FV(ohAD4Z-F zd<%ZF)~;cZ1GWud3uTwl-%;qFPYiVK4T?YQyDBChla+N>aYsqlSkGCkA&!jKsB#+f z$e(M0^K{+S)_1;Zx_(!cw*70wTkH5v<$QVOcPser$eq{GkJlovT!Y+lHS)_<=>J#Z zd(zjGg_`BR+6wJi{|mn{D&*x(?Z>bMEoGnodA{%5pWCdx3Ugi4ey8-?UofU58|b(8 zG8H@7`kfc4=yrpJ*QX8)KlrE~A*uDm&bMDvoC+e~Q&Sm_O-6C-CRMz6p5p zfpOqhlh$0KwC?Aa%o!fxrSClUd(qusuCGGIVr`9onQt^#)u2mhEj!utpUH|mEgX~f zjQoDa0R64*3kITOCbAMS;7hV2j>NsAyYd>JQbyuHFgGz9GxUJKsL69HQrt!f! zR*c;4?p0LVD^6beN=wW;<=^CVT0JYMsCBBp9aIDxXWoYy7vm^@lx(-TJqDf@Tj#Op5;8fyjPyyPo%7m zvT3A!lMtljf;wbd!B|p8C zG6N|yD7<6=Wo}WKf#DSkfcJ&w^9#_Smz?>f@Tj{_439>aUb2KTiz#!@iQyGXh%;Q3 z7CMA3JF~Ci4QtN#Fz5T2`}#yCuxExHJv{w7?m=S>(;B2bw3W7eI1wANv!^zOv8DMT zIYz7Qu;eUb=o|1#cX=95(#wWXU;XQLEc%g7T;a^frn8S8&si&FGs$Xi6)w}$wpR%^ z@X>my_mZEg;GH0I#pN1fN#ob?_YX2Q8{OW!~!(sWj5sYgtqMtVyGYp)>{f zlX#xN^IlJ|>C&>a?Pv0L6Ly*@g=yO>JtxLCu^#-6x#>v{b13ib&^;~UU+$I3hC0j&kmO^JTX>z_c`H8PiAcN**Ax$ zoPADswC4(7WX4L5oD(kfoD{1(axULz@%=o$KbP;P@qHHGkKy~wSb^t{6GnTk;+vdU z(DN|7^!kL+3$Lb3ZY;R)kqM=DkEdKttf0?bYb%eO7Y_EBu(r}Ol=|+VzVoQ>%X~YG z`uM%@%O$1cRUVlDPQznojJ+#7W#O=rOU6#1-1U?@nQ{}rYj~_+;om1z-dzfAr%=yh z6GpGQ2mHPOj7sXxr`#99*lV^=hL)9{wDwZoc@8F~6_OSYeB8ao^4nAVu^4@%b5ru^ z_z-@TJy7e$!oJ>(Lrouh$%@{{iOf@ut~`+6&FEe_Z;+w)%n{A#V6DW|mhWpH-aSj~ zyNxGU=MY|H%)`Zal?C=Q7_E<)pEzBu?uQB#3#K5`M!@b?i zmq+gG8k02nj%KsIH;Y57sZZ;n5L%f_+ z`_sZdtJdC!{C4;IvBlJLy!K;rfMxE-E@B_@+eZ8(((}J=<8X8LIQWkv4hKaK81E|JL^a_<>t?@Y@xgPu9`lH;!87s6fv&7#)kQ) z1mjDI6R17r0~tK~5-a)y@v7vrqwVum<-z!N)vxbAO02)-%uX6CWPHs((}-_XK5$NV68Jj!x49=Vdq?dcC>v-uJ?|_e6*N6%~`t|~z zcl@(c*SHm%zV=UBKlf?Q(oTG67P>|{x<(ti#w2tN-D^;tq?@?U(!Ky5k}0skg#G9b z$8wgo9Qjo?nNM<-_ABfMY3-Are(Jb(Y35nl8{r}9NEz4eAhB_dZ(KWMHIrw#=Ky&c z-8t@#Yj>yFXPS4ro~7;S?1j#_OI}lalE%K}8%5)KwvJFjMus>*RUPjue`|Sij_Td)%Vw;IU`e$S{4?2fz81Fz6qi!qr zCcQYpkL? zyt8DY?$4LWex~owc;51-wbDZ)Ijx;($r+8v83jIcF=(i9V3o^_oYLjH?8s2kqD7wh z%#7riPht?!F6*1D$Y49~1UqkDM_y(m!+!U5-YMp9s(99#KT_%GlhL~;qjx9k=~tnL zzet=?>FGs&OUM2sy86|&u6`IDP4QR##0l0|YbDP4+u$p@80cVn_d56DwEooyALe;z z2Y&L%ri!Wb-}uY?i7^*L9#7U`-=d6cfJ@l-F!k6OM)=kw9ri(UAJ#g{iJ@t|Xq_DU z*NlgKru5gYF@eqZw(fcpb^Q62PTh4HX{{M2(hli1ANTih=NueAuyL#}ub*M8M;~~g zur)ihg=cwlK0KR)y{`6^_0(6uUa?}}Hr`(zt3Jut@CfUs!9Cs&k|({VQFp!nnms{Z z-2}hRDz5W~j6T*LnX!5E1fzN3g#0s%re?;w?r3-#8!9?U+&o{95gY%=pkVyZ*yeTb zc{x4{jg%{5Kc;A+5o%#gTR^{c!LOj81HXI0q1Gq-ID42N-aj#f`hmmS-$)P1XG?qO zTkyqHTe$P#74|k>xrnuD8v0p1G6AtFn~K?gm5+qV{}`Qr8SOK18xR}cir;>#ul9V! zD2k$g%}d6`7~X-)EO4nBkph>M86CLHNW$fxq|fdKmpV5tSx4jYG`Q&e#Am73O+(+I z#I!e{;d#E?ZC_3h_W>K&s3Uj1no)o}+J4tleoyYU{*1#Kd_-m~T)aFV`uHSZ=5pH3u+-mM;=SB?m8#0a701tZ^UhbsT z*-SreW{r$*rfr9ImxuH1^9`{|?rrdKwvqRKJC1lh{8BxXG449!P)>RX=WGf%&#>pS z_#Z0%{TlYUeC(5ToN>sBe1rO1se7kj!jGE!+;^4yiEm@*@{N<>#cb}Ca`EVDY(yp8 zFX`}S5jdry_nxet={*5@*C+0J)la$Ff8X`$|5B$(>l24Jh|VQ8oo}(}9Ay8iw{-q7 zFpr{hoe}yevc*jBZl|6X?Y_Bse`3R<$l>mHhmRySyvMs^>5B?%tnR)TLE7ny@AS|Y z16_UbB>O_ieQ}H37d`dCsBZco1D&oXo_G47DBbFV>p!j!(D6R5546sRhRHlXv75e_ zLSKmIHRn{bj%!SpP}Y)JG9wqU1!uz z9Sy8paMGOqYwDWF-i?0$g5TOpDJ89OrSVmb%}92a^LQs8PnG*Q<#g6~Ebru#pmH}* zPVGF4cak%;HzRwD;A!ts@FWLlOd*?eIk#1LhT0a4CwQ7|=De29e+r)VX3Xz&&WrOa zqQyb8d}icwp2w=kv{TmBW8@Fo5mzAD*Y7sL?!nhDlYJxGZyy*(`}%F?`{Sj<{1RBA zfn->%_0I}7*4<2=$9l)q5%ezSj;T3(w|+*~JEl(J-Lc#;HIDw>(9IoFAz*A^jqT}< zsYb~G-P|#?knh#5D|xOOfgC>52wlQ&*+i?&Jm~!fxl?@o6*|iwC+qW z#|XB0omuYA$GE%Lo^BrU8|<^2xa6wfGgAA}Y79B}cbv7p#J2xU?cRRkr@rH5>pBR|rmgFX*f=;JwwLt$avO(>y2s&d z${jBpUUP7uUY#+1nY7hMU2TMwyFOi9lwSi^G9?rGoMXdj=l+d}#~v zZs&e4@jBoM^ZOp+qWpz2?zkvF0OqmHY2E9s4o?mPHsi&d)5MR`Q^k+sL-$;F7isbC zpGI}>|F846iWQ}E0P>rRyUyRbX{7P##6~iJ>pp*5joqn}K0_jpf}gV=Zo(-1T*rQR zXKbY0NQiO^CKEGZhP5AaA8DO;|M+p57dd}(*Kzv#PHUV#MqAzE)L>0K&!)p8V7bR>Khnn%zvu{UJzhBM0hWow7Z|7IM*N?oQ;pMG zc6QnX3s|ePXKTD{-DA}K9Y&pJPc%jo3H-IO6S#TLEniGm-7eXp2wks(_eL6_58(rc z_YSc~l!Kmqn7t{@?ee8|e6m~dyN=_N{WS0nqm$+Pa?JS2vDL=*IC;0@!y7eyvWMW4 zJ;ddctyrl;OrPwb)4Se5z0#&rEA<{iul)gOvmL8C`F{cD&lmiqU$}<(?pbs-#m+X^ z*Hg^yI5^6N8{)et`f|=nBTPK4cmaEwI!~U5&UqW(9p*dvXz5$s6?~92dDEcu*e3iT z7PD8V`;Dd7xbKL~)&0hLVnenxsQ zp5Zs*#y1yE@J~1J8%%F6)873Tow3^0=F;VUGS*>Y$(r)4GcGk>$!;-?x;y48`mUnc z8pBT(TVr@7Wvb9^RnH{Kst@<$KPh=wuwvS)Do2-u-suKUbUO35hkX#}BtP0_^vdis z?r%50&t_jDr+p!~i+{Ib@6-JF0QIG^$-4VaW8bLg#OGAtRkKdA7rTBweOkTf;?zD% zCLY$kC&DAQ1COi@JlwX~$6L`0Q`{xn6E5CQh|2-mEqkr@Y8;w;6Pmd3X)ng6--AuE zG3h=;`3_x$P4dN$E_i4T_tb3To|^vLQ!|HqYOcm6xyQCi5{GKqJM_VQ1IuDz$`>EG z;3(grZ5J+krT_Ko`S$sJQ*t|fhu*P$hpM^jOuj>T_(hJrI}hKX?8p|{6!r2O`$W2t z-B9c0jEYD8HDzJ$-^TC82(Lgd%)qax65pYF$Ccy%;0ZUJGckOre24DgZ>SM(AU5O_ zk0)@+$^3rmg7B0hY2iyak0XDf$|HTl4NqOjcYSzX#IvvIL$rdJ6Ai?PoPsZM!#Ne< zDR=wBmmI-w2;ZT~yECX`622ShJSX$a;C(uO8DaSvM}Oi8?_>;!FXdyie`J~I&)X{B zna$qqt;~sSoGp&B2QI(e>EdDdKFIi3M4NlEd!B>+{Lz;>?VgtbU-i6Fgl*(A!Eh0L zS&F?XNIaDMf!Q(nfR8@=V7UL;JQ@4_p<5~MN*Pz92U0(D>yPjE=(Ecy;|-4#vw6R>ERYW!^ULtt8Cww^FxDUL4~<7pqTD2vj`B$o* zNz{`b9(^VGq)T~UswZvq#5tppW|;GZ#x!=yxS#eH`@xb+EyFf; z(V=o8=P=Hlb<%{BBIfXU_%%9l!rlSivB|GJ=~tPNn|7p@UAF_jV=aI;Um~r!xtM29 z^N%0?E%ErbeAXe)Ees3Uj2I@_;%F|1gBv&)Up6#Ts2dHc?%swvl>d8X4wI{+JP z;=%FQ4EHdnyunzCest%njrcCK?z!{TpV>GWtj#%D+>6EDMs8MagZ4HWp??eWh-|n9 zwpQ(P{GGPFxX1|YVXV%weRhJZ?HL1ah`l)Il-Q1YJmDREnS1&W(?n0k){F2<24m{Q zLE>Nhl?U=EPV$(bJyjA^h47qAPWG|DAg*`k5<+n6``|kqywe3SH8<|E{`=E;%&vC3wdCw(zX3 zwv42BbQe)h@#t<{B>RSS&&s9r<88Z?R;<~a$oZ5B+k96*A6RYeUY{(GjJ|YqsE}tN zzFi}E&TPfLSx`H5KX@0|d)=}-YA-1H>DWRFeAxUcul4tQo>m;YyvS?6mVA|~n2O|O zMP4@3nUOjF(EIGjIg~wWK1Gf*eUSRHH^evc#gGhV)N)1;IH`OywwQHyomW5W>5P>> ziv17yCu}_ZlldoLn?;ts@S!&3=UG=iZ2Bd1%F?aerP_Jd-fFc8T48$*`v=q>lTX6M zwCnXn{}0`@x5#7qB-~-ukfO!mvpbo7|i zYnS+WGxI(BXWYM+W7?75&a&1k$=l3htTHZHQ)6Gmgc)!>RrGb>^13` z9l3#iOl8YA=kfyEws)FvOzofb9^W4?o5A0O3piGdz-Dk7=b}g-OU#)+97h~}<=|lZ zscjSv%qwiF^ysJd)8mN4qYe(#D?hbmq^)_mtBq5#Wp{nY`tY)!^`XO7{1v+mGrI4~ zyN_cVW;<=Tfi}!A;y03>kDc0_r>{DCo~}%|eCQ~ryFcVZca6R)w{gFyd)&Wx9C81= zgFE%g#yp;MD*FHSZ^W_mDUPL=^IAU6ZKZL3%Q}yDmB(E})}1}rfwG)Cd-~D_ z=guC)Nt^t(%Hp?bWZYY^SKac8pZ$KVu@`f;?ILJ%AvC%G zT216^8~4%U%Vp|EwA-;s8^{HJ1zv|-Ph0=+OUveRF7IbSb7#)K@o$z7;U7-zX^pmG zh_zG4P4@+3_P9vzs2B8QmNON<3rBMHwK%}e-Ac7C!S=4e&5H~t23%Qq3gZW zt23}|z}d}H=bs9YCq`56*Qoal>IJX44eJ_~*MRFy=pyf6*ZLQ6D*iCAJf^&N*WJJT zi`4lu{&sjym@|?(6P`hHo}=$4Q|DU#?zQX82fmm0vLn_&W35lG8ztkbu!AVZrS#H9 z=Aog`X2A{I|H~cNtnt&H<&JB~WZGvQi~f!c!i;$-JK-+yjrQ$~dAWr&=N3Y`*ZM~4 z(4E=Ot~SCe;gu+NY+Ereb0Y7Mw;$W(YT_G||NPw0Zu6;6HFP>ca8Fa*np6!ROCLY9PKH@{9ai6<&FT2_w zxjz^~CtP0yziHY85-MjqX@Y{Rz*6?ZEjRaNY$5>7)93CVhUd-Pdz$7{X;Wu!XnUIGLCW@-Oh9ukvrb z=Y9GWTy2{AKFTa(V<>|)<%H~T;MGc4W7JWzU<5gy~`TnznL4PE3<2e=^7G|?k$r72yaOHvziE&B!w5LBS|yY3VjQ%%_;xkvT*V89 zM>kSelz6_6toDX$Pcq^y9ekS|`2u{k;uP#YmaY~^b!K5dx|VqI`Ib)Gws_Ift+OH@ zj7+WD#DWK|99w| zy#JAl{bVIJie-Ic&r1J19~e>2vYPuG1Grm}J&q-;6&gPUoVQB%WNa%gG`5%SH1_U> zNBSEX+iEq$Ac;~FW&5WB5c_;X0S^D+8Cadf;yX;EJv~u>$j00@P z!u_TVZwh6!@6yiG%*UTdFyAJvdhf8yl?hhTId1yv=l(*gzx?pKd*9>@8=m}^1jjkA zedAxy71&?=gALz#U&Z_0z~5xUZ?WNj2|OKG8%Gk`mpY!Y>zL%qTSs21IZA7d){squ zJh6P{#o_{Mf2|qb__+PG8I;lf#ADQ_@n_luoP9Rt%!L`&d0xc{m(9QPUe2R+1JP16ElrKso^zke~xYS@Y{Dil}8+G$yqCrFB(}7v=&r-d*Or)GmOxF zY^t*T$$rv!1F^>OJ$vRxE55eo>)VkzXj7K_UA>IMB79EsJ$dajDDTA7{vxz9V`?K` zK)<;9!-=acn#k_;3T1SUi0Yi@s&_i;tHonS%dC#PdL`!rnX|K0?jCz=c}QC_M(6qF z??B5``*QC4NVQIm;ZHWwLdLsQcUK!nl(knhDPVrcPTD^{k#=bA>y8ioA8t0!*;W5= zbD)S=^3`A9t{FX9LmGKXw>`l5JFDKKd8le!Fn*YJnBOao^(bPRDGi(`apS8_3C91e zwBRYtn$%8OaOWTC`E1ut${jD;!S8`(+747N{PZH}?%LFyeMtSM@tTjUfV{ds`nK<> z={fowZ?W?!#YdF)|C%#U46!Xte zWG%%fYE-O%{+ws7@jn`%Eu628X#VsgE2s0mU?lz#bw>DFo~>_t!d`UOH)*@(7x~b? zg~WnWwVsKO>JWW-R7^m_}Kjd^+Ok1-v_r=Vy2_ zZqthtAA;Bwqj-YHPU45%0#0pjmxZhFJ-?lCvjQI3$vm_kUB!~iQ_q9@3cXpNLqCMSHaP;RM!|99&>+Lu?ec-t>hRQ zwI-ZSnM(GU?r7cJ{_@ShP@mcR%RhHw;w1Y>Ccw3){pIEKiK9c9@?eVn<<B?niIL4Z&vC2M3i-lcaur` z4Zg+3>KVU zWj;Zt+Th?(1s?2I5hsZFXP)#?jlk00_&hz$xuJU>HJ!gObtG^QKXlNG?`OKx(Cr!0 z?mFv9ujfy9?TA+E_^tXr$oDS&)hevW|6MLP`j1!nfA|OYb(*j@P}}+wg_hJ36UNR@^!K zAkB8=v`+{36@x5YCzG}M|DpnKmgdw#*3)DCUb3{Ki#mE}jtxihb*7D%lXn7npBDZ{`4*mn zFFv$rX0_okc|FT-|5^Iq@4^4$^uMXl@RRC)e|)Y}|NF?6$32V@bKdhAp*s7Fa6j-k za9J7q9?vz32XvRH=Er=))2_5pdqZp`w4IM$@I#)O`*xt`DKDqW*zSLCM~QwPxNIUY zh?i4Y#@@;EjSo@QIX9e>CBF0Uoeh)uwSj!M>~6s*2Syn%eq-Wt;Ihti4dtZ^+|ARG z|MiU}yAV5%-%-Z5X+}X&biW3^dhOm{fTbxL2cw+?TUnzf>eo(y=s8@EJ zdY!A@V8K-VIn>)qy)EFJ9w?6&qi5`-+$?0p^nf?MllopK@AX}SL$ZHe0l&PaeJ1A5 z7G$?Z@NFDnG_A*urn(eMQSVxKC;t`M7NUGt4bF$Lb+hg@DVC{;Gq_8Ch=OwwI3Kcc zR$mF{6WlmAb>f^0&dojGyg3Qy)4IX=4cc{>cBy>_nA3!>_CoyVK5_Of>v)tv)lBSQ(XP<>&`YQUMc%x@s{(- z&HV=TK{b8Qa-KI{2tJbG4s1y*J7Cj33hi5L+B@~VmZA;tU1uAz?KaSsl}T;Tx_FQ_ z3#NZ$XB(C#;U971zqxn#|K`);Kg7nLc6?I&?{MS)eDCmInuLF}xAZ^R#-Da{hreL< zME}Wd{I~WF|Nr{5_!rvv(~eJy|4=vnFZB-pF-iFQIs2ly=a~8bR2zTV(H;JR*%STu zoa`FE+k1z9+NZ_8*v6lBd{X>>;l}@uy~F=C&YZdDpI+1dvo`*;mkjO5pMu#F{uyrktj(W2Osim=~BGmYD$=m1gn zS{9`lKbN1^PSU&A;OkW<8&hUvIrZk3pbxq1F@FT^xxm>EoEGj>bHizt|98Pjp;Yj` z1FXy>SX+SQ;8cy?bgZ!E1FJ&vW)i%gy5Kb?!9%xwdESWBxT&p`z^qOI^ZUSrzQp}E z>HD%n-xa*?j=mL1b*G|->ikU#`rZv(hrZDyI3|5-Q@3GV3i{4=(<7cJ z3tr0p>ISzZ-O#q&1uwb3dcto3@aj|a)tSH(Ux>%+zw;fFpAw_FU(Dw7o?uP~W@8GN zLtHRhUg#anOMuyu0%n@4-7Wo6@O?LQECF6L1-$o$cDB3aC%waQBryG&yOPGzUx8WV z(6Sdeo&da}6!2bf;aJ~G9N*u>cuxWIDHqJ5m+tFTf4>FH>J%^^bHQxvC7v$>vpxmP zdKb*1$9va5zXWDu3YhbN>GV%aFUIyyfY*`&UZooz`|3x{#oh4aL%@rsfH%bjuRhf} z(G9#B;Q2Z8n#_;mT{LX@%{P11*Rz3Hlmg}m7tH$ae)lMt=9;l6^?a-Odm3;nQotPm zTyxE+JvnsXqr}T>OtIgseIMe9l2^l7b)`%1^~B6_1*hQul@-Y#Pj@9&En2v?Dx>!N z8qTwu`R^5UeD9%5PkZ>X`F;ucK+iAQ&r9qld->-33j2AH{k*__vbLG|LHqdy`^jAu z=KJ&PXNmnBXFtc-&vWeOS@!cxp0caDICg!v9P;!KVq{6)fR8-bxL0vsj{2lO?|b_0N6vQz)^~T>-yO-b_Rq7}t1{s> z4>o-iX4?4&$?wT_E_%yXNq$P{#8PnlX4>EOKJ~=+zu)Elm8f}lN*ex&KK2f+JJvtW zSEl`K{h^Xx~4f@A9V`dktWjSH+*^+wk{t7WuB=f$4__AMEl z}ALpPlpOtKHw@b6Q0knETfMfcM?eVD)AWc=->BWn+HTIR{(}{lqhKaxMRy?qY$v z*9a@#&cuhDHR4KqDkFBBoqGFzt=_B)iuoDbzu*9X)QHa-~6lz z8x-^V4J+pNLE>W6!~2cwP1ZBtH{vI&`@0N$WEbMY`5W3AUfp$lXl0B#>qGedlVcIS z*~I-_o3#JSm<;R5`VhtkMC(IX>q64{ut0u~#L2h?zemN!SfLmc%x4Gim$lZ1uD(C` zJ%u*pdb18OzjS_MtquF_wc%mrg(qpN#TQm=Fs%&_vu@ndabGic2zfZ;&K%KsUo-K% zm_w51jPC=>;)|Tf0&{IR8Yk_+tM8{kr=M|7(peX_d}Q&&KXX#A3o0i+gaYQXS@_xO zoZDi~bF_F%#upgP=NI{HzkJUBbvGaBT->NL@XhxabIUjrHv|8kRAtYg@5fwYow@Q; z-vWI2w{Uh!W#x#oB11{?F2;JmO@>5^wKY;wA1rxc2v@b5N*f_q$a&T;_t%LfxbgY|B_9^ic`@w}_dwU-!o@QBW1&WBF7LZ`$X zV{AI5_Kg({gU~7yTK)fLC_nibO5~+uK0CSP7nc97AO4YS@=4B4$}e7LC$kDTJBeN8 zoAkTnr>d!)XD3^j3*>v&tQcsVmuz7^^&@vnwtMZm&U2H`B%Pbw!Z>Vkott!z%h}YU zarg}9CRZ{Scb=Qfio8djYzf3;OnGMV$HWNM+Ho80m%L~CT*80oS;$FQk)LKW-zJ?U z%QEmeG`c@CIgvW`ZJGJ(>ihg@{pilf>GY#3PJ(|bc|FAoa?dXn^5vAwjSd$^hf^#@ z%{e)=EyI&z-rq5qcL{Gs`&Q=1s|FhDZ!>)mbIiDu9_9(gca~9iLu{xoKh_sqVx|vQ zPJ01s^N=;h_Mzn6!Mf!4RdP0xJEc9`A>FYq4U5$HhMMcruq0V_KQ!06RIPmhaM>t7 zT5ug|;xn{;NZr!qrM~R;>ELw>WfI<@?UT^yN_|;o+{#?!fM>k94Srv4$N3myS~YED z?rCPt*ZG*=5_|42>%Pj!XI(P(2ELK+`*pNy19`9Wx5+!Cy%qVnk$EzV{IC@`Ex=LC z##X)&yj2-x;cECr>$KjBHWk2-EdDHO_9oh+vkZ~}g4}zuo;CYf@@|DTmh7JkZE{_- zQS8rLlQwxtw0Y8|jpTWqw`(Nrr@h>7AJ#rd8+!Uy^z?)`y*EvMj7P-> zeS--k(NAB!C4wTk_Gx=8IaR+*E zt-Y4W7x%Y5>->?%*l&q>qcRC-Yn9R3m=jq=8P%aOzotyD$AukNsi$#~4h^p248QnP zzLohNWIXVc4JnG>mg2Y8;?tGfho86m(BbbUo4<#d{5`DwJovj3{+3=VxN7ru+OT1U z?(P;(4mD$)YCI;q!`j;@R|)S|@ywx5vVA!Xh5SiJ{RQ9Yn($`l+Byj$zz4I@mP869Gk~BaZYYCbP!#{ zGiOboy(>x?mS z={76I$TL|V=L7wpVT1cFZRoB3ee(zZS^D>vp|x|itUDXrRN8sG^zTw&^+x}G51yE| zu~XOjD)iHQ*pS)1u9aP7gtATyn)~NVnHOY_Y=tjtk+0z4^?ufM^cwC#=WL7CR?f#n zv9VS!DoY(Bm^&2njqLVjU}U8QX9RLj-r+_Z`$m#U&AKt$2W`?S!9JX4{n6DYN~`#I;i< z+(@40lxKK$=j-nFrFZ+p>vvB!JN9@Um^UITrO*3g;Gy{o+2Lb--e;v5?;S6n_ZsSz zPEZZZZhYP!NdH!n&-=GJeBK{;y*$hGd4J^D|Mz^}r@C=Y?em@zXYnt7>>W7I>IP?g zWgj?9yHxf-3V-o>x4(GreBL|YCi}df>~2#kpZ9Mk`MiI-)8~CW?KqIy=iRLDwG?fr zcDJE-KJO;XWS{qUPjc~5Dxdcr@bC9&@$a3_drJI&?Z!Wq&wCH}zwu00`bQbVjh4^# zvC+SGKJO{*q3`)Tp-ozHtp{9kh8pUUUG z2mIgO&~^Owntyud^PUp_$K3d*@_Fw8|7Slf{=M^gPl^B6-1w*RdG7)L?NI_@D2_Kb6mW5BOjGY4Pu!&wEPz2fFc3<@4SH{--D5U(s9o_s-`%CH{XWhE2!( zlgj742mBAO?>c^~dy9YXeBM*yzt)X^Dxdcr@P8o*|N7qI-#ef8l=$E6#y^$Mdk^?8 zOTxdgxA^zY=RGC(}ICV`Mm#~dXs(L^MLF4WT)_Xf552C3Z;VgBCwKu-unQn2w7A<%GF2vcXtcx zSzuN0U9w-~UgF_6@EVigJ&m8vyhT}|E$ES{+PWH;)hS^94VcjP=kj@H54+<`!7ko+ zN8gI1y1T2hAM;u=eVc*n&^MX{XQh0OT2r^-KnnV`f4ul#24N9y!Qn2abPy4fcX^{%v3(_J;D4gFk4chsh zFe_5PJUFPczf<|V_XM*DnAIs@wz^=Z@_FwGW+pJ}Q^4Hjf|<(ay(gF-J)PR;{TW~u z*}UG;i?O{2cr7V#T)iW0=!f{?{~Opn9Aq9Czxx2 znabz=zg;j>`Mmc8^LxNd!f?fgmPC;MdR`;GlA zUu7q5k!2t6%l!$N#HGn1K20{U*mH=*p3B_{eYiWpx{piyjPhGyUvX;w-NfhQZn-y* zD-L@Hh4S-_xh?WF^yQ6OY#1l*nO$8{oSxB8;K_fz1^aHg2j8}njgv+_Z(Lr9U1uhH z!lj#yxrJHU2dktzu87G}|+GI{UO6fuTFF++|1EIIdx@^-sca zE#InL8;rSCJZqBc1gCNvrx@jR?m_jfV!!4#(mMB`dQ_)bH#jT=wg>+{?Y#`5KUKdU zd04&`qWR(jiD~9LPcT5tEAC{tn!dY=KD?5?oW}hQS8%^WU-N#4!|eSkj@w4!2%CNf z*wG6s&JFEC-n!`>=10K>4*Qk?Vz`7xfXj`%H!^CcPN#15zhc7~(>XIr{&NGoOUF}Y zH@}_zclmuUV{Z%JlBo*?zja7x5oagMt1`_pg7anC>EQCP8<&-1Ok5^)gUdu4moKEi zWo0+G%;b0WjC8f{dUyN$V?wK0 zvj%t5zW#Rm`le`KbvNzfTu!&N797V{D_Y4upf5H)3*1iTuaLjf_|x82bQ3Xy6>E+A zDgQw|&l(24r$*MToF5R+tBl(J4tctJ!u$q!QT)?x^%!I2AL)0!moG#saeuZ^9vI_w zrpJNtSKjGtj>mZiZGQ%hbk;}yWzPF*d*8AOo^0Y9?RRGLOm(*60B2~Nn4?z_<6C~H z7g2VleCKKxPRRM2H*B;@Kg@~*O<1Y-FNLGK-bd|v5BKlcFDCJvfBOgc^hN8u#KiJP zN(XvkZN%O77ZQVewTaC(MoD#MY<$fiV{Yp`#j_5akZ;(w`E~fgOgw3$&Rppm{bv3cya6BcS-#8${9esxG0$+_kk~xl zALj4%zQ*>YJny2+V(KkjXw0o(F4}V>apIIYvq~nX_iqR?x6dpv2CLs@rWu3R0Q+6$ zpn9J%#@olZeAk^u6S2peHmoYw$^_%Zuqe z$~^Ku@C}bN&ii9YMgQ2iUjuKY&%1qRohP&lTCSPr+wOe(Ul|7Dw{~i5n9=k--;iy7 zVi9i`d3Lzo#~QGhHQ;NWxfQv_wBJG7dw(=2w1jo3VOA&Z>YJ5oJlj`4=i9z>7<=CM zYMV4?EUffh6&t4huX|xaBl$*l?fKD*@sEer^N{=2*IgT1fltxOI@$yreIJHT>b*m@ zg(+X4`!1kqTV^m`z#X;+M`nZ#Vq>NQQ!z91(>$@&v};YBcl+Z$-}WEP^lksA;4sgh zHNaTfMojb~_Tl}f8)5EiiI;ddyRZ8*fLX-48!g?UF+2X5%WezT;9IbeHB0M9YiTh4 zE_gWab=C@gnVQGnGtl@0#z5o#S4)c0V&g^Q#&;4t-zbT`lQ7%-555(@t$HUh?K+>4 zRfYfEZTRN>iTC^Mb2YWxjdCl#dABJKpNZ;}@u}svXvL>a_FH@&Sn{n{SvNJdh2O#> z`axn`xp;>@Y=jT50N53H<0_# z@(no;FV~v7650o-|3heAeM+z-f39clO4j`R#jM}Nv#$RrG4@VqQ2)7LiT|U-7?ocL zoHO{Qo-rZV?Z;3@L8>|)<7^l5lIplMMID(*bvSg%g!iVq+W8Reyq+{?08T3E{9m=3x`N0w= zZz8@Qjx4nsAI@}O<^!`Bm<7O`#JgY7S3CI@`SWFCWp*f#ZdiAIY|akl6RW)$*(tLm z*d+h^hv?g#$1ECS1f@J;CnMP*pDxY(=V@ri{c9sE3l-o${2%B-W(73 zRG&#d@q0Rat(bQ@yW!C0Txc_tbS5-$-sLF2zr|BelYf#c{VM4}q=l34kp7jKT|YFP zcUO?7{#M(51uhzI)vc^+jIV6^#-L0AJjA@-^s6*uX|vB5M~u~`()(zS*50IZ*eH`#pILxqX6xJlfpK-D?Bk-8Sa+R4yAE) zB%TiJn0NR#hX*BVR9{aUzRWo##$wFoLCNKkdlb`BGLFuPrXQ&+k*Y6^ z=>fGysJ3s-+C_u5JXy<~MT@wzXb$CB6Q=2obn2cay%PNlpEc_#`Aq4>xy?n{r6CDf>-}{Qw+Whc%yX%6sWIBz2yHH9GmR6 zx6t+joD(t2Lu17xNJWEt1lOC@pfM?VUFDmh!v@~zJ?HG1duv}=58PSUWF*Ib2AULt z=MvJDp7c4Z_{}&Bx$_IaG5zk~gV9)GtoqhmmuLF6zw7rdRXz1;@2S?f5uI5NtvMsW zxee+v`;IxpLz?rX=GwQagx`a#wV3vYT9J*P0-jsu{(_tClDSQ~=f=bzrz$o$d{79# zXf09Oq!*6i8`&o6Ioq^qnv{ElkXzxOl4!e7(^BX4)CuQD%)b=6>-`1?My+BQ4@AiK#)GfX$3T}w;3%33|1#1`|D9Oo;QOde?`-I;^;I-C*K26ooAvr$ z>NVGEzTba3GPl|P-1($=lr{XDq_uWG_948CO{meAv(e-M^vGQDs?lfDS#vZl4~|R^ zA3WXCA8#j5ypDY?Qi=}wCT;&FbLwj5;59z)_P0e3?w@^&SQ7u_?;U@qF4@8v>zqDD zd|V1$(!`7T{RZGa?YkzH$@%N`b=PnnEz^`qJj@aDF?V8bOrxA)Wo$xT2{J!Dj6V2D zV{eoJ%hU&{_i1$0^GRb<3H5aDNjAF)l#_4DPOU39jSGo>FFcu8b}n?4PQP2U07vQO zI$M#+du+MvO$-UmNU*1E+9b0hf-{^u=LPe0H_WQBCd{Y0fq8uoFa@Wd4fCWFFdyp% zWb9X16f9wIK;Anq9ZC~PsdDeL*p4o1gEJ{e_*dY~SX;y$iPzGn z5BZt{oVA>LFY|^;|Fhsx@>kR6myc--2IY!#C@G51Nwy#1pRh zhP1<@SM>m2a0)m>Em}%fkM7`3z`n6@LDCal@9O)+#)&41!KHGd`Tr1a>_WR-InOfw z^j#f)iurXJf3^IHw=UuDZvH0oH=e%={+#+6vHxX}KApe${LSOY}_@x*B;IoyR3;ncNjkHHO8LBJN2oFFZ8Ga-|I=MyaS`YUu@jPq=lFH zPVGnj(7O1)^cT2{@7#CDj{Kf?+ILW&s859d`TUu6`8=TusmsL0Z>_P4Rc7Vo zL>hr1J;=eKh;~SyxyXJenwn*yaRYp?mI13WtL&T0hqFVe}%MUqNzV%uMk`G zEkD;@byj43A7troVjsE1Gq;GbUBLL;O6=I;?+*?w!Cp0bR&~eTfcBLQ^7Tx$Z==0y z-FKur9d&Q0v(H?4jb%HUPka)cpA)Y2$osMx=p1VaxS4yA$oqY+!M?heuv?D-_Wd^AL0~89wD+IQesK=_ z#<}bt=dt%cBz$CI-;nmztaugdS#alyV!s_g_HX6yG-PDin3k~yEQL-j(oNu>arBpT zyKTUhok{PR-^O!)%7f-U5PSM9vu`tX;WGB`qa!Un?sJrHtwUxYy^HxDU3zKtkFEG* ztJNp{o6m1UmP0O%8{b+uA(8Ng6YQm_f6Tam@VjgSYk}hjhn>JuUo`_Kx`X{s_+I6r zA0@^ob{K&~9sAs7nXJg|d}EgJ#>Q=z4g~&>>K)}98Iw8#*@7>svyasx-D{TB2IGC{ z^A4X+#w>^|rB zO0PFm&hyBf*TO5;z%y6FJ6GXraAg=?GJOq1zbTY4@nCP~HQFybg4Ptx-I~)hf12~2 z)i>kx%@_DaeK)|BSD}6-Pv4v6)hEJ{zCMTY&b%(391c&a&$kepPq^1Z>*TwCoxAa} zIqUl{w%BU=RqM7B56ZH|>JBLDY;aDJEjF7vrLRc8yanDHOxlSnQGZ%6T#cTE&BN4X zR}gPv1v;%YXLP+!I91FZ2RHvT@jY=3;rsBS>o?XDr?C`!n=vGKM*(xCez&2|BkPVW zg)Yi3X0Bb_kG+y~;y~&CxEfEmj($tj7~yL0*@V4P^Q`8eH+>o#+2&rXm+xL}XYX^h zH6Lk>RZPhG&uqpf=x;ahS*f55HpHeyCvmS9FdcaEvFV)GvLj`h?}7ChVC4!G^d<04*;wBf*jujOSmg2dZ`^Y7##CkHH>18j zv?nzzt!3h2?Z4E13{N9XhMX?x7+YIe-x7E4->|LKXYaHj+yTG570zQ3X!p9CP_!?Ih{G3R=Q8G@l z%Ryg8q{1i}e~3DjKMR`zdzYEohY1kVtcW(G(}rT&Fp4-6llNAZRML)&!WWklXVu&n zD4-tsE$DmZ_-TjWZ^3rM8Sl$(DB=5|zT9o5>>}?}}Q-Mw2u{q|#f3i2;Vap%t6MZ*bHYv(WUaj_Ka}VSY)1E(rw(Gs-KiTyUdovoU z`Fp}Uq+!lN;=e31LhnL@sy;PqXAJDL?XPv&_E!RNCk07(%o@tc{hhRB<>i5_!>;poOBcO$714$7856@m>7kliI1b$X|oqD zS>A5PDJdmB&Q-)8JVac99g2&lb-r(o8GCRW{H%EzdGHlKI%1gEgT$44v=$$o0{kPE z0Dlzg`U+wqtYGYp!bUmA%N%I*Z!ds9joN=q7*JaoJ7ZyftYF~}Ct$RP> zWBrjkJLl@}!{-jXAaN4hc@CZT{4%j@-A_`;l#eSeUsk*JFtlC-q0P6b%UTaQWlH%C zDejEyokg@wxEB*kWs+j4V3)m(Z#37*$1maYY(I3hhqc#>oaVzvQ@%bv?pF1hab2*0Or=T2KE}Oa1{b&70Mj0P*Evz8_YAt=Q*juYylRhsFO0 z%GWe=32`+ve_X+SR``ZsU^MR{;8(-DukfzMJG}k2bAGVAojv>*Gzx>i@&fA~Ufu>y zqXw48^!;^|weD3Nihhw7SplxihB2lUeJT^4Ug67ZNB^FtF|XfSG-m)y{RuCzKNO5V zqkHV3sd$vtiYx%AbTI4~CFto_`8FSBNAEM2s*&dr_ z*P8Sh(mvyy?=LU!XROyAu|tm_d5vlx-+G|cm%+6F`+pD_znb;Ai1MPP^2d;`Iau`g z02s*X=3R>Ef4BO`sqY$K=0m&eb01p%Fn!^!?<$l2ijSNFZL+!l(xQLWk;HiUJk>B4 z`tV7TZmi#H*mJh_f3nQ-=Tg3k{;IY6OZALkeKGO*ZZK9)Oi$_HrM&kd%Ri&IDA1gs zC-FnbI+eoT?gPagl`Z2iz7ri~_rp$PbFEG13Sw%B&dxWYbqqX3?`o6Y_%#7nKHCnx zXWMmO4ZH+=bdb6&dS`ajl}zv5j7jmkLvQULJM`A?WO~0rd57M^z(w_pK(_dR`M27p zw{!q=ti%)ecU$z%f!-#sbkG{V1p55Qon7OtzW>#7bd9pGV!>+u-4FfM?o6K%e~kID z5ILx;F5dke!Kv=}J=yCu?+Vr(yhCY=d#=tQuRB}Dt&GK7=pxHoa@AAlFM&&^`ZJ? zhc~yqoHKFrLtV3Xc?g0v_@Ghw;ce#>ex>Zu;YR@yN@->J5)9ByQVVk9YD&>}`uj zhKon)B;WerjWl=zxo@J)8^@@#L>-+4{r^7Z((p0rEsC3dh_y(%i=Xw{(OrH3PHx@B ziJSg9`pdz;dcvA7B?lK%u5kvoHB)clP6g&(=`9)PEs;g}v6YK{IDy!d9ePWKskdZA z@WJWOTW%RaOgLL_k#7|+&_z1qe?ptkE%dEvJLo8Dm^zN-yV1Rl^HsZ#G=I-+$5^|6#&|O(ZK)g)OnW*o*t=kK;9d zTY=S^@f#vG*ugcO^ohjL-wvaviHD_ouIlUEn28RjHDV_^ z?EAzmvc^|+X#r4I{-oJi~=&(Z>Pn(qPIEXQ7e z1Q5HXCBNz_w|N8^!0;wopiL$K6xUU_+RhG|N1I(e<_XopS(-+jm-8&?vQw& zdh+c(wf9Rsfe&^YA?dBMXYHqrvXhC|4&Z-1+}vXu9;pQ14@4t;v_CZSR7PbpJL-CW zWLmhDJ%v`}Z%c0-8u=^V)yz4My|=u`=WHBWn2+Nw9OCS~ykBR8(!rq!9EO>74vUoY zt#GZT&iEQ{xRt#fODE1lj~f#C4f&OG0>I9V6>qS2~{< z#q|Hbkh9Ev4Cdcf@EFQdw&GUs$>n!}QSh26C$R^@UYm(Wqm4(k&AU^8qrH)Ko~o}1 z8^UH@+7Q@?n)BcF5>o)tcS6&(6|JkMksqRzZk;7jFS%-#`eY-8QYv4=>{ zE6)xou4xUniYmotG5n#`uJ|FZ0BalepmzGH=%)LpR{!+Lo1^`Wrc3U>f9gBKjN22R zHv*G5hjEbh)>AH;FanW#@0&WCa&04xrahzaMSR)_%%)73{I(iTVC^OMPrdYCYj56z zul~DJjHbzhYNzgb)VTdV%Csdsf#08T@6`Lh_S2i+ooO`vYmU*hb^t!>e>HAjOa9k^ z@vjy`H}#8yR^I$>9c3DfrkBWjca70B5dY106W+i}Pu~B^OJ93(-+gDkwC~-Q z-re`^)tp0k&Kr1F<(@N|E(OlJHNL=^FWo!!Uk`b1PmJ~j24UxHPxu0(*WNd^KluG? zx6#zzZZy5~SMq{Q}=-P)_YXhm1bFAm$HwVWqn7Leb_9U)}`zNX4$l($}Ta>_UTgg zTV~llN0qHH%l7S3_71ab-=oUTH_P_xQucq$vi*)KJIgHV?^5=^co(f{2~=ZuiY8tN zH0oLNLLh3Ue;X+3r}S?F)p{nL4>X$T=L1nQ{hL6MU-`cYRO^{|F3@PEp9@6I^p*g= zIOMbMtY>1ge2hpl51DD^uMDNxzvtPidw7k45NFHZE9AVHGq?Qeh-YbI-Sx3ayf0=> zDuxGT^DJcTv3yB8?fIsh+pjFXhHuRF#F_67W8YSqc2z6=Hv9i(KJ8QbjbMD4ng81W zKJnvPUkJt@GV^J#($5Ct-!=1}4^%7tlVH5T%%}ZIFAK)MW9I)R5Is!#JHdFJnGZdb zzBL%HG4r1bR4e_}VEj%qANnYLbufObnZG3vJw*EAV0@mL551HgAB_Kxna_N#^y$I) z95WyKDV-aPf7Q%q-8e|PUobwC^pmVN-{PsYp%&Wd44+~|d=8&cv(M#ApguQ!3g~k) z4Ndx}Pv~U7(dg@2S26XU{A@+r_bIe{X#H)nwby2Nt_$g*S_$$2(`=6OlpNR*)6O8AW`LsvrTZ8eF%zXMx>8}$1+svnZN?*+# zA!a^(CLXvr81HN5(_W>=6NlW)r_Yo=JsAIpc19DlU+LUn{C%b2eUoSUvHv4FK#!?B z6VDmj4_xL!He??NSwVf6WngzV*ek%USIgYD@HEcPXpKv&xS@7o5>O__wki-Z z2+r^Qd6wkKm_(@l@%v+5&pgk)_uO;OJ@?#m&pr3t@@bpMtNPGkd)P-cwzMxJnXPor z5`1@*O*|zQ1O}_lqaP;K=-v`{PN0^~7Xq z`aAdlTQ+Xay`aaXvS&91JFpSD8+x{y^=iK$HS`R5S3eM|{ul5Z-RW5yALU=ef0h60 zOV9E@)6TsM*9G@_xzCY$eYY1zJ;;$T{%yt{PrwW8*U8_=nmk?~60EdI+&x8FS&?u` zGxzhFyE%q zwrnG-y^1r*T9-KMg^qPb!LB)$KHcm(zj;3RY46R4KHZUru8wWgTBFGaFC+8;>9Kj^ zCx+pn7Rt9m-&mffKy(>x*Hwm%Me9GOuAMXG?`PFj@ACJX1T5hcVZVK6oq@eYb?Lqj zYk%j@q;H-#ZldTCp?rPi$j+6V2`KWXvMw|Nb$OnRTd^Tkau&kur!eO#CNbv3|L{;Q z<--RyPSzRINFHl7>@TrwPXYYTz2SugWksF>#m_K(j#vw(lRuK(R8S?od!03o6g%TU zzW25c=vo8dyEaf|DbtM3t$T37&?a|<)|%`A@N{@o^_luT^=N%z)?@4U)1hS;Jht-` z9@6i9j(!j92(Y`}l`egsy0u_gq4ruxK!f2JouED*4+z%+9 zwB)kLvthiEZIt6Guqbnz(+8XJakpWn=mCe-tC*ecMm?{LX1=7kI58PwD{%KEoqA7bC08 zZ`g59z<>B&{HJQY7j_!cjO80rjG^xiF-};Atj}TX&RvmL&dM`ptRQ_c1=vZvRXnauP({tGq7mwxS8fzqvvf%FvS=;OYruOSHC}YW* zj8Glkn_Iqx;5&%hva54&|A+v2q2 z_j8Qp=2%Lb6cF#64c}uEXsBQCihOKV2^0gAz ziuWw9Z|Ow*a}E5#zNfsT`|P~Qo~)%o&h(xz)VS^w^rIB+anwF`%c!ED13%Y+k1UO_ zr*6XMf6J}KK{xD78+M8EjZ%EGp0GpEzYV`H&S*woh5j!?=QjC5@vi&F)Yc04vx)Ct zK|}Fp7=Mqa;SteK^qz(9pKMj9QP+C|@QX#xpi`ygAQwNUOlfjAE!WMPI8ptu0{W|8 z&P=p)FXjE1yoQ}uV_@C90yD4nqBXZ`yh)!CFLhGKBKCxl|1(nK?!Y<|IMQco!SUJ3 z%+6DJuP0s(K0<5i-?+}aM`s@LpS2o3Lb^wfcu1TXUV{vge^w4U(lyY%w8#h?y-9Op zYG@)bWUJgvy2h*IKoaME)b70tFG6-+hzz{|S^8sS>iO8-&I=-AP5o8vEJ5bxfH!*G zn=ZZXF5@6?;C5i2$4}=nzLt*OcQa`};&)IV={JyeGC$3^y_LV3v>)=*ydYnC^`UUO z|EXBDe1M#9PM<`G$skO8IR%jIfI4% zMc}UG?^Y9M68@oo8#G7h{GR5F6M>_8+V;k(FQ#r{d0g3Yp!ECn(A%U*k8|osrH*Hu zI)=+$g58yR{z5$wbe-he3p-OT@fVzq?2z1&pH?n9$>Jw(ec(^zSpyDj`+ue8kz51YU@5yh^^(MbI$;17&%nwXYBg!awKlP&B{=AEKzs4S&@JnaBS~{ui{|`BHUYtQO>-^q1MJSGD&ugmKbn7;9hJhJIzHC4?GP zmj8PfHq}e_dxUrCpw9b~fP?>92{p@)co8i}RC`{p~6I#)7XZp&p!3u8%oP76FBnQ`9^WZX>FX|j2dE}NIR&!p$R zw&x$+?eVzr?592LyIk%5mhH)PwdYd1J<_Mt9_eRlPZdw;5&f=_^Ze1t;IDF~&5M1q z0=-kdUUpDyVCt_w!p~vy9&hLMX-!Ms@7Z~q_gHzy@V;C2ej8&Gj?|E(P}T=+DE+zcv>@xc8}YzBL^EZ)LzHVvy1WB$y_1W z5$rr!<{oWUXg#ncJMvkN?&{j39S&^Slrlq81#kX@i5iP7ly9vgwpKB5Jhm8t;hcSQ zXk4%T0%#xM+0@DyBmeTpk!k23O*(Ig|L7FXebf?rSa{xS|gPCYG3@{%qtGA$btzG?7TW-=EEjf#(M{TNWyg% zvgBR*Uc7l7b-MG(#?y#A|0UnG&WvdtP5v6`U{eZB+f5sM$$OXWW&`sFF)-fJ`L0a| z7~>>2tCYXS&VTIJ^J|_p=OJ)7UpPS5GVLG0v(tI6r|$Q8O4b_(7;7Tz8>`MX`ov@U zlBR|ZgBCl;{|@UY&LpJ0PX1c?tRo}My!4^+jv!wtb6X^4<8xw9d}MnP{?a|3x9coT z0S+VW{*7t*jm4+jXUUzEZ((G-mJc=VVx-X z5o;9zL$p@~m0C|e?19PJ*UcVPJR4*mx3 zilat58Z;*r4J@DbEP9;i+Ki8?uhh7{nYq??(v*Oa=wHozyV^)@oNV~YCyTZ_I%8`$ zQNEG6%@}M1n77`{J$O=J1MhP#Hv)@u*q`q3EZ6ySjfVlu@mf1bXY=r1G-2)XgtIm> z;js2O8N3eUCp(t%c06d=D39WO3_sx~+3X`$f%x=q)Nwf9wf;2IrZBHD-yP<>lUF=0 zKFSvzNw3%Z0Bs_ALX&*tvetZAz!J;`p2}YjtT$LB?X#0~&2TlZ8o8qMNUdFq0 zQ{`8iCnE#Q`XqDdlRA~7-ZH(57xk|C^-iBW$h+{^wbRq@z1Xqhl#Sbwzk9IP?XvCb zlD{TB9sdaIVmgnh^UC=bHx`V<22mn9px-?|z&OE2j3&i#(ijdGBj5ObDD^A8K@~b& z6*^)SBqOSrth?|{L4K#c!nuw~tdCwLe+_3ZbcSOI|FvG3_~e5R$Ud0v z&01=n15L;FMvTUM>WjrJ{e<}-uydxTK)e92edhbX2&j)`i+B8JE&wOl3wLr>7=DOe zO})+FrTRQi-upm?k+oF5I{zS_@Lh*2@I1L3`-J>xhKJtc`(|tq(viYR<&z}?6c2fi z*$(!M=dhCnX8=mN~H;iwT`j`IeH`Y)Dx}>cb7`Tw~7fvaRp3D0M{4bbL7|kd& z0;3=E2Y2o=qHWM)G`8%NxuZKZze@hYoJG#Osv@*s`0~b0>OouD@X}=Q9-NMB~hp&KcP{ z*6#cgkR|u)TzJf)=_ijf_W`$%vm&#Bt2yhJf)}&tg{=Ii3w|4Qnlz^lc;y6*1;g++ zJOxc#G_IiEOumWcTJyDlZy0{Of^VsO%lFcsqKjfrg6}85J9Tb8cIJ%G<>blDQ+`iC z|0Sb;&r|KM`XV+yfIRz``P~zEpFKR;Po&#uogjRh)xY5TBzYvCoHTRpv~3v;r1@B9 zX`fJggbvQf^L;J9x2Qw$%LP+#bPnhR?D%?ja65_b^8eL0;aJJLY|UM3T=4%(G*<28 zar54-{?fIHnF-)c2wk= z>XLl3;92J!PXU&R6Kn6OHazt+ddb!Ql_^rJo9|m`uiQn@rxfu8&c8x)371vZVu~Cj-8?jze3h7RoYX-o?_bU;Ma-J$|6QSJGm#FS0X}Qlr_w&lc>bTuf7!rI zo#${%{z-mk4=|4FAnwHu@A3!IwVzYYhUiy)lH{J9HQC`75kJ#K*c0SSEK-ZF< zcyEF+L3>V4S|R%i@%4EQHq5(M9^Z~WxmIy*koo7H~)*!v%-24DBNa-HXt9;9;&vTr2A4~?#Kwo}*xaL(E4zje;m z(j%3BFSIDN&ov(bE~;m-_9&2D_{XiSMy{$awU4cH%LaEB%%zOx42_j!Qzx?4kjcZ1 zsB@=N_8xCA+wUpJK8$a~e9G{lo3bu1)A;h}%s;+Y$VB#gqAh$YrM_Q7)A%$0s@nq} zNoR_;HSfOcCDWGQ-+4g%dhc40kP%pfKaS=c;@oQwF>0_Lo?y2FJ$jmORIJ+^(v!he zHiXf9PcAhI=2CVvYnhxUi}xCho;_NZNpE`vyywy%`G@!$I@n`X%$#|QfA)c{^h3i} zXcPVdYd6_6+(kdB-Yn{syv^4-d#wf2O`|GsPHrkP{ZByO$jEQ?j`NLQ5k_o z>i$0TdS?`SRmj6;?D6&BTR+NZSi|0j>e3#JzBThrYedP;2<6Ja*^D6o-q}NJoWb2M zyB0X(3$(Vw#<_!j7tWu4;ljD08|O@D)d;Qn!nuk1+&Fvtz`2@s?V?@EyF>OC@YUGx zq5DVSZEQ?yIu)BhI1e?fJL$o_5uAOj_k?p6bGl^mPHTrF zKTWcdcJzh6VD?Ax{AtJk zivMM9{6E+~{42gK{>Rz)(~kcY{|RpV|G9topYv_;A7|rFJN{Svlic{X>>vKQaro!& z@AxgS@uwYq;V+o|jo(e5x#Z7B`-lJM%X^OB{lMAtbmPBs|L{L94*&Z7#s5qjf7+q7iqEA(JNl&idrV-sg{Mp&Aj|!l{M^V=GhJ2x6~0ov{Lro)X=rmn>~^BkjpOn6mYfg zu^l+g+(qSvQ>wE=r5Sf_)o0JjCR zd&f;}odnFXUSM7WOq0Ihp7i}S-}|C(NnG8%(L;5v=!L!)0@tB$Bo2;A-^SkCa7Qon zJq1_}ee2`;ygyhA`=IYw7rb8ks}I~R>w~u0E_m_%)gOM-fmhW_Ukw7D_(D8h^_$>{ew9gn9aSwYyoDzjb}6G>%PYKeb6x-c#&S< z{nd@*s{O;!0H#l}D{d@3=fbgSKXCkX8NSKAz`l92$ z_V;>Vmh}SjS1y?K`-$gjU{>`4^QSJD`H$>h|J(=6`d(n34a_bc+K;h)6Y!dQfj7ww z54+{Q^5ido7wH9Fz6)MeZ}UVSJbp3oeDZ6JJ=Nb0%H2Ya%KTo!wQ|)Jw{q);U-C-g)?Ae-6-OZtQ_9o5ec>8&R{XE`& ze&2q|Z%j5(`7h}lhW6~`zoh+o?T5=}MfOAKKR$lipO^2CY`wBY%6@9uqpkYfI>ZX- z;K*W~eZTXs)*e^%Q_HWQuX4+ra-|vOnfbYPxpvB_ZE4uPO}Ive>CbbHoxX+iSY_hI zw!C3K>o`9Z`m>k2FdaY6#DLFVdZ^-cYM)#Cxqq$aZkxiN9$H?c_=DI=*7n`HC>o50HPV z6|L0PV~ABPJ>)^rXM^^-(;0UHNu= zJK5{oyYM{9oJ&13h`nRgp%_`)=Ri+>*F(=zXvse66S-Fn2qZw4V_rv20>^_d&xf3c z(p^7li||^`_Xy?8JE^=z;1+PJz^8N^^B(6vO}(_}x4I*!d|Dy)Z{4p|M2rgSeyvoK zCOPc)Y0t%dhIjz**K*H|c=c*x_={JSN9`X*nt0B9r|xawEc%{H-FvS1BV*LVSWTdf zJ!9m>Di7Sa8ycyckw#n_@@uc63Y)jiS*d-k>Be&QTHo4vmM2=zodLd6xyuDRQpq*= z|KhK>1l@adMXGg|3wIAY_q@Adgvs|NaP%z$xUX{OfzEPi&t#0pF!z;4vj;AIYlPO% zzasoILN9}l%06qpb3UIwWZ$$}du=-B7h8m1GWx&Z>Ktba`!e~13!lrz&XRkXF(bbT zf3!oI3T~a_F34o*Dc7JxGpv! zxQ;uY)-A~7|2Y0vZ}oc}U@NQ?T97B7T8*rUiLD*zUh9_;$>Z)_54r zx;%b7