From 0b8fbc70c34e71d5c6bc278d447bd13bf611d5a6 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 14 Dec 2022 19:27:42 +0530 Subject: [PATCH 01/51] removed ethereum plugin folder and updated default client config in client-config-builder --- .../js/client-config-builder/package.json | 2 +- .../src/bundles/getDefaultConfig.ts | 19 +- packages/js/plugins/ethereum/README.md | 78 -- packages/js/plugins/ethereum/jest.config.js | 21 - packages/js/plugins/ethereum/package.json | 48 - .../js/plugins/ethereum/polywrap.plugin.yaml | 7 - .../js/plugins/ethereum/src/Connection.ts | 138 -- .../js/plugins/ethereum/src/Connections.ts | 145 -- .../ethereum/src/__tests__/connection.spec.ts | 97 -- .../src/__tests__/connections.spec.ts | 74 - .../contracts/SimpleStorage.ABI.json | 156 --- .../contracts/SimpleStorage.Bytecode.json | 7 - .../src/__tests__/contracts/SimpleStorage.sol | 56 - .../__tests__/contracts/StructArg.ABI.json | 43 - .../contracts/StructArg.Bytecode.json | 8 - .../src/__tests__/contracts/StructArg.sol | 20 - .../__tests__/contracts/ViewMethods.ABI.json | 334 ----- .../contracts/ViewMethods.Bytecode.json | 7 - .../src/__tests__/contracts/ViewMethods.sol | 136 -- .../ethereum/src/__tests__/e2e.spec.ts | 1214 ----------------- .../src/__tests__/helpers/getDefaultConfig.ts | 45 - .../src/__tests__/integration/.gitignore | 3 - .../src/__tests__/integration/package.json | 17 - .../__tests__/integration/polywrap.build.yaml | 9 - .../src/__tests__/integration/polywrap.yaml | 12 - .../src/__tests__/integration/src/index.ts | 315 ----- .../__tests__/integration/src/schema.graphql | 164 --- .../ethereum/src/__tests__/utils/storage.ts | 53 - packages/js/plugins/ethereum/src/index.ts | 460 ------- .../js/plugins/ethereum/src/schema.graphql | 257 ---- .../js/plugins/ethereum/src/utils/mapping.ts | 142 -- .../js/plugins/ethereum/src/utils/parsing.ts | 52 - .../js/plugins/ethereum/tsconfig.build.json | 9 - packages/js/plugins/ethereum/tsconfig.json | 12 - yarn.lock | 176 ++- 35 files changed, 142 insertions(+), 4194 deletions(-) delete mode 100644 packages/js/plugins/ethereum/README.md delete mode 100644 packages/js/plugins/ethereum/jest.config.js delete mode 100644 packages/js/plugins/ethereum/package.json delete mode 100644 packages/js/plugins/ethereum/polywrap.plugin.yaml delete mode 100644 packages/js/plugins/ethereum/src/Connection.ts delete mode 100644 packages/js/plugins/ethereum/src/Connections.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/connection.spec.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/connections.spec.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.ABI.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.Bytecode.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.sol delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.ABI.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.Bytecode.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.sol delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.ABI.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.Bytecode.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.sol delete mode 100644 packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/helpers/getDefaultConfig.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/.gitignore delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/package.json delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/polywrap.build.yaml delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/polywrap.yaml delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts delete mode 100644 packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql delete mode 100644 packages/js/plugins/ethereum/src/__tests__/utils/storage.ts delete mode 100644 packages/js/plugins/ethereum/src/index.ts delete mode 100644 packages/js/plugins/ethereum/src/schema.graphql delete mode 100644 packages/js/plugins/ethereum/src/utils/mapping.ts delete mode 100644 packages/js/plugins/ethereum/src/utils/parsing.ts delete mode 100644 packages/js/plugins/ethereum/tsconfig.build.json delete mode 100644 packages/js/plugins/ethereum/tsconfig.json diff --git a/packages/js/client-config-builder/package.json b/packages/js/client-config-builder/package.json index 9a2abdd313..c876e3af16 100644 --- a/packages/js/client-config-builder/package.json +++ b/packages/js/client-config-builder/package.json @@ -21,7 +21,7 @@ "dependencies": { "@polywrap/core-js": "0.10.0-pre.5", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.5", - "@polywrap/ethereum-plugin-js": "0.10.0-pre.5", + "ethereum-provider-js": "0.1.1", "@polywrap/fs-plugin-js": "0.10.0-pre.5", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.5", "@polywrap/http-plugin-js": "0.10.0-pre.5", diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 5900fbfdac..aa218c056a 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -4,10 +4,10 @@ import { IUriPackage, Uri } from "@polywrap/core-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { - ethereumPlugin, + ethereumProviderPlugin, Connection, Connections, -} from "@polywrap/ethereum-plugin-js"; +} from "ethereum-provider-js"; import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; import { httpResolverPlugin } from "@polywrap/http-resolver-plugin-js"; @@ -49,6 +49,10 @@ export const getDefaultConfig = (): ClientConfig => { from: new Uri("wrap://ens/wrappers.polywrap.eth:logger@1.0.0"), to: new Uri("wrap://plugin/logger"), }, + { + from: new Uri("wrap://ens/ethereum.polywrap.eth"), + to: new Uri(defaultWrappers.ethereum), + }, ], interfaces: [ { @@ -66,6 +70,10 @@ export const getDefaultConfig = (): ClientConfig => { interface: new Uri("wrap://ens/wrappers.polywrap.eth:logger@1.0.0"), implementations: [new Uri("wrap://plugin/logger")], }, + { + interface: new Uri(defaultWrappers.ethereumProviderInterface), + implementations: [new Uri("wrap://plugin/ethereum-provider")], + }, ], packages: getDefaultPlugins(), wrappers: [], @@ -82,6 +90,9 @@ export const defaultWrappers = { sha3: "wrap://ens/goerli/sha3.wrappers.eth", uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", + ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:wrap@0.10.0", + ethereumProviderInterface: + "wrap://ens/goerli/ethereum.wrappers.eth:provider@0.10.0", }; export const getDefaultPlugins = (): IUriPackage[] => { @@ -97,8 +108,8 @@ export const getDefaultPlugins = (): IUriPackage[] => { package: ensResolverPlugin({}), }, { - uri: new Uri("wrap://ens/ethereum.polywrap.eth"), - package: ethereumPlugin({ + uri: new Uri("wrap://plugin/ethereum-provider"), + package: ethereumProviderPlugin({ connections: new Connections({ networks: { mainnet: new Connection({ diff --git a/packages/js/plugins/ethereum/README.md b/packages/js/plugins/ethereum/README.md deleted file mode 100644 index 545dda0f0c..0000000000 --- a/packages/js/plugins/ethereum/README.md +++ /dev/null @@ -1,78 +0,0 @@ -# @polywrap/ethereum-plugin-js - -The Ethereum plugin wrapper allows the Polywrap JS Client to interact with any [EVM based blockchain](https://ethereum.org/). - -## Usage - -``` typescript -import { - ethereumPlugin, - Connections, - Connection -} from "@polywrap/ethereum-plugin-js"; - -export async function main() { - - const uri = "wrap://ens/ethereum.polywrap.eth" - - // initialize Ethereum Connections store - const connections: Connections = new Connections({ - networks: { - mainnet: new Connection({ - provider: "..." - }), - matic: new Connection({ - provider: window.ethereum - }) - }, - defaultNetwork: "matic" - }); - - // initialize the client with the ethereum plugin - client = new PolywrapClient({ - plugins: [ - { - uri: uri, - plugin: ethereumPlugin({ connections }) - } - ] - }); - - // now you can invoke the ethereum plugin by its URI - // NOTE: uses default network "matic" - const getSignerAddress = await client.invoke({ - uri, - method: "getSignerAddress", - }); - - if (!getSignerAddress.ok) throw getSignerAddress.error; - - const address = getSignerAddress.value; - - // Get a balance from mainnet, by passing in the optional - // "connection" argument. - const getBalance = await client.invoke({ - uri, - method: "getBalance", - args: { - address: "0x...", - connection: { - networkNameOrChainId: "mainnet" - } - }, - }); - - if (!getBalance.ok) throw getBalance.error; - - const balance = getBalance.value; - - console.log("Matic Signer: ", address); - console.log("Mainnet Balance: ", balance); -} -``` - -For more usage examples see `src/__tests__`. - -## API - -Full API in `src/schema.graphql` diff --git a/packages/js/plugins/ethereum/jest.config.js b/packages/js/plugins/ethereum/jest.config.js deleted file mode 100644 index 4f1fe2128f..0000000000 --- a/packages/js/plugins/ethereum/jest.config.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - "roots": [ - "/src" - ], - "testMatch": [ - "**/?(*.)+(spec|test).+(ts|tsx|js)" - ], - "transform": { - "^.+\\.(ts|tsx)$": "ts-jest" - }, - modulePathIgnorePatterns: [ - "/src/__tests__/integration" - ], - testPathIgnorePatterns: [ - "/src/__tests__/integration" - ], - transformIgnorePatterns: [ - "/src/__tests__/integration" - ], - testEnvironment: 'node' -} diff --git a/packages/js/plugins/ethereum/package.json b/packages/js/plugins/ethereum/package.json deleted file mode 100644 index 8c2b26136e..0000000000 --- a/packages/js/plugins/ethereum/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@polywrap/ethereum-plugin-js", - "description": "Polywrap Ethereum Javascript Plugin", - "version": "0.10.0-pre.5", - "license": "MIT", - "repository": { - "type": "git", - "url": "https://github.com/polywrap/monorepo.git" - }, - "main": "build/index.js", - "files": [ - "build" - ], - "scripts": { - "build": "rimraf ./build && yarn codegen && tsc --project tsconfig.build.json", - "codegen": "node ../../../../dependencies/node_modules/polywrap/bin/polywrap codegen", - "lint": "eslint --color -c ../../../../.eslintrc.js src/", - "test": "jest --passWithNoTests --runInBand --verbose", - "test:ci": "jest --passWithNoTests --runInBand --detectOpenHandles --verbose", - "test:watch": "jest --watch --passWithNoTests --verbose" - }, - "dependencies": { - "@ethersproject/address": "5.0.7", - "@ethersproject/providers": "5.0.7", - "@polywrap/core-js": "0.10.0-pre.5", - "@polywrap/plugin-js": "0.10.0-pre.5", - "ethers": "5.0.7" - }, - "devDependencies": { - "@polywrap/client-js": "0.10.0-pre.5", - "@polywrap/fs-plugin-js": "0.10.0-pre.5", - "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.5", - "@polywrap/test-env-js": "0.10.0-pre.5", - "@types/jest": "26.0.8", - "@types/prettier": "2.6.0", - "eth-ens-namehash": "2.0.8", - "jest": "26.6.3", - "js-sha3": "0.8.0", - "rimraf": "3.0.2", - "ts-jest": "26.5.4", - "ts-node": "8.10.2", - "typescript": "4.1.6" - }, - "gitHead": "7346adaf5adb7e6bbb70d9247583e995650d390a", - "publishConfig": { - "access": "public" - } -} diff --git a/packages/js/plugins/ethereum/polywrap.plugin.yaml b/packages/js/plugins/ethereum/polywrap.plugin.yaml deleted file mode 100644 index c0205b2c6c..0000000000 --- a/packages/js/plugins/ethereum/polywrap.plugin.yaml +++ /dev/null @@ -1,7 +0,0 @@ -format: 0.2.0 -project: - type: plugin/typescript - name: Ethereum -source: - module: ./src/index.ts - schema: ./src/schema.graphql diff --git a/packages/js/plugins/ethereum/src/Connection.ts b/packages/js/plugins/ethereum/src/Connection.ts deleted file mode 100644 index 6af039030b..0000000000 --- a/packages/js/plugins/ethereum/src/Connection.ts +++ /dev/null @@ -1,138 +0,0 @@ -import { Signer, ethers } from "ethers"; -import { - ExternalProvider, - JsonRpcProvider, - Web3Provider, - Networkish, - WebSocketProvider, -} from "@ethersproject/providers"; -import { getAddress } from "@ethersproject/address"; - -export type Address = string; -export type AccountIndex = number; -export type EthereumSigner = Signer | Address | AccountIndex; -export type EthereumProvider = string | ExternalProvider | JsonRpcProvider; -export type EthereumClient = Web3Provider | JsonRpcProvider; - -export interface ConnectionConfig { - provider: EthereumProvider; - signer?: EthereumSigner; -} - -export class Connection { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore: initialized within setProvider - private _client: EthereumClient; - - constructor(private _config: ConnectionConfig) { - const { provider, signer } = _config; - - // Sanitize Provider & Signer - this.setProvider(provider, signer); - } - - static fromNetwork(networkish: Networkish): Connection { - if (typeof networkish === "string") { - networkish = networkish.toLowerCase(); - } - - const provider = (ethers.providers.getDefaultProvider( - ethers.providers.getNetwork(networkish), - { - infura: "1xraqrFyjLg2yrVtsN543WdKqJC", - } - ) as unknown) as JsonRpcProvider; - - return new Connection({ - provider, - }); - } - - static fromNode(node: string): Connection { - return new Connection({ - provider: node, - }); - } - - public setProvider( - provider: EthereumProvider, - signer?: EthereumSigner - ): void { - this._config.provider = provider; - - if (typeof provider === "string") { - this._client = (ethers.providers.getDefaultProvider(provider, { - infura: "1xraqrFyjLg2yrVtsN543WdKqJC", - }) as unknown) as JsonRpcProvider | WebSocketProvider; - } else { - if ((provider as JsonRpcProvider).anyNetwork !== undefined) { - this._client = provider as JsonRpcProvider; - } else { - this._client = new Web3Provider(provider as ExternalProvider); - } - } - - this.setSigner(signer ?? 0); - } - - public getProvider(): EthereumClient { - return this._client; - } - - public setSigner(signer: EthereumSigner): void { - if (typeof signer === "string") { - this._config.signer = getAddress(signer); - } else if (Signer.isSigner(signer)) { - this._config.signer = signer; - - // This should never happen - if (!this._client) { - throw Error( - `Please call "setProvider(...)" before calling setSigner(...)` - ); - } - - this._config.signer = signer.connect(this._client); - } else { - this._config.signer = signer; - } - } - - public getSigner(): ethers.Signer { - const { signer } = this._config; - - if (signer === undefined) { - throw Error("Signer is undefined, this should never happen."); - } - - if (typeof signer === "string" || typeof signer === "number") { - if (!this._client.getSigner) { - throw Error( - "Connection.getSigner: Ethereum provider does not have a signer, " + - "probably because it's an external RPC connection.\n" + - `Network: ${JSON.stringify(this._client._network, null, 2)}` - ); - } - - return this._client.getSigner(signer); - } else if (Signer.isSigner(signer)) { - return signer; - } else { - throw Error( - `Signer is an unrecognized type, this should never happen. \n${signer}` - ); - } - } - - public getContract( - address: Address, - abi: string[], - signer = true - ): ethers.Contract { - if (signer) { - return new ethers.Contract(address, abi, this.getSigner()); - } else { - return new ethers.Contract(address, abi, this._client); - } - } -} diff --git a/packages/js/plugins/ethereum/src/Connections.ts b/packages/js/plugins/ethereum/src/Connections.ts deleted file mode 100644 index 730210af1a..0000000000 --- a/packages/js/plugins/ethereum/src/Connections.ts +++ /dev/null @@ -1,145 +0,0 @@ -import { Connection, EthereumProvider } from "./Connection"; -import { Connection as SchemaConnection } from "./wrap"; - -import { getNetwork } from "@ethersproject/providers"; - -type Networks = { - [network: string]: Connection; -}; - -export interface ConnectionsConfig { - networks: Networks; - defaultNetwork?: string; -} - -export class Connections { - private _connections: Networks = {}; - private _defaultNetwork: string; - - constructor(config: ConnectionsConfig) { - for (const [network, connection] of Object.entries(config.networks)) { - this.set(network, connection); - } - // Assign the default network (mainnet if not provided) - if (config.defaultNetwork) { - this.setDefaultNetwork(config.defaultNetwork); - } else if (this._connections["mainnet"]) { - this.setDefaultNetwork("mainnet"); - } else { - this.setDefaultNetwork("mainnet", Connection.fromNetwork("mainnet")); - } - - // @TODO(cbrzn): Remove this once the Sha3 & Uts46 wrappers ENS has been moved to mainnet - const lacksGoerliConnection = !Object.keys(this._connections).find( - (k) => k === "goerli" - ); - if (lacksGoerliConnection) { - this.set( - "goerli", - "https://goerli.infura.io/v3/d119148113c047ca90f0311ed729c466" - ); - } - } - - /** Returns Connection indexed by network name, or by default network if key is undefined */ - get(network?: string): Connection | undefined { - if (!network) { - return this._connections[this._defaultNetwork.toLowerCase()]; - } - return this._connections[network.toLowerCase()]; - } - - /** sets Connection to index of network name */ - set(network: string, connection: Connection | EthereumProvider): void { - const networkStr = network.toLowerCase(); - - if (!(connection instanceof Connection)) { - connection = new Connection({ provider: connection }); - } - this._connections[networkStr] = connection; - - // Handle the case where `network` is a number - const networkNumber = Number.parseInt(networkStr); - - if (networkNumber) { - const namedNetwork = getNetwork(networkNumber); - this._connections[namedNetwork.name] = connection; - } - } - - /** sets defaultNetwork to network, and optionally sets associated connection */ - setDefaultNetwork( - network: string, - connection?: Connection | EthereumProvider - ): void { - if (connection) { - this.set(network, connection); - } - - if (!this.get(network)) { - throw Error(`No connection found for network: ${network}`); - } - - this._defaultNetwork = network; - } - - /** returns default network */ - getDefaultNetwork(): string { - return this._defaultNetwork; - } - - /** returns Connection indexed by given connection, or returns new Connection if connection is not found in store. - * Returns default network Connection if a connection argument is not provided. */ - async getConnection( - connection?: SchemaConnection | null - ): Promise { - if (!connection) { - return this.get(this._defaultNetwork) as Connection; - } - - const { networkNameOrChainId, node } = connection; - let result: Connection; - - // If a custom network is provided, either get an already - // established connection, or a create a new one - if (networkNameOrChainId) { - const networkStr = networkNameOrChainId.toLowerCase(); - if (this.get(networkStr)) { - result = this.get(networkStr) as Connection; - } else { - const chainId = Number.parseInt(networkStr); - - if (!isNaN(chainId)) { - result = Connection.fromNetwork(chainId); - } else { - result = Connection.fromNetwork(networkStr); - } - } - } else { - result = this.get(this._defaultNetwork) as Connection; - } - - // If a custom node endpoint is provided, create a combined - // connection with the node's endpoint and a connection's signer - // (if one exists for the network) - if (node) { - const nodeConnection = Connection.fromNode(node); - const nodeNetwork = await nodeConnection.getProvider().getNetwork(); - - const establishedConnection = - this.get(nodeNetwork.chainId.toString()) || this.get(nodeNetwork.name); - - if (establishedConnection) { - try { - nodeConnection.setSigner(establishedConnection.getSigner()); - } catch (e) { - // It's okay if there isn't a signer available. - } - } - - result = nodeConnection; - } - - return result; - } -} diff --git a/packages/js/plugins/ethereum/src/__tests__/connection.spec.ts b/packages/js/plugins/ethereum/src/__tests__/connection.spec.ts deleted file mode 100644 index 126b05cecb..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/connection.spec.ts +++ /dev/null @@ -1,97 +0,0 @@ -import { Connection } from ".."; -import { initTestEnvironment, stopTestEnvironment, providers } from "@polywrap/test-env-js"; -import { Wallet } from "ethers"; - -jest.setTimeout(60000); - -type BasicNetwork = "mainnet" | "rinkeby" | "ropsten" | "goerli" | "kovan"; - -const getRpcUri = (network: BasicNetwork): string => { - return `https://${network}.infura.io/v3/d119148113c047ca90f0311ed729c466`; -} - -describe("Connection", () => { - const signerAddress = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - let testnet: Connection; - - beforeAll(async () => { - await initTestEnvironment(); - testnet = new Connection({ - provider: providers.ethereum, - signer: new Wallet( - "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d" - ), - }); - }); - - afterAll(async () => { - await stopTestEnvironment(); - }); - - it("Constructs from Networkish", () => { - const connection = Connection.fromNetwork("mainnet"); - expect(connection).toBeDefined(); - expect(connection.getProvider()).toBeDefined(); - }); - - it("Constructs from Node", () => { - const connection = Connection.fromNode(getRpcUri("mainnet")); - expect(connection).toBeDefined(); - expect(connection.getProvider()).toBeDefined(); - }); - - test("getProvider", () => { - expect(testnet.getProvider()).toBeDefined(); - }); - - test("setProvider", () => { - const goerliUri = getRpcUri("goerli"); - const connection = new Connection({ provider: goerliUri }); - expect(connection.getProvider().connection.url).toEqual(goerliUri); - connection.setProvider(providers.ethereum); - expect(connection.getProvider().connection.url).toEqual(providers.ethereum); - expect(connection.getSigner()).toBeDefined(); - }); - - describe("getSigner", () => { - it ("gets signer when explicitly provided", async () => { - const signer = testnet.getSigner(); - expect(signer).toBeDefined(); - expect(await signer.getAddress()).toEqual(signerAddress); - }); - - it("gets signer from provider", async () => { - const connection = new Connection({ provider: providers.ethereum }); - const signer = connection.getSigner(); - expect(signer).toBeDefined(); - }); - }); - - describe("setSigner", () => { - it ("sets signer from ethers Signer", async () => { - const connection = new Connection({ provider: providers.ethereum }); - connection.setSigner(new Wallet( - "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d" - )); - const signer = connection.getSigner(); - expect(signer).toBeDefined(); - expect(await signer.getAddress()).toEqual(signerAddress); - }); - - it("sets signer from account index", async () => { - testnet.setSigner(1); - const signer = testnet.getSigner(); - expect(signer).toBeDefined(); - expect(await signer.getAddress()).not.toEqual(signerAddress); - testnet.setSigner(0); - }); - - it("sets signer from address", async () => { - const connection = new Connection({ provider: providers.ethereum }); - connection.setSigner(signerAddress); - const signer = connection.getSigner(); - expect(signer).toBeDefined(); - expect(await signer.getAddress()).toEqual(signerAddress); - }); - }); -}); \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/connections.spec.ts b/packages/js/plugins/ethereum/src/__tests__/connections.spec.ts deleted file mode 100644 index 98df58a887..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/connections.spec.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { Connections, Connection } from ".."; - -jest.setTimeout(10000); - -type BasicNetwork = "mainnet" | "rinkeby" | "ropsten" | "goerli" | "kovan"; - -const getRpcUri = (network: BasicNetwork): string => { - return `https://${network}.infura.io/v3/d119148113c047ca90f0311ed729c466`; -} - -describe("Connections Store", () => { - let connections: Connections; - let testnet: Connection; - let goerli: Connection; - - - beforeAll(async () => { - testnet = new Connection({ provider: getRpcUri("kovan") }); - goerli = new Connection({ provider: getRpcUri("goerli") }); - connections = new Connections({ - networks: { testnet, goerli }, - defaultNetwork: "testnet", - }); - }); - - - test("get", async () => { - expect(connections.get("testnet")).toBe(testnet); - expect(connections.get("goerli")).toBe(goerli); - expect(connections.get()).toBe(testnet); - expect(connections.get("rinkeby")).toBeUndefined(); - }); - - describe("set", () => { - it("adds a new network", async () => { - const kovan = new Connection({ provider: getRpcUri("kovan") }); - expect(connections.get("kovan")).toBeUndefined(); - connections.set("kovan", kovan); - expect(connections.get("kovan")).toBe(kovan); - }); - - it("adds new network by passing provider directly", async () => { - const rinkebyUri = getRpcUri("rinkeby"); - connections.set("rinkeby", rinkebyUri); - const providerUri = connections.get("rinkeby")?.getProvider().connection.url; - expect(providerUri).toEqual(rinkebyUri); - }); - - it("replaces existing network", async () => { - const ropsten = new Connection({ provider: getRpcUri("ropsten") }); - connections.set("existingNetwork", ropsten); - expect(connections.get("existingNetwork")).toBe(ropsten); - connections.set("existingNetwork", goerli); - expect(connections.get("existingNetwork")).toBe(goerli); - }); - }); - - test("getDefaultNetwork", async () => { - expect(connections.getDefaultNetwork()).toEqual("testnet"); - }); - - describe("setDefaultNetwork", () => { - it("replaces defaultNetwork with existing network", async () => { - connections.setDefaultNetwork("goerli"); - expect(connections.getDefaultNetwork()).toEqual("goerli"); - }); - - it("replaces default network by passing a new connection", async () => { - connections.setDefaultNetwork("newDefault", goerli); - expect(connections.getDefaultNetwork()).toEqual("newDefault"); - expect(connections.get("newDefault")).toBe(goerli); - }); - }); -}); \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.ABI.json b/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.ABI.json deleted file mode 100644 index 8e699ec92b..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.ABI.json +++ /dev/null @@ -1,156 +0,0 @@ -[ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "data", - "type": "uint256" - } - ], - "name": "DataSet", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "from", - "type": "address" - }, - { - "indexed": false, - "internalType": "string", - "name": "ipfsHash", - "type": "string" - } - ], - "name": "HashSet", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "addJob", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "element", - "type": "uint256" - } - ], - "name": "addSimple", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "get", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getHash", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getJobs", - "outputs": [ - { - "components": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "amount", - "type": "uint256" - } - ], - "internalType": "struct SimpleStorage.Job[]", - "name": "", - "type": "tuple[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getSimple", - "outputs": [ - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "x", - "type": "uint256" - } - ], - "name": "set", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "string", - "name": "x", - "type": "string" - } - ], - "name": "setHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } -] \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.Bytecode.json b/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.Bytecode.json deleted file mode 100644 index 4b87c3a7e7..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.Bytecode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "generatedSources": [], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610c07806100206000396000f3fe608060405234801561001057600080fd5b50600436106100885760003560e01c806368581ebd1161005b57806368581ebd146100ff5780636d4ce63c1461011d578063d13319c41461013b578063fe5afd631461015957610088565b806301644ea71461008d578063072796f4146100ab5780631ed83fd4146100c757806360fe47b1146100e3575b600080fd5b610095610175565b6040516100a29190610941565b60405180910390f35b6100c560048036038101906100c091906106de565b6101cd565b005b6100e160048036038101906100dc9190610670565b6101f9565b005b6100fd60048036038101906100f891906106de565b61024a565b005b61010761028d565b604051610114919061091f565b60405180910390f35b61012561034c565b6040516101329190610985565b60405180910390f35b610143610355565b6040516101509190610963565b60405180910390f35b610173600480360381019061016e919061062b565b6103e7565b005b606060038054806020026020016040519081016040528092919081815260200182805480156101c357602002820191906000526020600020905b8154815260200190600101908083116101af575b5050505050905090565b600381908060018154018082558091505060019003906000526020600020016000909190919091505550565b81816001919061020a92919061047e565b507f7701f49eb9aabe8890631508a9092eabb511a34566c30f2d94ff4420da1ccb1333838360405161023e939291906108c4565b60405180910390a15050565b806000819055507f7c94a94848d5859b1a30c887dc5740bf8d1cf789779be90adda1d0d34dd2502233826040516102829291906108f6565b60405180910390a150565b60606002805480602002602001604051908101604052809291908181526020016000905b8282101561034357838290600052602060002090600202016040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015481525050815260200190600101906102b1565b50505050905090565b60008054905090565b60606001805461036490610ad1565b80601f016020809104026020016040519081016040528092919081815260200182805461039090610ad1565b80156103dd5780601f106103b2576101008083540402835291602001916103dd565b820191906000526020600020905b8154815290600101906020018083116103c057829003601f168201915b5050505050905090565b600082828101906103f891906106b5565b9050600281908060018154018082558091505060019003906000526020600020906002020160009091909190915060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550602082015181600101555050505050565b82805461048a90610ad1565b90600052602060002090601f0160209004810192826104ac57600085556104f3565b82601f106104c557803560ff19168380011785556104f3565b828001600101855582156104f3579182015b828111156104f25782358255916020019190600101906104d7565b5b5090506105009190610504565b5090565b5b8082111561051d576000816000905550600101610505565b5090565b60008135905061053081610ba3565b92915050565b60008083601f84011261054857600080fd5b8235905067ffffffffffffffff81111561056157600080fd5b60208301915083600182028301111561057957600080fd5b9250929050565b60008083601f84011261059257600080fd5b8235905067ffffffffffffffff8111156105ab57600080fd5b6020830191508360018202830111156105c357600080fd5b9250929050565b6000604082840312156105dc57600080fd5b6105e660406109a0565b905060006105f684828501610521565b600083015250602061060a84828501610616565b60208301525092915050565b60008135905061062581610bba565b92915050565b6000806020838503121561063e57600080fd5b600083013567ffffffffffffffff81111561065857600080fd5b61066485828601610536565b92509250509250929050565b6000806020838503121561068357600080fd5b600083013567ffffffffffffffff81111561069d57600080fd5b6106a985828601610580565b92509250509250929050565b6000604082840312156106c757600080fd5b60006106d5848285016105ca565b91505092915050565b6000602082840312156106f057600080fd5b60006106fe84828501610616565b91505092915050565b60006107138383610877565b60408301905092915050565b600061072b83836108a6565b60208301905092915050565b61074081610a53565b82525050565b61074f81610a53565b82525050565b6000610760826109e5565b61076a8185610a20565b9350610775836109c5565b8060005b838110156107a657815161078d8882610707565b975061079883610a06565b925050600181019050610779565b5085935050505092915050565b60006107be826109f0565b6107c88185610a31565b93506107d3836109d5565b8060005b838110156108045781516107eb888261071f565b97506107f683610a13565b9250506001810190506107d7565b5085935050505092915050565b600061081d8385610a42565b935061082a838584610a8f565b61083383610b92565b840190509392505050565b6000610849826109fb565b6108538185610a42565b9350610863818560208601610a9e565b61086c81610b92565b840191505092915050565b60408201600082015161088d6000850182610737565b5060208201516108a060208501826108a6565b50505050565b6108af81610a85565b82525050565b6108be81610a85565b82525050565b60006040820190506108d96000830186610746565b81810360208301526108ec818486610811565b9050949350505050565b600060408201905061090b6000830185610746565b61091860208301846108b5565b9392505050565b600060208201905081810360008301526109398184610755565b905092915050565b6000602082019050818103600083015261095b81846107b3565b905092915050565b6000602082019050818103600083015261097d818461083e565b905092915050565b600060208201905061099a60008301846108b5565b92915050565b60006109aa6109bb565b90506109b68282610b03565b919050565b6000604051905090565b6000819050602082019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610a5e82610a65565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015610abc578082015181840152602081019050610aa1565b83811115610acb576000848401525b50505050565b60006002820490506001821680610ae957607f821691505b60208210811415610afd57610afc610b34565b5b50919050565b610b0c82610b92565b810181811067ffffffffffffffff82111715610b2b57610b2a610b63565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b610bac81610a53565b8114610bb757600080fd5b50565b610bc381610a85565b8114610bce57600080fd5b5056fea2646970667358221220974e93c48c7a53edfb8788c5a8403fb43075e6b0f510c02c8a9311158d88f22464736f6c63430008030033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xC07 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x88 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x68581EBD GT PUSH2 0x5B JUMPI DUP1 PUSH4 0x68581EBD EQ PUSH2 0xFF JUMPI DUP1 PUSH4 0x6D4CE63C EQ PUSH2 0x11D JUMPI DUP1 PUSH4 0xD13319C4 EQ PUSH2 0x13B JUMPI DUP1 PUSH4 0xFE5AFD63 EQ PUSH2 0x159 JUMPI PUSH2 0x88 JUMP JUMPDEST DUP1 PUSH4 0x1644EA7 EQ PUSH2 0x8D JUMPI DUP1 PUSH4 0x72796F4 EQ PUSH2 0xAB JUMPI DUP1 PUSH4 0x1ED83FD4 EQ PUSH2 0xC7 JUMPI DUP1 PUSH4 0x60FE47B1 EQ PUSH2 0xE3 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x175 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xA2 SWAP2 SWAP1 PUSH2 0x941 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0xC5 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xC0 SWAP2 SWAP1 PUSH2 0x6DE JUMP JUMPDEST PUSH2 0x1CD JUMP JUMPDEST STOP JUMPDEST PUSH2 0xE1 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xDC SWAP2 SWAP1 PUSH2 0x670 JUMP JUMPDEST PUSH2 0x1F9 JUMP JUMPDEST STOP JUMPDEST PUSH2 0xFD PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0xF8 SWAP2 SWAP1 PUSH2 0x6DE JUMP JUMPDEST PUSH2 0x24A JUMP JUMPDEST STOP JUMPDEST PUSH2 0x107 PUSH2 0x28D JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x114 SWAP2 SWAP1 PUSH2 0x91F JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x125 PUSH2 0x34C JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x132 SWAP2 SWAP1 PUSH2 0x985 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x143 PUSH2 0x355 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x150 SWAP2 SWAP1 PUSH2 0x963 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x173 PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x16E SWAP2 SWAP1 PUSH2 0x62B JUMP JUMPDEST PUSH2 0x3E7 JUMP JUMPDEST STOP JUMPDEST PUSH1 0x60 PUSH1 0x3 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD DUP1 ISZERO PUSH2 0x1C3 JUMPI PUSH1 0x20 MUL DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 DUP1 DUP4 GT PUSH2 0x1AF JUMPI JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x3 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP SSTORE POP JUMP JUMPDEST DUP2 DUP2 PUSH1 0x1 SWAP2 SWAP1 PUSH2 0x20A SWAP3 SWAP2 SWAP1 PUSH2 0x47E JUMP JUMPDEST POP PUSH32 0x7701F49EB9AABE8890631508A9092EABB511A34566C30F2D94FF4420DA1CCB13 CALLER DUP4 DUP4 PUSH1 0x40 MLOAD PUSH2 0x23E SWAP4 SWAP3 SWAP2 SWAP1 PUSH2 0x8C4 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP JUMP JUMPDEST DUP1 PUSH1 0x0 DUP2 SWAP1 SSTORE POP PUSH32 0x7C94A94848D5859B1A30C887DC5740BF8D1CF789779BE90ADDA1D0D34DD25022 CALLER DUP3 PUSH1 0x40 MLOAD PUSH2 0x282 SWAP3 SWAP2 SWAP1 PUSH2 0x8F6 JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x2 DUP1 SLOAD DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x0 SWAP1 JUMPDEST DUP3 DUP3 LT ISZERO PUSH2 0x343 JUMPI DUP4 DUP3 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x40 MLOAD DUP1 PUSH1 0x40 ADD PUSH1 0x40 MSTORE SWAP1 DUP2 PUSH1 0x0 DUP3 ADD PUSH1 0x0 SWAP1 SLOAD SWAP1 PUSH2 0x100 EXP SWAP1 DIV PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND DUP2 MSTORE PUSH1 0x20 ADD PUSH1 0x1 DUP3 ADD SLOAD DUP2 MSTORE POP POP DUP2 MSTORE PUSH1 0x20 ADD SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x2B1 JUMP JUMPDEST POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP1 SLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x60 PUSH1 0x1 DUP1 SLOAD PUSH2 0x364 SWAP1 PUSH2 0xAD1 JUMP JUMPDEST DUP1 PUSH1 0x1F ADD PUSH1 0x20 DUP1 SWAP2 DIV MUL PUSH1 0x20 ADD PUSH1 0x40 MLOAD SWAP1 DUP2 ADD PUSH1 0x40 MSTORE DUP1 SWAP3 SWAP2 SWAP1 DUP2 DUP2 MSTORE PUSH1 0x20 ADD DUP3 DUP1 SLOAD PUSH2 0x390 SWAP1 PUSH2 0xAD1 JUMP JUMPDEST DUP1 ISZERO PUSH2 0x3DD JUMPI DUP1 PUSH1 0x1F LT PUSH2 0x3B2 JUMPI PUSH2 0x100 DUP1 DUP4 SLOAD DIV MUL DUP4 MSTORE SWAP2 PUSH1 0x20 ADD SWAP2 PUSH2 0x3DD JUMP JUMPDEST DUP3 ADD SWAP2 SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 JUMPDEST DUP2 SLOAD DUP2 MSTORE SWAP1 PUSH1 0x1 ADD SWAP1 PUSH1 0x20 ADD DUP1 DUP4 GT PUSH2 0x3C0 JUMPI DUP3 SWAP1 SUB PUSH1 0x1F AND DUP3 ADD SWAP2 JUMPDEST POP POP POP POP POP SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 DUP2 ADD SWAP1 PUSH2 0x3F8 SWAP2 SWAP1 PUSH2 0x6B5 JUMP JUMPDEST SWAP1 POP PUSH1 0x2 DUP2 SWAP1 DUP1 PUSH1 0x1 DUP2 SLOAD ADD DUP1 DUP3 SSTORE DUP1 SWAP2 POP POP PUSH1 0x1 SWAP1 SUB SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x2 MUL ADD PUSH1 0x0 SWAP1 SWAP2 SWAP1 SWAP2 SWAP1 SWAP2 POP PUSH1 0x0 DUP3 ADD MLOAD DUP2 PUSH1 0x0 ADD PUSH1 0x0 PUSH2 0x100 EXP DUP2 SLOAD DUP2 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF MUL NOT AND SWAP1 DUP4 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF AND MUL OR SWAP1 SSTORE POP PUSH1 0x20 DUP3 ADD MLOAD DUP2 PUSH1 0x1 ADD SSTORE POP POP POP POP POP JUMP JUMPDEST DUP3 DUP1 SLOAD PUSH2 0x48A SWAP1 PUSH2 0xAD1 JUMP JUMPDEST SWAP1 PUSH1 0x0 MSTORE PUSH1 0x20 PUSH1 0x0 KECCAK256 SWAP1 PUSH1 0x1F ADD PUSH1 0x20 SWAP1 DIV DUP2 ADD SWAP3 DUP3 PUSH2 0x4AC JUMPI PUSH1 0x0 DUP6 SSTORE PUSH2 0x4F3 JUMP JUMPDEST DUP3 PUSH1 0x1F LT PUSH2 0x4C5 JUMPI DUP1 CALLDATALOAD PUSH1 0xFF NOT AND DUP4 DUP1 ADD OR DUP6 SSTORE PUSH2 0x4F3 JUMP JUMPDEST DUP3 DUP1 ADD PUSH1 0x1 ADD DUP6 SSTORE DUP3 ISZERO PUSH2 0x4F3 JUMPI SWAP2 DUP3 ADD JUMPDEST DUP3 DUP2 GT ISZERO PUSH2 0x4F2 JUMPI DUP3 CALLDATALOAD DUP3 SSTORE SWAP2 PUSH1 0x20 ADD SWAP2 SWAP1 PUSH1 0x1 ADD SWAP1 PUSH2 0x4D7 JUMP JUMPDEST JUMPDEST POP SWAP1 POP PUSH2 0x500 SWAP2 SWAP1 PUSH2 0x504 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST JUMPDEST DUP1 DUP3 GT ISZERO PUSH2 0x51D JUMPI PUSH1 0x0 DUP2 PUSH1 0x0 SWAP1 SSTORE POP PUSH1 0x1 ADD PUSH2 0x505 JUMP JUMPDEST POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x530 DUP2 PUSH2 0xBA3 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x548 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x561 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x579 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 DUP4 PUSH1 0x1F DUP5 ADD SLT PUSH2 0x592 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP3 CALLDATALOAD SWAP1 POP PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x5AB JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x20 DUP4 ADD SWAP2 POP DUP4 PUSH1 0x1 DUP3 MUL DUP4 ADD GT ISZERO PUSH2 0x5C3 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x5DC JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x5E6 PUSH1 0x40 PUSH2 0x9A0 JUMP JUMPDEST SWAP1 POP PUSH1 0x0 PUSH2 0x5F6 DUP5 DUP3 DUP6 ADD PUSH2 0x521 JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x60A DUP5 DUP3 DUP6 ADD PUSH2 0x616 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x625 DUP2 PUSH2 0xBBA JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x63E JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x658 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x664 DUP6 DUP3 DUP7 ADD PUSH2 0x536 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x20 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x683 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP4 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x69D JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x6A9 DUP6 DUP3 DUP7 ADD PUSH2 0x580 JUMP JUMPDEST SWAP3 POP SWAP3 POP POP SWAP3 POP SWAP3 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6C7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6D5 DUP5 DUP3 DUP6 ADD PUSH2 0x5CA JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x6F0 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH2 0x6FE DUP5 DUP3 DUP6 ADD PUSH2 0x616 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x713 DUP4 DUP4 PUSH2 0x877 JUMP JUMPDEST PUSH1 0x40 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x72B DUP4 DUP4 PUSH2 0x8A6 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x740 DUP2 PUSH2 0xA53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x74F DUP2 PUSH2 0xA53 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x760 DUP3 PUSH2 0x9E5 JUMP JUMPDEST PUSH2 0x76A DUP2 DUP6 PUSH2 0xA20 JUMP JUMPDEST SWAP4 POP PUSH2 0x775 DUP4 PUSH2 0x9C5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x7A6 JUMPI DUP2 MLOAD PUSH2 0x78D DUP9 DUP3 PUSH2 0x707 JUMP JUMPDEST SWAP8 POP PUSH2 0x798 DUP4 PUSH2 0xA06 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x779 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x7BE DUP3 PUSH2 0x9F0 JUMP JUMPDEST PUSH2 0x7C8 DUP2 DUP6 PUSH2 0xA31 JUMP JUMPDEST SWAP4 POP PUSH2 0x7D3 DUP4 PUSH2 0x9D5 JUMP JUMPDEST DUP1 PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x804 JUMPI DUP2 MLOAD PUSH2 0x7EB DUP9 DUP3 PUSH2 0x71F JUMP JUMPDEST SWAP8 POP PUSH2 0x7F6 DUP4 PUSH2 0xA13 JUMP JUMPDEST SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x7D7 JUMP JUMPDEST POP DUP6 SWAP4 POP POP POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x81D DUP4 DUP6 PUSH2 0xA42 JUMP JUMPDEST SWAP4 POP PUSH2 0x82A DUP4 DUP6 DUP5 PUSH2 0xA8F JUMP JUMPDEST PUSH2 0x833 DUP4 PUSH2 0xB92 JUMP JUMPDEST DUP5 ADD SWAP1 POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x849 DUP3 PUSH2 0x9FB JUMP JUMPDEST PUSH2 0x853 DUP2 DUP6 PUSH2 0xA42 JUMP JUMPDEST SWAP4 POP PUSH2 0x863 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0xA9E JUMP JUMPDEST PUSH2 0x86C DUP2 PUSH2 0xB92 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x40 DUP3 ADD PUSH1 0x0 DUP3 ADD MLOAD PUSH2 0x88D PUSH1 0x0 DUP6 ADD DUP3 PUSH2 0x737 JUMP JUMPDEST POP PUSH1 0x20 DUP3 ADD MLOAD PUSH2 0x8A0 PUSH1 0x20 DUP6 ADD DUP3 PUSH2 0x8A6 JUMP JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x8AF DUP2 PUSH2 0xA85 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH2 0x8BE DUP2 PUSH2 0xA85 JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x8D9 PUSH1 0x0 DUP4 ADD DUP7 PUSH2 0x746 JUMP JUMPDEST DUP2 DUP2 SUB PUSH1 0x20 DUP4 ADD MSTORE PUSH2 0x8EC DUP2 DUP5 DUP7 PUSH2 0x811 JUMP JUMPDEST SWAP1 POP SWAP5 SWAP4 POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP PUSH2 0x90B PUSH1 0x0 DUP4 ADD DUP6 PUSH2 0x746 JUMP JUMPDEST PUSH2 0x918 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x8B5 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x939 DUP2 DUP5 PUSH2 0x755 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x95B DUP2 DUP5 PUSH2 0x7B3 JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x97D DUP2 DUP5 PUSH2 0x83E JUMP JUMPDEST SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP PUSH2 0x99A PUSH1 0x0 DUP4 ADD DUP5 PUSH2 0x8B5 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x9AA PUSH2 0x9BB JUMP JUMPDEST SWAP1 POP PUSH2 0x9B6 DUP3 DUP3 PUSH2 0xB03 JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0xA5E DUP3 PUSH2 0xA65 JUMP JUMPDEST SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH20 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0xABC JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0xAA1 JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0xACB JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x2 DUP3 DIV SWAP1 POP PUSH1 0x1 DUP3 AND DUP1 PUSH2 0xAE9 JUMPI PUSH1 0x7F DUP3 AND SWAP2 POP JUMPDEST PUSH1 0x20 DUP3 LT DUP2 EQ ISZERO PUSH2 0xAFD JUMPI PUSH2 0xAFC PUSH2 0xB34 JUMP JUMPDEST JUMPDEST POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xB0C DUP3 PUSH2 0xB92 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0xB2B JUMPI PUSH2 0xB2A PUSH2 0xB63 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x22 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0xBAC DUP2 PUSH2 0xA53 JUMP JUMPDEST DUP2 EQ PUSH2 0xBB7 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP JUMPDEST PUSH2 0xBC3 DUP2 PUSH2 0xA85 JUMP JUMPDEST DUP2 EQ PUSH2 0xBCE JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP8 0x4E SWAP4 0xC4 DUP13 PUSH27 0x53EDFB8788C5A8403FB43075E6B0F510C02C8A9311158D88F22464 PUSH20 0x6F6C634300080300330000000000000000000000 ", - "sourceMap": "24:1021:0:-:0;;;;;;;;;;;;;;;;;;;" -} \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.sol b/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.sol deleted file mode 100644 index b4328e81d6..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/SimpleStorage.sol +++ /dev/null @@ -1,56 +0,0 @@ -pragma solidity 0.8.3; - -contract SimpleStorage { - uint256 data; - string ipfsHash; - Job[] jobs; - uint256[] primitives; - - struct Job { - address to; - uint256 amount; - } - - event DataSet(address from, uint256 data); - event HashSet(address from, string ipfsHash); - - function set(uint256 x) public { - data = x; - emit DataSet(msg.sender, x); - } - - function get() public view returns (uint256) { - return data; - } - - function setHash(string calldata x) public { - ipfsHash = x; - emit HashSet(msg.sender, x); - } - - function getHash() public view returns (string memory) { - return ipfsHash; - } - - // Structs array - - function addJob(bytes calldata _data) public { - Job memory job = abi.decode(_data, (Job)); - jobs.push(job); - } - - function getJobs() public view returns (Job[] memory) { - return jobs; - } - - // Primitives array - - function addSimple(uint256 element) public { - return primitives.push(element); - } - - function getSimple() public view returns (uint256[] memory) { - return primitives; - } - -} diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.ABI.json b/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.ABI.json deleted file mode 100644 index 4e76c2d3bd..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.ABI.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "inputs": [ - { - "components": [ - { - "internalType": "string", - "name": "str", - "type": "string" - }, - { - "internalType": "uint256", - "name": "unsigned256", - "type": "uint256" - }, - { - "internalType": "uint256[]", - "name": "unsigned256Array", - "type": "uint256[]" - } - ], - "internalType": "struct StructArg.Struct", - "name": "_arg", - "type": "tuple" - } - ], - "name": "method", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "pure", - "type": "function" - } -] diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.Bytecode.json b/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.Bytecode.json deleted file mode 100644 index ed880310b6..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.Bytecode.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50610613806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806343121a6e14610030575b600080fd5b61004a6004803603810190610045919061028a565b610061565b60405161005892919061031b565b60405180910390f35b60606000808360200151905060005b8460400151518110156100ba578460400151818151811061009457610093610534565b5b6020026020010151826100a791906103e9565b9150806100b3906104bc565b9050610070565b508360000151819250925050915091565b60006100de6100d984610370565b61034b565b90508083825260208201905082856020860282011115610101576101006105a1565b5b60005b8581101561013157816101178882610275565b845260208401935060208301925050600181019050610104565b5050509392505050565b600061014e6101498461039c565b61034b565b90508281526020810184848401111561016a576101696105a6565b5b610175848285610449565b509392505050565b600082601f83011261019257610191610592565b5b81356101a28482602086016100cb565b91505092915050565b600082601f8301126101c0576101bf610592565b5b81356101d084826020860161013b565b91505092915050565b6000606082840312156101ef576101ee610597565b5b6101f9606061034b565b9050600082013567ffffffffffffffff8111156102195761021861059c565b5b610225848285016101ab565b600083015250602061023984828501610275565b602083015250604082013567ffffffffffffffff81111561025d5761025c61059c565b5b6102698482850161017d565b60408301525092915050565b600081359050610284816105c6565b92915050565b6000602082840312156102a05761029f6105b0565b5b600082013567ffffffffffffffff8111156102be576102bd6105ab565b5b6102ca848285016101d9565b91505092915050565b60006102de826103cd565b6102e881856103d8565b93506102f8818560208601610458565b610301816105b5565b840191505092915050565b6103158161043f565b82525050565b6000604082019050818103600083015261033581856102d3565b9050610344602083018461030c565b9392505050565b6000610355610366565b9050610361828261048b565b919050565b6000604051905090565b600067ffffffffffffffff82111561038b5761038a610563565b5b602082029050602081019050919050565b600067ffffffffffffffff8211156103b7576103b6610563565b5b6103c0826105b5565b9050602081019050919050565b600081519050919050565b600082825260208201905092915050565b60006103f48261043f565b91506103ff8361043f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561043457610433610505565b5b828201905092915050565b6000819050919050565b82818337600083830152505050565b60005b8381101561047657808201518184015260208101905061045b565b83811115610485576000848401525b50505050565b610494826105b5565b810181811067ffffffffffffffff821117156104b3576104b2610563565b5b80604052505050565b60006104c78261043f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156104fa576104f9610505565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b6105cf8161043f565b81146105da57600080fd5b5056fea264697066735822122090f158fc7fd35f7a02d3bede288820a65242385c8ce0b51c36df1718b811f5ef64736f6c63430008050033", - "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0x613 DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x2B JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x43121A6E EQ PUSH2 0x30 JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x4A PUSH1 0x4 DUP1 CALLDATASIZE SUB DUP2 ADD SWAP1 PUSH2 0x45 SWAP2 SWAP1 PUSH2 0x28A JUMP JUMPDEST PUSH2 0x61 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0x58 SWAP3 SWAP2 SWAP1 PUSH2 0x31B JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH1 0x60 PUSH1 0x0 DUP1 DUP4 PUSH1 0x20 ADD MLOAD SWAP1 POP PUSH1 0x0 JUMPDEST DUP5 PUSH1 0x40 ADD MLOAD MLOAD DUP2 LT ISZERO PUSH2 0xBA JUMPI DUP5 PUSH1 0x40 ADD MLOAD DUP2 DUP2 MLOAD DUP2 LT PUSH2 0x94 JUMPI PUSH2 0x93 PUSH2 0x534 JUMP JUMPDEST JUMPDEST PUSH1 0x20 MUL PUSH1 0x20 ADD ADD MLOAD DUP3 PUSH2 0xA7 SWAP2 SWAP1 PUSH2 0x3E9 JUMP JUMPDEST SWAP2 POP DUP1 PUSH2 0xB3 SWAP1 PUSH2 0x4BC JUMP JUMPDEST SWAP1 POP PUSH2 0x70 JUMP JUMPDEST POP DUP4 PUSH1 0x0 ADD MLOAD DUP2 SWAP3 POP SWAP3 POP POP SWAP2 POP SWAP2 JUMP JUMPDEST PUSH1 0x0 PUSH2 0xDE PUSH2 0xD9 DUP5 PUSH2 0x370 JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST SWAP1 POP DUP1 DUP4 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP DUP3 DUP6 PUSH1 0x20 DUP7 MUL DUP3 ADD GT ISZERO PUSH2 0x101 JUMPI PUSH2 0x100 PUSH2 0x5A1 JUMP JUMPDEST JUMPDEST PUSH1 0x0 JUMPDEST DUP6 DUP2 LT ISZERO PUSH2 0x131 JUMPI DUP2 PUSH2 0x117 DUP9 DUP3 PUSH2 0x275 JUMP JUMPDEST DUP5 MSTORE PUSH1 0x20 DUP5 ADD SWAP4 POP PUSH1 0x20 DUP4 ADD SWAP3 POP POP PUSH1 0x1 DUP2 ADD SWAP1 POP PUSH2 0x104 JUMP JUMPDEST POP POP POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x14E PUSH2 0x149 DUP5 PUSH2 0x39C JUMP JUMPDEST PUSH2 0x34B JUMP JUMPDEST SWAP1 POP DUP3 DUP2 MSTORE PUSH1 0x20 DUP2 ADD DUP5 DUP5 DUP5 ADD GT ISZERO PUSH2 0x16A JUMPI PUSH2 0x169 PUSH2 0x5A6 JUMP JUMPDEST JUMPDEST PUSH2 0x175 DUP5 DUP3 DUP6 PUSH2 0x449 JUMP JUMPDEST POP SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x192 JUMPI PUSH2 0x191 PUSH2 0x592 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1A2 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0xCB JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP3 PUSH1 0x1F DUP4 ADD SLT PUSH2 0x1C0 JUMPI PUSH2 0x1BF PUSH2 0x592 JUMP JUMPDEST JUMPDEST DUP2 CALLDATALOAD PUSH2 0x1D0 DUP5 DUP3 PUSH1 0x20 DUP7 ADD PUSH2 0x13B JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x60 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x1EF JUMPI PUSH2 0x1EE PUSH2 0x597 JUMP JUMPDEST JUMPDEST PUSH2 0x1F9 PUSH1 0x60 PUSH2 0x34B JUMP JUMPDEST SWAP1 POP PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x219 JUMPI PUSH2 0x218 PUSH2 0x59C JUMP JUMPDEST JUMPDEST PUSH2 0x225 DUP5 DUP3 DUP6 ADD PUSH2 0x1AB JUMP JUMPDEST PUSH1 0x0 DUP4 ADD MSTORE POP PUSH1 0x20 PUSH2 0x239 DUP5 DUP3 DUP6 ADD PUSH2 0x275 JUMP JUMPDEST PUSH1 0x20 DUP4 ADD MSTORE POP PUSH1 0x40 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x25D JUMPI PUSH2 0x25C PUSH2 0x59C JUMP JUMPDEST JUMPDEST PUSH2 0x269 DUP5 DUP3 DUP6 ADD PUSH2 0x17D JUMP JUMPDEST PUSH1 0x40 DUP4 ADD MSTORE POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 CALLDATALOAD SWAP1 POP PUSH2 0x284 DUP2 PUSH2 0x5C6 JUMP JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x2A0 JUMPI PUSH2 0x29F PUSH2 0x5B0 JUMP JUMPDEST JUMPDEST PUSH1 0x0 DUP3 ADD CALLDATALOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x2BE JUMPI PUSH2 0x2BD PUSH2 0x5AB JUMP JUMPDEST JUMPDEST PUSH2 0x2CA DUP5 DUP3 DUP6 ADD PUSH2 0x1D9 JUMP JUMPDEST SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x2DE DUP3 PUSH2 0x3CD JUMP JUMPDEST PUSH2 0x2E8 DUP2 DUP6 PUSH2 0x3D8 JUMP JUMPDEST SWAP4 POP PUSH2 0x2F8 DUP2 DUP6 PUSH1 0x20 DUP7 ADD PUSH2 0x458 JUMP JUMPDEST PUSH2 0x301 DUP2 PUSH2 0x5B5 JUMP JUMPDEST DUP5 ADD SWAP2 POP POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x315 DUP2 PUSH2 0x43F JUMP JUMPDEST DUP3 MSTORE POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 DUP3 ADD SWAP1 POP DUP2 DUP2 SUB PUSH1 0x0 DUP4 ADD MSTORE PUSH2 0x335 DUP2 DUP6 PUSH2 0x2D3 JUMP JUMPDEST SWAP1 POP PUSH2 0x344 PUSH1 0x20 DUP4 ADD DUP5 PUSH2 0x30C JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x355 PUSH2 0x366 JUMP JUMPDEST SWAP1 POP PUSH2 0x361 DUP3 DUP3 PUSH2 0x48B JUMP JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x40 MLOAD SWAP1 POP SWAP1 JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x38B JUMPI PUSH2 0x38A PUSH2 0x563 JUMP JUMPDEST JUMPDEST PUSH1 0x20 DUP3 MUL SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT ISZERO PUSH2 0x3B7 JUMPI PUSH2 0x3B6 PUSH2 0x563 JUMP JUMPDEST JUMPDEST PUSH2 0x3C0 DUP3 PUSH2 0x5B5 JUMP JUMPDEST SWAP1 POP PUSH1 0x20 DUP2 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP2 MLOAD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP3 DUP3 MSTORE PUSH1 0x20 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x3F4 DUP3 PUSH2 0x43F JUMP JUMPDEST SWAP2 POP PUSH2 0x3FF DUP4 PUSH2 0x43F JUMP JUMPDEST SWAP3 POP DUP3 PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF SUB DUP3 GT ISZERO PUSH2 0x434 JUMPI PUSH2 0x433 PUSH2 0x505 JUMP JUMPDEST JUMPDEST DUP3 DUP3 ADD SWAP1 POP SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH1 0x0 DUP2 SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST DUP3 DUP2 DUP4 CALLDATACOPY PUSH1 0x0 DUP4 DUP4 ADD MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 JUMPDEST DUP4 DUP2 LT ISZERO PUSH2 0x476 JUMPI DUP1 DUP3 ADD MLOAD DUP2 DUP5 ADD MSTORE PUSH1 0x20 DUP2 ADD SWAP1 POP PUSH2 0x45B JUMP JUMPDEST DUP4 DUP2 GT ISZERO PUSH2 0x485 JUMPI PUSH1 0x0 DUP5 DUP5 ADD MSTORE JUMPDEST POP POP POP POP JUMP JUMPDEST PUSH2 0x494 DUP3 PUSH2 0x5B5 JUMP JUMPDEST DUP2 ADD DUP2 DUP2 LT PUSH8 0xFFFFFFFFFFFFFFFF DUP3 GT OR ISZERO PUSH2 0x4B3 JUMPI PUSH2 0x4B2 PUSH2 0x563 JUMP JUMPDEST JUMPDEST DUP1 PUSH1 0x40 MSTORE POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH2 0x4C7 DUP3 PUSH2 0x43F JUMP JUMPDEST SWAP2 POP PUSH32 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF DUP3 EQ ISZERO PUSH2 0x4FA JUMPI PUSH2 0x4F9 PUSH2 0x505 JUMP JUMPDEST JUMPDEST PUSH1 0x1 DUP3 ADD SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH32 0x4E487B7100000000000000000000000000000000000000000000000000000000 PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x1F NOT PUSH1 0x1F DUP4 ADD AND SWAP1 POP SWAP2 SWAP1 POP JUMP JUMPDEST PUSH2 0x5CF DUP2 PUSH2 0x43F JUMP JUMPDEST DUP2 EQ PUSH2 0x5DA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 SWAP1 CALL PC 0xFC PUSH32 0xD35F7A02D3BEDE288820A65242385C8CE0B51C36DF1718B811F5EF64736F6C63 NUMBER STOP ADDMOD SDIV STOP CALLER ", - "sourceMap": "24:398:0:-:0;;;;;;;;;;;;;;;;;;;" -} diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.sol b/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.sol deleted file mode 100644 index 965306a3be..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/StructArg.sol +++ /dev/null @@ -1,20 +0,0 @@ -pragma solidity 0.8.5; - -contract StructArg { - - struct Struct { - string str; - uint256 unsigned256; - uint256[] unsigned256Array; - } - - function method(Struct memory _arg) returns (string, uint256) { - uint256 total = _arg.unsigned256; - - for (uint256 i = 0; i < _arg.unsigned256Array.length; ++i) { - total += _arg.unsigned256Array[i]; - } - - return (_arg.str, total); - } -} diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.ABI.json b/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.ABI.json deleted file mode 100644 index 8c6d5f6fda..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.ABI.json +++ /dev/null @@ -1,334 +0,0 @@ -[ - { - "inputs": [], - "name": "getAddress", - "outputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getArray1D", - "outputs": [ - { - "internalType": "uint8[6]", - "name": "", - "type": "uint8[6]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getArray2D", - "outputs": [ - { - "internalType": "uint8[3][2]", - "name": "", - "type": "uint8[3][2]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getArray3D", - "outputs": [ - { - "internalType": "uint8[3][3][2]", - "name": "", - "type": "uint8[3][3][2]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBool", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBytes", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBytes1", - "outputs": [ - { - "internalType": "bytes1", - "name": "", - "type": "bytes1" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getBytes32", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getEnum", - "outputs": [ - { - "internalType": "enum ViewMethods.Enum", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInt256", - "outputs": [ - { - "internalType": "int256", - "name": "", - "type": "int256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getInt8", - "outputs": [ - { - "internalType": "int8", - "name": "", - "type": "int8" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMultiMixed", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "components": [ - { - "internalType": "string", - "name": "foo", - "type": "string" - }, - { - "internalType": "uint256", - "name": "bar", - "type": "uint256" - }, - { - "internalType": "enum ViewMethods.Enum", - "name": "baz", - "type": "uint8" - } - ], - "internalType": "struct ViewMethods.Struct", - "name": "obj", - "type": "tuple" - }, - { - "internalType": "uint8[6]", - "name": "", - "type": "uint8[6]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMultiNamed", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "foo", - "type": "string" - }, - { - "internalType": "uint256", - "name": "bar", - "type": "uint256" - }, - { - "internalType": "enum ViewMethods.Enum", - "name": "baz", - "type": "uint8" - } - ], - "internalType": "struct ViewMethods.Struct", - "name": "obj", - "type": "tuple" - }, - { - "internalType": "uint8[6]", - "name": "array1d", - "type": "uint8[6]" - }, - { - "internalType": "string", - "name": "str", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getMultiUnamed", - "outputs": [ - { - "internalType": "uint8[6]", - "name": "", - "type": "uint8[6]" - }, - { - "internalType": "string", - "name": "", - "type": "string" - }, - { - "components": [ - { - "internalType": "string", - "name": "foo", - "type": "string" - }, - { - "internalType": "uint256", - "name": "bar", - "type": "uint256" - }, - { - "internalType": "enum ViewMethods.Enum", - "name": "baz", - "type": "uint8" - } - ], - "internalType": "struct ViewMethods.Struct", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getString", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getStruct", - "outputs": [ - { - "components": [ - { - "internalType": "string", - "name": "foo", - "type": "string" - }, - { - "internalType": "uint256", - "name": "bar", - "type": "uint256" - }, - { - "internalType": "enum ViewMethods.Enum", - "name": "baz", - "type": "uint8" - } - ], - "internalType": "struct ViewMethods.Struct", - "name": "", - "type": "tuple" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUint256", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getUint8", - "outputs": [ - { - "internalType": "uint8", - "name": "", - "type": "uint8" - } - ], - "stateMutability": "view", - "type": "function" - } -] \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.Bytecode.json b/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.Bytecode.json deleted file mode 100644 index 668a97dc00..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.Bytecode.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "functionDebugData": {}, - "generatedSources": [], - "linkReferences": {}, - "object": "608060405234801561001057600080fd5b50611178806100206000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c806357cb2fc4116100a2578063b3014ffc11610071578063b3014ffc146102a3578063d42f9dc3146102c3578063ded516d2146102e3578063f0ebce5a14610301578063f5b53e171461031f57610116565b806357cb2fc41461022b57806368895979146102495780636b6e26231461026757806389ea642f1461028557610116565b80631f903037116100e95780631f9030371461019357806326780d26146101b157806329863d21146101cf578063343a875d146101ef57806338cc48311461020d57610116565b806309b1b3f21461011b5780630bcd3b331461013957806312a7b914146101575780631b80dd5a14610175575b600080fd5b61012361033d565b6040516101309190610dd3565b60405180910390f35b61014161038c565b60405161014e9190610cf8565b60405180910390f35b61015f6103ac565b60405161016c9190610ca7565b60405180910390f35b61017d6103b5565b60405161018a9190610c0f565b60405180910390f35b61019b6104ef565b6040516101a89190610cdd565b60405180910390f35b6101b961051a565b6040516101c69190610c2b565b60405180910390f35b6101d7610588565b6040516101e693929190610d8d565b60405180910390f35b6101f76105bd565b6040516102049190610e56565b60405180910390f35b6102156105c6565b6040516102229190610bf4565b60405180910390f35b6102336105e2565b6040516102409190610d50565b60405180910390f35b61025161060a565b60405161025e9190610e3b565b60405180910390f35b61026f610632565b60405161027c9190610c46565b60405180910390f35b61028d610684565b60405161029a9190610d6b565b60405180910390f35b6102ab6106a4565b6040516102ba93929190610c61565b60405180910390f35b6102cb6106d9565b6040516102da93929190610df5565b60405180910390f35b6102eb61070e565b6040516102f89190610cc2565b60405180910390f35b61030961071a565b6040516103169190610d1a565b60405180910390f35b610327610723565b6040516103349190610d35565b60405180910390f35b61034561074b565b6040518060600160405280610358610684565b815260200161036561060a565b815260200161037261071a565b600281111561038457610383611095565b5b815250905090565b60606040518060800160405280605981526020016110ea60599139905090565b60006001905090565b6103bd61077e565b604051806040016040528060405180606001604052806040518060600160405280600160ff168152602001600160ff168152602001600160ff1681525081526020016040518060600160405280600260ff168152602001600260ff168152602001600260ff1681525081526020016040518060600160405280600360ff168152602001600360ff168152602001600360ff16815250815250815260200160405180606001604052806040518060600160405280600660ff168152602001600660ff168152602001600660ff1681525081526020016040518060600160405280600560ff168152602001600560ff168152602001600560ff1681525081526020016040518060600160405280600460ff168152602001600460ff168152602001600460ff16815250815250815250905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b905090565b6105226107ab565b60405180604001604052806040518060600160405280600160ff168152602001600260ff168152602001600360ff1681525081526020016040518060600160405280600660ff168152602001600560ff168152602001600460ff16815250815250905090565b606061059261074b565b61059a6107d8565b6105a2610684565b6105aa61033d565b6105b2610632565b925092509250909192565b60006005905090565b600073deadbeef3a5632f8a64d10b04bf7e633a04bfb97905090565b60007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb905090565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff905090565b61063a6107d8565b6040518060c00160405280600160ff168152602001600260ff168152602001600360ff168152602001600660ff168152602001600560ff168152602001600460ff16815250905090565b60606040518060800160405280605981526020016110ea60599139905090565b6106ac6107d8565b60606106b661074b565b6106be610632565b6106c6610684565b6106ce61033d565b925092509250909192565b6106e161074b565b6106e96107d8565b60606106f361033d565b6106fb610632565b610703610684565b925092509250909192565b600060ff60f81b905090565b60006001905090565b60007f8000000000000000000000000000000000000000000000000000000000000001905090565b604051806060016040528060608152602001600081526020016000600281111561077857610777611095565b5b81525090565b60405180604001604052806002905b6107956107fa565b81526020019060019003908161078d5790505090565b60405180604001604052806002905b6107c2610827565b8152602001906001900390816107ba5790505090565b6040518060c00160405280600690602082028036833780820191505090505090565b60405180606001604052806003905b610811610827565b8152602001906001900390816108095790505090565b6040518060600160405280600390602082028036833780820191505090505090565b6000610855838361094f565b6101208301905092915050565b600061086e83836109a6565b60608301905092915050565b60006108868383610bd6565b60208301905092915050565b61089b81610f9b565b82525050565b6108aa81610ea3565b6108b48184610f31565b92506108bf82610e71565b8060005b838110156108f05781516108d78782610849565b96506108e283610ef0565b9250506001810190506108c3565b505050505050565b61090181610eae565b61090b8184610f3c565b925061091682610e7b565b8060005b8381101561094757815161092e8782610862565b965061093983610efd565b92505060018101905061091a565b505050505050565b61095881610eb9565b6109628184610f47565b925061096d82610e85565b8060005b8381101561099e5781516109858782610862565b965061099083610f0a565b925050600181019050610971565b505050505050565b6109af81610ec4565b6109b98184610f52565b92506109c482610e8f565b8060005b838110156109f55781516109dc878261087a565b96506109e783610f17565b9250506001810190506109c8565b505050505050565b610a0681610ecf565b610a108184610f5d565b9250610a1b82610e99565b8060005b83811015610a4c578151610a33878261087a565b9650610a3e83610f24565b925050600181019050610a1f565b505050505050565b610a5d81610fad565b82525050565b610a6c81610fb9565b82525050565b610a7b81610fe5565b82525050565b6000610a8c82610eda565b610a968185610f68565b9350610aa6818560208601611062565b610aaf816110c4565b840191505092915050565b610ac381611050565b82525050565b610ad281611050565b82525050565b610ae181611002565b82525050565b610af08161100c565b82525050565b6000610b0182610ee5565b610b0b8185610f79565b9350610b1b818560208601611062565b610b24816110c4565b840191505092915050565b6000610b3a82610ee5565b610b448185610f8a565b9350610b54818560208601611062565b610b5d816110c4565b840191505092915050565b60006060830160008301518482036000860152610b858282610af6565b9150506020830151610b9a6020860182610bb8565b506040830151610bad6040860182610aba565b508091505092915050565b610bc181611039565b82525050565b610bd081611039565b82525050565b610bdf81611043565b82525050565b610bee81611043565b82525050565b6000602082019050610c096000830184610892565b92915050565b600061024082019050610c2560008301846108a1565b92915050565b600060c082019050610c4060008301846108f8565b92915050565b600060c082019050610c5b60008301846109fd565b92915050565b600061010082019050610c7760008301866109fd565b81810360c0830152610c898185610b2f565b905081810360e0830152610c9d8184610b68565b9050949350505050565b6000602082019050610cbc6000830184610a54565b92915050565b6000602082019050610cd76000830184610a63565b92915050565b6000602082019050610cf26000830184610a72565b92915050565b60006020820190508181036000830152610d128184610a81565b905092915050565b6000602082019050610d2f6000830184610ac9565b92915050565b6000602082019050610d4a6000830184610ad8565b92915050565b6000602082019050610d656000830184610ae7565b92915050565b60006020820190508181036000830152610d858184610b2f565b905092915050565b6000610100820190508181036000830152610da88186610b2f565b90508181036020830152610dbc8185610b68565b9050610dcb60408301846109fd565b949350505050565b60006020820190508181036000830152610ded8184610b68565b905092915050565b6000610100820190508181036000830152610e108186610b68565b9050610e1f60208301856109fd565b81810360e0830152610e318184610b2f565b9050949350505050565b6000602082019050610e506000830184610bc7565b92915050565b6000602082019050610e6b6000830184610be5565b92915050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b6000819050919050565b600060029050919050565b600060029050919050565b600060039050919050565b600060039050919050565b600060069050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b6000602082019050919050565b600081905092915050565b600081905092915050565b600081905092915050565b600081905092915050565b600081905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000610fa682611019565b9050919050565b60008115159050919050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b6000819050919050565b6000819050610ffd826110d5565b919050565b6000819050919050565b60008160000b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b600061105b82610fef565b9050919050565b60005b83811015611080578082015181840152602081019050611065565b8381111561108f576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b6000601f19601f8301169050919050565b600381106110e6576110e5611095565b5b5056fe4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74a2646970667358221220e1bd5f10ea2cc4361501b294c69765a6846d3c80f1ad3b5a1dbb5513cadda40264736f6c63430008050033", - "sourceMap": "24:2603:0:-:0;;;;;;;;;;;;;;;;;;;" -} \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.sol b/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.sol deleted file mode 100644 index b5cefa0cc3..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/contracts/ViewMethods.sol +++ /dev/null @@ -1,136 +0,0 @@ -pragma solidity 0.8.5; - -contract ViewMethods { - - // bool - function getBool() public view returns (bool) { - return true; - } - - // int / uint - function getUint8() public view returns (uint8) { - return 5; - } - - function getUint256() public view returns (uint256) { - return 2**256 - 1; - } - - function getInt8() public view returns (int8) { - return -5; - } - - function getInt256() public view returns (int256) { - return (2**256 / -2) + 1; - } - - // address - function getAddress() public view returns (address) { - return 0xdeAdbeeF3A5632f8A64D10B04Bf7e633A04bFb97; - } - - // bytes1-32 - function getBytes1() public view returns (bytes1) { - return 0xFF; - } - - function getBytes32() public view returns (bytes32) { - return 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF; - } - - // bytes - function getBytes() public view returns (bytes memory) { - return "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt"; - } - - // string - function getString() public view returns (string memory) { - return "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt"; - } - - // enum - enum Enum { Foo, Bar, Baz } - - function getEnum() public view returns (Enum) { - return Enum.Bar; - } - - // arrays - function getArray1D() public view returns (uint8[6] memory) { - return [1, 2, 3, 6, 5, 4]; - } - - function getArray2D() public view returns (uint8[3][2] memory) { - return [ - [1, 2, 3], - [6, 5, 4] - ]; - } - - function getArray3D() public view returns (uint8[3][3][2] memory) { - return [ - [ - [1, 1, 1], - [2, 2, 2], - [3, 3, 3] - ], - [ - [6, 6, 6], - [5, 5, 5], - [4, 4, 4] - ] - ]; - } - - // struct - struct Struct { - string foo; - uint256 bar; - Enum baz; - } - - function getStruct() public view returns (Struct memory) { - return Struct( - getString(), - getUint256(), - getEnum() - ); - } - - // multi-value - function getMultiUnamed() public view returns ( - uint8[6] memory, - string memory, - Struct memory - ) { - return ( - getArray1D(), - getString(), - getStruct() - ); - } - - function getMultiNamed() public view returns ( - Struct memory obj, - uint8[6] memory array1d, - string memory str - ) { - return ( - getStruct(), - getArray1D(), - getString() - ); - } - - function getMultiMixed() public view returns ( - string memory, - Struct memory obj, - uint8[6] memory - ) { - return ( - getString(), - getStruct(), - getArray1D() - ); - } -} diff --git a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts b/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts deleted file mode 100644 index cea0bb531a..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/e2e.spec.ts +++ /dev/null @@ -1,1214 +0,0 @@ - -import * as Schema from "../wrap"; - -import { PolywrapClient } from "@polywrap/client-js"; -import { ClientConfig } from "@polywrap/client-config-builder-js"; -import { - initTestEnvironment, - stopTestEnvironment, - buildWrapper, - ensAddresses, - providers, -} from "@polywrap/test-env-js"; -import { - deployStorage, - addPrimitiveToArrayStorage, - addStructToStorage, - setPrimitiveToStorage, -} from "./utils/storage"; - -import { ethers, Wallet } from "ethers"; -import { keccak256 } from "js-sha3"; -import { Connections } from "../Connections"; -import { Connection } from "../Connection"; -import { getDefaultConfig } from "./helpers/getDefaultConfig"; - -const { hash: namehash } = require("eth-ens-namehash"); -const contracts = { - StructArg: { - abi: require("./contracts/StructArg.ABI.json"), - bytecode: `0x${require("./contracts/StructArg.Bytecode.json").object}`, - }, - SimpleStorage: { - abi: require("./contracts/SimpleStorage.ABI.json"), - bytecode: `0x${require("./contracts/SimpleStorage.Bytecode.json").object}`, - abiSinglePrimitiveMethod: - '[{"inputs":[],"name":"get","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]', - abiArrayPrimitivesMethod: - '[{"inputs":[],"name":"getSimple","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}]', - abiArrayStructsMethod: - '[{"inputs":[],"name":"getJobs","outputs":[{"components":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"internalType":"struct SimpleStorage.Job[]","name":"","type":"tuple[]"}],"stateMutability":"view","type":"function"}]', - }, - ViewMethods: { - abi: require("./contracts/ViewMethods.ABI.json"), - bytecode: `0x${require("./contracts/ViewMethods.Bytecode.json").object}` - } -}; - -jest.setTimeout(360000); - -describe("Ethereum Plugin", () => { - let client: PolywrapClient; - let ensAddress: string; - let resolverAddress: string; - let registrarAddress: string; - let defaultConfig: Partial; - let viewMethodsAddress: string; - const signer = "0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - - const wrapperPath = `${__dirname}/integration`; - const uri = `fs/${wrapperPath}/build`; - - beforeAll(async () => { - await initTestEnvironment(); - - ensAddress = ensAddresses.ensAddress; - resolverAddress = ensAddresses.resolverAddress; - registrarAddress = ensAddresses.registrarAddress; - - const connections = new Connections({ - networks: { - testnet: new Connection({ - provider: providers.ethereum, - signer: new Wallet( - "0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d" - ), - }), - }, - defaultNetwork: "testnet", - }); - - defaultConfig = getDefaultConfig(connections); - client = new PolywrapClient(defaultConfig); - await buildWrapper(wrapperPath); - - const response = await client.invoke({ - uri, - method: "deployContract", - args: { - abi: JSON.stringify(contracts.ViewMethods.abi), - bytecode: contracts.ViewMethods.bytecode - } - }); - - if (!response.ok) fail(response.error); - viewMethodsAddress = response.value; - }); - - afterAll(async () => { - await stopTestEnvironment(); - }); - - it("callContractView", async () => { - const node = namehash("whatever.eth"); - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: ensAddress, - method: - "function resolver(bytes32 node) external view returns (address)", - args: [node], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value).toBe("0x0000000000000000000000000000000000000000"); - }); - - it("callContractView (primitive value - string ABI)", async () => { - const storageAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await setPrimitiveToStorage( - contracts.SimpleStorage.abi, - storageAddress, - "100" - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: storageAddress, - method: "function get() public view returns (uint256)", - args: [], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toEqual("100"); - }); - - it("callContractView (primitive value - JSON ABI)", async () => { - const storageAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await setPrimitiveToStorage( - contracts.SimpleStorage.abi, - storageAddress, - "100" - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: storageAddress, - method: contracts.SimpleStorage.abiSinglePrimitiveMethod, - args: [], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toEqual("100"); - }); - - it("callContractView (primitives array - string ABI)", async () => { - const storageAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "100" - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "90" - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: storageAddress, - method: "function getSimple() public view returns (uint256[] memory)", - args: [], - }, - }); - - if (!response.ok) fail(response.error); - - if (!response.value) { - throw new Error("Empty data on view call, expecting JSON"); - } - const result = JSON.parse(response.value); - - expect(result.length).toEqual(2); - expect(result[0]).toEqual("100"); - expect(result[1]).toEqual("90"); - }); - - it("callContractView (primitives array - JSON ABI)", async () => { - const storageAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "100" - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "90" - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: storageAddress, - method: contracts.SimpleStorage.abiArrayPrimitivesMethod, - args: [], - }, - }); - - if (!response.ok) fail(response.error); - - if (!response.value) { - throw new Error("Empty data on view call, expecting JSON"); - } - const result = JSON.parse(response.value); - - expect(result.length).toEqual(2); - expect(result[0]).toEqual("100"); - expect(result[1]).toEqual("90"); - }); - - it("callContractView (primitives array - non-array JSON ABI)", async () => { - const storageAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "100" - ); - await addPrimitiveToArrayStorage( - contracts.SimpleStorage.abi, - storageAddress, - "90" - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: storageAddress, - method: '{"inputs":[],"name":"getSimple","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"}', - args: [], - }, - }); - - if (!response.ok) fail(response.error); - - if (!response.value) { - throw new Error("Empty data on view call, expecting JSON"); - } - const result = JSON.parse(response.value); - - expect(result.length).toEqual(2); - expect(result[0]).toEqual("100"); - expect(result[1]).toEqual("90"); - }); - - it("callContractView (struct array empty)", async () => { - const queueAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: queueAddress, - method: contracts.SimpleStorage.abiArrayStructsMethod, - args: [], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toEqual("[]"); - }); - - it("callContractView (struct array single element)", async () => { - const queueAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await addStructToStorage(contracts.SimpleStorage.abi, queueAddress, [ - queueAddress, - "100", - ]); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: queueAddress, - method: contracts.SimpleStorage.abiArrayStructsMethod, - args: [], - }, - }); - - if (!response.ok) fail(response.error); - - if (!response.value) { - throw new Error("Empty data on view call, expecting JSON"); - } - expect(response.value).toEqual(`[["${queueAddress}","100"]]`) - }); - - it("callContractView (struct array multiple elements)", async () => { - const queueAddress = await deployStorage( - contracts.SimpleStorage.abi, - contracts.SimpleStorage.bytecode - ); - await addStructToStorage(contracts.SimpleStorage.abi, queueAddress, [ - queueAddress, - "100", - ]); - await addStructToStorage(contracts.SimpleStorage.abi, queueAddress, [ - ensAddress, - "99", - ]); - - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: queueAddress, - method: contracts.SimpleStorage.abiArrayStructsMethod, - args: [], - }, - }); - - if (!response.ok) fail(response.error); - - if (!response.value) { - throw new Error("Empty data on view call, expecting JSON"); - } - const result = JSON.parse(response.value); - - expect(result.length).toEqual(2); - expect(result[0][0]).toEqual(queueAddress); - expect(result[0][1]).toEqual("100"); - expect(result[1][0]).toEqual(ensAddress); - expect(result[1][1]).toEqual("99"); - }); - - it("callContractStatic (no error)", async () => { - const label = "0x" + keccak256("testwhatever"); - const response = await client.invoke({ - uri, - method: "callContractStatic", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - txOverrides: { - value: null, - nonce: null, - gasPrice: "50", - gasLimit: "200000", - }, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value?.error).toBeFalsy(); - expect(response.value?.result).toBe(""); - }); - - it("callContractStatic (expecting error)", async () => { - const label = "0x" + keccak256("testwhatever"); - const response = await client.invoke({ - uri, - method: "callContractStatic", - args: { - address: registrarAddress, - method: "function registerr(bytes32 label, address owner)", - args: [label, signer], - txOverrides: { - value: null, - nonce: null, - gasPrice: "50", - gasLimit: "1", - }, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value?.error).toBeTruthy(); - expect(response.value?.result).toContain( - "missing revert data in call exception" - ); - }); - - it("getBalance", async () => { - const signerAddressQuery = await client.invoke({ - uri, - method: "getSignerAddress", - }); - if (!signerAddressQuery.ok) fail(signerAddressQuery.error); - - const response = await client.invoke({ - uri, - method: "getBalance", - args: { - address: signerAddressQuery.value, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - }); - - it("encodeParams", async () => { - const response = await client.invoke({ - uri, - method: "encodeParams", - args: { - types: ["uint256", "uint256", "address"], - values: ["8", "16", "0x0000000000000000000000000000000000000000"], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBe( - "0x000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000" - ); - - const acceptsTupleArg = await client.invoke({ - uri, - method: "encodeParams", - args: { - types: ["tuple(uint256 startTime, uint256 endTime, address token)"], - values: [ - JSON.stringify({ - startTime: "8", - endTime: "16", - token: "0x0000000000000000000000000000000000000000", - }), - ], - }, - }); - - if (!acceptsTupleArg.ok) fail(acceptsTupleArg.error); - }); - - it("encodeFunction", async () => { - const response = await client.invoke({ - uri, - method: "encodeFunction", - args: { - method: "function increaseCount(uint256)", - args: ["100"], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBe( - "0x46d4adf20000000000000000000000000000000000000000000000000000000000000064" - ); - - const acceptsArrayArg = await client.invoke({ - uri, - method: "encodeFunction", - args: { - method: "function createArr(uint256[] memory)", - args: [JSON.stringify([1, 2])], - }, - }); - - if (!acceptsArrayArg.ok) fail(acceptsArrayArg.error); - }); - - it("solidityPack", async () => { - const types: string[] = [ - "address", - "uint24", - "address", - "uint24", - "address", - ]; - const values: string[] = [ - "0x0000000000000000000000000000000000000001", - "3000", - "0x0000000000000000000000000000000000000002", - "3000", - "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - ]; - const result = await client.invoke({ - uri: uri, - method: "solidityPack", - args: { - types, - values, - }, - }); - - if (!result.ok) fail(result.error); - expect(result.value).toBeTruthy(); - expect(result.value).toBe( - "0x0000000000000000000000000000000000000001000bb80000000000000000000000000000000000000002000bb8c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2" - ); - }); - - it("solidityKeccak256", async () => { - const types: string[] = [ - "address", - "uint24", - "address", - "uint24", - "address", - ]; - const values: string[] = [ - "0x0000000000000000000000000000000000000001", - "3000", - "0x0000000000000000000000000000000000000002", - "3000", - "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - ]; - const result = await client.invoke({ - uri: uri, - method: "solidityKeccak256", - args: { - types, - values, - }, - }); - - if (!result.ok) fail(result.error); - expect(result.value).toBeTruthy(); - expect(result.value).toBe( - "0x5dd4ee83f9bab0157f0e929b6dddd106fd7de6e5089f0f05c2c0b861e3807588" - ); - }); - - it("soliditySha256", async () => { - const types: string[] = [ - "address", - "uint24", - "address", - "uint24", - "address", - ]; - const values: string[] = [ - "0x0000000000000000000000000000000000000001", - "3000", - "0x0000000000000000000000000000000000000002", - "3000", - "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", - ]; - const result = await client.invoke({ - uri: uri, - method: "soliditySha256", - args: { - types, - values, - }, - }); - - if (!result.ok) fail(result.error); - expect(result.value).toBeTruthy(); - expect(result.value).toBe( - "0x8652504faf6e0d175e62c1d9c7e10d636d5ab8f153ec3257dab1726639058d27" - ); - }); - - it("getSignerAddress", async () => { - const response = await client.invoke({ - uri, - method: "getSignerAddress", - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value?.startsWith("0x")).toBe(true); - }); - - it("getSignerBalance", async () => { - const response = await client.invoke({ - uri, - method: "getSignerBalance", - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - }); - - it("getSignerTransactionCount", async () => { - const response = await client.invoke({ - uri, - method: "getSignerTransactionCount", - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(Number(response.value)).toBeTruthy(); - }); - - it("getGasPrice", async () => { - const response = await client.invoke({ - uri, - method: "getGasPrice", - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(Number(response.value)).toBeTruthy(); - }); - - it("estimateTransactionGas", async () => { - const data = contracts.SimpleStorage.bytecode; - - const response = await client.invoke({ - uri, - method: "estimateTransactionGas", - args: { - tx: { - data: data, - }, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - const num = ethers.BigNumber.from(response.value); - expect(num.gt(0)).toBeTruthy(); - }); - - it("estimateContractCallGas", async () => { - const label = "0x" + keccak256("testwhatever2"); - const response = await client.invoke({ - uri, - method: "estimateContractCallGas", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - const num = ethers.BigNumber.from(response.value); - expect(num.gt(0)).toBeTruthy(); - }); - - it("checkAddress", async () => { - const response = await client.invoke({ - uri, - method: "checkAddress", - args: { - address: signer, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value).toEqual(true); - }); - - it("toWei", async () => { - const response = await client.invoke({ - uri, - method: "toWei", - args: { - eth: "20", - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value).toEqual("20000000000000000000"); - }); - - it("toEth", async () => { - const response = await client.invoke({ - uri, - method: "toEth", - args: { - wei: "20000000000000000000", - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value).toEqual("20.0"); - }); - - it("awaitTransaction", async () => { - const data = contracts.SimpleStorage.bytecode; - - const response = await client.invoke({ - uri, - method: "sendTransaction", - args: { - tx: { - data: data, - }, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value?.hash).toBeTruthy(); - const txHash = response.value?.hash as string; - - const awaitResponse = await client.invoke({ - uri, - method: "awaitTransaction", - args: { - txHash: txHash, - confirmations: 1, - timeout: 60000, - }, - }); - - if (!awaitResponse.ok) fail(awaitResponse.error); - expect(awaitResponse.value).toBeDefined(); - expect(awaitResponse.value.transactionHash).toBeDefined(); - }); - - it("waitForEvent (NameTransfer)", async () => { - const event = "event Transfer(bytes32 indexed node, address owner)"; - const label = "0x" + keccak256("testwhatever10"); - const domain = "testwhatever10.eth"; - const newOwner = "0xFFcf8FDEE72ac11b5c542428B35EEF5769C409f0"; - - const listenerPromise = client - .invoke({ - uri, - method: "waitForEvent", - args: { - address: ensAddress, - event: event, - args: [namehash(domain)], - timeout: 20000, - }, - }) - .then((result) => { - if (result.ok) return result.value; - else fail(result.error); - }) - .then((result: Schema.EventNotification) => { - expect(typeof result.data === "string").toBe(true); - expect(typeof result.address === "string").toBe(true); - expect(result.log).toBeDefined(); - expect(typeof result.log.transactionHash === "string").toBe(true); - }); - - await client.invoke({ - uri, - method: "callContractMethod", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - }, - }); - - await client.invoke({ - uri, - method: "callContractMethod", - args: { - address: ensAddress, - method: "function setOwner(bytes32 node, address owner) external", - args: [namehash(domain), newOwner], - }, - }); - - await listenerPromise; - }); - - it("waitForEvent (NewResolver)", async () => { - const event = "event NewResolver(bytes32 indexed node, address resolver)"; - const label = "0x" + keccak256("testwhatever12"); - const domain = "testwhatever12.eth"; - - const listenerPromise = client - .invoke({ - uri, - method: "waitForEvent", - args: { - address: ensAddress, - event: event, - args: [], - timeout: 20000, - }, - }) - .then((result) => { - if (result.ok) return result.value; - else fail(result.error); - }) - .then((result: Schema.EventNotification) => { - expect(typeof result.data === "string").toBe(true); - expect(typeof result.address === "string").toBe(true); - expect(result.log).toBeDefined(); - expect(typeof result.log.transactionHash === "string").toBe(true); - }); - - await client.invoke({ - uri, - method: "callContractMethod", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - }, - }); - - await client.invoke({ - uri, - method: "callContractMethod", - args: { - address: ensAddress, - method: "function setResolver(bytes32 node, address owner)", - args: [namehash(domain), resolverAddress], - }, - }); - - await listenerPromise; - }); - - it("getNetwork - mainnet", async () => { - const mainnetNetwork = await client.invoke({ - uri, - method: "getNetwork", - args: { - connection: { - networkNameOrChainId: "mainnet", - }, - }, - }); - - if (!mainnetNetwork.ok) fail(mainnetNetwork.error); - expect(mainnetNetwork.value).toBeTruthy(); - expect(mainnetNetwork.value?.chainId).toBe("1"); - expect(mainnetNetwork.value?.name).toBe("homestead"); - expect(mainnetNetwork.value?.ensAddress).toBe( - "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" - ); - }); - it("getNetwork - polygon", async () => { - const polygonNetwork = await client.invoke({ - uri, - method: "getNetwork", - args: { - connection: { - node: "https://polygon-rpc.com", - }, - }, - }); - - if (!polygonNetwork.ok) fail(polygonNetwork.error); - expect(polygonNetwork.value).toBeTruthy(); - expect(polygonNetwork.value?.chainId).toBe("137"); - expect(polygonNetwork.value?.name).toBe("matic"); - expect(polygonNetwork.value?.ensAddress).toBeFalsy(); - }); - - it("getNetwork - mainnet with env", async () => { - const mainnetClient = new PolywrapClient({ - envs: [ - { - uri: "wrap://ens/ethereum.polywrap.eth", - env: { - connection: { - networkNameOrChainId: "mainnet", - }, - }, - }, - ], - }); - const mainnetNetwork = await mainnetClient.invoke({ - uri, - method: "getNetwork", - }); - - if (!mainnetNetwork.ok) fail(mainnetNetwork.error); - expect(mainnetNetwork.value).toBeTruthy(); - expect(mainnetNetwork.value?.chainId).toBe("1"); - expect(mainnetNetwork.value?.name).toBe("homestead"); - expect(mainnetNetwork.value?.ensAddress).toBe( - "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" - ); - }); - - it("getNetwork - polygon with env", async () => { - const polygonClient = new PolywrapClient({ - envs: [ - { - uri: "wrap://ens/ethereum.polywrap.eth", - env: { - connection: { - node: "https://polygon-rpc.com", - }, - }, - }, - ], - }); - const polygonNetwork = await polygonClient.invoke({ - uri, - method: "getNetwork", - }); - - if (!polygonNetwork.ok) fail(polygonNetwork.error); - expect(polygonNetwork.value).toBeTruthy(); - expect(polygonNetwork.value?.chainId).toBe("137"); - expect(polygonNetwork.value?.name).toBe("matic"); - }); - - it("requestAccounts", async () => { - let result = await client.invoke({ - uri, - method: "requestAccounts", - }); - result = result as { ok: false; error: Error | undefined }; - // eth_requestAccounts is not supported by Ganache - // this RPC error indicates that the method call was attempted - expect( - result.error?.message.indexOf( - "Method eth_requestAccounts not supported" - ) - ).toBeGreaterThanOrEqual(0); - }); - - it("callContractMethod", async () => { - const label = "0x" + keccak256("testwhatever"); - const response = await client.invoke({ - uri, - method: "callContractMethod", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - txOverrides: { - value: null, - nonce: null, - gasPrice: "50", - gasLimit: "200000", - }, - }, - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - }); - - it("callContractMethodAndWait", async () => { - const label = "0x" + keccak256("testwhatever"); - const response = await client.invoke({ - uri, - method: "callContractMethodAndWait", - args: { - address: registrarAddress, - method: "function register(bytes32 label, address owner)", - args: [label, signer], - txOverrides: { - value: null, - nonce: null, - gasPrice: "50", - gasLimit: "200000" - } - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - }); - - it("sendTransaction", async () => { - const response = await client.invoke({ - uri, - method: "sendTransaction", - args: { - tx: { data: contracts.SimpleStorage.bytecode } - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value?.hash).toBeDefined(); - }); - - it("sendTransactionAndWait", async () => { - const response = await client.invoke({ - uri, - method: "sendTransactionAndWait", - args: { - tx: { data: contracts.SimpleStorage.bytecode } - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect( - response.value?.transactionHash - ).toBeDefined(); - }); - - it("deployContract", async () => { - const response = await client.invoke({ - uri, - method: "deployContract", - args: { - abi: JSON.stringify(contracts.SimpleStorage.abi), - bytecode: contracts.SimpleStorage.bytecode - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBeDefined(); - expect(response.value).toContain("0x"); - }); - - it("signMessage", async () => { - const response = await client.invoke({ - uri, - method: "signMessage", - args: { - message: "Hello World" - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBe( - "0xa4708243bf782c6769ed04d83e7192dbcf4fc131aa54fde9d889d8633ae39dab03d7babd2392982dff6bc20177f7d887e27e50848c851320ee89c6c63d18ca761c" - ); - }); - - it("signMessageBytes", async () => { - const encoder = new TextEncoder(); - const response = await client.invoke({ - uri, - method: "signMessageBytes", - args: { - bytes: encoder.encode("Hello World") - } - }); - - if (!response.ok) fail(response.error); - expect(response.value).toBe( - "0xa4708243bf782c6769ed04d83e7192dbcf4fc131aa54fde9d889d8633ae39dab03d7babd2392982dff6bc20177f7d887e27e50848c851320ee89c6c63d18ca761c" - ); - }); - - it("sendRPC", async () => { - const res = await client.invoke({ - uri, - method: "sendRPC", - args: { - method: "eth_blockNumber", - params: [], - }, - }); - - if (!res.ok) fail(res.error); - expect(res.value).toBeDefined(); - }); - - it("Struct Argument", async () => { - const response1 = await client.invoke({ - uri, - method: "deployContract", - args: { - abi: JSON.stringify(contracts.StructArg.abi), - bytecode: contracts.StructArg.bytecode, - }, - }); - - if (!response1.ok) fail(response1.error); - expect(response1.value).toBeDefined(); - expect(response1.value).toContain("0x"); - - const address = response1.value; - const structArg = JSON.stringify({ - str: "foo bar", - unsigned256: 123456, - unsigned256Array: [2345, 6789], - }); - - const response2 = await client.invoke({ - uri, - method: "callContractMethodAndWait", - args: { - address: address, - method: "function method(tuple(string str, uint256 unsigned256, uint256[] unsigned256Array) _arg) returns (string, uint256)", - args: [structArg], - }, - }); - - if (!response2.ok) fail(response2.error); - expect(response2.value).toBeDefined(); - expect(response2.value?.transactionHash).toBeDefined(); - }); - - describe("ViewMethods", () => { - - const testViewMethod = async ( - methodName: string, - returnType: string, - returnValue: string - ) => { - const response = await client.invoke({ - uri, - method: "callContractView", - args: { - address: viewMethodsAddress, - method: `function ${methodName}() public view returns (${returnType})` - }, - }); - if (!response.ok) fail(response.error); - expect(response.value).toBe(returnValue); - } - - it("ViewMethods - getBool", async () => { - await testViewMethod("getBool", "bool", "true"); - }); - - it("ViewMethods - getUint8", async () => { - await testViewMethod("getUint8", "uint8", "5"); - }); - - const getUint256Result = "115792089237316195423570985008687907853269984665640564039457584007913129639935"; - it("ViewMethods - getUint256", async () => { - await testViewMethod("getUint256", "uint256", getUint256Result); - }); - - it("ViewMethods - getInt8", async () => { - await testViewMethod("getInt8", "int8", "-5"); - }); - - it("ViewMethods - getInt256", async () => { - await testViewMethod("getInt256", "int256", "-57896044618658097711785492504343953926634992332820282019728792003956564819967"); - }); - - it("ViewMethods - getAddress", async () => { - await testViewMethod("getAddress", "address", "0xdeAdbeeF3A5632f8A64D10B04Bf7e633A04bFb97"); - }); - - it("ViewMethods - getBytes1", async () => { - await testViewMethod("getBytes1", "bytes1", "0xff"); - }); - - it("ViewMethods - getBytes32", async () => { - await testViewMethod("getBytes32", "bytes32", "0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); - }); - - it("ViewMethods - getBytes", async () => { - await testViewMethod("getBytes", "bytes", "0x4c6f72656d20697073756d20646f6c6f722073697420616d65742c20636f6e73656374657475722061646970697363696e6720656c69742c2073656420646f20656975736d6f642074656d706f7220696e6369646964756e74"); - }); - - const getStringResult = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt"; - it("ViewMethods - getString", async () => { - await testViewMethod("getString", "string", getStringResult); - }); - - it("ViewMethods - getEnum", async () => { - await testViewMethod("getEnum", "uint8", "1"); - }); - - const getArray1DResult = "[1,2,3,6,5,4]"; - it("ViewMethods - getArray1D", async () => { - await testViewMethod("getArray1D", "uint8[6]", getArray1DResult); - }); - - it("ViewMethods - getArray2D", async () => { - await testViewMethod("getArray2D", "uint8[3][2]", '[[1,2,3],[6,5,4]]'); - }); - - it("ViewMethods - getArray3D", async () => { - await testViewMethod("getArray3D", "uint8[3][3][2]", '[[[1,1,1],[2,2,2],[3,3,3]],[[6,6,6],[5,5,5],[4,4,4]]]'); - }); - - const getStructType = "tuple(string foo, uint256 bar, uint8 baz)"; - const getStructResult = `["${getStringResult}","${getUint256Result}",1]`; - it("ViewMethods - getStruct", async () => { - await testViewMethod("getStruct", getStructType, getStructResult); - }); - - it("ViewMethods - getMultiUnamed", async () => { - await testViewMethod("getMultiUnamed", `uint8[6],string,${getStructType}`, `[${getArray1DResult},"${getStringResult}",${getStructResult}]`); - }); - - it("ViewMethods - getMultiNamed", async () => { - await testViewMethod("getMultiNamed", `${getStructType},uint8[6],string`, `[${getStructResult},${getArray1DResult},"${getStringResult}"]`); - }); - - it("ViewMethods - getMultiMixed", async () => { - await testViewMethod("getMultiMixed", `string,${getStructType},uint8[6]`, `["${getStringResult}",${getStructResult},${getArray1DResult}]`); - }); - }); -}); diff --git a/packages/js/plugins/ethereum/src/__tests__/helpers/getDefaultConfig.ts b/packages/js/plugins/ethereum/src/__tests__/helpers/getDefaultConfig.ts deleted file mode 100644 index dc37a50259..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/helpers/getDefaultConfig.ts +++ /dev/null @@ -1,45 +0,0 @@ -import { coreInterfaceUris } from "@polywrap/core-js"; -import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; -import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; -import { ethereumPlugin, Connections } from "../.."; -import { providers } from "@polywrap/test-env-js"; -import { - defaultIpfsProviders, - ClientConfig, -} from "@polywrap/client-config-builder-js"; - -export const getDefaultConfig = ( - connections: Connections -): Partial => { - return { - envs: [ - { - uri: "wrap://ens/ipfs.polywrap.eth", - env: { - provider: providers.ipfs, - fallbackProviders: defaultIpfsProviders, - }, - }, - ], - interfaces: [ - { - interface: coreInterfaceUris.uriResolver, - implementations: ["wrap://ens/fs-resolver.polywrap.eth"], - }, - ], - packages: [ - { - uri: "wrap://ens/ethereum.polywrap.eth", - package: ethereumPlugin({ connections }), - }, - { - uri: "wrap://ens/fs-resolver.polywrap.eth", - package: fileSystemResolverPlugin({}), - }, - { - uri: "wrap://ens/fs.polywrap.eth", - package: fileSystemPlugin({}), - }, - ], - }; -}; diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/.gitignore b/packages/js/plugins/ethereum/src/__tests__/integration/.gitignore deleted file mode 100644 index ccc3d015c7..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -build -node_modules -wrap diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/package.json b/packages/js/plugins/ethereum/src/__tests__/integration/package.json deleted file mode 100644 index 6d74d0b12e..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/package.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "name": "ethereum-js-plugin-integration-test", - "description": "Ethereum JS Plugin Integration Test", - "private": true, - "version": "0.10.0-pre.5", - "scripts": { - "build": "yarn build:polywrap", - "build:polywrap": "npx polywrap build", - "test:env:up": "npx polywrap infra up --modules=eth-ens-ipfs", - "test:env:down": "npx polywrap infra down --modules=eth-ens-ipfs", - "deploy": "npx polywrap deploy" - }, - "dependencies": { - "@polywrap/wasm-as": "0.10.0-pre.5", - "assemblyscript": "0.19.23" - } -} diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.build.yaml b/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.build.yaml deleted file mode 100644 index c3dcbe22cb..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.build.yaml +++ /dev/null @@ -1,9 +0,0 @@ -format: 0.2.0 -strategies: - image: - node_version: "14.16.0" - include: - - ./package.json -linked_packages: - - name: "@polywrap/wasm-as" - path: ../../../../../../wasm/as diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.yaml b/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.yaml deleted file mode 100644 index 95d9d69e37..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/polywrap.yaml +++ /dev/null @@ -1,12 +0,0 @@ -format: 0.2.0 -project: - name: EthereumIntegration - type: wasm/assemblyscript -source: - module: ./src/index.ts - schema: ./src/schema.graphql - import_abis: - - uri: "wrap://ens/ethereum.polywrap.eth" - abi: ../../../build/wrap.info -extensions: - build: ./polywrap.build.yaml diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts b/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts deleted file mode 100644 index d9192369a5..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/src/index.ts +++ /dev/null @@ -1,315 +0,0 @@ -import { - Ethereum_Module, - Ethereum_EventNotification, - Ethereum_StaticTxResult, - Ethereum_TxReceipt, - Ethereum_Network, - Args_callContractView, - Args_callContractStatic, - Args_encodeParams, - Args_encodeFunction, - Args_solidityPack, - Args_solidityKeccak256, - Args_soliditySha256, - Args_getSignerAddress, - Args_getSignerBalance, - Args_getSignerTransactionCount, - Args_getGasPrice, - Args_estimateTransactionGas, - Args_estimateContractCallGas, - Args_checkAddress, - Args_toWei, - Args_toEth, - Args_awaitTransaction, - Args_waitForEvent, - Args_getNetwork, - Args_getBalance, - Ethereum_TxResponse, - Args_callContractMethod, - Args_callContractMethodAndWait, - Args_deployContract, - Args_sendRPC, - Args_sendTransaction, - Args_sendTransactionAndWait, - Args_signMessage, - Args_signMessageBytes, - Args_requestAccounts, -} from "./wrap"; -import { BigInt } from "@polywrap/wasm-as"; - -export function callContractView( - args: Args_callContractView -): string { - return Ethereum_Module.callContractView({ - address: args.address, - method: args.method, - args: args.args, - connection: args.connection - }).unwrap(); -} - -export function callContractStatic( - args: Args_callContractStatic -): Ethereum_StaticTxResult { - return Ethereum_Module.callContractStatic({ - address: args.address, - method: args.method, - args: args.args, - connection: args.connection, - txOverrides: args.txOverrides - }).unwrap(); -} - -export function getBalance( - args: Args_getBalance -): BigInt { - return Ethereum_Module.getBalance({ - address: args.address, - blockTag: args.blockTag, - connection: args.connection - }).unwrap(); -} - -export function encodeParams( - args: Args_encodeParams -): string { - return Ethereum_Module.encodeParams({ - types: args.types, - values: args.values - }).unwrap(); -} - -export function encodeFunction( - args: Args_encodeFunction -): string { - return Ethereum_Module.encodeFunction({ - method: args.method, - args: args.args - }).unwrap(); -} - -export function solidityPack( - args: Args_solidityPack -): string { - return Ethereum_Module.solidityPack({ - types: args.types, - values: args.values - }).unwrap(); -} - -export function solidityKeccak256( - args: Args_solidityKeccak256 -): string { - return Ethereum_Module.solidityKeccak256({ - types: args.types, - values: args.values - }).unwrap(); -} - -export function soliditySha256( - args: Args_soliditySha256 -): string { - return Ethereum_Module.soliditySha256({ - types: args.types, - values: args.values - }).unwrap(); -} - -export function getSignerAddress( - args: Args_getSignerAddress -): string { - return Ethereum_Module.getSignerAddress({ - connection: args.connection - }).unwrap(); -} - -export function getSignerBalance( - args: Args_getSignerBalance -): BigInt { - return Ethereum_Module.getSignerBalance({ - blockTag: args.blockTag, - connection: args.connection - }).unwrap(); -} - -export function getSignerTransactionCount( - args: Args_getSignerTransactionCount -): BigInt { - return Ethereum_Module.getSignerTransactionCount({ - blockTag: args.blockTag, - connection: args.connection - }).unwrap(); -} - -export function getGasPrice( - args: Args_getGasPrice -): BigInt { - return Ethereum_Module.getGasPrice({ - connection: args.connection - }).unwrap(); -} - -export function estimateTransactionGas( - args: Args_estimateTransactionGas -): BigInt { - return Ethereum_Module.estimateTransactionGas({ - tx: args.tx, - connection: args.connection - }).unwrap(); -} - -export function estimateContractCallGas( - args: Args_estimateContractCallGas -): BigInt { - return Ethereum_Module.estimateContractCallGas({ - address: args.address, - method: args.method, - args: args.args, - connection: args.connection, - txOverrides: args.txOverrides - }).unwrap(); -} - -export function checkAddress( - args: Args_checkAddress -): bool { - return Ethereum_Module.checkAddress({ - address: args.address - }).unwrap(); -} - -export function toWei( - args: Args_toWei -): BigInt { - return Ethereum_Module.toWei({ - eth: args.eth - }).unwrap(); -} - -export function toEth( - args: Args_toEth -): String { - return Ethereum_Module.toEth({ - wei: args.wei - }).unwrap(); -} - -export function awaitTransaction( - args: Args_awaitTransaction -): Ethereum_TxReceipt { - return Ethereum_Module.awaitTransaction({ - txHash: args.txHash, - confirmations: args.confirmations, - timeout: args.timeout, - connection: args.connection - }).unwrap(); -} - -export function waitForEvent( - args: Args_waitForEvent -): Ethereum_EventNotification { - return Ethereum_Module.waitForEvent({ - address: args.address, - event: args.event, - args: args.args, - timeout: args.timeout, - connection: args.connection - }).unwrap(); -} - -export function getNetwork( - args: Args_getNetwork -): Ethereum_Network { - return Ethereum_Module.getNetwork({ - connection: args.connection - }).unwrap(); -} - -export function requestAccounts( - args: Args_requestAccounts -): string[] { - return Ethereum_Module.requestAccounts({ - connection: args.connection - }).unwrap(); -} - -export function callContractMethod( - args: Args_callContractMethod -): Ethereum_TxResponse { - return Ethereum_Module.callContractMethod({ - address: args.address, - method: args.method, - args: args.args, - connection: args.connection, - txOverrides: args.txOverrides - }).unwrap(); -} - -export function callContractMethodAndWait( - args: Args_callContractMethodAndWait -): Ethereum_TxReceipt { - return Ethereum_Module.callContractMethodAndWait({ - address: args.address, - method: args.method, - args: args.args, - connection: args.connection, - txOverrides: args.txOverrides - }).unwrap(); -} - -export function sendTransaction( - args: Args_sendTransaction -): Ethereum_TxResponse { - return Ethereum_Module.sendTransaction({ - tx: args.tx, - connection: args.connection - }).unwrap(); -} - -export function sendTransactionAndWait( - args: Args_sendTransactionAndWait -): Ethereum_TxReceipt { - return Ethereum_Module.sendTransactionAndWait({ - tx: args.tx, - connection: args.connection - }).unwrap(); -} - -export function deployContract( - args: Args_deployContract -): string { - return Ethereum_Module.deployContract({ - abi: args.abi, - bytecode: args.bytecode, - args: args.args, - connection: args.connection - }).unwrap(); -} - -export function signMessage( - args: Args_signMessage -): string { - return Ethereum_Module.signMessage({ - message: args.message, - connection: args.connection - }).unwrap(); -} - -export function signMessageBytes( - args: Args_signMessageBytes -): string { - return Ethereum_Module.signMessageBytes({ - bytes: args.bytes, - connection: args.connection - }).unwrap(); -} - -export function sendRPC( - args: Args_sendRPC -): string | null { - return Ethereum_Module.sendRPC({ - method: args.method, - params: args.params, - connection: args.connection - }).unwrap(); -} diff --git a/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql b/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql deleted file mode 100644 index 897ae98bd3..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/integration/src/schema.graphql +++ /dev/null @@ -1,164 +0,0 @@ -#import { Module, Connection, Network, EventNotification, StaticTxResult, TxOverrides, TxRequest, TxReceipt, TxResponse } into Ethereum from "wrap://ens/ethereum.polywrap.eth" - -type Module { - callContractView( - address: String! - method: String! - args: [String!] - connection: Ethereum_Connection - ): String! - - callContractStatic( - address: String! - method: String! - args: [String!] - connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): Ethereum_StaticTxResult! - - getBalance( - address: String! - blockTag: BigInt - connection: Ethereum_Connection - ): BigInt! - - encodeParams( - types: [String!]! - values: [String!]! - ): String! - - encodeFunction( - method: String! - args: [String!] - ): String! - - solidityPack( - types: [String!]! - values: [String!]! - ): String! - - solidityKeccak256( - types: [String!]! - values: [String!]! - ): String! - - soliditySha256( - types: [String!]! - values: [String!]! - ): String! - - getSignerAddress( - connection: Ethereum_Connection - ): String! - - getSignerBalance( - blockTag: BigInt - connection: Ethereum_Connection - ): BigInt! - - getSignerTransactionCount( - blockTag: BigInt - connection: Ethereum_Connection - ): BigInt! - - getGasPrice( - connection: Ethereum_Connection - ): BigInt! - - estimateTransactionGas( - tx: Ethereum_TxRequest! - connection: Ethereum_Connection - ): BigInt! - - estimateContractCallGas( - address: String! - method: String! - args: [String!] - connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): BigInt! - - checkAddress( - address: String! - ): Boolean! - - toWei( - eth: String! - ): BigInt! - - toEth( - wei: BigInt! - ): String! - - awaitTransaction( - txHash: String! - confirmations: UInt32! - timeout: UInt32! - connection: Ethereum_Connection - ): Ethereum_TxReceipt! - - waitForEvent( - address: String! - event: String! - args: [String!] - timeout: UInt32 - connection: Ethereum_Connection - ): Ethereum_EventNotification! - - getNetwork( - connection: Ethereum_Connection - ): Ethereum_Network! - - requestAccounts( - connection: Ethereum_Connection - ): [String!]! - - callContractMethod( - address: String! - method: String! - args: [String!] - connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): Ethereum_TxResponse! - - callContractMethodAndWait( - address: String! - method: String! - args: [String!] - connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): Ethereum_TxReceipt! - - sendTransaction( - tx: Ethereum_TxRequest! - connection: Ethereum_Connection - ): Ethereum_TxResponse! - - sendTransactionAndWait( - tx: Ethereum_TxRequest! - connection: Ethereum_Connection - ): Ethereum_TxReceipt! - - deployContract( - abi: String! - bytecode: String! - args: [String!] - connection: Ethereum_Connection - ): String! - - signMessage( - message: String! - connection: Ethereum_Connection - ): String! - - signMessageBytes( - bytes: Bytes! - connection: Ethereum_Connection - ): String! - - sendRPC( - method: String! - params: [String!]! - connection: Ethereum_Connection - ): String -} diff --git a/packages/js/plugins/ethereum/src/__tests__/utils/storage.ts b/packages/js/plugins/ethereum/src/__tests__/utils/storage.ts deleted file mode 100644 index 988e0e4659..0000000000 --- a/packages/js/plugins/ethereum/src/__tests__/utils/storage.ts +++ /dev/null @@ -1,53 +0,0 @@ -import { Connection } from "@polywrap/ethereum-plugin-js"; -import { ContractFactory, Contract, Signer, ethers } from "ethers"; -import { providers } from "@polywrap/test-env-js"; - -export async function deployStorage( - abi: string[], - bytecode: string -): Promise { - const signer = getSigner(); - const factory = new ContractFactory(abi, bytecode, signer); - const contract = await factory.deploy(); - await contract.deployed(); - return contract.address; -} - -export async function addStructToStorage( - abi: string[], - address: string, - args: string[] -): Promise { - const signer = getSigner(); - const contract = new Contract(address, abi); - const calldata = ethers.utils.defaultAbiCoder.encode( - ["address", "uint256"], - args - ); - await contract.connect(signer).addJob(calldata); -} - -export async function addPrimitiveToArrayStorage( - abi: string[], - address: string, - data: string -): Promise { - const signer = getSigner(); - const contract = new Contract(address, abi); - await contract.connect(signer).addSimple(data); -} - -export async function setPrimitiveToStorage( - abi: string[], - address: string, - data: string -): Promise { - const signer = getSigner(); - const contract = new Contract(address, abi); - await contract.connect(signer).set(data); -} - -function getSigner(): Signer { - const connection = new Connection({ provider: providers.ethereum }); - return connection.getSigner(); -} diff --git a/packages/js/plugins/ethereum/src/index.ts b/packages/js/plugins/ethereum/src/index.ts deleted file mode 100644 index 75cc6ee9e5..0000000000 --- a/packages/js/plugins/ethereum/src/index.ts +++ /dev/null @@ -1,460 +0,0 @@ -import { - CoreClient, - Module, - Args_callContractView, - Args_callContractStatic, - Args_getBalance, - Args_encodeParams, - Args_encodeFunction, - Args_solidityPack, - Args_solidityKeccak256, - Args_soliditySha256, - Args_getSignerAddress, - Args_getSignerBalance, - Args_getSignerTransactionCount, - Args_getGasPrice, - Args_estimateTransactionGas, - Args_estimateContractCallGas, - Args_checkAddress, - Args_toWei, - Args_toEth, - Args_waitForEvent, - Args_awaitTransaction, - Args_getNetwork, - Args_requestAccounts, - Args_callContractMethod, - Args_callContractMethodAndWait, - Args_deployContract, - Args_sendRPC, - Args_sendTransaction, - Args_sendTransactionAndWait, - Args_signMessage, - Args_signMessageBytes, - TxResponse, - BigInt, - StaticTxResult, - EventNotification, - TxReceipt, - Network, - Connection as SchemaConnection, - manifest, -} from "./wrap"; -import { Connection } from "./Connection"; -import * as Mapping from "./utils/mapping"; -import { constructAbi, parseArgs, parseResult } from "./utils/parsing"; -import { Connections } from "./Connections"; - -import { ethers } from "ethers"; -import { defaultAbiCoder } from "ethers/lib/utils"; -import { PluginFactory, PluginPackage } from "@polywrap/plugin-js"; - -export * from "./Connection"; -export * from "./Connections"; - -export interface EthereumPluginConfig { - connections: Connections; -} - -export class EthereumPlugin extends Module { - private _connections: Connections; - - constructor(config: EthereumPluginConfig) { - super(config); - this._connections = config.connections; - } - - async callContractView( - args: Args_callContractView, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const abi = constructAbi(args.method); - const contract = connection.getContract(args.address, abi, false); - const funcs = Object.keys(contract.interface.functions); - const result = await contract[funcs[0]](...parseArgs(args.args)); - return parseResult(result); - } - - async callContractStatic( - args: Args_callContractStatic, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const abi = constructAbi(args.method); - const contract = connection.getContract(args.address, abi); - const funcs = Object.keys(contract.interface.functions); - - try { - const result = await contract.callStatic[funcs[0]]( - ...parseArgs(args.args), - { - gasPrice: args.txOverrides?.gasPrice - ? ethers.BigNumber.from(args.txOverrides.gasPrice) - : undefined, - gasLimit: args.txOverrides?.gasLimit - ? ethers.BigNumber.from(args.txOverrides.gasLimit) - : undefined, - value: args.txOverrides?.value - ? ethers.BigNumber.from(args.txOverrides.value) - : undefined, - } - ); - return { - result: result.length ? parseResult(result) : "", - error: false, - }; - } catch (e) { - return { - result: e.reason, - error: true, - }; - } - } - - async getBalance( - args: Args_getBalance, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return ( - await connection - .getProvider() - .getBalance(args.address, args.blockTag || undefined) - ).toString(); - } - - async encodeParams( - args: Args_encodeParams, - _client: CoreClient - ): Promise { - return defaultAbiCoder.encode(args.types, parseArgs(args.values)); - } - - async encodeFunction( - args: Args_encodeFunction, - _client: CoreClient - ): Promise { - const functionInterface = ethers.Contract.getInterface([args.method]); - return functionInterface.encodeFunctionData( - functionInterface.functions[Object.keys(functionInterface.functions)[0]], - parseArgs(args.args) - ); - } - - async solidityPack( - args: Args_solidityPack, - _client: CoreClient - ): Promise { - return ethers.utils.solidityPack(args.types, parseArgs(args.values)); - } - - async solidityKeccak256( - args: Args_solidityKeccak256, - _client: CoreClient - ): Promise { - return ethers.utils.solidityKeccak256(args.types, parseArgs(args.values)); - } - - async soliditySha256( - args: Args_soliditySha256, - _client: CoreClient - ): Promise { - return ethers.utils.soliditySha256(args.types, parseArgs(args.values)); - } - - async getSignerAddress( - args: Args_getSignerAddress, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return await connection.getSigner().getAddress(); - } - - async getSignerBalance( - args: Args_getSignerBalance, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return ( - await connection.getSigner().getBalance(args.blockTag || undefined) - ).toString(); - } - - async getSignerTransactionCount( - args: Args_getSignerTransactionCount, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return ( - await connection - .getSigner() - .getTransactionCount(args.blockTag || undefined) - ).toString(); - } - - async getGasPrice( - args: Args_getGasPrice, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return (await connection.getSigner().getGasPrice()).toString(); - } - - async estimateTransactionGas( - args: Args_estimateTransactionGas, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return ( - await connection.getSigner().estimateGas(Mapping.fromTxRequest(args.tx)) - ).toString(); - } - - async estimateContractCallGas( - args: Args_estimateContractCallGas, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const abi = constructAbi(args.method); - const contract = connection.getContract(args.address, abi); - const funcs = Object.keys(contract.interface.functions); - - const gasPrice: string | null | undefined = args.txOverrides?.gasPrice; - const gasLimit: string | null | undefined = args.txOverrides?.gasLimit; - const value: string | null | undefined = args.txOverrides?.value; - - const gas = await contract.estimateGas[funcs[0]](...parseArgs(args.args), { - gasPrice: gasPrice ? ethers.BigNumber.from(gasPrice) : undefined, - gasLimit: gasLimit ? ethers.BigNumber.from(gasLimit) : undefined, - value: value ? ethers.BigNumber.from(value) : undefined, - }); - - return gas.toString(); - } - - async checkAddress( - args: Args_checkAddress, - _client: CoreClient - ): Promise { - let address = args.address; - - try { - // If the address is all upper-case, convert to lower case - if (address.indexOf("0X") > -1) { - address = address.toLowerCase(); - } - - const result = ethers.utils.getAddress(address); - if (!result) { - return false; - } - - return true; - } catch (error) { - return false; - } - } - - async toWei(args: Args_toWei, _client: CoreClient): Promise { - const weiAmount = ethers.utils.parseEther(args.eth); - return weiAmount.toString(); - } - - async toEth(args: Args_toEth, _client: CoreClient): Promise { - const etherAmount = ethers.utils.formatEther(args.wei); - return etherAmount.toString(); - } - - async waitForEvent( - args: Args_waitForEvent, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const abi = constructAbi(args.event); - const contract = connection.getContract(args.address, abi); - const events = Object.keys(contract.interface.events); - const filter = contract.filters[events[0]](...parseArgs(args.args)); - - return Promise.race([ - new Promise((resolve) => { - contract.once( - filter, - (data: string, address: string, log: ethers.providers.Log) => { - resolve({ - data, - address, - log: Mapping.toLog(log), - } as EventNotification); - } - ); - }), - new Promise((_, reject) => { - setTimeout(function () { - reject( - `Waiting for event "${args.event}" on contract "${args.address}" timed out` - ); - }, args.timeout || 60000); - }), - ]); - } - - async awaitTransaction( - args: Args_awaitTransaction, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const provider = connection.getProvider(); - - const res = await provider.waitForTransaction( - args.txHash, - args.confirmations, - args.timeout - ); - - return Mapping.toTxReceipt(res); - } - - async getNetwork( - args: Args_getNetwork, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const provider = connection.getProvider(); - const network = await provider.getNetwork(); - return { - name: network.name, - chainId: network.chainId.toString(), - ensAddress: network.ensAddress, - }; - } - - async requestAccounts( - args: Args_requestAccounts, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const provider = connection.getProvider(); - return provider.send("eth_requestAccounts", []); - } - - public async callContractMethod( - args: Args_callContractMethod, - _client: CoreClient - ): Promise { - const res = await this._callContractMethod(args); - return Mapping.toTxResponse(res); - } - - public async callContractMethodAndWait( - args: Args_callContractMethodAndWait, - _client: CoreClient - ): Promise { - const response = await this._callContractMethod(args); - const res = await response.wait(); - return Mapping.toTxReceipt(res); - } - - public async sendTransaction( - args: Args_sendTransaction, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const signer = connection.getSigner(); - const res = await signer.sendTransaction(Mapping.fromTxRequest(args.tx)); - return Mapping.toTxResponse(res); - } - - public async sendTransactionAndWait( - args: Args_sendTransactionAndWait, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const signer = connection.getSigner(); - const response = await signer.sendTransaction( - Mapping.fromTxRequest(args.tx) - ); - const receipt = await response.wait(); - return Mapping.toTxReceipt(receipt); - } - - public async deployContract( - args: Args_deployContract, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const signer = connection.getSigner(); - const factory = new ethers.ContractFactory(args.abi, args.bytecode, signer); - const contract = await factory.deploy(...parseArgs(args.args)); - - await contract.deployTransaction.wait(); - return contract.address; - } - - public async signMessage( - args: Args_signMessage, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return await connection.getSigner().signMessage(args.message); - } - - public async signMessageBytes( - args: Args_signMessageBytes, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - return await connection.getSigner().signMessage(args.bytes); - } - - public async sendRPC( - args: Args_sendRPC, - _client: CoreClient - ): Promise { - const connection = await this._getConnection(args.connection); - const provider = connection.getProvider(); - const response = await provider.send(args.method, args.params); - return response.toString(); - } - - private async _callContractMethod( - args: Args_callContractMethod - ): Promise { - const connection = await this._getConnection(args.connection); - const abi = constructAbi(args.method); - const contract = connection.getContract(args.address, abi); - const funcs = Object.keys(contract.interface.functions); - - const gasPrice: string | null | undefined = args.txOverrides?.gasPrice; - const gasLimit: string | null | undefined = args.txOverrides?.gasLimit; - const value: string | null | undefined = args.txOverrides?.value; - - return await contract[funcs[0]](...parseArgs(args.args), { - gasPrice: gasPrice ? ethers.BigNumber.from(gasPrice) : undefined, - gasLimit: gasLimit ? ethers.BigNumber.from(gasLimit) : undefined, - value: value ? ethers.BigNumber.from(value) : undefined, - }); - } - - private async _getConnection( - connection?: SchemaConnection | null - ): Promise { - // When a `node` is not specified within `connection`, but an env variable defines a custom node with the same network name, use the envs node when getting connections - // This behavior is a consequence of how the ens-resolver uses the Ethereum plugin, always specifying the connection network name (e.g. mainnet) - if ( - !connection?.node && - this.env.connection && - this.env.connection.networkNameOrChainId === - connection?.networkNameOrChainId - ) { - return this._connections.getConnection(this.env.connection); - } - - return this._connections.getConnection(connection || this.env.connection); - } -} - -export const ethereumPlugin: PluginFactory = ( - config: EthereumPluginConfig -) => new PluginPackage(new EthereumPlugin(config), manifest); - -export const plugin = ethereumPlugin; diff --git a/packages/js/plugins/ethereum/src/schema.graphql b/packages/js/plugins/ethereum/src/schema.graphql deleted file mode 100644 index 9eef54d397..0000000000 --- a/packages/js/plugins/ethereum/src/schema.graphql +++ /dev/null @@ -1,257 +0,0 @@ -type TxReceipt { - to: String! - from: String! - contractAddress: String! - transactionIndex: UInt32! - root: String - gasUsed: BigInt! - logsBloom: String! - transactionHash: String! - logs: [Log!]! - blockNumber: BigInt! - blockHash: String! - confirmations: UInt32! - cumulativeGasUsed: BigInt! - effectiveGasPrice: BigInt! - byzantium: Boolean! - type: UInt32! - status: UInt32 -} - -type TxResponse { - hash: String! - to: String - from: String! - nonce: UInt32! - gasLimit: BigInt! - gasPrice: BigInt - data: String! - value: BigInt! - chainId: BigInt! - blockNumber: BigInt - blockHash: String - timestamp: UInt32 - confirmations: UInt32! - raw: String - r: String - s: String - v: UInt32 - type: UInt32 - accessList: [Access!] -} - -type TxRequest { - to: String - from: String - nonce: UInt32 - gasLimit: BigInt - gasPrice: BigInt - data: String - value: BigInt - chainId: BigInt - type: UInt32 -} - -type TxOverrides { - gasLimit: BigInt - gasPrice: BigInt - value: BigInt -} - -type StaticTxResult { - result: String! - error: Boolean! -} - -type Log { - blockNumber: BigInt! - blockHash: String! - transactionIndex: UInt32! - removed: Boolean! - address: String! - data: String! - topics: [String!]! - transactionHash: String! - logIndex: UInt32! -} - -type EventNotification { - data: String! - address: String! - log: Log! -} - -type Access { - address: String! - storageKeys: [String!]! -} - -type Connection { - node: String - networkNameOrChainId: String -} - -type Network { - name: String! - chainId: BigInt! - ensAddress: String -} - -type Env { - connection: Connection -} - -type Module { - callContractView( - address: String! - method: String! - args: [String!] - connection: Connection - ): String! - - callContractStatic( - address: String! - method: String! - args: [String!] - connection: Connection - txOverrides: TxOverrides - ): StaticTxResult! - - getBalance( - address: String! - blockTag: BigInt - connection: Connection - ): BigInt! - - encodeParams( - types: [String!]! - values: [String!]! - ): String! - - encodeFunction( - method: String! - args: [String!] - ): String! - - solidityPack( - types: [String!]! - values: [String!]! - ): String! - - solidityKeccak256( - types: [String!]! - values: [String!]! - ): String! - - soliditySha256( - types: [String!]! - values: [String!]! - ): String! - - getSignerAddress( - connection: Connection - ): String! - - getSignerBalance( - blockTag: BigInt - connection: Connection - ): BigInt! - - getSignerTransactionCount( - blockTag: BigInt - connection: Connection - ): BigInt! - - getGasPrice( - connection: Connection - ): BigInt! - - estimateTransactionGas( - tx: TxRequest! - connection: Connection - ): BigInt! - - estimateContractCallGas( - address: String! - method: String! - args: [String!] - connection: Connection - txOverrides: TxOverrides - ): BigInt! - - checkAddress( - address: String! - ): Boolean! - - toWei(eth: String!): BigInt! - - toEth(wei: BigInt!): String! - - awaitTransaction( - txHash: String! - confirmations: UInt32! - timeout: UInt32! - connection: Connection - ): TxReceipt! - - waitForEvent( - address: String! - event: String! - args: [String!] - timeout: UInt32 - connection: Connection - ): EventNotification! - - getNetwork(connection: Connection): Network! - - requestAccounts(connection: Connection): [String!]! - - callContractMethod( - address: String! - method: String! - args: [String!] - connection: Connection - txOverrides: TxOverrides - ): TxResponse! - - callContractMethodAndWait( - address: String! - method: String! - args: [String!] - connection: Connection - txOverrides: TxOverrides - ): TxReceipt! - - sendTransaction( - tx: TxRequest! - connection: Connection - ): TxResponse! - - sendTransactionAndWait( - tx: TxRequest! - connection: Connection - ): TxReceipt! - - deployContract( - abi: String! - bytecode: String! - args: [String!] - connection: Connection - ): String! - - signMessage( - message: String! - connection: Connection - ): String! - - signMessageBytes( - bytes: Bytes! - connection: Connection - ): String! - - sendRPC( - method: String! - params: [String!]! - connection: Connection - ): String -} \ No newline at end of file diff --git a/packages/js/plugins/ethereum/src/utils/mapping.ts b/packages/js/plugins/ethereum/src/utils/mapping.ts deleted file mode 100644 index 7d3d603ef2..0000000000 --- a/packages/js/plugins/ethereum/src/utils/mapping.ts +++ /dev/null @@ -1,142 +0,0 @@ -import { Access, TxReceipt, TxResponse, TxRequest, Log } from "../wrap"; - -import { ethers } from "ethers"; - -export const toTxReceipt = ( - receipt: ethers.providers.TransactionReceipt -): TxReceipt => ({ - to: receipt.to || "", - from: receipt.from, - contractAddress: receipt.contractAddress, - transactionIndex: receipt.transactionIndex, - root: receipt.root, - gasUsed: receipt.gasUsed.toString(), - logsBloom: receipt.logsBloom, - transactionHash: receipt.transactionHash, - logs: receipt.logs.map(toLog), - blockNumber: receipt.blockNumber.toString(), - blockHash: receipt.blockHash, - confirmations: receipt.confirmations, - cumulativeGasUsed: receipt.cumulativeGasUsed.toString(), - effectiveGasPrice: receipt.effectiveGasPrice?.toString() || "0", - byzantium: receipt.byzantium, - type: receipt.type || 0, - status: receipt.status, -}); - -export const fromTxReceipt = ( - receipt: TxReceipt -): ethers.providers.TransactionReceipt => ({ - to: receipt.to, - from: receipt.from, - contractAddress: receipt.contractAddress, - transactionIndex: receipt.transactionIndex, - root: receipt.root || undefined, - gasUsed: ethers.BigNumber.from(receipt.gasUsed), - logsBloom: receipt.logsBloom, - transactionHash: receipt.transactionHash, - logs: receipt.logs.map(fromLog), - blockNumber: Number(receipt.blockNumber), - blockHash: receipt.blockHash, - confirmations: receipt.confirmations, - cumulativeGasUsed: ethers.BigNumber.from(receipt.cumulativeGasUsed), - byzantium: receipt.byzantium, - status: receipt.status || undefined, - effectiveGasPrice: ethers.BigNumber.from(receipt.effectiveGasPrice), - type: receipt.type, -}); - -export const toTxResponse = ( - response: ethers.providers.TransactionResponse -): TxResponse => ({ - hash: response.hash, - to: response.to, - from: response.from, - nonce: response.nonce, - gasLimit: response.gasLimit.toString(), - gasPrice: response.gasPrice?.toString(), - data: response.data, - value: response.value.toString(), - chainId: response.chainId.toString(), - blockNumber: response.blockNumber?.toString(), - blockHash: response.blockHash, - timestamp: response.timestamp, - confirmations: response.confirmations, - raw: response.raw, - r: response.r, - s: response.s, - v: response.v, - type: response.type || undefined, - accessList: response.accessList?.map(toAccess), -}); - -export const toTxRequest = ( - request: ethers.providers.TransactionRequest -): TxRequest => ({ - to: request.to, - from: request.from, - nonce: request.nonce ? Number(request.nonce.toString()) : undefined, - gasLimit: request.gasLimit?.toString(), - gasPrice: request.gasPrice?.toString(), - data: request.data?.toString(), - value: request.value?.toString(), - chainId: request.chainId?.toString(), - type: request.type, -}); - -export const fromTxRequest = ( - request: TxRequest -): ethers.providers.TransactionRequest => ({ - to: request.to || undefined, - from: request.from || undefined, - nonce: request.nonce || undefined, - gasLimit: request.gasLimit - ? ethers.BigNumber.from(request.gasLimit) - : undefined, - gasPrice: request.gasPrice - ? ethers.BigNumber.from(request.gasPrice) - : undefined, - data: request.data || undefined, - value: request.value ? ethers.BigNumber.from(request.value) : undefined, - chainId: request.chainId ? Number.parseInt(request.chainId) : undefined, - type: request.type || undefined, -}); - -export const toLog = (log: ethers.providers.Log): Log => ({ - blockNumber: log.blockNumber.toString(), - blockHash: log.blockHash, - transactionIndex: log.transactionIndex, - removed: !!log.removed, - address: log.address, - data: log.data, - topics: log.topics, - transactionHash: log.transactionHash, - logIndex: log.logIndex, -}); - -export const fromLog = (log: Log): ethers.providers.Log => ({ - blockNumber: Number(log.blockNumber), - blockHash: log.blockHash, - transactionIndex: log.transactionIndex, - removed: log.removed, - address: log.address, - data: log.data, - topics: log.topics, - transactionHash: log.transactionHash, - logIndex: log.logIndex, -}); - -export const toAccess = (access: { - address: string; - storageKeys: string[]; -}): Access => ({ - address: access.address, - storageKeys: access.storageKeys, -}); - -export const fromAccess = ( - access: Access -): { address: string; storageKeys: string[] } => ({ - address: access.address, - storageKeys: access.storageKeys, -}); diff --git a/packages/js/plugins/ethereum/src/utils/parsing.ts b/packages/js/plugins/ethereum/src/utils/parsing.ts deleted file mode 100644 index fa3c95bdd9..0000000000 --- a/packages/js/plugins/ethereum/src/utils/parsing.ts +++ /dev/null @@ -1,52 +0,0 @@ -export function parseArgs(args?: string[] | null): unknown[] { - if (!args) { - return []; - } - - return args.map((arg: string) => - (arg.startsWith("[") && arg.endsWith("]")) || - (arg.startsWith("{") && arg.endsWith("}")) - ? JSON.parse(arg) - : arg - ); -} - -export function constructAbi(method: string): string[] { - let abi; - try { - abi = JSON.parse(method); - if (!(abi instanceof Array)) { - abi = [abi]; - } - } catch (e) { - abi = [method]; - } - return abi; -} - -export function parseResult(result: unknown): string { - const prep = prepForStringify(result); - - if (typeof prep === "string") { - return prep; - } else { - return JSON.stringify(prep); - } -} - -export function prepForStringify(value: unknown): unknown { - if (Array.isArray(value)) { - const prepared = []; - for (const item of value) { - prepared.push(prepForStringify(item)); - } - return prepared; - } else if ( - typeof value === "object" && - typeof (value as Record).toString === "function" - ) { - return (value as Record).toString(); - } else { - return value; - } -} diff --git a/packages/js/plugins/ethereum/tsconfig.build.json b/packages/js/plugins/ethereum/tsconfig.build.json deleted file mode 100644 index 77aadfdd2f..0000000000 --- a/packages/js/plugins/ethereum/tsconfig.build.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "./tsconfig.json", - "include": [ - "./src/**/*.ts" - ], - "exclude": [ - "./src/**/__tests__" - ] -} diff --git a/packages/js/plugins/ethereum/tsconfig.json b/packages/js/plugins/ethereum/tsconfig.json deleted file mode 100644 index 720d843436..0000000000 --- a/packages/js/plugins/ethereum/tsconfig.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": "../../../../tsconfig", - "compilerOptions": { - "outDir": "build" - }, - "include": [ - "./src/**/*.ts" - ], - "exclude": [ - "./**/.polywrap/**/*.ts" - ] -} diff --git a/yarn.lock b/yarn.lock index d5096c9833..2edb49a9b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1368,7 +1368,7 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -1383,7 +1383,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -1396,7 +1396,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1418,7 +1418,7 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/rlp" "^5.0.3" -"@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -1429,7 +1429,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== @@ -1444,7 +1444,7 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -1452,7 +1452,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1461,21 +1461,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.0.0": +"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -1491,7 +1491,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1506,7 +1506,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== @@ -1524,7 +1524,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== @@ -1543,7 +1543,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -1551,11 +1551,18 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== +"@ethersproject/networks@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" @@ -1563,7 +1570,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== @@ -1571,7 +1578,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== @@ -1629,6 +1636,32 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@^5.0.0": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" @@ -1655,7 +1688,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -1663,7 +1696,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -1671,7 +1704,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -1680,7 +1713,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -1692,7 +1725,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@^5.0.0": +"@ethersproject/solidity@5.7.0", "@ethersproject/solidity@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== @@ -1704,7 +1737,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1713,7 +1746,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1728,7 +1761,7 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@^5.0.0": +"@ethersproject/units@5.7.0", "@ethersproject/units@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== @@ -1758,7 +1791,7 @@ "@ethersproject/transactions" "^5.6.2" "@ethersproject/wordlists" "^5.6.1" -"@ethersproject/wallet@^5.0.0": +"@ethersproject/wallet@5.7.0", "@ethersproject/wallet@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== @@ -1779,6 +1812,17 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" +"@ethersproject/web@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" @@ -1790,7 +1834,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== @@ -3288,6 +3332,17 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz#ed410c9eb0070491cff9fe914246ce41f88d6f74" integrity sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ== +"@polywrap/ethereum-plugin-js@0.10.0-pre.5": + version "0.10.0-pre.5" + resolved "https://registry.yarnpkg.com/@polywrap/ethereum-plugin-js/-/ethereum-plugin-js-0.10.0-pre.5.tgz#056e401ef37f734867f42732e0801a7b9a2491a6" + integrity sha512-XTfgwiuDTyAcJ5efujnbCNEP3iajpaAgKB4Ltlkg+oAAnymlVnoigCE517QJS9HUcdUMSdgRkgLIu0DlpuaMCw== + dependencies: + "@ethersproject/address" "5.0.7" + "@ethersproject/providers" "5.0.7" + "@polywrap/core-js" "0.10.0-pre.5" + "@polywrap/plugin-js" "0.10.0-pre.5" + ethers "5.0.7" + "@polywrap/ipfs-http-client-lite@0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@polywrap/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz#b8caf4b4f39413e591aff4367023a04cb6df83a1" @@ -7727,13 +7782,15 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== +ethereum-provider-js@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.1.tgz#c6e5f775f66674ef3e3dcd98ffbcde726a20da45" + integrity sha512-SuFXwxsQcSUPyivKjPsYeIfatoBmnBttqiKypJN4SBBQgZptCHZip+/ZF5QME8GzciU+KLoP2L2c4/c166oT8Q== dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" + "@ethersproject/address" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@polywrap/core-js" "0.10.0-pre.5" + ethers "5.7.0" ethers@5.0.7: version "5.0.7" @@ -7770,6 +7827,42 @@ ethers@5.0.7: "@ethersproject/web" "^5.0.0" "@ethersproject/wordlists" "^5.0.0" +ethers@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" + event-emitter@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" @@ -9210,13 +9303,6 @@ identity-obj-proxy@3.0.0: dependencies: harmony-reflect "^1.4.6" -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -11077,11 +11163,6 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - "js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -14578,11 +14659,6 @@ punycode@1.3.2: resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - punycode@^1.2.4: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" From 378c607d04a5174a8a1a5ef910933671d4b8d0b9 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 15 Dec 2022 09:59:58 +0530 Subject: [PATCH 02/51] replaced usages of ethereum plugin with ethereum wrapper in various packages --- packages/cli/package.json | 3 +- .../ens-recursive-name-register/index.ts | 48 ++++++++----- .../lib/defaults/deploy-modules/ens/index.ts | 46 +++++++++---- .../cli/src/lib/helpers/invokeWithTImeout.ts | 42 +++++++++++ .../cli/src/lib/test-env/client-config.ts | 25 +++++-- packages/js/client/package.json | 2 +- .../helpers/getClientWithEnsAndIpfs.ts | 23 +++++-- .../uri-resolvers/ens-resolver/package.json | 3 +- .../src/__tests__/helpers/getClient.ts | 22 ++++-- packages/js/react/package.json | 2 +- .../react/src/__tests__/app/SimpleStorage.tsx | 12 +++- packages/js/react/src/__tests__/config.ts | 30 ++++++-- .../react/src/__tests__/integration.spec.tsx | 16 +++-- .../src/__tests__/usePolywrapClient.spec.tsx | 11 ++- .../src/__tests__/usePolywrapInvoke.spec.tsx | 11 ++- .../src/__tests__/usePolywrapQuery.spec.tsx | 11 ++- .../wasm-as/simple-storage/polywrap.yaml | 3 - yarn.lock | 69 ++++--------------- 18 files changed, 250 insertions(+), 129 deletions(-) create mode 100644 packages/cli/src/lib/helpers/invokeWithTImeout.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index ef75087313..70bbd51877 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -40,12 +40,13 @@ "@ethersproject/providers": "5.6.8", "@ethersproject/wallet": "5.6.2", "@formatjs/intl": "1.8.2", + "ethereum-provider-js": "0.1.1", + "@polywrap/result": "0.10.0-pre.5", "@polywrap/asyncify-js": "0.10.0-pre.5", "@polywrap/client-config-builder-js": "0.10.0-pre.5", "@polywrap/client-js": "0.10.0-pre.5", "@polywrap/core-js": "0.10.0-pre.5", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.5", - "@polywrap/ethereum-plugin-js": "0.10.0-pre.5", "@polywrap/ipfs-plugin-js": "0.10.0-pre.5", "@polywrap/logging-js": "0.10.0-pre.5", "@polywrap/os-js": "0.10.0-pre.5", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index 7255d1711e..e89b1ff6f8 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,17 +1,19 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; +import { invokeWithTimeout } from "../../../helpers/invokeWithTImeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; import { - ethereumPlugin, + ethereumProviderPlugin, Connections, Connection, -} from "@polywrap/ethereum-plugin-js"; +} from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; +import { defaultWrappers } from "@polywrap/client-config-builder-js"; class ENSRecursiveNameRegisterPublisher implements Deployer { async execute( @@ -48,7 +50,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const ethereumPluginUri = "wrap://ens/ethereum.polywrap.eth"; + const ethereumWrapperUri = "wrap://ens/ethereum.polywrap.eth"; const ensWrapperUri = embeddedWrappers.ens; const client = new PolywrapClient({ @@ -61,11 +63,15 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { from: "wrap://ens/sha3.polywrap.eth", to: embeddedWrappers.sha3, }, + { + from: ethereumWrapperUri, + to: defaultWrappers.ethereum, + }, ], packages: [ { - uri: ethereumPluginUri, - package: ethereumPlugin({ + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections: new Connections({ networks: { [network]: new Connection({ @@ -78,11 +84,17 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { }), }, ], + interfaces: [ + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, + ], }); const signerAddress = await client.invoke({ method: "getSignerAddress", - uri: ethereumPluginUri, + uri: ethereumWrapperUri, args: { connection: { networkNameOrChainId: network, @@ -117,18 +129,22 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { ); } - await client.invoke({ - method: "awaitTransaction", - uri: ethereumPluginUri, - args: { - txHash: registerData.value.hash, - confirmations: 1, - timeout: 15000, - connection: { - networkNameOrChainId: network, + const txResult = await invokeWithTimeout( + client, + { + method: "awaitTransaction", + uri: ethereumWrapperUri, + args: { + txHash: registerData.value.hash, + connection: { + networkNameOrChainId: network, + }, }, }, - }); + 15000 + ); + + if (!txResult.ok) throw txResult.error; return new Uri(`ens/${network}/${ensDomain}`); } diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 8be5bcb826..a6c357fb5a 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; +import { invokeWithTimeout } from "../../../helpers/invokeWithTImeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; @@ -8,10 +9,11 @@ import { Uri } from "@polywrap/core-js"; import { Connections, Connection, - ethereumPlugin, -} from "@polywrap/ethereum-plugin-js"; + ethereumProviderPlugin, +} from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; +import { defaultWrappers } from "@polywrap/client-config-builder-js"; const contentHash = require("content-hash"); @@ -45,7 +47,7 @@ class ENSPublisher implements Deployer { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const ethereumPluginUri = "wrap://ens/ethereum.polywrap.eth"; + const ethereumWrapperUri = "wrap://ens/ethereum.polywrap.eth"; const ensWrapperUri = embeddedWrappers.ens; const client = new PolywrapClient({ @@ -58,11 +60,15 @@ class ENSPublisher implements Deployer { from: "wrap://ens/sha3.polywrap.eth", to: embeddedWrappers.sha3, }, + { + from: ethereumWrapperUri, + to: defaultWrappers.ethereum, + }, ], packages: [ { - uri: ethereumPluginUri, - package: ethereumPlugin({ + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections: new Connections({ networks: { [network]: new Connection({ @@ -75,6 +81,12 @@ class ENSPublisher implements Deployer { }), }, ], + interfaces: [ + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, + ], }); const resolver = await client.invoke({ @@ -116,18 +128,22 @@ class ENSPublisher implements Deployer { throw new Error(`Could not set contentHash for '${config.domainName}'`); } - await client.invoke({ - method: "awaitTransaction", - uri: ethereumPluginUri, - args: { - txHash: setContenthashData.value.hash, - confirmations: 1, - timeout: 15000, - connection: { - networkNameOrChainId: network, + const txResult = await invokeWithTimeout( + client, + { + method: "awaitTransaction", + uri: ethereumWrapperUri, + args: { + txHash: setContenthashData.value.hash, + connection: { + networkNameOrChainId: network, + }, }, }, - }); + 15000 + ); + + if (!txResult.ok) throw txResult.error; return new Uri(`ens/${network}/${config.domainName}`); } diff --git a/packages/cli/src/lib/helpers/invokeWithTImeout.ts b/packages/cli/src/lib/helpers/invokeWithTImeout.ts new file mode 100644 index 0000000000..348853ad53 --- /dev/null +++ b/packages/cli/src/lib/helpers/invokeWithTImeout.ts @@ -0,0 +1,42 @@ +import { InvokerOptions } from "@polywrap/core-js"; +import { Result, ResultErr, ResultOk } from "@polywrap/result"; +import { PolywrapClient } from "@polywrap/client-js"; + +export async function invokeWithTimeout( + client: PolywrapClient, + options: InvokerOptions, + timeout: number +): Promise> { + const controller = new AbortController(); + + const timer = setTimeout(() => { + controller.abort(); + }, timeout); + + const [error, value] = await new Promise< + [error: Error | undefined, result: TResult | undefined] + >((resolve, reject) => { + controller.signal.addEventListener("abort", () => { + reject("Timeout has been reached"); + }); + client.invoke(options).then( + (result) => { + timer && clearTimeout(timer); + if (!result.ok) { + resolve([result.error, undefined]); + return; + } + resolve([undefined, result.value]); + }, + (error) => { + timer && clearTimeout(timer); + resolve([error, undefined]); + } + ); + }); + + if (error) { + return ResultErr(error); + } + return ResultOk(value as TResult); +} diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index 803b6fee93..499ee6d413 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -1,13 +1,16 @@ import { getTestEnvProviders } from "./providers"; import { PolywrapClientConfig } from "@polywrap/client-js"; -import { defaultIpfsProviders } from "@polywrap/client-config-builder-js"; +import { + defaultIpfsProviders, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { - ethereumPlugin, + ethereumProviderPlugin, Connections, Connection, -} from "@polywrap/ethereum-plugin-js"; +} from "ethereum-provider-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ensAddresses } from "@polywrap/test-env-js"; @@ -36,8 +39,8 @@ export function getTestEnvClientConfig(): Partial { ], packages: [ { - uri: "wrap://ens/ethereum.polywrap.eth", - package: ethereumPlugin({ + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections: new Connections({ networks: { testnet: new Connection({ @@ -60,5 +63,17 @@ export function getTestEnvClientConfig(): Partial { }), }, ], + redirects: [ + { + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum, + }, + ], + interfaces: [ + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, + ], }; } diff --git a/packages/js/client/package.json b/packages/js/client/package.json index 897e7ebc6e..973c0e4947 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.5", - "@polywrap/ethereum-plugin-js": "0.10.0-pre.5", + "ethereum-provider-js": "0.1.1", "@polywrap/fs-plugin-js": "0.10.0-pre.5", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.5", "@polywrap/http-plugin-js": "0.10.0-pre.5", diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index a0ce755f07..bff96c08f3 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -3,8 +3,8 @@ import { ensAddresses, providers } from "@polywrap/test-env-js"; import { Connection, Connections, - ethereumPlugin, -} from "@polywrap/ethereum-plugin-js"; + ethereumProviderPlugin, +} from "ethereum-provider-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; @@ -12,10 +12,11 @@ import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { PackageToWrapperCacheResolver, - RecursiveResolver, + RecursiveResolver, RedirectResolver, WrapperCache, } from "@polywrap/uri-resolvers-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; +import { defaultWrappers } from "@polywrap/client-config-builder-js"; export const getClientWithEnsAndIpfs = () => { const connections: Connections = new Connections({ @@ -45,13 +46,21 @@ export const getClientWithEnsAndIpfs = () => { "wrap://ens/fs-resolver.polywrap.eth", ], }, + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, ], - resolver: RecursiveResolver.from( + resolver: RecursiveResolver.from([ + new RedirectResolver( + "wrap://ens/ethereum.polywrap.eth", + defaultWrappers.ethereum + ), PackageToWrapperCacheResolver.from( [ { - uri: "wrap://ens/ethereum.polywrap.eth", - package: ethereumPlugin({ connections }), + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections }), }, { uri: "wrap://ens/ens-resolver.polywrap.eth", @@ -80,7 +89,7 @@ export const getClientWithEnsAndIpfs = () => { new ExtendableUriResolver(), ], new WrapperCache() - ) + )] ), }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 60ba813681..399b641cda 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -28,9 +28,10 @@ }, "devDependencies": { "@polywrap/client-js": "0.10.0-pre.5", - "@polywrap/ethereum-plugin-js": "0.10.0-pre.5", + "ethereum-provider-js": "0.1.1", "@polywrap/ipfs-plugin-js": "0.10.0-pre.5", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.5", + "@polywrap/client-config-builder-js": "0.10.0-pre.5", "@types/jest": "26.0.8", "@types/prettier": "2.6.0", "jest": "26.6.3", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index 2a9bd6d4ba..073ea57acc 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -3,18 +3,20 @@ import { ensAddresses, providers } from "@polywrap/test-env-js"; import { Connection, Connections, - ethereumPlugin, -} from "@polywrap/ethereum-plugin-js"; + ethereumProviderPlugin, +} from "ethereum-provider-js"; import { RecursiveResolver, PackageToWrapperCacheResolver, WrapperCache, + RedirectResolver, } from "@polywrap/uri-resolvers-js"; import { coreInterfaceUris } from "@polywrap/core-js"; import { PolywrapClient } from "@polywrap/client-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; +import { defaultWrappers } from "@polywrap/client-config-builder-js"; export const getClient = () => { return new PolywrapClient( @@ -28,9 +30,18 @@ export const getClient = () => { "wrap://ens/fs-resolver.polywrap.eth", ], }, + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, ], resolver: RecursiveResolver.from( - PackageToWrapperCacheResolver.from( + [ + new RedirectResolver( + "wrap://ens/ethereum.polywrap.eth", + defaultWrappers.ethereum + ), + PackageToWrapperCacheResolver.from( [ { uri: "wrap://ens/ipfs-resolver.polywrap.eth", @@ -41,8 +52,8 @@ export const getClient = () => { package: ipfsPlugin({}), }, { - uri: "wrap://ens/ethereum.polywrap.eth", - package: ethereumPlugin({ + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections: new Connections({ networks: { testnet: new Connection({ @@ -65,6 +76,7 @@ export const getClient = () => { ], new WrapperCache() ) + ] ), }, { noDefaults: true } diff --git a/packages/js/react/package.json b/packages/js/react/package.json index 956faa65e7..55da1aad62 100644 --- a/packages/js/react/package.json +++ b/packages/js/react/package.json @@ -25,7 +25,7 @@ }, "devDependencies": { "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.5", - "@polywrap/ethereum-plugin-js": "0.10.0-pre.5", + "ethereum-provider-js": "0.1.1", "@polywrap/ipfs-plugin-js": "0.10.0-pre.5", "@polywrap/test-cases": "0.10.0-pre.5", "@polywrap/test-env-js": "0.10.0-pre.5", diff --git a/packages/js/react/src/__tests__/app/SimpleStorage.tsx b/packages/js/react/src/__tests__/app/SimpleStorage.tsx index e9787d1ed2..92433d7c86 100644 --- a/packages/js/react/src/__tests__/app/SimpleStorage.tsx +++ b/packages/js/react/src/__tests__/app/SimpleStorage.tsx @@ -6,7 +6,7 @@ import { } from "@polywrap/react"; // eslint-disable-next-line import/no-extraneous-dependencies import React from "react"; -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; const SimpleStorage = ({ uri }: { uri: string }) => { const { execute: deployContract, data: deployData } = usePolywrapQuery<{ @@ -82,14 +82,22 @@ const CustomProvider = createPolywrapProvider("custom"); export const SimpleStorageContainer = ({ envs, packages, + interfaces, + redirects, ensUri, }: { envs: Env[]; packages: IUriPackage[]; + interfaces: InterfaceImplementations[]; + redirects: IUriRedirect[]; ensUri: string; }) => ( - + diff --git a/packages/js/react/src/__tests__/config.ts b/packages/js/react/src/__tests__/config.ts index 7f41c9be99..f87a575d4d 100644 --- a/packages/js/react/src/__tests__/config.ts +++ b/packages/js/react/src/__tests__/config.ts @@ -1,12 +1,12 @@ -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; import { plugin as ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { Connection, Connections, - plugin as ethereumPlugin, -} from "@polywrap/ethereum-plugin-js"; + ethereumProviderPlugin, +} from "ethereum-provider-js"; import { plugin as ipfsPlugin } from "@polywrap/ipfs-plugin-js"; -import { defaultIpfsProviders } from "@polywrap/client-config-builder-js"; +import { defaultIpfsProviders, defaultWrappers } from "@polywrap/client-config-builder-js"; export function createPlugins( ensAddress: string, @@ -14,8 +14,8 @@ export function createPlugins( ): IUriPackage[] { return [ { - uri: "wrap://ens/ethereum.polywrap.eth", - package: ethereumPlugin({ + uri: "wrap://plugin/ethereum-provider", + package: ethereumProviderPlugin({ connections: new Connections({ networks: { testnet: new Connection({ provider: ethereumProvider }), @@ -49,3 +49,21 @@ export function createEnvs(ipfsProvider: string): Env[] { }, ]; } + +export function createInterfaces(): InterfaceImplementations[] { + return [ + { + interface: defaultWrappers.ethereumProviderInterface, + implementations: ["wrap://plugin/ethereum-provider"], + }, + ]; +} + +export function createRedirects(): IUriRedirect[] { + return [ + { + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum, + }, + ]; +} diff --git a/packages/js/react/src/__tests__/integration.spec.tsx b/packages/js/react/src/__tests__/integration.spec.tsx index 8cfcc13c51..8fd166d970 100644 --- a/packages/js/react/src/__tests__/integration.spec.tsx +++ b/packages/js/react/src/__tests__/integration.spec.tsx @@ -1,6 +1,6 @@ import { createPolywrapProvider } from ".."; import { SimpleStorageContainer } from "./app/SimpleStorage"; -import { createEnvs, createPlugins } from "./config"; +import { createEnvs, createInterfaces, createPlugins, createRedirects } from "./config"; import { initTestEnvironment, @@ -10,7 +10,7 @@ import { providers, } from "@polywrap/test-env-js"; import { GetPathToTestWrappers } from "@polywrap/test-cases"; -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; // eslint-disable-next-line import/no-extraneous-dependencies import React from "react"; @@ -20,6 +20,8 @@ jest.setTimeout(360000); describe("Polywrap React Integration", () => { let envs: Env[]; let packages: IUriPackage[]; + let interfaces: InterfaceImplementations[]; + let redirects: IUriRedirect[]; let ensUri: string; let wrapper: { ensDomain: string; @@ -30,8 +32,9 @@ describe("Polywrap React Integration", () => { await initTestEnvironment(); envs = createEnvs(providers.ipfs); - packages = createPlugins(ensAddresses.ensAddress, providers.ethereum); + interfaces = createInterfaces(); + redirects = createRedirects(); wrapper = await buildAndDeployWrapper({ wrapperAbsPath: `${GetPathToTestWrappers()}/wasm-as/simple-storage`, @@ -48,7 +51,12 @@ describe("Polywrap React Integration", () => { it("Deploys, read and write on Smart Contract ", async () => { render( - + ); fireEvent.click(screen.getByText("Deploy")); diff --git a/packages/js/react/src/__tests__/usePolywrapClient.spec.tsx b/packages/js/react/src/__tests__/usePolywrapClient.spec.tsx index 074340d0c6..2f16f17aab 100644 --- a/packages/js/react/src/__tests__/usePolywrapClient.spec.tsx +++ b/packages/js/react/src/__tests__/usePolywrapClient.spec.tsx @@ -4,9 +4,9 @@ import { createPolywrapProvider, usePolywrapClient } from ".."; -import { createPlugins, createEnvs } from "./config"; +import { createPlugins, createEnvs, createInterfaces, createRedirects } from "./config"; -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; import { ensAddresses, providers, @@ -21,20 +21,25 @@ jest.setTimeout(360000); describe("usePolywrapClient hook", () => { let envs: Env[]; let packages: IUriPackage[]; + let interfaces: InterfaceImplementations[]; + let redirects: IUriRedirect[]; let WrapperProvider: RenderHookOptions; beforeAll(async () => { await initTestEnvironment(); envs = createEnvs(providers.ipfs); - packages = createPlugins(ensAddresses.ensAddress, providers.ethereum); + interfaces = createInterfaces(); + redirects = createRedirects(); WrapperProvider = { wrapper: PolywrapProvider, initialProps: { envs, packages, + interfaces, + redirects, }, }; }); diff --git a/packages/js/react/src/__tests__/usePolywrapInvoke.spec.tsx b/packages/js/react/src/__tests__/usePolywrapInvoke.spec.tsx index a5fbbf5aa6..eea4ff40e0 100644 --- a/packages/js/react/src/__tests__/usePolywrapInvoke.spec.tsx +++ b/packages/js/react/src/__tests__/usePolywrapInvoke.spec.tsx @@ -4,9 +4,9 @@ import { createPolywrapProvider, } from ".."; import { UsePolywrapInvokeProps } from "../invoke"; -import { createPlugins, createEnvs } from "./config"; +import { createPlugins, createEnvs, createInterfaces, createRedirects } from "./config"; -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; import { initTestEnvironment, stopTestEnvironment, @@ -29,6 +29,8 @@ describe("usePolywrapInvoke hook", () => { let uri: string; let envs: Env[]; let packages: IUriPackage[]; + let interfaces: InterfaceImplementations[]; + let redirects: IUriRedirect[]; let WrapperProvider: RenderHookOptions; beforeAll(async () => { @@ -40,11 +42,16 @@ describe("usePolywrapInvoke hook", () => { envs = createEnvs(providers.ipfs); packages = createPlugins(ensAddresses.ensAddress, providers.ethereum); + interfaces = createInterfaces(); + redirects = createRedirects(); + WrapperProvider = { wrapper: PolywrapProvider, initialProps: { envs, packages, + interfaces, + redirects, }, }; }); diff --git a/packages/js/react/src/__tests__/usePolywrapQuery.spec.tsx b/packages/js/react/src/__tests__/usePolywrapQuery.spec.tsx index f81ae3d7c2..19bd6c6173 100644 --- a/packages/js/react/src/__tests__/usePolywrapQuery.spec.tsx +++ b/packages/js/react/src/__tests__/usePolywrapQuery.spec.tsx @@ -6,9 +6,9 @@ import { import { UsePolywrapQueryProps } from "../query" -import { createPlugins, createEnvs } from "./config"; +import { createPlugins, createEnvs, createInterfaces, createRedirects } from "./config"; -import { Env, IUriPackage, Uri } from "@polywrap/core-js"; +import { Env, InterfaceImplementations, IUriPackage, IUriRedirect, Uri } from "@polywrap/core-js"; import { initTestEnvironment, stopTestEnvironment, @@ -31,6 +31,8 @@ describe("usePolywrapQuery hook", () => { let uri: string; let envs: Env[]; let packages: IUriPackage[]; + let interfaces: InterfaceImplementations[]; + let redirects: IUriRedirect[]; let WrapperProvider: RenderHookOptions; beforeAll(async () => { @@ -45,11 +47,16 @@ describe("usePolywrapQuery hook", () => { envs = createEnvs(providers.ipfs); packages = createPlugins(ensAddresses.ensAddress, providers.ethereum); + interfaces = createInterfaces(); + redirects = createRedirects(); + WrapperProvider = { wrapper: PolywrapProvider, initialProps: { envs, packages, + interfaces, + redirects, }, }; }); diff --git a/packages/test-cases/cases/wrappers/wasm-as/simple-storage/polywrap.yaml b/packages/test-cases/cases/wrappers/wasm-as/simple-storage/polywrap.yaml index f51916b69f..960d10aa1c 100644 --- a/packages/test-cases/cases/wrappers/wasm-as/simple-storage/polywrap.yaml +++ b/packages/test-cases/cases/wrappers/wasm-as/simple-storage/polywrap.yaml @@ -5,8 +5,5 @@ project: source: schema: ./schema.graphql module: ./src/index.ts - import_abis: - - uri: "wrap://ens/ethereum.polywrap.eth" - abi: ../../../../../js/plugins/ethereum/build/wrap.info extensions: build: ./polywrap.build.yaml diff --git a/yarn.lock b/yarn.lock index 2edb49a9b2..2db6a10716 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1383,7 +1383,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -1396,7 +1396,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1418,7 +1418,7 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/rlp" "^5.0.3" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -1444,7 +1444,7 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -1452,7 +1452,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1468,7 +1468,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -1491,7 +1491,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1563,7 +1563,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== @@ -1578,38 +1578,13 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" - integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.3" - "@ethersproject/abstract-signer" "^5.0.3" - "@ethersproject/address" "^5.0.3" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.6" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.3" - "@ethersproject/hash" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.3" - "@ethersproject/transactions" "^5.0.3" - "@ethersproject/web" "^5.0.4" - bech32 "1.1.4" - ws "7.2.3" - "@ethersproject/providers@5.6.8": version "5.6.8" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" @@ -1688,7 +1663,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -1704,7 +1679,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -1737,7 +1712,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1746,7 +1721,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1823,7 +1798,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -3332,17 +3307,6 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz#ed410c9eb0070491cff9fe914246ce41f88d6f74" integrity sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ== -"@polywrap/ethereum-plugin-js@0.10.0-pre.5": - version "0.10.0-pre.5" - resolved "https://registry.yarnpkg.com/@polywrap/ethereum-plugin-js/-/ethereum-plugin-js-0.10.0-pre.5.tgz#056e401ef37f734867f42732e0801a7b9a2491a6" - integrity sha512-XTfgwiuDTyAcJ5efujnbCNEP3iajpaAgKB4Ltlkg+oAAnymlVnoigCE517QJS9HUcdUMSdgRkgLIu0DlpuaMCw== - dependencies: - "@ethersproject/address" "5.0.7" - "@ethersproject/providers" "5.0.7" - "@polywrap/core-js" "0.10.0-pre.5" - "@polywrap/plugin-js" "0.10.0-pre.5" - ethers "5.0.7" - "@polywrap/ipfs-http-client-lite@0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@polywrap/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz#b8caf4b4f39413e591aff4367023a04cb6df83a1" @@ -18071,11 +18035,6 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" -ws@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 3a0709b0b85a711edd6ed0970b1c7f6f92b1b8d2 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 15 Dec 2022 12:21:34 +0530 Subject: [PATCH 03/51] changed ens uri used for ethereum wrapper and provider interface --- .../js/client-config-builder/src/bundles/getDefaultConfig.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index aa218c056a..71c78a0b2d 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -90,9 +90,9 @@ export const defaultWrappers = { sha3: "wrap://ens/goerli/sha3.wrappers.eth", uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", - ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:wrap@0.10.0", + ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:wrap", // points to :wrap@0.10.0 ethereumProviderInterface: - "wrap://ens/goerli/ethereum.wrappers.eth:provider@0.10.0", + "wrap://ens/goerli/ethereum.wrappers.eth:iprovider", // points to :iprovider@0.10.0 }; export const getDefaultPlugins = (): IUriPackage[] => { From 08fd6ab1c02ffb9807a63f439456221ab805fb70 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Mon, 19 Dec 2022 17:02:55 +0530 Subject: [PATCH 04/51] moved ens text record resolver ipfs uri to defaultWrappers object for accessibility --- .../client-config-builder/src/bundles/getDefaultConfig.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 171aeffef2..385d756762 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -64,7 +64,7 @@ export const getDefaultConfig = (): ClientConfig => { new Uri("wrap://ens/fs-resolver.polywrap.eth"), new Uri("wrap://ens/http-resolver.polywrap.eth"), // ens-text-record-resolver - new Uri("wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY"), + new Uri(defaultWrappers.ensTextRecordResolver), ], }, { @@ -96,9 +96,11 @@ export const defaultWrappers = { uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", concurrentInterface: "wrap://ens/goerli/interface.concurrent.wrappers.eth", - ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:wrap", // points to :wrap@0.10.0 + ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:pkg@latest", ethereumProviderInterface: - "wrap://ens/goerli/ethereum.wrappers.eth:iprovider", // points to :iprovider@0.10.0 + "wrap://ens/goerli/ethereum.wrappers.eth:iprovider@latest", + ensTextRecordResolver: + "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", }; export const getDefaultPlugins = (): IUriPackage[] => { From c74738eade40d9b2bcd66981f224888993202a5c Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 30 Dec 2022 17:24:26 +0530 Subject: [PATCH 05/51] using ipfs uri instead of ens text record uri for ethereum wrapper --- .../js/client-config-builder/src/bundles/getDefaultConfig.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index cfb75b511b..6562a14636 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -96,9 +96,9 @@ export const defaultWrappers = { uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", concurrentInterface: "wrap://ens/goerli/interface.concurrent.wrappers.eth", - ethereum: "wrap://ens/goerli/ethereum.wrappers.eth:pkg@latest", + ethereum: "wrap://ipfs/QmbE8rKGwbxChrWCPpyBTacFUHGjmmp9x8EkKx8mEr8ZqH", ethereumProviderInterface: - "wrap://ens/goerli/ethereum.wrappers.eth:iprovider@latest", + "wrap://ipfs/QmRNDF5U43dmYVgNBfCswNcfjvrKzfkU1XMmTAGYHezNmy", ensTextRecordResolver: "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", }; From bc0aecbbe44ff6744c12f61df6bf177c284f71ff Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 30 Dec 2022 18:56:41 +0530 Subject: [PATCH 06/51] updated eth wrapper URIs, updated eth provider plugin, moved invokeWithTimeout --- packages/cli/package.json | 2 +- .../ens-recursive-name-register/index.ts | 2 +- .../invokeWithTimeout.ts} | 0 .../lib/defaults/deploy-modules/ens/index.ts | 2 +- .../deploy-modules/ens/invokeWithTimeout.ts | 42 +++++++++++++++++++ .../js/client-config-builder/package.json | 2 +- .../src/bundles/getDefaultConfig.ts | 8 +++- packages/js/client/package.json | 2 +- .../uri-resolvers/ens-resolver/package.json | 2 +- yarn.lock | 10 ++--- 10 files changed, 59 insertions(+), 13 deletions(-) rename packages/cli/src/lib/{helpers/invokeWithTImeout.ts => defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts} (100%) create mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index d4ba2e1e79..af6597ae6f 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -45,7 +45,7 @@ "@polywrap/client-js": "0.10.0-pre.6", "@polywrap/core-js": "0.10.0-pre.6", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.6", - "ethereum-provider-js": "0.1.1", + "ethereum-provider-js": "0.1.3", "@polywrap/ipfs-plugin-js": "0.10.0-pre.6", "@polywrap/logging-js": "0.10.0-pre.6", "@polywrap/os-js": "0.10.0-pre.6", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index e89b1ff6f8..f9b1444489 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; -import { invokeWithTimeout } from "../../../helpers/invokeWithTImeout"; +import { invokeWithTimeout } from "./invokeWithTimeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; diff --git a/packages/cli/src/lib/helpers/invokeWithTImeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts similarity index 100% rename from packages/cli/src/lib/helpers/invokeWithTImeout.ts rename to packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index a6c357fb5a..c8cb8603b3 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,7 +1,7 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; -import { invokeWithTimeout } from "../../../helpers/invokeWithTImeout"; +import { invokeWithTimeout } from "./invokeWithTimeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts new file mode 100644 index 0000000000..348853ad53 --- /dev/null +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts @@ -0,0 +1,42 @@ +import { InvokerOptions } from "@polywrap/core-js"; +import { Result, ResultErr, ResultOk } from "@polywrap/result"; +import { PolywrapClient } from "@polywrap/client-js"; + +export async function invokeWithTimeout( + client: PolywrapClient, + options: InvokerOptions, + timeout: number +): Promise> { + const controller = new AbortController(); + + const timer = setTimeout(() => { + controller.abort(); + }, timeout); + + const [error, value] = await new Promise< + [error: Error | undefined, result: TResult | undefined] + >((resolve, reject) => { + controller.signal.addEventListener("abort", () => { + reject("Timeout has been reached"); + }); + client.invoke(options).then( + (result) => { + timer && clearTimeout(timer); + if (!result.ok) { + resolve([result.error, undefined]); + return; + } + resolve([undefined, result.value]); + }, + (error) => { + timer && clearTimeout(timer); + resolve([error, undefined]); + } + ); + }); + + if (error) { + return ResultErr(error); + } + return ResultOk(value as TResult); +} diff --git a/packages/js/client-config-builder/package.json b/packages/js/client-config-builder/package.json index 42aaca80cc..20d740834e 100644 --- a/packages/js/client-config-builder/package.json +++ b/packages/js/client-config-builder/package.json @@ -21,7 +21,7 @@ "dependencies": { "@polywrap/core-js": "0.10.0-pre.6", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.6", - "ethereum-provider-js": "0.1.1", + "ethereum-provider-js": "0.1.3", "@polywrap/fs-plugin-js": "0.10.0-pre.6", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.6", "@polywrap/http-plugin-js": "0.10.0-pre.6", diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 6562a14636..8a3c0ed6a2 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -54,6 +54,10 @@ export const getDefaultConfig = (): ClientConfig => { from: new Uri("wrap://ens/ethereum.polywrap.eth"), to: new Uri(defaultWrappers.ethereum), }, + { + from: new Uri("wrap://ens/iprovider.polywrap.eth"), + to: new Uri(defaultWrappers.ethereumProviderInterface), + }, ], interfaces: [ { @@ -76,7 +80,7 @@ export const getDefaultConfig = (): ClientConfig => { implementations: [new Uri("wrap://plugin/concurrent")], }, { - interface: new Uri(defaultWrappers.ethereumProviderInterface), + interface: new Uri("wrap://ens/iprovider.polywrap.eth"), implementations: [new Uri("wrap://plugin/ethereum-provider")], }, ], @@ -96,7 +100,7 @@ export const defaultWrappers = { uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", concurrentInterface: "wrap://ens/goerli/interface.concurrent.wrappers.eth", - ethereum: "wrap://ipfs/QmbE8rKGwbxChrWCPpyBTacFUHGjmmp9x8EkKx8mEr8ZqH", + ethereum: "wrap://ipfs/QmdQmXoHEw8wXgo7mXtAQagqmNUJmuHEDhpPDhXQDXirjW", ethereumProviderInterface: "wrap://ipfs/QmRNDF5U43dmYVgNBfCswNcfjvrKzfkU1XMmTAGYHezNmy", ensTextRecordResolver: diff --git a/packages/js/client/package.json b/packages/js/client/package.json index 3f87545e45..71290f79e6 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.6", - "ethereum-provider-js": "0.1.1", + "ethereum-provider-js": "0.1.3", "@polywrap/fs-plugin-js": "0.10.0-pre.6", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.6", "@polywrap/http-plugin-js": "0.10.0-pre.6", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 28cbb83b47..9e5ada9ad1 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -28,7 +28,7 @@ }, "devDependencies": { "@polywrap/client-js": "0.10.0-pre.6", - "ethereum-provider-js": "0.1.1", + "ethereum-provider-js": "0.1.3", "@polywrap/ipfs-plugin-js": "0.10.0-pre.6", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.6", "@polywrap/client-config-builder-js": "0.10.0-pre.6", diff --git a/yarn.lock b/yarn.lock index c209c7e9b3..70d3e7271f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7760,14 +7760,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -ethereum-provider-js@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.1.tgz#c6e5f775f66674ef3e3dcd98ffbcde726a20da45" - integrity sha512-SuFXwxsQcSUPyivKjPsYeIfatoBmnBttqiKypJN4SBBQgZptCHZip+/ZF5QME8GzciU+KLoP2L2c4/c166oT8Q== +ethereum-provider-js@0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.3.tgz#a5fe8966a6dca42442b3802bc291a98d9d3ca723" + integrity sha512-7Ne7DBMCJf2JpuamqNh/4a0mQJYTQgyfgH2BMqJ/LsRCjh1zjZCAuEiLkBIafOmmh6rA4X8vDY11rgkml2GC/g== dependencies: "@ethersproject/address" "5.7.0" "@ethersproject/providers" "5.7.0" - "@polywrap/core-js" "0.10.0-pre.5" + "@polywrap/core-js" "0.10.0-pre.6" ethers "5.7.0" ethers@5.0.7: From 707840344b32aff7ca72bbf8207d7b2f1b645c11 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 4 Jan 2023 18:29:08 +0530 Subject: [PATCH 07/51] fix merge conflicts --- .../deploy-modules/ens-recursive-name-register/index.ts | 7 +++++-- packages/cli/src/lib/defaults/deploy-modules/ens/index.ts | 7 +++++-- packages/cli/src/lib/test-env/client-config.ts | 3 ++- .../client-config-builder/src/bundles/getDefaultConfig.ts | 2 +- 4 files changed, 13 insertions(+), 6 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index f9b1444489..63c97606c5 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -13,7 +13,10 @@ import { } from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; -import { defaultWrappers } from "@polywrap/client-config-builder-js"; +import { + defaultInterfaces, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; class ENSRecursiveNameRegisterPublisher implements Deployer { async execute( @@ -86,7 +89,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { ], interfaces: [ { - interface: defaultWrappers.ethereumProviderInterface, + interface: defaultInterfaces.ethereumProvider, implementations: ["wrap://plugin/ethereum-provider"], }, ], diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index c8cb8603b3..6ced4c952c 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -13,7 +13,10 @@ import { } from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; -import { defaultWrappers } from "@polywrap/client-config-builder-js"; +import { + defaultInterfaces, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; const contentHash = require("content-hash"); @@ -83,7 +86,7 @@ class ENSPublisher implements Deployer { ], interfaces: [ { - interface: defaultWrappers.ethereumProviderInterface, + interface: defaultInterfaces.ethereumProvider, implementations: ["wrap://plugin/ethereum-provider"], }, ], diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index 4c21b8ee19..ef42118cfd 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -2,6 +2,7 @@ import { getTestEnvProviders } from "./providers"; import { PolywrapClientConfig } from "@polywrap/client-js"; import { + defaultInterfaces, defaultIpfsProviders, defaultWrappers, } from "@polywrap/client-config-builder-js"; @@ -79,7 +80,7 @@ export function getTestEnvClientConfig(): Partial { ], interfaces: [ { - interface: defaultWrappers.ethereumProviderInterface, + interface: defaultInterfaces.ethereumProvider, implementations: ["wrap://plugin/ethereum-provider"], }, ], diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index fafda6a191..af2c0736cc 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -27,7 +27,7 @@ export const defaultWrappers = { graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", ensTextRecordResolver: "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", - ethereum: "wrap://ipfs/QmdQmXoHEw8wXgo7mXtAQagqmNUJmuHEDhpPDhXQDXirjW", + ethereum: "wrap://ipfs/QmfXVjDkyRWzBvpRMKpTHE7Cu1gSvUfQJQwfKPUCubspnW", }; export const defaultPackages = { From 2ec4f682ed2f144a7198fc6d4e082be69ded7312 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 4 Jan 2023 18:30:00 +0530 Subject: [PATCH 08/51] updated ens wrappers in test-env-js to use ethereum wrapper --- .../js/test-env/src/wrappers/ens/wrap.info | Bin 51347 -> 52349 bytes .../js/test-env/src/wrappers/ens/wrap.wasm | Bin 288877 -> 265476 bytes 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 packages/js/test-env/src/wrappers/ens/wrap.wasm diff --git a/packages/js/test-env/src/wrappers/ens/wrap.info b/packages/js/test-env/src/wrappers/ens/wrap.info index 355a10d5361133b39998e8427e73d4ebd011979d..e78cb54fb7c258946ea0de49f034fbe8ce07290a 100644 GIT binary patch delta 5932 zcmeHLT}%{L6z=fj;x59nER`RDQKLaY)EG=?W33=kY7tNp677$(J9lB|?#wVhz@l|A z)=g8eRgY3=RoGNOu?l6Z)>PA)wn?jLDlaw0R-+Gnv#D*;_Qj@mW|!RsR*)(B z=jYz20n*f8&8b#nzTF&rx%f0JQpVt^Mo9tjeI#KZ7oW5&{cJLhsC zR=Po!QX(nJJnv)>O*%M%ly@uF2NBhAldcC=yipHxJ6kPgTo~Zzp|j95FemeB1(*l zlF)7#=}Cs6!Pt!58j?y-c%9vjM6palE>$KKym4u8JuY1_%?L8?4@&ovC ztf|32Q8O8oRsLM?U6f8$!{S|fRY!6j5IVi4=WfyK^}@0Wy{gqK>h-D`R~e&q?sfa> zoqAPsp1Y@4m3pB)M(2VHi)-}4^m9prUe&IbWWB0eH{RD9h#!=n((CoT$|+PAJnX*u zi~SGeGhP_klBS&4vPADGXV%=*tGa%hFnNHio^tsLF#<003Pj8lwVG&c4!~a2VJ{}Lv6CpVHDoxixaB6HxxuewP#(a%ykd2g6 z4sfU@Myd;^WpE$m!gZfzI;2Pe+ZrNsQqrSdb*mDA4XKwt``|?C9nRIEDlf|z8h~3} z*+6bKWQR2~k%+3QW|=slsb8_T5J%uwc@5m!Zh=GeYDj1?LAMYKgJ>mWx=nDUr2yvG z;vwJhe9C9rB5*V??^u-?aptu?PD^{xy@Q0rL8CE5?BGCs8uac+A3uDxJ{_)6vmaMi z_cZZM5i6kv_-W$PUI_dh@z}oZY2q8#4W@e^+QF#_&omHr@o}D0Htt+Xz!kd{t_{V) zC5N3bEAwl=jD=l|@k+Vtix^0in+c0@Kt4^xhw@!11$QLtobUk=svK#MU^7`K<~P51 zN~DQVwIX6KRN3Z2+vX);cFcl%U1l|*Dml%C1Q=TWc}xk<5`se`FPP^l@>|2P7L23X z(+<=kskn|}*fJV?*0fmdA9hI#jiDK6csmoWb#{PvPm;2B&$}_%6MJw`v)0dP?`LX% zoD=x=cgK+w)NsekfsqUjUU|10_9q&^%O?!Cy-L7~79P&GCqP4c2OhU7x4q?f&@}7W zGc>YuG}<7u+B;jHfFxO9p_R8r<0;tJJ`c(IJsIT#M}asBv>hThEE)uRmkT)vcL7@b%*Tol}JE1#mk zxdaVZl7=Axyg+Z$c61$f}={FUyuloj^xnzQdo?Q6*;ylIC z)k(nTJ>P0d`+cRVlCtm2U(vvOla-F)B4WlvMfvx`w5XZ3%EOVp@yh!rX5KQV>^fCA z!|T11-JleoMTB`s#H70%zh6MzPX+~!N delta 3561 zcmcImZERCz6!zV^4%V`@YxhxDw@PFYlrdbG5?o~9zy&CSi6-({+Dmt7d+&Dd?Z!|x z%DNd9lR`#Pxke z7!2s~**;UsYC1p*7;{_jk7pKw1}iy^Hw~rP=PHC6ilc&ott!9}oV1;U&_0kWeb;@Q zi)}_*$@!RRMLop`PFA3I&~BGNvrMR4Xso4%Vg^o1Xka;C2%{;s?C9oTY_r_$rg&aF zV2s%ECZ)l+0#v^c%L`-0);yKWD~G5&#D>BvNg5$q<~C`CsCe=o(HKQrQMJ}6>NXNe<@6@ z25b$U83$qIJVL-9$qS%ebK@l+AtTtN`L2P zpGgW^(Th||5rM^!iQA1E@a^Mz-0~ZBCplMxO!v{nh436i!Z*#s8)GR(Sr{i;OKb_+ z%@KC{PRcF7#W+my#0@7?QWURLo*>s8k3`E8zbjWqA5l(}n^3&O&m$t=b~c6Ni3<*N z=}=ot&zZ7^mA{~R1ITZJLX{kS6HMtUUVU$b;7G@D(t$g$icV}IxY(nI?cE;yb-@DX z+c#x-#sJUyX%8(lR=M0hj6Q0M(@0Ghr&)Nl5_gdvgUlG7fLKMj-7X(~xneg@Rz0<- zRPNpc%cWmd#Ko8K;e=;(jZ1cuB1+InP)4;K5^>PdX%=^OGD+gyu4W>(9yJoo=*X*^p zN=CruNU@~OMc1h;tUqCz0xZzW3n|0$g4x(Qd`uc~#`~#Am-D_53g=?aEPC;2FC~mmkx7{( zJgt@ZRo3{fD1Y94=eWQV+?8;@-d~$DC}&9Vf^<3AAS3YOr^+`bBW@4PO*YgY$~494 zc?>t@Bp8o&=Hm;PrqGMx<+Ftkr}MAL;USTIuYL*`P1|thJoL| diff --git a/packages/js/test-env/src/wrappers/ens/wrap.wasm b/packages/js/test-env/src/wrappers/ens/wrap.wasm old mode 100644 new mode 100755 index 0503a3056cfd14cb557c9cdbf47ef64bc7fb58e3..d53048e6a195f493b00d43359889a929bd68469a GIT binary patch delta 46643 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 delta 58256 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

-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 Gd;Jdxl|*>} From da877734efbca4cdb9525166d5b43e84be80e52d Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 4 Jan 2023 19:03:27 +0530 Subject: [PATCH 09/51] fixed some tests for use with ethereum wrapper and missed merge conflicts --- packages/js/client/src/__tests__/core/sanity.spec.ts | 4 ++-- .../client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 4 ++-- .../cases/wrappers/wasm-rs/simple-storage/src/lib.rs | 3 ++- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/js/client/src/__tests__/core/sanity.spec.ts b/packages/js/client/src/__tests__/core/sanity.spec.ts index 143a5455d8..88e9e9c956 100644 --- a/packages/js/client/src/__tests__/core/sanity.spec.ts +++ b/packages/js/client/src/__tests__/core/sanity.spec.ts @@ -11,7 +11,7 @@ import { buildWrapper } from "@polywrap/test-env-js"; import { ResultErr } from "@polywrap/result"; import { StaticResolver, UriResolverLike } from "@polywrap/uri-resolvers-js"; import { WasmPackage } from "@polywrap/wasm-js"; -import { defaultWrappers } from "@polywrap/client-config-builder-js"; +import { defaultInterfaces } from "@polywrap/client-config-builder-js"; jest.setTimeout(200000); @@ -36,7 +36,7 @@ describe("sanity", () => { implementations: [new Uri("wrap://plugin/logger")], }, { - interface: new Uri(defaultWrappers.concurrentInterface), + interface: new Uri(defaultInterfaces.concurrent), implementations: [new Uri("wrap://plugin/concurrent")], }, ]); diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index a7004a2a9f..b36c7ce449 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -16,7 +16,7 @@ import { WrapperCache, } from "@polywrap/uri-resolvers-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { defaultWrappers } from "@polywrap/client-config-builder-js"; +import { defaultInterfaces, defaultWrappers } from "@polywrap/client-config-builder-js"; export const getClientWithEnsAndIpfs = () => { const connections: Connections = new Connections({ @@ -47,7 +47,7 @@ export const getClientWithEnsAndIpfs = () => { ], }, { - interface: defaultWrappers.ethereumProviderInterface, + interface: defaultInterfaces.ethereumProvider, implementations: ["wrap://plugin/ethereum-provider"], }, ], diff --git a/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/src/lib.rs b/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/src/lib.rs index be731b757d..6c8af6d04b 100644 --- a/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/src/lib.rs +++ b/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/src/lib.rs @@ -41,7 +41,7 @@ pub fn set_data(args: ArgsSetData) -> String { method: "function set(uint256 value)".to_string(), args: Some(vec![args.value.to_string()]), connection: args.connection, - tx_overrides: None, + options: None, }) { Ok(res) => res.hash, Err(e) => panic!("{}", e), @@ -56,6 +56,7 @@ pub fn deploy_contract(args: ArgsDeployContract) -> String { bytecode, args: None, connection: args.connection, + options: None, }) .unwrap() } From 53250e1aa7d0bb5d1dccaa19b2bf1f26c5d80685 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 5 Jan 2023 10:58:50 +0530 Subject: [PATCH 10/51] fixes to default config and client sanity test --- .../src/bundles/getDefaultConfig.ts | 9 ++------- packages/js/client/src/__tests__/core/sanity.spec.ts | 4 ++++ .../ens-resolver/src/__tests__/helpers/getClient.ts | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index af2c0736cc..3998645100 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -47,8 +47,7 @@ export const defaultInterfaces = { uriResolver: "wrap://ens/uri-resolver.core.polywrap.eth", concurrent: "wrap://ens/goerli/interface.concurrent.wrappers.eth", logger: "wrap://ens/wrappers.polywrap.eth:logger@1.0.0", - ethereumProvider: - "wrap://ipfs/QmRNDF5U43dmYVgNBfCswNcfjvrKzfkU1XMmTAGYHezNmy", + ethereumProvider: "wrap://ens/iprovider.polywrap.eth", }; export const getDefaultConfig = (): ClientConfig => { @@ -89,10 +88,6 @@ export const getDefaultConfig = (): ClientConfig => { from: new Uri("wrap://ens/ethereum.polywrap.eth"), to: new Uri(defaultWrappers.ethereum), }, - { - from: new Uri("wrap://ens/iprovider.polywrap.eth"), - to: new Uri(defaultInterfaces.ethereumProvider), - }, ], interfaces: [ { @@ -114,7 +109,7 @@ export const getDefaultConfig = (): ClientConfig => { implementations: [new Uri(defaultPackages.concurrent)], }, { - interface: new Uri("wrap://ens/iprovider.polywrap.eth"), + interface: new Uri(defaultInterfaces.ethereumProvider), implementations: [new Uri(defaultPackages.ethereumProvider)], }, ], diff --git a/packages/js/client/src/__tests__/core/sanity.spec.ts b/packages/js/client/src/__tests__/core/sanity.spec.ts index 88e9e9c956..d1b6b18af4 100644 --- a/packages/js/client/src/__tests__/core/sanity.spec.ts +++ b/packages/js/client/src/__tests__/core/sanity.spec.ts @@ -39,6 +39,10 @@ describe("sanity", () => { interface: new Uri(defaultInterfaces.concurrent), implementations: [new Uri("wrap://plugin/concurrent")], }, + { + interface: new Uri(defaultInterfaces.ethereumProvider), + implementations: [new Uri("wrap://plugin/ethereum-provider")], + }, ]); }); diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index 2a6042bf2b..3b714698e9 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -15,7 +15,7 @@ import { PolywrapClient } from "@polywrap/client-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { defaultWrappers } from "@polywrap/client-config-builder-js"; +import { defaultInterfaces, defaultWrappers } from "@polywrap/client-config-builder-js"; export const getClient = () => { return new PolywrapClient( @@ -30,7 +30,7 @@ export const getClient = () => { ], }, { - interface: defaultWrappers.ethereumProviderInterface, + interface: defaultInterfaces.ethereumProvider, implementations: ["wrap://plugin/ethereum-provider"], }, ], From 8ff7a6fa1da68d7b78103a23e872dc334a23ca8a Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 5 Jan 2023 22:50:43 +0530 Subject: [PATCH 11/51] updated ethereum wrapper ipfs uri to new version --- .../js/client-config-builder/src/bundles/getDefaultConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 3998645100..b02d719f6e 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -27,7 +27,7 @@ export const defaultWrappers = { graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", ensTextRecordResolver: "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", - ethereum: "wrap://ipfs/QmfXVjDkyRWzBvpRMKpTHE7Cu1gSvUfQJQwfKPUCubspnW", + ethereum: "wrap://ipfs/Qmf38QJV1kS2qd1DwLB5zvcDXmf2D8EdrzdBTc4oYbPKeJ", }; export const defaultPackages = { From ac753f76f43e055e7be449e6e96857882c22fa19 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 11:22:58 +0530 Subject: [PATCH 12/51] updated ganache version in default test env to @latest --- .../infra-modules/eth-ens-ipfs/docker-compose.yaml | 3 ++- .../defaults/infra-modules/eth-ens-ipfs/eth/Dockerfile | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/eth/Dockerfile diff --git a/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml index 04e3ca05db..d3c29a0243 100644 --- a/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml +++ b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml @@ -1,7 +1,8 @@ version: '3' services: ganache: - image: 'trufflesuite/ganache-cli:v6.12.2' + platform: linux/x86_64 + build: ./eth ports: - '${ETHEREUM_PORT:-8545}:8545' command: -l 8000000 --networkId 1576478390085 --deterministic --hostname=0.0.0.0 diff --git a/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/eth/Dockerfile b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/eth/Dockerfile new file mode 100644 index 0000000000..c4fa1476cb --- /dev/null +++ b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/eth/Dockerfile @@ -0,0 +1,8 @@ +FROM node:16-alpine + +RUN mkdir -p /usr/src/app +WORKDIR /usr/src/app + +RUN npm install -g ganache@latest + +CMD ["ganache", "--hostname", "0.0.0.0"] \ No newline at end of file From 6045da6fe3497da286b145cf66a43317add753e9 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 12:23:25 +0530 Subject: [PATCH 13/51] fixed typo in updated ganache command in docker-compose --- .../defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml index d3c29a0243..e8f797fc7f 100644 --- a/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml +++ b/packages/cli/src/lib/defaults/infra-modules/eth-ens-ipfs/docker-compose.yaml @@ -4,8 +4,8 @@ services: platform: linux/x86_64 build: ./eth ports: - - '${ETHEREUM_PORT:-8545}:8545' - command: -l 8000000 --networkId 1576478390085 --deterministic --hostname=0.0.0.0 + - ${ETHEREUM_PORT:-8545}:8545 + command: ganache -l 8000000 --networkId 1576478390085 --deterministic --hostname=0.0.0.0 ipfs: build: ./ipfs ports: From ccdd5382a95010b42c2fac0f0006ec7c1d04fc69 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 16:41:15 +0530 Subject: [PATCH 14/51] correctly providing txHash to awaitTransaction call in ens-recursive-name-register deploy module --- packages/cli/package.json | 1 + .../ens-recursive-name-register/index.ts | 4 ++-- .../invokeWithTimeout.ts | 16 ++++++++-------- .../deploy-modules/ens/invokeWithTimeout.ts | 16 ++++++++-------- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/packages/cli/package.json b/packages/cli/package.json index c72806949a..4df5c75025 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -58,6 +58,7 @@ "@polywrap/test-env-js": "0.10.0-pre.6", "@polywrap/wasm-js": "0.10.0-pre.6", "@polywrap/wrap-manifest-types-js": "0.10.0-pre.6", + "@polywrap/result": "0.10.0-pre.6", "axios": "0.21.2", "chalk": "4.1.0", "chokidar": "3.5.1", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index 63c97606c5..dcf54cfd76 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -109,7 +109,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { throw new Error("Could not get signer"); } - const registerData = await client.invoke<{ hash: string }>({ + const registerData = await client.invoke<{ tx: { hash: string } }[]>({ method: "registerDomainAndSubdomainsRecursively", uri: ensWrapperUri, args: { @@ -138,7 +138,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { method: "awaitTransaction", uri: ethereumWrapperUri, args: { - txHash: registerData.value.hash, + txHash: registerData.value[0].tx.hash, connection: { networkNameOrChainId: network, }, diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts index 348853ad53..bd5bcf72ad 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts @@ -19,20 +19,20 @@ export async function invokeWithTimeout( controller.signal.addEventListener("abort", () => { reject("Timeout has been reached"); }); - client.invoke(options).then( - (result) => { - timer && clearTimeout(timer); + client + .invoke(options) + .then((result) => { if (!result.ok) { resolve([result.error, undefined]); return; } resolve([undefined, result.value]); - }, - (error) => { - timer && clearTimeout(timer); + }) + .catch((error) => { resolve([error, undefined]); - } - ); + }); + }).finally(() => { + timer && clearTimeout(timer); }); if (error) { diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts index 348853ad53..bd5bcf72ad 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts @@ -19,20 +19,20 @@ export async function invokeWithTimeout( controller.signal.addEventListener("abort", () => { reject("Timeout has been reached"); }); - client.invoke(options).then( - (result) => { - timer && clearTimeout(timer); + client + .invoke(options) + .then((result) => { if (!result.ok) { resolve([result.error, undefined]); return; } resolve([undefined, result.value]); - }, - (error) => { - timer && clearTimeout(timer); + }) + .catch((error) => { resolve([error, undefined]); - } - ); + }); + }).finally(() => { + timer && clearTimeout(timer); }); if (error) { From eb4c8f9f7100c8b1ca89152a905355f7abd992b9 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 16:53:29 +0530 Subject: [PATCH 15/51] moved timeout clearing logic in invokeWithTimeout --- .../ens-recursive-name-register/invokeWithTimeout.ts | 4 ++-- .../src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts index bd5bcf72ad..4e83780b7d 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts @@ -22,6 +22,7 @@ export async function invokeWithTimeout( client .invoke(options) .then((result) => { + timer && clearTimeout(timer); if (!result.ok) { resolve([result.error, undefined]); return; @@ -29,10 +30,9 @@ export async function invokeWithTimeout( resolve([undefined, result.value]); }) .catch((error) => { + timer && clearTimeout(timer); resolve([error, undefined]); }); - }).finally(() => { - timer && clearTimeout(timer); }); if (error) { diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts index bd5bcf72ad..4e83780b7d 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts @@ -22,6 +22,7 @@ export async function invokeWithTimeout( client .invoke(options) .then((result) => { + timer && clearTimeout(timer); if (!result.ok) { resolve([result.error, undefined]); return; @@ -29,10 +30,9 @@ export async function invokeWithTimeout( resolve([undefined, result.value]); }) .catch((error) => { + timer && clearTimeout(timer); resolve([error, undefined]); }); - }).finally(() => { - timer && clearTimeout(timer); }); if (error) { From db2d4d3ffabec95f1c7331489f60d507eaf81ccb Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 17:54:31 +0530 Subject: [PATCH 16/51] updated ens text record resolver ipfs uri to use version that depends on updated ens wrapper --- .../js/client-config-builder/src/bundles/getDefaultConfig.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index b02d719f6e..826d17c5f9 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -26,7 +26,7 @@ export const defaultWrappers = { uts46: "wrap://ens/goerli/uts46-lite.wrappers.eth", graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", ensTextRecordResolver: - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy", ethereum: "wrap://ipfs/Qmf38QJV1kS2qd1DwLB5zvcDXmf2D8EdrzdBTc4oYbPKeJ", }; From 8f09ca66dd551c6ca7fbec32001b50c37f77b372 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 18:04:15 +0530 Subject: [PATCH 17/51] updated ens resolver test to throw result error on failure (helps with debugging) --- .../uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts index e3e990cfae..27bc3052ad 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/e2e.spec.ts @@ -42,7 +42,7 @@ describe("ENS Resolver Plugin", () => { const result = await client.tryResolveUri({ uri: wrapperUri }); if (!result.ok) { - fail("Expected response to not be an error"); + throw (result.error ?? new Error("Expected response to not be an error")); } if (result.value.type !== "wrapper") { From 97ac3d99b492cd250b16eda47f56f9de27b3f326 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 22:34:46 +0530 Subject: [PATCH 18/51] adjusted some codegen tests for ethereum wrapper --- .../003-multi-import/polywrap.app.yaml | 3 - .../cli/docgen/004-app/polywrap.app.yaml | 3 - .../expected/docs/generated-schema.graphql | 254 +-- .../codegen/001-sanity/expected/wrap/types.ts | 372 ++--- .../001-sanity/expected/wrap/wrap.info.ts | 1398 +++++++--------- .../002-single-module/expected/wrap/types.ts | 372 ++--- .../expected/wrap/wrap.info.ts | 1400 +++++++---------- .../005-custom-config/expected/wrap/types.ts | 372 ++--- .../expected/wrap/wrap.info.ts | 1398 +++++++--------- .../expected/wrap/types.ts | 372 ++--- .../expected/wrap/wrap.info.ts | 1398 +++++++--------- 11 files changed, 3017 insertions(+), 4325 deletions(-) diff --git a/packages/test-cases/cases/cli/app/codegen/003-multi-import/polywrap.app.yaml b/packages/test-cases/cases/cli/app/codegen/003-multi-import/polywrap.app.yaml index cfd2202c04..40f884e2a9 100644 --- a/packages/test-cases/cases/cli/app/codegen/003-multi-import/polywrap.app.yaml +++ b/packages/test-cases/cases/cli/app/codegen/003-multi-import/polywrap.app.yaml @@ -4,6 +4,3 @@ project: type: app/typescript source: schema: ./schema.graphql - import_abis: - - uri: "wrap://ens/ethereum.polywrap.eth" - abi: "./../../../../../../js/plugins/ethereum/build/wrap.info" diff --git a/packages/test-cases/cases/cli/docgen/004-app/polywrap.app.yaml b/packages/test-cases/cases/cli/docgen/004-app/polywrap.app.yaml index 75de97f0cf..40f884e2a9 100644 --- a/packages/test-cases/cases/cli/docgen/004-app/polywrap.app.yaml +++ b/packages/test-cases/cases/cli/docgen/004-app/polywrap.app.yaml @@ -4,6 +4,3 @@ project: type: app/typescript source: schema: ./schema.graphql - import_abis: - - uri: "wrap://ens/ethereum.polywrap.eth" - abi: "./../../../../../js/plugins/ethereum/build/wrap.info" diff --git a/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql b/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql index d440aff4ad..6860886a17 100644 --- a/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql +++ b/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql @@ -41,15 +41,14 @@ type Module @imports( types: [ "Ethereum_Module", "Ethereum_Connection", - "Ethereum_TxOverrides", + "Ethereum_TxOptions", "Ethereum_StaticTxResult", + "Ethereum_Eip1559FeesEstimate", "Ethereum_TxRequest", + "Ethereum_AccessItem", "Ethereum_TxReceipt", "Ethereum_Log", - "Ethereum_EventNotification", - "Ethereum_Network", - "Ethereum_TxResponse", - "Ethereum_Access" + "Ethereum_TxResponse" ] ) { method( @@ -100,6 +99,10 @@ type Ethereum_Module @imported( namespace: "Ethereum", nativeType: "Module" ) { + getChainId( + connection: Ethereum_Connection + ): String! + callContractView( address: String! method: String! @@ -111,40 +114,27 @@ type Ethereum_Module @imported( address: String! method: String! args: [String!] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): Ethereum_StaticTxResult! - getBalance( - address: String! - blockTag: BigInt - connection: Ethereum_Connection - ): BigInt! - encodeParams( types: [String!]! values: [String!]! + connection: Ethereum_Connection ): String! encodeFunction( method: String! args: [String!] + connection: Ethereum_Connection ): String! - solidityPack( - types: [String!]! - values: [String!]! - ): String! - - solidityKeccak256( - types: [String!]! - values: [String!]! - ): String! - - soliditySha256( - types: [String!]! - values: [String!]! - ): String! + decodeFunction( + method: String! + data: String! + connection: Ethereum_Connection + ): [String!]! getSignerAddress( connection: Ethereum_Connection @@ -155,7 +145,8 @@ type Ethereum_Module @imported( connection: Ethereum_Connection ): BigInt! - getSignerTransactionCount( + getBalance( + address: String! blockTag: BigInt connection: Ethereum_Connection ): BigInt! @@ -164,86 +155,85 @@ type Ethereum_Module @imported( connection: Ethereum_Connection ): BigInt! - estimateTransactionGas( - tx: Ethereum_TxRequest! + estimateEip1559Fees( connection: Ethereum_Connection - ): BigInt! + ): Ethereum_Eip1559FeesEstimate! - estimateContractCallGas( - address: String! + sendRpc( method: String! - args: [String!] + params: [String!]! + connection: Ethereum_Connection + ): String! + + getSignerTransactionCount( + blockTag: BigInt connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): BigInt! checkAddress( address: String! + connection: Ethereum_Connection ): Boolean! toWei( eth: String! - ): BigInt! + ): String! toEth( - wei: BigInt! + wei: String! ): String! + estimateTransactionGas( + tx: Ethereum_TxRequest! + connection: Ethereum_Connection + ): BigInt! + awaitTransaction( txHash: String! - confirmations: UInt32! - timeout: UInt32! connection: Ethereum_Connection ): Ethereum_TxReceipt! - waitForEvent( - address: String! - event: String! - args: [String!] - timeout: UInt32 + sendTransaction( + tx: Ethereum_TxRequest! connection: Ethereum_Connection - ): Ethereum_EventNotification! + ): Ethereum_TxResponse! - getNetwork( + sendTransactionAndWait( + tx: Ethereum_TxRequest! connection: Ethereum_Connection - ): Ethereum_Network! + ): Ethereum_TxReceipt! - requestAccounts( + deployContract( + abi: String! + bytecode: String! + args: [String!] + options: Ethereum_TxOptions connection: Ethereum_Connection - ): [String!]! + ): String! - callContractMethod( + estimateContractCallGas( address: String! method: String! args: [String!] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): Ethereum_TxResponse! + ): BigInt! - callContractMethodAndWait( + callContractMethod( address: String! method: String! args: [String!] - connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides - ): Ethereum_TxReceipt! - - sendTransaction( - tx: Ethereum_TxRequest! + options: Ethereum_TxOptions connection: Ethereum_Connection ): Ethereum_TxResponse! - sendTransactionAndWait( - tx: Ethereum_TxRequest! - connection: Ethereum_Connection - ): Ethereum_TxReceipt! - - deployContract( - abi: String! - bytecode: String! + callContractMethodAndWait( + address: String! + method: String! args: [String!] + options: Ethereum_TxOptions connection: Ethereum_Connection - ): String! + ): Ethereum_TxReceipt! signMessage( message: String! @@ -254,17 +244,6 @@ type Ethereum_Module @imported( bytes: Bytes! connection: Ethereum_Connection ): String! - - signTypedData( - payload: JSON! - connection: Ethereum_Connection - ): String - - sendRPC( - method: String! - params: [String!]! - connection: Ethereum_Connection - ): String } ### Imported Modules END ### @@ -280,14 +259,40 @@ type Ethereum_Connection @imported( networkNameOrChainId: String } -type Ethereum_TxOverrides @imported( +type Ethereum_TxOptions @imported( uri: "ens/ethereum.polywrap.eth", namespace: "Ethereum", - nativeType: "TxOverrides" + nativeType: "TxOptions" ) { + """ + Gas supplied for the transaction + """ gasLimit: BigInt + """ + The max total fee to pay per unit of gas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. +If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ gasPrice: BigInt + """ + Ether value sent with transaction + """ value: BigInt + """ + Override default nonce + """ + nonce: UInt32 } type Ethereum_StaticTxResult @imported( @@ -299,6 +304,15 @@ type Ethereum_StaticTxResult @imported( error: Boolean! } +type Ethereum_Eip1559FeesEstimate @imported( + uri: "ens/ethereum.polywrap.eth", + namespace: "Ethereum", + nativeType: "Eip1559FeesEstimate" +) { + maxFeePerGas: BigInt! + maxPriorityFeePerGas: BigInt! +} + type Ethereum_TxRequest @imported( uri: "ens/ethereum.polywrap.eth", namespace: "Ethereum", @@ -306,13 +320,48 @@ type Ethereum_TxRequest @imported( ) { to: String from: String - nonce: UInt32 + data: String + type: UInt32 + chainId: BigInt + accessList: [Ethereum_AccessItem!] + """ + Gas supplied for the transaction + """ gasLimit: BigInt + """ + The max total fee to pay per unit of gas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. +If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ gasPrice: BigInt - data: String + """ + Ether value sent with transaction + """ value: BigInt - chainId: BigInt - type: UInt32 + """ + Override default nonce + """ + nonce: UInt32 +} + +type Ethereum_AccessItem @imported( + uri: "ens/ethereum.polywrap.eth", + namespace: "Ethereum", + nativeType: "AccessItem" +) { + address: String! + storageKeys: [String!]! } type Ethereum_TxReceipt @imported( @@ -334,7 +383,6 @@ type Ethereum_TxReceipt @imported( confirmations: UInt32! cumulativeGasUsed: BigInt! effectiveGasPrice: BigInt! - byzantium: Boolean! type: UInt32! status: UInt32 } @@ -355,26 +403,6 @@ type Ethereum_Log @imported( logIndex: UInt32! } -type Ethereum_EventNotification @imported( - uri: "ens/ethereum.polywrap.eth", - namespace: "Ethereum", - nativeType: "EventNotification" -) { - data: String! - address: String! - log: Ethereum_Log! -} - -type Ethereum_Network @imported( - uri: "ens/ethereum.polywrap.eth", - namespace: "Ethereum", - nativeType: "Network" -) { - name: String! - chainId: BigInt! - ensAddress: String -} - type Ethereum_TxResponse @imported( uri: "ens/ethereum.polywrap.eth", namespace: "Ethereum", @@ -385,29 +413,19 @@ type Ethereum_TxResponse @imported( from: String! nonce: UInt32! gasLimit: BigInt! + maxFeePerGas: BigInt + maxPriorityFeePerGas: BigInt gasPrice: BigInt - data: String! value: BigInt! chainId: BigInt! blockNumber: BigInt blockHash: String timestamp: UInt32 - confirmations: UInt32! - raw: String r: String s: String v: UInt32 type: UInt32 - accessList: [Ethereum_Access!] -} - -type Ethereum_Access @imported( - uri: "ens/ethereum.polywrap.eth", - namespace: "Ethereum", - nativeType: "Access" -) { - address: String! - storageKeys: [String!]! + accessList: [Ethereum_AccessItem!] } ### Imported Objects END ### diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts index 2b1bf8b120..211100de45 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts @@ -52,10 +52,13 @@ export interface Ethereum_Connection { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_TxOverrides { +export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; value?: Types.BigInt | null; + nonce?: Types.UInt32 | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -64,17 +67,32 @@ export interface Ethereum_StaticTxResult { error: Types.Boolean; } +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Eip1559FeesEstimate { + maxFeePerGas: Types.BigInt; + maxPriorityFeePerGas: Types.BigInt; +} + /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; - nonce?: Types.UInt32 | null; + data?: Types.String | null; + type?: Types.UInt32 | null; + chainId?: Types.BigInt | null; + accessList?: Array | null; gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data?: Types.String | null; value?: Types.BigInt | null; - chainId?: Types.BigInt | null; - type?: Types.UInt32 | null; + nonce?: Types.UInt32 | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_AccessItem { + address: Types.String; + storageKeys: Array; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -93,7 +111,6 @@ export interface Ethereum_TxReceipt { confirmations: Types.UInt32; cumulativeGasUsed: Types.BigInt; effectiveGasPrice: Types.BigInt; - byzantium: Types.Boolean; type: Types.UInt32; status?: Types.UInt32 | null; } @@ -111,20 +128,6 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_EventNotification { - data: Types.String; - address: Types.String; - log: Types.Ethereum_Log; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Network { - name: Types.String; - chainId: Types.BigInt; - ensAddress?: Types.String | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxResponse { hash: Types.String; @@ -132,26 +135,19 @@ export interface Ethereum_TxResponse { from: Types.String; nonce: Types.UInt32; gasLimit: Types.BigInt; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data: Types.String; value: Types.BigInt; chainId: Types.BigInt; blockNumber?: Types.BigInt | null; blockHash?: Types.String | null; timestamp?: Types.UInt32 | null; - confirmations: Types.UInt32; - raw?: Types.String | null; r?: Types.String | null; s?: Types.String | null; v?: Types.UInt32 | null; type?: Types.UInt32 | null; - accessList?: Array | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Access { - address: Types.String; - storageKeys: Array; + accessList?: Array | null; } /// Imported Objects END /// @@ -159,26 +155,24 @@ export interface Ethereum_Access { /// Imported Modules START /// /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractView { - address: Types.String; - method: Types.String; - args?: Array | null; +export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractStatic { +export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getBalance { +export interface Ethereum_Module_Args_callContractStatic { address: Types.String; - blockTag?: Types.BigInt | null; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -186,30 +180,21 @@ export interface Ethereum_Module_Args_getBalance { export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityPack { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityKeccak256 { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_soliditySha256 { - types: Array; - values: Array; +export interface Ethereum_Module_Args_decodeFunction { + method: Types.String; + data: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -224,7 +209,8 @@ export interface Ethereum_Module_Args_getSignerBalance { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getSignerTransactionCount { +export interface Ethereum_Module_Args_getBalance { + address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } @@ -235,23 +221,27 @@ export interface Ethereum_Module_Args_getGasPrice { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateTransactionGas { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateContractCallGas { - address: Types.String; +export interface Ethereum_Module_Args_sendRpc { method: Types.String; - args?: Array | null; + params: Array; + connection?: Types.Ethereum_Connection | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Module_Args_getSignerTransactionCount { + blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -261,71 +251,66 @@ export interface Ethereum_Module_Args_toWei { /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_toEth { - wei: Types.BigInt; + wei: Types.String; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_awaitTransaction { - txHash: Types.String; - confirmations: Types.UInt32; - timeout: Types.UInt32; +export interface Ethereum_Module_Args_estimateTransactionGas { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_waitForEvent { - address: Types.String; - event: Types.String; - args?: Array | null; - timeout?: Types.UInt32 | null; +export interface Ethereum_Module_Args_awaitTransaction { + txHash: Types.String; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getNetwork { +export interface Ethereum_Module_Args_sendTransaction { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_requestAccounts { +export interface Ethereum_Module_Args_sendTransactionAndWait { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethod { - address: Types.String; - method: Types.String; +export interface Ethereum_Module_Args_deployContract { + abi: Types.String; + bytecode: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethodAndWait { +export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; args?: Array | null; - connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransaction { - tx: Types.Ethereum_TxRequest; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransactionAndWait { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_callContractMethod { + address: Types.String; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_deployContract { - abi: Types.String; - bytecode: Types.String; +export interface Ethereum_Module_Args_callContractMethodAndWait { + address: Types.String; + method: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -341,21 +326,19 @@ export interface Ethereum_Module_Args_signMessageBytes { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_signTypedData { - payload: Types.Json; - connection?: Types.Ethereum_Connection | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendRPC { - method: Types.String; - params: Array; - connection?: Types.Ethereum_Connection | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export const Ethereum_Module = { + getChainId: async ( + args: Ethereum_Module_Args_getChainId, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "getChainId", + args: (args as unknown) as Record, + }); + }, + callContractView: async ( args: Ethereum_Module_Args_callContractView, client: CoreClient @@ -378,17 +361,6 @@ export const Ethereum_Module = { }); }, - getBalance: async ( - args: Ethereum_Module_Args_getBalance, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "getBalance", - args: (args as unknown) as Record, - }); - }, - encodeParams: async ( args: Ethereum_Module_Args_encodeParams, client: CoreClient @@ -411,35 +383,13 @@ export const Ethereum_Module = { }); }, - solidityPack: async ( - args: Ethereum_Module_Args_solidityPack, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityPack", - args: (args as unknown) as Record, - }); - }, - - solidityKeccak256: async ( - args: Ethereum_Module_Args_solidityKeccak256, + decodeFunction: async ( + args: Ethereum_Module_Args_decodeFunction, client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityKeccak256", - args: (args as unknown) as Record, - }); - }, - - soliditySha256: async ( - args: Ethereum_Module_Args_soliditySha256, - client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise>> => { + return client.invoke>({ uri: "ens/ethereum.polywrap.eth", - method: "soliditySha256", + method: "decodeFunction", args: (args as unknown) as Record, }); }, @@ -466,13 +416,13 @@ export const Ethereum_Module = { }); }, - getSignerTransactionCount: async ( - args: Ethereum_Module_Args_getSignerTransactionCount, + getBalance: async ( + args: Ethereum_Module_Args_getBalance, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getSignerTransactionCount", + method: "getBalance", args: (args as unknown) as Record, }); }, @@ -488,24 +438,35 @@ export const Ethereum_Module = { }); }, - estimateTransactionGas: async ( - args: Ethereum_Module_Args_estimateTransactionGas, + estimateEip1559Fees: async ( + args: Ethereum_Module_Args_estimateEip1559Fees, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateTransactionGas", + method: "estimateEip1559Fees", args: (args as unknown) as Record, }); }, - estimateContractCallGas: async ( - args: Ethereum_Module_Args_estimateContractCallGas, + sendRpc: async ( + args: Ethereum_Module_Args_sendRpc, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "sendRpc", + args: (args as unknown) as Record, + }); + }, + + getSignerTransactionCount: async ( + args: Ethereum_Module_Args_getSignerTransactionCount, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateContractCallGas", + method: "getSignerTransactionCount", args: (args as unknown) as Record, }); }, @@ -524,8 +485,8 @@ export const Ethereum_Module = { toWei: async ( args: Ethereum_Module_Args_toWei, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", method: "toWei", args: (args as unknown) as Record, @@ -543,101 +504,90 @@ export const Ethereum_Module = { }); }, - awaitTransaction: async ( - args: Ethereum_Module_Args_awaitTransaction, + estimateTransactionGas: async ( + args: Ethereum_Module_Args_estimateTransactionGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "awaitTransaction", + method: "estimateTransactionGas", args: (args as unknown) as Record, }); }, - waitForEvent: async ( - args: Ethereum_Module_Args_waitForEvent, + awaitTransaction: async ( + args: Ethereum_Module_Args_awaitTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "waitForEvent", + method: "awaitTransaction", args: (args as unknown) as Record, }); }, - getNetwork: async ( - args: Ethereum_Module_Args_getNetwork, + sendTransaction: async ( + args: Ethereum_Module_Args_sendTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getNetwork", + method: "sendTransaction", args: (args as unknown) as Record, }); }, - requestAccounts: async ( - args: Ethereum_Module_Args_requestAccounts, + sendTransactionAndWait: async ( + args: Ethereum_Module_Args_sendTransactionAndWait, client: CoreClient - ): Promise>> => { - return client.invoke>({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "requestAccounts", + method: "sendTransactionAndWait", args: (args as unknown) as Record, }); }, - callContractMethod: async ( - args: Ethereum_Module_Args_callContractMethod, + deployContract: async ( + args: Ethereum_Module_Args_deployContract, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethod", + method: "deployContract", args: (args as unknown) as Record, }); }, - callContractMethodAndWait: async ( - args: Ethereum_Module_Args_callContractMethodAndWait, + estimateContractCallGas: async ( + args: Ethereum_Module_Args_estimateContractCallGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethodAndWait", + method: "estimateContractCallGas", args: (args as unknown) as Record, }); }, - sendTransaction: async ( - args: Ethereum_Module_Args_sendTransaction, + callContractMethod: async ( + args: Ethereum_Module_Args_callContractMethod, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransaction", + method: "callContractMethod", args: (args as unknown) as Record, }); }, - sendTransactionAndWait: async ( - args: Ethereum_Module_Args_sendTransactionAndWait, + callContractMethodAndWait: async ( + args: Ethereum_Module_Args_callContractMethodAndWait, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransactionAndWait", - args: (args as unknown) as Record, - }); - }, - - deployContract: async ( - args: Ethereum_Module_Args_deployContract, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "deployContract", + method: "callContractMethodAndWait", args: (args as unknown) as Record, }); }, @@ -662,28 +612,6 @@ export const Ethereum_Module = { method: "signMessageBytes", args: (args as unknown) as Record, }); - }, - - signTypedData: async ( - args: Ethereum_Module_Args_signTypedData, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "signTypedData", - args: (args as unknown) as Record, - }); - }, - - sendRPC: async ( - args: Ethereum_Module_Args_sendRPC, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "sendRPC", - args: (args as unknown) as Record, - }); } } diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts index 3c21e94789..56b643e3f0 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts @@ -30,6 +30,36 @@ export const manifest: WrapManifest = { "isInterface": false, "kind": 256, "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "getChainId", + "required": true, + "return": { + "kind": 34, + "name": "getChainId", + "required": true, + "scalar": { + "kind": 4, + "name": "getChainId", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, { "arguments": [ { @@ -156,23 +186,23 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, @@ -192,58 +222,6 @@ export const manifest: WrapManifest = { }, "type": "Method" }, - { - "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "blockTag", - "scalar": { - "kind": 4, - "name": "blockTag", - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getBalance", - "required": true, - "return": { - "kind": 34, - "name": "getBalance", - "required": true, - "scalar": { - "kind": 4, - "name": "getBalance", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - "type": "Method" - }, { "arguments": [ { @@ -293,6 +271,16 @@ export const manifest: WrapManifest = { "name": "values", "required": true, "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -347,6 +335,16 @@ export const manifest: WrapManifest = { "kind": 34, "name": "args", "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -369,230 +367,92 @@ export const manifest: WrapManifest = { { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", + "name": "method", "required": true, - "type": "[String]" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", + "kind": 34, + "name": "data", + "required": true, + "scalar": { + "kind": 4, + "name": "data", "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "String" }, + "type": "String" + }, + { "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityPack", + "name": "decodeFunction", "required": true, "return": { - "kind": 34, - "name": "solidityPack", - "required": true, - "scalar": { - "kind": 4, - "name": "solidityPack", + "array": { + "item": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "decodeFunction", "required": true, - "type": "String" + "scalar": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "type": "[String]" }, - "type": "String" + "kind": 34, + "name": "decodeFunction", + "required": true, + "type": "[String]" }, "type": "Method" }, { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "return": { "kind": 34, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "scalar": { "kind": 4, - "name": "solidityKeccak256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" - } - ], - "kind": 64, - "name": "soliditySha256", - "required": true, - "return": { - "kind": 34, - "name": "soliditySha256", - "required": true, - "scalar": { - "kind": 4, - "name": "soliditySha256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getSignerAddress", - "required": true, - "return": { - "kind": 34, - "name": "getSignerAddress", - "required": true, - "scalar": { - "kind": 4, - "name": "getSignerAddress", + "name": "getSignerAddress", "required": true, "type": "String" }, @@ -642,6 +502,18 @@ export const manifest: WrapManifest = { }, { "arguments": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, { "kind": 34, "name": "blockTag", @@ -664,15 +536,15 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "return": { "kind": 34, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "scalar": { "kind": 4, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "type": "BigInt" }, @@ -712,18 +584,6 @@ export const manifest: WrapManifest = { }, { "arguments": [ - { - "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" - }, - "required": true, - "type": "Ethereum_TxRequest" - }, { "kind": 34, "name": "connection", @@ -736,36 +596,24 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", "required": true, "return": { "kind": 34, - "name": "estimateTransactionGas", - "required": true, - "scalar": { - "kind": 4, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", + "object": { + "kind": 8192, + "name": "estimateEip1559Fees", "required": true, - "type": "BigInt" + "type": "Ethereum_Eip1559FeesEstimate" }, - "type": "BigInt" + "required": true, + "type": "Ethereum_Eip1559FeesEstimate" }, "type": "Method" }, { "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "method", @@ -782,22 +630,24 @@ export const manifest: WrapManifest = { "array": { "item": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "kind": 18, - "name": "args", + "name": "params", + "required": true, "scalar": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "type": "[String]" }, "kind": 34, - "name": "args", + "name": "params", + "required": true, "type": "[String]" }, { @@ -809,28 +659,58 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "sendRpc", + "required": true, + "return": { + "kind": 34, + "name": "sendRpc", + "required": true, + "scalar": { + "kind": 4, + "name": "sendRpc", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "blockTag", + "scalar": { + "kind": 4, + "name": "blockTag", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "return": { "kind": 34, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "scalar": { "kind": 4, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "type": "BigInt" }, @@ -851,6 +731,16 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "String" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -896,9 +786,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "toWei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" }, "type": "Method" }, @@ -912,9 +802,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "wei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" } ], "kind": 64, @@ -938,39 +828,57 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "txHash", - "required": true, - "scalar": { - "kind": 4, - "name": "txHash", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" + "required": true, + "type": "Ethereum_TxRequest" }, { "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "UInt32" + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "estimateTransactionGas", + "required": true, + "return": { + "kind": 34, + "name": "estimateTransactionGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateTransactionGas", + "required": true, + "type": "BigInt" }, + "type": "BigInt" + }, + "type": "Method" + }, + { + "arguments": [ { "kind": 34, - "name": "timeout", + "name": "txHash", "required": true, "scalar": { "kind": 4, - "name": "timeout", + "name": "txHash", "required": true, - "type": "UInt32" + "type": "String" }, - "type": "UInt32" + "type": "String" }, { "kind": 34, @@ -1004,59 +912,15 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" - }, - { - "kind": 34, - "name": "event", "required": true, - "scalar": { - "kind": 4, - "name": "event", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "args", - "scalar": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "args", - "type": "[String]" - }, - { - "kind": 34, - "name": "timeout", - "scalar": { - "kind": 4, - "name": "timeout", - "type": "UInt32" - }, - "type": "UInt32" + "type": "Ethereum_TxRequest" }, { "kind": 34, @@ -1070,19 +934,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, "return": { "kind": 34, - "name": "waitForEvent", + "name": "sendTransaction", "object": { "kind": 8192, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1090,34 +954,16 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "connection", + "name": "tx", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "tx", + "required": true, + "type": "Ethereum_TxRequest" }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getNetwork", - "required": true, - "return": { - "kind": 34, - "name": "getNetwork", - "object": { - "kind": 8192, - "name": "getNetwork", "required": true, - "type": "Ethereum_Network" + "type": "Ethereum_TxRequest" }, - "required": true, - "type": "Ethereum_Network" - }, - "type": "Method" - }, - { - "arguments": [ { "kind": 34, "name": "connection", @@ -1130,31 +976,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "requestAccounts", + "name": "sendTransactionAndWait", "required": true, "return": { - "array": { - "item": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "requestAccounts", + "kind": 34, + "name": "sendTransactionAndWait", + "object": { + "kind": 8192, + "name": "sendTransactionAndWait", "required": true, - "scalar": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, - "kind": 34, - "name": "requestAccounts", "required": true, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1162,11 +996,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", + "name": "abi", "required": true, "scalar": { "kind": 4, - "name": "address", + "name": "abi", "required": true, "type": "String" }, @@ -1174,11 +1008,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "method", + "name": "bytecode", "required": true, "scalar": { "kind": 4, - "name": "method", + "name": "bytecode", "required": true, "type": "String" }, @@ -1208,39 +1042,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethod", + "name": "deployContract", "required": true, "return": { "kind": 34, - "name": "callContractMethod", - "object": { - "kind": 8192, - "name": "callContractMethod", + "name": "deployContract", + "required": true, + "scalar": { + "kind": 4, + "name": "deployContract", "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, "type": "Method" }, @@ -1294,39 +1128,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", "required": true, "return": { "kind": 34, - "name": "callContractMethodAndWait", - "object": { - "kind": 8192, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateContractCallGas", "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, - "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, "type": "Method" }, @@ -1334,57 +1168,59 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, { "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendTransaction", - "required": true, - "return": { - "kind": 34, - "name": "sendTransaction", - "object": { - "kind": 8192, - "name": "sendTransaction", + "name": "method", "required": true, - "type": "Ethereum_TxResponse" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" - }, - "type": "Method" - }, - { - "arguments": [ { + "array": { + "item": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "args", + "scalar": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "type": "[String]" + }, "kind": 34, - "name": "tx", + "name": "args", + "type": "[String]" + }, + { + "kind": 34, + "name": "options", "object": { "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" + "name": "options", + "type": "Ethereum_TxOptions" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "Ethereum_TxOptions" }, { "kind": 34, @@ -1398,19 +1234,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, "return": { "kind": 34, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "object": { "kind": 8192, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1418,11 +1254,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "abi", + "name": "address", "required": true, "scalar": { "kind": 4, - "name": "abi", + "name": "address", "required": true, "type": "String" }, @@ -1430,11 +1266,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "bytecode", + "name": "method", "required": true, "scalar": { "kind": 4, - "name": "bytecode", + "name": "method", "required": true, "type": "String" }, @@ -1462,6 +1298,16 @@ export const manifest: WrapManifest = { "name": "args", "type": "[String]" }, + { + "kind": 34, + "name": "options", + "object": { + "kind": 8192, + "name": "options", + "type": "Ethereum_TxOptions" + }, + "type": "Ethereum_TxOptions" + }, { "kind": 34, "name": "connection", @@ -1474,19 +1320,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "deployContract", + "name": "callContractMethodAndWait", "required": true, "return": { "kind": 34, - "name": "deployContract", - "required": true, - "scalar": { - "kind": 4, - "name": "deployContract", + "name": "callContractMethodAndWait", + "object": { + "kind": 8192, + "name": "callContractMethodAndWait", "required": true, - "type": "String" + "type": "Ethereum_TxReceipt" }, - "type": "String" + "required": true, + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1573,110 +1419,6 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "payload", - "required": true, - "scalar": { - "kind": 4, - "name": "payload", - "required": true, - "type": "JSON" - }, - "type": "JSON" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "signTypedData", - "required": true, - "return": { - "kind": 34, - "name": "signTypedData", - "scalar": { - "kind": 4, - "name": "signTypedData", - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "method", - "required": true, - "scalar": { - "kind": 4, - "name": "method", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "params", - "required": true, - "scalar": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "params", - "required": true, - "type": "[String]" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendRPC", - "required": true, - "return": { - "kind": 34, - "name": "sendRPC", - "scalar": { - "kind": 4, - "name": "sendRPC", - "type": "String" - }, - "type": "String" - }, - "type": "Method" } ], "namespace": "Ethereum", @@ -1718,9 +1460,10 @@ export const manifest: WrapManifest = { { "kind": 1025, "namespace": "Ethereum", - "nativeType": "TxOverrides", + "nativeType": "TxOptions", "properties": [ { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1731,6 +1474,29 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxFeePerGas", + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxPriorityFeePerGas", + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, "name": "gasPrice", "scalar": { @@ -1741,6 +1507,7 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, "name": "value", "scalar": { @@ -1749,9 +1516,20 @@ export const manifest: WrapManifest = { "type": "BigInt" }, "type": "BigInt" + }, + { + "comment": "Override default nonce", + "kind": 34, + "name": "nonce", + "scalar": { + "kind": 4, + "name": "nonce", + "type": "UInt32" + }, + "type": "UInt32" } ], - "type": "Ethereum_TxOverrides", + "type": "Ethereum_TxOptions", "uri": "ens/ethereum.polywrap.eth" }, { @@ -1787,6 +1565,39 @@ export const manifest: WrapManifest = { "type": "Ethereum_StaticTxResult", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "Eip1559FeesEstimate", + "properties": [ + { + "kind": 34, + "name": "maxFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "kind": 34, + "name": "maxPriorityFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + } + ], + "type": "Ethereum_Eip1559FeesEstimate", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -1810,19 +1621,62 @@ export const manifest: WrapManifest = { "name": "from", "type": "String" }, - "type": "String" - }, - { + "type": "String" + }, + { + "kind": 34, + "name": "data", + "scalar": { + "kind": 4, + "name": "data", + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "type", + "scalar": { + "kind": 4, + "name": "type", + "type": "UInt32" + }, + "type": "UInt32" + }, + { + "kind": 34, + "name": "chainId", + "scalar": { + "kind": 4, + "name": "chainId", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "array": { + "item": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "kind": 18, + "name": "accessList", + "object": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "type": "[Ethereum_AccessItem]" + }, "kind": 34, - "name": "nonce", - "scalar": { - "kind": 4, - "name": "nonce", - "type": "UInt32" - }, - "type": "UInt32" + "name": "accessList", + "type": "[Ethereum_AccessItem]" }, { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1833,51 +1687,56 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "data", + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" }, { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, - "name": "value", + "name": "gasPrice", "scalar": { "kind": 4, - "name": "value", + "name": "gasPrice", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, - "name": "chainId", + "name": "value", "scalar": { "kind": 4, - "name": "chainId", + "name": "value", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Override default nonce", "kind": 34, - "name": "type", + "name": "nonce", "scalar": { "kind": 4, - "name": "type", + "name": "nonce", "type": "UInt32" }, "type": "UInt32" @@ -1886,6 +1745,51 @@ export const manifest: WrapManifest = { "type": "Ethereum_TxRequest", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "AccessItem", + "properties": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "array": { + "item": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "storageKeys", + "required": true, + "scalar": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "type": "[String]" + }, + "kind": 34, + "name": "storageKeys", + "required": true, + "type": "[String]" + } + ], + "type": "Ethereum_AccessItem", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -2069,18 +1973,6 @@ export const manifest: WrapManifest = { }, "type": "BigInt" }, - { - "kind": 34, - "name": "byzantium", - "required": true, - "scalar": { - "kind": 4, - "name": "byzantium", - "required": true, - "type": "Boolean" - }, - "type": "Boolean" - }, { "kind": 34, "name": "type", @@ -2236,94 +2128,6 @@ export const manifest: WrapManifest = { "type": "Ethereum_Log", "uri": "ens/ethereum.polywrap.eth" }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "EventNotification", - "properties": [ - { - "kind": 34, - "name": "data", - "required": true, - "scalar": { - "kind": 4, - "name": "data", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "log", - "object": { - "kind": 8192, - "name": "log", - "required": true, - "type": "Ethereum_Log" - }, - "required": true, - "type": "Ethereum_Log" - } - ], - "type": "Ethereum_EventNotification", - "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Network", - "properties": [ - { - "kind": 34, - "name": "name", - "required": true, - "scalar": { - "kind": 4, - "name": "name", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "chainId", - "required": true, - "scalar": { - "kind": 4, - "name": "chainId", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "ensAddress", - "scalar": { - "kind": 4, - "name": "ensAddress", - "type": "String" - }, - "type": "String" - } - ], - "type": "Ethereum_Network", - "uri": "ens/ethereum.polywrap.eth" - }, { "kind": 1025, "namespace": "Ethereum", @@ -2389,25 +2193,33 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { "kind": 34, - "name": "data", - "required": true, + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "required": true, - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" + }, + { + "kind": 34, + "name": "gasPrice", + "scalar": { + "kind": 4, + "name": "gasPrice", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, @@ -2463,28 +2275,6 @@ export const manifest: WrapManifest = { }, "type": "UInt32" }, - { - "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" - }, - "type": "UInt32" - }, - { - "kind": 34, - "name": "raw", - "scalar": { - "kind": 4, - "name": "raw", - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "r", @@ -2531,7 +2321,7 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, "kind": 18, "name": "accessList", @@ -2539,62 +2329,17 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" }, "kind": 34, "name": "accessList", - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" } ], "type": "Ethereum_TxResponse", "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Access", - "properties": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "storageKeys", - "required": true, - "scalar": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "storageKeys", - "required": true, - "type": "[String]" - } - ], - "type": "Ethereum_Access", - "uri": "ens/ethereum.polywrap.eth" } ], "moduleType": { @@ -2606,31 +2351,28 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, { - "type": "Ethereum_TxOverrides" + "type": "Ethereum_TxOptions" }, { "type": "Ethereum_StaticTxResult" }, { - "type": "Ethereum_TxRequest" + "type": "Ethereum_Eip1559FeesEstimate" }, { - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxRequest" }, { - "type": "Ethereum_Log" + "type": "Ethereum_AccessItem" }, { - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxReceipt" }, { - "type": "Ethereum_Network" + "type": "Ethereum_Log" }, { "type": "Ethereum_TxResponse" - }, - { - "type": "Ethereum_Access" } ], "kind": 128, diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts index 2b1bf8b120..211100de45 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts @@ -52,10 +52,13 @@ export interface Ethereum_Connection { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_TxOverrides { +export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; value?: Types.BigInt | null; + nonce?: Types.UInt32 | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -64,17 +67,32 @@ export interface Ethereum_StaticTxResult { error: Types.Boolean; } +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Eip1559FeesEstimate { + maxFeePerGas: Types.BigInt; + maxPriorityFeePerGas: Types.BigInt; +} + /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; - nonce?: Types.UInt32 | null; + data?: Types.String | null; + type?: Types.UInt32 | null; + chainId?: Types.BigInt | null; + accessList?: Array | null; gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data?: Types.String | null; value?: Types.BigInt | null; - chainId?: Types.BigInt | null; - type?: Types.UInt32 | null; + nonce?: Types.UInt32 | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_AccessItem { + address: Types.String; + storageKeys: Array; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -93,7 +111,6 @@ export interface Ethereum_TxReceipt { confirmations: Types.UInt32; cumulativeGasUsed: Types.BigInt; effectiveGasPrice: Types.BigInt; - byzantium: Types.Boolean; type: Types.UInt32; status?: Types.UInt32 | null; } @@ -111,20 +128,6 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_EventNotification { - data: Types.String; - address: Types.String; - log: Types.Ethereum_Log; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Network { - name: Types.String; - chainId: Types.BigInt; - ensAddress?: Types.String | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxResponse { hash: Types.String; @@ -132,26 +135,19 @@ export interface Ethereum_TxResponse { from: Types.String; nonce: Types.UInt32; gasLimit: Types.BigInt; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data: Types.String; value: Types.BigInt; chainId: Types.BigInt; blockNumber?: Types.BigInt | null; blockHash?: Types.String | null; timestamp?: Types.UInt32 | null; - confirmations: Types.UInt32; - raw?: Types.String | null; r?: Types.String | null; s?: Types.String | null; v?: Types.UInt32 | null; type?: Types.UInt32 | null; - accessList?: Array | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Access { - address: Types.String; - storageKeys: Array; + accessList?: Array | null; } /// Imported Objects END /// @@ -159,26 +155,24 @@ export interface Ethereum_Access { /// Imported Modules START /// /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractView { - address: Types.String; - method: Types.String; - args?: Array | null; +export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractStatic { +export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getBalance { +export interface Ethereum_Module_Args_callContractStatic { address: Types.String; - blockTag?: Types.BigInt | null; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -186,30 +180,21 @@ export interface Ethereum_Module_Args_getBalance { export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityPack { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityKeccak256 { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_soliditySha256 { - types: Array; - values: Array; +export interface Ethereum_Module_Args_decodeFunction { + method: Types.String; + data: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -224,7 +209,8 @@ export interface Ethereum_Module_Args_getSignerBalance { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getSignerTransactionCount { +export interface Ethereum_Module_Args_getBalance { + address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } @@ -235,23 +221,27 @@ export interface Ethereum_Module_Args_getGasPrice { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateTransactionGas { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateContractCallGas { - address: Types.String; +export interface Ethereum_Module_Args_sendRpc { method: Types.String; - args?: Array | null; + params: Array; + connection?: Types.Ethereum_Connection | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Module_Args_getSignerTransactionCount { + blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -261,71 +251,66 @@ export interface Ethereum_Module_Args_toWei { /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_toEth { - wei: Types.BigInt; + wei: Types.String; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_awaitTransaction { - txHash: Types.String; - confirmations: Types.UInt32; - timeout: Types.UInt32; +export interface Ethereum_Module_Args_estimateTransactionGas { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_waitForEvent { - address: Types.String; - event: Types.String; - args?: Array | null; - timeout?: Types.UInt32 | null; +export interface Ethereum_Module_Args_awaitTransaction { + txHash: Types.String; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getNetwork { +export interface Ethereum_Module_Args_sendTransaction { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_requestAccounts { +export interface Ethereum_Module_Args_sendTransactionAndWait { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethod { - address: Types.String; - method: Types.String; +export interface Ethereum_Module_Args_deployContract { + abi: Types.String; + bytecode: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethodAndWait { +export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; args?: Array | null; - connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransaction { - tx: Types.Ethereum_TxRequest; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransactionAndWait { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_callContractMethod { + address: Types.String; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_deployContract { - abi: Types.String; - bytecode: Types.String; +export interface Ethereum_Module_Args_callContractMethodAndWait { + address: Types.String; + method: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -341,21 +326,19 @@ export interface Ethereum_Module_Args_signMessageBytes { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_signTypedData { - payload: Types.Json; - connection?: Types.Ethereum_Connection | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendRPC { - method: Types.String; - params: Array; - connection?: Types.Ethereum_Connection | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export const Ethereum_Module = { + getChainId: async ( + args: Ethereum_Module_Args_getChainId, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "getChainId", + args: (args as unknown) as Record, + }); + }, + callContractView: async ( args: Ethereum_Module_Args_callContractView, client: CoreClient @@ -378,17 +361,6 @@ export const Ethereum_Module = { }); }, - getBalance: async ( - args: Ethereum_Module_Args_getBalance, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "getBalance", - args: (args as unknown) as Record, - }); - }, - encodeParams: async ( args: Ethereum_Module_Args_encodeParams, client: CoreClient @@ -411,35 +383,13 @@ export const Ethereum_Module = { }); }, - solidityPack: async ( - args: Ethereum_Module_Args_solidityPack, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityPack", - args: (args as unknown) as Record, - }); - }, - - solidityKeccak256: async ( - args: Ethereum_Module_Args_solidityKeccak256, + decodeFunction: async ( + args: Ethereum_Module_Args_decodeFunction, client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityKeccak256", - args: (args as unknown) as Record, - }); - }, - - soliditySha256: async ( - args: Ethereum_Module_Args_soliditySha256, - client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise>> => { + return client.invoke>({ uri: "ens/ethereum.polywrap.eth", - method: "soliditySha256", + method: "decodeFunction", args: (args as unknown) as Record, }); }, @@ -466,13 +416,13 @@ export const Ethereum_Module = { }); }, - getSignerTransactionCount: async ( - args: Ethereum_Module_Args_getSignerTransactionCount, + getBalance: async ( + args: Ethereum_Module_Args_getBalance, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getSignerTransactionCount", + method: "getBalance", args: (args as unknown) as Record, }); }, @@ -488,24 +438,35 @@ export const Ethereum_Module = { }); }, - estimateTransactionGas: async ( - args: Ethereum_Module_Args_estimateTransactionGas, + estimateEip1559Fees: async ( + args: Ethereum_Module_Args_estimateEip1559Fees, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateTransactionGas", + method: "estimateEip1559Fees", args: (args as unknown) as Record, }); }, - estimateContractCallGas: async ( - args: Ethereum_Module_Args_estimateContractCallGas, + sendRpc: async ( + args: Ethereum_Module_Args_sendRpc, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "sendRpc", + args: (args as unknown) as Record, + }); + }, + + getSignerTransactionCount: async ( + args: Ethereum_Module_Args_getSignerTransactionCount, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateContractCallGas", + method: "getSignerTransactionCount", args: (args as unknown) as Record, }); }, @@ -524,8 +485,8 @@ export const Ethereum_Module = { toWei: async ( args: Ethereum_Module_Args_toWei, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", method: "toWei", args: (args as unknown) as Record, @@ -543,101 +504,90 @@ export const Ethereum_Module = { }); }, - awaitTransaction: async ( - args: Ethereum_Module_Args_awaitTransaction, + estimateTransactionGas: async ( + args: Ethereum_Module_Args_estimateTransactionGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "awaitTransaction", + method: "estimateTransactionGas", args: (args as unknown) as Record, }); }, - waitForEvent: async ( - args: Ethereum_Module_Args_waitForEvent, + awaitTransaction: async ( + args: Ethereum_Module_Args_awaitTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "waitForEvent", + method: "awaitTransaction", args: (args as unknown) as Record, }); }, - getNetwork: async ( - args: Ethereum_Module_Args_getNetwork, + sendTransaction: async ( + args: Ethereum_Module_Args_sendTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getNetwork", + method: "sendTransaction", args: (args as unknown) as Record, }); }, - requestAccounts: async ( - args: Ethereum_Module_Args_requestAccounts, + sendTransactionAndWait: async ( + args: Ethereum_Module_Args_sendTransactionAndWait, client: CoreClient - ): Promise>> => { - return client.invoke>({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "requestAccounts", + method: "sendTransactionAndWait", args: (args as unknown) as Record, }); }, - callContractMethod: async ( - args: Ethereum_Module_Args_callContractMethod, + deployContract: async ( + args: Ethereum_Module_Args_deployContract, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethod", + method: "deployContract", args: (args as unknown) as Record, }); }, - callContractMethodAndWait: async ( - args: Ethereum_Module_Args_callContractMethodAndWait, + estimateContractCallGas: async ( + args: Ethereum_Module_Args_estimateContractCallGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethodAndWait", + method: "estimateContractCallGas", args: (args as unknown) as Record, }); }, - sendTransaction: async ( - args: Ethereum_Module_Args_sendTransaction, + callContractMethod: async ( + args: Ethereum_Module_Args_callContractMethod, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransaction", + method: "callContractMethod", args: (args as unknown) as Record, }); }, - sendTransactionAndWait: async ( - args: Ethereum_Module_Args_sendTransactionAndWait, + callContractMethodAndWait: async ( + args: Ethereum_Module_Args_callContractMethodAndWait, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransactionAndWait", - args: (args as unknown) as Record, - }); - }, - - deployContract: async ( - args: Ethereum_Module_Args_deployContract, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "deployContract", + method: "callContractMethodAndWait", args: (args as unknown) as Record, }); }, @@ -662,28 +612,6 @@ export const Ethereum_Module = { method: "signMessageBytes", args: (args as unknown) as Record, }); - }, - - signTypedData: async ( - args: Ethereum_Module_Args_signTypedData, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "signTypedData", - args: (args as unknown) as Record, - }); - }, - - sendRPC: async ( - args: Ethereum_Module_Args_sendRPC, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "sendRPC", - args: (args as unknown) as Record, - }); } } diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts index c45d295db4..0bc0bc4493 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts @@ -30,6 +30,36 @@ export const manifest: WrapManifest = { "isInterface": false, "kind": 256, "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "getChainId", + "required": true, + "return": { + "kind": 34, + "name": "getChainId", + "required": true, + "scalar": { + "kind": 4, + "name": "getChainId", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, { "arguments": [ { @@ -156,23 +186,23 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, @@ -192,58 +222,6 @@ export const manifest: WrapManifest = { }, "type": "Method" }, - { - "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "blockTag", - "scalar": { - "kind": 4, - "name": "blockTag", - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getBalance", - "required": true, - "return": { - "kind": 34, - "name": "getBalance", - "required": true, - "scalar": { - "kind": 4, - "name": "getBalance", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - "type": "Method" - }, { "arguments": [ { @@ -293,6 +271,16 @@ export const manifest: WrapManifest = { "name": "values", "required": true, "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -347,6 +335,16 @@ export const manifest: WrapManifest = { "kind": 34, "name": "args", "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -369,230 +367,92 @@ export const manifest: WrapManifest = { { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", + "name": "method", "required": true, - "type": "[String]" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", + "kind": 34, + "name": "data", + "required": true, + "scalar": { + "kind": 4, + "name": "data", "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "String" }, + "type": "String" + }, + { "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityPack", + "name": "decodeFunction", "required": true, "return": { - "kind": 34, - "name": "solidityPack", - "required": true, - "scalar": { - "kind": 4, - "name": "solidityPack", + "array": { + "item": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "decodeFunction", "required": true, - "type": "String" + "scalar": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "type": "[String]" }, - "type": "String" + "kind": 34, + "name": "decodeFunction", + "required": true, + "type": "[String]" }, "type": "Method" }, { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "return": { "kind": 34, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "scalar": { "kind": 4, - "name": "solidityKeccak256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" - } - ], - "kind": 64, - "name": "soliditySha256", - "required": true, - "return": { - "kind": 34, - "name": "soliditySha256", - "required": true, - "scalar": { - "kind": 4, - "name": "soliditySha256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getSignerAddress", - "required": true, - "return": { - "kind": 34, - "name": "getSignerAddress", - "required": true, - "scalar": { - "kind": 4, - "name": "getSignerAddress", + "name": "getSignerAddress", "required": true, "type": "String" }, @@ -642,6 +502,18 @@ export const manifest: WrapManifest = { }, { "arguments": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, { "kind": 34, "name": "blockTag", @@ -664,15 +536,15 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "return": { "kind": 34, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "scalar": { "kind": 4, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "type": "BigInt" }, @@ -712,18 +584,6 @@ export const manifest: WrapManifest = { }, { "arguments": [ - { - "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" - }, - "required": true, - "type": "Ethereum_TxRequest" - }, { "kind": 34, "name": "connection", @@ -736,36 +596,24 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", "required": true, "return": { "kind": 34, - "name": "estimateTransactionGas", - "required": true, - "scalar": { - "kind": 4, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", + "object": { + "kind": 8192, + "name": "estimateEip1559Fees", "required": true, - "type": "BigInt" + "type": "Ethereum_Eip1559FeesEstimate" }, - "type": "BigInt" + "required": true, + "type": "Ethereum_Eip1559FeesEstimate" }, "type": "Method" }, { "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "method", @@ -782,22 +630,24 @@ export const manifest: WrapManifest = { "array": { "item": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "kind": 18, - "name": "args", + "name": "params", + "required": true, "scalar": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "type": "[String]" }, "kind": 34, - "name": "args", + "name": "params", + "required": true, "type": "[String]" }, { @@ -809,28 +659,58 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "sendRpc", + "required": true, + "return": { + "kind": 34, + "name": "sendRpc", + "required": true, + "scalar": { + "kind": 4, + "name": "sendRpc", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "blockTag", + "scalar": { + "kind": 4, + "name": "blockTag", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "return": { "kind": 34, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "scalar": { "kind": 4, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "type": "BigInt" }, @@ -851,6 +731,16 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "String" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -896,9 +786,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "toWei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" }, "type": "Method" }, @@ -912,9 +802,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "wei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" } ], "kind": 64, @@ -938,39 +828,57 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "txHash", - "required": true, - "scalar": { - "kind": 4, - "name": "txHash", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" + "required": true, + "type": "Ethereum_TxRequest" }, { "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "UInt32" + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "estimateTransactionGas", + "required": true, + "return": { + "kind": 34, + "name": "estimateTransactionGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateTransactionGas", + "required": true, + "type": "BigInt" }, + "type": "BigInt" + }, + "type": "Method" + }, + { + "arguments": [ { "kind": 34, - "name": "timeout", + "name": "txHash", "required": true, "scalar": { "kind": 4, - "name": "timeout", + "name": "txHash", "required": true, - "type": "UInt32" + "type": "String" }, - "type": "UInt32" + "type": "String" }, { "kind": 34, @@ -1004,59 +912,15 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "event", - "required": true, - "scalar": { - "kind": 4, - "name": "event", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "args", - "scalar": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "args", - "type": "[String]" - }, - { - "kind": 34, - "name": "timeout", - "scalar": { - "kind": 4, - "name": "timeout", - "type": "UInt32" + "type": "Ethereum_TxRequest" }, - "type": "UInt32" + "required": true, + "type": "Ethereum_TxRequest" }, { "kind": 34, @@ -1070,19 +934,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, "return": { "kind": 34, - "name": "waitForEvent", + "name": "sendTransaction", "object": { "kind": 8192, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1090,34 +954,16 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "connection", + "name": "tx", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "tx", + "required": true, + "type": "Ethereum_TxRequest" }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getNetwork", - "required": true, - "return": { - "kind": 34, - "name": "getNetwork", - "object": { - "kind": 8192, - "name": "getNetwork", "required": true, - "type": "Ethereum_Network" + "type": "Ethereum_TxRequest" }, - "required": true, - "type": "Ethereum_Network" - }, - "type": "Method" - }, - { - "arguments": [ { "kind": 34, "name": "connection", @@ -1130,31 +976,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "requestAccounts", + "name": "sendTransactionAndWait", "required": true, "return": { - "array": { - "item": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "requestAccounts", + "kind": 34, + "name": "sendTransactionAndWait", + "object": { + "kind": 8192, + "name": "sendTransactionAndWait", "required": true, - "scalar": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, - "kind": 34, - "name": "requestAccounts", "required": true, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1162,11 +996,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", + "name": "abi", "required": true, "scalar": { "kind": 4, - "name": "address", + "name": "abi", "required": true, "type": "String" }, @@ -1174,11 +1008,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "method", + "name": "bytecode", "required": true, "scalar": { "kind": 4, - "name": "method", + "name": "bytecode", "required": true, "type": "String" }, @@ -1208,39 +1042,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethod", + "name": "deployContract", "required": true, "return": { "kind": 34, - "name": "callContractMethod", - "object": { - "kind": 8192, - "name": "callContractMethod", + "name": "deployContract", + "required": true, + "scalar": { + "kind": 4, + "name": "deployContract", "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, "type": "Method" }, @@ -1294,39 +1128,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", "required": true, "return": { "kind": 34, - "name": "callContractMethodAndWait", - "object": { - "kind": 8192, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateContractCallGas", "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, - "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, "type": "Method" }, @@ -1334,57 +1168,59 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, { "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendTransaction", - "required": true, - "return": { - "kind": 34, - "name": "sendTransaction", - "object": { - "kind": 8192, - "name": "sendTransaction", + "name": "method", "required": true, - "type": "Ethereum_TxResponse" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" - }, - "type": "Method" - }, - { - "arguments": [ { + "array": { + "item": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "args", + "scalar": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "type": "[String]" + }, "kind": 34, - "name": "tx", + "name": "args", + "type": "[String]" + }, + { + "kind": 34, + "name": "options", "object": { "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" + "name": "options", + "type": "Ethereum_TxOptions" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "Ethereum_TxOptions" }, { "kind": 34, @@ -1398,19 +1234,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, "return": { "kind": 34, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "object": { "kind": 8192, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1418,11 +1254,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "abi", + "name": "address", "required": true, "scalar": { "kind": 4, - "name": "abi", + "name": "address", "required": true, "type": "String" }, @@ -1430,11 +1266,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "bytecode", + "name": "method", "required": true, "scalar": { "kind": 4, - "name": "bytecode", + "name": "method", "required": true, "type": "String" }, @@ -1462,6 +1298,16 @@ export const manifest: WrapManifest = { "name": "args", "type": "[String]" }, + { + "kind": 34, + "name": "options", + "object": { + "kind": 8192, + "name": "options", + "type": "Ethereum_TxOptions" + }, + "type": "Ethereum_TxOptions" + }, { "kind": 34, "name": "connection", @@ -1474,19 +1320,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "deployContract", + "name": "callContractMethodAndWait", "required": true, "return": { "kind": 34, - "name": "deployContract", - "required": true, - "scalar": { - "kind": 4, - "name": "deployContract", + "name": "callContractMethodAndWait", + "object": { + "kind": 8192, + "name": "callContractMethodAndWait", "required": true, - "type": "String" + "type": "Ethereum_TxReceipt" }, - "type": "String" + "required": true, + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1573,110 +1419,6 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "payload", - "required": true, - "scalar": { - "kind": 4, - "name": "payload", - "required": true, - "type": "JSON" - }, - "type": "JSON" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "signTypedData", - "required": true, - "return": { - "kind": 34, - "name": "signTypedData", - "scalar": { - "kind": 4, - "name": "signTypedData", - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "method", - "required": true, - "scalar": { - "kind": 4, - "name": "method", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "params", - "required": true, - "scalar": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "params", - "required": true, - "type": "[String]" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendRPC", - "required": true, - "return": { - "kind": 34, - "name": "sendRPC", - "scalar": { - "kind": 4, - "name": "sendRPC", - "type": "String" - }, - "type": "String" - }, - "type": "Method" } ], "namespace": "Ethereum", @@ -1718,9 +1460,10 @@ export const manifest: WrapManifest = { { "kind": 1025, "namespace": "Ethereum", - "nativeType": "TxOverrides", + "nativeType": "TxOptions", "properties": [ { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1731,6 +1474,29 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxFeePerGas", + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxPriorityFeePerGas", + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, "name": "gasPrice", "scalar": { @@ -1741,6 +1507,7 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, "name": "value", "scalar": { @@ -1749,9 +1516,20 @@ export const manifest: WrapManifest = { "type": "BigInt" }, "type": "BigInt" + }, + { + "comment": "Override default nonce", + "kind": 34, + "name": "nonce", + "scalar": { + "kind": 4, + "name": "nonce", + "type": "UInt32" + }, + "type": "UInt32" } ], - "type": "Ethereum_TxOverrides", + "type": "Ethereum_TxOptions", "uri": "ens/ethereum.polywrap.eth" }, { @@ -1787,6 +1565,39 @@ export const manifest: WrapManifest = { "type": "Ethereum_StaticTxResult", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "Eip1559FeesEstimate", + "properties": [ + { + "kind": 34, + "name": "maxFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "kind": 34, + "name": "maxPriorityFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + } + ], + "type": "Ethereum_Eip1559FeesEstimate", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -1810,19 +1621,62 @@ export const manifest: WrapManifest = { "name": "from", "type": "String" }, - "type": "String" - }, - { + "type": "String" + }, + { + "kind": 34, + "name": "data", + "scalar": { + "kind": 4, + "name": "data", + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "type", + "scalar": { + "kind": 4, + "name": "type", + "type": "UInt32" + }, + "type": "UInt32" + }, + { + "kind": 34, + "name": "chainId", + "scalar": { + "kind": 4, + "name": "chainId", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "array": { + "item": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "kind": 18, + "name": "accessList", + "object": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "type": "[Ethereum_AccessItem]" + }, "kind": 34, - "name": "nonce", - "scalar": { - "kind": 4, - "name": "nonce", - "type": "UInt32" - }, - "type": "UInt32" + "name": "accessList", + "type": "[Ethereum_AccessItem]" }, { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1833,51 +1687,56 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "data", + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" }, { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, - "name": "value", + "name": "gasPrice", "scalar": { "kind": 4, - "name": "value", + "name": "gasPrice", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, - "name": "chainId", + "name": "value", "scalar": { "kind": 4, - "name": "chainId", + "name": "value", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Override default nonce", "kind": 34, - "name": "type", + "name": "nonce", "scalar": { "kind": 4, - "name": "type", + "name": "nonce", "type": "UInt32" }, "type": "UInt32" @@ -1886,6 +1745,51 @@ export const manifest: WrapManifest = { "type": "Ethereum_TxRequest", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "AccessItem", + "properties": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "array": { + "item": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "storageKeys", + "required": true, + "scalar": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "type": "[String]" + }, + "kind": 34, + "name": "storageKeys", + "required": true, + "type": "[String]" + } + ], + "type": "Ethereum_AccessItem", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -2069,18 +1973,6 @@ export const manifest: WrapManifest = { }, "type": "BigInt" }, - { - "kind": 34, - "name": "byzantium", - "required": true, - "scalar": { - "kind": 4, - "name": "byzantium", - "required": true, - "type": "Boolean" - }, - "type": "Boolean" - }, { "kind": 34, "name": "type", @@ -2236,94 +2128,6 @@ export const manifest: WrapManifest = { "type": "Ethereum_Log", "uri": "ens/ethereum.polywrap.eth" }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "EventNotification", - "properties": [ - { - "kind": 34, - "name": "data", - "required": true, - "scalar": { - "kind": 4, - "name": "data", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "log", - "object": { - "kind": 8192, - "name": "log", - "required": true, - "type": "Ethereum_Log" - }, - "required": true, - "type": "Ethereum_Log" - } - ], - "type": "Ethereum_EventNotification", - "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Network", - "properties": [ - { - "kind": 34, - "name": "name", - "required": true, - "scalar": { - "kind": 4, - "name": "name", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "chainId", - "required": true, - "scalar": { - "kind": 4, - "name": "chainId", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "ensAddress", - "scalar": { - "kind": 4, - "name": "ensAddress", - "type": "String" - }, - "type": "String" - } - ], - "type": "Ethereum_Network", - "uri": "ens/ethereum.polywrap.eth" - }, { "kind": 1025, "namespace": "Ethereum", @@ -2389,25 +2193,33 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { "kind": 34, - "name": "data", - "required": true, + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "required": true, - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" + }, + { + "kind": 34, + "name": "gasPrice", + "scalar": { + "kind": 4, + "name": "gasPrice", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, @@ -2463,28 +2275,6 @@ export const manifest: WrapManifest = { }, "type": "UInt32" }, - { - "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" - }, - "type": "UInt32" - }, - { - "kind": 34, - "name": "raw", - "scalar": { - "kind": 4, - "name": "raw", - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "r", @@ -2531,7 +2321,7 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, "kind": 18, "name": "accessList", @@ -2539,62 +2329,17 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" }, "kind": 34, "name": "accessList", - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" } ], "type": "Ethereum_TxResponse", "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Access", - "properties": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "storageKeys", - "required": true, - "scalar": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "storageKeys", - "required": true, - "type": "[String]" - } - ], - "type": "Ethereum_Access", - "uri": "ens/ethereum.polywrap.eth" } ], "moduleType": { @@ -2606,31 +2351,28 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, { - "type": "Ethereum_TxOverrides" + "type": "Ethereum_TxOptions" }, { "type": "Ethereum_StaticTxResult" }, { - "type": "Ethereum_TxRequest" + "type": "Ethereum_Eip1559FeesEstimate" }, { - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxRequest" }, { - "type": "Ethereum_Log" + "type": "Ethereum_AccessItem" }, { - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxReceipt" }, { - "type": "Ethereum_Network" + "type": "Ethereum_Log" }, { "type": "Ethereum_TxResponse" - }, - { - "type": "Ethereum_Access" } ], "kind": 128, diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts index 2b1bf8b120..211100de45 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts @@ -52,10 +52,13 @@ export interface Ethereum_Connection { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_TxOverrides { +export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; value?: Types.BigInt | null; + nonce?: Types.UInt32 | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -64,17 +67,32 @@ export interface Ethereum_StaticTxResult { error: Types.Boolean; } +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Eip1559FeesEstimate { + maxFeePerGas: Types.BigInt; + maxPriorityFeePerGas: Types.BigInt; +} + /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; - nonce?: Types.UInt32 | null; + data?: Types.String | null; + type?: Types.UInt32 | null; + chainId?: Types.BigInt | null; + accessList?: Array | null; gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data?: Types.String | null; value?: Types.BigInt | null; - chainId?: Types.BigInt | null; - type?: Types.UInt32 | null; + nonce?: Types.UInt32 | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_AccessItem { + address: Types.String; + storageKeys: Array; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -93,7 +111,6 @@ export interface Ethereum_TxReceipt { confirmations: Types.UInt32; cumulativeGasUsed: Types.BigInt; effectiveGasPrice: Types.BigInt; - byzantium: Types.Boolean; type: Types.UInt32; status?: Types.UInt32 | null; } @@ -111,20 +128,6 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_EventNotification { - data: Types.String; - address: Types.String; - log: Types.Ethereum_Log; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Network { - name: Types.String; - chainId: Types.BigInt; - ensAddress?: Types.String | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxResponse { hash: Types.String; @@ -132,26 +135,19 @@ export interface Ethereum_TxResponse { from: Types.String; nonce: Types.UInt32; gasLimit: Types.BigInt; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data: Types.String; value: Types.BigInt; chainId: Types.BigInt; blockNumber?: Types.BigInt | null; blockHash?: Types.String | null; timestamp?: Types.UInt32 | null; - confirmations: Types.UInt32; - raw?: Types.String | null; r?: Types.String | null; s?: Types.String | null; v?: Types.UInt32 | null; type?: Types.UInt32 | null; - accessList?: Array | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Access { - address: Types.String; - storageKeys: Array; + accessList?: Array | null; } /// Imported Objects END /// @@ -159,26 +155,24 @@ export interface Ethereum_Access { /// Imported Modules START /// /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractView { - address: Types.String; - method: Types.String; - args?: Array | null; +export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractStatic { +export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getBalance { +export interface Ethereum_Module_Args_callContractStatic { address: Types.String; - blockTag?: Types.BigInt | null; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -186,30 +180,21 @@ export interface Ethereum_Module_Args_getBalance { export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityPack { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityKeccak256 { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_soliditySha256 { - types: Array; - values: Array; +export interface Ethereum_Module_Args_decodeFunction { + method: Types.String; + data: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -224,7 +209,8 @@ export interface Ethereum_Module_Args_getSignerBalance { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getSignerTransactionCount { +export interface Ethereum_Module_Args_getBalance { + address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } @@ -235,23 +221,27 @@ export interface Ethereum_Module_Args_getGasPrice { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateTransactionGas { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateContractCallGas { - address: Types.String; +export interface Ethereum_Module_Args_sendRpc { method: Types.String; - args?: Array | null; + params: Array; + connection?: Types.Ethereum_Connection | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Module_Args_getSignerTransactionCount { + blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -261,71 +251,66 @@ export interface Ethereum_Module_Args_toWei { /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_toEth { - wei: Types.BigInt; + wei: Types.String; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_awaitTransaction { - txHash: Types.String; - confirmations: Types.UInt32; - timeout: Types.UInt32; +export interface Ethereum_Module_Args_estimateTransactionGas { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_waitForEvent { - address: Types.String; - event: Types.String; - args?: Array | null; - timeout?: Types.UInt32 | null; +export interface Ethereum_Module_Args_awaitTransaction { + txHash: Types.String; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getNetwork { +export interface Ethereum_Module_Args_sendTransaction { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_requestAccounts { +export interface Ethereum_Module_Args_sendTransactionAndWait { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethod { - address: Types.String; - method: Types.String; +export interface Ethereum_Module_Args_deployContract { + abi: Types.String; + bytecode: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethodAndWait { +export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; args?: Array | null; - connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransaction { - tx: Types.Ethereum_TxRequest; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransactionAndWait { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_callContractMethod { + address: Types.String; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_deployContract { - abi: Types.String; - bytecode: Types.String; +export interface Ethereum_Module_Args_callContractMethodAndWait { + address: Types.String; + method: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -341,21 +326,19 @@ export interface Ethereum_Module_Args_signMessageBytes { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_signTypedData { - payload: Types.Json; - connection?: Types.Ethereum_Connection | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendRPC { - method: Types.String; - params: Array; - connection?: Types.Ethereum_Connection | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export const Ethereum_Module = { + getChainId: async ( + args: Ethereum_Module_Args_getChainId, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "getChainId", + args: (args as unknown) as Record, + }); + }, + callContractView: async ( args: Ethereum_Module_Args_callContractView, client: CoreClient @@ -378,17 +361,6 @@ export const Ethereum_Module = { }); }, - getBalance: async ( - args: Ethereum_Module_Args_getBalance, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "getBalance", - args: (args as unknown) as Record, - }); - }, - encodeParams: async ( args: Ethereum_Module_Args_encodeParams, client: CoreClient @@ -411,35 +383,13 @@ export const Ethereum_Module = { }); }, - solidityPack: async ( - args: Ethereum_Module_Args_solidityPack, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityPack", - args: (args as unknown) as Record, - }); - }, - - solidityKeccak256: async ( - args: Ethereum_Module_Args_solidityKeccak256, + decodeFunction: async ( + args: Ethereum_Module_Args_decodeFunction, client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityKeccak256", - args: (args as unknown) as Record, - }); - }, - - soliditySha256: async ( - args: Ethereum_Module_Args_soliditySha256, - client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise>> => { + return client.invoke>({ uri: "ens/ethereum.polywrap.eth", - method: "soliditySha256", + method: "decodeFunction", args: (args as unknown) as Record, }); }, @@ -466,13 +416,13 @@ export const Ethereum_Module = { }); }, - getSignerTransactionCount: async ( - args: Ethereum_Module_Args_getSignerTransactionCount, + getBalance: async ( + args: Ethereum_Module_Args_getBalance, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getSignerTransactionCount", + method: "getBalance", args: (args as unknown) as Record, }); }, @@ -488,24 +438,35 @@ export const Ethereum_Module = { }); }, - estimateTransactionGas: async ( - args: Ethereum_Module_Args_estimateTransactionGas, + estimateEip1559Fees: async ( + args: Ethereum_Module_Args_estimateEip1559Fees, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateTransactionGas", + method: "estimateEip1559Fees", args: (args as unknown) as Record, }); }, - estimateContractCallGas: async ( - args: Ethereum_Module_Args_estimateContractCallGas, + sendRpc: async ( + args: Ethereum_Module_Args_sendRpc, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "sendRpc", + args: (args as unknown) as Record, + }); + }, + + getSignerTransactionCount: async ( + args: Ethereum_Module_Args_getSignerTransactionCount, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateContractCallGas", + method: "getSignerTransactionCount", args: (args as unknown) as Record, }); }, @@ -524,8 +485,8 @@ export const Ethereum_Module = { toWei: async ( args: Ethereum_Module_Args_toWei, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", method: "toWei", args: (args as unknown) as Record, @@ -543,101 +504,90 @@ export const Ethereum_Module = { }); }, - awaitTransaction: async ( - args: Ethereum_Module_Args_awaitTransaction, + estimateTransactionGas: async ( + args: Ethereum_Module_Args_estimateTransactionGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "awaitTransaction", + method: "estimateTransactionGas", args: (args as unknown) as Record, }); }, - waitForEvent: async ( - args: Ethereum_Module_Args_waitForEvent, + awaitTransaction: async ( + args: Ethereum_Module_Args_awaitTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "waitForEvent", + method: "awaitTransaction", args: (args as unknown) as Record, }); }, - getNetwork: async ( - args: Ethereum_Module_Args_getNetwork, + sendTransaction: async ( + args: Ethereum_Module_Args_sendTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getNetwork", + method: "sendTransaction", args: (args as unknown) as Record, }); }, - requestAccounts: async ( - args: Ethereum_Module_Args_requestAccounts, + sendTransactionAndWait: async ( + args: Ethereum_Module_Args_sendTransactionAndWait, client: CoreClient - ): Promise>> => { - return client.invoke>({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "requestAccounts", + method: "sendTransactionAndWait", args: (args as unknown) as Record, }); }, - callContractMethod: async ( - args: Ethereum_Module_Args_callContractMethod, + deployContract: async ( + args: Ethereum_Module_Args_deployContract, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethod", + method: "deployContract", args: (args as unknown) as Record, }); }, - callContractMethodAndWait: async ( - args: Ethereum_Module_Args_callContractMethodAndWait, + estimateContractCallGas: async ( + args: Ethereum_Module_Args_estimateContractCallGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethodAndWait", + method: "estimateContractCallGas", args: (args as unknown) as Record, }); }, - sendTransaction: async ( - args: Ethereum_Module_Args_sendTransaction, + callContractMethod: async ( + args: Ethereum_Module_Args_callContractMethod, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransaction", + method: "callContractMethod", args: (args as unknown) as Record, }); }, - sendTransactionAndWait: async ( - args: Ethereum_Module_Args_sendTransactionAndWait, + callContractMethodAndWait: async ( + args: Ethereum_Module_Args_callContractMethodAndWait, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransactionAndWait", - args: (args as unknown) as Record, - }); - }, - - deployContract: async ( - args: Ethereum_Module_Args_deployContract, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "deployContract", + method: "callContractMethodAndWait", args: (args as unknown) as Record, }); }, @@ -662,28 +612,6 @@ export const Ethereum_Module = { method: "signMessageBytes", args: (args as unknown) as Record, }); - }, - - signTypedData: async ( - args: Ethereum_Module_Args_signTypedData, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "signTypedData", - args: (args as unknown) as Record, - }); - }, - - sendRPC: async ( - args: Ethereum_Module_Args_sendRPC, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "sendRPC", - args: (args as unknown) as Record, - }); } } diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts index 3c21e94789..56b643e3f0 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts @@ -30,6 +30,36 @@ export const manifest: WrapManifest = { "isInterface": false, "kind": 256, "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "getChainId", + "required": true, + "return": { + "kind": 34, + "name": "getChainId", + "required": true, + "scalar": { + "kind": 4, + "name": "getChainId", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, { "arguments": [ { @@ -156,23 +186,23 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, @@ -192,58 +222,6 @@ export const manifest: WrapManifest = { }, "type": "Method" }, - { - "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "blockTag", - "scalar": { - "kind": 4, - "name": "blockTag", - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getBalance", - "required": true, - "return": { - "kind": 34, - "name": "getBalance", - "required": true, - "scalar": { - "kind": 4, - "name": "getBalance", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - "type": "Method" - }, { "arguments": [ { @@ -293,6 +271,16 @@ export const manifest: WrapManifest = { "name": "values", "required": true, "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -347,6 +335,16 @@ export const manifest: WrapManifest = { "kind": 34, "name": "args", "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -369,230 +367,92 @@ export const manifest: WrapManifest = { { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", + "name": "method", "required": true, - "type": "[String]" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", + "kind": 34, + "name": "data", + "required": true, + "scalar": { + "kind": 4, + "name": "data", "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "String" }, + "type": "String" + }, + { "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityPack", + "name": "decodeFunction", "required": true, "return": { - "kind": 34, - "name": "solidityPack", - "required": true, - "scalar": { - "kind": 4, - "name": "solidityPack", + "array": { + "item": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "decodeFunction", "required": true, - "type": "String" + "scalar": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "type": "[String]" }, - "type": "String" + "kind": 34, + "name": "decodeFunction", + "required": true, + "type": "[String]" }, "type": "Method" }, { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "return": { "kind": 34, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "scalar": { "kind": 4, - "name": "solidityKeccak256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" - } - ], - "kind": 64, - "name": "soliditySha256", - "required": true, - "return": { - "kind": 34, - "name": "soliditySha256", - "required": true, - "scalar": { - "kind": 4, - "name": "soliditySha256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getSignerAddress", - "required": true, - "return": { - "kind": 34, - "name": "getSignerAddress", - "required": true, - "scalar": { - "kind": 4, - "name": "getSignerAddress", + "name": "getSignerAddress", "required": true, "type": "String" }, @@ -642,6 +502,18 @@ export const manifest: WrapManifest = { }, { "arguments": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, { "kind": 34, "name": "blockTag", @@ -664,15 +536,15 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "return": { "kind": 34, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "scalar": { "kind": 4, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "type": "BigInt" }, @@ -712,18 +584,6 @@ export const manifest: WrapManifest = { }, { "arguments": [ - { - "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" - }, - "required": true, - "type": "Ethereum_TxRequest" - }, { "kind": 34, "name": "connection", @@ -736,36 +596,24 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", "required": true, "return": { "kind": 34, - "name": "estimateTransactionGas", - "required": true, - "scalar": { - "kind": 4, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", + "object": { + "kind": 8192, + "name": "estimateEip1559Fees", "required": true, - "type": "BigInt" + "type": "Ethereum_Eip1559FeesEstimate" }, - "type": "BigInt" + "required": true, + "type": "Ethereum_Eip1559FeesEstimate" }, "type": "Method" }, { "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "method", @@ -782,22 +630,24 @@ export const manifest: WrapManifest = { "array": { "item": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "kind": 18, - "name": "args", + "name": "params", + "required": true, "scalar": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "type": "[String]" }, "kind": 34, - "name": "args", + "name": "params", + "required": true, "type": "[String]" }, { @@ -809,28 +659,58 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "sendRpc", + "required": true, + "return": { + "kind": 34, + "name": "sendRpc", + "required": true, + "scalar": { + "kind": 4, + "name": "sendRpc", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "blockTag", + "scalar": { + "kind": 4, + "name": "blockTag", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "return": { "kind": 34, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "scalar": { "kind": 4, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "type": "BigInt" }, @@ -851,6 +731,16 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "String" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -896,9 +786,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "toWei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" }, "type": "Method" }, @@ -912,9 +802,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "wei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" } ], "kind": 64, @@ -938,39 +828,57 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "txHash", - "required": true, - "scalar": { - "kind": 4, - "name": "txHash", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" + "required": true, + "type": "Ethereum_TxRequest" }, { "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "UInt32" + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "estimateTransactionGas", + "required": true, + "return": { + "kind": 34, + "name": "estimateTransactionGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateTransactionGas", + "required": true, + "type": "BigInt" }, + "type": "BigInt" + }, + "type": "Method" + }, + { + "arguments": [ { "kind": 34, - "name": "timeout", + "name": "txHash", "required": true, "scalar": { "kind": 4, - "name": "timeout", + "name": "txHash", "required": true, - "type": "UInt32" + "type": "String" }, - "type": "UInt32" + "type": "String" }, { "kind": 34, @@ -1004,59 +912,15 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" - }, - { - "kind": 34, - "name": "event", "required": true, - "scalar": { - "kind": 4, - "name": "event", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "args", - "scalar": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "args", - "type": "[String]" - }, - { - "kind": 34, - "name": "timeout", - "scalar": { - "kind": 4, - "name": "timeout", - "type": "UInt32" - }, - "type": "UInt32" + "type": "Ethereum_TxRequest" }, { "kind": 34, @@ -1070,19 +934,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, "return": { "kind": 34, - "name": "waitForEvent", + "name": "sendTransaction", "object": { "kind": 8192, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1090,34 +954,16 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "connection", + "name": "tx", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "tx", + "required": true, + "type": "Ethereum_TxRequest" }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getNetwork", - "required": true, - "return": { - "kind": 34, - "name": "getNetwork", - "object": { - "kind": 8192, - "name": "getNetwork", "required": true, - "type": "Ethereum_Network" + "type": "Ethereum_TxRequest" }, - "required": true, - "type": "Ethereum_Network" - }, - "type": "Method" - }, - { - "arguments": [ { "kind": 34, "name": "connection", @@ -1130,31 +976,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "requestAccounts", + "name": "sendTransactionAndWait", "required": true, "return": { - "array": { - "item": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "requestAccounts", + "kind": 34, + "name": "sendTransactionAndWait", + "object": { + "kind": 8192, + "name": "sendTransactionAndWait", "required": true, - "scalar": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, - "kind": 34, - "name": "requestAccounts", "required": true, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1162,11 +996,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", + "name": "abi", "required": true, "scalar": { "kind": 4, - "name": "address", + "name": "abi", "required": true, "type": "String" }, @@ -1174,11 +1008,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "method", + "name": "bytecode", "required": true, "scalar": { "kind": 4, - "name": "method", + "name": "bytecode", "required": true, "type": "String" }, @@ -1208,39 +1042,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethod", + "name": "deployContract", "required": true, "return": { "kind": 34, - "name": "callContractMethod", - "object": { - "kind": 8192, - "name": "callContractMethod", + "name": "deployContract", + "required": true, + "scalar": { + "kind": 4, + "name": "deployContract", "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, "type": "Method" }, @@ -1294,39 +1128,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", "required": true, "return": { "kind": 34, - "name": "callContractMethodAndWait", - "object": { - "kind": 8192, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateContractCallGas", "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, - "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, "type": "Method" }, @@ -1334,57 +1168,59 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, { "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendTransaction", - "required": true, - "return": { - "kind": 34, - "name": "sendTransaction", - "object": { - "kind": 8192, - "name": "sendTransaction", + "name": "method", "required": true, - "type": "Ethereum_TxResponse" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" - }, - "type": "Method" - }, - { - "arguments": [ { + "array": { + "item": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "args", + "scalar": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "type": "[String]" + }, "kind": 34, - "name": "tx", + "name": "args", + "type": "[String]" + }, + { + "kind": 34, + "name": "options", "object": { "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" + "name": "options", + "type": "Ethereum_TxOptions" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "Ethereum_TxOptions" }, { "kind": 34, @@ -1398,19 +1234,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, "return": { "kind": 34, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "object": { "kind": 8192, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1418,11 +1254,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "abi", + "name": "address", "required": true, "scalar": { "kind": 4, - "name": "abi", + "name": "address", "required": true, "type": "String" }, @@ -1430,11 +1266,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "bytecode", + "name": "method", "required": true, "scalar": { "kind": 4, - "name": "bytecode", + "name": "method", "required": true, "type": "String" }, @@ -1462,6 +1298,16 @@ export const manifest: WrapManifest = { "name": "args", "type": "[String]" }, + { + "kind": 34, + "name": "options", + "object": { + "kind": 8192, + "name": "options", + "type": "Ethereum_TxOptions" + }, + "type": "Ethereum_TxOptions" + }, { "kind": 34, "name": "connection", @@ -1474,19 +1320,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "deployContract", + "name": "callContractMethodAndWait", "required": true, "return": { "kind": 34, - "name": "deployContract", - "required": true, - "scalar": { - "kind": 4, - "name": "deployContract", + "name": "callContractMethodAndWait", + "object": { + "kind": 8192, + "name": "callContractMethodAndWait", "required": true, - "type": "String" + "type": "Ethereum_TxReceipt" }, - "type": "String" + "required": true, + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1573,110 +1419,6 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "payload", - "required": true, - "scalar": { - "kind": 4, - "name": "payload", - "required": true, - "type": "JSON" - }, - "type": "JSON" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "signTypedData", - "required": true, - "return": { - "kind": 34, - "name": "signTypedData", - "scalar": { - "kind": 4, - "name": "signTypedData", - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "method", - "required": true, - "scalar": { - "kind": 4, - "name": "method", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "params", - "required": true, - "scalar": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "params", - "required": true, - "type": "[String]" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendRPC", - "required": true, - "return": { - "kind": 34, - "name": "sendRPC", - "scalar": { - "kind": 4, - "name": "sendRPC", - "type": "String" - }, - "type": "String" - }, - "type": "Method" } ], "namespace": "Ethereum", @@ -1718,9 +1460,10 @@ export const manifest: WrapManifest = { { "kind": 1025, "namespace": "Ethereum", - "nativeType": "TxOverrides", + "nativeType": "TxOptions", "properties": [ { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1731,6 +1474,29 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxFeePerGas", + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxPriorityFeePerGas", + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, "name": "gasPrice", "scalar": { @@ -1741,6 +1507,7 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, "name": "value", "scalar": { @@ -1749,9 +1516,20 @@ export const manifest: WrapManifest = { "type": "BigInt" }, "type": "BigInt" + }, + { + "comment": "Override default nonce", + "kind": 34, + "name": "nonce", + "scalar": { + "kind": 4, + "name": "nonce", + "type": "UInt32" + }, + "type": "UInt32" } ], - "type": "Ethereum_TxOverrides", + "type": "Ethereum_TxOptions", "uri": "ens/ethereum.polywrap.eth" }, { @@ -1787,6 +1565,39 @@ export const manifest: WrapManifest = { "type": "Ethereum_StaticTxResult", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "Eip1559FeesEstimate", + "properties": [ + { + "kind": 34, + "name": "maxFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "kind": 34, + "name": "maxPriorityFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + } + ], + "type": "Ethereum_Eip1559FeesEstimate", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -1810,19 +1621,62 @@ export const manifest: WrapManifest = { "name": "from", "type": "String" }, - "type": "String" - }, - { + "type": "String" + }, + { + "kind": 34, + "name": "data", + "scalar": { + "kind": 4, + "name": "data", + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "type", + "scalar": { + "kind": 4, + "name": "type", + "type": "UInt32" + }, + "type": "UInt32" + }, + { + "kind": 34, + "name": "chainId", + "scalar": { + "kind": 4, + "name": "chainId", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "array": { + "item": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "kind": 18, + "name": "accessList", + "object": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "type": "[Ethereum_AccessItem]" + }, "kind": 34, - "name": "nonce", - "scalar": { - "kind": 4, - "name": "nonce", - "type": "UInt32" - }, - "type": "UInt32" + "name": "accessList", + "type": "[Ethereum_AccessItem]" }, { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1833,51 +1687,56 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "data", + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" }, { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, - "name": "value", + "name": "gasPrice", "scalar": { "kind": 4, - "name": "value", + "name": "gasPrice", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, - "name": "chainId", + "name": "value", "scalar": { "kind": 4, - "name": "chainId", + "name": "value", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Override default nonce", "kind": 34, - "name": "type", + "name": "nonce", "scalar": { "kind": 4, - "name": "type", + "name": "nonce", "type": "UInt32" }, "type": "UInt32" @@ -1886,6 +1745,51 @@ export const manifest: WrapManifest = { "type": "Ethereum_TxRequest", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "AccessItem", + "properties": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "array": { + "item": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "storageKeys", + "required": true, + "scalar": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "type": "[String]" + }, + "kind": 34, + "name": "storageKeys", + "required": true, + "type": "[String]" + } + ], + "type": "Ethereum_AccessItem", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -2069,18 +1973,6 @@ export const manifest: WrapManifest = { }, "type": "BigInt" }, - { - "kind": 34, - "name": "byzantium", - "required": true, - "scalar": { - "kind": 4, - "name": "byzantium", - "required": true, - "type": "Boolean" - }, - "type": "Boolean" - }, { "kind": 34, "name": "type", @@ -2236,94 +2128,6 @@ export const manifest: WrapManifest = { "type": "Ethereum_Log", "uri": "ens/ethereum.polywrap.eth" }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "EventNotification", - "properties": [ - { - "kind": 34, - "name": "data", - "required": true, - "scalar": { - "kind": 4, - "name": "data", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "log", - "object": { - "kind": 8192, - "name": "log", - "required": true, - "type": "Ethereum_Log" - }, - "required": true, - "type": "Ethereum_Log" - } - ], - "type": "Ethereum_EventNotification", - "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Network", - "properties": [ - { - "kind": 34, - "name": "name", - "required": true, - "scalar": { - "kind": 4, - "name": "name", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "chainId", - "required": true, - "scalar": { - "kind": 4, - "name": "chainId", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "ensAddress", - "scalar": { - "kind": 4, - "name": "ensAddress", - "type": "String" - }, - "type": "String" - } - ], - "type": "Ethereum_Network", - "uri": "ens/ethereum.polywrap.eth" - }, { "kind": 1025, "namespace": "Ethereum", @@ -2389,25 +2193,33 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { "kind": 34, - "name": "data", - "required": true, + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "required": true, - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" + }, + { + "kind": 34, + "name": "gasPrice", + "scalar": { + "kind": 4, + "name": "gasPrice", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, @@ -2463,28 +2275,6 @@ export const manifest: WrapManifest = { }, "type": "UInt32" }, - { - "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" - }, - "type": "UInt32" - }, - { - "kind": 34, - "name": "raw", - "scalar": { - "kind": 4, - "name": "raw", - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "r", @@ -2531,7 +2321,7 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, "kind": 18, "name": "accessList", @@ -2539,62 +2329,17 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" }, "kind": 34, "name": "accessList", - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" } ], "type": "Ethereum_TxResponse", "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Access", - "properties": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "storageKeys", - "required": true, - "scalar": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "storageKeys", - "required": true, - "type": "[String]" - } - ], - "type": "Ethereum_Access", - "uri": "ens/ethereum.polywrap.eth" } ], "moduleType": { @@ -2606,31 +2351,28 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, { - "type": "Ethereum_TxOverrides" + "type": "Ethereum_TxOptions" }, { "type": "Ethereum_StaticTxResult" }, { - "type": "Ethereum_TxRequest" + "type": "Ethereum_Eip1559FeesEstimate" }, { - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxRequest" }, { - "type": "Ethereum_Log" + "type": "Ethereum_AccessItem" }, { - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxReceipt" }, { - "type": "Ethereum_Network" + "type": "Ethereum_Log" }, { "type": "Ethereum_TxResponse" - }, - { - "type": "Ethereum_Access" } ], "kind": 128, diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts index 2b1bf8b120..211100de45 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts @@ -52,10 +52,13 @@ export interface Ethereum_Connection { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_TxOverrides { +export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; value?: Types.BigInt | null; + nonce?: Types.UInt32 | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -64,17 +67,32 @@ export interface Ethereum_StaticTxResult { error: Types.Boolean; } +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Eip1559FeesEstimate { + maxFeePerGas: Types.BigInt; + maxPriorityFeePerGas: Types.BigInt; +} + /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; - nonce?: Types.UInt32 | null; + data?: Types.String | null; + type?: Types.UInt32 | null; + chainId?: Types.BigInt | null; + accessList?: Array | null; gasLimit?: Types.BigInt | null; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data?: Types.String | null; value?: Types.BigInt | null; - chainId?: Types.BigInt | null; - type?: Types.UInt32 | null; + nonce?: Types.UInt32 | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_AccessItem { + address: Types.String; + storageKeys: Array; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -93,7 +111,6 @@ export interface Ethereum_TxReceipt { confirmations: Types.UInt32; cumulativeGasUsed: Types.BigInt; effectiveGasPrice: Types.BigInt; - byzantium: Types.Boolean; type: Types.UInt32; status?: Types.UInt32 | null; } @@ -111,20 +128,6 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_EventNotification { - data: Types.String; - address: Types.String; - log: Types.Ethereum_Log; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Network { - name: Types.String; - chainId: Types.BigInt; - ensAddress?: Types.String | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_TxResponse { hash: Types.String; @@ -132,26 +135,19 @@ export interface Ethereum_TxResponse { from: Types.String; nonce: Types.UInt32; gasLimit: Types.BigInt; + maxFeePerGas?: Types.BigInt | null; + maxPriorityFeePerGas?: Types.BigInt | null; gasPrice?: Types.BigInt | null; - data: Types.String; value: Types.BigInt; chainId: Types.BigInt; blockNumber?: Types.BigInt | null; blockHash?: Types.String | null; timestamp?: Types.UInt32 | null; - confirmations: Types.UInt32; - raw?: Types.String | null; r?: Types.String | null; s?: Types.String | null; v?: Types.UInt32 | null; type?: Types.UInt32 | null; - accessList?: Array | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Access { - address: Types.String; - storageKeys: Array; + accessList?: Array | null; } /// Imported Objects END /// @@ -159,26 +155,24 @@ export interface Ethereum_Access { /// Imported Modules START /// /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractView { - address: Types.String; - method: Types.String; - args?: Array | null; +export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractStatic { +export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getBalance { +export interface Ethereum_Module_Args_callContractStatic { address: Types.String; - blockTag?: Types.BigInt | null; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -186,30 +180,21 @@ export interface Ethereum_Module_Args_getBalance { export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityPack { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_solidityKeccak256 { - types: Array; - values: Array; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_soliditySha256 { - types: Array; - values: Array; +export interface Ethereum_Module_Args_decodeFunction { + method: Types.String; + data: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -224,7 +209,8 @@ export interface Ethereum_Module_Args_getSignerBalance { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getSignerTransactionCount { +export interface Ethereum_Module_Args_getBalance { + address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } @@ -235,23 +221,27 @@ export interface Ethereum_Module_Args_getGasPrice { } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateTransactionGas { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_estimateContractCallGas { - address: Types.String; +export interface Ethereum_Module_Args_sendRpc { method: Types.String; - args?: Array | null; + params: Array; + connection?: Types.Ethereum_Connection | null; +} + +/* URI: "ens/ethereum.polywrap.eth" */ +export interface Ethereum_Module_Args_getSignerTransactionCount { + blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; + connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ @@ -261,71 +251,66 @@ export interface Ethereum_Module_Args_toWei { /* URI: "ens/ethereum.polywrap.eth" */ export interface Ethereum_Module_Args_toEth { - wei: Types.BigInt; + wei: Types.String; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_awaitTransaction { - txHash: Types.String; - confirmations: Types.UInt32; - timeout: Types.UInt32; +export interface Ethereum_Module_Args_estimateTransactionGas { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_waitForEvent { - address: Types.String; - event: Types.String; - args?: Array | null; - timeout?: Types.UInt32 | null; +export interface Ethereum_Module_Args_awaitTransaction { + txHash: Types.String; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_getNetwork { +export interface Ethereum_Module_Args_sendTransaction { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_requestAccounts { +export interface Ethereum_Module_Args_sendTransactionAndWait { + tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethod { - address: Types.String; - method: Types.String; +export interface Ethereum_Module_Args_deployContract { + abi: Types.String; + bytecode: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_callContractMethodAndWait { +export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; args?: Array | null; - connection?: Types.Ethereum_Connection | null; - txOverrides?: Types.Ethereum_TxOverrides | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransaction { - tx: Types.Ethereum_TxRequest; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendTransactionAndWait { - tx: Types.Ethereum_TxRequest; +export interface Ethereum_Module_Args_callContractMethod { + address: Types.String; + method: Types.String; + args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } /* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_deployContract { - abi: Types.String; - bytecode: Types.String; +export interface Ethereum_Module_Args_callContractMethodAndWait { + address: Types.String; + method: Types.String; args?: Array | null; + options?: Types.Ethereum_TxOptions | null; connection?: Types.Ethereum_Connection | null; } @@ -341,21 +326,19 @@ export interface Ethereum_Module_Args_signMessageBytes { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_signTypedData { - payload: Types.Json; - connection?: Types.Ethereum_Connection | null; -} - -/* URI: "ens/ethereum.polywrap.eth" */ -export interface Ethereum_Module_Args_sendRPC { - method: Types.String; - params: Array; - connection?: Types.Ethereum_Connection | null; -} - /* URI: "ens/ethereum.polywrap.eth" */ export const Ethereum_Module = { + getChainId: async ( + args: Ethereum_Module_Args_getChainId, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "getChainId", + args: (args as unknown) as Record, + }); + }, + callContractView: async ( args: Ethereum_Module_Args_callContractView, client: CoreClient @@ -378,17 +361,6 @@ export const Ethereum_Module = { }); }, - getBalance: async ( - args: Ethereum_Module_Args_getBalance, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "getBalance", - args: (args as unknown) as Record, - }); - }, - encodeParams: async ( args: Ethereum_Module_Args_encodeParams, client: CoreClient @@ -411,35 +383,13 @@ export const Ethereum_Module = { }); }, - solidityPack: async ( - args: Ethereum_Module_Args_solidityPack, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityPack", - args: (args as unknown) as Record, - }); - }, - - solidityKeccak256: async ( - args: Ethereum_Module_Args_solidityKeccak256, + decodeFunction: async ( + args: Ethereum_Module_Args_decodeFunction, client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "solidityKeccak256", - args: (args as unknown) as Record, - }); - }, - - soliditySha256: async ( - args: Ethereum_Module_Args_soliditySha256, - client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise>> => { + return client.invoke>({ uri: "ens/ethereum.polywrap.eth", - method: "soliditySha256", + method: "decodeFunction", args: (args as unknown) as Record, }); }, @@ -466,13 +416,13 @@ export const Ethereum_Module = { }); }, - getSignerTransactionCount: async ( - args: Ethereum_Module_Args_getSignerTransactionCount, + getBalance: async ( + args: Ethereum_Module_Args_getBalance, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getSignerTransactionCount", + method: "getBalance", args: (args as unknown) as Record, }); }, @@ -488,24 +438,35 @@ export const Ethereum_Module = { }); }, - estimateTransactionGas: async ( - args: Ethereum_Module_Args_estimateTransactionGas, + estimateEip1559Fees: async ( + args: Ethereum_Module_Args_estimateEip1559Fees, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateTransactionGas", + method: "estimateEip1559Fees", args: (args as unknown) as Record, }); }, - estimateContractCallGas: async ( - args: Ethereum_Module_Args_estimateContractCallGas, + sendRpc: async ( + args: Ethereum_Module_Args_sendRpc, + client: CoreClient + ): Promise> => { + return client.invoke({ + uri: "ens/ethereum.polywrap.eth", + method: "sendRpc", + args: (args as unknown) as Record, + }); + }, + + getSignerTransactionCount: async ( + args: Ethereum_Module_Args_getSignerTransactionCount, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "estimateContractCallGas", + method: "getSignerTransactionCount", args: (args as unknown) as Record, }); }, @@ -524,8 +485,8 @@ export const Ethereum_Module = { toWei: async ( args: Ethereum_Module_Args_toWei, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", method: "toWei", args: (args as unknown) as Record, @@ -543,101 +504,90 @@ export const Ethereum_Module = { }); }, - awaitTransaction: async ( - args: Ethereum_Module_Args_awaitTransaction, + estimateTransactionGas: async ( + args: Ethereum_Module_Args_estimateTransactionGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "awaitTransaction", + method: "estimateTransactionGas", args: (args as unknown) as Record, }); }, - waitForEvent: async ( - args: Ethereum_Module_Args_waitForEvent, + awaitTransaction: async ( + args: Ethereum_Module_Args_awaitTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "waitForEvent", + method: "awaitTransaction", args: (args as unknown) as Record, }); }, - getNetwork: async ( - args: Ethereum_Module_Args_getNetwork, + sendTransaction: async ( + args: Ethereum_Module_Args_sendTransaction, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "getNetwork", + method: "sendTransaction", args: (args as unknown) as Record, }); }, - requestAccounts: async ( - args: Ethereum_Module_Args_requestAccounts, + sendTransactionAndWait: async ( + args: Ethereum_Module_Args_sendTransactionAndWait, client: CoreClient - ): Promise>> => { - return client.invoke>({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "requestAccounts", + method: "sendTransactionAndWait", args: (args as unknown) as Record, }); }, - callContractMethod: async ( - args: Ethereum_Module_Args_callContractMethod, + deployContract: async ( + args: Ethereum_Module_Args_deployContract, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethod", + method: "deployContract", args: (args as unknown) as Record, }); }, - callContractMethodAndWait: async ( - args: Ethereum_Module_Args_callContractMethodAndWait, + estimateContractCallGas: async ( + args: Ethereum_Module_Args_estimateContractCallGas, client: CoreClient - ): Promise> => { - return client.invoke({ + ): Promise> => { + return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "callContractMethodAndWait", + method: "estimateContractCallGas", args: (args as unknown) as Record, }); }, - sendTransaction: async ( - args: Ethereum_Module_Args_sendTransaction, + callContractMethod: async ( + args: Ethereum_Module_Args_callContractMethod, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransaction", + method: "callContractMethod", args: (args as unknown) as Record, }); }, - sendTransactionAndWait: async ( - args: Ethereum_Module_Args_sendTransactionAndWait, + callContractMethodAndWait: async ( + args: Ethereum_Module_Args_callContractMethodAndWait, client: CoreClient ): Promise> => { return client.invoke({ uri: "ens/ethereum.polywrap.eth", - method: "sendTransactionAndWait", - args: (args as unknown) as Record, - }); - }, - - deployContract: async ( - args: Ethereum_Module_Args_deployContract, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "deployContract", + method: "callContractMethodAndWait", args: (args as unknown) as Record, }); }, @@ -662,28 +612,6 @@ export const Ethereum_Module = { method: "signMessageBytes", args: (args as unknown) as Record, }); - }, - - signTypedData: async ( - args: Ethereum_Module_Args_signTypedData, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "signTypedData", - args: (args as unknown) as Record, - }); - }, - - sendRPC: async ( - args: Ethereum_Module_Args_sendRPC, - client: CoreClient - ): Promise> => { - return client.invoke({ - uri: "ens/ethereum.polywrap.eth", - method: "sendRPC", - args: (args as unknown) as Record, - }); } } diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts index 3c21e94789..56b643e3f0 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts @@ -30,6 +30,36 @@ export const manifest: WrapManifest = { "isInterface": false, "kind": 256, "methods": [ + { + "arguments": [ + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "getChainId", + "required": true, + "return": { + "kind": 34, + "name": "getChainId", + "required": true, + "scalar": { + "kind": 4, + "name": "getChainId", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, { "arguments": [ { @@ -156,23 +186,23 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, @@ -192,58 +222,6 @@ export const manifest: WrapManifest = { }, "type": "Method" }, - { - "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "blockTag", - "scalar": { - "kind": 4, - "name": "blockTag", - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getBalance", - "required": true, - "return": { - "kind": 34, - "name": "getBalance", - "required": true, - "scalar": { - "kind": 4, - "name": "getBalance", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - "type": "Method" - }, { "arguments": [ { @@ -293,6 +271,16 @@ export const manifest: WrapManifest = { "name": "values", "required": true, "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -347,6 +335,16 @@ export const manifest: WrapManifest = { "kind": 34, "name": "args", "type": "[String]" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -369,230 +367,92 @@ export const manifest: WrapManifest = { { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", + "name": "method", "required": true, - "type": "[String]" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", + "kind": 34, + "name": "data", + "required": true, + "scalar": { + "kind": 4, + "name": "data", "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "String" }, + "type": "String" + }, + { "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityPack", + "name": "decodeFunction", "required": true, "return": { - "kind": 34, - "name": "solidityPack", - "required": true, - "scalar": { - "kind": 4, - "name": "solidityPack", + "array": { + "item": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "decodeFunction", "required": true, - "type": "String" + "scalar": { + "kind": 4, + "name": "decodeFunction", + "required": true, + "type": "String" + }, + "type": "[String]" }, - "type": "String" + "kind": 34, + "name": "decodeFunction", + "required": true, + "type": "[String]" }, "type": "Method" }, { "arguments": [ { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "return": { "kind": 34, - "name": "solidityKeccak256", + "name": "getSignerAddress", "required": true, "scalar": { "kind": 4, - "name": "solidityKeccak256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "array": { - "item": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "types", - "required": true, - "scalar": { - "kind": 4, - "name": "types", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "types", - "required": true, - "type": "[String]" - }, - { - "array": { - "item": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "values", - "required": true, - "scalar": { - "kind": 4, - "name": "values", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "values", - "required": true, - "type": "[String]" - } - ], - "kind": 64, - "name": "soliditySha256", - "required": true, - "return": { - "kind": 34, - "name": "soliditySha256", - "required": true, - "scalar": { - "kind": 4, - "name": "soliditySha256", - "required": true, - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getSignerAddress", - "required": true, - "return": { - "kind": 34, - "name": "getSignerAddress", - "required": true, - "scalar": { - "kind": 4, - "name": "getSignerAddress", + "name": "getSignerAddress", "required": true, "type": "String" }, @@ -642,6 +502,18 @@ export const manifest: WrapManifest = { }, { "arguments": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, { "kind": 34, "name": "blockTag", @@ -664,15 +536,15 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "return": { "kind": 34, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "scalar": { "kind": 4, - "name": "getSignerTransactionCount", + "name": "getBalance", "required": true, "type": "BigInt" }, @@ -712,18 +584,6 @@ export const manifest: WrapManifest = { }, { "arguments": [ - { - "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" - }, - "required": true, - "type": "Ethereum_TxRequest" - }, { "kind": 34, "name": "connection", @@ -736,36 +596,24 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", "required": true, "return": { "kind": 34, - "name": "estimateTransactionGas", - "required": true, - "scalar": { - "kind": 4, - "name": "estimateTransactionGas", + "name": "estimateEip1559Fees", + "object": { + "kind": 8192, + "name": "estimateEip1559Fees", "required": true, - "type": "BigInt" + "type": "Ethereum_Eip1559FeesEstimate" }, - "type": "BigInt" + "required": true, + "type": "Ethereum_Eip1559FeesEstimate" }, "type": "Method" }, { "arguments": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "method", @@ -782,22 +630,24 @@ export const manifest: WrapManifest = { "array": { "item": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "kind": 18, - "name": "args", + "name": "params", + "required": true, "scalar": { "kind": 4, - "name": "args", + "name": "params", "required": true, "type": "String" }, "type": "[String]" }, "kind": 34, - "name": "args", + "name": "params", + "required": true, "type": "[String]" }, { @@ -809,28 +659,58 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "sendRpc", + "required": true, + "return": { + "kind": 34, + "name": "sendRpc", + "required": true, + "scalar": { + "kind": 4, + "name": "sendRpc", + "required": true, + "type": "String" + }, + "type": "String" + }, + "type": "Method" + }, + { + "arguments": [ + { + "kind": 34, + "name": "blockTag", + "scalar": { + "kind": 4, + "name": "blockTag", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "return": { "kind": 34, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "scalar": { "kind": 4, - "name": "estimateContractCallGas", + "name": "getSignerTransactionCount", "required": true, "type": "BigInt" }, @@ -851,6 +731,16 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "String" + }, + { + "kind": 34, + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" + }, + "type": "Ethereum_Connection" } ], "kind": 64, @@ -896,9 +786,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "toWei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" }, "type": "Method" }, @@ -912,9 +802,9 @@ export const manifest: WrapManifest = { "kind": 4, "name": "wei", "required": true, - "type": "BigInt" + "type": "String" }, - "type": "BigInt" + "type": "String" } ], "kind": 64, @@ -938,39 +828,57 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "txHash", - "required": true, - "scalar": { - "kind": 4, - "name": "txHash", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" + "required": true, + "type": "Ethereum_TxRequest" }, { "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" + "name": "connection", + "object": { + "kind": 8192, + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "UInt32" + "type": "Ethereum_Connection" + } + ], + "kind": 64, + "name": "estimateTransactionGas", + "required": true, + "return": { + "kind": 34, + "name": "estimateTransactionGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateTransactionGas", + "required": true, + "type": "BigInt" }, + "type": "BigInt" + }, + "type": "Method" + }, + { + "arguments": [ { "kind": 34, - "name": "timeout", + "name": "txHash", "required": true, "scalar": { "kind": 4, - "name": "timeout", + "name": "txHash", "required": true, - "type": "UInt32" + "type": "String" }, - "type": "UInt32" + "type": "String" }, { "kind": 34, @@ -1004,59 +912,15 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", + "name": "tx", + "object": { + "kind": 8192, + "name": "tx", "required": true, - "type": "String" + "type": "Ethereum_TxRequest" }, - "type": "String" - }, - { - "kind": 34, - "name": "event", "required": true, - "scalar": { - "kind": 4, - "name": "event", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "args", - "scalar": { - "kind": 4, - "name": "args", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "args", - "type": "[String]" - }, - { - "kind": 34, - "name": "timeout", - "scalar": { - "kind": 4, - "name": "timeout", - "type": "UInt32" - }, - "type": "UInt32" + "type": "Ethereum_TxRequest" }, { "kind": 34, @@ -1070,19 +934,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, "return": { "kind": 34, - "name": "waitForEvent", + "name": "sendTransaction", "object": { "kind": 8192, - "name": "waitForEvent", + "name": "sendTransaction", "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1090,34 +954,16 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "connection", + "name": "tx", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "tx", + "required": true, + "type": "Ethereum_TxRequest" }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "getNetwork", - "required": true, - "return": { - "kind": 34, - "name": "getNetwork", - "object": { - "kind": 8192, - "name": "getNetwork", "required": true, - "type": "Ethereum_Network" + "type": "Ethereum_TxRequest" }, - "required": true, - "type": "Ethereum_Network" - }, - "type": "Method" - }, - { - "arguments": [ { "kind": 34, "name": "connection", @@ -1130,31 +976,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "requestAccounts", + "name": "sendTransactionAndWait", "required": true, "return": { - "array": { - "item": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "requestAccounts", + "kind": 34, + "name": "sendTransactionAndWait", + "object": { + "kind": 8192, + "name": "sendTransactionAndWait", "required": true, - "scalar": { - "kind": 4, - "name": "requestAccounts", - "required": true, - "type": "String" - }, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, - "kind": 34, - "name": "requestAccounts", "required": true, - "type": "[String]" + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1162,11 +996,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "address", + "name": "abi", "required": true, "scalar": { "kind": 4, - "name": "address", + "name": "abi", "required": true, "type": "String" }, @@ -1174,11 +1008,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "method", + "name": "bytecode", "required": true, "scalar": { "kind": 4, - "name": "method", + "name": "bytecode", "required": true, "type": "String" }, @@ -1208,39 +1042,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethod", + "name": "deployContract", "required": true, "return": { "kind": 34, - "name": "callContractMethod", - "object": { - "kind": 8192, - "name": "callContractMethod", + "name": "deployContract", + "required": true, + "scalar": { + "kind": 4, + "name": "deployContract", "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" + "type": "String" }, "type": "Method" }, @@ -1294,39 +1128,39 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "connection", + "name": "options", "object": { "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" + "name": "options", + "type": "Ethereum_TxOptions" }, - "type": "Ethereum_Connection" + "type": "Ethereum_TxOptions" }, { "kind": 34, - "name": "txOverrides", + "name": "connection", "object": { "kind": 8192, - "name": "txOverrides", - "type": "Ethereum_TxOverrides" + "name": "connection", + "type": "Ethereum_Connection" }, - "type": "Ethereum_TxOverrides" + "type": "Ethereum_Connection" } ], "kind": 64, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", "required": true, "return": { "kind": 34, - "name": "callContractMethodAndWait", - "object": { - "kind": 8192, - "name": "callContractMethodAndWait", + "name": "estimateContractCallGas", + "required": true, + "scalar": { + "kind": 4, + "name": "estimateContractCallGas", "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, - "required": true, - "type": "Ethereum_TxReceipt" + "type": "BigInt" }, "type": "Method" }, @@ -1334,57 +1168,59 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "tx", - "object": { - "kind": 8192, - "name": "tx", + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "String" }, { "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendTransaction", - "required": true, - "return": { - "kind": 34, - "name": "sendTransaction", - "object": { - "kind": 8192, - "name": "sendTransaction", + "name": "method", "required": true, - "type": "Ethereum_TxResponse" + "scalar": { + "kind": 4, + "name": "method", + "required": true, + "type": "String" + }, + "type": "String" }, - "required": true, - "type": "Ethereum_TxResponse" - }, - "type": "Method" - }, - { - "arguments": [ { + "array": { + "item": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "args", + "scalar": { + "kind": 4, + "name": "args", + "required": true, + "type": "String" + }, + "type": "[String]" + }, "kind": 34, - "name": "tx", + "name": "args", + "type": "[String]" + }, + { + "kind": 34, + "name": "options", "object": { "kind": 8192, - "name": "tx", - "required": true, - "type": "Ethereum_TxRequest" + "name": "options", + "type": "Ethereum_TxOptions" }, - "required": true, - "type": "Ethereum_TxRequest" + "type": "Ethereum_TxOptions" }, { "kind": 34, @@ -1398,19 +1234,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, "return": { "kind": 34, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "object": { "kind": 8192, - "name": "sendTransactionAndWait", + "name": "callContractMethod", "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "required": true, - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxResponse" }, "type": "Method" }, @@ -1418,11 +1254,11 @@ export const manifest: WrapManifest = { "arguments": [ { "kind": 34, - "name": "abi", + "name": "address", "required": true, "scalar": { "kind": 4, - "name": "abi", + "name": "address", "required": true, "type": "String" }, @@ -1430,11 +1266,11 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "bytecode", + "name": "method", "required": true, "scalar": { "kind": 4, - "name": "bytecode", + "name": "method", "required": true, "type": "String" }, @@ -1462,6 +1298,16 @@ export const manifest: WrapManifest = { "name": "args", "type": "[String]" }, + { + "kind": 34, + "name": "options", + "object": { + "kind": 8192, + "name": "options", + "type": "Ethereum_TxOptions" + }, + "type": "Ethereum_TxOptions" + }, { "kind": 34, "name": "connection", @@ -1474,19 +1320,19 @@ export const manifest: WrapManifest = { } ], "kind": 64, - "name": "deployContract", + "name": "callContractMethodAndWait", "required": true, "return": { "kind": 34, - "name": "deployContract", - "required": true, - "scalar": { - "kind": 4, - "name": "deployContract", + "name": "callContractMethodAndWait", + "object": { + "kind": 8192, + "name": "callContractMethodAndWait", "required": true, - "type": "String" + "type": "Ethereum_TxReceipt" }, - "type": "String" + "required": true, + "type": "Ethereum_TxReceipt" }, "type": "Method" }, @@ -1573,110 +1419,6 @@ export const manifest: WrapManifest = { "type": "String" }, "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "payload", - "required": true, - "scalar": { - "kind": 4, - "name": "payload", - "required": true, - "type": "JSON" - }, - "type": "JSON" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "signTypedData", - "required": true, - "return": { - "kind": 34, - "name": "signTypedData", - "scalar": { - "kind": 4, - "name": "signTypedData", - "type": "String" - }, - "type": "String" - }, - "type": "Method" - }, - { - "arguments": [ - { - "kind": 34, - "name": "method", - "required": true, - "scalar": { - "kind": 4, - "name": "method", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "params", - "required": true, - "scalar": { - "kind": 4, - "name": "params", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "params", - "required": true, - "type": "[String]" - }, - { - "kind": 34, - "name": "connection", - "object": { - "kind": 8192, - "name": "connection", - "type": "Ethereum_Connection" - }, - "type": "Ethereum_Connection" - } - ], - "kind": 64, - "name": "sendRPC", - "required": true, - "return": { - "kind": 34, - "name": "sendRPC", - "scalar": { - "kind": 4, - "name": "sendRPC", - "type": "String" - }, - "type": "String" - }, - "type": "Method" } ], "namespace": "Ethereum", @@ -1718,9 +1460,10 @@ export const manifest: WrapManifest = { { "kind": 1025, "namespace": "Ethereum", - "nativeType": "TxOverrides", + "nativeType": "TxOptions", "properties": [ { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1731,6 +1474,29 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxFeePerGas", + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", + "kind": 34, + "name": "maxPriorityFeePerGas", + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, "name": "gasPrice", "scalar": { @@ -1741,6 +1507,7 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, "name": "value", "scalar": { @@ -1749,9 +1516,20 @@ export const manifest: WrapManifest = { "type": "BigInt" }, "type": "BigInt" + }, + { + "comment": "Override default nonce", + "kind": 34, + "name": "nonce", + "scalar": { + "kind": 4, + "name": "nonce", + "type": "UInt32" + }, + "type": "UInt32" } ], - "type": "Ethereum_TxOverrides", + "type": "Ethereum_TxOptions", "uri": "ens/ethereum.polywrap.eth" }, { @@ -1787,6 +1565,39 @@ export const manifest: WrapManifest = { "type": "Ethereum_StaticTxResult", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "Eip1559FeesEstimate", + "properties": [ + { + "kind": 34, + "name": "maxFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "kind": 34, + "name": "maxPriorityFeePerGas", + "required": true, + "scalar": { + "kind": 4, + "name": "maxPriorityFeePerGas", + "required": true, + "type": "BigInt" + }, + "type": "BigInt" + } + ], + "type": "Ethereum_Eip1559FeesEstimate", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -1810,19 +1621,62 @@ export const manifest: WrapManifest = { "name": "from", "type": "String" }, - "type": "String" - }, - { + "type": "String" + }, + { + "kind": 34, + "name": "data", + "scalar": { + "kind": 4, + "name": "data", + "type": "String" + }, + "type": "String" + }, + { + "kind": 34, + "name": "type", + "scalar": { + "kind": 4, + "name": "type", + "type": "UInt32" + }, + "type": "UInt32" + }, + { + "kind": 34, + "name": "chainId", + "scalar": { + "kind": 4, + "name": "chainId", + "type": "BigInt" + }, + "type": "BigInt" + }, + { + "array": { + "item": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "kind": 18, + "name": "accessList", + "object": { + "kind": 8192, + "name": "accessList", + "required": true, + "type": "Ethereum_AccessItem" + }, + "type": "[Ethereum_AccessItem]" + }, "kind": 34, - "name": "nonce", - "scalar": { - "kind": 4, - "name": "nonce", - "type": "UInt32" - }, - "type": "UInt32" + "name": "accessList", + "type": "[Ethereum_AccessItem]" }, { + "comment": "Gas supplied for the transaction", "kind": 34, "name": "gasLimit", "scalar": { @@ -1833,51 +1687,56 @@ export const manifest: WrapManifest = { "type": "BigInt" }, { + "comment": " The max total fee to pay per unit of gas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { + "comment": " The gas price paid is baseFeePerGas + maxPriorityFeePerGas.\nThe difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user.\nThis property is ignored when gasPrice is not null.", "kind": 34, - "name": "data", + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" }, { + "comment": " The gas price for legacy transactions.\nIf this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored.", "kind": 34, - "name": "value", + "name": "gasPrice", "scalar": { "kind": 4, - "name": "value", + "name": "gasPrice", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Ether value sent with transaction", "kind": 34, - "name": "chainId", + "name": "value", "scalar": { "kind": 4, - "name": "chainId", + "name": "value", "type": "BigInt" }, "type": "BigInt" }, { + "comment": "Override default nonce", "kind": 34, - "name": "type", + "name": "nonce", "scalar": { "kind": 4, - "name": "type", + "name": "nonce", "type": "UInt32" }, "type": "UInt32" @@ -1886,6 +1745,51 @@ export const manifest: WrapManifest = { "type": "Ethereum_TxRequest", "uri": "ens/ethereum.polywrap.eth" }, + { + "kind": 1025, + "namespace": "Ethereum", + "nativeType": "AccessItem", + "properties": [ + { + "kind": 34, + "name": "address", + "required": true, + "scalar": { + "kind": 4, + "name": "address", + "required": true, + "type": "String" + }, + "type": "String" + }, + { + "array": { + "item": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "kind": 18, + "name": "storageKeys", + "required": true, + "scalar": { + "kind": 4, + "name": "storageKeys", + "required": true, + "type": "String" + }, + "type": "[String]" + }, + "kind": 34, + "name": "storageKeys", + "required": true, + "type": "[String]" + } + ], + "type": "Ethereum_AccessItem", + "uri": "ens/ethereum.polywrap.eth" + }, { "kind": 1025, "namespace": "Ethereum", @@ -2069,18 +1973,6 @@ export const manifest: WrapManifest = { }, "type": "BigInt" }, - { - "kind": 34, - "name": "byzantium", - "required": true, - "scalar": { - "kind": 4, - "name": "byzantium", - "required": true, - "type": "Boolean" - }, - "type": "Boolean" - }, { "kind": 34, "name": "type", @@ -2236,94 +2128,6 @@ export const manifest: WrapManifest = { "type": "Ethereum_Log", "uri": "ens/ethereum.polywrap.eth" }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "EventNotification", - "properties": [ - { - "kind": 34, - "name": "data", - "required": true, - "scalar": { - "kind": 4, - "name": "data", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "log", - "object": { - "kind": 8192, - "name": "log", - "required": true, - "type": "Ethereum_Log" - }, - "required": true, - "type": "Ethereum_Log" - } - ], - "type": "Ethereum_EventNotification", - "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Network", - "properties": [ - { - "kind": 34, - "name": "name", - "required": true, - "scalar": { - "kind": 4, - "name": "name", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "kind": 34, - "name": "chainId", - "required": true, - "scalar": { - "kind": 4, - "name": "chainId", - "required": true, - "type": "BigInt" - }, - "type": "BigInt" - }, - { - "kind": 34, - "name": "ensAddress", - "scalar": { - "kind": 4, - "name": "ensAddress", - "type": "String" - }, - "type": "String" - } - ], - "type": "Ethereum_Network", - "uri": "ens/ethereum.polywrap.eth" - }, { "kind": 1025, "namespace": "Ethereum", @@ -2389,25 +2193,33 @@ export const manifest: WrapManifest = { }, { "kind": 34, - "name": "gasPrice", + "name": "maxFeePerGas", "scalar": { "kind": 4, - "name": "gasPrice", + "name": "maxFeePerGas", "type": "BigInt" }, "type": "BigInt" }, { "kind": 34, - "name": "data", - "required": true, + "name": "maxPriorityFeePerGas", "scalar": { "kind": 4, - "name": "data", - "required": true, - "type": "String" + "name": "maxPriorityFeePerGas", + "type": "BigInt" }, - "type": "String" + "type": "BigInt" + }, + { + "kind": 34, + "name": "gasPrice", + "scalar": { + "kind": 4, + "name": "gasPrice", + "type": "BigInt" + }, + "type": "BigInt" }, { "kind": 34, @@ -2463,28 +2275,6 @@ export const manifest: WrapManifest = { }, "type": "UInt32" }, - { - "kind": 34, - "name": "confirmations", - "required": true, - "scalar": { - "kind": 4, - "name": "confirmations", - "required": true, - "type": "UInt32" - }, - "type": "UInt32" - }, - { - "kind": 34, - "name": "raw", - "scalar": { - "kind": 4, - "name": "raw", - "type": "String" - }, - "type": "String" - }, { "kind": 34, "name": "r", @@ -2531,7 +2321,7 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, "kind": 18, "name": "accessList", @@ -2539,62 +2329,17 @@ export const manifest: WrapManifest = { "kind": 8192, "name": "accessList", "required": true, - "type": "Ethereum_Access" + "type": "Ethereum_AccessItem" }, - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" }, "kind": 34, "name": "accessList", - "type": "[Ethereum_Access]" + "type": "[Ethereum_AccessItem]" } ], "type": "Ethereum_TxResponse", "uri": "ens/ethereum.polywrap.eth" - }, - { - "kind": 1025, - "namespace": "Ethereum", - "nativeType": "Access", - "properties": [ - { - "kind": 34, - "name": "address", - "required": true, - "scalar": { - "kind": 4, - "name": "address", - "required": true, - "type": "String" - }, - "type": "String" - }, - { - "array": { - "item": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "kind": 18, - "name": "storageKeys", - "required": true, - "scalar": { - "kind": 4, - "name": "storageKeys", - "required": true, - "type": "String" - }, - "type": "[String]" - }, - "kind": 34, - "name": "storageKeys", - "required": true, - "type": "[String]" - } - ], - "type": "Ethereum_Access", - "uri": "ens/ethereum.polywrap.eth" } ], "moduleType": { @@ -2606,31 +2351,28 @@ export const manifest: WrapManifest = { "type": "Ethereum_Connection" }, { - "type": "Ethereum_TxOverrides" + "type": "Ethereum_TxOptions" }, { "type": "Ethereum_StaticTxResult" }, { - "type": "Ethereum_TxRequest" + "type": "Ethereum_Eip1559FeesEstimate" }, { - "type": "Ethereum_TxReceipt" + "type": "Ethereum_TxRequest" }, { - "type": "Ethereum_Log" + "type": "Ethereum_AccessItem" }, { - "type": "Ethereum_EventNotification" + "type": "Ethereum_TxReceipt" }, { - "type": "Ethereum_Network" + "type": "Ethereum_Log" }, { "type": "Ethereum_TxResponse" - }, - { - "type": "Ethereum_Access" } ], "kind": 128, From d1ea73840e16058ddd753f759f016419297c7818 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 22:35:37 +0530 Subject: [PATCH 19/51] adjusted docgen test for ethereum wrapper (output is malformed due to docgen bug) --- .../004-app/expected/docs/Ethereum_env.md | 15 --- .../004-app/expected/docs/Ethereum_module.md | 110 ++++++------------ .../004-app/expected/docs/Ethereum_objects.md | 67 ++++++----- 3 files changed, 72 insertions(+), 120 deletions(-) delete mode 100644 packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_env.md diff --git a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_env.md b/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_env.md deleted file mode 100644 index 369e322563..0000000000 --- a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_env.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -id: Ethereum_env -title: Ethereum Env Type -sidebar_position: 4 ---- - - -### Ethereum_Env - -```graphql -type Ethereum_Env { - connection: Ethereum_Connection -} -``` - diff --git a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_module.md b/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_module.md index 80e7c88274..30ec3c9c04 100644 --- a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_module.md +++ b/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_module.md @@ -9,8 +9,6 @@ sidebar_position: 1 ```graphql awaitTransaction( txHash: String! - confirmations: UInt32! - timeout: UInt32! connection: Ethereum_Connection ): Ethereum_TxReceipt! ``` @@ -22,8 +20,8 @@ callContractMethod( address: String! method: String! args: String[] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): Ethereum_TxResponse! ``` @@ -34,8 +32,8 @@ callContractMethodAndWait( address: String! method: String! args: String[] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): Ethereum_TxReceipt! ``` @@ -46,8 +44,8 @@ callContractStatic( address: String! method: String! args: String[] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): Ethereum_StaticTxResult! ``` @@ -67,9 +65,20 @@ callContractView( ```graphql checkAddress( address: String! + connection: Ethereum_Connection ): Boolean! ``` +### decodeFunction + +```graphql +decodeFunction( + method: String! + data: String! + connection: Ethereum_Connection +): String[]! +``` + ### deployContract ```graphql @@ -77,6 +86,7 @@ deployContract( abi: String! bytecode: String! args: String[] + options: Ethereum_TxOptions connection: Ethereum_Connection ): String! ``` @@ -87,6 +97,7 @@ deployContract( encodeFunction( method: String! args: String[] + connection: Ethereum_Connection ): String! ``` @@ -96,6 +107,7 @@ encodeFunction( encodeParams( types: String[]! values: String[]! + connection: Ethereum_Connection ): String! ``` @@ -106,11 +118,19 @@ estimateContractCallGas( address: String! method: String! args: String[] + options: Ethereum_TxOptions connection: Ethereum_Connection - txOverrides: Ethereum_TxOverrides ): BigInt! ``` +### estimateEip1559Fees + +```graphql +estimateEip1559Fees( + connection: Ethereum_Connection +): Ethereum_Eip1559FeesEstimate! +``` + ### estimateTransactionGas ```graphql @@ -130,20 +150,20 @@ getBalance( ): BigInt! ``` -### getGasPrice +### getChainId ```graphql -getGasPrice( +getChainId( connection: Ethereum_Connection -): BigInt! +): String! ``` -### getNetwork +### getGasPrice ```graphql -getNetwork( +getGasPrice( connection: Ethereum_Connection -): Ethereum_Network! +): BigInt! ``` ### getSignerAddress @@ -172,22 +192,14 @@ getSignerTransactionCount( ): BigInt! ``` -### requestAccounts - -```graphql -requestAccounts( - connection: Ethereum_Connection -): String[]! -``` - -### sendRPC +### sendRpc ```graphql -sendRPC( +sendRpc( method: String! params: String[]! connection: Ethereum_Connection -): String +): String! ``` ### sendTransaction @@ -226,47 +238,11 @@ signMessageBytes( ): String! ``` -### signTypedData - -```graphql -signTypedData( - payload: JSON! - connection: Ethereum_Connection -): String -``` - -### solidityKeccak256 - -```graphql -solidityKeccak256( - types: String[]! - values: String[]! -): String! -``` - -### solidityPack - -```graphql -solidityPack( - types: String[]! - values: String[]! -): String! -``` - -### soliditySha256 - -```graphql -soliditySha256( - types: String[]! - values: String[]! -): String! -``` - ### toEth ```graphql toEth( - wei: BigInt! + wei: String! ): String! ``` @@ -275,18 +251,6 @@ toEth( ```graphql toWei( eth: String! -): BigInt! -``` - -### waitForEvent - -```graphql -waitForEvent( - address: String! - event: String! - args: String[] - timeout: UInt32 - connection: Ethereum_Connection -): Ethereum_EventNotification! +): String! ``` diff --git a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_objects.md b/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_objects.md index a6d65d3d74..0bee987edc 100644 --- a/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_objects.md +++ b/packages/test-cases/cases/cli/docgen/004-app/expected/docs/Ethereum_objects.md @@ -5,10 +5,10 @@ sidebar_position: 2 --- -### Ethereum_Access +### Ethereum_AccessItem ```graphql -type Ethereum_Access { +type Ethereum_AccessItem { address: String! storageKeys: String[]! } @@ -23,13 +23,12 @@ type Ethereum_Connection { } ``` -### Ethereum_EventNotification +### Ethereum_Eip1559FeesEstimate ```graphql -type Ethereum_EventNotification { - data: String! - address: String! - log: Ethereum_Log! +type Ethereum_Eip1559FeesEstimate { + maxFeePerGas: BigInt! + maxPriorityFeePerGas: BigInt! } ``` @@ -49,16 +48,6 @@ type Ethereum_Log { } ``` -### Ethereum_Network - -```graphql -type Ethereum_Network { - name: String! - chainId: BigInt! - ensAddress: String -} -``` - ### Ethereum_StaticTxResult ```graphql @@ -68,13 +57,21 @@ type Ethereum_StaticTxResult { } ``` -### Ethereum_TxOverrides +### Ethereum_TxOptions ```graphql -type Ethereum_TxOverrides { - gasLimit: BigInt - gasPrice: BigInt - value: BigInt +type Ethereum_TxOptions { + gasLimit: BigInt # Gas supplied for the transaction + maxFeePerGas: BigInt # The max total fee to pay per unit of gas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + maxPriorityFeePerGas: BigInt # The gas price paid is baseFeePerGas + maxPriorityFeePerGas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + gasPrice: BigInt # The gas price for legacy transactions. +If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + value: BigInt # Ether value sent with transaction + nonce: UInt32 # Override default nonce } ``` @@ -96,7 +93,6 @@ type Ethereum_TxReceipt { confirmations: UInt32! cumulativeGasUsed: BigInt! effectiveGasPrice: BigInt! - byzantium: Boolean! type: UInt32! status: UInt32 } @@ -108,13 +104,21 @@ type Ethereum_TxReceipt { type Ethereum_TxRequest { to: String from: String - nonce: UInt32 - gasLimit: BigInt - gasPrice: BigInt data: String - value: BigInt - chainId: BigInt type: UInt32 + chainId: BigInt + accessList: Ethereum_AccessItem[] + gasLimit: BigInt # Gas supplied for the transaction + maxFeePerGas: BigInt # The max total fee to pay per unit of gas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + maxPriorityFeePerGas: BigInt # The gas price paid is baseFeePerGas + maxPriorityFeePerGas. +The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. +This property is ignored when gasPrice is not null. + gasPrice: BigInt # The gas price for legacy transactions. +If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + value: BigInt # Ether value sent with transaction + nonce: UInt32 # Override default nonce } ``` @@ -127,20 +131,19 @@ type Ethereum_TxResponse { from: String! nonce: UInt32! gasLimit: BigInt! + maxFeePerGas: BigInt + maxPriorityFeePerGas: BigInt gasPrice: BigInt - data: String! value: BigInt! chainId: BigInt! blockNumber: BigInt blockHash: String timestamp: UInt32 - confirmations: UInt32! - raw: String r: String s: String v: UInt32 type: UInt32 - accessList: Ethereum_Access[] + accessList: Ethereum_AccessItem[] } ``` From 099c1cf3687666cc1c5f17fc154a17662b8281b4 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 6 Jan 2023 22:45:23 +0530 Subject: [PATCH 20/51] fixed client sanity test for change in default config bundle --- .../client/src/__tests__/core/sanity.spec.ts | 51 +++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/packages/js/client/src/__tests__/core/sanity.spec.ts b/packages/js/client/src/__tests__/core/sanity.spec.ts index 010845436f..28fd63487c 100644 --- a/packages/js/client/src/__tests__/core/sanity.spec.ts +++ b/packages/js/client/src/__tests__/core/sanity.spec.ts @@ -11,7 +11,7 @@ import { buildWrapper } from "@polywrap/test-env-js"; import { ResultErr } from "@polywrap/result"; import { StaticResolver, UriResolverLike } from "@polywrap/uri-resolvers-js"; import { WasmPackage } from "@polywrap/wasm-js"; -import { defaultInterfaces } from "@polywrap/client-config-builder-js"; +import { defaultInterfaces, defaultPackages, defaultWrappers } from "@polywrap/client-config-builder-js"; jest.setTimeout(200000); @@ -19,31 +19,30 @@ describe("sanity", () => { test("default client config", () => { const client = new PolywrapClient(); - new Uri("wrap://ens/http-resolver.polywrap.eth"), - expect(client.getInterfaces()).toStrictEqual([ - { - interface: ExtendableUriResolver.extInterfaceUri, - implementations: [ - new Uri("wrap://ens/ipfs-resolver.polywrap.eth"), - new Uri("wrap://ens/ens-resolver.polywrap.eth"), - new Uri("wrap://ens/fs-resolver.polywrap.eth"), - new Uri("wrap://ens/http-resolver.polywrap.eth"), - new Uri("wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY"), - ], - }, - { - interface: new Uri("wrap://ens/wrappers.polywrap.eth:logger@1.0.0"), - implementations: [new Uri("wrap://plugin/logger")], - }, - { - interface: new Uri(defaultInterfaces.concurrent), - implementations: [new Uri("wrap://plugin/concurrent")], - }, - { - interface: new Uri(defaultInterfaces.ethereumProvider), - implementations: [new Uri("wrap://plugin/ethereum-provider")], - }, - ]); + expect(client.getInterfaces()).toStrictEqual([ + { + interface: ExtendableUriResolver.extInterfaceUri, + implementations: [ + new Uri(defaultPackages.ipfsResolver), + new Uri(defaultPackages.ensResolver), + new Uri(defaultPackages.fileSystemResolver), + new Uri(defaultPackages.httpResolver), + new Uri(defaultWrappers.ensTextRecordResolver), + ], + }, + { + interface: new Uri(defaultInterfaces.logger), + implementations: [new Uri(defaultPackages.logger)], + }, + { + interface: new Uri(defaultInterfaces.concurrent), + implementations: [new Uri(defaultPackages.concurrent)], + }, + { + interface: new Uri(defaultInterfaces.ethereumProvider), + implementations: [new Uri(defaultPackages.ethereumProvider)], + }, + ]); }); test("validate requested uri is available", async () => { From f00bb722e757d5d99c5d27f2ece885dab17c44b4 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Mon, 9 Jan 2023 23:56:23 +0530 Subject: [PATCH 21/51] updated ens text record resolver ipfs URI in uri resolution tests; updated ethereum wrapper version with fix (wrapper no longer sets nonce; now lets provider do it) --- .../src/bundles/getDefaultConfig.ts | 2 +- ...can resolve a URI resolver extension wrapper.json | 8 ++++---- ... redirecting by a URI resolver extension - 1.json | 8 ++++---- ... redirecting by a URI resolver extension - 2.json | 2 +- ... infinite recursion when resolved at runtime.json | 8 ++++---- ...lution after URI resolver extension redirect.json | 8 ++++---- .../core/uri-resolution/histories/sanity.json | 12 ++++++------ 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 826d17c5f9..203f07f742 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -27,7 +27,7 @@ export const defaultWrappers = { graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", ensTextRecordResolver: "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy", - ethereum: "wrap://ipfs/Qmf38QJV1kS2qd1DwLB5zvcDXmf2D8EdrzdBTc4oYbPKeJ", + ethereum: "wrap://ipfs/QmdEMfomFW1XqoxcsCEnhujn9ebQezUXw8pmwLtecyR6F6", }; export const defaultPackages = { diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json index 9a5c4ebe3e..84930b7fdf 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json @@ -33,14 +33,14 @@ "wrap://ens/http-resolver.polywrap.eth => StaticResolver - Package (wrap://ens/http-resolver.polywrap.eth) => package (wrap://ens/http-resolver.polywrap.eth)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => UriResolverAggregator => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ExtendableUriResolver => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ "wrap://ens/ipfs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ipfs-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json index 882ae8f9d1..2000510037 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json @@ -33,14 +33,14 @@ "wrap://ens/http-resolver.polywrap.eth => StaticResolver - Package (wrap://ens/http-resolver.polywrap.eth) => package (wrap://ens/http-resolver.polywrap.eth)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => UriResolverAggregator => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ExtendableUriResolver => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ "wrap://ens/ipfs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ipfs-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json index 07434edc37..7e06efee6a 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json @@ -9,7 +9,7 @@ "wrap://ens/ens-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ens-resolver.polywrap.eth)", "wrap://ens/fs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/fs-resolver.polywrap.eth)", "wrap://ens/http-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/http-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", "wrap://file/$root-wrapper-dir/simple-fs-resolver/build => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://file/$root-wrapper-dir/simple-fs-resolver/build)", "wrap://file/$root-wrapper-dir/simple-redirect-resolver/build => PackageToWrapperCacheResolver => wrapper (wrap://file/$root-wrapper-dir/simple-redirect-resolver/build)", [ diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json index 897db7b2a9..1c60f8ac9d 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json @@ -33,14 +33,14 @@ "wrap://ens/http-resolver.polywrap.eth => StaticResolver - Package (wrap://ens/http-resolver.polywrap.eth) => package (wrap://ens/http-resolver.polywrap.eth)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => UriResolverAggregator => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ExtendableUriResolver => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ "wrap://ens/ipfs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ipfs-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json index 55dc5f9286..4f8e9ff819 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json @@ -33,14 +33,14 @@ "wrap://ens/http-resolver.polywrap.eth => StaticResolver - Package (wrap://ens/http-resolver.polywrap.eth) => package (wrap://ens/http-resolver.polywrap.eth)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => UriResolverAggregator => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ExtendableUriResolver => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ "wrap://ens/ipfs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ipfs-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index cea860ac17..74819b8145 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -38,19 +38,19 @@ ] ], "wrap://ens/uri.eth => ResolverExtension (wrap://ens/http-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => UriResolverAggregator => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => StaticResolver - Miss", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => StaticResolver - Miss", + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ExtendableUriResolver => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)", [ "wrap://ens/ipfs-resolver.polywrap.eth => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ens/ipfs-resolver.polywrap.eth)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy => ResolverExtension (wrap://ens/ipfs-resolver.polywrap.eth) => package (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ], - "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy)" ] ] ] From 2e817dd1ea547dc8cb4476dc1562fe10e94d053e Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 10 Jan 2023 17:11:55 +0530 Subject: [PATCH 22/51] added defaultIpfsProviders to client config in client tests --- .../ens-recursive-name-register/index.ts | 5 +++-- .../cli/src/lib/defaults/deploy-modules/ens/index.ts | 5 +++-- packages/cli/src/lib/test-env/client-config.ts | 5 +++-- .../src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 12 +++++++++--- .../ens-resolver/src/__tests__/helpers/getClient.ts | 6 +++--- 5 files changed, 21 insertions(+), 12 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index dcf54cfd76..f74f2cca10 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -15,6 +15,7 @@ import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; import { defaultInterfaces, + defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; @@ -73,7 +74,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { ], packages: [ { - uri: "wrap://plugin/ethereum-provider", + uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections: new Connections({ networks: { @@ -90,7 +91,7 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { interfaces: [ { interface: defaultInterfaces.ethereumProvider, - implementations: ["wrap://plugin/ethereum-provider"], + implementations: [defaultPackages.ethereumProvider], }, ], }); diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 6ced4c952c..746b05faec 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -15,6 +15,7 @@ import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; import { defaultInterfaces, + defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; @@ -70,7 +71,7 @@ class ENSPublisher implements Deployer { ], packages: [ { - uri: "wrap://plugin/ethereum-provider", + uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections: new Connections({ networks: { @@ -87,7 +88,7 @@ class ENSPublisher implements Deployer { interfaces: [ { interface: defaultInterfaces.ethereumProvider, - implementations: ["wrap://plugin/ethereum-provider"], + implementations: [defaultPackages.ethereumProvider], }, ], }); diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index ef42118cfd..540fa218b0 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -4,6 +4,7 @@ import { PolywrapClientConfig } from "@polywrap/client-js"; import { defaultInterfaces, defaultIpfsProviders, + defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; @@ -40,7 +41,7 @@ export function getTestEnvClientConfig(): Partial { ], packages: [ { - uri: "wrap://plugin/ethereum-provider", + uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections: new Connections({ networks: { @@ -81,7 +82,7 @@ export function getTestEnvClientConfig(): Partial { interfaces: [ { interface: defaultInterfaces.ethereumProvider, - implementations: ["wrap://plugin/ethereum-provider"], + implementations: [defaultPackages.ethereumProvider], }, ], }; diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index b36c7ce449..522394936e 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -16,7 +16,12 @@ import { WrapperCache, } from "@polywrap/uri-resolvers-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { defaultInterfaces, defaultWrappers } from "@polywrap/client-config-builder-js"; +import { + defaultInterfaces, + defaultIpfsProviders, + defaultPackages, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; export const getClientWithEnsAndIpfs = () => { const connections: Connections = new Connections({ @@ -34,6 +39,7 @@ export const getClientWithEnsAndIpfs = () => { uri: "wrap://ens/ipfs.polywrap.eth", env: { provider: providers.ipfs, + fallbackProviders: defaultIpfsProviders, }, }, ], @@ -48,7 +54,7 @@ export const getClientWithEnsAndIpfs = () => { }, { interface: defaultInterfaces.ethereumProvider, - implementations: ["wrap://plugin/ethereum-provider"], + implementations: [defaultPackages.ethereumProvider], }, ], resolver: RecursiveResolver.from([ @@ -59,7 +65,7 @@ export const getClientWithEnsAndIpfs = () => { PackageToWrapperCacheResolver.from( [ { - uri: "wrap://plugin/ethereum-provider", + uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections }), }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index 3b714698e9..f38a82e8bc 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -15,7 +15,7 @@ import { PolywrapClient } from "@polywrap/client-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { defaultInterfaces, defaultWrappers } from "@polywrap/client-config-builder-js"; +import { defaultInterfaces, defaultPackages, defaultWrappers } from "@polywrap/client-config-builder-js"; export const getClient = () => { return new PolywrapClient( @@ -31,7 +31,7 @@ export const getClient = () => { }, { interface: defaultInterfaces.ethereumProvider, - implementations: ["wrap://plugin/ethereum-provider"], + implementations: [defaultPackages.ethereumProvider], }, ], resolver: RecursiveResolver.from( @@ -51,7 +51,7 @@ export const getClient = () => { package: ipfsPlugin({}), }, { - uri: "wrap://plugin/ethereum-provider", + uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections: new Connections({ networks: { From 4e4d866e678d33f755df512e1a41aebb80c2e6d2 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 11 Jan 2023 18:03:23 +0530 Subject: [PATCH 23/51] update yarn lock --- yarn.lock | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 261 insertions(+), 14 deletions(-) diff --git a/yarn.lock b/yarn.lock index 4eac4b111d..08a99cf37e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1383,7 +1383,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -1396,7 +1396,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -1418,7 +1418,7 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/rlp" "^5.0.3" -"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -1444,7 +1444,7 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -1452,7 +1452,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -1468,7 +1468,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== @@ -1491,7 +1491,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -1563,7 +1563,7 @@ dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== @@ -1578,13 +1578,38 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" +"@ethersproject/providers@5.0.7": + version "5.0.7" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" + integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== + dependencies: + "@ethersproject/abstract-provider" "^5.0.3" + "@ethersproject/abstract-signer" "^5.0.3" + "@ethersproject/address" "^5.0.3" + "@ethersproject/basex" "^5.0.3" + "@ethersproject/bignumber" "^5.0.6" + "@ethersproject/bytes" "^5.0.4" + "@ethersproject/constants" "^5.0.3" + "@ethersproject/hash" "^5.0.3" + "@ethersproject/logger" "^5.0.5" + "@ethersproject/networks" "^5.0.3" + "@ethersproject/properties" "^5.0.3" + "@ethersproject/random" "^5.0.3" + "@ethersproject/rlp" "^5.0.3" + "@ethersproject/sha2" "^5.0.3" + "@ethersproject/strings" "^5.0.3" + "@ethersproject/transactions" "^5.0.3" + "@ethersproject/web" "^5.0.4" + bech32 "1.1.4" + ws "7.2.3" + "@ethersproject/providers@5.6.8": version "5.6.8" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" @@ -1663,7 +1688,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -1679,7 +1704,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -1712,7 +1737,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -1721,7 +1746,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -1798,7 +1823,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -3307,6 +3332,57 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz#ed410c9eb0070491cff9fe914246ce41f88d6f74" integrity sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ== +"@polywrap/asyncify-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/asyncify-js/-/asyncify-js-0.10.0-pre.6.tgz#6f756bc2456da6df095652dd61b19fc4fc5a39af" + integrity sha512-dC/W7o1KpQLlag2ojoyHYFuUjuD2VGrMcW4PFJsXmXtMsNu1N9kzOEQsnVKF+oi6MPQB3rDkdkZ2x/RIs5hqzg== + +"@polywrap/client-config-builder-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/client-config-builder-js/-/client-config-builder-js-0.10.0-pre.6.tgz#1e24ed932c86531b77836c5d948a22374a78e9f2" + integrity sha512-qZaJN5RkOTT7+QRh9AWEYDr6zLpK6fVCprb8DXNnBB5NIiJ6TcdyUx6mp/aJrFSI7a8/6j0aVb8j6YPownl7yw== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/ens-resolver-plugin-js" "0.10.0-pre.6" + "@polywrap/ethereum-plugin-js" "0.10.0-pre.6" + "@polywrap/fs-plugin-js" "0.10.0-pre.6" + "@polywrap/fs-resolver-plugin-js" "0.10.0-pre.6" + "@polywrap/http-plugin-js" "0.10.0-pre.6" + "@polywrap/http-resolver-plugin-js" "0.10.0-pre.6" + "@polywrap/ipfs-plugin-js" "0.10.0-pre.6" + "@polywrap/ipfs-resolver-plugin-js" "0.10.0-pre.6" + "@polywrap/logger-plugin-js" "0.10.0" + "@polywrap/uri-resolver-extensions-js" "0.10.0-pre.6" + "@polywrap/uri-resolvers-js" "0.10.0-pre.6" + concurrent-plugin-js "0.1.1" + +"@polywrap/client-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/client-js/-/client-js-0.10.0-pre.6.tgz#560f9dcc860142d3b00beaf9518159acb5df940f" + integrity sha512-HMRRqL5M5QsUeYathJHTqE656IKu4xikQCNxZufJd6ZqTx+7cKeExtfhaGteMVo9SE7AuCl5wcL2rmw24PE5Ew== + dependencies: + "@polywrap/client-config-builder-js" "0.10.0-pre.6" + "@polywrap/core-client-js" "0.10.0-pre.6" + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/msgpack-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/tracing-js" "0.10.0-pre.6" + "@polywrap/uri-resolver-extensions-js" "0.10.0-pre.6" + "@polywrap/uri-resolvers-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + +"@polywrap/core-client-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/core-client-js/-/core-client-js-0.10.0-pre.6.tgz#5d56c630c7c5b0273aa27b4fc9024f5cb24bd0b4" + integrity sha512-+RqHTq3cFNVAGrh/Yk1+8ZRvhakDV2x8A9ZcMRtugRubZktKc7N4WRhc9OMiIORBxts072BdQRmVGKk/BXV4xQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/msgpack-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/tracing-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + "@polywrap/core-js@0.10.0-pre.5": version "0.10.0-pre.5" resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.5.tgz#8457f168235faae19342a87aed6ddce44a56fb59" @@ -3318,6 +3394,73 @@ graphql "15.5.0" graphql-tag "2.10.4" +"@polywrap/core-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/core-js/-/core-js-0.10.0-pre.6.tgz#7751267b8472473bf3774d441fd75ebe348685e3" + integrity sha512-JP9qk0gS1r1fyRqe2Wp/3tzyDEn3DqeVSC+53aBNEk8uMLIJSUI184JXusVNVafwbLgMxOcJ6vZlhb0x5orrWQ== + dependencies: + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/tracing-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + graphql "15.5.0" + graphql-tag "2.10.4" + +"@polywrap/ens-resolver-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/ens-resolver-plugin-js/-/ens-resolver-plugin-js-0.10.0-pre.6.tgz#bebd73f8a1221f8fc78f100d1d1be4cfae999572" + integrity sha512-24QsSaQwVwY30/KKqVxeNIOnrGxeAPo/TOeeWGB8sBxMxhwXArm/L0ldN7Bgr3H4OYjtyRY2qqx1UHyK8ty97w== + dependencies: + "@ethersproject/address" "5.0.7" + "@ethersproject/basex" "5.0.7" + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + ethers "5.0.7" + +"@polywrap/ethereum-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/ethereum-plugin-js/-/ethereum-plugin-js-0.10.0-pre.6.tgz#a7652e518829543512bed44ce956fea9ae9646b7" + integrity sha512-tIhYCg1kZvL50dHFFgv8SUVYvGUo2rDW9Ge8pLuLJnY9uIsBzv4ZqBsyTG6VKTb03RpxI4Y6gEGGNc4u10xQvw== + dependencies: + "@ethersproject/address" "5.0.7" + "@ethersproject/providers" "5.0.7" + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + ethers "5.0.7" + +"@polywrap/fs-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/fs-plugin-js/-/fs-plugin-js-0.10.0-pre.6.tgz#f0277875e0273abdccf0f1e851848527997b7733" + integrity sha512-UvEkSw6mD/JTExwaGWxJ3byfxJBR3lFebLVrYEEscoMe0el0dHseO/PJuhP+Kih7AdRo5zbsNvG+KIqKobI5qg== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + +"@polywrap/fs-resolver-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/fs-resolver-plugin-js/-/fs-resolver-plugin-js-0.10.0-pre.6.tgz#94b48d2eb87d940a2b1cf5822b3b6cc8ca7f606c" + integrity sha512-oXRO/9X0NtXwor4QFzQxFJfkbuoVG5mCW2BgMPwtxihXvmJow6bvsSz95Uhy6c4bKmoHHYo/ORLbsAi/Gg5JTA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + +"@polywrap/http-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/http-plugin-js/-/http-plugin-js-0.10.0-pre.6.tgz#331be6aec3249c90e355078f49e37d0e187b0d0f" + integrity sha512-6osndYNTcypf8dAi0BHi/4IixSxq2Ti3zgJedRYSwdxjE0uJGQWPSlm+dQlmzI4vYWmXhDpxETpvXizpoOfLMQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + axios "0.21.4" + +"@polywrap/http-resolver-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/http-resolver-plugin-js/-/http-resolver-plugin-js-0.10.0-pre.6.tgz#4b5c6a60a814f3900ef9cba60d6d302c41669a4d" + integrity sha512-Y0VLQ3PuCtfe0+1YlsTFRj8DL67K0HcFwaWvYQ0RfMM0iV2B3riQHk0VjrFoEXlU+qSmuG5lsj56IcGF1kuMLQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/plugin-js" "0.10.0-pre.6" + abort-controller "3.0.0" + "@polywrap/ipfs-http-client-lite@0.3.0": version "0.3.0" resolved "https://registry.yarnpkg.com/@polywrap/ipfs-http-client-lite/-/ipfs-http-client-lite-0.3.0.tgz#b8caf4b4f39413e591aff4367023a04cb6df83a1" @@ -3334,6 +3477,29 @@ pull-stream-to-async-iterator "^1.0.2" querystring "^0.2.0" +"@polywrap/ipfs-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/ipfs-plugin-js/-/ipfs-plugin-js-0.10.0-pre.6.tgz#a3f19eeff44279202525b998ea4a1b6b1002aacc" + integrity sha512-7J6ejZr9Y7RZJkQjQaMt3zAYr1FzrNOeYt7oD/EZBix0fbzxTLz2ZTIhRyU3M0yaTv8uETi4z3IZrXZmqEl1EQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/ipfs-http-client-lite" "0.3.0" + "@polywrap/plugin-js" "0.10.0-pre.6" + abort-controller "3.0.0" + is-ipfs "1.0.3" + multiformats "9.7.0" + +"@polywrap/ipfs-resolver-plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/ipfs-resolver-plugin-js/-/ipfs-resolver-plugin-js-0.10.0-pre.6.tgz#9a261e3973d0ef84b5fe230fcfd65a0d09618148" + integrity sha512-w3iovKnbDv5MHVc6aBkdoj7M90EBMB0B4N1WF7inPS+yJp6sKGQGNf0po3inQ8VZam7m0n1Bj9T6CWURoV/CIQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/ipfs-http-client-lite" "0.3.0" + "@polywrap/plugin-js" "0.10.0-pre.6" + abort-controller "3.0.0" + is-ipfs "1.0.3" + "@polywrap/logger-plugin-js@0.10.0": version "0.10.0" resolved "https://registry.yarnpkg.com/@polywrap/logger-plugin-js/-/logger-plugin-js-0.10.0.tgz#9fc10532e86642d7e8eb3fc7a34494cb077610bd" @@ -3349,6 +3515,13 @@ dependencies: "@msgpack/msgpack" "2.7.2" +"@polywrap/msgpack-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/msgpack-js/-/msgpack-js-0.10.0-pre.6.tgz#22f884cbadc959c685851f0981b4616d28f106ff" + integrity sha512-RlUAh/6IKAnDdEDxDwWCzwQswd3DU7JUaD0PpWok45BemxBTNmLMcSkKKlK8zXntVHGR/9E8UqadsDjQDxgEUg== + dependencies: + "@msgpack/msgpack" "2.7.2" + "@polywrap/plugin-js@0.10.0-pre.5": version "0.10.0-pre.5" resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.5.tgz#5bd416cb7f52f001144222e5bc83d1e94ff23cb4" @@ -3360,6 +3533,17 @@ "@polywrap/tracing-js" "0.10.0-pre.5" "@polywrap/wrap-manifest-types-js" "0.10.0-pre.5" +"@polywrap/plugin-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/plugin-js/-/plugin-js-0.10.0-pre.6.tgz#ab51539d3ece260aebb028edf6cb4e57504a031d" + integrity sha512-7lxNwv3btb4KsA4ol0lC381YPZLdqAnjQTOa3FiGGYdlpFs8gB0FUTcIZZ2xrROCksliDEuX5Mt8Y8J2X8q9gA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/msgpack-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/tracing-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + "@polywrap/react@0.10.0-pre.6": version "0.10.0-pre.6" resolved "https://registry.yarnpkg.com/@polywrap/react/-/react-0.10.0-pre.6.tgz#10bc4aedb0d3ff21ff3dc8100bedaaae06d1c3b4" @@ -3374,6 +3558,11 @@ resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.5.tgz#b703878cf7426dee0edc1a2649f79a06153b403e" integrity sha512-5ATKBdqSS/qmSfJDrQBBq4d34b3Al381bJWJ8nWlcyt8ybo2CqHwQuv/dD02elmhS2G3EK/p/sZCbD1st8CZYw== +"@polywrap/result@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.6.tgz#ec5fbe2f8a828bd586c67d9243b4a46e8f42e423" + integrity sha512-IQeaS/4Wdbl+TI59J0+WOpRUQWY7F85QwfRLEH2hZnbMKaCuJB1ski9/0D4soEDiTGF5+PY9rQCB/nNrj5rYJg== + "@polywrap/tracing-js@0.10.0-pre.5": version "0.10.0-pre.5" resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.5.tgz#3408c469c64a1f4e6f059f40d04c6b6e6328e76f" @@ -3386,6 +3575,50 @@ "@opentelemetry/sdk-trace-base" "1.6.0" "@opentelemetry/sdk-trace-web" "1.6.0" +"@polywrap/tracing-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.6.tgz#ef1b8640d4c0a7a0a1f347931ae8b4f7494d287d" + integrity sha512-2IxLGRn3VdkMyq/aSo9H97oC6D+5+/JEp6mxvo4SxFROnt/0Ua9vs/8VhxBkIKPUglYFCug91T/CWTN0BhzvSw== + dependencies: + "@fetsorn/opentelemetry-console-exporter" "0.0.3" + "@opentelemetry/api" "1.2.0" + "@opentelemetry/exporter-trace-otlp-http" "0.32.0" + "@opentelemetry/resources" "1.6.0" + "@opentelemetry/sdk-trace-base" "1.6.0" + "@opentelemetry/sdk-trace-web" "1.6.0" + +"@polywrap/uri-resolver-extensions-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolver-extensions-js/-/uri-resolver-extensions-js-0.10.0-pre.6.tgz#45ab587ed00c47bea8ffa5ea227d654694dc66ef" + integrity sha512-pS0PeF3SVDFn5DWSSeAiK5G+pfIzxrlu8EXk8F4xXdLXCQV93rTufLNUbh9XudvTmqcqgRC8CefvrnWI4sK7bg== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/uri-resolvers-js" "0.10.0-pre.6" + "@polywrap/wasm-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + +"@polywrap/uri-resolvers-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolvers-js/-/uri-resolvers-js-0.10.0-pre.6.tgz#9c4a09fe426139ac3bf9609e4607d5ec2d9c2731" + integrity sha512-AT6H1z9Ck4cScRxxTeYT6DkydE1d1utK978Uyp/EF4OZ4OGbSWDdCJ3/6Kc+wSGAGPe5XoYMV805BpQqqjKueA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + +"@polywrap/wasm-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/wasm-js/-/wasm-js-0.10.0-pre.6.tgz#79f3bc29d771ba34fc222811f33d2b26a37f53ee" + integrity sha512-tXkfheTjJI7gn1KmD49Yb3FrQ4UpGuRJI5eaTucE9CKmlo7bKO8wn7e+3y1VxZPpGA1CZEqSdY5qPHRwSA5pcg== + dependencies: + "@polywrap/asyncify-js" "0.10.0-pre.6" + "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/msgpack-js" "0.10.0-pre.6" + "@polywrap/result" "0.10.0-pre.6" + "@polywrap/tracing-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.6" + "@polywrap/wrap-manifest-schemas@0.9.3": version "0.9.3" resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-schemas/-/wrap-manifest-schemas-0.9.3.tgz#cdf950bb8951fba72afd8300aaf9a0a8159d7c37" @@ -3400,6 +3633,15 @@ jsonschema "1.4.0" semver "7.3.5" +"@polywrap/wrap-manifest-types-js@0.10.0-pre.6": + version "0.10.0-pre.6" + resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.6.tgz#1171be90c00ab5fe687f5b9bd1c7b32bb79e5d00" + integrity sha512-70Q+rCnB807m3au+pfP+/MimHacg7Wz2gMS5Q34GA5NGt5Qj0vdyqBjIYbIsyerMjO/gxHrf4CxKl+0+elX0fQ== + dependencies: + json-schema-ref-parser "9.0.9" + jsonschema "1.4.0" + semver "7.3.5" + "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -18039,6 +18281,11 @@ write@1.0.3: dependencies: mkdirp "^0.5.1" +ws@7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 29329ecb210c89f14a3596bcce75acb73ceefc38 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Mon, 16 Jan 2023 14:11:51 +0530 Subject: [PATCH 24/51] fixed version of plugin-js in client package.json --- packages/js/client/package.json | 2 +- .../helpers/getClientWithEnsAndIpfs.ts | 72 ++++++++++--------- .../src/__tests__/helpers/getClient.ts | 68 +++++++++--------- 3 files changed, 72 insertions(+), 70 deletions(-) diff --git a/packages/js/client/package.json b/packages/js/client/package.json index a082bfc588..d53eaafa0a 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -40,7 +40,7 @@ "@polywrap/http-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.7", - "@polywrap/plugin-js": "0.10.0-pre.6", + "@polywrap/plugin-js": "0.10.0-pre.7", "@polywrap/test-cases": "0.10.0-pre.7", "@polywrap/test-env-js": "0.10.0-pre.7", "@types/jest": "26.0.8", diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index 522394936e..b2874e7b1b 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -12,7 +12,7 @@ import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { PackageToWrapperCacheResolver, - RecursiveResolver, RedirectResolver, + RecursiveResolver, RedirectResolver, StaticResolver, WrapperCache, } from "@polywrap/uri-resolvers-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; @@ -57,45 +57,47 @@ export const getClientWithEnsAndIpfs = () => { implementations: [defaultPackages.ethereumProvider], }, ], - resolver: RecursiveResolver.from([ - new RedirectResolver( - "wrap://ens/ethereum.polywrap.eth", - defaultWrappers.ethereum - ), + resolver: RecursiveResolver.from( PackageToWrapperCacheResolver.from( [ - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ connections }), - }, - { - uri: "wrap://ens/ens-resolver.polywrap.eth", - package: ensResolverPlugin({ - addresses: { - testnet: ensAddresses.ensAddress, - }, - }), - }, - { - uri: "wrap://ens/ipfs.polywrap.eth", - package: ipfsPlugin({}), - }, - { - uri: "wrap://ens/ipfs-resolver.polywrap.eth", - package: ipfsResolverPlugin({}), - }, - { - uri: "wrap://ens/fs.polywrap.eth", - package: fileSystemPlugin({}), - }, - { - uri: "wrap://ens/fs-resolver.polywrap.eth", - package: fileSystemResolverPlugin({}), - }, + new RedirectResolver( + "wrap://ens/ethereum.polywrap.eth", + defaultWrappers.ethereum + ), + StaticResolver.from([ + { + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ connections }), + }, + { + uri: "wrap://ens/ens-resolver.polywrap.eth", + package: ensResolverPlugin({ + addresses: { + testnet: ensAddresses.ensAddress, + }, + }), + }, + { + uri: "wrap://ens/ipfs.polywrap.eth", + package: ipfsPlugin({}), + }, + { + uri: "wrap://ens/ipfs-resolver.polywrap.eth", + package: ipfsResolverPlugin({}), + }, + { + uri: "wrap://ens/fs.polywrap.eth", + package: fileSystemPlugin({}), + }, + { + uri: "wrap://ens/fs-resolver.polywrap.eth", + package: fileSystemResolverPlugin({}), + }, + ]), new ExtendableUriResolver(), ], new WrapperCache() - )] + ) ), }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index f38a82e8bc..b271572f20 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -9,7 +9,7 @@ import { RecursiveResolver, PackageToWrapperCacheResolver, WrapperCache, - RedirectResolver, + RedirectResolver, StaticResolver, } from "@polywrap/uri-resolvers-js"; import { PolywrapClient } from "@polywrap/client-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; @@ -35,47 +35,47 @@ export const getClient = () => { }, ], resolver: RecursiveResolver.from( - [ - new RedirectResolver( - "wrap://ens/ethereum.polywrap.eth", - defaultWrappers.ethereum - ), PackageToWrapperCacheResolver.from( [ - { - uri: "wrap://ens/ipfs-resolver.polywrap.eth", - package: ipfsResolverPlugin({}), - }, - { - uri: "wrap://ens/ipfs.polywrap.eth", - package: ipfsPlugin({}), - }, - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ - connections: new Connections({ - networks: { - testnet: new Connection({ - provider: providers.ethereum, - }), + new RedirectResolver( + "wrap://ens/ethereum.polywrap.eth", + defaultWrappers.ethereum + ), + StaticResolver.from([ + { + uri: "wrap://ens/ipfs-resolver.polywrap.eth", + package: ipfsResolverPlugin({}), + }, + { + uri: "wrap://ens/ipfs.polywrap.eth", + package: ipfsPlugin({}), + }, + { + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ + connections: new Connections({ + networks: { + testnet: new Connection({ + provider: providers.ethereum, + }), + }, + defaultNetwork: "testnet", + }), + }), + }, + { + uri: "wrap://ens/ens-resolver.polywrap.eth", + package: ensResolverPlugin({ + addresses: { + testnet: ensAddresses.ensAddress, }, - defaultNetwork: "testnet", }), - }), - }, - { - uri: "wrap://ens/ens-resolver.polywrap.eth", - package: ensResolverPlugin({ - addresses: { - testnet: ensAddresses.ensAddress, - }, - }), - }, + }, + ]), new ExtendableUriResolver(), ], new WrapperCache() ) - ] ), }, { noDefaults: true } From 0a0fbff83566f1cadb7771599bbfa6a2a4ac6762 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Mon, 16 Jan 2023 20:57:56 +0530 Subject: [PATCH 25/51] replaced invokeWithTimeout in ens deployer modules with tested version --- packages/cli/package.json | 1 + .../ens-recursive-name-register/index.ts | 2 +- .../invokeWithTimeout.ts | 42 ------------------- .../lib/defaults/deploy-modules/ens/index.ts | 2 +- .../deploy-modules/ens/invokeWithTimeout.ts | 42 ------------------- yarn.lock | 9 ++++ 6 files changed, 12 insertions(+), 86 deletions(-) delete mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts delete mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index a3664d4c17..6818c87b93 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -39,6 +39,7 @@ "colors": "1.4.0" }, "dependencies": { + "wraplib": "0.1.0", "@ethersproject/providers": "5.6.8", "@ethersproject/wallet": "5.6.2", "@formatjs/intl": "1.8.2", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index f74f2cca10..a665d6837c 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,7 +1,6 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; -import { invokeWithTimeout } from "./invokeWithTimeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; @@ -18,6 +17,7 @@ import { defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; +import { invokeWithTimeout } from "wraplib"; class ENSRecursiveNameRegisterPublisher implements Deployer { async execute( diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts deleted file mode 100644 index 4e83780b7d..0000000000 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { InvokerOptions } from "@polywrap/core-js"; -import { Result, ResultErr, ResultOk } from "@polywrap/result"; -import { PolywrapClient } from "@polywrap/client-js"; - -export async function invokeWithTimeout( - client: PolywrapClient, - options: InvokerOptions, - timeout: number -): Promise> { - const controller = new AbortController(); - - const timer = setTimeout(() => { - controller.abort(); - }, timeout); - - const [error, value] = await new Promise< - [error: Error | undefined, result: TResult | undefined] - >((resolve, reject) => { - controller.signal.addEventListener("abort", () => { - reject("Timeout has been reached"); - }); - client - .invoke(options) - .then((result) => { - timer && clearTimeout(timer); - if (!result.ok) { - resolve([result.error, undefined]); - return; - } - resolve([undefined, result.value]); - }) - .catch((error) => { - timer && clearTimeout(timer); - resolve([error, undefined]); - }); - }); - - if (error) { - return ResultErr(error); - } - return ResultOk(value as TResult); -} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 746b05faec..dd427c5247 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; -import { invokeWithTimeout } from "./invokeWithTimeout"; +import { invokeWithTimeout } from "wraplib"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts deleted file mode 100644 index 4e83780b7d..0000000000 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { InvokerOptions } from "@polywrap/core-js"; -import { Result, ResultErr, ResultOk } from "@polywrap/result"; -import { PolywrapClient } from "@polywrap/client-js"; - -export async function invokeWithTimeout( - client: PolywrapClient, - options: InvokerOptions, - timeout: number -): Promise> { - const controller = new AbortController(); - - const timer = setTimeout(() => { - controller.abort(); - }, timeout); - - const [error, value] = await new Promise< - [error: Error | undefined, result: TResult | undefined] - >((resolve, reject) => { - controller.signal.addEventListener("abort", () => { - reject("Timeout has been reached"); - }); - client - .invoke(options) - .then((result) => { - timer && clearTimeout(timer); - if (!result.ok) { - resolve([result.error, undefined]); - return; - } - resolve([undefined, result.value]); - }) - .catch((error) => { - timer && clearTimeout(timer); - resolve([error, undefined]); - }); - }); - - if (error) { - return ResultErr(error); - } - return ResultOk(value as TResult); -} diff --git a/yarn.lock b/yarn.lock index 08a99cf37e..cb980e9832 100644 --- a/yarn.lock +++ b/yarn.lock @@ -18208,6 +18208,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wraplib@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/wraplib/-/wraplib-0.1.0.tgz#191e00aeed534b69fbfa8312616548edfd18c522" + integrity sha512-z1WlZIz0Ks4qsBbn6DR4URYllS2lT+ldvuMdITzxeF8gJyBAFaMDiQ6pxsGAeWiQ8DAXKsFLlpbHEGzilF+GVQ== + dependencies: + "@polywrap/core-js" "0.10.0-pre.7" + "@polywrap/result" "0.10.0-pre.7" + "@polywrap/uri-resolvers-js" "0.10.0-pre.7" + wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" From d74ee384dbaeb0833cd0fe9af9b4e9fadaff301e Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 17 Jan 2023 02:20:15 +0530 Subject: [PATCH 26/51] added RetryResolver to ens deployers; fixed null pointer exception when a null value is returned from attempting to read a wrapper's wasm module --- packages/cli/package.json | 6 ++ .../ens-recursive-name-register/getClient.ts | 96 +++++++++++++++++++ .../ens-recursive-name-register/index.ts | 79 ++++----------- .../defaults/deploy-modules/ens/getClient.ts | 96 +++++++++++++++++++ .../lib/defaults/deploy-modules/ens/index.ts | 84 +++++----------- packages/js/wasm/src/WasmPackage.ts | 2 +- packages/js/wasm/src/WasmWrapper.ts | 2 +- 7 files changed, 244 insertions(+), 121 deletions(-) create mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts create mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index 6818c87b93..47df8e24c4 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -50,6 +50,10 @@ "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", "ethereum-provider-js": "0.1.3", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", + "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.7", + "@polywrap/fs-plugin-js": "0.10.0-pre.7", + "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.7", + "@polywrap/http-plugin-js": "0.10.0-pre.7", "@polywrap/logging-js": "0.10.0-pre.7", "@polywrap/os-js": "0.10.0-pre.7", "@polywrap/polywrap-manifest-types-js": "0.10.0-pre.7", @@ -60,6 +64,8 @@ "@polywrap/wasm-js": "0.10.0-pre.7", "@polywrap/wrap-manifest-types-js": "0.10.0-pre.7", "@polywrap/result": "0.10.0-pre.7", + "@polywrap/uri-resolvers-js": "0.10.0-pre.7", + "@polywrap/uri-resolver-extensions-js": "0.10.0-pre.7", "axios": "0.21.2", "chalk": "4.1.0", "chokidar": "3.5.1", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts new file mode 100644 index 0000000000..799eb4a000 --- /dev/null +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts @@ -0,0 +1,96 @@ +import { ethereumProviderPlugin, Connections } from "ethereum-provider-js"; +import { PolywrapClient } from "@polywrap/client-js"; +import { + PackageToWrapperCacheResolver, + RecursiveResolver, + StaticResolver, + WrapperCache, +} from "@polywrap/uri-resolvers-js"; +import { embeddedWrappers } from "@polywrap/test-env-js"; +import { + ClientConfigBuilder, + defaultInterfaces, + defaultIpfsProviders, + defaultPackages, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; +import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; +import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; +import { httpPlugin } from "@polywrap/http-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; +import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; +import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; +import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; +import { RetryResolver } from "wraplib"; + +export function getClient(connections: Connections): PolywrapClient { + const uriResolver = RecursiveResolver.from( + PackageToWrapperCacheResolver.from( + [ + StaticResolver.from([ + { + from: "wrap://ens/uts46.polywrap.eth", + to: embeddedWrappers.uts46, + }, + { + from: "wrap://ens/sha3.polywrap.eth", + to: embeddedWrappers.sha3, + }, + { + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum, + }, + { + uri: defaultPackages.fileSystem, + package: fileSystemPlugin({}), + }, + { + uri: defaultPackages.fileSystemResolver, + package: fileSystemResolverPlugin({}), + }, + { + uri: defaultPackages.ipfs, + package: ipfsPlugin({}), + }, + { + uri: defaultPackages.ipfsResolver, + package: ipfsResolverPlugin({}), + }, + { + uri: defaultPackages.http, + package: httpPlugin({}), + }, + { + uri: defaultPackages.ensResolver, + package: ensResolverPlugin({}), + }, + { + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ connections }), + }, + ]), + new RetryResolver(new ExtendableUriResolver(), { + ipfs: { retries: 1, interval: 500 }, + }), + ], + new WrapperCache() + ) + ); + const coreClientConfig = new ClientConfigBuilder(undefined, uriResolver) + .addEnv(defaultPackages.ipfs, { + provider: defaultIpfsProviders[0], + fallbackProviders: defaultIpfsProviders.slice(1), + }) + .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ + defaultPackages.fileSystemResolver, + defaultPackages.ipfsResolver, + defaultPackages.ensResolver, + ]) + .addInterfaceImplementation( + defaultInterfaces.ethereumProvider, + defaultPackages.ethereumProvider + ) + .buildCoreConfig(); + + return new PolywrapClient(coreClientConfig, { noDefaults: true }); +} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index a665d6837c..e5eac479dc 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,22 +1,13 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; +import { getClient } from "./getClient"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; -import { - ethereumProviderPlugin, - Connections, - Connection, -} from "ethereum-provider-js"; +import { Connections, Connection } from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; -import { PolywrapClient } from "@polywrap/client-js"; -import { - defaultInterfaces, - defaultPackages, - defaultWrappers, -} from "@polywrap/client-config-builder-js"; import { invokeWithTimeout } from "wraplib"; class ENSRecursiveNameRegisterPublisher implements Deployer { @@ -54,51 +45,20 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const ethereumWrapperUri = "wrap://ens/ethereum.polywrap.eth"; - const ensWrapperUri = embeddedWrappers.ens; - - const client = new PolywrapClient({ - redirects: [ - { - from: "wrap://ens/uts46.polywrap.eth", - to: embeddedWrappers.uts46, - }, - { - from: "wrap://ens/sha3.polywrap.eth", - to: embeddedWrappers.sha3, - }, - { - from: ethereumWrapperUri, - to: defaultWrappers.ethereum, - }, - ], - packages: [ - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ - connections: new Connections({ - networks: { - [network]: new Connection({ - provider: config.provider, - signer, - }), - }, - defaultNetwork: network, - }), - }), - }, - ], - interfaces: [ - { - interface: defaultInterfaces.ethereumProvider, - implementations: [defaultPackages.ethereumProvider], - }, - ], + const connections = new Connections({ + networks: { + [network]: new Connection({ + provider: config.provider, + signer, + }), + }, + defaultNetwork: network, }); + const client = getClient(connections); const signerAddress = await client.invoke({ method: "getSignerAddress", - uri: ethereumWrapperUri, + uri: "wrap://ens/ethereum.polywrap.eth", args: { connection: { networkNameOrChainId: network, @@ -107,12 +67,14 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { }); if (!signerAddress.ok) { - throw new Error("Could not get signer"); + throw new Error( + `Could not get signer. Exception encountered:\n${signerAddress.error?.toString()}` + ); } const registerData = await client.invoke<{ tx: { hash: string } }[]>({ method: "registerDomainAndSubdomainsRecursively", - uri: ensWrapperUri, + uri: embeddedWrappers.ens, args: { domain: ensDomain, owner: signerAddress.value, @@ -128,16 +90,15 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { if (!registerData.ok) { throw new Error( - `Could not register domain '${ensDomain}'` + - (registerData.error ? `\nError: ${registerData.error.message}` : "") + `Could not register domain '${ensDomain}'. Exception encountered:\n${registerData.error?.toString()}` ); } - const txResult = await invokeWithTimeout( + await invokeWithTimeout( client, { method: "awaitTransaction", - uri: ethereumWrapperUri, + uri: "wrap://ens/ethereum.polywrap.eth", args: { txHash: registerData.value[0].tx.hash, connection: { @@ -148,8 +109,6 @@ class ENSRecursiveNameRegisterPublisher implements Deployer { 15000 ); - if (!txResult.ok) throw txResult.error; - return new Uri(`ens/${network}/${ensDomain}`); } } diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts new file mode 100644 index 0000000000..799eb4a000 --- /dev/null +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts @@ -0,0 +1,96 @@ +import { ethereumProviderPlugin, Connections } from "ethereum-provider-js"; +import { PolywrapClient } from "@polywrap/client-js"; +import { + PackageToWrapperCacheResolver, + RecursiveResolver, + StaticResolver, + WrapperCache, +} from "@polywrap/uri-resolvers-js"; +import { embeddedWrappers } from "@polywrap/test-env-js"; +import { + ClientConfigBuilder, + defaultInterfaces, + defaultIpfsProviders, + defaultPackages, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; +import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; +import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; +import { httpPlugin } from "@polywrap/http-plugin-js"; +import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; +import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; +import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; +import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; +import { RetryResolver } from "wraplib"; + +export function getClient(connections: Connections): PolywrapClient { + const uriResolver = RecursiveResolver.from( + PackageToWrapperCacheResolver.from( + [ + StaticResolver.from([ + { + from: "wrap://ens/uts46.polywrap.eth", + to: embeddedWrappers.uts46, + }, + { + from: "wrap://ens/sha3.polywrap.eth", + to: embeddedWrappers.sha3, + }, + { + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum, + }, + { + uri: defaultPackages.fileSystem, + package: fileSystemPlugin({}), + }, + { + uri: defaultPackages.fileSystemResolver, + package: fileSystemResolverPlugin({}), + }, + { + uri: defaultPackages.ipfs, + package: ipfsPlugin({}), + }, + { + uri: defaultPackages.ipfsResolver, + package: ipfsResolverPlugin({}), + }, + { + uri: defaultPackages.http, + package: httpPlugin({}), + }, + { + uri: defaultPackages.ensResolver, + package: ensResolverPlugin({}), + }, + { + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ connections }), + }, + ]), + new RetryResolver(new ExtendableUriResolver(), { + ipfs: { retries: 1, interval: 500 }, + }), + ], + new WrapperCache() + ) + ); + const coreClientConfig = new ClientConfigBuilder(undefined, uriResolver) + .addEnv(defaultPackages.ipfs, { + provider: defaultIpfsProviders[0], + fallbackProviders: defaultIpfsProviders.slice(1), + }) + .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ + defaultPackages.fileSystemResolver, + defaultPackages.ipfsResolver, + defaultPackages.ensResolver, + ]) + .addInterfaceImplementation( + defaultInterfaces.ethereumProvider, + defaultPackages.ethereumProvider + ) + .buildCoreConfig(); + + return new PolywrapClient(coreClientConfig, { noDefaults: true }); +} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index dd427c5247..119a033795 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,23 +1,14 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { Deployer } from "../../../deploy"; +import { getClient } from "./getClient"; import { invokeWithTimeout } from "wraplib"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; -import { - Connections, - Connection, - ethereumProviderPlugin, -} from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; -import { PolywrapClient } from "@polywrap/client-js"; -import { - defaultInterfaces, - defaultPackages, - defaultWrappers, -} from "@polywrap/client-config-builder-js"; +import { Connections, Connection } from "ethereum-provider-js"; const contentHash = require("content-hash"); @@ -51,51 +42,20 @@ class ENSPublisher implements Deployer { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const ethereumWrapperUri = "wrap://ens/ethereum.polywrap.eth"; - const ensWrapperUri = embeddedWrappers.ens; - - const client = new PolywrapClient({ - redirects: [ - { - from: "wrap://ens/uts46.polywrap.eth", - to: embeddedWrappers.uts46, - }, - { - from: "wrap://ens/sha3.polywrap.eth", - to: embeddedWrappers.sha3, - }, - { - from: ethereumWrapperUri, - to: defaultWrappers.ethereum, - }, - ], - packages: [ - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ - connections: new Connections({ - networks: { - [network]: new Connection({ - provider: config.provider, - signer, - }), - }, - defaultNetwork: network, - }), - }), - }, - ], - interfaces: [ - { - interface: defaultInterfaces.ethereumProvider, - implementations: [defaultPackages.ethereumProvider], - }, - ], + const connections = new Connections({ + networks: { + [network]: new Connection({ + provider: config.provider, + signer, + }), + }, + defaultNetwork: network, }); + const client = getClient(connections); const resolver = await client.invoke({ method: "getResolver", - uri: ensWrapperUri, + uri: embeddedWrappers.ens, args: { registryAddress: config.ensRegistryAddress, domain: config.domainName, @@ -106,7 +66,11 @@ class ENSPublisher implements Deployer { }); if (!resolver.ok) { - throw new Error(`Could not get resolver for '${config.domainName}'`); + throw new Error( + `Could not get resolver for '${ + config.domainName + }'. Exception encountered:\n${resolver.error?.toString()}` + ); } if (resolver.value === "0x0000000000000000000000000000000000000000") { @@ -117,7 +81,7 @@ class ENSPublisher implements Deployer { const setContenthashData = await client.invoke<{ hash: string }>({ method: "setContentHash", - uri: ensWrapperUri, + uri: embeddedWrappers.ens, args: { domain: config.domainName, cid: hash, @@ -129,14 +93,18 @@ class ENSPublisher implements Deployer { }); if (!setContenthashData.ok) { - throw new Error(`Could not set contentHash for '${config.domainName}'`); + throw new Error( + `Could not set contentHash for '${ + config.domainName + }'. Exception encountered:\n${setContenthashData.error?.toString()}` + ); } - const txResult = await invokeWithTimeout( + await invokeWithTimeout( client, { method: "awaitTransaction", - uri: ethereumWrapperUri, + uri: "wrap://ens/ethereum.polywrap.eth", args: { txHash: setContenthashData.value.hash, connection: { @@ -147,8 +115,6 @@ class ENSPublisher implements Deployer { 15000 ); - if (!txResult.ok) throw txResult.error; - return new Uri(`ens/${network}/${config.domainName}`); } } diff --git a/packages/js/wasm/src/WasmPackage.ts b/packages/js/wasm/src/WasmPackage.ts index 8e32997745..4a1cc3120b 100644 --- a/packages/js/wasm/src/WasmPackage.ts +++ b/packages/js/wasm/src/WasmPackage.ts @@ -55,7 +55,7 @@ export class WasmPackage implements IWasmPackage { async getWasmModule(): Promise> { const result = await this.fileReader.readFile(WRAP_MODULE_PATH); - if (!result.ok) { + if (!result.ok || !result.value) { return ResultErr(Error(`Wrapper does not contain a wasm module`)); } diff --git a/packages/js/wasm/src/WasmWrapper.ts b/packages/js/wasm/src/WasmWrapper.ts index 344c7274e4..32ea9f1b20 100644 --- a/packages/js/wasm/src/WasmWrapper.ts +++ b/packages/js/wasm/src/WasmWrapper.ts @@ -273,7 +273,7 @@ export class WasmWrapper implements Wrapper { if (this._wasmModule === undefined) { const result = await this._fileReader.readFile(WRAP_MODULE_PATH); - if (!result.ok) { + if (!result.ok || !result.value) { return ResultErr("Wrapper does not contain a wasm module"); } From 90a3c2c594e33cfecdb78b1a30c74327b36f1014 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 17 Jan 2023 15:58:59 +0530 Subject: [PATCH 27/51] removed redundant items from getTestEnvClientConfig in CLI --- .../cli/src/lib/test-env/client-config.ts | 21 ------------------- 1 file changed, 21 deletions(-) diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index 540fa218b0..6207d17416 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -2,10 +2,8 @@ import { getTestEnvProviders } from "./providers"; import { PolywrapClientConfig } from "@polywrap/client-js"; import { - defaultInterfaces, defaultIpfsProviders, defaultPackages, - defaultWrappers, } from "@polywrap/client-config-builder-js"; import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { @@ -13,12 +11,9 @@ import { Connections, Connection, } from "ethereum-provider-js"; -import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ensAddresses } from "@polywrap/test-env-js"; export function getTestEnvClientConfig(): Partial { - // TODO: move this into its own package, since it's being used everywhere? - // maybe have it exported from test-env. const providers = getTestEnvProviders(); const ipfsProvider = providers.ipfsProvider; const ethProvider = providers.ethProvider; @@ -60,10 +55,6 @@ export function getTestEnvClientConfig(): Partial { }), }), }, - { - uri: "wrap://ens/ipfs.polywrap.eth", - package: ipfsPlugin({}), - }, { uri: "wrap://ens/ens-resolver.polywrap.eth", package: ensResolverPlugin({ @@ -73,17 +64,5 @@ export function getTestEnvClientConfig(): Partial { }), }, ], - redirects: [ - { - from: "wrap://ens/ethereum.polywrap.eth", - to: defaultWrappers.ethereum, - }, - ], - interfaces: [ - { - interface: defaultInterfaces.ethereumProvider, - implementations: [defaultPackages.ethereumProvider], - }, - ], }; } From 272ac51a8c350175a1c5ddcf883132c2c8b32611 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 17 Jan 2023 16:27:51 +0530 Subject: [PATCH 28/51] adjusted config in ens resolver test client --- .../helpers/getClientWithEnsAndIpfs.ts | 11 +++-- .../src/__tests__/helpers/getClient.ts | 48 ++++++++++++++----- 2 files changed, 42 insertions(+), 17 deletions(-) diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index b2874e7b1b..dd4b3121df 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -12,7 +12,8 @@ import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { PackageToWrapperCacheResolver, - RecursiveResolver, RedirectResolver, StaticResolver, + RecursiveResolver, + StaticResolver, WrapperCache, } from "@polywrap/uri-resolvers-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; @@ -60,11 +61,11 @@ export const getClientWithEnsAndIpfs = () => { resolver: RecursiveResolver.from( PackageToWrapperCacheResolver.from( [ - new RedirectResolver( - "wrap://ens/ethereum.polywrap.eth", - defaultWrappers.ethereum - ), StaticResolver.from([ + { + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum + }, { uri: defaultPackages.ethereumProvider, package: ethereumProviderPlugin({ connections }), diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index b271572f20..6c3d161a0b 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -9,17 +9,33 @@ import { RecursiveResolver, PackageToWrapperCacheResolver, WrapperCache, - RedirectResolver, StaticResolver, + StaticResolver, } from "@polywrap/uri-resolvers-js"; import { PolywrapClient } from "@polywrap/client-js"; import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { defaultInterfaces, defaultPackages, defaultWrappers } from "@polywrap/client-config-builder-js"; +import { + defaultInterfaces, + defaultIpfsProviders, + defaultPackages, + defaultWrappers, +} from "@polywrap/client-config-builder-js"; +import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; +import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; export const getClient = () => { return new PolywrapClient( { + envs: [ + { + uri: defaultPackages.ipfs, + env: { + provider: providers.ipfs, + fallbackProviders: defaultIpfsProviders, + }, + }, + ], interfaces: [ { interface: ExtendableUriResolver.extInterfaceUri, @@ -37,18 +53,10 @@ export const getClient = () => { resolver: RecursiveResolver.from( PackageToWrapperCacheResolver.from( [ - new RedirectResolver( - "wrap://ens/ethereum.polywrap.eth", - defaultWrappers.ethereum - ), StaticResolver.from([ { - uri: "wrap://ens/ipfs-resolver.polywrap.eth", - package: ipfsResolverPlugin({}), - }, - { - uri: "wrap://ens/ipfs.polywrap.eth", - package: ipfsPlugin({}), + from: "wrap://ens/ethereum.polywrap.eth", + to: defaultWrappers.ethereum }, { uri: defaultPackages.ethereumProvider, @@ -71,6 +79,22 @@ export const getClient = () => { }, }), }, + { + uri: "wrap://ens/ipfs-resolver.polywrap.eth", + package: ipfsResolverPlugin({}), + }, + { + uri: "wrap://ens/ipfs.polywrap.eth", + package: ipfsPlugin({}), + }, + { + uri: "wrap://ens/fs.polywrap.eth", + package: fileSystemPlugin({}), + }, + { + uri: "wrap://ens/fs-resolver.polywrap.eth", + package: fileSystemResolverPlugin({}), + }, ]), new ExtendableUriResolver(), ], From 951c54792dcca782979a680b23744d54fa235778 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 17 Jan 2023 17:01:23 +0530 Subject: [PATCH 29/51] moved file reader null check from WasmWRapper and WasmPackage to UriResolverExtensionFileReader --- .../src/UriResolverExtensionFileReader.ts | 2 +- packages/js/wasm/src/WasmPackage.ts | 2 +- packages/js/wasm/src/WasmWrapper.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/js/uri-resolver-extensions/src/UriResolverExtensionFileReader.ts b/packages/js/uri-resolver-extensions/src/UriResolverExtensionFileReader.ts index b367d8df4d..cdcc6693af 100644 --- a/packages/js/uri-resolver-extensions/src/UriResolverExtensionFileReader.ts +++ b/packages/js/uri-resolver-extensions/src/UriResolverExtensionFileReader.ts @@ -34,7 +34,7 @@ export class UriResolverExtensionFileReader implements IFileReader { path ); if (!result.ok) return result; - if (result.value === undefined) { + if (result.value === undefined || result.value === null) { return ResultErr(new Error(`File not found at ${path}`)); } return { diff --git a/packages/js/wasm/src/WasmPackage.ts b/packages/js/wasm/src/WasmPackage.ts index 4a1cc3120b..8e32997745 100644 --- a/packages/js/wasm/src/WasmPackage.ts +++ b/packages/js/wasm/src/WasmPackage.ts @@ -55,7 +55,7 @@ export class WasmPackage implements IWasmPackage { async getWasmModule(): Promise> { const result = await this.fileReader.readFile(WRAP_MODULE_PATH); - if (!result.ok || !result.value) { + if (!result.ok) { return ResultErr(Error(`Wrapper does not contain a wasm module`)); } diff --git a/packages/js/wasm/src/WasmWrapper.ts b/packages/js/wasm/src/WasmWrapper.ts index 32ea9f1b20..344c7274e4 100644 --- a/packages/js/wasm/src/WasmWrapper.ts +++ b/packages/js/wasm/src/WasmWrapper.ts @@ -273,7 +273,7 @@ export class WasmWrapper implements Wrapper { if (this._wasmModule === undefined) { const result = await this._fileReader.readFile(WRAP_MODULE_PATH); - if (!result.ok || !result.value) { + if (!result.ok) { return ResultErr("Wrapper does not contain a wasm module"); } From de9e9737af4199225cc2fc0dcbf8a6d199ccc8ef Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 17 Jan 2023 17:07:29 +0530 Subject: [PATCH 30/51] added RetryResolver to additional test client configs --- packages/js/client/package.json | 1 + .../client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 5 ++++- packages/js/plugins/uri-resolvers/ens-resolver/package.json | 1 + .../ens-resolver/src/__tests__/helpers/getClient.ts | 5 ++++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/js/client/package.json b/packages/js/client/package.json index d53eaafa0a..2677fcf00f 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -32,6 +32,7 @@ "@polywrap/wrap-manifest-types-js": "0.10.0-pre.7" }, "devDependencies": { + "wraplib": "0.1.0", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", "ethereum-provider-js": "0.1.3", "@polywrap/fs-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index dd4b3121df..55bc42d441 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -23,6 +23,7 @@ import { defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; +import { RetryResolver } from "wraplib"; export const getClientWithEnsAndIpfs = () => { const connections: Connections = new Connections({ @@ -95,7 +96,9 @@ export const getClientWithEnsAndIpfs = () => { package: fileSystemResolverPlugin({}), }, ]), - new ExtendableUriResolver(), + new RetryResolver(new ExtendableUriResolver(), { + ipfs: { retries: 1, interval: 500 }, + }), ], new WrapperCache() ) diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 7b4b711bd7..59ebc6870c 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -27,6 +27,7 @@ "ethers": "5.0.7" }, "devDependencies": { + "wraplib": "0.1.0", "@polywrap/client-js": "0.10.0-pre.7", "ethereum-provider-js": "0.1.3", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index 6c3d161a0b..a13370d6ed 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -23,6 +23,7 @@ import { } from "@polywrap/client-config-builder-js"; import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; +import { RetryResolver } from "wraplib"; export const getClient = () => { return new PolywrapClient( @@ -96,7 +97,9 @@ export const getClient = () => { package: fileSystemResolverPlugin({}), }, ]), - new ExtendableUriResolver(), + new RetryResolver(new ExtendableUriResolver(), { + ipfs: { retries: 1, interval: 500 }, + }), ], new WrapperCache() ) From b88d99a6bb99da1e39588dcde95c86f4d1235169 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 18 Jan 2023 15:28:55 +0530 Subject: [PATCH 31/51] added retry options to ipfs resolver plugin; removed RetryResolver --- .../ens-recursive-name-register/getClient.ts | 8 +-- .../defaults/deploy-modules/ens/getClient.ts | 8 +-- .../src/bundles/getDefaultConfig.ts | 6 +++ packages/js/client/package.json | 1 - .../helpers/getClientWithEnsAndIpfs.ts | 11 ++-- .../uri-resolvers/ens-resolver/package.json | 1 - .../src/__tests__/helpers/getClient.ts | 11 ++-- .../ipfs-resolver/src/__tests__/e2e.spec.ts | 14 +---- .../uri-resolvers/ipfs-resolver/src/index.ts | 51 +++++-------------- .../ipfs-resolver/src/schema.graphql | 14 +++-- 10 files changed, 52 insertions(+), 73 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts index 799eb4a000..716a3a03d2 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts @@ -21,7 +21,6 @@ import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; -import { RetryResolver } from "wraplib"; export function getClient(connections: Connections): PolywrapClient { const uriResolver = RecursiveResolver.from( @@ -69,9 +68,7 @@ export function getClient(connections: Connections): PolywrapClient { package: ethereumProviderPlugin({ connections }), }, ]), - new RetryResolver(new ExtendableUriResolver(), { - ipfs: { retries: 1, interval: 500 }, - }), + new ExtendableUriResolver(), ], new WrapperCache() ) @@ -81,6 +78,9 @@ export function getClient(connections: Connections): PolywrapClient { provider: defaultIpfsProviders[0], fallbackProviders: defaultIpfsProviders.slice(1), }) + .addEnv(defaultPackages.ipfsResolver, { + retries: { tryResolveUri: 2, getFile: 2 }, + }) .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ defaultPackages.fileSystemResolver, defaultPackages.ipfsResolver, diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts index 799eb4a000..716a3a03d2 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts @@ -21,7 +21,6 @@ import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; -import { RetryResolver } from "wraplib"; export function getClient(connections: Connections): PolywrapClient { const uriResolver = RecursiveResolver.from( @@ -69,9 +68,7 @@ export function getClient(connections: Connections): PolywrapClient { package: ethereumProviderPlugin({ connections }), }, ]), - new RetryResolver(new ExtendableUriResolver(), { - ipfs: { retries: 1, interval: 500 }, - }), + new ExtendableUriResolver(), ], new WrapperCache() ) @@ -81,6 +78,9 @@ export function getClient(connections: Connections): PolywrapClient { provider: defaultIpfsProviders[0], fallbackProviders: defaultIpfsProviders.slice(1), }) + .addEnv(defaultPackages.ipfsResolver, { + retries: { tryResolveUri: 2, getFile: 2 }, + }) .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ defaultPackages.fileSystemResolver, defaultPackages.ipfsResolver, diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 203f07f742..f307628a62 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -66,6 +66,12 @@ export const getDefaultConfig = (): ClientConfig => { fallbackProviders: defaultIpfsProviders.slice(1), }, }, + { + uri: new Uri(defaultPackages.ipfsResolver), + env: { + retries: { tryResolveUri: 1, getFile: 1 }, + }, + }, ], redirects: [ { diff --git a/packages/js/client/package.json b/packages/js/client/package.json index 2677fcf00f..d53eaafa0a 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -32,7 +32,6 @@ "@polywrap/wrap-manifest-types-js": "0.10.0-pre.7" }, "devDependencies": { - "wraplib": "0.1.0", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", "ethereum-provider-js": "0.1.3", "@polywrap/fs-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index 55bc42d441..7e301ca7f8 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -23,7 +23,6 @@ import { defaultPackages, defaultWrappers, } from "@polywrap/client-config-builder-js"; -import { RetryResolver } from "wraplib"; export const getClientWithEnsAndIpfs = () => { const connections: Connections = new Connections({ @@ -44,6 +43,12 @@ export const getClientWithEnsAndIpfs = () => { fallbackProviders: defaultIpfsProviders, }, }, + { + uri: defaultPackages.ipfsResolver, + env: { + retries: { tryResolveUri: 1, getFile: 1 }, + }, + }, ], interfaces: [ { @@ -96,9 +101,7 @@ export const getClientWithEnsAndIpfs = () => { package: fileSystemResolverPlugin({}), }, ]), - new RetryResolver(new ExtendableUriResolver(), { - ipfs: { retries: 1, interval: 500 }, - }), + new ExtendableUriResolver(), ], new WrapperCache() ) diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 59ebc6870c..7b4b711bd7 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -27,7 +27,6 @@ "ethers": "5.0.7" }, "devDependencies": { - "wraplib": "0.1.0", "@polywrap/client-js": "0.10.0-pre.7", "ethereum-provider-js": "0.1.3", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index a13370d6ed..5c93548b79 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -23,7 +23,6 @@ import { } from "@polywrap/client-config-builder-js"; import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; -import { RetryResolver } from "wraplib"; export const getClient = () => { return new PolywrapClient( @@ -36,6 +35,12 @@ export const getClient = () => { fallbackProviders: defaultIpfsProviders, }, }, + { + uri: defaultPackages.ipfsResolver, + env: { + retries: { tryResolveUri: 1, getFile: 1 }, + }, + }, ], interfaces: [ { @@ -97,9 +102,7 @@ export const getClient = () => { package: fileSystemResolverPlugin({}), }, ]), - new RetryResolver(new ExtendableUriResolver(), { - ipfs: { retries: 1, interval: 500 }, - }), + new ExtendableUriResolver(), ], new WrapperCache() ) diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/__tests__/e2e.spec.ts b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/__tests__/e2e.spec.ts index 62fd2615c0..df2fddf6bf 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/__tests__/e2e.spec.ts +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/__tests__/e2e.spec.ts @@ -48,7 +48,7 @@ describe("IPFS Plugin", () => { fail("Expected response to be a wrapper"); } - const manifest = await result.value.wrapper.getManifest({}); + const manifest = await result.value.wrapper.getManifest(); expect(manifest?.name).toBe("SimpleStorage"); }); @@ -115,18 +115,6 @@ describe("IPFS Plugin", () => { }, timeout ); - - await runGetFileTimeoutTestWithEnv( - { - timeouts: { - getFile: timeout, - checkIfExists: timeout, - tryResolveUri: timeout, - }, - skipCheckIfExists: true, - }, - timeout - ); }); it("Should properly timeout - tryResolveUri", async () => { diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts index 840ee85ea1..88bd1b3f1d 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts @@ -33,7 +33,8 @@ export class IpfsResolverPlugin extends Module { let manifest: Bytes | undefined; - try { + let attempts = (this.env.retries?.tryResolveUri ?? 0) + 1; + while (attempts -- > 0) { const manifestResult = await Ipfs_Module.cat( { cid: `${args.path}/${manifestSearchPattern}`, @@ -46,62 +47,38 @@ export class IpfsResolverPlugin extends Module { ); if (manifestResult.ok) { - manifest = Buffer.from(manifestResult.value); + try { + manifest = Buffer.from(manifestResult.value); + return { uri: null, manifest: manifest }; + } catch (e) { + break; + } } - } catch (e) { - // TODO: logging - // https://github.com/polywrap/monorepo/issues/33 } - return { uri: null, manifest: manifest ?? null }; + return { uri: null, manifest: null }; } public async getFile( args: Args_getFile, client: CoreClient ): Promise { - try { - let provider: string | undefined = undefined; - - if (!this.env.skipCheckIfExists) { - const resolveResult = await Ipfs_Module.resolve( + let attempts = (this.env.retries?.getFile ?? 0) + 1; + while (attempts -- > 0) { + const catResult = await Ipfs_Module.cat( { cid: args.path, options: { - timeout: this.env.timeouts?.checkIfExists, + timeout: this.env.timeouts?.getFile, disableParallelRequests: this.env.disableParallelRequests, }, }, client ); - - if (!resolveResult.ok || !resolveResult.value) { - return null; - } - - provider = resolveResult.value.provider; + if (catResult.ok) return catResult.value; } - const catResult = await Ipfs_Module.cat( - { - cid: args.path, - options: { - provider: provider, - timeout: this.env.timeouts?.getFile, - disableParallelRequests: this.env.disableParallelRequests, - }, - }, - client - ); - - if (!catResult.ok) { - return null; - } - - return catResult.value; - } catch (e) { return null; - } } private static isCID(cid: string): boolean { diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/schema.graphql b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/schema.graphql index 10024abd4a..e5080c0ff1 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/schema.graphql +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/schema.graphql @@ -3,15 +3,15 @@ type Timeouts { getFile: UInt32, - checkIfExists: UInt32, tryResolveUri: UInt32, } +type Retries { + getFile: UInt32 + tryResolveUri: UInt32 +} + type Env { - """ - Determines whether the plugin should try to resolve a file (check for its existence) or immediately get the file - """ - skipCheckIfExists: Boolean, """ Timeouts for methods """ @@ -20,6 +20,10 @@ type Env { Disable parallel requests """ disableParallelRequests: Boolean + """ + Retry on fail + """ + retries: Retries } type Module implements UriResolver_Module { From 87bdeb6a054336ecc1c33adf40f72aa7d0714d5e Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 18 Jan 2023 15:38:08 +0530 Subject: [PATCH 32/51] lint --- .../uri-resolvers/ipfs-resolver/src/index.ts | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts index 88bd1b3f1d..2224d2a7f1 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts @@ -34,7 +34,7 @@ export class IpfsResolverPlugin extends Module { let manifest: Bytes | undefined; let attempts = (this.env.retries?.tryResolveUri ?? 0) + 1; - while (attempts -- > 0) { + while (attempts-- > 0) { const manifestResult = await Ipfs_Module.cat( { cid: `${args.path}/${manifestSearchPattern}`, @@ -63,22 +63,22 @@ export class IpfsResolverPlugin extends Module { args: Args_getFile, client: CoreClient ): Promise { - let attempts = (this.env.retries?.getFile ?? 0) + 1; - while (attempts -- > 0) { - const catResult = await Ipfs_Module.cat( - { - cid: args.path, - options: { - timeout: this.env.timeouts?.getFile, - disableParallelRequests: this.env.disableParallelRequests, - }, + let attempts = (this.env.retries?.getFile ?? 0) + 1; + while (attempts-- > 0) { + const catResult = await Ipfs_Module.cat( + { + cid: args.path, + options: { + timeout: this.env.timeouts?.getFile, + disableParallelRequests: this.env.disableParallelRequests, }, - client - ); - if (catResult.ok) return catResult.value; - } + }, + client + ); + if (catResult.ok) return catResult.value; + } - return null; + return null; } private static isCID(cid: string): boolean { From a0109b49b3d61de153aefccf6e8dc44af4c52270 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 19 Jan 2023 13:00:49 +0530 Subject: [PATCH 33/51] lint --- .../defaults/deploy-modules/ens-recursive-name-register/index.ts | 1 + packages/cli/src/lib/defaults/deploy-modules/ens/index.ts | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index 4c7fa3373e..9a41b6618d 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; import { getClient } from "./getClient"; + import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index bc7e370c35..1ae5eb131f 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -2,6 +2,7 @@ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; import { getClient } from "./getClient"; + import { invokeWithTimeout } from "wraplib"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; From 881776effe8cca810404f7b998d3b07a018f3955 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 19 Jan 2023 13:44:10 +0530 Subject: [PATCH 34/51] fixed issue where deployment would fail when uri was already registered by user --- .../ens-recursive-name-register/index.ts | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index 9a41b6618d..aeb724640f 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -72,7 +72,9 @@ class ENSRecursiveNameRegisterPublisher implements DeployModule { ); } - const registerData = await client.invoke<{ tx: { hash: string } }[]>({ + const registerData = await client.invoke< + { tx: { hash: string }; didRegister: boolean }[] + >({ method: "registerDomainAndSubdomainsRecursively", uri: embeddedWrappers.ens, args: { @@ -94,20 +96,23 @@ class ENSRecursiveNameRegisterPublisher implements DeployModule { ); } - await invokeWithTimeout( - client, - { - method: "awaitTransaction", - uri: "wrap://ens/ethereum.polywrap.eth", - args: { - txHash: registerData.value[0].tx.hash, - connection: { - networkNameOrChainId: network, + // didRegister can be false if the ens domain is already registered, in which case there is no transaction + if (registerData.value[0].didRegister) { + await invokeWithTimeout( + client, + { + method: "awaitTransaction", + uri: "wrap://ens/ethereum.polywrap.eth", + args: { + txHash: registerData.value[0].tx.hash, + connection: { + networkNameOrChainId: network, + }, }, }, - }, - 15000 - ); + 15000 + ); + } return new Uri(`ens/${network}/${ensDomain}`); } From 7f715de8ae2d4af99f6794551b3c00dcef4b96c3 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 25 Jan 2023 15:54:02 +0530 Subject: [PATCH 35/51] updated eth provider uri; simplified client config in ens deployer modules; removed try-catch from ipfs resolver plugin --- packages/cli/package.json | 4 +- .../ens-recursive-name-register/getClient.ts | 96 ------------------- .../ens-recursive-name-register/index.ts | 51 +++++++--- .../defaults/deploy-modules/ens/getClient.ts | 96 ------------------- .../lib/defaults/deploy-modules/ens/index.ts | 51 +++++++--- .../js/client-config-builder/package.json | 2 +- .../src/bundles/getDefaultConfig.ts | 4 +- packages/js/client/package.json | 2 +- .../uri-resolvers/ens-resolver/package.json | 2 +- .../uri-resolvers/ipfs-resolver/src/index.ts | 10 +- yarn.lock | 28 ++++-- 11 files changed, 108 insertions(+), 238 deletions(-) delete mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts delete mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index 47df8e24c4..aeed837158 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -39,7 +39,7 @@ "colors": "1.4.0" }, "dependencies": { - "wraplib": "0.1.0", + "wraplib": "0.1.1", "@ethersproject/providers": "5.6.8", "@ethersproject/wallet": "5.6.2", "@formatjs/intl": "1.8.2", @@ -48,7 +48,7 @@ "@polywrap/client-js": "0.10.0-pre.7", "@polywrap/core-js": "0.10.0-pre.7", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.3", + "ethereum-provider-js": "0.1.4", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/fs-plugin-js": "0.10.0-pre.7", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts deleted file mode 100644 index 716a3a03d2..0000000000 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/getClient.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { ethereumProviderPlugin, Connections } from "ethereum-provider-js"; -import { PolywrapClient } from "@polywrap/client-js"; -import { - PackageToWrapperCacheResolver, - RecursiveResolver, - StaticResolver, - WrapperCache, -} from "@polywrap/uri-resolvers-js"; -import { embeddedWrappers } from "@polywrap/test-env-js"; -import { - ClientConfigBuilder, - defaultInterfaces, - defaultIpfsProviders, - defaultPackages, - defaultWrappers, -} from "@polywrap/client-config-builder-js"; -import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; -import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; -import { httpPlugin } from "@polywrap/http-plugin-js"; -import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; -import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; -import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; - -export function getClient(connections: Connections): PolywrapClient { - const uriResolver = RecursiveResolver.from( - PackageToWrapperCacheResolver.from( - [ - StaticResolver.from([ - { - from: "wrap://ens/uts46.polywrap.eth", - to: embeddedWrappers.uts46, - }, - { - from: "wrap://ens/sha3.polywrap.eth", - to: embeddedWrappers.sha3, - }, - { - from: "wrap://ens/ethereum.polywrap.eth", - to: defaultWrappers.ethereum, - }, - { - uri: defaultPackages.fileSystem, - package: fileSystemPlugin({}), - }, - { - uri: defaultPackages.fileSystemResolver, - package: fileSystemResolverPlugin({}), - }, - { - uri: defaultPackages.ipfs, - package: ipfsPlugin({}), - }, - { - uri: defaultPackages.ipfsResolver, - package: ipfsResolverPlugin({}), - }, - { - uri: defaultPackages.http, - package: httpPlugin({}), - }, - { - uri: defaultPackages.ensResolver, - package: ensResolverPlugin({}), - }, - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ connections }), - }, - ]), - new ExtendableUriResolver(), - ], - new WrapperCache() - ) - ); - const coreClientConfig = new ClientConfigBuilder(undefined, uriResolver) - .addEnv(defaultPackages.ipfs, { - provider: defaultIpfsProviders[0], - fallbackProviders: defaultIpfsProviders.slice(1), - }) - .addEnv(defaultPackages.ipfsResolver, { - retries: { tryResolveUri: 2, getFile: 2 }, - }) - .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ - defaultPackages.fileSystemResolver, - defaultPackages.ipfsResolver, - defaultPackages.ensResolver, - ]) - .addInterfaceImplementation( - defaultInterfaces.ethereumProvider, - defaultPackages.ethereumProvider - ) - .buildCoreConfig(); - - return new PolywrapClient(coreClientConfig, { noDefaults: true }); -} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index aeb724640f..bbf9a9e8d9 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,14 +1,22 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; -import { getClient } from "./getClient"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; -import { Connections, Connection } from "ethereum-provider-js"; +import { + Connections, + Connection, + ethereumProviderPlugin, +} from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; import { invokeWithTimeout } from "wraplib"; +import { + ClientConfigBuilder, + defaultPackages, +} from "@polywrap/client-config-builder-js"; +import { PolywrapClient } from "@polywrap/client-js"; class ENSRecursiveNameRegisterPublisher implements DeployModule { async execute( @@ -45,16 +53,37 @@ class ENSRecursiveNameRegisterPublisher implements DeployModule { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const connections = new Connections({ - networks: { - [network]: new Connection({ - provider: config.provider, - signer, + const clientConfig = new ClientConfigBuilder() + .addRedirects([ + { + from: "wrap://ens/uts46.polywrap.eth", + to: embeddedWrappers.uts46, + }, + { + from: "wrap://ens/sha3.polywrap.eth", + to: embeddedWrappers.sha3, + }, + ]) + .addPackage({ + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ + connections: new Connections({ + networks: { + [network]: new Connection({ + provider: config.provider, + signer, + }), + }, + defaultNetwork: network, + }), }), - }, - defaultNetwork: network, - }); - const client = getClient(connections); + }) + .setEnv(defaultPackages.ipfsResolver, { + retries: { tryResolveUri: 2, getFile: 2 }, + }) + .build(); + + const client = new PolywrapClient(clientConfig); const signerAddress = await client.invoke({ method: "getSignerAddress", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts deleted file mode 100644 index 716a3a03d2..0000000000 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/getClient.ts +++ /dev/null @@ -1,96 +0,0 @@ -import { ethereumProviderPlugin, Connections } from "ethereum-provider-js"; -import { PolywrapClient } from "@polywrap/client-js"; -import { - PackageToWrapperCacheResolver, - RecursiveResolver, - StaticResolver, - WrapperCache, -} from "@polywrap/uri-resolvers-js"; -import { embeddedWrappers } from "@polywrap/test-env-js"; -import { - ClientConfigBuilder, - defaultInterfaces, - defaultIpfsProviders, - defaultPackages, - defaultWrappers, -} from "@polywrap/client-config-builder-js"; -import { ipfsPlugin } from "@polywrap/ipfs-plugin-js"; -import { ipfsResolverPlugin } from "@polywrap/ipfs-resolver-plugin-js"; -import { httpPlugin } from "@polywrap/http-plugin-js"; -import { ensResolverPlugin } from "@polywrap/ens-resolver-plugin-js"; -import { ExtendableUriResolver } from "@polywrap/uri-resolver-extensions-js"; -import { fileSystemPlugin } from "@polywrap/fs-plugin-js"; -import { fileSystemResolverPlugin } from "@polywrap/fs-resolver-plugin-js"; - -export function getClient(connections: Connections): PolywrapClient { - const uriResolver = RecursiveResolver.from( - PackageToWrapperCacheResolver.from( - [ - StaticResolver.from([ - { - from: "wrap://ens/uts46.polywrap.eth", - to: embeddedWrappers.uts46, - }, - { - from: "wrap://ens/sha3.polywrap.eth", - to: embeddedWrappers.sha3, - }, - { - from: "wrap://ens/ethereum.polywrap.eth", - to: defaultWrappers.ethereum, - }, - { - uri: defaultPackages.fileSystem, - package: fileSystemPlugin({}), - }, - { - uri: defaultPackages.fileSystemResolver, - package: fileSystemResolverPlugin({}), - }, - { - uri: defaultPackages.ipfs, - package: ipfsPlugin({}), - }, - { - uri: defaultPackages.ipfsResolver, - package: ipfsResolverPlugin({}), - }, - { - uri: defaultPackages.http, - package: httpPlugin({}), - }, - { - uri: defaultPackages.ensResolver, - package: ensResolverPlugin({}), - }, - { - uri: defaultPackages.ethereumProvider, - package: ethereumProviderPlugin({ connections }), - }, - ]), - new ExtendableUriResolver(), - ], - new WrapperCache() - ) - ); - const coreClientConfig = new ClientConfigBuilder(undefined, uriResolver) - .addEnv(defaultPackages.ipfs, { - provider: defaultIpfsProviders[0], - fallbackProviders: defaultIpfsProviders.slice(1), - }) - .addEnv(defaultPackages.ipfsResolver, { - retries: { tryResolveUri: 2, getFile: 2 }, - }) - .addInterfaceImplementations(ExtendableUriResolver.extInterfaceUri, [ - defaultPackages.fileSystemResolver, - defaultPackages.ipfsResolver, - defaultPackages.ensResolver, - ]) - .addInterfaceImplementation( - defaultInterfaces.ethereumProvider, - defaultPackages.ethereumProvider - ) - .buildCoreConfig(); - - return new PolywrapClient(coreClientConfig, { noDefaults: true }); -} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 1ae5eb131f..93cc850f3e 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,14 +1,22 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; -import { getClient } from "./getClient"; import { invokeWithTimeout } from "wraplib"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; -import { Connections, Connection } from "ethereum-provider-js"; +import { + Connections, + Connection, + ethereumProviderPlugin, +} from "ethereum-provider-js"; +import { + ClientConfigBuilder, + defaultPackages, +} from "@polywrap/client-config-builder-js"; +import { PolywrapClient } from "@polywrap/client-js"; const contentHash = require("content-hash"); @@ -42,16 +50,37 @@ class ENSPublisher implements DeployModule { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const connections = new Connections({ - networks: { - [network]: new Connection({ - provider: config.provider, - signer, + const clientConfig = new ClientConfigBuilder() + .addRedirects([ + { + from: "wrap://ens/uts46.polywrap.eth", + to: embeddedWrappers.uts46, + }, + { + from: "wrap://ens/sha3.polywrap.eth", + to: embeddedWrappers.sha3, + }, + ]) + .addPackage({ + uri: defaultPackages.ethereumProvider, + package: ethereumProviderPlugin({ + connections: new Connections({ + networks: { + [network]: new Connection({ + provider: config.provider, + signer, + }), + }, + defaultNetwork: network, + }), }), - }, - defaultNetwork: network, - }); - const client = getClient(connections); + }) + .setEnv(defaultPackages.ipfsResolver, { + retries: { tryResolveUri: 2, getFile: 2 }, + }) + .build(); + + const client = new PolywrapClient(clientConfig); const resolver = await client.invoke({ method: "getResolver", diff --git a/packages/js/client-config-builder/package.json b/packages/js/client-config-builder/package.json index 1aac3ea772..dca79e3faa 100644 --- a/packages/js/client-config-builder/package.json +++ b/packages/js/client-config-builder/package.json @@ -21,7 +21,7 @@ "dependencies": { "@polywrap/core-js": "0.10.0-pre.7", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.3", + "ethereum-provider-js": "0.1.4", "@polywrap/fs-plugin-js": "0.10.0-pre.7", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/http-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index f307628a62..7afe0a365c 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -27,7 +27,7 @@ export const defaultWrappers = { graphNode: "wrap://ens/goerli/graph-node.wrappers.eth", ensTextRecordResolver: "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy", - ethereum: "wrap://ipfs/QmdEMfomFW1XqoxcsCEnhujn9ebQezUXw8pmwLtecyR6F6", + ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", }; export const defaultPackages = { @@ -47,7 +47,7 @@ export const defaultInterfaces = { uriResolver: "wrap://ens/uri-resolver.core.polywrap.eth", concurrent: "wrap://ens/goerli/interface.concurrent.wrappers.eth", logger: "wrap://ens/wrappers.polywrap.eth:logger@1.0.0", - ethereumProvider: "wrap://ens/iprovider.polywrap.eth", + ethereumProvider: "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0", }; export const getDefaultConfig = (): ClientConfig => { diff --git a/packages/js/client/package.json b/packages/js/client/package.json index d53eaafa0a..91bd6d343b 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -33,7 +33,7 @@ }, "devDependencies": { "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.3", + "ethereum-provider-js": "0.1.4", "@polywrap/fs-plugin-js": "0.10.0-pre.7", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/http-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 7b4b711bd7..7f3cc8300d 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -28,7 +28,7 @@ }, "devDependencies": { "@polywrap/client-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.3", + "ethereum-provider-js": "0.1.4", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/client-config-builder-js": "0.10.0-pre.7", diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts index 2224d2a7f1..c9769c5d4f 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts @@ -46,13 +46,9 @@ export class IpfsResolverPlugin extends Module { _client ); - if (manifestResult.ok) { - try { - manifest = Buffer.from(manifestResult.value); - return { uri: null, manifest: manifest }; - } catch (e) { - break; - } + if (manifestResult.ok && manifestResult.value.length > 0) { + manifest = Buffer.from(manifestResult.value); + return { uri: null, manifest }; } } diff --git a/yarn.lock b/yarn.lock index dc6296badf..4382569cc0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4915,6 +4915,13 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== +async-mutex@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f" + integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== + dependencies: + tslib "^2.4.0" + async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -8024,14 +8031,14 @@ etag@~1.8.1: resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== -ethereum-provider-js@0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.3.tgz#a5fe8966a6dca42442b3802bc291a98d9d3ca723" - integrity sha512-7Ne7DBMCJf2JpuamqNh/4a0mQJYTQgyfgH2BMqJ/LsRCjh1zjZCAuEiLkBIafOmmh6rA4X8vDY11rgkml2GC/g== +ethereum-provider-js@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.4.tgz#c372a011005dfd854dab97f7b8774d542917b2ec" + integrity sha512-TxABRi+Dp+ZBTHdLj5btGc7xwWNBTxJrRxp+0fK5ovUBfgnuCyMQuUOT48JNJybhALqiU9iZUPN1g0/MXhnQEg== dependencies: "@ethersproject/address" "5.7.0" "@ethersproject/providers" "5.7.0" - "@polywrap/core-js" "0.10.0-pre.6" + "@polywrap/core-js" "0.10.0-pre.7" ethers "5.7.0" ethers@5.0.7: @@ -17221,7 +17228,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0: +tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== @@ -18253,14 +18260,15 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wraplib@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/wraplib/-/wraplib-0.1.0.tgz#191e00aeed534b69fbfa8312616548edfd18c522" - integrity sha512-z1WlZIz0Ks4qsBbn6DR4URYllS2lT+ldvuMdITzxeF8gJyBAFaMDiQ6pxsGAeWiQ8DAXKsFLlpbHEGzilF+GVQ== +wraplib@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/wraplib/-/wraplib-0.1.1.tgz#67cf066416ad6f8435c1750fa20433eeb6c1b576" + integrity sha512-UBTHt+jh2cecYhKIN1pNl7ok87A8vBW8UXxHVVHuP14+90ugjvG7kdd3vyW2hqsgcr/tyCpPZGPGzKTJX1jpEg== dependencies: "@polywrap/core-js" "0.10.0-pre.7" "@polywrap/result" "0.10.0-pre.7" "@polywrap/uri-resolvers-js" "0.10.0-pre.7" + async-mutex "0.4.0" wrappy@1: version "1.0.2" From 445c2ba97d543e5964617800b856d64f0b51c534 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 25 Jan 2023 16:03:55 +0530 Subject: [PATCH 36/51] improved UInt8Array validity check in ipfs resolver plugin --- packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts index c9769c5d4f..fca1b07978 100644 --- a/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts +++ b/packages/js/plugins/uri-resolvers/ipfs-resolver/src/index.ts @@ -46,7 +46,7 @@ export class IpfsResolverPlugin extends Module { _client ); - if (manifestResult.ok && manifestResult.value.length > 0) { + if (manifestResult.ok && manifestResult.value?.length) { manifest = Buffer.from(manifestResult.value); return { uri: null, manifest }; } From 63a88562d985131cdfdda2d05fa55e861e5e9d8c Mon Sep 17 00:00:00 2001 From: krisbitney Date: Fri, 27 Jan 2023 17:44:49 +0530 Subject: [PATCH 37/51] added copies of invokeWithTimeout.ts to each of the defult ens deployment modules and removed wraplib dependency --- packages/cli/package.json | 1 - .../ens-recursive-name-register/index.ts | 2 +- .../invokeWithTimeout.ts | 56 +++++++++++++++++++ .../lib/defaults/deploy-modules/ens/index.ts | 2 +- .../deploy-modules/ens/invokeWithTimeout.ts | 56 +++++++++++++++++++ yarn.lock | 19 +------ 6 files changed, 115 insertions(+), 21 deletions(-) create mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts create mode 100644 packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts diff --git a/packages/cli/package.json b/packages/cli/package.json index aeed837158..a755c7f05d 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -39,7 +39,6 @@ "colors": "1.4.0" }, "dependencies": { - "wraplib": "0.1.1", "@ethersproject/providers": "5.6.8", "@ethersproject/wallet": "5.6.2", "@formatjs/intl": "1.8.2", diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index bbf9a9e8d9..881966503a 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -1,6 +1,7 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; +import { invokeWithTimeout } from "./invokeWithTimeout"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; @@ -11,7 +12,6 @@ import { ethereumProviderPlugin, } from "ethereum-provider-js"; import { embeddedWrappers } from "@polywrap/test-env-js"; -import { invokeWithTimeout } from "wraplib"; import { ClientConfigBuilder, defaultPackages, diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts new file mode 100644 index 0000000000..117bd6b78d --- /dev/null +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts @@ -0,0 +1,56 @@ +import { + Invoker, + InvokeResult, + InvokerOptions, + WrapError, + WrapErrorCode, +} from "@polywrap/core-js"; +import { ResultErr } from "@polywrap/result"; + +/** + * Invoke a wrapper; abort the invocation if a timeout expires. + * + * @param client - a Polywrap Invoker (e.g. CoreClient) + * @param options - invocation options + * @param timeout - a timeout period (in ms) + * */ +export async function invokeWithTimeout( + client: Invoker, + options: InvokerOptions, + timeout: number +): Promise> { + const controller = new AbortController(); + + const timer = setTimeout(() => { + controller.abort(); + }, timeout); + + return await new Promise>((resolve, reject) => { + controller.signal.addEventListener("abort", () => { + const wrapError = new WrapError("Timeout has been reached", { + code: WrapErrorCode.WRAPPER_INVOKE_ABORTED, + uri: options.uri, + method: options.method, + args: JSON.stringify(options.args, null, 2), + }); + reject(wrapError); + }); + client + .invoke(options) + .then((result) => resolve(result)) + .catch((error) => { + // the client threw an error (this should never happen) + const wrapError = new WrapError(error.message, { + code: WrapErrorCode.WRAPPER_INVOKE_FAIL, + uri: options.uri, + method: options.method, + args: JSON.stringify(options.args, null, 2), + }); + resolve(ResultErr(wrapError)); + }); + }) + .catch((error) => { + return ResultErr(error as WrapError); + }) + .finally(() => timer && clearTimeout(timer)); +} diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 93cc850f3e..d0795e6382 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -1,8 +1,8 @@ /* eslint-disable @typescript-eslint/no-require-imports */ /* eslint-disable @typescript-eslint/no-var-requires */ import { DeployModule } from "../../../deploy"; +import { invokeWithTimeout } from "./invokeWithTimeout"; -import { invokeWithTimeout } from "wraplib"; import { Wallet } from "@ethersproject/wallet"; import { JsonRpcProvider } from "@ethersproject/providers"; import { Uri } from "@polywrap/core-js"; diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts new file mode 100644 index 0000000000..117bd6b78d --- /dev/null +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts @@ -0,0 +1,56 @@ +import { + Invoker, + InvokeResult, + InvokerOptions, + WrapError, + WrapErrorCode, +} from "@polywrap/core-js"; +import { ResultErr } from "@polywrap/result"; + +/** + * Invoke a wrapper; abort the invocation if a timeout expires. + * + * @param client - a Polywrap Invoker (e.g. CoreClient) + * @param options - invocation options + * @param timeout - a timeout period (in ms) + * */ +export async function invokeWithTimeout( + client: Invoker, + options: InvokerOptions, + timeout: number +): Promise> { + const controller = new AbortController(); + + const timer = setTimeout(() => { + controller.abort(); + }, timeout); + + return await new Promise>((resolve, reject) => { + controller.signal.addEventListener("abort", () => { + const wrapError = new WrapError("Timeout has been reached", { + code: WrapErrorCode.WRAPPER_INVOKE_ABORTED, + uri: options.uri, + method: options.method, + args: JSON.stringify(options.args, null, 2), + }); + reject(wrapError); + }); + client + .invoke(options) + .then((result) => resolve(result)) + .catch((error) => { + // the client threw an error (this should never happen) + const wrapError = new WrapError(error.message, { + code: WrapErrorCode.WRAPPER_INVOKE_FAIL, + uri: options.uri, + method: options.method, + args: JSON.stringify(options.args, null, 2), + }); + resolve(ResultErr(wrapError)); + }); + }) + .catch((error) => { + return ResultErr(error as WrapError); + }) + .finally(() => timer && clearTimeout(timer)); +} diff --git a/yarn.lock b/yarn.lock index 4382569cc0..ea7d39897a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4915,13 +4915,6 @@ async-limiter@~1.0.0: resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-mutex@0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/async-mutex/-/async-mutex-0.4.0.tgz#ae8048cd4d04ace94347507504b3cf15e631c25f" - integrity sha512-eJFZ1YhRR8UN8eBLoNzcDPcy/jqjsg6I1AP+KvWQX80BqOSW1oJPJXDylPUEeMr2ZQvHgnQ//Lp6f3RQ1zI7HA== - dependencies: - tslib "^2.4.0" - async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" @@ -17228,7 +17221,7 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0: +tslib@^2.0.3, tslib@^2.1.0: version "2.4.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.1.tgz#0d0bfbaac2880b91e22df0768e55be9753a5b17e" integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== @@ -18260,16 +18253,6 @@ wrap-ansi@^7.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wraplib@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/wraplib/-/wraplib-0.1.1.tgz#67cf066416ad6f8435c1750fa20433eeb6c1b576" - integrity sha512-UBTHt+jh2cecYhKIN1pNl7ok87A8vBW8UXxHVVHuP14+90ugjvG7kdd3vyW2hqsgcr/tyCpPZGPGzKTJX1jpEg== - dependencies: - "@polywrap/core-js" "0.10.0-pre.7" - "@polywrap/result" "0.10.0-pre.7" - "@polywrap/uri-resolvers-js" "0.10.0-pre.7" - async-mutex "0.4.0" - wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" From 94681a61524d166722b24416823dbc366a7f1c4b Mon Sep 17 00:00:00 2001 From: krisbitney Date: Mon, 13 Feb 2023 22:36:52 +0530 Subject: [PATCH 38/51] fix merge conflicts --- .../ens-recursive-name-register/index.ts | 7 +- .../invokeWithTimeout.ts | 4 +- .../lib/defaults/deploy-modules/ens/index.ts | 11 +- .../deploy-modules/ens/invokeWithTimeout.ts | 4 +- .../cli/src/lib/test-env/client-config.ts | 3 +- packages/js/client-config-builder/README.md | 8 +- .../src/bundles/getDefaultConfig.ts | 9 +- ...olve a URI resolver extension wrapper.json | 8 +- ...cting by a URI resolver extension - 1.json | 8 +- ...cting by a URI resolver extension - 2.json | 2 +- ...te recursion when resolved at runtime.json | 8 +- ...after URI resolver extension redirect.json | 8 +- .../core/uri-resolution/histories/sanity.json | 12 +- yarn.lock | 199 ++++++++++-------- 14 files changed, 165 insertions(+), 126 deletions(-) diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts index 0fc368875c..8a5793d8ed 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/index.ts @@ -11,11 +11,10 @@ import { Connection, ethereumProviderPlugin, } from "ethereum-provider-js"; -import { embeddedWrappers } from "@polywrap/test-env-js"; import { PolywrapClient } from "@polywrap/client-js"; import { - defaultIpfsProviders, - defaultPackages, + defaultInterfaces, + defaultWrappers, } from "@polywrap/client-config-builder-js"; class ENSRecursiveNameRegisterPublisher implements DeployModule { @@ -117,7 +116,7 @@ class ENSRecursiveNameRegisterPublisher implements DeployModule { client, { method: "awaitTransaction", - uri: defaultWrappers.ethereum, + uri: Uri.from(defaultWrappers.ethereum), args: { txHash: registerData.value[0].tx.hash, connection: { diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts index 117bd6b78d..bd8523c65b 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens-recursive-name-register/invokeWithTimeout.ts @@ -29,7 +29,7 @@ export async function invokeWithTimeout( controller.signal.addEventListener("abort", () => { const wrapError = new WrapError("Timeout has been reached", { code: WrapErrorCode.WRAPPER_INVOKE_ABORTED, - uri: options.uri, + uri: options.uri.uri, method: options.method, args: JSON.stringify(options.args, null, 2), }); @@ -42,7 +42,7 @@ export async function invokeWithTimeout( // the client threw an error (this should never happen) const wrapError = new WrapError(error.message, { code: WrapErrorCode.WRAPPER_INVOKE_FAIL, - uri: options.uri, + uri: options.uri.uri, method: options.method, args: JSON.stringify(options.args, null, 2), }); diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts index 1e614b688a..515d3ccfc6 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/index.ts @@ -13,8 +13,8 @@ import { } from "ethereum-provider-js"; import { PolywrapClient } from "@polywrap/client-js"; import { - defaultIpfsProviders, - defaultPackages, + defaultInterfaces, + defaultWrappers, } from "@polywrap/client-config-builder-js"; const contentHash = require("content-hash"); @@ -49,9 +49,6 @@ class ENSPublisher implements DeployModule { ? new Wallet(config.privateKey).connect(connectionProvider) : undefined; - const ethereumPluginUri = "wrap://ens/ethereum.polywrap.eth"; - const ensWrapperUri = embeddedWrappers.ens; - const client = new PolywrapClient({ packages: [ { @@ -73,7 +70,7 @@ class ENSPublisher implements DeployModule { const resolver = await client.invoke({ method: "getResolver", - uri: defaultWrappers.ens + uri: defaultWrappers.ens, args: { registryAddress: config.ensRegistryAddress, domain: config.domainName, @@ -114,7 +111,7 @@ class ENSPublisher implements DeployModule { client, { method: "awaitTransaction", - uri: defaultWrappers.ethereum; + uri: Uri.from(defaultWrappers.ethereum), args: { txHash: setContenthashData.value.hash, connection: { diff --git a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts index 117bd6b78d..bd8523c65b 100644 --- a/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts +++ b/packages/cli/src/lib/defaults/deploy-modules/ens/invokeWithTimeout.ts @@ -29,7 +29,7 @@ export async function invokeWithTimeout( controller.signal.addEventListener("abort", () => { const wrapError = new WrapError("Timeout has been reached", { code: WrapErrorCode.WRAPPER_INVOKE_ABORTED, - uri: options.uri, + uri: options.uri.uri, method: options.method, args: JSON.stringify(options.args, null, 2), }); @@ -42,7 +42,7 @@ export async function invokeWithTimeout( // the client threw an error (this should never happen) const wrapError = new WrapError(error.message, { code: WrapErrorCode.WRAPPER_INVOKE_FAIL, - uri: options.uri, + uri: options.uri.uri, method: options.method, args: JSON.stringify(options.args, null, 2), }); diff --git a/packages/cli/src/lib/test-env/client-config.ts b/packages/cli/src/lib/test-env/client-config.ts index dc7eefb9d2..53bb0a14e6 100644 --- a/packages/cli/src/lib/test-env/client-config.ts +++ b/packages/cli/src/lib/test-env/client-config.ts @@ -2,6 +2,7 @@ import { getTestEnvProviders } from "./providers"; import { BuilderConfig, + defaultInterfaces, defaultIpfsProviders, defaultPackages, } from "@polywrap/client-config-builder-js"; @@ -35,7 +36,7 @@ export function getTestEnvClientConfig(): Partial { }, }, packages: { - [defaultPackages.ethereumProvider]: ethereumProviderPlugin({ + [defaultInterfaces.ethereumProvider]: ethereumProviderPlugin({ connections: new Connections({ networks: { testnet: new Connection({ diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 9153833b3c..8acfe458e2 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -452,7 +452,9 @@ export const defaultWrappers = { uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W", + ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", + ens: "wrap://ipfs/QmUKsxcf3cAjBa4SUMg9fuGyNHRWa1qvu41o66wBE5vLKd", }; export const defaultPackages = { @@ -469,6 +471,7 @@ export const defaultInterfaces = { http: "wrap://ens/wrappers.polywrap.eth:http@1.1.0", fileSystem: "wrap://ens/wrappers.polywrap.eth:file-system@1.0.0", ipfsHttpClient: "wrap://ens/wrappers.polywrap.eth:ipfs-http-client@1.0.0", + ethereumProvider: "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0", }; export const getDefaultPackages = (): Record => { @@ -478,7 +481,7 @@ export const getDefaultPackages = (): Record => { // ENS is required for resolving domain to IPFS hashes [defaultPackages.ensResolver]: ensResolverPlugin({}), // Ethereum is required for resolving domain to Ethereum addresses - [defaultPackages.ethereum]: ethereumPlugin({ + [defaultInterfaces.ethereumProvider]: ethereumProviderPlugin({ connections: new Connections({ networks: { mainnet: new Connection({ @@ -524,6 +527,7 @@ export const getDefaultConfig = (): BuilderConfig => ({ ]), [defaultInterfaces.fileSystem]: new Set([defaultInterfaces.fileSystem]), [defaultInterfaces.http]: new Set([defaultInterfaces.http]), + [defaultInterfaces.ethereumProvider]: new Set([defaultInterfaces.ethereumProvider]) }, redirects: { // TODO: remove sha3 and uts46 redirects when ethereum wrapper is merged (used by updated ens wrapper) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 2ed6225458..7a80c07ba2 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -33,8 +33,9 @@ export const defaultWrappers = { uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/QmbaqqUVaKiQSX7YbhwWzZC5NsUgwMVwXnARDfG6dbQgKy", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W", ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", + ens: "wrap://ipfs/QmUKsxcf3cAjBa4SUMg9fuGyNHRWa1qvu41o66wBE5vLKd", }; export const defaultPackages = { @@ -43,7 +44,7 @@ export const defaultPackages = { httpResolver: "wrap://package/http-resolver", fileSystemResolver: "wrap://package/fs-resolver", ipfsResolver: "wrap://package/ipfs-resolver", - }; +}; export const defaultInterfaces = { concurrent: "wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0", @@ -107,7 +108,9 @@ export const getDefaultConfig = (): BuilderConfig => ({ ]), [defaultInterfaces.fileSystem]: new Set([defaultInterfaces.fileSystem]), [defaultInterfaces.http]: new Set([defaultInterfaces.http]), - [defaultInterfaces.ethereumProvider]: new Set([defaultInterfaces.ethereumProvider]) + [defaultInterfaces.ethereumProvider]: new Set([ + defaultInterfaces.ethereumProvider, + ]), }, redirects: { // TODO: remove sha3 and uts46 redirects when ethereum wrapper is merged (used by updated ens wrapper) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json index 31a2cf08e6..31b29e6cb7 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json index 41f33df68e..da5798b959 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json index 3fed3237b9..2fafbee250 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json @@ -9,7 +9,7 @@ "wrap://package/ens-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ens-resolver)", "wrap://package/fs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/fs-resolver)", "wrap://package/http-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/http-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", "wrap://file/$root-wrapper-dir/simple-fs-resolver/build => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://file/$root-wrapper-dir/simple-fs-resolver/build)", "wrap://file/$root-wrapper-dir/simple-redirect-resolver/build => PackageToWrapperCacheResolver => wrapper (wrap://file/$root-wrapper-dir/simple-redirect-resolver/build)", [ diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json index 6a2bf3843b..35b2b6a3ed 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json index 134fc47469..d381cb1ed2 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 6aa4325ec1..dfb303b799 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -38,19 +38,19 @@ ] ], "wrap://ens/uri.eth => ResolverExtension (wrap://package/http-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => UriResolverAggregator => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => StaticResolver - Miss", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ExtendableUriResolver => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => StaticResolver - Miss", + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ], - "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmfRCVA1MSAjUbrXXjya4xA9QHkbWeiKRsT7Um1cvrR7FY)" + "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" ] ] ] diff --git a/yarn.lock b/yarn.lock index c36c75615f..96a911a66f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -423,7 +423,7 @@ minimatch "^3.0.4" strip-json-comments "^3.1.1" -"@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0": +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.0.0", "@ethersproject/abi@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== @@ -438,7 +438,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.0.3", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.0.0", "@ethersproject/abstract-provider@^5.6.1", "@ethersproject/abstract-provider@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== @@ -451,7 +451,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/web" "^5.7.0" -"@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.0.3", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.0.0", "@ethersproject/abstract-signer@^5.6.2", "@ethersproject/abstract-signer@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== @@ -473,7 +473,7 @@ "@ethersproject/logger" "^5.0.5" "@ethersproject/rlp" "^5.0.3" -"@ethersproject/address@^5.0.0", "@ethersproject/address@^5.0.3", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.0.0", "@ethersproject/address@^5.6.1", "@ethersproject/address@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== @@ -484,7 +484,7 @@ "@ethersproject/logger" "^5.7.0" "@ethersproject/rlp" "^5.7.0" -"@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.0.0", "@ethersproject/base64@^5.6.1", "@ethersproject/base64@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== @@ -499,7 +499,7 @@ "@ethersproject/bytes" "^5.0.9" "@ethersproject/properties" "^5.0.7" -"@ethersproject/basex@^5.0.3", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.6.1", "@ethersproject/basex@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== @@ -507,7 +507,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/properties" "^5.7.0" -"@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.0.6", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.0.0", "@ethersproject/bignumber@^5.0.10", "@ethersproject/bignumber@^5.6.2", "@ethersproject/bignumber@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== @@ -516,21 +516,21 @@ "@ethersproject/logger" "^5.7.0" bn.js "^5.2.1" -"@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.0.0", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.0.9", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.0.3", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.0.0", "@ethersproject/constants@^5.6.1", "@ethersproject/constants@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== dependencies: "@ethersproject/bignumber" "^5.7.0" -"@ethersproject/contracts@^5.0.0": +"@ethersproject/contracts@5.7.0", "@ethersproject/contracts@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== @@ -546,7 +546,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/transactions" "^5.7.0" -"@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.0.3", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.0.0", "@ethersproject/hash@^5.6.1", "@ethersproject/hash@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== @@ -561,7 +561,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.0.0", "@ethersproject/hdnode@^5.6.2", "@ethersproject/hdnode@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== @@ -579,7 +579,7 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.0.0", "@ethersproject/json-wallets@^5.6.1", "@ethersproject/json-wallets@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== @@ -598,7 +598,7 @@ aes-js "3.0.0" scrypt-js "3.0.1" -"@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.0.0", "@ethersproject/keccak256@^5.0.3", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== @@ -606,19 +606,26 @@ "@ethersproject/bytes" "^5.7.0" js-sha3 "0.8.0" -"@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.0.0", "@ethersproject/logger@^5.0.5", "@ethersproject/logger@^5.6.0", "@ethersproject/logger@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== -"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.0.3", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": +"@ethersproject/networks@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.0.tgz#df72a392f1a63a57f87210515695a31a245845ad" + integrity sha512-MG6oHSQHd4ebvJrleEQQ4HhVu8Ichr0RDYEfHzsVAVjHNM+w36x9wp9r+hf1JstMXtseXDtkiVoARAG6M959AA== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/networks@^5.0.0", "@ethersproject/networks@^5.6.3", "@ethersproject/networks@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.7.0": +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.0.0", "@ethersproject/pbkdf2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== @@ -626,38 +633,13 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/sha2" "^5.7.0" -"@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.3", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.0.0", "@ethersproject/properties@^5.0.7", "@ethersproject/properties@^5.6.0", "@ethersproject/properties@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== dependencies: "@ethersproject/logger" "^5.7.0" -"@ethersproject/providers@5.0.7": - version "5.0.7" - resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.0.7.tgz#8dfb9eacb36d3c05c08831f71ad43fb46d2aaec6" - integrity sha512-lT+w/w2PKX9oyddX0DTBYl2CVHJTJONZP5HLJ3MzVvSA5dTOdiJ9Sx5rpqR7Tw+mxVA9xPjanoNCaPPIT7cykQ== - dependencies: - "@ethersproject/abstract-provider" "^5.0.3" - "@ethersproject/abstract-signer" "^5.0.3" - "@ethersproject/address" "^5.0.3" - "@ethersproject/basex" "^5.0.3" - "@ethersproject/bignumber" "^5.0.6" - "@ethersproject/bytes" "^5.0.4" - "@ethersproject/constants" "^5.0.3" - "@ethersproject/hash" "^5.0.3" - "@ethersproject/logger" "^5.0.5" - "@ethersproject/networks" "^5.0.3" - "@ethersproject/properties" "^5.0.3" - "@ethersproject/random" "^5.0.3" - "@ethersproject/rlp" "^5.0.3" - "@ethersproject/sha2" "^5.0.3" - "@ethersproject/strings" "^5.0.3" - "@ethersproject/transactions" "^5.0.3" - "@ethersproject/web" "^5.0.4" - bech32 "1.1.4" - ws "7.2.3" - "@ethersproject/providers@5.6.8": version "5.6.8" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.6.8.tgz#22e6c57be215ba5545d3a46cf759d265bb4e879d" @@ -684,6 +666,32 @@ bech32 "1.1.4" ws "7.4.6" +"@ethersproject/providers@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.0.tgz#a885cfc7650a64385e7b03ac86fe9c2d4a9c2c63" + integrity sha512-+TTrrINMzZ0aXtlwO/95uhAggKm4USLm1PbeCBR/3XZ7+Oey+3pMyddzZEyRhizHpy1HXV0FRWRMI1O3EGYibA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + "@ethersproject/providers@^5.0.0": version "5.7.2" resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" @@ -710,7 +718,7 @@ bech32 "1.1.4" ws "7.4.6" -"@ethersproject/random@^5.0.0", "@ethersproject/random@^5.0.3", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.0.0", "@ethersproject/random@^5.6.1", "@ethersproject/random@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== @@ -718,7 +726,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.0.0", "@ethersproject/rlp@^5.0.3", "@ethersproject/rlp@^5.6.1", "@ethersproject/rlp@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== @@ -726,7 +734,7 @@ "@ethersproject/bytes" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.0.3", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.0.0", "@ethersproject/sha2@^5.6.1", "@ethersproject/sha2@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== @@ -735,7 +743,7 @@ "@ethersproject/logger" "^5.7.0" hash.js "1.1.7" -"@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.0.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== @@ -747,7 +755,7 @@ elliptic "6.5.4" hash.js "1.1.7" -"@ethersproject/solidity@^5.0.0": +"@ethersproject/solidity@5.7.0", "@ethersproject/solidity@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== @@ -759,7 +767,7 @@ "@ethersproject/sha2" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.0.3", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.0.0", "@ethersproject/strings@^5.6.1", "@ethersproject/strings@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== @@ -768,7 +776,7 @@ "@ethersproject/constants" "^5.7.0" "@ethersproject/logger" "^5.7.0" -"@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.0.3", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.0.0", "@ethersproject/transactions@^5.6.2", "@ethersproject/transactions@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== @@ -783,7 +791,7 @@ "@ethersproject/rlp" "^5.7.0" "@ethersproject/signing-key" "^5.7.0" -"@ethersproject/units@^5.0.0": +"@ethersproject/units@5.7.0", "@ethersproject/units@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== @@ -813,7 +821,7 @@ "@ethersproject/transactions" "^5.6.2" "@ethersproject/wordlists" "^5.6.1" -"@ethersproject/wallet@^5.0.0": +"@ethersproject/wallet@5.7.0", "@ethersproject/wallet@^5.0.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== @@ -834,7 +842,18 @@ "@ethersproject/transactions" "^5.7.0" "@ethersproject/wordlists" "^5.7.0" -"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.0.4", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": +"@ethersproject/web@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.0.tgz#40850c05260edad8b54827923bbad23d96aac0bc" + integrity sha512-ApHcbbj+muRASVDSCl/tgxaH2LBkRMEYfLOLVa0COipx0+nlu0QKet7U2lEg0vdkh8XRSLf2nd1f1Uk9SrVSGA== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/web@^5.0.0", "@ethersproject/web@^5.6.1", "@ethersproject/web@^5.7.0": version "5.7.1" resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== @@ -845,7 +864,7 @@ "@ethersproject/properties" "^5.7.0" "@ethersproject/strings" "^5.7.0" -"@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.0.0", "@ethersproject/wordlists@^5.6.1", "@ethersproject/wordlists@^5.7.0": version "5.7.0" resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== @@ -4686,13 +4705,15 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -eth-ens-namehash@2.0.8: - version "2.0.8" - resolved "https://registry.yarnpkg.com/eth-ens-namehash/-/eth-ens-namehash-2.0.8.tgz#229ac46eca86d52e0c991e7cb2aef83ff0f68bcf" - integrity sha512-VWEI1+KJfz4Km//dadyvBBoBeSQ0MHTXPvr8UIXiLW6IanxvAV+DmlZAijZwAyggqGUfwQBeHf7tc9wzc1piSw== +ethereum-provider-js@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.4.tgz#c372a011005dfd854dab97f7b8774d542917b2ec" + integrity sha512-TxABRi+Dp+ZBTHdLj5btGc7xwWNBTxJrRxp+0fK5ovUBfgnuCyMQuUOT48JNJybhALqiU9iZUPN1g0/MXhnQEg== dependencies: - idna-uts46-hx "^2.3.1" - js-sha3 "^0.5.7" + "@ethersproject/address" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@polywrap/core-js" "0.10.0-pre.7" + ethers "5.7.0" ethers@5.0.7: version "5.0.7" @@ -4729,6 +4750,42 @@ ethers@5.0.7: "@ethersproject/web" "^5.0.0" "@ethersproject/wordlists" "^5.0.0" +ethers@5.7.0: + version "5.7.0" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.0.tgz#0055da174b9e076b242b8282638bc94e04b39835" + integrity sha512-5Xhzp2ZQRi0Em+0OkOcRHxPzCfoBfgtOQA+RUylSkuHbhTEaQklnYi2hsWbRgs3ztJsXVXd9VKBcO1ScWL8YfA== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.0" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.0" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.0" + "@ethersproject/wordlists" "5.7.0" + event-emitter@^0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" @@ -5622,13 +5679,6 @@ iconv-lite@^0.6.2: dependencies: safer-buffer ">= 2.1.2 < 3.0.0" -idna-uts46-hx@^2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/idna-uts46-hx/-/idna-uts46-hx-2.3.1.tgz#a1dc5c4df37eee522bf66d969cc980e00e8711f9" - integrity sha512-PWoF9Keq6laYdIRwwCdhTPl60xRqAloYNMQLiyUnG42VjT53oW07BXIRM+NK7eQjzXjAk2gUvX9caRxlnF9TAA== - dependencies: - punycode "2.1.0" - ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" @@ -6853,11 +6903,6 @@ js-sha3@0.8.0, js-sha3@^0.8.0: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== -js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - integrity sha512-GII20kjaPX0zJ8wzkTbNDYMY7msuZcTWk8S5UOh6806Jq/wz1J8/bnr8uGU0DAUmYDjj2Mr4X1cW8v/GLYnR+g== - js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" @@ -8801,11 +8846,6 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" -punycode@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" - integrity sha512-Yxz2kRwT90aPiWEMHVYnEf4+rhwF1tBmmZ4KepCP+Wkium9JxtWnUm1nqGwpiAHr/tnTSeHqr3wb++jgSkXjhA== - punycode@^2.1.0, punycode@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" @@ -10694,11 +10734,6 @@ write-pkg@^4.0.0: type-fest "^0.4.1" write-json-file "^3.2.0" -ws@7.2.3: - version "7.2.3" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" - integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== - ws@7.4.6: version "7.4.6" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" From 1be734a8e60ced3c2b0cbe316d8bf57c1375539a Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 14 Feb 2023 00:02:07 +0530 Subject: [PATCH 39/51] added ens wrapper uri and updated ens text record uri --- packages/js/client-config-builder/README.md | 17 ++++++----------- .../src/bundles/getDefaultConfig.ts | 13 +++---------- packages/js/test-env/README.md | 11 ----------- packages/js/test-env/readme/README.md | 6 ------ packages/js/test-env/src/index.ts | 9 --------- .../js/test-env/src/wrappers/ens/wrap.info | Bin 52349 -> 0 bytes .../js/test-env/src/wrappers/ens/wrap.wasm | Bin 265476 -> 0 bytes .../js/test-env/src/wrappers/sha3/wrap.info | 1 - .../js/test-env/src/wrappers/sha3/wrap.wasm | Bin 143388 -> 0 bytes .../js/test-env/src/wrappers/uts46/wrap.info | Bin 2136 -> 0 bytes .../js/test-env/src/wrappers/uts46/wrap.wasm | Bin 438297 -> 0 bytes 11 files changed, 9 insertions(+), 48 deletions(-) delete mode 100644 packages/js/test-env/src/wrappers/ens/wrap.info delete mode 100755 packages/js/test-env/src/wrappers/ens/wrap.wasm delete mode 100644 packages/js/test-env/src/wrappers/sha3/wrap.info delete mode 100644 packages/js/test-env/src/wrappers/sha3/wrap.wasm delete mode 100644 packages/js/test-env/src/wrappers/uts46/wrap.info delete mode 100644 packages/js/test-env/src/wrappers/uts46/wrap.wasm diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 8acfe458e2..1cdadb293b 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -452,14 +452,13 @@ export const defaultWrappers = { uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W", + "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", - ens: "wrap://ipfs/QmUKsxcf3cAjBa4SUMg9fuGyNHRWa1qvu41o66wBE5vLKd", + ens: "wrap://ipfs/Qmez2b7nXaqhZhkfd25bdAkhPQgzJEZBtaUC5eM9gFdhHA", }; export const defaultPackages = { ensResolver: "wrap://package/ens-resolver", - ethereum: "wrap://ens/ethereum.polywrap.eth", httpResolver: "wrap://package/http-resolver", fileSystemResolver: "wrap://package/fs-resolver", ipfsResolver: "wrap://package/ipfs-resolver", @@ -527,15 +526,11 @@ export const getDefaultConfig = (): BuilderConfig => ({ ]), [defaultInterfaces.fileSystem]: new Set([defaultInterfaces.fileSystem]), [defaultInterfaces.http]: new Set([defaultInterfaces.http]), - [defaultInterfaces.ethereumProvider]: new Set([defaultInterfaces.ethereumProvider]) - }, - redirects: { - // TODO: remove sha3 and uts46 redirects when ethereum wrapper is merged (used by updated ens wrapper) - "wrap://ens/sha3.polywrap.eth": - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5", - "wrap://ens/uts46.polywrap.eth": - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB", + [defaultInterfaces.ethereumProvider]: new Set([ + defaultInterfaces.ethereumProvider, + ]), }, + redirects: {}, wrappers: {}, packages: getDefaultPackages(), resolvers: [], diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 7a80c07ba2..aa16dfa9a2 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -33,14 +33,13 @@ export const defaultWrappers = { uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W", + "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", - ens: "wrap://ipfs/QmUKsxcf3cAjBa4SUMg9fuGyNHRWa1qvu41o66wBE5vLKd", + ens: "wrap://ipfs/Qmez2b7nXaqhZhkfd25bdAkhPQgzJEZBtaUC5eM9gFdhHA", }; export const defaultPackages = { ensResolver: "wrap://package/ens-resolver", - ethereum: "wrap://ens/ethereum.polywrap.eth", httpResolver: "wrap://package/http-resolver", fileSystemResolver: "wrap://package/fs-resolver", ipfsResolver: "wrap://package/ipfs-resolver", @@ -112,13 +111,7 @@ export const getDefaultConfig = (): BuilderConfig => ({ defaultInterfaces.ethereumProvider, ]), }, - redirects: { - // TODO: remove sha3 and uts46 redirects when ethereum wrapper is merged (used by updated ens wrapper) - "wrap://ens/sha3.polywrap.eth": - "wrap://ipfs/QmThRxFfr7Hj9Mq6WmcGXjkRrgqMG3oD93SLX27tinQWy5", - "wrap://ens/uts46.polywrap.eth": - "wrap://ipfs/QmPL9Njg3rGkpoJyoy8pZ5fTavjvHxNuuuiGRApzyGESZB", - }, + redirects: {}, wrappers: {}, packages: getDefaultPackages(), resolvers: [], diff --git a/packages/js/test-env/README.md b/packages/js/test-env/README.md index 77985022d6..45617fd431 100644 --- a/packages/js/test-env/README.md +++ b/packages/js/test-env/README.md @@ -74,17 +74,6 @@ export const ensAddresses = { } as const; ``` -### embeddedWrappers - -```typescript -/** Wasm wrappers embedded in the package */ -export const embeddedWrappers = { - ens: `wrap://fs/${path.join(__dirname, "wrappers", "ens")}`, - uts46: `wrap://fs/${path.join(__dirname, "wrappers", "uts46")}`, - sha3: `wrap://fs/${path.join(__dirname, "wrappers", "sha3")}`, -}; -``` - ## Methods ### initTestEnvironment diff --git a/packages/js/test-env/readme/README.md b/packages/js/test-env/readme/README.md index e7c33cf883..66eb1c9456 100644 --- a/packages/js/test-env/readme/README.md +++ b/packages/js/test-env/readme/README.md @@ -54,12 +54,6 @@ $snippet: providers $snippet: ensAddresses ``` -### embeddedWrappers - -```typescript -$snippet: embeddedWrappers -``` - ## Methods ### initTestEnvironment diff --git a/packages/js/test-env/src/index.ts b/packages/js/test-env/src/index.ts index 0cd05fa6d0..007eb3000d 100644 --- a/packages/js/test-env/src/index.ts +++ b/packages/js/test-env/src/index.ts @@ -28,15 +28,6 @@ export const providers = { }; // $end -// $start: embeddedWrappers -/** Wasm wrappers embedded in the package */ -export const embeddedWrappers = { - ens: `wrap://fs/${path.join(__dirname, "wrappers", "ens")}`, - uts46: `wrap://fs/${path.join(__dirname, "wrappers", "uts46")}`, - sha3: `wrap://fs/${path.join(__dirname, "wrappers", "sha3")}`, -}; -// $end: embeddedWrappers - const monorepoCli = `${__dirname}/../../../cli/bin/polywrap`; const npmCli = `${__dirname}/../../../polywrap/bin/polywrap`; diff --git a/packages/js/test-env/src/wrappers/ens/wrap.info b/packages/js/test-env/src/wrappers/ens/wrap.info deleted file mode 100644 index e78cb54fb7c258946ea0de49f034fbe8ce07290a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 52349 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 af@!zQOQ|$d->h^Z!w+Nl3%C4q>;C}JSg6ea diff --git a/packages/js/test-env/src/wrappers/sha3/wrap.info b/packages/js/test-env/src/wrappers/sha3/wrap.info deleted file mode 100644 index 4c52e6c99d..0000000000 --- a/packages/js/test-env/src/wrappers/sha3/wrap.info +++ /dev/null @@ -1 +0,0 @@ -��version�0.1�name�sha3-wasm-rs�type�wasm�abi��version�0.1�moduleType��type�Module�kind̀�methods���name�sha3_512�return��type�String�name�sha3_512�requiredäkind"�scalar��name�sha3_512�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�sha3_384�return��type�String�name�sha3_384�requiredäkind"�scalar��name�sha3_384�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�sha3_256�return��type�String�name�sha3_256�requiredäkind"�scalar��name�sha3_256�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�sha3_224�return��type�String�name�sha3_224�requiredäkind"�scalar��name�sha3_224�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�keccak_512�return��type�String�name�keccak_512�requiredäkind"�scalar��name�keccak_512�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�keccak_384�return��type�String�name�keccak_384�requiredäkind"�scalar��name�keccak_384�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�keccak_256�return��type�String�name�keccak_256�requiredäkind"�scalar��name�keccak_256�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�keccak_224�return��type�String�name�keccak_224�requiredäkind"�scalar��name�keccak_224�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�hex_keccak_256�return��type�String�name�hex_keccak_256�requiredäkind"�scalar��name�hex_keccak_256�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��name�buffer_keccak_256�return��type�String�name�buffer_keccak_256�requiredäkind"�scalar��name�buffer_keccak_256�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�Bytes�name�message�requiredäkind"�scalar��name�message�type�Bytes�requiredäkind��name�shake_256�return��type�String�name�shake_256�requiredäkind"�scalar��name�shake_256�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��type�Int�name�outputBits�requiredäkind"�scalar��name�outputBits�type�Int�requiredäkind��name�shake_128�return��type�String�name�shake_128�requiredäkind"�scalar��name�shake_128�type�String�requiredäkind�type�Method�kind@�requiredéarguments���type�String�name�message�requiredäkind"�scalar��name�message�type�String�requiredäkind��type�Int�name�outputBits�requiredäkind"�scalar��name�outputBits�type�Int�requiredäkind \ No newline at end of file diff --git a/packages/js/test-env/src/wrappers/sha3/wrap.wasm b/packages/js/test-env/src/wrappers/sha3/wrap.wasm deleted file mode 100644 index a7471387494c28003996f3d8a6a5f933a0af3227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143388 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 diff --git a/packages/js/test-env/src/wrappers/uts46/wrap.wasm b/packages/js/test-env/src/wrappers/uts46/wrap.wasm deleted file mode 100644 index 686b360813e0a88d7e3bb2614cffe86e5c0d3d85..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 438297 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�t^kRJt#fASD3zG6+)C3Z+OZ^MJ|`_^+!U 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 JHrTnN>wn~L|A+tp From 590ac8873e0eb8354e254a076e5e7459884741de Mon Sep 17 00:00:00 2001 From: krisbitney Date: Tue, 14 Feb 2023 18:21:00 +0530 Subject: [PATCH 40/51] partial transition to ens/wraps:ethereum --- packages/js/client-config-builder/README.md | 4 +- .../src/bundles/getDefaultConfig.ts | 4 +- .../helpers/getClientWithEnsAndIpfs.ts | 2 +- .../uri-resolvers/ens-resolver/README.md | 2 +- .../uri-resolvers/ens-resolver/polywrap.yaml | 4 + .../schema.ethereum-provider.graphql | 33 +++ .../ens-resolver/schema.ethereum.graphql | 280 ++++++++++++++++++ .../ens-resolver/src/schema.graphql | 2 +- .../file-size-over-100-kb/schema.graphql | 22 +- .../invalid-wrap-manifest/schema.graphql | 22 +- .../module-size-over-100-kb/schema.graphql | 22 +- .../wrappers/more-than-6-files/schema.graphql | 22 +- .../package-size-over-100-kb/schema.graphql | 22 +- .../wrappers/valid-interface/schema.graphql | 22 +- .../__tests__/wrappers/valid/schema.graphql | 22 +- .../cli/app/codegen/001-sanity/schema.graphql | 2 +- .../codegen/003-multi-import/schema.graphql | 2 +- .../codegen/004-custom-config/schema.graphql | 2 +- .../005-custom-manifest-file/schema.graphql | 2 +- .../cases/cli/docgen/004-app/schema.graphql | 2 +- .../wasm-as/simple-storage/schema.graphql | 2 +- .../wasm-rs/simple-storage/schema.graphql | 2 +- 22 files changed, 408 insertions(+), 91 deletions(-) create mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql create mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 1cdadb293b..e4ea05b125 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -453,8 +453,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", - ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", - ens: "wrap://ipfs/Qmez2b7nXaqhZhkfd25bdAkhPQgzJEZBtaUC5eM9gFdhHA", + ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", + ens: "wrap://ens/wraps.eth:ens@1.0.0", }; export const defaultPackages = { diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index aa16dfa9a2..64bf29c746 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -34,8 +34,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", - ethereum: "wrap://ipfs/QmPV4sG9zaVVv686Z9bXDFcysUEFfQwME5ayneWQTabNUe", - ens: "wrap://ipfs/Qmez2b7nXaqhZhkfd25bdAkhPQgzJEZBtaUC5eM9gFdhHA", + ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", + ens: "wrap://ens/wraps.eth:ens@1.0.0", }; export const defaultPackages = { diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index e4a43eeb62..5bf85f114d 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -72,7 +72,7 @@ export const getClientWithEnsAndIpfs = () => { package: defaultEmbeddedPackages.ipfsResolver(), }, { - uri: defaultPackages.ethereumProvider, + uri: Uri.from(defaultInterfaces.ethereumProvider), package: ethereumProviderPlugin({ connections }), }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/README.md b/packages/js/plugins/uri-resolvers/ens-resolver/README.md index fd3c29b278..0c03fc4a53 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/README.md +++ b/packages/js/plugins/uri-resolvers/ens-resolver/README.md @@ -36,7 +36,7 @@ export async function foo({ client = new PolywrapClient({ plugins: [ { - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", plugin: ethereumPlugin({ connections }), }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml index 92b6e0b95f..4779d5cfdf 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml +++ b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml @@ -8,3 +8,7 @@ source: import_abis: - uri: "ens/uri-resolver.core.polywrap.eth" abi: ../../../../interfaces/uri-resolver/build/wrap.info + - uri: "wrap://ens/wraps.eth:ethereum@1.0.0" + abi: ./schema.ethereum.graphql + - uri: "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0" + abi: ./schema.ethereum-provider.graphql diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql new file mode 100644 index 0000000000..a7440103b8 --- /dev/null +++ b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql @@ -0,0 +1,33 @@ +type Connection { + node: String + networkNameOrChainId: String +} + +type Module { + """ + Send a remote RPC request to the registered provider + """ + request(method: String!, params: String, connection: Connection): String! + + """ + Sign a message and return the signature. Throws if signer is missing. + """ + signMessage(message: Bytes!, connection: Connection): String! + + """ + Sign a serialized unsigned transaction and return the signature. Throws if signer is missing. + This method requires a wallet-based signer with a private key, and is not needed for most use cases. + Typically, transactions are sent by `request` and signed by the wallet. + """ + signTransaction(rlp: Bytes!, connection: Connection): String! + + """ + Get the ethereum address of the signer. Throws if signer is missing. + """ + address(connection: Connection): String! + + """ + Get the chain id of the signer's connection. Throws if signer is missing. + """ + chainId(connection: Connection): String! +} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql new file mode 100644 index 0000000000..96d0afa592 --- /dev/null +++ b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql @@ -0,0 +1,280 @@ +#import { Module } into IProvider from "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0" +#use { getImplementations } for IProvider + +type Connection { + node: String + networkNameOrChainId: String +} + +type TxRequest { + to: String + from: String + data: String + type: UInt32 + chainId: BigInt + accessList: [AccessItem!] + """Gas supplied for the transaction""" + gasLimit: BigInt + """ + The max total fee to pay per unit of gas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. + If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ + gasPrice: BigInt + """Ether value sent with transaction""" + value: BigInt + """Override default nonce""" + nonce: UInt32 +} + +type AccessItem { + address: String! + storageKeys: [String!]! +} + +type TxResponse { + hash: String! + to: String + from: String! + nonce: UInt32! + gasLimit: BigInt! + maxFeePerGas: BigInt + maxPriorityFeePerGas: BigInt + gasPrice: BigInt + value: BigInt! + chainId: BigInt! + blockNumber: BigInt + blockHash: String + timestamp: UInt32 + r: String + s: String + v: UInt32 + type: UInt32 + accessList: [AccessItem!] +} + +type Log { + blockNumber: BigInt! + blockHash: String! + transactionIndex: UInt32! + removed: Boolean! + address: String! + data: String! + topics: [String!]! + transactionHash: String! + logIndex: UInt32! +} + +type TxReceipt { + to: String! + from: String! + contractAddress: String! + transactionIndex: UInt32! + root: String + gasUsed: BigInt! + logsBloom: String! + transactionHash: String! + logs: [Log!]! + blockNumber: BigInt! + blockHash: String! + confirmations: UInt32! + cumulativeGasUsed: BigInt! + effectiveGasPrice: BigInt! + type: UInt32! + status: UInt32 +} + +type TxOptions { + """Gas supplied for the transaction""" + gasLimit: BigInt + """ + The max total fee to pay per unit of gas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. + If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ + gasPrice: BigInt + """Ether value sent with transaction""" + value: BigInt + """Override default nonce""" + nonce: UInt32 +} + +type StaticTxResult { + result: String! + error: Boolean! +} + +type Eip1559FeesEstimate { + maxFeePerGas: BigInt! + maxPriorityFeePerGas: BigInt! +} + +type Module { + getChainId(connection: Connection): String! + + callContractView( + address: String! + method: String! + args: [String!] + connection: Connection + ): String! + + callContractStatic( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): StaticTxResult! + + encodeParams( + types: [String!]! + values: [String!]! + connection: Connection + ): String! + + encodeFunction( + method: String! + args: [String!] + connection: Connection + ): String! + + decodeFunction( + method: String! + data: String! + connection: Connection + ): [String!]! + + getSignerAddress(connection: Connection): String! + + getSignerBalance( + blockTag: BigInt + connection: Connection + ): BigInt! + + getBalance( + address: String! + blockTag: BigInt + connection: Connection + ): BigInt! + + getGasPrice(connection: Connection): BigInt! + + estimateEip1559Fees(connection: Connection): Eip1559FeesEstimate! + + sendRpc( + method: String! + params: [String!]! + connection: Connection + ): String! + + getSignerTransactionCount( + blockTag: BigInt + connection: Connection + ): BigInt! + + checkAddress( + address: String! + connection: Connection + ): Boolean! + + toWei(eth: String!): String! + + toEth(wei: String!): String! + + estimateTransactionGas( + tx: TxRequest! + connection: Connection + ): BigInt! + + awaitTransaction( + txHash: String! + connection: Connection + ): TxReceipt! + + sendTransaction( + tx: TxRequest! + connection: Connection + ): TxResponse! + + sendTransactionAndWait( + tx: TxRequest! + connection: Connection + ): TxReceipt! + + deployContract( + abi: String! + bytecode: String! + args: [String!] + options: TxOptions + connection: Connection + ): String! + + estimateContractCallGas( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): BigInt! + + callContractMethod( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): TxResponse! + + callContractMethodAndWait( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): TxReceipt! + + signMessage( + message: String! + connection: Connection + ): String! + + signMessageBytes( + bytes: Bytes! + connection: Connection + ): String! + +# signTypedData( +# payload: JSON! +# connection: Connection +# ): String + +# waitForEvent( +# address: String! +# event: String! +# args: [String!] +# timeout: UInt32 +# ): EventNotification! +} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql index 94c2d9f698..eed4a9d107 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql @@ -1,4 +1,4 @@ #import { Module, MaybeUriOrManifest } into UriResolver from "ens/uri-resolver.core.polywrap.eth" -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" type Module implements UriResolver_Module { } diff --git a/packages/js/validation/src/__tests__/wrappers/file-size-over-100-kb/schema.graphql b/packages/js/validation/src/__tests__/wrappers/file-size-over-100-kb/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/file-size-over-100-kb/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/file-size-over-100-kb/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/invalid-wrap-manifest/schema.graphql b/packages/js/validation/src/__tests__/wrappers/invalid-wrap-manifest/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/invalid-wrap-manifest/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/invalid-wrap-manifest/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/module-size-over-100-kb/schema.graphql b/packages/js/validation/src/__tests__/wrappers/module-size-over-100-kb/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/module-size-over-100-kb/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/module-size-over-100-kb/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/more-than-6-files/schema.graphql b/packages/js/validation/src/__tests__/wrappers/more-than-6-files/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/more-than-6-files/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/more-than-6-files/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/package-size-over-100-kb/schema.graphql b/packages/js/validation/src/__tests__/wrappers/package-size-over-100-kb/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/package-size-over-100-kb/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/package-size-over-100-kb/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/valid-interface/schema.graphql b/packages/js/validation/src/__tests__/wrappers/valid-interface/schema.graphql index baf49860be..56662c7a2c 100644 --- a/packages/js/validation/src/__tests__/wrappers/valid-interface/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/valid-interface/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/js/validation/src/__tests__/wrappers/valid/schema.graphql b/packages/js/validation/src/__tests__/wrappers/valid/schema.graphql index 68640325f5..b5d28ad450 100644 --- a/packages/js/validation/src/__tests__/wrappers/valid/schema.graphql +++ b/packages/js/validation/src/__tests__/wrappers/valid/schema.graphql @@ -79,7 +79,7 @@ type Module @imports( ### Imported Modules START ### type Ethereum_Module @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -241,7 +241,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -250,7 +250,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOverrides @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOverrides" ) { @@ -260,7 +260,7 @@ type Ethereum_TxOverrides @imported( } type Ethereum_StaticTxResult @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -269,7 +269,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_TxRequest @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -285,7 +285,7 @@ type Ethereum_TxRequest @imported( } type Ethereum_TxReceipt @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -309,7 +309,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -325,7 +325,7 @@ type Ethereum_Log @imported( } type Ethereum_EventNotification @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "EventNotification" ) { @@ -335,7 +335,7 @@ type Ethereum_EventNotification @imported( } type Ethereum_Network @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Network" ) { @@ -345,7 +345,7 @@ type Ethereum_Network @imported( } type Ethereum_TxResponse @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { @@ -371,7 +371,7 @@ type Ethereum_TxResponse @imported( } type Ethereum_Access @imported( - uri: "wrap://ens/ethereum.polywrap.eth", + uri: "wrap://ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Access" ) { diff --git a/packages/test-cases/cases/cli/app/codegen/001-sanity/schema.graphql b/packages/test-cases/cases/cli/app/codegen/001-sanity/schema.graphql index 33edff0f6a..5dc50f6bfb 100644 --- a/packages/test-cases/cases/cli/app/codegen/001-sanity/schema.graphql +++ b/packages/test-cases/cases/cli/app/codegen/001-sanity/schema.graphql @@ -1 +1 @@ -#import * into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import * into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" diff --git a/packages/test-cases/cases/cli/app/codegen/003-multi-import/schema.graphql b/packages/test-cases/cases/cli/app/codegen/003-multi-import/schema.graphql index 404013b886..60fc763aac 100644 --- a/packages/test-cases/cases/cli/app/codegen/003-multi-import/schema.graphql +++ b/packages/test-cases/cases/cli/app/codegen/003-multi-import/schema.graphql @@ -1,2 +1,2 @@ -#import * into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import * into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" #import * into Logger from "wrap://ens/wrappers.polywrap.eth:logger@1.0.0" diff --git a/packages/test-cases/cases/cli/app/codegen/004-custom-config/schema.graphql b/packages/test-cases/cases/cli/app/codegen/004-custom-config/schema.graphql index 571bb3b5b5..ea6b1df504 100644 --- a/packages/test-cases/cases/cli/app/codegen/004-custom-config/schema.graphql +++ b/packages/test-cases/cases/cli/app/codegen/004-custom-config/schema.graphql @@ -1,2 +1,2 @@ -#import * into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import * into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" #import * into Mock from "wrap://ens/mock.eth" diff --git a/packages/test-cases/cases/cli/app/codegen/005-custom-manifest-file/schema.graphql b/packages/test-cases/cases/cli/app/codegen/005-custom-manifest-file/schema.graphql index 33edff0f6a..5dc50f6bfb 100644 --- a/packages/test-cases/cases/cli/app/codegen/005-custom-manifest-file/schema.graphql +++ b/packages/test-cases/cases/cli/app/codegen/005-custom-manifest-file/schema.graphql @@ -1 +1 @@ -#import * into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import * into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" diff --git a/packages/test-cases/cases/cli/docgen/004-app/schema.graphql b/packages/test-cases/cases/cli/docgen/004-app/schema.graphql index 404013b886..60fc763aac 100644 --- a/packages/test-cases/cases/cli/docgen/004-app/schema.graphql +++ b/packages/test-cases/cases/cli/docgen/004-app/schema.graphql @@ -1,2 +1,2 @@ -#import * into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import * into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" #import * into Logger from "wrap://ens/wrappers.polywrap.eth:logger@1.0.0" diff --git a/packages/test-cases/cases/wrappers/wasm-as/simple-storage/schema.graphql b/packages/test-cases/cases/wrappers/wasm-as/simple-storage/schema.graphql index 6c139b9b76..89b0643ac6 100644 --- a/packages/test-cases/cases/wrappers/wasm-as/simple-storage/schema.graphql +++ b/packages/test-cases/cases/wrappers/wasm-as/simple-storage/schema.graphql @@ -1,4 +1,4 @@ -#import { Module, Connection } into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import { Module, Connection } into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" type Module { getData( diff --git a/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/schema.graphql b/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/schema.graphql index 6c139b9b76..89b0643ac6 100644 --- a/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/schema.graphql +++ b/packages/test-cases/cases/wrappers/wasm-rs/simple-storage/schema.graphql @@ -1,4 +1,4 @@ -#import { Module, Connection } into Ethereum from "wrap://ens/ethereum.polywrap.eth" +#import { Module, Connection } into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" type Module { getData( From 753d633ec18984d678364c0a0ac09a55e88ecf98 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 14:44:17 +0530 Subject: [PATCH 41/51] updated to all URIS to ens/wraps.eth --- packages/js/client-config-builder/README.md | 20 +++++++++--------- .../src/bundles/getDefaultConfig.ts | 20 +++++++++--------- .../wrappers/ipfs-http-client/wrap.info | Bin 9099 -> 9034 bytes .../bundles/wrappers/ipfs-http-client/wrap.ts | 4 ++-- .../wrappers/ipfs-http-client/wrap.wasm | Bin 150540 -> 150523 bytes .../bundles/wrappers/ipfs-resolver/wrap.info | Bin 13959 -> 13743 bytes .../bundles/wrappers/ipfs-resolver/wrap.ts | 4 ++-- .../bundles/wrappers/ipfs-resolver/wrap.wasm | Bin 259812 -> 259788 bytes .../uri-resolvers/ens-resolver/polywrap.yaml | 2 +- .../ens-resolver/schema.ethereum.graphql | 2 +- .../file-system-resolver/README.md | 2 +- .../file-system-resolver/polywrap.yaml | 2 +- .../file-system-resolver/src/schema.graphql | 2 +- .../uri-resolvers/http-resolver/polywrap.yaml | 2 +- .../http-resolver/src/schema.graphql | 2 +- .../codegen/002-with-plugin/schema.graphql | 2 +- .../codegen/003-multi-import/schema.graphql | 2 +- .../cases/cli/docgen/004-app/schema.graphql | 2 +- 18 files changed, 34 insertions(+), 34 deletions(-) diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index e4ea05b125..8045589a3b 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -448,11 +448,11 @@ export const defaultEmbeddedPackages = { }; export const defaultWrappers = { - sha3: "wrap://ens/wrappers.polywrap.eth:sha3@1.0.0", - uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", - graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", + sha3: "wrap://ens/wraps.eth:sha3@1.0.0", + uts46: "wrap://ens/wraps.eth:uts46@1.0.0", + graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", ens: "wrap://ens/wraps.eth:ens@1.0.0", }; @@ -465,12 +465,12 @@ export const defaultPackages = { }; export const defaultInterfaces = { - concurrent: "wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0", - logger: "wrap://ens/wrappers.polywrap.eth:logger@1.0.0", - http: "wrap://ens/wrappers.polywrap.eth:http@1.1.0", - fileSystem: "wrap://ens/wrappers.polywrap.eth:file-system@1.0.0", - ipfsHttpClient: "wrap://ens/wrappers.polywrap.eth:ipfs-http-client@1.0.0", - ethereumProvider: "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0", + concurrent: "wrap://ens/wraps.eth:concurrent@1.0.0", + logger: "wrap://ens/wraps.eth:logger@1.0.0", + http: "wrap://ens/wraps.eth:http@1.1.0", + fileSystem: "wrap://ens/wraps.eth:file-system@1.0.0", + ipfsHttpClient: "wrap://ens/wraps.eth:ipfs-http-client@1.0.0", + ethereumProvider: "wrap://ens/wraps.eth:ethereum-provider@1.0.0", }; export const getDefaultPackages = (): Record => { diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 64bf29c746..4e32e69e1c 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -29,11 +29,11 @@ export const defaultEmbeddedPackages = { }; export const defaultWrappers = { - sha3: "wrap://ens/wrappers.polywrap.eth:sha3@1.0.0", - uts46: "wrap://ens/wrappers.polywrap.eth:uts46@1.0.0", - graphNode: "wrap://ens/wrappers.polywrap.eth:graph-node@1.0.0", + sha3: "wrap://ens/wraps.eth:sha3@1.0.0", + uts46: "wrap://ens/wraps.eth:uts46@1.0.0", + graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: - "wrap://ipfs/Qmae5BDZtdqzqurfVW3eE68s5pCUtVxdTtNZt9UnxFtF8X", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", ens: "wrap://ens/wraps.eth:ens@1.0.0", }; @@ -46,12 +46,12 @@ export const defaultPackages = { }; export const defaultInterfaces = { - concurrent: "wrap://ens/wrappers.polywrap.eth:concurrent@1.0.0", - logger: "wrap://ens/wrappers.polywrap.eth:logger@1.0.0", - http: "wrap://ens/wrappers.polywrap.eth:http@1.1.0", - fileSystem: "wrap://ens/wrappers.polywrap.eth:file-system@1.0.0", - ipfsHttpClient: "wrap://ens/wrappers.polywrap.eth:ipfs-http-client@1.0.0", - ethereumProvider: "wrap://ens/wrappers.polywrap.eth:ethereum-provider@1.0.0", + concurrent: "wrap://ens/wraps.eth:concurrent@1.0.0", + logger: "wrap://ens/wraps.eth:logger@1.0.0", + http: "wrap://ens/wraps.eth:http@1.1.0", + fileSystem: "wrap://ens/wraps.eth:file-system@1.0.0", + ipfsHttpClient: "wrap://ens/wraps.eth:ipfs-http-client@1.0.0", + ethereumProvider: "wrap://ens/wraps.eth:ethereum-provider@1.0.0", }; export const getDefaultPackages = (): Record => { diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.info b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.info index 82e56a7aa8a0e62efa81eb69ce5958bc1331bb11..93c262a1ca8e91700ed2c22ea61432603a63e54c 100644 GIT binary patch delta 137 zcmeBnKjpSTNK|ltc~N44mA-yzUa>xiS-jam^b{+m@MHr~&CQO|X-qhz-pR`1k_u9| Li$iL1nX)JVYlJZJ delta 198 zcmX@**6qGQNL22oc6m`^ft9{~YF@EEh*^+YRIFE!pHm6qO#UaOx!Ff_Au9oOoBv7m ZGZ9iVPu7i)8nAtG3U`T7H`!EK6aWDEO#c7? diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.ts b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.ts index 0fe14949c8..d8b661e177 100644 --- a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.ts +++ b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.ts @@ -4,11 +4,11 @@ import { WasmPackage } from "@polywrap/wasm-js"; import toUint8Array from "base64-to-uint8array"; const wrap_wasm = toUint8Array( - "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AmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkEIcQRAIAAgAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkEEcQRAIAAgAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkECcQRAIAAgAS0AADoAACAAIgNBAmohACADIAEtAAE6AAEgAUECaiEBCyACQQFxBEAgACABLQAAOgAACwvSAgECfwJAIAIhAyAAIAFGDQAgASAAayADa0EAIANBAXRrTQRAIAAgASADEBYMAQsgACABSQRAIAFBB3EgAEEHcUYEQANAIABBB3EEQCADRQ0EIANBAWshAyAAIgJBAWohACABIQQgAUEBaiEBIAIgBC0AADoAAAwBCwsDQCADQQhPBEAgACABKQMANwMAIANBCGshAyAAQQhqIQAgAUEIaiEBDAELCwsDQCADBEAgACICQQFqIQAgASEEIAFBAWohASACIAQtAAA6AAAgA0EBayEDDAELCwUgAUEHcSAAQQdxRgRAA0AgACADakEHcQRAIANFDQQgA0EBayIDIABqIAEgA2otAAA6AAAMAQsLA0AgA0EITwRAIANBCGsiAyAAaiABIANqKQMANwMADAELCwsDQCADBEAgA0EBayIDIABqIAEgA2otAAA6AAAMAQsLCwsLvAIBA38jCEECRgRAIwkjCSgCAEEUazYCACMJKAIAIgQoAgAhACAEKAIIIQIgBCgCDCEDIAQoAhAhBSAEKAIEIQELAn8gBSAAIAF0IwgbIQUjCEECRgRAIwkjCSgCAEEEazYCACMJKAIAKAIAIQYLIAZBACMIG0UEQCAFQQAQDSEEQQAjCEEBRg0BGiAEIQELIwhBASADG0UEQCABIAMgBRAXCyAGQQFGQQEjCBsEQEEQIAIQDSEEQQEjCEEBRg0BGiAEIQILIwhFBEAgAiABNgIAIAIgATYCBCACIAU2AgggAiAANgIMIAIPCwALIQQjCSgCACAENgIAIwkjCSgCAEEE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ADEANAAxADUAMQA2ADEANwAxADgAMQA5ADEAYQAxAGIAMQBjADEAZAAxAGUAMQBmADIAMAAyADEAMgAyADIAMwAyADQAMgA1ADIANgAyADcAMgA4ADIAOQAyAGEAMgBiADIAYwAyAGQAMgBlADIAZgAzADAAMwAxADMAMgAzADMAMwA0ADMANQAzADYAMwA3ADMAOAAzADkAMwBhADMAYgAzAGMAMwBkADMAZQAzAGYANAAwADQAMQA0ADIANAAzADQANAA0ADUANAA2ADQANwA0ADgANAA5ADQAYQA0AGIANABjADQAZAA0AGUANABmADUAMAA1ADEANQAyADUAMwA1ADQANQA1ADUANgA1ADcANQA4ADUAOQA1AGEANQBiADUAYwA1AGQANQBlADUAZgA2ADAANgAxADYAMgA2ADMANgA0ADYANQA2ADYANgA3ADYAOAA2ADkANgBhADYAYgA2AGMANgBkADYAZQA2AGYANwAwADcAMQA3ADIANwAzADcANAA3ADUANwA2ADcANwA3ADgANwA5ADcAYQA3AGIANwBjADcAZAA3AGUANwBmADgAMAA4ADEAOAAyADgAMwA4ADQAOAA1ADgANgA4ADcAOAA4ADgAOQA4AGEAOABiADgAYwA4AGQAOABlADgAZgA5ADAAOQAxADkAMgA5ADMAOQA0ADkANQA5ADYAOQA3ADkAOAA5ADkAOQBhADkAYgA5AGMAOQBkADkAZQA5AGYAYQAwAGEAMQBhADIAYQAzAGEANABhADUAYQA2AGEANwBhADgAYQA5AGEAYQBhAGIAYQBjAGEAZABhAGUAYQBmAGIAMABiADEAYgAyAGIAMwBiADQAYgA1AGIANgBiADcAYgA4AGIAOQBiAGEAYgBiAGIAYwBiAGQAYgBlAGIAZgBjADAAYwAxAGMAMgBjADMAYwA0AGMANQBjADYAYwA3AGMAOABjADkAYwBhAGMAYgBjAGMAYwBkAGMAZQBjAGYAZAAwAGQAMQBkADIAZAAzAGQANABkADUAZAA2AGQANwBkADgAZAA5AGQAYQBkAGIAZABjAGQAZABkAGUAZABmAGUAMABlADEAZQAyAGUAMwBlADQAZQA1AGUANgBlADcAZQA4AGUAOQBlAGEAZQBiAGUAYwBlAGQAZQBlAGUAZgBmADAAZgAxAGYAMgBmADMAZgA0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AmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkEIcQRAIAAgAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkEEcQRAIAAgAS0AADoAACAAIAEtAAE6AAEgAEECaiIAIAFBAmoiAy0AADoAACADQQJqIQEgACADLQABOgABIABBAmohAAsgAkECcQRAIAAgAS0AADoAACAAIgNBAmohACADIAEtAAE6AAEgAUECaiEBCyACQQFxBEAgACABLQAAOgAACwvSAgECfwJAIAIhAyAAIAFGDQAgASAAayADa0EAIANBAXRrTQRAIAAgASADEBYMAQsgACABSQRAIAFBB3EgAEEHcUYEQANAIABBB3EEQCADRQ0EIANBAWshAyAAIgJBAWohACABIQQgAUEBaiEBIAIgBC0AADoAAAwBCwsDQCADQQhPBEAgACABKQMANwMAIANBCGshAyAAQQhqIQAgAUEIaiEBDAELCwsDQCADBEAgACICQQFqIQAgASEEIAFBAWohASACIAQtAAA6AAAgA0EBayEDDAELCwUgAUEHcSAAQQdxRgRAA0AgACADakEHcQRAIANFDQQgA0EBayIDIABqIAEgA2otAAA6AAAMAQsLA0AgA0EITwRAIANBCGsiAyAAaiABIANqKQMANwMADAELCwsDQCADBEAgA0EBayIDIABqIAEgA2otAAA6AAAMAQsLCwsLvAIBA38jCEECRgRAIwkjCSgCAEEUazYCACMJKAIAIgQoAgAhACAEKAIIIQIgBCgCDCEDIAQoAhAhBSAEKAIEIQELAn8gBSAAIAF0IwgbIQUjCEECRgRAIwkjCSgCAEEEazYCACMJKAIAKAIAIQYLIAZBACMIG0UEQCAFQQAQDSEEQQAjCEEBRg0BGiAEIQELIwhBASADG0UEQCABIAMgBRAXCyAGQQFGQQEjCBsEQEEQIAIQDSEEQQEjCEEBRg0BGiAEIQILIwhFBEAgAiABNgIAIAIgATYCBCACIAU2AgggAiAANgIMIAIPCwALIQQjCSgCACAENgIAIwkjCSgCAEEE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ADEAOAAxADkAMQBhADEAYgAxAGMAMQBkADEAZQAxAGYAMgAwADIAMQAyADIAMgAzADIANAAyADUAMgA2ADIANwAyADgAMgA5ADIAYQAyAGIAMgBjADIAZAAyAGUAMgBmADMAMAAzADEAMwAyADMAMwAzADQAMwA1ADMANgAzADcAMwA4ADMAOQAzAGEAMwBiADMAYwAzAGQAMwBlADMAZgA0ADAANAAxADQAMgA0ADMANAA0ADQANQA0ADYANAA3ADQAOAA0ADkANABhADQAYgA0AGMANABkADQAZQA0AGYANQAwADUAMQA1ADIANQAzADUANAA1ADUANQA2ADUANwA1ADgANQA5ADUAYQA1AGIANQBjADUAZAA1AGUANQBmADYAMAA2ADEANgAyADYAMwA2ADQANgA1ADYANgA2ADcANgA4ADYAOQA2AGEANgBiADYAYwA2AGQANgBlADYAZgA3ADAANwAxADcAMgA3ADMANwA0ADcANQA3ADYANwA3ADcAOAA3ADkANwBhADcAYgA3AGMANwBkADcAZQA3AGYAOAAwADgAMQA4ADIAOAAzADgANAA4ADUAOAA2ADgANwA4ADgAOAA5ADgAYQA4AGIAOABjADgAZAA4AGUAOABmADkAMAA5ADEAOQAyADkAMwA5ADQAOQA1ADkANgA5ADcAOQA4ADkAOQA5AGEAOQBiADkAYwA5AGQAOQBlADkAZgBhADAAYQAxAGEAMgBhADMAYQA0AGEANQBhADYAYQA3AGEAOABhADkAYQBhAGEAYgBhAGMAYQBkAGEAZQBhAGYAYgAwAGIAMQBiADIAYgAzAGIANABiADUAYgA2AGIANwBiADgAYgA5AGIAYQBiAGIAYgBjAGIAZABiAGUAYgBmAGMAMABjADEAYwAyAGMAMwBjADQAYwA1AGMANgBjADcAYwA4AGMAOQBjAGEAYwBiAGMAYwBjAGQAYwBlAGMAZgBkADAAZAAxAGQAMgBkADMAZAA0AGQANQBkADYAZAA3AGQAOABkADkAZABhAGQAYgBkAGMAZABkAGQAZQBkAGYAZQAwAGUAMQBlADIAZQAzAGUANABlADUAZQA2AGUANwBlADgAZQA5AGUAYQBlAGIAZQBjAGUAZABlAGUAZQBmAGYAMABmADEAZgAyAGYAMwBmADQAZgA1AGYANgBmADcAZgA4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" ); const wrap_info = toUint8Array( - "hKd2ZXJzaW9uozAuMaRuYW1ls2lwZnMtaHR0cC1jbGllbnQtYXOkdHlwZaR3YXNto2FiaYandmVyc2lvbqMwLjGrb2JqZWN0VHlwZXOYg6R0eXBlqkNhdE9wdGlvbnOka2luZAGqcHJvcGVydGllc5KEpHR5cGWlSW50MzKkbmFtZaZvZmZzZXSka2luZCKmc2NhbGFyg6RuYW1lpm9mZnNldKR0eXBlpUludDMypGtpbmQEhKR0eXBlpUludDMypG5hbWWmbGVuZ3RopGtpbmQipnNjYWxhcoOkbmFtZaZsZW5ndGikdHlwZaVJbnQzMqRraW5kBIOkdHlwZapBZGRPcHRpb25zpGtpbmQBqnByb3BlcnRpZXOThKR0eXBlp0Jvb2xlYW6kbmFtZaNwaW6ka2luZCKmc2NhbGFyg6RuYW1lo3BpbqR0eXBlp0Jvb2xlYW6ka2luZASEpHR5cGWnQm9vbGVhbqRuYW1lqG9ubHlIYXNopGtpbmQipnNjYWxhcoOkbmFtZahvbmx5SGFzaKR0eXBlp0Jvb2xlYW6ka2luZASEpHR5cGWnQm9vbGVhbqRuYW1lsXdyYXBXaXRoRGlyZWN0b3J5pGtpbmQipnNjYWxhcoOkbmFtZbF3cmFwV2l0aERpcmVjdG9yeaR0eXBlp0Jvb2xlYW6ka2luZASDpHR5cGWuUmVzb2x2ZU9wdGlvbnOka2luZAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lqXJlY3Vyc2l2ZaRraW5kIqZzY2FsYXKDpG5hbWWpcmVjdXJzaXZlpHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZaVJbnQzMqRuYW1lrmRodFJlY29yZENvdW50pGtpbmQipnNjYWxhcoOkbmFtZa5kaHRSZWNvcmRDb3VudKR0eXBlpUludDMypGtpbmQEhKR0eXBlplN0cmluZ6RuYW1lqmRodFRpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lqmRodFRpbWVvdXSkdHlwZaZTdHJpbmeka2luZASDpHR5cGWtUmVzb2x2ZVJlc3VsdKRraW5kAapwcm9wZXJ0aWVzkoWkdHlwZaZTdHJpbmekbmFtZaNjaWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjaWSkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lqHByb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWocHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEg6R0eXBlqUFkZFJlc3VsdKRraW5kAapwcm9wZXJ0aWVzk4WkdHlwZaZTdHJpbmekbmFtZaRuYW1lqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkbmFtZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWkaGFzaKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGhhc2ikdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpHNpemWocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRzaXplpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIOkdHlwZalGaWxlRW50cnmka2luZAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlpUJ5dGVzpG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGRhdGGkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASDpHR5cGWuRGlyZWN0b3J5RW50cnmka2luZAGqcHJvcGVydGllc5OFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlsFtEaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlsFtEaXJlY3RvcnlFbnRyeV2mb2JqZWN0hKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBlrkRpcmVjdG9yeUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZa5EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlq1tGaWxlRW50cnldpG5hbWWlZmlsZXOka2luZCKlYXJyYXmFpG5hbWWlZmlsZXOkdHlwZatbRmlsZUVudHJ5XaZvYmplY3SEpG5hbWWlZmlsZXOocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZalGaWxlRW50cnmka2luZM0gAIOkdHlwZaRCbG9ipGtpbmQBqnByb3BlcnRpZXOShKR0eXBlsFtEaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlsFtEaXJlY3RvcnlFbnRyeV2mb2JqZWN0hKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBlrkRpcmVjdG9yeUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZa5EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlq1tGaWxlRW50cnldpG5hbWWlZmlsZXOka2luZCKlYXJyYXmFpG5hbWWlZmlsZXOkdHlwZatbRmlsZUVudHJ5XaZvYmplY3SEpG5hbWWlZmlsZXOocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZalGaWxlRW50cnmka2luZM0gAKptb2R1bGVUeXBlhKdpbXBvcnRzlYGkdHlwZatIdHRwX01vZHVsZYGkdHlwZaxIdHRwX1JlcXVlc3SBpHR5cGWxSHR0cF9SZXNwb25zZVR5cGWBpHR5cGWySHR0cF9Gb3JtRGF0YUVudHJ5gaR0eXBlrUh0dHBfUmVzcG9uc2WkdHlwZaZNb2R1bGWka2luZMyAp21ldGhvZHOVhqRuYW1lo2NhdKZyZXR1cm6FpHR5cGWlQnl0ZXOkbmFtZaNjYXSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjYXSkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWmU3RyaW5npG5hbWWjY2lkqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2lkpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWqQ2F0T3B0aW9uc6RuYW1lqmNhdE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmNhdE9wdGlvbnOkdHlwZapDYXRPcHRpb25zpGtpbmTNIACGpG5hbWWncmVzb2x2ZaZyZXR1cm6FpHR5cGWtUmVzb2x2ZVJlc3VsdKRuYW1lp3Jlc29sdmWocmVxdWlyZWTDpGtpbmQipm9iamVjdISkbmFtZadyZXNvbHZlqHJlcXVpcmVkw6R0eXBlrVJlc29sdmVSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzlIWkdHlwZaZTdHJpbmekbmFtZaNjaWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjaWSkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZa5SZXNvbHZlT3B0aW9uc6RuYW1lrnJlc29sdmVPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZa5yZXNvbHZlT3B0aW9uc6R0eXBlrlJlc29sdmVPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkRmlsZaZyZXR1cm6FpHR5cGWpQWRkUmVzdWx0pG5hbWWnYWRkRmlsZahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lp2FkZEZpbGWocmVxdWlyZWTDpHR5cGWpQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWpRmlsZUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlqkFkZE9wdGlvbnOkbmFtZaphZGRPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZaphZGRPcHRpb25zpHR5cGWqQWRkT3B0aW9uc6RraW5kzSAAhqRuYW1lpmFkZERpcqZyZXR1cm6FpHR5cGWrW0FkZFJlc3VsdF2kbmFtZaZhZGREaXKocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlq1tBZGRSZXN1bHRdpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6ZvYmplY3SEpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlrkRpcmVjdG9yeUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWuRGlyZWN0b3J5RW50cnmka2luZM0gAIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWqQWRkT3B0aW9uc6RuYW1lqmFkZE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmFkZE9wdGlvbnOkdHlwZapBZGRPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkQmxvYqZyZXR1cm6FpHR5cGWrW0FkZFJlc3VsdF2kbmFtZadhZGRCbG9iqHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZatbQWRkUmVzdWx0XaRuYW1lp2FkZEJsb2KocmVxdWlyZWTDpm9iamVjdISkbmFtZadhZGRCbG9iqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOkdHlwZalBZGRSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzlIWkdHlwZaRCbG9ipG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWkQmxvYqRraW5kzSAAhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZapBZGRPcHRpb25zpG5hbWWqYWRkT3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqYWRkT3B0aW9uc6R0eXBlqkFkZE9wdGlvbnOka2luZM0gALNpbXBvcnRlZE9iamVjdFR5cGVzk4akdHlwZaxIdHRwX1JlcXVlc3SjdXJp2St3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDpodHRwQDEuMS4wqW5hbWVzcGFjZaRIdHRwqm5hdGl2ZVR5cGWnUmVxdWVzdKRraW5kzQQBqnByb3BlcnRpZXOWhKR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6kbmFtZadoZWFkZXJzo21hcIakdHlwZbNNYXA8U3RyaW5nLCBTdHJpbmc+pnNjYWxhcoSkbmFtZadoZWFkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKRraW5kzgAEAAKkbmFtZadoZWFkZXJzo2tleYSkbmFtZadoZWFkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKV2YWx1ZYSkbmFtZadoZWFkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKRraW5kIoSkdHlwZbNNYXA8U3RyaW5nLCBTdHJpbmc+pG5hbWWpdXJsUGFyYW1zo21hcIakdHlwZbNNYXA8U3RyaW5nLCBTdHJpbmc+pnNjYWxhcoSkbmFtZal1cmxQYXJhbXOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmTOAAQAAqRuYW1lqXVybFBhcmFtc6NrZXmEpG5hbWWpdXJsUGFyYW1zpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKV2YWx1ZYSkbmFtZal1cmxQYXJhbXOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmQihaR0eXBlsUh0dHBfUmVzcG9uc2VUeXBlpG5hbWWscmVzcG9uc2VUeXBlqHJlcXVpcmVkw6RraW5kIqRlbnVthKRuYW1lrHJlc3BvbnNlVHlwZahyZXF1aXJlZMOkdHlwZbFIdHRwX1Jlc3BvbnNlVHlwZaRraW5kzUAAhaR0eXBlplN0cmluZ6RuYW1lpGJvZHmnY29tbWVudNlNVGhlIGJvZHkgb2YgdGhlIHJlcXVlc3QuIElmIHByZXNlbnQsIHRoZSBgZm9ybURhdGFgIHByb3BlcnR5IHdpbGwgYmUgaWdub3JlZC6ka2luZCKmc2NhbGFyg6RuYW1lpGJvZHmkdHlwZaZTdHJpbmeka2luZASFpHR5cGW0W0h0dHBfRm9ybURhdGFFbnRyeV2kbmFtZahmb3JtRGF0Yadjb21tZW502gE1ICBBbiBhbHRlcm5hdGl2ZSB0byB0aGUgc3RhbmRhcmQgcmVxdWVzdCBib2R5LCAnZm9ybURhdGEnIGlzIGV4cGVjdGVkIHRvIGJlIGluIHRoZSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YScgZm9ybWF0LgpJZiBwcmVzZW50LCB0aGUgYGJvZHlgIHByb3BlcnR5IGlzIG5vdCBudWxsLCBgZm9ybURhdGFgIHdpbGwgYmUgaWdub3JlZC4KT3RoZXJ3aXNlLCBpZiBmb3JtRGF0YSBpcyBub3QgbnVsbCwgdGhlIGZvbGxvd2luZyBoZWFkZXIgd2lsbCBiZSBhZGRlZCB0byB0aGUgcmVxdWVzdDogJ0NvbnRlbnQtVHlwZTogbXVsdGlwYXJ0L2Zvcm0tZGF0YScupGtpbmQipWFycmF5haRuYW1lqGZvcm1EYXRhpHR5cGW0W0h0dHBfRm9ybURhdGFFbnRyeV2mb2JqZWN0hKRuYW1lqGZvcm1EYXRhqHJlcXVpcmVkw6R0eXBlskh0dHBfRm9ybURhdGFFbnRyeaRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWoZm9ybURhdGGocmVxdWlyZWTDpHR5cGWySHR0cF9Gb3JtRGF0YUVudHJ5pGtpbmTNIACEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBIakdHlwZbJIdHRwX0Zvcm1EYXRhRW50cnmjdXJp2St3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDpodHRwQDEuMS4wqW5hbWVzcGFjZaRIdHRwqm5hdGl2ZVR5cGWtRm9ybURhdGFFbnRyeaRraW5kzQQBqnByb3BlcnRpZXOUhqR0eXBlplN0cmluZ6RuYW1lpG5hbWWnY29tbWVudLJGb3JtRGF0YSBlbnRyeSBrZXmocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRuYW1lpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaV2YWx1Zadjb21tZW502T5JZiAndHlwZScgaXMgZGVmaW5lZCwgdmFsdWUgaXMgdHJlYXRlZCBhcyBhIGJhc2U2NCBieXRlIHN0cmluZ6RraW5kIqZzY2FsYXKDpG5hbWWldmFsdWWkdHlwZaZTdHJpbmeka2luZASFpHR5cGWmU3RyaW5npG5hbWWoZmlsZU5hbWWnY29tbWVudNkhRmlsZSBuYW1lIHRvIHJlcG9ydCB0byB0aGUgc2VydmVypGtpbmQipnNjYWxhcoOkbmFtZahmaWxlTmFtZaR0eXBlplN0cmluZ6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaR0eXBlp2NvbW1lbnTZck1JTUUgdHlwZSAoaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvSFRUUC9CYXNpY3Nfb2ZfSFRUUC9NSU1FX3R5cGVzKS4gRGVmYXVsdHMgdG8gZW1wdHkgc3RyaW5nLqRraW5kIqZzY2FsYXKDpG5hbWWkdHlwZaR0eXBlplN0cmluZ6RraW5kBIakdHlwZa1IdHRwX1Jlc3BvbnNlo3Vyadkrd3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aHR0cEAxLjEuMKluYW1lc3BhY2WkSHR0cKpuYXRpdmVUeXBlqFJlc3BvbnNlpGtpbmTNBAGqcHJvcGVydGllc5SFpHR5cGWjSW50pG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWmc3RhdHVzpHR5cGWjSW50qHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZapzdGF0dXNUZXh0qHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWqc3RhdHVzVGV4dKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWzTWFwPFN0cmluZywgU3RyaW5nPqRuYW1lp2hlYWRlcnOjbWFwhqR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6mc2NhbGFyhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmTOAAQAAqRuYW1lp2hlYWRlcnOja2V5hKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpXZhbHVlhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmQihKR0eXBlplN0cmluZ6RuYW1lpGJvZHmka2luZCKmc2NhbGFyg6RuYW1lpGJvZHmkdHlwZaZTdHJpbmeka2luZASzaW1wb3J0ZWRNb2R1bGVUeXBlc5GHo3Vyadkrd3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aHR0cEAxLjEuMKluYW1lc3BhY2WkSHR0cKpuYXRpdmVUeXBlpk1vZHVsZatpc0ludGVyZmFjZcKkdHlwZatIdHRwX01vZHVsZaRraW5kzQEAp21ldGhvZHOShqRuYW1lo2dldKZyZXR1cm6EpHR5cGWtSHR0cF9SZXNwb25zZaRuYW1lo2dldKRraW5kIqZvYmplY3SDpG5hbWWjZ2V0pHR5cGWtSHR0cF9SZXNwb25zZaRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOShaR0eXBlplN0cmluZ6RuYW1lo3VybKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo3VybKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWsSHR0cF9SZXF1ZXN0pG5hbWWncmVxdWVzdKRraW5kIqZvYmplY3SDpG5hbWWncmVxdWVzdKR0eXBlrEh0dHBfUmVxdWVzdKRraW5kzSAAhqRuYW1lpHBvc3SmcmV0dXJuhKR0eXBlrUh0dHBfUmVzcG9uc2WkbmFtZaRwb3N0pGtpbmQipm9iamVjdIOkbmFtZaRwb3N0pHR5cGWtSHR0cF9SZXNwb25zZaRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOShaR0eXBlplN0cmluZ6RuYW1lo3VybKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo3VybKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWsSHR0cF9SZXF1ZXN0pG5hbWWncmVxdWVzdKRraW5kIqZvYmplY3SDpG5hbWWncmVxdWVzdKR0eXBlrEh0dHBfUmVxdWVzdKRraW5kzSAAsWltcG9ydGVkRW51bVR5cGVzkYakdHlwZbFIdHRwX1Jlc3BvbnNlVHlwZaljb25zdGFudHOSpFRFWFSmQklOQVJZo3Vyadkrd3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aHR0cEAxLjEuMKluYW1lc3BhY2WkSHR0cKpuYXRpdmVUeXBlrFJlc3BvbnNlVHlwZaRraW5kzQII" + "hKd2ZXJzaW9uozAuMaRuYW1ls2lwZnMtaHR0cC1jbGllbnQtYXOkdHlwZaR3YXNto2FiaYandmVyc2lvbqMwLjGrb2JqZWN0VHlwZXOYg6R0eXBlqkNhdE9wdGlvbnOka2luZAGqcHJvcGVydGllc5KEpHR5cGWlSW50MzKkbmFtZaZvZmZzZXSka2luZCKmc2NhbGFyg6RuYW1lpm9mZnNldKR0eXBlpUludDMypGtpbmQEhKR0eXBlpUludDMypG5hbWWmbGVuZ3RopGtpbmQipnNjYWxhcoOkbmFtZaZsZW5ndGikdHlwZaVJbnQzMqRraW5kBIOkdHlwZapBZGRPcHRpb25zpGtpbmQBqnByb3BlcnRpZXOThKR0eXBlp0Jvb2xlYW6kbmFtZaNwaW6ka2luZCKmc2NhbGFyg6RuYW1lo3BpbqR0eXBlp0Jvb2xlYW6ka2luZASEpHR5cGWnQm9vbGVhbqRuYW1lqG9ubHlIYXNopGtpbmQipnNjYWxhcoOkbmFtZahvbmx5SGFzaKR0eXBlp0Jvb2xlYW6ka2luZASEpHR5cGWnQm9vbGVhbqRuYW1lsXdyYXBXaXRoRGlyZWN0b3J5pGtpbmQipnNjYWxhcoOkbmFtZbF3cmFwV2l0aERpcmVjdG9yeaR0eXBlp0Jvb2xlYW6ka2luZASDpHR5cGWuUmVzb2x2ZU9wdGlvbnOka2luZAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lqXJlY3Vyc2l2ZaRraW5kIqZzY2FsYXKDpG5hbWWpcmVjdXJzaXZlpHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZaVJbnQzMqRuYW1lrmRodFJlY29yZENvdW50pGtpbmQipnNjYWxhcoOkbmFtZa5kaHRSZWNvcmRDb3VudKR0eXBlpUludDMypGtpbmQEhKR0eXBlplN0cmluZ6RuYW1lqmRodFRpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lqmRodFRpbWVvdXSkdHlwZaZTdHJpbmeka2luZASDpHR5cGWtUmVzb2x2ZVJlc3VsdKRraW5kAapwcm9wZXJ0aWVzkoWkdHlwZaZTdHJpbmekbmFtZaNjaWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjaWSkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lqHByb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWocHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEg6R0eXBlqUFkZFJlc3VsdKRraW5kAapwcm9wZXJ0aWVzk4WkdHlwZaZTdHJpbmekbmFtZaRuYW1lqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkbmFtZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWkaGFzaKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGhhc2ikdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpHNpemWocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRzaXplpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIOkdHlwZalGaWxlRW50cnmka2luZAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlpUJ5dGVzpG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGRhdGGkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASDpHR5cGWuRGlyZWN0b3J5RW50cnmka2luZAGqcHJvcGVydGllc5OFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlsFtEaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlsFtEaXJlY3RvcnlFbnRyeV2mb2JqZWN0hKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBlrkRpcmVjdG9yeUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZa5EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlq1tGaWxlRW50cnldpG5hbWWlZmlsZXOka2luZCKlYXJyYXmFpG5hbWWlZmlsZXOkdHlwZatbRmlsZUVudHJ5XaZvYmplY3SEpG5hbWWlZmlsZXOocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZalGaWxlRW50cnmka2luZM0gAIOkdHlwZaRCbG9ipGtpbmQBqnByb3BlcnRpZXOShKR0eXBlsFtEaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlsFtEaXJlY3RvcnlFbnRyeV2mb2JqZWN0hKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBlrkRpcmVjdG9yeUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZa5EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlq1tGaWxlRW50cnldpG5hbWWlZmlsZXOka2luZCKlYXJyYXmFpG5hbWWlZmlsZXOkdHlwZatbRmlsZUVudHJ5XaZvYmplY3SEpG5hbWWlZmlsZXOocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZalGaWxlRW50cnmka2luZM0gAKptb2R1bGVUeXBlhKdpbXBvcnRzlYGkdHlwZatIdHRwX01vZHVsZYGkdHlwZaxIdHRwX1JlcXVlc3SBpHR5cGWxSHR0cF9SZXNwb25zZVR5cGWBpHR5cGWySHR0cF9Gb3JtRGF0YUVudHJ5gaR0eXBlrUh0dHBfUmVzcG9uc2WkdHlwZaZNb2R1bGWka2luZMyAp21ldGhvZHOVhqRuYW1lo2NhdKZyZXR1cm6FpHR5cGWlQnl0ZXOkbmFtZaNjYXSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjYXSkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWmU3RyaW5npG5hbWWjY2lkqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2lkpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWqQ2F0T3B0aW9uc6RuYW1lqmNhdE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmNhdE9wdGlvbnOkdHlwZapDYXRPcHRpb25zpGtpbmTNIACGpG5hbWWncmVzb2x2ZaZyZXR1cm6FpHR5cGWtUmVzb2x2ZVJlc3VsdKRuYW1lp3Jlc29sdmWocmVxdWlyZWTDpGtpbmQipm9iamVjdISkbmFtZadyZXNvbHZlqHJlcXVpcmVkw6R0eXBlrVJlc29sdmVSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzlIWkdHlwZaZTdHJpbmekbmFtZaNjaWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaNjaWSkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZa5SZXNvbHZlT3B0aW9uc6RuYW1lrnJlc29sdmVPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZa5yZXNvbHZlT3B0aW9uc6R0eXBlrlJlc29sdmVPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkRmlsZaZyZXR1cm6FpHR5cGWpQWRkUmVzdWx0pG5hbWWnYWRkRmlsZahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lp2FkZEZpbGWocmVxdWlyZWTDpHR5cGWpQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWpRmlsZUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWpRmlsZUVudHJ5pGtpbmTNIACFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlqkFkZE9wdGlvbnOkbmFtZaphZGRPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZaphZGRPcHRpb25zpHR5cGWqQWRkT3B0aW9uc6RraW5kzSAAhqRuYW1lpmFkZERpcqZyZXR1cm6FpHR5cGWrW0FkZFJlc3VsdF2kbmFtZaZhZGREaXKocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlq1tBZGRSZXN1bHRdpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6ZvYmplY3SEpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlrkRpcmVjdG9yeUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWuRGlyZWN0b3J5RW50cnmka2luZM0gAIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWqQWRkT3B0aW9uc6RuYW1lqmFkZE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmFkZE9wdGlvbnOkdHlwZapBZGRPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkQmxvYqZyZXR1cm6FpHR5cGWrW0FkZFJlc3VsdF2kbmFtZadhZGRCbG9iqHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZatbQWRkUmVzdWx0XaRuYW1lp2FkZEJsb2KocmVxdWlyZWTDpm9iamVjdISkbmFtZadhZGRCbG9iqHJlcXVpcmVkw6R0eXBlqUFkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOkdHlwZalBZGRSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzlIWkdHlwZaRCbG9ipG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGWkQmxvYqRraW5kzSAAhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZapBZGRPcHRpb25zpG5hbWWqYWRkT3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqYWRkT3B0aW9uc6R0eXBlqkFkZE9wdGlvbnOka2luZM0gALNpbXBvcnRlZE9iamVjdFR5cGVzk4akdHlwZaxIdHRwX1JlcXVlc3SjdXJpv3dyYXA6Ly9lbnMvd3JhcHMuZXRoOmh0dHBAMS4xLjCpbmFtZXNwYWNlpEh0dHCqbmF0aXZlVHlwZadSZXF1ZXN0pGtpbmTNBAGqcHJvcGVydGllc5aEpHR5cGWzTWFwPFN0cmluZywgU3RyaW5nPqRuYW1lp2hlYWRlcnOjbWFwhqR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6mc2NhbGFyhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmTOAAQAAqRuYW1lp2hlYWRlcnOja2V5hKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpXZhbHVlhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmQihKR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6kbmFtZal1cmxQYXJhbXOjbWFwhqR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6mc2NhbGFyhKRuYW1lqXVybFBhcmFtc6R0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASka2luZM4ABAACpG5hbWWpdXJsUGFyYW1zo2tleYSkbmFtZal1cmxQYXJhbXOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpXZhbHVlhKRuYW1lqXVybFBhcmFtc6R0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASka2luZCKFpHR5cGWxSHR0cF9SZXNwb25zZVR5cGWkbmFtZaxyZXNwb25zZVR5cGWocmVxdWlyZWTDpGtpbmQipGVudW2EpG5hbWWscmVzcG9uc2VUeXBlqHJlcXVpcmVkw6R0eXBlsUh0dHBfUmVzcG9uc2VUeXBlpGtpbmTNQACFpHR5cGWmU3RyaW5npG5hbWWkYm9keadjb21tZW502U1UaGUgYm9keSBvZiB0aGUgcmVxdWVzdC4gSWYgcHJlc2VudCwgdGhlIGBmb3JtRGF0YWAgcHJvcGVydHkgd2lsbCBiZSBpZ25vcmVkLqRraW5kIqZzY2FsYXKDpG5hbWWkYm9keaR0eXBlplN0cmluZ6RraW5kBIWkdHlwZbRbSHR0cF9Gb3JtRGF0YUVudHJ5XaRuYW1lqGZvcm1EYXRhp2NvbW1lbnTaATUgIEFuIGFsdGVybmF0aXZlIHRvIHRoZSBzdGFuZGFyZCByZXF1ZXN0IGJvZHksICdmb3JtRGF0YScgaXMgZXhwZWN0ZWQgdG8gYmUgaW4gdGhlICdtdWx0aXBhcnQvZm9ybS1kYXRhJyBmb3JtYXQuCklmIHByZXNlbnQsIHRoZSBgYm9keWAgcHJvcGVydHkgaXMgbm90IG51bGwsIGBmb3JtRGF0YWAgd2lsbCBiZSBpZ25vcmVkLgpPdGhlcndpc2UsIGlmIGZvcm1EYXRhIGlzIG5vdCBudWxsLCB0aGUgZm9sbG93aW5nIGhlYWRlciB3aWxsIGJlIGFkZGVkIHRvIHRoZSByZXF1ZXN0OiAnQ29udGVudC1UeXBlOiBtdWx0aXBhcnQvZm9ybS1kYXRhJy6ka2luZCKlYXJyYXmFpG5hbWWoZm9ybURhdGGkdHlwZbRbSHR0cF9Gb3JtRGF0YUVudHJ5XaZvYmplY3SEpG5hbWWoZm9ybURhdGGocmVxdWlyZWTDpHR5cGWySHR0cF9Gb3JtRGF0YUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZahmb3JtRGF0YahyZXF1aXJlZMOkdHlwZbJIdHRwX0Zvcm1EYXRhRW50cnmka2luZM0gAISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhqR0eXBlskh0dHBfRm9ybURhdGFFbnRyeaN1cmm/d3JhcDovL2Vucy93cmFwcy5ldGg6aHR0cEAxLjEuMKluYW1lc3BhY2WkSHR0cKpuYXRpdmVUeXBlrUZvcm1EYXRhRW50cnmka2luZM0EAapwcm9wZXJ0aWVzlIakdHlwZaZTdHJpbmekbmFtZaRuYW1lp2NvbW1lbnSyRm9ybURhdGEgZW50cnkga2V5qHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkbmFtZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWldmFsdWWnY29tbWVudNk+SWYgJ3R5cGUnIGlzIGRlZmluZWQsIHZhbHVlIGlzIHRyZWF0ZWQgYXMgYSBiYXNlNjQgYnl0ZSBzdHJpbmeka2luZCKmc2NhbGFyg6RuYW1lpXZhbHVlpHR5cGWmU3RyaW5npGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lqGZpbGVOYW1lp2NvbW1lbnTZIUZpbGUgbmFtZSB0byByZXBvcnQgdG8gdGhlIHNlcnZlcqRraW5kIqZzY2FsYXKDpG5hbWWoZmlsZU5hbWWkdHlwZaZTdHJpbmeka2luZASFpHR5cGWmU3RyaW5npG5hbWWkdHlwZadjb21tZW502XJNSU1FIHR5cGUgKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvTUlNRV90eXBlcykuIERlZmF1bHRzIHRvIGVtcHR5IHN0cmluZy6ka2luZCKmc2NhbGFyg6RuYW1lpHR5cGWkdHlwZaZTdHJpbmeka2luZASGpHR5cGWtSHR0cF9SZXNwb25zZaN1cmm/d3JhcDovL2Vucy93cmFwcy5ldGg6aHR0cEAxLjEuMKluYW1lc3BhY2WkSHR0cKpuYXRpdmVUeXBlqFJlc3BvbnNlpGtpbmTNBAGqcHJvcGVydGllc5SFpHR5cGWjSW50pG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWmc3RhdHVzpHR5cGWjSW50qHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZapzdGF0dXNUZXh0qHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWqc3RhdHVzVGV4dKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWzTWFwPFN0cmluZywgU3RyaW5nPqRuYW1lp2hlYWRlcnOjbWFwhqR0eXBls01hcDxTdHJpbmcsIFN0cmluZz6mc2NhbGFyhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmTOAAQAAqRuYW1lp2hlYWRlcnOja2V5hKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpXZhbHVlhKRuYW1lp2hlYWRlcnOkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEpGtpbmQihKR0eXBlplN0cmluZ6RuYW1lpGJvZHmka2luZCKmc2NhbGFyg6RuYW1lpGJvZHmkdHlwZaZTdHJpbmeka2luZASzaW1wb3J0ZWRNb2R1bGVUeXBlc5GHo3Vyab93cmFwOi8vZW5zL3dyYXBzLmV0aDpodHRwQDEuMS4wqW5hbWVzcGFjZaRIdHRwqm5hdGl2ZVR5cGWmTW9kdWxlq2lzSW50ZXJmYWNlwqR0eXBlq0h0dHBfTW9kdWxlpGtpbmTNAQCnbWV0aG9kc5KGpG5hbWWjZ2V0pnJldHVyboSkdHlwZa1IdHRwX1Jlc3BvbnNlpG5hbWWjZ2V0pGtpbmQipm9iamVjdIOkbmFtZaNnZXSkdHlwZa1IdHRwX1Jlc3BvbnNlpGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5KFpHR5cGWmU3RyaW5npG5hbWWjdXJsqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjdXJspHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaxIdHRwX1JlcXVlc3SkbmFtZadyZXF1ZXN0pGtpbmQipm9iamVjdIOkbmFtZadyZXF1ZXN0pHR5cGWsSHR0cF9SZXF1ZXN0pGtpbmTNIACGpG5hbWWkcG9zdKZyZXR1cm6EpHR5cGWtSHR0cF9SZXNwb25zZaRuYW1lpHBvc3Ska2luZCKmb2JqZWN0g6RuYW1lpHBvc3SkdHlwZa1IdHRwX1Jlc3BvbnNlpGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5KFpHR5cGWmU3RyaW5npG5hbWWjdXJsqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjdXJspHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaxIdHRwX1JlcXVlc3SkbmFtZadyZXF1ZXN0pGtpbmQipm9iamVjdIOkbmFtZadyZXF1ZXN0pHR5cGWsSHR0cF9SZXF1ZXN0pGtpbmTNIACxaW1wb3J0ZWRFbnVtVHlwZXORhqR0eXBlsUh0dHBfUmVzcG9uc2VUeXBlqWNvbnN0YW50c5KkVEVYVKZCSU5BUlmjdXJpv3dyYXA6Ly9lbnMvd3JhcHMuZXRoOmh0dHBAMS4xLjCpbmFtZXNwYWNlpEh0dHCqbmF0aXZlVHlwZaxSZXNwb25zZVR5cGWka2luZM0CCA==" ); export const wasmPackage = WasmPackage.from( diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.wasm b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-http-client/wrap.wasm index e260e6dc3e030e9fc37d61caee628a3ffd3a81de..ea5752edf07656a454d362d81317406f92cff322 100644 GIT binary patch delta 10497 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 delta 10463 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 diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.info b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.info index 56281fa4b22a15f8ef417aea03b2380bf3347559..45d90783e873ee2f9043eac6720265c7061edb6d 100644 GIT binary patch delta 475 zcmZqAU7x+-4XdDPc~N44mA-yzUa>xiSv=WBOlz_+Ta=(ShKwPf&g5%s?O0^yO4@AR z#_rCDMaq!RVsa4YQLHlNo3ptLuxm1({GR(Ac1@EFc^_lSY&PVJ#$nXv2mE%pq>2Q? znJ^8TY{+N6SyqIJ2{U{)+lcLF#1sYwo9Sj>31ckwY@RE5n;C~4XJq$qV>fK_8Cl8A YpEYARut?_^&Br2YBWATZ$yk*c0IfQrk^lez delta 687 zcmZ3V-JZMQ4XdnSc~N44mA-yzUa>xiS&&*(tXGhqQwicsUSOy-S)DCP)*P>@i@Z9M z_p!C(SG75ey_pfelF1i&EhZ~*9wn&Ce6v260b#?;CokuIN7%5*cX=M;SGD;fZ!{6s zZ7$)rBSzUTfp8}L76L=UeDh3UCME*$6JTVu`I%@dBLQU#3{5w06gMX1wlH>^$x@oa jn_VP(nDM)B^Fx`>+(cL^rCG{BP}zL^DmDig#WMo{PE`W& diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.ts b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.ts index 4692012a79..8be6903ed8 100644 --- a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.ts +++ b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.ts @@ -4,11 +4,11 @@ import { WasmPackage } from "@polywrap/wasm-js"; import toUint8Array from "base64-to-uint8array"; const wrap_wasm = toUint8Array( - "AGFzbQEAAAABgwETYAJ/fwF/YAN/f38Bf2ACf38AYAN/f38AYAF/AGAGf39/f39/AGAEf39/fwBgB39/f39/f38AYAF/AX9gAX8BfmAAAX9gBX9/f39/AGAFf39/f38Bf2AAAGAGf39/f39/AX9gA39/fgBgBH9/f38Bf2AHf39/f39/fwF/YAN+f38BfwKaAw4Ed3JhcA9fX3dyYXBfbG9hZF9lbnYABAR3cmFwEl9fd3JhcF9pbnZva2VfYXJncwACBHdyYXAZX193cmFwX2dldEltcGxlbWVudGF0aW9ucwAABHdyYXAkX193cmFwX2dldEltcGxlbWVudGF0aW9uc19yZXN1bHRfbGVuAAoEd3JhcCBfX3dyYXBfZ2V0SW1wbGVtZW50YXRpb25zX3Jlc3VsdAAEBHdyYXAMX193cmFwX2Fib3J0AAUEd3JhcBNfX3dyYXBfaW52b2tlX2Vycm9yAAIEd3JhcBRfX3dyYXBfaW52b2tlX3Jlc3VsdAACBHdyYXAQX193cmFwX3N1Ymludm9rZQAOBHdyYXAbX193cmFwX3N1Ymludm9rZV9yZXN1bHRfbGVuAAoEd3JhcBdfX3dyYXBfc3ViaW52b2tlX3Jlc3VsdAAEBHdyYXAaX193cmFwX3N1Ymludm9rZV9lcnJvcl9sZW4ACgR3cmFwFl9fd3JhcF9zdWJpbnZva2VfZXJyb3IABANlbnYGbWVtb3J5AgACA/kB9wEGCAMLBgIBAgIBAgYBDwICBgUQAwQGAAMGAAYOAgIBAQIABwcHBwcHBQUFBQUFAgIDAwMHBwcIAAcHBwACAwwRAAMBBQASAwsAAAIEAAYDAwIGAgAABgAFBQUFBQUDCAcCAwECDAICAgIGBgMGBgEDAgUEBQUFBQUCBQUFBQUGBQUGBgIFAgICAQELAgYDAwMCAAADAwMAAwMAAAIAAwAAAAAAAAQAAwQBAAIEAwMDBAICAwAECAgCDAQICAQCDQIIAgQABAQECAAAAAAEAAYGAAAEBAQAAQAACwAAAgIBAAADAwMDAQAAAAMDAQEKAgkJCQQEDQQKBAUBcAFKSgYSA38BQYCABAt/AUEAC38BQQALB5wBCAxfd3JhcF9pbnZva2UATwVhbGxvYwDUAQdkZWFsbG9jAOkBFWFzeW5jaWZ5X3N0YXJ0X3Vud2luZACAAhRh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RQ0FCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0HApAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEMRkEBIwEbBEAgASACIAAQK0EMIwFBAUYNBhohAAsjAUUNBAsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBwKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBDUZBASMBGwRAIAEgAiAAECtBDSMBQQFGDQUaIQALIwFFDQMLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQcCkBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQ5GQQEjARsEQCABIAIgABArQQ4jAUEBRg0EGiEACyMBRQ0CCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0HApAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEPRkEBIwEbBEAgASACIAAQK0EPIwFBAUYNAxohAAsjAUUNAQsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBwKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBEEZBASMBGwRAIAEgAiAAECtBECMBQQFGDQIaIQALCyMBRQRAIANBMGokACAADwsACyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAQQALthMBD38jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIBKAIAIQAgASkCCCECIAEoAhAhAyABKAIUIQQgASgCGCEFIAEoAhwhBiABKAIgIQcgASgCJCEIIAEoAighCyABKAIsIQwgASgCMCENIAEoAjQhDiABKAI4IRAgASgCPCERIAEoAkAhDyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQkLIwFFBEAjAEHwAGsiAyQAIANBADYCECADQgE3AwggAyABNgIgIAMgAjcDGCADQUBrIRAgA0E4aiERQQAhDEEAIQtBACEHIANB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AEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQdiCBCABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC5oCAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEIaiEBIAJBBGohAAsgA0VBASMBGwRAIABB0IgEIAEQK0EAIwFBAUYNARohAQsjAUUEQCACQSBqJAAgAQ8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALnQIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAJBzLEFNgIEIAIgADYCACACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAkGIowUgAEGIowUgAUGwsgUQUEEAIwFBAUYNARoLIwFFBEAACw8LIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAAuaAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQdChBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC6kCAQJ/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAiADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEEgayIDJAAgA0HArQU2AgQgAyAANgIAIANBGGogAUEQaikCADcDACADQRBqIAFBCGopAgA3AwAgAyABKQIANwMIIANBCGohASADQQRqIQALIARFQQEjARsEQCADQZijBSAAQZijBSABIAIQUEEAIwFBAUYNARoLIwFFBEAACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCMCIwIoAgBBEGo2AgALmgIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAEGUogUgARArQQAjAUEBRg0BGiEBCyMBRQRAIAJBIGokACABDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAuaAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQayiBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC5cCAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEIaiEBIAJBBGohAAsgA0VBASMBGwRAIABB0IgEIAEQK0EAIwFBAUYNARohAQsjAUUEQCACQSBqJAAgAQ8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALlwIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAIgADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAEHQoQUgARArQQAjAUEBRg0BGiEBCyMBRQRAIAJBIGokACABDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAuXAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQZSiBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC80CAQN/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUUEQCMAQRBrIgIkACAAKAIAIgAtAARBBEchAwsCQAJAIwFFBEAgAw0BIAIgADYCCCACQQhqIQALIARFQQEjARsEQCABQbyoBEECIABBwKgEEHFBACMBQQFGDQMaIQALIwFFDQELIwFFBEAgAiAANgIMIAJBDGohAAsgBEEBRkEBIwEbBEAgAUGoqARBAyAAQayoBBBxQQEjAUEBRg0CGiEACwsjAUUEQCACQRBqJAAgAA8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALUQEBfwJAIABBEGooAgAiAUUNACABQQA6AAAgAEEUaigCAEUNACAAKAIQECELAkAgAEF/Rg0AIAAgACgCBCIBQQFrNgIEIAFBAUcNACAAECELC4gCAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghBCADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAjAEEQayIEJAAgBCAAKAIAIgA2AgggBCAAQQRqNgIMIARBDGohAyAEQQhqIQALIAJFQQEjARsEQCABIAAgAxB7QQAjAUEBRg0BGiEACyMBRQRAIARBEGokACAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwjAiMCKAIAQRBqNgIAQQALsgEBAX8CfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsCQCMBRQRAAkACQCACRQRAQQEhAwwBCyACQX9MDQEgAhAOIgNFDQMLIAMgASACEPgBIQEgACACNgIIIAAgAjYCBCAAIAE2AgAPCwsgA0VBASMBGwRAEMsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgALTAEBfwJAIAAoAhBBAkYNACAAQRxqKAIABEAgACgCGBAhCyAAKAIkIgFFDQAgASAAQSxqKAIAEMQBIABBKGooAgBFDQAgACgCJBAhCwufAgECfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRUEAIwEEf0EABSAAKAIAIgBBBGooAgAgACgCCCIDayACTwsbRQRAIARFQQEjARsEQCAAIAMgAhB4QQAjAUEBRg0CGgsjAQR/IAMFIAAoAggLIQMLIwFFBEAgAyAAKAIAaiABIAIQ+AEaIAAgAiADajYCCEEADwsACyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAQQALgwIBA38jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEEIAMoAgwhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCMAQRBrIgQkACAEIAA2AgggBCAAQQRqNgIMIARBDGohAyAEQQhqIQALIAJFQQEjARsEQCABIAAgAxB7QQAjAUEBRg0BGiEACyMBRQRAIARBEGokACAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwjAiMCKAIAQRBqNgIAQQALggIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRUEAIwEEf0EABSAAKAIIIgMgACgCBEcLG0UEQCACRUEBIwEbBEAgACADEHNBACMBQQFGDQIaCwsjAUUEQCAAKAIAIQIgAwRAIAJBBGogAiADQQJ0EPcBCyACIAE2AgAgACADQQFqNgIICw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAv0AQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiAigCACEAIAIoAgQhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAQsjAUVBACMBBH9BAAUgACgCCCICIAAoAgRHCxtFBEAgAUVBASMBGwRAIAAgAkEBELoBQQAjAUEBRg0CGgsLIwFFBEAgACgCACEBIAIEQCABQQFqIAEgAhD3AQsgAUEAOgAAIAAgAkEBajYCCAsPCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACIBIAA2AgAgASACNgIEIwIjAigCAEEIajYCAAu5AwEGfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiBCgCACEAIAQoAgQhASAEKAIIIQIgBCgCDCEECwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRUEAIwEEf0EABSACIAFrIgIgACgCBCAAKAIIIgRrTQsbRQRAIANFQQEjARsEQCAAIQMgBCEHIAIhCAJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEEQayIGJAAgBkEIaiADIAcgCBB6AkAgBigCDCIDQYGAgIB4RwRAIANFDQEACyAGQRBqJAAMAwsLIAVFQQEjARsEQBDLAUEAIwFBAUYNARoLIwFFBEAACwwBCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgALQQAjAUEBRg0CGgsjAQR/IAQFIAAoAggLIQQLIwFFBEAgBCAAKAIAaiABIAIQ+AEaIAAgAiAEajYCCAsPCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAQ2AgwjAiMCKAIAQRBqNgIAC50BAQJ/An8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEEQayIDJAAgA0EIaiAAIAEgAhB5AkAgAygCDCIAQYGAgIB4RwRAIABFDQEACyADQRBqJAAPCwsgBEVBASMBGwRAEMsBQQAjAUEBRg0BGgsjAUUEQAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAC+wBAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIDKAIAIQIgAygCBCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBIGsiAyQAIANBFGpBADYCACADQcSiBTYCECADQgE3AgQgAyABNgIcIAMgADYCGCADIANBGGo2AgALIARFQQEjARsEQCADIAIQzAFBACMBQQFGDQEaCyMBRQRAAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAjAigCACIAIAI2AgAgACADNgIEIwIjAigCAEEIajYCAAtCAQF/IABBHGooAgAEQCAAKAIYECELAkAgACgCJCIBRQ0AIAEgAEEsaigCABDEASAAQShqKAIARQ0AIAAoAiQQIQsLoAIBA38jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgEoAgAhACABKAIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBEGsiAyQAIABBADYCCCAAQgE3AgALIARFQQEjARsEQCABIABBoPAEEBZBACMBQQFGDQEaIQALIwFFBEAgAEUEQCADQRBqJAAPCyADQQhqIQALIARBAUZBASMBGwRAQaCXBUE3IABBuPAEQbSYBRCXAUEBIwFBAUYNARoLIwFFBEAACw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAvsAQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiAigCACEBIAIoAgQhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACQRRqQQE2AgAgAkIBNwIEIAJBwKQFNgIAIAJBCTYCHCACIAA2AhggAiACQRhqNgIQCyADRUEBIwEbBEAgAiABEMwBQQAjAUEBRg0BGgsjAUUEQAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAiACABNgIAIAAgAjYCBCMCIwIoAgBBCGo2AgALkwIBAn8jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCECIAMoAgwhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUVBACMBBH9BAAUgACgCBCAAKAIIIgNrIAJPCxtFBEAgBEVBASMBGwRAIAAgAyACELoBQQAjAUEBRg0CGgsjAQR/IAMFIAAoAggLIQMLIwFFBEAgAyAAKAIAaiABIAIQ+AEaIAAgAiADajYCCAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAC4IJAgd/AX4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQkgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIAEoAgAiA0EQcSECIAAoAgAhAAsCQCMBRQRAIAINASADQSBxIQMLAkAjAUUEQCADDQEgADUCACEJCyAGRUEBIwEbBEAgCUEBIAEQUkEAIwFBAUYNAxohAAsjAUUEQCAADwsLIwFFBEAgACgCACEACyAGQQFGQQEjARsEQAJ/IAAhAiABIQcjAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhAiADKAIIIQUgAygCDCEEIAMoAgQhBwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCAsjAUVBACMBBH9BAAUjAEGAAWsiBCQAQQAhBQNAIAQgBWpB/wBqQTBBNyACQQ9xIgNBCkkbIANqOgAAIAVBAWshBSACQQ9LIAJBBHYhAg0ACyAFQYABaiICQYEBSQsbRQRAIAhFQQEjARsEQCACQYABQfSGBBDuAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAEIAVqQYABaiECQQAgBWshBQsgCEEBRkEBIwEbBEAgB0EBQYSHBEECIAIgBRAoQQEjAUEBRg0BGiECCyMBRQRAIARBgAFqJAAgAgwCCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgAjYCACADIAc2AgQgAyAFNgIIIAMgBDYCDCMCIwIoAgBBEGo2AgBBAAtBASMBQQFGDQIaIQALIwFFBEAgAA8LCyMBRQRAIAAoAgAhAAsgBkECRkEBIwEbBEACfyAAIQIgASEHQQAhBEEAIQZBACEIIwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQIgAygCCCEEIAMoAgwhBiADKAIEIQcLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQgLIwFFQQAjAQR/QQAFIwBBgAFrIgYkAEEAIQQDQCAEIAZqQf8AakEwQdcAIAJBD3EiA0EKSRsgA2o6AAAgBEEBayEEIAJBD0sgAkEEdiECDQALIARBgAFqIgJBgQFJCxtFBEAgCEVBASMBGwRAIAJBgAFB9IYEEO4BQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAQgBmpBgAFqIQJBACAEayEECyAIQQFGQQEjARsEQCAHQQFBhIcEQQIgAiAEEChBASMBQQFGDQEaIQILIwFFBEAgBkGAAWokACACDAILAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyACNgIAIAMgBzYCBCADIAQ2AgggAyAGNgIMIwIjAigCAEEQajYCAEEAC0ECIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgCTcCCCMCIwIoAgBBEGo2AgBBAAuOAgEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQQgASgCDCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCwJAIwFFBEAgAC0ABEEDRw0BIABBCGooAgAiAygCACEBIAMoAgQoAgAhBAsgAkVBASMBGwRAIAEgBBEEAEEAIwFBAUYNAhoLIwFFBEAgAygCBEEEaigCAARAIAMoAgAQIQsgACgCCBAhCwsPCyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiADNgIEIAIgBDYCCCACIAE2AgwjAiMCKAIAQRBqNgIAC9IBAQJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIABBCGooAgAiAUGCBE8EQCAAIABBBGogACgCABsoAgAtAIEEQQhxQQN2DwsLIAJFQQEjARsEQEGBBCABQeimBBCiAUEAIwFBAUYNARoLIwFFBEAACwALIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAQQAL0gEBAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgAEEIaigCACIBQYIETwRAIAAgAEEEaiAAKAIAGygCAC0AgQRBEHFBBHYPCwsgAkVBASMBGwRAQYEEIAFB2KYEEKIBQQAjAUEBRg0BGgsjAUUEQAALAAshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgBBAAszACABBEAgAUEMbCEBA0AgAEEEaigCAARAIAAoAgAQIQsgAEEMaiEAIAFBDGsiAQ0ACwsL+AIBBH8jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQYgASgCGCEHIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCAsgBiACQYCAxABGIwEbIQYCQAJAAkAjAUUEQCAGDQEgASgCECEHQQEhBgsgCEVBASMBGwRAIAAgAiAHEQAAQQAjAUEBRg0EGiECCyMBRUEAIAIbDQELIwFFBEAgAw0CQQAhBgsLIwFFBEAgBg8LCyMBRQRAIAEoAgwhAQsgCEEBRkEBIwEbBEAgACADIAQgAREBAEEBIwFBAUYNARohAAsjAUUEQCAADwsACyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAENgIQIAUgBjYCFCAFIAc2AhgjAiMCKAIAQRxqNgIAQQALNgAgACgCBARAIAAoAgAQIQsgAEEMaigCACAAQRRqKAIAEJgBIABBEGooAgAEQCAAKAIMECELC88BAQJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIABBCGooAgAiAUGCBE8EQCAAIABBBGogACgCABsoAgAtAIEEQQdxDwsLIAJFQQEjARsEQEGBBCABQfimBBCiAUEAIwFBAUYNARoLIwFFBEAACwALIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAQQALzwEBAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgAEEIaigCACIBQYEETwRAIAAgAEEEaiAAKAIAGygCACwAgARBf0oPCwsgAkVBASMBGwRAQYAEIAFByKYEEKIBQQAjAUEBRg0BGgsjAUUEQAALAAshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgBBAAuIAgEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQQgASgCDCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCwJAIwFFBEAgAC0AAEEDRw0BIAAoAgQiAygCACEBIAMoAgQoAgAhBAsgAkVBASMBGwRAIAEgBBEEAEEAIwFBAUYNAhoLIwFFBEAgAygCBCgCBARAIAMoAgAQIQsgACgCBBAhCwsPCyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiADNgIEIAIgBDYCCCACIAE2AgwjAiMCKAIAQRBqNgIAC/IBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsCQCMBRQRAIAFFBEBBASECDAILIAFBAEgiAkUEQCABEA4iAg0CAAsLIANFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAAIAE2AgQgACACNgIACw8LIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAAvUAQECfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAQsjAUUEQCMAQSBrIgAkACAAQRxqQQA2AgAgAEHEogU2AhggAEIBNwIMIABBoIMENgIIIABBCGohAAsgAUVBASMBGwRAIABBqIMEEMwBQQAjAUEBRg0BGgsjAUUEQAALDwshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAL9ggBCX8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQALAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEgayICJAAgAkEBOgAYIAIgATYCFCACIAA2AhAgAkGEhQQ2AgwgAkHEogU2AgggAkEIaiEACyAHRUEBIwEbBEAgACEIQQAhAUEAIQJBACEHIwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQggAigCCCEJIAIoAgQhAgsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCyMBRUEAIwFFBEAjAEEQayICJAAgCCgCCCEJCyAJG0UEQCABRUEBIwEbBEBBqKMFQStB8K8FELsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAIgCCgCDDYCCCACIAg2AgQgAiAJNgIACyABQQFGQQEjARsEQCMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsgAiEBAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQRBrIgckACAHQQhqIAFBCGooAgA2AgAgByABKQIANwMACyAFRUEBIwEbBEAgByEBQQAhBSMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiBCgCACEBIAQoAgQhAyAEKAIIIQYgBCgCDCEECwJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQoLIwFFBEAjAEEQayIEJAAgASgCACIDQRRqKAIAIQYgAygCBCEFCwJAIwFFBEACfwJAAkAgBQ4CAAEECyAGDQNBACEGQcSiBQwBCyAGDQIgAygCACIDKAIEIQYgAygCAAshAyAEIAY2AgQgBCADNgIAIAEoAgQiAygCCCEGIAMtABAhAyABKAIIIQELIApFQQEjARsEQCAEQbSwBSAGIAEgAxBUQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIARBADYCBCAEIAM2AgAgASgCBCIDKAIIIQYgAy0AECEDIAEoAgghAQsgCkEBRkEBIwEbBEAgBEGgsAUgBiABIAMQVEEBIwFBAUYNARoLIwFFBEAACwwBCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAE2AgAgBSADNgIEIAUgBjYCCCAFIAQ2AgwjAiMCKAIAQRBqNgIAC0EAIwFBAUYNARoLIwFFBEAACwwBCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACAHNgIAIwIjAigCAEEEajYCAAtBASMBQQFGDQEaCyMBRQRAAAsMAQshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAiASAINgIAIAEgAjYCBCABIAk2AggjAiMCKAIAQQxqNgIAC0EAIwFBAUYNARoLIwFFBEAACw8LIQEjAigCACABNgIAIwIjAigCAEEEajYCACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAC+0BAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIBKAIAIQAgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRUEAIwEEf0EABSAAQQhqKAIAIgFB/wNLCxtFBEAgAkVBASMBGwRAQYAEIAFBuKYEEO8BQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAAgAEEEaiAAKAIAGygCAEGAAmoPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQjAiMCKAIAQQhqNgIAQQALOwECfyABKAIEIQIgASgCACEDQQgQDiIBRQRAAAsgASACNgIEIAEgAzYCACAAQZCwBTYCBCAAIAE2AgALPAEBfyAAKAIAIQECQCAAQQRqLQAADQBB7LgFKAIAQf////8HcUUNABD6AQ0AIAFBAToAAQsgAUEAOgAAC6MCAQR/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIBKAIAIQAgASgCCCEDIAEoAgwhBCABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAgASgCGCEDIAFBHGooAgAoAgwhAUEBIQALIAVFQQEjARsEQCADQeStBUELIAERAQBBACMBQQFGDQEaIQQLIwFFQQAgBBtFBEAgBUEBRkEBIwEbBEAgA0HLhgRBByABEQEAQQEjAUEBRg0CGiEACwsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzYCCCACIAQ2AgwjAiMCKAIAQRBqNgIAQQALLQEBfwJAIAAoAgAiAUUNACABIABBCGooAgAQxAEgACgCBEUNACAAKAIAECELCyQAIABBMGoQxgEgAEEMaigCAARAIAAoAggQIQsgAEEYahDGAQsjACAAKAIEBEAgACgCABAhCyAAQRBqKAIABEAgACgCDBAhCwvdAQEDfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAjAEEQayIDJAAgA0EIaiEBCyACRUEBIwEbBEAgASAAEMoBQQAjAUEBRg0BGgsjAUUEQCADKAIIIANBEGokAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgAzYCBCACIAE2AggjAiMCKAIAQQxqNgIAQQAL4AECAX8BfiMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEpAgghAyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACIArUIAIACsfSAAQX9KIgAbIQMLIAJFQQEjARsEQCADIAAgARBSQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNwIIIwIjAigCAEEQajYCAEEAC+MBAgF/An4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAApAwAiBEI/hyIDIASFIAN9IQMgBEJ/VSEACyACRUEBIwEbBEAgAyAAIAEQUkEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzcCCCMCIwIoAgBBEGo2AgBBAAv9AQEDfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQQgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAoAgAiACgCACEEIAFBGGooAgAhAyABQRxqKAIAIQEgACgCCCEACyACRUEBIwEbBEAgBCAAIAMgARAfQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiAENgIIIAIgAzYCDCMCIwIoAgBBEGo2AgBBAAv8AQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUVBACMBRQRAIAAoAgAtAAAhAAsgABtFBEAgA0VBASMBGwRAIAFBh4kEQQUQE0EAIwFBAUYNAhohAAsjAUUEQCAADwsLIANBAUZBASMBGwRAIAFBg4kEQQQQE0EBIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEACyABAX8CQCAAKAIEIgFFDQAgAEEIaigCAEUNACABECELC/gBAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghBCADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEEIAFBGGooAgAhAyABQRxqKAIAIQEgACgCCCEACyACRUEBIwEbBEAgBCAAIAMgARAfQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiAENgIIIAIgAzYCDCMCIwIoAgBBEGo2AgBBAAvzAQEBfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRUEAIAIbRQRAIARFQQEjARsEQCAAIAEQfUEAIwFBAUYNAhoLIwFFBEAPCwsgBEEBRkEBIwEbBEAgACABIAIgAxAlQQEjAUEBRg0BGgsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAC+MBAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUVBACACG0UEQCAERUEBIwEbBEAgACABEH1BACMBQQFGDQIaCyMBRQRADwsLIARBAUZBASMBGwRAIAAgASADECBBASMBQQFGDQEaCw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAvRAQEBfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCABKAIYIQAgAUEcaigCACgCDCEBCyACRUEBIwEbBEAgAEG0hARBDiABEQEAQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQjAiMCKAIAQQhqNgIAQQAL0QEBAX8jAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgEoAgAhACABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgASgCGCEAIAFBHGooAgAoAgwhAQsgAkVBASMBGwRAIABB9aoFQQUgAREBAEEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEACxQAIABBCGooAgAEQCAAKAIEECELCxQAIABBBGooAgAEQCAAKAIAECELCxEAIAAoAgQEQCAAKAIAECELC9kBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIgAoAgAhAyAAKAIIIQALIAJFQQEjARsEQCABIAMgABATQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEAC9MBAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCABIAJqIQIgACgCACEACyADRUEBIwEbBEAgACABIAIQuQFBACMBQQFGDQEaCyMBRQRAQQAPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC9cBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIQMgAEEIaigCACEACyACRUEBIwEbBEAgASADIAAQE0EAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzYCCCMCIwIoAgBBDGo2AgBBAAvYAQECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEDIAAoAgQoAgwhAAsgAkVBASMBGwRAIAMgASAAEQAAQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEAC8AOAQp/IwFBAkYEQCMCIwIoAgBBFGs2AgAjAigCACIEKAIAIQAgBCgCBCEBIAQoAgghAiAEKAIMIQMgBCgCECEECwJ/IwFBAkYEfyMCIwIoAgBBBGs2AgAjAigCACgCAAVBAAtFQQEjARsEQCAAIQcgASEKIAIhCCADIQ0gBCEOIwFBAkYEQCMCIwIoAgBBJGs2AgAjAigCACIJKAIAIQcgCSgCBCEKIAkoAgghCCAJKAIMIQ0gCSgCECEOIAkoAhQhBSAJKAIYIQYgCSgCHCELIAkoAiAhCQsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEMCyMBRQRAIwBB8ABrIgUkACAFIA02AgwgBSAINgIIIApBgQJJIQYLAkACQAJAIwFFBEAgBQJ/AkACQCAGRQRAQQAhBgNAIAYgB2ohCyAGQQFrIgkhBiALQYACaiwAAEG/f0wNAAsgCUGBAmoiBiAKSQ0CIAkgCkGBAmtHIgkNBSAFIAY2AhQMAQsgBSAKNgIUCyAFIAc2AhBBxKIFIQtBAAwBCyAHIAlqQYECaiwAAEG/f0wiCQ0CIAUgBjYCFCAFIAc2AhBBhI8EIQtBBQs2AhwgBSALNgIYIAggCkshBgsCQAJAIwFFBEAgBg0BIAogDUkiCQ0BIAggDUshBgsCfwJAAkAjAUUEQCAGRQRAAkACQCAIRQ0AIAggCk8EQCAIIApGDQEMAgsgByAIaiwAAEFASA0BCyANIQgLIAUgCDYCICAKIgYgCE0iDUUEQCAIQQNrIgsgCEshDSAIQQFqIgZBACALIA0bIgtJDQcgBiAHaiAHIAtqayEGA0AgBkEBayEGIAcgCGohCyAIQQFrIgkhCCALLAAAQUBIIg0NAAsgCUEBaiEGCwJAIAZFIggNACAGIApPBEAgBiAKRiIIDQEMCwsgBiAHaiwAAEG/f0wiCA0KCyAGIApGIgoNCAJAIAYgB2oiBywAACILQX9KIgpFBEAgBy0AAUE/cSEIIAtBH3EhCSALQV9LIgoNASAIIAlBBnRyIQcMBQsgBSALQf8BcSIHNgIkQQEMBQsgBy0AAkE/cSAIQQZ0ciEIIAtBcE8iCg0CIAggCUEMdHIhBwwDCyAFQeQAakEDNgIAIAVB3ABqQQM2AgAgBUHUAGpBBDYCACAFQcQAakEENgIAIAVCBDcCNCAFQeiPBDYCMCAFQQQ2AkwgBSAFQcgAajYCQCAFIAVBGGo2AmAgBSAFQRBqNgJYIAUgBUEMajYCUCAFIAVBCGo2AkggBUEwaiEHCyAMRUEBIwEbBEAgByAOEMwBQQAjAUEBRg0JGgsjAUUEQAALCyMBRQRAIAlBEnRBgIDwAHEgBy0AA0E/cSAIQQZ0cnIiB0GAgMQARiIKDQYLCyMBBH8gCwUgBSAHNgIkQQEgB0GAAUkiCg0BGkECIAdBgBBJIgoNARpBA0EEIAdBgIAESSIHGwsLIQsjAUUEQCAFIAY2AiggBSAGIAtqNgIsIAVBxABqQQU2AgAgBUHsAGpBAzYCACAFQeQAakEDNgIAIAVB3ABqQQY2AgAgBUHUAGpBBzYCACAFQgU3AjQgBUG8kAQ2AjAgBUEENgJMIAUgBUHIAGo2AkAgBSAFQRhqNgJoIAUgBUEQajYCYCAFIAVBKGo2AlggBSAFQSRqNgJQIAUgBUEgajYCSCAFQTBqIQcLIAxBAUZBASMBGwRAIAcgDhDMAUEBIwFBAUYNBhoLIwFFBEAACwsjAUUEQCAFIAggDSAGGzYCKCAFQcQAakEDNgIAIAVB3ABqQQM2AgAgBUHUAGpBAzYCACAFQgM3AjQgBUGsjwQ2AjAgBUEENgJMIAUgBUHIAGo2AkAgBSAFQRhqNgJYIAUgBUEQajYCUCAFIAVBKGo2AkggBUEwaiEHCyAMQQJGQQEjARsEQCAHIA4QzAFBAiMBQQFGDQUaCyMBRQRAAAsLIAxBA0ZBASMBGwRAIAsgBkGAkQQQ8AFBAyMBQQFGDQQaCyMBRQRAAAsLIAxBBEZBASMBGwRAIAcgCkEAIAYgDhDmAUEEIwFBAUYNAxoLIwFFBEAACwsgDEEFRkEBIwEbBEBBqKMFQSsgDhC7AUEFIwFBAUYNAhoLIwFFBEAACwsgDEEGRkEBIwEbBEAgByAKIAYgCiAOEOYBQQYjAUEBRg0BGgsjAUUEQAALDAELIQwjAigCACAMNgIAIwIjAigCAEEEajYCACMCKAIAIgwgBzYCACAMIAo2AgQgDCAINgIIIAwgDTYCDCAMIA42AhAgDCAFNgIUIAwgBjYCGCAMIAs2AhwgDCAJNgIgIwIjAigCAEEkajYCAAtBACMBQQFGDQEaCyMBRQRAAAsPCyEIIwIoAgAgCDYCACMCIwIoAgBBBGo2AgAjAigCACIIIAA2AgAgCCABNgIEIAggAjYCCCAIIAM2AgwgCCAENgIQIwIjAigCAEEUajYCAAvUAQECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEDIAAoAgQhAAsgAkVBASMBGwRAIAEgAyAAEBNBACMBQQFGDQEaIQALIwFFBEAgAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM2AggjAiMCKAIAQQxqNgIAQQAL1AEBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAoAgAhAyAAKAIIIQALIAJFQQEjARsEQCABIAMgABATQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEACwsAIAEEQCAAECELCxIAIABBkLAFNgIEIAAgATYCAAu+AQEBfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgR/IwIjAigCAEEEazYCACMCKAIAKAIABUEAC0VBASMBGwRAIAAgASACEL8BQQAjAUEBRg0BGgsjAUUEQEEADwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAsOACAAKAIAGgNADAALAAvPAQIBfwF+IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIBKAIAIQAgASkCCCEDIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAANQIAIQMLIAJFQQEjARsEQCADQQEgARBSQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNwIIIwIjAigCAEEQajYCAEEAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANBsIoENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANB0IoENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANBhIsENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC/0EAQZ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQcjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgcoAgAhBCAHKAIEIQcLAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQRBrIgUkACAFIAY2AgwgBSAENgIIIAVBCGohBAsgA0VBASMBGwRAIAchBkEAIQMjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBiAFKAIEIQMLIAQhBQJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQgLIwFFBEAjAEEgayIDJAAgA0EUakEBNgIAIANCATcCBCADQcCkBTYCACADQQM2AhwgAyAFNgIYIAMgA0EYajYCEAsgCEVBASMBGwRAIAMgBhDMAUEAIwFBAUYNARoLIwFFBEAACwwBCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAY2AgAgBSADNgIEIwIjAigCAEEIajYCAAtBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBzYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC80BAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCAAKAIAIQALIANFQQEjARsEQCAAIAEgAhAsQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC88BAgF/AX4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAxAAAhAwsgAkVBASMBGwRAIANBASABEFJBACMBQQFGDQEaIQALIwFFBEAgAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM3AggjAiMCKAIAQRBqNgIAQQALzwECAX8BfiMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEpAgghAyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACkDACEDCyACRUEBIwEbBEAgA0EBIAEQUkEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzcCCCMCIwIoAgBBEGo2AgBBAAu9AQEBfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIQALIAJFQQEjARsEQCAAIAEQUUEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEAC5wBAQJ/IAJBD0sEQEEAIABrQQNxIgMgAGohBCADBEADQCAAIAE6AAAgBCAAQQFqIgBLDQALCyAEIAIgA2siAkF8cSIDaiEAIANBAU4EQCABQf8BcUGBgoQIbCEDA0AgBCADNgIAIARBBGoiBCAASQ0ACwsgAkEDcSECCyACBEAgACACaiECA0AgACABOgAAIAIgAEEBaiIASw0ACwsLlAUBB38CQAJAAn8CQCACIgMgACABa0sEQCABIANqIQUgACADaiECIANBD0sNASAADAILIANBD00EQCAAIQIMAwtBACAAa0EDcSIFIABqIQQgBQRAIAAhAiABIQADQCACIAAtAAA6AAAgAEEBaiEAIAJBAWoiAiAESQ0ACwsgAyAFayIDQXxxIgYgBGohAgJAIAEgBWoiBUEDcSIABEAgBkEBSA0BIAVBfHEiB0EEaiEBQQAgAEEDdCIIa0EYcSEJIAcoAgAhAANAIAQgACAIdiABKAIAIgAgCXRyNgIAIAFBBGohASACIARBBGoiBEsNAAsMAQsgBkEBSA0AIAUhAQNAIAQgASgCADYCACABQQRqIQEgAiAEQQRqIgRLDQALCyADQQNxIQMgBSAGaiEBDAILIAJBfHEhAEEAIAJBA3EiBmshByAGBEAgASADakEBayEEA0AgAkEBayICIAQtAAA6AAAgBEEBayEEIAAgAkkNAAsLIAAgAyAGayIGQXxxIgNrIQJBACADayEDAkAgBSAHaiIFQQNxIgQEQCADQX9KDQEgBUF8cSIHQQRrIQFBACAEQQN0IghrQRhxIQkgBygCACEEA0AgAEEEayIAIAQgCXQgASgCACIEIAh2cjYCACABQQRrIQEgACACSw0ACwwBCyADQX9KDQAgASAGakEEayEBA0AgAEEEayIAIAEoAgA2AgAgAUEEayEBIAAgAksNAAsLIAZBA3EiAEUNAiADIAVqIQUgAiAAawshACAFQQFrIQEDQCACQQFrIgIgAS0AADoAACABQQFrIQEgACACSQ0ACwwBCyADRQ0AIAIgA2ohAANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIABJDQALCwuzAgEHfwJAIAIiBEEPTQRAIAAhAgwBC0EAIABrQQNxIgMgAGohBSADBEAgACECIAEhBgNAIAIgBi0AADoAACAGQQFqIQYgBSACQQFqIgJLDQALCyAEIANrIghBfHEiByAFaiECAkAgASADaiIDQQNxIgQEQCAHQQFIDQEgA0F8cSIGQQRqIQFBACAEQQN0IglrQRhxIQQgBigCACEGA0AgBSAGIAl2IAEoAgAiBiAEdHI2AgAgAUEEaiEBIAVBBGoiBSACSQ0ACwwBCyAHQQFIDQAgAyEBA0AgBSABKAIANgIAIAFBBGohASAFQQRqIgUgAkkNAAsLIAhBA3EhBCADIAdqIQELIAQEQCACIARqIQMDQCACIAEtAAA6AAAgAUEBaiEBIAMgAkEBaiICSw0ACwsgAAtDAQN/AkAgAkUNAANAIAAtAAAiBCABLQAAIgVGBEAgAEEBaiEAIAFBAWohASACQQFrIgINAQwCCwsgBCAFayEDCyADCwoAQci8BSgCAEULjgEAIwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEfyMCIwIoAgBBBGs2AgAjAigCACgCAAVBAAtFQQEjARsEQCABIAEQcEEAIwFBAUYNARoLDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgALDABCuInPl4nG0fhMCwwAQsiF+aSet9TbEgsNAELrkZO19tizovQACwMAAQsZAEEBJAEgACQCIwIoAgAjAigCBEsEQAALCxUAQQAkASMCKAIAIwIoAgRLBEAACwsZAEECJAEgACQCIwIoAgAjAigCBEsEQAALCwQAIwELC968AQIAQYCABAvAuAEvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY2lkLTAuOC42L3NyYy9jaWQucnMAABIAAAAAAAAAIAAAAAAAAAATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwCIAAEATwAAAIwFAAAhAAAAiAABAE8AAACYBQAAFAAAAIgAAQBPAAAAmAUAACEAAAAAAAEATgAAAC4BAAAdAAAAbWFuaWZlc3R3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wABkAAAAEAAAABAAAABoAAAAbAAAAHAAAAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnNjYXBhY2l0eSBvdmVyZmxvdwAAAIwBAQARAAAAcAEBABwAAAAGAgAABQAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvcgAZAAAAAAAAAAEAAAAYAAAAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJz/AEBABgAAABkAgAACQAAAC9pcGZzLy4uKgIBAAIAAABCb3Jyb3dNdXRFcnJvcmluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgQgIBACAAAABiAgEAEgAAABkAAAAAAAAAAQAAAB0AAAA9PWFzc2VydGlvbiBmYWlsZWQ6IGAobGVmdCAgcmlnaHQpYAogIGxlZnQ6IGBgLAogcmlnaHQ6IGBgOiCWAgEAGQAAAK8CAQASAAAAwQIBAAwAAADNAgEAAwAAAGAAAACWAgEAGQAAAK8CAQASAAAAwQIBAAwAAADwAgEAAQAAAERRAQAAAAAA41UBAAIAAAAZAAAADAAAAAQAAAAeAAAAHwAAACAAAAAgICAgIHsKLAosICB7IH0geyAuLiB9IH0oCigsbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAFgDAQAbAAAAZQAAABQAAAAweDAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AAAZAAAABAAAAAQAAAAhAAAAIgAAACMAAABsaWJyYXJ5L2NvcmUvc3JjL2ZtdC9tb2QucnN0cnVlZmFsc2Vo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gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGQAAAAAAAFAUAQACAgAAMDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGwAAAAAAAGAWAQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAPoCAgD80NTY3ODk6Ozw9gICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjOAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB4AAAAAehgBAAICAAB5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5eWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3Njl5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5eWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3Njl5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBKAGRobHh0HH4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBgBDAMIBQYcFQkKgAsCEA0OBBYRE4AUDwAXgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAdAAAAAAAAiBoBAAICAAAxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA+gICAPzQ1Njc4OTo7PD2AgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAaGxwdHh8gISIjJCUmJygpKissLS4vMDEyM4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HgAAAADSHAEAAgIAAEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA+gIA0NTY3ODk6Ozw9gICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgD+AGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjOAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB4AAAAAAADgHgEAAgIAADAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWaAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAQIDBAUGBwgJgICAgICAgAoLDA0OD4CAgICAgICAgICAgICAgICAgICAgICAgICACgsMDQ4PgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBwAAAAAAADwIAEAAgIAADAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUaAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAQIDBAUGBwgJgICAgICAgAoLDA0OD4CAgICAgICAgICAgICAgICAgICAgICAgICACgsMDQ4PgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBwAAAAAAAAAIwEAAgIAAGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjeAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBobHB0eH4CAgICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB0AAAAAAAAQJQEAAgIAAEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjeAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBobHB0eH4CAgICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB0AAAAAAAAgJwEAAgIAADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OWFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXpBQkNERUZHSEpLTE1OUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAPoCANDU2Nzg5Ojs8PYCAgIKAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgIA/gBobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgD0eAAAAALIpAQACAgAAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1doCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICAgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAHQAAAAAAAMArAQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICAgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAHQAAAAAAANAtAQACAgAAYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGhscHR4fgICAgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAOAvAQACAgAAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGhscHR4fgICAgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAPAxAQACAgAAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1doCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICCgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAAA0AQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICCgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAABA2AQACAgAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAACkAAAAQAAAABAAAACoAAAApAAAAEAAAAAQAAAArAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Jhc2UteC0wLjIuMTEvc3JjL2RlY29kZXIucnMAAGg4AQBWAAAAKAAAABYAAABzcmMvd3JhcC9tb2R1bGUvd3JhcHBlZC5ycwAA0DgBABoAAAAXAAAALQAAANA4AQAaAAAAIwAAAA0AAADQOAEAGgAAACAAAAA3AAAA0DgBABoAAAAtAAAALQAAANA4AQAaAAAAOAAAAA0AAADQOAEAGgAAADUAAAAwAAAAc3JjL3V0aWwvZXhlY19jYXQucnNMOQEAFAAAAB8AAAAMAAAATDkBABQAAAAmAAAASAAAAFJlY2VpdmVkIGVtcHR5IHJlc3VsdCBmcm9tIGNvbmN1cnJlbnQgdGFza3Rhc2tJZGkzMk9wdGlvbjxTdHJpbmc+c3RhdHVzQ29uY3VycmVudFRhc2tTdGF0dXN0YXNrSWQ6IEludC5zdGF0dXM6IENvbmN1cnJlbnRfVGFza1N0YXR1cy5TZXJpYWxpemluZyAoZW5jb2RpbmcpIGltcG9ydGVkIG1vZHVsZS10eXBlOiBjYXQgQXJnc2NpZGlwZnNQcm92aWRlcmNhdE9wdGlvbnNPcHRpb248Q2xpZW50Q2F0T3B0aW9ucz5EZXNlcmlhbGl6aW5nIGltcG9ydGVkIG1vZHVsZS10eXBlOiBjYXQgUmVzdWx0dXJpbWV0aG9kYXJnc1ZlYzx1OD5JcGZzIHVyaSByZXNvbHZlciByZXF1aXJlcyBhIGNvbmZpZ3VyZWQgRW52c3JjL2xpYi5ycwAA2DoBAAoAAAAIAAAAEwAAAC93cmFwLmluZm8AAERRAQAAAAAA9DoBAAoAAADYOgEACgAAABsAAAATAAAARGVzZXJpYWxpemluZyBlbnYtdHlwZTogRW52cmV0cmllc09wdGlvbjxSZXRyaWVzPnRpbWVvdXRmYWxsYmFja1Byb3ZpZGVyc09wdGlvbjxWZWM8U3RyaW5nPj5kaXNhYmxlUGFyYWxsZWxSZXF1ZXN0c09wdGlvbjxib29sPnByb3ZpZGVyOiBTdHJpbmcuEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAHNyYy91dGlsL2V4ZWMucnNQYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IGF2YWlsYWJsZS4gRXhlY3V0aW5nIHNlcXVlbnRpYWxseSBpbnN0ZWFkLiBQYXJhbGxlbCBleGVjdXRpb24gcmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIENvbmN1cnJlbnQgaW50ZXJmYWNlLiBZb3UgY2FuIGRlY2xhcmUgYW4gaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIGluIHlvdXIgUG9seXdyYXAgQ2xpZW50IGNvbmZpZ3VyYXRpb24uCgDoOwEA4wAAANg7AQAQAAAARwAAACYAAABBbiBlcnJvciBvY2N1cnJlZApPcGVyYXRpb246IGNhdApQcm92aWRlcjogClRpbWVvdXQ6IApFcnJvcjogAAAA5DwBACsAAAAPPQEACgAAABk9AQAIAAAARXhlY3V0aW9uIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBJUEZTIEhUVFAgQ2xpZW50IGludGVyZmFjZS4gWW91IGNhbiBkZWNsYXJlIGFuIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbiBpbiB5b3VyIFBvbHl3cmFwIENsaWVudCBjb25maWd1cmF0aW9uLgAAPD0BAJoAAADYOwEAEAAAAFgAAAAJAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9tdWx0aWJhc2UtMC45LjEvc3JjL2xpYi5ycxg+AQBUAAAAJgAAACAAAABPcHRpb248dTMyPnR5cGUgZm91bmQsIHJlYWRpbmcgcHJvcGVydHlvZmZzZXRPcHRpb248aTMyPmxlbmd0aHdyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmNvbmN1cnJlbnRAMS4wLjBEZXNlcmlhbGl6aW5nIG1vZHVsZS10eXBlOiB0cnlfcmVzb2x2ZV91cmkgQXJnc2F1dGhvcml0eVN0cmluZ3R5cGUgZm91bmQsIHJlYWRpbmcgYXJndW1lbnRhdXRob3JpdHk6IFN0cmluZy5wYXRoOiBTdHJpbmcuU2VyaWFsaXppbmcgKGVuY29kaW5nKSBtb2R1bGUtdHlwZTogdHJ5X3Jlc29sdmVfdXJpIFJlc3VsdHRyeVJlc29sdmVVcmlPcHRpb248VXJpUmVzb2x2ZXJNYXliZVVyaU9yTWFuaWZlc3Q+d3JpdGluZyByZXN1bHREZXNlcmlhbGl6aW5nIG1vZHVsZS10eXBlOiBnZXRfZmlsZSBBcmdzU2VyaWFsaXppbmcgKGVuY29kaW5nKSBtb2R1bGUtdHlwZTogZ2V0X2ZpbGUgUmVzdWx0Z2V0RmlsZU9wdGlvbjxWZWM8dTg+PgATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAU2VyaWFsaXppbmcgKGVuY29kaW5nKSBpbXBvcnRlZCBtb2R1bGUtdHlwZTogcmVzdWx0IEFyZ3N0YXNrSWRzVmVjPGkzMj53cml0aW5nIHByb3BlcnR5cmV0dXJuV2hlbkNvbmN1cnJlbnRSZXR1cm5XaGVuRGVzZXJpYWxpemluZyBpbXBvcnRlZCBtb2R1bGUtdHlwZTogcmVzdWx0IFJlc3VsdHJlc3VsdFZlYzxDb25jdXJyZW50VGFza1Jlc3VsdD5yZWFkaW5nIGZ1bmN0aW9uIG91dHB1dFNlcmlhbGl6aW5nIChlbmNvZGluZykgaW1wb3J0ZWQgbW9kdWxlLXR5cGU6IHNjaGVkdWxlIEFyZ3N0YXNrc1ZlYzxDb25jdXJyZW50VGFzaz5EZXNlcmlhbGl6aW5nIGltcG9ydGVkIG1vZHVsZS10eXBlOiBzY2hlZHVsZSBSZXN1bHRzY2hlZHVsZS91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy91bnNpZ25lZC12YXJpbnQtMC43LjEvc3JjL2RlY29kZS5ycwAA4UEBAF0AAAB7AAAABQAAABMAAAAMAAAABAAAABQAAAAVAAAAFgAAABcAAAAAAAAAAQAAABgAAABJbnZhbGlkIHZhbHVlIGZvciBlbnVtICdDb25jdXJyZW50VGFza1N0YXR1cyc6IAB4QgEALwAAAFBFTkRJTkdSVU5OSU5HQ09NUExFVEVEQ0FOQ0VMTEVERkFJTEVEX01BWF9JbnZhbGlkIGtleSBmb3IgZW51bSAnQ29uY3VycmVudFRhc2tTdGF0dXMnOiDbQgEALQAAAGNhdAATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAEwAAAAwAAAAEAAAALAAAAEZhaWxlZCB0byBjcmVhdGUgbmV3IGRhdGEgdmlldy91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvbXNncGFjay9yZWFkX2RlY29kZXIucnMAAABqQwEAcwAAABQAAAAvAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICdpbnQnLiDwQwEAIAAAAGludGVnZXIgb3ZlcmZsb3c6IHZhbHVlID0gOyBiaXRzID0gNjQAAAAYRAEAGgAAADJEAQALAAAAdW5zaWduZWQgaW50ZWdlciBjYW5ub3QgYmUgbmVnYXRpdmUuIAAAAFBEAQAlAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICd1aW50Jy4gAAAAgEQBACEAAABQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgJ2Jvb2wnLiAAAACsRAEAIQAAADsgYml0cyA9IDMyABhEAQAaAAAA2EQBAAsAAAB1bnNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93OiB2YWx1ZSA9IAD0RAEAIwAAANhEAQALAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICdzdHJpbmcnLiAAKEUBACMAAABQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgJ2J5dGVzJy4gAABURQEAIgAAAFByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSAnYXJyYXknLiAAAIBFAQAiAAAAYXJyYXlbXVByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSAnbWFwJy4gALNFAQAgAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAEZvdW5kICdGSVhFWFQxNicuRm91bmQgJ0ZJWEVYVDgnLkZvdW5kICdGSVhFWFQ0Jy5Gb3VuZCAnRklYRVhUMicuRm91bmQgJ0ZJWEVYVDEnLkZvdW5kICdpbnQ2NCcuRm91bmQgJ2ludDMyJy5Gb3VuZCAnaW50MTYnLkZvdW5kICdpbnQ4Jy5Gb3VuZCAndWludDY0Jy5Gb3VuZCAndWludDMyJy5Gb3VuZCAndWludDE2Jy5Gb3VuZCAndWludDgnLkZvdW5kICdmbG9hdDY0Jy5Gb3VuZCAnZmxvYXQzMicuRm91bmQgJ0VYVDMyJy5Gb3VuZCAnRVhUMTYnLkZvdW5kICdFWFQ4Jy5Gb3VuZCAnQklOMzInLkZvdW5kICdCSU4xNicuRm91bmQgJ0JJTjgnLkZvdW5kICdib29sJy5Gb3VuZCAncmVzZXJ2ZWQnLkZvdW5kICduaWwnLkZvdW5kICdzdHJpbmcnLkZvdW5kICdhcnJheScuRm91bmQgJ21hcCcuRm91bmQgJ2ludCcuSU9FcnJvcgAXAAAABAAAAAQAAAAtAAAAVHlwZVdyaXRlRXJyb3JTdHJXcml0ZUVycm9ySW50MzJXcml0ZUVycm9ySW50MTZXcml0ZUVycm9ySW50OFdyaXRlRXJyb3JVaW50MzJXcml0ZUVycm9yVWludDE2V3JpdGVFcnJvclVpbnQ4V3JpdGVFcnJvckZsb2F0NjRXcml0ZUVycm9yRmxvYXQzMldyaXRlRXJyb3JKU09OV3JpdGVFcnJvckJpZ0ludFdyaXRlRXJyb3JCaW5Xcml0ZUVycm9yQm9vbGVhbldyaXRlRXJyb3JGb3JtYXRXcml0ZUVycm9yTmlsV3JpdGVFcnJvclR5cGVSZWFkRXJyb3JNaXNzaW5nRmllbGRXcm9uZ01zZ1BhY2tGb3JtYXRVbmtub3duRmllbGROYW1lRW51bVJlYWRFcnJvclN0clJlYWRFcnJvckV4dEdlbmVyaWNNYXBSZWFkRXJyb3JNYXBSZWFkRXJyb3JBcnJheVJlYWRFcnJvckludFJhbmdlRXJyb3JKU09OUmVhZEVycm9yQmlnTnVtYmVyUmVhZEVycm9yQmlnSW50UmVhZEVycm9yRmxvYXRSZWFkRXJyb3JVaW50UmVhZEVycm9ySW50UmVhZEVycm9yUGFyc2VCaWdOdW1iZXJFcnJvclBhcnNlQmlnSW50RXJyb3JCeXRlc1JlYWRFcnJvckJvb2xlYW5SZWFkRXJyb3JGb3VuZE5pbEJ1dEV4cGVjdGVkTWlzc2luZyByZXF1aXJlZCBmaWVsZDogJycAAADbSQEAGQAAAPRJAQABAAAAVW5rbm93bkZpZWxkTmFtZTogJwAISgEAEwAAAPRJAQABAAAARm91bmQgTklMLCBidXQgZXhwZWN0ZWQ6ICcAACxKAQAaAAAA9EkBAAEAAAApAAAAEAAAAAQAAAAqAAAAX193cmFwX2dldEltcGxlbWVudGF0aW9uc19yZXN1bHRWZWM8U3RyaW5nPl9fd3JhcF9nZXRJbXBsZW1lbnRhdGlvbnMgc3VjY2Vzc2Z1bC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvZ2V0X2ltcGxlbWVudGF0aW9ucy5ycwAAALdKAQByAAAAJQAAADcAAAAXAAAAAAAAAAEAAAAuAAAALwAAAC8AAAB1bmtub3duIGVycm9yQ291bGQgbm90IGZpbmQgaW52b2tlIGZ1bmN0aW9uIGFLAQAfAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQAXAAAAAAAAAAEAAAAYAAAAL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzAOhLAQBLAAAAzgkAAAkAAAAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvaW8vbW9kLnJzAAAAREwBAEkAAADEAQAAHAAAAGZhaWxlZCB0byBmaWxsIHdob2xlIGJ1ZmZlcgCgTAEAGwAAACUAAABETAEASQAAAIQBAAAbAAAAREwBAEkAAACTAQAAMAAAAC9ydXN0Yy84OTdlMzc1NTNiYmE4YjQyNzUxYzY3NjU4OTY3ODg5ZDExZWNkMTIwL2xpYnJhcnkvc3RkL3NyYy9pby9yZWFkYnVmLnJzAAAA6EwBAE0AAAD9AAAAFQAAAOhMAQBNAAAA0wAAADUAAADoTAEATQAAAMsAAAA2AAAAbnVtYmVyIG9mIHJlYWQgYnl0ZXMgZXhjZWVkcyBsaW1pdAAAaE0BACIAAABETAEASQAAABsKAAAJAAAAREwBAEkAAAAtCgAAJgAAAGF0dGVtcHQgdG8gam9pbiBpbnRvIGNvbGxlY3Rpb24gd2l0aCBsZW4gPiB1c2l6ZTo6TUFYL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAAAA6U0BAEgAAACwAAAAFgAAAOlNAQBIAAAAlAAAABgAAABjb250ZXh0IGRlc2NyaXB0aW9uIG5vdCBzZXRFcnJvcjogdHJpZWQgdG8gcG9wIGFuIGl0ZW0gZnJvbSBhbiBlbXB0eSBDb250ZXh0IHN0YWNrAABvTgEANwAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvZGVidWcvY29udGV4dC5yc7BOAQBsAAAAKwAAAA0AAACwTgEAbAAAAC0AAAAlAAAAID4+IDxPAQAEAAAARFEBAAAAAADjVQEAAgAAAERRAQAAAAAACiAAAGFPAQABAAAAAAAAACAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAMAAABgTwEAAQAAAENvbnRleHQ6IGNvbnRleHQgc3RhY2sgaXMgZW1wdHlhdCAgOiAAAACzTwEAAwAAALZPAQADAAAAPE8BAAQAAAAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvaW8vaW1wbHMucnMA1E8BAEsAAADyAAAADQAAAC9ydXN0Yy84OTdlMzc1NTNiYmE4YjQyNzUxYzY3NjU4OTY3ODg5ZDExZWNkMTIwL2xpYnJhcnkvc3RkL3NyYy9pby9jdXJzb3IucnMwUAEATAAAAOsAAAAKAAAAY3Vyc29yIHBvc2l0aW9uIGV4Y2VlZHMgbWF4aW11bSBwb3NzaWJsZSB2ZWN0b3IgbGVuZ3RoAACMUAEANgAAABQAAAAXAAAABAAAAAQAAAAwAAAAMQAAADIAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlABkAAAAEAAAABAAAADMAAAA0AAAANQAAABkAAAAEAAAABAAAADYAAAA3AAAAOAAAAGFscmVhZHkgYm9ycm93ZWQZAAAAAAAAAAEAAAA5AAAAYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKCkAGQAAAAQAAAAEAAAAOgAAABkAAAAEAAAABAAAADsAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnNmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkAPBRAQA3AAAA01EBAB0AAAAXBAAADQAAAERRAQAAAAAAbGlicmFyeS9zdGQvc3JjL2lvL2J1ZmZlcmVkL2xpbmV3cml0ZXJzaGltLnJzAAAASFIBAC0AAAABAQAAKQAAAHVuY2F0ZWdvcml6ZWQgZXJyb3JvdGhlciBlcnJvcm91dCBvZiBtZW1vcnl1bmV4cGVjdGVkIGVuZCBvZiBmaWxldW5zdXBwb3J0ZWRvcGVyYXRpb24gaW50ZXJydXB0ZWRhcmd1bWVudCBsaXN0IHRvbyBsb25naW52YWxpZCBmaWxlbmFtZXRvbyBtYW55IGxpbmtzY3Jvc3MtZGV2aWNlIGxpbmsgb3IgcmVuYW1lZGVhZGxvY2tleGVjdXRhYmxlIGZpbGUgYnVzeXJlc291cmNlIGJ1c3lmaWxlIHRvbyBsYXJnZWZpbGVzeXN0ZW0gcXVvdGEgZXhjZWVkZWRzZWVrIG9uIHVuc2Vla2FibGUgZmlsZW5vIHN0b3JhZ2Ugc3BhY2V3cml0ZSB6ZXJvdGltZWQgb3V0aW52YWxpZCBkYXRhaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClyZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBzdG9yYWdlIG1lZGl1bWRpcmVjdG9yeSBub3QgZW1wdHlpcyBhIGRpcmVjdG9yeW5vdCBhIGRpcmVjdG9yeW9wZXJhdGlvbiB3b3VsZCBibG9ja2VudGl0eSBhbHJlYWR5IGV4aXN0c2Jyb2tlbiBwaXBlbmV0d29yayBkb3duYWRkcmVzcyBub3QgYXZhaWxhYmxlYWRkcmVzcyBpbiB1c2Vub3QgY29ubmVjdGVkY29ubmVjdGlvbiBhYm9ydGVkbmV0d29yayB1bnJlYWNoYWJsZWhvc3QgdW5yZWFjaGFibGVjb25uZWN0aW9uIHJlc2V0Y29ubmVjdGlvbiByZWZ1c2VkcGVybWlzc2lvbiBkZW5pZWRlbnRpdHkgbm90IGZvdW5kRXJyb3JraW5kIChvcyBlcnJvciApAABEUQEAAAAAAH5VAQALAAAAiVUBAAEAAABsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMApFUBABsAAADfAgAAFAAAAGZhaWxlZCBwcmludGluZyB0byA6IAAAANBVAQATAAAA41UBAAIAAACkVQEAGwAAAPoDAAAJAAAAc3Rkb3V0Zm9ybWF0dGVyIGVycm9yAAAADlYBAA8AAAAoAAAAPAAAAAwAAAAEAAAAPQAAAD4AAAA/AAAAbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZS5yc0RWAQAcAAAATgEAAA4AAABEVgEAHAAAAE4BAAAoAAAAYXNzZXJ0aW9uIGZhaWxlZDogc3RhdGVfYW5kX3F1ZXVlLmFkZHIoKSAmIFNUQVRFX01BU0sgPT0gUlVOTklORwIAAABEVgEAHAAAAP8BAAAJAAAARFYBABwAAAAMAgAAHgAAAFBvaXNvbkVycm9ybG9jayBjb3VudCBvdmVyZmxvdyBpbiByZWVudHJhbnQgbXV0ZXhsaWJyYXJ5L3N0ZC9zcmMvc3lzX2NvbW1vbi9yZW11dGV4LnJzAAAVVwEAJQAAAI8AAAAiAAAAbGlicmFyeS9zdGQvc3JjL3N5c19jb21tb24vdGhyZWFkX2luZm8ucnMAAABMVwEAKQAAABYAAAAzAAAAY2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZIhXAQA0AAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc8RXAQAcAAAAfQAAAAkAAADEVwEAHAAAAEcCAAAPAAAAQAAAAAwAAAAEAAAAQQAAABkAAAAIAAAABAAAAEIAAABDAAAAEAAAAAQAAABEAAAARQAAABkAAAAIAAAABAAAAEYAAABHAAAAZXJyb3JvcGVyYXRpb24gc3VjY2Vzc2Z1bGNvbmR2YXIgd2FpdCBub3Qgc3VwcG9ydGVkAGFYAQAaAAAAbGlicmFyeS9zdGQvc3JjL3N5cy93YXNtLy4uL3Vuc3VwcG9ydGVkL2xvY2tzL2NvbmR2YXIucnOEWAEAOAAAABUAAAAJAAAAAGNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AAAAzVgBACAAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzL3dhc20vLi4vdW5zdXBwb3J0ZWQvbG9ja3MvbXV0ZXgucnMAAPhYAQA2AAAAFQAAAAkAAABIAAAACAAAAAQAAABJAAAAbGlicmFyeS9zdGQvc3JjL3N5c19jb21tb24vdGhyZWFkX3Bhcmtlci9nZW5lcmljLnJzAFBZAQAzAAAAJwAAABUAAABpbmNvbnNpc3RlbnQgcGFyayBzdGF0ZQCUWQEAFwAAAFBZAQAzAAAANQAAABcAAABwYXJrIHN0YXRlIGNoYW5nZWQgdW5leHBlY3RlZGx5AMRZAQAfAAAAUFkBADMAAAAyAAAAEQAAAGluY29uc2lzdGVudCBzdGF0ZSBpbiB1bnBhcmv8WQEAHAAAAFBZAQAzAAAAbAAAABIAAABQWQEAMwAAAHoAAAAOAAAADgAAABAAAAAWAAAAFQAAAAsAAAAWAAAADQAAAAsAAAATAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEQAAABIAAAAQAAAAEAAAABMAAAASAAAADQAAAA4AAAAVAAAADAAAAAsAAAAVAAAAFQAAAA8AAAAOAAAAEwAAACYAAAA4AAAAGQAAABcAAAAMAAAACQAAAAoAAAAQAAAAFwAAABkAAAAOAAAADQAAABQAAAAIAAAAGwAAAA9TAQD/UgEA6VIBANRSAQDJUgEAs1IBAKZSAQCbUgEAiFIBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAGVVAQBlVQEAZVUBAFRVAQBCVQEAMlUBACJVAQAPVQEA/VQBAPBUAQDiVAEAzVQBAMFUAQC2VAEAoVQBAIxUAQB9VAEAb1QBAFxUAQA2VAEA/lMBAOVTAQDOUwEAwlMBALlTAQCvUwEAn1MBAIhTAQBvUwEAYVMBAFRTAQBAUwEAOFMBAB1TAQAAQcC4BQuMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8JcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5BAVydXN0Yx0xLjY1LjAgKDg5N2UzNzU1MyAyMDIyLTExLTAyKQZ3YWxydXMGMC4xMi4wDHdhc20tYmluZGdlbgYwLjIuODMJd2FzbS1zbmlwBTAuNC4w" + "AGFzbQEAAAABgwETYAJ/fwF/YAN/f38Bf2ACf38AYAN/f38AYAF/AGAGf39/f39/AGAEf39/fwBgB39/f39/f38AYAF/AX9gAX8BfmAAAX9gBX9/f39/AGAFf39/f38Bf2AAAGAGf39/f39/AX9gA39/fgBgBH9/f38Bf2AHf39/f39/fwF/YAN+f38BfwKaAw4Ed3JhcA9fX3dyYXBfbG9hZF9lbnYABAR3cmFwEl9fd3JhcF9pbnZva2VfYXJncwACBHdyYXAZX193cmFwX2dldEltcGxlbWVudGF0aW9ucwAABHdyYXAkX193cmFwX2dldEltcGxlbWVudGF0aW9uc19yZXN1bHRfbGVuAAoEd3JhcCBfX3dyYXBfZ2V0SW1wbGVtZW50YXRpb25zX3Jlc3VsdAAEBHdyYXAMX193cmFwX2Fib3J0AAUEd3JhcBNfX3dyYXBfaW52b2tlX2Vycm9yAAIEd3JhcBRfX3dyYXBfaW52b2tlX3Jlc3VsdAACBHdyYXAQX193cmFwX3N1Ymludm9rZQAOBHdyYXAbX193cmFwX3N1Ymludm9rZV9yZXN1bHRfbGVuAAoEd3JhcBdfX3dyYXBfc3ViaW52b2tlX3Jlc3VsdAAEBHdyYXAaX193cmFwX3N1Ymludm9rZV9lcnJvcl9sZW4ACgR3cmFwFl9fd3JhcF9zdWJpbnZva2VfZXJyb3IABANlbnYGbWVtb3J5AgACA/kB9wEGCAMLBgIBAgIBAgYBDwICBgUQAwQGAAMGAAYOAgIBAQIABwcHBwcHBQUFBQUFAgIDAwMHBwcIAAcHBwACAwwRAAMBBQASAwsAAAIEAAYDAwIGAgAABgAFBQUFBQUDCAcCAwECDAICAgIGBgMGBgEDAgUEBQUFBQUCBQUFBQUGBQUGBgIFAgICAQELAgYDAwMCAAADAwMAAwMAAAIAAwAAAAAAAAQAAwQBAAIEAwMDBAICAwAECAgCDAQICAQCDQIIAgQABAQECAAAAAAEAAYGAAAEBAQAAQAACwAAAgIBAAADAwMDAQAAAAMDAQEKAgkJCQQEDQQKBAUBcAFKSgYSA38BQYCABAt/AUEAC38BQQALB5wBCAxfd3JhcF9pbnZva2UATwVhbGxvYwDUAQdkZWFsbG9jAOkBFWFzeW5jaWZ5X3N0YXJ0X3Vud2luZACAAhRh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GGohAAsgBUEDRkEBIwEbBEAgASACIAAQK0EDIwFBAUYNFBohAAsjAUUNEgsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBBEZBASMBGwRAIAEgAiAAECtBBCMBQQFGDRMaIQALIwFFDRELIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQVGQQEjARsEQCABIAIgABArQQUjAUEBRg0SGiEACyMBRQ0QCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEGRkEBIwEbBEAgASACIAAQK0EGIwFBAUYNERohAAsjAUUNDwsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBB0ZBASMBGwRAIAEgAiAAECtBByMBQQFGDRAaIQALIwFFDQ4LIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQhGQQEjARsEQCABIAIgABArQQgjAUEBRg0PGiEACyMBRQ0NCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEJRkEBIwEbBEAgASACIAAQK0EJIwFBAUYNDhohAAsjAUUNDAsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBCkZBASMBGwRAIAEgAiAAECtBCiMBQQFGDQ0aIQALIwFFDQsLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQtGQQEjARsEQCABIAIgABArQQsjAUEBRg0MGiEACyMBRQ0KCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEMRkEBIwEbBEAgASACIAAQK0EMIwFBAUYNCxohAAsjAUUNCQsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBDUZBASMBGwRAIAEgAiAAECtBDSMBQQFGDQoaIQALIwFFDQgLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQ5GQQEjARsEQCABIAIgABArQQ4jAUEBRg0JGiEACyMBRQ0HCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEPRkEBIwEbBEAgASACIAAQK0EPIwFBAUYNCBohAAsjAUUNBgsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBEEZBASMBGwRAIAEgAiAAECtBECMBQQFGDQcaIQALIwFFDQULIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCAjcCHCADQYSUBTYCGCADIANBCGo2AiggA0EYaiEACyAFQRFGQQEjARsEQCABIAIgABArQREjAUEBRg0GGiEACyMBRQ0ECyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUESRkEBIwEbBEAgASACIAAQK0ESIwFBAUYNBRohAAsjAUUNAwsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0ICNwIcIANB4JMFNgIYIAMgA0EIajYCKCADQRhqIQALIAVB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AAsjAUUNDQsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBBEZBASMBGwRAIAEgAiAAECtBBCMBQQFGDQ4aIQALIwFFDQwLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQVGQQEjARsEQCABIAIgABArQQUjAUEBRg0NGiEACyMBRQ0LCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEGRkEBIwEbBEAgASACIAAQK0EGIwFBAUYNDBohAAsjAUUNCgsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBB0ZBASMBGwRAIAEgAiAAECtBByMBQQFGDQsaIQALIwFFDQkLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQhGQQEjARsEQCABIAIgABArQQgjAUEBRg0KGiEACyMBRQ0ICyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEJRkEBIwEbBEAgASACIAAQK0EJIwFBAUYNCRohAAsjAUUNBwsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBCkZBASMBGwRAIAEgAiAAECtBCiMBQQFGDQgaIQALIwFFDQYLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQtGQQEjARsEQCABIAIgABArQQsjAUEBRg0HGiEACyMBRQ0FCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEMRkEBIwEbBEAgASACIAAQK0EMIwFBAUYNBhohAAsjAUUNBAsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBDUZBASMBGwRAIAEgAiAAECtBDSMBQQFGDQUaIQALIwFFDQMLIwFFBEAgA0EINgIMIAMgAEEEajYCFCADIANBFGo2AgggA0EBNgIsIANCATcCHCADQaikBTYCGCADIANBCGo2AiggA0EYaiEACyAFQQ5GQQEjARsEQCABIAIgABArQQ4jAUEBRg0EGiEACyMBRQ0CCyMBRQRAIANBCDYCDCADIABBBGo2AhQgAyADQRRqNgIIIANBATYCLCADQgE3AhwgA0GopAU2AhggAyADQQhqNgIoIANBGGohAAsgBUEPRkEBIwEbBEAgASACIAAQK0EPIwFBAUYNAxohAAsjAUUNAQsjAUUEQCADQQg2AgwgAyAAQQRqNgIUIAMgA0EUajYCCCADQQE2AiwgA0IBNwIcIANBqKQFNgIYIAMgA0EIajYCKCADQRhqIQALIAVBEEZBASMBGwRAIAEgAiAAECtBECMBQQFGDQIaIQALCyMBRQRAIANBMGokACAADwsACyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAQQALthMBD38jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIBKAIAIQAgASkCCCECIAEoAhAhAyABKAIUIQQgASgCGCEFIAEoAhwhBiABKAIgIQcgASgCJCEIIAEoAighCyABKAIsIQwgASgCMCENIAEoAjQhDiABKAI4IRAgASgCPCERIAEoAkAhDyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQkLIwFFBEAjAEHwAGsiAyQAIANBADYCECADQgE3AwggAyABNgIgIAMgAjcDGCADQUBrIRAgA0E4aiERQQAhDEEAIQtBACEHIANBKGoiBEEIaiEPCwJAA0AjAUUEQCACQv////8PIAJC/////w9UIgQbpyENCwJAAkACQAJAAkACQAJAAkACQAJAAkACfgNAIAQgByAMRyMBGyEEAkAjAUUEQCAEDQEgA0EIaiEECyAJRUEBIwEbBEAgBCAMQSAQugFBACMBQQFGDREaCyMBRQRAIAMoAhAhByADKAIMIQwLCyMBRQRAIAMgCzYCXCADQQA2AlggAyAMIAdrIgY2AlQgAyAHIAMoAghqIgQ2AlAgAlANDSAGrSACWiEFCwJAAn8CQAJAAkACQCMBRQRAIAUNASADQShqIQQgA0HQAGohBQsgCUEBRkEBIwEbBEAgBCABIAUQakEBIwFBAUYNFhoLIwFFBEAgAy0AKCIGQQRHIgQNAyADIAIgAygCWCIGrX0iAjcDGAwCCwsjAUUEQCAGIAtJIgUNCCAGIA1JIgUNCSADQQA2AjAgAyAENgIoIAMgDTYCLCADIA0gCyALIA1LGzYCNCADQeAAaiEEIANBKGohBQsgCUECRkEBIwEbBEAgBCABIAUQakECIwFBAUYNFRoLIwFFBEAgAy0AYCIGQQRHIgQNAyADKAI0IgQgAygCMCIGSSIFDQogAygCLCIIIARJIgUNCyADIAY2AlggAyACIAatfSICNwMYIAsgBiAGIAtJGyIIIARLIQUgAyAIIAQgBRsiBDYCXAsLIwFFBEAgBg0EDBELCyMBRQRAIAMoAiwhCCADLwEqIQ4gAy0AKQwCCwsjAQR/IAQFIAMoAmQhCCADLwFiIQ4gAy0AYQsLIQQjAUUEQCAEIQUCQAJAAkACQCAGQQFrDgMBAAACCyAILQAIIQULIAVB/wFxQSNGIgUNAQsgBK1C/wGDIA6tQv//A4NCCIaEDAQLIAMgCDYCLCADIAYgDkEQdCIFIARB/wFxQQh0cnI2AiggA0EoaiEECyAJQQNGQQEjARsEQCAEEMkBQQMjAUEBRg0RGgsjAUUNAQsLIwFFBEAgBiADKAJcIgRLIgUNBiADKAJUIgggBEkiBQ0HIAYgCEsiBQ0IIAMgBiAHaiIHNgIQIAcgDHIiBQ0LIBBCADcDACARQgA3AwAgD0IANwMAIANCADcDKCADQRhqIQUgA0EoaiEHIANB4ABqIQELIAlBBEZBASMBGwRAIAEgBSAHEG5BBCMBQQFGDQ8aCyMBRQRAIAMtAGAiB0EERiIBDQoLA0ACQCMBRQRAAn8CQAJAAkAgB0H/AXEiAUEBaw4DAAECBQsgAy0AYQwCCyADKAJkLQAIDAELIAMoAmQtAAgLIgdB/wFxQSNHIgENASADQeAAaiEBCyAJQQVGQQEjARsEQCABEMkBQQUjAUEBRg0RGgsjAUUEQCADQRhqIQUgA0EoaiEHIANB4ABqIQELIAlBBkZBASMBGwRAIAEgBSAHEG5BBiMBQQFGDREaCyMBRQRAIAMtAGAiB0EERiIBDQwMAgsLCyMBBH4gAgUgAykDYCICpyIGQf8BcUEERiIBDQwgAkIgiKchCCACQgiICwshAiMBRQRAIAMgBq1C/wGDIAJCCIZCgP7//w+DIAitQiCGhIQiAjcDYCADQQA2AlggA0IBNwNQIANBxABqQfyFBTYCACADQQM6AEggA0KAgICAgAQ3AyggA0EANgI4IANBADYCMCADIANB0ABqNgJAIANBKGohBCADQeAAaiEBCyAJQQdGQQEjARsEQCABIAQQSEEHIwFBAUYNDhohAQsjAUUEQCABDQggACADKQNQIgI3AgQgAEEMaiIBIANB2ABqKAIAIgQ2AgAgAEECNgIAIAZB/wFxQQNHIQALAkAjAUUEQCAADQEgCCgCBCgCACEBIAgoAgAhAAsgCUEIRkEBIwEbBEAgACABEQQAQQgjAUEBRg0PGgsjAUUEQCAIKAIEKAIERSIARQRAIAgoAgAiABAhCyAIECELCyMBRQRAIAMoAgxFDQ0gAygCCBAhDA0LCyAJQQlGQQEjARsEQCALIAZBwJoFEO8BQQkjAUEBRg0NGgsjAUUEQAALCyAJQQpGQQEjARsEQCANIAZBjJsFEO8BQQojAUEBRg0MGgsjAUUEQAALCyAJQQtGQQEjARsEQCAGIARBwJoFEPABQQsjAUEBRg0LGgsjAUUEQAALCyAJQQxGQQEjARsEQCAEIAhBwJoFEO8BQQwjAUEBRg0KGgsjAUUEQAALCyAJQQ1GQQEjARsEQCAGIARBwJoFEPABQQ0jAUEBRg0JGgsjAUUEQAALCyAJQQ5GQQEjARsEQCAEIAhBwJoFEO8BQQ4jAUEBRg0IGgsjAUUEQAALCyAJQQ9GQQEjARsEQCAGIAhBsJkFEO8BQQ8jAUEBRg0HGgsjAUUEQAALCyAAIANB6ABqIwEbIQAgCUEQRkEBIwEbBEBBiJcFQTcgAEGUhgVBnJgFEJcBQRAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAMoAmQiB0UNAiAHQSFPIQELAkAjAUUEQCABDQEgA0EoaiEFIANBCGohAQsgCUERRkEBIwEbBEAgASAFIAcQvwFBESMBQQFGDQYaCyMBRQRAIAMoAgwhDCADKAIQIQcgAygCICEBIAMpAxghAgwCCwsgCUESRkEBIwEbBEAgB0EgQcCZBRDvAUESIwFBAUYNBRoLIwFFBEAACwsjAUUEQCAEIAZrIQsMAgsLCyMBRQRAIAAgAykDCDcCBCAAQRY2AgAgAEEMaiADQRBqKAIANgIACwsjAUUEQCADQfAAaiQACw8LIQojAigCACAKNgIAIwIjAigCAEEEajYCACMCKAIAIgogADYCACAKIAE2AgQgCiACNwIIIAogAzYCECAKIAQ2AhQgCiAFNgIYIAogBjYCHCAKIAc2AiAgCiAINgIkIAogCzYCKCAKIAw2AiwgCiANNgIwIAogDjYCNCAKIBA2AjggCiARNgI8IAogDzYCQCMCIwIoAgBBxABqNgIAC88oAhF/AX4jAUECRgRAIwIjAigCAEEgazYCACMCKAIAIgMoAgAhACADKAIIIQIgAygCDCEFIAMoAhAhCyADKAIUIQogAygCGCEPIAMoAhwhECADKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQwLIwFFBEAjAEGAAWsiAiQAQRsQDiIFRSELCwJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgCw0BIAVBF2pB05wFKAAANgAAIAVBEGpBzJwFKQAANwAAIAVBCGpBxJwFKQAANwAAIAVBvJwFKQAANwAAQTUQDiIDRSIKDQEgA0H58wRBNRD4ASELIAUQISACQegAaiEFCyAMRUEBIwEbBEAgBSALQTUQswFBACMBQQFGDQsaCyAKIAJB9ABqIwEbIQogDEEBRkEBIwEbBEAgCkEEQQAQXEEBIwFBAUYNCxoLIwFFBEAgAkHIAGogAkHwAGopAwA3AwAgAkHQAGogAkH4AGoiDykDADcDACACQQA2AjwgAkIENwI0IAJCtYCAgNAGNwIsIAIgCzYCKCACQQA2AiAgAkIBNwMYIAJCADcDECACIAIpA2g3A0AgAkEQaiELIAJB6ABqIQULIAxBAkZBASMBGwRAIAUgC0EEED5BAiMBQQFGDQsaCyMBRQRAIAIoAmgiBUERRyELCwJAIwFFBEAgCw0BIAJBQGshCwsgDEEDRkEBIwEbBEAgC0Gu9ARBA0GL/gRBBkGngQVBEBBsQQMjAUEBRg0MGgsjAUUEQCACQRBqIQogAkHoAGohBQsgDEEERkEBIwEbBEAgBSAKQa70BEEDECJBBCMBQQFGDQwaCyMBRQRAIAIoAmgiBUERRw0DIAJBEGohCiABKAIAIQ8gASgCCCEQIAJB6ABqIQULIAxBBUZBASMBGwRAIAUgCiAPIBAQIkEFIwFBAUYNDBoLIwFFBEAgAigCaCIFQRFHIgoNBCACQegAaiEFCyAMQQZGQQEjARsEQCAFIAsQPEEGIwFBAUYNDBoLIwFFBEAgAigCbEUiBUUEQCACKAJoIgUQIQsLIAxBB0ZBASMBGwRAIAtBsfQEQQxBi/4EQQZBp4EFQRAQbEEHIwFBAUYNDBoLIwFFBEAgAkEQaiEKIAJB6ABqIQULIAxBCEZBASMBGwRAIAUgCkGx9ARBDBAiQQgjAUEBRg0MGgsjAUUEQCACKAJoIgVBEUcNBSACQRBqIQogASgCDCEPIAFBFGooAgAhECACQegAaiEFCyAMQQlGQQEjARsEQCAFIAogDyAQECJBCSMBQQFGDQwaCyMBRQRAIAIoAmgiBUERRyIKDQYgAkHoAGohBQsgDEEKRkEBIwEbBEAgBSALEDxBCiMBQQFGDQwaCyMBRQRAIAIoAmxFIgVFBEAgAigCaCIFECELCyAMQQtGQQEjARsEQCALQcX2BEEHQfD8BEELQaeBBUEQEGxBCyMBQQFGDQwaCyMBRQRAIAJBEGohCiACQegAaiEFCyAMQQxGQQEjARsEQCAFIApBxfYEQQcQIkEMIwFBAUYNDBoLIwFFBEAgAigCaCIFQRFHDQcgAkEQaiEKIAFBGGooAgAhDyABQRxqKAIAIRAgAkHoAGohBQsgDEENRkEBIwEbBEAgBSENIAohAyAPIQYgECEJIwFBAkYEQCMCIwIoAgBBHGs2AgAjAigCACIDKAIAIQ0gAygCCCEGIAMoAgwhCSADKAIQIQQgAykCFCETIAMoAgQhAwsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwBBQGoiBCQACwJAIwFFQQAgBhtFBEAgCEVBASMBGwRAIA0gAxB9QQAjAUEBRg0DGgsjAUUNAQsgBiAJQYABSSMBGyEGAn8CQAJAAkACQAJAAkACQAJAAkAjAUUEQCAGDQEgCUGAAkkiBg0CIAlBgIAETyIGDQMgBEEoaiEGCyAIQQFGQQEjARsEQCAGIANBERClAUEBIwFBAUYNDBoLIwFFBEAgBC0AKEEERwRAIAQpAygiE0L/AYNCBFIiBg0GCyAEIAlBCHQgCUGA/gNxQQh2cjsBCCAEQQhqIQkgBEEoaiEGCyAIQQJGQQEjARsEQCAGIAMgCUECEF5BAiMBQQFGDQwaCyMBRQRAIAQtAChBBEYNCSAEKQMoIhNC/wGDQgRRDQkgBCATNwMoIARBKGohBiAEQQhqIQMLIAhBA0ZBASMBGwRAIAMgBhCUAUEDIwFBAUYNDBoLIwFFDQYLIAYgBEEoaiMBGyEGIAhBBEZBASMBGwRAIAYgAyAJEHxBBCMBQQFGDQsaCyMBRQRAQREgBCgCKCIDQRFGDQkaIARBFGoiBiAEQTRqKAIAIgk2AgAgBCAEKQIsNwIMIAQgAzYCCAwHCwsgBiAEQShqIwEbIQYgCEEFRkEBIwEbBEAgBiADQRAQpQFBBSMBQQFGDQoaCyMBRQRAIAQtAChBBEcEQCAEKQMoIhNC/wGDQgRSIgYNAwsgBCAJOgAIIARBCGohCSAEQShqIQYLIAhBBkZBASMBGwRAIAYgAyAJQQEQXkEGIwFBAUYNChoLIwFFBEAgBC0AKEEERg0HIAQpAygiE0L/AYNCBFENByAEIBM3AyggBEEoaiEGIARBCGohAwsgCEEHRkEBIwEbBEAgAyAGEJQBQQcjAUEBRg0KGgsjAUUNBAsgBiAEQShqIwEbIQYgCEEIRkEBIwEbBEAgBiADQRIQpQFBCCMBQQFGDQkaCyMBRQRAIAQtAChBBEcEQCAEKQMoIhNC/wGDQgRSIgYNBAsgBCAJQQh0QYCA/AdxIAlBGHRyIAlBCHZBgP4DcSAJQRh2cnI2AgggBEEIaiEJIARBKGohBgsgCEEJRkEBIwEbBEAgBiADIAlBBBBeQQkjAUEBRg0JGgsjAUUEQCAELQAoQQRGDQYgBCkDKCITQv8Bg0IEUQ0GIAQgEzcDKCAEQShqIQYgBEEIaiEDCyAIQQpGQQEjARsEQCADIAYQlAFBCiMBQQFGDQkaCyMBRQ0DCyMBRQRAIAQgEzcDKCAEQShqIQYgBEEIaiEDCyAIQQtGQQEjARsEQCADIAYQlAFBCyMBQQFGDQgaCyMBRQ0CCyMBRQRAIAQgEzcDKCAEQShqIQYgBEEIaiEDCyAIQQxGQQEjARsEQCADIAYQlAFBDCMBQQFGDQcaCyMBRQ0BCyMBRQRAIAQgEzcDKCAEQShqIQYgBEEIaiEDCyAIQQ1GQQEjARsEQCADIAYQlAFBDSMBQQFGDQYaCwsjAUUEQEERIgkgBCgCCEERRiIDDQMaCwsjAUUEQCAEQTBqIARBEGopAwA3AwAgBCAEKQMINwMoIARBADYCICAEQgE3AxggBEEYaiEGIARBKGohAwsgCEEORkEBIwEbBEAgAyAGQfCWBRAZQQ4jAUEBRg0EGiEDCyMBRQRAIANFBEAgDSAEKQMYNwIEIA1BDGogBEEgaigCADYCACAEQShqEN8BQQoMAwsgBEE4aiENCyAIQQ9GQQEjARsEQEGIlwVBNyANQcCXBUGcmAUQlwFBDyMBQQFGDQQaCyMBRQRAAAsLIwEEfyAJBSAEQRE2AghBEQsLIQMjAUUEQCANIAM2AgALCyMBRQRAIARBQGskAAsMAQshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByANNgIAIAcgAzYCBCAHIAY2AgggByAJNgIMIAcgBDYCECAHIBM3AhQjAiMCKAIAQRxqNgIAC0ENIwFBAUYNDBoLIwFFBEAgAigCaCIFQRFHIgoNCCACQegAaiEFCyAMQQ5GQQEjARsEQCAFIAsQPEEOIwFBAUYNDBoLIwFFBEAgAigCbEUiBUUEQCACKAJoIgUQIQsLIAxBD0ZBASMBGwRAIAtBvfQEQQpBx/QEQRhBp4EFQRAQbEEPIwFBAUYNDBoLIwFFBEAgAkEQaiEKIAJB6ABqIQULIAxBEEZBASMBGwRAIAUgCkG99ARBChAiQRAjAUEBRg0MGgsjAUUEQCACKAJoIgVBEUciCg0JIAEoAiBBAkchBQsCQAJAIwFFBEAgBQ0BIAJBEGohBSACQegAaiEBCyAMQRFGQQEjARsEQCABIAUQfUERIwFBAUYNDhoLIwFFBEAgAigCaCIFQRFGIgENAiACQeAAaiACQfQAaigCADYCACACIAIpAmw3A1gMDAsLIwFFBEAgAkHoAGohBSACQRBqIQogAUEgaiEBCyAMQRJGQQEjARsEQCAFIQkgASEDIAohBkEAIQdBACEEQQAhCCMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiAygCACEJIAMoAgghBiADKAIMIQcgAygCECEEIAMoAhQhDiADKAIYIREgAygCHCESIAMoAgQhAwsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwBBQGoiByQAIAdBKGohBAsgCEVBASMBGwRAIAQgBkECED5BACMBQQFGDQEaCyMBRQRAIAcoAigiBEERRyEOCwJAAn8CQAJAAkACQAJAAkAjAUUEQCAODQEgBkEwaiEOCyAIQQFGQQEjARsEQCAOQZf9BEEGQZ39BEELQaeBBUEQEGxBASMBQQFGDQkaCyAEIAdBKGojARshBCAIQQJGQQEjARsEQCAEIAZBl/0EQQYQIkECIwFBAUYNCRoLIwFFBEAgBygCKCIEQRFHDQIgAygCACERIANBBGooAgAhEiAHQShqIQQLIAhBA0ZBASMBGwRAIAQgBiARIBIQ3AFBAyMBQQFGDQkaCyMBRQRAIAcoAigiBEERRyIRDQMgB0EoaiEECyAIQQRGQQEjARsEQCAEIA4QPEEEIwFBAUYNCRoLIwFFBEAgBygCLEUiBEUEQCAHKAIoIgQQIQsLIAhBBUZBASMBGwRAIA5BqP0EQQZBnf0EQQtBp4EFQRAQbEEFIwFBAUYNCRoLIAQgB0EoaiMBGyEEIAhBBkZBASMBGwRAIAQgBkGo/QRBBhAiQQYjAUEBRg0JGgsjAUUEQCAHKAIoIgRBEUcNBCAHQShqIQQgA0EIaigCACERIANBDGooAgAhAwsgCEEHRkEBIwEbBEAgBCAGIBEgAxDcAUEHIwFBAUYNCRoLIwFFBEAgBygCKCIEQRFHIgMNBSAHQShqIQMLIAhBCEZBASMBGwRAIAMgDhA8QQgjAUEBRg0JGgsjAUUEQCAHKAIsBEAgBygCKBAhC0ERDAcLCyMBRQRAIAdBEGoiAyAHQTRqKAIAIgY2AgAgByAHKQIsNwMIDAULCyMBRQRAIAdBEGoiAyAHQTRqKAIAIgY2AgAgByAHKQIsNwMIDAQLCyMBRQRAIAdBEGoiAyAHQTRqKAIAIgY2AgAgByAHKQIsNwMIDAMLCyMBRQRAIAdBEGoiAyAHQTRqKAIAIgY2AgAgByAHKQIsNwMIDAILCyMBRQRAIAdBEGoiAyAHQTRqKAIAIgY2AgAgByAHKQIsNwMICwsjAUUEQCAHQTRqIAdBEGooAgA2AgAgByAENgIoIAcgBykDCDcCLCAHQQA2AiAgB0IBNwMYIAdBGGohBiAHQShqIQMLIAhBCUZBASMBGwRAIAMgBkG4hAUQGUEJIwFBAUYNAxohAwsjAQR/IAYFIAMNAiAJIAcpAxg3AgQgCUEMaiAHQSBqKAIANgIAIAdBKGoQ3wFBDwsLIQYjAUUEQCAJIAY2AgAgB0FAayQADAMLCyAJIAdBOGojARshCSAIQQpGQQEjARsEQEGIlwVBNyAJQdCEBUGcmAUQlwFBCiMBQQFGDQEaCyMBRQRAAAsMAQshDSMCKAIAIA02AgAjAiMCKAIAQQRqNgIAIwIoAgAiDSAJNgIAIA0gAzYCBCANIAY2AgggDSAHNgIMIA0gBDYCECANIA42AhQgDSARNgIYIA0gEjYCHCMCIwIoAgBBIGo2AgALQRIjAUEBRg0NGgsjAUUEQCACKAJoIgVBEUYiAQ0BIAJB4ABqIAJB9ABqKAIANgIAIAIgAikCbDcDWAwLCwsgASACQegAaiMBGyEBIAxBE0ZBASMBGwRAIAEgCxA8QRMjAUEBRg0MGgsjAUUEQCACKAJsBEAgAigCaBAhCyACKAIYIQsgAigCICEFIAJBCGohAQsgDEEURkEBIwEbBEAgASAFEMoBQRQjAUEBRg0MGgsjAUUEQCACKAIMIQEgAigCCCALIAUQ+AEhAyAAQQxqIAU2AgAgAEEIaiABNgIAIAAgAzYCBCAAQRE2AgAgAkEQahDSAQwLCwsjAUUEQCACQeAAaiAKKAIANgIAIAIgAikCbDcDWAwJCwsjAUUEQAALCyMBRQRAIAJB4ABqIAJB9ABqKAIANgIAIAIgAikCbDcDWAwHCwsjAUUEQCACQeAAaiACQfQAaigCADYCACACIAIpAmw3A1gMBgsLIwFFBEAgAkHgAGogAkH0AGooAgA2AgAgAiACKQJsNwNYDAULCyMBRQRAIAJB4ABqIAJB9ABqKAIANgIAIAIgAikCbDcDWAwECwsjAUUEQCACQeAAaiACQfQAaigCADYCACACIAIpAmw3A1gMAwsLIwFFBEAgAkHgAGogAkH0AGooAgA2AgAgAiACKQJsNwNYDAILCyMBRQRAIAJB4ABqIAJB9ABqKAIANgIAIAIgAikCbDcDWAsLIwFFBEAgACACKQNYNwIEIABBDGogAkHgAGooAgA2AgAgACAFNgIAIAJBEGoQ0gELCyMBRQRAIAJBgAFqJAALDwshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAFNgIMIAMgCzYCECADIAo2AhQgAyAPNgIYIAMgEDYCHCMCIwIoAgBBIGo2AgAL7g4CCH8DfiMBQQJGBEAjAiMCKAIAQShrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCECEEIAEpAhQhCiABKAIcIQcgASgCICEIIAEoAiQhCSABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEHQAGsiAiQAIAJBOGohAwsgBkVBASMBGwRAIAMgARCQAUEAIwFBAUYNARoLIwFFBEAgAigCOCIDQRZHIQQLAkACQAJAAkACQAJAIwFFBEAgBA0BIAItADwiAw0DIAJBOGohAwsgBkEBRkEBIwEbBEAgAyABEG1BASMBQQFGDQcaCyMBRQRAIAItADhBBEchAwsCQAJAAkACQAJAAkACQAJAAkAjAUUEQAJAAn8gA0UEQCACLwA5IgNBCHYMAQsgAikDOCIKQhCIIQsgCkIIiCEMIApC/wGDQgRSDQEgDKchAyALpwshBCADQf8BcSIDQQJrIgcOCQMCBAICAgUGBwILIAIgCkL/gYB4gyALQgiGQoD+A4MgDEL/AYOEQgiGhCIKNwM4IAJBOGohAwsgBkECRkEBIwEbBEAgAiADEJMBQQIjAUEBRg0QGgsjAUUNCAsjAUUEQCACQShqIgcgBEEIdCADchAXIAJBCTYCJCACIAJBKGo2AiAgAkEBNgJMIAJCATcCPCACQeCKBTYCOCACIAJBIGo2AkggAkE4aiEEIAJBEGohAwsgBkEDRkEBIwEbBEAgAyAEEDtBAyMBQQFGDQ8aCyMBRQRAIAIoAiwEQCACKAIoECELIAIoAhQhBCABQTBqIQggAigCECEHIAIoAhghCSACQQRyIQMLIAZBBEZBASMBGwRAIAMgCCAHIAkQJ0EEIwFBAUYNDxoLIwFFBEBBEiEDIAJBEjYCACAERQ0KIAcQIQwICwsjAUUEQCACQRY2AgAgAiAEQf8BcSIDNgIEDAsLCyMBRQRAIAJCFjcDAEEAIQMMCgsLIwFFBEAgAkEAOgAoIAJBKGohBCACQThqIQMLIAZBBUZBASMBGwRAIAMgASAEQQEQd0EFIwFBAUYNDBoLIwFFBEAgAi0AOEEERwRAIAIpAzgiCkL/AYNCBFIiAw0FCyACIAItACgiAzYCBCACQRY2AgAMCQsLIwFFBEAgAkEAOwEoIAJBKGohBCACQThqIQMLIAZBBkZBASMBGwRAIAMgASAEQQIQd0EGIwFBAUYNCxoLIwFFBEAgAi0AOEEERwRAIAIpAzgiCkL/AYNCBFIiAw0DCyACQRY2AgAgAi8BKCIFQQh0IQQgAiAEIAVBCHZyQf//A3EiAzYCBAwICwsjAUUEQCACQQA2AiggAkEoaiEEIAJBOGohAwsgBkEHRkEBIwEbBEAgAyABIARBBBB3QQcjAUEBRg0KGgsjAUUEQAJAIAItADhBBEcEQCACKQM4IgpC/wGDQgRSDQELIAJBFjYCACACKAIoIgVBGHQgBUEIdEGAgPwHcXIhBCACIAQgBUEIdkGA/gNxIAVBGHZyciIDNgIEDAgLIAIgCjcDOCACQThqIQMLIAZBCEZBASMBGwRAIAIgAxCTAUEIIwFBAUYNChoLIwFFDQILIwFFBEAgAiAKNwM4IAJBOGohAwsgBkEJRkEBIwEbBEAgAiADEJMBQQkjAUEBRg0JGgsjAUUNAQsjAUUEQCACIAo3AzggAkE4aiEDCyAGQQpGQQEjARsEQCACIAMQkwFBCiMBQQFGDQgaCwsjAUUEQCACKAIAIgNBFkcNAiACKAIEIQMMBAsLIwFFBEAgAkEMaiACQcQAaigAADYAACACIAIpAD0iCjcABSACIAItADwiAToABCACIAM2AgALCyMBRQRAIAIoAgQhASAAIAIpAwg3AgggACABNgIEIAAgAzYCAAwDCwsjAUUEQCACQhY3AwBBACEDCwsgCiADrSMBGyEKIAZBC0ZBASMBGwRAIAIgASAKEBpBCyMBQQFGDQMaCyMBRQRAIAIoAgBBFkchA0EWIQELAkAjAUUEQCADRQRAIAAgAikCBDcCBCAAQQxqIAJBDGooAgA2AgAMAgsgAkFAayACQQhqKQMANwMAIAIgAikDADcDOCACQQA2AjAgAkIBNwMoIAJBKGohAyACQThqIQELIAZBDEZBASMBGwRAIAEgA0H8hQUQFkEMIwFBAUYNBBohAQsjAUUEQCABDQMgACACKQMoNwIEIABBDGogAkEwaigCADYCACACQThqEN8BQQIhAQsLIwFFBEAgACABNgIACwsjAUUEQCACQdAAaiQADwsLIAAgAkEQaiMBGyEAIAZBDUZBASMBGwRAQYiXBUE3IABBlIYFQZyYBRCXAUENIwFBAUYNARoLIwFFBEAACw8LIQUjAigCACAFNgIAIwIjAigCAEEEajYCACMCKAIAIgUgADYCACAFIAE2AgQgBSACNgIIIAUgAzYCDCAFIAQ2AhAgBSAKNwIUIAUgBzYCHCAFIAg2AiAgBSAJNgIkIwIjAigCAEEoajYCAAulCgEIfyMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCECEEIAEoAhQhBSABKAIYIQggASgCHCEJIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCgsjAUUEQCMAQRBrIggkACABKAIIIQULAkACQAJAAkAjAUUEQCAFRQRAIAFBfzYCCCADQQAgAyACQQNqQXxxIAJrIgRrQQdxIAMgBEkbIgZrIQUgAyAGSQ0CIAQgAyADIARLGyELIAFBDGohCQJAIAZFDQACfyACIANqIgQgAiAFaiIHayIGQQFrIARBAWsiBC0AAEEKRg0AGiAEIAdGDQEgBkECayAEQQFrIgQtAABBCkYNABogBCAHRg0BIAZBA2sgBEEBayIELQAAQQpGDQAaIAQgB0YNASAGQQRrIARBAWsiBC0AAEEKRg0AGiAEIAdGDQEgBkEFayAEQQFrIgQtAABBCkYNABogBCAHRg0BIAZBBmsgBEEBayIELQAAQQpGDQAaIAQgB0YNASAGQQdrIARBAWsiBC0AAEEKRg0AGiAEIAdGDQEgBkEIawsgBWohBAwFCwNAAkAgCyAFIgRPDQAgAiAEaiIHQQhrKAIAIgZBf3MgBkGKlKjQAHNBgYKECGtxQYCBgoR4cQ0AIARBCGshBSAHQQRrKAIAIgdBf3MgB0GKlKjQAHNBgYKECGtxQYCBgoR4cUUNAQsLIAMgBEkiBQ0DA0AgBARAIARBAWsiBCACai0AAEEKRiIFRQ0BDAYLCwJAIAFBFGooAgAiBEUEQEEAIQQMAQsgBCABKAIMakEBay0AAEEKRw0AQQAhBCABQRRqQQA2AgAgAUEYakEAOgAACyADIAFBEGooAgAgBGtPBEAgACAJIAIgAxCZAQwGCyAEIAEoAgxqIAIgAxD4ARogAEEEOgAAIAFBFGogAyAEajYCAAwFCyAIQQhqIQALIApFQQEjARsEQEGsogVBECAAQbyiBUGoqwUQlwFBACMBQQFGDQUaCyMBRQRAAAsLIApBAUZBASMBGwRAIAUgA0HQiQQQ7gFBASMBQQFGDQQaCyMBRQRAAAsLIApBAkZBASMBGwRAIAQgA0HgiQQQ7wFBAiMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgBEEBaiIEIANLIQULAkAjAUUEQCAFRQRAAkAgAUEUaigCACIFRQ0AAkAgBCABQRBqKAIAIAVrSQRAIAEoAgwgBWogAiAEEPgBGiABQRRqIAQgBWoiBTYCAAwBCyAIIAkgAiAEEJkBIAgtAAAiBUEERw0EIAFBFGooAgAhBQsgBUUNACABQRRqQQA2AgAgAUEYakEAOgAACyACIARqIQIgAyAEayIDIAFBEGooAgBPBEAgACAJIAIgAxCZAQwECyABKAIMIAIgAxD4ARogAEEEOgAAIAFBFGogAzYCAAwDCwsgCkEDRkEBIwEbBEBBzKIFQSNB4KQFELsBQQMjAUEBRg0DGgsjAUUEQAALCyMBRQRAIAAgCCgAATYAASAAQQRqIAgoAAQ2AAAgACAFOgAACwsjAUUEQCABIAEoAghBAWo2AgggCEEQaiQACw8LIQYjAigCACAGNgIAIwIjAigCAEEEajYCACMCKAIAIgYgADYCACAGIAE2AgQgBiACNgIIIAYgAzYCDCAGIAQ2AhAgBiAFNgIUIAYgCDYCGCAGIAk2AhwjAiMCKAIAQSBqNgIAC60PAg1/AX4jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCEFIAEoAhghBiABKAIcIQcgASgCICEIIAEoAiQhCyABKAIoIQwgASgCLCENIAEoAjAhDiABKAI0IQ8gASgCOCEQIAEoAjwhESABKAJAIRIgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEKCyMBRQRAIwBBkAFrIgYkACAGQShqIQcLIApFQQEjARsEQCAHEH9BACMBQQFGDQEaCyMBRQRAIAZBNGooAgAhDyAGQTBqKAIAIRAgBigCLCEOIAYoAighBwsCQAJAIwFFBEAgBw0BQQAhCCAGQQA2AiAgBkIENwMYIAJFIQtBBCEHCwJAAkACQAJAIwFFBEAgCw0BIAJBA3QiAiABaiERCwNAIwFFBEAgAUEEaiISKAIAIQggBkEQaiEHIAEoAgAhAgsgCkEBRkEBIwEbBEAgByAEEMoBQQEjAUEBRg0IGgsjAUUEQCAGKAIUIQ0gBigCECADIAQQ+AEhDCAGQQhqIQcLIApBAkZBASMBGwRAIAcgCBDKAUECIwFBAUYNCBoLIwFFBEAgBiAGKAIMNgI4IAYgBigCCCIHNgI0IAcgAiAIEPgBGiAGQQI2AkggBiAFNgJEIAZBATYCQCAGIAQ2AjAgBiANNgIsIAYgDDYCKCAGIAg2AjwgBkHYAGohByAGQShqIQILIApBA0ZBASMBGwRAIAcgAhAbQQMjAUEBRg0IGgsjAUUEQCAGKAJYQRFGIQILAkACfwJAAkAjAUUEQCACDQEgBkGAAWogBkHgAGopAwA3AwAgBiAGKQNYNwN4IAZBADYCcCAGQgE3A2ggBkH4AGohByAGQegAaiECCyAKQQRGQQEjARsEQCAHIAJBuIQFEBlBBCMBQQFGDQwaIQILIwFFBEAgAkUiAg0CIAZBiAFqIQALIApBBUZBASMBGwRAQYiXBUE3IABB0IQFQZyYBRCXAUEFIwFBAUYNDBoLIwFFBEAACwsjAUUEQCAGKQJcIRMgBiAGKAJkNgJgIAYgEzcDWCAGQfgAaiEHIAZB2ABqIQILIApBBkZBASMBGwRAIAcgDiAPQfiFBUEDIAIQjAFBBiMBQQFGDQsaCyMBRQRAIAYoAoABIQ0gBigChAEhCCAGKAJ8IgIgBigCeCIHDQIaIAZB2ABqIQcLIApBB0ZBASMBGwRAIAcgAiAIEFNBByMBQQFGDQsaCyMBRQRAIAYoAlhBFkchBwsCfyMBRQRAIAdFBEBBACEMIAYoAmQhCCAGKAJcIQsgBigCYAwCCyAGQYABaiAGQeAAaikDADcDACAGIAYpA1g3A3ggBkEANgJwIAZCATcDaCAGQfgAaiELIAZB6ABqIQcLIApBCEZBASMBGwRAIAsgB0G4hAUQFkEIIwFBAUYNDBohBwsjAQR/IAcFIAcNCSAGQfgAahDfASAGKAJoIQsgBigCcCEIQQEhDCAGKAJsCwshByMBRQRAIA0EQCACECELIAZBKGoQ0wEgDEUNBiAHIQ0gCyECDAMLCyMBBH8gAgUgBkH4AGoQ3wEgBigCbCENIAYoAnAhCCAGKAJoCwshAiMBRQRAIAZBKGoiBxDTAQsLIwFFBEAgBkEoaiEMIAEoAgAhCyASKAIAIQcLIApBCUZBASMBGwRAIAwgCyAHIAUgAiAIEJEBQQkjAUEBRg0IGgsjAUUEQCAGKAIgIgggBigCHEchBwsCQCMBRQRAIAcNASAGQRhqIQcLIApBCkZBASMBGwRAIAcgCBB1QQojAUEBRg0JGgsjAUUEQCAGKAIgIQgLCyMBRQRAIAYoAhgiByAIQQxsaiIJIAYpAyg3AgAgCUEIaiIMIAZBMGooAgA2AgAgBiAIQQFqIgg2AiAgDUUiC0UEQCACECELIBEgAUEIaiIBRyICDQELCwsgASAAQQRqIwEbIQEgCkELRkEBIwEbBEAgASAHIAgQTkELIwFBAUYNBhoLIwFFBEAgAEEBNgIADAILCyMBRQRAIAAgCDYCDCAAIAc2AgggACALNgIEIABBADYCACAGKAIgIQggBigCGCEHCwsjAUUEQCAIBEAgCEEMbCEIIAchAQNAIAFBBGooAgAEQCABKAIAECELIAFBDGohASAIQQxrIggNAAsLIAYoAhwEQCAHECELIBBFDQMgDhAhDAMLCyAAIAZBiAFqIwEbIQAgCkEMRkEBIwEbBEBBiJcFQTcgAEHQhAVBnJgFEJcBQQwjAUEBRg0DGgsjAUUEQAALCyMBRQRAIAAgDjYCBCAAQQE2AgAgAEEMaiAPNgIAIABBCGogEDYCAAsLIwFFBEAgBkGQAWokAAsPCyEJIwIoAgAgCTYCACMCIwIoAgBBBGo2AgAjAigCACIJIAA2AgAgCSABNgIEIAkgAjYCCCAJIAM2AgwgCSAENgIQIAkgBTYCFCAJIAY2AhggCSAHNgIcIAkgCDYCICAJIAs2AiQgCSAMNgIoIAkgDTYCLCAJIA42AjAgCSAPNgI0IAkgEDYCOCAJIBE2AjwgCSASNgJAIwIjAigCAEHEAGo2AgALuw0BDn8jAUECRgRAIwIjAigCAEE8azYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQUgASgCGCEHIAEoAhwhCCABKAIgIQkgASgCJCEKIAEoAighCyABKAIsIQwgASgCMCEOIAEoAjQhDyABKAI4IRAgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACENCyMBRQRAIAMoAhAhDwsgDUVBASMBGwRAIAJBIiAPEQAAQQAjAUEBRg0BGiEECwJAAkAjAUVBACAEG0UEQAJAIwFFBEAgAUUEQEEAIQQMAgsgACABaiEQQQAhCyAAIQxBACEHCwJAA0AjAUUEQAJAIAwsAAAiBEF/SgRAIAxBAWohDiAEQf8BcSEIDAELIAwtAAFBP3EhBSAEQR9xIQggBEFfTQRAIAUgCEEGdHIhCCAMQQJqIQ4MAQsgDC0AAkE/cSAFQQZ0ciEFIAxBA2ohDiAEQXBJBEAgBSAIQQx0ciEIDAELIAhBEnRBgIDwAHEgDi0AAEE/cSAFQQZ0cnIiCEGAgMQARiIEDQMgDEEEaiEOC0EwIQlBgoDEACEECwJAAn8CQAJAAkACQAJAIwFFBEACQAJAIAgOIwkBAQEBAQEBAQMFAQEEAQEBAQEBAQEBAQEBAQEBAQEBAQEGAAsgCEHcAEYiBQ0FCwsgDUEBRkEBIwEbBEAgCBBDQQEjAUEBRg0OGiEECyMBRQRAIARFIgQNBSAIQQFyZ0ECdiIEQQdzDAYLCyMBRQRAQfQAIQkMBgsLIwFFBEBB8gAhCQwFCwsjAUUEQEHuACEJDAQLCyMBRQRAIAghCQwDCwsjAUUEQCAIIQlBgYDEACEECyANQQJGQQEjARsEQCAIEGtBAiMBQQFGDQkaIQULIwEEfyAJBSAFDQIgCEEBcmdBAnYiBEEHcwsLIQkgBCAIIwEbIQQLIwFFBEAgBEGAgMQAayIFQQNJIQogBUEDIAobQQFGIQULAkACQCMBRQRAIAUNASAHIAtLDQICQCAHRQ0AIAEgB00EQCABIAdGDQEMBAsgACAHaiwAAEFASA0DCwJAIAtFDQAgASALTQRAIAEgC0cNBAwBCyAAIAtqLAAAQb9/TA0DCyAAIAdqIQUgAygCDCEKIAsgB2shBwsgDUEDRkEBIwEbBEAgAiAFIAcgChEBAEEDIwFBAUYNCRohBQsjAUUEQCAFRSIFRQRAQQEPC0EFIQoLA0AjAUUEQCAKIQYgBCEFQYGAxAAhBEHcACEHAkACfwJAAkACQAJAIAVBgIDEAGsiEUEDIBFBA0kbQQFrDgMBBQACC0EAIQpB/QAhByAFIQQCQAJAAkAgBkH/AXFBAWsOBQcFAAECBAtBAiEKQfsADAULQQMhCkH1AAwEC0EEIQpB3AAMAwtBgIDEACEEIAkiB0GAgMQARyIFDQMLIAsCf0EBIAhBgAFJIgUNABpBAiAIQYAQSSIFDQAaQQNBBCAIQYCABEkbCyIEaiEHDAULIAZBASAJGyEKQTBB1wAgBSAJQQJ0dkEPcSIEQQpJGyEHIAlBAWtBACAJGyEJIAQgB2oLIQcgBSEECwsgDUEERkEBIwEbBEAgAiAHIA8RAABBBCMBQQFGDQoaIQULIwFFBEAgBUUiBQ0BCwsjAUUEQEEBDwsLIwFFBEAgDiALIAxraiELIBAgDiIMRyIEDQIMAwsLCyANQQVGQQEjARsEQCAAIAEgByALQYCJBBDmAUEFIwFBAUYNBhoLIwFFBEAACwsjAUUEQCAHRQRAQQAhBAwCCyABIAdNBEAgByABIgRGDQIMBQsgACAHaiwAAEG/f0wNBCAHIQQLCyMBRQRAIAEgBGshASADKAIMIQMgACAEaiEACyANQQZGQQEjARsEQCACIAAgASADEQEAQQYjAUEBRg0EGiEACyMBRQRAIABFIgANAgsLIwFFBEBBAQ8LCyANQQdGQQEjARsEQCACQSIgDxEAAEEHIwFBAUYNAhohAAsjAUUEQCAADwsLIA1BCEZBASMBGwRAIAAgASAHIAFBkIkEEOYBQQgjAUEBRg0BGgsjAUUEQAALAAshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAU2AhQgBiAHNgIYIAYgCDYCHCAGIAk2AiAgBiAKNgIkIAYgCzYCKCAGIAw2AiwgBiAONgIwIAYgDzYCNCAGIBA2AjgjAiMCKAIAQTxqNgIAQQAL3g4CBH8BfiMBQQJGBEAjAiMCKAIAQRxrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCECEEIAEpAhQhByABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEHgAGsiAyQAIAJBgAFJIQQLAkACfwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgBA0BIAJBX0siBA0CIAKsIgdCgAF8QoACVCIEDQMgB0KAgAJ8IgdCgIAEWiIEDQQgA0EwaiEECyAFRUEBIwEbBEAgBCABQRUQpQFBACMBQQFGDRAaCyMBRQRAIAMtADBBBEcEQCADKQMwIgdC/wGDQgRSDQsLIAMgAkEIdCIEIAJBgP4DcUEIdnI7AQAgA0EwaiECCyAFQQFGQQEjARsEQCACIAEgA0ECEF5BASMBQQFGDRAaCyMBRQRAIAMtADBBBEYiAQ0FIAMpAzAiB0L/AYNCBFEiAQ0FIAMgBzcDMCADQTBqIQELIAVBAkZBASMBGwRAIAMgARCUAUECIwFBAUYNEBoLIwFFDQsLIAQgA0EwaiMBGyEEIAVBA0ZBASMBGwRAIAQgASACEHxBAyMBQQFGDQ8aCyMBRQRAQREgAygCMCIBQRFGDQ0aIANBDGoiAiADQTxqKAIANgIAIAMgAykCNCIHNwIEDAcLCyMBRQRAIANBEGohBCACQQh0QSRyIQILIAVBBEZBASMBGwRAIAQgASACEKUBQQQjAUEBRg0OGgsjAUUEQCADLQAQQQRGIgENAyADIAMpAxAiBzcDGCADQQA2AiggA0IBNwMgIANBzABqQfCWBTYCACADQQM6AFAgA0KAgICAgAQ3AzAgA0EANgJAIANBADYCOCADIANBIGo2AkggA0EwaiECIANBGGohAQsgBUEFRkEBIwEbBEAgASACEEhBBSMBQQFGDQ4aIQELIwFFBEAgAUUiAQ0FIANB2ABqIQALIAVBBkZBASMBGwRAQYiXBUE3IABBwJcFQZyYBRCXAUEGIwFBAUYNDhoLIwFFBEAACwsgBCADQTBqIwEbIQQgBUEHRkEBIwEbBEAgBCABQRQQpQFBByMBQQFGDQ0aCyMBRQRAIAMtADBBBEYiBEUEQCADKQMwIgdC/wGDQgRSIgQNBwsgAyACOgAAIANBMGohAgsgBUEIRkEBIwEbBEAgAiABIANBARBeQQgjAUEBRg0NGgsjAUUEQCADLQAwQQRGIgENAiADKQMwIgdC/wGDQgRRIgENAiADIAc3AzAgA0EwaiEBCyAFQQlGQQEjARsEQCADIAEQlAFBCSMBQQFGDQ0aCyMBRQ0ICyAEIANBMGojARshBCAFQQpGQQEjARsEQCAEIAFBFhClAUEKIwFBAUYNDBoLIwFFBEAgAy0AMEEERwRAIAMpAzAiB0L/AYNCBFINCAsgAyACQQh2QYD+A3EgAkEYdnIgAkEIdEGAgPwHcSACQRh0cnI2AgAgA0EwaiECCyAFQQtGQQEjARsEQCACIAEgA0EEEF5BCyMBQQFGDQwaCyMBRQRAIAMtADBBBEYiAQ0BIAMpAzAiB0L/AYNCBFIiAQ0CCwsjAUUEQCADQRE2AgBBEQwJCwsjAUUEQCADIAc3AzAgA0EwaiEBCyAFQQxGQQEjARsEQCADIAEQlAFBDCMBQQFGDQoaCyMBRQ0FCyMBRQRAIANBDGogA0EoaigCACICNgIAIAMgAykDICIHNwIEIANBGGohAQsgBUENRkEBIwEbBEAgARDJAUENIwFBAUYNCRoLIAFBASMBGyEBCyMBRQRAIAMgATYCAAwFCwsjAUUEQCADIAc3AzAgA0EwaiEBCyAFQQ5GQQEjARsEQCADIAEQlAFBDiMBQQFGDQcaCyMBRQ0CCyMBRQRAIAMgBzcDMCADQTBqIQELIAVBD0ZBASMBGwRAIAMgARCUAUEPIwFBAUYNBhoLIwFFDQELIwFFBEAgAyAHNwMwIANBMGohAQsgBUEQRkEBIwEbBEAgAyABEJQBQRAjAUEBRg0FGgsLIwFFBEBBESICIAMoAgBBEUYiAQ0CGgsLIwFFBEAgA0E4aiADQQhqKQMANwMAIAMgAykDADcDMCADQQA2AiggA0IBNwMgIANBIGohAiADQTBqIQELIAVBEUZBASMBGwRAIAEgAkHwlgUQGUERIwFBAUYNAxohAQsjAQR/IAIFIAENAiAAIAMpAyA3AgQgAEEMaiADQShqKAIANgIAIANBMGoQ3wFBDQsLIQIjAUUEQCAAIAI2AgAgA0HgAGokAA8LCyAAIANB2ABqIwEbIQAgBUESRkEBIwEbBEBBiJcFQTcgAEHAlwVBnJgFEJcBQRIjAUEBRg0BGgsjAUUEQAALDwshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAc3AhQjAiMCKAIAQRxqNgIAC4AHAQV/IABBCGshASABIABBBGsoAgAiA0F4cSIAaiECAkACQAJAIANBAXENACADQQNxRQ0BIAEoAgAiAyAAaiEAIAEgA2siAUH4uwUoAgBGBEAgAigCBEEDcUEDRw0BQfC7BSAANgIAIAIgAigCBEF+cTYCBCABIABBAXI2AgQgACABaiAANgIADwsgA0GAAk8EQCABEFgMAQsgAUEMaigCACIEIAFBCGooAgAiBUcEQCAFIAQ2AgwgBCAFNgIIDAELQeC4BUHguAUoAgBBfiADQQN2d3E2AgALAkAgAigCBCIDQQJxBEAgAiADQX5xNgIEIAEgAEEBcjYCBCAAIAFqIAA2AgAMAQsCQAJAAkAgAkH8uwUoAgBHBEBB+LsFKAIAIAJHDQFB+LsFIAE2AgBB8LsFQfC7BSgCACAAaiIANgIAIAEgAEEBcjYCBCAAIAFqIAA2AgAPC0H8uwUgATYCAEH0uwVB9LsFKAIAIABqIgA2AgAgASAAQQFyNgIEIAFB+LsFKAIARg0BDAILIANBeHEiBCAAaiEAAkAgBEGAAk8EQCACEFgMAQsgAkEMaigCACIEIAJBCGooAgAiAkcEQCACIAQ2AgwgBCACNgIIDAELQeC4BUHguAUoAgBBfiADQQN2d3E2AgALIAEgAEEBcjYCBCAAIAFqIAA2AgAgAUH4uwUoAgBHDQJB8LsFIAA2AgAMAwtB8LsFQQA2AgBB+LsFQQA2AgALQZi8BSgCACIDIABPDQFB/LsFKAIAIgJFDQFBACEBAkBB9LsFKAIAIgRBKUkNAEGIvAUhAANAIAIgACgCACIFTwRAIAAoAgQgBWogAksNAgsgACgCCCIADQALC0GQvAUoAgAiAARAA0AgAUEBaiEBIAAoAggiAA0ACwtBoLwFIAFB/x8gAUH/H0sbNgIAIAMgBE8NAUGYvAVBfzYCAA8LIABBgAJJDQEgASAAEFdBACEBQaC8BUGgvAUoAgBBAWsiADYCACAADQBBkLwFKAIAIgAEQANAIAFBAWohASAAKAIIIgANAAsLQaC8BSABQf8fIAFB/x9LGzYCAA8LDwsgAEF4cUHouAVqIQICf0EBIABBA3Z0IgBB4LgFKAIAIgNxBEAgAigCCAwBC0HguAUgACADcjYCACACCyEAIAIgATYCCCAAIAE2AgwgASACNgIMIAEgADYCCAvrDQIFfwF+IwFBAkYEQCMCIwIoAgBBJGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCEFIAEoAhghBiABKQIcIQkgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwBB0ABrIgQkACADQSBJIQULAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIAUNASADQYACSSIFDQIgA0GAgARJIgUNAyAEQRBqIQULIAdFQQEjARsEQCAFIAFBHxClAUEAIwFBAUYNDBoLIwFFBEAgBC0AEEEERiIFDQQgBCkDECIJQv8Bg0IEUSIFDQQgBCAJNwMQIARBEGohBiAEQSBqIQULIAdBAUZBASMBGwRAIAUgBhCUAUEBIwFBAUYNDBoLIwFFDQYLIwFFBEAgA0EIdEEDciEGIARBEGohBQsgB0ECRkEBIwEbBEAgBSABIAYQpQFBAiMBQQFGDQsaCyMBRQRAIAQtABBBBEYiBQ0HIAQpAxAiCUL/AYNCBFEiBQ0HIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQNGQQEjARsEQCAFIAYQlAFBAyMBQQFGDQsaCyMBRQ0FCyAFIARBEGojARshBSAHQQRGQQEjARsEQCAFIAFBHRClAUEEIwFBAUYNChoLIwFFBEAgBC0AEEEERwRAIAQpAxAiCUL/AYNCBFIiBQ0ECyAEIAM6AAggBEEIaiEGIARBEGohBQsgB0EFRkEBIwEbBEAgBSABIAZBARBeQQUjAUEBRg0KGgsjAUUEQCAELQAQQQRGIgUNBiAEKQMQIglC/wGDQgRRIgUNBiAEIAk3AxAgBEEQaiEGIARBIGohBQsgB0EGRkEBIwEbBEAgBSAGEJQBQQYjAUEBRg0KGgsjAUUNBAsgBSAEQRBqIwEbIQUgB0EHRkEBIwEbBEAgBSABQR4QpQFBByMBQQFGDQkaCyMBRQRAIAQtABBBBEcEQCAEKQMQIglC/wGDQgRSIgUNBAsgBCADQQh0IANBgP4DcUEIdnI7AQggBEEIaiEGIARBEGohBQsgB0EIRkEBIwEbBEAgBSABIAZBAhBeQQgjAUEBRg0JGgsjAUUEQCAELQAQQQRGIgUNBSAEKQMQIglC/wGDQgRRIgUNBSAEIAk3AxAgBEEQaiEGIARBIGohBQsgB0EJRkEBIwEbBEAgBSAGEJQBQQkjAUEBRg0JGgsjAUUNAwsjAUUEQCAEIANBCHRBgID8B3EgA0EYdHIgA0EIdkGA/gNxIANBGHZycjYCCCAEQQhqIQYgBEEQaiEFCyAHQQpGQQEjARsEQCAFIAEgBkEEEF5BCiMBQQFGDQgaCyMBRQRAIAQtABBBBEYiBQ0EIAQpAxAiCUL/AYNCBFEiBQ0EIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQtGQQEjARsEQCAFIAYQlAFBCyMBQQFGDQgaCyMBRQ0CCyMBRQRAIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQxGQQEjARsEQCAFIAYQlAFBDCMBQQFGDQcaCyMBRQ0BCyMBRQRAIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQ1GQQEjARsEQCAFIAYQlAFBDSMBQQFGDQYaCwsjAUUEQCAEKAIgIgVBEUcNAgsLIAdBDkZBASMBGwRAIAQgASACIAMQXkEOIwFBAUYNBBoLIwFFBEBBESEDIAQtAABBBEYhAQsCQCMBRQRAIAENASAEIAQpAwA3AwggBEEANgIYIARCATcDECAEQTxqQfCWBTYCACAEQQM6AEAgBEKAgICAgAQ3AyAgBEEANgIwIARBADYCKCAEIARBEGo2AjggBEEgaiECIARBCGohAQsgB0EPRkEBIwEbBEAgASACEEhBDyMBQQFGDQUaIQELIwFFBEAgAQ0EIAAgBCkDEDcCBCAAQQxqIARBGGooAgA2AgAgBEEIaiEBCyAHQRBGQQEjARsEQCABEMkBQRAjAUEBRg0FGgsgA0EOIwEbIQMLIwFFBEAgACADNgIADAILCyMBRQRAIAAgBCkCJDcCBCAAQQxqIARBLGooAgA2AgAgACAFNgIACwsjAUUEQCAEQdAAaiQADwsLIAAgBEHIAGojARshACAHQRFGQQEjARsEQEGIlwVBNyAAQcCXBUGcmAUQlwFBESMBQQFGDQEaCyMBRQRAAAsPCyEIIwIoAgAgCDYCACMCIwIoAgBBBGo2AgAjAigCACIIIAA2AgAgCCABNgIEIAggAjYCCCAIIAM2AgwgCCAENgIQIAggBTYCFCAIIAY2AhggCCAJNwIcIwIjAigCAEEkajYCAAvtBQEIfwJAIAFBzP97Sw0AQRAgAUELakF4cSABQQtJGyECIABBBGsiBSgCACIGQXhxIQQCQAJAAkACQAJAAkAgBkEDcQRAIABBCGshCCACIARNDQEgBCAIaiIHQfy7BSgCAEYNAkH4uwUoAgAgB0YNAyAHKAIEIgZBAnENBiAGQXhxIgkgBGoiBCACTw0EDAYLIAJBgAJJIAJBBHIgBEtyIAQgAmtBgYAIT3INBQwECyAEIAJrIgFBEEkNAyAFIAIgBkEBcXJBAnI2AgAgAiAIaiIDIAFBA3I2AgQgASADaiICKAIEQQFyIQUgAiAFNgIEIAMgARAtDAMLQfS7BSgCACAEaiIEIAJNDQMgBSACIAZBAXFyQQJyNgIAIAIgCGoiASAEIAJrIgNBAXI2AgRB9LsFIAM2AgBB/LsFIAE2AgAMAgtB8LsFKAIAIARqIgQgAkkNAgJAIAQgAmsiAUEPTQRAIAUgBCAGQQFxckECcjYCACAEIAhqIgEoAgRBAXIhAyABIAM2AgRBACEBQQAhAwwBCyAFIAIgBkEBcXJBAnI2AgAgAiAIaiIDIAFBAXI2AgQgASADaiICIAE2AgAgAiACKAIEQX5xNgIEC0H4uwUgAzYCAEHwuwUgATYCAAwBCyAEIAJrIQECQCAJQYACTwRAIAcQWAwBCyAHQQxqKAIAIgMgB0EIaigCACIHRwRAIAcgAzYCDCADIAc2AggMAQtB4LgFQeC4BSgCAEF+IAZBA3Z3cTYCAAsgAUEQTwRAIAUgAiAFKAIAQQFxckECcjYCACACIAhqIgMgAUEDcjYCBCABIANqIgIoAgRBAXIhBSACIAU2AgQgAyABEC0MAQsgBSAEIAUoAgBBAXFyQQJyNgIAIAQgCGoiASgCBEEBciEDIAEgAzYCBAsgACEDDAELIAEQDiICRQ0AQXxBeCAFKAIAIgNBA3EbIANBeHFqIgMgAUkhBSACIAAgAyABIAUbEPgBIAAQIQ8LIAMLjA0CCX8DfiMBQQJGBEAjAiMCKAIAQUBqNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCECEEIAEoAhQhByABKAIYIQggASkCHCEMIAEoAiQhCSABKAIoIQogASkCLCENIAEpAjQhDiABKAI8IQsgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwAiB0GgAWsiAyQACyAGRUEBIwEbBEAgASACEAJBACMBQQFGDQEaIQELAkACfwJAAkACQCMBRUEAIAEgAUUjARsiARtFBEAgBkEBRkEBIwEbBEAQA0EBIwFBAUYNBxohCgsgBkECRkEBIwEbBEAgAyAKEMoBQQIjAUEBRg0HGgsjAUUEQCADKAIAIQkLIAZBA0ZBASMBGwRAIAkQBEEDIwFBAUYNBxoLIwFFBEBBGxAOIgJFIgENAiACQbycBSkAADcAACACQQhqQcScBSkAADcAACACQRBqQcycBSkAACIMNwAAIAJBF2pB05wFKAAAIgc2AAAgA0GAAWpCADcDACADQRs2AnQgAyACNgJwIANCm4CAgMAANwN4IANB8ABqIQIgA0EIaiEBCyAGQQRGQQEjARsEQCABIAkgCiACEFpBBCMBQQFGDQcaCyABIANBOGojARshASAGQQVGQQEjARsEQCABQdCUBUEgQfCUBUELQfuUBUEkEGxBBSMBQQFGDQcaCyMBRQRAIANBCGohByADQfAAaiECCyAGQQZGQQEjARsEQCACIAcQKkEGIwFBAUYNBxoLIwFFBEAgAygCcCIEQRZHIQILAkAjAUUEQAJAIAJFBEAgAygCdCECIANBADYCWCADQgQ3A1AgAg0BQQQMCAsgAykDeCENIAMoAnQhCAwCCyACrSEOQQQhB0IAIQxBACECCwNAIwFFBEAgA0EANgJoIANCATcDYCADQQM6AJABIANCgICAgIAENwNwIANB/IUFNgKMASADQQA2AoABIANBADYCeCADIANB4ABqNgKIASADQfAAaiEECyAGQQdGQQEjARsEQCAMQQEgBBBSQQcjAUEBRg0JGiEECyMBRQRAIAQNBSADKAJoIQggAygCYCEECyAGQQhGQQEjARsEQCABQZSLBUEGIAQgCEGaiwVBARBsQQgjAUEBRg0JGgsjAUUEQCADKAJkBEAgAygCYBAhCyADQQhqIQggA0HwAGohBAsgBkEJRkEBIwEbBEAgBCAIEBRBCSMBQQFGDQkaCyMBRQRAIAMpA3ghDSADKAJwIgRBFkchCyADKAJ0IQgLAkAjAUUEQCALDQEgAygCVCACRyEECwJAIwFFBEAgBA0BIANB0ABqIQcLIAZBCkZBASMBGwRAIAcgAhB1QQojAUEBRg0LGgsjAUUEQCADKAJQIQcgAygCWCECCwsjAUUEQCAMQgF8IQwgByACQQxsaiICIA03AgQgAiAINgIAIAMgAygCWEEBaiICNgJYIANB8ABqIQQLIAZBC0ZBASMBGwRAIAQgARA8QQsjAUEBRg0KGgsjAUUEQCADKAJ0BEAgAygCcBAhCyAMIA5RIgQNBwwCCwsLIwFFBEAgAgRAIAJBDGwhASAHIQIDQCACQQRqKAIABEAgAigCABAhCyACQQxqIQIgAUEMayIBDQALCyADKAJURSIADQEgBxAhCwsjAUUEQCADIA03A3ggAyAINgJ0IAMgBDYCcCADQfAAaiEACyAGQQxGQQEjARsEQEHQoQVBKyAAQcCUBUGUlgUQlwFBDCMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgAEEANgIIIABCBDcCAAwFCwsjAUUEQAALCyAAIANBmAFqIwEbIQAgBkENRkEBIwEbBEBBiJcFQTcgAEGUhgVBnJgFEJcBQQ0jAUEBRg0EGgsjAUUEQAALCyMBBH8gAgUgAygCUAsLIQIjAUUEQCAAIAMpAlQ3AgQgACACNgIAIAEQxgEgA0EUaigCAARAIAMoAhAQIQsgA0EgahDGASAKRQ0BIAkQIQsLIwFFBEAgA0GgAWokAAsPCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAENgIQIAUgBzYCFCAFIAg2AhggBSAMNwIcIAUgCTYCJCAFIAo2AiggBSANNwIsIAUgDjcCNCAFIAs2AjwjAiMCKAIAQUBrNgIAC/wMAgV/AX4jAUECRgRAIwIjAigCAEEkazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQUgASgCGCEGIAEpAhwhCSABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEHQAGsiBCQAIANFIQULAkACQAJAAkACQAJAAkACQCMBRQRAIAUNASADQYACSSEFCwJAAkACQCMBRQRAIAUNASADQYCABEkiBQ0CIARBEGohBQsgB0VBASMBGwRAIAUgAUEKEKUBQQAjAUEBRg0MGgsjAUUEQCAELQAQQQRGIgUNAyAEKQMQIglC/wGDQgRRIgUNAyAEIAk3AxAgBEEQaiEGIARBIGohBQsgB0EBRkEBIwEbBEAgBSAGEJQBQQEjAUEBRg0MGgsjAUUNBgsgBSAEQRBqIwEbIQUgB0ECRkEBIwEbBEAgBSABQQgQpQFBAiMBQQFGDQsaCyMBRQRAIAQtABBBBEcEQCAEKQMQIglC/wGDQgRSIgUNBQsgBCADOgAIIARBCGohBiAEQRBqIQULIAdBA0ZBASMBGwRAIAUgASAGQQEQXkEDIwFBAUYNCxoLIwFFBEAgBC0AEEEERiIFDQcgBCkDECIJQv8Bg0IEUSIFDQcgBCAJNwMQIARBEGohBiAEQSBqIQULIAdBBEZBASMBGwRAIAUgBhCUAUEEIwFBAUYNCxoLIwFFDQULIAUgBEEQaiMBGyEFIAdBBUZBASMBGwRAIAUgAUEJEKUBQQUjAUEBRg0KGgsjAUUEQCAELQAQQQRHBEAgBCkDECIJQv8Bg0IEUiIFDQULIAQgA0EIdCADQYD+A3FBCHZyOwEIIARBCGohBiAEQRBqIQULIAdBBkZBASMBGwRAIAUgASAGQQIQXkEGIwFBAUYNChoLIwFFBEAgBC0AEEEERiIFDQYgBCkDECIJQv8Bg0IEUSIFDQYgBCAJNwMQIARBEGohBiAEQSBqIQULIAdBB0ZBASMBGwRAIAUgBhCUAUEHIwFBAUYNChoLIwFFDQQLIwFFBEAgBCADQQh0QYCA/AdxIANBGHRyIANBCHZBgP4DcSADQRh2cnI2AgggBEEIaiEGIARBEGohBQsgB0EIRkEBIwEbBEAgBSABIAZBBBBeQQgjAUEBRg0JGgsjAUUEQCAELQAQQQRGIgUNBSAEKQMQIglC/wGDQgRRIgUNBSAEIAk3AxAgBEEQaiEGIARBIGohBQsgB0EJRkEBIwEbBEAgBSAGEJQBQQkjAUEBRg0JGgsjAUUNAwsgB0EKRkEBIwEbBEAgACABEH1BCiMBQQFGDQgaCyMBRQ0GCyMBRQRAIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQtGQQEjARsEQCAFIAYQlAFBCyMBQQFGDQcaCyMBRQ0BCyMBRQRAIAQgCTcDECAEQRBqIQYgBEEgaiEFCyAHQQxGQQEjARsEQCAFIAYQlAFBDCMBQQFGDQYaCwsjAUUEQCAEKAIgIgVBEUcNAgsLIAdBDUZBASMBGwRAIAQgASACIAMQXkENIwFBAUYNBBoLIwFFBEBBESEDIAQtAABBBEYhAQsCQCMBRQRAIAENASAEIAQpAwA3AwggBEEANgIYIARCATcDECAEQTxqQfCWBTYCAEEDIQMgBEEDOgBAIARCgICAgIAENwMgIARBADYCMCAEQQA2AiggBCAEQRBqNgI4IARBIGohAiAEQQhqIQELIAdBDkZBASMBGwRAIAEgAhBIQQ4jAUEBRg0FGiEBCyMBRQRAIAENAyAAIAQpAxA3AgQgAEEMaiAEQRhqKAIANgIAIARBCGohAQsgB0EPRkEBIwEbBEAgARDJAUEPIwFBAUYNBRoLCyMBRQRAIAAgAzYCAAwDCwsjAUUEQCAAIAQpAiQ3AgQgAEEMaiAEQSxqKAIANgIAIAAgBTYCAAwCCwsgACAEQcgAaiMBGyEAIAdBEEZBASMBGwRAQYiXBUE3IABBwJcFQZyYBRCXAUEQIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAEQdAAaiQACw8LIQgjAigCACAINgIAIwIjAigCAEEEajYCACMCKAIAIgggADYCACAIIAE2AgQgCCACNgIIIAggAzYCDCAIIAQ2AhAgCCAFNgIUIAggBjYCGCAIIAk3AhwjAiMCKAIAQSRqNgIAC4cOAQN/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUUEQCMAQRBrIgIkACAAKAIAIQMLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQAJAIANBAWsOFQIDBAUGBwgJCgsMDQ4PEBESExQVFgALIAIgAEEEajYCDCACQQxqIQALIARFQQEjARsEQCABQbCTBUETIABBiI8FEHFBACMBQQFGDRcaIQALIwFFDRULIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEBRkEBIwEbBEAgAUGgkwVBECAAQYiPBRBxQQEjAUEBRg0WGiEACyMBRQ0UCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBAkZBASMBGwRAIAFBkpMFQQ4gAEGIjwUQcUECIwFBAUYNFRohAAsjAUUNEwsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQNGQQEjARsEQCABQYKTBUEQIABBiI8FEHFBAyMBQQFGDRQaIQALIwFFDRILIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEERkEBIwEbBEAgAUHvkgVBEyAAQYiPBRBxQQQjAUEBRg0TGiEACyMBRQ0RCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBBUZBASMBGwRAIAFB45IFQQwgAEGIjwUQcUEFIwFBAUYNEhohAAsjAUUNEAsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQZGQQEjARsEQCABQdaSBUENIABBiI8FEHFBBiMBQQFGDREaIQALIwFFDQ8LIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEHRkEBIwEbBEAgAUHIkgVBDiAAQYiPBRBxQQcjAUEBRg0QGiEACyMBRQ0OCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBCEZBASMBGwRAIAFBuZIFQQ8gAEGIjwUQcUEIIwFBAUYNDxohAAsjAUUNDQsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQlGQQEjARsEQCABQaeSBUESIABBiI8FEHFBCSMBQQFGDQ4aIQALIwFFDQwLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEKRkEBIwEbBEAgAUGakgVBDSAAQYiPBRBxQQojAUEBRg0NGiEACyMBRQ0LCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBC0ZBASMBGwRAIAFBjZIFQQ0gAEGIjwUQcUELIwFBAUYNDBohAAsjAUUNCgsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQxGQQEjARsEQCABQf+RBUEOIABBiI8FEHFBDCMBQQFGDQsaIQALIwFFDQkLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEENRkEBIwEbBEAgAUHzkQVBDCAAQYiPBRBxQQ0jAUEBRg0KGiEACyMBRQ0ICyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBDkZBASMBGwRAIAFB3ZEFQRYgAEGIjwUQcUEOIwFBAUYNCRohAAsjAUUNBwsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQ9GQQEjARsEQCABQdGRBUEMIABBiI8FEHFBDyMBQQFGDQgaIQALIwFFDQYLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEQRkEBIwEbBEAgAUHEkQVBDSAAQYiPBRBxQRAjAUEBRg0HGiEACyMBRQ0FCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBEUZBASMBGwRAIAFBtJEFQRAgAEGIjwUQcUERIwFBAUYNBhohAAsjAUUNBAsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQRJGQQEjARsEQCABQaKRBUESIABBiI8FEHFBEiMBQQFGDQUaIQALIwFFDQMLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEETRkEBIwEbBEAgAUGWkQVBDCAAQYiPBRBxQRMjAUEBRg0EGiEACyMBRQ0CCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBFEZBASMBGwRAIAFBiZEFQQ0gAEGIjwUQcUEUIwFBAUYNAxohAAsjAUUNAQsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQRVGQQEjARsEQCABQYCPBUEHIABBiI8FEHFBFSMBQQFGDQIaIQALCyMBRQRAIAJBEGokACAADwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAvxCwELfyMBQQJGBEAjAiMCKAIAQThrNgIAIwIoAgAiCCgCACEAIAgoAgQhASAIKAIIIQIgCCgCDCEDIAgoAhAhBCAIKAIUIQYgCCgCGCEHIAgoAhwhCSAIKAIgIQogCCgCJCELIAgoAighDCAIKAIsIQ0gCCgCMCEOIAgoAjQhCAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQYABayIEJAAgBEHcAGoiB0EBNgIAIARBDDYCVCAEQcyeBTYCUCAEQQA2AkAgBCAEQUBrNgJYIARBAjYCfCAEQQE2AnQgBEHUngU2AnAgBEEBNgJsIARBqKQFNgJoIAQgBEHQAGo2AnggBEHoAGohBgsgBUVBASMBGwRAIAQgBhA7QQAjAUEBRg0BGgsjAUUEQCAHQQE2AgAgBEEMNgJUIARBzJ4FNgJQIARBATYCQCAEIARBQGs2AlggBEECNgJ8IARBATYCdCAEQdSeBTYCcCAEQQE2AmwgBEH0ngU2AmggBCAEQdAAajYCeCAEQegAaiEGIARBEGohBwsgBUEBRkEBIwEbBEAgByAGEDtBASMBQQFGDQEaCyMBRQRAIARBADYCKCAEQgE3AyAgBEEgaiEHIAQoAgghBiAEKAIAIQsLIAVBAkZBASMBGwRAIAcgCyAGEL8BQQIjAUEBRg0BGgsjAUUEQCAEQfQAaiABKAIINgIAIARBCTYCbCAEQfyeBTYCaCAEIAEoAgA2AnAgBEHoAGohBiAEQTBqIQcLIAVBA0ZBASMBGwRAIAcgBkECEFtBAyMBQQFGDQEaCyMBRQRAIARBIGohByAEKAI4IQYgBCgCMCEKCyAFQQRGQQEjARsEQCAHIAogBhC/AUEEIwFBAUYNARoLIwFFBEAgAUEUaigCACIHRSEGCwJAAkACQCMBRQRAIAYNASAEKAIYIQ0gBCgCECEMIAdBJGwiBiABKAIMakEMayEBCwNAIAYgBEEgaiMBGyEGIAVBBUZBASMBGwRAIAYgDCANEL8BQQUjAUEBRg0FGgsjAUUEQCAEQQk2AmQgBEEJNgJcIARBCTYCVCAEIAE2AmAgBCABQQxrNgJYIAQgAUEYazYCUCAEQQM2AnwgBEIDNwJsIARBpJ8FNgJoIAQgBEHQAGo2AnggBEFAayEGIARB6ABqIQkLIAVBBkZBASMBGwRAIAYgCRA7QQYjAUEBRg0FGgsjAUUEQCAEKAJEIQkgBEEgaiEOIAQoAkAhBiAEKAJIIQgLIAVBB0ZBASMBGwRAIA4gBiAIEL8BQQcjAUEBRg0FGgsjAUUEQCAHQQFrIQcgCUUiCUUEQCAGECELIAFBJGshASAHDQELCyMBRQRAIAQoAighByAEKAIkIQkgBCgCICEBIAQoAjQEQCAKECELIAQoAhQEQCAMECELIAQoAgQNAgwDCwsjAUUEQCAEKAIQIQYgBCgCGCEHIARBIGohAQsgBUEIRkEBIwEbBEAgASAGIAcQvwFBCCMBQQFGDQMaCyABIARBIGojARshASAFQQlGQQEjARsEQCABQYWfBUEWEL8BQQkjAUEBRg0DGgsjAUUEQCAEKAIoIQcgBCgCJCEJIAQoAiAhASAEKAI0BEAgChAhCyAEKAIUBEAgBhAhCyAEKAIERQ0CCwsjAUUEQCALECELCyMBRQRAIARB/ABqIAc2AgAgBEH0AGpBATYCACAEIAE2AnggBEHIngU2AnAgBCADNgJsIAQgAjYCaCAEQegAaiECCyAFQQpGQQEjARsEQCAAIAJBAxBbQQojAUEBRg0BGgsjAUUEQCAJBEAgARAhCyAEQYABaiQACw8LIQUjAigCACAFNgIAIwIjAigCAEEEajYCACMCKAIAIgUgADYCACAFIAE2AgQgBSACNgIIIAUgAzYCDCAFIAQ2AhAgBSAGNgIUIAUgBzYCGCAFIAk2AhwgBSAKNgIgIAUgCzYCJCAFIAw2AiggBSANNgIsIAUgDjYCMCAFIAg2AjQjAiMCKAIAQThqNgIAC+oLAQl/IwFBAkYEQCMCIwIoAgBBNGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCEFIAEoAhghByABKAIcIQggASgCICEJIAEoAiQhCiABKAIoIQwgASgCLCENIAEoAjAhDiABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQsLIwFFBEACfyABBEBBK0GAgMQAIAAoAgAiCUEBcSIBGyEMIAEgBWoMAQsgACgCACEJQS0hDCAFQQFqCyEKAkAgCUEEcUUEQEEAIQIMAQsCQCADRQRAQQAhBwwBCyADQQNxIghFDQBBACEHIAIhAQNAIAEsAABBv39KIAdqIQcgAUEBaiEBIAhBAWsiCA0ACwsgByAKaiEKCyAAKAIIIQELAkACQCMBRQRAIAENASAAQRhqIgkoAgAhByAAQRxqIgAoAgAhCEEBIQELIAtFQQEjARsEQCAHIAggDCACIAMQxQFBACMBQQFGDQMaIQALIwFFBEAgAA0CIAgoAgwhAAsgC0EBRkEBIwEbBEAgByAEIAUgABEBAEEBIwFBAUYNAxohAAsjAUUEQCAADwsLIwFFBEAgAEEMaigCACINIApNIQELAkACQAJAAkAjAUUEQCABRQRAIAlBCHEiAQ0FIA0gCmsiByEJIAAtACAiAUEDRiEGQQEgASAGG0EDcSIBQQFrDgICAwQLIABBGGoiCSgCACEHIABBHGoiACgCACEIQQEhAQsgC0ECRkEBIwEbBEAgByAIIAwgAiADEMUBQQIjAUEBRg0GGiEACyMBRQRAIAANBSAIKAIMIQALIAtBA0ZBASMBGwRAIAcgBCAFIAARAQBBAyMBQQFGDQYaIQALIwFFBEAgAA8LCyMBRQRAQQAhCSAHIQEMAgsLIwFFBEAgB0EBakEBdiEJIAdBAXYhAQsLIwFFBEAgAEEcaigCACEIIABBGGooAgAhCiAAKAIEIQcgAUEBaiEBCwJAA0AjAUUEQCABQQFrIgFFIgANAiAIKAIQIQALIAtBBEZBASMBGwRAIAogByAAEQAAQQQjAUEBRg0FGiEACyMBRQRAIABFIgANAQsLIwFFBEBBAQ8LCyMBRQRAQQEhASAHQYCAxABGIgANAgsgC0EFRkEBIwEbBEAgCiAIIAwgAiADEMUBQQUjAUEBRg0DGiEACyMBRQRAIAANAiAIKAIMIQALIAtBBkZBASMBGwRAIAogBCAFIAARAQBBBiMBQQFGDQMaIQALIwFFBEAgAA0CQQAhAQsCfwNAIwFFBEAgCSABIAlHIgBFDQIaIAFBAWohASAIKAIQIQALIAtBB0ZBASMBGwRAIAogByAAEQAAQQcjAUEBRg0FGiEACyMBRQRAIABFIgANAQsLIAEgAUEBayMBGwshASMBRQRAIAEgCUkhAQwCCwsjAUUEQCAAKAIEIQkgAEEwNgIEIAAtACAhDiAAQQE6ACAgAEEYaigCACEHIABBHGooAgAhCEEBIQELIAtBCEZBASMBGwRAIAcgCCAMIAIgAxDFAUEIIwFBAUYNAhohAgsjAUUEQCACDQEgDSAKa0EBaiEBCwJAA0AjAUUEQCABQQFrIgFFIgINAiAIKAIQIQILIAtBCUZBASMBGwRAIAdBMCACEQAAQQkjAUEBRg0EGiECCyMBRQRAIAJFIgINAQsLIwFFBEBBAQ8LCyMBRQRAIAgoAgwhAkEBIQELIAtBCkZBASMBGwRAIAcgBCAFIAIRAQBBCiMBQQFGDQIaIQILIwFFBEAgAg0BIAAgDjoAICAAIAk2AgRBAA8LCyMBRQRAIAEPCwALIQYjAigCACAGNgIAIwIjAigCAEEEajYCACMCKAIAIgYgADYCACAGIAE2AgQgBiACNgIIIAYgAzYCDCAGIAQ2AhAgBiAFNgIUIAYgBzYCGCAGIAg2AhwgBiAJNgIgIAYgCjYCJCAGIAw2AiggBiANNgIsIAYgDjYCMCMCIwIoAgBBNGo2AgBBAAu8CgIGfwN+IwFBAkYEQCMCIwIoAgBBNGs2AgAjAigCACIGKAIAIQAgBigCBCEBIAYoAgghAiAGKAIMIQMgBigCECEFIAYpAhQhCCAGKAIcIQcgBikCICEJIAYpAighCiAGKAIwIQYLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEFAaiICJAAgAkEoaiEDCyAERUEBIwEbBEAgAyABEJABQQAjAUEBRg0BGgsjAUUEQCACKAIoIgNBFkchBQsCQAJAAkAjAUUEQCAFDQEgAi0ALCEDCwJAAkAjAUUEQCADDQEgAkEoaiEDCyAEQQFGQQEjARsEQCADIAEQbUEBIwFBAUYNBhoLIwFFBEAgAi0AKEEERgRAIAIvACkiA0EIdiEFDAULIAIpAygiCEIQiCEJIAhCCIghCiAIQv8Bg0IEUiIDDQIgCachBSAKpyEDDAQLCyMBRQRAIABCFjcCAAwECwsjAUUEQCACIAhC/4GAeIMgCUIIhkKA/gODIApC/wGDhEIIhoQiCDcDKCACQShqIQELIARBAkZBASMBGwRAIAAgARCTAUECIwFBAUYNBBoLIwFFDQILIwFFBEAgACACKQAtNwAFIABBDGogAkE0aigAADYAACAAIAItACw6AAQgACADNgIADAILCyMBRQRAIANB/wFxIgNBAWshBwsCQAJAAkACQAJAIwFFBEACQAJAIAcOBAMBAQQACyADQSJrDgIEBQALIAJBGGoiByAFQQh0IgUgA3IQFyACQQk2AhQgAiACQRhqNgIQIAJBATYCPCACQgE3AiwgAkG8iwU2AiggAiACQRBqNgI4IAJBKGohAwsgBEEDRkEBIwEbBEAgAiADEDtBAyMBQQFGDQcaCyMBRQRAIAIoAhwEQCACKAIYECELIAIoAgQhAyAAQQRqIQUgAUEwaiEHIAIoAgghBiACKAIAIQELIARBBEZBASMBGwRAIAUgByABIAYQJ0EEIwFBAUYNBxoLIwFFBEAgAEESNgIAIANFDQYgARAhDAYLCyMBRQRAIABBFjYCACAAIAVB/wFxNgIEDAULCyMBRQRAIABCFjcCAAwECwsjAUUEQCACQQA7ARggAkEoaiEDIAJBGGohBQsgBEEFRkEBIwEbBEAgAyABIAVBAhB3QQUjAUEBRg0EGgsjAUUEQCACLQAoQQRHBEAgAikDKCIIQv8Bg0IEUiIBDQMLIAIvARghASAAQRY2AgAgACABQQh0IAFBCHZyQf//A3E2AgQMAwsLIwFFBEAgAkEANgIYIAJBKGohAyACQRhqIQULIARBBkZBASMBGwRAIAMgASAFQQQQd0EGIwFBAUYNAxoLIwFFBEACQCACLQAoQQRHBEAgAikDKCIIQv8Bg0IEUg0BCyACKAIYIQEgAEEWNgIAIAAgAUEIdkGA/gNxIAFBGHZyIAFBCHRBgID8B3EgAUEYdHJyNgIEDAMLIAIgCDcDKCACQShqIQELIARBB0ZBASMBGwRAIAAgARCTAUEHIwFBAUYNAxoLIwFFDQELIwFFBEAgAiAINwMoIAJBKGohAQsgBEEIRkEBIwEbBEAgACABEJMBQQgjAUEBRg0CGgsLIwFFBEAgAkFAayQACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCAEIAU2AhAgBCAINwIUIAQgBzYCHCAEIAk3AiAgBCAKNwIoIAQgBjYCMCMCIwIoAgBBNGo2AgALuwoCBn8DfiMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiBigCACEAIAYoAgQhASAGKAIIIQIgBigCDCEDIAYoAhAhBSAGKQIUIQggBigCHCEHIAYpAiAhCSAGKQIoIQogBigCMCEGCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBQGoiAiQAIAJBKGohAwsgBEVBASMBGwRAIAMgARCQAUEAIwFBAUYNARoLIwFFBEAgAigCKCIDQRZHIQULAkACQAJAIwFFBEAgBQ0BIAItACwhAwsCQAJAIwFFBEAgAw0BIAJBKGohAwsgBEEBRkEBIwEbBEAgAyABEG1BASMBQQFGDQYaCyMBRQRAIAItAChBBEYEQCACLwApIgNBCHYhBQwFCyACKQMoIghCEIghCSAIQgiIIQogCEL/AYNCBFIiAw0CIAmnIQUgCqchAwwECwsjAUUEQCAAQhY3AgAMBAsLIwFFBEAgAiAIQv+BgHiDIAlCCIZCgP4DgyAKQv8Bg4RCCIaEIgg3AyggAkEoaiEBCyAEQQJGQQEjARsEQCAAIAEQkwFBAiMBQQFGDQQaCyMBRQ0CCyMBRQRAIAAgAikALTcABSAAQQxqIAJBNGooAAA2AAAgACACLQAsOgAEIAAgAzYCAAwCCwsjAUUEQCADQf8BcSIDQQJrIQcLAkACQAJAAkACQCMBRQRAAkACQCAHDgMDAQQACyADQSBrDgIEBQALIAJBGGoiByAFQQh0IgUgA3IQFyACQQk2AhQgAiACQRhqNgIQIAJBATYCPCACQgE3AiwgAkGMiwU2AiggAiACQRBqNgI4IAJBKGohAwsgBEEDRkEBIwEbBEAgAiADEDtBAyMBQQFGDQcaCyMBRQRAIAIoAhwEQCACKAIYECELIAIoAgQhAyAAQQRqIQUgAUEwaiEHIAIoAgghBiACKAIAIQELIARBBEZBASMBGwRAIAUgByABIAYQJ0EEIwFBAUYNBxoLIwFFBEAgAEESNgIAIANFDQYgARAhDAYLCyMBRQRAIABBFjYCACAAIAVB/wFxNgIEDAULCyMBRQRAIABCFjcCAAwECwsjAUUEQCACQQA7ARggAkEoaiEDIAJBGGohBQsgBEEFRkEBIwEbBEAgAyABIAVBAhB3QQUjAUEBRg0EGgsjAUUEQCACLQAoQQRHBEAgAikDKCIIQv8Bg0IEUiIBDQMLIAIvARghASAAQRY2AgAgACABQQh0IAFBCHZyQf//A3E2AgQMAwsLIwFFBEAgAkEANgIYIAJBKGohAyACQRhqIQULIARBBkZBASMBGwRAIAMgASAFQQQQd0EGIwFBAUYNAxoLIwFFBEACQCACLQAoQQRHBEAgAikDKCIIQv8Bg0IEUg0BCyACKAIYIQEgAEEWNgIAIAAgAUEIdkGA/gNxIAFBGHZyIAFBCHRBgID8B3EgAUEYdHJyNgIEDAMLIAIgCDcDKCACQShqIQELIARBB0ZBASMBGwRAIAAgARCTAUEHIwFBAUYNAxoLIwFFDQELIwFFBEAgAiAINwMoIAJBKGohAQsgBEEIRkEBIwEbBEAgACABEJMBQQgjAUEBRg0CGgsLIwFFBEAgAkFAayQACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCAEIAU2AhAgBCAINwIUIAQgBzYCHCAEIAk3AiAgBCAKNwIoIAQgBjYCMCMCIwIoAgBBNGo2AgAL9gkBC38jAUECRgRAIwIjAigCAEEwazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBSABKAIUIQYgASgCGCEHIAEoAhwhCCABKAIgIQkgASgCJCEKIAEoAighDCABKAIsIQ0gASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACELCyMBRQRAIwBBMGsiBSQAIAVBJGoiAyABNgIAIAVBAzoAKCAFQoCAgICABDcDCCAFIAA2AiAgBUEANgIYIAVBADYCECACKAIIIQxBACEJCwJ/AkACQAJAIwFFBEAgDA0BIAJBFGooAgAiAEUiAQ0CIAIoAhAhASAAQQN0IQggAEEBa0H/////AXFBAWohCSACKAIAIQALA0AjAUUEQCAAQQRqKAIAIgNFIQYLAkAjAUUEQCAGDQEgACgCACEHIAUoAiQoAgwhCiAFKAIgIQYLIAtFQQEjARsEQCAGIAcgAyAKEQEAQQAjAUEBRg0HGiEDCyMBRUEAIAMbDQQLIwFFBEAgBUEIaiEGIAFBBGooAgAhByABKAIAIQMLIAtBAUZBASMBGwRAIAMgBiAHEQAAQQEjAUEBRg0GGiEDCyMBRQRAIAMNBCABQQhqIQEgAEEIaiEAIAhBCGsiCA0BCwsjAUUNAQsjAUUEQCACQQxqKAIAIgFFIgANASABQQV0IQ0gAUEBa0H///8/cUEBaiEJQQAhCCACKAIAIQALA0AjAUUEQCAAQQRqKAIAIgFFIQMLAkAjAUUEQCADDQEgACgCACEGIAUoAiQoAgwhByAFKAIgIQMLIAtBAkZBASMBGwRAIAMgBiABIAcRAQBBAiMBQQFGDQYaIQELIwFFQQAgARsNAwsjAUUEQCAFIAggDGoiAUEcai0AADoAKCAFIAFBBGopAgBCIIk3AwggAUEYaigCACEGIAIoAhAhCkEAIQRBACEDAkACQAJAIAFBFGooAgAiB0EBaw4CAAIBCyAKIAZBA3RqIgdBBGooAgBBAUcNASAHKAIAKAIAIQYLQQEhAwsgBSAGNgIUIAUgAzYCECABQRBqKAIAIQMCQAJAAkAgAUEMaigCAEEBaw4CAAIBCyAKIANBA3RqIgZBBGooAgBBAUciBw0BIAYoAgAoAgAhAwtBASEECyAFIAM2AhwgBSAENgIYIAogASgCAEEDdGoiASgCACEDIAVBCGohBiABKAIEIQELIAtBA0ZBASMBGwRAIAMgBiABEQAAQQMjAUEBRg0FGiEBCyMBRQRAIAENAyAAQQhqIQAgDSAIQSBqIghHIgENAQsLCyMBRQRAIAkgAigCBE8hAAsCQCMBRQRAIAANASACKAIAIAlBA3RqIgAoAgAhAiAAKAIEIQEgBSgCJCgCDCEDIAUoAiAhAAsgC0EERkEBIwEbBEAgACACIAEgAxEBAEEEIwFBAUYNBBohAAsjAUVBACAAGw0BC0EAIwFFDQEaCyABQQEjARsLIQAjAUUEQCAFQTBqJAAgAA8LAAshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIAQgBTYCECAEIAY2AhQgBCAHNgIYIAQgCDYCHCAEIAk2AiAgBCAKNgIkIAQgDDYCKCAEIA02AiwjAiMCKAIAQTBqNgIAQQAL9QgBDX8jAUECRgRAIwIjAigCAEE4azYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBSABKAIUIQYgASgCGCEHIAEoAhwhCCABKAIgIQkgASgCJCEKIAEoAighCyABKAIsIQwgASgCMCENIAEoAjQhDiABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQ8LIwFFBEAgACgCBCEMIAAoAgAhDSAAKAIIIQ5BACELQQAhCkEAIQlBACEFCwJAA0ACQAJAIwFFQQAjAUUEQCAJQf8BcQ0EIAIgBUkhAAsgABsNAANAIwFFBEAgASAFaiEIIAIgBWsiB0EISSEACwJAAkAjAUUEQAJAAkACQCAARQRAIAggCEEDakF8cSIARg0CIAcgACAIayIGSyEAIAYgByAAGyIARQ0CQQAhAwNAIAMgCGotAABBCkYiBg0HIAAgA0EBaiIDRw0ACwwBCyACIAVHIgBFBEAgAiEFDAgLQQAhAwNAIAMgCGotAABBCkYiAA0GIAcgA0EBaiIDRyIADQALIAIhBQwHCyAHQQhrIgYgAEkiAw0DDAELIAdBCGshBkEAIQALA0ACQCAAIAhqIgkoAgAiBEF/cyAEQYqUqNAAc0GBgoQIa3FBgIGChHhxIgMNACAJQQRqKAIAIgNBf3MhCSAJIANBipSo0ABzQYGChAhrcUGAgYKEeHEiAw0AIAYgAEEIaiIATyIDDQELCyAAIAdNIgYNAQsgD0VBASMBGwRAIAAgB0HAiQQQ7gFBACMBQQFGDQgaCyMBRQRAAAsLIwFFBEAgACAHRyIGRQRAIAIhBQwECwNAIAAgCGotAABBCkciBkUEQCAAIQMMAwsgByAAQQFqIgBHIgYNAAsgAiEFDAMLCyMBRQRAAkAgAyAFaiIAQQFqIgVFIgYNACACIAVJIgYNACAAIAFqLQAAQQpHDQBBACEJIAUiBiEADAQLIAIgBU8iAA0BCwsLIwFFBEBBASEJIAIiACAKIgZGIgMNAwsLIwFFBEAgDi0AAEUhAwsCQAJAIwFFBEAgAw0BIAwoAgwhAwsgD0EBRkEBIwEbBEAgDUGwhgRBBCADEQEAQQEjAUEBRg0FGiEDCyMBRUEAIAMbDQELIwFFBEAgASAKaiEDIAAgCmshCEEAIQcgACAKRwRAIAMgCGpBAWstAABBCkYhBwsgDiAHOgAAIAYhCiAMKAIMIQALIA9BAkZBASMBGwRAIA0gAyAIIAARAQBBAiMBQQFGDQQaIQALIwFFBEAgAEUiAA0CCwsLIAtBASMBGyELCyMBRQRAIAsPCwALIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCAEIAU2AhAgBCAGNgIUIAQgBzYCGCAEIAg2AhwgBCAJNgIgIAQgCjYCJCAEIAs2AiggBCAMNgIsIAQgDTYCMCAEIA42AjQjAiMCKAIAQThqNgIAQQAL+AQBBH8gACABaiECAkACQAJAIAAoAgQiA0EBcQ0AIANBA3FFDQEgACgCACIDIAFqIQEgACADayIAQfi7BSgCAEYEQCACKAIEQQNxQQNHDQFB8LsFIAE2AgAgAiACKAIEQX5xNgIEIAAgAUEBcjYCBCACIAE2AgAPCyADQYACTwRAIAAQWAwBCyAAQQxqKAIAIgQgAEEIaigCACIFRwRAIAUgBDYCDCAEIAU2AggMAQtB4LgFQeC4BSgCAEF+IANBA3Z3cTYCAAsgAigCBCIDQQJxBEAgAiADQX5xNgIEIAAgAUEBcjYCBCAAIAFqIAE2AgAMAgsCQCACQfy7BSgCAEcEQEH4uwUoAgAgAkcNAUH4uwUgADYCAEHwuwVB8LsFKAIAIAFqIgE2AgAgACABQQFyNgIEIAAgAWogATYCAA8LQfy7BSAANgIAQfS7BUH0uwUoAgAgAWoiATYCACAAIAFBAXI2AgRB+LsFKAIAIABHDQFB8LsFQQA2AgBB+LsFQQA2AgAPCyADQXhxIgQgAWohAQJAIARBgAJPBEAgAhBYDAELIAJBDGooAgAiBCACQQhqKAIAIgJHBEAgAiAENgIMIAQgAjYCCAwBC0HguAVB4LgFKAIAQX4gA0EDdndxNgIACyAAIAFBAXI2AgQgACABaiABNgIAQfi7BSgCACAARw0BQfC7BSABNgIACw8LIAFBgAJPBEAgACABEFcPCyABQXhxQei4BWohAgJ/QQEgAUEDdnQiAUHguAUoAgAiA3EEQCACKAIIDAELQeC4BSABIANyNgIAIAILIQEgAiAANgIIIAEgADYCDCAAIAI2AgwgACABNgIIC5oLAQN/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUUEQCMAQRBrIgIkACAAKAIAIQMLAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAAkAgA0EBaw4QAgMEBQYHCAkKCwwNDg8QEQALIAIgAEEEajYCDCACQQxqIQALIARFQQEjARsEQCABQfyQBUENIABBiI8FEHFBACMBQQFGDRIaIQALIwFFDRALIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEBRkEBIwEbBEAgAUHskAVBECAAQYiPBRBxQQEjAUEBRg0RGiEACyMBRQ0PCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBAkZBASMBGwRAIAFB25AFQREgAEGIjwUQcUECIwFBAUYNEBohAAsjAUUNDgsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQNGQQEjARsEQCABQc6QBUENIABBiI8FEHFBAyMBQQFGDQ8aIQALIwFFDQ0LIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEERkEBIwEbBEAgAUG+kAVBECAAQYiPBRBxQQQjAUEBRg0OGiEACyMBRQ0MCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBBUZBASMBGwRAIAFBsJAFQQ4gAEGIjwUQcUEFIwFBAUYNDRohAAsjAUUNCwsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQZGQQEjARsEQCABQZ+QBUERIABBiI8FEHFBBiMBQQFGDQwaIQALIwFFDQoLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEHRkEBIwEbBEAgAUGOkAVBESAAQYiPBRBxQQcjAUEBRg0LGiEACyMBRQ0JCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBCEZBASMBGwRAIAFB/48FQQ8gAEGIjwUQcUEIIwFBAUYNChohAAsjAUUNCAsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQlGQQEjARsEQCABQe+PBUEQIABBiI8FEHFBCSMBQQFGDQkaIQALIwFFDQcLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEKRkEBIwEbBEAgAUHfjwVBECAAQYiPBRBxQQojAUEBRg0IGiEACyMBRQ0GCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBC0ZBASMBGwRAIAFB0Y8FQQ4gAEGIjwUQcUELIwFBAUYNBxohAAsjAUUNBQsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQxGQQEjARsEQCABQcKPBUEPIABBiI8FEHFBDCMBQQFGDQYaIQALIwFFDQQLIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEENRkEBIwEbBEAgAUGzjwVBDyAAQYiPBRBxQQ0jAUEBRg0FGiEACyMBRQ0DCyMBRQRAIAIgAEEEajYCDCACQQxqIQALIARBDkZBASMBGwRAIAFBpo8FQQ0gAEGIjwUQcUEOIwFBAUYNBBohAAsjAUUNAgsjAUUEQCACIABBBGo2AgwgAkEMaiEACyAEQQ9GQQEjARsEQCABQZiPBUEOIABBiI8FEHFBDyMBQQFGDQMaIQALIwFFDQELIwFFBEAgAiAAQQRqNgIMIAJBDGohAAsgBEEQRkEBIwEbBEAgAUGAjwVBByAAQYiPBRBxQRAjAUEBRg0CGiEACwsjAUUEQCACQRBqJAAgAA8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALrQoBDH8jAUECRgRAIwIjAigCAEHIAGs2AgAjAigCACIIKAIAIQAgCCgCBCEBIAgoAgghAiAIKAIMIQMgCCgCECEEIAgoAhQhBSAIKAIYIQYgCCgCHCEJIAgoAiAhCiAIKAIkIQsgCCgCKCEMIAgoAiwhDSAIKAIwIQ4gCCgCNCEPIAgoAjghECAIKAI8IREgCCgCQCESIAgoAkQhCAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAIg1BIGsiCyQACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgBEUEQCAGIQ0MAgtBACEOQQAhCSAGIQ0LA0AjAUUEQCAJIA1LIgoNBSAGIA1JIgoNBiADIA5qIQwgBCAOayEPIAUgCWohECALQRBqIQogDSAJayERCyAHRUEBIwEbBEAgCiABIAIgDCAPIBAgERBHQQAjAUEBRg0PGgsjAUUEQCALLQAcQQRGIgoNAiAOIAsoAhBqIgpBCGohDiAKQXdLIgwNByAEIA5JIgwNCCALKAIUIAlqIRAgC0EIaiACIAMgCmoiERCcASALKAIMIQwgCygCCCIJDQMgDEEDbCIPQQdxIglBA08NCSAMIAogDGoiCUsNCiAEIAlJDQsgECAPQQN2Ig9qIgkgD0kNDCAGIAlJDQ0gC0EQaiESIAUgEGohCAsgB0EBRkEBIwEbBEAgEiABIAIgESAMIAggDxBHQQEjAUEBRg0PGgsjAUUEQCALLQAcIgxBBEciEQ0EIA0gD2pBA2shDSAEIA5LIgoNAQsLCyMBRQRAIABBBDoADCAAIA02AgAMDAsLIwFFBEAgAEEDOgAMIAAgCjYCACAAIBCtIAogDGqtQiCGhDcCBAwLCwsjAUUEQCALKAIYIQEgACAMOgAMIAAgCjYCACAAIBCtIAEgCmqtQiCGhDcCBAwKCwsgB0ECRkEBIwEbBEAgCSANQcykBBDwAUECIwFBAUYNChoLIwFFBEAACwsgB0EDRkEBIwEbBEAgDSAGQcykBBDvAUEDIwFBAUYNCRoLIwFFBEAACwsgB0EERkEBIwEbBEAgCiAOQdykBBDwAUEEIwFBAUYNCBoLIwFFBEAACwsgB0EFRkEBIwEbBEAgDiAEQdykBBDvAUEFIwFBAUYNBxoLIwFFBEAACwsjAUUEQCALQQA6ABQgCyAMIAlBA25rNgIQIAtBEGohAAsgB0EGRkEBIwEbBEBB0KEFQSsgAEHEowRB7KQEEJcBQQYjAUEBRg0GGgsjAUUEQAALCyAHQQdGQQEjARsEQCAKIAlB/KQEEPABQQcjAUEBRg0FGgsjAUUEQAALCyAHQQhGQQEjARsEQCAJIARB/KQEEO8BQQgjAUEBRg0EGgsjAUUEQAALCyAHQQlGQQEjARsEQCAQIAlBjKUEEPABQQkjAUEBRg0DGgsjAUUEQAALCyAHQQpGQQEjARsEQCAJIAZBjKUEEO8BQQojAUEBRg0CGgsjAUUEQAALCyMBRQRAIAtBIGokAAsPCyEHIwIoAgAgBzYCACMCIwIoAgBBBGo2AgAjAigCACIHIAA2AgAgByABNgIEIAcgAjYCCCAHIAM2AgwgByAENgIQIAcgBTYCFCAHIAY2AhggByAJNgIcIAcgCjYCICAHIAs2AiQgByAMNgIoIAcgDTYCLCAHIA42AjAgByAPNgI0IAcgEDYCOCAHIBE2AjwgByASNgJAIAcgCDYCRCMCIwIoAgBByABqNgIAC60KAQx/IwFBAkYEQCMCIwIoAgBByABrNgIAIwIoAgAiCCgCACEAIAgoAgQhASAIKAIIIQIgCCgCDCEDIAgoAhAhBCAIKAIUIQUgCCgCGCEGIAgoAhwhCSAIKAIgIQogCCgCJCELIAgoAighDCAIKAIsIQ0gCCgCMCEOIAgoAjQhDyAIKAI4IRAgCCgCPCERIAgoAkAhEiAIKAJEIQgLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjACINQSBrIgskAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIARFBEAgBiENDAILQQAhDkEAIQkgBiENCwNAIwFFBEAgCSANSyIKDQUgBiANSSIKDQYgAyAOaiEMIAQgDmshDyAFIAlqIRAgC0EQaiEKIA0gCWshEQsgB0VBASMBGwRAIAogASACIAwgDyAQIBEQQkEAIwFBAUYNDxoLIwFFBEAgCy0AHEEERiIKDQIgDiALKAIQaiIKQQhqIQ4gCkF3SyIMDQcgBCAOSSIMDQggCygCFCAJaiEQIAtBCGogAiADIApqIhEQnAEgCygCDCEMIAsoAggiCQ0DIAxBA2wiD0EHcSIJQQNPDQkgDCAKIAxqIglLDQogBCAJSQ0LIBAgD0EDdiIPaiIJIA9JDQwgBiAJSQ0NIAtBEGohEiAFIBBqIQgLIAdBAUZBASMBGwRAIBIgASACIBEgDCAIIA8QQkEBIwFBAUYNDxoLIwFFBEAgCy0AHCIMQQRHIhENBCANIA9qQQNrIQ0gBCAOSyIKDQELCwsjAUUEQCAAQQQ6AAwgACANNgIADAwLCyMBRQRAIABBAzoADCAAIAo2AgAgACAQrSAKIAxqrUIghoQ3AgQMCwsLIwFFBEAgCygCGCEBIAAgDDoADCAAIAo2AgAgACAQrSABIApqrUIghoQ3AgQMCgsLIAdBAkZBASMBGwRAIAkgDUHMpAQQ8AFBAiMBQQFGDQoaCyMBRQRAAAsLIAdBA0ZBASMBGwRAIA0gBkHMpAQQ7wFBAyMBQQFGDQkaCyMBRQRAAAsLIAdBBEZBASMBGwRAIAogDkHcpAQQ8AFBBCMBQQFGDQgaCyMBRQRAAAsLIAdBBUZBASMBGwRAIA4gBEHcpAQQ7wFBBSMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgC0EAOgAUIAsgDCAJQQNuazYCECALQRBqIQALIAdBBkZBASMBGwRAQdChBUErIABBxKMEQeykBBCXAUEGIwFBAUYNBhoLIwFFBEAACwsgB0EHRkEBIwEbBEAgCiAJQfykBBDwAUEHIwFBAUYNBRoLIwFFBEAACwsgB0EIRkEBIwEbBEAgCSAEQfykBBDvAUEIIwFBAUYNBBoLIwFFBEAACwsgB0EJRkEBIwEbBEAgECAJQYylBBDwAUEJIwFBAUYNAxoLIwFFBEAACwsgB0EKRkEBIwEbBEAgCSAGQYylBBDvAUEKIwFBAUYNAhoLIwFFBEAACwsjAUUEQCALQSBqJAALDwshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByAANgIAIAcgATYCBCAHIAI2AgggByADNgIMIAcgBDYCECAHIAU2AhQgByAGNgIYIAcgCTYCHCAHIAo2AiAgByALNgIkIAcgDDYCKCAHIA02AiwgByAONgIwIAcgDzYCNCAHIBA2AjggByARNgI8IAcgEjYCQCAHIAg2AkQjAiMCKAIAQcgAajYCAAuqCgEMfyMBQQJGBEAjAiMCKAIAQcgAazYCACMCKAIAIggoAgAhACAIKAIEIQEgCCgCCCECIAgoAgwhAyAIKAIQIQQgCCgCFCEFIAgoAhghBiAIKAIcIQkgCCgCICEKIAgoAiQhCyAIKAIoIQwgCCgCLCENIAgoAjAhDiAIKAI0IQ8gCCgCOCEQIAgoAjwhESAIKAJAIRIgCCgCRCEICwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwAiDUEgayILJAALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCAERQRAIAYhDQwCC0EAIQ5BACEJIAYhDQsDQCMBRQRAIAkgDUsiCg0FIAYgDUkiCg0GIAMgDmohDCAEIA5rIQ8gBSAJaiEQIAtBEGohCiANIAlrIRELIAdFQQEjARsEQCAKIAEgAiAMIA8gECAREEVBACMBQQFGDQ8aCyMBRQRAIAstABxBBEYiCg0CIA4gCygCEGoiCkEEaiEOIApBe0siDA0HIAQgDkkiDA0IIAsoAhQgCWohECALQQhqIAIgAyAKaiIREJoBIAsoAgwhDCALKAIIIgkNAyAMQQZsIg9BBnFBBkYiCQ0JIAwgCiAMaiIJSw0KIAQgCUkNCyAQIA9BA3YiD2oiCSAPSQ0MIAYgCUkNDSALQRBqIRIgBSAQaiEICyAHQQFGQQEjARsEQCASIAEgAiARIAwgCCAPEEVBASMBQQFGDQ8aCyMBRQRAIAstABwiDEEERyIRDQQgDSAPakEDayENIAQgDksiCg0BCwsLIwFFBEAgAEEEOgAMIAAgDTYCAAwMCwsjAUUEQCAAQQM6AAwgACAKNgIAIAAgEK0gCiAMaq1CIIaENwIEDAsLCyMBRQRAIAsoAhghASAAIAw6AAwgACAKNgIAIAAgEK0gASAKaq1CIIaENwIEDAoLCyAHQQJGQQEjARsEQCAJIA1BzKQEEPABQQIjAUEBRg0KGgsjAUUEQAALCyAHQQNGQQEjARsEQCANIAZBzKQEEO8BQQMjAUEBRg0JGgsjAUUEQAALCyAHQQRGQQEjARsEQCAKIA5B3KQEEPABQQQjAUEBRg0IGgsjAUUEQAALCyAHQQVGQQEjARsEQCAOIARB3KQEEO8BQQUjAUEBRg0HGgsjAUUEQAALCyMBRQRAIAtBADoAFCALIAxBAWs2AhAgC0EQaiEACyAHQQZGQQEjARsEQEHQoQVBKyAAQcSjBEHspAQQlwFBBiMBQQFGDQYaCyMBRQRAAAsLIAdBB0ZBASMBGwRAIAogCUH8pAQQ8AFBByMBQQFGDQUaCyMBRQRAAAsLIAdBCEZBASMBGwRAIAkgBEH8pAQQ7wFBCCMBQQFGDQQaCyMBRQRAAAsLIAdBCUZBASMBGwRAIBAgCUGMpQQQ8AFBCSMBQQFGDQMaCyMBRQRAAAsLIAdBCkZBASMBGwRAIAkgBkGMpQQQ7wFBCiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgC0EgaiQACw8LIQcjAigCACAHNgIAIwIjAigCAEEEajYCACMCKAIAIgcgADYCACAHIAE2AgQgByACNgIIIAcgAzYCDCAHIAQ2AhAgByAFNgIUIAcgBjYCGCAHIAk2AhwgByAKNgIgIAcgCzYCJCAHIAw2AiggByANNgIsIAcgDjYCMCAHIA82AjQgByAQNgI4IAcgETYCPCAHIBI2AkAgByAINgJEIwIjAigCAEHIAGo2AgALqgoBDH8jAUECRgRAIwIjAigCAEHIAGs2AgAjAigCACIIKAIAIQAgCCgCBCEBIAgoAgghAiAIKAIMIQMgCCgCECEEIAgoAhQhBSAIKAIYIQYgCCgCHCEJIAgoAiAhCiAIKAIkIQsgCCgCKCEMIAgoAiwhDSAIKAIwIQ4gCCgCNCEPIAgoAjghECAIKAI8IREgCCgCQCESIAgoAkQhCAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAIg1BIGsiCyQACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgBEUEQCAGIQ0MAgtBACEOQQAhCSAGIQ0LA0AjAUUEQCAJIA1LIgoNBSAGIA1JIgoNBiADIA5qIQwgBCAOayEPIAUgCWohECALQRBqIQogDSAJayERCyAHRUEBIwEbBEAgCiABIAIgDCAPIBAgERBAQQAjAUEBRg0PGgsjAUUEQCALLQAcQQRGIgoNAiAOIAsoAhBqIgpBBGohDiAKQXtLIgwNByAEIA5JIgwNCCALKAIUIAlqIRAgC0EIaiACIAMgCmoiERCaASALKAIMIQwgCygCCCIJDQMgDEEGbCIPQQZxQQZGIgkNCSAMIAogDGoiCUsNCiAEIAlJDQsgECAPQQN2Ig9qIgkgD0kNDCAGIAlJDQ0gC0EQaiESIAUgEGohCAsgB0EBRkEBIwEbBEAgEiABIAIgESAMIAggDxBAQQEjAUEBRg0PGgsjAUUEQCALLQAcIgxBBEciEQ0EIA0gD2pBA2shDSAEIA5LIgoNAQsLCyMBRQRAIABBBDoADCAAIA02AgAMDAsLIwFFBEAgAEEDOgAMIAAgCjYCACAAIBCtIAogDGqtQiCGhDcCBAwLCwsjAUUEQCALKAIYIQEgACAMOgAMIAAgCjYCACAAIBCtIAEgCmqtQiCGhDcCBAwKCwsgB0ECRkEBIwEbBEAgCSANQcykBBDwAUECIwFBAUYNChoLIwFFBEAACwsgB0EDRkEBIwEbBEAgDSAGQcykBBDvAUEDIwFBAUYNCRoLIwFFBEAACwsgB0EERkEBIwEbBEAgCiAOQdykBBDwAUEEIwFBAUYNCBoLIwFFBEAACwsgB0EFRkEBIwEbBEAgDiAEQdykBBDvAUEFIwFBAUYNBxoLIwFFBEAACwsjAUUEQCALQQA6ABQgCyAMQQFrNgIQIAtBEGohAAsgB0EGRkEBIwEbBEBB0KEFQSsgAEHEowRB7KQEEJcBQQYjAUEBRg0GGgsjAUUEQAALCyAHQQdGQQEjARsEQCAKIAlB/KQEEPABQQcjAUEBRg0FGgsjAUUEQAALCyAHQQhGQQEjARsEQCAJIARB/KQEEO8BQQgjAUEBRg0EGgsjAUUEQAALCyAHQQlGQQEjARsEQCAQIAlBjKUEEPABQQkjAUEBRg0DGgsjAUUEQAALCyAHQQpGQQEjARsEQCAJIAZBjKUEEO8BQQojAUEBRg0CGgsjAUUEQAALCyMBRQRAIAtBIGokAAsPCyEHIwIoAgAgBzYCACMCIwIoAgBBBGo2AgAjAigCACIHIAA2AgAgByABNgIEIAcgAjYCCCAHIAM2AgwgByAENgIQIAcgBTYCFCAHIAY2AhggByAJNgIcIAcgCjYCICAHIAs2AiQgByAMNgIoIAcgDTYCLCAHIA42AjAgByAPNgI0IAcgEDYCOCAHIBE2AjwgByASNgJAIAcgCDYCRCMCIwIoAgBByABqNgIAC6oKAQx/IwFBAkYEQCMCIwIoAgBByABrNgIAIwIoAgAiCCgCACEAIAgoAgQhASAIKAIIIQIgCCgCDCEDIAgoAhAhBCAIKAIUIQUgCCgCGCEGIAgoAhwhCSAIKAIgIQogCCgCJCELIAgoAighDCAIKAIsIQ0gCCgCMCEOIAgoAjQhDyAIKAI4IRAgCCgCPCERIAgoAkAhEiAIKAJEIQgLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjACINQSBrIgskAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIARFBEAgBiENDAILQQAhDkEAIQkgBiENCwNAIwFFBEAgCSANSyIKDQUgBiANSSIKDQYgAyAOaiEMIAQgDmshDyAFIAlqIRAgC0EQaiEKIA0gCWshEQsgB0VBASMBGwRAIAogASACIAwgDyAQIBEQRkEAIwFBAUYNDxoLIwFFBEAgCy0AHEEERiIKDQIgDiALKAIQaiIKQQhqIQ4gCkF3SyIMDQcgBCAOSSIMDQggCygCFCAJaiEQIAtBCGogAiADIApqIhEQmwEgCygCDCEMIAsoAggiCQ0DIAxBBWwiD0EHcUEFTyIJDQkgDCAKIAxqIglLDQogBCAJSQ0LIBAgD0EDdiIPaiIJIA9JDQwgBiAJSQ0NIAtBEGohEiAFIBBqIQgLIAdBAUZBASMBGwRAIBIgASACIBEgDCAIIA8QRkEBIwFBAUYNDxoLIwFFBEAgCy0AHCIMQQRHIhENBCANIA9qQQVrIQ0gBCAOSyIKDQELCwsjAUUEQCAAQQQ6AAwgACANNgIADAwLCyMBRQRAIABBAzoADCAAIAo2AgAgACAQrSAKIAxqrUIghoQ3AgQMCwsLIwFFBEAgCygCGCEBIAAgDDoADCAAIAo2AgAgACAQrSABIApqrUIghoQ3AgQMCgsLIAdBAkZBASMBGwRAIAkgDUHMpAQQ8AFBAiMBQQFGDQoaCyMBRQRAAAsLIAdBA0ZBASMBGwRAIA0gBkHMpAQQ7wFBAyMBQQFGDQkaCyMBRQRAAAsLIAdBBEZBASMBGwRAIAogDkHcpAQQ8AFBBCMBQQFGDQgaCyMBRQRAAAsLIAdBBUZBASMBGwRAIA4gBEHcpAQQ7wFBBSMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgC0EAOgAUIAsgDEEBazYCECALQRBqIQALIAdBBkZBASMBGwRAQdChBUErIABBxKMEQeykBBCXAUEGIwFBAUYNBhoLIwFFBEAACwsgB0EHRkEBIwEbBEAgCiAJQfykBBDwAUEHIwFBAUYNBRoLIwFFBEAACwsgB0EIRkEBIwEbBEAgCSAEQfykBBDvAUEIIwFBAUYNBBoLIwFFBEAACwsgB0EJRkEBIwEbBEAgECAJQYylBBDwAUEJIwFBAUYNAxoLIwFFBEAACwsgB0EKRkEBIwEbBEAgCSAGQYylBBDvAUEKIwFBAUYNAhoLIwFFBEAACwsjAUUEQCALQSBqJAALDwshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByAANgIAIAcgATYCBCAHIAI2AgggByADNgIMIAcgBDYCECAHIAU2AhQgByAGNgIYIAcgCTYCHCAHIAo2AiAgByALNgIkIAcgDDYCKCAHIA02AiwgByAONgIwIAcgDzYCNCAHIBA2AjggByARNgI8IAcgEjYCQCAHIAg2AkQjAiMCKAIAQcgAajYCAAuqCgEMfyMBQQJGBEAjAiMCKAIAQcgAazYCACMCKAIAIggoAgAhACAIKAIEIQEgCCgCCCECIAgoAgwhAyAIKAIQIQQgCCgCFCEFIAgoAhghBiAIKAIcIQkgCCgCICEKIAgoAiQhCyAIKAIoIQwgCCgCLCENIAgoAjAhDiAIKAI0IQ8gCCgCOCEQIAgoAjwhESAIKAJAIRIgCCgCRCEICwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwAiDUEgayILJAALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCAERQRAIAYhDQwCC0EAIQ5BACEJIAYhDQsDQCMBRQRAIAkgDUsiCg0FIAYgDUkiCg0GIAMgDmohDCAEIA5rIQ8gBSAJaiEQIAtBEGohCiANIAlrIRELIAdFQQEjARsEQCAKIAEgAiAMIA8gECAREEFBACMBQQFGDQ8aCyMBRQRAIAstABxBBEYiCg0CIA4gCygCEGoiCkEIaiEOIApBd0siDA0HIAQgDkkiDA0IIAsoAhQgCWohECALQQhqIAIgAyAKaiIREJsBIAsoAgwhDCALKAIIIgkNAyAMQQVsIg9BB3FBBU8iCQ0JIAwgCiAMaiIJSw0KIAQgCUkNCyAQIA9BA3YiD2oiCSAPSQ0MIAYgCUkNDSALQRBqIRIgBSAQaiEICyAHQQFGQQEjARsEQCASIAEgAiARIAwgCCAPEEFBASMBQQFGDQ8aCyMBRQRAIAstABwiDEEERyIRDQQgDSAPakEFayENIAQgDksiCg0BCwsLIwFFBEAgAEEEOgAMIAAgDTYCAAwMCwsjAUUEQCAAQQM6AAwgACAKNgIAIAAgEK0gCiAMaq1CIIaENwIEDAsLCyMBRQRAIAsoAhghASAAIAw6AAwgACAKNgIAIAAgEK0gASAKaq1CIIaENwIEDAoLCyAHQQJGQQEjARsEQCAJIA1BzKQEEPABQQIjAUEBRg0KGgsjAUUEQAALCyAHQQNGQQEjARsEQCANIAZBzKQEEO8BQQMjAUEBRg0JGgsjAUUEQAALCyAHQQRGQQEjARsEQCAKIA5B3KQEEPABQQQjAUEBRg0IGgsjAUUEQAALCyAHQQVGQQEjARsEQCAOIARB3KQEEO8BQQUjAUEBRg0HGgsjAUUEQAALCyMBRQRAIAtBADoAFCALIAxBAWs2AhAgC0EQaiEACyAHQQZGQQEjARsEQEHQoQVBKyAAQcSjBEHspAQQlwFBBiMBQQFGDQYaCyMBRQRAAAsLIAdBB0ZBASMBGwRAIAogCUH8pAQQ8AFBByMBQQFGDQUaCyMBRQRAAAsLIAdBCEZBASMBGwRAIAkgBEH8pAQQ7wFBCCMBQQFGDQQaCyMBRQRAAAsLIAdBCUZBASMBGwRAIBAgCUGMpQQQ8AFBCSMBQQFGDQMaCyMBRQRAAAsLIAdBCkZBASMBGwRAIAkgBkGMpQQQ7wFBCiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgC0EgaiQACw8LIQcjAigCACAHNgIAIwIjAigCAEEEajYCACMCKAIAIgcgADYCACAHIAE2AgQgByACNgIIIAcgAzYCDCAHIAQ2AhAgByAFNgIUIAcgBjYCGCAHIAk2AhwgByAKNgIgIAcgCzYCJCAHIAw2AiggByANNgIsIAcgDjYCMCAHIA82AjQgByAQNgI4IAcgETYCPCAHIBI2AkAgByAINgJEIwIjAigCAEHIAGo2AgALkwoBDH8jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIHKAIAIQAgBygCBCEBIAcoAgghAiAHKAIMIQMgBygCECEEIAcoAhQhBSAHKAIYIQggBygCHCEJIAcoAiAhCiAHKAIkIQsgBygCKCEMIAcoAiwhDSAHKAIwIQ4gBygCNCEPIAcoAjghECAHKAI8IREgBygCQCEHCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwAiC0EgayIKJAALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCADRQRAIAUhCwwCC0EAIQ1BACEIIAUhCwsDQCMBRQRAIAggC0siCQ0FIAUgC0kiCQ0GIAIgDWohDCADIA1rIQ4gBCAIaiEPIApBEGohCSALIAhrIRALIAZFQQEjARsEQCAJIAEgDCAOIA8gEBBlQQAjAUEBRg0PGgsjAUUEQCAKLQAcQQRGIgkNAiANIAooAhBqIglBAmohDSAJQX1LDQcgAyANSQ0IIAooAhQgCGohDiAKQQhqIAEgAiAJaiIQEKQBIAooAgwhDCAKKAIIIggNAyAMIAxBfnEiCEcNCSAMIAkgDGoiCEsNCiADIAhJDQsgDiAMQQF2Qf////8BcSIPaiIIIA9JDQwgBSAISQ0NIApBEGohESAEIA5qIQcLIAZBAUZBASMBGwRAIBEgASAQIAwgByAPEGVBASMBQQFGDQ8aCyMBRQRAIAotABwiDEEERyIQDQQgCyAPakEBayELIAMgDUsiCQ0BCwsLIwFFBEAgAEEEOgAMIAAgCzYCAAwMCwsjAUUEQCAAQQM6AAwgACAJNgIAIAAgDq0gCSAMaq1CIIaENwIEDAsLCyMBRQRAIAooAhghASAAIAw6AAwgACAJNgIAIAAgDq0gASAJaq1CIIaENwIEDAoLCyAGQQJGQQEjARsEQCAIIAtBzKQEEPABQQIjAUEBRg0KGgsjAUUEQAALCyAGQQNGQQEjARsEQCALIAVBzKQEEO8BQQMjAUEBRg0JGgsjAUUEQAALCyAGQQRGQQEjARsEQCAJIA1B3KQEEPABQQQjAUEBRg0IGgsjAUUEQAALCyAGQQVGQQEjARsEQCANIANB3KQEEO8BQQUjAUEBRg0HGgsjAUUEQAALCyMBRQRAIApBADoAFCAKIAg2AhAgCkEQaiEACyAGQQZGQQEjARsEQEHQoQVBKyAAQcSjBEHspAQQlwFBBiMBQQFGDQYaCyMBRQRAAAsLIAZBB0ZBASMBGwRAIAkgCEH8pAQQ8AFBByMBQQFGDQUaCyMBRQRAAAsLIAZBCEZBASMBGwRAIAggA0H8pAQQ7wFBCCMBQQFGDQQaCyMBRQRAAAsLIAZBCUZBASMBGwRAIA4gCEGMpQQQ8AFBCSMBQQFGDQMaCyMBRQRAAAsLIAZBCkZBASMBGwRAIAggBUGMpQQQ7wFBCiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgCkEgaiQACw8LIQYjAigCACAGNgIAIwIjAigCAEEEajYCACMCKAIAIgYgADYCACAGIAE2AgQgBiACNgIIIAYgAzYCDCAGIAQ2AhAgBiAFNgIUIAYgCDYCGCAGIAk2AhwgBiAKNgIgIAYgCzYCJCAGIAw2AiggBiANNgIsIAYgDjYCMCAGIA82AjQgBiAQNgI4IAYgETYCPCAGIAc2AkAjAiMCKAIAQcQAajYCAAuTCgEMfyMBQQJGBEAjAiMCKAIAQcQAazYCACMCKAIAIgcoAgAhACAHKAIEIQEgBygCCCECIAcoAgwhAyAHKAIQIQQgBygCFCEFIAcoAhghCCAHKAIcIQkgBygCICEKIAcoAiQhCyAHKAIoIQwgBygCLCENIAcoAjAhDiAHKAI0IQ8gBygCOCEQIAcoAjwhESAHKAJAIQcLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjACILQSBrIgokAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIANFBEAgBSELDAILQQAhDUEAIQggBSELCwNAIwFFBEAgCCALSyIJDQUgBSALSSIJDQYgAiANaiEMIAMgDWshDiAEIAhqIQ8gCkEQaiEJIAsgCGshEAsgBkVBASMBGwRAIAkgASAMIA4gDyAQEGRBACMBQQFGDQ8aCyMBRQRAIAotABxBBEYiCQ0CIA0gCigCEGoiCUECaiENIAlBfUsNByADIA1JDQggCigCFCAIaiEOIApBCGogASACIAlqIhAQpAEgCigCDCEMIAooAggiCA0DIAwgDEF+cSIIRw0JIAwgCSAMaiIISw0KIAMgCEkNCyAOIAxBAXZB/////wFxIg9qIgggD0kNDCAFIAhJDQ0gCkEQaiERIAQgDmohBwsgBkEBRkEBIwEbBEAgESABIBAgDCAHIA8QZEEBIwFBAUYNDxoLIwFFBEAgCi0AHCIMQQRHIhANBCALIA9qQQFrIQsgAyANSyIJDQELCwsjAUUEQCAAQQQ6AAwgACALNgIADAwLCyMBRQRAIABBAzoADCAAIAk2AgAgACAOrSAJIAxqrUIghoQ3AgQMCwsLIwFFBEAgCigCGCEBIAAgDDoADCAAIAk2AgAgACAOrSABIAlqrUIghoQ3AgQMCgsLIAZBAkZBASMBGwRAIAggC0HMpAQQ8AFBAiMBQQFGDQoaCyMBRQRAAAsLIAZBA0ZBASMBGwRAIAsgBUHMpAQQ7wFBAyMBQQFGDQkaCyMBRQRAAAsLIAZBBEZBASMBGwRAIAkgDUHcpAQQ8AFBBCMBQQFGDQgaCyMBRQRAAAsLIAZBBUZBASMBGwRAIA0gA0HcpAQQ7wFBBSMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgCkEAOgAUIAogCDYCECAKQRBqIQALIAZBBkZBASMBGwRAQdChBUErIABBxKMEQeykBBCXAUEGIwFBAUYNBhoLIwFFBEAACwsgBkEHRkEBIwEbBEAgCSAIQfykBBDwAUEHIwFBAUYNBRoLIwFFBEAACwsgBkEIRkEBIwEbBEAgCCADQfykBBDvAUEIIwFBAUYNBBoLIwFFBEAACwsgBkEJRkEBIwEbBEAgDiAIQYylBBDwAUEJIwFBAUYNAxoLIwFFBEAACwsgBkEKRkEBIwEbBEAgCCAFQYylBBDvAUEKIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAKQSBqJAALDwshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAU2AhQgBiAINgIYIAYgCTYCHCAGIAo2AiAgBiALNgIkIAYgDDYCKCAGIA02AiwgBiAONgIwIAYgDzYCNCAGIBA2AjggBiARNgI8IAYgBzYCQCMCIwIoAgBBxABqNgIAC5MKAQx/IwFBAkYEQCMCIwIoAgBBxABrNgIAIwIoAgAiBygCACEAIAcoAgQhASAHKAIIIQIgBygCDCEDIAcoAhAhBCAHKAIUIQUgBygCGCEIIAcoAhwhCSAHKAIgIQogBygCJCELIAcoAighDCAHKAIsIQ0gBygCMCEOIAcoAjQhDyAHKAI4IRAgBygCPCERIAcoAkAhBwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBgsjAUUEQCMAIgtBIGsiCiQACwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgA0UEQCAFIQsMAgtBACENQQAhCCAFIQsLA0AjAUUEQCAIIAtLIgkNBSAFIAtJIgkNBiACIA1qIQwgAyANayEOIAQgCGohDyAKQRBqIQkgCyAIayEQCyAGRUEBIwEbBEAgCSABIAwgDiAPIBAQZ0EAIwFBAUYNDxoLIwFFBEAgCi0AHEEERiIJDQIgDSAKKAIQaiIJQQRqIQ0gCUF7Sw0HIAMgDUkNCCAKKAIUIAhqIQ4gCkEIaiABIAIgCWoiEBCgASAKKAIMIQwgCigCCCIIDQMgDCAMQXxxIghHDQkgDCAJIAxqIghLDQogAyAISQ0LIA4gDEECdkH/////AXEiD2oiCCAPSQ0MIAUgCEkNDSAKQRBqIREgBCAOaiEHCyAGQQFGQQEjARsEQCARIAEgECAMIAcgDxBnQQEjAUEBRg0PGgsjAUUEQCAKLQAcIgxBBEciEA0EIAsgD2pBAWshCyADIA1LIgkNAQsLCyMBRQRAIABBBDoADCAAIAs2AgAMDAsLIwFFBEAgAEEDOgAMIAAgCTYCACAAIA6tIAkgDGqtQiCGhDcCBAwLCwsjAUUEQCAKKAIYIQEgACAMOgAMIAAgCTYCACAAIA6tIAEgCWqtQiCGhDcCBAwKCwsgBkECRkEBIwEbBEAgCCALQcykBBDwAUECIwFBAUYNChoLIwFFBEAACwsgBkEDRkEBIwEbBEAgCyAFQcykBBDvAUEDIwFBAUYNCRoLIwFFBEAACwsgBkEERkEBIwEbBEAgCSANQdykBBDwAUEEIwFBAUYNCBoLIwFFBEAACwsgBkEFRkEBIwEbBEAgDSADQdykBBDvAUEFIwFBAUYNBxoLIwFFBEAACwsjAUUEQCAKQQA6ABQgCiAINgIQIApBEGohAAsgBkEGRkEBIwEbBEBB0KEFQSsgAEHEowRB7KQEEJcBQQYjAUEBRg0GGgsjAUUEQAALCyAGQQdGQQEjARsEQCAJIAhB/KQEEPABQQcjAUEBRg0FGgsjAUUEQAALCyAGQQhGQQEjARsEQCAIIANB/KQEEO8BQQgjAUEBRg0EGgsjAUUEQAALCyAGQQlGQQEjARsEQCAOIAhBjKUEEPABQQkjAUEBRg0DGgsjAUUEQAALCyAGQQpGQQEjARsEQCAIIAVBjKUEEO8BQQojAUEBRg0CGgsjAUUEQAALCyMBRQRAIApBIGokAAsPCyEGIwIoAgAgBjYCACMCIwIoAgBBBGo2AgAjAigCACIGIAA2AgAgBiABNgIEIAYgAjYCCCAGIAM2AgwgBiAENgIQIAYgBTYCFCAGIAg2AhggBiAJNgIcIAYgCjYCICAGIAs2AiQgBiAMNgIoIAYgDTYCLCAGIA42AjAgBiAPNgI0IAYgEDYCOCAGIBE2AjwgBiAHNgJAIwIjAigCAEHEAGo2AgALkwoBDH8jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIHKAIAIQAgBygCBCEBIAcoAgghAiAHKAIMIQMgBygCECEEIAcoAhQhBSAHKAIYIQggBygCHCEJIAcoAiAhCiAHKAIkIQsgBygCKCEMIAcoAiwhDSAHKAIwIQ4gBygCNCEPIAcoAjghECAHKAI8IREgBygCQCEHCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwAiC0EgayIKJAALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCADRQRAIAUhCwwCC0EAIQ1BACEIIAUhCwsDQCMBRQRAIAggC0siCQ0FIAUgC0kiCQ0GIAIgDWohDCADIA1rIQ4gBCAIaiEPIApBEGohCSALIAhrIRALIAZFQQEjARsEQCAJIAEgDCAOIA8gEBBmQQAjAUEBRg0PGgsjAUUEQCAKLQAcQQRGIgkNAiANIAooAhBqIglBBGohDSAJQXtLDQcgAyANSQ0IIAooAhQgCGohDiAKQQhqIAEgAiAJaiIQEKABIAooAgwhDCAKKAIIIggNAyAMIAxBfHEiCEcNCSAMIAkgDGoiCEsNCiADIAhJDQsgDiAMQQJ2Qf////8BcSIPaiIIIA9JDQwgBSAISQ0NIApBEGohESAEIA5qIQcLIAZBAUZBASMBGwRAIBEgASAQIAwgByAPEGZBASMBQQFGDQ8aCyMBRQRAIAotABwiDEEERyIQDQQgCyAPakEBayELIAMgDUsiCQ0BCwsLIwFFBEAgAEEEOgAMIAAgCzYCAAwMCwsjAUUEQCAAQQM6AAwgACAJNgIAIAAgDq0gCSAMaq1CIIaENwIEDAsLCyMBRQRAIAooAhghASAAIAw6AAwgACAJNgIAIAAgDq0gASAJaq1CIIaENwIEDAoLCyAGQQJGQQEjARsEQCAIIAtBzKQEEPABQQIjAUEBRg0KGgsjAUUEQAALCyAGQQNGQQEjARsEQCALIAVBzKQEEO8BQQMjAUEBRg0JGgsjAUUEQAALCyAGQQRGQQEjARsEQCAJIA1B3KQEEPABQQQjAUEBRg0IGgsjAUUEQAALCyAGQQVGQQEjARsEQCANIANB3KQEEO8BQQUjAUEBRg0HGgsjAUUEQAALCyMBRQRAIApBADoAFCAKIAg2AhAgCkEQaiEACyAGQQZGQQEjARsEQEHQoQVBKyAAQcSjBEHspAQQlwFBBiMBQQFGDQYaCyMBRQRAAAsLIAZBB0ZBASMBGwRAIAkgCEH8pAQQ8AFBByMBQQFGDQUaCyMBRQRAAAsLIAZBCEZBASMBGwRAIAggA0H8pAQQ7wFBCCMBQQFGDQQaCyMBRQRAAAsLIAZBCUZBASMBGwRAIA4gCEGMpQQQ8AFBCSMBQQFGDQMaCyMBRQRAAAsLIAZBCkZBASMBGwRAIAggBUGMpQQQ7wFBCiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgCkEgaiQACw8LIQYjAigCACAGNgIAIwIjAigCAEEEajYCACMCKAIAIgYgADYCACAGIAE2AgQgBiACNgIIIAYgAzYCDCAGIAQ2AhAgBiAFNgIUIAYgCDYCGCAGIAk2AhwgBiAKNgIgIAYgCzYCJCAGIAw2AiggBiANNgIsIAYgDjYCMCAGIA82AjQgBiAQNgI4IAYgETYCPCAGIAc2AkAjAiMCKAIAQcQAajYCAAuMCgEMfyMBQQJGBEAjAiMCKAIAQcQAazYCACMCKAIAIgcoAgAhACAHKAIEIQEgBygCCCECIAcoAgwhAyAHKAIQIQQgBygCFCEFIAcoAhghCCAHKAIcIQkgBygCICEKIAcoAiQhCyAHKAIoIQwgBygCLCENIAcoAjAhDiAHKAI0IQ8gBygCOCEQIAcoAjwhESAHKAJAIQcLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjACILQSBrIgokAAsCQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIANFBEAgBSELDAILQQAhDUEAIQggBSELCwNAIwFFBEAgCCALSyIJDQUgBSALSSIJDQYgAiANaiEMIAMgDWshDiAEIAhqIQ8gCkEQaiEJIAsgCGshEAsgBkVBASMBGwRAIAkgASAMIA4gDyAQEGlBACMBQQFGDQ8aCyMBRQRAIAotABxBBEYiCQ0CIA0gCigCEGoiCUEIaiENIAlBd0sNByADIA1JDQggCigCFCAIaiEOIApBCGogASACIAlqIhAQoQEgCigCDCEMIAooAggiCA0DIAwgDEF4cSIIRw0JIAwgCSAMaiIISw0KIAMgCEkNCyAOIAxBA3YiD2oiCCAPSQ0MIAUgCEkNDSAKQRBqIREgBCAOaiEHCyAGQQFGQQEjARsEQCARIAEgECAMIAcgDxBpQQEjAUEBRg0PGgsjAUUEQCAKLQAcIgxBBEciEA0EIAsgD2pBAWshCyADIA1LIgkNAQsLCyMBRQRAIABBBDoADCAAIAs2AgAMDAsLIwFFBEAgAEEDOgAMIAAgCTYCACAAIA6tIAkgDGqtQiCGhDcCBAwLCwsjAUUEQCAKKAIYIQEgACAMOgAMIAAgCTYCACAAIA6tIAEgCWqtQiCGhDcCBAwKCwsgBkECRkEBIwEbBEAgCCALQcykBBDwAUECIwFBAUYNChoLIwFFBEAACwsgBkEDRkEBIwEbBEAgCyAFQcykBBDvAUEDIwFBAUYNCRoLIwFFBEAACwsgBkEERkEBIwEbBEAgCSANQdykBBDwAUEEIwFBAUYNCBoLIwFFBEAACwsgBkEFRkEBIwEbBEAgDSADQdykBBDvAUEFIwFBAUYNBxoLIwFFBEAACwsjAUUEQCAKQQA6ABQgCiAINgIQIApBEGohAAsgBkEGRkEBIwEbBEBB0KEFQSsgAEHEowRB7KQEEJcBQQYjAUEBRg0GGgsjAUUEQAALCyAGQQdGQQEjARsEQCAJIAhB/KQEEPABQQcjAUEBRg0FGgsjAUUEQAALCyAGQQhGQQEjARsEQCAIIANB/KQEEO8BQQgjAUEBRg0EGgsjAUUEQAALCyAGQQlGQQEjARsEQCAOIAhBjKUEEPABQQkjAUEBRg0DGgsjAUUEQAALCyAGQQpGQQEjARsEQCAIIAVBjKUEEO8BQQojAUEBRg0CGgsjAUUEQAALCyMBRQRAIApBIGokAAsPCyEGIwIoAgAgBjYCACMCIwIoAgBBBGo2AgAjAigCACIGIAA2AgAgBiABNgIEIAYgAjYCCCAGIAM2AgwgBiAENgIQIAYgBTYCFCAGIAg2AhggBiAJNgIcIAYgCjYCICAGIAs2AiQgBiAMNgIoIAYgDTYCLCAGIA42AjAgBiAPNgI0IAYgEDYCOCAGIBE2AjwgBiAHNgJAIwIjAigCAEHEAGo2AgALjAoBDH8jAUECRgRAIwIjAigCAEHEAGs2AgAjAigCACIHKAIAIQAgBygCBCEBIAcoAgghAiAHKAIMIQMgBygCECEEIAcoAhQhBSAHKAIYIQggBygCHCEJIAcoAiAhCiAHKAIkIQsgBygCKCEMIAcoAiwhDSAHKAIwIQ4gBygCNCEPIAcoAjghECAHKAI8IREgBygCQCEHCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwAiC0EgayIKJAALAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCADRQRAIAUhCwwCC0EAIQ1BACEIIAUhCwsDQCMBRQRAIAggC0siCQ0FIAUgC0kiCQ0GIAIgDWohDCADIA1rIQ4gBCAIaiEPIApBEGohCSALIAhrIRALIAZFQQEjARsEQCAJIAEgDCAOIA8gEBBoQQAjAUEBRg0PGgsjAUUEQCAKLQAcQQRGIgkNAiANIAooAhBqIglBCGohDSAJQXdLDQcgAyANSQ0IIAooAhQgCGohDiAKQQhqIAEgAiAJaiIQEKEBIAooAgwhDCAKKAIIIggNAyAMIAxBeHEiCEcNCSAMIAkgDGoiCEsNCiADIAhJDQsgDiAMQQN2Ig9qIgggD0kNDCAFIAhJDQ0gCkEQaiERIAQgDmohBwsgBkEBRkEBIwEbBEAgESABIBAgDCAHIA8QaEEBIwFBAUYNDxoLIwFFBEAgCi0AHCIMQQRHIhANBCALIA9qQQFrIQsgAyANSyIJDQELCwsjAUUEQCAAQQQ6AAwgACALNgIADAwLCyMBRQRAIABBAzoADCAAIAk2AgAgACAOrSAJIAxqrUIghoQ3AgQMCwsLIwFFBEAgCigCGCEBIAAgDDoADCAAIAk2AgAgACAOrSABIAlqrUIghoQ3AgQMCgsLIAZBAkZBASMBGwRAIAggC0HMpAQQ8AFBAiMBQQFGDQoaCyMBRQRAAAsLIAZBA0ZBASMBGwRAIAsgBUHMpAQQ7wFBAyMBQQFGDQkaCyMBRQRAAAsLIAZBBEZBASMBGwRAIAkgDUHcpAQQ8AFBBCMBQQFGDQgaCyMBRQRAAAsLIAZBBUZBASMBGwRAIA0gA0HcpAQQ7wFBBSMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgCkEAOgAUIAogCDYCECAKQRBqIQALIAZBBkZBASMBGwRAQdChBUErIABBxKMEQeykBBCXAUEGIwFBAUYNBhoLIwFFBEAACwsgBkEHRkEBIwEbBEAgCSAIQfykBBDwAUEHIwFBAUYNBRoLIwFFBEAACwsgBkEIRkEBIwEbBEAgCCADQfykBBDvAUEIIwFBAUYNBBoLIwFFBEAACwsgBkEJRkEBIwEbBEAgDiAIQYylBBDwAUEJIwFBAUYNAxoLIwFFBEAACwsgBkEKRkEBIwEbBEAgCCAFQYylBBDvAUEKIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAKQSBqJAALDwshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAU2AhQgBiAINgIYIAYgCTYCHCAGIAo2AiAgBiALNgIkIAYgDDYCKCAGIA02AiwgBiAONgIwIAYgDzYCNCAGIBA2AjggBiARNgI8IAYgBzYCQCMCIwIoAgBBxABqNgIAC/AFAQd/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIBKAIAIQAgASgCCCEEIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQTBrIgQkACABKAIEIgJFIQMLAkACQCMBRQRAAkACQAJAAkACQAJAIANFBEAgASgCACEGIAJBAWtB/////wFxIgJBAWoiA0EHcSEHAn8gAkEHSQRAQQAhAyAGDAELIAZBPGohAiADQfj///8DcSEIQQAhAwNAIAIoAgAgAkEIaygCACACQRBrKAIAIAJBGGsoAgAgAkEgaygCACACQShrKAIAIAJBMGsoAgAgAkE4aygCACADampqampqamohAyACQUBrIQIgCEEIayIIDQALIAJBPGsLIQIgBwRAIAJBBGohAgNAIAIoAgAgA2ohAyACQQhqIQIgB0EBayIHDQALCyABQRRqKAIADQEgAyECDAQLQQAhAiABQRRqKAIARQ0BQQAhAwwCCyAGKAIEIANBEE9yDQEMAwtBASEDDAMLIAMgAyADaiICSw0BCyACRQ0AIAJBf0wNAyACEA4iAw0BAAtBASEDQQAhAgsgAEEANgIIIAAgAjYCBCAAIAM2AgAgBCAANgIMIARBIGogAUEQaikCADcDACAEQRhqIAFBCGopAgA3AwAgBCABKQIANwMQIARBEGohASAEQQxqIQALIAVFQQEjARsEQCAAQcyCBCABECtBACMBQQFGDQMaIQALIwFFBEAgAEUNAiAEQShqIQALIAVBAUZBASMBGwRAQayDBEEzIABB4IMEQYiEBBCXAUEBIwFBAUYNAxoLIwFFBEAACwsgBUECRkEBIwEbBEAQywFBAiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgBEEwaiQACw8LIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyAENgIIIwIjAigCAEEMajYCAAvWBgEGfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBB8ABrIgIkACABQRRqKAIAIgNFIQULAkAjAUUEQCAFDQEgASADQQFrIgM2AhQgAkEwaiIFIAEoAgwgA0EkbGoiAUEMaikCADcDACACQThqIgMgAUEUaikCADcDACACQUBrIgcgAUEcaikCADcDACACIAEpAgQ3AyggASgCACIBRSEGCwJAIwFFBEAgBg0BIAJBHGogBykDADcCACACQQxqIAUpAwA3AgAgAkEUaiADKQMANwIAIAIgATYCACACIAIpAyg3AgQgAkEgaigCAEUhAQsCQAJAIwFFBEAgAQ0BIAJBCTYCXCACIAJBGGo2AlggAkEBNgI8IAJCATcCLCACQaieBTYCKCACIAJB2ABqNgI4IAJBKGohAyACQcgAaiEBCyAERUEBIwEbBEAgASADEDtBACMBQQFGDQUaCyMBRQ0BCyMBRQRAIAJBADYCUCACQgE3A0gLCyMBRQRAIAJB7ABqQQk2AgAgAkHkAGpBCTYCACACQQk2AlwgAiACQQxqNgJgIAIgAkHIAGo2AmggAiACNgJYIAJBAzYCPCACQgM3AiwgAkGwngU2AiggAiACQdgAajYCOCACQShqIQELIARBAUZBASMBGwRAIAAgARA7QQEjAUEBRg0DGgsjAUUEQCACKAJMBEAgAigCSBAhCyACKAIEBEAgAigCABAhCyACQRBqKAIABEAgAigCDBAhCyACQRxqKAIABEAgAigCGBAhCyACQfAAaiQADwsLIARBAkZBASMBGwRAQZCjBUErQZSeBRC7AUECIwFBAUYNAhoLIwFFBEAACwsjAUUEQCACQRRqQQA2AgAgAkGsogU2AhAgAkIBNwIEIAJBkJ0FNgIACyAEQQNGQQEjARsEQCACQYSeBRDMAUEDIwFBAUYNARoLIwFFBEAACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCMCIwIoAgBBEGo2AgALhgcBBH8jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBSABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIAZFQQEjARsEQCABEMcBQQAjAUEBRg0BGiEDCyADIANBAWsjARshAwJ/AkACQAJAAkACQAJAAkACQAJAAkAjAUUEQAJAIAMOBgcGBQQDAgALCyAGQQFGQQEjARsEQEH8pgRBDkGMpwQQuwFBASMBQQFGDQwaCyMBRQRAAAsLIAZBAkZBASMBGwRAIAEQyAFBAiMBQQFGDQsaIQMLIwFFBEAgA0H/AXFFBEAgAkEGbCIDQQN2IQUgAiADQQZxQQZuawwLCyACQQJ2QQNsIQUgAkF8cQwKCwsgBkEDRkEBIwEbBEAgARDIAUEDIwFBAUYNChohAwsjAUUEQCADQf8BcUUiAw0IIAJBA3ZBBWwhBSACQXhxDAkLCyAGQQRGQQEjARsEQCABEMgBQQQjAUEBRg0JGiEDCyMBRQRAIANB/wFxRSIDDQYgAkEBdiEFIAJBfnEMCAsLIAZBBUZBASMBGwRAIAEQyAFBBSMBQQFGDQgaIQMLIwFFBEAgA0H/AXFFIgMNBCACQQN2QQNsIQUgAkF4cQwHCwsgBkEGRkEBIwEbBEAgARDIAUEGIwFBAUYNBxohAwsjAUUEQCADQf8BcUUiAw0CIAJBAnYhBSACQXxxDAYLCyAGQQdGQQEjARsEQCABEMgBQQcjAUEBRg0GGiEDCyMBRQRAIANB/wFxBEAgAkEDdiEFIAJBeHEMBgsgAkEDdiEFIAJBeHEMBQsLIwFFBEAgAkECdkH/////AXEhBSACQXxxDAQLCyMBRQRAIAJBA2wiA0EDdiEFIAIgA0EHcUEDbmsMAwsLIwFFBEAgAkEBdkH/////AXEhBSACQX5xDAILCyMBBH8gAwUgAkEFbCIDQQN2IQUgAiADQQdxQQVuawsLIQMjAUUEQCABQQhqKAIAQYIETUEAIAIgA0cbRQRAIABBBDoABCAAIAU2AgAPCyAAQQA6AAQgACADNgIACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCAEIAU2AhAjAiMCKAIAQRRqNgIAC/MHAgN/AX4jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKQIUIQYgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBEGsiAyQAIAJBEEkhBAsCQAJAAkACQAJAAkACQCMBRQRAIAQNASACQYCABEkiBA0CIANBCGohBAsgBUVBASMBGwRAIAQgAUEjEKUBQQAjAUEBRg0IGgsjAUUEQCADLQAIQQRGIgQNAyADKQMIIgZC/wGDQgRRIgQNAyADIAY3AwggA0EIaiEBCyAFQQFGQQEjARsEQCAAIAEQlAFBASMBQQFGDQgaCyMBRQ0GCyMBRQRAIANBCGohBCACQQh0QQFyIQILIAVBAkZBASMBGwRAIAQgASACEKUBQQIjAUEBRg0HGgsjAUUEQCADLQAIQQRGIgENAyADKQMIIgZC/wGDQgRRIgENAyADIAY3AwggA0EIaiEBCyAFQQNGQQEjARsEQCAAIAEQlAFBAyMBQQFGDQcaCyMBRQ0FCyAEIANBCGojARshBCAFQQRGQQEjARsEQCAEIAFBIhClAUEEIwFBAUYNBhoLIwFFBEAgAy0ACEEERwRAIAMpAwgiBkL/AYNCBFINBQsgAyACQQh0IAJBgP4DcUEIdnI7AQQgA0EEaiEEIANBCGohAgsgBUEFRkEBIwEbBEAgAiABIARBAhBeQQUjAUEBRg0GGgsjAUUEQCADLQAIQQRGIgENAiADKQMIIgZC/wGDQgRRIgENAiADIAY3AwggA0EIaiEBCyAFQQZGQQEjARsEQCAAIAEQlAFBBiMBQQFGDQYaCyMBRQ0ECyMBRQRAIAMgAkEIdkGA/gNxIAJBGHZyIAJBCHRBgID8B3EgAkEYdHJyNgIEIANBBGohBCADQQhqIQILIAVBB0ZBASMBGwRAIAIgASAEQQQQXkEHIwFBAUYNBRoLIwFFBEAgAy0ACEEERiIBDQEgAykDCCIGQv8Bg0IEUiIBDQILCyMBRQRAIABBETYCAAwDCwsjAUUEQCADIAY3AwggA0EIaiEBCyAFQQhGQQEjARsEQCAAIAEQlAFBCCMBQQFGDQMaCyMBRQ0BCyMBRQRAIAMgBjcDCCADQQhqIQELIAVBCUZBASMBGwRAIAAgARCUAUEJIwFBAUYNAhoLCyMBRQRAIANBEGokAAsPCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAENgIQIAUgBjcCFCMCIwIoAgBBHGo2AgAL8wcCA38BfiMBQQJGBEAjAiMCKAIAQRxrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCECEEIAEpAhQhBiABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEEQayIDJAAgAkEQSSEECwJAAkACQAJAAkACQAJAIwFFBEAgBA0BIAJBgIAESSIEDQIgA0EIaiEECyAFRUEBIwEbBEAgBCABQSEQpQFBACMBQQFGDQgaCyMBRQRAIAMtAAhBBEYiBA0DIAMpAwgiBkL/AYNCBFEiBA0DIAMgBjcDCCADQQhqIQELIAVBAUZBASMBGwRAIAAgARCUAUEBIwFBAUYNCBoLIwFFDQYLIwFFBEAgA0EIaiEEIAJBCHRBAnIhAgsgBUECRkEBIwEbBEAgBCABIAIQpQFBAiMBQQFGDQcaCyMBRQRAIAMtAAhBBEYiAQ0DIAMpAwgiBkL/AYNCBFEiAQ0DIAMgBjcDCCADQQhqIQELIAVBA0ZBASMBGwRAIAAgARCUAUEDIwFBAUYNBxoLIwFFDQULIAQgA0EIaiMBGyEEIAVBBEZBASMBGwRAIAQgAUEgEKUBQQQjAUEBRg0GGgsjAUUEQCADLQAIQQRHBEAgAykDCCIGQv8Bg0IEUg0FCyADIAJBCHQgAkGA/gNxQQh2cjsBBCADQQRqIQQgA0EIaiECCyAFQQVGQQEjARsEQCACIAEgBEECEF5BBSMBQQFGDQYaCyMBRQRAIAMtAAhBBEYiAQ0CIAMpAwgiBkL/AYNCBFEiAQ0CIAMgBjcDCCADQQhqIQELIAVBBkZBASMBGwRAIAAgARCUAUEGIwFBAUYNBhoLIwFFDQQLIwFFBEAgAyACQQh2QYD+A3EgAkEYdnIgAkEIdEGAgPwHcSACQRh0cnI2AgQgA0EEaiEEIANBCGohAgsgBUEHRkEBIwEbBEAgAiABIARBBBBeQQcjAUEBRg0FGgsjAUUEQCADLQAIQQRGIgENASADKQMIIgZC/wGDQgRSIgENAgsLIwFFBEAgAEERNgIADAMLCyMBRQRAIAMgBjcDCCADQQhqIQELIAVBCEZBASMBGwRAIAAgARCUAUEIIwFBAUYNAxoLIwFFDQELIwFFBEAgAyAGNwMIIANBCGohAQsgBUEJRkEBIwEbBEAgACABEJQBQQkjAUEBRg0CGgsLIwFFBEAgA0EQaiQACw8LIQUjAigCACAFNgIAIwIjAigCAEEEajYCACMCKAIAIgUgADYCACAFIAE2AgQgBSACNgIIIAUgAzYCDCAFIAQ2AhAgBSAGNwIUIwIjAigCAEEcajYCAAuHBgEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEECdiIJQQFqIQxBfCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBA2wiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQRqQQQgCkEDEIYBIApBA2ohCiAHQQRqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBfHEiCiADaiAEQQNxIAUgB2ogBiAHaxCGASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEGbCIKQQZxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQZxdEF/c0EGIAprQQZxdHENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F8cTYCACAAIAdBAnZBA2w2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBfHE2AgAgACAHQQJ2QQNsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAuHBgEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEEDdiIJQQFqIQxBeCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBBWwiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQhqQQggCkEFEIcBIApBBWohCiAHQQhqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBeHEiCiADaiAEQQdxIAUgB2ogBiAHaxCHASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEFbCIKQQdxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQdxdEF/c0EFIAprQQdxdHENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F4cTYCACAAIAdBA3ZBBWw2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBeHE2AgAgACAHQQN2QQVsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAuHBgEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEEDdiIJQQFqIQxBeCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBA2wiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQhqQQggCkEDEIkBIApBA2ohCiAHQQhqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBeHEiCiADaiAEQQdxIAUgB2ogBiAHaxCJASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEDbCIKQQdxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQdxdEF/c0EDIAprQQdxdHENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F4cTYCACAAIAdBA3ZBA2w2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBeHE2AgAgACAHQQN2QQNsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAu2BQEGfyMBQQJGBEAjAiMCKAIAQRRrNgIAIwIoAgAiAigCACEBIAIoAgQhAyACKAIIIQQgAigCDCEFIAIoAhAhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBgsjAUUEQCAAQQt0IQJBACEBQSAhBEEgIQUCQAJAA0ACQEF/IAIgASAEQQF2aiIDQQJ0QfCcBGooAgBBC3QiBEcgAiAESxsiBEEBRgRAIAMhBQwBCyAEQf8BcUH/AUcNAiADQQFqIQELIAUgAWshBCABIAVJDQALDAELIANBAWohAQsgAUEfSyEDCwJAAkACQCMBRQRAIAMNASABQQJ0IQJBwwUhBSABQR9HBEAgAkH0nARqKAIAQRV2IQULQQAhBCABQQFrIgMgAU0EQCADQSBPIgENAyADQQJ0QfCcBGooAgBB////AHEhBAsgBSACQfCcBGooAgBBFXYiAUF/c2pFDQMgACAEayEEIAFBwwUgAUHDBUsiABshAiAFQQFrIQNBACEFCwNAIAAgASACRiMBGyEAAkAjAUUEQCAARQRAIAUgAUHwnQRqLQAAaiIFIARNDQIMBgsLIAZFQQEjARsEQCACQcMFQbSjBBCiAUEAIwFBAUYNBhoLIwFFBEAACwsjAUUEQCABQQFqIgEgA0ciAA0BCwsjAUUEQCADIQEMAwsLIAZBAUZBASMBGwRAIAFBIEG0owQQogFBASMBQQFGDQMaCyMBRQRAAAsLIAZBAkZBASMBGwRAIANBIEHgnAQQogFBAiMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgAUEBcQ8LAAshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAiACABNgIAIAAgAzYCBCAAIAQ2AgggACAFNgIMIAAgAjYCECMCIwIoAgBBFGo2AgBBAAvEBwEJfyMBQQJGBEAjAiMCKAIAQSRrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQQgASgCECEFIAEoAhQhCiABKAIYIQcgASgCHCEIIAEoAiAhCSABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAgASgCGCEHIAFBHGooAgAiASgCECEIQQEhAgsgBkVBASMBGwRAIAdBJyAIEQAAQQAjAUEBRg0BGiEBCwJAIwFFBEAgAQ0BQTAhBCAAKAIAIQJBgoDEACEBCwJAAkACQAJAAkACQCMBRQRAAkACQCACDigIAQEBAQEBAQEDBQEBBAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEHAAsgAkHcAEYiAA0GCwsgBkEBRkEBIwEbBEAgAhBDQQEjAUEBRg0IGiEACyMBRQRAIABFIgANBCACQQFyZ0ECdiIAQQdzIQQgAiEBDAYLCyMBRQRAQfQAIQQMBQsLIwFFBEBB8gAhBAwECwsjAUUEQEHuACEEDAMLCyABQYGAxAAjARshASAGQQJGQQEjARsEQCACEGtBAiMBQQFGDQQaIQALIwFFBEAgAA0BIAJBAXJnQQJ2IgBBB3MhBCACIQEMAgsLIAQgAiMBGyEECyAFQQUjARshBQNAIwFFBEAgBSEJQdwAIQIgASIAQYCAxABrIgFBAyABQQNJGyEKQYGAxAAhAQsCQAJAAkAjAUUEQAJAAkACQCAKQQFrDgMBBgACC0EAIQVB/QAhAiAAIQECQAJAAkAgCUH/AXEiCkEBaw4FCAYAAQIEC0ECIQVB+wAhAgwGC0EDIQVB9QAhAgwFC0EEIQVB3AAhAgwEC0GAgMQAIQEgCSEFIAQiAkGAgMQARyIADQQLCyAGQQNGQQEjARsEQCAHQScgCBEAAEEDIwFBAUYNBhohAgsjAUUNBAsjAUUEQCAJQQEgBBshBUEwQdcAIAAgBEECdHZBD3EiAUEKSRshAiABIAJqIQIgBEEBayIBQQAgBBshBAsLIAEgACMBGyEBCyAGQQRGQQEjARsEQCAHIAIgCBEAAEEEIwFBAUYNAxohAAsjAUUEQCAARSIADQELCyMBRQRAQQEPCwsjAUUEQCACDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAQ2AgwgAyAFNgIQIAMgCjYCFCADIAc2AhggAyAINgIcIAMgCTYCICMCIwIoAgBBJGo2AgBBAAv+BQEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEECdiIJQQFqIQxBfCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBA2wiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQRqQQQgCkEDEIIBIApBA2ohCiAHQQRqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBfHEiCiADaiAEQQNxIAUgB2ogBiAHaxCCASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEGbCIKQQZxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQZxdEF/c3ENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F8cTYCACAAIAdBAnZBA2w2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBfHE2AgAgACAHQQJ2QQNsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAv+BQEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEEDdiIJQQFqIQxBeCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBBWwiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQhqQQggCkEFEIMBIApBBWohCiAHQQhqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBeHEiCiADaiAEQQdxIAUgB2ogBiAHaxCDASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEFbCIKQQdxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQdxdEF/c3ENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F4cTYCACAAIAdBA3ZBBWw2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBeHE2AgAgACAHQQN2QQVsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAv+BQEHfyMBQQJGBEAjAiMCKAIAQTRrNgIAIwIoAgAiCSgCACEAIAkoAgQhASAJKAIIIQIgCSgCDCEDIAkoAhAhBCAJKAIUIQUgCSgCGCEGIAkoAhwhByAJKAIgIQogCSgCJCELIAkoAighDCAJKAIsIQ0gCSgCMCEJCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEICyMBRQRAIwAiDUEQayILJAAgBEEDdiIJQQFqIQxBeCEHIAUhCgsCQAJAAkADQCAMIAxBAWsjARshDAJAIwFFBEAgDA0BIAlBA2wiByAGTSINDQMLIAhFQQEjARsEQCAHIAZBrKQEEO4BQQAjAUEBRg0GGgsjAUUEQAALCyMBRQRAIAtBCGogAiADIAdqQQhqQQggCkEDEIQBIApBA2ohCiAHQQhqIg0hByALKAIIRQ0BCwsjAUUEQCANIAsoAgxqIQcMAgsLIwFFBEAgCyACIARBeHEiCiADaiAEQQdxIAUgB2ogBiAHaxCEASALKAIABEAgCiALKAIEaiEHDAILAkACQAJAIAFFDQAgBEEDbCIKQQdxRQ0AIARBAWshByAERQ0CIAIgAyAHai0AAGotAABBfyAKQQdxdEF/c3ENAQsgAEEEOgAMIAAgBjYCAAwECyAAQQI6AAwgACAHNgIIIAAgB0F4cTYCACAAIAdBA3ZBA2w2AgQMAwsLIAhBAUZBASMBGwRAIAdBAEG8pAQQogFBASMBQQFGDQMaCyMBRQRAAAsLIwFFBEAgAEEBOgAMIAAgBzYCCCAAIAdBeHE2AgAgACAHQQN2QQNsNgIECwsjAUUEQCALQRBqJAALDwshCCMCKAIAIAg2AgAjAiMCKAIAQQRqNgIAIwIoAgAiCCAANgIAIAggATYCBCAIIAI2AgggCCADNgIMIAggBDYCECAIIAU2AhQgCCAGNgIYIAggBzYCHCAIIAo2AiAgCCALNgIkIAggDDYCKCAIIA02AiwgCCAJNgIwIwIjAigCAEE0ajYCAAuABgEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBQGoiAiQAIAAtAAAhAwsCQAJAAkACQAJAIwFFBEACQCADQQFrDgMCAwQACyACIAAoAgQ2AgRBFBAOIgBFDQUgAEEQakHFsAUoAAA2AAAgAEEIakG9sAUpAAA3AAAgAEG1sAUpAAA3AAAgAkKUgICAwAI3AgwgAiAANgIIIAJBJGpBDTYCACACQQ42AhwgAUEcaigCACEAIAIgAkEEajYCICACIAJBCGo2AhggASgCGCEBIAJBAjYCPCACQgM3AiwgAkH0qgU2AiggAiACQRhqNgI4IAJBKGohAwsgBUVBASMBGwRAIAEgACADECtBACMBQQFGDQYaIQALIwFFBEAgAigCDEUNBCACKAIIECEMBAsLIwFFBEAgAC0AASEAIAJBAzYCDCACIABBIHNBP3FBAnQiAEGotAVqKAIANgIcIAIgAEGotgVqKAIANgIYIAFBHGooAgAhACACIAJBGGo2AgggASgCGCEBIAJBATYCPCACQgE3AiwgAkGopAU2AiggAiACQQhqNgI4IAJBKGohAwsgBUEBRkEBIwEbBEAgASAAIAMQK0EBIwFBAUYNBRohAAsjAUUNAgsjAUUEQCAAKAIEIgAoAgAhAyAAKAIEIQALIAVBAkZBASMBGwRAIAEgAyAAEBNBAiMBQQFGDQQaIQALIwFFDQELIwFFBEAgACgCBCIAKAIAIQMgAEEEaigCACgCECEACyAFQQNGQQEjARsEQCADIAEgABEAAEEDIwFBAUYNAxohAAsLIwFFBEAgAkFAayQAIAAPCwsjAUUEQAALAAshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIwIjAigCAEEQajYCAEEAC+0EAgd/A34jAUECRgRAIwIjAigCAEEYazYCACMCKAIAIgIoAgAhACACKAIEIQMgAigCDCEEIAIpAhAhCSACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQgLIwFFBEAjAEEQayIEJAAgBEEIakEAOwEAIARCADcDACABKAIAIQYgASgCBCEDQQAhAgsCQAJ/AkAjAUUEQANAIAIhBSACQQpGBEAgAEEBNgIAIABChAI3AgQMBQsgA0EARyECIAQgBWohByADRQRAIAcgBiACEPgBGiABQQA2AgQgASACIAZqNgIAIABCgcoANwIEDAMLIAcgBiwAACIHOgAAIAEgAyACayIDNgIEIAEgAiAGaiIGNgIAIAVBAWohAiAHQQBIDQALQQAhAyAFQQFqIQULAkAjAUUEQAJAA0AgAyAFRgRAQgQhCQwECyALIAMgBGotAAAiAUH/AHGtIAqGIgmEIQsgAUEYdEEYdSIBQX9KDQEgA0EBaiEDIApCB3wiCkLGAFINAAtChAIhCQwCCyABRQRAQoQEIQkgCkIAUg0CCyACIANBAWoiA08EQCAAIAs3AwhBAAwECwsgCEVBASMBGwRAIAMgAkGohAUQ7gFBACMBQQFGDQUaCyMBRQRAAAsLIwFFBEAgACAJNwIECwsgA0EBIwEbCyEBIwFFBEAgACABNgIACwsjAUUEQCAEQRBqJAALDwshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAiASAANgIAIAEgAzYCBCABIAI2AgggASAENgIMIAEgCTcCECMCIwIoAgBBGGo2AgALhQYBDH8jAUECRgRAIwIjAigCAEE0azYCACMCKAIAIgMoAgAhACADKAIIIQIgAygCDCEEIAMoAhAhBSADKAIUIQYgAygCGCEHIAMoAhwhCCADKAIgIQkgAygCJCEKIAMoAighCyADKAIsIQwgAygCMCENIAMoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhDgsjAUUEQCMAQRBrIgQkACABQRRqAn9BACABKAIAIgVBAkYiBw0AGiACRQRAIAEoAgRBACAFGwwBCyABQQxqKAIAQQAgASgCCCIFGwshCigCACELIAEoAhAhDCABLQAwIQggBEEANgIIIARCBDcDACABQSBqKAIAIQYgASgCGCECCyAORUEBIwEbBEAgBEEAEHRBACMBQQFGDQEaCyMBRQRAIAQoAgAiCSAEKAIIIgNBA3RqIgcgBjYCBCAHIAI2AgAgBCADQQFqIgI2AgggASgCJCIGRSEFCwJAIwFFBEAgBQ0BIAFBLGooAgAiAUUiBQ0BIAYgAUEMbCIBaiEHCwNAIwFFBEAgBigCACEFIAQoAgQgAkchDSAGQQhqKAIAIQELIwFFQQAgDRtFBEAgDkEBRkEBIwEbBEAgBCACEHRBASMBQQFGDQQaCyMBBH8gAgUgBCgCACEJIAQoAggLIQILIwFFBEAgCSACQQN0aiICIAE2AgQgAiAFNgIAIAQgBCgCCEEBaiICNgIIIAcgBkEMaiIGRyIBDQELCwsjAUUEQCAAIAQpAwA3AgggACAKNgIEIAAgC0GIJyAMGzYCACAAQRBqIARBCGooAgA2AgAgACAIIAhBAkdxOgAUIARBEGokAAsPCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAQ2AgwgAyAFNgIQIAMgBjYCFCADIAc2AhggAyAINgIcIAMgCTYCICADIAo2AiQgAyALNgIoIAMgDDYCLCADIA02AjAjAiMCKAIAQTRqNgIAC8oIAgl/An4jAUECRgRAIwIjAigCAEEwazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQcgASgCGCEIIAEoAhwhBiABKAIgIQkgASgCJCEKIAEoAighDCABKAIsIQ0gASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACELCyMBRQRAIwBBQGoiCCQAIAAtAAQhB0EBIQkLAkAjAUUEQCAHDQEgACgCACIHKAIAIgpBBHEhCSAALQAFIQYLAkAjAUUEQCAJDQFBASEJIAcoAhghCkG5hgRBu4YEIAZB/wFxIgYbIQwgB0EcaigCACgCDCENQQJBAyAGGyEGCyALRUEBIwEbBEAgCiAMIAYgDREBAEEAIwFBAUYNAxohBgsjAUUEQCAGDQJBASEJIAcoAhwoAgwhCiAHKAIYIQYLIAtBAUZBASMBGwRAIAYgASACIAoRAQBBASMBQQFGDQMaIQELIwFFBEAgAQ0CQQEhCSAHKAIcKAIMIQIgBygCGCEBCyALQQJGQQEjARsEQCABQcurBUECIAIRAQBBAiMBQQFGDQMaIQELIwFFBEAgAQ0CIAQoAgwhAQsgC0EDRkEBIwEbBEAgAyAHIAERAABBAyMBQQFGDQMaIQkLIwFFDQELIAkgBkH/AXEjARshCQJAIwFFBEAgCQ0BQQEhCSAHQRxqKAIAKAIMIQogBygCGCEGCyALQQRGQQEjARsEQCAGQbSGBEEDIAoRAQBBBCMBQQFGDQMaIQYLIwFFBEAgBg0CIAcoAgAhCgsLIwFFBEAgCEEBOgAXIAhBNGpBmIYENgIAIAggCjYCGCAIIAcpAhg3AwggCCAIQRdqNgIQIAcpAgghDiAHKQIQIQ8gCCAHLQAgOgA4IAggBygCBDYCHCAIIA83AyggCCAONwMgIAggCEEIajYCMCAIQQhqIQdBASEJCyALQQVGQQEjARsEQCAHIAEgAhAsQQUjAUEBRg0CGiEBCyMBRQRAIAENASAIQQhqIQELIAtBBkZBASMBGwRAIAFBy6sFQQIQLEEGIwFBAUYNAhohAQsjAUUEQCABDQEgBCgCDCECIAhBGGohAQsgC0EHRkEBIwEbBEAgAyABIAIRAABBByMBQQFGDQIaIQELIwFFBEAgAQ0BIAgoAjQoAgwhAiAIKAIwIQELIAtBCEZBASMBGwRAIAFBt4YEQQIgAhEBAEEIIwFBAUYNAhohCQsLIwFFBEAgAEEBOgAFIAAgCToABCAIQUBrJAAgAA8LAAshBSMCKAIAIAU2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBSAANgIAIAUgATYCBCAFIAI2AgggBSADNgIMIAUgBDYCECAFIAc2AhQgBSAINgIYIAUgBjYCHCAFIAk2AiAgBSAKNgIkIAUgDDYCKCAFIA02AiwjAiMCKAIAQTBqNgIAQQALlQUBB38jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgcoAgAhACAHKAIEIQIgBygCCCEEIAcoAgwhBSAHKAIQIQYgBygCFCEIIAcoAhghBwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCQsjAUUEQCACQQF0IAFqIQsgAEGA/gNxIgJBCHYhDCAAQf8BcSENQQAhCAsCQAJAAkAjAUUEQANAIAFBAmohCiAIIAEtAAEiAmohByABLQAAIgEgDEcEQCABIAxLDQQgByEIIAsgCiIBRyICDQEMBAsgByAITwRAIAQgB0kNAyADIAhqIQECQANAIAJFDQEgAkEBayECIAEtAAAgAUEBaiEBIA1HDQALQQAhAgwGCyAHIQggCyAKIgFHIgINAQwECwsLIAlFQQEjARsEQCAIIAdBrJEEEPABQQAjAUEBRg0EGgsjAUUEQAALCyAJQQFGQQEjARsEQCAHIARBrJEEEO8BQQEjAUEBRg0DGgsjAUUEQAALCyMBRQRAIABB//8DcSEIIAUgBmohB0EBIQICQANAAn8gBUEBaiIDIAUtAAAiAUEYdEEYdSIKQQBODQAaIAMgB0YNAiAFLQABIApB/wBxQQh0ciEBIAVBAmoLIQUgCCABayIIQQBIDQMgAkEBcyECIAUgB0cNAAsMAgsLIAlBAkZBASMBGwRAQZCjBUErQbyRBBC7AUECIwFBAUYNAhoLIwFFBEAACwsjAUUEQCACQQFxDwsACyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACIBIAA2AgAgASACNgIEIAEgBDYCCCABIAU2AgwgASAGNgIQIAEgCDYCFCABIAc2AhgjAiMCKAIAQRxqNgIAQQAL/wcBC38jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgIoAgAhACACKAIIIQMgAigCDCEEIAIoAhAhByACKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQkLIwFFBEAjAEEQayIEJAAgAUGAAUkhAyAAKAIAIQALAkACfwJAIwFFQQAjAUUEQCADRQRAIARBADYCDCABQYAQTyIDDQIgBCABQT9xQYABciIDOgANIAQgAUEGdkHAAXI6AAxBAgwDCyAAKAIIIgMgACgCBEchBwsgBxtFBEAgCUVBASMBGwRAIAAhCCADIQIjAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCgsjAUUEQCMAQSBrIgUkACACQQFqIgJFIQYLAkAjAUUEQAJAIAYNACAIQQRqKAIAIgtBAXQiDCACSyEGIAwgAiAGGyIGQQhLIQIgBkEIIAIbIgZBf3NBH3YhAgJAIAsEQCAFQQE2AhggBSALNgIUIAUgCCgCADYCEAwBCyAFQQA2AhgLIAUgBiACIAVBEGoQjwEgBSgCAEUEQCAIIAUoAgQ2AgAgCEEEaiAGNgIADAMLIAVBCGooAgAiAkGBgICAeEYNAiACRQ0AAAsLIApFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAFQSBqJAALDAELIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIAU2AgAjAiMCKAIAQQRqNgIAC0EAIwFBAUYNBRoLIwEEfyADBSAAKAIICyEDCyMBRQRAIAAgA0EBajYCCCADIAAoAgBqIAE6AAAMAwsLIwEEfyABBSABQYCABE8EQCAEIAFBP3FBgAFyOgAPIAQgAUEGdkE/cUGAAXI6AA4gBCABQQx2QT9xQYABciIDOgANIAQgAUESdkEHcUHwAXI6AAxBBAwCCyAEIAFBP3FBgAFyOgAOIAQgAUEMdkHgAXIiAzoADCAEIAFBBnZBP3FBgAFyOgANQQMLCyEBIwFFQQAjAQR/IAcFIABBBGooAgAgACgCCCIDayABTwsbRQRAIAlBAUZBASMBGwRAIAAgAyABEHhBASMBQQFGDQMaCyMBBH8gAwUgACgCCAshAwsjAUUEQCAAKAIAIANqIARBDGogARD4ARogACABIANqNgIICwsjAUUEQCAEQRBqJABBAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM2AgggAiAENgIMIAIgBzYCECMCIwIoAgBBFGo2AgBBAAv2BQEIfyMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiAygCACEAIAMoAgghAiADKAIMIQQgAygCECEFIAMoAhQhBiADKAIYIQcgAygCHCEIIAMoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCQsjAUUEQCMAIgRBIGsiBSQACwJAAkACQCMBRQRAIAJFBEAgAEEANgIIIABCATcCAAwCCyABQQxqIQggAkEMbCIKQQxrQQxuIQcgASEECwJAIwFFBEADQCAKRSIGDQIgCkEMayEKIAcgByAEKAIIaiIGTSAEQQxqIQQgBiEHDQALCyAJRUEBIwEbBEBBnJsFQTVBrJwFEPEBQQAjAUEBRg0FGgsjAUUEQAALCyAEIAVBCGojARshBCAJQQFGQQEjARsEQCAEIAcQygFBASMBQQFGDQQaCyMBRQRAIAVBADYCGCAFIAUpAwg3AxAgBUEQaiEEIAEoAgAhBiABKAIIIQELIAlBAkZBASMBGwRAIAQgBiABEL8BQQIjAUEBRg0EGgsjAUUEQCAHIAUoAhgiA2shBCACQQFHBEAgAyAFKAIQaiEGIAJBDGxBDGshCgNAIARFDQQgBkEKOgAAIARBAWsiBCAIQQhqKAIAIgNJDQUgBCADayEEIAZBAWogCCgCACADEPgBIANqIQYgCEEMaiEIIApBDGsiCg0ACwsgACAFKQMQNwIAIABBCGogByAEazYCAAsLIwFFBEAgBUEgaiQADwsLIAlBA0ZBASMBGwRAQcyiBUEjQZycBRC7AUEDIwFBAUYNAhoLIwFFBEAACwsgCUEERkEBIwEbBEBBzKIFQSNBnJwFELsBQQQjAUEBRg0BGgsjAUUEQAALDwshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAENgIMIAMgBTYCECADIAY2AhQgAyAHNgIYIAMgCDYCHCMCIwIoAgBBIGo2AgAL/AYBBn8jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQYgASgCGCEIIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkAEHUuAUoAgBB/////wdxRSEECwJAAkAjAUUEQCAERQRAEPoBRQ0CC0HMuAUoAgAhBEHMuAVBfzYCAAsCQCMBRQRAIAQNAUHQuAVBpJYFNgIAQcy4BUEANgIAIANBEGohBAsgB0VBASMBGwRAIAQgABDKAUEAIwFBAUYNBBoLIwFFBEAgA0EIaiEGIAMoAhAhBAsgB0EBRkEBIwEbBEAgBiABEMoBQQEjAUEBRg0EGgsjAUUEQCADKAIIIQYLIAdBAkZBASMBGwRAIAQgBhABQQIjAUEBRg0EGgsgCCAAQQdGIwEbIQgCQAJAAkAjAUUEQCAIDQEgAEENRw0CIARBhv8EQQ0Q+QENAiADIAE2AiwgAyABNgIoIAMgBjYCJCADQo2AgIDQATcCHCADIAQ2AhggA0EYaiEACyAHQQNGQQEjARsEQCAAIAJBERBvQQMjAUEBRg0HGiEACyMBRQ0FCyMBRQRAIARBoYAFQQcQ+QFFDQILCyMBRQRAIAMgATYCLCADIAE2AiggAyAGNgIkIAMgADYCICADIAA2AhwgAyAENgIYIANBGGohAAsgB0EERkEBIwEbBEAgACACQQAQb0EEIwFBAUYNBRohAAsjAUUNAwsjAUUEQCADIAE2AiwgAyABNgIoIAMgBjYCJCADQoeAgIDwADcCHCADIAQ2AhggA0EYaiEACyAHQQVGQQEjARsEQCAAIAJBEhBvQQUjAUEBRg0EGiEACyMBRQ0CCyMBRQRAAAsLIwFFBEAgA0EsakEANgIAIANBrKIFNgIoIANCATcCHCADQaSvBTYCGCADQRhqIQALIAdBBkZBASMBGwRAIABByK8FEMwBQQYjAUEBRg0CGgsjAUUEQAALCyMBRQRAIANBMGokACAADwsACyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAENgIQIAUgBjYCFCAFIAg2AhgjAiMCKAIAQRxqNgIAQQAL0QQBAn8jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgYoAgAhACAGKAIEIQQgBigCCCEFIAYoAgwhBgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQfAAayIGJAAgBiABNgIMIAYgADYCCCAGIAM2AhQgBiACNgIQIAZBAjYCHCAGQYiFBDYCGCAEKAIAIQALAkAjAUUEQCAADQEgBkHMAGpBAjYCACAGQcQAakECNgIAIAZB7ABqQQM2AgAgBkIENwJcIAZB6IUENgJYIAZBAzYCPCAGIAZBOGo2AmggBiAGQRBqNgJIIAYgBkEIajYCQCAGIAZBGGo2AjggBkHYAGohAAsgB0VBASMBGwRAIAAgBRDMAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAGQTBqIARBEGopAgA3AwAgBkEoaiAEQQhqKQIANwMAIAYgBCkCADcDICAGQewAakEENgIAIAZB1ABqQQU2AgAgBkHMAGpBAjYCACAGQcQAakECNgIAIAZCBDcCXCAGQcSFBDYCWCAGQQM2AjwgBiAGQThqNgJoIAYgBkEgajYCUCAGIAZBEGo2AkggBiAGQQhqNgJAIAYgBkEYajYCOCAGQdgAaiEACyAHQQFGQQEjARsEQCAAIAUQzAFBASMBQQFGDQEaCyMBRQRAAAsPCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACIBIAA2AgAgASAENgIEIAEgBTYCCCABIAY2AgwjAiMCKAIAQRBqNgIAC5IFAgV/AX4jAUECRgRAIwIjAigCAEEgazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBSABKAIUIQYgASkCGCEHIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUUEQCMAQRBrIgIkACACQQA2AgQCfyABQYABTwRAIAFBgBBPBEAgAUGAgARPBEAgAiABQT9xQYABcjoAByACIAFBBnZBP3FBgAFyOgAGIAIgAUEMdkE/cUGAAXI6AAUgAiABQRJ2QQdxQfABcjoABEEEDAMLIAIgAUE/cUGAAXI6AAYgAiABQQx2QeABcjoABCACIAFBBnZBP3FBgAFyOgAFQQMMAgsgAiABQT9xQYABcjoABSACIAFBBnZBwAFyOgAEQQIMAQsgAiABOgAEQQELIQEgACgCACgCACEGIAJBBGohBSACQQhqIQMLIARFQQEjARsEQCADIAYgBSABEB1BACMBQQFGDQEaCyMBRQRAIAItAAgiAUEERiEDCwJAIwFFBEAgAw0BIAIpAwghByAALQAEQQNHIQMLAkAjAUUEQCADDQEgAEEIaigCACIDKAIAIQYgAygCBCgCACEFCyAEQQFGQQEjARsEQCAGIAURBABBASMBQQFGDQMaCyMBRQRAIAMoAgRBBGooAgAEQCADKAIAECELIAMQIQsLIwFFBEAgACAHNwIECwsjAUUEQCACQRBqJAAgAUEERw8LAAshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIAQgBTYCECAEIAY2AhQgBCAHNwIYIwIjAigCAEEgajYCAEEAC50EAgZ/AX4jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgIoAgAhASACKAIIIQMgAigCDCEEIAIoAhAhBiACKAIEIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEEwayIGJABBJyEDAkAgAEKQzgBUBEAgACEJDAELA0AgAyAGQQlqaiIEQQRrIABCkM4AgCIJQvCxA34gAHynIgdB//8DcUHkAG4iCEEBdEH6hgRqLwAAOwAAIARBAmsgCEGcf2wgB2pB//8DcUEBdEH6hgRqLwAAOwAAIANBBGshAyAAQv/B1y9WIAkhAA0ACwsgCaciBEHjAEsEQCAJpyIHQf//A3FB5ABuIgRBnH9sIQggA0ECayIDIAZBCWpqIAcgCGpB//8DcUEBdEH6hgRqLwAAOwAACwJAIARBCk8EQCADQQJrIgMgBkEJamogBEEBdEH6hgRqLwAAOwAADAELIANBAWsiAyAGQQlqaiAEQTBqOgAACyADIAZBCWpqIQRBJyADayEDCyAFRUEBIwEbBEAgAiABQayiBUEAIAQgAxAoQQAjAUEBRg0BGiEDCyMBRQRAIAZBMGokACADDwsACyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAE2AgAgBSACNgIEIAUgAzYCCCAFIAQ2AgwgBSAGNgIQIwIjAigCAEEUajYCAEEAC8cFAgR/AX4jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgQoAgAhACAEKAIEIQEgBCgCCCECIAQoAgwhAyAEKAIQIQQLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEHwAGsiAyQAQRsQDiIERSEGCwJAIwFFBEAgBg0BIARBF2pB05wFKAAANgAAIARBEGpBzJwFKQAANwAAIARBCGpBxJwFKQAANwAAIARBvJwFKQAANwAAQS4QDiIGRQ0BIAZB3/QEQS4Q+AEhBiAEECEgA0EANgJcIANCBDcCVCADQq6AgIDgBTcCTCADIAY2AkggA0HIAGohBAsgBUVBASMBGwRAIAMgASACIAQQWkEAIwFBAUYNAhoLIAQgA0EwaiMBGyEEIAVBAUZBASMBGwRAIARB+IUFQQNBmvUEQQdBpYIFQRcQbEEBIwFBAUYNAhoLIAEgA0HIAGojARshASAFQQJGQQEjARsEQCABIAMQHEECIwFBAUYNAhoLIwFFBEAgAygCSCICQRZHIQELAkACQCMBRQRAIAENASADQegAaiADQdQAaigCACICNgIAIAMgAykCTCIHNwNgIABBDGogAjYCACAAIAc3AgQgA0HIAGohAQsgBUEDRkEBIwEbBEAgASAEEDxBAyMBQQFGDQQaCyMBRQRAIAMoAkwEQCADKAJIECELIABBFjYCAAwCCwsjAUUEQCADQegAaiADQdQAaigCACIBNgIAIAMgAykCTCIHNwNgIABBDGogATYCACAAIAc3AgQgACACNgIACwsjAUUEQCADENIBIANB8ABqJAAPCwsjAUUEQAALDwshBSMCKAIAIAU2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBSAANgIAIAUgATYCBCAFIAI2AgggBSADNgIMIAUgBDYCECMCIwIoAgBBFGo2AgAL4AYCBX8CfiMBQQJGBEAjAiMCKAIAQSxrNgIAIwIoAgAiBigCACEAIAYoAgQhASAGKAIIIQIgBigCDCEDIAYoAhAhBCAGKAIUIQcgBigCGCEIIAYpAhwhCiAGKAIkIQkgBigCKCEGCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBEGsiByQAQdS4BUHUuAUoAgAiAkEBajYCAEGwvAVBsLwFKAIAQQFqIgk2AgAgAkEASCECCwJAAkAjAUUEQCACIAlBAktyDQFBzLgFKAIAIgJBf0wNAUHMuAUgAkEBaiICNgIAQdC4BSgCAEUhCAsCQCMBRQRAIAgNASAHQQhqIQIgASgCECEBCyAFRUEBIwEbBEAgAiAAIAERAgBBACMBQQFGDQQaCyMBRQRAIAcoAgghAiAHKAIMIgAoAgwhAQsgACAFQQFGQQEjARsEQCACIAERCQBBASMBQQFGDQQaIQoLIApCyIX5pJ631NsSUiMBGyEAAkACQAJ/IwFFBEAgAkEIaiAARQ0BGgsgBUECRkEBIwEbBEAgAiABEQkAQQIjAUEBRg0HGiEKCyMBBH8gAQUgCkLrkZO19tizovQAUiIADQIgAkEEagsLIQEjAUUEQCACKAIAIQggASgCACEBCyAFQQNGQQEjARsEQCAHIAEQygFBAyMBQQFGDQYaCyMBRQRAIAcoAgQhACAHKAIAIgIgCCABEPgBIQcMAgsLIwFFBEBBDSEAQQ0QDiICRQ0DIAJBBWpBwZYFKQAANwAAIAJBvJYFKQAANwAAQQ0hAQsLIwFFBEAgAygCACEHIAMoAgQhCCADKAIIIQYgAygCDCEDCyAFQQRGQQEjARsEQCACIAEgByAIIAYgAxAFQQQjAUEBRg0EGgsjAUUEQCAABEAgAhAhC0HMuAUoAgAhAgsLIwFFBEBBzLgFIAJBAWs2AgAgCUEBSw0BIAQNAgsLIwFFBEAACwsjAUUEQAALDwshBSMCKAIAIAU2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBSAANgIAIAUgATYCBCAFIAI2AgggBSADNgIMIAUgBDYCECAFIAc2AhQgBSAINgIYIAUgCjcCHCAFIAk2AiQgBSAGNgIoIwIjAigCAEEsajYCAAunBQIFfwF+IwFBAkYEQCMCIwIoAgBBGGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhBCABKQIQIQcgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBgAFrIgQkACABKAIAIgJBEHEhAwsCQAJAAkACQAJAIwFFBEAgAw0BIAJBIHEiAg0CIACtIQcLIAVFQQEjARsEQCAHQQEgARBSQQAjAUEBRg0GGiEACyMBRQ0ECyMBRQRAQQAhAgNAQTBB1wAgAEEPcSIDQQpJGyEGIAIgBGpB/wBqIAMgBmo6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAJBgAFqIgBBgQFPDQIgAiAEakGAAWohAEEAIAJrIQILIAVBAUZBASMBGwRAIAFBAUH4hgRBAiAAIAIQKEEBIwFBAUYNBRohAAsjAUUNAwsjAUUEQEEAIQIDQEEwQTcgAEEPcSIDQQpJGyEGIAIgBGpB/wBqIAMgBmo6AAAgAkEBayECIABBD0sgAEEEdiEADQALIAJBgAFqIgBBgQFPDQIgAiAEakGAAWohAEEAIAJrIQILIAVBAkZBASMBGwRAIAFBAUH4hgRBAiAAIAIQKEECIwFBAUYNBBohAAsjAUUNAgsgBUEDRkEBIwEbBEAgAEGAAUHohgQQ7gFBAyMBQQFGDQMaCyMBRQRAAAsLIAVBBEZBASMBGwRAIABBgAFB6IYEEO4BQQQjAUEBRg0CGgsjAUUEQAALCyMBRQRAIARBgAFqJAAgAA8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAENgIMIAMgBzcCECMCIwIoAgBBGGo2AgBBAAvkBQEHfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQMgAigCDCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBEGsiAyQAIAFBgAFJIQIgACgCACEACwJAAn8CQCMBRUEAIwEEf0EABSACRQRAIANBADYCDCABQYAQTyICDQIgAyABQT9xQYABciICOgANIAMgAUEGdkHAAXI6AAxBAgwDCyAAKAIIIgIgACgCBEcLG0UEQCAFRUEBIwEbBEAgACEEIAIhCAJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEEQayIHJAAgB0EIaiAEIAhBARB6AkAgBygCDCIEQYGAgIB4RwRAIARFDQEACyAHQRBqJAAMAwsLIAZFQQEjARsEQBDLAUEAIwFBAUYNARoLIwFFBEAACwwBCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgALQQAjAUEBRg0FGgsjAQR/IAIFIAAoAggLIQILIwFFBEAgACgCACACaiABOgAAIAAgACgCCEEBajYCCAwDCwsjAQR/IAEFIAFBgIAETwRAIAMgAUE/cUGAAXI6AA8gAyABQQZ2QT9xQYABcjoADiADIAFBDHZBP3FBgAFyIgI6AA0gAyABQRJ2QQdxQfABcjoADEEEDAILIAMgAUE/cUGAAXI6AA4gAyABQQx2QeABciICOgAMIAMgAUEGdkE/cUGAAXI6AA1BAwsLIQEjAUUEQCADQQxqIQIgA0EMaiABaiEBCyAFQQFGQQEjARsEQCAAIAIgARC5AUEBIwFBAUYNAhoLCyMBRQRAIANBEGokAEEADwsACyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAzYCCCAEIAI2AgwjAiMCKAIAQRBqNgIAQQALrQIBBH9BHyECIABCADcCECABQf///wdNBEAgAUEGIAFBCHZnIgNrdkEBcSADQQF0a0E+aiECCyAAIAI2AhwgAkECdEHwugVqIQQCQAJAAkACQEHkuAUoAgAiBUEBIAJ0IgNxBEAgBCgCACIDKAIEQXhxIAFHDQEgAyECDAILQeS4BSADIAVyNgIAIAQgADYCACAAIAQ2AhgMAwsgAUEAQRkgAkEBdmtBH3EgAkEfRht0IQQDQCADIARBHXZBBHFqQRBqIgUoAgAiAkUNAiAEQQF0IQQgAiEDIAIoAgRBeHEgAUcNAAsLIAIoAggiASAANgIMIAIgADYCCCAAQQA2AhggACACNgIMIAAgATYCCA8LIAUgADYCACAAIAM2AhgLIAAgADYCDCAAIAA2AggLsAIBBX8gACgCGCEEAkACQCAAIAAoAgwiAUYEQEEUQRAgAEEUaiIBKAIAIgMbIABqKAIAIgINAUEAIQEMAgsgACgCCCICIAE2AgwgASACNgIIDAELIAEgAEEQaiADGyEDA0AgAyEFIAIiAUEUaiIDKAIAIgJFBEAgAUEQaiEDIAEoAhAhAgsgAg0ACyAFQQA2AgALAkAgBEUNAAJAIAAgACgCHEECdEHwugVqIgIoAgBHBEAgBEEQQRQgBCgCECAARhtqIAE2AgAgAQ0BDAILIAIgATYCACABDQBB5LgFQeS4BSgCAEF+IAAoAhx3cTYCAA8LIAEgBDYCGCAAKAIQIgIEQCABIAI2AhAgAiABNgIYCyAAQRRqKAIAIgBFDQAgAUEUaiAANgIAIAAgATYCGAsLzwUBB38jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhACADKAIIIQIgAygCDCEEIAMoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQRBrIgQkACABQYABSSECCwJAAn8CQCMBRUEAIwEEf0EABSACRQRAIARBADYCDCABQYAQTyICDQIgBCABQT9xQYABciICOgANIAQgAUEGdkHAAXI6AAxBAgwDCyAAKAIIIgIgACgCBEcLG0UEQCAFRUEBIwEbBEAgACEIIAIhAwJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEEQayIHJAAgB0EIaiAIIANBARB5AkAgBygCDCIDQYGAgIB4RwRAIANFDQEACyAHQRBqJAAMAwsLIAZFQQEjARsEQBDLAUEAIwFBAUYNARoLIwFFBEAACwwBCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgALQQAjAUEBRg0FGgsjAQR/IAIFIAAoAggLIQILIwFFBEAgACACQQFqNgIIIAIgACgCAGogAToAAAwDCwsjAQR/IAEFIAFBgIAETwRAIAQgAUE/cUGAAXI6AA8gBCABQQZ2QT9xQYABcjoADiAEIAFBDHZBP3FBgAFyIgI6AA0gBCABQRJ2QQdxQfABcjoADEEEDAILIAQgAUE/cUGAAXI6AA4gBCABQQx2QeABciICOgAMIAQgAUEGdkE/cUGAAXI6AA1BAwsLIQEgAiAEQQxqIwEbIQIgBUEBRkEBIwEbBEAgACACIAEQvwFBASMBQQFGDQIaCwsjAUUEQCAEQRBqJABBAA8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAENgIMIwIjAigCAEEQajYCAEEAC64FAQZ/IwFBAkYEQCMCIwIoAgBBJGs2AgAjAigCACIGKAIAIQAgBigCBCEBIAYoAgghAiAGKAIMIQMgBigCECEEIAYoAhQhByAGKAIYIQggBigCHCEJIAYoAiAhBgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQdAAayIEJAAgBEEQaiEIIAMoAgAhByADQQhqIgYoAgAhCQsgBUVBASMBGwRAIAggByAJELMBQQAjAUEBRg0BGgsjAUUEQCAEQRxqIQggA0EMaigCACEHIANBFGooAgAhCQsgBUEBRkEBIwEbBEAgCCAHIAkQXEEBIwFBAUYNARoLIwFFBEAgBEE4aiIIIANBEGopAgA3AwAgBEEwaiIHIAYpAgA3AwAgBCADKQIANwMoIARBCGohAwsgBUECRkEBIwEbBEAgAyACEMoBQQIjAUEBRg0BGgsjAUUEQCAEKAIMIQMgBCgCCCABIAIQ+AEhAQsCQCMBRQRAIAENASAEIAI2AkQgBCADNgJAIARBQGshAAsgBUEDRkEBIwEbBEBBtIYFQR4gAEGkhgVByIcFEJcBQQMjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAAgAjYCECAAIAM2AgwgACABNgIIIABCADcDACAAIAQpAyg3AhggAEEgaiAHKQMANwIAIABBKGogCCkDADcCACAAQUBrIARBIGopAwA3AgAgAEE4aiAEQRhqKQMANwIAIAAgBCkDEDcCMCAEQdAAaiQACw8LIQUjAigCACAFNgIAIwIjAigCAEEEajYCACMCKAIAIgUgADYCACAFIAE2AgQgBSACNgIIIAUgAzYCDCAFIAQ2AhAgBSAHNgIUIAUgCDYCGCAFIAk2AhwgBSAGNgIgIwIjAigCAEEkajYCAAuBBQEIfyMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiAygCACEAIAMoAgghAiADKAIMIQQgAygCECEFIAMoAhQhBiADKAIYIQcgAygCHCEIIAMoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCgsjAUUEQCMAQSBrIgUkACACQQN0IQkgAUEIaiEIQQAhByABIQQLAkAjAUUEQANAIAlFIgYNAiAJQQhrIQkgByAHIAQoAgRqIgZNIARBCGohBCAGIQcNAAsLIApFQQEjARsEQEGcmwVBNUGsnAUQ8QFBACMBQQFGDQIaCyMBRQRAAAsLIAQgBUEIaiMBGyEEIApBAUZBASMBGwRAIAQgBxDKAUEBIwFBAUYNARoLIwFFBEAgBUEANgIYIAUgBSkDCDcDECAFQRBqIQQgASgCACEGIAEoAgQhAQsgCkECRkEBIwEbBEAgBCAGIAEQvwFBAiMBQQFGDQEaCyMBRQRAIAJBA3RBCGshBiAFKAIYIgQgBSgCEGohCSAHIARrIQQCQANAIAhBBGooAgAiAyAESw0BIAQgA2shBCAJIAgoAgAgAxD4ASADaiEJIAhBCGohCCAGQQhrIgYNAAsgACAFKQMQNwIAIABBCGogByAEazYCACAFQSBqJAAPCwsgCkEDRkEBIwEbBEBBzKIFQSNBnJwFELsBQQMjAUEBRg0BGgsjAUUEQAALDwshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAENgIMIAMgBTYCECADIAY2AhQgAyAHNgIYIAMgCDYCHCMCIwIoAgBBIGo2AgALvwUBCn8jAUECRgRAIwIjAigCAEEwazYCACMCKAIAIgQoAgAhACAEKAIEIQEgBCgCCCECIAQoAgwhBiAEKAIQIQcgBCgCFCEIIAQoAhghBSAEKAIcIQkgBCgCICEKIAQoAiQhCyAEKAIoIQwgBCgCLCEECwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwAiCUEwayIIJAALAkACQAJAIwFFBEAgAkUEQCAAQgQ3AgAMAgsgAkHj8bgcSw0CIAJBJGwiB0EASA0CIAcEfyAHEA4FIAJB5PG4HElBAnQLIgpFDQMgACACNgIEIAAgCjYCACACQSRsIQcgCEEgaiELIAhBFGohDCACIQkLA0AjAUUEQCAHRQ0CIAEoAgAhBSAIQQhqIQYgAUEIaigCACEECyADRUEBIwEbBEAgBiAFIAQQswFBACMBQQFGDQUaCyMBRQRAIAFBDGooAgAhBiABQRRqKAIAIQULIANBAUZBASMBGwRAIAwgBiAFELMBQQEjAUEBRg0FGgsjAUUEQCABQRhqKAIAIQYgAUEgaigCACEFCyADQQJGQQEjARsEQCALIAYgBRCzAUECIwFBAUYNBRoLIwFFBEAgCiAIQQhqIgZBJBD4AUEkaiEKIAdBJGshByABQSRqIQEgCUEBayIJDQELCwsjAUUEQCAAIAI2AgggCEEwaiQADwsLIANBA0ZBASMBGwRAEMsBQQMjAUEBRg0CGgsjAUUEQAALCyMBRQRAAAsPCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAY2AgwgAyAHNgIQIAMgCDYCFCADIAU2AhggAyAJNgIcIAMgCjYCICADIAs2AiQgAyAMNgIoIAMgBDYCLCMCIwIoAgBBMGo2AgAL3gQBBX8jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBSABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEFAaiICJAAgAkEANgIQIAJCATcDCCABKAIARSEFIAFBBGohAwsCQAJAAkAjAUUEQCAFDQEgAkEINgIcIAIgAzYCJCACIAJBJGo2AhggAkEBNgI8IAJCATcCLCACQaikBTYCKCACIAJBGGo2AjggAkEoaiEFIAJBCGohAwsgBkVBASMBGwRAIANBxIsFIAUQK0EAIwFBAUYNBBohAwsjAUUEQCADRQ0CDAMLCyMBRQRAIAJBCDYCHCACIAM2AiQgAiACQSRqNgIYIAJBATYCPCACQgE3AiwgAkGopAU2AiggAiACQRhqNgI4IAJBKGohBSACQQhqIQMLIAZBAUZBASMBGwRAIANBxIsFIAUQK0EBIwFBAUYNAxohAwsjAUVBACADGw0BCyMBRQRAIAAgAikDCDcCBCAAQRA2AgAgAEEMaiACQRBqKAIANgIAIAFBCGooAgAEQCABKAIEECELIAJBQGskAA8LCyAAIAJBKGojARshACAGQQJGQQEjARsEQEGIlwVBNyAAQdyLBUGcmAUQlwFBAiMBQQFGDQEaCyMBRQRAAAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwgBCAFNgIQIwIjAigCAEEUajYCAAvaBAIJfwF+IwFBAkYEQCMCIwIoAgBBMGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCEGIAEoAhghByABKAIcIQggASgCICEKIAEoAiQhCSABKQIoIQ0gASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACELCyMBRQRAIwBBEGsiByQAIANFIQQLAkACQCMBRQRAIAQNASABKQMAIg1CgICAgBBaIQQLAkACQCMBRQRAIAQNASABQQhqIQhBfyANpyIEIANqIgkgBCAJSxsiDCABQQxqKAIAIgZNDQIgBiABKAIQIgprIAwgCmsiBk8NAgsgC0VBASMBGwRAIAggCiAGELoBQQAjAUEBRg0FGgsjAUUNAQsjAUUEQCAHQayhBTYCDCAHQQI6AAggB0EAOgALIAdBADsACSAAIAcpAwg3AgAMAwsLIwFFBEACQCABKAIQIgYgBE8EQCAIKAIAIQgMAQsgASgCCCIIIAZqQQAgBCAGaxD2ASABIAQ2AhAgBCEGCyAEIAhqIAIgAxD4ARogBiAJSQRAIAEgCTYCEAsgASANIAOtfDcDAAsLIwFFBEAgAEEEOgAACwsjAUUEQCAHQRBqJAALDwshBSMCKAIAIAU2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBSAANgIAIAUgATYCBCAFIAI2AgggBSADNgIMIAUgBDYCECAFIAY2AhQgBSAHNgIYIAUgCDYCHCAFIAo2AiAgBSAJNgIkIAUgDTcCKCMCIwIoAgBBMGo2AgALgwQCBn8BfiMBQQJGBEAjAiMCKAIAQRxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQMgAigCDCEFIAIoAhAhBiACKAIUIQcgAigCGCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBMGsiAyQAIAFBBGohBiABKAIEIQULAkAjAUUEQCAFDQEgASgCACECIANBEGoiB0EANgIAIANCATcDCCADIANBCGo2AhQgA0EoaiACQRBqKQIANwMAIANBIGogAkEIaikCADcDACADIAIpAgA3AxggA0EUaiEFIANBGGohAgsgBEVBASMBGwRAIAVBlKIFIAIQKxpBACMBQQFGDQIaCyMBRQRAIAZBCGogBygCADYCACAGIAMpAwg3AgALCyMBRQRAIANBIGoiBCAGQQhqKAIANgIAIAFBDGpBADYCACAGKQIAIQggAUIBNwIEIAMgCDcDGEEMEA4iAUUEQAALIAEgAykDGDcCACABQQhqIAQoAgA2AgAgAEHorwU2AgQgACABNgIAIANBMGokAAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAzYCCCAEIAU2AgwgBCAGNgIQIAQgBzYCFCAEIAI2AhgjAiMCKAIAQRxqNgIAC8QCAQF/QcABIQICQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAEH/AXFBAWsOIwABAiMDBAUGBwgJCgsMDQ4PEBESExQVFhcYGRobHB0eHyAhIgsgAUEPcUGAf3IPCyABQQ9xQZB/cg8LIAFBH3FBoH9yDwtBwQEPC0HCAQ8LQcMBDwtBxAEPC0HFAQ8LQcYBDwtBxwEPC0HIAQ8LQckBDwtBygEPC0HLAQ8LQcwBDwtBzQEPC0HOAQ8LQc8BDwtB0AEPC0HRAQ8LQdIBDwtB0wEPC0HUAQ8LQdUBDwtB1gEPC0HXAQ8LQdgBDwtB2QEPC0HaAQ8LQdsBDwtB3AEPC0HdAQ8LQd4BDwtB3wEPCyABIQILIAILuQMBA38jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgQoAgAhACAEKAIEIQEgBCgCCCECIAQoAgwhBAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQRBrIgIkACAAKAIAIQAgAkEANgIMIAJBDGohBAJ/IAFBgAFPBEAgAUGAEE8EQCABQYCABE8EQCACIAFBP3FBgAFyOgAPIAIgAUEGdkE/cUGAAXI6AA4gAiABQQx2QT9xQYABcjoADSACIAFBEnZBB3FB8AFyOgAMQQQMAwsgAiABQT9xQYABcjoADiACIAFBDHZB4AFyOgAMIAIgAUEGdkE/cUGAAXI6AA1BAwwCCyACIAFBP3FBgAFyOgANIAIgAUEGdkHAAXI6AAxBAgwBCyACIAE6AAxBAQshAQsgA0VBASMBGwRAIAAgBCABECxBACMBQQFGDQEaIQELIwFFBEAgAkEQaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIAMgBDYCDCMCIwIoAgBBEGo2AgBBAAuMqAIBH38jAUECRgRAIwIjAigCAEEgazYCACMCKAIAIgQoAgAhACAEKAIIIQIgBCgCDCEDIAQoAhAhGiAEKAIUIRsgBCgCGCEeIAQoAhwhISAEKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAISALIwFFBEAjACIaQRBrIh4kAAsgIEVBASMBGwRAIB4gASADED1BACMBQQFGDQEaCwJAIwFFQQAjAUUEQCAeLQAEIhtBBEchISAeKAIAIRoLICEbRQRAAkACQCMBRQRAAkAgGkUEQEEBIRsMAQsgGkF/TCIbDQIgGhAOIhtFDQMgG0EEay0AAEEDcUUNACAbQQAgGhD2AQsLICBBAUZBASMBGwRAIB4hDSABIQQgAiEQIAMhBiAbIRcgGiERIwFBAkYEQCMCIwIoAgBB0ABrNgIAIwIoAgAiBCgCACENIAQoAgghECAEKAIMIQYgBCgCECEXIAQoAhQhESAEKAIYIQUgBCgCHCEHIAQoAiAhCCAEKAIkIQkgBCgCKCEKIAQoAiwhDCAEKAIwIQ4gBCgCNCEPIAQoAjghEiAEKAI8IRMgBCgCQCEUIAQoAkQhFSAEKAJIIRggBCgCTCEZIAQoAgQhBAsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACELCyMBRQRAIwBBQGoiByQAIAcgETYCCCAHQQQ6AAwgB0EwaiEFCyALRUEBIwEbBEAgBSAEIAYQPUEAIwFBAUYNARoLIwFFBEAgBy0ANEEERyEFCwJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIAUNASAHKAIwIBFHIgUNAQsgC0EBRkEBIwEbBEAgBBDHAUEBIwFBAUYNjAIaIQULIwFFBEAgBUEBayIFDgYIBwYFBAMCCwsjAUUEQCAHQQA2AhAgB0EQaiEQIAdBCGohDSAHQTBqIQQLIAtBAkZBASMBGwRAIA0hFiAEIR8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIh0oAgAhFiAdKAIIIRwgHSgCBCEfCyAQIR0CQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEiCyMBRQRAIwBBIGsiHCQAIBwgHzYCBCAcIBY2AgAgHEEYaiAdQRBqKQIANwMAIBxBEGogHUEIaikCADcDACAcIB0pAgA3AwggHEEIaiEfIBxBBGohFgsgIkVBASMBGwRAIBxBjKgEIBZBjKgEIB9BnKcEEFBBACMBQQFGDQEaCyMBRQRAAAsMAQshHSMCKAIAIB02AgAjAiMCKAIAQQRqNgIAIwIoAgAiHSAWNgIAIB0gHzYCBCAdIBw2AggjAiMCKAIAQQxqNgIAC0ECIwFBAUYNiwIaCyMBRQRAAAsLIAtBA0ZBASMBGwRAQfymBEEOQaynBBC7AUEDIwFBAUYNigIaCyMBRQRAAAsLIAtBBEZBASMBGwRAIAQQwgFBBCMBQQFGDYkCGiEJCyALQQVGQQEjARsEQCAEEMgBQQUjAUEBRg2JAhohCAsjAUUEQCAEQQhqKAIAIQULIAtBBkZBASMBGwRAIAQQwwFBBiMBQQFGDYkCGiEOCyALQQdGQQEjARsEQCAEEM0BQQcjAUEBRg2JAhohEgsCQAJAAkAjAUUEQCAJDQEgCEH/AXEiBA0CIAVBggRLIgQNAwsgC0EIRkEBIwEbBEAgDSAOIBIgECAGIBcgERBAQQgjAUEBRg2MAhoLIwFFDYoCCyAEIAhB/wFxIwEbIQQCQAJAIwFFBEAgBA0BIAVBggRLIgQNAgsgC0EJRkEBIwEbBEAgDSAOIBIgECAGIBcgERBFQQkjAUEBRg2NAhoLIwFFDYsCCyMBRUEAIAQgBUGCBEsjARsiBBtFBEAgC0EKRkEBIwEbBEAgDSAOIBIgECAGIBcgERAxQQojAUEBRg2NAhoLIwFFDYsCCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiEYIAdBIGohGSAHQRhqIRRBACEECwNAIwFFBEAgBiAEayIIQXxxIgkgBGoiCiAJSSIMDQsgBiAKSSIMDQwgCEECdkEDbCIIIAVqIQwgCCAMSyIPDQ0gDCARSyIPDQ4gBCAQaiEPIAUgF2ohEyAHQRBqIQwLIAtBC0ZBASMBGwRAIAwgDiASIA8gCSATIAgQMUELIwFBAUYNjgIaCyMBRQRAIAcoAhAhCSAHLQAcQQRHIghFBEAgBSAJaiEFIAohBAwDCyAEIAlqIgogBksiBA0PIAUgBygCFGoiDCARSyIEDRAgBiAKayEFIAogEGohCSAHQgA3AwggGEIANwMAIBlCADcDACAUQgA3AwAgB0IANwMQIBEgDGshDyAMIBdqIRNBACEIQQAhBAsCQAJ/AkACQAJAA0AgFSAEIAVPIwEbIRUCQCMBRQRAAkACQCAVDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIVDQALDAELIAQgBUciFQ0CCyAIIAhB/P///wdxIgRGIgkNAyAEQQhJIhANBQsgC0EMRkEBIwEbBEAgBEEIQcylBBCiAUEMIwFBAUYNlQIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NFyAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEERyIVDQELCyMBRQRAQQQhCEEDIQkMAgsLIwFFBEAgCEEJTyIEDRYgCEECdkEDbCEJIAUhBAsLIwFFBEAgCSAPSyIFDRYgB0EIaiEPIAdBMGohBQsgC0ENRkEBIwEbBEAgBSAOIBIgDyAIIBMgCRAxQQ0jAUEBRg2RAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N4gEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgB0EQaiIQIARBAnRqIgQoAgALCyEGIwFFBEAgDSAFOgAMIA0gBiAKajYCCCANIAw2AgQgDSAKNgIADI4CCwsjAUUEQCAMIAcoAjBqIQUgBiAEIApqIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsMiwILIAQgBkYNigIgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIsCCwsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhBAsDQCMBRQRAIAYgBGsiCkEGbCIIQQZxQQZuIQkgCiAJayIJIARqIgogCUkiDA0TIAYgCkkiDA0UIAhBA3YiCCAFaiEMIAggDEsiDw0VIAwgEUsiDw0WIAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQQ5GQQEjARsEQCAMIA4gEiAPIAkgEyAIEEVBDiMBQQFGDY0CGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIIRQRAIAUgCWohBSAKIQQMAwsgBCAJaiIKIAZLIgQNFyAFIAcoAhRqIgwgEUsiBA0YIAYgCmshBSAKIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECARIAxrIQ8gDCAXaiETQQAhCEEAIQQLAkACfwJAAkACQANAIBUgBCAFTyMBGyEVAkAjAUUEQAJAAkAgFQ0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFQ0ACwwBCyAEIAVHIhUNAgsgCEEGbCIEQQZxQQZHIgkNAyAIQQFrIgZBCEkiBA0FCyALQQ9GQQEjARsEQCAGQQhBzKUEEKIBQQ8jAUEBRg2UAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw0fIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQRHIhUNAQsLIwFFBEBBBCEIQQMhCQwCCwsjAUUEQCAIQQlPIgkNHiAEQQN2IQkgBSEECwsjAUUEQCAJIA9LIgUNHiAHQQhqIQ8gB0EwaiEFCyALQRBGQQEjARsEQCAFIA4gEiAPIAggEyAJEEVBECMBQQFGDZACGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3iASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAGQQJ0IhAgB0EQamoiBCgCAAsLIQYjAUUEQCANIAU6AAwgDSAGIApqNgIIIA0gDDYCBCANIAo2AgAMjQILCyMBRQRAIAwgBygCMGohBSAGIAQgCmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwyJAgsgBCAGRg2IAiANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMigILCyMBRUEAIAQgBUGCBEsjARsiBBtFBEAgC0ERRkEBIwEbBEAgDSAOIBIgECAGIBcgERAyQREjAUEBRg2LAhoLIwFFDYkCCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiEYIAdBIGohGSAHQRhqIRRBACEECwNAIwFFBEAgBiAEayIIQXxxIgkgBGoiCiAJSSIMDRsgBiAKSSIMDRwgCEECdkEDbCIIIAVqIQwgCCAMSyIPDR0gDCARSyIPDR4gBCAQaiEPIAUgF2ohEyAHQRBqIQwLIAtBEkZBASMBGwRAIAwgDiASIA8gCSATIAgQMkESIwFBAUYNjAIaCyMBRQRAIAcoAhAhCSAHLQAcQQRHIghFBEAgBSAJaiEFIAohBAwDCyAEIAlqIgogBksiBA0fIAUgBygCFGoiDCARSyIEDSAgBiAKayEFIAogEGohCSAHQgA3AwggGEIANwMAIBlCADcDACAUQgA3AwAgB0IANwMQIBEgDGshDyAMIBdqIRNBACEIQQAhBAsCQAJ/AkACQAJAA0AgFSAEIAVPIwEbIRUCQCMBRQRAAkACQCAVDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIVDQALDAELIAQgBUciFQ0CCyAIIAhB/P///wdxIgRGIgkNAyAEQQhJIhANBQsgC0ETRkEBIwEbBEAgBEEIQcylBBCiAUETIwFBAUYNkwIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NJyAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEERyIVDQELCyMBRQRAQQQhCEEDIQkMAgsLIwFFBEAgCEEJTyIEDSYgCEECdkEDbCEJIAUhBAsLIwFFBEAgCSAPSyIFDSYgB0EIaiEPIAdBMGohBQsgC0EURkEBIwEbBEAgBSAOIBIgDyAIIBMgCRAyQRQjAUEBRg2PAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N4gEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgB0EQaiIQIARBAnRqIgQoAgALCyEGIwFFBEAgDSAFOgAMIA0gBiAKajYCCCANIAw2AgQgDSAKNgIADIwCCwsjAUUEQCAMIAcoAjBqIQUgBiAEIApqIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsMhwILIAQgBkYNhgIgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIkCCwsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhBAsDQCMBRQRAIAYgBGsiCkEGbCIIQQZxQQZuIQkgCiAJayIJIARqIgogCUkiDA0jIAYgCkkiDA0kIAhBA3YiCCAFaiEMIAggDEsiDw0lIAwgEUsiDw0mIAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQRVGQQEjARsEQCAMIA4gEiAPIAkgEyAIEEBBFSMBQQFGDYsCGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIIRQRAIAUgCWohBSAKIQQMAwsgBCAJaiIKIAZLIgQNJyAFIAcoAhRqIgwgEUsiBA0oIAYgCmshBSAKIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECARIAxrIQ8gDCAXaiETQQAhCEEAIQQLAkACfwJAAkACQANAIBUgBCAFTyMBGyEVAkAjAUUEQAJAAkAgFQ0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFQ0ACwwBCyAEIAVHIhUNAgsgCEEGbCIEQQZxQQZHIgkNAyAIQQFrIgZBCEkiBA0FCyALQRZGQQEjARsEQCAGQQhBzKUEEKIBQRYjAUEBRg2SAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw0vIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQRHIhUNAQsLIwFFBEBBBCEIQQMhCQwCCwsjAUUEQCAIQQlPIgkNLiAEQQN2IQkgBSEECwsjAUUEQCAJIA9LIgUNLiAHQQhqIQ8gB0EwaiEFCyALQRdGQQEjARsEQCAFIA4gEiAPIAggEyAJEEBBFyMBQQFGDY4CGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3iASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAGQQJ0IhAgB0EQamoiBCgCAAsLIQYjAUUEQCANIAU6AAwgDSAGIApqNgIIIA0gDDYCBCANIAo2AgAMiwILCyMBRQRAIAwgBygCMGohBSAGIAQgCmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwyFAgsgBCAGRg2EAiANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMiAILCyALQRhGQQEjARsEQCAEEMIBQRgjAUEBRg2IAhohCQsgC0EZRkEBIwEbBEAgBBDIAUEZIwFBAUYNiAIaIQgLIwFFBEAgBEEIaigCACEFCyALQRpGQQEjARsEQCAEEMMBQRojAUEBRg2IAhohDgsgC0EbRkEBIwEbBEAgBBDNAUEbIwFBAUYNiAIaIRILAkACQAJAIwFFBEAgCQ0BIAhB/wFxIgQNAiAFQYIESyIEDQMLIAtBHEZBASMBGwRAIA0gDiASIBAgBiAXIBEQQUEcIwFBAUYNiwIaCyMBRQ2JAgsgBCAIQf8BcSMBGyEEAkACQCMBRQRAIAQNASAFQYIESyIEDQILIAtBHUZBASMBGwRAIA0gDiASIBAgBiAXIBEQRkEdIwFBAUYNjAIaCyMBRQ2KAgsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtBHkZBASMBGwRAIA0gDiASIBAgBiAXIBEQM0EeIwFBAUYNjAIaCyMBRQ2KAgsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIgogCUkiDA0uIAYgCkkiDA0vIAhBA3ZBBWwiCCAFaiEMIAggDEsiDw0wIAwgEUsiDw0xIAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQR9GQQEjARsEQCAMIA4gEiAPIAkgEyAIEDNBHyMBQQFGDY0CGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIIRQRAIAUgCWohBSAKIQQMAwsgBCAJaiIKIAZLIgQNMiAFIAcoAhRqIgwgEUsiBA0zIAYgCmshBSAKIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECARIAxrIQ8gDCAXaiETQQAhCEEAIQQLAkACfwJAAkACQANAIBUgBCAFTyMBGyEVAkAjAUUEQAJAAkAgFQ0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFQ0ACwwBCyAEIAVHIhUNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQSBGQQEjARsEQCAEQQhBzKUEEKIBQSAjAUEBRg2UAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw06IAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhUNAQsLIwFFBEBBCCEIQQUhCQwCCwsjAUUEQCAIQQlPIgQNOSAIQQN2QQVsIQkgBSEECwsjAUUEQCAJIA9LIgUNOSAHQQhqIQ8gB0EwaiEFCyALQSFGQQEjARsEQCAFIA4gEiAPIAggEyAJEDNBISMBQQFGDZACGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3lASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAHKAIQCwshBiMBRQRAIA0gBToADCANIAYgCmo2AgggDSAMNgIEIA0gCjYCAAyNAgsLIwFFBEAgDCAHKAIwaiEFIAYgBCAKaiIESyIKDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDIYCCyAEIAZGDYUCIA1BADoADCANIAQ2AgggDSAFNgIEIA0gBDYCAAyKAgsLIAVBACMBGyEFAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRggB0EgaiEZIAdBGGohFEEAIQQLA0AjAUUEQCAGIARrIgpBBWwiCEEHcUEFbiEJIAogCWsiCSAEaiIKIAlJIgwNNiAGIApJIgwNNyAIQQN2IgggBWohDCAIIAxLIg8NOCAMIBFLIg8NOSAEIBBqIQ8gBSAXaiETIAdBEGohDAsgC0EiRkEBIwEbBEAgDCAOIBIgDyAJIBMgCBBGQSIjAUEBRg2MAhoLIwFFBEAgBygCECEJIActABxBBEciCEUEQCAFIAlqIQUgCiEEDAMLIAQgCWoiCiAGSyIEDTogBSAHKAIUaiIMIBFLIgQNOyAGIAprIQUgCiAQaiEJIAdCADcDCCAYQgA3AwAgGUIANwMAIBRCADcDACAHQgA3AxAgESAMayEPIAwgF2ohE0EAIQhBACEECwJAAn8CQAJAAkADQCAVIAQgBU8jARshFQJAIwFFBEACQAJAIBUNAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIhUNAAsMAQsgBCAFRyIVDQILIAhBBWwiBEEHcUEFSSIJDQMgCEEBayIGQQhJIgQNBQsgC0EjRkEBIwEbBEAgBkEIQcylBBCiAUEjIwFBAUYNkwIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NQiAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEIRyIVDQELCyMBRQRAQQghCEEFIQkMAgsLIwFFBEAgCEEJTyIJDUEgBEEDdiEJIAUhBAsLIwFFBEAgCSAPSyIFDUEgB0EIaiEPIAdBMGohBQsgC0EkRkEBIwEbBEAgBSAOIBIgDyAIIBMgCRBGQSQjAUEBRg2PAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N5QEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgBkECdCIQIAdBEGpqIgQoAgALCyEGIwFFBEAgDSAFOgAMIA0gBiAKajYCCCANIAw2AgQgDSAKNgIADIwCCwsjAUUEQCAMIAcoAjBqIQUgBiAEIApqIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsMhAILIAQgBkYNgwIgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIkCCwsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtBJUZBASMBGwRAIA0gDiASIBAgBiAXIBEQNEElIwFBAUYNigIaCyMBRQ2IAgsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIgogCUkiDA0+IAYgCkkiDA0/IAhBA3ZBBWwiCCAFaiEMIAggDEsiDw1AIAwgEUsiDw1BIAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQSZGQQEjARsEQCAMIA4gEiAPIAkgEyAIEDRBJiMBQQFGDYsCGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIIRQRAIAUgCWohBSAKIQQMAwsgBCAJaiIKIAZLIgQNQiAFIAcoAhRqIgwgEUsiBA1DIAYgCmshBSAKIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECARIAxrIQ8gDCAXaiETQQAhCEEAIQQLAkACfwJAAkACQANAIBUgBCAFTyMBGyEVAkAjAUUEQAJAAkAgFQ0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFQ0ACwwBCyAEIAVHIhUNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQSdGQQEjARsEQCAEQQhBzKUEEKIBQScjAUEBRg2SAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw1KIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhUNAQsLIwFFBEBBCCEIQQUhCQwCCwsjAUUEQCAIQQlPIgQNSSAIQQN2QQVsIQkgBSEECwsjAUUEQCAJIA9LIgUNSSAHQQhqIQ8gB0EwaiEFCyALQShGQQEjARsEQCAFIA4gEiAPIAggEyAJEDRBKCMBQQFGDY4CGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3lASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAHKAIQCwshBiMBRQRAIA0gBToADCANIAYgCmo2AgggDSAMNgIEIA0gCjYCAAyLAgsLIwFFBEAgDCAHKAIwaiEFIAYgBCAKaiIESyIKDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDIICCyAEIAZGDYECIA1BADoADCANIAQ2AgggDSAFNgIEIA0gBDYCAAyIAgsLIAVBACMBGyEFAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRggB0EgaiEZIAdBGGohFEEAIQQLA0AjAUUEQCAGIARrIgpBBWwiCEEHcUEFbiEJIAogCWsiCSAEaiIKIAlJIgwNRiAGIApJIgwNRyAIQQN2IgggBWohDCAIIAxLIg8NSCAMIBFLIg8NSSAEIBBqIQ8gBSAXaiETIAdBEGohDAsgC0EpRkEBIwEbBEAgDCAOIBIgDyAJIBMgCBBBQSkjAUEBRg2KAhoLIwFFBEAgBygCECEJIActABxBBEciCEUEQCAFIAlqIQUgCiEEDAMLIAQgCWoiCiAGSyIEDUogBSAHKAIUaiIMIBFLIgQNSyAGIAprIQUgCiAQaiEJIAdCADcDCCAYQgA3AwAgGUIANwMAIBRCADcDACAHQgA3AxAgESAMayEPIAwgF2ohE0EAIQhBACEECwJAAn8CQAJAAkADQCAVIAQgBU8jARshFQJAIwFFBEACQAJAIBUNAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIhUNAAsMAQsgBCAFRyIVDQILIAhBBWwiBEEHcUEFSSIJDQMgCEEBayIGQQhJIgQNBQsgC0EqRkEBIwEbBEAgBkEIQcylBBCiAUEqIwFBAUYNkQIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NUiAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEIRyIVDQELCyMBRQRAQQghCEEFIQkMAgsLIwFFBEAgCEEJTyIJDVEgBEEDdiEJIAUhBAsLIwFFBEAgCSAPSyIFDVEgB0EIaiEPIAdBMGohBQsgC0ErRkEBIwEbBEAgBSAOIBIgDyAIIBMgCRBBQSsjAUEBRg2NAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N5QEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgBkECdCIQIAdBEGpqIgQoAgALCyEGIwFFBEAgDSAFOgAMIA0gBiAKajYCCCANIAw2AgQgDSAKNgIADIoCCwsjAUUEQCAMIAcoAjBqIQUgBiAEIApqIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsMgAILIAQgBkYN/wEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIcCCwsgC0EsRkEBIwEbBEAgBBDCAUEsIwFBAUYNhwIaIQkLIAtBLUZBASMBGwRAIAQQyAFBLSMBQQFGDYcCGiEICyMBRQRAIARBCGooAgAhBQsgC0EuRkEBIwEbBEAgBBDDAUEuIwFBAUYNhwIaIQoLIAtBL0ZBASMBGwRAIAQQzQFBLyMBQQFGDYcCGiESCwJAAkACQCMBRQRAIAkNASAIQf8BcSIEDQIgBUGCBEsiBA0DCyALQTBGQQEjARsEQCANIBIgECAGIBcgERBkQTAjAUEBRg2KAhoLIwFFDYgCCyAEIAhB/wFxIwEbIQQCQAJAIwFFBEAgBA0BIAVBggRLIgQNAgsgC0ExRkEBIwEbBEAgDSASIBAgBiAXIBEQZUExIwFBAUYNiwIaCyMBRQ2JAgsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtBMkZBASMBGwRAIA0gEiAQIAYgFyAREDVBMiMBQQFGDYsCGgsjAUUNiQILIAlBACMBGyEJAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRkgB0EgaiEUIAdBGGohFUEAIQQLA0AjAUUEQCAGIARrIghBfnEiBSAEaiEOIAUgDksiCg1RIAYgDkkiCg1SIAkgCEEBdiIIaiIKIAhJIgwNUyAKIBFLIgwNVCAEIBBqIQwgCSAXaiEPIAdBEGohCgsgC0EzRkEBIwEbBEAgCiASIAwgBSAPIAgQNUEzIwFBAUYNjAIaCyMBRQRAIAcoAhAhBSAHLQAcQQRHIgpFBEAgBSAJaiEJIA4hBAwDCyAEIAVqIg8gBksiBA1VIAkgBygCFGoiEyARSyIEDVYgBiAPayEFIA8gEGohCSAHQgA3AwggGUIANwMAIBRCADcDACAVQgA3AwAgB0IANwMQIBMgF2ohGEEAIQ5BASEMQQAhCEEAIQQLAkACQAJAIwFFBEACfwNAAkACQAJAIAQgBU8NAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIgoNAAsMAQsgBCAFRyIKDQELIAxBAXFFIgQNBEEAIQlBAAwCCyAIQQJ0IgwgB0EQamogBDYCACAEIAVPIgoNXCAIIAdBCGpqIAQgCWotAAA6AABBASEIIARBAWohBCAOQQFxQQAhDEEBIQ5FIgoNAAsgESATRiIFDVxBAiEJIAQhBUEBCyEIIAdBCGohCiAHQTBqIQQLIAtBNEZBASMBGwRAIAQgEiAKIAkgGCAIEDVBNCMBQQFGDY8CGgsjAUUEQCAHLQA8IgRBBEYiCg0DIAcoAjgiBkEITw3oASAHQRBqIAZBAnRqIhAoAgAhBgwCCwsjAUUEQCAHKAIQIQZBACEECwsjAUUEQCANIAQ6AAwgDSAGIA9qNgIIIA0gEzYCBCANIA82AgAMjAILCyMBRQRAIBMgBygCMGohCSAGIAUgD2oiBEsiBQ0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwyBAgsgBCAGRg2AAiANQQA6AAwgDSAENgIIIA0gCTYCBCANIAQ2AgAMiQILCwJAIwFFBEAgBkUEQEEAIQlBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhCUEAIQQLA0AjAUUEQCAGIARrIghBfnEiBSAEaiEOIAUgDksiCg1YIAYgDkkiCg1ZIAkgCEEBdkH/////AXEiCGoiCiAISSIMDVogCiARSyIMDVsgBCAQaiEMIAkgF2ohDyAHQRBqIQoLIAtBNUZBASMBGwRAIAogEiAMIAUgDyAIEGVBNSMBQQFGDYsCGgsjAUUEQCAHKAIQIQUgBy0AHEEERyIKRQRAIAUgCWohCSAOIQQMAwsgBCAFaiIMIAZLIgQNXCAJIAcoAhRqIg8gEUsiBA1dIAYgDGshBSAMIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECAPIBdqIRNBACEIQQEhDkEAIQQLAkACfwJAAkAjAUUEQANAAkACQAJAIAQgBU8NAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIgoNAAsMAQsgBCAFRyIKDQELIA5BAXEiBA0DQQAhBCAHKAIQDAULIAhBAnQiFSAHQRBqaiAENgIAIAQgBU8iCg1jIAggB0EIamogBCAJai0AADoAAEEBIQggBEEBaiEEIA5BAXEhCkEAIQ4gCg0ACyAPIBFGIQULAkAjAUUEQCAFDQEgB0EIaiEKIAdBMGohBQsgC0E2RkEBIwEbBEAgBSASIApBAiATQQEQZUE2IwFBAUYNkAIaCyMBRQRAIAQhBQwDCwsgC0E3RkEBIwEbBEBBAUEAQbylBBDvAUE3IwFBAUYNjwIaCyMBRQRAAAsLIwFFBEAgB0EIaiEKIAdBMGohBAsgC0E4RkEBIwEbBEAgBCASIAogCCATQQAQZUE4IwFBAUYNjgIaCwsjAQR/IAYFIActADwiBEEERiIKDQIgBygCOCIGQQhPDWEgB0EQaiAGQQJ0aiIQKAIACwshBiMBRQRAIA0gBDoADCANIAYgDGo2AgggDSAPNgIEIA0gDDYCAAyLAgsLIwFFBEAgDyAHKAIwaiEJIAYgBSAMaiIESyIFDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDP8BCyAEIAZGDf4BIA1BADoADCANIAQ2AgggDSAJNgIEIA0gBDYCAAyIAgsLIwFFQQAgBCAFQYIESyMBGyIEG0UEQCALQTlGQQEjARsEQCANIBIgECAGIBcgERA2QTkjAUEBRg2JAhoLIwFFDYcCCyAJQQAjARshCQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiEZIAdBIGohFCAHQRhqIRVBACEECwNAIwFFBEAgBiAEayIIQX5xIgUgBGohDiAFIA5LIgoNXyAGIA5JIgoNYCAJIAhBAXYiCGoiCiAISSIMDWEgCiARSyIMDWIgBCAQaiEMIAkgF2ohDyAHQRBqIQoLIAtBOkZBASMBGwRAIAogEiAMIAUgDyAIEDZBOiMBQQFGDYoCGgsjAUUEQCAHKAIQIQUgBy0AHEEERyIKRQRAIAUgCWohCSAOIQQMAwsgBCAFaiIPIAZLIgQNYyAJIAcoAhRqIhMgEUsiBA1kIAYgD2shBSAPIBBqIQkgB0IANwMIIBlCADcDACAUQgA3AwAgFUIANwMAIAdCADcDECATIBdqIRhBACEOQQEhDEEAIQhBACEECwJAAkACQCMBRQRAAn8DQAJAAkACQCAEIAVPDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIKDQALDAELIAQgBUciCg0BCyAMQQFxRSIEDQRBACEJQQAMAgsgCEECdCIMIAdBEGpqIAQ2AgAgBCAFTyIKDWogCCAHQQhqaiAEIAlqLQAAOgAAQQEhCCAEQQFqIQQgDkEBcUEAIQxBASEORSIKDQALIBEgE0YiBQ1qQQIhCSAEIQVBAQshCCAHQQhqIQogB0EwaiEECyALQTtGQQEjARsEQCAEIBIgCiAJIBggCBA2QTsjAUEBRg2NAhoLIwFFBEAgBy0APCIEQQRGIgoNAyAHKAI4IgZBCE8N5wEgB0EQaiAGQQJ0aiIQKAIAIQYMAgsLIwFFBEAgBygCECEGQQAhBAsLIwFFBEAgDSAEOgAMIA0gBiAPajYCCCANIBM2AgQgDSAPNgIADIoCCwsjAUUEQCATIAcoAjBqIQkgBiAFIA9qIgRLIgUNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM/QELIAQgBkYN/AEgDUEAOgAMIA0gBDYCCCANIAk2AgQgDSAENgIADIcCCwsCQCMBRQRAIAZFBEBBACEJQQAhBAwCCyAHQShqIRggB0EgaiEZIAdBGGohFEEAIQlBACEECwNAIwFFBEAgBiAEayIIQX5xIgUgBGohDiAFIA5LIgoNZiAGIA5JIgoNZyAJIAhBAXZB/////wFxIghqIgogCEkiDA1oIAogEUsiDA1pIAQgEGohDCAJIBdqIQ8gB0EQaiEKCyALQTxGQQEjARsEQCAKIBIgDCAFIA8gCBBkQTwjAUEBRg2JAhoLIwFFBEAgBygCECEFIActABxBBEciCkUEQCAFIAlqIQkgDiEEDAMLIAQgBWoiDCAGSyIEDWogCSAHKAIUaiIPIBFLIgQNayAGIAxrIQUgDCAQaiEJIAdCADcDCCAYQgA3AwAgGUIANwMAIBRCADcDACAHQgA3AxAgDyAXaiETQQAhCEEBIQ5BACEECwJAAn8CQAJAIwFFBEADQAJAAkACQCAEIAVPDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIKDQALDAELIAQgBUciCg0BCyAOQQFxIgQNA0EAIQQgBygCEAwFCyAIQQJ0IhUgB0EQamogBDYCACAEIAVPIgoNcSAIIAdBCGpqIAQgCWotAAA6AABBASEIIARBAWohBCAOQQFxIQpBACEOIAoNAAsgDyARRiEFCwJAIwFFBEAgBQ0BIAdBCGohCiAHQTBqIQULIAtBPUZBASMBGwRAIAUgEiAKQQIgE0EBEGRBPSMBQQFGDY4CGgsjAUUEQCAEIQUMAwsLIAtBPkZBASMBGwRAQQFBAEG8pQQQ7wFBPiMBQQFGDY0CGgsjAUUEQAALCyMBRQRAIAdBCGohCiAHQTBqIQQLIAtBP0ZBASMBGwRAIAQgEiAKIAggE0EAEGRBPyMBQQFGDYwCGgsLIwEEfyAGBSAHLQA8IgRBBEYiCg0CIAcoAjgiBkEITw1vIAdBEGogBkECdGoiECgCAAsLIQYjAUUEQCANIAQ6AAwgDSAGIAxqNgIIIA0gDzYCBCANIAw2AgAMiQILCyMBRQRAIA8gBygCMGohCSAGIAUgDGoiBEsiBQ0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwz7AQsgBCAGRg36ASANQQA6AAwgDSAENgIIIA0gCTYCBCANIAQ2AgAMhgILCyALQcAARkEBIwEbBEAgBBDCAUHAACMBQQFGDYYCGiEJCyALQcEARkEBIwEbBEAgBBDIAUHBACMBQQFGDYYCGiEICyMBRQRAIARBCGooAgAhBQsgC0HCAEZBASMBGwRAIAQQwwFBwgAjAUEBRg2GAhohDgsgC0HDAEZBASMBGwRAIAQQzQFBwwAjAUEBRg2GAhohEgsCQAJAAkAjAUUEQCAJDQEgCEH/AXEiBA0CIAVBggRLIgQNAwsgC0HEAEZBASMBGwRAIA0gDiASIBAgBiAXIBEQQkHEACMBQQFGDYkCGgsjAUUNhwILIAQgCEH/AXEjARshBAJAAkAjAUUEQCAEDQEgBUGCBEsiBA0CCyALQcUARkEBIwEbBEAgDSAOIBIgECAGIBcgERBHQcUAIwFBAUYNigIaCyMBRQ2IAgsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtBxgBGQQEjARsEQCANIA4gEiAQIAYgFyAREC9BxgAjAUEBRg2KAhoLIwFFDYgCCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiEYIAdBIGohGSAHQRhqIRRBACEECwNAIwFFBEAgBiAEayIIQXhxIgkgBGoiCiAJSSIMDXAgBiAKSSIMDXEgCEEDdkEDbCIIIAVqIQwgCCAMSyIPDXIgDCARSyIPDXMgBCAQaiEPIAUgF2ohEyAHQRBqIQwLIAtBxwBGQQEjARsEQCAMIA4gEiAPIAkgEyAIEC9BxwAjAUEBRg2LAhoLIwFFBEAgBygCECEJIActABxBBEciCEUEQCAFIAlqIQUgCiEEDAMLIAQgCWoiCiAGSyIEDXQgBSAHKAIUaiIMIBFLIgQNdSAGIAprIQUgCiAQaiEJIAdCADcDCCAYQgA3AwAgGUIANwMAIBRCADcDACAHQgA3AxAgESAMayEPIAwgF2ohE0EAIQhBACEECwJAAn8CQAJAAkADQCAVIAQgBU8jARshFQJAIwFFBEACQAJAIBUNAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIhUNAAsMAQsgBCAFRyIVDQILIAggCEH4////B3EiBEYiCQ0DIARFIhANBQsgC0HIAEZBASMBGwRAIARBCEHMpQQQogFByAAjAUEBRg2SAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw18IAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhUNAQsLIwFFBEBBCCEIQQMhCQwCCwsjAUUEQCAIQQlPIgQNeyAIQQN2QQNsIQkgBSEECwsjAUUEQCAJIA9LIgUNeyAHQQhqIQ8gB0EwaiEFCyALQckARkEBIwEbBEAgBSAOIBIgDyAIIBMgCRAvQckAIwFBAUYNjgIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDekBIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAcoAhALCyEGIwFFBEAgDSAFOgAMIA0gBiAKajYCCCANIAw2AgQgDSAKNgIADIsCCwsjAUUEQCAMIAcoAjBqIQUgBiAEIApqIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM/AELIAQgBkYN+wEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIgCCwsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohGCAHQSBqIRkgB0EYaiEUQQAhBAsDQCMBRQRAIAYgBGsiCkEDbCIIQQdxQQNuIQkgCiAJayIJIARqIgogCUkiDA14IAYgCkkiDA15IAhBA3YiCCAFaiEMIAggDEsiDw16IAwgEUsiDw17IAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQcoARkEBIwEbBEAgDCAOIBIgDyAJIBMgCBBHQcoAIwFBAUYNigIaCyMBRQRAIAcoAhAhCSAHLQAcQQRHIghFBEAgBSAJaiEFIAohBAwDCyAEIAlqIgogBksiBA18IAUgBygCFGoiDCARSyIEDX0gBiAKayEFIAogEGohCSAHQgA3AwggGEIANwMAIBlCADcDACAUQgA3AwAgB0IANwMQIBEgDGshDyAMIBdqIRNBACEIQQAhBAsCQAJ/AkACQAJAA0AgFSAEIAVPIwEbIRUCQCMBRQRAAkACQCAVDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERw0ACwwBCyAEIAVHIhUNAgsgCEEDbCIEQQdxIglBA0kiFQ0DIAggCUEDbmsiBkEISSIEDQULIAtBywBGQQEjARsEQCAGQQhBzKUEEKIBQcsAIwFBAUYNkQIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NhAEgB0EIaiAIaiAEIAlqLQAAOgAAIARBAWohBCAIQQFqIghBCEciFQ0BCwsjAUUEQEEIIQhBAyEJDAILCyMBRQRAIAhBCU8iCQ2DASAEQQN2IQkgBSEECwsjAUUEQCAJIA9LIgUNgwEgB0EIaiEPIAdBMGohBQsgC0HMAEZBASMBGwRAIAUgDiASIA8gCCATIAkQR0HMACMBQQFGDY0CGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3pASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAGQQJ0IhAgB0EQamoiBCgCAAsLIQYjAUUEQCANIAU6AAwgDSAGIApqNgIIIA0gDDYCBCANIAo2AgAMigILCyMBRQRAIAwgBygCMGohBSAGIAQgCmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwz6AQsgBCAGRg35ASANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMhwILCyMBRUEAIAQgBUGCBEsjARsiBBtFBEAgC0HNAEZBASMBGwRAIA0gDiASIBAgBiAXIBEQMEHNACMBQQFGDYgCGgsjAUUNhgILIAVBACMBGyEFAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRggB0EgaiEZIAdBGGohFEEAIQQLA0AjAUUEQCAGIARrIghBeHEiCSAEaiIKIAlJIgwNgAEgBiAKSSIMDYEBIAhBA3ZBA2wiCCAFaiEMIAggDEsiDw2CASAMIBFLIg8NgwEgBCAQaiEPIAUgF2ohEyAHQRBqIQwLIAtBzgBGQQEjARsEQCAMIA4gEiAPIAkgEyAIEDBBzgAjAUEBRg2JAhoLIwFFBEAgBygCECEJIActABxBBEciCEUEQCAFIAlqIQUgCiEEDAMLIAQgCWoiCiAGSyIEDYQBIAUgBygCFGoiDCARSyIEDYUBIAYgCmshBSAKIBBqIQkgB0IANwMIIBhCADcDACAZQgA3AwAgFEIANwMAIAdCADcDECARIAxrIQ8gDCAXaiETQQAhCEEAIQQLAkACfwJAAkACQANAIBUgBCAFTyMBGyEVAkAjAUUEQAJAAkAgFQ0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFQ0ACwwBCyAEIAVHIhUNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQc8ARkEBIwEbBEAgBEEIQcylBBCiAUHPACMBQQFGDZACGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDYwBIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhUNAQsLIwFFBEBBCCEIQQMhCQwCCwsjAUUEQCAIQQlPIgQNiwEgCEEDdkEDbCEJIAUhBAsLIwFFBEAgCSAPSyIFDYsBIAdBCGohDyAHQTBqIQULIAtB0ABGQQEjARsEQCAFIA4gEiAPIAggEyAJEDBB0AAjAUEBRg2MAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N6QEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgBygCEAsLIQYjAUUEQCANIAU6AAwgDSAGIApqNgIIIA0gDDYCBCANIAo2AgAMiQILCyMBRQRAIAwgBygCMGohBSAGIAQgCmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwz4AQsgBCAGRg33ASANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMhgILCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiEYIAdBIGohGSAHQRhqIRRBACEECwNAIwFFBEAgBiAEayIKQQNsIghBB3FBA24hCSAKIAlrIgkgBGoiCiAJSSIMDYgBIAYgCkkiDA2JASAIQQN2IgggBWohDCAIIAxLIg8NigEgDCARSyIPDYsBIAQgEGohDyAFIBdqIRMgB0EQaiEMCyALQdEARkEBIwEbBEAgDCAOIBIgDyAJIBMgCBBCQdEAIwFBAUYNiAIaCyMBRQRAIAcoAhAhCSAHLQAcQQRHIghFBEAgBSAJaiEFIAohBAwDCyAEIAlqIgogBksiBA2MASAFIAcoAhRqIgwgEUsiBA2NASAGIAprIQUgCiAQaiEJIAdCADcDCCAYQgA3AwAgGUIANwMAIBRCADcDACAHQgA3AxAgESAMayEPIAwgF2ohE0EAIQhBACEECwJAAn8CQAJAAkADQCAVIAQgBU8jARshFQJAIwFFBEACQAJAIBUNAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHDQALDAELIAQgBUciFQ0CCyAIQQNsIgRBB3EiCUEDSSIVDQMgCCAJQQNuayIGQQhJIgQNBQsgC0HSAEZBASMBGwRAIAZBCEHMpQQQogFB0gAjAUEBRg2PAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw2UASAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEIRyIVDQELCyMBRQRAQQghCEEDIQkMAgsLIwFFBEAgCEEJTyIJDZMBIARBA3YhCSAFIQQLCyMBRQRAIAkgD0siBQ2TASAHQQhqIQ8gB0EwaiEFCyALQdMARkEBIwEbBEAgBSAOIBIgDyAIIBMgCRBCQdMAIwFBAUYNiwIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDekBIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAZBAnQiECAHQRBqaiIEKAIACwshBiMBRQRAIA0gBToADCANIAYgCmo2AgggDSAMNgIEIA0gCjYCAAyIAgsLIwFFBEAgDCAHKAIwaiEFIAYgBCAKaiIESyIKDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDPYBCyAEIAZGDfUBIA1BADoADCANIAQ2AgggDSAFNgIEIA0gBDYCAAyFAgsLIAtB1ABGQQEjARsEQCAEEMIBQdQAIwFBAUYNhQIaIQkLIAtB1QBGQQEjARsEQCAEEMgBQdUAIwFBAUYNhQIaIQgLIwFFBEAgBEEIaigCACEFCyALQdYARkEBIwEbBEAgBBDDAUHWACMBQQFGDYUCGiEKCyALQdcARkEBIwEbBEAgBBDNAUHXACMBQQFGDYUCGiESCwJAAkACQCMBRQRAIAkNASAIQf8BcSIEDQIgBUGCBEsiBA0DCyALQdgARkEBIwEbBEAgDSASIBAgBiAXIBEQZkHYACMBQQFGDYgCGgsjAUUNhgILIAQgCEH/AXEjARshBAJAAkAjAUUEQCAEDQEgBUGCBEsiBA0CCyALQdkARkEBIwEbBEAgDSASIBAgBiAXIBEQZ0HZACMBQQFGDYkCGgsjAUUNhwILIwFFQQAgBCAFQYIESyMBGyIEG0UEQCALQdoARkEBIwEbBEAgDSASIBAgBiAXIBEQN0HaACMBQQFGDYkCGgsjAUUNhwILIAVBACMBGyEFAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRMgB0EgaiEYIAdBGGohGUEAIQQLA0AjAUUEQCAGIARrIghBfHEiCSAEaiEOIAkgDksiCg2TASAGIA5JIgoNlAEgCEECdiIIIAVqIgogCEkiDA2VASAKIBFLIgwNlgEgBCAQaiEMIAUgF2ohDyAHQRBqIQoLIAtB2wBGQQEjARsEQCAKIBIgDCAJIA8gCBA3QdsAIwFBAUYNigIaCyMBRQRAIAcoAhAhCSAHLQAcQQRHIgpFBEAgBSAJaiEFIA4hBAwDCyAEIAlqIg4gBksiBA2XASAFIAcoAhRqIgogEUsiBA2YASAGIA5rIQUgDiAQaiEJIAdCADcDCCATQgA3AwAgGEIANwMAIBlCADcDACAHQgA3AxAgESAKayEMIAogF2ohD0EAIQhBACEECwJAAn8CQAJAAkADQCAUIAQgBU8jARshFAJAIwFFBEACQAJAIBQNAANAIBIgBCAJai0AAGotAABBgQFHDQEgBSAEQQFqIgRHIhQNAAsMAQsgBCAFRyIUDQILIAggCEH8////B3EiBEYiCQ0DIARBCEkiEA0FCyALQdwARkEBIwEbBEAgBEEIQcylBBCiAUHcACMBQQFGDZECGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDZ8BIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQRHIhQNAQsLIwFFBEBBBCEIQQEhCQwCCwsjAUUEQCAIQQlPIgQNngEgCEECdiEJIAUhBAsLIwFFBEAgCSAMSyIFDZ4BIAdBCGohDCAHQTBqIQULIAtB3QBGQQEjARsEQCAFIBIgDCAIIA8gCRA3Qd0AIwFBAUYNjQIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDewBIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAdBEGoiECAEQQJ0aiIEKAIACwshBiMBRQRAIA0gBToADCANIAYgDmo2AgggDSAKNgIEIA0gDjYCAAyKAgsLIwFFBEAgCiAHKAIwaiEFIAYgBCAOaiIESyIKDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDPcBCyAEIAZGDfYBIA1BADoADCANIAQ2AgggDSAFNgIEIA0gBDYCAAyHAgsLIAVBACMBGyEFAkAjAUUEQCAGRQRAQQAhBAwCCyAHQShqIRMgB0EgaiEYIAdBGGohGUEAIQQLA0AjAUUEQCAGIARrIghBfHEiCSAEaiEOIAkgDksiCg2bASAGIA5JIgoNnAEgCEECdkH/////AXEiCCAFaiIKIAhJIgwNnQEgCiARSyIMDZ4BIAQgEGohDCAFIBdqIQ8gB0EQaiEKCyALQd4ARkEBIwEbBEAgCiASIAwgCSAPIAgQZ0HeACMBQQFGDYkCGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIKRQRAIAUgCWohBSAOIQQMAwsgBCAJaiIOIAZLIgQNnwEgBSAHKAIUaiIKIBFLIgQNoAEgBiAOayEFIA4gEGohCSAHQgA3AwggE0IANwMAIBhCADcDACAZQgA3AwAgB0IANwMQIBEgCmshDCAKIBdqIQ9BACEIQQAhBAsCQAJ/AkACQAJAA0AgFCAEIAVPIwEbIRQCQCMBRQRAAkACQCAUDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIUDQALDAELIAQgBUciFA0CCyAIIAhB/P///wdxIgRGIgkNAyAEQQhJIhANBQsgC0HfAEZBASMBGwRAIARBCEHMpQQQogFB3wAjAUEBRg2QAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw2nASAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEERyIUDQELCyMBRQRAQQQhCEEBIQkMAgsLIwFFBEAgCEEJTyIEDaYBIAhBAnYhCSAFIQQLCyMBRQRAIAkgDEsiBQ2mASAHQQhqIQwgB0EwaiEFCyALQeAARkEBIwEbBEAgBSASIAwgCCAPIAkQZ0HgACMBQQFGDYwCGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3sASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAHQRBqIhAgBEECdGoiBCgCAAsLIQYjAUUEQCANIAU6AAwgDSAGIA5qNgIIIA0gCjYCBCANIA42AgAMiQILCyMBRQRAIAogBygCMGohBSAGIAQgDmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwz1AQsgBCAGRg30ASANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMhgILCyMBRUEAIAQgBUGCBEsjARsiBBtFBEAgC0HhAEZBASMBGwRAIA0gEiAQIAYgFyAREDhB4QAjAUEBRg2HAhoLIwFFDYUCCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiETIAdBIGohGCAHQRhqIRlBACEECwNAIwFFBEAgBiAEayIIQXxxIgkgBGohDiAJIA5LIgoNowEgBiAOSSIKDaQBIAhBAnYiCCAFaiIKIAhJIgwNpQEgCiARSyIMDaYBIAQgEGohDCAFIBdqIQ8gB0EQaiEKCyALQeIARkEBIwEbBEAgCiASIAwgCSAPIAgQOEHiACMBQQFGDYgCGgsjAUUEQCAHKAIQIQkgBy0AHEEERyIKRQRAIAUgCWohBSAOIQQMAwsgBCAJaiIOIAZLIgQNpwEgBSAHKAIUaiIKIBFLIgQNqAEgBiAOayEFIA4gEGohCSAHQgA3AwggE0IANwMAIBhCADcDACAZQgA3AwAgB0IANwMQIBEgCmshDCAKIBdqIQ9BACEIQQAhBAsCQAJ/AkACQAJAA0AgFCAEIAVPIwEbIRQCQCMBRQRAAkACQCAUDQADQCASIAQgCWotAABqLQAAQYEBRw0BIAUgBEEBaiIERyIUDQALDAELIAQgBUciFA0CCyAIIAhB/P///wdxIgRGIgkNAyAEQQhJIhANBQsgC0HjAEZBASMBGwRAIARBCEHMpQQQogFB4wAjAUEBRg2PAhoLIwFFBEAACwsjAUUEQCAHQRBqIAhBAnRqIAQ2AgAgBCAFTw2vASAHQQhqIAhqIAQgCWotAAA6AAAgBEEBaiEEIAhBAWoiCEEERyIUDQELCyMBRQRAQQQhCEEBIQkMAgsLIwFFBEAgCEEJTyIEDa4BIAhBAnYhCSAFIQQLCyMBRQRAIAkgDEsiBQ2uASAHQQhqIQwgB0EwaiEFCyALQeQARkEBIwEbBEAgBSASIAwgCCAPIAkQOEHkACMBQQFGDYsCGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3sASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAHQRBqIhAgBEECdGoiBCgCAAsLIQYjAUUEQCANIAU6AAwgDSAGIA5qNgIIIA0gCjYCBCANIA42AgAMiAILCyMBRQRAIAogBygCMGohBSAGIAQgDmoiBEsiCg0BCwsLIwFFBEACQCAEIAZPDQADQCASIAQgEGotAABqLQAAQYEBRw0BIAYgBEEBaiIERw0ACwzzAQsgBCAGRg3yASANQQA6AAwgDSAENgIIIA0gBTYCBCANIAQ2AgAMhQILCyAFQQAjARshBQJAIwFFBEAgBkUEQEEAIQQMAgsgB0EoaiETIAdBIGohGCAHQRhqIRlBACEECwNAIwFFBEAgBiAEayIIQXxxIgkgBGohDiAJIA5LIgoNqwEgBiAOSSIKDawBIAhBAnZB/////wFxIgggBWoiCiAISSIMDa0BIAogEUsiDA2uASAEIBBqIQwgBSAXaiEPIAdBEGohCgsgC0HlAEZBASMBGwRAIAogEiAMIAkgDyAIEGZB5QAjAUEBRg2HAhoLIwFFBEAgBygCECEJIActABxBBEciCkUEQCAFIAlqIQUgDiEEDAMLIAQgCWoiDiAGSyIEDa8BIAUgBygCFGoiCiARSyIEDbABIAYgDmshBSAOIBBqIQkgB0IANwMIIBNCADcDACAYQgA3AwAgGUIANwMAIAdCADcDECARIAprIQwgCiAXaiEPQQAhCEEAIQQLAkACfwJAAkACQANAIBQgBCAFTyMBGyEUAkAjAUUEQAJAAkAgFA0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFA0ACwwBCyAEIAVHIhQNAgsgCCAIQfz///8HcSIERiIJDQMgBEEISSIQDQULIAtB5gBGQQEjARsEQCAEQQhBzKUEEKIBQeYAIwFBAUYNjgIaCyMBRQRAAAsLIwFFBEAgB0EQaiAIQQJ0aiAENgIAIAQgBU8NtwEgB0EIaiAIaiAEIAlqLQAAOgAAIARBAWohBCAIQQFqIghBBEciFA0BCwsjAUUEQEEEIQhBASEJDAILCyMBRQRAIAhBCU8iBA22ASAIQQJ2IQkgBSEECwsjAUUEQCAJIAxLIgUNtgEgB0EIaiEMIAdBMGohBQsgC0HnAEZBASMBGwRAIAUgEiAMIAggDyAJEGZB5wAjAUEBRg2KAhoLIwFFBEAgBy0APCIFQQRGIggNAyAHKAI4IgZBCE8N7AEgBkECdCIQIAdBEGpqIgQoAgAMAgsLIwEEfyAGBUEAIQUgB0EQaiIQIARBAnRqIgQoAgALCyEGIwFFBEAgDSAFOgAMIA0gBiAOajYCCCANIAo2AgQgDSAONgIADIcCCwsjAUUEQCAKIAcoAjBqIQUgBiAEIA5qIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM8QELIAQgBkYN8AEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIQCCwsgC0HoAEZBASMBGwRAIAQQwgFB6AAjAUEBRg2EAhohCQsgC0HpAEZBASMBGwRAIAQQyAFB6QAjAUEBRg2EAhohCAsjAUUEQCAEQQhqKAIAIQULIAtB6gBGQQEjARsEQCAEEMMBQeoAIwFBAUYNhAIaIQoLIAtB6wBGQQEjARsEQCAEEM0BQesAIwFBAUYNhAIaIRILAkACQAJAIwFFBEAgCQ0BIAhB/wFxIgQNAiAFQYIESyIEDQMLIAtB7ABGQQEjARsEQCANIBIgECAGIBcgERBoQewAIwFBAUYNhwIaCyMBRQ2FAgsgBCAIQf8BcSMBGyEEAkACQCMBRQRAIAQNASAFQYIESyIEDQILIAtB7QBGQQEjARsEQCANIBIgECAGIBcgERBpQe0AIwFBAUYNiAIaCyMBRQ2GAgsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtB7gBGQQEjARsEQCANIBIgECAGIBcgERA5Qe4AIwFBAUYNiAIaCyMBRQ2GAgsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohEyAHQSBqIRggB0EYaiEZQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIQ4gCSAOSyIKDbYBIAYgDkkiCg23ASAIQQN2IgggBWoiCiAISSIMDbgBIAogEUsiDA25ASAEIBBqIQwgBSAXaiEPIAdBEGohCgsgC0HvAEZBASMBGwRAIAogEiAMIAkgDyAIEDlB7wAjAUEBRg2JAhoLIwFFBEAgBygCECEJIActABxBBEciCkUEQCAFIAlqIQUgDiEEDAMLIAQgCWoiDiAGSyIEDboBIAUgBygCFGoiCiARSyIEDbsBIAYgDmshBSAOIBBqIQkgB0IANwMIIBNCADcDACAYQgA3AwAgGUIANwMAIAdCADcDECARIAprIQwgCiAXaiEPQQAhCEEAIQQLAkACfwJAAkACQANAIBQgBCAFTyMBGyEUAkAjAUUEQAJAAkAgFA0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFA0ACwwBCyAEIAVHIhQNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQfAARkEBIwEbBEAgBEEIQcylBBCiAUHwACMBQQFGDZACGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDcIBIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhQNAQsLIwFFBEBBCCEIQQEhCQwCCwsjAUUEQCAIQQlPIgQNwQEgCEEDdiEJIAUhBAsLIwFFBEAgCSAMSyIFDcEBIAdBCGohDCAHQTBqIQULIAtB8QBGQQEjARsEQCAFIBIgDCAIIA8gCRA5QfEAIwFBAUYNjAIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDe8BIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAcoAhALCyEGIwFFBEAgDSAFOgAMIA0gBiAOajYCCCANIAo2AgQgDSAONgIADIkCCwsjAUUEQCAKIAcoAjBqIQUgBiAEIA5qIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM8gELIAQgBkYN8QEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIYCCwsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohEyAHQSBqIRggB0EYaiEZQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIQ4gCSAOSyIKDb4BIAYgDkkiCg2/ASAIQQN2IgggBWoiCiAISSIMDcABIAogEUsiDA3BASAEIBBqIQwgBSAXaiEPIAdBEGohCgsgC0HyAEZBASMBGwRAIAogEiAMIAkgDyAIEGlB8gAjAUEBRg2IAhoLIwFFBEAgBygCECEJIActABxBBEciCkUEQCAFIAlqIQUgDiEEDAMLIAQgCWoiDiAGSyIEDcIBIAUgBygCFGoiCiARSyIEDcMBIAYgDmshBSAOIBBqIQkgB0IANwMIIBNCADcDACAYQgA3AwAgGUIANwMAIAdCADcDECARIAprIQwgCiAXaiEPQQAhCEEAIQQLAkACfwJAAkACQANAIBQgBCAFTyMBGyEUAkAjAUUEQAJAAkAgFA0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFA0ACwwBCyAEIAVHIhQNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQfMARkEBIwEbBEAgBEEIQcylBBCiAUHzACMBQQFGDY8CGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDcoBIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhQNAQsLIwFFBEBBCCEIQQEhCQwCCwsjAUUEQCAIQQlPIgQNyQEgCEEDdiEJIAUhBAsLIwFFBEAgCSAMSyIFDckBIAdBCGohDCAHQTBqIQULIAtB9ABGQQEjARsEQCAFIBIgDCAIIA8gCRBpQfQAIwFBAUYNiwIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDe8BIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAcoAhALCyEGIwFFBEAgDSAFOgAMIA0gBiAOajYCCCANIAo2AgQgDSAONgIADIgCCwsjAUUEQCAKIAcoAjBqIQUgBiAEIA5qIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM8AELIAQgBkYN7wEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIUCCwsjAUVBACAEIAVBggRLIwEbIgQbRQRAIAtB9QBGQQEjARsEQCANIBIgECAGIBcgERA6QfUAIwFBAUYNhgIaCyMBRQ2EAgsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohEyAHQSBqIRggB0EYaiEZQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIQ4gCSAOSyIKDcYBIAYgDkkiCg3HASAIQQN2IgggBWoiCiAISSIMDcgBIAogEUsiDA3JASAEIBBqIQwgBSAXaiEPIAdBEGohCgsgC0H2AEZBASMBGwRAIAogEiAMIAkgDyAIEDpB9gAjAUEBRg2HAhoLIwFFBEAgBygCECEJIActABxBBEciCkUEQCAFIAlqIQUgDiEEDAMLIAQgCWoiDiAGSyIEDcoBIAUgBygCFGoiCiARSyIEDcsBIAYgDmshBSAOIBBqIQkgB0IANwMIIBNCADcDACAYQgA3AwAgGUIANwMAIAdCADcDECARIAprIQwgCiAXaiEPQQAhCEEAIQQLAkACfwJAAkACQANAIBQgBCAFTyMBGyEUAkAjAUUEQAJAAkAgFA0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFA0ACwwBCyAEIAVHIhQNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQfcARkEBIwEbBEAgBEEIQcylBBCiAUH3ACMBQQFGDY4CGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDdIBIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhQNAQsLIwFFBEBBCCEIQQEhCQwCCwsjAUUEQCAIQQlPIgQN0QEgCEEDdiEJIAUhBAsLIwFFBEAgCSAMSyIFDdEBIAdBCGohDCAHQTBqIQULIAtB+ABGQQEjARsEQCAFIBIgDCAIIA8gCRA6QfgAIwFBAUYNigIaCyMBRQRAIActADwiBUEERiIIDQMgBygCOCIGQQhPDe8BIAZBAnQiECAHQRBqaiIEKAIADAILCyMBBH8gBgVBACEFIAcoAhALCyEGIwFFBEAgDSAFOgAMIA0gBiAOajYCCCANIAo2AgQgDSAONgIADIcCCwsjAUUEQCAKIAcoAjBqIQUgBiAEIA5qIgRLIgoNAQsLCyMBRQRAAkAgBCAGTw0AA0AgEiAEIBBqLQAAai0AAEGBAUcNASAGIARBAWoiBEcNAAsM7gELIAQgBkYN7QEgDUEAOgAMIA0gBDYCCCANIAU2AgQgDSAENgIADIQCCwsgBUEAIwEbIQUCQCMBRQRAIAZFBEBBACEEDAILIAdBKGohEyAHQSBqIRggB0EYaiEZQQAhBAsDQCMBRQRAIAYgBGsiCEF4cSIJIARqIQ4gCSAOSyIKDc4BIAYgDkkiCg3PASAIQQN2IgggBWoiCiAISSIMDdABIAogEUsiDA3RASAEIBBqIQwgBSAXaiEPIAdBEGohCgsgC0H5AEZBASMBGwRAIAogEiAMIAkgDyAIEGhB+QAjAUEBRg2GAhoLIwFFBEAgBygCECEJIActABxBBEciCkUEQCAFIAlqIQUgDiEEDAMLIAQgCWoiDiAGSyIEDdIBIAUgBygCFGoiCiARSyIEDdMBIAYgDmshBSAOIBBqIQkgB0IANwMIIBNCADcDACAYQgA3AwAgGUIANwMAIAdCADcDECARIAprIQwgCiAXaiEPQQAhCEEAIQQLAkACfwJAAkACQANAIBQgBCAFTyMBGyEUAkAjAUUEQAJAAkAgFA0AA0AgEiAEIAlqLQAAai0AAEGBAUcNASAFIARBAWoiBEciFA0ACwwBCyAEIAVHIhQNAgsgCCAIQfj///8HcSIERiIJDQMgBEUiEA0FCyALQfoARkEBIwEbBEAgBEEIQcylBBCiAUH6ACMBQQFGDY0CGgsjAUUEQAALCyMBRQRAIAdBEGogCEECdGogBDYCACAEIAVPDdoBIAdBCGogCGogBCAJai0AADoAACAEQQFqIQQgCEEBaiIIQQhHIhQNAQsLIwFFBEBBCCEIQQEhCQwCCwsjAUUEQCAIQQlPDdkBIAhBA3YhCSAFIQQLCyMBRQRAIAkgDEsiBQ3ZASAHQQhqIQwgB0EwaiEFCyALQfsARkEBIwEbBEAgBSASIAwgCCAPIAkQaEH7ACMBQQFGDYkCGgsjAUUEQCAHLQA8IgVBBEYiCA0DIAcoAjgiBkEITw3vASAGQQJ0IhAgB0EQamoiBCgCAAwCCwsjAQR/IAYFQQAhBSAHKAIQCwshBiMBRQRAIA0gBToADCANIAYgDmo2AgggDSAKNgIEIA0gDjYCAAyGAgsLIwFFBEAgCiAHKAIwaiEFIAYgBCAOaiIESyIKDQELCwsjAUUEQAJAIAQgBk8NAANAIBIgBCAQai0AAGotAABBgQFHDQEgBiAEQQFqIgRHDQALDOwBCyAEIAZGDesBIA1BADoADCANIAQ2AgggDSAFNgIEIA0gBDYCAAyDAgsLIAtB/ABGQQEjARsEQCAEIApB7KUEEPABQfwAIwFBAUYNgwIaCyMBRQRAAAsLIAtB/QBGQQEjARsEQCAKIAZB7KUEEO8BQf0AIwFBAUYNggIaCyMBRQRAAAsLIAtB/gBGQQEjARsEQCAFIAxB/KUEEPABQf4AIwFBAUYNgQIaCyMBRQRAAAsLIAtB/wBGQQEjARsEQCAMIBFB/KUEEO8BQf8AIwFBAUYNgAIaCyMBRQRAAAsLIAtBgAFGQQEjARsEQCAKIAZBjKYEEO4BQYABIwFBAUYN/wEaCyMBRQRAAAsLIAtBgQFGQQEjARsEQCAMIBFBnKYEEO4BQYEBIwFBAUYN/gEaCyMBRQRAAAsLIAtBggFGQQEjARsEQCAEIAVBnKUEEKIBQYIBIwFBAUYN/QEaCyMBRQRAAAsLIAtBgwFGQQEjARsEQCAIQQhBrKUEEO8BQYMBIwFBAUYN/AEaCyMBRQRAAAsLIAtBhAFGQQEjARsEQCAJIA9BvKUEEO8BQYQBIwFBAUYN+wEaCyMBRQRAAAsLIAtBhQFGQQEjARsEQCAEIApB7KUEEPABQYUBIwFBAUYN+gEaCyMBRQRAAAsLIAtBhgFGQQEjARsEQCAKIAZB7KUEEO8BQYYBIwFBAUYN+QEaCyMBRQRAAAsLIAtBhwFGQQEjARsEQCAFIAxB/KUEEPABQYcBIwFBAUYN+AEaCyMBRQRAAAsLIAtBiAFGQQEjARsEQCAMIBFB/KUEEO8BQYgBIwFBAUYN9wEaCyMBRQRAAAsLIAtBiQFGQQEjARsEQCAKIAZBjKYEEO4BQYkBIwFBAUYN9gEaCyMBRQRAAAsLIAtBigFGQQEjARsEQCAMIBFBnKYEEO4BQYoBIwFBAUYN9QEaCyMBRQRAAAsLIAtBiwFGQQEjARsEQCAEIAVBnKUEEKIBQYsBIwFBAUYN9AEaCyMBRQRAAAsLIAtBjAFGQQEjARsEQCAIQQhBrKUEEO8BQYwBIwFBAUYN8wEaCyMBRQRAAAsLIAtBjQFGQQEjARsEQCAJIA9BvKUEEO8BQY0BIwFBAUYN8gEaCyMBRQRAAAsLIAtBjgFGQQEjARsEQCAEIApB7KUEEPABQY4BIwFBAUYN8QEaCyMBRQRAAAsLIAtBjwFGQQEjARsEQCAKIAZB7KUEEO8BQY8BIwFBAUYN8AEaCyMBRQRAAAsLIAtBkAFGQQEjARsEQCAFIAxB/KUEEPABQZABIwFBAUYN7wEaCyMBRQRAAAsLIAtBkQFGQQEjARsEQCAMIBFB/KUEEO8BQZEBIwFBAUYN7gEaCyMBRQRAAAsLIAtBkgFGQQEjARsEQCAKIAZBjKYEEO4BQZIBIwFBAUYN7QEaCyMBRQRAAAsLIAtBkwFGQQEjARsEQCAMIBFBnKYEEO4BQZMBIwFBAUYN7AEaCyMBRQRAAAsLIAtBlAFGQQEjARsEQCAEIAVBnKUEEKIBQZQBIwFBAUYN6wEaCyMBRQRAAAsLIAtBlQFGQQEjARsEQCAIQQhBrKUEEO8BQZUBIwFBAUYN6gEaCyMBRQRAAAsLIAtBlgFGQQEjARsEQCAJIA9BvKUEEO8BQZYBIwFBAUYN6QEaCyMBRQRAAAsLIAtBlwFGQQEjARsEQCAEIApB7KUEEPABQZcBIwFBAUYN6AEaCyMBRQRAAAsLIAtBmAFGQQEjARsEQCAKIAZB7KUEEO8BQZgBIwFBAUYN5wEaCyMBRQRAAAsLIAtBmQFGQQEjARsEQCAFIAxB/KUEEPABQZkBIwFBAUYN5gEaCyMBRQRAAAsLIAtBmgFGQQEjARsEQCAMIBFB/KUEEO8BQZoBIwFBAUYN5QEaCyMBRQRAAAsLIAtBmwFGQQEjARsEQCAKIAZBjKYEEO4BQZsBIwFBAUYN5AEaCyMBRQRAAAsLIAtBnAFGQQEjARsEQCAMIBFBnKYEEO4BQZwBIwFBAUYN4wEaCyMBRQRAAAsLIAtBnQFGQQEjARsEQCAEIAVBnKUEEKIBQZ0BIwFBAUYN4gEaCyMBRQRAAAsLIAtBngFGQQEjARsEQCAIQQhBrKUEEO8BQZ4BIwFBAUYN4QEaCyMBRQRAAAsLIAtBnwFGQQEjARsEQCAJIA9BvKUEEO8BQZ8BIwFBAUYN4AEaCyMBRQRAAAsLIAtBoAFGQQEjARsEQCAEIApB7KUEEPABQaABIwFBAUYN3wEaCyMBRQRAAAsLIAtBoQFGQQEjARsEQCAKIAZB7KUEEO8BQaEBIwFBAUYN3gEaCyMBRQRAAAsLIAtBogFGQQEjARsEQCAFIAxB/KUEEPABQaIBIwFBAUYN3QEaCyMBRQRAAAsLIAtBowFGQQEjARsEQCAMIBFB/KUEEO8BQaMBIwFBAUYN3AEaCyMBRQRAAAsLIAtBpAFGQQEjARsEQCAKIAZBjKYEEO4BQaQBIwFBAUYN2wEaCyMBRQRAAAsLIAtBpQFGQQEjARsEQCAMIBFBnKYEEO4BQaUBIwFBAUYN2gEaCyMBRQRAAAsLIAtBpgFGQQEjARsEQCAEIAVBnKUEEKIBQaYBIwFBAUYN2QEaCyMBRQRAAAsLIAtBpwFGQQEjARsEQCAIQQhBrKUEEO8BQacBIwFBAUYN2AEaCyMBRQRAAAsLIAtBqAFGQQEjARsEQCAJIA9BvKUEEO8BQagBIwFBAUYN1wEaCyMBRQRAAAsLIAtBqQFGQQEjARsEQCAEIApB7KUEEPABQakBIwFBAUYN1gEaCyMBRQRAAAsLIAtBqgFGQQEjARsEQCAKIAZB7KUEEO8BQaoBIwFBAUYN1QEaCyMBRQRAAAsLIAtBqwFGQQEjARsEQCAFIAxB/KUEEPABQasBIwFBAUYN1AEaCyMBRQRAAAsLIAtBrAFGQQEjARsEQCAMIBFB/KUEEO8BQawBIwFBAUYN0wEaCyMBRQRAAAsLIAtBrQFGQQEjARsEQCAKIAZBjKYEEO4BQa0BIwFBAUYN0gEaCyMBRQRAAAsLIAtBrgFGQQEjARsEQCAMIBFBnKYEEO4BQa4BIwFBAUYN0QEaCyMBRQRAAAsLIAtBrwFGQQEjARsEQCAEIAVBnKUEEKIBQa8BIwFBAUYN0AEaCyMBRQRAAAsLIAtBsAFGQQEjARsEQCAIQQhBrKUEEO8BQbABIwFBAUYNzwEaCyMBRQRAAAsLIAtBsQFGQQEjARsEQCAJIA9BvKUEEO8BQbEBIwFBAUYNzgEaCyMBRQRAAAsLIAtBsgFGQQEjARsEQCAEIApB7KUEEPABQbIBIwFBAUYNzQEaCyMBRQRAAAsLIAtBswFGQQEjARsEQCAKIAZB7KUEEO8BQbMBIwFBAUYNzAEaCyMBRQRAAAsLIAtBtAFGQQEjARsEQCAFIAxB/KUEEPABQbQBIwFBAUYNywEaCyMBRQRAAAsLIAtBtQFGQQEjARsEQCAMIBFB/KUEEO8BQbUBIwFBAUYNygEaCyMBRQRAAAsLIAtBtgFGQQEjARsEQCAKIAZBjKYEEO4BQbYBIwFBAUYNyQEaCyMBRQRAAAsLIAtBtwFGQQEjARsEQCAMIBFBnKYEEO4BQbcBIwFBAUYNyAEaCyMBRQRAAAsLIAtBuAFGQQEjARsEQCAEIAVBnKUEEKIBQbgBIwFBAUYNxwEaCyMBRQRAAAsLIAtBuQFGQQEjARsEQCAIQQhBrKUEEO8BQbkBIwFBAUYNxgEaCyMBRQRAAAsLIAtBugFGQQEjARsEQCAJIA9BvKUEEO8BQboBIwFBAUYNxQEaCyMBRQRAAAsLIAtBuwFGQQEjARsEQCAEIApB7KUEEPABQbsBIwFBAUYNxAEaCyMBRQRAAAsLIAtBvAFGQQEjARsEQCAKIAZB7KUEEO8BQbwBIwFBAUYNwwEaCyMBRQRAAAsLIAtBvQFGQQEjARsEQCAFIAxB/KUEEPABQb0BIwFBAUYNwgEaCyMBRQRAAAsLIAtBvgFGQQEjARsEQCAMIBFB/KUEEO8BQb4BIwFBAUYNwQEaCyMBRQRAAAsLIAtBvwFGQQEjARsEQCAKIAZBjKYEEO4BQb8BIwFBAUYNwAEaCyMBRQRAAAsLIAtBwAFGQQEjARsEQCAMIBFBnKYEEO4BQcABIwFBAUYNvwEaCyMBRQRAAAsLIAtBwQFGQQEjARsEQCAEIAVBnKUEEKIBQcEBIwFBAUYNvgEaCyMBRQRAAAsLIAtBwgFGQQEjARsEQCAIQQhBrKUEEO8BQcIBIwFBAUYNvQEaCyMBRQRAAAsLIAtBwwFGQQEjARsEQCAJIA9BvKUEEO8BQcMBIwFBAUYNvAEaCyMBRQRAAAsLIAtBxAFGQQEjARsEQCAEIA5B7KUEEPABQcQBIwFBAUYNuwEaCyMBRQRAAAsLIAtBxQFGQQEjARsEQCAOIAZB7KUEEO8BQcUBIwFBAUYNugEaCyMBRQRAAAsLIAtBxgFGQQEjARsEQCAJIApB/KUEEPABQcYBIwFBAUYNuQEaCyMBRQRAAAsLIAtBxwFGQQEjARsEQCAKIBFB/KUEEO8BQccBIwFBAUYNuAEaCyMBRQRAAAsLIAtByAFGQQEjARsEQCAPIAZBjKYEEO4BQcgBIwFBAUYNtwEaCyMBRQRAAAsLIAtByQFGQQEjARsEQCATIBFBnKYEEO4BQckBIwFBAUYNtgEaCyMBRQRAAAsLIAtBygFGQQEjARsEQCAEIAVBnKUEEKIBQcoBIwFBAUYNtQEaCyMBRQRAAAsLIAtBywFGQQEjARsEQEEBQQBBvKUEEO8BQcsBIwFBAUYNtAEaCyMBRQRAAAsLIAtBzAFGQQEjARsEQCAEIA5B7KUEEPABQcwBIwFBAUYNswEaCyMBRQRAAAsLIAtBzQFGQQEjARsEQCAOIAZB7KUEEO8BQc0BIwFBAUYNsgEaCyMBRQRAAAsLIAtBzgFGQQEjARsEQCAJIApB/KUEEPABQc4BIwFBAUYNsQEaCyMBRQRAAAsLIAtBzwFGQQEjARsEQCAKIBFB/KUEEO8BQc8BIwFBAUYNsAEaCyMBRQRAAAsLIAtB0AFGQQEjARsEQCAMIAZBjKYEEO4BQdABIwFBAUYNrwEaCyMBRQRAAAsLIAtB0QFGQQEjARsEQCAPIBFBnKYEEO4BQdEBIwFBAUYNrgEaCyMBRQRAAAsLIAtB0gFGQQEjARsEQCAEIAVBnKUEEKIBQdIBIwFBAUYNrQEaCyMBRQRAAAsLIAtB0wFGQQEjARsEQCAGQQhB3KUEEKIBQdMBIwFBAUYNrAEaCyMBRQRAAAsLIAtB1AFGQQEjARsEQCAEIA5B7KUEEPABQdQBIwFBAUYNqwEaCyMBRQRAAAsLIAtB1QFGQQEjARsEQCAOIAZB7KUEEO8BQdUBIwFBAUYNqgEaCyMBRQRAAAsLIAtB1gFGQQEjARsEQCAJIApB/KUEEPABQdYBIwFBAUYNqQEaCyMBRQRAAAsLIAtB1wFGQQEjARsEQCAKIBFB/KUEEO8BQdcBIwFBAUYNqAEaCyMBRQRAAAsLIAtB2AFGQQEjARsEQCAPIAZBjKYEEO4BQdgBIwFBAUYNpwEaCyMBRQRAAAsLIAtB2QFGQQEjARsEQCATIBFBnKYEEO4BQdkBIwFBAUYNpgEaCyMBRQRAAAsLIAtB2gFGQQEjARsEQCAEIAVBnKUEEKIBQdoBIwFBAUYNpQEaCyMBRQRAAAsLIAtB2wFGQQEjARsEQEEBQQBBvKUEEO8BQdsBIwFBAUYNpAEaCyMBRQRAAAsLIAtB3AFGQQEjARsEQCAEIA5B7KUEEPABQdwBIwFBAUYNowEaCyMBRQRAAAsLIAtB3QFGQQEjARsEQCAOIAZB7KUEEO8BQd0BIwFBAUYNogEaCyMBRQRAAAsLIAtB3gFGQQEjARsEQCAJIApB/KUEEPABQd4BIwFBAUYNoQEaCyMBRQRAAAsLIAtB3wFGQQEjARsEQCAKIBFB/KUEEO8BQd8BIwFBAUYNoAEaCyMBRQRAAAsLIAtB4AFGQQEjARsEQCAMIAZBjKYEEO4BQeABIwFBAUYNnwEaCyMBRQRAAAsLIAtB4QFGQQEjARsEQCAPIBFBnKYEEO4BQeEBIwFBAUYNngEaCyMBRQRAAAsLIAtB4gFGQQEjARsEQCAEIAVBnKUEEKIBQeIBIwFBAUYNnQEaCyMBRQRAAAsLIAtB4wFGQQEjARsEQCAGQQhB3KUEEKIBQeMBIwFBAUYNnAEaCyMBRQRAAAsLIAtB5AFGQQEjARsEQCAEIApB7KUEEPABQeQBIwFBAUYNmwEaCyMBRQRAAAsLIAtB5QFGQQEjARsEQCAKIAZB7KUEEO8BQeUBIwFBAUYNmgEaCyMBRQRAAAsLIAtB5gFGQQEjARsEQCAFIAxB/KUEEPABQeYBIwFBAUYNmQEaCyMBRQRAAAsLIAtB5wFGQQEjARsEQCAMIBFB/KUEEO8BQecBIwFBAUYNmAEaCyMBRQRAAAsLIAtB6AFGQQEjARsEQCAKIAZBjKYEEO4BQegBIwFBAUYNlwEaCyMBRQRAAAsLIAtB6QFGQQEjARsEQCAMIBFBnKYEEO4BQekBIwFBAUYNlgEaCyMBRQRAAAsLIAtB6gFGQQEjARsEQCAEIAVBnKUEEKIBQeoBIwFBAUYNlQEaCyMBRQRAAAsLIAtB6wFGQQEjARsEQCAIQQhBrKUEEO8BQesBIwFBAUYNlAEaCyMBRQRAAAsLIAtB7AFGQQEjARsEQCAJIA9BvKUEEO8BQewBIwFBAUYNkwEaCyMBRQRAAAsLIAtB7QFGQQEjARsEQCAEIApB7KUEEPABQe0BIwFBAUYNkgEaCyMBRQRAAAsLIAtB7gFGQQEjARsEQCAKIAZB7KUEEO8BQe4BIwFBAUYNkQEaCyMBRQRAAAsLIAtB7wFGQQEjARsEQCAFIAxB/KUEEPABQe8BIwFBAUYNkAEaCyMBRQRAAAsLIAtB8AFGQQEjARsEQCAMIBFB/KUEEO8BQfABIwFBAUYNjwEaCyMBRQRAAAsLIAtB8QFGQQEjARsEQCAKIAZBjKYEEO4BQfEBIwFBAUYNjgEaCyMBRQRAAAsLIAtB8gFGQQEjARsEQCAMIBFBnKYEEO4BQfIBIwFBAUYNjQEaCyMBRQRAAAsLIAtB8wFGQQEjARsEQCAEIAVBnKUEEKIBQfMBIwFBAUYNjAEaCyMBRQRAAAsLIAtB9AFGQQEjARsEQCAIQQhBrKUEEO8BQfQBIwFBAUYNiwEaCyMBRQRAAAsLIAtB9QFGQQEjARsEQCAJIA9BvKUEEO8BQfUBIwFBAUYNigEaCyMBRQRAAAsLIAtB9gFGQQEjARsEQCAEIApB7KUEEPABQfYBIwFBAUYNiQEaCyMBRQRAAAsLIAtB9wFGQQEjARsEQCAKIAZB7KUEEO8BQfcBIwFBAUYNiAEaCyMBRQRAAAsLIAtB+AFGQQEjARsEQCAFIAxB/KUEEPABQfgBIwFBAUYNhwEaCyMBRQRAAAsLIAtB+QFGQQEjARsEQCAMIBFB/KUEEO8BQfkBIwFBAUYNhgEaCyMBRQRAAAsLIAtB+gFGQQEjARsEQCAKIAZBjKYEEO4BQfoBIwFBAUYNhQEaCyMBRQRAAAsLIAtB+wFGQQEjARsEQCAMIBFBnKYEEO4BQfsBIwFBAUYNhAEaCyMBRQRAAAsLIAtB/AFGQQEjARsEQCAEIAVBnKUEEKIBQfwBIwFBAUYNgwEaCyMBRQRAAAsLIAtB/QFGQQEjARsEQCAIQQhBrKUEEO8BQf0BIwFBAUYNggEaCyMBRQRAAAsLIAtB/gFGQQEjARsEQCAJIA9BvKUEEO8BQf4BIwFBAUYNgQEaCyMBRQRAAAsLIAtB/wFGQQEjARsEQCAEIApB7KUEEPABQf8BIwFBAUYNgAEaCyMBRQRAAAsLIAtBgAJGQQEjARsEQCAKIAZB7KUEEO8BQYACIwFBAUYNfxoLIwFFBEAACwsgC0GBAkZBASMBGwRAIAUgDEH8pQQQ8AFBgQIjAUEBRg1+GgsjAUUEQAALCyALQYICRkEBIwEbBEAgDCARQfylBBDvAUGCAiMBQQFGDX0aCyMBRQRAAAsLIAtBgwJGQQEjARsEQCAKIAZBjKYEEO4BQYMCIwFBAUYNfBoLIwFFBEAACwsgC0GEAkZBASMBGwRAIAwgEUGcpgQQ7gFBhAIjAUEBRg17GgsjAUUEQAALCyALQYUCRkEBIwEbBEAgBCAFQZylBBCiAUGFAiMBQQFGDXoaCyMBRQRAAAsLIAtBhgJGQQEjARsEQCAIQQhBrKUEEO8BQYYCIwFBAUYNeRoLIwFFBEAACwsgC0GHAkZBASMBGwRAIAkgD0G8pQQQ7wFBhwIjAUEBRg14GgsjAUUEQAALCyALQYgCRkEBIwEbBEAgBCAOQeylBBDwAUGIAiMBQQFGDXcaCyMBRQRAAAsLIAtBiQJGQQEjARsEQCAOIAZB7KUEEO8BQYkCIwFBAUYNdhoLIwFFBEAACwsgC0GKAkZBASMBGwRAIAUgCkH8pQQQ8AFBigIjAUEBRg11GgsjAUUEQAALCyALQYsCRkEBIwEbBEAgCiARQfylBBDvAUGLAiMBQQFGDXQaCyMBRQRAAAsLIAtBjAJGQQEjARsEQCAOIAZBjKYEEO4BQYwCIwFBAUYNcxoLIwFFBEAACwsgC0GNAkZBASMBGwRAIAogEUGcpgQQ7gFBjQIjAUEBRg1yGgsjAUUEQAALCyALQY4CRkEBIwEbBEAgBCAFQZylBBCiAUGOAiMBQQFGDXEaCyMBRQRAAAsLIAtBjwJGQQEjARsEQCAIQQhBrKUEEO8BQY8CIwFBAUYNcBoLIwFFBEAACwsgC0GQAkZBASMBGwRAIAkgDEG8pQQQ7wFBkAIjAUEBRg1vGgsjAUUEQAALCyALQZECRkEBIwEbBEAgBCAOQeylBBDwAUGRAiMBQQFGDW4aCyMBRQRAAAsLIAtBkgJGQQEjARsEQCAOIAZB7KUEEO8BQZICIwFBAUYNbRoLIwFFBEAACwsgC0GTAkZBASMBGwRAIAUgCkH8pQQQ8AFBkwIjAUEBRg1sGgsjAUUEQAALCyALQZQCRkEBIwEbBEAgCiARQfylBBDvAUGUAiMBQQFGDWsaCyMBRQRAAAsLIAtBlQJGQQEjARsEQCAOIAZBjKYEEO4BQZUCIwFBAUYNahoLIwFFBEAACwsgC0GWAkZBASMBGwRAIAogEUGcpgQQ7gFBlgIjAUEBRg1pGgsjAUUEQAALCyALQZcCRkEBIwEbBEAgBCAFQZylBBCiAUGXAiMBQQFGDWgaCyMBRQRAAAsLIAtBmAJGQQEjARsEQCAIQQhBrKUEEO8BQZgCIwFBAUYNZxoLIwFFBEAACwsgC0GZAkZBASMBGwRAIAkgDEG8pQQQ7wFBmQIjAUEBRg1mGgsjAUUEQAALCyALQZoCRkEBIwEbBEAgBCAOQeylBBDwAUGaAiMBQQFGDWUaCyMBRQRAAAsLIAtBmwJGQQEjARsEQCAOIAZB7KUEEO8BQZsCIwFBAUYNZBoLIwFFBEAACwsgC0GcAkZBASMBGwRAIAUgCkH8pQQQ8AFBnAIjAUEBRg1jGgsjAUUEQAALCyALQZ0CRkEBIwEbBEAgCiARQfylBBDvAUGdAiMBQQFGDWIaCyMBRQRAAAsLIAtBngJGQQEjARsEQCAOIAZBjKYEEO4BQZ4CIwFBAUYNYRoLIwFFBEAACwsgC0GfAkZBASMBGwRAIAogEUGcpgQQ7gFBnwIjAUEBRg1gGgsjAUUEQAALCyALQaACRkEBIwEbBEAgBCAFQZylBBCiAUGgAiMBQQFGDV8aCyMBRQRAAAsLIAtBoQJGQQEjARsEQCAIQQhBrKUEEO8BQaECIwFBAUYNXhoLIwFFBEAACwsgC0GiAkZBASMBGwRAIAkgDEG8pQQQ7wFBogIjAUEBRg1dGgsjAUUEQAALCyALQaMCRkEBIwEbBEAgBCAOQeylBBDwAUGjAiMBQQFGDVwaCyMBRQRAAAsLIAtBpAJGQQEjARsEQCAOIAZB7KUEEO8BQaQCIwFBAUYNWxoLIwFFBEAACwsgC0GlAkZBASMBGwRAIAUgCkH8pQQQ8AFBpQIjAUEBRg1aGgsjAUUEQAALCyALQaYCRkEBIwEbBEAgCiARQfylBBDvAUGmAiMBQQFGDVkaCyMBRQRAAAsLIAtBpwJGQQEjARsEQCAOIAZBjKYEEO4BQacCIwFBAUYNWBoLIwFFBEAACwsgC0GoAkZBASMBGwRAIAogEUGcpgQQ7gFBqAIjAUEBRg1XGgsjAUUEQAALCyALQakCRkEBIwEbBEAgBCAFQZylBBCiAUGpAiMBQQFGDVYaCyMBRQRAAAsLIAtBqgJGQQEjARsEQCAIQQhBrKUEEO8BQaoCIwFBAUYNVRoLIwFFBEAACwsgC0GrAkZBASMBGwRAIAkgDEG8pQQQ7wFBqwIjAUEBRg1UGgsjAUUEQAALCyALQawCRkEBIwEbBEAgBCAOQeylBBDwAUGsAiMBQQFGDVMaCyMBRQRAAAsLIAtBrQJGQQEjARsEQCAOIAZB7KUEEO8BQa0CIwFBAUYNUhoLIwFFBEAACwsgC0GuAkZBASMBGwRAIAUgCkH8pQQQ8AFBrgIjAUEBRg1RGgsjAUUEQAALCyALQa8CRkEBIwEbBEAgCiARQfylBBDvAUGvAiMBQQFGDVAaCyMBRQRAAAsLIAtBsAJGQQEjARsEQCAOIAZBjKYEEO4BQbACIwFBAUYNTxoLIwFFBEAACwsgC0GxAkZBASMBGwRAIAogEUGcpgQQ7gFBsQIjAUEBRg1OGgsjAUUEQAALCyALQbICRkEBIwEbBEAgBCAFQZylBBCiAUGyAiMBQQFGDU0aCyMBRQRAAAsLIAtBswJGQQEjARsEQCAIQQhBrKUEEO8BQbMCIwFBAUYNTBoLIwFFBEAACwsgC0G0AkZBASMBGwRAIAkgDEG8pQQQ7wFBtAIjAUEBRg1LGgsjAUUEQAALCyALQbUCRkEBIwEbBEAgBCAOQeylBBDwAUG1AiMBQQFGDUoaCyMBRQRAAAsLIAtBtgJGQQEjARsEQCAOIAZB7KUEEO8BQbYCIwFBAUYNSRoLIwFFBEAACwsgC0G3AkZBASMBGwRAIAUgCkH8pQQQ8AFBtwIjAUEBRg1IGgsjAUUEQAALCyALQbgCRkEBIwEbBEAgCiARQfylBBDvAUG4AiMBQQFGDUcaCyMBRQRAAAsLIAtBuQJGQQEjARsEQCAOIAZBjKYEEO4BQbkCIwFBAUYNRhoLIwFFBEAACwsgC0G6AkZBASMBGwRAIAogEUGcpgQQ7gFBugIjAUEBRg1FGgsjAUUEQAALCyALQbsCRkEBIwEbBEAgBCAFQZylBBCiAUG7AiMBQQFGDUQaCyMBRQRAAAsLIAtBvAJGQQEjARsEQCAIQQhBrKUEEO8BQbwCIwFBAUYNQxoLIwFFBEAACwsgC0G9AkZBASMBGwRAIAkgDEG8pQQQ7wFBvQIjAUEBRg1CGgsjAUUEQAALCyALQb4CRkEBIwEbBEAgBCAOQeylBBDwAUG+AiMBQQFGDUEaCyMBRQRAAAsLIAtBvwJGQQEjARsEQCAOIAZB7KUEEO8BQb8CIwFBAUYNQBoLIwFFBEAACwsgC0HAAkZBASMBGwRAIAUgCkH8pQQQ8AFBwAIjAUEBRg0/GgsjAUUEQAALCyALQcECRkEBIwEbBEAgCiARQfylBBDvAUHBAiMBQQFGDT4aCyMBRQRAAAsLIAtBwgJGQQEjARsEQCAOIAZBjKYEEO4BQcICIwFBAUYNPRoLIwFFBEAACwsgC0HDAkZBASMBGwRAIAogEUGcpgQQ7gFBwwIjAUEBRg08GgsjAUUEQAALCyALQcQCRkEBIwEbBEAgBCAFQZylBBCiAUHEAiMBQQFGDTsaCyMBRQRAAAsLIAtBxQJGQQEjARsEQCAIQQhBrKUEEO8BQcUCIwFBAUYNOhoLIwFFBEAACwsgC0HGAkZBASMBGwRAIAkgDEG8pQQQ7wFBxgIjAUEBRg05GgsjAUUEQAALCyALQccCRkEBIwEbBEAgBCAOQeylBBDwAUHHAiMBQQFGDTgaCyMBRQRAAAsLIAtByAJGQQEjARsEQCAOIAZB7KUEEO8BQcgCIwFBAUYNNxoLIwFFBEAACwsgC0HJAkZBASMBGwRAIAUgCkH8pQQQ8AFByQIjAUEBRg02GgsjAUUEQAALCyALQcoCRkEBIwEbBEAgCiARQfylBBDvAUHKAiMBQQFGDTUaCyMBRQRAAAsLIAtBywJGQQEjARsEQCAOIAZBjKYEEO4BQcsCIwFBAUYNNBoLIwFFBEAACwsgC0HMAkZBASMBGwRAIAogEUGcpgQQ7gFBzAIjAUEBRg0zGgsjAUUEQAALCyALQc0CRkEBIwEbBEAgBCAFQZylBBCiAUHNAiMBQQFGDTIaCyMBRQRAAAsLIAtBzgJGQQEjARsEQCAIQQhBrKUEEO8BQc4CIwFBAUYNMRoLIwFFBEAACwsgC0HPAkZBASMBGwRAIAkgDEG8pQQQ7wFBzwIjAUEBRg0wGgsjAUUEQAALCyALQdACRkEBIwEbBEAgBkEIQdylBBCiAUHQAiMBQQFGDS8aCyMBRQRAAAsLIAtB0QJGQQEjARsEQCAGQQhB3KUEEKIBQdECIwFBAUYNLhoLIwFFBEAACwsgC0HSAkZBASMBGwRAIAZBCEHcpQQQogFB0gIjAUEBRg0tGgsjAUUEQAALCyALQdMCRkEBIwEbBEAgBkEIQdylBBCiAUHTAiMBQQFGDSwaCyMBRQRAAAsLIAtB1AJGQQEjARsEQCAGQQhB3KUEEKIBQdQCIwFBAUYNKxoLIwFFBEAACwsgC0HVAkZBASMBGwRAIAZBCEHcpQQQogFB1QIjAUEBRg0qGgsjAUUEQAALCyALQdYCRkEBIwEbBEAgBkEIQdylBBCiAUHWAiMBQQFGDSkaCyMBRQRAAAsLIAtB1wJGQQEjARsEQCAGQQhB3KUEEKIBQdcCIwFBAUYNKBoLIwFFBEAACwsgC0HYAkZBASMBGwRAIAZBCEHcpQQQogFB2AIjAUEBRg0nGgsjAUUEQAALCyALQdkCRkEBIwEbBEAgBkEIQdylBBCiAUHZAiMBQQFGDSYaCyMBRQRAAAsLIAtB2gJGQQEjARsEQCAGQQhB3KUEEKIBQdoCIwFBAUYNJRoLIwFFBEAACwsgC0HbAkZBASMBGwRAIAZBCEHcpQQQogFB2wIjAUEBRg0kGgsjAUUEQAALCyALQdwCRkEBIwEbBEAgBkEIQdylBBCiAUHcAiMBQQFGDSMaCyMBRQRAAAsLIAtB3QJGQQEjARsEQCAGQQhB3KUEEKIBQd0CIwFBAUYNIhoLIwFFBEAACwsgC0HeAkZBASMBGwRAIAZBCEHcpQQQogFB3gIjAUEBRg0hGgsjAUUEQAALCyALQd8CRkEBIwEbBEAgBkEIQdylBBCiAUHfAiMBQQFGDSAaCyMBRQRAAAsLIAtB4AJGQQEjARsEQCAGQQhB3KUEEKIBQeACIwFBAUYNHxoLIwFFBEAACwsgC0HhAkZBASMBGwRAIAZBCEHcpQQQogFB4QIjAUEBRg0eGgsjAUUEQAALCyALQeICRkEBIwEbBEAgBkEIQdylBBCiAUHiAiMBQQFGDR0aCyMBRQRAAAsLIAtB4wJGQQEjARsEQCAGQQhB3KUEEKIBQeMCIwFBAUYNHBoLIwFFBEAACwsgC0HkAkZBASMBGwRAIAZBCEHcpQQQogFB5AIjAUEBRg0bGgsjAUUEQAALCyALQeUCRkEBIwEbBEAgBkEIQdylBBCiAUHlAiMBQQFGDRoaCyMBRQRAAAsLIwFFBEAgDUEEOgAMIA0gBTYCAAwYCwsjAUUEQCANQQQ6AAwgDSAFNgIADBcLCyMBRQRAIA1BBDoADCANIAU2AgAMFgsLIwFFBEAgDUEEOgAMIA0gBTYCAAwVCwsjAUUEQCANQQQ6AAwgDSAFNgIADBQLCyMBRQRAIA1BBDoADCANIAU2AgAMEwsLIwFFBEAgDUEEOgAMIA0gBTYCAAwSCwsjAUUEQCANQQQ6AAwgDSAFNgIADBELCyMBRQRAIA1BBDoADCANIAU2AgAMEAsLIwFFBEAgDUEEOgAMIA0gBTYCAAwPCwsjAUUEQCANQQQ6AAwgDSAFNgIADA4LCyMBRQRAIA1BBDoADCANIAU2AgAMDQsLIwFFBEAgDUEEOgAMIA0gCTYCAAwMCwsjAUUEQCANQQQ6AAwgDSAJNgIADAsLCyMBRQRAIA1BBDoADCANIAk2AgAMCgsLIwFFBEAgDUEEOgAMIA0gCTYCAAwJCwsjAUUEQCANQQQ6AAwgDSAFNgIADAgLCyMBRQRAIA1BBDoADCANIAU2AgAMBwsLIwFFBEAgDUEEOgAMIA0gBTYCAAwGCwsjAUUEQCANQQQ6AAwgDSAFNgIADAULCyMBRQRAIA1BBDoADCANIAU2AgAMBAsLIwFFBEAgDUEEOgAMIA0gBTYCAAwDCwsjAUUEQCANQQQ6AAwgDSAFNgIADAILCyMBRQRAIA1BBDoADCANIAU2AgALCyMBRQRAIAdBQGskAAsMAQshFiMCKAIAIBY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiFiANNgIAIBYgBDYCBCAWIBA2AgggFiAGNgIMIBYgFzYCECAWIBE2AhQgFiAFNgIYIBYgBzYCHCAWIAg2AiAgFiAJNgIkIBYgCjYCKCAWIAw2AiwgFiAONgIwIBYgDzYCNCAWIBI2AjggFiATNgI8IBYgFDYCQCAWIBU2AkQgFiAYNgJIIBYgGTYCTCMCIwIoAgBB0ABqNgIAC0EBIwFBAUYNBRoLIwFFBEAgHi0ADCIBQQRGBEAgHigCACEBIAAgGjYCBCAAIBs2AgAgACAaIAEgASAaSxs2AggMBQsgHigCCCECIABBCGogAToAACAAIAI2AgQgAEEANgIAIBpFDQQgGxAhDAQLCyAgQQJGQQEjARsEQBDLAUECIwFBAUYNBBoLIwFFBEAACwsjAUUEQAALCyMBRQRAIAAgGjYCBCAAQQA2AgAgAEEIaiAbOgAACwsjAUUEQCAeQRBqJAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIAQgGjYCECAEIBs2AhQgBCAeNgIYIAQgITYCHCMCIwIoAgBBIGo2AgALsgMBA38jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgQoAgAhACAEKAIEIQEgBCgCCCECIAQoAgwhBAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQRBrIgIkACACQQA2AgwgAkEMaiEEAn8gAUGAAU8EQCABQYAQTwRAIAFBgIAETwRAIAIgAUE/cUGAAXI6AA8gAiABQQZ2QT9xQYABcjoADiACIAFBDHZBP3FBgAFyOgANIAIgAUESdkEHcUHwAXI6AAxBBAwDCyACIAFBP3FBgAFyOgAOIAIgAUEMdkHgAXI6AAwgAiABQQZ2QT9xQYABcjoADUEDDAILIAIgAUE/cUGAAXI6AA0gAiABQQZ2QcABcjoADEECDAELIAIgAToADEEBCyEBCyADRUEBIwEbBEAgACAEIAEQLEEAIwFBAUYNARohAQsjAUUEQCACQRBqJAAgAQ8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAENgIMIwIjAigCAEEQajYCAEEAC70EAQZ/IwFBAkYEQCMCIwIoAgBBLGs2AgAjAigCACIGKAIAIQAgBigCBCEBIAYoAgghAiAGKAIMIQMgBigCECEEIAYoAhQhBSAGKAIYIQogBigCHCEIIAYoAiAhCSAGKAIkIQsgBigCKCEGCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwBBEGsiCCQAQX4hBiADQQF2IgshCiAEIQkLAkACQAJ/AkADQAJAIwFFBEAgCg0BIAUgC08iCQ0DCyAHRUEBIwEbBEAgCyAFQaykBBDuAUEAIwFBAUYNBxoLIwFFBEAACwsjAUUEQCAIQQhqIAEgBkECaiIGIAJqQQIgCUEBEIgBIApBAWshCiAJQQFqIQkgCCgCCEUNAQsLIwFFBEAgBiAIKAIMagwCCwsjAQR/IAoFIAggASADQX5xIgEgAmogA0EBcSAEIAtqIAUgC2sQiAEgCCgCAEUNAiABIAgoAgRqCwshASMBRQRAIABBAToADCAAIAE2AgggACABQQF2NgIEIAAgAUF+cTYCAAwCCwsjAUUEQCAAQQQ6AAwgACAFNgIACwsjAUUEQCAIQRBqJAALDwshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByAANgIAIAcgATYCBCAHIAI2AgggByADNgIMIAcgBDYCECAHIAU2AhQgByAKNgIYIAcgCDYCHCAHIAk2AiAgByALNgIkIAcgBjYCKCMCIwIoAgBBLGo2AgALvQQBBn8jAUECRgRAIwIjAigCAEEsazYCACMCKAIAIgYoAgAhACAGKAIEIQEgBigCCCECIAYoAgwhAyAGKAIQIQQgBigCFCEFIAYoAhghCiAGKAIcIQggBigCICEJIAYoAiQhCyAGKAIoIQYLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEQayIIJABBfiEGIANBAXYiCyEKIAQhCQsCQAJAAn8CQANAAkAjAUUEQCAKDQEgBSALTyIJDQMLIAdFQQEjARsEQCALIAVBrKQEEO4BQQAjAUEBRg0HGgsjAUUEQAALCyMBRQRAIAhBCGogASAGQQJqIgYgAmpBAiAJQQEQgAEgCkEBayEKIAlBAWohCSAIKAIIRQ0BCwsjAUUEQCAGIAgoAgxqDAILCyMBBH8gCgUgCCABIANBfnEiASACaiADQQFxIAQgC2ogBSALaxCAASAIKAIARQ0CIAEgCCgCBGoLCyEBIwFFBEAgAEEBOgAMIAAgATYCCCAAIAFBAXY2AgQgACABQX5xNgIADAILCyMBRQRAIABBBDoADCAAIAU2AgALCyMBRQRAIAhBEGokAAsPCyEHIwIoAgAgBzYCACMCIwIoAgBBBGo2AgAjAigCACIHIAA2AgAgByABNgIEIAcgAjYCCCAHIAM2AgwgByAENgIQIAcgBTYCFCAHIAo2AhggByAINgIcIAcgCTYCICAHIAs2AiQgByAGNgIoIwIjAigCAEEsajYCAAu9BAEGfyMBQQJGBEAjAiMCKAIAQSxrNgIAIwIoAgAiBigCACEAIAYoAgQhASAGKAIIIQIgBigCDCEDIAYoAhAhBCAGKAIUIQUgBigCGCEKIAYoAhwhCCAGKAIgIQkgBigCJCELIAYoAighBgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQRBrIggkAEF8IQYgA0ECdiILIQogBCEJCwJAAkACfwJAA0ACQCMBRQRAIAoNASAFIAtPIgkNAwsgB0VBASMBGwRAIAsgBUGspAQQ7gFBACMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgCEEIaiABIAZBBGoiBiACakEEIAlBARCKASAKQQFrIQogCUEBaiEJIAgoAghFDQELCyMBRQRAIAYgCCgCDGoMAgsLIwEEfyAKBSAIIAEgA0F8cSIBIAJqIANBA3EgBCALaiAFIAtrEIoBIAgoAgBFDQIgASAIKAIEagsLIQEjAUUEQCAAQQE6AAwgACABNgIIIAAgAUECdjYCBCAAIAFBfHE2AgAMAgsLIwFFBEAgAEEEOgAMIAAgBTYCAAsLIwFFBEAgCEEQaiQACw8LIQcjAigCACAHNgIAIwIjAigCAEEEajYCACMCKAIAIgcgADYCACAHIAE2AgQgByACNgIIIAcgAzYCDCAHIAQ2AhAgByAFNgIUIAcgCjYCGCAHIAg2AhwgByAJNgIgIAcgCzYCJCAHIAY2AigjAiMCKAIAQSxqNgIAC70EAQZ/IwFBAkYEQCMCIwIoAgBBLGs2AgAjAigCACIGKAIAIQAgBigCBCEBIAYoAgghAiAGKAIMIQMgBigCECEEIAYoAhQhBSAGKAIYIQogBigCHCEIIAYoAiAhCSAGKAIkIQsgBigCKCEGCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwBBEGsiCCQAQXwhBiADQQJ2IgshCiAEIQkLAkACQAJ/AkADQAJAIwFFBEAgCg0BIAUgC08iCQ0DCyAHRUEBIwEbBEAgCyAFQaykBBDuAUEAIwFBAUYNBxoLIwFFBEAACwsjAUUEQCAIQQhqIAEgBkEEaiIGIAJqQQQgCUEBEIEBIApBAWshCiAJQQFqIQkgCCgCCEUNAQsLIwFFBEAgBiAIKAIMagwCCwsjAQR/IAoFIAggASADQXxxIgEgAmogA0EDcSAEIAtqIAUgC2sQgQEgCCgCAEUNAiABIAgoAgRqCwshASMBRQRAIABBAToADCAAIAE2AgggACABQQJ2NgIEIAAgAUF8cTYCAAwCCwsjAUUEQCAAQQQ6AAwgACAFNgIACwsjAUUEQCAIQRBqJAALDwshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByAANgIAIAcgATYCBCAHIAI2AgggByADNgIMIAcgBDYCECAHIAU2AhQgByAKNgIYIAcgCDYCHCAHIAk2AiAgByALNgIkIAcgBjYCKCMCIwIoAgBBLGo2AgALvQQBBn8jAUECRgRAIwIjAigCAEEsazYCACMCKAIAIgYoAgAhACAGKAIEIQEgBigCCCECIAYoAgwhAyAGKAIQIQQgBigCFCEFIAYoAhghCiAGKAIcIQggBigCICEJIAYoAiQhCyAGKAIoIQYLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEQayIIJABBeCEGIANBA3YiCyEKIAQhCQsCQAJAAn8CQANAAkAjAUUEQCAKDQEgBSALTyIJDQMLIAdFQQEjARsEQCALIAVBrKQEEO4BQQAjAUEBRg0HGgsjAUUEQAALCyMBRQRAIAhBCGogASAGQQhqIgYgAmpBCCAJQQEQjQEgCkEBayEKIAlBAWohCSAIKAIIRQ0BCwsjAUUEQCAGIAgoAgxqDAILCyMBBH8gCgUgCCABIANBeHEiASACaiADQQdxIAQgC2ogBSALaxCNASAIKAIARQ0CIAEgCCgCBGoLCyEBIwFFBEAgAEEBOgAMIAAgATYCCCAAIAFBA3Y2AgQgACABQXhxNgIADAILCyMBRQRAIABBBDoADCAAIAU2AgALCyMBRQRAIAhBEGokAAsPCyEHIwIoAgAgBzYCACMCIwIoAgBBBGo2AgAjAigCACIHIAA2AgAgByABNgIEIAcgAjYCCCAHIAM2AgwgByAENgIQIAcgBTYCFCAHIAo2AhggByAINgIcIAcgCTYCICAHIAs2AiQgByAGNgIoIwIjAigCAEEsajYCAAu7BAEGfyMBQQJGBEAjAiMCKAIAQSxrNgIAIwIoAgAiBigCACEAIAYoAgQhASAGKAIIIQIgBigCDCEDIAYoAhAhBCAGKAIUIQUgBigCGCEKIAYoAhwhCCAGKAIgIQkgBigCJCELIAYoAighBgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQRBrIggkAEF4IQYgA0EDdiILIQogBCEJCwJAAkACfwJAA0ACQCMBRQRAIAoNASAFIAtPIgkNAwsgB0VBASMBGwRAIAsgBUGspAQQ7gFBACMBQQFGDQcaCyMBRQRAAAsLIwFFBEAgCEEIaiABIAZBCGoiBiACakEIIAlBARB+IApBAWshCiAJQQFqIQkgCCgCCEUNAQsLIwFFBEAgBiAIKAIMagwCCwsjAQR/IAoFIAggASADQXhxIgEgAmogA0EHcSAEIAtqIAUgC2sQfiAIKAIARQ0CIAEgCCgCBGoLCyEBIwFFBEAgAEEBOgAMIAAgATYCCCAAIAFBA3Y2AgQgACABQXhxNgIADAILCyMBRQRAIABBBDoADCAAIAU2AgALCyMBRQRAIAhBEGokAAsPCyEHIwIoAgAgBzYCACMCIwIoAgBBBGo2AgAjAigCACIHIAA2AgAgByABNgIEIAcgAjYCCCAHIAM2AgwgByAENgIQIAcgBTYCFCAHIAo2AhggByAINgIcIAcgCTYCICAHIAs2AiQgByAGNgIoIwIjAigCAEEsajYCAAvIBAEIfyMBQQJGBEAjAiMCKAIAQSRrNgIAIwIoAgAiAygCACEAIAMoAgghAiADKAIMIQQgAygCECEFIAMoAhQhBiADKAIYIQcgAygCHCEIIAMoAiAhCiADKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQkLIwFFBEAjAEEQayIHJAAgAigCDCIEIAIoAgQiBkshBQsCQAJAIwFFBEAgBQ0BIAIoAgAhBSAEIAZHBEAgBSAGaiAEIAVqIgRrIQggBEEAIAgQ9gELIAIgBjYCDCAGIAIoAggiBEkNAiAHQQhqIQggBiAEayEKIAQgBWohBQsgCUVBASMBGwRAIAggASAFIAoQjgFBACMBQQFGDQMaCyMBRQRAAkAgBy0ACCIBQQRGBEAgAiAEIAcoAgxqIgE2AgggAEEEOgAAIAIgBiABIAEgBkkbNgIMDAELIAAgBy8ACTsAASAAQQNqIActAAs6AAAgACAHKAIMNgIEIAAgAToAAAsgB0EQaiQADwsLIAlBAUZBASMBGwRAIAQgBkGgmgUQ7gFBASMBQQFGDQIaCyMBRQRAAAsLIAlBAkZBASMBGwRAIAQgBkGwmgUQ8AFBAiMBQQFGDQEaCyMBRQRAAAsPCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAQ2AgwgAyAFNgIQIAMgBjYCFCADIAc2AhggAyAINgIcIAMgCjYCICMCIwIoAgBBJGo2AgALygMBA38jAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgEoAgAhACABKAIEIQELAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCAAQSBJDQJBASEBIABB/wBJIQILAkACQCMBRQRAIAINASAAQYCABEkNAiAAQYCACEkhAQsCQCMBRQRAIAFFBEAgAEHLpgxrQbXbK0kgAEGe9AtrQeILSXINBiAAQeHXC2tBnxhJIABBop0La0EOSXINBiAAQX5xQZ7wCkYNBiAAQWBxQeDNCkciAQ0CDAYLCyADRUEBIwEbBEAgAEHrlgRBKkG/lwRBwAFB/5gEQbYDEExBACMBQQFGDQQaIQALIwFFBEAgAA8LCyMBRQRAQQAhASAAQbnuCmtBB0kNASAAQYCAxABrIgBB8IN0SSEBCwsjAUUEQCABDwsLIANBAUZBASMBGwRAIABBzJEEQShBnJIEQaACQbyUBEGvAhBMQQEjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQjAiMCKAIAQQhqNgIAQQAPC0EAC6MFAQd/IwFBAkYEQCMCIwIoAgBBNGs2AgAjAigCACIIKAIAIQAgCCgCBCEBIAgoAgghAiAIKAIMIQMgCCgCECEEIAgoAhQhBSAIKAIYIQYgCCgCHCEJIAgoAiAhCiAIKAIkIQsgCCgCKCEMIAgoAiwhDSAIKAIwIQgLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEgayIJJAAgCUEYaiELCyAHRUEBIwEbBEAgCyACEMoBQQAjAUEBRg0BGgsjAUUEQCAJKAIcIQsgCSgCGCABIAIQ+AEhDCAJQRBqIQELIAdBAUZBASMBGwRAIAEgBBDKAUEBIwFBAUYNARoLIwFFBEAgCSgCFCENIAkoAhAgAyAEEPgBIQMgCUEIaiEBCyAHQQJGQQEjARsEQCABIAYQygFBAiMBQQFGDQEaCyMBRQRAIAkoAgwhCCAJKAIIIAUgBhD4ASEFIABBFGooAgAiASAAQRBqKAIARyEKCwJAIwFFBEAgCg0BIABBDGohCgsgB0EDRkEBIwEbBEAgCiABEHJBAyMBQQFGDQIaCyMBRQRAIAAoAhQhAQsLIwFFBEAgACABQQFqNgIUIAAoAgwgAUEkbGoiACAGNgIgIAAgCDYCHCAAIAU2AhggACAENgIUIAAgDTYCECAAIAM2AgwgACACNgIIIAAgCzYCBCAAIAw2AgAgCUEgaiQACw8LIQcjAigCACAHNgIAIwIjAigCAEEEajYCACMCKAIAIgcgADYCACAHIAE2AgQgByACNgIIIAcgAzYCDCAHIAQ2AhAgByAFNgIUIAcgBjYCGCAHIAk2AhwgByAKNgIgIAcgCzYCJCAHIAw2AiggByANNgIsIAcgCDYCMCMCIwIoAgBBNGo2AgALqAMCBH8BfiMBQQJGBEAjAiMCKAIAQRRrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQQgAygCDCEFIAMoAhAhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCMAQRBrIgQkACAEQQA6AAcgBEEIaiEFIARBB2ohAwsgAkVBASMBGwRAIAUgASADQQEQd0EAIwFBAUYNARoLIwFFBEACQAJ/AkACQAJAIAQtAAhBBEcEQCAEKQMIIgZC/wGDQgRSDQELQQAgBCwAByIBQX9KDQMaIAFBkH9JDQEgAUGgf0kNAiABQcQAakEkIAFBYHFBQEYbIAFBQE8NAxogAUEfcSEBQQMMAwsgACAGNwIADAMLIAFBD3EhAUEBDAELIAFBD3EhAUECCyECIABBBDoAACAAIAJB/wFxIAFBCHRyOwABCyAEQRBqJAALDwshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAQ2AgggAiAFNgIMIAIgAzYCECMCIwIoAgBBFGo2AgALnwQCBX8CfiMBQQJGBEAjAiMCKAIAQSRrNgIAIwIoAgAiBCgCACEAIAQoAgQhASAEKAIIIQIgBCgCDCEDIAQoAhAhBiAEKQIUIQggBCgCHCEHIAQoAiAhBAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQSBrIgMkACABKQMAIghCAFIhBgsCQAJAIwFFBEAgBkUEQCAAQQQ6AAAgAEEANgIEDAILIAEoAgghByADQQhqIQYgCEIgIAhCIFQbpyEECyAFRUEBIwEbBEAgBiAHIAIgBBCOAUEAIwFBAUYNAxoLIwFFBEAgAy0ACCICQQRGBEAgAygCDCICrSIJIAhWDQMgACACNgIEIABBBDoAACABIAggCX03AwAMAgsgACADLwAJOwABIABBA2ogAy0ACzoAACAAIAMoAgw2AgQgACACOgAACwsjAUUEQCADQSBqJAAPCwsjAUUEQCADQRxqQQA2AgAgA0GsogU2AhggA0IBNwIMIANB9JoFNgIIIANBCGohAAsgBUEBRkEBIwEbBEAgAEH8mgUQzAFBASMBQQFGDQEaCyMBRQRAAAsPCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAGNgIQIAUgCDcCFCAFIAc2AhwgBSAENgIgIwIjAigCAEEkajYCAAvPBAEFfyMBQQJGBEAjAiMCKAIAQRxrNgIAIwIoAgAiBSgCACEAIAUoAgQhASAFKAIIIQIgBSgCDCEDIAUoAhAhBiAFKAIUIQcgBSgCGCEFCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBQGoiAyQACwJAAkAjAUUEQCACDQEgA0EINgIcIAMgADYCJCADIANBJGo2AhggA0EBNgI8IANCATcCLCADQeiWBTYCKCADIANBGGo2AjggA0EoaiEGIANBCGohAQsgBEVBASMBGwRAIAEgBhA7QQAjAUEBRg0DGgsjAUUEQCADKAIQIQYgAygCCCEBCyAEQQFGQQEjARsEQCABIAYQBkEBIwFBAUYNAxoLIwFFBEAgAygCDEUNAiABECEMAgsLIwFFBEAgACgCDCEHIANBKGohBiAAQRRqKAIAIQULIARBAkZBASMBGwRAIAYgByAFIAEgAhEGAEECIwFBAUYNAhoLIwFFBEAgAygCMCEGIAMoAighAQsgBEEDRkEBIwEbBEAgASAGEAdBAyMBQQFGDQIaCyMBRQRAIAMoAixFDQEgARAhCwsjAUUEQCAAKAIEBEAgACgCABAhCyAAQRBqKAIABEAgACgCDBAhCyADQUBrJAAgAkEARw8LAAshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIAQgBjYCECAEIAc2AhQgBCAFNgIYIwIjAigCAEEcajYCAEEAC5AFAgd/An4jAUECRgRAIwIjAigCAEEoazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEEIAMoAgwhBSADKAIQIQYgAygCFCEHIAMpAhghCSADKAIgIQggAygCJCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIwBBEGsiBiQAIAEoAgQoAgwhBCABKAIAIQALIAUgAkVBASMBGwRAIAAgBBEJAEEAIwFBAUYNARohCQsgCULIhfmknrfU2xJSIwEbIQUCQAJAAkACfyMBRQRAIABBCGogBUUNARoLIAJBAUZBASMBGwRAIAAgBBEJAEEBIwFBAUYNBRohCQsjAQR/IAQFIAlC65GTtfbYs6L0AFIiBA0CIABBBGoLCyEEIwFFBEAgACgCACEHIAQoAgAhBCAGQQhqIQALIAJBAkZBASMBGwRAIAAgBBDKAUECIwFBAUYNBBoLIwFFBEAgBigCDCEFIAYoAggiACAHIAQQ+AEhBwwCCwsjAUUEQEENIQRBDRAOIgBFDQIgAEEFakHBlgUpAAA3AAAgAEG8lgUpAAA3AABBDSEFCwsjAUUEQCABKAIMIgEoAgAhByABKAIEIQggASgCCCEDIAEoAgwhAQsgAkEDRkEBIwEbBEAgACAEIAcgCCADIAEQBUEDIwFBAUYNAhoLIwFFBEAgBQRAIAAQIQsgBkEQaiQADwsLIwFFBEAACw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiAENgIIIAIgBTYCDCACIAY2AhAgAiAHNgIUIAIgCTcCGCACIAg2AiAgAiADNgIkIwIjAigCAEEoajYCAAvDCwIRfwJ+IwFBAkYEQCMCIwIoAgBBIGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCELIAEoAhghFSABKAIcIREgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEQCyMBRQRAIwBBEGsiCyQAIABBHGooAgAoAgwhFSAAKAIYIRELIBBFQQEjARsEQCARIAEgAiAVEQEAQQAjAUEBRg0BGiEBCyMBRQRAIAsgAToACCALIAA2AgAgC0EAOgAJIAtBADYCBAsgEEEBRkEBIwEbBEACfyALIQ0gAyEGIAQhDEEAIQUjAUECRgRAIwIjAigCAEEsazYCACMCKAIAIgYoAgAhDSAGKAIIIQwgBigCDCEIIAYoAhAhCSAGKAIUIQUgBigCGCEKIAYoAhwhDiAGKAIgIRIgBigCJCETIAYoAighFCAGKAIEIQYLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQ8LIwFFBEAjAEFAaiIIJAAgDS0ACEUhCQsCQCMBRQRAIAlFBEAgDSgCBCEOQQEhBQwCCyANKAIEIQ4gDSgCACIJKAIAIgpBBHEhBQsCQCMBRQRAIAUNASAJKAIYIQpBuYYEQcqGBCAOGyESQQJBASAOGyETIAlBHGooAgAoAgwhFEEBIQULIA9FQQEjARsEQCAKIBIgEyAUEQEAQQAjAUEBRg0DGiEKCyMBRQRAIAoNAiAMKAIMIQwLIA9BAUZBASMBGwRAIAYgCSAMEQAAQQEjAUEBRg0DGiEFCyMBRQ0BCwJAIwFFBEAgDg0BIAlBHGooAgAoAgwhCiAJKAIYIQULIA9BAkZBASMBGwRAIAVByIYEQQIgChEBAEECIwFBAUYNAxohBQsjAUUEQCAFRSIFRQRAQQEhBUEAIQ4MAwsgCSgCACEKCwsjAUUEQCAIQQE6ABcgCEE0akGYhgQ2AgAgCCAKNgIYIAggCSkCGDcDCCAIIAhBF2o2AhAgCSkCCCEWIAkpAhAhFyAIIAktACA6ADggCCAJKAIENgIcIAggFzcDKCAIIBY3AyAgCCAIQQhqNgIwIAhBGGohCSAMKAIMIQxBASEFCyAPQQNGQQEjARsEQCAGIAkgDBEAAEEDIwFBAUYNAhohBgsjAUUEQCAGDQEgCCgCNCgCDCEMIAgoAjAhBgsgD0EERkEBIwEbBEAgBkG3hgRBAiAMEQEAQQQjAUEBRg0CGiEFCwsjAUUEQCANIAU6AAggDSAOQQFqNgIEIAhBQGskACANDAILAAshByMCKAIAIAc2AgAjAiMCKAIAQQRqNgIAIwIoAgAiByANNgIAIAcgBjYCBCAHIAw2AgggByAINgIMIAcgCTYCECAHIAU2AhQgByAKNgIYIAcgDjYCHCAHIBI2AiAgByATNgIkIAcgFDYCKCMCIwIoAgBBLGo2AgBBAAtBASMBQQFGDQEaIQELIwFFBEAgCygCBCIERSECIAstAAghAAsCQCMBRQRAIAINASAAQf8BcUEBIQANASABKAIAIQIgBEEBRyEACwJAIwFFBEAgAA0BIAstAAlFIgANASACLQAAQQRxIgANASACKAIYIQEgAkEcaigCACgCDCEDQQEhAAsgEEECRkEBIwEbBEAgAUHLhgRBASADEQEAQQIjAUEBRg0DGiEBCyMBRUEAIAEbDQELIwFFBEAgAkEcaigCACgCDCEBIAIoAhghAAsgEEEDRkEBIwEbBEAgAEHxqgVBASABEQEAQQMjAUEBRg0CGiEACwsjAUUEQCALQRBqJAAgAEH/AXFBAEcPCwALIQUjAigCACAFNgIAIwIjAigCAEEEajYCACMCKAIAIgUgADYCACAFIAE2AgQgBSACNgIIIAUgAzYCDCAFIAQ2AhAgBSALNgIUIAUgFTYCGCAFIBE2AhwjAiMCKAIAQSBqNgIAQQAL+AIBBX8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEEgayICJAAgAUEBaiIBRSEDCwJAIwFFBEACQCADDQAgACgCBCIDQQF0IgQgAUshBSAEIAEgBRsiAUEESyEEIAFBBCAEGyIBQSRsIQQgAUHk8bgcSUECdCEFAkAgAwRAIAJBBDYCGCACIANBJGw2AhQgAiAAKAIANgIQDAELIAJBADYCGAsgAiAEIAUgAkEQahCLASACKAIARQRAIAIoAgQhAyAAIAE2AgQgACADNgIADAMLIAJBCGooAgAiAEGBgICAeEYNAiAARQ0AAAsLIAZFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCACQSBqJAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAL+QIBBX8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjAEEgayICJAAgAUEBaiIBRSEDCwJAIwFFBEACQCADDQAgACgCBCIDQQF0IgQgAUshBSAEIAEgBRsiAUEESyEEIAFBBCAEGyIBQQJ0IQQgAUGAgICAAklBAnQhBQJAIAMEQCACQQQ2AhggAiADQQJ0NgIUIAIgACgCADYCEAwBCyACQQA2AhgLIAIgBCAFIAJBEGoQiwEgAigCAEUEQCACKAIEIQMgACABNgIEIAAgAzYCAAwDCyACQQhqKAIAIgBBgYCAgHhGDQIgAEUNAAALCyAGRUEBIwEbBEAQywFBACMBQQFGDQIaCyMBRQRAAAsLIwFFBEAgAkEgaiQACw8LIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAC/kCAQV/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwBBIGsiAiQAIAFBAWoiAUUhAwsCQCMBRQRAAkAgAw0AIAAoAgQiA0EBdCIEIAFLIQUgBCABIAUbIgFBBEshBCABQQQgBBsiAUEDdCEEIAFBgICAgAFJQQJ0IQUCQCADBEAgAkEENgIYIAIgA0EDdDYCFCACIAAoAgA2AhAMAQsgAkEANgIYCyACIAQgBSACQRBqEIsBIAIoAgBFBEAgAigCBCEDIAAgATYCBCAAIAM2AgAMAwsgAkEIaigCACIAQYGAgIB4Rg0CIABFDQAACwsgBkVBASMBGwRAEMsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAJBIGokAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAjAigCACACNgIAIwIjAigCAEEEajYCAAv5AgEFfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBgsjAUUEQCMAQSBrIgIkACABQQFqIgFFIQMLAkAjAUUEQAJAIAMNACAAKAIEIgNBAXQiBCABSyEFIAQgASAFGyIBQQRLIQQgAUEEIAQbIgFBDGwhBCABQavVqtUASUECdCEFAkAgAwRAIAJBBDYCGCACIANBDGw2AhQgAiAAKAIANgIQDAELIAJBADYCGAsgAiAEIAUgAkEQahCLASACKAIARQRAIAIoAgQhAyAAIAE2AgQgACADNgIADAMLIAJBCGooAgAiAEGBgICAeEYNAiAARQ0AAAsLIAZFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCACQSBqJAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgAjYCACMCIwIoAgBBBGo2AgALzZ0BAj5/B34jAUECRgRAIwIjAigCAEE0azYCACMCKAIAIgUoAgAhACAFKAIIIQIgBSgCDCEDIAUoAhAhJSAFKAIUISogBSgCGCEvIAUoAhwhMCAFKAIgITEgBSgCJCE9IAUoAighPiAFKAIsIT8gBSgCMCFAIAUoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhQQsjAUUEQCMAQRBrIiUkACADKAIEQQFqIi9FISoLAkACQAJAIwFFBEAgKg0BIANBEGooAgAiKkEBRiIwIAMtABRBAEdyIT0gA0EIaiE+IAMoAgghPyADKAIAITELA0ACQCMBRUEAID0bRQRAIEFFQQEjARsEQCAlIRIgPiELIAEhDiACIQ8gMSEyQQAhBEEAIQZBACEFQQAhB0EAIQlBACEKQQAhDEEAIQ1BACEQQQAhEUEAIRNBACEUQQAhFkIAIUJBACEXQgAhQ0EAIRhBACEZQQAhGkEAIRtBACEcQQAhHUIAIURBACEeQQAhH0EAISBBACEiQQAhI0EAISRBACEmQQAhJ0EAIShCACFGQQAhKUEAIStBACEsQQAhLUEAIS5BACEzQgAhR0EAITRBACE1QQAhNkEAITdBACE4QQAhOUEAITtBACE8IwFBAkYEQCMCIwIoAgBBxAFrNgIAIwIoAgAiCygCACESIAsoAgghDiALKAIMIQ8gCygCECEyIAsoAhQhBCALKAIYIQYgCygCHCEFIAsoAiAhByALKAIkIQogCygCKCEMIAsoAiwhFCALKAIwIRMgCygCNCEWIAspAjghQiALKAJAIRkgCykCRCFDIAsoAkwhGCALKAJQIRogCygCVCEbIAsoAlghHCALKQJcIUQgCygCZCEeIAsoAmghIiALKAJsISMgCygCcCEmIAsoAnQhJyALKAJ4ISggCykCfCFGIAsoAoQBISkgCygCiAEhKyALKAKMASEsIAsoApABIS0gCygClAEhLiALKAKYASEzIAspApwBIUcgCygCpAEhNCALKAKoASE1IAsoAqwBITYgCygCsAEhNyALKAK0ASE4IAsoArgBITkgCygCvAEhOyALKALAASE8IAsoAgQhCwsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEJCyMBRQRAIwBB4AJrIgQkACAEQeAAaiEGCyAJRUEBIwEbBEAgBhB/QQAjAUEBRg0BGgsjAUUEQCAEQewAaigCACEKIARB6ABqKAIAITMgBCgCZCErIAQoAmAhBgsCQAJAAkACQAJAAkACQAJAAkACQAJ/AkACQAJAAn8CQAJAAkACQAJAAkACQAJAIwFFBEAgBg0BIARBQGshBgsgCUEBRkEBIwEbBEAgBkGu/QRBJRAkQQEjAUEBRg0YGgsjAUUEQCAEKAJIRSIGDQIgBEHgAGohFCAEKAJAIgwoAgAhBSAMQQhqKAIAIQYLIAlBAkZBASMBGwRAIBQgBSAGELMBQQIjAUEBRg0YGgsjAUUEQCAEKAJoISIgBCgCZCE7IAQoAmAhLEEAIQwgBEEANgJYIARCBDcDUCALKAIIIhQNA0EEIQVBAAwJCwsjAUUEQCASICs2AgQgEkEBNgIAIBJBDGogCjYCACASQQhqIDM2AgAMFgsLIwFFQQAjAUUEQCAEQQY2AowCIARB8KsFNgKIAkGouAUoAgBBA0YhBgsgBhtFBEAgCUEDRkEBIwEbBEAjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIggoAgAhJCAIKAIEIR0LAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhDQsjAUUEQCMAQSBrIiQkAEGouAUoAgBBA0YhHQsCQCMBRQRAIB0NASAkQay4BTYCCCAkICRBGGo2AgwgJCAkQQhqNgIUICRBFGohHQsgDUVBASMBGwRAIB0hFUEAIQ1BACEIIwFBAkYEQCMCIwIoAgBBHGs2AgAjAigCACIIKAIAIRUgCCgCBCENIAgoAgghECAIKAIMIREgCCgCFCEfIAgoAhghICAIKAIQIQgLAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhFwsjAUUEQCMAQTBrIhEkACARQQhqQQJyIR9BqLgFKAIAIQ0LA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQAJAIA0OBAICAAMACyANQQNxQQJHIhBFBEADQCANIQhBqLwFKAIADQ9BqLwFQX82AgBBrLwFKAIAIhBFBEBBIBAOIhBFDQ8gEEKBgICAEDcDACAQQRBqQQA2AgBB2LgFKQMAIUUDQCBFQgF8IkhQDQ4gRUHYuAUpAwAiRVEhDUHYuAUgSCBFIA0bNwMAIA1FDQALIBBBADsBHCAQIEg3AwhBrLwFIBA2AgAgEEEYakEANgIACyAQIBAoAgAiDUEBaiIgNgIAIA1Bf0wNDkGovAVBqLwFKAIAQQFqNgIAIAhBqLgFKAIAIg1GISBBqLgFIB8gDSAgGyIgNgIAIBFBADoAECARIBA2AgggESAIQXxxNgIMAkAgCCANRyIQRQRAIBEtABBFDQEMEgsCQCARKAIIIhBFIggNACAQIBAoAgAiCEEBayIgNgIAIAhBAUcNACARKAIIELEBCyANQQNxQQJGIhANAQwSCwsDQEGovAUoAgANDUGovAVBfzYCAEGsvAUoAgAiEEUEQEEgEA4iEEUNDyAQQoGAgIAQNwMAIBBBEGpBADYCAEHYuAUpAwAhRQNAIEVCAXwiSFANDiBFQdi4BSkDACJFUSENQdi4BSBIIEUgDRs3AwAgDUUNAAsgEEEAOwEcIBAgSDcDCEGsvAUgEDYCACAQQRhqQQA2AgALIBAgECgCACINQQFqIgg2AgAgDUF/TA0OQai8BUGovAUoAgBBAWo2AgAgEEEYaiIIQQAgCCgCACIIIAhBAkYiCBsiIDYCACAIRQRAIBBBHGoiCC0AACENIAhBAToAACARIA1BAXEiDToAFCANDQxBACEgQdS4BSgCAEH/////B3EEQBD6AUEBcyEgCyAQLQAdIg0NCyAQIBAoAhgiDUEBIA0bNgIYIA1FDQggDUECRyINDQogECgCGCENIBBBADYCGCARIA02AhQgDUECRyINDQkCQCAgDQBB1LgFKAIAQf////8HcUUNABD6AQ0AIBBBAToAHQsgCEEAOgAACyAQIBAoAgAiDUEBayIINgIAIA1BAUYEQCAQELEBCyARLQAQRQ0ACwwPCwsgF0VBASMBGwRAQeisBUHAAEHIrAUQuwFBACMBQQFGDREaCyMBRQRAAAsLIwFFBEAgDUGouAUoAgAiDUYhCEGouAVBAiANIAgbNgIAIAhFIhANDyAVKAIAIhAoAgAhDSAQQQA2AgAgDUUiFQ0DQYAIEA4iEEUiFQ0LIA1CADcCACANQQA6ABwgDUEAOgAYIA1CgAg3AhAgDSAQNgIMIA1BADYCCEGouAUoAgAhDUGouAVBAzYCACARIA1BA3EiEDYCCCAQQQJHIhUNAiANQQJrIhBFIhUNAQsDQCMBRQRAIBAoAgAhDSAQQQA2AgAgDUUhFQsCQAJAAkACQAJAIwFFBEAgFQ0BIBAoAgQhCCAQQQE6AAggDUEYaiIQKAIAIR8gEEECNgIACwJAIwFFBEACQCAfDgMHAgcACyARQSxqQQA2AgAgEUGsogU2AiggEUIBNwIcIBFBgLQFNgIYIBFBGGohFQsgF0EBRkEBIwEbBEAgFUGItAUQzAFBASMBQQFGDRcaCyMBRQRAAAsLIwFFBEAgDUEcaiIQLQAAIR8gEEEBOgAAIBEgH0EBcSIfOgAIIB8NAiARAn8CQEHUuAUoAgBB/////wdxBEAQ+gEhHyANLQAdDQEgH0UiFQ0HDAYLIA0tAB1FIhUNBUEADAELIB9BAXMLIg06ABwgESAQNgIYIBFBGGohFQsgF0ECRkEBIwEbBEBB0KEFQSsgFUGosgVBmLQFEJcBQQIjAUEBRg0WGgsjAUUEQAALCyAXQQNGQQEjARsEQEGQowVBK0G8rQUQuwFBAyMBQQFGDRUaCyMBRQRAAAsLIwFFBEAgEUEANgIsIBFBrKIFNgIoIBFCATcCHCARQdixBTYCGCARQQhqIRUgEUEYaiENCyAXQQRGQQEjARsEQCAVIA0QqAFBBCMBQQFGDRQaCyMBRQRAAAsLIwFFBEBB1LgFKAIAQf////8HcUUiFQ0BEPoBIhUNASANQQE6AB0LCyMBRQRAIBBBADoAAAsLIwFFBEAgDSANKAIAIhBBAWs2AgAgEEEBRyIVRQRAIA0QsQELIAgiEA0BCwsLIwFFBEAgEUEwaiQADBALCyMBRQRAIBFBADYCGCARQQhqIRUgEUEYaiENCyAXQQVGQQEjARsEQCAVIA1BrK0FEKoBQQUjAUEBRg0OGgsjAUUEQAALCyAXQQZGQQEjARsEQEGQowVBK0HYrAUQuwFBBiMBQQFGDQ0aCyMBRQRAAAsLIwFFBEAgEUEsakEANgIAIBFBrKIFNgIoIBFCATcCHCARQeSwBTYCGCARQRhqIRULIBdBB0ZBASMBGwRAIBVBpLEFEMwBQQcjAUEBRg0MGgsjAUUEQAALCyMBRQRAIBFBADYCLCARQayiBTYCKCARQgE3AhwgEUHMswU2AhggEUEUaiEVIBFBGGohDQsgF0EIRkEBIwEbBEAgFSANQdSzBRCqAUEIIwFBAUYNCxoLIwFFBEAACwsjAUUEQCARQSxqQQA2AgAgEUGsogU2AiggEUIBNwIcIBFBlLMFNgIYIBFBGGohFQsgF0EJRkEBIwEbBEAgFUGcswUQzAFBCSMBQQFGDQoaCyMBRQRAAAsLIwFFBEAgESAgOgAcIBEgCDYCGCARQRhqIRULIBdBCkZBASMBGwRAQdChBUErIBVBqLIFQeyyBRCXAUEKIwFBAUYNCRoLIwFFBEAACwsjAUUEQCARQQA2AiwgEUGsogU2AiggEUIBNwIcIBFB2LEFNgIYIBFBFGohFSARQRhqIQ0LIBdBC0ZBASMBGwRAIBUgDRCoAUELIwFBAUYNCBoLIwFFBEAACwsgF0EMRkEBIwEbBEBBACEhQQAhOiMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhIQsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACE6CyMBRQRAIwBBIGsiISQAICFBHGpBADYCACAhQayiBTYCGCAhQgE3AgwgIUGQpAU2AgggIUEIaiEhCyA6RUEBIwEbBEAgIUGYpAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshOiMCKAIAIDo2AgAjAiMCKAIAQQRqNgIAIwIoAgAgITYCACMCIwIoAgBBBGo2AgALQQwjAUEBRg0HGgsjAUUEQAALCyAVIBFBGGojARshFSAXQQ1GQQEjARsEQEGsogVBECAVQbyiBUHgrgUQlwFBDSMBQQFGDQYaCyMBRQRAAAsLIwFFBEAACwsgFSARQRhqIwEbIRUgF0EORkEBIwEbBEBBrKIFQRAgFUG8ogVB4K4FEJcBQQ4jAUEBRg0EGgsjAUUEQAALCyMBRQRAIBEoAggiDUUiEA0BIA0gDSgCACIQQQFrIgg2AgAgEEEBRw0BIBEoAggQsQFBqLgFKAIAIQ0MAgsLIwFFBEBBqLgFKAIAIQ0MAQsLDAELIRcjAigCACAXNgIAIwIjAigCAEEEajYCACMCKAIAIhcgFTYCACAXIA02AgQgFyAQNgIIIBcgETYCDCAXIAg2AhAgFyAfNgIUIBcgIDYCGCMCIwIoAgBBHGo2AgALQQAjAUEBRg0CGgsLIwFFBEAgJEEgaiQACwwBCyEIIwIoAgAgCDYCACMCIwIoAgBBBGo2AgAjAigCACIIICQ2AgAgCCAdNgIEIwIjAigCAEEIajYCAAtBAyMBQQFGDRcaCwsjAUUEQAJAQay4BSgCAEGkvAVGIgZFBEBByLgFLQAAIQdBASEMQci4BUEBOgAAIAQgB0EBcSIHOgCwAiAHDQRBrLgFQaS8BTYCAAwBC0GwuAUoAgBBAWoiDEUiBg0EC0GwuAUgDDYCACAEQay4BTYC2AFBBCEMIARBBDoAtAIgBCAEQdgBajYCsAIgBEEANgJ0IARBrKIFNgJwIARCATcCZCAEQcD5BDYCYCAEQeAAaiEGIARBsAJqIQULIAlBBEZBASMBGwRAIAVBlKwFIAYQK0EEIwFBAUYNFhohBwsjAUUEQCAELQC0AiEUIAdFIQYLAkAjAUUEQCAGRQRAIBRB/wFxQQRHIgZFBEBCiKwFIkNCIIYhQkECIQxCACFEDAMLIAQpArQCIkZCgICAgHCDIUIgRkKA/v//D4MhRCBGpyEMDAILQgAhRCAUQf8BcUEDRyEGCwJAIwFFBEAgBg0BIARBuAJqKAIAIgcoAgAhBSAHKAIEKAIAIQYLIAlBBUZBASMBGwRAIAUgBhEEAEEFIwFBAUYNGBoLIwFFBEBBBCEMIAcoAgRBBGooAgAEQCAHKAIAECELIAQoArgCIgYQIQsLIEJCACMBGyFCCyMBRQRAIAQoAtgBIgcoAgRBAWshFCAHIBQ2AgQgFEUEQCAHQQA6ABwgB0EANgIACyAMQf8BcUEERyIGDQQgCygCACEGIAtBCGooAgAhCwsgCUEGRkEBIwEbBEAgEiAGIAsgDiAPIDIQHkEGIwFBAUYNFhoLIwFFDRMLIwFFBEAgCygCACIHIBRBA3RqISYgBEHYAWoiBkEEciETCwNAIwFFBEAgB0EEaigCACEMIAcoAgAhFiAEQThqIQYLIAlBB0ZBASMBGwRAIAYgChDKAUEHIwFBAUYNFhoLIwFFBEAgBCgCPCEaIAQoAjggKyAKEPgBIRlBAxAOIhRFIgYNCCAUQQJqIgVB+oUFLQAAOgAAIBRB+IUFLwAAOwAAIARBMGohBgsgCUEIRkEBIwEbBEAgBiAPEMoBQQgjAUEBRg0WGgsjAUUEQCAEKAI0IQYgBEEoaiEYIAQoAjAgDiAPEPgBIQULIAlBCUZBASMBGwRAIBggDBDKAUEJIwFBAUYNFhoLIwFFBEAgBCAEKAIsNgJwIAQgBCgCKCIbNgJsIBsgFiAMEPgBIRggBEECNgKAASAEIDI2AnwgBEEBNgJ4IAQgDzYCaCAEIAY2AmQgBCAFNgJgIAQgDDYCdCAEQeAAaiEGIARB2AFqIQULIAlBCkZBASMBGwRAIAUgBhAbQQojAUEBRg0WGgsjAUUEQCAEKALYAUERRyIGDQUgBEG4AmoiBiATQQhqKAIANgIAIAQgEykCACJDNwOwAiAEQeAAahDTASAEKAJYIhYgBCgCVEchBQsCQCMBRQRAIAUNASAEQdAAaiEFCyAJQQtGQQEjARsEQCAFIBYQckELIwFBAUYNFxoLIwFFBEAgBCgCWCEWCwsjAUUEQCAEKAJQIgUgFkEkbCIYaiIIIBQ2AgwgCCAKNgIIIAggGjYCBCAIIBk2AgAgCCAEKQOwAiJDNwIYIAhBEGpCg4CAgDA3AgAgCEEgaiIUIAYoAgA2AgAgBCAWQQFqIgw2AlggJiAHQQhqIgdGIgYNBgwBCwsLIwFFBEAgBEEANgJ0IARBrKIFNgJwIARCATcCZCAEQdixBTYCYCAEQeAAaiESIARBsAJqIQsLIAlBDEZBASMBGwRAIAsgEhCoAUEMIwFBAUYNFBoLIwFFBEAACwsgCUENRkEBIwEbBEBB160FQSZBpK4FEPEBQQ0jAUEBRg0TGgsjAUUEQAALCyMBRQRAIAQgQiBEIAytQv8Bg4SEIkM3A9gBIARB9ABqQQI2AgAgBEG8AmpBCzYCACAEQgI3AmQgBEHQqwU2AmAgBEEDNgK0AiAEIARBsAJqNgJwIAQgBEHYAWo2ArgCIAQgBEGIAmo2ArACIARB4ABqIRILIAlBDkZBASMBGwRAIBJB4KsFEMwBQQ4jAUEBRg0SGgsjAUUEQAALCyMBRQRAIARBuAJqIgsgBEHgAWopAwA3AwAgBCAEKQPYASJDNwOwAiAEQbACaiESCyAJQQ9GQQEjARsEQEHQoQVBKyASQczwBEHU8gQQlwFBDyMBQQFGDREaCyMBRQRAAAsLIwEEfyAKBSAEKAJUCwshCiMBRQRAQRsQDiIHRSIPDQEgB0EXaiIGQdOcBSgAADYAACAHQRBqQcycBSkAADcAACAHQQhqQcScBSkAADcAACAHQbycBSkAACJDNwAAQToQDiIURSIPDQEgFEG8ggVBOhD4ASEUIAcQISAEQbACaiEPCyAJQRBGQQEjARsEQCAPIBRBOhCzAUEQIwFBAUYNDxoLIA8gBEG8AmojARshDyAJQRFGQQEjARsEQCAPQQRBABBcQREjAUEBRg0PGgsjAUUEQCAEQZgBaiAEQbgCaikDADcDACAEQaABaiAEQcACaikDADcDACAEQQA2AowBIARCBDcChAEgBEK6gICAoAc3AnwgBCAUNgJ4IARBADYCcCAEQgE3A2ggBEIANwNgIAQgBCkDsAIiQzcDkAEgBEHgAGohDyAEQbACaiEGCyAJQRJGQQEjARsEQCAGIA9BARA+QRIjAUEBRg0PGgsjAUUEQCAEKAKwAiIHQRFHIQ8LAn8CfwJAAkACQAJAAkACQAJAAkACQAJAAkAjAUUEQCAPDQEgBEGQAWohFAsgCUETRkEBIwEbBEAgFEH2ggVBBUH7ggVBE0GngQVBEBBsQRMjAUEBRg0cGgsjAUUEQCAEQeAAaiEPIARBsAJqIQYLIAlBFEZBASMBGwRAIAYgD0H2ggVBBRAiQRQjAUEBRg0cGgsjAUUEQCAEKAKwAiIHQRFHIg8NASAEQeAAaiEPIARBsAJqIQYLIAlBFUZBASMBGwRAIAYgDyAMED9BFSMBQQFGDRwaCyMBRQRAIAQoArACIgdBEUciDw0BIAxFIQ8LAkACQCMBRQRAIA8NASAFIgcgDEEkbGohDwsDQCMBRQRAIARBsAJqIRogBEHgAGohBgsgCUEWRkEBIwEbBEAgGiAGQQMQPkEWIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQYLIAlBF0ZBASMBGwRAIBRBjfUEQQNBi/4EQQZBp4EFQRAQbEEXIwFBAUYNHxoLIwFFBEAgBEGwAmohGiAEQeAAaiEGCyAJQRhGQQEjARsEQCAaIAZBjfUEQQMQIkEYIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQcgBEGwAmohEyAEQeAAaiEYIAcoAgAhGiAHQQhqKAIAIQYLIAlBGUZBASMBGwRAIBMgGCAaIAYQIkEZIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQggBEGwAmohBgsgCUEaRkEBIwEbBEAgBiAUEDxBGiMBQQFGDR8aCyMBRQRAIAQoArQCRSIGRQRAIAQoArACIgYQIQsLIAlBG0ZBASMBGwRAIBRBkPUEQQZBi/4EQQZBp4EFQRAQbEEbIwFBAUYNHxoLIwFFBEAgBEGwAmohGiAEQeAAaiEGCyAJQRxGQQEjARsEQCAaIAZBkPUEQQYQIkEcIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQkgBEGwAmohEyAEQeAAaiEYIAdBDGooAgAhGiAHQRRqKAIAIQYLIAlBHUZBASMBGwRAIBMgGCAaIAYQIkEdIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQogBEGwAmohBgsgCUEeRkEBIwEbBEAgBiAUEDxBHiMBQQFGDR8aCyMBRQRAIAQoArQCRSIGRQRAIAQoArACIgYQIQsLIAlBH0ZBASMBGwRAIBRBlvUEQQRBmvUEQQdBp4EFQRAQbEEfIwFBAUYNHxoLIwFFBEAgBEGwAmohGiAEQeAAaiEGCyAJQSBGQQEjARsEQCAaIAZBlvUEQQQQIkEgIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQsgBEGwAmohEyAEQeAAaiEYIAdBGGooAgAhGiAHQSBqKAIAIQYLIAlBIUZBASMBGwRAIBMgGCAaIAYQJUEhIwFBAUYNHxoLIwFFBEAgBCgCsAIiFkERRyIGDQMgBEGwAmohBgsgCUEiRkEBIwEbBEAgBiAUEDxBIiMBQQFGDR8aCyMBRQRAIAQoArQCBEAgBCgCsAIQIQsgB0EkaiIHIA9HIgYNAQsLCyAPIARBsAJqIwEbIQ8gCUEjRkEBIwEbBEAgDyAUEDxBIyMBQQFGDR0aCyMBRQRAIAQoArQCBEAgBCgCsAIQIQsgBCgCaCEUIARBIGohDyAEKAJwIQcLIAlBJEZBASMBGwRAIA8gBxDKAUEkIwFBAUYNHRoLIwFFBEAgBCgCJCEWIAQoAiAgFCAHEPgBIRQgBEHgAGoQ0gEgBCAHNgK4AiAEIBY2ArQCIAQgFDYCsAIgBEGwAmohDyAEQeAAaiEGCyAJQSVGQQEjARsEQCAGICwgIkHBgwVBCCAPEIwBQSUjAUEBRg0dGgsjAUUEQCAEKAJgRSIPDQMgBEHsAGooAgAhByAEQegAaigCACEWIAQoAmQhFAwYCwsjAUUEQCAEQZACaiIOIARBvAJqKAIAIgs2AgAgBCAEKQK0AjcDiAIMFQsLIwFFBEAgBCgCvAIhFCAEKAK4AiEWIAQoArQCIQ8MFQsLIwFFBEAgBEHsAGooAgAhFCAEQegAaigCACEZIAQoAmQhGkEbEA4iB0UiDw0MIAdBF2oiBkHTnAUoAAA2AAAgB0EQakHMnAUpAAA3AAAgB0EIakHEnAUpAAA3AAAgB0G8nAUpAAAiQzcAAEEzEA4iFkUiDw0MIBZBjoMFQTMQ+AEhFiAHECEgBEEANgLEAiAEQgQ3ArwCIARCs4CAgLAGNwK0AiAEIBY2ArACIARBsAJqIQ8gBEHgAGohBgsgCUEmRkEBIwEbBEAgBiAaIBQgDxBaQSYjAUEBRg0aGgsgFiAEQZABaiMBGyEWIAlBJ0ZBASMBGwRAIBZBwYMFQQhBn4EFQQhBpYIFQRcQbEEnIwFBAUYNGhoLIwFFBEAgBEHgAGohDyAEQbACaiEGCyAJQShGQQEjARsEQCAGIA8QKkEoIwFBAUYNGhoLIwFFBEAgBCgCsAIiE0EWRyEPCwJAAkAjAUUEQCAPDQEgBCgCtAIhByAEQQA2ApACIARCBDcDiAJBBCAHRQ0MGiAHrSFEQgAhQkEEIQ9BACEHCwNAIwFFBEAgBEEANgLgASAEQgE3A9gBIARBAzoA0AIgBEKAgICAgAQ3A7ACIARBpPcENgLMAiAEQQA2AsACIARBADYCuAIgBCAEQdgBajYCyAIgBEGwAmohBgsgCUEpRkEBIwEbBEAgQkEBIAYQUkEpIwFBAUYNHRohBgsjAUUEQCAGDQogBCgC2AEhFCAEKALgASEGCyAJQSpGQQEjARsEQCAWQZSLBUEGIBQgBkGaiwVBARBsQSojAUEBRg0dGgsjAUUEQCAEKALcAQRAIAQoAtgBECELIARBsAJqIRQgBEHgAGohBgsgCUErRkEBIwEbBEAgFCAGEBVBKyMBQQFGDR0aCyMBRQRAIAQoArQCIRQgBCgCsAIiE0EWRyEGCwJAIwFFBEAgBg0BIAcgBCgCjAJHIQYLAkAjAUUEQCAGDQEgBEGIAmohDwsgCUEsRkEBIwEbBEAgDyAHEHNBLCMBQQFGDR8aCyMBRQRAIAQoAogCIQ8gBCgCkAIhBwsLIwFFBEAgQkIBfCFCIAdBAnQgD2ogFDYCACAEIAQoApACQQFqIgc2ApACIARBsAJqIQYLIAlBLUZBASMBGwRAIAYgFhA8QS0jAUEBRg0eGgsjAUUEQCAEKAK0AgRAIAQoArACECELIEIgRFEiBg0NDAILCwsjAUUEQCAEKQO4AiFCIAQoAowCRSIGDQIgDxAhDAILCyMBRQRAIAQpA7gCIUIgBCgCtAIhFAsLIwFFBEAgBEHgAGoQ0gEgBCAUNgJkIAQgEzYCYCAEIEI+AmggBCBCQiCIIkM+AmwgBEEANgK4AiAEQgE3A7ACIARBsAJqIQ8gBEHgAGohBgsgCUEuRkEBIwEbBEAgBiAPQbiABRAWQS4jAUEBRg0aGiEPCyMBRQRAIA8NCCAEQeAAahDfASAEKAKwAiEUIAQoArQCIRYgBCgCuAIhB0EBDAsLCyMBRQRAIARBkAJqIg4gBEG8AmooAgAiCzYCACAEIAQpArQCNwOIAgwSCwsjAUUEQCAEQZACaiIOIARBvAJqKAIAIgs2AgAgBCAEKQK0AjcDiAIMEQsLIwFFBEAgBEGQAmoiDiAEQbwCaigCACILNgIAIAQgBCkCtAI3A4gCDBALCyMBRQRAIARBkAJqIg4gBEG8AmooAgAiCzYCACAEIAQpArQCNwOIAgwPCwsjAUUEQCAEQZACaiIOIARBvAJqKAIAIgs2AgAgBCAEKQK0AjcDiAIMDgsLIwFFBEAgBEGQAmoiDiAEQbwCaigCACILNgIAIAQgBCkCtAI3A4gCDA0LCyASIARB2AJqIwEbIRIgCUEvRkEBIwEbBEBBiJcFQTcgEkG89wRBnJgFEJcBQS8jAUEBRg0TGgsjAUUEQAALCyASIARB2AJqIwEbIRIgCUEwRkEBIwEbBEBBiJcFQTcgEkHQgAVBnJgFEJcBQTAjAUEBRg0SGgsjAUUEQAALCyMBBH8gFAUgBCgCiAILCyEUIwFFBEAgBCkCjAIhQiAEQbACaiEPCyAJQTFGQQEjARsEQCAPIBYQPEExIwFBAUYNEBoLIwEEfyAPBSBCQiCIIUQgBCgCtAIEQCAEKAKwAhAhCyBEpyEHIEKnIRYgBEHgAGoQ0gFBAAsLIQ8jAUUEQCAZRSIGRQRAIBoQIQsgDw0KIAUgDBCYASAKBEAgBRAhCyAEQRhqIQ8LIAlBMkZBASMBGwRAIA8gBxCSAUEyIwFBAUYNDxoLIwFFBEAgBCgCHCEPIAQoAhgiBSAUIAdBAnQQ+AEhGkEbEA4iDEUiBg0BIAxBF2oiBUHTnAUoAAA2AAAgDEEQakHMnAUpAAA3AAAgDEEIakHEnAUpAAA3AAAgDEG8nAUpAAAiQzcAAEE4EA4iCkUiBg0BIApB4IAFQTgQ+AEhCiAMECEgBEGwAmohBgsgCUEzRkEBIwEbBEAgBiAKQTgQswFBMyMBQQFGDQ8aCyAGIARBvAJqIwEbIQYgCUE0RkEBIwEbBEAgBkEEQQAQXEE0IwFBAUYNDxoLIwFFBEAgBEGYAWogBEG4AmopAwA3AwAgBEGgAWogBEHAAmopAwA3AwAgBEEANgKMASAEQgQ3AoQBIARCuICAgIAHNwJ8IAQgCjYCeCAEQQA2AnAgBEIBNwNoIARCADcDYCAEIAQpA7ACIkM3A5ABIARB4ABqIQYgBEGwAmohBQsgCUE1RkEBIwEbBEAgBSAGQQIQPkE1IwFBAUYNDxoLIwFFBEAgBCgCsAIiDEERRyEGCwJ/AkACQAJAAkACQAJAAkACQAJAAkACQCMBRQRAIAYNASAEQZABaiETCyAJQTZGQQEjARsEQCATQZiBBUEHQZ+BBUEIQaeBBUEQEGxBNiMBQQFGDRsaCyMBRQRAIARB4ABqIQYgBEGwAmohBQsgCUE3RkEBIwEbBEAgBSAGQZiBBUEHECJBNyMBQQFGDRsaCyMBRQRAIAQoArACIgxBEUciBg0BIARB4ABqIQYgBEGwAmohBQsgCUE4RkEBIwEbBEAgBSAGIAcQP0E4IwFBAUYNGxoLIwFFBEAgBCgCsAIiDEERRyIGDQEgB0UhBgsCQCMBRQRAIAYNASAHQQJ0IQogGiEHCwNAIwFFBEAgBEGwAmohGCAHKAIAIQYgBEHgAGohBQsgCUE5RkEBIwEbBEAgGCAFIAYQIEE5IwFBAUYNHRoLIwFFBEAgBCgCsAIiDEERRyIGDQMgB0EEaiEHIApBBGsiCg0BCwsLIAYgBEGwAmojARshBiAJQTpGQQEjARsEQCAGIBMQPEE6IwFBAUYNGxoLIwFFBEAgBCgCtAJFIgZFBEAgBCgCsAIiBhAhCwsgCUE7RkEBIwEbBEAgE0G3gQVBCkHBgQVBFEGngQVBEBBsQTsjAUEBRg0bGgsjAUUEQCAEQeAAaiEGIARBsAJqIQULIAlBPEZBASMBGwRAIAUgBkG3gQVBChAiQTwjAUEBRg0bGgsjAUUEQCAEKAKwAiIMQRFHIgYNASAEQeAAaiEGIARBsAJqIQULIAlBPUZBASMBGwRAIAUgBkEBECBBPSMBQQFGDRsaCyMBRQRAIAQoArACIgxBEUYiBg0CCwsjAUUEQCAEKAK8AiEHIAQoArgCIQogBCgCtAIhEyAEQeAAahDSASAEIAc2AmwgBCAKNgJoIAQgEzYCZCAEIAw2AmAgBEEANgK4AiAEQgE3A7ACIARBsAJqIQsgBEHgAGohDgsgCUE+RkEBIwEbBEAgDiALQbiABRAZQT4jAUEBRg0aGiELCyMBRQRAIAtFIgsNAiAEQdgCaiESCyAJQT9GQQEjARsEQEGIlwVBNyASQdCABUGcmAUQlwFBPyMBQQFGDRoaCyMBRQRAAAsLIAYgBEGwAmojARshBiAJQcAARkEBIwEbBEAgBiATEDxBwAAjAUEBRg0ZGgsjAUUEQCAEKAK0AgRAIAQoArACECELIAQoAmghByAEKAJwIQwgBEEQaiEGCyAJQcEARkEBIwEbBEAgBiAMEMoBQcEAIwFBAUYNGRoLIwFFBEAgBCgCFCEKIAQoAhAgByAMEPgBIQcgBEHgAGoQ0gEgBCAMNgK4AiAEIAo2ArQCIAQgBzYCsAIgBEGwAmohBiAEQeAAaiEFCyAJQcIARkEBIwEbBEAgBSAsICJBhoIFQQYgBhCMAUHCACMBQQFGDRkaCyMBRQRAIAQoAmAEQCAEQewAaigCACEMIARB6ABqIgsoAgAhCiAEKAJkIQcMEQsgBEHsAGooAgAhByAEQegAaigCACEmIAQoAmQhG0EbEA4iDEUiBg0LIAxBF2oiBUHTnAUoAAA2AAAgDEEQakHMnAUpAAA3AAAgDEEIakHEnAUpAAA3AAAgDEG8nAUpAAAiQzcAAEExEA4iCkUiBg0LIApB1YEFQTEQ+AEhCiAMECEgBEEANgLEAiAEQgQ3ArwCIARCsYCAgJAGNwK0AiAEIAo2ArACIARBsAJqIQYgBEHgAGohBQsgCUHDAEZBASMBGwRAIAUgGyAHIAYQWkHDACMBQQFGDRkaCyATIARBkAFqIwEbIRMgCUHEAEZBASMBGwRAIBNBhoIFQQZBjIIFQRlBpYIFQRcQbEHEACMBQQFGDRkaCyMBRQRAIARB4ABqIQYgBEGwAmohBQsgCUHFAEZBASMBGwRAIAUgBhAqQcUAIwFBAUYNGRoLIwFFBEAgBCgCsAIiDEEWRyIGDQIgBCgCtAIhDCAEQQA2ArABIARCBDcDqAEgDEUEQEEEIQcMCgsgDK0hRyAEQfUBaiE0IARB6AFqITUgBEGwAmpBBXIhJyAEQZgCakEBciE2IARBiAJqQQFyITcgBEHYAWoiBkEFciE4QgAhQgsDQCMBRQRAIARBADYC4AEgBEIBNwPYASAEQQM6ANACIARCgICAgIAENwOwAiAEQaT3BDYCzAIgBEEANgLAAiAEQQA2ArgCIAQgBEHYAWo2AsgCIARBsAJqIQYLIAlBxgBGQQEjARsEQCBCQQEgBhBSQcYAIwFBAUYNGhohBgsCQAJAAkAjAUUEQCAGDQEgBCgC4AEhBiAEKALYASEFCyAJQccARkEBIwEbBEAgE0GUiwVBBiAFIAZBmosFQQEQbEHHACMBQQFGDR0aCyMBRQRAIAQoAtwBBEAgBCgC2AEQIQsgBEHgAGohBiAEQbACaiEFCyAJQcgARkEBIwEbBEAgBSAGEClByAAjAUEBRg0dGgsjAUUEQCAEKAK0AiEHIAQoArACIgxBFkciBg0CIAdFBEBBACEYQQAhBgwICyBCQgF8IUJBBSEcQQAhGEEAIS1BACE5QQAhKEEAIQYLA0AjAUUEQCAEQbACaiEKIARB4ABqIQULIAlByQBGQQEjARsEQCAKIAUQFEHJACMBQQFGDR4aCyMBRQRAIAQoArgCIRkgBCgCtAIhDCAEKAKwAiIFQRZHIR4gBCgCvAIhCgsCQAJAAkACQAJAAkACQAJAAkACQAJAIwFFBEAgHg0BIApBBWshBQsCQAJAAn8CQAJAAkAjAUUEQAJAIAUOAgIAAwsgDEGe8wRBBhD5AUUhBQsCQAJAIwFFBEAgBQ0BIAxBhoIFQQYQ+QFFIgUNAkEGIQogDEG18wRBBhD5ASIFDQQLIAlBygBGQQEjARsEQCATIAxBBkG78wRBFEH7/ARBHBBsQcoAIwFBAUYNMRoLIwFFBEAgBCkDYCFEIARBiAJqIQogBEHgAGohBQsgCUHLAEZBASMBGwRAIAogBRBtQcsAIwFBAUYNMRoLIwFFBEAgBC0AiAJBBEciBQ0FIAQtAIkCDAYLCyAJQcwARkEBIwEbBEAgEyAMQQZBpPMEQQNB+/wEQRwQbEHMACMBQQFGDTAaCyMBRQRAIARBsAJqIQogBEHgAGohBQsgCUHNAEZBASMBGwRAIAogBRAVQc0AIwFBAUYNMBoLIwFFBEAgBCgCtAIhLSAEKAKwAiIKQRZHIQULAkAjAUUEQCAFDQEgBEGwAmohBQsgCUHOAEZBASMBGwRAIAUgExA8Qc4AIwFBAUYNMRoLIwFFBEAgBCgCtAJFIgVFBEAgBCgCsAIiBRAhC0EBITkMEwsLIwFFBEAgBEEGOgD0ASAEIAQpA7gCIkM3A+ABIAQgLTYC3AEgBCAKNgLYAQwRCwsgCUHPAEZBASMBGwRAIBMgDEEGQaiABUEPQfv8BEEcEGxBzwAjAUEBRg0vGgsjAUUEQCAEQbACaiEKIARB4ABqIQULIAlB0ABGQQEjARsEQCAKIAUQkAFB0AAjAUEBRg0vGgsjAUUEQCAEKAKwAiIKQRZHIR4gBC0AtAIhBQsCQAJAIwFFBEAgHg0BQQAhCgsCQAJAIwFFBEAgBQ0BIARBiAJqIQogBEHgAGohBQsgCUHRAEZBASMBGwRAIAogBRAcQdEAIwFBAUYNMxoLIwFFBEAgBCgCiAJBFkciBQ0CIAQoApQCITwgBCgCkAIhIyAEKAKMAiEKCwsjAUUEQCAYRSApRXJFBEAgGBAhCyAEQbACaiEFCyAJQdIARkEBIwEbBEAgBSATEDxB0gAjAUEBRg0yGgsjAUUEQCAEKAK0AkUiBUUEQCAEKAKwAiIFECELIAohGCAjISkMFAsLIwFFBEAgBEG4AmogBEGQAmopAwA3AwAgBCAEKQOIAiJDNwOwAiAEQQA2AqACIARCATcDmAIgBEGwAmohCiAEQZgCaiEFCyAJQdMARkEBIwEbBEAgCiAFQfyFBRAWQdMAIwFBAUYNMRohBQsjAUUEQCAFDQogBCgCmAIhByAEKAKcAiETIAQoAqACIQUgBEGwAmoQ3wFBAiEKDAILCyMBRQRAIAQvALUCIiMgBC0AtwJBEHRyQQh0IAVyIQcgBCgCuAIhEyAEKAK8AiEFCwsjAUUEQCAEIAU2AuQBIAQgEzYC4AEgBCAHNgLcASAEQQY6APQBIAQgCjYC2AEMEAsLIwFFBEBBBSEKIAxBsLAFQQUQ+QFFIgUNDgsLIAUgBEEIaiMBGyEFIAlB1ABGQQEjARsEQCAFIAoQygFB1AAjAUEBRg0tGgsjAUUEQCAEIAQoAgw2AuABIAQgBCgCCCIHNgLcASAHIAwgChD4ASEFIARBBjoA9AEgBEERNgLYASAEIAo2AuQBDA4LCyMBBH8gCgUgBCkDiAIiRkL/AYMiQ0IEUiIFDQIgRkIIiCJDpwsLIQojAUUEQCAEIEQ3A2AgCkH/AXEiCkEfSyIFDQJBASAKdEGIgICAfnFFIgUNAgwICwsjAUUEQCAEIEY3A4gCIARBsAJqIQogBEGIAmohBQsgCUHVAEZBASMBGwRAIAogBRCTAUHVACMBQQFGDSoaCyMBRQRAIAQtALQCIQogBCgCsAIiBUEWRyIeDQQgCkH/AXEiBQ0HCwsjAUUEQCAEQbACaiEKIARB4ABqIQULIAlB1gBGQQEjARsEQCAKIAUQFUHWACMBQQFGDSkaCyMBRQRAIAQoArQCIRwgBCgCsAIiCkEWRiIFRQRAIAQgBCkDuAIiQzcD4AEgBCAcNgLcASAEIAo2AtgBDAYLIBxBBkkiBQ0HIARBADYCkAIgBEIBNwOIAiAEQQM6ANACIARCgICAgIAENwOwAiAEQbiEBTYCzAIgBEEANgLAAiAEQQA2ArgCIAQgBEGIAmo2AsgCIBytIkdCACAcrH0gHEF/SiIHGyFDIARBsAJqIQULIAlB1wBGQQEjARsEQCBDIAcgBRBSQdcAIwFBAUYNKRohBQsjAUUEQCAFDQQgBEEJNgKsAiAEIARBiAJqNgKoAiAEQQE2AsQCIARCATcCtAIgBEGQhQU2ArACIAQgBEGoAmo2AsACIARBmAJqIQogBEGwAmohBQsgCUHYAEZBASMBGwRAIAogBRA7QdgAIwFBAUYNKRoLIwFFBEAgBCgCjAIEQCAEKAKIAhAhCyAEIDYpAAA3A/gBIAQgNkEHaigAADYA/wEgBC0AmAIhByAnIAQpA/gBIkM3AAAgJ0EHaiAEKAD/ATYAACAEIAc6ALQCIARBATYCsAIgBEHYAWohCiAEQbACaiEFCyAJQdkARkEBIwEbBEAgCiAFEF1B2QAjAUEBRg0pGgsjAUUNBAsjAUUEQCAEIAo2AuQBIAQgGTYC4AEgBCAMNgLcASAEIAU2AtgBDBMLCyASIARB2AJqIwEbIRIgCUHaAEZBASMBGwRAQYiXBUE3IBJBlIYFQZyYBRCXAUHaACMBQQFGDScaCyMBRQRAAAsLIwFFBEAgOCAnKQAAIkM3AAAgOEEHaiIjICdBB2ooAAAiBzYAACAEQQY6APQBIAQgCjoA3AEgBCAFNgLYAQwHCwsgEiAEQdgCaiMBGyESIAlB2wBGQQEjARsEQEGIlwVBNyASQdCEBUGcmAUQlwFB2wAjAUEBRg0lGgsjAUUEQAALCyMBRQRAIARBBjoA9AEMBQsLIwFFBEAgBEGwAmohCiAEQeAAaiEFCyAJQdwARkEBIwEbBEAgCiAFEBRB3AAjAUEBRg0jGgsjAUUEQCAEKAK8AiEFIAQoArgCISggBCgCtAIhCgJAAkAgBCgCsAIiHEEWRyIeRQRAAkACQAJAAkAgBUEFayIeDgUDAgAJAQkLIApBmIUFQQcQ+QENBEEAIRwMBQsgCkGmhQVBCRD5AUUEQEECIRwMBQtBCSEFQQMhHCAKQa+FBUEJEPkBIh4NBwwEC0EGIQVBBCEcIApBuIUFQQYQ+QEiHg0GDAMLQQUhBUEFIRwgCkG+hQVBBRD5AUUiHg0CDAULIAQgBTYC5AEgBCAoNgLgASAEIAo2AtwBIARBBjoA9AEgBCAcNgLYAQwGC0EHIQVBASEcIApBn4UFQQcQ+QEiHg0DCyAoRSIFDQEgChAhCwsgBSAEQbACaiMBGyEFIAlB3QBGQQEjARsEQCAFIBMQPEHdACMBQQFGDSIaCyMBRQRAIAQoArQCRSIFRQRAIAQoArACIgUQIQtBASEoDAQLCyMBRQRAIAQgBTYCrAIgBCAKNgKoAiAEQQw2AvwBIAQgBEGoAmo2AvgBIARBATYCxAIgBEIBNwK0AiAEQfCFBTYCsAIgBCAEQfgBajYCwAIgBEGIAmohByAEQbACaiEFCyAJQd4ARkEBIwEbBEAgByAFEDtB3gAjAUEBRg0hGgsjAUUEQCAELQCIAiEFIAQgN0EHaigAADYAnwIgBCA3KQAANwOYAiAnIAQpA5gCIkM3AAAgJ0EHaiIjIAQoAJ8CNgAAIAQgBToAtAIgBEEANgKwAiAEQdgBaiEHIARBsAJqIQULIAlB3wBGQQEjARsEQCAHIAUQXUHfACMBQQFGDSEaCyMBRQRAIARBBjoA9AEgKEUiBQ0CIAoQIQwCCwsgCUHgAEZBASMBGwRAIBMgDEEFQafzBEEOQfv8BEEcEGxB4AAjAUEBRg0gGgsjAUUEQCAEQbACaiEKIARB4ABqIQULIAlB4QBGQQEjARsEQCAKIAUQkAFB4QAjAUEBRg0gGgsjAUUEQCAEKAKwAiIKQRZHIR4gBC0AtAIhBQsCQAJAAkAjAUUEQCAeDQFBACEKCwJAAkAjAUUEQCAFDQEgBEGIAmohCiAEQeAAaiEFCyAJQeIARkEBIwEbBEAgCiAFEBRB4gAjAUEBRg0lGgsjAUUEQCAEKAKIAkEWRyIFDQIgBCgClAIhLiAEKAKQAiEiIAQoAowCIQoLCyMBRQRAIAZFIgUgDkVyRQRAIAYQIQsgBEGwAmohDgsgCUHjAEZBASMBGwRAIA4gExA8QeMAIwFBAUYNJBoLIwFFBEAgBCgCtAIEQCAEKAKwAhAhCyAKIQYgIiEODAYLCyMBRQRAIARBuAJqIARBkAJqKQMANwMAIAQgBCkDiAIiQzcDsAIgBEEANgKgAiAEQgE3A5gCIARBsAJqIQogBEGYAmohBQsgCUHkAEZBASMBGwRAIAogBUH8hQUQFkHkACMBQQFGDSMaIQULIwFFBEAgBQ0DIAQoApgCIQcgBCgCnAIhEyAEKAKgAiEFIARBsAJqEN8BQQ8hCgwCCwsjAUUEQCAELwC1AiIjIAQtALcCQRB0ckEIdCAFciEHIAQoArgCIRMgBCgCvAIhBQsLIwFFBEAgBCAFNgLkASAEIBM2AuABIAQgBzYC3AEgBEEGOgD0ASAEIAo2AtgBDAILCyASIARB2AJqIwEbIRIgCUHlAEZBASMBGwRAQYiXBUE3IBJBlIYFQZyYBRCXAUHlACMBQQFGDSAaCyMBRQRAAAsLIwFFBEAgGUUiBQ0KIAwQIQwKCwsjAUUEQCAHQQFrIQcgGQRAIAwQIQsgB0UiBQ0EDAELCwsgEiAEQdgCaiMBGyESIAlB5gBGQQEjARsEQEGIlwVBNyASQbz3BEGcmAUQlwFB5gAjAUEBRg0cGgsjAUUEQAALCyMBRQRAIAQgBCkDuAI3A+ABIAQgBzYC3AEgBCAMNgLYAQwHCwsjAUUEQCA5RSIFDQQgKEEBcUUhBQsCQCMBRQRAIAUNASAEIC42AvABIAQgDjYC7AEgBCAGNgLoASAEIDw2AuQBIAQgKTYC4AEgBCAYNgLcASAEIC02AtgBIBxB/wFxQQZGIgYNByAEQcABaiIZIDVBCGooAgA2AgAgBEG2AWoiBiA0QQJqLQAAOgAAIAQgNC8AACIMOwHEASAEIDUpAgAiQzcDuAEgBCAMOwG0ASAEKQPgASFEIAQoAtgBIRggBCgCsAEiCiAEKAKsAUchByAEKALcASEFCwJAIwFFBEAgBw0BIARBqAFqIQcLIAlB5wBGQQEjARsEQCAKIR1BACENQQAhEEEAIRUjAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQ0LIAchCAJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIRULIwFFBEAjAEEgayINJAAgHUEBaiIdRSEQCwJAIwFFBEACQCAQDQAgCCgCBCIQQQF0IhEgHUshFyARIB0gFxsiHUEESyERIB1BBCARGyIdQQV0IREgHUGAgIAgSUECdCEXAkAgEARAIA1BBDYCGCANIBBBBXQ2AhQgDSAIKAIANgIQDAELIA1BADYCGAsgDSARIBcgDUEQahCLASANKAIARQRAIA0oAgQhECAIIB02AgQgCCAQNgIADAMLIA1BCGooAgAiCEGBgICAeEYNAiAIRQ0AAAsLIBVFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCANQSBqJAALDAELIQgjAigCACAINgIAIwIjAigCAEEEajYCACMCKAIAIA02AgAjAiMCKAIAQQRqNgIAC0HnACMBQQFGDRwaCyMBRQRAIAQoArABIQoLCyMBRQRAIAQoAqgBIgcgCkEFdGoiDCBENwIIIAwgBTYCBCAMIBg2AgAgDCAEKQO4ASJDNwIQIAwgHDoAHCAMIAQvAbQBOwAdIAxBGGoiGCAZKAIANgIAIAxBH2oiBSAGLQAAOgAAIAQgCkEBajYCsAEgBEGwAmohBgsgCUHoAEZBASMBGwRAIAYgExA8QegAIwFBAUYNGxoLIwFFBEAgBCgCtAIEQCAEKAKwAhAhCyBCIEdRIgYNCwwCCwsLIwFFBEBBHhAOIgxFIgUNCyAEQR42AuABIAQgDDYC3AEgDEEWakHx8wQpAAA3AAAgDEEQakHr8wQpAAA3AAAgDEEIaiIFQePzBCkAADcAACAMQdvzBCkAADcAACAEQR42AuQBIARBEzYC2AEMBAsLIwFFBEAgBEHgAGoiCxDfASAEKAKwAiEHIAQoArQCIQogBCgCuAIhDAwPCwsjAUUEQCAEKQO4AiFCIAQoArQCIQcMBAsLIwFFBEBBDBAOIgxFIgUNCCAEQQw2AuABIAQgDDYC3AEgDEEIaiIKQdfzBCgAACIFNgAAIAxBz/MEKQAANwAAIARBDDYC5AEgBEETNgLYAQsLIwFFBEAgBkUiBSAORXJFBEAgBhAhCyAYRSIODQEgKUUiDg0BIBgQIQsLIwFFBEAgBEG4AmogBEHgAWopAwA3AwAgBCAEKQPYATcDsAIgBEEANgKQAiAEQgE3A4gCIARBiAJqIQ4gBEGwAmohBgsgCUHpAEZBASMBGwRAIAYgDkHk+wQQFkHpACMBQQFGDRQaIQ4LIwFFBEAgDg0CIAQoAogCIQcgBCkCjAIhQiAEQbACahDfASAEKAKoASIIIAQoArABEJ0BIAQoAqwBRSIORQRAIAgQIQtBFCEMCwsjAUUEQCAEQeAAahDSASAEIAc2AmQgBCAMNgJgIAQgQj4CaCAEIEJCIIg+AmwgBEEANgK4AiAEQgE3A7ACIARBsAJqIQ4gBEHgAGohBgsgCUHqAEZBASMBGwRAIAYgDkG4gAUQFkHqACMBQQFGDRMaIQ4LIwFFBEAgDg0CIARB4ABqIg4Q3wEgBCgCsAIhByAEKAK4AiEMQQEhEyAEKAK0AgwECwsgEiAEQdgCaiMBGyESIAlB6wBGQQEjARsEQEGIlwVBNyASQfz7BEGcmAUQlwFB6wAjAUEBRg0SGgsjAUUEQAALCyASIARB2AJqIwEbIRIgCUHsAEZBASMBGwRAQYiXBUE3IBJB0IAFQZyYBRCXAUHsACMBQQFGDREaCyMBRQRAAAsLIwFFBEAgBCkCrAEhQiAEQbACaiEOCyAJQe0ARkEBIwEbBEAgDiATEDxB7QAjAUEBRg0QGgsjAQR/IAoFIEJCIIghRCAEKAK0AgRAIAQoArACECELIESnIQwgBEHgAGoiDhDSAUEAIRMgQqcLCyEKIwFFBEAgJkUiDkUEQCAbECELIBMNBkEAIRkgBEEANgKQAiAEQgQ3A4gCQQQgDEUiDg0EGiAHQRBqIRMgCygCACEFIARB2AFqIg5BBHIhIkEEISYgCygCCCELQQAhBgsDQAJAIwFFBEAgE0EMai0AAEECRiEOCwJAAn8CQAJAIwFFBEAgDg0BIBMoAgAiG0UiDg0CIBNBCGooAgAhDgsgCUHuAEZBASMBGwRAICIgGyAOELMBQe4AIwFBAUYNFRoLIwFFDQMLIwFFBEAgE0EMaygCACIbRQRAQSoQDiIbRSIODQcgBEEqNgLgASAEIBs2AtwBIBtB9PIEQSoQ+AEMAwsgE0EEaygCACELIARBsAJqIQ4LIAlB7wBGQQEjARsEQCAOIBsgCxBTQe8AIwFBAUYNFBoLIwFFBEAgBCgCsAJBFkYiCw0EIARB6ABqIgsgBEG4AmopAwA3AwAgBCAEKQOwAjcDYCAEQeAAaiESCyAJQfAARkEBIwEbBEBB0KEFQSsgEkG88ARB5PIEEJcBQfAAIwFBAUYNFBoLIwFFBEAACwsjAQR/IA4FQSoQDiIbRSIODQUgBEEqNgLgASAEIBs2AtwBIBtB9PIEQSoQ+AELCyEOIwFFBEAgBEEqNgLkAQsLIwFFBEAgBiALRiIODQQgBCgC4AEhGyAEQeAAaiEuIAUoAgAhGCAFQQRqKAIAISkgBCgC5AEhIyAEKALcASEOCyAJQfEARkEBIwEbBEAgLiAYICkgMiAOICMQkQFB8QAjAUEBRg0RGgsjAUUEQCAbBEAgDhAhCyAZIAQoAowCRyEOIAZBAWohBgsCQCMBRQRAIA4NASAEQYgCaiEOCyAJQfIARkEBIwEbBEAgDiAZEHVB8gAjAUEBRg0SGgsjAUUEQCAEKAKIAiEmIAQoApACIRkLCyMBRQRAICYgGUEMbGoiDiAEKQNgNwIAIA5BCGoiIyAEQegAaigCADYCACAEIAQoApACQQFqIhk2ApACIAVBCGohBSATQSBqIRMgBiAMRiIODQUMAgsLCyMBRQRAICIgBCkCtAI3AgAgIkEIaiIOIARBvAJqKAIANgIAIARBADYC2AEgEiAEKQPYATcCACASQQhqIgsgBEHgAWoiEikDADcCACAEKAKIAiEGDAULCyMBRQRAAAsLIAlB8wBGQQEjARsEQCALIAtByPkEEKIBQfMAIwFBAUYNDRoLIwFFBEAACwsjAQR/IAYFIAQoAogCCwshBiALIBJBBGojARshCyAJQfQARkEBIwEbBEAgCyAGIBkQTkH0ACMBQQFGDQsaCyMBRQRAIBJBATYCAAsLIwFFBEAgGQRAIBlBDGwhGSAGIRMDQCATQQRqKAIABEAgEygCABAhCyATQQxqIRMgGUEMayIZDQALCyAEKAKMAgRAIAYQIQsgByAMEJ0BIApFIhINAiAHECEMAgsLIwFFBEAgEiAHNgIEIBJBATYCACASQQxqIgsgDDYCACASQQhqIhIgCjYCAAsLIwFFBEAgDwRAIBoQIQsgFCEFIBYNBAwFCwsjAUUEQCAEQbwCaiAEQZACaigCADYCACAEIBY2ArACIAQgBCkDiAI3ArQCIARBADYC4AEgBEIBNwPYASAEQdgBaiELIARBsAJqIQ4LIAlB9QBGQQEjARsEQCAOIAtBuIQFEBlB9QAjAUEBRg0HGiELCyALIAtFIwEbIQsCQCMBRQRAIAsNASAEQdgCaiESCyAJQfYARkEBIwEbBEBBiJcFQTcgEkHQhAVBnJgFEJcBQfYAIwFBAUYNCBoLIwFFBEAACwsjAUUEQCAEKALYASEPIAQoAtwBIRYgBCgC4AEhFCAEQbACaiILEN8BQQ8hBwsLIwFFBEAgBEHgAGoQ0gEgBCAUNgJsIAQgFjYCaCAEIA82AmQgBCAHNgJgIARBADYCuAIgBEIBNwOwAiAEQbACaiELIARB4ABqIQ4LIAlB9wBGQQEjARsEQCAOIAtBuIAFEBlB9wAjAUEBRg0GGiELCyALIAtFIwEbIQsCQCMBRQRAIAsNASAEQdgCaiESCyAJQfgARkEBIwEbBEBBiJcFQTcgEkHQgAVBnJgFEJcBQfgAIwFBAUYNBxoLIwFFBEAACwsjAUUEQCAEQeAAahDfASAEKAKwAiEUIAQoArQCIRYgBCgCuAIhBwsLIwFFBEAgEiAUNgIEIBJBATYCACASQQxqIAc2AgAgEkEIaiAWNgIAIAUgDBCYASAKRQ0CCwsjAUUEQCAFECELCyMBRQRAIDtFDQEgLBAhCwsjAUUEQCAEKAJAIQUgBCgCSCIGBEAgBkEMbCEHIAUhDANAIAxBBGooAgAEQCAMKAIAECELIAxBDGohDCAHQQxrIgcNAAsLIAQoAkQEQCAFECELIDNFDQEgKxAhCwsjAUUEQCAEQeACaiQACwwBCyEIIwIoAgAgCDYCACMCIwIoAgBBBGo2AgAjAigCACIIIBI2AgAgCCALNgIEIAggDjYCCCAIIA82AgwgCCAyNgIQIAggBDYCFCAIIAY2AhggCCAFNgIcIAggBzYCICAIIAo2AiQgCCAMNgIoIAggFDYCLCAIIBM2AjAgCCAWNgI0IAggQjcCOCAIIBk2AkAgCCBDNwJEIAggGDYCTCAIIBo2AlAgCCAbNgJUIAggHDYCWCAIIEQ3AlwgCCAeNgJkIAggIjYCaCAIICM2AmwgCCAmNgJwIAggJzYCdCAIICg2AnggCCBGNwJ8IAggKTYChAEgCCArNgKIASAIICw2AowBIAggLTYCkAEgCCAuNgKUASAIIDM2ApgBIAggRzcCnAEgCCA0NgKkASAIIDU2AqgBIAggNjYCrAEgCCA3NgKwASAIIDg2ArQBIAggOTYCuAEgCCA7NgK8ASAIIDw2AsABIwIjAigCAEHEAWo2AgALQQAjAUEBRg0HGgsjAUUNAQsgQUEBRkEBIwEbBEAgJSA/ICogASACIDEQHkEBIwFBAUYNBhoLCyMBRQRAICUoAgwhQCAlKAIIIQMgJSgCBCEwICUoAgBFDQMgL0EBayEvIANFIgNFBEAgMBAhCyAvDQELCwsjAUUEQCAAQQA2AgAMAgsLIwFFBEAgACBANgIIIAAgAzYCBCAAIDA2AgALCyMBRQRAICVBEGokAAsPCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAlNgIQIAUgKjYCFCAFIC82AhggBSAwNgIcIAUgMTYCICAFID02AiQgBSA+NgIoIAUgPzYCLCAFIEA2AjAjAiMCKAIAQTRqNgIAC60EAQR/IwFBAkYEQCMCIwIoAgBBHGs2AgAjAigCACIFKAIAIQAgBSgCBCEBIAUoAgghAiAFKAIMIQMgBSgCECEEIAUoAhQhByAFKAIYIQULAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQYLIwFFBEAjACIEQRBrIgckAAsCQANAIAQgB0EIaiMBGyEEIAZFQQEjARsEQCAEIAEgAiADEI4BQQAjAUEBRg0DGgsjAUUEQCAHLQAIIgRBBEchBQsCQAJAIwFFBEACQCAFRQRAIAcoAgwiBA0BIABBpJkFNgIEIABBAjYCAAwGCwJAAn8CQAJAAkAgBEEBaw4DAAECBAsgBy0ACQwCCyAHKAIMLQAIDAELIAcoAgwtAAgLQf8BcUEjRiIEDQMLIAAgBykDCDcCAAwFCyADIARJIgVFBEAgAyAEayEDIAIgBGohAgwDCwsgBkEBRkEBIwEbBEAgBCADQfiYBRDuAUEBIwFBAUYNBRoLIwFFBEAACwsgBCAHQQhqIwEbIQQgBkECRkEBIwEbBEAgBBDJAUECIwFBAUYNBBoLCyMBRUEAIAMbDQALIwFFBEAgAEEEOgAACwsjAUUEQCAHQRBqJAALDwshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAc2AhQgBiAFNgIYIwIjAigCAEEcajYCAAvvAgEEfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQSBrIgMkACABIAJqIgIgAUkhAQsCQCMBRQRAAkAgAQ0AIABBBGooAgAiAUEBdCIEIAJLIQYgBCACIAYbIgJBCEshBCACQQggBBsiAkF/c0EfdiEEAkAgAQRAIANBATYCGCADIAE2AhQgAyAAKAIANgIQDAELIANBADYCGAsgAyACIAQgA0EQahCPASADKAIARQRAIAAgAygCBDYCACAAQQRqIAI2AgAMAwsgA0EIaigCACIAQYGAgIB4Rg0CIABFDQAACwsgBUVBASMBGwRAEMsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIANBIGokAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAjAigCACADNgIAIwIjAigCAEEEajYCAAvGAQEDfyMAQSBrIgQkACAAAn9BACACIANqIgMgAkkNABogASgCBCICQQF0IgUgA0shBiAFIAMgBhsiA0EISyEFIANBCCAFGyIFQX9zQR92IQMCQCACBEAgBEEBNgIYIAQgAjYCFCAEIAEoAgA2AhAMAQsgBEEANgIYCyAEIAUgAyAEQRBqEIsBIAQoAgQhAyAEKAIABEAgBEEIaigCAAwBCyABIAU2AgQgASADNgIAQYGAgIB4CzYCBCAAIAM2AgAgBEEgaiQAC8oCAQR/IwBBIGsiBCQAIAACf0EAIAIgA2oiAyACSQ0AGiABKAIEIgJBAXQiBiADSyEFIAYgAyAFGyIDQQhLIQYgA0EIIAYbIgZBf3NBH3YhBwJAIAIEQCAEQQE2AhggBCACNgIUIAQgASgCADYCEAwBCyAEQQA2AhgLIAYhAiAEQRBqIQUgBCIDAn8CfwJAAkAgBwRAAkAgAkEATgRAIAUoAggNAQwECwwCCyAFKAIERQ0CIAUoAgAgAhAjDAMLIAMgAjYCBAsgA0EIakEANgIAQQEMAgsgAhAOCyIFBEAgAyAFNgIEIANBCGogAjYCAEEADAELIAMgAjYCBCADQQhqQQE2AgBBAQs2AgAgBCgCBCEDIAQoAgAEQCAEQQhqKAIADAELIAEgBjYCBCABIAM2AgBBgYCAgHgLNgIEIAAgAzYCACAEQSBqJAAL7QUBDX9B/KcEIQlBBCEKQeKqBSELQeynBCEMQQghDUHipwQhDkELIQVB16cEIQQjAUECRgRAIwIjAigCAEE4azYCACMCKAIAIgMoAgAhACADKAIIIQUgAygCDCEOIAMoAhAhDSADKAIYIQwgAygCHCELIAMoAiAhCiADKAIkIQIgAygCKCEJIAMoAiwhBiADKAIwIQggAygCNCEPIAMoAgQhBCADKAIUIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEQayIGJAAgACgCGCEPIABBHGooAgAoAgwhCAsgB0VBASMBGwRAIA8gBCAFIAgRAQBBACMBQQFGDQEaIQULIwFFBEAgBkEAOgANIAYgBToADCAGIAA2AgggBkEIaiEACyAHQQFGQQEjARsEQCAAIA4gDSABIAwQS0EBIwFBAUYNARohAAsgB0ECRkEBIwEbBEAgACALIAogAiAJEEtBAiMBQQFGDQEaIQULIwFFBEAgBi0ADUUhBCAGLQAMIQALAkAjAUUEQCAEDQEgAEH/AXFBASEADQEgBSgCACIALQAAQQRxIQQLAkAjAUUEQCAEDQEgACgCGCEEIABBHGooAgAoAgwhAAsgB0EDRkEBIwEbBEAgBEHGhgRBAiAAEQEAQQMjAUEBRg0DGiEACyMBRQ0BCyMBRQRAIAAoAhghBCAAQRxqKAIAKAIMIQALIAdBBEZBASMBGwRAIARBvoYEQQEgABEBAEEEIwFBAUYNAhohAAsLIwFFBEAgBkEQaiQAIABB/wFxQQBHDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyAENgIEIAMgBTYCCCADIA42AgwgAyANNgIQIAMgATYCFCADIAw2AhggAyALNgIcIAMgCjYCICADIAI2AiQgAyAJNgIoIAMgBjYCLCADIAg2AjAgAyAPNgI0IwIjAigCAEE4ajYCAEEAC58EAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEHQAGsiAyQAIAJBCHQhAgsgBUVBASMBGwRAIAMgASACEKUBQQAjAUEBRg0BGgsjAUUEQEERIQIgAy0AAEEERiEBCwJAAkAjAUUEQCABDQEgAyADKQMANwMIIANBADYCGCADQgE3AxAgA0E8akHwlgU2AgAgA0EDOgBAIANCgICAgIAENwMgIANBADYCMCADQQA2AiggAyADQRBqNgI4IANBIGohAiADQQhqIQELIAVBAUZBASMBGwRAIAEgAhBIQQEjAUEBRg0DGiEBCyMBRQRAIAENAiAAIAMpAxA3AgQgAEEMaiADQRhqKAIAIgI2AgAgA0EIaiEBCyAFQQJGQQEjARsEQCABEMkBQQIjAUEBRg0DGgsgAkEBIwEbIQILIwFFBEAgACACNgIAIANB0ABqJAAPCwsgACADQcgAaiMBGyEAIAVBA0ZBASMBGwRAQYiXBUE3IABBwJcFQZyYBRCXAUEDIwFBAUYNARoLIwFFBEAACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCMCIwIoAgBBEGo2AgALnwQBBX8jAUECRgRAIwIjAigCAEEUazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBiABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEHQAGsiAiQACyAFRUEBIwEbBEAgAiABQQQQpQFBACMBQQFGDQEaCyMBRQRAIAItAABBBEYhA0ERIQELAkACQCMBRQRAIAMNASACIAIpAwA3AwggAkEANgIYIAJCATcDECACQTxqQfCWBTYCACACQQM6AEAgAkKAgICAgAQ3AyAgAkEANgIwIAJBADYCKCACIAJBEGo2AjggAkEIaiEDIAJBIGohBkEAIQELIAVBAUZBASMBGwRAIAMgBhBIQQEjAUEBRg0DGiEDCyMBRQRAIAMNAiAAIAIpAxA3AgQgAEEMaiACQRhqKAIANgIAIAJBCGohAwsgBUECRkEBIwEbBEAgAxDJAUECIwFBAUYNAxoLCyMBRQRAIAAgATYCACACQdAAaiQADwsLIAAgAkHIAGojARshACAFQQNGQQEjARsEQEGIlwVBNyAAQcCXBUGcmAUQlwFBAyMBQQFGDQEaCyMBRQRAAAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwgBCAGNgIQIwIjAigCAEEUajYCAAunAQICfwJ+AkACQCADRQRADAELQQAgA2shBwNAIAItAAAgAWoxAAAiCUIBWARAIAJBAWohAiAIIAkgBkEHakE/ca2GhCEIIAZBAWsiBiAHRw0BDAILC0EAIAZrIQNBASEGDAELQQAhBiAFRQ0AQQAhAgNAIAQgCCACQThxrYg8AAAgAkE4aiECIARBAWohBCAFQQFrIgUNAAsLIAAgAzYCBCAAIAY2AgALhgQBB38jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgIoAgAhACACKAIEIQMgAigCCCEGIAIoAgwhBCACKAIQIQUgAigCFCEHIAIoAhghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAQsjAUUEQCMAQTBrIgMkACADQQhqIQYLIAFFQQEjARsEQCAGQaCCBEErECRBACMBQQFGDQEaCyMBRQRAIAMoAhAiBkUhBAsCQCMBRQRAIAQNASADKAIIIgQoAgAhByAAQQRqIQUgBEEIaigCACECCyABQQFGQQEjARsEQCAFIAcgAhCzAUEBIwFBAUYNAhoLIwFFBEBBACEFIABBADYCACAGQQxsIQEDQCAEIAVqIgBBBGooAgAEQCAAKAIAECELIAVBDGoiBSABRw0ACyADKAIMBEAgBBAhCyADQTBqJAAPCwsjAUUEQCADQSxqQQA2AgAgA0GsogU2AiggA0IBNwIcIANBzPsENgIYIANBGGohAAsgAUECRkEBIwEbBEAgAEHU+wQQzAFBAiMBQQFGDQEaCyMBRQRAAAsPCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACIBIAA2AgAgASADNgIEIAEgBjYCCCABIAQ2AgwgASAFNgIQIAEgBzYCFCABIAI2AhgjAiMCKAIAQRxqNgIAC58BAgN/An4CQAJAIANFBEAMAQtBBCEHQQEhCANAIAIgBmotAAAgAWoxAAAiCkIPVgRAIAYhAwwDCyAJIAogB0E8ca2GhCEJIAdBPGohByAGQQFqIgYgA0cNAAsLQQAhCCAFRQ0AQQAhBgNAIAQgCSAGQThxrYg8AAAgBkE4aiEGIARBAWohBCAFQQFrIgUNAAsLIAAgAzYCBCAAIAg2AgALnwECA38CfgJAAkAgA0UEQAwBC0EGIQdBASEIA0AgAiAGai0AACABajEAACIKQgNWBEAgBiEDDAMLIAkgCiAHQT5xrYaEIQkgB0E+aiEHIAZBAWoiBiADRw0ACwtBACEIIAVFDQBBACEGA0AgBCAJIAZBOHGtiDwAACAGQThqIQYgBEEBaiEEIAVBAWsiBQ0ACwsgACADNgIEIAAgCDYCAAucAQIDfwJ+AkACQCADRQRADAELQRIhB0EBIQgDQCACIAZqLQAAIAFqMQAAIgpCP1YNAiAJIAogB0E+ca2GhCEJIAdBBmshByAGQQFqIgYgA0cNAAsLQQAhCCAFBEBBECEGA0AgBCAJIAZBOHGtiDwAACAGQThqIQYgBEEBaiEEIAVBAWsiBQ0ACwsgAyEGCyAAIAY2AgQgACAINgIAC5wBAgN/An4CQAJAIANFBEAMAQtBIyEHQQEhCANAIAIgBmotAAAgAWoxAAAiCkIfVg0CIAkgCiAHQT9xrYaEIQkgB0EFayEHIAZBAWoiBiADRw0ACwtBACEIIAUEQEEgIQYDQCAEIAkgBkE4ca2IPAAAIAZBOGohBiAEQQFqIQQgBUEBayIFDQALCyADIQYLIAAgBjYCBCAAIAg2AgALnAECA38CfgJAAkAgA0UEQAwBC0EVIQdBASEIA0AgAiAGai0AACABajEAACIKQgdWDQIgCSAKIAdBP3GthoQhCSAHQQNrIQcgBkEBaiIGIANHDQALC0EAIQggBQRAQRAhBgNAIAQgCSAGQThxrYg8AAAgBkE4aiEGIARBAWohBCAFQQFrIgUNAAsLIAMhBgsgACAGNgIEIAAgCDYCAAugAwEFfyMBQQJGBEAjAiMCKAIAQRhrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEGIAMoAhAhBSADKAIUIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEEwayICJAAgASgCBCEGIAFBBGohBQsCQCMBRQRAIAYNASABKAIAIQEgAkEQaiIGQQA2AgAgAkIBNwMIIAIgAkEIajYCFCACQShqIAFBEGopAgA3AwAgAkEgaiABQQhqKQIANwMAIAIgASkCADcDGCACQRhqIQMgAkEUaiEBCyAERUEBIwEbBEAgAUGUogUgAxArGkEAIwFBAUYNAhoLIwFFBEAgBUEIaiAGKAIANgIAIAUgAikDCDcCAAsLIwFFBEAgAEHorwU2AgQgACAFNgIAIAJBMGokAAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAY2AgwgBCAFNgIQIAQgAzYCFCMCIwIoAgBBGGo2AgALlQECA38CfgJAIAMEQEEBIQgDQCACIAZqLQAAIAFqMQAAIgpCP1YEQCAGIQMMAwsgCSAKIAdBPnGthoQhCSAHQQZqIQcgBkEBaiIGIANHDQALC0EAIQggBUUNAEEAIQYDQCAEIAkgBkE4ca2IPAAAIAZBCGohBiAEQQFqIQQgBUEBayIFDQALCyAAIAM2AgQgACAINgIAC5UBAgN/An4CQCADBEBBASEIA0AgAiAGai0AACABajEAACIKQh9WBEAgBiEDDAMLIAkgCiAHQT9xrYaEIQkgB0EFaiEHIAZBAWoiBiADRw0ACwtBACEIIAVFDQBBACEGA0AgBCAJIAZBOHGtiDwAACAGQQhqIQYgBEEBaiEEIAVBAWsiBQ0ACwsgACADNgIEIAAgCDYCAAuVAQIDfwJ+AkAgAwRAQQEhCANAIAIgBmotAAAgAWoxAAAiCkIPVgRAIAYhAwwDCyAJIAogB0E8ca2GhCEJIAdBBGohByAGQQFqIgYgA0cNAAsLQQAhCCAFRQ0AQQAhBgNAIAQgCSAGQThxrYg8AAAgBkEIaiEGIARBAWohBCAFQQFrIgUNAAsLIAAgAzYCBCAAIAg2AgALlQECA38CfgJAIAMEQEEBIQgDQCACIAZqLQAAIAFqMQAAIgpCB1YEQCAGIQMMAwsgCSAKIAdBP3GthoQhCSAHQQNqIQcgBkEBaiIGIANHDQALC0EAIQggBUUNAEEAIQYDQCAEIAkgBkE4ca2IPAAAIAZBCGohBiAEQQFqIQQgBUEBayIFDQALCyAAIAM2AgQgACAINgIAC5UBAgN/An4CQCADBEBBASEIA0AgAiAGai0AACABajEAACIKQgNWBEAgBiEDDAMLIAkgCiAHQT5xrYaEIQkgB0ECaiEHIAZBAWoiBiADRw0ACwtBACEIIAVFDQBBACEGA0AgBCAJIAZBOHGtiDwAACAGQQhqIQYgBEEBaiEEIAVBAWsiBQ0ACwsgACADNgIEIAAgCDYCAAuiAQAgAAJ/AkACfwJAIAIEQAJAAkACQCABQQBOBEAgAygCCEUNAiADKAIEDQEgAQ0DDAULIABBCGpBADYCAAwGCyADKAIAIAEQIwwECyABRQ0CCyABEA4MAgsgACABNgIEIABBCGpBADYCAAwCCyACCyIDBEAgACADNgIEIABBCGogATYCAEEADAILIAAgATYCBCAAQQhqIAI2AgALQQELNgIAC/0EAQV/IwFBAkYEQCMCIwIoAgBBJGs2AgAjAigCACIBKAIAIQAgASgCCCECIAEoAgwhAyABKAIQIQQgASgCFCEFIAEoAhghCCABKAIcIQkgASgCICEKIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQRBrIggkACAFKAIIIQogBSgCACEJCyAHRUEBIwEbBEAgASACIAMgBCAJIAoQCEEAIwFBAUYNARohAQsCfyMBRUEAIAEgAUUjARsiARtFBEAgB0EBRkEBIwEbBEAQCUEBIwFBAUYNAxohBAsgB0ECRkEBIwEbBEAgCCAEEMoBQQIjAUEBRg0DGgsjAUUEQCAIKAIAIQMLIAdBA0ZBASMBGwRAIAMQCkEDIwFBAUYNAxoLIwFFBEAgAEEMaiAENgIAIABBCGogBDYCACAAIAM2AgRBAAwCCwsgASAIQQhqIwEbIQEgB0EERkEBIwEbBEAQC0EEIwFBAUYNAhohBAsgB0EFRkEBIwEbBEAgASAEEMoBQQUjAUEBRg0CGgsjAUUEQCAIKAIIIQMLIAdBBkZBASMBGwRAIAMQDEEGIwFBAUYNAhoLIwEEfyAEBSAAQQxqIAQ2AgAgAEEIaiAENgIAIAAgAzYCBEEBCwshASMBRQRAIAAgATYCACAFKAIEBEAgCRAhCyAIQRBqJAALDwshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAANgIAIAYgATYCBCAGIAI2AgggBiADNgIMIAYgBDYCECAGIAU2AhQgBiAINgIYIAYgCTYCHCAGIAo2AiAjAiMCKAIAQSRqNgIAC5QBAgJ/An4CQAJAIANFBEAMAQtBASEHA0AgAiAGai0AACABajEAACIJQgFWBEAgBiEDDAMLIAggCSAGQT9xrYaEIQggBkEBaiIGIANHDQALC0EAIQcgBUUNAEEAIQYDQCAEIAggBkE4ca2IPAAAIAZBCGohBiAEQQFqIQQgBUEBayIFDQALCyAAIAM2AgQgACAHNgIAC/ICAgR/An4jAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgQoAgAhBSAEKAIEIQQLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAgAUEQaigCACIFrSIJIAEpAwAiCFYhBCAIIAkgBBunIgQgBUshBgsCQCMBRQRAIAZFBEAgASgCCCAEaiEGIAUgBGsiBSADSyEEAkAgAyAFIAQbIgVBAUcEQCACIAYgBRD4ARoMAQsgA0UNAyACIAYtAAA6AAALIAAgBTYCBCAAQQQ6AAAgASAIIAWtfDcDAA8LCyAHRUEBIwEbBEAgBCAFQeSgBRDuAUEAIwFBAUYNAhoLIwFFBEAACwsgB0EBRkEBIwEbBEBBAEEAQYigBRCiAUEBIwFBAUYNARoLIwFFBEAACw8LIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIgAgBTYCACAAIAQ2AgQjAiMCKAIAQQhqNgIAC4wBAAJ/AkACQCACBEACQCABQQBOBEAgAygCCA0BDAQLDAILIAMoAgRFDQIgAygCACABECMMAwsgACABNgIECyAAQQhqQQA2AgAgAEEBNgIADwsgARAOCyICBEAgACACNgIEIABBCGogATYCACAAQQA2AgAPCyAAIAE2AgQgAEEIakEBNgIAIABBATYCAAuQAwIDfwJ+IwFBAkYEQCMCIwIoAgBBGGs2AgAjAigCACIBKAIAIQAgASgCCCEEIAEoAgwhAyABKQIQIQUgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIwBBEGsiBCQAIAEpAwAhBSAEQQhqIQMLIAJFQQEjARsEQCADIAEQbUEAIwFBAUYNARoLIwFFBEAgBC0ACEEERyEDCwJAIwFFBEACQAJ/IANFBEAgBC0ACQwBCyAEKQMIIgZC/wGDQgRSDQEgBkIIiKcLQQEhA0H/AXFBBEcEQCABIAU3AwBBACEDCyAAQRY2AgAgACADOgAEDAILIAQgBjcDCCAEQQhqIQELIAJBAUZBASMBGwRAIAAgARCTAUEBIwFBAUYNAhoLCyMBRQRAIARBEGokAAsPCyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwgAiAFNwIQIwIjAigCAEEYajYCAAvTAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiBigCACEAIAYoAgQhASAGKAIIIQYLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEHQAGsiBiQAIAYgAjYCDCAGIAE2AgggBiADNgIUIAYgBTYCHCAGIAQ2AhggBkE0akEMNgIAIAZBLGpBBDYCACAGQQw2AiQgBiAGQRhqNgIwIAYgBkEUajYCKCAGIAZBCGo2AiAgBkEDNgJMIAZCAzcCPCAGQZj6BDYCOCAGIAZBIGo2AkggBkE4aiEBCyAHRUEBIwEbBEAgACABEDtBACMBQQFGDQEaCyMBRQRAIAZB0ABqJAALDwshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAY2AggjAiMCKAIAQQxqNgIAC7MCAQN/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsCQCMBRQRAIAFFBEBBBCECDAILIAFB/////wFLIQILAkAjAUUEQAJAIAINACABQQJ0IgNBAEgiAg0AIAFBgICAgAJJQQJ0IQIgA0UNAiADEA4hAgwCCwsgBEVBASMBGwRAEMsBQQAjAUEBRg0DGgsjAUUEQAALCyMBRUEAIAIbDQAjAUUEQAALCyMBRQRAIAAgATYCBCAAIAI2AgALDwshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAC7gDAQR/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAiADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEFAaiICJAAgAkEANgIIIAJCATcDACACQSxqQcSLBTYCACACQQM6ADAgAkKAgICAgAQ3AxAgAkEANgIgIAJBADYCGCACIAI2AiggAkEQaiEDCyAFRUEBIwEbBEAgASADEEhBACMBQQFGDQEaIQMLIAMgA0UjARshAwJAIwFFBEAgAw0BIAJBOGohAAsgBUEBRkEBIwEbBEBBiJcFQTcgAEHciwVBnJgFEJcBQQEjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAAgAikDADcCBCAAQRU2AgAgAEEMaiACQQhqKAIANgIACyAFQQJGQQEjARsEQCABEMkBQQIjAUEBRg0BGgsjAUUEQCACQUBrJAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIwIjAigCAEEQajYCAAu4AwEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEFCyMBRQRAIwBBQGoiAiQAIAJBADYCCCACQgE3AwAgAkEsakHEiwU2AgAgAkEDOgAwIAJCgICAgIAENwMQIAJBADYCICACQQA2AhggAiACNgIoIAJBEGohAwsgBUVBASMBGwRAIAEgAxBIQQAjAUEBRg0BGiEDCyADIANFIwEbIQMCQCMBRQRAIAMNASACQThqIQALIAVBAUZBASMBGwRAQYiXBUE3IABB3IsFQZyYBRCXAUEBIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAAIAIpAwA3AgQgAEEQNgIAIABBDGogAkEIaigCADYCAAsgBUECRkEBIwEbBEAgARDJAUECIwFBAUYNARoLIwFFBEAgAkFAayQACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCMCIwIoAgBBEGo2AgALyQMCBH8BfiMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQUgASgCECEEIAEoAhQhBiABKQIYIQcgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBEGsiBSQAIAVBCGohBiAAKAIAIgAoAgAoAgAhBAsgA0VBASMBGwRAIAYgBCABIAIQHUEAIwFBAUYNARoLIwFFBEAgBS0ACCICQQRGIQELAkAjAUUEQCABDQEgBSkDCCEHIAAtAARBA0chAQsCQCMBRQRAIAENASAAQQhqKAIAIgEoAgAhBiABKAIEKAIAIQQLIANBAUZBASMBGwRAIAYgBBEEAEEBIwFBAUYNAxoLIwFFBEAgASgCBEEEaigCAARAIAEoAgAQIQsgARAhCwsjAUUEQCAAIAc3AgQLCyMBRQRAIAVBEGokACACQQRHDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAU2AgwgAyAENgIQIAMgBjYCFCADIAc3AhgjAiMCKAIAQSBqNgIAQQALxAMCBH8BfiMBQQJGBEAjAiMCKAIAQSBrNgIAIwIoAgAiASgCACEAIAEoAgghAiABKAIMIQUgASgCECEEIAEoAhQhBiABKQIYIQcgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBEGsiBSQAIAVBCGohBiAAKAIAKAIAIQQLIANFQQEjARsEQCAGIAQgASACEB1BACMBQQFGDQEaCyMBRQRAIAUtAAgiAkEERiEBCwJAIwFFBEAgAQ0BIAUpAwghByAALQAEQQNHIQELAkAjAUUEQCABDQEgAEEIaigCACIBKAIAIQYgASgCBCgCACEECyADQQFGQQEjARsEQCAGIAQRBABBASMBQQFGDQMaCyMBRQRAIAEoAgRBBGooAgAEQCABKAIAECELIAEQIQsLIwFFBEAgACAHNwIECwsjAUUEQCAFQRBqJAAgAkEERw8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AgggAyAFNgIMIAMgBDYCECADIAY2AhQgAyAHNwIYIwIjAigCAEEgajYCAEEAC6YCAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIEKAIAIQAgBCgCBCEECwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIwBBQGoiBSQAIAUgATYCDCAFIAA2AgggBSADNgIUIAUgAjYCECAFQSxqQQI2AgAgBUE8akECNgIAIAVCAjcCHCAFQYiGBDYCGCAFQQM2AjQgBSAFQTBqNgIoIAUgBUEQajYCOCAFIAVBCGo2AjAgBUEYaiEACyAGRUEBIwEbBEAgACAEEMwBQQAjAUEBRg0BGgsjAUUEQAALDwshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAiASAANgIAIAEgBDYCBCMCIwIoAgBBCGo2AgALYAECfyABBEAgAUEkbCEDA0AgACACaiIBQQRqKAIABEAgASgCABAhCyABQRBqKAIABEAgAUEMaigCABAhCyABQRxqKAIABEAgAUEYaigCABAhCyADIAJBJGoiAkcNAAsLC3EBAn8CQCABKAIEIgUgASgCCCIEayADTw0AIARFBEBBACEEDAELQQAhBCABQQA2AgggAUEAOgAMCyADIAVJBEAgBCABKAIAaiACIAMQ+AEaIABBBDoAACABIAMgBGo2AggPCyAAQgQ3AgAgAUEAOgAMC2IBAn8gAkEDaiECA0ACQCACLQAAIAFqLQAAQYIBRwRAIAMhBAwBCyACQQFrIQJBBCEEIANBAWoiA0EERw0BCwsgAEEEIARrIgE2AgQgACABQQZsQQZxQQZGIARBBEZyNgIAC2IBAn8gAkEHaiECA0ACQCACLQAAIAFqLQAAQYIBRwRAIAMhBAwBCyACQQFrIQJBCCEEIANBAWoiA0EIRw0BCwsgAEEIIARrIgE2AgQgACAEQQhGIAFBBWxBB3FBBEtyNgIAC2IBAn8gAkEHaiECA0ACQCACLQAAIAFqLQAAQYIBRwRAIAMhBAwBCyACQQFrIQJBCCEEIANBAWoiA0EIRw0BCwsgAEEIIARrIgE2AgQgACAEQQhGIAFBA2xBB3FBAktyNgIAC2UBAX8gAQRAIAFBBXQhAiAAQRRqIQEDQAJAIAFBEGsoAgAiAEUNACABQQxrKAIARQ0AIAAQIQsCQCABQQRrKAIAIgBFDQAgASgCAEUNACAAECELIAFBIGohASACQSBrIgINAAsLC9MDAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIBKAIAIQAgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIAAoAgAtAAAhAAsCQAJAAkAjAUUEQAJAIABBAWsOAwIDBAALIAEoAhghACABQRxqKAIAKAIMIQELIANFQQEjARsEQCAAQdGnBEEGIAERAQBBACMBQQFGDQQaIQALIwFFBEAgAA8LCyMBRQRAIAEoAhghACABQRxqKAIAKAIMIQELIANBAUZBASMBGwRAIABBy6cEQQYgAREBAEEBIwFBAUYNAxohAAsjAUUEQCAADwsLIwFFBEAgASgCGCEAIAFBHGooAgAoAgwhAQsgA0ECRkEBIwEbBEAgAEHDpwRBCCABEQEAQQIjAUEBRg0CGiEACyMBRQRAIAAPCwsjAUUEQCABKAIYIQAgAUEcaigCACgCDCEBCyADQQNGQQEjARsEQCAAQbynBEEHIAERAQBBAyMBQQFGDQEaIQALIwFFBEAgAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCMCIwIoAgBBCGo2AgBBAAutAwEHfyMBQQJGBEAjAiMCKAIAQRxrNgIAIwIoAgAiASgCACEAIAEoAgghAyABKAIMIQQgASgCECEFIAEoAhQhBiABKAIYIQggASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEHCyMBRQRAIwBBIGsiBCQAQQEhBSAAKAIAIQMLIAdFQQEjARsEQCADIAEQVUEAIwFBAUYNARohAwsCQCMBRQRAIAMNASABQRxqKAIAIQMgASgCGCEIIARBADYCHCAEQayiBTYCGCAEQgE3AgwgBEGghAQ2AgggBEEIaiEGCyAHQQFGQQEjARsEQCAIIAMgBhArQQEjAUEBRg0CGiEDCyMBRQRAIAMNASAAKAIEIQALIAdBAkZBASMBGwRAIAAgARBVQQIjAUEBRg0CGiEFCwsjAUUEQCAEQSBqJAAgBQ8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM2AgggAiAENgIMIAIgBTYCECACIAY2AhQgAiAINgIYIwIjAigCAEEcajYCAEEAC18BAn8gAkEDaiECA0ACQCACLQAAIAFqLQAAQYIBRwRAIAMhBAwBCyACQQFrIQJBBCEEIANBAWoiA0EERw0BCwsgAEEEIARrIgE2AgQgACAEQQRGIAFBA3FBAEdyNgIAC18BAn8gAkEHaiECA0ACQCACLQAAIAFqLQAAQYIBRwRAIAMhBAwBCyACQQFrIQJBCCEEIANBAWoiA0EIRw0BCwsgAEEIIARrIgE2AgQgACAEQQhGIAFBB3FBAEdyNgIAC5UCAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACICKAIAIQAgAigCBCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBMGsiAyQAIAMgATYCBCADIAA2AgAgA0EcakECNgIAIANBLGpBBDYCACADQgI3AgwgA0HohAQ2AgggA0EENgIkIAMgA0EgajYCGCADIAM2AiggAyADQQRqNgIgIANBCGohAAsgBEVBASMBGwRAIAAgAhDMAUEAIwFBAUYNARoLIwFFBEAACw8LIQEjAigCACABNgIAIwIjAigCAEEEajYCACMCKAIAIgEgADYCACABIAI2AgQjAiMCKAIAQQhqNgIAC6YCAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghBCADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAjAEEgayIEJAAgAUEcaigCACEDIAEoAhghASAEQRhqIABBEGopAgA3AwAgBEEQaiAAQQhqKQIANwMAIAQgACkCADcDCCAEQQhqIQALIAJFQQEjARsEQCABIAMgABArQQAjAUEBRg0BGiEACyMBRQRAIARBIGokACAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwjAiMCKAIAQRBqNgIAQQALXAECfyACQQFqIQIDQAJAIAItAAAgAWotAABBggFHBEAgAyEEDAELIAJBAWshAkECIQQgA0EBaiIDQQJHDQELCyAAQQIgBGsiATYCBCAAIAEgBEECRnJBAXE2AgALrAICAn8BfiMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBEGsiAyQAIAMgAiACQYD+A3FBCHYQYDoADyADQQ9qIQILIARFQQEjARsEQCADIAEgAkEBEF5BACMBQQFGDQEaCyMBRQRAAkACQCADLQAAQQRHBEAgAykDACIFQv8Bg0IEUg0BCyAAQQQ6AAAMAQsgACAFNwIACyADQRBqJAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AgggBCADNgIMIwIjAigCAEEQajYCAAuaAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQcyCBCABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC5oCAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACIAAoAgA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEIaiEBIAJBBGohAAsgA0VBASMBGwRAIABBxIgEIAEQK0EAIwFBAUYNARohAQsjAUUEQCACQSBqJAAgAQ8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALnQIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAJBtLEFNgIEIAIgADYCACACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAkHwogUgAEHwogUgAUGYsgUQUEEAIwFBAUYNARoLIwFFBEAACw8LIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAAuaAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQbihBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC6kCAQJ/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAiADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEEgayIDJAAgA0GorQU2AgQgAyAANgIAIANBGGogAUEQaikCADcDACADQRBqIAFBCGopAgA3AwAgAyABKQIANwMIIANBCGohASADQQRqIQALIARFQQEjARsEQCADQYCjBSAAQYCjBSABIAIQUEEAIwFBAUYNARoLIwFFBEAACw8LIQQjAigCACAENgIAIwIjAigCAEEEajYCACMCKAIAIgQgADYCACAEIAE2AgQgBCACNgIIIAQgAzYCDCMCIwIoAgBBEGo2AgALmgIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAIgACgCADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAEH8oQUgARArQQAjAUEBRg0BGiEBCyMBRQRAIAJBIGokACABDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAuaAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAAKAIANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQZSiBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC5cCAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACIAA2AgQgAkEYaiABQRBqKQIANwMAIAJBEGogAUEIaikCADcDACACIAEpAgA3AwggAkEIaiEBIAJBBGohAAsgA0VBASMBGwRAIABBxIgEIAEQK0EAIwFBAUYNARohAQsjAUUEQCACQSBqJAAgAQ8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALlwIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgIoAgAhACACKAIEIQEgAigCCCECCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRQRAIwBBIGsiAiQAIAIgADYCBCACQRhqIAFBEGopAgA3AwAgAkEQaiABQQhqKQIANwMAIAIgASkCADcDCCACQQhqIQEgAkEEaiEACyADRUEBIwEbBEAgAEG4oQUgARArQQAjAUEBRg0BGiEBCyMBRQRAIAJBIGokACABDwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAuXAgECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQMLIwFFBEAjAEEgayICJAAgAiAANgIEIAJBGGogAUEQaikCADcDACACQRBqIAFBCGopAgA3AwAgAiABKQIANwMIIAJBCGohASACQQRqIQALIANFQQEjARsEQCAAQfyhBSABECtBACMBQQFGDQEaIQELIwFFBEAgAkEgaiQAIAEPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC80CAQN/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUUEQCMAQRBrIgIkACAAKAIAIgAtAARBBEchAwsCQAJAIwFFBEAgAw0BIAIgADYCCCACQQhqIQALIARFQQEjARsEQCABQbCoBEECIABBtKgEEHFBACMBQQFGDQMaIQALIwFFDQELIwFFBEAgAiAANgIMIAJBDGohAAsgBEEBRkEBIwEbBEAgAUGcqARBAyAAQaCoBBBxQQEjAUEBRg0CGiEACwsjAUUEQCACQRBqJAAgAA8LAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyAANgIAIAMgATYCBCADIAI2AggjAiMCKAIAQQxqNgIAQQALUQEBfwJAIABBEGooAgAiAUUNACABQQA6AAAgAEEUaigCAEUNACAAKAIQECELAkAgAEF/Rg0AIAAgACgCBCIBQQFrNgIEIAFBAUcNACAAECELC4gCAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghBCADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAjAEEQayIEJAAgBCAAKAIAIgA2AgggBCAAQQRqNgIMIARBDGohAyAEQQhqIQALIAJFQQEjARsEQCABIAAgAxB7QQAjAUEBRg0BGiEACyMBRQRAIARBEGokACAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwjAiMCKAIAQRBqNgIAQQALsgEBAX8CfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsCQCMBRQRAAkACQCACRQRAQQEhAwwBCyACQX9MDQEgAhAOIgNFDQMLIAMgASACEPgBIQEgACACNgIIIAAgAjYCBCAAIAE2AgAPCwsgA0VBASMBGwRAEMsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgALTAEBfwJAIAAoAhBBAkYNACAAQRxqKAIABEAgACgCGBAhCyAAKAIkIgFFDQAgASAAQSxqKAIAEMQBIABBKGooAgBFDQAgACgCJBAhCwufAgECfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRUEAIwEEf0EABSAAKAIAIgBBBGooAgAgACgCCCIDayACTwsbRQRAIARFQQEjARsEQCAAIAMgAhB4QQAjAUEBRg0CGgsjAQR/IAMFIAAoAggLIQMLIwFFBEAgAyAAKAIAaiABIAIQ+AEaIAAgAiADajYCCEEADwsACyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAQQALgwIBA38jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEEIAMoAgwhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCMAQRBrIgQkACAEIAA2AgggBCAAQQRqNgIMIARBDGohAyAEQQhqIQALIAJFQQEjARsEQCABIAAgAxB7QQAjAUEBRg0BGiEACyMBRQRAIARBEGokACAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgBDYCCCACIAM2AgwjAiMCKAIAQRBqNgIAQQALggIBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRUEAIwEEf0EABSAAKAIIIgMgACgCBEcLG0UEQCACRUEBIwEbBEAgACADEHNBACMBQQFGDQIaCwsjAUUEQCAAKAIAIQIgAwRAIAJBBGogAiADQQJ0EPcBCyACIAE2AgAgACADQQFqNgIICw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAv0AQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiAigCACEAIAIoAgQhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAQsjAUVBACMBBH9BAAUgACgCCCICIAAoAgRHCxtFBEAgAUVBASMBGwRAIAAgAkEBELoBQQAjAUEBRg0CGgsLIwFFBEAgACgCACEBIAIEQCABQQFqIAEgAhD3AQsgAUEAOgAAIAAgAkEBajYCCAsPCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACIBIAA2AgAgASACNgIEIwIjAigCAEEIajYCAAu5AwEGfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiBCgCACEAIAQoAgQhASAEKAIIIQIgBCgCDCEECwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEDCyMBRUEAIwEEf0EABSACIAFrIgIgACgCBCAAKAIIIgRrTQsbRQRAIANFQQEjARsEQCAAIQMgBCEHIAIhCAJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAjAEEQayIGJAAgBkEIaiADIAcgCBB6AkAgBigCDCIDQYGAgIB4RwRAIANFDQEACyAGQRBqJAAMAwsLIAVFQQEjARsEQBDLAUEAIwFBAUYNARoLIwFFBEAACwwBCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgALQQAjAUEBRg0CGgsjAQR/IAQFIAAoAggLIQQLIwFFBEAgBCAAKAIAaiABIAIQ+AEaIAAgAiAEajYCCAsPCyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCADIAQ2AgwjAiMCKAIAQRBqNgIAC50BAQJ/An8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQQLIwFFBEAjAEEQayIDJAAgA0EIaiAAIAEgAhB5AkAgAygCDCIAQYGAgIB4RwRAIABFDQEACyADQRBqJAAPCwsgBEVBASMBGwRAEMsBQQAjAUEBRg0BGgsjAUUEQAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAC+wBAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIDKAIAIQIgAygCBCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBIGsiAyQAIANBFGpBADYCACADQayiBTYCECADQgE3AgQgAyABNgIcIAMgADYCGCADIANBGGo2AgALIARFQQEjARsEQCADIAIQzAFBACMBQQFGDQEaCyMBRQRAAAsPCyEAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAjAigCACIAIAI2AgAgACADNgIEIwIjAigCAEEIajYCAAtCAQF/IABBHGooAgAEQCAAKAIYECELAkAgACgCJCIBRQ0AIAEgAEEsaigCABDEASAAQShqKAIARQ0AIAAoAiQQIQsLoAIBA38jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgEoAgAhACABKAIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRQRAIwBBEGsiAyQAIABBADYCCCAAQgE3AgALIARFQQEjARsEQCABIABBlPAEEBZBACMBQQFGDQEaIQALIwFFBEAgAEUEQCADQRBqJAAPCyADQQhqIQALIARBAUZBASMBGwRAQYiXBUE3IABBrPAEQZyYBRCXAUEBIwFBAUYNARoLIwFFBEAACw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAvsAQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiAigCACEBIAIoAgQhAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQSBrIgIkACACQRRqQQE2AgAgAkIBNwIEIAJBqKQFNgIAIAJBCTYCHCACIAA2AhggAiACQRhqNgIQCyADRUEBIwEbBEAgAiABEMwBQQAjAUEBRg0BGgsjAUUEQAALDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAiACABNgIAIAAgAjYCBCMCIwIoAgBBCGo2AgALkwIBAn8jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCECIAMoAgwhAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUVBACMBBH9BAAUgACgCBCAAKAIIIgNrIAJPCxtFBEAgBEVBASMBGwRAIAAgAyACELoBQQAjAUEBRg0CGgsjAQR/IAMFIAAoAggLIQMLIwFFBEAgAyAAKAIAaiABIAIQ+AEaIAAgAiADajYCCAsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAC4IJAgd/AX4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQkgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEGCyMBRQRAIAEoAgAiA0EQcSECIAAoAgAhAAsCQCMBRQRAIAINASADQSBxIQMLAkAjAUUEQCADDQEgADUCACEJCyAGRUEBIwEbBEAgCUEBIAEQUkEAIwFBAUYNAxohAAsjAUUEQCAADwsLIwFFBEAgACgCACEACyAGQQFGQQEjARsEQAJ/IAAhAiABIQcjAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgMoAgAhAiADKAIIIQUgAygCDCEEIAMoAgQhBwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCAsjAUVBACMBBH9BAAUjAEGAAWsiBCQAQQAhBQNAIAQgBWpB/wBqQTBBNyACQQ9xIgNBCkkbIANqOgAAIAVBAWshBSACQQ9LIAJBBHYhAg0ACyAFQYABaiICQYEBSQsbRQRAIAhFQQEjARsEQCACQYABQeiGBBDuAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAEIAVqQYABaiECQQAgBWshBQsgCEEBRkEBIwEbBEAgB0EBQfiGBEECIAIgBRAoQQEjAUEBRg0BGiECCyMBRQRAIARBgAFqJAAgAgwCCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgAjYCACADIAc2AgQgAyAFNgIIIAMgBDYCDCMCIwIoAgBBEGo2AgBBAAtBASMBQQFGDQIaIQALIwFFBEAgAA8LCyMBRQRAIAAoAgAhAAsgBkECRkEBIwEbBEACfyAAIQIgASEHQQAhBEEAIQZBACEIIwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQIgAygCCCEEIAMoAgwhBiADKAIEIQcLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQgLIwFFQQAjAQR/QQAFIwBBgAFrIgYkAEEAIQQDQCAEIAZqQf8AakEwQdcAIAJBD3EiA0EKSRsgA2o6AAAgBEEBayEEIAJBD0sgAkEEdiECDQALIARBgAFqIgJBgQFJCxtFBEAgCEVBASMBGwRAIAJBgAFB6IYEEO4BQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAQgBmpBgAFqIQJBACAEayEECyAIQQFGQQEjARsEQCAHQQFB+IYEQQIgAiAEEChBASMBQQFGDQEaIQILIwFFBEAgBkGAAWokACACDAILAAshAyMCKAIAIAM2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAyACNgIAIAMgBzYCBCADIAQ2AgggAyAGNgIMIwIjAigCAEEQajYCAEEAC0ECIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgCTcCCCMCIwIoAgBBEGo2AgBBAAuOAgEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQQgASgCDCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCwJAIwFFBEAgAC0ABEEDRw0BIABBCGooAgAiAygCACEBIAMoAgQoAgAhBAsgAkVBASMBGwRAIAEgBBEEAEEAIwFBAUYNAhoLIwFFBEAgAygCBEEEaigCAARAIAMoAgAQIQsgACgCCBAhCwsPCyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiADNgIEIAIgBDYCCCACIAE2AgwjAiMCKAIAQRBqNgIAC9IBAQJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIABBCGooAgAiAUGCBE8EQCAAIABBBGogACgCABsoAgAtAIEEQQhxQQN2DwsLIAJFQQEjARsEQEGBBCABQdymBBCiAUEAIwFBAUYNARoLIwFFBEAACwALIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAQQAL0gEBAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgAEEIaigCACIBQYIETwRAIAAgAEEEaiAAKAIAGygCAC0AgQRBEHFBBHYPCwsgAkVBASMBGwRAQYEEIAFBzKYEEKIBQQAjAUEBRg0BGgsjAUUEQAALAAshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgBBAAszACABBEAgAUEMbCEBA0AgAEEEaigCAARAIAAoAgAQIQsgAEEMaiEAIAFBDGsiAQ0ACwsL+AIBBH8jAUECRgRAIwIjAigCAEEcazYCACMCKAIAIgEoAgAhACABKAIIIQIgASgCDCEDIAEoAhAhBCABKAIUIQYgASgCGCEHIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhCAsgBiACQYCAxABGIwEbIQYCQAJAAkAjAUUEQCAGDQEgASgCECEHQQEhBgsgCEVBASMBGwRAIAAgAiAHEQAAQQAjAUEBRg0EGiECCyMBRUEAIAIbDQELIwFFBEAgAw0CQQAhBgsLIwFFBEAgBg8LCyMBRQRAIAEoAgwhAQsgCEEBRkEBIwEbBEAgACADIAQgAREBAEEBIwFBAUYNARohAAsjAUUEQCAADwsACyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAA2AgAgBSABNgIEIAUgAjYCCCAFIAM2AgwgBSAENgIQIAUgBjYCFCAFIAc2AhgjAiMCKAIAQRxqNgIAQQALNgAgACgCBARAIAAoAgAQIQsgAEEMaigCACAAQRRqKAIAEJgBIABBEGooAgAEQCAAKAIMECELC88BAQJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIABBCGooAgAiAUGCBE8EQCAAIABBBGogACgCABsoAgAtAIEEQQdxDwsLIAJFQQEjARsEQEGBBCABQeymBBCiAUEAIwFBAUYNARoLIwFFBEAACwALIQAjAigCACAANgIAIwIjAigCAEEEajYCACMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAQQALzwEBAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgAEEIaigCACIBQYEETwRAIAAgAEEEaiAAKAIAGygCACwAgARBf0oPCwsgAkVBASMBGwRAQYAEIAFBvKYEEKIBQQAjAUEBRg0BGgsjAUUEQAALAAshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgBBAAuIAgEEfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQQgASgCDCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCwJAIwFFBEAgAC0AAEEDRw0BIAAoAgQiAygCACEBIAMoAgQoAgAhBAsgAkVBASMBGwRAIAEgBBEEAEEAIwFBAUYNAhoLIwFFBEAgAygCBCgCBARAIAMoAgAQIQsgACgCBBAhCwsPCyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiADNgIEIAIgBDYCCCACIAE2AgwjAiMCKAIAQRBqNgIAC/IBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsCQCMBRQRAIAFFBEBBASECDAILIAFBAEgiAkUEQCABEA4iAg0CAAsLIANFQQEjARsEQBDLAUEAIwFBAUYNAhoLIwFFBEAACwsjAUUEQCAAIAE2AgQgACACNgIACw8LIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAAvUAQECfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAAsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAQsjAUUEQCMAQSBrIgAkACAAQRxqQQA2AgAgAEGsogU2AhggAEIBNwIMIABBlIMENgIIIABBCGohAAsgAUVBASMBGwRAIABBnIMEEMwBQQAjAUEBRg0BGgsjAUUEQAALDwshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAgADYCACMCIwIoAgBBBGo2AgAL9ggBCX8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQALAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQcLIwFFBEAjAEEgayICJAAgAkEBOgAYIAIgATYCFCACIAA2AhAgAkH4hAQ2AgwgAkGsogU2AgggAkEIaiEACyAHRUEBIwEbBEAgACEIQQAhAUEAIQJBACEHIwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQggAigCCCEJIAIoAgQhAgsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCyMBRUEAIwFFBEAjAEEQayICJAAgCCgCCCEJCyAJG0UEQCABRUEBIwEbBEBBkKMFQStB2K8FELsBQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAIgCCgCDDYCCCACIAg2AgQgAiAJNgIACyABQQFGQQEjARsEQCMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsgAiEBAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBQsjAUUEQCMAQRBrIgckACAHQQhqIAFBCGooAgA2AgAgByABKQIANwMACyAFRUEBIwEbBEAgByEBQQAhBSMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiBCgCACEBIAQoAgQhAyAEKAIIIQYgBCgCDCEECwJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQoLIwFFBEAjAEEQayIEJAAgASgCACIDQRRqKAIAIQYgAygCBCEFCwJAIwFFBEACfwJAAkAgBQ4CAAEECyAGDQNBACEGQayiBQwBCyAGDQIgAygCACIDKAIEIQYgAygCAAshAyAEIAY2AgQgBCADNgIAIAEoAgQiAygCCCEGIAMtABAhAyABKAIIIQELIApFQQEjARsEQCAEQZywBSAGIAEgAxBUQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIARBADYCBCAEIAM2AgAgASgCBCIDKAIIIQYgAy0AECEDIAEoAgghAQsgCkEBRkEBIwEbBEAgBEGIsAUgBiABIAMQVEEBIwFBAUYNARoLIwFFBEAACwwBCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAE2AgAgBSADNgIEIAUgBjYCCCAFIAQ2AgwjAiMCKAIAQRBqNgIAC0EAIwFBAUYNARoLIwFFBEAACwwBCyEBIwIoAgAgATYCACMCIwIoAgBBBGo2AgAjAigCACAHNgIAIwIjAigCAEEEajYCAAtBASMBQQFGDQEaCyMBRQRAAAsMAQshASMCKAIAIAE2AgAjAiMCKAIAQQRqNgIAIwIoAgAiASAINgIAIAEgAjYCBCABIAk2AggjAiMCKAIAQQxqNgIAC0EAIwFBAUYNARoLIwFFBEAACw8LIQEjAigCACABNgIAIwIjAigCAEEEajYCACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAC+0BAQJ/IwFBAkYEQCMCIwIoAgBBCGs2AgAjAigCACIBKAIAIQAgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRUEAIwEEf0EABSAAQQhqKAIAIgFB/wNLCxtFBEAgAkVBASMBGwRAQYAEIAFBrKYEEO8BQQAjAUEBRg0CGgsjAUUEQAALCyMBRQRAIAAgAEEEaiAAKAIAGygCAEGAAmoPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQjAiMCKAIAQQhqNgIAQQALOwECfyABKAIEIQIgASgCACEDQQgQDiIBRQRAAAsgASACNgIEIAEgAzYCACAAQfivBTYCBCAAIAE2AgALPAEBfyAAKAIAIQECQCAAQQRqLQAADQBB1LgFKAIAQf////8HcUUNABD6AQ0AIAFBAToAAQsgAUEAOgAAC6MCAQR/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIBKAIAIQAgASgCCCEDIAEoAgwhBCABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQULIwFFBEAgASgCGCEDIAFBHGooAgAoAgwhAUEBIQALIAVFQQEjARsEQCADQcytBUELIAERAQBBACMBQQFGDQEaIQQLIwFFQQAgBBtFBEAgBUEBRkEBIwEbBEAgA0G/hgRBByABEQEAQQEjAUEBRg0CGiEACwsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzYCCCACIAQ2AgwjAiMCKAIAQRBqNgIAQQALLQEBfwJAIAAoAgAiAUUNACABIABBCGooAgAQxAEgACgCBEUNACAAKAIAECELCyQAIABBMGoQxgEgAEEMaigCAARAIAAoAggQIQsgAEEYahDGAQsjACAAKAIEBEAgACgCABAhCyAAQRBqKAIABEAgACgCDBAhCwvdAQEDfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiASgCACEAIAEoAgQhAyABKAIIIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAjAEEQayIDJAAgA0EIaiEBCyACRUEBIwEbBEAgASAAEMoBQQAjAUEBRg0BGgsjAUUEQCADKAIIIANBEGokAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgAzYCBCACIAE2AggjAiMCKAIAQQxqNgIAQQAL4AECAX8BfiMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEpAgghAyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACIArUIAIACsfSAAQX9KIgAbIQMLIAJFQQEjARsEQCADIAAgARBSQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNwIIIwIjAigCAEEQajYCAEEAC+MBAgF/An4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAApAwAiBEI/hyIDIASFIAN9IQMgBEJ/VSEACyACRUEBIwEbBEAgAyAAIAEQUkEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzcCCCMCIwIoAgBBEGo2AgBBAAv9AQEDfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQQgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAoAgAiACgCACEEIAFBGGooAgAhAyABQRxqKAIAIQEgACgCCCEACyACRUEBIwEbBEAgBCAAIAMgARAfQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiAENgIIIAIgAzYCDCMCIwIoAgBBEGo2AgBBAAv8AQECfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUVBACMBRQRAIAAoAgAtAAAhAAsgABtFBEAgA0VBASMBGwRAIAFB+4gEQQUQE0EAIwFBAUYNAhohAAsjAUUEQCAADwsLIANBAUZBASMBGwRAIAFB94gEQQQQE0EBIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEACyABAX8CQCAAKAIEIgFFDQAgAEEIaigCAEUNACABECELC/gBAQN/IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghBCADKAIMIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEEIAFBGGooAgAhAyABQRxqKAIAIQEgACgCCCEACyACRUEBIwEbBEAgBCAAIAMgARAfQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiAENgIIIAIgAzYCDCMCIwIoAgBBEGo2AgBBAAvzAQEBfyMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQIgAygCDCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEECyMBRUEAIAIbRQRAIARFQQEjARsEQCAAIAEQfUEAIwFBAUYNAhoLIwFFBEAPCwsgBEEBRkEBIwEbBEAgACABIAIgAxAlQQEjAUEBRg0BGgsPCyEEIwIoAgAgBDYCACMCIwIoAgBBBGo2AgAjAigCACIEIAA2AgAgBCABNgIEIAQgAjYCCCAEIAM2AgwjAiMCKAIAQRBqNgIAC+MBAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBAsjAUVBACACG0UEQCAERUEBIwEbBEAgACABEH1BACMBQQFGDQIaCyMBRQRADwsLIARBAUZBASMBGwRAIAAgASADECBBASMBQQFGDQEaCw8LIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAAvRAQEBfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCABKAIYIQAgAUEcaigCACgCDCEBCyACRUEBIwEbBEAgAEGohARBDiABEQEAQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQjAiMCKAIAQQhqNgIAQQAL0QEBAX8jAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgEoAgAhACABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgASgCGCEAIAFBHGooAgAoAgwhAQsgAkVBASMBGwRAIABB3aoFQQUgAREBAEEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEACxQAIABBCGooAgAEQCAAKAIEECELCxQAIABBBGooAgAEQCAAKAIAECELCxEAIAAoAgQEQCAAKAIAECELC9kBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIgAoAgAhAyAAKAIIIQALIAJFQQEjARsEQCABIAMgABATQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEAC9MBAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCABIAJqIQIgACgCACEACyADRUEBIwEbBEAgACABIAIQuQFBACMBQQFGDQEaCyMBRQRAQQAPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC9cBAQJ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACIDKAIAIQAgAygCBCEBIAMoAgghAwsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIQMgAEEIaigCACEACyACRUEBIwEbBEAgASADIAAQE0EAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzYCCCMCIwIoAgBBDGo2AgBBAAvYAQECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEDIAAoAgQoAgwhAAsgAkVBASMBGwRAIAMgASAAEQAAQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEAC8AOAQp/IwFBAkYEQCMCIwIoAgBBFGs2AgAjAigCACIEKAIAIQAgBCgCBCEBIAQoAgghAiAEKAIMIQMgBCgCECEECwJ/IwFBAkYEfyMCIwIoAgBBBGs2AgAjAigCACgCAAVBAAtFQQEjARsEQCAAIQcgASEKIAIhCCADIQ0gBCEOIwFBAkYEQCMCIwIoAgBBJGs2AgAjAigCACIJKAIAIQcgCSgCBCEKIAkoAgghCCAJKAIMIQ0gCSgCECEOIAkoAhQhBSAJKAIYIQYgCSgCHCELIAkoAiAhCQsCQAJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEMCyMBRQRAIwBB8ABrIgUkACAFIA02AgwgBSAINgIIIApBgQJJIQYLAkACQAJAIwFFBEAgBQJ/AkACQCAGRQRAQQAhBgNAIAYgB2ohCyAGQQFrIgkhBiALQYACaiwAAEG/f0wNAAsgCUGBAmoiBiAKSQ0CIAkgCkGBAmtHIgkNBSAFIAY2AhQMAQsgBSAKNgIUCyAFIAc2AhBBrKIFIQtBAAwBCyAHIAlqQYECaiwAAEG/f0wiCQ0CIAUgBjYCFCAFIAc2AhBB+I4EIQtBBQs2AhwgBSALNgIYIAggCkshBgsCQAJAIwFFBEAgBg0BIAogDUkiCQ0BIAggDUshBgsCfwJAAkAjAUUEQCAGRQRAAkACQCAIRQ0AIAggCk8EQCAIIApGDQEMAgsgByAIaiwAAEFASA0BCyANIQgLIAUgCDYCICAKIgYgCE0iDUUEQCAIQQNrIgsgCEshDSAIQQFqIgZBACALIA0bIgtJDQcgBiAHaiAHIAtqayEGA0AgBkEBayEGIAcgCGohCyAIQQFrIgkhCCALLAAAQUBIIg0NAAsgCUEBaiEGCwJAIAZFIggNACAGIApPBEAgBiAKRiIIDQEMCwsgBiAHaiwAAEG/f0wiCA0KCyAGIApGIgoNCAJAIAYgB2oiBywAACILQX9KIgpFBEAgBy0AAUE/cSEIIAtBH3EhCSALQV9LIgoNASAIIAlBBnRyIQcMBQsgBSALQf8BcSIHNgIkQQEMBQsgBy0AAkE/cSAIQQZ0ciEIIAtBcE8iCg0CIAggCUEMdHIhBwwDCyAFQeQAakEDNgIAIAVB3ABqQQM2AgAgBUHUAGpBBDYCACAFQcQAakEENgIAIAVCBDcCNCAFQdyPBDYCMCAFQQQ2AkwgBSAFQcgAajYCQCAFIAVBGGo2AmAgBSAFQRBqNgJYIAUgBUEMajYCUCAFIAVBCGo2AkggBUEwaiEHCyAMRUEBIwEbBEAgByAOEMwBQQAjAUEBRg0JGgsjAUUEQAALCyMBRQRAIAlBEnRBgIDwAHEgBy0AA0E/cSAIQQZ0cnIiB0GAgMQARiIKDQYLCyMBBH8gCwUgBSAHNgIkQQEgB0GAAUkiCg0BGkECIAdBgBBJIgoNARpBA0EEIAdBgIAESSIHGwsLIQsjAUUEQCAFIAY2AiggBSAGIAtqNgIsIAVBxABqQQU2AgAgBUHsAGpBAzYCACAFQeQAakEDNgIAIAVB3ABqQQY2AgAgBUHUAGpBBzYCACAFQgU3AjQgBUGwkAQ2AjAgBUEENgJMIAUgBUHIAGo2AkAgBSAFQRhqNgJoIAUgBUEQajYCYCAFIAVBKGo2AlggBSAFQSRqNgJQIAUgBUEgajYCSCAFQTBqIQcLIAxBAUZBASMBGwRAIAcgDhDMAUEBIwFBAUYNBhoLIwFFBEAACwsjAUUEQCAFIAggDSAGGzYCKCAFQcQAakEDNgIAIAVB3ABqQQM2AgAgBUHUAGpBAzYCACAFQgM3AjQgBUGgjwQ2AjAgBUEENgJMIAUgBUHIAGo2AkAgBSAFQRhqNgJYIAUgBUEQajYCUCAFIAVBKGo2AkggBUEwaiEHCyAMQQJGQQEjARsEQCAHIA4QzAFBAiMBQQFGDQUaCyMBRQRAAAsLIAxBA0ZBASMBGwRAIAsgBkH0kAQQ8AFBAyMBQQFGDQQaCyMBRQRAAAsLIAxBBEZBASMBGwRAIAcgCkEAIAYgDhDmAUEEIwFBAUYNAxoLIwFFBEAACwsgDEEFRkEBIwEbBEBBkKMFQSsgDhC7AUEFIwFBAUYNAhoLIwFFBEAACwsgDEEGRkEBIwEbBEAgByAKIAYgCiAOEOYBQQYjAUEBRg0BGgsjAUUEQAALDAELIQwjAigCACAMNgIAIwIjAigCAEEEajYCACMCKAIAIgwgBzYCACAMIAo2AgQgDCAINgIIIAwgDTYCDCAMIA42AhAgDCAFNgIUIAwgBjYCGCAMIAs2AhwgDCAJNgIgIwIjAigCAEEkajYCAAtBACMBQQFGDQEaCyMBRQRAAAsPCyEIIwIoAgAgCDYCACMCIwIoAgBBBGo2AgAjAigCACIIIAA2AgAgCCABNgIEIAggAjYCCCAIIAM2AgwgCCAENgIQIwIjAigCAEEUajYCAAvUAQECfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAygCACEAIAMoAgQhASADKAIIIQMLAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACgCACEDIAAoAgQhAAsgAkVBASMBGwRAIAEgAyAAEBNBACMBQQFGDQEaIQALIwFFBEAgAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM2AggjAiMCKAIAQQxqNgIAQQAL1AEBAn8jAUECRgRAIwIjAigCAEEMazYCACMCKAIAIgMoAgAhACADKAIEIQEgAygCCCEDCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAoAgAhAyAAKAIIIQALIAJFQQEjARsEQCABIAMgABATQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNgIIIwIjAigCAEEMajYCAEEACwsAIAEEQCAAECELCxIAIABB+K8FNgIEIAAgATYCAAu+AQEBfyMBQQJGBEAjAiMCKAIAQQxrNgIAIwIoAgAiAigCACEAIAIoAgQhASACKAIIIQILAn8jAUECRgR/IwIjAigCAEEEazYCACMCKAIAKAIABUEAC0VBASMBGwRAIAAgASACEL8BQQAjAUEBRg0BGgsjAUUEQEEADwsACyEDIwIoAgAgAzYCACMCIwIoAgBBBGo2AgAjAigCACIDIAA2AgAgAyABNgIEIAMgAjYCCCMCIwIoAgBBDGo2AgBBAAsOACAAKAIAGgNADAALAAvPAQIBfwF+IwFBAkYEQCMCIwIoAgBBEGs2AgAjAigCACIBKAIAIQAgASkCCCEDIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAANQIAIQMLIAJFQQEjARsEQCADQQEgARBSQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQIjAigCACACNgIAIwIjAigCAEEEajYCACMCKAIAIgIgADYCACACIAE2AgQgAiADNwIIIwIjAigCAEEQajYCAEEAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANBpIoENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANBxIoENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC9IDAQV/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQUjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBCAFKAIEIQULAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhBwsjAUUEQCMAQTBrIgMkACADIAY2AgQgAyAENgIAIANBHGpBAjYCACADQSxqQQQ2AgAgA0ICNwIMIANB+IoENgIIIANBBDYCJCADIANBIGo2AhggAyADQQRqNgIoIAMgAzYCICADQQhqIQQLIAdFQQEjARsEQCAEIAUQzAFBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBTYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC/0EAQZ/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBH8jAiMCKAIAQQRrNgIAIwIoAgAoAgAFQQALRUEBIwEbBEAgACEEIAEhBiACIQcjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgcoAgAhBCAHKAIEIQcLAkACfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCMAQRBrIgUkACAFIAY2AgwgBSAENgIIIAVBCGohBAsgA0VBASMBGwRAIAchBkEAIQMjAUECRgRAIwIjAigCAEEIazYCACMCKAIAIgUoAgAhBiAFKAIEIQMLIAQhBQJAAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQgLIwFFBEAjAEEgayIDJAAgA0EUakEBNgIAIANCATcCBCADQaikBTYCACADQQM2AhwgAyAFNgIYIAMgA0EYajYCEAsgCEVBASMBGwRAIAMgBhDMAUEAIwFBAUYNARoLIwFFBEAACwwBCyEFIwIoAgAgBTYCACMCIwIoAgBBBGo2AgAjAigCACIFIAY2AgAgBSADNgIEIwIjAigCAEEIajYCAAtBACMBQQFGDQEaCyMBRQRAAAsMAQshBiMCKAIAIAY2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBiAENgIAIAYgBzYCBCMCIwIoAgBBCGo2AgALQQAjAUEBRg0BGgsjAUUEQAALDwshBCMCKAIAIAQ2AgAjAiMCKAIAQQRqNgIAIwIoAgAiBCAANgIAIAQgATYCBCAEIAI2AggjAiMCKAIAQQxqNgIAC80BAQF/IwFBAkYEQCMCIwIoAgBBDGs2AgAjAigCACICKAIAIQAgAigCBCEBIAIoAgghAgsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAwsjAUUEQCAAKAIAIQALIANFQQEjARsEQCAAIAEgAhAsQQAjAUEBRg0BGiEACyMBRQRAIAAPCwALIQMjAigCACADNgIAIwIjAigCAEEEajYCACMCKAIAIgMgADYCACADIAE2AgQgAyACNgIIIwIjAigCAEEMajYCAEEAC88BAgF/AX4jAUECRgRAIwIjAigCAEEQazYCACMCKAIAIgEoAgAhACABKQIIIQMgASgCBCEBCwJ/IwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACECCyMBRQRAIAAxAAAhAwsgAkVBASMBGwRAIANBASABEFJBACMBQQFGDQEaIQALIwFFBEAgAA8LAAshAiMCKAIAIAI2AgAjAiMCKAIAQQRqNgIAIwIoAgAiAiAANgIAIAIgATYCBCACIAM3AggjAiMCKAIAQRBqNgIAQQALzwECAX8BfiMBQQJGBEAjAiMCKAIAQRBrNgIAIwIoAgAiASgCACEAIAEpAgghAyABKAIEIQELAn8jAUECRgRAIwIjAigCAEEEazYCACMCKAIAKAIAIQILIwFFBEAgACkDACEDCyACRUEBIwEbBEAgA0EBIAEQUkEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIAIgAzcCCCMCIwIoAgBBEGo2AgBBAAu9AQEBfyMBQQJGBEAjAiMCKAIAQQhrNgIAIwIoAgAiASgCACEAIAEoAgQhAQsCfyMBQQJGBEAjAiMCKAIAQQRrNgIAIwIoAgAoAgAhAgsjAUUEQCAAKAIAIQALIAJFQQEjARsEQCAAIAEQUUEAIwFBAUYNARohAAsjAUUEQCAADwsACyECIwIoAgAgAjYCACMCIwIoAgBBBGo2AgAjAigCACICIAA2AgAgAiABNgIEIwIjAigCAEEIajYCAEEAC5wBAQJ/IAJBD0sEQEEAIABrQQNxIgMgAGohBCADBEADQCAAIAE6AAAgBCAAQQFqIgBLDQALCyAEIAIgA2siAkF8cSIDaiEAIANBAU4EQCABQf8BcUGBgoQIbCEDA0AgBCADNgIAIARBBGoiBCAASQ0ACwsgAkEDcSECCyACBEAgACACaiECA0AgACABOgAAIAIgAEEBaiIASw0ACwsLlAUBB38CQAJAAn8CQCACIgMgACABa0sEQCABIANqIQUgACADaiECIANBD0sNASAADAILIANBD00EQCAAIQIMAwtBACAAa0EDcSIFIABqIQQgBQRAIAAhAiABIQADQCACIAAtAAA6AAAgAEEBaiEAIAJBAWoiAiAESQ0ACwsgAyAFayIDQXxxIgYgBGohAgJAIAEgBWoiBUEDcSIABEAgBkEBSA0BIAVBfHEiB0EEaiEBQQAgAEEDdCIIa0EYcSEJIAcoAgAhAANAIAQgACAIdiABKAIAIgAgCXRyNgIAIAFBBGohASACIARBBGoiBEsNAAsMAQsgBkEBSA0AIAUhAQNAIAQgASgCADYCACABQQRqIQEgAiAEQQRqIgRLDQALCyADQQNxIQMgBSAGaiEBDAILIAJBfHEhAEEAIAJBA3EiBmshByAGBEAgASADakEBayEEA0AgAkEBayICIAQtAAA6AAAgBEEBayEEIAAgAkkNAAsLIAAgAyAGayIGQXxxIgNrIQJBACADayEDAkAgBSAHaiIFQQNxIgQEQCADQX9KDQEgBUF8cSIHQQRrIQFBACAEQQN0IghrQRhxIQkgBygCACEEA0AgAEEEayIAIAQgCXQgASgCACIEIAh2cjYCACABQQRrIQEgACACSw0ACwwBCyADQX9KDQAgASAGakEEayEBA0AgAEEEayIAIAEoAgA2AgAgAUEEayEBIAAgAksNAAsLIAZBA3EiAEUNAiADIAVqIQUgAiAAawshACAFQQFrIQEDQCACQQFrIgIgAS0AADoAACABQQFrIQEgACACSQ0ACwwBCyADRQ0AIAIgA2ohAANAIAIgAS0AADoAACABQQFqIQEgAkEBaiICIABJDQALCwuzAgEHfwJAIAIiBEEPTQRAIAAhAgwBC0EAIABrQQNxIgMgAGohBSADBEAgACECIAEhBgNAIAIgBi0AADoAACAGQQFqIQYgBSACQQFqIgJLDQALCyAEIANrIghBfHEiByAFaiECAkAgASADaiIDQQNxIgQEQCAHQQFIDQEgA0F8cSIGQQRqIQFBACAEQQN0IglrQRhxIQQgBigCACEGA0AgBSAGIAl2IAEoAgAiBiAEdHI2AgAgAUEEaiEBIAVBBGoiBSACSQ0ACwwBCyAHQQFIDQAgAyEBA0AgBSABKAIANgIAIAFBBGohASAFQQRqIgUgAkkNAAsLIAhBA3EhBCADIAdqIQELIAQEQCACIARqIQMDQCACIAEtAAA6AAAgAUEBaiEBIAMgAkEBaiICSw0ACwsgAAtDAQN/AkAgAkUNAANAIAAtAAAiBCABLQAAIgVGBEAgAEEBaiEAIAFBAWohASACQQFrIgINAQwCCwsgBCAFayEDCyADCwoAQbC8BSgCAEULjgEAIwFBAkYEQCMCIwIoAgBBBGs2AgAjAigCACgCACEBCwJ/IwFBAkYEfyMCIwIoAgBBBGs2AgAjAigCACgCAAVBAAtFQQEjARsEQCABIAEQcEEAIwFBAUYNARoLDwshACMCKAIAIAA2AgAjAiMCKAIAQQRqNgIAIwIoAgAgATYCACMCIwIoAgBBBGo2AgALDABCuInPl4nG0fhMCwwAQsiF+aSet9TbEgsNAELrkZO19tizovQACwMAAQsZAEEBJAEgACQCIwIoAgAjAigCBEsEQAALCxUAQQAkASMCKAIAIwIoAgRLBEAACwsZAEECJAEgACQCIwIoAgAjAigCBEsEQAALCwQAIwELC8a8AQIAQYCABAuouAEvdXNyL2xvY2FsL2NhcmdvL3JlZ2lzdHJ5L3NyYy9naXRodWIuY29tLTFlY2M2Mjk5ZGI5ZWM4MjMvY2lkLTAuOC42L3NyYy9jaWQucnMAABIAAAAAAAAAIAAAAAAAAAATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9jb3JlL3NyYy9zdHIvcGF0dGVybi5ycwCIAAEATwAAAIwFAAAhAAAAiAABAE8AAACYBQAAFAAAAIgAAQBPAAAAmAUAACEAAAAAAAEATgAAAC4BAAAdAAAAbWFuaWZlc3R3cmFwOi8vZW5zL3dyYXBzLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wABkAAAAEAAAABAAAABoAAAAbAAAAHAAAAGxpYnJhcnkvYWxsb2Mvc3JjL3Jhd192ZWMucnNjYXBhY2l0eSBvdmVyZmxvdwAAAIABAQARAAAAZAEBABwAAAAGAgAABQAAAGEgZm9ybWF0dGluZyB0cmFpdCBpbXBsZW1lbnRhdGlvbiByZXR1cm5lZCBhbiBlcnJvcgAZAAAAAAAAAAEAAAAYAAAAbGlicmFyeS9hbGxvYy9zcmMvZm10LnJz8AEBABgAAABkAgAACQAAAC9pcGZzLy4uHgIBAAIAAABCb3Jyb3dNdXRFcnJvcmluZGV4IG91dCBvZiBib3VuZHM6IHRoZSBsZW4gaXMgIGJ1dCB0aGUgaW5kZXggaXMgNgIBACAAAABWAgEAEgAAABkAAAAAAAAAAQAAAB0AAAA9PWFzc2VydGlvbiBmYWlsZWQ6IGAobGVmdCAgcmlnaHQpYAogIGxlZnQ6IGBgLAogcmlnaHQ6IGBgOiCKAgEAGQAAAKMCAQASAAAAtQIBAAwAAADBAgEAAwAAAGAAAACKAgEAGQAAAKMCAQASAAAAtQIBAAwAAADkAgEAAQAAACxRAQAAAAAAy1UBAAIAAAAZAAAADAAAAAQAAAAeAAAAHwAAACAAAAAgICAgIHsKLAosICB7IH0geyAuLiB9IH0oCigsbGlicmFyeS9jb3JlL3NyYy9mbXQvbnVtLnJzAEwDAQAbAAAAZQAAABQAAAAweDAwMDEwMjAzMDQwNTA2MDcwODA5MTAxMTEyMTMxNDE1MTYxNzE4MTkyMDIxMjIyMzI0MjUyNjI3MjgyOTMwMzEzMjMzMzQzNTM2MzczODM5NDA0MTQyNDM0NDQ1NDY0NzQ4NDk1MDUxNTI1MzU0NTU1NjU3NTg1OTYwNjE2MjYzNjQ2NTY2Njc2ODY5NzA3MTcyNzM3NDc1NzY3Nzc4Nzk4MDgxODI4Mzg0ODU4Njg3ODg4OTkwOTE5MjkzOTQ5NTk2OTc5ODk5AAAZAAAABAAAAAQAAAAhAAAAIgAAACMAAABsaWJyYXJ5L2NvcmUvc3JjL2ZtdC9tb2QucnN0cnVlZmFsc2VcBAEAGwAAAHQJAAAe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gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGQAAAAAAAEQUAQACAgAAMDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2NzAxMjM0NTY3MDEyMzQ1NjcwMTIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGwAAAAAAAFQWAQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAPoCAgD80NTY3ODk6Ozw9gICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjOAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB4AAAAAbhgBAAICAAB5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5eWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3Njl5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5eWJuZHJmZzhlamttY3BxeG90MXV3aXN6YTM0NWg3Njl5Ym5kcmZnOGVqa21jcHF4b3QxdXdpc3phMzQ1aDc2OXlibmRyZmc4ZWprbWNwcXhvdDF1d2lzemEzNDVoNzY5gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBKAGRobHh0HH4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBgBDAMIBQYcFQkKgAsCEA0OBBYRE4AUDwAXgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAdAAAAAAAAfBoBAAICAAAxMjM0NTY3ODlBQkNERUZHSEpLTE1OUFFSU1RVVldYWVphYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5Ky9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrL4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA+gICAPzQ1Njc4OTo7PD2AgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAaGxwdHh8gISIjJCUmJygpKissLS4vMDEyM4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HgAAAADGHAEAAgIAAEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV+AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA+gIA0NTY3ODk6Ozw9gICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgD+AGhscHR4fICEiIyQlJicoKSorLC0uLzAxMjOAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB4AAAAAAADUHgEAAgIAADAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWYwMTIzNDU2Nzg5YWJjZGVmMDEyMzQ1Njc4OWFiY2RlZjAxMjM0NTY3ODlhYmNkZWaAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAQIDBAUGBwgJgICAgICAgAoLDA0OD4CAgICAgICAgICAgICAgICAgICAgICAgICACgsMDQ4PgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBwAAAAAAADkIAEAAgIAADAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUYwMTIzNDU2Nzg5QUJDREVGMDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUaAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAAAQIDBAUGBwgJgICAgICAgAoLDA0OD4CAgICAgICAgICAgICAgICAgICAgICAgICACgsMDQ4PgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBwAAAAAAAD0IgEAAgIAAGFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjeAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBobHB0eH4CAgICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB0AAAAAAAAEJQEAAgIAAEFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjeAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgBobHB0eH4CAgICAgICAgAABAgMEBQYHCAkKCwwNDg8QERITFBUWFxgZgICAgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgB0AAAAAAAAUJwEAAgIAADAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjEyMzQ1Njc4OWFiY2RlZmdoaWprbW5vcHFyc3R1dnd4eXpBQkNERUZHSEpLTE1OUFFSU1RVVldYWVpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODktX0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV9BQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OS1fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAPoCANDU2Nzg5Ojs8PYCAgIKAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgIA/gBobHB0eHyAhIiMkJSYnKCkqKywtLi8wMTIzgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgD0eAAAAAKYpAQACAgAAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1doCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICAgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAHQAAAAAAALQrAQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICAgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAHQAAAAAAAMQtAQACAgAAYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MjM0NTY3YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoyMzQ1NjdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGhscHR4fgICAgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAANQvAQACAgAAQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaMjM0NTY3QUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVoyMzQ1NjdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWjIzNDU2N4CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAGhscHR4fgICAgICCgICAAAECAwQFBgcICQoLDA0ODxAREhMUFRYXGBmAgICAgIAAAQIDBAUGBwgJCgsMDQ4PEBESExQVFhcYGYCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAOQxAQACAgAAMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1djAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1doCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICCgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAPQzAQACAgAAMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVjAxMjM0NTY3ODlBQkNERUZHSElKS0xNTk9QUVJTVFVWMDEyMzQ1Njc4OUFCQ0RFRkdISUpLTE1OT1BRUlNUVVYwMTIzNDU2Nzg5QUJDREVGR0hJSktMTU5PUFFSU1RVVoCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAABAgMEBQYHCAmAgICCgICACgsMDQ4PEBESExQVFhcYGRobHB0eH4CAgICAgICAgIAKCwwNDg8QERITFBUWFxgZGhscHR4fgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIA9HQAAAAAAAAQ2AQACAgAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAACkAAAAQAAAABAAAACoAAAApAAAAEAAAAAQAAAArAAAAL3Vzci9sb2NhbC9jYXJnby9yZWdpc3RyeS9zcmMvZ2l0aHViLmNvbS0xZWNjNjI5OWRiOWVjODIzL2Jhc2UteC0wLjIuMTEvc3JjL2RlY29kZXIucnMAAFw4AQBWAAAAKAAAABYAAABzcmMvd3JhcC9tb2R1bGUvd3JhcHBlZC5ycwAAxDgBABoAAAAXAAAALQAAAMQ4AQAaAAAAIwAAAA0AAADEOAEAGgAAACAAAAA3AAAAxDgBABoAAAAtAAAALQAAAMQ4AQAaAAAAOAAAAA0AAADEOAEAGgAAADUAAAAwAAAAc3JjL3V0aWwvZXhlY19jYXQucnNAOQEAFAAAAB8AAAAMAAAAQDkBABQAAAAmAAAASAAAAFJlY2VpdmVkIGVtcHR5IHJlc3VsdCBmcm9tIGNvbmN1cnJlbnQgdGFza3Rhc2tJZGkzMk9wdGlvbjxTdHJpbmc+c3RhdHVzQ29uY3VycmVudFRhc2tTdGF0dXN0YXNrSWQ6IEludC5zdGF0dXM6IENvbmN1cnJlbnRfVGFza1N0YXR1cy5TZXJpYWxpemluZyAoZW5jb2RpbmcpIGltcG9ydGVkIG1vZHVsZS10eXBlOiBjYXQgQXJnc2NpZGlwZnNQcm92aWRlcmNhdE9wdGlvbnNPcHRpb248Q2xpZW50Q2F0T3B0aW9ucz5EZXNlcmlhbGl6aW5nIGltcG9ydGVkIG1vZHVsZS10eXBlOiBjYXQgUmVzdWx0dXJpbWV0aG9kYXJnc1ZlYzx1OD5JcGZzIHVyaSByZXNvbHZlciByZXF1aXJlcyBhIGNvbmZpZ3VyZWQgRW52c3JjL2xpYi5ycwAAzDoBAAoAAAAIAAAAEwAAAC93cmFwLmluZm8AACxRAQAAAAAA6DoBAAoAAADMOgEACgAAABsAAAATAAAARGVzZXJpYWxpemluZyBlbnYtdHlwZTogRW52cmV0cmllc09wdGlvbjxSZXRyaWVzPnRpbWVvdXRmYWxsYmFja1Byb3ZpZGVyc09wdGlvbjxWZWM8U3RyaW5nPj5kaXNhYmxlUGFyYWxsZWxSZXF1ZXN0c09wdGlvbjxib29sPnByb3ZpZGVyOiBTdHJpbmcuEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAHNyYy91dGlsL2V4ZWMucnNQYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IGF2YWlsYWJsZS4gRXhlY3V0aW5nIHNlcXVlbnRpYWxseSBpbnN0ZWFkLiBQYXJhbGxlbCBleGVjdXRpb24gcmVxdWlyZXMgYW4gaW1wbGVtZW50YXRpb24gb2YgdGhlIENvbmN1cnJlbnQgaW50ZXJmYWNlLiBZb3UgY2FuIGRlY2xhcmUgYW4gaW50ZXJmYWNlIGltcGxlbWVudGF0aW9uIGluIHlvdXIgUG9seXdyYXAgQ2xpZW50IGNvbmZpZ3VyYXRpb24uCgDcOwEA4wAAAMw7AQAQAAAARwAAACYAAABBbiBlcnJvciBvY2N1cnJlZApPcGVyYXRpb246IGNhdApQcm92aWRlcjogClRpbWVvdXQ6IApFcnJvcjogAAAA2DwBACsAAAADPQEACgAAAA09AQAIAAAARXhlY3V0aW9uIHJlcXVpcmVzIGFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBJUEZTIEhUVFAgQ2xpZW50IGludGVyZmFjZS4gWW91IGNhbiBkZWNsYXJlIGFuIGludGVyZmFjZSBpbXBsZW1lbnRhdGlvbiBpbiB5b3VyIFBvbHl3cmFwIENsaWVudCBjb25maWd1cmF0aW9uLgAAMD0BAJoAAADMOwEAEAAAAFgAAAAJAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9tdWx0aWJhc2UtMC45LjEvc3JjL2xpYi5ycww+AQBUAAAAJgAAACAAAABPcHRpb248dTMyPnR5cGUgZm91bmQsIHJlYWRpbmcgcHJvcGVydHlvZmZzZXRPcHRpb248aTMyPmxlbmd0aHdyYXA6Ly9lbnMvd3JhcHMuZXRoOmNvbmN1cnJlbnRAMS4wLjBEZXNlcmlhbGl6aW5nIG1vZHVsZS10eXBlOiB0cnlfcmVzb2x2ZV91cmkgQXJnc2F1dGhvcml0eVN0cmluZ3R5cGUgZm91bmQsIHJlYWRpbmcgYXJndW1lbnRhdXRob3JpdHk6IFN0cmluZy5wYXRoOiBTdHJpbmcuU2VyaWFsaXppbmcgKGVuY29kaW5nKSBtb2R1bGUtdHlwZTogdHJ5X3Jlc29sdmVfdXJpIFJlc3VsdHRyeVJlc29sdmVVcmlPcHRpb248VXJpUmVzb2x2ZXJNYXliZVVyaU9yTWFuaWZlc3Q+d3JpdGluZyByZXN1bHREZXNlcmlhbGl6aW5nIG1vZHVsZS10eXBlOiBnZXRfZmlsZSBBcmdzU2VyaWFsaXppbmcgKGVuY29kaW5nKSBtb2R1bGUtdHlwZTogZ2V0X2ZpbGUgUmVzdWx0Z2V0RmlsZU9wdGlvbjxWZWM8dTg+PgATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAU2VyaWFsaXppbmcgKGVuY29kaW5nKSBpbXBvcnRlZCBtb2R1bGUtdHlwZTogcmVzdWx0IEFyZ3N0YXNrSWRzVmVjPGkzMj53cml0aW5nIHByb3BlcnR5cmV0dXJuV2hlbkNvbmN1cnJlbnRSZXR1cm5XaGVuRGVzZXJpYWxpemluZyBpbXBvcnRlZCBtb2R1bGUtdHlwZTogcmVzdWx0IFJlc3VsdHJlc3VsdFZlYzxDb25jdXJyZW50VGFza1Jlc3VsdD5yZWFkaW5nIGZ1bmN0aW9uIG91dHB1dFNlcmlhbGl6aW5nIChlbmNvZGluZykgaW1wb3J0ZWQgbW9kdWxlLXR5cGU6IHNjaGVkdWxlIEFyZ3N0YXNrc1ZlYzxDb25jdXJyZW50VGFzaz5EZXNlcmlhbGl6aW5nIGltcG9ydGVkIG1vZHVsZS10eXBlOiBzY2hlZHVsZSBSZXN1bHRzY2hlZHVsZS91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy91bnNpZ25lZC12YXJpbnQtMC43LjEvc3JjL2RlY29kZS5ycwAAyUEBAF0AAAB7AAAABQAAABMAAAAMAAAABAAAABQAAAAVAAAAFgAAABcAAAAAAAAAAQAAABgAAABJbnZhbGlkIHZhbHVlIGZvciBlbnVtICdDb25jdXJyZW50VGFza1N0YXR1cyc6IABgQgEALwAAAFBFTkRJTkdSVU5OSU5HQ09NUExFVEVEQ0FOQ0VMTEVERkFJTEVEX01BWF9JbnZhbGlkIGtleSBmb3IgZW51bSAnQ29uY3VycmVudFRhc2tTdGF0dXMnOiDDQgEALQAAAGNhdAATAAAADAAAAAQAAAAUAAAAFQAAABYAAAAXAAAAAAAAAAEAAAAYAAAAEwAAAAwAAAAEAAAALAAAAEZhaWxlZCB0byBjcmVhdGUgbmV3IGRhdGEgdmlldy91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvbXNncGFjay9yZWFkX2RlY29kZXIucnMAAABSQwEAcwAAABQAAAAvAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICdpbnQnLiDYQwEAIAAAAGludGVnZXIgb3ZlcmZsb3c6IHZhbHVlID0gOyBiaXRzID0gNjQAAAAARAEAGgAAABpEAQALAAAAdW5zaWduZWQgaW50ZWdlciBjYW5ub3QgYmUgbmVnYXRpdmUuIAAAADhEAQAlAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICd1aW50Jy4gAAAAaEQBACEAAABQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgJ2Jvb2wnLiAAAACURAEAIQAAADsgYml0cyA9IDMyAABEAQAaAAAAwEQBAAsAAAB1bnNpZ25lZCBpbnRlZ2VyIG92ZXJmbG93OiB2YWx1ZSA9IADcRAEAIwAAAMBEAQALAAAAUHJvcGVydHkgbXVzdCBiZSBvZiB0eXBlICdzdHJpbmcnLiAAEEUBACMAAABQcm9wZXJ0eSBtdXN0IGJlIG9mIHR5cGUgJ2J5dGVzJy4gAAA8RQEAIgAAAFByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSAnYXJyYXknLiAAAGhFAQAiAAAAYXJyYXlbXVByb3BlcnR5IG11c3QgYmUgb2YgdHlwZSAnbWFwJy4gAJtFAQAgAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAFwAAAAAAAAABAAAAGAAAAEZvdW5kICdGSVhFWFQxNicuRm91bmQgJ0ZJWEVYVDgnLkZvdW5kICdGSVhFWFQ0Jy5Gb3VuZCAnRklYRVhUMicuRm91bmQgJ0ZJWEVYVDEnLkZvdW5kICdpbnQ2NCcuRm91bmQgJ2ludDMyJy5Gb3VuZCAnaW50MTYnLkZvdW5kICdpbnQ4Jy5Gb3VuZCAndWludDY0Jy5Gb3VuZCAndWludDMyJy5Gb3VuZCAndWludDE2Jy5Gb3VuZCAndWludDgnLkZvdW5kICdmbG9hdDY0Jy5Gb3VuZCAnZmxvYXQzMicuRm91bmQgJ0VYVDMyJy5Gb3VuZCAnRVhUMTYnLkZvdW5kICdFWFQ4Jy5Gb3VuZCAnQklOMzInLkZvdW5kICdCSU4xNicuRm91bmQgJ0JJTjgnLkZvdW5kICdib29sJy5Gb3VuZCAncmVzZXJ2ZWQnLkZvdW5kICduaWwnLkZvdW5kICdzdHJpbmcnLkZvdW5kICdhcnJheScuRm91bmQgJ21hcCcuRm91bmQgJ2ludCcuSU9FcnJvcgAXAAAABAAAAAQAAAAtAAAAVHlwZVdyaXRlRXJyb3JTdHJXcml0ZUVycm9ySW50MzJXcml0ZUVycm9ySW50MTZXcml0ZUVycm9ySW50OFdyaXRlRXJyb3JVaW50MzJXcml0ZUVycm9yVWludDE2V3JpdGVFcnJvclVpbnQ4V3JpdGVFcnJvckZsb2F0NjRXcml0ZUVycm9yRmxvYXQzMldyaXRlRXJyb3JKU09OV3JpdGVFcnJvckJpZ0ludFdyaXRlRXJyb3JCaW5Xcml0ZUVycm9yQm9vbGVhbldyaXRlRXJyb3JGb3JtYXRXcml0ZUVycm9yTmlsV3JpdGVFcnJvclR5cGVSZWFkRXJyb3JNaXNzaW5nRmllbGRXcm9uZ01zZ1BhY2tGb3JtYXRVbmtub3duRmllbGROYW1lRW51bVJlYWRFcnJvclN0clJlYWRFcnJvckV4dEdlbmVyaWNNYXBSZWFkRXJyb3JNYXBSZWFkRXJyb3JBcnJheVJlYWRFcnJvckludFJhbmdlRXJyb3JKU09OUmVhZEVycm9yQmlnTnVtYmVyUmVhZEVycm9yQmlnSW50UmVhZEVycm9yRmxvYXRSZWFkRXJyb3JVaW50UmVhZEVycm9ySW50UmVhZEVycm9yUGFyc2VCaWdOdW1iZXJFcnJvclBhcnNlQmlnSW50RXJyb3JCeXRlc1JlYWRFcnJvckJvb2xlYW5SZWFkRXJyb3JGb3VuZE5pbEJ1dEV4cGVjdGVkTWlzc2luZyByZXF1aXJlZCBmaWVsZDogJycAAADDSQEAGQAAANxJAQABAAAAVW5rbm93bkZpZWxkTmFtZTogJwDwSQEAEwAAANxJAQABAAAARm91bmQgTklMLCBidXQgZXhwZWN0ZWQ6ICcAABRKAQAaAAAA3EkBAAEAAAApAAAAEAAAAAQAAAAqAAAAX193cmFwX2dldEltcGxlbWVudGF0aW9uc19yZXN1bHRWZWM8U3RyaW5nPl9fd3JhcF9nZXRJbXBsZW1lbnRhdGlvbnMgc3VjY2Vzc2Z1bC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvZ2V0X2ltcGxlbWVudGF0aW9ucy5ycwAAAJ9KAQByAAAAJQAAADcAAAAXAAAAAAAAAAEAAAAuAAAALwAAAC8AAAB1bmtub3duIGVycm9yQ291bGQgbm90IGZpbmQgaW52b2tlIGZ1bmN0aW9uIElLAQAfAAAAEwAAAAwAAAAEAAAAFAAAABUAAAAWAAAAYSBEaXNwbGF5IGltcGxlbWVudGF0aW9uIHJldHVybmVkIGFuIGVycm9yIHVuZXhwZWN0ZWRseQAXAAAAAAAAAAEAAAAYAAAAL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9hbGxvYy9zcmMvc3RyaW5nLnJzANBLAQBLAAAAzgkAAAkAAAAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvaW8vbW9kLnJzAAAALEwBAEkAAADEAQAAHAAAAGZhaWxlZCB0byBmaWxsIHdob2xlIGJ1ZmZlcgCITAEAGwAAACUAAAAsTAEASQAAAIQBAAAbAAAALEwBAEkAAACTAQAAMAAAAC9ydXN0Yy84OTdlMzc1NTNiYmE4YjQyNzUxYzY3NjU4OTY3ODg5ZDExZWNkMTIwL2xpYnJhcnkvc3RkL3NyYy9pby9yZWFkYnVmLnJzAAAA0EwBAE0AAAD9AAAAFQAAANBMAQBNAAAA0wAAADUAAADQTAEATQAAAMsAAAA2AAAAbnVtYmVyIG9mIHJlYWQgYnl0ZXMgZXhjZWVkcyBsaW1pdAAAUE0BACIAAAAsTAEASQAAABsKAAAJAAAALEwBAEkAAAAtCgAAJgAAAGF0dGVtcHQgdG8gam9pbiBpbnRvIGNvbGxlY3Rpb24gd2l0aCBsZW4gPiB1c2l6ZTo6TUFYL3J1c3RjLzg5N2UzNzU1M2JiYThiNDI3NTFjNjc2NTg5Njc4ODlkMTFlY2QxMjAvbGlicmFyeS9hbGxvYy9zcmMvc3RyLnJzAAAA0U0BAEgAAACwAAAAFgAAANFNAQBIAAAAlAAAABgAAABjb250ZXh0IGRlc2NyaXB0aW9uIG5vdCBzZXRFcnJvcjogdHJpZWQgdG8gcG9wIGFuIGl0ZW0gZnJvbSBhbiBlbXB0eSBDb250ZXh0IHN0YWNrAABXTgEANwAAAC91c3IvbG9jYWwvY2FyZ28vcmVnaXN0cnkvc3JjL2dpdGh1Yi5jb20tMWVjYzYyOTlkYjllYzgyMy9wb2x5d3JhcC13YXNtLXJzLTAuMTAuMC1wcmUuNy9zcmMvZGVidWcvY29udGV4dC5yc5hOAQBsAAAAKwAAAA0AAACYTgEAbAAAAC0AAAAlAAAAID4+ICRPAQAEAAAALFEBAAAAAADLVQEAAgAAACxRAQAAAAAACiAAAElPAQABAAAAAAAAACAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAMAAABITwEAAQAAAENvbnRleHQ6IGNvbnRleHQgc3RhY2sgaXMgZW1wdHlhdCAgOiAAAACbTwEAAwAAAJ5PAQADAAAAJE8BAAQAAAAvcnVzdGMvODk3ZTM3NTUzYmJhOGI0Mjc1MWM2NzY1ODk2Nzg4OWQxMWVjZDEyMC9saWJyYXJ5L3N0ZC9zcmMvaW8vaW1wbHMucnMAvE8BAEsAAADyAAAADQAAAC9ydXN0Yy84OTdlMzc1NTNiYmE4YjQyNzUxYzY3NjU4OTY3ODg5ZDExZWNkMTIwL2xpYnJhcnkvc3RkL3NyYy9pby9jdXJzb3IucnMYUAEATAAAAOsAAAAKAAAAY3Vyc29yIHBvc2l0aW9uIGV4Y2VlZHMgbWF4aW11bSBwb3NzaWJsZSB2ZWN0b3IgbGVuZ3RoAAB0UAEANgAAABQAAAAXAAAABAAAAAQAAAAwAAAAMQAAADIAAABjYWxsZWQgYFJlc3VsdDo6dW53cmFwKClgIG9uIGFuIGBFcnJgIHZhbHVlABkAAAAEAAAABAAAADMAAAA0AAAANQAAABkAAAAEAAAABAAAADYAAAA3AAAAOAAAAGFscmVhZHkgYm9ycm93ZWQZAAAAAAAAAAEAAAA5AAAAYXNzZXJ0aW9uIGZhaWxlZDogbWlkIDw9IHNlbGYubGVuKCkAGQAAAAQAAAAEAAAAOgAAABkAAAAEAAAABAAAADsAAABjYWxsZWQgYE9wdGlvbjo6dW53cmFwKClgIG9uIGEgYE5vbmVgIHZhbHVlbGlicmFyeS9zdGQvc3JjL3RocmVhZC9tb2QucnNmYWlsZWQgdG8gZ2VuZXJhdGUgdW5pcXVlIHRocmVhZCBJRDogYml0c3BhY2UgZXhoYXVzdGVkANhRAQA3AAAAu1EBAB0AAAAXBAAADQAAACxRAQAAAAAAbGlicmFyeS9zdGQvc3JjL2lvL2J1ZmZlcmVkL2xpbmV3cml0ZXJzaGltLnJzAAAAMFIBAC0AAAABAQAAKQAAAHVuY2F0ZWdvcml6ZWQgZXJyb3JvdGhlciBlcnJvcm91dCBvZiBtZW1vcnl1bmV4cGVjdGVkIGVuZCBvZiBmaWxldW5zdXBwb3J0ZWRvcGVyYXRpb24gaW50ZXJydXB0ZWRhcmd1bWVudCBsaXN0IHRvbyBsb25naW52YWxpZCBmaWxlbmFtZXRvbyBtYW55IGxpbmtzY3Jvc3MtZGV2aWNlIGxpbmsgb3IgcmVuYW1lZGVhZGxvY2tleGVjdXRhYmxlIGZpbGUgYnVzeXJlc291cmNlIGJ1c3lmaWxlIHRvbyBsYXJnZWZpbGVzeXN0ZW0gcXVvdGEgZXhjZWVkZWRzZWVrIG9uIHVuc2Vla2FibGUgZmlsZW5vIHN0b3JhZ2Ugc3BhY2V3cml0ZSB6ZXJvdGltZWQgb3V0aW52YWxpZCBkYXRhaW52YWxpZCBpbnB1dCBwYXJhbWV0ZXJzdGFsZSBuZXR3b3JrIGZpbGUgaGFuZGxlZmlsZXN5c3RlbSBsb29wIG9yIGluZGlyZWN0aW9uIGxpbWl0IChlLmcuIHN5bWxpbmsgbG9vcClyZWFkLW9ubHkgZmlsZXN5c3RlbSBvciBzdG9yYWdlIG1lZGl1bWRpcmVjdG9yeSBub3QgZW1wdHlpcyBhIGRpcmVjdG9yeW5vdCBhIGRpcmVjdG9yeW9wZXJhdGlvbiB3b3VsZCBibG9ja2VudGl0eSBhbHJlYWR5IGV4aXN0c2Jyb2tlbiBwaXBlbmV0d29yayBkb3duYWRkcmVzcyBub3QgYXZhaWxhYmxlYWRkcmVzcyBpbiB1c2Vub3QgY29ubmVjdGVkY29ubmVjdGlvbiBhYm9ydGVkbmV0d29yayB1bnJlYWNoYWJsZWhvc3QgdW5yZWFjaGFibGVjb25uZWN0aW9uIHJlc2V0Y29ubmVjdGlvbiByZWZ1c2VkcGVybWlzc2lvbiBkZW5pZWRlbnRpdHkgbm90IGZvdW5kRXJyb3JraW5kIChvcyBlcnJvciApAAAsUQEAAAAAAGZVAQALAAAAcVUBAAEAAABsaWJyYXJ5L3N0ZC9zcmMvaW8vc3RkaW8ucnMAjFUBABsAAADfAgAAFAAAAGZhaWxlZCBwcmludGluZyB0byA6IAAAALhVAQATAAAAy1UBAAIAAACMVQEAGwAAAPoDAAAJAAAAc3Rkb3V0Zm9ybWF0dGVyIGVycm9yAAAA9lUBAA8AAAAoAAAAPAAAAAwAAAAEAAAAPQAAAD4AAAA/AAAAbGlicmFyeS9zdGQvc3JjL3N5bmMvb25jZS5ycyxWAQAcAAAATgEAAA4AAAAsVgEAHAAAAE4BAAAoAAAAYXNzZXJ0aW9uIGZhaWxlZDogc3RhdGVfYW5kX3F1ZXVlLmFkZHIoKSAmIFNUQVRFX01BU0sgPT0gUlVOTklORwIAAAAsVgEAHAAAAP8BAAAJAAAALFYBABwAAAAMAgAAHgAAAFBvaXNvbkVycm9ybG9jayBjb3VudCBvdmVyZmxvdyBpbiByZWVudHJhbnQgbXV0ZXhsaWJyYXJ5L3N0ZC9zcmMvc3lzX2NvbW1vbi9yZW11dGV4LnJzAAD9VgEAJQAAAI8AAAAiAAAAbGlicmFyeS9zdGQvc3JjL3N5c19jb21tb24vdGhyZWFkX2luZm8ucnMAAAA0VwEAKQAAABYAAAAzAAAAY2Fubm90IG1vZGlmeSB0aGUgcGFuaWMgaG9vayBmcm9tIGEgcGFuaWNraW5nIHRocmVhZHBXAQA0AAAAbGlicmFyeS9zdGQvc3JjL3Bhbmlja2luZy5yc6xXAQAcAAAAfQAAAAkAAACsVwEAHAAAAEcCAAAPAAAAQAAAAAwAAAAEAAAAQQAAABkAAAAIAAAABAAAAEIAAABDAAAAEAAAAAQAAABEAAAARQAAABkAAAAIAAAABAAAAEYAAABHAAAAZXJyb3JvcGVyYXRpb24gc3VjY2Vzc2Z1bGNvbmR2YXIgd2FpdCBub3Qgc3VwcG9ydGVkAElYAQAaAAAAbGlicmFyeS9zdGQvc3JjL3N5cy93YXNtLy4uL3Vuc3VwcG9ydGVkL2xvY2tzL2NvbmR2YXIucnNsWAEAOAAAABUAAAAJAAAAAGNhbm5vdCByZWN1cnNpdmVseSBhY3F1aXJlIG11dGV4AAAAtVgBACAAAABsaWJyYXJ5L3N0ZC9zcmMvc3lzL3dhc20vLi4vdW5zdXBwb3J0ZWQvbG9ja3MvbXV0ZXgucnMAAOBYAQA2AAAAFQAAAAkAAABIAAAACAAAAAQAAABJAAAAbGlicmFyeS9zdGQvc3JjL3N5c19jb21tb24vdGhyZWFkX3Bhcmtlci9nZW5lcmljLnJzADhZAQAzAAAAJwAAABUAAABpbmNvbnNpc3RlbnQgcGFyayBzdGF0ZQB8WQEAFwAAADhZAQAzAAAANQAAABcAAABwYXJrIHN0YXRlIGNoYW5nZWQgdW5leHBlY3RlZGx5AKxZAQAfAAAAOFkBADMAAAAyAAAAEQAAAGluY29uc2lzdGVudCBzdGF0ZSBpbiB1bnBhcmvkWQEAHAAAADhZAQAzAAAAbAAAABIAAAA4WQEAMwAAAHoAAAAOAAAADgAAABAAAAAWAAAAFQAAAAsAAAAWAAAADQAAAAsAAAATAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEQAAABIAAAAQAAAAEAAAABMAAAASAAAADQAAAA4AAAAVAAAADAAAAAsAAAAVAAAAFQAAAA8AAAAOAAAAEwAAACYAAAA4AAAAGQAAABcAAAAMAAAACQAAAAoAAAAQAAAAFwAAABkAAAAOAAAADQAAABQAAAAIAAAAGwAAAPdSAQDnUgEA0VIBALxSAQCxUgEAm1IBAI5SAQCDUgEAcFIBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBAE1VAQBNVQEATVUBADxVAQAqVQEAGlUBAApVAQD3VAEA5VQBANhUAQDKVAEAtVQBAKlUAQCeVAEAiVQBAHRUAQBlVAEAV1QBAERUAQAeVAEA5lMBAM1TAQC2UwEAqlMBAKFTAQCXUwEAh1MBAHBTAQBXUwEASVMBADxTAQAoUwEAIFMBAAVTAQAAQai4BQuMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH8JcHJvZHVjZXJzAghsYW5ndWFnZQEEUnVzdAAMcHJvY2Vzc2VkLWJ5BAVydXN0Yx0xLjY1LjAgKDg5N2UzNzU1MyAyMDIyLTExLTAyKQZ3YWxydXMGMC4xMi4wDHdhc20tYmluZGdlbgYwLjIuODMJd2FzbS1zbmlwBTAuNC4w" ); const wrap_info = toUint8Array( - "hKd2ZXJzaW9uozAuMaRuYW1lumlwZnMtdXJpLXJlc29sdmVyLXJzLWFzeW5jpHR5cGWkd2FzbaNhYmmIp3ZlcnNpb26jMC4xq29iamVjdFR5cGVzkYSkdHlwZadSZXRyaWVzp2NvbW1lbnTZR051bWJlciBvZiB0aW1lcyB0byByZXRyeSByZXF1ZXN0IG9uIGZhaWx1cmUgKGV4Y2x1ZGluZyBpbml0aWFsIHJlcXVlc3QppGtpbmQBqnByb3BlcnRpZXOShKR0eXBlplVJbnQzMqRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmc2NhbGFyg6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZaZVSW50MzKka2luZASEpHR5cGWmVUludDMypG5hbWWnZ2V0RmlsZaRraW5kIqZzY2FsYXKDpG5hbWWnZ2V0RmlsZaR0eXBlplVJbnQzMqRraW5kBKptb2R1bGVUeXBlhadpbXBvcnRz3AAQgaR0eXBlslVyaVJlc29sdmVyX01vZHVsZYGkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3SBpHR5cGWtQ2xpZW50X01vZHVsZYGkdHlwZbFDbGllbnRfQ2F0T3B0aW9uc4GkdHlwZbVDbGllbnRfUmVzb2x2ZU9wdGlvbnOBpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSBpHR5cGWwQ2xpZW50X0ZpbGVFbnRyeYGkdHlwZbFDbGllbnRfQWRkT3B0aW9uc4GkdHlwZbBDbGllbnRfQWRkUmVzdWx0gaR0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeYGkdHlwZatDbGllbnRfQmxvYoGkdHlwZbFDb25jdXJyZW50X01vZHVsZYGkdHlwZbVDb25jdXJyZW50X1JldHVybldoZW6BpHR5cGW1Q29uY3VycmVudF9UYXNrUmVzdWx0gaR0eXBltUNvbmN1cnJlbnRfVGFza1N0YXR1c4GkdHlwZa9Db25jdXJyZW50X1Rhc2uqaW50ZXJmYWNlc5GCpHR5cGWyVXJpUmVzb2x2ZXJfTW9kdWxlpGtpbmTNCACkdHlwZaZNb2R1bGWka2luZMyAp21ldGhvZHOSh6RuYW1lrXRyeVJlc29sdmVVcmmmcmV0dXJuhKR0eXBlvlVyaVJlc29sdmVyX01heWJlVXJpT3JNYW5pZmVzdKRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmb2JqZWN0g6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3Ska2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkoWkdHlwZaZTdHJpbmekbmFtZalhdXRob3JpdHmocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZalhdXRob3JpdHmkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpHBhdGiocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRwYXRopHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIekbmFtZadnZXRGaWxlpnJldHVyboSkdHlwZaVCeXRlc6RuYW1lp2dldEZpbGWka2luZCKmc2NhbGFyg6RuYW1lp2dldEZpbGWkdHlwZaVCeXRlc6RraW5kBKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkYWkdHlwZaZTdHJpbmekbmFtZaRwYXRoqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkcGF0aKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASuaW50ZXJmYWNlVHlwZXOShqR0eXBlqkNvbmN1cnJlbnSjdXJp2TF3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDpjb25jdXJyZW50QDEuMC4wqW5hbWVzcGFjZapDb25jdXJyZW50rGNhcGFiaWxpdGllc4GyZ2V0SW1wbGVtZW50YXRpb25zgadlbmFibGVkw6RraW5kzYAAqm5hdGl2ZVR5cGWpSW50ZXJmYWNlhqR0eXBlpkNsaWVudKN1cmnZN3dyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKxjYXBhYmlsaXRpZXOBsmdldEltcGxlbWVudGF0aW9uc4GnZW5hYmxlZMOka2luZM2AAKpuYXRpdmVUeXBlqUludGVyZmFjZbNpbXBvcnRlZE9iamVjdFR5cGVzm4akdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3SjdXJp2Td3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDp1cmktcmVzb2x2ZXItZXh0QDEuMS4wqW5hbWVzcGFjZatVcmlSZXNvbHZlcqpuYXRpdmVUeXBlsk1heWJlVXJpT3JNYW5pZmVzdKRraW5kzQQBqnByb3BlcnRpZXOShaR0eXBlplN0cmluZ6RuYW1lo3Vyaadjb21tZW502T1BIG5ldyBVUkkgdG8gYmUgdXNlZCBmb3IgcmVzb2x2aW5nIHRoZSB3cmFwcGVyIChyZWRpcmVjdGlvbikupGtpbmQipnNjYWxhcoOkbmFtZaN1cmmkdHlwZaZTdHJpbmeka2luZASFpHR5cGWlQnl0ZXOkbmFtZahtYW5pZmVzdKdjb21tZW502SxUaGUgd3JhcHBlcidzIG1hbmlmZXN0LCBpZiBmb3VuZCAoZmluYWxpdHkpLqRraW5kIqZzY2FsYXKDpG5hbWWobWFuaWZlc3SkdHlwZaVCeXRlc6RraW5kBIakdHlwZbFDbGllbnRfQ2F0T3B0aW9uc6N1cmnZN3dyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKpuYXRpdmVUeXBlqkNhdE9wdGlvbnOka2luZM0EAapwcm9wZXJ0aWVzkoSkdHlwZaVJbnQzMqRuYW1lpm9mZnNldKRraW5kIqZzY2FsYXKDpG5hbWWmb2Zmc2V0pHR5cGWlSW50MzKka2luZASEpHR5cGWlSW50MzKkbmFtZaZsZW5ndGika2luZCKmc2NhbGFyg6RuYW1lpmxlbmd0aKR0eXBlpUludDMypGtpbmQEhqR0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6N1cmnZN3dyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKpuYXRpdmVUeXBlrlJlc29sdmVPcHRpb25zpGtpbmTNBAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lqXJlY3Vyc2l2ZaRraW5kIqZzY2FsYXKDpG5hbWWpcmVjdXJzaXZlpHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZaVJbnQzMqRuYW1lrmRodFJlY29yZENvdW50pGtpbmQipnNjYWxhcoOkbmFtZa5kaHRSZWNvcmRDb3VudKR0eXBlpUludDMypGtpbmQEhKR0eXBlplN0cmluZ6RuYW1lqmRodFRpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lqmRodFRpbWVvdXSkdHlwZaZTdHJpbmeka2luZASGpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSjdXJp2Td3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZa1SZXNvbHZlUmVzdWx0pGtpbmTNBAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWjY2lkqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2lkpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZahwcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqHByb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIakdHlwZbBDbGllbnRfRmlsZUVudHJ5o3Vyadk3d3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWpRmlsZUVudHJ5pGtpbmTNBAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlpUJ5dGVzpG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGRhdGGkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASGpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOjdXJp2Td3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZapBZGRPcHRpb25zpGtpbmTNBAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lo3BpbqRraW5kIqZzY2FsYXKDpG5hbWWjcGlupHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZadCb29sZWFupG5hbWWob25seUhhc2ika2luZCKmc2NhbGFyg6RuYW1lqG9ubHlIYXNopHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZadCb29sZWFupG5hbWWxd3JhcFdpdGhEaXJlY3Rvcnmka2luZCKmc2NhbGFyg6RuYW1lsXdyYXBXaXRoRGlyZWN0b3J5pHR5cGWnQm9vbGVhbqRraW5kBIakdHlwZbBDbGllbnRfQWRkUmVzdWx0o3Vyadk3d3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWpQWRkUmVzdWx0pGtpbmTNBAGqcHJvcGVydGllc5OFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpGhhc2iocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRoYXNopHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaRzaXplqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkc2l6ZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASGpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5o3Vyadk3d3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWuRGlyZWN0b3J5RW50cnmka2luZM0EAapwcm9wZXJ0aWVzk4WkdHlwZaZTdHJpbmekbmFtZaRuYW1lqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkbmFtZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGW3W0NsaWVudF9EaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlt1tDbGllbnRfRGlyZWN0b3J5RW50cnldpm9iamVjdISkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZbVDbGllbnRfRGlyZWN0b3J5RW50cnmka2luZM0gAKRraW5kEqRpdGVthKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlsltDbGllbnRfRmlsZUVudHJ5XaRuYW1lpWZpbGVzpGtpbmQipWFycmF5haRuYW1lpWZpbGVzpHR5cGWyW0NsaWVudF9GaWxlRW50cnldpm9iamVjdISkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACGpHR5cGWrQ2xpZW50X0Jsb2KjdXJp2Td3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZaRCbG9ipGtpbmTNBAGqcHJvcGVydGllc5KEpHR5cGW3W0NsaWVudF9EaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlt1tDbGllbnRfRGlyZWN0b3J5RW50cnldpm9iamVjdISkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZbVDbGllbnRfRGlyZWN0b3J5RW50cnmka2luZM0gAKRraW5kEqRpdGVthKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlsltDbGllbnRfRmlsZUVudHJ5XaRuYW1lpWZpbGVzpGtpbmQipWFycmF5haRuYW1lpWZpbGVzpHR5cGWyW0NsaWVudF9GaWxlRW50cnldpm9iamVjdISkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACGpHR5cGW1Q29uY3VycmVudF9UYXNrUmVzdWx0o3Vyadkxd3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6Y29uY3VycmVudEAxLjAuMKluYW1lc3BhY2WqQ29uY3VycmVudKpuYXRpdmVUeXBlqlRhc2tSZXN1bHSka2luZM0EAapwcm9wZXJ0aWVzlIWkdHlwZaNJbnSkbmFtZaZ0YXNrSWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaZ0YXNrSWSkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEhKR0eXBlpUJ5dGVzpG5hbWWmcmVzdWx0pGtpbmQipnNjYWxhcoOkbmFtZaZyZXN1bHSkdHlwZaVCeXRlc6RraW5kBISkdHlwZaZTdHJpbmekbmFtZaVlcnJvcqRraW5kIqZzY2FsYXKDpG5hbWWlZXJyb3KkdHlwZaZTdHJpbmeka2luZASFpHR5cGW1Q29uY3VycmVudF9UYXNrU3RhdHVzpG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RraW5kIqRlbnVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAIakdHlwZa9Db25jdXJyZW50X1Rhc2ujdXJp2TF3cmFwOi8vZW5zL3dyYXBwZXJzLnBvbHl3cmFwLmV0aDpjb25jdXJyZW50QDEuMC4wqW5hbWVzcGFjZapDb25jdXJyZW50qm5hdGl2ZVR5cGWkVGFza6RraW5kzQQBqnByb3BlcnRpZXOThaR0eXBlplN0cmluZ6RuYW1lo3VyaahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo3VyaaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWmbWV0aG9kqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWmbWV0aG9kpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaVCeXRlc6RuYW1lpGFyZ3OocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRhcmdzpHR5cGWlQnl0ZXOocmVxdWlyZWTDpGtpbmQEs2ltcG9ydGVkTW9kdWxlVHlwZXOTh6N1cmnZN3dyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOnVyaS1yZXNvbHZlci1leHRAMS4xLjCpbmFtZXNwYWNlq1VyaVJlc29sdmVyqm5hdGl2ZVR5cGWmTW9kdWxlq2lzSW50ZXJmYWNlwqR0eXBlslVyaVJlc29sdmVyX01vZHVsZaRraW5kzQEAp21ldGhvZHOSiKRuYW1lrXRyeVJlc29sdmVVcmmmcmV0dXJuhKR0eXBlvlVyaVJlc29sdmVyX01heWJlVXJpT3JNYW5pZmVzdKRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmb2JqZWN0g6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3Ska2luZM0gAKdjb21tZW502YhBdHRlbXB0IHRvIHJlc29sdmUgYSB3cmFwcGVyIGZyb20gaXRzIFVSSS4KQHBhcmFtIGF1dGhvcml0eSAtIFVSSSBhdXRob3JpdHkgKGV4OiAiZmlsZSIpCkBwYXJhbSBwYXRoIC0gVVJJIHBhdGggKGV4OiAiL3BhdGgvdG8vd3JhcHBlciIppHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6NlbnaBqHJlcXVpcmVkwqlhcmd1bWVudHOShaR0eXBlplN0cmluZ6RuYW1lqWF1dGhvcml0eahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqWF1dGhvcml0eaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWkcGF0aKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpHBhdGikdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEiKRuYW1lp2dldEZpbGWmcmV0dXJuhKR0eXBlpUJ5dGVzpG5hbWWnZ2V0RmlsZaRraW5kIqZzY2FsYXKDpG5hbWWnZ2V0RmlsZaR0eXBlpUJ5dGVzpGtpbmQEp2NvbW1lbnTZUUF0dGVtcHQgdG8gcmVhZCBhIGZpbGUuCkBwYXJhbSBwYXRoIC0gVVJJIHBhdGggKGV4OiAiL3BhdGgvdG8vd3JhcHBlci93cmFwLndhc20iKaR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkYWkdHlwZaZTdHJpbmekbmFtZaRwYXRoqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkcGF0aKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASHo3Vyadk3d3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWmTW9kdWxlq2lzSW50ZXJmYWNlw6R0eXBlrUNsaWVudF9Nb2R1bGWka2luZM0BAKdtZXRob2RzlYakbmFtZaNjYXSmcmV0dXJuhaR0eXBlpUJ5dGVzpG5hbWWjY2F0qHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2F0pHR5cGWlQnl0ZXOocmVxdWlyZWTDpGtpbmQEpHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlplN0cmluZ6RuYW1lo2NpZKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo2NpZKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlsUNsaWVudF9DYXRPcHRpb25zpG5hbWWqY2F0T3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqY2F0T3B0aW9uc6R0eXBlsUNsaWVudF9DYXRPcHRpb25zpGtpbmTNIACGpG5hbWWncmVzb2x2ZaZyZXR1cm6FpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSkbmFtZadyZXNvbHZlqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWncmVzb2x2ZahyZXF1aXJlZMOkdHlwZbRDbGllbnRfUmVzb2x2ZVJlc3VsdKRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlplN0cmluZ6RuYW1lo2NpZKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo2NpZKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6RuYW1lrnJlc29sdmVPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZa5yZXNvbHZlT3B0aW9uc6R0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6RraW5kzSAAhqRuYW1lp2FkZEZpbGWmcmV0dXJuhaR0eXBlsENsaWVudF9BZGRSZXN1bHSkbmFtZadhZGRGaWxlqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWnYWRkRmlsZahyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWwQ2xpZW50X0ZpbGVFbnRyeaRuYW1lpGRhdGGocmVxdWlyZWTDpGtpbmQipm9iamVjdISkbmFtZaRkYXRhqHJlcXVpcmVkw6R0eXBlsENsaWVudF9GaWxlRW50cnmka2luZM0gAIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOkbmFtZaphZGRPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZaphZGRPcHRpb25zpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOka2luZM0gAIakbmFtZaZhZGREaXKmcmV0dXJuhaR0eXBlsltDbGllbnRfQWRkUmVzdWx0XaRuYW1lpmFkZERpcqhyZXF1aXJlZMOka2luZCKlYXJyYXmGpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6ZvYmplY3SEpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlsENsaWVudF9BZGRSZXN1bHSka2luZM0gAKRraW5kEqRpdGVthKRuYW1lpmFkZERpcqhyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5pGtpbmTNIACFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlsUNsaWVudF9BZGRPcHRpb25zpG5hbWWqYWRkT3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqYWRkT3B0aW9uc6R0eXBlsUNsaWVudF9BZGRPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkQmxvYqZyZXR1cm6FpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOka2luZCKlYXJyYXmGpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOmb2JqZWN0hKRuYW1lp2FkZEJsb2KocmVxdWlyZWTDpHR5cGWwQ2xpZW50X0FkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWrQ2xpZW50X0Jsb2KkbmFtZaRkYXRhqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWkZGF0YahyZXF1aXJlZMOkdHlwZatDbGllbnRfQmxvYqRraW5kzSAAhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZbFDbGllbnRfQWRkT3B0aW9uc6RuYW1lqmFkZE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmFkZE9wdGlvbnOkdHlwZbFDbGllbnRfQWRkT3B0aW9uc6RraW5kzSAAh6N1cmnZMXdyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmNvbmN1cnJlbnRAMS4wLjCpbmFtZXNwYWNlqkNvbmN1cnJlbnSqbmF0aXZlVHlwZaZNb2R1bGWraXNJbnRlcmZhY2XDpHR5cGWxQ29uY3VycmVudF9Nb2R1bGWka2luZM0BAKdtZXRob2RzlIakbmFtZaZyZXN1bHSmcmV0dXJuhaR0eXBlt1tDb25jdXJyZW50X1Rhc2tSZXN1bHRdpG5hbWWmcmVzdWx0qHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZbdbQ29uY3VycmVudF9UYXNrUmVzdWx0XaRuYW1lpnJlc3VsdKhyZXF1aXJlZMOmb2JqZWN0hKRuYW1lpnJlc3VsdKhyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tSZXN1bHSka2luZM0gAKRraW5kEqRpdGVthKRuYW1lpnJlc3VsdKhyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzkoWkdHlwZaVbSW50XaRuYW1lp3Rhc2tJZHOocmVxdWlyZWTDpGtpbmQipWFycmF5hqRuYW1lp3Rhc2tJZHOkdHlwZaVbSW50XahyZXF1aXJlZMOmc2NhbGFyhKRuYW1lp3Rhc2tJZHOkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEpGtpbmQSpGl0ZW2EpG5hbWWndGFza0lkc6R0eXBlo0ludKhyZXF1aXJlZMOka2luZASFpHR5cGW1Q29uY3VycmVudF9SZXR1cm5XaGVupG5hbWWqcmV0dXJuV2hlbqhyZXF1aXJlZMOka2luZCKkZW51bYSkbmFtZapyZXR1cm5XaGVuqHJlcXVpcmVkw6R0eXBltUNvbmN1cnJlbnRfUmV0dXJuV2hlbqRraW5kzUAAhqRuYW1lpnN0YXR1c6ZyZXR1cm6FpHR5cGW3W0NvbmN1cnJlbnRfVGFza1N0YXR1c12kbmFtZaZzdGF0dXOocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlt1tDb25jdXJyZW50X1Rhc2tTdGF0dXNdpG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RlbnVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAKRraW5kEqRpdGVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzkYWkdHlwZaVbSW50XaRuYW1lp3Rhc2tJZHOocmVxdWlyZWTDpGtpbmQipWFycmF5hqRuYW1lp3Rhc2tJZHOkdHlwZaVbSW50XahyZXF1aXJlZMOmc2NhbGFyhKRuYW1lp3Rhc2tJZHOkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEpGtpbmQSpGl0ZW2EpG5hbWWndGFza0lkc6R0eXBlo0ludKhyZXF1aXJlZMOka2luZASGpG5hbWWoc2NoZWR1bGWmcmV0dXJuhaR0eXBlpVtJbnRdpG5hbWWoc2NoZWR1bGWocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlpVtJbnRdpG5hbWWoc2NoZWR1bGWocmVxdWlyZWTDpnNjYWxhcoSkbmFtZahzY2hlZHVsZaR0eXBlo0ludKhyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZahzY2hlZHVsZaR0eXBlo0ludKhyZXF1aXJlZMOka2luZASkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5GFpHR5cGWxW0NvbmN1cnJlbnRfVGFza12kbmFtZaV0YXNrc6hyZXF1aXJlZMOka2luZCKlYXJyYXmGpG5hbWWldGFza3OkdHlwZbFbQ29uY3VycmVudF9UYXNrXahyZXF1aXJlZMOmb2JqZWN0hKRuYW1lpXRhc2tzqHJlcXVpcmVkw6R0eXBlr0NvbmN1cnJlbnRfVGFza6RraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWldGFza3OocmVxdWlyZWTDpHR5cGWvQ29uY3VycmVudF9UYXNrpGtpbmTNIACGpG5hbWWlYWJvcnSmcmV0dXJuhaR0eXBlqVtCb29sZWFuXaRuYW1lpWFib3J0qHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZalbQm9vbGVhbl2kbmFtZaVhYm9ydKhyZXF1aXJlZMOmc2NhbGFyhKRuYW1lpWFib3J0pHR5cGWnQm9vbGVhbqhyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZaVhYm9ydKR0eXBlp0Jvb2xlYW6ocmVxdWlyZWTDpGtpbmQEpHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHORhaR0eXBlqFtTdHJpbmddpG5hbWWndGFza0lkc6hyZXF1aXJlZMOka2luZCKlYXJyYXmGpG5hbWWndGFza0lkc6R0eXBlqFtTdHJpbmddqHJlcXVpcmVkw6ZzY2FsYXKEpG5hbWWndGFza0lkc6R0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZad0YXNrSWRzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBLFpbXBvcnRlZEVudW1UeXBlc5KGpHR5cGW1Q29uY3VycmVudF9SZXR1cm5XaGVuqWNvbnN0YW50c5OvRklSU1RfQ09NUExFVEVErUFOWV9DT01QTEVURUStQUxMX0NPTVBMRVRFRKN1cmnZMXdyYXA6Ly9lbnMvd3JhcHBlcnMucG9seXdyYXAuZXRoOmNvbmN1cnJlbnRAMS4wLjCpbmFtZXNwYWNlqkNvbmN1cnJlbnSqbmF0aXZlVHlwZapSZXR1cm5XaGVupGtpbmTNAgiGpHR5cGW1Q29uY3VycmVudF9UYXNrU3RhdHVzqWNvbnN0YW50c5WnUEVORElOR6dSVU5OSU5HqUNPTVBMRVRFRKlDQU5DRUxMRUSmRkFJTEVEo3Vyadkxd3JhcDovL2Vucy93cmFwcGVycy5wb2x5d3JhcC5ldGg6Y29uY3VycmVudEAxLjAuMKluYW1lc3BhY2WqQ29uY3VycmVudKpuYXRpdmVUeXBlqlRhc2tTdGF0dXOka2luZM0CCKdlbnZUeXBlg6R0eXBlo0VudqRraW5kzgABAACqcHJvcGVydGllc5WFpHR5cGWnUmV0cmllc6RuYW1lp3JldHJpZXOnY29tbWVudLhSZXRyeSByZXF1ZXN0IG9uIGZhaWx1cmWka2luZCKmb2JqZWN0g6RuYW1lp3JldHJpZXOkdHlwZadSZXRyaWVzpGtpbmTNIACFpHR5cGWmVUludDMypG5hbWWndGltZW91dKdjb21tZW502SJSZXNwb25zZSB0aW1lb3V0IGZvciBIVFRQIHJlcXVlc3RzpGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhqR0eXBlplN0cmluZ6RuYW1lqHByb3ZpZGVyp2NvbW1lbnSwRGVmYXVsdCBwcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqHByb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZahbU3RyaW5nXaRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzp2NvbW1lbnSyRmFsbGJhY2sgcHJvdmlkZXJzpGtpbmQipWFycmF5haRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWoW1N0cmluZ12mc2NhbGFyhKRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKRraW5kEqRpdGVthKRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZadCb29sZWFupG5hbWW3ZGlzYWJsZVBhcmFsbGVsUmVxdWVzdHOnY29tbWVudNk6RGlzYWJsZSBxdWVyeWluZyBwcm92aWRlcnMgaW4gcGFyYWxsZWwgd2hlbiByZXNvbHZpbmcgVVJJc6RraW5kIqZzY2FsYXKDpG5hbWW3ZGlzYWJsZVBhcmFsbGVsUmVxdWVzdHOkdHlwZadCb29sZWFupGtpbmQE" + "hKd2ZXJzaW9uozAuMaRuYW1lumlwZnMtdXJpLXJlc29sdmVyLXJzLWFzeW5jpHR5cGWkd2FzbaNhYmmIp3ZlcnNpb26jMC4xq29iamVjdFR5cGVzkYSkdHlwZadSZXRyaWVzp2NvbW1lbnTZR051bWJlciBvZiB0aW1lcyB0byByZXRyeSByZXF1ZXN0IG9uIGZhaWx1cmUgKGV4Y2x1ZGluZyBpbml0aWFsIHJlcXVlc3QppGtpbmQBqnByb3BlcnRpZXOShKR0eXBlplVJbnQzMqRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmc2NhbGFyg6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZaZVSW50MzKka2luZASEpHR5cGWmVUludDMypG5hbWWnZ2V0RmlsZaRraW5kIqZzY2FsYXKDpG5hbWWnZ2V0RmlsZaR0eXBlplVJbnQzMqRraW5kBKptb2R1bGVUeXBlhadpbXBvcnRz3AAQgaR0eXBlslVyaVJlc29sdmVyX01vZHVsZYGkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3SBpHR5cGWtQ2xpZW50X01vZHVsZYGkdHlwZbFDbGllbnRfQ2F0T3B0aW9uc4GkdHlwZbVDbGllbnRfUmVzb2x2ZU9wdGlvbnOBpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSBpHR5cGWwQ2xpZW50X0ZpbGVFbnRyeYGkdHlwZbFDbGllbnRfQWRkT3B0aW9uc4GkdHlwZbBDbGllbnRfQWRkUmVzdWx0gaR0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeYGkdHlwZatDbGllbnRfQmxvYoGkdHlwZbFDb25jdXJyZW50X01vZHVsZYGkdHlwZbVDb25jdXJyZW50X1JldHVybldoZW6BpHR5cGW1Q29uY3VycmVudF9UYXNrUmVzdWx0gaR0eXBltUNvbmN1cnJlbnRfVGFza1N0YXR1c4GkdHlwZa9Db25jdXJyZW50X1Rhc2uqaW50ZXJmYWNlc5GCpHR5cGWyVXJpUmVzb2x2ZXJfTW9kdWxlpGtpbmTNCACkdHlwZaZNb2R1bGWka2luZMyAp21ldGhvZHOSh6RuYW1lrXRyeVJlc29sdmVVcmmmcmV0dXJuhKR0eXBlvlVyaVJlc29sdmVyX01heWJlVXJpT3JNYW5pZmVzdKRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmb2JqZWN0g6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3Ska2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkoWkdHlwZaZTdHJpbmekbmFtZalhdXRob3JpdHmocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZalhdXRob3JpdHmkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpHBhdGiocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRwYXRopHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIekbmFtZadnZXRGaWxlpnJldHVyboSkdHlwZaVCeXRlc6RuYW1lp2dldEZpbGWka2luZCKmc2NhbGFyg6RuYW1lp2dldEZpbGWkdHlwZaVCeXRlc6RraW5kBKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkYWkdHlwZaZTdHJpbmekbmFtZaRwYXRoqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkcGF0aKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASuaW50ZXJmYWNlVHlwZXOShqR0eXBlqkNvbmN1cnJlbnSjdXJp2SV3cmFwOi8vZW5zL3dyYXBzLmV0aDpjb25jdXJyZW50QDEuMC4wqW5hbWVzcGFjZapDb25jdXJyZW50rGNhcGFiaWxpdGllc4GyZ2V0SW1wbGVtZW50YXRpb25zgadlbmFibGVkw6RraW5kzYAAqm5hdGl2ZVR5cGWpSW50ZXJmYWNlhqR0eXBlpkNsaWVudKN1cmnZK3dyYXA6Ly9lbnMvd3JhcHMuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKxjYXBhYmlsaXRpZXOBsmdldEltcGxlbWVudGF0aW9uc4GnZW5hYmxlZMOka2luZM2AAKpuYXRpdmVUeXBlqUludGVyZmFjZbNpbXBvcnRlZE9iamVjdFR5cGVzm4akdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3SjdXJp2St3cmFwOi8vZW5zL3dyYXBzLmV0aDp1cmktcmVzb2x2ZXItZXh0QDEuMS4wqW5hbWVzcGFjZatVcmlSZXNvbHZlcqpuYXRpdmVUeXBlsk1heWJlVXJpT3JNYW5pZmVzdKRraW5kzQQBqnByb3BlcnRpZXOShaR0eXBlplN0cmluZ6RuYW1lo3Vyaadjb21tZW502T1BIG5ldyBVUkkgdG8gYmUgdXNlZCBmb3IgcmVzb2x2aW5nIHRoZSB3cmFwcGVyIChyZWRpcmVjdGlvbikupGtpbmQipnNjYWxhcoOkbmFtZaN1cmmkdHlwZaZTdHJpbmeka2luZASFpHR5cGWlQnl0ZXOkbmFtZahtYW5pZmVzdKdjb21tZW502SxUaGUgd3JhcHBlcidzIG1hbmlmZXN0LCBpZiBmb3VuZCAoZmluYWxpdHkpLqRraW5kIqZzY2FsYXKDpG5hbWWobWFuaWZlc3SkdHlwZaVCeXRlc6RraW5kBIakdHlwZbFDbGllbnRfQ2F0T3B0aW9uc6N1cmnZK3dyYXA6Ly9lbnMvd3JhcHMuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKpuYXRpdmVUeXBlqkNhdE9wdGlvbnOka2luZM0EAapwcm9wZXJ0aWVzkoSkdHlwZaVJbnQzMqRuYW1lpm9mZnNldKRraW5kIqZzY2FsYXKDpG5hbWWmb2Zmc2V0pHR5cGWlSW50MzKka2luZASEpHR5cGWlSW50MzKkbmFtZaZsZW5ndGika2luZCKmc2NhbGFyg6RuYW1lpmxlbmd0aKR0eXBlpUludDMypGtpbmQEhqR0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6N1cmnZK3dyYXA6Ly9lbnMvd3JhcHMuZXRoOmlwZnMtaHR0cC1jbGllbnRAMS4wLjCpbmFtZXNwYWNlpkNsaWVudKpuYXRpdmVUeXBlrlJlc29sdmVPcHRpb25zpGtpbmTNBAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lqXJlY3Vyc2l2ZaRraW5kIqZzY2FsYXKDpG5hbWWpcmVjdXJzaXZlpHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZaVJbnQzMqRuYW1lrmRodFJlY29yZENvdW50pGtpbmQipnNjYWxhcoOkbmFtZa5kaHRSZWNvcmRDb3VudKR0eXBlpUludDMypGtpbmQEhKR0eXBlplN0cmluZ6RuYW1lqmRodFRpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lqmRodFRpbWVvdXSkdHlwZaZTdHJpbmeka2luZASGpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSjdXJp2St3cmFwOi8vZW5zL3dyYXBzLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZa1SZXNvbHZlUmVzdWx0pGtpbmTNBAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWjY2lkqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2lkpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZahwcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqHByb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIakdHlwZbBDbGllbnRfRmlsZUVudHJ5o3Vyadkrd3JhcDovL2Vucy93cmFwcy5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWpRmlsZUVudHJ5pGtpbmTNBAGqcHJvcGVydGllc5KFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlpUJ5dGVzpG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpGRhdGGkdHlwZaVCeXRlc6hyZXF1aXJlZMOka2luZASGpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOjdXJp2St3cmFwOi8vZW5zL3dyYXBzLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZapBZGRPcHRpb25zpGtpbmTNBAGqcHJvcGVydGllc5OEpHR5cGWnQm9vbGVhbqRuYW1lo3BpbqRraW5kIqZzY2FsYXKDpG5hbWWjcGlupHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZadCb29sZWFupG5hbWWob25seUhhc2ika2luZCKmc2NhbGFyg6RuYW1lqG9ubHlIYXNopHR5cGWnQm9vbGVhbqRraW5kBISkdHlwZadCb29sZWFupG5hbWWxd3JhcFdpdGhEaXJlY3Rvcnmka2luZCKmc2NhbGFyg6RuYW1lsXdyYXBXaXRoRGlyZWN0b3J5pHR5cGWnQm9vbGVhbqRraW5kBIakdHlwZbBDbGllbnRfQWRkUmVzdWx0o3Vyadkrd3JhcDovL2Vucy93cmFwcy5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWpQWRkUmVzdWx0pGtpbmTNBAGqcHJvcGVydGllc5OFpHR5cGWmU3RyaW5npG5hbWWkbmFtZahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpG5hbWWkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhaR0eXBlplN0cmluZ6RuYW1lpGhhc2iocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRoYXNopHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaZTdHJpbmekbmFtZaRzaXplqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkc2l6ZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASGpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5o3Vyadkrd3JhcDovL2Vucy93cmFwcy5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWuRGlyZWN0b3J5RW50cnmka2luZM0EAapwcm9wZXJ0aWVzk4WkdHlwZaZTdHJpbmekbmFtZaRuYW1lqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkbmFtZaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGW3W0NsaWVudF9EaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlt1tDbGllbnRfRGlyZWN0b3J5RW50cnldpm9iamVjdISkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZbVDbGllbnRfRGlyZWN0b3J5RW50cnmka2luZM0gAKRraW5kEqRpdGVthKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlsltDbGllbnRfRmlsZUVudHJ5XaRuYW1lpWZpbGVzpGtpbmQipWFycmF5haRuYW1lpWZpbGVzpHR5cGWyW0NsaWVudF9GaWxlRW50cnldpm9iamVjdISkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACGpHR5cGWrQ2xpZW50X0Jsb2KjdXJp2St3cmFwOi8vZW5zL3dyYXBzLmV0aDppcGZzLWh0dHAtY2xpZW50QDEuMC4wqW5hbWVzcGFjZaZDbGllbnSqbmF0aXZlVHlwZaRCbG9ipGtpbmTNBAGqcHJvcGVydGllc5KEpHR5cGW3W0NsaWVudF9EaXJlY3RvcnlFbnRyeV2kbmFtZatkaXJlY3Rvcmllc6RraW5kIqVhcnJheYWkbmFtZatkaXJlY3Rvcmllc6R0eXBlt1tDbGllbnRfRGlyZWN0b3J5RW50cnldpm9iamVjdISkbmFtZatkaXJlY3Rvcmllc6hyZXF1aXJlZMOkdHlwZbVDbGllbnRfRGlyZWN0b3J5RW50cnmka2luZM0gAKRraW5kEqRpdGVthKRuYW1lq2RpcmVjdG9yaWVzqHJlcXVpcmVkw6R0eXBltUNsaWVudF9EaXJlY3RvcnlFbnRyeaRraW5kzSAAhKR0eXBlsltDbGllbnRfRmlsZUVudHJ5XaRuYW1lpWZpbGVzpGtpbmQipWFycmF5haRuYW1lpWZpbGVzpHR5cGWyW0NsaWVudF9GaWxlRW50cnldpm9iamVjdISkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACka2luZBKkaXRlbYSkbmFtZaVmaWxlc6hyZXF1aXJlZMOkdHlwZbBDbGllbnRfRmlsZUVudHJ5pGtpbmTNIACGpHR5cGW1Q29uY3VycmVudF9UYXNrUmVzdWx0o3Vyadkld3JhcDovL2Vucy93cmFwcy5ldGg6Y29uY3VycmVudEAxLjAuMKluYW1lc3BhY2WqQ29uY3VycmVudKpuYXRpdmVUeXBlqlRhc2tSZXN1bHSka2luZM0EAapwcm9wZXJ0aWVzlIWkdHlwZaNJbnSkbmFtZaZ0YXNrSWSocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaZ0YXNrSWSkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEhKR0eXBlpUJ5dGVzpG5hbWWmcmVzdWx0pGtpbmQipnNjYWxhcoOkbmFtZaZyZXN1bHSkdHlwZaVCeXRlc6RraW5kBISkdHlwZaZTdHJpbmekbmFtZaVlcnJvcqRraW5kIqZzY2FsYXKDpG5hbWWlZXJyb3KkdHlwZaZTdHJpbmeka2luZASFpHR5cGW1Q29uY3VycmVudF9UYXNrU3RhdHVzpG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RraW5kIqRlbnVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAIakdHlwZa9Db25jdXJyZW50X1Rhc2ujdXJp2SV3cmFwOi8vZW5zL3dyYXBzLmV0aDpjb25jdXJyZW50QDEuMC4wqW5hbWVzcGFjZapDb25jdXJyZW50qm5hdGl2ZVR5cGWkVGFza6RraW5kzQQBqnByb3BlcnRpZXOThaR0eXBlplN0cmluZ6RuYW1lo3VyaahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo3VyaaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWmbWV0aG9kqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWmbWV0aG9kpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZaVCeXRlc6RuYW1lpGFyZ3OocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaRhcmdzpHR5cGWlQnl0ZXOocmVxdWlyZWTDpGtpbmQEs2ltcG9ydGVkTW9kdWxlVHlwZXOTh6N1cmnZK3dyYXA6Ly9lbnMvd3JhcHMuZXRoOnVyaS1yZXNvbHZlci1leHRAMS4xLjCpbmFtZXNwYWNlq1VyaVJlc29sdmVyqm5hdGl2ZVR5cGWmTW9kdWxlq2lzSW50ZXJmYWNlwqR0eXBlslVyaVJlc29sdmVyX01vZHVsZaRraW5kzQEAp21ldGhvZHOSiKRuYW1lrXRyeVJlc29sdmVVcmmmcmV0dXJuhKR0eXBlvlVyaVJlc29sdmVyX01heWJlVXJpT3JNYW5pZmVzdKRuYW1lrXRyeVJlc29sdmVVcmmka2luZCKmb2JqZWN0g6RuYW1lrXRyeVJlc29sdmVVcmmkdHlwZb5VcmlSZXNvbHZlcl9NYXliZVVyaU9yTWFuaWZlc3Ska2luZM0gAKdjb21tZW502YhBdHRlbXB0IHRvIHJlc29sdmUgYSB3cmFwcGVyIGZyb20gaXRzIFVSSS4KQHBhcmFtIGF1dGhvcml0eSAtIFVSSSBhdXRob3JpdHkgKGV4OiAiZmlsZSIpCkBwYXJhbSBwYXRoIC0gVVJJIHBhdGggKGV4OiAiL3BhdGgvdG8vd3JhcHBlciIppHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6NlbnaBqHJlcXVpcmVkwqlhcmd1bWVudHOShaR0eXBlplN0cmluZ6RuYW1lqWF1dGhvcml0eahyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqWF1dGhvcml0eaR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWkcGF0aKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lpHBhdGikdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEiKRuYW1lp2dldEZpbGWmcmV0dXJuhKR0eXBlpUJ5dGVzpG5hbWWnZ2V0RmlsZaRraW5kIqZzY2FsYXKDpG5hbWWnZ2V0RmlsZaR0eXBlpUJ5dGVzpGtpbmQEp2NvbW1lbnTZUUF0dGVtcHQgdG8gcmVhZCBhIGZpbGUuCkBwYXJhbSBwYXRoIC0gVVJJIHBhdGggKGV4OiAiL3BhdGgvdG8vd3JhcHBlci93cmFwLndhc20iKaR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOjZW52gahyZXF1aXJlZMKpYXJndW1lbnRzkYWkdHlwZaZTdHJpbmekbmFtZaRwYXRoqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWkcGF0aKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASHo3Vyadkrd3JhcDovL2Vucy93cmFwcy5ldGg6aXBmcy1odHRwLWNsaWVudEAxLjAuMKluYW1lc3BhY2WmQ2xpZW50qm5hdGl2ZVR5cGWmTW9kdWxlq2lzSW50ZXJmYWNlw6R0eXBlrUNsaWVudF9Nb2R1bGWka2luZM0BAKdtZXRob2RzlYakbmFtZaNjYXSmcmV0dXJuhaR0eXBlpUJ5dGVzpG5hbWWjY2F0qHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWjY2F0pHR5cGWlQnl0ZXOocmVxdWlyZWTDpGtpbmQEpHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlplN0cmluZ6RuYW1lo2NpZKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo2NpZKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlsUNsaWVudF9DYXRPcHRpb25zpG5hbWWqY2F0T3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqY2F0T3B0aW9uc6R0eXBlsUNsaWVudF9DYXRPcHRpb25zpGtpbmTNIACGpG5hbWWncmVzb2x2ZaZyZXR1cm6FpHR5cGW0Q2xpZW50X1Jlc29sdmVSZXN1bHSkbmFtZadyZXNvbHZlqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWncmVzb2x2ZahyZXF1aXJlZMOkdHlwZbRDbGllbnRfUmVzb2x2ZVJlc3VsdKRraW5kzSAApHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHOUhaR0eXBlplN0cmluZ6RuYW1lo2NpZKhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lo2NpZKR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6RuYW1lrnJlc29sdmVPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZa5yZXNvbHZlT3B0aW9uc6R0eXBltUNsaWVudF9SZXNvbHZlT3B0aW9uc6RraW5kzSAAhqRuYW1lp2FkZEZpbGWmcmV0dXJuhaR0eXBlsENsaWVudF9BZGRSZXN1bHSkbmFtZadhZGRGaWxlqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWnYWRkRmlsZahyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWwQ2xpZW50X0ZpbGVFbnRyeaRuYW1lpGRhdGGocmVxdWlyZWTDpGtpbmQipm9iamVjdISkbmFtZaRkYXRhqHJlcXVpcmVkw6R0eXBlsENsaWVudF9GaWxlRW50cnmka2luZM0gAIWkdHlwZaZTdHJpbmekbmFtZaxpcGZzUHJvdmlkZXKocmVxdWlyZWTDpGtpbmQipnNjYWxhcoSkbmFtZaxpcGZzUHJvdmlkZXKkdHlwZaZTdHJpbmeocmVxdWlyZWTDpGtpbmQEhKR0eXBlplVJbnQzMqRuYW1lp3RpbWVvdXSka2luZCKmc2NhbGFyg6RuYW1lp3RpbWVvdXSkdHlwZaZVSW50MzKka2luZASEpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOkbmFtZaphZGRPcHRpb25zpGtpbmQipm9iamVjdIOkbmFtZaphZGRPcHRpb25zpHR5cGWxQ2xpZW50X0FkZE9wdGlvbnOka2luZM0gAIakbmFtZaZhZGREaXKmcmV0dXJuhaR0eXBlsltDbGllbnRfQWRkUmVzdWx0XaRuYW1lpmFkZERpcqhyZXF1aXJlZMOka2luZCKlYXJyYXmGpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6ZvYmplY3SEpG5hbWWmYWRkRGlyqHJlcXVpcmVkw6R0eXBlsENsaWVudF9BZGRSZXN1bHSka2luZM0gAKRraW5kEqRpdGVthKRuYW1lpmFkZERpcqhyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5pG5hbWWkZGF0YahyZXF1aXJlZMOka2luZCKmb2JqZWN0hKRuYW1lpGRhdGGocmVxdWlyZWTDpHR5cGW1Q2xpZW50X0RpcmVjdG9yeUVudHJ5pGtpbmTNIACFpHR5cGWmU3RyaW5npG5hbWWsaXBmc1Byb3ZpZGVyqHJlcXVpcmVkw6RraW5kIqZzY2FsYXKEpG5hbWWsaXBmc1Byb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBISkdHlwZaZVSW50MzKkbmFtZad0aW1lb3V0pGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhKR0eXBlsUNsaWVudF9BZGRPcHRpb25zpG5hbWWqYWRkT3B0aW9uc6RraW5kIqZvYmplY3SDpG5hbWWqYWRkT3B0aW9uc6R0eXBlsUNsaWVudF9BZGRPcHRpb25zpGtpbmTNIACGpG5hbWWnYWRkQmxvYqZyZXR1cm6FpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOka2luZCKlYXJyYXmGpHR5cGWyW0NsaWVudF9BZGRSZXN1bHRdpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOmb2JqZWN0hKRuYW1lp2FkZEJsb2KocmVxdWlyZWTDpHR5cGWwQ2xpZW50X0FkZFJlc3VsdKRraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWnYWRkQmxvYqhyZXF1aXJlZMOkdHlwZbBDbGllbnRfQWRkUmVzdWx0pGtpbmTNIACkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5SFpHR5cGWrQ2xpZW50X0Jsb2KkbmFtZaRkYXRhqHJlcXVpcmVkw6RraW5kIqZvYmplY3SEpG5hbWWkZGF0YahyZXF1aXJlZMOkdHlwZatDbGllbnRfQmxvYqRraW5kzSAAhaR0eXBlplN0cmluZ6RuYW1lrGlwZnNQcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lrGlwZnNQcm92aWRlcqR0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASEpHR5cGWmVUludDMypG5hbWWndGltZW91dKRraW5kIqZzY2FsYXKDpG5hbWWndGltZW91dKR0eXBlplVJbnQzMqRraW5kBISkdHlwZbFDbGllbnRfQWRkT3B0aW9uc6RuYW1lqmFkZE9wdGlvbnOka2luZCKmb2JqZWN0g6RuYW1lqmFkZE9wdGlvbnOkdHlwZbFDbGllbnRfQWRkT3B0aW9uc6RraW5kzSAAh6N1cmnZJXdyYXA6Ly9lbnMvd3JhcHMuZXRoOmNvbmN1cnJlbnRAMS4wLjCpbmFtZXNwYWNlqkNvbmN1cnJlbnSqbmF0aXZlVHlwZaZNb2R1bGWraXNJbnRlcmZhY2XDpHR5cGWxQ29uY3VycmVudF9Nb2R1bGWka2luZM0BAKdtZXRob2RzlIakbmFtZaZyZXN1bHSmcmV0dXJuhaR0eXBlt1tDb25jdXJyZW50X1Rhc2tSZXN1bHRdpG5hbWWmcmVzdWx0qHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZbdbQ29uY3VycmVudF9UYXNrUmVzdWx0XaRuYW1lpnJlc3VsdKhyZXF1aXJlZMOmb2JqZWN0hKRuYW1lpnJlc3VsdKhyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tSZXN1bHSka2luZM0gAKRraW5kEqRpdGVthKRuYW1lpnJlc3VsdKhyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tSZXN1bHSka2luZM0gAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzkoWkdHlwZaVbSW50XaRuYW1lp3Rhc2tJZHOocmVxdWlyZWTDpGtpbmQipWFycmF5hqRuYW1lp3Rhc2tJZHOkdHlwZaVbSW50XahyZXF1aXJlZMOmc2NhbGFyhKRuYW1lp3Rhc2tJZHOkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEpGtpbmQSpGl0ZW2EpG5hbWWndGFza0lkc6R0eXBlo0ludKhyZXF1aXJlZMOka2luZASFpHR5cGW1Q29uY3VycmVudF9SZXR1cm5XaGVupG5hbWWqcmV0dXJuV2hlbqhyZXF1aXJlZMOka2luZCKkZW51bYSkbmFtZapyZXR1cm5XaGVuqHJlcXVpcmVkw6R0eXBltUNvbmN1cnJlbnRfUmV0dXJuV2hlbqRraW5kzUAAhqRuYW1lpnN0YXR1c6ZyZXR1cm6FpHR5cGW3W0NvbmN1cnJlbnRfVGFza1N0YXR1c12kbmFtZaZzdGF0dXOocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlt1tDb25jdXJyZW50X1Rhc2tTdGF0dXNdpG5hbWWmc3RhdHVzqHJlcXVpcmVkw6RlbnVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAKRraW5kEqRpdGVthKRuYW1lpnN0YXR1c6hyZXF1aXJlZMOkdHlwZbVDb25jdXJyZW50X1Rhc2tTdGF0dXOka2luZM1AAKR0eXBlpk1ldGhvZKRraW5kQKhyZXF1aXJlZMOpYXJndW1lbnRzkYWkdHlwZaVbSW50XaRuYW1lp3Rhc2tJZHOocmVxdWlyZWTDpGtpbmQipWFycmF5hqRuYW1lp3Rhc2tJZHOkdHlwZaVbSW50XahyZXF1aXJlZMOmc2NhbGFyhKRuYW1lp3Rhc2tJZHOkdHlwZaNJbnSocmVxdWlyZWTDpGtpbmQEpGtpbmQSpGl0ZW2EpG5hbWWndGFza0lkc6R0eXBlo0ludKhyZXF1aXJlZMOka2luZASGpG5hbWWoc2NoZWR1bGWmcmV0dXJuhaR0eXBlpVtJbnRdpG5hbWWoc2NoZWR1bGWocmVxdWlyZWTDpGtpbmQipWFycmF5hqR0eXBlpVtJbnRdpG5hbWWoc2NoZWR1bGWocmVxdWlyZWTDpnNjYWxhcoSkbmFtZahzY2hlZHVsZaR0eXBlo0ludKhyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZahzY2hlZHVsZaR0eXBlo0ludKhyZXF1aXJlZMOka2luZASkdHlwZaZNZXRob2Ska2luZECocmVxdWlyZWTDqWFyZ3VtZW50c5GFpHR5cGWxW0NvbmN1cnJlbnRfVGFza12kbmFtZaV0YXNrc6hyZXF1aXJlZMOka2luZCKlYXJyYXmGpG5hbWWldGFza3OkdHlwZbFbQ29uY3VycmVudF9UYXNrXahyZXF1aXJlZMOmb2JqZWN0hKRuYW1lpXRhc2tzqHJlcXVpcmVkw6R0eXBlr0NvbmN1cnJlbnRfVGFza6RraW5kzSAApGtpbmQSpGl0ZW2EpG5hbWWldGFza3OocmVxdWlyZWTDpHR5cGWvQ29uY3VycmVudF9UYXNrpGtpbmTNIACGpG5hbWWlYWJvcnSmcmV0dXJuhaR0eXBlqVtCb29sZWFuXaRuYW1lpWFib3J0qHJlcXVpcmVkw6RraW5kIqVhcnJheYakdHlwZalbQm9vbGVhbl2kbmFtZaVhYm9ydKhyZXF1aXJlZMOmc2NhbGFyhKRuYW1lpWFib3J0pHR5cGWnQm9vbGVhbqhyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZaVhYm9ydKR0eXBlp0Jvb2xlYW6ocmVxdWlyZWTDpGtpbmQEpHR5cGWmTWV0aG9kpGtpbmRAqHJlcXVpcmVkw6lhcmd1bWVudHORhaR0eXBlqFtTdHJpbmddpG5hbWWndGFza0lkc6hyZXF1aXJlZMOka2luZCKlYXJyYXmGpG5hbWWndGFza0lkc6R0eXBlqFtTdHJpbmddqHJlcXVpcmVkw6ZzY2FsYXKEpG5hbWWndGFza0lkc6R0eXBlplN0cmluZ6hyZXF1aXJlZMOka2luZASka2luZBKkaXRlbYSkbmFtZad0YXNrSWRzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBLFpbXBvcnRlZEVudW1UeXBlc5KGpHR5cGW1Q29uY3VycmVudF9SZXR1cm5XaGVuqWNvbnN0YW50c5OvRklSU1RfQ09NUExFVEVErUFOWV9DT01QTEVURUStQUxMX0NPTVBMRVRFRKN1cmnZJXdyYXA6Ly9lbnMvd3JhcHMuZXRoOmNvbmN1cnJlbnRAMS4wLjCpbmFtZXNwYWNlqkNvbmN1cnJlbnSqbmF0aXZlVHlwZapSZXR1cm5XaGVupGtpbmTNAgiGpHR5cGW1Q29uY3VycmVudF9UYXNrU3RhdHVzqWNvbnN0YW50c5WnUEVORElOR6dSVU5OSU5HqUNPTVBMRVRFRKlDQU5DRUxMRUSmRkFJTEVEo3Vyadkld3JhcDovL2Vucy93cmFwcy5ldGg6Y29uY3VycmVudEAxLjAuMKluYW1lc3BhY2WqQ29uY3VycmVudKpuYXRpdmVUeXBlqlRhc2tTdGF0dXOka2luZM0CCKdlbnZUeXBlg6R0eXBlo0VudqRraW5kzgABAACqcHJvcGVydGllc5WFpHR5cGWnUmV0cmllc6RuYW1lp3JldHJpZXOnY29tbWVudLhSZXRyeSByZXF1ZXN0IG9uIGZhaWx1cmWka2luZCKmb2JqZWN0g6RuYW1lp3JldHJpZXOkdHlwZadSZXRyaWVzpGtpbmTNIACFpHR5cGWmVUludDMypG5hbWWndGltZW91dKdjb21tZW502SJSZXNwb25zZSB0aW1lb3V0IGZvciBIVFRQIHJlcXVlc3RzpGtpbmQipnNjYWxhcoOkbmFtZad0aW1lb3V0pHR5cGWmVUludDMypGtpbmQEhqR0eXBlplN0cmluZ6RuYW1lqHByb3ZpZGVyp2NvbW1lbnSwRGVmYXVsdCBwcm92aWRlcqhyZXF1aXJlZMOka2luZCKmc2NhbGFyhKRuYW1lqHByb3ZpZGVypHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZahbU3RyaW5nXaRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzp2NvbW1lbnSyRmFsbGJhY2sgcHJvdmlkZXJzpGtpbmQipWFycmF5haRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWoW1N0cmluZ12mc2NhbGFyhKRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBKRraW5kEqRpdGVthKRuYW1lsWZhbGxiYWNrUHJvdmlkZXJzpHR5cGWmU3RyaW5nqHJlcXVpcmVkw6RraW5kBIWkdHlwZadCb29sZWFupG5hbWW3ZGlzYWJsZVBhcmFsbGVsUmVxdWVzdHOnY29tbWVudNk6RGlzYWJsZSBxdWVyeWluZyBwcm92aWRlcnMgaW4gcGFyYWxsZWwgd2hlbiByZXNvbHZpbmcgVVJJc6RraW5kIqZzY2FsYXKDpG5hbWW3ZGlzYWJsZVBhcmFsbGVsUmVxdWVzdHOkdHlwZadCb29sZWFupGtpbmQE" ); export const wasmPackage = WasmPackage.from( diff --git a/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.wasm b/packages/js/client-config-builder/src/bundles/wrappers/ipfs-resolver/wrap.wasm index 248f1bd6c8b790952437a277db7a9552b7e4ca31..2dda48a8ff4cc934fb81468a24970d71a51479d3 100644 GIT binary patch delta 17111 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 Date: Wed, 15 Feb 2023 18:38:07 +0530 Subject: [PATCH 42/51] updated ethereum uris --- .../option-parsers/option-parsers.spec.ts | 2 +- .../option-parsers/samples/wrapper-envs.json | 2 +- packages/js/client-config-builder/README.md | 4 +- .../src/bundles/getDefaultConfig.ts | 4 +- .../uri-resolvers/ens-resolver/polywrap.yaml | 4 - .../schema.ethereum-provider.graphql | 33 --- .../ens-resolver/schema.ethereum.graphql | 280 ------------------ .../ens-resolver/src/schema.graphql | 2 +- .../templates/app/typescript/schema.graphql | 2 +- .../cli/docgen/006-plugin/schema.graphql | 2 +- .../cli/docgen/007-docusaurus/schema.graphql | 2 +- .../cases/cli/docgen/008-jsdoc/schema.graphql | 2 +- .../expected/docs/generated-schema.graphql | 20 +- .../cli/docgen/009-schema/schema.graphql | 2 +- .../build-cmd/001-sanity/schema.graphql | 2 +- .../002-single-module/schema.graphql | 2 +- .../005-custom-config/schema.graphql | 2 +- .../006-custom-manifest-file/schema.graphql | 2 +- .../codegen/001-sanity/expected/wrap/types.ts | 124 ++++---- .../001-sanity/expected/wrap/wrap.info.ts | 20 +- .../plugin/codegen/001-sanity/schema.graphql | 2 +- .../002-single-module/expected/wrap/types.ts | 124 ++++---- .../expected/wrap/wrap.info.ts | 20 +- .../codegen/002-single-module/schema.graphql | 2 +- .../005-custom-config/expected/wrap/types.ts | 124 ++++---- .../expected/wrap/wrap.info.ts | 20 +- .../codegen/005-custom-config/schema.graphql | 2 +- .../expected/wrap/types.ts | 124 ++++---- .../expected/wrap/wrap.info.ts | 20 +- .../006-custom-manifest-file/schema.graphql | 2 +- 30 files changed, 318 insertions(+), 635 deletions(-) delete mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql delete mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql diff --git a/packages/cli/src/__tests__/unit/option-parsers/option-parsers.spec.ts b/packages/cli/src/__tests__/unit/option-parsers/option-parsers.spec.ts index 03820319a5..e154930a6b 100644 --- a/packages/cli/src/__tests__/unit/option-parsers/option-parsers.spec.ts +++ b/packages/cli/src/__tests__/unit/option-parsers/option-parsers.spec.ts @@ -4,7 +4,7 @@ import { parseWrapperEnvsOption } from "../../../lib"; describe("unit tests for option-parsers", () => { describe("wrapper-envs", () => { const sampleFileEnvs = { - "ens/ethereum.polywrap.eth": { + "ens/wraps.eth:ethereum@1.0.0": { connection: { networkNameOrChainId: "mainnet", node: "https://mainnet.infura.io/v3/some_api_key", diff --git a/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.json b/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.json index bcae874957..9e7ae61386 100644 --- a/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.json +++ b/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.json @@ -2,7 +2,7 @@ "ens/hello-world.polywrap.eth": { "foo": "bar" }, - "ens/ethereum.polywrap.eth": { + "ens/wraps.eth:ethereum@1.0.0": { "connection": { "node": "https://mainnet.infura.io/v3/some_api_key", "networkNameOrChainId": "mainnet" diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 8045589a3b..61119cd539 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -453,8 +453,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", - ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", - ens: "wrap://ens/wraps.eth:ens@1.0.0", + ethereum: "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", + ens: "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", }; export const defaultPackages = { diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 4e32e69e1c..9c493da83c 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -34,8 +34,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", - ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", - ens: "wrap://ens/wraps.eth:ens@1.0.0", + ethereum: "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", + ens: "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", }; export const defaultPackages = { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml index 1b73773dda..92b6e0b95f 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml +++ b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml @@ -8,7 +8,3 @@ source: import_abis: - uri: "ens/uri-resolver.core.polywrap.eth" abi: ../../../../interfaces/uri-resolver/build/wrap.info - - uri: "wrap://ens/wraps.eth:ethereum@1.0.0" - abi: ./schema.ethereum.graphql - - uri: "wrap://ens/wraps.eth:ethereum-provider@1.0.0" - abi: ./schema.ethereum-provider.graphql diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql deleted file mode 100644 index a7440103b8..0000000000 --- a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql +++ /dev/null @@ -1,33 +0,0 @@ -type Connection { - node: String - networkNameOrChainId: String -} - -type Module { - """ - Send a remote RPC request to the registered provider - """ - request(method: String!, params: String, connection: Connection): String! - - """ - Sign a message and return the signature. Throws if signer is missing. - """ - signMessage(message: Bytes!, connection: Connection): String! - - """ - Sign a serialized unsigned transaction and return the signature. Throws if signer is missing. - This method requires a wallet-based signer with a private key, and is not needed for most use cases. - Typically, transactions are sent by `request` and signed by the wallet. - """ - signTransaction(rlp: Bytes!, connection: Connection): String! - - """ - Get the ethereum address of the signer. Throws if signer is missing. - """ - address(connection: Connection): String! - - """ - Get the chain id of the signer's connection. Throws if signer is missing. - """ - chainId(connection: Connection): String! -} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql deleted file mode 100644 index 3d5f52e29a..0000000000 --- a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql +++ /dev/null @@ -1,280 +0,0 @@ -#import { Module } into IProvider from "wrap://ens/wraps.eth:ethereum-provider@1.0.0" -#use { getImplementations } for IProvider - -type Connection { - node: String - networkNameOrChainId: String -} - -type TxRequest { - to: String - from: String - data: String - type: UInt32 - chainId: BigInt - accessList: [AccessItem!] - """Gas supplied for the transaction""" - gasLimit: BigInt - """ - The max total fee to pay per unit of gas. - The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. - This property is ignored when gasPrice is not null. - """ - maxFeePerGas: BigInt - """ - The gas price paid is baseFeePerGas + maxPriorityFeePerGas. - The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. - This property is ignored when gasPrice is not null. - """ - maxPriorityFeePerGas: BigInt - """ - The gas price for legacy transactions. - If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. - """ - gasPrice: BigInt - """Ether value sent with transaction""" - value: BigInt - """Override default nonce""" - nonce: UInt32 -} - -type AccessItem { - address: String! - storageKeys: [String!]! -} - -type TxResponse { - hash: String! - to: String - from: String! - nonce: UInt32! - gasLimit: BigInt! - maxFeePerGas: BigInt - maxPriorityFeePerGas: BigInt - gasPrice: BigInt - value: BigInt! - chainId: BigInt! - blockNumber: BigInt - blockHash: String - timestamp: UInt32 - r: String - s: String - v: UInt32 - type: UInt32 - accessList: [AccessItem!] -} - -type Log { - blockNumber: BigInt! - blockHash: String! - transactionIndex: UInt32! - removed: Boolean! - address: String! - data: String! - topics: [String!]! - transactionHash: String! - logIndex: UInt32! -} - -type TxReceipt { - to: String! - from: String! - contractAddress: String! - transactionIndex: UInt32! - root: String - gasUsed: BigInt! - logsBloom: String! - transactionHash: String! - logs: [Log!]! - blockNumber: BigInt! - blockHash: String! - confirmations: UInt32! - cumulativeGasUsed: BigInt! - effectiveGasPrice: BigInt! - type: UInt32! - status: UInt32 -} - -type TxOptions { - """Gas supplied for the transaction""" - gasLimit: BigInt - """ - The max total fee to pay per unit of gas. - The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. - This property is ignored when gasPrice is not null. - """ - maxFeePerGas: BigInt - """ - The gas price paid is baseFeePerGas + maxPriorityFeePerGas. - The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. - This property is ignored when gasPrice is not null. - """ - maxPriorityFeePerGas: BigInt - """ - The gas price for legacy transactions. - If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. - """ - gasPrice: BigInt - """Ether value sent with transaction""" - value: BigInt - """Override default nonce""" - nonce: UInt32 -} - -type StaticTxResult { - result: String! - error: Boolean! -} - -type Eip1559FeesEstimate { - maxFeePerGas: BigInt! - maxPriorityFeePerGas: BigInt! -} - -type Module { - getChainId(connection: Connection): String! - - callContractView( - address: String! - method: String! - args: [String!] - connection: Connection - ): String! - - callContractStatic( - address: String! - method: String! - args: [String!] - options: TxOptions - connection: Connection - ): StaticTxResult! - - encodeParams( - types: [String!]! - values: [String!]! - connection: Connection - ): String! - - encodeFunction( - method: String! - args: [String!] - connection: Connection - ): String! - - decodeFunction( - method: String! - data: String! - connection: Connection - ): [String!]! - - getSignerAddress(connection: Connection): String! - - getSignerBalance( - blockTag: BigInt - connection: Connection - ): BigInt! - - getBalance( - address: String! - blockTag: BigInt - connection: Connection - ): BigInt! - - getGasPrice(connection: Connection): BigInt! - - estimateEip1559Fees(connection: Connection): Eip1559FeesEstimate! - - sendRpc( - method: String! - params: [String!]! - connection: Connection - ): String! - - getSignerTransactionCount( - blockTag: BigInt - connection: Connection - ): BigInt! - - checkAddress( - address: String! - connection: Connection - ): Boolean! - - toWei(eth: String!): String! - - toEth(wei: String!): String! - - estimateTransactionGas( - tx: TxRequest! - connection: Connection - ): BigInt! - - awaitTransaction( - txHash: String! - connection: Connection - ): TxReceipt! - - sendTransaction( - tx: TxRequest! - connection: Connection - ): TxResponse! - - sendTransactionAndWait( - tx: TxRequest! - connection: Connection - ): TxReceipt! - - deployContract( - abi: String! - bytecode: String! - args: [String!] - options: TxOptions - connection: Connection - ): String! - - estimateContractCallGas( - address: String! - method: String! - args: [String!] - options: TxOptions - connection: Connection - ): BigInt! - - callContractMethod( - address: String! - method: String! - args: [String!] - options: TxOptions - connection: Connection - ): TxResponse! - - callContractMethodAndWait( - address: String! - method: String! - args: [String!] - options: TxOptions - connection: Connection - ): TxReceipt! - - signMessage( - message: String! - connection: Connection - ): String! - - signMessageBytes( - bytes: Bytes! - connection: Connection - ): String! - -# signTypedData( -# payload: JSON! -# connection: Connection -# ): String - -# waitForEvent( -# address: String! -# event: String! -# args: [String!] -# timeout: UInt32 -# ): EventNotification! -} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql index eed4a9d107..64697ef074 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql @@ -1,4 +1,4 @@ #import { Module, MaybeUriOrManifest } into UriResolver from "ens/uri-resolver.core.polywrap.eth" -#import { Module } into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" +#import { Module } into Ethereum from "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15" type Module implements UriResolver_Module { } diff --git a/packages/templates/app/typescript/schema.graphql b/packages/templates/app/typescript/schema.graphql index d6223edfcc..b6fc4770f6 100644 --- a/packages/templates/app/typescript/schema.graphql +++ b/packages/templates/app/typescript/schema.graphql @@ -1,2 +1,2 @@ #import * into HelloWorld from "ens/helloworld.polytest.eth" -#import * into Ethereum from "ens/ethereum.polywrap.eth" +#import * into Ethereum from "ens/wraps.eth:ethereum@1.0.0" diff --git a/packages/test-cases/cases/cli/docgen/006-plugin/schema.graphql b/packages/test-cases/cases/cli/docgen/006-plugin/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/docgen/006-plugin/schema.graphql +++ b/packages/test-cases/cases/cli/docgen/006-plugin/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/docgen/007-docusaurus/schema.graphql b/packages/test-cases/cases/cli/docgen/007-docusaurus/schema.graphql index b0d85780b9..ec37fec197 100644 --- a/packages/test-cases/cases/cli/docgen/007-docusaurus/schema.graphql +++ b/packages/test-cases/cases/cli/docgen/007-docusaurus/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { method( diff --git a/packages/test-cases/cases/cli/docgen/008-jsdoc/schema.graphql b/packages/test-cases/cases/cli/docgen/008-jsdoc/schema.graphql index b0d85780b9..ec37fec197 100644 --- a/packages/test-cases/cases/cli/docgen/008-jsdoc/schema.graphql +++ b/packages/test-cases/cases/cli/docgen/008-jsdoc/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { method( diff --git a/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql b/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql index 6860886a17..398f33cac6 100644 --- a/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql +++ b/packages/test-cases/cases/cli/docgen/009-schema/expected/docs/generated-schema.graphql @@ -95,7 +95,7 @@ enum test { ### Imported Modules START ### type Ethereum_Module @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Module" ) { @@ -251,7 +251,7 @@ type Ethereum_Module @imported( ### Imported Objects START ### type Ethereum_Connection @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Connection" ) { @@ -260,7 +260,7 @@ type Ethereum_Connection @imported( } type Ethereum_TxOptions @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxOptions" ) { @@ -296,7 +296,7 @@ If this property is not null, a legacy transaction will be sent and maxFeePerGas } type Ethereum_StaticTxResult @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "StaticTxResult" ) { @@ -305,7 +305,7 @@ type Ethereum_StaticTxResult @imported( } type Ethereum_Eip1559FeesEstimate @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Eip1559FeesEstimate" ) { @@ -314,7 +314,7 @@ type Ethereum_Eip1559FeesEstimate @imported( } type Ethereum_TxRequest @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxRequest" ) { @@ -356,7 +356,7 @@ If this property is not null, a legacy transaction will be sent and maxFeePerGas } type Ethereum_AccessItem @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "AccessItem" ) { @@ -365,7 +365,7 @@ type Ethereum_AccessItem @imported( } type Ethereum_TxReceipt @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxReceipt" ) { @@ -388,7 +388,7 @@ type Ethereum_TxReceipt @imported( } type Ethereum_Log @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "Log" ) { @@ -404,7 +404,7 @@ type Ethereum_Log @imported( } type Ethereum_TxResponse @imported( - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", namespace: "Ethereum", nativeType: "TxResponse" ) { diff --git a/packages/test-cases/cases/cli/docgen/009-schema/schema.graphql b/packages/test-cases/cases/cli/docgen/009-schema/schema.graphql index 47f526f13a..5d3415dd5b 100644 --- a/packages/test-cases/cases/cli/docgen/009-schema/schema.graphql +++ b/packages/test-cases/cases/cli/docgen/009-schema/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { method( diff --git a/packages/test-cases/cases/cli/plugin/build-cmd/001-sanity/schema.graphql b/packages/test-cases/cases/cli/plugin/build-cmd/001-sanity/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/build-cmd/001-sanity/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/build-cmd/001-sanity/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/plugin/build-cmd/002-single-module/schema.graphql b/packages/test-cases/cases/cli/plugin/build-cmd/002-single-module/schema.graphql index e6a76ae4db..224cc9abfa 100644 --- a/packages/test-cases/cases/cli/plugin/build-cmd/002-single-module/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/build-cmd/002-single-module/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { method( diff --git a/packages/test-cases/cases/cli/plugin/build-cmd/005-custom-config/schema.graphql b/packages/test-cases/cases/cli/plugin/build-cmd/005-custom-config/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/build-cmd/005-custom-config/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/build-cmd/005-custom-config/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/plugin/build-cmd/006-custom-manifest-file/schema.graphql b/packages/test-cases/cases/cli/plugin/build-cmd/006-custom-manifest-file/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/build-cmd/006-custom-manifest-file/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/build-cmd/006-custom-manifest-file/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts index e5e5c01dcb..766858f18a 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts @@ -46,13 +46,13 @@ export interface Object { /// Imported Objects START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Connection { node?: Types.String | null; networkNameOrChainId?: Types.String | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; maxFeePerGas?: Types.BigInt | null; @@ -62,19 +62,19 @@ export interface Ethereum_TxOptions { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_StaticTxResult { result: Types.String; error: Types.Boolean; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Eip1559FeesEstimate { maxFeePerGas: Types.BigInt; maxPriorityFeePerGas: Types.BigInt; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; @@ -90,13 +90,13 @@ export interface Ethereum_TxRequest { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_AccessItem { address: Types.String; storageKeys: Array; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxReceipt { to: Types.String; from: Types.String; @@ -116,7 +116,7 @@ export interface Ethereum_TxReceipt { status?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Log { blockNumber: Types.BigInt; blockHash: Types.String; @@ -129,7 +129,7 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxResponse { hash: Types.String; to?: Types.String | null; @@ -155,12 +155,12 @@ export interface Ethereum_TxResponse { /// Imported Modules START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; @@ -168,7 +168,7 @@ export interface Ethereum_Module_Args_callContractView { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractStatic { address: Types.String; method: Types.String; @@ -177,109 +177,109 @@ export interface Ethereum_Module_Args_callContractStatic { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_decodeFunction { method: Types.String; data: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerAddress { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerBalance { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getBalance { address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getGasPrice { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendRpc { method: Types.String; params: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerTransactionCount { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toWei { eth: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toEth { wei: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateTransactionGas { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_awaitTransaction { txHash: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransaction { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransactionAndWait { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_deployContract { abi: Types.String; bytecode: Types.String; @@ -288,7 +288,7 @@ export interface Ethereum_Module_Args_deployContract { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; @@ -297,7 +297,7 @@ export interface Ethereum_Module_Args_estimateContractCallGas { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethod { address: Types.String; method: Types.String; @@ -306,7 +306,7 @@ export interface Ethereum_Module_Args_callContractMethod { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethodAndWait { address: Types.String; method: Types.String; @@ -315,26 +315,26 @@ export interface Ethereum_Module_Args_callContractMethodAndWait { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessage { message: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessageBytes { bytes: Types.Bytes; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export const Ethereum_Module = { getChainId: async ( args: Ethereum_Module_Args_getChainId, client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "getChainId", args: (args as unknown) as Record, }); @@ -345,7 +345,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractView", args: (args as unknown) as Record, }); @@ -356,7 +356,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractStatic", args: (args as unknown) as Record, }); @@ -367,7 +367,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeParams", args: (args as unknown) as Record, }); @@ -378,7 +378,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeFunction", args: (args as unknown) as Record, }); @@ -389,7 +389,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise>> => { return client.invoke>({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "decodeFunction", args: (args as unknown) as Record, }); @@ -400,7 +400,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerAddress", args: (args as unknown) as Record, }); @@ -411,7 +411,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerBalance", args: (args as unknown) as Record, }); @@ -422,7 +422,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getBalance", args: (args as unknown) as Record, }); @@ -433,7 +433,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getGasPrice", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "estimateEip1559Fees", args: (args as unknown) as Record, }); @@ -455,7 +455,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendRpc", args: (args as unknown) as Record, }); @@ -466,7 +466,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerTransactionCount", args: (args as unknown) as Record, }); @@ -477,7 +477,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "checkAddress", args: (args as unknown) as Record, }); @@ -488,7 +488,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toWei", args: (args as unknown) as Record, }); @@ -499,7 +499,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toEth", args: (args as unknown) as Record, }); @@ -510,7 +510,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateTransactionGas", args: (args as unknown) as Record, }); @@ -521,7 +521,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "awaitTransaction", args: (args as unknown) as Record, }); @@ -532,7 +532,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransaction", args: (args as unknown) as Record, }); @@ -543,7 +543,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransactionAndWait", args: (args as unknown) as Record, }); @@ -554,7 +554,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "deployContract", args: (args as unknown) as Record, }); @@ -565,7 +565,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateContractCallGas", args: (args as unknown) as Record, }); @@ -576,7 +576,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethod", args: (args as unknown) as Record, }); @@ -587,7 +587,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethodAndWait", args: (args as unknown) as Record, }); @@ -598,7 +598,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessage", args: (args as unknown) as Record, }); @@ -609,7 +609,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessageBytes", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts index 56b643e3f0..f72abef20c 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/wrap.info.ts @@ -1424,7 +1424,7 @@ export const manifest: WrapManifest = { "namespace": "Ethereum", "nativeType": "Module", "type": "Ethereum_Module", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "importedObjectTypes": [ @@ -1455,7 +1455,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Connection", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1530,7 +1530,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxOptions", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1563,7 +1563,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_StaticTxResult", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1596,7 +1596,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Eip1559FeesEstimate", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1743,7 +1743,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxRequest", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1788,7 +1788,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_AccessItem", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1997,7 +1997,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxReceipt", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2126,7 +2126,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Log", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2339,7 +2339,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxResponse", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "moduleType": { diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/schema.graphql b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts index f256e1fa5d..ef97e58ea6 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts @@ -46,13 +46,13 @@ export interface Object { /// Imported Objects START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Connection { node?: Types.String | null; networkNameOrChainId?: Types.String | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; maxFeePerGas?: Types.BigInt | null; @@ -62,19 +62,19 @@ export interface Ethereum_TxOptions { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_StaticTxResult { result: Types.String; error: Types.Boolean; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Eip1559FeesEstimate { maxFeePerGas: Types.BigInt; maxPriorityFeePerGas: Types.BigInt; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; @@ -90,13 +90,13 @@ export interface Ethereum_TxRequest { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_AccessItem { address: Types.String; storageKeys: Array; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxReceipt { to: Types.String; from: Types.String; @@ -116,7 +116,7 @@ export interface Ethereum_TxReceipt { status?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Log { blockNumber: Types.BigInt; blockHash: Types.String; @@ -129,7 +129,7 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxResponse { hash: Types.String; to?: Types.String | null; @@ -155,12 +155,12 @@ export interface Ethereum_TxResponse { /// Imported Modules START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; @@ -168,7 +168,7 @@ export interface Ethereum_Module_Args_callContractView { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractStatic { address: Types.String; method: Types.String; @@ -177,109 +177,109 @@ export interface Ethereum_Module_Args_callContractStatic { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_decodeFunction { method: Types.String; data: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerAddress { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerBalance { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getBalance { address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getGasPrice { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendRpc { method: Types.String; params: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerTransactionCount { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toWei { eth: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toEth { wei: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateTransactionGas { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_awaitTransaction { txHash: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransaction { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransactionAndWait { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_deployContract { abi: Types.String; bytecode: Types.String; @@ -288,7 +288,7 @@ export interface Ethereum_Module_Args_deployContract { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; @@ -297,7 +297,7 @@ export interface Ethereum_Module_Args_estimateContractCallGas { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethod { address: Types.String; method: Types.String; @@ -306,7 +306,7 @@ export interface Ethereum_Module_Args_callContractMethod { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethodAndWait { address: Types.String; method: Types.String; @@ -315,26 +315,26 @@ export interface Ethereum_Module_Args_callContractMethodAndWait { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessage { message: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessageBytes { bytes: Types.Bytes; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export const Ethereum_Module = { getChainId: async ( args: Ethereum_Module_Args_getChainId, client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "getChainId", args: (args as unknown) as Record, }); @@ -345,7 +345,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractView", args: (args as unknown) as Record, }); @@ -356,7 +356,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractStatic", args: (args as unknown) as Record, }); @@ -367,7 +367,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeParams", args: (args as unknown) as Record, }); @@ -378,7 +378,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeFunction", args: (args as unknown) as Record, }); @@ -389,7 +389,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise>> => { return client.invoke>({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "decodeFunction", args: (args as unknown) as Record, }); @@ -400,7 +400,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerAddress", args: (args as unknown) as Record, }); @@ -411,7 +411,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerBalance", args: (args as unknown) as Record, }); @@ -422,7 +422,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getBalance", args: (args as unknown) as Record, }); @@ -433,7 +433,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getGasPrice", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateEip1559Fees", args: (args as unknown) as Record, }); @@ -455,7 +455,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendRpc", args: (args as unknown) as Record, }); @@ -466,7 +466,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerTransactionCount", args: (args as unknown) as Record, }); @@ -477,7 +477,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "checkAddress", args: (args as unknown) as Record, }); @@ -488,7 +488,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toWei", args: (args as unknown) as Record, }); @@ -499,7 +499,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toEth", args: (args as unknown) as Record, }); @@ -510,7 +510,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateTransactionGas", args: (args as unknown) as Record, }); @@ -521,7 +521,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "awaitTransaction", args: (args as unknown) as Record, }); @@ -532,7 +532,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransaction", args: (args as unknown) as Record, }); @@ -543,7 +543,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransactionAndWait", args: (args as unknown) as Record, }); @@ -554,7 +554,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "deployContract", args: (args as unknown) as Record, }); @@ -565,7 +565,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateContractCallGas", args: (args as unknown) as Record, }); @@ -576,7 +576,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethod", args: (args as unknown) as Record, }); @@ -587,7 +587,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethodAndWait", args: (args as unknown) as Record, }); @@ -598,7 +598,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessage", args: (args as unknown) as Record, }); @@ -609,7 +609,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessageBytes", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts index 0bc0bc4493..c246ca83a2 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/wrap.info.ts @@ -1424,7 +1424,7 @@ export const manifest: WrapManifest = { "namespace": "Ethereum", "nativeType": "Module", "type": "Ethereum_Module", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "importedObjectTypes": [ @@ -1455,7 +1455,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Connection", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1530,7 +1530,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxOptions", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1563,7 +1563,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_StaticTxResult", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1596,7 +1596,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Eip1559FeesEstimate", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1743,7 +1743,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxRequest", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1788,7 +1788,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_AccessItem", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1997,7 +1997,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxReceipt", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2126,7 +2126,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Log", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2339,7 +2339,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxResponse", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "moduleType": { diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/schema.graphql b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/schema.graphql index e6a76ae4db..224cc9abfa 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { method( diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts index f3f5502cf5..6babed6676 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts @@ -46,13 +46,13 @@ export interface Object { /// Imported Objects START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Connection { node?: Types.String | null; networkNameOrChainId?: Types.String | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; maxFeePerGas?: Types.BigInt | null; @@ -62,19 +62,19 @@ export interface Ethereum_TxOptions { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_StaticTxResult { result: Types.String; error: Types.Boolean; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Eip1559FeesEstimate { maxFeePerGas: Types.BigInt; maxPriorityFeePerGas: Types.BigInt; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; @@ -90,13 +90,13 @@ export interface Ethereum_TxRequest { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_AccessItem { address: Types.String; storageKeys: Array; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxReceipt { to: Types.String; from: Types.String; @@ -116,7 +116,7 @@ export interface Ethereum_TxReceipt { status?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Log { blockNumber: Types.BigInt; blockHash: Types.String; @@ -129,7 +129,7 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxResponse { hash: Types.String; to?: Types.String | null; @@ -155,12 +155,12 @@ export interface Ethereum_TxResponse { /// Imported Modules START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; @@ -168,7 +168,7 @@ export interface Ethereum_Module_Args_callContractView { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractStatic { address: Types.String; method: Types.String; @@ -177,109 +177,109 @@ export interface Ethereum_Module_Args_callContractStatic { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_decodeFunction { method: Types.String; data: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerAddress { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerBalance { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getBalance { address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getGasPrice { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendRpc { method: Types.String; params: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerTransactionCount { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toWei { eth: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toEth { wei: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateTransactionGas { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_awaitTransaction { txHash: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransaction { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransactionAndWait { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_deployContract { abi: Types.String; bytecode: Types.String; @@ -288,7 +288,7 @@ export interface Ethereum_Module_Args_deployContract { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; @@ -297,7 +297,7 @@ export interface Ethereum_Module_Args_estimateContractCallGas { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethod { address: Types.String; method: Types.String; @@ -306,7 +306,7 @@ export interface Ethereum_Module_Args_callContractMethod { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethodAndWait { address: Types.String; method: Types.String; @@ -315,26 +315,26 @@ export interface Ethereum_Module_Args_callContractMethodAndWait { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessage { message: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessageBytes { bytes: Types.Bytes; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export const Ethereum_Module = { getChainId: async ( args: Ethereum_Module_Args_getChainId, client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "getChainId", args: (args as unknown) as Record, }); @@ -345,7 +345,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractView", args: (args as unknown) as Record, }); @@ -356,7 +356,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractStatic", args: (args as unknown) as Record, }); @@ -367,7 +367,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeParams", args: (args as unknown) as Record, }); @@ -378,7 +378,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeFunction", args: (args as unknown) as Record, }); @@ -389,7 +389,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise>> => { return client.invoke>({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "decodeFunction", args: (args as unknown) as Record, }); @@ -400,7 +400,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerAddress", args: (args as unknown) as Record, }); @@ -411,7 +411,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerBalance", args: (args as unknown) as Record, }); @@ -422,7 +422,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getBalance", args: (args as unknown) as Record, }); @@ -433,7 +433,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getGasPrice", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "estimateEip1559Fees", args: (args as unknown) as Record, }); @@ -455,7 +455,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendRpc", args: (args as unknown) as Record, }); @@ -466,7 +466,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerTransactionCount", args: (args as unknown) as Record, }); @@ -477,7 +477,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "checkAddress", args: (args as unknown) as Record, }); @@ -488,7 +488,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toWei", args: (args as unknown) as Record, }); @@ -499,7 +499,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toEth", args: (args as unknown) as Record, }); @@ -510,7 +510,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "estimateTransactionGas", args: (args as unknown) as Record, }); @@ -521,7 +521,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "awaitTransaction", args: (args as unknown) as Record, }); @@ -532,7 +532,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "sendTransaction", args: (args as unknown) as Record, }); @@ -543,7 +543,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransactionAndWait", args: (args as unknown) as Record, }); @@ -554,7 +554,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "deployContract", args: (args as unknown) as Record, }); @@ -565,7 +565,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateContractCallGas", args: (args as unknown) as Record, }); @@ -576,7 +576,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethod", args: (args as unknown) as Record, }); @@ -587,7 +587,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethodAndWait", args: (args as unknown) as Record, }); @@ -598,7 +598,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessage", args: (args as unknown) as Record, }); @@ -609,7 +609,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessageBytes", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts index 56b643e3f0..f72abef20c 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/wrap.info.ts @@ -1424,7 +1424,7 @@ export const manifest: WrapManifest = { "namespace": "Ethereum", "nativeType": "Module", "type": "Ethereum_Module", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "importedObjectTypes": [ @@ -1455,7 +1455,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Connection", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1530,7 +1530,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxOptions", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1563,7 +1563,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_StaticTxResult", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1596,7 +1596,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Eip1559FeesEstimate", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1743,7 +1743,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxRequest", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1788,7 +1788,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_AccessItem", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1997,7 +1997,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxReceipt", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2126,7 +2126,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Log", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2339,7 +2339,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxResponse", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "moduleType": { diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/schema.graphql b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts index f256e1fa5d..ef97e58ea6 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts @@ -46,13 +46,13 @@ export interface Object { /// Imported Objects START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Connection { node?: Types.String | null; networkNameOrChainId?: Types.String | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxOptions { gasLimit?: Types.BigInt | null; maxFeePerGas?: Types.BigInt | null; @@ -62,19 +62,19 @@ export interface Ethereum_TxOptions { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_StaticTxResult { result: Types.String; error: Types.Boolean; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Eip1559FeesEstimate { maxFeePerGas: Types.BigInt; maxPriorityFeePerGas: Types.BigInt; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxRequest { to?: Types.String | null; from?: Types.String | null; @@ -90,13 +90,13 @@ export interface Ethereum_TxRequest { nonce?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_AccessItem { address: Types.String; storageKeys: Array; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxReceipt { to: Types.String; from: Types.String; @@ -116,7 +116,7 @@ export interface Ethereum_TxReceipt { status?: Types.UInt32 | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Log { blockNumber: Types.BigInt; blockHash: Types.String; @@ -129,7 +129,7 @@ export interface Ethereum_Log { logIndex: Types.UInt32; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_TxResponse { hash: Types.String; to?: Types.String | null; @@ -155,12 +155,12 @@ export interface Ethereum_TxResponse { /// Imported Modules START /// -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getChainId { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractView { address: Types.String; method: Types.String; @@ -168,7 +168,7 @@ export interface Ethereum_Module_Args_callContractView { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractStatic { address: Types.String; method: Types.String; @@ -177,109 +177,109 @@ export interface Ethereum_Module_Args_callContractStatic { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeParams { types: Array; values: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_encodeFunction { method: Types.String; args?: Array | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_decodeFunction { method: Types.String; data: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerAddress { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerBalance { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getBalance { address: Types.String; blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getGasPrice { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateEip1559Fees { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendRpc { method: Types.String; params: Array; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_getSignerTransactionCount { blockTag?: Types.BigInt | null; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_checkAddress { address: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toWei { eth: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_toEth { wei: Types.String; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateTransactionGas { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_awaitTransaction { txHash: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransaction { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_sendTransactionAndWait { tx: Types.Ethereum_TxRequest; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_deployContract { abi: Types.String; bytecode: Types.String; @@ -288,7 +288,7 @@ export interface Ethereum_Module_Args_deployContract { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_estimateContractCallGas { address: Types.String; method: Types.String; @@ -297,7 +297,7 @@ export interface Ethereum_Module_Args_estimateContractCallGas { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethod { address: Types.String; method: Types.String; @@ -306,7 +306,7 @@ export interface Ethereum_Module_Args_callContractMethod { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_callContractMethodAndWait { address: Types.String; method: Types.String; @@ -315,26 +315,26 @@ export interface Ethereum_Module_Args_callContractMethodAndWait { connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessage { message: Types.String; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export interface Ethereum_Module_Args_signMessageBytes { bytes: Types.Bytes; connection?: Types.Ethereum_Connection | null; } -/* URI: "ens/ethereum.polywrap.eth" */ +/* URI: "ens/wraps.eth:ethereum@1.0.0" */ export const Ethereum_Module = { getChainId: async ( args: Ethereum_Module_Args_getChainId, client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/ethereum.polywrap.eth", + uri: "ens/wraps.eth:ethereum@1.0.0", method: "getChainId", args: (args as unknown) as Record, }); @@ -345,7 +345,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractView", args: (args as unknown) as Record, }); @@ -356,7 +356,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractStatic", args: (args as unknown) as Record, }); @@ -367,7 +367,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeParams", args: (args as unknown) as Record, }); @@ -378,7 +378,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "encodeFunction", args: (args as unknown) as Record, }); @@ -389,7 +389,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise>> => { return client.invoke>({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "decodeFunction", args: (args as unknown) as Record, }); @@ -400,7 +400,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerAddress", args: (args as unknown) as Record, }); @@ -411,7 +411,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerBalance", args: (args as unknown) as Record, }); @@ -422,7 +422,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getBalance", args: (args as unknown) as Record, }); @@ -433,7 +433,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getGasPrice", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateEip1559Fees", args: (args as unknown) as Record, }); @@ -455,7 +455,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendRpc", args: (args as unknown) as Record, }); @@ -466,7 +466,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getSignerTransactionCount", args: (args as unknown) as Record, }); @@ -477,7 +477,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "checkAddress", args: (args as unknown) as Record, }); @@ -488,7 +488,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toWei", args: (args as unknown) as Record, }); @@ -499,7 +499,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "toEth", args: (args as unknown) as Record, }); @@ -510,7 +510,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateTransactionGas", args: (args as unknown) as Record, }); @@ -521,7 +521,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "awaitTransaction", args: (args as unknown) as Record, }); @@ -532,7 +532,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransaction", args: (args as unknown) as Record, }); @@ -543,7 +543,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransactionAndWait", args: (args as unknown) as Record, }); @@ -554,7 +554,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "deployContract", args: (args as unknown) as Record, }); @@ -565,7 +565,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateContractCallGas", args: (args as unknown) as Record, }); @@ -576,7 +576,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethod", args: (args as unknown) as Record, }); @@ -587,7 +587,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "callContractMethodAndWait", args: (args as unknown) as Record, }); @@ -598,7 +598,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessage", args: (args as unknown) as Record, }); @@ -609,7 +609,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: Uri.from("ens/ethereum.polywrap.eth"), + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "signMessageBytes", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts index 56b643e3f0..f72abef20c 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/wrap.info.ts @@ -1424,7 +1424,7 @@ export const manifest: WrapManifest = { "namespace": "Ethereum", "nativeType": "Module", "type": "Ethereum_Module", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "importedObjectTypes": [ @@ -1455,7 +1455,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Connection", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1530,7 +1530,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxOptions", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1563,7 +1563,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_StaticTxResult", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1596,7 +1596,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Eip1559FeesEstimate", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1743,7 +1743,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxRequest", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1788,7 +1788,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_AccessItem", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -1997,7 +1997,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxReceipt", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2126,7 +2126,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_Log", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" }, { "kind": 1025, @@ -2339,7 +2339,7 @@ export const manifest: WrapManifest = { } ], "type": "Ethereum_TxResponse", - "uri": "ens/ethereum.polywrap.eth" + "uri": "ens/wraps.eth:ethereum@1.0.0" } ], "moduleType": { diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/schema.graphql b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/schema.graphql index acad0ae76c..4406bc74ce 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/schema.graphql +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/schema.graphql @@ -1,4 +1,4 @@ -#import { Module } into Ethereum from "ens/ethereum.polywrap.eth" +#import { Module } into Ethereum from "ens/wraps.eth:ethereum@1.0.0" type Module { methodOne( From 0b9e0dfaaa8b5b5e26df24e3d718ee029da92370 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 18:55:25 +0530 Subject: [PATCH 43/51] added fallback ipfs providers to test configs --- .../js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 2 ++ .../ens-resolver/src/__tests__/helpers/getClient.ts | 2 ++ 2 files changed, 4 insertions(+) diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index 5bf85f114d..d5bb043350 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -18,6 +18,7 @@ import { defaultInterfaces, defaultEmbeddedPackages, defaultPackages, + defaultIpfsProviders, } from "@polywrap/client-config-builder-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; @@ -38,6 +39,7 @@ export const getClientWithEnsAndIpfs = () => { uri: defaultPackages.ipfsResolver, env: { provider: providers.ipfs, + fallbackProviders: defaultIpfsProviders, retries: { tryResolveUri: 1, getFile: 1 }, }, }, diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index 349de33d20..fceec729f6 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -16,6 +16,7 @@ import { defaultEmbeddedPackages, defaultInterfaces, defaultPackages, + defaultIpfsProviders } from "@polywrap/client-config-builder-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; import { Uri } from "@polywrap/core-js"; @@ -27,6 +28,7 @@ export const getClient = () => { uri: defaultPackages.ipfsResolver, env: { provider: providers.ipfs, + fallbackProviders: defaultIpfsProviders, retries: { tryResolveUri: 1, getFile: 1 }, }, }], From 4e481ebf6dcbdd21d3581869665679cc26ac9cda Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 20:43:51 +0530 Subject: [PATCH 44/51] added ens text record resolver to config in client tests; updated ethereum URI in wrapper-envs.yaml for option parser unit test in CLI --- .../src/__tests__/unit/option-parsers/samples/wrapper-envs.yaml | 2 +- .../js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.yaml b/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.yaml index 9587221fbf..dcaa2a8649 100644 --- a/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.yaml +++ b/packages/cli/src/__tests__/unit/option-parsers/samples/wrapper-envs.yaml @@ -1,6 +1,6 @@ ens/hello-world.polywrap.eth: foo: bar -ens/ethereum.polywrap.eth: +ens/wraps.eth:ethereum@1.0.0: connection: node: https://mainnet.infura.io/v3/some_api_key networkNameOrChainId: mainnet diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index d5bb043350..fc4c59bc95 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -19,6 +19,7 @@ import { defaultEmbeddedPackages, defaultPackages, defaultIpfsProviders, + defaultWrappers, } from "@polywrap/client-config-builder-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; @@ -51,6 +52,7 @@ export const getClientWithEnsAndIpfs = () => { defaultPackages.ipfsResolver, defaultPackages.ensResolver, defaultPackages.fileSystemResolver, + defaultWrappers.ensTextRecordResolver, ], }, { From 0f2d7094756dc04914a7d9d510ba84b99b1f6b14 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 21:15:42 +0530 Subject: [PATCH 45/51] fixed uri in app codegen test case 002 --- .../cases/cli/app/codegen/002-with-plugin/schema.graphql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/test-cases/cases/cli/app/codegen/002-with-plugin/schema.graphql b/packages/test-cases/cases/cli/app/codegen/002-with-plugin/schema.graphql index 8872a21fb3..0c8d5330c9 100644 --- a/packages/test-cases/cases/cli/app/codegen/002-with-plugin/schema.graphql +++ b/packages/test-cases/cases/cli/app/codegen/002-with-plugin/schema.graphql @@ -1 +1 @@ -#import * into HTTP from "wrap://ens/wraps.eth:http@1.0.0" +#import * into HTTP from "wrap://ens/wraps.eth:http@1.1.0" From 04fe7b3c8c8f6f0138aeeb7d3522c761a76ce9e3 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 21:51:59 +0530 Subject: [PATCH 46/51] fixed uris some plugin codegen test cases --- .../cli/plugin/codegen/001-sanity/expected/wrap/types.ts | 4 ++-- .../codegen/002-single-module/expected/wrap/types.ts | 2 +- .../codegen/005-custom-config/expected/wrap/types.ts | 8 ++++---- .../006-custom-manifest-file/expected/wrap/types.ts | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts index 766858f18a..aa17008742 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/001-sanity/expected/wrap/types.ts @@ -334,7 +334,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getChainId", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateEip1559Fees", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts index ef97e58ea6..aa17008742 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/002-single-module/expected/wrap/types.ts @@ -334,7 +334,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getChainId", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts index 6babed6676..aa17008742 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/005-custom-config/expected/wrap/types.ts @@ -334,7 +334,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getChainId", args: (args as unknown) as Record, }); @@ -444,7 +444,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateEip1559Fees", args: (args as unknown) as Record, }); @@ -510,7 +510,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "estimateTransactionGas", args: (args as unknown) as Record, }); @@ -532,7 +532,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "sendTransaction", args: (args as unknown) as Record, }); diff --git a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts index ef97e58ea6..aa17008742 100644 --- a/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts +++ b/packages/test-cases/cases/cli/plugin/codegen/006-custom-manifest-file/expected/wrap/types.ts @@ -334,7 +334,7 @@ export const Ethereum_Module = { client: CoreClient ): Promise> => { return client.invoke({ - uri: "ens/wraps.eth:ethereum@1.0.0", + uri: Uri.from("ens/wraps.eth:ethereum@1.0.0"), method: "getChainId", args: (args as unknown) as Record, }); From b8fb20ca715f9f11b3a70514fcac256a4a1b3e14 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Wed, 15 Feb 2023 22:35:13 +0530 Subject: [PATCH 47/51] increased ipfs retry value --- .../js/client-config-builder/src/bundles/getDefaultConfig.ts | 2 +- .../js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index 9c493da83c..b8417256a6 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -89,7 +89,7 @@ export const getDefaultConfig = (): BuilderConfig => ({ [defaultPackages.ipfsResolver]: { provider: defaultIpfsProviders[0], fallbackProviders: defaultIpfsProviders.slice(1), - retries: { tryResolveUri: 1, getFile: 1 }, + retries: { tryResolveUri: 2, getFile: 2 }, }, }, interfaces: { diff --git a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts index fc4c59bc95..4669f20a53 100644 --- a/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts +++ b/packages/js/client/src/__tests__/helpers/getClientWithEnsAndIpfs.ts @@ -41,7 +41,7 @@ export const getClientWithEnsAndIpfs = () => { env: { provider: providers.ipfs, fallbackProviders: defaultIpfsProviders, - retries: { tryResolveUri: 1, getFile: 1 }, + retries: { tryResolveUri: 2, getFile: 2 }, }, }, ], From 4850e07eefc8901a4bba660569659671fef8739c Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 16 Feb 2023 17:42:38 +0530 Subject: [PATCH 48/51] updated version of ethereum-provider-js and replaced ethereum/ens ipfs uris with ens text record uris --- packages/cli/package.json | 2 +- packages/js/client-config-builder/README.md | 6 +- .../js/client-config-builder/package.json | 2 +- .../src/bundles/getDefaultConfig.ts | 4 +- packages/js/client/package.json | 2 +- .../uri-resolvers/ens-resolver/package.json | 2 +- .../uri-resolvers/ens-resolver/polywrap.yaml | 4 + .../schema.ethereum-provider.graphql | 33 +++ .../ens-resolver/schema.ethereum.graphql | 268 ++++++++++++++++++ .../src/__tests__/helpers/getClient.ts | 4 +- .../ens-resolver/src/schema.graphql | 2 +- yarn.lock | 8 +- 12 files changed, 322 insertions(+), 15 deletions(-) create mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql create mode 100644 packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql diff --git a/packages/cli/package.json b/packages/cli/package.json index a755c7f05d..7dc140b5d5 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -47,7 +47,7 @@ "@polywrap/client-js": "0.10.0-pre.7", "@polywrap/core-js": "0.10.0-pre.7", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.4", + "ethereum-provider-js": "0.1.7", "@polywrap/ipfs-plugin-js": "0.10.0-pre.7", "@polywrap/ipfs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/fs-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 61119cd539..392354d8a1 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -453,8 +453,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", - ethereum: "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", - ens: "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", + ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", // "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", + ens: "wrap://ens/wraps.eth:ens@1.0.0", // "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", }; export const defaultPackages = { @@ -508,7 +508,7 @@ export const getDefaultConfig = (): BuilderConfig => ({ [defaultPackages.ipfsResolver]: { provider: defaultIpfsProviders[0], fallbackProviders: defaultIpfsProviders.slice(1), - retries: { tryResolveUri: 1, getFile: 1 }, + retries: { tryResolveUri: 2, getFile: 2 }, }, }, interfaces: { diff --git a/packages/js/client-config-builder/package.json b/packages/js/client-config-builder/package.json index 387cff656f..b809d71bc8 100644 --- a/packages/js/client-config-builder/package.json +++ b/packages/js/client-config-builder/package.json @@ -25,7 +25,7 @@ "dependencies": { "@polywrap/core-js": "0.10.0-pre.7", "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.4", + "ethereum-provider-js": "0.1.7", "@polywrap/fs-plugin-js": "0.10.0-pre.7", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/http-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts index b8417256a6..595d786c78 100644 --- a/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts +++ b/packages/js/client-config-builder/src/bundles/getDefaultConfig.ts @@ -34,8 +34,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", - ethereum: "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", - ens: "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", + ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", + ens: "wrap://ens/wraps.eth:ens@1.0.0", }; export const defaultPackages = { diff --git a/packages/js/client/package.json b/packages/js/client/package.json index 8750b0f4f7..d6d5070b39 100644 --- a/packages/js/client/package.json +++ b/packages/js/client/package.json @@ -36,7 +36,7 @@ }, "devDependencies": { "@polywrap/ens-resolver-plugin-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.4", + "ethereum-provider-js": "0.1.7", "@polywrap/fs-plugin-js": "0.10.0-pre.7", "@polywrap/fs-resolver-plugin-js": "0.10.0-pre.7", "@polywrap/http-plugin-js": "0.10.0-pre.7", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/package.json b/packages/js/plugins/uri-resolvers/ens-resolver/package.json index 7acaf66a18..debfc1881c 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/package.json +++ b/packages/js/plugins/uri-resolvers/ens-resolver/package.json @@ -29,7 +29,7 @@ "devDependencies": { "@polywrap/client-js": "0.10.0-pre.7", "@polywrap/client-config-builder-js": "0.10.0-pre.7", - "ethereum-provider-js": "0.1.4", + "ethereum-provider-js": "0.1.7", "@polywrap/http-plugin-js": "0.10.0-pre.7", "@polywrap/wasm-js": "0.10.0-pre.7", "@types/jest": "26.0.8", diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml index 92b6e0b95f..5771d0c114 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml +++ b/packages/js/plugins/uri-resolvers/ens-resolver/polywrap.yaml @@ -8,3 +8,7 @@ source: import_abis: - uri: "ens/uri-resolver.core.polywrap.eth" abi: ../../../../interfaces/uri-resolver/build/wrap.info + - uri: "ens/wraps.eth:ethereum@1.0.0" + abi: ./schema.ethereum.graphql + - uri: "ens/wraps.eth:ethereum-provider@1.0.0" + abi: ./schema.ethereum-provider.graphql diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql new file mode 100644 index 0000000000..a7440103b8 --- /dev/null +++ b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum-provider.graphql @@ -0,0 +1,33 @@ +type Connection { + node: String + networkNameOrChainId: String +} + +type Module { + """ + Send a remote RPC request to the registered provider + """ + request(method: String!, params: String, connection: Connection): String! + + """ + Sign a message and return the signature. Throws if signer is missing. + """ + signMessage(message: Bytes!, connection: Connection): String! + + """ + Sign a serialized unsigned transaction and return the signature. Throws if signer is missing. + This method requires a wallet-based signer with a private key, and is not needed for most use cases. + Typically, transactions are sent by `request` and signed by the wallet. + """ + signTransaction(rlp: Bytes!, connection: Connection): String! + + """ + Get the ethereum address of the signer. Throws if signer is missing. + """ + address(connection: Connection): String! + + """ + Get the chain id of the signer's connection. Throws if signer is missing. + """ + chainId(connection: Connection): String! +} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql new file mode 100644 index 0000000000..9c4ab95357 --- /dev/null +++ b/packages/js/plugins/uri-resolvers/ens-resolver/schema.ethereum.graphql @@ -0,0 +1,268 @@ +#import { Module } into IProvider from "wrap://ens/wraps.eth:ethereum-provider@1.0.0" +#use { getImplementations } for IProvider + +type Connection { + node: String + networkNameOrChainId: String +} + +type TxRequest { + to: String + from: String + data: String + type: UInt32 + chainId: BigInt + accessList: [AccessItem!] + """Gas supplied for the transaction""" + gasLimit: BigInt + """ + The max total fee to pay per unit of gas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. + If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ + gasPrice: BigInt + """Ether value sent with transaction""" + value: BigInt + """Override default nonce""" + nonce: UInt32 +} + +type AccessItem { + address: String! + storageKeys: [String!]! +} + +type TxResponse { + hash: String! + to: String + from: String! + nonce: UInt32! + gasLimit: BigInt! + maxFeePerGas: BigInt + maxPriorityFeePerGas: BigInt + gasPrice: BigInt + value: BigInt! + chainId: BigInt! + blockNumber: BigInt + blockHash: String + timestamp: UInt32 + r: String + s: String + v: UInt32 + type: UInt32 + accessList: [AccessItem!] +} + +type Log { + blockNumber: BigInt! + blockHash: String! + transactionIndex: UInt32! + removed: Boolean! + address: String! + data: String! + topics: [String!]! + transactionHash: String! + logIndex: UInt32! +} + +type TxReceipt { + to: String! + from: String! + contractAddress: String! + transactionIndex: UInt32! + root: String + gasUsed: BigInt! + logsBloom: String! + transactionHash: String! + logs: [Log!]! + blockNumber: BigInt! + blockHash: String! + confirmations: UInt32! + cumulativeGasUsed: BigInt! + effectiveGasPrice: BigInt! + type: UInt32! + status: UInt32 +} + +type TxOptions { + """Gas supplied for the transaction""" + gasLimit: BigInt + """ + The max total fee to pay per unit of gas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxFeePerGas: BigInt + """ + The gas price paid is baseFeePerGas + maxPriorityFeePerGas. + The difference between maxFeePerGas and baseFeePerGas + maxPriorityFeePerGas is “refunded” to the user. + This property is ignored when gasPrice is not null. + """ + maxPriorityFeePerGas: BigInt + """ + The gas price for legacy transactions. + If this property is not null, a legacy transaction will be sent and maxFeePerGas and maxPriorityFeePerGas will be ignored. + """ + gasPrice: BigInt + """Ether value sent with transaction""" + value: BigInt + """Override default nonce""" + nonce: UInt32 +} + +type StaticTxResult { + result: String! + error: Boolean! +} + +type Eip1559FeesEstimate { + maxFeePerGas: BigInt! + maxPriorityFeePerGas: BigInt! +} + +type Module { + getChainId(connection: Connection): String! + + callContractView( + address: String! + method: String! + args: [String!] + connection: Connection + ): String! + + callContractStatic( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): StaticTxResult! + + encodeParams( + types: [String!]! + values: [String!]! + connection: Connection + ): String! + + encodeFunction( + method: String! + args: [String!] + connection: Connection + ): String! + + decodeFunction( + method: String! + data: String! + connection: Connection + ): [String!]! + + getSignerAddress(connection: Connection): String! + + getSignerBalance( + blockTag: BigInt + connection: Connection + ): BigInt! + + getBalance( + address: String! + blockTag: BigInt + connection: Connection + ): BigInt! + + getGasPrice(connection: Connection): BigInt! + + estimateEip1559Fees(connection: Connection): Eip1559FeesEstimate! + + sendRpc( + method: String! + params: [String!]! + connection: Connection + ): String! + + getSignerTransactionCount( + blockTag: BigInt + connection: Connection + ): BigInt! + + checkAddress( + address: String! + connection: Connection + ): Boolean! + + toWei(eth: String!): String! + + toEth(wei: String!): String! + + estimateTransactionGas( + tx: TxRequest! + connection: Connection + ): BigInt! + + awaitTransaction( + txHash: String! + connection: Connection + ): TxReceipt! + + sendTransaction( + tx: TxRequest! + connection: Connection + ): TxResponse! + + sendTransactionAndWait( + tx: TxRequest! + connection: Connection + ): TxReceipt! + + deployContract( + abi: String! + bytecode: String! + args: [String!] + options: TxOptions + connection: Connection + ): String! + + estimateContractCallGas( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): BigInt! + + callContractMethod( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): TxResponse! + + callContractMethodAndWait( + address: String! + method: String! + args: [String!] + options: TxOptions + connection: Connection + ): TxReceipt! + + signMessage( + message: String! + connection: Connection + ): String! + + signMessageBytes( + bytes: Bytes! + connection: Connection + ): String! +} diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts index fceec729f6..a369d444cb 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/__tests__/helpers/getClient.ts @@ -16,7 +16,8 @@ import { defaultEmbeddedPackages, defaultInterfaces, defaultPackages, - defaultIpfsProviders + defaultIpfsProviders, + defaultWrappers } from "@polywrap/client-config-builder-js"; import { httpPlugin } from "@polywrap/http-plugin-js"; import { Uri } from "@polywrap/core-js"; @@ -38,6 +39,7 @@ export const getClient = () => { implementations: [ defaultPackages.ipfsResolver, defaultPackages.ensResolver, + defaultWrappers.ensTextRecordResolver, ], }, { diff --git a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql index 64697ef074..eed4a9d107 100644 --- a/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql +++ b/packages/js/plugins/uri-resolvers/ens-resolver/src/schema.graphql @@ -1,4 +1,4 @@ #import { Module, MaybeUriOrManifest } into UriResolver from "ens/uri-resolver.core.polywrap.eth" -#import { Module } into Ethereum from "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15" +#import { Module } into Ethereum from "wrap://ens/wraps.eth:ethereum@1.0.0" type Module implements UriResolver_Module { } diff --git a/yarn.lock b/yarn.lock index 96a911a66f..b14af5a4a2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4705,10 +4705,10 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -ethereum-provider-js@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.4.tgz#c372a011005dfd854dab97f7b8774d542917b2ec" - integrity sha512-TxABRi+Dp+ZBTHdLj5btGc7xwWNBTxJrRxp+0fK5ovUBfgnuCyMQuUOT48JNJybhALqiU9iZUPN1g0/MXhnQEg== +ethereum-provider-js@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/ethereum-provider-js/-/ethereum-provider-js-0.1.7.tgz#a340545c267b7068c9ff697ba5e891c20d6bc5a8" + integrity sha512-x//Mdfhsw3IJPemWufLtZX7JkOFRJ8vVGHkFLjdwDew/EErNq4aV3UfjMylcmeP21WVoOmZzNyljEMtvQFng4w== dependencies: "@ethersproject/address" "5.7.0" "@ethersproject/providers" "5.7.0" From 469e757245175f6389879fc2c5af7388d8e1a376 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 16 Feb 2023 18:07:19 +0530 Subject: [PATCH 49/51] replaced old ens text record resolver ipfs uri with updated version in uri resolution tests --- packages/js/client-config-builder/README.md | 4 ++-- ...can resolve a URI resolver extension wrapper.json | 8 ++++---- ... redirecting by a URI resolver extension - 1.json | 8 ++++---- ... redirecting by a URI resolver extension - 2.json | 2 +- ... infinite recursion when resolved at runtime.json | 8 ++++---- ...lution after URI resolver extension redirect.json | 8 ++++---- .../core/uri-resolution/histories/sanity.json | 12 ++++++------ .../core/uri-resolution/uri-resolution.spec.ts | 2 ++ 8 files changed, 27 insertions(+), 25 deletions(-) diff --git a/packages/js/client-config-builder/README.md b/packages/js/client-config-builder/README.md index 392354d8a1..51369c2811 100644 --- a/packages/js/client-config-builder/README.md +++ b/packages/js/client-config-builder/README.md @@ -453,8 +453,8 @@ export const defaultWrappers = { graphNode: "wrap://ens/wraps.eth:graph-node@1.0.0", ensTextRecordResolver: "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p", - ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", // "wrap://ipfs/QmU9HjvLSJNXewQCjhPPTKzWxWhavsRUv1C1J92GR7uw15", - ens: "wrap://ens/wraps.eth:ens@1.0.0", // "wrap://ipfs/QmaUR5ZQANrbRZBv6RHVse4ZRqmMBbD4xTegAzVwYB4uoB", + ethereum: "wrap://ens/wraps.eth:ethereum@1.0.0", + ens: "wrap://ens/wraps.eth:ens@1.0.0", }; export const defaultPackages = { diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json index 31b29e6cb7..5a33de9b00 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve a URI resolver extension wrapper.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json index da5798b959..d8d972272b 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 1.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json index 2fafbee250..26ded39662 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/can resolve previously cached URI after redirecting by a URI resolver extension - 2.json @@ -9,7 +9,7 @@ "wrap://package/ens-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ens-resolver)", "wrap://package/fs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/fs-resolver)", "wrap://package/http-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/http-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", "wrap://file/$root-wrapper-dir/simple-fs-resolver/build => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://file/$root-wrapper-dir/simple-fs-resolver/build)", "wrap://file/$root-wrapper-dir/simple-redirect-resolver/build => PackageToWrapperCacheResolver => wrapper (wrap://file/$root-wrapper-dir/simple-redirect-resolver/build)", [ diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json index 35b2b6a3ed..22ef0631b1 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json index d381cb1ed2..8999bd254e 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/restarts URI resolution after URI resolver extension redirect.json @@ -33,14 +33,14 @@ "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" ] ], - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ], diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index dfb303b799..8a2f08462b 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -38,19 +38,19 @@ ] ], "wrap://ens/uri.eth => ResolverExtension (wrap://package/http-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => UriResolverAggregator => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => StaticResolver - Miss", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ExtendableUriResolver => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => StaticResolver - Miss", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", [ "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ], - "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmQT6s8aAvcc1YKMahpKrzCAH9mzhWBGkXKCXq4uKGiP3W)" + "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] ] diff --git a/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts b/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts index 5514f97908..499635784d 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts +++ b/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts @@ -121,6 +121,8 @@ describe("URI resolution", () => { const resolutionContext = new UriResolutionContext(); const result = await client.tryResolveUri({ uri, resolutionContext }); + console.log(JSON.stringify(buildCleanUriHistory(resolutionContext.getHistory()), null, 2)); + await expectResultWithHistory( result, UriResolutionResult.ok(uri), From 63fb18247dc8ff34197ea4804e5dc775fa74a557 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 16 Feb 2023 18:24:15 +0530 Subject: [PATCH 50/51] update yarn lock --- yarn.lock | 63 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/yarn.lock b/yarn.lock index 15bac98c38..8c526e5796 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2170,6 +2170,11 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.6.0.tgz#ed410c9eb0070491cff9fe914246ce41f88d6f74" integrity sha512-aPfcBeLErM/PPiAuAbNFLN5sNbZLc3KZlar27uohllN8Zs6jJbHyJU1y7cMA6W/zuq+thkaG8mujiS+3iD/FWQ== +"@polywrap/asyncify-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/asyncify-js/-/asyncify-js-0.10.0-pre.7.tgz#1edd34d5edd6bd1c34e6124ad1e6c6a34c2f51b7" + integrity sha512-egvWNt6mjfsO0TQImHIifAFmV9pn+LbHzDJhsUyLrKJo0Z9/QkMjOkMhR+NOqn6SeymCa+wFEWVbHe2YUSP8dg== + "@polywrap/core-js@0.10.0-pre.5": version "0.10.0-pre.8" dependencies: @@ -2274,11 +2279,69 @@ "@polywrap/tracing-js" "0.10.0-pre.8" "@polywrap/wrap-manifest-types-js" "0.10.0-pre.8" +"@polywrap/result@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/result/-/result-0.10.0-pre.7.tgz#0805b8c78f505eb4ade9c79c638f559b89ce7750" + integrity sha512-yxY8urJ+8sCwwdjMhZalt/5xzsGkBxbrPRIRJOQc85Qk2RRcm1khpmrFggCE2OY93gUueRXKH94Gd2biCjd+bg== + +"@polywrap/tracing-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/tracing-js/-/tracing-js-0.10.0-pre.7.tgz#8866bbc6d9cc834499d2e3460c90b80e26c5e682" + integrity sha512-26uVWLJ2WBwcbY1wTFaWaItktMUI/QTMwvewu2pnQhdowXsviubaxn9txM2Of0orBOiM2aZ4djBUlcVpSr5vZg== + dependencies: + "@fetsorn/opentelemetry-console-exporter" "0.0.3" + "@opentelemetry/api" "1.2.0" + "@opentelemetry/exporter-trace-otlp-http" "0.32.0" + "@opentelemetry/resources" "1.6.0" + "@opentelemetry/sdk-trace-base" "1.6.0" + "@opentelemetry/sdk-trace-web" "1.6.0" + +"@polywrap/uri-resolver-extensions-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolver-extensions-js/-/uri-resolver-extensions-js-0.10.0-pre.7.tgz#e648ea74f94953ccc56e4fe04311d5335fb333a2" + integrity sha512-B0yxYizkCwHWM3N6Qa2CCCCNQdNbhUSx+yBCbdt0bSGSkjj+zunY6vcHIaNDs75mgMpxUhziX2hS5eLNsyWQTg== + dependencies: + "@polywrap/core-js" "0.10.0-pre.7" + "@polywrap/result" "0.10.0-pre.7" + "@polywrap/uri-resolvers-js" "0.10.0-pre.7" + "@polywrap/wasm-js" "0.10.0-pre.7" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + +"@polywrap/uri-resolvers-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/uri-resolvers-js/-/uri-resolvers-js-0.10.0-pre.7.tgz#e7bace9fd8a17c8c5b80a0bd0870e7219f0376af" + integrity sha512-l/BJ5vuDOaXWs0vAL0V52SNY68YAgIROPoGcw6LXstajBNg1srOeZHOQFDHr4hhWD+YnEga7q+6N/iZMSEFiCA== + dependencies: + "@polywrap/core-js" "0.10.0-pre.7" + "@polywrap/result" "0.10.0-pre.7" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + +"@polywrap/wasm-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/wasm-js/-/wasm-js-0.10.0-pre.7.tgz#fa44cc32883a66256b2c70ca44a74a7fa7b03caa" + integrity sha512-eRt2widiDd+8oY23oQ/11vNvp7Ur+0dr4Sbqp6XiWuoXEIKUFiD0MiFluhSnZp/Yo8u6dkkYpgR1DwHduJ7bcQ== + dependencies: + "@polywrap/asyncify-js" "0.10.0-pre.7" + "@polywrap/core-js" "0.10.0-pre.7" + "@polywrap/msgpack-js" "0.10.0-pre.7" + "@polywrap/result" "0.10.0-pre.7" + "@polywrap/tracing-js" "0.10.0-pre.7" + "@polywrap/wrap-manifest-types-js" "0.10.0-pre.7" + "@polywrap/wrap-manifest-schemas@0.9.3": version "0.9.3" resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-schemas/-/wrap-manifest-schemas-0.9.3.tgz#cdf950bb8951fba72afd8300aaf9a0a8159d7c37" integrity sha512-+IW/NEnJUlZKIL+UCpiTThHbvgEek6qWjkTCX1glPh6Q6sryFZ/X37sb9PkRuxiHi7ZMWBZt9hnNPhvTAdgL3A== +"@polywrap/wrap-manifest-types-js@0.10.0-pre.7": + version "0.10.0-pre.7" + resolved "https://registry.yarnpkg.com/@polywrap/wrap-manifest-types-js/-/wrap-manifest-types-js-0.10.0-pre.7.tgz#adf8758cc99d52c0cba52e559dcc5d186eb0a15c" + integrity sha512-UlX9FOJyh1vcuKkKXwo2rvt1g4eiJQRj2BakNWA0qdrVGER1abhRyEYCbogOgiooloCHkMQ7Vqz6Lv3pLvHRsQ== + dependencies: + json-schema-ref-parser "9.0.9" + jsonschema "1.4.0" + semver "7.3.5" + "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" From 982c1bed6f1cf4e00155d00be7e3ee375ea7f9d0 Mon Sep 17 00:00:00 2001 From: krisbitney Date: Thu, 16 Feb 2023 19:28:27 +0530 Subject: [PATCH 51/51] updated uri resolution tests --- ...te recursion when resolved at runtime.json | 28 ++---------------- .../core/uri-resolution/histories/sanity.json | 29 ++----------------- .../uri-resolution/uri-resolution.spec.ts | 2 -- 3 files changed, 6 insertions(+), 53 deletions(-) diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json index 22ef0631b1..0f6a604bb0 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/custom wrapper resolver does not cause infinite recursion when resolved at runtime.json @@ -19,31 +19,9 @@ "wrap://package/ens-resolver => StaticResolver - Package (wrap://package/ens-resolver) => package (wrap://package/ens-resolver)" ] ], - "wrap://package/fs-resolver => PackageToWrapperCacheResolver => wrapper (wrap://package/fs-resolver)", - [ - "wrap://package/fs-resolver => UriResolverAggregator => package (wrap://package/fs-resolver)", - [ - "wrap://package/fs-resolver => StaticResolver - Package (wrap://package/fs-resolver) => package (wrap://package/fs-resolver)" - ] - ], - "wrap://package/http-resolver => PackageToWrapperCacheResolver => wrapper (wrap://package/http-resolver)", - [ - "wrap://package/http-resolver => UriResolverAggregator => package (wrap://package/http-resolver)", - [ - "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" - ] - ], - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" - ] - ] - ], + "wrap://package/fs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/fs-resolver)", + "wrap://package/http-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/http-resolver)", + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", "wrap://ens/test.eth => ResolverExtension (wrap://ens/undefined-resolver.eth) => error (While resolving wrap://ens/test.eth with URI resolver extension wrap://ens/undefined-resolver.eth, the extension could not be fully resolved. Last tried URI is wrap://ens/undefined-resolver.eth)" ] ] diff --git a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json index 8a2f08462b..1fe9d12263 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json +++ b/packages/js/client/src/__tests__/core/uri-resolution/histories/sanity.json @@ -22,34 +22,11 @@ ] ], "wrap://ens/uri.eth => ResolverExtension (wrap://package/ens-resolver)", - "wrap://package/fs-resolver => PackageToWrapperCacheResolver => wrapper (wrap://package/fs-resolver)", - [ - "wrap://package/fs-resolver => UriResolverAggregator => package (wrap://package/fs-resolver)", - [ - "wrap://package/fs-resolver => StaticResolver - Package (wrap://package/fs-resolver) => package (wrap://package/fs-resolver)" - ] - ], + "wrap://package/fs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/fs-resolver)", "wrap://ens/uri.eth => ResolverExtension (wrap://package/fs-resolver)", - "wrap://package/http-resolver => PackageToWrapperCacheResolver => wrapper (wrap://package/http-resolver)", - [ - "wrap://package/http-resolver => UriResolverAggregator => package (wrap://package/http-resolver)", - [ - "wrap://package/http-resolver => StaticResolver - Package (wrap://package/http-resolver) => package (wrap://package/http-resolver)" - ] - ], + "wrap://package/http-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/http-resolver)", "wrap://ens/uri.eth => ResolverExtension (wrap://package/http-resolver)", - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => UriResolverAggregator => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => StaticResolver - Miss", - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ExtendableUriResolver => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", - [ - "wrap://package/ipfs-resolver => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://package/ipfs-resolver)", - "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => ResolverExtension (wrap://package/ipfs-resolver) => package (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" - ] - ] - ], + "wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p => PackageToWrapperCacheResolver (Cache) => wrapper (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)", "wrap://ens/uri.eth => ResolverExtension (wrap://ipfs/QmbqeVAhSzTtSmdVjrPMK42pX1sFs8t5MUB741T7nxSs1p)" ] ] diff --git a/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts b/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts index 499635784d..5514f97908 100644 --- a/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts +++ b/packages/js/client/src/__tests__/core/uri-resolution/uri-resolution.spec.ts @@ -121,8 +121,6 @@ describe("URI resolution", () => { const resolutionContext = new UriResolutionContext(); const result = await client.tryResolveUri({ uri, resolutionContext }); - console.log(JSON.stringify(buildCleanUriHistory(resolutionContext.getHistory()), null, 2)); - await expectResultWithHistory( result, UriResolutionResult.ok(uri),