From 011cf438010b5988584ca819cbffe81d3f66cd84 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Thu, 14 Aug 2025 12:23:10 -0400 Subject: [PATCH 01/16] Added address extraction script Signed-off-by: Faisal Usmani --- script/utils/README.md | 201 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 201 insertions(+) create mode 100644 script/utils/README.md diff --git a/script/utils/README.md b/script/utils/README.md new file mode 100644 index 000000000..df995707e --- /dev/null +++ b/script/utils/README.md @@ -0,0 +1,201 @@ +# Foundry Address Extraction Scripts + +This directory contains scripts to extract deployed contract addresses from Foundry broadcast files and generate useful artifacts for use in other deployment scripts. + +## Prerequisites + +The extraction script requires Node.js and TypeScript support. + +### Installation + +```bash +# Install dependencies (if not already installed) +yarn install + + +``` + +## Files + +- `extract_foundry_addresses.sh` - Bash script to run the extraction process +- `ExtractDeployedFoundryAddresses.ts` - TypeScript script that does the actual extraction +- `DeployedAddresses.sol` - Auto-generated Solidity contract with all deployed addresses (generated by the script) + +## Usage + +### Running the Script + +```bash +# Using yarn (recommended) +yarn extract-addresses + + +# Or run the bash script directly +./script/extract_foundry_addresses.sh +``` + +### Generated Output + +The script generates three files: + +1. **`broadcast/deployed-addresses.md`** - Human-readable markdown file with all deployed addresses +2. **`broadcast/deployed-addresses.json`** - Structured JSON data with all deployed addresses +3. **`script/utils/DeployedAddresses.sol`** - Solidity contract that uses Foundry's parseJson functionality to read addresses dynamically + +### Using DeployedAddresses.sol in Your Scripts + +The generated `DeployedAddresses.sol` contract uses Foundry's `parseJson` functionality to dynamically read addresses from the JSON file. This approach is **only for use in Foundry scripts and tests** (not for on-chain deployment). + +#### Basic Usage + +```solidity +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.19; + +import { Script } from "forge-std/Script.sol"; +import { DeployedAddresses } from "./DeployedAddresses.sol"; + +contract MyDeploymentScript is Script { + function run() external { + uint256 sepoliaChainId = 11155111; + + // Get addresses dynamically by chain ID and contract name + address hubPool = DeployedAddresses.getAddress(sepoliaChainId, "HubPool"); + address lpTokenFactory = DeployedAddresses.getAddress(sepoliaChainId, "LpTokenFactory"); + + // Check if a contract exists before using it + if (DeployedAddresses.hasAddress(sepoliaChainId, "HubPool")) { + // Contract exists, safe to use + address hubPoolAddress = DeployedAddresses.getAddress(sepoliaChainId, "HubPool"); + } + + // Get additional contract information + (address addr, string memory txHash, uint256 blockNum) = DeployedAddresses.getContractInfo( + sepoliaChainId, + "HubPool" + ); + } +} +``` + +### Available Functions + +The `DeployedAddresses` contract provides these functions: + +#### `getAddress(uint256 chainId, string memory contractName)` + +- Returns the contract address for the given chain ID and contract name +- Returns `address(0)` if the contract doesn't exist +- **View function** - no gas cost for reading +- Uses Foundry's `vm.readFile` and `stdJson` to read from the JSON file + +#### `hasAddress(uint256 chainId, string memory contractName)` + +- Returns `true` if a contract exists for the given chain ID and name +- Returns `false` if the contract doesn't exist +- **View function** - no gas cost for reading + +#### `getTransactionHash(uint256 chainId, string memory contractName)` + +- Returns the transaction hash for the contract deployment +- Returns empty string if not available + +#### `getBlockNumber(uint256 chainId, string memory contractName)` + +- Returns the block number where the contract was deployed +- Returns `0` if not available + +#### `getChainName(uint256 chainId)` + +- Returns the human-readable name for the given chain ID +- Returns empty string if chain ID is not recognized + +#### `getContractNames(uint256 chainId)` + +- Returns an array of all contract names deployed on the given chain +- Returns empty array if no contracts found + +#### `getChainIds()` + +- Returns an array of all chain IDs that have deployed contracts + +#### `getGeneratedAt()` + +- Returns the timestamp when the JSON file was generated + +#### `getContractInfo(uint256 chainId, string memory contractName)` + +- Returns a tuple with (address, transactionHash, blockNumber) for the contract +- Convenience function to get all info at once + +### Contract Name for Dynamic Lookup + +For the `getAddress()` and `hasAddress()` functions, use the original contract name as it appears in the deployment: + +Examples: + +- `"HubPool"` - for the HubPool contract +- `"LpTokenFactory"` - for the LpTokenFactory contract +- `"PermissionSplitterProxy"` - for the PermissionSplitterProxy contract +- `"SpokePool"` - for the SpokePool contract + +### Chain Support + +The script recognizes these chains: + +- Mainnet (Chain ID: 1) +- Sepolia (Chain ID: 11155111) +- Arbitrum One (Chain ID: 42161) +- Arbitrum Sepolia (Chain ID: 421614) +- Polygon (Chain ID: 137) +- Polygon Amoy (Chain ID: 80002) +- Optimism (Chain ID: 10) +- Unichain (Chain ID: 130) +- Optimism Sepolia (Chain ID: 11155420) +- Base (Chain ID: 8453) +- Base Sepolia (Chain ID: 84532) +- BSC (Chain ID: 56) +- Lens (Chain ID: 232) +- Boba (Chain ID: 288) +- zkSync Era (Chain ID: 324) +- World Chain (Chain ID: 480) +- Redstone (Chain ID: 690) +- Lisk (Chain ID: 1135) +- List Sepolia (Chain ID: 4202) +- Unichain Sepolia (Chain ID: 1301) +- Soneium (Chain ID: 1868) +- Linea (Chain ID: 59144) +- Scroll (Chain ID: 534352) +- Scroll Sepolia (Chain ID: 534351) +- Blast (Chain ID: 81457) +- Blast Sepolia (Chain ID: 168587773) +- Mode (Chain ID: 34443) +- Mode Testnet (Chain ID: 919) +- Lens Testnet (Chain ID: 37111) +- Aleph Zero (Chain ID: 41455) +- Ink (Chain ID: 57073) +- Tatara Testnet (Chain ID: 129399) +- BOB Sepolia (Chain ID: 808813) +- Zora (Chain ID: 7777777) +- Solana (Chain ID: 34268394551451) +- Solana Devnet (Chain ID: 133268194659241) + +## How It Works + +1. The script scans the `broadcast/` directory for `run-latest.json` files +2. It also reads from `deployments/deployments.json` for additional contract addresses +3. It extracts contract addresses from each file's transaction data +4. It organizes the data by chain ID and contract name +5. It generates the three output files with the extracted information +6. The Solidity contract uses Foundry's `parseJson` functionality to read addresses dynamically from the JSON file +7. All addresses are properly formatted using EIP-55 checksum for Solidity compatibility + +## Important Notes + +- The `DeployedAddresses.sol` file is auto-generated and should not be edited manually +- Run the extraction script after each deployment to keep the addresses up to date +- The script only processes the latest deployment for each script/chain combination +- **The contract only works in Foundry scripts and tests** - it cannot be deployed on-chain due to the use of `vm` cheatcodes +- The contract reads addresses dynamically from the JSON file, so it always reflects the latest data +- All addresses are properly checksummed using EIP-55 format for Solidity compatibility +- Non-Ethereum addresses (like Solana addresses) are filtered out for the Solidity contract From 39b63959d5cc1f2e6d0dea3c532412b176f354fd Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Thu, 14 Aug 2025 12:33:57 -0400 Subject: [PATCH 02/16] Renamed readme Signed-off-by: Faisal Usmani --- script/utils/README.md | 201 ----------------------------------------- 1 file changed, 201 deletions(-) delete mode 100644 script/utils/README.md diff --git a/script/utils/README.md b/script/utils/README.md deleted file mode 100644 index df995707e..000000000 --- a/script/utils/README.md +++ /dev/null @@ -1,201 +0,0 @@ -# Foundry Address Extraction Scripts - -This directory contains scripts to extract deployed contract addresses from Foundry broadcast files and generate useful artifacts for use in other deployment scripts. - -## Prerequisites - -The extraction script requires Node.js and TypeScript support. - -### Installation - -```bash -# Install dependencies (if not already installed) -yarn install - - -``` - -## Files - -- `extract_foundry_addresses.sh` - Bash script to run the extraction process -- `ExtractDeployedFoundryAddresses.ts` - TypeScript script that does the actual extraction -- `DeployedAddresses.sol` - Auto-generated Solidity contract with all deployed addresses (generated by the script) - -## Usage - -### Running the Script - -```bash -# Using yarn (recommended) -yarn extract-addresses - - -# Or run the bash script directly -./script/extract_foundry_addresses.sh -``` - -### Generated Output - -The script generates three files: - -1. **`broadcast/deployed-addresses.md`** - Human-readable markdown file with all deployed addresses -2. **`broadcast/deployed-addresses.json`** - Structured JSON data with all deployed addresses -3. **`script/utils/DeployedAddresses.sol`** - Solidity contract that uses Foundry's parseJson functionality to read addresses dynamically - -### Using DeployedAddresses.sol in Your Scripts - -The generated `DeployedAddresses.sol` contract uses Foundry's `parseJson` functionality to dynamically read addresses from the JSON file. This approach is **only for use in Foundry scripts and tests** (not for on-chain deployment). - -#### Basic Usage - -```solidity -// SPDX-License-Identifier: MIT -pragma solidity ^0.8.19; - -import { Script } from "forge-std/Script.sol"; -import { DeployedAddresses } from "./DeployedAddresses.sol"; - -contract MyDeploymentScript is Script { - function run() external { - uint256 sepoliaChainId = 11155111; - - // Get addresses dynamically by chain ID and contract name - address hubPool = DeployedAddresses.getAddress(sepoliaChainId, "HubPool"); - address lpTokenFactory = DeployedAddresses.getAddress(sepoliaChainId, "LpTokenFactory"); - - // Check if a contract exists before using it - if (DeployedAddresses.hasAddress(sepoliaChainId, "HubPool")) { - // Contract exists, safe to use - address hubPoolAddress = DeployedAddresses.getAddress(sepoliaChainId, "HubPool"); - } - - // Get additional contract information - (address addr, string memory txHash, uint256 blockNum) = DeployedAddresses.getContractInfo( - sepoliaChainId, - "HubPool" - ); - } -} -``` - -### Available Functions - -The `DeployedAddresses` contract provides these functions: - -#### `getAddress(uint256 chainId, string memory contractName)` - -- Returns the contract address for the given chain ID and contract name -- Returns `address(0)` if the contract doesn't exist -- **View function** - no gas cost for reading -- Uses Foundry's `vm.readFile` and `stdJson` to read from the JSON file - -#### `hasAddress(uint256 chainId, string memory contractName)` - -- Returns `true` if a contract exists for the given chain ID and name -- Returns `false` if the contract doesn't exist -- **View function** - no gas cost for reading - -#### `getTransactionHash(uint256 chainId, string memory contractName)` - -- Returns the transaction hash for the contract deployment -- Returns empty string if not available - -#### `getBlockNumber(uint256 chainId, string memory contractName)` - -- Returns the block number where the contract was deployed -- Returns `0` if not available - -#### `getChainName(uint256 chainId)` - -- Returns the human-readable name for the given chain ID -- Returns empty string if chain ID is not recognized - -#### `getContractNames(uint256 chainId)` - -- Returns an array of all contract names deployed on the given chain -- Returns empty array if no contracts found - -#### `getChainIds()` - -- Returns an array of all chain IDs that have deployed contracts - -#### `getGeneratedAt()` - -- Returns the timestamp when the JSON file was generated - -#### `getContractInfo(uint256 chainId, string memory contractName)` - -- Returns a tuple with (address, transactionHash, blockNumber) for the contract -- Convenience function to get all info at once - -### Contract Name for Dynamic Lookup - -For the `getAddress()` and `hasAddress()` functions, use the original contract name as it appears in the deployment: - -Examples: - -- `"HubPool"` - for the HubPool contract -- `"LpTokenFactory"` - for the LpTokenFactory contract -- `"PermissionSplitterProxy"` - for the PermissionSplitterProxy contract -- `"SpokePool"` - for the SpokePool contract - -### Chain Support - -The script recognizes these chains: - -- Mainnet (Chain ID: 1) -- Sepolia (Chain ID: 11155111) -- Arbitrum One (Chain ID: 42161) -- Arbitrum Sepolia (Chain ID: 421614) -- Polygon (Chain ID: 137) -- Polygon Amoy (Chain ID: 80002) -- Optimism (Chain ID: 10) -- Unichain (Chain ID: 130) -- Optimism Sepolia (Chain ID: 11155420) -- Base (Chain ID: 8453) -- Base Sepolia (Chain ID: 84532) -- BSC (Chain ID: 56) -- Lens (Chain ID: 232) -- Boba (Chain ID: 288) -- zkSync Era (Chain ID: 324) -- World Chain (Chain ID: 480) -- Redstone (Chain ID: 690) -- Lisk (Chain ID: 1135) -- List Sepolia (Chain ID: 4202) -- Unichain Sepolia (Chain ID: 1301) -- Soneium (Chain ID: 1868) -- Linea (Chain ID: 59144) -- Scroll (Chain ID: 534352) -- Scroll Sepolia (Chain ID: 534351) -- Blast (Chain ID: 81457) -- Blast Sepolia (Chain ID: 168587773) -- Mode (Chain ID: 34443) -- Mode Testnet (Chain ID: 919) -- Lens Testnet (Chain ID: 37111) -- Aleph Zero (Chain ID: 41455) -- Ink (Chain ID: 57073) -- Tatara Testnet (Chain ID: 129399) -- BOB Sepolia (Chain ID: 808813) -- Zora (Chain ID: 7777777) -- Solana (Chain ID: 34268394551451) -- Solana Devnet (Chain ID: 133268194659241) - -## How It Works - -1. The script scans the `broadcast/` directory for `run-latest.json` files -2. It also reads from `deployments/deployments.json` for additional contract addresses -3. It extracts contract addresses from each file's transaction data -4. It organizes the data by chain ID and contract name -5. It generates the three output files with the extracted information -6. The Solidity contract uses Foundry's `parseJson` functionality to read addresses dynamically from the JSON file -7. All addresses are properly formatted using EIP-55 checksum for Solidity compatibility - -## Important Notes - -- The `DeployedAddresses.sol` file is auto-generated and should not be edited manually -- Run the extraction script after each deployment to keep the addresses up to date -- The script only processes the latest deployment for each script/chain combination -- **The contract only works in Foundry scripts and tests** - it cannot be deployed on-chain due to the use of `vm` cheatcodes -- The contract reads addresses dynamically from the JSON file, so it always reflects the latest data -- All addresses are properly checksummed using EIP-55 format for Solidity compatibility -- Non-Ethereum addresses (like Solana addresses) are filtered out for the Solidity contract From 226abc539548cf756e0e689ca84f8df4877d1c22 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Sat, 16 Aug 2025 13:45:32 -0400 Subject: [PATCH 03/16] feat(Foundry): Added hubpool, ethereum and arbitrum spoke pool scripts Signed-off-by: Faisal Usmani --- script/008DeployArbitrumSpokePool.s.sol | 88 +++++++++++++++++++++++++ script/utils/Constants.sol | 1 + 2 files changed, 89 insertions(+) create mode 100644 script/008DeployArbitrumSpokePool.s.sol diff --git a/script/008DeployArbitrumSpokePool.s.sol b/script/008DeployArbitrumSpokePool.s.sol new file mode 100644 index 000000000..e28fe5edd --- /dev/null +++ b/script/008DeployArbitrumSpokePool.s.sol @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: BUSL-1.1 +pragma solidity ^0.8.0; + +import { Script } from "forge-std/Script.sol"; +import { Test } from "forge-std/Test.sol"; +import { console } from "forge-std/console.sol"; +import { Arbitrum_SpokePool } from "../contracts/Arbitrum_SpokePool.sol"; +import { WETH9Interface } from "../contracts/external/interfaces/WETH9Interface.sol"; +import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; + +// How to run: +// 1. `source .env` where `.env` has MNEMONIC="x x x ... x" and HUBPOOL_ADDRESS="0x..." entries +// 2. forge script script/008DeployArbitrumSpokePool.s.sol:DeployArbitrumSpokePool --rpc-url $NODE_URL_1 -vvvv +// 3. Verify the above works in simulation mode. +// 4. Deploy with: forge script script/008DeployArbitrumSpokePool.s.sol:DeployArbitrumSpokePool --rpc-url $NODE_URL_1 --broadcast --verify + +contract DeployArbitrumSpokePool is Script, Test, DeploymentUtils { + function run() external { + string memory deployerMnemonic = vm.envString("MNEMONIC"); + uint256 deployerPrivateKey = vm.deriveKey(deployerMnemonic, 0); + + // Get deployment information + DeploymentInfo memory info = getSpokePoolDeploymentInfo(address(0)); // Will use HUBPOOL_ADDRESS from env + + console.log("HubPool address:", info.hubPool); + + // Get the appropriate addresses for this chain + WETH9Interface weth = getWrappedNativeToken(info.spokeChainId); + + // Get L2 addresses for Arbitrum + address l2GatewayRouter = getL2Address(info.spokeChainId, "l2GatewayRouter"); + address cctpTokenMessenger = getL2Address(info.spokeChainId, "cctpTokenMessenger"); + + vm.startBroadcast(deployerPrivateKey); + + // Prepare constructor arguments for Arbitrum_SpokePool + bytes memory constructorArgs = abi.encode( + address(weth), // _weth + QUOTE_TIME_BUFFER(), // _quoteTimeBuffer + FILL_DEADLINE_BUFFER(), // _fillDeadlineBuffer + getUSDCAddress(info.spokeChainId), // _usdc + cctpTokenMessenger, // _cctpTokenMessenger + getOftEid(info.hubChainId), // _oftDstEid + 1 ether // _oftFeeCap + ); + + // Initialize deposit counter to very high number of deposits to avoid duplicate deposit ID's + // with deprecated spoke pool. + bytes memory initArgs = abi.encodeWithSelector( + Arbitrum_SpokePool.initialize.selector, + 1_000_000, // _initialDepositId + l2GatewayRouter, // _l2GatewayRouter + info.hubPool, // _crossDomainAdmin + info.hubPool // _hubPool + ); + + // Deploy the proxy + DeploymentResult memory result = deployNewProxy( + "Arbitrum_SpokePool", + constructorArgs, + initArgs, + true // implementationOnly + ); + + // Log the deployed addresses + console.log("Chain ID:", info.spokeChainId); + console.log("Hub Chain ID:", info.hubChainId); + console.log("HubPool address:", info.hubPool); + console.log("WETH address:", address(weth)); + console.log("L2 Gateway Router:", l2GatewayRouter); + console.log("CCTP Token Messenger:", cctpTokenMessenger); + console.log("USDC address:", getUSDCAddress(info.spokeChainId)); + console.log("Arbitrum_SpokePool proxy deployed to:", result.proxy); + console.log("Arbitrum_SpokePool implementation deployed to:", result.implementation); + + console.log("QUOTE_TIME_BUFFER()", QUOTE_TIME_BUFFER()); + console.log("FILL_DEADLINE_BUFFER()", FILL_DEADLINE_BUFFER()); + console.log("OFT EID", getOftEid(info.hubChainId)); + + // Transfer ownership to hub pool if this is a new proxy + if (result.isNewProxy) { + // TODO: Implement ownership transfer if needed + console.log("Note: Ownership transfer to hub pool may be required"); + } + + vm.stopBroadcast(); + } +} diff --git a/script/utils/Constants.sol b/script/utils/Constants.sol index e36eea8f2..e91c523e3 100644 --- a/script/utils/Constants.sol +++ b/script/utils/Constants.sol @@ -20,6 +20,7 @@ contract Constants is Script { } function getChainId(string memory chainName) public view returns (uint256) { + console.log("chainName", chainName); return vm.parseJsonUint(file, string.concat(".chainIds.", chainName)); } From a81cb69732f7281f1ab0894522d636c0cb21e628 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Sun, 17 Aug 2025 13:56:05 -0400 Subject: [PATCH 04/16] Renamed arb deploy script Signed-off-by: Faisal Usmani --- script/008DeployArbitrumSpokePool.s.sol | 88 ------------------------- 1 file changed, 88 deletions(-) delete mode 100644 script/008DeployArbitrumSpokePool.s.sol diff --git a/script/008DeployArbitrumSpokePool.s.sol b/script/008DeployArbitrumSpokePool.s.sol deleted file mode 100644 index e28fe5edd..000000000 --- a/script/008DeployArbitrumSpokePool.s.sol +++ /dev/null @@ -1,88 +0,0 @@ -// SPDX-License-Identifier: BUSL-1.1 -pragma solidity ^0.8.0; - -import { Script } from "forge-std/Script.sol"; -import { Test } from "forge-std/Test.sol"; -import { console } from "forge-std/console.sol"; -import { Arbitrum_SpokePool } from "../contracts/Arbitrum_SpokePool.sol"; -import { WETH9Interface } from "../contracts/external/interfaces/WETH9Interface.sol"; -import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; - -// How to run: -// 1. `source .env` where `.env` has MNEMONIC="x x x ... x" and HUBPOOL_ADDRESS="0x..." entries -// 2. forge script script/008DeployArbitrumSpokePool.s.sol:DeployArbitrumSpokePool --rpc-url $NODE_URL_1 -vvvv -// 3. Verify the above works in simulation mode. -// 4. Deploy with: forge script script/008DeployArbitrumSpokePool.s.sol:DeployArbitrumSpokePool --rpc-url $NODE_URL_1 --broadcast --verify - -contract DeployArbitrumSpokePool is Script, Test, DeploymentUtils { - function run() external { - string memory deployerMnemonic = vm.envString("MNEMONIC"); - uint256 deployerPrivateKey = vm.deriveKey(deployerMnemonic, 0); - - // Get deployment information - DeploymentInfo memory info = getSpokePoolDeploymentInfo(address(0)); // Will use HUBPOOL_ADDRESS from env - - console.log("HubPool address:", info.hubPool); - - // Get the appropriate addresses for this chain - WETH9Interface weth = getWrappedNativeToken(info.spokeChainId); - - // Get L2 addresses for Arbitrum - address l2GatewayRouter = getL2Address(info.spokeChainId, "l2GatewayRouter"); - address cctpTokenMessenger = getL2Address(info.spokeChainId, "cctpTokenMessenger"); - - vm.startBroadcast(deployerPrivateKey); - - // Prepare constructor arguments for Arbitrum_SpokePool - bytes memory constructorArgs = abi.encode( - address(weth), // _weth - QUOTE_TIME_BUFFER(), // _quoteTimeBuffer - FILL_DEADLINE_BUFFER(), // _fillDeadlineBuffer - getUSDCAddress(info.spokeChainId), // _usdc - cctpTokenMessenger, // _cctpTokenMessenger - getOftEid(info.hubChainId), // _oftDstEid - 1 ether // _oftFeeCap - ); - - // Initialize deposit counter to very high number of deposits to avoid duplicate deposit ID's - // with deprecated spoke pool. - bytes memory initArgs = abi.encodeWithSelector( - Arbitrum_SpokePool.initialize.selector, - 1_000_000, // _initialDepositId - l2GatewayRouter, // _l2GatewayRouter - info.hubPool, // _crossDomainAdmin - info.hubPool // _hubPool - ); - - // Deploy the proxy - DeploymentResult memory result = deployNewProxy( - "Arbitrum_SpokePool", - constructorArgs, - initArgs, - true // implementationOnly - ); - - // Log the deployed addresses - console.log("Chain ID:", info.spokeChainId); - console.log("Hub Chain ID:", info.hubChainId); - console.log("HubPool address:", info.hubPool); - console.log("WETH address:", address(weth)); - console.log("L2 Gateway Router:", l2GatewayRouter); - console.log("CCTP Token Messenger:", cctpTokenMessenger); - console.log("USDC address:", getUSDCAddress(info.spokeChainId)); - console.log("Arbitrum_SpokePool proxy deployed to:", result.proxy); - console.log("Arbitrum_SpokePool implementation deployed to:", result.implementation); - - console.log("QUOTE_TIME_BUFFER()", QUOTE_TIME_BUFFER()); - console.log("FILL_DEADLINE_BUFFER()", FILL_DEADLINE_BUFFER()); - console.log("OFT EID", getOftEid(info.hubChainId)); - - // Transfer ownership to hub pool if this is a new proxy - if (result.isNewProxy) { - // TODO: Implement ownership transfer if needed - console.log("Note: Ownership transfer to hub pool may be required"); - } - - vm.stopBroadcast(); - } -} From bcc65f530d4ec1be3137bc1ec34481daacf73e7c Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Mon, 25 Aug 2025 11:21:17 -0400 Subject: [PATCH 05/16] Added deploy scripts for v4 upgrades Signed-off-by: Faisal Usmani --- script/utils/Constants.sol | 1 - 1 file changed, 1 deletion(-) diff --git a/script/utils/Constants.sol b/script/utils/Constants.sol index e91c523e3..e36eea8f2 100644 --- a/script/utils/Constants.sol +++ b/script/utils/Constants.sol @@ -20,7 +20,6 @@ contract Constants is Script { } function getChainId(string memory chainName) public view returns (uint256) { - console.log("chainName", chainName); return vm.parseJsonUint(file, string.concat(".chainIds.", chainName)); } From 903d736bd2711705ce4809f9bd8381f039103ee5 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Mon, 25 Aug 2025 15:04:20 -0400 Subject: [PATCH 06/16] Deployed mode, redstone, lens and soneium spoke pools Signed-off-by: Faisal Usmani --- .../34443/run-latest.json | 70 +++++++ .../690/run-latest.json | 70 +++++++ .../232/run-latest.json | 194 ++++++++++++++++++ .../1868/run-latest.json | 70 +++++++ broadcast/deployed-addresses.json | 24 +-- broadcast/deployed-addresses.md | 24 +++ 6 files changed, 440 insertions(+), 12 deletions(-) create mode 100644 broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json create mode 100644 broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json create mode 100644 broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json create mode 100644 broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json diff --git a/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json b/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json new file mode 100644 index 000000000..ab6379eb8 --- /dev/null +++ b/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionType": "CREATE", + "contractName": "Mode_SpokePool", + "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609801", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea264697066735822122089ecc23422d858b406d6d8005695ed08f291d974af67738eb1af6eba61a7ccd764736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xb8", + "chainId": "0x868b" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x67f30b", + "logs": [ + { + "address": "0xc49226858478de8757e425661b1b5297102330d7", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", + "blockNumber": "0x1ab10b4", + "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionIndex": "0x6", + "logIndex": "0x6", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000200000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionIndex": "0x6", + "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", + "blockNumber": "0x1ab10b4", + "gasUsed": "0x4a4d8b", + "effectiveGasPrice": "0x1f2", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", + "l1BaseFeeScalar": "0x4e20", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x95506", + "l1Fee": "0x196d6f9b868", + "l1GasPrice": "0x19a43e6c", + "l1GasUsed": "0x31952" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756143930, + "chain": 34443, + "commit": "a6daa38e" +} diff --git a/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json b/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json new file mode 100644 index 000000000..50d071b32 --- /dev/null +++ b/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionType": "CREATE", + "contractName": "Redstone_SpokePool", + "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609811", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220cd932f9335f9362d7b908bcee4aac3b6303202232176516d2db54dcf35dbdc2b64736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xab", + "chainId": "0x2b2" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4af8b2", + "logs": [ + { + "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", + "blockNumber": "0x14f5e90", + "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000081000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionIndex": "0x1", + "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", + "blockNumber": "0x14f5e90", + "gasUsed": "0x4a4d97", + "effectiveGasPrice": "0x33", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "l1BaseFeeScalar": "0xbf9", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x0", + "l1Fee": "0x8652b38f1d", + "l1GasPrice": "0x1fa1174c", + "l1GasUsed": "0x56994" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756142768, + "chain": 690, + "commit": "a6daa38e" +} diff --git a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json new file mode 100644 index 000000000..e0e989e60 --- /dev/null +++ b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json @@ -0,0 +1,194 @@ +{ + "transactions": [ + { + "hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionType": "CREATE", + "contractName": "Lens_SpokePool", + "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "function": null, + "arguments": [ + "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", + "0x88F08E304EC4f90D644Cec3Fb69b8aD414acf884", + "0x7188B6975EeC82ae914b6eC7AC32b3c9a18b2c81", + "0x0000000000000000000000000000000000000000", + "3600", + "21600" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x250b081", + "value": "0x0", + "input": "0x6101e0604081815234620003255760c082620056c9803803809162000025828562000329565b833981010312620003255781516001600160a01b038082169291839003620003255760209081850151818116918282036200032557848701519481861680870362000325576060890151948386169081870362000325576200009860a06200009060808e016200034d565b9c016200034d565b99306080525f60c0525f60a05260e0526101009a8b52610120998a525f5460ff8160081c16620003255760ff80821603620002ec575b506101609586526101809687525f610140908152845163011a412160e61b8a8201908152600482529196916001600160401b0391908188019083821183831017620002ce575f9283928a525190875afa993d15620002e2573d918211620002ce5786519162000147601f8201601f191683018462000329565b82523d5f8284013e5b8a620002c2575b8a6200028d575b5050506101a09788526200026c575b50506101c09586525195615369978862000360893960805188818161104c015281816113c40152611476015260a051886116df015260c05188611798015260e0518881816107d6015281816134c90152818161363d01528181613c6e01528181613f000152818161442e015281816148ce01528181614b0e0152614b8901525187818161167e0152818161347d01526145e701525186818161044e01526143d701525185818161175801528181614ff2015261509d015251848181610779015281816149b50152614ed3015251838181611c77015281816149de0152614ef601525182818161188b0152614f920152518181816110e50152614a270152f35b159015146200027d575f806200016d565b51635110d79160e01b8152600490fd5b909192995080825192015191818110620002b1575b5050161515965f80806200015e565b5f19910360031b1b165f80620002a2565b815181149a5062000157565b634e487b7160e01b5f52604160045260245ffd5b6060915062000150565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249888855160ff8152a15f620000ce565b5f80fd5b601f909101601f19168101906001600160401b03821190821017620002ce57604052565b519063ffffffff82168203620003255756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f000000000000000000000000000000000000000000000000000000000000000016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f000000000000000000000000000000000000000000000000000000000000000016981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000000000164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000000000000000000000000000000000000000000000811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f000000000000000000000000000000000000000000000000000000000000000081168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000000000000000000000000000000000000000000000168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000000000000000000000000000000000000000000000166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c634300081700330000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf8840000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c8100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460", + "nonce": "0xd5", + "chainId": "0xe8" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x0", + "logs": [ + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "0x0000000000000000000000000000000000000000000000000000000000008001" + ], + "data": "0x00000000000000000000000000000000000000000000000002fce17e6fe35285", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000008001", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" + ], + "data": "0x000000000000000000000000000000000000000000000000017e70bf391a0183", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008008", + "topics": ["0x27fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d"], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000007e30000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800477543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008008", + "topics": [ + "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241", + "0x0000000000000000000000000000000000000000000000000000000000008004", + "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000053a06080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000005460168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf884168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d3916300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000e10168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f0000000000000000000000000000000000000000000000000000000000000e1016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f16981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f81169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000005460164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000e1016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88481168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88490837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008004", + "topics": [ + "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287", + "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008006", + "topics": [ + "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", + "0x000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d39" + ], + "data": "0x", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000008001", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" + ], + "data": "0x0000000000000000000000000000000000000000000000000168810baff4d312", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x7", + "removed": false + } + ], + "logsBloom": "0x00000000000400080000010000000000000000000000400000000000000000000000400000000000000000000200000000000000000000000000000000000000000100000001040000000028000040000424000000000000000000000000080000000000060100000000000000000800000000000000400000000010040000000080001000000000000004000100000000000100000080000000102000000080000000000000100000000000800500800000000000000000002000014000000000000002008000800000000000040000000010000100000000000000000020000001000400000000000000000000200000000004000000000000000880000000", + "type": "0x2", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "gasUsed": "0x21fef8", + "effectiveGasPrice": "0xa52ff002", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "l1BatchNumber": null, + "l1BatchTxIndex": null, + "l2ToL1Logs": [ + { + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "l1BatchNumber": null, + "logIndex": "0x0", + "transactionIndex": "0x0", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionLogIndex": "0x0", + "txIndexInL1Batch": "0x7e3", + "shardId": "0x0", + "isService": true, + "sender": "0x0000000000000000000000000000000000008008", + "key": "0x0000000000000000000000000000000000000000000000000000000000008004", + "value": "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" + } + ] + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756148588922, + "chain": 232, + "commit": "a6daa38e" +} diff --git a/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json b/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json new file mode 100644 index 000000000..e2f02b188 --- /dev/null +++ b/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionType": "CREATE", + "contractName": "Cher_SpokePool", + "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x627c28", + "value": "0x0", + "input": "0x6101c0604081815234620002e25760a08262005b5a8038038091620000258285620002e6565b833981010312620002e25781516001600160a01b038082169391849003620002e257602091620000578382016200030a565b94620000658583016200030a565b946060830151928484168403620002e257608001519380851692838603620002e257306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002e25760ff80821603620002a9575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200028b575f938493885251915afa963d156200029f573d9182116200028b5783519162000133601f8201601f1916830184620002e6565b82523d5f8284013e5b876200027f575b876200024a575b5050506101a0948552519461583d96876200031d88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614b9e01528181614c190152614f7a015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b6501528181615592015261563d01525183818161087601528181614a5a015281816152ac01526154730152518281816120a501528181614b3e015281816150810152615496015251818181611ca301526155320152f35b9091929650808251920151918181106200026e575b5050161515935f80806200014a565b5f19910360031b1b165f806200025f565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200028b57604052565b519063ffffffff82168203620002e25756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d25750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614ca0565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df5750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614d68565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614b65565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614b65565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614b65565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614b80565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614b80565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090614dfc565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614b65565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b614eda565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03808316818316149081614b3a575b5015614b2f575081614aa1916152d3565b61086a546001600160a01b0316610c5a5463ffffffff16738be79275fcfd08a931087ecf70ba8a99aee3ac59803b1561047e5760405163262cc5ab60e11b81526001600160a01b039093166004840152602483019390935263ffffffff166044820152905f908290818381606481015b03925af18015610a3257614b225750565b806139d76104de92610645565b90506104de91614f6a565b90507f000000000000000000000000000000000000000000000000000000000000000016155f614a90565b60a01c614b6e57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614c3e575b15614c1157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614bfe575b5061543d565b806139d7614c0b92610645565b5f614bf8565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614c4a81610746565b614c5760405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614c8a575b50501661ef0160f01b14614b96565b829350829060030360031b1b1616905f80614c7b565b614ca981614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614d61575b614cea575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614d1e81610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614d5b613026565b91615763565b505f614ce2565b614d7181614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614db157614cea575050565b506001614ce2565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614e068383615712565b6005819592951015612fe957159384614ec4575b508315614e3e575b50505015614e2c57565b60405163938a182160e01b8152600490fd5b5f929350908291604051614e7681613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa90614e83613026565b82614eb6575b82614e99575b50505f8080614e22565b614eae91925060208082518301019101613bdf565b145f80614e8f565b915060208251101591614e89565b6001600160a01b0383811691161493505f614e1a565b905f806001600160a01b03614f319416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614f1a81610607565b818152015260208151910182855af1614d5b613026565b8051908115918215614f47575b50501561047e57565b819250906020918101031261047e5760200151614f6381611bc9565b5f80614f3e565b906001600160a01b0390818116907f00000000000000000000000000000000000000000000000000000000000000008316820361507d5750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a325761506a575b50610c5a5491614fef61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b81526001600160a01b03602087901c90951685166004820152931660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839182908160c48101614b11565b806139d761507792610645565b5f614fd6565b91807f0000000000000000000000000000000000000000000000000000000000000000161515806152a8575b156150cd575050506104de906150c861086a546001600160a01b031690565b615465565b806150fa6150ed856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615284577342000000000000000000000000000000000000105b16906151396123946150ed856001600160a01b03165f52610c5d60205260405f2090565b156151fe57838261514992615390565b6151686150ed836001600160a01b03165f52610c5d60205260405f2090565b9061517c61086a546001600160a01b031690565b9161518d610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829060e490829084905af18015610a3257614b225750565b509161521361086a546001600160a01b031690565b92615224610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614b11565b6152a36150ed846001600160a01b03165f52610c5c60205260405f2090565b615115565b50807f00000000000000000000000000000000000000000000000000000000000000001682146150a9565b604051636eb1769f60e11b8152306004820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015290916020826044816001600160a01b0387165afa918215610a32575f9261536f575b5081018091116131e95760405163095ea7b360e01b6020820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015260448101919091526104de9161490b82606481016148fd565b61538991925060203d6020116112355761122681836106c9565b905f615322565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610a32575f9361541c575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61543691935060203d6020116112355761122681836106c9565b915f6153d8565b81471061047e575f8080936001600160a01b038294165af161545d613026565b501561047e57565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936154c2848685615390565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f986156f1575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966156d2575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61556257505050505050505050565b868111156156cc57865b881561562457843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a325761560b93615611575b50613817565b80615553565b806139d761561e92610645565b5f615605565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a325761560b9361569f5750613817565b6156be90853d87116156c5575b6156b681836106c9565b810190615743565b505f615605565b503d6156ac565b8061556c565b6156ea919650873d89116112355761122681836106c9565b945f61552d565b8691985061570b90833d8511610a2b57610a1d81836106c9565b97906154f1565b9060418151145f1461573a576113d791602082015190606060408401519301515f1a9061578c565b50505f90600290565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b901561577d57815115615774575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157fc576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b038116156157f457905f90565b505f90600190565b505050505f9060039056fea2646970667358221220f59bcf0c28187cdbafecfda3d2d671815535ec616f2aa03d3171587a43f29d0164736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460000000000000000000000000ba9986d2381edf1da03b0b9c1f8b00dc4aacc3690000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2f", + "chainId": "0x74c" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x712d15", + "logs": [ + { + "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", + "blockNumber": "0xaf8ae3", + "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionIndex": "0x5", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionIndex": "0x5", + "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", + "blockNumber": "0xaf8ae3", + "gasUsed": "0x4bc1f8", + "effectiveGasPrice": "0x2951", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "l1BaseFeeScalar": "0x2608", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x177fef", + "l1Fee": "0xe48e8d678e", + "l1GasPrice": "0x1d19b4f2", + "l1GasUsed": "0x326b4" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756143516, + "chain": 1868, + "commit": "a6daa38e" +} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index efab811d6..4d9c76f37 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -345,9 +345,9 @@ "chain_name": "Lens", "contracts": { "SpokePool": { - "address": "0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12", - "transaction_hash": "Unknown", - "block_number": 193290 + "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "block_number": 4092265 }, "MulticallHandler": { "address": "0xc5939F59b3c9662377DdA53A08D5085b2d52b719", @@ -420,9 +420,9 @@ "chain_name": "Redstone", "contracts": { "SpokePool": { - "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", - "transaction_hash": "Unknown", - "block_number": 5512122 + "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "transaction_hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "block_number": 21978768 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -500,9 +500,9 @@ "chain_name": "Soneium", "contracts": { "SpokePool": { - "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", - "transaction_hash": "Unknown", - "block_number": 1709997 + "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "transaction_hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "block_number": 11504355 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -570,9 +570,9 @@ "chain_name": "Mode", "contracts": { "SpokePool": { - "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", - "transaction_hash": "Unknown", - "block_number": 8043187 + "address": "0xc49226858478de8757e425661b1b5297102330d7", + "transaction_hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "block_number": 27988148 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index 64db7a054..fcf818742 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -414,6 +414,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` +### 059DeployLensSpokePool.s.sol + +- **SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` + - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` + - Block Number: `4092265` + ### Boba (Chain ID: 288) #### SpokePool @@ -494,6 +500,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` +### 047DeployRedstoneSpokePool.s.sol + +- **SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` + - Transaction Hash: `0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166` + - Block Number: `21978768` + ### Lisk (Chain ID: 1135) #### SpokePool @@ -546,6 +558,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `8910059` +### 060DeployCherSpokePool.s.sol + +- **SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` + - Transaction Hash: `0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f` + - Block Number: `11504355` + ### Base (Chain ID: 8453) #### SpokePool @@ -604,6 +622,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `25393939` +### 039DeployModeSpokePool.s.sol + +- **SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` + - Transaction Hash: `0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b` + - Block Number: `27988148` + ### Aleph Zero (Chain ID: 41455) #### SpokePool From 34f87a0e25003109c2f58868e6da57c56b066972 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Tue, 26 Aug 2025 10:06:57 -0400 Subject: [PATCH 07/16] Revert "Deployed mode, redstone, lens and soneium spoke pools" This reverts commit 8ccecb12b5c85ffce0fc783b602058312de83e85. Signed-off-by: Faisal Usmani --- .../34443/run-latest.json | 70 ------- .../690/run-latest.json | 70 ------- .../232/run-latest.json | 194 ------------------ .../1868/run-latest.json | 70 ------- broadcast/deployed-addresses.json | 24 +-- broadcast/deployed-addresses.md | 24 --- script/039DeployModeSpokePool.s.sol | 4 +- script/059DeployLensSpokePool.s.sol | 4 +- script/060DeployCherSpokePool.s.sol | 4 +- script/utils/Constants.sol | 11 - script/utils/constants.json | 4 - 11 files changed, 16 insertions(+), 463 deletions(-) delete mode 100644 broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json delete mode 100644 broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json delete mode 100644 broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json delete mode 100644 broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json diff --git a/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json b/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json deleted file mode 100644 index ab6379eb8..000000000 --- a/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", - "transactionType": "CREATE", - "contractName": "Mode_SpokePool", - "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", - "function": null, - "arguments": [ - "0x4200000000000000000000000000000000000006", - "3600", - "21600", - "0x0000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x609801", - "value": "0x0", - "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea264697066735822122089ecc23422d858b406d6d8005695ed08f291d974af67738eb1af6eba61a7ccd764736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0xb8", - "chainId": "0x868b" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x67f30b", - "logs": [ - { - "address": "0xc49226858478de8757e425661b1b5297102330d7", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", - "blockNumber": "0x1ab10b4", - "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", - "transactionIndex": "0x6", - "logIndex": "0x6", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000200000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", - "transactionIndex": "0x6", - "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", - "blockNumber": "0x1ab10b4", - "gasUsed": "0x4a4d8b", - "effectiveGasPrice": "0x1f2", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", - "l1BaseFeeScalar": "0x4e20", - "l1BlobBaseFee": "0x1", - "l1BlobBaseFeeScalar": "0x95506", - "l1Fee": "0x196d6f9b868", - "l1GasPrice": "0x19a43e6c", - "l1GasUsed": "0x31952" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756143930, - "chain": 34443, - "commit": "a6daa38e" -} diff --git a/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json b/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json deleted file mode 100644 index 50d071b32..000000000 --- a/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", - "transactionType": "CREATE", - "contractName": "Redstone_SpokePool", - "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", - "function": null, - "arguments": [ - "0x4200000000000000000000000000000000000006", - "3600", - "21600", - "0x0000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x609811", - "value": "0x0", - "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220cd932f9335f9362d7b908bcee4aac3b6303202232176516d2db54dcf35dbdc2b64736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0xab", - "chainId": "0x2b2" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x4af8b2", - "logs": [ - { - "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", - "blockNumber": "0x14f5e90", - "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", - "transactionIndex": "0x1", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000081000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", - "transactionIndex": "0x1", - "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", - "blockNumber": "0x14f5e90", - "gasUsed": "0x4a4d97", - "effectiveGasPrice": "0x33", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", - "l1BaseFeeScalar": "0xbf9", - "l1BlobBaseFee": "0x1", - "l1BlobBaseFeeScalar": "0x0", - "l1Fee": "0x8652b38f1d", - "l1GasPrice": "0x1fa1174c", - "l1GasUsed": "0x56994" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756142768, - "chain": 690, - "commit": "a6daa38e" -} diff --git a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json deleted file mode 100644 index e0e989e60..000000000 --- a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionType": "CREATE", - "contractName": "Lens_SpokePool", - "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "function": null, - "arguments": [ - "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", - "0x88F08E304EC4f90D644Cec3Fb69b8aD414acf884", - "0x7188B6975EeC82ae914b6eC7AC32b3c9a18b2c81", - "0x0000000000000000000000000000000000000000", - "3600", - "21600" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x250b081", - "value": "0x0", - "input": "0x6101e0604081815234620003255760c082620056c9803803809162000025828562000329565b833981010312620003255781516001600160a01b038082169291839003620003255760209081850151818116918282036200032557848701519481861680870362000325576060890151948386169081870362000325576200009860a06200009060808e016200034d565b9c016200034d565b99306080525f60c0525f60a05260e0526101009a8b52610120998a525f5460ff8160081c16620003255760ff80821603620002ec575b506101609586526101809687525f610140908152845163011a412160e61b8a8201908152600482529196916001600160401b0391908188019083821183831017620002ce575f9283928a525190875afa993d15620002e2573d918211620002ce5786519162000147601f8201601f191683018462000329565b82523d5f8284013e5b8a620002c2575b8a6200028d575b5050506101a09788526200026c575b50506101c09586525195615369978862000360893960805188818161104c015281816113c40152611476015260a051886116df015260c05188611798015260e0518881816107d6015281816134c90152818161363d01528181613c6e01528181613f000152818161442e015281816148ce01528181614b0e0152614b8901525187818161167e0152818161347d01526145e701525186818161044e01526143d701525185818161175801528181614ff2015261509d015251848181610779015281816149b50152614ed3015251838181611c77015281816149de0152614ef601525182818161188b0152614f920152518181816110e50152614a270152f35b159015146200027d575f806200016d565b51635110d79160e01b8152600490fd5b909192995080825192015191818110620002b1575b5050161515965f80806200015e565b5f19910360031b1b165f80620002a2565b815181149a5062000157565b634e487b7160e01b5f52604160045260245ffd5b6060915062000150565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249888855160ff8152a15f620000ce565b5f80fd5b601f909101601f19168101906001600160401b03821190821017620002ce57604052565b519063ffffffff82168203620003255756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f000000000000000000000000000000000000000000000000000000000000000016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f000000000000000000000000000000000000000000000000000000000000000016981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000000000164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000000000000000000000000000000000000000000000811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f000000000000000000000000000000000000000000000000000000000000000081168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000000000000000000000000000000000000000000000168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000000000000000000000000000000000000000000000166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c634300081700330000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf8840000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c8100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460", - "nonce": "0xd5", - "chainId": "0xe8" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x0", - "logs": [ - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "0x0000000000000000000000000000000000000000000000000000000000008001" - ], - "data": "0x00000000000000000000000000000000000000000000000002fce17e6fe35285", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000008001", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" - ], - "data": "0x000000000000000000000000000000000000000000000000017e70bf391a0183", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008008", - "topics": ["0x27fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d"], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000007e30000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800477543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008008", - "topics": [ - "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241", - "0x0000000000000000000000000000000000000000000000000000000000008004", - "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000053a06080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000005460168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf884168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d3916300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000e10168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f0000000000000000000000000000000000000000000000000000000000000e1016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f16981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f81169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000005460164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000e1016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88481168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88490837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x4", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008004", - "topics": [ - "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287", - "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x5", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008006", - "topics": [ - "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", - "0x000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d39" - ], - "data": "0x", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x6", - "removed": false - }, - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000008001", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" - ], - "data": "0x0000000000000000000000000000000000000000000000000168810baff4d312", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x7", - "removed": false - } - ], - "logsBloom": "0x00000000000400080000010000000000000000000000400000000000000000000000400000000000000000000200000000000000000000000000000000000000000100000001040000000028000040000424000000000000000000000000080000000000060100000000000000000800000000000000400000000010040000000080001000000000000004000100000000000100000080000000102000000080000000000000100000000000800500800000000000000000002000014000000000000002008000800000000000040000000010000100000000000000000020000001000400000000000000000000200000000004000000000000000880000000", - "type": "0x2", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "gasUsed": "0x21fef8", - "effectiveGasPrice": "0xa52ff002", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "l1BatchNumber": null, - "l1BatchTxIndex": null, - "l2ToL1Logs": [ - { - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "l1BatchNumber": null, - "logIndex": "0x0", - "transactionIndex": "0x0", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionLogIndex": "0x0", - "txIndexInL1Batch": "0x7e3", - "shardId": "0x0", - "isService": true, - "sender": "0x0000000000000000000000000000000000008008", - "key": "0x0000000000000000000000000000000000000000000000000000000000008004", - "value": "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" - } - ] - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756148588922, - "chain": 232, - "commit": "a6daa38e" -} diff --git a/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json b/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json deleted file mode 100644 index e2f02b188..000000000 --- a/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "transactions": [ - { - "hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", - "transactionType": "CREATE", - "contractName": "Cher_SpokePool", - "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", - "function": null, - "arguments": [ - "0x4200000000000000000000000000000000000006", - "3600", - "21600", - "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369", - "0x0000000000000000000000000000000000000000" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x627c28", - "value": "0x0", - "input": "0x6101c0604081815234620002e25760a08262005b5a8038038091620000258285620002e6565b833981010312620002e25781516001600160a01b038082169391849003620002e257602091620000578382016200030a565b94620000658583016200030a565b946060830151928484168403620002e257608001519380851692838603620002e257306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002e25760ff80821603620002a9575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200028b575f938493885251915afa963d156200029f573d9182116200028b5783519162000133601f8201601f1916830184620002e6565b82523d5f8284013e5b876200027f575b876200024a575b5050506101a0948552519461583d96876200031d88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614b9e01528181614c190152614f7a015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b6501528181615592015261563d01525183818161087601528181614a5a015281816152ac01526154730152518281816120a501528181614b3e015281816150810152615496015251818181611ca301526155320152f35b9091929650808251920151918181106200026e575b5050161515935f80806200014a565b5f19910360031b1b165f806200025f565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200028b57604052565b519063ffffffff82168203620002e25756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d25750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614ca0565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df5750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614d68565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614b65565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614b65565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614b65565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614b80565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614b80565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090614dfc565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614b65565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b614eda565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03808316818316149081614b3a575b5015614b2f575081614aa1916152d3565b61086a546001600160a01b0316610c5a5463ffffffff16738be79275fcfd08a931087ecf70ba8a99aee3ac59803b1561047e5760405163262cc5ab60e11b81526001600160a01b039093166004840152602483019390935263ffffffff166044820152905f908290818381606481015b03925af18015610a3257614b225750565b806139d76104de92610645565b90506104de91614f6a565b90507f000000000000000000000000000000000000000000000000000000000000000016155f614a90565b60a01c614b6e57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614c3e575b15614c1157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614bfe575b5061543d565b806139d7614c0b92610645565b5f614bf8565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614c4a81610746565b614c5760405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614c8a575b50501661ef0160f01b14614b96565b829350829060030360031b1b1616905f80614c7b565b614ca981614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614d61575b614cea575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614d1e81610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614d5b613026565b91615763565b505f614ce2565b614d7181614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614db157614cea575050565b506001614ce2565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614e068383615712565b6005819592951015612fe957159384614ec4575b508315614e3e575b50505015614e2c57565b60405163938a182160e01b8152600490fd5b5f929350908291604051614e7681613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa90614e83613026565b82614eb6575b82614e99575b50505f8080614e22565b614eae91925060208082518301019101613bdf565b145f80614e8f565b915060208251101591614e89565b6001600160a01b0383811691161493505f614e1a565b905f806001600160a01b03614f319416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614f1a81610607565b818152015260208151910182855af1614d5b613026565b8051908115918215614f47575b50501561047e57565b819250906020918101031261047e5760200151614f6381611bc9565b5f80614f3e565b906001600160a01b0390818116907f00000000000000000000000000000000000000000000000000000000000000008316820361507d5750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a325761506a575b50610c5a5491614fef61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b81526001600160a01b03602087901c90951685166004820152931660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839182908160c48101614b11565b806139d761507792610645565b5f614fd6565b91807f0000000000000000000000000000000000000000000000000000000000000000161515806152a8575b156150cd575050506104de906150c861086a546001600160a01b031690565b615465565b806150fa6150ed856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615284577342000000000000000000000000000000000000105b16906151396123946150ed856001600160a01b03165f52610c5d60205260405f2090565b156151fe57838261514992615390565b6151686150ed836001600160a01b03165f52610c5d60205260405f2090565b9061517c61086a546001600160a01b031690565b9161518d610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829060e490829084905af18015610a3257614b225750565b509161521361086a546001600160a01b031690565b92615224610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614b11565b6152a36150ed846001600160a01b03165f52610c5c60205260405f2090565b615115565b50807f00000000000000000000000000000000000000000000000000000000000000001682146150a9565b604051636eb1769f60e11b8152306004820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015290916020826044816001600160a01b0387165afa918215610a32575f9261536f575b5081018091116131e95760405163095ea7b360e01b6020820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015260448101919091526104de9161490b82606481016148fd565b61538991925060203d6020116112355761122681836106c9565b905f615322565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610a32575f9361541c575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61543691935060203d6020116112355761122681836106c9565b915f6153d8565b81471061047e575f8080936001600160a01b038294165af161545d613026565b501561047e57565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936154c2848685615390565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f986156f1575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966156d2575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61556257505050505050505050565b868111156156cc57865b881561562457843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a325761560b93615611575b50613817565b80615553565b806139d761561e92610645565b5f615605565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a325761560b9361569f5750613817565b6156be90853d87116156c5575b6156b681836106c9565b810190615743565b505f615605565b503d6156ac565b8061556c565b6156ea919650873d89116112355761122681836106c9565b945f61552d565b8691985061570b90833d8511610a2b57610a1d81836106c9565b97906154f1565b9060418151145f1461573a576113d791602082015190606060408401519301515f1a9061578c565b50505f90600290565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b901561577d57815115615774575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157fc576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b038116156157f457905f90565b505f90600190565b505050505f9060039056fea2646970667358221220f59bcf0c28187cdbafecfda3d2d671815535ec616f2aa03d3171587a43f29d0164736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460000000000000000000000000ba9986d2381edf1da03b0b9c1f8b00dc4aacc3690000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x2f", - "chainId": "0x74c" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x712d15", - "logs": [ - { - "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", - "blockNumber": "0xaf8ae3", - "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", - "transactionIndex": "0x5", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", - "transactionIndex": "0x5", - "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", - "blockNumber": "0xaf8ae3", - "gasUsed": "0x4bc1f8", - "effectiveGasPrice": "0x2951", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", - "l1BaseFeeScalar": "0x2608", - "l1BlobBaseFee": "0x1", - "l1BlobBaseFeeScalar": "0x177fef", - "l1Fee": "0xe48e8d678e", - "l1GasPrice": "0x1d19b4f2", - "l1GasUsed": "0x326b4" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756143516, - "chain": 1868, - "commit": "a6daa38e" -} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 4d9c76f37..efab811d6 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -345,9 +345,9 @@ "chain_name": "Lens", "contracts": { "SpokePool": { - "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "block_number": 4092265 + "address": "0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12", + "transaction_hash": "Unknown", + "block_number": 193290 }, "MulticallHandler": { "address": "0xc5939F59b3c9662377DdA53A08D5085b2d52b719", @@ -420,9 +420,9 @@ "chain_name": "Redstone", "contracts": { "SpokePool": { - "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", - "transaction_hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", - "block_number": 21978768 + "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", + "transaction_hash": "Unknown", + "block_number": 5512122 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -500,9 +500,9 @@ "chain_name": "Soneium", "contracts": { "SpokePool": { - "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", - "transaction_hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", - "block_number": 11504355 + "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "transaction_hash": "Unknown", + "block_number": 1709997 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -570,9 +570,9 @@ "chain_name": "Mode", "contracts": { "SpokePool": { - "address": "0xc49226858478de8757e425661b1b5297102330d7", - "transaction_hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", - "block_number": 27988148 + "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "transaction_hash": "Unknown", + "block_number": 8043187 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index fcf818742..64db7a054 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -414,12 +414,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` -### 059DeployLensSpokePool.s.sol - -- **SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` - - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` - - Block Number: `4092265` - ### Boba (Chain ID: 288) #### SpokePool @@ -500,12 +494,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -### 047DeployRedstoneSpokePool.s.sol - -- **SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` - - Transaction Hash: `0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166` - - Block Number: `21978768` - ### Lisk (Chain ID: 1135) #### SpokePool @@ -558,12 +546,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `8910059` -### 060DeployCherSpokePool.s.sol - -- **SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` - - Transaction Hash: `0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f` - - Block Number: `11504355` - ### Base (Chain ID: 8453) #### SpokePool @@ -622,12 +604,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `25393939` -### 039DeployModeSpokePool.s.sol - -- **SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` - - Transaction Hash: `0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b` - - Block Number: `27988148` - ### Aleph Zero (Chain ID: 41455) #### SpokePool diff --git a/script/039DeployModeSpokePool.s.sol b/script/039DeployModeSpokePool.s.sol index 01bda99a9..db3f3e831 100644 --- a/script/039DeployModeSpokePool.s.sol +++ b/script/039DeployModeSpokePool.s.sol @@ -12,9 +12,7 @@ import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; // 1. `source .env` where `.env` has MNEMONIC="x x x ... x" // 2. forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url $NODE_URL_1 -vvvv // 3. Verify the above works in simulation mode. -// 4. Deploy with: -// forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url \ -// $NODE_URL_1 --broadcast --verify --verifier blockscout --verifier-url https://explorer.mode.network/api +// 4. Deploy with: forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url $NODE_URL_1 --broadcast --verify contract DeployModeSpokePool is Script, Test, DeploymentUtils { function run() external { diff --git a/script/059DeployLensSpokePool.s.sol b/script/059DeployLensSpokePool.s.sol index ba8e3c873..2f9368a48 100644 --- a/script/059DeployLensSpokePool.s.sol +++ b/script/059DeployLensSpokePool.s.sol @@ -28,7 +28,7 @@ contract DeployLensSpokePool is Script, Test, DeploymentUtils { console.log("HubPool address:", info.hubPool); // Get the appropriate addresses for this chain - address wgho = getWghoAddress(info.spokeChainId); + WETH9Interface wgho = getWrappedNativeToken(info.spokeChainId); // Get L2 addresses for Lens address zkErc20Bridge = getL2Address(info.spokeChainId, "zkErc20Bridge"); @@ -50,7 +50,7 @@ contract DeployLensSpokePool is Script, Test, DeploymentUtils { // Prepare constructor arguments for Lens_SpokePool bytes memory constructorArgs = abi.encode( - wgho, // _wrappedNativeTokenAddress + address(wgho), // _wrappedNativeTokenAddress usdcAddress, // _circleUSDC zkUSDCBridge, // _zkUSDCBridge cctpTokenMessenger, // _cctpTokenMessenger diff --git a/script/060DeployCherSpokePool.s.sol b/script/060DeployCherSpokePool.s.sol index 439e2d705..3bf676375 100644 --- a/script/060DeployCherSpokePool.s.sol +++ b/script/060DeployCherSpokePool.s.sol @@ -12,9 +12,7 @@ import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; // 1. `source .env` where `.env` has MNEMONIC="x x x ... x" // 2. forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url $NODE_URL_1 -vvvv // 3. Verify the above works in simulation mode. -// 4. Deploy with: -// forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url \ -// $NODE_URL_1 --broadcast --verify --verifier blockscout --verifier-url https://soneium.blockscout.com/api +// 4. Deploy with: forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url $NODE_URL_1 --broadcast --verify contract DeployCherSpokePool is Script, Test, DeploymentUtils { function run() external { diff --git a/script/utils/Constants.sol b/script/utils/Constants.sol index e36eea8f2..e3d7d2f7e 100644 --- a/script/utils/Constants.sol +++ b/script/utils/Constants.sol @@ -295,17 +295,6 @@ contract Constants is Script { return vm.parseJsonAddress(file, jsonPath); } - /** - * @notice Get WGHO address for the given chain - * @param chainId The chain ID to get WGHO address for - * @return The WGHO address - */ - function getWghoAddress(uint256 chainId) public view returns (address) { - string memory chainName = _getChainName(chainId); - string memory jsonPath = string(abi.encodePacked(".wghoAddresses.", chainName)); - return vm.parseJsonAddress(file, jsonPath); - } - function getOftEid(uint256 chainId) public view returns (uint256) { string memory chainName = _getChainName(chainId); return vm.parseJsonUint(file, string.concat(".oftEids.", chainName)); diff --git a/script/utils/constants.json b/script/utils/constants.json index 12b7d3539..d91c84a1d 100644 --- a/script/utils/constants.json +++ b/script/utils/constants.json @@ -401,10 +401,6 @@ "SONEIUM": "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369", "ZK_SYNC": "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4" }, - "wghoAddresses": { - "LENS": "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", - "MAINNET": "0x1ff1dC3cB9eeDbC6Eb2d99C03b30A05cA625fB5a" - }, "otherConstants": { "ZERO_ADDRESS": "0x0000000000000000000000000000000000000000000000" } From 21c12342b4adc5095680705c80b0cc81f277ae43 Mon Sep 17 00:00:00 2001 From: bennett Date: Mon, 25 Aug 2025 14:37:05 -0500 Subject: [PATCH 08/16] deploy scroll, blast, zora, and ink Signed-off-by: bennett --- .../534352/run-latest.json | 59 +++++++++++++++ .../81457/run-latest.json | 71 +++++++++++++++++++ .../7777777/run-latest.json | 70 ++++++++++++++++++ .../81457/run-latest.json | 67 +++++++++++++++++ .../57073/run-latest.json | 70 ++++++++++++++++++ broadcast/deployed-addresses.json | 24 +++---- broadcast/deployed-addresses.md | 30 ++++++++ foundry.lock | 5 ++ 8 files changed, 384 insertions(+), 12 deletions(-) create mode 100644 broadcast/027DeployScrollSpokePool.s.sol/534352/run-latest.json create mode 100644 broadcast/036DeployBlastSpokePool.s.sol/81457/run-latest.json create mode 100644 broadcast/049DeployZoraSpokePool.s.sol/7777777/run-latest.json create mode 100644 broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json create mode 100644 broadcast/057DeployInkSpokePool.s.sol/57073/run-latest.json create mode 100644 foundry.lock diff --git a/broadcast/027DeployScrollSpokePool.s.sol/534352/run-latest.json b/broadcast/027DeployScrollSpokePool.s.sol/534352/run-latest.json new file mode 100644 index 000000000..7c428ea93 --- /dev/null +++ b/broadcast/027DeployScrollSpokePool.s.sol/534352/run-latest.json @@ -0,0 +1,59 @@ +{ + "transactions": [ + { + "hash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", + "transactionType": "CREATE", + "contractName": "Scroll_SpokePool", + "contractAddress": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", + "function": null, + "arguments": ["0x5300000000000000000000000000000000000004", "3600", "21600"], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x55cad7", + "value": "0x0", + "input": "0x610140346200017657601f62004e5d38819003918201601f19168301916001600160401b038311848410176200017a57808492606094604052833981010312620001765780516001600160a01b0381169081900362000176576200007460406200006c602085016200018e565b93016200018e565b90306080525f60c0525f60a05260e0526101009182526101209081525f5460ff8160081c16620001765760ff808216036200013b575b5060405190614cbc9283620001a18439608051838181610fb10152818161138c01526114b8015260a05183611721015260c0518361179a015260e051838181610753015281816133a401528181613b2a01528181613dbc015281816140da0152818161471601526147910152518281816116c001528181613358015261429301525181818161040e01526140830152f35b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f620000aa565b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b519063ffffffff82168203620001765756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c7146103df5780630cb84d9a146103da5780631186ec33146103d557806315348e441461036757806317fcb39b146103d057806319c1648c146103cb5780631b3d5559146103c65780631fab657c146103c157806329cb924d146103bc5780632e378115146103b75780632e63e59a146103b25780633659cfe6146103ad578063437b9116146103a8578063490e49ef146103a3578063493a4f841461039e5780634e3485c8146103995780634f1ef286146103945780635285e0581461038f57806352d1902d1461038a578063541f4f1414610385578063577f51f81461038057806357f6dcb81461037b5780636068d6cb1461037657806361a04d3014610371578063670fa8ac1461036c5780636bbbcd2e146103675780636fd5c10e14610362578063738b62e51461035d5780637aef642c146103585780637b939232146103535780637ef413e11461034e57806382e2c43f146103495780638a7860ce146103445780638b15788e1461033f57806397943aa91461033a578063979f2bc21461033557806399cc2968146103305780639a8a05921461032b578063a1244c6714610326578063a18a096e14610321578063ac9650d81461031c578063ad5425c614610317578063adb5a6a6146102c2578063b370b7f514610312578063b4c0d7ab1461030d578063babb6aac14610308578063c0e70bbd14610303578063c35c83fc146102fe578063c8356859146102f9578063ceb4c987146102f4578063d37ff494146102ef578063d7e1583a146102ea578063dda52113146102e5578063ddd224f1146102e0578063de7eba78146102db578063deff4b24146102d6578063e9a045a2146102d1578063ea86bd46146102cc578063ee2a53f8146102c7578063f79f29ed146102c25763fc8a584f0361000e576128e4565b61218d565b6128a6565b6127a3565b61276e565b612679565b612649565b612620565b6125fa565b6125c4565b6123d0565b6123b2565b61238b565b612360565b612339565b612262565b612233565b6121d4565b612051565b611fb1565b611e4a565b611e23565b611e09565b611d74565b611c6d565b611bed565b611b6f565b611af7565b6119dc565b6119a5565b6118fd565b61185d565b6117c8565b61177e565b61071a565b611744565b61170a565b6116e4565b6116a4565b6115cb565b611508565b61149e565b611477565b611349565b611314565b61128d565b61126f565b6111a2565b610f89565b610d8f565b610c2f565b610c06565b610b0b565b610a02565b61079c565b610734565b610679565b610450565b6103f2565b5f9103126103ee57565b5f80fd5b346103ee575f3660031901126103ee57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036103ee57565b359061044e82610432565b565b346103ee5760203660031901126103ee57602060043561046f81610432565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff8116036103ee57565b610144359061044e8261048f565b359061044e8261048f565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176104e657604052565b6104b6565b6101a0810190811067ffffffffffffffff8211176104e657604052565b67ffffffffffffffff81116104e657604052565b6060810190811067ffffffffffffffff8211176104e657604052565b6080810190811067ffffffffffffffff8211176104e657604052565b60e0810190811067ffffffffffffffff8211176104e657604052565b60a0810190811067ffffffffffffffff8211176104e657604052565b90601f8019910116810190811067ffffffffffffffff8211176104e657604052565b6040519060c0820182811067ffffffffffffffff8211176104e657604052565b60405190610180820182811067ffffffffffffffff8211176104e657604052565b6040519061044e826104eb565b6040519061044e82610538565b67ffffffffffffffff81116104e657601f01601f191660200190565b92919261063182610609565b9161063f604051938461058c565b8294818452818301116103ee578281602093845f960137010152565b9080601f830112156103ee5781602061067693359101610625565b90565b6101003660031901126103ee5760043561069281610432565b60243561069e81610432565b6084358060070b81036103ee5760a435906106b88261048f565b60c43567ffffffffffffffff81116103ee576106d890369060040161065b565b926106e161328f565b60ff61086b5460e81c16610708576107019460643591604435913361330a565b6001606555005b604051630b4cba3160e31b8152600490fd5b346103ee575f3660031901126103ee5760206040515f8152f35b346103ee575f3660031901126103ee5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126103ee5760043561078f81610432565b9060243561067681610432565b346103ee576107aa36610777565b906107b361350e565b6107bb61328f565b6001600160a01b03908183169283151580610851575b61083f57610810906107f5836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa9081156108b2575f91610883575b50831682841614156107d1565b6108a5915060203d6020116108ab575b61089d818361058c565b8101906134f9565b5f610876565b503d610893565b6132ad565b67ffffffffffffffff81116104e65760051b60200190565b9080601f830112156103ee5760209082356108e9816108b7565b936108f7604051958661058c565b81855260208086019260051b8201019283116103ee57602001905b828210610920575050505090565b81358152908301908301610912565b9080601f830112156103ee576020908235610949816108b7565b93610957604051958661058c565b81855260208086019260051b8201019283116103ee57602001905b828210610980575050505090565b838091833561098e81610432565b815201910190610972565b92916109a4826108b7565b916109b2604051938461058c565b829481845260208094019160051b81019283116103ee57905b8282106109d85750505050565b813581529083019083016109cb565b9080601f830112156103ee5781602061067693359101610999565b6003196060368201126103ee57600435610a1b8161048f565b60243567ffffffffffffffff928382116103ee5760c09082360301126103ee57610a436105ae565b90806004013582526024810135602083015260448101358481116103ee57610a7190600436918401016108cf565b6040830152610a82606482016104ab565b6060830152610a9360848201610443565b608083015260a4810135908482116103ee576004610ab4923692010161092f565b60a08201526044359283116103ee57610ad46100189336906004016109e7565b91612914565b9181601f840112156103ee5782359167ffffffffffffffff83116103ee576020808501948460051b0101116103ee57565b346103ee576003196060368201126103ee5760043567ffffffffffffffff8082116103ee576060823603938401126103ee5760243590610b4a8261048f565b6044359081116103ee57610b62903690600401610ada565b919093610b6d61328f565b60048401359061018219018112156103ee57610bfc94610bf793610b9a610bf093600436918901016124e8565b95610ba86080880151613856565b50610bb2876131c2565b9060446020890151916101608a015193610bca6105ae565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610999565b908361386c565b6139bd565b6100186001606555565b346103ee575f3660031901126103ee576020604051428152f35b90816101809103126103ee5790565b346103ee5760403660031901126103ee5760043567ffffffffffffffff81116103ee57610c60903690600401610c20565b610c6981612aff565b6001600160a01b031690610c7f60208201612aff565b6001600160a01b031691610c9560408301612aff565b6001600160a01b0316610caa60608401612aff565b6001600160a01b031692610cc060808201612aff565b6001600160a01b031690610100610cd8818301612b09565b9061012090610ce8848301612b09565b9261014094858101610cf990612b09565b966101609a8b8301610d0b9084612b13565b9a909b610d166105ce565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610d67919063ffffffff169052565b63ffffffff909116908501523690610d7e92610625565b9082015233602435610018926131f3565b346103ee5760203660031901126103ee576004803567ffffffffffffffff81116103ee57610dc09036908301610c20565b610dc861328f565b60ff61086b5460e01c16610f795763ffffffff80421692610140830193610e0181610df287612b09565b63ffffffff9182169116101590565b610f6957610120840192610e1484612b09565b1610610f5a57610e2c610e2736856124e8565b6131c2565b90610e40825f5261087260205260405f2090565b54610f4c5750610e8f7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610e8a610e84610e95945f5261087260205260405f2090565b60019055565b612b09565b93612b09565b610eb5610eb0610ea9610160860186612b13565b3691610625565b613e92565b90610f3f6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b346103ee5760203660031901126103ee57600435610fa681610432565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000168030146103ee577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9082825416036103ee5761100b61350e565b6110136121fb565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f1461104b5750505061001890614934565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611084575b50611076575f80fd5b036103ee5761001891614818565b6110a791925060203d6020116110ae575b61109f818361058c565b810190613659565b905f61106d565b503d611095565b60206003198201126103ee576004359067ffffffffffffffff82116103ee576110e091600401610ada565b9091565b5f5b8381106110f55750505f910152565b81810151838201526020016110e6565b9060209161111e815180928185528580860191016110e4565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611160575050505050505090565b909192939495968580611191600193603f1986820301885286838d5180511515845201519181858201520190611105565b99019401940192959493919061114f565b346103ee576111b0366110b5565b6111b9816108b7565b9160406111c9604051948561058c565b828452601f196111d8846108b7565b015f5b81811061124c5750505f5b8381106111ff57604051806111fb878261112a565b0390f35b8061124661120f60019388612b70565b515f8061121d858a8a612b84565b9061122c895180938193612b9b565b0390305af49061123a612ba8565b60208201529015159052565b016111e6565b602090835161125a816104ca565b5f8152826060818301528289010152016111db565b346103ee575f3660031901126103ee5760206040516301e133808152f35b346103ee5760403660031901126103ee576024356004356112ac61350e565b6112b461328f565b61086c8054680100000000000000008110156104e65763ffffffff91600182019055836112e082612867565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b346103ee5760203660031901126103ee5761070160043561133481610432565b61133c61350e565b61134461328f565b613ea7565b60403660031901126103ee5760043561136181610432565b60243567ffffffffffffffff81116103ee5761138190369060040161065b565b6001600160a01b03807f000000000000000000000000000000000000000000000000000000000000000016908130146103ee577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9181835416036103ee576113e761350e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561141d5750505061001890614934565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611456575b50611448575f80fd5b036103ee57610018916148e3565b61147091925060203d6020116110ae5761109f818361058c565b905f61143f565b346103ee575f3660031901126103ee5760206001600160a01b036108695416604051908152f35b346103ee575f3660031901126103ee576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036103ee5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126103ee5760043561152181610432565b6024359061152e82610432565b6044359161153b83610432565b60a4358060070b81036103ee5760c435916115558361048f565b60e43567ffffffffffffffff81116103ee5761157590369060040161065b565b9361157e61328f565b60ff61086b5460e81c166107085761070195608435926064359261330a565b9181601f840112156103ee5782359167ffffffffffffffff83116103ee57602083818601950101116103ee57565b346103ee5760c03660031901126103ee576004356115e881610432565b602435604435916064356115fb81610432565b67ffffffffffffffff916084358381116103ee5761161d90369060040161159d565b60a4949194359182116103ee577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461165d61169f93369060040161159d565b9290916001600160a01b038097166116918a8c8361167c368888610625565b91611688368b8b610625565b9346908d613ef6565b604051978897169a87612bf7565b0390a3005b346103ee575f3660031901126103ee57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346103ee575f3660031901126103ee57602060ff61086b5460e81c166040519015158152f35b346103ee575f3660031901126103ee5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b346103ee575f3660031901126103ee5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346103ee575f3660031901126103ee57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b801515036103ee57565b346103ee5760203660031901126103ee577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611808816117be565b61181061350e565b61181861328f565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b6101603660031901126103ee5760043561187681610432565b6024359061188382610432565b60443561188f81610432565b6064359061189c82610432565b60e4356118a881610432565b61010435906118b68261048f565b61012435926118c48461048f565b610144359667ffffffffffffffff88116103ee576118e961001898369060040161159d565b97909660c4359360a4359360843593612c5b565b6101803660031901126103ee5760043561191681610432565b6024359061192382610432565b60443561192f81610432565b6064359061193c82610432565b60e43561194881610432565b610104356119558161048f565b61012435916119638361048f565b61196b61049d565b93610164359767ffffffffffffffff89116103ee5761199161001899369060040161159d565b98909760c4359360a4359360843593612c7d565b346103ee5760603660031901126103ee5760206119d46004356119c781610432565b6044359060243590612d98565b604051908152f35b346103ee5760603660031901126103ee5767ffffffffffffffff6024358181116103ee57611a0e90369060040161159d565b916044359081116103ee57611a2790369060040161159d565b9060405193602085019480611a3e4684888a612dd4565b0395611a52601f199788810184528361058c565b6004359151902003611ae5575f94611a81611aa393611a7887611aaf958a99019061259e565b95810190612df1565b519360405193849160208301966337bfd2c960e21b8852339160248501612eb9565b0390810183528261058c565b5190305af4611abc612ba8565b9015611ac457005b60405163b8fe37a760e01b8152908190611ae19060048301612222565b0390fd5b604051630f0c8f4760e11b8152600490fd5b346103ee5760203660031901126103ee57600435611b1361350e565b611b1b61328f565b611b2481612867565b611b5c576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126103ee5761012435611b898161048f565b61014435611b968161048f565b6101643591611ba48361048f565b610184359267ffffffffffffffff84116103ee57611bc961001894369060040161159d565b9390926101043560e43560c43560a435608435606435604435602435600435612edb565b346103ee5760e03660031901126103ee5767ffffffffffffffff6004358181116103ee57611c1f903690600401610c20565b60a4358281116103ee57611c3790369060040161159d565b60c4929192359384116103ee57611c5561001894369060040161159d565b93909260843590606435906044359060243590612f53565b346103ee5760603660031901126103ee57600435611c8a8161048f565b60243590611c9782610432565b60443590611ca482610432565b60ff5f5460081c16156103ee57611cd89061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611ce4816104ca565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611d13816104ca565b60058152015260ff5f5460081c16156103ee5761001893611d6f9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611d626142ba565b611d6a6142c9565b6142dd565b614337565b346103ee5760203660031901126103ee577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611db4816117be565b611dbc61350e565b611dc461328f565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b346103ee575f3660031901126103ee576020604051468152f35b346103ee575f3660031901126103ee57602063ffffffff61086b5460c01c16604051908152f35b346103ee5760403660031901126103ee57600435602435611e6a826146dd565b6001600160a01b0382165f52610873602052611e9960405f20336001600160a01b03165f5260205260405f2090565b54918215611f3c575f611ee033611eca611eb285613856565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611f0c83611efd611ef184613856565b6001600160a01b031690565b611f0685613856565b90614391565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b848310611f835750505050505090565b9091929394958480611fa1600193603f198682030187528a51611105565b9801930193019194939290611f73565b346103ee57611fbf366110b5565b90611fc98261303c565b915f5b818110611fe157604051806111fb8682611f4e565b5f80611fee838587612b84565b90611ffe60405180938193612b9b565b0390305af461200b612ba8565b9015612031579060019161201f8287612b70565b5261202a8186612b70565b5001611fcc565b60448151106103ee578060046103ee920151602480918301019101613085565b610180806003193601126103ee576101043561206c8161048f565b610124359161207a8361048f565b61014435926120888461048f565b6101643567ffffffffffffffff81116103ee576120a990369060040161159d565b6120b161328f565b61086b549260ff8460e81c1661070857610bfc96612176610ea99261216863ffffffff6121849860c01c169961210c6120e98c6130e4565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121146105ef565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b90820152614028565b346103ee5760206121cb6001600160a01b036121a836610777565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346103ee575f3660031901126103ee5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff8211176104e6576040525f8152905f368137565b906020610676928181520190611105565b346103ee575f3660031901126103ee576111fb61224e6121fb565b604051918291602083526020830190611105565b346103ee5760c03660031901126103ee5760043560243567ffffffffffffffff6064356044356084358381116103ee576122a090369060040161159d565b60a4949194359182116103ee577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946122e061232f93369060040161159d565b9290916122eb61328f565b6122f48a6146dd565b612323898b8989612306368888610625565b92612312368b8b610625565b946001600160a01b03469216613ef6565b60405196879687612bf7565b0390a36001606555005b346103ee575f3660031901126103ee5760206001600160a01b03610c5b5416604051908152f35b346103ee5760203660031901126103ee576004355f52610872602052602060405f2054604051908152f35b346103ee575f3660031901126103ee5760206001600160a01b03610c5a5416604051908152f35b346103ee575f3660031901126103ee57602060405163ffffffff8152f35b346103ee5760a03660031901126103ee576004356123ed81610432565b6124606024356123fc81610432565b6044356124088161048f565b6064359061241582610432565b6084359261242284610432565b5f549561244660ff8860081c1615809881996124da575b81156124ba575b50612b69565b86612457600160ff195f5416175f55565b6124a3576130f9565b61246657005b61247461ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b6124b561010061ff00195f5416175f55565b6130f9565b303b159150816124cc575b505f612440565b6001915060ff16145f6124c5565b600160ff8216109150612439565b9190610180838203126103ee576124fd6105ce565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125618183016104ab565b908501526101406125738183016104ab565b90850152610160918282013567ffffffffffffffff81116103ee57612598920161065b565b90830152565b906020828203126103ee57813567ffffffffffffffff81116103ee5761067692016124e8565b346103ee5760203660031901126103ee5760043567ffffffffffffffff81116103ee576119d4610e2760209236906004016124e8565b346103ee575f3660031901126103ee57602060ff61086b5460e01c166040519015158152f35b346103ee575f3660031901126103ee5760206040516ec097ce7bc90715b34b9f10000000008152f35b346103ee5760203660031901126103ee5761070160043561266981610432565b61267161350e565b611d6a61328f565b346103ee5760603660031901126103ee5760043567ffffffffffffffff81116103ee576126aa9036906004016124e8565b6126b261328f565b60ff61086b5460e01c1661275c5761014081015163ffffffff428116911610158061273d575b61272b57806126e9610bfc926131c2565b60c0820151602083015190610160840151926127036105ae565b948552602085015260408401526060830152608082015260243560a082015260443590613c31565b604051630c3a9b9d60e41b8152600490fd5b5061274b6040820151613856565b6001600160a01b03163314156126d8565b604051633d90fc5560e11b8152600490fd5b346103ee5760203660031901126103ee5761070160043561278e81610432565b61279661350e565b61279e61328f565b6143d9565b610160806003193601126103ee57610104356127be8161048f565b610124356127cb8161048f565b6101443567ffffffffffffffff81116103ee576127ec90369060040161159d565b63ffffffff946127ff8642169586612c3e565b9361280861328f565b61086b549160ff8360e81c166107085761283b61284896612168610bfc9a610ea99660c01c169961210c6120e98c6130e4565b86019063ffffffff169052565b610180820152614028565b634e487b7160e01b5f52603260045260245ffd5b61086c9081548110156128a1576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612853565b346103ee5760203660031901126103ee5760043561086c548110156103ee576128d0604091612867565b506001815491015482519182526020820152f35b346103ee5760203660031901126103ee5761070160043561290481610432565b61290c61350e565b611d6f61328f565b919061291e61328f565b602081019182514603612a305761294661294a9183600161293e88612867565b500154613572565b1590565b612a1e577ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e606082019261298b612985855163ffffffff1690565b86613604565b8051612a1184519260408601956129f66129e86129d78951966129b28c5163ffffffff1690565b9760808601986129c98a516001600160a01b031690565b9160a088019b8c5194613675565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612ab1565b0390a461044e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612a61575050505090565b835185529381019392810192600101612a53565b9081518082526020808093019301915f5b828110612a94575050505090565b83516001600160a01b031685529381019392810192600101612a86565b9496959193612ad360a095612af193885260c0602089015260c0880190612a42565b906001600160a01b0380951660408801528682036060880152612a75565b951515608085015216910152565b3561067681610432565b356106768161048f565b903590601e19813603018212156103ee570180359067ffffffffffffffff82116103ee576020019181360383136103ee57565b634e487b7160e01b5f52602160045260245ffd5b60031115612b6457565b612b46565b156103ee57565b80518210156128a15760209160051b010190565b908210156128a1576110e09160051b810190612b13565b908092918237015f815290565b3d15612bd2573d90612bb982610609565b91612bc7604051938461058c565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612c1c92610676979587526020870152608060408701526080860191612bd7565b926060818503910152612bd7565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612c5657565b612c2a565b969492909161044e9b9a9998969492612c7b63ffffffff42169889612c3e565b985b9593919b999897969492909b612c9161328f565b61086b549660ff8860e81c16610708578760c01c63ffffffff16612cb4906130e4565b612cdb9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612ce36105ef565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612d5c919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612d7f92610625565b610180820152612d8e90614028565b61044e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612dce81610538565b51902090565b939291602091612dec91604087526040870191612bd7565b930152565b908160209103126103ee57604051906020820182811067ffffffffffffffff8211176104e65760405235815290565b6106769161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612e95610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611105565b612ed160409295949395606083526060830190612e20565b9460208201520152565b9c9a9998979695949392919096612ef061328f565b60ff61086b5460e81c1661070857612f09908e33612d98565b96604051809e612f18826104eb565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612d5c565b979290959391969497612f6461328f565b60ff61086b5460e01c1661275c57612f7f6101408201612b09565b63ffffffff804216911610158061301d575b61272b5761300661301896612ffe612d8e9b612fb0610e2736876124e8565b9a612fb96105ae565b9b612fc436886124e8565b8d5260208d01528660408d01528760608d0152612fe2368b84610625565b60808d015260a08c0152612ff68535613856565b983691610625565b953691610625565b9461010060e083013592013590613ef6565b613c31565b5061302b6040820135613856565b6001600160a01b0316331415612f91565b90613046826108b7565b613053604051918261058c565b8281528092613064601f19916108b7565b01905f5b82811061307457505050565b806060602080938501015201613068565b6020818303126103ee5780519067ffffffffffffffff82116103ee570181601f820112156103ee5780516130b881610609565b926130c6604051948561058c565b818452602082840101116103ee5761067691602080850191016110e4565b63ffffffff809116908114612c565760010190565b90929160ff5f5460081c16156103ee576131309061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040519361313d856104ca565b6009855260208501906820a1a927a9a996ab1960b91b8252640312e302e360dc1b602060405161316c816104ca565b60058152015260ff5f5460081c16156103ee57611d6f61279e946113449361044e9851902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611d626142ba565b604051612dce816131df6020820194604086526060830190612e20565b46604083015203601f19810183528261058c565b9190916131fe61328f565b60ff61086b5460e01c1661275c5761014081015163ffffffff4281169116101580613270575b61272b57612d8e92613235826131c2565b60c08301516020840151906101608501519261324f6105ae565b958652602086015260408501526060840152608083015260a0820152613c31565b5061327e6040820151613856565b6001600160a01b0316331415613224565b6002606554146103ee576002606555565b91908203918211612c5657565b6040513d5f823e3d90fd5b926106769695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611105565b9193949690959660070b906706f05b59d3b2000061332783614428565b10156134e7576ec097ce7bc90715b34b9f100000000084116134d55763ffffffff93613355858a16426132a0565b857f000000000000000000000000000000000000000000000000000000000000000016106134c35761086b5460c01c63ffffffff16986133976120e98b6130e4565b6001600160a01b039586807f000000000000000000000000000000000000000000000000000000000000000016981692888414806134ba575b1561347e5780340361346c57883b156103ee575f6004996040519a8b8092630d0e30db60e41b825234905af19889156108b25761343b61344e978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613453575b505b83614476565b92604051998a99169d169b1693876132b8565b0390a4565b8061346061346692610508565b806103e4565b5f613433565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad398508761343b61344e976134b58430338a614437565b613435565b503415156133d0565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b908160209103126103ee575161067681610432565b60046001600160a01b03602081610c5b541660405193848092636e296e4560e01b82525afa9182156108b2575f92613551575b508061086954169116036103ee57565b61356b91925060203d6020116108ab5761089d818361058c565b905f613541565b61067692916040516135fb816135ed602082019460208652805160408401526020810151606084015260a06135b7604083015160c06080870152610100860190612a42565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612a75565b03601f19810183528261058c565b519020916144ac565b61360f600291612867565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613647575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b908160209103126103ee575190565b91908201809211612c5657565b91959495939092935f968151908181510361384457816136f4575b5050508261369f575b50505050565b6001600160a01b03816136d37ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357938661456f565b6040805195865233602087015291169463ffffffff1693a45f808080613699565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa9081156108b2575f91613825575b505f805b868110613743575050505050613690565b61374d8189612b70565b5161375b575b600101613732565b906137719061376a838a612b70565b5190613668565b90828211613815576137ab61294661379961378c848a612b70565b516001600160a01b031690565b6137a3848c612b70565b51908c6144fd565b15613753579c508761380b6138038f6137ee61378c6137e76137cd848f612b70565b51966001600160a01b03165f5261087360205260405f2090565b928b612b70565b6001600160a01b03165f5260205260405f2090565b918254613668565b905560019c613753565b50505051632ddaa83160e11b8152fd5b61383e915060203d6020116110ae5761109f818361058c565b5f61372e565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613868816146dd565b1690565b91612946906138e59284516040809601519186519161388a8361051c565b82526135fb6138a56020840192468452898501958652612867565b50549388519283916138ca6020840196602088525160608d86015260a0850190612e20565b9151606084015251608083015203601f19810183528261058c565b6138ec5750565b5163582f497d60e11b8152600490fd5b61390582612b5a565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061398882612b5a565b6101c00152565b9061067694936080936001600160a01b03809316845260208401521660408201528160608201520190611105565b905f825161012081016139d4815163ffffffff1690565b63ffffffff42911610613c1f5760208501519060026139fc835f5261087260205260405f2090565b5414613c0d57613a1686925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613a559063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613a7e90613e92565b966060890151986080019e8f51613a9490613e92565b906040015190613aa26105fc565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613ac69b8d613908565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613afa90613856565b9060408601519560600151613b0e90613856565b9260800151613b1c90613856565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613bf85784613be5575b613b62878386166146f8565b51928351151580613bdb575b613b7c575b50505050509050565b1690813b15613bd75783613baa959660405196879586948593633a5be8cb60e01b855233916004860161398f565b03925af180156108b257613bc4575b808080808594613b73565b80613460613bd192610508565b5f613bb9565b8380fd5b50803b1515613b6e565b613bf3873033858716614437565b613b56565b5f9450613c088785858516614391565b613b62565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613c47815163ffffffff1690565b63ffffffff42911610613c1f5760208301516001613c6e825f5261087260205260405f2090565b5403613e8b576001905b6002613c8d825f5261087260205260405f2090565b5414613c0d57613ca9613caf915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613d7c8760a08a0151958a60c08101519760a08401519860e083015199613d0c6101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613d70613d3861016060208b01519a0151613e92565b9960608c01519b6040613d4e6080830151613e92565b910151906020613d5c6105fc565b9e8f528e015260408d015260608c016138fc565b6040519c8d9c8d613908565b0390a4613d8c6080830151613856565b916040820151916080613dae81613da66060850151613856565b940151613856565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613e7857613df0853033868a16614437565b613dfc858486166146f8565b0151918251151580613e6e575b613e15575b5050505050565b16803b156103ee57613e43935f809460405196879586948593633a5be8cb60e01b855233916004860161398f565b03925af180156108b257613e5b575b80808080613e0e565b80613460613e6892610508565b5f613e52565b50803b1515613e09565b613e86858533868a16614437565b613dfc565b5f90613c78565b80519081613ea05750505f90565b6020012090565b7f46d02f052ee9bbef07cda0e03466211f6c0d2c684e99f46fb9d96b4ed87a617e6020610c5a928354906001600160a01b0380911694856001600160a01b0319841617905560405191168152a2565b939260429361044e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613f5b81610554565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613fb181610570565b519020906040519161190160f01b8352600283015260228201522090614977565b96926106769a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611105565b61403281516146dd565b6101208101614051614048825163ffffffff1690565b63ffffffff1690565b804210908115614281575b506134c357610140820191614075835163ffffffff1690565b9063ffffffff91826140a9817f00000000000000000000000000000000000000000000000000000000000000001642613668565b91161161426f5761016081015163ffffffff16918083168061422a575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614221575b156141d4576080820151340361346c57823b156103ee575f60049360405194858092630d0e30db60e41b825234905af19283156108b2577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936141c1575b505b5161344e60608301519260808101519060a081015160c0820151976141a06141956101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613fd2565b806134606141ce92610508565b5f614161565b91503461346c578161421c61420d611ef17f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613856565b60808401519030903390614437565b614163565b50341515614103565b6301e13380101561425a575b5060e081015115614248575f806140c6565b60405163495d907f60e01b8152600490fd5b916142689192421690612c3e565b905f614236565b60405163582e388960e01b8152600490fd5b61428c9150426132a0565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f61405c565b60ff5f5460081c16156103ee57565b60ff5f5460081c16156103ee576001606555565b6001600160a01b0316801561432557610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b0316801561437f5761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261044e916143d482606481015b03601f19810184528361058c565b614a55565b7f7409836c44bc9ad88515d6deee6ab3fcec145b8c39b83ae56d87aa7a86efcc4b6020610c5b928354906001600160a01b0380911694856001600160a01b0319841617905560405191168152a2565b5f81126144325790565b5f0390565b909261044e93604051936323b872dd60e01b60208601526001600160a01b0380921660248601521660448401526064830152606482526143d482610570565b90670de0b6b3a7640000915f828403921283831281169084841390151617612c5657818102918183041490151715612c56570490565b929091905f915b84518310156144f5576144c68386612b70565b5190818110156144e4575f52602052600160405f205b9201916144b3565b905f52602052600160405f206144dc565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161453981606481016135ed565b519082855af1903d5f519083614550575b50505090565b9192509061456557503b15155b5f808061454a565b600191501461455d565b90610c5a614587611ef182546001600160a01b031690565b6040516343c6674160e01b81526001600160a01b0384166004820152909160208083602481875afa9283156108b2575f936146bb575b508060049394604051948580926367461f0360e11b82525afa9081156108b25761461494611ef19488925f9461469c575b50506001600160a01b0380931683821603614689575b505050546001600160a01b031690565b9161462861086a546001600160a01b031690565b92803b156103ee5760405163a93a4af960e01b81526001600160a01b03938416600482015293909216602484015260448301525f60648301819052908290608490829084905af180156108b25761467c5750565b8061346061044e92610508565b614694928716614ae5565b5f8581614604565b6146b3929450803d106108ab5761089d818361058c565b915f806145ee565b600493506146d68291823d84116108ab5761089d818361058c565b93506145bd565b60a01c6146e657565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b1580156147b6575b1561478957507f00000000000000000000000000000000000000000000000000000000000000001691823b156103ee57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156108b25761044e93614776575b50614b89565b8061346061478392610508565b5f614770565b9061044e93507f000000000000000000000000000000000000000000000000000000000000000016614391565b50803b6147c281610609565b6147cf604051918261058c565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614802575b50501661ef0160f01b1461470e565b829350829060030360031b1b1616905f806147f3565b61482181614934565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151158015906148dc575b614862575050565b5f806148d9937f206661696c656400000000000000000000000000000000000000000000000000604080516148968161051c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af46148d3612ba8565b91614be2565b50565b505f61485a565b6148ec81614934565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061492c57614862575050565b50600161485a565b803b156103ee576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b6149818383614bb1565b6005819592951015612b6457159384614a3f575b5083156149b9575b505050156149a757565b60405163938a182160e01b8152600490fd5b5f9293509082916040516149f1816135ed6020820194630b135d3f60e11b998a87526024840152604060448401526064830190611105565b51915afa906149fe612ba8565b82614a31575b82614a14575b50505f808061499d565b614a2991925060208082518301019101613659565b145f80614a0a565b915060208251101591614a04565b6001600160a01b0383811691161493505f614995565b905f806001600160a01b03614aac9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614a95816104ca565b818152015260208151910182855af16148d3612ba8565b8051908115918215614ac2575b5050156103ee57565b81925090602091810103126103ee5760200151614ade816117be565b5f80614ab9565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa9283156108b2575f93614b68575b508201809211612c565760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261044e91906143d482606481016143c6565b614b8291935060203d6020116110ae5761109f818361058c565b915f614b24565b8147106103ee575f8080936001600160a01b038294165af1614ba9612ba8565b50156103ee57565b9060418151145f14614bd9576110e091602082015190606060408401519301515f1a90614c0b565b50505f90600290565b9015614bfc57815115614bf3575090565b3b156103ee5790565b5080519081156103ee57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411614c7b576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156108b2575f516001600160a01b03811615614c7357905f90565b505f90600190565b505050505f9060039056fea264697066735822122035ab82d029a5e68a12d5eeb7fe6baa54091fcba697ad9c311c3c61f2df2a9f3f64736f6c6343000817003300000000000000000000000053000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460", + "nonce": "0x9b", + "chainId": "0x82750" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x41fe7e", + "logs": [ + { + "address": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x8579d2f1cbc5a8f34c5e8b417d06653571821e30f2dab4eeb9764649491e794d", + "blockNumber": "0x1327cc8", + "transactionHash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000004000000000000000000000000000000001000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", + "transactionIndex": "0x0", + "blockHash": "0x8579d2f1cbc5a8f34c5e8b417d06653571821e30f2dab4eeb9764649491e794d", + "blockNumber": "0x1327cc8", + "gasUsed": "0x41fe7e", + "effectiveGasPrice": "0x1d52c", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", + "l1Fee": "0x9f4b0c3b1c" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756140726599, + "chain": 534352, + "commit": "a6daa38e" +} diff --git a/broadcast/036DeployBlastSpokePool.s.sol/81457/run-latest.json b/broadcast/036DeployBlastSpokePool.s.sol/81457/run-latest.json new file mode 100644 index 000000000..f68e36684 --- /dev/null +++ b/broadcast/036DeployBlastSpokePool.s.sol/81457/run-latest.json @@ -0,0 +1,71 @@ +{ + "transactions": [ + { + "hash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", + "transactionType": "CREATE", + "contractName": "Blast_SpokePool", + "contractAddress": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", + "function": null, + "arguments": [ + "0x4300000000000000000000000000000000000004", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000", + "0x4300000000000000000000000000000000000003", + "0x6B175474E89094C44Da98b954EedeAC495271d0F", + "0x8bA929bE3462a809AFB3Bf9e100Ee110D2CFE531", + "0x98Dd57048d7d5337e92D9102743528ea4Fea64aB" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x685494", + "value": "0x0", + "input": "0x6102406040818152346200037e57819062006160803803809162000024828662000382565b8439610120928391810103126200037e576200004083620003a6565b90602062000050818601620003bb565b916200005e818701620003bb565b606087015190926001600160a01b0392909183811681036200037e57608089015191848316908184036200037e576200009a60a08c01620003a6565b95620000a960c08d01620003a6565b97620000b860e08e01620003a6565b99826101009e8f01620000cb90620003a6565b9c306080525f60c0525f60a0521660e0528d528b525f548060081c60ff166200037e5760ff8082160362000345575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b039282860191908483118484101762000327575f938493885251915afa963d156200033b573d918211620003275783519162000171601f8201601f191683018462000382565b82523d5f8284013e5b876200031b575b87620002e6575b5050506101a09485526101c09586526101e09687526102009788526102209889525198615d929a8b620003ce8c396080518b81816112090152818161171f015261188e015260a0518b611af7015260c0518b611cb9015260e0518b81816109330152818161348701528181613c6c01528181613dda015281816143eb0152818161467d0152818161494c01528181614ed401528181614f3501528181614fb0015281816153ad015261558c0152518a8181611a9601528181613c200152614b050152518981816104fe01526148f5015251888181611c7901528181615ae70152615b920152518781816108d6015281816158be01526159c80152518681816121fc0152818161569301526159eb015251858181611dfa0152615a870152518481816111bd0152818161343c0152614da1015251838181611d9b0152614e1d015251828181611829015261534a015251818181612e4e0152614e450152f35b9091929650808251920151918181106200030a575b5050161515935f808062000188565b5f19910360031b1b165f80620002fb565b81518114975062000181565b634e487b7160e01b5f52604160045260245ffd5b606091506200017a565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000fa565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200032757604052565b51906001600160a01b03821682036200037e57565b519063ffffffff821682036200037e5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c7146104cf5780630c5d5f73146104ca5780630cb84d9a146104c55780630eaac9f0146104c05780631186ec33146104bb57806311eac855146104b657806315348e441461043457806317fcb39b146104b157806319c1648c146104ac5780631abeb4d7146104a75780631b3d5559146104a25780631fab657c1461049d57806329cb924d146104985780632e378115146104935780632e63e59a1461048e57806331a0edec146104895780633659cfe614610484578063431023b81461047f578063437b91161461047a578063490e49ef14610475578063493a4f84146104705780634f1ef2861461046b578063524633cc146104665780635285e0581461046157806352d1902d1461045c578063541f4f1414610457578063577f51f81461045257806357f6dcb81461044d5780636068d6cb1461044857806361a04d3014610443578063647c576c1461043e578063670fa8ac146104395780636bbbcd2e146104345780636e4009831461042f5780636fd5c10e1461042a578063738b62e5146104255780637419ffe814610420578063766e07031461041b578063775c0d03146104165780637aef642c146104115780637b9392321461040c5780637ef413e11461040757806382e2c43f146104025780638a7860ce146103fd5780638b15788e146103f8578063927ede2d146103f35780639748cf7c146103ee57806397943aa9146103e9578063979f2bc2146103e457806399cc2968146103df5780639a8a0592146103da578063a1244c67146103d5578063a18a096e146103d0578063ac9650d8146103cb578063ad5425c6146103c6578063adb5a6a614610371578063b27a4300146103c1578063b370b7f5146103bc578063b4c0d7ab146103b7578063babb6aac146103b2578063bf10268d146103ad578063c35c83fc146103a8578063ceb4c987146103a3578063d7e1583a1461039e578063dda5211314610399578063ddd224f114610394578063de7eba781461038f578063deff4b241461038a578063e322921114610385578063ea86bd4614610380578063ee2a53f81461037b578063f083d9b714610376578063f79f29ed14610371578063f8c622741461036c578063fbbba9ac146103675763fc8a584f0361000e57612f24565b612ea0565b612e72565b612787565b612e2f565b612df1565b612cee565b612cc5565b612bd0565b612ba0565b612b77565b612b51565b612b1b565b612a21565b6129f6565b612972565b61289b565b61286c565b61280d565b6127ce565b61264b565b6125ab565b612444565b61241d565b612403565b61236e565b6122a0565b612220565b6121dd565b6121af565b612131565b6120b9565b611f9e565b611f67565b611ebf565b611e1f565b611de3565b611dbf565b611d7c565b611ce7565b611c9d565b611c5d565b6108fa565b611c23565b611b4c565b611ae0565b611aba565b611a7a565b6119a1565b6118de565b611874565b61184d565b61180a565b6116dc565b611655565b611637565b61156a565b61130d565b6111e1565b61119e565b610fa4565b610e44565b610e1b565b610d19565b610c10565b610a97565b61097c565b610914565b6108b7565b610816565b6105e5565b61057f565b610540565b6104e2565b5f9103126104de57565b5f80fd5b346104de575f3660031901126104de57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b038116036104de57565b359061053e82610522565b565b346104de5760203660031901126104de57602060043561055f81610522565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b346104de5760203660031901126104de57602060043561059e81610522565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff8116036104de57565b610144359061053e826105be565b359061053e826105be565b346104de5760203660031901126104de5763ffffffff600435610607816105be565b61060f613ab5565b610617613b62565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761068357604052565b610653565b67ffffffffffffffff811161068357604052565b6101a0810190811067ffffffffffffffff82111761068357604052565b6060810190811067ffffffffffffffff82111761068357604052565b6080810190811067ffffffffffffffff82111761068357604052565b60e0810190811067ffffffffffffffff82111761068357604052565b60a0810190811067ffffffffffffffff82111761068357604052565b90601f8019910116810190811067ffffffffffffffff82111761068357604052565b6040519060c0820182811067ffffffffffffffff82111761068357604052565b60405190610180820182811067ffffffffffffffff82111761068357604052565b6040519061053e8261069c565b6040519061053e826106d5565b67ffffffffffffffff811161068357601f01601f191660200190565b9291926107ce826107a6565b916107dc6040519384610729565b8294818452818301116104de578281602093845f960137010152565b9080601f830112156104de57816020610813933591016107c2565b90565b6101003660031901126104de5760043561082f81610522565b60243561083b81610522565b6084358060070b81036104de5760a43590610855826105be565b60c43567ffffffffffffffff81116104de576108759036906004016107f8565b9261087e613b62565b60ff61086b5460e81c166108a55761089e94606435916044359133613bd2565b6001606555005b604051630b4cba3160e31b8152600490fd5b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de5760206040515f8152f35b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b60409060031901126104de5760043561096f81610522565b9060243561081381610522565b346104de5761098a36610957565b90610993613ab5565b61099b613b62565b6001600160a01b03908183169283151580610a31575b610a1f576109f0906109d5836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a92575f91610a63575b50831682841614156109b1565b610a85915060203d602011610a8b575b610a7d8183610729565b810190613dbb565b5f610a56565b503d610a73565b613385565b346104de575f3660031901126104de5760206040517343000000000000000000000000000000000000028152f35b67ffffffffffffffff81116106835760051b60200190565b9080601f830112156104de576020908235610af781610ac5565b93610b056040519586610729565b81855260208086019260051b8201019283116104de57602001905b828210610b2e575050505090565b81358152908301908301610b20565b9080601f830112156104de576020908235610b5781610ac5565b93610b656040519586610729565b81855260208086019260051b8201019283116104de57602001905b828210610b8e575050505090565b8380918335610b9c81610522565b815201910190610b80565b9291610bb282610ac5565b91610bc06040519384610729565b829481845260208094019160051b81019283116104de57905b828210610be65750505050565b81358152908301908301610bd9565b9080601f830112156104de5781602061081393359101610ba7565b6003196060368201126104de57600435610c29816105be565b60243567ffffffffffffffff928382116104de5760c09082360301126104de57610c5161074b565b90806004013582526024810135602083015260448101358481116104de57610c7f9060043691840101610add565b6040830152610c90606482016105da565b6060830152610ca160848201610533565b608083015260a4810135908482116104de576004610cc29236920101610b3d565b60a08201526044359283116104de57610ce2610018933690600401610bf5565b91612f54565b9181601f840112156104de5782359167ffffffffffffffff83116104de576020808501948460051b0101116104de57565b346104de576003196060368201126104de5760043567ffffffffffffffff8082116104de576060823603938401126104de5760243590610d58826105be565b6044359081116104de57610d70903690600401610ce8565b919093610d7b613b62565b60048401359061018219018112156104de57610e1194610e0c93610da8610e059360043691890101612a3f565b95610dbe610db96080890151614117565b613dd0565b610dc7876139e8565b9060446020890151916101608a015193610ddf61074b565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610ba7565b908361412d565b61427e565b6100186001606555565b346104de575f3660031901126104de576020604051428152f35b90816101809103126104de5790565b346104de5760403660031901126104de5760043567ffffffffffffffff81116104de57610e75903690600401610e35565b610e7e8161314c565b6001600160a01b031690610e946020820161314c565b6001600160a01b031691610eaa6040830161314c565b6001600160a01b0316610ebf6060840161314c565b6001600160a01b031692610ed56080820161314c565b6001600160a01b031690610100610eed818301613156565b9061012090610efd848301613156565b9261014094858101610f0e90613156565b966101609a8b8301610f209084613160565b9a909b610f2b61076b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610f7c919063ffffffff169052565b63ffffffff909116908501523690610f93926107c2565b908201523360243561001892613a19565b346104de5760203660031901126104de576004803567ffffffffffffffff81116104de57610fd59036908301610e35565b610fdd613b62565b60ff61086b5460e01c1661118e5763ffffffff804216926101408301936110168161100787613156565b63ffffffff9182169116101590565b61117e5761012084019261102984613156565b161061116f5761104161103c3685612a3f565b6139e8565b90611055825f5261087260205260405f2090565b5461116157506110a47f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261109f6110996110aa945f5261087260205260405f2090565b60019055565b613156565b93613156565b6110ca6110c56110be610160860186613160565b36916107c2565b614753565b906111546040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de5760203660031901126104de576004356111fe81610522565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000168030146104de577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9082825416036104de57611263613ab5565b61126b612834565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146112a35750505061001890615150565b6020600491604051928380926352d1902d60e01b825288165afa5f91816112dc575b506112ce575f80fd5b036104de5761001891615037565b6112ff91925060203d602011611306575b6112f78183610729565b810190613390565b905f6112c5565b503d6112ed565b346104de5760803660031901126104de5760043561132a816105be565b6024359061133782610522565b60443561134381610522565b6064359161135083610522565b60ff5f5460081c16156104de5761139790610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906113a482610667565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516113d381610667565b60058152015260ff5f5460081c16156104de5761001894611438936114339251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611426614b2c565b61142e614b3b565b614b4f565b614ba9565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b60206003198201126104de576004359067ffffffffffffffff82116104de576114a891600401610ce8565b9091565b5f5b8381106114bd5750505f910152565b81810151838201526020016114ae565b906020916114e6815180928185528580860191016114ac565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611528575050505050505090565b909192939495968580611559600193603f1986820301885286838d51805115158452015191818582015201906114cd565b990194019401929594939190611517565b346104de576115783661147d565b61158181610ac5565b9160406115916040519485610729565b828452601f196115a084610ac5565b015f5b8181106116145750505f5b8381106115c757604051806115c387826114f2565b0390f35b8061160e6115d7600193886132cb565b515f806115e5858a8a6132df565b906115f48951809381936132f6565b0390305af490611602613303565b60208201529015159052565b016115ae565b602090835161162281610667565b5f8152826060818301528289010152016115a3565b346104de575f3660031901126104de5760206040516301e133808152f35b346104de5760403660031901126104de57602435600435611674613ab5565b61167c613b62565b61086c8054680100000000000000008110156106835763ffffffff91600182019055836116a882612db2565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b60403660031901126104de576004356116f481610522565b60243567ffffffffffffffff81116104de576117149036906004016107f8565b6001600160a01b03807f000000000000000000000000000000000000000000000000000000000000000016908130146104de577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc9181835416036104de5761177a613ab5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156117b05750505061001890615150565b6020600491604051928380926352d1902d60e01b825288165afa5f91816117e9575b506117db575f80fd5b036104de57610018916150ff565b61180391925060203d602011611306576112f78183610729565b905f6117d2565b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de5760206001600160a01b036108695416604051908152f35b346104de575f3660031901126104de576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036104de5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b6101203660031901126104de576004356118f781610522565b6024359061190482610522565b6044359161191183610522565b60a4358060070b81036104de5760c4359161192b836105be565b60e43567ffffffffffffffff81116104de5761194b9036906004016107f8565b93611954613b62565b60ff61086b5460e81c166108a55761089e956084359260643592613bd2565b9181601f840112156104de5782359167ffffffffffffffff83116104de57602083818601950101116104de57565b346104de5760c03660031901126104de576004356119be81610522565b602435604435916064356119d181610522565b67ffffffffffffffff916084358381116104de576119f3903690600401611973565b60a4949194359182116104de577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694611a33611a75933690600401611973565b9290916001600160a01b03809716611a678a8c83611a523688886107c2565b91611a5e368b8b6107c2565b9346908d614768565b604051978897169a87613352565b0390a3005b346104de575f3660031901126104de57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de57602060ff61086b5460e81c166040519015158152f35b346104de575f3660031901126104de5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b60609060031901126104de57600435611b32816105be565b90602435611b3f81610522565b9060443561081381610522565b346104de57611b5a36611b1a565b5f54600881901c60ff1615939290849081611c15575b8115611bf5575b50156104de57611b9b9284611b92600160ff195f5416175f55565b611bde5761339f565b611ba157005b611baf61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611bf061010061ff00195f5416175f55565b61339f565b303b15915081611c07575b505f611b77565b6001915060ff16145f611c00565b600160ff8216109150611b70565b346104de575f3660031901126104de5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b346104de575f3660031901126104de57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b801515036104de57565b346104de5760203660031901126104de577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611d2781611cdd565b611d2f613ab5565b611d37613b62565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de57602063ffffffff610c5a5416604051908152f35b346104de575f3660031901126104de5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b6101603660031901126104de57600435611e3881610522565b60243590611e4582610522565b604435611e5181610522565b60643590611e5e82610522565b60e435611e6a81610522565b6101043590611e78826105be565b6101243592611e86846105be565b610144359667ffffffffffffffff88116104de57611eab610018983690600401611973565b97909660c4359360a435936084359361354a565b6101803660031901126104de57600435611ed881610522565b60243590611ee582610522565b604435611ef181610522565b60643590611efe82610522565b60e435611f0a81610522565b61010435611f17816105be565b6101243591611f25836105be565b611f2d6105cc565b93610164359767ffffffffffffffff89116104de57611f53610018993690600401611973565b98909760c4359360a435936084359361356c565b346104de5760603660031901126104de576020611f96600435611f8981610522565b6044359060243590613687565b604051908152f35b346104de5760603660031901126104de5767ffffffffffffffff6024358181116104de57611fd0903690600401611973565b916044359081116104de57611fe9903690600401611973565b90604051936020850194806120004684888a6136c3565b0395612014601f1997888101845283610729565b60043591519020036120a7575f946120436120659361203a87612071958a990190612af5565b958101906136e0565b519360405193849160208301966337bfd2c960e21b88523391602485016137a8565b03908101835282610729565b5190305af461207e613303565b901561208657005b60405163b8fe37a760e01b81529081906120a3906004830161285b565b0390fd5b604051630f0c8f4760e11b8152600490fd5b346104de5760203660031901126104de576004356120d5613ab5565b6120dd613b62565b6120e681612db2565b61211e576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a03660031901126104de576101243561214b816105be565b61014435612158816105be565b6101643591612166836105be565b610184359267ffffffffffffffff84116104de5761218b610018943690600401611973565b9390926101043560e43560c43560a4356084356064356044356024356004356137ca565b346104de575f3660031901126104de5760206040517342000000000000000000000000000000000000078152f35b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de5760e03660031901126104de5767ffffffffffffffff6004358181116104de57612252903690600401610e35565b60a4358281116104de5761226a903690600401611973565b60c4929192359384116104de57612288610018943690600401611973565b93909260843590606435906044359060243590613842565b346104de576122ae36611b1a565b909160ff5f5460081c16156104de576122e49061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516122f081610667565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161231f81610667565b60058152015260ff5f5460081c16156104de57610018936114339251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611426614b2c565b346104de5760203660031901126104de577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356123ae81611cdd565b6123b6613ab5565b6123be613b62565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b346104de575f3660031901126104de576020604051468152f35b346104de575f3660031901126104de57602063ffffffff61086b5460c01c16604051908152f35b346104de5760403660031901126104de5760043560243561246482614efc565b6001600160a01b0382165f5261087360205261249360405f20336001600160a01b03165f5260205260405f2090565b54918215612536575f6124da336124c46124ac85614117565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55612506836124f76124eb84614117565b6001600160a01b031690565b61250085614117565b90614c03565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061257d5750505050505090565b909192939495848061259b600193603f198682030187528a516114cd565b980193019301919493929061256d565b346104de576125b93661147d565b906125c38261392b565b915f5b8181106125db57604051806115c38682612548565b5f806125e88385876132df565b906125f8604051809381936132f6565b0390305af4612605613303565b901561262b579060019161261982876132cb565b5261262481866132cb565b50016125c6565b60448151106104de578060046104de920151602480918301019101613974565b610180806003193601126104de5761010435612666816105be565b6101243591612674836105be565b6101443592612682846105be565b6101643567ffffffffffffffff81116104de576126a3903690600401611973565b6126ab613b62565b61086b549260ff8460e81c166108a557610e11966127706110be9261276263ffffffff61277e9860c01c16996127066126e38c6139d3565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61270e61078c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261489a565b346104de5760206127c56001600160a01b036127a236610957565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b346104de5760203660031901126104de5760206004356127ed81610522565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b346104de575f3660031901126104de5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610683576040525f8152905f368137565b9060206108139281815201906114cd565b346104de575f3660031901126104de576115c3612887612834565b6040519182916020835260208301906114cd565b346104de5760c03660031901126104de5760043560243567ffffffffffffffff6064356044356084358381116104de576128d9903690600401611973565b60a4949194359182116104de577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c2694612919612968933690600401611973565b929091612924613b62565b61292d8a614efc565b61295c898b898961293f3688886107c2565b9261294b368b8b6107c2565b946001600160a01b03469216614768565b60405196879687613352565b0390a36001606555005b346104de5761298036610957565b90612989613ab5565b612991613b62565b6001600160a01b0380911691825f52610c5d6020526129c98160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b346104de5760203660031901126104de576004355f52610872602052602060405f2054604051908152f35b346104de575f3660031901126104de57602060405163ffffffff8152f35b9190610180838203126104de57612a5461076b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e08501526101008082013590850152610120612ab88183016105da565b90850152610140612aca8183016105da565b90850152610160918282013567ffffffffffffffff81116104de57612aef92016107f8565b90830152565b906020828203126104de57813567ffffffffffffffff81116104de576108139201612a3f565b346104de5760203660031901126104de5760043567ffffffffffffffff81116104de57611f9661103c6020923690600401612a3f565b346104de575f3660031901126104de57602060ff61086b5460e01c166040519015158152f35b346104de575f3660031901126104de5760206040516ec097ce7bc90715b34b9f10000000008152f35b346104de5760203660031901126104de5761089e600435612bc081610522565b612bc8613ab5565b61142e613b62565b346104de5760603660031901126104de5760043567ffffffffffffffff81116104de57612c01903690600401612a3f565b612c09613b62565b60ff61086b5460e01c16612cb35761014081015163ffffffff4281169116101580612c94575b612c825780612c40610e11926139e8565b60c082015160208301519061016084015192612c5a61074b565b948552602085015260408401526060830152608082015260243560a0820152604435906144f2565b604051630c3a9b9d60e41b8152600490fd5b50612ca26040820151614117565b6001600160a01b0316331415612c2f565b604051633d90fc5560e11b8152600490fd5b346104de575f3660031901126104de576020610c5a546001600160a01b0360405191831c168152f35b610160806003193601126104de5761010435612d09816105be565b61012435612d16816105be565b6101443567ffffffffffffffff81116104de57612d37903690600401611973565b63ffffffff94612d4a864216958661352d565b93612d53613b62565b61086b549160ff8360e81c166108a557612d86612d9396612762610e119a6110be9660c01c16996127066126e38c6139d3565b86019063ffffffff169052565b61018082015261489a565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612dec576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612d9e565b346104de5760203660031901126104de5760043561086c548110156104de57612e1b604091612db2565b506001815491015482519182526020820152f35b346104de575f3660031901126104de5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104de575f3660031901126104de5760206040517343000000000000000000000000000000000000058152f35b346104de57612eae36610957565b90612eb7613ab5565b612ebf613b62565b6001600160a01b0380911691825f52610c5c602052612ef78160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b346104de5760203660031901126104de5761089e600435612f4481610522565b612f4c613ab5565b611433613b62565b91612f5d613b62565b6080820191612f76610db984516001600160a01b031690565b60208101918251460361307d57612f9e612fa291836001612f9689612db2565b500154613e42565b1590565b61306b578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612fe4612fde865163ffffffff1690565b87613ed4565b61305e84519483519361304361303561302460408401998a5161300b8d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613f36565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b16993394876130fe565b0390a461053e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b8281106130ae575050505090565b8351855293810193928101926001016130a0565b9081518082526020808093019301915f5b8281106130e1575050505090565b83516001600160a01b0316855293810193928101926001016130d3565b949695919361312060a09561313e93885260c0602089015260c088019061308f565b906001600160a01b03809516604088015286820360608801526130c2565b951515608085015216910152565b3561081381610522565b35610813816105be565b903590601e19813603018212156104de570180359067ffffffffffffffff82116104de576020019181360383136104de57565b634e487b7160e01b5f52602160045260245ffd5b600311156131b157565b613193565b91909160ff5f5460081c16156104de5761320090610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161320c81610667565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161323b81610667565b60058152015260ff5f5460081c16156104de5761328a936114339251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611426614b2c565b61053e610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b8051821015612dec5760209160051b010190565b90821015612dec576114a89160051b810190613160565b908092918237015f815290565b3d1561332d573d90613314826107a6565b916133226040519384610729565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361337792610813979587526020870152608060408701526080860191613332565b926060818503910152613332565b6040513d5f823e3d90fd5b908160209103126104de575190565b906133aa92916131b6565b734300000000000000000000000000000000000002803b156104de5760405163784c3b3d60e11b81525f8160048183865af18015610a9257613506575b50803b156104de575f8091600460405180948193634e606c4760e01b83525af18015610a92576134ed575b50604051631a33757d60e01b808252600260048301526020916001600160a01b039183826024815f7f000000000000000000000000000000000000000000000000000000000000000088165af1918215610a925784926134d0575b506040519081526002600482015291829060249082905f907f0000000000000000000000000000000000000000000000000000000000000000165af18015610a92576134b7575050565b816134cd92903d10611306576112f78183610729565b50565b6134e690833d8511611306576112f78183610729565b505f61346d565b806134fa61350092610688565b806104d4565b5f613412565b806134fa61351392610688565b5f6133e7565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff8080941691160191821161354557565b613519565b969492909161053e9b9a999896949261356a63ffffffff4216988961352d565b985b9593919b999897969492909b613580613b62565b61086b549660ff8860e81c166108a5578760c01c63ffffffff166135a3906139d3565b6135ca9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6135d261078c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff1661010087015261012086019061364b919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061366e926107c2565b61018082015261367d9061489a565b61053e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526136bd816106d5565b51902090565b9392916020916136db91604087526040870191613332565b930152565b908160209103126104de57604051906020820182811067ffffffffffffffff8211176106835760405235815290565b6108139161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613784610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906114cd565b6137c06040929594939560608352606083019061370f565b9460208201520152565b9c9a99989796959493929190966137df613b62565b60ff61086b5460e81c166108a5576137f8908e33613687565b96604051809e6138078261069c565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff1661012086015261364b565b979290959391969497613853613b62565b60ff61086b5460e01c16612cb35761386e6101408201613156565b63ffffffff804216911610158061390c575b612c82576138f5613907966138ed61367d9b61389f61103c3687612a3f565b9a6138a861074b565b9b6138b33688612a3f565b8d5260208d01528660408d01528760608d01526138d1368b846107c2565b60808d015260a08c01526138e58535614117565b9836916107c2565b9536916107c2565b9461010060e083013592013590614768565b6144f2565b5061391a6040820135614117565b6001600160a01b0316331415613880565b9061393582610ac5565b6139426040519182610729565b8281528092613953601f1991610ac5565b01905f5b82811061396357505050565b806060602080938501015201613957565b6020818303126104de5780519067ffffffffffffffff82116104de570181601f820112156104de5780516139a7816107a6565b926139b56040519485610729565b818452602082840101116104de5761081391602080850191016114ac565b63ffffffff8091169081146135455760010190565b6040516136bd81613a05602082019460408652606083019061370f565b46604083015203601f198101835282610729565b919091613a24613b62565b60ff61086b5460e01c16612cb35761014081015163ffffffff4281169116101580613a96575b612c825761367d92613a5b826139e8565b60c083015160208401519061016085015192613a7561074b565b958652602086015260408501526060840152608083015260a08201526144f2565b50613aa46040820151614117565b6001600160a01b0316331415613a4a565b734200000000000000000000000000000000000007803303613b5057602060049160405192838092636e296e4560e01b82525afa908115610a92575f91613b31575b506001600160a01b03613b166124eb610869546001600160a01b031690565b911603613b1f57565b6040516336a816d960e01b8152600490fd5b613b4a915060203d602011610a8b57610a7d8183610729565b5f613af7565b60405163253a6fc960e11b8152600490fd5b6002606554146104de576002606555565b9190820391821161354557565b926108139695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906114cd565b9193949690959660070b906706f05b59d3b20000613bef83614c4b565b1015613da9576ec097ce7bc90715b34b9f10000000008411613d975763ffffffff93613c1d858a1642613b73565b857f00000000000000000000000000000000000000000000000000000000000000001610613d855761086b5460c01c63ffffffff1698613c5f6126e38b6139d3565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613d7c575b15613d4057803403613d2e57883b156104de575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a9257613d03613d16978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613d1b575b505b83614c99565b92604051998a99169d169b169387613b80565b0390a4565b806134fa613d2892610688565b5f613cfb565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613d03613d1697613d778430338a614c5a565b613cfd565b50341515613c98565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b908160209103126104de575161081381610522565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613e065750565b47613e0e5750565b4790803b156104de575f90600460405180948193630d0e30db60e41b83525af18015610a9257156134cd5761053e90610688565b6108139291604051613ecb81613ebd602082019460208652805160408401526020810151606084015260a0613e87604083015160c0608087015261010086019061308f565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e08501526130c2565b03601f198101835282610729565b51902091614ccf565b613edf600291612db2565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613f17575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9190820180921161354557565b91959495939092935f96815190818151036141055781613fb5575b50505082613f60575b50505050565b6001600160a01b0381613f947ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614d92565b6040805195865233602087015291169463ffffffff1693a45f808080613f5a565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a92575f916140e6575b505f805b868110614004575050505050613f51565b61400e81896132cb565b5161401c575b600101613ff3565b906140329061402b838a6132cb565b5190613f29565b908282116140d65761406c612f9e61405a61404d848a6132cb565b516001600160a01b031690565b614064848c6132cb565b51908c614d20565b15614014579c50876140cc6140c48f6140af61404d6140a861408e848f6132cb565b51966001600160a01b03165f5261087360205260405f2090565b928b6132cb565b6001600160a01b03165f5260205260405f2090565b918254613f29565b905560019c614014565b50505051632ddaa83160e11b8152fd5b6140ff915060203d602011611306576112f78183610729565b5f613fef565b6040516319a5316760e31b8152600490fd5b6001600160a01b039061412981614efc565b1690565b91612f9e906141a69284516040809601519186519161414b836106b9565b8252613ecb6141666020840192468452898501958652612db2565b505493885192839161418b6020840196602088525160608d86015260a085019061370f565b9151606084015251608083015203601f198101835282610729565b6141ad5750565b5163582f497d60e11b8152600490fd5b6141c6826131a7565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190614249826131a7565b6101c00152565b9061081394936080936001600160a01b038093168452602084015216604082015281606082015201906114cd565b905f82516101208101614295815163ffffffff1690565b63ffffffff429116106144e05760208501519060026142bd835f5261087260205260405f2090565b54146144ce576142d786925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e08101519561010082015197516143169063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161433f90614753565b966060890151986080019e8f5161435590614753565b906040015190614363610799565b9a8b5260208b015260408a0152600260608a01526040519d8e9b6143879b8d6141c9565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a460808201516143bb90614117565b90604086015195606001516143cf90614117565b92608001516143dd90614117565b6001600160a01b03919082167f00000000000000000000000000000000000000000000000000000000000000008316036144b957846144a6575b61442387838616614f17565b5192835115158061449c575b61443d575b50505050509050565b1690813b15614498578361446b959660405196879586948593633a5be8cb60e01b8552339160048601614250565b03925af18015610a9257614485575b808080808594614434565b806134fa61449292610688565b5f61447a565b8380fd5b50803b151561442f565b6144b4873033858716614c5a565b614417565b5f94506144c98785858516614c03565b614423565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301614508815163ffffffff1690565b63ffffffff429116106144e0576020830151600161452f825f5261087260205260405f2090565b540361474c576001905b600261454e825f5261087260205260405f2090565b54146144ce5761456a614570915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208606086015160808701519061463d8760a08a0151958a60c08101519760a08401519860e0830151996145cd6101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956146316145f961016060208b01519a0151614753565b9960608c01519b604061460f6080830151614753565b91015190602061461d610799565b9e8f528e015260408d015260608c016141bd565b6040519c8d9c8d6141c9565b0390a461464d6080830151614117565b91604082015191608061466f816146676060850151614117565b940151614117565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603614739576146b1853033868a16614c5a565b6146bd85848616614f17565b015191825115158061472f575b6146d6575b5050505050565b16803b156104de57614704935f809460405196879586948593633a5be8cb60e01b8552339160048601614250565b03925af18015610a925761471c575b808080806146cf565b806134fa61472992610688565b5f614713565b50803b15156146ca565b614747858533868a16614c5a565b6146bd565b5f90614539565b805190816147615750505f90565b6020012090565b939260429361053e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526147cd816106f1565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526148238161070d565b519020906040519161190160f01b8352600283015260228201522090615193565b96926108139a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906114cd565b6148a48151614efc565b61012081016148c36148ba825163ffffffff1690565b63ffffffff1690565b804210908115614af3575b50613d85576101408201916148e7835163ffffffff1690565b9063ffffffff918261491b817f00000000000000000000000000000000000000000000000000000000000000001642613f29565b911611614ae15761016081015163ffffffff169180831680614a9c575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614a93575b15614a465760808201513403613d2e57823b156104de575f60049360405194858092630d0e30db60e41b825234905af1928315610a92577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614a33575b505b51613d1660608301519260808101519060a081015160c082015197614a12614a076101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614844565b806134fa614a4092610688565b5f6149d3565b915034613d2e5781614a8e614a7f6124eb7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551614117565b60808401519030903390614c5a565b6149d5565b50341515614975565b6301e133801015614acc575b5060e081015115614aba575f80614938565b60405163495d907f60e01b8152600490fd5b91614ada919242169061352d565b905f614aa8565b60405163582e388960e01b8152600490fd5b614afe915042613b73565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6148ce565b60ff5f5460081c16156104de57565b60ff5f5460081c16156104de576001606555565b6001600160a01b03168015614b9757610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b03168015614bf15761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261053e91614c4682606481015b03601f198101845283610729565b615271565b5f8112614c555790565b5f0390565b909261053e93604051936323b872dd60e01b60208601526001600160a01b038092166024860152166044840152606483015260648252614c468261070d565b90670de0b6b3a7640000915f82840392128383128116908484139015161761354557818102918183041490151715613545570490565b929091905f915b8451831015614d1857614ce983866132cb565b519081811015614d07575f52602052600160405f205b920191614cd6565b905f52602052600160405f20614cff565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614d5c8160648101613ebd565b519082855af1903d5f519083614d73575b50505090565b91925090614d8857503b15155b5f8080614d6d565b6001915014614d80565b906001600160a01b03808216817f000000000000000000000000000000000000000000000000000000000000000016811480928115614ed0575b50614ec1575b5015614eb857610c5a5463ffffffff16734300000000000000000000000000000000000005803b156104de5760405163540abf7360e01b81526001600160a01b0393841660048201527f0000000000000000000000000000000000000000000000000000000000000000841660248201527f00000000000000000000000000000000000000000000000000000000000000009093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a9257614eab5750565b806134fa61053e92610688565b61053e9161557c565b614eca90615301565b5f614dd2565b90507f00000000000000000000000000000000000000000000000000000000000000001681145f614dcc565b60a01c614f0557565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614fd5575b15614fa857507f00000000000000000000000000000000000000000000000000000000000000001691823b156104de57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a925761053e93614f95575b506158e5565b806134fa614fa292610688565b5f614f8f565b9061053e93507f000000000000000000000000000000000000000000000000000000000000000016614c03565b50803b614fe1816107a6565b614fee6040519182610729565b81815260208101915f83853c51905162ffffff60e81b908181169260038110615021575b50501661ef0160f01b14614f2d565b829350829060030360031b1b1616905f80615012565b61504081615150565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a28151158015906150f8575b615081575050565b5f806134cd937f206661696c656400000000000000000000000000000000000000000000000000604080516150b5816106b9565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af46150f2613303565b91615cb8565b505f615079565b61510881615150565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061514857615081575050565b506001615079565b803b156104de576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61519d8383615c67565b60058195929510156131b15715938461525b575b5083156151d5575b505050156151c357565b60405163938a182160e01b8152600490fd5b5f92935090829160405161520d81613ebd6020820194630b135d3f60e11b998a875260248401526040604484015260648301906114cd565b51915afa9061521a613303565b8261524d575b82615230575b50505f80806151b9565b61524591925060208082518301019101613390565b145f80615226565b915060208251101591615220565b6001600160a01b0383811691161493505f6151b1565b905f806001600160a01b036152c89416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656460206040516152b181610667565b818152015260208151910182855af16150f2613303565b80519081159182156152de575b5050156104de57565b81925090602091810103126104de57602001516152fa81611cdd565b5f806152d5565b6040805163e12f3a6160e01b8152306004820152916001600160a01b03919060209083168185602481845afa948515610a92575f9561555d575b508251635569f64b60e11b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b038116600483015260248201879052959083816044815f875af1908115610a92575f91615540575b50809103615520578082916154ea575b5050837f000000000000000000000000000000000000000000000000000000000000000016146153d85750505050565b815163430021db60e11b81523060048201526001600160a01b03851660248201527343000000000000000000000000000000000000029082816044815f865af1908115610a92575f916154cd575b50835163662aa11d60e01b81523060048201526001600160a01b0387166024820152918390839060449082905f905af1918215610a925761546f935f936154ae575b5050613f29565b918215613f5a5790519182525f9216907ff3055bc8d92d9c8d2f12b45d112dd345cd2cfd17292b8d65c5642ac6f912dfd790602090a35f808080613f5a565b6154c5929350803d10611306576112f78183610729565b905f80615468565b6154e49150833d8511611306576112f78183610729565b5f615426565b8451908152858716907ff3055bc8d92d9c8d2f12b45d112dd345cd2cfd17292b8d65c5642ac6f912dfd790602090a3805f6153a8565b8351633c0ba94560e11b81526001600160a01b0383166004820152602490fd5b6155579150843d8611611306576112f78183610729565b5f615398565b615575919550823d8411611306576112f78183610729565b935f61533b565b906001600160a01b0390818116907f00000000000000000000000000000000000000000000000000000000000000008316820361568f5750803b156104de57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a925761567c575b50610c5a549161560161086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b156104de57604051631474f2a960e31b81526001600160a01b03602087901c90951685166004820152931660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839182908160c48101614e9a565b806134fa61568992610688565b5f6155e8565b91807f0000000000000000000000000000000000000000000000000000000000000000161515806158ba575b156156df5750505061053e906156da61086a546001600160a01b031690565b6159ba565b8061570c6156ff856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615896577342000000000000000000000000000000000000105b169061574b6124eb6156ff856001600160a01b03165f52610c5d60205260405f2090565b1561581057838261575b9261590d565b61577a6156ff836001600160a01b03165f52610c5d60205260405f2090565b9061578e61086a546001600160a01b031690565b9161579f610c5a5463ffffffff1690565b823b156104de5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829060e490829084905af18015610a9257614eab5750565b509161582561086a546001600160a01b031690565b92615836610c5a5463ffffffff1690565b93813b156104de57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614e9a565b6158b56156ff846001600160a01b03165f52610c5c60205260405f2090565b615727565b50807f00000000000000000000000000000000000000000000000000000000000000001682146156bb565b8147106104de575f8080936001600160a01b038294165af1615905613303565b50156104de57565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610a92575f93615999575b5082018092116135455760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261053e9190614c468260648101614c38565b6159b391935060203d602011611306576112f78183610729565b915f615955565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f00000000000000000000000000000000000000000000000000000000000000001693615a1784868561590d565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a925788915f98615c46575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a92575f96615c27575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b615ab757505050505050505050565b86811115615c2157865b8815615b7957843b156104de578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a9257615b6093615b66575b50613b73565b80615aa8565b806134fa615b7392610688565b5f615b5a565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a9257615b6093615bf45750613b73565b615c1390853d8711615c1a575b615c0b8183610729565b810190615c98565b505f615b5a565b503d615c01565b80615ac1565b615c3f919650873d8911611306576112f78183610729565b945f615a82565b86919850615c6090833d8511610a8b57610a7d8183610729565b9790615a46565b9060418151145f14615c8f576114a891602082015190606060408401519301515f1a90615ce1565b50505f90600290565b908160209103126104de575167ffffffffffffffff811681036104de5790565b9015615cd257815115615cc9575090565b3b156104de5790565b5080519081156104de57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615d51576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a92575f516001600160a01b03811615615d4957905f90565b505f90600190565b505050505f9060039056fea2646970667358221220089a5a4be1134d166205809933b696acd2c8401518827b2b02983ced59f9e17f64736f6c6343000817003300000000000000000000000043000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000e1000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043000000000000000000000000000000000000030000000000000000000000006b175474e89094c44da98b954eedeac495271d0f0000000000000000000000008ba929be3462a809afb3bf9e100ee110d2cfe53100000000000000000000000098dd57048d7d5337e92d9102743528ea4fea64ab", + "nonce": "0x20a", + "chainId": "0x13e31" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x92375b", + "logs": [ + { + "address": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x9d4c67af76efff6d2224b46aa0cc530d20c87d9339ed7a440926649f35cbd84f", + "blockNumber": "0x1691cdc", + "transactionHash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", + "transactionIndex": "0x8", + "logIndex": "0x16", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", + "transactionIndex": "0x8", + "blockHash": "0x9d4c67af76efff6d2224b46aa0cc530d20c87d9339ed7a440926649f35cbd84f", + "blockNumber": "0x1691cdc", + "gasUsed": "0x504110", + "effectiveGasPrice": "0x1012e5", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", + "l1Fee": "0x3e97ec0ac6", + "l1GasPrice": "0x26202a97", + "l1GasUsed": "0x5d484" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756141586120, + "chain": 81457, + "commit": "a6daa38e" +} diff --git a/broadcast/049DeployZoraSpokePool.s.sol/7777777/run-latest.json b/broadcast/049DeployZoraSpokePool.s.sol/7777777/run-latest.json new file mode 100644 index 000000000..44a23ae96 --- /dev/null +++ b/broadcast/049DeployZoraSpokePool.s.sol/7777777/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", + "transactionType": "CREATE", + "contractName": "Zora_SpokePool", + "contractAddress": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609811", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220ba5809ce2c6e85c7a7aa5eb9614038f79d553c1a8ace84fc8f93a545b80f0df364736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x8b", + "chainId": "0x76adf1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4b01e3", + "logs": [ + { + "address": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe2d4b67d339055f4f559567a8acd58eaa18154cf62b3a4a8a6fdecbced61dc5e", + "blockNumber": "0x211d8da", + "transactionHash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000008000000400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", + "transactionIndex": "0x1", + "blockHash": "0xe2d4b67d339055f4f559567a8acd58eaa18154cf62b3a4a8a6fdecbced61dc5e", + "blockNumber": "0x211d8da", + "gasUsed": "0x4a4d97", + "effectiveGasPrice": "0xf433c", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", + "l1BaseFeeScalar": "0x186a0", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x95506", + "l1Fee": "0xce8619e2124", + "l1GasPrice": "0x29a389dd", + "l1GasUsed": "0x31994" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756141955597, + "chain": 7777777, + "commit": "a6daa38e" +} diff --git a/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json b/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json new file mode 100644 index 000000000..be993aa17 --- /dev/null +++ b/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json @@ -0,0 +1,67 @@ +{ + "transactions": [ + { + "hash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", + "transactionType": "CREATE", + "contractName": "Zora_SpokePool", + "contractAddress": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", + "function": null, + "arguments": [ + "0x4300000000000000000000000000000000000004", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609811", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220ba5809ce2c6e85c7a7aa5eb9614038f79d553c1a8ace84fc8f93a545b80f0df364736f6c6343000817003300000000000000000000000043000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x20b", + "chainId": "0x13e31" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x573bb5", + "logs": [ + { + "address": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x060010f207f34698002bdacc5250514d0a7d9cf078cd6647e4470af45f5357b6", + "blockNumber": "0x1691d50", + "transactionHash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", + "transactionIndex": "0x4", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000004000000000000000000000000000800000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", + "transactionIndex": "0x4", + "blockHash": "0x060010f207f34698002bdacc5250514d0a7d9cf078cd6647e4470af45f5357b6", + "blockNumber": "0x1691d50", + "gasUsed": "0x4a4d97", + "effectiveGasPrice": "0xce5ce", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", + "l1Fee": "0x45d4b5cc40", + "l1GasPrice": "0x2dce6ee0", + "l1GasUsed": "0x569e4" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756141816710, + "chain": 81457, + "commit": "a6daa38e" +} diff --git a/broadcast/057DeployInkSpokePool.s.sol/57073/run-latest.json b/broadcast/057DeployInkSpokePool.s.sol/57073/run-latest.json new file mode 100644 index 000000000..e562b3128 --- /dev/null +++ b/broadcast/057DeployInkSpokePool.s.sol/57073/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", + "transactionType": "CREATE", + "contractName": "Ink_SpokePool", + "contractAddress": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x623f97", + "value": "0x0", + "input": "0x6101c0604081815234620002e25760a08262005b248038038091620000258285620002e6565b833981010312620002e25781516001600160a01b038082169391849003620002e257602091620000578382016200030a565b94620000658583016200030a565b946060830151928484168403620002e257608001519380851692838603620002e257306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002e25760ff80821603620002a9575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200028b575f938493885251915afa963d156200029f573d9182116200028b5783519162000133601f8201601f1916830184620002e6565b82523d5f8284013e5b876200027f575b876200024a575b5050506101a0948552519461580796876200031d88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614b8301528181614bfe0152614f5f015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b650152818161555c015261560701525183818161087601528181614a5a0152818161529e015261543d0152518281816120a501528181614b23015281816150700152615460015251818181611ca301526154fc0152f35b9091929650808251920151918181106200026e575b5050161515935f80806200014a565b5f19910360031b1b165f806200025f565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200028b57604052565b519063ffffffff82168203620002e25756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d25750505061001890614d9e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614c85565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df5750505061001890614d9e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614d4d565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614b4a565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614b4a565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614b4a565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614b65565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614b65565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090614de1565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614b4a565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b614ebf565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03808316818316149081614b1f575b5015614b14575081614aa1916152c5565b61086a546001600160a01b0316610c5a5463ffffffff16915f3b1561047e5760405163262cc5ab60e11b81526001600160a01b03929092166004830152602482015263ffffffff9190911660448201525f8160648183805af18015610a3257614b075750565b806139d76104de92610645565b90506104de91614f4f565b90507f000000000000000000000000000000000000000000000000000000000000000016155f614a90565b60a01c614b5357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614c23575b15614bf657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614be3575b50615407565b806139d7614bf092610645565b5f614bdd565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614c2f81610746565b614c3c60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614c6f575b50501661ef0160f01b14614b7b565b829350829060030360031b1b1616905f80614c60565b614c8e81614d9e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614d46575b614ccf575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614d0381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614d40613026565b9161572d565b505f614cc7565b614d5681614d9e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614d9657614ccf575050565b506001614cc7565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614deb83836156dc565b6005819592951015612fe957159384614ea9575b508315614e23575b50505015614e1157565b60405163938a182160e01b8152600490fd5b5f929350908291604051614e5b81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa90614e68613026565b82614e9b575b82614e7e575b50505f8080614e07565b614e9391925060208082518301019101613bdf565b145f80614e74565b915060208251101591614e6e565b6001600160a01b0383811691161493505f614dff565b905f806001600160a01b03614f169416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614eff81610607565b818152015260208151910182855af1614d40613026565b8051908115918215614f2c575b50501561047e57565b819250906020918101031261047e5760200151614f4881611bc9565b5f80614f23565b906001600160a01b0390818116907f00000000000000000000000000000000000000000000000000000000000000008316820361506c5750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257615059575b50610c5a5491614fd461086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b075750565b806139d761506692610645565b5f614fbb565b91807f00000000000000000000000000000000000000000000000000000000000000001615158061529a575b156150bc575050506104de906150b761086a546001600160a01b031690565b61542f565b806150e96150dc856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615276577342000000000000000000000000000000000000105b16906151286123946150dc856001600160a01b03165f52610c5d60205260405f2090565b156151f05783826151389261535a565b6151576150dc836001600160a01b03165f52610c5d60205260405f2090565b9061516b61086a546001600160a01b031690565b9161517c610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b075750565b509161520561086a546001600160a01b031690565b92615216610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c481016151df565b6152956150dc846001600160a01b03165f52610c5c60205260405f2090565b615104565b50807f0000000000000000000000000000000000000000000000000000000000000000168214615098565b604051636eb1769f60e11b81523060048201525f602482015290916020826044816001600160a01b0387165afa918215610a32575f92615339575b5081018091116131e95760405163095ea7b360e01b60208201525f602482015260448101919091526104de9161490b82606481016148fd565b61535391925060203d6020116112355761122681836106c9565b905f615300565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610a32575f936153e6575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61540091935060203d6020116112355761122681836106c9565b915f6153a2565b81471061047e575f8080936001600160a01b038294165af1615427613026565b501561047e57565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f0000000000000000000000000000000000000000000000000000000000000000169361548c84868561535a565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f986156bb575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f9661569c575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61552c57505050505050505050565b8681111561569657865b88156155ee57843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576155d5936155db575b50613817565b8061551d565b806139d76155e892610645565b5f6155cf565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a32576155d5936156695750613817565b61568890853d871161568f575b61568081836106c9565b81019061570d565b505f6155cf565b503d615676565b80615536565b6156b4919650873d89116112355761122681836106c9565b945f6154f7565b869198506156d590833d8511610a2b57610a1d81836106c9565b97906154bb565b9060418151145f14615704576113d791602082015190606060408401519301515f1a90615756565b50505f90600290565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b90156157475781511561573e575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157c6576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b038116156157be57905f90565b505f90600190565b505050505f9060039056fea264697066735822122009cf51f2edc2707d939f778ac6ec6444343e3427752f0f518ad01f570643197264736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x31", + "chainId": "0xdef1" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0xaeaa2e", + "logs": [ + { + "address": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x6179f7a25a0c2c5e03438ad8d1b595d88921d265ab8ac2a3677c1da041facdb5", + "blockNumber": "0x1598426", + "transactionHash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", + "transactionIndex": "0x9", + "logIndex": "0x2", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000040000080000000080000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000", + "type": "0x2", + "transactionHash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", + "transactionIndex": "0x9", + "blockHash": "0x6179f7a25a0c2c5e03438ad8d1b595d88921d265ab8ac2a3677c1da041facdb5", + "blockNumber": "0x1598426", + "gasUsed": "0x4b9361", + "effectiveGasPrice": "0x2f4", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", + "l1BaseFeeScalar": "0x1148", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0xc5f4f", + "l1Fee": "0x9154454086", + "l1GasPrice": "0x28dc9f5a", + "l1GasUsed": "0x323ee" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756142163426, + "chain": 57073, + "commit": "a6daa38e" +} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index efab811d6..fde31c22a 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -665,9 +665,9 @@ "chain_name": "Ink", "contracts": { "SpokePool": { - "address": "0xeF684C38F94F48775959ECf2012D7E864ffb9dd4", - "transaction_hash": "Unknown", - "block_number": 1139240 + "address": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", + "transaction_hash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", + "block_number": 22643750 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -735,9 +735,9 @@ "chain_name": "Blast", "contracts": { "SpokePool": { - "address": "0x2D509190Ed0172ba588407D4c2df918F955Cc6E1", - "transaction_hash": "Unknown", - "block_number": 5574280 + "address": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", + "transaction_hash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", + "block_number": 23666000 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -815,9 +815,9 @@ "chain_name": "Scroll", "contracts": { "SpokePool": { - "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", - "transaction_hash": "Unknown", - "block_number": 7489705 + "address": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", + "transaction_hash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", + "block_number": 20085960 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -855,9 +855,9 @@ "chain_name": "Zora", "contracts": { "SpokePool": { - "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", - "transaction_hash": "Unknown", - "block_number": 18382867 + "address": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", + "transaction_hash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", + "block_number": 34724058 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index 64db7a054..372317722 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -688,6 +688,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `17456376` +### 057DeployInkSpokePool.s.sol + +- **SpokePool**: `0x5be04e53b465c6fd89ecff3d36ddf666d198e31a` + - Transaction Hash: `0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667` + - Block Number: `22643750` + ### Linea (Chain ID: 59144) #### SpokePool @@ -740,6 +746,18 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `21071991` +### 036DeployBlastSpokePool.s.sol + +- **SpokePool**: `0xfcb6f77112951e1995d37542b519fe0a85a1aa77` + - Transaction Hash: `0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0` + - Block Number: `23665884` + +### 049DeployZoraSpokePool.s.sol + +- **SpokePool**: `0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2` + - Transaction Hash: `0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7` + - Block Number: `23666000` + ### Scroll (Chain ID: 534352) #### SpokePool @@ -766,6 +784,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` +### 027DeployScrollSpokePool.s.sol + +- **SpokePool**: `0x9fda59848900a9c93b7dd9341312a292df8fcdc8` + - Transaction Hash: `0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e` + - Block Number: `20085960` + ### Zora (Chain ID: 7777777) #### SpokePool @@ -792,6 +816,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `32130332` +### 049DeployZoraSpokePool.s.sol + +- **SpokePool**: `0x40ad479382ad2a5c3061487a5094a677b00f6cb0` + - Transaction Hash: `0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb` + - Block Number: `34724058` + ### Solana (Chain ID: 34268394551451) #### SvmSpoke diff --git a/foundry.lock b/foundry.lock new file mode 100644 index 000000000..d56d3a1d7 --- /dev/null +++ b/foundry.lock @@ -0,0 +1,5 @@ +{ + "lib/forge-std": { + "rev": "6bce1540c7a5d1c40eec032a1ae16f0e01f82b92" + } +} \ No newline at end of file From b784a44aa28edad0123391d531c3a0006c7996d2 Mon Sep 17 00:00:00 2001 From: bennett Date: Mon, 25 Aug 2025 14:38:51 -0500 Subject: [PATCH 09/16] update Signed-off-by: bennett --- .../81457/run-latest.json | 67 ------------------- broadcast/deployed-addresses.json | 6 +- broadcast/deployed-addresses.md | 6 -- 3 files changed, 3 insertions(+), 76 deletions(-) delete mode 100644 broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json diff --git a/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json b/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json deleted file mode 100644 index be993aa17..000000000 --- a/broadcast/049DeployZoraSpokePool.s.sol/81457/run-latest.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", - "transactionType": "CREATE", - "contractName": "Zora_SpokePool", - "contractAddress": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", - "function": null, - "arguments": [ - "0x4300000000000000000000000000000000000004", - "3600", - "21600", - "0x0000000000000000000000000000000000000000", - "0x0000000000000000000000000000000000000000" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x609811", - "value": "0x0", - "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220ba5809ce2c6e85c7a7aa5eb9614038f79d553c1a8ace84fc8f93a545b80f0df364736f6c6343000817003300000000000000000000000043000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "nonce": "0x20b", - "chainId": "0x13e31" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x573bb5", - "logs": [ - { - "address": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x060010f207f34698002bdacc5250514d0a7d9cf078cd6647e4470af45f5357b6", - "blockNumber": "0x1691d50", - "transactionHash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", - "transactionIndex": "0x4", - "logIndex": "0x0", - "removed": false - } - ], - "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000004000000000000000000000000000800000000000000000000000000000000000000000000000", - "type": "0x2", - "transactionHash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", - "transactionIndex": "0x4", - "blockHash": "0x060010f207f34698002bdacc5250514d0a7d9cf078cd6647e4470af45f5357b6", - "blockNumber": "0x1691d50", - "gasUsed": "0x4a4d97", - "effectiveGasPrice": "0xce5ce", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", - "l1Fee": "0x45d4b5cc40", - "l1GasPrice": "0x2dce6ee0", - "l1GasUsed": "0x569e4" - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756141816710, - "chain": 81457, - "commit": "a6daa38e" -} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index fde31c22a..2f8f90afa 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -735,9 +735,9 @@ "chain_name": "Blast", "contracts": { "SpokePool": { - "address": "0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2", - "transaction_hash": "0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7", - "block_number": 23666000 + "address": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", + "transaction_hash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", + "block_number": 23665884 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index 372317722..1904e98c4 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -752,12 +752,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0` - Block Number: `23665884` -### 049DeployZoraSpokePool.s.sol - -- **SpokePool**: `0x39e7ffa77a4ac4d34021c6bbe4c8778d47f684f2` - - Transaction Hash: `0xdce59ac179e030fccf4d1ef567157e21f63e152724843e4ec43330b282ad50a7` - - Block Number: `23666000` - ### Scroll (Chain ID: 534352) #### SpokePool From 1df6d63395cd85badef889ee790dc09b54cfb8fc Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Mon, 25 Aug 2025 15:04:20 -0400 Subject: [PATCH 10/16] Deployed mode, redstone, lens and soneium spoke pools Signed-off-by: Faisal Usmani --- .../34443/run-latest.json | 70 +++++++ .../690/run-latest.json | 70 +++++++ .../232/run-latest.json | 194 ++++++++++++++++++ .../1868/run-latest.json | 70 +++++++ broadcast/deployed-addresses.json | 24 +-- broadcast/deployed-addresses.md | 24 +++ script/039DeployModeSpokePool.s.sol | 4 +- script/059DeployLensSpokePool.s.sol | 4 +- script/060DeployCherSpokePool.s.sol | 4 +- script/utils/Constants.sol | 11 + script/utils/constants.json | 4 + 11 files changed, 463 insertions(+), 16 deletions(-) create mode 100644 broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json create mode 100644 broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json create mode 100644 broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json create mode 100644 broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json diff --git a/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json b/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json new file mode 100644 index 000000000..ab6379eb8 --- /dev/null +++ b/broadcast/039DeployModeSpokePool.s.sol/34443/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionType": "CREATE", + "contractName": "Mode_SpokePool", + "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609801", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea264697066735822122089ecc23422d858b406d6d8005695ed08f291d974af67738eb1af6eba61a7ccd764736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xb8", + "chainId": "0x868b" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x67f30b", + "logs": [ + { + "address": "0xc49226858478de8757e425661b1b5297102330d7", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", + "blockNumber": "0x1ab10b4", + "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionIndex": "0x6", + "logIndex": "0x6", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000200000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "transactionIndex": "0x6", + "blockHash": "0xcf026484a7cefd4286ebbe1ffb8c19d0f6829543cc80fc7e1e37919a1bebc6a1", + "blockNumber": "0x1ab10b4", + "gasUsed": "0x4a4d8b", + "effectiveGasPrice": "0x1f2", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0xc49226858478de8757e425661b1b5297102330d7", + "l1BaseFeeScalar": "0x4e20", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x95506", + "l1Fee": "0x196d6f9b868", + "l1GasPrice": "0x19a43e6c", + "l1GasUsed": "0x31952" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756143930, + "chain": 34443, + "commit": "a6daa38e" +} diff --git a/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json b/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json new file mode 100644 index 000000000..50d071b32 --- /dev/null +++ b/broadcast/047DeployRedstoneSpokePool.s.sol/690/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionType": "CREATE", + "contractName": "Redstone_SpokePool", + "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0x0000000000000000000000000000000000000000", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x609811", + "value": "0x0", + "input": "0x6101c0604081815234620002d45760a082620059928038038091620000258285620002d8565b833981010312620002d45781516001600160a01b038082169391849003620002d45760209162000057838201620002fc565b9462000065858301620002fc565b946060830151928484168403620002d457608001519380851692838603620002d457306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002d45760ff808216036200029b575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200027d575f938493885251915afa963d1562000291573d9182116200027d5783519162000133601f8201601f1916830184620002d8565b82523d5f8284013e5b8762000271575b876200023c575b5050506101a0948552519461568396876200030f88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614a6701528181614e130152614e8e015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b65015281816153b0015261545b01525183818161087601528181614db301526152910152518281816120a501528181614b8501526152b4015251818181611ca301526153500152f35b90919296508082519201519181811062000260575b5050161515935f80806200014a565b5f19910360031b1b165f8062000251565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200027d57604052565b519063ffffffff82168203620002d45756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d2575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614f15565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df575050506100189061502e565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614fdd565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614dda565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614dda565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614dda565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614df5565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614df5565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090615071565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614dda565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b61514f565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b906001600160a01b0390818116907f000000000000000000000000000000000000000000000000000000000000000083168203614b815750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a3257614b6e575b50610c5a5491614adc61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b8152602086901c949094166001600160a01b0390811660048601521660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839160c4918391905af18015610a3257614b615750565b806139d76104de92610645565b806139d7614b7b92610645565b5f614ac3565b91807f000000000000000000000000000000000000000000000000000000000000000016151580614daf575b15614bd1575050506104de90614bcc61086a546001600160a01b031690565b615283565b80614bfe614bf1856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614d8b577342000000000000000000000000000000000000105b1690614c3d612394614bf1856001600160a01b03165f52610c5d60205260405f2090565b15614d05578382614c4d926151df565b614c6c614bf1836001600160a01b03165f52610c5d60205260405f2090565b90614c8061086a546001600160a01b031690565b91614c91610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af18015610a3257614b615750565b5091614d1a61086a546001600160a01b031690565b92614d2b610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614cf4565b614daa614bf1846001600160a01b03165f52610c5c60205260405f2090565b614c19565b50807f0000000000000000000000000000000000000000000000000000000000000000168214614bad565b60a01c614de357565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614eb3575b15614e8657507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614e73575b50615530565b806139d7614e8092610645565b5f614e6d565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614ebf81610746565b614ecc60405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614eff575b50501661ef0160f01b14614e0b565b829350829060030360031b1b1616905f80614ef0565b614f1e8161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614fd6575b614f5f575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614f9381610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614fd0613026565b916155a9565b505f614f57565b614fe68161502e565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061502657614f5f575050565b506001614f57565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b61507b8383615578565b6005819592951015612fe957159384615139575b5083156150b3575b505050156150a157565b60405163938a182160e01b8152600490fd5b5f9293509082916040516150eb81613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa906150f8613026565b8261512b575b8261510e575b50505f8080615097565b61512391925060208082518301019101613bdf565b145f80615104565b9150602082511015916150fe565b6001600160a01b0383811691161493505f61508f565b905f806001600160a01b036151a69416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602060405161518f81610607565b818152015260208151910182855af1614fd0613026565b80519081159182156151bc575b50501561047e57565b819250906020918101031261047e57602001516151d881611bc9565b5f806151b3565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610a32575f93615262575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61527c91935060203d6020116112355761122681836106c9565b915f61521e565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936152e08486856151df565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f9861550f575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966154f0575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61538057505050505050505050565b868111156154ea57865b881561544257843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a32576154299361542f575b50613817565b80615371565b806139d761543c92610645565b5f615423565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a3257615429936154bd5750613817565b6154dc90853d87116154e3575b6154d481836106c9565b810190615558565b505f615423565b503d6154ca565b8061538a565b615508919650873d89116112355761122681836106c9565b945f61534b565b8691985061552990833d8511610a2b57610a1d81836106c9565b979061530f565b81471061047e575f8080936001600160a01b038294165af1615550613026565b501561047e57565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b9060418151145f146155a0576113d791602082015190606060408401519301515f1a906155d2565b50505f90600290565b90156155c3578151156155ba575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615642576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b0381161561563a57905f90565b505f90600190565b505050505f9060039056fea2646970667358221220cd932f9335f9362d7b908bcee4aac3b6303202232176516d2db54dcf35dbdc2b64736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e10000000000000000000000000000000000000000000000000000000000000546000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0xab", + "chainId": "0x2b2" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x4af8b2", + "logs": [ + { + "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", + "blockNumber": "0x14f5e90", + "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionIndex": "0x1", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000081000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "transactionIndex": "0x1", + "blockHash": "0xde6882c71d05a4ed207c605d170b1c3a6d5dc66fd22a62320530c8eb858144d8", + "blockNumber": "0x14f5e90", + "gasUsed": "0x4a4d97", + "effectiveGasPrice": "0x33", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "l1BaseFeeScalar": "0xbf9", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x0", + "l1Fee": "0x8652b38f1d", + "l1GasPrice": "0x1fa1174c", + "l1GasUsed": "0x56994" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756142768, + "chain": 690, + "commit": "a6daa38e" +} diff --git a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json new file mode 100644 index 000000000..e0e989e60 --- /dev/null +++ b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json @@ -0,0 +1,194 @@ +{ + "transactions": [ + { + "hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionType": "CREATE", + "contractName": "Lens_SpokePool", + "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "function": null, + "arguments": [ + "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", + "0x88F08E304EC4f90D644Cec3Fb69b8aD414acf884", + "0x7188B6975EeC82ae914b6eC7AC32b3c9a18b2c81", + "0x0000000000000000000000000000000000000000", + "3600", + "21600" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x250b081", + "value": "0x0", + "input": "0x6101e0604081815234620003255760c082620056c9803803809162000025828562000329565b833981010312620003255781516001600160a01b038082169291839003620003255760209081850151818116918282036200032557848701519481861680870362000325576060890151948386169081870362000325576200009860a06200009060808e016200034d565b9c016200034d565b99306080525f60c0525f60a05260e0526101009a8b52610120998a525f5460ff8160081c16620003255760ff80821603620002ec575b506101609586526101809687525f610140908152845163011a412160e61b8a8201908152600482529196916001600160401b0391908188019083821183831017620002ce575f9283928a525190875afa993d15620002e2573d918211620002ce5786519162000147601f8201601f191683018462000329565b82523d5f8284013e5b8a620002c2575b8a6200028d575b5050506101a09788526200026c575b50506101c09586525195615369978862000360893960805188818161104c015281816113c40152611476015260a051886116df015260c05188611798015260e0518881816107d6015281816134c90152818161363d01528181613c6e01528181613f000152818161442e015281816148ce01528181614b0e0152614b8901525187818161167e0152818161347d01526145e701525186818161044e01526143d701525185818161175801528181614ff2015261509d015251848181610779015281816149b50152614ed3015251838181611c77015281816149de0152614ef601525182818161188b0152614f920152518181816110e50152614a270152f35b159015146200027d575f806200016d565b51635110d79160e01b8152600490fd5b909192995080825192015191818110620002b1575b5050161515965f80806200015e565b5f19910360031b1b165f80620002a2565b815181149a5062000157565b634e487b7160e01b5f52604160045260245ffd5b6060915062000150565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249888855160ff8152a15f620000ce565b5f80fd5b601f909101601f19168101906001600160401b03821190821017620002ce57604052565b519063ffffffff82168203620003255756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f000000000000000000000000000000000000000000000000000000000000000016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f000000000000000000000000000000000000000000000000000000000000000016981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000000000164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000000000000000000000000000000000000000000000811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f000000000000000000000000000000000000000000000000000000000000000081168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000000000000000000000000000000000000000000000168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000000000000000000000000000000000000000000000166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c634300081700330000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf8840000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c8100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460", + "nonce": "0xd5", + "chainId": "0xe8" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x0", + "logs": [ + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "0x0000000000000000000000000000000000000000000000000000000000008001" + ], + "data": "0x00000000000000000000000000000000000000000000000002fce17e6fe35285", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x0", + "removed": false + }, + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000008001", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" + ], + "data": "0x000000000000000000000000000000000000000000000000017e70bf391a0183", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x1", + "removed": false + }, + { + "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x2", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008008", + "topics": ["0x27fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d"], + "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000007e30000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800477543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x3", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008008", + "topics": [ + "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241", + "0x0000000000000000000000000000000000000000000000000000000000008004", + "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" + ], + "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000053a06080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000005460168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf884168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d3916300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000e10168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f0000000000000000000000000000000000000000000000000000000000000e1016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f16981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f81169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000005460164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000e1016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88481168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88490837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x4", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008004", + "topics": [ + "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287", + "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", + "0x0000000000000000000000000000000000000000000000000000000000000000" + ], + "data": "0x", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x5", + "removed": false + }, + { + "address": "0x0000000000000000000000000000000000008006", + "topics": [ + "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", + "0x000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d39" + ], + "data": "0x", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x6", + "removed": false + }, + { + "address": "0x000000000000000000000000000000000000800a", + "topics": [ + "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", + "0x0000000000000000000000000000000000000000000000000000000000008001", + "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" + ], + "data": "0x0000000000000000000000000000000000000000000000000168810baff4d312", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "blockTimestamp": "0x68acb349", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "logIndex": "0x7", + "removed": false + } + ], + "logsBloom": "0x00000000000400080000010000000000000000000000400000000000000000000000400000000000000000000200000000000000000000000000000000000000000100000001040000000028000040000424000000000000000000000000080000000000060100000000000000000800000000000000400000000010040000000080001000000000000004000100000000000100000080000000102000000080000000000000100000000000800500800000000000000000002000014000000000000002008000800000000000040000000010000100000000000000000020000001000400000000000000000000200000000004000000000000000880000000", + "type": "0x2", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionIndex": "0x0", + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "gasUsed": "0x21fef8", + "effectiveGasPrice": "0xa52ff002", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "l1BatchNumber": null, + "l1BatchTxIndex": null, + "l2ToL1Logs": [ + { + "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", + "blockNumber": "0x3e7169", + "l1BatchNumber": null, + "logIndex": "0x0", + "transactionIndex": "0x0", + "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "transactionLogIndex": "0x0", + "txIndexInL1Batch": "0x7e3", + "shardId": "0x0", + "isService": true, + "sender": "0x0000000000000000000000000000000000008008", + "key": "0x0000000000000000000000000000000000000000000000000000000000008004", + "value": "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" + } + ] + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756148588922, + "chain": 232, + "commit": "a6daa38e" +} diff --git a/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json b/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json new file mode 100644 index 000000000..e2f02b188 --- /dev/null +++ b/broadcast/060DeployCherSpokePool.s.sol/1868/run-latest.json @@ -0,0 +1,70 @@ +{ + "transactions": [ + { + "hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionType": "CREATE", + "contractName": "Cher_SpokePool", + "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "function": null, + "arguments": [ + "0x4200000000000000000000000000000000000006", + "3600", + "21600", + "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369", + "0x0000000000000000000000000000000000000000" + ], + "transaction": { + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "gas": "0x627c28", + "value": "0x0", + "input": "0x6101c0604081815234620002e25760a08262005b5a8038038091620000258285620002e6565b833981010312620002e25781516001600160a01b038082169391849003620002e257602091620000578382016200030a565b94620000658583016200030a565b946060830151928484168403620002e257608001519380851692838603620002e257306080525f60c0525f60a05260e0526101009788526101209687525f5460ff8160081c16620002e25760ff80821603620002a9575b506101609384526101809485525f610140908152825163011a412160e61b8882019081526004825291946001600160401b03928286019190848311848410176200028b575f938493885251915afa963d156200029f573d9182116200028b5783519162000133601f8201601f1916830184620002e6565b82523d5f8284013e5b876200027f575b876200024a575b5050506101a0948552519461583d96876200031d88396080518781816111380152818161164e015261177a015260a051876119e3015260c05187611ba5015260e0518781816108d30152818161391b01528181613a8f015281816140b0015281816143420152818161461101528181614b9e01528181614c190152614f7a015251868181611982015281816138cf01526147ca01525185818161049e01526145ba015251848181611b6501528181615592015261563d01525183818161087601528181614a5a015281816152ac01526154730152518281816120a501528181614b3e015281816150810152615496015251818181611ca301526155320152f35b9091929650808251920151918181106200026e575b5050161515935f80806200014a565b5f19910360031b1b165f806200025f565b81518114975062000143565b634e487b7160e01b5f52604160045260245ffd5b606091506200013c565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249886835160ff8152a15f620000bc565b5f80fd5b601f909101601f19168101906001600160401b038211908210176200028b57604052565b519063ffffffff82168203620002e25756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461046f5780630c5d5f731461046a5780630cb84d9a146104655780630eaac9f0146104605780631186ec331461045b57806311eac8551461045657806315348e44146103e357806317fcb39b1461045157806319c1648c1461044c5780631b3d5559146104475780631fab657c1461044257806329cb924d1461043d5780632e378115146104385780632e63e59a146104335780633659cfe61461042e578063431023b814610429578063437b911614610424578063490e49ef1461041f578063493a4f841461041a5780634f1ef286146104155780635285e0581461041057806352d1902d1461040b578063541f4f1414610406578063577f51f81461040157806357f6dcb8146103fc5780636068d6cb146103f757806361a04d30146103f2578063647c576c146103ed578063670fa8ac146103e85780636bbbcd2e146103e35780636e400983146103de5780636fd5c10e146103d9578063738b62e5146103d4578063766e0703146103cf578063775c0d03146103ca5780637aef642c146103c55780637b939232146103c05780637ef413e1146103bb57806382e2c43f146103b65780638a7860ce146103b15780638b15788e146103ac578063927ede2d146103a75780639748cf7c146103a257806397943aa91461039d578063979f2bc21461039857806399cc2968146103935780639a8a05921461038e578063a1244c6714610389578063a18a096e14610384578063ac9650d81461037f578063ad5425c61461037a578063adb5a6a61461032a578063b27a430014610375578063b370b7f514610370578063b4c0d7ab1461036b578063babb6aac14610366578063bf10268d14610361578063c35c83fc1461035c578063ceb4c98714610357578063d7e1583a14610352578063dda521131461034d578063ddd224f114610348578063de7eba7814610343578063deff4b241461033e578063e322921114610339578063ea86bd4614610334578063ee2a53f81461032f578063f79f29ed1461032a578063fbbba9ac146103255763fc8a584f0361000e57612d5c565b612cd8565b612630565b612c9a565b612b97565b612b6e565b612a79565b612a49565b612a20565b6129fa565b6129c4565b6128ca565b61289f565b61281b565b612744565b612715565b6126b6565b612677565b6124f4565b612454565b6122ed565b6122c6565b6122ac565b612217565b612149565b6120c9565b612086565b612058565b611fda565b611f62565b611e47565b611e10565b611d68565b611cc8565b611c8c565b611c68565b611bd3565b611b89565b611b49565b61089a565b611b0f565b611a38565b6119cc565b6119a6565b611966565b61188d565b6117ca565b611760565b611739565b61160b565b611584565b611566565b611499565b61123c565b611110565b610f16565b610db6565b610d8d565b610c8b565b610b82565b61091c565b6108b4565b610857565b6107b6565b610585565b61051f565b6104e0565b610482565b5f91031261047e57565b5f80fd5b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361047e57565b35906104de826104c2565b565b3461047e57602036600319011261047e5760206004356104ff816104c2565b6001600160a01b038091165f52610c5d825260405f205416604051908152f35b3461047e57602036600319011261047e57602060043561053e816104c2565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361047e57565b61014435906104de8261055e565b35906104de8261055e565b3461047e57602036600319011261047e5763ffffffff6004356105a78161055e565b6105af613759565b6105b7613806565b16610c5a8163ffffffff198254161790557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761062357604052565b6105f3565b6101a0810190811067ffffffffffffffff82111761062357604052565b67ffffffffffffffff811161062357604052565b6060810190811067ffffffffffffffff82111761062357604052565b6080810190811067ffffffffffffffff82111761062357604052565b60e0810190811067ffffffffffffffff82111761062357604052565b60a0810190811067ffffffffffffffff82111761062357604052565b90601f8019910116810190811067ffffffffffffffff82111761062357604052565b6040519060c0820182811067ffffffffffffffff82111761062357604052565b60405190610180820182811067ffffffffffffffff82111761062357604052565b604051906104de82610628565b604051906104de82610675565b67ffffffffffffffff811161062357601f01601f191660200190565b92919261076e82610746565b9161077c60405193846106c9565b82948184528183011161047e578281602093845f960137010152565b9080601f8301121561047e578160206107b393359101610762565b90565b61010036600319011261047e576004356107cf816104c2565b6024356107db816104c2565b6084358060070b810361047e5760a435906107f58261055e565b60c43567ffffffffffffffff811161047e57610815903690600401610798565b9261081e613806565b60ff61086b5460e81c166108455761083e94606435916044359133613881565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e5760206040515f8152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261047e5760043561090f816104c2565b906024356107b3816104c2565b3461047e5761092a366108f7565b90610933613759565b61093b613806565b6001600160a01b039081831692831515806109d1575b6109bf5761099090610975836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610a32575f91610a03575b5083168284161415610951565b610a25915060203d602011610a2b575b610a1d81836106c9565b810190613a70565b5f6109f6565b503d610a13565b613824565b67ffffffffffffffff81116106235760051b60200190565b9080601f8301121561047e576020908235610a6981610a37565b93610a7760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610aa0575050505090565b81358152908301908301610a92565b9080601f8301121561047e576020908235610ac981610a37565b93610ad760405195866106c9565b81855260208086019260051b82010192831161047e57602001905b828210610b00575050505090565b8380918335610b0e816104c2565b815201910190610af2565b9291610b2482610a37565b91610b3260405193846106c9565b829481845260208094019160051b810192831161047e57905b828210610b585750505050565b81358152908301908301610b4b565b9080601f8301121561047e578160206107b393359101610b19565b60031960603682011261047e57600435610b9b8161055e565b60243567ffffffffffffffff9283821161047e5760c090823603011261047e57610bc36106eb565b908060040135825260248101356020830152604481013584811161047e57610bf19060043691840101610a4f565b6040830152610c026064820161057a565b6060830152610c13608482016104d3565b608083015260a48101359084821161047e576004610c349236920101610aaf565b60a082015260443592831161047e57610c54610018933690600401610b67565b91612d8c565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020808501948460051b01011161047e57565b3461047e5760031960603682011261047e5760043567ffffffffffffffff80821161047e5760608236039384011261047e5760243590610cca8261055e565b60443590811161047e57610ce2903690600401610c5a565b919093610ced613806565b600484013590610182190181121561047e57610d8394610d7e93610d1a610d7793600436918901016128e8565b95610d30610d2b6080890151613ddc565b613a85565b610d398761368c565b9060446020890151916101608a015193610d516106eb565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610b19565b9083613df2565b613f43565b6100186001606555565b3461047e575f36600319011261047e576020604051428152f35b908161018091031261047e5790565b3461047e57604036600319011261047e5760043567ffffffffffffffff811161047e57610de7903690600401610da7565b610df081612f84565b6001600160a01b031690610e0660208201612f84565b6001600160a01b031691610e1c60408301612f84565b6001600160a01b0316610e3160608401612f84565b6001600160a01b031692610e4760808201612f84565b6001600160a01b031690610100610e5f818301612f8e565b9061012090610e6f848301612f8e565b9261014094858101610e8090612f8e565b966101609a8b8301610e929084612f98565b9a909b610e9d61070b565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610eee919063ffffffff169052565b63ffffffff909116908501523690610f0592610762565b9082015233602435610018926136bd565b3461047e57602036600319011261047e576004803567ffffffffffffffff811161047e57610f479036908301610da7565b610f4f613806565b60ff61086b5460e01c166111005763ffffffff80421692610140830193610f8881610f7987612f8e565b63ffffffff9182169116101590565b6110f057610120840192610f9b84612f8e565b16106110e157610fb3610fae36856128e8565b61368c565b90610fc7825f5261087260205260405f2090565b546110d357506110167f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c329261101161100b61101c945f5261087260205260405f2090565b60019055565b612f8e565b93612f8e565b61103c611037611030610160860186612f98565b3691610762565b614418565b906110c66040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461047e57602036600319011261047e5760043561112d816104c2565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90828254160361047e57611192613759565b61119a6126dd565b9160ff7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd914354165f146111d25750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f918161120b575b506111fd575f80fd5b0361047e5761001891614ca0565b61122e91925060203d602011611235575b61122681836106c9565b810190613bdf565b905f6111f4565b503d61121c565b3461047e57608036600319011261047e576004356112598161055e565b60243590611266826104c2565b604435611272816104c2565b6064359161127f836104c2565b60ff5f5460081c161561047e576112c690610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906112d382610607565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b602060405161130281610607565b60058152015260ff5f5460081c161561047e5761001894611367936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b61135d614800565b614814565b61486e565b610c5a9077ffffffffffffffffffffffffffffffffffffffff000000001977ffffffffffffffffffffffffffffffffffffffff0000000083549260201b169116179055565b602060031982011261047e576004359067ffffffffffffffff821161047e576113d791600401610c5a565b9091565b5f5b8381106113ec5750505f910152565b81810151838201526020016113dd565b90602091611415815180928185528580860191016113db565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b858410611457575050505050505090565b909192939495968580611488600193603f1986820301885286838d51805115158452015191818582015201906113fc565b990194019401929594939190611446565b3461047e576114a7366113ac565b6114b081610a37565b9160406114c060405194856106c9565b828452601f196114cf84610a37565b015f5b8181106115435750505f5b8381106114f657604051806114f28782611421565b0390f35b8061153d61150660019388612fee565b515f80611514858a8a613002565b90611523895180938193613019565b0390305af490611531613026565b60208201529015159052565b016114dd565b602090835161155181610607565b5f8152826060818301528289010152016114d2565b3461047e575f36600319011261047e5760206040516301e133808152f35b3461047e57604036600319011261047e576024356004356115a3613759565b6115ab613806565b61086c8054680100000000000000008110156106235763ffffffff91600182019055836115d782612c5b565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261047e57600435611623816104c2565b60243567ffffffffffffffff811161047e57611643903690600401610798565b6001600160a01b03807f0000000000000000000000000000000000000000000000000000000000000000169081301461047e577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91818354160361047e576116a9613759565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116df5750505061001890614db9565b6020600491604051928380926352d1902d60e01b825288165afa5f9181611718575b5061170a575f80fd5b0361047e5761001891614d68565b61173291925060203d6020116112355761122681836106c9565b905f611701565b3461047e575f36600319011261047e5760206001600160a01b036108695416604051908152f35b3461047e575f36600319011261047e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361047e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261047e576004356117e3816104c2565b602435906117f0826104c2565b604435916117fd836104c2565b60a4358060070b810361047e5760c435916118178361055e565b60e43567ffffffffffffffff811161047e57611837903690600401610798565b93611840613806565b60ff61086b5460e81c166108455761083e956084359260643592613881565b9181601f8401121561047e5782359167ffffffffffffffff831161047e576020838186019501011161047e57565b3461047e5760c036600319011261047e576004356118aa816104c2565b602435604435916064356118bd816104c2565b67ffffffffffffffff9160843583811161047e576118df90369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461191f61196193369060040161185f565b9290916001600160a01b038097166119538a8c8361193e368888610762565b9161194a368b8b610762565b9346908d61442d565b604051978897169a87613075565b0390a3005b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060ff61086b5460e81c166040519015158152f35b3461047e575f36600319011261047e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b606090600319011261047e57600435611a1e8161055e565b90602435611a2b816104c2565b906044356107b3816104c2565b3461047e57611a4636611a06565b5f54600881901c60ff1615939290849081611b01575b8115611ae1575b501561047e57611a879284611a7e600160ff195f5416175f55565b611aca576130a8565b611a8d57005b611a9b61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b611adc61010061ff00195f5416175f55565b6130a8565b303b15915081611af3575b505f611a63565b6001915060ff16145f611aec565b600160ff8216109150611a5c565b3461047e575f36600319011261047e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e575f36600319011261047e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361047e57565b3461047e57602036600319011261047e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611c1381611bc9565b611c1b613759565b611c23613806565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461047e575f36600319011261047e57602063ffffffff610c5a5416604051908152f35b3461047e575f36600319011261047e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261047e57600435611ce1816104c2565b60243590611cee826104c2565b604435611cfa816104c2565b60643590611d07826104c2565b60e435611d13816104c2565b6101043590611d218261055e565b6101243592611d2f8461055e565b610144359667ffffffffffffffff881161047e57611d5461001898369060040161185f565b97909660c4359360a43593608435936131ee565b61018036600319011261047e57600435611d81816104c2565b60243590611d8e826104c2565b604435611d9a816104c2565b60643590611da7826104c2565b60e435611db3816104c2565b61010435611dc08161055e565b6101243591611dce8361055e565b611dd661056c565b93610164359767ffffffffffffffff891161047e57611dfc61001899369060040161185f565b98909760c4359360a4359360843593613210565b3461047e57606036600319011261047e576020611e3f600435611e32816104c2565b604435906024359061332b565b604051908152f35b3461047e57606036600319011261047e5767ffffffffffffffff60243581811161047e57611e7990369060040161185f565b9160443590811161047e57611e9290369060040161185f565b9060405193602085019480611ea94684888a613367565b0395611ebd601f19978881018452836106c9565b6004359151902003611f50575f94611eec611f0e93611ee387611f1a958a99019061299e565b95810190613384565b519360405193849160208301966337bfd2c960e21b885233916024850161344c565b039081018352826106c9565b5190305af4611f27613026565b9015611f2f57005b60405163b8fe37a760e01b8152908190611f4c9060048301612704565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461047e57602036600319011261047e57600435611f7e613759565b611f86613806565b611f8f81612c5b565b611fc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261047e5761012435611ff48161055e565b610144356120018161055e565b610164359161200f8361055e565b610184359267ffffffffffffffff841161047e5761203461001894369060040161185f565b9390926101043560e43560c43560a43560843560643560443560243560043561346e565b3461047e575f36600319011261047e5760206040517342000000000000000000000000000000000000078152f35b3461047e575f36600319011261047e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461047e5760e036600319011261047e5767ffffffffffffffff60043581811161047e576120fb903690600401610da7565b60a43582811161047e5761211390369060040161185f565b60c49291923593841161047e5761213161001894369060040161185f565b939092608435906064359060443590602435906134e6565b3461047e5761215736611a06565b909160ff5f5460081c161561047e5761218d9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b60405161219981610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b60206040516121c881610607565b60058152015260ff5f5460081c161561047e57610018936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b3461047e57602036600319011261047e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e602060043561225781611bc9565b61225f613759565b612267613806565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461047e575f36600319011261047e576020604051468152f35b3461047e575f36600319011261047e57602063ffffffff61086b5460c01c16604051908152f35b3461047e57604036600319011261047e5760043560243561230d82614b65565b6001600160a01b0382165f5261087360205261233c60405f20336001600160a01b03165f5260205260405f2090565b549182156123df575f6123833361236d61235585613ddc565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b556123af836123a061239484613ddc565b6001600160a01b031690565b6123a985613ddc565b906148c8565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b8483106124265750505050505090565b9091929394958480612444600193603f198682030187528a516113fc565b9801930193019194939290612416565b3461047e57612462366113ac565b9061246c826135cf565b915f5b81811061248457604051806114f286826123f1565b5f80612491838587613002565b906124a160405180938193613019565b0390305af46124ae613026565b90156124d457906001916124c28287612fee565b526124cd8186612fee565b500161246f565b604481511061047e5780600461047e920151602480918301019101613618565b6101808060031936011261047e576101043561250f8161055e565b610124359161251d8361055e565b610144359261252b8461055e565b6101643567ffffffffffffffff811161047e5761254c90369060040161185f565b612554613806565b61086b549260ff8460e81c1661084557610d83966126196110309261260b63ffffffff6126279860c01c16996125af61258c8c613677565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6125b761072c565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261455f565b3461047e57602061266e6001600160a01b0361264b366108f7565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461047e57602036600319011261047e576020600435612696816104c2565b6001600160a01b038091165f52610c5c825260405f205416604051908152f35b3461047e575f36600319011261047e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610623576040525f8152905f368137565b9060206107b39281815201906113fc565b3461047e575f36600319011261047e576114f26127306126dd565b6040519182916020835260208301906113fc565b3461047e5760c036600319011261047e5760043560243567ffffffffffffffff60643560443560843583811161047e5761278290369060040161185f565b60a49491943591821161047e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946127c261281193369060040161185f565b9290916127cd613806565b6127d68a614b65565b612805898b89896127e8368888610762565b926127f4368b8b610762565b946001600160a01b0346921661442d565b60405196879687613075565b0390a36001606555005b3461047e57612829366108f7565b90612832613759565b61283a613806565b6001600160a01b0380911691825f52610c5d6020526128728160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461047e57602036600319011261047e576004355f52610872602052602060405f2054604051908152f35b3461047e575f36600319011261047e57602060405163ffffffff8152f35b91906101808382031261047e576128fd61070b565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e0850152610100808201359085015261012061296181830161057a565b9085015261014061297381830161057a565b90850152610160918282013567ffffffffffffffff811161047e576129989201610798565b90830152565b9060208282031261047e57813567ffffffffffffffff811161047e576107b392016128e8565b3461047e57602036600319011261047e5760043567ffffffffffffffff811161047e57611e3f610fae60209236906004016128e8565b3461047e575f36600319011261047e57602060ff61086b5460e01c166040519015158152f35b3461047e575f36600319011261047e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461047e57602036600319011261047e5761083e600435612a69816104c2565b612a71613759565b61135d613806565b3461047e57606036600319011261047e5760043567ffffffffffffffff811161047e57612aaa9036906004016128e8565b612ab2613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff4281169116101580612b3d575b612b2b5780612ae9610d839261368c565b60c082015160208301519061016084015192612b036106eb565b948552602085015260408401526060830152608082015260243560a0820152604435906141b7565b604051630c3a9b9d60e41b8152600490fd5b50612b4b6040820151613ddc565b6001600160a01b0316331415612ad8565b604051633d90fc5560e11b8152600490fd5b3461047e575f36600319011261047e576020610c5a546001600160a01b0360405191831c168152f35b6101608060031936011261047e5761010435612bb28161055e565b61012435612bbf8161055e565b6101443567ffffffffffffffff811161047e57612be090369060040161185f565b63ffffffff94612bf386421695866131d1565b93612bfc613806565b61086b549160ff8360e81c1661084557612c2f612c3c9661260b610d839a6110309660c01c16996125af61258c8c613677565b86019063ffffffff169052565b61018082015261455f565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612c95576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612c47565b3461047e57602036600319011261047e5760043561086c5481101561047e57612cc4604091612c5b565b506001815491015482519182526020820152f35b3461047e57612ce6366108f7565b90612cef613759565b612cf7613806565b6001600160a01b0380911691825f52610c5c602052612d2f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461047e57602036600319011261047e5761083e600435612d7c816104c2565b612d84613759565b611362613806565b91612d95613806565b6080820191612dae610d2b84516001600160a01b031690565b602081019182514603612eb557612dd6612dda91836001612dce89612c5b565b500154613af8565b1590565b612ea3578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612e1c612e16865163ffffffff1690565b87613b8a565b612e96845194835193612e7b612e6d612e5c60408401998a51612e438d5163ffffffff1690565b89516001600160a01b03169160a088019b8c5194613bfb565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612f36565b0390a46104de6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612ee6575050505090565b835185529381019392810192600101612ed8565b9081518082526020808093019301915f5b828110612f19575050505090565b83516001600160a01b031685529381019392810192600101612f0b565b9496959193612f5860a095612f7693885260c0602089015260c0880190612ec7565b906001600160a01b0380951660408801528682036060880152612efa565b951515608085015216910152565b356107b3816104c2565b356107b38161055e565b903590601e198136030182121561047e570180359067ffffffffffffffff821161047e5760200191813603831361047e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612fe957565b612fcb565b8051821015612c955760209160051b010190565b90821015612c95576113d79160051b810190612f98565b908092918237015f815290565b3d15613050573d9061303782610746565b9161304560405193846106c9565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b9492909361309a926107b3979587526020870152608060408701526080860191613055565b926060818503910152613055565b91909160ff5f5460081c161561047e576130f290610c5a624c4b4063ffffffff1982541617905561086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6040516130fe81610607565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b602060405161312d81610607565b60058152015260ff5f5460081c161561047e5761317c936113629251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c610480556113556147f1565b6104de610c5a77deaddeaddeaddeaddeaddeaddeaddeaddead00000000000077ffffffffffffffffffffffffffffffffffffffff0000000019825416179055565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff808094169116019182116131e957565b6131bd565b96949290916104de9b9a999896949261320e63ffffffff421698896131d1565b985b9593919b999897969492909b613224613806565b61086b549660ff8860e81c16610845578760c01c63ffffffff1661324790613677565b61326e9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b61327661072c565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff166101008701526101208601906132ef919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061331292610762565b6101808201526133219061455f565b6104de6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b168452603483015260548201526054815261336181610675565b51902090565b93929160209161337f91604087526040870191613055565b930152565b9081602091031261047e57604051906020820182811067ffffffffffffffff8211176106235760405235815290565b6107b39161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152613428610120808501519083019063ffffffff169052565b6101408381015163ffffffff169082015281610160809401519382015201906113fc565b613464604092959493956060835260608301906133b3565b9460208201520152565b9c9a9998979695949392919096613483613806565b60ff61086b5460e81c166108455761349c908e3361332b565b96604051809e6134ab82610628565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff166101208601526132ef565b9792909593919694976134f7613806565b60ff61086b5460e01c16612b5c576135126101408201612f8e565b63ffffffff80421691161015806135b0575b612b2b576135996135ab966135916133219b613543610fae36876128e8565b9a61354c6106eb565b9b61355736886128e8565b8d5260208d01528660408d01528760608d0152613575368b84610762565b60808d015260a08c01526135898535613ddc565b983691610762565b953691610762565b9461010060e08301359201359061442d565b6141b7565b506135be6040820135613ddc565b6001600160a01b0316331415613524565b906135d982610a37565b6135e660405191826106c9565b82815280926135f7601f1991610a37565b01905f5b82811061360757505050565b8060606020809385010152016135fb565b60208183031261047e5780519067ffffffffffffffff821161047e570181601f8201121561047e57805161364b81610746565b9261365960405194856106c9565b8184526020828401011161047e576107b391602080850191016113db565b63ffffffff8091169081146131e95760010190565b604051613361816136a960208201946040865260608301906133b3565b46604083015203601f1981018352826106c9565b9190916136c8613806565b60ff61086b5460e01c16612b5c5761014081015163ffffffff428116911610158061373a575b612b2b57613321926136ff8261368c565b60c0830151602084015190610160850151926137196106eb565b958652602086015260408501526060840152608083015260a08201526141b7565b506137486040820151613ddc565b6001600160a01b03163314156136ee565b7342000000000000000000000000000000000000078033036137f457602060049160405192838092636e296e4560e01b82525afa908115610a32575f916137d5575b506001600160a01b036137ba612394610869546001600160a01b031690565b9116036137c357565b6040516336a816d960e01b8152600490fd5b6137ee915060203d602011610a2b57610a1d81836106c9565b5f61379b565b60405163253a6fc960e11b8152600490fd5b60026065541461047e576002606555565b919082039182116131e957565b6040513d5f823e3d90fd5b926107b39695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f6101008201528161012082015201906113fc565b9193949690959660070b906706f05b59d3b2000061389e83614910565b1015613a5e576ec097ce7bc90715b34b9f10000000008411613a4c5763ffffffff936138cc858a1642613817565b857f00000000000000000000000000000000000000000000000000000000000000001610613a3a5761086b5460c01c63ffffffff169861390e61258c8b613677565b6001600160a01b039586807f00000000000000000000000000000000000000000000000000000000000000001698169288841480613a31575b156139f5578034036139e357883b1561047e575f6004996040519a8b8092630d0e30db60e41b825234905af1988915610a32576139b26139c5978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c6139ca575b505b8361495e565b92604051998a99169d169b16938761382f565b0390a4565b806139d76139dd92610645565b80610474565b5f6139aa565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39850876139b26139c597613a2c8430338a61491f565b6139ac565b50341515613947565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261047e57516107b3816104c2565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691168114613abc575b50565b47613ac45750565b4790803b1561047e575f90600460405180948193630d0e30db60e41b83525af18015610a325715613ab9576104de90610645565b6107b39291604051613b8181613b73602082019460208652805160408401526020810151606084015260a0613b3d604083015160c06080870152610100860190612ec7565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612efa565b03601f1981018352826106c9565b51902091614994565b613b95600291612c5b565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b8080941614613bcd575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261047e575190565b919082018092116131e957565b91959495939092935f9681519081815103613dca5781613c7a575b50505082613c25575b50505050565b6001600160a01b0381613c597ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614a57565b6040805195865233602087015291169463ffffffff1693a45f808080613c1f565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610a32575f91613dab575b505f805b868110613cc9575050505050613c16565b613cd38189612fee565b51613ce1575b600101613cb8565b90613cf790613cf0838a612fee565b5190613bee565b90828211613d9b57613d31612dd6613d1f613d12848a612fee565b516001600160a01b031690565b613d29848c612fee565b51908c6149e5565b15613cd9579c5087613d91613d898f613d74613d12613d6d613d53848f612fee565b51966001600160a01b03165f5261087360205260405f2090565b928b612fee565b6001600160a01b03165f5260205260405f2090565b918254613bee565b905560019c613cd9565b50505051632ddaa83160e11b8152fd5b613dc4915060203d6020116112355761122681836106c9565b5f613cb4565b6040516319a5316760e31b8152600490fd5b6001600160a01b0390613dee81614b65565b1690565b91612dd690613e6b92845160408096015191865191613e1083610659565b8252613b81613e2b6020840192468452898501958652612c5b565b5054938851928391613e506020840196602088525160608d86015260a08501906133b3565b9151606084015251608083015203601f1981018352826106c9565b613e725750565b5163582f497d60e11b8152600490fd5b613e8b82612fdf565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613f0e82612fdf565b6101c00152565b906107b394936080936001600160a01b038093168452602084015216604082015281606082015201906113fc565b905f82516101208101613f5a815163ffffffff1690565b63ffffffff429116106141a5576020850151906002613f82835f5261087260205260405f2090565b541461419357613f9c86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613fdb9063ffffffff1690565b61014083015163ffffffff16604084015191845193602086015195610160015161400490614418565b966060890151986080019e8f5161401a90614418565b906040015190614028610739565b9a8b5260208b015260408a0152600260608a01526040519d8e9b61404c9b8d613e8e565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a4608082015161408090613ddc565b906040860151956060015161409490613ddc565b92608001516140a290613ddc565b6001600160a01b03919082167f000000000000000000000000000000000000000000000000000000000000000083160361417e578461416b575b6140e887838616614b80565b51928351151580614161575b614102575b50505050509050565b1690813b1561415d5783614130959660405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a325761414a575b8080808085946140f9565b806139d761415792610645565b5f61413f565b8380fd5b50803b15156140f4565b61417987303385871661491f565b6140dc565b5f945061418e87858585166148c8565b6140e8565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b80519161012083016141cd815163ffffffff1690565b63ffffffff429116106141a557602083015160016141f4825f5261087260205260405f2090565b5403614411576001905b6002614213825f5261087260205260405f2090565b54146141935761422f614235915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720860608601516080870151906143028760a08a0151958a60c08101519760a08401519860e0830151996142926101008501519c5163ffffffff1690565b61014085015163ffffffff16916040860151938651956142f66142be61016060208b01519a0151614418565b9960608c01519b60406142d46080830151614418565b9101519060206142e2610739565b9e8f528e015260408d015260608c01613e82565b6040519c8d9c8d613e8e565b0390a46143126080830151613ddc565b9160408201519160806143348161432c6060850151613ddc565b940151613ddc565b6001600160a01b03929083167f00000000000000000000000000000000000000000000000000000000000000008416036143fe57614376853033868a1661491f565b61438285848616614b80565b01519182511515806143f4575b61439b575b5050505050565b16803b1561047e576143c9935f809460405196879586948593633a5be8cb60e01b8552339160048601613f15565b03925af18015610a32576143e1575b80808080614394565b806139d76143ee92610645565b5f6143d8565b50803b151561438f565b61440c858533868a1661491f565b614382565b5f906141fe565b805190816144265750505f90565b6020012090565b93926042936104de979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c0815261449281610691565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e8552604084015260608301526080820152608081526144e8816106ad565b519020906040519161190160f01b8352600283015260228201522090614dfc565b96926107b39a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e08301526101008201528161012082015201906113fc565b6145698151614b65565b610120810161458861457f825163ffffffff1690565b63ffffffff1690565b8042109081156147b8575b50613a3a576101408201916145ac835163ffffffff1690565b9063ffffffff91826145e0817f00000000000000000000000000000000000000000000000000000000000000001642613bee565b9116116147a65761016081015163ffffffff169180831680614761575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614758575b1561470b57608082015134036139e357823b1561047e575f60049360405194858092630d0e30db60e41b825234905af1928315610a32577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3936146f8575b505b516139c560608301519260808101519060a081015160c0820151976146d76146cc6101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614509565b806139d761470592610645565b5f614698565b9150346139e357816147536147446123947f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39551613ddc565b6080840151903090339061491f565b61469a565b5034151561463a565b6301e133801015614791575b5060e08101511561477f575f806145fd565b60405163495d907f60e01b8152600490fd5b9161479f91924216906131d1565b905f61476d565b60405163582e388960e01b8152600490fd5b6147c3915042613817565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f614593565b60ff5f5460081c161561047e57565b60ff5f5460081c161561047e576001606555565b6001600160a01b0316801561485c57610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156148b65761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104de9161490b82606481015b03601f1981018452836106c9565b614eda565b5f811261491a5790565b5f0390565b90926104de93604051936323b872dd60e01b60208601526001600160a01b03809216602486015216604484015260648301526064825261490b826106ad565b90670de0b6b3a7640000915f8284039212838312811690848413901516176131e9578181029181830414901517156131e9570490565b929091905f915b84518310156149dd576149ae8386612fee565b5190818110156149cc575f52602052600160405f205b92019161499b565b905f52602052600160405f206149c4565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f91614a218160648101613b73565b519082855af1903d5f519083614a38575b50505090565b91925090614a4d57503b15155b5f8080614a32565b6001915014614a45565b907f0000000000000000000000000000000000000000000000000000000000000000906001600160a01b03808316818316149081614b3a575b5015614b2f575081614aa1916152d3565b61086a546001600160a01b0316610c5a5463ffffffff16738be79275fcfd08a931087ecf70ba8a99aee3ac59803b1561047e5760405163262cc5ab60e11b81526001600160a01b039093166004840152602483019390935263ffffffff166044820152905f908290818381606481015b03925af18015610a3257614b225750565b806139d76104de92610645565b90506104de91614f6a565b90507f000000000000000000000000000000000000000000000000000000000000000016155f614a90565b60a01c614b6e57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614c3e575b15614c1157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561047e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610a32576104de93614bfe575b5061543d565b806139d7614c0b92610645565b5f614bf8565b906104de93507f0000000000000000000000000000000000000000000000000000000000000000166148c8565b50803b614c4a81610746565b614c5760405191826106c9565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614c8a575b50501661ef0160f01b14614b96565b829350829060030360031b1b1616905f80614c7b565b614ca981614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614d61575b614cea575050565b5f80613ab9937f206661696c65640000000000000000000000000000000000000000000000000060408051614d1e81610659565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614d5b613026565b91615763565b505f614ce2565b614d7181614db9565b6001600160a01b0381167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614db157614cea575050565b506001614ce2565b803b1561047e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614e068383615712565b6005819592951015612fe957159384614ec4575b508315614e3e575b50505015614e2c57565b60405163938a182160e01b8152600490fd5b5f929350908291604051614e7681613b736020820194630b135d3f60e11b998a875260248401526040604484015260648301906113fc565b51915afa90614e83613026565b82614eb6575b82614e99575b50505f8080614e22565b614eae91925060208082518301019101613bdf565b145f80614e8f565b915060208251101591614e89565b6001600160a01b0383811691161493505f614e1a565b905f806001600160a01b03614f319416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614f1a81610607565b818152015260208151910182855af1614d5b613026565b8051908115918215614f47575b50501561047e57565b819250906020918101031261047e5760200151614f6381611bc9565b5f80614f3e565b906001600160a01b0390818116907f00000000000000000000000000000000000000000000000000000000000000008316820361507d5750803b1561047e57604051632e1a7d4d60e01b815260048101849052905f908290602490829084905af18015610a325761506a575b50610c5a5491614fef61086a546001600160a01b031690565b73420000000000000000000000000000000000001090813b1561047e57604051631474f2a960e31b81526001600160a01b03602087901c90951685166004820152931660248401526044830182905263ffffffff909316606483015260a060848301525f60a483018190529192839182908160c48101614b11565b806139d761507792610645565b5f614fd6565b91807f0000000000000000000000000000000000000000000000000000000000000000161515806152a8575b156150cd575050506104de906150c861086a546001600160a01b031690565b615465565b806150fa6150ed856001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16615284577342000000000000000000000000000000000000105b16906151396123946150ed856001600160a01b03165f52610c5d60205260405f2090565b156151fe57838261514992615390565b6151686150ed836001600160a01b03165f52610c5d60205260405f2090565b9061517c61086a546001600160a01b031690565b9161518d610c5a5463ffffffff1690565b823b1561047e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829060e490829084905af18015610a3257614b225750565b509161521361086a546001600160a01b031690565b92615224610c5a5463ffffffff1690565b93813b1561047e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614b11565b6152a36150ed846001600160a01b03165f52610c5c60205260405f2090565b615115565b50807f00000000000000000000000000000000000000000000000000000000000000001682146150a9565b604051636eb1769f60e11b8152306004820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015290916020826044816001600160a01b0387165afa918215610a32575f9261536f575b5081018091116131e95760405163095ea7b360e01b6020820152738be79275fcfd08a931087ecf70ba8a99aee3ac59602482015260448101919091526104de9161490b82606481016148fd565b61538991925060203d6020116112355761122681836106c9565b905f615322565b604051636eb1769f60e11b81523060048201526001600160a01b03831660248201529192602083806044810103816001600160a01b0386165afa928315610a32575f9361541c575b5082018092116131e95760405163095ea7b360e01b60208201526001600160a01b03909316602484015260448301919091526104de919061490b82606481016148fd565b61543691935060203d6020116112355761122681836106c9565b915f6153d8565b81471061047e575f8080936001600160a01b038294165af161545d613026565b501561047e57565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f000000000000000000000000000000000000000000000000000000000000000016936154c2848685615390565b604094604051926332dd704760e21b84526020956004948781600481875afa968715610a325788915f986156f1575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610a32575f966156d2575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b61556257505050505050505050565b868111156156cc57865b881561562457843b1561047e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af1928315610a325761560b93615611575b50613817565b80615553565b806139d761561e92610645565b5f615605565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af1928315610a325761560b9361569f5750613817565b6156be90853d87116156c5575b6156b681836106c9565b810190615743565b505f615605565b503d6156ac565b8061556c565b6156ea919650873d89116112355761122681836106c9565b945f61552d565b8691985061570b90833d8511610a2b57610a1d81836106c9565b97906154f1565b9060418151145f1461573a576113d791602082015190606060408401519301515f1a9061578c565b50505f90600290565b9081602091031261047e575167ffffffffffffffff8116810361047e5790565b901561577d57815115615774575090565b3b1561047e5790565b50805190811561047e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116157fc576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610a32575f516001600160a01b038116156157f457905f90565b505f90600190565b505050505f9060039056fea2646970667358221220f59bcf0c28187cdbafecfda3d2d671815535ec616f2aa03d3171587a43f29d0164736f6c6343000817003300000000000000000000000042000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460000000000000000000000000ba9986d2381edf1da03b0b9c1f8b00dc4aacc3690000000000000000000000000000000000000000000000000000000000000000", + "nonce": "0x2f", + "chainId": "0x74c" + }, + "additionalContracts": [], + "isFixedGasLimit": false + } + ], + "receipts": [ + { + "status": "0x1", + "cumulativeGasUsed": "0x712d15", + "logs": [ + { + "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], + "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", + "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", + "blockNumber": "0xaf8ae3", + "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionIndex": "0x5", + "logIndex": "0x0", + "removed": false + } + ], + "logsBloom": "0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000400000000000000000000000000000000000000400000000000000000000000040000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000", + "type": "0x2", + "transactionHash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "transactionIndex": "0x5", + "blockHash": "0xe19dce206adaf830b855c9b277f8b6d410d01eb075fadb5aaa828e94cf50615b", + "blockNumber": "0xaf8ae3", + "gasUsed": "0x4bc1f8", + "effectiveGasPrice": "0x2951", + "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", + "to": null, + "contractAddress": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "l1BaseFeeScalar": "0x2608", + "l1BlobBaseFee": "0x1", + "l1BlobBaseFeeScalar": "0x177fef", + "l1Fee": "0xe48e8d678e", + "l1GasPrice": "0x1d19b4f2", + "l1GasUsed": "0x326b4" + } + ], + "libraries": [], + "pending": [], + "returns": {}, + "timestamp": 1756143516, + "chain": 1868, + "commit": "a6daa38e" +} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 2f8f90afa..25ff17e61 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -345,9 +345,9 @@ "chain_name": "Lens", "contracts": { "SpokePool": { - "address": "0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12", - "transaction_hash": "Unknown", - "block_number": 193290 + "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "block_number": 4092265 }, "MulticallHandler": { "address": "0xc5939F59b3c9662377DdA53A08D5085b2d52b719", @@ -420,9 +420,9 @@ "chain_name": "Redstone", "contracts": { "SpokePool": { - "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", - "transaction_hash": "Unknown", - "block_number": 5512122 + "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "transaction_hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "block_number": 21978768 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -500,9 +500,9 @@ "chain_name": "Soneium", "contracts": { "SpokePool": { - "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", - "transaction_hash": "Unknown", - "block_number": 1709997 + "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "transaction_hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "block_number": 11504355 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -570,9 +570,9 @@ "chain_name": "Mode", "contracts": { "SpokePool": { - "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", - "transaction_hash": "Unknown", - "block_number": 8043187 + "address": "0xc49226858478de8757e425661b1b5297102330d7", + "transaction_hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "block_number": 27988148 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index 1904e98c4..c2409f4eb 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -414,6 +414,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` +### 059DeployLensSpokePool.s.sol + +- **SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` + - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` + - Block Number: `4092265` + ### Boba (Chain ID: 288) #### SpokePool @@ -494,6 +500,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` +### 047DeployRedstoneSpokePool.s.sol + +- **SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` + - Transaction Hash: `0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166` + - Block Number: `21978768` + ### Lisk (Chain ID: 1135) #### SpokePool @@ -546,6 +558,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `8910059` +### 060DeployCherSpokePool.s.sol + +- **SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` + - Transaction Hash: `0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f` + - Block Number: `11504355` + ### Base (Chain ID: 8453) #### SpokePool @@ -604,6 +622,12 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `25393939` +### 039DeployModeSpokePool.s.sol + +- **SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` + - Transaction Hash: `0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b` + - Block Number: `27988148` + ### Aleph Zero (Chain ID: 41455) #### SpokePool diff --git a/script/039DeployModeSpokePool.s.sol b/script/039DeployModeSpokePool.s.sol index db3f3e831..01bda99a9 100644 --- a/script/039DeployModeSpokePool.s.sol +++ b/script/039DeployModeSpokePool.s.sol @@ -12,7 +12,9 @@ import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; // 1. `source .env` where `.env` has MNEMONIC="x x x ... x" // 2. forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url $NODE_URL_1 -vvvv // 3. Verify the above works in simulation mode. -// 4. Deploy with: forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url $NODE_URL_1 --broadcast --verify +// 4. Deploy with: +// forge script script/039DeployModeSpokePool.s.sol:DeployModeSpokePool --rpc-url \ +// $NODE_URL_1 --broadcast --verify --verifier blockscout --verifier-url https://explorer.mode.network/api contract DeployModeSpokePool is Script, Test, DeploymentUtils { function run() external { diff --git a/script/059DeployLensSpokePool.s.sol b/script/059DeployLensSpokePool.s.sol index 2f9368a48..ba8e3c873 100644 --- a/script/059DeployLensSpokePool.s.sol +++ b/script/059DeployLensSpokePool.s.sol @@ -28,7 +28,7 @@ contract DeployLensSpokePool is Script, Test, DeploymentUtils { console.log("HubPool address:", info.hubPool); // Get the appropriate addresses for this chain - WETH9Interface wgho = getWrappedNativeToken(info.spokeChainId); + address wgho = getWghoAddress(info.spokeChainId); // Get L2 addresses for Lens address zkErc20Bridge = getL2Address(info.spokeChainId, "zkErc20Bridge"); @@ -50,7 +50,7 @@ contract DeployLensSpokePool is Script, Test, DeploymentUtils { // Prepare constructor arguments for Lens_SpokePool bytes memory constructorArgs = abi.encode( - address(wgho), // _wrappedNativeTokenAddress + wgho, // _wrappedNativeTokenAddress usdcAddress, // _circleUSDC zkUSDCBridge, // _zkUSDCBridge cctpTokenMessenger, // _cctpTokenMessenger diff --git a/script/060DeployCherSpokePool.s.sol b/script/060DeployCherSpokePool.s.sol index 3bf676375..439e2d705 100644 --- a/script/060DeployCherSpokePool.s.sol +++ b/script/060DeployCherSpokePool.s.sol @@ -12,7 +12,9 @@ import { DeploymentUtils } from "./utils/DeploymentUtils.sol"; // 1. `source .env` where `.env` has MNEMONIC="x x x ... x" // 2. forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url $NODE_URL_1 -vvvv // 3. Verify the above works in simulation mode. -// 4. Deploy with: forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url $NODE_URL_1 --broadcast --verify +// 4. Deploy with: +// forge script script/060DeployCherSpokePool.s.sol:DeployCherSpokePool --rpc-url \ +// $NODE_URL_1 --broadcast --verify --verifier blockscout --verifier-url https://soneium.blockscout.com/api contract DeployCherSpokePool is Script, Test, DeploymentUtils { function run() external { diff --git a/script/utils/Constants.sol b/script/utils/Constants.sol index e3d7d2f7e..e36eea8f2 100644 --- a/script/utils/Constants.sol +++ b/script/utils/Constants.sol @@ -295,6 +295,17 @@ contract Constants is Script { return vm.parseJsonAddress(file, jsonPath); } + /** + * @notice Get WGHO address for the given chain + * @param chainId The chain ID to get WGHO address for + * @return The WGHO address + */ + function getWghoAddress(uint256 chainId) public view returns (address) { + string memory chainName = _getChainName(chainId); + string memory jsonPath = string(abi.encodePacked(".wghoAddresses.", chainName)); + return vm.parseJsonAddress(file, jsonPath); + } + function getOftEid(uint256 chainId) public view returns (uint256) { string memory chainName = _getChainName(chainId); return vm.parseJsonUint(file, string.concat(".oftEids.", chainName)); diff --git a/script/utils/constants.json b/script/utils/constants.json index d91c84a1d..12b7d3539 100644 --- a/script/utils/constants.json +++ b/script/utils/constants.json @@ -401,6 +401,10 @@ "SONEIUM": "0xbA9986D2381edf1DA03B0B9c1f8b00dc4AacC369", "ZK_SYNC": "0x3355df6D4c9C3035724Fd0e3914dE96A5a83aaf4" }, + "wghoAddresses": { + "LENS": "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", + "MAINNET": "0x1ff1dC3cB9eeDbC6Eb2d99C03b30A05cA625fB5a" + }, "otherConstants": { "ZERO_ADDRESS": "0x0000000000000000000000000000000000000000000000" } From fae7423b660d0519eb2e586e0d28aabf1790a204 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Tue, 26 Aug 2025 11:23:42 -0400 Subject: [PATCH 11/16] Fixed addresses extraction contract labelling Signed-off-by: Faisal Usmani --- broadcast/deployed-addresses.json | 88 ++++++++++++++----- broadcast/deployed-addresses.md | 40 +++++---- .../utils/ExtractDeployedFoundryAddresses.ts | 6 +- 3 files changed, 91 insertions(+), 43 deletions(-) diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 25ff17e61..3d9dfbd1e 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -345,9 +345,9 @@ "chain_name": "Lens", "contracts": { "SpokePool": { - "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "block_number": 4092265 + "address": "0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12", + "transaction_hash": "Unknown", + "block_number": 193290 }, "MulticallHandler": { "address": "0xc5939F59b3c9662377DdA53A08D5085b2d52b719", @@ -358,6 +358,11 @@ "address": "0x8A8cA9c4112c67b7Dae7dF7E89EA45D592362107", "transaction_hash": "Unknown", "block_number": 2884429 + }, + "Lens_SpokePool": { + "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", + "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", + "block_number": 4092265 } } }, @@ -420,9 +425,9 @@ "chain_name": "Redstone", "contracts": { "SpokePool": { - "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", - "transaction_hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", - "block_number": 21978768 + "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", + "transaction_hash": "Unknown", + "block_number": 5512122 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -438,6 +443,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 16783149 + }, + "Redstone_SpokePool": { + "address": "0x78d8cb7284b14c123a2e81a3246494e8dad873e4", + "transaction_hash": "0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166", + "block_number": 21978768 } } }, @@ -500,9 +510,9 @@ "chain_name": "Soneium", "contracts": { "SpokePool": { - "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", - "transaction_hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", - "block_number": 11504355 + "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "transaction_hash": "Unknown", + "block_number": 1709997 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -518,6 +528,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 8910059 + }, + "Cher_SpokePool": { + "address": "0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a", + "transaction_hash": "0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f", + "block_number": 11504355 } } }, @@ -570,9 +585,9 @@ "chain_name": "Mode", "contracts": { "SpokePool": { - "address": "0xc49226858478de8757e425661b1b5297102330d7", - "transaction_hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", - "block_number": 27988148 + "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "transaction_hash": "Unknown", + "block_number": 8043187 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -588,6 +603,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 25393939 + }, + "Mode_SpokePool": { + "address": "0xc49226858478de8757e425661b1b5297102330d7", + "transaction_hash": "0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b", + "block_number": 27988148 } } }, @@ -665,9 +685,9 @@ "chain_name": "Ink", "contracts": { "SpokePool": { - "address": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", - "transaction_hash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", - "block_number": 22643750 + "address": "0xeF684C38F94F48775959ECf2012D7E864ffb9dd4", + "transaction_hash": "Unknown", + "block_number": 1139240 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -683,6 +703,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 17456376 + }, + "Ink_SpokePool": { + "address": "0x5be04e53b465c6fd89ecff3d36ddf666d198e31a", + "transaction_hash": "0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667", + "block_number": 22643750 } } }, @@ -735,9 +760,9 @@ "chain_name": "Blast", "contracts": { "SpokePool": { - "address": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", - "transaction_hash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", - "block_number": 23665884 + "address": "0x2D509190Ed0172ba588407D4c2df918F955Cc6E1", + "transaction_hash": "Unknown", + "block_number": 5574280 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -753,6 +778,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 21071991 + }, + "Blast_SpokePool": { + "address": "0xfcb6f77112951e1995d37542b519fe0a85a1aa77", + "transaction_hash": "0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0", + "block_number": 23665884 } } }, @@ -815,9 +845,9 @@ "chain_name": "Scroll", "contracts": { "SpokePool": { - "address": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", - "transaction_hash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", - "block_number": 20085960 + "address": "0x3baD7AD0728f9917d1Bf08af5782dCbD516cDd96", + "transaction_hash": "Unknown", + "block_number": 7489705 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -833,6 +863,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 16783149 + }, + "Scroll_SpokePool": { + "address": "0x9fda59848900a9c93b7dd9341312a292df8fcdc8", + "transaction_hash": "0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e", + "block_number": 20085960 } } }, @@ -855,9 +890,9 @@ "chain_name": "Zora", "contracts": { "SpokePool": { - "address": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", - "transaction_hash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", - "block_number": 34724058 + "address": "0x13fDac9F9b4777705db45291bbFF3c972c6d1d97", + "transaction_hash": "Unknown", + "block_number": 18382867 }, "SpokePoolVerifier": { "address": "0x3Fb9cED51E968594C87963a371Ed90c39519f65A", @@ -873,6 +908,11 @@ "address": "0x89415a82d909a7238d69094C3Dd1dCC1aCbDa85C", "transaction_hash": "Unknown", "block_number": 32130332 + }, + "Zora_SpokePool": { + "address": "0x40ad479382ad2a5c3061487a5094a677b00f6cb0", + "transaction_hash": "0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb", + "block_number": 34724058 } } }, diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index c2409f4eb..fab594be0 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -230,8 +230,16 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `22789839` +<<<<<<< HEAD + #### DeployPermissionSplitterProxy.s.sol +======= + +### PermissionSplitterProxy + +> > > > > > > 06e3ac2d (Fixed addresses extraction contract labelling) + - **PermissionSplitterProxy**: `0x0Bf07B2e415F02711fFBB32491f8ec9e5489B2e7` - Transaction Hash: `0xa2a7b2c6812fb8ae34539fb04cd5f2a9112da1c7f6ffce0ddcf1fee7e43acf48` - Block Number: `19084679` @@ -414,9 +422,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` -### 059DeployLensSpokePool.s.sol +### Lens_SpokePool -- **SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` +- **Lens_SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` - Block Number: `4092265` @@ -500,9 +508,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -### 047DeployRedstoneSpokePool.s.sol +### Redstone_SpokePool -- **SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` +- **Redstone_SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` - Transaction Hash: `0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166` - Block Number: `21978768` @@ -558,9 +566,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `8910059` -### 060DeployCherSpokePool.s.sol +### Cher_SpokePool -- **SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` +- **Cher_SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` - Transaction Hash: `0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f` - Block Number: `11504355` @@ -622,9 +630,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `25393939` -### 039DeployModeSpokePool.s.sol +### Mode_SpokePool -- **SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` +- **Mode_SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` - Transaction Hash: `0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b` - Block Number: `27988148` @@ -712,9 +720,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `17456376` -### 057DeployInkSpokePool.s.sol +### Ink_SpokePool -- **SpokePool**: `0x5be04e53b465c6fd89ecff3d36ddf666d198e31a` +- **Ink_SpokePool**: `0x5be04e53b465c6fd89ecff3d36ddf666d198e31a` - Transaction Hash: `0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667` - Block Number: `22643750` @@ -770,9 +778,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `21071991` -### 036DeployBlastSpokePool.s.sol +### Blast_SpokePool -- **SpokePool**: `0xfcb6f77112951e1995d37542b519fe0a85a1aa77` +- **Blast_SpokePool**: `0xfcb6f77112951e1995d37542b519fe0a85a1aa77` - Transaction Hash: `0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0` - Block Number: `23665884` @@ -802,9 +810,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -### 027DeployScrollSpokePool.s.sol +### Scroll_SpokePool -- **SpokePool**: `0x9fda59848900a9c93b7dd9341312a292df8fcdc8` +- **Scroll_SpokePool**: `0x9fda59848900a9c93b7dd9341312a292df8fcdc8` - Transaction Hash: `0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e` - Block Number: `20085960` @@ -834,9 +842,9 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `32130332` -### 049DeployZoraSpokePool.s.sol +### Zora_SpokePool -- **SpokePool**: `0x40ad479382ad2a5c3061487a5094a677b00f6cb0` +- **Zora_SpokePool**: `0x40ad479382ad2a5c3061487a5094a677b00f6cb0` - Transaction Hash: `0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb` - Block Number: `34724058` diff --git a/script/utils/ExtractDeployedFoundryAddresses.ts b/script/utils/ExtractDeployedFoundryAddresses.ts index e19ea2cde..49d35d89e 100644 --- a/script/utils/ExtractDeployedFoundryAddresses.ts +++ b/script/utils/ExtractDeployedFoundryAddresses.ts @@ -359,8 +359,8 @@ function generateAddressesFile(broadcastFiles: BroadcastFile[], outputFile: stri content.push(""); for (const [scriptName, contracts] of Object.entries(chainInfo.scripts)) { - const name = contracts.length > 1 ? contracts[0].contractName : scriptName; - content.push(`#### ${name}`); + const name = contracts.length > 0 ? contracts[0].contractName : scriptName; + content.push(`### ${name}`); content.push(""); for (const contract of contracts) { @@ -373,7 +373,7 @@ function generateAddressesFile(broadcastFiles: BroadcastFile[], outputFile: stri } } - content.push(""); + // content.push(""); } // Generate JSON format as well From 738951c0e7ee19e5e31948ee7ad7cb436559f90d Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Tue, 26 Aug 2025 13:19:29 -0400 Subject: [PATCH 12/16] Removed commended out line Signed-off-by: Faisal Usmani --- script/utils/ExtractDeployedFoundryAddresses.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/utils/ExtractDeployedFoundryAddresses.ts b/script/utils/ExtractDeployedFoundryAddresses.ts index 49d35d89e..c8b943f1d 100644 --- a/script/utils/ExtractDeployedFoundryAddresses.ts +++ b/script/utils/ExtractDeployedFoundryAddresses.ts @@ -372,8 +372,6 @@ function generateAddressesFile(broadcastFiles: BroadcastFile[], outputFile: stri content.push(""); } } - - // content.push(""); } // Generate JSON format as well From 54538c46d5bc9a047ba8b9515f89696768b12b33 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Wed, 27 Aug 2025 14:55:17 -0400 Subject: [PATCH 13/16] Format the script Signed-off-by: Faisal Usmani --- scripts/veryfyBytecode.sh | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/scripts/veryfyBytecode.sh b/scripts/veryfyBytecode.sh index 3cfb20fa4..b77aaa4f3 100755 --- a/scripts/veryfyBytecode.sh +++ b/scripts/veryfyBytecode.sh @@ -1,5 +1,13 @@ #!/bin/bash +# This script verifies the bytecode of a contract onchain matches the bytecode in the artifact +# It takes the following arguments: +# 1. The transaction hash of the contract deployment +# 2. The RPC URL to use +# 3. The name of the contract + +# Note that this script doesn't take into account any link libraries that are used in the contract + args=("$@") if [ ${#args[@]} -ne 3 ]; then @@ -12,27 +20,18 @@ RPC=${args[1]} CONTRACT_NAME=${args[2]} ONCHAIN=$(cast tx $TX --rpc-url $RPC --json | jq -r '.input' | sed 's/^0x//') -echo "$ONCHAIN" > onchain_creation.hex ART=out/$CONTRACT_NAME.sol/$CONTRACT_NAME.json CREATION=$(jq -r '.bytecode.object' "$ART" | sed 's/^0x//') -TAIL=${ONCHAIN:${#CREATION}} CODE_ONCHAIN=${ONCHAIN:0:${#CREATION}} - - cast keccak $CODE_ONCHAIN cast keccak $CREATION -if [[ $CODE_ONCHAIN == $CREATION ]]; then - echo "✅ Code match"; -else - echo "❌ Code mismatch"; +if [[ $CODE_ONCHAIN == $CREATION ]]; then + echo "✅ Code match" +else + echo "❌ Code mismatch" fi - - - - - From 42a40661ca3cddc8c4ff2667f9e97fe22e03cb2d Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Fri, 29 Aug 2025 17:13:31 -0400 Subject: [PATCH 14/16] Add the extra # back Signed-off-by: Faisal Usmani --- broadcast/deployed-addresses.json | 2 +- broadcast/deployed-addresses.md | 28 +++++++------------ .../utils/ExtractDeployedFoundryAddresses.ts | 2 +- 3 files changed, 12 insertions(+), 20 deletions(-) diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 3d9dfbd1e..2962d68b8 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -1,5 +1,5 @@ { - "generated_at": "2025-08-29T20:35:33.826Z", + "generated_at": "2025-08-29T21:11:26.297Z", "chains": { "1": { "chain_name": "Mainnet", diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index fab594be0..f7b2fc5bb 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -1,6 +1,6 @@ # Deployed Contract Addresses -Generated on: 2025-08-29T20:35:33.825Z +Generated on: 2025-08-29T21:11:26.295Z This file contains the latest deployed smart contract addresses from the broadcast folder. @@ -230,15 +230,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `22789839` -<<<<<<< HEAD - -#### DeployPermissionSplitterProxy.s.sol - -======= - -### PermissionSplitterProxy - -> > > > > > > 06e3ac2d (Fixed addresses extraction contract labelling) +#### PermissionSplitterProxy - **PermissionSplitterProxy**: `0x0Bf07B2e415F02711fFBB32491f8ec9e5489B2e7` - Transaction Hash: `0xa2a7b2c6812fb8ae34539fb04cd5f2a9112da1c7f6ffce0ddcf1fee7e43acf48` @@ -422,7 +414,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` -### Lens_SpokePool +#### Lens_SpokePool - **Lens_SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` @@ -508,7 +500,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -### Redstone_SpokePool +#### Redstone_SpokePool - **Redstone_SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` - Transaction Hash: `0xa57c46d87a2f441460948eee80f1301db9881360e82158d1dae50e73f3d32166` @@ -566,7 +558,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `8910059` -### Cher_SpokePool +#### Cher_SpokePool - **Cher_SpokePool**: `0x48e687205d3962c43891b8cde5a4fe75fa6c8d7a` - Transaction Hash: `0x5e126b5845bf4425d053febf06089e7c02411ee3edf7df6ffa888bc530d85c7f` @@ -630,7 +622,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `25393939` -### Mode_SpokePool +#### Mode_SpokePool - **Mode_SpokePool**: `0xc49226858478de8757e425661b1b5297102330d7` - Transaction Hash: `0x0c14a2fadf82090979edd310e414ba7c7da3558ef1283ad2ec762f0093b5839b` @@ -720,7 +712,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `17456376` -### Ink_SpokePool +#### Ink_SpokePool - **Ink_SpokePool**: `0x5be04e53b465c6fd89ecff3d36ddf666d198e31a` - Transaction Hash: `0x4be0cb8bd16c8541998b7fb4fe7fb93fb453af9edf96dcdef7c2b48f5f134667` @@ -778,7 +770,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `21071991` -### Blast_SpokePool +#### Blast_SpokePool - **Blast_SpokePool**: `0xfcb6f77112951e1995d37542b519fe0a85a1aa77` - Transaction Hash: `0x36ddae4eb4e86aab7bcead1e4e18dab4ac19b2e6facdcbc363df0b2f37e2eea0` @@ -810,7 +802,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -### Scroll_SpokePool +#### Scroll_SpokePool - **Scroll_SpokePool**: `0x9fda59848900a9c93b7dd9341312a292df8fcdc8` - Transaction Hash: `0xe052d93c759370f20c1c3b0212a149a7207c0ea31bb2967e5cf3753f497d736e` @@ -842,7 +834,7 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `32130332` -### Zora_SpokePool +#### Zora_SpokePool - **Zora_SpokePool**: `0x40ad479382ad2a5c3061487a5094a677b00f6cb0` - Transaction Hash: `0x095f04a9587bad2fabfa5f0a40bb1e2b3481ad5a8904b33a9abd8ac4e0332deb` diff --git a/script/utils/ExtractDeployedFoundryAddresses.ts b/script/utils/ExtractDeployedFoundryAddresses.ts index c8b943f1d..c780cc25e 100644 --- a/script/utils/ExtractDeployedFoundryAddresses.ts +++ b/script/utils/ExtractDeployedFoundryAddresses.ts @@ -360,7 +360,7 @@ function generateAddressesFile(broadcastFiles: BroadcastFile[], outputFile: stri for (const [scriptName, contracts] of Object.entries(chainInfo.scripts)) { const name = contracts.length > 0 ? contracts[0].contractName : scriptName; - content.push(`### ${name}`); + content.push(`#### ${name}`); content.push(""); for (const contract of contracts) { From 9fe5920d39c54ffd41b42cf1192b668d185e7f72 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Tue, 9 Sep 2025 17:18:36 -0400 Subject: [PATCH 15/16] Updated deployed address json/md Signed-off-by: Faisal Usmani --- .../232/run-latest.json | 194 ------------------ broadcast/deployed-addresses.json | 19 +- broadcast/deployed-addresses.md | 20 +- 3 files changed, 14 insertions(+), 219 deletions(-) delete mode 100644 broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json diff --git a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json b/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json deleted file mode 100644 index e0e989e60..000000000 --- a/broadcast/059DeployLensSpokePool.s.sol/232/run-latest.json +++ /dev/null @@ -1,194 +0,0 @@ -{ - "transactions": [ - { - "hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionType": "CREATE", - "contractName": "Lens_SpokePool", - "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "function": null, - "arguments": [ - "0x6bDc36E20D267Ff0dd6097799f82e78907105e2F", - "0x88F08E304EC4f90D644Cec3Fb69b8aD414acf884", - "0x7188B6975EeC82ae914b6eC7AC32b3c9a18b2c81", - "0x0000000000000000000000000000000000000000", - "3600", - "21600" - ], - "transaction": { - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "gas": "0x250b081", - "value": "0x0", - "input": "0x6101e0604081815234620003255760c082620056c9803803809162000025828562000329565b833981010312620003255781516001600160a01b038082169291839003620003255760209081850151818116918282036200032557848701519481861680870362000325576060890151948386169081870362000325576200009860a06200009060808e016200034d565b9c016200034d565b99306080525f60c0525f60a05260e0526101009a8b52610120998a525f5460ff8160081c16620003255760ff80821603620002ec575b506101609586526101809687525f610140908152845163011a412160e61b8a8201908152600482529196916001600160401b0391908188019083821183831017620002ce575f9283928a525190875afa993d15620002e2573d918211620002ce5786519162000147601f8201601f191683018462000329565b82523d5f8284013e5b8a620002c2575b8a6200028d575b5050506101a09788526200026c575b50506101c09586525195615369978862000360893960805188818161104c015281816113c40152611476015260a051886116df015260c05188611798015260e0518881816107d6015281816134c90152818161363d01528181613c6e01528181613f000152818161442e015281816148ce01528181614b0e0152614b8901525187818161167e0152818161347d01526145e701525186818161044e01526143d701525185818161175801528181614ff2015261509d015251848181610779015281816149b50152614ed3015251838181611c77015281816149de0152614ef601525182818161188b0152614f920152518181816110e50152614a270152f35b159015146200027d575f806200016d565b51635110d79160e01b8152600490fd5b909192995080825192015191818110620002b1575b5050161515965f80806200015e565b5f19910360031b1b165f80620002a2565b815181149a5062000157565b634e487b7160e01b5f52604160045260245ffd5b6060915062000150565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249888855160ff8152a15f620000ce565b5f80fd5b601f909101601f19168101906001600160401b03821190821017620002ce57604052565b519063ffffffff82168203620003255756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f00000000000000000000000000000000000000000000000000000000000000001680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f000000000000000000000000000000000000000000000000000000000000000016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f000000000000000000000000000000000000000000000000000000000000000016981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000000000000000000000000000000000000000000000831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000000000000000000000000000000000000000000000841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000000000164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000000000000000000000000000000000000000000000811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f000000000000000000000000000000000000000000000000000000000000000081168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000000000000000000000000000000000000000000000168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f00000000000000000000000000000000000000000000000000000000000000001691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000000000000000000000000000000000000000000000166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f000000000000000000000000000000000000000000000000000000000000000090837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c634300081700330000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf8840000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c8100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000e100000000000000000000000000000000000000000000000000000000000005460", - "nonce": "0xd5", - "chainId": "0xe8" - }, - "additionalContracts": [], - "isFixedGasLimit": false - } - ], - "receipts": [ - { - "status": "0x1", - "cumulativeGasUsed": "0x0", - "logs": [ - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "0x0000000000000000000000000000000000000000000000000000000000008001" - ], - "data": "0x00000000000000000000000000000000000000000000000002fce17e6fe35285", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x0", - "removed": false - }, - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000008001", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" - ], - "data": "0x000000000000000000000000000000000000000000000000017e70bf391a0183", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x1", - "removed": false - }, - { - "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "topics": ["0x7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498"], - "data": "0x00000000000000000000000000000000000000000000000000000000000000ff", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x2", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008008", - "topics": ["0x27fe8c0b49f49507b9d4fe5968c9f49edfe5c9df277d433a07a0717ede97638d"], - "data": "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000007e30000000000000000000000000000000000000000000000000000000000008008000000000000000000000000000000000000000000000000000000000000800477543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x3", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008008", - "topics": [ - "0x3a36e47291f4201faf137fab081d92295bce2d53be2c6ca68ba82c7faa9ce241", - "0x0000000000000000000000000000000000000000000000000000000000008004", - "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" - ], - "data": "0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000053a06080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461041f5780630cb84d9a1461041a5780631186ec331461041557806311eac8551461041057806315348e44146103a257806317fcb39b1461040b57806319c1648c146104065780631b3d5559146104015780631fab657c146103fc57806329cb924d146103f75780632e378115146103f25780632e63e59a146103ed5780633659cfe6146103e85780633a90dc85146103e3578063437b9116146103de578063490e49ef146103d9578063493a4f84146103d45780634f1ef286146103cf5780635285e058146103ca57806352d1902d146103c5578063541f4f14146103c0578063577f51f8146103bb57806357f6dcb8146103b65780636068d6cb146103b157806361a04d30146103ac578063670fa8ac146103a75780636bbbcd2e146103a25780636e4009831461039d5780636fd5c10e14610398578063738b62e514610393578063775c0d031461038e5780637aef642c146103895780637b939232146103845780637ef413e11461037f57806382e2c43f1461037a5780638a7860ce146103755780638b15788e146103705780639748cf7c1461036b57806397943aa914610366578063979f2bc21461036157806399cc29681461035c5780639a8a059214610357578063a1244c6714610352578063a18a096e1461034d578063ac9650d814610348578063ad5425c614610343578063adb5a6a6146102f3578063b370b7f51461033e578063b4c0d7ab14610339578063babb6aac14610334578063bb3e04b51461032f578063c35c83fc1461032a578063cd44141f14610325578063ceb4c98714610320578063d7e1583a1461031b578063dda5211314610316578063ddd224f114610311578063de7eba781461030c578063deff4b2414610307578063e322921114610302578063ea86bd46146102fd578063ee2a53f8146102f8578063f79f29ed146102f3578063fb6bf74c146102ee5763fc8a584f0361000e576129d0565b6128c5565b612254565b612887565b612784565b61275d565b612668565b61261f565b6125f6565b6125d0565b61259a565b6124a0565b612452565b612427565b612400565b612329565b6122fa565b61229b565b612118565b612078565b611f11565b611eea565b611ed0565b611e22565b611d1b565b611c9b565b611c58565b611bda565b611b4a565b611a2f565b6119f8565b611950565b6118b0565b611874565b6117c6565b61177c565b61173c565b61079d565b611702565b6116c8565b6116a2565b611662565b611589565b6114c6565b61145c565b611435565b611381565b6112e1565b6112c3565b6111f6565b6110c6565b611024565b610e2a565b610cca565b610ca1565b610b9f565b610a96565b61081f565b6107b7565b61075a565b6106b9565b610490565b610432565b5f91031261042e57565b5f80fd5b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000005460168152f35b6001600160a01b0381160361042e57565b359061048e82610472565b565b3461042e57602036600319011261042e5760206004356104af81610472565b6001600160a01b038091165f52610874825260405f205416604051908152f35b63ffffffff81160361042e57565b610144359061048e826104cf565b359061048e826104cf565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761052657604052565b6104f6565b6101a0810190811067ffffffffffffffff82111761052657604052565b67ffffffffffffffff811161052657604052565b6060810190811067ffffffffffffffff82111761052657604052565b6080810190811067ffffffffffffffff82111761052657604052565b60e0810190811067ffffffffffffffff82111761052657604052565b60a0810190811067ffffffffffffffff82111761052657604052565b90601f8019910116810190811067ffffffffffffffff82111761052657604052565b6040519060c0820182811067ffffffffffffffff82111761052657604052565b60405190610180820182811067ffffffffffffffff82111761052657604052565b6040519061048e8261052b565b6040519061048e82610578565b67ffffffffffffffff811161052657601f01601f191660200190565b92919261067182610649565b9161067f60405193846105cc565b82948184528183011161042e578281602093845f960137010152565b9080601f8301121561042e578160206106b693359101610665565b90565b61010036600319011261042e576004356106d281610472565b6024356106de81610472565b6084358060070b810361042e5760a435906106f8826104cf565b60c43567ffffffffffffffff811161042e5761071890369060040161069b565b926107216133b4565b60ff61086b5460e81c16610748576107419460643591604435913361342f565b6001606555005b604051630b4cba3160e31b8152600490fd5b3461042e575f36600319011261042e5760206040516001600160a01b037f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf884168152f35b3461042e575f36600319011261042e5760206040515f8152f35b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f168152f35b604090600319011261042e5760043561081281610472565b906024356106b681610472565b3461042e5761082d366107fa565b906001600160a01b03908161111161111160901b018161086954160116330361042e576108586133b4565b81831692831515806108e5575b6108d3576108a490610889836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b60405163a63e8c6b60e01b8152600490fd5b50604051637e062a3560e11b8152602081600481885afa908115610946575f91610917575b5083168284161415610865565b610939915060203d60201161093f575b61093181836105cc565b81019061361e565b5f61090a565b503d610927565b6133d2565b67ffffffffffffffff81116105265760051b60200190565b9080601f8301121561042e57602090823561097d8161094b565b9361098b60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b8282106109b4575050505090565b813581529083019083016109a6565b9080601f8301121561042e5760209082356109dd8161094b565b936109eb60405195866105cc565b81855260208086019260051b82010192831161042e57602001905b828210610a14575050505090565b8380918335610a2281610472565b815201910190610a06565b9291610a388261094b565b91610a4660405193846105cc565b829481845260208094019160051b810192831161042e57905b828210610a6c5750505050565b81358152908301908301610a5f565b9080601f8301121561042e578160206106b693359101610a2d565b60031960603682011261042e57600435610aaf816104cf565b60243567ffffffffffffffff9283821161042e5760c090823603011261042e57610ad76105ee565b908060040135825260248101356020830152604481013584811161042e57610b059060043691840101610963565b6040830152610b16606482016104eb565b6060830152610b2760848201610483565b608083015260a48101359084821161042e576004610b4892369201016109c3565b60a082015260443592831161042e57610b68610018933690600401610a7b565b91612a19565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020808501948460051b01011161042e57565b3461042e5760031960603682011261042e5760043567ffffffffffffffff80821161042e5760608236039384011261042e5760243590610bde826104cf565b60443590811161042e57610bf6903690600401610b6e565b919093610c016133b4565b600484013590610182190181121561042e57610c9794610c9293610c2e610c8b93600436918901016124be565b95610c44610c3f608089015161399a565b613633565b610c4d8761320b565b9060446020890151916101608a015193610c656105ee565b9a8b5260208b015201356040890152606088015260808701525f60a08701523691610a2d565b90836139b0565b613b01565b6100186001606555565b3461042e575f36600319011261042e576020604051428152f35b908161018091031261042e5790565b3461042e57604036600319011261042e5760043567ffffffffffffffff811161042e57610cfb903690600401610cbb565b610d0481612c11565b6001600160a01b031690610d1a60208201612c11565b6001600160a01b031691610d3060408301612c11565b6001600160a01b0316610d4560608401612c11565b6001600160a01b031692610d5b60808201612c11565b6001600160a01b031690610100610d73818301612c1b565b9061012090610d83848301612c1b565b9261014094858101610d9490612c1b565b966101609a8b8301610da69084612c25565b9a909b610db161060e565b9e8f91825260208201526040015260608d015260808c015260a081013560a08c015260c081013560c08c015260e0013560e08b015263ffffffff1690890152870190610e02919063ffffffff169052565b63ffffffff909116908501523690610e1992610665565b90820152336024356100189261323c565b3461042e57602036600319011261042e576004803567ffffffffffffffff811161042e57610e5b9036908301610cbb565b610e636133b4565b60ff61086b5460e01c166110145763ffffffff80421692610140830193610e9c81610e8d87612c1b565b63ffffffff9182169116101590565b61100457610120840192610eaf84612c1b565b1610610ff557610ec7610ec236856124be565b61320b565b90610edb825f5261087260205260405f2090565b54610fe75750610f2a7f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c3292610f25610f1f610f30945f5261087260205260405f2090565b60019055565b612c1b565b93612c1b565b610f50610f4b610f44610160860186612c25565b3691610665565b613fd6565b90610fda6040519283926101008701359760e08801359760208101359281359260408301359260c08101359060a081013590606060808201359101358b9693909a999895919261012098959361014089019c895260208901526040880152606087015263ffffffff80921660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b604051624be79160e21b8152fd5b60405163d642b7d960e01b8152fd5b50604051630277ae7b60e21b8152fd5b50604051633d90fc5560e11b8152fd5b3461042e57602036600319011261042e5760043561104181610472565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e57610018906110c06122c2565b90613feb565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168152f35b602060031982011261042e576004359067ffffffffffffffff821161042e5761113491600401610b6e565b9091565b5f5b8381106111495750505f910152565b818101518382015260200161113a565b9060209161117281518092818552858086019101611138565b601f01601f1916010190565b6020808201908083528351809252604092604081018260408560051b8401019601945f925b8584106111b4575050505050505090565b9091929394959685806111e5600193603f1986820301885286838d5180511515845201519181858201520190611159565b9901940194019295949391906111a3565b3461042e5761120436611109565b61120d8161094b565b91604061121d60405194856105cc565b828452601f1961122c8461094b565b015f5b8181106112a05750505f5b838110611253576040518061124f878261117e565b0390f35b8061129a61126360019388612c82565b515f80611271858a8a612c96565b90611280895180938193612cad565b0390305af49061128e612cba565b60208201529015159052565b0161123a565b60209083516112ae8161050a565b5f81528260608183015282890101520161122f565b3461042e575f36600319011261042e5760206040516301e133808152f35b3461042e57604036600319011261042e57600435602435906001600160a01b0361111161111160901b018161086954160116330361042e576113216133b4565b61086c8054680100000000000000008110156105265763ffffffff916001820190558361134d82612848565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261042e5760043561139981610472565b60243567ffffffffffffffff811161042e576113b990369060040161069b565b6001600160a01b03807f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d391680301461042e57817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361042e5761111161111160901b018161086954160116330361042e5761001891614156565b3461042e575f36600319011261042e5760206001600160a01b036108695416604051908152f35b3461042e575f36600319011261042e576001600160a01b037f000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d3916300361042e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261042e576004356114df81610472565b602435906114ec82610472565b604435916114f983610472565b60a4358060070b810361042e5760c43591611513836104cf565b60e43567ffffffffffffffff811161042e5761153390369060040161069b565b9361153c6133b4565b60ff61086b5460e81c166107485761074195608435926064359261342f565b9181601f8401121561042e5782359167ffffffffffffffff831161042e576020838186019501011161042e57565b3461042e5760c036600319011261042e576004356115a681610472565b602435604435916064356115b981610472565b67ffffffffffffffff9160843583811161042e576115db90369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461161b61165d93369060040161155b565b9290916001600160a01b0380971661164f8a8c8361163a368888610665565b91611646368b8b610665565b9346908d61424a565b604051978897169a87612d09565b0390a3005b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000e10168152f35b3461042e575f36600319011261042e57602060ff61086b5460e81c166040519015158152f35b3461042e575f36600319011261042e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461042e575f36600319011261042e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e575f36600319011261042e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361042e57565b3461042e57602036600319011261042e576004356117e3816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492199161182f6133b4565b151561086b80547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8460e81b169116179055604051908152a16001606555005b3461042e575f36600319011261042e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261042e576004356118c981610472565b602435906118d682610472565b6044356118e281610472565b606435906118ef82610472565b60e4356118fb81610472565b6101043590611909826104cf565b6101243592611917846104cf565b610144359667ffffffffffffffff881161042e5761193c61001898369060040161155b565b97909660c4359360a4359360843593612d6d565b61018036600319011261042e5760043561196981610472565b6024359061197682610472565b60443561198281610472565b6064359061198f82610472565b60e43561199b81610472565b610104356119a8816104cf565b61012435916119b6836104cf565b6119be6104dd565b93610164359767ffffffffffffffff891161042e576119e461001899369060040161155b565b98909760c4359360a4359360843593612d8f565b3461042e57606036600319011261042e576020611a27600435611a1a81610472565b6044359060243590612eaa565b604051908152f35b3461042e57606036600319011261042e5767ffffffffffffffff60243581811161042e57611a6190369060040161155b565b9160443590811161042e57611a7a90369060040161155b565b9060405193602085019480611a914684888a612ee6565b0395611aa5601f19978881018452836105cc565b6004359151902003611b38575f94611ad4611af693611acb87611b02958a990190612574565b95810190612f03565b519360405193849160208301966337bfd2c960e21b8852339160248501612fcb565b039081018352826105cc565b5190305af4611b0f612cba565b9015611b1757005b60405163b8fe37a760e01b8152908190611b3490600483016122e9565b0390fd5b604051630f0c8f4760e11b8152600490fd5b3461042e57602036600319011261042e576004356001600160a01b0361111161111160901b018161086954160116330361042e57611b866133b4565b611b8f81612848565b611bc7576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261042e5761012435611bf4816104cf565b61014435611c01816104cf565b6101643591611c0f836104cf565b610184359267ffffffffffffffff841161042e57611c3461001894369060040161155b565b9390926101043560e43560c43560a435608435606435604435602435600435612fed565b3461042e575f36600319011261042e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461042e5760e036600319011261042e5767ffffffffffffffff60043581811161042e57611ccd903690600401610cbb565b60a43582811161042e57611ce590369060040161155b565b60c49291923593841161042e57611d0361001894369060040161155b565b93909260843590606435906044359060243590613065565b3461042e57606036600319011261042e57600435611d38816104cf565b60243590611d4582610472565b60443590611d5282610472565b60ff5f5460081c161561042e57611d869061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051611d928161050a565b6009815260208101926820a1a927a9a996ab1960b91b8452640312e302e360dc1b6020604051611dc18161050a565b60058152015260ff5f5460081c161561042e5761001893611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b611e1861461d565b614631565b61468b565b3461042e57602036600319011261042e57600435611e3f816117bc565b6001600160a01b0361111161111160901b018161086954160116330361042e5760207f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e91611e8b6133b4565b151561086b80547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8460e01b169116179055604051908152a16001606555005b3461042e575f36600319011261042e576020604051468152f35b3461042e575f36600319011261042e57602063ffffffff61086b5460c01c16604051908152f35b3461042e57604036600319011261042e57600435602435611f3182614ad5565b6001600160a01b0382165f52610873602052611f6060405f20336001600160a01b03165f5260205260405f2090565b54918215612003575f611fa733611f91611f798561399a565b6001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b55611fd383611fc4611fb88461399a565b6001600160a01b031690565b611fcd8561399a565b906146e5565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6040516336542bf760e21b8152600490fd5b6020808201906020835283518092526040830192602060408460051b8301019501935f915b84831061204a5750505050505090565b9091929394958480612068600193603f198682030187528a51611159565b980193019301919493929061203a565b3461042e5761208636611109565b906120908261314e565b915f5b8181106120a8576040518061124f8682612015565b5f806120b5838587612c96565b906120c560405180938193612cad565b0390305af46120d2612cba565b90156120f857906001916120e68287612c82565b526120f18186612c82565b5001612093565b604481511061042e5780600461042e920151602480918301019101613197565b6101808060031936011261042e5761010435612133816104cf565b6101243591612141836104cf565b610144359261214f846104cf565b6101643567ffffffffffffffff811161042e5761217090369060040161155b565b6121786133b4565b61086b549260ff8460e81c1661074857610c979661223d610f449261222f63ffffffff61224b9860c01c16996121d36121b08c6131f6565b61086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b6121db61062f565b9a6004358c5260243560208d015260443560408d015260643560608d015260843560808d015260a43560a08d015260c43560c08d015260e43560e08d01526101008c01526101208b019063ffffffff169052565b63ffffffff16610140890152565b63ffffffff16610160870152565b9082015261437c565b3461042e5760206122926001600160a01b0361226f366107fa565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461042e575f36600319011261042e5760206001600160a01b0361086a5416604051908152f35b6040516020810181811067ffffffffffffffff821117610526576040525f8152905f368137565b9060206106b6928181520190611159565b3461042e575f36600319011261042e5761124f6123156122c2565b604051918291602083526020830190611159565b3461042e5760c036600319011261042e5760043560243567ffffffffffffffff60643560443560843583811161042e5761236790369060040161155b565b60a49491943591821161042e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946123a76123f693369060040161155b565b9290916123b26133b4565b6123bb8a614ad5565b6123ea898b89896123cd368888610665565b926123d9368b8b610665565b946001600160a01b0346921661424a565b60405196879687612d09565b0390a36001606555005b3461042e575f36600319011261042e5760206001600160a01b03610c5b5416604051908152f35b3461042e57602036600319011261042e576004355f52610872602052602060405f2054604051908152f35b3461042e57602036600319011261042e5760043561246f81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e576107419061249b6133b4565b61472d565b3461042e575f36600319011261042e57602060405163ffffffff8152f35b91906101808382031261042e576124d361060e565b92803584526020810135602085015260408101356040850152606081013560608501526080810135608085015260a081013560a085015260c081013560c085015260e081013560e085015261010080820135908501526101206125378183016104eb565b908501526101406125498183016104eb565b90850152610160918282013567ffffffffffffffff811161042e5761256e920161069b565b90830152565b9060208282031261042e57813567ffffffffffffffff811161042e576106b692016124be565b3461042e57602036600319011261042e5760043567ffffffffffffffff811161042e57611a27610ec260209236906004016124be565b3461042e575f36600319011261042e57602060ff61086b5460e01c166040519015158152f35b3461042e575f36600319011261042e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461042e57602036600319011261042e5760043561263c81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e186133b4565b3461042e57606036600319011261042e5760043567ffffffffffffffff811161042e576126999036906004016124be565b6126a16133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff428116911610158061272c575b61271a57806126d8610c979261320b565b60c0820151602083015190610160840151926126f26105ee565b948552602085015260408401526060830152608082015260243560a082015260443590613d75565b604051630c3a9b9d60e41b8152600490fd5b5061273a604082015161399a565b6001600160a01b03163314156126c7565b604051633d90fc5560e11b8152600490fd5b3461042e575f36600319011261042e5760206001600160a01b03610c5a5416604051908152f35b6101608060031936011261042e576101043561279f816104cf565b610124356127ac816104cf565b6101443567ffffffffffffffff811161042e576127cd90369060040161155b565b63ffffffff946127e08642169586612d50565b936127e96133b4565b61086b549160ff8360e81c166107485761281c6128299661222f610c979a610f449660c01c16996121d36121b08c6131f6565b86019063ffffffff169052565b61018082015261437c565b634e487b7160e01b5f52603260045260245ffd5b61086c908154811015612882576003915f52027f71cd7344f4eb2efc8e30291f6dbdb44d618ca368ea5425d217c1d604bf26b84d01905f90565b612834565b3461042e57602036600319011261042e5760043561086c5481101561042e576128b1604091612848565b506001815491015482519182526020820152f35b3461042e57608036600319011261042e576004356128e2816104cf565b6129486024356128f181610472565b6044356128fd81610472565b6064359161290a83610472565b5f549461292e60ff8760081c1615809781986129c2575b81156129a2575b50612c7b565b8561293f600160ff195f5416175f55565b61298b576132d8565b61294e57005b61295c61ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61299d61010061ff00195f5416175f55565b6132d8565b303b159150816129b4575b505f612928565b6001915060ff16145f6129ad565b600160ff8216109150612921565b3461042e57602036600319011261042e576004356129ed81610472565b6001600160a01b0361111161111160901b018161086954160116330361042e5761074190611e1d6133b4565b91612a226133b4565b6080820191612a3b610c3f84516001600160a01b031690565b602081019182514603612b4257612a63612a6791836001612a5b89612848565b5001546136a6565b1590565b612b30578060607ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e920193612aa9612aa3865163ffffffff1690565b87613738565b612b23845194835193612b08612afa612ae960408401998a51612ad08d5163ffffffff1690565b89516001600160a01b03169160a088019b8c51946137a9565b925193519851995163ffffffff1690565b94516001600160a01b031690565b945163ffffffff9586604051978897169b1699339487612bc3565b0390a461048e6001606555565b60405163582f497d60e11b8152600490fd5b604051633d23e4d160e11b8152600490fd5b9081518082526020808093019301915f5b828110612b73575050505090565b835185529381019392810192600101612b65565b9081518082526020808093019301915f5b828110612ba6575050505090565b83516001600160a01b031685529381019392810192600101612b98565b9496959193612be560a095612c0393885260c0602089015260c0880190612b54565b906001600160a01b0380951660408801528682036060880152612b87565b951515608085015216910152565b356106b681610472565b356106b6816104cf565b903590601e198136030182121561042e570180359067ffffffffffffffff821161042e5760200191813603831361042e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612c7657565b612c58565b1561042e57565b80518210156128825760209160051b010190565b90821015612882576111349160051b810190612c25565b908092918237015f815290565b3d15612ce4573d90612ccb82610649565b91612cd960405193846105cc565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612d2e926106b6979587526020870152608060408701526080860191612ce9565b926060818503910152612ce9565b634e487b7160e01b5f52601160045260245ffd5b91909163ffffffff80809416911601918211612d6857565b612d3c565b969492909161048e9b9a9998969492612d8d63ffffffff42169889612d50565b985b9593919b999897969492909b612da36133b4565b61086b549660ff8860e81c16610748578760c01c63ffffffff16612dc6906131f6565b612ded9061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b612df561062f565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015260c01c63ffffffff16610100870152610120860190612e6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612e9192610665565b610180820152612ea09061437c565b61048e6001606555565b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ee081610578565b51902090565b939291602091612efe91604087526040870191612ce9565b930152565b9081602091031261042e57604051906020820182811067ffffffffffffffff8211176105265760405235815290565b6106b69161018090825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015190820152612fa7610120808501519083019063ffffffff169052565b6101408381015163ffffffff16908201528161016080940151938201520190611159565b612fe360409295949395606083526060830190612f32565b9460208201520152565b9c9a99989796959493929190966130026133b4565b60ff61086b5460e81c166107485761301b908e33612eaa565b96604051809e61302a8261052b565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612e6e565b9792909593919694976130766133b4565b60ff61086b5460e01c1661274b576130916101408201612c1b565b63ffffffff804216911610158061312f575b61271a5761311861312a96613110612ea09b6130c2610ec236876124be565b9a6130cb6105ee565b9b6130d636886124be565b8d5260208d01528660408d01528760608d01526130f4368b84610665565b60808d015260a08c0152613108853561399a565b983691610665565b953691610665565b9461010060e08301359201359061424a565b613d75565b5061313d604082013561399a565b6001600160a01b03163314156130a3565b906131588261094b565b61316560405191826105cc565b8281528092613176601f199161094b565b01905f5b82811061318657505050565b80606060208093850101520161317a565b60208183031261042e5780519067ffffffffffffffff821161042e570181601f8201121561042e5780516131ca81610649565b926131d860405194856105cc565b8184526020828401011161042e576106b69160208085019101611138565b63ffffffff809116908114612d685760010190565b604051612ee0816132286020820194604086526060830190612f32565b46604083015203601f1981018352826105cc565b9190916132476133b4565b60ff61086b5460e01c1661274b5761014081015163ffffffff42811691161015806132b9575b61271a57612ea09261327e8261320b565b60c0830151602084015190610160850151926132986105ee565b958652602086015260408501526060840152608083015260a0820152613d75565b506132c7604082015161399a565b6001600160a01b031633141561326d565b92909192610c5a61800a6001600160a01b031982541617905560ff5f5460081c161561042e576133259061086b9063ffffffff60c01b1963ffffffff60c01b83549260c01b169116179055565b604051906133328261050a565b6009825260208201916820a1a927a9a996ab1960b91b8352640312e302e360dc1b60206040516133618161050a565b60058152015260ff5f5460081c161561042e5761048e9461249b93611e1d9251902061047f557f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c61048055611e1061460e565b60026065541461042e576002606555565b91908203918211612d6857565b6040513d5f823e3d90fd5b926106b69695929491946101409585525f60208601526040850152606084015263ffffffff809116608084015260a08301525f60c083015260e08201525f610100820152816101208201520190611159565b9193949690959660070b906706f05b59d3b2000061344c83614776565b101561360c576ec097ce7bc90715b34b9f100000000084116135fa5763ffffffff9361347a858a16426133c5565b857f0000000000000000000000000000000000000000000000000000000000000e1016106135e85761086b5460c01c63ffffffff16986134bc6121b08b6131f6565b6001600160a01b039586807f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f16981692888414806135df575b156135a35780340361359157883b1561042e575f6004996040519a8b8092630d0e30db60e41b825234905af198891561094657613560613573978a927f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39c613578575b505b836147c7565b92604051998a99169d169b1693876133dd565b0390a4565b8061358561358b92610548565b80610424565b5f613558565b604051636452a35d60e01b8152600490fd5b7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3985087613560613573976135da8430338a614785565b61355a565b503415156134f5565b60405163f722177f60e01b8152600490fd5b60405163622db5a960e11b8152600490fd5b60405163284f109760e21b8152600490fd5b9081602091031261042e57516106b681610472565b6001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f81169116811461366a575b50565b476136725750565b4790803b1561042e575f90600460405180948193630d0e30db60e41b83525af1801561094657156136675761048e90610548565b6106b6929160405161372f81613721602082019460208652805160408401526020810151606084015260a06136eb604083015160c06080870152610100860190612b54565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612b87565b03601f1981018352826105cc565b519020916147fd565b613743600291612848565b500162ffffff8260081c16805f5281602052600160ff60405f205494161b808094161461377b575f5260205260405f20908154179055565b60405163954476d960e01b8152600490fd5b9081602091031261042e575190565b91908201809211612d6857565b91959495939092935f96815190818151036139885781613828575b505050826137d3575b50505050565b6001600160a01b03816138077ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148c0565b6040805195865233602087015291169463ffffffff1693a45f8080806137cd565b604080516370a0823160e01b81523060048083019190915291906020816024816001600160a01b038b165afa908115610946575f91613959575b505f805b8681106138775750505050506137c4565b6138818189612c82565b5161388f575b600101613866565b906138a59061389e838a612c82565b519061379c565b90828211613949576138df612a636138cd6138c0848a612c82565b516001600160a01b031690565b6138d7848c612c82565b51908c61484e565b15613887579c508761393f6139378f6139226138c061391b613901848f612c82565b51966001600160a01b03165f5261087360205260405f2090565b928b612c82565b6001600160a01b03165f5260205260405f2090565b91825461379c565b905560019c613887565b50505051632ddaa83160e11b8152fd5b61397b915060203d602011613981575b61397381836105cc565b81019061378d565b5f613862565b503d613969565b6040516319a5316760e31b8152600490fd5b6001600160a01b03906139ac81614ad5565b1690565b91612a6390613a29928451604080960151918651916139ce8361055c565b825261372f6139e96020840192468452898501958652612848565b5054938851928391613a0e6020840196602088525160608d86015260a0850190612f32565b9151606084015251608083015203601f1981018352826105cc565b613a305750565b5163582f497d60e11b8152600490fd5b613a4982612c6c565b52565b9a989693919c9b9997959492909c6101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff80921660a08901521660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a08301526060015190613acc82612c6c565b6101c00152565b906106b694936080936001600160a01b03809316845260208401521660408201528160608201520190611159565b905f82516101208101613b18815163ffffffff1690565b63ffffffff42911610613d63576020850151906002613b40835f5261087260205260405f2090565b5414613d5157613b5a86925f5261087260205260405f2090565b6002905560608301519060808401519160a08501519260c0860151918560a0810151938860e0810151956101008201519751613b999063ffffffff1690565b61014083015163ffffffff166040840151918451936020860151956101600151613bc290613fd6565b966060890151986080019e8f51613bd890613fd6565b906040015190613be661063c565b9a8b5260208b015260408a0152600260608a01526040519d8e9b613c0a9b8d613a4c565b037f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208905f94a46080820151613c3e9061399a565b9060408601519560600151613c529061399a565b9260800151613c609061399a565b6001600160a01b03919082167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f831603613d3c5784613d29575b613ca687838616614af0565b51928351151580613d1f575b613cc0575b50505050509050565b1690813b15613d1b5783613cee959660405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613d08575b808080808594613cb7565b80613585613d1592610548565b5f613cfd565b8380fd5b50803b1515613cb2565b613d37873033858716614785565b613c9a565b5f9450613d4c87858585166146e5565b613ca6565b604051630479306360e51b8152600490fd5b60405163d642b7d960e01b8152600490fd5b8051916101208301613d8b815163ffffffff1690565b63ffffffff42911610613d635760208301516001613db2825f5261087260205260405f2090565b5403613fcf576001905b6002613dd1825f5261087260205260405f2090565b5414613d5157613ded613df3915f5261087260205260405f2090565b60029055565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa7503746901372086060860151608087015190613ec08760a08a0151958a60c08101519760a08401519860e083015199613e506101008501519c5163ffffffff1690565b61014085015163ffffffff1691604086015193865195613eb4613e7c61016060208b01519a0151613fd6565b9960608c01519b6040613e926080830151613fd6565b910151906020613ea061063c565b9e8f528e015260408d015260608c01613a40565b6040519c8d9c8d613a4c565b0390a4613ed0608083015161399a565b916040820151916080613ef281613eea606085015161399a565b94015161399a565b6001600160a01b03929083167f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f841603613fbc57613f34853033868a16614785565b613f4085848616614af0565b0151918251151580613fb2575b613f59575b5050505050565b16803b1561042e57613f87935f809460405196879586948593633a5be8cb60e01b8552339160048601613ad3565b03925af1801561094657613f9f575b80808080613f52565b80613585613fac92610548565b5f613f96565b50803b1515613f4d565b613fca858533868a16614785565b613f40565b5f90613dbc565b80519081613fe45750505f90565b6020012090565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561401f5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614135575b50614051575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e5761408082614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511580159061412e575b6140b7575050565b5f80613667937f206661696c656400000000000000000000000000000000000000000000000000604080516140eb8161055c565b602781527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208201520152602081519101845af4614128612cba565b9161528f565b505f6140af565b61414f91925060203d6020116139815761397381836105cc565b905f614048565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561418a5761048e9150614c10565b6040516352d1902d60e01b81526001600160a01b03821690602081600481855afa5f9181614229575b506141bc575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361042e576141eb82614c10565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115801590614221576140b7575050565b5060016140af565b61424391925060203d6020116139815761397381836105cc565b905f6141b3565b939260429361048e979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c081526142af81610594565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152614305816105b0565b519020906040519161190160f01b8352600283015260228201522090614c53565b96926106b69a9996949198959261014099895260208901526040880152606087015263ffffffff928380921660808801521660a08601521660c084015260e0830152610100820152816101208201520190611159565b6143868151614ad5565b61012081016143a561439c825163ffffffff1690565b63ffffffff1690565b8042109081156145d5575b506135e8576101408201916143c9835163ffffffff1690565b9063ffffffff91826143fd817f0000000000000000000000000000000000000000000000000000000000005460164261379c565b9116116145c35761016081015163ffffffff16918083168061457e575b505060408101908151916001600160a01b037f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1680931480614575575b15614528576080820151340361359157823b1561042e575f60049360405194858092630d0e30db60e41b825234905af1928315610946577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad393614515575b505b5161357360608301519260808101519060a081015160c0820151976144f46144e96101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b614326565b8061358561452292610548565b5f6144b5565b9150346135915781614570614561611fb87f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3955161399a565b60808401519030903390614785565b6144b7565b50341515614457565b6301e1338010156145ae575b5060e08101511561459c575f8061441a565b60405163495d907f60e01b8152600490fd5b916145bc9192421690612d50565b905f61458a565b60405163582e388960e01b8152600490fd5b6145e09150426133c5565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000e1016105f6143b0565b60ff5f5460081c161561042e57565b60ff5f5460081c161561042e576001606555565b6001600160a01b0316801561467957610869816001600160a01b03198254161790557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b60405163ba97b39d60e01b8152600490fd5b6001600160a01b031680156146d35761086a816001600160a01b03198254161790557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b604051635b03092b60e11b8152600490fd5b60405163a9059cbb60e01b60208201526001600160a01b039092166024830152604482019290925261048e9161472882606481015b03601f1981018452836105cc565b614d46565b610c5b9081546001600160a01b0380921692836001600160a01b0319831617905516907fab9987862d7dab8c2bf2f09eb3ad7b6c1961c86fe3e9e7d3ef50dc98995d72d45f80a3565b5f81126147805790565b5f0390565b6040516323b872dd60e01b60208201526001600160a01b039283166024820152929091166044830152606482019290925261048e91614728826084810161471a565b90670de0b6b3a7640000915f828403921283831281169084841390151617612d6857818102918183041490151715612d68570490565b929091905f915b8451831015614846576148178386612c82565b519081811015614835575f52602052600160405f205b920191614804565b905f52602052600160405f2061482d565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161488a8160648101613721565b519082855af1903d5f5190836148a1575b50505090565b919250906148b657503b15155b5f808061489b565b60019150146148ae565b6001600160a01b03828116907f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f811682036149b35750809192503b1561042e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af18015610946576149a0575b50614947611fb8611fb8610c5a546001600160a01b031690565b61086a546001600160a01b0316813b1561042e576040516351cff8d960e01b81526001600160a01b03919091166004820152915f9183916024918391905af18015610946576149935750565b8061358561048e92610548565b806135856149ad92610548565b5f61492d565b7f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88481168203614aa9577f0000000000000000000000000000000000000000000000000000000000000000811615614a1d57505061086a5461048e92506001600160a01b0316614ec5565b82614a4e919392937f0000000000000000000000007188b6975eec82ae914b6ec7ac32b3c9a18b2c81168094614dcd565b61086a546001600160a01b03165b91803b1561042e57604051636ce5768960e11b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610946576149935750565b5050614ac1611fb8610c5b546001600160a01b031690565b90614a5c61086a546001600160a01b031690565b60a01c614ade57565b6040516379ec0ed760e11b8152600490fd5b906001600160a01b03808316803b158015614bae575b15614b8157507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f1691823b1561042e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109465761048e93614b6e575b50615172565b80613585614b7b92610548565b5f614b68565b9061048e93507f0000000000000000000000006bdc36e20d267ff0dd6097799f82e78907105e2f166146e5565b50803b614bba81610649565b614bc760405191826105cc565b81815260208101915f83853c51905162ffffff60e81b908181169260038110614bfa575b50501661ef0160f01b14614b06565b829350829060030360031b1b1616905f80614beb565b803b1561042e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc91166001600160a01b0319825416179055565b614c5d83836151ba565b6005819592951015612c7657159384614d1b575b508315614c95575b50505015614c8357565b60405163938a182160e01b8152600490fd5b5f929350908291604051614ccd816137216020820194630b135d3f60e11b998a87526024840152604060448401526064830190611159565b51915afa90614cda612cba565b82614d0d575b82614cf0575b50505f8080614c79565b614d059192506020808251830101910161378d565b145f80614ce6565b915060208251101591614ce0565b6001600160a01b0383811691161493505f614c71565b9081602091031261042e57516106b6816117bc565b905f806001600160a01b03614d9d9416927f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020604051614d868161050a565b818152015260208151910182855af1614128612cba565b8051908115918215614db3575b50501561042e57565b614dc69250602080918301019101614d31565b5f80614daa565b60405163095ea7b360e01b602082018181526001600160a01b0385166024840152604480840196909652948252939092601f1991614e0c6064866105cc565b5f806001600160a01b0386169287519082855af190614e29612cba565b82614e93575b5081614e88575b5015614e43575050505050565b60405160208101959095526001600160a01b031660248501525f6044850152614e7e9361472891614e78908260648101611af6565b82614d46565b5f80808080613f52565b90503b15155f614e36565b80519192508115918215614eab575b5050905f614e2f565b614ebe9250602080918301019101614d31565b5f80614ea2565b906001600160a01b038092167f00000000000000000000000088f08e304ec4f90d644cec3fb69b8ad414acf88490837f00000000000000000000000000000000000000000000000000000000000000001693614f228486856151eb565b604094604051926332dd704760e21b84526020956004948781600481875afa9687156109465788915f98615151575b506040516352b7631960e11b81529086166001600160a01b03811660048301529097909588916024918391165afa958615610946575f96615132575b5095867f0000000000000000000000000000000000000000000000000000000000000000975b614fc257505050505050505050565b8681111561512c57865b881561508457843b1561042e578951634701287760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b03881660608201525f6080820181905260a082018190526107d060c0830152919391908490819060e0010381838a5af19283156109465761506b93615071575b506133c5565b80614fb3565b8061358561507e92610548565b5f615065565b89516337e9a82760e11b815287810182815263ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166020820152604081018690526001600160a01b038816606082015290929084908490819060800103815f8a5af19283156109465761506b936150ff57506133c5565b61511e90853d8711615125575b61511681836105cc565b81019061519a565b505f615065565b503d61510c565b80614fcc565b61514a919650873d89116139815761397381836105cc565b945f614f8d565b8691985061516b90833d851161093f5761093181836105cc565b9790614f51565b81471061042e575f8080936001600160a01b038294165af1615192612cba565b501561042e57565b9081602091031261042e575167ffffffffffffffff8116810361042e5790565b9060418151145f146151e25761113491602082015190606060408401519301515f1a906152b8565b50505f90600290565b6044919260206001600160a01b0360405194858092636eb1769f60e11b8252306004830152808916602483015286165afa928315610946575f9361526e575b508201809211612d685760405163095ea7b360e01b60208201526001600160a01b039093166024840152604483019190915261048e9190614728826064810161471a565b61528891935060203d6020116139815761397381836105cc565b915f61522a565b90156152a9578151156152a0575090565b3b1561042e5790565b50805190811561042e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615328576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610946575f516001600160a01b0381161561532057905f90565b505f90600190565b505050505f9060039056fea264697066735822122035d969e7e20a051270715879c8ad909afeacf448c249a6e43990478325a44fe464736f6c6343000817003300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x4", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008004", - "topics": [ - "0xc94722ff13eacf53547c4741dab5228353a05938ffcdd5d4a2d533ae0e618287", - "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", - "0x0000000000000000000000000000000000000000000000000000000000000000" - ], - "data": "0x", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x5", - "removed": false - }, - { - "address": "0x0000000000000000000000000000000000008006", - "topics": [ - "0x290afdae231a3fc0bbae8b1af63698b0a1d79b21ad17df0342dfb952fe74f8e5", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "0x020053693dfcd56daa1e2e2ac30195582032a4f082ba94763dd55af316eca421", - "0x000000000000000000000000c7772ce23a3ed7f87fe51b87617c7c7d21f15d39" - ], - "data": "0x", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x6", - "removed": false - }, - { - "address": "0x000000000000000000000000000000000000800a", - "topics": [ - "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef", - "0x0000000000000000000000000000000000000000000000000000000000008001", - "0x0000000000000000000000009a8f92a830a5cb89a3816e3d267cb7791c16b04d" - ], - "data": "0x0000000000000000000000000000000000000000000000000168810baff4d312", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "blockTimestamp": "0x68acb349", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "logIndex": "0x7", - "removed": false - } - ], - "logsBloom": "0x00000000000400080000010000000000000000000000400000000000000000000000400000000000000000000200000000000000000000000000000000000000000100000001040000000028000040000424000000000000000000000000080000000000060100000000000000000800000000000000400000000010040000000080001000000000000004000100000000000100000080000000102000000080000000000000100000000000800500800000000000000000002000014000000000000002008000800000000000040000000010000100000000000000000020000001000400000000000000000000200000000004000000000000000880000000", - "type": "0x2", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionIndex": "0x0", - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "gasUsed": "0x21fef8", - "effectiveGasPrice": "0xa52ff002", - "from": "0x9a8f92a830a5cb89a3816e3d267cb7791c16b04d", - "to": null, - "contractAddress": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "l1BatchNumber": null, - "l1BatchTxIndex": null, - "l2ToL1Logs": [ - { - "blockHash": "0x7ebde3bf6adda5d9604f23056b2064dd87d6ebb62fc1246850bc63ce2ded3c6a", - "blockNumber": "0x3e7169", - "l1BatchNumber": null, - "logIndex": "0x0", - "transactionIndex": "0x0", - "transactionHash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "transactionLogIndex": "0x0", - "txIndexInL1Batch": "0x7e3", - "shardId": "0x0", - "isService": true, - "sender": "0x0000000000000000000000000000000000008008", - "key": "0x0000000000000000000000000000000000000000000000000000000000008004", - "value": "0x77543f2b3304771ca38533e97c3c1254f33526f6b4bc639479519ac3b4041ba8" - } - ] - } - ], - "libraries": [], - "pending": [], - "returns": {}, - "timestamp": 1756148588922, - "chain": 232, - "commit": "a6daa38e" -} diff --git a/broadcast/deployed-addresses.json b/broadcast/deployed-addresses.json index 2962d68b8..f3f035bb5 100644 --- a/broadcast/deployed-addresses.json +++ b/broadcast/deployed-addresses.json @@ -1,5 +1,5 @@ { - "generated_at": "2025-08-29T21:11:26.297Z", + "generated_at": "2025-09-09T21:17:28.863Z", "chains": { "1": { "chain_name": "Mainnet", @@ -115,9 +115,9 @@ "block_number": 22474211 }, "Universal_Adapter": { - "address": "0x22001f37B586792F25Ef9d19d99537C6446e0833", + "address": "0x6f1C9d3bcDF51316E7b515a62C02F601500b084b", "transaction_hash": "Unknown", - "block_number": 22368546 + "block_number": 23251254 }, "Blast_Adapter": { "address": "0xF2bEf5E905AAE0295003ab14872F811E914EdD81", @@ -170,9 +170,9 @@ "block_number": 21597341 }, "Lens_Adapter": { - "address": "0x63AC22131eD457aeCbD63e6c4C7eeC7BBC74fF1F", + "address": "0x5e0B7e20a77BDf11812837D30F1326068Bcf24Cf", "transaction_hash": "Unknown", - "block_number": 22167069 + "block_number": 22382942 }, "DoctorWho_Adapter": { "address": "0xFADcC43096756e1527306FD92982FEbBe3c629Fa", @@ -345,9 +345,9 @@ "chain_name": "Lens", "contracts": { "SpokePool": { - "address": "0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12", + "address": "0xb234cA484866c811d0e6D3318866F583781ED045", "transaction_hash": "Unknown", - "block_number": 193290 + "block_number": 4197027 }, "MulticallHandler": { "address": "0xc5939F59b3c9662377DdA53A08D5085b2d52b719", @@ -358,11 +358,6 @@ "address": "0x8A8cA9c4112c67b7Dae7dF7E89EA45D592362107", "transaction_hash": "Unknown", "block_number": 2884429 - }, - "Lens_SpokePool": { - "address": "0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39", - "transaction_hash": "0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5", - "block_number": 4092265 } } }, diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index f7b2fc5bb..a9003de5a 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -1,6 +1,6 @@ # Deployed Contract Addresses -Generated on: 2025-08-29T21:11:26.295Z +Generated on: 2025-09-09T21:17:28.862Z This file contains the latest deployed smart contract addresses from the broadcast folder. @@ -142,9 +142,9 @@ This file contains the latest deployed smart contract addresses from the broadca #### Universal_Adapter -- **Universal_Adapter**: `0x22001f37B586792F25Ef9d19d99537C6446e0833` +- **Universal_Adapter**: `0x6f1C9d3bcDF51316E7b515a62C02F601500b084b` - Transaction Hash: `Unknown` - - Block Number: `22368546` + - Block Number: `23251254` #### Blast_Adapter @@ -208,9 +208,9 @@ This file contains the latest deployed smart contract addresses from the broadca #### Lens_Adapter -- **Lens_Adapter**: `0x63AC22131eD457aeCbD63e6c4C7eeC7BBC74fF1F` +- **Lens_Adapter**: `0x5e0B7e20a77BDf11812837D30F1326068Bcf24Cf` - Transaction Hash: `Unknown` - - Block Number: `22167069` + - Block Number: `22382942` #### DoctorWho_Adapter @@ -398,9 +398,9 @@ This file contains the latest deployed smart contract addresses from the broadca #### SpokePool -- **SpokePool**: `0xe7cb3e167e7475dE1331Cf6E0CEb187654619E12` +- **SpokePool**: `0xb234cA484866c811d0e6D3318866F583781ED045` - Transaction Hash: `Unknown` - - Block Number: `193290` + - Block Number: `4197027` #### MulticallHandler @@ -414,12 +414,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `2884429` -#### Lens_SpokePool - -- **Lens_SpokePool**: `0xc7772ce23a3ed7f87fe51b87617c7c7d21f15d39` - - Transaction Hash: `0xa4938f34425c997b4686b5bad4f66b04bfbc2270dfe9c00b8f134da6a7b6edf5` - - Block Number: `4092265` - ### Boba (Chain ID: 288) #### SpokePool From 2ff9c0b63147a8774a5ec03a9b076a2d43a89ea9 Mon Sep 17 00:00:00 2001 From: Faisal Usmani Date: Wed, 17 Sep 2025 10:07:40 -0400 Subject: [PATCH 16/16] Removed merge issue Signed-off-by: Faisal Usmani --- broadcast/deployed-addresses.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/broadcast/deployed-addresses.md b/broadcast/deployed-addresses.md index 3e8c013b6..5a5e4bb3c 100644 --- a/broadcast/deployed-addresses.md +++ b/broadcast/deployed-addresses.md @@ -512,8 +512,6 @@ This file contains the latest deployed smart contract addresses from the broadca - Transaction Hash: `Unknown` - Block Number: `16783149` -<<<<<<< HEAD - #### Redstone_SpokePool - **Redstone_SpokePool**: `0x78d8cb7284b14c123a2e81a3246494e8dad873e4` @@ -533,7 +531,6 @@ This file contains the latest deployed smart contract addresses from the broadca - **Helios**: `0xd08baaE74D6d2eAb1F3320B2E1a53eeb391ce8e5` - Transaction Hash: `Unknown` - Block Number: `13934816` - > > > > > > > b1e927dad0aa5cd2fbd3c8864c380fd99ed88805 ### Lisk (Chain ID: 1135)