From bb4a1943a6546caf4e571c792002f3d0e7168e8f Mon Sep 17 00:00:00 2001 From: Christoph Fabianek Date: Sun, 18 Feb 2024 14:30:10 +0100 Subject: [PATCH] remove libsodium dependency for oydid-js --- oydid-js/dist/basic.js | 24 +-- oydid-js/dist/oydid.d.ts | 59 +++++-- oydid-js/dist/oydid.js | 147 ++++++++++++++---- oydid-js/package-lock.json | 142 ++++++++++++++++- oydid-js/package.json | 7 +- oydid-js/src/basic.ts | 27 +--- oydid-js/src/oydid.ts | 50 +++--- repository/app/controllers/dids_controller.rb | 44 ++++++ repository/app/helpers/application_helper.rb | 2 +- repository/config/routes.rb | 4 + repository/docker/local-gem/oydid-0.5.5.gem | Bin 45568 -> 0 bytes repository/docker/local-gem/oydid-0.5.6.gem | Bin 0 -> 47616 bytes ruby-gem/lib/oydid/log.rb | 2 +- uniresolver-plugin/Gemfile | 10 +- uniresolver-plugin/config/application.rb | 2 +- uniresolver-plugin/docker/Dockerfile-local | 6 +- .../docker/local-gem/oydid-0.5.5.gem | Bin 45568 -> 0 bytes .../docker/local-gem/oydid-0.5.6.gem | Bin 0 -> 47616 bytes uniresolver-plugin/test/cmd.txt | 2 - 19 files changed, 380 insertions(+), 148 deletions(-) delete mode 100644 repository/docker/local-gem/oydid-0.5.5.gem create mode 100644 repository/docker/local-gem/oydid-0.5.6.gem delete mode 100644 uniresolver-plugin/docker/local-gem/oydid-0.5.5.gem create mode 100644 uniresolver-plugin/docker/local-gem/oydid-0.5.6.gem diff --git a/oydid-js/dist/basic.js b/oydid-js/dist/basic.js index 29eb908..ea406f9 100644 --- a/oydid-js/dist/basic.js +++ b/oydid-js/dist/basic.js @@ -12,34 +12,14 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.multi_hash = exports.multi_encode = exports.DEFAULT_ENCODING = exports.DEFAULT_DIGEST = void 0; exports.DEFAULT_DIGEST = "sha2-256"; exports.DEFAULT_ENCODING = "base58btc"; -const libsodium_wrappers_1 = require("libsodium-wrappers"); const multi_encode = (message, options) => __awaiter(void 0, void 0, void 0, function* () { const o = Object.assign({ encode: exports.DEFAULT_ENCODING, digest: exports.DEFAULT_DIGEST, simulate: false }, options); const method = o.encode; - return "asdf"; + return "string"; }); exports.multi_encode = multi_encode; const multi_hash = (message, options) => __awaiter(void 0, void 0, void 0, function* () { const opt = Object.assign({ encode: exports.DEFAULT_ENCODING, digest: exports.DEFAULT_DIGEST, simulate: false }, options); - yield libsodium_wrappers_1.ready; // Wait for libsodium to be ready - // Convert the string to Uint8Array - const data = new TextEncoder().encode(message); - const method = opt.digest; - var digest = ""; - switch (method) { - case "sha2-256": - case "blake2b-64": - // Make sure the desired hash length is valid - if (libsodium_wrappers_1.crypto_generichash_BYTES_MAX < 64) { - throw new Error('Hash length is too large for BLAKE2b with this version of libsodium.'); - } - const digest = (0, libsodium_wrappers_1.crypto_generichash)(64, data); - break; - default: - throw new Error("unsupported digest: '" + method.toString() + "'"); - break; - } - const encoded = yield (0, exports.multi_encode)(digest, opt); - return encoded; + return "string"; }); exports.multi_hash = multi_hash; diff --git a/oydid-js/dist/oydid.d.ts b/oydid-js/dist/oydid.d.ts index e697b64..965a524 100644 --- a/oydid-js/dist/oydid.d.ts +++ b/oydid-js/dist/oydid.d.ts @@ -94,6 +94,13 @@ export interface RegistrarResponse { */ keys: didKey[]; } +/** + * create a new DID + * @param content payload in the new DID Document + * @param options optional parameters + * @returns DID and private keys + */ +export declare const create: (content?: any, options?: Partial) => Promise; /** * resolve DID to DID Document * @param did DID string (in format did:oyd:123) @@ -102,14 +109,50 @@ export interface RegistrarResponse { */ export declare const read: (did: string, options?: Partial) => Promise; /** - * create a new DID - * @param content payload in the new DID Document + * update DID Document for existing DID + * @param did DID string (in format did:oyd:123) + * @param content payload of the updated DID Document * @param options optional parameters * @returns DID and private keys */ -export declare const create: (content?: any, options?: Partial) => Promise; +export declare const update: (did: string, content: any, options?: Partial) => Promise; +/** + * deactivate DID + * @param did DID string (in format did:oyd:123) + * @param options optional parameters + * @returns DID + */ +export declare const deactivate: (did: string, options?: Partial) => Promise; +/** + * encrypt a message using libsodium + * @param payload to encrypt + * @param option parameters with public key for encryption + * @returns cipher and nonce of encrypted message + */ +export declare const encrypt: (payload: string, options: Partial) => Promise; +/** + * decrypt a libsodium encrypted message + * @param message cipher and nonce of encrypted message + * @param key private key to decrypt message + * @param options optional parameters + * @returns decrypted message + */ +export declare const decrypt: (message: CipherMessage, key: string, options?: Partial) => Promise; +/** + * sign a message + * @param payload to sign + * @param option parameters with private key for signing + * @returns signature of payload + */ +export declare const sign: (payload: string, options: Partial) => Promise; +/** + * verify signature for a message + * @param hexKey hexadecimal encoded object + * @param options optional parameters to specify preferred target encoding + * @returns base58btc Multiformat encoded object + */ +export declare const verify: (message: string, signature: string, options?: Partial) => Promise; /** - * * @param did DID string (in format did:oyd:123) * @param key private key necessary for signing during authorization process * @param regapi_url RegAPI URL (only protocol and host, e.g. http://host.com) @@ -123,11 +166,3 @@ export declare const didAuth: (did: string, key: string, regapi_url: string) => * @returns base58btc Multiformat encoded object */ export declare const hexToMulti: (hexKey: string, options?: Partial) => Promise; -/** - * decrypt a libsodium encrypted message - * @param message cipher and nonce of encrypted message - * @param key private key to decrypt message - * @param options optional parameters - * @returns decrypted message - */ -export declare const decrypt: (message: CipherMessage, key: string, options?: Partial) => Promise; diff --git a/oydid-js/dist/oydid.js b/oydid-js/dist/oydid.js index 6ddcdb0..67a8b74 100644 --- a/oydid-js/dist/oydid.js +++ b/oydid-js/dist/oydid.js @@ -12,13 +12,28 @@ var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); -exports.decrypt = exports.hexToMulti = exports.didAuth = exports.create = exports.read = exports.DEFAULT_ENCODING = exports.DEFAULT_DIGEST = void 0; +exports.hexToMulti = exports.didAuth = exports.verify = exports.sign = exports.decrypt = exports.encrypt = exports.deactivate = exports.update = exports.read = exports.create = exports.DEFAULT_ENCODING = exports.DEFAULT_DIGEST = void 0; +const did_jwt_1 = __importDefault(require("did-jwt")); const axios_1 = __importDefault(require("axios")); -const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo"); const base58_1 = require("multiformats/bases/base58"); -// import bs58 from 'bs58'; exports.DEFAULT_DIGEST = "sha2-256"; exports.DEFAULT_ENCODING = "base58btc"; +/** + * create a new DID + * @param content payload in the new DID Document + * @param options optional parameters + * @returns DID and private keys + */ +const create = (content, options) => __awaiter(void 0, void 0, void 0, function* () { + const url = "https://oydid-registrar.data-container.net/1.0/createIdentifier"; + const result = yield axios_1.default.post(url, {}); + return { + id: result.data.did, + docKey: result.data.keys[0].privateKeyHex, + revKey: result.data.keys[1].privateKeyHex + }; +}); +exports.create = create; /** * resolve DID to DID Document * @param did DID string (in format did:oyd:123) @@ -28,36 +43,118 @@ exports.DEFAULT_ENCODING = "base58btc"; const read = (did, options) => __awaiter(void 0, void 0, void 0, function* () { const o = Object.assign({ encode: exports.DEFAULT_ENCODING, digest: exports.DEFAULT_DIGEST, simulate: false }, options); if (!did) { - throw new Error("missing DID1"); + throw new Error("missing DID"); } return { doc: { "hello": "world" }, key: "asdf:qwer", log: "asdf" }; }); exports.read = read; /** - * create a new DID - * @param content payload in the new DID Document + * update DID Document for existing DID + * @param did DID string (in format did:oyd:123) + * @param content payload of the updated DID Document * @param options optional parameters * @returns DID and private keys */ -const create = (content, options) => __awaiter(void 0, void 0, void 0, function* () { - const url = "https://oydid-registrar.data-container.net/1.0/createIdentifier"; - const result = yield axios_1.default.post(url, {}); +const update = (did, content, options) => __awaiter(void 0, void 0, void 0, function* () { + const o = Object.assign({ encode: exports.DEFAULT_ENCODING, digest: exports.DEFAULT_DIGEST, simulate: false }, options); + if (!did) { + throw new Error("missing DID"); + } return { - id: result.data.did, - docKey: result.data.keys[0].privateKeyHex, - revKey: result.data.keys[1].privateKeyHex + id: did, + docKey: "", + revKey: "" }; }); -exports.create = create; +exports.update = update; +/** + * deactivate DID + * @param did DID string (in format did:oyd:123) + * @param options optional parameters + * @returns DID + */ +const deactivate = (did, options) => __awaiter(void 0, void 0, void 0, function* () { + const o = Object.assign({ encode: exports.DEFAULT_ENCODING, digest: exports.DEFAULT_DIGEST, simulate: false }, options); + if (!did) { + throw new Error("missing DID"); + } + return { + id: did, + docKey: "", + revKey: "" + }; +}); +exports.deactivate = deactivate; +/** + * encrypt a message using libsodium + * @param payload to encrypt + * @param option parameters with public key for encryption + * @returns cipher and nonce of encrypted message + */ +const encrypt = (payload, options) => __awaiter(void 0, void 0, void 0, function* () { + if (!payload) { + throw new Error("missing payload"); + } + const url = "https://oydid.ownyourdata.eu/helper/encrypt"; + const body = { message: payload, key: "" }; + const result = yield axios_1.default.post(url, body); + return { + cipher: result.data.cipher, + nonce: result.data.nonce + }; +}); +exports.encrypt = encrypt; +/** + * decrypt a libsodium encrypted message + * @param message cipher and nonce of encrypted message + * @param key private key to decrypt message + * @param options optional parameters + * @returns decrypted message + */ +const decrypt = (message, key, options) => __awaiter(void 0, void 0, void 0, function* () { + const url = "https://oydid.ownyourdata.eu/helper/decrypt"; + const body = { message: message, key: key }; + const result = yield axios_1.default.post(url, body); + return JSON.stringify(result.data, null, 0); +}); +exports.decrypt = decrypt; +/** + * sign a message + * @param payload to sign + * @param option parameters with private key for signing + * @returns signature of payload + */ +const sign = (payload, options) => __awaiter(void 0, void 0, void 0, function* () { + if (!payload) { + throw new Error("missing payload"); + } + return "string"; +}); +exports.sign = sign; +/** + * verify signature for a message + * @param hexKey hexadecimal encoded object + * @param options optional parameters to specify preferred target encoding + * @returns base58btc Multiformat encoded object + */ +const verify = (message, signature, options) => __awaiter(void 0, void 0, void 0, function* () { + if (!message) { + throw new Error("missing message"); + } + if (!signature) { + throw new Error("missing signature"); + } + return true; +}); +exports.verify = verify; /** - * * @param did DID string (in format did:oyd:123) * @param key private key necessary for signing during authorization process * @param regapi_url RegAPI URL (only protocol and host, e.g. http://host.com) * @returns OAuth 2.0 Bearer Token */ const didAuth = (did, key, regapi_url) => __awaiter(void 0, void 0, void 0, function* () { - const url = regapi_url + "/did_auth"; + const url = regapi_url + (regapi_url.endsWith('/') ? "" : "/") + "did_auth"; const body = { did: did, key: key }; const result = yield axios_1.default.post(url, body); return result.data.access_token; @@ -70,26 +167,8 @@ exports.didAuth = didAuth; * @returns base58btc Multiformat encoded object */ const hexToMulti = (hexKey, options) => __awaiter(void 0, void 0, void 0, function* () { - yield libsodium_wrappers_sumo_1.ready; - const keyBytes = (0, libsodium_wrappers_sumo_1.from_hex)(hexKey); + const keyBytes = did_jwt_1.default.hexToBytes(hexKey); const multiformatKey = base58_1.base58btc.encode(keyBytes); return multiformatKey; }); exports.hexToMulti = hexToMulti; -/** - * decrypt a libsodium encrypted message - * @param message cipher and nonce of encrypted message - * @param key private key to decrypt message - * @param options optional parameters - * @returns decrypted message - */ -const decrypt = (message, key, options) => __awaiter(void 0, void 0, void 0, function* () { - yield libsodium_wrappers_sumo_1.ready; - const privateKeyBytes = base58_1.base58btc.decode(key); - const privateKey = privateKeyBytes.slice(privateKeyBytes.length - 32); - const authHash = (0, libsodium_wrappers_sumo_1.crypto_hash_sha256)((0, libsodium_wrappers_sumo_1.from_string)('auth')); - const authKey = (0, libsodium_wrappers_sumo_1.crypto_scalarmult_base)(authHash); - const decryptedMessageBytes = (0, libsodium_wrappers_sumo_1.crypto_box_open_easy)((0, libsodium_wrappers_sumo_1.from_hex)(message.value), (0, libsodium_wrappers_sumo_1.from_hex)(message.nonce), authKey, privateKey); - return (0, libsodium_wrappers_sumo_1.to_string)(decryptedMessageBytes); -}); -exports.decrypt = decrypt; diff --git a/oydid-js/package-lock.json b/oydid-js/package-lock.json index 6cf8cba..9e7bad7 100644 --- a/oydid-js/package-lock.json +++ b/oydid-js/package-lock.json @@ -1,15 +1,16 @@ { "name": "oydid", - "version": "0.0.6", + "version": "0.0.8", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "oydid", - "version": "0.0.6", + "version": "0.0.8", "license": "MIT", "dependencies": { "axios": "^1.5.0", + "did-jwt": "^8.0.0", "libsodium-wrappers-sumo": "^0.7.13", "multiformats": "^9.9.0" }, @@ -24,8 +25,45 @@ "node_modules/@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==", - "dev": true + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "node_modules/@noble/ciphers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz", + "integrity": "sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==", + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "dependencies": { + "@noble/hashes": "1.3.3" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==", + "engines": { + "node": ">= 16" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, + "node_modules/@scure/base": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", + "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==", + "funding": { + "url": "https://paulmillr.com/funding/" + } }, "node_modules/@types/libsodium-wrappers": { "version": "0.7.11", @@ -57,6 +95,11 @@ "proxy-from-env": "^1.1.0" } }, + "node_modules/canonicalize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", + "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==" + }, "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -76,6 +119,27 @@ "node": ">=0.4.0" } }, + "node_modules/did-jwt": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-8.0.0.tgz", + "integrity": "sha512-lJSVC9Ckxl+U+jDPbdATDtXV7CwE0XGT0Js6KNfjRlaj0LTXvDF90IAyayFwLUzO6punA/q3ZHVfTZaYDhHrLw==", + "dependencies": { + "@noble/ciphers": "^0.4.0", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/base": "^1.1.3", + "canonicalize": "^2.0.0", + "did-resolver": "^4.1.0", + "multibase": "^4.0.6", + "multiformats": "^9.6.2", + "uint8arrays": "3.1.1" + } + }, + "node_modules/did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" + }, "node_modules/follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -160,7 +224,6 @@ "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", "deprecated": "This module has been superseded by the multiformats module", - "dev": true, "dependencies": { "@multiformats/base-x": "^4.0.1" }, @@ -191,14 +254,44 @@ "engines": { "node": ">=14.17" } + }, + "node_modules/uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "dependencies": { + "multiformats": "^9.4.2" + } } }, "dependencies": { "@multiformats/base-x": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@multiformats/base-x/-/base-x-4.0.1.tgz", - "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==", - "dev": true + "integrity": "sha512-eMk0b9ReBbV23xXU693TAIrLyeO5iTgBZGSJfpqriG8UkYvr/hC9u9pyMlAakDNHWmbhMZCDs6KQO0jzKD8OTw==" + }, + "@noble/ciphers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@noble/ciphers/-/ciphers-0.4.1.tgz", + "integrity": "sha512-QCOA9cgf3Rc33owG0AYBB9wszz+Ul2kramWN8tXG44Gyciud/tbkEqvxRF/IpqQaBpRBNi9f4jdNxqB2CQCIXg==" + }, + "@noble/curves": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.3.0.tgz", + "integrity": "sha512-t01iSXPuN+Eqzb4eBX0S5oubSqXbK/xXa1Ne18Hj8f9pStxztHCE2gfboSp/dZRLSqfuLpRK2nDXDK+W9puocA==", + "requires": { + "@noble/hashes": "1.3.3" + } + }, + "@noble/hashes": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.3.tgz", + "integrity": "sha512-V7/fPHgl+jsVPXqqeOzT8egNj2iBIVt+ECeMMG8TdcnTikP3oaBtUVqpT/gYCR68aEBJSF+XbYUxStjbFMqIIA==" + }, + "@scure/base": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.5.tgz", + "integrity": "sha512-Brj9FiG2W1MRQSTB212YVPRrcbjkv48FoZi/u4l/zds/ieRrqsh7aUf6CLwkAq61oKXr/ZlTzlY66gLIj3TFTQ==" }, "@types/libsodium-wrappers": { "version": "0.7.11", @@ -230,6 +323,11 @@ "proxy-from-env": "^1.1.0" } }, + "canonicalize": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/canonicalize/-/canonicalize-2.0.0.tgz", + "integrity": "sha512-ulDEYPv7asdKvqahuAY35c1selLdzDwHqugK92hfkzvlDCwXRRelDkR+Er33md/PtnpqHemgkuDPanZ4fiYZ8w==" + }, "combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", @@ -243,6 +341,27 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" }, + "did-jwt": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/did-jwt/-/did-jwt-8.0.0.tgz", + "integrity": "sha512-lJSVC9Ckxl+U+jDPbdATDtXV7CwE0XGT0Js6KNfjRlaj0LTXvDF90IAyayFwLUzO6punA/q3ZHVfTZaYDhHrLw==", + "requires": { + "@noble/ciphers": "^0.4.0", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/base": "^1.1.3", + "canonicalize": "^2.0.0", + "did-resolver": "^4.1.0", + "multibase": "^4.0.6", + "multiformats": "^9.6.2", + "uint8arrays": "3.1.1" + } + }, + "did-resolver": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/did-resolver/-/did-resolver-4.1.0.tgz", + "integrity": "sha512-S6fWHvCXkZg2IhS4RcVHxwuyVejPR7c+a4Go0xbQ9ps5kILa8viiYQgrM4gfTyeTjJ0ekgJH9gk/BawTpmkbZA==" + }, "follow-redirects": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", @@ -303,7 +422,6 @@ "version": "4.0.6", "resolved": "https://registry.npmjs.org/multibase/-/multibase-4.0.6.tgz", "integrity": "sha512-x23pDe5+svdLz/k5JPGCVdfn7Q5mZVMBETiC+ORfO+sor9Sgs0smJzAjfTbM5tckeCqnaUuMYoz+k3RXMmJClQ==", - "dev": true, "requires": { "@multiformats/base-x": "^4.0.1" } @@ -323,6 +441,14 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true + }, + "uint8arrays": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/uint8arrays/-/uint8arrays-3.1.1.tgz", + "integrity": "sha512-+QJa8QRnbdXVpHYjLoTpJIdCTiw9Ir62nocClWuXIq2JIh4Uta0cQsTSpFL678p2CN8B+XSApwcU+pQEqVpKWg==", + "requires": { + "multiformats": "^9.4.2" + } } } } diff --git a/oydid-js/package.json b/oydid-js/package.json index 7e0a851..7959fd0 100644 --- a/oydid-js/package.json +++ b/oydid-js/package.json @@ -1,6 +1,6 @@ { "name": "oydid", - "version": "0.0.6", + "version": "0.0.8", "description": "", "main": "dist/index.js", "scripts": { @@ -13,15 +13,12 @@ "author": "", "license": "MIT", "devDependencies": { - "@types/libsodium-wrappers": "^0.7.11", - "@types/libsodium-wrappers-sumo": "^0.7.6", - "libsodium-wrappers": "^0.7.13", "multibase": "^4.0.6", "typescript": "^5.2.2" }, "dependencies": { "axios": "^1.5.0", - "libsodium-wrappers-sumo": "^0.7.13", + "did-jwt": "^8.0.0", "multiformats": "^9.9.0" } } diff --git a/oydid-js/src/basic.ts b/oydid-js/src/basic.ts index cf435d9..ccf3043 100644 --- a/oydid-js/src/basic.ts +++ b/oydid-js/src/basic.ts @@ -7,7 +7,6 @@ interface ReadOptions { simulate: boolean } -import { ready, crypto_generichash, crypto_generichash_BYTES_MAX } from 'libsodium-wrappers'; import multibase from 'multibase'; export const multi_encode = async (message: string, options?: Partial) : Promise => { @@ -20,7 +19,7 @@ export const multi_encode = async (message: string, options?: Partial) : Promise => { @@ -30,28 +29,6 @@ export const multi_hash = async (message: string, options?: Partial simulate: false, ...options, } - await ready; // Wait for libsodium to be ready - // Convert the string to Uint8Array - const data = new TextEncoder().encode(message); - - const method = opt.digest; - var digest = ""; - switch(method) { - case "sha2-256": - - case "blake2b-64": - // Make sure the desired hash length is valid - if (crypto_generichash_BYTES_MAX < 64) { - throw new Error('Hash length is too large for BLAKE2b with this version of libsodium.'); - } - const digest = crypto_generichash(64, data); - break; - default: - throw new Error("unsupported digest: '" + method.toString() + "'"); - break; - } - const encoded = await multi_encode(digest, opt); - - return encoded; + return "string"; } \ No newline at end of file diff --git a/oydid-js/src/oydid.ts b/oydid-js/src/oydid.ts index 9d120aa..9cc658a 100644 --- a/oydid-js/src/oydid.ts +++ b/oydid-js/src/oydid.ts @@ -1,7 +1,6 @@ +import didJWT from 'did-jwt'; import axios from 'axios'; -import { ready as sodiumReady, from_hex, from_string, to_string, crypto_box_open_easy, crypto_hash_sha256, crypto_scalarmult_base } from 'libsodium-wrappers-sumo'; import { base58btc } from 'multiformats/bases/base58'; -// import bs58 from 'bs58'; export const DEFAULT_DIGEST = "sha2-256"; export const DEFAULT_ENCODING = "base58btc"; @@ -149,7 +148,7 @@ export const read = async (did: string, options?: Partial) : Promis * @param options optional parameters * @returns DID and private keys */ -export const update = async (did: string, content: any, options?: Partial) : Promise => { +export const update = async (did: string, content: any, options?: Partial) : Promise => { const o: ReadOptions = { encode: DEFAULT_ENCODING, digest: DEFAULT_DIGEST, @@ -161,9 +160,9 @@ export const update = async (did: string, content: any, options?: Partial) : Promise => { +export const deactivate = async (did: string, options?: Partial) : Promise => { const o: ReadOptions = { encode: DEFAULT_ENCODING, digest: DEFAULT_DIGEST, @@ -185,7 +184,9 @@ export const deactivate = async (did: string, options?: Partial) : } return { - id: did + id: did, + docKey: "", + revKey: "" } } @@ -195,14 +196,16 @@ export const deactivate = async (did: string, options?: Partial) : * @param option parameters with public key for encryption * @returns cipher and nonce of encrypted message */ -export const encrypt = async(payload: string, options: Partial) : Promise => { +export const encrypt = async(payload: string, options: Partial) : Promise => { if (!payload) { throw new Error("missing payload") } - + const url = "https://oydid.ownyourdata.eu/helper/encrypt"; + const body = {message: payload, key: ""}; + const result = await axios.post(url, body); return { - cipher: "cipher", - nonce: "nonce" + cipher: result.data.cipher, + nonce: result.data.nonce } } @@ -214,20 +217,10 @@ export const encrypt = async(payload: string, options: Partial) : P * @returns decrypted message */ export const decrypt = async(message: CipherMessage, key: string, options?: Partial) : Promise => { - await sodiumReady; - const privateKeyBytes = base58btc.decode(key); - const privateKey = privateKeyBytes.slice(privateKeyBytes.length - 32); - const authHash = crypto_hash_sha256(from_string('auth')); - const authKey = crypto_scalarmult_base(authHash); - - const decryptedMessageBytes = crypto_box_open_easy( - from_hex(message.value), - from_hex(message.nonce), - authKey, - privateKey); - - return to_string(decryptedMessageBytes); - + const url = "https://oydid.ownyourdata.eu/helper/decrypt"; + const body = {message: message, key: key}; + const result = await axios.post(url, body); + return JSON.stringify(result.data, null, 0); } /** @@ -266,7 +259,7 @@ export const verify = async(message: string, signature: string, options?: Partia * @returns OAuth 2.0 Bearer Token */ export const didAuth = async(did: string, key: string, regapi_url: string) : Promise => { - const url = regapi_url + "/did_auth"; + const url = regapi_url + (regapi_url.endsWith('/') ? "" : "/") + "did_auth"; const body = {did: did, key: key}; const result = await axios.post(url, body); return result.data.access_token; @@ -279,8 +272,7 @@ export const didAuth = async(did: string, key: string, regapi_url: string) : Pro * @returns base58btc Multiformat encoded object */ export const hexToMulti = async(hexKey: string, options?: Partial) : Promise => { - await sodiumReady; - const keyBytes = from_hex(hexKey); + const keyBytes = didJWT.hexToBytes(hexKey); const multiformatKey = base58btc.encode(keyBytes); return multiformatKey; } diff --git a/repository/app/controllers/dids_controller.rb b/repository/app/controllers/dids_controller.rb index 9707ed1..f89a56f 100644 --- a/repository/app/controllers/dids_controller.rb +++ b/repository/app/controllers/dids_controller.rb @@ -685,4 +685,48 @@ def token status: 500 end end + + def encrypt + begin + msg, err = Oydid.encrypt(params[:message], params[:key]) + if err.to_s == "" + render json: msg, + status: 200 + else + render json: {error: err}, + status: 500 + end + rescue => error + render json: {error: error.message}, + status: 500 + end + end + + def decrypt + begin + msg, err = Oydid.decrypt(params[:message].to_json, params[:key]) + if err.to_s == "" + msg_parsed = JSON.parse(msg) rescue nil + if msg_parsed.nil? + if msg.is_a?(String) + render json: [msg], + status: 200 + else + render json: msg, + status: 200 + end + else + render json: msg_parsed, + status: 200 + end + else + render json: {error: err}, + status: 500 + end + rescue => error + render json: {error: error.message}, + status: 500 + end + end + end \ No newline at end of file diff --git a/repository/app/helpers/application_helper.rb b/repository/app/helpers/application_helper.rb index cf87590..ea8179e 100644 --- a/repository/app/helpers/application_helper.rb +++ b/repository/app/helpers/application_helper.rb @@ -264,7 +264,7 @@ def dag_update(currentDID, options) did_orig = "did:oyd:" + did_orig end case rotate_DID_method - when "did:ebsi" + when "did:ebsi", "did:cheqd" public_resolver = ENV["PUBLIC_RESOLVER"] || DEFAULT_PUBLIC_RESOLVER rotate_DID_Document = HTTParty.get(public_resolver + rotate_DID) rotate_ddoc = JSON.parse(rotate_DID_Document.parsed_response) diff --git a/repository/config/routes.rb b/repository/config/routes.rb index 83283c9..6b01626 100644 --- a/repository/config/routes.rb +++ b/repository/config/routes.rb @@ -31,6 +31,10 @@ match 'oydid/init', to: 'dids#init', via: 'post' match 'oydid/token', to: 'dids#token', via: 'post' + # helper functions + match 'helper/encrypt', to: 'dids#encrypt', via: 'post' + match 'helper/decrypt', to: 'dids#decrypt', via: 'post' + # administrative root 'application#home' match '/', to: 'application#home', via: 'get' diff --git a/repository/docker/local-gem/oydid-0.5.5.gem b/repository/docker/local-gem/oydid-0.5.5.gem deleted file mode 100644 index 83601e323c68a61e30da0bd6d15f9bcfb01e9e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45568 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 diff --git a/repository/docker/local-gem/oydid-0.5.6.gem b/repository/docker/local-gem/oydid-0.5.6.gem new file mode 100644 index 0000000000000000000000000000000000000000..dc64cfdac92616af2149dc07fe7617dc10aaf5d4 GIT binary patch literal 47616 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

b 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�`%9+aMZN%}0YoteXVDN<{)tGsBe6-MJ)33-B z>6b_u?y5nn=`vgBve`rWju@R)VljwiM@P8$xJ!JTiUbe&Cwf;)K0Q zDTqrwif<0F)-~mjPQb8|O?NQP>71;OUv%E^3C$iTm*!r@qn8m;I$8%cSKw}EA&`;& zUS`K?G5yGSCs*efj`D#|P`HBr@@B0dWW1op<(tUcO}^Z<$;iOHh{=g5(luR4XQK6Q n9l 5.2.5' +gem 'rails' gem 'puma', '>= 3.12.2' gem 'rack-cors', ">= 1.0.4", require: 'rack/cors' gem 'rbnacl' @@ -15,7 +15,7 @@ gem 'multibases' gem 'multihashes' gem 'multicodecs' gem 'json-canonicalization', '~> 0.3.0' -gem 'oydid', '~> 0.5.3' +gem 'oydid' gem 'bootsnap' group :development, :test do @@ -28,7 +28,7 @@ group :development do # gem 'listen', '>= 3.0.5', '< 3.2' gem 'better_errors' # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring - gem 'spring' - gem 'spring-watcher-listen', '~> 2.0.0' + # gem 'spring' + # gem 'spring-watcher-listen', '~> 2.0.0' gem 'annotate' end diff --git a/uniresolver-plugin/config/application.rb b/uniresolver-plugin/config/application.rb index fc5d913..63b959c 100644 --- a/uniresolver-plugin/config/application.rb +++ b/uniresolver-plugin/config/application.rb @@ -20,7 +20,7 @@ module Resolver class Application < Rails::Application # Initialize configuration defaults for originally generated Rails version. - config.load_defaults 5.2 + config.load_defaults 7.0 # Don't generate system test files. config.generators.system_tests = nil diff --git a/uniresolver-plugin/docker/Dockerfile-local b/uniresolver-plugin/docker/Dockerfile-local index 76c7d74..7e887dc 100644 --- a/uniresolver-plugin/docker/Dockerfile-local +++ b/uniresolver-plugin/docker/Dockerfile-local @@ -1,4 +1,4 @@ -FROM ruby:2.6.9 +FROM ruby:3.2.2 MAINTAINER "Christoph Fabianek" christoph@ownyourdata.eu WORKDIR /usr/src/app @@ -18,8 +18,8 @@ RUN gem install /tmp/*.gem && \ COPY docker/local-gem/*.gem /tmp/ -RUN gem install bundler:1.17.3 && \ - gem update --system 3.2.3 && \ +RUN gem install bundler && \ + gem update --system && \ bundle install && \ bundle update diff --git a/uniresolver-plugin/docker/local-gem/oydid-0.5.5.gem b/uniresolver-plugin/docker/local-gem/oydid-0.5.5.gem deleted file mode 100644 index 83601e323c68a61e30da0bd6d15f9bcfb01e9e46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45568 zcmeFXRctP>5*`?4W@ct)W@ctiPLdO5#y`x-2{SV@Gcz+YGbel7eQ4EvSZ$?h`_Pf4 z@n}5Oj4j)rJoDGw#n{Z)#hAg;3+R6pG5v?w*w}#n3;z%OkDQf>g9V70jh&T=nT3;; zlNE@Gnf1R6Ct~_v<Bj5ZnC-XqHe2XE4JG+l?1ZIkA9bPymh}OD1OjYrjOn9Ej4yaF%Pp;OgHvc`LZ6}|-Z?PzD!Rg_ zbG7@lAvilYG4B+|!967U8pB~{hkhlXMBa_3xE_9^|WaJ=d1UpMwFt2Tcg5A zq#7~%6m`?df^szFOnz!euGGB1BVaH-%n($6lDmanDU6S7kvZw!S*qFDc2N@lAzm%a z6Kuax>iOzTMPAd5WtM_?@&V2r8Twb_mMo`V&4h4QO{AwcbjWwJe^p{NV_nzA6s$G= zXn16k)qwD_jWj-gFSKH##)M%Sy$H+AZ?b+;jXAB2?qN<2xV1ik&C$}PgwB*Ur&?}{ z#Jf$o1x^ZEkq@*-M2iN4tnGWLQ{%0IXz_fqt)5Ry;EgQ@!E^dD4JXJ7VXZRLs#$B7Uln?L8JUDcmDd%oE2Zn7nuYq7l`$CRGm|M~~Wo{Yh%`tLO! zkTox4ckK5N*wYZ%wcyzAg4Y*Do5KPIuCB$iKZJ;Ri{sl7$eF~D+b|fZ^}!=dux&P9MPJ9{9(R*m5Z`J!y`65k;@uR^a53X8=k@raHouAt2*DQcjr_S>>r*4$#bAK^qGLL)5heURL@%!XA7xeAX8KxHP zoLaSULbQ^AObPWn-VSr7GDAqe+Fw~7$b&pr+3FB$Wmvz?I&f2P;ic@>(?p)j@ z@pb=r{j;m#a7(jbvX9V`hS;J7*J6d*r(Z`IRD-{g+?UM-qOS_(-cMyKkG%z6SjQgf zfEhio!WjA~$J6AHD;0?{eGI^wwDs@awWBh?O=q=VAzdu!msGlDWm*Vw5hokXmL@qX2rAl?nB|f+ErL;8% zEOi5X*(dJnJdEH78OwSS1EOPQ-ymP#?^)O9`i50 z?(<>FBBsbTbS5$4RrTTQ81*A08kkmeBr)Pe_2Fz72_KPCrpQ)wATi>3^-ydWfg>bH z-T&c6BOp^+0obri=qG{z8=ky&!T(*~vH#=O|J(}vSM2v61oZzK{$pn5U}OG&;6GLl zj{k%I{^xe||C`l+!+%%Z>s|*kD^yymelX-Wy$fpVSVLx?m0O)@aL{Q((F7CMic%nE zLIXHhS-gy&9riQoxjko_i;8ovr}7`*ALu+JY@tQ*NCd2}68_)qF=+KBI?h#E372j( zyE@ms-N&ekLx<^V7xs?dj=!7)ik83sq>7X7!LsEolJfYnr!0OXhJRlW;!4V*;W`@d z9>3V~wn}bq`oBqL1w*Zh?qzO^M8gjZhz?MhntJW@d{a(4L+~!J5Ohy zmwGW|V%*M2&vRo-RS7;67kEGX<4zB3!YW|t7-_zC41_ak&5hYK%0W3~<{dLidgzC3 zgnq?^e!acr4RW9(Nu)@~sg}}G-}^Ig#-qy~wusr2J#!KPXuK9j$o^90D8u14)-#hZ zWkm355=h{VV$5i;8|$Ft%gjK9QlhToV|-Lo%FzW z0t0@+jak0IrvdF02t%#FQ7!7@oUCVajulgS0c6kxQFy9_CG{oeV-R|1gxVY3=d)$Y z$a1l1pl}1nN^x&)UIr*m3F+Kf(S2-0Cc<=7xC1lvZ5gN^Cb3wQs9N{oqC#wdFHRZ_ zCKx{kIEbkml`QEcDtq4;j|hFHpe+Bm?VO+LkYCtjTDSB(_h871(gCO|aLLZ>&n($J6Mu>lV9ZeynVKdd*k)(+9d6;)Z&)zBMbCJmeW1 z;tK860>uE&&2YkSSOt9OSc@8A7Hi~#_??ju#ya_kcwtL}oG^Z{uQ_cxi+*NyS zf9TY>lufjH)q@$F$mUtL`*as^f^J~f7;xE@G@6oOq zAbi!%y?;~#hbh0UoHg~$iZV@Tj8<&?ZZP1hw6CmkWW_(Ov_=i`b7kj^aDss?*(AGA zIaE-OMh1}Fxwq;!0I3YC)F2o&8=G^9H9FYZQ_}zXC{`xZ8YG*r-he*;$_5Za zcm{IzWOFQ<@_Kz4M2m-#K#wYvE)4a%b)Vy|0#|%5>p#`W7sme1R+jgue00NXiiqK%LB1m&(TE? zU5#pXhDv?qt(!mHe+kSe$4?_<-DhIgdFrh3`@y)}r1vOrtWNa`e0KiarOkT zY@cGuO5S3@;^jq^`WKAcC_)wJl*>oBg5}fgwOu1L-Jr@m)jWi_-8D;?#Jfun$BzQR zyvxMTCQTBbOwQVE%tJ6W>;8GaGD+~S3{Q`_N&>H>rfkdrr&(F>%s{AIE}YuRwr*qm zj-l3+73i0FUuy-9U=`qEcj7fguhZ$b8k!O%=*@2gn$$qKoUvE=?Q9k)_VKJ4{w}Pr zciOJ!r`chbrnz@H&?KZ5c9hX10}4Ywp+u-Qm`9%kLlA?@KrJ*Mi0$MsyyxZ;wQo@V4;^o#^KkYp>I`GCWEw@J+fy|5^KPkS-nHE zj4_WD`4ZO0%wX9pp#wdXIt}w^09mq5-qdMtFbaa>f?riArTsZ`*$mr-@C9Wm6Vwf? z30F8rMd0u^ZwD#9(*FQ+794@f8Z|s`RlDhF_6{WHQgBi%yp14aL1X_dXJ& z$wS4z4<%6D7}@G+`{RqW1SCZ_aMDR|e|4gNcXsbf;{FfLJq;cYdx{Ix3gz9yj*m1q z1{mEkrRlfb?33~3@QsO)P%p37X^=?GiIxbZh*szq)8Kr1KrEQ+$R@J8WzH&d_#8m@ z{uLB6F51hhbmk;awJw$g62!_Gyv^3osCn}ZzxhvHoz{SVKoJ4vgrRBI0E=_ZM#tmk zlJB%57#*5%j9%ULKqM6UN}$L(7Q?8bXG(AG2bzL?w!X2b#de}ZMJ@W2(68@hGC z0o#(tcmt11D{IHxvzqgP?n?`;c88?c6D=(F2Pr`cp1Pc47BVcc5srih*H-RsI^64t zg%Ltly7eiAzHDyA2C?Z8r+b}I$Gfc-ZwRQb??Qz?$*535ronKQD`Yp+8&Xse!hq6h zNCg)W_{-S5oUcm;a)UQ4;vmz76)4=E7hn0l&uwtV&QaRj%xf|8gmHy}(JMIx z;WAf2nCNOkYcmLZWw|J36pA{V0XlG}FAv5-jIt<{smlVo1QaUiQ6&Ra4BsKL1Oz9T z;!Z?IItjORrYgau2yBQj)n30YO$LGdGdHiw!dXvbZ$y%(4VPL9b1M-}B;t`{)F1SGi5lL zu+qi+`k=f3((-A`EFUWA;!+vqDGm%RoI-?>om$}IBta9mM=TeqOukH}V#BvAgAp(- zYqKP(3DpRQs8A${p|}N-=i^A7VF#*U^K>ImKQzzjY_&cRx~(pL40xrh*dfo=aCi^K z;x+TQ`G?Q`Qm&XQpuAz#0Rb17odz~qXH+mh!?C3Ti0qf5v@Y{j1rW!)q!N4maYiVW zc2@*!xOmySg>A(kQ3YcvgVh~W%-od={`7?e-Vdv8=3#>xdI0bT@!tjC1jEUh(L$|& zFNm)8O%v&&!R}w=_HJx#KUWj(Q$QiAjIq|m!{OVc0Z%i*F`voCtu^~*LI!Jz(Ny8& z!5|=co3B%Wc4^Ke>*psLZNrsrG_dIb>8gX^;`_R z1CW%-?u9^~R50#LI!eWB@f?>QI7}3>wKJ~{iCaS^BwU~}byY&rIYO)OBP}VT(}(Uu zG~k!@TlIkG(=_JC&|XLlj?AG@J|+hGm(UD)RC?*lJn=bsp4B&Zaq78AH-(6uLu*W;>iStwtAuMsKw}_LM=bu1{!o&HmqjgQ zX)BTgqQI=DPjX}HrBu15JtT?8J$6A*eT-?ITi;~pTxPQ>xo!esI2`euG>En2gid_( zc?P26A{JOm%IUH!`VD)SKy5q*eqPImJ?J#Ad7h^ z@?0PsLcqnO<^r)88<0WJ3Z-HUH(iQ2s#75mGzkNYX+1wG-xHmCL8=2aHD1Rk0NXY0 z#8SR2Qn0x5!eDjS&W0yYes5Q`JCN*{A+Hkrn~1=xD#>crRDTX2Sk^3xk-RSLjsu1p zWd9m4N=ei_2i59bf*XeFFiI|xHO8+sV%BT`BnIiS;7uxv2g@)UZb;2%8t3>C>A({* zVGf{jGqE>{-%ZA~%l>WNmL!hx!t4A&C>~=z&euij z=UI_OTjDnR+St}_Dd+Ym-PdK;*<|7}cVs(Z+WM^F1Q}poEV<`MZ%t(4?J2v(VWB$s z)o|K6wYc

N#LU$1`xPo&|3^fCXOPMm{#eZqr}VfMvL)DhE-l{p5su%dF9acXxDX zu9^EbnC4`k1&QfEG4+&h?+UN+HLN z;R8X@Pbk|MINJ5NML<0^(^FLKeB6caA%~*6p5(P4drEjNv_Tcj`gCi5X`@ER%At{C zG{Jb~|B8uB^MCL9i#iynE1ZfO14|7x3=@)OZ*aRh*$(f`R3s_Z-!UAEh#q%BSWX$N_c>*@WiJ$xXs)} zd>QNb0MF6zKuQFPhvO4!1&Tqsm7nEPf`x{dVptiIJ?P=u1NHDYaCl3REZ0r1Enkdv zd@3LxLu5^{nhqe2lNWJQC2)b!?$SK>EXy3Jyo8v75@CXivPX5C_A^oiw<(E@rUahS z#h&sJ2@|B^3&p3Ev<99UF#R$Wq0&&4*?5#e3-JY|*@}={iNN*IP-98bA@_B!W|9Eeeo`-Z zK2|CuEFM7%O0Q@XC6R;~#gEaFN@akw@^dI;<<^cAyRPdZ2Tjb5bs{^w>}lrRMpbp? z1h)$|bh;O@>K5ROTuf0&&F<9pU8}GC^H1f-kj!Dv8`CFs?XP!Op`eNbcpJIT7%79* z;4gwsegQ0k{9f*&d)g!*M+zovd{Y-12QN$^Y)kvDuHW;)PV`*im}P1laha)sJ-_Yw z^~oa*LHF(PbwaTP!z+X5%IkU4%GrHg_8HA0rVZJsCRWYu{+76xCQ78g2FOlYuXaHWAWmjfuxA~ z_M);DZ@pX=UKo6uj=QBj<_C;UnSLfLd&yD0!TSa$h_e%C;W$$63n2Cf)~%GUsi{*{ z(OYf+&4A@a80L`BK|uNIHW8|6H(hm5q}?A!ETDl6T!I`x{G=oS2nt}pe_&Ua0aTW& zjl^zivpV)$gK`>N76unTn+S1yZ(zR^F|xy*o+F=HIQA^+(KJb>;#LYZv;{wo=R5c; z*@O!wrT*M7{X<^j z+Q?FeNP6qS_wK$RL2r+^@8{BRWX=FZR_@OM+K5ZoJT5=JFZ3{uFn+B>{jF#uOOt2=j<*lAZQoXXj)rX(_(<(otKtd9e+8CwV@ODXw}X>Wn|sr>k#6RhCUJc6pbOzsx`S`s6~ z`DKBVr!RP2Axq-$%iexy$L^AOn~i53iDGlbKdfa3oX$MZ-ys|49C~9|tMpb&47Lyk zNrCbA>jny|VCzw^-m&!T#st%@ttSgU!dT_!-B3_QBcgq;_b~QC?iRW`Z|0=(M}e*S zV-&t34TjHf)rL%r?`fW6du6BK65Ui(G%iAFXGT;7Z!XI({7!AeeU8*)4yGx}*f0-< zu_7CFmq_%mJz!X&lgx}NqrbFM{Ek;FyDt2?4Nm?dg+rHnA=Ric9Jx&hC#|H5sQH*A zjS7nlnl6KS&`bqN97*2tITxpjdTZeH6mh*Pvo|cn-TBz&3fXb*X5JdgBngU!R6IBE z|BlSxcT~cRjhpZx+#yo9iT(p#!<(ZooQ+1T(>v!Zn0*VmL>}XaE>D%BZ9AFPtMcUV$miT?V-=Li(|n z%4N5c<`VY7eo{5sSANetpdwcUZuA_9}Da^ws;;t4weuyyaE5An5PvI`!6B4=dL zv8bqg;3cBXOb4k8LEvKZ>(Dgd9jLI7=$-BYULY;FU*N^ay==w`EHYp8NT#E=DWoKO z&o$UwqIZg(=UTvHpCI5`8?08QS+B%`-y<0UdRPFw{V0R@X@XpTIoxfN+lCwyyH{ro zKCH6=`S_wYuc8k*0h1=HlMrR8NWj92|4u=_e2rX(M_11hyl0?^E(`iiVK{M|sMq|v zi+(t@mt(O`{Nrn4ZjUZ5`nv}j_ZW|3i>QJEw|MB*yXF(z;(Kk#JD9!Vo z&{J|a)3UtpgDj}L@s08p5a)Y}R{_U6bda!3fe9xK1C8uag1n`h23WW*uT1F@Et3Z=zNM{`(wIfd z36QXbCs~gN)q7Tx4x8RGoAr>y3Z$DJAoZT0l+WD0aG}s8~K6Y4Wiq+fJsqCna*+hBCFuwF@JLBgh41f-LM+z+~D89iP6!7 zvmJ=ma$G8cqJw!o!!s$@k%G6O{4?$}{8+WYB1O{~wYmU5ffe~5b=cB@56y_H`83Lg zMfjT{FP}<==V7*^Z=UkXzMZ5FtsO~_xE4tJal0~_`~`b%qQ<;z2xO(G-I>&S|L`v* zGmGG>zuH*H3K{m-lb*A5Y_nqzNNM}TXqw`S(qrdBV;7yoslk-ye;r;RUM1{>RsgGR zWIx3|E`&r$NZ-mj6&jrA71zUuO@IvIdF8eju{;?$jWLjP-JyKUW>n7Iqj1&kSgot3mrj|vcJ4sxlx2R*o8d%$8 zt;nAk{>q(7hF?>%U#9t+6hbNc;J7-nTB2rhojxjXf8q!CscPGf*szLAaCLF8T7qT2 z5BVtXEAu9oPGENO#{eW9Y{cvX_jC+@8KUTX2>RZme)Nb`_>1$sXM)a_wG*K`Fy?Gy=V0qo9z%s^f!mYnclmVl8^ zk+4G8k>cux7?2^h3=$wLDi>x_4=Pw8D6(3V{%J1 zI(%Jm+uD-6?Gws(yVuP+`u6T(qRQtLR-={sImLg0(V$pQ5eVoH*8;@AT8SNVqOPImb+dx_4cq@78e5Y@|B{DoNVtW8gskx(dP5BjlSQk$*o4;lFDz5$MEGE#L|H9Z z5>iv!=h}~o91=3}uzVnlibt?M1#NQkM;^B`9mgyt-r%b6bI7@Lf^yl-#Xhp)_J0C2 zxlllDO$;IZQd_lsru2s7>lORmEZUs2YYv4r9kd4YJ?`RT6fK#n`-Z5otXc3(u+7vY z2<|W3=vLH6!#ZNVETbiV#S5o%v1NP29olS6_+)Pg;jb?{gs|WhYiXyVTai+E z0^s7qJp3(sSc9hPS)%L%rW>)XE z$UL$kfTD`M%A-qfG8y+nE-|eRG0ro$b8(0lUrBtTHg|wzZ0Dy)@H`AJ6F*Vzi(VZ| z$Q=XjNb?nE?%$ihIC;Kxor3QELf4!U`tQ9CeAH3pIyb&(w2e!Fnz&vUHqLSOxOfb4 z8oKT``CJz^l#t@oVjm2^1>GV-m-`mELKSpBTbGf6?ku(Dkw}-D=H(tu1e~Z@7csMt zR`As-Wl-^1ce%D%+Q%JTyUG0nL4zfr#`?Ifu!&@*0OJlY{%6VhOU(z$j{x%;=olX_ z@;p_^@Fc_}t3jh4?c{Uv`-!;v7yYKOYGFruj1F8sN6z;UK^qWJ0r=`qZ!mccxXqnA3ZKn=}$7o#ZhxB6Qq8a>W<$Tt? z#i*#ls*=ShWalz%d;8sFHu5z(we4S_mu*S}2;A*7Y(asVYmDMU2PZCp1~_hX2K zp1TX~${EbggUWJrbn+NwEFg_6E>`>)tB>D+%qYj=(i^1?>P>xL8(ymAxxN7Sy#z1w z9@8Z&c94ho!4KR`kI)Xm;)8s&))T_<4x@068@D}f9&0Ib0J5Q1HV*Oo^K#Qz1St*m z^@(3m4=!vs+|$r(uoFaAqK7FFDVise-a{J;C-X067tg;Z>zdAP5{m|%vVGlFZ*I=x zD(_VpFG6oDGnacDeD~FWB+|j8W)^C6hIa*yTDUjIw(`dKRX;ULeZAMwY}H!_X|czU z)K7leKLs-1ClBW^$(xg~smbOiQ$j!ue)>&z(Q}x~&H2~XgOMcQsweOy=zG3A(1OfF z5w8*yW-5^!glH@qlB@5+@-lbp^nN=*p?Yn5;8{puCx``F_vz36-;=E3`D`$F+;Zu+ z5(tmJT1P-k-`*FDOoInWrx!w+oPuz@K<~GAlhtnbaT#?+B|;oN$7rV}9iSZ5p`e1l z4yI@)#$O`ybFW7pNl!5PiH;{-7L!i2$fo7Q0sn#TtfSZRa?P_F5brm_=lTEqOP z2snZI{hN`2zp+d8VMzNIz_MBu5eq6)=QY%l;=B9?{`^=Dfr<>SlKbW!bD?76M`YRp zuYix;$`g=Kd%N~(8xgWD?}>z+-XjxMgO-O_)YNSw-Ice!gWa73ra@)8XcB%g{XW`+ zI7M))76PRFCb{k%cg)ocR-3d-b`%HL-0>2ai~^a)yhMpG84}J^FqgQ1W;elTX~^zy zl=K+>Rig@FYAblI(}<+vci{o^c<|GTIY`Mm#$YDj!fUYl{ZGULwmk%_&Y<0Utj74q z0$o<`6wZ6zpT5nFtY<2c*p3)DMcu$wK)dcy=}3%LCL=YeCSn6hU*usZhln#g;hlbW zhrKvuCb^>IULaYW#SY**jR|^kds=wu2?#Evz+5zp<`gFCJb963O{BKP;l&FnI%3rGK^<-ho zx5>X{Q@~g9R#Pj@y^$v~dLAOAt0QGGdPH>N$TpIO0%~E*ZO=;jCB{r|*I|*%elJS+ zJRWJtA1m8s+B%2(SXq+?LSOeBXA;u5XY|My+bc%_HG;lX=SZ0^iJW_&ejT7$|h5b5r9HT|!+-G|D#QP}hM)V;OUZ9^&yx!O)&I5Qx);$Df!KXn-dZsP;_rkP z09|m~?w5Pz82+)-%6;IrMntJb$3EE$L&Ob5rkIw`0zu9 z6Eu7Zx)pf%wClZY+44J~=S);ZAB}N`0&_Sg4S_eGeTf^SJTczw3!%w)^7NK;D+_%t z`g{5KaG&!QxakeQ8xgn1x!I(jg!`dTg(_1xYPogQeVIdJ;%F0X;XM!U*0L^>N6`)p z*|N|@+_An5|96M0ek_IkzetTn7C<%EjjnCto;~>I=FG=Q`zDBU-w*+O}?7}`mjR#wC zZrzLndZLsi;%T?+&08)2Vj6QUv5E%nE5}9=o`Fun_gl z&Ytij+2df?8$9%L2UIjXHT@hLoN;<*^S|bzl|~!i7sG?7J zVFtO2ZhnO%HLg(o_B5BEgadt`?K-L6QtAPst|b6>$?GgJJYzY$as(vz)au$ah%a zjDmNE{S=N{*Tz7`tz{O|!Tx>9ZdEg*AARZuzNCRwFSIiVY+#U=4FcLyCMhuvvACib zHtQ2|_Dov?6n1c)PB4UOT28jQ(haE+NA~>;Bm{MKo~Q^2IVcf%oD~oFGxfLqoZ#c_ zQN;I7Z?nC#fo!jG-(D9c2V$J|3E1BZV%}3W;LHa2H6)@LF#8s7VAbiu>m*jl!>G zO8BQ5kB;V z7H(hVb=Vfn0I_Jsc7|;dBKya z!wg%r7qI1p6l&tSF=w&I3M*7(%Hb3yjs$uQ&#Ns7`3D@I)hiGIcdj(-j+>5{OY$5% zXrwZgaHwSxFdIZwf%_*FfPtaenoxp7`FpvS*zQ-8#_k6o{)BQ@`zv!2J*iMQvR!Jq z2iwKHOobp6Y}n@`-de75Gfioe_IU>N6^-0)OQbnFPcaBw2rr^x=HmLEUu_|NXFG=6 zi@Ve<#W<~%R5|d+GDR2v2ww*CY~Trr4N)=z=)F#wvX`uxb|6|?f#6u~`Re7Zu>9`c zdva=_ZG33Whnv?1mNZQVrnqn~6_TtOSvXokR1X0IYDcf_Z_U@kq5;QrWqY>08??%n zQ8kDL;0N4#jiUGjBX1xd_;e2RM4@$y%|{GC`+%ePCe)gNK|CkgBtTZM>LA8`4)NO9V?8H; zHI)GwlOZ%^1HAaGzTO-Pc(GR2Ri}w<45^G8#jKeRZk@KmMW@wQbB~`qNey0T`S&k@DJVLjiVqmw-zu^Ebgx6^cVJ{=gQhm;n1?&H7-W zrJF<&f|H+5J9mj`AiaQzq|{ILP84Rzf=ntFHmI|5UUiHhJ{ zAH~Nmok44U|8wOH;uoCAbQo7_lkYgr40)iBKaK0z+26hZCmFI$I2JLjkda8;*zyqV=5b&hKgI$4eR}TmblaW~|b< z82i}d!a$DNPG}Nyha?jCbOrM9zD5X<-8Ry{*gI-L`h$(N-X>|HK_#y?hmS_ZT;2>X z<`nuhwSz!->6!EhLijYJ0IU=2~T*_uTX|Xj# zzgZL6|FFTd_PEeNb&Sh(x-(0A$;Gm#tQsFV9kCwm2%T({N2}1K3Yv)eBh}OaFnGB7 z%kMmQR4M5?L>5e9^nUsIWMFPTC`%(DVjTTP#|q!i`y_bWJUF=J#APO=w+~=furQ=v6nZD!=o*IipnS~1MtH`gai3~mq8eR;p0QfVbCHh~$h$HEMaiiy zl0I)xx-l*Kr|{DW5dsN|uJkwdL$Ax+E(rpDT{Q*$#Po_q-gM>6 z%wr-wr3Na~xRVpAhaRBQdfzGf>s7{R`Qg8{JT?lCDDCY*I16;OwHMF`t(pTn3^WCs z4BA{Wjn}7ltUCbs`3qJpe>CH8UAVqYN=)6(@qwfC>B`=Y8Ez9NVd=$eL;MovCqi)4 zYJNN$3%3?_QWkMkJt`&aXGD_QkLW`8UJ z@tA@PcLM1EYHCLOQaruA^18;<;_iLTkm&A-zrS&UQES7y3P9$eFeQaCA!w*8m~M^; zsQui`pPRM$O@I6|_y+zr)mKKD92?>%lxOzcE+Y9d5MZyoGl%BBm*M}lTj^&c(% z_FeRCZT~KkC;~nwZjz`-R;o_#*^JFs^hY2j1E18PC#=65X~<^GJ#9Mvx{6UU?Y>@5 zWuewq^`qaZQo9i!r-OZu&*pMZ<1f?QO6(MWbf2Gi^(qtGYWA17A&p0D{6iJA-{iJZ zhC;FV%uM<*yIOXh-|NyFh`vpNP-vfbBiA0%3^{<)A{cYU$8_`acc|lT!`)Z+wT$QX zBR2lU1PHH}cO^^yudh0n=iU+QU~pDsCL^+YO|Shw!n+)-wvfVD5c6hw7)ld}XsaA1-Av!d+sNeuMu zdV*nOBudm7#PjajX2e8-1O$ZhfDg%X@rfvr*#8#4bCL85GD5D3Dh&k9&+`IU+LaTq zqSYh(k{#k95a%vy!s2}1V-`Zeu28%*3DbiS$<*P{53MBcZfjc9DY*8 zNOB7F-whWc)J#%;k1@x755{IxzI5n-;0iKSC6LNt53y{ZcF{*?EL$okDu?R5Xqcmk z^EEYYCOM|Ehk08A#Q$>a9S4hLDHavXWX{J-c*W{k{(}<(sTmV11NV#+Y6q!JBrlR; z>l;KdyVKBr&xUG5KZ}j9O1v;9c-Z*ZyFjZbMLv9$GXM3aGq?DIFyQ zf$odt5nMddIy&9E4A5rh=UhH2|B6^1OO8iM%lK45RAmC1q0xaNW0MouT1&IwX~o)VaXfuvUvSw5x#{md)>VDX za!X+U(%~R*Y>_0yfKM>CLc}nMsFVUEuI?{Zk<(c32jzanjD2Qxh<~f4D&YX|Ff1=O z_ZQ(@)tF%rx_+hDl4nm0sst{;(Kgf|ksT$7>JB|H9c+NEz9TI=TE(=?#dmtn!3HBD z9?1T*y_u+w)cfCo!YKQMZ||gEPFVfEo3Gt*54Y3bZ}YF-4ig~G;vDpjF^8<2c`TuD z9t7ptwDw(WYZo{#9cOFk z18|EjwIOG!QG=GEm9^6Zw)t#l_uXZXY@kR);9XSkmyFd@E#QH7f>GwwUwDUr(Uy^2 zOY6a$L3`3MQMu6sJLwDIvXXcOkCoPw|*hEumBixN7p4}nIQj7lH?GrY0l)K zW#CaD3Aed$N((YEepVpxk=&4QPDh~-93~G(+oK-OQLUr^S`6P{CA`AcAf>JE)$_Yq z)>N}K9|@+OtDAOTiMF$4)th&Iq& zA|GVoc)d=4#nY%O=QN?V7u|;yYK9em@9ab$Rky*MA-c8b=nx<_sGAvjIHb;7x~2zh zl?|xa0#vM0q=@tme<+#2z9-U9iNJD=*;ip*z;|CoGzxwOTF~FmX>~g(VER89(~%oi z_6Hs-L9w(++OW!<+h&%uYNG7|oZCt+lDsSM%*=jKwI>p}3ZAeSWpHq4h0`4nhc*Uezvu zcrBF(7)nnudqf!Xuw}gx`@kQ$DUm})nUG+l-KG`fR|84EjC%b#qIlwaYKfFBn(d4~ zu;rgZJi+nxy_b}pySPI~a;G`E4mdj`sd^rdJ86Q4PuyFW+enxCgKaOsrT)5kc|#lu zw(6Yj70(gd`SP^mWCx*g<=u(N3S-B`;?`E&@o485i}x(|Tz| znfr>N&^@dJ$-uERmVLm1T$$$7WKc?NWP(p{3XRU>*3WFsSdQJT4;19TT$hIoWyhJ< zn~LY#uw0EA41L0&G2HGignD{vS;3-C@^fHSKT+F3Ngo4*<=??cD*}}a#Vt3fq=Rm9 zJ(>wZk~QrM<#m3fEL_frE=6BSAVc#5H`rvzd;<1_hQtLCsS7K3oqTRX335`UrM4SQ zi(Y}NfZq9)6zQF#P1GiFg8)uZJ)jlJ=&Yz9bQIIGJ`?Fn#i_yVrM@sIZV16BmS?Ka z@9DTp1lpydyACOHCV~@$HL}rHe^naU(2CJYP(c>V)xI$h(5v}fiH6?N@)s@=-2Qnu zJ zhzb;T|Mf_NMTf&ZHblF|*cQ+e7nX;pL$9iaAL^6IDC3zX#ix<+?}^ym)|GP_ec#D? zOweFKlZEbAFc_0D2#fi0q9cpGXn^0mYwrnYx43UEqUwYlh3U0C$Lk31o7i&Wp z-c4BNk<&oMO9F1^z^j9|YH2uZP)xm?&>-ugphk zKhEj~BQlawQG!9!BHO>brg-5Y0#zsj4ypdlFol-+I%q}2FFNVtj7>g6Nsm{64JzGd`ty#1P;S>K^~Al$7BIro!HF;rJ0vIY(b1}w51VC}DO4)ofCh=>P#HsJ;zfJOm$yQ$q1P0idsX3P9 zIqi;GK=y#?D<2r(k|N`s!Qsbm!h?jaboXw}u?~ZiMGT@0x7Vt&G@hijR{kySJqTtl zAb!5nFh451C3#${!I0THzcioz+qW%FvE5e=bvK@FN1&-hBj`F@1kmjiD|>i*61yr4 zw%DShjL22zzv5^(ADIm}-;{{Dlak5o;B-W5q%)osM>gW{5xecH!v6!O^sAP0N~IwB zI_5nVE3ztsQ_^4u6(t334)v;)&&!~1yy!4qpoGqTo}*-wxx9&J!0W++AWH;=zjyb4 zk#v)jh@aH1%dFsa80BhP!#VxcG~NyJSKs8Lr**!WpsJ%jJrMO3 zEtzZr>oD3xT;i7Yw5fY83kS|@HAl$%SO*S^jb(=^6Q2mb$NNrjAg5E9kMSwPcPE+j z8!HAhl8%pvL0#>@HTbve`>|j)v`{yDUkB1q8~B=@QUb4ceSdX~{rYQ8D?Y6wy58of zjG<3D@%x`o6r6X&wb+DtcBxZt&P_&(Mysr>s-{$IviF3cunK)qs_dS{*d&J{`gnrr zB6u__kZhKiwoAT#)C?KfE2h|2%M+-ct@0x{vM#P$IBF|7?rLBWI4juwP2>(Vnf)Xop^^?T!elni_!P7n@(2qp#s7VJN5?dwYWQGv6W9)B{Y>eOd&Vsvx-g?> zfC*|)F>f3QUl<6Dnzef0y|P@TF~G++gZ7b#fPNTpt^5am6DPr+i78ISll5q0ScSR- z^Yg&UAU-h+syHn=ey^`(OE%9#BE|!;Esat1TXN4He@lWIgHY+7#ia!$metCxzVrKe z5k_6k%pXJ`(8irPzm{o)_Q{aNjxKVWN}2z(O|tV>*CkbF;eil*E|etTl$a7A{Kk&9 z^3G|~I88J%Xpu@>(kS5MZuA4<$pLwAz1-(cIFj$GN43qGSv2AZ@vM`o0xep|pt!@M zV{D&5rH*1jjBnTvXr`Gdw%c3%Z?4f?w@f&`@v6epvF`rCvNbHga1RR{z;ur!D*KE! z{-^pAoH|ENGCZ{yoTs7ClQaV%!cp?5Axa!XscaOji)rmfjMuw};s8@ZFNL*+D7-J% zl6WbSMqK}yhqe2 z7QxWB>Et5uGM;TJ1c6V4+V;^TX=op=G#O4713n^%&WiE(o`D6)i58nS+TK~Gs87Dh z{CKo}*MK0tsf|579-vgjGfY@tz1P7i_Q9i(Oqc2*0Y&j>oswz*Q8at}1hxAorU>u! zvsIB?;l1g7wOewQfX|UP-7j8NdV>Kg7HIbSw;%BIgHjBNo5@3Hrvn3)_6pv{sl6rg zXSINZXoMqrR}|xOB^4}jA2=!flT8}%v(UU4cdWXYy0H0mF6lum8iXMlI3#eB4pTK` zi?E63K=_>swkh0$1z{Lt%AH4pTa+pws7@KUROU`xUYZHsOsV@fIKCvQTpBX{SSTnseBm9ck;#xBvpnO1Dv)3eWS}3 zJx9s7MgkV1C21G5h-Kw{7Mv8FI_&yrMrS4?(zDZuYl}fcO!BPns|@fC=5wN*6N6T zr^Unla;3H#jQ@Zn6-7bGmpGC1Sq3!a;5)YZb)JNgEm1$EdY234iE;-9?0tpB^4C~U zv(Izn-s$XeT)jrY3p~Lt()T>NBZ-@jyvCO(dND7kRvY$3o{+CRM6-BnZHITC{F>Wy zaS^Y~?S-)7v$yZOa>Oo<#l7lJeqs;&?L~FV7t!49A7V^iL&Vf(b|w9g8MDN^>R>vH zj|dive^sUrYe0HNW|4xB z^&6*{)I?EYPInxK9LD5cuiyPcX=d&gHFks@9{~Br2RVQREFDNZlC_q|J*<GrNl{&4L4t zh@b1Fh;8MqDwUu@gcFTF2GuXRVv;5t4)9IPJ8gDL!92o0;o&=DX}*PoYqBh!QIYbcJhG^MKbW&vp6r9fpkLHpnta^nSg$o7FC;ZbQFk+H`CgFau?P+DAng1-s#J{caBAkSv?=k18}Hw(QZ zUeUwdP8-cptV0`ppXy|<3NbusB=pg=(5PS66sJaPlj~pYSPepM;>gqi+*XE2Gu@I6+ z+y`ex79-aXGaWkmW4K7*7v&CJkRW~H8zph|zR21>00BwcJrh|m_qWM`Rv*NYc|?R3 zxR+{8S)tWzyU}yz=rUlZ{U&V`g&>TcP9xmhli1FgaK0IySF%wT;k}wGZ?nO98#kKGf`Dbr(-p>5DMTlPmXmm~ zA}A_!`z_$Pd#wgbQ2@O^rdr|s)j z4|j`yVTquBhz_E2%0w7`KTMmQeW5qt^24*VF$PR*D5<+}0H=?0C}r5J+eJed$?+7!U}c=SsjuA+|JkD>!u)ZM#d^bKHm_iU>UJ=xH*(WU*@<~LJ@ zFQ~FAfx^$kKz{~;cC{y_UK6(bJG%$td%RRe3Mmk?Daz(|_ zdABUF`pV2fe{rqnKC8$2`Pt!hA~Lt1XP+-k-JY--#~2A&jW_mB3O3ZwM*Rb#R)jOE z9F)}4Qivw^UDpSJJw-_Fpj^{z0UP`4ga!`xe@lkyV$|q_mhXxg?O0DFZ2L#Z)_1z5 zu-=mQU>==_-+V=%M2dS8-V#Gw^;7cYsuNkH+(|1oC|^yOw5?cW(&mqgnDnO%c`Etx zWOW|-0kVAB*X+JG&5%&EPP+4mrvs3j9HMl_6k8tk_a7Yyj^=3<#Ath4&Ra~ zvgkm*?BGq=6dy7o{-uc_^pql?fjn7ng082{cWe=lX){}oQ8*==y8+rRl7yPiC1HbVt#x-a;df=d6Tw28N-R`y3-Zv<0Fv?|4@LzgNil< zKiB)yU)4&;Sxx9m|DV;qAQf>0@M(Lle#=z7QRmF7LrIWA4`%25_@8K6whs1B!hx=* z&PMLLtF7!47;7e#m~ZCxkSix%u)T@DE@i@7w^&R;Ke(Q&vlLUHj;!LHp`HqSE{a-1 z0wFH@R0&dV8(}QwR$hMJ7Cb5rD+n;;%q@lYe zOh1liviCh&1vrRP>>RtTe6H+pRkNFS=MPD>7;P8paePx(jD~shJ{o~N1-(t(T}ioo z+^ujh&%YV3ncJs76-@s3a=(#`ctiMb6=J2n`afhczxf>%*vrN*=9}V+xoG6s&!7CW z@}b_{P?8JDI{QtUr}-x~j_EgxDet>ge18Qut}~HAGj^F9u}>xsqQdKQ!h?Ot*I0jB z(Km@2^7JjIhgf2B6%NYtA9A6ymE3GC@-IF~xA2ebXK3Jb8)~TPDn_5t}3K z5Q6eD0dz$I`+%>QpkD!fm+4pfQ4)Vf+UO#u0Cw|DAnkL{m-Rux-)=+%9(fUq%15~? zX9oy=?C8=$Z|%sX1-}R%TMtXz{W=-E+CDHa`llrJM56!BBBk|JfAAGbbr28-JABv9 z3)~7srJQXYI?fx`$v2M3?FqN^3}+DY$Q3TvhvQbHdQI1vS+k!|#R`k5SK>ke={_Mj z9>mY+5|d{}@34s&+giwqK}b-q*eCw1_qMr!>9@mNFi*;#^8-L{2Q*sZHw_Z@gUZ@r zO~qYoVEUn>b|pi~Z?t$Uaaw)F&=+)fPP{}D2=ROc5s?w>IeGK8c&hRqaZ)LpeEj@aJwv1)1B*MC0zz&3MS$YZP%s=c_^T;PU#<+BEBUiU4lwIA4a$&oKgb$C zI{=`EAR($XdN{8@CwSA+bIq=-1lY`Z2{7{x3f>0*xF;k}P#om&PyaW!Il^+Hkxk#U z`y-z-?_@%jg@X8A8}z5c!?0FW+_>sAjowK915*(;7RWi*P^BPn|66n~b9)Kj6V^Qi z{)FsR2!PVomVonXG*+q<=O6@tGk<%@);zhOYoqwH(a8ajiN6sFTZ4flfmSHQ&7=Rt znN~?gD)Wp*@a%xJ5IErnq)|G>pQ2iC0e8OEIN*Fu<|}_3;}D` zMmJgc8&k0RX^`CO%JOIWaVaJqlXLDP4Vh6EjGIUC<}OZwaskW)VCXaSdT(|NqKcR=Aco8yT>;Rw(c~#Z1gRKtmR&eS86b zJN^swG6EaVd=sM&m*;wSSs+d*F}Jx9$(NwtoYfFtB-?o4uucM2=z0a{k#xuCQ6Xv~ zcZQ!t>cTv4DyfWq#h_Gi1BDVWi-R>7(8{+##;UKBj7`cNZrC8WGbyi%-oZyP@;mL9 zh74n}m|IGVBx|#DiuWFrFa2l)8)6R zrF5-*CE;lUWgfea|XI5D$Z|KJ`Mtxae5 zGPyrJCcRm`G*O{bkX9()*rHB)g*n{j)e|NrUJ!mg6=@1nz5!5np+}0Yy~rYbZzoHX-_Y7`>l&3(k*{Xqd-zeR{|WgBf(aU>X61t2bHeyTCKW z39xVvoD+;I2mwrUkB!qn`#v}}^wn-D$pRl}%md>>1qp z0|McILY8ky)3(7Zc29+eH?MHaxB+K91Nx4bgJ;WC2AQw~W)ae^indXxM)j?D)pa-k`A7l!E9c;Nm#c$bB*{=%$$$Je9hu52Xh8ev^{EQs{rmf8b z+-d;M6M$;@&`3X~l4sha!G+Z{|LM1Oswv`{KJ@9{cC)BJ7p;RR(b6qLdgK}Ec(w1o?cD>0W7 zLO?2Y70v*J=rVW;P$A@m4!G@uH)3F|xv#cLhL`-8pXTOXwUW?PFk5ySbIj)-u)qUS z0@yO$Fii0ZwEY*5HBSQ0KOY**n!nW#`pVTPbsc&L-^S?x9*8x%D1B7>A_)&5akOaWeJaGY`A%e-gQYj~3*mc$*IMRjPn6{{G zR8}cU^al@rzOVW)sWP?hf!#pVdNeHQ4UrHVl;C^}q&R!;174t~1)2}j)>3g4 zCFu0v3=Dv*Cka735y8Ayg@J@1Xpc&C@WSc0fjmOYf`Lc^=xXc*0X3r+8%;{p%nHT8 zGp786nh zHtl$*dQzr6o9Nvr7e-ICe+^1tkf~S&U=UAuj)Vu+6;;mE_q!BKm+Dd`hR0dE`e;u$ zrxoD-T9YeQIDYgnXh+mrU3q`8kO!_p47vyXnqVd)`suT$<_gC#36d+s&AbMs{AY;v zB$4m-{5kL+6-)6uxk7oB%bpOnsPw5|9xvbcAw72OZZU}S8g|9R4ArPrCU#4lQKtTF zYo2FAdP3%Wpm5&fgW~bw3X zzMtL3I+TkX^GhUpc3wF?W&+2?P<`thVPT?^qq1aWE2grU5T}<1{x~GE;E&ZLxPqeUsE*TX~2$Z{`#NtfTX$& zjfv??qojXx#!vV(!{ida#^^>dPRDOvd^yd>-Qm}R#GcxBnayg1L-jaIK0)6!bKSpv zVxF%STi~33Vj5LYK4A!Qr+kX|+(RBD}@I`N?bZ<>2RA8)>t z(u)E4(6}+qzCbx|_Q+GesPTkby1*`s;VD-~UwXIDqxvFVDGk5<)yGxOIwPG);ZQWP z0`I`MU5_SA!znWhUA;%Q){8>_BUA8i<$9g7vG5-G=4b{s9V+e3&6{r;`jqWXvzk?X z{XZv9;;nmB4RmgT=<3rBH0G2-rI>cNW>offHkEZ|4^BqGy%=TsYd0m~&im$C6{br@ zQNMUjnJgU~GY?#@`{LB9e?GBko7cX?+AWfGB(j#!>yOmFJgRwm%#D3$9SQzbY5=jC zn~lxY&7w%d{-zvDjB19YIXS~e}+zvs=x$lJds||6GH5fyV9g2OX zteJ=kA47Es%qy2(e$Kh$h_^qwXPje3gSS1oTjyaLt|At3_IuK(&Qm|XhtAuWT zi#A!T&RmY;Niie7`kt4N8n~CNfM3^}n`wfX*Hr#CUYRKaI|x2zE{;##lXG{|afrer{|tXs=Vq;6;t?fu(h*Id?y9m1!9H>UE{ zp|*q2ZCaz4gnxXTIEs@-e3Vgqc=6L`>IU za_Oi=Kvo{-@W^wuETXnd`*>qkV)XZ@c@k7y%}3K!qNXN(I8N*QlCQA>lTm)SN1QoJ zOO5E($e7Y>r$11;tZw8)3R7%Bdo@*;A&hzw%;Q@hZ6oM!*`tXR&k@v`fP zj~atz(@|^k_FBi8olid>E&SU?%}eW5pJ`J(wZ}=sF$;DcrC`#kVaob897uV=cV@po z+7rd_ayh_o#d#@hiF>bF9kH?oyG1lgTr00j9RcQnDX}Nd7#XPrf8nh8Oi#ksbeknR zmKa)RB+ls`G5gis>DxDPn&|2gjtv0%Y+7!u>i5G3XO2iNnlr8vj zy=v23$$Z-FD(8X}F*uWDS3k*4GbbAgAOz(nj2*!~=smIhn<9SaC#t|PDcr{Y)i zrs+4Y&?wZEnS2i%S$^TskhyR?-K=i3O;j)MR)IOzlsF@z{^juCB@ zjMYJ>a;Y)?(p_k>Jb3~M9aaXcQs-YH}Lxzw(ri-8VW2qs&ydUy7Gye36u=Gfmn^yqQGrzMhzo03R zjj-jXNn3*qGIVAde5D5k)lmVcH^9jj1k?$!qIWbXm3GGuOr{n$D!}&WvXXom*|c@p?72wUG>OiGY~0 zIKA43-*{VLJ~w9$G7zQ??WnLD5jqmMf9G0AE+BT)Z0JF}xn7x^+Tn(lCmz#r9wDSIMwTiho&%n4}KgJtXwgY41 zmY-e}d0H$VE_T^(+;8)NW>?5ZVRSMR9nAH7?O?5#>|oNHypn0dWSfv$Vo z6p=J#y`@3EbYQoYjqX@FQ!J(i_QWTOxOKyeO}SjJWjR_|Ia@r&fs+0O<*`!SFH4>Z z`zcE$Sw&PcHZ%)1s+p@Y?fFier7GA?Qi2Dl6OqnaRc2$!@Nov@G32a_BGtx zDucTtN6j2NOmnsj6Msn+vQXaMu`$V#+qpg^mpx$;4_u`6-Kxm6Sh?C1sC|RjvX>T? zFBN&$@8EH=8bUx6A3K)w;_~QP_DNi=-?y|{%6CrI9yzKrMR_SiC~d1o>m1IEvrjZ4 zUjNlqBMB-+@o}MWniIM;7OE{4-fgL&XW8wY8S<_$TbVO*8#Kk2PE*3~D;>xfxLbIo zl=gu!&v9^p>pkT31;PuwvNX?;unmj8M}qque}n$wzZoL#`&jGT0d5$Z20DP30Z{q; zGV$8W2)6N~+ea5>fKR*BX{;D=#S@G^<79yhbH2&)Jii9Njy16ftYu_-0l3bs+hE>1 zsLB;^e+5ikx(^cr&8@)Y{w2UpP(E|&7}p$qR^_-KBtKK^db$-*x|hlJBSjniIW%7} zX6{%N*x1VicRDcifGq!J_BabG;Y4x$8njfIOYxQ8tq9!O{>G18vNW?im;9qLd?;>S zu5gY>qk?L?Eq*XPosuzOy)1Y&fGT2uPV7McGGV<)oAE+p$XbV5#@O=`=3BHqSFpeL$C!>pb?PFu>ZDf3qIYyGdCw5ZcKSCef` z2hwkuLsTiUUKFRt<25wMj6@?(54oDwmzbgQj)|u-S3kLoJh%I3^fvKA6TY{OW(f$~ z&8lgQ1ujOm#KxxNYRefH2=E1tn1U`KuJ+MEzvtg*x#rb2oA3m+7D$6 zGkL6DNlVKA#zZCBoP2WkIAfZ&{c1(Rdq!2dpbXKm4Yi3kJl>vm%*xhCT>VY zSUQTAu7gRnl7ux%xG-74EHLfqwgq^IrWKHkkf%zRRmS~WZ&bN?SNGm!^07TkSLIKQRaHv1t2njR?}FA$8{>6a^P&>iQ&c@W395NvO| zI=XMfCQiYL;gu~mAg`=cKh!rkNzZ4*nQqgQ#NR!liId}tP#|fEdK4>QC8|WyA}Lyz zELNEFsujDf%gCc6R3n+otb;fBd>c60yy(G4>MDLaZe`JVy)B&=MR!}yr`aCYXI7kH zLirKq-+bcixn1H|PG3@Nn&43qmUnexUwRP9dDLe3_6~ifWq9po6SyYz@ta^_m+ym(;-}KB9!oRg!_v)72MVbgrE0=$ z>h{XrM>!fi?V3h}Dl<1HF?#8H)^iRG!lf>|@p_ZtQZ1fOnsEiOY{f3aW2&W~Qr6?% z{07>Egu-BsiG~^NhUwz45wYh`Zir^a4soHkfC2pn?PBNLcyw+!32ogU)bp8?$3olH z-qnL{B(0@a&6C^Xl`Ww&TiJ~Bq;U~bYQp>stnR}a+G>c`g?+zik;OR5DX47omcTqT zl`5ay1S~beylbiI1b;o}T2U1{D#_ z>TbDH{HZeIjvC)qT8B6Oj8h$-l`JV*40+b8%kFp@^WZv6U{7YW#Y8VWI<|9=pgn0o zmrc8~Y=%|Lyc38i#t&UnxJly&3Wmmp9-chA=BmXq9X>|bB%wrjY|<_eG+vLX$B~#K zFt{62dB9SnT8o<9&_`vdp7 zG$dT85>Rw@*=IPZ1vGvy;VdP(c&eo zY$!~Q(TB`+y6R`*i9O28p%rg*8sLJ;5edU~y za-}c3IbGJAG?8|xQSI@3uC%2eyQiW~7^fx8l#ZR1zbMZ7m=7N)niFKbqlKnLF0ct7 ze3w-qa$_v+XUvNT@0otuh9^N&IK?shbS zwa-)!8LMwqvbi)EHEg&pkmD=fs&PW|pN`d><4(Wk+vNHb0V96}<-qK3rejzn{B}<9 z>)j?GgiXY_e`+71Td9Gf+nWmL{V2$AA*JN%T~tp{?k7?jBJM(FJCf=!<$M=^Ms$YQ zB#LT1l7k^?d&Jo8hfZ>YesL*#b(7u+e~OGmMkP;@;UCANdhjuyqemjlXLV2p`Vy*9 zgm|aWoHK}>^G{68zfQP(~+Em)l8zn;SGAXl7_^LF}`t8Q6s(SOqss6 z1XGfq1n@@c`JwE4qrLM%ok8lnGJEb;Jch-2t5-QzWRzH-Vw&t+jjLRJS#tYE^K9#8 z%SArz6=g|Pm5@kWZcVX;y{t?Xp;jx(xp-}Vhh40;lN2NN2y}M6%PJcAIvmphj8Ax& zf4;sEp91*pVW+mXWdkbnI_7wu2w+8@u1HgpM7UTBzGAd&Z_7>~Hu?T=BoN_S%LV5aeUh&4j-8*k3i9C`%SeJb#5Gy z+3{-zAdv&+7)YmtMe^-uN1koIe(kaOWOX)Vk`;CGa@@~&Y`Qt9=6p$Gn91Np3TI;T zFCje#GgA4@wOQsavKE~pJHF; z22t4JUl2y8x?1QOqTgCQ?OVaB-Sz~GpRyezqfK$|ck_o~i!E2AikDD008|Te>jgj; zKxHoAlkx;vug4mz890Z}-W*=4!myq2{Hg%|IzKe3^sf(bpL<2C*XX0M|9Kw?y?XFb)*e}C zx@?|Qh*-HWj~Jl}h7HFr%ZSkQdQQOhWKa(6`wp>%a`MQ<6qcXh~BYo{3u8 zZ%vcv5~QO3X#?S6I9%XH4yL-z# zjEXpL(J<^@>GWI=38NkoF;wN!f-&+=uShnC(qaA!Pm=YEYZuDOC>B-+-W)x3%y0fF zH%n|`C%He&^MkTZ+*2Nf#l4>@q%yLxExRXc*IXmMhzd#Q%#*Q?t6Q~S*2wR#QIe4L zEy|`uw*@Mb6poS2D2RcdLr+0BFyf~E>;fa+Dr33!ln9525(>+{iEi^kM!tlEj~OGZ zmDA-9-g>HxfXEo zA@kU&s@MFBXg;08#~`r=K||x_MdUk?g@)8rRaVTHjOIle6LrBhmYA5SeGvSxZXeMS#PYheBQtRIYRd{b%3VD+-xo?t@erv zU#4_=eJ(P!Voo$el8r0X<*;hkEFt1#@{)YM+#=2_S73W!x%)whXaZkdJVknw%c0JQ z_kFbJvU)tFcp0H}Phpv%pz5$cB4ytTUim-&T1!tO8M>t_{1r^M2mKuE2|M$aDLh%x zO1DWOcFt@_dI76S-TohAX*BM;rdv&%-rqlwl2^Jk@#Cz-QSk=yN=x4K;2EdW+wqn< zmX3ybY#tVD;6?wAEW}Q6Pic<$>y&t*I$<+7o~X8%a1csovM+Nj?ex~T<-sJGt@B?! z=?z2&dR}gx+AeirmI!vAg|)sTtpMQAZb25@JQM@<6%|{NZ|5Cc&GcVj_wXM!_+gNu z$NP9_)|a1EK*#52driRU|Jx#9rFrJ`zjn<#2?&>eUuD91e*W-`=}`p0A1DGoe;+nZ zU2&+9;VxoOES!vSr0OzcOw>mU&?YR6Mpxn-_fMoTwotx=@QlYArzt*Y|&7wcuYVw~(?yRTBK73?!? zd*Np9f`n@>XekfYCu#mJ9EZ*5=mqa5dUDW#jdxS18QNwDkiGVuNa!ACIa37m~|3=tyW z`3ICffY0dDy0CAc!vIq%?Ajg5^hQ7v@X`c!b*}*KYe+DC76=O_G8S$}&}lXRU&mDU zbie(8WcUyIfEj@C2;T1jyw3C^R;43}Q;3JG9+v0FL^tOtf8;g%RsLz4z}K|$V^pp1 zsTH5}78flDAbkTkXx*R*E;vp+sEx3cj~P6AeDcY0<0}DrlFqjQoX=a3{V4$ZW*5Zh zE5N$Di}2Iq((|0Y?Lbr5AcTDpZi5tdIvR#{pZBG_SvLR* zpM%gJKm(V4?4J+~z3(3&*YK{3Od@o&nWOJW$^ox`z*}rfP2iaC=`}+Db)?U5C_Mmt z@aF-E(GTeX3F#T&dw@t`wCLr1t-T_TbhI(GaNv4cd}4sO&TKBgtAmwadMtVY3TIIm z<{hAQxsh_Br2FToYQmCqg4h?Tw@u1j2m=hEQ9=L+0?YD(Hn|-&&Yf6v`iy}zq(n()b^!CGCF zZu-3E4>8UcoD*ih9ugTdD8^UQbzorGS9^`vkBS-(Xg2RL5|TdH)wAfHEC=Z0m#|yj zO#}grJiZ<54BKe81{v^h{DS}j(o5FvA{7vER}6kjfcUa80Qs1K1Yj-zNdLY9=k&o5 zTh#tUYarsb-tV*hooDv$aQ(jElk!`$555Bzn4mHMzWOW7Ezu-bEN}gSbE~MPW^4IW zq9Ks|Y^L)G3%s7<7sFc8-hH|^R228#ffNd6*S7W$pw%tCCrs3MuJcQ?v9BbwTEJh_ zPsArAm1?-((Nw>#vG^24~|^dv_k%%oLkTK?+(t<+Boy)R5G3EcL9`ZHZwf~HZhMCUmF(I zKDxLKtf8_pIF`N4-G>6KLttbdY5)le&`S{Rn#J~N8Kt;kdGLEq$swS2>Z4s*n+(DDFEdjU7WF!}xg^aJwr9}I_c;#o1 z#;H?>j1CEKnG_Zr<@kDo^Id3#gV6q7V4kCsW9`4|zYnoS*gU{ukp@4Y< zL$Sh(l-0@!m+UwBr0QakD7`cxjeu{Ql1=%e)@7Lgp2)U=5eDEo{ucbjHU!ApC71^Y zFTfvOwfn-p&k4S7OQC2a7w#~oJ3$!cEoh(H?ij$l_HCUaA*{9{6tOz>1sb2*a|DoJ zS-t?$6F~9(0T}-Sdp16G|f`C&-tmk=Qs<^X3XFu@6A`GajQ0Q84fq=WzyvyTehpeI8>!E_OL<{QAk z!d8*6M5wup@PA0vAY(}Wktp+>i6{c`5$onBLAovfC@q(T;HaBFz+`w2W`Vt;!a#Vi z3b^;!0mLTYZCNHbl+%s7=jV;bnTp`%cI)S}`4EQ)`K11Eb*cCdHQx1M(LV@W00j+z z`!J03JKqkFjs*0;NZ-PuHbHLe7x-90pw_2-+#S$WCro0p3kHgUK~U=52T&KCM=JI@ z=c7a4>7;0#F_y@+Wah~$f741vkWuk(GBWTzM+K1KGT{NtV*t)H8nEaFReTUaz}rI! za?WI4;8VIp@1p*uWbqV){_m6svwK=ID3zzwW@Oc!@C{<1#4PK=#hc{%RSuUXTZAUl zL$ic|<_NNAZ+72f%t-J-l05bX)4QA1D^m9m;42KANS2?Lq4zROKMMZbOOc&tiRvld zjWu8LP0G{a{ats4ArHUcE^iO8KL7=3!FoEMVc-v+Ux589Ko zU@VO{XdZ1%& zZme7=z~BR5yaZ9W1l}TZ3<6G@qO^yxlY!jp z(I3a0EcrU0o;!j4eW*7J4E~}E2JV4DEV{ul2_laZzQEfTH`Z?I;nCs$-lQ2~0N5AE zq(FNB^;|}U3vA(2ig{gLy*b$Swa*P-Kz_RFK7&lIZ9IdRbkDc$H(F&FTW6qDlX@?W zU|q#E1*Jk<-J6)6`C+DC!1GA>%%n~C93ruV?WHSk)dBFZ>P1iF!Ov2py2 z-==2Z5i@sqXZ9ilvQy0F zZ}YC$!_hF#ur~2ChDnwCf;{C5%k92&a35E*J9a;HAYxG)+ z8Di0ky=%l93e5Cdvk5j--i-jCz+0;_`_<< zy6i{>W1qm~8}lA5wt3DGSLCmmU;p%iRIXGL$K>Lx z!qk)0(*@5O?B(4C9FLBav*EekBju~7yc;XroTt$W5uPVPSLt*wPWthV*wFbhQZ%HY zE49Bo{JnCtlh7LC`&~%~oraEDG{RFG2J7J+>dZP8L6vHu^{*6r0 zW63y~G;UVR4$V`3^IEh8`A^r?Se!-h4Wa(mu;jb@-kCKOeu%-tWYCN!cL(TekB z+$p~Ihm=+!{vCaea3@ESb7Av(eAF2T=8CO#OFgw*s>$lr_oxSdSb;43XTr8FKQXSr z=4%{I5m#~}XRUVHXj*;f2aHk;_|%~1H_C=KXIRW?#BbC^5aVi1i$jQiQH<}!Ary<* z_Obg~GMWvTW1>p3=SZnL>odH^Tx`(M5ay_Q)1uk^f9;)hOkF{@=<#C3-K7+Y7Ck^I z2Ps;dV#VExyB@4SDN?M+K?=0Ewm2MIibHV@?(P&h9QNgV?}8eTgq&D2!-rTP3mCV^TQJ)0Y+fzszW`s1+%40U)!(7LRrm?#2{OIwS* zu@-I1?(y5USh`iW25YlFlee<1i6fMi6AaZ%S7S%im1@oXMzOl6MsDQzt>yYU0uYGT zPZ?2WDJA;iGE*+n04onqv*^`Cn%2air`GBksB24PAn&v&>gT(KM@w0ALTmE)? z#&q+vxrXqd#V5wK@*60>Ii%N4emqt1ZHkMO?UN5>6z~*FBOCtVzJ0cBGi^#E$~)hu zeMtu)%8lfHZ=8DTS6^?}5PVDXv3c|>9oqA%E&3lNKico&$hJk_y*OoYT|q!jt_jEAT_nA znDZBBNFFD?(Da;4qxBY9c=0(!ZK74$+Fo~4OCROMl0Q~PK98t!>5o+{V@+uWYaXej znmnh)!fH&~Q{?`7IK3ntzsKTe{W!^LG4_rMdV`}4+AX==+c#JgVT^-ju)6LHZ08Lh zdU<`DCPhoaD6NQ+^wiu?tT}8QaVWpsAC2HH%2;qB%vqV!H_y=H$&gZ?N{G-(>EEm( z+2;)Q_7F2A5CgkT#sO;<=mftz5XM^ zH6~n?Ft)-o=Lb{i-W|$w$-Uh(KDnQP*_{?bAa{(uCI~_?3*hMi5QvH3yF6b!;FkJC zLIK$#RB7*AMi87qo+Ai*I-We3l2P4*!;zpl2*d($l5y0!Ww!Iwdzo=^6rJFxRgzd4 zp0=^rxU6792jh^>)1^AzF?3{10(^!5FLtmVx~~eLusjA}wyZJS|6^6}@@!>G)~4;p zR}22qAI-FP%;yW7m0Qw5N^Q#`U%=_yH|5zcPJ}Mrl1t9p6`H+-THn zQ;0B-xL3Ld?roiuT|Op!QZ@9v4|&^n`hDJi{zK}p&@42>L7T;m<}LnjGaVh`DfjKZ zS05vT_L&uK>Mf4?&j^E%_X()LPA9N6L@coh!T$>o-{%fIM6F$4009WdZvb3|1e&}7 zerS7_pm@?`G`($J-|+MDsV~VEq5N3wO5$FAu$&7i<-M7O@~>4@*%%+P&d^pZCh1t+ zg5{mHsB!ll098PpAdkRpZZa7S7OO%oRL70+keA82MZY10fC*&$oL9}V}bT5o0> zk0Q3Kz%&b~nkHVHe}aRia#!BCxR zYJ9Y#0A^i|Q%$^nCc5f7TeR^V9OQR#6p6Sh`g?z}T-_#?O1M1H-aRvdp7WV`8MaSh z1-ftrpS6uM1*=mNGX4R^_5fMFl?DJ6h4v7rIs&v+KM(OoC`-qKJQUyd@f(6L8p;9* zrD?eOj9uiam5a*cAWi$vuBStBV^c7bK=QxH#i+Vf2ji;kjK<#EEuYfP!b9TrdFRc_ zl$)ww*o8;c&imuVD#?Yf^=XT83+v*x424po-ulZt{~?@OymN-uw&I_~yM`Ih-ZC?% z5tE}Mk@{g_#_n~fp@Jknwxcy2seaRv4(*pS)E*kz=yl#Q-Tsw%%rUuTuvj*T_5D4R6~d1wdii~BQ-YOIo%gby3} zY1N=@doqRg^sg1EdcDZkeYo0Jh4vpYmhoA)X=jPxFCy>^m57XVpBf2ZX=I`3Hj!{5 z$e6R#K~3x~+`4Wy!#xX9g8UZyFUG0$M#Abys7Rd>9o9(n2$w#V`S&ZrQS|jW1WgT# zw}wSjm?LUXGQ4RyBcC*s)TziBZ89G1@%ykuOA(!G6x?-@wN23fM5wt&FAo1boUJld+avC7V2ZM-FCPv3#PGWK>%?zfRZ z)={!k%gUng2l{=Z=34ZkMCgy7Ng8KUgCQJHnezn}rU@bQ-i}3KA?=O2;j`Rja1Xi9 zl>=u$F;yB`=#y7W@6^Gn!Om8dT2vlc3~8FTLV`IKJ1>k1Va`C*YQ-ZY$7 z_*2u6H)m{@&6+J+JB2ZJ94_!( zAc)(CFD#CWO}F2Mos!)b38h)+g5q>t&AX*)}uU0op( zgu9aBiD9z^eg$;!<>jXVr%5mck%rn~SHz}Yg)b>mz(00(iH-4o?+pvxor9W}S&$-t zShzLq&;a;1Ay02jO$Q!iN9}>UIkuOZkiZ~>daNAn^Hkx3nG0N%PJi|aiSdD(3Zbe4 zjhL2|4*R(bD(JfOLx0PyI~WsV=w>O4$UP{uiqeCByzjtQDQq-Gk)rrm1sgwcID6UO zZscSmc(6?#P+A)YK1C`(P%yvk(B#m3nX(m0_1 z#IUZSCxOcPTHN(FL0#R^h-Wq#T_SlJ*ALJ0=ce2IcJ8DswdZKDC}e*>(Tl2d&8K(^tzcG+77gdK{CMX~wVhpj|3Cu+F-T2SEbFEy>E`kC=-8;_yo0jo?c@5}++*4;vm7$;8g zx%8JhC;CcFYF%RXm2K(;YQp~Mmw8F}ARn(Fn88?hNB&S?e>1cOef-;RyV}vlch$Yd zIu$C%W?y8Jc~lcKPY0|7w~Z5xaNlb5x4O4tPpgIfS}>xZ_-;IKp!AMqGCM0mjOuL2 zEuFtFf=!h)Yc!=|a-0{W%40>rUydd5J#n8mu8XZt-+}s6YYA&pX0b<*^>d1r4!Psn zP+n7ys=hHX#WB?Z4cKh;*E!##_h=tmH$L7)W!)Rrj}$ z?|&8ikoY~`*7{f>`$-YgPWfnPGR@yNI~_bxfx}|1xcy+8dobw%IO+_@FX#@C^-5_h z&>pya_=1yi4!7b)UV$D~YYKArE90_7Ui-Vj`zcu~cDe0g+~v7oH^op^S^pS(iLY@N zDqW|tvi>8oYAJCbLfY3)_e`A$=G~|>SpCG1&!ql#?YUllV=eHB@sz~+ZA&tl5WoCF z3*n0IU;gYz@D_D}nn~;-H-UoQdz02N5p^yRCw2w`Jy^RT7YNM<3j+f}H}- zS{E~qT(knxo&Bq?v54%9Yw|oWB=lV!;XJT&33$~5-FIWmz(&?BV*^fJ(7pnRLX+3i z1-QMzzw$(uqut6yZ!qlN&f$H}u>>d+iXDY^;CfdjVGO37Hg?-o=`Q5Md|X}ok; zT=pdL=F_DQv)e73+e%$Ec>A3-zMc*mOIe~{%}g=u;RAuL_hEvLKw=_=CPy< zm<^GssU4yZN4zC&P5seSt@!BLvnp^a3i|XaBy&yi#hAnsE2s(?WlN8kC(6DUc`ejN zOSOcJN{^s(D2G}%yINc{~g8n{oI`@!{_!Z^y`W_VFxK2{$$_X}P>FIv4Y;IFE7ur9=vR zCZh$7O#+3GCg~TNN6Z ztUtpVyb#U({8#tq^9nZCEPbi!?0~G_;t}OsPZ;#MQnd`{PTgKg$6@QuaHkew{X7Q^ zWtUc1+X^NK5^L(G)$VBVyRcD2@dje96R5AXKwFs5$(cftmQG*=J`LV z4#cIgJO3EkTlKQ=f=KA|Hr`rGq!WHDwr zIj?DHA&InT{P4Y8Gn4p;pZB=A(Oc{KaaVWTWN6R$TZ3n!g0tD)ns_j^J z&V?P^!*f&44HO%ml1XJx^Z06Y=NwZk3XUo)g|TCYv6@8hBw?>)J!%DB=Ng`Neqr#y z%VD8Oz~A#2_^m+ywkUcS;oPa6_>j677La$9{`g{Ekkw_5l0R77w+QN}kGmxgyP$Y9Gme1+^BDYS;;QB7aQ2Y&_4H-whCDFJ3`B6u=6!*+5Qk7DzP!xXU zoGT^c`BV_vJ)(5-bpxAYK^^%{-j zh?1dN=IzABEhQ=(E+!81qGEchK#V$-%-NqM{Tm&8>O@z9z6INAA9|_Z{h&)Jl(bxG z^h`^y&Tye|<|4sS%kt?DarScIt2It?f5a!urMtC$;_89WuvuxQ9$l8Tc%|uY8@Sm25B>&ia`{j4}LB`(CLy-1O$(T=G?Wc$Ew)~UVrUdj3$X#iI`o& zpnD8q#hDQGe1^HLUd2|-R`PhvZEkBmK-7>`ribRy0A%R~SQ;eE6#EG)BLE>X*5r^q zyD*E)zopkc1fBOMsK5>N6?l~-pb_B1eGEzY+?z&92PEq*2)Jhas5f({Ktp5c4r)!+ z&D2%*5gPAFir_?}$Wxj>raGWJ#JCn+?JTYV2J^w;Y`;(YavbZ$sctoCU%Mp!q zbXa_Sxq?Gh#UFo=pt!LQ)HjyQQqWrFoI=?zOC&)BOpZKauLoY&ZLz#g~`Su0o(TK5M{Rpieeru^wX9F>l~phT=}j0TlNtP zeIuUx1yGqymzHO&lXm(d<_7&3ckfvrT^e@KFN~^J2|uWbGh@@4bHMO~C{={HuwrNzVG9ymvcr3xKl{oqE|YfLbo5Wg ziv!x+3S!&2n>ojvl_CF8c=;=V}0 z8{dW{_|>%gT-Uu^GR`Ew`hm@8;TJMdZ{ynhI{dCUP0@Z?jG~V1)`O;;Kh^C0H&yc+ zmi!OejmX3=>w+~%7oHvnNoo#H58(PH;p2^ZBBcMPNRASbBn_LS9PcvWSuXBn73q5W zSC#*z9afM($#`>F5bhJx6Kt_I_5y7a=OdV%Skhla2CTO<)_%_iARx#`kG~yRZ-9)g zn;VQuv;V5H!uw*G7BPU#p>d-Lm3$kA(*B*nEhg0WU4m$@mP8qYn^w1^LV|CC3%#-F zA;zP-&0=2AeqrU$oq3VQuHXzI9CSHt&R%|wS4rf(2wdw5j^r?zTHWsS9{>!;Kp@T| zwe`3c2iWNP2evgjTE1~uN*H%#*w)Z~*$w$sk3DI2VC=xGq^sHV?D(B~??&8u$$6OK z#g)o;;+S=@a6(GTcEYnza3}zLZUz{y0an6&fao7U&Ef+vDH2Z;9wl^A9yRq4VV-ZCBhfo>*WpXYel~CA*hK|6ik$SVhl#Pxa$E5M`%=?#4Xt)I^%L6vW*knWa9|Kt~f~| zCMwuxqS)h)*z(<9T_D>$D>;pxH&G1%v?AWG#N=H`GICzXyM9ni=*3pkREzg>%u!PE zn;Hp>89X=wGVk5kbpQL%O6}NzAj#{v zLMc}dt~Kv;yoZ=XG#$L@VRpg;lvIDsUh-KM4-;#HkH)B8AIGY{u4?!xt?6=g_g1Rz zdgZ_qSO?72lbD#bBU2yl)v|i`e|0Fj6>a zpr$%2YH=g;<+ja+$Pm*4x|O+_+NATVPq{+yqxQL-IKPb4sh0z{hN4LFSj+YKi}33n zSXxyPP{)3Vg~~YZ^%#h9okI1;fB|qYCYpw%i!A zc$QQAiF1d%$Glno^ISWeGmv~3*Foy^vn7w^=kM1ZJkR#0M+5{B3dlQk7cUG5d}+au zk&;irW#tcKtGK}h@^G8_gWCD}(e=Az3b;Ua<*M{zdH32P)A4nwqP^0FtPD+ngMr)BBWu62i!v4lgFWL{f3FQS0Y4;=lTQ&Mnc<6a zSH!w})i7J|+3}B2mZA!Fpa4Jf>6oetwnS<=$Gw$B{%I~Wog)yJ-$hS3P++tMEH+w` zlNmHA8Jb>r^^C>4AxIqc`s8K?+jpt>HL6RYi9&h9EzZTsr|M&=R>BIA&m zW4R^QPv?U0J@dSiX%AsqoS^)uUUc%X40{P&{P9`ouQbeMUM74|`R|a}>nN0QZLy=J zrGTvmb>%A`SYYmP(Tn^3U4pAt476Ou>rt%TqY$vz67y+Lv+U~5ANr5EUEM27NZal8 z6aU-2caotoRreC{l5tk@i$$Z9w#*AE_i>O^I|FCrr6e+*WPChd^c??a|GjKLip=$0 zGNnP$?6%Jc*zUd;ipK*w0#Q1v%J$Lmq-wfPVP16GidY_VMCFH?v6o{W{H`#r&> z8Wyg}7#G{0D5fhPFHR)|?t*C_(-9_W zHyUf3->2vrJdb8VIeQCq_jaDPH3u&vcv}5Nv~T7fme|+Ukqi0Iz7zGV$P_}sGQ!Yp zoZ=?u;{qc!);|Mxnp@{Jo$!bGhpiE`sEGQ+AkL9|4I-(cK$vB7a#A= zlf+bx*J*_{57djwm2k^9_!y(_K{a_-ymm;PLMN%lR7-#JER8Ar{B?nN5(G0x2B9st zDR0D2T-)C5`2)jFwkz3j$w>SlBbvh^?_4d<{qp0tqz`-5EPIoEg)Mn$1PIR>~f|)PWha-*gC^IhCioQ-c~dA*qMIb?eEh+4UQ{A zv{$zklo`4g?w-()U>}y@>|=9w{LUwR$C*UnBU8VV2gC^g*Zy+8@k!sWp>M}><8~u} zwfV{LhUM)>8ubXHI@K6s0_%2j8Hm*;#b5^K=bmX%?(Z+bbTHPl?B|n|Doc;s5{vc) z5CUb8X0GbHp2O@ufx*%GmgR3JkIoWw_)d1TZ%pYN0NS+8WdjgQTi0SF9gJ{*x;fAV z>4MVK6N$_nbH6W}ts3O;dEL_3SH~DIk)vnqclUbqvYQZ8vR;4(JG8`~uWHgs8R%WQ zr8EF1{9}%A7BiXZyg80KSm$7^G@*Nq7@B@4ItIBx97y!4OefuDN=~wgf{~dA!EK1U z!Dv>v$6tx_yD`V-x0XI>srGt$ex^)ThwY*>iY^L;){a{`>{rdnRq_`7dh#Y#*TK21 zud+{0+Jd$E>+Z}(;LDhoA}8GaT#i+P-uG3e>|3XUP*WG@U9mu)iO=v^llC&m(C1eZ zfwK*If1OPIXW(kIrkDQ%ZTT;s^z!gDcYkb>kDaykhySAej|cxu z|G)e8AD#P;n*UedF@DBIK~$PqqoG@W;rdD@g)fIJ&j-EC8f+JErpqD!elBe;TA}}X znpIlv*~#|vlamt{a2q6lw;#T7R+g)I7V82A0wpj8umk%ALh3CT)Ir1_9AkN(NLbR- z@kEfz9(=|8_L*mPE2t*t4Dq>tXtHC}jcj(nqO&f_23vp5tTsliJJf8p8_JV4dP8xN zm{x@HuruF>{n?%}ml~c|I=$YgZ=NtOig3;4cF}LJ9Z{lR_ZpWn?BZ8}ub--(sQMpv zX}#4pcAFB%vwrh8yVR~=&?H>?_9R<8NC@kE(98<<3Rt5_?HF#U$el!0kp(S_5c6? diff --git a/uniresolver-plugin/docker/local-gem/oydid-0.5.6.gem b/uniresolver-plugin/docker/local-gem/oydid-0.5.6.gem new file mode 100644 index 0000000000000000000000000000000000000000..dc64cfdac92616af2149dc07fe7617dc10aaf5d4 GIT binary patch literal 47616 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

b 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�`%9+aMZN%}0YoteXVDN<{)tGsBe6-MJ)33-B z>6b_u?y5nn=`vgBve`rWju@R)VljwiM@P8$xJ!JTiUbe&Cwf;)K0Q zDTqrwif<0F)-~mjPQb8|O?NQP>71;OUv%E^3C$iTm*!r@qn8m;I$8%cSKw}EA&`;& zUS`K?G5yGSCs*efj`D#|P`HBr@@B0dWW1op<(tUcO}^Z<$;iOHh{=g5(luR4XQK6Q n9l