From 42c42198c6ffce453d14b60fb06f14791b6dc8bd Mon Sep 17 00:00:00 2001 From: Lasse Herskind <16536249+LHerskind@users.noreply.github.com> Date: Thu, 1 Jun 2023 15:44:14 +0100 Subject: [PATCH] feat: combine contracts for l1 -> l2 and l2 -> l1 (#726) * feat: combine contracts for l1 -> l2 and l2 -> l1 * chore: circle-ci * chore: circle-ci * chore: add natspec in TokenPortal * chore: remove rollup_native_asset_contract.json --- .circleci/config.yml | 21 +- l1-contracts/test/portals/RNA.t.sol | 77 ----- .../test/portals/RollupNativeAsset.sol | 37 --- l1-contracts/test/portals/TokenPortal.sol | 24 ++ l1-contracts/test/portals/TokenPortal.t.sol | 34 +++ ...t.ts => e2e_cross_chain_messaging.test.ts} | 111 +++++-- .../e2e_rollup_native_asset_contract.test.ts | 177 ----------- .../scripts/generate-artifacts.sh | 1 - .../non_native_token_contract/src/main.nr | 187 ++++++++++++ .../rollup_native_asset_contract/Nargo.toml | 6 - .../src/balance_utils.nr | 38 --- .../rollup_native_asset_contract/src/main.nr | 288 ------------------ .../noir-contracts/src/examples/index.ts | 2 - .../examples/non_native_token_contract.json | 44 +++ .../rollup_native_asset_contract.json | 215 ------------- 15 files changed, 381 insertions(+), 881 deletions(-) delete mode 100644 l1-contracts/test/portals/RNA.t.sol delete mode 100644 l1-contracts/test/portals/RollupNativeAsset.sol rename yarn-project/end-to-end/src/{e2e_l1_to_l2_msg.test.ts => e2e_cross_chain_messaging.test.ts} (63%) delete mode 100644 yarn-project/end-to-end/src/e2e_rollup_native_asset_contract.test.ts delete mode 100644 yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/Nargo.toml delete mode 100644 yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/balance_utils.nr delete mode 100644 yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/main.nr delete mode 100644 yarn-project/noir-contracts/src/examples/rollup_native_asset_contract.json diff --git a/.circleci/config.yml b/.circleci/config.yml index 3f47be0efdd..7a5319557f0 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -429,7 +429,7 @@ jobs: name: "Test" command: cond_spot_run_tests end-to-end e2e_nested_contract.test.ts - e2e-l1-to-l2-messaging: + e2e-cross-chain-messaging: docker: - image: aztecprotocol/alpine-build-image resource_class: small @@ -438,18 +438,7 @@ jobs: - *setup_env - run: name: "Test" - command: cond_spot_run_tests end-to-end e2e_l1_to_l2_msg.test.ts - - e2e-l2-to-l1-messaging: - docker: - - image: aztecprotocol/alpine-build-image - resource_class: small - steps: - - *checkout - - *setup_env - - run: - name: "Test" - command: cond_spot_run_tests end-to-end e2e_rollup_native_asset_contract.test.ts + command: cond_spot_run_tests end-to-end e2e_cross_chain_messaging.test.ts integration-l1-publisher: docker: @@ -611,8 +600,7 @@ workflows: - e2e-block-building: *e2e_test - e2e-nested-contract: *e2e_test - e2e-public-token-contract: *e2e_test - - e2e-l2-to-l1-messaging: *e2e_test - - e2e-l1-to-l2-messaging: *e2e_test + - e2e-cross-chain-messaging: *e2e_test - integration-l1-publisher: *e2e_test - e2e-p2p: *e2e_test @@ -623,8 +611,7 @@ workflows: - e2e-block-building - e2e-nested-contract - e2e-public-token-contract - - e2e-l2-to-l1-messaging - - e2e-l1-to-l2-messaging + - e2e-cross-chain-messaging - integration-l1-publisher - e2e-p2p <<: *defaults diff --git a/l1-contracts/test/portals/RNA.t.sol b/l1-contracts/test/portals/RNA.t.sol deleted file mode 100644 index e8471fa5f24..00000000000 --- a/l1-contracts/test/portals/RNA.t.sol +++ /dev/null @@ -1,77 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright 2023 Aztec Labs. -pragma solidity >=0.8.18; - -import {Test} from "forge-std/Test.sol"; - -import {Rollup} from "@aztec/core/Rollup.sol"; -import {Outbox} from "@aztec/core/messagebridge/Outbox.sol"; -import {Inbox} from "@aztec/core/messagebridge/Inbox.sol"; -import {Registry} from "@aztec/core/messagebridge/Registry.sol"; -import {Errors} from "@aztec/core/libraries/Errors.sol"; -import {DataStructures} from "@aztec/core/libraries/DataStructures.sol"; -import {Hash} from "@aztec/core/libraries/Hash.sol"; -import {RollupNativeAsset} from "./RollupNativeAsset.sol"; - -contract RNATest is Test { - event MessageConsumed(bytes32 indexed entryKey, address indexed recipient); - - Rollup internal rollup; - RollupNativeAsset internal rna; - - Registry internal registry; - Outbox internal outbox; - Inbox internal inbox; - - // Using a run of e2e_rollup_native_asset_contract.test.ts to get values - // for entryKeys and aztecAddress - bytes32 internal constant AZTEC_ADDRESS = - 0x1647b194c649f5dd01d7c832f89b0f496043c9150797923ea89e93d5ac619a93; - - function setUp() public { - registry = new Registry(); - outbox = new Outbox(address(registry)); - inbox = new Inbox(address(registry)); - rollup = new Rollup(registry); - - registry.upgrade(address(rollup), address(inbox), address(outbox)); - - rna = new RollupNativeAsset(); - // Essentially deploying the rna contract on the 0xbeef address to make matching entry easy. - vm.etch(address(0xbeef), address(rna).code); - rna = RollupNativeAsset(address(0xbeef)); - - rna.initialize(address(registry), AZTEC_ADDRESS); - } - - function testWithdraw() public { - uint256 withdrawAmount = 654; - address _recipient = address(0xdead); - bytes32[] memory entryKeys = new bytes32[](1); - entryKeys[0] = outbox.computeEntryKey( - DataStructures.L2ToL1Msg({ - sender: DataStructures.L2Actor({actor: AZTEC_ADDRESS, version: 1}), - recipient: DataStructures.L1Actor({actor: address(rna), chainId: block.chainid}), - content: Hash.sha256ToField( - abi.encodeWithSignature("withdraw(uint256,address)", withdrawAmount, _recipient) - ) - }) - ); - - // Insert messages into the outbox (impersonating the rollup contract) - vm.prank(address(rollup)); - outbox.sendL1Messages(entryKeys); - - assertEq(rna.balanceOf(_recipient), 0); - - vm.expectEmit(true, true, true, true); - emit MessageConsumed(entryKeys[0], address(rna)); - bytes32 entryKey = rna.withdraw(withdrawAmount, _recipient); - // Should have received 654 RNA tokens - assertEq(rna.balanceOf(_recipient), withdrawAmount); - - // Should not be able to withdraw again - vm.expectRevert(abi.encodeWithSelector(Errors.Outbox__NothingToConsume.selector, entryKey)); - rna.withdraw(withdrawAmount, _recipient); - } -} diff --git a/l1-contracts/test/portals/RollupNativeAsset.sol b/l1-contracts/test/portals/RollupNativeAsset.sol deleted file mode 100644 index b9daf848a53..00000000000 --- a/l1-contracts/test/portals/RollupNativeAsset.sol +++ /dev/null @@ -1,37 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 -// Copyright 2023 Aztec Labs. -pragma solidity >=0.8.18; - -import {ERC20} from "@oz/token/ERC20/ERC20.sol"; -import {DataStructures} from "@aztec/core/libraries/DataStructures.sol"; -import {Hash} from "@aztec/core/libraries/Hash.sol"; -import {Registry} from "@aztec/core/messagebridge/Registry.sol"; - -contract RollupNativeAsset is ERC20 { - Registry public registry; - bytes32 public aztecAddress; - - constructor() ERC20("RollupNativeAsset", "RNA") {} - - function initialize(address _registry, bytes32 _aztecAddress) external { - registry = Registry(_registry); - aztecAddress = _aztecAddress; - } - - function withdraw(uint256 _amount, address _recipient) external returns (bytes32) { - DataStructures.L2ToL1Msg memory message = DataStructures.L2ToL1Msg({ - sender: DataStructures.L2Actor(aztecAddress, 1), - recipient: DataStructures.L1Actor(address(this), block.chainid), - content: Hash.sha256ToField( - abi.encodeWithSignature("withdraw(uint256,address)", _amount, _recipient) - ) - }); - - // @todo: (issue #624) handle different versions - bytes32 entryKey = registry.getOutbox().consume(message); - - _mint(_recipient, _amount); - - return entryKey; - } -} diff --git a/l1-contracts/test/portals/TokenPortal.sol b/l1-contracts/test/portals/TokenPortal.sol index 9e761ce1316..f6a6f4afc93 100644 --- a/l1-contracts/test/portals/TokenPortal.sol +++ b/l1-contracts/test/portals/TokenPortal.sol @@ -50,4 +50,28 @@ contract TokenPortal { // Send message to rollup return inbox.sendL2Message{value: msg.value}(actor, _deadline, contentHash, _secretHash); } + + /** + * @notice Withdraw funds from the portal + * @dev Second part of withdraw, must be initiated from L2 first as it will consume a message from outbox + * @param _amount - The amount to withdraw + * @param _recipient - The address to send the funds to + * @return The key of the entry in the Outbox + */ + function withdraw(uint256 _amount, address _recipient) external returns (bytes32) { + DataStructures.L2ToL1Msg memory message = DataStructures.L2ToL1Msg({ + sender: DataStructures.L2Actor(l2TokenAddress, 1), + recipient: DataStructures.L1Actor(address(this), block.chainid), + content: Hash.sha256ToField( + abi.encodeWithSignature("withdraw(uint256,address)", _amount, _recipient) + ) + }); + + // @todo: (issue #624) handle different versions + bytes32 entryKey = registry.getOutbox().consume(message); + + underlying.transfer(_recipient, _amount); + + return entryKey; + } } diff --git a/l1-contracts/test/portals/TokenPortal.t.sol b/l1-contracts/test/portals/TokenPortal.t.sol index 7d2ae47761a..c7bf7a77d8e 100644 --- a/l1-contracts/test/portals/TokenPortal.t.sol +++ b/l1-contracts/test/portals/TokenPortal.t.sol @@ -9,6 +9,7 @@ import {Registry} from "@aztec/core/messagebridge/Registry.sol"; import {Outbox} from "@aztec/core/messagebridge/Outbox.sol"; import {DataStructures} from "@aztec/core/libraries/DataStructures.sol"; import {Hash} from "@aztec/core/libraries/Hash.sol"; +import {Errors} from "@aztec/core/libraries/Errors.sol"; // Interfaces import {IRegistry} from "@aztec/core/interfaces/messagebridge/IRegistry.sol"; @@ -30,6 +31,7 @@ contract TokenPortalTest is Test { bytes32 content, bytes32 secretHash ); + event MessageConsumed(bytes32 indexed entryKey, address indexed recipient); Registry internal registry; Inbox internal inbox; @@ -103,4 +105,36 @@ contract TokenPortalTest is Test { DataStructures.Entry memory entry = inbox.get(entryKey); assertEq(entry.count, 1); } + + function testWithdraw() public { + uint256 withdrawAmount = 654; + portalERC20.mint(address(tokenPortal), withdrawAmount); + address _recipient = address(0xdead); + bytes32[] memory entryKeys = new bytes32[](1); + entryKeys[0] = outbox.computeEntryKey( + DataStructures.L2ToL1Msg({ + sender: DataStructures.L2Actor({actor: l2TokenAddress, version: 1}), + recipient: DataStructures.L1Actor({actor: address(tokenPortal), chainId: block.chainid}), + content: Hash.sha256ToField( + abi.encodeWithSignature("withdraw(uint256,address)", withdrawAmount, _recipient) + ) + }) + ); + + // Insert messages into the outbox (impersonating the rollup contract) + vm.prank(address(rollup)); + outbox.sendL1Messages(entryKeys); + + assertEq(portalERC20.balanceOf(_recipient), 0); + + vm.expectEmit(true, true, true, true); + emit MessageConsumed(entryKeys[0], address(tokenPortal)); + bytes32 entryKey = tokenPortal.withdraw(withdrawAmount, _recipient); + // Should have received 654 RNA tokens + assertEq(portalERC20.balanceOf(_recipient), withdrawAmount); + + // Should not be able to withdraw again + vm.expectRevert(abi.encodeWithSelector(Errors.Outbox__NothingToConsume.selector, entryKey)); + tokenPortal.withdraw(withdrawAmount, _recipient); + } } diff --git a/yarn-project/end-to-end/src/e2e_l1_to_l2_msg.test.ts b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts similarity index 63% rename from yarn-project/end-to-end/src/e2e_l1_to_l2_msg.test.ts rename to yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts index a24ba24921e..7c9888cb90f 100644 --- a/yarn-project/end-to-end/src/e2e_l1_to_l2_msg.test.ts +++ b/yarn-project/end-to-end/src/e2e_cross_chain_messaging.test.ts @@ -6,16 +6,26 @@ import { NonNativeTokenContractAbi } from '@aztec/noir-contracts/examples'; import { CircuitsWasm } from '@aztec/circuits.js'; import { computeSecretMessageHash } from '@aztec/circuits.js/abis'; import { DeployL1Contracts, deployL1Contract } from '@aztec/ethereum'; -import { toBigIntBE } from '@aztec/foundation/bigint-buffer'; +import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer'; import { Fr, Point } from '@aztec/foundation/fields'; import { DebugLogger } from '@aztec/foundation/log'; -import { PortalERC20Abi, PortalERC20Bytecode, TokenPortalAbi, TokenPortalBytecode } from '@aztec/l1-artifacts'; -import { Chain, GetContractReturnType, HttpTransport, PublicClient, WalletClient, getContract } from 'viem'; -import { Account } from 'viem/accounts'; +import { + OutboxAbi, + PortalERC20Abi, + PortalERC20Bytecode, + TokenPortalAbi, + TokenPortalBytecode, +} from '@aztec/l1-artifacts'; +import { Chain, HttpTransport, PublicClient, getContract } from 'viem'; import { setup } from './setup.js'; +import { sha256 } from '@aztec/foundation/crypto'; -// NOTE: this tests is just a scaffold, it is awaiting functionality to come from the aztec-node around indexing messages in the contract -describe('e2e_l1_to_l2_msg', () => { +const sha256ToField = (buf: Buffer): Fr => { + const tempContent = toBigIntBE(sha256(buf)); + return Fr.fromBuffer(toBufferBE(tempContent % Fr.MODULUS, 32)); +}; + +describe('e2e_cross_chain_messaging', () => { let aztecNode: AztecNodeService; let aztecRpcServer: AztecRPCServer; let accounts: AztecAddress[]; @@ -27,24 +37,19 @@ describe('e2e_l1_to_l2_msg', () => { let tokenPortalAddress: EthAddress; let underlyingERC20Address: EthAddress; let rollupRegistryAddress: EthAddress; - let tokenPortal: GetContractReturnType< - typeof TokenPortalAbi, - PublicClient, - WalletClient - >; - let underlyingERC20: GetContractReturnType< - typeof PortalERC20Abi, - PublicClient, - WalletClient - >; + let tokenPortal: any; + let underlyingERC20: any; + let outbox: any; + let publicClient: PublicClient; + let walletClient: any; beforeEach(async () => { - let deployL1ContractsValues: DeployL1Contracts | undefined; + let deployL1ContractsValues: DeployL1Contracts; ({ aztecNode, aztecRpcServer, deployL1ContractsValues, accounts, logger } = await setup(2)); rollupRegistryAddress = deployL1ContractsValues!.registryAddress; - const walletClient = deployL1ContractsValues.walletClient; - const publicClient = deployL1ContractsValues.publicClient; + walletClient = deployL1ContractsValues.walletClient; + publicClient = deployL1ContractsValues.publicClient; ethAccount = EthAddress.fromString((await walletClient.getAddresses())[0]); @@ -63,6 +68,11 @@ describe('e2e_l1_to_l2_msg', () => { walletClient, publicClient, }); + outbox = getContract({ + address: deployL1ContractsValues.outboxAddress.toString(), + abi: OutboxAbi, + publicClient, + }); }, 30_000); afterEach(async () => { @@ -102,7 +112,7 @@ describe('e2e_l1_to_l2_msg', () => { return contract; }; - it('Milestone 2.2: L1->L2 Calls', async () => { + it('Milestone 2: Deposit funds from L1 -> L2 and withdraw back to L1', async () => { const initialBalance = 10n; const [ownerAddress, receiver] = accounts; const ownerPub = await aztecRpcServer.getAccountPublicKey(ownerAddress); @@ -130,16 +140,22 @@ describe('e2e_l1_to_l2_msg', () => { await underlyingERC20.write.mint([ethAccount.toString(), 1000000n], {} as any); await underlyingERC20.write.approve([tokenPortalAddress.toString(), 1000n], {} as any); + expect(await underlyingERC20.read.balanceOf([ethAccount.toString()])).toBe(1000000n); + // Deposit tokens to the TokenPortal const secretString = `0x${claimSecretHash.toBuffer().toString('hex')}` as `0x${string}`; const deadline = 2 ** 32 - 1; // max uint32 - 1 + const mintAmount = 100n; + logger('Sending messages to L1 portal'); - const args = [ownerAddress.toString(), 100n, deadline, secretString] as const; + const args = [ownerAddress.toString(), mintAmount, deadline, secretString] as const; const { result: messageKeyHex } = await tokenPortal.simulate.depositToAztec(args, { account: ethAccount.toString(), } as any); await tokenPortal.write.depositToAztec(args, {} as any); + expect(await underlyingERC20.read.balanceOf([ethAccount.toString()])).toBe(1000000n - mintAmount); + const messageKey = Fr.fromString(messageKeyHex); // Wait for the archiver to process the message @@ -163,7 +179,6 @@ describe('e2e_l1_to_l2_msg', () => { logger('Consuming messages on L2'); // Call the mint tokens function on the noir contract - const mintAmount = 100n; const consumptionTx = deployedL2Contract.methods .mint(mintAmount, pointToPublicKey(ownerPub), messageKey, secret) @@ -174,5 +189,55 @@ describe('e2e_l1_to_l2_msg', () => { expect(consumptionReceipt.status).toBe(TxStatus.MINED); await expectBalance(ownerAddress, mintAmount + initialBalance - transferAmount); - }, 80_000); + + // time to withdraw the funds again! + const withdrawAmount = 9n; + + logger('Withdrawing funds from L2'); + + logger('Ensure that the entry is not in outbox yet'); + const contractInfo = await aztecNode.getContractInfo(contract.address); + // 0x00f714ce, selector for "withdraw(uint256,address)" + const content = sha256ToField( + Buffer.concat([Buffer.from([0x00, 0xf7, 0x14, 0xce]), toBufferBE(withdrawAmount, 32), ethAccount.toBuffer32()]), + ); + const entryKey = sha256ToField( + Buffer.concat([ + contract.address.toBuffer(), + new Fr(1).toBuffer(), // aztec version + contractInfo?.portalContractAddress.toBuffer32() ?? Buffer.alloc(32, 0), + new Fr(publicClient.chain.id).toBuffer(), // chain id + content.toBuffer(), + ]), + ); + expect(await outbox.read.contains([entryKey.toString()])).toBeFalsy(); + + logger('Send L2 tx to withdraw funds'); + const withdrawTx = deployedL2Contract.methods + .withdraw(withdrawAmount, pointToPublicKey(ownerPub), ethAccount) + .send({ from: ownerAddress }); + + await withdrawTx.isMined(0, 0.1); + const withdrawReceipt = await withdrawTx.getReceipt(); + + expect(withdrawReceipt.status).toBe(TxStatus.MINED); + await expectBalance(ownerAddress, mintAmount + initialBalance - transferAmount - withdrawAmount); + expect(await underlyingERC20.read.balanceOf([ethAccount.toString()])).toBe(1000000n - mintAmount); + + logger('Send L1 tx to consume entry and withdraw funds'); + // Call function on L1 contract to consume the message + const { request: withdrawRequest, result: withdrawEntryKey } = await tokenPortal.simulate.withdraw([ + withdrawAmount, + ethAccount.toString(), + ]); + + expect(withdrawEntryKey).toBe(entryKey.toString()); + + expect(await outbox.read.contains([withdrawEntryKey])).toBeTruthy(); + + await walletClient.writeContract(withdrawRequest); + expect(await underlyingERC20.read.balanceOf([ethAccount.toString()])).toBe(1000000n - mintAmount + withdrawAmount); + + expect(await outbox.read.contains([withdrawEntryKey])).toBeFalsy(); + }, 120_000); }); diff --git a/yarn-project/end-to-end/src/e2e_rollup_native_asset_contract.test.ts b/yarn-project/end-to-end/src/e2e_rollup_native_asset_contract.test.ts deleted file mode 100644 index ce9839261df..00000000000 --- a/yarn-project/end-to-end/src/e2e_rollup_native_asset_contract.test.ts +++ /dev/null @@ -1,177 +0,0 @@ -import { AztecNodeService } from '@aztec/aztec-node'; -import { AztecAddress, AztecRPCServer, Contract, ContractDeployer, EthAddress, TxStatus } from '@aztec/aztec.js'; -import { RollupNativeAssetContractAbi } from '@aztec/noir-contracts/examples'; - -import { fr } from '@aztec/circuits.js/factories'; -import { DeployL1Contracts, deployL1Contract } from '@aztec/ethereum'; -import { toBigIntBE, toBufferBE } from '@aztec/foundation/bigint-buffer'; -import { sha256 } from '@aztec/foundation/crypto'; -import { Fr, Point } from '@aztec/foundation/fields'; -import { DebugLogger } from '@aztec/foundation/log'; -import { OutboxAbi, RollupNativeAssetAbi, RollupNativeAssetBytecode } from '@aztec/l1-artifacts'; -import { Address, Chain, GetContractReturnType, HttpTransport, PublicClient, getAddress, getContract } from 'viem'; -import { HDAccount } from 'viem/accounts'; -import { setup } from './setup.js'; - -const sha256ToField = (buf: Buffer): Fr => { - const tempContent = toBigIntBE(sha256(buf)); - return Fr.fromBuffer(toBufferBE(tempContent % Fr.MODULUS, 32)); -}; - -describe('e2e_rollup_native_asset_contract', () => { - let aztecNode: AztecNodeService; - let aztecRpcServer: AztecRPCServer; - let accounts: AztecAddress[]; - let logger: DebugLogger; - - let account: HDAccount; - let contract: Contract; - let portalAddress: EthAddress; - let portalContract: any; - - let publicClient: PublicClient; - let walletClient: any; - let outbox: GetContractReturnType>; - let registryAddress: Address; - - beforeEach(async () => { - let deployL1ContractsValues: DeployL1Contracts; - ({ aztecNode, aztecRpcServer, deployL1ContractsValues, accounts, logger } = await setup()); - accounts = await aztecRpcServer.getAccounts(); - - registryAddress = getAddress(deployL1ContractsValues.registryAddress.toString()); - - publicClient = deployL1ContractsValues.publicClient; - outbox = getContract({ - address: getAddress(deployL1ContractsValues.outboxAddress.toString()), - abi: OutboxAbi, - publicClient, - }); - - // Deploy L1 portal - walletClient = deployL1ContractsValues.walletClient; - - portalAddress = await deployL1Contract(walletClient, publicClient, RollupNativeAssetAbi, RollupNativeAssetBytecode); - - portalContract = getContract({ - address: getAddress(portalAddress.toString()), - abi: RollupNativeAssetAbi, - publicClient, - walletClient, - }); - }, 60_000); - - afterEach(async () => { - await aztecNode?.stop(); - await aztecRpcServer?.stop(); - }); - - const expectBalance = async (owner: AztecAddress, expectedBalance: bigint) => { - const ownerPublicKey = await aztecRpcServer.getAccountPublicKey(owner); - const [balance] = await contract.methods.getBalance(pointToPublicKey(ownerPublicKey)).view({ from: owner }); - logger(`Account ${owner} balance: ${balance}`); - expect(balance).toBe(expectedBalance); - }; - - const pointToPublicKey = (point: Point) => { - const x = point.buffer.subarray(0, 32); - const y = point.buffer.subarray(32, 64); - return { - x: toBigIntBE(x), - y: toBigIntBE(y), - }; - }; - - const deployContract = async (initialBalance = 0n, owner = { x: 0n, y: 0n }) => { - logger(`Deploying L2 contract...`); - const deployer = new ContractDeployer(RollupNativeAssetContractAbi, aztecRpcServer); - const tx = deployer.deploy(initialBalance, owner).send({ - portalContract: portalAddress, - }); - const receipt = await tx.getReceipt(); - contract = new Contract(receipt.contractAddress!, RollupNativeAssetContractAbi, aztecRpcServer); - await contract.attach(portalAddress); - - await tx.isMined(0, 0.1); - await tx.getReceipt(); - logger('L2 contract deployed'); - return contract; - }; - - /** - * Milestone 2 - L2 to L1 - */ - it('Milestone 2.3: Exit funds from L2 to L1', async () => { - const initialBalance = 987n; - const withdrawAmount = 654n; - const [owner] = accounts; - - await deployContract(initialBalance, pointToPublicKey(await aztecRpcServer.getAccountPublicKey(owner))); - await expectBalance(owner, initialBalance); - - const { request: initRequest } = await publicClient.simulateContract({ - account, - address: getAddress(portalAddress.toString()), - abi: RollupNativeAssetAbi, - functionName: 'initialize', - args: [getAddress(registryAddress.toString()), `0x${contract.address.toString().slice(2)}`], - }); - - await walletClient.writeContract(initRequest); - - const ethOutAddress = EthAddress.fromString('0x000000000000000000000000000000000000dead'); - - const tx = contract.methods - .withdraw(withdrawAmount, pointToPublicKey(await aztecRpcServer.getAccountPublicKey(owner)), ethOutAddress) - .send({ from: accounts[0] }); - - await tx.isMined(0, 0.1); - const receipt = await tx.getReceipt(); - expect(receipt.status).toBe(TxStatus.MINED); - await expectBalance(owner, initialBalance - withdrawAmount); - - // 0x00f714ce, selector for "withdraw(uint256,address)" - const content = sha256ToField( - Buffer.concat([ - Buffer.from([0x00, 0xf7, 0x14, 0xce]), - toBufferBE(withdrawAmount, 32), - ethOutAddress.toBuffer32(), - ]), - ); - const contractInfo = await aztecNode.getContractInfo(contract.address); - // Compute the expected hash and see if it is what we saw in the block. - const entryKey = sha256ToField( - Buffer.concat([ - contract.address.toBuffer(), - fr(1).toBuffer(), // aztec version - contractInfo?.portalContractAddress.toBuffer32() ?? Buffer.alloc(32, 0), - fr(publicClient.chain.id).toBuffer(), // chain id - content.toBuffer(), - ]), - ); - - const blockNumber = await aztecNode.getBlockHeight(); - const blocks = await aztecNode.getBlocks(blockNumber, 1); - // If this is failing, it is likely because of wrong chain id - expect(blocks[0].newL2ToL1Msgs[0]).toEqual(entryKey); - - // Check that the message was inserted into the message box - expect(await outbox.read.contains([`0x${entryKey.toBuffer().toString('hex')}`])).toBeTruthy(); - expect(await portalContract.read.balanceOf([getAddress(ethOutAddress.toString())])).toBe(0n); - - // Call function on L1 contract to consume the message - const { request: withdrawRequest } = await publicClient.simulateContract({ - account, - address: getAddress(portalAddress.toString()), - abi: RollupNativeAssetAbi, - functionName: 'withdraw', - args: [withdrawAmount, getAddress(ethOutAddress.toString())], - }); - - await walletClient.writeContract(withdrawRequest); - expect(await portalContract.read.balanceOf([getAddress(ethOutAddress.toString())])).toBe(withdrawAmount); - - // Check that the message was consumed. - expect(await outbox.read.contains([`0x${entryKey.toBuffer().toString('hex')}`])).toBeFalsy(); - }, 60_000); -}); diff --git a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh index a175947df42..d47d50ea3e4 100755 --- a/yarn-project/l1-artifacts/scripts/generate-artifacts.sh +++ b/yarn-project/l1-artifacts/scripts/generate-artifacts.sh @@ -18,7 +18,6 @@ CONTRACTS=( "l1-contracts:UnverifiedDataEmitter" "l1-contracts:TokenPortal" "l1-contracts:PortalERC20" - "l1-contracts:RollupNativeAsset" ) diff --git a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr index 760534504c4..f9211cd05e8 100644 --- a/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr +++ b/yarn-project/noir-contracts/src/contracts/non_native_token_contract/src/main.nr @@ -207,6 +207,193 @@ contract NonNativeToken { .finish(inputs) } + fn withdraw( + //*********************************/ + // Should eventually be hidden: + inputs: pub Inputs, + //*********************************/ + amount: pub Field, + sender: pub Point, + recipient: pub Field, // ethereum address in the field + ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { + let mut initialContext = PrivateFunctionContext::new(); + initialContext.args = initialContext.args.push_array([amount, sender.x, sender.y, recipient]); + + let sender_balance = balances.at(sender.x); + let (mut context, (note1, note2)) = sender_balance.get_2(inputs, initialContext); + + // TODO: Removing this return breaks the circuit (???) + context.return_values = context.return_values.push(note1.is_real as Field); + context.return_values = context.return_values.push(note2.is_real as Field); + + note1.validate(sender); + note2.validate(sender); + + let sum = note1.value + note2.value; + constrain sum as u64 >= amount as u64; + let change_value = sum - amount; + + context = sender_balance.remove(inputs, context, note1); + context = sender_balance.remove(inputs, context, note2); + + let change_note = Note::new(change_value, sender); + + context = sender_balance.insert(context, change_note); + + // Compute the content hash + // Compute sha256(selector || amount || recipient) + // then convert to a single field element + // add that to the l2 to l1 messages + let mut hash_bytes: [u8; 68] = [0; 68]; + let amount_bytes = amount.to_be_bytes(32); + let recipient_bytes = recipient.to_be_bytes(32); + + // 0x00f714ce, selector for "withdraw(uint256,address)" + hash_bytes[0] = 0x00; + hash_bytes[1] = 0xf7; + hash_bytes[2] = 0x14; + hash_bytes[3] = 0xce; + + // Unroll loops because otherwise takes forever to compile + // for i in range(32): + // print('hash_bytes[{0}] = amount_bytes[{1}];'.format(i+4, i)) + // for i in range(32): + // print('hash_bytes[{0} + 32] = recipient_bytes[{1}];'.format(i+4, i)) + hash_bytes[4] = amount_bytes[0]; + hash_bytes[5] = amount_bytes[1]; + hash_bytes[6] = amount_bytes[2]; + hash_bytes[7] = amount_bytes[3]; + hash_bytes[8] = amount_bytes[4]; + hash_bytes[9] = amount_bytes[5]; + hash_bytes[10] = amount_bytes[6]; + hash_bytes[11] = amount_bytes[7]; + hash_bytes[12] = amount_bytes[8]; + hash_bytes[13] = amount_bytes[9]; + hash_bytes[14] = amount_bytes[10]; + hash_bytes[15] = amount_bytes[11]; + hash_bytes[16] = amount_bytes[12]; + hash_bytes[17] = amount_bytes[13]; + hash_bytes[18] = amount_bytes[14]; + hash_bytes[19] = amount_bytes[15]; + hash_bytes[20] = amount_bytes[16]; + hash_bytes[21] = amount_bytes[17]; + hash_bytes[22] = amount_bytes[18]; + hash_bytes[23] = amount_bytes[19]; + hash_bytes[24] = amount_bytes[20]; + hash_bytes[25] = amount_bytes[21]; + hash_bytes[26] = amount_bytes[22]; + hash_bytes[27] = amount_bytes[23]; + hash_bytes[28] = amount_bytes[24]; + hash_bytes[29] = amount_bytes[25]; + hash_bytes[30] = amount_bytes[26]; + hash_bytes[31] = amount_bytes[27]; + hash_bytes[32] = amount_bytes[28]; + hash_bytes[33] = amount_bytes[29]; + hash_bytes[34] = amount_bytes[30]; + hash_bytes[35] = amount_bytes[31]; + + hash_bytes[4 + 32] = recipient_bytes[0]; + hash_bytes[5 + 32] = recipient_bytes[1]; + hash_bytes[6 + 32] = recipient_bytes[2]; + hash_bytes[7 + 32] = recipient_bytes[3]; + hash_bytes[8 + 32] = recipient_bytes[4]; + hash_bytes[9 + 32] = recipient_bytes[5]; + hash_bytes[10 + 32] = recipient_bytes[6]; + hash_bytes[11 + 32] = recipient_bytes[7]; + hash_bytes[12 + 32] = recipient_bytes[8]; + hash_bytes[13 + 32] = recipient_bytes[9]; + hash_bytes[14 + 32] = recipient_bytes[10]; + hash_bytes[15 + 32] = recipient_bytes[11]; + hash_bytes[16 + 32] = recipient_bytes[12]; + hash_bytes[17 + 32] = recipient_bytes[13]; + hash_bytes[18 + 32] = recipient_bytes[14]; + hash_bytes[19 + 32] = recipient_bytes[15]; + hash_bytes[20 + 32] = recipient_bytes[16]; + hash_bytes[21 + 32] = recipient_bytes[17]; + hash_bytes[22 + 32] = recipient_bytes[18]; + hash_bytes[23 + 32] = recipient_bytes[19]; + hash_bytes[24 + 32] = recipient_bytes[20]; + hash_bytes[25 + 32] = recipient_bytes[21]; + hash_bytes[26 + 32] = recipient_bytes[22]; + hash_bytes[27 + 32] = recipient_bytes[23]; + hash_bytes[28 + 32] = recipient_bytes[24]; + hash_bytes[29 + 32] = recipient_bytes[25]; + hash_bytes[30 + 32] = recipient_bytes[26]; + hash_bytes[31 + 32] = recipient_bytes[27]; + hash_bytes[32 + 32] = recipient_bytes[28]; + hash_bytes[33 + 32] = recipient_bytes[29]; + hash_bytes[34 + 32] = recipient_bytes[30]; + hash_bytes[35 + 32] = recipient_bytes[31]; + + let content_sha256 = dep::std::hash::sha256(hash_bytes); + + // Convert the content_sha256 to a field element + let mut v = 1; + let mut high = 0 as Field; + let mut low = 0 as Field; + + // Unroll loops because otherwise takes forever to compile + // for i in [15 - i for i in range(16)]: + // print('high = high + (content_sha256[{0}] as Field) * v;'.format(i)) + // print('low = low + (content_sha256[16 + {0}] as Field) * v;'.format(i)) + // print('v = v * 256;'); + high = high + (content_sha256[15] as Field) * v; + low = low + (content_sha256[16 + 15] as Field) * v; + v = v * 256; + high = high + (content_sha256[14] as Field) * v; + low = low + (content_sha256[16 + 14] as Field) * v; + v = v * 256; + high = high + (content_sha256[13] as Field) * v; + low = low + (content_sha256[16 + 13] as Field) * v; + v = v * 256; + high = high + (content_sha256[12] as Field) * v; + low = low + (content_sha256[16 + 12] as Field) * v; + v = v * 256; + high = high + (content_sha256[11] as Field) * v; + low = low + (content_sha256[16 + 11] as Field) * v; + v = v * 256; + high = high + (content_sha256[10] as Field) * v; + low = low + (content_sha256[16 + 10] as Field) * v; + v = v * 256; + high = high + (content_sha256[9] as Field) * v; + low = low + (content_sha256[16 + 9] as Field) * v; + v = v * 256; + high = high + (content_sha256[8] as Field) * v; + low = low + (content_sha256[16 + 8] as Field) * v; + v = v * 256; + high = high + (content_sha256[7] as Field) * v; + low = low + (content_sha256[16 + 7] as Field) * v; + v = v * 256; + high = high + (content_sha256[6] as Field) * v; + low = low + (content_sha256[16 + 6] as Field) * v; + v = v * 256; + high = high + (content_sha256[5] as Field) * v; + low = low + (content_sha256[16 + 5] as Field) * v; + v = v * 256; + high = high + (content_sha256[4] as Field) * v; + low = low + (content_sha256[16 + 4] as Field) * v; + v = v * 256; + high = high + (content_sha256[3] as Field) * v; + low = low + (content_sha256[16 + 3] as Field) * v; + v = v * 256; + high = high + (content_sha256[2] as Field) * v; + low = low + (content_sha256[16 + 2] as Field) * v; + v = v * 256; + high = high + (content_sha256[1] as Field) * v; + low = low + (content_sha256[16 + 1] as Field) * v; + v = v * 256; + high = high + (content_sha256[0] as Field) * v; + low = low + (content_sha256[16 + 0] as Field) * v; + v = v * 256; + + // Abuse that a % p + b % p = (a + b) % p and that low < p + let content = low + high * v; + + context = context.message_portal(content); + + context.finish(inputs) + } + fn transfer( //*********************************/ // Should eventually be hidden: diff --git a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/Nargo.toml b/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/Nargo.toml deleted file mode 100644 index c7581265e83..00000000000 --- a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/Nargo.toml +++ /dev/null @@ -1,6 +0,0 @@ -[package] -authors = [""] -compiler_version = "0.1" - -[dependencies] -aztec3 = { path = "../noir-aztec3" } diff --git a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/balance_utils.nr b/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/balance_utils.nr deleted file mode 100644 index 58d6c445426..00000000000 --- a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/balance_utils.nr +++ /dev/null @@ -1,38 +0,0 @@ -use dep::aztec3::notes::value_note::Note; -use dep::aztec3::notes::value_note::NOTE_LEN; -use dep::aztec3::types::point::Point; -use dep::aztec3::utils::arr_copy_slice; - -use dep::aztec3::oracle::notes::view_notes_page_internal; -use dep::aztec3::oracle::notes::NOTES_PER_PAGE; - -fn view_notes_page( - storage_slot: Field, - offset: Field, -) -> (Field, [Note; NOTES_PER_PAGE]){ - let fields = view_notes_page_internal(storage_slot, offset); - let total_notes = fields[0]; - let mut notes = [Note::dummy(); NOTES_PER_PAGE]; - for i in 0..NOTES_PER_PAGE { - let read_offset: comptime Field = 1 + i*NOTE_LEN; - let note = Note::deserialize(arr_copy_slice(fields, [0; NOTE_LEN], read_offset)); - notes[i] = note; - }; - (total_notes, notes) -} - - -// TODO(1.5) We don't support yet more than one page of notes -// noir is having issues with loop handling in unconstrained functions -// rewrite to unconstrained and integrate into noir-aztec3 when fixed -fn get_balance(storage_slot: Field) -> Field { - let mut balance = 0; - - let mut current_batch = view_notes_page(storage_slot, 0).1; - - for j in 0..current_batch.len() { - balance += current_batch[j].value; - } - - balance -} \ No newline at end of file diff --git a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/main.nr b/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/main.nr deleted file mode 100644 index d99c818785f..00000000000 --- a/yarn-project/noir-contracts/src/contracts/rollup_native_asset_contract/src/main.nr +++ /dev/null @@ -1,288 +0,0 @@ -contract RollupNativeAsset { - mod balance_utils; - use dep::aztec3::abi::Inputs; - use dep::aztec3::context::PrivateFunctionContext; - use dep::aztec3::notes::value_note::Note; - use dep::aztec3::types::point::Point; - use dep::aztec3::state_vars::map::Map; - use dep::aztec3::state_vars::set::Set; - - //*********************************/ - global balances = Map { storage_slot: 1 }; - // Should eventually be replaced by: - // `balances: Mapping>;` - //*********************************/ - - fn constructor( - //*********************************/ - // Should eventually be hidden: - inputs: pub Inputs, - //*********************************/ - initial_supply: pub Field, - owner: pub Point, - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - let mut context = PrivateFunctionContext::new(); - context.args = context.args.push_array([initial_supply, owner.x, owner.y]); - - let owner_balance = balances.at(owner.x); - let note = Note::new(initial_supply, owner); - - owner_balance.insert(context, note) - .finish(inputs) - } - - fn mint( - //*********************************/ - // Should eventually be hidden: - inputs: pub Inputs, - //*********************************/ - amount: pub Field, - owner: pub Point, - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - let mut context = PrivateFunctionContext::new(); - context.args = context.args.push_array([amount, owner.x, owner.y]); - - let owner_balance = balances.at(owner.x); - let note = Note::new(amount, owner); - - owner_balance.insert(context, note) - .finish(inputs) - } - - fn transfer( - //*********************************/ - // Should eventually be hidden: - inputs: pub Inputs, - //*********************************/ - amount: pub Field, - sender: pub Point, - recipient: pub Point, - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - let mut initialContext = PrivateFunctionContext::new(); - initialContext.args = initialContext.args.push_array([amount, sender.x, sender.y, recipient.x, recipient.y]); - - let sender_balance = balances.at(sender.x); - let (mut context, (note1, note2)) = sender_balance.get_2(inputs, initialContext); - - // TODO: Removing this return breaks the circuit (???) - context.return_values = context.return_values.push(note1.is_real as Field); - context.return_values = context.return_values.push(note2.is_real as Field); - - note1.validate(sender); - note2.validate(sender); - - let sum = note1.value + note2.value; - constrain sum as u64 >= amount as u64; - let change_value = sum - amount; - - context = sender_balance.remove(inputs, context, note1); - context = sender_balance.remove(inputs, context, note2); - - let change_note = Note::new(change_value, sender); - let recipient_note = Note::new(amount, recipient); - - let recipient_balance = balances.at(recipient.x); - - context = recipient_balance.insert(context, recipient_note); - context = sender_balance.insert(context, change_note); - - context.finish(inputs) - } - - fn withdraw( - //*********************************/ - // Should eventually be hidden: - inputs: pub Inputs, - //*********************************/ - amount: pub Field, - sender: pub Point, - recipient: pub Field, // ethereum address in the field - ) -> pub [Field; dep::aztec3::abi::PUBLIC_INPUTS_LENGTH] { - let mut initialContext = PrivateFunctionContext::new(); - initialContext.args = initialContext.args.push_array([amount, sender.x, sender.y, recipient]); - - let sender_balance = balances.at(sender.x); - let (mut context, (note1, note2)) = sender_balance.get_2(inputs, initialContext); - - // TODO: Removing this return breaks the circuit (???) - context.return_values = context.return_values.push(note1.is_real as Field); - context.return_values = context.return_values.push(note2.is_real as Field); - - note1.validate(sender); - note2.validate(sender); - - let sum = note1.value + note2.value; - constrain sum as u64 >= amount as u64; - let change_value = sum - amount; - - context = sender_balance.remove(inputs, context, note1); - context = sender_balance.remove(inputs, context, note2); - - let change_note = Note::new(change_value, sender); - - context = sender_balance.insert(context, change_note); - - // Compute the content hash - // Compute sha256(amount || recipient) - // then convert to a single field element - // add that to the l2 to l1 messages - let mut hash_bytes: [u8; 68] = [0; 68]; - let amount_bytes = amount.to_be_bytes(32); - let recipient_bytes = recipient.to_be_bytes(32); - - // 0x00f714ce, selector for "withdraw(uint256,address)" - hash_bytes[0] = 0x00; - hash_bytes[1] = 0xf7; - hash_bytes[2] = 0x14; - hash_bytes[3] = 0xce; - - // Unroll loops because otherwise takes forever to compile - // for i in range(32): - // print('hash_bytes[{0}] = amount_bytes[{1}];'.format(i+4, i)) - // for i in range(32): - // print('hash_bytes[{0} + 32] = recipient_bytes[{1}];'.format(i+4, i)) - hash_bytes[4] = amount_bytes[0]; - hash_bytes[5] = amount_bytes[1]; - hash_bytes[6] = amount_bytes[2]; - hash_bytes[7] = amount_bytes[3]; - hash_bytes[8] = amount_bytes[4]; - hash_bytes[9] = amount_bytes[5]; - hash_bytes[10] = amount_bytes[6]; - hash_bytes[11] = amount_bytes[7]; - hash_bytes[12] = amount_bytes[8]; - hash_bytes[13] = amount_bytes[9]; - hash_bytes[14] = amount_bytes[10]; - hash_bytes[15] = amount_bytes[11]; - hash_bytes[16] = amount_bytes[12]; - hash_bytes[17] = amount_bytes[13]; - hash_bytes[18] = amount_bytes[14]; - hash_bytes[19] = amount_bytes[15]; - hash_bytes[20] = amount_bytes[16]; - hash_bytes[21] = amount_bytes[17]; - hash_bytes[22] = amount_bytes[18]; - hash_bytes[23] = amount_bytes[19]; - hash_bytes[24] = amount_bytes[20]; - hash_bytes[25] = amount_bytes[21]; - hash_bytes[26] = amount_bytes[22]; - hash_bytes[27] = amount_bytes[23]; - hash_bytes[28] = amount_bytes[24]; - hash_bytes[29] = amount_bytes[25]; - hash_bytes[30] = amount_bytes[26]; - hash_bytes[31] = amount_bytes[27]; - hash_bytes[32] = amount_bytes[28]; - hash_bytes[33] = amount_bytes[29]; - hash_bytes[34] = amount_bytes[30]; - hash_bytes[35] = amount_bytes[31]; - - hash_bytes[4 + 32] = recipient_bytes[0]; - hash_bytes[5 + 32] = recipient_bytes[1]; - hash_bytes[6 + 32] = recipient_bytes[2]; - hash_bytes[7 + 32] = recipient_bytes[3]; - hash_bytes[8 + 32] = recipient_bytes[4]; - hash_bytes[9 + 32] = recipient_bytes[5]; - hash_bytes[10 + 32] = recipient_bytes[6]; - hash_bytes[11 + 32] = recipient_bytes[7]; - hash_bytes[12 + 32] = recipient_bytes[8]; - hash_bytes[13 + 32] = recipient_bytes[9]; - hash_bytes[14 + 32] = recipient_bytes[10]; - hash_bytes[15 + 32] = recipient_bytes[11]; - hash_bytes[16 + 32] = recipient_bytes[12]; - hash_bytes[17 + 32] = recipient_bytes[13]; - hash_bytes[18 + 32] = recipient_bytes[14]; - hash_bytes[19 + 32] = recipient_bytes[15]; - hash_bytes[20 + 32] = recipient_bytes[16]; - hash_bytes[21 + 32] = recipient_bytes[17]; - hash_bytes[22 + 32] = recipient_bytes[18]; - hash_bytes[23 + 32] = recipient_bytes[19]; - hash_bytes[24 + 32] = recipient_bytes[20]; - hash_bytes[25 + 32] = recipient_bytes[21]; - hash_bytes[26 + 32] = recipient_bytes[22]; - hash_bytes[27 + 32] = recipient_bytes[23]; - hash_bytes[28 + 32] = recipient_bytes[24]; - hash_bytes[29 + 32] = recipient_bytes[25]; - hash_bytes[30 + 32] = recipient_bytes[26]; - hash_bytes[31 + 32] = recipient_bytes[27]; - hash_bytes[32 + 32] = recipient_bytes[28]; - hash_bytes[33 + 32] = recipient_bytes[29]; - hash_bytes[34 + 32] = recipient_bytes[30]; - hash_bytes[35 + 32] = recipient_bytes[31]; - - let content_sha256 = dep::std::hash::sha256(hash_bytes); - - // Convert the content_sha256 to a field element - let mut v = 1; - let mut high = 0 as Field; - let mut low = 0 as Field; - - // Unroll loops because otherwise takes forever to compile - // for i in [15 - i for i in range(16)]: - // print('high = high + (content_sha256[{0}] as Field) * v;'.format(i)) - // print('low = low + (content_sha256[16 + {0}] as Field) * v;'.format(i)) - // print('v = v * 256;'); - high = high + (content_sha256[15] as Field) * v; - low = low + (content_sha256[16 + 15] as Field) * v; - v = v * 256; - high = high + (content_sha256[14] as Field) * v; - low = low + (content_sha256[16 + 14] as Field) * v; - v = v * 256; - high = high + (content_sha256[13] as Field) * v; - low = low + (content_sha256[16 + 13] as Field) * v; - v = v * 256; - high = high + (content_sha256[12] as Field) * v; - low = low + (content_sha256[16 + 12] as Field) * v; - v = v * 256; - high = high + (content_sha256[11] as Field) * v; - low = low + (content_sha256[16 + 11] as Field) * v; - v = v * 256; - high = high + (content_sha256[10] as Field) * v; - low = low + (content_sha256[16 + 10] as Field) * v; - v = v * 256; - high = high + (content_sha256[9] as Field) * v; - low = low + (content_sha256[16 + 9] as Field) * v; - v = v * 256; - high = high + (content_sha256[8] as Field) * v; - low = low + (content_sha256[16 + 8] as Field) * v; - v = v * 256; - high = high + (content_sha256[7] as Field) * v; - low = low + (content_sha256[16 + 7] as Field) * v; - v = v * 256; - high = high + (content_sha256[6] as Field) * v; - low = low + (content_sha256[16 + 6] as Field) * v; - v = v * 256; - high = high + (content_sha256[5] as Field) * v; - low = low + (content_sha256[16 + 5] as Field) * v; - v = v * 256; - high = high + (content_sha256[4] as Field) * v; - low = low + (content_sha256[16 + 4] as Field) * v; - v = v * 256; - high = high + (content_sha256[3] as Field) * v; - low = low + (content_sha256[16 + 3] as Field) * v; - v = v * 256; - high = high + (content_sha256[2] as Field) * v; - low = low + (content_sha256[16 + 2] as Field) * v; - v = v * 256; - high = high + (content_sha256[1] as Field) * v; - low = low + (content_sha256[16 + 1] as Field) * v; - v = v * 256; - high = high + (content_sha256[0] as Field) * v; - low = low + (content_sha256[16 + 0] as Field) * v; - v = v * 256; - - // Abuse that a % p + b % p = (a + b) % p and that low < p - let content = low + high * v; - - context = context.message_portal(content); - - context.finish(inputs) - } - - /// ABI getBalance type "unconstrained" - fn getBalance( - owner: Point, - _padding: [Field; dep::aztec3::abi::MAX_ARGS - 2] - ) -> pub Field { - let owner_balance = balances.at(owner.x); - - balance_utils::get_balance(owner_balance.storage_slot) - } -} diff --git a/yarn-project/noir-contracts/src/examples/index.ts b/yarn-project/noir-contracts/src/examples/index.ts index 741ea839aa8..660d8c1cfd3 100644 --- a/yarn-project/noir-contracts/src/examples/index.ts +++ b/yarn-project/noir-contracts/src/examples/index.ts @@ -6,7 +6,6 @@ import ChildJson from './child_contract.json' assert { type: 'json' }; import PublicTokenContractJson from './public_token_contract.json' assert { type: 'json' }; import { ContractAbi } from '@aztec/foundation/abi' assert { type: 'json' }; import NonNativeTokenContractJson from './non_native_token_contract.json' assert { type: 'json' }; -import RollupNativeAssetContractJson from './rollup_native_asset_contract.json' assert { type: 'json' }; import AccountContractJson from './account_contract.json' assert { type: 'json' }; export const TestContractAbi = TestContractJson as ContractAbi; @@ -15,5 +14,4 @@ export const ParentAbi = ParentJson as ContractAbi; export const ChildAbi = ChildJson as ContractAbi; export const PublicTokenContractAbi = PublicTokenContractJson as ContractAbi; export const NonNativeTokenContractAbi = NonNativeTokenContractJson as ContractAbi; -export const RollupNativeAssetContractAbi = RollupNativeAssetContractJson as ContractAbi; export const AccountContractAbi = AccountContractJson as ContractAbi; diff --git a/yarn-project/noir-contracts/src/examples/non_native_token_contract.json b/yarn-project/noir-contracts/src/examples/non_native_token_contract.json index cc0b3623943..65371bfe824 100644 --- a/yarn-project/noir-contracts/src/examples/non_native_token_contract.json +++ b/yarn-project/noir-contracts/src/examples/non_native_token_contract.json @@ -180,6 +180,50 @@ "returnTypes": [], "bytecode": "00000000d1000000130000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000010000000110000001200000013000000300000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000c90000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000014000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000010105000300000014000000fe00000015000000fe00000010000000fe00000002000000160000001700000007010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000100000001002100000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000920100009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd027181a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a64f7261636c6595a96765744e6f746573329181b052656769737465724d656d496e64657881a85265676973746572cd026a909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303264219081a34d6f769281a85265676973746572cd027181a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a34d6f769281a852656769737465720081a85265676973746572cd0271a843616c6c4261636b81a9426f6f7473747261709191cd026a010000000000000000000000000000000000000000000000000000000000000000000000000000000102010000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023a00000039000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001390000003900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000390000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003c0000003b00000000010b00010000003b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013c0000003c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a00000000000000000000000000000000000000000000000000000000000000000000013b00000010000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000013900000000000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023e0000003d0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013d0000003d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000003f00000000010b00010000003f000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e00000000000000000000000000000000000000000000000000000000000000000000013f000000100000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900000000000000000000000000000000000000000000000000000000000000000000013d00000000000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000012800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000002000041000000420000000001000000010000000000000000000000000000000000000000000000000000000000000000000001410000004200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001410000004300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000410000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000013800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000002000044000000450000000001000000010000000000000000000000000000000000000000000000000000000000000000000001440000004500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001440000004600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000440000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024800000047000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001470000004700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004a0000004900000000010b000100000049000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004800000000000000000000000000000000000000000000000000000000000000000000014900000010000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000390000000000000000000000000000000000000000000000000000000000000000000001470000000000000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024c0000004b0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000004b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004e0000004d00000000010b00010000004d000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c00000000000000000000000000000000000000000000000000000000000000000000014d00000010000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d00000000000000000000000000000000000000000000000000000000000000000000014b00000000000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f00000000000000000000000000000000000000000000000000000000000000000000000200004f0000005000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014f0000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014f0000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014700000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000002000052000000530000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005400000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005200000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001470000005400000000000000000000000000000000000000000000000000000000000000000000000200001e0000005500000000010000000100000000000000000000000000000000000000000000000000000000000000000000011e0000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011e0000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004700000056000000000000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000002000057000000580000000001000000010000000000000000000000000000000000000000000000000000000000000000000001570000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001570000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014b00000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a00000000000000000000000000000000000000000000000000000000000000000000000200005a0000005b00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014b0000005c00000000000000000000000000000000000000000000000000000000000000000000000200002e0000005d00000000010000000100000000000000000000000000000000000000000000000000000000000000000000012e0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000012e0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b0000005e00000000000000000000000000000000000000000000000000000000000000000000015e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000011e00000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000600000005f00000000010b00010000005f0000004000000000000000010b000100000060000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e0000000000000000000000000000000000000000000000000000000000000000000001cf000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015f00000000000000000000000000000000000000000000000000000100000000000000006000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cf0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000620000006100000000010b0001000000610000004000000000000000010b000100000062000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001610000000000000000000000000000000000000000000000000000010000000000000000620000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000640000006300000000010b0001000000630000004000000000000000010b000100000064000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f00000000000000000000000000000000000000000000000000000000000000000000016300000000000000000000000000000000000000000000000000000100000000000000006400000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000660000006500000000010b0001000000650000004000000000000000010b000100000066000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061000000000000000000000000000000000000000000000000000000000000000000000165000000000000000000000000000000000000000000000000000001000000000000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000650000000000000000000000000000000000000000000000000000000000000000000001d0000000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d00000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000065000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000670000006800000000010b00010000006800000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001670000006700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006900000000000000000000000000000000000000000000000000000000000000000000020105000700000069000000fe00000047000000fe0000001a000000fe0000001b000000fe0000001c000000fe0000001d000000fe0000001e000000fe000000020000006a0000006b00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c0000000000000000000000000000000000000000000000000000000000000000000003010500040000006c000000fe0000006a000000fe00000016000000fe00000006000000fe000000020000006d0000006e00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000100000000006f000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae010000000001000000000000000000000000000000000000000000000000000000000000000000000147000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007000000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001470000006f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007100000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000006d000000fe00000071000000fe00000002000000720000007300000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000000000000001000000000074000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001470000007400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007500000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000006a000000fe00000075000000fe00000002000000760000007700000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e000000000000000000000000000000000000000000000000000000000000000000000001000000000078000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed81b052656769737465724d656d496e64657881a85265676973746572cd06ee81b052656769737465724d656d496e64657881a85265676973746572cd06ef81b052656769737465724d656d496e64657881a85265676973746572cd06f081b052656769737465724d656d496e64657881a85265676973746572cd06f181b052656769737465724d656d496e64657881a85265676973746572cd06f2909181ad5265676973746572496e646578cd06fd9081a34d6f769281a852656769737465720081a85265676973746572cd06fda843616c6c4261636b81a9426f6f7473747261709198cd06ebcd06eccd06edcd06eecd06efcd06f0cd06f1cd06f2010000000000000000000000000000000000000000000000000000000000000000000000000000000102000078000000790000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017a00000000000000000000000000000000000000000000000000000000000000000000000105000700000069000000fe0000004b000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe0000002e000000fe000000020000007b0000007c000000010500040000006c000000fe0000007b000000fe00000016000000fe00000006000000fe000000020000007d0000007e00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000100000000007f000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008000000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000007d000000fe00000080000000fe00000002000000810000008200000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000000000001000000000083000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000008300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008400000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000007b000000fe00000084000000fe00000002000000850000008600000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000001000000000087000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed81b052656769737465724d656d496e64657881a85265676973746572cd06ee81b052656769737465724d656d496e64657881a85265676973746572cd06ef81b052656769737465724d656d496e64657881a85265676973746572cd06f081b052656769737465724d656d496e64657881a85265676973746572cd06f181b052656769737465724d656d496e64657881a85265676973746572cd06f2909181ad5265676973746572496e646578cd06fd9081a34d6f769281a852656769737465720081a85265676973746572cd06fda843616c6c4261636b81a9426f6f7473747261709198cd06ebcd06eccd06edcd06eecd06efcd06f0cd06f1cd06f2010000000000000000000000000000000000000000000000000000000000000000000000000000000102000087000000880000000001000000010000000000000000000000000000000000000000000000000000000000000000000001870000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001870000008900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000870000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000000000000007000000000100000000008a000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07cc9081a34d6f769281a852656769737465720081a85265676973746572cd07cca843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000107000000000100000000008b000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07cc9081a34d6f769281a852656769737465720081a85265676973746572cd07cca843616c6c4261636b81a9426f6f747374726170919001000000000000000000000000000000000000000000000000000000000000000000000000000000010105000300000014000000fe00000015000000fe00000012000000fe000000020000008c0000008d0000000105000700000069000000fe00000015000000fe0000006c000000fe00000012000000fe00000013000000fe0000008b000000fe0000000f000000fe000000020000008e0000008f00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000001000000000090000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd085781b052656769737465724d656d496e64657881a85265676973746572cd085881b052656769737465724d656d496e64657881a85265676973746572cd085981b052656769737465724d656d496e64657881a85265676973746572cd085a81b052656769737465724d656d496e64657881a85265676973746572cd085b81b052656769737465724d656d496e64657881a85265676973746572cd085c81b052656769737465724d656d496e64657881a85265676973746572cd085d81b052656769737465724d656d496e64657881a85265676973746572cd085e81b052656769737465724d656d496e64657881a85265676973746572cd085f909181ad5265676973746572496e646578cd086b9081a34d6f769281a852656769737465720081a85265676973746572cd086ba843616c6c4261636b81a9426f6f7473747261709199cd0857cd0858cd0859cd085acd085bcd085ccd085dcd085ecd085f010000000000000000000000000000000000000000000000000000000000000000000000000000000102000090000000910000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000900000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000192000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000094000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000930000009400000000010b00010000009400000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001930000009300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f00000000000000000000000000000000000000000000000000000000000000000000011e0000000000000000000000000000000000000000000000000000000000000000000001d1000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d100000000000000000000000000000000000000000000000000000000000000000000000105000700000069000000fe00000015000000fe0000006c000000fe00000010000000fe00000011000000fe0000008a000000fe00000095000000fe00000002000000960000009700000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000195000000000000000000000000000000000000000000000000000000000000000000000001000000000098000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd085781b052656769737465724d656d496e64657881a85265676973746572cd085881b052656769737465724d656d496e64657881a85265676973746572cd085981b052656769737465724d656d496e64657881a85265676973746572cd085a81b052656769737465724d656d496e64657881a85265676973746572cd085b81b052656769737465724d656d496e64657881a85265676973746572cd085c81b052656769737465724d656d496e64657881a85265676973746572cd085d81b052656769737465724d656d496e64657881a85265676973746572cd085e81b052656769737465724d656d496e64657881a85265676973746572cd085f909181ad5265676973746572496e646578cd086b9081a34d6f769281a852656769737465720081a85265676973746572cd086ba843616c6c4261636b81a9426f6f7473747261709199cd0857cd0858cd0859cd085acd085bcd085ccd085dcd085ecd085f010000000000000000000000000000000000000000000000000000000000000000000000000000000102000098000000990000000001000000010000000000000000000000000000000000000000000000000000000000000000000001980000009900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001980000009a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd000000000000000000000000000000000000000000000000000000000000000100000000000000009b0000009c00000000010b00010000009c000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019b0000009b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a7000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000019600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b500000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c300000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ca000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cb000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cc000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cd0000000000000000000000000000000000000000000000000000000000000000000000", "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" + }, + { + "name": "withdraw", + "functionType": "secret", + "parameters": [ + { + "name": "amount", + "type": { + "kind": "field" + }, + "visibility": "public" + }, + { + "name": "sender", + "type": { + "kind": "struct", + "fields": [ + { + "name": "x", + "type": { + "kind": "field" + } + }, + { + "name": "y", + "type": { + "kind": "field" + } + } + ] + }, + "visibility": "public" + }, + { + "name": "recipient", + "type": { + "kind": "field" + }, + "visibility": "public" + } + ], + "returnTypes": [], + "bytecode": "0000000090010000120000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000003000000002010000030100000401000005010000060100000701000008010000090100000a0100000b0100000c0100000d0100000e0100000f010000100100001101000012010000130100001401000015010000160100001701000018010000190100001a0100001b0100001c0100001d0100001e0100001f0100002001000021010000220100002301000024010000250100002601000027010000290100002a0100002b0100002c0100002d0100002e0100002f010000300100003101000032010000780100000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000013000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001400000000000000000000000000000000000000000000000000000000000000000000010105000300000013000000fe00000014000000fe00000010000000fe0000000200000015000000160000000701000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001150000000000000000000000000000000000000000000000000000000000000000000000010000000100210000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003000000031000000320000003300000034000000350000003600000037000000920100009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd026c81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a64f7261636c6595a96765744e6f746573329181b052656769737465724d656d496e64657881a85265676973746572cd0265909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303264219081a34d6f769281a85265676973746572cd026c81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a34d6f769281a852656769737465720081a85265676973746572cd026ca843616c6c4261636b81a9426f6f7473747261709191cd0265010000000000000000000000000000000000000000000000000000000000000000000000000000000102010000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023900000038000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001380000003800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001390000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003b0000003a00000000010b00010000003a000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013b0000003b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003900000000000000000000000000000000000000000000000000000000000000000000013a00000010000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023d0000003c0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013c0000003c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003f0000003e00000000010b00010000003e000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013f0000003f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d00000000000000000000000000000000000000000000000000000000000000000000013e00000010000000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002800000000000000000000000000000000000000000000000000000000000000000000013c00000000000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000002000040000000410000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000013700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000002000043000000440000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000430000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000145000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024700000046000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000004600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000147000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000490000004800000000010b000100000048000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001490000004900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000148000000100000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000380000000000000000000000000000000000000000000000000000000000000000000001460000000000000000000000000000000000000000000000000000000000000000000002470000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b0000004a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004d0000004c00000000010b00010000004c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b00000000000000000000000000000000000000000000000000000000000000000000014c00000010000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c00000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e00000000000000000000000000000000000000000000000000000000000000000000000200004e0000004f00000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014600000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000002000051000000520000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005100000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001460000005300000000000000000000000000000000000000000000000000000000000000000000000200001d0000005400000000010000000100000000000000000000000000000000000000000000000000000000000000000000011d0000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011d0000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000055000000000000000000000000000000000000000000000000000000000000000000000155000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000002000056000000570000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014a00000058000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000590000000000000000000000000000000000000000000000000000000000000000000000020000590000005a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014a0000005b00000000000000000000000000000000000000000000000000000000000000000000000200002d0000005c00000000010000000100000000000000000000000000000000000000000000000000000000000000000000012d0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000012d0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000005d00000000000000000000000000000000000000000000000000000000000000000000015d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000012d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000005f0000005e00000000010b00010000005e0000004000000000000000010b00010000005f000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000134010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015e00000000000000000000000000000000000000000000000000000100000000000000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000340100000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000610000006000000000010b0001000000600000004000000000000000010b000100000061000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000010000000000000000610000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000630000006200000000010b0001000000620000004000000000000000010b000100000063000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e00000000000000000000000000000000000000000000000000000000000000000000016200000000000000000000000000000000000000000000000000000100000000000000006300000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000650000006400000000010b0001000000640000004000000000000000010b000100000065000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060000000000000000000000000000000000000000000000000000000000000000000000164000000000000000000000000000000000000000000000000000001000000000000000065000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064000000000000000000000000000000000000000000000000000000000000000000000135010000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000350100000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000660000006700000000010b00010000006700000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001660000006600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006800000000000000000000000000000000000000000000000000000000000000000000020105000700000068000000fe00000046000000fe00000019000000fe0000001a000000fe0000001b000000fe0000001c000000fe0000001d000000fe00000002000000690000006a00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b0000000000000000000000000000000000000000000000000000000000000000000003010500040000006b000000fe00000069000000fe00000015000000fe00000006000000fe000000020000006c0000006d00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000100000000006e000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a9010000000001000000000000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f00000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001460000006e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000700000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000006c000000fe00000070000000fe00000002000000710000007200000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b000000000000000000000000000000000000000000000000000000000000000000000001000000000073000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000007300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000740000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe00000069000000fe00000074000000fe00000002000000750000007600000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000001000000000077000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06e681b052656769737465724d656d496e64657881a85265676973746572cd06e781b052656769737465724d656d496e64657881a85265676973746572cd06e881b052656769737465724d656d496e64657881a85265676973746572cd06e981b052656769737465724d656d496e64657881a85265676973746572cd06ea81b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed909181ad5265676973746572496e646578cd06f89081a34d6f769281a852656769737465720081a85265676973746572cd06f8a843616c6c4261636b81a9426f6f7473747261709198cd06e6cd06e7cd06e8cd06e9cd06eacd06ebcd06eccd06ed010000000000000000000000000000000000000000000000000000000000000000000000000000000102000077000000780000000001000000010000000000000000000000000000000000000000000000000000000000000000000001770000007800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001770000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000077000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017900000000000000000000000000000000000000000000000000000000000000000000000105000700000068000000fe0000004a000000fe00000029000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe000000020000007a0000007b000000010500040000006b000000fe0000007a000000fe00000015000000fe00000006000000fe000000020000007c0000007d00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000100000000007e000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000007e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f0000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000007c000000fe0000007f000000fe00000002000000800000008100000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000000000000001000000000082000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000008200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000830000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000007a000000fe00000083000000fe00000002000000840000008500000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d000000000000000000000000000000000000000000000000000000000000000000000001000000000086000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06e681b052656769737465724d656d496e64657881a85265676973746572cd06e781b052656769737465724d656d496e64657881a85265676973746572cd06e881b052656769737465724d656d496e64657881a85265676973746572cd06e981b052656769737465724d656d496e64657881a85265676973746572cd06ea81b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed909181ad5265676973746572496e646578cd06f89081a34d6f769281a852656769737465720081a85265676973746572cd06f8a843616c6c4261636b81a9426f6f7473747261709198cd06e6cd06e7cd06e8cd06e9cd06eacd06ebcd06eccd06ed010000000000000000000000000000000000000000000000000000000000000000000000000000000102000086000000870000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008600000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000000000000070000000001000000000089000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07c79081a34d6f769281a852656769737465720081a85265676973746572cd07c7a843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f00000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000136010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003601000000000000000000000000000000000000000000000000000000000000000000000105000700000068000000fe00000014000000fe0000006b000000fe00000010000000fe00000011000000fe00000089000000fe0000008a000000fe000000020000008b0000008c00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018a00000000000000000000000000000000000000000000000000000000000000000000000100000000008d000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd083181b052656769737465724d656d496e64657881a85265676973746572cd083281b052656769737465724d656d496e64657881a85265676973746572cd083381b052656769737465724d656d496e64657881a85265676973746572cd083481b052656769737465724d656d496e64657881a85265676973746572cd083581b052656769737465724d656d496e64657881a85265676973746572cd083681b052656769737465724d656d496e64657881a85265676973746572cd083781b052656769737465724d656d496e64657881a85265676973746572cd083881b052656769737465724d656d496e64657881a85265676973746572cd0839909181ad5265676973746572496e646578cd08459081a34d6f769281a852656769737465720081a85265676973746572cd0845a843616c6c4261636b81a9426f6f7473747261709199cd0831cd0832cd0833cd0834cd0835cd0836cd0837cd0838cd083901000000000000000000000000000000000000000000000000000000000000000000000000000000010200008d0000008e00000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000091000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000900000009100000000010b00010000009100000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100930000009200000000010b00010000009200000008000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000192000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100950000009400000000010b00010000009400000008000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001950000009500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000095000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009200000000000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000000000001009500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000970000009600000000010b000100000096000000f6000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001970000009700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000093000000000000000000000000000000000000000000000000000000000000000000000196000000004000000000000000000000000000000000000000000000000000000000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000000000100930000000000000000000000000000000000000000000000000000000000000000000000010b0001000000980000000800000000000000010b0001000000990000000800000000000000010b00010000009a0000000800000000000000010b00010000009b0000000800000000000000010b00010000009c0000000800000000000000010b00010000009d0000000800000000000000010b00010000009e0000000800000000000000010b00010000009f0000000800000000000000010b0001000000a00000000800000000000000010b0001000000a10000000800000000000000010b0001000000a20000000800000000000000010b0001000000a30000000800000000000000010b0001000000a40000000800000000000000010b0001000000a50000000800000000000000010b0001000000a60000000800000000000000010b0001000000a70000000800000000000000010b0001000000a80000000800000000000000010b0001000000a90000000800000000000000010b0001000000aa0000000800000000000000010b0001000000ab0000000800000000000000010b0001000000ac0000000800000000000000010b0001000000ad0000000800000000000000010b0001000000ae0000000800000000000000010b0001000000af0000000800000000000000010b0001000000b00000000800000000000000010b0001000000b10000000800000000000000010b0001000000b20000000800000000000000010b0001000000b30000000800000000000000010b0001000000b40000000800000000000000010b0001000000b50000000800000000000000010b0001000000b6000000080000000000000002020000000000020000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c1000010f0000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000009200000000000000000000000000000000000000000000000000000000000000000000001f00000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b60000000001000000000000000300000030644d72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b500000030634e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e031a029b85045b68181585d2833e84879b9709143e1f593f0000001b300000030644e71e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e1319f29b85045b68181585d2833e84879b9709143e1f593f0000001b100000030644e72e130a029b85045b68181585d2833e84879b9709143e1f593f0000001b200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b75045b68181585d2833e84879b9709143e1f593f0000001af00000030644e72e131a028b85045b68181585d2833e84879b9709143e1f593f0000001b000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85044b68181585d2833e84879b9709143e1f593f0000001ad00000030644e72e131a029b84f45b68181585d2833e84879b9709143e1f593f0000001ae00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68081585d2833e84879b9709143e1f593f0000001ab00000030644e72e131a029b85045b58181585d2833e84879b9709143e1f593f0000001ac00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181575d2833e84879b9709143e1f593f0000001a900000030644e72e131a029b85045b68180585d2833e84879b9709143e1f593f0000001aa00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f0000001a700000030644e72e131a029b85045b68181585c2833e84879b9709143e1f593f0000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e74879b9709143e1f593f0000001a500000030644e72e131a029b85045b68181585d2832e84879b9709143e1f593f0000001a600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84878b9709143e1f593f0000001a300000030644e72e131a029b85045b68181585d2833e84779b9709143e1f593f0000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b96f9143e1f593f0000001a100000030644e72e131a029b85045b68181585d2833e84879b8709143e1f593f0000001a200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709142e1f593f00000019f00000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f493f00000019d00000030644e72e131a029b85045b68181585d2833e84879b9709143e0f593f00000019e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593ef0000019b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f592f00000019c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff019900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efff00019a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014401000000000000000000000000000000000000000000000000000000000000000000014501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014201000000000000000000000000000000000000000000000000000000000000000000014301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014001000000000000000000000000000000000000000000000000000000000000000000014101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013e01000000000000000000000000000000000000000000000000000000000000000000013f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013c01000000000000000000000000000000000000000000000000000000000000000000013d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013a01000000000000000000000000000000000000000000000000000000000000000000013b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013801000000000000000000000000000000000000000000000000000000000000000000013901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009800000000000000000000000000000000000000000000000000000000000000000000013701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014c01000000000000000000000000000000000000000000000000000000000000000000014d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014a01000000000000000000000000000000000000000000000000000000000000000000014b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014801000000000000000000000000000000000000000000000000000000000000000000014901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014601000000000000000000000000000000000000000000000000000000000000000000014701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015001000000000000000000000000000000000000000000000000000000000000000000015101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014e01000000000000000000000000000000000000000000000000000000000000000000014f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005301000000000000000000000000000000000000000000000000000000000000000000000000000000030000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c1000010f0000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000092000000000000000000000000000000000000000000000000000000000000000000000154010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015201000000000000000000000000000000000000000000000000000000000000000000015301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005401000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000112000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100b8000000b700000000010b0001000000b7000000080000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001b7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100ba000000b900000000010b0001000000b900000008000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001ba000000ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b70000000000000000000000000000000000000000000000000000000000000000000001b90000000000000000000000000000000000000000000000000000000000000000000100ba000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000bc000000bb00000000010b0001000000bb000000f6000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001bc000000bc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b80000000000000000000000000000000000000000000000000000000000000000000001bb0000000040000000000000000000000000000000000000000000000000000000000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000120000000000000000000000000000000000000000000000000000000000000000000001b70000000000000000000000000000000000000000000000000000000000000000000100b80000000000000000000000000000000000000000000000000000000000000000000000010b0001000000bd0000000800000000000000010b0001000000be0000000800000000000000010b0001000000bf0000000800000000000000010b0001000000c00000000800000000000000010b0001000000c10000000800000000000000010b0001000000c20000000800000000000000010b0001000000c30000000800000000000000010b0001000000c40000000800000000000000010b0001000000c50000000800000000000000010b0001000000c60000000800000000000000010b0001000000c70000000800000000000000010b0001000000c80000000800000000000000010b0001000000c90000000800000000000000010b0001000000ca0000000800000000000000010b0001000000cb0000000800000000000000010b0001000000cc0000000800000000000000010b0001000000cd0000000800000000000000010b0001000000ce0000000800000000000000010b0001000000cf0000000800000000000000010b0001000000d00000000800000000000000010b0001000000d10000000800000000000000010b0001000000d20000000800000000000000010b0001000000d30000000800000000000000010b0001000000d40000000800000000000000010b0001000000d50000000800000000000000010b0001000000d60000000800000000000000010b0001000000d70000000800000000000000010b0001000000d80000000800000000000000010b0001000000d90000000800000000000000010b0001000000da0000000800000000000000010b0001000000db000000080000000000000002020000000000020000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c100001120000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000b700000000000000000000000000000000000000000000000000000000000000000000001f000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db0000000001000000000000000300000030644d72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001da00000030634e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001db00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e031a029b85045b68181585d2833e84879b9709143e1f593f0000001d800000030644e71e131a029b85045b68181585d2833e84879b9709143e1f593f0000001d900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e1319f29b85045b68181585d2833e84879b9709143e1f593f0000001d600000030644e72e130a029b85045b68181585d2833e84879b9709143e1f593f0000001d700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b75045b68181585d2833e84879b9709143e1f593f0000001d400000030644e72e131a028b85045b68181585d2833e84879b9709143e1f593f0000001d500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000058010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85044b68181585d2833e84879b9709143e1f593f0000001d200000030644e72e131a029b84f45b68181585d2833e84879b9709143e1f593f0000001d300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68081585d2833e84879b9709143e1f593f0000001d000000030644e72e131a029b85045b58181585d2833e84879b9709143e1f593f0000001d100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181575d2833e84879b9709143e1f593f0000001ce00000030644e72e131a029b85045b68180585d2833e84879b9709143e1f593f0000001cf00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f0000001cc00000030644e72e131a029b85045b68181585c2833e84879b9709143e1f593f0000001cd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e74879b9709143e1f593f0000001ca00000030644e72e131a029b85045b68181585d2832e84879b9709143e1f593f0000001cb00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84878b9709143e1f593f0000001c800000030644e72e131a029b85045b68181585d2833e84779b9709143e1f593f0000001c900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b96f9143e1f593f0000001c600000030644e72e131a029b85045b68181585d2833e84879b8709143e1f593f0000001c700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709142e1f593f0000001c400000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001c500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f493f0000001c200000030644e72e131a029b85045b68181585d2833e84879b9709143e0f593f0000001c300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593ef000001c000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f592f0000001c100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000062010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff01be00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efff0001bf00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000063010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016201000000000000000000000000000000000000000000000000000000000000000000016301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016001000000000000000000000000000000000000000000000000000000000000000000016101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000065010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015e01000000000000000000000000000000000000000000000000000000000000000000015f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015c01000000000000000000000000000000000000000000000000000000000000000000015d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015a01000000000000000000000000000000000000000000000000000000000000000000015b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000068010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015801000000000000000000000000000000000000000000000000000000000000000000015901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015601000000000000000000000000000000000000000000000000000000000000000000015701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000015501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016a01000000000000000000000000000000000000000000000000000000000000000000016b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016801000000000000000000000000000000000000000000000000000000000000000000016901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016601000000000000000000000000000000000000000000000000000000000000000000016701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016401000000000000000000000000000000000000000000000000000000000000000000016501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016e01000000000000000000000000000000000000000000000000000000000000000000016f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000070010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016c01000000000000000000000000000000000000000000000000000000000000000000016d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007101000000000000000000000000000000000000000000000000000000000000000000000000000000030000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c100001120000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000b7000000000000000000000000000000000000000000000000000000000000000000000172010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017001000000000000000000000000000000000000000000000000000000000000000000017101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000072010000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dc000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dd00000000000000000000000000000000000000000000000000000000000000000000f700000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000de000000000000000000000000000000000000000000000000000000000000000000001400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000df00000000000000000000000000000000000000000000000000000000000000000000ce01010044000000dc00000008000000dd00000008000000de00000008000000df00000008000000b600000008000000b500000008000000b400000008000000b300000008000000b200000008000000b100000008000000b000000008000000af00000008000000ae00000008000000ad00000008000000ac00000008000000ab00000008000000aa00000008000000a900000008000000a800000008000000a700000008000000a600000008000000a500000008000000a400000008000000a300000008000000a200000008000000a100000008000000a0000000080000009f000000080000009e000000080000009d000000080000009c000000080000009b000000080000009a00000008000000990000000800000098000000080000009200000008000000db00000008000000da00000008000000d900000008000000d800000008000000d700000008000000d600000008000000d500000008000000d400000008000000d300000008000000d200000008000000d100000008000000d000000008000000cf00000008000000ce00000008000000cd00000008000000cc00000008000000cb00000008000000ca00000008000000c900000008000000c800000008000000c700000008000000c600000008000000c500000008000000c400000008000000c300000008000000c200000008000000c100000008000000c000000008000000bf00000008000000be00000008000000bd00000008000000b70000000800000020000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff00000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000010001000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000001010000000000000000000000000000000000000000000000000000fffffffffffffffe0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffe00000000000000000000000000000000000000000000000000000000000000010000000000000000000100000101000000010b00010000000101000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001000100000001000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000002010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000004010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000005010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000006010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000007010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000c01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000d01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001101000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001201000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001301000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001401000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001501000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001601000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001801000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001901000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002001000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002101000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002201000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002301000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002401000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002501000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002601000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002701000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000001ff00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002801000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007301000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000010000fd0000000000000000000000000000000000000000000000000000000000000000000100fe00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007401000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000100000000fb0000000000000000000000000000000000000000000000000000000000000001000000fc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007501000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000001000000000000f90000000000000000000000000000000000000000000000000000000000010000000000fa00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007601000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000010000000000000000f70000000000000000000000000000000000000000000000000000000100000000000000f800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007701000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000100000000000000000000f50000000000000000000000000000000000000000000000000001000000000000000000f600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007801000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000001000000000000000000000000f30000000000000000000000000000000000000000000000010000000000000000000000f400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007901000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000010000000000000000000000000000f10000000000000000000000000000000000000000000100000000000000000000000000f200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000100000000000000000000000000000000ef0000000000000000000000000000000000000001000000000000000000000000000000f000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007b01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000001000000000000000000000000000000000000ed0000000000000000000000000000000000010000000000000000000000000000000000ee00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000010000000000000000000000000000000000000000eb0000000000000000000000000000000100000000000000000000000000000000000000ec00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007d01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000100000000000000000000000000000000000000000000e90000000000000000000000000001000000000000000000000000000000000000000000ea00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007e01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000001000000000000000000000000000000000000000000000000e70000000000000000000000010000000000000000000000000000000000000000000000e800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000010000000000000000000000000000000000000000000000000000e50000000000000000000100000000000000000000000000000000000000000000000000e600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008001000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000100000000000000000000000000000000000000000000000000000000e30000000000000001000000000000000000000000000000000000000000000000000000e400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018001000000000000000000000000000000000000000000000000000000000000000000018101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000082010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017e01000000000000000000000000000000000000000000000000000000000000000000017f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000083010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017c01000000000000000000000000000000000000000000000000000000000000000000017d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000084010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017a01000000000000000000000000000000000000000000000000000000000000000000017b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000085010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017801000000000000000000000000000000000000000000000000000000000000000000017901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000086010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017601000000000000000000000000000000000000000000000000000000000000000000017701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000087010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017401000000000000000000000000000000000000000000000000000000000000000000017501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008801000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000010000000000000000000000000000000000000000000000000000000000e200000000000000000000000000000000000000000000000000000000000000000000017301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000089010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018801000000000000000000000000000000000000000000000000000000000000000000018901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018601000000000000000000000000000000000000000000000000000000000000000000018701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018401000000000000000000000000000000000000000000000000000000000000000000018501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018201000000000000000000000000000000000000000000000000000000000000000000018301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018c01000000000000000000000000000000000000000000000000000000000000000000018d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018a01000000000000000000000000000000000000000000000000000000000000000000018b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000100000000000000000000000000000000000000000000000000000000000000e00000000001000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000000000000190010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018e01000000000000000000000000000000000000000000000000000000000000000000018f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000090010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012801000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002901000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000320100000000000000000000000000000000000000000000000000000000000000000000", + "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" } ] } diff --git a/yarn-project/noir-contracts/src/examples/rollup_native_asset_contract.json b/yarn-project/noir-contracts/src/examples/rollup_native_asset_contract.json deleted file mode 100644 index 3b64ddbb59c..00000000000 --- a/yarn-project/noir-contracts/src/examples/rollup_native_asset_contract.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "name": "RollupNativeAsset", - "functions": [ - { - "name": "constructor", - "functionType": "secret", - "parameters": [ - { - "name": "initial_supply", - "type": { - "kind": "field" - }, - "visibility": "public" - }, - { - "name": "owner", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "public" - } - ], - "returnTypes": [], - "bytecode": "000000004f000000110000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000300000001e0000001f0000002000000021000000220000002300000024000000250000002600000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e000000400000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000012000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001300000000000000000000000000000000000000000000000000000000000000000000010105000300000012000000fe00000013000000fe00000010000000fe000000020000001400000015000000070000000001000000000016000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd02309081a34d6f769281a852656769737465720081a85265676973746572cd0230a843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001800000000000000000000000000000000000000000000000000000000000000000000030105000700000017000000fe00000013000000fe00000018000000fe00000010000000fe00000011000000fe00000016000000fe0000000f000000fe00000002000000190000001a00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010f00000000000000000000000000000000000000000000000000000000000000000000000100000000001b000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd06d181b052656769737465724d656d496e64657881a85265676973746572cd06d281b052656769737465724d656d496e64657881a85265676973746572cd06d381b052656769737465724d656d496e64657881a85265676973746572cd06d481b052656769737465724d656d496e64657881a85265676973746572cd06d581b052656769737465724d656d496e64657881a85265676973746572cd06d681b052656769737465724d656d496e64657881a85265676973746572cd06d781b052656769737465724d656d496e64657881a85265676973746572cd06d881b052656769737465724d656d496e64657881a85265676973746572cd06d9909181ad5265676973746572496e646578cd06e59081a34d6f769281a852656769737465720081a85265676973746572cd06e5a843616c6c4261636b81a9426f6f7473747261709199cd06d1cd06d2cd06d3cd06d4cd06d5cd06d6cd06d7cd06d8cd06d901000000000000000000000000000000000000000000000000000000000000000000000000000000010200001b0000001c00000000010000000100000000000000000000000000000000000000000000000000000000000000000000011b0000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011b0000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e0000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - }, - { - "name": "getBalance", - "functionType": "unconstrained", - "parameters": [ - { - "name": "owner", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "private" - } - ], - "returnTypes": [ - { - "kind": "field" - } - ], - "bytecode": "000000007c0000000000000001000000730000005400000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a00000000000000000000000000000000000000000000000000000000000000000000010105000300000009000000fe0000000a000000fe00000001000000fe000000020000000b0000000c00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001003d0000000d0000000e0000000f000000100000001100000012000000130000001400000015000000160000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f00000040000000410000004200000043000000440000004500000046000000470000004800000049000000080200009981a34a4d509103a454726170a453746f7081a34d6f769281a852656769737465725d81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303381a64f7261636c6595ad766965774e6f746573506167659381b052656769737465724d656d496e64657881a852656769737465725281b052656769737465724d656d496e64657881a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030306181b052656769737465724d656d496e64657881a8526567697374657253909181a541727261799281a8436f6e7374616e74d940303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030333d9081a34d6f769281a852656769737465725d81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303381a34d6f769281a852656769737465720081a852656769737465725da843616c6c4261636b81a9426f6f747374726170919252530100000000000000000000000000000000000000000000000000000000000000000000000000000001020100000000000100000000000000000000000000000000000000000000000000000000000000000000010e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b0000004a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004d0000004c00000000010b00010000004c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b00000000000000000000000000000000000000000000000000000000000000000000014c00000010000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001140000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024f0000004e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000510000005000000000010b000100000050000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000150000000100000000000000000000000000000000000000000000000000000000000000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001400000000000000000000000000000000000000000000000000000000000000000000014e00000000000000000000000000000000000000000000000000000000000000000000024f0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000011a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025300000052000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005200000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000153000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000550000005400000000010b000100000054000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001550000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000053000000000000000000000000000000000000000000000000000000000000000000000154000000100000000000000000000000000000000000000000000000000000000000000055000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a000000000000000000000000000000000000000000000000000000000000000000000152000000000000000000000000000000000000000000000000000000000000000000000253000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025700000056000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000157000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000590000005800000000010b000100000058000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000158000000100000000000000000000000000000000000000000000000000000000000000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000000000000257000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001260000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025b0000005a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000005d0000005c00000000010b00010000005c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015d0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000015c00000010000000000000000000000000000000000000000000000000000000000000005d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002600000000000000000000000000000000000000000000000000000000000000000000015a00000000000000000000000000000000000000000000000000000000000000000000025b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000012c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025f0000005e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015e0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000610000006000000000010b000100000060000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001610000006100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f000000000000000000000000000000000000000000000000000000000000000000000160000000100000000000000000000000000000000000000000000000000000000000000061000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c00000000000000000000000000000000000000000000000000000000000000000000015e00000000000000000000000000000000000000000000000000000000000000000000025f000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001320000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026300000062000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001620000006200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006200000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000163000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000650000006400000000010b000100000064000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001650000006500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000065000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000063000000000000000000000000000000000000000000000000000000000000000000000164000000100000000000000000000000000000000000000000000000000000000000000065000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000162000000000000000000000000000000000000000000000000000000000000000000000263000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026700000066000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001660000006600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000167000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000690000006800000000010b000100000068000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001690000006900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000168000000100000000000000000000000000000000000000000000000000000000000000069000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000380000000000000000000000000000000000000000000000000000000000000000000001660000000000000000000000000000000000000000000000000000000000000000000002670000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026b0000006a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016a0000006a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000016b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000006d0000006c00000000010b00010000006c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016d0000006d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b00000000000000000000000000000000000000000000000000000000000000000000016c00000010000000000000000000000000000000000000000000000000000000000000006d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e00000000000000000000000000000000000000000000000000000000000000000000016a00000000000000000000000000000000000000000000000000000000000000000000026b000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001440000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026f0000006e0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000016e0000006e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000016f000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000710000007000000000010b000100000070000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001710000007100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000071000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f000000000000000000000000000000000000000000000000000000000000000000000170000000100000000000000000000000000000000000000000000000000000000000000071000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004400000000000000000000000000000000000000000000000000000000000000000000016e00000000000000000000000000000000000000000000000000000000000000000000026f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000075000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013d00000000000000000000000000000000000000000000000000000000000000000000014300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000076000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013100000000000000000000000000000000000000000000000000000000000000000000013700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000077000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012500000000000000000000000000000000000000000000000000000000000000000000012b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017700000000000000000000000000000000000000000000000000000000000000000000017800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000079000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000000000000017600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017900000000000000000000000000000000000000000000000000000000000000000000017a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000011900000000000000000000000000000000000000000000000000000000000000000000017c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011f00000000000000000000000000000000000000000000000000000000000000000000017b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000730000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - }, - { - "name": "mint", - "functionType": "secret", - "parameters": [ - { - "name": "amount", - "type": { - "kind": "field" - }, - "visibility": "public" - }, - { - "name": "owner", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "public" - } - ], - "returnTypes": [], - "bytecode": "000000004f000000110000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000300000001e0000001f0000002000000021000000220000002300000024000000250000002600000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000390000003a0000003b0000003c0000003d0000003e0000003f000000400000004100000042000000430000004400000045000000460000004700000048000000490000004a0000004b0000004c0000004d0000004e000000400000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000012000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001300000000000000000000000000000000000000000000000000000000000000000000010105000300000012000000fe00000013000000fe00000010000000fe000000020000001400000015000000070000000001000000000016000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd02309081a34d6f769281a852656769737465720081a85265676973746572cd0230a843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017000000000000000000000000000000000000000000000000000000000000000000000200000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001800000000000000000000000000000000000000000000000000000000000000000000030105000700000017000000fe00000013000000fe00000018000000fe00000010000000fe00000011000000fe00000016000000fe0000000f000000fe00000002000000190000001a00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011800000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010f00000000000000000000000000000000000000000000000000000000000000000000000100000000001b000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd06d181b052656769737465724d656d496e64657881a85265676973746572cd06d281b052656769737465724d656d496e64657881a85265676973746572cd06d381b052656769737465724d656d496e64657881a85265676973746572cd06d481b052656769737465724d656d496e64657881a85265676973746572cd06d581b052656769737465724d656d496e64657881a85265676973746572cd06d681b052656769737465724d656d496e64657881a85265676973746572cd06d781b052656769737465724d656d496e64657881a85265676973746572cd06d881b052656769737465724d656d496e64657881a85265676973746572cd06d9909181ad5265676973746572496e646578cd06e59081a34d6f769281a852656769737465720081a85265676973746572cd06e5a843616c6c4261636b81a9426f6f7473747261709199cd06d1cd06d2cd06d3cd06d4cd06d5cd06d6cd06d7cd06d8cd06d901000000000000000000000000000000000000000000000000000000000000000000000000000000010200001b0000001c00000000010000000100000000000000000000000000000000000000000000000000000000000000000000011b0000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011b0000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000021000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000022000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000023000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000024000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000025000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000026000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000027000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000028000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000029000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000032000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000033000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000034000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000035000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000036000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e0000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - }, - { - "name": "transfer", - "functionType": "secret", - "parameters": [ - { - "name": "amount", - "type": { - "kind": "field" - }, - "visibility": "public" - }, - { - "name": "sender", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "public" - }, - { - "name": "recipient", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "public" - } - ], - "returnTypes": [], - "bytecode": "00000000d1000000130000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f00000010000000110000001200000013000000300000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b6000000b7000000b8000000b9000000ba000000bb000000bc000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000c90000000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000014000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001500000000000000000000000000000000000000000000000000000000000000000000010105000300000014000000fe00000015000000fe00000010000000fe00000002000000160000001700000007010000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000100000001002100000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f000000300000003100000032000000330000003400000035000000360000003700000038000000920100009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd027181a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a64f7261636c6595a96765744e6f746573329181b052656769737465724d656d496e64657881a85265676973746572cd026a909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303264219081a34d6f769281a85265676973746572cd027181a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a34d6f769281a852656769737465720081a85265676973746572cd0271a843616c6c4261636b81a9426f6f7473747261709191cd026a010000000000000000000000000000000000000000000000000000000000000000000000000000000102010000000000010000000000000000000000000000000000000000000000000000000000000000000001190000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023a00000039000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001390000003900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000390000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003c0000003b00000000010b00010000003b000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013c0000003c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a00000000000000000000000000000000000000000000000000000000000000000000013b00000010000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001900000000000000000000000000000000000000000000000000000000000000000000013900000000000000000000000000000000000000000000000000000000000000000000023a000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001290000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023e0000003d0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013d0000003d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013e000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000400000003f00000000010b00010000003f000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e00000000000000000000000000000000000000000000000000000000000000000000013f000000100000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002900000000000000000000000000000000000000000000000000000000000000000000013d00000000000000000000000000000000000000000000000000000000000000000000023e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000012800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041000000000000000000000000000000000000000000000000000000000000000000000002000041000000420000000001000000010000000000000000000000000000000000000000000000000000000000000000000001410000004200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001410000004300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000410000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000143000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000013800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044000000000000000000000000000000000000000000000000000000000000000000000002000044000000450000000001000000010000000000000000000000000000000000000000000000000000000000000000000001440000004500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001440000004600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000440000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001390000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024800000047000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001470000004700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001480000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004a0000004900000000010b000100000049000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004800000000000000000000000000000000000000000000000000000000000000000000014900000010000000000000000000000000000000000000000000000000000000000000004a000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000390000000000000000000000000000000000000000000000000000000000000000000001470000000000000000000000000000000000000000000000000000000000000000000002480000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024c0000004b0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000004b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004e0000004d00000000010b00010000004d000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c00000000000000000000000000000000000000000000000000000000000000000000014d00000010000000000000000000000000000000000000000000000000000000000000004e000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d00000000000000000000000000000000000000000000000000000000000000000000014b00000000000000000000000000000000000000000000000000000000000000000000024c000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f00000000000000000000000000000000000000000000000000000000000000000000000200004f0000005000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014f0000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014f0000005100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014700000051000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052000000000000000000000000000000000000000000000000000000000000000000000002000052000000530000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005400000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001520000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005200000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001470000005400000000000000000000000000000000000000000000000000000000000000000000000200001e0000005500000000010000000100000000000000000000000000000000000000000000000000000000000000000000011e0000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011e0000005600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004700000056000000000000000000000000000000000000000000000000000000000000000000000156000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000002000057000000580000000001000000010000000000000000000000000000000000000000000000000000000000000000000001570000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001570000005900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014b00000059000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a00000000000000000000000000000000000000000000000000000000000000000000000200005a0000005b00000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000015a0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014b0000005c00000000000000000000000000000000000000000000000000000000000000000000000200002e0000005d00000000010000000100000000000000000000000000000000000000000000000000000000000000000000012e0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000012e0000005e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b0000005e00000000000000000000000000000000000000000000000000000000000000000000015e0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000011e00000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000600000005f00000000010b00010000005f0000004000000000000000010b000100000060000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e0000000000000000000000000000000000000000000000000000000000000000000001cf000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015f00000000000000000000000000000000000000000000000000000100000000000000006000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cf0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000620000006100000000010b0001000000610000004000000000000000010b000100000062000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001610000000000000000000000000000000000000000000000000000010000000000000000620000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000640000006300000000010b0001000000630000004000000000000000010b000100000064000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f00000000000000000000000000000000000000000000000000000000000000000000016300000000000000000000000000000000000000000000000000000100000000000000006400000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000161000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000660000006500000000010b0001000000650000004000000000000000010b000100000066000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061000000000000000000000000000000000000000000000000000000000000000000000165000000000000000000000000000000000000000000000000000001000000000000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000650000000000000000000000000000000000000000000000000000000000000000000001d0000000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d00000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000065000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000670000006800000000010b00010000006800000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001670000006700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006900000000000000000000000000000000000000000000000000000000000000000000020105000700000069000000fe00000047000000fe0000001a000000fe0000001b000000fe0000001c000000fe0000001d000000fe0000001e000000fe000000020000006a0000006b00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c0000000000000000000000000000000000000000000000000000000000000000000003010500040000006c000000fe0000006a000000fe00000016000000fe00000006000000fe000000020000006d0000006e00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000100000000006f000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae010000000001000000000000000000000000000000000000000000000000000000000000000000000147000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007000000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001470000006f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007100000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000006d000000fe00000071000000fe00000002000000720000007300000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c000000000000000000000000000000000000000000000000000000000000000000000001000000000074000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001470000007400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007500000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000006a000000fe00000075000000fe00000002000000760000007700000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014700000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011e000000000000000000000000000000000000000000000000000000000000000000000001000000000078000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed81b052656769737465724d656d496e64657881a85265676973746572cd06ee81b052656769737465724d656d496e64657881a85265676973746572cd06ef81b052656769737465724d656d496e64657881a85265676973746572cd06f081b052656769737465724d656d496e64657881a85265676973746572cd06f181b052656769737465724d656d496e64657881a85265676973746572cd06f2909181ad5265676973746572496e646578cd06fd9081a34d6f769281a852656769737465720081a85265676973746572cd06fda843616c6c4261636b81a9426f6f7473747261709198cd06ebcd06eccd06edcd06eecd06efcd06f0cd06f1cd06f2010000000000000000000000000000000000000000000000000000000000000000000000000000000102000078000000790000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001780000007a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000078000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017a00000000000000000000000000000000000000000000000000000000000000000000000105000700000069000000fe0000004b000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe0000002e000000fe000000020000007b0000007c000000010500040000006c000000fe0000007b000000fe00000016000000fe00000006000000fe000000020000007d0000007e00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000100000000007f000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000007f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008000000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000007d000000fe00000080000000fe00000002000000810000008200000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c000000000000000000000000000000000000000000000000000000000000000000000001000000000083000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06ad81b052656769737465724d656d496e64657881a85265676973746572cd06ae909181ad5265676973746572496e646578cd06b39081a34d6f769281a852656769737465720081a85265676973746572cd06b3a843616c6c4261636b81a9426f6f7473747261709192cd06adcd06ae01000000000100000000000000000000000000000000000000000000000000000000000000000000014b000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014b0000008300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008400000000000000000000000000000000000000000000000000000000000000000000000105000300000070000000fe0000007b000000fe00000084000000fe00000002000000850000008600000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012e000000000000000000000000000000000000000000000000000000000000000000000001000000000087000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed81b052656769737465724d656d496e64657881a85265676973746572cd06ee81b052656769737465724d656d496e64657881a85265676973746572cd06ef81b052656769737465724d656d496e64657881a85265676973746572cd06f081b052656769737465724d656d496e64657881a85265676973746572cd06f181b052656769737465724d656d496e64657881a85265676973746572cd06f2909181ad5265676973746572496e646578cd06fd9081a34d6f769281a852656769737465720081a85265676973746572cd06fda843616c6c4261636b81a9426f6f7473747261709198cd06ebcd06eccd06edcd06eecd06efcd06f0cd06f1cd06f2010000000000000000000000000000000000000000000000000000000000000000000000000000000102000087000000880000000001000000010000000000000000000000000000000000000000000000000000000000000000000001870000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001870000008900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000870000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000189000000000000000000000000000000000000000000000000000000000000000000000007000000000100000000008a000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07cc9081a34d6f769281a852656769737465720081a85265676973746572cd07cca843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000107000000000100000000008b000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07cc9081a34d6f769281a852656769737465720081a85265676973746572cd07cca843616c6c4261636b81a9426f6f747374726170919001000000000000000000000000000000000000000000000000000000000000000000000000000000010105000300000014000000fe00000015000000fe00000012000000fe000000020000008c0000008d0000000105000700000069000000fe00000015000000fe0000006c000000fe00000012000000fe00000013000000fe0000008b000000fe0000000f000000fe000000020000008e0000008f00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011200000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011300000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000001000000000090000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd085781b052656769737465724d656d496e64657881a85265676973746572cd085881b052656769737465724d656d496e64657881a85265676973746572cd085981b052656769737465724d656d496e64657881a85265676973746572cd085a81b052656769737465724d656d496e64657881a85265676973746572cd085b81b052656769737465724d656d496e64657881a85265676973746572cd085c81b052656769737465724d656d496e64657881a85265676973746572cd085d81b052656769737465724d656d496e64657881a85265676973746572cd085e81b052656769737465724d656d496e64657881a85265676973746572cd085f909181ad5265676973746572496e646578cd086b9081a34d6f769281a852656769737465720081a85265676973746572cd086ba843616c6c4261636b81a9426f6f7473747261709199cd0857cd0858cd0859cd085acd085bcd085ccd085dcd085ecd085f010000000000000000000000000000000000000000000000000000000000000000000000000000000102000090000000910000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000900000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000192000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000094000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000930000009400000000010b00010000009400000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001930000009300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000930000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f00000000000000000000000000000000000000000000000000000000000000000000011e0000000000000000000000000000000000000000000000000000000000000000000001d1000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000d100000000000000000000000000000000000000000000000000000000000000000000000105000700000069000000fe00000015000000fe0000006c000000fe00000010000000fe00000011000000fe0000008a000000fe00000095000000fe00000002000000960000009700000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018a000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000195000000000000000000000000000000000000000000000000000000000000000000000001000000000098000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd085781b052656769737465724d656d496e64657881a85265676973746572cd085881b052656769737465724d656d496e64657881a85265676973746572cd085981b052656769737465724d656d496e64657881a85265676973746572cd085a81b052656769737465724d656d496e64657881a85265676973746572cd085b81b052656769737465724d656d496e64657881a85265676973746572cd085c81b052656769737465724d656d496e64657881a85265676973746572cd085d81b052656769737465724d656d496e64657881a85265676973746572cd085e81b052656769737465724d656d496e64657881a85265676973746572cd085f909181ad5265676973746572496e646578cd086b9081a34d6f769281a852656769737465720081a85265676973746572cd086ba843616c6c4261636b81a9426f6f7473747261709199cd0857cd0858cd0859cd085acd085bcd085ccd085dcd085ecd085f010000000000000000000000000000000000000000000000000000000000000000000000000000000102000098000000990000000001000000010000000000000000000000000000000000000000000000000000000000000000000001980000009900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009a00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001980000009a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000098000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000019a000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009c000000000000000000000000000000000000000000000000000000fffffffffffffffd0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffd000000000000000000000000000000000000000000000000000000000000000100000000000000009b0000009c00000000010b00010000009c000000400000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000019b0000009b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009d000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009e000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a0000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a1000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a2000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a7000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a800000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000a900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000aa00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ab000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ac000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ad00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ae00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000af00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b3000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000019600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b500000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b600000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b900000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bb00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000be00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bf00000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c100000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c200000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c300000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c400000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c5000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c6000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c7000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c8000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000c9000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ca000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cb000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cc000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000cd0000000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - }, - { - "name": "withdraw", - "functionType": "secret", - "parameters": [ - { - "name": "amount", - "type": { - "kind": "field" - }, - "visibility": "public" - }, - { - "name": "sender", - "type": { - "kind": "struct", - "fields": [ - { - "name": "x", - "type": { - "kind": "field" - } - }, - { - "name": "y", - "type": { - "kind": "field" - } - } - ] - }, - "visibility": "public" - }, - { - "name": "recipient", - "type": { - "kind": "field" - }, - "visibility": "public" - } - ], - "returnTypes": [], - "bytecode": "0000000090010000120000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f0000001000000011000000120000003000000002010000030100000401000005010000060100000701000008010000090100000a0100000b0100000c0100000d0100000e0100000f010000100100001101000012010000130100001401000015010000160100001701000018010000190100001a0100001b0100001c0100001d0100001e0100001f0100002001000021010000220100002301000024010000250100002601000027010000290100002a0100002b0100002c0100002d0100002e0100002f010000300100003101000032010000780100000001000000010000000000000000000000000000000000000000000000000000000000000000000001010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000100000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001020000000200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001030000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000013000000000000000000000000000000000000000000000000000000000000000000000400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001400000000000000000000000000000000000000000000000000000000000000000000010105000300000013000000fe00000014000000fe00000010000000fe0000000200000015000000160000000701000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001150000000000000000000000000000000000000000000000000000000000000000000000010000000100210000001700000018000000190000001a0000001b0000001c0000001d0000001e0000001f000000200000002100000022000000230000002400000025000000260000002700000028000000290000002a0000002b0000002c0000002d0000002e0000002f0000003000000031000000320000003300000034000000350000003600000037000000920100009981a34a4d509103a454726170a453746f7081a34d6f769281a85265676973746572cd026c81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a64f7261636c6595a96765744e6f746573329181b052656769737465724d656d496e64657881a85265676973746572cd0265909181a541727261799281a8436f6e7374616e74d94030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303264219081a34d6f769281a85265676973746572cd026c81a8436f6e7374616e74d9403030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030326481a34d6f769281a852656769737465720081a85265676973746572cd026ca843616c6c4261636b81a9426f6f7473747261709191cd0265010000000000000000000000000000000000000000000000000000000000000000000000000000000102010000000000010000000000000000000000000000000000000000000000000000000000000000000001180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023900000038000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001380000003800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001390000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003b0000003a00000000010b00010000003a000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013b0000003b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003900000000000000000000000000000000000000000000000000000000000000000000013a00000010000000000000000000000000000000000000000000000000000000000000003b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000018000000000000000000000000000000000000000000000000000000000000000000000138000000000000000000000000000000000000000000000000000000000000000000000239000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001280000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000023d0000003c0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013c0000003c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000003f0000003e00000000010b00010000003e000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000013f0000003f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d00000000000000000000000000000000000000000000000000000000000000000000013e00000010000000000000000000000000000000000000000000000000000000000000003f000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002800000000000000000000000000000000000000000000000000000000000000000000013c00000000000000000000000000000000000000000000000000000000000000000000023d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000012700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040000000000000000000000000000000000000000000000000000000000000000000000002000040000000410000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004200000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001400000004200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000400000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000142000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e00000000000000000000000000000000000000000000000000000000000000000000013700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043000000000000000000000000000000000000000000000000000000000000000000000002000043000000440000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004500000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001430000004500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000430000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000145000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001380000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024700000046000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000004600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000147000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000490000004800000000010b000100000048000000fc000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001490000004900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047000000000000000000000000000000000000000000000000000000000000000000000148000000100000000000000000000000000000000000000000000000000000000000000049000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000380000000000000000000000000000000000000000000000000000000000000000000001460000000000000000000000000000000000000000000000000000000000000000000002470000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000013c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024b0000004a0000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000004a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000014b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000004d0000004c00000000010b00010000004c000000fc0000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014d0000004d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b00000000000000000000000000000000000000000000000000000000000000000000014c00000010000000000000000000000000000000000000000000000000000000000000004d000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c00000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000024b000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e00000000000000000000000000000000000000000000000000000000000000000000000200004e0000004f00000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000004f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014e0000005000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014600000050000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051000000000000000000000000000000000000000000000000000000000000000000000002000051000000520000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005300000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001510000005300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005100000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000001460000005300000000000000000000000000000000000000000000000000000000000000000000000200001d0000005400000000010000000100000000000000000000000000000000000000000000000000000000000000000000011d0000005400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000011d0000005500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004600000055000000000000000000000000000000000000000000000000000000000000000000000155000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000002000056000000570000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001560000005800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014a00000058000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000590000000000000000000000000000000000000000000000000000000000000000000000020000590000005a0000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b00000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001590000005b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000014a0000005b00000000000000000000000000000000000000000000000000000000000000000000000200002d0000005c00000000010000000100000000000000000000000000000000000000000000000000000000000000000000012d0000005c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000012d0000005d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000000010000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a0000005d00000000000000000000000000000000000000000000000000000000000000000000015d0000000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000011d00000000000000000000000000000000000000000000000000000000000000000000012d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000005f0000005e00000000010b00010000005e0000004000000000000000010b00010000005f000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d000000000000000000000000000000000000000000000000000000000000000000000134010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015e00000000000000000000000000000000000000000000000000000100000000000000005f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000340100000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000610000006000000000010b0001000000600000004000000000000000010b000100000061000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000010000000000000000610000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000015e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000630000006200000000010b0001000000620000004000000000000000010b000100000063000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e00000000000000000000000000000000000000000000000000000000000000000000016200000000000000000000000000000000000000000000000000000100000000000000006300000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000650000006400000000010b0001000000640000004000000000000000010b000100000065000000be0000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060000000000000000000000000000000000000000000000000000000000000000000000164000000000000000000000000000000000000000000000000000001000000000000000065000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064000000000000000000000000000000000000000000000000000000000000000000000135010000000000000000000000000000000000000000000000000001000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000016600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000350100000000000000000000000000000000000000000000000000000000000000000000020100000000000200000000000000000000000000000000000000000000000000000000000000000000016200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000660000006700000000010b00010000006700000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001660000006600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066000000000000000000000000000000000000000000000000000000000000000000000100000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006800000000000000000000000000000000000000000000000000000000000000000000020105000700000068000000fe00000046000000fe00000019000000fe0000001a000000fe0000001b000000fe0000001c000000fe0000001d000000fe00000002000000690000006a00000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b0000000000000000000000000000000000000000000000000000000000000000000003010500040000006b000000fe00000069000000fe00000015000000fe00000006000000fe000000020000006c0000006d00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000100000000006e000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a9010000000001000000000000000000000000000000000000000000000000000000000000000000000146000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f00000000000000000000000000000000000000000000000000000000000000000000050001000000010000000000000000000000000000000000000000000000000000000000000000000001460000006e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000700000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000006c000000fe00000070000000fe00000002000000710000007200000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b000000000000000000000000000000000000000000000000000000000000000000000001000000000073000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001460000007300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000740000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe00000069000000fe00000074000000fe00000002000000750000007600000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014600000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000001000000000077000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06e681b052656769737465724d656d496e64657881a85265676973746572cd06e781b052656769737465724d656d496e64657881a85265676973746572cd06e881b052656769737465724d656d496e64657881a85265676973746572cd06e981b052656769737465724d656d496e64657881a85265676973746572cd06ea81b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed909181ad5265676973746572496e646578cd06f89081a34d6f769281a852656769737465720081a85265676973746572cd06f8a843616c6c4261636b81a9426f6f7473747261709198cd06e6cd06e7cd06e8cd06e9cd06eacd06ebcd06eccd06ed010000000000000000000000000000000000000000000000000000000000000000000000000000000102000077000000780000000001000000010000000000000000000000000000000000000000000000000000000000000000000001770000007800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007900000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001770000007900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000077000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000017900000000000000000000000000000000000000000000000000000000000000000000000105000700000068000000fe0000004a000000fe00000029000000fe0000002a000000fe0000002b000000fe0000002c000000fe0000002d000000fe000000020000007a0000007b000000010500040000006b000000fe0000007a000000fe00000015000000fe00000006000000fe000000020000007c0000007d00000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000100000000007e000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000007e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f0000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000007c000000fe0000007f000000fe00000002000000800000008100000007020000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b000000000000000000000000000000000000000000000000000000000000000000000001000000000082000000b60000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ac6765745365637265744b65799281b052656769737465724d656d496e64657881a85265676973746572cd06a881b052656769737465724d656d496e64657881a85265676973746572cd06a9909181ad5265676973746572496e646578cd06ae9081a34d6f769281a852656769737465720081a85265676973746572cd06aea843616c6c4261636b81a9426f6f7473747261709192cd06a8cd06a901000000000100000000000000000000000000000000000000000000000000000000000000000000014a000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000014a0000008200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000830000000000000000000000000000000000000000000000000000000000000000000000010500030000006f000000fe0000007a000000fe00000083000000fe00000002000000840000008500000007080000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000014a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012a00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012c00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000012d000000000000000000000000000000000000000000000000000000000000000000000001000000000086000000890100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b36e6f746966794e756c6c69666965644e6f74659881b052656769737465724d656d496e64657881a85265676973746572cd06e681b052656769737465724d656d496e64657881a85265676973746572cd06e781b052656769737465724d656d496e64657881a85265676973746572cd06e881b052656769737465724d656d496e64657881a85265676973746572cd06e981b052656769737465724d656d496e64657881a85265676973746572cd06ea81b052656769737465724d656d496e64657881a85265676973746572cd06eb81b052656769737465724d656d496e64657881a85265676973746572cd06ec81b052656769737465724d656d496e64657881a85265676973746572cd06ed909181ad5265676973746572496e646578cd06f89081a34d6f769281a852656769737465720081a85265676973746572cd06f8a843616c6c4261636b81a9426f6f7473747261709198cd06e6cd06e7cd06e8cd06e9cd06eacd06ebcd06eccd06ed010000000000000000000000000000000000000000000000000000000000000000000000000000000102000086000000870000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008800000000000000000000000000000000000000000000000000000000000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001860000008800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008600000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000000001880000000000000000000000000000000000000000000000000000000000000000000000070000000001000000000089000000740000009781a34a4d509103a454726170a453746f7081a64f7261636c6595ae67657452616e646f6d4669656c6490909181ad5265676973746572496e646578cd07c79081a34d6f769281a852656769737465720081a85265676973746572cd07c7a843616c6c4261636b81a9426f6f7473747261709190010000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f00000000000000000000000000000000000000000000000000000000000000000000011d000000000000000000000000000000000000000000000000000000000000000000000136010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000012d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003601000000000000000000000000000000000000000000000000000000000000000000000105000700000068000000fe00000014000000fe0000006b000000fe00000010000000fe00000011000000fe00000089000000fe0000008a000000fe000000020000008b0000008c00000007090000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011500000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011400000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000016b00000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000011100000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018900000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018a00000000000000000000000000000000000000000000000000000000000000000000000100000000008d000000a90100009781a34a4d509103a454726170a453746f7081a64f7261636c6595b16e6f74696679437265617465644e6f74659981b052656769737465724d656d496e64657881a85265676973746572cd083181b052656769737465724d656d496e64657881a85265676973746572cd083281b052656769737465724d656d496e64657881a85265676973746572cd083381b052656769737465724d656d496e64657881a85265676973746572cd083481b052656769737465724d656d496e64657881a85265676973746572cd083581b052656769737465724d656d496e64657881a85265676973746572cd083681b052656769737465724d656d496e64657881a85265676973746572cd083781b052656769737465724d656d496e64657881a85265676973746572cd083881b052656769737465724d656d496e64657881a85265676973746572cd0839909181ad5265676973746572496e646578cd08459081a34d6f769281a852656769737465720081a85265676973746572cd0845a843616c6c4261636b81a9426f6f7473747261709199cd0831cd0832cd0833cd0834cd0835cd0836cd0837cd0838cd083901000000000000000000000000000000000000000000000000000000000000000000000000000000010200008d0000008e00000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f000000000000000000000000000000000000000000000000000000000000000000000000010000000100000000000000000000000000000000000000000000000000000000000000000000018d0000008f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000018f000000000000000000000000000000000000000000000000000000000000000000000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000019000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000091000000000000000000000000000000000000000000000000000000fffffffffffffffc0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffc00000000000000000000000000000000000000000000000000000000000000010000000000000000900000009100000000010b00010000009100000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001900000009000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020100000000000100000000000000000000000000000000000000000000000000000000000000000000010f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100930000009200000000010b00010000009200000008000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000192000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100950000009400000000010b00010000009400000008000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001950000009500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000095000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009200000000000000000000000000000000000000000000000000000000000000000000019400000000000000000000000000000000000000000000000000000000000000000001009500000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000193000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000970000009600000000010b000100000096000000f6000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001970000009700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000093000000000000000000000000000000000000000000000000000000000000000000000196000000004000000000000000000000000000000000000000000000000000000000000097000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f0000000000000000000000000000000000000000000000000000000000000000000001920000000000000000000000000000000000000000000000000000000000000000000100930000000000000000000000000000000000000000000000000000000000000000000000010b0001000000980000000800000000000000010b0001000000990000000800000000000000010b00010000009a0000000800000000000000010b00010000009b0000000800000000000000010b00010000009c0000000800000000000000010b00010000009d0000000800000000000000010b00010000009e0000000800000000000000010b00010000009f0000000800000000000000010b0001000000a00000000800000000000000010b0001000000a10000000800000000000000010b0001000000a20000000800000000000000010b0001000000a30000000800000000000000010b0001000000a40000000800000000000000010b0001000000a50000000800000000000000010b0001000000a60000000800000000000000010b0001000000a70000000800000000000000010b0001000000a80000000800000000000000010b0001000000a90000000800000000000000010b0001000000aa0000000800000000000000010b0001000000ab0000000800000000000000010b0001000000ac0000000800000000000000010b0001000000ad0000000800000000000000010b0001000000ae0000000800000000000000010b0001000000af0000000800000000000000010b0001000000b00000000800000000000000010b0001000000b10000000800000000000000010b0001000000b20000000800000000000000010b0001000000b30000000800000000000000010b0001000000b40000000800000000000000010b0001000000b50000000800000000000000010b0001000000b6000000080000000000000002020000000000020000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c1000010f0000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000009200000000000000000000000000000000000000000000000000000000000000000000001f00000098000000990000009a0000009b0000009c0000009d0000009e0000009f000000a0000000a1000000a2000000a3000000a4000000a5000000a6000000a7000000a8000000a9000000aa000000ab000000ac000000ad000000ae000000af000000b0000000b1000000b2000000b3000000b4000000b5000000b60000000001000000000000000300000030644d72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b500000030634e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000037010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e031a029b85045b68181585d2833e84879b9709143e1f593f0000001b300000030644e71e131a029b85045b68181585d2833e84879b9709143e1f593f0000001b400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000038010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e1319f29b85045b68181585d2833e84879b9709143e1f593f0000001b100000030644e72e130a029b85045b68181585d2833e84879b9709143e1f593f0000001b200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000039010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b75045b68181585d2833e84879b9709143e1f593f0000001af00000030644e72e131a028b85045b68181585d2833e84879b9709143e1f593f0000001b000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85044b68181585d2833e84879b9709143e1f593f0000001ad00000030644e72e131a029b84f45b68181585d2833e84879b9709143e1f593f0000001ae00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68081585d2833e84879b9709143e1f593f0000001ab00000030644e72e131a029b85045b58181585d2833e84879b9709143e1f593f0000001ac00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181575d2833e84879b9709143e1f593f0000001a900000030644e72e131a029b85045b68180585d2833e84879b9709143e1f593f0000001aa00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f0000001a700000030644e72e131a029b85045b68181585c2833e84879b9709143e1f593f0000001a800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e74879b9709143e1f593f0000001a500000030644e72e131a029b85045b68181585d2832e84879b9709143e1f593f0000001a600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000003f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84878b9709143e1f593f0000001a300000030644e72e131a029b85045b68181585d2833e84779b9709143e1f593f0000001a400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000040010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b96f9143e1f593f0000001a100000030644e72e131a029b85045b68181585d2833e84879b8709143e1f593f0000001a200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000041010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709142e1f593f00000019f00000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001a000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000042010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f493f00000019d00000030644e72e131a029b85045b68181585d2833e84879b9709143e0f593f00000019e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000043010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593ef0000019b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f592f00000019c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000044010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff019900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efff00019a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000045010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014401000000000000000000000000000000000000000000000000000000000000000000014501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000046010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014201000000000000000000000000000000000000000000000000000000000000000000014301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000047010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014001000000000000000000000000000000000000000000000000000000000000000000014101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000048010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013e01000000000000000000000000000000000000000000000000000000000000000000013f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000049010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013c01000000000000000000000000000000000000000000000000000000000000000000013d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013a01000000000000000000000000000000000000000000000000000000000000000000013b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000013801000000000000000000000000000000000000000000000000000000000000000000013901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000009800000000000000000000000000000000000000000000000000000000000000000000013701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014c01000000000000000000000000000000000000000000000000000000000000000000014d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014a01000000000000000000000000000000000000000000000000000000000000000000014b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000004f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014801000000000000000000000000000000000000000000000000000000000000000000014901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000050010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014601000000000000000000000000000000000000000000000000000000000000000000014701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000051010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015001000000000000000000000000000000000000000000000000000000000000000000015101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000052010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000014e01000000000000000000000000000000000000000000000000000000000000000000014f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005301000000000000000000000000000000000000000000000000000000000000000000000000000000030000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c1000010f0000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000092000000000000000000000000000000000000000000000000000000000000000000000154010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015201000000000000000000000000000000000000000000000000000000000000000000015301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005401000000000000000000000000000000000000000000000000000000000000000000000201000000000001000000000000000000000000000000000000000000000000000000000000000000000112000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100b8000000b700000000010b0001000000b7000000080000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001b7000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100ba000000b900000000010b0001000000b900000008000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001ba000000ba00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000ba000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b70000000000000000000000000000000000000000000000000000000000000000000001b90000000000000000000000000000000000000000000000000000000000000000000100ba000000000000000000000000000000000000000000000000000000000000000000000002010000000000010000000000000000000000000000000000000000000000000000000000000000000001b8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000bc000000bb00000000010b0001000000bb000000f6000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001bc000000bc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000b80000000000000000000000000000000000000000000000000000000000000000000001bb0000000040000000000000000000000000000000000000000000000000000000000000bc000000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000120000000000000000000000000000000000000000000000000000000000000000000001b70000000000000000000000000000000000000000000000000000000000000000000100b80000000000000000000000000000000000000000000000000000000000000000000000010b0001000000bd0000000800000000000000010b0001000000be0000000800000000000000010b0001000000bf0000000800000000000000010b0001000000c00000000800000000000000010b0001000000c10000000800000000000000010b0001000000c20000000800000000000000010b0001000000c30000000800000000000000010b0001000000c40000000800000000000000010b0001000000c50000000800000000000000010b0001000000c60000000800000000000000010b0001000000c70000000800000000000000010b0001000000c80000000800000000000000010b0001000000c90000000800000000000000010b0001000000ca0000000800000000000000010b0001000000cb0000000800000000000000010b0001000000cc0000000800000000000000010b0001000000cd0000000800000000000000010b0001000000ce0000000800000000000000010b0001000000cf0000000800000000000000010b0001000000d00000000800000000000000010b0001000000d10000000800000000000000010b0001000000d20000000800000000000000010b0001000000d30000000800000000000000010b0001000000d40000000800000000000000010b0001000000d50000000800000000000000010b0001000000d60000000800000000000000010b0001000000d70000000800000000000000010b0001000000d80000000800000000000000010b0001000000d90000000800000000000000010b0001000000da0000000800000000000000010b0001000000db000000080000000000000002020000000000020000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c100001120000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000b700000000000000000000000000000000000000000000000000000000000000000000001f000000bd000000be000000bf000000c0000000c1000000c2000000c3000000c4000000c5000000c6000000c7000000c8000000c9000000ca000000cb000000cc000000cd000000ce000000cf000000d0000000d1000000d2000000d3000000d4000000d5000000d6000000d7000000d8000000d9000000da000000db0000000001000000000000000300000030644d72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001da00000030634e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001db00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000055010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e031a029b85045b68181585d2833e84879b9709143e1f593f0000001d800000030644e71e131a029b85045b68181585d2833e84879b9709143e1f593f0000001d900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000056010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e1319f29b85045b68181585d2833e84879b9709143e1f593f0000001d600000030644e72e130a029b85045b68181585d2833e84879b9709143e1f593f0000001d700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000057010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b75045b68181585d2833e84879b9709143e1f593f0000001d400000030644e72e131a028b85045b68181585d2833e84879b9709143e1f593f0000001d500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000058010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85044b68181585d2833e84879b9709143e1f593f0000001d200000030644e72e131a029b84f45b68181585d2833e84879b9709143e1f593f0000001d300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000059010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68081585d2833e84879b9709143e1f593f0000001d000000030644e72e131a029b85045b58181585d2833e84879b9709143e1f593f0000001d100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181575d2833e84879b9709143e1f593f0000001ce00000030644e72e131a029b85045b68180585d2833e84879b9709143e1f593f0000001cf00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2733e84879b9709143e1f593f0000001cc00000030644e72e131a029b85045b68181585c2833e84879b9709143e1f593f0000001cd00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e74879b9709143e1f593f0000001ca00000030644e72e131a029b85045b68181585d2832e84879b9709143e1f593f0000001cb00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84878b9709143e1f593f0000001c800000030644e72e131a029b85045b68181585d2833e84779b9709143e1f593f0000001c900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b96f9143e1f593f0000001c600000030644e72e131a029b85045b68181585d2833e84879b8709143e1f593f0000001c700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000005f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709142e1f593f0000001c400000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f0000001c500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000060010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f493f0000001c200000030644e72e131a029b85045b68181585d2833e84879b9709143e0f593f0000001c300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000061010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593ef000001c000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f592f0000001c100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000062010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efffff01be00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593efff0001bf00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000063010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016201000000000000000000000000000000000000000000000000000000000000000000016301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000064010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016001000000000000000000000000000000000000000000000000000000000000000000016101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000065010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015e01000000000000000000000000000000000000000000000000000000000000000000015f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000066010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015c01000000000000000000000000000000000000000000000000000000000000000000015d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000067010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015a01000000000000000000000000000000000000000000000000000000000000000000015b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000068010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015801000000000000000000000000000000000000000000000000000000000000000000015901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000069010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000015601000000000000000000000000000000000000000000000000000000000000000000015701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000bd00000000000000000000000000000000000000000000000000000000000000000000015501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016a01000000000000000000000000000000000000000000000000000000000000000000016b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016801000000000000000000000000000000000000000000000000000000000000000000016901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016601000000000000000000000000000000000000000000000000000000000000000000016701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016401000000000000000000000000000000000000000000000000000000000000000000016501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000006f010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016e01000000000000000000000000000000000000000000000000000000000000000000016f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000070010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000016c01000000000000000000000000000000000000000000000000000000000000000000016d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007101000000000000000000000000000000000000000000000000000000000000000000000000000000030000003033ea246e506e898e97f570caffd704cb0bb460313fb720b29e139e5c100001120000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000b7000000000000000000000000000000000000000000000000000000000000000000000172010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017001000000000000000000000000000000000000000000000000000000000000000000017101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000072010000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dc000000000000000000000000000000000000000000000000000000000000000000000000000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000dd00000000000000000000000000000000000000000000000000000000000000000000f700000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000de000000000000000000000000000000000000000000000000000000000000000000001400000000000100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000df00000000000000000000000000000000000000000000000000000000000000000000ce01010044000000dc00000008000000dd00000008000000de00000008000000df00000008000000b600000008000000b500000008000000b400000008000000b300000008000000b200000008000000b100000008000000b000000008000000af00000008000000ae00000008000000ad00000008000000ac00000008000000ab00000008000000aa00000008000000a900000008000000a800000008000000a700000008000000a600000008000000a500000008000000a400000008000000a300000008000000a200000008000000a100000008000000a0000000080000009f000000080000009e000000080000009d000000080000009c000000080000009b000000080000009a00000008000000990000000800000098000000080000009200000008000000db00000008000000da00000008000000d900000008000000d800000008000000d700000008000000d600000008000000d500000008000000d400000008000000d300000008000000d200000008000000d100000008000000d000000008000000cf00000008000000ce00000008000000cd00000008000000cc00000008000000cb00000008000000ca00000008000000c900000008000000c800000008000000c700000008000000c600000008000000c500000008000000c400000008000000c300000008000000c200000008000000c100000008000000c000000008000000bf00000008000000be00000008000000bd00000008000000b70000000800000020000000e0000000e1000000e2000000e3000000e4000000e5000000e6000000e7000000e8000000e9000000ea000000eb000000ec000000ed000000ee000000ef000000f0000000f1000000f2000000f3000000f4000000f5000000f6000000f7000000f8000000f9000000fa000000fb000000fc000000fd000000fe000000ff00000000000000000200000030644e72e131a029b85045b68181585d2833e84879b9709043e1f593f00000010001000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000001010000000000000000000000000000000000000000000000000000fffffffffffffffe0201000000000000000000000000000000000000000000000000000000000000000000fffffffffffffffe00000000000000000000000000000000000000000000000000000000000000010000000000000000000100000101000000010b00010000000101000040000000000000000001000000010000000000000000000000000000000000000000000000000000000000000000000001000100000001000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000002010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000003010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000004010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000005010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010300000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000006010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000007010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010f00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000008010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000009010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011100000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000a010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000011200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000b01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000c01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000d01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000e01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000000f010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000010010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000014a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001101000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001201000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001301000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001401000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001501000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001601000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000017010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001801000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001901000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001a01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001b010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000017500000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001c010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000018400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001d01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001e01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000001f01000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002001000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002101000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002201000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002301000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002401000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002501000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002601000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002701000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000000001ff00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002801000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007301000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000000010000fd0000000000000000000000000000000000000000000000000000000000000000000100fe00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007401000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000000000100000000fb0000000000000000000000000000000000000000000000000000000000000001000000fc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007501000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000000001000000000000f90000000000000000000000000000000000000000000000000000000000010000000000fa00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007601000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000000010000000000000000f70000000000000000000000000000000000000000000000000000000100000000000000f800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007701000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000000000100000000000000000000f50000000000000000000000000000000000000000000000000001000000000000000000f600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007801000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000000001000000000000000000000000f30000000000000000000000000000000000000000000000010000000000000000000000f400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007901000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000000010000000000000000000000000000f10000000000000000000000000000000000000000000100000000000000000000000000f200000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007a01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000000000100000000000000000000000000000000ef0000000000000000000000000000000000000001000000000000000000000000000000f000000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007b01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000000001000000000000000000000000000000000000ed0000000000000000000000000000000000010000000000000000000000000000000000ee00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007c01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000000010000000000000000000000000000000000000000eb0000000000000000000000000000000100000000000000000000000000000000000000ec00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007d01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000000000100000000000000000000000000000000000000000000e90000000000000000000000000001000000000000000000000000000000000000000000ea00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007e01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000000001000000000000000000000000000000000000000000000000e70000000000000000000000010000000000000000000000000000000000000000000000e800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000007f01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000010000000000000000000000000000000000000000000000000000e50000000000000000000100000000000000000000000000000000000000000000000000e600000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008001000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000100000000000000000000000000000000000000000000000000000000e30000000000000001000000000000000000000000000000000000000000000000000000e400000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018001000000000000000000000000000000000000000000000000000000000000000000018101000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000082010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017e01000000000000000000000000000000000000000000000000000000000000000000017f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000083010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017c01000000000000000000000000000000000000000000000000000000000000000000017d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000084010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017a01000000000000000000000000000000000000000000000000000000000000000000017b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000085010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017801000000000000000000000000000000000000000000000000000000000000000000017901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000086010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017601000000000000000000000000000000000000000000000000000000000000000000017701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000087010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000017401000000000000000000000000000000000000000000000000000000000000000000017501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008801000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000010000000000000000000000000000000000000000000000000000000000e200000000000000000000000000000000000000000000000000000000000000000000017301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000089010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018801000000000000000000000000000000000000000000000000000000000000000000018901000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008a010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018601000000000000000000000000000000000000000000000000000000000000000000018701000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008b010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018401000000000000000000000000000000000000000000000000000000000000000000018501000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008c010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018201000000000000000000000000000000000000000000000000000000000000000000018301000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008d010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018c01000000000000000000000000000000000000000000000000000000000000000000018d01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008e010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018a01000000000000000000000000000000000000000000000000000000000000000000018b01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008f01000000000000000000000000000000000000000000000000000000000000000000000000000000030000000100000000000000000000000000000000000000000000000000000000000000e00000000001000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000000000000190010000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000018e01000000000000000000000000000000000000000000000000000000000000000000018f01000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000090010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000012801000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002901000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000001dc00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002a010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010e00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002b010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010d00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002c010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010b00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002d010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010c00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002e010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010700000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000002f010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010900000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000030010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010800000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000031010000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000010a00000030644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000320100000000000000000000000000000000000000000000000000000000000000000000", - "verificationKey": "0000000200000800000000740000000f00000003515f3109623eb3c25aa5b16a1a79fd558bac7a7ce62c4560a8c537c77ce80dd339128d1d37b6582ee9e6df9567efb64313471dfa18f520f9ce53161b50dbf7731bc5f900000003515f322bc4cce83a486a92c92fd59bd84e0f92595baa639fc2ed86b00ffa0dfded2a092a669a3bdb7a273a015eda494457cc7ed5236f26cee330c290d45a33b9daa94800000003515f332729426c008c085a81bd34d8ef12dd31e80130339ef99d50013a89e4558eee6d0fa4ffe2ee7b7b62eb92608b2251ac31396a718f9b34978888789042b790a30100000003515f342be6b6824a913eb7a57b03cb1ee7bfb4de02f2f65fe8a4e97baa7766ddb353a82a8a25c49dc63778cd9fe96173f12a2bc77f3682f4c4448f98f1df82c75234a100000003515f351f85760d6ab567465aadc2f180af9eae3800e6958fec96aef53fd8a7b195d7c000c6267a0dd5cfc22b3fe804f53e266069c0e36f51885baec1e7e67650c62e170000000c515f41524954484d455449430d9d0f8ece2aa12012fa21e6e5c859e97bd5704e5c122064a66051294bc5e04213f61f54a0ebdf6fee4d4a6ecf693478191de0c2899bcd8e86a636c8d3eff43400000003515f43224a99d02c86336737c8dd5b746c40d2be6aead8393889a76a18d664029096e90f7fe81adcc92a74350eada9622ac453f49ebac24a066a1f83b394df54dfa0130000000c515f46495845445f42415345060e8a013ed289c2f9fd7473b04f6594b138ddb4b4cf6b901622a14088f04b8d2c83ff74fce56e3d5573b99c7b26d85d5046ce0c6559506acb7a675e7713eb3a00000007515f4c4f4749430721a91cb8da4b917e054f72147e1760cfe0ef3d45090ac0f4961d84ec1996961a25e787b26bd8b50b1a99450f77a424a83513c2b33af268cd253b0587ff50c700000003515f4d05dbd8623b8652511e1eb38d38887a69eceb082f807514f09e127237c5213b401b9325b48c6c225968002318095f89d0ef9cf629b2b7f0172e03bc39aacf6ed800000007515f52414e474504b57a3805e41df328f5ca9aefa40fad5917391543b7b65c6476e60b8f72e9ad07c92f3b3e11c8feae96dedc4b14a6226ef3201244f37cfc1ee5b96781f48d2b000000075349474d415f3125001d1954a18571eaa007144c5a567bb0d2be4def08a8be918b8c05e3b27d312c59ed41e09e144eab5de77ca89a2fd783be702a47c951d3112e3de02ce6e47c000000075349474d415f3223994e6a23618e60fa01c449a7ab88378709197e186d48d604bfb6931ffb15ad11c5ec7a0700570f80088fd5198ab5d5c227f2ad2a455a6edeec024156bb7beb000000075349474d415f3300cda5845f23468a13275d18bddae27c6bb189cf9aa95b6a03a0cb6688c7e8d829639b45cf8607c525cc400b55ebf90205f2f378626dc3406cc59b2d1b474fba000000075349474d415f342d299e7928496ea2d37f10b43afd6a80c90a33b483090d18069ffa275eedb2fc2f82121e8de43dc036d99b478b6227ceef34248939987a19011f065d8b5cef5c0000000010000000000000000100000002000000030000000400000005000000060000000700000008000000090000000a0000000b0000000c0000000d0000000e0000000f" - } - ] -}